首页 / 专利库 / 纺织设备及加工 / 针织机 / 经编机 / 前向和逆向离散余弦变换的高效定点近似法

前向和逆向离散余弦变换的高效定点近似法

阅读:521发布:2022-07-30

专利汇可以提供前向和逆向离散余弦变换的高效定点近似法专利检索,专利查询,专利分析的服务。并且本 发明 描述使用定点计算来近似表示逆向离散余弦变换的计算的技术。根据这些技术,通过使经编码系数矩阵中的系数乘以比例因子来产生经按比例缩放系数矩阵。接下来,通过将中点偏差值加到所述经按比例缩放系数矩阵的DC系数来产生有偏系数矩阵。接着使用定点算术对所述有偏系数矩阵应用变换。接着使所述所得矩阵中的值右移,以便导出 像素 分量值矩阵。接着组合像素分量值矩阵以创建像素矩阵。通过这些技术而产生的所述像素矩阵接近地类似使用理想逆向离散余弦变换(“IDCT”)进行解压缩的像素矩阵。,下面是前向和逆向离散余弦变换的高效定点近似法专利的具体信息内容。

1.一种方法,其包括:
使8×8经编码系数矩阵中的每一系数按比例缩放因子A、因子B、因子C、因子D、因子
E、因子F、因子G、因子H、因子I或因子J中的一者,以便产生经按比例缩放系数矩阵,
其中A=1024,B=1138,C=1730,D=1609,E=1264,F=1922,G=1788,H=
2923,I=2718,且J=2528;
使用定点经按比例缩放的一维变换的重复应用将所述经按比例缩放系数矩阵变换成
经变换系数矩阵;
使所述经变换系数矩阵中的经变换系数右移,以便产生经调节系数矩阵;
其中所述经调节系数矩阵中的每一经调节系数近似表示通过对所述经编码系数矩阵
应用理想的二维逆向离散余弦变换(“IDCT”)将产生的值矩阵中的对应值;
显示8×8像素,其中所述8×8像素区块中的每一像素包含基于所述经调节系数
矩阵中的经调节系数的像素分量值。
2.根据权利要求1所述的方法,其中重复应用所述定点经按比例缩放的一维变换包
括:
对所述经按比例缩放系数矩阵的每一行向量应用所述定点经按比例缩放的一维变换,
以产生中间系数矩阵;
对所述中间系数矩阵的每一列向量应用所述定点经按比例缩放的一维变换,以产生经
变换系数矩阵;以及
3.根据权利要求1所述的方法,其中显示所述8×8像素区块包括将所述8×8像素区
块显示为视频序列中的视频的部分。
4.根据权利要求1所述的方法,其中显示所述8×8像素区块包括将所述8×8像素区
块显示为静止图像的部分。
5.根据权利要求1所述的方法,其中按比例缩放所述系数矩阵中的系数包括:
使所述经编码系数矩阵的位置[0,0]处的系数按比例缩放所述因子A;
使所述经编码系数矩阵的位置[0,1]处的系数按比例缩放所述因子B;
使所述经编码系数矩阵的位置[0,2]处的系数按比例缩放所述因子C;
使所述经编码系数矩阵的位置[0,3]处的系数按比例缩放所述因子D;
使所述经编码系数矩阵的位置[0,4]处的系数按比例缩放所述因子A;
使所述经编码系数矩阵的位置[0,5]处的系数按比例缩放所述因子D;
使所述经编码系数矩阵的位置[0,6]处的系数按比例缩放所述因子C;
使所述经编码系数矩阵的位置[0,7]处的系数按比例缩放所述因子B;
使所述经编码系数矩阵的位置[1,0]处的系数按比例缩放所述因子B;
使所述经编码系数矩阵的位置[1,1]处的系数按比例缩放所述因子E;
使所述经编码系数矩阵的位置[1,2]处的系数按比例缩放所述因子F;
使所述经编码系数矩阵的位置[1,3]处的系数按比例缩放所述因子G;
使所述经编码系数矩阵的位置[1,4]处的系数按比例缩放所述因子B;
使所述经编码系数矩阵的位置[1,5]处的系数按比例缩放所述因子G;
使所述经编码系数矩阵的位置[1,6]处的系数按比例缩放所述因子F;
使所述经编码系数矩阵的位置[1,7]处的系数按比例缩放所述因子E;
使所述经编码系数矩阵的位置[2,0]处的系数按比例缩放所述因子C;
使所述经编码系数矩阵的位置[2,1]处的系数按比例缩放所述因子F;
使所述经编码系数矩阵的位置[2,2]处的系数按比例缩放所述因子H;
使所述经编码系数矩阵的位置[2,3]处的系数按比例缩放所述因子I;
使所述经编码系数矩阵的位置[2,4]处的系数按比例缩放所述因子C;
使所述经编码系数矩阵的位置[2,5]处的系数按比例缩放所述因子I;
使所述经编码系数矩阵的位置[2,6]处的系数按比例缩放所述因子H;
使所述经编码系数矩阵的位置[2,7]处的系数按比例缩放所述因子F;
使所述经编码系数矩阵的位置[3,0]处的系数按比例缩放所述因子D;
使所述经编码系数矩阵的位置[3,1]处的系数按比例缩放所述因子G;
使所述经编码系数矩阵的位置[3,2]处的系数按比例缩放所述因子I;
使所述经编码系数矩阵的位置[3,3]处的系数按比例缩放所述因子J;
使所述经编码系数矩阵的位置[3,4]处的系数按比例缩放所述因子D;
使所述经编码系数矩阵的位置[3,5]处的系数按比例缩放所述因子J;
使所述经编码系数矩阵的位置[3,6]处的系数按比例缩放所述因子I;
使所述经编码系数矩阵的位置[3,7]处的系数按比例缩放所述因子G;
使所述经编码系数矩阵的位置[4,0]处的系数按比例缩放所述因子A;
使所述经编码系数矩阵的位置[4,1]处的系数按比例缩放所述因子B;
使所述经编码系数矩阵的位置[4,2]处的系数按比例缩放所述因子C;
使所述经编码系数矩阵的位置[4,3]处的系数按比例缩放所述因子D;
使所述经编码系数矩阵的位置[4,4]处的系数按比例缩放所述因子A;
使所述经编码系数矩阵的位置[4,5]处的系数按比例缩放所述因子D;
使所述经编码系数矩阵的位置[4,6]处的系数按比例缩放所述因子C;
使所述经编码系数矩阵的位置[4,7]处的系数按比例缩放所述因子B;
使所述经编码系数矩阵的位置[5,0]处的系数按比例缩放所述因子D;
使所述经编码系数矩阵的位置[5,1]处的系数按比例缩放所述因子G;
使所述经编码系数矩阵的位置[5,2]处的系数按比例缩放所述因子I;
使所述经编码系数矩阵的位置[5,3]处的系数按比例缩放所述因子J;
使所述经编码系数矩阵的位置[5,4]处的系数按比例缩放所述因子D;
使所述经编码系数矩阵的位置[5,5]处的系数按比例缩放所述因子J;
使所述经编码系数矩阵的位置[5,6]处的系数按比例缩放所述因子I;
使所述经编码系数矩阵的位置[5,7]处的系数按比例缩放所述因子G;
使所述经编码系数矩阵的位置[6,0]处的系数按比例缩放所述因子C;
使所述经编码系数矩阵的位置[6,1]处的系数按比例缩放所述因子F;
使所述经编码系数矩阵的位置[6,2]处的系数按比例缩放所述因子H;
使所述经编码系数矩阵的位置[6,3]处的系数按比例缩放所述因子I;
使所述经编码系数矩阵的位置[6,4]处的系数按比例缩放所述因子C;
使所述经编码系数矩阵的位置[6,5]处的系数按比例缩放所述因子I;
使所述经编码系数矩阵的位置[6,6]处的系数按比例缩放所述因子H;
使所述经编码系数矩阵的位置[6,7]处的系数按比例缩放所述因子F;
使所述经编码系数矩阵的位置[7,0]处的系数按比例缩放所述因子B;
使所述经编码系数矩阵的位置[7,1]处的系数按比例缩放所述因子E;
使所述经编码系数矩阵的位置[7,2]处的系数按比例缩放所述因子F;
使所述经编码系数矩阵的位置[7,3]处的系数按比例缩放所述因子G;
使所述经编码系数矩阵的位置[7,4]处的系数按比例缩放所述因子B;
使所述经编码系数矩阵的位置[7,5]处的系数按比例缩放所述因子G;
使所述经编码系数矩阵的位置[7,6]处的系数按比例缩放所述因子F;
使所述经编码系数矩阵的位置[7,7]处的系数按比例缩放所述因子E。
6.根据权利要求5所述的方法,其中对行向量或列向量应用所述变换包括:
通过使x0与x4相加而计算值x0′;
通过使x0与-x4相加而计算值x4′;
通过使x2乘以值α而计算值(x2*α);
通过使x6乘以值β而计算值(x6*β);
通过使x2乘以所述值β而计算值(x2*β);
通过使x6乘以值α而计算值(x6*α);
通过使(x2*α)与-(x6*β)相加而计算值x2′;
通过使(x6*α)与(x2*β)相加而计算值x6′;
通过使x0′与x6′相加而计算值x0″;
通过使x4′与x2′相加而计算值x4″;
通过使x4′与-x2′相加而计算值x2″;
通过使x0′与-x6′相加而计算值x6″;
通过使x1与-x7相加而计算值x7′;
通过使x1与x7相加而计算值x1′;
通过使x3与二的平方根相乘而计算值x3′;
通过使x5与二的平方根相乘而计算值x5′;
通过使x7′与x5′相加而计算值x7″;
通过使x1′与-x3′相加而计算值x3″;
通过使x7′与-x5′相加而计算值x5″;
通过使x3′与x1′相加而计算值x1″;
通过使x7″与值ε相乘而计算值(x7″*ε);
通过使x7″与值ζ相乘而计算值(x7″*ζ);
通过使x3″与值γ相乘而计算值(x3″*γ);
通过使x3″与值δ相乘而计算值(x3″*δ);
通过使x5″与所述值δ相乘而计算值(x5″*δ);
通过使x5″与所述值γ相乘而计算值(x5″*γ);
通过使x1″与所述值ζ相乘而计算值(x1″*ζ);
通过使x1″与所述值ε相乘而计算值(x1″*ε);
通过使(x7″*ε)与-(x1″*ζ)相加而计算值x7′″;
通过使(x3″*γ)与-(x5″*δ)相加而计算值x3′″;
通过使(x5″*γ)与(x3″*δ)相加而计算值x5′″;
通过使(x1″*ε)与(x7″*ζ)相加而计算值x1′″;
通过使x7′″与x0″相加而计算值X0;
通过使x4″与x5′″相加而计算值X1;
通过使x2″与x3′″相加而计算值X2;
通过使x6″与x7′″相加而计算值X3;
通过使x6″与-x1′″相加而计算值X4;
通过使x2″与-x3′″相加而计算值X5;
通过使x4″与-x5′″相加而计算值X6;以及
通过使x0″与-x1′″相加而计算值X7;
其中x0、x1、x2、x3、x4、x5、x6、x7是行向量或列向量中的系数,
其中X1、X2、X3、X4、X5、X6和X7是所述变换的输出值;以及
其中α=41/128,β=99/128,γ=113/128,δ=719/4096,ε=1533/2048,且
ζ=1/2。
7.根据权利要求6所述的方法,其中使用所述定点经按比例缩放的一维变换的重复应
用包括:在不使用乘法或除法运算的情况下,对所述行向量中的一者或所述列向量中的一
者中的系数应用所述变换。
8.根据权利要求7所述的方法,
其中通过使x1与所述值ε相乘而计算值(x1*ε)且其中通过x1与所述值ζ而计算
值(x1*ζ)包括执行以下算术运算序列:
计算值y1,其中y1=(x1>>9)-x1;
通过使x3右移一个位置而计算所述值(x1*ζ);以及
通过从(y1>>2)减去y1而计算所述值(x1*ε);以及
其中通过使x7与所述值ε相乘而计算值(x7*ε)且其中通过x7与所述值ζ而计算
值(x7*ζ)包括执行以下算术运算序列:
计算值y1′,其中y1′=(x7>>9)-x7;
通过使x7右移一个位置而计算所述值(x7*ζ);以及
通过从(y1′>>2)减去y1′而计算所述值(x7*ε);以及
其中通过使x1″与所述值ε相乘而计算所述值(x1″*ε)且其中通过x1″与所述值
ζ而计算所述值(x1″*ζ)包括执行以下算术运算序列:
计算值y1″,其中y1″=(x1″>>9)-x1″;
通过使x1″右移一个位置而计算所述值(x1″*ζ);以及
通过从(y1″>>2)减去y1″而计算所述值(x1″*ε);以及
其中通过使x7″与所述值ε相乘而计算值(x7″*ε)且其中通过x7″与所述值ζ而
计算所述值(x7″*ζ)包括执行以下算术运算序列:
计算值y1′″,其中y1′″=(x7″>>9)-x7″;
通过使x7″右移一个位置而计算所述值(x7″*ζ);以及
通过从(y1″>>2)减去y1′″而计算所述值(x7″*ε)。
9.根据权利要求7所述的方法,
其中通过使x3与值γ相乘而计算值(x3*γ)且其中通过使x3与值δ相乘而计算值
(x3*δ)包括执行以下运算序列:
计算值y2,其中y2=(x3>>3)-(x3>>7);
计算值y3,其中y3=y2-(x3>>11);
计算所述值(x3*δ)=y2+(y3>>1);以及
通过从x3减去y2而计算所述值(x3*γ);以及
其中通过使x5与所述值δ相乘而计算值(x5*δ)且其中通过使x5与所述值γ相乘
而计算值(x5*γ)包括执行以下运算序列:
计算值y2′,其中y2′=(x5>>3)-(x5>>7);
计算值y3′,其中y3′=y2′-(x5>>11);
通过使y2′与(y3′>>1)相加而计算所述值(x5*δ);以及
通过从x5减去y2′而计算所述值(x5*γ);以及
其中通过使x3″与值γ相乘而计算值(x3″*γ)且其中通过使x3″与值δ相乘而计
算值(x3″*δ)包括执行以下运算序列:
计算值y2″,其中y2″=(x3″>>3)-(x3″>>7);
计算值y3″,其中y3″=y2″-(x3″>>11);
计算所述值(x3″*δ)=y2″+(y3″>>1);以及
通过从x3″减去y2″而计算所述值(x3″*γ);以及
其中通过使x5″与所述值δ相乘而计算值(x5″*δ)且其中通过使x5″与所述值γ
相乘
而计算值(x5″*γ)包括执行以下运算序列:
计算值y2′″,其中y2′″=(x5″>>3)-(x5″>>7);
计算值y3′″,其中y3′″=y2′″-(x5″>>11);
通过使y2′″与(y3′″>>1)相加而计算所述值(x5″*δ);以及
通过从x5″减去y2′″而计算所述值(x5″*γ)。
10.根据权利要求7所述的方法,
其中通过使x2乘以值α而计算值(x2*α)且其中通过使x2乘以值β而计算值(x2*β)
包括执行以下运算序列:
计算值y1,其中y1=x2+(x2>>5);
计算值y2,其中y2=y1>>2;
通过使y2与(x2>>4)相加而计算所述值(x2*α);以及
通过从y1减去y2而计算所述值(x2*β);以及
其中通过使x6乘以值α而计算值(x6*α)且其中通过使x6乘以值β而计算值(x6*β)
包括执行以下运算序列:
计算值y1′,其中y1′=x2+(x6>>5);
计算值y2′,其中y2′=y1′>>2;
通过使y2′与(x6>>4)相加而计算所述值(x6*α);以及
通过从y1′减去y2′而计算所述值(x6*β);以及
其中通过使x2″乘以值α而计算值(x2″*α)且其中通过使x2″乘以值β而计算值
(x2″*β)包括执行以下运算序列:
计算值y1″,其中y1″=x2″+(x2″>>5);
计算值y2″,其中y2″=y1″>>2;
通过使y2″与(x2″>>4)相加而计算所述值(x2″*α);以及
通过从y1″减去y2″而计算所述值(x2″*β);以及
其中通过使x6″乘以值α而计算值(x6″*α)且其中通过使x6″乘以值β而计算值
(x6″*β)包括执行以下运算序列:
计算值y1′″,其中y1′″=x2+(x6″>>5);
计算值y2′″,其中y2′″=y1′″>>2;
通过使y2′″与(x6″>>4)相加而计算所述值(x6″*α);以及
通过从y1′″减去y2′″而计算所述值(x6″*β)。
11.根据权利要求6所述的方法,其中使用定点数来表示所述值x0、x1、x2、x3、x4、x5、x6、x7、x0′、x1′、x2′、x3′、x4′、x5′、x6′、x7′、x0″、x1″、x2″、x3″、x4″、x5″、x6″、x7″、x1′″、x3′″、x5′″、x7′″、(x2*α)、(x6*β)、(x2*β)、(x6*α)、(x7″*ε)、(x7″*ζ)、(x3″*γ)、(x3″*δ)、(x5″*δ)、(x5″*γ)、(x1″*ζ)和(x1″*ε),所述定点数在所
述定点数的尾数部分中包含P个位。
12.根据权利要求11所述的方法,其中P等于10。
13.根据权利要求1所述的方法,其中所述方法进一步包括接收包含所述系数矩阵的
位流。
14.根据权利要求1所述的方法,其中所述方法进一步包括将中点偏差项加到所述矩
阵的DC系数,其中所述中点偏差值项等于2的12次幂。
15.根据权利要求1所述的方法,其中所述方法进一步包括:
使所述经变换系数矩阵中的每一系数右移十三个位置,以产生像素分量值矩阵;以及
通过将所述像素分量值矩阵中的像素分量值并入所述像素区块中的像素中来构造所
述像素区块。
16.根据权利要求1所述的方法,其中按比例缩放所述8×8经编码系数矩阵中的每一
系数包括:在不使用乘法或除法运算的情况下,按比例缩放所述经编码系数矩阵中的所述
系数。
17.一种装置,其包括:
按比例缩放模块,所述按比例缩放模块使8×8经编码系数矩阵中的每一系数按比例
缩放因子A、因子B、因子C、因子D、因子E、因子F、因子G、因子H、因子I或因子J中的一者,以便产生经按比例缩放系数矩阵;
其中A=1024,B=1138,C=1730,D=1609,E=1264,F=1922,G=1788,H=
2923,I=2718,且J=2528;
逆向变换模块,所述逆向变换模块使用定点经按比例缩放的一维变换的重复应用
将所述经按比例缩放系数矩阵变换成经变换系数矩阵;
右移模块,所述右移模块使所述经变换系数矩阵中的经变换系数右移,以便产生经调
节系数矩阵;以及
其中所述经调节系数矩阵中的每一经调节系数近似表示通过对所述经编码系数矩阵
应用理想的二维逆向离散余弦变换(“IDCT”)将产生的值矩阵中的对应值;
输出模块,所述输出模块输出8×8像素区块,其中所述像素区块中的每一像素包含基
于所述经调节系数矩阵中的经调节系数的像素分量值。
18.根据权利要求17所述的装置,其中所述逆向变换模块对所述经按比例缩放系数矩
阵的每一行向量应用所述定点经按比例缩放的一维变换,以产生中间系数矩阵,且对所述
中间系数矩阵的每一列向量应用所述定点经按比例缩放的一维变换,以产生经变换系数矩
阵。
19.根据权利要求17所述的装置,其中所述输出模块将所述8×8像素区块显示为视频
序列中的视频帧的部分。
20.根据权利要求19所述的装置,其中所述输出模块将所述8×8像素区块显示为静止
图像的部分。
21.根据权利要求17所述的装置,其中所述按比例缩放模块:
使所述经编码系数矩阵的位置[0,0]处的系数按比例缩放所述因子A;
使所述经编码系数矩阵的位置[0,1]处的系数按比例缩放所述因子B;
使所述经编码系数矩阵的位置[0,2]处的系数按比例缩放所述因子C;
使所述经编码系数矩阵的位置[0,3]处的系数按比例缩放所述因子D;
使所述经编码系数矩阵的位置[0,4]处的系数按比例缩放所述因子A;
使所述经编码系数矩阵的位置[0,5]处的系数按比例缩放所述因子D;
使所述经编码系数矩阵的位置[0,6]处的系数按比例缩放所述因子C;
使所述经编码系数矩阵的位置[0,7]处的系数按比例缩放所述因子B;
使所述经编码系数矩阵的位置[1,0]处的系数按比例缩放所述因子B;
使所述经编码系数矩阵的位置[1,1]处的系数按比例缩放所述因子E;
使所述经编码系数矩阵的位置[1,2]处的系数按比例缩放所述因子F;
使所述经编码系数矩阵的位置[1,3]处的系数按比例缩放所述因子G;
使所述经编码系数矩阵的位置[1,4]处的系数按比例缩放所述因子B;
使所述经编码系数矩阵的位置[1,5]处的系数按比例缩放所述因子G;
使所述经编码系数矩阵的位置[1,6]处的系数按比例缩放所述因子F;
使所述经编码系数矩阵的位置[1,7]处的系数按比例缩放所述因子E;
使所述经编码系数矩阵的位置[2,0]处的系数按比例缩放所述因子C;
使所述经编码系数矩阵的位置[2,1]处的系数按比例缩放所述因子F;
使所述经编码系数矩阵的位置[2,2]处的系数按比例缩放所述因子H;
使所述经编码系数矩阵的位置[2,3]处的系数按比例缩放所述因子I;
使所述经编码系数矩阵的位置[2,4]处的系数按比例缩放所述因子C;
使所述经编码系数矩阵的位置[2,5]处的系数按比例缩放所述因子I;
使所述经编码系数矩阵的位置[2,6]处的系数按比例缩放所述因子H;
使所述经编码系数矩阵的位置[2,7]处的系数按比例缩放所述因子F;
使所述经编码系数矩阵的位置[3,0]处的系数按比例缩放所述因子D;
使所述经编码系数矩阵的位置[3,1]处的系数按比例缩放所述因子G;
使所述经编码系数矩阵的位置[3,2]处的系数按比例缩放所述因子I;
使所述经编码系数矩阵的位置[3,3]处的系数按比例缩放所述因子J;
使所述经编码系数矩阵的位置[3,4]处的系数按比例缩放所述因子D;
使所述经编码系数矩阵的位置[3,5]处的系数按比例缩放所述因子J;
使所述经编码系数矩阵的位置[3,6]处的系数按比例缩放所述因子I;
使所述经编码系数矩阵的位置[3,7]处的系数按比例缩放所述因子G;
使所述经编码系数矩阵的位置[4,0]处的系数按比例缩放所述因子A;
使所述经编码系数矩阵的位置[4,1]处的系数按比例缩放所述因子B;
使所述经编码系数矩阵的位置[4,2]处的系数按比例缩放所述因子C;
使所述经编码系数矩阵的位置[4,3]处的系数按比例缩放所述因子D;
使所述经编码系数矩阵的位置[4,4]处的系数按比例缩放所述因子A;
使所述经编码系数矩阵的位置[4,5]处的系数按比例缩放所述因子D;
使所述经编码系数矩阵的位置[4,6]处的系数按比例缩放所述因子C;
使所述经编码系数矩阵的位置[4,7]处的系数按比例缩放所述因子B;
使所述经编码系数矩阵的位置[5,0]处的系数按比例缩放所述因子D;
使所述经编码系数矩阵的位置[5,1]处的系数按比例缩放所述因子G;
使所述经编码系数矩阵的位置[5,2]处的系数按比例缩放所述因子I;
使所述经编码系数矩阵的位置[5,3]处的系数按比例缩放所述因子J;
使所述经编码系数矩阵的位置[5,4]处的系数按比例缩放所述因子D;
使所述经编码系数矩阵的位置[5,5]处的系数按比例缩放所述因子J;
使所述经编码系数矩阵的位置[5,6]处的系数按比例缩放所述因子I;
使所述经编码系数矩阵的位置[5,7]处的系数按比例缩放所述因子G;
使所述经编码系数矩阵的位置[6,0]处的系数按比例缩放所述因子C;
使所述经编码系数矩阵的位置[6,1]处的系数按比例缩放所述因子F;
使所述经编码系数矩阵的位置[6,2]处的系数按比例缩放所述因子H;
使所述经编码系数矩阵的位置[6,3]处的系数按比例缩放所述因子I;
使所述经编码系数矩阵的位置[6,4]处的系数按比例缩放所述因子C;
使所述经编码系数矩阵的位置[6,5]处的系数按比例缩放所述因子I;
使所述经编码系数矩阵的位置[6,6]处的系数按比例缩放所述因子H;
使所述经编码系数矩阵的位置[6,7]处的系数按比例缩放所述因子F;
使所述经编码系数矩阵的位置[7,0]处的系数按比例缩放所述因子B;
使所述经编码系数矩阵的位置[7,1]处的系数按比例缩放所述因子E;
使所述经编码系数矩阵的位置[7,2]处的系数按比例缩放所述因子F;
使所述经编码系数矩阵的位置[7,3]处的系数按比例缩放所述因子G;
使所述经编码系数矩阵的位置[7,4]处的系数按比例缩放所述因子B;
使所述经编码系数矩阵的位置[7,5]处的系数按比例缩放所述因子G;
使所述经编码系数矩阵的位置[7,6]处的系数按比例缩放所述因子F;以及
使所述经编码系数矩阵的位置[7,7]处的系数按比例缩放所述因子E。
22.根据权利要求17所述的装置,其中所述逆向变换模块通过以下步骤对行向量或列
向量应用所述变换:
通过使x0与x4相加而计算值x0′;
通过使x0与-x4相加而计算值x4′;
通过使x2乘以值α而计算值(x2*α);
通过使x6乘以值β而计算值(x6*β);
通过使x2乘以所述值β而计算值(x2*β);
通过使x6乘以值α而计算值(x6*α);
通过使(x2*α)与-(x6*β)相加而计算值x2′;
通过使(x6*α)与(x2*β)相加而计算值x6′;
通过使x0′与x6′相加而计算值x0″;
通过使x4′与x2′相加而计算值x4″;
通过使x4′与-x2′相加而计算值x2″;
通过使x0′与-x6′相加而计算值x6″;
通过使x1与-x7相加而计算值x7′;
通过使x1与x7相加而计算值x1′;
通过使x3与二的平方根相乘而计算值x3′;
通过使x5与二的平方根相乘而计算值x5′;
通过使x7′与x5′相加而计算值x7″;
通过使x1′与-x3′相加而计算值x3″;
通过使x7′与-x5′相加而计算值x5″;
通过使x3′与x1′相加而计算值x1″;
通过使x7″与值ε相乘而计算值(x7″*ε);
通过使x7″与值ζ相乘而计算值(x7″*ζ);
通过使x3″与值γ相乘而计算值(x3″*γ);
通过使x3″与值δ相乘而计算值(x3″*δ);
通过使x5″与所述值δ相乘而计算值(x5″*δ);
通过使x5″与所述值γ相乘而计算值(x5″*γ);
通过使x1″与所述值ζ相乘而计算值(x1″*ζ);
通过使x1″与所述值ε相乘而计算值(x1″*ε);
通过使(x7″*ε)与-(x1″*ζ)相加而计算值x7′″;
通过使(x3″*γ)与-(x5″*δ)相加而计算值x3′″;
通过使(x5″*γ)与(x3″*δ)相加而计算值x5′″;
通过使(x1″*ε)与(x7″*ζ)相加而计算值x1′″;
通过使x7′″与x0″相加而计算值X0;
通过使x4″与x5′″相加而计算值X1;
通过使x2″与x3′″相加而计算值X2;
通过使x6″与x7′″相加而计算值X3;
通过使x6″与-x1′″相加而计算值X4;
通过使x2″与-x3′″相加而计算值X5;
通过使x4″与-x5′″相加而计算值X6;以及
通过使x0″与-x1′″相加而计算值X7;
其中x0、x1、x2、x3、x4、x5、x6、x7是行向量或列向量中的系数,
其中X1、X2、X3、X4、X5、X6和X7是所述变换的输出值;以及
其中α=41/128,β=99/128,γ=113/128,δ=719/4096,ε=1533/2048,且
ζ=1/2。
23.根据权利要求22所述的装置,其中所述逆向变换模块在不使用乘法或除法运算的
情况下对所述系数矩阵应用所述变换。
24.根据权利要求23所述的装置,
其中所述逆向变换模块通过执行以下算术运算序列来通过使x1与所述值ε相乘而计
算值(x1*ε)且其中通过x1与所述值ζ而计算值(x1*ζ):
计算值y1,其中y1=(x1>>9)-x1;
通过使x3右移一个位置而计算所述值(x1*ζ);以及
通过从(y1>>2)减去y1而计算所述值(x1*ε);以及
其中所述逆向变换模块通过执行以下算术运算序列来通过使x7与所述值ε相乘而计
算值(x7*ε)且其中通过x7与所述值ζ而计算值(x7*ζ):
计算值y1′,其中y1′=(x7>>9)-x7;
通过使x7右移一个位置而计算所述值(x7*ζ);以及
通过从(y1′>>2)减去y1′而计算所述值(x7*ε);以及
其中所述逆向变换模块通过执行以下算术运算序列来通过使x1″与所述值ε相乘而
计算值(x1″*ε)且其中通过x1″与所述值ζ而计算所述值(x1″*ζ):
计算值y1″,其中y1″=(x1″>>9)-x1″;
通过使x1″右移一个位置而计算所述值(x1″*ζ);以及
通过从(y1″>>2)减去y1″而计算所述值(x1″*ε);以及
其中所述逆向变换模块通过执行以下算术运算序列来通过使x7″与所述值ε相乘而
计算值(x7″*ε)且其中通过x7″与所述值ζ而计算所述值(x7″*ζ):
计算值y1′″,其中y1′″=(x7″>>9)-x7″;
通过使x7″右移一个位置而计算所述值(x7″*ζ);以及
通过从(y1′″>>2)减去y1′″而计算所述值(x7″*ε)。
25.根据权利要求23所述的装置,
其中所述逆向变换模块通过执行以下运算序列来通过使x3与值γ相乘而计算值
(x3*γ)且其中通过使x3与值δ相乘而计算值(x3*δ):
计算值y2,其中y2=(x3>>3)-(x3>>7);
计算值y3,其中y3=y2-(x3>>11);
计算所述值(x3*δ)=y2+(y3>>1);以及
通过从x3减去y2而计算所述值(x3*γ);以及
其中所述逆向变换模块通过执行以下运算序列来通过使x5与所述值δ相乘而计算值
(x5*δ)且其中通过使x5与所述值γ相乘而计算值(x5*γ):
计算值y2′,其中y2′=(x5>>3)-(x5>>7);
计算值y3′,其中y3′=y2′-(x5>>11);
通过使y2′与(y3′>>1)相加而计算所述值(x5*δ);以及
通过从x5减去y2′而计算所述值(x5*γ);以及
其中所述逆向变换模块通过执行以下运算序列来通过使x3″与值γ相乘而计算值
(x3″*γ)且其中通过使x3″与值δ相乘而计算值(x3″*δ):
计算值y2″,其中y2″=(x3″>>3)-(x3″>>7);
计算值y3″,其中y3″=y2″-(x3″>>11);
计算所述值(x3″*δ)=y2″+(y3″>>1);以及
通过从x3″减去y2″而计算所述值(x3″*γ);以及
其中所述逆向变换模块通过执行以下运算序列来通过使x5″与所述值δ相乘而计算
值(x5″*δ)且其中通过使x5″与所述值γ相乘而计算值(x5″*γ):
计算值y2′″,其中y2′″=(x5″>>3)-(x5″>>7);
计算值y3′″,其中y3′″=y2′-(x5″>>11);
通过使y2′″与(y3′″>>1)相加而计算所述值(x5″*δ);以及
通过从x5″减去y2′″而计算所述值(x5″*γ)。
26.根据权利要求23所述的装置,
其中所述逆向变换模块通过执行以下运算序列来通过使x2乘以值α而计算所述值(x2
*α)且通过使x2乘以所述值β而计算所述值(x2*β);
计算值y1,其中y1=x2+(x2>>5);
计算值y2,其中y2=y1>>2;
通过使y2与(x2>>4)相加而计算所述值(x2*α);以及
通过从y1减去y2而计算所述值(x2*β);以及
其中所述逆向变换模块通过执行以下运算序列来通过使x6乘以值α而计算所述值
(x6*α)且通过使x6乘以所述值β而计算所述值(x6*β):
计算值y1′,其中y1′=x6+(x6>>5);
计算值y2′,其中y2′=y1′>>2;
通过使y2′与(x6>>4)相加而计算所述值(x6*α);以及
通过从y1′减去y2′而计算所述值(x6*β);以及
其中所述逆向变换模块通过执行以下运算序列来通过使x2″乘以值α而计算值
(x2″*α)且其中通过使x2″乘以值β而计算值(x2″*β):
计算值y1″,其中y1″=x2″+(x2″>>5);
计算值y2″,其中y2″=y1″>>2;
通过使y2″与(x2″>>4)相加而计算所述值(x2″*α);以及
通过从y1″减去y2″而计算所述值(x2″*β);以及
其中所述逆向变换模块通过执行以下运算序列来通过使x6″乘以值α而计算值
(x6″*α)且其中通过使x6″乘以值β而计算值(x6″*β):
计算值y1′″,其中y1′″=x2+(x6″>>5);
计算值y2′″,其中y2′″=y1′″>>2;
通过使y2′″与(x6″>>4)相加而计算所述值(x6″*α);以及
通过从y1′″减去y2′″而计算所述值(x6″*β)。
27.根据权利要求22所述的装置,其中使用定点数来表示所述值x0、x1、x2、x3、x4、x5、x6、x7、x0′、x1′、x2′、x3′、x4′、x5′、x6′、x7′、x0″、x1″、x2″、x3″、x4″、x5″、x6″、x7″、x1′″、x3′″、x5′″、x7′″、(x2*α)、(x6*β)、(x2*β)、(x6*α)、(x7″*ε)、(x7″*ζ)、(x3″*γ)、(x3″*δ)、(x5″*δ)、(x5″*γ)、(x1″*ζ)和(x1″*ε),所述定点数在所
述定点数的尾数部分中包含P个位。
28.根据权利要求27所述的装置,其中P等于10。
29.根据权利要求17所述的装置,其中所述装置包括接收数据的网络接口,从所述数
据中导出所述经编码系数矩阵。
30.根据权利要求17所述的装置,其中所述装置包括将中点偏差项加到DC系数的系数
加偏差模块,其中所述中点偏差项等于2的12次幂。
31.根据权利要求30所述的装置,其中所述装置进一步包括:
右移模块,所述右移模块使所述经变换系数矩阵中的每一系数右移十三个位置,以产
生像素分量值矩阵;以及
像素重构模块,所述像素重构模块通过将所述像素分量值矩阵中的像素分量值并入所
述像素区块中的像素中来构造所述像素区块。
32.根据权利要求17所述的装置,其中所述装置进一步包括用以显示所述像素区块的
媒体呈现单元。
33.根据权利要求17所述的装置,其中所述按比例缩放模块在不使用乘法或除法运算
的情况下按比例缩放所述经编码系数。
34.一种装置,其包括:
用于使8×8经编码系数矩阵中的系数按比例缩放因子A、因子B、因子C、因子D、因子
E、因子F、因子G、因子H、因子I或因子J中的一者以便产生经按比例
缩放系数矩阵的装置,其中A=1024,B=1138,C=1730,D=1609,E=1264,F=
1922,G=1788,H=2923,I=2718,且J=2528;
用于使用定点经按比例缩放的一维变换的重复应将所述经按比例缩放系数矩阵变换
成经变换系数矩阵的装置;
用于使所述经变换系数矩阵中的经变换系数右移以便产生经调节系数矩阵的装置;
其中所述经调节系数矩阵中的每一经调节系数近似表示通过对所述经编码系数矩阵
应用理想的二维逆向离散余弦变换(“IDCT”)将产生的值矩阵中的对应值;以及
用于输出8×8像素区块的装置,其中所述像素区块中的每一像素包含基于所述经调
节系数矩阵中的经调节系数的像素分量值。
35.根据权利要求34所述的装置,其中所述用于使用所述定点经按比例缩放的一维变
换的重复应用的装置包括:
用于对所述经按比例缩放系数矩阵的每一行向量应用所述定点经按比例缩放的一维
变换以产生中间系数矩阵的装置;以及
用于对所述中间系数矩阵的每一列向量应用所述定点经按比例缩放的一维变换以产
生经变换系数矩阵的装置。
36.根据权利要求34所述的装置,其中所述用于输出所述8×8像素区块的装置将所述
8×8像素区块显示为视频序列中的视频帧的部分。
37.根据权利要求34所述的装置,其中所述用于输出所述8×8像素区块的装置将所述
8×8像素区块显示为静止图像的部分。
38.根据权利要求34所述的装置,其中所述用于按比例缩放系数的装置包括:
用于使所述经编码系数矩阵的位置[0,0]处的系数按比例缩放所述因子A的装置;
用于使所述经编码系数矩阵的位置[0,1]处的系数按比例缩放所述因子B的装置;
用于使所述经编码系数矩阵的位置[0,2]处的系数按比例缩放所述因子C的装置;
用于使所述经编码系数矩阵的位置[0,3]处的系数按比例缩放所述因子D的装置;
用于使所述经编码系数矩阵的位置[0,4]处的系数按比例缩放所述因子A的装置;
用于使所述经编码系数矩阵的位置[0,5]处的系数按比例缩放所述因子D的装置;
用于使所述经编码系数矩阵的位置[0,6]处的系数按比例缩放所述因子C的装置;
用于使所述经编码系数矩阵的位置[0,7]处的系数按比例缩放所述因子B的装置;
用于使所述经编码系数矩阵的位置[1,0]处的系数按比例缩放所述因子B的装置;
用于使所述经编码系数矩阵的位置[1,1]处的系数按比例缩放所述因子E的装置;
用于使所述经编码系数矩阵的位置[1,2]处的系数按比例缩放所述因子F的装置;
用于使所述经编码系数矩阵的位置[1,3]处的系数按比例缩放所述因子G的装置;
用于使所述经编码系数矩阵的位置[1,4]处的系数按比例缩放所述因子B的装置;
用于使所述经编码系数矩阵的位置[1,5]处的系数按比例缩放所述因子G的装置;
用于使所述经编码系数矩阵的位置[1,6]处的系数按比例缩放所述因子F的装置;
用于使所述经编码系数矩阵的位置[1,7]处的系数按比例缩放所述因子E的装置;
用于使所述经编码系数矩阵的位置[2,0]处的系数按比例缩放所述因子C的装置;
用于使所述经编码系数矩阵的位置[2,1]处的系数按比例缩放所述因子F的装置;
用于使所述经编码系数矩阵的位置[2,2]处的系数按比例缩放所述因子H的装置;
用于使所述经编码系数矩阵的位置[2,3]处的系数按比例缩放所述因子I的装置;
用于使所述经编码系数矩阵的位置[2,4]处的系数按比例缩放所述因子C的装置;
用于使所述经编码系数矩阵的位置[2,5]处的系数按比例缩放所述因子I的装置;
用于使所述经编码系数矩阵的位置[2,6]处的系数按比例缩放所述因子H的装置;
用于使所述经编码系数矩阵的位置[2,7]处的系数按比例缩放所述因子F的装置;
用于使所述经编码系数矩阵的位置[3,0]处的系数按比例缩放所述因子D的装置;
用于使所述经编码系数矩阵的位置[3,1]处的系数按比例缩放所述因子G的装置;
用于使所述经编码系数矩阵的位置[3,2]处的系数按比例缩放所述因子I的装置;
用于使所述经编码系数矩阵的位置[3,3]处的系数按比例缩放所述因子J的装置;
用于使所述经编码系数矩阵的位置[3,4]处的系数按比例缩放所述因子D的装置;
用于使所述经编码系数矩阵的位置[3,5]处的系数按比例缩放所述因子J的装置;
用于使所述经编码系数矩阵的位置[3,6]处的系数按比例缩放所述因子I的装置;
用于使所述经编码系数矩阵的位置[3,7]处的系数按比例缩放所述因子G的装置;
用于使所述经编码系数矩阵的位置[4,0]处的系数按比例缩放所述因子A的装置;
用于使所述经编码系数矩阵的位置[4,1]处的系数按比例缩放所述因子B的装置;
用于使所述经编码系数矩阵的位置[4,2]处的系数按比例缩放所述因子C的装置;
用于使所述经编码系数矩阵的位置[4,3]处的系数按比例缩放所述因子D的装置;
用于使所述经编码系数矩阵的位置[4,4]处的系数按比例缩放所述因子A的装置;
用于使所述经编码系数矩阵的位置[4,5]处的系数按比例缩放所述因子D的装置;
用于使所述经编码系数矩阵的位置[4,6]处的系数按比例缩放所述因子C的装置;
用于使所述经编码系数矩阵的位置[4,7]处的系数按比例缩放所述因子B的装置;
用于使所述经编码系数矩阵的位置[5,0]处的系数按比例缩放所述因子D的装置;
用于使所述经编码系数矩阵的位置[5,1]处的系数按比例缩放所述因子G的装置;
用于使所述经编码系数矩阵的位置[5,2]处的系数按比例缩放所述因子I的装置;
用于使所述经编码系数矩阵的位置[5,3]处的系数按比例缩放所述因子J的装置;
用于使所述经编码系数矩阵的位置[5,4]处的系数按比例缩放所述因子D的装置;
用于使所述经编码系数矩阵的位置[5,5]处的系数按比例缩放所述因子J的装置;
用于使所述经编码系数矩阵的位置[5,6]处的系数按比例缩放所述因子I的装置;
用于使所述经编码系数矩阵的位置[5,7]处的系数按比例缩放所述因子G的装置;
用于使所述经编码系数矩阵的位置[6,0]处的系数按比例缩放所述因子C的装置;
用于使所述经编码系数矩阵的位置[6,1]处的系数按比例缩放所述因子F的装置;
用于使所述经编码系数矩阵的位置[6,2]处的系数按比例缩放所述因子H的装置;
用于使所述经编码系数矩阵的位置[6,3]处的系数按比例缩放所述因子I的装置;
用于使所述经编码系数矩阵的位置[6,4]处的系数按比例缩放所述因子C的装置;
用于使所述经编码系数矩阵的位置[6,5]处的系数按比例缩放所述因子I的装置;
用于使所述经编码系数矩阵的位置[6,6]处的系数按比例缩放所述因子H的装置;
用于使所述经编码系数矩阵的位置[6,7]处的系数按比例缩放所述因子F的装置;
用于使所述经编码系数矩阵的位置[7,0]处的系数按比例缩放所述因子B的装置;
用于使所述经编码系数矩阵的位置[7,1]处的系数按比例缩放所述因子E的装置;
用于使所述经编码系数矩阵的位置[7,2]处的系数按比例缩放所述因子F的装置;
用于使所述经编码系数矩阵的位置[7,3]处的系数按比例缩放所述因子G的装置;
用于使所述经编码系数矩阵的位置[7,4]处的系数按比例缩放所述因子B的装置;
用于使所述经编码系数矩阵的位置[7,5]处的系数按比例缩放所述因子G的装置;
用于使所述经编码系数矩阵的位置[7,6]处的系数按比例缩放所述因子F的装置;以

