JP2002141806A - Variable length code decoding device - Google Patents
Variable length code decoding deviceInfo
- Publication number
- JP2002141806A JP2002141806A JP2000332538A JP2000332538A JP2002141806A JP 2002141806 A JP2002141806 A JP 2002141806A JP 2000332538 A JP2000332538 A JP 2000332538A JP 2000332538 A JP2000332538 A JP 2000332538A JP 2002141806 A JP2002141806 A JP 2002141806A
- Authority
- JP
- Japan
- Prior art keywords
- length code
- variable
- data
- variable length
- information
- 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.)
- Withdrawn
Links
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
【0001】[0001]
【発明の属する技術分野】本発明は、可変長符号の復号
技術に関し、例えばセットトップボックス、ディジタル
TV、移動体端末装置、ディジタル音声端末装置、そし
てメディア端末装置等に適用して有効な技術に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a technology for decoding variable-length codes, and more particularly to a technology effective when applied to a set-top box, a digital TV, a mobile terminal, a digital voice terminal, a media terminal, and the like. .
【0002】[0002]
【従来の技術】可変長符号の復号原理について説明す
る。復号には可変長符号テーブルを使用する。可変長符
号テーブルは可変長符号に対応する変換対象記号(復号
データ)が定義されている。例えば可変長符号と変換対
象記号の対応を例示すると、可変長符号=変換対象記号
は、01=a、11=b、001=c、101=d、0
001=e、1001=fのようにされる。2. Description of the Related Art The principle of decoding a variable length code will be described. A variable length code table is used for decoding. The variable-length code table defines conversion target symbols (decoded data) corresponding to the variable-length codes. For example, when the correspondence between the variable length code and the symbol to be converted is exemplified, the variable length code = the symbol to be converted is 01 = a, 11 = b, 001 = c, 101 = d, 0
001 = e and 1001 = f.
【0003】可変長符号は上例のように変換対象の記号
a,b,c,d,e,fに対して異なった長さの符号を
与えるもので、通常は出現確率の高い記号a,bに対し
ては短い符号を割り当て、出現確率の低い記号e,fに
対しては長い符号を割り当てることにより、全体として
情報量の圧縮を実現する。割り当て方法として代表的な
ものが上記例に示したハフマン符号である。[0003] The variable-length code gives codes of different lengths to the symbols a, b, c, d, e, f to be converted as in the above example. By assigning a short code to b and assigning a long code to the symbols e and f having low appearance probabilities, the information amount is compressed as a whole. A typical allocation method is the Huffman code shown in the above example.
【0004】このハフマン符号の復号は以下のように行
う。ここで、復号器において、記号列“cbaf”に相
当する符号列“00111011001”が入力される
ケースを説明する。先ず、入力データを左から1ビット
づつシフトしてレジスタに入力し、レジスタの値を符号
テーブルの値と比較する。一致したものが有ればそれに
対応する記号を出力し、シフトレジスタの値を全てクリ
アした後に、同様に次のデータを1ビットづつシフトと
して入力する。一致したものがなければ次のビットをシ
フトしてレジスタに入力し、符号テーブルとの比較を繰
り返す。[0004] The decoding of the Huffman code is performed as follows. Here, a case where a code string “00111011001” corresponding to the symbol string “cbaf” is input to the decoder will be described. First, the input data is shifted one bit at a time from the left and input to the register, and the value of the register is compared with the value of the code table. If there is a match, the corresponding symbol is output, and after clearing all the values in the shift register, the next data is similarly input as a one-bit shift. If there is no match, the next bit is shifted and input to the register, and the comparison with the code table is repeated.
【0005】上記例の場合の復号処理を1ステップ毎に
示せば、 (1)SR(シフトレジスタの値)=0:該当符号な
し、 (2)SR=00:該当符号なし、 (3)SR=001:符号テーブル内cに一致、→c出
力,SRクリア、 (4)SR=1:該当符号なし、 (5)SR=11:符号テーブル内bに一致、→b出
力,SRクリア、 (6)SR=0:該当符号なし、 (7)SR=01:符号テーブル内aに一致、→a出
力,SRクリア、 (8)SR=1:該当符号なし、 (9)SR=10:該当符号なし、 (10)SR=100:該当符号なし、 (11)SR=1001:符号テーブル内fに一致、→
f出力,SRクリア、という動作になる。このように、
可変長符号は符号の長さが違うために、復号時には1ビ
ットずつデータの長さを変えながら可変長符号テーブル
との比較を行う必要がある。この動作をマイクロプロセ
ッサで実現した場合、シフト命令とテーブル一つ一つと
の比較命令を多用する必要があり、固定長の符号に対す
る処理と比較して計算量が増大する。例えば今日のMP
EG(ムービング・ピクチャー・イクスパーツ・グルー
プ)2のソフトウエアデコーダではこの可変長符号の復
号に全体の計算量の20〜25%程度を費やしており、
可変長符号に対する復号処理の高速化が要求されてい
る。[0005] If the decoding process in the above example is shown for each step, (1) SR (shift register value) = 0: no sign, (2) SR = 00: no sign, (3) SR = 001: Matches c in the code table, → c output, SR clear, (4) SR = 1: No corresponding code, (5) SR = 11: Matches b in code table, → b output, SR clear, ( 6) SR = 0: No corresponding sign, (7) SR = 01: Matches a in code table, → a output, SR clear, (8) SR = 1: No sign, (9) SR = 10: Corresponding No sign, (10) SR = 100: No sign, (11) SR = 1001: Matches f in code table, →
The operation becomes f output and SR clear. in this way,
Since the variable length code has a different code length, it is necessary to compare the variable length code with the variable length code table while changing the data length by one bit at the time of decoding. If this operation is realized by a microprocessor, it is necessary to use a lot of shift instructions and comparison instructions for each table, which increases the amount of calculation compared to processing for fixed-length codes. For example, today ’s MP
The software decoder of EG (Moving Picture Experts Group) 2 spends about 20 to 25% of the total amount of calculation for decoding the variable length code.
There is a demand for faster decoding processing for variable-length codes.
【0006】可変長符号の復号処理はハードウェアによ
る処理とソフトウェアによる処理に大別される。本発明
者が先に検討したハードウェアによる実現回路を図9に
例示し、ソフトウェアによる処理フローを図10に例示
する。[0006] The decoding process of the variable length code is roughly classified into a process by hardware and a process by software. FIG. 9 illustrates a hardware-implemented circuit previously considered by the present inventors, and FIG. 10 illustrates a software processing flow.
【0007】図9においてストリームデコーダと可変長
符号テーブルは可変長符号の種類に応じた数(図9では
4組)だけ配置される。どのストリームデコーダを動作
させるかはステートマシンからのモード信号で選択され
る。入力データはバレルシフタに入力され、その出力ス
トリームとステートマシンからのモード信号が1個のス
トリームデコーダによってデコードされ、デコード結果
に対応する1個の可変長符号テーブルの値が出力され
る。可変長符号テーブルは例えばMPEG2などの規格
に準拠した可変長符号のテーブルを有しており、可変長
符号に対応するデータと前記バレルシフタに対するデー
タシフト量が出力される。バレルシフタは前記データシ
フト量に従ってシフト動作を行い、次の符号の区切りを
出力ストリームの先頭とする。In FIG. 9, the number of stream decoders and variable length code tables corresponding to the number of variable length codes (four in FIG. 9) is arranged. Which stream decoder is operated is selected by a mode signal from the state machine. The input data is input to the barrel shifter, the output stream and the mode signal from the state machine are decoded by one stream decoder, and one variable length code table value corresponding to the decoding result is output. The variable-length code table has a table of variable-length codes compliant with, for example, the MPEG2 standard, and outputs data corresponding to the variable-length codes and a data shift amount with respect to the barrel shifter. The barrel shifter performs a shift operation in accordance with the data shift amount, and sets the next code break as the head of the output stream.
【0008】図10のフローチャートは図9で説明した
バレルシフタ、ステートマシン及び可変長符号のデコー
ドをCPUによるソフトウェア処理で実現する例を示し
ている。まず、可変長符号の種類に応じたモード設定が
行なわれ、次に入力ストリームから先頭の数ビットがデ
コードされてそのビット列が何れかの可変長符号に対応
するか否かが判定される。ここで、1回のデコードで解
析するビット長をnビットとすると、2^n(記号^は
べき乗を意味する)のデコード結果を調べる必要があ
り、可変長符号は通常16〜20ビットの長さを持つの
で、可変長符号の最大ビット長単位でそれを全ビット一
度に解析するには膨大なワークメモリを要し、現実的で
はない。そこで、前述したようにデコードするストリー
ムの先頭から数ビットずつに区切った単位でデコード
し、あるビット列までのデコードで符号を判定できる場
合にはそのデコード結果を出力し、符号の最大ビット長
に応ずる規定回数のデコードを完了していない場合は、
その次のビット列を先頭としてデコードを行なう。これ
によってもデコード結果が判定不可能の場合は、さらに
次のビット列を調べる。このようにソフトウェア処理で
は1符号のデコードに通常、数クロック〜数10クロッ
ク程度を要する。The flowchart of FIG. 10 shows an example in which the barrel shifter, the state machine, and the decoding of the variable length code described in FIG. 9 are realized by software processing by the CPU. First, a mode is set according to the type of the variable length code, and then the first few bits are decoded from the input stream, and it is determined whether or not the bit string corresponds to any variable length code. Here, assuming that the bit length analyzed in one decoding is n bits, it is necessary to check the decoding result of 2 ^ n (symbol 意味 means a power), and the variable length code is usually 16 to 20 bits long. Therefore, analyzing a maximum length bit unit of a variable length code in all bits at once requires a huge work memory, which is not practical. Therefore, as described above, decoding is performed in units of a few bits from the beginning of the stream to be decoded, and if the code can be determined by decoding up to a certain bit string, the decoding result is output and the maximum bit length of the code corresponds to If you have not completed the specified number of decodes,
Decoding is performed starting from the next bit string. If the decoding result still cannot be determined, the next bit string is checked. As described above, in software processing, decoding of one code usually requires several clocks to several tens of clocks.
【0009】[0009]
【発明が解決しようとする課題】しかしながら、上記図
9の検討技術では、ストリームデコーダ及び可変長符号
テーブルがハードウェアで実現されている為、ストリー
ムデータを符号の最大ビット長に応ずるビット数単位で
デコードすればデコード動作は高速化することができる
が、意図された仕様以外の可変長符号に対しては容易に
対応できないことが本発明者によって明らかにされた。
例えばMPEGビデオデータに特化されたハードウェア
ではMPEGオーディオデータの復号に利用することは
できない。However, in the study technique of FIG. 9, since the stream decoder and the variable-length code table are realized by hardware, the stream data is converted in units of bits corresponding to the maximum bit length of the code. The present inventor has clarified that the decoding operation can be sped up by decoding, but it cannot easily cope with a variable length code other than the intended specification.
For example, hardware specialized for MPEG video data cannot be used for decoding MPEG audio data.
【0010】また、図10の検討技術は、所謂プロセッ
サによる可変長符号のソフトウェアデコードに相当する
が、前述のように可変長符号のソフトウェアデコードは
通常1〜4ビットのビット列単位で行なわれるため、例
えば最大20ビットの可変長符号のデコードでは1符号
のデコードに最大10クロック程度要する構成となり、
プロセッサによる処理としてはかなり効率の悪い処理に
なるという問題点のあることが明らかにされた。The study technique shown in FIG. 10 corresponds to software decoding of a variable-length code by a so-called processor. However, as described above, software decoding of a variable-length code is usually performed in units of 1 to 4 bits. For example, decoding of a variable-length code of up to 20 bits requires a maximum of about 10 clocks to decode one code.
It has been clarified that there is a problem that the processing by the processor is considerably inefficient.
【0011】また、可変長符号が音声や画像情報の符号
化に利用されていることに鑑みれば、インターネット、
ディジタルケーブル放送サービス、ディジタル衛星放送
サービスなどによって画像情報や音声情報を配信しよう
とするとき、将来に亘って様々な形式の符号化データを
処理できるようにすることの有用性が本発明者によって
見出された。それを所謂プロセッサによる可変長符号の
ソフトウェアデコードで対処したのでは満足のいく動作
速度を実現することは難しい。In view of the fact that variable-length codes are used for encoding voice and image information, the Internet,
When attempting to distribute image information and audio information through digital cable broadcasting services, digital satellite broadcasting services, and the like, the present inventor has found that the utility of processing encoded data in various formats in the future is useful. Was issued. It is difficult to achieve a satisfactory operation speed by coping with this by software decoding of a variable-length code by a so-called processor.
【0012】本発明の目的は、定義の異なる可変長符号
若しくは可変長符号の仕様変更に対して柔軟に対応する
ことができる、可変長符号復号処理可能な半導体装置を
提供することにある。An object of the present invention is to provide a variable length code decoding semiconductor device capable of flexibly coping with a variable length code having a different definition or a change in the specification of a variable length code.
【0013】本発明の別の目的は、数ビットのビット列
単位で直列的に符号判定処理を行う場合に比べて処理時
間を短縮することができる、可変長符号復号処理可能な
半導体装置を提供することにある。Another object of the present invention is to provide a semiconductor device capable of variable-length code decoding, which can reduce the processing time as compared with the case where code determination processing is performed serially in units of bit strings of several bits. It is in.
【0014】本発明の更に別の目的は、情報配信システ
ムのような情報処理システムにおいて、将来に亘って様
々な形式の符号化データの能率的な復号処理を保証でき
るようにすることにある。Still another object of the present invention is to provide an information processing system such as an information distribution system, which can guarantee efficient decoding of encoded data in various formats in the future.
【0015】本発明の前記並びにその他の目的と新規な
特徴は本明細書の記述及び添付図面から明らかになるで
あろう。The above and other objects and novel features of the present invention will become apparent from the description of the present specification and the accompanying drawings.
【0016】[0016]
【課題を解決するための手段】本願において開示される
発明のうち代表的なものの概要を簡単に説明すれば下記
の通りである。The following is a brief description of an outline of a typical invention among the inventions disclosed in the present application.
【0017】〔1〕可変長符号を復号可能な半導体装置
は、書換え可能とされる可変長符号テーブルと、前記可
変長符号テーブルからデータを読み出すための情報を可
変長符号に応じて発生するアドレス発生回路と、可変長
符号のデータ列をシフトして前記アドレス発生回路に与
えるシフタとを有する。このとき、前記アドレス発生回
路は、可変長符号に応ずるアドレス情報を書換え可能に
保持することができるレジスタユニットを備える。前記
シフタは前記可変長符号テーブルから出力されるデータ
に基づいてデータ列をシフトし可変長符号の区切りをデ
ータ端として出力可能である。[1] A semiconductor device capable of decoding a variable length code includes a rewritable variable length code table and an address for generating information for reading data from the variable length code table in accordance with the variable length code. A generating circuit; and a shifter that shifts the data string of the variable-length code and supplies the shifted data string to the address generating circuit. At this time, the address generation circuit includes a register unit capable of rewritably holding address information corresponding to a variable length code. The shifter can shift a data string based on data output from the variable length code table and output a variable length code segment as a data end.
【0018】前記レジスタユニットに対する書換えによ
り、可変長符号に対するアドレス情報の対応を任意に変
更することができるから、様々な可変長符号定義に対し
て可変長符号テーブルの記憶エリアを無駄にすること無
く、可変長符号の復号を行うことができる。可変長符号
テーブルには可変長符号定義に対応してデータ値を規則
的に配置しておけばよく、可変長符号定義に応じて、レ
ジスタユニットと共に可変長符号テーブルも書き換えら
れる。By rewriting the register unit, the correspondence of the address information to the variable length code can be changed arbitrarily, so that the storage area of the variable length code table is not wasted for various variable length code definitions. , Variable-length codes can be decoded. It is sufficient that data values are regularly arranged in the variable length code table corresponding to the variable length code definition, and the variable length code table is rewritten together with the register unit according to the variable length code definition.
【0019】レジスタユニット及び可変長符号テーブル
に対する書換え無しで複数種類の可変長符号定義に対応
するには、可変長符号テーブルを複数持ち、前記アドレ
ス発生回路には異なる可変長符号テーブルに対して別々
のレジスタユニットを設け、使用されるレジスタユニッ
トをモード信号によって選択させる。このとき、前記モ
ード信号に基づいて可変長符号テーブルを指定するオフ
セットアドレス情報に前記レジスタユニットが保持する
アドレス情報を加算して可変長符号テーブルに与えれば
よい。In order to cope with a plurality of types of variable length code definitions without rewriting the register unit and the variable length code table, a plurality of variable length code tables are provided, and the address generating circuit has different variable length code tables for different variable length code tables. And the register unit to be used is selected by the mode signal. At this time, the address information held by the register unit may be added to the offset address information for designating the variable length code table based on the mode signal, and the result may be given to the variable length code table.
【0020】前記可変長符号テーブルは、例えばRAM
によって構成してよい。The variable length code table is, for example, a RAM
May be configured.
【0021】可変長符号に応ずるアドレス情報の発生動
作を高速化するための具体的な態様として、前記アドレ
ス発生回路は、入力した可変長符号のデータ列を複数の
ビット列毎に分けて並列的にデコードしデコード結果を
対応するビット列用のレジスタユニットに与える複数の
入力デコーダを有する。前記夫々のレジスタユニット
は、当該レジスタユニットがレジスタユニット選択信号
にて選択されたとき対応する前記入力デコーダによるデ
コード結果に基づいて一つが選択される複数個のレジス
タを備える。更に、アドレス発生回路は、前記レジスタ
ユニット内で選択されたレジスタの第1領域からの出力
が第1状態であることに応答して当該レジスタの第2領
域からの出力を前記アドレス情報として出力可能な出力
ゲート回路と、前記レジスタユニット内で選択されたレ
ジスタの第1領域からの出力が第2状態であることに応
答して当該レジスタの第2領域からの出力をデコードし
て次段ビット列用のレジスタユニットに対するレジスタ
ユニット選択信号として出力可能な選択デコーダとを有
する。As a specific mode for speeding up the operation of generating address information corresponding to a variable-length code, the address generation circuit divides an input variable-length code data string into a plurality of bit strings and performs parallel processing. It has a plurality of input decoders for decoding and providing a decoded result to a corresponding bit string register unit. Each of the register units includes a plurality of registers, one of which is selected based on a decoding result by the corresponding input decoder when the register unit is selected by a register unit selection signal. Further, the address generation circuit can output the output from the second area of the register selected as the address information in response to the output from the first area of the register selected in the register unit being in the first state. And an output gate circuit for decoding the output from the second area of the register selected in response to the output from the first area of the register selected in the register unit being in the second state. And a selection decoder capable of outputting as a register unit selection signal for the register unit.
【0022】このアドレス発生回路によれば、可変長符
号を専らソフトウェアでデコードするのと異なり、分割
された複数のビット列のデコードを並列に行なうことが
できるため、可変長符号のデコード時間、即ち可変長符
号に応ずるアドレス情報生成処理時間、を大幅に短縮す
ることができる。According to this address generating circuit, the decoding of a plurality of divided bit strings can be performed in parallel, unlike decoding of the variable length code exclusively by software. Address information generation processing time corresponding to a long code can be significantly reduced.
【0023】〔2〕別の観点による発明では前記レジス
タユニットに可変長符号の対応データを直接セットす
る。即ち、可変長符号を復号可能な半導体装置は、入力
データをシフトするシフタと、前記シフタの出力データ
を入力し、その入力データに含まれる可変長符号の対応
データを発生するデータ発生回路とを有する。前記デー
タ発生回路は、可変長符号に応じて発生すべき対応デー
タを書換え可能に保持することができるレジスタユニッ
トを有し、前記シフタは前記データ発生回路から出力さ
れる対応データに基づいて入力データをシフトし可変長
符号の区切りをデータ端として出力する。[2] In the invention according to another aspect, data corresponding to a variable length code is directly set in the register unit. That is, a semiconductor device capable of decoding a variable-length code includes a shifter that shifts input data, and a data generation circuit that inputs output data of the shifter and generates corresponding data of a variable-length code included in the input data. Have. The data generating circuit has a register unit capable of rewritably holding corresponding data to be generated in accordance with a variable length code, and the shifter is configured to input data based on the corresponding data output from the data generating circuit. And outputs the end of the variable-length code as a data end.
【0024】この手段によっても、様々な可変長符号定
義に対して可変長符号テーブルの記憶エリアを無駄にす
ること無く、可変長符号の復号を行うことができる。但
し、種々の定義の可変長符号を用いるシステムの場合、
それぞれの符号の復号データ情報(すなわち復号データ
及びビットシフト値)はビット長にばらつきのあること
が多いため、符号データ情報を全て、アドレス発生回路
内のレジスタユニットで持つよりも、後段にテーブルを
持ち前段のアドレス発生回路にはそのテーブルのアドレ
ス値のみを持つ構成にした方が回路規模を縮小できるこ
とがある。According to this means, the decoding of the variable length code can be performed without wasting the storage area of the variable length code table for various variable length code definitions. However, in the case of a system using variable-length codes of various definitions,
Since the decoded data information of each code (that is, decoded data and bit shift value) often has a bit length variation, a table is provided at a subsequent stage rather than having all the code data information in the register unit in the address generation circuit. In some cases, it is possible to reduce the circuit scale if the address generation circuit at the previous stage has only the address value of the table.
【0025】〔3〕マイクロコンピュータのような半導
体装置に着目すると、半導体装置は可変長符号復号部
と、命令を実行して前記可変長符号復号部を制御可能な
プロセッサ部とを有する。前記可変長符号復号部は、前
記プロセッサ部の制御により書換え可能とされる可変長
符号テーブルと、前記可変長符号テーブルからデータを
読み出すための情報を可変長符号に応じて発生するアド
レス発生回路とを有する。ここで前記アドレス発生回路
は、可変長符号に応ずるアドレス情報を書換え可能に保
持することができるレジスタユニットを有する。前記プ
ロセッサ部は前記可変長符号テーブルから出力されるデ
ータに基づいてデータ列をシフトし可変長符号の区切り
をデータ端として前記アドレス発生回路に出力可能であ
る。[3] Focusing on a semiconductor device such as a microcomputer, the semiconductor device has a variable-length code decoding unit and a processor unit that can execute an instruction to control the variable-length code decoding unit. The variable-length code decoding unit includes a variable-length code table that is rewritable under the control of the processor unit, and an address generation circuit that generates information for reading data from the variable-length code table in accordance with the variable-length code. Having. Here, the address generation circuit has a register unit capable of rewritably holding address information corresponding to a variable length code. The processor unit can shift a data string based on data output from the variable length code table, and output the data string to the address generation circuit with a variable length code segment as a data end.
【0026】この観点では上記シフタの機能や可変長符
号復号部の全体的な制御はプロセッサ部が行う。可変長
符号部は例えばディジタル信号処理部或いはアクセラレ
ータ等として位置付けることができる。この構成におい
ても上記同様に、可変長符号に対するアドレス情報の対
応を任意に変更することができるから、様々な可変長符
号定義に対して可変長符号テーブルの記憶エリアを無駄
にすること無く、可変長符号の復号を行うことができ
る。From this viewpoint, the processor controls the function of the shifter and the overall control of the variable-length code decoder. The variable length coding unit can be positioned as, for example, a digital signal processing unit or an accelerator. In this configuration, the correspondence of the address information to the variable-length code can be arbitrarily changed in the same manner as described above, so that the storage area of the variable-length code table can be changed for various variable-length code definitions without waste. Decoding of long codes can be performed.
【0027】レジスタユニット及び可変長符号テーブル
に対する書換え無しで複数種類の可変長符号構造に対応
するには、可変長符号テーブルを複数持ち、前記アドレ
ス発生回路には異なる可変長符号テーブルに対して別々
のレジスタユニットを設け、使用されるレジスタユニッ
トはプロセッサ部より与えられるモード信号によって選
択させる。このとき、前記モード信号に基づいて可変長
符号テーブルを指定するオフセット情報に前記レジスタ
ユニットが保持するアドレス情報を加算して可変長符号
テーブルに与えればよい。In order to cope with a plurality of types of variable length code structures without rewriting the register unit and the variable length code table, a plurality of variable length code tables are provided, and the address generating circuit has different variable length code tables for different variable length code tables. And the register unit to be used is selected by a mode signal given from the processor unit. At this time, the address information held by the register unit may be added to the offset information specifying the variable length code table based on the mode signal, and the result may be provided to the variable length code table.
【0028】前記可変長符号テーブルは、例えば前記プ
ロセッサ部のアドレス空間に配置されたRAMによって
構成してよい。The variable length code table may be constituted by a RAM arranged in an address space of the processor, for example.
【0029】プロセッサ部と可変長符号復号部との間の
データ処理速度の相違等に鑑みると、前記アドレス発生
回路の前段と前記可変長符号テーブルの後段にFIFO
バッファを設け、その違いを吸収できるようにするとよ
い。In view of the difference in data processing speed between the processor section and the variable-length code decoding section, FIFOs are provided before the address generation circuit and after the variable-length code table.
It is preferable to provide a buffer so that the difference can be absorbed.
【0030】可変長符号に応ずるアドレス情報の発生動
作を高速化する場合には、上記同様に、分割された複数
のビット列のデコードを並列に行なうようにすればよ
い。In order to speed up the operation of generating the address information corresponding to the variable length code, a plurality of divided bit strings may be decoded in parallel as described above.
【0031】前記プロセッサ部は前記可変長符号復号部
による復号処理に並行して専らソフトウェアに依存して
別の可変長符号の復号処理を行うことができる。例えば
前記可変長符号のデータが動画像情報の符号化情報であ
るとき、プロセッサ部は、画素データに係る符号化情報
の復号処理を前記可変長符号復号部を動作させて高速に
行い、それに比べて処理時間に余裕のある動き補償ベク
トルデータに係る符号化情報の復号処理を前記可変長符
号復号部を動作させずに行う。The processor unit can perform another variable length code decoding process exclusively depending on software in parallel with the decoding process by the variable length code decoding unit. For example, when the data of the variable-length code is the encoded information of the moving image information, the processor unit operates the variable-length code decoding unit to perform the decoding process of the encoded information related to the pixel data at a high speed. Thus, the decoding process of the coded information relating to the motion compensation vector data having a sufficient processing time is performed without operating the variable length code decoding unit.
【0032】〔4〕可変長符号によって符号化された画
像情報や音声情報をインターネットやディジタルケーブ
ル放送サービスなどを介して配信する状況に着目する。
この観点の発明に係る情報処理システムは、可変長符号
を復号可能な情報処理端末装置にホスト装置から伝送路
を介して符号化情報を配信する。このとき、前記ホスト
装置は、情報処理端末装置からのリクエストに応答し
て、当該情報処理端末装置に、可変長符号と復号データ
との対応を変更可能に定義する復号定義情報を与える。
これにより、情報処理端末装置は、将来に亘って様々な
形式の符号化データを扱うことができ、可変長符号の復
号処理もソフトウェアデコードに比べて高速化すること
ができる。[4] Attention is paid to a situation in which image information and audio information encoded by a variable-length code are distributed via the Internet, a digital cable broadcasting service, or the like.
An information processing system according to an aspect of the present invention distributes encoded information from a host device to an information processing terminal device capable of decoding a variable length code via a transmission path. At this time, in response to the request from the information processing terminal device, the host device provides the information processing terminal device with decoding definition information that defines the correspondence between the variable length code and the decoded data in a changeable manner.
Accordingly, the information processing terminal device can handle encoded data of various formats in the future, and the speed of decoding variable-length codes can be increased as compared with software decoding.
【0033】配信される前記可変長符号は例えば動画像
情報又は音声情報の符号化情報である。前記ホスト装置
は、端末装置からのリクエストに応答して、動画像情報
又は音声情報の符号化情報を配信する。The distributed variable length code is, for example, encoded information of moving image information or audio information. The host device distributes encoded information of moving image information or audio information in response to a request from a terminal device.
【0034】ネットワークを介してサーバがクライアン
トに情報を配信する情報処理方法の観点に立つと、サー
バは、可変長符号に応ずる対応データを格納する可変長
符号テーブルと可変長符号に応じて前記可変長符号テー
ブルのアドレス情報を生成するアドレス発生回路とを有
するクライアントからリクエストを受信し、そのリクエ
ストに応答して、前記可変長符号テーブルへの前記対応
データと、前記アドレス発生回路へのアドレス発生機能
定義情報とを前記ネットワークを介してクライアントに
送信する。From the viewpoint of an information processing method in which a server distributes information to a client via a network, the server includes a variable-length code table for storing corresponding data corresponding to a variable-length code and the variable-length code according to the variable-length code. A request is received from a client having an address generation circuit for generating address information of a long code table, and in response to the request, the corresponding data to the variable length code table and an address generation function to the address generation circuit And transmitting the definition information to the client via the network.
【0035】[0035]
【発明の実施の形態】図1には本発明に係る半導体装置
1の一例が示される。同図には可変長符号を復号する回
路部分として、バレルシフタ2、アドレス発生回路3、
可変長符号テーブル4、ステートマシン5、及びCPU
(中央処理装置)インタフェース回路6が代表的に示さ
れる。可変長符号テーブル4はレジスタファイル又はシ
ングルポートのRAMにより実現され、その記憶内容は
CPUインタフェース回路6を経由して書き換え可能で
ある。アドレス発生回路3及び可変符号テーブル4は可
変長符号復号回路を構成する。FIG. 1 shows an example of a semiconductor device 1 according to the present invention. In the figure, the barrel shifter 2, address generation circuit 3,
Variable length code table 4, state machine 5, and CPU
(Central processing unit) The interface circuit 6 is shown as a representative. The variable-length code table 4 is realized by a register file or a single-port RAM, and its stored contents can be rewritten via the CPU interface circuit 6. The address generation circuit 3 and the variable code table 4 constitute a variable length code decoding circuit.
【0036】前記可変長符号テーブル4は、特に制限さ
れないが、複数種類の可変長符号構造の夫々の可変長符
号テーブルがアドレス発生回路12からのアドレスに対
し、リニアなアドレス空間に配置されている。可変長符
号テーブル4は、一つのアドレス情報が与えられてリー
ド動作されると、可変長符号データの復号データ14及
びその可変長符号データのビット数に応ずるシフトビッ
ト数を示すシフト量データ13を出力する。The variable length code table 4 is not particularly limited, but each of a plurality of types of variable length code tables is arranged in a linear address space with respect to the address from the address generation circuit 12. . When one address information is given and a read operation is performed, the variable length code table 4 stores decoded data 14 of variable length code data and shift amount data 13 indicating a shift bit number corresponding to the bit number of the variable length code data. Output.
【0037】アドレス発生回路3は、バレルシフタ2か
らの入力ストリームデータ(可変長符号のデータ列)1
0とステートマシン5からのモード信号11を入力し、
前記ストリームデータ10に含まれる可変長符号の復号
データが格納されている可変長符号テーブル4のアドレ
スを出力する。詳細は図3に基づいて後述するが、アド
レス発生回路3は、入力したストリームデータ10に対
する入力デコーダ部と、前記入力デコーダ部によるデコ
ード結果にしたがって可変長符号テーブル4のアドレス
を発生する回路部分から構成される。前記入力デコーダ
部は入力したストリームデータ10に対して、常に可変
長符号の最大ビット長の符号をデコード可能な構成を有
し、全ての可変長符号に対して同一の遅延で動作する構
成が採用される。要するに、入力したストリームデータ
10の先頭にある可変長符号のビット長が最大であって
も最小であっても、まとめて最大ビット長分のデータを
デコード可能になっている。また、前記アドレスを発生
する回路部分は可変長符号のデコード結果に応じて発生
すべきアドレス情報を書換え可能に保持することができ
る。そのアドレス情報はCPUインタフェース回路6を
経由して書き換え可能である。CPUインタフェース回
路6には、特に制限されないが、図示を省略するCPU
やDMAC(ダイレクト・メモリ・アクセス・コントロー
ラ)がバス12を介して接続される。The address generation circuit 3 receives input stream data (variable-length code data string) 1 from the barrel shifter 2.
0 and the mode signal 11 from the state machine 5 are input,
It outputs the address of the variable length code table 4 in which the decoded data of the variable length code included in the stream data 10 is stored. Although the details will be described later with reference to FIG. 3, the address generation circuit 3 includes an input decoder for the input stream data 10 and a circuit for generating an address of the variable length code table 4 according to the decoding result of the input decoder. Be composed. The input decoder unit has a configuration capable of always decoding the maximum bit length code of the variable length code with respect to the input stream data 10, and employs a configuration in which all the variable length codes operate with the same delay. Is done. In short, even if the bit length of the variable length code at the head of the input stream data 10 is maximum or minimum, data of the maximum bit length can be decoded together. Further, the circuit for generating the address can rewritably hold the address information to be generated according to the decoding result of the variable length code. The address information can be rewritten via the CPU interface circuit 6. Although not particularly limited, the CPU interface circuit 6 includes a CPU (not shown).
And a DMAC (Direct Memory Access Controller) via a bus 12.
【0038】前記バレルシフタ2には所定の複数ビット
の入力データ15が並列入力される。前記バレルシフタ
2は前記可変長符号テーブル4から出力されるシフト量
データ13に基づいて入力データ15をシフトし、可変
長符号の区切りをストリームデータ10のデータ端とし
てアドレス発生回路3に並列出力可能である。ストリー
ムデータ10の並列出力ビット数は前述の通り、可変長
符号の最大ビット長分のビット数である。A plurality of predetermined bits of input data 15 are input to the barrel shifter 2 in parallel. The barrel shifter 2 shifts the input data 15 based on the shift amount data 13 output from the variable length code table 4, and can output the variable length code delimiter to the address generation circuit 3 in parallel as a data end of the stream data 10. is there. As described above, the number of parallel output bits of the stream data 10 is the number of bits corresponding to the maximum bit length of the variable length code.
【0039】可変長符号テーブル4が保持するデータ
は、CPUインタフェース回路6を介して図示を省略す
るCPU又はDMACが書き換え可能であるから、可変
長符号と実際の値(復号データ)との対応が変更になっ
ても、可変長符号テーブル4の書換えで対処することが
可能である。またアドレス発生回路3において、ストリ
ームデータ10をデコードした結果に対して選択される
アドレス情報も書き換え可能であるから、可変長符号の
符号定義を変更しても、アドレス情報などの書き換えで
容易に対応することが可能である。The data held in the variable-length code table 4 can be rewritten by a CPU or a DMAC (not shown) via the CPU interface circuit 6, so that the correspondence between the variable-length code and the actual value (decoded data) can be determined. Even if it is changed, it can be dealt with by rewriting the variable length code table 4. In the address generation circuit 3, the address information selected with respect to the result obtained by decoding the stream data 10 can be rewritten. Therefore, even if the code definition of the variable length code is changed, the address information can be easily rewritten. It is possible to
【0040】前記ステートマシン5は可変長符号の復号
動作の手順を制御する。入力データ15のデータフォー
マットは予め規定されており、所定のデータフォーマッ
トにしたがって符号定義の異なる可変長符号データが入
力データ15として供給されてくる。図2において可変
長符号テーブル4は可変長符号の定義毎にデータの復号
が正常処理されたか否かの信号16をステートマシン5
に供給する。ステートマシン5は信号により正常を検出
した時はモード信号11を次の可変長符号の定義に合わ
せて変更する。信号16により異常終了を検出した時ス
テートマシン5は例外処理を実行し、エラー訂正、リト
ライ、再送などの制御を行う。The state machine 5 controls the procedure of the decoding operation of the variable length code. The data format of the input data 15 is defined in advance, and variable-length code data having different code definitions is supplied as the input data 15 according to a predetermined data format. In FIG. 2, the variable length code table 4 stores a signal 16 indicating whether or not data decoding has been normally performed for each variable length code definition.
To supply. When the state machine 5 detects the normality by the signal, it changes the mode signal 11 according to the definition of the next variable length code. When the abnormal end is detected by the signal 16, the state machine 5 executes an exception process and performs control such as error correction, retry, and retransmission.
【0041】図2にはMPEG2ビデオ規格に準拠する
画像情報の符号化データに含まれるデータの可変長符号
を例示する。MPEG2ビデオにおける可変長符号は、
MBAI(Macro Block Address I
ncrement),IMBT(Intra Macr
oBlock Type),PMBT(P−pictu
re MacroBlock Type),BMBT(B
−picture MacroBlock Type),
DMBT(D−picture MacroBlock
Type),CBP(Coded Block Patt
ern),F/B−Code(motion hori
zontal/vertical Forward/B
ackward Code),dc−size−Y(d
ct_dc_size_luminance),dc−s
ize−C(dct_dc_size_chromina
nce),dct−coeff(dct_coeff_f
irst/next)という10種類が規定されてい
る。FIG. 2 exemplifies a variable length code of data included in the coded data of image information conforming to the MPEG2 video standard. The variable length code in MPEG2 video is
MBAI (Macro Block Address I)
ncrement), IMBT (Intra Macr)
oBlock Type), PMBT (P-pictu
re MacroBlock Type), BMBT (B
-Picture MacroBlock Type),
DMBT (D-picture MacroBlock)
Type), CBP (Coded Block Patt)
ern), F / B-Code (motion hori)
zontal / vertical Forward / B
ackward Code), dc-size-Y (d
ct_dc_size_luminance), dc-s
size-C (dct_dc_size_chromina
nce), dct-coeff (dct_coeff_f
(first / next) are defined.
【0042】図2にはMPEG2ビデオの上記10種類
の可変長符号をそのビット長に応じて分類して示してあ
る。この例では入力ストリームデータを2ビットずつ分
割してデコードする場合を想定している。図2の丸印は
符号のデコードの為に必要なサブアドレス発生器を示し
ている。また図の丸印を結ぶ線は、線の左の丸印によっ
てデコードされた2ビットすなわち4種類のデコード結
果のうち、さらに下位の2ビットのデコードが必要な場
合に、右側の丸印と結ばれるようになっている。即ち、
ある丸印に注目した時、もしそこから右に線が出ていな
ければ、デコードはそのビット列で決定することを示し
ている。ある丸から右へ出る線は最大4本であり、4本
出る場合は、デコードした2ビットのいずれの組み合わ
せ(00,01,10,11)においてもさらに下位の
ビットを調べないとデコード結果が決定しないことを表
している。例えば図2において、可変長符号MBAI
は、2ビットコードが1個、4ビットコードが1個、6
ビットコードが1個、8ビットコードが2個、10ビッ
トコードが1個、12ビットコードが6個、存在する可
変長符号構造(可変長符号定義)を有している。可変長
符号IMBTは2ビットコードを1個有しているだけで
ある。FIG. 2 shows the above-mentioned ten kinds of variable length codes of MPEG2 video classified according to their bit lengths. In this example, it is assumed that input stream data is divided into two bits and decoded. The circles in FIG. 2 indicate the sub-address generators necessary for decoding the code. The line connecting the circles in the figure is connected to the right-side circle when the lower two bits of the two bits decoded by the left-side circle of the line, that is, four types of decoding results, are required. It is supposed to be. That is,
Attention is paid to a circle, and if there is no line to the right from the circle, it indicates that decoding is determined by the bit string. The maximum number of lines that go out from a circle to the right is four. If there are four lines, the decoding result must be obtained by examining the lower bit in any combination (00, 01, 10, 11) of the decoded two bits. Indicates that no decision is made. For example, in FIG.
Is one 1-bit code, one 4-bit code, 6
It has a variable-length code structure (variable-length code definition) in which there is one bit code, two 8-bit codes, one ten-bit code, and six 12-bit codes. The variable-length code IMBT has only one 2-bit code.
【0043】図2から明らかなように、MBAI,IM
BT…とそれぞれの符号において符号数は1(DMB
T)から250(dct_coeff)程度までと大き
くばらつく。このケースで10種類の符号に対しそれぞ
れ250の符号に対応するサブアドレス発生器を持つこ
とは回路規模の増大につながる。図2の例では図面の下
部に各ビット列毎に必要なサブアドレス発生器の数を示
している。理論上の最大値としては、右に行くほど数が
大きくなると予想されるが、実際には最大符号長が長い
符号(この例ではdct−coeff)と短い符号(こ
の例ではDMBT,IMBT)がある為、bit5,6
以降はあまり増大せず、一定である。この事からも、全
ての符号に対し最大長(この場合は18ビット)に応ず
る数のデコーダを夫々持つことはかなりのハードウェア
のロスにつながることがわかる。As apparent from FIG. 2, MBAI, IM
BT ... and each code has a code number of 1 (DMB
T) to about 250 (dct_coeff). In this case, having a sub-address generator corresponding to 250 codes for each of 10 types of codes leads to an increase in circuit scale. In the example of FIG. 2, the number of sub-address generators required for each bit string is shown at the bottom of the figure. As the theoretical maximum value, the number is expected to increase as going to the right. However, in practice, a code having a long maximum code length (dct-coeff in this example) and a short code (DMBT, IMBT in this example) are used. Because there is, bit5,6
Thereafter, it does not increase so much and remains constant. From this, it can be seen that having a number of decoders corresponding to the maximum length (18 bits in this case) for all codes leads to considerable hardware loss.
【0044】そこで、図2の例に従えば、アドレス発生
回路3は、図面の下部に示す数のサブアドレス発生器を
それぞれ持てばよいことがわかる。更に、ここで説明す
るサブアドレス発生器は2種類のモードを持つ。すなわ
ち、対応するビット列で符号が決まる時は、サブアドレ
ス発生器からは後段の可変長符号テーブル4へアドレス
情報を出力し、符号が決まらない時は、次段のビット列
に対するサブアドレス発生器の選択信号を決める為のア
ドレス情報を出力する。この2種類のモードは可変長符
号によって一意に決まる為、サブアドレス発生器に1ビ
ットの情報を保有させ、その情報を当該サブアドレス発
生器における2種類のモードの切り替え信号(以降、本
信号をアドレス選択信号と呼ぶ。)として機能させる。
このアドレス情報及びアドレス選択信号は、アドレス発
生回路3に設けられている書き換え可能なレジスタの第
2領域及び第1領域から出力されるので、レジスタ値を
書き換えることにより図2に示すサブアドレス発生器同
士をつなぐ“線”はどのようにでも引くことが可能にな
る。Therefore, according to the example of FIG. 2, it is understood that the address generating circuit 3 only needs to have the number of sub-address generators shown in the lower part of the figure. Further, the sub-address generator described here has two types of modes. That is, when the code is determined by the corresponding bit string, the sub-address generator outputs address information to the subsequent variable length code table 4, and when the code is not determined, the selection signal of the sub-address generator for the next bit string is output. Outputs address information for determination. Since these two modes are uniquely determined by the variable-length code, the sub-address generator holds 1-bit information, and the information is used as a switching signal for the two modes in the sub-address generator (hereinafter, this signal is used for address selection. Signal).
The address information and the address selection signal are output from the second area and the first area of the rewritable register provided in the address generation circuit 3, so that the sub-address generators shown in FIG. The "line" connecting the can be drawn in any way.
【0045】図2の例では分割したビット列の単位を2
ビットとしたが、ビット列の分割方法を変えてもよい。
例えば、もちろんビット列を1ビットずつに展開しても
よい。一般にビット列当りの長さを増やすとアドレス発
生器の冗長性が増える。In the example of FIG. 2, the unit of the divided bit string is 2
Although the bits are used, the method of dividing the bit string may be changed.
For example, the bit string may of course be expanded one bit at a time. In general, increasing the length per bit string increases the redundancy of the address generator.
【0046】図3にはアドレス発生回路3の詳細が例示
される。図3の構成は図2の可変長符号の構成に対応さ
せた例になっている。図3においてIn[17:0]は1
8ビットのストリームデータ10であり、そのIn[1
7:0]には図2のbit1,2、bit3,4、…の
順序でデータがつめられている。入力In[17:0]は
2ビットずつのビット列に分割され、ビット列デコーダ
(ADEC)21,22,23,…に入力される。ビッ
ト列デコーダ(ADEC)21,22,23,…は夫々
2ビットをデコードして4ビットの選択信号Ind0
[3:0]、Ind1[3:0]、Ind2、…を出力す
る。ビット列デコーダ(ADEC)21の後段には図2
で説明した数(10個)のサブアドレス発生器(AR
5)24が配置される。10個のサブアドレス発生器
(AR5)24は10ビットのモード信号MD[9:0]に
より1個が選択される。モード信号MD[9:0]で選択
された1個のサブアドレス発生器24は4ビットの選択
信号Ind0[3:0]で選択された5ビットのアドレス
値と1ビットのアドレス選択信号ADECSEL0を出
力する。前記5ビットのアドレス値と1ビットのアドレ
ス選択信号ADECSEL0はサブアドレス発生器24
内のレジスタに初期設定されている値であり、前述のよ
うにCPUインタフェース回路6を介して書き換え可能
にされている。アドレス選択信号ADECSEL0が論
理値“0”の場合は、前記5ビットのアドレス値は後段
に接続された可変長符号テーブル4の相対アドレスを示
しており、アンドゲートのようなセレクタ(出力ゲート
回路)30及びオアゲート40を介して加算器41に伝
達される。加算器41に伝達された5ビットの前記相対
アドレスは、モード信号MD[9:0]によってオフセッ
トテーブル42で選択されたオフセット値43が加算さ
れ、可変長符号テーブル4の絶対値アドレスが算出され
る。アドレス選択信号ADECSEL0が論理値“1”
の場合は、前記5ビットのアドレス値はアンドゲートの
ようなセレクタ31及びレジスタ選択信号発生回路(選
択デコーダ)32に伝達される。レジスタ選択信号発生
回路(ADEC2)32はその5ビットの入力アドレス
値をデコードし、デコード結果M2[18:0]は下位の
サブアドレス発生器(AR6)25及びバッファ26の
選択信号として機能される。FIG. 3 illustrates details of the address generation circuit 3. The configuration of FIG. 3 is an example corresponding to the configuration of the variable length code of FIG. In FIG. 3, In [17: 0] is 1
It is 8-bit stream data 10 and its In [1
7: 0], data is packed in the order of bit1, bit2, bit3, bit4,... In FIG. The input In [17: 0] is divided into bit strings of two bits each and input to bit string decoders (ADEC) 21, 22, 23,. Each of the bit string decoders (ADEC) 21, 22, 23,... Decodes 2 bits and outputs a 4-bit selection signal Ind0.
[3: 0], Ind1 [3: 0], Ind2,... In the subsequent stage of the bit string decoder (ADEC) 21, FIG.
(10) sub-address generators (AR
5) 24 are arranged. One of the ten sub-address generators (AR5) 24 is selected by a 10-bit mode signal MD [9: 0]. One sub-address generator 24 selected by the mode signal MD [9: 0] outputs the 5-bit address value selected by the 4-bit selection signal Ind0 [3: 0] and the 1-bit address selection signal ADECSEL0. I do. The 5-bit address value and the 1-bit address selection signal ADECSEL0 are supplied to the sub-address generator 24.
Is a value initially set in a register inside the register, and is rewritable via the CPU interface circuit 6 as described above. When the address selection signal ADECSEL0 is a logical value "0", the 5-bit address value indicates the relative address of the variable length code table 4 connected at the subsequent stage, and a selector (output gate circuit) such as an AND gate The signal is transmitted to the adder 41 via the OR gate 30 and the OR gate 40. The 5-bit relative address transmitted to the adder 41 is added with the offset value 43 selected in the offset table 42 by the mode signal MD [9: 0], and the absolute value address of the variable length code table 4 is calculated. You. When the address selection signal ADECSEL0 is a logical value "1"
In the case of (1), the 5-bit address value is transmitted to a selector 31 such as an AND gate and a register selection signal generation circuit (selection decoder) 32. The register selection signal generation circuit (ADEC2) 32 decodes the 5-bit input address value, and the decoded result M2 [18: 0] functions as a selection signal for the lower subaddress generator (AR6) 25 and the buffer 26.
【0047】次段のビット列In[15:14]に関して
も同様の回路構成が採用され、18個のサブアドレス発
生器25、バッファ26、セレクタ33、セレクタ3
4、及びレジスタ選択信号発生回路34が設けられる。
その次のビット列In[13:12]に関しても同様の回
路構成が採用され、26個のサブアドレス発生器27、
バッファ28、セレクタ36、セレクタ37、及びレジ
スタ選択信号発生回路38が設けられる。図示は省略す
るが、以下、2ビットずつのビット列In[11:1
0],In[9:8],…In[1:0]毎に、前記ビット
列In[15:14]と同様の回路構成が設けられてい
る。要するに、モード信号MD[9:0]の内1本がアク
ティブになることにより、サブアドレス発生器AR5の
内の1つが選択される。これが図2のbit1,2の丸
印の一つが選択されたことに相当し、すなわちどの可変
長符号が選択されたかを示すことになる。そしてもし符
号がIn[17:16]で決まる場合はアドレス選択信号
ADECSEL0=0となり、セレクタ30の出力AD
[4:0]から可変長符号テーブル4のアドレスが出力さ
れ、セレクタ31の出力AD2[4:0]からは値“0”
が出力される。その結果レジスタ選択信号発生回路(A
DEC2)32はM2[0]=1、M2[17:1]=0X
00000を出力し、次段は一番下のバッファ26のみ
が選択されるので、それ以下の全てのビット列のセレク
タ34,37,…は値0をい出力し、これによって、可
変長符号テーブル4のアドレス情報はセレクタ30の出
力に基づいて決まる。一方、もし符号がビット列In
[17:16]で決まらない場合はアドレス選択信号AD
ECSEL0=1となり、セレクタ31の出力AD2
[4:0]は図2のbit3,4の丸印を選ぶ為のレジス
タ番号(この場合は1〜18までの値を採り得る。)を
出力する。出力AD2[4:0]はデコーダ32でデコー
ドされ、選択信号M2[18:0]により18個の内の一
つのサブアドレス発生器25を選択する。以下符号が決
まるビット列まで上記と同じ動作が行なわれることにな
る。The same circuit configuration is adopted for the bit string In [15:14] at the next stage, and 18 sub-address generators 25, buffers 26, selectors 33 and selectors 3 are provided.
4, and a register selection signal generation circuit 34 are provided.
A similar circuit configuration is adopted for the next bit string In [13:12], and 26 sub-address generators 27,
A buffer 28, a selector 36, a selector 37, and a register selection signal generation circuit 38 are provided. Although illustration is omitted, a bit string In [11: 1:
0], In [9: 8],... In [1: 0], a circuit configuration similar to that of the bit string In [15:14] is provided. In short, when one of the mode signals MD [9: 0] becomes active, one of the sub-address generators AR5 is selected. This corresponds to the selection of one of the circles of bits 1 and 2 in FIG. 2, that is, it indicates which variable length code has been selected. If the code is determined by In [17:16], the address selection signal ADECSEL0 = 0, and the output AD of the selector 30 is set.
The address of the variable length code table 4 is output from [4: 0], and the value “0” is output from the output AD2 [4: 0] of the selector 31.
Is output. As a result, the register selection signal generation circuit (A
DEC2) 32 is M2 [0] = 1, M2 [17: 1] = 0X
. 0000, and only the bottom buffer 26 is selected in the next stage. Therefore, the selectors 34, 37,... Is determined based on the output of the selector 30. On the other hand, if the code is a bit string In
If it is not determined by [17:16], the address selection signal AD
ECSEL0 = 1 and the output AD2 of the selector 31
[4: 0] outputs a register number (in this case, a value from 1 to 18 can be used) for selecting the circles of bits 3 and 4 in FIG. The output AD2 [4: 0] is decoded by the decoder 32, and one of the 18 sub-address generators 25 is selected by the selection signal M2 [18: 0]. Hereinafter, the same operation as described above is performed up to the bit string for which the code is determined.
【0048】本構成により、分割されたビット列を同時
にデコードするので、回路動作周波数が回路のゲート遅
延よりも小さければ、どのような符号に対しても1クロ
ックでのデコードが可能になる。According to this configuration, the divided bit strings are simultaneously decoded, so that any code can be decoded with one clock if the circuit operating frequency is smaller than the gate delay of the circuit.
【0049】また図2、図3の例ではMPEG2ビデオ
規格の可変長符号を全てアドレス発生回路3に展開した
が、可変長符号のモードが変わる度にアドレス発生回路
3のサブアドレス発生器24に含まれるレジスタの内容
を書き換えればレジスタから構成されるサブアドレス発
生器ARiの数は可変長符号の中で一番大きいテーブル
に対して必要な数だけ持てばよいことになり、さらなる
回路削減が可能になる。もちろんこの時は、レジスタに
対する書き換えの処理量は増える。In the examples shown in FIGS. 2 and 3, all the variable length codes of the MPEG2 video standard are developed in the address generating circuit 3. However, each time the mode of the variable length code changes, it is included in the sub address generator 24 of the address generating circuit 3. If the contents of the register to be rewritten are rewritten, the number of sub-address generators ARi composed of the register only needs to be the required number for the largest table among the variable length codes, and further circuit reduction is possible. . Of course, at this time, the amount of processing for rewriting the register increases.
【0050】尚、図3においてサブアドレス発生器2
4,25,…は可変長符号に応ずるアドレス情報を書き
換え可能に保持することができるレジスタユニットの一
例を成す。また、図3の例は図2に対応され、10種類
の可変長符号をサポートするものであり、可変長符号テ
ーブルも可変長符号の種類毎に形成されており、オフセ
ットテーブル42が出力するオフセット情報は種類毎の
可変長符号テーブルの先頭アドレスに相当する。In FIG. 3, the sub address generator 2
.. Form an example of a register unit capable of rewritably holding address information corresponding to a variable length code. The example of FIG. 3 corresponds to FIG. 2 and supports 10 types of variable-length codes. The variable-length code table is also formed for each type of variable-length code. The information corresponds to the head address of the variable length code table for each type.
【0051】図4にはサブアドレス発生器(AR5)2
4の詳細が例示される。入力のInd[3:0]はビット
毎にMD[n]との論理積がアンドゲート50〜53にて
採られた後、出力イネーブル(出力ゲート)付きのフリ
ップフロップ(F/F)60〜65、70〜75、80
〜85,90〜95のイネーブル端子に入力する。In
d[3:0]は前段のデコーダにより、どれか1ビットの
みがアクティブレベル例えば論理値“1”にされるの
で、MD[n]=1ならばアンドゲート50〜53のうち
1個の出力だけが論理値“1”になる。したがって、レ
ジスタユニットを構成するレジスタ60〜65、70〜
75、80〜85,90〜95の内の一つが選択され、
選択された一つのレジスタの5ビットがOut[4:0]
として出力されし、1ビットがOut2として出力され
る。フリップフロップ(F/F)で構成されるレジスタ
60〜65、70〜75、80〜85,90〜95はR
AMで構成してもよい。FIG. 4 shows a sub address generator (AR5) 2
4 are exemplified. Input Ind [3: 0] is ANDed with MD [n] for each bit by AND gates 50-53, and then flip-flop (F / F) 60-with output enable (output gate). 65, 70-75, 80
, 85, and 90 to 95. In
As for d [3: 0], only one bit is set to an active level, for example, a logical value "1" by the decoder at the preceding stage. Therefore, if MD [n] = 1, one output of the AND gates 50 to 53 is output. Only has the logical value “1”. Therefore, the registers 60 to 65, 70 to
One of 75, 80-85, 90-95 is selected,
5 bits of one selected register are Out [4: 0]
And one bit is output as Out2. Registers 60 to 65, 70 to 75, 80 to 85, and 90 to 95 each composed of a flip-flop (F / F)
It may be constituted by AM.
【0052】図5には別の半導体装置1Aが例示され
る。図1乃至図4の説明ではアドレス発生回路3からの
出力を後段の可変長符号テーブル4にアドレス情報とし
て与える構成として説明したが、アドレス発生回路3の
構成を変えることなく、アドレス発生回路からの出力を
可変長符号テーブル4の出力そのものとすることが可能
である。要するに、図5に例示されるように、可変長符
号テーブルを使用せず、アドレス発生回路3と回路構成
の同じデータ発生回路3Aを採用する。データ発生回路
3Aは、前記バレルシフタ2の出力データを入力し、そ
の入力データに含まれる可変長符号の対応データを発生
するものであり、可変長符号に応じて発生すべき対応デ
ータを書換え可能に保持することができるレジスタユニ
ットを有している。但し、様々な符号定義の可変長符号
を用いるシステムを考えた場合、それぞれの符号の復号
データ情報(すなわち復号データ及びビットシフト値)
のビット長はばらつきがあることが多い為、符号データ
情報を全て、データ発生回路3A内のレジスタユニット
に保持させるよりも、図1で説明したように後段に可変
長符号テーブルを持ち、前段のアドレス発生回路はその
テーブルのアドレス値のみを持つ構成にした方が回路規
模を縮小できることがある。FIG. 5 illustrates another semiconductor device 1A. 1 to 4, the output from the address generation circuit 3 is given as address information to the variable-length code table 4 at the subsequent stage. However, the output from the address generation circuit 3 is not changed without changing the configuration of the address generation circuit 3. The output can be the output of the variable length code table 4 itself. In short, as illustrated in FIG. 5, a data generation circuit 3A having the same circuit configuration as the address generation circuit 3 is employed without using a variable length code table. The data generating circuit 3A receives the output data of the barrel shifter 2 and generates corresponding data of a variable length code included in the input data. The data generating circuit 3A can rewrite corresponding data to be generated according to the variable length code. It has a register unit that can be held. However, when considering a system using variable-length codes of various code definitions, decoded data information of each code (that is, decoded data and bit shift value)
In many cases, the bit length of the data has a variation. Therefore, rather than storing all the code data information in the register unit in the data generation circuit 3A, as shown in FIG. The address generator may have a configuration in which only the address values of the table are used, which may reduce the circuit scale.
【0053】図6はに本発明の半導体装置を別に形態で
例示する。図6の例はマイクロコンピュータのような半
導体装置に着目したものであり、半導体装置1Bは可変
長符号復号部100と、命令を実行して前記可変長符号
復号部を制御可能なプロセッサ部101とを有する。前
記可変長符号復号部100は、前記プロセッサ部101
の制御により書換え可能とされる可変長符号テーブル4
と、前記可変長符号テーブル4からデータを読み出すた
めの情報を可変長符号に応じて発生するアドレス発生回
路3と、CPUインタフェース回路6とを有する。前記
可変長符号テーブル4、アドレス発生回路3、及びCP
Uインタフェース回路6は図1乃至図4で説明したもの
と同じである。前記プロセッサ部101は前記可変長符
号テーブル4から出力されるデータに基づいてデータ列
をシフトし可変長符号の区切りをデータ端として前記ア
ドレス発生回路に出力可能である。FIG. 6 illustrates another embodiment of the semiconductor device of the present invention. The example of FIG. 6 focuses on a semiconductor device such as a microcomputer. The semiconductor device 1B includes a variable-length code decoding unit 100 and a processor unit 101 that can execute an instruction and control the variable-length code decoding unit. Having. The variable length code decoding unit 100 includes the processor unit 101
Variable length code table 4 that can be rewritten by the control of
And an address generating circuit 3 for generating information for reading data from the variable length code table 4 according to the variable length code, and a CPU interface circuit 6. The variable length code table 4, the address generation circuit 3, and the CP
The U interface circuit 6 is the same as that described with reference to FIGS. The processor unit 101 can shift the data sequence based on the data output from the variable length code table 4 and output the data sequence to the address generation circuit with the end of the variable length code as a data end.
【0054】前記可変長符号復号部100はプロセッサ
部101と例えば汎用バスで接続される。プロセッサ部
101は前記バレルシフタ2及びステートマシン5の機
能をプロセッサ部101のCPU102に所定の動作プ
ログラムを実行させることにより、バレルシフタ手段2
A、ステートマシン手段5Aを実現する。可変長符号復
号部100はCPU102から汎用バス経由で可変長コ
ードのストリームデータ10及び可変長符号の種類を示
すモード信号11を入力する。プロセッサ部101は可
変長符号復号部100からデコード結果として復号デー
タ14、シフト量データ13、及び復号処理結果信号1
6を汎用バス経由で受け取る。またアドレス発生回路3
のレジスタ情報及び可変長符号テーブル4の符号データ
も汎用バス経由で予めプロセッサ部101が初期設定し
ておく。可変長符号復号部100はプロセッサ部101
に対してディジタル信号処理部若しくはアクセラレータ
として構成してよい。すなわち、可変長符号復号部10
0はプロセッサ部101から処理コマンドを受け取り、
これを解読して演算処理を行う。The variable length code decoding section 100 is connected to the processor section 101 by, for example, a general-purpose bus. The processor unit 101 controls the functions of the barrel shifter 2 and the state machine 5 by causing the CPU 102 of the processor unit 101 to execute a predetermined operation program.
A, implement the state machine means 5A. The variable length code decoding unit 100 receives stream data 10 of a variable length code and a mode signal 11 indicating the type of the variable length code from the CPU 102 via a general-purpose bus. The processor unit 101 outputs the decoded data 14, the shift amount data 13, and the decoding process result signal 1 from the variable length code decoding unit 100 as decoding results.
6 is received via the general-purpose bus. Address generation circuit 3
The processor unit 101 also initializes the register information and the code data of the variable length code table 4 in advance via a general-purpose bus. The variable length code decoding unit 100 includes a processor unit 101
May be configured as a digital signal processing unit or an accelerator. That is, the variable length code decoding unit 10
0 receives a processing command from the processor unit 101,
This is decoded and arithmetic processing is performed.
【0055】前記プロセッサ部101は前記可変長符号
復号部100による復号処理に並行して専らソフトウェ
アに依存して別の可変長符号の復号処理を行うことがで
きる。例えば前記可変長符号のデータが動画像情報の符
号化情報であるとき、プロセッサ部101は、画素デー
タに係る符号化情報の復号処理を前記可変長符号復号部
100を動作させて高速に行い、それに比べて処理時間
に余裕のある動き補償ベクトルデータに係る符号化情報
の復号処理を前記可変長符号復号部100を動作させず
に行う。例えばMPEG2のデータ構造は、画像サイズ
や画像レートなどの一連の同じ属性を持つ画像グループ
を定義するシーケンス層、ランダムアクセスの単位とな
る画像グループの最小単位を定義するGOP層、画面符
号モードなど1枚の画面に共通な属性を定義するピクチ
ャー層、1枚の画面を細分した小画面に共通の情報であ
るスライス層、スライス層を更に分割した画素ブロック
に共通の情報であるマクロブロック層、及びDCT(離
散コサイン変換)係数などの変換係数そのものの情報で
あるブロック層から成る。この6層のデータの内、シー
ケンス層、GOP層、ピクチャー層、スライス層の符号
化データは一般に固定長符号であるから専らプロセッサ
部101のソフトウェアで復号処理を行えば充分であ
る。マクロブロック層及びブロック層のデータは可変長
符号データであるが、マクロブロック層は前記動き補償
のためのベクトルデータに対応するから、プロセッサ部
101の処理能力に余裕がある場合には専らプロセッサ
部101のソフトウェア処理で復号してもよい。その
分、可変長符号復号部100にはデータ量の多いブロッ
ク層の復号処理に専念させればよい。尚、マクロブロッ
ク層及びブロック層双方の可変長符号データを共に可変
長符号復号部100を用いて復号してよいことは言うま
でもない。プロセッサ部101と可変長符号復号部10
0を一緒に一つの半導体チップに実装すれば、処理すべ
きデータの種類、データ処理能力の余裕度などに応じ
て、データ処理効率を高くするのに最良の形態で前記プ
ロセッサ部101と可変長符号復号部100を動作せる
ことが容易になる。The processor unit 101 can perform another variable-length code decoding process exclusively in dependence on software in parallel with the decoding process by the variable-length code decoding unit 100. For example, when the data of the variable-length code is encoded information of moving image information, the processor unit 101 performs the decoding process of the encoded information related to the pixel data at high speed by operating the variable-length code decoding unit 100, On the other hand, the decoding processing of the coded information relating to the motion compensation vector data having a sufficient processing time is performed without operating the variable length code decoding unit 100. For example, the data structure of MPEG2 includes a sequence layer that defines a series of image groups having the same attribute such as an image size and an image rate, a GOP layer that defines a minimum unit of an image group that is a unit of random access, and a screen code mode. A picture layer that defines attributes common to one screen, a slice layer that is information common to small screens obtained by subdividing one screen, a macro block layer that is information common to pixel blocks obtained by further dividing the slice layer, and It is composed of a block layer which is information of transform coefficients themselves such as DCT (discrete cosine transform) coefficients. Of the six layers of data, the coded data of the sequence layer, GOP layer, picture layer, and slice layer are generally fixed-length codes, so that it is sufficient to perform decoding processing exclusively by software of the processor unit 101. Although the macro block layer and the data of the block layer are variable length code data, the macro block layer corresponds to the vector data for the motion compensation. The decryption may be performed by software processing 101. Accordingly, the variable-length code decoding unit 100 may concentrate on the decoding process of the block layer having a large data amount. It goes without saying that the variable length code data of both the macro block layer and the block layer may be decoded using the variable length code decoding unit 100. Processor unit 101 and variable length code decoding unit 10
0 is mounted on one semiconductor chip together with the processor unit 101 in the best mode to increase the data processing efficiency according to the type of data to be processed, the margin of data processing capacity, and the like. It is easy to operate the code decoder 100.
【0056】図6の構成においても上記同様に、可変長
符号に対するアドレス情報の対応を任意に変更すること
ができるから、様々な可変長符号定義に対して可変長符
号テーブルの記憶エリアを無駄にすること無く、可変長
符号の復号を行うことができる。In the configuration shown in FIG. 6, similarly to the above, the correspondence of the address information to the variable length code can be arbitrarily changed, so that the storage area of the variable length code table is wasted for various variable length code definitions. Without decoding, decoding of the variable length code can be performed.
【0057】図7にはに本発明の半導体装置の更に別の
例が示される。図6との相違点は、可変長符号復号部1
00Aにおいて、アドレス発生回路3の入力段にライト
FIFOバッファ105が設けられ、可変長符号テーブ
ル4の出力段にリードFIFOバッファ106が設けら
れていることである。その他の構成は図6と同様であり
その詳細な説明は省略する。前記FIFOバッファ10
5,106を設けることにより、プロセッサ部101と
可変長符号復号部100との間のデータ処理速度の違い
を吸収できる。例えば、FIFOバッファ105,10
6に対してCPU102からバーストアクセスを行うこ
とも可能になる。FIG. 7 shows still another example of the semiconductor device of the present invention. The difference from FIG. 6 is that the variable-length code decoding unit 1
At 00A, a write FIFO buffer 105 is provided at the input stage of the address generation circuit 3, and a read FIFO buffer 106 is provided at the output stage of the variable length code table 4. Other configurations are the same as those in FIG. 6 and detailed description thereof is omitted. The FIFO buffer 10
By providing 5, 106, the difference in data processing speed between the processor unit 101 and the variable-length code decoding unit 100 can be absorbed. For example, FIFO buffers 105 and 10
6, the CPU 102 can perform burst access.
【0058】図8には上記復号技術を適用した通信シス
テムのような情報処理システムが例示される。可変長符
号によって符号化された画像情報や音声情報等がインタ
ーネットやディジタルケーブル放送サービスなどを介し
て配信される状況に着目したとき、上記説明に係る復号
技術は様々な可変長符号定義に対する復号をアドレス発
生回路3や可変長符号テーブル4の書き換えにより実現
できるため、通信システムの中でそのような技術を用い
ることが考えられる。その一例として、図8では無線通
信を利用したカーナビゲーションシステムに上記復号技
術を適用した場合を示す。FIG. 8 illustrates an information processing system such as a communication system to which the above-described decoding technique is applied. Focusing on the situation where image information, audio information, and the like encoded by the variable length code are distributed via the Internet or digital cable broadcasting services, the decoding technique according to the above description decodes various variable length code definitions. Since this can be realized by rewriting the address generation circuit 3 and the variable length code table 4, it is conceivable to use such a technique in a communication system. As an example, FIG. 8 shows a case where the decoding technique is applied to a car navigation system using wireless communication.
【0059】情報端末装置若しくはクライアントのよう
なカーナビゲーション端末110は、GPS等の通信ユ
ニット111により通信衛星120を通じてナビゲーシ
ョンデータを受信している。今後のサービスとして期待
されているインターネット等を含む様々なデータを受信
可能とするためには、様々な符号化に対応した復号器が
必須となる。例えば、動画の分野ではMPEG1,MP
EG2,MPEG4,モーションJPEG等がソースデ
ータとして使い分けられる可能性が高い。そこで、上述
の複合化技術を用い、復号定義情報をソースデータの種
類が変わる際に、ホスト装置若しくはサーバのような中
央管理システム130から、例えばナビゲーション端末
110が有するフラッシュメモリ112のような書き換
え可能なメモリにダウンロードする。復号定義情報は、
前記アドレス発生回路3に記憶させるべきアドレス情報
であり、また、前記可変長符号テーブルに保持させるべ
き復号データである。フラッシュメモリ112にダウン
ロードされた復号定義情報は、プロセッサ部101がア
ドレス発生回路4及び可変長符号テーブル4に設定す
る。中央管理システムは通信ユニット131、プロセッ
サやRAM等を有する計算機132、及びハードディス
クなどの大容量記憶ユニット133を有する。A car navigation terminal 110 such as an information terminal device or a client receives navigation data through a communication satellite 120 by a communication unit 111 such as a GPS. In order to be able to receive various data including the Internet and the like which are expected as future services, decoders corresponding to various encodings are indispensable. For example, in the field of moving images, MPEG1, MP
There is a high possibility that EG2, MPEG4, motion JPEG, etc. can be properly used as source data. Therefore, when the type of the source data is changed, the decryption definition information can be rewritten from the central management system 130 such as a host device or a server such as the flash memory 112 included in the navigation terminal 110 by using the above-described compounding technology. Download to the appropriate memory. The decryption definition information is
Address information to be stored in the address generation circuit 3 and decoded data to be stored in the variable length code table. The processor 101 sets the decoding definition information downloaded to the flash memory 112 in the address generation circuit 4 and the variable length code table 4. The central management system includes a communication unit 131, a computer 132 having a processor, a RAM, and the like, and a mass storage unit 133 such as a hard disk.
【0060】この情報処理システムにおいて、中央管理
システム130がナビゲーション端末110の地図デー
タなどを配信するときの情報処理方法を説明する。中央
管理システム130は、ナビゲーション端末装置110
から特定のリクエストを受信すると、そのリクエストに
応答して、前記可変長符号テーブル4への復号データ
と、前記アドレス発生回路3へのアドレス情報とを通信
衛星120等のネットワークを介してナビゲーション端
末装置110に送信する。In this information processing system, an information processing method when the central management system 130 distributes map data and the like of the navigation terminal 110 will be described. The central management system 130 includes the navigation terminal device 110
Receives a specific request from the communication terminal 120, in response to the request, decodes the decoded data to the variable length code table 4 and the address information to the address generating circuit 3 via a network such as a communication satellite 120. Send to 110.
【0061】これにより、個々のナビゲーション端末1
10で全ての可変長符号定義の復号定義情報を記憶して
おく必要がなく、また、将来の全く新規な符号にも対応
が可能となる。また、ナビゲーション端末110への地
図情報の配信の度に、若しくはナビゲーション端末のパ
ワーオン毎に復号定義情報を毎回変更することにより、
フラッシュッメモリ112に対するテーブル書き換え回
数を使って、個々のネットワーク加入者のネットワーク
サービスの受信回数を把握することが可能となる。これ
を適用することにより、図8のシステムにおいて課金方
式を容易に実現することが可能となる。Thus, the individual navigation terminals 1
It is not necessary to store the decoding definition information of all the variable length code definitions at 10, and it is possible to cope with completely new codes in the future. Also, by changing the decoding definition information every time the map information is delivered to the navigation terminal 110 or every time the navigation terminal is powered on,
Using the number of times of rewriting the table in the flash memory 112, the number of times of reception of the network service of each network subscriber can be grasped. By applying this, it is possible to easily realize the charging method in the system of FIG.
【0062】図8の説明では、カーナビゲーションシス
テムについて説明したが、以上説明した可変長符号の復
号技術はカーナビゲーションシステムに限定されず、例
えば、ディジタル衛星放送サービス、ディジタルケーブ
ル放送サービス、ディジタル地上波放送サービス、ディ
ジタル移動体通信サービス等にも、同様の手段で幅広く
適用可能である。Although the car navigation system has been described with reference to FIG. 8, the decoding technique of the variable length code described above is not limited to the car navigation system. For example, digital satellite broadcasting service, digital cable broadcasting service, digital terrestrial broadcasting Broadly applicable to broadcasting services, digital mobile communication services and the like by the same means.
【0063】また、上記可変長符号の複合技術の応用と
しては、復号化装置の種類に応じて、ソースデータを変
えるシステムを構築することが可能となる。例えば、ビ
デオオンデマンドの様なシステムにおいて個々の加入者
が要求する画像、音声の質は加入者の持つ端末によって
大きく異なる。例えば大画面テレビを持つ加入者はMP
EG2MP@HLの画像を要求するかもしれないし、P
C端末を持つ加入者はMPEG4の画像を要求するかも
しれない。そこで、上記可変長符号の復号技術を適用す
るに当たり、個々の加入者は実際のサービスを受ける前
にまず、どの符号定義でのサービスを希望するかを中央
管理システム130に申告し、中央管理システム130
から復号定義情報をのダウンロードサービスを受けた後
に、実際の画像情報や音声情報を受信する。この場合に
は、サービスの質の差に応じたきめ細かい課金サービス
を行うことが可能になる。Further, as an application of the above-described variable length code compound technology, it is possible to construct a system that changes source data according to the type of decoding device. For example, in a system such as video-on-demand, the quality of images and sounds required by individual subscribers greatly differs depending on the terminals of the subscribers. For example, a subscriber with a large-screen TV
May request EG2MP @ HL image, P
A subscriber with a C terminal may request MPEG4 images. Therefore, when applying the above-described variable-length code decoding technology, each subscriber firstly declares which code definition is desired for the service to the central management system 130 before receiving the actual service. 130
After receiving the download service of the decryption definition information from, the actual image information and audio information are received. In this case, it is possible to perform a detailed billing service according to the difference in service quality.
【0064】以上本発明者によってなされた発明を実施
形態に基づいて具体的に説明したが、本発明はそれに限
定されるものではなく、その要旨を逸脱しない範囲にお
いて種々変更可能であることは言うまでもない。Although the invention made by the present inventor has been specifically described based on the embodiment, it is needless to say that the present invention is not limited to the embodiment and can be variously modified without departing from the gist thereof. No.
【0065】例えば、可変長符号データMPEG、JP
EGなどに限定されない。また、可変長符号復号部に対
する復号定義情報の転送制御はCPUが行う場合に限定
されず、DMACなどが行ってもよい。また、アドレス
発生回路のレジスタユニットや可変長符号テーブルはR
AMで構成する場合に限定されず、フラッシュメモリな
どの電気的に書き換え可能な不揮発メモリで構成しても
よい。また、配信情報は地図情報に限定されず、その他
の画像情報や音声情報であってよい。また、ネットワー
クは衛星通信に限定されず、有線、無線に限定されず、
インターネット、イントラネット等の各種ネットワーク
であってよい。For example, variable length code data MPEG, JP
It is not limited to EG or the like. Further, the transfer control of the decoding definition information to the variable length code decoding unit is not limited to the case where the CPU performs, and may be performed by the DMAC or the like. The register unit and the variable length code table of the address generation circuit are R
The configuration is not limited to the configuration using the AM, but may be configured using an electrically rewritable nonvolatile memory such as a flash memory. The distribution information is not limited to map information, but may be other image information or audio information. Also, the network is not limited to satellite communication, but is not limited to wired or wireless,
Various networks such as the Internet and an intranet may be used.
【0066】[0066]
【発明の効果】本願において開示される発明のうち代表
的なものによって得られる効果を簡単に説明すれば下記
の通りである。The effects obtained by typical ones of the inventions disclosed in the present application will be briefly described as follows.
【0067】すなわち、レジスタユニットに対する書換
えにより、可変長符号に対するアドレス情報の対応を任
意に変更することができるから、現在及び将来の様々な
可変長符号定義に対して可変長符号テーブルの記憶エリ
アを無駄にすること無く、可変長符号の復号を行うこと
ができる。That is, by rewriting the register unit, the correspondence of the address information to the variable length code can be changed arbitrarily. Therefore, the storage area of the variable length code table can be changed for various current and future variable length code definitions. The variable length code can be decoded without wasting.
【0068】また、分割された複数のビット列のデコー
ドを並列に行なうおで、可変長符号のデコード時間、即
ち可変長符号に応ずるアドレス情報生成処理時間、を大
幅に短縮することができる。Since the decoding of the plurality of divided bit strings is performed in parallel, the decoding time of the variable-length code, that is, the address information generation processing time corresponding to the variable-length code can be greatly reduced.
【図1】本発明に係る半導体装置の一例を示すブロック
図である。FIG. 1 is a block diagram illustrating an example of a semiconductor device according to the present invention.
【図2】MPEG2ビデオ規格に準拠する画像情報の符
号化データに含まれるデータの可変長符号を例示する説
明図である。FIG. 2 is an explanatory diagram illustrating a variable length code of data included in encoded data of image information conforming to the MPEG2 video standard.
【図3】アドレス発生回路の詳細な一例を示す論理回路
図である。FIG. 3 is a logic circuit diagram showing a detailed example of an address generation circuit.
【図4】サブアドレス発生器の詳細な一例を示すブロッ
ク図である。FIG. 4 is a block diagram showing a detailed example of a sub-address generator.
【図5】本発明に係る半導体装置の更に別の例を示すブ
ロック図である。FIG. 5 is a block diagram showing still another example of the semiconductor device according to the present invention.
【図6】本発明の半導体装置をマイクロコンピュータの
ような形態で示すブロック図である。FIG. 6 is a block diagram showing a semiconductor device of the present invention in a form like a microcomputer.
【図7】本発明の半導体装置のその他の例を示すブロッ
ク図である。FIG. 7 is a block diagram showing another example of the semiconductor device of the present invention.
【図8】本発明に係る復号技術を適用した通信システム
のような情報処理システムを例示するシステム構成図で
ある。FIG. 8 is a system configuration diagram illustrating an information processing system such as a communication system to which the decoding technology according to the present invention is applied;
【図9】本発明者が先に検討したところのハードウェア
で実現された可変長符号復号回路のブロック図である。FIG. 9 is a block diagram of a variable-length code decoding circuit implemented by hardware, which the inventor has previously considered;
【図10】本発明者が先に検討したところのソフトウェ
アによる可変長符号復号処理のフローチャートである。FIG. 10 is a flowchart of a variable-length code decoding process by software, which the inventor has previously considered.
1、1A、1B、1C 半導体装置 2 バレルシフタ(シフタ) 3 アドレス発生回路 3A データ発生回路 4 可変長符号テーブル 10 ストリームデータ 11 モード信号 13 シフト量データ 14 復号データ 15 入力データ 21〜23 ビット列デコーダ 24,25,27 サブアドレス発生器(レジスタユニ
ット) 30,33,36 セレクタ(出力ゲート回路) 32,35,38 レジスタ選択信号発生回路(選択デ
コーダ) 41 加算器 60〜65 レジスタ 70〜75 レジスタ 80〜85 レジスタ 90〜95 レジスタ 100 可変長符号復号部 101 プロセッサ部 102 CPU 105 ライトFIFOバッファ 106 リードFIFOバッファ 110 ナビゲーション端末(情報処理端末装置、クラ
イアント) 112 フラッシュッメモリ 120 通信衛星 130 中央管理システム(ホスト装置、サーバ)DESCRIPTION OF SYMBOLS 1, 1A, 1B, 1C Semiconductor device 2 Barrel shifter (shifter) 3 Address generation circuit 3A Data generation circuit 4 Variable length code table 10 Stream data 11 Mode signal 13 Shift amount data 14 Decoded data 15 Input data 21 to 23 Bit string decoder 24, 25, 27 Subaddress generator (register unit) 30, 33, 36 Selector (output gate circuit) 32, 35, 38 Register selection signal generation circuit (selection decoder) 41 Adder 60-65 register 70-75 register 80-85 register 90 to 95 register 100 variable-length code decoding unit 101 processor unit 102 CPU 105 write FIFO buffer 106 read FIFO buffer 110 navigation terminal (information processing terminal device, client) 112 flash Memory 120 communications satellite 130 central management system (host apparatus, a server)
Claims (14)
と、前記可変長符号テーブルからデータを読み出すため
の情報を可変長符号に応じて発生するアドレス発生回路
と、可変長符号のデータ列をシフトして前記アドレス発
生回路に与えるシフタとを有し、 前記アドレス発生回路は、可変長符号に応ずるアドレス
情報を書換え可能に保持することができるレジスタユニ
ットを有し、 前記シフタは前記可変長符号テーブルから出力されるデ
ータに基づいてデータ列をシフトし可変長符号の区切り
をデータ端として出力可能である、ことを特徴とする半
導体装置。1. A rewritable variable-length code table, an address generation circuit for generating information for reading data from the variable-length code table in accordance with the variable-length code, and shifting a data string of the variable-length code A shifter to be provided to the address generation circuit, wherein the address generation circuit has a register unit capable of rewritably holding address information corresponding to a variable length code, wherein the shifter is a variable length code table. A semiconductor device capable of shifting a data sequence based on data output from a data line and outputting a variable-length code segment as a data end.
アドレス発生回路は、前記可変長符号テーブルの夫々に
対して別々のレジスタユニットを有し、可変長符号テー
ブルを指定するオフセットアドレス情報に前記レジスタ
ユニットが保持するアドレス情報を加算して可変長符号
テーブルに与えるものであることを特徴とする請求項1
記載の半導体装置。2. The apparatus according to claim 1, wherein said variable-length code table has a plurality of variable-length code tables, and said address generation circuit has a separate register unit for each of said variable-length code tables. 2. The variable length code table according to claim 1, wherein the address information held by said register unit is added to the variable length code table.
13. The semiconductor device according to claim 1.
長符号のデータ列を複数のビット列毎に分けて並列的に
デコードしデコード結果を対応するビット列用のレジス
タユニットに与える複数の入力デコーダと、 前記夫々のレジスタユニットに設けられ当該レジスタユ
ニットがレジスタユニット選択信号にて選択されたとき
対応する前記入力デコーダによるデコード結果に基づい
て一つが選択される複数個のレジスタと、 前記レジスタユニット内で選択されたレジスタの第1領
域からの出力が第1状態であることに応答して当該レジ
スタの第2領域からの出力を前記アドレス情報として出
力可能な出力ゲート回路と、 前記レジスタユニット内で選択されたレジスタの第1領
域からの出力が第2状態であることに応答して当該レジ
スタの第2領域からの出力をデコードして次段ビット列
用のレジスタユニットに対するレジスタユニット選択信
号として出力可能な選択デコーダと、を有して成るもの
であることを特徴とする請求項2記載の半導体装置。3. An address generating circuit comprising: a plurality of input decoders that divides an input variable-length code data string into a plurality of bit strings, decodes the data strings in parallel, and supplies a decoded result to a corresponding bit string register unit; A plurality of registers provided in each of the register units, one of which is selected based on a decoding result by the corresponding input decoder when the register unit is selected by a register unit selection signal; An output gate circuit capable of outputting the output from the second area of the register as the address information in response to the output from the first area of the register being in the first state; and selecting the output gate circuit in the register unit. In response to the output from the first area of the register being in the second state, 3. The semiconductor device according to claim 2, further comprising: a selection decoder capable of decoding an output from the area and outputting the output as a register unit selection signal for a register unit for a next-stage bit string.
シフタの出力データを入力し、その入力データに含まれ
る可変長符号の対応データを発生するデータ発生回路と
を有し、 前記データ発生回路は、可変長符号に応じて発生すべき
対応データを書換え可能に保持することができるレジス
タユニットを有し、 前記シフタは前記データ発生回路から出力される対応デ
ータに基づいて入力データをシフトし可変長符号の区切
りをデータ端として出力する、ものであることを特徴と
する半導体装置。4. A shifter for shifting input data, and a data generating circuit for receiving output data of the shifter and generating corresponding data of a variable length code included in the input data, the data generating circuit comprising: A register unit capable of rewritably holding corresponding data to be generated in accordance with a variable length code, wherein the shifter shifts input data based on the corresponding data output from the data generation circuit and performs variable length A semiconductor device for outputting a code segment as a data end.
て構成されて成るものであることを特徴とする請求項1
乃至4の何れかに記載の半導体装置。5. The variable length code table according to claim 1, wherein the variable length code table is constituted by a RAM.
5. The semiconductor device according to any one of claims 4 to 4.
記可変長符号復号部を制御可能なプロセッサ部とを有
し、 前記可変長符号復号部は、前記プロセッサ部の制御によ
り書換え可能とされる可変長符号テーブルと、前記可変
長符号テーブルからデータを読み出すための情報を可変
長符号に応じて発生するアドレス発生回路とを有し、 前記アドレス発生回路は、可変長符号に応ずるアドレス
情報を書換え可能に保持することができるレジスタユニ
ットを有し、 前記プロセッサ部は前記可変長符号テーブルから出力さ
れるデータに基づいてデータ列をシフトし可変長符号の
区切りをデータ端として前記アドレス発生回路に出力可
能である、ことを特徴とする半導体装置。6. A variable length code decoding unit, comprising: a processor unit capable of executing an instruction to control the variable length code decoding unit, wherein the variable length code decoding unit is rewritable under the control of the processor unit. A variable-length code table, and an address generation circuit that generates information for reading data from the variable-length code table in accordance with the variable-length code. The address generation circuit has an address corresponding to the variable-length code. A register unit capable of storing information in a rewritable manner, wherein the processor unit shifts a data string based on data output from the variable length code table and generates the address using a variable length code segment as a data end. A semiconductor device capable of outputting to a circuit.
記アドレス発生回路は、前記可変長符号テーブルの夫々
に対して別々のレジスタユニットを有し、可変長符号テ
ーブルを指定するオフセットアドレス情報に前記レジス
タユニットが保持するアドレス情報を加算して可変長符
号テーブルに与えるものであることを特徴とする請求項
6記載の半導体装置。7. The variable-length code table includes a plurality of variable-length code tables, and the address generation circuit has a separate register unit for each of the variable-length code tables, and stores address information for specifying the variable-length code table. 7. The semiconductor device according to claim 6, wherein the address information held by said register unit is added and given to a variable length code table.
長符号のデータ列を複数のビット列毎に分けて並列的に
デコードしデコード結果を対応するビット列様のレジス
タユニットに与える複数の入力デコーダと、 前記夫々のレジスタユニットに設けられ当該レジスタユ
ニットがレジスタユニット選択信号にて選択されたとき
対応する前記入力デコーダによるデコード結果に基づい
て一つが選択される複数個のレジスタと、 前記レジスタユニット内で選択されたレジスタの第1領
域からの出力が第1状態であることに応答して当該レジ
スタの第2領域からの出力を前記アドレス情報として出
力可能な出力ゲート回路と、 前記レジスタユニット内で選択されたレジスタの第1領
域からの出力が第2状態であることに応答して当該レジ
スタの第2領域からの出力をデコードして次段ビット列
用のレジスタユニットに対するレジスタユニット選択信
号として出力可能な選択デコーダと、を有して成るもの
であることを特徴とする請求項7記載の半導体装置。8. A plurality of input decoders, comprising: a plurality of input decoders that divide an input variable-length code data string into a plurality of bit strings and decode them in parallel, and provide a decoded result to a corresponding bit string-like register unit; A plurality of registers provided in each of the register units, one of which is selected based on a decoding result by the corresponding input decoder when the register unit is selected by a register unit selection signal; An output gate circuit capable of outputting the output from the second area of the register as the address information in response to the output from the first area of the register being in the first state; and selecting the output gate circuit in the register unit. In response to the output from the first area of the register being in the second state, 8. The semiconductor device according to claim 7, further comprising: a selection decoder capable of decoding an output from the area and outputting as a register unit selection signal for a register unit for a next-stage bit string.
発生回路の前段と前記可変長符号テーブルの後段にFI
FOバッファを有して成るものであることを特徴とする
請求項6記載の半導体装置。9. The variable length code decoding unit according to claim 1, wherein the variable length code decoding unit includes a first stage of the address generation circuit and a second stage of the variable length code table.
7. The semiconductor device according to claim 6, comprising a FO buffer.
のデータが動画像情報の符号化情報であるとき、画素デ
ータに係る符号化情報の復号処理を前記可変長符号復号
部を動作させて行い、動き補償ベクトルデータに係る符
号化情報の復号処理を前記可変長符号復号部を動作させ
ずに行うものであることを特徴とする請求項6乃至9の
何れか1項記載の半導体装置。10. When the data of the variable-length code is encoded information of moving image information, the processor performs a decoding process of encoded information related to pixel data by operating the variable-length code decoder. 10. The semiconductor device according to claim 6, wherein decoding of encoded information relating to motion compensation vector data is performed without operating said variable length code decoding unit.
装置にホスト装置から伝送路を介して符号化情報を配信
する情報処理システムであって、 前記ホスト装置は、情報処理端末装置からのリクエスト
に応答して、当該情報処理端末装置に、可変長符号と復
号データとの対応を変更可能に定義する復号定義情報を
与えるものであることを特徴とする情報処理システム。11. An information processing system for distributing encoded information from a host device via a transmission path to an information processing terminal device capable of decoding a variable length code, wherein the host device transmits a request from the information processing terminal device. An information processing system characterized in that, in response to the information processing method, the information processing terminal device is provided with decoding definition information that defines the correspondence between the variable length code and the decoded data in a changeable manner.
じて発生すべきアドレス情報、及び前記アドレス情報で
アクセスされる可変長符号テーブルに格納すべき復号デ
ータであることを特徴とする請求項11記載の情報処理
システム。12. The decoding definition information according to claim 1, wherein address information to be generated in accordance with a variable length code and decoded data to be stored in a variable length code table accessed by the address information. 12. The information processing system according to item 11.
化された動画像情報又は音声情報であり、前記ホスト装
置は、端末装置からのリクエストに応答して、前記符号
化された動画像情報又は音声情報を配信するものである
ことを特徴とする請求項11又は12記載の情報処理シ
ステム。13. The encoded information is moving image information or audio information encoded by a variable length code, and the host device responds to a request from a terminal device by responding to a request from a terminal device. 13. The information processing system according to claim 11, wherein the information is distributed.
アントに情報を配信する情報処理方法であって、 サーバは、可変長符号に応ずる対応データを格納する可
変長符号テーブルと可変長符号に応じて前記可変長符号
テーブルのアドレス情報を生成するアドレス発生回路と
を有するクライアントからリクエストを受信し、そのリ
クエストに応答して、前記可変長符号テーブルへの前記
対応データと、前記アドレス発生回路へのアドレス発生
機能定義情報とを前記ネットワークを介してクライアン
トに送信することを特徴とする情報処理方法。14. An information processing method in which a server distributes information to a client via a network, the server comprising: a variable-length code table for storing corresponding data corresponding to the variable-length code; A request is received from a client having an address generation circuit for generating address information of a long code table, and in response to the request, the corresponding data to the variable length code table and an address generation function to the address generation circuit An information processing method, comprising transmitting definition information to a client via the network.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000332538A JP2002141806A (en) | 2000-10-31 | 2000-10-31 | Variable length code decoding device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000332538A JP2002141806A (en) | 2000-10-31 | 2000-10-31 | Variable length code decoding device |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2002141806A true JP2002141806A (en) | 2002-05-17 |
Family
ID=18808731
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000332538A Withdrawn JP2002141806A (en) | 2000-10-31 | 2000-10-31 | Variable length code decoding device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2002141806A (en) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011050090A (en) * | 2003-05-12 | 2011-03-10 | Google Inc | Video compression method |
US8781004B1 (en) | 2011-04-07 | 2014-07-15 | Google Inc. | System and method for encoding video using variable loop filter |
US8780996B2 (en) | 2011-04-07 | 2014-07-15 | Google, Inc. | System and method for encoding and decoding video data |
US8780971B1 (en) | 2011-04-07 | 2014-07-15 | Google, Inc. | System and method of encoding using selectable loop filters |
US8819525B1 (en) | 2012-06-14 | 2014-08-26 | Google Inc. | Error concealment guided robustness |
US8891616B1 (en) | 2011-07-27 | 2014-11-18 | Google Inc. | Method and apparatus for entropy encoding based on encoding cost |
US8897591B2 (en) | 2008-09-11 | 2014-11-25 | Google Inc. | Method and apparatus for video coding using adaptive loop filter |
US9179151B2 (en) | 2013-10-18 | 2015-11-03 | Google Inc. | Spatial proximity context entropy coding |
US9247257B1 (en) | 2011-11-30 | 2016-01-26 | Google Inc. | Segmentation based entropy encoding and decoding |
US9392288B2 (en) | 2013-10-17 | 2016-07-12 | Google Inc. | Video coding using scatter-based scan tables |
US9509998B1 (en) | 2013-04-04 | 2016-11-29 | Google Inc. | Conditional predictive multi-symbol run-length coding |
US9774856B1 (en) | 2012-07-02 | 2017-09-26 | Google Inc. | Adaptive stochastic entropy coding |
US10102613B2 (en) | 2014-09-25 | 2018-10-16 | Google Llc | Frequency-domain denoising |
US11039138B1 (en) | 2012-03-08 | 2021-06-15 | Google Llc | Adaptive coding of prediction modes using probability distributions |
-
2000
- 2000-10-31 JP JP2000332538A patent/JP2002141806A/en not_active Withdrawn
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10616576B2 (en) | 2003-05-12 | 2020-04-07 | Google Llc | Error recovery using alternate reference frame |
JP2011050090A (en) * | 2003-05-12 | 2011-03-10 | Google Inc | Video compression method |
US8824553B2 (en) | 2003-05-12 | 2014-09-02 | Google Inc. | Video compression method |
US8942290B2 (en) | 2003-05-12 | 2015-01-27 | Google Inc. | Dynamic coefficient reordering |
US8897591B2 (en) | 2008-09-11 | 2014-11-25 | Google Inc. | Method and apparatus for video coding using adaptive loop filter |
US8781004B1 (en) | 2011-04-07 | 2014-07-15 | Google Inc. | System and method for encoding video using variable loop filter |
US8780996B2 (en) | 2011-04-07 | 2014-07-15 | Google, Inc. | System and method for encoding and decoding video data |
US8780971B1 (en) | 2011-04-07 | 2014-07-15 | Google, Inc. | System and method of encoding using selectable loop filters |
US8891616B1 (en) | 2011-07-27 | 2014-11-18 | Google Inc. | Method and apparatus for entropy encoding based on encoding cost |
US9247257B1 (en) | 2011-11-30 | 2016-01-26 | Google Inc. | Segmentation based entropy encoding and decoding |
US11039138B1 (en) | 2012-03-08 | 2021-06-15 | Google Llc | Adaptive coding of prediction modes using probability distributions |
US8819525B1 (en) | 2012-06-14 | 2014-08-26 | Google Inc. | Error concealment guided robustness |
US9774856B1 (en) | 2012-07-02 | 2017-09-26 | Google Inc. | Adaptive stochastic entropy coding |
US9509998B1 (en) | 2013-04-04 | 2016-11-29 | Google Inc. | Conditional predictive multi-symbol run-length coding |
US9392288B2 (en) | 2013-10-17 | 2016-07-12 | Google Inc. | Video coding using scatter-based scan tables |
US9179151B2 (en) | 2013-10-18 | 2015-11-03 | Google Inc. | Spatial proximity context entropy coding |
US10102613B2 (en) | 2014-09-25 | 2018-10-16 | Google Llc | Frequency-domain denoising |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7403564B2 (en) | System and method for multiple channel video transcoding | |
US6008745A (en) | Variable length decoding using lookup tables | |
JP2002141806A (en) | Variable length code decoding device | |
JP3341962B2 (en) | Variable length decoder and method for decoding variable length code value | |
JP2007116436A (en) | Coding device and decoding device | |
JP2010278668A (en) | Coding apparatus and method, and decoding apparatus and method | |
JP2002516501A (en) | Variable length decoder for decoding digitally encoded video signals | |
JP2001308715A (en) | Variable length encoder and variable length decoder | |
US7224844B2 (en) | Entropy coding apparatus | |
JPH1065549A (en) | Device for determining length of variable length encoded data value, device for decoding data stream of variable length encoded data value, and method for determining length of variable length encoded data value | |
JP3021331B2 (en) | Variable length decoding device using relative address | |
JP2006157678A (en) | Variable length coding apparatus and variable length coding method | |
US6414993B1 (en) | Decoding system available for compressed data streams for concurrently reproducing stable pictures method for decoding compressed data streams and information storage medium for strong programmed instructions representative of the method | |
US20190356911A1 (en) | Region-based processing of predicted pixels | |
US5835033A (en) | Decoding apparatus and method for coded data | |
US20050174270A1 (en) | Programmable variable length decoder including interface of cpu processor | |
JPH0865171A (en) | Data expansion device, data expansion method, decoder, decoding method, real time video equipment, encoder and entropy decoder | |
US7675972B1 (en) | System and method for multiple channel video transcoding | |
US8229236B2 (en) | Method for progressive JPEG image decoding | |
US6282244B1 (en) | Apparatus and method for decoding compressed digital video data | |
WO2013114826A1 (en) | Image decoding device | |
JP2000261324A (en) | Huffman decoding circuit | |
JP2007074648A (en) | Cabac decoding apparatus | |
US7675437B2 (en) | Variable length decoding device and method for improving variable length decoding performance | |
JP2011015322A (en) | Semiconductor device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20080108 |