2016-05-23 5 views
1

「良い」という種類のクラウドゲームソリューションをやっています。ドロップされたフレームを置き換えます

サーバがゲームを実行し、VCE(AMDハードウェアエンコーディング)を使用してビデオをエンコードし、ビデオフレームをチャンクし、UDPでプレーヤに送信します。プレーヤーはパケットを受信し、データを再構築し、デコードします。パケットロスがなければ問題はありません。

有線接続の場合すべてがスムーズですが、人々はWifi(5GHz、2Ghzは処理できません)を使用するのが好きです。あなたは良い無線LANを持っている場合でも、パケットの損失が発生する可能性があります。私たちは、 "okish"で動作する冗長計画を持っていますが、あまりにも多くのネットワークを必要とします。ここで

小さな説明です:

オリジナルエンコーディング(唯一のPフレーム):

F1 - F2 - F3 - F4 - 私たちはF2を紛失した場合、我々は現時点では何F5

F1 - 空 - F3(醜い) - F4(醜い) - (醜い)F5

私たちが何をしたいのか、交換してくださいF2:

F1 - F1 ' - F3 - F4 - F5

3番目のフレームがF1'(F2と思っています)を指している場合は動作しますか?少なくとも私は何もしないよりも良いと思う。 F3の参照を変更する方法はありますか(F1ではなくF2を指す)、またはF2の "ヘッダー"でF1 'を作成する方法はありますか?

答えて

1

あなたのソリューションはほとんど効果がありません。あなたは他の人と同じソリューションをあなたの空間に採用すべきです。これは、周期的なイントラリフレッシュ、参照フレーム無効化、およびFECである。

+0

FECの場合、現時点では静的冗長性を実装できます。 1フレーム= 30パケット、10パケットのグループに対して3つを追加します。私たちのフレームを33冊の価値があるものにする。私はそれが良い解決策だと思う。おそらく後でそれを適応させるでしょう。 周期的イントラリフレッシュでは、VCEを調べます。 AMDから提供されているいくつかのドキュメント(AMF_Encoding_Profiles)がありますが、それほど明白ではありません。 参照フレームの無効化については、ドキュメントを参照することはできますか、関連するものは見つかりませんでした。 – BeGreen

+0

あなたはAMDにチェックする必要があります。 x264ではこの関数はx264_encoder_invalidate_referenceと呼ばれます – szatmary

関連する問題