基于avs的4×4离散余弦变换的快速并行装置及其方法

文档序号:7615234阅读:225来源:国知局
专利名称:基于avs的4×4离散余弦变换的快速并行装置及其方法
技术领域
本发明属于数字音视频编解码技术领域,更明确地说涉及基于AVS(数字音视频编解码标准)的4×4离散余弦变换(DCT)的快速并行装置及其方法的设计。
背景技术
变换编码是实现视频编解码的关键技术。离散余弦变换是一种正交变换,它有能量集中(变换后的系数集中在左上角的直流系数)和非相关性好(数据块仅用少数系数就可重组)等特点,其性能接近与理想的K-L变换,因此被广泛应用于图像和视频编码中。目前各种视频编解码标准(mpeg、h.26x、avs)均采用离散余弦变换。
但是实现DCT时需要大量的矩阵运算,特别是采用乘法,使硬件实现和应用的复杂程度高、运算速度慢,严重影响了编码效率,因此实际应用中都是采用DCT的快速算法。
AVS音视频编码标准是我国自主开发的国家标准,其编码效率是mpeg2的2~3倍,和h.264相当。对于离散余弦变换,AVS采用4×4块整数变换,并给出了变换矩阵,使DCT的运算速度有很大提高,同时也易于实现。
它给出的变换矩阵为T4=222231-1-32-2-221-33-1]]>反变换矩阵为其转置矩阵T4T=232121-2-32-1-232-32-1]]>但是,它仍存在需进一步改进的之处,比如它依然存在乘法、运算量可进一步减少、变换的并行处理能力差等等。

