(57)【要約】【課題】  回路規模の削減及び動作周波数の向上を実現可能な復号化回路を提供する。【解決手段】  固定長エリアにパッキングされた可変長符号列ＳＴＲを受け取り、可変長復号化及びデパッキングを実行する復号化回路１ａであって、可変長復号化が中断された時点における可変長符号列ＳＴＲのビット位置のデータＳＴＲＰを保持する第１ビット位置テーブル１８と、デパッキング時において、ビット位置のデータＳＴＲＰの一部又は全部のビットから、可変長復号化の中断後に固定長エリア内に残った可変長符号列ＳＴＲのビット長ＢＬＥＮを算出するビット長算出回路１９ａとを備える。【選択図】    図１
2006086723.tif 000002
【特許請求の範囲】
【請求項１】
固定長エリアにパッキングされた可変長符号列を受け取り、可変長復号化及びデパッキングを実行する復号化回路であって、
前記可変長復号化が中断された時点における前記可変長符号列のビット位置のデータを保持する第１ビット位置テーブルと、
前記デパッキング時において、前記ビット位置のデータの一部又は全部のビットから、前記可変長復号化の中断後に前記固定長エリア内に残った前記可変長符号列のビット長を算出するビット長算出回路
とを備えることを特徴とする復号化回路。
【請求項２】
前記可変長符号列を構成する可変長符号語の最大ビット長−１を格納可能なビット数をＮとして、前記ビット長算出回路は、前記ビット位置のデータの下位Ｎビットを用いて前記ビット長を算出することを特徴とする請求項１に記載の復号化回路。
【請求項３】
前記固定長エリアの終端ビット位置のデータを保持する第２ビット位置テーブルを更に備え、前記ビット長算出回路は、前記ビット位置のデータの一部のビットと前記終端ビット位置のデータの一部のビットとを用いて前記ビット長を算出することを特徴とする請求項１に記載の復号化回路。
【請求項４】
前記固定長エリアの終端ビット位置のデータを保持する第２ビット位置テーブルを更に備え、前記ビット長算出回路は、前記ビット位置のデータの全部のビットと前記終端ビット位置のデータの一部のビットとを用いて前記ビット長を算出することを特徴とする請求項１に記載の復号化回路。
【請求項５】
前記ビット長算出回路は、
前記ビット位置のデータの最下位ビット〜第Ｎビットをそれぞれ反転する第１〜第Ｎインバータと、
前記第１〜第Ｎインバータの出力信号をそれぞれ受け取る第１〜第Ｎ半加算器
とを備えることを特徴とする請求項２に記載の復号化回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パッキングされた可変長符号列に対してデパッキング及び可変長復号化を施す復号化回路に関する。
【背景技術】
【０００２】
デジタルビデオ（ＤＶ）カメラにおいては、動画像データが動画像圧縮符号化回路により圧縮符号化されて磁気テープ等の記録媒体に記録される。圧縮符号化処理は、主に離散コサイン変換（ＤＣＴ）、量子化、及び可変長符号化を順に行うことにより実行される。圧縮符号化処理の際には、１フレーム内における輝度信号及び色差信号はサンプリング数が異なるため、４つの輝度ブロックと２つの色差ブロックにより構成されるマクロブロック単位で圧縮符号化処理が実行される。可変長符号化後のマクロブロックにおいては、画像の複雑さ等により４つの輝度ブロックのそれぞれのビット長にばらつきが生じる。同様に２つの色差ブロックにおいてもビット長のばらつきが生じる。また、可変長符号化された動画像データ（以下において「可変長符号列」という。）が記録される磁気テープ上のトラックにおいて、各トラックの可変長符号列を記録するエリアは、シンクブロックと呼ばれる固定長エリアに分割されている。よって、可変長である１マクロブロック分の可変長符号列を固定長である１シンクブロックにパッキングする必要がある。
【０００３】
一方、パッキングされた可変長符号列から動画像データを復号化するには、デパッキング及び可変長復号化等が必要となる。デパッキングされた可変長符号列はメモリに一旦格納され、可変長復号化が施される。第１の背景技術として、デパッキング処理及び可変長復号化処理を効率化し、メモリを削減する手法が提案されている（例えば、特許文献１参照。）。また、第２の背景技術として、デパッキング処理及び可変長復号化処理を更に効率化する手法が提案されている（例えば、特許文献２参照。）。
【０００４】
しかしながら、第１及び第２の背景技術においては、復号化回路内の制御回路が複雑化するために復号化回路全体の動作周波数を向上させることが困難である。特に、デパッキング時において可変長符号列を連結する際、多ビットの減算回路が用いられるため、復号化回路の回路規模が増大する。更に、多ビットの減算回路を用いるためにキャリー伝播の遅延が生じ、復号化回路の遅延時間が増大する。高性能な減算回路を利用して遅延時間を削減することは可能であるが、回路規模の増大を招くこととなる。このように、回路規模の削減及び動作周波数の向上を実現可能な復号化回路の実現が望まれている。
【特許文献１】特開平８−２７５１６２号公報
【特許文献２】特開２００３−１１１０２１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、回路規模の削減及び動作周波数の向上を実現可能な復号化回路を提供する。
【課題を解決するための手段】
【０００６】
本発明の一態様は、固定長エリアにパッキングされた可変長符号列を受け取り、可変長復号化及びデパッキングを実行する復号化回路であって、（イ）可変長復号化が中断された時点における可変長符号列のビット位置のデータを保持する第１ビット位置テーブル；（ロ）デパッキング時において、ビット位置のデータの一部又は全部のビットから、可変長復号化の中断後に固定長エリア内に残った可変長符号列のビット長を算出するビット長算出回路を備える復号化回路であることを要旨とする。
【発明の効果】
【０００７】
本発明によれば、回路規模の削減及び動作周波数の向上を実現可能な復号化回路を提供できる。
【発明を実施するための最良の形態】
【０００８】
次に、図面を参照して、本発明の実施の形態を説明する。この実施の形態における図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。
【０００９】
本発明の実施の形態に係る復号化回路１ａは、図１に示すように、例えば入力用メモリ２と出力用メモリ３との間に接続される。入力用メモリ２には、例えばデジタルビデオカセットレコーダ・フォー・コンシューマユース（ＤＶＣ）方式等のＤＶフォーマットに準拠して圧縮符号化及びパッキング等が施された可変長符号列ＳＴＲが格納される。ここで「パッキング」とは、ブロック毎にビット長が異なる可変長符号列を、固定長エリアに格納するため、上限を超えて長い可変長符号列ＳＴＲを途中で切断し、容量の余っている別の固定長エリアに格納する処理を意味する。復号化回路１ａは、可変長符号列ＳＴＲを受け取り、可変長復号化及びデパッキングを実行する。「デパッキング」とは、複数の固定長エリアに分割して記録された可変長符号列ＳＴＲに対して、切り出し及び連結を行う処理を意味する。復号化回路１ａは、可変長復号化が中断された時点における可変長符号列ＳＴＲのビット位置のデータＳＴＲＰを保持する第１ビット位置テーブル１８、及びデパッキング時において、可変長復号化が中断された時点における可変長符号列ＳＴＲのビット位置のデータＳＴＲＰの一部又は全部のビットから、可変長復号化の中断後に固定長エリア内に残った可変長符号列ＳＴＲのビット長ＢＬＥＮを算出するビット長算出回路１９ａを備える。「固定長エリア」とは、マクロブロックを構成する輝度ブロックと色差ブロックとに対応するシンクブロック中のエリアを意味する。１シンクブロックにおいては、例えば図２〜図７に示す第１輝度エリアＡＲ１〜第４輝度エリアＡＲ４、及び第１色差エリアＡＲ５及び第２色差エリアＡＲ６のそれぞれが「固定長エリア」となる。
【００１０】
また、入力用メモリには１ビデオセグメント、即ち５シンクブロック分の可変長符号列ＳＴＲが格納される。図２に示す第１輝度エリアＡＲ１は、ビットＢ１〜ビットＢ１１２の１１２ビットの固定ビット長を有する。同様に、図２〜図５に示す第２輝度エリアＡＲ２〜第４輝度エリアＡＲ４は１１２ビットの固定ビット長をそれぞれ有する。これに対して図６に示す第１色差エリアＡＲ５は、ビットＢ４４９〜ビットＢ５２８の８０ビットの固定ビット長を有する。同様に、図７に示す第２色差エリアＡＲ６は８０ビットの固定ビット長を有する。
【００１１】
図１に示す復号化回路１ａは、固定長エリアの終端ビット位置データＥＮＤＰを保持する第２ビット位置テーブル１６を更に備える。入力用メモリ２に格納される１ビデオセグメント、即ち５シンクブロック分の可変長符号列ＳＴＲのビット長は、３２００ビット程度である。よって、３２００ビットのビット長を２進数で表現するために、第１ビット位置テーブル１８及び第２ビット位置テーブル１６のそれぞれは、１２ビットのビット幅をそれぞれ有している。
【００１２】
また、復号化回路１ａは、第１メモリ制御回路１１、ストリーム制御回路１２、可変長符号テーブル１３、加算回路１４、デパッキング制御回路１５、セレクタ１７、比較回路１０、逆量子化／ジグザグスキャン制御回路２０、及び第２メモリ制御回路２１を更に備える。第１メモリ制御回路１１、ストリーム制御回路１２、可変長符号テーブル１３、逆量子化／ジグザグスキャン制御回路２０、及び第２メモリ制御回路２１は、入力用メモリ２と出力用メモリ３との間において直列に接続される。可変長符号テーブル１３としては、例えばハフマンテーブルが使用できる。加算回路１４の入力は、第１ビット位置テーブル１８及び可変長符号テーブル１３のそれぞれの出力に接続される。比較回路１０の入力は、加算回路１４及び第２ビット位置テーブル１６のそれぞれの出力に接続される。デパッキング制御回路１５の入力は、比較回路１０及び可変長符号テーブル１３のそれぞれの出力に接続される。セレクタ１７の入力は、デパッキング制御回路１５、比較回路１０、及び可変長符号テーブル１３のそれぞれの出力に接続される。
【００１３】
更に、第１メモリ制御回路１１は、ストリーム制御回路１２の制御下で、入力用メモリ２に対して可変長符号列ＳＴＲの読み出し等を行う。ストリーム制御回路１２は、第１ビット位置テーブル１８が生成するストリーム制御データＣＴＰに応じて、第１メモリ制御回路１１からの可変長符号列ＳＴＲを可変長符号テーブル１３に伝達する。可変長符号テーブル１３は、ストリーム制御回路１２から伝達された可変長符号列ＳＴＲを可変長復号化する。この結果、ゼロランレングスＲＬ、係数値の振幅ＡＭＰ、及び係数値の符号ＳＧＮの組が生成される。可変長符号テーブル１３は、可変長符号語の符号長データＬＥＮを加算回路１４に供給する。逆量子化／ジグザグスキャン制御回路２０は、ゼロランレングスＲＬ、係数値の振幅ＡＭＰ、及び係数値の符号ＳＧＮの組を逆量子化し、ジグザグスキャン順に並べ替える。逆量子化／ジグザグスキャン制御回路２０の出力データは、第２メモリ制御回路２１を介して出力用メモリ３に書き込まれる。
【００１４】
また、加算回路１４は、第１ビット位置テーブル１８からのストリーム制御データＣＴＰと可変長符号テーブル１３からの符号長データＬＥＮとを加算する。比較回路１０は、加算回路１４における加算結果と第２ビット位置テーブル１６からの終端ビット位置データＥＮＤＰとを比較し、加算回路１４における加算結果が第２ビット位置テーブル１６からの終端ビット位置データＥＮＤＰよりも大きい場合、エリア境界検出フラグＥＮＤＦを生成する。また、可変長符号テーブル１３は、可変長符号列ＳＴＲ中にブロック終端符号（ＥＯＢ）が検出された場合に終端符号検出フラグＥＯＢＦを生成する。デパッキング制御回路１５は、エリア境界検出フラグＥＮＤＦ及び終端符号検出フラグＥＯＢＦに基づき、入力用メモリ２に格納された可変長符号列ＳＴＲに対する読み出しを行うエリア番号ＡＮ、及び可変長復号後の係数値を格納するブロック番号ＢＮを制御する。
【００１５】
更に、第１ビット位置テーブル１８及びストリーム制御回路１２は、各固定長エリアに対して、エリア境界検出フラグＥＮＤＦ及び終端符号検出フラグＥＯＢＦのいずれかが生成されるまでの期間において、可変長符号テーブル１３に可変長符号列ＳＴＲを供給する。この結果、可変長符号列ＳＴＲが可変長符号テーブル１３により可変長復号化される。また、第１ビット位置テーブル１８は、エリア境界検出フラグＥＮＤＦ及び終端符号検出フラグＥＯＢＦのいずれかが生成された時点のビット位置のデータＳＴＲＰを固定長エリア毎に保持する。
【００１６】
デパッキング時において、ビット長算出回路１９ａは、可変長復号化の中断後に固定長エリア内に残った可変長符号列ＳＴＲのビット長を算出する。復号化回路１ａのデパッキング時における具体的な動作については後述する。ここで、可変長復号化の中断後に固定長エリア内に残った可変長符号列ＳＴＲのビット長を算出する場合、固定長エリアの終端ビット位置から可変長復号化が中断されたビット位置を減算する処理が必要となる。よって、可変長復号化が中断されたビット位置をｗ＿ｂｉｔＰｔｒ（wire [11:0] w_bitPtr）、固定長エリアの終端ビット位置をｗ＿ｂｉｔＥｎｄＰｔｒ（wire [11:0] w_bitEndPtr）、及び可変長復号化の中断後に固定長エリア内に残った可変長符号列ＳＴＲのビット長をｂｉｔＬｅｎｇｔｈ（output  [11:0] bitLength）とすると、レジスタトランスファレベル（ＲＴＬ）におけるハードウェア記述言語（ＨＤＬ）の論理式は：
output  [11:0]  bitLength;             
wire    [11:0]  w_bitPtr;            
wire    [11:0]  w_bitEndPtr;         
assign bitLength = w_bitEndPtr - w_bitPtr;        ・・・・・（１）
となる。式（１）において、記号“[11:0]”は、データ幅が０ビット〜１１ビットの合計１２ビットであることを意味している。式（１）に示すＨＤＬの論理式を論理合成した場合、１２個のインバータと１２個の全加算器（ＦＡ）を有する通常の１２ビットの減算器（図示省略）が設計される。
【００１７】
また、式（１）において、減算処理は２の補数表現で行われるため、ビット反転と論理値“１”の加算に置き換えられる。即ち、式（１）は：
bitLength[11:0] = w_bitEndPtr[11:0] + ~w_bitPtr[11:0] + 12'h1;  ・・・（２）
と置き換えることができる。式（２）において記号“~”は、ビット反転を表す。ここで、ＤＶＣ方式等のＤＶフォーマットにおいては、可変長符号語のビット長は最大で１６ビットである。デパッキング時に可変長符号列ＳＴＲの連結が行われる場合、連結対象となる可変長符号列ＳＴＲは、１可変長符号語に満たない可変長符号列ＳＴＲである。したがって、デパッキング時において連結対象となる可変長符号列ＳＴＲのビット長は、１５ビット以下に制限される。ビット長（１５）10を２進数で表現すると（１１１１）2となり、ビット長算出回路１９ａが算出するビット長は４ビットで足りることとなる。よって、式（２）においては上位８ビットが不要であるため：
bitLength[3:0] = w_bitEndPtr[3:0] + ~w_bitPtr[3:0] + 4'h1;  ・・・・・（３）
と書き換えることができる。
【００１８】
更に、ＤＶＣ方式等のＤＶフォーマットにおいては、図２〜図５に示す各輝度エリアのビット長は１１２ビットであり、図６及び図７に示す各色差エリアのビット長は８０ビットである。したがって、各固定長エリアの終端ビット位置は１６ビットの倍数となる。１６ビットの倍数を２進数で表現した場合、下位4ビットはゼロである。よって、式（３）は：
bitLength[3:0] = ~w_bitPtr[3:0] + 4'h1;                  ・・・・・（４）
と書き換えることができる。この結果、式（１）は：
output  [ 3:0]  bitLength;            
wire    [11:0]  w_bitPtr;            
assign  bitLength = ~w_bitPtr[3:0] + 4'h1;            ・・・・・（５）
と書き換えられる。式（５）に示すＨＤＬの論理式を論理合成した場合、図８に示すビット長算出回路１９ａが設計される。
【００１９】
図８に示すビット長算出回路１９ａは、第１インバータ１９１ａ〜第４インバータ１９１ｄ、及び第１半加算器（ＨＡ）１９２ａ〜第４ＨＡ１９２ｄを備える。第１インバータ１９１ａは、可変長復号化が中断されたビット位置のデータＳＴＲＰの最下位ビットＢ0を反転する。第２インバータ１９１ｂは、可変長復号化が中断されたビット位置のデータＳＴＲＰの第２ビットＢ1を反転する。第３インバータ１９１ｃは、可変長復号化が中断されたビット位置のデータＳＴＲＰの第３ビットＢ2を反転する。第４インバータ１９１ｄは、可変長復号化が中断されたビット位置のデータＳＴＲＰの第４ビットＢ3を反転する。
【００２０】
また、第１ＨＡ１９２ａは、論理値“１”と第１インバータ１９１ａの出力値とを加算する。第２ＨＡ１９２ｂは、第１ＨＡ１９２ａの桁上がり値と第２インバータ１９１ｂの出力値とを加算する。第３ＨＡ１９２ｃは、第２ＨＡ１９２ｂの桁上がり値と第３インバータ１９１ｃの出力値とを加算する。第４ＨＡ１９２ｄは、第３ＨＡ１９２ｃの桁上がり値と第４インバータ１９１ｄの出力値とを加算する。第１ＨＡ１９２ａの出力値Ｓ0、第２ＨＡ１９２ｂの出力値Ｓ1、第３ＨＡ１９２ｃの出力値Ｓ2、第４ＨＡ１９２ｄの出力値Ｓ3は、ビット長データＢＬＥＮとして図１に示すストリーム制御回路１２に供給される。
【００２１】
更に、ビット長算出回路１９ａと通常の１２ビットの減算器とを比較した場合、加算器の個数が１２個から４個に削減されているのに加え、加算器の種類がＦＡからＨＡとなっている。したがって、ビット長算出回路１９ａは、通常の１２ビット減算器と比して回路規模が１／３以下に削減される。
【００２２】
次に、図９に示すフローチャートを参照して、本発明の実施の形態に係る復号化回路１ａの動作の概要を説明する。但し、復号化回路１ａが、図２〜図７に示す１シンクブロック分の可変長符号列に対してデパッキング及び可変長復号化する場合を例に説明する。この場合、図１に示す第２ビット位置テーブル１８には、図１０（ａ）に示すように、第１輝度エリアＡＲ１〜第２色差エリアＡＲ２のそれぞれの終端ビット位置のデータＥＮＤＰが予め格納されている。
【００２３】
（イ）図９のステップＳ１１において、図１に示すストリーム制御回路１２は、入力用メモリ２から第１メモリ制御回路１１を介して１固定長エリア分の可変長符号列ＳＴＲを読み込む。一例として、図２に示す第１輝度エリアＡＲ１に相当する可変長符号列ＳＴＲがストリーム制御回路１２に供給される。読み込まれた可変長符号列ＳＴＲは、ストリーム制御回路１２において一旦保持される。ストリーム制御回路１２により保持された可変長符号列ＳＴＲは、第１ビット位置テーブル１８からのストリーム制御データＣＴＰに応じて図１に示す可変長符号テーブル１３に供給される。
【００２４】
（ロ）ステップＳ１２において、可変長符号テーブル１３は、読み込まれた可変長符号列ＳＴＲのビット長のデータＬＥＮを加算回路１４に供給する。ステップＳ１３において、エリア境界検出フラグＥＮＤＦ又は終端符号検出フラグＥＯＢＦが生成されるまでの期間において、可変長符号列ＳＴＲ内の各可変長符号語に対する可変長復号化が繰り返される。エリア境界検出フラグＥＮＤＦ又は終端符号検出フラグＥＯＢＦが生成された場合、ステップＳ１４に進む。ここで、図２に示す第１輝度エリアＡＲ１において、ビットＢ１１０〜ビットＢ１１２以後の可変長符号列は、パッキングにより他の固定長エリア、例えば図３に示す第２輝度エリアＡＲ２に格納されている。よって、図１０（ｃ）に示すように、比較回路１０によりエリア境界検出フラグＥＮＤＦが生成され、第１輝度エリアＡＲ１における可変長復号化がビットＢ１０９において中断される。この結果、第１ビット位置テーブル１８は、図１０（ｂ）に示すように、ビットＢ１０９のビット位置のデータＳＴＲＰとして（１０９）10を記憶する。
【００２５】
（ハ）ステップＳ１４において、１ビデオセグメント分の固定長エリアに相当する可変長符号列ＳＴＲの読み出しが終了したか否か判定される。１ビデオセグメント分の固定長エリアに相当する可変長符号列ＳＴＲの読み出しが終了したと判定された場合、ステップＳ１６に進む。１ビデオセグメント分の固定長エリアに相当する可変長符号列ＳＴＲの読み出しが終了していないと判定された場合、ステップＳ１５に進む。
【００２６】
（ニ）ステップＳ１５においては、図１に示すデパッキング制御回路１５からの読み出しエリア番号ＡＮがインクリメントされる。読み出しエリア番号ＡＮがインクリメントされると、ステップＳ１１に処理が戻り、例えば図３に示す第２輝度エリアＡＲ２が読み出される。第２輝度エリアＡＲ２において、可変長符号テーブル１３は、図１０（ｄ）に示すように、ビットＢ１８４〜ビットＢ１８７はＥＯＢであると判断して終端符号検出フラグＥＯＢＦを生成する。尚、ＥＯＢは例えば４ビットの固定ビット長を有する。この結果、第２輝度エリアＡＲ２における可変長復号化がビットＢ１８７において中断される。第２輝度エリアＡＲ２における可変長復号化が中断されると、第１ビット位置テーブル１８は図１０（ｂ）に示すように、ビットＢ１８７のビット位置のデータＳＴＲＰとして（１８７）10を記憶する。同様にしてステップＳ１１〜ステップＳ１５の処理が繰り返される。この結果、第１ビット位置テーブル１８は図１０（ｂ）に示すように、図４に示す第３輝度エリアＡＲ３においてはデータＳＴＲＰとして（３２６）10、図５に示す第４輝度エリアＡＲ４においてはデータＳＴＲＰとして（４４３）10、第１色差エリアＡＲ５においてはデータＳＴＲＰとして（５０９）10、及び第２色差エリアＡＲ６においてはデータＳＴＲＰとして（５９４）10を記憶する。
【００２７】
（ホ）ステップＳ１６において、デパッキング制御回路１５は、図２〜図７に示す第１輝度エリアＡＲ１〜第２色差エリアＡＲ６の内、連結する２つの固定長エリアを選択する。ここで、デパッキング制御回路１５は、終端符号検出フラグＥＯＢＦが生成された固定長エリアとエリア境界検出フラグＥＮＤＦが生成された固定長エリアとを１つずつ選択する。一例として、図２に示す第１輝度エリア及び図３に示す第２輝度エリアＡＲ２が選択されたとする。尚、デパッキング制御回路１５は、第１ビット位置テーブル１８を用いて、終端符号検出フラグＥＯＢＦが生成された固定長エリア内の可変長符号列ＳＴＲに対し、エリア境界検出フラグＥＮＤＦが生成された固定長エリア内の可変長符号列ＳＴＲを連結するようにストリーム制御回路１２を制御する。
【００２８】
（ヘ）ステップＳ１７において、ビット長算出回路１９ａは、エリア境界検出フラグＥＮＤＦが生成された固定長エリア、即ち第１輝度エリアＡＲ１内に残った可変長符号列ＳＴＲのビット長ＢＬＥＮを算出する。図１０（ａ）及び図１０（ｂ）に示すように、第１輝度エリアＡＲのデータＳＴＲＰは（１０９）10であり、２進数で表現すると(１１０１１０１）2となる。図８に示すビット長算出回路１９ａには、（１１０１１０１）2の下位４ビット、即ち（１１０１）2が供給される。（１１０１）2は第１インバータ１９１ａ〜第４インバータ１９１ｄによりビット反転され、（００１０）2となる。第１インバータ１９１ａ〜第４インバータ１９１ｄの出力値（００１０）2は、第１ＨＡ１９２ａ〜第４ＨＡ１９２ｄにより論理値（１）2が加算され、（００１１）2となる。（００１１）2を１０進数で表現すると（３）10となる。即ち、データＥＮＤＰ（１１２）10−データＳＴＲＰ（１０９）10の演算結果（３）10と等しくなる。このように、ビット長算出回路１９ａは、データＳＴＲＰの下位４ビットから、第１輝度エリアＡＲ１内に残った可変長符号列ＳＴＲのビット長ＢＬＥＮを算出する。
【００２９】
（ト）ステップＳ１８において、ストリーム制御回路１２は、連結後に固定長エリア内に残る可変長符号列ＳＴＲのビット長を算出する。図１１に示す例においては、連結後に固定長エリア内に残る可変長符号列ＳＴＲのビット長は、ビットＢ１８７のビット位置（１８７）10からビット長算出回路１９ａが算出したビット長ＢＬＥＮ（３）10を減算することにより算出される。この場合、連結後の残りビット長は（１８４）10となる。ステップＳ１９において、ストリーム制御回路１２は、ステップＳ１６で選択された２つの可変長符号列を連結する。
【００３０】
（チ）ステップＳ２０において、ストリーム制御回路１２は、可変長符号テーブル１３に連結後の可変長符号列ＳＴＲを供給する。図１１に示す例において、ストリーム制御回路１２は、ステップＳ１８で算出された連結後の残りビット長（１８４）10に応じて、可変長符号テーブル１３に連結後の可変長符号列ＳＴＲをビットＢ１８５から供給する。この結果、連結後の可変長符号列ＳＴＲが可変長符号テーブル１３により可変長復号化される。連結後の可変長符号列ＳＴＲの可変長復号化は、ステップＳ２１において終端符号検出フラグＥＯＢＦ又はエリア境界検出フラグＥＮＤＦが生成されるまで継続される。終端符号検出フラグＥＯＢＦ又はエリア境界検出フラグＥＮＤＦが生成されると、ステップＳ２２に処理が進む。
【００３１】
（リ）ステップＳ２２においては、２つの固定長エリアのそれぞれのビット位置のデータＳＴＲＰが更新される。ステップＳ２１においてエリア境界検出フラグＥＮＤＦが生成された場合はＥＮＤＦが、終端符号検出フラグＥＯＢＦが生成された場合はＥＯＢＦが、それぞれ図１０（ｃ）又は図１０（ｄ）に記録される。ステップＳ２２において１ビデオセグメント分の可変長符号列ＳＴＲに対して可変長復号化が終了していないと判定された場合、ステップＳ１６に処理が戻る。一方、ステップＳ２２において１ビデオセグメント分の可変長符号列ＳＴＲに対して可変長復号化が終了したと判定された場合、処理が一旦終了する。更に、図１に示す入力用メモリ２に新たな１ビデオセグメント分の可変長符号列ＳＴＲが格納され、ステップＳ１１から処理が再開される。
【００３２】
上述したように、ビット長算出回路１９ａが、通常の１２ビットの減算器と比して回路規模が１／３以下に削減されているため、図９のステップＳ１７に要する処理時間を１／３以下に削減できる。また、通常の１２ビットの減算器を使用した場合、図１に示す第２ビット位置テーブル１６、セレクタ１７、第１ビット位置テーブル１８、及びビット長算出回路１９ａの全体のゲート数は、表１（ｂ）に示すように７９６５個である。一方、同様の条件で通常の１２ビットの減算器を使用した場合、表１（ａ）に示すように、ゲート数は８６５０個となる。よって、ゲート数が１０％程度削減されていることが分かる。
【００３３】
【表１】
2006086723.tif 000003
【００３４】
更に、表１（ａ）に示す比較例において、最大遅延時間は３．０２ｎｓである。但し、プロセスを０．１３μｍとしている。一方、図８に示すビット長算出回路１９ａを使用した場合、最大遅延時間は２．６０ｎｓとなり、最大遅延時間が１４％程度短縮されている。
【００３５】
更に、ビット長算出回路１９ａが生成するビット長データＢＬＥＮのビット幅は４ビットであるため、ストリーム制御回路１２が、図９のステップＳ１８の処理を実行する際の負担を軽減することができる。したがって、表２に示すように、デパッキングを１段階で実行可能であり、メモリアクセス負荷が少なく、高速・小面積な復号化回路１ａを提供できる：
【００３６】
【表２】
2006086723.tif 000004
【００３７】
（第１の変形例）
本発明の実施の形態の第１の変形例に係る復号化回路１ｂとして図１２に示すように、ビット長算出回路１９ｂの入力が、第２ビット位置テーブル１６の出力に接続される構成でも良い。ビット長算出回路１９ｂは、図１３に示すように、データＳＴＲＰの下位４ビットＢ0〜Ｂ3とデータＥＮＤＰの下位４ビットＡ0〜Ａ3とを用いて、ビット長ＢＬＥＮを算出する。
【００３８】
具体的にはビット長算出回路１９ｂは、第１インバータ１９１ａ〜第４インバータ１９１ｄ、及び第１ＦＡ１９３ａ〜第４ＦＡ１９３ｄを備える。第１ＦＡ１９３ａは、論理値“１”、第１インバータ１９１ａの出力値、及びデータＥＮＤＰの最下位ビットＡ0を加算する。第２ＦＡ１９３ｂは、第１ＦＡ１９３ａの桁上がり値、第２インバータ１９１ｂの出力値、及びデータＥＮＤＰの第２ビットＡ1を加算する。第３ＦＡ１９３ｃは、第２ＦＡ１９３ｂの桁上がり値、第３インバータ１９１ｃの出力値、及びデータＥＮＤＰの第３ビットＡ2とを加算する。第４ＦＡ１９３ｄは、第３ＦＡ１９３ｃの桁上がり値、第４インバータ１９１ｄの出力値、及びデータＥＮＤＰの第４ビットＡ3とを加算する。第１ＦＡ１９３ａの出力値Ｓ0、第２ＦＡ１９３ｂの出力値Ｓ1、第３ＦＡ１９３ｃの出力値Ｓ2、第４ＦＡ１９３ｄの出力値Ｓ3は、ビット長データＢＬＥＮとして図１に示すストリーム制御回路１２に供給される。
【００３９】
図１３に示すビット長算出回路１９ｂは、規格上、各固定長エリアの終端ビット位置が１６ビットの倍数でない場合であっても、可変長符号語の最大長が１６ビットであれば利用できる。
【００４０】
（第２の変形例）
本発明の実施の形態の第２の変形例に係る復号化回路として図１４に示すように、ビット長算出回路１９ｃにデータＳＴＲＰの全部のビットを供給する構成でも良い。データＥＮＤＰの下位４ビットはゼロであることから、式（２）は：
bitLength[11:0] = {w_bitEndPtr[11:4],4’b0000}+ ~w_bitPtr[11:0] + 12'h1;  ・・・・・（６）
と書き換え可能なためである。
【００４１】
図１４に示すビット長算出回路１９ｃは、図８に示す第１インバータ１９１ａ〜第４インバータ１９１ｄ及び第１ＨＡ１９２ａ〜第４ＨＡ１９２ｄに加えて、第５インバータ１９１ｅ〜第１２インバータ１９１ｌ及び第５ＦＡ１９２ｅ〜第１２ＦＡ１９２ｌを備える。第５インバータ１９１ｅは、データＳＴＲＰの第５ビットＢ4を反転する。第６インバータ１９１ｆは、データＳＴＲＰの第６ビットＢ5を反転する。第７インバータ１９１ｇは、データＳＴＲＰの第７ビットＢ6を反転する。第８インバータ１９１ｈは、データＳＴＲＰの第８ビットＢ7を反転する。第９インバータ１９１ｉは、データＳＴＲＰの第９ビットＢ8を反転する。第１０インバータ１９１ｊは、データＳＴＲＰの第１０ビットＢ9を反転する。第１１インバータ１９１ｋは、データＳＴＲＰの第１１ビットＢ10を反転する。第１２インバータ１９１ｌは、データＳＴＲＰの第１２ビット（最上位ビット）Ｂ11を反転する。
【００４２】
また、第５ＦＡ１９２ｅは、第４ＨＡ１９２ｄの桁上がり値、第５インバータ１９１ｅの出力値、及びデータＥＮＤＰの第５ビットＡ4を加算する。第６ＦＡ１９２ｆは、第５ＦＡ１９２ｅの桁上がり値、第６インバータ１９１ｆの出力値、及びデータＥＮＤＰの第６ビットＡ5を加算する。第７ＦＡ１９２ｇは、第６ＦＡ１９２ｆの桁上がり値、第７インバータ１９１ｇの出力値、及びデータＥＮＤＰの第７ビットＡ6を加算する。第８ＦＡ１９２ｈは、第７ＦＡ１９２ｇの桁上がり値、第８インバータ１９１ｈの出力値、及びデータＥＮＤＰの第８ビットＡ7を加算する。第９ＦＡ１９２ｉは、第８ＦＡ１９２ｈの桁上がり値、第９インバータ１９１ｉの出力値、及びデータＥＮＤＰの第９ビットＡ8を加算する。第１０ＦＡ１９２ｊは、第９ＦＡ１９２ｉの桁上がり値、第１０インバータ１９１ｊの出力値、及びデータＥＮＤＰの第１０ビットＡ9を加算する。第１１ＦＡ１９２ｋは、第１０ＦＡ１９２ｊの桁上がり値、第１１インバータ１９１ｋの出力値、及びデータＥＮＤＰの第１１ビットＡ10を加算する。第１２ＦＡ１９２ｌは、第１１ＦＡ１９２ｋの桁上がり値、第１２インバータ１９１ｌの出力値、及びデータＥＮＤＰの第１２ビットＡ11を加算する。
【００４３】
図１４に示すビット長算出回路１９ｃは、規格上、可変長符号語の最大長が１６ビットでない場合であっても、各固定長エリアの終端ビット位置が１６ビットの倍数であれば利用できる。
【００４４】
（その他の実施の形態）
上記のように、本発明は実施の形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなろう。
【００４５】
上述した実施の形態においては、復号化回路が、ＤＶＣ方式に準拠して可変長符号化及びパッキングされた画像データに対し、デパッキング及び可変長復号化処理を行う場合を例に説明した。しかしながら、復号化回路をＤＶＣ方式以外のＤＶフォーマットに応用しても良い。可変長符号語の最大長が１６ビットでない場合、ビット長算出回路１９ａは、可変長符号語の最大ビット長−１を格納可能なビット数をＮとして、ビット位置のデータＳＴＲＰの下位Ｎビットを用いてビット長ＢＬＥＮを算出すれば良い。ここで、「可変長符号語の最大ビット長−１を格納可能なビット数」とは、例えば可変長符号語の最大ビット長が（１６）10ビットである場合、１６−１＝（１５）10を２進数表記にする際に必要なビット長を意味する。上述したように、（１５）10を２進数表記にすると（１１１１）2となり、「可変長符号語の最大ビット長−１を格納可能なビット数」は４となる。
【００４６】
このように本発明は、ここでは記載していない様々な実施の形態等を包含するということを理解すべきである。したがって、本発明はこの開示から妥当な特許請求の範囲の発明特定事項によってのみ限定されるものである。
【図面の簡単な説明】
【００４７】
【図１】本発明の実施の形態に係る復号化回路の構成を示すブロック図である。
【図２】本発明の実施の形態に係る復号化回路に供給される第１輝度エリアのデータ構造例を示す模式図である。
【図３】本発明の実施の形態に係る復号化回路に供給される第２輝度エリアのデータ構造例を示す模式図である。
【図４】本発明の実施の形態に係る復号化回路に供給される第３輝度エリアのデータ構造例を示す模式図である。
【図５】本発明の実施の形態に係る復号化回路に供給される第４輝度エリアのデータ構造例を示す模式図である。
【図６】本発明の実施の形態に係る復号化回路に供給される第１色差エリアのデータ構造例を示す模式図である。
【図７】本発明の実施の形態に係る復号化回路に供給される第２色差エリアのデータ構造例を示す模式図である。
【図８】本発明の実施の形態に係るビット長算出回路の構成を示す回路図である。
【図９】本発明の実施の形態に係る復号化回路の動作の概要を説明するフローチャートである。
【図１０】本発明の実施の形態に係る復号化回路の機能を説明するための表である。
【図１１】本発明の実施の形態に係る復号化回路のデパッキング時の動作を説明するための模式図である。
【図１２】本発明の実施の形態の第１の変形例に係る復号化回路の構成を示すブロック図である。
【図１３】本発明の実施の形態の第１の変形例に係るビット長算出回路の構成を示す回路図である。
【図１４】本発明の実施の形態の第２の変形例に係るビット長算出回路の構成を示す回路図である。
【符号の説明】
【００４８】
１ａ、１ｂ…復号化回路
１６…第２ビット位置テーブル
１８…第１ビット位置テーブル
１９ａ〜１９ｃ…ビット長算出回路
１９１ａ〜１９１ｄ…第１インバータ〜第４インバータ
１９２ａ〜１９２ｄ…第１半加算器〜第４半加算器
【図１】
2006086723.tif 000005
【図２】
2006086723.tif 000006
【図３】
2006086723.tif 000007
【図４】
2006086723.tif 000008
【図５】
2006086723.tif 000009
【図６】
2006086723.tif 000010
【図７】
2006086723.tif 000011
【図８】
2006086723.tif 000012
【図９】
2006086723.tif 000013
【図１０】
2006086723.tif 000014
【図１１】
2006086723.tif 000015
【図１２】
2006086723.tif 000016
【図１３】
2006086723.tif 000017
【図１４】
2006086723.tif 000018