用于使所述经编码系数矩阵的位置[7,7]处的系数按比例缩放所述因子E的装置。
39.根据权利要求38所述的装置,其中所述用于应用所述变换的装置包括;
用于通过使x0与x4相加而计算值x0′的装置;
用于通过使x0与-x4相加而计算值x4′的装置;
用于通过使x2乘以值α而计算值(x2*α)的装置;
用于通过使x6乘以值β而计算值(x6*β)的装置;
用于通过使x2乘以所述值β而计算值(x2*β)的装置;
用于通过使x6乘以值α而计算值(x6*α)的装置;
用于通过使(x2*α)与-(x6*β)相加而计算值x2′的装置;
用于通过使(x6*α)与(x2*β)相加而计算值x6′的装置;
用于通过使x0′与x6′相加而计算值x0″的装置;
用于通过使x4′与x2′相加而计算值x4″的装置;
用于通过使x4′与-x2′相加而计算值x2″的装置;
用于通过使x0′与-x6′相加而计算值x6″的装置;
用于通过使x1与-x7相加而计算值x7′的装置;
用于通过使x1与x7相加而计算值x1′的装置;
用于通过使x3与二的平方根相乘而计算值x3′的装置;
用于通过使x5与二的平方根相乘而计算值x5′的装置;
用于通过使x7′与x5′相加而计算值x7″的装置;
用于通过使x1′与-x3′相加而计算值x3″的装置;
用于通过使x7′与-x5′相加而计算值x5″的装置;
用于通过使x3′与x1′相加而计算值x1″的装置;
用于通过使x7″与值ε相乘而计算值(x7″*ε)的装置;
用于通过使x7″与值ζ相乘而计算值(x7″*ζ)的装置;
用于通过使x3″与值γ相乘而计算值(x3″*γ)的装置;
用于通过使x3″与值δ相乘而计算值(x3″*δ)的装置;
用于通过使x5″与所述值δ相乘而计算值(x5″*δ)的装置;
用于通过使x5″与所述值γ相乘而计算值(x5″*γ)的装置;
用于通过使x1″与所述值ζ相乘而计算值(x1″*ζ)的装置;
用于通过使x1″与所述值ε相乘而计算值(x1″*ε)的装置;
用于通过使(x7″*ε)与-(x1″*ζ)相加而计算值x7′″的装置;
用于通过使(x3″*γ)与-(x5″*δ)相加而计算值x3′″的装置;
用于通过使(x5″*γ)与(x3″*δ)相加而计算值x5′″的装置;
用于通过使(x1″*ε)与(x7″*ζ)相加而计算值x1′″的装置;
用于通过使x7′″与x0″相加而计算值X0的装置;
用于通过使x4″与x5′″相加而计算值X1的装置;
用于通过使x2″与x3′″相加而计算值X2的装置;
用于通过使x6″与x7′″相加而计算值X3的装置;
用于通过使x6″与-x1′″相加而计算值X4的装置;
用于通过使x2″与-x3′″相加而计算值X5的装置;
用于通过使x4″与-x5′″相加而计算值X6的装置;以及
用于通过使x0″与-x1′″相加而计算值X7的装置;
其中x0、x1、x2、x3、x4、x5、x6、x7是行向量或列向量中的系数,
其中X1、X2、X3、X4、X5、X6和X7是所述变换的输出值;以及
其中α=41/128,β=99/128,γ=113/128,δ=719/4096,ε=1533/2048,且
ζ=1/2。
40.根据权利要求39所述的装置,其中所述用于使用所述变换的重复应用的装置在不
使用乘法或除法运算的情况下对所述系数矩阵应用所述变换。
41.根据权利要求40所述的装置,
其中用于通过使x1与所述值ε相乘而计算值(x1*ε)的装置且其中用于通过x1与所
述值ζ而计算值(x1*ζ)的装置包括:
用于计算值y1的装置,其中y1=(x1>>9)-x1;
用于通过使x3右移一个位置而计算所述值(x1*ζ)的装置;以及
用于通过从(y1>>2)减去y1而计算所述值(x1*ε)的装置;以及
其中用于通过使x7与所述值ε相乘而计算值(x7*ε)的装置且其中用于通过x7与所
述值ζ而计算值(x7*ζ)的装置包括:
用于计算值y1′的装置,其中y1′=(x7>>9)-x7;
用于通过使x7右移一个位置而计算所述值(x7*ζ)的装置;以及
用于通过从(y1′>>2)减去y1′而计算所述值(x7*ε)的装置;以及
其中所述用于通过使x1″与所述值ε相乘而计算值(x1″*ε)的装置且其中所述用
于通过x1″与所述值ζ而计算所述值(x1″*ζ)的装置包括:
用于计算值y1″的装置,其中y1″=(x1″>>9)-x1″;
用于通过使x1″右移一个位置而计算所述值(x1″*ζ)的装置;以及
用于通过从(y1″>>2)减去y1″而计算所述值(x1″*ε)的装置;以及
其中所述用于通过使x7″与所述值ε相乘而计算值(x7″*ε)的装置且其中所述用
于通过x7″与所述值ζ而计算所述值(x7″*ζ)的装置包括:
用于计算值y1′″的装置,其中y1′″=(x7″>>9)-x7″;
用于通过使x7″右移一个位置而计算所述值(x7″*ζ)的装置;以及
用于通过从(y1′″>>2)减去y1′″而计算所述值(x7″*ε)的装置。
42.根据权利要求40所述的装置,
其中用于通过使x3与值γ相乘而计算值(x3*γ)的装置且其中用于通过使x3与值δ
相乘而计算值(x3*δ)的装置包括:
用于计算值y2的装置,其中y2=(x3>>3)-(x3>>7);
用于计算值y3的装置,其中y3=y2-(x3>>11);
用于计算所述值(x3*δ)=y2+(y3>>1)的装置;以及
用于通过从x1减去y2而计算所述值(x3*γ)的装置;以及
其中用于通过使x5与所述值δ相乘而计算值(x5*δ)的装置且其中用于通过使x5与
所述值γ相乘而计算值(x5*γ)的装置包括:
用于计算值y2′的装置,其中y2′=(x5>>3)-(x5>>7);
用于计算值y3′的装置,其中y3′=y2′-(x5>>11);
用于通过使y2′与(y3′>>1)相加而计算所述值(x5*δ)的装置;以及
用于通过从x7减去y2′而计算所述值(x5*γ)的装置;以及
其中所述用于通过使x3″与值γ相乘而计算值(x3″*γ)的装置且其中所述用于通
过使x3″与值δ相乘而计算值(x3″*δ)的装置包括:
用于计算值y2″的装置,其中y2″=(x1″>>3)-(x1″>>7);
用于计算值y3″的装置,其中y3″=y2″-(x1″>>11);
用于计算所述值(x1″*δ)=y2″+(y3″>>1)的装置;以及
用于通过从x1″减去y2″而计算所述值(x1″*γ)的装置;以及
其中所述用于通过使x5″与所述值δ相乘而计算值(x5″*δ)的装置且其中所述用
于通过使x5″与所述值γ相乘而计算值(x5″*γ)的装置包括:
用于计算值y2′″的装置,其中y2′″=(x5″>>3)-(x5″>>7);
用于计算值y3′″的装置,其中y3′″=y2′″-(x5″>>11);
用于通过使y2′″与(y3′″>>1)相加而计算所述值(x5″*δ)的装置;以及
用于通过从x5″减去y2′″而计算所述值(x5″*γ)的装置。
43.根据权利要求40所述的装置,
其中所述用于通过使x2乘以值α而计算所述值(x2*α)的装置且其中所述用于通过
使x2乘以所述值β而计算所述值(x2*β)的装置包括:
用于计算值y1的装置,其中y1′=x2+(x2>>5);
用于计算值y2的装置,其中y2=y1>>2;
用于通过使y2与(x2>>4)相加而计算所述值(x2*α)的装置;以及
用于通过从y1减去y2而计算所述值(x2*β)的装置;以及
其中所述用于通过使x6乘以值α而计算所述值(x6*α)的装置且其中所述用于通过
使x6乘以所述值β而计算所述值(x6*β)的装置包括:
用于计算值y1′的装置,其中y1′=x6+(x6>>5);
用于计算值y2′的装置,其中y2′=y1′>>2;
用于通过使y2′与(x6>>4)相加而计算所述值(x2*α)的装置;以及
用于通过从y1′减去y2′而计算所述值(x2*β)的装置;以及
其中用于通过使x2″乘以值α而计算值(x2″*α)的装置且其中用于通过使x2″乘
以值β而计算值(x2″*β)的装置包括:
用于计算值y1″的装置,其中y1″=x2″+(x2″>>5);
用于计算值y2″的装置,其中y2″=y1″>>2;
用于通过使y2″与(x2″>>4)相加而计算所述值(x2″*α)的装置;以及
用于通过从y1″减去y2″而计算所述值(x2″*β)的装置;以及
其中用于通过使x6″乘以值α而计算值(x6″*α)的装置且其中用于通过使x6″乘
以值β而计算值(x6″*β)的装置包括:
用于计算值y1′″的装置,其中y1′″=x6″+(x6″>>5);
用于计算值y2′″的装置,其中y2′″=y1′″>>2;
用于通过使y2′″与(x6″>>4)相加而计算所述值(x6″*α)的装置;以及
用于通过从y1′″减去y2′″而计算所述值(x6″*β)的装置。
44.根据权利要求39所述的装置,其中使用定点数来表示所述值x0、x1、x2、x3、x4、x5、x6、x7、x0′、x1′、x2′、x3′、x4′、x5′、x6′、x7′、x0″、x1″、x2″、x3″、x4″、x5″、x6″、x7″、x1′″、x3′″、x5′″、x7′″、(x2*α)、(x6*β)、(x2*β)、(x6*α)、(x7″*ε)、(x7″*ζ)、(x3″*γ)、(x3″*δ)、(x5″*δ)、(x5″*γ)、(x1″*ζ)和(x1″*ε),所述定点数在所
述定点数的尾数部分中包含P个位。
45.根据权利要求44所述的装置,其中P等于10。
46.根据权利要求34所述的装置,其中所述装置包括用于接收包含从中导出所述经编
码系数矩阵的数据的媒体文件的装置。
47.根据权利要求34所述的装置,其中所述装置包括用于将中点偏差项加到DC系数的
装置,其中所述中点偏差项等于2的12次幂。
48.根据权利要求34所述的装置,其中所述装置进一步包括:
用于使所述经变换系数矩阵中的每一系数右移十三个位置以产生像素分量值矩阵的
装置;以及
用于通过将所述像素分量值矩阵中的像素分量值并入所述像素区块中的像素中而构
造所述像素区块的装置。
49.根据权利要求34所述的装置,其中所述装置进一步包括用于显示所述像素区块的
装置。
50.根据权利要求34所述的装置,其中所述用于按比例缩放经编码系数的装置在不使
用乘法或除法运算的情况下按比例缩放所述经编码系数。
51.一种包括指令的计算机可读媒体,当被执行时,所述指令致使可编程处理器:
使8×8经编码系数矩阵中的每一系数按比例缩放因子A、因子B、因子C、因子D、因子
E、因子F、因子G、因子H、因子I或因子J中的一者,以便产生经按比例缩放系数矩阵,
其中A=1024,B=1138,C=1730,D=1609,E=1264,F=1922,G=1788,H=
2923,I=2718,且J=2528;
使用定点经按比例缩放的一维变换的重复应将所述经按比例缩放系数矩阵变换成经
变换系数矩阵,
使所述经变换系数矩阵中的经变换系数右移,以便产生经调节系数矩阵;其中所述经
调节系数矩阵中的每一经调节系数近似表示通过对所述经编码系数矩阵应用理想的二维
逆向离散余弦变换(“DCT”)将产生的值矩阵中的对应值;以及
输出致使显示单元显示8×8像素区块的信号,其中所述像素区块中的每一像素包含
基于所述经调节系数矩阵中的经调节系数的像素分量值。
52.根据权利要求51所述的计算机可读媒体,其中所述指令通过致使所述可编程处理
器执行以下步骤来致使所述可编程处理器重复应用所述定点经按比例缩放的一维变换:
对所述经按比例缩放系数矩阵的每一行向量应用所述变换,以产生中间系数矩阵;
对所述中间系数矩阵的每一列向量应用所述变换,以产生经变换系数矩阵。
53.根据权利要求51所述的计算机可读媒体,其中致使所述可编程处理器输出致使所
述显示单元显示所述8×8像素区块的信号的所述指令致使所述可编程处理器输出致使所
述显示单元将所述8×8像素区块显示为视频序列中的视频帧的部分的信号。
54.根据权利要求51所述的计算机可读媒体,其中致使所述可编程处理器输出致使所
述显示单元显示所述8×8像素区块的信号的所述指令致使所述可编程处理器输出致使所
述显示单元将所述8×8像素区块显示为静止图像的部分的信号。
55.根据权利要求51所述的计算机可读媒体,其中致使所述处理器按比例缩放所述系
数矩阵中的所述系数的所述指令致使所述处理器:
使所述经编码系数矩阵的位置[0,0]处的系数按比例缩放所述因子A;
使所述经编码系数矩阵的位置[0,1]处的系数按比例缩放所述因子B;
使所述经编码系数矩阵的位置[0,2]处的系数按比例缩放所述因子C;
使所述经编码系数矩阵的位置[0,3]处的系数按比例缩放所述因子D;
使所述经编码系数矩阵的位置[0,4]处的系数按比例缩放所述因子A;
使所述经编码系数矩阵的位置[0,5]处的系数按比例缩放所述因子D;
使所述经编码系数矩阵的位置[0,6]处的系数按比例缩放所述因子C;
使所述经编码系数矩阵的位置[0,7]处的系数按比例缩放所述因子B;
使所述经编码系数矩阵的位置[1,0]处的系数按比例缩放所述因子B;
使所述经编码系数矩阵的位置[1,1]处的系数按比例缩放所述因子E;
使所述经编码系数矩阵的位置[1,2]处的系数按比例缩放所述因子F;
使所述经编码系数矩阵的位置[1,3]处的系数按比例缩放所述因子G;
使所述经编码系数矩阵的位置[1,4]处的系数按比例缩放所述因子B;
使所述经编码系数矩阵的位置[1,5]处的系数按比例缩放所述因子G;
使所述经编码系数矩阵的位置[1,6]处的系数按比例缩放所述因子F;
使所述经编码系数矩阵的位置[1,7]处的系数按比例缩放所述因子E;
使所述经编码系数矩阵的位置[2,0]处的系数按比例缩放所述因子C;
使所述经编码系数矩阵的位置[2,1]处的系数按比例缩放所述因子F;
使所述经编码系数矩阵的位置[2,2]处的系数按比例缩放所述因子H;
使所述经编码系数矩阵的位置[2,3]处的系数按比例缩放所述因子I;
使所述经编码系数矩阵的位置[2,4]处的系数按比例缩放所述因子C;
使所述经编码系数矩阵的位置[2,5]处的系数按比例缩放所述因子I;
使所述经编码系数矩阵的位置[2,6]处的系数按比例缩放所述因子H;
使所述经编码系数矩阵的位置[2,7]处的系数按比例缩放所述因子F;
使所述经编码系数矩阵的位置[3,0]处的系数按比例缩放所述因子D;
使所述经编码系数矩阵的位置[3,1]处的系数按比例缩放所述因子G;
使所述经编码系数矩阵的位置[3,2]处的系数按比例缩放所述因子I;
使所述经编码系数矩阵的位置[3,3]处的系数按比例缩放所述因子J;
使所述经编码系数矩阵的位置[3,4]处的系数按比例缩放所述因子D;
使所述经编码系数矩阵的位置[3,5]处的系数按比例缩放所述因子J;
使所述经编码系数矩阵的位置[3,6]处的系数按比例缩放所述因子I;
使所述经编码系数矩阵的位置[3,7]处的系数按比例缩放所述因子G;
使所述经编码系数矩阵的位置[4,0]处的系数按比例缩放所述因子A;
使所述经编码系数矩阵的位置[4,1]处的系数按比例缩放所述因子B;
使所述经编码系数矩阵的位置[4,2]处的系数按比例缩放所述因子C;
使所述经编码系数矩阵的位置[4,3]处的系数按比例缩放所述因子D;
使所述经编码系数矩阵的位置[4,4]处的系数按比例缩放所述因子A;
使所述经编码系数矩阵的位置[4,5]处的系数按比例缩放所述因子D;
使所述经编码系数矩阵的位置[4,6]处的系数按比例缩放所述因子C;
使所述经编码系数矩阵的位置[4,7]处的系数按比例缩放所述因子B;
使所述经编码系数矩阵的位置[5,0]处的系数按比例缩放所述因子D;
使所述经编码系数矩阵的位置[5,1]处的系数按比例缩放所述因子G;
使所述经编码系数矩阵的位置[5,2]处的系数按比例缩放所述因子I;
使所述经编码系数矩阵的位置[5,3]处的系数按比例缩放所述因子J;
使所述经编码系数矩阵的位置[5,4]处的系数按比例缩放所述因子D;
使所述经编码系数矩阵的位置[5,5]处的系数按比例缩放所述因子J;
使所述经编码系数矩阵的位置[5,6]处的系数按比例缩放所述因子I;
使所述经编码系数矩阵的位置[5,7]处的系数按比例缩放所述因子G;
使所述经编码系数矩阵的位置[6,0]处的系数按比例缩放所述因子C;
使所述经编码系数矩阵的位置[6,1]处的系数按比例缩放所述因子F;
使所述经编码系数矩阵的位置[6,2]处的系数按比例缩放所述因子H;
使所述经编码系数矩阵的位置[6,3]处的系数按比例缩放所述因子I;
使所述经编码系数矩阵的位置[6,4]处的系数按比例缩放所述因子C;
使所述经编码系数矩阵的位置[6,5]处的系数按比例缩放所述因子I;
使所述经编码系数矩阵的位置[6,6]处的系数按比例缩放所述因子H;
使所述经编码系数矩阵的位置[6,7]处的系数按比例缩放所述因子F;
使所述经编码系数矩阵的位置[7,0]处的系数按比例缩放所述因子B;
使所述经编码系数矩阵的位置[7,1]处的系数按比例缩放所述因子E;
使所述经编码系数矩阵的位置[7,2]处的系数按比例缩放所述因子F;
使所述经编码系数矩阵的位置[7,3]处的系数按比例缩放所述因子G;
使所述经编码系数矩阵的位置[7,4]处的系数按比例缩放所述因子B;
使所述经编码系数矩阵的位置[7,5]处的系数按比例缩放所述因子G;
使所述经编码系数矩阵的位置[7,6]处的系数按比例缩放所述因子F;
使所述经编码系数矩阵的位置[7,7]处的系数按比例缩放所述因子E。
56.根据权利要求55所述的计算机可读媒体,其中致使所述处理器对行向量或列向量
应用所述变换的所述指令致使所述处理器:
通过使x0与x4相加而计算值x0′;
通过使x0与-x4相加而计算值x4′;
通过使x2乘以值α而计算值(x2*α);
通过使x6乘以值β而计算值(x6*β);
通过使x2乘以所述值β而计算值(x2*β);
通过使x6乘以值α而计算值(x6*α);
通过使(x2*α)与-(x6*β)相加而计算值x2′;
通过使(x6*α)与(x2*β)相加而计算值x6′;
通过使x0′与x6′相加而计算值x0″;
通过使x4′与x2′相加而计算值x4″;
通过使x4′与-x2′相加而计算值x2″;
通过使x0′与-x6′相加而计算值x6″;
通过使x1与-x7相加而计算值x7′;
通过使x1与x7相加而计算值x1′;
通过使x3与二的平方根相乘而计算值x3′;
通过使x5与二的平方根相乘而计算值x5′;
通过使x7′与x5′相加而计算值x7″;
通过使x1′与-x3′相加而计算值x3″;
通过使x7′与-x5′相加而计算值x5″;
通过使x3′与x1′相加而计算值x1″;
通过使x7″与值ε相乘而计算值(x7″*ε);
通过使x7″与值ζ相乘而计算值(x7″*ζ);
通过使x3″与值γ相乘而计算值(x3″*γ);
通过使x3″与值δ相乘而计算值(x3″*δ);
通过使x5″与所述值δ相乘而计算值(x5″*δ);
通过使x5″与所述值γ相乘而计算值(x5″*γ);
通过使x1″与所述值ζ相乘而计算值(x1″*ζ);
通过使x1″与所述值ε相乘而计算值(x1″*ε);
通过使(x7″*ε)与-(x1″*ζ)相加而计算值x7′″;
通过使(x3″*γ)与-(x5″*δ)相加而计算值x3′″;
通过使(x5″*γ)与(x3″*δ)相加而计算值x5′″;
通过使(x1″*ε)与(x7″*ζ)相加而计算值x1′″;
通过使x7′″与x0″相加而计算值X0;
通过使x4″与x5′″相加而计算值X1;
通过使x2″与x3′″相加而计算值X2;
通过使x6″与x7′″相加而计算值X3;
通过使x6″与-x1′″相加而计算值X4;
通过使x2″与-x3′″相加而计算值X5;
通过使x4″与-x5′″相加而计算值X6;以及
通过使x0″与-x1′″相加而计算值X7;
其中x0、x1、x2、x3、x4、x5、x6、x7是行向量或列向量中的系数,
其中X1、X2、X3、X4、X5、X6和X7是所述变换的输出值;以及
其中α=41/128,β=99/128,γ=113/128,δ=719/4096,ε=1533/2048,且
ζ=1/2。
57.根据权利要求56所述的计算机可读媒体,其中所述指令通过致使所述处理器在不
使用乘法或除法运算的情况下对所述行向量中的一者或所述列向量中的一者中的系数应
用所述变换来致使所述处理器应用所述变换。
58.根据权利要求57所述的计算机可读媒体,
其中所述指令通过致使所述可编程处理器执行以下步骤来致使所述可编程处理器通
过使x1与所述值ε相乘而计算值(x1*ε),且其中所述指令致使所述可编程处理器通过x1
与所述值ζ而计算值(x1*ζ):
计算值y1,其中y1=(x1>>9)-x1;
通过使x3右移一个位置而计算所述值(x1*ζ);以及
通过从(y1>>2)减去y1而计算所述值(x1*ε);以及
其中所述指令通过致使所述可编程处理器执行以下步骤来致使所述可编程处理器通
过使x7与所述值ε相乘而计算值(x7*ε),且其中所述指令致使所述可编程处理器通过x7
与所述值ζ而计算值(x7*ζ):
计算值y1′,其中y1′=(x7>>9)-x7;
通过使x7右移一个位置而计算所述值(x7*ζ);以及
通过从(y1′>>2)减去y1′而计算所述值(x7*ε);以及
其中所述指令通过致使所述可编程处理器执行以下步骤来致使所述可编程处理器通
过使x1″与所述值ε相乘而计算值(x1″*ε),且其中所述指令致使所述可编程处理器通
过x1″与所述值ζ而计算所述值(x1″*ζ):
计算值y1″,其中y1″=(x1″>>9)-x1″;
通过使x1″右移一个位置而计算所述值(x1″*ζ);以及
通过从(y1″>>2)减去y1″而计算所述值(x1″*ε);以及
其中所述指令通过致使所述可编程处理器执行以下步骤来致使所述可编程处理器通
过使x7″与所述值ε相乘而计算值(x7″*ε),且其中所述指令致使所述可编程处理器通
过x7″与所述值ζ而计算所述值(x7″*ζ):
计算值y1′″,其中y1′″=(x7″>>9)-x7″;
通过使x7″右移一个位置而计算所述值(x7″*ζ);以及
通过从(y1′″>>2)减去y1′″而计算所述值(x7″*ε)。
59.根据权利要求58所述的计算机可读媒体,
其中所述指令通过致使所述可编程处理器执行以下步骤来致使所述可编程处理器通
过使x3与值γ相乘而计算值(x3*γ),且其中所述指令致使所述可编程处理器通过使x3与
值δ相乘而计算值(x3*δ):
计算值y2,其中y2=(x3>>3)-(x3>>7);
计算值y3,其中y3=y2-(x3>>11);
计算所述值(x3*δ)=y2+(y3>>1);以及
通过从x3减去y2而计算所述值(x3*γ);以及
其中所述指令通过致使所述可编程处理器执行以下步骤来致使所述可编程处理器通
过使x5与所述值δ相乘而计算值(x5*δ),且其中所述指令致使所述可编程处理器通过使
x5与所述值γ相乘而计算值(x5*γ):
计算值y2′,其中y2′=(x5>>3)-(x5>>7);
计算值y3′,其中y3′=y2′-(x5>>11);
通过使y2′与(y3′>>1)相加而计算所述值(x5*δ);以及
通过从x5减去y2′而计算所述值(x5*γ);以及
其中所述指令通过致使所述可编程处理器执行以下步骤来致使所述可编程处理器通
过使x3″与值γ相乘而计算值(x3″*γ),且其中所述指令致使所述可编程处理器通过使
x3″与值δ相乘而计算值(x3″*δ):
计算值y2″,其中y2″=(x3″>>3)-(x3″>>7);
计算值y3″,其中y3″=y2″-(x3″>>11);
计算所述值(x3″*δ)=y2″+(y3″>>1);以及
通过从x3″减去y2″而计算所述值(x3″*γ);以及
其中所述指令通过致使所述可编程处理器执行以下步骤来致使所述可编程处理器通
过使x5″与所述值δ相乘而计算值(x5″*δ),且其中所述指令致使所述可编程处理器通
过使x5″与所述值γ相乘而计算值(x5″*γ):
计算值y2′″,其中y2′″=(x5″>>3)-(x5″>>7);
计算值y3′″,其中y3′″=y2′″-(x5″>>11);
通过使y2′″与(y3′″>>1)相加而计算所述值(x5″*δ);以及
通过从x5″减去y2′″而计算所述值(x5″*γ)。
60.根据权利要求58所述的计算机可读媒体,
其中所述指令通过致使所述可编程处理器执行以下步骤来致使所述可编程处理器通
过使x2乘以值α而计算值(x2*α),且其中所述指令致使所述可编程处理器通过使x2乘以
值β而计算值(x2*β):
计算值y1,其中y1=x2+(x2>>5);
计算值y2,其中y2=y1>>2;
通过使y2与(x2>>4)相加而计算所述值(x2*α);以及
通过从y1减去y2而计算所述值(x2*β);以及
其中所述指令通过致使所述可编程处理器执行以下步骤来致使所述可编程处理器通
过使x6乘以值α而计算值(x6*α),且其中所述指令致使所述可编程处理器通过使x6乘以
值β而计算值(x6*β):
计算值y1′,其中y1′=x6+(x6>>5);
计算值y2′,其中y2′=y1′>>2;
通过使y2′与(x6>>4)相加而计算所述值(x6*α);以及
通过从y1′减去y2′而计算所述值(x6*β);以及
其中所述指令通过致使所述可编程处理器执行以下步骤来致使所述可编程处理器通
过使x2″乘以值α而计算值(x2″*α),且其中所述指令致使所述可编程处理器通过使
x2″乘以值β而计算值(x2″*β):
计算值y1″,其中y1″=x2″+(x2″>>5);
计算值y2″,其中y2″=y1″>>2;
通过使y2″与(x2″>>4)相加而计算所述值(x2″*α);以及
通过从y1″减去y2″而计算所述值(x2″*β);以及
其中所述指令通过致使所述可编程处理器执行以下步骤来致使所述可编程处理器通
过使x6″乘以值α而计算值(x6″*α),且其中所述指令致使所述可编程处理器通过使
x6″乘以值β而计算值(x6″*β):
计算值y1′″,其中y1′″=x6″+(x6″>>5);
计算值y2′″,其中y2′″=y1′″>>2;
通过使y2′″与(x6″>>4)相加而计算所述值(x6″*α);以及
通过从y1′″减去y2′″而计算所述值(x6″*β)。
61.根据权利要求56所述的计算机可读媒体,其中使用定点数来表示所述值x0、x1、x2、
x3、x4、x5、x6、x7、x0′、x1′、x2′、x3′、x4′、x5′、x6′、x7′、x0″、x1″、x2″、x3″、x4″、x5″、x6″、x7″、x1′″、x3′″、x5′″、x7′″、(x2*α)、(x6*β)、(x2*β)、(x6*α)、(x7″*ε)、(x7″*ζ)、(x3″*γ)、(x3″*δ)、(x5″*δ)、(x5″*γ)、(x1″*ζ)和(x1″*ε),所述定点数在所述定点数的尾数部分中包含P个位。
62.根据权利要求61所述的计算机可读媒体,其中P等于10。
63.根据权利要求51所述的计算机可读媒体,其中所述指令进一步致使所述处理器接
收包含所述经编码系数矩阵的位流。
64.根据权利要求51所述的计算机可读媒体,其中所述指令进一步致使所述处理器将
中点偏差项加到所述矩阵的DC系数,其中所述中点偏差值项等于2的12次幂。
65.根据权利要求51所述的计算机可读媒体,其中所述指令进一步致使所述处理器:
使所述经变换系数矩阵中的每一系数右移十三个位置,以产生像素分量值矩阵;以及
通过将所述像素分量值矩阵中的像素分量值并入所述像素区块中的像素中而构造所
述像素区块。
66.根据权利要求51所述的计算机可读媒体,其中致使所述处理器按比例缩放所述经
编码系数的所述指令致使所述处理器在不使用乘法或除法运算的情况下按比例缩放所述
经编码系数矩阵中的所述系数。