发明内容
本发明的目的,就在于克服上述缺点和不足,提供一种基于AVS的4×4离散余弦变换的快速并行装置及其方法。它能够减少运算量并使DCT变换真正实现无乘法运算,提高编码效率,降低其实现装置的复杂程度。
本发明的另一个目的在于使DCT可进行并行运算,进一步提高编码效率。
为了达到上述目的,本发明包括以下正变换装置和反变换装置正变换转置用于对帧内预测或帧间预测产生的残差系数矩阵进行4×4离散余弦变换,包括信号输入模块接收帧内预测和帧间预测产生的残差系数矩阵,其输入端连接帧内预测或帧间预测残差系数矩阵输出端,行正变换模块对输入的残差系数矩阵作水平方向的4×4离散余弦行正变换,得到中间结果,列正变换模块将行变换模块所得中间结果进行竖直方向的4×4离散余弦列正变换,输出模块将变换系数矩阵输出至量化模块进行量化和后续编码过程;反变换装置用于对反变换所得图像参数矩阵进行4×4离散余弦反变换,包括信号输入模块接收反量化模块产生的系数矩阵,行反变换模块对输入的反量化系数矩阵作水平方向的4×4离散余弦行反变换,得到中间结果,列反变换模块将行反变换模块所得中间结果进行竖直方向的4×4离散余弦列反变换,系数调整模块对反变换后的系数按照AVS标准进行调整,输出模块将变换系数矩阵输出至运动补偿模块进行后续解码过程,反变换模块对反变换所得图像参数矩阵进行4×4离散余弦反变换,其输入端输入反量化所得图像参数矩阵,输出端输出反变换系数矩阵。
上述快速并行实现装置包含两个公共运算模块矩阵变换模块,采用核心矩阵进行离散余弦变换的运算,列正变换模块和行反变换模块采用此模块;
转置矩阵变换模块,采用核心矩阵的转置矩阵进行离散余弦变换的运算,行正变换模块和列反变换采用此模块。
上述公共运算模块都包含并行运算子模块和输出排序子模块并行运算子模块用来进行离散余弦变换的矩阵运算,输出排序子模块将输出结果进行排序;其中矩阵变换模块的并行运算子模块包括第一矩阵模块、第二矩阵子矩阵1模块、第二矩阵子矩阵2模块、第三矩阵子矩阵1模块和第三矩阵子矩阵2模块,其中第二矩阵子矩阵1模块和第三矩阵子矩阵1模块可以与第二矩阵子矩阵2模块和第三矩阵子矩阵2模块并行运算;转置矩阵变换模块的并行运算子模块用来进行离散余弦变换的矩阵运算,包括第一转置矩阵模块、第二转置矩阵子矩阵1模块、第二转置矩阵子矩阵2模块、第三转置矩阵子矩阵1模块和第三转置矩阵子矩阵2模块,其中第二转置矩阵子矩阵1模块和第三转置矩阵子矩阵1模块可以与第二转置矩阵子矩阵2模块和第三转置矩阵子矩阵2模块并行运算。
所述核心矩阵为T4=100000100100000120000200002100-1211001-100001100-111001011001-10100-1]]>其转置矩阵为T4T=1001011001-10100-111001-100001-1001120000200002-100121000001001000001]]>所述核心矩阵的分解矩阵为第一矩阵和转置矩阵AT=A=1001011001-10100-1,]]>
第二矩阵M1=20000200002100-12,]]>第二矩阵子矩阵1M11=2002,]]>第二矩阵子矩阵2M12=21-12]]>第二转置矩阵M1T=20000200002-10012,]]>第二转置矩阵子矩阵1M11T=2002,]]>第二转置矩阵子矩阵2M12T=2-112]]>第三矩阵M2=11001-100001100-11,]]>第三矩阵子矩阵1M21=111-1,]]>第三矩阵子矩阵2M22=11-11]]>第三转置矩阵M2T=11001-100001-10011,]]>第三转置矩阵子矩阵1MT21=111-1,]]>第三转置矩阵子矩阵2M22T=1-111]]>
第四矩阵和转置矩阵PT=P=1000001001000001]]>矩阵变换模块的并行运算模块包含的第一矩阵模块采用矩阵A=1001011001-10100-1,]]>第二矩阵子矩阵1模块采用矩阵M11=2002,]]>第二矩阵子矩阵2模块采用矩阵M12=21-12]]>第三矩阵子矩阵1模块采用矩阵M21=111-1,]]>第三矩阵子矩阵2模块采用矩阵M22=11-11]]>矩阵变换模块的输出排序模块采用矩阵P=1000001001000001]]>转置矩阵变换模块的并行运算模块包含的第一转置矩阵模块块采用矩阵AT=1001011001-10100-1,]]>
第二转置矩阵子矩阵1模块采用矩阵M11T=2002,]]>第二转置矩阵子矩阵2模块采用矩阵M12T=2-112]]>第三转置矩阵子矩阵1模块采用矩阵MT21=111-1,]]>第三转置矩阵子矩阵2模块采用矩阵M22T=1-111]]>转置矩阵变换模块输出排序模块采用矩阵PT=1000001001000001]]>基于AVS的4×4离散余弦变换的快速并行装置的方法包括如下正变换和反变换实现步骤正变换步骤步骤1信号输入模块接收帧内预测和帧间预测产生的残差系数矩阵,步骤2行正变换模块对输入的残差系数矩阵作水平方向的4×4离散余弦行变换,步骤3列正变换模块将行正变换模块所得中间结果进行竖直方向的4×4离散余弦列正变换,步骤4输出模块将变换所得系数矩阵输出至量化模块,进行参数调整、量化及后续编码过程;反变换步骤步骤1信号输入模块接收反量化模块产生的系数矩阵,步骤2行反变换模块对输入的反量化系数矩阵作水平方向的4×4离散余弦行反变换,步骤3列反变换模块将行反变换模块所得中间结果进行竖直方向的4×4离散余弦列反变换,步骤4系数调整模块对反变换后的系数按照AVS标准进行调整,步骤5输出模块将变换所得系数矩阵输出至运动补偿模块,进行运动补偿及后续解码过程。
正变换步骤2还包括步骤20将该步骤2中所用核心矩阵的转置矩阵,分解为四个矩阵第一转置矩阵、第二转置矩阵、第三转置矩阵和第四转置矩阵,其中前三个矩阵对应于并行运算子模块,最后一个矩阵对应于输出排序子模块。
步骤21将残差系数矩阵依次按行取出左乘第一矩阵,步骤22将上一步骤所得系数向量,分为两部分并行处理将前两个元素作为第一子向量,依次与第二转置矩阵的子矩阵1和第三转置矩阵的子矩阵1左乘,将后两个元素作为第二子向量,依次与第二转置矩阵的子矩阵2和第三转置矩阵的子矩阵2左乘,步骤23将计算结果经输出排序模块,按照第四转置矩阵排序输出至暂存区,步骤24重复以上步骤21到23直至全部矩阵计算完成;其正变换步骤3还包括步骤30该步骤3中所用核心变换矩阵,同样分解为四个矩阵第一矩阵、第二矩阵、第三矩阵和第四矩阵,其中前三个矩阵对应于并行运算子模块,最后一个矩阵对应于输出排序子模块,步骤31行变换所得系数矩阵依次按列取出右乘第一矩阵,步骤32将上一步骤所得系数向量,分为两部分并行处理将前两个元素作为第一子向量,依次与第二矩阵的子矩阵1和第三矩阵的子矩阵1右乘,将后两个元素作为第二子向量,依次与第二矩阵的子矩阵2和第三矩阵的子矩阵2右乘,步骤33将计算结果经输出排序模块,按照第四矩阵排序输出至暂存区,步骤34重复以上步骤31到33直至全部矩阵计算完成;其反变换步骤2还包括步骤20该步骤2中所用核心变换矩阵,同样分解为四个矩阵第一矩阵、第二矩阵、第三矩阵和第四矩阵,其中前三个矩阵对应于并行运算子模块,最后一个矩阵对应于输出排序子模块,步骤21输入的反量化系数矩阵依次按列取出左乘第一矩阵,步骤22将上一步骤所得系数向量,分为两部分并行处理将前两个元素作为第一子向量,依次与第二矩阵的子矩阵1和第三矩阵的子矩阵1左乘,将后两个元素作为第二子向量,依次与第二矩阵的子矩阵2和第三矩阵的子矩阵2左乘,步骤23将计算结果经输出排序模块按照第四矩阵排序输出至暂存区;步骤24重复以上步骤21到23直至全部矩阵计算完成;其反变换步骤3还包括步骤30该步骤3中所用核心变换矩阵的转置,分解为四个矩阵第一转置矩阵,第二转置矩阵,第三转置矩阵,第四转置矩阵,其中前三个矩阵对应于并行运算子模块,最后一个矩阵对应于输出排序子模块,步骤31将行反变换系数矩阵依次按行取出右乘第一矩阵,步骤32将上一步骤所得系数向量,分为两部分并行处理,将前两个元素作为第一子向量,依次与第二转置矩阵的子矩阵1和第三转置矩阵的子矩阵1右乘,将后两个元素作为第二子向量,依次与第二转置矩阵的子矩阵2和第三转置矩阵的子矩阵2右乘,步骤33将计算结果经输出排序模块,按照第四转置矩阵排序输出至暂存区,步骤34重复以上步骤21到23直至全部矩阵计算完成。
本发明采用的总体技术方案是基于AVS的4×4离散余弦变换快速并行装置分为正变换装置和反变换装置,它们分别为AVS编码和解码模块中的实现变换编码的模块,符合AVS标准的定义和规定。
首先有两个公共模块矩阵变换模块采用核心变换矩阵,内部包含两个子模块并行运算模块和输出排序模块。前者并行完成变换矩阵运算,后者对由于采用并行运算而打乱的输出结果顺序进行正确排序。
转置矩阵变换模块采用核心变换矩阵的转置矩阵,同样内部包含两个子模块并行运算模块和输出排序模块。前者并行完成变换矩阵运算,后者对由于采用并行运算而打乱的输出结果顺序进行正确排序。
正变换装置包括信号输入模块接收帧内预测和帧间预测产生的残差系数矩阵。
行正变换模块对输入的残差系数矩阵作水平方向的4×4离散余弦行正变换,得到中间结果。它采用转置矩阵变换模块。
列正变换模块将行变换模块所得中间结果进行竖直方向的4×4离散余弦列正变换,它采用矩阵变换模块。
输出模块将变换系数矩阵输出至量化模块进行量化和后续编码过程。
反变换装置包括信号输入模块接收反量化模块产生的系数矩阵。
行反变换模块对输入的反量化系数矩阵作水平方向的4×4离散余弦行反变换,得到中间结果。它采用矩阵变换模块。
列反变换模块将行反变换模块所得中间结果进行竖直方向的4×4离散余弦列反变换,它采用转置矩阵变换模块。
系数调整模块对反变换后的系数按照AVS标准进行调整。
输出模块将变换系数矩阵输出至运动补偿模块进行后续解码过程。
快速并行正变换的实现步骤为步骤1信号输入模块接收帧内预测和帧间预测产生的残差系数矩阵。
步骤2行正变换模块对输入的残差系数矩阵作水平方向的4×4离散余弦行变换。
步骤20该步骤中所用核心矩阵的转置矩阵T4T,分解为四个矩阵第一转置矩阵AT、第二转置矩阵M2T、第三转置矩阵M1T和第四转置矩阵PT。其中前三个矩阵对应于并行运算子模块,最后一个矩阵对应于输出排序子模块。
步骤21将残差系数矩阵依次按行取出左乘第一矩阵;步骤22将上一步骤所得系数向量,分为两部分并行处理前两个元素作为第一子向量,依次与第二转置矩阵的子矩阵1 M21T和第三转置矩阵的子矩阵1 M11T左乘;
后两个元素作为第二子向量,依次与第二转置矩阵的子矩阵2 M22T和第三转置矩阵的子矩阵2 M12T左乘;步骤23将计算结果经输出排序模块,按照第四转置矩阵排序输出至暂存区;步骤24重复以上步骤21到23直至全部矩阵计算完成。
步骤3列正变换模块将行正变换模块所得中间结果进行竖直方向的列反变换,步骤30该步骤中所用核心变换矩阵T4同样分解为四个矩阵第一矩阵A、第二矩阵M1、第三矩阵M2和第四矩阵P。其中前三个矩阵对应于并行运算子模块,最后一个矩阵对应于输出排序子模块。
步骤31行变换所得系数矩阵依次按列取出右乘第一矩阵;步骤32将上一步骤所得系数向量,分为两部分并行处理将前两个元素作为第一子向量,依次与第二矩阵的子矩阵1 M11和第三矩阵的子矩阵1 M21右乘;将后两个元素作为第二子向量,依次与第二矩阵的子矩阵2 M12和第三矩阵的子矩阵2 M22右乘;步骤33将计算结果经输出排序模块,按照第四矩阵排序输出至暂存区;步骤34重复以上步骤31到33直至全部矩阵计算完成。
步骤4输出模块将变换所得系数矩阵输出至量化模块,进行参数调整、量化及后续编码过程。
基于AVS的4×4离散余弦变换的快速并行算法反变换的步骤是步骤1信号输入模块接收反量化模块产生的系数矩阵。
步骤2行反变换模块对输入的反量化系数矩阵作水平方向的4×4离散余弦行反变换。
步骤20该步骤中所用核心变换矩阵T4。同样分解为四个矩阵第一矩阵A、第二矩阵M1、第三矩阵M2和第四矩阵P。其中前三个矩阵对应于并行运算子模块,最后一个矩阵对应于输出排序子模块。
步骤21输入的反量化系数矩阵依次按列取出左乘第一矩阵;
步骤22将上一步骤所得系数向量,分为两部分并行处理将前两个元素作为第一子向量,依次与第二矩阵的子矩阵1 M11和第三矩阵的子矩阵1 M21左乘;将后两个元素作为第二子向量,依次与第二矩阵的子矩阵2 M12和第三矩阵的子矩阵2 M22左乘;步骤23将计算结果经输出排序模块,按照第四矩阵排序输出至暂存区;步骤24重复以上步骤21到23直至全部矩阵计算完成。
步骤3列反变换模块将行反变换模块所得中间结果进行竖直方向的列反变换,步骤30该步骤中第二转置矩阵所用核心变换矩阵的转置T4T分解为四个矩阵第一转置矩阵AT、第二转置矩阵M2T、第三转置矩阵M1T和第四转置矩阵PT。其中前三个矩阵对应于并行运算子模块,最后一个矩阵对应于输出排序子模块。
步骤31将行反变换系数矩阵依次按行取出右乘第一矩阵;步骤32将上一步骤所得系数向量,分为两部分并行处理将前两个元素作为第一子向量,依次与第二转置矩阵的子矩阵1 M21T和第三转置矩阵的子矩阵1 M11T右乘;将后两个元素作为第二子向量,依次与第二转置矩阵的子矩阵2 M22T和第三转置矩阵的子矩阵2 M12T右乘;步骤33将计算结果经输出排序模块,按照第四转置矩阵排序输出至暂存区;步骤34重复以上步骤21到23直至全部矩阵计算完成。
步骤4系数调整模块对反变换后的系数按照AVS标准进行调整。
步骤5输出模块将变换所得系数矩阵输出至运动补偿模块,进行运动补偿及后续解码过程。
以上步骤中所用到的核心变换矩阵为
T4=PM1M2A]]>=100000100100000120000200002100-1211001-100001100-111001011001-10100-1]]>其转置矩阵为T4T=ATM2TM1TPT]]>=1000011001-10100-111001-100001-1001120000200002-100121000001001000001]]>分解矩阵为第一矩阵和转置矩阵AT=A=1001011001-10100-1,]]>第二矩阵M1=20000200002100-12,]]>第二矩阵子矩阵1M11=2002,]]>第二矩阵子矩阵2M12=21-12]]>第二转置矩阵M1T=20000200002-10012,]]>第二转置矩阵子矩阵1M11T=2002,]]>
第二转置矩阵子矩阵2M12T=2-112]]>第三矩阵M2=11001-100001100-11,]]>第三矩阵子矩阵1M21=111-1,]]>第三矩阵子矩阵2M22=11-11]]>第三转置矩阵M2T=11001-100001-10011,]]>第三转置矩阵子矩阵1MT21=111-1,]]>第三转置矩阵子矩阵2M22T=1-111]]>第四矩阵和转置矩阵PT=P=1000001001000001]]>从以上步骤和核心矩阵可以看出,本发明有显著的优点和积极的效果矩阵中的1和-1对应与加减法运算,从核心矩阵中可见系数中出了1、0、-1之外只有2,而它可以通过移位来完成,也就是说,本发明只用加减法和移位就可实现,不用乘法。而且,本发明采用并行运算方式,可使运算速度大为提高,提高了编码效率,而且很适合dsp或MMx的并行指令来实现,也降低了硬件实现的复杂度。而采用并行运算而添加的输出排序模块只是在输出存储时按矩阵P的顺序进行输出,并未增加运算量。
本发明能够减少运算量并使DCT变换真正实现无乘法运算,提高编码效率,降低其实现装置的复杂程度;还可使DCT可进行并行运算,进一步提高编码效率。它可广泛应用于基于AVS的数字音视频编解码中。


