(57)【要約】【課題】  符号化データのシンタックス及びセマンティクスのエラーを検出して訂正する。【解決手段】  検出部１００、１０１は符号化データにシンタックス及びセマンティクスエラーが存在するか否かを検出して、エラーの存在情報、エラーが存在する位置を示す第１の位置情報、エラーが存在する範囲を示す第１の範囲情報、及びエラーが存在する位置での符号化タイプを示す第１の種別情報のうち少なくとも１つ以上をエラー検出情報２０として出力し、置換情報生成部２００、２０１はエラー検出情報に基づきあらかじめ用意した１つ以上の符号列の中から１つ以上の置換符号列を選択し、置換符号列とエラー検出情報に基づいて作成した、符号化データの置換すべき第２の位置情報と符号化データの置換すべき第２の範囲情報に置換符号列を加えた置換情報３０を生成し、ビットストリーム置換部３００は置換情報に基づき符号化データをエラーを訂正したビットストリーム５０に置換する。【選択図】  図２
2006262406.tif 000002
【特許請求の範囲】
【請求項１】
動き補償予測を用いて符号化された符号化データが入力され、その入力された符号化データにシンタックスのエラーが存在するか否かを検出するとともに、前記符号化データにセマンティクスのエラーが存在するか否かを検出して、前記エラーの存在情報、前記エラーが存在する位置を示す第１の位置情報、前記エラーが存在する範囲を示す第１の範囲情報、及び前記エラーが存在する位置での符号化タイプを示す第１の種別情報のうち少なくとも１つ以上をエラー検出情報として出力するエラー検出部と、
前記エラー検出情報に基づき、あらかじめ用意した１つ以上の符号列の中から１つ以上の置換符号列を選択し、前記選択した置換符号列と前記エラー検出情報に基づいて前記符号化データの置換すべき位置を示す第２の位置情報と前記符号化データの置換すべき範囲を示す第２の範囲情報を作成し、前記作成した第２の位置情報及び第２の範囲情報に前記選択した置換符号列を加えた置換情報を生成する置換情報生成部と、
前記置換情報生成部の前記置換情報に基づき、前記符号化データを、前記検出されたエラーを訂正した符号化データに置換する置換部とを、
備えた符号化データ生成装置。
【請求項２】
前記エラー検出部は、セマンティクスのエラー検出において、符号化データに所定の符号化条件を満足しないエラーが存在するかを検出し、前記所定の符号化条件を満足しないエラーの存在情報、前記所定の符号化条件を満足しないエラーが存在する位置を示す位置情報、前記所定の符号化条件を満足しないエラーが存在する範囲を示す範囲情報、及び前記所定の符号化条件を満足しないエラーが存在する位置での符号化タイプを示す種別情報のうち少なくとも１つ以上をセマンティクスエラー検出情報として出力することを特徴とする請求項１に記載の符号化データ生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動き補償予測を用いて符号化された符号化データのエラーを訂正して符号化データを生成する符号化データ生成装置に関する。
【背景技術】
【０００２】
動画像信号を伝送若しくは蓄積する場合、効率化のため圧縮符号化されビットストリームとすることが多い。動画像の圧縮符号化方式としてＭＰＥＧ（Moving Picture Experts Group,以下ＭＰＥＧなど）の方式が標準化され、広く用いられている。よって、動画像信号をＭＰＥＧなどの方式で圧縮し、ビットストリームとして扱うことは、伝送系若しくは蓄積系の効率的な利用において非常に重要である。
【０００３】
ところで、上記のような圧縮を伴った符号化規格で圧縮符号化された圧縮符号化データにおいて、シンタックス（符号化データ列規則）のエラーが発生すると、シンタックスエラーの発生した圧縮符号化データの後に続く圧縮符号化データはエラーを回避できる機能を持たない復号器では復号することはできない。ここで、シンタックスエラーとは圧縮符号化データのパース（シンタックス要素を分解すること）を続けることができないエラーである。例えば、ＭＰＥＧなどでは、シンタックスエラーはパースの過程でＶＬＣ（可変長符号化）テーブルにない値が検出された場合や、マクロブロック内のブロック数が規定値と一致しない場合や、ピクチャ内のマクロブロック数が規定値を超えた場合などに検出される。シンタックスエラーは圧縮符号化装置、符号化変換装置、多重化装置にエラーが内在している場合や、圧縮符号化データの伝送や蓄積の途中で起きるエラーをリードソロモンなどのエラー訂正処理で修正できない場合や、パケットの損失が起きた場合などにおいて発生する可能性がある。
【０００４】
シンタックスエラーが検出された場合には、圧縮符号化装置は復号を続けるために次のような動作を行う。一般的な圧縮を伴った符号化データには同期コードが挿入されているため、シンタックスエラーが検出されたデータブロックを廃棄し、次のデータブロックを取得して復号化するというような動作を行う。上述のようにシンタックスエラーが発生した場合の処理方法として、エラーコンシールメントと呼ばれる処理がなされる。  
【０００５】
また、上記のような圧縮を伴った符号化規格で圧縮符号化された圧縮符号化データにおいて、セマンティクス（コンテンツ意味内容記述ツール）のエラーが発生すると、圧縮符号化データを正しく符号化することは一般的にできない。また、セマンティクスエラーによっては復号装置に致命的な破綻が起きることもある。セマンティクスエラーとは圧縮符号化データのパースにおいて起きるエラーではなく、パースして得られた値が規格で定められている制限事項に違反しているために起きるエラーである。例えば、動画像圧縮符号化規格の１つであるＭＰＥＧでは、あるシンタックスエレメントの値が固定値に定義されているにも関わらず、その固定値になっていないようなセマンティクスエラーがある。また、最新の動画像圧縮符号化規格であるＭＰＥＧ−４・ＡＶＣでは、プロファイル、レベルによって制限事項が細かく規定されている。そのため、ベースラインプロファイル・レベル２では規格準拠となる圧縮符号化データが、ベースラインプロファイル・レベル３では規格違反となるようなセマンティクスエラーもある。
【０００６】
セマンティクスエラーは圧縮符号化装置、符号化変換装置において誤った解釈によって符号化された場合に起きる可能性があり、圧縮符号化データの蓄積、伝送、取得過程において発生する場合もある。また、動画像圧縮符号化規格のプロファイル、レベルなどに精通していないユーザが多くの機種の間でデータの相互運用を行う場合に誤った使用をすることでセマンティクスエラーが発生する可能性も高い。また、セマンティクスエラーではないが、システムの運用上で符号化の規格に制限を加える必要がある場合もある。システム上でこのような所定の符号化条件を満たさないエラーは、該当するシステムではビットストリームを取り扱うことができない。上述のようにセマンティクスエラーが発生した場合の処理方法として、エラーコンシールメントと呼ばれる処理がなされる。
【０００７】
このようなエラーコンシールメント技術を用いた従来のシステムとして、下記の特許文献１に記載のシステムは、画像の性質に応じた適切なパケット廃棄補償を行い、復号画像の画質を向上させることができる動画像伝送を実現するものである。すなわち、符号化されているビデオパケットのパケット廃棄を検出し、既に復号されている画像信号により、廃棄パケットでエラーとなった信号を置き換えることによりコンシールメントし、復号信号を生成するシステムである。ゆえに、特許文献１に記載のシステムは、入力はエラーを含むことがあるビットストリームであり、出力はエラーを含むビットストリームが入力された場合はそのエラーを修復した復号画像信号である。
【０００８】
もう１つのエラーコンシールメント技術を用いた従来のシステムとして、下記の特許文献２に記載の装置は、エラー訂正の為に別途ディスク装置を必要とせず、映像データの特性を生かしたディスクアレイ装置を備える映像送出を実現するものである。すなわち、入力映像データを分割してビットストリームとして蓄積し、入力映像データのビットストリームにエラーが発生した場合に、あらかじめ入力映像データより高圧縮されたコンシールメント用ビットストリームを蓄積しておき、コンシールメント用ビットストリームを復号及び再符号化して入力映像データのエラー発生ビットストリームと置き換えるものである。ゆえに、特許文献２の装置は、入力はエラーが発生する可能性のあるビットストリームであり、出力はエラーが発生した場合は、そのエラーが修正されたビットストリームである。
【０００９】
さらに、エラーコンシールメント技術を用いた従来のシステムとして、下記の特許文献３に記載の回路では、実時間上で符号化変換を必要とするようなファクシミリ装置において、符号化直後の正常な１ライン分の符号化情報を一時蓄積できるような符号バッファにより、符号エラーを検出したときに、バッファにある正常な１ライン分の符号化情報を出力することによってコンシールメントするものである。
【特許文献１】特開平７−１１１６５４号公報（要約書）
【特許文献２】特許第３４８２９７１号公報（特許請求の範囲）
【特許文献３】特開昭６３−２９２８７３号公報（特許請求の範囲）
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、以上に述べた、エラーコンシールメント技術を用いたシステム若しくは装置においては次のような課題がある。特許文献１における動画像伝送システムは、エラーコンシールメント後の出力が復号された画像信号であるため、ビットストリーム自体にはエラーが残り、結果として蓄積媒体などに保存したものを他の媒体に移す場合にエラーが伝播するという問題がある。
【００１１】
特許文献２における映像送出装置は、出力はエラーコンシールメントされた入力映像データのビットストリームであるが、コンシールメント用のビットストリームを入力映像データのビットストリームごとに蓄積媒体の中に用意しておく必要があり、入力映像データのビットストリームの増加と共にコンシールメント用ビットストリームのデータが増加し、蓄積媒体を有効に活用しているとはいえない。特許文献３におけるファクシミリのエラー置換回路では、コンシールメント用の符号化情報として直前の正常な１ライン分を記憶するが、動き補償予測符号化を用いる動画像の圧縮符号化ビットストリームにおいては、直前の符号化情報だけでコンシールメントすると、再生画像の画質が大きく劣化する。
【００１２】
本発明は上記従来例の問題点に鑑み、動き補償予測を用いて符号化された符号化データにシンタックス及びセマンティクスのエラーを検出して訂正することができる符号化データ生成装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明は上記目的を達成するために、動き補償予測を用いて符号化された符号化データが入力され、その入力された符号化データにシンタックスのエラーが存在するか否かを検出するとともに、前記符号化データにセマンティクスのエラーが存在するか否かを検出して、前記エラーの存在情報、前記エラーが存在する位置を示す第１の位置情報、前記エラーが存在する範囲を示す第１の範囲情報、及び前記エラーが存在する位置での符号化タイプを示す第１の種別情報のうち少なくとも１つ以上をエラー検出情報として出力するエラー検出部と、
前記エラー検出情報に基づき、あらかじめ用意した１つ以上の符号列の中から１つ以上の置換符号列を選択し、前記選択した置換符号列と前記エラー検出情報に基づいて前記符号化データの置換すべき位置を示す第２の位置情報と前記符号化データの置換すべき範囲を示す第２の範囲情報を作成し、前記作成した第２の位置情報及び第２の範囲情報に前記選択した置換符号列を加えた置換情報を生成する置換情報生成部と、
前記置換情報生成部の前記置換情報に基づき、前記符号化データを、前記検出されたエラーを訂正した符号化データに置換する置換部とを備えた。
【００１４】
また、前記エラー検出部は、セマンティクスのエラー検出において、符号化データに所定の符号化条件を満足しないエラーが存在するかを検出し、前記所定の符号化条件を満足しないエラーの存在情報、前記所定の符号化条件を満足しないエラーが存在する位置を示す位置情報、前記所定の符号化条件を満足しないエラーが存在する範囲を示す範囲情報、及び前記所定の符号化条件を満足しないエラーが存在する位置での符号化タイプを示す種別情報のうち少なくとも１つ以上をセマンティクスエラー検出情報として出力することを特徴とする。
【発明の効果】
【００１５】
本発明によれば、受信した符号化ビットストリームにシンタックス及び／又はセマンティクスのエラーがある場合においても、エラーを検証し、修正した後に蓄積媒体へ保存するので、蓄積媒体から他の媒体への伝送においてエラーが伝播することなく、エラーの無いビットストリームのコピーや編集、エラーコンシールメント機能の無いクライアント側復号器での再生が可能となる。また、エラー訂正情報を入力ビットストリームからあらかじめ用意する必要が無く、蓄積系ではコンシールメント用のデータ蓄積を必要とせずにエラー訂正が可能である。
【発明を実施するための最良の形態】
【００１６】
＜第１の実施の形態＞
以下、図面を参照して本発明の実施の形態について説明する。図１は本発明の第１の実施の形態の符号化データ生成装置としてサーバが用いられる伝送システムを示すブロック図、図２は図１の修正器を詳しく示すブロック図である。
【００１７】
図１の伝送システムは、ビットストリーム生成装置５００と、本発明の第１の実施の形態に係る符号化データサーバ８００と、クライアントである再生装置７００の接続例を示している。ビットストリーム生成装置５００は蓄積媒体５１０にある画像情報を符号化器５２０によって符号化ビットストリームとし、送信器５３０によって伝送路１００１に送信する。符号化データサーバ８００は受信器８１０でいったんビットストリームを受信し、修正器８２０により、エラーがある場合にはビットストリームを修正し、修正されたビットストリームは蓄積媒体３５０に蓄積する。そして、符号化データサーバ８００は蓄積媒体３５０に蓄積されたビットストリームを必要に応じて、送信器８４０により伝送路１００２を介してクライアント側の再生装置７００へ送信する。受信側である再生装置７００は受信器７１０によりビットストリームを受信し、復号器７２０で復号する。
【００１８】
この経路において、ビットストリーム生成装置５００から伝送されるビットストリームが、何らかのエラーを持っていると仮定すると、本発明による符号化データサーバ８００は修正器８２０によりビットストリームのエラーを検証して修正し、蓄積媒体３５０に蓄積することにより、ビットストリーム生成装置５００から符号化データサーバ８００の間にある伝送路１００１で発生する伝送路エラーによる不正なビットストリームを蓄積媒体３５０に記録することを防ぐことが可能である。よって、再生装置７００にビットストリームを送信する際のエラーの伝播を防ぐことができる。
【００１９】
＜シンタックスエラー訂正部＞
修正器８２０はシンタックスエラー訂正部とセマンティクスエラー訂正部を有する。図２に第１の実施の形態におけるシンタックスエラー訂正部のブロック図を示す。図２に示すとおり、シンタックスエラー訂正部は、シンタックスエラー検出部１００と、置換情報生成部２００と、ビットストリーム置換部３００から構成される。ただし以下では、圧縮符号化ビットストリームを単にビットストリームと呼ぶ。
【００２０】
修正器８２０のシンタックスエラー訂正部の全体的な動作について図２を用いて説明する。まず、入力としてビットストリーム１０がシンタックスエラー検出部１００に入力される。シンタックスエラー検出部１００はシンタックスエラーを含んでいるかどうかを検出する。シンタックスエラーの有無、シンタックスエラーの発生位置などをシンタックスエラー検出情報（以下、単に検出情報）２０として出力する。置換情報生成部２００は、検出情報２０を基に、あらかじめ用意したいくつかの符号列の中から、入力ビットストリーム１０のシンタックスエラーを修正するための置換符号列を選択する。選択した置換符号列と、検出情報２０より、置換すべき入力ビットストリーム１０の位置、範囲及び置換符号列を定め、置換情報３０として出力する。ただし、何らかの外部入力４０により置換情報３０が求められてもよい。ビットストリーム置換部３００は、入力ビットストリーム１０と置換情報３０を用いてシンタックスエラーをコンシールメントしたビットストリーム５０を出力し、蓄積媒体３５０に記録する。
【００２１】
シンタックスエラー検出部１００と置換情報生成部２００の動作について詳しく説明する。まず、シンタックスエラー検出部１００のフローチャートを図３に示し、動作について述べる（ステップＳ１０−Ｓ１５）。シンタックスエラー検出部１００は、まず、入力ビットストリーム１０をパースし（ステップＳ１０）、パースしながら入力ビットストリームのシンタックスエラーを検出する（ステップＳ１１）。
【００２２】
シンタックスエラーの検出判定（ステップＳ１２）において、入力ビットストリーム１０がシンタックスエラーを含んでいる場合、シンタックスエラーが存在することを示すフラグと、シンタックスエラーが発生したビットストリーム１０の位置情報、Reversible VLCのようにビットストリームを逆からパース可能な処理を用いた場合には、シンタックスエラーが発生している範囲情報、例えばＭＰＥＧ−４  ＡＶＣの規格ではアクセスユニット単位、スライス単位、マクロブロック単位でのシンタックスエラー発生や、イントラ、インターなどの符号化タイプを示す種別情報を生成し（ステップＳ１３）、検出情報２０として出力する（ステップＳ１５）。他方、入力ビットストリーム１０がシンタックスエラーを含まない場合、シンタックスエラーが存在しないことを示すフラグを生成し（ステップＳ１４）、検出情報２０として出力する（ステップＳ１５）。
【００２３】
ステップＳ１１、Ｓ１２では、例えば、連続していくつかのマクロブロックが欠落している場合、ピクチャサイズに対するマクロブロックの数は固定であるため、１ピクチャのパースが終わった時点で、マクロブロックの数が一致しなければシンタックスエラーであると判定される。ゆえに、この場合の検出情報２０は、エラーの発生がマクロブロックで起きたことを示す種別情報、マクロブロックの欠落した位置情報となり、すなわちエラーの発生した箇所のアドレスや、Reversible VLCなどのビットストリームを逆からパース可能な処理を用いた場合は欠落したマクロブロックのアドレスの範囲情報となる。
【００２４】
置換情報生成部２００について説明する。置換情報生成部２００のフローチャートを図４に示し、動作について述べる（ステップＳ２０−Ｓ２１）。置換情報生成部２００は、検出情報２０より、入力ビットストリーム１０において発生しているシンタックスエラーの種別、位置からあらかじめ用意した符号列の中から置換に用いる置換符号列を選択する（ステップＳ２０）。選択した置換符号列と、検出情報２０を基に、入力ビットストリーム１０を置換すべき位置、範囲を決定し、選択した置換符号列と合わせて、置換情報３０として生成する（ステップＳ２１）。
【００２５】
例えば検出情報２０の種別情報がマクロブロックであり、いくつかのマクロブロックが欠落しており、欠落したマクロブロックの前後のマクロブロックタイプがNot Codedでdmv（差分動きベクトル）が０であるような場合、欠落した箇所のマクロブロックタイプも同様にNot Codedでdmvが０であると判定され、あらかじめ用意しておいたマクロブロックのNot Codedを示すフラグが欠落したマクロブロックの置換符号列となる。この場合、置換符号列の欠落したマクロブロック個数分を置換情報３０として生成する。
【００２６】
また、例えば検出情報２０の種別情報がアクセスユニットであり、いくつかのアクセスユニットが欠落している場合は、NoMC・Not Codedのフラグが欠落したアクセスユニットの置換符号列となる。この場合、置換符号列の、欠落したアクセスユニット個数分を置換情報３０として生成する。また、入力ビットストリーム１０の符号量と一致させるために、置換情報３０の置換符号列にスタッフィングバイトを付加することもできる。ここで、置換符号列の選択において、外部入力４０によって置換符号列を選択してもよい。このようにして外部入力４０で制御することで、意図しない再生画像が出力されるのを防ぐことができる。
【００２７】
ビットストリーム置換部３００について説明する。ビットストリーム置換部３００は、上述のように生成した置換情報３０を用いて、入力ビットストリーム１０の置換すべき箇所を、置換情報３０の置換符号列によって置き換えることで、シンタックスエラーの無い置換ビットストリーム５０を生成する。生成したビットストリーム５０は蓄積媒体３５０に記録される。
【００２８】
以上説明したように、本実施の形態では動き補償予測された動画像符号化ビットストリームにシンタックスエラーがある場合に、あらかじめエラーを置換するための符号列を用意しておくことで、エラーコンシールメントするために復号画像を再符号化する場合に比べ、高速なエラーコンシールメント処理を実現できる。また、単に直前の正常な符号列をコンシールメント用の符号列として用いる場合に比べ、エラーコンシールメント後のビットストリームにおいて、再生画像の画質を向上させることができる。また、蓄積媒体に記録する前にエラーを修正するため、ビットストリームのコピーや編集において、エラーの伝播が無くストリームを取り扱うことができる。
【００２９】
＜シンタックスエラー訂正部の参考例＞
図５にシンタックスエラー訂正部の参考例のブロック図を示す。図５に示すとおり参考例のシンタックスエラー訂正部は、シンタックスエラー検出部１００と、復号部４００と、置換情報生成部２００とビットストリーム置換部３００とから構成される。なお、以下では、圧縮符号化ビットストリームを単にビットストリームと呼ぶ。図５において、まず、入力としてビットストリーム１０がシンタックスエラー検出部１００に入力される。シンタックスエラー検出部１００はシンタックスエラーを含んでいるかどうかを検出し、シンタックスエラーの有無、シンタックスエラーの発生位置などを検出情報２０として出力する。
【００３０】
復号部４００は入力ビットストリーム１０を復号する。復号時に発生するヘッダ情報などを符号化パラメータ６０として出力し、復号して構成された画像を復号画像７０として出力する。置換情報生成部２００は、検出情報２０を基に、あらかじめ用意したいくつかの符号列の中から、入力ビットストリーム１０のシンタックスエラーを修正するための置換符号列を選択する。選択した置換符号列と、検出情報２０より、置換すべき入力ビットストリーム１０の位置、範囲及び置換符号列を定め、置換情報３０として出力する。ただし、何らかの外部入力４０により置換情報３０が求められてもよい。ビットストリーム置換部３００は、入力ビットストリーム１０と置換情報３０を用いてシンタックスエラーの無いビットストリーム５０を出力する。生成されたビットストリームは蓄積媒体３５０に記録される。
【００３１】
次に構成要素それぞれについて説明する。シンタックスエラー検出部１００について説明する。シンタックスエラー検出部１００の動作は第１の実施の形態と同じであるが、検出情報２０を復号部４００に送るところが相違している。すなわち、例えば連続していくつかのマクロブロックが欠落している場合、ピクチャサイズに対するマクロブロックの数は固定であるため、１ピクチャのパースが終わった時点で、マクロブロックの数が一致しなければシンタックスエラーであると判定される。ゆえにこの場合の検出情報２０は、エラーの発生がマクロブロックで起きたことを示す種別情報、マクロブロックの欠落した位置情報となり、すなわちエラーの発生した箇所のアドレスや、Reversible VLCなどのビットストリームを逆からパース可能な処理を用いた場合は欠落したマクロブロックのアドレスの範囲情報となる。
【００３２】
復号部４００のフローチャートを図６に示し、動作について述べる（ステップＳ４０−Ｓ４４）。復号部４００は入力ビットストリーム１０を復号する（ステップＳ４０）。このとき、検出情報２０のエラー発生位置情報、範囲情報、及び種別情報から復号画像７０を生成できるかどうかを判定する（ステップＳ４１）。シンタックスエラーの発生により、復号画像７０が生成できない場合はエラーが発生している箇所に対してエラーコンシールメントする（ステップＳ４４）。エラーコンシールメントは、周辺画像の画素値を用いることによって、欠落部分の画素を補間することによって行う。例えば、マクロブロックに欠落が発生している場合は、マクロブロック周辺の画素値より補間する、若しくは、アクセスユニット単位で欠落している場合は、前の画像からの複製画像により補間する、などといった方法を用いてエラーコンシールメントを行う。エラーコンシールメントを行った画像を復号画像７０として生成する（ステップＳ４３）。また、復号画像が生成できる場合は復号画像７０を出力する。
【００３３】
また、復号部４００は復号画像７０のみではなく、シンタックスエラーの無い箇所においては、付加情報として、復号時に発生する符号化パラメータ６０を生成することもできる（ステップＳ４２）。復号時に発生する符号化パラメータ６０の例としては、シーケンスやピクチャのヘッダ情報や、動きベクトル、マクロブロックタイプといった再符号化の簡略化に用いることができるような情報が挙げられる。
【００３４】
続いて置換情報生成部２００のフローチャートを図７に示し、動作について述べる（ステップＳ５０−Ｓ５２）。置換情報生成部２００は、検出情報２０に基づき、上述した符号化パラメータ６０を用いない場合は、復号画像７０を用いて再符号化を行う（ステップＳ５１）。符号化パラメータ６０を用いる場合は、符号化パラメータ６０に基づき再符号化パラメータを生成する（ステップＳ５０）。ここでの再符号化パラメータは、復号画像７０の再符号化すべき位置若しくは範囲である。また、シンタックスエラーの無い復号画像７０の再符号化を簡略化するために、ヘッダ情報、動きベクトルなどの符号化パラメータ６０を用いる場合に、復号部４００で出力された符号化パラメータ６０に基づいて、再符号化パラメータを求めて用いることもできる。再符号化パラメータを用いて入力ビットストリーム１０の復号画像７０を再符号化する（ステップＳ５１）。ここで、再符号化パラメータは、外部入力４０によって決められてもよい。以上のように、再符号化したビットストリームを置換符号列とし、この置換符号列と検出情報２０とにより、置換すべき入力ビットストリーム１０の位置情報、範囲情報を含む置換情報３０を生成する（ステップＳ５２）。ビットストリーム置換部３００の動作は第１の実施の形態と同じである。
【００３５】
以上説明したように、動き補償予測された動画像符号化ビットストリームにシンタックスエラーがある場合に、復号画像を用いて再符号化を行うため、シンタックスエラーが発生した部分の動き補償予測の再計算が可能である。よって、置換符号列をあらかじめ用意しておく方式や、単に直前の正常な符号列をコピーすることでエラーコンシールメントを行うような方式に比べ、エラーコンシールメント後のビットストリームの再生画像において画質を向上させることが可能である。また、蓄積媒体に記録する前にエラーを修正するため、ビットストリームのコピーや編集において、エラーの伝播が無くストリームを取り扱うことができる。以上のように、図５に示すシンタックスエラー訂正部の参考例によれば、受信した符号化ビットストリームにシンタックスエラーがある場合においても、エラーを検証し、修正した後に蓄積媒体３５０へ保存するので、蓄積媒体３５０から他の媒体への伝送においてエラーが伝播することなく、エラーの無いビットストリームのコピーや編集、エラーコンシールメント機能を持たない復号器での再生が可能となる。また、エラー訂正情報を入力ビットストリーム１０からあらかじめ用意する必要が無く、蓄積系ではコンシールメント用のデータ蓄積を必要とせずにエラー訂正が可能である。
【００３６】
＜セマンティクスエラー訂正部＞
図８に第１の実施の形態の修正器８２０のセマンティクスエラー訂正部のブロック図を示す。セマンティクスエラー訂正部は、セマンティクスエラー検出部１０１と、置換情報生成部２０１と、ビットストリーム置換部３００とから構成される。以下では、圧縮符号化ビットストリームを単にビットストリームと呼ぶ。全体的な動作について図８を用いて説明する。まず、入力としてビットストリーム１０がセマンティクスエラー検出部１０１に入力される。セマンティクスエラー検出部１０１はセマンティクスエラーを含んでいるかどうかを検出し、セマンティクスエラーの有無、セマンティクスエラーの発生位置などをセマンティクスエラー検出情報（以下、単に検出情報）２１として出力する。
【００３７】
置換情報生成部２０１は、検出情報２１を基に、あらかじめ用意したいくつかの符号列の中から、入力ビットストリーム１０のセマンティクスエラーを修正するための置換符号列を選択する。選択した置換符号列と、検出情報２１より、置換すべき入力ビットストリーム１０の位置、範囲及び置換符号列を定め、置換情報３１として出力する。ただし、何らかの外部入力４１により置換情報３１が求められてもよい。ビットストリーム置換部３００は、入力ビットストリーム１０と置換情報３１を用いてセマンティクスエラーをコンシールメントしたビットストリーム５０を出力する。生成されたビットストリーム５０は蓄積媒体３５０に記録される。
【００３８】
セマンティクスエラー検出部１０１について説明する。セマンティクスエラー検出部１０１のフローチャートを図９に示し、動作について述べる（ステップＳ１０−Ｓ１５）。セマンティクスエラー検出部１０１は、まず、入力ビットストリーム１０をパースし（ステップＳ１０）、パースしながら入力ビットストリーム１０のセマンティクスエラーを検出する（ステップＳ１１ａ）。セマンティクスエラーの検出判定（ステップＳ１２）において、入力ビットストリーム１０がセマンティクスエラーを含んでいる場合、セマンティクスエラーが存在することを示すフラグと、セマンティクスエラーの発生したビットストリーム１０の位置情報、Reversible VLCのようにビットストリームを逆からパース可能な処理を用いた場合にはセマンティクスエラーの発生している範囲情報、例えばＭＰＥＧ−４  ＡＶＣの規格ではアクセスユニット単位、スライス単位、マクロブロック単位でのセマンティクスエラー発生や、イントラ、インターなどの符号化タイプを示す種別情報を生成し（ステップＳ１３）、検出情報２１として出力する（ステップＳ１５）。入力ビットストリーム１０がセマンティクスエラーを含まない場合、セマンティクスエラーが存在しないことを示すフラグを生成し（ステップＳ１４）、検出情報２１として出力する（ステップＳ１５）。
【００３９】
例えば、ＭＰＥＧ−４  ＡＶＣの符号化方式において、B-Slice を含むストリームのシーケンスパラメータセットのプロファイル値がBaseline Profile を示す値となっている場合はセマンティクスエラーとなり、シーケンスパラメータセットの単位が種別情報となり、シーケンスパラメータセットの存在するアドレスが位置情報となる。
【００４０】
置換情報生成部２０１について説明する。置換情報生成部２０１のフローチャートを図１０に示し、動作について述べる（ステップＳ２０−Ｓ２１）。置換情報生成部２０１は検出情報２１より、入力ビットストリーム１０において発生しているセマンティクスエラーの種別、位置から、あらかじめ用意した符号列の中から置換に用いる符号列を選択する（ステップＳ２０）。選択した符号列と、検出情報２０を基に、入力ビットストリーム１０の置換すべき位置、範囲を決定し、選択した符号列と合わせて、置換情報３１として生成する（ステップＳ２１）。
【００４１】
例えば、ＭＰＥＧ−４  ＡＶＣの符号化方式において、B-Sliceを含むストリームのシーケンスパラメータセットのプロファイル値がBaseline Profileを示す値となっている場合は、置換符号列としてプロファイル値におけるMain Profileを示す値を選択し、置換情報３１の置換符号列とする。また、入力ビットストリーム１０の符号量と一致させるために、置換情報３１の置換符号列にスタッフィングバイトを付加することもできる。ここで、置換符号列を選択する場合、外部入力４１によって置換符号列を選択してもよい。
【００４２】
また、セマンティクスエラー検出部１０１において、セマンティクスエラーを検出せず、入力ビットストリーム１０の同一シンタックスを置換情報生成部２０１で常に同じ符号列を用いて置換する方式も考えられる。例えば、受信側となる復号器が、ビットストリームのヘッダにあるレベル値を見て、一定以上のレベル値を持つビットストリームは再生しないという制約を持つとする。ところが、上記復号器は、符号化規格上で一定以上のレベル値でしか本来再生できない画像サイズも再生できる能力を持つとする。このとき、レベル値だけを常に一定レベル以下に書き換えれば、上記復号器でビットストリームの再生が可能となる。そこで、セマンティクスエラー検出部１０１でセマンティクスのエラーを検出せず、置換情報生成部２０１でこの復号器が対応しているレベル値を置換符号列として用意しておき、ビットストリームが入ってきたときに、ビットストリームのヘッダのレベル値を用意したレベル値の符号列で置き換えるだけで、上記復号器でのビットストリームの再生が可能となる。
【００４３】
ビットストリーム置換部３００は、上述したように生成した置換情報３１を用いて、入力ビットストリーム１０の置換すべき箇所を、置換情報３１の置換符号列によって置き換えることで、セマンティクスエラーの無いビットストリーム５０を生成することができる。生成されたビットストリーム５０は蓄積媒体３５０に記録される。
【００４４】
以上説明したように、本実施の形態では、動き補償予測された動画像符号化ビットストリームにセマンティクスエラーがある場合に、あらかじめエラーを置換するための符号列を用意しておくことで、エラーコンシールメントするために復号画像を再符号化する場合に比べ、高速なエラーコンシールメント処理を実現できる。また、単に直前の正常な符号列をコンシールメント用の符号列として用いる場合に比べ、エラーコンシールメント後のビットストリームにおいて、再生画像の画質を向上させることができる。また、蓄積媒体３５０に記録する前にエラーを修正するため、ビットストリームのコピーや編集において、エラーの伝播が無くストリームを取り扱うことができる。
【００４５】
＜セマンティクスエラー訂正部の参考例＞
図１１にセマンティクスエラー訂正部の参考例のブロック図を示す。参考例のセマンティクスエラー訂正部は、セマンティクスエラー検出部１０１と、復号部４０１と、置換情報生成部２０１と、ビットストリーム置換部３００とから構成される。以下では、圧縮符号化ビットストリームを単にビットストリームと呼ぶ。全体的な動作について図１１を用いて説明する。まず、入力としてビットストリーム１０がセマンティクスエラー検出部１０１に入力される。セマンティクスエラー検出部１０１はセマンティクスエラーを含んでいるかどうかを検出し、セマンティクスエラーの有無、セマンティクスエラーの発生位置などを検出情報２１として出力する。
【００４６】
復号部４０１は入力ビットストリーム１０を復号する。復号時に発生するヘッダ情報などを符号化パラメータ６０として出力し、復号して構成された画像を復号画像７０として出力する。置換情報生成部２０１は、検出情報２１を基に、あらかじめ用意したいくつかの符号列の中から、入力ビットストリーム１０のセマンティクスエラーを修正するための置換符号列を選択する。選択した置換符号列と、検出情報２１より、置換すべき入力ビットストリーム１０の位置、範囲置換符号列を定め、置換情報３１として出力する。ただし、何らかの外部入力４１により置換情報３１が求められてもよい。ビットストリーム置換部３００は、入力ビットストリーム１０と置換情報３１を用いてセマンティクスエラーの無いビットストリーム５０を出力する。生成されたビットストリーム５０は蓄積媒体３５０に記録される。
【００４７】
構成要素それぞれについて説明する。セマンティクスエラー検出部１０１の動作は第１の実施の形態と同じである。例えば、動きベクトルが符号化方式のレベルで制限されている値を超えている場合には、動きベクトルの単位が種別情報となり、この動きベクトルが存在するマクロブロックアドレスが位置情報となる。また、復号部４０１の動作は図５に示す復号部４００とほぼ同じであり、置換情報生成部２０１とビットストリーム置換部３００の動作は第１の実施の形態と同じである。
【００４８】
以上説明したように、動き補償予測された動画像符号化ビットストリームにセマンティクスエラーがある場合に、復号画像を用いて再符号化を行うため、セマンティクスエラーが発生した部分の動き補償予測の再計算が可能である。よって、置換符号列をあらかじめ用意しておく方式や、単に直前の正常な符号列をコピーすることでエラーコンシールメントを行うような方式に比べ、エラーコンシールメント後のビットストリームの再生画像において画質を向上させることが可能である。また、蓄積媒体３５０に記録する前にエラーを修正するため、ビットストリーム５０のコピーや編集において、エラーの伝播が無くストリームを取り扱うことができる。
【００４９】
＜第２の実施の形態＞
第２の実施の形態では、第１の実施の形態におけるセマンティクスエラー検出において、例えば、システム運用上で、標準化された符号化規格の符号化条件に制限を加える場合に適用される。例えばセマンティクスエラー検出部１０１は、制限セマンティクスエラー検出部として動作し、入力となるビットストリームに対してあるシステムの制限事項を満足するかどうかを検出する。満足しない場合は第１の実施の形態と同様の検出情報２０を出力する。以下の動作については、セマンティクスエラーを所定の符号化条件を満足しないエラーと読み替えて、第１の実施の形態と同様の動作を行う。
【００５０】
本実施の形態では、標準化されている符号化方式を満足していても、運用上の理由で、符号化方式の制限に更に細かい制限を加えた、規格を満たさないエラーを持つビットストリームを修正することができる。例えば、ＭＰＥＧ−２の規格は満たすが、あるシステムで制限されているＭＰＥＧ−２ビットストリームの予約ビット値を満たさないようなビットストリームは、該当するシステムで取り扱うことができないが、本実施の形態によれば、該当するシステムの制限事項を満足するようにビットストリーム内の予約ビット値を修正するため、該当するシステムで取り扱うことができるビットストリームを生成可能である。
【００５１】
また、例えばＭＰＥＧ−２の規格を満たすOpen GOPで符号化されたビットストリームがあるとする。あるシステムでは制限されているＭＰＥＧ−２ビットストリームはClosed GOPで符号化されていなければならないという制限事項があるとする。この場合、該当するシステムの復号器で再生することはできないが、本実施の形態によれば、該当するシステムの制限事項を満足するように、ＭＰＥＧ−２のGOPに符号化順においてI-pictureの直後にある最初のB-pictureを双方向予測から、片方向予測に変更して再符号化する。このようにして、生成したビットストリームはClosed GOPを満足するため、該当するシステムの復号器で再生することができるビットストリームを生成可能である。なお、シンタックスエラー検出部とセマンティクスエラー検出部との２つのエラー検出部を設け、２つのエラーを同時に訂正できるようにしてももちろんよい。
【図面の簡単な説明】
【００５２】
【図１】本発明の第１の実施の形態の符号化データ生成装置としてサーバが用いられる伝送システムを示すブロック図である。
【図２】図１の修正器のシンタックスエラー訂正部を詳しく示すブロック図である。
【図３】図２のシンタックスエラー検出部の処理を示すフローチャートである。
【図４】図２の置換情報生成部の処理を示すフローチャートである。
【図５】図２のシンタックスエラー訂正部の参考例を示すブロック図である。
【図６】図５の復号部の処理を示すフローチャートである。
【図７】図５の置換情報生成部の処理を示すフローチャートである。
【図８】図１の修正器のセマンティクスエラー訂正部を示すブロック図である。
【図９】図８のセマンティクスエラー検出部の処理を示すフローチャートである。
【図１０】図８の置換情報生成部の処理を示すフローチャートである。
【図１１】図８のセマンティクスエラー訂正部の参考例を示すブロック図である。
【符号の説明】
【００５３】
１００  シンタックスエラー検出部
１０１  セマンティクスエラー検出部
２００、２０１  置換情報生成部
３００  ビットストリーム置換部
３５０、５１０  蓄積媒体
４００、４０１  復号部
５００  ビットストリーム生成装置
５２０  符号化器
５３０、８４０  送信器
７００  再生装置
７１０、８１０  受信器
７２０  復号器
８００  符号化データサーバ
８２０  修正器
１００１、１００２  伝送路
【図１】
2006262406.tif 000003
【図２】
2006262406.tif 000004
【図３】
2006262406.tif 000005
【図４】
2006262406.tif 000006
【図５】
2006262406.tif 000007
【図６】
2006262406.tif 000008
【図７】
2006262406.tif 000009
【図８】
2006262406.tif 000010
【図９】
2006262406.tif 000011
【図１０】
2006262406.tif 000012
【図１１】
2006262406.tif 000013