(57)【特許請求の範囲】
【請求項１】
外部装置からの映像圧縮情報のビットストリームを記憶するレジスタと、
１マシンサイクル当たりｎバイト単位で、信号を上位方向にシフトする第１のシフトレジスタと、
第１のシフトレジスタの最下位から所定の区間内において、連続する所定のビット数の空き区間を選択し、第１のレジスタの信号を前記第１のシフトレジスタの空き区間の上位側から順次格納する第１の選択手段と、
１マシンサイクル当たり任意のビット数単位で、信号を上位方向にシフトする第２のシフトレジスタと、
第２のシフトレジスタの最下位から所定の区間内において、連続する所定のビット数の空き区間を選択し、第１のシフトレジスタの信号を前記第２のシフトレジスタの空き区間の上位側から順次格納する第２の選択手段と、
第２のシフトレジスタにおいて、連続する所定のビット数の信号を選択する第３の選択手段と、
第３の選択手段によって選択された信号が可変長符号の場合で復号可能な場合には、復号処理を行い、同時に、可変長符号の符号長を示す符号長情報を出力する可変長符号復号手段と、
前記可変長符号復号手段により可変長符号の復号処理が行われている間には、第１のシフトレジスタから連続する所定のビット数の信号を選択し出力し、前記復号処理が終了すると、第３の選択手段から入力される信号を出力する第４の選択手段と、
第４の選択手段により選択された第１のシフトレジスタの信号または第２のシフトレジスタの信号を特定ビットパターンと比較し、一致検出を行うコード検出手段と、
前記コード検出手段により第１のシフトレジスタにおける特定ビットパターンの信号が検出され、該特定ビットコードの最上位ビットの信号が第２のシフトレジスタに移動した場合、その時点で第２のシフトレジスタ内における特定ビットパターンの先頭ビット位置情報を設定し、第２のシフトレジスタにシフト処理が発生した場合に、シフト量に応じて前記先頭ビット位置情報を更新する特定ビットパターン位置情報管理手段と、
前記可変長符号復号手段からの可変長符号の符号長情報と、前記特定ビットパターン位置情報管理手段からの特定ビットパターンの先頭ビット位置情報より、第２のシフトレジスタにおいて可変長符号と特定ビットパターンにオーバーラップが発生していないかどうかを判定し、オーバーラップを検出した場合にはオーバーラップ通知信号を出力するオーバーラップ検出手段とを備えた、
ことを特徴とする可変長符号復号装置。
【請求項２】
請求項１記載の可変長符号復号装置において、
前記特定ビットパターン位置情報管理手段は、
第２のシフトレジスタにおける複数の特定ビットパターンの各先頭ビット位置情報を記憶する複数の記憶手段を備え、
前記オーバーラップ検出手段は、
前記複数の記憶手段に記憶される複数の先頭ビット位置情報の中で、前記第２のシフトレジスタの最上位に最も近い先頭ビット位置情報または全ての先頭ビット位置情報を用いて、第２のシフトレジスタにおいて可変長符号と特定ビットパターンとのオーバーラップが発生していないかどうかを判定する、
ことを特徴する可変長符号復号装置。
【請求項３】
請求項２記載の可変長符号復号装置において、
前記特定ビットパターン位置情報管理手段は、
特定ビットパターンの先頭が前記第２のシフトレジスタ内に存在しない場合は、前記複数の記憶手段の先頭ビット位置情報を初期化し、コード検出手段により特定ビットパターンの信号が検出される毎に、前記複数の記憶手段の中から先頭ビット位置情報が初期値である記憶手段を選び、前記先頭ビット位置情報を設定する、
ことを特徴とする可変長符号復号装置。
【請求項４】
請求項１乃至請求項３のいずれかに記載の可変長符号復号装置において、
前記可変長符号復号手段は、
前記第３の選択手段によって選択された可変長符号信号を復号する際、可変長符号のルックアップテーブル内に該当する符号が存在しない場合は、ルックアップテーブル内の可変長符号の最大符号長を前記オーバーラップ検出手段に出力する、
ことを特徴する可変長符号復号装置。
【請求項５】
請求項１乃至請求項３のいずれかに記載の可変長符号復号装置において、
前記可変長符号復号手段は、
前記第３の選択手段によって選択された可変長符号信号を復号する際、可変長符号のルックアップテーブル内に該当する符号が存在しない場合は、該選択された可変長符号とルックアップテーブル内の可変長符号との最上位ビットから連続して一致するビット数に１を加えた値を、前記オーバーラップ検出手段に出力する、
ことを特徴とする可変長符号復号装置。
【請求項６】
請求項１乃至請求項５のいずれかに記載の可変長符号復号装置において、
前記コード検出手段により第２のシフトレジスタにおける特定ビットパターンが検出された場合には、その時点でビットストリームのバイトアラインポイントを初期化し、第２のシフトレジスタにシフト処理が発生した場合には、シフト量に応じてバイトアラインポイントを更新するバイトアラインポイント管理手段を備えた、
ことを特徴とする可変長符号復号装置。
【請求項７】
請求項１乃至請求項６のいずれかに記載の可変長符号復号装置において、
前記バイトアラインポイント管理手段のバイトアラインポイント情報に従い、第２のシフトレジスタの最上位から最近隣のバイトアラインポイントを基点とし、連続する所定ビット数の信号と特定ビットパターンとを比較し、一致検出を行う第３の同期語検出手段とを備えた、
ことを特徴とする可変長符号復号装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はＭＰＥＧ規格による画像圧縮ビットストリームの可変長符号復号装置に関するものである。
【０００２】
【従来の技術】
ＭＰＥＧ規格（藤原洋監修「最新ＭＰＥＧ教科書」（アスキー）、三木弼一編著「ＭＰＥＧ−４のすべて」（工業調査会）等に記載されている詳細は避ける。）による画像圧縮ビットストリームの中には、画面などの情報の開始位置や、以降のビットストリームに含まれているデータの種類を識別するために、特定のビットパターンを持った固定長のコード（以後、スタートコードと言う）が挿入されている。圧縮された画像情報を復号する際は、このスタートコードを検出し、それに続く情報（以後、スタートコード・バリュと言う）に基づき復号化処理を行う。スタートコードの構成は図７(a)に示すように“０”が２３個と“１”が１個の計２４ビットに８ビットのスタートコード・バリュが付加されている。ＭＰＥＧ４（Moving Picture Experts Group 4）を例にすると、規格化されているスタートコードは図７(b)のようなものがある。
【０００３】
スタートコードは、他のデータと明確に区別できるように、次のような施策がなされている。他のデータには現れにくいビットパターンが採用されている。また、画像情報の符号化処理の過程で、符号語の組み合わせによってはスタートコードと同じビットパターンになってしまう場合があるが、それによるエミュレートを回避するために、符号化器では、エミュレートの可能性がある符号語には１ビットのビット列を挿入する。また、スタートコード，シンクマーカー等の同期語は、図６に示すようにそれぞれ同期語の先頭間の距離は８の正の整数倍になるように配置される。
【０００４】
従来のコード検出装置は以上のような同期語の検出を行う場合、あるビット長のビットストリームを１ビット／サイクルまたは８ビット／サイクルのシフトレジスタを用い、例えばシフトレジスタの先頭から３２ビットのビット列に対して、同期語のパターンと一致しているかどうかの検査を行っている。
【０００５】
【発明が解決しようとする課題】
通信状態の悪化などによる伝送エラー等でビットストリーム内の画像圧縮情報（固定長、可変長符号）と同期語にオーバーラップが発生する場合がある。
例として可変長符号と同期語にオーバーラップが発生している状態について図を用いて説明すると、まず、図４(a)は、オーバーラップが発生していない正常なビットストリームを表す。可変長符号５００の後に３２ビットの同期語５０１が続いている。一方、図４(b)は、オーバーラップが発生しているビットストリームを表す。可変長符号５１０の最下位から３ビットのデータと後に続く３２ビットの同期語５１１の最上位から３ビットがオーバーラップしている。図４(b)に示すような状況を検知し、さらに可変長符号に続く同期語を検出することが、画像復号処理の効率向上と復号画像の画質劣化を抑えることにつながる。
【０００６】
しかしながら、上述のような、従来の同期語検出装置は、ビットストリーム内の画像圧縮情報（固定長、可変長符号）と同期語にオーバーラップが発生した場合、同期語を検出できないものがあった。また、同期語の検出が行えても画像圧縮情報と同期語がオーバーラップしている状態を検出することができなかった。
【０００７】
同期語は以降の画像復号処理を示す重要な情報であるため、同期語の未検出または誤検出は、以降の画像復号処理に影響を及ぼす可能性は大きく、画像復号処理の効率低下と復号した画像の品質を劣化させる要因となる。また、可変長符号と同期語がオーバーラップするといったエラーを検出できないため、本来、エラー検出後、直ちに画像復号処理を中断すべきところで、そのまま処理を続行してしまい、誤った復号画像を生成し、出力画像の品質を劣化させる場合があった。
【０００８】
従って、本発明は、上述した問題点を解消するためになされたものであり、画像圧縮情報と同期語にオーバーラップが発生している場合に、同期語の検出と、画像圧縮情報と同期語がオーバーラップするようなエラーを検出することのできる可変長符号復号装置を提供することを目的とする。
【０００９】
また、従来の同期語検出装置であれば、データを破棄しながら、同期語の探索を行う。また、同期語を検出するまで前述の処理を続けてしまうため、最近隣のバイトアラインポイントに同期語が存在しているかどうか確認することは不可能であった。
本発明は、上述した問題点を解消するためになされたものであり、最近隣のバイトアラインポイントに同期語の存在を効率良く確認することが可能な可変長符号復号装置を提供することも目的とする。
【００１０】
【課題を解決するための手段】
本発明は、上記目的を達するためになされたものであり、請求項１に係る可変長符号復号装置は、外部装置からの映像圧縮情報のビットストリームを記憶するレジスタと、１マシンサイクル当たりｎバイト単位で、信号を上位方向にシフトする第１のシフトレジスタと、第１のシフトレジスタの最下位から所定の区間内において、連続する所定のビット数の空き区間を選択し、第１のレジスタの信号を前記第１のシフトレジスタの空き区間の上位側から順次格納する第１の選択手段と、１マシンサイクル当たり任意のビット数単位で、信号を上位方向にシフトする第２のシフトレジスタと、第２のシフトレジスタの最下位から所定の区間内において、連続する所定のビット数の空き区間を選択し、第１のシフトレジスタの信号を前記第２のシフトレジスタの空き区間の上位側から順次格納する第２の選択手段と、第２のシフトレジスタにおいて、連続する所定のビット数の信号を選択する第３の選択手段と、第３の選択手段によって選択された信号が可変長符号の場合で復号可能な場合には、復号処理を行い、同時に、可変長符号の符号長を示す符号長情報を出力する可変長符号復号手段と、前記可変長符号復号手段により可変長符号の復号処理が行われている間には、第１のシフトレジスタから連続する所定のビット数の信号を選択し出力し、前記復号処理が終了すると、第３の選択手段から入力される信号を出力する第４の選択手段と、第４の選択手段により選択された第１のシフトレジスタの信号または第２のシフトレジスタの信号を特定ビットパターンと比較し、一致検出を行うコード検出手段と、前記コード検出手段により第１のシフトレジスタにおける特定ビットパターンの信号が検出され、該特定ビットコードの最上位ビットの信号が第２のシフトレジスタに移動した場合、その時点で第２のシフトレジスタ内における特定ビットパターンの先頭ビット位置情報を設定し、第２のシフトレジスタにシフト処理が発生した場合に、シフト量に応じて前記先頭ビット位置情報を更新する特定ビットパターン位置情報管理手段と、前記可変長符号復号手段からの可変長符号の符号長情報と、前記特定ビットパターン位置情報管理手段からの特定ビットパターンの先頭ビット位置情報より、第２のシフトレジスタにおいて可変長符号と特定ビットパターンにオーバーラップが発生していないかどうかを判定し、オーバーラップを検出した場合にはオーバーラップ通知信号を出力するオーバーラップ検出手段とを備えた、ことを特徴とするものである。これにより、精度の高いオーバーラップ検出を行うことができ、画像圧縮情報の復号画像の品質向上を図ることができる。
【００１１】
本発明の請求項２に係る可変長符号復号装置は、請求項１記載の可変長符号復号装置において、前記特定ビットパターン位置情報管理手段は、第２のシフトレジスタにおける複数の特定ビットパターンの各先頭ビット位置情報を記憶する複数の記憶手段を備え、前記オーバーラップ検出手段は、前記複数の記憶手段に記憶される複数の先頭ビット位置情報の中で、前記第２のシフトレジスタの最上位に最も近い先頭ビット位置情報または全ての先頭ビット位置情報を用いて、第２のシフトレジスタにおいて可変長符号と特定ビットパターンとのオーバーラップが発生していないかどうかを判定する、ことを特徴するものである。これにより、第２のシフトレジスタに２つの同期語の先頭ビットが存在しても、双方の同期語と可変長符号のオーバーラップを検出することが可能となる。
【００１２】
本発明の請求項３に係る可変長符号復号装置は、請求項２記載の可変長符号復号装置において、前記特定ビットパターン位置情報管理手段は、特定ビットパターンの先頭が前記第２のシフトレジスタ内に存在しない場合は、前記複数の記憶手段の先頭ビット位置情報を初期化し、コード検出手段により特定ビットパターンの信号が検出される毎に、前記複数の記憶手段の中から先頭ビット位置情報が初期値である記憶手段を選び、前記先頭ビット位置情報を設定する、ことを特徴とするものである。これにより、同期語を検出した際に、既にいずれかの記憶手段に記憶されている先頭ビット位置情報へのオーバーライトを回避することができる。
【００１３】
本発明の請求項４に係る可変長符号復号装置は、請求項１乃至請求項３のいずれかに記載の可変長符号復号装置において、前記可変長符号復号手段は、前記第３の選択手段によって選択された可変長符号信号を復号する際、可変長符号のルックアップテーブル内に該当する符号が存在しない場合は、ルックアップテーブル内の可変長符号の最大符号長を前記オーバーラップ検出手段に出力する、ことを特徴するものである。これにより、可変長符号の復号処理にエラーが発生した場合でも、同期語と可変長符号のオーバーラップを検出でき、精度の高いオーバーラップ検出を実現する。
【００１４】
本発明の請求項５に係る可変長符号復号装置は、請求項１乃至請求項３のいずれかに記載の可変長符号復号装置において、前記可変長符号復号手段は、前記第３の選択手段によって選択された可変長符号信号を復号する際、可変長符号のルックアップテーブル内に該当する符号が存在しない場合は、該選択された可変長符号とルックアップテーブル内の可変長符号との最上位ビットから連続して一致するビット数に１を加えた値を、前記オーバーラップ検出手段に出力する、ことを特徴とするものである。これにより、可変長符号の復号処理にエラーが発生した場合でも、同期語と可変長符号のオーバーラップの誤検出を避けることができ、より精度の高いオーバーラップ検出を実現する。
【００１５】
本発明の請求項６に係る可変長符号復号装置は、請求項１乃至請求項５のいずれかに記載の可変長符号復号装置において、前記コード検出手段により第２のシフトレジスタにおける特定ビットパターンが検出された場合には、その時点でビットストリームのバイトアラインポイントを初期化し、第２のシフトレジスタにシフト処理が発生した場合には、シフト量に応じてバイトアラインポイントを更新するバイトアラインポイント管理手段を備えた、ことを特徴とするものである。これにより、次の同期語探索時に第２のシフトレジスタによりバイトアラインポイントが最上位になるようにデータをシフトさせて、第２のコード検出手段により同期語を検出することができ、同期語のエミュレート等による同期語の誤検出を防ぐことができる。
【００１６】
本発明の請求項７に係る可変長符号復号装置は、請求項１乃至請求項６のいずれかに記載の可変長符号復号装置において、前記バイトアラインポイント管理手段のバイトアラインポイント情報に従い、第２のシフトレジスタの最上位から最近隣のバイトアラインポイントを基点とし、連続する所定ビット数の信号と特定ビットパターンとを比較し、一致検出を行う第３の同期語検出手段とを備えた、ことを特徴とするものである。これにより、バイトアラインポイント毎に同期語の検出を行うことができ、効率的な同期語検出及び画像復号処理を行うことができる。
【００１７】
【発明の実施の形態】
（実施の形態１）
本発明の可変長符号復号装置には、可変長符号復号モードと同期語検出モード、最近隣のバイトアラインポイントを基点として同期語検出を行うモードがある。本発明の実施の形態１では、主に可変長符号復号モードについて説明し、他のモードについては後述する。
【００１８】
以下、図面を参照しながら、本発明の実施の形態１について説明する。
図１は本発明の実施の形態１による可変長符号復号装置の構成図である。図２は本発明の実施の形態１による可変長符号復号装置の可変長符号復号モード時の動作を表すフローチャートである。
【００１９】
まず、図１を参照しながら、本発明の実施の形態１の可変長符号復号装置において、ビットストリームのシフト処理を行う部分の構成及び動作について説明する。
レジスタ１００，第１のシフトレジスタ１０４，及び第２のシフトレジスタ１０９のレジスタ類には、最下位ビットから順に通し番号を付けてビット位置を明確にできるようにしている。これらのレジスタ類のレジスタ長や、データシフト処理を行う際のシフト処理は下記の値に限定されない。
【００２０】
レジスタ１００は、１６ビットのビットストリームを記憶するレジスタ群である。第１のシフトレジスタ１０４は、１マシンサイクルにつき８ビットシフトを行う４８ビットのシフトレジスタである。第１のセレクタ１０２は、第１のシフトレジスタ１０４の[22:0]区間内の任意の連続する１６ビット区間を選択して、その区間にレジスタ１００の[15:0]から入力される信号を格納する。ただし、第１のセレクタ１０２は、第１のシフトレジスタ１０４の[22:0]区間内で有効なデータが格納されていない連続する１６ビット区間の中で最も上位側を選択し、この[22:0]区間内の空いている部分の上位側に詰めてデータを格納し、逆に、[22:0]区間内で１６ビットの空きがない場合は、データの格納は行わない。
【００２１】
第２のシフトレジスタ１０９は、４８ビットのシフトレジスタである。第２のシフトレジスタ１０９の動作モードが１マシンサイクル当たり８ビットシフトの場合、第２のセレクタ１０６は、第２のシフトレジスタ１０９の[14:0]区間内の任意の連続する８ビット区間を選択して、その区間に第１のシフトレジスタ１０４の[47:40]から入力される８ビットの信号を格納する。ただし、第２のセレクタ１０６は、第２のシフトレジスタ１０９の[14:0]区間内で有効なデータが格納されていない連続する８ビット区間の中で最も上位側を選択し、この[14:0]区間内の空いている部分の上位側に詰めてデータを格納し、逆に[14:0]区間内で連続する８ビットの空きがない場合には、データの格納を行わない。
【００２２】
また、第２のシフトレジスタ１０９の動作モードが１マシンサイクル当たり１ビットシフトの場合、第２のセレクタ１０６は、第２のシフトレジスタ１０９の[0:0]を選択し、その区間に第１のシフトレジスタ１０４の[47:47]から入力される信号を格納し、逆に、第２のシフトレジスタ１０９の[0:0]が空いていなければ、データの格納を行わない。
【００２３】
全体の動作として、まず、第１のセレクタ１０２は、第１のシフトレジスタ１０４の[22:0]の連続する空きビット数を１６と比較評価し、連続する空きビット数が１６以上の場合には、レジスタ１００の１６ビットデータを第１のシフトレジスタ１０４の[22:0]の空き区間に格納し、第１のシフトレジスタ１０４の空きビット数に−１６を加算して更新する。その後、レジスタ１００には外部の記憶装置（図示せず）から１６ビットの新規なビットストリームが補充される。
【００２４】
次いで、第２のセレクタ１０６は、第２のシフトレジスタ１０９の下位側の空きビット数を第２のシフトレジスタ１０９の１ビット／８ビットのシフト量sftと比較評価し、空きビット数がsft以上の場合は、第１のシフトレジスタ１０４の[47:48-sft]に格納されるデータを第２のシフトレジスタ１０９の下位側の空き区間に格納し、第２のシフトレジスタ１０９の空きビット数に(-sft)を加算して更新する。その後、第１のシフトレジスタ１０４では上位方向にデータがsftビットシフトされ、第１のシフトレジスタ１０４の空きビット数にsftが加算される。
【００２５】
このように、本発明の可変長符号復号装置では、外部装置から入力されてくる画像圧縮ビットストリームのシフト処理を行いながら、データの同期語検出及び可変長符号の復号処理を行う。
【００２６】
次に、本発明の実施の形態１の可変長符号復号装置において、データの同期語検出及び可変長符号の復号処理を行う部分の構成及び動作について説明する。
第３のセレクタ１１１は、第２のシフトレジスタ１０９の[47:8]区間内の連続３２ビットデータを選択し出力する。第４のセレクタ１１７は、第１のシフトレジスタ１０４の[47:16]から入力される３２ビットデータの信号１０７と、第３のセレクタ１１１から入力された３２ビットデータの信号１１２のいずれかを選択し出力する。可変長符号復号モードにおいては、第４のセレクタ１１７により信号１０７が選択され、同期語探索モードと、最近隣のバイトアラインポイントを基点として同期語検出を行うモードにおいては、信号１１２が選択される。
【００２７】
同期語検出部１１９は、第４のセレクタ１１７により選択された３２ビットのデータから同期語の検出を行い、同期語を検出すると、それを通知する同期語検出信号１２１、及び同期語の種類を示す同期語種類通知信号１２０を出力する。
【００２８】
可変長符号復号部１１３は、第３のセレクタ１１１の出力データ１１２から可変長符号テーブルのインデックスとして得られた符号を復号信号１２５として出力し、また、同時に可変長符号の符号長を示す符号長通知信号１１４を出力する。なお、可変長符号復号部１１３は、第３のセレクタ１１１から受信した信号１１２に対応する符号が可変長符号テーブルに存在しない場合には、復号エラーを示す信号や、さらに可変長符号復号装置本体を停止させるための制御信号を本装置を制御するＣＰＵ（図示せず）に出力してもよい。
【００２９】
同期語位置管理部１２２は、第２のシフトレジスタ１０９内に存在する同期語の先頭ビット位置を管理する手段であり、同期語の先頭ビット位置情報を示す同期語先頭位置通知信号１２４を出力する。同期語位置管理部１２２は、同期語検出部１１９より出力される同期語検出信号１２１を受けて、同期語が第１のシフトレジスタ１０４において検出されたことを認識し、第１のシフトレジスタ１０４に存在する同期語の先頭が第２のシフトレジスタ１０９へ移動するタイミングで、第２のシフトレジスタ１０９内の同期語の先頭ビット位置を示す同期語先頭ポインタを設定する。この時、同期語位置管理部１２２は、同期語先頭ポインタとして第２のシフトレジスタ１０９の空きビット数を設定する。また、同期語位置管理部１２２は、第２のシフトレジスタ１０９がシフト処理を行う度に、例えばそのシフト量を同期語先頭ポインタに加算し更新するなど、シフト量を反映する機能を備える。
【００３０】
バイトアラインポイント管理部１２３は、第２のシフトレジスタ１０９の最上位から最近隣のバイトアラインポイントの位置情報を管理する手段である。実施の形態２で説明する同期語探索モードにおいて、同期語検出部１１９により第２のシフトレジスタ１０９から同期語が検出されると、そのタイミングで、バイトアラインポイント管理部１２３は、バイトアラインポイントを０に初期化する。また、バイトアラインポイント管理部１２３は、第２のシフトレジスタ１０９がシフト処理を行う度に、例えばそのシフト量をバイトアラインポイントに加算し、加算結果の最下位から３ビットの結果を新たなバイトアラインポイントに更新するなど、シフト量を反映する機能を備える。
【００３１】
オーバーラップ検出部１１５は、可変長符号と同期語のオーバーラップを検出する手段であり、オーバーラップを検出するとオーバーラップ発生を示すオーバーラップ通知信号１１６を出力する。オーバーラップの検出は、可変長符号復号部１１３からの符号長通知信号１１４と、同期語位置管理部１２２からの同期語先頭位置通知信号１２４から判定する。なお、オーバーラップ発生を検出した場合には、可変長符号復号装置本体を停止させるための制御信号を本装置を制御するＣＰＵ（図示せず）に出力してもよい。
【００３２】
本発明の実施の形態１における可変長符号復号モードの処理フローについて図２を参照しながら説明する。
可変長符号復号部１１３は、第３のセレクタ１１１から入力される可変長符号信号を復号し、可変長符号の符号長VLC_Lengthを取得し、符号長通知信号１１４を出力する。（ステップ２００）。
オーバーラップ検出部１１５は、第２のシフトレジスタ１０９内に存在する同期語先頭ポインタにVLC_Lengthを加えて値を評価し（ステップ２０１）、｛（同期語先頭ポインタ）+ VLC_Length｝ が４８以下の場合には、可変長符号と同期語にオーバーラップが発生していないと判断し、ステップＳ２０２に移行する。｛（同期語先頭ポインタ）+ sft｝ が４８以上の場合には、可変長符号と同期語にオーバーラップが発生、すなわち可変長符号ビット不足と判断し、オーバーラップ通知信号を出力し（ステップ２１０）、直ちに処理を終了する。
【００３３】
ステップ２０２において、可変長符号復号部１１３は、第３のセレクタ１１１から入力される可変長符号が可変長復号テーブルに存在しない場合は、可変長符号復号エラー通知信号を出力し（ステップ２０９）、可変長符号が可変長復号テーブルに存在する場合は、可変長符号に対応する復号信号１２５を出力する（ステップ２０３）。
【００３４】
バイトアラインポイント管理部１２３は、第２のシフトレジスタ１０９の最上位から最近隣に位置するバイトアラインポイントにVLC_Lengthを加算し、加算結果の最下位から３ビットを新規のバイトアラインポイントとする（ステップ２０４）。
【００３５】
同期語位置管理部１２２は、第２のシフトレジスタ２０９内に同期語が存在するかどうか、若しくは同期語検出部１１９により第１のシフトレジスタ２０４における同期語が検出され、同期語検出信号１２１を受信したかどうかを判定する（ステップ２０５）
【００３６】
具体的には、ステップ２０５において、第２のシフトレジスタ１０９の同期語先頭ポインタを０と比較評価し、同期語先頭ポインタが０でない場合は、第２のシフトレジスタ２０９内に同期語が存在すると判断し、同期語先頭ポインタにVLC_Lengthを加算し、同期語先頭ポインタを更新する（ステップ２０６）。また、ステップ２０５において、同期語検出部１１９により第１シフトレジスタ１０４から同期語が検出され、同期語検出部１１９から同期語検出信号１２１を受信した場合には、同期語先頭ポインタとして第２のシフトレジスタ１０９の下位側の空きビット数を設定する（ステップ２０６）。
【００３７】
逆に、同期語先頭ポインタが０であり、かつ、同期語検出部１１９により第１シフトレジスタ１０４から同期語が検出されなかった場合は、第２のシフトレジスタ１０９内に同期語の先頭は存在しないと判断し、同期語先頭ポインタの更新を行わず、ステップ２０７に移行する。
【００３８】
第２のシフトレジスタ１０９は、可変長符号の符号長分ビットシフトし、第２のシフトレジスタ１０９の空きビット数にVLC_Lengthを加算する（ステップ２０７）。
ステップ２０８において、第２のシフトレジスタ１０９の空き領域に第１のシフトレジスタ１０４から新規ビットストリームを補充する。
【００３９】
このように、本実施の形態１では、可変長符号と同期語のオーバーラップを検出するために、可変長符号復号処理の前処理として、バイトアラインポイント上にある同期語を検出し、同期語の先頭位置を常に監視する機構を設け、可変長符号の符号長との位置関係により正確にオーバーラップを検出することができる。
【００４０】
なお、３２ビットの同期語の先頭ビットは、４８ビットの第２のシフトレジスタ１０９内に最大２つ存在する場合がある。同期語位置管理部１２２において、同期語先頭ポインタを２つ設け、２つの同期語先頭位置を管理させる。同期語位置管理部１２２は、オーバーラップ検出部１１５へ通知する同期語先頭位置情報としては、２つの同期語先頭位置のうち第２のシフトレジスタ１０９の最上位に最も近い同期語先頭位置の情報を選択する。
【００４１】
また、同期語位置管理部１２２において、２つの同期語先頭位置情報を格納する２つのレジスタを設け、同期語先頭ビットが第１のシフトレジスタ１０４から第２のシフトレジスタ１０９内に格納されるタイミングでトグルさせることで、既にレジスタに記憶される同期語先頭位置情報を、新たな同期語先頭位置情報で上書き消去することを防ぐことができる。
以上のような機構を同期語位置管理部１２２に設けることで、第２のシフトレジスタ１０９に２つの同期語の先頭ビットが存在しても、双方の同期語と可変長符号のオーバーラップを検出することが可能となる。
【００４２】
また、従来、可変長符号復号部１１３は、可変長符号の符号長VLC_Lengthは図３(a)に示すような可変長符号テーブルより取得していた。可変長符号復号部１１３は、第３のセレクタ１１１から入力される信号１１２に該当する要素が可変長符号テーブルに存在しない場合、エラーであると判断し、可変長符号復号処理を停止する。その際、可変長符号の符号長VLC_Lengthとしては、図３(a)のNO．７に示すように０ビットを取得し出力していたため、オーバーラップ検出部１１５は可変長符号と同期語のオーバーラップを検出することができない。
【００４３】
具体的に図を用いて説明すると、図５(a)に示すように可変長符号６００と同期語６０１にオーバーラップが発生しているが、オーバーラップの検査区間長が０ビットであるため、オーバーラップ検出部１１５はオーバーラップを検出することができない。しかし、場合によっては、画像復号処理の効率化または復号画像の品質劣化防止のために、可変長符号と同期語がオーバーラップしていないかどうかを確認する必要がある。
そこで、可変長符号処理にエラーが発生し、可変長符号テーブルに該当要素が存在しない場合においても、可変長符号復号部１１３が後述する機能を有することで、オーバーラップ検出部１１５はオーバーラップを検出することが可能となる。
【００４４】
例えば、可変長符号復号部１１３は、図３(b)に示すように、可変長符号テーブルに該当要素がない場合には、可変長符号の符号長VLC_Lengthとして、テーブル内要素の符号長の最大値９を出力する。これにより、図５(b)に示すように可変長符号６１０と同期語６１１にオーバーラップしている場合にも、オーバーラップの検査区間長６１２が９ビットとなり、オーバーラップ検出部１１５はオーバーラップを検出することが可能となる。
【００４５】
しかし、上述したケースでは、図５(c)に示すように可変長符号６２０にエラーが発生し、テーブルに該当要素がない符号となった場合、同期語６２１がオーバーラップすることなく後続しているのにもかかわらず、可変長符号復号部１１３が出力する符号長VLC_Lengthが９ビットであるため、オーバーラップ検出部１１５は、９ビット区間を検出しオーバーラップが発生していると判断し、誤検出が発生する。
【００４６】
そこで、可変長符号復号部１１３は、図３(c) に示すように、可変長符号テーブルに該当要素がない場合には、可変長符号の符号長VLC_Lengthとして、入力された可変長符号とテーブルにおける符号との前方部分が一致するビット数に１を加えた値を出力する。これにより、図５(d)に示すように可変長符号６３０にエラーが発生している場合でも、同期語６３１と可変長符号６３０のオーバーラップの検査区間６３２は、図３(c)のテーブルにおけるNO5の符号と可変長符号６３０の前方部分で一致するビット数７に１ビット加えた８ビットとなり、オーバーラップ検出部１１５はこの８ビットの区間を検査する。
【００４７】
このように、本実施の形態１では、可変長符号復号時に使用するルックアップテーブルに該当する可変長符号が存在しない場合においても、同期語と可変長符号のオーバーラップの誤検出を避けることができ、精度の高いオーバーラップ検出を実現する。しかも、可変長符号テーブルを変更するだけなので、装置の規模に影響を与えることなく上記の効果を容易に得ることができる。
【００４８】
以上のように本発明の実施の形態１による可変長符号復号装置によれば、可変長符号エラーによる可変長符号と同期語のオーバーラップの誤検出を防ぎつつ、精度の高いオーバーラップ検出を行うことができ、画像圧縮情報の復号画像の品質の向上を図ることができる。
【００４９】
（実施の形態２）
本発明の実施の形態２では、従来から行われている同期語探索モードと、第２のシフトレジスタの最上位から最近隣のバイトアラインポイントを基点として同期語検出を行うモードについて説明する。
図８は本発明の実施の形態２の可変符号復号装置において、同期語検出部及び可変長符号復号部の構成を示す図である。図において、図１と同一符号は同一または相当部分である。
【００５０】
第１の同期語検出部８０１は、第２のシフトレジスタ１０９の最上位を基点として連続する３２ビットデータの同期語検出を行う。最近隣バイトアラインポイントの同期語検出部８０２（以下、第２の同期語検出部という）は、第２のシフトレジスタ１０９の最上位から最近隣のバイトアラインポイントを基点として連続する３２ビットデータの同期語検出を行う。可変長符号復号部８０３の構成及び動作は本実施の形態１と同様であるので、説明を省略する。切り換えスイッチ８００は,動作モードに応じて、第１，第２のシフトレジスタ１０４，１０９から第３，第４のセレクタ１１１，１１７を介して入力されるビットストリームデータ７０５を第１の同期語検出部８０１、第２の同期語検出部８０２、及び可変長符号復号部８０３のいずれかに出力する。
【００５１】
以下、図８及び図９を参照しながら、本発明の実施の形態２における同期語探索モードについて説明する。図９は本発明の実施の形態２による可変長符号復号装置の同期語探索モード時の動作を表すフローチャートである。
第１の同期語検出部８０１は、第２のシフトレジスタ１０９から第３のセレクタ１１１、第４のセレクタ１１７を介して入力される３２ビットデータの同期語判定を行う（ステップ９００）。第１の同期語検出部８０１により同期語が検出されなかった場合は、同期語が検出されるまで、第２のシフトレジスタ１０９のシフト処理が行われ（ステップ９０１）、同時に第２のシフトレジスタ１０９の空き領域にデータが補充される。（ステップ９０２）。
【００５２】
第１の同期語検出部８０１は、同期語を検出した場合は同期語検出信号１２１を出力し、バイトアラインポイント管理部１２２は、第１の同期語検出部８０１からの同期語検出信号を受け、第２のシフトレジスタ１０９の最上位ビットから最近隣のバイトアラインポイントを０に初期化する（ステップ９０３）。同時に、第１の同期語検出部８０１は、検出した同期語の種類を通知する同期語種類通知信号１２０を出力する（ステップ９０４）。
【００５３】
従来の同期語探索モードであれば、データを破棄しながら、同期語を探索してしまい、また同期語を検出するまで処理を続けてしまうため、最近隣のバイトアラインポイントに同期語が存在しているか確認することは不可能であった。
そこで、本発明の可変符号復号装置に第２の同期語検出部８０２を設けることで、第２のシフトレジスタ１０９の最上位から最近隣のバイトアラインポイントを基点として同期語検出を行うことが可能となる。
【００５４】
以下、図８及び図１０を参照しながら、本発明の実施の形態２における最近隣バイトアラインポイントを基点として同期語検出を行うモードについて説明する。図１０は本発明の実施の形態２による可変長符号復号装置の最近隣のバイトアラインポイントの同期語検出モード時の動作を表すフローチャートである。
バイトアラインポイント管理部１２３は、同期語探索モードにより見つけたバイトアラインポイントを基準として、以後第２のシフトレジスタ１０９のシフト処理に合わせてバイトアラインポイントを更新する。
【００５５】
第２のシフトレジスタ１０９の最上位から最近隣のバイトアラインポイントを基点として同期語検出を行うにあたって、まず、第３のセレクタ１１１は第２のシフトレジスタ１０９の最上位から最近隣に位置するバイトアラインポイントを基点として連続する３２ビット区間のデータを選択し、信号１１２を出力する。第４のセレクタ１１７は、第３のセレクタ１１１から出力された信号１１２を受け、第２の同期語検出部８０２に出力する。
【００５６】
第２の同期語検出部８０２は、信号１１２の同期語検出を行い（ステップＳ１０００）、同期語を検出した場合は、同期語の種類を示す同期語種類通知信号１２０を出力し（ステップ１００１）、同期語を検出しなかった場合は、検出処理を終了する。
【００５７】
このように、ビットストリームにおける同期語を検出する際、第１の同期語検出部８０１がデータを破棄しながら同期語探索を行っていた従来に比べ、本発明では、第２のシフトレジスタ１０９において同期語検出のためのデータシフトは行わず、第２の同期語検出部８０２は、第２のシフトレジスタ１０９の最上位から最近隣のバイトアラインポイントを基点とした３２ビットデータを一度だけ参照し、同期語検出の判定を行うことができる。
【００５８】
また、同期語探索モード時に取得したバイトアラインポイント情報に基づいて、第２のシフトレジスタ１０９によりバイトアラインポイントが最上位になるようにデータをシフトさせて、第１の同期語検出部８０１により第２のシフトレジスタ１０９の最上位を基点とした３２ビットデータの同期語検出を行うこともでき、同期語のエミュレート等による同期語の誤検出を防ぐことができる。
【００５９】
以上のように、本発明の実施の形態２による可変符号復号装置によれば、通常の同期語探索モード時に取得したバイトアラインポイント情報に基づいて、第２のシフトレジスタ１０９の最上位から最近隣のバイトアラインポイントに同期語が存在しているかどうかを確認することができる。また、通常の同期語探索モード時に取得したバイトアラインポイント情報に基づいて、第２のシフトレジスタ１０９によりバイトアラインポイントが最上位になるようにデータをシフトさせて、第１の同期語検出部８０１によりバイトアラインポイント上の同期語検出もでき、同期語のエミュレート等による同期語の誤検出を防ぐことができる。
【００６０】
【発明の効果】
本発明の請求項１に係る可変長符号復号装置によれば、外部装置からの映像圧縮情報のビットストリームを記憶するレジスタと、１マシンサイクル当たりｎバイト単位で、信号を上位方向にシフトする第１のシフトレジスタと、第１のシフトレジスタの最下位から所定の区間内において、連続する所定のビット数の空き区間を選択し、第１のレジスタの信号を前記第１のシフトレジスタの空き区間の上位側から順次格納する第１の選択手段と、１マシンサイクル当たり任意のビット数単位で、信号を上位方向にシフトする第２のシフトレジスタと、第２のシフトレジスタの最下位から所定の区間内において、連続する所定のビット数の空き区間を選択し、第１のシフトレジスタの信号を前記第２のシフトレジスタの空き区間の上位側から順次格納する第２の選択手段と、第２のシフトレジスタにおいて、連続する所定のビット数の信号を選択する第３の選択手段と、第３の選択手段によって選択された信号が可変長符号の場合で復号可能な場合には、復号処理を行い、同時に、可変長符号の符号長を示す符号長情報を出力する可変長符号復号手段と、前記可変長符号復号手段により可変長符号の復号処理が行われている間には、第１のシフトレジスタから連続する所定のビット数の信号を選択し出力し、前記復号処理が終了すると、第３の選択手段から入力される信号を出力する第４の選択手段と、第４の選択手段により選択された第１のシフトレジスタの信号または第２のシフトレジスタの信号を特定ビットパターンと比較し、一致検出を行うコード検出手段と、前記コード検出手段により第１のシフトレジスタにおける特定ビットパターンの信号が検出され、該特定ビットコードの最上位ビットの信号が第２のシフトレジスタに移動した場合、その時点で第２のシフトレジスタ内における特定ビットパターンの先頭ビット位置情報を設定し、第２のシフトレジスタにシフト処理が発生した場合に、シフト量に応じて前記先頭ビット位置情報を更新する特定ビットパターン位置情報管理手段と、前記可変長符号復号手段からの可変長符号の符号長情報と、前記特定ビットパターン位置情報管理手段からの特定ビットパターンの先頭ビット位置情報より、第２のシフトレジスタにおいて可変長符号と特定ビットパターンにオーバーラップが発生していないかどうかを判定し、オーバーラップを検出した場合にはオーバーラップ通知信号を出力するオーバーラップ検出手段とを備えた構成としたので、精度の高いオーバーラップ検出を行うことができ、画像圧縮情報の復号画像の品質向上を図ることができる。
【図面の簡単な説明】
【図１】本発明の実施の形態１による可変長符号復号装置の構成を示す図である。
【図２】本発明の実施の形態１による可変長符号復号装置の可変長符号復号モード時の動作を示すフローチャートである。
【図３】(a)は従来の可変長符号テーブルの例を示す図、(b)は本発明の可変長符号テーブルの例１を示す図、(c)は本発明の可変長符号テーブルの例２を示す図である。
【図４】(a)は正常なビットストリームを示す図、(b)は可変長符号と同期語にオーバーラップが発生した状態のビットストリームを表す図である。
【図５】(a)は従来の復号エラー時の可変長符号と同期語にオーバーラップが発生した状態のビットストリームを表す図、(b)は本発明の実施の形態１において、復号エラー時の可変長符号と同期語に発生したオーバーラップを検出する際の動作を説明する説明図、(c)は本発明に実施の形態１において、復号エラー時の可変長符号と同期語のオーバーラップを誤検出する際の動作を説明する説明図、(d)は復号エラー時の可変長符号と同期語のオーバーラップを誤検出するのを回避する動作を説明する説明図である。
【図６】ビットストリームにおいてバイトアラインされている同期語を表す図である。
【図７】(a)は同期語の構成を示す図、(b)は同期語のスタートコード・バリュの例を示す図である。
【図８】本発明の実施の形態２による可変長符号復号装置の部分的な構成を示す図である。
【図９】本発明の実施の形態２による可変長符号復号装置の同期語探索モード時の動作を示すフローチャートである。
【図１０】本発明の実施の形態２による最近隣のバイトアラインポイントの同期語探索モード時の動作を示すフローチャートである。
【符号の説明】
１００  レジスタ
１０２、１０６、１１１、１１７  セレクタ
１０４、１０９  シフトレジスタ
１１３、８０３  可変長符号復号部
１１４  可変長符号の符号長通知信号
１１５  オーバーラップ検出部
１１６  オーバーラップ通知信号
１１９、８０１、８０２  同期語検出部
１２０  同期語種類通知信号
１２１  同期語検出信号
１２２  同期語位置管理部
１２３  バイトアラインポイント管理部
１２４  同期語先頭位置通知信号
５００、５１０、６００、６１０、６２０、６３０  可変長符号
５０１、５１１、６０１、６１１、６２１、６３１、７０１、７０２、７０３  同期語
６０２、６１２、６２２、６３２  可変長符号と同期語のオーバーラップ検査区間
７００、７５０  ビットストリーム
８００  切り換えスイッチ
８０４  検出結果フラグ格納用記憶装置
８０５  復号データ格納用記憶装置
８０６  制御信号
８０７  復号信号
【図１】
0003540248.tif 000002
【図２】
0003540248.tif 000003
【図３】
0003540248.tif 000004
【図４】
0003540248.tif 000005
【図５】
0003540248.tif 000006
【図６】
0003540248.tif 000007
【図７】
0003540248.tif 000008
【図８】
0003540248.tif 000009
【図９】
0003540248.tif 000010
【図１０】
0003540248.tif 000011