視頻編/解碼器與其方法
2023-05-27 21:11:26 2
專利名稱:視頻編/解碼器與其方法
技術領域:
本發明有關於一種視頻編/解碼器與其方法。
背景技術:
某些多媒體應用,比如支持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日
發明者吳錦木, 塗英傑, 王耀興 申請人:晨星半導體股份有限公司, 晨星軟體研發(深圳)有限公司