CN104661036A - 用于视频编码的方法和*** - Google Patents
用于视频编码的方法和*** Download PDFInfo
- Publication number
- CN104661036A CN104661036A CN201310598478.4A CN201310598478A CN104661036A CN 104661036 A CN104661036 A CN 104661036A CN 201310598478 A CN201310598478 A CN 201310598478A CN 104661036 A CN104661036 A CN 104661036A
- Authority
- CN
- China
- Prior art keywords
- matrix
- transformation
- row
- inverse
- dct coefficient
- 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.)
- Pending
Links
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明提供一种用于视频编码的方法和***。方法包括:将DCT系数矩阵的转置矩阵按照列分成多个部分;针对转置矩阵的每一部分:利用转置矩阵的该部分和DCT系数矩阵对视频数据矩阵执行部分DCT以获得经变换的矩阵;对经变换的矩阵执行量化、反量化、IDCT以获得经反变换的矩阵;将经反变换的矩阵与针对转置矩阵的前一部分所获得的前一视频重建矩阵相加以获得当前视频重建矩阵,以最终获得视频重建矩阵。其中,在针对转置矩阵的该部分执行量化、反量化、IDCT的同时,开始针对转置矩阵的下一部分执行部分DCT。本发明提供的方法可以实现流水线操作,可以优化视频编码电路的面积并且提高视频编码重建回路的性能。
Description
技术领域
本发明总地涉及视频处理,且更具体地涉及用于视频编码的方法和***。
背景技术
高效视频编码(HEVC),即H.265,引入32x32的变换单元(TransformUnit,TU),其可以包含4x4到32x32的TU。另外,因为变换矩阵不像H.264那样简单,所以变换过程比H.264复杂得多。在H.264中,乘法器可以简化为移位器和加法器。然而,为了使用符合HEVC规范的标准变换矩阵,HEVC编码方案中必须使用乘法器。一般地,使用的乘法器越多,编码电路的面积越大。另外,在当前的视频编码中,重建视频帧包括对整个视频帧中的各个TU依次执行离散余弦变换(Discrete Cosine Transformation,DCT)、量化、反量化和反离散余弦变换(Inverse Discrete CosineTransformation,IDCT)。由于DCT和IDCT是基于正方形的块,且行变换和列变换存在先后次序,如果采用传统做法即先完成整个TU的行(或者列)变换,再执行整个TU的列(或者行)变换,会使得整个重建性能比较低。特别是对于较大尺寸的TU(如16x16,32x32),性能下降的更为明显。此外,传统算法对于DCT和IDCT矩阵乘法中采用直接矩阵相乘需要使用的乘法器比较多,因此电路面积也比较大。
发明内容
因此,需要提供一种用于视频编码的方法来解决上述的电路面积大和重建效率低的问题。
本发明提供了一种用于视频编码的方法,包括:将DCT系数矩阵的转置矩阵按照列分成多个部分;针对转置矩阵的每一部分:利用转置矩阵的该部分和DCT系数矩阵对视频数据矩阵执行部分DCT以获得经变换的矩阵;对经变换的矩阵执行量化、反量化、IDCT以获得经反变换的矩阵;将经反变换的矩阵与针对转置矩阵的前一部分所获得的前一视频重建矩阵相加以获得当前视频重建矩阵,以最终获得视频重建矩阵。其中,在针对转置矩阵的该部分执行量化、反量化、IDCT的同时,开始针对转置矩阵的下一部分执行部分DCT。
优选地,利用转置矩阵的该部分和DCT系数矩阵对视频数据矩阵执行部分DCT包括:针对转置矩阵的该部分的每一列:在该列中的行对称的两个因子的符号相同的情况下,视频数据矩阵的每一行的、将要与两个因子相乘的两个系数首先相加,再乘以两个因子中的任何一个;在该列中的行对称的两个因子的符号不同的情况下,视频数据矩阵的每一行的、将要与两个因子相乘的两个系数首先相减,再乘以两个因子中的对应被减数的因子。
优选地,利用转置矩阵的该部分和DCT系数矩阵对视频数据矩阵执行部分DCT包括:将视频数据矩阵与转置矩阵的该部分相乘以获得经水平变换的矩阵;针对经水平变换的矩阵中的每一列:在DCT系数矩阵的、将要与该列中的行对称的两个系数相乘的两个因子的符号相同的情况下,两个系数首先相加,再乘以两个因子中的任何一个;在DCT系数矩阵的、将要与该列中的行对称的两个系数相乘的两个因子的符号不同的情况下,两个系数首先相减,再乘以两个因子中的对应被减数的因子。
优选地,对经变换的矩阵执行量化、反量化、IDCT以获得经反变换的矩阵包括:将经变换的矩阵分成多个部分;针对经变换的矩阵的每一部分:对经变换的矩阵的该部分执行量化以获得经量化的矩阵的一部分;对经量化的矩阵的一部分执行反量化以获得经反量化的矩阵的一部分;利用转置矩阵对经反量化的矩阵的一部分执行垂直IDCT以获得经垂直反变换的矩阵的一部分;其中,在对经量化的矩阵的一部分执行反量化的同时,开始针对经变换的矩阵的下一部分执行量化;根据针对经变换的矩阵的所有部分所获得的经垂直反变换的矩阵的所有部分获得经垂直反变换的矩阵;以及利用DCT系数矩阵对经垂直反变换的矩阵执行水平IDCT以获得经反变换的矩阵。
优选地,利用DCT系数矩阵对经垂直反变换的矩阵执行水平IDCT以获得经反变换的矩阵包括:将经垂直反变换的矩阵分成多个部分;针对经垂直反变换的矩阵的每一部分,将经垂直反变换的矩阵的该部分与DCT系数矩阵相乘以获得经反变换的矩阵的一部分;以及根据针对经垂直反变换的矩阵的所有部分所获得的经反变换的矩阵的所有部分,获得经反变换的矩阵。
优选地,将经变换的矩阵分成多个部分是按照每一部分行对称的方式。
优选地,利用转置矩阵的该部分和DCT系数矩阵对视频数据矩阵执行部分DCT包括:将视频数据矩阵按照行分成多个部分;对于视频数据矩阵的每一部分:将视频数据矩阵的该部分与转置矩阵的该部分相乘以获得经水平变换的矩阵的一部分;根据经水平变换的矩阵的一部分获得与其对应的DCT系数矩阵的一部分;将DCT系数矩阵的一部分与经水平变换的矩阵的一部分相乘以获得经垂直变换的矩阵的一部分;将经垂直变换的矩阵的一部分与针对视频数据矩阵的前一部分所获得的前一经变换的矩阵相加以获得当前经变换的矩阵,以最终获得经变换的矩阵。
优选地,将视频数据矩阵按照行分成多个部分是按照每一部分行对称的方式。
优选地,视频数据矩阵的每个部分由两行组成。
优选地,将DCT系数矩阵的一部分与经水平变换的矩阵的一部分相乘以获得经垂直变换的矩阵的一部分包括:针对经水平变换的矩阵的一部分中的每一列:在DCT系数矩阵的、将要与该列中的行对称的两个系数相乘的两个因子的符号相同的情况下,两个系数首先相加,再乘以两个因子中的任何一个;在DCT系数矩阵的、将要与该列中的行对称的两个系数相乘的两个因子的符号不同的情况下,两个系数首先相减,再乘以两个因子中的对应被减数的因子。
优选地,利用转置矩阵的该部分和DCT系数矩阵对视频数据矩阵执行部分DCT包括:将视频数据矩阵与转置矩阵的该部分相乘以获得经水平变换的矩阵;对经水平变换的矩阵执行移位和饱和运算;将DCT系数矩阵与经水平变换的矩阵相乘以获得经垂直变换的矩阵;以及对经垂直变换的矩阵执行移位和饱和运算。
优选地,视频数据矩阵中的系数是帧内预测残差数据或运动预测残差数据。
根据本发明的另一方面,还提供了一种用于视频编码的***,包括相互连接的第一电路和第二电路。第一电路用于接收DCT系数矩阵、DCT系数矩阵的转置矩阵的一部分和视频数据矩阵并且利用转置矩阵的一部分和DCT系数矩阵对视频数据矩阵执行部分DCT操作以获得经变换的矩阵。第二电路用于对经变换的矩阵执行量化、反量化和反DCT操作以获得经反变换的矩阵并且根据经反变换的矩阵和针对转置矩阵的前一部分所获得的前一视频重建矩阵获得当前视频重建矩阵,以最终获得视频重建矩阵。其中,在第二电路针对转置矩阵的一部分执行量化、反量化和反DCT操作的同时,第一电路开始接收DCT系数矩阵、转置矩阵的下一部分和视频数据矩阵。
优选地,第一电路包括一一对应地连接的多个加法器和多个乘法器。对于多个加法器中的每一个加法器,该加法器用于接收视频数据矩阵的列对称的两个系数,并且在转置矩阵的、将要与两个系数相乘的两个因子的符号相同的情况下,将两个系数相加,在转置矩阵的、将要与两个系数相乘的两个因子的符号不同的情况下,将两个系数相减,以获得中间结果。对应的乘法器用于在转置矩阵的、将要与两个系数相乘的两个因子的符号相同的情况下,将中间结果乘以两个因子中的任何一个,在转置矩阵的、将要与两个系数相乘的两个因子的符号不同的情况下,将中间结果乘以两个因子中的对应被减数的因子。
优选地,第一电路包括相互连接的水平变换电路和垂直变换电路。水平变换电路用于接收视频数据矩阵和转置矩阵的一部分并且根据视频数据矩阵和转置矩阵的一部分获得经水平变换的矩阵。垂直变换电路包括一一对应地连接的多个加法器和多个乘法器。对于多个加法器中的每一个加法器,该加法器用于接收经水平变换的矩阵的行对称的两个系数,并且在DCT系数矩阵的、将要与两个系数相乘的两个因子的符号相同的情况下,将两个系数相加,在DCT系数矩阵的、将要与两个系数相乘的两个因子的符号不同的情况下,将两个系数相减,以获得中间结果。对应的乘法器用于在DCT系数矩阵的、将要与两个系数相乘的两个因子的符号相同的情况下,将中间结果乘以两个因子中的任何一个,在DCT系数矩阵的、将要与两个系数相乘的两个因子的符号不同的情况下,将中间结果乘以两个因子中的对应被减数的因子。
优选地,第二电路包括顺次连接的量化电路、反量化电路、垂直反变换电路和水平反变换电路。量化电路用于接收经变换的矩阵的一部分并且对经变换的矩阵的一部分执行量化操作以获得经量化的矩阵的一部分。反量化电路用于对经量化的矩阵的一部分执行反量化操作以获得经反量化的矩阵的一部分。垂直反变换电路用于利用转置矩阵对经反量化的矩阵的一部分执行垂直IDCT操作以获得经垂直反变换的矩阵的一部分并且根据针对经变换的矩阵的所有部分所获得的经垂直反变换的矩阵的所有部分获得经垂直反变换的矩阵。水平反变换电路用于利用DCT系数矩阵对经垂直反变换的矩阵执行水平IDCT操作以获得经反变换的矩阵。其中,在反量化电路对经量化的矩阵的一部分执行反量化操作的同时,量化电路开始针对经变换的矩阵的下一部分执行量化操作。
优选地,第一电路包括相互连接的水平变换电路和垂直变换电路。水平变换电路用于接收视频数据矩阵的一部分和转置矩阵的一部分并且根据视频数据矩阵的一部分和转置矩阵的一部分获得经水平变换的矩阵的一部分。垂直变换电路包括一一对应地连接的多个乘法电路、多个寄存器和多个加法器,多个乘法电路用于接收与经水平变换的矩阵的一部分对应的DCT系数矩阵的一部分并且根据DCT系数矩阵的一部分和经水平变换的矩阵的一部分获得经垂直变换的矩阵的一部分。多个加法器用于接收经垂直变换的矩阵的一部分和来自多个寄存器的、针对视频数据矩阵的前一部分所获得的前一经变换的矩阵并且根据经垂直变换的矩阵的一部分和前一经变换的矩阵获得当前经变换的矩阵。多个寄存器用于存储当前经变换的矩阵。
本发明提供的方法可以优化视频编码电路的面积并且提高视频编码的效率。
以下结合附图,详细描述本发明的优点和特征。
附图说明
为了使本发明的优点更容易理解,将通过参考在附图中示出的具体实例更详细地描述上文简要描述的本发明。可以理解这些附图只描绘了本发明的典型实施例,因此不应认为是对其保护范围的限制,通过附图以附加的特性和细节描述和解释本发明。
图1示出了根据本发明一个实施例的用于视频编码的方法的流程示意图,其中DCT系数矩阵是32×32的方块矩阵;
图2示出了根据本发明其他实施例的用于视频编码的方法的流程示意图;
图3示出了DCT所涉及的各矩阵的示意图;
图4示出了根据本发明一个实施例的用于执行部分DCT的逻辑电路的示意图;
图5示出了根据本发明一个实施例的部分DCT所涉及的各矩阵的示意图;
图6示出了IDCT所涉及的各矩阵的示意图;
图7示出了根据本发明一个实施例的垂直IDCT所涉及的各矩阵的示意图;
图8示出了根据本发明一个实施例的水平IDCT所涉及的各矩阵的示意图;
图9示出了根据本发明一个实施例的用于帧间TU搜索的方法的流程示意图;以及
图10示出了根据本发明实施例的用于视频编码的***的示意性框图。
具体实施方式
在下文的讨论中,给出了细节以便提供对本发明更为彻底的理解。然而,本领域技术人员可以了解,本发明可以无需一个或多个这些细节而得以实施。在特定的示例中,为了避免与本发明发生混淆,对于本领域公知的一些技术特征未进行详尽地描述。
在本文中,“水平”和“垂直”是相对于与DCT系数矩阵或转置矩阵相乘的矩阵来定义的。当与DCT系数矩阵或转置矩阵相乘的矩阵所参加运算的是行元素时,称为“水平”,而当与DCT系数矩阵或转置矩阵相乘的矩阵所参加运算的是列元素时,称为“垂直”。例如,水平DCT是指视频数据矩阵(或其一部分)与DCT系数矩阵的转置矩阵(或其一部分)相乘的运算,垂直DCT是指DCT系数矩阵(或其一部分)与经水平变换的矩阵(或其一部分)相乘的运算。垂直IDCT是指DCT系数矩阵的转置矩阵(或其一部分)与经反量化的矩阵(或其一部分)相乘的运算,水平IDCT是指经垂直反变换的矩阵(或其一部分)与DCT系数矩阵(或其一部分)相乘的运算。另外,本文所述的“连接”包括直接连接和间接连接。
根据本发明的一个方面,公开了一种用于视频编码的方法。该方法可以包括以下步骤。将DCT系数矩阵的转置矩阵按照列分成多个部分。DCT系数矩阵是n×n的方块矩阵,例如H.264规范中的4×4DCT系数矩阵或者HEVC规范中的4×4、8×8、16×16或32×32DCT系数矩阵。DCT系数矩阵的转置矩阵也是n×n的方块矩阵。转置矩阵的每个部分包括至少一列,例如两列或四列。例如,DCT系数矩阵是HEVC规范中的32×32DCT系数矩阵,其转置矩阵的大小也是32×32。可以将32×32转置矩阵分成16个部分,每部分包括两列。每个部分可以视为32×2的矩阵。本领域技术人员可以理解,转置矩阵的每个部分可以包括任意合适数目的列。之后针对转置矩阵的每一部分执行以下操作。利用转置矩阵的该部分和DCT
系数矩阵对视频数据矩阵执行部分DCT以获得经变换的矩阵。对经变换的矩阵执行量化、反量化、IDCT以获得经反变换的矩阵。将经反变换的矩阵与针对转置矩阵的前一部分所获得的前一视频重建矩阵相加以获得当前视频重建矩阵,以最终获得视频重建矩阵。在针对转置矩阵的该部分执行量化、反量化、IDCT的同时,开始针对转置矩阵的下一部分执行部分DCT。
在本文的描述中,X矩阵代表视频数据矩阵,C矩阵代表DCT系数矩阵,CT矩阵代表DCT系数矩阵的转置矩阵。根据HEVC或H.264规范,可以根据Y=CXCT公式来对视频数据矩阵执行DCT,其中Y是经过DCT变换的矩阵。在本发明的实施例中,在每次对视频数据矩阵执行DCT时,参加运算的实际上不是整个CT矩阵,而是其一部分。本文将这样的DCT运算称为“部分DCT”。图1示出了根据本发明一个实施例的用于视频编码的方法100的流程示意图,其中DCT系数矩阵是32×32的方块矩阵。DCT系数矩阵的转置矩阵也是32×32的方块矩阵。可以将转置矩阵划分为16个部分,每个部分包括两列。在图1中,RECON代表重建,Q代表量化,IQ代表反量化,IDCT(V)代表垂直IDCT,IDCT(H)代表水平IDCT,1/2c代表经反量化的矩阵的1/2列已经被执行垂直IDCT,1c、3/2c和2c与1/2c类似,不再赘述。如图1所示,在步骤S101中,利用转置矩阵的第一部分,例如第一列和最后一列,对视频数据矩阵执行部分DCT。优选地,部分DCT利用16个周期,即16个循环来完成。之后可以获得大小为32×2的经变换的矩阵。可以将该经变换的矩阵传送到流水线的下游。优选地,该传送过程利用一个周期来完成,该周期可以称为气泡周期。在步骤S102,对经变换的矩阵执行量化、反量化、IDCT以获得经反变换的矩阵。同时,开始利用DCT系数矩阵的转置矩阵的第二部分,例如第二列和第十五列,对视频数据矩阵执行部分DCT。在步骤S102中,量化、反量化和IDCT都可以利用多个周期来完成。量化、反量化和IDCT也可以采用流水线式的执行方式。IDCT可以包括垂直IDCT和水平IDCT。优选地,对于32×32变换,量化、反量化和垂直IDCT都可以利用4个周期来完成,水平IDCT可以利用8个周期来完成。此外,在IDCT之后,步骤S102还可以包括3个空周期,即不执行任何操作。如图1所示,量化、反量化和IDCT共利用14个周期来完成。这14个周期加上3个空周期等于执行每个部分DCT所消耗的周期数目。方法100的整个执行过程所消耗的周期数目是286个,即17×16+14=286。在步骤S102中所获得的当前视频重建矩阵是针对转置矩阵的第一部分所获得的经反变换的矩阵。之后,在下一步骤中可以获得针对转置矩阵的第二部分所获得的经反变换的矩阵。在该步骤中,将针对转置矩阵的第二部分所获得的经反变换的矩阵与针对转置矩阵的第一部分所获得的经反变换的矩阵相加,可以获得当前视频重建矩阵。在该步骤中,针对转置矩阵的第一部分所获得的经反变换的矩阵称为前一视频重建矩阵。因此,视频重建矩阵是针对转置矩阵的各部分所获得的经反变换的矩阵逐渐累加获得的。方法100的执行过程是流水线化的,执行效率比较高。图2示出了根据本发明其他实施例的用于视频编码的方法的示意性流程图。在图2中,1r代表经垂直反变换的矩阵的1行已经被执行水平IDCT,2r、4r、6r和8r与1r类似,不再赘述。根据以上对于图1的描述,本领域技术人员可以理解图2中的各实施例的实施方式,在此不再赘述。
本发明提供的方法将针对视频数据矩阵的DCT操作分为多个循环步骤实施,并且其采用流水线式的执行方式。多个循环步骤可以重复利用相同的电路实施,因此电路面积得到优化。另外,流水线式的编码方法可以节约操作时间,具有非常高的效率。
在一个实施例中,利用转置矩阵的该部分和DCT系数矩阵对视频数据矩阵执行部分DCT可以包括以下步骤。针对转置矩阵的该部分的每一列:在该列中的行对称的两个因子的符号相同的情况下,视频数据矩阵的每一行的、将要与两个因子相乘的两个系数首先相加,再乘以两个因子中的任何一个。在该列中的行对称的两个因子的符号不同的情况下,视频数据矩阵的每一行的、将要与两个因子相乘的两个系数首先相减,再乘以两个因子中的对应被减数的因子。表1示出了HEVC规范中的8×8DCT系数矩阵。如表1所示,该8×8DCT系数矩阵是对称的。此处的“对称”是指该矩阵中位于同一行的两个列对称的因子的绝对值相等,符号相同或相反。在HEVC或H.264规范中,DCT系数矩阵的奇数行的、两个列对称的因子符号相同,偶数行的两个列对称的因子符号相反。可以理解,DCT系数矩阵的转置矩阵的奇数列的、两个行对称的因子符号相同,偶数列的两个行对称的因子符号相反。因此,在执行DCT时,可以利用该对称性对算法进行优化。图3示出了DCT所涉及的各矩阵的示意图。假设DCT系数矩阵,即C矩阵的大小是n×n,则DCT系数矩阵的转置矩阵,即CT矩阵的大小也是n×n。在常规的执行DCT的过程中,首先将X与CT相乘,获得中间矩阵,即经水平变换的矩阵。其次将C与经水平变换的矩阵相乘。本领域技术人员可以理解,CT矩阵是对称的。在CT矩阵中,CT[1,1]和CT[n,1]的绝对值相等,符号相同,CT[2,1]和CT[n-1,1]的绝对值相等,符号相同......例如,在计算经水平变换的矩阵X CT时,第一个元素根据如下公式计算:XCT[1,1]=X[1,1]×CT[1,1]+X[1,2]×CT[2,1]+......+X[1,n-1]×CT[n-1,1]+X[1,n]×CT[n,1]。因为CT[1,1]和CT[n,1]的绝对值是相等的,符号是相同的,所以可以首先将X[1,1]和X[n,1]相加,然后乘以CT[1,1]和CT[1,n]中的任何一个。因此,“X[1,1]×CT[1,1]+X[1,n]×CT[n,1]”得到简化。同理,可以简化X[1,2]×CT[2,1]+X[1,n-1]×CT[n-1,1]等。根据以上描述,本领域技术人员可以理解经水平变换的矩阵的其他元素的计算方式,在此不再赘述。采用上述方式,可以在执行水平DCT的过程中,节约一半的乘法器。因为乘法器越多,电路面积越大,所以上述方式可以有效地对电路面积进行优化。同理,在垂直DCT中,可以通过首先将经水平变换的矩阵的同一列的两个行对称元素相加或相减来优化算法。图4示出了根据本发明一个实施例的用于执行部分DCT的逻辑电路的示意图。如图4所示,在水平DCT中,将视频数据矩阵的32个元素输入16个加法器。之后利用16个乘法器将所获得的结果与DCT系数矩阵的转置矩阵中的对应因子相乘。之后经过数次相加运算,可以获得中间结果。可以将该中间结果存储在寄存器中。该中间结果是经水平变换的矩阵的其中一个元素。
表1HEVC规范中的8×8DCT系数矩阵
在一个实施例中,利用转置矩阵的该部分和DCT系数矩阵对视频数据矩阵执行部分DCT可以包括以下步骤。将视频数据矩阵与转置矩阵的该部分相乘以获得经水平变换的矩阵。针对经水平变换的矩阵中的每一列:在DCT系数矩阵的、将要与该列中的行对称的两个系数相乘的两个因子的符号相同的情况下,两个系数首先相加,再乘以两个因子中的任何一个;在DCT系数矩阵的、将要与该列中的行对称的两个系数相乘的两个因子的符号不同的情况下,两个系数首先相减,再乘以两个因子中的对应被减数的因子。在对经水平变换的矩阵执行垂直IDCT时,可以利用DCT系数矩阵的对称性来优化算法。根据对前述实施例的描述,本领域技术人员可以理解本实施例的实施方式,在此不再赘述。
在一个实施例中,利用转置矩阵的该部分和DCT系数矩阵对视频数据矩阵执行部分DCT可以包括以下步骤。将视频数据矩阵按照行分成多个部分。对于视频数据矩阵的每一部分:将视频数据矩阵的该部分与转置矩阵的该部分相乘以获得经水平变换的矩阵的一部分;根据经水平变换的矩阵的一部分获得与其对应的DCT系数矩阵的一部分;将DCT系数矩阵的一部分与经水平变换的矩阵的一部分相乘以获得经垂直变换的矩阵的一部分;将经垂直变换的矩阵的一部分与针对视频数据矩阵的前一部分所获得的前一经变换的矩阵相加以获得当前经变换的矩阵,以最终获得经变换的矩阵。图5示出了根据本发明一个实施例的部分DCT所涉及的各矩阵的示意图。应该注意,图5中的各矩阵的元素仅是示意性的,其数目不代表真正的元素的数目。如图5所示,可以将X矩阵分成多个部分,每个部分包括至少一行。例如,X矩阵是32×32矩阵,可以将X矩阵分成16个部分,每个部分包括两行。假设CT矩阵分成16个部分,每个部分包括两列。将X矩阵的两行与CT矩阵的两列相乘,可以获得四个元素。这四个元素包括在经水平变换的矩阵中,是经水平变换的矩阵的一部分。C矩阵的一部分,即C矩阵的两列与这四个元素是对应的。C矩阵的这两列在针对经水平变换的矩阵的一部分执行垂直DCT的过程中参与运算。因此,将C矩阵的两列与这四个元素相乘,可以获得第一组32×2个中间值。第一组32×2个中间值是经垂直变换的矩阵的一部分。可以将每个中间值存储在寄存器中。之后,可以对X矩阵的下一个两行执行以上步骤,可以获得第二组32×2个中间值。将第二组32×2个中间值累加到第一组32×2个中间值上。可选地,可以通过将用于存储中间值的寄存器的输出连接到加法器的一个输入来实现该累加步骤。经过16个循环之后,即可获得完整的32×2的矩阵,即经变换的矩阵。将视频数据矩阵分成多个部分并对视频数据矩阵的各部分循环执行部分DCT的方式可以提高编码效率。
在一个实施例中,将视频数据矩阵按照行分成多个部分可以是按照每一部分行对称的方式。例如,可以将视频数据矩阵分成多个部分,其中第一部分包括第一行和最后一行,第二部分包括第二行和倒数第二行,等等。在另一个实施例中,可以将视频数据矩阵分成多个部分,其中第一部分包括第一行、第二行、倒数第二行和最后一行,第二部分包括第三行、第四行、倒数第三行和倒数第四行,等等。本领域技术人员可以理解,可以以任意合适的方式划分视频数据矩阵的各部分。将视频数据矩阵按照行对称的方式划分使得在后续的垂直DCT过程中可以节约一半的乘法器,这有利于优化电路面积。
在一个实施例中,视频数据矩阵的每个部分可以由两行组成。例如,第一部分包括第一行和最后一行,第二部分包括第二行和倒数第二行,等等。
在一个实施例中,将DCT系数矩阵的一部分与经水平变换的矩阵的一部分相乘以获得经垂直变换的矩阵的一部分可以包括以下步骤。针对经水平变换的矩阵的一部分中的每一列:在DCT系数矩阵的、将要与该列中的行对称的两个系数相乘的两个因子的符号相同的情况下,两个系数首先相加,再乘以两个因子中的任何一个;在DCT系数矩阵的、将要与该列中的行对称的两个系数相乘的两个因子的符号不同的情况下,两个系数首先相减,再乘以两个因子中的对应被减数的因子。由于视频数据矩阵的每个部分是行对称的,所以其与转置矩阵的部分相乘所获得的经水平变换的矩阵中的元素也是行对称的,这有利于在垂直DCT中进一步利用DCT系数矩阵的对称性来优化算法。返回参考图5。例如,如图5所示,将32×32的X矩阵分成16个部分,每部分包括两行。第一部分包括第一行和最后一行。假设CT矩阵的第一部分包括第一列和最后一列。当X与CT相乘时,得到经水平变换的矩阵一部分,即其中的四个元素。这四个元素分别是XCT[1,1]、XCT[1,32]、XCT[32,1]和XCT[32,32]。在执行垂直DCT的过程中,当计算经变换的矩阵的第一行第一列元素时,可以首先将XCT[1,1]和XCT[32,1]相加,再与矩阵C的因子C[1,1]和C[1,32]中的任何一个相乘。所获得的结果是对应经变换的矩阵的第1行第1列元素的1个中间值。同样的,C矩阵与XCT[1,32]和XCT[32,32]相乘的算法也可以被优化,所获得的结果是对应经变换的矩阵的第1行第32列元素的1个中间值。当垂直DCT执行完成时,可以获得对应经变换的矩阵的第1列和第32列中的32×2个元素的中间值。采用上述优化算法可以进一步节约乘法器。
可以理解,假设X矩阵、C矩阵和CT矩阵都是32×32矩阵,则上述优化算法需要128个乘法器(64个乘法器用于水平DCT,64个乘法器用于垂直DCT)。
在一个实施例中,对经变换的矩阵执行量化、反量化、IDCT以获得经反变换的矩阵可以包括以下步骤。将经变换的矩阵分成多个部分。针对经变换的矩阵的每一部分执行以下操作。对经变换的矩阵的该部分执行量化以获得经量化的矩阵的一部分。对经量化的矩阵的一部分执行反量化以获得经反量化的矩阵的一部分。利用转置矩阵对经反量化的矩阵的一部分执行垂直IDCT以获得经垂直反变换的矩阵的一部分。在对经量化的矩阵的一部分执行反量化的同时,开始针对经变换的矩阵的下一部分执行量化。根据针对经变换的矩阵的所有部分所获得的经垂直反变换的矩阵的所有部分获得经垂直反变换的矩阵。利用DCT系数矩阵对经垂直反变换的矩阵执行水平IDCT以获得经反变换的矩阵。对经变换的矩阵执行量化、反量化、IDCT的过程可以采用流水线方式来实现。返回参考图1,从图1中可以看出,针对转置矩阵的每一部分,对视频数据矩阵所执行的量化、反量化和IDCT中的每个过程均可以分成多次来实现。例如,DCT系数矩阵是32×32矩阵时,转置矩阵的每一部分包括两列。因此,经变换的矩阵是32×2的矩阵。需要进行量化的是64个元素。优选地,可以将64个元素分为四部分,每次仅量化16个元素。一次量化的元素的数目越多,需要量化的计算单元越多,则电路面积越大。然而,一次量化的元素的数目太少会导致循环次数较多,可能与针对转置矩阵的下一部分所执行的量化过程相冲突。可以根据需要确定每次量化的元素数量。在对第一组16个元素进行反量化的同时,可以执行对第二组16个元素的量化,如图1所示。针对经变换的矩阵的每一部分所获得的经垂直反变换的矩阵的一部分可以是经垂直反变换的矩阵的一部分元素或一部分元素的中间值。流水线化的处理方式可以进一步提高编码效率。
在一个实施例中,将经变换的矩阵分成多个部分是按照每一部分行对称的方式。根据HEVC或H.264规范,可以根据Y′=CTX′C公式来对经反量化的矩阵执行IDCT,其中X′是经反量化的矩阵,Y′是经过IDCT变换的矩阵。图6示出了IDCT所涉及的各矩阵的示意图。在IDCT运算过程中,CT矩阵的行元素与X′矩阵的列元素相乘。由于CT矩阵中位于同一列的两个行对称的因子的绝对值相等,符号相同或相反,所以在计算CT X′矩阵时可以利用该对称性。例如,在计算CT X′[1,1]时,可以将CT矩阵的每一个行元素与对应的X′矩阵的列元素相乘产生的中间值存储在寄存器中。例如,可以将CT[1,1]×X′[1,1]的积存储在寄存器中。在计算CT X′[n,1]时,由于CT[1,1]和CT[n,1]的绝对值相等,符号相同,所以不需要再重新执行乘法操作。只需要将CT[1,1]×X′[1,1]的积直接加入CT X′[n,1]的计算过程。当执行水平IDCT时,同样可以采用类似方式优化算法,在此不再赘述。通过上述方式可以利用DCT因子的对称性优化IDCT算法,节约乘法器,并因此可以优化电路面积。图7示出了根据本发明一个实施例的垂直IDCT所涉及的各矩阵的示意图。为了在IDCT执行期间以如上所述的方式利用DCT系数矩阵的对称性,可以使经变换的矩阵的每个部分包括行对称的元素。例如,如图7所示,将32×2的经变换的矩阵分成四个部分。第一部分包括第一列中的上方8个元素和下方8个元素。第二部分包括第一列的中间16个元素。第三部分包括最后一列中的上方8个元素和下方8个元素。第四部分包括最后一列的中间16个元素。每一个部分中的元素都是行对称的。针对每部分的垂直IDCT都可以通过上述方式利用较少的乘法器来实现。可以理解,假设经变换的矩阵是32×2矩阵,而DCT系数矩阵和转置矩阵是32×32矩阵,则根据上述优化的算法,在执行垂直IDCT时需要256个乘法器。
在一个实施例中,利用DCT系数矩阵对经垂直反变换的矩阵执行水平IDCT以获得经反变换的矩阵可以包括以下步骤。将经垂直反变换的矩阵分成多个部分。针对经垂直反变换的矩阵的每一部分,将经垂直反变换的矩阵的该部分与DCT系数矩阵相乘以获得经反变换的矩阵的一部分。根据针对垂直反变换的矩阵的所有部分所获得的经反变换的矩阵的所有部分,获得经反变换的矩阵。图8示出了根据本发明一个实施例的水平IDCT所涉及的各矩阵的示意图。如图8所示,可以将经垂直反变换的矩阵分成8个部分。每个部分包括4×2个元素。本领域技术人员可以理解,该经垂直反变换的矩阵的每个部分所包括的元素的数目可以根据需要进行选择。可以理解,假设经变换的矩阵是32×2矩阵,而DCT系数矩阵和转置矩阵是32×32矩阵,则在执行水平IDCT时需要128个乘法器。
利用转置矩阵的该部分和DCT系数矩阵对视频数据矩阵执行部分DCT可以包括以下步骤。将视频数据矩阵与转置矩阵的该部分相乘以获得经水平变换的矩阵。对经水平变换的矩阵执行移位和饱和运算。将DCT系数矩阵与经水平变换的矩阵相乘以获得经垂直变换的矩阵。对经垂直变换的矩阵执行移位和饱和运算。本领域技术人员可以理解,上述移位和饱和运算是指根据标准,例如HEVC或H.264标准加以执行。返回参考图4,在对视频数据矩阵执行水平DCT和垂直DCT的过程中,可以执行移位和饱和运算。
在一个实施例中,视频数据矩阵中的系数是帧内预测残差数据或运动预测残差数据。在视频编码的过程中,可以采用帧内预测或帧间预测的模式。视频数据矩阵中的系数可以是与视频帧的像素相关的亮度值或色度值。
本发明的流水线式执行方法可以用在HEVC规范的全变换单元(TU)搜索中。帧间TU搜索不需要相邻像素来进行预测。整个TU搜索采用流水线模式可以是非常高效的。在编码单元(CU)具有32×32个像素的情况下,全搜索的顺序是(4)4x4->(1)8x8->(4)4x4->(1)8x8->...->(1)16x16....->(1)32x32。首先计算4个4×4TU的总信噪比,并与1个8×8TU的信噪比进行比较。此处的“信噪比”是指用于衡量视频重建矩阵与原始的视频数据矩阵之间的差异的信噪比。因为整个CU具有32×32个像素,所以需要进行16次4个4×4TU与1个8×8TU的比较。之后需要计算1个16×16TU的信噪比、4个16×16TU的信噪比的和以及1个32×32TU的信噪比并逐级进行比较。最后可以选择具有最佳信噪比的TU大小。图9示出了根据本发明一个实施例的用于帧间TU搜索的方法的流程示意图。如图9所示,在采用该优选实施例的情况下,对于32×32的CU,仅需606个周期操作就可以完成该全搜索过程,即(2×2+3×2)×16+5×8×4+17×16+14=606。对于16×16的CU,需要206个周期操作,即(2×2+3×2)×16+5×8+6=206。帧内模式和帧间模式的区别在于帧内模式的相邻块之间有依赖性,所以不能并行执行两个块的重建操作,所以每个4×4TU的DCT操作所需要的周期是帧间模式下4×4TU的两倍,即4个周期。其他与帧间模式相同。
根据本发明另一方面,还提供了一种用于视频编码的***。图10示出了根据本发明实施例的用于视频编码的***1000的示意性框图。如图10所示,***1000包括相互连接的第一电路1001和第二电路1002。第一电路1001用于接收DCT系数矩阵、DCT系数矩阵的转置矩阵的一部分和视频数据矩阵并且利用转置矩阵的一部分和DCT系数矩阵对视频数据矩阵执行部分DCT操作以获得经变换的矩阵。第二电路1002用于对经变换的矩阵执行量化、反量化和反DCT操作以获得经反变换的矩阵并且根据经反变换的矩阵和针对转置矩阵的前一部分所获得的前一视频重建矩阵获得当前视频重建矩阵,以最终获得视频重建矩阵。其中,在第二电路1002针对转置矩阵的一部分执行量化、反量化和反DCT操作的同时,第一电路1001开始接收DCT系数矩阵、转置矩阵的下一部分和视频数据矩阵。
在一个实施例中,第一电路1001包括一一对应地连接的多个加法器和多个乘法器。对于多个加法器中的每一个加法器,该加法器用于接收视频数据矩阵的列对称的两个系数,并且在转置矩阵的、将要与两个系数相乘的两个因子的符号相同的情况下,将两个系数相加,在转置矩阵的、将要与两个系数相乘的两个因子的符号不同的情况下,将两个系数相减,以获得中间结果。对应的乘法器用于在转置矩阵的、将要与两个系数相乘的两个因子的符号相同的情况下,将中间结果乘以两个因子中的任何一个,在转置矩阵的、将要与两个系数相乘的两个因子的符号不同的情况下,将中间结果乘以两个因子中的对应被减数的因子。
在一个实施例中,第一电路1001包括相互连接的水平变换电路和垂直变换电路。水平变换电路用于接收视频数据矩阵和转置矩阵的一部分并且根据视频数据矩阵和转置矩阵的一部分获得经水平变换的矩阵。垂直变换电路包括一一对应地连接的多个加法器和多个乘法器。对于多个加法器中的每一个加法器,该加法器用于接收经水平变换的矩阵的行对称的两个系数,并且在DCT系数矩阵的、将要与两个系数相乘的两个因子的符号相同的情况下,将两个系数相加,在DCT系数矩阵的、将要与两个系数相乘的两个因子的符号不同的情况下,将两个系数相减,以获得中间结果。对应的乘法器用于在DCT系数矩阵的、将要与两个系数相乘的两个因子的符号相同的情况下,将中间结果乘以两个因子中的任何一个,在DCT系数矩阵的、将要与两个系数相乘的两个因子的符号不同的情况下,将中间结果乘以两个因子中的对应被减数的因子。
在一个实施例中,第二电路1002包括顺次连接的量化电路、反量化电路、垂直反变换电路和水平反变换电路。量化电路用于接收经变换的矩阵的一部分并且对经变换的矩阵的一部分执行量化操作以获得经量化的矩阵的一部分。反量化电路用于对经量化的矩阵的一部分执行反量化操作以获得经反量化的矩阵的一部分。垂直反变换电路用于利用转置矩阵对经反量化的矩阵的一部分执行垂直IDCT操作以获得经垂直反变换的矩阵的一部分并且根据针对经变换的矩阵的所有部分所获得的经垂直反变换的矩阵的所有部分获得经垂直反变换的矩阵。水平反变换电路用于利用DCT系数矩阵对经垂直反变换的矩阵执行水平IDCT操作以获得经反变换的矩阵。其中,在反量化电路对经量化的矩阵的一部分执行反量化操作的同时,量化电路开始针对经变换的矩阵的下一部分执行量化操作。
在一个实施例中,第一电路1001包括相互连接的水平变换电路和垂直变换电路。水平变换电路用于接收视频数据矩阵的一部分和转置矩阵的一部分并且根据视频数据矩阵的一部分和转置矩阵的一部分获得经水平变换的矩阵的一部分。垂直变换电路包括一一对应地连接的多个乘法电路、多个寄存器和多个加法器,多个乘法电路用于接收与经水平变换的矩阵的一部分对应的DCT系数矩阵的一部分并且根据DCT系数矩阵的一部分和经水平变换的矩阵的一部分获得经垂直变换的矩阵的一部分。多个加法器用于接收经垂直变换的矩阵的一部分和来自多个寄存器的、针对视频数据矩阵的前一部分所获得的前一经变换的矩阵并且根据经垂直变换的矩阵的一部分和前一经变换的矩阵获得当前经变换的矩阵。多个寄存器用于存储当前经变换的矩阵。
本领域的技术人员参考图1-10并结合上面关于用于视频编码的方法的实施例的描述能够理解上述用于视频编码的***的具体结构和运行方式。为了简洁,在此省略其具体描述。
为了进行说明,前述描述参照了具体实施例进行描述。然而,上文的示例性的讨论并非意欲是无遗漏地或将本发明限制在所公开的明确形式上。鉴于以上教导,也有可能存在很多变型和变化。选择并描述了实施例,以最好地解释本发明的原理和实际应用,以使本领域的其他技术人员最好地利用本发明以及具有各种变型的各种实施例,以能适用于期望的特定用途。
由此描述了根据本发明的实施例。虽然本公开已在特定实施例中予以描述,但是应当了解,本发明不应理解为由这些实施例所限制,而应根据权利要求进行理解。
Claims (17)
1.一种用于视频编码的方法,包括:
将离散余弦变换系数矩阵的转置矩阵按照列分成多个部分;
针对所述转置矩阵的每一部分:
利用所述转置矩阵的该部分和所述离散余弦变换系数矩阵对视频数据矩阵执行部分离散余弦变换以获得经变换的矩阵;
对所述经变换的矩阵执行量化、反量化、反离散余弦变换以获得经反变换的矩阵;
将所述经反变换的矩阵与针对所述转置矩阵的前一部分所获得的前一视频重建矩阵相加以获得当前视频重建矩阵,以最终获得视频重建矩阵;
其中,在针对所述转置矩阵的该部分执行所述量化、所述反量化、所述反离散余弦变换的同时,开始针对所述转置矩阵的下一部分执行所述部分离散余弦变换。
2.如权利要求1所述的方法,其特征在于,所述利用所述转置矩阵的该部分和所述离散余弦变换系数矩阵对视频数据矩阵执行部分离散余弦变换包括:
针对所述转置矩阵的该部分的每一列:
在该列中的行对称的两个因子的符号相同的情况下,所述视频数据矩阵的每一行的、将要与所述两个因子相乘的两个系数首先相加,再乘以两个因子中的任何一个;
在该列中的行对称的两个因子的符号不同的情况下,所述视频数据矩阵的每一行的、将要与所述两个因子相乘的两个系数首先相减,再乘以两个因子中的对应被减数的因子。
3.如权利要求1所述的方法,其特征在于,所述利用所述转置矩阵的该部分和所述离散余弦变换系数矩阵对视频数据矩阵执行部分离散余弦变换包括:
将所述视频数据矩阵与所述转置矩阵的该部分相乘以获得经水平变换的矩阵;
针对所述经水平变换的矩阵中的每一列:
在所述离散余弦变换系数矩阵的、将要与该列中的行对称的两个系数相乘的两个因子的符号相同的情况下,所述两个系数首先相加,再乘以两个因子中的任何一个;
在所述离散余弦变换系数矩阵的、将要与该列中的行对称的两个系数相乘的两个因子的符号不同的情况下,所述两个系数首先相减,再乘以两个因子中的对应被减数的因子。
4.如权利要求1所述的方法,其特征在于,所述对所述经变换的矩阵执行量化、反量化、反离散余弦变换以获得经反变换的矩阵包括:
将所述经变换的矩阵分成多个部分;
针对所述经变换的矩阵的每一部分:
对所述经变换的矩阵的该部分执行量化以获得经量化的矩阵的一部分;
对所述经量化的矩阵的一部分执行反量化以获得经反量化的矩阵的一部分;
利用所述转置矩阵对所述经反量化的矩阵的一部分执行垂直反离散余弦变换以获得经垂直反变换的矩阵的一部分;
其中,在对所述经量化的矩阵的一部分执行所述反量化的同时,开始针对所述经变换的矩阵的下一部分执行所述量化;
根据针对所述经变换的矩阵的所有部分所获得的所述经垂直反变换的矩阵的所有部分获得所述经垂直反变换的矩阵;以及
利用所述离散余弦变换系数矩阵对所述经垂直反变换的矩阵执行水平反离散余弦变换以获得所述经反变换的矩阵。
5.如权利要求4所述的方法,其特征在于,所述利用所述离散余弦变换系数矩阵对所述经垂直反变换的矩阵执行水平反离散余弦变换以获得经反变换的矩阵包括:
将所述经垂直反变换的矩阵分成多个部分;
针对所述经垂直反变换的矩阵的每一部分,将所述经垂直反变换的矩阵的该部分与所述离散余弦变换系数矩阵相乘以获得所述经反变换的矩阵的一部分;以及
根据针对所述经垂直反变换的矩阵的所有部分所获得的所述经反变换的矩阵的所有部分,获得所述经反变换的矩阵。
6.如权利要求4所述的方法,其特征在于,所述将所述经变换的矩阵分成多个部分是按照每一部分行对称的方式。
7.如权利要求1所述的方法,其特征在于,所述利用所述转置矩阵的该部分和所述离散余弦变换系数矩阵对视频数据矩阵执行部分离散余弦变换包括:
将所述视频数据矩阵按照行分成多个部分;
对于所述视频数据矩阵的每一部分:
将所述视频数据矩阵的该部分与所述转置矩阵的该部分相乘以获得经水平变换的矩阵的一部分;
根据所述经水平变换的矩阵的一部分获得与其对应的所述离散余弦变换系数矩阵的一部分;
将所述离散余弦变换系数矩阵的一部分与所述经水平变换的矩阵的一部分相乘以获得经垂直变换的矩阵的一部分;
将所述经垂直变换的矩阵的一部分与针对所述视频数据矩阵的前一部分所获得的前一经变换的矩阵相加以获得当前经变换的矩阵,以最终获得所述经变换的矩阵。
8.如权利要求7所述的方法,其特征在于,所述将所述视频数据矩阵按照行分成多个部分是按照每一部分行对称的方式。
9.如权利要求8所述的方法,其特征在于,所述视频数据矩阵的每个部分由两行组成。
10.如权利要求8所述的方法,其特征在于,所述将所述离散余弦变换系数矩阵的一部分与所述经水平变换的矩阵的一部分相乘以获得经垂直变换的矩阵的一部分包括:
针对所述经水平变换的矩阵的一部分中的每一列:
在所述离散余弦变换系数矩阵的、将要与该列中的行对称的两个系数相乘的两个因子的符号相同的情况下,所述两个系数首先相加,再乘以两个因子中的任何一个;
在所述离散余弦变换系数矩阵的、将要与该列中的行对称的两个系数相乘的两个因子的符号不同的情况下,所述两个系数首先相减,再乘以两个因子中的对应被减数的因子。
11.如权利要求1所述的方法,其特征在于,所述利用所述转置矩阵的该部分和所述离散余弦变换系数矩阵对视频数据矩阵执行部分离散余弦变换包括:
将所述视频数据矩阵与所述转置矩阵的该部分相乘以获得经水平变换的矩阵;
对所述经水平变换的矩阵执行移位和饱和运算;
将所述离散余弦变换系数矩阵与所述经水平变换的矩阵相乘以获得经垂直变换的矩阵;以及
对所述经垂直变换的矩阵执行移位和饱和运算。
12.如权利要求1所述的方法,其特征在于,所述视频数据矩阵中的系数是帧内预测残差数据或运动预测残差数据。
13.一种用于视频编码的***,包括相互连接的第一电路和第二电路,
所述第一电路用于接收离散余弦变换系数矩阵、所述离散余弦变换系数矩阵的转置矩阵的一部分和视频数据矩阵并且利用所述转置矩阵的一部分和所述离散余弦变换系数矩阵对所述视频数据矩阵执行部分离散余弦变换操作以获得经变换的矩阵;
所述第二电路用于对所述经变换的矩阵执行量化、反量化和反离散余弦变换操作以获得经反变换的矩阵并且根据所述经反变换的矩阵和针对所述转置矩阵的前一部分所获得的前一视频重建矩阵获得当前视频重建矩阵,以最终获得视频重建矩阵,
其中,在所述第二电路针对所述转置矩阵的一部分执行量化、反量化和反离散余弦变换操作的同时,所述第一电路开始接收所述离散余弦变换系数矩阵、所述转置矩阵的下一部分和所述视频数据矩阵。
14.如权利要求13所述的***,其特征在于,所述第一电路包括一一对应地连接的多个加法器和多个乘法器,
对于所述多个加法器中的每一个加法器,该加法器用于接收所述视频数据矩阵的列对称的两个系数,并且在所述转置矩阵的、将要与所述两个系数相乘的两个因子的符号相同的情况下,将所述两个系数相加,在所述转置矩阵的、将要与所述两个系数相乘的两个因子的符号不同的情况下,将所述两个系数相减,以获得中间结果;
对应的乘法器用于在所述转置矩阵的、将要与所述两个系数相乘的两个因子的符号相同的情况下,将所述中间结果乘以两个因子中的任何一个,在所述转置矩阵的、将要与所述两个系数相乘的两个因子的符号不同的情况下,将所述中间结果乘以两个因子中的对应被减数的因子。
15.如权利要求13所述的***,其特征在于,所述第一电路包括相互连接的水平变换电路和垂直变换电路,
所述水平变换电路用于接收所述视频数据矩阵和所述转置矩阵的一部分并且根据所述视频数据矩阵和所述转置矩阵的一部分获得经水平变换的矩阵;
所述垂直变换电路包括一一对应地连接的多个加法器和多个乘法器,
对于所述多个加法器中的每一个加法器,该加法器用于接收所述经水平变换的矩阵的行对称的两个系数,并且在所述离散余弦变换系数矩阵的、将要与所述两个系数相乘的两个因子的符号相同的情况下,将所述两个系数相加,在所述离散余弦变换系数矩阵的、将要与所述两个系数相乘的两个因子的符号不同的情况下,将所述两个系数相减,以获得中间结果;
对应的乘法器用于在所述离散余弦变换系数矩阵的、将要与所述两个系数相乘的两个因子的符号相同的情况下,将所述中间结果乘以两个因子中的任何一个,在所述离散余弦变换系数矩阵的、将要与所述两个系数相乘的两个因子的符号不同的情况下,将所述中间结果乘以两个因子中的对应被减数的因子。
16.如权利要求13所述的***,其特征在于,所述第二电路包括顺次连接的量化电路、反量化电路、垂直反变换电路和水平反变换电路,
所述量化电路用于接收所述经变换的矩阵的一部分并且对所述经变换的矩阵的一部分执行量化操作以获得经量化的矩阵的一部分;
所述反量化电路用于对所述经量化的矩阵的一部分执行反量化操作以获得经反量化的矩阵的一部分;
所述垂直反变换电路用于利用所述转置矩阵对所述经反量化的矩阵的一部分执行垂直反离散余弦变换操作以获得经垂直反变换的矩阵的一部分并且根据针对所述经变换的矩阵的所有部分所获得的所述经垂直反变换的矩阵的所有部分获得所述经垂直反变换的矩阵;以及
所述水平反变换电路用于利用所述离散余弦变换系数矩阵对所述经垂直反变换的矩阵执行水平反离散余弦变换操作以获得所述经反变换的矩阵,
其中,在所述反量化电路对所述经量化的矩阵的一部分执行所述反量化操作的同时,所述量化电路开始针对所述经变换的矩阵的下一部分执行所述量化操作。
17.如权利要求13所述的***,其特征在于,所述第一电路包括相互连接的水平变换电路和垂直变换电路,
所述水平变换电路用于接收所述视频数据矩阵的一部分和所述转置矩阵的一部分并且根据所述视频数据矩阵的一部分和所述转置矩阵的一部分获得经水平变换的矩阵的一部分;
所述垂直变换电路包括一一对应地连接的多个乘法电路、多个寄存器和多个加法器,所述多个乘法电路用于接收与所述经水平变换的矩阵的一部分对应的所述离散余弦变换系数矩阵的一部分并且根据所述离散余弦变换系数矩阵的一部分和所述经水平变换的矩阵的一部分获得经垂直变换的矩阵的一部分;
所述多个加法器用于接收所述经垂直变换的矩阵的一部分和来自所述多个寄存器的、针对所述视频数据矩阵的前一部分所获得的前一经变换的矩阵并且根据所述经垂直变换的矩阵的一部分和所述前一经变换的矩阵获得当前经变换的矩阵;
所述多个寄存器用于存储所述当前经变换的矩阵。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310598478.4A CN104661036A (zh) | 2013-11-22 | 2013-11-22 | 用于视频编码的方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310598478.4A CN104661036A (zh) | 2013-11-22 | 2013-11-22 | 用于视频编码的方法和*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104661036A true CN104661036A (zh) | 2015-05-27 |
Family
ID=53251659
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310598478.4A Pending CN104661036A (zh) | 2013-11-22 | 2013-11-22 | 用于视频编码的方法和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104661036A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108462877A (zh) * | 2016-02-25 | 2018-08-28 | 联发科技股份有限公司 | 残差处理电路和相关的残差处理方法 |
WO2020057537A1 (zh) * | 2018-09-21 | 2020-03-26 | 华为技术有限公司 | 视频解码方法及视频解码器,视频编码方法及视频编码器 |
CN113761464A (zh) * | 2021-08-25 | 2021-12-07 | 安谋科技(中国)有限公司 | 数据处理方法、介质及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1169072C (zh) * | 1998-12-23 | 2004-09-29 | Lg情报通信株式会社 | 流水线离散余弦变换设备 |
US20080192985A1 (en) * | 2006-10-27 | 2008-08-14 | Yoshihisa Shimazu | Motion detection device, MOS (metal-oxide semiconductor) integrated circuit, and video system |
CN101383970A (zh) * | 2007-09-06 | 2009-03-11 | 北京中电华大电子设计有限责任公司 | 基于avs的并行流水的帧内预测器的实现方法 |
CN102595137A (zh) * | 2012-02-27 | 2012-07-18 | 上海交通大学 | 基于图像像素块行/列流水线的快速模式判决装置和方法 |
-
2013
- 2013-11-22 CN CN201310598478.4A patent/CN104661036A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1169072C (zh) * | 1998-12-23 | 2004-09-29 | Lg情报通信株式会社 | 流水线离散余弦变换设备 |
US20080192985A1 (en) * | 2006-10-27 | 2008-08-14 | Yoshihisa Shimazu | Motion detection device, MOS (metal-oxide semiconductor) integrated circuit, and video system |
CN101383970A (zh) * | 2007-09-06 | 2009-03-11 | 北京中电华大电子设计有限责任公司 | 基于avs的并行流水的帧内预测器的实现方法 |
CN102595137A (zh) * | 2012-02-27 | 2012-07-18 | 上海交通大学 | 基于图像像素块行/列流水线的快速模式判决装置和方法 |
Non-Patent Citations (1)
Title |
---|
马赫,张文军,高志勇,陈立: "基于图像行/列流水线的AVS快速模式判决的设计", 《电视技术》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108462877A (zh) * | 2016-02-25 | 2018-08-28 | 联发科技股份有限公司 | 残差处理电路和相关的残差处理方法 |
CN108462877B (zh) * | 2016-02-25 | 2020-11-13 | 联发科技股份有限公司 | 残差处理电路和相关的残差处理方法 |
WO2020057537A1 (zh) * | 2018-09-21 | 2020-03-26 | 华为技术有限公司 | 视频解码方法及视频解码器,视频编码方法及视频编码器 |
CN113761464A (zh) * | 2021-08-25 | 2021-12-07 | 安谋科技(中国)有限公司 | 数据处理方法、介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102740077B (zh) | 基于h.264/avc标准的帧内预测模式选择方法 | |
CN103636205A (zh) | 具有低延迟的用于残差编码的模式依赖变换 | |
CN111836050B (zh) | 一种视频编码中绝对变换差和的计算方法及装置 | |
Amish et al. | Fully pipelined real time hardware solution for high efficiency video coding (HEVC) intra prediction | |
CN110933445B (zh) | 一种基于系数矩阵变换的dct运算方法及其变换装置 | |
CN104661036A (zh) | 用于视频编码的方法和*** | |
CN104320668B (zh) | Hevc/h.265的dct变换和反变换的simd优化方法 | |
CN100413344C (zh) | 高并行度的帧内预测器的实现方法 | |
CN102595112B (zh) | 视频编码中编码和重建图像块的方法 | |
CN103092559B (zh) | 用于hevc标准下dct/idct电路的乘法器结构 | |
CN105100799A (zh) | 一种减少hevc编码器中帧内编码时延的方法 | |
CN100452880C (zh) | 一种用于视频编码的整数离散余弦变换方法 | |
KR101412964B1 (ko) | Hevc를 위한 저면적 고성능 다중모드 1d 변환블록 및 이를 이용한 데이터 처리방법 | |
CN102340659A (zh) | 一种基于avs的并行的模式决策装置和方法 | |
CN102625109B (zh) | 一种基于多核处理器实现的mpeg-2至h.264的转码方法 | |
Zhang et al. | SIMD acceleration for HEVC encoding on DSP | |
CN105227959A (zh) | 用于视频编码的多编码点混编流水方法及其装置 | |
CN104602026A (zh) | 一种适用于hevc标准下编码器中全复用的重建环路结构 | |
CN203279074U (zh) | 二维离散余弦变换/逆离散余弦变换电路 | |
CN101562744B (zh) | 二维反变换装置 | |
CN105407358B (zh) | 一种基于hevc的整数dct变换方法 | |
CN104363459A (zh) | 一种适用于hevc标准中帧内预测的参考像素的硬件填充方法 | |
CN101316367B (zh) | 一种视频编解码标准中的二维反变换方法及其实现电路 | |
KR101423083B1 (ko) | Hevc 복호기용 역변환기 설계 방법 | |
CN101742298B (zh) | 用于嵌入式实时解码器的虚拟小数逆离散余弦变换方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150527 |
|
WD01 | Invention patent application deemed withdrawn after publication |