说明书全文

前向和逆向离散余弦变换的高效定点近似法

[0001] 本申请案主张2006年6月26日申请的第60/816,697号美国临时申请案、2006年8月30日申请的第60/841,362号美国临时申请案、2006年9月25日申请的第60/847,194号美国临时申请案、2006年10月16日申请的第60/829,669号美国临时申请案、2006年12月11日申请的第60/869,530号美国临时申请案、2007年1月8日申请的第60/883,932号美国临时申请案、2007年3月23日申请的第60/896,778号美国临时申请案以及2007年3月30日申请的第60/909,335号美国临时申请案的权益,上述临时申请案的整个内容以引用的方式并入本文中。

技术领域

[0002] 本发明涉及计算机图形和多媒体,且更明确地说,涉及图形、图像和视频信息的压缩。

背景技术

[0003] 许多现存的图像和视频编码标准使用压缩技术,以便允许高分辨率图像和视频作为相对紧凑的文件或数据流而存储或传输。此些编码标准包含联合照片专家组(JointPhotographic Experts Group,JPEG)、运动图片专家组(Moving Pictures Experts Group,MPEG)-1、MPEG-2、MPEG-4部分2、H.261、H.263以及其它图像或视频编码标准。
[0004] 根据许多这些标准,使用“空间”编码对视频进行压缩。这些帧可以是原始帧(即,i帧),或可以是由使用运动补偿的时间编码过程产生的残余帧。在空间编码期间,帧分裂成大小相等的像素。举例来说,未经压缩的帧可分裂成一组8×8个像素区块。对于每一像素区块,将像素分量分成像素分量值矩阵。举例来说,可将每一像素区块划分成Y像素分量值矩阵、U像素分量值矩阵以及V像素分量值矩阵。在此实例中,Y像素分量值指示亮度值,且U和V像素分量值表示色度值。
[0005] 此外,在空间编码期间,对正被编码的帧中的每一像素分量值矩阵应用前向离散余弦变换(forward discrete cosine transform,FDCT)。理想的一维FDCT由以下等式定义:
[0006]
[0007] 其中s是N个原始值的阵列,t是N个经变换值的阵列,且系数c由以下等式给出[0008]
[0009] 1≤k≤N-1。
[0010] 理想的二维FDCT由以下公式定义:
[0011]
[0012] 其中s是N个原始值的阵列,t是N个经变换值的阵列,且c(i,j)由c(i,j)=c(i)c(j)给出,且其中如在一维情况下那样定义c(k)。
[0013] 当使用FDCT来变换像素分量值区块时,产生系数矩阵。可接着使用(例如)霍夫曼码或算术码来对此系数矩阵进行量化和编码。视频位流表示对一系列未经压缩的视频帧中的一系列视频帧中的所有色彩分量值区块执行此过程的组合结果。
[0014] 可通过使此过程反向来从视频位流导出未经压缩的视频帧。明确地说,对位流中的每一系数矩阵进行解压缩,且对所述经解压缩的值进行解量化,以便导出经变换系数矩阵。接着对每一经变换系数矩阵应用逆向离散余弦变换(inverse discrete cosine transform,“IDCT”),以便导出像素分量值矩阵。理想的一维IDCT由以下等式定义:
[0015]
[0016] 其中s是N个原始值的阵列,t是N个经变换值的阵列,且系数c由以下等式给出[0017]
[0018] 1≤k≤N-1。
[0019] 理想的二维IDCT由以下公式定义:
[0020]
[0021] 接着将所得的像素分量值矩阵重组成像素区块,并重组这些像素区块以形成经解码的帧。如果所述经解码的帧是i帧,那么所述帧现被完全解码。然而,如果未经压缩的帧是预测帧或双预测帧,那么所述经解码的帧仅仅是经解码的残余帧。通过使用与经解码的帧相关联的运动向量来构造重构帧,且接着将所述重构帧加到经解码的残余帧,来产生完整的帧。
[0022] 在理想情况下,通过使用FDCT对像素分量值区块进行编码或使用IDCT对像素分量值区块进行解码,不会丢失信息。因此,在这些理想情况下,视频帧的经解码版本等同于所述视频帧的原始版本。然而,因为FDCT和IDCT的计算涉及乘法运算的实数和有效数字的使用,所以计算FDCT或IDCT在计算方面可能较为困难。因此,常常使用精确度有限的数字来近似表示FDCT和IDCT中所使用的实数。由于使用精确度有限的数字来表示实数值而产生舍入误差。此外,量化和解量化可能造成额外误差。
[0023] 压缩和解压缩过程中的误差可导致未经压缩的原始帧与未经压缩的最终帧之间的显著差异。举例来说,未经压缩的最终帧中的色彩可能不同于未经压缩的原始帧中的色彩。此外,在对所预测帧序列进行编码和解码期间,IDCT的编码器的实施与IDCT的解码器的实施之间的失配所导致的误差可累积。这些累积误差通常被称作“IDCT漂移”。

