復号化回路
【課題】 回路規模の削減及び動作周波数の向上を実現可能な復号化回路を提供する。
【解決手段】 固定長エリアにパッキングされた可変長符号列STRを受け取り、可変長復号化及びデパッキングを実行する復号化回路1aであって、可変長復号化が中断された時点における可変長符号列STRのビット位置のデータSTRPを保持する第1ビット位置テーブル18と、デパッキング時において、ビット位置のデータSTRPの一部又は全部のビットから、可変長復号化の中断後に固定長エリア内に残った可変長符号列STRのビット長BLENを算出するビット長算出回路19aとを備える。
【解決手段】 固定長エリアにパッキングされた可変長符号列STRを受け取り、可変長復号化及びデパッキングを実行する復号化回路1aであって、可変長復号化が中断された時点における可変長符号列STRのビット位置のデータSTRPを保持する第1ビット位置テーブル18と、デパッキング時において、ビット位置のデータSTRPの一部又は全部のビットから、可変長復号化の中断後に固定長エリア内に残った可変長符号列STRのビット長BLENを算出するビット長算出回路19aとを備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、パッキングされた可変長符号列に対してデパッキング及び可変長復号化を施す復号化回路に関する。
【背景技術】
【0002】
デジタルビデオ(DV)カメラにおいては、動画像データが動画像圧縮符号化回路により圧縮符号化されて磁気テープ等の記録媒体に記録される。圧縮符号化処理は、主に離散コサイン変換(DCT)、量子化、及び可変長符号化を順に行うことにより実行される。圧縮符号化処理の際には、1フレーム内における輝度信号及び色差信号はサンプリング数が異なるため、4つの輝度ブロックと2つの色差ブロックにより構成されるマクロブロック単位で圧縮符号化処理が実行される。可変長符号化後のマクロブロックにおいては、画像の複雑さ等により4つの輝度ブロックのそれぞれのビット長にばらつきが生じる。同様に2つの色差ブロックにおいてもビット長のばらつきが生じる。また、可変長符号化された動画像データ(以下において「可変長符号列」という。)が記録される磁気テープ上のトラックにおいて、各トラックの可変長符号列を記録するエリアは、シンクブロックと呼ばれる固定長エリアに分割されている。よって、可変長である1マクロブロック分の可変長符号列を固定長である1シンクブロックにパッキングする必要がある。
【0003】
一方、パッキングされた可変長符号列から動画像データを復号化するには、デパッキング及び可変長復号化等が必要となる。デパッキングされた可変長符号列はメモリに一旦格納され、可変長復号化が施される。第1の背景技術として、デパッキング処理及び可変長復号化処理を効率化し、メモリを削減する手法が提案されている(例えば、特許文献1参照。)。また、第2の背景技術として、デパッキング処理及び可変長復号化処理を更に効率化する手法が提案されている(例えば、特許文献2参照。)。
【0004】
しかしながら、第1及び第2の背景技術においては、復号化回路内の制御回路が複雑化するために復号化回路全体の動作周波数を向上させることが困難である。特に、デパッキング時において可変長符号列を連結する際、多ビットの減算回路が用いられるため、復号化回路の回路規模が増大する。更に、多ビットの減算回路を用いるためにキャリー伝播の遅延が生じ、復号化回路の遅延時間が増大する。高性能な減算回路を利用して遅延時間を削減することは可能であるが、回路規模の増大を招くこととなる。このように、回路規模の削減及び動作周波数の向上を実現可能な復号化回路の実現が望まれている。
【特許文献1】特開平8−275162号公報
【特許文献2】特開2003−111021号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
本発明は、回路規模の削減及び動作周波数の向上を実現可能な復号化回路を提供する。
【課題を解決するための手段】
【0006】
本発明の一態様は、固定長エリアにパッキングされた可変長符号列を受け取り、可変長復号化及びデパッキングを実行する復号化回路であって、(イ)可変長復号化が中断された時点における可変長符号列のビット位置のデータを保持する第1ビット位置テーブル;(ロ)デパッキング時において、ビット位置のデータの一部又は全部のビットから、可変長復号化の中断後に固定長エリア内に残った可変長符号列のビット長を算出するビット長算出回路を備える復号化回路であることを要旨とする。
【発明の効果】
【0007】
本発明によれば、回路規模の削減及び動作周波数の向上を実現可能な復号化回路を提供できる。
【発明を実施するための最良の形態】
【0008】
次に、図面を参照して、本発明の実施の形態を説明する。この実施の形態における図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。
【0009】
本発明の実施の形態に係る復号化回路1aは、図1に示すように、例えば入力用メモリ2と出力用メモリ3との間に接続される。入力用メモリ2には、例えばデジタルビデオカセットレコーダ・フォー・コンシューマユース(DVC)方式等のDVフォーマットに準拠して圧縮符号化及びパッキング等が施された可変長符号列STRが格納される。ここで「パッキング」とは、ブロック毎にビット長が異なる可変長符号列を、固定長エリアに格納するため、上限を超えて長い可変長符号列STRを途中で切断し、容量の余っている別の固定長エリアに格納する処理を意味する。復号化回路1aは、可変長符号列STRを受け取り、可変長復号化及びデパッキングを実行する。「デパッキング」とは、複数の固定長エリアに分割して記録された可変長符号列STRに対して、切り出し及び連結を行う処理を意味する。復号化回路1aは、可変長復号化が中断された時点における可変長符号列STRのビット位置のデータSTRPを保持する第1ビット位置テーブル18、及びデパッキング時において、可変長復号化が中断された時点における可変長符号列STRのビット位置のデータSTRPの一部又は全部のビットから、可変長復号化の中断後に固定長エリア内に残った可変長符号列STRのビット長BLENを算出するビット長算出回路19aを備える。「固定長エリア」とは、マクロブロックを構成する輝度ブロックと色差ブロックとに対応するシンクブロック中のエリアを意味する。1シンクブロックにおいては、例えば図2〜図7に示す第1輝度エリアAR1〜第4輝度エリアAR4、及び第1色差エリアAR5及び第2色差エリアAR6のそれぞれが「固定長エリア」となる。
【0010】
また、入力用メモリには1ビデオセグメント、即ち5シンクブロック分の可変長符号列STRが格納される。図2に示す第1輝度エリアAR1は、ビットB1〜ビットB112の112ビットの固定ビット長を有する。同様に、図2〜図5に示す第2輝度エリアAR2〜第4輝度エリアAR4は112ビットの固定ビット長をそれぞれ有する。これに対して図6に示す第1色差エリアAR5は、ビットB449〜ビットB528の80ビットの固定ビット長を有する。同様に、図7に示す第2色差エリアAR6は80ビットの固定ビット長を有する。
【0011】
図1に示す復号化回路1aは、固定長エリアの終端ビット位置データENDPを保持する第2ビット位置テーブル16を更に備える。入力用メモリ2に格納される1ビデオセグメント、即ち5シンクブロック分の可変長符号列STRのビット長は、3200ビット程度である。よって、3200ビットのビット長を2進数で表現するために、第1ビット位置テーブル18及び第2ビット位置テーブル16のそれぞれは、12ビットのビット幅をそれぞれ有している。
【0012】
また、復号化回路1aは、第1メモリ制御回路11、ストリーム制御回路12、可変長符号テーブル13、加算回路14、デパッキング制御回路15、セレクタ17、比較回路10、逆量子化/ジグザグスキャン制御回路20、及び第2メモリ制御回路21を更に備える。第1メモリ制御回路11、ストリーム制御回路12、可変長符号テーブル13、逆量子化/ジグザグスキャン制御回路20、及び第2メモリ制御回路21は、入力用メモリ2と出力用メモリ3との間において直列に接続される。可変長符号テーブル13としては、例えばハフマンテーブルが使用できる。加算回路14の入力は、第1ビット位置テーブル18及び可変長符号テーブル13のそれぞれの出力に接続される。比較回路10の入力は、加算回路14及び第2ビット位置テーブル16のそれぞれの出力に接続される。デパッキング制御回路15の入力は、比較回路10及び可変長符号テーブル13のそれぞれの出力に接続される。セレクタ17の入力は、デパッキング制御回路15、比較回路10、及び可変長符号テーブル13のそれぞれの出力に接続される。
【0013】
更に、第1メモリ制御回路11は、ストリーム制御回路12の制御下で、入力用メモリ2に対して可変長符号列STRの読み出し等を行う。ストリーム制御回路12は、第1ビット位置テーブル18が生成するストリーム制御データCTPに応じて、第1メモリ制御回路11からの可変長符号列STRを可変長符号テーブル13に伝達する。可変長符号テーブル13は、ストリーム制御回路12から伝達された可変長符号列STRを可変長復号化する。この結果、ゼロランレングスRL、係数値の振幅AMP、及び係数値の符号SGNの組が生成される。可変長符号テーブル13は、可変長符号語の符号長データLENを加算回路14に供給する。逆量子化/ジグザグスキャン制御回路20は、ゼロランレングスRL、係数値の振幅AMP、及び係数値の符号SGNの組を逆量子化し、ジグザグスキャン順に並べ替える。逆量子化/ジグザグスキャン制御回路20の出力データは、第2メモリ制御回路21を介して出力用メモリ3に書き込まれる。
【0014】
また、加算回路14は、第1ビット位置テーブル18からのストリーム制御データCTPと可変長符号テーブル13からの符号長データLENとを加算する。比較回路10は、加算回路14における加算結果と第2ビット位置テーブル16からの終端ビット位置データENDPとを比較し、加算回路14における加算結果が第2ビット位置テーブル16からの終端ビット位置データENDPよりも大きい場合、エリア境界検出フラグENDFを生成する。また、可変長符号テーブル13は、可変長符号列STR中にブロック終端符号(EOB)が検出された場合に終端符号検出フラグEOBFを生成する。デパッキング制御回路15は、エリア境界検出フラグENDF及び終端符号検出フラグEOBFに基づき、入力用メモリ2に格納された可変長符号列STRに対する読み出しを行うエリア番号AN、及び可変長復号後の係数値を格納するブロック番号BNを制御する。
【0015】
更に、第1ビット位置テーブル18及びストリーム制御回路12は、各固定長エリアに対して、エリア境界検出フラグENDF及び終端符号検出フラグEOBFのいずれかが生成されるまでの期間において、可変長符号テーブル13に可変長符号列STRを供給する。この結果、可変長符号列STRが可変長符号テーブル13により可変長復号化される。また、第1ビット位置テーブル18は、エリア境界検出フラグENDF及び終端符号検出フラグEOBFのいずれかが生成された時点のビット位置のデータSTRPを固定長エリア毎に保持する。
【0016】
デパッキング時において、ビット長算出回路19aは、可変長復号化の中断後に固定長エリア内に残った可変長符号列STRのビット長を算出する。復号化回路1aのデパッキング時における具体的な動作については後述する。ここで、可変長復号化の中断後に固定長エリア内に残った可変長符号列STRのビット長を算出する場合、固定長エリアの終端ビット位置から可変長復号化が中断されたビット位置を減算する処理が必要となる。よって、可変長復号化が中断されたビット位置をw_bitPtr(wire [11:0] w_bitPtr)、固定長エリアの終端ビット位置をw_bitEndPtr(wire [11:0] w_bitEndPtr)、及び可変長復号化の中断後に固定長エリア内に残った可変長符号列STRのビット長をbitLength(output [11:0] bitLength)とすると、レジスタトランスファレベル(RTL)におけるハードウェア記述言語(HDL)の論理式は:
output [11:0] bitLength;
wire [11:0] w_bitPtr;
wire [11:0] w_bitEndPtr;
assign bitLength = w_bitEndPtr - w_bitPtr; ・・・・・(1)
となる。式(1)において、記号“[11:0]”は、データ幅が0ビット〜11ビットの合計12ビットであることを意味している。式(1)に示すHDLの論理式を論理合成した場合、12個のインバータと12個の全加算器(FA)を有する通常の12ビットの減算器(図示省略)が設計される。
【0017】
また、式(1)において、減算処理は2の補数表現で行われるため、ビット反転と論理値“1”の加算に置き換えられる。即ち、式(1)は:
bitLength[11:0] = w_bitEndPtr[11:0] + ~w_bitPtr[11:0] + 12'h1; ・・・(2)
と置き換えることができる。式(2)において記号“~”は、ビット反転を表す。ここで、DVC方式等のDVフォーマットにおいては、可変長符号語のビット長は最大で16ビットである。デパッキング時に可変長符号列STRの連結が行われる場合、連結対象となる可変長符号列STRは、1可変長符号語に満たない可変長符号列STRである。したがって、デパッキング時において連結対象となる可変長符号列STRのビット長は、15ビット以下に制限される。ビット長(15)10を2進数で表現すると(1111)2となり、ビット長算出回路19aが算出するビット長は4ビットで足りることとなる。よって、式(2)においては上位8ビットが不要であるため:
bitLength[3:0] = w_bitEndPtr[3:0] + ~w_bitPtr[3:0] + 4'h1; ・・・・・(3)
と書き換えることができる。
【0018】
更に、DVC方式等のDVフォーマットにおいては、図2〜図5に示す各輝度エリアのビット長は112ビットであり、図6及び図7に示す各色差エリアのビット長は80ビットである。したがって、各固定長エリアの終端ビット位置は16ビットの倍数となる。16ビットの倍数を2進数で表現した場合、下位4ビットはゼロである。よって、式(3)は:
bitLength[3:0] = ~w_bitPtr[3:0] + 4'h1; ・・・・・(4)
と書き換えることができる。この結果、式(1)は:
output [ 3:0] bitLength;
wire [11:0] w_bitPtr;
assign bitLength = ~w_bitPtr[3:0] + 4'h1; ・・・・・(5)
と書き換えられる。式(5)に示すHDLの論理式を論理合成した場合、図8に示すビット長算出回路19aが設計される。
【0019】
図8に示すビット長算出回路19aは、第1インバータ191a〜第4インバータ191d、及び第1半加算器(HA)192a〜第4HA192dを備える。第1インバータ191aは、可変長復号化が中断されたビット位置のデータSTRPの最下位ビットB0を反転する。第2インバータ191bは、可変長復号化が中断されたビット位置のデータSTRPの第2ビットB1を反転する。第3インバータ191cは、可変長復号化が中断されたビット位置のデータSTRPの第3ビットB2を反転する。第4インバータ191dは、可変長復号化が中断されたビット位置のデータSTRPの第4ビットB3を反転する。
【0020】
また、第1HA192aは、論理値“1”と第1インバータ191aの出力値とを加算する。第2HA192bは、第1HA192aの桁上がり値と第2インバータ191bの出力値とを加算する。第3HA192cは、第2HA192bの桁上がり値と第3インバータ191cの出力値とを加算する。第4HA192dは、第3HA192cの桁上がり値と第4インバータ191dの出力値とを加算する。第1HA192aの出力値S0、第2HA192bの出力値S1、第3HA192cの出力値S2、第4HA192dの出力値S3は、ビット長データBLENとして図1に示すストリーム制御回路12に供給される。
【0021】
更に、ビット長算出回路19aと通常の12ビットの減算器とを比較した場合、加算器の個数が12個から4個に削減されているのに加え、加算器の種類がFAからHAとなっている。したがって、ビット長算出回路19aは、通常の12ビット減算器と比して回路規模が1/3以下に削減される。
【0022】
次に、図9に示すフローチャートを参照して、本発明の実施の形態に係る復号化回路1aの動作の概要を説明する。但し、復号化回路1aが、図2〜図7に示す1シンクブロック分の可変長符号列に対してデパッキング及び可変長復号化する場合を例に説明する。この場合、図1に示す第2ビット位置テーブル18には、図10(a)に示すように、第1輝度エリアAR1〜第2色差エリアAR2のそれぞれの終端ビット位置のデータENDPが予め格納されている。
【0023】
(イ)図9のステップS11において、図1に示すストリーム制御回路12は、入力用メモリ2から第1メモリ制御回路11を介して1固定長エリア分の可変長符号列STRを読み込む。一例として、図2に示す第1輝度エリアAR1に相当する可変長符号列STRがストリーム制御回路12に供給される。読み込まれた可変長符号列STRは、ストリーム制御回路12において一旦保持される。ストリーム制御回路12により保持された可変長符号列STRは、第1ビット位置テーブル18からのストリーム制御データCTPに応じて図1に示す可変長符号テーブル13に供給される。
【0024】
(ロ)ステップS12において、可変長符号テーブル13は、読み込まれた可変長符号列STRのビット長のデータLENを加算回路14に供給する。ステップS13において、エリア境界検出フラグENDF又は終端符号検出フラグEOBFが生成されるまでの期間において、可変長符号列STR内の各可変長符号語に対する可変長復号化が繰り返される。エリア境界検出フラグENDF又は終端符号検出フラグEOBFが生成された場合、ステップS14に進む。ここで、図2に示す第1輝度エリアAR1において、ビットB110〜ビットB112以後の可変長符号列は、パッキングにより他の固定長エリア、例えば図3に示す第2輝度エリアAR2に格納されている。よって、図10(c)に示すように、比較回路10によりエリア境界検出フラグENDFが生成され、第1輝度エリアAR1における可変長復号化がビットB109において中断される。この結果、第1ビット位置テーブル18は、図10(b)に示すように、ビットB109のビット位置のデータSTRPとして(109)10を記憶する。
【0025】
(ハ)ステップS14において、1ビデオセグメント分の固定長エリアに相当する可変長符号列STRの読み出しが終了したか否か判定される。1ビデオセグメント分の固定長エリアに相当する可変長符号列STRの読み出しが終了したと判定された場合、ステップS16に進む。1ビデオセグメント分の固定長エリアに相当する可変長符号列STRの読み出しが終了していないと判定された場合、ステップS15に進む。
【0026】
(ニ)ステップS15においては、図1に示すデパッキング制御回路15からの読み出しエリア番号ANがインクリメントされる。読み出しエリア番号ANがインクリメントされると、ステップS11に処理が戻り、例えば図3に示す第2輝度エリアAR2が読み出される。第2輝度エリアAR2において、可変長符号テーブル13は、図10(d)に示すように、ビットB184〜ビットB187はEOBであると判断して終端符号検出フラグEOBFを生成する。尚、EOBは例えば4ビットの固定ビット長を有する。この結果、第2輝度エリアAR2における可変長復号化がビットB187において中断される。第2輝度エリアAR2における可変長復号化が中断されると、第1ビット位置テーブル18は図10(b)に示すように、ビットB187のビット位置のデータSTRPとして(187)10を記憶する。同様にしてステップS11〜ステップS15の処理が繰り返される。この結果、第1ビット位置テーブル18は図10(b)に示すように、図4に示す第3輝度エリアAR3においてはデータSTRPとして(326)10、図5に示す第4輝度エリアAR4においてはデータSTRPとして(443)10、第1色差エリアAR5においてはデータSTRPとして(509)10、及び第2色差エリアAR6においてはデータSTRPとして(594)10を記憶する。
【0027】
(ホ)ステップS16において、デパッキング制御回路15は、図2〜図7に示す第1輝度エリアAR1〜第2色差エリアAR6の内、連結する2つの固定長エリアを選択する。ここで、デパッキング制御回路15は、終端符号検出フラグEOBFが生成された固定長エリアとエリア境界検出フラグENDFが生成された固定長エリアとを1つずつ選択する。一例として、図2に示す第1輝度エリア及び図3に示す第2輝度エリアAR2が選択されたとする。尚、デパッキング制御回路15は、第1ビット位置テーブル18を用いて、終端符号検出フラグEOBFが生成された固定長エリア内の可変長符号列STRに対し、エリア境界検出フラグENDFが生成された固定長エリア内の可変長符号列STRを連結するようにストリーム制御回路12を制御する。
【0028】
(ヘ)ステップS17において、ビット長算出回路19aは、エリア境界検出フラグENDFが生成された固定長エリア、即ち第1輝度エリアAR1内に残った可変長符号列STRのビット長BLENを算出する。図10(a)及び図10(b)に示すように、第1輝度エリアARのデータSTRPは(109)10であり、2進数で表現すると(1101101)2となる。図8に示すビット長算出回路19aには、(1101101)2の下位4ビット、即ち(1101)2が供給される。(1101)2は第1インバータ191a〜第4インバータ191dによりビット反転され、(0010)2となる。第1インバータ191a〜第4インバータ191dの出力値(0010)2は、第1HA192a〜第4HA192dにより論理値(1)2が加算され、(0011)2となる。(0011)2を10進数で表現すると(3)10となる。即ち、データENDP(112)10−データSTRP(109)10の演算結果(3)10と等しくなる。このように、ビット長算出回路19aは、データSTRPの下位4ビットから、第1輝度エリアAR1内に残った可変長符号列STRのビット長BLENを算出する。
【0029】
(ト)ステップS18において、ストリーム制御回路12は、連結後に固定長エリア内に残る可変長符号列STRのビット長を算出する。図11に示す例においては、連結後に固定長エリア内に残る可変長符号列STRのビット長は、ビットB187のビット位置(187)10からビット長算出回路19aが算出したビット長BLEN(3)10を減算することにより算出される。この場合、連結後の残りビット長は(184)10となる。ステップS19において、ストリーム制御回路12は、ステップS16で選択された2つの可変長符号列を連結する。
【0030】
(チ)ステップS20において、ストリーム制御回路12は、可変長符号テーブル13に連結後の可変長符号列STRを供給する。図11に示す例において、ストリーム制御回路12は、ステップS18で算出された連結後の残りビット長(184)10に応じて、可変長符号テーブル13に連結後の可変長符号列STRをビットB185から供給する。この結果、連結後の可変長符号列STRが可変長符号テーブル13により可変長復号化される。連結後の可変長符号列STRの可変長復号化は、ステップS21において終端符号検出フラグEOBF又はエリア境界検出フラグENDFが生成されるまで継続される。終端符号検出フラグEOBF又はエリア境界検出フラグENDFが生成されると、ステップS22に処理が進む。
【0031】
(リ)ステップS22においては、2つの固定長エリアのそれぞれのビット位置のデータSTRPが更新される。ステップS21においてエリア境界検出フラグENDFが生成された場合はENDFが、終端符号検出フラグEOBFが生成された場合はEOBFが、それぞれ図10(c)又は図10(d)に記録される。ステップS22において1ビデオセグメント分の可変長符号列STRに対して可変長復号化が終了していないと判定された場合、ステップS16に処理が戻る。一方、ステップS22において1ビデオセグメント分の可変長符号列STRに対して可変長復号化が終了したと判定された場合、処理が一旦終了する。更に、図1に示す入力用メモリ2に新たな1ビデオセグメント分の可変長符号列STRが格納され、ステップS11から処理が再開される。
【0032】
上述したように、ビット長算出回路19aが、通常の12ビットの減算器と比して回路規模が1/3以下に削減されているため、図9のステップS17に要する処理時間を1/3以下に削減できる。また、通常の12ビットの減算器を使用した場合、図1に示す第2ビット位置テーブル16、セレクタ17、第1ビット位置テーブル18、及びビット長算出回路19aの全体のゲート数は、表1(b)に示すように7965個である。一方、同様の条件で通常の12ビットの減算器を使用した場合、表1(a)に示すように、ゲート数は8650個となる。よって、ゲート数が10%程度削減されていることが分かる。
【0033】
【表1】
【0034】
更に、表1(a)に示す比較例において、最大遅延時間は3.02nsである。但し、プロセスを0.13μmとしている。一方、図8に示すビット長算出回路19aを使用した場合、最大遅延時間は2.60nsとなり、最大遅延時間が14%程度短縮されている。
【0035】
更に、ビット長算出回路19aが生成するビット長データBLENのビット幅は4ビットであるため、ストリーム制御回路12が、図9のステップS18の処理を実行する際の負担を軽減することができる。したがって、表2に示すように、デパッキングを1段階で実行可能であり、メモリアクセス負荷が少なく、高速・小面積な復号化回路1aを提供できる:
【0036】
【表2】
【0037】
(第1の変形例)
本発明の実施の形態の第1の変形例に係る復号化回路1bとして図12に示すように、ビット長算出回路19bの入力が、第2ビット位置テーブル16の出力に接続される構成でも良い。ビット長算出回路19bは、図13に示すように、データSTRPの下位4ビットB0〜B3とデータENDPの下位4ビットA0〜A3とを用いて、ビット長BLENを算出する。
【0038】
具体的にはビット長算出回路19bは、第1インバータ191a〜第4インバータ191d、及び第1FA193a〜第4FA193dを備える。第1FA193aは、論理値“1”、第1インバータ191aの出力値、及びデータENDPの最下位ビットA0を加算する。第2FA193bは、第1FA193aの桁上がり値、第2インバータ191bの出力値、及びデータENDPの第2ビットA1を加算する。第3FA193cは、第2FA193bの桁上がり値、第3インバータ191cの出力値、及びデータENDPの第3ビットA2とを加算する。第4FA193dは、第3FA193cの桁上がり値、第4インバータ191dの出力値、及びデータENDPの第4ビットA3とを加算する。第1FA193aの出力値S0、第2FA193bの出力値S1、第3FA193cの出力値S2、第4FA193dの出力値S3は、ビット長データBLENとして図1に示すストリーム制御回路12に供給される。
【0039】
図13に示すビット長算出回路19bは、規格上、各固定長エリアの終端ビット位置が16ビットの倍数でない場合であっても、可変長符号語の最大長が16ビットであれば利用できる。
【0040】
(第2の変形例)
本発明の実施の形態の第2の変形例に係る復号化回路として図14に示すように、ビット長算出回路19cにデータSTRPの全部のビットを供給する構成でも良い。データENDPの下位4ビットはゼロであることから、式(2)は:
bitLength[11:0] = {w_bitEndPtr[11:4],4’b0000}+ ~w_bitPtr[11:0] + 12'h1; ・・・・・(6)
と書き換え可能なためである。
【0041】
図14に示すビット長算出回路19cは、図8に示す第1インバータ191a〜第4インバータ191d及び第1HA192a〜第4HA192dに加えて、第5インバータ191e〜第12インバータ191l及び第5FA192e〜第12FA192lを備える。第5インバータ191eは、データSTRPの第5ビットB4を反転する。第6インバータ191fは、データSTRPの第6ビットB5を反転する。第7インバータ191gは、データSTRPの第7ビットB6を反転する。第8インバータ191hは、データSTRPの第8ビットB7を反転する。第9インバータ191iは、データSTRPの第9ビットB8を反転する。第10インバータ191jは、データSTRPの第10ビットB9を反転する。第11インバータ191kは、データSTRPの第11ビットB10を反転する。第12インバータ191lは、データSTRPの第12ビット(最上位ビット)B11を反転する。
【0042】
また、第5FA192eは、第4HA192dの桁上がり値、第5インバータ191eの出力値、及びデータENDPの第5ビットA4を加算する。第6FA192fは、第5FA192eの桁上がり値、第6インバータ191fの出力値、及びデータENDPの第6ビットA5を加算する。第7FA192gは、第6FA192fの桁上がり値、第7インバータ191gの出力値、及びデータENDPの第7ビットA6を加算する。第8FA192hは、第7FA192gの桁上がり値、第8インバータ191hの出力値、及びデータENDPの第8ビットA7を加算する。第9FA192iは、第8FA192hの桁上がり値、第9インバータ191iの出力値、及びデータENDPの第9ビットA8を加算する。第10FA192jは、第9FA192iの桁上がり値、第10インバータ191jの出力値、及びデータENDPの第10ビットA9を加算する。第11FA192kは、第10FA192jの桁上がり値、第11インバータ191kの出力値、及びデータENDPの第11ビットA10を加算する。第12FA192lは、第11FA192kの桁上がり値、第12インバータ191lの出力値、及びデータENDPの第12ビットA11を加算する。
【0043】
図14に示すビット長算出回路19cは、規格上、可変長符号語の最大長が16ビットでない場合であっても、各固定長エリアの終端ビット位置が16ビットの倍数であれば利用できる。
【0044】
(その他の実施の形態)
上記のように、本発明は実施の形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなろう。
【0045】
上述した実施の形態においては、復号化回路が、DVC方式に準拠して可変長符号化及びパッキングされた画像データに対し、デパッキング及び可変長復号化処理を行う場合を例に説明した。しかしながら、復号化回路をDVC方式以外のDVフォーマットに応用しても良い。可変長符号語の最大長が16ビットでない場合、ビット長算出回路19aは、可変長符号語の最大ビット長−1を格納可能なビット数をNとして、ビット位置のデータSTRPの下位Nビットを用いてビット長BLENを算出すれば良い。ここで、「可変長符号語の最大ビット長−1を格納可能なビット数」とは、例えば可変長符号語の最大ビット長が(16)10ビットである場合、16−1=(15)10を2進数表記にする際に必要なビット長を意味する。上述したように、(15)10を2進数表記にすると(1111)2となり、「可変長符号語の最大ビット長−1を格納可能なビット数」は4となる。
【0046】
このように本発明は、ここでは記載していない様々な実施の形態等を包含するということを理解すべきである。したがって、本発明はこの開示から妥当な特許請求の範囲の発明特定事項によってのみ限定されるものである。
【図面の簡単な説明】
【0047】
【図1】本発明の実施の形態に係る復号化回路の構成を示すブロック図である。
【図2】本発明の実施の形態に係る復号化回路に供給される第1輝度エリアのデータ構造例を示す模式図である。
【図3】本発明の実施の形態に係る復号化回路に供給される第2輝度エリアのデータ構造例を示す模式図である。
【図4】本発明の実施の形態に係る復号化回路に供給される第3輝度エリアのデータ構造例を示す模式図である。
【図5】本発明の実施の形態に係る復号化回路に供給される第4輝度エリアのデータ構造例を示す模式図である。
【図6】本発明の実施の形態に係る復号化回路に供給される第1色差エリアのデータ構造例を示す模式図である。
【図7】本発明の実施の形態に係る復号化回路に供給される第2色差エリアのデータ構造例を示す模式図である。
【図8】本発明の実施の形態に係るビット長算出回路の構成を示す回路図である。
【図9】本発明の実施の形態に係る復号化回路の動作の概要を説明するフローチャートである。
【図10】本発明の実施の形態に係る復号化回路の機能を説明するための表である。
【図11】本発明の実施の形態に係る復号化回路のデパッキング時の動作を説明するための模式図である。
【図12】本発明の実施の形態の第1の変形例に係る復号化回路の構成を示すブロック図である。
【図13】本発明の実施の形態の第1の変形例に係るビット長算出回路の構成を示す回路図である。
【図14】本発明の実施の形態の第2の変形例に係るビット長算出回路の構成を示す回路図である。
【符号の説明】
【0048】
1a、1b…復号化回路
16…第2ビット位置テーブル
18…第1ビット位置テーブル
19a〜19c…ビット長算出回路
191a〜191d…第1インバータ〜第4インバータ
192a〜192d…第1半加算器〜第4半加算器
【技術分野】
【0001】
本発明は、パッキングされた可変長符号列に対してデパッキング及び可変長復号化を施す復号化回路に関する。
【背景技術】
【0002】
デジタルビデオ(DV)カメラにおいては、動画像データが動画像圧縮符号化回路により圧縮符号化されて磁気テープ等の記録媒体に記録される。圧縮符号化処理は、主に離散コサイン変換(DCT)、量子化、及び可変長符号化を順に行うことにより実行される。圧縮符号化処理の際には、1フレーム内における輝度信号及び色差信号はサンプリング数が異なるため、4つの輝度ブロックと2つの色差ブロックにより構成されるマクロブロック単位で圧縮符号化処理が実行される。可変長符号化後のマクロブロックにおいては、画像の複雑さ等により4つの輝度ブロックのそれぞれのビット長にばらつきが生じる。同様に2つの色差ブロックにおいてもビット長のばらつきが生じる。また、可変長符号化された動画像データ(以下において「可変長符号列」という。)が記録される磁気テープ上のトラックにおいて、各トラックの可変長符号列を記録するエリアは、シンクブロックと呼ばれる固定長エリアに分割されている。よって、可変長である1マクロブロック分の可変長符号列を固定長である1シンクブロックにパッキングする必要がある。
【0003】
一方、パッキングされた可変長符号列から動画像データを復号化するには、デパッキング及び可変長復号化等が必要となる。デパッキングされた可変長符号列はメモリに一旦格納され、可変長復号化が施される。第1の背景技術として、デパッキング処理及び可変長復号化処理を効率化し、メモリを削減する手法が提案されている(例えば、特許文献1参照。)。また、第2の背景技術として、デパッキング処理及び可変長復号化処理を更に効率化する手法が提案されている(例えば、特許文献2参照。)。
【0004】
しかしながら、第1及び第2の背景技術においては、復号化回路内の制御回路が複雑化するために復号化回路全体の動作周波数を向上させることが困難である。特に、デパッキング時において可変長符号列を連結する際、多ビットの減算回路が用いられるため、復号化回路の回路規模が増大する。更に、多ビットの減算回路を用いるためにキャリー伝播の遅延が生じ、復号化回路の遅延時間が増大する。高性能な減算回路を利用して遅延時間を削減することは可能であるが、回路規模の増大を招くこととなる。このように、回路規模の削減及び動作周波数の向上を実現可能な復号化回路の実現が望まれている。
【特許文献1】特開平8−275162号公報
【特許文献2】特開2003−111021号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
本発明は、回路規模の削減及び動作周波数の向上を実現可能な復号化回路を提供する。
【課題を解決するための手段】
【0006】
本発明の一態様は、固定長エリアにパッキングされた可変長符号列を受け取り、可変長復号化及びデパッキングを実行する復号化回路であって、(イ)可変長復号化が中断された時点における可変長符号列のビット位置のデータを保持する第1ビット位置テーブル;(ロ)デパッキング時において、ビット位置のデータの一部又は全部のビットから、可変長復号化の中断後に固定長エリア内に残った可変長符号列のビット長を算出するビット長算出回路を備える復号化回路であることを要旨とする。
【発明の効果】
【0007】
本発明によれば、回路規模の削減及び動作周波数の向上を実現可能な復号化回路を提供できる。
【発明を実施するための最良の形態】
【0008】
次に、図面を参照して、本発明の実施の形態を説明する。この実施の形態における図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。
【0009】
本発明の実施の形態に係る復号化回路1aは、図1に示すように、例えば入力用メモリ2と出力用メモリ3との間に接続される。入力用メモリ2には、例えばデジタルビデオカセットレコーダ・フォー・コンシューマユース(DVC)方式等のDVフォーマットに準拠して圧縮符号化及びパッキング等が施された可変長符号列STRが格納される。ここで「パッキング」とは、ブロック毎にビット長が異なる可変長符号列を、固定長エリアに格納するため、上限を超えて長い可変長符号列STRを途中で切断し、容量の余っている別の固定長エリアに格納する処理を意味する。復号化回路1aは、可変長符号列STRを受け取り、可変長復号化及びデパッキングを実行する。「デパッキング」とは、複数の固定長エリアに分割して記録された可変長符号列STRに対して、切り出し及び連結を行う処理を意味する。復号化回路1aは、可変長復号化が中断された時点における可変長符号列STRのビット位置のデータSTRPを保持する第1ビット位置テーブル18、及びデパッキング時において、可変長復号化が中断された時点における可変長符号列STRのビット位置のデータSTRPの一部又は全部のビットから、可変長復号化の中断後に固定長エリア内に残った可変長符号列STRのビット長BLENを算出するビット長算出回路19aを備える。「固定長エリア」とは、マクロブロックを構成する輝度ブロックと色差ブロックとに対応するシンクブロック中のエリアを意味する。1シンクブロックにおいては、例えば図2〜図7に示す第1輝度エリアAR1〜第4輝度エリアAR4、及び第1色差エリアAR5及び第2色差エリアAR6のそれぞれが「固定長エリア」となる。
【0010】
また、入力用メモリには1ビデオセグメント、即ち5シンクブロック分の可変長符号列STRが格納される。図2に示す第1輝度エリアAR1は、ビットB1〜ビットB112の112ビットの固定ビット長を有する。同様に、図2〜図5に示す第2輝度エリアAR2〜第4輝度エリアAR4は112ビットの固定ビット長をそれぞれ有する。これに対して図6に示す第1色差エリアAR5は、ビットB449〜ビットB528の80ビットの固定ビット長を有する。同様に、図7に示す第2色差エリアAR6は80ビットの固定ビット長を有する。
【0011】
図1に示す復号化回路1aは、固定長エリアの終端ビット位置データENDPを保持する第2ビット位置テーブル16を更に備える。入力用メモリ2に格納される1ビデオセグメント、即ち5シンクブロック分の可変長符号列STRのビット長は、3200ビット程度である。よって、3200ビットのビット長を2進数で表現するために、第1ビット位置テーブル18及び第2ビット位置テーブル16のそれぞれは、12ビットのビット幅をそれぞれ有している。
【0012】
また、復号化回路1aは、第1メモリ制御回路11、ストリーム制御回路12、可変長符号テーブル13、加算回路14、デパッキング制御回路15、セレクタ17、比較回路10、逆量子化/ジグザグスキャン制御回路20、及び第2メモリ制御回路21を更に備える。第1メモリ制御回路11、ストリーム制御回路12、可変長符号テーブル13、逆量子化/ジグザグスキャン制御回路20、及び第2メモリ制御回路21は、入力用メモリ2と出力用メモリ3との間において直列に接続される。可変長符号テーブル13としては、例えばハフマンテーブルが使用できる。加算回路14の入力は、第1ビット位置テーブル18及び可変長符号テーブル13のそれぞれの出力に接続される。比較回路10の入力は、加算回路14及び第2ビット位置テーブル16のそれぞれの出力に接続される。デパッキング制御回路15の入力は、比較回路10及び可変長符号テーブル13のそれぞれの出力に接続される。セレクタ17の入力は、デパッキング制御回路15、比較回路10、及び可変長符号テーブル13のそれぞれの出力に接続される。
【0013】
更に、第1メモリ制御回路11は、ストリーム制御回路12の制御下で、入力用メモリ2に対して可変長符号列STRの読み出し等を行う。ストリーム制御回路12は、第1ビット位置テーブル18が生成するストリーム制御データCTPに応じて、第1メモリ制御回路11からの可変長符号列STRを可変長符号テーブル13に伝達する。可変長符号テーブル13は、ストリーム制御回路12から伝達された可変長符号列STRを可変長復号化する。この結果、ゼロランレングスRL、係数値の振幅AMP、及び係数値の符号SGNの組が生成される。可変長符号テーブル13は、可変長符号語の符号長データLENを加算回路14に供給する。逆量子化/ジグザグスキャン制御回路20は、ゼロランレングスRL、係数値の振幅AMP、及び係数値の符号SGNの組を逆量子化し、ジグザグスキャン順に並べ替える。逆量子化/ジグザグスキャン制御回路20の出力データは、第2メモリ制御回路21を介して出力用メモリ3に書き込まれる。
【0014】
また、加算回路14は、第1ビット位置テーブル18からのストリーム制御データCTPと可変長符号テーブル13からの符号長データLENとを加算する。比較回路10は、加算回路14における加算結果と第2ビット位置テーブル16からの終端ビット位置データENDPとを比較し、加算回路14における加算結果が第2ビット位置テーブル16からの終端ビット位置データENDPよりも大きい場合、エリア境界検出フラグENDFを生成する。また、可変長符号テーブル13は、可変長符号列STR中にブロック終端符号(EOB)が検出された場合に終端符号検出フラグEOBFを生成する。デパッキング制御回路15は、エリア境界検出フラグENDF及び終端符号検出フラグEOBFに基づき、入力用メモリ2に格納された可変長符号列STRに対する読み出しを行うエリア番号AN、及び可変長復号後の係数値を格納するブロック番号BNを制御する。
【0015】
更に、第1ビット位置テーブル18及びストリーム制御回路12は、各固定長エリアに対して、エリア境界検出フラグENDF及び終端符号検出フラグEOBFのいずれかが生成されるまでの期間において、可変長符号テーブル13に可変長符号列STRを供給する。この結果、可変長符号列STRが可変長符号テーブル13により可変長復号化される。また、第1ビット位置テーブル18は、エリア境界検出フラグENDF及び終端符号検出フラグEOBFのいずれかが生成された時点のビット位置のデータSTRPを固定長エリア毎に保持する。
【0016】
デパッキング時において、ビット長算出回路19aは、可変長復号化の中断後に固定長エリア内に残った可変長符号列STRのビット長を算出する。復号化回路1aのデパッキング時における具体的な動作については後述する。ここで、可変長復号化の中断後に固定長エリア内に残った可変長符号列STRのビット長を算出する場合、固定長エリアの終端ビット位置から可変長復号化が中断されたビット位置を減算する処理が必要となる。よって、可変長復号化が中断されたビット位置をw_bitPtr(wire [11:0] w_bitPtr)、固定長エリアの終端ビット位置をw_bitEndPtr(wire [11:0] w_bitEndPtr)、及び可変長復号化の中断後に固定長エリア内に残った可変長符号列STRのビット長をbitLength(output [11:0] bitLength)とすると、レジスタトランスファレベル(RTL)におけるハードウェア記述言語(HDL)の論理式は:
output [11:0] bitLength;
wire [11:0] w_bitPtr;
wire [11:0] w_bitEndPtr;
assign bitLength = w_bitEndPtr - w_bitPtr; ・・・・・(1)
となる。式(1)において、記号“[11:0]”は、データ幅が0ビット〜11ビットの合計12ビットであることを意味している。式(1)に示すHDLの論理式を論理合成した場合、12個のインバータと12個の全加算器(FA)を有する通常の12ビットの減算器(図示省略)が設計される。
【0017】
また、式(1)において、減算処理は2の補数表現で行われるため、ビット反転と論理値“1”の加算に置き換えられる。即ち、式(1)は:
bitLength[11:0] = w_bitEndPtr[11:0] + ~w_bitPtr[11:0] + 12'h1; ・・・(2)
と置き換えることができる。式(2)において記号“~”は、ビット反転を表す。ここで、DVC方式等のDVフォーマットにおいては、可変長符号語のビット長は最大で16ビットである。デパッキング時に可変長符号列STRの連結が行われる場合、連結対象となる可変長符号列STRは、1可変長符号語に満たない可変長符号列STRである。したがって、デパッキング時において連結対象となる可変長符号列STRのビット長は、15ビット以下に制限される。ビット長(15)10を2進数で表現すると(1111)2となり、ビット長算出回路19aが算出するビット長は4ビットで足りることとなる。よって、式(2)においては上位8ビットが不要であるため:
bitLength[3:0] = w_bitEndPtr[3:0] + ~w_bitPtr[3:0] + 4'h1; ・・・・・(3)
と書き換えることができる。
【0018】
更に、DVC方式等のDVフォーマットにおいては、図2〜図5に示す各輝度エリアのビット長は112ビットであり、図6及び図7に示す各色差エリアのビット長は80ビットである。したがって、各固定長エリアの終端ビット位置は16ビットの倍数となる。16ビットの倍数を2進数で表現した場合、下位4ビットはゼロである。よって、式(3)は:
bitLength[3:0] = ~w_bitPtr[3:0] + 4'h1; ・・・・・(4)
と書き換えることができる。この結果、式(1)は:
output [ 3:0] bitLength;
wire [11:0] w_bitPtr;
assign bitLength = ~w_bitPtr[3:0] + 4'h1; ・・・・・(5)
と書き換えられる。式(5)に示すHDLの論理式を論理合成した場合、図8に示すビット長算出回路19aが設計される。
【0019】
図8に示すビット長算出回路19aは、第1インバータ191a〜第4インバータ191d、及び第1半加算器(HA)192a〜第4HA192dを備える。第1インバータ191aは、可変長復号化が中断されたビット位置のデータSTRPの最下位ビットB0を反転する。第2インバータ191bは、可変長復号化が中断されたビット位置のデータSTRPの第2ビットB1を反転する。第3インバータ191cは、可変長復号化が中断されたビット位置のデータSTRPの第3ビットB2を反転する。第4インバータ191dは、可変長復号化が中断されたビット位置のデータSTRPの第4ビットB3を反転する。
【0020】
また、第1HA192aは、論理値“1”と第1インバータ191aの出力値とを加算する。第2HA192bは、第1HA192aの桁上がり値と第2インバータ191bの出力値とを加算する。第3HA192cは、第2HA192bの桁上がり値と第3インバータ191cの出力値とを加算する。第4HA192dは、第3HA192cの桁上がり値と第4インバータ191dの出力値とを加算する。第1HA192aの出力値S0、第2HA192bの出力値S1、第3HA192cの出力値S2、第4HA192dの出力値S3は、ビット長データBLENとして図1に示すストリーム制御回路12に供給される。
【0021】
更に、ビット長算出回路19aと通常の12ビットの減算器とを比較した場合、加算器の個数が12個から4個に削減されているのに加え、加算器の種類がFAからHAとなっている。したがって、ビット長算出回路19aは、通常の12ビット減算器と比して回路規模が1/3以下に削減される。
【0022】
次に、図9に示すフローチャートを参照して、本発明の実施の形態に係る復号化回路1aの動作の概要を説明する。但し、復号化回路1aが、図2〜図7に示す1シンクブロック分の可変長符号列に対してデパッキング及び可変長復号化する場合を例に説明する。この場合、図1に示す第2ビット位置テーブル18には、図10(a)に示すように、第1輝度エリアAR1〜第2色差エリアAR2のそれぞれの終端ビット位置のデータENDPが予め格納されている。
【0023】
(イ)図9のステップS11において、図1に示すストリーム制御回路12は、入力用メモリ2から第1メモリ制御回路11を介して1固定長エリア分の可変長符号列STRを読み込む。一例として、図2に示す第1輝度エリアAR1に相当する可変長符号列STRがストリーム制御回路12に供給される。読み込まれた可変長符号列STRは、ストリーム制御回路12において一旦保持される。ストリーム制御回路12により保持された可変長符号列STRは、第1ビット位置テーブル18からのストリーム制御データCTPに応じて図1に示す可変長符号テーブル13に供給される。
【0024】
(ロ)ステップS12において、可変長符号テーブル13は、読み込まれた可変長符号列STRのビット長のデータLENを加算回路14に供給する。ステップS13において、エリア境界検出フラグENDF又は終端符号検出フラグEOBFが生成されるまでの期間において、可変長符号列STR内の各可変長符号語に対する可変長復号化が繰り返される。エリア境界検出フラグENDF又は終端符号検出フラグEOBFが生成された場合、ステップS14に進む。ここで、図2に示す第1輝度エリアAR1において、ビットB110〜ビットB112以後の可変長符号列は、パッキングにより他の固定長エリア、例えば図3に示す第2輝度エリアAR2に格納されている。よって、図10(c)に示すように、比較回路10によりエリア境界検出フラグENDFが生成され、第1輝度エリアAR1における可変長復号化がビットB109において中断される。この結果、第1ビット位置テーブル18は、図10(b)に示すように、ビットB109のビット位置のデータSTRPとして(109)10を記憶する。
【0025】
(ハ)ステップS14において、1ビデオセグメント分の固定長エリアに相当する可変長符号列STRの読み出しが終了したか否か判定される。1ビデオセグメント分の固定長エリアに相当する可変長符号列STRの読み出しが終了したと判定された場合、ステップS16に進む。1ビデオセグメント分の固定長エリアに相当する可変長符号列STRの読み出しが終了していないと判定された場合、ステップS15に進む。
【0026】
(ニ)ステップS15においては、図1に示すデパッキング制御回路15からの読み出しエリア番号ANがインクリメントされる。読み出しエリア番号ANがインクリメントされると、ステップS11に処理が戻り、例えば図3に示す第2輝度エリアAR2が読み出される。第2輝度エリアAR2において、可変長符号テーブル13は、図10(d)に示すように、ビットB184〜ビットB187はEOBであると判断して終端符号検出フラグEOBFを生成する。尚、EOBは例えば4ビットの固定ビット長を有する。この結果、第2輝度エリアAR2における可変長復号化がビットB187において中断される。第2輝度エリアAR2における可変長復号化が中断されると、第1ビット位置テーブル18は図10(b)に示すように、ビットB187のビット位置のデータSTRPとして(187)10を記憶する。同様にしてステップS11〜ステップS15の処理が繰り返される。この結果、第1ビット位置テーブル18は図10(b)に示すように、図4に示す第3輝度エリアAR3においてはデータSTRPとして(326)10、図5に示す第4輝度エリアAR4においてはデータSTRPとして(443)10、第1色差エリアAR5においてはデータSTRPとして(509)10、及び第2色差エリアAR6においてはデータSTRPとして(594)10を記憶する。
【0027】
(ホ)ステップS16において、デパッキング制御回路15は、図2〜図7に示す第1輝度エリアAR1〜第2色差エリアAR6の内、連結する2つの固定長エリアを選択する。ここで、デパッキング制御回路15は、終端符号検出フラグEOBFが生成された固定長エリアとエリア境界検出フラグENDFが生成された固定長エリアとを1つずつ選択する。一例として、図2に示す第1輝度エリア及び図3に示す第2輝度エリアAR2が選択されたとする。尚、デパッキング制御回路15は、第1ビット位置テーブル18を用いて、終端符号検出フラグEOBFが生成された固定長エリア内の可変長符号列STRに対し、エリア境界検出フラグENDFが生成された固定長エリア内の可変長符号列STRを連結するようにストリーム制御回路12を制御する。
【0028】
(ヘ)ステップS17において、ビット長算出回路19aは、エリア境界検出フラグENDFが生成された固定長エリア、即ち第1輝度エリアAR1内に残った可変長符号列STRのビット長BLENを算出する。図10(a)及び図10(b)に示すように、第1輝度エリアARのデータSTRPは(109)10であり、2進数で表現すると(1101101)2となる。図8に示すビット長算出回路19aには、(1101101)2の下位4ビット、即ち(1101)2が供給される。(1101)2は第1インバータ191a〜第4インバータ191dによりビット反転され、(0010)2となる。第1インバータ191a〜第4インバータ191dの出力値(0010)2は、第1HA192a〜第4HA192dにより論理値(1)2が加算され、(0011)2となる。(0011)2を10進数で表現すると(3)10となる。即ち、データENDP(112)10−データSTRP(109)10の演算結果(3)10と等しくなる。このように、ビット長算出回路19aは、データSTRPの下位4ビットから、第1輝度エリアAR1内に残った可変長符号列STRのビット長BLENを算出する。
【0029】
(ト)ステップS18において、ストリーム制御回路12は、連結後に固定長エリア内に残る可変長符号列STRのビット長を算出する。図11に示す例においては、連結後に固定長エリア内に残る可変長符号列STRのビット長は、ビットB187のビット位置(187)10からビット長算出回路19aが算出したビット長BLEN(3)10を減算することにより算出される。この場合、連結後の残りビット長は(184)10となる。ステップS19において、ストリーム制御回路12は、ステップS16で選択された2つの可変長符号列を連結する。
【0030】
(チ)ステップS20において、ストリーム制御回路12は、可変長符号テーブル13に連結後の可変長符号列STRを供給する。図11に示す例において、ストリーム制御回路12は、ステップS18で算出された連結後の残りビット長(184)10に応じて、可変長符号テーブル13に連結後の可変長符号列STRをビットB185から供給する。この結果、連結後の可変長符号列STRが可変長符号テーブル13により可変長復号化される。連結後の可変長符号列STRの可変長復号化は、ステップS21において終端符号検出フラグEOBF又はエリア境界検出フラグENDFが生成されるまで継続される。終端符号検出フラグEOBF又はエリア境界検出フラグENDFが生成されると、ステップS22に処理が進む。
【0031】
(リ)ステップS22においては、2つの固定長エリアのそれぞれのビット位置のデータSTRPが更新される。ステップS21においてエリア境界検出フラグENDFが生成された場合はENDFが、終端符号検出フラグEOBFが生成された場合はEOBFが、それぞれ図10(c)又は図10(d)に記録される。ステップS22において1ビデオセグメント分の可変長符号列STRに対して可変長復号化が終了していないと判定された場合、ステップS16に処理が戻る。一方、ステップS22において1ビデオセグメント分の可変長符号列STRに対して可変長復号化が終了したと判定された場合、処理が一旦終了する。更に、図1に示す入力用メモリ2に新たな1ビデオセグメント分の可変長符号列STRが格納され、ステップS11から処理が再開される。
【0032】
上述したように、ビット長算出回路19aが、通常の12ビットの減算器と比して回路規模が1/3以下に削減されているため、図9のステップS17に要する処理時間を1/3以下に削減できる。また、通常の12ビットの減算器を使用した場合、図1に示す第2ビット位置テーブル16、セレクタ17、第1ビット位置テーブル18、及びビット長算出回路19aの全体のゲート数は、表1(b)に示すように7965個である。一方、同様の条件で通常の12ビットの減算器を使用した場合、表1(a)に示すように、ゲート数は8650個となる。よって、ゲート数が10%程度削減されていることが分かる。
【0033】
【表1】
【0034】
更に、表1(a)に示す比較例において、最大遅延時間は3.02nsである。但し、プロセスを0.13μmとしている。一方、図8に示すビット長算出回路19aを使用した場合、最大遅延時間は2.60nsとなり、最大遅延時間が14%程度短縮されている。
【0035】
更に、ビット長算出回路19aが生成するビット長データBLENのビット幅は4ビットであるため、ストリーム制御回路12が、図9のステップS18の処理を実行する際の負担を軽減することができる。したがって、表2に示すように、デパッキングを1段階で実行可能であり、メモリアクセス負荷が少なく、高速・小面積な復号化回路1aを提供できる:
【0036】
【表2】
【0037】
(第1の変形例)
本発明の実施の形態の第1の変形例に係る復号化回路1bとして図12に示すように、ビット長算出回路19bの入力が、第2ビット位置テーブル16の出力に接続される構成でも良い。ビット長算出回路19bは、図13に示すように、データSTRPの下位4ビットB0〜B3とデータENDPの下位4ビットA0〜A3とを用いて、ビット長BLENを算出する。
【0038】
具体的にはビット長算出回路19bは、第1インバータ191a〜第4インバータ191d、及び第1FA193a〜第4FA193dを備える。第1FA193aは、論理値“1”、第1インバータ191aの出力値、及びデータENDPの最下位ビットA0を加算する。第2FA193bは、第1FA193aの桁上がり値、第2インバータ191bの出力値、及びデータENDPの第2ビットA1を加算する。第3FA193cは、第2FA193bの桁上がり値、第3インバータ191cの出力値、及びデータENDPの第3ビットA2とを加算する。第4FA193dは、第3FA193cの桁上がり値、第4インバータ191dの出力値、及びデータENDPの第4ビットA3とを加算する。第1FA193aの出力値S0、第2FA193bの出力値S1、第3FA193cの出力値S2、第4FA193dの出力値S3は、ビット長データBLENとして図1に示すストリーム制御回路12に供給される。
【0039】
図13に示すビット長算出回路19bは、規格上、各固定長エリアの終端ビット位置が16ビットの倍数でない場合であっても、可変長符号語の最大長が16ビットであれば利用できる。
【0040】
(第2の変形例)
本発明の実施の形態の第2の変形例に係る復号化回路として図14に示すように、ビット長算出回路19cにデータSTRPの全部のビットを供給する構成でも良い。データENDPの下位4ビットはゼロであることから、式(2)は:
bitLength[11:0] = {w_bitEndPtr[11:4],4’b0000}+ ~w_bitPtr[11:0] + 12'h1; ・・・・・(6)
と書き換え可能なためである。
【0041】
図14に示すビット長算出回路19cは、図8に示す第1インバータ191a〜第4インバータ191d及び第1HA192a〜第4HA192dに加えて、第5インバータ191e〜第12インバータ191l及び第5FA192e〜第12FA192lを備える。第5インバータ191eは、データSTRPの第5ビットB4を反転する。第6インバータ191fは、データSTRPの第6ビットB5を反転する。第7インバータ191gは、データSTRPの第7ビットB6を反転する。第8インバータ191hは、データSTRPの第8ビットB7を反転する。第9インバータ191iは、データSTRPの第9ビットB8を反転する。第10インバータ191jは、データSTRPの第10ビットB9を反転する。第11インバータ191kは、データSTRPの第11ビットB10を反転する。第12インバータ191lは、データSTRPの第12ビット(最上位ビット)B11を反転する。
【0042】
また、第5FA192eは、第4HA192dの桁上がり値、第5インバータ191eの出力値、及びデータENDPの第5ビットA4を加算する。第6FA192fは、第5FA192eの桁上がり値、第6インバータ191fの出力値、及びデータENDPの第6ビットA5を加算する。第7FA192gは、第6FA192fの桁上がり値、第7インバータ191gの出力値、及びデータENDPの第7ビットA6を加算する。第8FA192hは、第7FA192gの桁上がり値、第8インバータ191hの出力値、及びデータENDPの第8ビットA7を加算する。第9FA192iは、第8FA192hの桁上がり値、第9インバータ191iの出力値、及びデータENDPの第9ビットA8を加算する。第10FA192jは、第9FA192iの桁上がり値、第10インバータ191jの出力値、及びデータENDPの第10ビットA9を加算する。第11FA192kは、第10FA192jの桁上がり値、第11インバータ191kの出力値、及びデータENDPの第11ビットA10を加算する。第12FA192lは、第11FA192kの桁上がり値、第12インバータ191lの出力値、及びデータENDPの第12ビットA11を加算する。
【0043】
図14に示すビット長算出回路19cは、規格上、可変長符号語の最大長が16ビットでない場合であっても、各固定長エリアの終端ビット位置が16ビットの倍数であれば利用できる。
【0044】
(その他の実施の形態)
上記のように、本発明は実施の形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなろう。
【0045】
上述した実施の形態においては、復号化回路が、DVC方式に準拠して可変長符号化及びパッキングされた画像データに対し、デパッキング及び可変長復号化処理を行う場合を例に説明した。しかしながら、復号化回路をDVC方式以外のDVフォーマットに応用しても良い。可変長符号語の最大長が16ビットでない場合、ビット長算出回路19aは、可変長符号語の最大ビット長−1を格納可能なビット数をNとして、ビット位置のデータSTRPの下位Nビットを用いてビット長BLENを算出すれば良い。ここで、「可変長符号語の最大ビット長−1を格納可能なビット数」とは、例えば可変長符号語の最大ビット長が(16)10ビットである場合、16−1=(15)10を2進数表記にする際に必要なビット長を意味する。上述したように、(15)10を2進数表記にすると(1111)2となり、「可変長符号語の最大ビット長−1を格納可能なビット数」は4となる。
【0046】
このように本発明は、ここでは記載していない様々な実施の形態等を包含するということを理解すべきである。したがって、本発明はこの開示から妥当な特許請求の範囲の発明特定事項によってのみ限定されるものである。
【図面の簡単な説明】
【0047】
【図1】本発明の実施の形態に係る復号化回路の構成を示すブロック図である。
【図2】本発明の実施の形態に係る復号化回路に供給される第1輝度エリアのデータ構造例を示す模式図である。
【図3】本発明の実施の形態に係る復号化回路に供給される第2輝度エリアのデータ構造例を示す模式図である。
【図4】本発明の実施の形態に係る復号化回路に供給される第3輝度エリアのデータ構造例を示す模式図である。
【図5】本発明の実施の形態に係る復号化回路に供給される第4輝度エリアのデータ構造例を示す模式図である。
【図6】本発明の実施の形態に係る復号化回路に供給される第1色差エリアのデータ構造例を示す模式図である。
【図7】本発明の実施の形態に係る復号化回路に供給される第2色差エリアのデータ構造例を示す模式図である。
【図8】本発明の実施の形態に係るビット長算出回路の構成を示す回路図である。
【図9】本発明の実施の形態に係る復号化回路の動作の概要を説明するフローチャートである。
【図10】本発明の実施の形態に係る復号化回路の機能を説明するための表である。
【図11】本発明の実施の形態に係る復号化回路のデパッキング時の動作を説明するための模式図である。
【図12】本発明の実施の形態の第1の変形例に係る復号化回路の構成を示すブロック図である。
【図13】本発明の実施の形態の第1の変形例に係るビット長算出回路の構成を示す回路図である。
【図14】本発明の実施の形態の第2の変形例に係るビット長算出回路の構成を示す回路図である。
【符号の説明】
【0048】
1a、1b…復号化回路
16…第2ビット位置テーブル
18…第1ビット位置テーブル
19a〜19c…ビット長算出回路
191a〜191d…第1インバータ〜第4インバータ
192a〜192d…第1半加算器〜第4半加算器
【特許請求の範囲】
【請求項1】
固定長エリアにパッキングされた可変長符号列を受け取り、可変長復号化及びデパッキングを実行する復号化回路であって、
前記可変長復号化が中断された時点における前記可変長符号列のビット位置のデータを保持する第1ビット位置テーブルと、
前記デパッキング時において、前記ビット位置のデータの一部又は全部のビットから、前記可変長復号化の中断後に前記固定長エリア内に残った前記可変長符号列のビット長を算出するビット長算出回路
とを備えることを特徴とする復号化回路。
【請求項2】
前記可変長符号列を構成する可変長符号語の最大ビット長−1を格納可能なビット数をNとして、前記ビット長算出回路は、前記ビット位置のデータの下位Nビットを用いて前記ビット長を算出することを特徴とする請求項1に記載の復号化回路。
【請求項3】
前記固定長エリアの終端ビット位置のデータを保持する第2ビット位置テーブルを更に備え、前記ビット長算出回路は、前記ビット位置のデータの一部のビットと前記終端ビット位置のデータの一部のビットとを用いて前記ビット長を算出することを特徴とする請求項1に記載の復号化回路。
【請求項4】
前記固定長エリアの終端ビット位置のデータを保持する第2ビット位置テーブルを更に備え、前記ビット長算出回路は、前記ビット位置のデータの全部のビットと前記終端ビット位置のデータの一部のビットとを用いて前記ビット長を算出することを特徴とする請求項1に記載の復号化回路。
【請求項5】
前記ビット長算出回路は、
前記ビット位置のデータの最下位ビット〜第Nビットをそれぞれ反転する第1〜第Nインバータと、
前記第1〜第Nインバータの出力信号をそれぞれ受け取る第1〜第N半加算器
とを備えることを特徴とする請求項2に記載の復号化回路。
【請求項1】
固定長エリアにパッキングされた可変長符号列を受け取り、可変長復号化及びデパッキングを実行する復号化回路であって、
前記可変長復号化が中断された時点における前記可変長符号列のビット位置のデータを保持する第1ビット位置テーブルと、
前記デパッキング時において、前記ビット位置のデータの一部又は全部のビットから、前記可変長復号化の中断後に前記固定長エリア内に残った前記可変長符号列のビット長を算出するビット長算出回路
とを備えることを特徴とする復号化回路。
【請求項2】
前記可変長符号列を構成する可変長符号語の最大ビット長−1を格納可能なビット数をNとして、前記ビット長算出回路は、前記ビット位置のデータの下位Nビットを用いて前記ビット長を算出することを特徴とする請求項1に記載の復号化回路。
【請求項3】
前記固定長エリアの終端ビット位置のデータを保持する第2ビット位置テーブルを更に備え、前記ビット長算出回路は、前記ビット位置のデータの一部のビットと前記終端ビット位置のデータの一部のビットとを用いて前記ビット長を算出することを特徴とする請求項1に記載の復号化回路。
【請求項4】
前記固定長エリアの終端ビット位置のデータを保持する第2ビット位置テーブルを更に備え、前記ビット長算出回路は、前記ビット位置のデータの全部のビットと前記終端ビット位置のデータの一部のビットとを用いて前記ビット長を算出することを特徴とする請求項1に記載の復号化回路。
【請求項5】
前記ビット長算出回路は、
前記ビット位置のデータの最下位ビット〜第Nビットをそれぞれ反転する第1〜第Nインバータと、
前記第1〜第Nインバータの出力信号をそれぞれ受け取る第1〜第N半加算器
とを備えることを特徴とする請求項2に記載の復号化回路。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2006−86723(P2006−86723A)
【公開日】平成18年3月30日(2006.3.30)
【国際特許分類】
【出願番号】特願2004−268486(P2004−268486)
【出願日】平成16年9月15日(2004.9.15)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
【公開日】平成18年3月30日(2006.3.30)
【国際特許分類】
【出願日】平成16年9月15日(2004.9.15)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
[ Back to top ]