JP2006041659A - Variable length decoder - Google Patents
Variable length decoder Download PDFInfo
- Publication number
- JP2006041659A JP2006041659A JP2004215240A JP2004215240A JP2006041659A JP 2006041659 A JP2006041659 A JP 2006041659A JP 2004215240 A JP2004215240 A JP 2004215240A JP 2004215240 A JP2004215240 A JP 2004215240A JP 2006041659 A JP2006041659 A JP 2006041659A
- Authority
- JP
- Japan
- Prior art keywords
- processing unit
- data
- code
- decoder
- setting
- 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.)
- Pending
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
Description
可変長符号で符号化されたデータを復号化する可変長デコーダに関するものである。 The present invention relates to a variable length decoder for decoding data encoded with a variable length code.
NTSCやPAL等の地上波アナログ放送方式および衛星放送方式のデジタル化などのAV機器のデジタル化に伴って、情報量の多い動画像をデジタル信号で効率的に通信するために、動画像圧縮技術が用いられている。動画像圧縮技術の代表的なものとして、MPEG(Moving Picture Exisperts Group)による方式がある。これはISO/IECにおいて議論され、国際標準化されたもので、画面間や画面内の相関を利用してデータ量を圧縮する符号化方式であり、差分符号化や変換符号化されたデータを可変長符号化することによってデータを圧縮する符号化方式である。 Along with the digitalization of AV equipment such as NTSC and PAL digital terrestrial broadcasting systems and satellite broadcasting systems, moving image compression technology to efficiently communicate moving images with a large amount of information with digital signals Is used. As a typical moving image compression technique, there is a method based on MPEG (Moving Picture Experts Group). This was discussed in ISO / IEC and internationally standardized. It is an encoding method that compresses the amount of data using correlation between screens and within screens, and variable encoding and conversion encoding data can be changed. This is an encoding method in which data is compressed by long encoding.
可変長符号化は、無損失のデータ圧縮のために使用される符号化で、データの統計的性質をもとに、固定長のデータを可変長符号に変換する。つまり、データの発生頻度に応じて、発生頻度の大きいデータを短い符号長の符号に変換し、発生頻度の小さいデータを長い符号長の符号に変換する。このデータと可変長符号の対応は符号表と呼ばれ、符号化するデータの統計的性質に応じた符号表を用いることによって、データを圧縮することが可能となる。 Variable length coding is coding used for lossless data compression, and converts fixed length data into variable length code based on the statistical properties of the data. That is, data having a high occurrence frequency is converted into a code having a short code length and data having a low occurrence frequency is converted into a code having a long code length in accordance with the occurrence frequency of the data. The correspondence between the data and the variable length code is called a code table, and the data can be compressed by using a code table corresponding to the statistical properties of the data to be encoded.
一方、可変長符号化されたデータの復号化処理は、符号化時に使用された符号表にしたがって復号化値を得る変換となる。 On the other hand, the decoding process of the variable-length encoded data is a conversion for obtaining a decoded value according to the code table used at the time of encoding.
一般に、可変長符号の復号化処理は符号化処理に比べて処理負荷が大きい。これは、可変長符号の復号化処理が、1つの符号の復号化を完了しなければ次の符号を復号化することができないという逐次的な処理であることによる。特に、映像データを遅延やコマ落ちなどを起こさずに再生するリアルタイム処理を実現する場合、可変長デコーダは高い処理性能が必要となり、このような要求を満たすために可変長デコーダは専用のハードウェアによって実現されることが多い。 In general, decoding processing of variable length codes has a larger processing load than encoding processing. This is because the variable length code decoding process is a sequential process in which the next code cannot be decoded unless the decoding of one code is completed. In particular, when realizing real-time processing that reproduces video data without causing delays or dropped frames, variable-length decoders require high processing performance. To meet these requirements, variable-length decoders have dedicated hardware. It is often realized by.
MPEGでは、符号化するデータに応じて異なる符号表を用いて可変長符号化される。これは、符号化するデータごとに統計的性質が異なるためである。さらに、MPEG−2(ISO/IEC 13818)やMPEG−4(ISO/IEC 14496)のように符号化方式が異なる場合においても、可変長符号化で使用される符号表は異なる。このため、複数の符号化方式に対応する可変長デコーダを実現する場合、異なる符号表を複数実装しなければならず、回路規模が増大する。 In MPEG, variable length encoding is performed using different code tables depending on data to be encoded. This is because the statistical properties differ depending on the data to be encoded. Furthermore, even when the encoding schemes are different, such as MPEG-2 (ISO / IEC 13818) and MPEG-4 (ISO / IEC 14496), the code tables used for variable length encoding are different. For this reason, when realizing a variable length decoder corresponding to a plurality of encoding schemes, a plurality of different code tables must be mounted, which increases the circuit scale.
特許文献1では、メモリを用いて符号表を実現する可変長符号の復号化方法が示されている。この方法で可変長デコーダを実現すると、メモリに格納されたデータを書き換えることによって複数の異なる符号表に対応することが可能になるが、メモリアクセスのためのアドレス計算や、メモリに格納されたデータのアクセスタイムによって、リアルタイム処理を実現するような高い処理性能を得ることは困難である。
一方、プログラマブル ロジック アレイ(PLA)を用いて符号表を実現する方式が非特許文献1に記載されている。PLAは、AND処理部とOR処理部の対によって1つのエントリが構成され、そのエントリが複数個存在するものである。各エントリのAND処理部には同じデータが入力され、各AND処理部は予め設定されたパターンと、入力データが一致するかどうかを検出する。OR処理部は、対応するAND処理部が一致を検出した場合に、予め設定された値と隣接するOR処理部の出力の論理和を出力し、対応するAND処理部が一致を検出しない場合には、隣接するOR処理部の出力をそのまま出力する。このPLAを用いる方法は、メモリを用いる方法に比べて、アドレス計算が不要であるため、より高い処理性能を実現することができる。
しかしながら、前記従来のPLAを使用する可変長デコーダでは、PLAのAND処理部において、1つのエントリに1つの符号が割り当てられるため、符号長の短い符号が割り当てられたエントリには、使用されない回路資源が存在してしまい、回路規模の増大を招くという課題を有していた。 However, in the variable length decoder using the conventional PLA, since one code is assigned to one entry in the AND processing unit of the PLA, circuit resources that are not used for an entry to which a code with a short code length is assigned. Existed, and there was a problem of increasing the circuit scale.
本発明は、前記従来の課題を解決するもので、回路規模の増大を抑制した可変長デコーダを提供することを目的とする。 The present invention solves the above-described conventional problems, and an object thereof is to provide a variable length decoder that suppresses an increase in circuit scale.
前記従来の課題を解決するために、本発明の可変長デコーダは、AND処理部において、1つのエントリで1つの符号を検出するモードと、1つのエントリで複数の符号を検出するモードを有する。1つのエントリで1つの符号を検出するモードでは前期従来の構成と同じ動作を行い、1つのエントリで複数の符号を検出するモードでは複数の符号を検出し、いずれかの符号を検出したときにOR処理部に通知する。 In order to solve the conventional problems, the variable length decoder of the present invention has a mode in which one code is detected by one entry and a mode in which a plurality of codes are detected by one entry in the AND processing unit. In the mode in which one code is detected in one entry, the same operation as the previous configuration is performed, and in the mode in which a plurality of codes are detected in one entry, a plurality of codes are detected, and when any one of the codes is detected Notify the OR processing unit.
本構成によって、符号長の短い複数の符号をAND処理部の1つのエントリに割り当てることができる。 With this configuration, a plurality of codes having a short code length can be assigned to one entry of the AND processing unit.
本発明の可変長デコーダによれば、符号長の短い複数の符号をAND処理部の1つのエントリに割り当てることができるため、従来の構成では使用されない回路資源を使用することが可能となり、回路規模の不必要な増大を抑制することが可能となる。 According to the variable length decoder of the present invention, since a plurality of codes having a short code length can be assigned to one entry of the AND processing unit, circuit resources that are not used in the conventional configuration can be used, and the circuit scale can be used. It is possible to suppress an unnecessary increase of.
以下本発明の実施の形態について、図面を参照しながら説明する。 Embodiments of the present invention will be described below with reference to the drawings.
図6および図7は可変長符号を復号化するために用いる符号表を示す。可変長符号の符号表は、符号と、その符号の長さと、その符号に対応する復号化値から構成される。図6では、例えば、符号00001は、5ビットの符号長で、対応する復号化値は2となる。
6 and 7 show code tables used for decoding variable length codes. The code table of the variable length code includes a code, a length of the code, and a decoded value corresponding to the code. In FIG. 6, for example,
図4は、本発明の一実施例による可変長デコーダを説明するためのブロック図であり、バッファ401とデータ切り出し部404と、デコーダ406から構成される。バッファ401は、可変長符号化された入力データ400を一時的に格納するためのバッファであり、データ切り出し部404からの要求402にしたがってバッファに保持している可変長符号化されたデータ403をデータ切り出し部404に出力する。データ切り出し部404は、バッファ401から入力されるデータ403からデコーダ406の入力ビット数切り出し、切り出したデータ405をデコーダ406に出力する。デコーダ406は、符号表に基づいて切り出したデータ405に対応する符号長データ408をデータ切り出し部404に出力するとともに、復号化値407を出力し、1つの可変長符号の復号化が完了する。次の可変長符号を復号化するには、データ切り出し部404は、デコーダ406から入力される符号長データ408分のデータを読み進め、次のデータを切り出してデコーダ406に出力する。
FIG. 4 is a block diagram for explaining a variable length decoder according to an embodiment of the present invention, which includes a
図5は、本発明の一実施例による可変長デコーダの具体的な動作を、図7の符号表に基づいて符号化された符号の復号化によって説明するものである。時間t0に、001000100111101000という可変長符号化されたデータが、データ切り出し部404に入力されると、データ切り出し部404はデコーダ406に001000の6ビットのデータを出力する。デコーダ406は、符号表に基づいて、001000の入力から符号001に対応する符号長3と復号化値4を出力し、1つの符号の復号化処理を完了する。次に、時間t1において、データ切り出し部404は001000100111101000から3ビット読み進めた箇所から切り出した6ビットのデータ000100を切り出してデコーダ406に出力する。デコーダ406は、符号表に基づいて、000100の入力から符号000100に対応する符号長6と復号化値1を出力し、1つの符号の復号化処理を完了する。以降の符号についても同様に処理され、復号化が行われる。
FIG. 5 illustrates a specific operation of the variable length decoder according to the embodiment of the present invention by decoding a code encoded based on the code table of FIG. When variable-length encoded data 00100101111101000 is input to the
図8は、デコーダ406がPLAによって構成されることを説明するブロック図である。デコーダ406は、AND処理部800、AND処理部802、AND処理部804、AND処理部806と、OR処理部801、OR処理部803、OR処理部805、OR処理部807から構成される。AND処理部800、AND処理部802、AND処理部804、AND処理部806は同じ回路構成を有する。AND処理部800は、設定保持部808、設定保持部809、設定保持部810、設定保持部811、設定保持部812、設定保持部813とマッチング検出部814、マッチング検出部815、マッチング検出部816、マッチング検出部817、マッチング検出部818、マッチング検出部819と、論理積演算器820、論理積演算器821、論理積演算器822から構成される。設定保持部808、設定保持部809、設定保持部810、設定保持部811、設定保持部812、設定保持部813は同じ回路構成を有する。また、マッチング検出部814、マッチング検出部815、マッチング検出部816、マッチング検出部817、マッチング検出部818、マッチング検出部819は同じ回路構成を有する。
FIG. 8 is a block diagram for explaining that the
設定保持部808は、入力827が0か、1か、または無視(x)であるかの何れかを指定する値を保持する。マッチング検出部814は設定保持部808が保持する値が指定する値と入力827が一致するかどうかを検出し、一致する場合には1を出力し、一致しない場合には0を出力する。設定保持部808が無視(x)を指定する値を保持しているときには、入力827の値に依らずに常に1を出力する。このようなAND処理部によって、例えば、001という入力を検出したい場合には、設定保持部808と設定保持部809に0を指定する値を設定し、設定保持部810に1を指定する値を設定し、設定保持部812と設定保持部813にxを指定する値を設定することによって所望の入力パターンを検出することが可能となる。 The setting holding unit 808 holds a value that specifies whether the input 827 is 0, 1 or ignore (x). The matching detection unit 814 detects whether the value held by the setting holding unit 808 matches the value specified by the input 827, and outputs 1 if the values match, and outputs 0 if they do not match. When the setting holding unit 808 holds a value designating ignore (x), 1 is always output regardless of the value of the input 827. For example, when it is desired to detect an input of “001” by such an AND processing unit, a value specifying 0 is set in the setting holding unit 808 and the setting holding unit 809, and a value specifying 1 is set in the setting holding unit 810. It is possible to detect a desired input pattern by setting and setting a value specifying x in the setting holding unit 812 and the setting holding unit 813.
OR処理部801、OR処理部803、OR処理部805、OR処理部807の動作を説明する。OR処理部803、OR処理部805、OR処理部807は同じ回路構成を有する。OR処理部801はAND処理部800から入力される検出信号823が1のときに設定された値を出力し、検出信号823が0のときには0を出力する。OR処理部803は、AND処理部802から入力される検出信号825が1のときに設定された値とOR処理部801からのOR処理部出力データ824の論理和を出力し、検出信号825が0のときにはOR処理部801からのOR処理部出力データ824を出力する。
The operations of the OR processing unit 801, the OR processing unit 803, the OR processing unit 805, and the OR processing unit 807 will be described. The OR processing unit 803, the OR processing unit 805, and the OR processing unit 807 have the same circuit configuration. The OR processing unit 801 outputs a value set when the detection signal 823 input from the AND processing unit 800 is 1, and
上記、PLAを用いたデコーダ406を用いて図6および図7の符号表を実現する場合の設定を図9と図10を用いて説明する。
The setting for realizing the code tables of FIGS. 6 and 7 using the
図9は図6の符号表を実現するときの設定である。図9の設定0はAND処理部の設定保持部で指定する値であり、設定1および設定2はOR処理部に設定する値である。エントリは、AND処理部とOR処理部の対の何れであるかに対応し、エントリが1のものはAND処理部800とOR処理部801に対応し、2のものはAND処理部802とOR処理部803に対応する。例えば、図9のエントリ1では、設定保持部808と設定保持部809と設定保持部810と設定保持部811に0を指定する値が設定され、設定保持部812に1を指定する値が設定され、設定保持部813にxを指定する値が設定され、AND処理部800の検出信号823が1のときに、OR処理部801は符号長である5と復号化値である2を出力するように設定される。なお、符号長と復号化値の両方を復号化する構成として設定1と設定2を設けたが、設定1のみまたは設定2のみをOR処理部に設定する構成としてもよい。
FIG. 9 shows settings for realizing the code table of FIG. The setting 0 in FIG. 9 is a value specified by the setting holding unit of the AND processing unit, and the
図1は本発明の一実施の形態を示すブロック図である。図1において、図8と同じ構成要素については同じ符号を用い、説明を省略する。 FIG. 1 is a block diagram showing an embodiment of the present invention. In FIG. 1, the same components as those in FIG.
図1の本発明の一実施の形態におけるデコーダ406は、AND処理部100、AND処理部101、AND処理部102は同じ回路構成を有する。AND処理部100は、AND処理部800にモード保持部106とセレクタ103、セレクタ104、セレクタ105、セレクタ108と論理和演算器107が追加されたものである。モード保持部106は、AND処理部100で2つの符号を同時に検出するかどうかを保持する。モード保持部106が2つの符号を同時に検出するモードを保持するとき、セレクタ103は入力827を選択し、セレクタ104は入力828を選択し、セレクタ105は入力829を選択し、セレクタ108は論理和演算器107の出力を選択する。モード保持部106が1つの符号のみを検出するモードを保持するとき、セレクタ103は入力830を選択し、セレクタ104は入力831を選択し、セレクタ105は入力832を選択し、セレクタ108は論理積演算器822の出力を選択する。
In the
上記、本発明の一実施の形態を用いて図6および図7の符号表に基づいて符号長を復号化する場合の設定を図2と図3を用いて説明する。 The setting when the code length is decoded based on the code tables of FIGS. 6 and 7 using the embodiment of the present invention will be described with reference to FIGS.
図3は図7の符号長を復号化する符号表を実現するときの設定である。図3の設定0はAND処理部の設定保持部で指定する値であり、設定1はモード保持部に設定する値であり、設定2はOR処理部に設定する値である。エントリは、AND処理部とOR処理部の対の何れであるかに対応し、エントリが1のものはAND処理部100とOR処理部801に対応し、2のものはAND処理部102とOR処理部803に対応する。モード保持部で設定する値は、0は1つの符号のみを検出するモードであることを指定し、1は2つの符号を検出するモードであることを指定する。例えば、図3のエントリ1では、モード保持部に1が指定されているため、エントリ1のAND処理部は2つの符号を検出する。この例では、AND処理部100において、001という符号と111という符号が同時に検出される。
FIG. 3 shows settings for realizing a code table for decoding the code length of FIG. In FIG. 3, setting 0 is a value specified by the setting holding unit of the AND processing unit, setting 1 is a value set in the mode holding unit, and setting 2 is a value set in the OR processing unit. An entry corresponds to a pair of an AND processing unit and an OR processing unit, an entry having 1 corresponds to an AND processing unit 100 and an OR processing unit 801, and two has an AND processing unit 102 and an OR. This corresponds to the processing unit 803. The value set by the mode holding unit specifies that 0 is a mode for detecting only one code, and 1 is a mode for detecting two codes. For example, in
図2は図6の符号長を復号化する符号表を実現するときの設定である。図2の設定では設定1が全て0であるので、全てのエントリはそれぞれ1つの符号を検出する。
FIG. 2 shows settings for realizing a code table for decoding the code length of FIG. In the setting of FIG. 2, since all the
かかる構成によれば、モード保持部とセレクタと論理和演算器を追加することにより、使用されない回路資源を削減することができ、PLAのエントリ数(個数)を削減することができる。 According to such a configuration, by adding a mode holding unit, a selector, and an OR calculator, circuit resources that are not used can be reduced, and the number of PLA entries (number) can be reduced.
本発明のデコーダとプロセッサを接続し、上記図2および図3の設定を、プロセッサ上で動作するプログラムによって行ってもよい。図11は本発明のデコーダに図2のエントリ1の設定を行うプログラムの例である。wt命令はデータをレジスタに書き込む命令で、1行目では、『0』というデータが本発明のデコーダにおけるエントリ1の設定0の最上位ビットを表すレジスタ(%conf_1_0_0)に書き込まれる。2行目から6行目では、1行目と同様にエントリ1の設定0の設定が行われる。6行目で書き込まれる『2』というデータは図2の『x』をあらわす。設定1の設定は7行目の%conf_1_1への書き込みによって行われ、設定2の設定は8行目の%conf_1_2への書き込みによって行われる。本発明のデコーダの設定を専用命令で行うこともできる。図12は上記wt命令のような汎用的な命令ではなく、本発明のデコーダ専用の命令で設定するプログラムの例である。setconf1命令はエントリ1の設定を行う命令であり、setconf2命令はエントリ2の設定を行う命令で、setconf3命令はエントリ3の設定を行う命令である。このような専用命令を用いて設定することで、本発明のデコーダの設定に要する時間を削減することができる。
The decoder of the present invention may be connected to a processor, and the settings shown in FIGS. 2 and 3 may be performed by a program operating on the processor. FIG. 11 shows an example of a program for setting
なお、上記一実施の形態では、AND処理部では2つの符号を検出する構成としたが、3つ以上の符号を検出する構成としてもよいし、上記一実施の形態では、全てのエントリで複数の符号を検出することができる構成としたが、一部のエントリのみ複数の符号を検出できる構成としてもよいし、上記一実施の形態では、エントリごとにモードを設けたが複数のエントリごとにモードを設けてもよい。 In the above-described embodiment, the AND processing unit detects two codes. However, the AND processing unit may detect three or more codes. In the above-described embodiment, multiple entries may be used for all entries. However, it may be configured such that only some of the entries can detect a plurality of codes. In the above embodiment, a mode is provided for each entry. A mode may be provided.
本発明に係る復号化装置等は、LSI等の電子回路で実現される映像デコーダ等として利用することができる。例えば、符号化された動画像を復号化して再生するコンピュータ、PDA、デジタル放送受信機及び携帯電話機等に備えられる映像デコーダ等として有用である。 The decoding device or the like according to the present invention can be used as a video decoder or the like realized by an electronic circuit such as an LSI. For example, the present invention is useful as a video decoder or the like provided in a computer, PDA, digital broadcast receiver, mobile phone, or the like that decodes and plays back an encoded moving image.
100 AND処理部
101 AND処理部
102 AND処理部
103 セレクタ
104 セレクタ
105 セレクタ
106 モード保持部
108 セレクタ
400 入力データ
401 バッファ
402 要求
403 データ
404 データ切り出し部
405 切り出したデータ
406 デコーダ
407 出力データ
408 符号長データ
800,802,804,806 AND処理部
801,803,805,807 OR処理部
808,809,810,811,812,813 設定保持部
814,815,816,817,818,819 マッチング検出部
820,821,822 論理積演算器
823 検出信号
824 OR処理部出力データ
825 検出信号
826 OR処理部出力データ
827,828,829,830,831,832 入力データ
100 AND processing unit 101 AND processing unit 102 AND processing unit 103 selector 104 selector 105 selector 106 mode holding unit 108
Claims (2)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004215240A JP2006041659A (en) | 2004-07-23 | 2004-07-23 | Variable length decoder |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004215240A JP2006041659A (en) | 2004-07-23 | 2004-07-23 | Variable length decoder |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006041659A true JP2006041659A (en) | 2006-02-09 |
Family
ID=35906211
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004215240A Pending JP2006041659A (en) | 2004-07-23 | 2004-07-23 | Variable length decoder |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006041659A (en) |
-
2004
- 2004-07-23 JP JP2004215240A patent/JP2006041659A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8462841B2 (en) | System, method and device to encode and decode video data having multiple video data formats | |
US7804903B2 (en) | Hardware-based CABAC decoder | |
US5576765A (en) | Video decoder | |
US6008745A (en) | Variable length decoding using lookup tables | |
US6215424B1 (en) | System for variable length codeword processing suitable for video and other applications | |
US11234005B2 (en) | Device and method of video decoding with first and second decoding code | |
JP2005510981A (en) | Multi-channel video transcoding system and method | |
US20060133507A1 (en) | Picture information decoding method and picture information encoding method | |
US6185339B1 (en) | Bit stream analyzing method and apparatus | |
US20200162748A1 (en) | Device and method of video encoding with first and second encoding code | |
US6285789B1 (en) | Variable length code decoder for MPEG | |
US20110316862A1 (en) | Multi-Processor | |
US8625677B2 (en) | Apparatus processing video stream | |
TWI455587B (en) | Circuit and method for multi-format video codec | |
JP2007259323A (en) | Image decoding apparatus | |
US20160134894A1 (en) | Video compression method and video compressor | |
US20170064321A1 (en) | System and method for decoding a video digital data stream using a table of range values and probable symbols | |
US8228214B2 (en) | Variable-length code decoding apparatus and method | |
US6512852B1 (en) | Method and apparatus for concatenating bits of odd-length words | |
US20070242749A1 (en) | Image frame compression of video stream with fast random accessing and decompressing | |
US20120183071A1 (en) | Video decoder with adaptive outputs | |
JP2006041659A (en) | Variable length decoder | |
US20090245350A1 (en) | Image coding apparatus and image coding method | |
US5619200A (en) | Code table reduction apparatus for variable length decoder | |
US7675437B2 (en) | Variable length decoding device and method for improving variable length decoding performance |