(57)【要約】【課題】スタートコード直前に誤りが発生した場合でも、スタートコードが可変長符号として復号化処理されてしまう誤動作を防止し、誤りの発生直後から復号化処理が可能な復号化装置を、容易に実現する。【解決手段】ビデオバッファ制御部１１３は、復号処理制御部１０２からの可変長復号処理の終了通知に基づく読出制御信号ＲＰｃｎｔにより、スタートコードの先頭データよりも所定のビット数だけ手前のデータからのビデオストリームを、スタートコード検出部１０１に対して供給するように、ビデオストリームバッファ１１２を制御する。スタートコード検出部１０１は、検出指令信号ＳＴに応じて、スタートコードの先頭データよりも所定のビット数だけ手前のデータ位置からスタートコードの検出を開始する。【選択図】  図１
2004328647.tif 000002
【特許請求の範囲】
【請求項１】
画像データを可変長符号化したビットストリームであるビデオストリームを復号化する復号化方法であって、
前記ビデオストリームに含まれるスタートコードを検出するステップと、
前記スタートコードの検出結果に基づいて、前記スタートコードに続く可変長符号化データの可変長復号処理を行ない、前記可変長復号処理の終了とともに終了通知を発行するステップとを備え、
前記スタートコードを検出するステップは、前記終了通知に基づいて、前記スタートコードの先頭データよりも所定のビット数だけ手前のデータ位置から前記スタートコードの検出を開始することを特徴とする復号化方法。
【請求項２】
画像データを可変長符号化したビットストリームであるビデオストリームを復号化する復号化装置であって、
前記ビデオストリームに含まれるスタートコードを検出するスタートコード検出手段と、
前記スタートコード検出手段による前記スタートコードの検出結果に基づいて、前記スタートコードに続く可変長符号化データの可変長復号処理を行ない、前記可変長復号処理の終了とともに終了通知を発行する可変長復号処理手段と、
前記可変長復号処理手段からの前記終了通知に基づき、前記スタートコード検出手段に対して、前記スタートコードの検出を行なうよう検出指令を発行する制御手段とを備え、
前記スタートコード検出手段は、前記制御手段からの前記スタートコードの検出指令に応じて、前記スタートコードの先頭データよりも所定のビット数だけ手前のデータ位置から前記スタートコードの検出を開始することを特徴とする復号化装置。
【請求項３】
前記ビデオストリームを蓄積し、前記蓄積したビデオストリームを前記スタートコード検出手段に供給するリングバッファと、
書き込みポインタ、および読み出しポインタにより、前記リングバッファを、循環的に書き込み、および読み出しが可能なように制御するバッファ制御手段とを、さらに、備え、
前記バッファ制御手段は、前記制御手段からの前記スタートコードの検出指令に応じて前記読み出しポインタを発行し、
前記リングバッファは、前記読み出しポインタの発行により、前記スタートコードの先頭データよりも所定のビット数だけ手前のデータ位置から前記ビデオストリームを、前記スタートコード検出手段に供給することを特徴とする請求項２記載の復号化装置。
【請求項４】
前記ビデオストリームを入力し、前記入力したビデオストリームに対し先入れ先出し処理を行ない、前記先入れ先出し処理したビデオストリームのデータを、前記スタートコード検出手段に対して供給するＦＩＦＯメモリを、さらに、備え、
前記スタートコード検出手段は、前記制御手段からの前記スタートコードの検出指令に応じて、前記ＦＩＦＯメモリから順次に供給される前記ビデオストリームのデータに対し、前記スタートコードの先頭データよりも所定のビット数だけ手前のデータ位置から前記スタートコードの検出を開始することを特徴とする請求項２記載の復号化装置。
【請求項５】
前記ビデオストリームを蓄積し、前記蓄積したビデオストリームを前記スタートコード検出手段に供給するメモリと、
前記メモリのデータ書き込み、および読み出しの制御を行なうメモリ制御部とを、さらに、備え、
前記メモリ制御部は、前記制御手段からの前記スタートコードの検出指令に応じて、前記メモリの読み出しアドレスを制御し、
前記メモリは、前記読み出しアドレスの制御により、前記スタートコードの先頭データよりも所定のビット数だけ手前のデータ位置から前記ビデオストリームを、前記スタートコード検出手段に供給することを特徴とする請求項２記載の復号化装置。
【請求項６】
画像データを可変長符号化したビットストリームであるビデオストリームを復号化する復号化装置であって、
前記ビデオストリームを蓄積するビデオストリームバッファと、
前記ビデオストリームバッファの書き込み、および読み出しを制御するバッファ制御手段と、
前記ビデオストリームバッファから読み出されたビデオストリームに含まれるスタートコードを検出するスタートコード検出手段と、
前記スタートコード検出手段によるスタートコードの検出に応じて、前記ビデオストリームバッファから読み出されたビデオストリームのスタートコード間に含まれる可変長符号化データを可変長復号処理する可変長復号処理手段と、
前記可変長復号処理手段によるスタートコード間の可変長復号処理の終了を検出し、前記可変長復号処理の終了を前記バッファ制御手段に通知する復号処理制御部とを備え、
前記バッファ制御手段は、前記復号処理制御部からの前記可変長復号処理の終了通知に基づき、スタートコードの先頭データよりも所定のビット数だけ手前のデータから前記スタートコード検出手段に対して供給するように、前記ビデオストリームバッファを制御し、
前記スタートコード検出手段は、前記供給されたビデオストリームに対し、前記スタートコードの先頭データよりも所定のビット数だけ手前のデータ位置から前記スタートコードの検出を開始することを特徴とする復号化装置。
【請求項７】
画像データを可変長符号化したビットストリームであるビデオストリームを復号化する復号化装置であって、
前記ビデオストリームを蓄積するメモリと、
前記メモリのデータ書き込み、および読み出しの制御を行なうメモリ制御手段と、
プログラムに従って実行するプロセッサと、
前記プロセッサを動作させるためのプログラムを格納するプログラムメモリと、
前記プロセッサを動作させるためのプログラムとを具備し、
前記プログラムは、
前記メモリに蓄積されたビデオストリームに含まれるスタートコードを検出するステップと、
前記スタートコードの検出結果に基づいて、前記スタートコードに続く可変長符号化データの可変長復号処理を行ない、前記可変長復号処理の終了とともに終了通知を発行するステップと、
前記終了通知に基づき、前記スタートコードを検出するステップにおいて、前記スタートコードの先頭データよりも所定のビット数だけ手前のデータ位置から前記スタートコードの検出を開始するように、前記メモリの読み出しアドレスを制御するステップと、を備えたことを特徴とする復号化装置。
【請求項８】
画像データを可変長符号化したビットストリームであるビデオストリームを蓄積するメモリと、前記メモリのデータ書き込み、および読み出しの制御を行なうメモリ制御手段と、プログラムに従って実行するプロセッサと、前記プロセッサに前記ビデオストリームの可変長復号化処理を実行させるためのプログラムを格納するプログラムメモリとを具備した復号化装置の可変長復号化処理プログラムであって、
前記プロセッサに、
前記メモリに蓄積されたビデオストリームに含まれるスタートコードを検出するステップと、
前記スタートコードの検出結果に基づいて、前記スタートコードに続く可変長符号化データの可変長復号処理を行ない、前記可変長復号処理の終了とともに終了通知を発行するステップと、
前記終了通知に基づき、前記スタートコードを検出するステップにおいて、前記スタートコードの先頭データよりも所定のビット数だけ手前のデータ位置から前記スタートコードの検出を開始するように、前記メモリの読み出しアドレスを制御するステップと、
を実行させるための復号化処理プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像データの圧縮符号化に利用される可変長符号を含む符号化データを復号する復号化方法、および復号化装置に関する。
【０００２】
【従来の技術】
画像や音声等の各種情報信号をデジタル化して信号処理する技術がめざましく進歩し、これに伴ない、既存のアナログテレビジョン放送に代わるデジタル放送システムが実用化されている。一方、デジタル放送システムの実用化とともに、これらのデジタル放送による番組を、ハードディスクドライブ（Ｈａｒｄ  Ｄｉｓｃ  Ｄｒｉｖｅ、以下、ＨＤＤと呼ぶ。）やＤＶＤ−ＲＡＭ（ＤｉｇｉｔａｌＶｅｒｓａｔｉｌｅ  Ｄｉｓｃ−ＲＡＭ）等にデジタル形式で記録する記録再生装置も実用化されている。このようなデジタル化した信号を処理するにあたり、最も重要となる要素の１つとして、デジタル化された画像信号、音声信号やその他の情報データ等を圧縮符号化処理する技術が挙げられる。この圧縮符号化処理技術の規格としては、ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  ＩｍａｇｅＣｏｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）、ＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｃｏｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）等が国際的に知られ、とりわけ動画像を扱う分野においてはＭＰＥＧ規格に基づく方式が主流になりつつある。
【０００３】
ＭＰＥＧ規格に基づく圧縮符号化方式は、動画像データのデータ量を削減するために、動画像データの時間的または空間的相関性を利用し、動画像データの圧縮符号化を行なう。さらに、時間的相関性を利用する手法としては、連続する２つのフレームの差分を符号化したり、画像の動きを検出して動き補償を行なったりする。また、空間的相関性を利用する手法としては、例えば、画像を縦方向、横方向ともに８画素ずつの複数ブロックに分割し、各ブロック内のデータを直交変換する。さらに、直交変換による変換係数を、例えば、低周波成分から高周波成分の順に並び替えるスキャン変換し、可変長符号化を行なう。このように、ＭＰＥＧ規格に基づく圧縮符号化方式は、このような２つの手法を併用して、動画像データを圧縮符号化する方式である。ＭＰＥＧ規格に基づき圧縮符号化された動画像データは、データ量が削減されたビットストリームの状態で伝送、あるいは蓄積され、復号化処理によりもとの動画像データに復元される。
【０００４】
このようなビットストリームの伝送などにおいて、例えば、伝送路誤りや記録媒体からの読み取りエラーにより、ビットストリームに誤りが発生する場合がある。さらに、このような誤りやエラーが可変長符号に対して発生した場合、ビットストリームから動画像データに復元する復号化処理が正常に動作しないおそれがあった。とりわけ、誤ったビットストリームをたまたま可変長符号として復号化できると、本来の符号とは異なる符号長として復号され、その後に続く符号が正常に復号されなくなる場合があった。特に、誤りの直後にスタートコードがあった場合、スタートコードのビットのいくつかを可変長復号処理してしまい、スタートコードとして検出できず、エラーから復帰できるポイントが先へずれてしまうという課題があった。このため、このような課題を解決する手法の一例として、スタートコードの誤検出を防止する機能を備え、可変長符号化データにエラーが発生した場合であっても、直後に復号化処理を開始することが可能な復号化装置が提案されている（例えば、特許文献１参照）。
【０００５】
図５は、従来のスタートコードの誤検出を防止する機能を備えた復号化装置のブロック図である。
【０００６】
図５において、従来の復号化装置は、スタートコードの誤検出を防止するための機能を備えたシステムデコード部９２０、および供給されたビットストリームを復号化する復号処理部９１０により構成される。復号処理部９１０において、復号処理部９１０の各部を制御する復号処理制御部９０２は、まず、第２のスタートコード検出部９０１に対して、切替部９０４を制御しビデオストリームに含まれるスタートコードを供給するとともに、スタートコードの検出を指令する。スタートコードの検出を行なう第２のスタートコート検出部９０１は、スタートコードを検出すると、復号処理制御部９０２に対してスタートコード検出を通知する。この通知により、復号処理制御部９０２は、ヘッダ・エクステンションのデコードを行ない、さらにスライスヘッダを検出するまでこの動作を繰り返す。スライスヘッダが検出されると、復号処理制御部９０２は、切替部９０４を切り替えるように制御するとともに、可変長復号処理を行なうＶＬＤ（Ｖａｒｉａｂｌｅ  Ｌｅｎｇｔｈ  ｃｏｄｅｓ  Ｄｅｃｏｄｅ、可変長復号の略称）処理部９０３に対して、可変長復号処理を開始するよう指令する。ＶＬＤ処理部９０３は、供給されたビットストリームに対して、それに応じた可変長復号処理を行なう。可変長復号処理が終わると、復号処理制御部９０２へ通知し、復号したＤＣＴ係数を、後段の画像復号処理へ渡し、画像データへの復号が行なわれる。さらに、従来の復号化装置は、復号処理部９１０の入力前段に、システムデコード部９２０を設け、スタートコードの誤検出を防止するための処理を行なっている。システムデコード部９２０において、まず、データ分離部９２１は、入力のビットストリームから、ビデオストリーム、およびオーディオストリーム等に分離する。第１のスタートコード検出部９２２は、分離されたビデオストリームに対して、予め決められたスタートコードのパターンを検索し、ビデオストリームに含まれるスタートコードを検出する。データ挿入部９２３は、スタートコードが検出される毎に、検出されたスタートコードの直前に、２４ビットまたは３２ビット程度の連続する”０”データを付加して、後段の復号処理部９１０へ出力する。これによって、スタートコード直前のデータに誤りが発生し、可変長符号として処理されてしまったとしても、スタートコードが失われることを防止できる。すなわち、先頭のデータが誤りによりエスケープコードとみなされて扱われる場合、ランおよびレベルの固定長符号として処理されるのは、スタートコードの直前に付加した”０”データ２４ビットのうちの１８ビットである。そのため、この後に続くスタートコードのデータは処理されずに残っているので、第２のスタートコード検出部９０１での正確なスタートコードの検出が可能となる。また、このような機能により、誤りの直後にスタートコードがあった場合でも、スタートコードの未検出を防止でき、直後に復号化処理を開始することができる。
【０００７】
【特許文献１】
特開２００２−３３６６８号公報
【０００８】
【発明が解決しようとする課題】
しかしながら、従来の復号化装置は、供給されたビットストリームに対して、さらに”０”のデータを付加するため、復号化処理のためのデータ量が増加することとなり、例えば、復号化に用いるバッファの、バッファ容量を増加させる必要が生じ、バッファ用メモリ等のハードウエア量が増大する。また、スタードコード検出部を２箇所に設ける必要があるため、これによっても、ハードウエア量が増大し、復号化処理を実現する回路規模が増加するという課題を有していた。
【０００９】
本発明は、以上のような課題を解決するためになされたもので、スタートコード直前のデータに誤りが発生した場合であっても、スタートコードが可変長符号化データとして復号化処理されてしまう誤動作を防止し、復号化品質の向上を図った復号化装置、および復号化方法であって、回路規模の増加を抑制し、容易に、上述したような誤動作の防止を可能とした復号化方法、および復号化装置を提供することを目的とする。
【００１０】
【課題を解決するための手段】
上記課題を解決するため、本発明の復号化方法は、画像データを可変長符号化したビットストリームであるビデオストリームを復号化する復号化方法であって、ビデオストリームに含まれるスタートコードを検出するステップと、スタートコードの検出結果に基づいて、スタートコードに続く可変長符号化データの可変長復号処理を行ない、可変長復号処理の終了とともに終了通知を発行するステップとを備え、上記スタートコードを検出するステップは、終了通知に基づいて、スタートコードの先頭データよりも所定のビット数だけ手前のデータ位置からスタートコードの検出を開始する構成である。
【００１１】
また、本発明の復号化装置は、画像データを可変長符号化したビットストリームであるビデオストリームを復号化する復号化装置であって、ビデオストリームに含まれるスタートコードを検出するスタートコード検出手段と、スタートコード検出手段によるスタートコードの検出結果に基づいて、スタートコードに続く可変長符号化データの可変長復号処理を行ない、可変長復号処理の終了とともに終了通知を発行する可変長復号処理手段と、可変長復号処理手段からの終了通知に基づき、スタートコード検出手段に対して、スタートコードの検出を行なうよう検出指令を発行する制御手段とを備え、スタートコード検出手段は、制御手段からのスタートコードの検出指令に応じて、スタートコードの先頭データよりも所定のビット数だけ手前のデータ位置からスタートコードの検出を開始する構成である。
【００１２】
このような構成により、スタートコードを検出するとき、スタートコードの先頭データよりも所定のビット数だけ手前のデータ位置からスタートコードの検出を開始するため、スタートコード直前のデータに誤りが発生した場合であっても、スタートコードが可変長符号化データとして復号化処理されてしまう誤動作を容易に防止でき、誤りの発生直後から復号化処理が可能であり、復号化品質の向上を図ることができる。
【００１３】
また、本発明の復号化装置は、画像データを可変長符号化したビットストリームであるビデオストリームを復号化する復号化装置であって、ビデオストリームを蓄積するビデオストリームバッファと、ビデオストリームバッファの書き込み、および読み出しを制御するビデオバッファ制御手段と、ビデオストリームバッファから読み出されたビデオストリームに含まれるスタートコードを検出するスタートコード検出手段と、スタートコード検出手段によるスタートコードの検出に応じて、ビデオストリームバッファから読み出されたビデオストリームのスタートコード間に含まれる可変長符号化データを可変長復号処理する可変長復号処理手段と、可変長復号処理手段によるスタートコード間の可変長復号処理の終了を検出し、可変長復号処理の終了をビデオバッファ制御手段に通知する復号処理制御部とを備えた構成である。さらに、本発明の復号化装置は、ビデオバッファ制御手段は、復号処理制御部からの可変長復号処理の終了通知に基づき、スタートコードの先頭データよりも所定のビット数だけ手前のデータからスタートコード検出手段に対して供給するように、ビデオストリームバッファを制御し、スタートコード検出手段は、供給されたビデオストリームに対し、スタートコードの先頭データよりも所定のビット数だけ手前のデータ位置からスタートコードの検出を開始する構成である。
【００１４】
このような構成により、スタートコード検出処理時に、ビットストリームを読み出すデータ位置を制御し、スタートコードの先頭データよりも所定のビット数だけ手前のデータ位置からスタートコードの検出を開始する機能を有しているため、スタートコード直前のデータに誤りが発生した場合であっても、スタートコードが可変長符号化データとして復号化処理されてしまう誤動作を防止でき、誤りの発生直後から復号化処理が可能であり、復号化品質の向上を図ることができる。また、ビットストリームを読み出すデータ位置を制御する機能のみを付加すればよいため、回路規模の増加を抑制できるとともに、容易に、上述した誤動作の防止を可能としている。
【００１５】
【発明の実施の形態】
以下、本発明の実施の形態について図面を用いて説明する。
【００１６】
（実施の形態１）
図１は、本実施の形態における復号化装置の構成の一例を示すブロック図である。本復号化装置は、画像データを可変長符号化したビットストリームであるビデオストリームに対し、可変長復号化処理を含む復号化処理を実行し、画像データへと復号化する復号化装置である。
【００１７】
図１において、画像や音声データを可変長符号化したビットストリームが入力端子１１０に供給される。データ分離部１１１は、供給されたビットストリームから、画像データに対応するビデオストリーム、音声データに対応するオーディオストリーム、およびビットストリームに含まれるシステム情報を分離し、それぞれ所定の処理手段に供給する。
【００１８】
ビデオストリームバッファ（以下、適宜、バッファと呼ぶ）１１２は、データ分離部１１１により分離されたビデオストリームを所定のビット数分、一時的に蓄積する蓄積手段である。本実施の形態では、バッファ１１２が、書き込みポインタ信号（以下、適宜、書込信号と呼ぶ）ＷＰ、および読み出しポインタ信号（以下、適宜、読出信号と呼ぶ）ＲＰにより制御され、循環的に書き込み、および読み出しが可能なリングバッファとして機能する一例を挙げて説明する。
【００１９】
ビデオバッファ制御部（以下、適宜、バッファ制御部と呼ぶ）１１３は、バッファ１１２の書き込み、および読み出しを制御するバッファ制御手段である。バッファ制御部１１３は、バッファ１１２の書き込み、および読み出しを制御するための、上述した書込信号ＷＰ、および読出信号ＲＰを、バッファ１１２に供給する。すなわち、バッファ制御部１１３からの書込信号ＷＰ、および読出信号ＲＰのタイミングにより、バッファ１１２によるリングバッファが実現される。また、バッファ制御部１１３は、図１に示す読出制御信号ＲＰｃｎｔにより、読出信号ＲＰのタイミングを可変できる機能を有している。以上のようなバッファ１１２とバッファ制御部１１３との構成により、通常は、バッファ１１２に供給されたビデオストリームが、書込信号ＷＰ、および読出信号ＲＰにより決定される所定の時間だけ遅れてバッファ１１２から出力される。また、バッファ制御部１１３に対して、読出制御信号ＲＰｃｎｔが通知されることで、バッファ１１２は、上記所定の時間の遅れに対してさらに遅れたタイミングでビデオストリームを出力する。
【００２０】
切替部１０４は、切替信号ＣＮＴの制御により、バッファ１１２から供給されたビデオストリームを切り替えて、次に説明するスタートコード検出部１０１、またはＶＬＤ処理部１０３に選択的に供給する。
【００２１】
スタートコード検出部１０１は、切替部１０４から供給されたビデオストリームに含まれるスタートコードを検出するスタートコード検出手段である。ＭＰＥＧ方式に基づくビデオストリームでは、シーケンスヘッダに始まり、シーケンスエクステンション、ＧＯＰ（Ｇｒｏｕｐ  Ｏｆ  Ｐｉｃｔｕｒｅ）ヘッダ、ピクチャヘッダ、スライスヘッダと続き、これらの層が画像の基本単位として、この順に細かく区分される。これらのヘッダおよびエクステンションは、識別子として先頭に３２ビットのスタートコードが置かれる。このスタートコードは、スタートコードプリフィックスと呼ばれる２４ビットの固定パターン（１６進表記で、「０００００１」）と、８ビットの識別コードとにより構成される。それに続いて、それぞれのヘッダ、またはエクステンションのデータが続く。スライスヘッダに続くスライス層のデータは、マクロブロックモード、動きベクトル、コーデッドブロックパターン、係数データと続く。このスライス層毎のデータが可変長符号化されている。スタートコード検出部１０１は、スタートコードを検出すると、次に説明するＶＬＤ処理部１０３、および復号処理制御部１０２にスタートコード検出信号（以下、適宜、検出信号と呼ぶ）Ｓｄｅｔを通知する。
【００２２】
ＶＬＤ（Ｖａｒｉａｂｌｅ  Ｌｅｎｇｔｈ  ｃｏｄｅｓ  Ｄｅｃｏｄｅ、可変長復号の略称）処理部１０３は、スタートコード検出部１０１によるスタートコードの検出に応じて、バッファ１１２から読み出されたビデオストリームのスタートコード間に含まれる可変長符号化データを可変長復号処理する可変長復号処理手段である。ＶＬＤ処理部１０３は、スタートコード検出信号Ｓｄｅｔに応じて可変長復号処理を開始する。また、ＶＬＤ処理部１０３は、可変長復号処理により復号した係数データなどを、後段のデコーダ１０５に供給する。ＶＬＤ処理部１０３は、可変長復号処理を終了すると可変長復号処理終了信号（以下、適宜、終了信号と呼ぶ）Ｖｅｎｄを、終了通知として復号処理制御部１０２に通知する。また、デコーダ１０５は、供給された係数データを逆量子化処理、逆直交変換処理し、さらに動き補償処理等を行なって、非符号化データである画像データを復元する。
【００２３】
復号処理制御部（以下、適宜、制御部と呼ぶ）１０２は、ＶＬＤ処理部１０３からの終了信号Ｖｅｎｄに基づき、スタートコード検出部１０１に対して、スタートコードの検出を行なうよう検出指令を発行する制御手段である。制御部１０２は、ＶＬＤ処理部１０３によるスタートコード間の可変長復号処理の終了を検出し、可変長復号処理の終了をバッファ制御部１１３に通知する。本実施の形態では、制御部１０２は、ＶＬＤ処理部１０３から終了信号Ｖｅｎｄ受け取ることにより、可変長復号処理の終了を検出している。また、本実施の形態では、制御部１０２は、上述の読出制御信号ＲＰｃｎｔにより、バッファ制御部１１３に可変長復号処理の終了を通知している。さらに、制御部１０２は、終了信号Ｖｅｎｄ受け取ると、切替部１０４に対して切替信号ＣＮＴを通知し、スタートコード検出部１０１に対しては、スタートコードの検出を開始するよう検出指令信号ＳＴを通知する。このとき、切替部１０４は、バッファ１１２から供給されたビデオストリームを、スタートコード検出部１０１に供給するように切り替える。また、制御部１０２は、スタートコード検出部１０１から検出信号Ｓｄｅｔを受け取ると、切替信号ＣＮＴにより、バッファ１１２から供給されたビデオストリームを、ＶＬＤ処理部１０３に供給するように切替部１０４を制御する。これにより、切替部１０４は、ビデオストリームを、ＶＬＤ処理部１０３に供給するように切り替える。
【００２４】
上述したように、バッファ制御部１１３は、読出制御信号ＲＰｃｎｔが通知されることで、通常の所定時間の遅れに対してさらに遅れたタイミングで、ビデオストリームがバッファ１１２から出力されるように機能する。すなわち、制御部１０２は、バッファ制御部１１３に対して、可変長復号処理の終了に応じて読出制御信号ＲＰｃｎｔを通知する。このため、バッファ制御部１１３は、制御部１０２からの可変長復号処理の終了通知に基づき、スタートコードの先頭データよりも所定のビット数だけ手前のデータからスタートコード検出部１０１に対して供給するように、バッファ１１２を制御する。さらに、スタートコード検出部１０１は、制御部１０２からのスタートコードの検出指令信号ＳＴに応じて、スタートコードの先頭データよりも所定のビット数だけ手前のデータ位置からスタートコードの検出を開始する。このように、本発明の復号化装置は、スタートコード検出部１０１がスタートコードを検出するとき、スタートコードの先頭データよりも所定のビット数だけ手前のデータから検出を開始することを特徴とする。
【００２５】
以下、本実施の形態の復号化装置は、このような構成とすることにより、スタートコード直前のデータに誤りが発生した場合であっても、スタートコードが可変長符号化データとして復号化処理されてしまう誤動作を容易に防止し、復号化品質の向上を図ることを可能とする動作について説明する。
【００２６】
図２は、本実施の形態における復号化装置の通常時の動作を説明するためのタイミングチャートである。また、図３は、本実施の形態における復号化装置において、ビデオストリームの可変長符号化データにエラーが発生したときの動作を説明するためのタイミングチャートである。
【００２７】
以下、まず、図２のタイミングチャートを参照しながら、本復号化装置の通常時の動作について説明する。図２の（ａ）は、バッファ１１２に供給されるビデオストリームのデータ構成を示している。図２の（ａ）に示すように、スタートコード、ヘッダに続き、ＭＢ１、ＭＢ２と順に示すマクロブロック毎の可変長符号化データが続く。さらに、ＭＢｎで示すマクロブロックの可変長符号化データが最終のデータであり、この後、次のスタートコードが始まる。なお、ＭＢで示すマクロブロックは、画像を直交変換するときの基本画素構成であり、スタートコードで最小区分されるスライス層は、複数個のマクロブロック単位で符号化データが構成されている。
【００２８】
図２の（ｂ）は、バッファ１１２に蓄積されるビデオストリームの様子を示している。図２の（ｂ）では、バッファ制御部１１３の書き込みポインタを所定の値とすることで、バッファ１１２が入力のビデオストリームに対して所定の時間Ｔだけ遅延したビデオストリームを出力する様子を示している。また、所定の時間Ｔの遅延は、バッファ制御部１１３からの書き込みポインタに基づく書込信号ＷＰ、および読み出しポインタに基づく読出信号ＲＰにより決定される。
【００２９】
図２の（ｃ）は、制御部１０２から出力される切替信号ＣＮＴを示している。すなわち、制御部１０２は、ＶＬＤ処理部１０３から終了信号Ｖｅｎｄ受け取ると、図２の（ｃ）に示すように、切替信号ＣＮＴの論理値を”Ｈ”とする。また、制御部１０２は、スタートコード検出部１０１から検出信号Ｓｄｅｔを受け取ると、所定時間の遅延の後、切替信号ＣＮＴの論理値を”Ｌ”とする。制御部１０２は、このような切替信号ＣＮＴにより、切替部１０４を制御する。切替部１０４は、切替信号ＣＮＴに応じて、バッファ１１２から供給されたビデオストリームを、切替信号ＣＮＴの論理値が”Ｈ”のときには、スタートコード検出部１０１に供給し、切替信号ＣＮＴの論理値が”Ｌ”のときには、ＶＬＤ処理部１０３に供給する。
【００３０】
図２の（ｄ）は、制御部１０２から出力される検出指令信号ＳＴを示している。すなわち、制御部１０２は、ＶＬＤ処理部１０３から終了信号Ｖｅｎｄ受け取ると、図２の（ｄ）に示すようなタイミングで、検出指令信号ＳＴをスタートコード検出部１０１に通知する。スタートコード検出部１０１は、この検出指令信号ＳＴを受け取るとスタートコードの検出を開始する。
【００３１】
図２の（ｅ）は、スタートコード検出部１０１が切替部１０４から受け取るビデオストリームを示している。すなわち、図２の（ｅ）に示すように、切替部１０４への切替信号ＣＮＴが論理値”Ｈ”のときのみ、スタートコード検出部１０１にビデオストリームが供給される。また、制御部１０２は、ＶＬＤ処理部１０３から終了信号Ｖｅｎｄ受け取ると、バッファ制御部１１３に対して読出制御信号ＲＰｃｎｔを通知する。バッファ制御部１１３は、読出制御信号ＲＰｃｎｔが通知されると、所定の時間Ｔの遅延に対してさらに遅延したタイミングでビデオストリームを出力する。すなわち、バッファ１１２は、図２の（ｂ）で示すビデオストリームに対して、基準とする所定の読み出しポインタでビデオストリームを読み出すが、読出制御信号ＲＰｃｎｔの通知により、基準のポインタに対してさらに図２の（ｂ）に示すスタートコードオフセット（以下、適宜、オフセットと呼ぶ）ＳＣｏｆｓ分だけ前方向にシフトした読み出しポインタが設定される。これにより、バッファ１１２からは、基準とした所定の時間Ｔの遅延に対して、オフセットＳＣｏｆｓ分だけさらに遅延したビデオストリームが出力される。また、ＶＬＤ処理部１０３から終了信号Ｖｅｎｄが制御部１０２に通知されると、制御部１０２は、読出制御信号ＲＰｃｎｔにより、バッファ制御部１１３に対して、基準とする所定の読み出しポインタに戻すよう通知する。以上のような動作により、スタートコード検出部１０１には、図２の（ｃ）で示す切替信号ＣＮＴが論理値”Ｈ”の期間、図２の（ｅ）で示す所定時間Ｔの遅延に対してさらに遅延したビデオストリームが供給される。すなわち、スタートコード検出部１０１は、図２の（ｄ）で示す検出指令信号ＳＴに応じて、スタートコードの先頭データよりも所定のビット数だけ手前のデータからスタートコードの検出を開始する。また、スタートコード検出部１０１は、スタートコードの検出を終了すると、ＶＬＤ処理部１０３、および制御部１０２に検出信号Ｓｄｅｔを通知する。
【００３２】
図２の（ｆ）は、ＶＬＤ処理部１０３が切替部１０４から受け取るビデオストリームを示している。すなわち、図２の（ｆ）に示すように、切替部１０４への切替信号ＣＮＴが論理値”Ｌ”のときのみ、ＶＬＤ処理部１０３にビデオストリームが供給される。また、このとき、図２の（ｅ）のときとは逆に、バッファ制御部１１３にはオフセットＳＣｏｆｓ分だけの遅延が通知されないため、バッファ１１２からは、基準とした所定の時間Ｔだけ遅延したビデオストリームが出力される。すなわち、スタートコード検出部１０１は、図２の（ｅ）で示すスタートコードを検出すると検出信号ＳｄｅｔをＶＬＤ処理部１０３に通知する。ＶＬＤ処理部１０３は、検出信号Ｓｄｅｔの通知により可変長符号化処理の準備を行ない、図２の（ｆ）で示すようにマクロブロックＭＢ１から順番に、それぞれのマクロブロックに対して可変長符号化処理を行なう。また、図２の（ｆ）で示すように、ＶＬＤ処理部１０３は、マクロブロックＭＢｎまでの可変長符号化処理が終了すると、制御部１０２に対し終了信号Ｖｅｎｄを通知する。
【００３３】
次に、図３のタイミングチャートを参照しながら、本復号化装置における、ビデオストリームの可変長符号化データにエラーが発生したときの動作について説明する。図３に示す（ａ）から（ｆ）までは、それぞれ図２に示す（ａ）から（ｆ）に対応している。図３では、図３の（ａ）に示すように、バッファ１１２に供給されるビデオストリームにデータエラーが発生した場合を示している。特に、図３では、このデータエラーがスタートコードの手前の可変長符号化データに対して生じた場合を示している。このため、図３の（ｆ）で示すように、ＶＬＤ処理部１０３は、データエラーにより、誤った可変長符号化処理を続行することとなり、後続のスタートコードに対しても可変長符号化処理を行なってしまうことがある。しかし、スタートコード検出部１０１に対しては、図２を用いて説明したように、スタートコードの先頭データよりも所定のビット数だけ手前のデータからのビデオストリームが供給される。このため、スタートコード検出部１０１は、スタートコード直前でデータエラーが発生したにもかかわらず、スタートコード手前のデータからスタートコードの検出を開始するので、このスタートコードを検出することができる。よって、次に供給される可変長符号化データに対しては、ＶＬＤ処理部１０３により可変長符号化処理を実行できる。
【００３４】
以上説明したように、本復号化装置は、スタートコード検出部１０１に供給するビデオストリームとして、スタートコードの先頭データよりも所定のビット数だけ手前のデータから供給し、検出を開始しているため、例えば、ビットストリームにエラーが発生したり、特殊再生の際に可変長符号化データが途中で連結された場合でも、直後に復号化を開始することができる。また、バッファ１１２を制御するバッファ制御部１１３の読み出しポインタを制御するのみでよいため、回路規模を増加させることなく容易に実現できる。
【００３５】
なお、本実施の形態においては、バッファ１１２、およびバッファ制御部１１３により構成したリングバッファを利用し、スタートコード検出部１０１に対して、スタートコードの先頭データよりも所定のビット数だけ手前のデータから供給することで、スタートコード検出部１０１が、所定のビット数だけ手前のデータからスタートコードの検出を開始する一例を挙げて説明した。しかし、例えば、リングバッファに代えて、入力したビデオストリームに対し先入れ先出し処理を行ない、先入れ先出し処理したビデオストリームのデータを、スタートコード検出手段に対して供給するＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）メモリを利用した構成によっても本発明を実現することができる。すなわち、スタートコード検出手段は、このＦＩＦＯメモリから、例えば、常に所定のビット数分のデータを並列に入力し、スタートコード検出手段は比較器を利用してスタートコードを検出するような構成に対しても、本発明を適用可能である。
【００３６】
図４は、スタートコード検出手段としてのスタートコード検出部２０１が、ＦＩＦＯメモリからのデータを常時受け取り、スタートコードの検出を行なうような構成の復号化装置に、本発明を適用した一例を示すブロック図である。ＦＩＦＯメモリ２０２は、入力したビデオストリームに対し先入れ先出し処理を行ない、順次遅延した所定のビット数分のデータをスタートコード検出部２０１に供給する。スタートコード検出部２０１は、ビデオストリームの所定のビット数分のデータをＦＩＦＯメモリ２０２から受け取り、例えば比較器によりスタートコードの固定パターン（１６進表記で、「０００００１」）を常時比較し、比較の結果、この固定パターンと一致することで、検出信号Ｓｄｅｔを出力する。また、制御部１０２は、ＶＬＤ処理部１０３からの終了信号Ｖｅｎｄに基づき、スタートコード検出部２０１に対して、スタートコードの検出を行なうよう検出指令信号ＳＴを発行する。このとき、制御部１０２は、スタートコードの先頭データよりも所定のビット数だけ手前のデータ位置からスタートコードの検出を開始するように、検出指令信号ＳＴをスタートコード検出部２０１に通知する。よって、このような構成によっても、スタートコード検出部２０１は、制御部１０２からの検出指令信号ＳＴに応じて、スタートコードの先頭データよりも所定のビット数だけ手前のデータ位置からスタートコードの検出を開始することができ、例えば、ビットストリームにエラーが発生したり、特殊再生の際に可変長符号化データが途中で連結された場合でも、直後に復号化を開始することができる。
【００３７】
また、以上の説明からもわかるように、本発明の復号化装置は、スタートコード検出手段が、スタートコードの検出指令に応じて、スタートコードの先頭データよりも所定のビット数だけ手前のデータ位置からスタートコードの検出を開始することにより、例えば、ビットストリームにエラーが発生したような場合でも、直後に復号化を開始することを可能としている。よって、例えば、ビデオストリームに含まれるスタートコードを検出するステップと、スタートコードの検出結果に基づいて、スタートコードに続く可変長符号化データの可変長復号処理を行ない、可変長復号処理の終了とともに終了通知を発行するステップとを備え、スタートコードを検出するステップは、終了通知に基づいて、スタートコードの先頭データよりも所定のビット数だけ手前のデータ位置からスタートコードの検出を開始するようなステップを有した符号化方法を実行することによっても、本発明を実現することができる。
【００３８】
また、本実施の形態においては、スタートコードの検出、可変長復号処理、復号処理の制御等を機能ブロックにより実現する例を挙げて説明したが、スタートコード検出手段や可変長復号処理手段として、プログラムに従って実行するプロセッサを利用して、上述したような符号化方法を実行させ、本発明の復号化装置を実現することも可能である。すなわち、本発明の復号化装置は、上述のビデオストリームバッファなどビデオストリームを蓄積するメモリに加えて、プログラムに従って実行するプロセッサと、プロセッサを動作させるためのプログラムを格納するプログラムメモリと、プロセッサを動作させるためのプログラムを備えた構成とする。さらに、このプログラムが、メモリに蓄積されたビデオストリームに含まれるスタートコードを検出するステップと、スタートコードの検出結果に基づいて、スタートコードに続く可変長符号化データの可変長復号処理を行ない、可変長復号処理の終了とともに終了通知を発行するステップと、終了通知に基づき、スタートコードを検出するステップにおいて、スタートコードの先頭データよりも所定のビット数だけ手前のデータ位置からスタートコードの検出を開始するように、メモリの読み出しアドレスを制御するステップとを有した復号化方法を、実現するためのプログラムとすることでも本発明の復号化装置を実現できる。
【００３９】
【発明の効果】
以上説明したように、本発明は、復号化方法、および復号化装置において、スタートコード検出処理時に、ビットストリームを読み出すデータ位置を制御し、スタートコードの先頭データよりも所定のビット数だけ手前のデータ位置からスタートコードの検出を開始する機能を設けている。これにより、スタートコード直前のデータに誤りが発生した場合であっても、スタートコードが可変長符号化データとして復号化処理されてしまう誤動作を防止し、復号化品質の向上を可能としている。すなわち、本発明の復号化方法、および復号化装置は、上述した誤動作を防止し、復号化品質の向上を図るために、例えばポインタを戻す機能のみを付加すればよいため、回路規模の増加を抑制し、容易に、上述した誤動作の防止を可能とした復号化方法、および復号化装置を提供することができる。
【図面の簡単な説明】
【図１】本発明の復号化装置の構成を示すブロック図
【図２】本発明の復号化装置の通常時の動作を説明するためのタイミングチャート
【図３】本発明の復号化装置において、可変長符号化データにエラーが発生したときの動作を説明するためのタイミングチャート
【図４】本発明の復号化装置において、ＦＩＦＯメモリを利用したときの構成を示すブロック図
【図５】従来の復号化装置の構成を示すブロック図
【符号の説明】
１０１，２０１  スタートコード検出部
１０２，９０２  復号処理制御部（制御部）
１０３，９０３  ＶＬＤ処理部
１０４，９０４  切替部
１０５  デコーダ
１１０  入力端子
１１１，９２１  データ分離部
１１２  ビデオストリームバッファ（バッファ）
１１３  ビデオバッファ制御部（バッファ制御部）
２０２  ＦＩＦＯメモリ
９０１  第２のスタートコード検出部
９１０  復号処理部
９２０  システムデコード部
９２２  第１のスタートコード検出部
９２３  データ挿入部
【図１】
2004328647.tif 000003
【図２】
2004328647.tif 000004
【図３】
2004328647.tif 000005
【図４】
2004328647.tif 000006
【図５】
2004328647.tif 000007