0

これは私が持っているHEVCエンコーダーとデコーダーについてです

** encoder and decoder in debug mode

** encoder and decoder in release mode

リリースモードが何かを最適化することを知っています。

  1. デバッグ エンコーダーとリリース デコーダーを使用できますか? (私はこれを確認していません)

  2. リリース エンコーダーとデバッグ デコーダーはどうですか? (やってみたらOK)

両方とも問題ないと思いますが、理論レベルでなぜそうであるか、なぜそうでないのかを知りたいです。

4

2 に答える 2

0

エンコーダーのデバッグ ビルドとリリース ビルドによって生成される HEVC ビットストリームは同一である必要があります。また、デコーダの動作は、両方のビルド バリアントで同じである必要があります。開発過程で正式なテストはありませんが、HM で問題を経験したことはありません。

これが当てはまらないケースを見つけた場合、それはバグと見なされ、バグ トラッカーで報告する必要があります。

于 2014-02-25T19:19:58.793 に答える
0

あなたが何を求めているのか完全にはわかりませんが、たとえば Linux の makefile を見ると、次のように表示されます。

debug:
    $(MAKE) -C lib/TLibVideoIO  debug MM32=$(M32)
    $(MAKE) -C lib/TLibCommon   debug MM32=$(M32)
    $(MAKE) -C lib/TLibDecoder  debug MM32=$(M32)
    $(MAKE) -C lib/TLibEncoder  debug MM32=$(M32)
    $(MAKE) -C lib/TAppCommon       debug MM32=$(M32)
    $(MAKE) -C app/TAppDecoder      debug MM32=$(M32)
    $(MAKE) -C app/TAppEncoder      debug MM32=$(M32)
    $(MAKE) -C utils/annexBbytecount       debug MM32=$(M32)
    $(MAKE) -C utils/convert_NtoMbit_YCbCr debug MM32=$(M32)

release:
    $(MAKE) -C lib/TLibVideoIO  release MM32=$(M32)
    $(MAKE) -C lib/TLibCommon   release MM32=$(M32)
    $(MAKE) -C lib/TLibDecoder  release MM32=$(M32)
    $(MAKE) -C lib/TLibEncoder  release MM32=$(M32)
    $(MAKE) -C lib/TAppCommon       release MM32=$(M32)
    $(MAKE) -C app/TAppDecoder      release MM32=$(M32)
    $(MAKE) -C app/TAppEncoder      release MM32=$(M32)
    $(MAKE) -C utils/annexBbytecount       release MM32=$(M32)
    $(MAKE) -C utils/convert_NtoMbit_YCbCr release MM32=$(M32)

そして、メイクファイルに従うと、最終的にmakefile.base次の部分が含まれます。

#
# debug cpp flags
DEBUG_CPPFLAGS    = -g  -D_DEBUG
#
# release cpp
RELEASE_CPPFLAGS  =  -O3 -ffloat-store -Wuninitialized

デバッグモードとリリースモードの違いがあります。生成および再構築されたビットストリームは、debug-binary または release-binary のどちらを使用しても同じです。

デバッグ バイナリとリリース バイナリを完全に混在させることができます。

それが役に立てば幸い...

于 2013-08-27T18:50:37.730 に答える