编译器和解码器的Debug exe和release exe的混合

时间:2013-08-23 18:09:30

标签: hevc

这是关于HEVC编码器和解码器 我有

** encoder and decoder in debug mode

** encoder and decoder in release mode

我知道发布模式可以优化。

  1. 我们可以使用调试编码器和解码器吗?(我还没有验证过这个)

  2. 发布编码器和调试解码器怎么样? (我试试这个,没关系)

  3. 我想两者都应该没问题,但我仍然想知道为什么不是理论水平或为什么不在理论水平。

2 个答案:

答案 0 :(得分: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,你最终会进入makefile.base,其中包含以下部分:

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

所以你有调试模式和发布模式之间的区别。无论您使用debug-binary还是release-binary,生成和重构的比特流都是相同的。

你可以很好地混合调试和发布二进制文件。

希望它有所帮助...

答案 1 :(得分:0)

编码器的调试和发布版本生成的HEVC比特流应该相同。此外,两种构建变体中解码器的行为应该相同。在开发过程中没有正式的测试,但我从未在HM中遇到任何问题。

如果您发现不存在这种情况,则会将其视为错误,并应在错误跟踪器中进行报告。