发明内容

[0024] 本发明描述使用定点计算来近似表示逆向离散余弦变换的计算的技术。根据这些技术,通过使经编码系数矩阵中的系数乘以比例因子来产生经按比例缩放系数矩阵。接下来,通过将中点偏差值加到所述经按比例缩放系数矩阵的DC系数来产生有偏系数矩阵。接着使用定点算术对所述有偏系数矩阵应用变换。接着使所述所得矩阵中的值右移,以便导出像素分量值矩阵。接着组合像素分量值矩阵,以创建像素矩阵。通过这些技术而产生的像素矩阵接近地类似使用理想逆向离散余弦变换(“IDCT”)进行解压缩所得的像素矩阵。
[0025] 在一方面,一种方法包括使8×8经编码系数矩阵中的每一系数按比例缩放因子A、因子B、因子C、因子D、因子E、因子F、因子G、因子H、因子I或因子J中的一者,以便产生经按比例缩放系数矩阵。在此方法中,A=1024,B=1138,C=1730,D=1609,E=1264,F=1922,G=1788,H=2923,I=2718,且J=2528。所述方法还包括使用定点经按比例缩放的一维变换的重复应用将所述经按比例缩放系数矩阵变换成经变换系数矩阵。此外,所述方法包括使所述经变换系数矩阵中的经变换系数右移,以便产生经调节系数矩阵。所述经调节系数矩阵中的每一经调节系数近似表示通过对所述经编码系数矩阵应用理想的二维IDCT将产生的值矩阵中的对应值。此外,所述方法包括显示8×8像素区块。所述
8×8像素区块中的每一像素包含基于所述经调节系数矩阵中的经调节系数的像素分量值。
[0026] 在另一方面,一种装置包括按比例缩放模块,所述按比例缩放模块使8×8经编码系数矩阵中的每一系数按比例缩放因子A、因子B、因子C、因子D、因子E、因子F、因子G、因子H、因子I或因子J中的一者,以便产生经按比例缩放系数矩阵,其中A=1024,B=1138,C=1730,D=1609,E=1264,F=1922,G=1788,H=2923,I=2718,且J=2528。所述装置还包括逆向变换模块,所述逆向变换模块使用定点经按比例缩放的一维变换的重复应用将所述经按比例缩放系数矩阵变换成经变换系数矩阵。此外,所述装置包括右移模块,所述右移模块使所述经变换系数矩阵中的经变换系数右移,以便产生经调节系数矩阵。所述经调节系数矩阵中的每一经调节系数近似表示通过对所述经编码系数矩阵应用理想的二维IDCT将产生的值矩阵中的对应值。所述装置还包括输出模块,所述输出模块输出8×8像素区块。所述像素区块中的每一像素包含基于所述经调节系数矩阵中的经调节系数的像素分量值。
[0027] 在另一方面,一种装置包括用于使8×8经编码系数矩阵中的系数按比例缩放因子A、因子B、因子C、因子D、因子E、因子F、因子G、因子H、因子I或因子J中的一者以便产生经按比例缩放系数矩阵的装置,其中A=1024,B=1138,C=1730,D=1609,E=1264,F=1922,G=1788,H=2923,I=2718,且J=2528。此外,所述装置包括用于使用定点经按比例缩放的一维变换的重复应用将所述经按比例缩放系数矩阵变换成经变换系数矩阵的装置。此外,所述装置包括用于使所述经变换系数矩阵中的经变换系数右移以便产生经调节系数矩阵的装置。所述经调节系数矩阵中的每一经调节系数近似表示通过对所述经编码系数矩阵应用理想的二维IDCT将产生的值矩阵中的对应值。此外,所述装置包括用于输出8×8像素区块的装置。所述像素区块中的每一像素包含基于所述经调节系数矩阵中的经调节系数的像素分量值。
[0028] 在另一方面,本发明针对一种含有指令的计算机可读媒体。所述指令致使可编程处理器使8×8经编码系数矩阵中的每一系数按比例缩放因子A、因子B、因子C、因子D、因子E、因子F、因子G、因子H、因子I或因子J中的一者,以便产生经按比例缩放系数矩阵,其中A=1024,B=1138,C=1730,D=1609,E=1264,F=1922,G=1788,H=2923,I=2718,且J=2528。所述指令还致使所述可编程处理器使用定点经按比例缩放的一维变换的重复应用将所述经按比例缩放系数矩阵变换成经变换系数矩阵。此外,所述指令致使所述可编程处理器使所述经变换系数矩阵中的经变换系数右移,以便产生经调节系数矩阵。所述经调节系数矩阵中的每一经调节系数近似表示通过对所述经编码系数矩阵应用理想的二维IDCT将产生的值矩阵中的对应值。所述指令还致使所述可编程处理器输出致使显示器单元显示8×8像素区块的信号。所述像素区块中的每一像素包含基于所述经调节系数矩阵中的经调节系数的像素分量值。
[0029] 在一些情况下,所述计算机可读媒体可形成可出售给制造商且/或可在视频编码装置中使用的计算机程序产品的一部分。所述计算机程序产品可包含所述计算机可读媒体,且在一些情况下,还可包含包装材料。
[0030] 在附图和以下描述内容中陈述一个或一个以上实例的细节。本发明的其它特征、目标和优点将从所述描述内容和图式且从权利要求书变得明显。

