(57)【特許請求の範囲】
【請求項１】
与えられたシフト量にしたがって入力された圧縮データ（ビットストリーム）をシフトし、シフトしたビットストリームからスタートコードと同じビット数の単位ビットストリームを出力するシフタ回路と、
前記シフタ回路から出力された単位ビットストリームがスタートコードであるか否かを判定する判定回路とを具備し、
前記シフタ回路により一連のビットストリームをシフトしながら順次検索して、一連のビットストリームの中からスタートコードを検出するスタートコード検索回路において、
前記シフタ回路から出力された単位ビットストリームを受けて、単位ビットストリームと、スタートコードのビット配列に応じて予め用意された複数の比較情報とを比較し、比較結果に応じて前記シフタ回路のシフト量を与えるシフト量出力テーブルを具備し、
前記シフト量出力テーブルは、比較情報（ビットストリーム）と、該比較情報に対応するシフト量（切り捨て量）との関係が、
【表１】
0003737352.tif 000004
であることを特徴とするスタートコード検索回路。
【請求項２】
与えられたシフト量にしたがって入力された圧縮データ（ビットストリーム）をシフトし、シフトしたビットストリームからスタートコードと同じビット数の単位ビットストリームを出力するシフタ回路と、
前記シフタ回路から出力された単位ビットストリームがスタートコードであるか否かを判定する判定回路とを具備し、
前記シフタ回路により一連のビットストリームをシフトしながら順次検索して、一連のビットストリームの中からスタートコードを検出するスタートコード検索回路において、
前記シフタ回路から出力された単位ビットストリームを受けて、単位ビットストリームと、スタートコードのビット配列に応じて予め用意された複数の比較情報とを比較し、比較結果に応じて前記シフタ回路のシフト量を与えるシフト量出力テーブルを具備し、
前記シフト量出力テーブルは、比較情報（ビットストリーム）と、該比較情報に対応するシフト量（切り捨て量）との関係が、
【表２】
0003737352.tif 000005
であることを特徴とするスタートコード検索回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、ビットストリームを検索してビットストリームに含まれるスタートコードを検出するスタートコード検索回路に関する。
【０００２】
【従来の技術】
例えば、情報の圧縮規格の一つであるＭＰＥＧに準拠した圧縮画像データ（以下、ビットストリームと呼ぶ）をデコードするデコード装置としては、例えば図５に示すようなものがある。図５において、デコード装置は、可変長符号デコーダ回路Ｂ１、ＲＬＤ回路Ｂ２、逆量子化回路Ｂ３、逆ＤＣＴ回路Ｂ４、動き補償・フレーム予測回路Ｂ５ならびにフレームメモリＭ１を備えて構成されている。
【０００３】
このようなデコード装置において、ビットストリームは例えば外部、例えば衛星電波受信機やＤＶＤなどから入力される。入力されたビットストリームから、ビットストリーム内の目印であるスタートコードが可変長符号デコード回路Ｂ１で検索される。検索において、順次ビットストリームから画像のＤＣＴ係数のランレベル情報や、動きベクトル及びその他のヘッダ情報が復号される。復号されたＤＣＴ係数のランレベル情報はＲＬＤ回路Ｂ２でＤＣＴ係数へ変換され、更に逆量子化回路Ｂ３で量子化特性と量子化マトリクスによって決定される値で逆量子化される。そして、逆ＤＣＴ回路Ｂ４で逆離散コサイン変換され、復号画像として動き補償・フレーム予測回路Ｂ５に入力される。動き補償・フレーム予測回路Ｂ５では、Ｉピクチャの場合は復号画像を復号信号として出力する。Ｐ、Ｂピクチャの場合は、各画像タイプに従って適時フレームメモリＭ１に格納された画像情報から動きベクトルを用いて予測画像を生成し、復号画像と予測画像を足し合わせたものを復号信号として出力する。
【０００４】
図６は、従来のスタートコード検索機能付可変長符号デコード回路の構成を示す図である。図６において、スタートコード検索機能付可変長符号デコード回路は、レジスタＲ１〜Ｒ５、加算器Ａ１、シフタ回路Ｓ１、ビットストリームからＤＣＴ係数のランレベル形式等に変換する変換テーブルＴ１、ビットストリームの先頭にある符号語から符号長を出力する符号長出力テーブルＴ２、ならびにスタートコードを検出する判定回路Ｃ１を備えて構成されている。なお、ＭＰＥＧではスタートコードは３２ビット長であり、最上位ビットから２３ビット目までが“０”で、２４ビット目が“１”という特徴を有している。また、スタートコードは、ビットストリーム内でバイトアラインされているものとする。
【０００５】
図６において、ＦＩＦＯに構成されたレジスタＲ２、Ｒ３、Ｒ４にビットストリームが先頭から順に格納される。レジスタＲ２〜Ｒ４に格納されたビットストリームの先頭ビット位置をレジスタＲ１に保持する。この状態で１サイクル分クロックを進めると、レジスタＲ２〜Ｒ４から出力されたビットストリームからシフタ回路Ｓ１によって頭出しが行われ、レジスタＲ５に格納される。これを初期状態とする。
【０００６】
次に、判定回路Ｃ１をレジスタＲ５の値で参照することにより、頭出しされてレジスタＲ５に格納されたデータがスタートコードか否かが判定される。スタートコードであると判定されるまで、８ビット分ビットストリームを先頭から切り捨てる。すなわち、以下の処理を行う。
【０００７】
１．レジスタＲ１の値と“８”を加算器Ａ１で加えた値（これをｎとする）が、新たなビットストリーム先頭の位置となる。この値ｎの下位５ビットを、レジスタＲ１に格納する。
【０００８】
２．ＦＩＦＯ（レジスタＲ２、Ｒ３、Ｒ４）からの出力を、シフタ回路Ｓ１を用いてｎビットシフトさせ、頭出ししたビットストリームをレジスタＲ５に格納する。
【０００９】
３．ｎが３２以上の値であった場合は、ＦＩＦＯを３２ビット分更新する。
【００１０】
このような検索処理を行うことにより、与えられたビットストリームからスタートコードが検出され、検出されたスタートコードがレジスタＲ５に格納される。
【００１１】
【発明が解決しようとする課題】
以上説明したように、ビットストリームからスタートコードを検索する従来の検索回路においては、ビットストリームから３２ビットのスタートコードを検出する場合には、一連のビットストリームの先頭から１サイクル当たり８ビット（＝スタートコードのバイト間隔）ずつ検索を進めていた。このため、ビットストリームからスタートコードを検出するためには、多大な検索時間が必要になるといった不具合を招いていた。
【００１２】
そこで、この発明は、上記に鑑みてなされたものであり、その目的とするところは、ビットストリームを検索してスタートコードを検出する検出時間を短縮したスタートコード検索回路を提供することにある。
【００１４】
【課題を解決するための手段】
上記目的を達成するために、課題を解決するための第１の手段は、与えられたシフト量にしたがって入力された圧縮データ（ビットストリーム）をシフトし、シフトしたビットストリームからスタートコードと同じビット数の単位ビットストリームを出力するシフタ回路と、前記シフタ回路から出力された単位ビットストリームがスタートコードであるか否かを判定する判定回路とを具備し、前記シフタ回路により一連のビットストリームをシフトしながら順次検索して、一連のビットストリームの中からスタートコードを検出するスタートコード検索回路において、前記シフタ回路から出力された単位ビットストリームを受けて、単位ビットストリームと、スタートコードのビット配列に応じて予め用意された複数の比較情報とを比較し、比較結果に応じて前記シフタ回路のシフト量を与えるシフト量出力テーブルを具備し、前記シフト量出力テーブルは、比較情報（ビットストリーム）と、該比較情報に対応するシフト量（切り捨て量）との関係が、
【００１５】
【表３】
0003737352.tif 000002
であることを特徴とする。
【００１６】
第２の手段は、与えられたシフト量にしたがって入力された圧縮データ（ビットストリーム）をシフトし、シフトしたビットストリームからスタートコードと同じビット数の単位ビットストリームを出力するシフタ回路と、前記シフタ回路から出力された単位ビットストリームがスタートコードであるか否かを判定する判定回路とを具備し、前記シフタ回路により一連のビットストリームをシフトしながら順次検索して、一連のビットストリームの中からスタートコードを検出するスタートコード検索回路において、前記シフタ回路から出力された単位ビットストリームを受けて、単位ビットストリームと、スタートコードのビット配列に応じて予め用意された複数の比較情報とを比較し、比較結果に応じて前記シフタ回路のシフト量を与えるシフト量出力テーブルを具備し、前記シフト量出力テーブルは、比較情報（ビットストリーム）と、該比較情報に対応するシフト量（切り捨て量）との関係が、
【００１７】
【表４】
0003737352.tif 000003
であることを特徴とする。
【００１８】
【発明の実施の形態】
以下、図面を用いてこの発明の実施形態を説明する。
【００１９】
図１はこの発明の一実施形態に係るスタートコード検索回路の構成を示す図である。図１において、この実施形態のスタートコード検索回路は、図６に示す構成に加えて、シフト量出力テーブルＴ３を備えて構成され、図６に示す回路と同様にビットストリームから可変長符号をデコードする機能（この発明の特徴となるものではない）も備えており、図６に示すと同様の変換テーブルＴ１ならびに符号長出力テーブルＴ２は、専らビットストリームから可変長符号をデコードする際に使用される構成要素である。また、レジスタＲ１〜Ｒ５、加算器Ａ１、シフタ回路Ｓ１は、ビットストリームからスタートコードを検出する際に用いられるとともに、ビットストリームから可変長符号をデコードする際にも使用されるものである。なお、この実施形態では、スタートコードは、従来と同様なビット構成とし、ビットストリーム内でバイトアラインされているものとする。
【００２０】
シフト量出力テーブルＴ３は、レジスタＲ５に格納された３２ビットのビットストリームと、図２に示す３２ビットの４つの比較情報とを比較し、比較結果に応じて切り捨て量（シフト量）ｍを出力する。３２ビットの比較情報は、図２に示すように、
【表５】
(1)  00000000_00000000_00000001_XXXXXXXX
(2)  XXXXXXXX_00000000_00000000_00000001
(3)  XXXXXXXX_XXXXXXXX_00000000_00000000
(4)  XXXXXXXX_XXXXXXXX_XXXXXXXX_00000000
となる。レジスタＲ５に格納された３２ビットのビットストリームと、上記（１）に示す比較情報との比較において両者が一致した場合には、レジスタＲ５に格納されたビットストリームは、スタートコードであり、判定回路Ｃ１によりスタートコードであると検出される。したがって、切り捨ては行われず、切り捨て量ｍとしては“０”となる。次に、レジスタＲ５に格納された３２ビットのビットストリームと、上記（２）に示す比較情報との比較において両者が一致した場合には、シフト量出力テーブルＴ３は、切り捨て量ｍとして“８”を出力する。レジスタＲ５に格納された３２ビットのビットストリームと、上記（３）に示す比較情報との比較において両者が一致した場合には、シフト量出力テーブルＴ３は、切り捨て量ｍとして“１６”を出力する。レジスタＲ５に格納された３２ビットのビットストリームと、上記（４）に示す比較情報との比較において両者が一致した場合には、シフト量出力テーブルＴ３は、切り捨て量ｍとして“２４”を出力する。レジスタＲ５に格納された３２ビットのビットストリームが、シフト量出力テーブルのいずれの値とも一致（マッチ）しなかった場合には、シフト量出力テーブルＴ３は、切り捨て量ｍとして“３２”を出力する。このようなシフト量出力テーブルＴ３は、例えば論理ゲートやメモリのＲＡＭ、ＲＯＭ等により構成される。
【００２１】
このような構成において、まずＦＩＦＯ（レジスタＲ２、Ｒ３、Ｒ４）にビットストリームが先頭から順に格納される。ＦＩＦＯに格納されたビットストリームの先頭ビット位置をレジスタＲ１に保持する。この状態で１サイクル分クロックを進めると、ＦＩＦＯから出力されたビットストリームからシフタ回路Ｓ１によって３２ビットのビットストリームが出力されて頭出しが行われ、レジスタＲ５に格納される。これを初期状態とする。
【００２２】
このような初期状態において、判定回路Ｃ１をレジスタＲ５の値で参照することにより、レジスタＲ５に格納された値がスタートコードであるか否かを判定する。スタートコードと判定されるまで、ｍビット分ビットストリームを先頭から順次切り捨てる。切り捨て量ｍの値は、レジスタＲ５の値をシフト量出力テーブルＴ３の図２に示す値と先頭から順次比較して、マッチあるいはマッチしないときのシフト量出力テーブルＴ３の値となる。レジスタＲ５の下位２４ビットの値が、「00000000_00000000_00000001」にマッチするか否かが判定され、マッチした場合はｍ＝８とする。レジスタＲ５の下位１６ビットの値が、「00000000_00000000 」にマッチするか否かが判定され、マッチした場合はｍ＝１６とする。レジスタＲ５の下位８ビットの値が、「00000000」にマッチするか否かが判定され、マッチした場合はｍ＝２４とする。いずれでもない場合には、ｍ＝３２とする。
【００２３】
このようにして、切り捨て量ｍがシフト量出力テーブルＴ３から出力されると、この切り捨て量に基づいてＦＩＦＯ（レジスタＲ２、Ｒ３、Ｒ４）からシフタ回路Ｓ１に与えられるビットストリームがシフタ回路Ｓ１でシフトされて切り捨てが行われる。切り捨て処理は、従来と同様に行われて、シフト量出力テーブルＴ３から出力された切り捨て量ｍとレジスタＲ１に格納された値とを加算器Ａ１で加算し、加算結果のシフト量としてＦＩＦＯ（レジスタＲ２、Ｒ３、Ｒ４）からシフタ回路Ｓ１に与えられてビットストリームがシフタ回路Ｓ１でシフトされる。
【００２４】
このような検索処理をビットストリームからスタートコードが検出されるまで順次行われる。したがって、上記実施形態においては、シフト量出力テーブルＴ３を備えることによって、１サイクル当たり最大で３２ビットずつビットストリームの検索を進めることが可能となる。これにより、ビットストリームからスタートコードを検出するまでの時間を従来に比べて短縮することができるようになる。
【００２５】
図３はこの発明の他の実施形態に係るスタートコード検索回路の構成を示す図である。図３において、この実施形態の特徴とするところは、スタートコードが、ビットストリーム内でバイトアラインされていないものに適用できることを特徴とし、図１に示すシフト量出力テーブルＴ３に代えてシフト量出力テーブルＴ４を備え、他の構成は図１と同様である。なお、図３において、図１と同符号のものは同様な構成であり、その説明は省略する。
【００２６】
シフト量出力テーブルＴ４は、レジスタＲ５に格納された３２ビットのビットストリームと、図４に示す３２ビットの比較情報とを比較し、比較結果に応じて切り捨て量（シフト量）ｍを出力する。３２ビットの比較情報は、図４に示すように、「00000000_00000000_00000001_XXXXXXXX」〜 「XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXX0 」となり、切り捨て量ｍは、それぞれの比較情報に対応して図４に示すようにｍ＝０〜３１となり、いずれにもマッチしない場合には、ｍ＝３２となる。
【００２７】
このようなシフト量出力テーブルＴ４を用い、先の実施形態と全く同様にしてシフト量出力テーブルＴ４から出力された切り捨て量ｍに基づいてシフタ回路Ｓ１でシフトを行い、ビットストリームを検索してビットストリームからスタートコードを検出する。したがって、このような実施形態においては、スタートコードが、ビットストリーム内でバイトアラインされていない場合であっても、先の実施形態と同様の効果を得ることができる。
【００２８】
【発明の効果】
以上説明したように、この発明によれば、ビットストリームをシフトするシフタ回路のシフト出力とシフト量出力テーブルの比較情報との比較結果に応じて、シフタ回路のシフト量を与えるようにしたので、ビットストリームを検索してスタートコードを検出するようにしたので、スタートコードを検出する時間を従来に比べて短縮することができる。
【図面の簡単な説明】
【図１】この発明の一実施形態に係るスタートコード検索回路の構成を示す図である。
【図２】図１に示すシフト量出力テーブルＴ３の内容を示す図である。
【図３】この発明の他の実施形態に係るスタートコード検索回路の構成を示す図である。
【図４】図３に示すシフト量出力テーブルＴ４の内容を示す図である。
【図５】圧縮画像データをデコードする従来の装置の構成を示す図である。
【図６】スタートコード検索機能を有する従来の可変長符号デコード回路の構成を示す図である。
【符号の説明】
Ｒ１，Ｒ２，Ｒ３，Ｒ４，Ｒ５  レジスタ
Ａ１  加算器
Ｓ１  シフタ回路
Ｃ１  判定回路
Ｔ１  変換テーブル
Ｔ２  符号長出力テーブル
Ｔ３，Ｔ４  シフト量出力テーブル
【図１】
0003737352.tif 000006
【図２】
0003737352.tif 000007
【図３】
0003737352.tif 000008
【図４】
0003737352.tif 000009
【図５】
0003737352.tif 000010
【図６】
0003737352.tif 000011