主权项 |
1、一种视频图象编码方法,包括以下步骤:a、将输入视频图象分割成16×16宏块,并对I帧图象进行帧内象素预测和补偿处理,对P帧图象进行帧间运动估计及运动补偿处理;b、变换器对输入预测差值数据进行变换处理;c、对变换系数进行量化及熵编码处理,并将编码码流传递给接收端;d、接收端对编码码流进行熵解码及逆量化处理;e、逆变换器对逆量化后系数进行逆变换处理;f、对逆变换处理后的图象数据进行帧内象素补偿或帧间运动补偿,并将解码后的视频图象输出; 其特征在于所述的步骤b,采用2D 4×4 DCT-like整数变换方法对视频图象进行变换处理,其变换计算采用如下公式:Y=(CXCT)E所述的步骤e,采用2D 4×4 IDCT-like逆变换方法对视频图象进行逆变换处理,其逆变换采用如下公式:X=CT(YE)C其中X为图象数据距阵或预测差值数据距阵,Y为相应的变换系数距阵,CT表示矩阵C的转置矩阵,表示两个矩阵对应位置的元素相乘,E为一个伸缩矩阵,在方法实施过程中,做如下近似取值:<math> <mrow> <mfrac> <mi>b</mi> <mi>c</mi> </mfrac> <mo>=</mo> <mn>2.5</mn> <mo>,</mo> <mi>a</mi> <mo>=</mo> <mfrac> <mn>1</mn> <mn>2</mn> </mfrac> <mo>,</mo> <mi>c</mi> <mo>=</mo> <mn>2</mn> <msqrt> <mfrac> <mn>1</mn> <mn>58</mn> </mfrac> </msqrt> <mo>,</mo> </mrow> </math> <math> <mrow> <mi>C</mi> <mo>=</mo> <mfenced open='[' close=']'> <mtable> <mtr> <mtd> <mn>1</mn> </mtd> <mtd> <mn>1</mn> </mtd> <mtd> <mn>1</mn> </mtd> <mtd> <mn>1</mn> </mtd> </mtr> <mtr> <mtd> <mn>5</mn> </mtd> <mtd> <mn>2</mn> </mtd> <mtd> <mo>-</mo> <mn>2</mn> </mtd> <mtd> <mo>-</mo> <mn>5</mn> </mtd> </mtr> <mtr> <mtd> <mn>1</mn> </mtd> <mtd> <mo>-</mo> <mn>1</mn> </mtd> <mtd> <mo>-</mo> <mn>1</mn> </mtd> <mtd> <mn>1</mn> </mtd> </mtr> <mtr> <mtd> <mn>2</mn> </mtd> <mtd> <mo>-</mo> <mn>5</mn> </mtd> <mtd> <mn>5</mn> </mtd> <mtd> <mo>-</mo> <mn>2</mn> </mtd> </mtr> </mtable> </mfenced> <mo>,</mo> </mrow> </math> <math> <mrow> <mi>E</mi> <mo>=</mo> <mfenced open='[' close=']'> <mtable> <mtr> <mtd> <msup> <mi>a</mi> <mn>2</mn> </msup> </mtd> <mtd> <mfrac> <mi>ac</mi> <mn>2</mn> </mfrac> </mtd> <mtd> <msup> <mi>a</mi> <mn>2</mn> </msup> </mtd> <mtd> <mfrac> <mi>ac</mi> <mn>2</mn> </mfrac> </mtd> </mtr> <mtr> <mtd> <mfrac> <mi>ac</mi> <mn>2</mn> </mfrac> </mtd> <mtd> <mfrac> <msup> <mi>c</mi> <mn>2</mn> </msup> <mn>4</mn> </mfrac> </mtd> <mtd> <mfrac> <mi>ac</mi> <mn>2</mn> </mfrac> </mtd> <mtd> <mfrac> <msup> <mi>c</mi> <mn>2</mn> </msup> <mn>4</mn> </mfrac> </mtd> </mtr> <mtr> <mtd> <msup> <mi>a</mi> <mn>2</mn> </msup> </mtd> <mtd> <mfrac> <mi>ac</mi> <mn>2</mn> </mfrac> </mtd> <mtd> <msup> <mi>a</mi> <mn>2</mn> </msup> </mtd> <mtd> <mfrac> <mi>ac</mi> <mn>2</mn> </mfrac> </mtd> </mtr> <mtr> <mtd> <mfrac> <mi>ac</mi> <mn>2</mn> </mfrac> </mtd> <mtd> <mfrac> <msup> <mi>c</mi> <mn>2</mn> </msup> <mn>4</mn> </mfrac> </mtd> <mtd> <mfrac> <mi>ac</mi> <mn>2</mn> </mfrac> </mtd> <mtd> <mfrac> <msup> <mi>c</mi> <mn>2</mn> </msup> <mn>4</mn> </mfrac> </mtd> </mtr> </mtable> </mfenced> <mo>≈</mo> <mfenced open='[' close=']'> <mtable> <mtr> <mtd> <mn>0.25</mn> </mtd> <mtd> <mn>0.0657</mn> </mtd> <mtd> <mn>0.25</mn> </mtd> <mtd> <mn>0.0657</mn> </mtd> </mtr> <mtr> <mtd> <mn>0.0657</mn> </mtd> <mtd> <mn>0.0172</mn> </mtd> <mtd> <mn>0.0657</mn> </mtd> <mtd> <mn>0.0172</mn> </mtd> </mtr> <mtr> <mtd> <mn>0.25</mn> </mtd> <mtd> <mn>0.0657</mn> </mtd> <mtd> <mn>0.25</mn> </mtd> <mtd> <mn>0.0657</mn> </mtd> </mtr> <mtr> <mtd> <mn>0.0657</mn> </mtd> <mtd> <mn>0.0172</mn> </mtd> <mtd> <mn>0.0657</mn> </mtd> <mtd> <mn>0.0172</mn> </mtd> </mtr> </mtable> </mfenced> <mo>.</mo> </mrow> </math> |