《一种解码方法、装置和解码器.pdf》由会员分享,可在线阅读,更多相关《一种解码方法、装置和解码器.pdf(15页完整版)》请在专利查询网上搜索。
本发明公开了一种解码方法、装置和解码器,涉及视频处理领域,能够节省系统硬件资源,降低了利用硬件电路实现解码的复杂度,显著提高系统性能。本发明实施例提供的解码方法包括:接收输入残差矩阵的数据;利用所述输入残差矩阵的数据和反变换矩阵通过执行两次同一类型的反变换,解码获得输出残差矩阵的数据。本发明适用于任何利用反整数余弦变换进行解码的场合。 。
CN200910127032.7
2009.03.10
CN101640791A
2010.02.03
驳回
无权
发明专利申请公布后的驳回IPC(主分类):H04N 7/24公开日:20100203|||实质审查的生效|||公开
H04N7/24
青岛海信信芯科技有限公司
刘宇轩; 何云鹏; 于海群
266100山东省青岛崂山区株洲路151号
北京中博世达专利商标代理有限公司
申 健
本发明公开了一种解码方法、装置和解码器,涉及视频处理领域,能够节省系统硬件资源,降低了利用硬件电路实现解码的复杂度,显著提高系统性能。本发明实施例提供的解码方法包括:接收输入残差矩阵的数据;利用所述输入残差矩阵的数据和反变换矩阵通过执行两次同一类型的反变换,解码获得输出残差矩阵的数据。本发明适用于任何利用反整数余弦变换进行解码的场合。
1、 一种解码方法,其特征在于,所述方法包括:接收输入残差矩阵的数据;利用所述输入残差矩阵的数据和反变换矩阵通过执行两次同一类型的反变换,解码获得输出残差矩阵的数据。2、 根据权利要求1所述的方法,其特征在于,在接收输入残差矩阵的数据之后还包括:将所述输入残差矩阵的串行数据并行转换为行向量Xm,其中,X为该行向量的标号,m为正整数;利用所述行向量Xm和反变换矩阵通过执行两次同一类型的反变换,解码获得输出残差矩阵的数据。3、 根据权利要求2所述的方法,其特征在于,利用所述行向量Xm和反变换矩阵通过执行两次同一类型的反变换,解码获得输出残差矩阵的数据包括:将所述反变换矩阵的串行数据并行转换为行向量Cm,C为该行向量的标号;利用所述行向量Xm和Cm,按照所述变换类型所预定的移位加法规则,执行第一次反变换,获取第一结果,该第一结果为由行向量Ym构成的矩阵,其中,Y为该行向量的标号;利用所述第一结果和Cm,按照所述变换类型所预定的移位加法规则,执行第二次反变换,获取所述输出残差矩阵的数据。4、 根据权利要求3所述的方法,其特征在于,利用所述第一结果和Cm,按照所述变换类型所预定的移位加法规则,执行第二次反变换,获取所述输出残差矩阵的数据包括:对所述行向量Ym进行第一后处理;将经第一后处理后的Ym分别进行转置;利用转置后的Ym和Cm,按照所述变换类型所预定的移位加法规则,执行第二次反变换,获得第二结果;对所述第二结果进行第二后处理,获取所述输出残差矩阵的数据。5、 根据权利要求1至4任一所述的方法,其特征在于,所述同一类型的反变换包括水平反变换或垂直反变换。6、 一种解码装置,其特征在于,所述装置包括:接收单元,用于接收输入残差矩阵的数据;反变换单元,用于利用所述接收单元接收到的输入残差矩阵的数据和反变换矩阵通过执行两次同一类型的反变换,解码获得输出残差矩阵的数据。7、 根据权利要求6所述的装置,其特征在于,所述装置还包括:串并转换单元,用于将所述输入残差矩阵的串行数据并行转换为行向量Xm,其中,X为行向量的标号,m为正整数;所述反变换单元,用于利用所述行向量Xm和反变换矩阵通过执行两次同一类型的反变换,解码获得输出残差矩阵的数据。8、 一种解码器,其特征在于,所述解码器包括:串转并处理模块,用于接收输入残差矩阵的串行数据并将该数据并行转换为行向量;反变换逻辑单元,用于利用所述串转并处理模块得到的行向量和反变换矩阵通过执行两次同一类型的反变换,解码获得输出残差矩阵的数据。9、 根据权利要求8所述的解码器,其特征在于,还包括:后处理模块,用于当所述反变换逻辑单元执行完第一次反变换后,进行第一后处理;当所述反变换逻辑单元执行完第二次反变换后,执行第二后处理;转置模块,用于对所述后处理模块第一次后处理的结果进行转置后,将数据送入所述反变换逻辑单元。10、 根据权利要求9所述的解码器,其特征在于,还包括:所述反变换逻辑单元,还用于利用所述转置模块发送的数据和反变换矩阵执行第二次反变换,解码获得输出残差矩阵的数据。
一种解码方法、装置和解码器 技术领域 本发明涉及视频处理领域,尤其涉及一种解码方法、装置和解码器。 背景技术 先进音视频编码标准(Audio Video Coding Standard,AVS)是具有中国自主知识产权的最新数字音视频编解码标准,目前已发布了基准档次(jizhunprofile)。AVS的编码效率较MPEG-2有2~3倍的提升,明显高于H.264的baselineprofile。在实现上,AVS编码器的复杂度为H.264的70%,解码器的复杂度为H.264的30%。大力推广中国自主知识产权的AVS标准,具有良好的市场前景和研究价值。 以往的编解码的技术如MPEG-2,通常采用DCT(离散余弦变换)和反离散余弦变换(IDCT),但是DCT变换矩阵各元素都是无理小数,其编码和解码会出现不匹配现象,而且浮点运算的复杂度高,增加了硬件成本。AVS采用了8×8的整数余弦变换(ICT)和反整数余弦变换(IICT)。ICT与DCT有着相当的能量压缩特性,但是ICT变换矩阵的各元素都是整数,因此其反变换(解码过程)产生的舍入误差要比DCT小很多。 根据AVS标准协议中的规定,以编码后的输入残差矩阵为CoeffMatrix,变换矩阵为8×8矩阵T8为例,对解码时解码器实现反整数余弦变换的过程进行说明,主要包括如下步骤: 步骤1:执行水平反变换。根据H′=CoeffMatrix×T8T对输入矩阵进行二维水平反变换,从符合AVS基准档次的比特流中解码得到水平变换的结果H′,T8T是T8的转置矩阵; 步骤2:将矩阵H′(水平变换的结果)中的每个系数加4再右移3位,得到矩阵H″; 步骤3:执行垂直反变换。根据H=T8×H″,进行二维垂直反变换,得到反变换结果H″; 步骤4:计算残差样值矩阵R。 根据rij=(hij+26)>>7获得矩阵R中的元素hij,其中i,j=0..7。 然而,在实现本发明的过程中,发明人发现现有技术中至少存在如下问题:现有技术在实现上述解码过程时,未深入考虑AVS反整数余弦变换的内在特征,解码器同时需要两种类型的电路,一个用以实现上述的水平反变换过程,一个用以实现上述的垂直反变换过程,占用了过多的硬件资源;且解码器直接执行两次复杂的二维矩阵变换,硬件电路的实现复杂度较高、运行速度低下,系统性能较差。 发明内容 为解决现有技术中存在的问题,本发明的实施例提供一种解码方法、装置和解码器,用于节省系统硬件资源,降低硬件电路实现解码的复杂度,显著提高系统性能。 为达到上述目的,本发明的实施例采用如下技术方案: 本发明的实施例提供了一种解码方法,所述方法包括: 根据接收到的输入残差矩阵获取中间矩阵; 利用所述中间矩阵和反变换矩阵通过执行两次同一类型的反变换,解码获得输出残差矩阵的数据。 进一步的,还包括: 将所述输入残差矩阵的串行数据并行转换为行向量Xm,所述行向量构成所述中间矩阵;其中,X为行向量的标号,m取值为正整数。 进一步的,包括:将所述反变换矩阵的串行数据并行转换为行向量Cm;利用所述行向量Xm和Cm,按照所述变换类型所预定的移位加法规则,执行第一次反变换,获取第一结果,该第一结果为包括行向量Ym的矩阵; 利用所述第一结果和Cm,按照所述变换类型所预定的移位加法规则,执行第二次反变换,获取所述输出残差矩阵的数据。 进一步的,所述同一类型的反变换包括水平反变换或垂直反变换。 本发明的实施例提供了一种解码装置,所述装置包括: 获取单元,用于根据接收到的输入残差矩阵获取中间矩阵;反变换单元,用于利用所述获取单元获取到的中间矩阵和反变换矩阵通过执行两次同一类型的反变换,解码获得输出残差矩阵的数据。 进一步的,所述获取单元包括: 串并转换模块,用于将所述输入残差矩阵的串行数据并行转换为8个行向量Xm,所述行向量构成所述中间矩阵;其中,X为行向量的标号,m取值为正整数。 本发明的实施例提供了一种解码器,所述解码器包括: 串转并处理模块,用于将输入残差矩阵的串行数据并行转换为行向量; 反变换逻辑单元,用于利用所述行向量和反变换矩阵通过执行两次同一类型的反变换,解码获得输出残差矩阵的数据。 进一步的,所述解码器还包括:后处理模块,用于当所述反变换逻辑单元执行完第一次反变换后,进行第一后处理;当所述反变换逻辑单元执行完第二次反变换后,执行第二后处理; 转置模块,用于对所述后处理模块第一次后处理的结果进行转置后,将数据送入所述反变换逻辑单元。 所述反变换逻辑单元,还用于利用所述转置模块发送的数据和反变换矩阵执行第二次反变换,解码获得输出残差矩阵。 本发明实施例提供的技术方案,通过深入分析AVS反整数余弦变换的内在特征,利用同一种电路通过执行两次同一类型的反变换获取输出残差矩阵的数据,大大节省了系统的硬件资源,且解码器执行二维矩阵变换时,利用预定的移位加法规则通过若干次固定系数的移位加法实现,显著降低了利用硬件电路实现解码时的复杂度,提高了系统性能。 附图说明 图1为本发明实施例提供的解码方法流程示意图; 图2为本发明实施例提供的数据读取方式示意图; 图3为本发明实施例提供的解码装置结构示意图; 图4为本发明实施例提供的一种解码器实现方式结构示意图。 具体实施方式 为了更清楚地说明本发明实施例的技术方案,下面将结合附图对本发明的实施例进行详细的介绍,下面的描述仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些实施例获得本发明的其他的实施方式。 本发明实施例提供的技术方案,通过深入分析AVS反整数余弦变换的内在特征,在解码过程中,将现有技术中的两种类型的变换转换为两次同一种类型的变换来实现,解码器主要通过一个相同的一维ICT计算单元和一个转置变换存储单元来实现二维反整数余弦变换,通过该ICT计算单元的时分复用,利用一维的若干次固定系数的移位加法实现上述类型的变换。 下面结合示例对本发明实施例进行具体说明。 为清楚理解本发明实施例的技术方案,首先对ICT的技术特征进行深入分析。结背景技术中的水平变换和垂直变换,可以得出下式: H=T8×CoeffMatrix×T8.T---(1-1)]]> 若对输入残差矩阵CoeffMatrix进行转置,且令M=CoeffMatrixT,则可将变换公式(1-1)写成: H=T8×(T8×M).T (1-2) 或者写成, H=(M×T8T).T×T8T (1-3) 可见,ICT中的二维矩阵变换可以由两次一维的反变换(水平反变换或垂直反变换),例如,可以利用输入残差矩阵左乘同一个矩阵T8来实现或者利用输入残差矩阵右乘同一个矩阵T8T来实现。 如图1所示,本发明实施例提供的解码方法包括: 步骤T1:接收输入残差矩阵的数据; 系统中流水过来的输入残差矩阵的数据是串行一个像素一个像素的输入,接收时也是逐个进行接收的,为提高数据处理的效率,本发明实施例还包括: 将所述输入残差矩阵的串行数据并行转换为行向量Xm;其中,X为行向量的标号,m为行向量的序号,m为正整数,m的取值为0至7。 将输入残差矩阵的串行数据先串转并成8个像素一组的并行数据,也就是输入矩阵的一个行向量。 应当注意到,在本发明实施例中,参见图2,系统在读取编码后存储的像素值,发送给解码器时,采用了一种特殊的读取方式。图2中以8*8的RAM存储器为例进行说明,水平的实线箭头所示为存储像素时的写入顺序,垂直的虚线箭头所示为读取像素时的顺序,通过这种写入和读取的顺序,使接收到的输入残差矩阵的数据为上述CoeffMatrix矩阵的转置。 步骤T2:利用所述输入残差矩阵的数据和反变换矩阵通过执行两次同一类型的反变换,解码获得输出残差矩阵的数据。 通过上述对输入残差矩阵数据的串并转换,步骤T2中利用所述行向量Xm和反变换矩阵通过执行两次同一类型的反变换,解码获得输出残差矩阵。 下面采用上式(1-2),以进行两次水平反变换为例说明本发明的技术方案。 对式(1-2)中,输入残差矩阵与反变换矩阵的运算中,可进行如下处理: Yn=∑∑CmXm n,m=0,...,7 其中,Xm为步骤T1中获取到的输入残差矩阵的行向量,Yn为运算结果矩阵,Cm为矩阵反变换矩阵T8的行向量,Y、C分别为其相应行向量的标号,本发明实施例中T8取为: T8=8101098642894-2-8-10-10-686-4-10-8210982-10-689-4-108-2-1068-9-4108-6-410-8-210-98-942-810-1068-1010-98-64-2]]> 对运算结果矩阵的第一个行向量有: Y0=8X0+10X1+10X2+9X3+8X4+6X5+4X6+2X7 =[(8X0+8X4)+(10X2+4X6)]+[(10X1+6X5)+(9X3+2X7)] =[Z0+Z6]+[Z2+Z8] 对8个行向量Y0~Y7全部按此方法进行处理,可以获得12种类似的组合项Z0~Z11: Z0=8X0+8X4=(X0<<3)+(X4<<3); Z1=8X0-8X4=(X0<<3)-(X4<<3); Z2=10X1+6X5=[(X1<<3)+(X1<<1)]+[(X5<<2)+(X5<<1)]; Z3=9X1-10X5=[(X1<<3)+X1]-[(X5<<3)+(X5<<1)]; Z4=6X1+2X5=[(X1<<2)+(X1<<1)]+(X5<<1); Z5=2X1+9X5=(X1<<1)+[(X5<<3)+X5]; Z6=10X2+4X6=[(X2<<3)+(X2<<1)]+(X6<<2); Z7=4X2-10X6=(X2<<2)-[(X6<<3)+(X6<<1)]; Z8=9X3+2X7=[(X3<<3)+X3]+(X7<<1); Z9=2X3+6X7=(X3<<1)+[(X7<<2)+(X7<<1)]; Z10=10X3-9X7=[(X3<<3)+(X3<<1)]-[(X7<<3)+X7]; Z11=6X3+10X7=[(X3<<2)+(X3<<1)]+[(X7<<3)+(X7<<1)]; 为进一步便于处理,简化操作,设置8个中间变量W0~W7: W0=Z0+Z6;W1=Z2+Z8;W2=Z1+Z7;W3=Z3-Z9; W4=Z1-Z7;W5=Z4-Z10;W6=Z0-Z6;W7=Z5-Z11。 最终获取的运算结果矩阵的向量Y0~Y7可以表示为: Y0=W0+W1;Y1=W2+W3;Y2=W4+W5;Y3=W6+W7; Y4=W6-W7;Y5=W4-W5;Y6=W2-W3;Y7=W0-W1。 通过上述处理将复杂的二维矩阵运算转换成了若干移位加法运算,在利用硬件电路实现时,大大减少了运算复杂度。 在步骤T2中,将所述反变换矩阵的串行数据并行转换为行向量Cm,利用所述行向量Xm和Cm,按照所述变换类型所预定的移位加法规则,执行反变换。上述处理过程描述了当变化类型为水平反变换时,所述预定的移位加法规则的确定方法。显而易见的,可利用同样的处理方法确定变换类型为垂直反变换时预定的移位加法规则。 步骤T2可具体包括如下步骤: 步骤T21:利用所述行向量Xm和Cm,按照所述变换类型所预定的移位加法规则,执行第一次反变换,获取第一结果。 仍以上述例子说明,执行第一次反变换后,获得该第一结果为包括8个行向量Y0~Y7的矩阵。 步骤T22:对所述行向量Ym进行第一后处理; 这里的第一后处理包括对第一结果中各行向量Ym的移位和钳位,如将行向量Ym中的每个系数加4再右移3位。 步骤T23:将经第一后处理后的Ym分别进行转置; 该转置运算的具体处理方式可参见图2所示的转置变换读写方式,根据该读写方式,通过一个存储器实现矩阵数据的转置。 步骤T24:利用转置后的Ym和Cm,按照所述变换类型所预定的移位加法规则,执行第二次反变换,获得第二结果; 这里,步骤T24中进行反变换的方式与步骤T21中的方式相同,即用同一个电路通过时分复用,即可实现ICT的主要矩阵运算过程。 步骤T25:对所述第二结果进行第二后处理,获取所述输出残差矩阵。 第二后处理也涉及移位和钳位处理,例如,对第二结果中的每个元素加上26再右移7位。 经过上述的步骤的处理最终解码完毕获取到了输出残差矩阵。 本发明实施例提供的技术方案,通过深入分析AVS反整数余弦变换的内在特征,利用同一种电路通过执行两次同一类型的反变换获取输出残差矩阵的数据,大大节省了系统的硬件资源,且解码器执行二维矩阵变换时,利用预定的移位加法规则通过若干次固定系数的移位加法实现,显著降低了利用硬件电路实现解码时的复杂度,提高了系统性能。 本发明实施例还提供了一种解码装置,如图3所示,所述装置包括: 接收单元31,用于接收输入残差矩阵的数据; 反变换单元32,用于利用所述接收单元31接收到的输入残差矩阵的数据和反变换矩阵通过执行两次同一类型的反变换,解码获得输出残差矩阵的数据。 进一步的,所述装置还包括: 串并转换单元33,用于将所述输入残差矩阵的串行数据并行转换为行向量Xm,其中,m为行向量的标号,m为正整数; 所述反变换单元32,用于利用所述行向量Xm和反变换矩阵通过执行两次同一类型的反变换,解码获得输出残差矩阵的数据。 上述装置中各功能模块的具体实现方式参见本发明的方法实施例。 上述装置利用反变换单元32通过执行两次同一类型的反变换获取输出残差矩阵的数据,大大节省了系统的硬件资源,且反变换单元32进行每次反变换时,利用预定的移位加法规则通过若干次固定系数的移位加法实现,显著降低了利用硬件电路实现解码的复杂度,提高了系统性能。 本发明实施例还提供了一种解码器,如图4所示,所述解码器包括: 串转并处理模块(如S2P模块),用于接收输入残差矩阵的串行数据并将该数据并行转换为行向量;反变换逻辑单元(如IICT-PROC模块),用于利用所述串转并处理模块得到的行向量和反变换矩阵通过执行两次同一类型的反变换,解码获得输出残差矩阵。 进一步的,所述解码器还包括: 后处理模块(如POST-PROC模块),用于当所述反变换逻辑单元执行完第一次反变换后,进行第一后处理;当所述反变换逻辑单元执行完第二次反变换后,执行第二后处理; 转置模块(如TRANS-MEM模块),用于对所述后处理模块第一次后处理的结果进行转置。 所述反变换逻辑单元,还用于利用所述转置模块的结果和反变换矩阵执行第二次反变换,解码获得输出残差矩阵。 参见图4,S2P模块为串转并处理模块,负责将AVS系统中从上一个处理单元传输来的像素矩阵的数据进行串并转换,输出结果串转并数据(s2p-data),以更高效的进行矩阵运算; 数据复用(DATA_MUX)模块,为一个控制模块,会根据系统的使能信号的不同,决定IICT-PROC模块当前所做的是第一次反变换还是第二次反变换(两次反变换对应不同的后处理过程); 当DATA_MUX模块确定IICT-PROC模块当前所做的是第一次反变换时,发送指令(如mux_data),控制POST_PROC模块接收第一次反变换的结果(如iict_proc),对该结果进行第一后处理得到后结果数据(post-data)并送至TRANS_MEM模块,TRANS_MEM模块将post-data数据存储进RAM进行转置处理,然后由IICT-PROC模块进行第二次反变换。 当DATA_MUX模块确定IICT-PROC模块当前所做的是第二次反变换时,控制POST_PROC模块接收第二次反变换的结果,对该结果进行第二后处理,然后输出得到解码后的输出残差矩阵的数据(如res_data)。 本发明实施例提供的技术方案,通过深入分析AVS反整数余弦变换的内在特征,利用同一种电路通过执行两次同一类型的反变换获取输出残差矩阵,大大节省了系统的硬件资源,且解码器执行二维矩阵变换时,利用预定的移位加法规则通过若干次固定系数的移位加法实现,显著降低了利用硬件电路实现解码的复杂度,提高了系统性能。 本发明实施例提供的解码方法、装置和解码器,可实时解码AVS第二部分基准档次的视频ES流。通过实践验证,能够达到理想的效果。且由于实现方式简单,易于集成在AVS高清解码器中。该技术方案通过了AVS工作组已发布的一致性测试码流的测试,带有错误检测机制,性能稳定高效,十分方便于系统集成。 本领域普通技术人员可以理解实现上述实施例中的全部或部分步骤,可以通过程序指令相关硬件完成。所述实施例对应的软件可以存储在一个计算机可存储读取的介质中。 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
下载文档到电脑,查找使用更方便
30 金币 0人已下载
还可以输入200字符
暂无评论,赶快抢占沙发吧。
copyright@ 2017-2018 zhuanlichaxun.net网站版权所有经营许可证编号:粤ICP备2021068784号-1