附图说明

[0031] 图1是说明对媒体文件进行编码和解码的示范性装置的框图
[0032] 图2是说明编码模块的示范性细节的框图。
[0033] 图3是说明解码模块的示范性细节的框图。
[0034] 图4是说明编码模块的示范性操作的流程图
[0035] 图5是说明解码模块的示范性操作的流程图。
[0036] 图6是说明逆向离散余弦变换(“IDCT”)模块的示范性细节的框图。
[0037] 图7是说明逆向变换模块的示范性操作的流程图。
[0038] 图8是说明前向离散余弦变换(“FDCT”)模块的示范性细节的框图。
[0039] 图9是说明前向向量变换模块的示范性操作的流程图。
[0040] 图10A是说明示范性一维变换的流程图。
[0041] 图10B是说明示范性经按比例缩放的一维变换的流程图。
[0042] 图11是说明逆向变换模块所使用的示范性经按比例缩放的一维变换的流程图。

具体实施方式

[0043] 图1是说明对媒体文件进行编码和解码的示范性装置2的框图。装置2可包括个人计算机、移动无线电话(mobile radiotelephone)、服务器、网络设备、整合到运输工具中的计算机、视频游戏平台、便携型视频游戏装置、计算机工作站、计算机信息站(computer kiosk)、数字标牌(digital signage)、大型计算机、电视机顶盒、网络电话、个人数字助理、视频游戏平台、移动媒体播放器、家用媒体播放器、数字视频投影仪、个人媒体播放器(例如,iPod),或另一类型的电子装置。
[0044] 装置2可包含用以产生媒体数据的媒体源4。媒体源4可包括用以俘获图像数据的数字视频或静态照片摄像机。媒体源4可内建于装置2中,或可作为外围装置附接到装置2。媒体源4还可包括用以记录音频数据的麦克。媒体源4可向处理器6提供媒体数据。处理器6可包括数字信号处理器(digital signal processor,DSP)、微处理器,或某一其它类型的集成电路
[0045] 当处理器6接收到来自媒体源4的媒体数据时,编码模块8可对所述媒体数据进行编码。编码模块8可包括由处理器6执行的软件。或者,编码模块8可包括处理器6内对媒体数据进行编码的专用硬件。在又一替代方案中,编码模块8可包括用以对媒体数据进行编码的软件与硬件的任何组合。
[0046] 编码模块8可将经编码的媒体数据存储在媒体储存库(media repository)10中。媒体储存库10可包括快闪存储器随机存取存储器硬盘驱动器,或某一其它类型的易失性或非易失性数据存储单元。
[0047] 解码模块12可从媒体储存库10中检索经编码的媒体数据。解码模块12可包括由处理器6执行的软件。或者,解码模块12可包括处理器6内对经编码的媒体数据进行解码的专用硬件。在又一替代方案中,解码模块12可包括合作以对经编码的媒体数据进行解码的软件与硬件的组合。
[0048] 装置2中的媒体呈现单元14可呈现由解码模块12解码的媒体数据。举例来说,媒体呈现单元14可包括呈现图像或视频媒体数据的计算机监视器。在另一实例中,媒体呈现单元14可包括呈现音频媒体数据的音频输出装置(例如,扬声器)。媒体呈现单元14可整合到装置2中,或可作为外围装置经由有线或无线链路连接到装置2。
[0049] 装置2还可包括网络接口16。网络接口16可促进装置2与计算机网络之间经由有线或无线链路的通信。举例来说,网络接口16可促进装置2与移动电话网络之间的通信。装置2可经由网络接口16接收媒体文件。举例来说,装置2可通过网络接口16接收照片、视频剪辑、流式传输视频(例如,电视、视频会议、电影)、音频剪辑(例如,铃声、歌曲、MP3文件)、流式传输音频(例如,数字无线电台、语音呼叫等)。当网络接口16接收到媒体文件或视频位流时,网络接口16可将媒体文件或视频位流存储在媒体储存库10中。
[0050] 可依据图片序列而描述视频信号,所述图片序列包含帧(整个图片)或字段(例如,包括帧的奇数行或偶数行的图片)。另外,每一帧或字段可包含两个或两个以上片段,或帧或字段的子部分。如本文中单独或结合其它词语而使用,术语“帧”可指代图片、帧、字段或其片段。
[0051] 当编码模块8对一系列视频帧进行编码时,编码模块8可通过选择所述视频帧中的视频帧作为“i帧”而开始。举例来说,编码模块8可选择每一第八帧作为i帧。i帧是不参考其它帧的帧。在选择i帧之后,编码模块8使用“空间编码”来对所述i帧进行编码。此外,编码模块8可使用“时间编码”来对其余的帧进行编码。
[0052] 为了使用空间编码来对帧进行编码,编码模块8可使帧数据分裂成像素区块。举例来说,编码模块8可使帧数据分裂成具有八个像素宽且八个像素高的像素区块(即,每一像素区块含有64个像素)。编码模块8可接着将每一像素区块中的像素的像素分量值分成单独的像素分量值矩阵。像素的像素分量值是表征所述像素的外观的值。举例来说,每一像素可指定Y像素分量值、Cr像素分量值和Cb像素分量值。Y像素分量值指示像素的亮度,Cr像素分量值指示像素的红色色度,且Cb像素分量值指示像素的蓝色色度。在此实例中,当编码模块8分离像素区块的像素分量值时,编码模块8可获得Y像素分量值矩阵、Cr像素分量值矩阵和Cb像素分量值矩阵。
[0053] 在将像素分量值分成像素分量值矩阵之后,编码模块8通过使所述像素分量值矩阵中的像素分量值左移而产生经调节系数矩阵。对于每一经调节系数矩阵,编码模块8使用定点算术对经调节系数矩阵重复应用一维变换,进而产生经变换系数矩阵。接下来,编码模块8通过使经变换系数矩阵按比例缩放一组比例因子而产生经按比例缩放系数矩阵。这些比例因子中的每一者均为整数值。已经以可使用简单的有理数来近似表示一维变换内的因子的方式选择了比例因子。
[0054] 经按比例缩放系数矩阵中的每一经按比例缩放系数近似表示通过对对应的色彩分量值矩阵应用理想的二维前向离散余弦变换(“FDCT”)将产生的值矩阵中的对应值。理想的一维FDCT由以下等式定义:
[0055]
[0056] 其中s是N个原始值的阵列,t是N个经变换值的阵列,且系数c由以下等式给出[0057]
[0058] 1≤k≤N-1。
[0059] 理想的二维FDCT由以下公式定义:
[0060]
[0061] 其中s是N个原始值的阵列,t是N个经变换值的阵列,且c(i,j)由c(i,j)=c(i)c(j)给出,且其中如在一维情况下那样定义c(k)。
[0062] 在导出经变换系数矩阵之后,编码模块8通过量化所述经按比例缩放系数矩阵中的系数而产生经量化系数矩阵。量化经按比例缩放的系数可减少与经按比例缩放系数矩阵中的高频系数相关联的信息的量。在产生经量化系数矩阵之后,编码模块8可对经量化系数矩阵应用熵编码方案(entropy encoding scheme)。举例来说,编码模块8可对系数矩阵中的经量化系数应用霍夫曼编码方案。当编码模块8对经量化系数矩阵中的每一者应用熵编码方案时,编码模块8可输出经编码的矩阵作为视频位流的一部分。
[0063] 为了使用时间编码来对帧进行编码,编码模块8可将所述帧划分成“宏区块”。视所使用的编码标准而定,这些宏区块可具有固定的或可变的大小,且可为重叠或非重叠的。举例来说,每一宏区块可为16×16像素区块。对于帧中的每一宏区块,编码模块8可尝试识别一个或一个以上参考帧中的源宏区块。视编码标准而定,所述参考帧可以是i帧、预测帧或双预测帧。如果编码模块8能够识别参考帧中的源宏区块,那么编码模块8记录所述宏区块的运动向量。所述运动向量包含指示所述宏区块相对于所识别的源宏区块的平位移的x值,以及指示所述宏区块相对于所识别的源宏区块的垂直位移的y值。如果编码模块
8不能够识别所述宏区块的源宏区块,那么可不要求编码模块8记录所述宏区块的运动向量。接下来,编码模块8产生“重构”帧。所述重构帧含有由于根据当前帧的所记录的运动向量从参考帧移动宏区块而将产生的帧。在产生重构帧之后,编码模块8将重构帧的每一像素中的像素分量值从当前帧的对应像素中的对应像素分量值减去,从而产生“残余”帧。
编码模块8可接着使用熵编码方案来压缩用于所述当前帧的宏区块的运动向量。此外,编码模块8使用上文所描述的空间编码技术来压缩所述残余帧。
[0064] 解码模块12可与编码模块8执行类似的过程,但过程是相反的。举例来说,为了执行空间解码过程,解码模块12可对经编码的视频位流中的每一经编码的经量化系数矩阵应用熵解码方案。解码模块12可接着对每一经量化系数矩阵中的系数进行解量化,进而针对每一经量化系数矩阵产生经解量化系数矩阵。对于每一经量化系数矩阵,解码模块12通过使用一组比例因子按比例缩放所述经量化系数矩阵而产生经按比例缩放系数矩阵。这些比例因子可以是与上文所论述的空间编码过程中所使用的比例因子相同的比例因子。在产生经按比例缩放系数矩阵之后,解码模块12使用定点算术对经量化系数矩阵重复应用一维变换,进而产生经变换系数矩阵。举例来说,解码模块12可通过对经按比例缩放系数矩阵中的每一行向量应用所述一维变换而产生中间系数矩阵。在此实例中,解码模块12可接着通过对所述中间系数矩阵中的每一列向量应用所述一维变换而产生经变换系数矩阵。在产生经变换系数矩阵之后,解码模块12通过使经变换系数矩阵中的经变换系数右移而产生经调节系数矩阵。
[0065] 经调节系数矩阵中的经调节系数近似表示通过对经解量化系数矩阵应用理想的二维逆向离散余弦变换(“IDCT”)将产生的值。理想的一维IDCT由以下公式定义:
[0066]
[0067] 其中s是N个原始值的阵列,t是N个经变换值的阵列,且系数c由以下等式给出[0068]
[0069] 1≤k≤N-1。理想的二维IDCT由以下公式定义:
[0070]
[0071] 可接着将这些像素分量值区块重组成像素区块,且可重组这些像素区块以形成未经压缩的视频帧。
[0072] 在产生经调节系数矩阵之后,解码模块12可接着截割所述经调节系数矩阵中的经调节系数,以便确保所述经调节系数在像素分量值的容许范围内。解码模块12可接着将经截割系数矩阵重组成像素区块。在将像素分量值区块重组成像素区块之后,解码模块12可通过重组像素区块而产生图像。
[0073] 为了对预测帧进行解码,解码模块12可在所述预测帧的残余图像中使用上文所描述的空间解码技术来对经量化系数矩阵进行解码。此外,解码模块12可使用熵解码方案来对预测帧的运动向量进行解码。接下来,解码模块12可通过根据所述运动向量“移动”预测帧的参考帧的宏区块而产生重构帧。在产生重构帧之后,解码模块12将经解码的残余帧的每一像素中的像素分量值加到重构帧的对应像素中的对应像素分量值。此加法的结果是经重构的预测帧。
[0074] 本发明中所描述的技术可提供若干优点。举例来说,因为这些技术应用定点算术,所以这些技术可在较小、较不复杂的装置中应用,例如移动电话、个人数字助理和个人媒体播放器。此外,这些技术可应用于包含以下格式的格式:国际电信联盟标准化部(International Telecommunication Union Standardization Sector,ITU-T)建议H.261、H.263、H.264、T.81(JPEG)以及国际标准化组织(International Organization for Standardization,ISO)/MEC运动图片专家组(MPEG)-1、MPEG-2和MPEG-4部分2媒体格式。
[0075] 图2是说明编码模块8的实例细节的框图。编码模块8可包括一组“模块”。这些模块可包括编码模块8的软件指令的子集。或者,这些模块可包括固件硬件,例如一个或一个以上专用硬件。在另一替代方案中,这些模块可包括软件指令和专用硬件或固件。
[0076] 如图2的实例中所说明,编码模块8包含帧控制模块20,帧控制模块20控制编码模块8将视频帧作为i帧、预测帧还是双预测帧来处理。举例来说,当编码模块8接收到视频帧时,帧控制模块20可确定与所述视频帧相关联的位流旗标指示所述帧是i帧、预测帧,还是双预测帧。如果帧控制模块20确定位流旗标指示所述帧是i帧,那么帧控制模块20可致使所述视频帧由立即对所述视频帧执行空间编码的一组模块来处理。另一方面,如果帧控制模块20确定所述帧是预测帧或双预测帧,那么帧控制模块20可致使所述视频帧由执行时间编码的一组模块来处理。
[0077] 编码模块8包含对视频帧应用空间编码的一系列模块。这些模块包含区块分离器模块(block splitter module)22、分量提取模块(component extraction module)24、前向变换模块26、量化模块28以及熵编码模块30。区块分离器模块22可接收来自媒体源4、网络接口16或另一来源的未经编码的视频帧。当区块分离器模块22接收到未经编码的视频帧时,区块分离器模块22可将所述帧分成像素区块。区块分离器模块22可将像素区块提供给分量提取模块24。
[0078] 当分量提取模块24接收到像素区块时,分量提取模块24可将每一像素的像素分量值转换成不同的色彩格式。举例来说,分量提取模块24可将每一像素从红-绿-蓝(RGB)色彩格式转换成YCrCb色彩格式。在将区块中的像素转换成不同色彩格式之后,分量提取模块24可将区块中的像素的像素分量值分成像素分量值矩阵。举例来说,分量提取模块24可从一个像素区块中提取Y值矩阵、Cr值矩阵和Cb值矩阵。Y值指定像素的亮度,Cr值指定像素的红色色度,且Cb值指定像素的蓝色色度。当分量提取模块24已提取了像素分量值矩阵时,分量提取模块24可将所述矩阵中的每一者分别提供给离散余弦变换(DCT)模块26。
[0079] 当前向变换模块26接收到像素分量值矩阵时,前向变换模块26产生经按比例缩放系数矩阵。此经按比例缩放系数矩阵中的每一系数近似表示通过使用理想的前向离散余弦变换来变换像素分量值矩阵将产生的系数。
[0080] 前向变换模块26使用定点算术对像素分量值矩阵应用一维变换。使用定点算术在一些情况下可能是有利的。举例来说,例如移动电话的较小装置可能不包含执行浮点算术所需的浮点单元。前向变换模块26可通过使像素分量值中的每一者左移而开始产生经按比例缩放系数矩阵的过程。举例来说,前向变换模块26可通过使像素分量值中的每一者左移在应用一维变换时前向变换模块26所使用的数字的定点表示的精确度位的数目(即,尾数位的数目)加上通过按比例缩放由于应用所述变换而产生的经变换系数而移除的精确度位的数目,来产生经调节系数矩阵。在使像素分量值中的每一者左移之后,前向变换模块26可对经调节系数矩阵的行向量中的每一者执行变换。对经调节系数矩阵的行向量中的每一者执行离散余弦变换会产生中间系数矩阵。接下来,前向变换模块26可对所述中间系数矩阵的列向量中的每一者执行变换。对中间系数矩阵的列向量中的每一者执行变换会产生经变换系数矩阵。
[0081] 在产生经变换系数矩阵之后,前向变换模块26使经变换系数矩阵中的不同位置处的经变换系数按比例缩放不同的比例因子。如下文所描述,解码模块12可在逆向变换的应用中使用这些比例因子的倒数。当前向变换模块26已完成使经变换系数按比例缩放所述比例因子时,前向变换模块26可将所得的经按比例缩放系数矩阵输出到量化模块28。
[0082] 当量化模块28接收到来自前向变换模块26的系数矩阵时,量化模块28可量化所述经按比例缩放的系数。量化模块28可依据所使用的编码标准,以多种方式来量化经按比例缩放的系数。举例来说,根据MPEG-4部分2标准,量化模块28可使用以下量化矩阵来量化i帧的经按比例缩放系数矩阵中的系数:
[0083]8 17 18 19 21 23 25 27
17 18 19 21 23 25 27 28
20 21 22 23 24 26 28 30
21 22 23 24 26 28 30 32
22 23 24 26 28 30 32 35
23 24 26 28 30 32 35 38
25 26 28 30 32 35 38 41
27 28 30 32 35 38 41 45
[0084]
[0085] 此外,在此实例中,量化模块28可使用以下量化矩阵来量化预测帧或双预测帧的经按比例缩放系数矩阵中的系数:
[0086]16 17 18 19 20 21 22 23
17 18 19 20 21 22 23 24
18 19 20 21 22 23 24 25
19 20 21 22 23 24 26 27
20 21 22 23 25 26 27 28
21 22 23 24 26 27 28 30
22 23 24 26 27 28 30 31
23 24 25 27 28 30 31 33
[0087] 在量化模块28产生经量化系数矩阵之后,熵编码模块30可使用熵编码方案来压缩所述经量化系数矩阵。为了使用熵编码方案来压缩经量化系数矩阵,熵编码模块30可通过采用系数的Z字形图案来将经量化的系数组织成向量。换句话说,熵编码模块30可以可预测方式将二维经量化系数矩阵中的所有经量化系数布置成经量化系数的一维向量。熵编码模块30可接着对经量化系数的所述向量应用熵编码方案,例如霍夫曼编码或算术编码。
[0088] 编码模块8还包含用以执行视频帧的时间编码的一个或一个以上模块。如图2的实例中所说明,编码模块8包含运动估计模块32、重构帧产生模块34和残余帧产生模块36。运动估计模块32尝试针对当前视频帧中的每一宏区块而在参考图像中识别源宏区块。
运动估计模块32可尝试通过搜索所述参考图像中与当前帧中的宏区块含有类似像素的宏区块,来识别所述当前帧中的所述宏区块的源宏区块。运动估计模块32可根据不同的编码标准来搜索不同大小的区域,以便识别当前帧中的宏区块的源宏区块。举例来说,运动估计模块32可在宽度为32个像素且高度为32个像素的区域内搜索源宏区块,其中当前宏区块位于所述搜索区域的中心。当运动估计模块32识别当前帧中的宏区块的源宏区块时,运动估计模块32计算所述当前帧中的所述宏区块的运动向量。所述当前帧中的所述宏区块的运动向量指定x值,所述x值指示所识别的源宏区块与当前帧的所述宏区块之间的水平位置差异。在运动估计模块32已计算出运动向量或已无法为当前帧中的每一宏区块识别源宏区块时,运动估计模块32可将所计算出的当前帧的运动向量提供给重构帧产生模块34。
[0089] 重构帧产生模块34可使用所述运动向量和参考帧来产生重构帧。重构帧产生模块34可通过将当前帧中的每一宏区块的运动向量应用于参考帧中的源宏区块而产生重构帧。实际上,重构帧产生模块34创建帧,在所述帧中,已使参考帧的宏区块“移动”到由当前帧的对应运动向量所指示的位置。
[0090] 残余帧产生模块36可通过将重构帧中的像素分量值从当前帧中的对应像素分量值减去而产生残余帧。一般来说,残余帧与重构帧或当前帧相比包含较少信息。在残余帧产生模块36产生残余帧之后,残余帧产生模块36将残余帧提供给区块分离器模块22,以便开始对残余帧进行空间编码的过程。此外,运动估计模块32可将当前帧的运动向量提供给熵编码模块30,以便压缩所述运动向量。在对残余帧进行空间编码,且熵编码模块30已对运动向量进行编码之后,流输出模块38可对经空间编码的残余帧和经编码的运动向量进行格式化,以作为视频位流的一部分。
[0091] 图3是说明解码模块12的示范性细节的框图。解码模块12可包括熵解码模块44、解量化模块46、逆向变换模块48、像素重构模块50、帧缓冲器51、区块组合器模块52、帧控制模块53、参考帧存储模块54、重构帧产生模块56以及预测帧产生模块58。这些模块中的一些模块或所有模块可包括解码模块12的软件指令的子集。或者,这些模块中的一些模块或所有模块可包括专用硬件或固件。在另一替代方案中,这些模块可包括软件指令和专用硬件或固件。
[0092] 当解码模块12接收到含有视频帧的位流时,熵解码模块44可对视频帧中的经量化系数矩阵应用熵解码方案。所述位流可包含指示熵解码模块44对位流中的经量化系数矩阵应用哪种熵解码方案的值。此外,熵解码模块44可应用相同或不同的熵解码方案来对视频帧的运动向量进行解码。
[0093] 在熵解码模块44对视频文件中的经量化系数矩阵应用熵解码方案之后,解量化模块46可对经量化系数矩阵的每一者中的系数进行解量化。视编码标准而定,解量化模块46可以多种方式对系数进行解量化。举例来说,根据MPEG-4部分2标准,解量化模块46可以两种不同方式来使用上文所列的两个量化矩阵。第一,解量化模块46可使用这些量化矩阵来执行H.263型解量化。在H.263型解量化中,解量化模块46从经量化的值QF[v][u]中获得重构系数F″[v][u],如下:
[0094]
[0095] F″[v][u]:F″[v][u]=Sign(QF[v][u])×|F″[v][u]|,
[0096] 其仅涉及与量化器_标度相乘一次,且
[0097] 第二,解量化模块46可使用这些量化矩阵来执行MPEG-1/2型解量化。在MPEG-1/2型解量化中,解量化模块46使用额外加权矩阵W[w][v][u],其中w指示正使用哪一加权矩阵:
[0098]
[0099] 其中:
[0100]
[0101] 如下文详细描述,逆向变换模块48使经解量化系数中的每一者按比例缩放特定的比例因子,并将中点偏差项加到所得的经按比例缩放系数矩阵的DC系数。所述DC系数是经按比例缩放系数矩阵的位置(0,0)处的系数。接下来,逆向变换模块48使用定点一维变换的重复应用,以使经按比例缩放系数矩阵变换成经变换系数矩阵。在将经按比例缩放系数矩阵变换成经变换系数矩阵之后,逆向变换模块48使经变换系数矩阵中的每一经变换系数右移,以便产生经调节系数矩阵。经调节系数矩阵中的每一经调节系数近似表示通过对经编码系数矩阵应用理想的二维IDCT将产生的值矩阵中的对应值。此外,逆向变换模块48可截割经调节系数矩阵中的经调节系数的每一者,以便产生经截割系数矩阵。所述经截割的系数具有落在适合于所得的像素分量值格式的范围内的值。举例来说,经截割的系数可具有落在范围[-256,255]内的值。在逆向变换模块48截割所述经调节的系数之后,所得的经截割值为像素分量值。
[0102] 在逆向变换模块48输出像素分量值矩阵之后,像素重构模块50可通过组合所述像素分量值矩阵和与视频帧内的均等位置相关联的像素分量值矩阵而产生像素矩阵。举例来说,像素重构模块50可接收来自逆向变换模块48的Y像素分量值矩阵、Cb像素分量值矩阵和Cr像素分量值矩阵。这三个矩阵中的每一者可包含单个8×8像素区块的像素分量。所述像素中的每一者可包含Y像素分量值、Cb像素分量值和Cr像素分量值。在产生像素矩阵之后,像素重构模块50可将像素区块提供给区块组合器模块52。
[0103] 当区块组合器模块52接收到像素区块时,区块组合器模块52可缓冲所述像素区块,直到区块组合器模块52接收到视频帧中的像素区块中的一些或所有像素区块为止。在接收到所述像素区块的一者或一者以上之后,区块组合器模块52可将所述像素区块组合成视频帧,且可将所述视频帧输出到帧缓冲器51。所述视频帧可存储在帧缓冲器51中,直到所述视频帧由媒体呈现单元51显示为止。此外,区块组合器模块52可将所述视频帧输出到帧存储模块54。帧存储模块54中的视频帧可用作重构预测帧和双预测帧的参考帧。此外,帧存储模块54中的视频帧可以是重构预测帧和双预测帧中所使用的残余帧。
[0104] 为了重构预测帧或双预测帧,解码模块12包含重构帧产生模块56。重构帧产生模块56接收来自熵解码模块44的经解码的运动向量。此外,重构帧产生模块56从帧存储模块54中检索当前帧的参考帧。重构帧产生模块56接着使宏区块从其在参考帧中的位置“移动”到由运动向量指示的位置中。通过以此方式移动宏区块而产生重构帧。在重构帧产生模块56产生重构帧之后,重构帧产生模块56将重构帧提供给预测帧产生模块58。
[0105] 当预测帧产生模块58接收到临时帧时,预测帧产生模块58可从帧存储模块54中中检索当前帧的残余帧。在检索到残余帧之后,预测帧产生模块58可使残余帧与重构帧的每一像素中的对应色彩分量值相加。重构视频帧由此加法产生。接下来,预测帧产生模块58可将此重构帧输出到帧缓冲器51,以用于最后显示在媒体呈现单元14上。
[0106] 图4是说明编码模块8的示范性操作的流程图。尽管以循序方式描述图4中所描述的操作,但应注意,所述操作可以流水线方式来执行。
[0107] 最初,编码模块8接收未经编码的视频帧序列(60)。举例来说,编码模块8可接收来自媒体源4的呈像素组形式的未经编码的帧序列。当编码模块8接收到未经编码的帧序列时,编码模块8中的帧控制模块20可确定是将未经编码的帧序列中的当前帧编码为i帧还是编码为预测帧或双预测帧(62)。
[0108] 如果帧控制模块20确定将当前帧编码为i帧,那么编码模块8中的区块分离器模块22可将当前帧分成像素区块(64)。举例来说,编码模块8可将当前帧分成2×2个、4×4个或8×8个像素区块。
[0109] 在将当前帧分成像素区块之后,分量提取模块24可分离像素区块的每一者中的像素分量值(66)。因此,针对每一像素区块可能存在三个像素分量值区块:表示像素的亮度的Y值区块、表示像素的蓝色色度的Cb值区块以及表示像素的红色色度的Cr值区块。
[0110] 编码模块8中的前向变换模块26可接着为像素分量值矩阵中的每一者产生一经按比例缩放系数矩阵(68)。这些经按比例缩放系数矩阵中的系数是通过对像素分量值矩阵中的相应矩阵使用理想的二维前向离散余弦变换将产生的值的近似值。
[0111] 在前向变换模块26为像素分量矩阵中的每一者产生一经按比例缩放系数矩阵之后,编码模块8中的量化模块28可量化经按比例缩放系数矩阵的每一矩阵中的系数(70)。一旦量化模块28已量化每一经按比例缩放系数矩阵中的系数,熵编码模块30就可对经量化系数矩阵中的每一者执行熵编码过程(72)。举例来说,编码模块8可对每一经量化系数矩阵应用霍夫曼编码方案或算术编码方案。所述熵编码过程进一步压缩了数据。然而,熵编码过程不会导致信息丢失。在对每一经量化系数矩阵执行熵编码过程之后,编码模块8中的流输出模块38可将经编码的经量化系数矩阵加到视频帧序列的位流(74)。在流输出模块38将经编码的矩阵加到所述位流之后,帧控制模块20可确定当前帧是否为帧序列的最后一个视频帧(76)。如果当前帧是帧序列的最后一个帧(76的“是”),那么编码模块8已完成对帧序列的编码(78)。另一方面,如果当前帧不是帧序列的最后一个帧(76的“否”),那么编码模块8可返回,且确定是否将新的当前帧编码为i帧(62)。
[0112] 如果不将当前帧编码为i帧(62的“否”),那么编码模块8中的运动估计模块32可将当前帧划分成一组宏区块(80)。接下来,运动估计模块32可尝试针对当前帧中的宏区块的每一者而在一个或一个以上参考帧中识别源宏区块(82)。运动估计模块32可接着计算当前帧中的宏区块中运动估计模块32能够为其识别源宏区块的每一者的运动向量(84)。在运动估计模块32计算出运动向量之后,重构帧产生模块34使用所述运动向量来通过将参考帧中的所识别的宏区块“移动”到由所述运动向量指示的位置中而产生重构帧(86)。残余帧产生模块36可接着通过将重构帧中的像素分量值从当前帧中的对应像素分量值减去而产生当前帧的残余帧(88)。在残余帧产生模块36产生残余帧之后,熵编码模块30可使用熵编码方案来对当前帧的运动向量进行编码(90)。此外,可通过对残余帧应用步骤(66)到步骤(74)而对残余帧应用空间编码。
[0113] 图5是说明解码模块12的示范性操作的流程图。尽管以循序方式描述图5中所描述的操作,但应注意,所述操作可以流水线方式来执行。
[0114] 最初,解码模块12接收经编码的视频帧(100)。在接收到经编码的视频帧之后,解码模块12中的熵解码模块44可对经编码的帧内的数据区块执行熵解码过程(102)。熵解码模块44可执行等效于用于对帧进行编码的熵编码过程的熵解码过程。举例来说,如果编码模块8使用霍夫曼编码来对帧进行编码,那么熵解码模块44使用霍夫曼解码来对所述帧进行解码。由于对帧中的每一数据区块应用熵解码过程,因此熵解码模块44已产生一组经量化系数矩阵。
[0115] 接下来,解码模块12中的解量化模块46可对经量化系数矩阵的每一矩阵中的系数进行解量化(104)。在对经量化系数矩阵中的每一系数进行解量化之后,解码模块12中的逆向变换模块48产生像素分量值矩阵(106)。像素分量值矩阵的一者中的像素分量值是通过使用理想的二维逆向离散余弦变换对经量化系数矩阵的一者进行变换将产生的对应值的近似值。
[0116] 当逆向变换模块48已针对系数矩阵的每一者计算出像素分量值矩阵时,解码模块12中的像素重构模块50可组合适当的像素分量值矩阵,以便创建像素区块(108)。举例来说,解码模块12可使Y值区块与相关联的Cr值区块和相关联的Cb值区块组合,以便创建YCrCb像素区块。在像素重构模块50已创建了像素区块之后,区块组合器模块52可将所述像素区块重组成视频帧(110)。
[0117] 接下来,解码模块12中的帧控制模块53可确定当前帧是否为i帧(114)。如果当前帧是i帧(114的“是”),那么区块组合器模块52可将视频帧输出到帧缓冲器51(114)。另一方面,如果当前帧不是i帧(即,当前帧是预测帧或双预测帧)(114的“否”),那么熵解码模块44使用熵解码方案对所述当前帧的运动向量进行解码(116)。接下来,重构帧产生模块56使用经解码的运动向量和帧存储模块54中的一个或一个以上参考帧来产生重构帧(118)。预测帧产生模块58可接着使用所述重构帧和由区块组合器模块52产生的帧来产生重构帧(120)。
[0118] 图6是说明逆向变换模块48的示范性细节的框图。如图6的实例中所说明,逆向变换模块48可包括输入模块140。输入模块140可接收来自解量化模块46的系数矩阵。举例来说,输入模块140可接收指针,所述指针指示装置2的存储器模块中存储所述系数矩阵的位置。或者,输入模块140可包含存储所述系数矩阵的内部数据结构。
[0119] 当输入模块140接收到系数矩阵时,输入模块140可将所述系数矩阵提供给逆向变换模块48中的按比例缩放模块142。按比例缩放模块142可执行产生值的运算,所述值近似表示使所述系数矩阵中的系数按比例缩放比例因子矩阵中均等位置处的比例因子而产生的值。举例来说,按比例缩放模块142可执行乘法运算以产生值,所述值近似表示使所述系数矩阵中的系数按比例缩放比例因子矩阵中均等位置处的比例因子而产生的值。在另一实例中,按比例缩放模块142可执行一个或一个以上加法和移位运算。这些比例因子中的每一者可以是8位整数值。当比例因子中的每一者是8位整数时,变换期间所产生的值的动态范围减小。
[0120] 在按比例缩放模块142产生经按比例缩放系数矩阵之后,系数加偏差模块144可通过将中点偏差值加到经按比例缩放系数矩阵的DC系数而产生有偏系数矩阵。如上文所述,所述矩阵的DC系数通常是矩阵的左上位置处的系数。一般来说,DC系数表示矩阵中的其它系数的平均值。
[0121] 为了在16位处理器中将正负号自适应偏差值加到DC系数,系数加偏差模块144可使用以下公式:
[0122] DC_系数=DC_系数+(1<<(P+2))
[0123] 在此公式中,添加项(1<<(P+2))以提供中点偏差。P为常数,其指代逆向向量变换模块146所应用的变换中所使用的定点尾数位(即,在小数点右侧的位)的数目。将数字2加到P,因为右移模块148可使所有系数右移(P+3),其中数字“3”来自通过执行所述变换而添加的精确度位。为了详细阐述这一点,如果通过使1左移(P+2)而产生数字x,P+2 P+3 0 1且通过使x右移(P+3)而产生数字z,那么z=1/2。(以其它方式陈述,2 /2 =2/2 =
1/2)。因此,将(1<<(P+2))加到DC系数等效于将(1<<(P+3))/2加到DC系数。
[0124] 在系数加偏差模块144产生有偏系数矩阵之后,逆向向量变换模块146可通过对所述有偏系数矩阵的每一行向量应用定点经按比例缩放的一维变换而产生中间值矩阵。接下来,逆向向量变换模块146可通过对所述中间值矩阵的每一列向量应用所述定点经按比例缩放的一维变换而计算经变换系数矩阵。下文在图10B中呈现用以对经按比例缩放系数的向量应用定点按比例缩放的一维变换的示范性运算。
[0125] 在逆向向量变换模块146产生所述经变换系数矩阵之后,右移模块148可通过使所述经变换系数矩阵中的系数的每一者右移某一数目个位置而产生经调节系数矩阵,所述某一数目等于在应用所述变换期间且在按比例缩放期间所添加的位的数目。举例来说,如果应用所述变换导致额外的三个位,且按比例缩放所述系数添加了额外的十个位,那么右移模块108可使所述系数中的每一者右移十三(3+10)个位置。
[0126] 在右移模块148产生经调节系数矩阵之后,截割模块150可通过“截割”所述经调节系数矩阵中的系数而产生经截割系数矩阵,以便将所述系数限制到像素分量值的最大可允许范围。举例来说,典型的像素分量值可在-256到255的范围内。如果经调节系数矩阵将包含等于270的系数,那么截割模块150通过使所述系数减小到255而将此系数限制到所述最大可允许范围。在截割模块150完成截割所述系数之后,这些系数可表示像素分量值。当截割模块150完成截割矩阵中的系数之后,截割模块150可将经截割系数矩阵提供给输出模块152。
[0127] 当输出模块152接收到经截割系数矩阵(其现为像素分量值)时,输出模块152可将像素分量值矩阵输出到像素重构模块50。
[0128] 图7是说明逆向变换模块34的示范性操作的流程图。最初,输入模块140接收系数矩阵(170)。当输入模块140接收到所述系数矩阵时,按比例缩放模块142可按比例缩放所述系数矩阵中的每一值(172)。举例来说,按比例缩放模块142可执行以下运算:使所述系数矩阵中的每一系数乘以比例因子矩阵中均等定位的值。
[0129] 在按比例缩放所述系数矩阵中的每一系数之后,系数加偏差模块144可将中点偏差值加到所述系数矩阵的DC系数(174)。在系数加偏差模块144将偏差值加到所述矩阵的DC系数之后,逆向向量变换模块146可确定行计数是否小于最大行计数(176)。最初,可将行计数设置为零。最大行计数可以是等于所述系数矩阵中行的数目的静态值。举例来说,如果系数矩阵包含八个行,那么最大行计数等于八。
[0130] 如果行计数小于最大行计数(176的“是”),那么逆向向量变换模块146可计算对系数矩阵中由所述行计数指示的行向量的定点经按比例缩放的一维变换(178)。当逆向向量变换模块146计算对系数矩阵的行向量的所述变换时,逆向向量变换模块146可用中间系数的向量来代替系数的所述行向量中的原始系数。在逆向向量变换模块146计算对系数矩阵的行向量的所述变换之后,逆向向量变换模块146可使行计数递增(180)。逆向向量变换模块146可接着返回,且再次确定行计数是否小于最大行计数(176)。
[0131] 如果行计数不小于(即,大于或等于)最大行计数(176的“否”),那么逆向向量变换模块146可确定列计数是否小于最大列计数(182)。最初,可将列计数设置为零。最大列计数可以是等于系数矩阵中的列的数目的静态值。举例来说,如果系数矩阵包含八个列,那么最大列计数等于八。
[0132] 如果列计数小于最大列计数(182的“是”),那么逆向向量变换模块146可计算对中间系数矩阵的由所述列计数指示的列向量的一维变换(184)。当逆向变换模块34计算对中间系数的列向量的所述变换时,逆向变换模块34用经变换系数的向量来代替所述列向量中的中间系数。
[0133] 在逆向向量变换模块146计算对系数矩阵的列向量的所述变换之后,逆向向量变换模块146可使列计数递增(186)。逆向向量变换模块146可接着返回并再次确定列计数是否小于最大列计数(182)。
[0134] 如果列计数不小于(即,大于或等于)最大列计数(182的“否”),那么右移模块148可使矩阵中的经变换系数的每一者右移(188)。当右移模块148使系数右移时,右移模块148可使所述系数向右移位某一数目个位置。使矩阵中的第二中间系数的每一者右移的结果是经调节值矩阵。在右移模块148已使经变换系数中的每一者右移之后,截割模块150可截割所述经调节的系数,以便确保所述经调节的系数在像素分量值的适当范围内(190)。
举例来说,截割模块150可截割所述经调节的系数,以便确保所述经调节的系数在-256至
255的范围内。当截割模块150完成截割经调节的系数之后,输出模块152可输出所得的像素分量值矩阵(192)。
[0135] 图8是说明前向变换模块26的示范性细节的框图。如图8的实例中所说明,前向变换模块26包括输入模块210,其接收来自分量提取模块24的像素分量值矩阵。当输入模块210接收到像素分量值矩阵时,输入模块210可将所述像素分量值矩阵提供给左移模块212。左移模块212可使像素分量值矩阵中的所有像素分量值向左移位前向向量变换模块214在执行前向变换时所使用的值中所使用的尾数位的数目减去通过执行前向变换而移除的尾数位的数目。举例来说,如果执行前向变换时在值中使用十个尾数位,且通过执行前向离散余弦变换而移除三个尾数位,那么左移模块212可使像素分量值向左移位七个位置。在另一实例中,如果执行前向变换时在值中使用三个尾数位,且通过执行前向变换而移除三个尾数位,那么左移模块212可使像素分量值向左移位零个位置。
[0136] 在左移模块212使像素分量值移位之后,前向向量变换模块214可对像素分量值矩阵中的每一列向量应用前向变换,以便产生中间值矩阵。接下来,前向向量变换模块214可对所述中间值矩阵中的每一行向量应用前向变换,以便产生经变换系数矩阵。当前向向量变换模块214对向量应用前向变换时,前向向量变换模块214可应用下文在图11中所描述的前向变换。注意,下文在图11中所描述的变换是图10A中所描述的变换的逆向变换。
[0137] 在前向向量变换模块214产生经变换系数矩阵之后,按比例缩放模块216可对经变换系数矩阵中的每一经变换系数应用比例因子。按比例缩放模块216可应用逆向变换模块48中的按比例缩放模块142所使用的比例因子的倒数。举例来说,如果按比例缩放模块142通过使系数向左移位三个位置而按比例缩放所述系数,那么按比例缩放模块216可通过使经变换的值向右移位三个位置而按比例缩放所述经变换的值。在另一实例中,如果按比例缩放模块142通过使系数乘以比例因子矩阵中的个别比例因子而按比例缩放所述系数,那么按比例缩放模块216可通过使经变换的值乘以所述比例因子矩阵中的比例因子且接着使所得的值向右移位某一量值而按比例缩放所述经变换的值。为了减少舍入误差,按比例缩放模块216可在使经变换的值乘以比例因子之后,将中点偏差值加到经变换的值中的每一者。举例来说,按比例缩放模块216可使用以下等式来产生经按比例缩放系数矩阵:
[0138] F[v][u]=(F′[v][u]*S[v][u]+(1<<19)-((F′[v][u]>=0)?0∶1))>>20
[0139] 其中v=0..7,u=0..7;其中S[v][u]是比例因子矩阵中的条目,F是经按比例缩放系数矩阵,且F′是经变换系数矩阵。
[0140] 在按比例缩放模块216产生经按比例缩放系数矩阵之后,输出模块218可将所述系数矩阵输出到量化模块28。
[0141] 图9是说明前向变换模块26的示范性操作的流程图。起初,输入模块210接收像素分量值矩阵(230)。当输入模块140接收到像素分量值矩阵时,左移模块212可通过使像素分量值矩阵中的每一值上移而产生经调节系数矩阵(232)。举例来说,左移模块212可使所有系数向左移位十个位置。在此实例中,左移模块212可使所有系数向右移位十个位置,因为前向向量变换模块214可使用用小数部分中的十个位来对数字进行编码的定点算术。因此,通过使系数向左移位十个位置,左移模块212将像素分量值有效地转换成具有十个尾数位的定点数。
[0142] 在使经调节值矩阵中的每一像素分量值左移之后,前向向量变换模块214可确定列计数是否小于最大行计数(234)。起初,可将列计数设置为零。最大列计数可以是等于经调节系数矩阵中列的数目的静态值。举例来说,如果经调节系数矩阵包含八个列,那么最大列计数等于八。
[0143] 如果列计数小于最大列计数(234的“是”),那么前向向量变换模块214可计算对由所述列计数指示的列向量的一维前向变换(236)。当前向向量变换模块214计算对经调节系数矩阵的列向量的前向变换时,前向向量变换模块214用中间系数来代替所述列向量中的原始经调节系数。在前向向量变换模块214计算对经调节系数矩阵的列向量的前向变换之后,前向向量变换模块214可使列计数递增(238)。前向向量变换模块214可接着返回,并再次确定列计数是否小于最大列计数(234)。
[0144] 如果列计数不小于(即,大于或等于)最大列计数(234的“否”),那么前向向量变换模块214可确定行计数是否小于最大行计数(240)。起初,可将行计数设置为零。最大行计数可以是等于系数矩阵中行向量的数目的静态值。举例来说,如果系数矩阵包含八个行,那么最大行计数等于八。
[0145] 如果行计数小于最大行计数(240的“是”),那么前向向量变换模块214可计算对由行计数指示的行向量的一维离散余弦变换(242)。因为前向向量变换模块214已经计算对矩阵的行向量的前向变换,所以系数矩阵现含有中间系数。当前向向量变换模块214计算对中间系数的行向量的前向变换时,前向向量变换模块214用经变换的系数来代替所述列向量中的中间系数。
[0146] 在前向向量变换模块214对系数矩阵的行向量计算离散余弦变换之后,前向向量变换模块214可使行计数递增(244)。前向向量变换模块214可接着返回,并再次确定行计数是否小于最大行计数(240)。
[0147] 如果行计数不小于(即,大于或等于)最大行计数(240的“否”),那么按比例缩放模块216可按比例缩放经变换系数矩阵中的每一经变换系数(246)。当按比例缩放模块216按比例缩放系数时,按比例缩放模块216可使所述系数向右移位某一数目个位置。在按比例缩放模块216已按比例缩放经变换系数中的每一者之后,输出模块218可输出所得的经按比例缩放系数矩阵(248)。
[0148] 图10A是说明示范性一维变换260的流程图。在图10A中,值X0、X1、X2、X3、X4、X5、X6和X7表示输入系数,且值x0、x1、x2、x3、x4、x5、x6和x7表示变换260的输出值。与包括“+”符号的圆后面的线相关联的值是与指到所述圆中的箭头相关联的值相加的结果。与包括“×”符号的圆后面的线相关联的值是使在所述圆旁边定位的系数与同穿过所述圆的线相关联的值相乘的结果。箭头旁边的符号“-”表示与所述箭头相关联的值的求反。举例来说,如果值“10”与“-”符号之前的箭头相关联,那么值“-10”与所述“-”符号之后的箭头相关联。
[0149] 变换260使用乘以七个唯一无理因子的十四个乘法。为方便起见,本发明将这些唯一无理因子称作α、β、γ、δ、ε、ζ和η。在变换260中,
γ=cos(π/16),δ=sin(π/16),ε=cos(3π/16),
ζ=sin(3π/16),且 注意,α、β、γ、δ、ε、ζ和η全部是无理数。因为α、β、γ、δ、ε、ζ和η是无理数,所以α、β、γ、δ、ε、ζ和η的可容许准确表示可能需要相对较大数目个位。因此,当使用具有相对较小数目个尾数位的定点数来计算变换260时,可能无法符合典型编码标准的要求。此外,因为α、β、γ、δ、ε、ζ和η是无理数,所以可能无法使与α、β、γ、δ、ε、ζ和η的相乘减少到移位运算、加法运算和/或减法运算的序列。
[0150] 图10B是说明示范性一维经按比例缩放变换270的流程图。变换270是变换260的经按比例缩放版本。在变换270中,已从变换260因子分解出值η,已从变换260的值γ、δ、ε和ζ因子分解出值(1/ψ),且已从变换260的值α和β因子分解出值 当从这些系数因子分解出(1/ψ)和 时,以下向量表示在变换270之前X0到X7与之相乘的值:
[0151]
[0152] 当从α、β、γ、δ、ε和ζ因子分解出(1/ψ)和 时,α、β、γ、δ、ε、ζ和η的值可改变。出于方便的目的,将因子分解出(1/ψ)和 之后的值α、β、γ、δ、ε和ζ称为α′、β′、γ′、δ′、ε′和ζ′。举例来说,当ψ=1.352708058且 时,α′≈133/256,β′≈321/256,γ′≈679/512,δ′≈135/512,ε′≈4605/4096,且ζ′≈1539/2048。
[0153] 可以各种方式选择值α′、β′、γ′、δ′、ε′和ζ′,以使得它们将近似表示α、β、γ、δ、ε和ζ与对应因子ψ或 的乘积。一般来说,可在不改变变换270的总体设计的情况下,选择因子ψ和 的值以及值α′、β′、γ′、δ′、ε′、ζ′。寻找这些因子的优良值可能代表在不同复杂性/精确度折衷的情况下可能得出多个解的复杂的优化问题。举例来说,与α′、β′、γ′、δ′、ε′和ζ′中的一些值相乘可能比与其它值相乘更便于计算。此外,ψ和 的值可能是重要的,因为它们充当比例因子的基础,且一些比例因子可能比其它比例因子更便于计算。举例来说,可通过一系列加法运算和移位运算来近似表示与α′、β′、γ′、δ′、ε′和ζ′的第一组值相乘,所述系列加法运算和移位运算比用于α′、β′、γ′、δ′、ε′和ζ′的一组不同值的一系列加法运算和移位运算短。举例来说,当ψ=1.352708058且 时,可将γ′近似表示为679/512。近似表示与679/512的相乘可能需要三个移位运算和三个加法运算。此外,当ψ=1.1810842且 时,可将γ′近似表示为18981/16384。近似表示与
18981/16384的相乘可能需要四个移位运算和四个加法运算。
[0154] 可通过使向量 的转置乘以所述同一向量而计算比例因子矩阵。这导致8×8值矩阵:
[0155]A B C D A D C B
B E F G B G F E
C F H I C I H F
D G I J D J I G
A B C D A D C B
D G I J D J I G
C F H I C I H F
B E F G B G F E
[0156] 在此比例因子矩阵中,A=1*1, E=(1/2
ψ), 且
[0157] 因为在应用变换之前,使比例因子与系数相乘,所以可使比例因子A、B、C、D、E、F、G、H、I和J左移P个位置,其中P是常数,所述常数指代变换中所使用的定点尾数位(即,小数点右侧的位)的数目。此过程将原始系数有效地转换成具有P个尾数位的定点数。换句话说,矩阵中的系数的每一者乘以2P。可接着通过整数值来近似表示所得的值。因此,可用以下值来代替上述矩阵中的A、B、C、D、E、F、G、H、I和J:A′≈2P,E′≈(1/ψ)2*2P,

