TW201824861A - 二元編碼運算裝置以及方法 - Google Patents

二元編碼運算裝置以及方法 Download PDF

Info

Publication number
TW201824861A
TW201824861A TW106111619A TW106111619A TW201824861A TW 201824861 A TW201824861 A TW 201824861A TW 106111619 A TW106111619 A TW 106111619A TW 106111619 A TW106111619 A TW 106111619A TW 201824861 A TW201824861 A TW 201824861A
Authority
TW
Taiwan
Prior art keywords
binary
syntax element
suffix
encoding operation
string
Prior art date
Application number
TW106111619A
Other languages
English (en)
Inventor
劉柏嶔
林和源
Original Assignee
晨星半導體股份有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 晨星半導體股份有限公司 filed Critical 晨星半導體股份有限公司
Publication of TW201824861A publication Critical patent/TW201824861A/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/1887Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a variable length codeword
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

一種二元編碼運算裝置,實現於一視訊編碼晶片中。該二元編碼運算裝置依據一語法元素值輸出一碼字。此二元編碼運算裝置包含一查找表,一尾綴產生器,以及一組合器。該查找表依據一語法元素值輸出一第一二元字串。該尾綴產生器依據該語法元素值進行指數哥倫布二元編碼產生一第二二元字串。當該語法元素值小於或等於一臨界值時,該第一二元字串輸出成為該碼字。當該語法元素值大於一臨界值時,該組合器組合該第一二元字串以及該第二二元字串成為該碼字。

Description

