修改HEVC HM参考代码

时间:2013-06-11 07:05:19

标签: video hevc h.265

我是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()功能。我的问题是我无法弄清楚在哪里和如何更改代码以使其不影响其他参数。关于这一点的任何形式的帮助对我来说都是非常有价值的。请帮忙。提前谢谢。

2 个答案:

答案 0 :(得分:1)

要将CU尺寸更改为默认值64x64以外的任何值,请将这些参数用于编码器TAppEncoderStatic

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

如果您需要进一步的帮助,请给我发表评论

答案 1 :(得分:1)

16的记录基数为2等于4.因此,您的变换大小为16.您想要的CU大小为16个块。该错误告诉您最小CU宽度/高度必须(严格地)大于最小变换大小。 16< 16?

您可以更改源中的断言值吗?我建议在TAppEncCfg.cpp中搜索“QuadtreeTULog2MaxSize”。它可能会引导您稍后使用的变量以及您要编辑的xConfirmPara。

希望这有用。