图1为本发明装置的原理方框图。
图2为其矩阵变换模块图。
图3为其转置矩阵变换模块图。
图4为本发明方法的流程图。
具体实施例方式
实施例1。一种基于AVS的4×4离散余弦变换的快速并行装置,参阅图1~图3。本实施例的离散余弦变换采用的是行列分离算法,即先进行行变换,再进行列变换。
本实施例包括以下正变换装置和反变换装置正变换装置用于对帧内预测或帧间预测产生的残差系数矩阵进行4×4离散余弦变换,包括信号输入模块接收帧内预测和帧间预测产生的残差系数矩阵,其输入端连接帧内预测或帧间预测残差系数矩阵输出端,行正变换模块对输入的残差系数矩阵作水平方向的4×4离散余弦行正变换,得到中间结果,列正变换模块将行变换模块所得中间结果进行竖直方向的4×4离散余弦列正变换,输出模块将变换系数矩阵输出至量化模块进行量化和后续编码过程;反变换装置用于对反变换所得图像参数矩阵进行4×4离散余弦反变换,包括信号输入模块接收反量化模块产生的系数矩阵,行反变换模块对输入的反量化系数矩阵作水平方向的4×4离散余弦行反变换,得到中间结果,列反变换模块将行反变换模块所得中间结果进行竖直方向的4×4离散余弦列反变换,系数调整模块对反变换后的系数按照AVS标准进行调整,输出模块将变换系数矩阵输出至运动补偿模块进行后续解码过程,反变换模块对反变换所得图像参数矩阵进行4×4离散余弦反变换,其输入端输入反量化所得图像参数矩阵,输出端输出反变换系数矩阵。
上述快速并行装置包含两个公共运算模块矩阵变换模块,采用核心矩阵进行离散余弦变换的运算,列正变换模块和行反变换模块采用此模块;转置矩阵变换模块,采用核心矩阵的转置矩阵进行离散余弦变换的运算,行正变换模块和列反变换采用此模块。
上述公共运算模块都包含并行运算子模块和输出排序子模块并行运算模块用来进行离散余弦变换的矩阵运算,输出排序模块将输出结果进行排序;其中矩阵变换模块的并行运算模块包括第一矩阵模块、第二矩阵子矩阵1模块、第二矩阵子矩阵2模块、第三矩阵子矩阵1模块和第三矩阵子矩阵2模块,其中第二矩阵子矩阵1模块和第三矩阵子矩阵1模块可以与第二矩阵子矩阵2模块和第三矩阵子矩阵2模块并行运算;转置矩阵变换模块的并行运算模块用来进行离散余弦变换的矩阵运算,包括第一转置矩阵模块、第二转置矩阵子矩阵1模块、第二转置矩阵子矩阵2模块、第三转置矩阵子矩阵1模块和第三转置矩阵子矩阵2模块,其中第二转置矩阵子矩阵1模块和第三转置矩阵子矩阵1模块可以与第二转置矩阵子矩阵2模块和第三转置矩阵子矩阵2模块并行运算。
所述核心矩阵为T4=100000100100000120000200002100-1211001-100001100-111001011001-10100-1]]>其转置矩阵为T4T=1001011001-10100-111001-100001-1001120000200002-100121000001001000001]]>所述核心矩阵的分解矩阵为
第一矩阵和转置矩阵AT=A=1002011001-10100-1,]]>第二矩阵M1=20000200002100-12,]]>第二矩阵子矩阵1M11=2002,]]>第二矩阵子矩阵2M12=21-12]]>第二转置矩阵M1T=20000200002-10012,]]>第二转置矩阵子矩阵1M11T=2002,]]>第二转置矩阵子矩阵2M12T=2-112]]>第三矩阵M2=11001-100001100-11,]]>第三矩阵子矩阵1M21=111-1,]]>第三矩阵子矩阵2M22=11-11]]>第三转置矩阵M2T=11001-100001-10011,]]>第三转置矩阵子矩阵1MT21=111-1,]]>第三转置矩阵子矩阵2M22T=1-111]]>第四矩阵和转置矩阵PT=P=1000001001000001]]>矩阵变换模块的并行运算模块包含的第一矩阵模块采用矩阵A=1001011001-10100-1,]]>第二矩阵子矩阵1模块采用矩阵M11=2002,]]>第二矩阵子矩阵2模块采用矩阵M12=21-12]]>第三矩阵子矩阵1模块采用矩阵M21=111-1,]]>第三矩阵子矩阵2模块采用矩阵M22=11-11]]>矩阵变换模块的输出排序模块采用矩阵P=1000001001000001]]>转置矩阵变换模块的并行运算模块包含的
第一转置矩阵模块块采用矩阵AT=1001011001-10100-1,]]>第二转置矩阵子矩阵1模块采用矩阵M11T=2002,]]>第二转置矩阵子矩阵2模块采用矩阵M12T=2-112]]>第三转置矩阵子矩阵1模块采用矩阵MT21=111-1,]]>第三转置矩阵子矩阵2模块采用矩阵M22T=1-111]]>转置矩阵变换模块输出排序模块采用矩阵PT=1000001001000001]]>正变换对于帧内帧间预测残差,进行如下的4×4变换[Y]=T4[X]T4T]]>其中[X]为帧内帧间预测残差系数二维矩阵,对应与正变换模块中输入模块输入的矩阵;[Y]为变换后的输出系数二维矩阵,经输出模块输出至量化模块进行系数调整和量化;T4T对应于行正变换模块,采用转置矩阵变换模块;T4对应于列正变换模块,采用矩阵变换模块。
反变换对于反量化后得系数矩阵,进行如下的4×4反变换[X]=T4[Y]TT4]]>
其中[Y]为反量化所得二维系数矩阵,对应与反变换模块中输入模块输入的矩阵;[X]为变换后的输出二维系数矩阵,经输出模块输出至系数调整模块进行系数调整;T4对应于行反变换模块,将采用矩阵变换模块。T4T对应于行反变换模块,将采用转置矩阵变换模块。
参阅图2和图3核心矩阵的转置矩阵T4T被分解为四个矩阵,第一转置矩阵AT对应于第一转置矩阵模块;第二转置矩阵M2T的子矩阵1为M21T。对应于第二转置矩阵子矩阵1模块,它的子矩阵2为M22T。对应于第二转置矩阵子矩阵2模块;第三矩阵M1T的子矩阵1为M11T。对应于第三转置矩阵子矩阵1模块,它的子矩阵2为M12T。对应于第三转置矩阵子矩阵2模块;第四矩阵PT对应于输出排序模块。
核心矩阵T4被分解为四个矩阵,第一矩阵A对应于第一矩阵模块;第二矩阵M1的子矩阵1为M11。对应于第二矩阵子矩阵1模块,它的子矩阵2为21M12。对应于第二子矩阵子矩阵2模块;第三矩阵M2的子矩阵1为M21。对应于第三矩阵子矩阵1模块,它的子矩阵2为M22。对应于第三矩阵子矩阵2模块;第四矩阵P对应于输出排序模块。
实施例2。一种基于AVS的4×4离散余弦变换的快速并行装置的方法,参阅图4及图2、图3。
基于AVS的4×4离散余弦变换的快速并行装置的方法采用的是行列分离算法,即先进行行变换,再进行列变换。
正变换对于帧内帧间预测残差,进行如下的4×4变换[Y]=T4[X]T4T]]>
其中[X]为帧内帧间预测残差系数二维矩阵,[Y]为变换后的输出系数二维矩阵。
反变换对于反量化后得系数矩阵,进行如下的4×4反变换[X]=T4[Y]TT4]]>其中[Y]为反量化所得二维系数矩阵,[X]为变换后的输出二维系数矩阵包括如下正变换和反变换实现步骤正变换步骤步骤1信号输入模块接收帧内预测和帧间预测产生的残差系数矩阵,步骤2行正变换模块对输入的残差系数矩阵作水平方向的4×4离散余弦行变换,步骤3列正变换模块将行正变换模块所得中间结果进行竖直方向的4×4离散余弦列正变换,步骤4输出模块将变换所得系数矩阵输出至量化模块,进行参数调整、量化及后续编码过程;反变换步骤步骤1信号输入模块接收反量化模块产生的系数矩阵,步骤2行反变换模块对输入的反量化系数矩阵作水平方向的4×4离散余弦行反变换,步骤3列反变换模块将行反变换模块所得中间结果进行竖直方向的4×4离散余弦列反变换,步骤4系数调整模块对反变换后的系数按照AVS标准进行调整,步骤5输出模块将变换所得系数矩阵输出至运动补偿模块,进行运动补偿及后续解码过程。
正变换步骤2还包括步骤20将该步骤2中所用核心矩阵的转置矩阵,分解为四个矩阵第一转置矩阵、第二转置矩阵、第三转置矩阵和第四转置矩阵,步骤21将残差系数矩阵依次按行取出左乘第一矩阵,步骤22将上一步骤所得系数向量,分为两部分并行处理将前两个元素作为第一子向量,依次与第二转置矩阵的子矩阵1和第三转置矩阵的子矩阵1左乘,将后两个元素作为第二子向量,依次与第二转置矩阵的子矩阵2和第三转置矩阵的子矩阵2左乘,步骤23将计算结果经输出排序模块,按照第四转置矩阵排序输出至暂存区,步骤24重复以上步骤21到23直至全部矩阵计算完成;其正变换步骤3还包括步骤30该步骤3中所用核心变换矩阵,同样分解为四个矩阵第一矩阵、第二矩阵、第三矩阵和第四矩阵,其中前三个矩阵对应于并行运算子模块,最后一个矩阵对应于输出排序子模块,步骤31行变换所得系数矩阵依次按列取出右乘第一矩阵,步骤32将上一步骤所得系数向量,分为两部分并行处理将前两个元素作为第一子向量,依次与第二矩阵的子矩阵1和第三矩阵的子矩阵1右乘,将后两个元素作为第二子向量,依次与第二矩阵的子矩阵2和第三矩阵的子矩阵2右乘,步骤33将计算结果经输出排序模块,按照第四矩阵排序输出至暂存区,步骤34重复以上步骤31到33直至全部矩阵计算完成;其反变换步骤2还包括步骤20该步骤2中所用核心变换矩阵,同样分解为四个矩阵第一矩阵、第二矩阵、第三矩阵和第四矩阵,其中前三个矩阵对应于并行运算子模块,最后一个矩阵对应于输出排序子模块,步骤21输入的反量化系数矩阵依次按列取出左乘第一矩阵,步骤22将上一步骤所得系数向量,分为两部分并行处理将前两个元素作为第一子向量,依次与第二矩阵的子矩阵1和第三矩阵的子矩阵1左乘,将后两个元素作为第二子向量,依次与第二矩阵的子矩阵2和第三矩阵的子矩阵2左乘,步骤23将计算结果经输出排序模块,按照第四矩阵排序输出至暂存区,步骤24重复以上步骤21到23直至全部矩阵计算完成;其反变换步骤3还包括
步骤30该步骤3中所用核心变换矩阵的转置,分解为四个矩阵第一转置矩阵,第二转置矩阵,第三转置矩阵,第四转置矩阵,其中前三个矩阵对应于并行运算子模块,最后一个矩阵对应于输出排序子模块,步骤31将行反变换系数矩阵依次按行取出右乘第一矩阵,步骤32将上一步骤所得系数向量,分为两部分并行处理,将前两个元素作为第一子向量,依次与第二转置矩阵的子矩阵1和第三转置矩阵的子矩阵1右乘,将后两个元素作为第二子向量,依次与第二转置矩阵的子矩阵2和第三转置矩阵的子矩阵2右乘,步骤33将计算结果经输出排序模块,按照第四转置矩阵排序输出至暂存区,步骤34重复以上步骤21到23直至全部矩阵计算完成。
也就是说,基于AVS 4×4离散余弦变换的快速并行正变换包括以下步骤第一步行正变换模块将输入模块输入的残差系数矩阵作水平方向的4×4离散余弦行正变换。
1.首先按行取帧内预测和帧间预测得出的图像参数为X=[x00,x01,x02,x03];2.用X左乘第一矩阵AT,得中间结果T=[t0,t1,t2,t3],t0=x00+x03,t1=x01+x02,t2=x01-x02,t3=x00-x03;3.并行计算[t0,t1]乘以第二转置矩阵子矩阵1 M21T,得中间结果[g0,g1],g0=t0+t1,g1=t0-t1[t2,t3]乘以第二转置矩阵子矩阵2 M22T,得中间结果[g2,g3],g2=t2-t3,g3=t2+t34.并行计算[g0,g1]乘以第三转置矩阵子矩阵1 M11T,得中间结果[v0,v1],v0=2g0,v1=2g1[g2,g3]乘以第三转置矩阵子矩阵M12T,得中间结果 ,v2=2g2-g3,v3=g2+2g3,其中2g2和2g3用左移1位来实现5.输出排序模块进行输出排序得y0=v0,y1=v2,y2=v1,y3=v36.输出模块将结果输出得行正变换矩阵行向量Y=[y00,y01,y02,y03]=[y0,y1,y2,y3]7.重复1到6步直到将所有残差矩阵内向量计算完毕。
第二步,列正变换模块将行正变换所得中间结果矩阵进行竖直方向的4×4离散余弦列正变换。
8.首先按列取帧内预测和帧间预测得出的图像参数为X=[x00,x10,x20,x30]T;9.用X右乘第一矩阵A,得中间结果T=[t0,t1,t2,t3]T,t0=x00+X30,t1=x10+x20,t2=x10-x20,t3=x00-x3010.并行计算[t0,t1]T乘以第二矩阵子矩阵1 M11,得中间结果[g0,g1]T,g0=t0+t1,g1=t0-t1[t2,t3]T乘以第二矩阵子矩阵2 M12,得中间结果[g2,g3]T,g2=t3+t2,g3=t3-t211.并行计算[g0,g1]T乘以第三矩阵子矩阵1 M21,得中间结果[v0,v1]T,v0=2g0,v1=2g1[g2,g3]T乘以第三矩阵子矩阵M22,得中间结果[v2,v3]T,v2=2g2+g3,v3=-g2+2g3;其中2g2和2g3用左移1位来实现12.输出排序模块进行输出排序得y0=v0,y1=v2,y2=v1,y3=v3.
13.输出模块将结果输出得DCT反变换矩阵行向量
Y=[y00,y10,y20,y30]T=[y0,y1,y2,y3]T14.重复1到6步直到将所有矩阵内向量计算完毕得DCT变换矩阵[Y]。
15.输出模块将DCT变换矩阵[Y]输出到量化模块进行系数调整和量化,并进行后续编码过程。
基于AVS 4×4离散余弦变换的快速并行反变换包括以下步骤第一步,行反变换模块将反量化所得矩阵进行水平方向的4×4离散余弦列反变换。
1.先按行取反量化所得矩阵得出的参数为Y=[y00,y01,y02,y03];2.用X左乘第一矩阵A,得中间结果T=[t0,t1,t2,t3],t0=y00+y03,t1=y01+y02,t2=y01-y02,t3=y00-y033.并行计算[t0,t1]乘以第二矩阵子矩阵1 M11,得中间结果[g0,g1],g0=t0+t1,g1=t0-t1[t2,t3]乘以第二矩阵子矩阵2 M12,得中间结果[g2,g3],g2=t3+t2,g3=t3-t24.并行计算[g0,g1]乘以第三矩阵子矩阵1 M21,得中间结果[v0,v1],v0=2g0,v1=2g1[g2,g3]乘以第三矩阵子矩阵2 M22,得中间结果[v2,v3],v2=2g2+g3,v3=2g3-g2,其中2g2和2g3用左移1位来实现5.输出排序模块进行输出排序得y0=v0,y1=v2,y2=v1,y3=v3.
6.输出模块将结果输出得行正变换矩阵行向量X=[x00,x01,x02,x03]=[y0,y1,y2,y3]7.重复1到6步直到将所有矩阵内向量计算完毕。
第二步列反变换模块将行反变换模块所得结果进行竖直方向得4×4反变换8.先按列取行反变换所得矩阵得出的参数为Y=[y00,y10,y20,y30]T9.用X右乘第一转置矩阵AT,得中间结果T=[t0,t1,t2,t3]T,t0=y00+y30,t1=y10+y20,t2=y10-y20,t3=y00-y30;10.并行计算[t0,t1]T乘以第二转置矩阵子矩阵1 M21T,得中间结果[g0,g1]T,g0=t0+t1,g1=t0-t1[t2,t3]T乘以第二转置矩阵子矩阵2 M22T,得中间结果[g2,g3]T,g2=t2-t3,g3=t2+t311.并行计算[g0,g1]T乘以第三转置矩阵子矩阵1 M11T,得中间结果[v0,v1]T,v0=2g0,v1=2g1[g2,g3]T乘以第三转置矩阵子矩阵M12T,得中间结果[v2,v3]T,v2=2g2-g3,v3=g2+2g3;2g2和2g3用左移1位来实现12.输出排序模块进行输出排序得y0=v0,y1=v2,y2=v1,y3=v3.
13.输出模块将结果输出得DCT变换矩阵行向量x=[x00,x10,x20,x30]T=[y0,y1,y2,y3]T14.重复1到6步直到将所有矩阵内向量计算完毕得DCT反变换矩阵[X]。
15.系数调整模块将DCT反变换矩阵[X]进行如下调整,xij=[xij+24]>>5,i,j=0~416.输出模块将DCT反变换矩阵[X]输出进行运动补偿以及后续解码过程。
实施例1和实施例2能够减少运算量并使DCT变换真正实现无乘法运算,提高编码效率,降低其实现装置的复杂程度;还可使DCT可进行并行运算,进一步提高编码效率。它可广泛应用于基于AVS的数字音视频编解码中。
权利要求
1.一种基于AVS的4×4离散余弦变换的快速并行装置,其特征在于它包括以下正变换装置和反变换装置正变换转置用于对帧内预测或帧间预测产生的残差系数矩阵进行4×4离散余弦变换,包括信号输入模块接收帧内预测和帧间预测产生的残差系数矩阵,其输入端连接帧内预测或帧间预测残差系数矩阵输出端,行正变换模块对输入的残差系数矩阵作水平方向的4×4离散余弦行正变换,得到中间结果,列正变换模块将行变换模块所得中间结果进行竖直方向的4×4离散余弦列正变换,输出模块将变换系数矩阵输出至量化模块进行量化和后续编码过程;反变换装置用于对反变换所得图像参数矩阵进行4×4离散余弦反变换,包括信号输入模块接收反量化模块产生的系数矩阵,行反变换模块对输入的反量化系数矩阵作水平方向的4×4离散余弦行反变换,得到中间结果,列反变换模块将行反变换模块所得中间结果进行竖直方向的4×4离散余弦列反变换,系数调整模块对反变换后的系数按照AVS标准进行调整,输出模块将变换系数矩阵输出至运动补偿模块进行后续解码过程,反变换模块对反变换所得图像参数矩阵进行4×4离散余弦反变换,其输入端输入反量化所得图像参数矩阵,输出端输出反变换系数矩阵。
2.按照权利要求1所述的基于AVS的4×4离散余弦变换的快速并行装置,其特征在于它包含两个公共运算模块矩阵变换模块,采用核心矩阵进行离散余弦变换的运算,列正变换模块和行反变换模块采用此模块;转置矩阵变换模块,采用核心矩阵的转置矩阵进行离散余弦变换的运算,行正变换模块和列反变换采用此模块。
3.按照权利要求2所述的基于AVS的4×4离散余弦变换的快速并行装置,其特征在于所述公共运算模块都包含并行运算子模块和输出排序子模块并行运算模块用来进行离散余弦变换的矩阵运算,输出排序模块将输出结果进行排序;其中矩阵变换模块的并行运算模块包括第一矩阵模块、第二矩阵子矩阵1模块、第二矩阵子矩阵2模块、第三矩阵子矩阵1模块和第三矩阵子矩阵2模块,其中第二矩阵子矩阵1模块和第三矩阵子矩阵1模块可以与第二矩阵子矩阵2模块和第三矩阵子矩阵2模块并行运算;转置矩阵变换模块的并行运算模块用来进行离散余弦变换的矩阵运算,包括第一转置矩阵模块、第二转置矩阵子矩阵1模块、第二转置矩阵子矩阵2模块、第三转置矩阵子矩阵1模块和第三转置矩阵子矩阵2模块,其中第二转置矩阵子矩阵1模块和第三转置矩阵子矩阵1模块可以与第二转置矩阵子矩阵2模块和第三转置矩阵子矩阵2模块并行运算。
4.按照权利要求3所述的基于AVS的4×4离散余弦变换的快速并行装置,其特征在于所述核心矩阵为T4=100000100100000120000200002100-1211001-100001100-111001011001-10100-1]]>其转置矩阵为T4T=1001011001-10100-111001-100001-1001120000200002-100121000001001000001]]>
5.按照权利要求4所述的基于AVS的4×4离散余弦变换的快速并行装置,其特征在于所述核心矩阵的分解矩阵为第一矩阵和转置矩阵AT=A=1001011001-10100-1,]]>第二矩阵M1=20000200002100-12,]]>第二矩阵子矩阵1M11=2002,]]>第二矩阵子矩阵2M12=21-12]]>第二转置矩阵M1T=20000200002-10012,]]>第二转置矩阵子矩阵1M11T=2022,]]>第二转置矩阵子矩阵2M12T=2-112]]>第三矩阵M2=11001-100001100-10,]]>第三矩阵子矩阵1M21=111-1,]]>第三矩阵子矩阵2M22=11-11]]>第三转置矩阵M2T=11001-100001-10011,]]>第三转置矩阵子矩阵1MT21=111-1,]]>第三转置矩阵子矩阵2M22T=1-111]]>第四矩阵和转置矩阵PT=P=1000001001000001]]>
6.按照权利要求5所述的基于AVS的4×4离散余弦变换的快速并行装置,其特征在于矩阵变换模块的并行运算模块包含的第一矩阵模块采用矩阵A=1001011001-10100-1,]]>第二矩阵子矩阵1模块采用矩阵M11=2002,]]>第二矩阵子矩阵2模块采用矩阵M12=21-12]]>第三矩阵子矩阵1模块采用矩阵M21=111-1,]]>第三矩阵子矩阵2模块采用矩阵M22=11-11]]>矩阵变换模块的输出排序模块采用矩阵P=1000001001000001]]>转置矩阵变换模块的并行运算模块包含的第一转置矩阵模块块采用矩阵AT=1001011001-10100-1,]]>第二转置矩阵子矩阵1模块采用矩阵M11T=2002,]]>第二转置矩阵子矩阵2模块采用矩阵M12T=2-112]]>第三转置矩阵子矩阵1模块采用矩阵MT21=111-1,]]>第三转置矩阵子矩阵2模块采用矩阵M22T=1-111]]>转置矩阵变换模块输出排序模块采用矩阵PT=1000001001000001]]>
7.一种按照权利要求5所述的基于AVS的4×4离散余弦变换的快速并行装置的方法,其特征在于它包括如下正变换和反变换实现步骤正变换步骤步骤1信号输入模块接收帧内预测和帧间预测产生的残差系数矩阵,步骤2行正变换模块对输入的残差系数矩阵作水平方向的4×4离散余弦行变换,步骤3列正变换模块将行正变换模块所得中间结果进行竖直方向的4×4离散余弦列正变换,步骤4输出模块将变换所得系数矩阵输出至量化模块,进行参数调整、量化及后续编码过程;反变换步骤步骤1信号输入模块接收反量化模块产生的系数矩阵,步骤2行反变换模块对输入的反量化系数矩阵作水平方向的4×4离散余弦行反变换,步骤3列反变换模块将行反变换模块所得中间结果进行竖直方向的4×4离散余弦列反变换,步骤4系数调整模块对反变换后的系数按照AVS标准进行调整,步骤5输出模块将变换所得系数矩阵输出至运动补偿模块,进行运动补偿及后续解码过程。
8.按照权利要求7所述的基于AVS的4×4离散余弦变换的快速并行方法,其特征在于其正变换步骤2还包括步骤20将该步骤2中所用核心矩阵的转置矩阵,分解为四个矩阵第一转置矩阵、第二转置矩阵、第三转置矩阵和第四转置矩阵,步骤21将残差系数矩阵依次按行取出左乘第一矩阵,步骤22将上一步骤所得系数向量,分为两部分并行处理将前两个元素作为第一子向量,依次与第二转置矩阵的子矩阵1和第三转置矩阵的子矩阵1左乘,将后两个元素作为第二子向量,依次与第二转置矩阵的子矩阵2和第三转置矩阵的子矩阵2左乘,步骤23将计算结果经输出排序模块,按照第四转置矩阵排序输出至暂存区,步骤24重复以上步骤21到23直至全部矩阵计算完成;其正变换步骤3还包括步骤30该步骤3中所用核心变换矩阵,同样分解为四个矩阵第一矩阵、第二矩阵、第三矩阵和第四矩阵,其中前三个矩阵对应于并行运算子模块,最后一个矩阵对应于输出排序子模块,步骤31行变换所得系数矩阵依次按列取出右乘第一矩阵,步骤32将上一步骤所得系数向量,分为两部分并行处理将前两个元素作为第一子向量,依次与第二矩阵的子矩阵1和第三矩阵的子矩阵1右乘,将后两个元素作为第二子向量,依次与第二矩阵的子矩阵2和第三矩阵的子矩阵2右乘,步骤33将计算结果经输出排序模块,按照第四矩阵排序输出至暂存区,步骤34重复以上步骤31到33直至全部矩阵计算完成;其反变换步骤2还包括步骤20该步骤2中所用核心变换矩阵,同样分解为四个矩阵第一矩阵、第二矩阵、第三矩阵和第四矩阵,其中前三个矩阵对应于并行运算子模块,最后一个矩阵对应于输出排序子模块,步骤21输入的反量化系数矩阵依次按列取出左乘第一矩阵,步骤22将上一步骤所得系数向量,分为两部分并行处理将前两个元素作为第一子向量,依次与第二矩阵的子矩阵1和第三矩阵的子矩阵1左乘,将后两个元素作为第二子向量,依次与第二矩阵的子矩阵2和第三矩阵的子矩阵2左乘,步骤23将计算结果经输出排序模块,按照第四矩阵排序输出至暂存区,步骤24重复以上步骤21到23直至全部矩阵计算完成;其反变换步骤3还包括步骤30该步骤3中所用核心变换矩阵的转置,分解为四个矩阵第一转置矩阵,第二转置矩阵,第三转置矩阵,第四转置矩阵,其中前三个矩阵对应于并行运算子模块,最后一个矩阵对应于输出排序子模块,步骤31将行反变换系数矩阵依次按行取出右乘第一矩阵,步骤32将上一步骤所得系数向量,分为两部分并行处理,将前两个元素作为第一子向量,依次与第二转置矩阵的子矩阵1和第三转置矩阵的子矩阵1右乘,将后两个元素作为第二子向量,依次与第二转置矩阵的子矩阵2和第三转置矩阵的子矩阵2右乘,步骤33将计算结果经输出排序模块,按照第四转置矩阵排序输出至暂存区,步骤34重复以上步骤21到23直至全部矩阵计算完成。
全文摘要
一种基于AVS的4×4离散余弦变换的快速并行装置及其方法,属于数字音视频编解码技术。装置包括正和反变换,正变换转置包括信号输入、行正变换、列正变换和输出等模块;反变换装置包括信号输入、行反变换、列反变换、系数调整、输出等模块。方法包括正和反变换步骤。正变换步骤包括四个,其输出模块将系数矩阵输出至量化模块进行参数调整、量化及后续编码。反变换步骤包括五个,其输出模块将系数矩阵输出至运动补偿模块进行运动补偿及后续解码。它能减少运算量,使DCT实现无乘法运算,降低装置的复杂程度,并可使DCT进行并行运算,提高编码效率。可广泛应用于基于AVS的数字音视频编解码中。
文档编号H04N7/26GK1770864SQ200510044689
公开日2006年5月10日 申请日期2005年9月9日 优先权日2005年9月9日
发明者田树民, 裴雷 申请人:海信集团有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1