TW201711475A - 哥倫布-萊斯編碼電路與解碼電路 - Google Patents
哥倫布-萊斯編碼電路與解碼電路 Download PDFInfo
- Publication number
- TW201711475A TW201711475A TW104128954A TW104128954A TW201711475A TW 201711475 A TW201711475 A TW 201711475A TW 104128954 A TW104128954 A TW 104128954A TW 104128954 A TW104128954 A TW 104128954A TW 201711475 A TW201711475 A TW 201711475A
- Authority
- TW
- Taiwan
- Prior art keywords
- variable
- decoding
- columbus
- encoding
- parameter
- Prior art date
Links
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本發明為一種哥倫布-萊斯編碼電路與解碼電路,其分別包含一哥倫布-萊斯編碼單元與一哥倫布-萊斯解碼單元,而分別依據一編碼參數與一解碼參數進行哥倫布-萊斯編碼與哥倫布-萊斯解碼。本發明之編碼電路與解碼電路皆包含一參數更新單元,而依據兩變數動態更新編碼參數與解碼參數,以提高哥倫布-萊斯編碼電路與解碼電路之效率。此外,編碼電路與解碼電路更新參數的方式與依據皆相同,且解碼電路可以取得更新參數所依據的變數,而相同於編碼電路的更新依據,因此編碼電路不需傳輸更新之編碼參數至解碼電路,如此可節省傳輸資料的位元數。
Description
本發明為關於哥倫布-萊斯編解碼,尤其是指一種可自動動態更新進行哥倫布-萊斯編解碼所需要之參數的編碼電路與解碼電路。
現今科技蓬勃發展,為符合各種電子裝置需求,影像處理技術也隨之提升。一般民眾普遍期望影像之品質越高越好,惟影像品質越高,檔案越大,佔用電子裝置之儲存容量亦越大,且電子裝置處理影像資料時,容易產生傳輸速度緩慢以及耗電量過大之問題。因此,為解決此類問題,用於影像處理之壓縮技術即格外重要。
於影像壓縮技術中,經常會運用編碼電路以對資料進行編碼。哥倫布-萊斯(Golomb-Rice)編碼電路與解碼電路是編解碼常用的一種電路架構,例如在差分脈衝編碼調變(Differential pulse-code modulation,DPCM)壓縮架構。哥倫布-萊斯編碼電路是依據一編碼參數對輸入資料進行哥倫布-萊斯編碼。此編碼參數會影響編碼電路對輸入資料編碼後所產生之編碼資料的資料長度,也就是此編碼參數會影響編碼效率。現有之哥倫布-萊斯編碼電路決定編碼參數的機制都較為複雜,如此電路之復雜度也較高。
此外,解碼電路對編碼資料進行解碼時,同樣必須依據一解碼參數進行解碼,此解碼參數同於編碼電路之編碼參數。因此,於現有技術中,編碼電路傳輸編碼資料時,亦會傳輸編碼參數,以供解碼電路以編碼參數作為解碼參數而對編碼資料進行解碼。此方式即會提高編碼電路傳輸資料的位元數,且會佔用儲存編碼資料之記憶體的空間。
綜合以上所述之問題,本發明提供一種哥倫布-萊斯編碼電路與解碼電路,其可運用簡單機制自動動態更新進行哥倫布-萊斯編解碼所需要之參數,所以可提高進行哥倫布-萊斯編解碼之效率,另外編碼電路不需要傳輸更新後之編碼參數至解碼電路,而節省傳輸資料的位元數。
本發明之主要目的在於提供一種哥倫布-萊斯編碼電路與解碼電路,其分別具有一編碼參數更新單元與一解碼參數更新單元,以動態更新編碼電路所需之編碼參數與解碼電路所需之解碼參數,如此可提高進行哥倫布-萊斯編解碼之效率。
本發明之另一目的在於提供一種哥倫布-萊斯編碼電路與解碼電路,兩者動態更新編碼參數與解碼參數之方式與依據皆相同,且解碼電路可以取得更新解碼參數所依據的變數,而相同於編碼電路更新編碼參數所依據的變數,因此編碼電路不需要傳輸更新之編碼參數至解碼電路,如此可以節省編碼電路傳輸之資料的位元數。
本發明提供一種哥倫布-萊斯編碼電路,其包含一哥倫布-萊斯編碼單元與一編碼參數更新單元。該哥倫布-萊斯編碼單元依序接收複數輸入資料,並依據一編碼參數依序對該些輸入資料進行一哥倫布-萊斯編碼,以產生複數編碼資料,並輸出一第一變數與一第二變數。該編碼參數更新單元依據該第一變數與該第二變數更新該編碼參數。
本發明提供另一種哥倫布-萊斯編碼電路,其包含一哥倫布-萊斯編碼單元、一第一運算單元、一第二運算單元與一編碼參數更新單元。該哥倫布-萊斯編碼單元依序接收複數輸入資料,並依據一編碼參數依序對該些輸入資料進行一哥倫布-萊斯編碼,以產生複數編碼資料。該第一運算單元接收該些輸入資料,並平均運算該些輸入資料,以獲得一輸入平均資料。該第二運算單元接收該輸入平均資料,並依據該編碼參數運算該輸入平均資料,而輸出一第一變數與一第二變數。該編碼參數更新單元依據該第一變數與該第二變數更新該編碼參數。
本發明提供一種哥倫布-萊斯解碼電路,其包含一哥倫布-萊斯解碼單元與一解碼參數更新單元。該哥倫布-萊斯解碼單元依序接收複數編碼資料,並依據一解碼參數依序對該些編碼資料進行一哥倫布-萊斯解碼,以產生複數輸出資料,並輸出一第一變數與一第二變數。該解碼參數更新單元依據該第一變數與該第二變數更新該解碼參數。
本發明提供另一種哥倫布-萊斯解碼電路,其包含一哥倫布-萊斯解碼單元、一第一運算單元、一第二運算單元與一解碼參數更新單元。該哥倫布-萊斯解碼單元依序接收複數編碼資料,並依據一解碼參數依序對該些編碼資料進行一哥倫布-萊斯解碼,以產生複數輸出資料。該第一運算單元接收該些輸出資料,並平均運算該些輸出資料,以獲得一輸出平均資料。該第二運算單元接收該輸出平均資料,並依據該解碼參數運算該輸出平均資料,而輸出一第一變數與一第二變數。該解碼參數更新單元依據該第一變數與該第二變數更新該解碼參數。
10‧‧‧影像壓縮電路
11‧‧‧預測器
12‧‧‧第一運算器
13‧‧‧量化器
14‧‧‧編碼電路
141‧‧‧哥倫布-萊斯編碼單元
143‧‧‧編碼參數更新單元
145‧‧‧暫存器
147‧‧‧第一運算單元
149‧‧‧第二運算單元
15‧‧‧反量化器
16‧‧‧第二運算器
20‧‧‧影像解壓縮電路
21‧‧‧解碼電路
211‧‧‧哥倫布-萊斯解碼單元
213‧‧‧解碼參數更新單元
215‧‧‧暫存器
217‧‧‧第一運算單元
219‧‧‧第二運算單元
22‧‧‧反量化器
23‧‧‧預測器
24‧‧‧運算器
30‧‧‧儲存單元
din‧‧‧輸入資料
din_avg‧‧‧輸入平均資料
dn‧‧‧差值
dn_dq‧‧‧反量化值
dn_q‧‧‧量化值
dout‧‧‧輸出資料
dout_avg‧‧‧輸出平均資料
kc‧‧‧編碼參數
kd‧‧‧解碼參數
Pn‧‧‧預測值
q‧‧‧第一變數
qavg‧‧‧第一變數
r‧‧‧第二變數
ravg‧‧‧第二變數
Sn‧‧‧編碼資料
Xn‧‧‧畫素
Xn_q‧‧‧解碼資料
11‧‧‧預測器
12‧‧‧第一運算器
13‧‧‧量化器
14‧‧‧編碼電路
141‧‧‧哥倫布-萊斯編碼單元
143‧‧‧編碼參數更新單元
145‧‧‧暫存器
147‧‧‧第一運算單元
149‧‧‧第二運算單元
15‧‧‧反量化器
16‧‧‧第二運算器
20‧‧‧影像解壓縮電路
21‧‧‧解碼電路
211‧‧‧哥倫布-萊斯解碼單元
213‧‧‧解碼參數更新單元
215‧‧‧暫存器
217‧‧‧第一運算單元
219‧‧‧第二運算單元
22‧‧‧反量化器
23‧‧‧預測器
24‧‧‧運算器
30‧‧‧儲存單元
din‧‧‧輸入資料
din_avg‧‧‧輸入平均資料
dn‧‧‧差值
dn_dq‧‧‧反量化值
dn_q‧‧‧量化值
dout‧‧‧輸出資料
dout_avg‧‧‧輸出平均資料
kc‧‧‧編碼參數
kd‧‧‧解碼參數
Pn‧‧‧預測值
q‧‧‧第一變數
qavg‧‧‧第一變數
r‧‧‧第二變數
ravg‧‧‧第二變數
Sn‧‧‧編碼資料
Xn‧‧‧畫素
Xn_q‧‧‧解碼資料
第一圖:其為本發明之影像壓縮電路與影像解壓縮電路之一實施例的方塊圖;
第二圖:其為本發明之哥倫布-萊斯編碼電路之一實施例的方塊圖;
第三圖:其為本發明之哥倫布-萊斯編碼之一實施例的對照圖;
第四圖:其為本發明更新編碼參數之一實施例的流程圖;
第五圖:其為本發明之哥倫布-萊斯解碼電路之一實施例的方塊圖;
第六圖:其為本發明之哥倫布-萊斯編碼電路之另一實施例的方塊圖;以及
第七圖:其為本發明之哥倫布-萊斯解碼電路之另一實施例的方塊圖。
在說明書及後續的申請專利範圍當中使用了某些詞彙來指稱特定的元件。所屬領域中具有通常知識者應可理解,硬體製造商可能會用不同的名詞來稱呼同一個元件。本說明書及後續的申請專利範圍並不以名稱的差異來作為區分元件的方式,而是以元件在功能上的差異來作為區分的準則。在通篇說明書及後續的請求項當中所提及的「包含」係為一開放式的用語,故應解釋成「包含但不限定於」。以外,「耦接」一詞在此係包含任何直接及間接的電氣連接手段。因此,若文中描述一第一裝置耦接於一第二裝置,則代表該第一裝置可直接電氣連接於該第二裝置,或透過其他裝置或連接手段間接地電氣連接至該第二裝置。
為使 貴審查委員對本發明之特徵及所達成之功效有更進一步之瞭解與認識,謹佐以實施例及配合詳細之說明,說明如後:
請參閱第一圖,其為本發明之影像壓縮電路與影像解壓縮電路之一實施例的方塊圖。於此實施例中,影像壓縮電路10與影像解壓縮電路20為差分脈衝編碼調變(Differential pulse-code modulation,DPCM)架構。如圖所示,影像壓縮電路10包含有一預測器11、一第一運算器12、一量化器13(quantizer)、一編碼電路14、一反量化器15(de-quantizer)與一第二運算器16。影像解壓縮電路20包含有一解碼電路21、一反量化器22、一預測器23與一運算器24。
影像壓縮電路10依序接收一影像資料之複數畫素Xn,以對影像資料進行編碼,而依序產生複數編碼資料Sn。上述之影像資料之該些畫素Xn用於顯示影像。影像壓縮電路10耦接一儲存單元30,並傳送該些編碼資料Sn至儲存單元30,該些編碼資料Sn儲存於儲存單元30。影像解壓縮電路20耦接儲存單元30,以讀取該些編碼資料Sn,並依序對該些編碼資料Sn進行解碼,以依序產生複數解碼資料Xn_q。影像解壓縮電路20傳送該些解碼資料Xn_q至一影像顯示裝置(圖未示),以顯示影像。於本發明之一實施例中,影像顯示裝置為行動電話。
影像壓縮電路10之預測器11用於預測影像資料之每一畫素Xn之值,而依序輸出複數預測值Pn。預測值Pn與畫素Xn之值傳輸至第一運算器12,而計算出預測值Pn與畫素Xn之值的差值dn。量化器13耦接第一運算器12,而依序接收該些差值dn,並對該些差值dn進行量化處理,以依序產生複數量化值dn_q。編碼電路14耦接量化器13,而依序接收該些量化值dn_q,並對該些量化值dn_q進行編碼,以依序產生該些編碼資料Sn。於本發明之一實施例中,編碼電路14為一熵編碼器(entropy encoder)。本發明採用之熵編碼器為哥倫布-萊斯編碼(Golomb-Rice Coding)電路,其詳細運作與編碼方式將會於後作詳細說明。編碼電路14耦接儲存單元30,以傳送該些編碼資料Sn至儲存單元30。反量化器15耦接量化器13,而接收該些量化值dn_q,並對該些量化值dn_q進行反量化處理,以依序產生複數反量化值dn_dq。
第二運算器16耦接反量化器15與預測器11,以接收反量化值dn_dq與預測值Pn,而加總反量化值dn_dq與預測值Pn,以輸出一總合值,此總合值為一畫素輸出值且同於影像解壓縮電路20解碼編碼資料Sn所產生之解碼資料Xn_q。第二運算器16傳送畫素輸出值至預測器11。預測器11依據接收之畫素輸出值預測下一個畫素Xn之值,而輸出預測值Pn。
影像解壓縮電路20之解碼電路21耦接儲存單元30,而依序讀取編碼資料Sn,並對編碼資料Sn進行解碼,解碼電路21所產生之資料相同於編碼電路14編碼前的量化值dn_q。於本發明之一實施例中,解碼電路21為一熵解碼器(entropy decoder)。本發明採用之熵解碼器為哥倫布-萊斯解碼(Golomb-Rice Decoding)電路,其詳細運作與解碼方式將會於後作詳細說明。反量化器22耦接解碼電路21,而接收解碼電路21輸出之量化值dn_q,並對量化值dn_q進行反量化。於本發明之一實施例中,反量化器22之架構與影像壓縮電路10之反量化器15之架構相同,所以反量化器22所產生之值相同於反量化器15所產生之反量化值dn_dq。
預測器23用於預測影像解壓縮電路20目前解碼之畫素之值。於本發明之一實施例中,預測器23之預測方法同於影像壓縮電路10之預測器11的預測方法,所以就同一畫素而言,預測器23預測之值會同於影像壓縮電路10之預測器11之預測值Pn。預測器23輸出之預測值Pn與反量化器22輸出之反量化值dn_dq傳輸至運算器24,運算器24加總反量化值dn_dq與預測器23之預測值Pn,而輸出一總合值,此總合值為解碼資料Xn_q,以提供至影像顯示裝置而顯示影像。運算器24傳送解碼資料Xn_q至預測器23。預測器23依據接收之解碼資料Xn_q預測下一個畫素之值,而輸出預測值Pn。
第二圖為本發明之哥倫布-萊斯編碼電路之一實施例的方塊圖。如圖所示,本發明之編碼電路14為哥倫布-萊斯編碼電路,其包含有一哥倫布-萊斯編碼單元141與一編碼參數更新單元143。哥倫布-萊斯編碼單元141依序接收複數輸入資料din
,而依序對該些輸入資料din
進行哥倫布-萊斯編碼。於此實施例中,該些輸入資料din
即為影像壓縮電路10之量化器13輸出之該些量化值dn_q(如第一圖所示)。哥倫布-萊斯編碼單元141會接收一編碼參數kc
,而依據編碼參數kc
依序對該些輸入資料din
進行哥倫布-萊斯編碼,而依序產生該些編碼資料Sn。此外,哥倫布-萊斯編碼單元141對每一輸入資料din
進行編碼而輸出對應之編碼資料Sn時,更會輸出對應之一第一變數q與一第二變數r。
復參閱第二圖,編碼參數更新單元143耦接哥倫布-萊斯編碼單元141,而接收第一變數q與第二變數r,以依據第一變數q與第二變數r動態更新編碼參數kc
,並提供更新後之編碼參數kc
至哥倫布-萊斯編碼單元141,以對下一筆輸入資料din
進行編碼,如此可提高哥倫布-萊斯編碼單元141進行哥倫布-萊斯編碼的效率。此外,更新後之編碼參數kc
可先暫存至一暫存器145,例如正反器,以供哥倫布-萊斯編碼單元141對下一筆輸入資料din
進行編碼時而讀出,以進行編碼。於本發明之一實施例中,編碼參數更新單元143內具有一預設值,以作為編碼參數kc
之初始值,之後編碼參數更新單元143依據第一變數q與第二變數r自動動態更新編碼參數kc
。
哥倫布-萊斯編碼單元141對輸入資料din
進行哥倫布-萊斯編碼時,先會依據編碼參數kc
決定一除數m,除數m可表示為如下:
m = 2kc ……………………………………(1)
之後,哥倫布-萊斯編碼單元141依據除數m而對輸入資料din 進行除法運算,以得知商數與餘數,而分別為第一變數q與第二變數r。第一變數q與第二變數r可分別表示為如下:
q = floor(din /m)…………………………(2)
r =din -(q*m)…………………………(3)
其中,floor表示除法運算取商數,且輸入資料din 之值大於0。由上述可知,在給定編碼參數kc 的情況下,第一變數q與第二變數r會隨輸入資料din 而改變。
m = 2kc ……………………………………(1)
之後,哥倫布-萊斯編碼單元141依據除數m而對輸入資料din 進行除法運算,以得知商數與餘數,而分別為第一變數q與第二變數r。第一變數q與第二變數r可分別表示為如下:
q = floor(din /m)…………………………(2)
r =din -(q*m)…………………………(3)
其中,floor表示除法運算取商數,且輸入資料din 之值大於0。由上述可知,在給定編碼參數kc 的情況下,第一變數q與第二變數r會隨輸入資料din 而改變。
於此實施例中,哥倫布-萊斯編碼單元141會運用一元碼對商數進行編碼,例如商數為3,則商數編碼為“111”。另外,哥倫布-萊斯編碼單元141會運用k個位元的二進位碼對餘數進行編碼,k即為上述之編碼參數kc
之值,所以編碼參數kc
會決定餘數編碼的位元數,例如餘數為3、編碼參數kc
為4,則餘數編碼為“0011”。哥倫布-萊斯編碼單元141輸出之編碼資料Sn的格式可表示為如下:
編碼資料Sn = {商數編碼, 0, 餘數編碼}…(4)
如方程式(4)所示,商數編碼與餘數編碼之間具有一個0,其是因為商數編碼全為1,藉由商數編碼與餘數編碼之間的0可以區分商數編碼與餘數編碼,所以每一筆編碼資料Sn的長度L可表示為如下:
L = q + kc + 1 ………………………(5)
編碼資料Sn = {商數編碼, 0, 餘數編碼}…(4)
如方程式(4)所示,商數編碼與餘數編碼之間具有一個0,其是因為商數編碼全為1,藉由商數編碼與餘數編碼之間的0可以區分商數編碼與餘數編碼,所以每一筆編碼資料Sn的長度L可表示為如下:
L = q + kc + 1 ………………………(5)
請參閱第三圖,其為本發明之哥倫布-萊斯編碼之一實施例的對照圖。其僅列出哥倫布-萊斯編碼單元141分別依據編碼參數kc
為0~4對輸入資料din
為0~16進行哥倫布-萊斯編碼的狀態。圖中所示之code是表示哥倫布-萊斯編碼單元141依據編碼參數kc
對輸入資料din
進行編碼後所產生的碼,其即為編碼資料Sn。如圖所示,哥倫布-萊斯編碼單元141產生之編碼資料Sn的長度L是決定於編碼參數kc
與輸入資料din
。
如第三圖所示,當輸入資料din
之值越小時,運用小數值之編碼參數kc
對輸入資料din
進行哥倫布-萊斯編碼,而產生之編碼的長度L越短,也就是編碼資料Sn的位元數較少,如此編碼效率佳。例如,輸入資料din
為0時,運用編碼參數kc
為0(m=1)進行哥倫布-萊斯編碼,所產生之編碼資料Sn最短,其僅有1個位元。另外,當輸入資料din
之值較大時,則需要運用較大數值之編碼參數kc
對輸入資料din
進行哥倫布-萊斯編碼,如此所產生之編碼的長度較短,即編碼效率佳。例如,輸入資料din
為3時,運用編碼參數kc
為1(m=2)或者2(m=4)進行哥倫布-萊斯編碼,所產生之編碼資料Sn最短,其有3個位元。但是,也不合適運用數值過高之編碼參數kc
對輸入資料din
進行哥倫布-萊斯編碼,其會造成編碼長度較長,而降低編碼效率。
第三圖之標示部分是每一輸入資料din
所合適之編碼參數kc
及對應之第一變數q(商數)、第二變數r(餘數)、碼code以及編碼長度L。由第三圖可以得知,當運用不理想之較小數值的編碼參數kc
對輸入資料din
進行哥倫布-萊斯編碼時,其第一變數q會超過2,如此應該要使用較高數值之編碼參數kc
。例如,運用編碼參數kc
為2(m=4)對輸入資料din
為12進行編碼時,其第一變數q為3而第二變數r為0,如此編碼長度L為6。若運用理想之編碼參數kc
為3(m=8)或者kc
為4(m=16)對輸入資料din
為12進行編碼時,其第一變數q小於或等於2,如此編碼長度L皆為5而小於6。
此外,當運用不理想之較大數值的編碼參數kc
對輸入資料din
進行哥倫布-萊斯編碼時,其第一變數q會為0,且第二變數r小於除數m的一半(m/2),如此應該要使用較小數值之編碼參數kc
。例如,運用編碼參數kc
為2(m=4)對輸入資料din
為1進行編碼時,其第一變數q為0而第二變數r為1,如此編碼長度L為3。若運用理想之編碼參數kc
為1(m=2)對輸入資料din
為1進行編碼時,其第一變數q為0,且第二變數r為1,如此編碼長度L為2而小於3,或者運用編碼參數kc
為0(m=1)對輸入資料din
為1進行編碼,其第一變數q為1,且第二變數r為0,如此編碼長度L為2而小於3。
請參閱第四圖,其為本發明之更新編碼參數之一實施例的流程圖。第二圖所示之編碼電路14之編碼參數更新單元143依據第四圖之流程而自動動態更新編碼參數kc
。如步驟S11所示,編碼參數更新單元143判斷第一變數q(商數)是否大於2。若第一變數q大於2時,即如步驟S12所示,調升編碼參數kc
之值,而更新編碼參數kc
,以供哥倫布-萊斯編碼單元141依據更新後之編碼參數kc
對下一筆輸入資料din
進行編碼。於此實施例中,編碼參數更新單元143對當前之編碼參數kc
之值加1,而向上調整編碼參數kc
之值。此實施例並非限制編碼參數更新單元143每次僅能對當前之編碼參數kc
之值加1,而向上調整編碼參數kc
之值,其亦可對當前之編碼參數kc
之值加2或者加3等。
承接上述,若編碼參數更新單元143判斷第一變數q(商數)並未大於2,即如步驟S13所示,進一步判斷第一變數q(商數)是否等於0,且第二變數r(餘數)是否小於除數m(2kc
)的一半。若第一變數q等於0,且第二變數r小於除數m的一半(m/2)時,即如步驟S14所示,編碼參數更新單元143調降編碼參數kc
之值,以供哥倫布-萊斯編碼單元141依據更新後之編碼參數kc
對下一筆輸入資料din
進行編碼。於此實施例中,編碼參數更新單元143對當前之編碼參數kc
之值減1,而向下調整編碼參數kc
之值。此實施例並非限制編碼參數更新單元143每次僅能對當前之編碼參數kc
之值減1,而向下調整編碼參數kc
之值,其亦可對當前之編碼參數kc
之值減2或者減3等。
復參閱第四圖,若編碼參數更新單元143判斷第一變數q並未大於2也並未等於0,或者第一變數q等於0,但第二變數r並未小於除數m的一半時,即如步驟S15所示,編碼參數更新單元143則不更新目前之編碼參數kc
。由上述可知,編碼參數更新單元143是依據當前進行編碼之輸入資料din
動態更新編碼參數kc
,以供哥倫布-萊斯編碼單元141依據更新後之編碼參數kc
對下一筆輸入資料din
進行編碼。如此,可提高哥倫布-萊斯編碼單元141之編碼效率,降低編碼資料Sn的資料長度。此外,本發明之編碼參數更新單元143依據第一變數q與第二變數r而自動動態更新編碼參數kc
,所以架構簡單,且低複雜度。
請參閱第五圖,其為本發明之哥倫布-萊斯解碼電路之一實施例的方塊圖。如圖所示,本發明之解碼電路21為哥倫布-萊斯解碼電路,其包含有一哥倫布-萊斯解碼單元211與一解碼參數更新單元213。哥倫布-萊斯解碼單元211依序接收複數解碼資料Sn,而依序對該些解碼資料Sn進行哥倫布-萊斯解碼。此外,哥倫布-萊斯解碼單元211會接收解碼參數kd
,此解碼參數kd
相同於編碼參數kc
。哥倫布-萊斯解碼單元211依據解碼參數kd
依序對該些解碼資料Sn進行哥倫布-萊斯解碼,而依序產生複數輸出資料dout
。於此實施例中,該些輸出資料dout
為第一圖所示之影像解壓縮電路20之解碼電路21輸出之量化值dn_q,其會相同於第一圖所示之影像壓縮電路10之量化器13輸出之該些量化值dn_q。
哥倫布-萊斯解碼單元211對編碼資料Sn進行哥倫布-萊斯解碼時,先會依據解碼參數kd
決定一運算數n,運算數n可表示為如下:
n = 2kd ……………………………………(6)
由方程式(6)可知,運算數n相等於方程式(1)所示之除數m。如上述方程式(4)所示,編碼資料Sn包含商數與餘數,即包含第一變數q與第二變數r,哥倫布-萊斯解碼單元211依據運算數n與編碼資料Sn之第一變數q和第二變數r進行運算,而產生輸出資料dout 。輸出資料dout 可表示為如下:
dout = (q*n)+ r ………………………(7)
n = 2kd ……………………………………(6)
由方程式(6)可知,運算數n相等於方程式(1)所示之除數m。如上述方程式(4)所示,編碼資料Sn包含商數與餘數,即包含第一變數q與第二變數r,哥倫布-萊斯解碼單元211依據運算數n與編碼資料Sn之第一變數q和第二變數r進行運算,而產生輸出資料dout 。輸出資料dout 可表示為如下:
dout = (q*n)+ r ………………………(7)
復參閱第五圖,哥倫布-萊斯解碼單元211對每一編碼資料Sn進行解碼而輸出對應之輸出資料dout
時,更會輸出對應之第一變數q(商數)與第二變數r(餘數)。編碼資料Sn包含第一變數q與第二變數r,所以哥倫布-萊斯解碼單元211對每一編碼資料Sn進行解碼時,係會輸出第一變數q與第二變數r。解碼參數更新單元213耦接哥倫布-萊斯解碼單元211,而接收第一變數q與第二變數r,以依據第一變數q與第二變數r動態更新解碼參數kd
,並提供更新後之解碼參數kd
至哥倫布-萊斯解碼單元211,以對下一筆編碼資料Sn進行解碼。此外,更新後之解碼參數kd
可先暫存至一暫存器215,例如正反器,以供哥倫布-萊斯解碼單元211對下一筆編碼資料Sn進行解碼時而讀出,以進行解碼。
解碼參數更新單元213動態更新解碼參數kd
之方式同於第四圖之動態更新編碼參數kc
之方式。解碼參數更新單元213判斷第一變數q大於2時,調升解碼參數kd
之值,而更新解碼參數kd
。此外,解碼參數更新單元213判斷第一變數q等於0,且第二變數r小於運算數n的一半(n/2)時,調降解碼參數kd
之值,而更新解碼參數kd
。另外,若解碼參數更新單元213判斷第一變數q並未大於2也並未等於0,或者第一變數q等於0,但第二變數r並未小於運算數n的一半時,解碼參數更新單元213則不更新目前之解碼參數kd
。於本發明之一實施例中,解碼參數更新單元213內具有一預設值,以作為解碼參數kd
之初始值,解碼參數更新單元213之預設值相同於編碼參數更新單元143(如第二圖所示)之預設值,之後解碼參數更新單元213依據第一變數q與第二變數r自動動態更新解碼參數kd
。
由上述可知,解碼電路21之解碼參數更新單元213更新解碼參數kd
的方式與依據(第一變數q與第二變數r)皆相同於編碼電路10之編碼參數更新單元143(如第二圖所示)更新編碼參數kc
的方式與依據,且解碼電路21可以從編碼資料Sn取得更新解碼參數kd
所依據的第一變數q與第二變數r,因此解碼參數更新單元213更新之解碼參數kd
之值會相同於編碼參數更新單元143更新之編碼參數kc
之值,所以編碼電路10不需要傳輸更新之編碼參數kc
至解碼電路20,如此可以節省傳輸資料的位元數,也可不需佔用記憶體的儲存空間。
請參閱第六圖,其為本發明之哥倫布-萊斯編碼電路之另一實施例的方塊圖。如圖所示,此實施例之哥倫布-萊斯編碼電路14除了包含哥倫布-萊斯編碼單元141、編碼參數更新單元143與暫存器145之外,更包含一第一運算單元147與一第二運算單元149。哥倫布-萊斯編碼單元141依序接收該些輸入資料din
,並依據編碼參數kc
依序對該些輸入資料din
進行哥倫布-萊斯編碼,以依序產生該些編碼資料Sn。第一運算單元147接收該些輸入資料din
,並平均運算該些輸入資料din
之值,以獲得一輸入平均資料din_avg
,此輸入平均資料din_avg
即為該些輸入資料din
之值的平均值。第二運算單元149耦接第一運算單元147,並接收輸入平均資料din_avg
,且接收編碼參數kc
。第二運算單元149如同前述方程式(1)依據編碼參數kc
決定除數m,再同於方程式(2)與(3)以除數m對輸入平均資料din_avg
進行除法運算,而得知商數與餘數,而輸出一第一變數qavg
與一第二變數ravg
。商數與餘數即分別為第一變數qavg
與第二變數ravg
。
復參閱第六圖,編碼參數更新單元143耦接第二運算單元149,並接收第一變數qavg
與第二變數ravg
,而依據第一變數qavg
與第二變數ravg
更新編碼參數kc
。此實施例之編碼參數更新單元143動態更新編碼參數kc
之方式同於第四圖實施例之動態更新編碼參數kc
之方式。編碼參數更新單元143判斷第一變數qavg
大於2時,調升編碼參數kc
之值,而更新編碼參數kc
。此外,編碼參數更新單元143判斷第一變數qavg
等於0,且第二變數ravg
小於除數m的一半(m/2)時,調降編碼參數kc
之值,而更新編碼參數kc
。更新後之編碼參數kc
可先暫存於暫存器145,以供哥倫布-萊斯編碼單元141讀取。
由上述可知,此實施例是先求得該些輸入資料din
之輸入平均資料din_avg
,再以輸入平均資料din_avg
與編碼參數kc
求得第一變數qavg
與第二變數ravg
,以作為更新編碼參數kc
的依據。此實施例之第一變數qavg
與第二變數ravg
並不同於第二圖實施例依據輸入資料din
與編碼參數kc
求得的第一變數q與第二變數r。由於此實施例更新編碼參數kc
的依據(第一變數qavg
與第二變數ravg
)是基於輸入平均資料din_avg
所取得,所以可以避免編碼參數更新單元143受到單獨一個輸入資料din
大幅變動的影響而發生不正確更新編碼參數kc
的情形,如此可以提高編碼參數更新單元143的更新穩定性與正確性。
請參閱第七圖,其為本發明之哥倫布-萊斯解碼電路之另一實施例的方塊圖。此實施例之哥倫布-萊斯解碼電路21係搭配於第六圖之哥倫布-萊斯編碼電路14。此實施例之哥倫布-萊斯解碼電路21除了包含哥倫布-萊斯解碼單元211、解碼參數更新單元213與暫存器215之外,更包含一第一運算單元217與一第二運算單元219。哥倫布-萊斯解碼單元211依序接收該些編碼資料Sn,並依據解碼參數kd
依序對該些編碼資料Sn進行哥倫布-萊斯解碼,以依序產生該些輸出資料dout
。
復參閱第七圖,第一運算單元217接收該些輸出資料dout
,並平均運算該些輸出資料dout
,以獲得一輸出平均資料dout_avg
。由於哥倫布-萊斯解碼單元211對該些編碼資料Sn進行哥倫布-萊斯解碼後所產生之該些輸出資料dout
會相同於第六圖之哥倫布-萊斯編碼單元141進行編碼前的該些輸入資料din
,因此第一運算單元217輸出之輸出平均資料dout_avg
亦會相同於輸入平均資料din_avg
。第二運算單元219耦接第一運算單元217,並接收輸出平均資料dout_avg
,且接收解碼參數kd
。第二運算單元219依據解碼參數kd
運算輸出平均資料dout_avg
,而輸出第一變數qavg
與第二變數ravg
。第二運算單元219相同於第六圖之編碼電路14之第二運算單元149,且解碼參數kd
會相同於編碼參數kc
,所以解碼參數kd
所決定之除數m會相同於編碼參數kc
所決定之除數m,如此第二運算單元219與第六圖之第二運算單元149兩者所求得之第一變數qavg
與第二變數ravg
會相同。
復參閱第七圖,解碼參數更新單元213耦接第二運算單元219,並接收第一變數qavg
與第二變數ravg
,而依據第一變數qavg
與第二變數ravg
更新解碼參數kd
。此實施例之解碼參數更新單元213動態更新解碼參數kd
之方式同於第六圖實施例之動態更新編碼參數kc
之方式,所以於此不再詳述。更新後之解碼參數kd
可先暫存於暫存器215,以供哥倫布-萊斯解碼單元211讀取。
由上述可知,解碼電路21之解碼參數更新單元213更新解碼參數kd
的方式與依據(第一變數qavg
與第二變數ravg
)皆相同於編碼電路10之編碼參數更新單元143(如第六圖所示)更新編碼參數kc
的方式與依據,且解碼電路21可以自行取得第一變數qavg
與第二變數ravg
,因此解碼參數更新單元213更新之解碼參數kd
之值會相同於編碼參數更新單元143更新之編碼參數kc
之值,所以編碼電路10不需要傳輸更新之編碼參數kc
至解碼電路20,如此可以節省傳輸資料的位元數,也可不需佔用記憶體的儲存空間。此外,本發明之哥倫布-萊斯編碼電路14與解碼電路21可以用於壓縮任何種類的資料,而並未限定用於影像資料,也並未限定用於差分脈衝編碼調變(Differential pulse-code modulation,DPCM)架構。
綜上所述,本發明哥倫布-萊斯編碼電路與解碼電路分別包含編碼參數更新單元與解碼參數更新單元,兩者皆依據兩變數自動動態更新編碼參數與解碼參數,以提高哥倫布-萊斯編碼電路與解碼電路之效率。此外,編碼電路與解碼電路更新編碼參數與解碼參數的方式與依據皆相同,且解碼電路可以取得更新解碼參數所依據的變數,而相同於編碼電路所依據的變數,因此編碼電路不需要傳輸更新之編碼參數至解碼電路,如此可以節省傳輸資料的位元數,且可不需佔用記憶體的儲存空間。
故本發明實為一具有新穎性、進步性及可供產業上利用者,應符合我國專利法專利申請要件無疑,爰依法提出發明專利申請,祈 鈞局早日賜准專利,至感為禱。
惟以上所述者,僅為本發明一實施例而已,並非用來限定本發明實施之範圍,故舉凡依本發明申請專利範圍所述之形狀、構造、特徵及精神所為之均等變化與修飾,均應包括於本發明之申請專利範圍內。
14‧‧‧編碼電路
141‧‧‧哥倫布-萊斯編碼單元
143‧‧‧編碼參數更新單元
145‧‧‧暫存器
din‧‧‧輸入資料
kc‧‧‧編碼參數
q‧‧‧第一變數
r‧‧‧第二變數
Sn‧‧‧編碼資料
Claims (16)
- 一種哥倫布-萊斯編碼電路,其包含:
一哥倫布-萊斯編碼單元,依序接收複數輸入資料,並依據一編碼參數依序對該些輸入資料進行一哥倫布-萊斯編碼,以產生複數編碼資料,並輸出一第一變數與一第二變數;以及
一編碼參數更新單元,依據該第一變數與該第二變數更新該編碼參數。 - 如申請專利範圍第1項所述之哥倫布-萊斯編碼電路,其中該編碼參數決定一除數,該哥倫布-萊斯編碼單元依據該除數而對每一該輸入資料進行除法運算,而產生該第一變數與該第二變數,該第一變數為商數,該第二變數為餘數。
- 如申請專利範圍第2項所述之哥倫布-萊斯編碼電路,其中該編碼參數更新單元判斷該第一變數大於2時,調升該編碼參數之值,而更新該編碼參數。
- 如申請專利範圍第2項所述之哥倫布-萊斯編碼電路,其中該編碼參數更新單元判斷該第一變數等於0,且該第二變數小於該除數的一半時,調降該編碼參數之值,而更新該編碼參數。
- 一種哥倫布-萊斯編碼電路,其包含:
一哥倫布-萊斯編碼單元,依序接收複數輸入資料,並依據一編碼參數依序對該些輸入資料進行一哥倫布-萊斯編碼,以產生複數編碼資料;
一第一運算單元,接收該些輸入資料,並平均運算該些輸入資料,以獲得一輸入平均資料;
一第二運算單元,接收該輸入平均資料,並依據該編碼參數運算該輸入平均資料,而輸出一第一變數與一第二變數;以及
一編碼參數更新單元,依據該第一變數與該第二變數更新該編碼參數。 - 如申請專利範圍第5項所述之哥倫布-萊斯編碼電路,其中該編碼參數決定一除數,該第二運算單元依據該除數而對該輸入平均資料進行除法運算,而產生該第一變數與該第二變數,該第一變數為商數,該第二變數為餘數。
- 如申請專利範圍第6項所述之哥倫布-萊斯編碼電路,其中該編碼參數更新單元判斷該第一變數大於2時,調升該編碼參數之值,而更新該編碼參數。
- 如申請專利範圍第6項所述之哥倫布-萊斯編碼電路,其中該編碼參數更新單元判斷該第一變數等於0,且該第二變數小於該除數的一半時,調降該編碼參數之值,而更新該編碼參數。
- 一種哥倫布-萊斯解碼電路,其包含:
一哥倫布-萊斯解碼單元,依序接收複數編碼資料,並依據一解碼參數依序對該些編碼資料進行一哥倫布-萊斯解碼,以產生複數輸出資料,並輸出一第一變數與一第二變數;以及
一解碼參數更新單元,依據該第一變數與該第二變數更新該解碼參數。 - 如申請專利範圍第9項所述之哥倫布-萊斯解碼電路,其中每一該解碼資料包含一商數與一餘數,而為該第一變數與該第二變數,該解碼參數決定一運算數,該哥倫布-萊斯解碼單元依據該運算數與每一該解碼資料之該商數與該餘數進行該哥倫布-萊斯解碼,而產生每一該輸出資料。
- 如申請專利範圍第10項所述之哥倫布-萊斯解碼電路,其中該解碼參數更新單元判斷該第一變數大於2時,調升該解碼參數之值,而更新該解碼參數。
- 如申請專利範圍第10項所述之哥倫布-萊斯解碼電路,其中該解碼參數更新單元判斷該第一變數等於0,且該第二變數小於該運算數的一半時,調降該解碼參數之值,而更新該解碼參數。
- 一種哥倫布-萊斯解碼電路,其包含:
一哥倫布-萊斯解碼單元,依序接收複數編碼資料,並依據一解碼參數依序對該些編碼資料進行一哥倫布-萊斯解碼,以產生複數輸出資料;
一第一運算單元,接收該些輸出資料,並平均運算該些輸出資料,以獲得一輸出平均資料;
一第二運算單元,接收該輸出平均資料,並依據該解碼參數運算該輸出平均資料,而輸出一第一變數與一第二變數;以及
一解碼參數更新單元,依據該第一變數與該第二變數更新該解碼參數。 - 如申請專利範圍第13項所述之哥倫布-萊斯解碼電路,其中該解碼參數決定一除數,該第二運算單元依據該除數對該輸出平均資料進行除法運算,而產生該第一變數與該第二變數,該第一變數為商數,該第二變數為餘數。
- 如申請專利範圍第14項所述之哥倫布-萊斯解碼電路,其中該解碼參數更新單元判斷該第一變數大於2時,調升該解碼參數之值,而更新該解碼參數。
- 如申請專利範圍第14項所述之哥倫布-萊斯解碼電路,其中每一該解碼資料包含一商數與一餘數,該解碼參數決定一運算數,該哥倫布-萊斯解碼單元依據該運算數與每一該解碼資料之該商數和該餘數產生每一該輸出資料,該解碼參數更新單元判斷該第一變數等於0,且該第二變數小於該除數的一半時,調降該解碼參數之值,而更新該解碼參數。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104128954A TW201711475A (zh) | 2015-09-02 | 2015-09-02 | 哥倫布-萊斯編碼電路與解碼電路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104128954A TW201711475A (zh) | 2015-09-02 | 2015-09-02 | 哥倫布-萊斯編碼電路與解碼電路 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI563829B TWI563829B (zh) | 2016-12-21 |
TW201711475A true TW201711475A (zh) | 2017-03-16 |
Family
ID=58227524
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104128954A TW201711475A (zh) | 2015-09-02 | 2015-09-02 | 哥倫布-萊斯編碼電路與解碼電路 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TW201711475A (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2513111A (en) * | 2013-04-08 | 2014-10-22 | Sony Corp | Data encoding and decoding |
US10021419B2 (en) * | 2013-07-12 | 2018-07-10 | Qualcomm Incorported | Rice parameter initialization for coefficient level coding in video coding process |
EP2830055A1 (en) * | 2013-07-22 | 2015-01-28 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Context-based entropy coding of sample values of a spectral envelope |
-
2015
- 2015-09-02 TW TW104128954A patent/TW201711475A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
TWI563829B (zh) | 2016-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI685245B (zh) | 資料編碼及解碼 | |
US6798833B2 (en) | Video frame compression/decompression hardware system | |
US9299166B2 (en) | Image compression method and apparatus for bandwidth saving | |
US8879627B2 (en) | Moving image encoding apparatus, moving image decoding apparatus, moving image encoding method, moving image decoding method, moving image encoding program, moving image decoding program, and moving image encoding/ decoding system | |
US7304590B2 (en) | Arithmetic decoding apparatus and method | |
KR101941760B1 (ko) | 디스플레이 스트림 압축 (dsc) 에서 양자화 파라미터 (qp) 를 선택하기 위한 시스템 및 방법 | |
KR20060051149A (ko) | 백워드-적응 규칙을 사용하는 정수 데이터의 무손실 적응g/r 인코딩 및 디코딩을 위한 시스템 및 방법 | |
KR101638300B1 (ko) | 복잡도 균형 엔트로피 코딩을 제공하는 방법 및 장치 | |
JP2017505001A (ja) | ビデオ符号化および復号におけるシンタックス要素符号化方法および装置 | |
TW201806391A (zh) | 用於顯示串流壓縮之子串流多工 | |
US7953285B2 (en) | Method and circuit of high performance variable length coding and decoding for image compression | |
CN110767241B (zh) | 谱峰位置的编码与解码 | |
CN107040780B (zh) | 在图像压缩中的熵编码的方法与装置 | |
KR20060051157A (ko) | 정수 데이터의 무손실 적응 인코딩 및 디코딩을 위한시스템 및 방법 | |
KR20110043684A (ko) | 디지털 신호의 압축 또는 압축해제를 위한 방법, 시스템 및 장치 | |
TW201737706A (zh) | 用於顯示串流壓縮之基於向量之熵寫碼的裝置及方法 | |
TW201711475A (zh) | 哥倫布-萊斯編碼電路與解碼電路 | |
US20120183234A1 (en) | Methods for parallelizing fixed-length bitstream codecs | |
CN111669590B (zh) | 基于子块的熵译码的方法、设备和*** | |
KR102296153B1 (ko) | 전용 산술 인코딩 명령 | |
WO2020263438A1 (en) | Features of range asymmetric number system encoding and decoding | |
US9485509B2 (en) | Image compression device, image compression method, image decompression device, and image decompression method | |
US10666985B1 (en) | Sub-block based entropy coding for image coding | |
JP6495834B2 (ja) | 映像符号化方法、映像符号化装置及び映像符号化プログラム | |
TW201325257A (zh) | 用於視訊編碼中之反覆量化比率控制的程式產品 |