二元編碼運算裝置以及方法
本發明是關於一種二元編碼運算裝置以及方法,更確切地說,本發明是關於一種用於視訊編碼晶片的二元編碼運算裝置以及方法。
視訊的壓縮以及傳送一直是電子工業發展的重點項目。視訊的原始資料由數目龐大的視訊框(frames)所組成,每一個視訊框又包含數目龐大的畫素。因此,無壓縮傳送這些視訊會浪費大量的電路面積以及頻寬,實際上是不可行的。有許多對於視訊的壓縮方式被發展出來,例如MPEG (Moving Picture Experts Group)或 H.264 的視訊壓縮標準。這些視訊壓縮標準會利用熵編碼法 (entropy coding)來進行編碼。熵編碼法利用統計上的特性,使得出現頻率較高的資料用比較短的碼字來代表,出現頻率比較低的用比較長的碼字來代表,藉此來得到更高的壓縮率。二元編碼運算就是一種熵編碼法。然而,在半導體晶片上實現二元編碼運算必需考慮到所佔電路面積以及編碼效率的問題。所以,如何設計一種可以兼顧佔用電路面積以及編碼效率的二元編碼運算電路,是電子工業界非常需要的。
本發明之一目的在於提供一種二元編碼運算裝置,用於一視訊編碼晶片中。此二元編碼運算裝置可以利用查表以及運算兩種方式來產生指數哥倫布二元編碼,查表的優點在於快速,運算的優點在於省電路面積。此二元編碼運算裝置可以在這兩項優點之中取得平衡。
本發明之另一目的在於提供一種二元編碼運算裝置,用於一視訊編碼晶片中。此二元編碼運算裝置可以將指數哥倫布二元編碼的前綴以及尾綴分開處理,使得取得編碼更有效率。
依據本發明之一實施例,提供一種二元編碼運算裝置,實現於一視訊編碼晶片中。該二元編碼運算裝置依據一語法元素值輸出一碼字。此二元編碼運算裝置包含一查找表,一尾綴產生器,以及一組合器。該查找表依據該語法元素值輸出一第一二元字串。其中該查找表具有兩種二元編碼方式,該兩種二元編碼方式為單一二元編碼以及指數哥倫布二元編碼。該尾綴產生器依據該語法元素值進行指數哥倫布二元編碼產生一第二二元字串。一組合器供組合該第一二元字串以及該第二二元字串。其中,當該語法元素值小於或等於一臨界值時,該第一二元字串輸出成為該碼字。當該語法元素值大於一臨界值時,該組合器組合該第一二元字串以及該第二二元字串成為該碼字。
依據本發明之另一實施例,提供一種二元編碼運算裝置,實現於一視訊編碼晶片中。該二元編碼運算裝置依據一語法元素值輸出一碼字。該二元編碼運算裝置包含一查找表,一尾綴產生器以及一多工器。該查找表依據一語法元素值輸出一第一二元字串。其中該查找表具有兩種二元編碼方式,該兩種二元編碼方式為單一二元編碼以及指數哥倫布二元編碼。該尾綴產生器依據該語法元素值進行指數哥倫布二元編碼產生一第二二元字串。該多工器接受該第一二元字串以及該第二二元字串作為輸入。其中,當該語法元素值小於或等於一臨界值時,該多工器選擇該第一二元字串輸出。當該語法元素值大於一臨界值時,該多工器依序選擇該第一二元字串以及該第二二元字串輸出。
依據本發明之另一實施例,提供一種二元編碼運算方法,實現於一視訊編碼晶片中。該二元編碼運算方法依據一語法元素值輸出一碼字。該二元編碼運算方法包含下列步驟。首先,接受一語法元素值。接著,檢查該語法元素值是否大於一臨界值。然後,當該語法元素值小於或等於該臨界值時,利用一查找表輸出一二元字串作為該碼字。當該語法元素值大於該臨界值時,利用該查找表輸出一前綴,利用一尾綴產生器產生一尾綴,以及結合該前綴以及該尾綴成為該碼字。
圖1表示一個使用在CABAC的二元編碼運算的編碼器方塊圖。請參照圖1,CABAC(Context-based Adaptive Binary Arithmetic Coding)是前文參考之適應性二元算術編碼的簡稱,CABAC 可以使用於H.264的編碼。請參照圖1,編碼器100包含一查找表(look-up table)110,一尾綴產生器(suffix generator)120,以及一組合器(combiner)130。在一些實施例中,編碼器100也可以適用於MPEG的編碼。編碼器100可以實現於視訊編碼的晶片中。實際的例子包含電視晶片,手機晶片,機上盒晶片,以及任何需要視訊解碼的晶片中。
圖2表示查找表 I 的一個範例。圖3表示查找表 II 的一個範例。請參照圖2,在一些實施例中,查找表不僅包含單一二元編碼(unary binarization)所產生的二元字串(bin string),也包含哥倫布二元編碼(Golomb binarization)所產生的二元字串。例如,在查找表 I 中,當索引值(index),也就是語法元素值(syntax element value)小於或等於15時,輸出的二元字串會是單一二元編碼。當索引值大於15時,輸出的二元字串會是指數哥倫布編碼。當然,15只是一個範例,設計者可以在可行的範圍內,指定一個索引值作為單一二元編碼以及指數哥倫布二元編碼的分界。在這個實施例中,指數哥倫布碼包含前綴(prefix)以及尾綴(suffix)部分。在查找表 I 中,前綴行列內含多個前綴,尾綴行內含多個尾綴。在適當的範圍內,每一個索引值可以找到相對應的前綴以及尾綴來組成指數哥倫布二元編碼。
參照圖3,在一些實施例中,當語法元素值大於31時,查找表 II 包含指數哥倫布(Ex-Golomb)二元編碼所組合而成的前綴(prefix)供使用。31只是一個舉例說明,在其他實施例中,也可以用其他的語法元素值來作為分界點。前綴只是形成碼字(code word)的前面的部分,在這個實施例中,查找表 II 不包含尾綴的部分,不包含尾綴可以減少查找表 II 需要使用的儲存空間。而指數哥倫布二元編碼的尾綴部分可以利用數位邏輯的硬體做計算。如此一來,每次遇到大於31的語法元素值時,可以從查找表 II 取得指數哥倫布碼的前綴部分,然後從數位邏輯的硬體的技術案取得指數哥倫布碼的尾綴部分,之後把前綴跟尾綴加以組合,得到最後的碼字。
尾綴產生器120是利用指數哥倫布二元編碼。在一些實施例中,尾綴產生器120可以利用下列的虛擬碼(pseudo code)來實現。 if (UEG0_input_tmp[10]) UEG0_output = {1111110, UEG0_input_tmp[9:0]}; else if(UEG0_input_tmp[9]) UEG0_output = {111110, UEG0_input_tmp[8:0]}; else if(UEG0_input_tmp[8]) UEG0_output = {11110, UEG0_input_tmp[7:0]}; … else if(UEG0_input_tmp[4]) UEG0_output = {0, UEG0_input_tmp[3:0]}; else UEG0_output = 0;
這些虛擬碼也可以形成硬體的電路。例如,利用硬體描述語言(hardware description language)來改寫這虛擬碼,然後合成實體電路,以實現於半導體晶片上。在這個例子中,尾綴產生器120是由實體電路的邏輯計算方式得到尾綴,而不是由查表方式得到尾綴。在這個實施例中,這些虛擬碼中的 UEG0_input 是 11 位元的輸入,而 UEG0_input_tmp 則等於 UEG0_input 加 1。在另一實施例中,尾綴產生器120也可以利用一個查找表來實現。
參照圖3,在一些實施例中,在括弧裡面的 0 並不是實際儲存在查找表 II 中,而是經由尾綴產生器120所產生。產生的方式例如使用上述的虛擬碼。在另一實施例中,在括弧裡面的 0 是實際儲存在查找表 II 中,非由尾綴產生器120所產生。查找表110輸出的二元字串以及尾綴產生器輸出的二元字串經再由組合器130組合。
圖4表示與組合器相關的電路方塊圖。參照圖4,組合器130包含一多工器131以及一FIFO 132。FIFO (First In First Out)132 是一個先進先出緩衝器或先進先出記憶體。多工器131控制查找表110以及尾綴產生器 120 之中的那一個輸出可以進入FIFO 132。如果語法元素值小於32,則查找表110中相對應的二元字串會被輸入FIFO 132。如果語法元素值大於31,則查找表110中相對應的二元字串會被輸入FIFO 132,隨著再直接將尾綴產生器120產生的二元字串輸入FIFO 132。此時查找表110中相對應的二元字串為指數哥倫布的前綴,尾綴產生器120產生的二元字串為指數哥倫布的尾綴。如此一來,FIFO可以序列輸出指數哥倫布的前綴以及指數哥倫布的尾綴,前綴跟尾綴的序列組合可以成為一碼字(code word)。在這個實施例中,查找表110包含查找表 I 以及查找表 II。
圖5表示二元編碼運算的一實施例流程圖。參照圖5,依據本發明之一實施例,揭露一種二元編碼運算方法。此方法包含下列步驟。首先,接受一語法元素值(步驟501)。接著,決定語法元素值是否大於一臨界值(步驟502)。在一實施例中,此臨界值為31。如果結果為是,從一查找表中找出相對於此語法元素值的指數哥倫布二元編碼的前綴(步驟503)。再來,利用一尾綴產生器計算產生相對於此語法元素值的指數哥倫布二元編碼的尾綴(步驟504)。接著,將指數哥倫布二元編碼的前綴以及尾綴結合,成為對應於此語法元素值的碼字(步驟505)。如果步驟502的結果為否,則利用查找表來查找以得出相對於此語法元素值的二元編碼字串(步驟506)。在步驟506中所產生的二元編碼字串可為單一二元編碼或指數哥倫布二元編碼所產生。
查表的優點在於快速,運算的優點在於省電路面積。本發明的二元編碼運算裝置實施例可以在這兩項優點之中取得平衡。另外,本發明的實施例可以將指數哥倫布二元編碼的前綴以及尾綴分開處理,使得取得編碼更有效率。
以上所述僅為本發明的諸多實施例,不能以某一實施例之特殊做法限定本發明的專利申請範圍,本發明之申請專利範圍當以發明申請專利範圍之內所記載文字為準。
100‧‧‧編碼器
110‧‧‧查找表
120‧‧‧尾綴產生器
130‧‧‧組合器
131‧‧‧多工器
132‧‧‧先進先出緩衝器
501,502,503,504,505,506‧‧‧步驟
[圖1]表示一個使用在CABAC的二元編碼運算的編碼器方塊圖; [圖2]表示查找表 I 的一個範例; [圖3]表示查找表 II 的一個範例; [圖4]表示與組合器相關的電路方塊圖;以及 [圖5]表示二元編碼運算的一實施例流程圖。

