(57)【要約】【課題】  従来は、ビットスリームの符号化方式を判別して復号化するに際し、シーケンスヘッダをパースする必要があるか、ビットストリームを識別するための独自情報を加えるための余分な情報量が必要となる。新たな規格が追加に対する拡張が困難である。【解決手段】  各々特定のスタートコードを持つ複数の符号化方式のうちの一の符号化方式で符号化されている入力ビットストリームを復号化するに際し、スタートコード検出部１２は、入力ビットストリーム中の特定のバイトパターンを持つバイト列をバイトシフトにより検出する。スタートコード判断部１４は、スタートコード検出部１２により検出されたバイト列をスタートコードテーブル１３を参照することでスタートコードか否か判定する。スイッチ１５は、復号化器１６〜１９のうち、スタートコードに基づき判定された符号化方式用の復号化器に入力ビットストリームを選択入力させる。【選択図】            図１
2005130352.tif 000002
【特許請求の範囲】
【請求項１】
各々特定のスタートコードを持つ複数の符号化方式のうちの一の符号化方式で符号化されている入力ビットストリームの符号化方式を判定して、その判定結果に応じて前記入力ビットストリームを復号化する復号化装置であって、
前記入力ビットストリームから予め定められた特定のバイトパターンを持つバイト列を検出する検出手段と、
前記各符号化方式毎に各々定められた前記スタートコードをそれぞれ予め格納しているスタートコードテーブルと、
前記検出手段により検出された前記バイト列を、前記スタートコードテーブル中の前記複数のスタートコードと比較して、一致するスタートコードに基づき前記入力ビットストリームの符号化方式を判定する判定手段と、
前記各符号化方式毎にビットストリームを復号化する各符号化方式専用の複数の復号化手段と、
前記判定手段により符号化方式が判定された前記入力ビットストリームを、前記複数の復号化手段のうちの前記判定された符号化方式用の復号化手段に選択入力させるスイッチ手段と
を備えたことを特徴とする復号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は復号化装置に係り、特にＭＰＥＧ（Moving Picture Experts Group）に代表される高能率圧縮符号化方式等によって符号化された動画像の符号化ビットストリームを復号化して画像データを出力する復号化装置に関する。
【背景技術】
【０００２】
ビデオ符号化方式には、国際標準化されている方式に限定しても数多くある。例えば、通称ＭＰＥＧ−１ビデオと呼ばれるＩＳＯ／ＩＥＣ１１１７２−２、通称ＭＰＥＧ−２ビデオと呼ばれるＩＳＯ／ＩＥＣ１３８１８−２、通称ＭＰＥＧ−４ビデオと呼ばれるＩＳＯ／ＩＥＣ１４４９６−２、国際電気通信連合電気通信標準化部門（ＩＴＵ−Ｔ）の勧告によるＨ.２６１、Ｈ.２６３等がある。これらの符号化方式の殆どが、動き補償予測と直交変換を組み合わせた符号化方式であり、ビデオ信号がもつ時間的冗長性、空間的冗長性、及び視覚的冗長性を削減して高能率の圧縮符号化を実現している。
【０００３】
しかしながら、上記の各符号化方式は符号構成等に互換性がなく、いくつかの符号化方式が混在するシステムにおいては、何らかの手段によって符号化方式に応じたデコード方法を選択する必要がある。そこで、ＭＰＥＧ−２ビデオ符号化方式に準拠した復号化装置において、ＭＰＥＧ−１ビデオ符号化方式のビットストリームもデコードするようにした復号化装置が従来より知られている（例えば、特許文献１参照）。
【０００４】
この従来の復号化装置は、図５のブロック図に示すように、ビットストリーム入力部１０１から入力されるビットストリームを、デコーダ１０２で解読する際、ビットストリーム中のシーケンスヘッダ解読後にシーケンスエクステンション（拡張開始コードであるエクステンション・スタートコード）が存在すればＭＰＥＧ−２ビデオ、存在しなければＭＰＥＧ−１ビデオと判断して、デコード方法を切り替えて動作する。
【０００５】
また、従来、例えば、クイックタイム（QuickTime）フォーマットのように、ビットストリーム中にそのビットストリームを識別するための独自のヘッダを追加することで、多種多様なビットストリームを復号して再生する復号化装置も従来より知られている。
【０００６】
更に、図６に示すブロック図の構成により、ビットストリームファイルの判別に、スタートコードを検出し、検出後、ファイルタイプを判別する復号化装置も従来より知られている（例えば、特許文献２参照）。
【０００７】
図６において、データストリーム２０１は、メモリ２０２に一時記憶された後、８ビットシフトされて８ビット用レジスタ２０３に供給される。８ビット用レジスタ２０３では、１サイクル毎に、１ビットずつシフトさせて、２４ビット用レジスタ２０４に値を入力していく。８サイクル後、８ビット用レジスタ２０３が空になるので、データストリーム２０１から８ビット分補充する。２４サイクル後、２４ビット用レジスタ２０４が満杯となる。２４ビット用レジスタ２０４が満杯となったところで、２４ビットの集まりが、スタートコードかどうかをスタートコード判断部２０５で判断する。
【０００８】
スタートコード判断部２０５は、入力された２４ビットの集まりが、スタートコードと判断された場合、２４ビットの直後の８ビットの値をコード検出部２０６に送り、そこで、データストリーム２０１の８ビット値を検出する。コード検出部２０６で検出された８ビットのコードは、ステートマシーン２０７に送られて識別された後、多重規格復号器２０８に供給されて復号される。
【０００９】
次に、多重規格復号器２０８について説明する。符号化規格が違う場合、各規格が要求する符号化の方法が異なる。従来の復号化装置では、ＭＰＥＧ−１／ＭＰＥＧ−２／Ｈ.２６１の３種類の符号化規格の画像データを復号化するので、各符号化規格毎に個別の復号器が３つ必要となるところを、共通態様を識別し、共通態様のみを１度だけ作成することにより、復号器の数を１つに減らし節約するようにしている。
【００１０】
【特許文献１】特開２００１−１７７８３４号公報
【特許文献２】特開２００２−１４２２１９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかるに、特許文献１記載の従来の復号化装置では、シーケンスヘッダをパース（ビットシフト）して、シーケンスエクステンションコードがあればＭＰＥＧ−２，なければＭＰＥＧ−１と判別しているため、ＭＰＥＧ−１ビデオと判別するまで、少なくともシーケンスヘッダ内のビット単位の情報をパースにより解読する必要がある。一般に、ビット単位の処理はバイト単位の処理に比べ複雑であり、特にコンピュータプログラム等ソフトウェアによる処理ではビットシフト、ビットマスク等を組み合わせた処理により演算量も増大する。
【００１２】
また、ビットストリーム識別用の独自のヘッダが追加されたビットストリームを復号化する従来の復号化装置では、ビットストリーム中に独自情報を追加する必要があり、情報量が増大する欠点に加えて、ビットストリームのまま多種多様なビットストリームを復号化することはできない欠点がある。
【００１３】
更に、特許文献２記載の従来の復号化装置では、符号化の規格が増加した場合、共通態様を再識別し、共通態様を修正する必要があるので拡張性がないことが欠点である。また、この従来の復号化装置では、独自の復号器を作成使用する必要があり、標準復号器を使用できないという欠点がある。
【００１４】
本発明は以上の点に鑑みなされたもので、ビットストリームの種類を特定するためにヘッダを付加した場合に起因する情報量の増大を防ぐと共に、入力ビットストリームが複数の符号化方式のうちのどの符号化方式でもその符号化方式に対応した復号化を行い得る復号化装置を提供することを目的とする。
【００１５】
また、本発明の他の目的は、ビットシフト（パース）を使用することなく、符号化方式が不明な入力ビットストリームの符号化方式を判別し、判別した符号化方式に応じた復号化器を用いることで拡張性をもたせた復号化装置を提供することにある。
【課題を解決するための手段】
【００１６】
上記の目的を達成するため、本発明は、各々特定のスタートコードを持つ複数の符号化方式のうちの一の符号化方式で符号化されている入力ビットストリームの符号化方式を判定して、その判定結果に応じて前記入力ビットストリームを復号化する復号化装置であって、入力ビットストリームから予め定められた特定のバイトパターンを持つバイト列を検出する検出手段と、各符号化方式毎に各々定められたスタートコードをそれぞれ予め格納しているスタートコードテーブルと、検出手段により検出されたバイト列を、スタートコードテーブル中の複数のスタートコードと比較して、一致するスタートコードに基づき入力ビットストリームの符号化方式を判定する判定手段と、各符号化方式毎にビットストリームを復号化する各符号化方式専用の複数の復号化手段と、判定手段により符号化方式が判定された入力ビットストリームを、複数の復号化手段のうちの判定された符号化方式用の復号化手段に選択入力させるスイッチ手段とを備えた構成としたものである。
【００１７】
この発明では、各々特定のスタートコードを持つ複数の符号化方式のうちの一の符号化方式で符号化されている入力ビットストリームを復号化するに際し、入力ビットストリーム中の特定のバイトパターンを持つバイト列をバイトシフトにより検出し、更にスタートコードテーブルを参照することで判定し、符号化方式が判定された入力ビットストリームを、複数の復号化手段のうち判定された符号化方式用の復号化手段に選択入力させるようにしたため、シーケンスヘッダのパースを不要にでき、また、独自の情報をビットストリームに付加することも不要にできる。
【発明の効果】
【００１８】
本発明によれば、シーケンスヘッダをパースして、シーケンスエクステンションコードがあればＭＰＥＧ−２，なければＭＰＥＧ−１というように識別する従来装置で必要なパースが不要であり、バイトシフトで処理するので処理負荷を軽減できる。
【００１９】
また、ビットストリームを識別するための独自情報を加える従来装置では、独自情報を加えるための余分な情報量が必要となるという欠点があるが、本発明によれば、ビットストリームに元々存在するスタートコードに基づき符号化方式を識別するようにしたため、余分な情報量を用いることなく多様なビットストリームを復号することが可能である。
【００２０】
更に、様々な種類のビットストリームの共通態様を取り出して１つの復号器を作成する従来装置では、新たな規格が追加された場合、共通態様を作成し直すという欠点があるが、本発明によれば、各規格毎に標準復号化を行う全部で複数の復号化手段を用意するので、新たな規格が追加された場合、その規格専用の復号化手段を追加することで容易に拡張することができ、かつ、標準復号化手段を使用することができる。
【発明を実施するための最良の形態】
【００２１】
次に、本発明を実施するための最良の形態について図面と共に説明する。図１は本発明になる復号化装置の一実施の形態のブロック図を示す。同図に示すように、本実施の形態の復号化装置は、動画像信号が複数の種類の符号化方式（ここでは、少なくともＭＰＥＧ−１、ＭＰＥＧ−２、ＭＰＥＧ−４、Ｈ.２６４）のうち、何れか一の任意の符号化方式で圧縮符号化された動画像符号化データ１０のビットストリームを一時蓄積記憶するメモリ１１と、メモリ１１内に蓄積されたビットストリームの符号化データ１０からスタートコードを４バイト単位で検出するスタートコード検出部１２と、複数の種類の符号化方式（ここでは、ＭＰＥＧ−１、ＭＰＥＧ−２、ＭＰＥＧ−４、Ｈ.２６４）を参照することができるスタートコードテーブル１３と、スタートコード検出部１２から入力されたスタートコードとスタートコードテーブル１３から入力されたスタートコードとを比較し、ビットストリームの符号化方式を判断するスタートコード判断部１４と、スターとコード判断部１４で判断されたビットストリームの符号化方式に切り替えるためのスイッチ１５と、スイッチ１５から入力されたＭＰＥＧ−１ビットストリームを復号化して復号化データ２０を出力するＭＰＥＧ−１復号化器１６と、スイッチ１５から入力されたＭＰＥＧ−２ビットストリームを復号化して復号化データ２１を出力するＭＰＥＧ−２復号化器１７と、スイッチ１５から入力されたＭＰＥＧ−４ビットストリームを復号化して復号化データ２２を出力するＭＰＥＧ−４復号化器１８と、スイッチ１５から入力されたＨ.２６４規格のＭＰＥＧ−４ＡＶＣビットストリームを復号化して復号化データ２３を出力するＨ.２６４復号化器１９とより構成されている。
【００２２】
次に、図２乃至図４のフローチャートを併せ参照して図１の実施の形態の動作を詳細に説明する。まず、任意の符号化方式で符号化されて得られた符号化データ１０は、メモリ１１に入力されて一時蓄積される（図２のステップＳ１）。続いて、メモリ１１に蓄積された符号化データ１０は、スタートコード検出部１２において、まずビットストリームファイルの大きさが調べられ（図２のステップＳ２）、続いて、４バイトスタートコードがスタートコードテーブル１３を参照して検出される（図２のステップＳ３）。
【００２３】
ここで、上記のステップＳ２のビットストリームファイルの大きさは、図３のフローチャートに従って、スタートコード検出部１２内のファイルサイズ算出部にて調べられる。まず、入力される符号化データ１０のビットストリームファイルの先頭の位置FileStartを調べる（図３のステップＳ２１)。次に、上記のビットストリームファイルの最後の位置FileEndを調べる（図３のステップＳ２２）。続いて、ステップＳ２２とＳ２１で求めたファイルの終了位置FileEndと開始位置FileStartの差からファイルの大きさを求める（図３のステップＳ２３)。そして、最後にステップＳ２３で求めたファイルサイズを出力する（図３のステップＳ２４）。
【００２４】
次に、前記ステップＳ３でのスタートコード検出について、図４のフローチャートを参照して詳細に説明する。スタートコード検出部１２は、ファイルサイズの大きさ算出後に、入力された任意の符号化方式の符号化データ１０のビットストリームの先頭に、ファイルの読み出し位置を移動する（図４のステップＳ３１)。次に、本実施の形態で求めるスタートコードの長さである４バイト（３２ビット）をファイルの先頭から取り出す（図４のステップＳ３２）。
【００２５】
次に、ステップＳ３２で取り出した３２ビットに「OxOOOOO1OO」でビットマスクをかける（図４のステップＳ３３)。続いて、ステップＳ３３でビットマスクをかけたものが「OxOOOOO1OO」であるかどうかを判断する（図４のステップＳ３４）。ここで、後述するように、ＭＰＥＧ−１／ＭＰＥＧ−２／ＭＰＥＧ−４及びＭＰＥＧ−４ＡＶＣの各３２ビット（＝４バイト）のスタートコードは、上位３バイトの値はいずれも１６進数で「０００００１」で共通であり、下位１バイトの値が符号化方式により異なるので、上位３バイトの１６進数の値が上記の「０００００１」であれば、何らかの符号化方式のスタートコードであることがわかる。
【００２６】
従って、上記のステップＳ３３で下位１バイトを「00」でマスキングした値が、「OxOOOOO100」であれば、スタートコードであるので、取り出した３２ビット（＝４バイト）のマスキング前のコードを、図１のスタートコード検出部１２からスタートコード判断部１４へ出力する（図４のステップＳ３５）。
【００２７】
他方、「OxOOOOO100」でなければ、取り出した３２ビットはスタートコードではないので、ファイルサイズの大きさまで１バイトずつバイトシフトさせ、その都度「OxOOOOO1OO」でビットマスクをかけて「OxOOOOO1OO」の条件を満たすものを探す（図４のステップＳ３６、Ｓ３７、Ｓ３３、Ｓ３４）。
【００２８】
上記の探索の結果、ファイルの全てを調査しても「OxOOOOO100」となるものが存在しない場合は、スタートコードが検出されず、その結果、ビットストリームの種類を判別することができないので、ビットストリームを復号化はできないと警告する（図４のステップＳ３８）。
【００２９】
上記の図４のフローチャートに従ってスタートコード検出部１２により検出されたスタートコードは、図１のスタートコード判断部１４において、スタートコードテーブル１３のスタートコードと比較される。このスタートコードテーブル１３は、ＭＰＥＧ−１／ＭＰＥＧ−２／ＭＰＥＧ−４及びＭＰＥＧ−４ＡＶＣに応じたスタートコードの値が３２ビット（＝４バイト）で参照できるようになっている。表１、表２、表３、表４にそれぞれのスタートコードの特徴を示す。
【００３０】
【表１】
2005130352.tif 000003
表１はＭＰＥＧ−１、ＭＰＥＧ−２のスタートコードを示す。ＭＰＥＧ−１のスタートコードの特徴は、シーケンス・ヘッダ・コードの次のスタートコードがエクステンション・スタートコードでないこと、また、ＭＰＥＧ−２のスタートコードの特徴は、シーケンス・ヘッダ・コードの次のスタートコードがエクステンション・スタートコードである。
【００３１】
【表２】
2005130352.tif 000004
表２はＭＰＥＧ−４のスタートコードを示す。ＭＰＥＧ−４の場合、ＭＰＥＧ−１、ＭＰＥＧ−２にはないＶＯＰスタートコードが存在する。ＭＰＥＧ−４ＡＶＣの場合、最初のピクチャは、ＩＤＲ（Instantaneous decoding Refresh）ピクチャと呼ばれるピクチャであり、このピクチャはＭＰＥＧ−１／ＭＰＥＧ−２／ＭＰＥＧ−４にはないものである。ＭＰＥＧ−４ＡＶＣのスタートコードもＭＰＥＧの場合と同様に、上位２４ビットは表３で示すように１６進数で「OxOOOOO1」である「start_code_prefix」で表される。
【００３２】
【表３】
2005130352.tif 000005
また、下位８ビットについてＩＤＲピクチャを含む条件は表４の通りである。
【００３３】
【表４】
2005130352.tif 000006
前記より、ＭＰＥＧ−４ＡＶＣのスタートコードを１６進数で表すと、「OxOOOOO125」となる。
【００３４】
「OxOOOOO125」のスタートコードは、ＭＰＥＧ−１、ＭＰＥＧ−２、及びＭＰＥＧ−４においてもスライススタートコードとして存在するが、ＭＰＥＧ−４ＡＶＣでは「OxOOOOO1B3」と「OxOOOOO1B6」は発生しないコードとして割り当てられているので、後述するように、図２のフローチャートのビットストリームタイプの判別を下に辿っていくことで「OxOOOOO125」、「OxOOOOO145」、及び「OxOOOOO165」のスタートコードがＭＰＥＧ−４ＡＶＣのスタートコードであることがわかる。
【００３５】
以上より、各タイプのスタートコードの特徴をまとめると表５に示すようになる。
【００３６】
【表５】
2005130352.tif 000007
これにより、スタートコードテーブル１３としては表６に示すテーブルが使用される。
【００３７】
【表６】
2005130352.tif 000008
なお、信頼性を高めるために、ＭＰＥＧ−１では、「sequence_header_code」の検出に加えて「picture_start_code」を検出し、ＭＰＥＧ−４では、ＶＯＰスタートコードに加えて「visual_object_sequence_start_code」を検出するような複数のスタートコードの組み合わせによりビットストリームの判定を行う方法もある。
【００３８】
次に、図２に戻って任意のビットストリームの判別について説明する。図１のスタートコード判断部１４は、スタートコード検出部１２より入力された３２ビットのコードと、スタートコードテーブル１３から入力されるＭＰＥＧ−１／ＭＰＥＧ−２／ＭＰＥＧ−４及びＭＰＥＧ−４ＡＶＣのスタートコードとを比較する。
【００３９】
スタートコード判断部１４は、まず、スタートコードテーブル１３から入力されるＭＰＥＧ−４のスタートコードと比較する（図２のステップＳ４）。ＭＰＥＧ−４のスタートコードと３２ビットのコードが等しい場合、入力符号化データ１０のビットストリームの符号化方式はＭＰＥＧ−４であると判断され、スイッチ１５を制御して入力符号化データをＭＰＥＧ−４復号化器１９に供給して復号化させ、復号化データ２２を出力させる（図２のステップＳ５）。
【００４０】
スタートコード判断部１４は、ステップＳ４でＭＰＥＧ−４のスタートコードと３２ビットのコードが異なると判定した場合は、続いて３２ビットのコードをＭＰＥＧ−２のスタートコードと比較する（図２のステップＳ６）。３２ビットのコードがＭＰＥＧ−２のスタートコードと等しい場合、入力符号化データ１０のビットストリームの符号化方式はＭＰＥＧ−２であると判断され、スイッチ１５を制御して入力符号化データをＭＰＥＧ−２復号化器１８に供給して復号化させ、復号化データ２１を出力させる（図２のステップＳ７）。
【００４１】
スタートコード判断部１４は、ステップＳ６でＭＰＥＧ−２のスタートコードと３２ビットのコードが異なると判定した場合は、続いて３２ビットのコードをＭＰＥＧ−１のスタートコードと比較する（図２のステップＳ８）。３２ビットのコードがＭＰＥＧ−１のスタートコードと等しい場合、入力符号化データ１０のビットストリームの符号化方式はＭＰＥＧ−１であると判断され、スイッチ１５を制御して入力符号化データをＭＰＥＧ−１復号化器１６に供給して復号化させ、復号化データ２０を出力させる（図２のステップＳ９）。
【００４２】
スタートコード判断部１４は、ステップＳ８でＭＰＥＧ−１のスタートコードと３２ビットのコードが異なると判定した場合は、続いて３２ビットのコードをＭＰＥＧ−４ＡＶＣのスタートコードと比較する（図２のステップＳ１０）。３２ビットのコードがＭＰＥＧ−４ＡＶＣのスタートコードと等しい場合、入力符号化データ１０のビットストリームの符号化方式はＭＰＥＧ−４ＡＶＣであると判断され、スイッチ１５を制御して入力符号化データをＨ.２６４復号化器１９に供給して復号化させ、復号化データ２３を出力させる（図２のステップＳ１１）。
【００４３】
３２ビットのコードがＭＰＥＧ−４ＡＶＣのスタートコードと異なる場合は、ステップＳ３に戻り、再び任意のビットストリームファイルの大きさだけ３２ビットのコードを検出、比較、判断する（図２のステップＳ１２がＮＯ）。取り出した３２ビットのコード全てがＭＰＥＧ−１／ＭＰＥＧ−２／ＭＰＥＧ−４及びＭＰＥＧ−４ＡＶＣに該当しない場合は、ファイルを判別できないので、スタートコード判断部１４は、符号化方式を特定できないことを示す信号を出力する（図２のステップＳ１２がＹＥＳ）。
【００４４】
このように、本実施の形態によれば、スタートコードの検出の際に、ファイルサイズの大きさまで１バイトずつバイトシフトさせ、その都度「OxOOOOO1OO」でビットマスクをかけて「OxOOOOO1OO」の条件を満たすものを探すようにしているため、シーケンスヘッダをパースする従来の復号化装置に比べて処理負荷が軽くなり、迅速に符号化方式を識別できる。
【００４５】
また、ビットストリームを識別するための独自情報を加える従来の方法では、独自情報を加えるための余分な情報量が必要となるという欠点があるが、本実施の形態によれば、ビットストリーム中に元々存在するスタートコードから符号化方式を識別して、識別した符号化方式で復号化するようにしたため、ビットストリームのまま多様なビットストリームを復号することが可能である。また、本実施の形態では、各規格毎に標準復号化器を用意しているため、新たな規格が追加された場合、その規格の復号器を追加することで容易に拡張することができ、かつ、標準復号化器を使用することができる。
【００４６】
なお、本発明は上記の実施の形態に限定されるものではなく、例えば図１の構成の復号化装置をコンピュータにより実現させるコンピュータプログラムも含むものである。この場合、コンピュータプログラムは、記録媒体からコンピュータに取り込まれてもよいし、ネットワークを介してコンピュータにダウンロードしてもよい。
【図面の簡単な説明】
【００４７】
【図１】本発明の復号化装置の一実施の形態のブロック図である。
【図２】図１の動作説明用フローチャートである。
【図３】図２中のファイルサイズの大きさを調べる処理の詳細説明用フローチャートである。
【図４】図２中の４バイトのスタートコード検出処理の詳細説明用フローチャートである。
【図５】従来の復号化装置の一例のブロック図である。
【図６】従来の復号化装置の他の例のブロック図である。
【符号の説明】
【００４８】
１０  入力符号化データ
１１  メモリ
１２  スタートコード検出部
１３  スタートコードテーブル
１４  スタートコード判断部
１５  スイッチ
１６  ＭＰＥＧ−１復号化器
１７  ＭＰＥＧ−２復号化器
１８  ＭＰＥＧ−４復号化器
１９  Ｈ.２６４復号化器
２０〜２３  復号化データ
【図１】
2005130352.tif 000009
【図２】
2005130352.tif 000010
【図３】
2005130352.tif 000011
【図４】
2005130352.tif 000012
【図５】
2005130352.tif 000013
【図６】
2005130352.tif 000014