专利名称:视频编/解码器与其方法
技术领域:
本发明有关于一种视频编/解码器与其方法。
背景技术:
某些多媒体应用,比如支持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 运算电路130:反量化单元135:缓冲器210:DCT 运算电路230:反量化单元250 修正单元242、246:修正单元245 列IDCT运算电路
具体实施例方式于本发明实施例中,将DCT运算电路所输出的行数据输入至行入列出式的IDCT运算电路(亦即IDCT运算电路为行入列出),所以,于IDCT运算电路之前不再需要额外的缓冲存储器。然而,由于位元数限制的关系,行入列出式的IDCT运算电路所运算出的结果会因为次序对换及舍位/进位运算而有些微误差。因此,于本发明实施例中,须预先计算此误差量,并修正。在数学理论上(位元数无限的情况下),IDCT运算电路不论是列入行出或是行入列出,其所得到的结果应该是相同。但在实际操作上,由于视频编/解码器的位元数有限, 如果进行进位/舍位运算的话,则行入列出式的IDCT运算电路所运算出的结果与列入行出式的IDCT运算电路的运算结果会有些微误差。图2显示根据本发明实施例的视频编/解码器的功能方块图。如图2所示,根据本发明实施例的视频编/解码器包括DCT运算电路210、量化单元220、反量化单元230、 IDCT运算电路240与修正单元250。修正单元250将修正项Δ导入至IDCT运算电路MO 的输出,以得到所需的正确结果。利用修正单元250,可对因次序对换所导致的进位/舍位不匹配进行即时修正,且此修正单元250的电路面积远小于缓冲器135的电路面积。在Η264规格中,二维QD)的IDCT转换定义为Y = T · X ·图3Α与图;3Β分别显示列入行出式(R — C) IDCT运算与行入列出式(C — R) IDCT 运算。Yt= (!" 1眷1"广且11眷圹眷铲=¥’。于位元数无限制的浮点运算中,Y’应该等于Y的置换结果才对。但是在位元数有限的设计中,如果转换矩阵T含有非整数系数(比如1/2)的话,在次序转换时,就必须考虑到小数舍去/进位(rounding)的效果。底下列出
120 量化单元 140 =IDCT运算电路
220 量化单元
240=IDCT运算电路
241行IDCT运算电路 243 置换存储器
5转换矩阵T含有非整数系数的情况
权利要求
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运算结果进行该二维修正项的修正,以产生该修正后二维运算结果。
全文摘要
本发明涉及一种视频编/解码方法,用以处理一视频数据,该视频数据经过一DCT运算。该方法包括(a)若一转换矩阵包含至少一非整数元素,则将该转换矩阵乘上一倍数α,使该转换矩阵的所有元素成为整数;(b)预估一修正系数;(c)根据该转换矩阵与该修正系数对该视频数据进行一行入列出式的IDCT二维运算,以得到一修正后二维运算结果;(d)若步骤(a)成立,则将该修正后二维运算结果除以α2,以得到一IDCT运算结果;以及(e)若步骤(a)不成立,则以该修正后二维运算结果作为该IDCT运算结果。
文档编号H04N7/30GK102348113SQ20101024086
公开日2012年2月8日 申请日期2010年7月22日 优先权日2010年7月22日
发明者吴锦木, 涂英杰, 王耀兴 申请人:晨星半导体股份有限公司, 晨星软件研发(深圳)有限公司