Claims (18)

  1. 一種二元編碼運算裝置,實現於一視訊編碼晶片中,該二元編碼運算裝置依據一語法元素值輸出一碼字,該二元編碼運算裝置包含: 一查找表,該查找表依據該語法元素值輸出一第一二元字串,其中該查找表具有兩種二元編碼方式,該兩種二元編碼方式為單一二元編碼以及指數哥倫布二元編碼; 一尾綴產生器,該尾綴產生器依據該語法元素值進行指數哥倫布二元編碼產生一第二二元字串;以及 一組合器,供組合該第一二元字串以及該第二二元字串; 其中,當該語法元素值小於或等於一臨界值時,該第一二元字串輸出成為該碼字,當該語法元素值大於一臨界值時,該組合器組合該第一二元字串以及該第二二元字串成為該碼字。
  2. 如申請專利範圍第1項之二元編碼運算裝置,其中該臨界值為31。
  3. 如申請專利範圍第1項之二元編碼運算裝置,更包含一先進先出緩衝器,該二元編碼運算裝置將該碼字存入該先進先出緩衝器。
  4. 如申請專利範圍第1項之二元編碼運算裝置,其中該查找表包含前綴行以及尾綴行,且該第一二元字串包含由前綴行選出之前綴以及由尾綴行選出之尾綴之組合。
  5. 如申請專利範圍第4項之二元編碼運算裝置,其中該前綴行包含單一二元編碼以及指數哥倫布二元編碼,該尾綴行包含指數哥倫布二元編碼。
  6. 如申請專利範圍第1項之二元編碼運算裝置,其中當該語法元素值小於或等於15時,該第一二元字串只包含單一二元編碼。
  7. 一種二元編碼運算裝置,實現於一視訊編碼晶片中,該二元編碼運算裝置依據一語法元素值輸出一碼字,該二元編碼運算裝置包含: 一查找表,該查找表依據該語法元素值輸出一第一二元字串,其中該查找表具有兩種二元編碼方式,該兩種二元編碼方式為單一二元編碼以及指數哥倫布二元編碼; 一尾綴產生器,該尾綴產生器依據該語法元素值進行指數哥倫布二元編碼產生一第二二元字串;以及 一多工器,接受該第一二元字串以及該第二二元字串作為輸入; 其中,當該語法元素值小於或等於一臨界值時,該多工器選擇該第一二元字串輸出,當該語法元素值大於該臨界值時,該多工器依序選擇該第一二元字串以及該第二二元字串輸出。
  8. 如申請專利範圍第7項之二元編碼運算裝置,其中該臨界值為31。
  9. 如申請專利範圍第7項之二元編碼運算裝置,更包含一先進先出緩衝器,該先進先出緩衝器接收該多工器的輸出。
  10. 如申請專利範圍第7項之二元編碼運算裝置,其中該查找表包含前綴行以及尾綴行,且該第一二元字串包含由前綴行選出之前綴以及由尾綴行選出之尾綴之組合。
  11. 如申請專利範圍第10項之二元編碼運算裝置,其中該前綴行包含單一二元編碼以及指數哥倫布二元編碼,該尾綴行包含指數哥倫布二元編碼。
  12. 如申請專利範圍第7項之二元編碼運算裝置,其中當該語法元素值小於或等於15時,該第一二元字串只包含單一二元編碼。
  13. 一種二元編碼運算方法,實現於一視訊編碼晶片中,該二元編碼運算方法依據一語法元素值輸出一碼字,該二元編碼運算方法包含: 接受該語法元素值; 檢查該語法元素值是否大於一臨界值; 當該語法元素值小於或等於該臨界值時,利用一查找表輸出一二元字串作為該碼字,其中該查找表包含單一二元編碼以及指數哥倫布二元編碼;以及 當該語法元素值大於該臨界值時,利用該查找表輸出一指數哥倫布二元編碼的前綴,利用一尾綴產生器產生一指數哥倫布二元編碼的尾綴,以及結合該前綴以及該尾綴成為該碼字。
  14. 如申請專利範圍第13項之二元編碼運算方法,其中該臨界值為31。
  15. 如申請專利範圍第13項之二元編碼運算方法,更包含: 將該碼字存入一先進先出緩衝器。
  16. 如申請專利範圍第13項之二元編碼運算方法,其中該查找表包含前綴行以及尾綴行,且該二元字串包含由前綴行選出之前綴以及由尾綴行選出之尾綴之組合。
  17. 如申請專利範圍第16項之二元編碼運算方法,其中該前綴行包含單一二元編碼以及指數哥倫布二元編碼,該尾綴行包含指數哥倫布二元編碼。
  18. 如申請專利範圍第13項之二元編碼運算方法,其中當該語法元素值小於或等於15時,該二元字串只包含單一二元編碼。
