(57)【特許請求の範囲】
【請求項１】
ユニークな同期ワードと符号化データからなるデータストリーム中の同期ワードの探索方法であって、
前記データストリームをバッファメモリへ読み込むステップと、
前記バッファメモリへ読み込んだ前記データストリーム中の前記同期ワードを探索するステップと、
前記同期ワードと前記同期ワードに引き続く前記符号化データの復号を行うステップと、
前記復号データ中のエラーを検出するステップと、
前記同期ワードの読み込み中に前記エラーを検出したとき、前記バッファメモリ中のデータストリームを所定のビット数読み戻し、前記同期ワードを探索するステップへ戻るステップからなることを特徴とする同期ワード探索方法。
【請求項２】
ユニークな同期ワードと符号化データからなるデータストリーム中の同期ワードの探索回路であって、
前記データストリームを読み込むバッファメモリと、
前記バッファメモリへ読み込んだ前記データストリーム中の前記同期ワードを探索する同期ワード探索部と、
前記同期ワード探索部で探索した前記同期ワードの解析を行うヘッダパース部と、
前記ヘッダパース部で前記同期ワードの正常性が確認されたとき、前記同期ワードと前記同期ワードに引き続く符号化データの復号を行う符号化データ復号部と、
前記復号データ中のエラーを検出するエラー検出部と、
前記同期ワードの読み込み中に前記エラー検出部でエラーを検出したとき、前記バッファメモリ中のデータストリームを所定のビット数読戻しを行う読込み位置を制御する読戻し位置制御手段より構成することを特徴とする同期ワード探索回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、動画像を符号化して得られるデータストリーム等の同期ワードの探索に効果のあるものであり、ユニークな同期ワードと可変長符号化データからなるデータストリームの復号時の同期ワードの探索方法に関する。
【０００２】
動画像符号化技術としてはITU-T(International Telecommunication Union-  Telecommunication Standardization Sector) で標準化されたH.261/H.263 、ISO(International Organization for Standardization) で標準化されたMPEG(Moving Picture Experts Group)-1/2/4等がある。
【０００３】
これらの動画像伝送において、データストリームから確実に同期ワードを探索して、復号したデータの欠落することのない動画像を表示することが要求されている。
【０００４】
【従来の技術】
図９は従来技術を説明する図を示す。
【０００５】
図中の１００は、入力したデータストリームを一時的に記憶しておくバッファメモリであり、２００は記憶したバッファメモリ１００からデータストリームを取り出し、その中の同期ワードを探索する同期ワード探索部であり、３００は同期ワードが探索され、その位置が確定したとき、データストリーム中のヘッダ部を取り出し、ヘッダの解析を行うヘッダパース部である。
【０００６】
また、４００はヘッダパース部３００でヘッダの正常性が確認されたのち、引き続き入力する可変長符号化データを復調する符号化データ復号部であり、５００は符号化データ復号部４００で復号された復号データのエラーを検出するエラー検出部である。
【０００７】
図の構成において、入力したデータストリームはバッファメモリ１００に一時的に記憶された後、同期ワード探索部２００に読み込まれ同期ワードを探索する。同期ワードが探索されれば、その同期ワード位置からヘッダを抽出し、そのヘッダの正常性を解析する。ヘッダが正常な場合は次いで入力される可変長符号化データの復号処理を行い、復号データの中のエラーをエラー検出部５００にて検出する。
【０００８】
ここで、復号処理の途中でエラーを検出したときは復号処理を停止させることは可能であるが、復号処理を停止させると、エラー発生以降の可変長符号化データの復号ができなくなるので、この方法を採用した場合は、エラーが発生する都度、例えば、復号された動画像を監視している操作者がかかる同期ワードの探索回路の再起動を行うことが必要となり、復号処理の効率が悪くなる。
【０００９】
そこで、データストリームを復号している途中でエラーを検出したときは、その時点から同期ワードの探索を行い、同期ワードの探索ができたところから、復号処理を再開することが行われている。
【００１０】
ここで、データストリーム中のエラーの検出方法としては、
▲１▼  存在しない可変長符号を復号したとき。
【００１１】
▲２▼  復号結果の矛盾を検出したとき。
【００１２】
をエラー発生と判定している。
【００１３】
▲２▼は復号したデータの値が予め決められている値の範囲を超えた場合等であり、通常は▲１▼、▲２▼を組み合わせてエラーの検出を行っている。
【００１４】
【発明が解決しようとする課題】
上述の従来の技術において、可変長符号化データを復号しているときのエラーの検出ポイントは可変長符号化データを復号している途中の場合がある。このエラー混入を検出できずに復号処理を続け、ユニークな同期ワードの読込み中にエラーを検出する場合もある。このとき、エラー検出したポイントから同期ワードの探索を始めると、エラーを検出した位置にある同期ワードの検出ができなくなり、次の同期ワードまでの間の可変長符号化データの復号ができなくなる。
【００１５】
図１０は従来技術の動作を説明する図であり、上述の動作を説明するものである。
【００１６】
（Ａ）は入力するデータストリームの例を示し、同期ワードの後に可変長符号化データ（図中可変長符号列と示す）が続き、同期ワードと可変長符号化データとが交互に入力する。
【００１７】
（Ｂ）はデータストリームの復号中にエラーを検出したときの動作を示す。
【００１８】
▲１▼  可変長符号化データを復号している状態で▲１▼点の×印の位置にエラーが発生したが、エラーを検出できずに復号動作を継続している。
【００１９】
▲２▼  同期ワードの途中の▲２▼の点でこのエラー発生を検出する。
【００２０】
▲３▼  エラーを検出したので、この時点から次の同期ワードの探索動作に入る。
【００２１】
▲４▼  次の▲４▼の点で同期ワードを検出し、復号動作を再開する。この場合は網かけした▲３▼の部分の可変長符号化データは復号できない。
【００２２】
このようなエラー検出時の復号されない可変長符号化データの発生を防ぐには、ユニークな同期ワードを検出するハードウェアと、可変長符号化データを復号するハードウェアの２つのハードウェアを準備し、これらの２つのハードウェアを独立して、並列で動作させることにより可能であるが、２つのハードウェアが必要となるのでハードウェアのコストが大きくなる。また、ソフトウェアでユニークな同期ワードを検出と、可変長符号化データを復号する処理を並列で行うこともできるが、かかる構成では並列処理を行うためのメモリ等の資源を大量に使用するので復号回路がコストアップとなる。
【００２３】
本発明は、ユニークな同期ワードと符号化データからなるデータストリームの復号処理において、エラーを検出したとき、所定のビット数の読戻しを行ったあと、同期ワードの探索を行うことにより、復号されない符号化データの発生を防止することのできる同期ワード探索方法を実現することを目的とする。
【００２４】
【課題を解決するための手段】
図１は本発明の第１の原理を説明する図である。図はユニークな同期ワードと符号化データからなるデータストリームの復号時の同期ワードの探索方法を示し、ステップ１は、データストリームをバッファメモリへ読み込み、ステップ２は、バッファメモリへ読み込んだデータストリーム中の同期ワードを探索し、ステップ３は、データストリーム中の同期ワードを探索し、同期ワードに引き続く符号化データの復号を行い、ステップ４は、符号化データの復号データ中のエラー検出を行う。次いで、ステップ５は、符号化データの復号データ中にエラーを検出したとき、バッファメモリ中のデータを所定のビット数の読み戻しを行い、ステップ２に戻って同期ワードの探索を行い、ステップ６は同期ワードの探索ができたあとの符号化データから復号を行い復号データを出力する。
【００２５】
かかる処理により、同期ワードの探索中に符号化データのエラーを検出しても、所定のビット数、読戻しを行った上で同期ワードの探索を行うので、同期ワードの探索もれがなくなり、符号化データの復号もれを防止できる。
【００２６】
図２は第１の発明の動作を説明する図である。入力するデータストリームは図１０で説明したものと同じ構成をもつものとする。
【００２７】
▲１▼  符号化データを復号している状態で▲１▼点にエラーが発生したがエラーを検出できずに復号動作を継続している。
【００２８】
▲２▼  同期ワードの途中の▲２▼の点でエラーを検出する。
【００２９】
▲３▼  エラーを検出したので、所定のビット数の読戻しを行う。
【００３０】
▲４▼  次の同期ワードの探索に入り、エラーが発生した符号化データの次の同期ワードで同期ワードを探索する。
【００３１】
▲５▼  以降、正常な復号処理に入る。網かけで示す符号化データは、従来技術においては、復号不能であるが、本発明では復号可能となる。（請求項１）
また、読み戻しを行うときの所定のビット数を符号化データの最大符号長以上の値とすることで、同期ワードの見逃しを防ぐことができる。さらに、読み戻しを行うときの所定のビット数を同期ワードの符号長を超えない値とする。これは、読み戻しを行う時の所定のビット数が同期ワードの符号長を超えていると、エラー検出時に次の同期ワードの探索を行うとき前回探索した同期ワードを検出してしまい、それによりループ動作に陥ってしまう。そこで、同期ワードの符号長を超えない値とすることによりループ動作に陥ることを防ぐことができる。そして、読み戻しの位置を同期ワードの位置より後にすることにより、確実に次の同期ワードの探索を行い、可変長符号化データの復号もれを少なくすることが可能となる。
【００３２】
図３は本発明の第２の原理を説明する図である。図はユニークな同期ワードと符号化データからなるデータストリームの復号時の同期ワード探索回路を示し、図中の１００はデータストリームを読み込むバッファメモリであり、２００はバッファメモリ１００へ読み込んだデータストリーム中の同期ワードを探索する同期ワード探索部であり、３００は同期ワード探索部２００で探索した同期ワードの解析を行うヘッダパース部であり、４００はヘッダパース部３００で同期ワードの正常性が確認されたとき、該同期ワードに引き続く符号化データの復号を行う符号化データ復号部である。
【００３３】
また、５００は符号化データの復号データ中のエラーを検出するエラー検出部であり、６００はエラー検出部５００で符号化データの復号エラーを検出したとき、所定のビット数の読み戻しを行うための読込み位置を制御する読戻し位置制御手段である。
【００３４】
かかる構成により、バッファメモリ１００中の同期ワードの探索中に、エラー検出部５００で符号化データの復号エラーを検出したとき、読み戻し位置制御手段６００で、所定のビット数、読戻しを行った上で同期ワードの探索を行うので、同期ワードの探索もれがなくなり、符号化データの復号もれを防止できる。（請求項２）
さらに、読戻し位置制御手段６００に、同期ワード探索部２００が探索した同期ワードの位置を記載するレジスタ６２０を設け、読込み位置制御部６１０が読込み位置の制御を行うとき、読戻したビット位置とレジスタ６２０に記憶したビット位置により制御を行う。
【００３５】
かかる構成により、確実に同期ワードの探索を行うことが可能となる。
【００３６】
【発明の実施の形態】
図４は本発明の実施の形態で使用するデータストリームを説明する図示し、図５〜図７は本発明の第１の実施の形態の動作フローチャート（１）〜（３）を示す。
【００３７】
本発明の実施の形態ではＭＰＥＧ−４のデータストリームを使用しており、図４でその構成を説明する。ＭＰＥＧ−４のデータストリームはビデオ・オブジョクト・シーケンス(Video Object Sequence以下ＶＯＳと示す）、ビデオ・オブジョクト・レイヤ(Video Object Layer 以下ＶＯＬと示す）、ビデオ・オブジョクト・プレーン(Video Object Plane 以下ＶＯＰと示す）、ビデオ・パケット(Video Packet 以下ＶＰと示す）からなる階層構造をとっている。ＶＰデータは、動画１フレームの画像を複数のマクロブロックに分割し、その各マクロブロックのデータを符号化したものである。
【００３８】
また、各階層の先頭には図に示すようにヘッダが付けられており、ＶＯＳにはＶＯＳヘッダが、ＶＯＬにはＶＯＬヘッダが、ＶＯＰにはＶＯＰヘッダが、ＶＰにはＶＰヘッダが付けられている。
【００３９】
さらに、各ヘッダの先頭には、ユニークな同期ワードとして、スタートコードが付けられており、ＶＯＳにはＶＯＳスタートコードが、ＶＯＬにはＶＯＬスタートコードが、ＶＯＰにはＶＯＰスタートコードが、ＶＰにはＶＰスタートコードが付けられている。
【００４０】
以下本発明の実施の形態の動作を図５〜図７にしたがって説明する。
【００４１】
Ｓ１１は、入力したデータストリームを格納したバッファメモリ１００のデータを順次、取り出して、例えば、３２ビットで構成されるＶＯＳ同期ワードの探索を行う。Ｓ１２で同期ワードを検出したとき、ＶＯＳスタートコードか否かを判定し、Ｓ１３でスタートコードが探索できた場合は、ＶＯＳスタートコードのビット位置をレジスタ（図８で説明する）６２０に格納する。Ｓ１４は、探索したＶＯＳヘッダの解析を行い、Ｓ１５でエラー検出か否かを判定し、エラー検出の場合はエラー終了する。Ｓ１６は、Ｓ１２でＶＯＳスタートコードでなければ、ＶＯＳエンドコードか否かを判定し、エンドコードの場合でない場合はエラー終了し、エンドコードの場合は正常終了となる。
【００４２】
Ｓ２１は、Ｓ１５で探索したＶＯＳヘッダにエラーがなければ、ＶＯＬ同期ワードの探索を行う。Ｓ２２でＶＯＬ同期ワードを検出した後、ＶＯＬスタートコードか否かを判定し、ＶＯＬスタートコードが検出できなかった場合は▲１▼でＳ１１のＶＯＳ同期ワードの探索に戻り、ＶＯＬスタートコードが探索できた場合は、Ｓ２３でＶＯＬスタートコードのビット位置をレジスタ６２０に格納する。Ｓ２４は、探索したＶＯＬヘッダの解析を行い、Ｓ２５でエラー検出か否かを判定し、エラー検出の場合は、Ｓ２６で次のＶＯＬ同期ワードを検出してＳ２２に戻る。Ｓ２５でエラーが検出できない場合は、▲２▼の次のＳ３１の処理に進む。
【００４３】
Ｓ３１は、Ｓ２５で探索したＶＯＬヘッダにエラーがなければ、ＶＯＰ同期ワードの探索を行う。ＶＯＰ同期ワードを検出した後、Ｓ３２でＶＯＰスタートコードか否かを判定し、ＶＯＰスタートコードが検出できなかった場合は▲３▼でＳ２１のＶＯＬ同期ワードの探索に戻り、ＶＯＰスタートコードが探索できた場合は、Ｓ３３でＶＯＰスタートコードのビット位置をレジスタ６２０に格納する。Ｓ３４は、探索したＶＯＰヘッダの解析を行い、Ｓ３５でエラー検出か否かを判定し、エラー検出の場合は、Ｓ３６で次のＶＯＰ同期ワードを検出してＳ３２に戻る。Ｓ３５でエラーが検出できない場合は、次のＳ４１の処理に進む。
【００４４】
Ｓ４１は、Ｓ３５で探索したＶＯＰヘッダにエラーがなければ、ＶＰ同期ワードの探索を行う。ＶＰ同期ワードを検出した後、Ｓ４２でＶＰスタートコードか否かを判定し、ＶＰスタートコードが検出できなかった場合は▲４▼でＳ３１のＶＯＰ同期ワードの探索に戻り、ＶＰスタートコードが探索できた場合は、Ｓ４３でＶＰスタートコードのビット位置をレジスタ６２０に格納する。Ｓ４４は、探索したＶＰヘッダの解析を行い、Ｓ４５でエラー検出か否かを判定し、エラー検出の場合は、Ｓ４６で次のＶＰ同期ワードを検出してＳ４２に戻る。Ｓ４５のヘッダパースでエラーが検出できない場合は、▲５▼のＳ５１に進む。
【００４５】
Ｓ５１は、Ｓ４５でエラーを検出できない場合、ＶＰデータの復号を行ったのち、Ｓ５２でＶＰデータの復号データ中にエラーがあるか否か、または復号結果に矛盾があるか否かを検出する。この復号結果の矛盾は、現在復号したマクロブロックの番号が、１フレーム中の最大マクロブロック数より大きい場合や、１つのビデオ・パケットの中に含まれるマクロブロックの数が、ヘッダから読み込んだ値と実際復号したマクロブロックの数と不一致の場合等である。Ｓ５２でエラー、または復号結果の矛盾が検出した場合は▲６▼のＳ４１に戻り次のＶＰスタートコードの探索を行う。Ｓ５２でエラー、または復号結果の矛盾を検出できない場合は、Ｓ５３でスタートコードのビット数と同じ３２ビットの読戻しを行い、Ｓ５４で読戻しを行ったビット位置がレジスタ６２０に格納されている位置より前か否かを判定し、ビット位置がレジスタ６２０に格納されている位置より前の場合には、Ｓ５５でＶＰ同期ワードの探索を開始する位置をレジスタ６２０に記憶された位置「＋１」したビット位置とする。
【００４６】
かかる処理により、ＶＰデータの復号結果にエラーを検出した場合でも、指定のビット数の読戻しを行った上で、同期ワードの探索を行うので、エラーが発生した可変長符号化データの次に来る同期ワードから確実に同期ワードの検出を行うことが可能となる。
【００４７】
図７のＳ５３では、同期ワードのビット数である３２ビット読戻しを行っている。この３２ビットの読戻しにより、エラーを発生した可変長符号化データの発生した時点で入力している同期ワードの検出が可能となる。さらに、前回の同期ワードより後の同期ワードから探索を開始することにより、同じ同期ワードを検出することによるループの発生を防止することができる。
【００４８】
図８は本発明の第２の実施の形態を説明する図である。図中のバッファメモリ１００、同期ワード探索部２００、ヘッダパース部３００、符号化データ復号部４００、エラー検出部５００は図１の原理図で説明したと同じ構成をもつものである。
【００４９】
図８の第２の実施の形態においては、原理図で説明した読戻し位置制御手段６００に、エラー検出部５００で復号データ中にエラーを検出したときの読込み位置を制御する読込み位置制御部６１０と、読戻しを行うときの読戻しビット数を設定する読戻しビット数設定部（図中読戻ビット数設定部と示す）６１１、同期ワードを検出したときのビット位置を記憶しておくレジスタ６２０と、データストリームのビット位置をカウントするカウンタ６３０から構成している。図の構成において、入力したデータストリームはバッファメモリ１００に格納され、順次、同期ワード探索部２００に、読み込まれたビット位置をカウンタ６３０でカウントしながら入力され、同期ワードの探索を行う。同期ワードが探索されたとき、そのビット位置をレジスタ６２０に記憶しておく。
【００５０】
ついで、探索された同期ワードをヘッダパース部３００で解析し、ヘッダが正常であれば、可変長符号化データ復号部４００で、同期ワードに引続く可変長符号化データを復号し、エラー検出部５００でエラーの検出を行い、エラーが検出できなければ、次の同期ワードの探索を行い、同期ワードが探索できれば、次の可変長符号化データの復号処理を繰り返し実行する。
【００５１】
エラーが検出された場合は、読戻しビット数設定部６１１に設定されたビット数、データストリームの読戻しを行ったのち、同期ワード探索部２００で次の同期ワードの探索を開始する。
【００５２】
このとき、符号化データの最大符号長以上の値を読戻しビット数として読戻しビット数設定部６１１に設定しておくことにより、同期ワードの見逃しを防ぐことができる。また、同期ワードが３２ビットの場合、読戻しビット数設定部６１１に３２ビットを設定しておき、３２ビットの読戻しを行った後、同期ワードの探索を行うことにより、エラーが発生した可変長符号化データの次の同期ワードを確実に探索することができる。さらに、読戻しを行ったときの、戻ったビット位置が、レジスタ６２０に記憶したビット位置と比較し、レジスタ６２０のビット位置より前にある場合には、レジスタ６２０の値「＋１」したビット位置から、同期ワードの探索を行うことにより、無限ループに陥ることを防止することができる。
【００５３】
（付記１）  ユニークな同期ワードと符号化データからなるデータストリーム中の同期ワードの探索方法であって、
データストリームをバッファメモリへ読み込むステップと、
バッファメモリへ読み込んだデータストリーム中の同期ワードを探索するステップと、
データストリーム中の同期ワードを探索し、同期ワードに引き続く符号化データの復号を行うステップと、
符号化データの復号データ中のエラーを検出するステップと、
復号データ中のエラーを検出したとき、バッファメモリ中のデータを所定のビット数読み戻し、同期ワードを探索するステップへ戻るステップからなることを特徴とする同期ワード探索方法。
【００５４】
（付記２）  付記１記載の同期ワード探索方法において、
読み戻しを行うときの所定のビット数を符号化データの最大符号以上の値とすることを特徴とする同期ワード探索方法。
（付記３）  付記１記載の同期ワード探索方法において、
読み戻しを行うときの所定のビット数を前回の同期ワードの符号長を超えない値とすることを特徴とする同期ワード探索方法。
【００５５】
（付記４）  付記１記載の同期ワード探索方法において、
読み戻しの位置を前回の同期ワードの探索位置より後にすることを特徴とする同期ワード探索方法。
【００５６】
（付記５）  ユニークな同期ワードと符号化データからなるデータストリーム中の同期ワードの探索回路であって、
データストリームを読み込むバッファメモリと、
前記バッファメモリへ読み込んだデータストリーム中の同期ワードを探索する同期ワード探索部と、
前記同期ワード探索部で探索した同期ワードの解析を行うヘッダパース部と、
前記ヘッダパース部で同期ワードの正常性が確認されたとき、該同期ワードに引き続く符号化データの復号を行う符号化データ復号部と、
符号化データ中のエラーを検出するエラー検出部と、
前記エラー検出部でエラーを検出したとき、所定のビット数読戻しを行う読込み位置を制御する読戻し位置制御手段より構成することを特徴とする同期ワード探索回路。
【００５７】
（付記６）  付記５記載の同期ワード探索回路において、
前記同期ワード探索部が探索した同期ワードの位置を記憶するレジスタを備え、
前記読込み位置制御手段が読込み位置の制御を行うとき、読戻したビット位置とレジスタに記憶したビット位置により制御を行うことを特徴とする同期ワード探索回路。
【００５８】
【発明の効果】
本発明によれば、ユニークな同期ワードと可変長符号化データからなるデータストリームの復号処理において、エラーを検出したとき、所定のビット数の読戻しを行ったあと、同期ワードの探索を行うことにより、復号されない可変長符号化データの発生を防止することのできる同期ワード探索方法を実現することができる。
【図面の簡単な説明】
【図１】  本発明の第１の原理を説明する図
【図２】  第１の発明の動作を説明する図
【図３】  本発明の第２の原理を説明する図
【図４】  本発明の実施の形態で使用するデータストリームを説明する図
【図５】  本発明の第１の実施の形態の動作フローチャート（１）
【図６】  本発明の第１の実施の形態の動作フローチャート（２）
【図７】  本発明の第１の実施の形態の動作フローチャート（３）
【図８】  本発明の第２の実施の形態を説明する図
【図９】  従来技術を説明する図
【図１０】  従来技術の動作を説明する図
【符号の説明】
１００  バッファメモリ
２００  同期ワード探索部
３００  ヘッダパース部
４００  符号化データ復号部
５００  エラー検出部
６００  読戻し位置制御手段
６１０  読込み位置制御部
６１１  読戻しビット数設定部
６２０  レジスタ
６３０  カウンタ
【図１】
0004604341.tif 000002
【図２】
0004604341.tif 000003
【図３】
0004604341.tif 000004
【図５】
0004604341.tif 000005
【図６】
0004604341.tif 000006
【図７】
0004604341.tif 000007
【図８】
0004604341.tif 000008
【図９】
0004604341.tif 000009
【図１０】
0004604341.tif 000010
【図４】
0004604341.tif 000011