这是关于HEVC编码器和解码器 我有
** encoder and decoder in debug mode
** encoder and decoder in release mode
我知道发布模式可以优化。
我们可以使用调试编码器和解码器吗?(我还没有验证过这个)
发布编码器和调试解码器怎么样? (我试试这个,没关系)
我想两者都应该没问题,但我仍然想知道为什么不是理论水平或为什么不在理论水平。
答案 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中遇到任何问题。
如果您发现不存在这种情况,则会将其视为错误,并应在错误跟踪器中进行报告。