TW106111619A 2016-12-23 2017-04-07 二元編碼運算裝置以及方法 TW201824861A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201662438472P 2016-12-23 2016-12-23
US62/438,472 2016-12-23

Publications (1)

Publication Number Publication Date
TW201824861A true TW201824861A (zh) 2018-07-01

Family

ID=62625813

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106111619A TW201824861A (zh) 2016-12-23 2017-04-07 二元編碼運算裝置以及方法

Country Status (3)

Country Link
US (1) US20180184090A1 (zh)
CN (1) CN108243342A (zh)
TW (1) TW201824861A (zh)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6744387B2 (en) * 2002-07-10 2004-06-01 Lsi Logic Corporation Method and system for symbol binarization
US6900748B2 (en) * 2003-07-17 2005-05-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Method and apparatus for binarization and arithmetic coding of a data value
US20080162432A1 (en) * 2006-12-29 2008-07-03 Wen-Shan Wang Search table for unary k-th order exp-golomb decoder
US8412866B2 (en) * 2008-11-24 2013-04-02 Via Technologies, Inc. System and method of dynamically switching queue threshold
US9154792B2 (en) * 2011-11-08 2015-10-06 Qualcomm Incorporated Progressive coding of position of last significant coefficient
CN102801974B (zh) * 2012-07-19 2014-08-20 西安电子科技大学 基于cabac的图像压缩熵编码器
US8854233B2 (en) * 2013-03-04 2014-10-07 Mediatek Inc. Method and system for de-binarization
US9503760B2 (en) * 2013-08-15 2016-11-22 Mediatek Inc. Method and system for symbol binarization and de-binarization

