(57)【要約】【課題】復号化処理時に可変長復号化動作がＶＯＰスタートコードにかかってしまう場合にも、ＶＯＰスタートコードを潰すことなく、ストリームエラーを効率良く検出し、ストリームエラーに起因する画質劣化を復号画像の修正処理により効果的に改善することができる復号化装置及び復号化方法を提供する。【解決手段】ＶＯＰ復号化処理において、スタートコード検出部は、入力ストリームを例えば１ビットずつずらして、所定のビットパターンと順次照合することによりスタートコードエラーの検出を行う。スタートコードエラーが検出されると、リードポインタが、次のＶＯＰスタートコードの先頭位置にセットされる。また、ＶＯＰのうち、スタートコードエラーが検出される手前のマクロブロックまでのデータは、正常に復号化されたものとして出力される。【選択図】        図６
2004235820.tif 000002
【特許請求の範囲】
【請求項１】
可変長符号を含む符号化データを復号化して復号画像データを生成する復号化手段と、
前記復号化手段と並行して動作し該復号化手段に入力される前記符号化データを順次所定のビットパターンと照合させることにより前記符号化データに含まれるスタートコードを検出するスタートコード検出手段と、
前記スタートコード検出手段の検出結果に応じて前記復号画像データの出力を制御する復号化情報制御手段と
を備える復号化装置。
【請求項２】
請求項１に記載の復号化装置であって、
前記復号化情報制御手段は、
前記スタートコード検出手段の検出結果に応じて生成されるエラー情報を含む復号化情報をマクロブロック単位に前記復号画像データに付加することにより、マクロブロック単位で前記復号画像データの生成および出力を制御する
復号化装置。
【請求項３】
請求項１又は請求項２に記載の復号化装置であって、
前記スタートコード検出手段に代えて、
前記復号化手段と並行して動作し該復号化手段に入力される前記符号化データを順次所定のビットパターンと照合させることにより前記符号化データに含まれるエンドコードを検出するエンドコード検出手段
を備える復号化装置。
【請求項４】
可変長符号を含む符号化データを復号化して復号画像データを生成する復号化手段と、
前記復号化手段に入力される前記符号化データに含まれるストリームエラーを検出するエラー検出手段と、
前記エラー検出手段の検出結果に応じて生成されるエラー情報を含む復号化情報をマクロブロック単位に前記復号画像データに付加することにより、マクロブロック単位で前記復号画像データの生成および出力を制御する復号化情報制御手段と
を備える復号化装置。
【請求項５】
可変長符号を含む符号化データを復号化して復号画像データを生成する復号化工程と、
前記復号化工程と並行して前記符号化データを順次所定のビットパターンと照合させることにより前記符号化データに含まれるスタートコードを検出するスタートコード検出工程と、
前記スタートコード検出工程の検出結果に応じて前記復号画像データの出力を制御する復号化情報制御工程と
を備える復号化方法。
【請求項６】
請求項５に記載の復号化方法であって、
前記復号化情報制御工程は、
前記スタートコード検出工程の検出結果に応じて生成されるエラー情報を含む復号化情報をマクロブロック単位に前記復号画像データに付加することにより、マクロブロック単位で前記復号画像データの生成および出力を制御する
復号化方法。
【請求項７】
請求項５又は請求項６に記載の復号化方法であって、
前記スタートコード検出工程に代えて、
前記復号化工程と並行して前記符号化データを順次所定のビットパターンと照合させることにより前記符号化データに含まれるエンドコードを検出するエンドコード検出工程
を備える復号化方法。
【請求項８】
可変長符号を含む符号化データを復号化して復号画像データを生成する復号化工程と、
前記符号化データに含まれるストリームエラーを検出するエラー検出工程と、
前記エラー検出工程の検出結果に応じて生成されるエラー情報を含む復号化情報をマクロブロック単位に前記復号画像データに付加することにより、マクロブロック単位で前記復号画像データの生成および出力を制御する復号化情報制御工程と
を備える復号化方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、動画像の復号化に関し、特に、携帯電話等において、ＭＰＥＧ−４（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ−４）形式等に符号化された動画像データを復号する復号化装置および復号化方法に関する。
【０００２】
【従来の技術】
従来の、ＭＰＥＧ−４形式などに符号化された動画像を復号する復号化装置では、復号化処理時のエラー検出を、伝送上のエラーについては、入力ストリームのアナログ信号レベルや誤り訂正符号により行い、またストリームエラーについては、エラー検出を、復号化処理における破綻の発生、またはビデオパケットと呼ばれる１つの符号化単位内のビットストリームの構造及び内容を厳密に検査することにより行っている（例えば、特許文献１参照）。
【０００３】
【特許文献１】
特開平２００１−１６９２８２号公報（第１０−１３頁、第１−２図）
【０００４】
【発明が解決しようとする課題】
上記特許文献１に示すような、従来のＭＰＥＧ−４形式などの可変長符号化を施された動画像データを復号する復号化装置では、ストリームエラーの検出を、復号化処理における破綻の発生により行っているので、復号化処理時、符号化データにエラーが混在している場合に、実際の符号長と異なる符号長に復号するような場合が起きることがある。
【０００５】
ここで以下の説明のため、ＭＰＥＧ−４のフレームの概念について述べておく。ＭＰＥＧ−４では、表示される画像全体（合成画像）は、複数の画像系列の画像（物体）により構成されることから、各画像系列の、各表示時刻における画面をＶＯＰ（Ｖｉｄｅｏ  Ｏｂｊｅｃｔ  Ｐｌａｎｅ）と呼び、ＭＰＥＧ−１，２におけるフレームと区別している。なお、表示画像の全体が１つの画像系列の画像により構成される場合には、ＶＯＰとフレームは一致することとなる。
【０００６】
上記のように、ストリームエラーの検出を復号化処理における破綻の発生により行う場合、復号化処理時に符号化データにエラーが混在していて、実際の符号長と異なる符号長（実際より長い符号長）に復号するような場合が発生した時、誤って実際より長い符号長に復号化されたデータが、次のＶＯＰのＶＯＰスタートコードにかかってしまうと、そのＶＯＰスタートコードが潰されてしまう。ＶＯＰスタートコードは、ＶＯＰ全体に関連する重要なデータであるＶＯＰヘッダに含まれ、ＭＰＥＧ−４の１画面の単位であるＶＯＰの同期信号であるため、ＶＯＰスタートコードが潰されてしまうことにより、次のＶＯＰが読みとれなくなってしまうことになる。これにより、以降の１つのＶＯＰ、またはすべてのＶＯＰにおいて同期がとれなくなり、再生が不可能になってしまうという問題点があった。
【０００７】
また、ストリームエラーの検出をビデオパケット内のビットストリームの構造及び内容を厳密に検査する場合には、一般に復号化装置ではリアルタイムでの復号を行う必要があり復号に許される時間には制限があるため、効率良く検査しなければ、制限時間内での復号化処理ができなくなってしまうという問題点があった。
【０００８】
さらには、ストリームエラーが検出されたＶＯＰのうち、廃棄される部分が多いため、画質が劣化してしまうという問題点があった。
【０００９】
本発明は以上の問題点を解決するためになされたものであり、復号化処理時に可変長復号化動作がＶＯＰスタートコードにかかってしまう場合にも、ＶＯＰスタートコードを潰すことなく、効率良くストリームエラーの検出を行うことのできる、復号化装置及び復号化方法を提供することを目的とする。
【００１０】
また、本発明は、復号化処理時に可変長復号化動作がＶＯＰスタートコードにかかってしまう場合、およびその他のストリームエラーが検出された場合に効率良く復号化動作へ復帰することができ、並びにストリームエラーに起因する画像劣化を効果的に改善することができる復号化装置及び復号化方法を提供することを目的とする。
【００１１】
【課題を解決するための手段】
請求項１に記載の発明に係る復号化装置は、可変長符号を含む符号化データを復号化して復号画像データを生成する復号化手段と、前記復号化手段と並行して動作し該復号化手段に入力される前記符号化データを順次所定のビットパターンと照合させることにより前記符号化データに含まれるスタートコードを検出するスタートコード検出手段と、前記スタートコード検出手段の検出結果に応じて前記復号画像データの出力を制御する復号化情報制御手段とを備える。
【００１２】
請求項４に記載の発明に係る復号化装置は、可変長符号を含む符号化データを復号化して復号画像データを生成する復号化手段と、前記復号化手段に入力される符号化データに含まれるストリームエラーを検出するエラー検出手段と、前記エラー検出手段の検出結果に応じて生成されるエラー情報を含む復号化情報をマクロブロック単位に前記復号画像データに付加することにより、マクロブロック単位で前記復号画像データの生成および出力を制御する復号化情報制御手段とを備える。
【００１３】
請求項５に記載の発明に係る復号化方法は、可変長符号を含む符号化データを復号化して復号画像データを生成する復号化工程と、前記復号化工程と並行して、前記符号化データを順次所定のビットパターンと照合させることにより前記符号化データに含まれるスタートコードを検出するスタートコード検出工程と、前記スタートコード検出工程の検出結果に応じて前記復号画像データの出力を制御する復号化情報制御工程とを備える。
【００１４】
請求項８に記載の発明に係る復号化方法は、可変長符号を含む符号化データを復号化して復号画像データを生成する復号化工程と、前記符号化データに含まれるストリームエラーを検出するエラー検出工程と、前記エラー検出工程の検出結果に応じて生成されるエラー情報を含む復号化情報をマクロブロック単位に前記復号画像データに付加することにより、マクロブロック単位で前記復号画像データの生成および出力を制御する復号化情報制御工程とを備える。
【００１５】
【発明の実施の形態】
＜実施の形態１＞
以下、本発明に係る復号化装置および復号化方法について、図１〜６を参照しながら詳細に説明する。
【００１６】
ここで、図１は本発明の実施の形態１に係る復号化装置１００の概略構成を示すブロック図、図２は復号化装置１００における出力メモリ４０の構成を示す図、図３は復号化装置１００における復号化器２０の内部構成を示すブロック図、図４は復号化装置１００においてＶＯＰスタートコードを検出した場合の動作を示す図、図５は復号化装置１００の動作を説明するためのＶＯＰストリーム構成を示す図、図６は復号化装置１００の動作フローを示す図である。
【００１７】
図１に示すように、復号化装置１００は、記録媒体（図示しない）から読み出されたビットストリーム、あるいは伝送媒体（図示しない）を介して送信されてきたビットストリームを入力ストリームＶｉｎとして受信し、該入力ストリームＶｉｎに対する復号化処理を行うものである。ここで、上記ビットストリームは、動画像の画像信号に対して該動画像を構成する複数の画像系列毎に別々に符号化処理を施して得られる画像符号化データを含むものである。また、１つの上記画像系列の画像信号に対する符号化処理は、該画像系列の１画面（１ＶＯＰ）毎に行われ、かつ各ＶＯＰに対応する画像信号は、該ＶＯＰを構成するマクロブロックを単位として符号化される。
【００１８】
以下詳述すると、図１において、復号化装置１００は、ＶＯＰ毎に符号化された入力ストリームＶｉｎを一旦取り込むための入力メモリ１０と、入力メモリ１０に取り込まれた入力ストリームＶｉｎを読み出し、復号化処理を行って、復号画像データを出力する復号化器２０と、復号化処理におけるエラー情報を含む復号化情報を管理し、復号化動作の制御と、復号画像の生成、及び出力の制御を行う復号化情報制御部３０と、復号化器２０の出力を一旦書き込み、必要に応じて復号画像Ｖｏｕｔとして出力するための出力メモリ４０とを有している。
【００１９】
なお、図２に示すように、出力メモリ４０は、領域４１と領域４１の２つの領域により構成されており、領域４１にｉ番目のＶＯＰのデータ、領域４２に（ｉ＋１）番目のＶＯＰデータを記憶するというように、同時に連続する２つのＶＯＰデータを記憶するものである。
【００２０】
また、図３に示すように、復号化器２０は、入力メモリ１０から読み込んだ入力ストリームＶｉｎに対し、可変長復号化処理を行う復号化処理部６０と、復号化処理時にＶＯＰスタートコードの検出を行うスタートコード検出部５０と、復号化処理時にＶＬＤ（Ｖａｒｉａｂｌｅ  Ｌｅｎｇｔｈ  Ｄｅｃｏｄｉｎｇ：可変長復号化処理）エラー等のストリームエラーの検出を行うエラー検出部７０とを有している。ＶＬＤエラーは、ＶＬＤ処理において復号の結果が定義されていない符号になった場合に検出される。このエラー検出部７０は、従来からある装置である。
【００２１】
次に、復号化装置１００の動作について説明する。復号化装置１００では、ＶＯＰ毎に符号化された入力ストリームＶｉｎが一旦入力メモリ１０に取り込まれ、復号化器２０は入力メモリ１０から入力ストリームＶｉｎを読み出し、復号化処理をマクロブロックを単位として行う。
【００２２】
また復号化器２０では、復号化処理部６０において、入力ストリームＶｉｎに対し、マクロブロックを単位として可変長復号化処理を行う。この可変長復号化処理に並行して、スタートコード検出部５０において、１ＶＯＰの復号化処理中に次のＶＯＰのＶＯＰスタートコードにぶつからないかどうかを検出するため、ＶＯＰスタートコードの検出を行う。ＶＯＰスタートコードの検出は、入力メモリ１０に入力した入力ストリームＶｉｎを復号化器２０に読む出す際に、例えば１ビット毎に、ＶＯＰスタートコードの有する所定のビットパターンと順次照合することにより行われる。
【００２３】
また、復号化器２０では、エラー検出部７０において、復号化処理部６０が行う可変長復号化処理で復号の結果が定義されていない符号になった場合に、ＶＬＤエラーとして検出する。
【００２４】
復号化処理部６０では、マクロブロック単位で復号化したデータを出力メモリ４０へ出力するとともに、スタートコード検出部５０により検出されたスタートコード検出情報と、エラー検出器７０により検出されたエラー検出情報とを、復号化情報制御部３０へ出力する。なお、出力メモリ４０への出力は、出力メモリ４０上の領域４１，４２のうち、現在処理中のＶＯＰを出力する領域を選択して記憶させるものである。例えば、ｉ番目のＶＯＰのデータが領域４１に記憶されていたとすると、次の（ｉ＋１）番目のＶＯＰデータは領域４２に記憶され、さらに次の（ｉ＋２）番目のＶＯＰデータは領域４１に記憶される。
【００２５】
復号化情報制御部３０においては、入力されたスタートコード検出情報とエラー検出情報とにより、復号化情報を管理し、復号化動作の制御と、復号画像の生成及び出力の制御を行う。
【００２６】
次に、図４を用いて、１ＶＯＰの復号化処理中にスタートコード検出部５０においてスタートコードが検出された場合の復号化情報制御部３０の動作を具体的に説明する。図４は、ｉ番目のＶＯＰの復号化動作が次の（ｉ＋１）番目のＶＯＰのスタートコードにかかっている場合を示す。このような場合に対し、スタートコード検出部５０では、ｉ番目のＶＯＰの復号化動作に並行して、逐次に（ｉ＋１）番目のＶＯＰのスタートコードの検出を行う。（ｉ＋１）番目のＶＯＰのスタートコードを検出した場合には、スタートコードエラーとして復号化情報制御部３０に通知し、入力メモリ１０のリードポインタ（図示しない）を（ｉ＋１）番目のＶＯＰのスタートコードの先頭位置にセットして、ｉ番目のＶＯＰの復号化動作を終了する。これにより、（ｉ＋１）番目のＶＯＰの復号化処理は、（ｉ＋１）番目のＶＯＰのスタートコードから開始することができる。
【００２７】
次に、図５，６を用いて、復号化処理時に、スタートコード検出部５０においてスタートコードが検出された場合、またはエラー検出部７０においてＶＬＤエラーが検出された場合の、復号化情報制御部３０の動作を説明する。
【００２８】
まず、図５を用いて、復号化装置１００に入力されるＶＯＰのストリーム構成を説明する。図５（ａ）は１つのＶＯＰの構成を示す。ＶＯＰはＶＯＰヘッダとＶＯＰデータとから構成される。ＶＯＰヘッダはその先頭に、ＶＯＰの同期信号であるＶＯＰスタートコードを有し、続いて、ＶＯＰ符号化に関する重要な情報であるＶＯＰヘッダ情報を有している。
【００２９】
図５（ｂ）は、図５（ａ）と同一のＶＯＰのＶＯＰデータの内容を示したものである。ＶＯＰデータには複数のＶＰ（Ｖｉｄｅｏ  Ｐａｃｋｅｔ：ビデオパケット）が含まれている。ビデオパケットは１つの符号化単位であり、ＶＯＰは複数のビデオパケットから構成可能である。図５（ｂ）においては、ＶＯＰヘッダに続いて、ビデオパケットＶＰ１〜ＶＰ４が配置されている。各ビデオパケットは、ＶＰヘッダとＶＰデータから構成され、ＶＰヘッダはその先頭に、ＶＰの同期信号でありＲｅｓｙｎｃ  Ｍａｒｋｅｒと呼ばれる固定長符号を有し、続いて、ＶＰ符号化に関する重要な情報であるＶＰヘッダ情報を有している（図５（ｂ）のＶＰ３部分に図示している）。なお、ビデオパケットＶＰ１はＶＯＰ内の先頭のビデオポケットであり、そのヘッダ情報はＶＯＰヘッダに含まれている。よって、ビデオパケットＶＰ１は、ＶＰヘッダを有さず、従って、Ｒｅｓｙｎｃ  Ｍａｒｋｅｒ及びＶＰヘッダ情報は有さない。
【００３０】
また、ビデオパケットＶＰ１〜ＶＰ４は、複数のＭＢ（Ｍａｃｒｏ  Ｂｌｏｃｋ：マクロブロック）に対応する符号化データを格納可能である。図５（ｃ）は、ビデオパケットＶＰ１の内容を示したものである。ＶＰ１には、マクロブロックＭＢ１〜ＭＢ５が配置されている。マクロブロックＭＢ１〜ＭＢ５の先頭には、各マクロブロックに関する情報を有するＭＢ情報がそれぞれ配置されている。
【００３１】
次に、図５に示したＶＯＰのストリーム構成を踏まえ、図６に示す復号化装置１００の復号化処理フローを用いて、復号化装置１００における復号化情報制御部３０の動作を説明する。
【００３２】
復号化装置１００では、ＶＯＰ毎に符号化された入力ストリームＶｉｎは一旦入力メモリ１０に取り込まれ、復号化器２０は入力メモリ１０から入力ストリームＶｉｎを読み出し、復号化処理を行う。復号化処理はまず、各ＶＯＰの先頭に付加されているＶＯＰヘッダの解析を行い（ステップＳ１）、続いて先頭のビデオパケットＶＰ１に対し、マクロブロック毎にＶＬＤ処理を施す（ステップＳ２）。ＶＬＤ処理では、ビデオパケットＶＰ１に含まれるマクロブロックＭＢ１〜ＭＢ５の復号を終えると、１ＶＯＰ分のデータをすべて復号化したかどうかを判定する（ステップＳ３）。図５に示すＶＯＰのストリーム構成ではＶＯＰはビデオパケットＶＰ１〜ＶＰ４を含んでいるため、まだ１ＶＯＰの復号は終了せず、判定はＮＯとなり、次のビデオパケットＶＰ２の先頭に配置されている、Ｒｅｓｙｎｃ  Ｍａｒｋｅｒをサーチする（ステップＳ４）。続いて、Ｒｅｓｙｎｃ  Ｍａｒｋｅｒ以下、ビデオパケットＶＰ２のＶＰヘッダの解析を行い（ステップＳ５）、さらにビデオパケットＶＰ２に対し、マクロブロック毎にＶＬＤ処理を施す（ステップＳ６）。再び、１ＶＯＰ分のデータをすべて復号化したかどうかを判定するステップＳ３に戻り、ＶＯＰ内にはまだビデオパケットＶＰ３，ＶＰ４が含まれているため、次のビデオパケットＶＰ３の先頭に配置されている、Ｒｅｓｙｎｃ  Ｍａｒｋｅｒをサーチする（ステップＳ４）。続いて、Ｒｅｓｙｎｃ  Ｍａｒｋｅｒ以下、ビデオパケットＶＰ３のＶＰヘッダの解析を行い（ステップＳ５）、さらにビデオパケットＶＰ３に対し、マクロブロック毎にＶＬＤ処理を施す（ステップＳ６）。再び、１ＶＯＰ分のデータをすべて復号化したかどうかを判定するステップＳ３に戻り、ＶＯＰ内にはまだビデオパケットＶＰ４が含まれているため、次のビデオパケットＶＰ４の先頭に配置されている、Ｒｅｓｙｎｃ  Ｍａｒｋｅｒをサーチする（ステップＳ４）。続いて、Ｒｅｓｙｎｃ  Ｍａｒｋｅｒ以下、ビデオパケットＶＰ４のＶＰヘッダの解析を行い（ステップＳ５）、さらにビデオパケットＶＰ４に対し、マクロブロック毎にＶＬＤ処理を施す（ステップＳ６）。再び、１ＶＯＰ分のデータをすべて復号化したかどうかの判定（ステップＳ３）に戻り、ＶＯＰ内のすべてのビデオパケットの復号が終了したので、判定はＹＥＳとなり、後述する復号化処理時のエラー情報を付加して（ステップＳ７）、１ＶＯＰの処理を終了する。
【００３３】
以下では、上記動作において、ＶＯＰヘッダの解析（ステップＳ１）後の処理中にスタートコードを検出した場合の処理と、ＶＬＤ処理（ステップＳ２およびステップＳ６）においてＶＬＤエラーを検出した場合の処理とについて説明する。
【００３４】
まず、ＶＯＰヘッダの解析（ステップＳ１）後の処理中にスタートコードを検出する場合の処理について説明する。
【００３５】
ＶＯＰヘッダの解析（ステップＳ１）の後、ビデオパケットＶＰ１〜ＶＰ４に対し、マクロブロック毎のＶＬＤ処理（ステップＳ２）、次のビデオパケットのＲｅｓｙｎｃ  Ｍａｒｋｅｒのサーチ（ステップＳ４）とＶＰヘッダの解析（ステップＳ５）、さらにマクロブロック毎のＶＬＤ処理（ステップＳ６）を続け、例えばビデオパケットＶＰ４のＶＬＤ処理を行っている途中で次のＶＯＰのスタートコードを検出する場合を想定する。これはビデオパケットＶＰ４にエラーがあり、実際の符号長と異なる長さ（実際より長い符号長）の復号を行い次のＶＯＰのスタートコードを潰してしまった状態を示す。このような場合、復号化器２０のスタートコード検出部５０によりスタートコードエラーが検出され、スタートコードエラーを示す信号は復号化処理部６０を介して、復号化情報制御部３０へ出力される。またこのとき、図４に示すように、復号化情報制御部３０は、入力メモリ１のリードポインタを次のＶＯＰのスタートコードの先頭にセットして、このＶＯＰの復号化処理を終了する。
【００３６】
ＶＯＰの復号化処理の終了時、エラー情報付加動作（ステップ７）において、各マクロブロック毎に、正常に復号されたか否かを示す復号化完了フラグが付加される。なお、復号化完了フラグの付加は、復号化情報制御部３０により行われ、このフラグにより出力メモリ４０から出力される復号画像Ｖｏｕｔの内容が制御される。前述のように、出力メモリ４０は領域４１，４２の２つの領域により構成されており、連続する２つのＶＯＰのデータを記憶するものである。出力メモリ４０から出力する復号画像Ｖｏｕｔは、復号処理時のエラー発生状態に応じ復号化情報制御部３０によりマクロブロック毎に付加された復号化完了フラグに基づき、内容が異なる。即ち復号化完了フラグにより正常に復号化されたことが示されているマクロブロックについては、出力メモリ４０上の領域４１，４２のうちの最後に復号したＶＯＰの復号画像データが記憶されている領域（例えば領域４２とする）から、ＭＢ情報の示す画面上の位置にあたる復号画像データをそのまま出力する。また、復号化完了フラグにより正常に復号化されなかったことが示されているマクロブロックについては、１つ前のＶＯＰの復号画像データが記憶されている領域４１から、ＭＢ情報の示す画面上の位置と等しい位置にあたる復号画像データを、領域４２の対象となる位置へコピーして出力する。即ち、ＶＯＰの途中のマクロブロックでスタートコードエラーが検出された場合には、ＶＯＰの先頭のマクロブロックからエラーが検出される手前のマクロブロックまでの復号画像データは、正常に復号化されたとみなしてそのまま出力し、エラーが検出されたマクロブロックからＶＯＰの終わりのマクロブロックまでは、１つ前のＶＯＰの復号画像データを出力する。
【００３７】
次に、ＶＬＤ処理（ステップＳ２およびステップＳ６）においてＶＬＤエラーを検出する場合の処理について説明する。
【００３８】
例えば、ビデオパケットＶＰ１に対するマクロブロック毎のＶＬＤ処理（ステップＳ２）において、復号の結果が定義されていない符号になった場合、復号化器２０のエラー検出部７０によりＶＬＤエラーが検出される。復号化処理部６０はＶＬＤエラーが検出されると、ビデオパケットＶＰ１のＶＬＤ処理を終了し、ＶＯＰ内の次のビデオパケットＶＰ２の先頭に配置されているＲｅｓｙｎｃ  Ｍａｒｋｅｒをサーチし（ステップＳ４）、Ｒｅｓｙｎｃ  Ｍａｒｋｅｒを見つけると、ＶＰヘッダの解析（ステップＳ５）、続いてＶＬＤ処理（ステップＳ６）へと進む。その後、ビデオパケットＶＰ２〜ＶＰ４に対し、復号化処理を行う。
【００３９】
ビデオパケットＶＰ２〜ＶＰ４に対するマクロブロック毎のＶＬＤ処理（ステップＳ６）において復号の結果が定義されていない符号になった場合についても、ビデオパケットＶＰ１に対するステップＳ２の時と同様に、復号化器２０のエラー検出部７０によりＶＬＤエラーの検出が行われ、１ＶＯＰ分のデータがなくなるまでＲｅｓｙｎｃ  Ｍａｒｋｅｒのサーチ（ステップＳ４）が続けられる。１ＶＯＰ分のデータが終了すると、このＶＯＰの復号化処理が終了する。
【００４０】
ＶＯＰの復号化処理の終了時、前述のスタートコードエラー検出の場合と同様に、エラー情報付加動作（ステップ７）において、各マクロブロック毎に、正常に復号されたか否かを示す復号化完了フラグが付加される。また前述のスタートコードエラー検出の場合と同様に、出力メモリ４０から出力される復号画像Ｖｏｕｔは、復号処理時のエラー発生状態に応じ復号情報制御部３０によりマクロブロック毎に付加された復号化完了フラグに基づき、内容が異なる。即ち復号化完了フラグにより正常に復号化されたことが示されているマクロブロックについては、出力メモリ４０上の領域４１，４２のうちの最後に復号したＶＯＰの復号画像データが記憶されている領域（例えば領域４２とする）から、ＭＢ情報の示す画面上の位置にあたる復号画像データをそのまま出力する。また、復号化完了フラグにより正常に復号化されなかったことが示されているマクロブロックについては、１つ前のＶＯＰの復号画像データが記憶されている領域４１から、ＭＢ情報の示す画面上の位置と等しい位置にあたる復号画像データを、領域４２の対象となる位置へコピーして出力する。即ち、ＶＯＰの途中のマクロブロックでＶＬＤエラーが検出された場合には、エラーが検出されたビデオパケットの先頭のマクロブロックからエラーが検出される手前のマクロブロックまでの復号画像データは、正常に復号化されたとみなしてそのまま出力し、エラーが検出されたマクロブロックからエラーが検出されたビデオパケットの終わりのマクロブロックまでは、１つ前のＶＯＰの復号画像データを出力する。
【００４１】
以上、説明したように、ＶＯＰヘッダの解析後の復号化処理中に次のＶＯＰのスタートコードを検出した場合には、スタートコード検出時点で、復号中のＶＯＰの復号化処理を中止し、次のＶＯＰのスタートコードの先頭から復号を開始できるようになるため、次のＶＯＰから確実に復号化動作に復帰することができる。これにより、復号化処理と並行して、確実にスタートコードの検出を行うことができるので、復号化処理ステップ数を増やすことなく、効率よくエラー検出を行うことができる。
【００４２】
また、ＶＬＤ処理においてＶＬＤエラーを検出した場合には、ＶＬＤエラー等検出時点で、復号中のビデオパケットの復号化処理を中止し、次のビデオパケットの先頭から復号を開始できるようにするため、次のビデオパケットの先頭から確実に復号化動作に復帰することができる。これにより、ＶＬＤエラーによるエラーの影響を、符号化の処理単位であり同期信号を有する最小の単位であるビデオパケット内に収めることができるので、効率よく復号化動作へ復帰することができる。
【００４３】
また、エラーを検出した場合、ＶＯＰの復号化処理の終了時、エラー情報付加処理により、各マクロブロック毎に、正常に復号化されたか否かを示す復号化完了フラグを付加し、出力メモリ４０から出力する復号画像Ｖｏｕｔは、正常に復号化されたマクロブロックについては、出力メモリ４０上の領域４１，４２のうちの最後に復号したＶＯＰの復号画像データが記憶されている領域から、ＭＢ情報の示す画面上の位置にあたる復号画像データをそのまま出力する。また、正常に復号化されなかったマクロブロックについては、１つ前のＶＯＰの復号画像データが記憶されている領域から、ＭＢ情報の示す画面上の位置と等しい位置にあたる復号画像データを、最後に復号したＶＯＰの復号画像データが記憶されている領域へコピーして出力する。従って、正常に復号されなかった部分を１つ前のＶＯＰの復号画像データにマクロブロック単位で修正することができる。これにより、ストリームエラーに起因する画質劣化を効果的に改善することができる。
【００４４】
なお、以上の説明においては、スタートコードを検出する場合について説明したが、スタートコードではなくエンドコードを検出することにより、ストリームの終わり（ファイルエンド）を検出してもよい。このとき、符号化情報制御部３０によるマクロブロック毎の復号化完了フラグの付加においては、ストリームの終わりを検出した後の部分にあたるマクロブロックは、正常に復号化されなかったものとみなす。正常に復号化されなかったマクロブロックについては、上記のスタートコードエラー、およびＶＬＤエラー検出時と同様に、出力メモリ４０上の領域４１，４２のうち１つ前のＶＯＰの復号画像データが記憶されている領域から、ＭＢ情報の示す画面上の位置と等しい位置にあたる復号画像データを、最後に復号したＶＯＰの復号画像データが記憶されている領域の対象となる位置へコピーして出力する。
【００４５】
また、以上の説明においては、入力ストリームが２階層のデータ構造を有する場合、つまり入力ストリームを構成するＶＯＰストリームがビデオパケット単位で区別され、さらにビデオパケットが符号化処理の単位であるマクロブロックを単位として区分されている場合について説明したが、入力ストリームの構造はこれに限るものではなく、同期信号を付加する符号化を施されたストリームであれば同様の効果が得られる。例えば、Ｈ．２６３  Ｂａｓｅｌｉｎｅ符号化ストリームや、ＭＰＥＧ−４のショートヘッダフォーマット符号化ストリームなどについても同様の効果が得られる。
【００４６】
また、以上の説明においては、復号画像データの修正単位をマクロブロック単位としたが、これに限るものではなく、符号化処理の最小単位であるブロック（８×８画素）を単位として行ってもよい。
【００４７】
【発明の効果】
以上、説明したように、請求項１に記載の発明に係る復号化装置および請求項５に記載の発明に係る復号化方法においては、復号化処理と並行して、確実にスタートコードの検出を行うことができるので、復号化処理ステップ数を増やすことなく、効率よくエラー検出を行うことができる。
【００４８】
また、請求項４に記載の発明に係る復号化装置および請求項８に記載の発明に係る復号化方法においては、正常に復号されなかった部分を１つ前のＶＯＰの復号画像データにマクロブロック単位で修正することができる。これにより、ストリームエラーに起因する画質劣化を効果的に改善することができる。
【図面の簡単な説明】
【図１】実施の形態１に係る復号化装置１００の概略構成を示すブロック図である。
【図２】実施の形態１に係る復号化装置１００における出力メモリ４０の構成を示す図である。
【図３】実施の形態１に係る復号化装置１００における復号化器２０の内部構成を示すブロック図である。
【図４】実施の形態１に係る復号化装置１００においてＶＯＰスタートコードを検出した場合の動作を示す図である。
【図５】実施の形態１に係る復号化装置１００の動作を説明するためのＶＯＰストリーム構成を示す図である。
【図６】実施の形態１に係る復号化装置１００の動作フローを示す図である。
【符号の説明】
１０  入力メモリ、２０  復号化器、３０  復号化情報制御部、４０  出力メモリ、４１，４２  領域、５０  スタートコード検出部、６０  復号化処理部、７０  エラー検出部、１００  復号化装置、Ｖｉｎ  入力ストリーム、Ｖｏｕｔ復号画像。
【図１】
2004235820.tif 000003
【図２】
2004235820.tif 000004
【図３】
2004235820.tif 000005
【図４】
2004235820.tif 000006
【図５】
2004235820.tif 000007
【図６】
2004235820.tif 000008