在hevc x265中实现新的帧内预测模式

时间:2016-08-09 16:03:52

标签: c++ image-compression hevc libx265 bpg

我是一名研究生,目前致力于扩展现代图像和视频压缩编解码器,以实现更好的性能。我目前正在修改BPG(Better Portable Graphics)和x265(HEVC / H.265实现)。

我目前的方法涉及添加额外的帧内预测模式,这些模式可以利用大于的信息量来自上面的CTU(编码树单元)的1个像素行和来自CTU的1个像素列向左转。

我实现了我的方法并将我的帧内预测模式命名为" 35" (BPG和hevc使用0-34的模式)。我目前的方法要求每次使用帧内预测模式时,每次存储两个附加数字(12位)。我在将这两个数字嵌入比特流(编码)和从比特流(解码)中检索它们时遇到了问题。

我从BPG提供的x265软件包中修改了entropy.cpp中的函数 codeIntraDirLumaAng ,以便在遇到我的新帧内预测模式35时写入另外两个数字。 / p>

我的问题如下:

1)鉴于我有更多的预测模式,并且我希望它们增加更多,我应该修改以下代码行吗?

encodeBinsEP(dir[j], 5); 

encodeBinsEP(dir[j], 6);

2)当我运行解码器时,它第一次遇到应该存储模式35的实例。它无法读取它,而是读取模式26。我相信这是因为hevc中的内鲁马Pred-Dir的推导程序? (关于如何在比特流中正确嵌入我的新帧内预测模式以便可以正确读取的任何输入?)

3)我应该在CABAC状态下为我编码的两个额外数字做些什么吗?我创建了一个额外的上下文来处理这种新的信息。我希望指出如何设置我另外定义的NUM_STATES_CTX变量的值以及如何使用CABAC来最好地编码这两个数字?

0 个答案:

没有答案