Also Published As

Publication number Publication date
CN108243342A (zh) 2018-07-03
US20180184090A1 (en) 2018-06-28

Similar Documents

Publication Publication Date Title
JP4540585B2 (ja) 符号化装置及び復号化装置
US8081683B2 (en) Decoding-processing apparatus for decoding bitstreams encoded in accordance with an arithmetic-encoding system in image compression and method for performing the same
US8970407B2 (en) Methods and devices for parallel encoding and decoding using a bitstream structured for reduced delay
KR0180169B1 (ko) 가변길이 부호기
US7557740B1 (en) Context-based adaptive binary arithmetic coding (CABAC) decoding apparatus and decoding method thereof
US20100040136A1 (en) Method for performing binarization using a lookup table
KR0141298B1 (ko) 가변 길이 복호화 장치
KR20030089222A (ko) 프로세서와 연결된 프로그램 가능한 가변 길이 디코더
TW201824861A (zh) 二元編碼運算裝置以及方法
KR100667595B1 (ko) 가변 길이 디코더
KR0180164B1 (ko) 가변길이 부호기
JPH08223055A (ja) 可変長コードデコーダ
JP2007295157A (ja) データ符号化装置、データ符号化方法、データ符号化プログラム及びデータ符号化プログラムを記録した情報記録媒体
US8421655B2 (en) Apparatus for parallel entropy encoding and decoding
KR20170013222A (ko) 전용 산술 인코딩 명령
Saidani et al. Implementation of JPEG 2000 MQ-coder
CN113905233B (zh) 基于音频视频编码标准的熵解码方法、可读介质及其电子设备
JP2001007706A (ja) 可変長符号復号化装置
Hmida et al. A high performance architecture design of cavlc coding suitable for real-time applications
JP3389389B2 (ja) 可変長コード復号化装置
KR102109768B1 (ko) Uhd 영상의 고속 처리를 위한 cabac 이진 산술 부호화기
Mukherjee et al. High performance VLSI implementation of CAVLC decoder of H. 264/AVC for HD transmission
KR20020014957A (ko) 가변길이 디코더
Huang et al. Real-Time DSP Implementation of 3D Wavelet Reversible Variable-length Coding for Ultraspectral Sounder Data Compression