1

我对 HEVC 编解码器领域非常陌生。我正在使用 HM 参考代码版本 10.1。我的任务是将他的 CU 大小限制为 16x16。因此,我尝试的是在配置文件中将参数MaxCUWidth、MaxCUHeight分别设置为 16 和 16。这可确保最大 CU 大小限制为 16x16。但是,下一个参数是QuadtreeTULog2MaxSize 和 QuadtreeTULog2MinSize。为了确保 CU 不被细分,即使 MinCUSize 为 16x16,我必须将 QuadtreeTULog2MaxSize 和 QuadtreeTULog2MinSize 分别设置为 4 和 4(我使用文档部分中的软件手册确定了这个值)。因此,当我给出 4 和 4 作为它们的值时,代码会因错误而崩溃:

Error: Minimum CU width must be greater than minimum transform size

Error: Minimum CU Height must be greater than minimum transform size

所以现在我必须在解析输入配置文件的函数中修改HM参考源代码。即TAppEncCfg::xCheckParameter()函数。我的问题是我无法弄清楚代码需要在哪里以及如何更改,以免影响其他参数。任何与此相关的帮助对我来说都是非常有价值的。请帮忙。提前致谢。

4

2 回答 2

1

要将 CU 大小更改为除默认值之外的任何值64x64,请将这些参数用于编码器TAppEncoderStatic

--MaxCUWidth=32 \
--MaxCUHeight=32 \
--MaxPartitionDepth=2 \

如果您需要进一步的帮助,请给我留言

于 2013-06-12T21:00:14.513 回答
1

Log base 2 of 16 equals 4. So your transform size would be 16. The CU size that you want is a 16 block. The error tells you that the minimum CU width/height must be (strictly) greater than the minimum transform size. 16 < 16?

You could change the assertion values in the source? I would recommend a search for "QuadtreeTULog2MaxSize" in TAppEncCfg.cpp. It will likely lead you to the variable being used later as well as the xConfirmPara that you want to edit.

Hope this is helpful.

于 2013-06-14T15:22:11.217 回答