我一直在研究 HM 参考软件一段时间,以改进帧内预测部分的某些内容。现在在代码中添加了一个新的帧内预测算法,我让编码器在我的算法和 HM 的默认算法之间进行选择(RDCost
当然是根据)。
我现在需要的是为每个 PU 发出一个标志信号,以便解码器能够执行与编码器在速率失真循环中决定的算法相同的算法。
我想知道我应该怎么做才能正确地将这一位标志添加到流中,而不会破坏代码中的任何内容。
假设我想使用 CABAC 上下文模型来跟踪我的标志的统计信息,我还应该做什么:
ContextModel3DBuffer m_cCUIntraAlgorithmSCModel
在文件中添加一个新的上下文模型TEncSbac.h
。- 通过查看 HM 如何初始化其他上下文模型来正确初始化模型(在编码器和解码器端)。
- 分别在编码器端和解码器端调用函数
m_pcBinIf->encodeBin(myFlag, cCUIntraAlgorithmSCModel)
和。m_pcTDecBinIfdecodeBin(myFlag, cCUIntraAlgorithmSCModel)
我采取了这三个步骤,但显然它破坏了一些东西。
PS:即使是等概率信号(即不使用 CABAC 上下文)也会很有用。我只想和平地送出这面旗帜!
提前致谢。