(57)【特許請求の範囲】
【請求項１】
可変長符号化された符号化データを復号する可変長復号装置であって、
記憶ユニットと、
可変長符号化された符号化データを、非ゼロの量子化データの最後を示す値を含む中間データに変換する可変長復号部とを備え、
前記可変長復号部は、前記中間データから、前記値により示される前記非ゼロの量子化データの最後に至るまでの部分的量子化データを生成し、
前記可変長復号部は、前記部分的量子化データのみを前記記憶ユニットに保存し、
前記記憶ユニットの各アドレスに対応して、前記量子化データがゼロまたは非ゼロであることを示すフラグを格納するフラグレジスタをさらに備え、
前記可変長復号部は、前記フラグレジスタの全アドレスに、ゼロ（「０」）を示すフラグを設定して、前記フラグレジスタを初期化した後に、変換した量子化データのうちの非ゼロの量子化データのみを前記記憶ユニットに格納し、前記フラグレジスタの対応するアドレスに、非ゼロを示すフラグを設定し、
逆量子化部と、
値「０」を出力するデータ設定部とをさらに備え、
前記逆量子化部は、前記フラグレジスタのフラグが非ゼロであることを示す場合は、前記記憶ユニットの対応するアドレスから量子化データを読み込み、前記フラグレジスタのフラグがゼロ（「０」）であることを示す場合は、前記記憶ユニットから量子化データを読み込まず、前記データ設定部が出力する値「０」を取り込み、ＤＣＴ係数を生成する、可変長復号装置。
【請求項２】
請求項１記載の可変長復号装置を含む電子機器。
【請求項３】
可変長符号化された符号化データを復号する可変長復号方法であって、
可変長符号化された符号化データを、非ゼロの量子化データの最後を示す値を含む中間データに変換する可変長復号ステップとを含み、
前記可変長復号ステップにおいて、前記中間データから、前記値により示される前記非ゼロの量子化データの最後に至るまでの部分的量子化データを生成し、
前記可変長復号ステップにおいて、前記部分的量子化データのみを記憶ユニットに保存し、
前記記憶ユニットの各アドレスに対応して、前記量子化データがゼロまたは非ゼロであることを示すフラグを格納するフラグレジスタをさらに設け、
前記可変長復号ステップにおいて、前記フラグレジスタの全アドレスに、ゼロ（「０」）を示すフラグを設定して、前記フラグレジスタを初期化した後に、変換した量子化データのうちの非ゼロの量子化データのみを前記記憶ユニットに格納し、前記フラグレジスタの対応するアドレスに、非ゼロを示すフラグを設定し、
逆量子化ステップと、  値「０」を出力するデータ設定ステップとをさらに含み、
前記逆量子化ステップにおいて、前記フラグレジスタのフラグが非ゼロであることを示す場合は、前記記憶ユニットの対応するアドレスから量子化データを読み込み、前記フラグレジスタのフラグがゼロ（「０」）であることを示す場合は、量子化データを読み込まず、前記データ設定ステップにおいて出力される値「０」を取り込み、ＤＣＴ係数を生成する、可変長復号方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、可変長符号化された符号データを復号する可変長復号装置に関するものである。
【背景技術】
【０００２】
動画像データを圧縮伸長する方式として、ＭＰＥＧ２、ＭＰＥＧ４等の国際規格（非特許文献１）が知られている。近年、動画像をあつかうディジタル家電製品の中には、これら国際規格に準拠したＬＳＩやソフトウエアコアが必ず実装されている。
【０００３】
これらの国際標準によれば、動画像データは８×８画素のブロックまたは１６×１６画素のマクロブロックに分割されており、ブロック単位またはマクロブロック単位でデータ処理が実行される。
【０００４】
ＭＰＥＧ２、ＭＰＥＧ４等の動画像データを圧縮するための符号化器は、主に、離散コサイン変換器（ＤＣＴ）と、量子化器（Ｑ）と、可変長符号化器（ＶＬＣ）とから構成される。入力された画素データは、まず離散コサイン変換器によって、空間領域データから周波数領域データに変換される。画素データが自然画像からなる時、周波数領域データに変換すると、低周波領域にデータが集中する。次に量子化器で、離散コサイン変換器で得られた周波数領域データのうち高周波成分の係数を値「０」にするために、粗く量子化する。そうすると周波数データは、非ゼロの値が低周波成分のデータに集中し、高周波成分のデータは全て値「０」に変換される。可変長符号化器では、低周波成分から高周波成分にデータが構成されるように、つまり、高周波成分の値「０」が連なりやすいように、ジグザグにスキャンをしながら、非ゼロとゼロのデータセットを生成する。このデータセットをハフマンコードのテーブルを用いて可変長符号化し、可変長符号化データを得る。
【０００５】
上述した可変長符号化データが記録媒体あるいはネットワークを通じて提供される。可変長符号化データを復号して、動画像データを復元するための復号器は、一般に、可変長復号器（ＶＬＤ）、逆量子化器（ＩＱ）、逆離散コサイン変換器（ＩＤＣＴ）から構成される。
【０００６】
図１５は、従来の画像復号装置のブロック図である。図１５に示す従来の画像復号装置は、符号化データメモリ１、アドレス生成器２ａを有する可変長復号器（ＶＬＤ）２、係数データメモリ３、逆量子化器（ＩＱ）４、及び、逆ＤＣＴ器（ＩＤＣＴ）５を備える。符号化データメモリ１は、動画像データが可変長符号化された可変長符号化データを格納する。係数データメモリ３は、可変長復号器２によって変換された係数データ（すなわち、量子化データ）であるランレングス値を格納する。
【０００７】
図１５に示す従来の画像復号装置の動作の概要を以下に説明する。
【０００８】
可変長復号器２に符号化データメモリ１から可変長符号化データが供給されると、可変長復号器２は、まず、係数データメモリ３の初期化を行う。すなわち、この初期化処理として、可変長復号器２は、係数データメモリ３の全アドレスに対して値「０」を書き込むことによって、クリア処理を行う。
【０００９】
画像復号装置における画像データの処理は、マクロブロック単位で行われるのが一般的である。例えば、画素データの構成比がＹ：Ｃｂ：Ｃｒ＝４：２：０であるとすると、１マクロブロックは、Ｙ：１６×１６画素、Ｃｂ：８×８画素、Ｃｒ：８×８画素の計３８４画素で構成されるので、１マクロブロックの初期化に３８４シンボル分の初期化が必要となる。（１画素は、通常、８ビットからなる１シンボルの画素値を持つ。）１画素当たりに１サイクルの初期化処理が必要とすると、１マクロブロックの初期化処理に３８４サイクルが必要となる。
【００１０】
初期化処理が終了すると、可変長復号器２は、符号化データメモリ１からの可変長符号化データ（ビット列）を、別に用意されている可変長復号テーブルと照合して、量子化データに復号し、そのうちの非ゼロの量子化データのみを、係数データメモリ３に書き込む。非ゼロの量子化データが書き込まれる係数データメモリ３のアドレスは、アドレス生成器２ａによって生成される。
【００１１】
このようにして、１マクロブロックの復号処理が終了すると、次のマクロブロックの復号処理を行う。この時、図１５に示す従来の画像復号装置では、新しいマクロブロックの復号処理を行うために、係数データメモリ３の初期化が必要である。この初期化は、毎マクロブロックの復号処理ごとに必要であるため、復号処理に要する時間における初期化処理に要する時間の割合が大きい。
【００１２】
図１５に示した従来の画像復号装置では、最終的な係数データ（量子化データ）を格納するまでに要する復号処理サイクル数は、
（復号処理サイクル）＝（初期化処理の最低３８４サイクル）＋
（非ゼロのシンボル数）＊（ＶＬＤでのシンボル当たりの復号処理サイクル数）
となる。ここに、１シンボル数は、量子化データの１データに相当する。
【００１３】
バッテリーで動作するような携帯機器に搭載される画像復号装置では、動作周波数は低いことが望ましいので、前記復号処理サイクルもなるべく少ないことが望ましい。しかし、近年、画面サイズや動画像処理フレーム数の増大により、復号処理サイクル数は、増加傾向にあり、初期化処理に要するサイクル数もなるべく小さくする必要がある。さらに、毎マクロブロックの復号処理で、必ず係数データメモリ３の初期化処理のためのアクセスが、３８４サイクルあるために、消費電力も増大してしまう。なるべく係数データメモリ３へのアクセス回数を低減する必要がある。
【００１４】
図１６は、図１の従来画像復号装置における、初期化処理に要する時間の影響を軽減するように改良したものである。すなわち、図１６は、従来の改良型画像復号装置のブロック図である。図１６において、 図１５と同様な構成要素については、同一の符号を付すことにより、説明を省略する。
【００１５】
図１６に示すように、従来の改良型画像復号装置は、並列に設置された係数データメモリ３ａと係数データメモリ３ｂ、及び、これらを交互に切り替える切替え器６を備えている。
【００１６】
図１６に示す従来の改良型画像復号装置では、可変長復号器２に符号化データメモリ１から可変長符号化データが供給されると、可変長復号器２は、まず、係数データメモリ３ａの初期化を行う。初期化が終了すると、可変長復号器２は、切替え器６の選択を切り替えて、係数データメモリ３ｂの初期化を行う。同時に、可変長復号器２は、符号化データメモリ１からの可変長符号化データ（ビットストリーム）を、別に用意されている可変長復号テーブルと照合して、量子化データを復号し、そのうちの非ゼロの量子化データのみを、係数データメモリ３ａに書き込む。
【００１７】
このように、並列に設置された２つの係数データメモリ３ａ、３ｂを交互に切り替え、初期化の処理と、復号とデータ書込みの処理とを並列に実行することによって、初期化処理に要する時間の影響を軽減している。
【００１８】
図１６に示す従来の改良型画像復号装置では、最終的な係数データ（量子化データ）を格納するまでに要する復号処理サイクル数は、
（初期化処理の最低３８４サイクル）と、
（非ゼロのシンボル数）＊（ＶＬＤでのシンボル当たりの復号処理サイクル数）のうち、いずれか大きい方のサイクル数となる。しかし、図１６に示す従来の改良型画像復号装置では、２つの係数データメモリ３ａ、３ｂを設置しなければならないので、回路面積の増大は避けられない。
【非特許文献１】ＩＳＯ／ＩＥＣ  １４４９６−１０：２００３、”Ｉｎｆｏｒｍａｔｉｏｎ  ｔｅｃｈｎｏｌｏｇｙ，  Ｃｏｄｉｎｇ  ｏｆ  ａｕｄｉｏ−ｖｉｓｕａｌ  ｏｂｊｅｃｔｓ−Ｐａｒｔｓ  １０：Ａｄｖａｎｃｅｄ  ｖｉｄｅｏ  ｃｏｄｉｎｇ”
【発明の開示】
【発明が解決しようとする課題】
【００１９】
そこで本発明は、少ないハードウェア資源で可変長符号化データの復号を高効率に実現でき、かつ、消費電力の低い可変長復号装置を提供することを目的とする。
【課題を解決するための手段】
【００２０】
第１の発明に係る可変長復号装置は、可変長符号化された符号化データを復号する可変長復号装置であって、符号化データを量子化データに変換する可変長復号部と、量子化データを格納する記憶ユニットとを備え、可変長復号部は、変換した量子化データのうちの非ゼロの量子化データのみを、記憶ユニットに格納する。
【００２１】
この構成によれば、可変長復号部は、変換した量子化データのうちの非ゼロの量子化データのみを、記憶ユニットに格納すればよいので、復号処理の時間を短縮できる。また、本構成の可変長復号装置は、初期化機能つき記憶ユニットまたは非ゼロデータ表示フラグメモリを付加して、さらに機能の拡充を図れるので、発展性がある。
【００２２】
第２の発明に係る可変長復号装置では、記憶ユニットは、記憶ユニットの全領域を初期化する初期化機構を有し、可変長復号部は、初期化機構が記憶ユニットの全領域をゼロ（「０」）に初期化した後に、変換した量子化データのうちの非ゼロの量子化データのみを、記憶ユニットに格納する。
【００２３】
この構成によれば、マクロブロックの復号ごとに必要な記憶ユニットの初期化を、初期化機構を利用して、１サイクルで処理できるので、記憶ユニットの初期化に必要な時間を大幅に短縮できる。
【００２４】
第３の発明に係る可変長復号装置では、可変長復号部は、制御部と復号部とアドレス生成部とを有し、制御部は、初期化機構に制御信号を発し、初期化機構は、制御信号を受信すると、記憶ユニットの全領域をゼロ（「０」）に初期化し、復号部は、符号化データを変換して中間データを生成し、生成した中間データから量子化データを生成し、アドレス生成部は、中間データを基に、非ゼロの量子化データを格納する記憶ユニットのアドレスを生成し、復号部は、制御部が記憶ユニットの全領域をゼロ（「０」）に初期化した後に、アドレス生成部が生成した記憶ユニットのアドレスに、非ゼロの量子化データを格納する。
【００２５】
この構成によれば、制御部が発する制御信号をトリガーとして、記憶ユニットを初期化し、その後に、復号部は、符号化データを変換した量子化データの内、非ゼロの量子化データを格納するので、正確な順序で復号処理を行うことが出来る。また、記憶ユニットの初期化に必要な処理サイクルが少なくてすみ、復号の高速化が可能となる。
【００２６】
第４の発明に係る可変長復号装置では、逆量子化部と逆ＤＣＴ部とをさらに備え、逆量子化部は、記憶ユニットから読み出した量子化データを基に、ＤＣＴデータを生成し、逆ＤＣＴ部は、ＤＣＴデータを基に、復号データを生成する。
【００２７】
この構成によれば、マクロブロックの復号ごとの記憶ユニットの初期化に必要な時間が短いので、高速処理可能な可変長復号装置を実現できる。
【００２８】
第５の発明に係る可変長復号装置では、記憶ユニットの各アドレスに対応して、量子化データがゼロまたは非ゼロであることを示すフラグを格納するフラグレジスタをさらに備え、可変長復号部は、フラグレジスタの全アドレスに、ゼロ（「０」）を示すフラグを設定して、フラグレジスタを初期化した後に、変換した量子化データのうちの非ゼロの量子化データのみを記憶ユニットに格納し、フラグレジスタの対応するアドレスに、非ゼロを示すフラグを設定する。
【００２９】
この構成によれば、記憶ユニット上のゼロの量子化データのアドレスは、フラグレジスタのフラグを調べて知ることが出来るので、記憶ユニットには、変換した量子化データのうちの非ゼロの量子化データのみを格納し、ゼロの量子化データを格納する必要がない。また、記憶ユニットの初期化が必要ないために、記憶ユニットには通常のメモリまたはレジスタを利用出来るという利点がある。
【００３０】
第６の発明に係る可変長復号装置では、可変長復号部は、制御部と復号部とアドレス生成部とを有し、制御部は、フラグレジスタに制御信号を発して、フラグレジスタの全アドレスに、ゼロ（「０」）を示すフラグを設定してフラグレジスタを初期化し、復号部は、符号化データを変換して中間データを生成し、生成した中間データから量子化データを生成し、アドレス生成部は、中間データを基に、非ゼロの量子化データを格納する記憶ユニットのアドレスを生成し、復号部は、制御部がフラグレジスタを初期化した後に、アドレス生成部が生成した記憶ユニットのアドレスに、非ゼロの量子化データを格納し、フラグレジスタの対応するアドレスに、非ゼロを示すフラグを設定する。
【００３１】
この構成によれば、制御部が発する制御信号をトリガーとして、フラグレジスタを初期化し、その後に、復号部は、符号化データを変換した量子化データの内、非ゼロの量子化データを格納すると同時に、フラグレジスタの対応するアドレスに非ゼロのフラグを設定する。こうすることにより、記憶ユニット上のゼロの量子化データのアドレスは、フラグレジスタのフラグを調べて知ることが出来る。また、記憶ユニットの初期化は必要なく、記憶ユニットには通常のメモリを利用出来る。
【００３２】
第７の発明に係る可変長復号装置では、逆量子化部をさらに備え、逆量子化部は、フラグレジスタのフラグが非ゼロであることを示す場合は、記憶ユニットの対応するアドレスから量子化データを読み込み、フラグレジスタのフラグがゼロ（「０」）であることを示す場合は、値「０」を取り込み、ＤＣＴ係数を生成する。
【００３３】
この構成によれば、量子化部は、ゼロの量子化データが格納されるはずのアドレスには、アクセスしないので、記憶ユニットの初期化を行わなくても良い。したがって、記憶ユニットの初期化に必要な処理サイクルを節約できる。
【００３４】
第８の発明に係る可変長復号装置では、逆ＤＣＴ部をさらに備え、逆ＤＣＴ部は、逆量子化部が生成したＤＣＴ係数を基に、復号データを生成する。
【００３５】
この構成によれば、通常の可変長復号装置にフラグレジスタを設定することにより、可変長符号化データを復号する高効率の可変長復号装置を実現できる。
【発明の効果】
【００３６】
本発明によれば、少ないハードウェア資源で可変長符号化データの復号を高効率に実現でき、かつ、消費電力の低い可変長復号装置を提供することができる。
【発明を実施するための最良の形態】
【００３７】
以下図面を参照しながら、本発明の実施の形態を説明する。
【００３８】
（実施の形態１）
図１は、本発明の実施の形態１における可変長復号装置１００のブロック図である。本形態の可変長復号装置１００は、符号化データを格納する第１記憶ユニット１０、可変長復号ユニット（ＶＬＤ）２０、係数データを格納する第２記憶ユニット３０、逆量子化ユニット（ＩＱ）４０、及び、逆ＤＣＴユニット（ＩＤＣＴ）５０を備える。
【００３９】
可変長復号ユニット２０は、制御部２１、復号部２２、及び、アドレス生成部２３を有する。
【００４０】
第２記憶ユニット３０は、初期化機構を有していて、リセット端子３１に入力される制御信号によって、第２記憶ユニット３０の全アドレスを一斉に初期化することが出来る。以下の説明では、簡単のために、第２記憶ユニット３０は、（４×４）の二次元配列をしているものと仮定する。
【００４１】
図３は、本発明の実施の形態１における可変長復号装置１００のフローチャートである。図３に示すフローチャートに従って、図１に示す本形態の可変長復号装置１００の動作を説明する。
【００４２】
第１記憶ユニット１０には、図６に示す符号化データがヘッダとともに格納されているものとする。すなわち、図６は、本発明の実施の形態１における第１記憶ユニット１０のデータ格納状態図である。第１記憶ユニット１０のアドレス（０ｘ００００）とアドレス（０ｘ０００１）には、ヘッダの値がそれぞれ格納されており、アドレス（０ｘ０００２）以降には、符号化データが格納されている。
【００４３】
ステップＳ１０において復号処理が開始されると、可変長復号ユニット２０が起動される。
【００４４】
ステップＳ１１において、復号部２２は、第１記憶ユニット１０のアドレス（０ｘ００００）とアドレス（０ｘ０００１）から、ヘッダの値（０ｘＣ０００）（１６進表記、以下同様）と値（０ｘＣ１Ｂ３）を読み出し、ヘッダ処理を行う。そして、制御部２１は、第２記憶ユニット３０を初期化するための制御信号であるリセット信号を第２記憶ユニット３０のリセット端子３１に出力する。
【００４５】
ステップＳ１２において、第２記憶ユニット３０は、リセット端子３１にリセット信号を受け取ると、第２記憶ユニット３０の全アドレスのデータを値「０」にリセットして、初期化を行う。初期化が完了すると、第２記憶ユニット３０の（４×４）の配列要素は、図７に示すように、すべてのアドレスが、値「０」に置き換わる。すなわち、図７は、本発明の実施の形態１における第２記憶ユニット３０の初期化後の状態図である。初期化が終了すると、可変長復号ユニット２０は復号処理の状態に移る。
【００４６】
ステップＳ１３において、復号部２２は、第１記憶ユニット１０から符号化データを読み出す。復号部２２は、先ず、第１記憶ユニット１０のアドレス（０ｘ０００２）から、データ（０ｘＢＣＡ５）を、アドレス（０ｘ０００３）から、データ（０ｘＤＦＦＦ）を読み出す。これらの１６進表示のデータを２進表示のビット列で表すと次のようになる。
（０ｘＢＣＡ５）＝（１０１１１１００１０１００１０１）
（０ｘＤＦＦＦ）＝（１１０１１１１１１１１１１１１１）
読み出したビット列は、ヘッダに含まれている、ビット列の区切り表す情報により、複数の符号データ列に区切られる。図８は、本発明の実施の形態１における第１記憶ユニット１０から読み出したビット列の例示図である。図８に示すように、読み出したビット列は、ヘッダに続く符号データ列（１０１）、符号データ列（１１１０）、符号データ列（０１０１００１）、符号データ列（０１１１０）に区切られる。
【００４７】
図３に戻って、ステップＳ１４において、復号部２２は、読み出した符号列を、別に用意されている可変長復号テーブル（ＶＬＣテーブル）と照合して、復号を行う。可変長復号テーブルは、復号部２２の内部に論理回路として組み込まれている。この論理回路は、いわゆるルックアップテーブルとして、機能する。
【００４８】
図９は、本発明の実施の形態１における可変長復号テーブルの例示図である。図９に示す可変長復号テーブルは、符号データ列を組合せデータ（ＬＡＳＴ，ＲＵＮ，ＬＥＶＥＬ）に変換するための対応関係を示している。なお、組合せデータ（ＬＡＳＴ，ＲＵＮ，ＬＥＶＥＬ）は、中間データに相当する。
【００４９】
組合せデータ（ＬＡＳＴ，ＲＵＮ，ＬＥＶＥＬ）において、データ（ＬＡＳＴ）は、当該復号データが最後のデータか否かを表す。ＬＡＳＴ＝１の時、当該復号データは最後のデータであり、ＬＡＳＴ＝０の時、当該復号データは最後のデータではない。
【００５０】
データ（ＲＵＮ）は、当該復号データの前に連なる値「０」の個数を表す。
【００５１】
データ（ＬＥＶＥＬ）は、当該復号データの非ゼロの値を表す。
【００５２】
図９において、符号データ列の最下位ビット「ｓ」は、符号を表すビットであり、ｓ＝０の時、データ（ＬＥＶＥＬ）はプラス、ｓ＝１の時、データ（ＬＥＶＥＬ）はマイナスであることを表す。
【００５３】
図９は、便宜上、符号データ列を図８の入力された符号データ列の順序に並べている。この表は、説明のためのものであって、必ずしもＭＰＥＧ４の規格に準拠するものではない。
【００５４】
再び図３に戻って、ステップＳ１５において、復号部２２は、図９に従って、図８の入力された符号データ列を組合せデータ（ＬＡＳＴ，ＲＵＮ，ＬＥＶＥＬ）に順次変換する。先ず、符号データ列（１０１）を組合せデータ（０、０、１）（データ（ＬＥＶＥＬ）の符号は負）に変換する。
【００５５】
ステップＳ１６において、ＬＡＳＴ＝１かどうかの判定を行う。この場合、ＬＡＳＴ＝０であるから、判定結果は「Ｎｏ」となり、ステップＳ１４に戻る。
【００５６】
ステップＳ１４とステップＳ１５の処理を行って、復号部２２は、符号データ列（１１１０）を組合せデータ（０、０、３）（データ（ＬＥＶＥＬ）の符号は正）に変換する。
【００５７】
ステップＳ１６において、ＬＡＳＴ＝０であるから、判定結果は「Ｎｏ」となり、ステップＳ１４に戻る。
【００５８】
ステップＳ１４とステップＳ１５の処理を行って、復号部２２は、符号データ列（０１０１００１）を組合せデータ（０、１、２）（データ（ＬＥＶＥＬ）の符号は負）に変換する。
【００５９】
ステップＳ１６において、ＬＡＳＴ＝０であるから、判定結果は「Ｎｏ」となり、ステップＳ１４に戻る。
【００６０】
ステップＳ１４とステップＳ１５の処理を行って、復号部２２は、符号データ列（０１１１０）を組合せデータ（１、０、１）（データ（ＬＥＶＥＬ）の符号は正）に変換する。
【００６１】
ステップＳ１６において、ＬＡＳＴ＝１であるから、判定結果は「Ｙｅｓ」となり、ステップＳ１７に進む。
【００６２】
以上で、入力された符号データ列を、図９の可変長復号テーブルと照合する変換処理が終了し、組合せデータ（０、０、１）、（０、０、３）、（０、１、２）、及び、（１、０、１）が得られる。
【００６３】
ステップＳ１７において、非ゼロのデータを第２記憶ユニット３０に格納する。先ず、アドレス生成部２３は、得られた組合せデータのデータ（ＲＵＮ）の値を参照して、非ゼロのデータを格納する、第２記憶ユニット３０のアドレスを順次求める。その結果、
ＬＥＶＥＬ＝１を格納するアドレスは、アドレス（０）；
ＬＥＶＥＬ＝３を格納するアドレスは、アドレス（１）；
ＬＥＶＥＬ＝２を格納するアドレスは、アドレス（３）（なぜならば、ＲＵＮ＝１で、値「０」のデータがこの前に１個ある。）；
ＬＥＶＥＬ＝１を格納するアドレスは、アドレス（４）
となる。
【００６４】
復号部２２は、制御部２１が求めた第２記憶ユニット３０のアドレスに、それぞれのＬＥＶＥＬの値を、その符号を考慮して、格納する。
【００６５】
図１０は、本発明の実施の形態１における第２記憶ユニット３０のデータ格納後の状態図である。第２記憶ユニット３０では、図１０の点線矢印で示されるように、アドレスをジグザグ状に設定している。
【００６６】
以上で、符号化データの量子化データへの変換が終了し、変換結果は、第２記憶ユニット３０に格納されている。
【００６７】
ステップＳ１８において、逆量子化ユニット４０は、可変長復号ユニット２０のデータを読み出し、逆量子化処理を行い、ＤＣＴデータを生成する。
【００６８】
ステップＳ１９において、逆ＤＣＴユニット５０は、逆量子化ユニット４０が生成したＤＣＴデータを用いて、逆ＤＣＴ処理を行い、復号データを出力端子９０に出力する。
【００６９】
ステップＳ２０に移り、１マクロブロックの復号処理が終了する。
【００７０】
本形態の可変長復号装置１００によれば、マクロブロックの復号ごとに必要な記憶ユニットの初期化を、初期化機構を利用して、１サイクルで処理できるので、記憶ユニットの初期化に必要な時間を大幅に短縮できる。
【００７１】
また、図１０から明らかなように、本形態の可変長復号装置１００では、１マクロブロックの復号処理のはじめに、第２記憶ユニット３０を値「０」に初期化した後、非ゼロの値のみ、その格納すべきアドレスを求めて、第２記憶ユニット３０に格納する。この方法により、上述した符号化データの例では、アドレス（２）とアドレス（５）以降のアドレスには、復号部２２は、全くアクセスしなくて良い。このように、本形態の可変長復号装置１００によれば、可変長復号ユニット２０は、変換した量子化データのうちの非ゼロの量子化データのみを、記憶ユニットに格納すればよいので、復号処理時間の短縮と、記憶ユニットアクセスに伴って必要となる電力の削減を図ることが出来る。
【００７２】
上述した本発明の実施の形態１の説明において、第２記憶ユニット３０は、説明を簡単にするために、図７及び図１０に示したように、（４×４）の二次元配列を仮定したが、第２記憶ユニット３０は、１次元配列の記憶ユニットであってもよい。その場合、１次元配列記憶ユニットのアドレスが、図１０に示す２次元配列記憶ユニットのジグザグスキャンの順番に順序付けられていればよい。
【００７３】
図１１は、本発明の実施の形態１における１次元配列の第２記憶ユニット３０のブロック図である。図１１の上図は、第２記憶ユニット３０の１ビットを格納するメモリセル構成を表している。このメモリセルは、リセット入力（Ｒ）、クロック入力（ＣＬＫ）、データ入力（Ｄａｔａ）、及び、ライトイネーブル信号入力（ＷＥ）を備えている。図１１の下図は、第２記憶ユニット３０のブロック図であり、上図のメモリセルを１アドレスにつき１２個並べて、１アドレス‐１２ビットの構成を作り、さらに、それらを３８４個組み合わせて、３８４アドレス＊１２ビットの構成の記憶ユニットを作っている。
【００７４】
図１２は、本発明の実施の形態１における１次元配列の第２記憶ユニットのデータ格納後の状態図である。図１２は、図１１の第２記憶ユニット３０に、図１０に格納したと同じ復号後の量子化データを格納した状態を示している。すなわち、図１２のすべてのアドレスをデータ（０ｘ０００）に初期化した後に、非ゼロ量子化データのみを格納する。その結果、
アドレス（０ｘ００００）に、データ（−１）の１６進表記であるデータ（０ｘＦＦＦ）が、
アドレス（０ｘ０００１）に、データ（３）の１６進表記であるデータ（０ｘ００３）が、
アドレス（０ｘ０００３）に、データ（−２）の１６進表記であるデータ（０ｘＦＦＥ）が、
アドレス（０ｘ０００４）に、データ（１）の１６進表記であるデータ（０ｘ００１）が、それぞれ格納される。
【００７５】
なお、図１１に示す第２記憶ユニット３０によれば、第２記憶ユニット３０の初期化を、１サイクルで実行できることは、言うまでもない。
【００７６】
（実施の形態２）
図２は、本発明の実施の形態２における可変長復号装置２００のブロック図である。図２に示す本形態の可変長復号装置２００は、符号化データを格納する第１記憶ユニット１０、可変長復号ユニット（ＶＬＤ）２０、係数データを格納する第２記憶ユニット３０、フラグレジスタ６０、逆量子化ユニット（ＩＱ）４０、及び、逆ＤＣＴユニット（ＩＤＣＴ）５０を備える。
【００７７】
可変長復号ユニット２０は、制御部２１、復号部２２、及び、アドレス生成部２３を有する。制御部２１は、フラグレジスタ６０に制御信号を送る。
【００７８】
逆量子化ユニット４０は、逆量子化処理部４１、セレクタ４２、及び、データ設定部４３を有する。データ設定部４３は、設定された値「０」を常に出力している。セレクタ４２は、逆量子化処理部４１が読み込むデータを、第２記憶ユニット３０から得るか、データ設定部４３から得るかを、選択する。この制御は、フラグレジスタ６０のフラグによって行う。
【００７９】
フラグレジスタ６０は、第２記憶ユニット３０の各アドレスに対応して、第２記憶ユニット３０に格納する量子化データがゼロまたは非ゼロであることを示すフラグを格納する。本形態のフラグレジスタ６０は、量子化データがゼロの時、フラグ値「０」を格納し、量子化データが非ゼロの時、フラグ値「１」を格納する。
【００８０】
図４は、本発明の実施の形態２における可変長復号装置２００の前半のフローチャートである。図５は、本発明の実施の形態２における可変長復号装置２００の後半のフローチャートである。図４と図５に示すフローチャートに従って、図２に示す本形態の可変長復号装置２００の動作を説明する。
【００８１】
本形態の可変長復号装置２００の動作の説明においては、本発明の実施の形態２と同様に、第１記憶ユニット１０には、図６に示す符号化データがヘッダとともに格納されているものとする。また、簡単のために、第２記憶ユニット３０は、（４×４）の二次元配列をしているものと仮定する。さらに、フラグレジスタ６０は、第２記憶ユニット３０のアドレスに対応して、アドレス（０）からアドレス（１５）にフラグを設定できるものとする。
【００８２】
図４のステップＳ３０において復号処理が開始されると、可変長復号ユニット２０が起動される。
【００８３】
ステップＳ３１において、復号部２２は、第１記憶ユニット１０のアドレス（０ｘ００００）とアドレス（０ｘ０００１）から、ヘッダの値（０ｘＣ０００）と値（０ｘＣ１Ｂ３）を読み出し、ヘッダ処理を行う。そして、制御部２１は、フラグレジスタ６０を初期化するための制御信号であるリセット信号をフラグレジスタ６０に出力する。
【００８４】
ステップＳ３２において、フラグレジスタ６０は、リセット信号を受け取ると、フラグレジスタ６０の全アドレスのフラグを値「０」にリセットして、初期化を行う。初期化が完了すると、可変長復号ユニット２０は復号処理の状態に移る。
【００８５】
ステップＳ３３において、復号部２２は、第１記憶ユニット１０から符号化データを読み出す。本形態の可変長復号装置２００においても、本発明の実施の形態１と同様に、可変長復号ユニット２０は、第１記憶ユニット１０から符号化データをビット列として読み出し、図８に示すように、ヘッダと、ヘッダに続く符号データ列（１０１）、符号データ列（１１１０）、符号データ列（０１０１００１）、符号データ列（０１１１０）を取得する。
【００８６】
ステップＳ３４において、復号部２２は、読み出した符号列を、図９に示す可変長復号テーブル（ＶＬＣテーブル）と照合する。
【００８７】
ステップＳ３５において、復号部２２は、入力された符号データ列を組合せデータ（ＬＡＳＴ，ＲＵＮ，ＬＥＶＥＬ）に順次変換する。
【００８８】
ステップＳ３４からステップＳ３６まで、本発明の実施の形態１と同様な処理によって、組合せデータ（０、０、１）、（０、０、３）、（０、１、２）、（１、０、１）が得られる。
【００８９】
ステップＳ３７において、アドレス生成部２３は、得られた組合せデータのデータ（ＲＵＮ）を参照して、非ゼロのデータを格納する、第２記憶ユニット３０のアドレスを順次求める。その結果、
ＬＥＶＥＬ＝１を格納するアドレスは、アドレス（０）；
ＬＥＶＥＬ＝３を格納するアドレスは、アドレス（１）；
ＬＥＶＥＬ＝２を格納するアドレスは、アドレス（３）；
ＬＥＶＥＬ＝１を格納するアドレスは、アドレス（４）
となる。
【００９０】
ステップＳ３８において、復号部２２は、制御部２１が求めた第２記憶ユニット３０のアドレスに、それぞれのＬＥＶＥＬの値を、その符号を考慮して、格納する。
【００９１】
図１３は、本発明の実施の形態２における第２記憶ユニット３０のデータ格納後の状態図である。第２記憶ユニット３０では、図１３の点線矢印で示されるように、アドレスをジグザグ状に設定している。図１３において、記号「ｘ」は、上述した復号処理において、ゼロの量子化データが得られたアドレスにある特定されていない無意味な値である。
【００９２】
ステップＳ３９において、制御部２１は、制御部２１が求めた第２記憶ユニット３０のアドレスに対応する、フラグレジスタ６０のアドレスに、フラグ値「１」を設定する。その結果、フラグレジスタ６０は、図１４に示すようになる。すなわち、図１４は、本発明の実施の形態２におけるフラグレジスタ６０のフラグ設定後の状態図である。
【００９３】
以上で量子化データへの変換が終わり、ステップＳ４０に制御が移る。
【００９４】
次に、図５を参照して、ステップＳ４０に制御が移ると、逆量子化ユニット４０が起動される。
【００９５】
ステップＳ４１において、逆量子化ユニット４０は、量子化データを読み出す第２記憶ユニット３０のアドレスをアドレス（０）から順に設定する。
【００９６】
ステップＳ４２において、セレクタ４２は、ステップＳ４１において設定された第２記憶ユニット３０のアドレスに対応するフラグレジスタ６０のアドレスのフラグを調べ、それが値「０」かどうかを判定する。判定結果が「Ｎｏ」ならば、ステップＳ４３に進み、判定結果が「Ｙｅｓ」ならば、ステップＳ４４に進む。
【００９７】
ステップＳ４３において、フラグは、値「１」を示しているから、セレクタ４２は、ステップＳ４１において設定された第２記憶ユニット３０のアドレスに格納されている量子化データ（非ゼロ）を選択し、逆量子化処理部４１に送る。
【００９８】
ステップＳ４４において、フラグは、値「０」を示しているから、セレクタ４２は、データ設定部４３が設定している値「０」を選択し、逆量子化処理部４１に送る。
【００９９】
ステップＳ４５において、全係数データの取得が完了したかどうかを判定する。全係数データの取得が完了していなければ、ステップＳ４１に戻り、第２記憶ユニットの次のアドレスを設定して、ステップＳ４２からステップＳ４５を繰り返す。ステップＳ４５において、全係数データの取得が完了していれば、ステップＳ４６に進む。
【０１００】
ステップＳ４６において、逆量子化処理部４１は、セレクタ４２から送られてきた係数データ（すなわち、量子化データ）を用いて逆量子化処理を行い、ＤＣＴデータを生成する。
【０１０１】
ステップＳ４７において、逆ＤＣＴユニット５０は、逆量子化処理部４１が生成したＤＣＴデータを用いて、逆ＤＣＴ処理を行い、復号データを出力端子９０に出力する。
【０１０２】
ステップＳ４８に移り、１マクロブロックの復号処理が終了する。
【０１０３】
以上説明したように、本形態の可変長復号装置２００は、第２記憶ユニット３０の各アドレスに対応したフラグレジスタ６０を設け、第２記憶ユニット３０に非ゼロ量子化データのみを格納するとともに、フラグレジスタ６０の対応するフラグを非ゼロを示す値「１」に設定する。この方法によって、逆量子化ユニット４０が、第２記憶ユニット３０から量子化データを読み出す時、フラグレジスタ６０のフラグを参照して、第２記憶ユニット３０の非ゼロ量子化データのみの読み出し、その他のデータは、データ設定部４３に設定している値「０」にマスクすることが出来る。
【０１０４】
このように、本形態の可変長復号装置２００では、第２記憶ユニット３０のアドレスの数に相当する数のフラグレジスタ６０を設ける必要はあるが、第２記憶ユニット３０の初期化を毎マクロブロックの復号処理ごとに行う必要はない。従って、通常使用されるメモリを第２記憶ユニット３０に使用できる。また、フラグレジスタ６０の初期化は、毎マクロブロックの復号処理ごとに行う必要があるが、この処理量は、僅少である。この結果、本形態の可変長復号装置２００によれば、可変長符号化データの復号処理時間の短縮を図ることが出来る。
【０１０５】
上述した本形態の可変長復号装置２００の説明において、第２記憶ユニット３０は、説明を簡単にするために、図１３に示したように、（４×４）の二次元配列を仮定したが、第２記憶ユニット３０は、図１２に示すような、１次元配列の記憶ユニットであってもよい。その場合、図１２に示す１次元配列記憶ユニットのアドレスが、図１３に示す２次元配列記憶ユニットのジグザグスキャンの順番に順序付けられていればよい。
【０１０６】
また、図１４に示したフラグレジスタ６０は、アドレス（０）からアドレス（１５）を有すると仮定した。フラグレジスタ６０の大きさは、第２記憶ユニット３０のアドレスの大きさに対応させる必要がある。第２記憶ユニット３０として、図１２に示す１次元配列記憶ユニットを用いる場合は、フラグレジスタ６０は、アドレス（０ｘ００００）からアドレス（０ｘ０１７Ｆ）を有し、各アドレスに１ビットを格納できれば良い。
【産業上の利用可能性】
【０１０７】
本発明に係る可変長復号装置は、例えば、可変長符号化された符号化データを復号する技術分野及びその応用分野等において好適に利用できる。
【図面の簡単な説明】
【０１０８】
【図１】本発明の実施の形態１における可変長復号装置のブロック図
【図２】本発明の実施の形態２における可変長復号装置のブロック図
【図３】本発明の実施の形態１における可変長復号装置のフローチャート
【図４】本発明の実施の形態２における可変長復号装置の前半のフローチャート
【図５】本発明の実施の形態２における可変長復号装置の後半のフローチャート
【図６】本発明の実施の形態１における第１記憶ユニットのデータ格納状態図
【図７】本発明の実施の形態１における第２記憶ユニットの初期化後の状態図
【図８】本発明の実施の形態１における第１記憶ユニットから読み出したビット列の例示図
【図９】本発明の実施の形態１における可変長復号テーブルの例示図
【図１０】本発明の実施の形態１における第２記憶ユニットのデータ格納後の状態図
【図１１】本発明の実施の形態１における１次元配列の第２記憶ユニットのブロック図
【図１２】本発明の実施の形態１における１次元配列の第２記憶ユニットのデータ格納後の状態図
【図１３】本発明の実施の形態２における第２記憶ユニットのデータ格納後の状態図
【図１４】本発明の実施の形態２におけるフラグレジスタのフラグ設定後の状態図
【図１５】従来の画像復号装置のブロック図
【図１６】従来の改良型画像復号装置のブロック図
【符号の説明】
【０１０９】
１０  第１記憶ユニット
２０  可変長復号ユニット
２１  制御部
２２  復号部
２３  アドレス生成部
３０  第２記憶ユニット
３１  リセット端子
４０  逆量子化ユニット
４１  逆量子化処理部
４２  セレクタ
４３  データ設定部
５０  逆ＤＣＴユニット
６０  フラグレジスタ
【図１】
0004607638.tif 000002
【図２】
0004607638.tif 000003
【図３】
0004607638.tif 000004
【図４】
0004607638.tif 000005
【図５】
0004607638.tif 000006
【図６】
0004607638.tif 000007
【図７】
0004607638.tif 000008
【図８】
0004607638.tif 000009
【図９】
0004607638.tif 000010
【図１０】
0004607638.tif 000011
【図１１】
0004607638.tif 000012
【図１２】
0004607638.tif 000013
【図１３】
0004607638.tif 000014
【図１４】
0004607638.tif 000015
【図１５】
0004607638.tif 000016
【図１６】
0004607638.tif 000017