JP2008199100A - 可変長符号復号装置 - Google Patents
可変長符号復号装置 Download PDFInfo
- Publication number
- JP2008199100A JP2008199100A JP2007029379A JP2007029379A JP2008199100A JP 2008199100 A JP2008199100 A JP 2008199100A JP 2007029379 A JP2007029379 A JP 2007029379A JP 2007029379 A JP2007029379 A JP 2007029379A JP 2008199100 A JP2008199100 A JP 2008199100A
- Authority
- JP
- Japan
- Prior art keywords
- fifo memory
- variable length
- fifo
- output
- length coding
- 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
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
【課題】複数のFIFOメモリと可変長符号化テーブルの組み合わせを用いた場合に、FIFOメモリの数が増えたことにより、符号語長を出力する際に発生する負荷を低減する。
【解決手段】可変長符号化データの符号語長に基づいて可変長符号化データを出力又は更新するFIFOメモリ部400と、FIFOメモリ部400に可変長符号化データを出力するFIFO入力選択手段300と、可変長符号化データと可変長符号化テーブルとを比較する可変長符号化テーブル500と、符号語長及び復号値を決定し、FIFOメモリ部400に符号語長を出力するテーブル選択部600と、FIFOメモリ部400の出力先FIFOメモリに、入力手段200又は出力先FIFOメモリ以外のFIFOメモリから可変長符号化データを読み出し、出力先FIFOメモリに出力する様にFIFO入力選択手段300を制御する制御手段100と、を含む。
【選択図】図1
【解決手段】可変長符号化データの符号語長に基づいて可変長符号化データを出力又は更新するFIFOメモリ部400と、FIFOメモリ部400に可変長符号化データを出力するFIFO入力選択手段300と、可変長符号化データと可変長符号化テーブルとを比較する可変長符号化テーブル500と、符号語長及び復号値を決定し、FIFOメモリ部400に符号語長を出力するテーブル選択部600と、FIFOメモリ部400の出力先FIFOメモリに、入力手段200又は出力先FIFOメモリ以外のFIFOメモリから可変長符号化データを読み出し、出力先FIFOメモリに出力する様にFIFO入力選択手段300を制御する制御手段100と、を含む。
【選択図】図1
Description
本発明は、可変長符号復号装置に関し、特に、定義済みの可変長符号を用いて符号化された符号列を復号するための可変長符号復号装置に関する。
MPEG−2、H.264、VC−1等の動画像圧縮符号化方式では、定義済みの可変長符号を用いて圧縮符号化される。従って、動画像復号装置の基本的な構成要素の一つとして、定義済みの可変長符号を用いて符号化された符号列を復号するための可変長符号復号装置が必要となる。
従来の可変長符号復号装置は、FIFO(First In First Out)メモリに記憶されたビット列に対して、可変長符号化テーブル(メモリに記憶されたビット列と符号語長及び復号値との関係)を用いて符号語長及び復号値を一意に決定するものである。この場合には、可変長符号化テーブルの数に応じて、符号語長を出力する際に発生する負荷が増加する。特に、VC−1方式を用いた場合は、MPEG−2方式に比べて可変長符号化テーブルの数が増加する。
これに対して、一般に、同一の記憶内容を持つメモリを複数設けて、それぞれの出力先を分散させることにより、負荷を分散させて処理を高速化することが知られている。
しかし、可変長符号復号装置のFIFOメモリに対してこの手法を単純に適用しても、負荷を分散させることによる処理の高速化という効果が薄いという問題がある。その理由は、複数のFIFOメモリから出力されたビット列が可変長符号化テーブルを経由して、符号語長としてFIFOメモリへ戻ってくるためである。すなわち、FIFOメモリを複数設けることにより発生する可変長符号化テーブルの負荷を分散させても、FIFOメモリ(可変長符号化テーブルから出力される符号語長の出力先)の数が増えたことにより、符号語長を出力する際に発生する負荷が増加するからである。
特開平8−205142号公報
本発明は、複数のFIFOメモリと可変長符号化テーブルの組み合わせを用いた場合に、可変長符号化テーブルから出力される符号語長の出力先となるFIFOメモリの数が増えたことにより、符号語長を出力する際に発生する負荷を低減することを目的とする。
本発明によれば、可変長符号化データを入力する入力手段と、前記可変長符号化データを記憶し、前記可変長符号化データの符号語長に基づいて前記可変長符号化データを出力又は更新する第1FIFOメモリ及び第2FIFOメモリと、前記第1FIFOメモリ又は前記第2FIFOメモリに前記可変長符号化データを出力するFIFO入力選択手段と、前記第1FIFOメモリ又は前記第2FIFOメモリに接続され、前記可変長符号化データと前記符号長及び復号値との関係を示す可変長符号化テーブルを記憶するとともに、前記第1FIFOメモリ又は前記第2FIFOメモリに記憶された可変長符号化データを読み出し、前記読み出された可変長符号化データと前記可変長符号化テーブルとを比較する第1可変長符号化テーブル記憶手段及び第2可変長符号化テーブル記憶手段と、前記第1FIFOメモリ又は前記第2FIFOメモリ、及び、前記第1可変長符号化テーブル記憶手段又は前記第2可変長符号化テーブル記憶手段に接続され、前記第1可変長符号化テーブル記憶手段又は前記第2可変長符号化テーブル記憶手段の比較結果に基づいて前記符号語長及び前記復号値を決定し、前記第1FIFOメモリ又は前記第2FIFOメモリに前記決定された符号語長を出力する第1テーブル選択手段及び第2テーブル選択手段と、前記第1FIFOメモリを出力先FIFOメモリとして選択し、前記入力手段又は前記第2FIFOメモリから前記可変長符号化データを読み出し、前記読み出された可変長符号化データを前記第1FIFOメモリに出力する様に前記FIFO入力選択手段を制御する制御手段と、を含むことを特徴とする可変長符号復号装置が提供される。
本発明によれば、複数のFIFOメモリと可変長符号化テーブルの組み合わせを用いた場合に、記憶先となるFIFOメモリを切り替える際に発生するオーバーヘッドを低減させることができる。
以下に、図面を参照して本発明の実施例について説明する。なお、以下の実施例は、本発明の実施の一形態に過ぎず、本発明の範囲を限定するものではない。
図1は、本発明の実施例に係る可変長符号復号装置の構成を示すブロック図である。
可変長符号復号装置は、入力端子(IN)1、出力端子(OUT)2、CPU(制御手段)100、ビットストリーム入力手段200、FIFO入力選択手段300、FIFOメモリ部400、可変長符号化テーブル部500、テーブル選択部600及び復号部700を含む。
CPU(制御手段)100は、FIFO入力選択手段300に制御信号(Ctrl)を出力し、テーブル選択部600にテーブル選択信号(Sel)及び定数(K=0又は32)を出力する。
ビットストリーム入力手段200は、入力端子IN1を介して後述するビットストリーム(BS)(図3(e)を参照)を入力し、所定のビット列(B)単位(例えば、32bit)でFIFO入力選択手段300に出力する。
FIFO入力選択手段300は、CPU(制御手段)100から出力された制御信号(Ctrl)に基づいて、ビットストリーム入力手段200又はFIFOメモリ部400から出力されたビット列(B)のいずれかを選択し、FIFOメモリ部400に出力する。
FIFOメモリ部400は、FIFO入力選択手段300から出力されたビット列(B)を記憶し、First in First out(いわゆる、先入れ先出し)方式により可変長符号化テーブル部500に出力する。出力されたビット列(B)は、ビットストリーム(BS)上における現在の復号位置を先頭とする32ビットのビット列である。また、FIFOメモリ部400は、テーブル選択部600にシフト制御信号(S)を出力する。
可変長符号化テーブル部500は、可変長符号化テーブル(図10(a)及び(b)を参照)を予め記憶し、FIFOメモリ部400から出力されたビット列(B)と可変長符号化テーブルを比較し、比較結果をテーブル選択部600に出力する。
テーブル選択部600は、CPU(制御手段)100から出力されたテーブル選択信号(Sel)に基づいて、可変長符号化テーブル部500から出力された比較結果(符号語長(L)及び復号値(D))の一を選択し、符号語長(L)をFIFOメモリ部400に出力し、復号値(D)を復号部700に出力する。また、テーブル選択部600は、CPU(制御手段)100から出力された定数(K)をFIFOメモリ部400に出力する。
復号部700は、テーブル選択部600から出力された復号値(D)に対して、所定の復号処理を行い、復号済みデータを出力端子OUT2へ出力する。なお、所定の復号処理についての説明は省略する。
図2は、FIFOメモリ部400、可変長符号化テーブル部500及びテーブル選択部600の構成を示すブロック図である。
FIFOメモリ部400は、位置情報に応じて使い分けられる第1FIFOメモリ410〜第3FIFOメモリ430を含む。第1FIFOメモリ410は、ビットストリーム(BS)のピクチャ情報(図3(b)を参照)を復号するために用いられ、第2FIFOメモリ420は、ビットストリーム(BS)のマクロブロック(MB)情報(図3(d)を参照)を復号するために用いられ、第3FIFOメモリ430は、ビットストリーム(BS)のブロック(blk)情報(図3(e)を参照)を復号するために用いられる。第1FIFOメモリ410〜第3FIFOメモリ430は、それぞれ、FIFO入力選択手段300から出力されたビット列(B)を32bit単位で記憶し、可変長符号化テーブル部500に出力する。
可変長符号化テーブル部500は、第1FIFOメモリ410〜第3FIFOメモリ430のそれぞれに対応して設けられた第1可変長符号化テーブル群510〜第3可変長符号化テーブル群530を含む。第1可変長符号化テーブル群510は、ピクチャ用可変長符号化テーブル511及び512を記憶し、第2可変長符号化テーブル群520は、マクロブロック(MB)用可変長符号化テーブル521〜523を記憶し、第3可変長符号化テーブル群530は、ブロック(blk)用可変長符号化テーブル531及び532を記憶する。また、第1可変長符号化テーブル群510〜第3可変長符号化テーブル群530は、それぞれ、FIFOメモリ部400から出力されたビット列(B)と可変長符号化テーブル511〜532を比較し、比較結果をテーブル選択部600に出力する。
例えば、第1可変長符号化テーブル群510にビット列(B)が出力された場合は、可変長符号化テーブル511及び512のそれぞれに対応する比較結果(すなわち、2種類の比較結果)が出力される。
図10(a)及び(b)は、可変長符号化テーブル511及び512の一例を示す。可変長符号化テーブルは、二分木上で互いに重なり合わない符号語に対する符号語長(L)及び復号値(D)の関係を示す情報である。
例えば、第1FIFOメモリ410から出力されたビット列の符号語が“01”である場合は、可変長符号化テーブル511の比較結果は、符号語長(L=2bit)、復号値(D=6)であり、可変長符号化テーブル512の比較結果は、符号語長(L=2bit)、復号値(D=1)である(図10(c)を参照)。
テーブル選択部600は、第1可変長符号化テーブル群510〜第3可変長符号化テーブル群530のそれぞれに対応して設けられた第1テーブル選択手段610〜第3テーブル選択手段630を含む。第1テーブル選択手段610〜第3テーブル選択手段630は、CPU(制御手段)100から出力されたテーブル選択信号(Sel)に基づいて、可変長符号化テーブル部500から出力された比較結果を一意に決定し、符号語長(L)をFIFOメモリ部400に出力し、復号値(D)を復号部700に出力する。また、第1テーブル選択手段610〜第3テーブル選択手段630は、CPU(制御手段)100から出力された定数(K)をFIFOメモリ部400に出力する。
例えば、可変長符号化テーブル部500から図10(c)に示されたような比較結果が出力された場合は、第1テーブル選択手段610は、符号語長“L=2”を第1FIFOメモリ410に出力し、復号値“D=1”を復号部700に出力する。
図3は、本実施例に係るビットストリーム(BS)のデータ構造の一例である。
ビットストリーム(BS)は、シーケンス情報、ピクチャ情報、スライス情報、マクロブロック(MB)情報及びブロック(blk)情報を含む。図3(a)は、シーケンス情報の一例である。シーケンス情報は、複数のピクチャ情報を含む。図3(b)は、ピクチャ情報の一例である。ピクチャ情報は、複数のスライス情報を含む。図3(c)は、スライス情報の一例である。スライス情報は、所定の大きさに分割された複数のマクロブロック(MB)情報を含む。図3(d)は、マクロブロック(MB)情報は、4つのYブロック、1つのCbブロック及びCrブロックを含む。
図3(e)は、本実施例に係るビットストリーム全体のデータ構造を示す。本実施例に係るビットストリームは、ヘッダ情報としてのシーケンス情報に続き、複数のピクチャ情報を含む。また、前述のとおり、1つのピクチャ情報は、複数のスライス情報を含み、1つのスライス情報は、複数のマクロブロック(MB)情報を含み、1つのマクロブロック(MB)情報は、6つのブロック(blk)情報を含む。
図4は、本実施例に係る第1FIFOメモリ410の構成を示すブロック図である。なお、第2FIFOメモリ420及び第3FIFOメモリ430の構成も同様である。
第1FIFOメモリ410は、第1レジスタ411、第2レジスタ412、第3レジスタ413、シフタ414及び加算器415を含む。なお、シフタ414及び加算器515は、組み合わせ回路で実現され、同期式順序回路を形成する。
第1レジスタ411は、FIFO入力選択手段300から出力された32bitのビット列(B)を記憶するとともに、後述する更新制御信号に基づいて、FIFO入力選択手段300、第2レジスタ412及びシフタ414に出力する。すなわち、第1レジスタ411は、FIFO入力選択手段300から出力された32bitのビット列(B)を記憶し、更新するためのレジスタである。
第2レジスタ412は、第1レジスタ411から出力された32bitのビット列(B)を記憶するとともに、後述する更新制御信号に基づいて、FIFO入力選択手段300及びシフタ414に出力する。すなわち、第2レジスタ412は、第1レジスタ411から出力された32bitのビット列(B)を記憶し、更新するためのレジスタである。
第3レジスタ413は、後述する加算器415の加算結果の下位5bit(A2)をシフト制御信号(S)として記憶するとともに、シフタ414、加算器415、並びに、第2テーブル選択手段620及び第3テーブル選択手段630に出力する。
シフタ414は、第3レジスタ413から出力された5bitのシフト制御信号(S)に基づいて、第1レジスタ411又は第2レジスタ412から出力された32bitのビット列(B)を更新するためのシフト処理を行うとともに、32bitのビット列(B)を第1可変長符号化テーブル510に出力する。シフト処理は、第1レジスタ411及び第2レジスタ412の32ビットのビット列(合計64ビットの値)を最大32ビット分シフトすることができる。
加算器415は、第1テーブル選択手段610から出力された6bitの符号語長(L)と第3レジスタ413から出力された5bitのシフト制御信号(S)とを加算するとともに、加算結果の上位1ビット(A1)を更新制御信号として、第1レジスタ411及び第2レジスタ412に出力し、加算結果の下位5ビット(A2)を更新値として、第3レジスタ413に出力する。また、加算器415は、第1テーブル選択手段610から出力された定数(K)をAとみなし、上位1ビット(A1)を第1レジスタ411及び第2レジスタ412に出力し、下位5ビットを第3レジスタ413に出力する。
例えば、K=0の場合は、FIFOメモリ部400及び可変長符号化テーブル部500は動作しない(すなわち、第1レジスタ411〜第3レジスタ413の値が更新されない)が、K=32の場合は、FIFO入力選択手段300からFIFOメモリ部400に32bitのビット列が出力される。
図5は、FIFO入力選択手段300の構成を示すブロック図である。
FIFO入力選択手段300は、マルチプレクサ310を含む。マルチプレクサ310は、CPU(制御手段)100から出力された制御信号(Ctrl)に基づいて、ビットストリーム入力手段200又はFIFOメモリ部400(例えば、第1FIFOメモリ410の第1レジスタ411若しくは第2レジスタ412)の一を選択し、FIFOメモリ部400(例えば、第1FIFOメモリ410の第1レジスタ411)に出力する。また、FIFO入力選択手段300は、ビット列の位置情報を参照し、第1FIFOメモリ410〜第3FIFOメモリ430のいずれかを出力先FIFOメモリとして選択する。
例えば、後述するFIFO移動処理(図9を参照)では、マルチプレクサ310は、第2FIFOメモリ420又は第3FIFOメモリ430から出力されたビット列を第1FIFOメモリ410の第1レジスタ411に出力する。
図6は、本実施例に係る第1テーブル選択手段610の構成を示すブロック図である。なお、第2テーブル選択手段620及び第3テーブル選択手段630の構成も同様である。
第1テーブル選択手段610は、マルチプレクサ611を含む。マルチプレクサ611は、CPU(制御手段)100から出力されたテーブル選択信号(Sel)に基づいて、第1可変長符号化テーブル群510から出力された複数の比較結果の一を選択し、符号語長(L)を第1FIFOメモリ410の加算器414に出力し、復号値(D)を復号部700に出力する。
例えば、後述するFIFO移動処理(図9を参照)では、マルチプレクサ611は、第2FIFOメモリ420の第3レジスタ423又は第3FIFOメモリ430の第3レジスタ433から出力されたシフト制御信号(S)を第1FIFOメモリ410の第3レジスタ413に出力し、CPU(制御手段)100から出力された定数(K)を第1FIFOメモリ410の加算器415に出力する。
図7は、本実施例に係る復号処理におけるCPU(制御手段)100の処理手順を示すフローチャートである。
CPU(制御手段)100は、はじめに、FIFO入力選択手段300に制御信号(Ctrl)を出力することにより、ビット列(B)の位置情報に基づいて第1FIFOメモリ410を出力先FIFOメモリとして選択させるとともに、第1テーブル選択手段610に定数(K)を出力することにより、第1FIFOメモリ410にビット列(B)を記憶させる(S701)。このとき、CPU(制御手段)100は、第2FIFOメモリ420及び第3FIFOメモリ430を動作させない様にするために、第2テーブル選択手段620及び第3テーブル選択手段630に定数(K=0)を出力する。
続いて、第1FIFOメモリ410に記憶されたビット列(B)について、シーケンス情報復号処理を行う(S702)。続いて、ピクチャ情報(すなわち、S702の復号結果)について、第1符号化テーブル群510に記憶されたピクチャ用テーブル(可変長符号化テーブル511及び512)を用いて復号する(S703)。S703については、後述する(図8を参照)。続いて、スライス情報(すなわち、S703の複合結果)について、図示しないスライス用テーブルを用いて復号する(S704)。
続いて、S704の復号結果のビット列(B)の位置情報を参照し、ピクチャ用FIFOメモリ(第1FIFOメモリ410)からマクロブロック用FIFOメモリ(第2FIFOメモリ420)へのFIFO移動処理(図9を参照)を行う(S705)。続いて、マクロブロック(MB)情報について、第2符号化テーブル群520に記憶されたマクロブロック用テーブルを用いて復号する(S706)。
続いて、S706の復号結果のビット列(B)の位置情報を参照し、マクロブロック用FIFOメモリ(第2FIFOメモリ420)からブロック用FIFOメモリ(第3FIFOメモリ430)へのFIFO移動処理を行う(S707)。続いて、ブロック(blk)情報について、第3符号化テーブル群530に記憶されたブロック用テーブルを用いて復号する(S708)。
全てのブロック(blk)情報についての復号が終了した場合は(S709−Yes)、スライス情報の終端まで復号したか否かを判定する(S710)。全てのスライス情報の終端まで復号していない場合は(S710−No)、ブロック用FIFOメモリ(第3FIFOメモリ430)からマクロブロック用FIFOメモリ(第2FIFOメモリ420)へのFIFO移動処理を行い(S711)、S706へ戻る。
一方、全てのスライス情報の終端まで復号した場合は(S710−Yes)、全てのピクチャ情報の終端まで復号したか否かを判定する(S712)。全てのピクチャ情報の終端まで復号していない場合は(S712−Yes)、ブロック用FIFOメモリ(第3FIFOメモリ430)からピクチャ用FIFOメモリ(第1FIFOメモリ410)へのFIFO移動処理を行い(S713)、S704へ戻る。
一方、全てのピクチャ情報の終端まで復号した場合は(S712−Yes)、全てのビットストリーム(BS)の終端まで復号したか否かを判定する(S714)。全てのビットストリーム(BS)の終端まで復号していない場合は(S714−No)、ブロック用FIFOメモリ(第3FIFOメモリ430)からピクチャ用FIFOメモリ(第1FIFOメモリ410)へのFIFO移動処理を行い(S713)、S703へ戻る。
一方、全てのビットストリーム(BS)の終端まで復号した場合は(S714−Yes)、復号処理を終了する。
なお、S702、S704、S706及びS708は、S703と同様に行われる(図10を参照)。また、S707、S711、S713及びS715は、S705と同様に行われる(図9を参照)。
図8は、本実施例に係るピクチャ情報復号処理における1クロック周期において行われるCPU(制御手段)100の処理手順を示すフローチャートである。なお、ピクチャ情報以外の復号処理(例えば、スライス情報復号処理、マクロブロック(MB)情報復号処理及びブロック(blk)情報復号処理等)についても同様である。
CPU(制御手段)100は、はじめに、第1FIFOメモリ410に記憶されたビット列(B)を定数(K)又は符号語長(L)の値に従って更新する(S801)。なお、最初のビット列(B)に対してピクチャ情報復号処理を行う場合は定数(K)の値に従い、2番目以降のビット列(B)に対してピクチャ情報復号処理を行う場合は符号語長(L)の値に従う。
続いて、第1FIFOメモリ410から第1可変長符号化テーブル群510にビット列を出力する(S802)。続いて、第1可変長符号化テーブル群510に記憶された可変長符号化テーブルを第1テーブル選択手段610に出力する(S803)。続いて、テーブル選択信号(Sel)に基づいて、符号語長(L)及び復号値(D)を選択する(S804)。続いて、第1テーブル選択手段610に符号語長(L)を出力し、復号部700に復号値(D)を出力する(S805)。
続いて、復号処理を停止しない場合は(S806−No)、S801に戻り、S805において出力された符号語長(L)に従って、ビット列(B)を更新する(S801)。S801〜S805の処理は、復号が停止するまで行われる。一方、復号処理を停止する場合は(S806−Yes)、第1テーブル選択手段610に定数(K=0)を出力し、ピクチャ情報復号処理を終了する(S807)。
図9は、本実施例に係るFIFO移動処理におけるCPU(制御手段)100の処理手順を示すフローチャートである。なお、図9は、第1FIFOメモリ410から第2FIFOメモリ420へ移動する場合についての例であるが、その他の場合についても同様である。
CPU(制御手段)100は、はじめに、第2FIFOメモリ420を初期化することにより、第2FIFOメモリの第1レジスタ〜第3レジスタの内容を全て0にする(S901)。続いて、第1テーブル選択手段610に定数(K=0)を出力する(S902)。S901及びS902は、第1クロック周期内において行われる。
続いて、第2テーブル選択手段620に所定のテーブル選択信号(sel)を出力することにより、第1FIFOメモリ610の第3レジスタ413に記憶された符号長(L)を第2FIFOメモリ420の第3レジスタ423に出力する(S903)。S903は、第2クロック周期内において行われる。第2クロック周期が終了した時点で、第2FIFOメモリ420の第3レジスタ423と第1FIFOメモリ410の第3レジスタ413の内容とが同一になる。
続いて、第2テーブル選択手段620を介して第2FIFOメモリ420の加算器に定数(K=32)を出力する(S904)。続いて、FIFO入力選択手段300に制御信号(Ctrl)を出力することにより、第1FIFOメモリ410の第1レジスタ411に記憶されたビット列(B)を第2FIFOメモリ420の第1レジスタ(図示しない)に出力する(S905)。S904及びS905は、第3クロック周期内において行われる。第3クロック周期が終了した時点で、第2FIFOメモリ420の第1レジスタ(図示しない)と第1FIFOメモリ410の第2レジスタ412の内容とが同一になる。なお、S904において、第2FIFOメモリ420の第3レジスタ423に定数(K=32)が記憶されたので、第4クロック周期において、第2FIFOメモリ420の第1レジスタ(図示しない)に記憶されたビット列(B)は第2FIFOメモリ420の第2レジスタ(図示しない)に出力されることになる。
続いて、第2テーブル選択手段620を介して第2FIFOメモリ420の加算器に定数(K=32)を出力する(S906)。続いて、FIFO入力選択手段300に制御信号(Ctrl)を出力することにより、第1FIFOメモリ410の第2レジスタ412に記憶されたビット列(B)を第2FIFOメモリ420の第1レジスタ(図示しない)に出力する(S907)。S906及びS907は、第4クロック周期内において行われる。第4クロック周期が終了した時点で、第2FIFOメモリ420の第1レジスタ及び第2レジスタ(図示しない)と第1FIFOメモリ410の第1レジスタ411及び第2レジスタ412の内容とが同一になる。なお、S906において、第2FIFOメモリ420の第3レジスタ423に定数(K=32)が記憶されたので、第2FIFOメモリ420の第1レジスタ(図示しない)に記憶されたビット列(B)は、第5クロック周期において、第2FIFOメモリ420の第2レジスタ(図示しない)に出力されることになる。
本実施例によれば、図2に示されたように、用途毎の可変長符号化テーブル群510〜530を設けており、FIFOメモリ410〜430から可変長符号化テーブル群510〜530を経由してテーブル選択部610〜630に入力された符号語長Lまたは定数Kが、再びFIFOメモリ410〜430に出力される経路が存在する。この経路は、FIFOメモリが単一である場合にも同様に存在する経路であり、新たな経路が加えられたわけではない。このように、可変長符号化テーブル部500に記憶される可変長符号化テーブルの数が増えた場合でも、1つのFIFOメモリにかかる負荷を低減することができるので、可変長符号復号装置の最大伝搬遅延時間を短縮でき、ひいては、復号処理全体を高速化することができる。
また、図9に示されたように、FIFO移動処理において、複数のFIFOメモリ410〜430間でのデータ交換を行うので、用途毎の可変長符号化テーブル群510〜530を設けた場合に複数のFIFOメモリに同じビット列(B)を出力しておく必要がないため、複数のFIFOメモリ410〜430の動作消費電力を低減することができる。
100 CPU(制御手段)
200 ビットストリーム入力手段
300 FIFO入力選択手段
400 FIFOメモリ部
500 可変長符号化テーブル部
600 テーブル選択部
700 復号部
200 ビットストリーム入力手段
300 FIFO入力選択手段
400 FIFOメモリ部
500 可変長符号化テーブル部
600 テーブル選択部
700 復号部
Claims (5)
- 可変長符号化データを入力する入力手段と、
前記可変長符号化データを記憶し、前記可変長符号化データの符号語長に基づいて前記可変長符号化データを出力又は更新する第1FIFOメモリ及び第2FIFOメモリと、
前記第1FIFOメモリ又は前記第2FIFOメモリに前記可変長符号化データを出力するFIFO入力選択手段と、
前記第1FIFOメモリ又は前記第2FIFOメモリに接続され、前記可変長符号化データと前記符号長及び復号値との関係を示す可変長符号化テーブルを記憶するとともに、前記第1FIFOメモリ又は前記第2FIFOメモリに記憶された可変長符号化データを読み出し、前記読み出された可変長符号化データと前記可変長符号化テーブルとを比較する第1可変長符号化テーブル記憶手段及び第2可変長符号化テーブル記憶手段と、
前記第1FIFOメモリ又は前記第2FIFOメモリ、及び、前記第1可変長符号化テーブル記憶手段又は前記第2可変長符号化テーブル記憶手段に接続され、前記第1可変長符号化テーブル記憶手段又は前記第2可変長符号化テーブル記憶手段の比較結果に基づいて前記符号語長及び前記復号値を決定し、前記第1FIFOメモリ又は前記第2FIFOメモリに前記決定された符号語長を出力する第1テーブル選択手段及び第2テーブル選択手段と、
前記第1FIFOメモリを出力先FIFOメモリとして選択し、前記入力手段又は前記第2FIFOメモリから前記可変長符号化データを読み出し、前記読み出された可変長符号化データを前記第1FIFOメモリに出力する様に前記FIFO入力選択手段を制御する制御手段と、を含むことを特徴とする可変長符号復号装置。 - 請求項1に記載の可変長符号復号装置であって、さらに
前記第1テーブル選択手段及び前記第2テーブル選択手段と接続され、前記決定された復号値を復号する復号手段と、を含み、
前記制御手段は、前記復号手段の復号結果に対してさらに復号する必要がある場合に、前記第1FIFOメモリに記憶された前記可変長符号化データを読み出し、前記第2FIFOメモリに出力する様に前記FIFO入力選択手段を制御することを特徴とする可変長符号復号装置。 - 請求項2に記載の可変長符号復号装置であって、
前記制御手段は、前記第1FIFOメモリに記憶された前記可変長符号化データを読み出し、前記第2FIFOメモリに出力する際に、前記可変長符号化データを出力又は更新するための符号語長を前記第2FIFOメモリに出力する様に前記第2テーブル選択手段を制御することを特徴とする可変長符号復号装置。 - 請求項1〜3のいずれか1項に記載の可変長符号復号装置であって、
前記第1可変長符号化テーブル記憶手段及び第2可変長符号化テーブル記憶手段は、それぞれ、前記可変長符号化データの位置情報毎に設けられることを特徴とする可変長符号復号装置。 - 請求項4のいずれか1項に記載の可変長符号復号装置であって、
前記制御手段は、前記位置情報に基づいて、前記第1FIFOメモリ又は前記第2FIFOメモリを前記出力先FIFOメモリとして選択することを特徴とする可変長符号復号装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007029379A JP2008199100A (ja) | 2007-02-08 | 2007-02-08 | 可変長符号復号装置 |
US12/027,637 US7567189B2 (en) | 2007-02-08 | 2008-02-07 | Variable length code decoding apparatus and variable length code decoding method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007029379A JP2008199100A (ja) | 2007-02-08 | 2007-02-08 | 可変長符号復号装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008199100A true JP2008199100A (ja) | 2008-08-28 |
Family
ID=39706181
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007029379A Pending JP2008199100A (ja) | 2007-02-08 | 2007-02-08 | 可変長符号復号装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7567189B2 (ja) |
JP (1) | JP2008199100A (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9025661B2 (en) | 2010-10-01 | 2015-05-05 | Qualcomm Incorporated | Indicating intra-prediction mode selection for video coding |
US8913662B2 (en) | 2011-01-06 | 2014-12-16 | Qualcomm Incorporated | Indicating intra-prediction mode selection for video coding using CABAC |
CN107197286B (zh) * | 2017-05-15 | 2019-05-14 | 华中科技大学 | 一种基于可逆变长码的图像无损压缩方法和*** |
TWI741919B (zh) * | 2020-01-15 | 2021-10-01 | 瑞鼎科技股份有限公司 | 串流解壓縮電路 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5173695A (en) | 1990-06-29 | 1992-12-22 | Bell Communications Research, Inc. | High-speed flexible variable-length-code decoder |
US5412611A (en) * | 1992-03-17 | 1995-05-02 | Fujitsu, Limited | FIFO memory device capable of writing contiguous data into rows |
US5572208A (en) * | 1994-07-29 | 1996-11-05 | Industrial Technology Research Institute | Apparatus and method for multi-layered decoding of variable length codes |
JPH08205142A (ja) | 1994-12-28 | 1996-08-09 | Daewoo Electron Co Ltd | ディジタルビデオ信号への符号化/復号化装置 |
US6934338B1 (en) | 1998-05-18 | 2005-08-23 | Sony Corporation | Variable length decoder for decoding digitally encoded video signals |
US6862278B1 (en) * | 1998-06-18 | 2005-03-01 | Microsoft Corporation | System and method using a packetized encoded bitstream for parallel compression and decompression |
JP2001084707A (ja) | 1999-09-10 | 2001-03-30 | Toshiba Corp | 可変長符号の復号方法、復号装置及び可変長符号の復号プログラムを記録したコンピュータ読み取り可能な記録媒体 |
JP4271134B2 (ja) | 2004-12-10 | 2009-06-03 | 株式会社東芝 | 可変長符号化デコーダおよびデコード方法 |
JP2006254225A (ja) | 2005-03-11 | 2006-09-21 | Toshiba Corp | 可変長符号の復号装置及び復号方法 |
US7728744B2 (en) * | 2005-10-26 | 2010-06-01 | Analog Devices, Inc. | Variable length decoder system and method |
-
2007
- 2007-02-08 JP JP2007029379A patent/JP2008199100A/ja active Pending
-
2008
- 2008-02-07 US US12/027,637 patent/US7567189B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US7567189B2 (en) | 2009-07-28 |
US20080198046A1 (en) | 2008-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8094048B2 (en) | Method of decoding syntax element in context-based adaptive binary arithmetic coding decoder and decoding device therefor | |
US7385535B2 (en) | Decoding system and method based on context-based adaptive binary arithmetic coding | |
JP4792257B2 (ja) | 適応算術復号化方法及び適応算術復号化装置 | |
JP4962476B2 (ja) | 算術復号装置 | |
US7365660B2 (en) | Method and device for decoding syntax element in CABAC decoder | |
KR100717055B1 (ko) | Cabac 복호기에서 복수의 이진 값들을 파이프라인방식에 의하여 복호화하는 방법 및 이를 위한 복호화 장치 | |
KR101118089B1 (ko) | 가변장 복호화 장치 및 방법 | |
JP2008289125A (ja) | 算術復号化装置及びその方法 | |
JP5264706B2 (ja) | 算術デコーディング方法及びデバイス | |
JP4442891B2 (ja) | 可変長符号化装置及び可変長符号化方法 | |
JP6159240B2 (ja) | 二値算術符号化装置、二値算術符号化方法及び二値算術符号化プログラム | |
JP2008199100A (ja) | 可変長符号復号装置 | |
US7928868B1 (en) | Entropy decoding device | |
JP4841496B2 (ja) | 可変長符号復号化装置 | |
JP2013016897A (ja) | 可変長符号復号装置、符号システムおよび可変長符号復号方法 | |
JP2010093522A (ja) | 画像処理装置 | |
JP2010166552A (ja) | テーブル装置、符号化装置、復号装置および符号化/復号装置 | |
JP2007158698A (ja) | 画像復号装置及び画像復号方法 | |
JP2011109364A (ja) | 画像処理装置 | |
JP2004320724A (ja) | 可変長復号装置及び方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体 | |
JP2008098751A (ja) | 算術符号化装置及び算術復号化装置 | |
KR100686354B1 (ko) | 가변 트리를 이용한 허프만 복호화 방법 및 장치 | |
JP5857978B2 (ja) | 符号化装置、復号装置、符号化・復号システム、及びプログラム | |
JP2010258927A (ja) | 符号データ処理装置、方法及びプログラム | |
KR102580669B1 (ko) | 프로세서 및 프로세서의 데이터 처리 방법 |