[0158] 举例来说,令ψ=1.352708058,令 且令P=10。在给定ψ、和P的这些值的情况下,可选择比例因子A′=1024、B′=757、C′=1067、D ′=1071、E′=560、F′=789、G′=792、H′=1112、I′=1116,且J′=1120。因此,可产生以下比例因子矩阵:
[0159]1024 757 1067 1071 1024 1071 1067 757
757 560 789 792 757 792 789 560
1067 789 1112 1116 1067 1116 1112 789
1071 792 1116 1120 1071 1120 1116 792
1024 757 1067 1071 1024 1071 1067 757
1071 792 1116 1120 1071 1120 1116 792
1067 789 1112 1116 1067 1116 1112 789
757 560 789 792 757 792 789 560
[0160] 以下表概括可与变换270一起使用的示范性比例因子以及α′、β′、γ′、δ′、ε′和ζ′的值。
[0161] 表1:算法A中所使用的常数因子近似法。
[0162]
[0163]
[0164] 表2:算法B中所使用的常数因子近似法。
[0165]
[0166]
[0167] 表3:算法C中所使用的常数因子近似法。
[0168]
[0169]
[0170] 为了说明IDCT模块48可如何使用上述表中所提供的比例因子、常数值和算法,考虑上述表3。为了使用表3中的值来应用逆向离散余弦变换,IDCT模块48中的输入模块140可接收8×8系数矩阵。接下来,按比例缩放模块142使所述矩阵的位置[0,0]处的系数按比例缩放因子A;使所述矩阵的位置[0,1]处的系数按比例缩放因子B;使所述矩阵的位置[0,2]处的系数按比例缩放因子C;使所述矩阵的位置[0,3]处的系数按比例缩放因子D;使所述矩阵的位置[0,4]处的系数按比例缩放因子A;使所述矩阵的位置[0,5]处的系数按比例缩放因子D;使所述矩阵的位置[0,6]处的系数按比例缩放因子C;使所述矩阵的位置[0,7]处的系数按比例缩放因子B;使所述矩阵的位置[1,0]处的系数按比例缩放因子B;使所述矩阵的位置[1,1]处的系数按比例缩放因子E;使所述矩阵的位置[1,2]处的系数按比例缩放因子F;使所述矩阵的位置[1,3]处的系数按比例缩放因子G;使所述矩阵的位置[1,4]处的系数按比例缩放因子B;使所述矩阵的位置[1,5]处的系数按比例缩放因子G;使所述矩阵的位置[1,6]处的系数按比例缩放因子F;使所述矩阵的位置[1,7]处的系数按比例缩放因子E;使所述矩阵的位置[2,0]处的系数按比例缩放因子C;使所述矩阵的位置[2,1]处的系数按比例缩放因子F;使所述矩阵的位置[2,2]处的系数按比例缩放因子H;使所述矩阵的位置[2,3]处的系数按比例缩放因子I;使所述矩阵的位置[2,
4]处的系数按比例缩放因子C;使所述矩阵的位置[2,5]处的系数按比例缩放因子I;使所述矩阵的位置[2,6]处的系数按比例缩放因子H;使所述矩阵的位置[2,7]处的系数按比例缩放因子F;使所述矩阵的位置[3,0]处的系数按比例缩放因子D;使所述矩阵的位置[3,1]处的系数按比例缩放因子G;使所述矩阵的位置[3,2]处的系数按比例缩放因子I;
使所述矩阵的位置[3,3]处的系数按比例缩放因子J;使所述矩阵的位置[3,4]处的系数按比例缩放因子D;使所述矩阵的位置[3,5]处的系数按比例缩放因子J;使所述矩阵的位置[3,6]处的系数按比例缩放因子I;使所述矩阵的位置[3,7]处的系数按比例缩放因子G;使所述矩阵的位置[4,0]处的系数按比例缩放因子A;使所述矩阵的位置[4,1]处的系数按比例缩放因子B;使所述矩阵的位置[4,2]处的系数按比例缩放因子C;使所述矩阵的位置[4,3]处的系数按比例缩放因子D;使所述矩阵的位置[4,4]处的系数按比例缩放因子A;使所述矩阵的位置[4,5]处的系数按比例缩放因子D;使所述矩阵的位置[4,6]处的系数按比例缩放因子C;使所述矩阵的位置[4,7]处的系数按比例缩放因子C;使所述矩阵的位置[5,0]处的系数按比例缩放因子D;使所述矩阵的位置[5,1]处的系数按比例缩放因子G;使所述矩阵的位置[5,2]处的系数按比例缩放因子I;使所述矩阵的位置[5,3]处的系数按比例缩放因子J;使所述矩阵的位置[5,4]处的系数按比例缩放因子D;使所述矩阵的位置[5,5]处的系数按比例缩放因子J;使所述矩阵的位置[5,6]处的系数按比例缩放因子I;使所述矩阵的位置[5,7]处的系数按比例缩放因子G;使所述矩阵的位置[6,0]处的系数按比例缩放因子C;使所述矩阵的位置[6,1]处的系数按比例缩放因子F;使所述矩阵的位置[6,2]处的系数按比例缩放因子H;使所述矩阵的位置[6,3]处的系数按比例缩放因子I;使所述矩阵的位置[6,4]处的系数按比例缩放因子C;使所述矩阵的位置[6,
5]处的系数按比例缩放因子I;使所述矩阵的位置[6,6]处的系数按比例缩放因子H;使所述矩阵的位置[6,7]处的系数按比例缩放因子F;使所述矩阵的位置[7,0]处的系数按比例缩放因子B;使所述矩阵的位置[7,1]处的系数按比例缩放因子E;使所述矩阵的位置[7,2]处的系数按比例缩放因子F;使所述矩阵的位置[7,3]处的系数按比例缩放因子G;
使所述矩阵的位置[7,4]处的系数按比例缩放因子B;使所述矩阵的位置[7,5]处的系数按比例缩放因子G;使所述矩阵的位置[7,6]处的系数按比例缩放因子F;使所述矩阵的位置[7,7]处的系数按比例缩放因子E。当按比例缩放模块142按比例缩放这些系数时,按比例缩放模块142可使用以下值:A=1024,B=1138,C=1730,D=1609,E=1264,F=
1922,G=1788,H=2923,I=2718,以及J=2528,如表6中所指定。这些经按比例缩放的系数构成经按比例缩放系数矩阵。
[0171] 在按比例缩放模块142按比例缩放所述系数之后,逆向变换模块146可对所述经按比例缩放系数矩阵的每一行向量应用变换,以产生中间系数矩阵,且对所述中间系数矩阵的每一列向量应用所述变换,以产生经变换系数矩阵。逆向变换模块146可通过以下步骤对行向量或列向量应用所述变换:通过使x0与x4相加而计算值x0′;通过使x0与-x4相加而计算值x4′;通过使x2乘以值α而计算值(x2*α);通过使x6乘以值β而计算值(x6*β);通过使x2乘以值β而计算值(x2*β);通过使x6乘以值α而计算值(x6*α);通过使(x2*α)与-(x6*β)相加而计算值x2′;通过使(x6*α)与(x2*β)相加而计算值x6′;通过使x0′与x6′相加而计算值x0″;通过使x4′与x2′相加而计算值x4″;通过使x4′与-x2′相加而计算值x2″;通过使x0与-x6′相加而计算值x6″;通过使x1与-x7相加而计算值x7′;通过使x1与x7相加而计算值x1′;通过使x3与二的平方根相乘而计算值x3′;
通过使x5与二的平方根相乘而计算值x5′;通过使x7′与x5′相加而计算值x7″;通过使x1′与-x3′相加而计算值x3″;通过使x7′与-x5′相加而计算值x5″;通过使x3′与x1′相加而计算值x1″;通过使x7″与值ε相乘而计算值(x7″*ε);通过使x7″与值ζ相乘而计算值(x7″*ζ);通过使x3″与值γ相乘而计算值(x3″*γ);通过使x3″与值δ相乘而计算值(x3″*δ);通过使x5″与值δ相乘而计算值(x5″*δ);通过使x5″与值γ相乘而计算值(x5″*γ);通过使x1″与值ζ相乘而计算值(x1″*ζ);通过使x1″与值ε相乘而计算值(x1″*ε);通过使(x7″*ε)与-(x1″*ζ)相加而计算值x7″′;通过使(x3″*γ)与-(x5″*δ)相加而计算值x3″′;通过使(x5″*γ)与(x3″*δ)相加而计算值x5″′;通过使(x1″*ε)与(x7″*ζ)相加而计算值x1″′;通过使x7″′与x0″相加而计算值X0;通过使x4″与x5″′相加而计算值X1;通过使x2″与x3″′相加而计算值X2;通过使x6″与x7″′相加而计算值X3;通过使x6″与-x1″′相加而计算值X4;通过使x2″与-x3″′相加而计算值X5;通过使x4″与-x5″′相加而计算值X6;通过使x0″与-x1″′相加而计算值X7,其中x0、x1、x2、x3、x4、x5、x6、x7是行向量或列向量中的系数,且X1、X2、X3、X4、X5、X6和X7是变换的输出值。当执行这些计算时,逆向变换模块146使用以下分数值:α=41/128,β=99/128,γ=1533/2048,δ=1/2,ε=113/128,且ζ=
719/4096,通过如表3中所指定的无乘法算法(multiplier-less algorithm)来计算与所述分数值的乘积。
[0172] 以下代码含有变换270的示范性C语言实施方案:
[0173] /* Define the scaling factors values*/
[0174] #define A 1024
[0175] #define B 1138
[0176] #define C 1730
[0177] #define D 1609
[0178] #define E 1264
[0179] #define F 1922
[0180] #define G 1788
[0181] #define H 2923
[0182] #define I 2718
[0183] #define J 2528
[0184] /*Defing the matrix of scaling factors*/
[0185] static int scale[8*8]={
[0186] A,B,C,D,A,D,C,B,
[0187] B,E,F,G,B,G,F,E,
[0188] C,F,H,I,C,I,H,F,
[0189] D,G,I,J,D,J,I,G,
[0190] A,B,C,D,A,D,C,B,
[0191] D,G,I,J,D,J,I,G,
[0192] C,F,H,I,C,I,H,F,
[0193] B,E,F,G,B,G,F,E
[0194] };
[0195] void scaled_1d_idct(int*,int*);
[0196] void idct(short*P)
[0197] {
[0198] int block[8*8],block2[8*8],i;
[0199] /*scale each of the input coefficients*/
[0200] for(i=0;i<64;i++)
[0201] block[i]=scale[i]*P[i];
[0202] /*Add bias to the DC coefficient*/
[0203] block[0]+=1<<12;
[0204] /*Apply the vetor inverse discrete cosine transform to each row and column
[0205] of the block.*/
[0206] for(i=0;i<8;i++)
[0207] scaled_1d_idct(block+i*8,block2+i);
[0208] for(i=0;i<8;i++)
[0209] scaled_1d_idct(block2+i*8,block+i);
[0210] /*Right-shift each of the transformed coefficients*/[0211] for(i=0;i<64;i++)
[0212] P[i]=block[i]>>13;
[0213] }
[0214] #define mul_1(y,z)
[0215] {
[0216] int y2,y3;
[0217] y2=(y>>3)-(y>>7);
[0218] y3=y2-(y>>11);
[0219] z=y2+(y3>>1);
[0220] y=y-y2;
[0221] }
[0222] #define mul_2(y,z)
[0223] {
[0224] int y2;
[0225] y2=(y>>9)-y;
[0226] z=y>>1;
[0227] y=(y2>>2)-y2;
[0228] }
[0229] #define mul_3(y,z)
[0230] {
[0231] int y2,y3;
[0232] y2=y+(y>>5);
[0233] y3=y2>>2;
[0234] y=y3+(y>>4);
[0235] z=y2-y3;
[0236] }
[0237] void scaled_1d_idct(int*in,int*out)
[0238] {
[0239] int x0,x1,x2,x3,x4,x5,x6,x7,xa,xb;
[0240] x1=in[1];
[0241] x3=in[3];
[0242] x5=in[5];
[0243] x7=in[7];
[0244] xa=x1+x7;
[0245] xb=x1-x7;
[0246] x1=xa+x3;
[0247] x3=xa-x3;
[0248] x7=xb+x5;
[0249] x5=xb-x5;
[0250] mul_1(x3,xa);
[0251] mul_1(x5,xb);
[0252] x3=x3-xb;
[0253] x5=x5+xa;
[0254] mul_2(x1,xa);
[0255] mul_2(x7,xb);
[0256] x1=x1+xb;
[0257] x7=x7-xa;
[0258] x0=in[0];
[0259] x2=in[2];
[0260] x4=in[4];
[0261] x6=in[6];
[0262] mul_3(x2,xa);
[0263] mul_3(x6,xb);
[0264] x2=x2-xb;
[0265] x6=x6+xa;
[0266] xa=x0+x4;
[0267] xb=x0-x4;
[0268] x0=xa+x6;
[0269] x6=xa-x6;
[0270] x4=xb+x2;
[0271] x2=xb-x2;
[0272] out[0*8]=x0+x1;
[0273] out[1*8]=x4+x5;
[0274] out[2*8]=x2+x3;
[0275] out[3*8]=x6+x7;
[0276] out[4*8]=x6-x7;
[0277] out[5*8]=x2-x3;
[0278] out[6*8]=x4-x5;
[0279] out[7*8]=x0-x1;
[0280] }
[0281] void scaled_1d_fdct(int*,int*);
[0282] void fdct(short*P)
[0283] {
[0284] int block[8*8],block2[8*8],i;
[0285] for(i=0;i<64;i++)
[0286] block[i]=P[i]<<7;
[0287] for(i=0;i<8;i++)
[0288] scaled_1d_fdct(block+i,block2+i*8);
[0289] for(i=0;i<8;i++)
[0290] scaled_1d_fdct(block2+i,block+i*8);
[0291] for(i=0;i<64;i++)
[0292] P[i]=(block[i]*scale[i]+0x7FFFF-(block[i]>>31))>>20;
[0293] }
[0294] void scaled_1d_fdct(int*in,int*out)
[0295] {
[0296] int x0,x1,x2,x3,x4,x5,x6,x7,xa,xb;
[0297] x0=in[0*8]+in[7*8];
[0298] x1=in[0*8]-in[7*8];
[0299] x4=in[1*8]+in[6*8];
[0300] x5=in[1*8]-in[6*8];
[0301] x2=in[2*8]+in[5*8];
[0302] x3=in[2*8]-in[5*8];
[0303] x6=in[3*8]+in[4*8];
[0304] x7=in[3*8]-in[4*8];
[0305] mul_1(x3,xa);
[0306] mul_1(x5,xb);
[0307] x3=x3+xb;
[0308] x5=x5-xa;
[0309] mul_2(x1,xa);
[0310] mul_2(x7,xb);
[0311] x1=x1-xb;
[0312] x7=x7+xa;
[0313] xa=x1+x3;
[0314] x3=x1-x3;
[0315] xb=x7+x5;
[0316] x5=x7-x5;
[0317] x1=xa+xb;
[0318] x7=xa-xb;
[0319] xa=x0+x6;
[0320] x6=x0-x6;
[0321] xb=x4+x2;
[0322] x2=x4-x2;
[0323] x0=xa+xb;
[0324] x4=xa-xb;
[0325] mul_3(x2,xa);
[0326] mul_3(x6,xb);
[0327] x2=xb+x2;
[0328] x6=x6-xa;
[0329] out[0]=x0;
[0330] out[1]=x1;
[0331] out[2]=x2;
[0332] out[3]=x3;
[0333] out[4]=x4;
[0334] out[5]=x5;
[0335] out[6]=x6;
[0336] out[7]=x7;
[0337] }
[0338] 图11是说明前向变换模块214所使用的示范性经按比例缩放变换280的流程图。在图11中,值X0、X1、X2、X3、X4、X5、X6和X7表示输出系数,且值x0、x1、x2、x3、x4、x5、x6和x7表示输入值。与包括“+”符号的圆后面的线相关联的值是与同指到所述圆中的箭头相关联的值相加的结果。与包括“×”符号的圆后面的线相关联的值是使在所述圆旁边定位的系数与同穿过所述圆的线相关联的值相乘的结果。箭头旁边的符号“-”表示与所述箭头相关联的值的求反。举例来说,如果值“10”与“-”符号之前的箭头相关联,那么值“-10”与所述“-”符号之后的箭头相关联。此外,应注意,可在算法190中使用上文所描述的使用负系数和减法来减少舍入误差的技术。
[0339] 在变换280中,使输出值X0到X7分别乘以因子1、 ψ、 以及ψ。注意,这些因子是从变换270中的α′、β′、γ′、δ′、ε′和ζ′因子分解出的值的倒数。
[0340] 可在硬件、软件、固件或其任一组合中实施本文中所描述的技术。描述为模块或组件的任何特征可在集成逻辑装置中一起实施,或单独实施为离散的但可共同操作的逻辑装置。如果在软件中实施,那么所述技术可至少部分地由包括指令的计算机可读媒体来实现,所述指令在被执行时执行上文所描述的方法中的一者和一者以上。所述计算机可读媒体可形成计算机程序产品的部分,所述计算机程序产品可包含包装材料。计算机可读媒体可包括例如同步动态随机存取存储器(synchronous dynamic random accessmemory,SDRAM)等随机存取存储器(random access memory,RAM)、只读存储器(read-only memory,ROM)、非易失性随机存取存储器(nonvolatile random accessmemory,NVRAM)、电可擦除可编程只读存储器(electrically erasable programmableread-only memory,EEPROM)、快闪存储器、磁性或光学数据存储媒体以及类似计算机可读媒体。所述技术可额外地或替代地至少部分由计算机可读通信媒体利用,所述计算机可读通信媒体运载或传送呈指令或数据结构形式且可由计算机存取、读取和/或执行的代码。
[0341] 所述代码可由一个或一个以上处理器执行,例如一个或一个以上数字信号处理器(digital signal processor,DSP)、通用微处理器、专用集成电路(application specificintegrated circuit,ASIC)、现场可编程逻辑阵列(field programmable logic array,FPGA)或其它等效的集成或离散逻辑电路。因此,如本文中所使用,术语“处理器”可指代适合实施本文中所描述的技术的前述结构或任何其它结构中的任何一者。此外,在一些方面,可在经配置以用于编码和解码的专用软件模块或硬件模块内提供本文中所描述的功能性,或将本文中所描述的功能性并入组合式视频编码器-解码器(CODEC)中。
[0342] 已描述本发明的各个实施例。这些和其它实施例在所附权利要求书的范围内。
相关专利内容
标题 发布/更新时间 阅读量
一种双轴向经编机 2020-05-12 228
经编机花梳横移装置 2020-05-12 944
经编机的取纱机构 2020-05-11 481
经编机的梳栉垫纱运动机构 2020-05-14 211
多梳拉舍尔经编机的针床摆动机构 2020-05-14 394
经编机的取纱机构 2020-05-12 877
经编机的铺纬装置 2020-05-13 624
经编机梳栉机构 2020-05-11 793
经编机的梳栉垫纱运动机构 2020-05-15 765
经编机针床 2020-05-14 359
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