1

イントラ予測の部分を改善するために、しばらくの間 HM リファレンス ソフトウェアに取り組んできました。ここで、新しいイントラ予測アルゴリズムがコードに追加され、エンコーダーに私のアルゴリズムと HM の既定のアルゴリズムのどちらかを選択させます (RDCostもちろんによると)。

私が今必要としているのは、エンコーダーがレート歪みループで決定するのと同じアルゴリズムをデコーダーが実行できるように、各 PU のフラグを通知することです。

コードを壊すことなく、この 1 ビット フラグをストリームに適切に追加するにはどうすればよいかを知りたいです。

フラグの統計を追跡するために CABAC コンテキスト モデルを使用すると仮定すると、他に何をすればよいでしょうか。

  1. ファイルのような新しいコンテキスト モデルを追加しContextModel3DBuffer m_cCUIntraAlgorithmSCModelますTEncSbac.h
  2. HMが他のコンテキストモデルをどのように初期化するかを見て、モデルを(エンコーダー側とデコーダー側の両方で)適切に初期化します。
  3. 関数m_pcBinIf->encodeBin(myFlag, cCUIntraAlgorithmSCModel)を呼び出し、m_pcTDecBinIfdecodeBin(myFlag, cCUIntraAlgorithmSCModel)エンコーダー側とデコーダー側でそれぞれ呼び出します。

私はこれらの 3 つの手順を実行しますが、どうやら何かが壊れているようです。

PS: 同等確率のシグナリング (つまり、CABAC コンテキストを使用しないもの) でさえ有用です。この旗を平和的に送りたいだけです!

前もって感謝します。

4

1 に答える 1