(57)【要約】【課題】スタートコードの無いＭＰＥＧ−４ＡＶＣビデオストリームはエラー発生時、再同期がとれない。【解決手段】ＭＰ４に格納する際に、ＮＡＬ＿ＵＮＩＴの前に付与されるＮＡＬ＿ＬＥＮを準スタートコードとして処理し、エラー発生時に再同期を可能とする。つまり、あらかじめ定められた特定のパターンＰの出現しないデータストリームＸ１とＸ２とがあり、データストリームＸ１と管理データＹとデータストリームＸ２とを連続して入力し、連続した入力に対してパターンＰを探索し、パターンＰは管理データＹの前方に位置する確率が高いという性質に基づき、パターンＰの管理データＹ内の相対位置を仮定し、仮定された相対位置に基づき、管理データＹの開始位置を仮定し、仮定された管理データＹの位置が正しいかを検証するために、管理データＹとそれに続くデータストリームＸ２の一部をデコードする。【選択図】  図１
2004159015.tif 000002
【特許請求の範囲】
【請求項１】
あらかじめ定められた特定のパターンＰの出現しないデータストリームＸと、前記データストリームＸの前に付与された管理データＹとを、連続して入力し、前記連続した入力に対して前記パターンＰを探索し、発見された前記パターンの位置を前記管理データＹの位置として、データ逆多重化を行う機能を有することを特徴とするデータ逆多重化方法。
【請求項２】
あらかじめ定められた特定のパターンＰの出現しないデータストリームＸと、前記データストリームＸの前に位置する管理データＹを出力するデータ多重化方法であって、前記管理データＹの中に前記パターンＰが出現するように、前記管理データの形式を制御すること、あるいは、前記パターンＰの出現する管理データＹ２とデータストリームＸ２とを、前記ＸとＹの前に挿入することを特徴とするデータ多重化方法。
【請求項３】
コンピュータにより、請求項１記載のデータ多重化方法、データ逆多重化方法を行うためのプログラムを格納した記録媒体であって、
上記プログラムはコンピュータに、
あらかじめ定められた特定のパターンＰの出現しないデータストリームＸ１とＸ２とがあり、前記データストリームＸ１と管理データＹと前記データストリームＸ２とを連続して入力し、前記連続した入力に対して前記パターンＰを探索し、前記パターンＰは前記管理データＹの前方に位置する確率が高いという性質に基づき、前記パターンＰの前記管理データＹ内の相対位置を仮定し、前記仮定された相対位置に基づき、前記管理データＹの開始位置を仮定し、前記仮定された管理データＹの位置が正しいかを検証するために、前記管理データＹとそれに続く前記データストリームＸ２の一部をデコードすることを特徴とするデータ逆多重化方法
を、行わせるものであることを特徴とする記録媒体。
【請求項４】
コンピュータにより、請求項２記載のデータ多重化方法、データ逆多重化方法を行うためのプログラムを格納した記録媒体であって、
上記プログラムはコンピュータに、
あらかじめ定められた特定のパターンＰの出現しないデータストリームＸと、前記データストリームＸの前に位置する管理データＹを出力するデータ多重化方法であって、前記パターンＰが前記管理データＹに発生する確率を高めるために、前記管理データの記述形式を変化させることを特徴とするデータ多重化方法
を、行わせるものであることを特徴とする記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、動画像を多重化するためのファイルフォーマットに、スタートコードと呼ばれるユニークなパターンの存在しないＭＰＥＧ−４ＡＶＣストリームを格納する際、スタートコードと同等の機能を有するパターンを埋め込む多重化方法、あるいは、同等のパターンを検出しエラー回復を行うための逆多重化方法に関するものである。
【０００２】
【従来の技術】
１９９９年に国際標準化団体ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）で制定されたＭＰ４は、動画像の多重化ファイルフォーマットとして注目されている。また、２００３年に標準化予定のＭＰＥＧ−４  ＡＶＣ（Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）は、従来のＭＰＥＧ−４ビデオよりもさらに高い圧縮のできるビデオ圧縮符号化方式として注目されている。
【０００３】
図２はこのＭＰＥＧ−４  ＡＶＣビデオストリームを、ＭＰ４ファイルフォーマットに格納する構造を示している。ＭＰ４ファイルフォーマットは、基本的にはヘッダ部とデータ部とに分けられる。ＭＰ４の拡張としてヘッダ部とデータ部が交互にインターリーブする形式もあるが、本発明においてはどちらの形式でも構わない。ＭＰ４のデータ部は、ＭＰ４の基本格納単位であるＳａｍｐｌｅが連続して含まれている。このＳａｍｐｌｅの開始位置、サイズ、表示時間、デコード時間、設定情報などＳａｍｐｌｅ単位の情報や、ビデオやオーディオやテキストなどのストリーム単位の情報などが、ＭＰ４のヘッダ部に格納されている。ＭＰ４逆多重化装置は、このヘッダ情報を参照し、所望のＳａｍｐｌｅを取り出し、デコードし、再生や伝送などを行う。
【０００４】
ＭＰＥＧ−４  ＡＶＣがＭＰ４ファイルフォーマットに格納される際、ＭＰ４のＳａｍｐｌｅの中に、ＭＰＥＧ−４  ＡＶＣ  Ａｃｃｅｓｓ  Ｕｎｉｔと呼ばれるデータ構造を取り、格納される。ここでは単に  ＡＶＣＡＵ  と呼ぶことにする。ＡＶＣＡＵは、ＮＡＬ＿ＬＥＮとＮＡＬ＿ＵＮＩＴの繰り返しの構造をしている。
【０００５】
ＮＡＬ＿ＵＮＩＴは、ＭＰＥＧ−４  ＡＶＣ  ビデオストリームをスライスなどの単位に格納する、基本的なデータ単位である。ＮＡＬ＿ＵＮＩＴは、格納されたデータの種類情報などを含むＮＡＬ＿ＨＥＡＤＥＲと、実際に格納されるＮＡＬ＿ＤＡＴＡとからなる。
【０００６】
ＮＡＬ＿ＨＤＲは規格により０ｘ００にはならない。ＮＡＬ＿ＤＡＴＡは、ＭＰＥＧ−４ＡＶＣのデータを格納する領域であるが、次の３つのパターンが出現させない処理（ｅｍｕｌａｔｉｏｎ  ｐｒｅｖｅｎｔｉｏｎ  ｐｒｏｃｅｓｓ）が行われる。出現しないパターンとは１６進数表記で０ｘ００  ００、０ｘ００  ０１，  ０ｘ００  ０２である（先頭の０ｘは１６進数であることを意味する）。ＮＡＬ＿ＬＥＮは符号無し整数の型である。ＮＡＬ＿ＬＥＮ自体のバイト長はヘッダの所定の位置に記述されている。ここではＬＳＭＺと呼ぶことにする。ＬＳＭＺの値の範囲は１から４までである。
【０００７】
図３（Ａ）はＡＶＣＡＵ  をデコードする際の読み出しポインタの移動を示している。
ＡＶＣＡＵ先頭のＮＡＬ＿ＬＥＮを読み出し、ＮＡＬ＿ＬＥＮに記述された長さだけ、次のＮＡＬ＿ＵＮＩＴをビデオデコーダへと送る。ＮＡＬ＿ＵＮＩＴ自身にはサイズ情報が無いので、ＮＡＬ＿ＬＥＮの情報もビデオデコーダへ送られる。ＮＡＬ＿ＵＮＩＴ送出後は、ＮＡＬ＿ＬＥＮ分だけ読み出し位置を進めて、次のＮＡＬ＿ＬＥＮへと移動し、再びＮＡＬ＿ＬＥＮ取得とＮＡＬ＿ＵＮＩＴ転送を行う。このような繰り返し処理をＡＶＣＡＵ内の最後まで行う。しかし、図３（Ｂ）のようにＮＡＬ＿ＬＥＮにエラーが発生していると、繰り返し処理を行うことができない。ＮＡＬ＿ＬＥＮを正しく読み込めなければ、後続のＮＡＬ＿ＬＥＮやＮＡＬ＿ＵＮＩＴの位置がわからないからである。
【０００８】
従来のＭＰＥＧ−２  ビデオやＭＰＥＧ−４  ビデオ、あるいは、Ｈ．２６３ビデオなどのよく普及したビデオストリームの場合は、ビデオのピクチャやスライスなどの基本単位の先頭にスタートコードと呼ばれるユニークなパターンが付与されていた。そのため、エラーが発生した際は、このパターンをサーチすることで、次のビデオのピクチャやスライスの先頭から処理を再開することが可能であった。
【０００９】
しかし、ＭＰＥＧ−４  ＡＶＣには、スタートコードに相当するユニークなパターンが設けられていないため、一度エラーが発生すると処理を再開することができないという問題がある。
【００１０】
【発明が解決しようとする課題】
上記のようなＭＰＥＧ−４ＡＶＣのＭＰ４に格納する方式では、ＭＰＥＧ−４ＡＶＣをＭＰ４に格納する方式では、ＮＡＬ＿ＬＥＮにエラーが発生すると、エラー発生位置以降のＮＡＬ＿ＵＮＩＴの読み込みが出来ないという問題があった。
【００１１】
本発明は、ＮＡＬ＿ＬＥＮにエラーが発生した場合にも、次のＮＡＬ＿ＬＥＮを高い確率で探し出し、デコード処理を再開可能とする方法を提供するものである。
【００１２】
【課題を解決するための手段】
この課題を解決するために、
第１の発明は、あらかじめ定められた特定のパターンＰの出現しないデータストリームＸ１とＸ２とがあり、前記データストリームＸ１と管理データＹと前記データストリームＸ２とを連続して入力し、前記連続した入力に対して前記パターンＰを探索し、前記パターンＰは前記管理データＹの前方に位置する確率が高いという性質に基づき、前記パターンＰの前記管理データＹ内の相対位置を仮定し、前記仮定された相対位置に基づき、前記管理データＹの開始位置を仮定し、前記仮定された管理データＹの位置が正しいかを検証するために、前記管理データＹとそれに続く前記データストリームＸ２の一部をデコードすることを特徴とするデータ逆多重化方法である。
【００１３】
第２の発明は、あらかじめ定められた特定のパターンＰの出現しないデータストリームＸと、前記データストリームＸの前に位置する管理データＹを出力するデータ多重化方法であって、前記パターンＰが前記管理データＹに発生する確率を高めるために、前記管理データの記述形式を変化させることを特徴とするデータ多重化方法である。
【００１４】
第３の発明は、コンピュータにより、請求項１記載のデータ多重化方法、データ逆多重化方法を行うためのプログラムを格納した記録媒体であって、上記プログラムはコンピュータに、あらかじめ定められた特定のパターンＰの出現しないデータストリームＸ１とＸ２とがあり、前記データストリームＸ１と管理データＹと前記データストリームＸ２とを連続して入力し、前記連続した入力に対して前記パターンＰを探索し、前記パターンＰは前記管理データＹの前方に位置する確率が高いという性質に基づき、前記パターンＰの前記管理データＹ内の相対位置を仮定し、前記仮定された相対位置に基づき、前記管理データＹの開始位置を仮定し、前記仮定された管理データＹの位置が正しいかを検証するために、前記管理データＹとそれに続く前記データストリームＸ２の一部をデコードすることを特徴とするデータ逆多重化方法を、行わせるものであることを特徴とする記録媒体である。
【００１５】
第４の発明は、コンピュータにより、請求項２記載のデータ多重化方法、データ逆多重化方法を行うためのプログラムを格納した記録媒体であって、上記プログラムはコンピュータに、あらかじめ定められた特定のパターンＰの出現しないデータストリームＸと、前記データストリームＸの前に位置する管理データＹを出力するデータ多重化方法であって、前記パターンＰが前記管理データＹに発生する確率を高めるために、前記管理データの記述形式を変化させることを特徴とするデータ多重化方法を、行わせるものであることを特徴とする記録媒体である。
【００１６】
【発明の実施の形態】
以下、本発明の実施の形態について、図１から図１２を用いて説明する。
【００１７】
（実施の形態１）
図２のＮＡＬ＿ＬＥＮの説明図を用いてＮＡＬ＿ＬＥＮを探索可能であること説明する。ＭＰＥＧ−４ＡＶＣストリームには０ｘ００  ００，０ｘ  ００  ０１，  ０ｘ００  ０２  のパターンが出現しないように処理されている。ここでは、この３パターンをＡＶＣ禁止パターンと呼ぶことにする。ＮＡＬ＿ＵＮＩＴは、ＭＰＥＧ−４ＡＶＣのストリームに１バイトのＮＡＬヘッダを付与した構造となっているが、ＮＡＬヘッダが０にならないため、ＮＡＬヘッダを含めたＮＡＬ＿ＵＮＩＴ全体でみても、ＡＶＣ禁止パターンは出現しない。一方、ＮＡＬ＿ＬＥＮにはＡＶＣ禁止パターンを禁止する規定が無いため、ＡＶＣ禁止パターンが出現する可能性がある。したがって、ＮＡＬ＿ＬＥＮとＮＡＬ＿ＵＮＩＴの混在するＭＰＥＧ−４ＡＶＣ  Ａｃｃｅｓｓ  Ｕｎｉｔ（ＡＶＣＡＵ）に対して、ＡＶＣ禁止パターンを探索し、発見されたならば、そこはＮＡＬ＿ＵＮＩＴ以外の場所、つまり、ＮＡＬ＿ＬＥＮ内であることがわかる。
【００１８】
ＡＶＣ禁止パターンはＮＡＬ＿ＬＥＮ内の一定の場所で発生するわけではないので、パターン発見後は、ＮＡＬ＿ＬＥＮ内のどこで発見されたかを特定する必要がある。
ここでは、ＮＡＬ＿ＬＥＮ内のどこで見つかったかを仮定（相対位置の仮定）し、ＮＡＬ＿ＬＥＮ以降のＭＰＥＧ−４ＡＶＣ  Ａｃｃｅｓｓ  Ｕｎｉｔのデータを仮デコードし（ベリファイ）、シンタックス上や意味上の不整合が発生しなければ、前記仮定は正しかったとみなし、通常のデコード処理へ復帰する。
【００１９】
一方、前記仮デコードにおいて、何らかのエラーが発生した場合、前記相対位置の仮定が誤っていた可能性があるとわかる。この場合、次の二つの対策がある。（１）発見したＡＶＣ禁止パターンに基づく、ＮＡＬ＿ＬＥＮの位置特定に失敗したとし、さらに、データ読み込みを進めて、次のＡＶＣ禁止パターンの探索を行う。（２）一方、相対位置の仮定のみに失敗したとし、次に可能性の高い、相対位置の仮定を行い、仮デコードを行う。
【００２０】
どちらの方法を用いるかは、処理コスト（メモリアクセス回数や処理時間）と実装の容易さにより決定されるものである。
以上のように、ＮＡＬ＿ＬＥＮにのみ出現する可能性のあるＡＶＣ禁止パターンを探索することにより、ＮＡＬ＿ＬＥＮの位置を決定することが可能となる。図１に示すように、ＮＡＬ＿ＬＥＮにエラーが発生しても、このＮＡＬ＿ＬＥＮの位置決定方法を用いることで、次のＮＡＬ＿ＵＮＩＴからデコードを開始することが可能となり、ＭＰ４逆多重化方法として、高い品質でビデオの再生が可能となるメリットがある。
【００２１】
また、本明細書では、ＮＡＬ＿ＬＥＮのみを探す方法として、説明しているが、将来規格が変更されて、他のフィールドが追加されたとしても、ベリファイを行い検証することで、同様に対応可能である。なぜなら、追加フィールドがＡＶＣ禁止パターンを出現させない性質があるなら、ＮＡＬ＿ＬＥＮ内にＡＶＣ禁止パターンが見つかるので、本発明を完全に適用可能である。一方、追加フィールドがＡＶＣ禁止パターンを出現させる性質があるなら、ＡＶＣ禁止パターンがみつかった後に、ＮＡＬ＿ＬＥＮ、または、追加フィールドのどちらかで見つかった可能性があるとしてベリファイすればよい。あるいは、もし追加フィールドがＮＡＬ＿ＬＥＮの後に存在するならば、本発明による検索で、ＡＶＣ禁止パターンはＮＡＬ＿ＬＥＮ内で先に見つかるので、追加フィールドがどのような性質であっても構わない。
【００２２】
図４は４バイト長のＮＡＬ＿ＬＥＮの例を示している。ここでは、ＮＡＬ＿ＬＥＮに１６進数で０ｘ  ００  ００  ０１  ３５という値が入っている。１０進数では  ３０９  である。この例では、ＮＡＬ＿ＬＥＮの１バイト目と２バイト目に、０ｘ００  ００  というＡＶＣ禁止パターンがあり、ＮＡＬ＿ＬＥＮの２バイト目と３バイト目に、０ｘ００  ０１というＡＶＣ禁止パターンが含まれている。
【００２３】
本発明の方法は、ＡＶＣＡＵデータを順次読み出し、ＡＶＣ禁止パターンが含まれているかをチェックする。チェックは、ＡＶＣ禁止パターンが２バイトなので、２バイト毎に読み出しをして比較を行ってもよいし、まず１バイト目を読み出し、１バイト目が０ｘ００である場合のみ、次の１バイトを読み出し、それが０ｘ００または０ｘ０１または０ｘ０２であるかを比較してもよい。前者の２バイト単位比較ならば、見つからなかった場合は、読み出しポインタを１バイト進める。後者の１バイト単位比較ならば、１バイト目で一致しなければ、読み出しポインタを１バイト進め、２バイト目で一致しなければ、読み出しポインタを２バイト進める。
【００２４】
本発明の方法は、ＡＶＣ禁止パターンがみつかったならば、ＡＶＣ禁止パターンがＮＡＬ＿ＬＥＮの１バイト目と２バイト目に見つかったと仮定し、読み出しポインタの位置からＮＡＬ＿ＬＥＮを読み込む。従来の技術で説明したように、ＮＡＬ＿ＬＥＮのバイト長はＭＰ４ヘッダの所定の位置かれ得られる。読み込み後は、ＮＡＬ＿ＬＥＮの値分だけのデータをビデオデコーダへ送る。ビデオデコーダとのインターフェースは様々であり、ＮＡＬ＿ＬＥＮとＮＡＬ＿ＵＮＩＴのデータを連結した状態で送る方法もある。ＡＶＣ禁止パターンがＮＡＬ＿ＬＥＮの１バイト目または２バイト目にあると仮定できる根拠は、ＮＡＬ＿ＬＥＮが整数型で、かつ、右詰であるため、１バイト目と２バイト目が０ｘ００  である可能性が高いためである。
【００２５】
本発明の方法の動作フローを図５に示す。何らかの処理により異常を検出し、例えば、ＮＡＬ＿ＬＥＮに記述されている値が、ＡＶＣＡＵの残りサイズより大きい場合など、ＮＡＬ＿ＬＥＮの探索を開始する（ステップｓ０１００）。
【００２６】
ステップｓ０１０１において、開始位置のデータを１バイト読み込む。ここでは  ｐ  はＡＶＣＡＵの先頭からの位置を示しており、ｂｙｔｅ［ｐ］はｐの位置における１バイトのデータを示しているとする。探索開始時、ｐは現在の位置を指しているとする。
【００２７】
現在の１バイトが  ＡＶＣ禁止パターンの１バイトである０ｘ００である場合、ステップｓ０１０２へと進む。現在の１バイトが０ｘ００以外、つまり、０ｘ００から０ｘＦＦ  である場合は、ＡＶＣ禁止パターンは見つかっていないので、ステップｓ０１０５へ進む。
【００２８】
ステップｓ０１０２において、２バイト目の比較を行う。２バイト目がＡＶＣ禁止パターンの２バイト目である、０ｘ００か０ｘ０１か０ｘ０２であれば、ＡＶＣ禁止パターンが見つかったので、ステップｓ０１０３へ進む。２バイト目が０ｘ０３から０ｘＦＦであれば、ＡＶＣ禁止パターンが見つかっていないので、ステップｓ０１０６へ進む。
【００２９】
ステップｓ０１０３において、ＡＶＣ禁止パターンが見つかったので、１バイト目の位置をＮＡＬ＿ＬＥＮの開始位置とする。これ以降は通常処理へと戻るのであるが、１バイト目からＬＳＭＺ分をＮＡＬ＿ＬＥＮとして読み込む。次はステップｓ０１０４へ進む。
【００３０】
ステップｓ０１０４において、ＮＡＬ＿ＬＥＮに記述されていた、ＮＡＬ＿ＵＮＩＴのサイズ分だけをデコーダへ転送する。デコーダのインターフェースによっては、ＮＡＬ＿ＬＥＮを含めて転送する方法もある。なお、ＮＡＬ＿ＬＥＮの位置を特定するだけで、ｓ０１０３のＮＡＬ＿ＬＥＮ読み込みをしない応用や、あるいは、ｓ０１０４のＮＡＬ＿ＵＮＩＴのデコードをしない応用もあるが、本方法はＮＡＬ＿ＬＥＮの位置を特定するための方法であり、その後の処理には依存しない。
【００３１】
ステップｓ０１０５において、１バイト目がＡＶＣ禁止パターンと一致しないので、１バイト分だけ読み込みポインタを進め、ステップｓ０１０１へと戻る。
ステップｓ０１０６において、２バイト目がＡＶＣ禁止パターンと一致しないので、２バイト分だけ読み込みポインタを進め、ステップｓ０１０１へと戻る。
【００３２】
なお、上記のフローでは、ＡＶＣＡＵのデータ長が有限であることに特に言及していないが、読み出しポインタを進める際に、ＡＶＣＡＵの終端に達したならば、処理を中断する。
【００３３】
本発明を用いると、スタートコードという特別なパターンを新たに付与することなく、既存のＮＡＬ＿ＬＥＮを用いて、スタートコードと同様にエラー復帰が可能となる。
【００３４】
（実施の形態２）
実施の形態１において、ＮＡＬ＿ＬＥＮをスタートコードと同様に、エラー復帰に利用する方法を示した。しかし、ＮＡＬ＿ＬＥＮが上位バイトに発生する確率が高いという性質に基づき、上位バイトにのみ出現すると仮定していた。図６はこの方法の問題点を示している。例えば、ＮＡＬ＿ＬＥＮが４バイトで、０ｘ０７  ００  ００  ０１  という値を持つとする。このデータの場合、実施の形態１の方法では、２バイトと３バイト目に見つかるＡＶＣ禁止パターンが１バイト目にあるとみなすが、誤りである。つまり、ＡＶＣ禁止パターンを見つけた後は、そのパターンが２バイト目や３バイト目から、始まる可能性があることを考慮し、以下のようにする。
【００３５】
図７は、動作フローを示している。
ステップｓ０３００において、実施の形態１と同様に、ＡＶＣ禁止パターンを見つけたならば、ステップｓ０３１１へと進む。
【００３６】
ステップｓ０３１１において、１バイト目と２バイト目に見つかったと仮定し、ステップｓ０３１１とｓ０３１２において、ＮＡＬ＿ＬＥＮの取得とＮＡＬ＿ＵＮＩＴのデコードを行う。もし、何らかのエラーが発生したならば処理を中断し、ステップｓ０３２０へと進む。エラーが発生しなければ、ステップｓ００９９の通常処理へと復帰する。
【００３７】
ステップｓ０３２０において、ＮＡＬ＿ＬＥＮのバイト長が２バイト以下であれば、ＮＡＬ＿ＬＥＮは見つからなかったとなるのでステップｓ０３００へと戻り、３バイト以上あれば、ステップｓ０３２１へと進む。ステップｓ０３２１とｓ０３２２において、ＡＶＣ禁止ワードが２バイト目と３バイト目にみつかったと仮定し、同様にＮＡＬ＿ＬＥＮの取得とＮＡＬ＿ＵＮＩＴのデコード処理を行う。何らかのエラーが発生したならば、処理を中断し、ステップｓ０３３０へ進む。エラーが発生しなければ、ステップｓ００９９の通常処理へと復帰する。
【００３８】
ステップｓ０３３０以降も同様に処理を行い、３バイト目と４バイト目に見つかったと仮定して、デコード処理などを行う。ここでエラーが発生すれば、ＮＡＬ＿ＬＥＮは見つからなかったとわかるので、ステップｓ０３００へと戻る。見つかれば、ステップｓ０３９９の通常処理へと復帰する。
【００３９】
このように、ＡＶＣ禁止パターンがみつかる位置を仮定する際にも、上位バイトに出現しやすいという、ＮＡＬ＿ＬＥＮの性質を利用し、１バイト目から出現を最優先に仮定し、次に２バイト目から出現を次に仮定し、最後に３バイト目から出現を先に仮定することで、非常に少ない繰り替えし回数で、ＮＡＬ＿ＬＥＮがどのような値を持っていても、ＮＡＬ＿ＬＥＮの位置を特定可能となる。
【００４０】
また、ＡＶＣ禁止パターンは２バイトであるが、ＮＡＬ＿ＬＥＮのサイズが大きい場合、ＮＡＬ＿ＬＥＮの中に、ＡＶＣ禁止パターンの前に０ｘ００を付与したパターン（ゼロ拡張パターン）が出現する可能性がある。Ａｃｃｅｓｓ  Ｕｎｉｔのサーチの際、できるだけ語長の長い、ゼロ拡張パターンを見つけるように処理をすると、上記ＮＡＬ＿ＬＥＮ内の相対位置の曖昧さが減少するため、ベリファイの処理回数を減らすことが可能となる。なお、ＡＶＣ禁止パターンを含めて、出来るだけ長いゼロ拡張パターン、のことをＫＥＹパターンと呼ぶことにする。
【００４１】
図８と図９はＮＡＬ＿ＬＥＮのどの位置にＫＥＹパターン（ＡＶＣ禁止パターンの前に０ｘ００を付与したパターン）が発生するかを示している。図８はＮＡＬ＿ＬＥＮが３バイトの場合であり、図９はＮＡＬ＿ＬＥＮが４バイトの場合である。図９のＮＡＬ＿ＬＥＮが４バイトの場合で説明すると、２バイトのＡＶＣ禁止パターンが見つかった場合、ＮＡＬ＿ＬＥＮの開始位置は１バイト目か２バイト目か３バイト目の３通りが考えられる。しかし、ＡＶＣ禁止パターンではなくＫＥＹパターンの探索を行い、発見された場合には、ＫＥＹパターンの開始位置は１バイト目か２バイト目の２通りしか考えられないため、前述のベリファイの最大回数を減らし、処理時間を減少させることができる。
【００４２】
（実施の形態３）
図８と図９はＮＡＬ＿ＬＥＮのどの位置にＡＶＣ禁止パターンが発生するかを示している。図８はＮＡＬ＿ＬＥＮが３バイトの場合であり、図９はＮＡＬ＿ＬＥＮが４バイトの場合である。これをみればわかるように、ある値より小さければ、ＮＡＬ＿ＬＥＮの上位バイトにＡＶＣ禁止パターンが必ず出現する。
【００４３】
図１０はＮＡＬ＿ＬＥＮの上位バイトにＡＶＣ禁止パターンが出現する、ＮＡＬ＿ＬＥＮの最大値を示している。行方向はＮＡＬ＿ＬＥＮのバイト長の違いを示しており、列方向は、ＡＶＣ禁止パターンのうち、サーチ対象とするパターンの違いを示している。ＮＡＬ＿ＬＥＮ＝５は現在の規格では認められていないが、参考として示している。
【００４４】
この表から、ＮＡＬ＿ＬＥＮが大きいほど、ＮＡＬ＿ＬＥＮの値が表に示す最大値以下であれば、常にＡＶＣ禁止パターンが出現することがわかる。したがって、ＮＡＬ＿ＵＮＩＴのサイズを表現するために必要最小なＮＡＬ＿ＬＥＮの長さとするのではなく、ＮＡＬ＿ＵＮＩＴサイズの最大値が表に示すいずれか以下になるように、ＮＡＬ＿ＬＥＮを設定するというＭＰ４多重化方法は、ＡＶＣ禁止パターンは常にＮＡＬ＿ＬＥＮの最上位バイトに出現するので、ＭＰ４逆多重化装置において、ＮＡＬ＿ＬＥＮを容易に確実に発見できる。
【００４５】
あるいは、ＮＡＬ＿ＬＥＮはＭＰ４のサンプル単位に設定可能であるが、値を変更すると、ＭＰ４ヘッダのサイズが増加するという問題がある。したがって、ＮＡＬ＿ＬＥＮを常に固定しておく、特に、十分に大きなＮＡＬ＿ＬＥＮで固定する（例えば４バイト）という、ＭＰ４多重化方法は、ＭＰ４ヘッダサイズの減少と、ＮＡＬ＿ＬＥＮの上位バイトにＡＶＣ禁止パターンが出現するという効果を同時に得ることができる。
【００４６】
あるいは、表の列方向で示しているが、表現可能なＮＡＬ＿ＬＥＮの最大値を減少させると、ＮＡＬ＿ＬＥＮの最上位２バイトに出現するＡＶＣ禁止パターンの個数が制限できるので、ＭＰ４逆多重化装置において、ＡＶＣ禁止パターンの処理を簡略化できる。例えば、ＮＡＬ＿ＬＥＮの長さを４バイトとし、ＮＡＬ＿ＬＥＮの値が  ６５５３５バイトを超えないようにするＭＰ４多重化方法は、ＮＡＬ＿ＬＥＮの上位１バイトと２バイトに、常に０ｘ００  ００  の１パターンのみが出現するので、ＭＰ４逆多重化装置において、極めて容易に探索可能となる。
【００４７】
このように、ＮＡＬ＿ＬＥＮの大きさを十分に確保するＭＰ４多重化方法は、これの出力するＭＰ４データを入力するＭＰ４逆多重化装置において、ＮＡＬ＿ＬＥＮの探索が容易になるという効果が得られる。
【００４８】
（実施の形態４）
ＮＡＬ＿ＬＥＮの上位２バイトにＡＶＣ禁止パターンを発生させると、ＭＰ４逆多重化装置において、ＮＡＬ＿ＬＥＮを探索することが可能になる。ＭＰＥＧ−４  ＡＶＣ  ビデオエンコーダは、入力動画信号をＭＢ単位に順次符号化し、符号化動画情報を出力ビデオバッファへ、ＮＡＬ＿ＵＮＩＴの形式で出力していく。スライスやピクチャなどの単位で出力が完了したならば、バッファのデータは、ＮＡＬ＿ＵＮＩＴのサイズ情報とともに、ＭＰ４多重化手段へ送られる。ＭＰ４多重化手段において実行されるＭＰ４多重化方法は次のように処理を行う。ＮＡＬ＿ＵＮＩＴのサイズが図１０に示すＡＶＣ禁止パターンが出現するサイズよりも大きい場合には、サイズの小さなＮＡＬ＿ＵＮＩＴを挿入する。ＭＰ４多重化方法が、大きなＮＡＬ＿ＵＮＩＴの直前に、常に小さなＮＡＬを挿入することにより、ＭＰ４逆多重化手段において、大きなＮＡＬの一つ前からデコード処理を再開することが可能となる。付加するＮＡＬ＿ＵＮＩＴはサイズが小さいことが必須であり、かつ生成が簡単であることが望ましい。
【００４９】
たとえば、Ｓｕｐｐｌｅｍｅｎｔａｌ  ｅｎｈａｎｃｅｍｅｎｔ  ｉｎｆｏｒｍａｔｉｏｎ  （ＳＥＩ）  の一種であり、ピクチャのタイプを示す  Ｐｉｃｔｕｒｅ  ｄｅｌｉｍｉｔｅｒ  ＳＥＩ  は、サイズが小さく、かつ、ピクチャタイプはビデオコーダを管理する上位システムにおいても重要な情報であるため、付加するＮＡＬとして望ましい。あるいは、独自なデータを格納可能な  Ｕｓｅｒ  ｄａｔａ  ｕｎｒｅｇｉｓｔｅｒｅｄ  ＳＥＩ  は、中に記述するデータを独自に決定できるので、処理が容易という点で望ましい。あるいは、ＨＲＤ  ｐｉｃｔｕｒｅ  ＳＥＩ  はＭＰ４逆多重化装置における、ピクチャの削除タイミングを示す情報であるが、これもビデオデコーダを管理する上位システムで重要な情報であるため、付加するＮＡＬとして望ましい。
【００５０】
図１１は上記のようなＭＰ４多重化方法を行う、ＭＰ４多重化装置のブロック図である。ＭＰ４多重化装置は、入力されるＭＰＥＧ−４ＡＶＣビデオストリームを一時的に格納するＮＡＬバッファ０１００と、ＮＡＬバッファに格納されているＮＡＬ＿ＵＮＩＴと、そのサイズ情報であるＮＡＬ＿ＬＥＮとを連結する、ＡＶＣＡＵ連結手段０１０９と、さらに、ＮＡＬ挿入手段０１０５とからなる。ＮＡＬ挿入手段０１０５は、ＮＡＬバッファ０１００からＮＡＬ＿ＵＮＩＴのサイズ情報を取得し、もしそのサイズが、ＡＶＣ禁止パターンが出現しないほど大きい場合には、前述のサイズの小さなＳＥＩを格納するＮＡＬ＿ＵＮＩＴのデータを生成し、これをＡＶＣＡＵ連結手段０１０９へ出力する。ＡＶＣＡＵ連結手段０１０９は小さなＮＡＬを先にＭＰＥＧ−４ＡＶＣＡｃｃｅｓｓＵｎｉｔへ格納した後、本来のＮＡＬ＿ＵＮＩＴをＭＰＥＧ−４ＡＶＣＡｃｃｅｓｓＵｎｉｔへと格納する。
【００５１】
あるいは、ＭＰＥＧ−４ＡＶＣビデオエンコーダにおいて、ＮＡＬ＿ＬＥＮにＡＶＣ禁止パターンが常に出現するように制御してもよい。つまり、ＭＰＥＧ−４  ＡＶＣ  ビデオエンコーダは、入力動画信号をＭＢ単位に順次符号化し、符号化動画情報を出力ビデオバッファへ、ＮＡＬ＿ＵＮＩＴの形式で出力していく。その際、バッファに出力されているＮＡＬ＿ＵＮＩＴのサイズを、ビデオエンコーダにフィードバックさせ、ＡＶＣ禁止パターンが常に出現する値を超える前に、新しいスライスを出力し、ＮＡＬ＿ＵＮＩＴを完了させる。このようなＭＰ４多重化方法を用いることで、ＭＰ４逆多重化装置において、ＮＡＬ＿ＬＥＮをサーチ可能となる。
【００５２】
図１２は上記のようなビデオエンコーダ処理を含むＭＰ４多重化装置のブロック図である、ＭＰＥＧ−４ＡＶＣエンコーダ０２０１は、ＮＡＬバッファ０２０２にＮＡＬ＿ＵＮＩＴを順次出力するが、そのサイズ情報をビデオエンコーダ０２０１へとフィードバックさせておき、所定のサイズを超えないうちに、ＮＡＬ＿ＵＮＩＴをスライス単位などで一度完了させる。ＡＶＣＡＵ連結手段０２０３はＮＡＬ＿ＵＮＩＴ単位に、順次ＡＶＣＡＵのデータ構造を作成する。
【００５３】
（実施の形態５）
さらに、上記各実施の形態で示したデータ多重化方法、データ逆多重化方法を実現するためのプログラムを、フレキシブルディスク等の記録媒体に記録するようにすることにより、上記各実施の形態で示した処理を、独立したコンピュータシステムにおいて簡単に実施することが可能となる。
【００５４】
図１３は、上記上記各実施の形態のデータ多重化方法、データ逆多重化方法を、フレキシブルディスク等の記録媒体に記録されたプログラムを用いて、コンピュータシステムにより実施する場合の説明図である。
【００５５】
図１３  （ｂ）  は、フレキシブルディスクの正面からみた外観、断面構造、及びフレキシブルディスクを示し、図１３（ａ）  は、記録媒体本体であるフレキシブルディスクの物理フォーマットの例を示している。フレキシブルディスクＦＤはケースＦ内に内蔵され、該ディスクの表面には、同心円状に外周からは内周に向かって複数のトラックＴｒが形成され、各トラックは角度方向に１６のセクタＳｅに分割されている。従って、上記プログラムを格納したフレキシブルディスクでは、上記フレキシブルディスクＦＤ上に割り当てられた領域に、上記プログラムが記録されている。
【００５６】
また、図１３  （ｃ）  は、フレキシブルディスクＦＤに上記プログラムの記録再生を行うための構成を示す。データ多重化方法、データ逆多重化方法を実現する上記プログラムをフレキシブルディスクＦＤに記録する場合は、コンピュータシステムＣｓから上記プログラムをフレキシブルディスクドライブを介して書き込む。また、フレキシブルディスク内のプログラムによりデータ多重化方法、データ逆多重化方法を実現する上記データ多重化方法、データ逆多重化方法をコンピュータシステム中に構築する場合は、フレキシブルディスクドライブによりプログラムをフレキシブルディスクから読み出し、コンピュータシステムに転送する。
【００５７】
なお、上記説明では、記録媒体としてフレキシブルディスクを用いて説明を行ったが、光ディスクを用いても同様に行うことができる。また、記録媒体はこれに限らず、ＩＣカード、ＲＯＭカセット等、プログラムを記録できるものであれば同様に実施することができる。
【００５８】
【発明の効果】
以上の様に、スタートコードの無いＭＰＥＧ−４ＡＶＣビデオストリームにおいても、ＭＰ４ファイルフォーマットに格納する場合において、ＮＡＬ＿ＬＥＮを探索できる本発明の方法を用いることで、ビデオの基本単位であるＮＡＬ＿ＵＮＩＴをエラー発生時に探索可能となり、その実用的価値が高い。
【図面の簡単な説明】
【図１】本発明のＮＡＬ＿ＬＥＮ探索方法の概念図
【図２】ＭＰ４ファイルへのＭＰＥＧ−４ＡＶＣストリームを格納する方法を説明する概念図
【図３】ＭＰＥＧ−４  ＡＶＣ  Ａｃｃｅｓｓ  Ｕｎｉｔのデータ読み出し、及び、ＮＡＬ＿ＬＥＮにエラーが発生した場合の障害についての概要図
【図４】４バイトのＮＡＬ＿ＬＥＮの例を示す図
【図５】ＡＶＣ禁止パターンのサーチ動作のフロー図
【図６】ＡＶＣ禁止パターンがＮＡＬ＿ＬＥＮの１バイト目以外から始まる例を示す図
【図７】本発明のＡＶＣ禁止パターンの検証（ベリファイ）の動作フロー図
【図８】３バイトのＮＡＬ＿ＬＥＮ内に出現する可能性のあるＡＶＣ禁止パターン図
【図９】４バイトのＮＡＬ＿ＬＥＮ内に出現する可能性のあるＡＶＣ禁止パターン図
【図１０】本発明のＭＰ４多重化装置における、ＮＡＬ＿ＬＥＮに基づく処理が従う、特別なＮＡＬ＿ＬＥＮの値の一覧図
【図１１】大きなＮＡＬ＿ＵＮＩＴの前に、小さなＮＡＬ＿ＵＮＩＴを挿入する、本発明のＭＰ４多重化装置の構成図
【図１２】ビデオエンコーダにおいて所定のサイズを超えないように制御を行う、本発明のＭＰ４多重化装置の構成図
【図１３】上記各実施の形態のデータ多重化方法、データ逆多重化方法をコンピュータシステムにより実現するためのプログラムを格納するための記録媒体についての説明図
【符号の説明】
ＮＡＬ＿ＬＥＮ  ＮＡＬ＿ＵＮＩＴのサイズ
ＮＡＬ＿ＵＮＩＴ  ＭＰＥＧ−４  ＡＶＣビデオストリームの基本単位
ＡＶＣ禁止パターン  ＮＡＬ＿ＵＮＩＴに出現しない特別なデータの並び
キーパターン  ＡＶＣ禁止パターンの前に０ｘ００を付与したパターン
Ｃｓ  コンピュータ・システム
ＦＤ  フレキシブルディスク
ＦＤＤ  フレキシブルディスクドライブ
【図１】
2004159015.tif 000003
【図２】
2004159015.tif 000004
【図３】
2004159015.tif 000005
【図４】
2004159015.tif 000006
【図５】
2004159015.tif 000007
【図６】
2004159015.tif 000008
【図７】
2004159015.tif 000009
【図８】
2004159015.tif 000010
【図９】
2004159015.tif 000011
【図１０】
2004159015.tif 000012
【図１１】
2004159015.tif 000013
【図１２】
2004159015.tif 000014
【図１３】
2004159015.tif 000015