一种基于四叉树概率预测的低复杂度视频编码方法与流程

文档序号:11961276阅读:来源:国知局

技术特征:

1.一种基于四叉树概率预测的低复杂度视频编码方法,其特征在于,包括以下步骤:

步骤S1、采用预设的编码四叉树对首个图像组(Group of picture,GOP)中所有编码帧进行编码,得到初始GOP中每帧图像的最优编码单元(coding unit,CU)分布概率P;

步骤S2、通过四叉树分布概率P建模得到已编码GOP的预测四叉树结构Festa.

步骤S3、对待编码GOP进行四叉树结构预测,Fpred.表示待编码GOP中每一帧图像的四叉树结构,Fpred.计算如下式:

其中,δ(CU,Framen)表示待编码GOP中第n帧图像的编码四叉树节点是否存在,δ计算如下式:

<mrow> <mi>&delta;</mi> <mo>=</mo> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <mn>0</mn> <mo>,</mo> <mi>P</mi> <mo>&lt;</mo> <mi>&sigma;</mi> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mn>1</mn> <mo>,</mo> <mi>P</mi> <mo>&GreaterEqual;</mo> <mi>&sigma;</mi> </mrow> </mtd> </mtr> </mtable> </mfenced> <mo>,</mo> </mrow>

其中,{1,0}分别代表编码四叉树的节点是否存在,σ为经验阈值,

当式(1)中δ(CU,Framen)=0时,表示预测四叉树中该节点不存在;当δ(CU,Framen)=1时,预测四叉树的根节点尺寸定义为δ(CU,Framen)中CU的最大尺寸;树深度定义为log2(Root node)-log2(leaf node)+1,其中,Root node表示根节点尺寸,leaf node表示δ(CU,Framen)中CU的最小尺寸;

步骤S4、由更新周期T判断当前编码帧是否需要进行概率模型更新,若需更新则进入步骤S5,否则进入步骤S6;

步骤S5、对当前GOP的预测四叉树分布概率模型更新,用更新后的四叉树结构作为当前或后续GOP的预测四叉树,计算如下式:

<mrow> <msubsup> <mover> <mi>F</mi> <mo>~</mo> </mover> <mrow> <mi>e</mi> <mi>s</mi> <mi>t</mi> <mi>a</mi> <mo>.</mo> </mrow> <mi>n</mi> </msubsup> <mo>=</mo> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <msubsup> <mi>F</mi> <mrow> <mi>e</mi> <mi>s</mi> <mi>t</mi> <mi>a</mi> <mo>.</mo> </mrow> <mrow> <mi>n</mi> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <mo>,</mo> </mrow> </mtd> <mtd> <mrow> <mi>Z</mi> <mrow> <mo>(</mo> <msubsup> <mi>F</mi> <mrow> <mi>e</mi> <mi>s</mi> <mi>t</mi> <mi>a</mi> <mo>.</mo> </mrow> <mi>n</mi> </msubsup> <mo>)</mo> </mrow> <mo>=</mo> <mi>Z</mi> <mrow> <mo>(</mo> <msubsup> <mi>F</mi> <mrow> <mi>e</mi> <mi>s</mi> <mi>t</mi> <mi>a</mi> <mo>.</mo> </mrow> <mrow> <mi>n</mi> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>&rho;</mi> <mo>&CenterDot;</mo> <msubsup> <mi>F</mi> <mrow> <mi>e</mi> <mi>s</mi> <mi>t</mi> <mi>a</mi> <mo>.</mo> </mrow> <mrow> <mi>n</mi> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <mo>+</mo> <mrow> <mo>(</mo> <mrow> <mn>1</mn> <mo>-</mo> <mi>&rho;</mi> </mrow> <mo>)</mo> </mrow> <mo>&CenterDot;</mo> <msubsup> <mi>F</mi> <mrow> <mi>e</mi> <mi>s</mi> <mi>t</mi> <mi>a</mi> <mo>.</mo> </mrow> <mi>n</mi> </msubsup> <mo>,</mo> </mrow> </mtd> <mtd> <mrow> <mi>Z</mi> <mrow> <mo>(</mo> <msubsup> <mi>F</mi> <mrow> <mi>e</mi> <mi>s</mi> <mi>t</mi> <mi>a</mi> <mo>.</mo> </mrow> <mi>n</mi> </msubsup> <mo>)</mo> </mrow> <mo>&NotEqual;</mo> <mi>Z</mi> <mrow> <mo>(</mo> <msubsup> <mi>F</mi> <mrow> <mi>e</mi> <mi>s</mi> <mi>t</mi> <mi>a</mi> <mo>.</mo> </mrow> <mrow> <mi>n</mi> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> </mtable> </mfenced> </mrow>

其中,表示更新后的预测四叉树结构,表示当前GOP的已预测四叉树结构,表示前一个GOP的已预测四叉树结构,Z(·)表示F中零元素的个数和位置,ρ∈[0,1]用于平衡更新性能;将替代执行步骤S3,得到预测四叉树的根节点尺寸和树深度,然后执行步骤S6;

步骤S6、由计算得到的根节点尺寸和树深度构成预测四叉树,从预测四叉树根节点开始遍历所有树节点,直到树深度达到预测的最大值,同时通过预测四叉树对当前及后续GOP中所有编码帧进行节点遍历,通过率失真代价计算得到最优CU尺寸划分结果;

步骤S7、判断当前GOP是否为最后一个GOP,若是则采用预测四叉树完成编码并结束,否则返回步骤S4。

2.如权利要求1所述的基于四叉树概率预测的低复杂度视频编码方法,其特征在于,步骤S1具体为:采用一颗树深度为4,根节点尺寸为64×64像素的编码四叉树对首个图像组(Group of picture,GOP)中所有编码帧进行编码,得到初始GOP中每帧图像的最优编码单元(coding unit,CU)分布概率P;

<mrow> <mi>P</mi> <mo>=</mo> <mfrac> <mrow> <mi>N</mi> <mrow> <mo>(</mo> <mi>C</mi> <mi>U</mi> <mo>)</mo> </mrow> </mrow> <mrow> <mi>N</mi> <mrow> <mo>(</mo> <msub> <mi>CU</mi> <mn>64</mn> </msub> <mo>)</mo> </mrow> <mo>+</mo> <mi>N</mi> <mrow> <mo>(</mo> <msub> <mi>CU</mi> <mn>32</mn> </msub> <mo>)</mo> </mrow> <mo>+</mo> <mi>N</mi> <mrow> <mo>(</mo> <msub> <mi>CU</mi> <mn>16</mn> </msub> <mo>)</mo> </mrow> <mo>+</mo> <mi>N</mi> <mrow> <mo>(</mo> <msub> <mi>CU</mi> <mn>08</mn> </msub> <mo>)</mo> </mrow> </mrow> </mfrac> </mrow>

其中,CU64、CU32、CU16、CU08分别表示尺寸为64×64像素、32×32像素、16×16像素、8×8像素的CU,N(CU)表示某一尺寸CU被选中的次数。

3.如权利要求1所述的基于四叉树概率预测的低复杂度视频编码方法,其特征在于,步骤S2中Festa.计算如下式:

其中,P(CU,Framen)表示已编码GOP中第n帧图像的最优CU分布概率。

4.如权利要求1所述的基于四叉树概率预测的低复杂度视频编码方法,其特征在于,步骤S4中的更新周期T计算如下式:

<mrow> <mi>T</mi> <mo>=</mo> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <mi>N</mi> <mo>,</mo> </mrow> </mtd> <mtd> <mrow> <mi>G</mi> <mi>O</mi> <mi>P</mi> <mi>S</mi> <mi>i</mi> <mi>z</mi> <mi>e</mi> <mo>&lt;</mo> <mi>F</mi> <mi>r</mi> <mi>a</mi> <mi>m</mi> <mi>e</mi> <mi> </mi> <mi>R</mi> <mi>a</mi> <mi>t</mi> <mi>e</mi> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>G</mi> <mi>O</mi> <mi>P</mi> <mi>S</mi> <mi>i</mi> <mi>z</mi> <mi>e</mi> <mo>,</mo> </mrow> </mtd> <mtd> <mrow> <mi>G</mi> <mi>O</mi> <mi>P</mi> <mi>S</mi> <mi>i</mi> <mi>z</mi> <mi>e</mi> <mo>&GreaterEqual;</mo> <mi>F</mi> <mi>r</mi> <mi>a</mi> <mi>m</mi> <mi>e</mi> <mi> </mi> <mi>R</mi> <mi>a</mi> <mi>t</mi> <mi>e</mi> </mrow> </mtd> </mtr> </mtable> </mfenced> </mrow>

其中,GOPSize表示GOP长度,Frame Rate表示帧率,N表示编码时一秒钟包含多少个整数倍GOP,N定义如下:

<mrow> <mi>N</mi> <mo>=</mo> <mi>G</mi> <mi>O</mi> <mi>P</mi> <mi>S</mi> <mi>i</mi> <mi>z</mi> <mi>e</mi> <mo>&CenterDot;</mo> <mi>f</mi> <mi>l</mi> <mi>o</mi> <mi>o</mi> <mi>r</mi> <mrow> <mo>(</mo> <mfrac> <mrow> <mi>F</mi> <mi>r</mi> <mi>a</mi> <mi>m</mi> <mi>e</mi> <mi> </mi> <mi>R</mi> <mi>a</mi> <mi>t</mi> <mi>e</mi> </mrow> <mrow> <mi>G</mi> <mi>O</mi> <mi>P</mi> <mi>S</mi> <mi>i</mi> <mi>z</mi> <mi>e</mi> </mrow> </mfrac> <mo>)</mo> </mrow> </mrow>

其中,floor表示下取整。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1