CN105100811A - 一种视频变换的实现方法及装置 - Google Patents
一种视频变换的实现方法及装置 Download PDFInfo
- Publication number
- CN105100811A CN105100811A CN201510228029.XA CN201510228029A CN105100811A CN 105100811 A CN105100811 A CN 105100811A CN 201510228029 A CN201510228029 A CN 201510228029A CN 105100811 A CN105100811 A CN 105100811A
- Authority
- CN
- China
- Prior art keywords
- matrix
- dimension
- transform
- fundamental
- output
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Complex Calculations (AREA)
Abstract
本发明实施例公开了一种视频变换的实现方法及装置,解决了现有技术中的视频变换硬件实现方法缺乏通用性的缺陷。本发明的视频变换的实现方法包括:将H×L的二维DCT变换分解为串联的L×H的一维DCT变换L×L*L×H和H×L的一维DCT变换H×H*H×L;设置基本蝶形运算单元和基本矩阵乘法运算单元;根据所述基本蝶形运算单元和基本矩阵乘法运算单元,对所述L×H的一维DCT变换的输入矩阵进行分解和合并操作,得到所述L×H的一维DCT变换的输出矩阵;根据所述基本蝶形运算单元和基本矩阵乘法运算单元,对所述H×L的一维DCT变换的输入矩阵进行分解和合并操作,得到所述H×L的一维DCT变换的输出矩阵。
Description
技术领域
本发明涉及数字视频信号编解码技术领域,尤其涉及一种视频变换的实现方法及装置。
背景技术
随着视频编码技术的快速发展,越来越多的视频编码标准进入了应用领域,如MPEG系列标准、H.264标准、VC-1标准以及HEVC标准,其中HEVC标准是由国际电信组织(ITU)和运动图像专家组(MPEG)联合制定的最新国际视频编码标准。以往的视频编码标准支持8X8以下大小的变换单元,为了提高压缩效率,更适合超高分辨率视频的编码,HEVC标准引入了16X16和32X32大小的变换单元,而随着变换单元的增大,变换运算的复杂度会以指数倍增加,这大大增加了硬件实现的复杂度。
HEVC标准发布以来,与其相关的视频变换硬件实现方法的技术方案有限,例如有:1)复旦大学提出的专利申请“一种HEVC标准中8X8IDCT变换的实现方法”(专利申请号201310241147.5),该发明通过将8×8的变换矩阵分解成稀疏矩阵相乘以及相加的形式,减小8×8IDCT变换中矩阵相乘的计算复杂度,从而降低系统的硬件开销。2)西安电子科技大学提出的专利申请“适于高性能视频标准HEVC的变换编码器”(专利申请号201310283390.3),该发明通过将复杂的乘法操作分解至多级电路并使用移位器、加法器和减法器实现,即使用多级移位器、加法器和减法器替代矩阵乘法器,以简化电路结构。
可见,现有的视频变换的硬件实现方法是通过硬件的专用性来减小硬件电路面积,但是,一方面,该实现方法只适用于HEVC标准,不能兼容以往的视频编码标准;另一方面,该实现方法只适用于特定尺寸的变换单元,不能适用于多种尺寸的变换单元;再一方面,该实现方法只适用于DCT变换(DiscreteCosineTransform,离散余弦变换)或IDCT变换(InverseDiscreteCosineTransformation,逆离散余弦变换),不能同时适用于DCT变换和IDCT变换。总之,现有的视频变换的实现方法通用性不高。
发明内容
本发明提供一种视频变换的实现方法及装置,其通用性较强。
一方面,本发明提供视频变换的实现方法,所述方法包括:
将H×L的二维DCT变换分解为串联的L×H的一维DCT变换L×L*L×H和H×L的一维DCT变换H×H*H×L,所述L×L*L×H表示L×L的系数矩阵与L×H的输入矩阵相乘,所述H×H*H×L表示H×H的系数矩阵与H×L输入矩阵相乘;
设置基本蝶形运算单元和基本矩阵乘法运算单元;
根据所述基本蝶形运算单元和基本矩阵乘法运算单元,对所述L×H的一维DCT变换的输入矩阵进行分解和合并操作,得到所述L×H的一维DCT变换的输出矩阵;
根据所述基本蝶形运算单元和基本矩阵乘法运算单元,对所述H×L的一维DCT变换的输入矩阵进行分解和合并操作,得到所述H×L的一维DCT变换的输出矩阵。
另一方面,本发明提供一种视频变换的实现装置,所述装置包括分解模块、设置模块、第一运算模块和第二运算模块,其中,
所述分解模块,用于将H×L的二维DCT变换分解为串联的L×H的一维DCT变换L×L*L×H和H×L的一维DCT变换H×H*H×L,所述L×L*L×H表示L×L的系数矩阵与L×H的输入矩阵相乘,所述H×H*H×L表示H×H的系数矩阵与H×L输入矩阵相乘;
所述设置模块,用于设置基本蝶形运算单元和基本矩阵乘法运算单元;
所述第一运算模块,用于根据所述基本蝶形运算单元和基本矩阵乘法运算单元,对所述L×H的一维DCT变换的输入矩阵进行分解和合并操作,得到所述L×H的一维DCT变换的输出矩阵;
所述第二运算模块,用于根据所述基本蝶形运算单元和基本矩阵乘法运算单元,对所述H×L的一维DCT变换的输入矩阵进行分解和合并操作,得到所述H×L的一维DCT变换的输出矩阵。
又一方面,本发明提供一种视频变换的实现方法,所述方法包括:
将H×L的二维IDCT变换分解为串联的H×L的一维IDCT变换H×H*H×L和L×H的一维IDCT变换L×L*L×H,所述H×H*H×L表示H×H的系数矩阵与H×L输入矩阵相乘,所述L×L*L×H表示L×L的系数矩阵与L×H的输入矩阵相乘;
设置基本蝶形运算单元和基本矩阵乘法运算单元;
根据所述基本蝶形运算单元和基本矩阵乘法运算单元,对所述H×L的一维IDCT变换的输入矩阵进行分解和合并操作,得到所述H×L的一维IDCT变换的输出矩阵;
根据所述基本蝶形运算单元和基本矩阵乘法运算单元,对所述L×H的一维IDCT变换的输入矩阵进行分解和合并操作,得到所述L×H的一维IDCT变换的输出矩阵。
再一方面,本发明提供一种视频变换的实现装置,所述装置包括所述装置包括分解模块、设置模块、第一运算模块和第二运算模块,其中,
所述分解模块,用于将H×L的二维IDCT变换分解为串联的H×L的一维IDCT变换H×H*H×L和L×H的一维IDCT变换L×L*L×H,所述H×H*H×L表示H×H的系数矩阵与H×L输入矩阵相乘,所述L×L*L×H表示L×L的系数矩阵与L×H的输入矩阵相乘;
所述设置模块,用于设置基本蝶形运算单元和基本矩阵乘法运算单元;
所述第一运算模块,用于根据所述基本蝶形运算单元和基本矩阵乘法运算单元,对所述H×L的一维IDCT变换的输入矩阵进行分解和合并操作,得到所述H×L的一维IDCT变换的输出矩阵;
所述第二运算模块,用于根据所述基本蝶形运算单元和基本矩阵乘法运算单元,对所述L×H的一维IDCT变换的输入矩阵进行分解和合并操作,得到所述L×H的一维IDCT变换的输出矩阵。
本发明提供的视频变换的实现方法及装置,与现有技术相比,其能够支持多种视频编码标准的视频变换、多种尺寸变换单元的视频变换,而且能够同时适用于DCT变换和IDCT变换,综上,本发明的视频变换的实现方法及装置具有较强的通用性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明视频变换的实现方法的一实施例的流程示意图;
图2为本发明视频变换的实现方法的另一实施例的流程示意图;
图3为上述实施例中所述步骤S241~S244的详细流程示意图,其中,所述L的取值为16。
图4为本发明视频变换的实现装置的一实施例的流程示意图;
图5为本发明视频变换的实现装置的另一实施例的流程示意图;
图6为本发明视频变换的实现方法的一实施例的流程示意图;
图7为本发明视频变换的实现方法的另一实施例的流程示意图;
图8为上述实施例中所述步骤S271~S274的详细流程示意图,其中,所述H的取值为16;
图9为本发明视频变换的实现装置的一实施例的流程示意图;
图10为本发明视频变换的实现装置的另一实施例的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供一种视频变换的实现方法,所述方法包括:
S11、将H×L的二维DCT变换分解为串联的L×H的一维DCT变换L×L*L×H和H×L的一维DCT变换H×H*H×L。
其中,所述L×L*L×H表示L×L的系数矩阵与L×H的输入矩阵相乘,所述H×H*H×L表示H×H的系数矩阵与H×L输入矩阵相乘。
S12、设置基本蝶形运算单元和基本矩阵乘法运算单元。
其中,所述基本蝶形运算单元和所述基本矩阵乘法运算单元越大,视频变换的效率越高,可以根据实际需求来设置所述基本蝶形运算单元和所述基本矩阵乘法运算单元的大小。
S13、根据所述基本蝶形运算单元和基本矩阵乘法运算单元,对所述L×H的一维DCT变换的输入矩阵进行分解和合并操作,得到所述L×H的一维DCT变换的输出矩阵;
S14、根据所述基本蝶形运算单元和基本矩阵乘法运算单元,对所述H×L的一维DCT变换的输入矩阵进行分解和合并操作,得到所述H×L的一维DCT变换的输出矩阵。
本发明提供的视频变换的实现方法,与现有技术相比,其能够支持多种视频编码标准的视频变换、多种尺寸变换单元的视频变换,且能够同时适用于DCT变换和IDCT变换,综上,本发明的视频变换的实现方法具有较强的通用性。
如图2所示,本发明实施例提供一种视频变换的实现方法,所述方法包括:
S21、将H×L的二维DCT变换分解为串联的L×H的一维DCT变换L×L*L×H和H×L的一维DCT变换H×H*H×L。
其中,所述L×L*L×H表示L×L的系数矩阵与L×H的输入矩阵相乘,所述H×H*H×L表示H×H的系数矩阵与H×L输入矩阵相乘。
其中,所述H×L的二维DCT变换的具体分解如下:
1)对所述H×L的二维DCT变换的H×L的输入矩阵进行转置,并将转置后的L×H的中间矩阵作为输入矩阵进行L×H的一维DCT变换L×L*L×H,得到所述L×H的一维DCT变换的输出矩阵;
2)对所述L×H的一维DCT变换的输出矩阵进行转置,并将转置后的H×L的中间矩阵作为输入矩阵进行H×L的一维DCT变换H×H*H×L,得到所述H×L的一维DCT变换的输出矩阵,所述H×L的一维DCT变换的输出矩阵即为所述H×L的二维DCT变换的输出矩阵。
S22、设置基本蝶形运算单元为2×4&2×4,基本矩阵乘法运算单元为2×2*2×4。
其中,所述2×4&2×4表示2×4的基本矩阵与2×4的基本矩阵叠加,所述2×2*2×4表示2×2的系数矩阵与2×4的基本矩阵相乘。
S23、将所述L×H的一维DCT变换的L×H的输入矩阵分解成(H/4)个L×4的列输入矩阵,并将各个L×4的列输入矩阵均划分成(L/2)个所述基本矩阵。
S24、以所述基本蝶形运算单元和基本矩阵乘法运算单元为处理单位,对每个L×4的列输入矩阵进行蝶形递归分解和矩阵乘法递归分解与合并,得到对应的(H/4)个L×4的列输出矩阵。
其中,步骤S24的具体实现流程(图中未示意)如下:
S241、以所述基本蝶形运算单元为处理单位,对第1个L×4的列输入矩阵进行蝶形分解,得到(L/2)×4的奇数行矩阵和(L/2)×4的偶数行矩阵;然后将所述(L/2)×4的奇数行矩阵对应的矩阵乘法运算(L/2)×(L/2)*(L/2)×4分解成多个所述基本矩阵乘法运算单元进行运算,并将各个运算结果依次进行横向与纵向合并得到(L/2)×4的块矩阵。
S242、以所述基本蝶形运算单元为处理单位,对所述(L/2)×4的偶数行矩阵进行蝶形分解,得到(L/4)×4奇数行矩阵和(L/4)×4的偶数行矩阵;然后将所述(L/4)×4奇数行矩阵对应的矩阵乘法运算(L/4)×(L/4)*(L/4)×4分解成多个所述基本矩阵乘法运算单元进行运算,并将各个运算结果依次进行横向与纵向合并得到(L/4)×4的块矩阵。
S243、以此类推,以所述基本蝶形运算单元为处理单位,直至将所述(L/2)×4的偶数行矩阵蝶形分解成2×4的奇数行矩阵和2×4的偶数行矩阵;然后依次对所述2×4的奇数行矩阵对应矩阵乘法运算2×2*2×4和所述2×4的偶数行矩阵对应矩阵乘法运算2×2*2×4进行运算,得到两个2×4的块矩阵。
S244、将所述(L/2)×4的块矩阵、(L/4)×4的块矩阵、…、所述两个2×4的块矩阵进行合并,得到第1个L×4的列输出矩阵。
S245、对第2个~第(H/4)个L×4的列输入矩阵重复步骤S241)~S244),得到第2个~第(H/4)个L×4的列输出矩阵。
S25、将所述(H/4)个L×4的列输出矩阵进行合并,得到所述L×H的一维DCT变换的输出矩阵。
S26、将所述H×L的一维DCT变换的H×L的输入矩阵分解成(L/4)个H×4的列输入矩阵,并将各个H×4的列输入矩阵均划分成(H/2)个所述基本矩阵。
S27、以所述基本蝶形运算单元和基本矩阵乘法运算单元为处理单位,对每个H×4的列输入矩阵进行蝶形递归分解和矩阵乘法递归分解与合并,得到对应的(L/4)个H×4的列输出矩阵。
其中,步骤S27的具体实现流程(图中未示意)与所述步骤24的具体实现流程类似,其具体实现流程如下:
S271、以所述基本蝶形运算单元为处理单位,对第1个H×4的列输入矩阵进行蝶形分解,得到(H/2)×4的奇数行矩阵和(H/2)×4的偶数行矩阵;然后将所述(H/2)×4的奇数行矩阵对应的矩阵乘法运算(H/2)×(H/2)*(H/2)×4分解成多个所述基本矩阵乘法运算单元进行运算,并将各个运算结果依次进行横向与纵向合并得到(H/2)×4的块矩阵。
S272、以所述基本蝶形运算单元为处理单位,对所述(H/2)×4的偶数行矩阵进行蝶形分解,得到(H/4)×4奇数行矩阵和(H/4)×4的偶数行矩阵;然后将所述(H/4)×4奇数行矩阵对应的矩阵乘法运算(H/4)×(H/4)*(H/4)×4分解成多个所述基本矩阵乘法运算单元进行运算,并将各个运算结果依次进行横向与纵向合并得到(H/4)×4的块矩阵。
S273、以此类推,以所述基本蝶形运算单元为处理单位,直至将所述(H/2)×4的偶数行矩阵蝶形分解成2×4的奇数行矩阵和2×4的偶数行矩阵;然后依次对所述2×4的奇数行矩阵对应矩阵乘法运算2×2*2×4和所述2×4的偶数行矩阵对应矩阵乘法运算2×2*2×4进行运算,得到两个2×4的块矩阵。
S274、将所述(H/2)×4的块矩阵、(H/4)×4的块矩阵、…、所述两个2×4的块矩阵进行合并,得到第1个H×4的列输出矩阵。
S275、对第2个~第(L/4)个H×4的列输入矩阵重复步骤S271)~S274),得到第2个~第(L/4)个H×4的列输出矩阵。
S28、将所述(L/4)个H×4的列输出矩阵进行合并,得到所述H×L的一维DCT变换的输出矩阵。
其中,所述H×L的一维DCT变换的输出矩阵即为所述H×L的二维DCT变换的输出矩阵。
下面将针对上述实施例中步骤S241~S244的详细阐述,如图3所示,其中所述L的取值为16,结合表1和2可知,表1表示蝶形递归分解,表2表示蝶形递归解和矩阵乘法递归分解和合并,步骤S241~S244的详细流程包括:
表1
表2
1)以2×4&2×4的基本蝶形运算单元为处理单位,对16×4的列输入矩阵AD进行蝶形分解,得到8×4的奇数行矩阵D和8×4的偶数行矩阵AC,其中所述16×4列输入矩阵AD由8个2×4的基本矩阵AD0、AD1、AD2、AD3、AD4、AD5、AD6、AD7构成,即AD={AD0,AD1,AD2,AD3,AD4,AD5,AD6,AD7}。
具体地,可以由以下公式表示上述蝶形分解:
AD3&AD4={AC3,D3};
AD2&AD5={AC2,D2};
AD1&AD6={AC1,D1};
AD0&AD7={AC0,D0};
其中,D={D0,D1,D2,D3},AC={AC0,AC1,AC2,AC3}。
然后,以2×2*2×4的基本矩阵乘法运算单元为处理单位,将所述8×4的奇数行矩阵D对应的矩阵乘法运算8×8*8×4分解成16个所述基本矩阵乘法运算单元进行运算,并将各个运算结果依次进行横向与纵向合并得到8×4的块矩阵,所述8×4的块矩阵={I4,I5,I6,I7}。
其中,可以由以下公式表示上述矩阵乘法分解与合并:
d15*D3+d14*D2+d13*D1+d12*D0=I7;
d11*D3+d10*D2+d9*D1+d8*D0=I6;
d7*D3+d6*D2+d5*D1+d4*D0=I5;
d3*D3+d2*D2+d1*D1+d0*D0=I4。
其中,d0~d15均表示2×2的系数矩阵。
2)以2×4&2×4的基本蝶形运算单元为处理单位,对所述8×4的偶数行矩阵AC进行蝶形分解,得到4×4奇数行矩阵C和4×4的偶数行矩阵AB,具体地,可以由以下公式表示上述蝶形分解:
AC1&AC2={AB1,C1};
AC0&AC3={AB0,C0};
其中,AB={AB0,AB1},C={C0,C1}。
然后,以2×2*2×4的基本矩阵乘法运算单元为处理单位,将所述4×4的奇数行矩阵C对应的矩阵乘法运算4×4*4×4分解成4个所述MPE进行运算,并将各个运算结果依次进行横向与纵向合并得到4×4的块矩阵,所述4×4的块矩阵={I2,I3}。
其中,可以由以下公式表示上述矩阵乘法分解与合并:
c3*C1+c2*C2=I3;
c1*C1+c0*C2=I2。
其中,c0~c3均表示2×2的系数矩阵。
3)以2×4&2×4的基本蝶形运算单元为处理单位,对所述4×4的偶数行矩阵AB进行蝶形分解,得到2×4奇数行矩阵B和2×4的偶数行矩阵A,具体地,可以由以下公式表示上述蝶形分解:
AB0&AB1={A0,B0};
其中,A={A0},B={B0}。
然后,对所述2×4奇数行矩阵B对应的矩阵乘法运算2×2*2×4进行运算得到2×4的块矩阵,所述2×4的块矩阵={I1};对所述2×4的偶数行矩阵对应矩阵乘法运算2×2*2×4进行运算得到个2×4的块矩阵,所述2×4的块矩阵={I0}。
其中,可以由以下公式表示上述矩阵乘法分解与合并:
b0*B0=I1;
a0*A0=I0。
其中,b0和a0均表示2×2的系数矩阵。
4)将8×4的块矩阵{I4,I5,I6,I7}、4×4的块矩阵{I2,I3}以及2×4的块矩阵{I1}和{I0}进行合并,得到16×4的列输出矩阵I={I0,I1,I2,I3,I4,I5,I6,I7}。
本发明提供的视频变换的实现方法,与现有技术相比,其能够支持多种视频编码标准的视频变换、多种尺寸变换单元的视频变换,而且能够同时适用于DCT变换和IDCT变换,综上所述,本发明的视频变换的实现方法具有较强的通用性。
如图4所示,本发明实施例提供一种视频变换的实现装置40,所述装置40包括分解模块41、设置模块42、第一运算模块43和第二运算模块44。
其中,所述分解模块41,用于将H×L的二维DCT变换分解为串联的L×H的一维DCT变换L×L*L×H和H×L的一维DCT变换H×H*H×L,所述L×L*L×H表示L×L的系数矩阵与L×H的输入矩阵相乘,所述H×H*H×L表示H×H的系数矩阵与H×L输入矩阵相乘。
所述设置模块42,用于设置基本蝶形运算单元和基本矩阵乘法运算单元。
所述第一运算模块43,用于根据所述基本蝶形运算单元和基本矩阵乘法运算单元,对所述L×H的一维DCT变换的输入矩阵进行分解和合并操作,得到所述L×H的一维DCT变换的输出矩阵。
所述第二运算模块44,用于根据所述基本蝶形运算单元和基本矩阵乘法运算单元,对所述H×L的一维DCT变换的输入矩阵进行分解和合并操作,得到所述H×L的一维DCT变换的输出矩阵。
本发明提供的视频变换的实现装置,与现有技术相比,其能够支持多种视频编码标准的视频变换、多种尺寸变换单元的视频变换,而且能够同时适用于DCT变换和IDCT变换,综上所述,本发明的视频变换的实现方法具有较强的通用性。
如图5所示,本发明实施例提供一种视频变换的实现装置50,所述装置50包括分解模块51、设置模块52、第一运算模块53和第二运算模块54,所述第一运算模块53包括第一矩阵分解单元531、第一矩阵运算单元532和第一矩阵合并单元533,所述第二运算模块54包括第二矩阵分解单元541、第二矩阵运算单元542和第二矩阵合并单元543。
其中,所述分解模块51,用于将H×L的二维DCT变换分解为串联的L×H的一维DCT变换L×L*L×H和H×L的一维DCT变换H×H*H×L,所述L×L*L×H表示L×L的系数矩阵与L×H的输入矩阵相乘,所述H×H*H×L表示H×H的系数矩阵与H×L输入矩阵相乘。
具体地,所述分解模块51,用于对所述H×L的二维DCT变换的H×L的输入矩阵进行转置,并将转置后的L×H的中间矩阵作为输入矩阵进行L×H的一维DCT变换L×L*L×H,得到所述L×H的一维DCT变换的输出矩阵;
以及用于对所述L×H的一维DCT变换的输出矩阵进行转置,并将转置后的H×L的中间矩阵作为输入矩阵进行H×L的一维DCT变换H×H*H×L,得到所述H×L的一维DCT变换的输出矩阵,所述H×L的一维DCT变换的输出矩阵即为所述H×L的二维DCT变换的输出矩阵。
所述设置模块52,用于设置基本蝶形运算单元为2×4&2×4,基本矩阵乘法运算单元为2×2*2×4,所述2×4&2×4表示2×4的基本矩阵与2×4的基本矩阵叠加,所述2×2*2×4表示2×2的系数矩阵与2×4的基本矩阵相乘。
所述第一矩阵分解单元531,用于将所述L×H的一维DCT变换的L×H的输入矩阵分解成(H/4)个L×4的列输入矩阵,并将各个L×4的列输入矩阵均划分成(L/2)个所述基本矩阵。
所述第一矩阵运算单元532,用于以所述基本蝶形运算单元和基本矩阵乘法运算单元为处理单位,对每个L×4的列输入矩阵进行蝶形递归分解和矩阵乘法递归分解与合并,得到对应的(H/4)个L×4的列输出矩阵。
所述第一矩阵合并单元533,用于将所述(H/4)个L×4的列输出矩阵进行合并,得到所述L×H的一维DCT变换的输出矩阵。
所述第二矩阵分解单元541,用于将所述H×L的一维DCT变换的H×L的输入矩阵分解成(L/4)个H×4的列输入矩阵,并将各个H×4的列输入矩阵均划分成(H/2)个所述基本矩阵。
所述第二矩阵运算单元542,用于以所述基本蝶形运算单元和基本矩阵乘法运算单元为处理单位,对每个H×4的列输入矩阵进行蝶形递归分解和矩阵乘法递归分解与合并,得到对应的(L/4)个H×4的列输出矩阵。
所述第二矩阵合并单元543,用于将所述(L/4)个H×4的列输出矩阵进行合并,得到所述H×L的一维DCT变换的输出矩阵。
本发明提供的视频变换的实现装置,与现有技术相比,其能够支持多种视频编码标准的视频变换、多种尺寸变换单元的视频变换,而且能够同时适用于DCT变换和IDCT变换,综上所述,本发明的视频变换的实现装置具有较强的通用性。
如6所示,本发明实施例提供一种视频变换的实现方法,所述方法包括:
S61、将H×L的二维IDCT变换分解为串联的H×L的一维IDCT变换H×H*H×L和L×H的一维IDCT变换L×L*L×H,所述H×H*H×L表示H×H的系数矩阵与H×L输入矩阵相乘,所述L×L*L×H表示L×L的系数矩阵与L×H的输入矩阵相乘。
S62、设置基本蝶形运算单元和基本矩阵乘法运算单元。
S63、根据所述基本蝶形运算单元和基本矩阵乘法运算单元,对所述H×L的一维IDCT变换的输入矩阵进行分解和合并操作,得到所述H×L的一维IDCT变换的输出矩阵。
S64、根据所述基本蝶形运算单元和基本矩阵乘法运算单元,对所述L×H的一维IDCT变换的输入矩阵进行分解和合并操作,得到所述L×H的一维IDCT变换的输出矩阵。
本发明提供的视频变换的实现方法,与现有技术相比,其能够支持多种视频编码标准的视频变换、多种尺寸变换单元的视频变换,而且能够同时适用于DCT变换和IDCT变换,综上所述,本发明的视频变换的实现装置具有较强的通用性。
如图7所示,本发明实施例提供一种视频变换的实现方法,所述方法包括:
S71、将H×L的二维IDCT变换分解为串联的H×L的一维IDCT变换H×H*H×L和L×H的一维IDCT变换L×L*L×H。
其中,所述H×H*H×L表示H×H的系数矩阵与H×L输入矩阵相乘,所述L×L*L×H表示L×L的系数矩阵与L×H的输入矩阵相乘。
其中,所述H×L的二维IDCT变换的具体分解如下:
S711、对所述H×L的二维IDCT变换的H×L的输入矩阵进行H×L的一维IDCT变换H×H*H×L,得到所述H×L的一维IDCT变换的输出矩阵,然后对所述H×L的一维IDCT变换的输出矩阵进行转置,得到L×H的中间矩阵;
S712、对所述L×H的中间矩阵进行L×H的一维IDCT变换L×L*L×H,得到所述L×H的一维IDCT变换的输出矩阵,然后对所述L×H的一维IDCT变换的输出矩阵进行转置,得到所述H×L的二维IDCT变换的输出矩阵。
S72、设置基本蝶形运算单元为2×4&2×4,基本矩阵乘法运算单元为2×2*2×4。
其中,所述2×4&2×4表示2×4的基本矩阵与2×4的基本矩阵叠加,所述2×2*2×4表示2×2的系数矩阵与2×4的基本矩阵相乘。
S73、将所述H×L的一维IDCT变换的输入矩阵分解为(L/4)个H×4的列输入矩阵,并将各个H×4的列输入矩阵均划分成(H/2)个所述基本矩阵。
S74、以所述基本蝶形运算单元和基本矩阵乘法运算单元为处理单位,对每个H×4的列输入矩阵进行矩阵乘法递归分解与合并和蝶形递归合并,得到对应的(L/4)个H×4的列输出矩阵。
其中,步骤S74的具体实现流程(图中未示意)如下:
S741、将第1个H×4的列输入矩阵对应的矩阵乘法运算H×H*H×4分解成奇数行矩阵乘法运算(H/2)×(H/2)*(H/2)×4和偶数行矩阵乘法运算(H/2)×(H/2)*(H/2)×4;然后将所述奇数行矩阵乘法运算(H/2)×(H/2)*(H/2)×4分解成多个所述基本矩阵乘法运算单元进行运算,并将各个运算结果依次进行横向与纵向合并得到(H/2)×4的块矩阵。
S742、将所述偶数行矩阵乘法运算(H/2)×(H/2)*(H/2)×4分解成奇数行矩阵乘法运算(H/4)×(H/4)*(H/4)×4和偶数行矩阵乘法运算(H/4)×(H/4)*(H/4)×4;然后将所述奇数行矩阵乘法运算(H/4)×(H/4)*(H/4)×4分解成多个所述基本矩阵乘法运算单元进行运算,并将各个运算结果依次进行横向与纵向合并得到(H/4)×4的块矩阵。
S743、以此类推,直至将所述偶数行矩阵乘法运算(H/2)×(H/2)*(H/2)×4分解成奇数行基本矩阵乘法运算单元和偶数行基本矩阵乘法运算单元;然后,依次对所述奇数行基本矩阵乘法运算单元和所述偶数行基本矩阵乘法运算单元进行运算,得到两个2×4的块矩阵。
S744、对所述两个2×4的块矩阵进行蝶形合并,得到4×4的中间矩阵;将前一次蝶形合并得到的所述4×4的中间矩阵与之前得到的4×4的块矩阵进行蝶形合并,得到8×4的中间矩阵;依次类推,将之前得到的所述(H/4)×4的块矩阵与前一次蝶形合并得到的(H/4)×4的中间矩阵进行蝶形合并,得到(H/2)×4的中间矩阵;将之前得到的所述(H/2)×4的块矩阵与前一次蝶形合并得到的所述(H/2)×4的中间矩阵进行蝶形合并,得到对应的第1个H×4的列输出矩阵。
S745、对第2个~第(L/4)个H×4的列输入矩阵重复步骤741)~744),得到第2个~第(L/4)个H×4的列输出矩阵。
S75、将所述(L/4)个H×4的列输出矩阵进行合并,得到所述H×L的一维IDCT变换的输出矩阵。
S76、将所述L×H的一维IDCT变换的输入矩阵分解为(H/4)个L×4的列输入矩阵,并将各个L×4的列输入矩阵均划分成(L/2)个所述基本矩阵。
S77、以所述基本蝶形运算单元和基本矩阵乘法运算单元为处理单位,对每个L×4的列输入矩阵进行矩阵乘法递归分解与合并和蝶形递归合并,得到对应的(H/4)个L×4的列输出矩阵。
其中,步骤S77的具体实现流程与所述步骤74的具体实现流程类似,其具体实现流程如下:
S741、将第1个L×4的列输入矩阵对应的矩阵乘法运算L×L*L×4分解成奇数行矩阵乘法运算(L/2)×(L/2)*(L/2)×4和偶数行矩阵乘法运算(L/2)×(L/2)*(L/2)×4;然后将所述奇数行矩阵乘法运算(L/2)×(L/2)*(L/2)×4分解成多个所述基本矩阵乘法运算单元进行运算,并将各个运算结果依次进行横向与纵向合并得到(L/2)×4的块矩阵。
S742、将所述偶数行矩阵乘法运算(L/2)×(L/2)*(L/2)×4分解成奇数行矩阵乘法运算(L/4)×(L/4)*(L/4)×4和偶数行矩阵乘法运算(L/4)×(L/4)*(L/4)×4;然后将所述奇数行矩阵乘法运算(L/4)×(L/4)*(L/4)×4分解成多个所述基本矩阵乘法运算单元进行运算,并将各个运算结果依次进行横向与纵向合并得到(L/4)×4的块矩阵。
S743、以此类推,直至将所述偶数行矩阵乘法运算(L/2)×(L/2)*(L/2)×4分解成奇数行基本矩阵乘法运算单元和偶数行基本矩阵乘法运算单元;然后,依次对所述奇数行基本矩阵乘法运算单元和所述偶数行基本矩阵乘法运算单元进行运算,得到两个2×4的块矩阵。
S744、对所述两个2×4的块矩阵进行蝶形合并,得到4×4的中间矩阵;将前一次蝶形合并得到的所述4×4的中间矩阵与之前得到的4×4的块矩阵进行蝶形合并,得到8×4的中间矩阵;依次类推,将之前得到的所述(L/4)×4的块矩阵与前一次蝶形合并得到的(L/4)×4的中间矩阵进行蝶形合并,得到(L/2)×4的中间矩阵;将之前得到的所述(L/2)×4的块矩阵与前一次蝶形合并得到的所述(L/2)×4的中间矩阵进行蝶形合并,得到对应的第1个L×4的列输出矩阵。
S745、对第2个~第(H/4)个L×4的列输入矩阵重复步骤741)~744),得到第2个~第(H/4)个L×4的列输出矩阵。
S78、将所述(H/4)个L×4的列输出矩阵进行合并,得到所述L×H的一维IDCT变换的输出矩阵。
下面将针对上述实施例中步骤S741~S744的详细阐述,如图8所示,其中所述H的取值为16,结合表3和4可知,表3表示矩阵乘法递归分解,表4表示矩阵乘法递归分解与合并和蝶形递归合并,步骤S741~S744的详细流程包括:
表3
表4
1)将第1个16×4的列输入矩阵对应的矩阵乘法运算16×16*16×4分解成奇数行矩阵乘法运算8×8*8×4和偶数行矩阵乘法运算8×8*8×4,其中,所述奇数行矩阵乘法运算8×8*8×4表示8×8的系数矩阵d和8×4的块矩阵{I4,I5,I6,I7}相乘;然后将所述奇数行矩阵乘法运算8×8*8×4分解成16个所述基本矩阵乘法运算单元进行运算,并将各个运算结果依次进行横向与纵向合并得到8×4的块矩阵D={D0,D1,D2,D3},所述D0、D1、D2、D3通过以下公式获得:
d0*I4+d1*I5+d2*I6+d3*I7=D0;
d4*I4+d5*I5+d6*I6+d7*I7=D1;
d8*I4+d9*I5+d10*I6+d11*I7=D2;
d12*I4+d13*I5+d14*I6+d15*I7=D3;
其中,d0~d15均表示2×2的系数矩阵。
2)将所述偶数行矩阵乘法运算8×8*8×4分解成奇数行矩阵乘法运算4×4*4×4和偶数行矩阵乘法运算4×4*4×4,其中,所述奇数行矩阵乘法运算4×4*4×4表示4×4系数矩阵c与4×4的块矩阵{I2,I3}相乘;然后将所述奇数行矩阵乘法运算4×4*4×4分解成4所述基本矩阵乘法运算单元进行运算,并将各个运算结果依次进行横向与纵向合并得到4×4的块矩阵C={C0,C1},所述C0、C1通过以下公式获得:
c0*I2+c1*I3=C0;
c2*I2+c3*I3=C1;
其中,c0~c3均表示2×2的系数矩阵。
3)以此类推,将所述偶数行矩阵乘法运算4×4*4×4分解成奇数行矩阵乘法运算2×2*2×4和偶数行矩阵乘法运算2×2*2×4,其中,所述奇数行矩阵乘法运算2×2*2×4表示2×2的系数矩阵b与2×4的块矩阵{I1}相乘,所述偶数行矩阵乘法运算2×2*2×4表示2×2的系数矩阵a与2×4的块矩阵{I0}相乘;然后对所述奇数行矩阵乘法运算2×2*2×4进行运算,得到块矩阵A={A0},对所述偶数行矩阵乘法运算2×2*2×4进行运算,得到块矩阵B={B0},所述A0和B0通过以下公式获得:
a0*I0=A0;
b0*I1=B0;
其中,所述A0的具体计算公式如下:
A00=a00*I00+a01*I10;A01=a00*I01+a01*I11;
A02=a00*I02+a01*I12;A03=a00*I03+a01*I13;
A10=a10*I00+a11*I10;A11=A10*I01+a11*I11;
A12=a10*I02+a11*I12;A13=a10*I03+a11*I13;
与所述A0的计算公式类似,可以获得所述B0。
4)对所述块矩阵A和B进行蝶形合并,得到4×4中间矩阵AB,将前一次蝶形合并得到的所述4×4的中间矩阵AB与之前得到的4×4的块矩阵C进行蝶形合并,得到8×4的中间矩阵AC={AC0,AC1,AC2,AC3};将前一次蝶形合并得到的所述中间矩阵AC与之前得到的8×4的块矩阵D进行蝶形合并,得到对应的第1个16×4的列输出矩阵。
其中,所述4×4中间矩阵AB可以通过以下公式获得:
AB={AB0,AB1};
其中,其具体计算公式如下:
AB00=A00+B00;AB01=A01+B01;AB02=A02+B02;AB03=A03+B03;
AB10=A10+B10;AB11=A11+B11;AB12=A12+B12;AB13=A13+B13;
AB20=A10-B10;AB21=A11-B11;AB22=A12-B12;AB23=A13-B13;
AB30=A00-B00;AB31=A01-B01;AB32=A02-B02;AB33=A03-B03。
如图9所示,本发明实施例提供一种视频变换的实现装置90,所述装置90包括分解模块91、设置模块92、第一运算模块93和第二运算模块94。
其中,所述分解模块91,用于将H×L的二维IDCT变换分解为串联的H×L的一维IDCT变换H×H*H×L和L×H的一维IDCT变换L×L*L×H,所述H×H*H×L表示H×H的系数矩阵与H×L输入矩阵相乘,所述L×L*L×H表示L×L的系数矩阵与L×H的输入矩阵相乘。
所述设置模块92,用于设置基本蝶形运算单元和基本矩阵乘法运算单元。
所述第一运算模块93,用于根据所述基本蝶形运算单元和基本矩阵乘法运算单元,对所述H×L的一维IDCT变换的输入矩阵进行分解和合并操作,得到所述H×L的一维IDCT变换的输出矩阵。
所述第二运算模块94,用于根据所述基本蝶形运算单元和基本矩阵乘法运算单元,对所述L×H的一维IDCT变换的输入矩阵进行分解和合并操作,得到所述L×H的一维IDCT变换的输出矩阵。
本发明提供的视频变换的实现装置,与现有技术相比,其能够支持多种视频编码标准的视频变换、多种尺寸变换单元的视频变换,而且能够同时适用于DCT变换和IDCT变换,综上所述,本发明的视频变换的实现方法具有较强的通用性。
如图10所示,本发明实施例提供一种视频变换的实现装置100,所述装置100包括分解模块101、设置模块102、第一运算模块103和第二运算模块104,所述第一运算模块103包括第一矩阵分解单元1031、第一矩阵运算单元1032和第一矩阵合并单元1033,所述第二运算模块104包括第二矩阵分解单元1041、第二矩阵运算单元1042和第二矩阵合并单元1043。
其中,所述分解模块101,用于将H×L的二维IDCT变换分解为串联的H×L的一维IDCT变换H×H*H×L和L×H的一维IDCT变换L×L*L×H,所述H×H*H×L表示H×H的系数矩阵与H×L输入矩阵相乘,所述L×L*L×H表示L×L的系数矩阵与L×H的输入矩阵相乘。
具体地,所述分解模块101,用于对所述H×L的二维IDCT变换的H×L的输入矩阵进行H×L的一维IDCT变换H×H*H×L,得到所述H×L的一维IDCT变换的输出矩阵,然后对所述H×L的一维IDCT变换的输出矩阵进行转置,得到L×H的中间矩阵;以及用于对所述L×H的中间矩阵进行L×H的一维IDCT变换L×L*L×H,得到所述L×H的一维IDCT变换的输出矩阵,然后对所述L×H的一维IDCT变换的输出矩阵进行转置,得到所述H×L的二维IDCT变换的输出矩阵。
所述设置模块102,用于设置基本蝶形运算单元为2×4&2×4,基本矩阵乘法运算单元为2×2*2×4,所述2×4&2×4表示2×4的基本矩阵与2×4的基本矩阵叠加,所述2×2*2×4表示2×2的系数矩阵与2×4的基本矩阵相乘。
所述第一矩阵分解单元1031,用于将所述H×L的一维IDCT变换的输入矩阵分解为(L/4)个H×4的列输入矩阵,并将各个H×4的列输入矩阵均划分成(H/2)个所述基本矩阵;
所述第一矩阵运算单元1032,用于以所述基本蝶形运算单元和基本矩阵乘法运算单元为处理单位,对每个H×4的列输入矩阵进行矩阵乘法递归分解与合并和蝶形递归合并,得到对应的(L/4)个H×4的列输出矩阵;
所述第一矩阵合并单元1033,用于将所述(L/4)个H×4的列输出矩阵进行合并,得到所述H×L的一维IDCT变换的输出矩阵。
所述第二矩阵分解单元1041,用于将所述L×H的一维IDCT变换的输入矩阵分解为(H/4)个L×4的列输入矩阵,并将各个L×4的列输入矩阵均划分成(L/2)个所述基本矩阵;
所述第二矩阵运算单元1042,用于以所述基本蝶形运算单元和基本矩阵乘法运算单元为处理单位,对每个L×4的列输入矩阵进行矩阵乘法递归分解与合并和蝶形递归合并,得到对应的(H/4)个L×4的列输出矩阵;
所述第二矩阵合并单元1043,用于将所述(H/4)个L×4的列输出矩阵进行合并,得到所述L×H的一维IDCT变换的输出矩阵。
本发明提供的视频变换的实现装置,与现有技术相比,其能够支持多种视频编码标准的视频变换、多种尺寸变换单元的视频变换,而且能够同时适用于DCT变换和IDCT变换,综上所述,本发明的视频变换的实现装置具有较强的通用性。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (20)
1.一种视频变换的实现方法,其特征在于,包括:将H×L的二维DCT变换分解为串联的L×H的一维DCT变换L×L*L×H和H×L的一维DCT变换H×H*H×L,所述L×L*L×H表示L×L的系数矩阵与L×H的输入矩阵相乘,所述H×H*H×L表示H×H的系数矩阵与H×L输入矩阵相乘;
设置基本蝶形运算单元和基本矩阵乘法运算单元;
根据所述基本蝶形运算单元和基本矩阵乘法运算单元,对所述L×H的一维DCT变换的输入矩阵进行分解和合并操作,得到所述L×H的一维DCT变换的输出矩阵;
根据所述基本蝶形运算单元和基本矩阵乘法运算单元,对所述H×L的一维DCT变换的输入矩阵进行分解和合并操作,得到所述H×L的一维DCT变换的输出矩阵。
2.根据权利要求1所述的方法,其特征在于,所述设置基本蝶形运算单元和基本矩阵乘法运算单元包括:设置基本蝶形运算单元为2×4&2×4,基本矩阵乘法运算单元为2×2*2×4,所述2×4&2×4表示2×4的基本矩阵与2×4的基本矩阵叠加,所述2×2*2×4表示2×2的系数矩阵与2×4的基本矩阵相乘。
3.根据权利要求2所述的方法,其特征在于,所述根据所述基本蝶形运算单元和基本矩阵乘法运算单元,对所述L×H的一维DCT变换的输入矩阵进行分解和合并操作,得到所述L×H的一维DCT变换的输出矩阵包括:
将所述L×H的一维DCT变换的L×H的输入矩阵分解成(H/4)个L×4的列输入矩阵,并将各个L×4的列输入矩阵均划分成(L/2)个所述基本矩阵;
以所述基本蝶形运算单元和基本矩阵乘法运算单元为处理单位,对每个L×4的列输入矩阵进行蝶形递归分解和矩阵乘法递归分解与合并,得到对应的(H/4)个L×4的列输出矩阵;
将所述(H/4)个L×4的列输出矩阵进行合并,得到所述L×H的一维DCT变换的输出矩阵。
4.根据权利要求3所述的方法,其特征在于,所述根据所述基本蝶形运算单元和基本矩阵乘法运算单元,对所述H×L的一维DCT变换的输入矩阵进行分解和合并操作,得到所述H×L的一维DCT变换的输出矩阵包括:
将所述H×L的一维DCT变换的H×L的输入矩阵分解成(L/4)个H×4的列输入矩阵,并将各个H×4的列输入矩阵均划分成(H/2)个所述基本矩阵;
以所述基本蝶形运算单元和基本矩阵乘法运算单元为处理单位,对每个H×4的列输入矩阵进行蝶形递归分解和矩阵乘法递归分解与合并,得到对应的(L/4)个H×4的列输出矩阵;
将所述(L/4)个H×4的列输出矩阵进行合并,得到所述H×L的一维DCT变换的输出矩阵。
5.根据权利要求1所述的方法,其特征在于,所述将H×L的二维DCT变换分解为串联的L×H的一维DCT变换L×L*L×H和H×L的一维DCT变换H×H*H×L包括:
对所述H×L的二维DCT变换的H×L的输入矩阵进行转置,并将转置后的L×H的中间矩阵作为输入矩阵进行L×H的一维DCT变换L×L*L×H,得到所述L×H的一维DCT变换的输出矩阵;
对所述L×H的一维DCT变换的输出矩阵进行转置,并将转置后的H×L的中间矩阵作为输入矩阵进行H×L的一维DCT变换H×H*H×L,得到所述H×L的一维DCT变换的输出矩阵,所述H×L的一维DCT变换的输出矩阵即为所述H×L的二维DCT变换的输出矩阵。
6.一种视频变换的实现装置,其特征在于,所述装置包括分解模块、设置模块、第一运算模块和第二运算模块,其中,所述分解模块,用于将H×L的二维DCT变换分解为串联的L×H的一维DCT变换L×L*L×H和H×L的一维DCT变换H×H*H×L,所述L×L*L×H表示L×L的系数矩阵与L×H的输入矩阵相乘,所述H×H*H×L表示H×H的系数矩阵与H×L输入矩阵相乘;
所述设置模块,用于设置基本蝶形运算单元和基本矩阵乘法运算单元;
所述第一运算模块,用于根据所述基本蝶形运算单元和基本矩阵乘法运算单元,对所述L×H的一维DCT变换的输入矩阵进行分解和合并操作,得到所述L×H的一维DCT变换的输出矩阵;
所述第二运算模块,用于根据所述基本蝶形运算单元和基本矩阵乘法运算单元,对所述H×L的一维DCT变换的输入矩阵进行分解和合并操作,得到所述H×L的一维DCT变换的输出矩阵。
7.根据权利要求6所述的装置,其特征在于,所述设置模块,用于设置基本蝶形运算单元为2×4&2×4,基本矩阵乘法运算单元为2×2*2×4,所述2×4&2×4表示2×4的基本矩阵与2×4的基本矩阵叠加,所述2×2*2×4表示2×2的系数矩阵与2×4的基本矩阵相乘。
8.根据权利要求7所述的装置,其特征在于,所述第一运算模块包括第一矩阵分解单元、第一矩阵运算单元和第一矩阵合并单元,其中,
所述第一矩阵分解单元,用于将所述L×H的一维DCT变换的L×H的输入矩阵分解成(H/4)个L×4的列输入矩阵,并将各个L×4的列输入矩阵均划分成(L/2)个所述基本矩阵;
所述第一矩阵运算单元,用于以所述基本蝶形运算单元和基本矩阵乘法运算单元为处理单位,对每个L×4的列输入矩阵进行蝶形递归分解和矩阵乘法递归分解与合并,得到对应的(H/4)个L×4的列输出矩阵;
所述第一矩阵合并单元,用于将所述(H/4)个L×4的列输出矩阵进行合并,得到所述L×H的一维DCT变换的输出矩阵。
9.根据权利要求8所述的装置,其特征在于,所述第二运算模块包括第二矩阵分解单元、第二矩阵运算单元和第二矩阵合并单元,其中,
所述第二矩阵分解单元,用于将所述H×L的一维DCT变换的H×L的输入矩阵分解成(L/4)个H×4的列输入矩阵,并将各个H×4的列输入矩阵均划分成(H/2)个所述基本矩阵;
所述第二矩阵运算单元,用于以所述基本蝶形运算单元和基本矩阵乘法运算单元为处理单位,对每个H×4的列输入矩阵进行蝶形递归分解和矩阵乘法递归分解与合并,得到对应的(L/4)个H×4的列输出矩阵;
所述第二矩阵合并单元,用于将所述(L/4)个H×4的列输出矩阵进行合并,得到所述H×L的一维DCT变换的输出矩阵。
10.根据权利要求6所述的装置,其特征在于,所述分解模块,用于对所述H×L的二维DCT变换的H×L的输入矩阵进行转置,并将转置后的L×H的中间矩阵作为输入矩阵进行L×H的一维DCT变换L×L*L×H,得到所述L×H的一维DCT变换的输出矩阵;以及用于对所述L×H的一维DCT变换的输出矩阵进行转置,并将转置后的H×L的中间矩阵作为输入矩阵进行H×L的一维DCT变换H×H*H×L,得到所述H×L的一维DCT变换的输出矩阵,所述H×L的一维DCT变换的输出矩阵即为所述H×L的二维DCT变换的输出矩阵。
11.一种视频变换的实现方法,其特征在于,包括:
将H×L的二维IDCT变换分解为串联的H×L的一维IDCT变换H×H*H×L和L×H的一维IDCT变换L×L*L×H,所述H×H*H×L表示H×H的系数矩阵与H×L输入矩阵相乘,所述L×L*L×H表示L×L的系数矩阵与L×H的输入矩阵相乘;
设置基本蝶形运算单元和基本矩阵乘法运算单元;
根据所述基本蝶形运算单元和基本矩阵乘法运算单元,对所述H×L的一维IDCT变换的输入矩阵进行分解和合并操作,得到所述H×L的一维IDCT变换的输出矩阵;
根据所述基本蝶形运算单元和基本矩阵乘法运算单元,对所述L×H的一维IDCT变换的输入矩阵进行分解和合并操作,得到所述L×H的一维IDCT变换的输出矩阵。
12.根据权利要求11所述的方法,其特征在于,所述设置基本蝶形运算单元和基本矩阵乘法运算单元包括:
设置基本蝶形运算单元为2×4&2×4,基本矩阵乘法运算单元为2×2*2×4,所述2×4&2×4表示2×4的基本矩阵与2×4的基本矩阵叠加,所述2×2*2×4表示2×2的系数矩阵与2×4的基本矩阵相乘。
13.根据权利要求12所述的方法,其特征在于,所述根据所述基本蝶形运算单元和基本矩阵乘法运算单元,对所述H×L的一维IDCT变换的输入矩阵进行分解和合并操作,得到所述H×L的一维IDCT变换的输出矩阵包括:
将所述H×L的一维IDCT变换的输入矩阵分解为(L/4)个H×4的列输入矩阵,并将各个H×4的列输入矩阵均划分成(H/2)个所述基本矩阵;
以所述基本蝶形运算单元和基本矩阵乘法运算单元为处理单位,对每个H×4的列输入矩阵进行矩阵乘法递归分解与合并和蝶形递归合并,得到对应的(L/4)个H×4的列输出矩阵;
将所述(L/4)个H×4的列输出矩阵进行合并,得到所述H×L的一维IDCT变换的输出矩阵。
14.根据权利要求13所述的方法,其特征在于,根据所述基本蝶形运算单元和基本矩阵乘法运算单元,对所述L×H的一维IDCT变换的输入矩阵进行分解和合并操作,得到所述L×H的一维IDCT变换的输出矩阵包括:
将所述L×H的一维IDCT变换的输入矩阵分解为(H/4)个L×4的列输入矩阵,并将各个L×4的列输入矩阵均划分成(L/2)个所述基本矩阵;
以所述基本蝶形运算单元和基本矩阵乘法运算单元为处理单位,对每个L×4的列输入矩阵进行矩阵乘法递归分解与合并和蝶形递归合并,得到对应的(H/4)个L×4的列输出矩阵;
将所述(H/4)个L×4的列输出矩阵进行合并,得到所述L×H的一维IDCT变换的输出矩阵。
15.根据权利要求11所述的方法,其特征在于,所述将H×L的二维IDCT变换分解为串联的H×L的一维IDCT变换H×H*H×L和L×H的一维IDCT变换L×L*L×H包括:
对所述H×L的二维IDCT变换的H×L的输入矩阵进行H×L的一维IDCT变换H×H*H×L,得到所述H×L的一维IDCT变换的输出矩阵,然后对所述H×L的一维IDCT变换的输出矩阵进行转置,得到L×H的中间矩阵;
对所述L×H的中间矩阵进行L×H的一维IDCT变换L×L*L×H,得到所述L×H的一维IDCT变换的输出矩阵,然后对所述L×H的一维IDCT变换的输出矩阵进行转置,得到所述H×L的二维IDCT变换的输出矩阵。
16.一种视频变换的实现装置,其特征在于,所述装置包括分解模块、设置模块、第一运算模块和第二运算模块,其中,
所述分解模块,用于将H×L的二维IDCT变换分解为串联的H×L的一维IDCT变换H×H*H×L和L×H的一维IDCT变换L×L*L×H,所述H×H*H×L表示H×H的系数矩阵与H×L输入矩阵相乘,所述L×L*L×H表示L×L的系数矩阵与L×H的输入矩阵相乘;
所述设置模块,用于设置基本蝶形运算单元和基本矩阵乘法运算单元;
所述第一运算模块,用于根据所述基本蝶形运算单元和基本矩阵乘法运算单元,对所述H×L的一维IDCT变换的输入矩阵进行分解和合并操作,得到所述H×L的一维IDCT变换的输出矩阵;
所述第二运算模块,用于根据所述基本蝶形运算单元和基本矩阵乘法运算单元,对所述L×H的一维IDCT变换的输入矩阵进行分解和合并操作,得到所述L×H的一维IDCT变换的输出矩阵。
17.根据权利要求16所述的装置,其特征在于,所述设置模块,用于设置基本蝶形运算单元为2×4&2×4,基本矩阵乘法运算单元为2×2*2×4,所述2×4&2×4表示2×4的基本矩阵与2×4的基本矩阵叠加,所述2×2*2×4表示2×2的系数矩阵与2×4的基本矩阵相乘。
18.根据权利要求17所述的装置,其特征在于,所述第一运算模块包括第一矩阵分解单元、第一矩阵运算单元和第一矩阵合并单元,其中,
所述第一矩阵分解单元,用于将所述H×L的一维IDCT变换的输入矩阵分解为(L/4)个H×4的列输入矩阵,并将各个H×4的列输入矩阵均划分成(H/2)个所述基本矩阵;
所述第一矩阵运算单元,用于以所述基本蝶形运算单元和基本矩阵乘法运算单元为处理单位,对每个H×4的列输入矩阵进行矩阵乘法递归分解与合并和蝶形递归合并,得到对应的(L/4)个H×4的列输出矩阵;
所述第一矩阵合并单元,用于将所述(L/4)个H×4的列输出矩阵进行合并,得到所述H×L的一维IDCT变换的输出矩阵。
19.根据权利要求18所述的装置,其特征在于,所述第二运算模块包括第二矩阵分解单元、第二矩阵运算单元和第二矩阵合并单元,其中,
所述第二矩阵分解单元,用于将所述L×H的一维IDCT变换的输入矩阵分解为(H/4)个L×4的列输入矩阵,并将各个L×4的列输入矩阵均划分成(L/2)个所述基本矩阵;
所述第二矩阵运算单元,用于以所述基本蝶形运算单元和基本矩阵乘法运算单元为处理单位,对每个L×4的列输入矩阵进行矩阵乘法递归分解与合并和蝶形递归合并,得到对应的(H/4)个L×4的列输出矩阵;
所述第二矩阵合并单元,用于将所述(H/4)个L×4的列输出矩阵进行合并,得到所述L×H的一维IDCT变换的输出矩阵。
20.根据权利要求16所述的装置,其特征在于,所述分解模块,用于对所述H×L的二维IDCT变换的H×L的输入矩阵进行H×L的一维IDCT变换H×H*H×L,得到所述H×L的一维IDCT变换的输出矩阵,然后对所述H×L的一维IDCT变换的输出矩阵进行转置,得到L×H的中间矩阵;以及用于对所述L×H的中间矩阵进行L×H的一维IDCT变换L×L*L×H,得到所述L×H的一维IDCT变换的输出矩阵,然后对所述L×H的一维IDCT变换的输出矩阵进行转置,得到所述H×L的二维IDCT变换的输出矩阵。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510228029.XA CN105100811B (zh) | 2014-05-14 | 2015-05-06 | 一种视频变换的实现方法及装置 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2014102014973 | 2014-05-14 | ||
CN201410201497 | 2014-05-14 | ||
CN201510228029.XA CN105100811B (zh) | 2014-05-14 | 2015-05-06 | 一种视频变换的实现方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105100811A true CN105100811A (zh) | 2015-11-25 |
CN105100811B CN105100811B (zh) | 2018-04-03 |
Family
ID=54580216
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510228029.XA Active CN105100811B (zh) | 2014-05-14 | 2015-05-06 | 一种视频变换的实现方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105100811B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6526430B1 (en) * | 1999-10-04 | 2003-02-25 | Texas Instruments Incorporated | Reconfigurable SIMD coprocessor architecture for sum of absolute differences and symmetric filtering (scalable MAC engine for image processing) |
CN1553707A (zh) * | 2003-06-02 | 2004-12-08 | 杭州高特信息技术有限公司 | 一种dct快速变换结构 |
CN1801940A (zh) * | 2005-12-15 | 2006-07-12 | 清华大学 | 整型变换电路和整型变换方法 |
WO2011005578A2 (en) * | 2009-06-24 | 2011-01-13 | Qualcomm Incorporated | 16-point transform for media data coding |
CN102387367A (zh) * | 2011-11-08 | 2012-03-21 | 复旦大学 | 适用于多种视频标准、多尺寸二维整数余弦变换的通用方法 |
CN102404569A (zh) * | 2011-11-08 | 2012-04-04 | 复旦大学 | 可用于多种视频标准、多尺寸二维整数余弦反变换的通用方法 |
CN103327332A (zh) * | 2013-06-18 | 2013-09-25 | 复旦大学 | 一种hevc标准中8×8idct变换的实现方法 |
CN103369326A (zh) * | 2013-07-05 | 2013-10-23 | 西安电子科技大学 | 适于高性能视频编码标准hevc的变换编码器 |
-
2015
- 2015-05-06 CN CN201510228029.XA patent/CN105100811B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6526430B1 (en) * | 1999-10-04 | 2003-02-25 | Texas Instruments Incorporated | Reconfigurable SIMD coprocessor architecture for sum of absolute differences and symmetric filtering (scalable MAC engine for image processing) |
CN1553707A (zh) * | 2003-06-02 | 2004-12-08 | 杭州高特信息技术有限公司 | 一种dct快速变换结构 |
CN1801940A (zh) * | 2005-12-15 | 2006-07-12 | 清华大学 | 整型变换电路和整型变换方法 |
WO2011005578A2 (en) * | 2009-06-24 | 2011-01-13 | Qualcomm Incorporated | 16-point transform for media data coding |
CN102387367A (zh) * | 2011-11-08 | 2012-03-21 | 复旦大学 | 适用于多种视频标准、多尺寸二维整数余弦变换的通用方法 |
CN102404569A (zh) * | 2011-11-08 | 2012-04-04 | 复旦大学 | 可用于多种视频标准、多尺寸二维整数余弦反变换的通用方法 |
CN103327332A (zh) * | 2013-06-18 | 2013-09-25 | 复旦大学 | 一种hevc标准中8×8idct变换的实现方法 |
CN103369326A (zh) * | 2013-07-05 | 2013-10-23 | 西安电子科技大学 | 适于高性能视频编码标准hevc的变换编码器 |
Also Published As
Publication number | Publication date |
---|---|
CN105100811B (zh) | 2018-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Shams et al. | NEDA: A low-power high-performance DCT architecture | |
Ahmed et al. | N point DCT VLSI architecture for emerging HEVC standard | |
Zhao et al. | High-performance multiplierless transform architecture for HEVC | |
CN1591319A (zh) | 以Booth算法为基础的乘法运算方法与乘法装置 | |
Joshi et al. | Efficient large size transforms for high-performance video coding | |
CN102387367B (zh) | 适用于多种视频标准、多尺寸二维整数余弦变换的通用方法 | |
CN105100811A (zh) | 一种视频变换的实现方法及装置 | |
CN102404569A (zh) | 可用于多种视频标准、多尺寸二维整数余弦反变换的通用方法 | |
Husemann et al. | Hardware integrated quantization solution for improvement of computational H. 264 encoder module | |
CN106210715B (zh) | 一种hevc标准中视频编解码变换方法及装置 | |
CN1428719A (zh) | 自适应反向变换装置 | |
CN1142162A (zh) | 二维逆离散余弦变换电路 | |
Abdelrasoul et al. | Real‐time unified architecture for forward/inverse discrete cosine transform in high efficiency video coding | |
CN110737869B (zh) | Dct/idct乘法器电路优化方法及应用 | |
CN101562744B (zh) | 二维反变换装置 | |
Shen et al. | A unified forward/inverse transform architecture for multi-standard video codec design | |
KR101601864B1 (ko) | 동영상 코덱의 역변환 방법 및 그 장치 | |
CN109451307B (zh) | 一种基于近似系数的一维dct运算方法和dct变换装置 | |
CN104581174A (zh) | 一种适用于hevc标准的高吞吐率dct和idct硬件复用结构 | |
CN104811738A (zh) | 基于资源共享的低开销多标准8×8一维离散余弦变换电路 | |
KR20130137951A (ko) | 초고해상도 영상 코덱을 위한 역변환 방법 | |
CN102333217B (zh) | 一种视频编码4x4整数变换方法 | |
WO2012142777A1 (zh) | 一种视频编码8x8整数变换方法 | |
Yashavantha Kumar et al. | Image Processing Architecture Using DTCWT Modified Distributed Algorithm for Plant Phenotyping | |
SHANIBA et al. | A Study on Implementing Novel Adder in HEVC DCT to Achieve Area And Power Efficiency |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |