CN102348113B - 视频编/解码器与其方法 - Google Patents
视频编/解码器与其方法 Download PDFInfo
- Publication number
- CN102348113B CN102348113B CN 201010240861 CN201010240861A CN102348113B CN 102348113 B CN102348113 B CN 102348113B CN 201010240861 CN201010240861 CN 201010240861 CN 201010240861 A CN201010240861 A CN 201010240861A CN 102348113 B CN102348113 B CN 102348113B
- Authority
- CN
- China
- Prior art keywords
- idct
- operation result
- correction
- row
- computing
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明涉及一种视频编/解码方法,用以处理一视频数据,该视频数据经过一DCT运算。该方法包括:(a)若一转换矩阵包含至少一非整数元素,则将该转换矩阵乘上一倍数α,使该转换矩阵的所有元素成为整数;(b)预估一修正系数;(c)根据该转换矩阵与该修正系数对该视频数据进行一行入列出式的IDCT二维运算,以得到一修正后二维运算结果;(d)若步骤(a)成立,则将该修正后二维运算结果除以α2,以得到一IDCT运算结果;以及(e)若步骤(a)不成立,则以该修正后二维运算结果作为该IDCT运算结果。
Description
技术领域
本发明有关于一种视频编/解码器与其方法。
背景技术
某些多媒体应用,比如支持H264规格的视频编/解码器,其传统架构如图1所示,包含离散余弦转换(Discrete Cosine Transformation,DCT)运算电路110、量化(Quantization,Q)单元120、反量化(inverse quantization,IQ)单元130以及反离散余弦转换(inverse DCT,IDCT)运算电路140。DCT运算电路110为列入行出(Row in Column out,R→C);IDCT运算电路140也是列入行出,且接收反量化单元130的输出。
在实作上,以目前来说,必须让DCT运算电路110与IDCT运算电路140依照规格内容操作,否则在编码路径与解码路径之间会彼此不配合,导致视频播放过程中出现“漂移(drifting)”。然而,在某些情况下,IDCT运算电路140的列入行出式运算于数据流中并非直觉式处理,故而,需要进行置换(transpose)。此外,已知技术还需要缓冲器135来暂存数据,以将DCT运算电路110所输出的行数据转换成列数据,以输入至IDCT运算电路140。这会导致视频编/解码器的处理时间或处理成本提高。
因此,需要有一种IDCT架构,其以行入列出(Column in Row out,C→R)式处理且进行即时修正,故其不需额外的缓冲器来暂存数据,以降低视频编/解码器的处理时间或处理成本。
发明内容
本发明的实施例有关于一种视频编/解码器与其方法,其目的是能以行入列出式进行IDCT但仍能即时进行修正。
本发明的一实施例提出一种视频编/解码方法,用以处理一视频数据,该视频数据经过一DCT运算。该方法包括:(a)若一转换矩阵包含至少一非整数元素,则将该转换矩阵乘上一倍数α,使该转换矩阵的所有元素成为整数;(b)预估一修正系数;(c)根据该转换矩阵与该修正系数对该视频数据进行一行入列出式的IDCT二维运算,以得到一修正后二维运算结果;(d)若步骤(a)成立,则将该修正后二维运算结果除以α2,以得到一IDCT运算结果;以及(e)若步骤(a)不成立,则以该修正后二维运算结果作为该IDCT运算结果。
本发明的另一实施例提出一种视频编/解码器,用以处理一视频数据,该视频数据系经过一DCT运算,该视频编/解码器包括:一DCT运算电路,用以对该视频数据进行一列入行出的DCT运算,以产生一DCT运算结果;一量化运算电路与一反量化运算电路,耦接至该DCT运算电路,用以对该DCT运算结果进行量化运算与反量化运算;一IDCT运算电路,耦接至该反量化单元,用以对该反量化运算电路的输出进行一行入列出的IDCT运算;以及一修正电路,耦接至该IDCT运算电路,用以将一修正系数导入至该IDCT运算电路而得到一IDCT运算结果。
为让本发明的上述内容能更明显易懂,下文特举实施例,并配合附图,作详细说明如下:
附图说明
图1显示了支持H264规格的已知视频编解码器。
图2显示了根据本发明实施例的视频编/解码器。
图3A与图3B分别显示列入行出式IDCT运算与行入列出式IDCT运算。
图4显示出,以矩阵Xt为输入矩阵,IDCT运算电路与修正单元的运算所得的结果。
图5A与图5B分别显示了根据本发明实施例的IDCT运算电路的2种可能实施方式。
主要元件符号说明
110:DCT运算电路 120:量化单元
130:反量化单元 140:IDCT运算电路
135:缓冲器
210:DCT运算电路 220:量化单元
230:反量化单元 240:IDCT运算电路
250:修正单元 241:行IDCT运算电路
242、246:修正单元 243:置换存储器
245:列IDCT运算电路
具体实施方式
于本发明实施例中,将DCT运算电路所输出的行数据输入至行入列出式的IDCT运算电路(亦即IDCT运算电路为行入列出),所以,于IDCT运算电路之前不再需要额外的缓冲存储器。然而,由于位元数限制的关系,行入列出式的IDCT运算电路所运算出的结果会因为次序对换及舍位/进位运算而有些微误差。因此,于本发明实施例中,须预先计算此误差量,并修正。
在数学理论上(位元数无限的情况下),IDCT运算电路不论是列入行出或是行入列出,其所得到的结果应该是相同。但在实际操作上,由于视频编/解码器的位元数有限,如果进行进位/舍位运算的话,则行入列出式的IDCT运算电路所运算出的结果与列入行出式的IDCT运算电路的运算结果会有些微误差。
图2显示根据本发明实施例的视频编/解码器的功能方块图。如图2所示,根据本发明实施例的视频编/解码器包括:DCT运算电路210、量化单元220、反量化单元230、IDCT运算电路240与修正单元250。修正单元250将修正项Δ导入至IDCT运算电路240的输出,以得到所需的正确结果。利用修正单元250,可对因次序对换所导致的进位/舍位不匹配进行即时修正,且此修正单元250的电路面积远小于缓冲器135的电路面积。
在H264规格中,二维(2D)的IDCT转换定义为:Y=T●X●Tt。
图3A与图3B分别显示列入行出式(R→C)IDCT运算与行入列出式(C→R)IDCT运算。Yt=(T●X●Tt)t且T●Xt●Tt=Y’。于位元数无限制的浮点运算中,Y’应该等于Y的置换结果才对。但是在位元数有限的设计中,如果转换矩阵T含有非整数系数(比如1/2)的话,在次序转换时,就必须考虑到小数舍去/进位(rounding)的效果。底下列出转换矩阵T含有非整数系数的情况:
在这种情况下,Y’不等于Y的置换结果((Y’!=Yt)),也就是说,图3A中的Y的置换结果不等于图3B中的Y’。
因此,在本实施例中,当将矩阵输入次序由X换成Xt时,要进行下列步骤来修正误差。
(1)首先,将转换矩阵的非整数系数变成整数系数,比如,于上例中,将转换矩阵T乘上2,则所得到矩阵(2T)的系数皆为整数。由于矩阵不含有非整数系数,所以即便进行小数进位/舍位运算时,也不会有误差出现。以图3A与图3B而言,
Z=(2T)●X●(2T)t
Z’=(2T)●Xt●(2T)t
且Z=(Z’)t
(2)由于位元数有限,因此,于本实施例中,根据置换对称性(transposesymmetry)与进位/舍位操作原则来预先计算出修正项Δ。所以,修正后的结果Y”=(Z’+Δ)/4。
(3)修正后结果Y”可视为矩阵Y的置换结果,如同对X进行2维转换后的结果(也就是说,如同IDCT运算电路以列入行出方式所得到的结果)。所以,Y与Y”可表示为:Y=(Y”)t。
底下将说明如何求得修正项Δ。
在固定点数(fixed-point)设计中,将数字X往右位移1位元的结果(也就是将此数字除以2,假设X表示成2进位的话)其实等同于将此数字减去其最小位元(Least Significant Bit,LSB)之后再除以2所得的结果。如果写成等式的话,则可表示为底下的等式(a):
X>>1=1/2X=1/2(X-X[0])............................................(a)
其中,符号“X>>1”代表将X往右位移1位元,X[0]代表X的LSB。
在H264中,列入行出式IDCT的2维转换定义为:
Y=T●X●Tt
行入列出式IDCT的2维转换则定义为:
Y’=T●Xt●Tt
以上面的例子来看,在H264中,以矩阵Y的系数Y01为例,
在上式中,分别标示出代表1D(1维)的修正项与代表2D(2维)的修正项。如果表示成数学式的话,则Y01可表示为:
Y01=x00+x10+x20+1/2x30
+(x01+x11+x21+1/2x31)(1/2)
+(x02+x12+x22+1/2x32)(-1)
+(x03+x13+x23+1/2x33)(-1)
将等式(a)代入至Y01的1D修正项(亦即,1/2X30,1/2X31,1/2X32,1/2X33)后,Y01可表示为式子(b)~(e)的组合:
Y01=x00+x10+x20+1/2[x30-x30[0]] (b)
+(x01+x11+x21+1/2[x31-x31[0]])(1/2) (c)
+(x02+x12+x22+1/2[x32-x32[0]])(-1) (d)
+(x03+x13+x23+1/2[x33-x33[0]])(-1) (e)
如将等式(a)代入式子(c),且将等式(c)的2D修正项(X01+X11+X21+(1/2)X31)的LSB简化成X01[0]^X11[0]^X21[0]^X31[1],则Y01可表示如下:
Y01=x00+x10+x20+1/2[x30-x30[0]]
+(x01+x11+x21+1/2[x31-x31[0]]-x01[0]^x11[0]^x21[0]^x31[1])(1/2) (f)
+(x02+x12+x22+1/2[x32-x32[0]])(-1)
+(x03+x13+x23+1/2[x33-x33[0]])(-1)
由于定义Z为Z=(2T)●X●(2T)t,Z将不会有进位/舍位效应,因转换矩阵(2T)已没有非整数系数。
矩阵Z的系数Z01可表示为:
Z01=4x00+4x10+4x20+2x30
+2x01+2x11+2x21+x31
-4x02-4x12-4x22-2x32
-4x03-4x13-4x23-2x33
由于Z’定义为Z’=(2T)●Xt●(2T)t,Z’也没有进位/舍位效应,因为转换矩阵2T不具有非整数系数。
经由比较可得知,Z’10等于Z01,亦即,Z’=Zt。
Z’10=4x00+4x10+4x20+2x30
+2x01+2x11+2x21+x31
-4x02-4x12-4x22-2x32
-4x03-4x13-4x23-2x33
=Z01
将矩阵Y放大4倍后,Y10与Z’10之间的关系可表示为:
在上式中,(-2X30[0]-X31[0]+2X32[0]+2X33[0])代表1维修正项,而(-2X01[0]^X11[0]^X21[0]^X31[0])代表2维修正项。
如上述般,对于矩阵Xt,为了修正次序转换(亦即,将IDCT由列入行出改为行入列出)所造成的不匹配,可利用下列方式来修正之。
(1)将转换矩阵的非整数系数变成整数系数,比如,于上例中,将转换矩阵乘上2。所得到转换矩阵的系数皆为整数,所以即便进行小数进位/舍位运算时,也不会有误差出现。
Z=(2T)●X●(2T)t
Z’=(2T)●Xt●(2T)t
且Z=(Z’)t
(2)由于位元数有限,根据置换对称性与进位/舍位操作原则来预先计算出修正系数Δ。所以,修正后的结果Y”=(Z’+Δ)/4。
(3)修正后结果Y”可视为矩阵Y的置换结果,如同对X进行2维转换后的结果(也就是说,如同IDCT运算电路以列入行出方式所得到的结果)。所以,Y与Y”可表示为:Y=(Y”)t。亦即,Y=(Z’+Δ_1D+Δ_2D)t/4=(Z’+Δ)t/4,其中,Δ_1D代表1维修正项而Δ_2D代表2维修正项。
如果以图示表示的话,则如图4所示。图4显示出,以矩阵Xt为输入矩阵,IDCT运算电路进行Z’=(2T)●Xt●(2T)t的运算,以得到Z’。之后,经过修正(加入Δ及除以4)及进行置换,则可得到矩阵Y。也就是说,Y=((Z’+Δ)/4)t,此操作由修正单元进行。
经由上述推导过程,可得知1维修正项(可称为Δ_1D或1D-term)与2维修正项(可称为Δ_2D或2D-term)分别表示如下:
1D-term00=-2x30[0]-2x31[0]-2x32[0]-x33[0]
1D-term10=-2x30[0]-x31[0]+2x32[0]+2x33[0]
1D-term20=-2x30[0]+x31[0]+2x32[0]-2x33[0]
1D-term30=-2x30[0]+2x31[0]-2x32[0]+x33[0]
…
…
…
…
2D-term00=-2x03[0]^x13[0]^x23[0]^x33[1]
2D-term10=-2x01[0]^x11[0]^x21[0]^x31[1]
2D-term20=+2x01[0]^x11[0]^x21[0]^x31[1]
2D-term30=+2x03[0]^x13[0]^x23[0]^x33[1]
…
…
…
…
图5A与图5B分别显示根据本发明实施例的IDCT运算电路240的2种可能实施方式。在图5A中,修正单元242对行IDCT运算电路241的输出结果进行1维修正项的修正,且修正单元246对列IDCT运算电路245的输出结果进行2维修正项的修正,置换存储器243位于行IDCT运算电路241与列IDCT运算电路245之间。由上述说明,熟悉本技术领域者当可知行IDCT运算电路241与列IDCT运算电路245的详细操作为何,故其细节于此不重述。
如图5B所示,修正单元250对列IDCT运算电路245的输出结果直接进行1维修正项与2维修正项的修正。上述等式所列出的1D-term与2D-term可代表第5B图中的1维修正项与2维修正项。至于图5A中的1维修正项Δ_1D与2维修正项Δ_2D,熟悉本技术领域者当可由上述说明而推导出。
虽然本发明实施例以上述方式来求得修正,但其他种规格可能应用不同的转换矩阵。根据本发明实施例的上述说明,对于其他不同规格与其他不同的转换矩阵,本发明实施例仍可应用。比如,将转换矩阵的所有非整数系数处理成整数系数(比如放大),以避免在固定点数计算中所出现的不匹配。接着,根据进位/舍位操作原理与置换原理,将修正项导入至矩阵的系数中。之后,将所得结果进行缩小后所得到的矩阵再进行置换即可相当于所需的正确结果。
另外,虽然上述实施例以对转换矩阵乘上2为例做说明,但本发明并不受限于此。在本发明其他可能实施例中,先将转换矩阵的各系数乘上α,使各系数皆为整数。之后,再对运算结果除法α2。
综上所述,虽然本发明已以实施例揭示如上,然其并非用以限定本发明。本发明所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰。因此,本发明的保护范围当由权利要求书界定。
Claims (6)
1.一种视频编/解码方法,用以处理一视频数据,该视频数据系经过一DCT运算,该方法包括:
(a)若一转换矩阵包含至少一非整数元素,则将该转换矩阵乘上一倍数α,使该转换矩阵的所有元素成为整数;
(b)预估一修正项;
(c)根据该转换矩阵与该修正项对该视频数据进行一行入列出式的IDCT二维运算,以得到一修正后二维运算结果;
(d)若步骤(a)中转换矩阵包含至少一非整数元素,则将该修正后二维运算结果除以α2,以得到一IDCT运算结果;以及
(e)若步骤(a)中转换矩阵不包含非整数元素,则以该修正后二维运算结果作为该IDCT运算结果。
2.如权利要求1所述的方法,其特征在于中,该修正项包括一一维修正项与一二维修正项,该步骤(c)包括:
仅根据该转换矩阵而不根据该修正项,以进行该行入列出式的IDCT二维运算,以产生一未修正的二维运算结果;以及
对该未修正的二维运算结果直接进行该一维修正项与该二维修正项的修正,以得到该修正后二维运算结果。
3.如权利要求1所述的方法,其特征在于,该修正项包括一一维修正项与一二维修正项,该步骤(c)包括:
对该视频数据进行一行IDCT运算以产生一行IDCT运算结果;
对该行IDCT运算结果进行该一维修正项的修正,以产生一修正后行IDCT运算结果;
对该修正后行IDCT运算结果进行一列IDCT运算以产生一列IDCT运算结果;以及
对该列IDCT运算结果进行该二维修正项的修正,以产生该修正后二维运算结果。
4.一种视频编/解码器,用以处理一视频数据,该视频数据经过一DCT运算,该视频编/解码器包括:
一DCT运算电路,用以对该视频数据进行一列入行出的DCT运算,以产生一DCT运算结果;
一量化运算电路与一反量化运算电路,耦接至该DCT运算电路,用以对该DCT运算结果进行量化运算与反量化运算;
一IDCT运算电路,耦接至该反量化运算电路,用以对该反量化运算电路的输出进行一行入列出的IDCT运算;以及
一修正电路,耦接至该IDCT运算电路,用以将一修正项导入至该IDCT运算电路而得到一IDCT运算结果。
5.如权利要求4所述的视频编/解码器,其特征在于,该修正项包括一一维修正项与一二维修正项,该修正电路对该IDCT运算电路的输出直接进行该一维修正项与该二维修正项的修正,以得到该IDCT运算结果。
6.如权利要求4所述的视频编/解码器,其特征在于,该IDCT运算电路包含一行IDCT运算单元与一列IDCT运算单元,该修正电路包含第一修正单元与第二修正单元,该修正项包括一一维修正项与一二维修正项,其中,
该行IDCT运算单元对该视频数据进行一行IDCT运算以产生一行IDCT运算结果;
该第一修正单元耦接于该行IDCT运算单元,对该行IDCT运算结果进行该一维修正项的修正,以产生一修正后行IDCT运算结果;
该列IDCT运算单元对该修正后行IDCT运算结果进行一列IDCT运算以产生一列IDCT运算结果;
该第二修正单元耦接于该列IDCT运算单元,对该列IDCT运算结果进行该二维修正项的修正,以产生该修正后二维运算结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010240861 CN102348113B (zh) | 2010-07-22 | 2010-07-22 | 视频编/解码器与其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010240861 CN102348113B (zh) | 2010-07-22 | 2010-07-22 | 视频编/解码器与其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102348113A CN102348113A (zh) | 2012-02-08 |
CN102348113B true CN102348113B (zh) | 2013-07-03 |
Family
ID=45546347
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010240861 Expired - Fee Related CN102348113B (zh) | 2010-07-22 | 2010-07-22 | 视频编/解码器与其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102348113B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1142162A (zh) * | 1995-01-28 | 1997-02-05 | 大宇电子株式会社 | 二维逆离散余弦变换电路 |
CN1315023A (zh) * | 1998-08-13 | 2001-09-26 | 赤道技术公司 | 在图像处理期间执行二维变换的电路和方法 |
US6799192B1 (en) * | 2001-01-09 | 2004-09-28 | Apple Computer, Inc. | Method and apparatus for inverse discrete cosine transform |
US6907438B1 (en) * | 2001-02-01 | 2005-06-14 | Advanced Micro Devices, Inc. | Two-dimensional inverse discrete cosine transform using SIMD instructions |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100451731B1 (ko) * | 2001-12-18 | 2004-10-08 | 엘지전자 주식회사 | 역 이산 코사인 변환 장치 |
-
2010
- 2010-07-22 CN CN 201010240861 patent/CN102348113B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1142162A (zh) * | 1995-01-28 | 1997-02-05 | 大宇电子株式会社 | 二维逆离散余弦变换电路 |
CN1315023A (zh) * | 1998-08-13 | 2001-09-26 | 赤道技术公司 | 在图像处理期间执行二维变换的电路和方法 |
US6799192B1 (en) * | 2001-01-09 | 2004-09-28 | Apple Computer, Inc. | Method and apparatus for inverse discrete cosine transform |
US6907438B1 (en) * | 2001-02-01 | 2005-06-14 | Advanced Micro Devices, Inc. | Two-dimensional inverse discrete cosine transform using SIMD instructions |
Also Published As
Publication number | Publication date |
---|---|
CN102348113A (zh) | 2012-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4311759B2 (ja) | データ変換装置及びその制御方法 | |
JP3964925B2 (ja) | イメージおよびビデオコード化方法 | |
CN100412907C (zh) | 视频编码的低复杂性和统一标准的变换 | |
CN100562111C (zh) | 离散余弦逆变换方法及其装置 | |
CN102016829A (zh) | 计算逆向离散余弦变换期间的误差减少 | |
US8335811B2 (en) | Method and system for high fidelity IDCT and DCT algorithms | |
TWI415474B (zh) | 視訊編/解碼器與其方法 | |
JP2004038451A (ja) | アダマール変換処理方法及びその装置 | |
CN106254883B (zh) | 一种视频解码中的反变换方法和装置 | |
US20010033617A1 (en) | Image processing device | |
US5742529A (en) | Method and an apparatus for providing the absolute difference of unsigned values | |
CN102348113B (zh) | 视频编/解码器与其方法 | |
US9838704B2 (en) | Method and apparatus for decoding video | |
CA2698269C (en) | Fast computation of products by dyadic fractions with sign-symmetric rounding errors | |
KR20050085669A (ko) | 정밀-입도 스케일러블(fgs) 비디오 스트림의 비트-평면디코딩 시스템 및 방법 | |
JP4933405B2 (ja) | データ変換装置及びその制御方法 | |
JP4405452B2 (ja) | 逆変換回路 | |
US20110157190A1 (en) | Fast integer dct method on multi-core processor | |
JPWO2006126377A1 (ja) | 行列演算装置 | |
KR100465156B1 (ko) | 분산산술처리방식의 dct/idct 연산기에 있어서연산오차 및 연산시간 감소방법 | |
CN115714865A (zh) | 视频编解码处理方法、装置、设备及存储介质 | |
Wang et al. | Hardware implementation of transform and quantization for AVS encoder | |
CN101001378A (zh) | 快速离散余弦变换和快速逆向离散余弦变换方法及其装置 | |
JP2010165179A (ja) | 半導体装置 | |
JP2004328480A (ja) | 逆量子化回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130703 Termination date: 20190722 |