(57)【要約】      （修正有）【課題】ランダム再生においても画質劣化を防ぐ。【解決手段】ビットストリームの復号が開始される開始フレーム、および開始フレームを復号するための参照画像を得るために復号される参照画像フレームのそれぞれを復号する前に、開始フレームまたは参照画像フレームから時間的に１つ前のＩピクチャまたはＰピクチャとの間に配置されているＢピクチャに量子化マトリクスが記載されている場合、開始フレームまたは参照画像フレームのそれぞれが当該量子化マトリクスで復号されるように、量子化マトリクスバッファに保存されている量子化マトリクスを更新する。復号するフレームに量子化マトリクスが記載されている場合、その量子化マトリクスにより量子化マトリクスバッファを更新し、復号するフレームに量子化マトリクスが記載されていない場合、量子化マトリクスバッファに保存されている量子化マトリクスを用いてビットストリームを復号する。【選択図】図３
2008271546.tif 000002
【特許請求の範囲】
【請求項１】
ビットストリームを復号する復号装置において、
前記ビットストリームを取得するビットストリーム取得手段と、
前記ビットストリームの復号が開始される開始フレーム、および、前記開始フレームを復号するために必要な参照画像を得るために復号される参照画像フレームのそれぞれを復号する前に、復号される前記開始フレームまたは前記参照画像フレームから時間的に１つ前のＩピクチャまたはＰピクチャとの間に配置されているＢピクチャに量子化マトリクスが記載されている場合、前記開始フレームまたは前記参照画像フレームのそれぞれがそれらのＢピクチャに記載されている量子化マトリクスで復号されるように、量子化マトリクスバッファに保存されている量子化マトリクスを更新する量子化マトリクス更新手段と、
復号するフレームに量子化マトリクスが記載されている場合、その量子化マトリクスを用いて前記ビットストリームの復号処理を行うとともに、その量子化マトリクスを用いて前記量子化マトリクスバッファを更新し、復号するフレームに量子化マトリクスが記載されていない場合、前記量子化マトリクスバッファに保存されている量子化マトリクスを用いて前記ビットストリームの復号処理を行う復号処理手段と、
を備える復号装置。
【請求項２】
ピクチャヘッダに量子化マトリクスが記載されているＢピクチャを示す情報を取得する情報取得手段
を更に備え、
前記量子化マトリクス更新手段は、前記情報取得手段により取得された前記情報に基づいて、前記開始フレーム、および、前記参照画像フレームのそれぞれから時間的に１つ前のＩピクチャまたはＰピクチャとの間に配置されているＢピクチャに量子化マトリクスが記載されているかを判断し、それらのＢピクチャに量子化マトリクスが記載されていると判断された場合、前記開始フレームまたは前記参照画像フレームのそれぞれがそれらのＢピクチャに記載されている量子化マトリクスで復号されるように、前記量子化マトリクスバッファに保存されている量子化マトリクスを更新する、
請求項１に記載の復号装置。
【請求項３】
前記情報取得手段により取得される前記情報は、前記ビットストリームを構成するそれぞれのフレームに対応して、量子化マトリクスが記載されているかを示す１ビットのフラグの集合で構成されている、
請求項２に記載の復号装置。
【請求項４】
前記ビットストリームに含まれるＢピクチャに、量子化マトリクスが記載されているかを判断して、量子化マトリクスが記載されているＢピクチャを示す情報を生成する情報生成手段
を更に備え、
前記量子化マトリクス更新手段は、前記情報生成手段により生成された前記情報に基づいて、前記開始フレーム、および、前記参照画像フレームのそれぞれから時間的に１つ前のＩピクチャまたはＰピクチャとの間に配置されているＢピクチャに量子化マトリクスが記載されているかを判断し、それらのＢピクチャに量子化マトリクスが記載されていると判断された場合、前記開始フレームまたは前記参照画像フレームのそれぞれがそれらのＢピクチャに記載されている量子化マトリクスで復号されるように、前記量子化マトリクスバッファに保存されている量子化マトリクスを更新する、
請求項１に記載の復号装置。
【請求項５】
前記情報生成手段により生成される前記情報は、ビットストリームを構成するそれぞれのフレームに対応して、量子化マトリクスが記載されているかを示す１ビットのフラグの集合で構成されている、
請求項４に記載の復号装置。
【請求項６】
前記ビットストリームは、ＭＰＥＧ符号化方式により符号化された符号化ストリームである、
請求項１に記載の復号装置。
【請求項７】
ビットストリームを復号する復号装置の復号方法において、
前記ビットストリームを取得し、
前記ビットストリームの復号が開始される開始フレーム、および、前記開始フレームを復号するために必要な参照画像を得るために復号される参照画像フレームのそれぞれを復号する前に、復号される前記開始フレームまたは前記参照画像フレームから時間的に１つ前のＩピクチャまたはＰピクチャとの間に配置されているＢピクチャに量子化マトリクスが記載されている場合、前記開始フレームまたは前記参照画像フレームのそれぞれが前記Ｂピクチャに記載されている前記量子化マトリクスで復号されるように、量子化マトリクスバッファに保存されている量子化マトリクスを更新し、
復号するフレームに量子化マトリクスが記載されている場合、その量子化マトリクスを用いて前記ビットストリームの復号処理を行うとともに、その量子化マトリクスを用いて前記量子化マトリクスバッファを更新し、
復号するフレームに量子化マトリクスが記載されていない場合、前記量子化マトリクスバッファに保存されている量子化マトリクスを用いて前記ビットストリームの復号処理を行う、
ステップを含む復号方法。
【請求項８】
ビットストリームを復号する場合に用いられる情報を生成する情報処理装置において、
前記ビットストリームを取得するビットストリーム取得手段と、
前記ビットストリーム取得手段により取得された前記ビットストリームに含まれるＢピクチャに、量子化マトリクスが記載されているかを判断して、ピクチャヘッダに量子化マトリクスが記載されているＢピクチャを示す情報を生成する生成手段と、
を備える情報処理装置。
【請求項９】
ビットストリームを復号する場合に用いられる情報を生成する情報処理装置の情報処理方法において、
前記ビットストリームを取得し、
取得された前記ビットストリームに含まれるＢピクチャに、量子化マトリクスが記載されているかを判断し、
判断結果に基づいて、ピクチャヘッダに量子化マトリクスが記載されているＢピクチャを示す情報を生成する、
ステップを含む情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、復号装置および復号方法、情報処理装置および情報処理方法に関する。
【背景技術】
【０００２】
ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）のＬｏｎｇ  ＧＯＰのストリームにおいては、量子化マトリクスの値が参照されて、デコードが実行される。量子化マトリクスは、ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）ストリームデータのエンコードおよびデコードの際の量子化のために用いられる８×８のマトリクスである。
【０００３】
図１を用いて、ビットストリーム内に記述されている量子化マトリクスについて説明する。ＭＰＥＧのＬｏｎｇ  ＧＯＰのストリームは、通常ＧＯＰ先頭のIピクチャのシーケンスヘッダに、量子化マトリクス（図中の量子化マトリクスＱ１）の情報を有している。また、ＧＯＰ内でも途中で量子化マトリクスの変化があった場合、ＰピクチャまたはＢピクチャのピクチャヘッダ内に量子化マトリクスの情報（図中の量子化マトリクスＱ２およびＱ２´）が記載されるが、それ以外の、前のピクチャから量子化マトリクスの変化がないピクチャにおいては、ピクチャヘッダに量子化マトリクスのデータが記載されていない場合が多い。
【０００４】
量子化マトリクスとして、Iピクチャのシーケンスヘッダ内にも、Iピクチャ、Ｐピクチャ、または、Ｂピクチャのそれぞれのピクチャヘッダ内にも、イントラ用とノンイントラ用の２種類を設定できる。また、４：２：２や４：４：４のストリームでは、図中のＢ６ピクチャに記述されているように輝度（図中の量子化マトリクスＱ２）と色差（図中の量子化マトリクスＱ２´）を別々に定義することもできるので、ピクチャヘッダにおいては、イントラ用・ノンイントラ用と輝度用・色差用の組み合わせで最大４種類の量子化マトリクスを設定することができる。
【０００５】
また、ピクチャヘッダ内に記載されている量子化マトリクス（例えば、図中の量子化マトリクスＱ２およびＱ２´）は、拡張量子化マトリクスとも称される。
【０００６】
ストリームが保有している量子化マトリクスをそのまま利用することができない場合、基本的には、ストリームに記載された量子化マトリクスが利用されて、ストリームのエンコードおよびデコードが実行される。
【０００７】
さらに、図２に示されるように、ＧＯＰ途中のＢ６ピクチャのピクチャヘッダに、変更された量子化マトリクスが記載されている状態においては、先頭のI２ピクチャで設定された量子化マトリクスＱ１を使用して、I２ピクチャからＰ８ピクチャまでがエンコードされ、Ｂ６ピクチャで設定された量子化マトリクスＱ２を使用して、Ｂ６ピクチャからＢ１３ピクチャまでがエンコードされている。したがって、このＧＯＰを正常に再生するためには、I２ピクチャからＰ８ピクチャまでは量子化マトリクスＱ１を、Ｂ６ピクチャからＢ１３ピクチャまでは量子化マトリクスＱ２を使用してデコードすることが必要となる。
【０００８】
Ｂ７ピクチャからＢ１３ピクチャまでのいずれかのピクチャからランダム再生がスタートされた場合、いずれのピクチャおよび参照画像となるピクチャにおいても、デコード時に量子化マトリクスＱ２が検出されないため、量子化マトリクスＱ１を用いた量子化が行われてしまい、画質が劣化してしまう。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
ＭＰＥＧストリームをデコードする場合、ストリームの途中で量子化マトリクスに変化があったときには、その変更点以降は、ピクチャヘッダなどに記載されている、変更された量子化マトリクスを用いてデコードが実行される。しかしながら、例えば、ストリームの途中のＢピクチャで量子化マトリクスの変化があって、そのＢピクチャのピクチャヘッダにそれ以降に利用するべき量子化マトリクスの値が記載されていた場合に、ランダム再生などにおいてそのＢピクチャのデコードが実行されず、それに続く、同一の量子化マトリクスでデコードするべき他のピクチャからデコードが実行されてしまった場合、誤った量子化マトリクスを用いてデコードしてしまうことになり、正常な再生が出来ない。
【００１０】
本発明はこのような状況に鑑みてなされたものであり、ランダム再生においても画質劣化を防ぐことができるようにするものである。
【課題を解決するための手段】
【００１１】
本発明の復号装置は、ビットストリームを復号する復号装置であって、前記ビットストリームを取得するビットストリーム取得手段と、前記ビットストリームの復号が開始される開始フレーム、および、前記開始フレームを復号するために必要な参照画像を得るために復号される参照画像フレームのそれぞれを復号する前に、復号される前記開始フレームまたは前記参照画像フレームから時間的に１つ前のＩピクチャまたはＰピクチャとの間に配置されているＢピクチャに量子化マトリクスが記載されている場合、前記開始フレームまたは前記参照画像フレームのそれぞれがそれらのＢピクチャに記載されている量子化マトリクスで復号されるように、量子化マトリクスバッファに保存されている量子化マトリクスを更新する量子化マトリクス更新手段と、復号するフレームに量子化マトリクスが記載されている場合、その量子化マトリクスを用いて前記ビットストリームの復号処理を行うとともに、その量子化マトリクスを用いて前記量子化マトリクスバッファを更新し、復号するフレームに量子化マトリクスが記載されていない場合、前記量子化マトリクスバッファに保存されている量子化マトリクスを用いて前記ビットストリームの復号処理を行う復号処理手段とを備える。
【００１２】
本発明の復号装置によれば、ビットストリームを復号することができ、特に、デコードされないフレームに記載された量子化マトリクスを正しく適用させて復号処理を行うことができる。
【００１３】
本発明の側面の情報処理装置は、ビットストリームを復号する場合に用いられる情報を生成する情報処理装置であって、前記ビットストリームを取得するビットストリーム取得手段と、前記ビットストリーム取得手段により取得された前記ビットストリームに含まれるＢピクチャに、量子化マトリクスが記載されているかを判断して、ピクチャヘッダに量子化マトリクスが記載されているＢピクチャを示す情報を生成する生成手段とを備える。
【００１４】
本発明の情報処理装置によれば、復号に用いる情報を生成することができ、特に、ピクチャヘッダに量子化マトリクスが記載されているＢピクチャを示す情報を取得した復号処理を実行する装置において、デコードされないフレームに記載された量子化マトリクスを正しく適用させて復号処理を行わせることができる。
【発明を実施するための最良の形態】
【００１５】
図３は、デコード処理システムの構成を示すブロック図である。
【００１６】
ビットストリーム解析装置１１は、符号化データ記憶装置１２に記憶されている、または、ネットワーク１３を介して他の装置から供給される圧縮符号化ストリーム(以下、ビットストリームとも称する)ファイルを取得して、ヘッダ情報の解析を行い、Ｂピクチャのピクチャヘッダに量子化マトリクス(以下、適宜、Ｑマトリクスとも称する)が存在するか否かを判断し、いずれのＢフレームに量子化マトリクスが存在するかを示す情報であるインデックスデータを生成し、デコーダ１４に供給する。
【００１７】
デコーダ１４は、ビットストリーム解析装置１１から供給されるインデックスデータを参照して、符号化データ記憶装置１２に記憶されている、または、ネットワーク１３を介して他の装置から供給される圧縮符号化ストリームをデコードし、表示装置１５に出力して表示させたり、復号データ記憶装置１６に供給して記憶させたり、ネットワーク１３を介して、他の装置に供給する。
【００１８】
図４に、ビットストリーム解析装置１１の機能ブロック図を示す。すなわち、ビットストリーム解析装置１１は、図４に示す各部をハードウェアとして備えていても良いし、コンピュータによりプログラムを実行することにより、図４に示す各部の機能を備えるものであっても良い。
【００１９】
ビットストリーム解析装置１１は、ビットストリーム取得部３１、ビットストリーム解析部３２、および、インデックスデータ生成部３３を含んで構成される。
【００２０】
ビットストリーム取得部３１は、符号化データ記憶装置１２に記憶されている、または、ネットワーク１３を介して他の装置から供給されるビットストリームファイルを取得して、ビットストリーム解析部３２に供給する。
【００２１】
ビットストリーム解析部３２は、ビットストリーム取得部３１により取得されたビットストリームファイルをバッファリングするストリームバッファを有し、ストリームバッファに読み込んだ各フレームのヘッダ情報を解析し、いずれかのＢピクチャのピクチャヘッダに拡張量子化マトリクスが存在した場合、そのＢピクチャを示す情報をインデックスデータ生成部３３に供給する。
【００２２】
インデックスデータ生成部３３は、ビットストリーム解析部３２による解析結果に基づいて、このビットストリームのうち、ピクチャヘッダに拡張量子化マトリクスを有するＢピクチャを示す情報であるインデックスデータが記載されたインデックスファイルを生成し、出力する。
【００２３】
図５を参照して、インデックスデータの生成について説明する。
【００２４】
インデックスデータは、Ｂピクチャのピクチャヘッダに記載された拡張量子化マトリクスそのものを含むものではなく、供給されたビットストリームのいずれのＢピクチャが拡張量子化マトリクスを有しているかを示す情報である。インデックスデータは、例えば、ビットストリームを構成するそれぞれのフレームに対応して１ビットのフラグ（量子化マトリクスフラグ）を設定し、拡張量子化マトリクスを有しているＢピクチャに対応するビットには１を、それ以外のビットには０を設定するようにしても良いし、例えば、拡張量子化マトリクスを有しているＢピクチャがいずれのＧＯＰの何番目のフレームであるかを示す情報を記載したテーブル情報であっても良いし、それ以外のデータ形式で、拡張量子化マトリクスを有しているＢピクチャを示すものであっても良い。
【００２５】
例えば、量子化マトリクスフラグによって構成されるインデックスデータが生成される場合、図５に示されるように、供給されたビットストリームにおいて、ＧＯＰ先頭のＩピクチャのシーケンスヘッダに量子化マトリクスが記載されている以外に、Ｂ６ピクチャのピクチャヘッダに拡張量子化マトリクスＱ２が記載されていることが、ビットストリーム解析部３２において解析されたとき、インデックスデータ生成部３３は、インデックスデータにおいて、量子化マトリクスフラグをＢ６ピクチャの位置に設定する。
【００２６】
ここで、例えば、インデックスデータ生成部３３が、拡張量子化マトリクスを有するＢピクチャから拡張量子化マトリクスを抽出し、拡張量子化マトリクス自体が記載されたインデックスデータを生成し、復号時に用いるようにしても、後述するデコーダ１４がランダムデコードを行う場合において正しい量子化マトリクスを利用させるようにすることができる。しかしながら、量子化マトリクスは、符号化または復号に用いられるパラメータの中では、情報量が大きいものであるので、例えば、全てのＢピクチャのピクチャヘッダに拡張量子化マトリクスが記載されているとき、拡張量子化マトリクス自体が記載されたインデックスデータのデータ量は大きくなってしまう。これに対して、図５を用いて説明した、量子化マトリクスフラグによって構成されるインデックスデータのデータ量は非常に小さいものであるが、このようなデータ量の小さな情報であっても、インデックスデータを用いることにより、後述するデコーダ１４がランダムデコードを行う場合において正しい量子化マトリクスを利用させるようにすることができる。
【００２７】
図６に、デコーダ１４の機能ブロック図を示す。すなわち、デコーダ１４は、図６に示す各部をハードウェアとして備えていても良いし、コンピュータによりプログラムを実行することにより、図６に示す各部の機能を備えるものであっても良い。
【００２８】
デコーダ１４は、ビットストリーム取得部５１、インデックスデータ取得部５２、操作入力取得部５３、復号順決定部５４、Ｑマトリクス更新部５５、Ｑマトリクスバッファ５６、復号処理部５７、および、参照画像メモリ５８の機能を有している。
【００２９】
ビットストリーム取得部５１は、符号化データ記憶装置１２に記憶されている、または、ネットワーク１３を介して他の装置から供給されるビットストリームファイルを取得して、復号順決定部５４およびＱマトリクス更新部５５に供給する。
【００３０】
インデックスデータ取得部５２は、ビットストリーム解析装置１１において生成されたインデックスデータを取得し、Ｑマトリクス更新部５５に供給する。
【００３１】
操作入力取得部５３は、例えば、キーボードやマウス、または、図示しないリモートコマンダから送出される信号を受信する受信部などにより構成され、例えば、ビットストリームの再生開始点の指令などのユーザの操作入力を受けて、復号順決定部５４に供給する。
【００３２】
復号順決定部５４は、操作入力取得部５３から供給される、例えば、ビットストリームの再生開始点の指令などのユーザの操作入力に基づいて、ビットストリーム取得部５１から供給されるビットストリームにおいて復号されるフレームの順番を決定し、決定された復号順をＱマトリクス更新部５５および復号処理部５７に供給する。また、復号順決定部５４は、決定された復号順に基づいて、ビットストリーム取得部５１から供給されるビットストリームのうち、復号されるフレームのデータを、復号処理部５７に供給する。
【００３３】
具体的には、例えば、Ｂ６ピクチャからの再生開始が指令された場合、Ｂ６ピクチャを復号するために必要な参照画像をまず復号させる必要があるので、復号順決定部５４は、そのＧＯＰのＩ２ピクチャ、Ｐ５ピクチャ、Ｐ８ピクチャを復号した後、Ｂ６ピクチャを復号して、その後、Ｂ６ピクチャに続くピクチャを復号するように復号順を決定し、決定された復号順をＱマトリクス更新部５５および復号処理部５７に供給するとともに、決定された復号順に対応するピクチャを復号処理部５７に供給する。
【００３４】
Ｑマトリクス更新部５５は、インデックスデータ取得部５２により取得されたインデックスデータ、および、復号順決定部５４により決定された復号されるフレームの順番を基に、必要に応じて、ビットストリーム取得部５１から供給されたビットストリームのうちのＢピクチャのピクチャヘッダに記載されている拡張量子化マトリクスをＱマトリクスバッファ５６に供給して、Ｑマトリクスバッファ５６に保持される量子化マトリクスを更新する。
【００３５】
すなわち、Ｑマトリクス更新部５５は、ランダムデコードが実行されるとき、再生開始ピクチャをデコードするために必要な参照画像のピクチャおよび再生開始ピクチャをデコードする場合において、デコードされるピクチャの直前のＩピクチャまたはＰピクチャとデコードされるピクチャとの間に存在するＢピクチャのうちのいずれかに拡張量子化マトリクスが記載されているか否かを、インデックスデータ取得部５２により取得されたインデックスデータを参照して判断する。そして、デコードされるピクチャの直前のＩピクチャまたはＰピクチャとデコードされるピクチャとの間に存在するＢピクチャのうちのいずれかに拡張量子化マトリクスが記載されている場合、Ｑマトリクス更新部５５は、ビットストリーム取得部５１から供給されたビットストリームのうちの対応するＢピクチャのピクチャヘッダに記載されている拡張量子化マトリクスをＱマトリクスバッファ５６に供給して、Ｑマトリクスバッファ５６に保持されるＱマトリクスを更新する。
【００３６】
再生開始ピクチャをデコードするために必要な参照画像のピクチャおよび再生開始ピクチャをデコードする場合において、デコードされるピクチャの直前のＩピクチャまたはＰピクチャとデコードされるピクチャとの間に存在するＢピクチャとは、換言すれば、再生開始ピクチャをデコードするために必要な参照画像のピクチャおよび再生開始ピクチャの前に連続して配置された、ランダムデコード時にデコードされないピクチャである。
【００３７】
なお、Ｑマトリクス更新部５５は、ランダムデコードが実行されるとき以外にも、例えば、倍速再生など、再生途中のＧＯＰのフレームのいずれかがデコードされない場合においても、デコードされるピクチャの直前のＩピクチャまたはＰピクチャとデコードされるピクチャとの間に存在するデコードされないＢピクチャのうちのいずれかに拡張量子化マトリクスが記載されているときには、対応するＢピクチャのピクチャヘッダに記載されている拡張量子化マトリクスをＱマトリクスバッファ５６に供給して、Ｑマトリクスバッファ５６に保持されるＱマトリクスを更新するようにすると好適である。
【００３８】
Ｑマトリクスバッファ５６は、復号処理部５７により実行される復号処理に利用される量子化マトリクスを保持するバッファである。
【００３９】
なお、インデックスデータは、時間的に前方に配置されたフレームに対応する部分から参照されるようになされているので、デコードされるピクチャの直前のＩピクチャまたはＰピクチャとデコードされるピクチャとの間に存在する複数のＢピクチャに拡張量子化マトリクスが記載されている場合であっても、デコードされるピクチャに対して、時間的に前で最も近いＢピクチャに記載された拡張量子化マトリクスを用いてデコードするべきピクチャがデコードされるように、Ｑマトリクスバッファ５６が更新される。
【００４０】
復号処理部５７は、復号順決定部５４から供給されたビットストリームを、シーケンスヘッダまたはピクチャヘッダに記載されている量子化マトリクス、または、Ｑマトリクスバッファ５６に保持されている量子化マトリクス、および、参照画像メモリ５８に保持されている参照画像を用いて、復号順決定部５４により決定された復号順で復号して出力する。すなわち、復号処理部５７は、復号するフレームのシーケンスヘッダまたはピクチャヘッダに量子化マトリクスが記載されているとき、その量子化マトリクスを用いて復号処理を行うとともに、その量子化マトリクスをＱマトリクスバッファ５６に供給して、Ｑマトリクスバッファ５６に保持されるＱマトリクスを更新する。また、復号処理部５７は、復号するフレームのシーケンスヘッダまたはピクチャヘッダに量子化マトリクスが記載されていないとき、Ｑマトリクスバッファ５６に保持されている量子化マトリクス（拡張量子化マトリクスも含む）を用いて復号処理を行う。そして、復号処理部５７は、復号されたフレームデータがこれ以降復号するピクチャの参照画像として利用されるとき、その復号されたフレームデータを、参照画像として、参照画像メモリ５８に供給する。
【００４１】
参照画像メモリ５８は、復号処理部５７により実行される復号処理に利用される参照画像を保持するフレームメモリである。
【００４２】
図７乃至図１１を参照して、従来のデコード処理と、デコーダ１４において実行されるＱマトリクスバッファ５６の更新およびデコード処理とを、具体的な例を挙げて比較して説明する。
【００４３】
まず、図７および図８を参照して、ＧＯＰの途中から再生開始が指令された場合の、従来のデコード処理について説明する。
【００４４】
従来のデコード処理においては、デコードされるピクチャのシーケンスヘッダまたはピクチャヘッダに量子化マトリクスが記載されている場合、その量子化マトリクスが読み込まれて、新たな量子化マトリクスが読み込まれるまで、その量子化マトリクスを用いてデコードが行われるようになされていた。
【００４５】
図７に示されるように、Ｂ６ピクチャに量子化マトリクスＱ１とは異なる値の量子化マトリクスである拡張量子化マトリクスＱ２の情報が記載されているＭＰＥＧ  Ｌｏｎｇ  ＧＯＰに対して、従来実行されていた方法で、ランダムデコードが実行される場合について説明する。
【００４６】
Ｂ６ピクチャに拡張量子化マトリクスＱ２が記載されている場合、Ｉ２ピクチャ乃至Ｐ８ピクチャは、Ｉ２ピクチャのシーケンスヘッダに記載されている量子化マトリクスＱ１を用いて符号化されているものであるので、量子化マトリクスＱ１に基づいて復号されるべきものであり、Ｂ６ピクチャ以降ＧＯＰ終了点までのフレームは、Ｂ６ピクチャのピクチャヘッダに記載されている拡張量子化マトリクスＱ２を用いて符号化されているものであるので、拡張量子化マトリクスＱ２に基づいて復号されるべきものである。
【００４７】
ここで、例えば、Ｂ７ピクチャが再生開始位置として指定された場合、参照画像を生成するための、Ｉ２、Ｐ５、Ｐ８ピクチャは、正しく量子化マトリクスＱ１に基づいて復号されるが、Ｂ６ピクチャは復号されないため、Ｂ６ピクチャに記載されている拡張量子化マトリクスＱ２は読み込まれない。したがって、Ｑマトリクスバッファ５６に保持されている量子化マトリクスは更新されず、復号されたＰ５ピクチャと、Ｐ８ピクチャを参照してＢ７ピクチャが復号されるときに、本来、拡張量子化マトリクスＱ２を用いて復号するべきであるにもかかわらず、量子化マトリクスＱ１を用いて復号されてしまう。
【００４８】
同様にして、図中αで示されるＢ７乃至Ｂ１３の区間のいずれかのピクチャから再生開始が指令された場合、Ｂ７ピクチャにおける場合と同様に、これらのピクチャとその参照画像は、いずれも、量子化マトリクスＱ１を用いて復号されてしまう。例えば、Ｐ１１ピクチャが再生開始ピクチャである場合においても、Ｂ６ピクチャに記載されている拡張量子化マトリクスＱ２は読み込まれないため、Ｑマトリクスバッファ５６に保持されている量子化マトリクスは更新されず、Ｐ１１ピクチャは、本来、拡張量子化マトリクスＱ２を用いて復号するべきであるにもかかわらず、量子化マトリクスＱ１を用いて復号されてしまう。
【００４９】
そして、最も極端な例は、図８に示されるように、ＧＯＰ先頭のＢ０ピクチャに量子化マトリクスＱ１とは異なる値の量子化マトリクスである拡張量子化マトリクスＱ２の情報が記載されているＭＰＥＧ Long ＧＯＰに対して、ランダムデコードが実行される場合である。このように、先頭のIピクチャの直後のＢ０ピクチャから、Iピクチャとは異なる量子化マトリクスによってエンコードされている場合、量子化マトリクスＱ２の情報が記載されているＢ０ピクチャの後の、図中βで示されている、Ｂ１ピクチャから次のIピクチャの手前までのいずれのピクチャがランダム再生の再生開始位置として選択されても、量子化マトリクスＱ２でデコードされるべきピクチャが量子化マトリクスＱ１でデコードされてしまう。
【００５０】
すなわち、通常ＭＰＥＧ2でよく用いられるＧＯＰ構造（Ｎ＝１５、Ｍ＝３）のストリームにおいて、図８に示されるビットストリームのようにＩピクチャ以外の全てのフレームがＩピクチャとは異なる拡張量子化マトリクスを用いて符号化されている場合、１３フレームもの区間のいずれのフレームが再生開始位置として指定されたとしても、得られる画像が劣化してしまう恐れがある。これを一般化すると、１ＧＯＰを構成するフレーム数−２のフレームがランダムデコードの再生開始位置に指定された場合において、デコードが誤動作してしまい、得られる画像が劣化してしまう恐れがある。
【００５１】
次に、図９乃至図１１を参照して、上述したインデックスファイルを用いたデコード処理においてランダムデコードが実行される場合の処理例について説明する。
【００５２】
Ｑマトリクス更新部５５は、上述したように、再生開始ピクチャをデコードするために必要な参照画像のピクチャおよび再生開始ピクチャをデコードする場合において、デコードされるピクチャの直前のＩピクチャまたはＰピクチャとデコードされるピクチャとの間に存在するデコードされないＢピクチャのうちのいずれかに拡張量子化マトリクスが記載されているか否かを、インデックスデータ取得部５２により取得されたインデックスデータを参照して判断する。そして、デコードされないＢピクチャのうちのいずれかに拡張量子化マトリクスが記載されている場合、Ｑマトリクス更新部５５は、ビットストリーム取得部５１から供給されたビットストリームのうちのＢピクチャのピクチャヘッダに記載されている拡張量子化マトリクスをＱマトリクスバッファ５６に供給して、Ｑマトリクスバッファ５６に保持されるＱマトリクスを更新するようになされている。
【００５３】
図９に示されるように、Ｂ６ピクチャに拡張量子化マトリクスＱ２が記載され、Ｂ７ピクチャが再生開始位置として指定された場合、復号処理部５７は、Ｂ７ピクチャのデコード処理に先立って参照画像を用意するので、参照画像のいらないＩ２ピクチャを、Ｉ２ピクチャのシーケンスヘッダに記載された量子化マトリクスＱ１を用いて復号し、量子化マトリクスＱ１をＱマトリクスバッファ５６に保存させるとともに、復号済みのＩピクチャを参照画像メモリ５８に供給して保存させる。
【００５４】
そして、Ｑマトリクス更新部５５は、Ｐ５、Ｐ８ピクチャのそれぞれの直前のＩピクチャまたはＰピクチャとの間に存在するデコードされないＢピクチャに拡張量子化マトリクスが記載されているか否かを、インデックスデータ取得部５２により取得されたインデックスデータを参照して判断する。Ｑマトリクス更新部５５は、インデックスデータに基づいて、対応するＢピクチャのいずれにも拡張量子化マトリクスが記載されていないことを検知することができるので、復号処理部５７は、参照画像を生成するための、Ｐ５、Ｐ８ピクチャを、Ｉ２ピクチャのシーケンスヘッダに記載され、Ｉピクチャの復号時にＱマトリクスバッファ５６に保存された量子化マトリクスＱ１に基づいて復号する。
【００５５】
そして、Ｑマトリクス更新部５５は、Ｂ７ピクチャのデコード処理に先立って、Ｐ８ピクチャとの間に存在するＢピクチャ、すなわち、Ｂ６ピクチャに拡張量子化マトリクスが記載されているか否かを、インデックスデータ取得部５２により取得されたインデックスデータを参照して判断する。Ｑマトリクス更新部５５は、インデックスデータに基づいて、Ｂ６ピクチャに拡張量子化マトリクスＱ２が記載されていることを検知することができるので、復号処理部５７によりＢ７ピクチャが復号されるときに拡張量子化マトリクスＱ２が用いられるように、Ｑマトリクスバッファ５６にＢ６ピクチャのシーケンスヘッダから抽出された拡張量子化マトリクスＱ２を供給して保存させる。
【００５６】
そして、Ｂ６ピクチャは復号されないが、Ｑマトリクス更新部５５により、Ｂ６ピクチャに記載されている拡張量子化マトリクスＱ２がＱマトリクスバッファ５６に供給されて更新されているため、復号処理部５７は、本来、拡張量子化マトリクスＱ２を用いて復号するべきＢ７ピクチャと、それ以降の各ピクチャを、正しく、拡張量子化マトリクスＱ２を用いて復号することができる。
【００５７】
また、例えば、図１０に示されるように、Ｂ３ピクチャに拡張量子化マトリクスＱ２が、Ｂ６ピクチャに拡張量子化マトリクスＱ３が記載され、Ｂ７ピクチャが再生開始位置として指定された場合、復号処理部５７は、Ｂ７ピクチャのデコード処理に先立って参照画像を用意するので、参照画像のいらないＩ２ピクチャを、Ｉ２ピクチャのシーケンスヘッダに記載された量子化マトリクスＱ１を用いて復号し、量子化マトリクスＱ１をＱマトリクスバッファ５６に保存させるとともに、復号済みのＩピクチャを参照画像メモリ５８に供給して保存させる。
【００５８】
そして、Ｑマトリクス更新部５５は、Ｐ５ピクチャの直前のＩピクチャとの間に存在するＢ０ピクチャおよびＢ１ピクチャに拡張量子化マトリクスが記載されているか否かを、インデックスデータ取得部５２により取得されたインデックスデータを参照して判断する。Ｑマトリクス更新部５５は、インデックスデータに基づいて、対応するＢピクチャのいずれにも拡張量子化マトリクスが記載されていないことを検知することができるので、復号処理部５７は、参照画像を生成するためのＰ５ピクチャを、Ｉ２ピクチャのシーケンスヘッダに記載され、Ｉピクチャの復号時にＱマトリクスバッファ５６に保存された量子化マトリクスＱ１に基づいて復号する。
【００５９】
そして、Ｑマトリクス更新部５５は、Ｐ８ピクチャの直前のＰピクチャであるＰ５ピクチャとの間に存在するＢ３ピクチャおよびＢ４ピクチャに拡張量子化マトリクスが記載されているか否かを、インデックスデータ取得部５２により取得されたインデックスデータを参照して判断する。Ｑマトリクス更新部５５は、インデックスデータに基づいて、Ｂ３ピクチャに拡張量子化マトリクスＱ２が記載されていることを検知することができるので、復号処理部５７によりＰ８ピクチャが復号されるときに拡張量子化マトリクスＱ２が利用されるように、Ｑマトリクスバッファ５６にＢ３ピクチャのシーケンスヘッダから抽出された拡張量子化マトリクスＱ２を供給して保存させる。そして、復号処理部５７は、Ｂ３ピクチャが復号されないのにもかかわらず、参照画像を生成するためのＰ８ピクチャを、正しく、拡張量子化マトリクスＱ２を用いて復号することができる。
【００６０】
更に、Ｑマトリクス更新部５５は、Ｂ７ピクチャのデコード処理に先立って、Ｐ８ピクチャとの間に存在するＢピクチャ、すなわち、Ｂ６ピクチャに拡張量子化マトリクスが記載されているか否かを、インデックスデータ取得部５２により取得されたインデックスデータを参照して判断する。Ｑマトリクス更新部５５は、インデックスデータに基づいて、Ｂ６ピクチャには、拡張量子化マトリクスＱ３が記載されていることを検知することができるので、復号処理部５７によりＢ７ピクチャが復号されるときに拡張量子化マトリクスＱ３が利用されるように、Ｑマトリクスバッファ５６にＢ６ピクチャのシーケンスヘッダから抽出された拡張量子化マトリクスＱ３を供給して保存させる。
【００６１】
そして、Ｂ６ピクチャは復号されないが、Ｑマトリクス更新部５５により、Ｂ６ピクチャに記載されている拡張量子化マトリクスＱ３がＱマトリクスバッファ５６に供給されて更新されるため、復号処理部５７は、本来、拡張量子化マトリクスＱ３を用いて復号するべきＢ７ピクチャと、それ以降の各ピクチャを、正しく、拡張量子化マトリクスＱ３を用いて復号することができる。
【００６２】
同様に、図８を用いて説明した最も極端な例、すなわち、ＧＯＰ先頭のＢ０ピクチャに量子化マトリクスＱ１とは異なる値の量子化マトリクスである拡張量子化マトリクスＱ２の情報が記載されているＭＰＥＧ  Ｌｏｎｇ  ＧＯＰに対して、ランダムデコードが実行される場合にも、同様に、インデックスファイルを用いることにより、正しく復号処理を行うことができる。
【００６３】
図１１に示されるように、先頭のIピクチャの直後のＢ０ピクチャから、Iピクチャのシーケンスヘッダに記載されている量子化マトリクスＱ１とは異なる拡張量子化マトリクスＱ２によってエンコードされている場合、拡張量子化マトリクスＱ２の情報が記載されているＢ０ピクチャの後の、図中βで示されている、Ｂ１ピクチャから次のIピクチャの手前までのいずれのピクチャがランダム再生の再生開始位置として選択されたとしても、Ｑマトリクス更新部５５は、Ｂ１ピクチャまたはＰ５ピクチャのデコード処理に先立って、Ｉ２ピクチャとの間に存在するＢピクチャ、すなわち、Ｂ０ピクチャに拡張量子化マトリクスが記載されているか否かを、インデックスデータ取得部５２により取得されたインデックスデータを参照して判断する。Ｑマトリクス更新部５５は、インデックスデータに基づいて、Ｂ０ピクチャには、拡張量子化マトリクスＱ２が記載されていることを検知することができるので、復号処理部５７によりＢ１ピクチャまたはＰ５ピクチャが復号されるときに量子化マトリクスＱ２が用いられるように、Ｑマトリクスバッファ５６にＢ０ピクチャのシーケンスヘッダから抽出された拡張量子化マトリクスＱ２を供給して保存させる。
【００６４】
そして、Ｂ０ピクチャが復号されない場合であっても、Ｂ０ピクチャ以降のピクチャが復号されるときには、Ｑマトリクス更新部５５により、Ｂ０ピクチャに記載されている拡張量子化マトリクスＱ２がＱマトリクスバッファ５６に供給されて更新されるため、復号処理部５７は、Ｂ１ピクチャまたはＰ５ピクチャと、それ以降のピクチャを、正しく、拡張量子化マトリクスＱ２を用いて復号することができる。
【００６５】
なお、このような処理は、ランダムデコードが実行されるとき以外にも、例えば、倍速再生など、再生途中のＧＯＰのフレームのいずれかがデコードされない場合において適用可能である。
【００６６】
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。また、上述した一連の処理は、複数の装置ではなく、１つの装置において実行させることができる。
【００６７】
すなわち、上述した処理の全部または一部をソフトウェアにより１つの装置内で実行させることができる。具体的には、ビットストリーム解析装置１１、または、デコーダ１４のうちの一方が有する機能、または、図３を用いて説明したシステム全体が有する機能は、図１２に示されるようなパーソナルコンピュータ２０１により提供することができる。
【００６８】
図１２において、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２２１は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２２２に記憶されているプログラム、またはＨＤＤ２２６からＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２２３にロードされたプログラムに従って各種の処理を実行する。ＲＡＭ２２３にはまた、ＣＰＵ２２１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【００６９】
ＣＰＵ２２１、ＲＯＭ２２２、およびＲＡＭ２２３は、バス２２４を介して相互に接続されている。このバス２２４にはまた、インタフェース（Ｉ／Ｆ）２２５−１乃至２２５−３、ＨＤＤ（ｈａｒｄ  Ｄｉｓｃ  Ｄｒｉｖｅ）２２６、映像特殊効果音声ミキシング処理部２２７、および、信号処理部２２８も接続されている。
【００７０】
インタフェース２２５−１には、マウス２０２やキーボード２０３などの入力デバイスが接続されている。インタフェース２２５−２には、記憶装置２０４が接続され、情報を授受することができるようになされている。また、インタフェース２２５−３には、外部映像記録再生装置２０５−１乃至２０５−ｍが接続され、情報を授受することができるようになされている。ＨＤＤ２２６は、ハードディスクをドライブし、各種情報を記憶することができるようになされている。
【００７１】
映像特殊効果音声ミキシング処理部２２７は、信号処理部２２８、並びに、記憶装置２０４および映像記録再生装置２０５−１乃至２０５−ｍとも接続され、記憶装置２０４および映像記録再生装置２０５−１乃至２０５−ｍのいずれかから供給された、または、バス２２４を介して、ＨＤＤ２２６から供給された映像信号に特殊効果を施したり、音声をミキシングするなどして、信号処理部２２８に供給させて出力させたり、記憶装置２０４および映像記録再生装置２０５−１乃至２０５−ｍのうちのいずれかに供給させて保存させる。
【００７２】
信号処理部２２８は、ディスプレイ２２９およびスピーカ２３０とも接続され、例えば、映像特殊効果音声ミキシング処理部２２７などから供給された映像信号を、ディスプレイ２２９に供給して表示させたり、音声信号を、スピーカ２３０に供給して音声出力させる。
【００７３】
ディスプレイ２２９は、例えば、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  ｄｉｓｐｌａｙ）などよりなり、信号処理部２２８から供給される映像を表示する。スピーカ２３０は、信号処理部２２８から供給される音声を再生出力する。
【００７４】
バス２２４にはまた、必要に応じてドライブ２３１が接続され、磁気ディスク、光ディスク、光磁気ディスク、あるいは半導体メモリなどのリムーバブルメディア２０６が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じてＨＤＤ２２６にインストールされる。
【００７５】
図１２を用いて説明したパーソナルコンピュータ２０１において、ソフトウェアにより、上述したビットストリーム解析装置１１が実行する一連の処理と同様の処理が実行されて、インデックスデータが生成されるとともに、上述したデコーダ１４が実行する一連の処理と同様の処理が実行されて、生成されたインデックスデータに基づいてビットストリームがデコードされる場合の機能の一例について説明するための機能ブロック図を図１３に示す。
【００７６】
なお、図４、図６、または図１２における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
【００７７】
ＣＰＵ２２１が所定のプログラムを実行することによって、パーソナルコンピュータ２０１は、図４のビットストリーム取得部３１、ビットストリーム解析部３２、および、インデックス生成部３３と同様の機能を有するとともに、図６のデコーダ１４と基本的に同等の機能を有するデコード処理部２６１の機能を有する。
【００７８】
そして、ビットストリーム取得部３１により取得されたビットストリームを保持するストリームバッファ２８１、および、インデックスデータ生成部３３の処理により生成されたインデックスデータを蓄積するインデックスデータデータベース２８２に対応するデータ記憶領域は、ＲＡＭ２２３に設けられる。なお、ストリームバッファ２８１およびインデックスデータデータベース２８２に対応するデータ記憶領域は、ＲＡＭ２２３ではなく、例えば、ＣＰＵ２２１のキャッシュメモリとして設けるようにしてもよい。
【００７９】
デコード処理部２６１は、ストリームバッファ２８１からビットストリームを取得し、インデックスデータデータベース２８２からインデックスデータを取得するとともに、ユーザがマウス２０２やキーボード２０３などを用いて入力した操作入力を、インタフェース２２５−１およびバス２２４を介して取得して、図６を用いて説明したデコーダ１４と同等の処理を実行する。そして、デコード処理部２６１は、生成された復号後のベースバンド画像データを、例えば、インタフェース２２５−２を介して、記憶装置２０４に供給して記憶させたり、ネットワーク１３を介して、外部の装置に供給したり、インタフェース２２５−３を介して、外部映像記録再生装置２０５に供給して、記録させたり、再生させることができる。また、デコード処理部２６１は、生成された復号後のベースバンド画像データを、例えば、信号処理部２２８に供給して、所定の信号処理を施した後、ディスプレイ２２９に供給して表示させたり、ドライブ２３１に供給して、ドライブ２３１に装着されているリムーバブルメディア２０６に供給して記録させることができる。
【００８０】
ＣＰＵ２２１のビットストリーム取得部３１は、記憶装置２０４、外部映像記録再生装置２０５、または、ＨＤＤ２２６のうちのいずれかの領域に対応するオリジナルビットストリーム記憶部２５１に記録されているビットストリームを取得するか、または、インタフェース２２５−２およびネットワーク１３を介して他の装置から送信されたビットストリームを取得するか、もしくは、ドライブ２３１に装着されたリムーバブルメディア２０６に記録されているビットストリームを取得し、ビットストリーム解析部３２に供給するとともに、ＲＡＭ２２３のストリームバッファ２８１に供給する。
【００８１】
ＣＰＵ２２１のビットストリーム解析部３２は、供給されたビットストリームの各フレームのヘッダ情報を解析し、いずれかのＢピクチャのピクチャヘッダに拡張量子化マトリクスが存在した場合、そのＢピクチャを示す情報をインデックスデータ生成部３３に供給する。
【００８２】
インデックスデータ生成部３３は、図５を用いて説明したようにして、ビットストリーム解析部３２による解析結果に基づいて、このビットストリームのうち、ピクチャヘッダに拡張量子化マトリクスを有するＢピクチャを示す情報であるインデックスデータを生成し、ＲＡＭ２２３のインデックスデータデータベース２８２に出力する。
【００８３】
ＲＡＭ２２３のストリームバッファ２８１は、ビットストリーム取得部３１により取得されたビットストリームをバッファリングし、デコード処理部２６１に供給する。
【００８４】
ＲＡＭ２２３のインデックスデータデータベース２８２は、インデックスデータ生成部３３により生成されたインデックスデータを蓄積し、デコード処理部２６１によりデコードされるビットストリームに対応するインデックスデータを、デコード処理部２６１に供給する。
【００８５】
デコード処理部２６１は、ＲＡＭ２２３のストリームバッファ２８１から復号処理を実行するビットストリームを読み出すとともに、そのビットストリームに対応するインデックスデータを、ＲＡＭ２２３のインデックスデータデータベース２８２から読み出す。デコード処理部２６１は、上述した図６のデコーダ１４と同等の機能を有している。
【００８６】
すなわち、デコード処理部２６１においては、ビットストリーム取得部５１でビットストリームファイルが取得され、インデックスデータ取得部５２でインデックスデータが取得され、操作入力取得部５３で、例えば、ビットストリームの再生開始点の指令など、ユーザの操作入力を受けるようになされている。そして、復号順決定部５４は、復号されるフレームの順番を決定し、決定された復号順に基づいて、ビットストリーム取得部５１から供給されるビットストリームのうち、復号されるフレームのデータを、復号処理部５７に供給する。
【００８７】
そして、デコード処理部２６１のＱマトリクス更新部５５は、ランダムデコードが実行されるとき、再生開始ピクチャをデコードするために必要な参照画像のピクチャおよび再生開始ピクチャをデコードする場合において、デコードされるピクチャの直前のＩピクチャまたはＰピクチャとデコードされるピクチャとの間に存在するＢピクチャのうちのいずれかに拡張量子化マトリクスが記載されているか否かを、インデックスデータ取得部５２により取得されたインデックスデータを参照して判断し、デコードされるピクチャの直前のＩピクチャまたはＰピクチャとデコードされるピクチャとの間に存在するＢピクチャのうちのいずれかに拡張量子化マトリクスが記載されている場合、ビットストリーム取得部５１から供給されたビットストリームのうちのＢピクチャのピクチャヘッダに記載されている拡張量子化マトリクスをＱマトリクスバッファ５６（ＣＰＵ２２１のキャッシュメモリ内に設けると好適であるが、ＲＡＭ２２３に設けても良い）に供給して、Ｑマトリクスバッファ５６に保持されるＱマトリクスを更新する。
【００８８】
そして、デコード処理部２６１の復号処理部５７は、復号順決定部５４から供給されたビットストリームを、シーケンスヘッダまたはピクチャヘッダに記載されている量子化マトリクスまたはＱマトリクスバッファ５６に保持されている量子化マトリクスを用いるとともに、必要に応じて参照画像メモリ５８（ＣＰＵ２２１のキャッシュメモリ内に設けると好適であるが、ＲＡＭ２２３に設けても良い）に保持されている参照画像を参照し、復号順決定部５４により決定された復号順で復号して出力する。
【００８９】
なお、上述した場合と同様にして、デコード処理部２６１のＱマトリクス更新部５５は、ランダムデコードが実行されるとき以外にも、例えば、倍速再生など、再生途中のＧＯＰのフレームのいずれかがデコードされない場合においても、デコードされるピクチャの直前のＩピクチャまたはＰピクチャとデコードされるピクチャとの間に存在するＢピクチャのうちのいずれかに拡張量子化マトリクスが記載されているときには、対応するＢピクチャのピクチャヘッダに記載されている拡張量子化マトリクスをＱマトリクスバッファ５６に供給して、Ｑマトリクスバッファ５６に保持されるＱマトリクスを更新するようにすると好適である。
【００９０】
このように、デコーダ１４と同様の機能を有するデコード処理部２６１は、例えば、図９乃至図１１を用いて説明したようにしてビットストリームをデコードするので、ランダム再生処理が実行された場合においても、誤った量子化マトリクスが参照されてしまうことによる誤動作が発生しないため、従来における場合と比較して、画質の劣化を抑制することが可能となる。
【００９１】
そして、デコードされたフレーム画像データは、インタフェース２２５を介して外部に出力しても良いし、ドライブ２３１を介して、リムーバブルメディア２０６に記録させても良いし、信号処理部２２８に供給されて、所定の信号処理が施された後、ディスプレイ２２９に供給されて再生表示されるようにしてもよい。
【００９２】
また、図１２を用いて説明したパーソナルコンピュータ２０１において、ソフトウェアにより、上述したビットストリーム解析装置１１が実行する一連の処理と同様の処理が実行されて、インデックスデータが生成される場合の機能の一例について説明するための機能ブロック図を図１４に示す。
【００９３】
なお、図１３における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
【００９４】
すなわち、上述したビットストリーム解析装置１１が実行する一連の処理と同様の処理を実行可能なパーソナルコンピュータ２０１は、図１３を用いて説明した場合と同様の、ビットストリーム取得部３１、ビットストリーム解析部３２、インデックス生成部３３、および、インデックスデータデータベース２８２と同様の機能を有するとともに、インデックスデータ出力制御部２９１の機能を有している。
【００９５】
インデックスデータ出力制御部２９１は、生成されたインデックスデータをインデックスデータデータベース２８２から読み出して、外部の装置（デコーダ１４、または、デコーダ１４と同等の機能を有する図１５を用いて説明するパーソナルコンピュータ２０１、もしくは、その他の装置）に出力する処理を制御する。
【００９６】
図１４を用いて説明した機能を有するパーソナルコンピュータ２０１は、上述したビットストリーム解析装置１１が実行する一連の処理と同様の処理を実行することが可能である。
【００９７】
次に、図１２を用いて説明したパーソナルコンピュータ２０１において、ソフトウェアにより、上述したデコーダ１４が実行する一連の処理と同様の処理が実行されて、生成されたインデックスデータに基づいてビットストリームがデコードされる場合の機能の一例について説明するための機能ブロック図を図１５に示す。
【００９８】
なお、図１３における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
【００９９】
すなわち、上述したデコーダ１４が実行する一連の処理と同様の処理を実行可能なパーソナルコンピュータ２０１は、図１３を用いて説明した場合と同様の、ビットストリーム取得部３１、デコード処理部２６１、ストリームバッファ２８１、および、インデックスデータデータベース２８２の機能を有するとともに、インデックスデータ取得部３０１の機能を有する。
【０１００】
インデックスデータ取得部３０１は、記憶装置２０４、外部映像記録再生装置２０５、または、ＨＤＤ２２６のうちのいずれかの領域に記録されている、インデックスデータが記載されたインデックスファイルを取得するか、または、インタフェース２２５−２およびネットワーク１３を介して他の装置から送信された、インデックスデータが記載されたインデックスファイルを取得するか、もしくは、ドライブ２３１に装着されたリムーバブルメディア２０６に記録されている、インデックスデータが記載されたインデックスファイルを取得し、インデックスデータデータベース２８２に供給して記録させる。
【０１０１】
図１５を用いて説明した機能を有するパーソナルコンピュータ２０１は、上述したデコーダ１４が実行する一連の処理と同様の処理を実行することが可能である。
【０１０２】
次に、図１６のフローチャートを参照して、ビットストリーム解析装置１１、または、パーソナルコンピュータ２０１において実行される、インデックスデータ生成処理について説明する。
【０１０３】
ステップＳ１１において、ビットストリーム解析部３２は、ビットストリーム取得部３１により取得され、ストリームバッファにバッファリングされたビットストリームから、解析を行うフレームデータを１フレーム取得する。
【０１０４】
ステップＳ１２において、ビットストリーム解析部３２は、取得したストリームはＢピクチャであるか否かを判断する。
【０１０５】
ステップＳ１２において、取得したストリームはＢピクチャであると判断された場合、ステップＳ１３において、ビットストリーム解析部３２は、そのＢピクチャのピクチャヘッダに量子化マトリクスが記載されているか否かを判断する。
【０１０６】
ステップＳ１３において、Ｂピクチャのピクチャヘッダに量子化マトリクスが記載されていると判断された場合、ステップＳ１４において、ビットストリーム解析部３２は、そのＢピクチャを示す情報をインデックスデータ生成部３３に供給する。インデックスデータ生成部３３は、インデックスデータの量子化マトリクスを有しているＢピクチャに対応するビットに量子化マトリクスフラグを設定する。
【０１０７】
ステップＳ１２において、取得したストリームはＢピクチャではないと判断された場合、ステップＳ１３において、Ｂピクチャのピクチャヘッダに量子化マトリクスが記載されていないと判断された場合、または、ステップＳ１４の処理の終了後、ステップＳ１５において、ビットストリーム解析部３２は、ビットストリーム取得部３１により取得され、ストリームバッファにバッファリングされたビットストリームファイルの全フレームの処理が終了したか否かを判断する。
【０１０８】
ステップＳ１５において、全フレームの処理が終了していないと判断された場合、処理は、ステップＳ１１に戻り、それ以降の処理が繰り返される。
【０１０９】
ステップＳ１５において、全フレームの処理が終了したと判断された場合、ステップＳ１６において、インデックスデータ生成部３３は、ビットストリーム解析部３２による解析結果に基づいて、このビットストリームのうち、ピクチャヘッダに拡張量子化マトリクスを有するＢピクチャを示す情報であるインデックスデータが記載されたインデックスファイルを生成し、出力して、処理が終了される。
【０１１０】
このような処理により、図５を用いて説明したように、インデックスデータが生成される。
【０１１１】
なお、ここでは、インデックスデータが記載されたインデックスファイルを生成し、出力するものとして説明するが、後述するデコード処理を行うデコーダ１４、または、パーソナルコンピュータ２０１のデコード処理部２６１において、インデックスデータを直接取り扱うことが可能なようになされている場合、インデックスデータ生成部３３は、生成されたインデックスデータを直接出力するものとしても良い。
【０１１２】
次に、図１７のフローチャートを参照して、デコーダ１４、または、パーソナルコンピュータのデコード処理部において実行される、デコード処理について説明する。
【０１１３】
ステップＳ４１において、ビットストリーム取得部５１は、デコードするビットストリームを取得し、インデックスデータ取得部５２は、インデックスデータを取得する。インデックスデータ取得部５２は、インデックスデータが記載されたインデックスファイル全体を取得しても良いし、インデックスファイルに記載されたインデックスデータを取得しても良いし、インデックスデータのみの供給を受けるものであってもよい。
【０１１４】
ステップＳ４２において、操作入力取得部５３は、ユーザから、ビットストリームの再生開始点の指令を受けて、復号順決定部５４に供給する。復号順決定部５４は、ビットストリーム取得部５１から供給されるビットストリームにおいて復号されるフレームの順番を決定し、決定された復号順をＱマトリクス更新部５５および復号処理部５７に供給するとともに、決定された復号順に基づいて、ビットストリーム取得部５１から供給されるビットストリームのうち、復号されるフレームのデータを、復号処理部５７に供給する。
【０１１５】
ステップＳ４３において、復号処理部５７は、再生開始点のピクチャを取得する。
【０１１６】
ステップＳ４４において、復号処理部５７は、復号順決定部５４により決定された復号順に基づいて、再生開始点のピクチャは、Iピクチャであるか否かを判断する。ステップＳ４４において、再生開始点のピクチャは、Iピクチャであると判断された場合、処理は、後述するステップＳ５３に進む。
【０１１７】
ステップＳ４４において、再生開始点のピクチャは、Iピクチャではないと判断された場合、ステップＳ４５において、復号処理部５７は、参照画像データに必要なIピクチャをデコードする。このとき、復号処理部５７は、Ｉピクチャのシーケンスヘッダまたはピクチャヘッダに記載されている量子化マトリクスを用いて復号処理を行うとともに、この量子化マトリクスを量子化マトリクスバッファ５６に供給して、量子化マトリクスを更新する。
【０１１８】
ステップＳ４６において、復号処理部５７は、復号順決定部５４により決定された復号順に基づいて、参照画像としてＰピクチャが必要であるか否かを判断する。ステップＳ４６において、Ｐピクチャが必要ではないと判断された場合、処理は、後述するステップＳ５０に進む。
【０１１９】
ステップＳ４６において、参照画像としてＰピクチャが必要であると判断された場合、ステップＳ４７において、Ｑマトリクス更新部５５は、インデックスデータを参照して、参照画像データに必要なＰピクチャの直前のIピクチャまたはＰピクチャとの間に存在するＢピクチャのピクチャヘッダに、量子化マトリクスが記載されているかを判断する。
【０１２０】
ステップＳ４７において、Ｂピクチャのピクチャヘッダに、量子化マトリクスが記載されていると判断された場合、ステップＳ４８において、Ｑマトリクス更新部５５は、ビットストリーム取得部５１から供給されたビットストリームのうちのＢピクチャのピクチャヘッダに記載されている拡張量子化マトリクスをＱマトリクスバッファ５６に供給して、Ｑマトリクスバッファ５６に保持される量子化マトリクスを更新する。
【０１２１】
ステップＳ４７において、Ｂピクチャのピクチャヘッダに、量子化マトリクスが記載されていないと判断された場合、または、ステップＳ４８の処理の終了後、ステップＳ４９において、復号処理部５７は、参照画像データに必要なＰピクチャをデコードする。このとき、復号処理部５７は、Ｐピクチャのピクチャヘッダに量子化マトリクスが記載されていれば、その量子化マトリクスを用いて復号処理を行うとともに、この量子化マトリクスを量子化マトリクスバッファ５６に供給して、量子化マトリクスを更新する。
【０１２２】
ステップＳ４６において、Ｐピクチャが必要ではないと判断された場合、または、ステップＳ４９の処理の終了後、ステップＳ５０において、復号処理部５７は、再生開始点のピクチャをデコードするために必要な参照画像データは揃ったか否かを判断する。ステップＳ５０において、参照画像データが揃っていないと判断された場合、処理は、ステップＳ４７に戻り、それ以降の処理が繰り返される。
【０１２３】
ステップＳ５０において、参照画像データは揃ったと判断された場合、ステップＳ５１において、Ｑマトリクス更新部５５は、インデックスデータを参照して、再生開始点のピクチャの直前のIピクチャまたはＰピクチャとの間に存在するＢピクチャのピクチャヘッダに、量子化マトリクスが記載されているか否かを判断する。
【０１２４】
ステップＳ５１において、Ｂピクチャのピクチャヘッダに、量子化マトリクスが記載されていると判断された場合、ステップＳ５２において、Ｑマトリクス更新部５５は、ビットストリーム取得部５１から供給されたビットストリームのうちのＢピクチャのピクチャヘッダに記載されている拡張量子化マトリクスをＱマトリクスバッファ５６に供給して、Ｑマトリクスバッファ５６に保持される量子化マトリクスを更新する。
【０１２５】
ステップＳ４４において、再生開始点のピクチャは、Iピクチャであると判断された場合、ステップＳ５１において、Ｂピクチャのピクチャヘッダに、量子化マトリクスが記載されていないと判断された場合、または、ステップＳ５２の処理の終了後、ステップＳ５３において、復号処理部５７は、再生開始点のピクチャをデコードする。このとき、復号処理部５７は、再生開始点のピクチャのシーケンスヘッダまたはピクチャヘッダに量子化マトリクスが記載されていれば、その量子化マトリクスを用いて復号処理を行うとともに、この量子化マトリクスを量子化マトリクスバッファ５６に供給して、量子化マトリクスを更新する。
【０１２６】
そして、ステップＳ５４において、復号処理部５７は、それ以降のピクチャをデコードし、処理が終了される。
【０１２７】
このような処理により、ランダムデコードが実行され、デコードされないフレームのピクチャヘッダに、拡張量子化マトリクスが記載されていても、拡張量子化マトリクスが記載されているＢピクチャを示す情報であるインデックスデータに基づいて量子化マトリクスを更新することができるので、それぞれのフレームの符号化に用いられた正しい量子化マトリクスを用いて、デコード処理を行うことが可能となる。
【０１２８】
このように、本発明を適用することにより、ランダムデコードが実行され、デコードされないフレームのピクチャヘッダに、拡張量子化マトリクスが記載されていても、それぞれのフレームの符号化に用いられた正しい量子化マトリクスを用いて、デコード処理を行うことが可能となる。
【０１２９】
すなわち、デコード処理の前処理として、デコードされる符号化ストリームのそれぞれにおいて、拡張量子化マトリクスが記載されているＢピクチャを示す情報であるインデックスデータが生成される。
【０１３０】
そして、拡張量子化マトリクスが記載されているＢピクチャを示す情報であるインデックスデータとして、図５を用いて説明した、量子化マトリクスフラグによって構成されるインデックスデータが用いられた場合、インデックスデータのデータ量を抑制することが可能となる。
【０１３１】
また、インデックスデータには、量子化マトリクスフラグなどの拡張量子化マトリクスが記載されているＢピクチャを示す情報以外の各種情報が含まれていてもよいことは言うまでもない。換言すれば、デコード処理の前処理として、デコード処理に必要な、または、デコード処理において利用すると好適な情報を生成するようになされている場合、その情報とともに、拡張量子化マトリクスが記載されているＢピクチャを示す情報を生成して、インデックスデータとしても良い。
【０１３２】
このようなインデックスデータを利用して、復号処理時に量子化マトリクスの更新を行うことにより、復号されるオリジナルのビットストリームに何らかの処理を施したり、オリジナルのビットストリームのデータ量を増やすことなく、ランダムデコードを行う場合の誤動作を防止し、画質の劣化を抑制することができる。
【０１３３】
また、インデックスデータを参照して量子化マトリクスを更新する処理は、デコード処理と比較して高速に実行可能であるため、デコード処理全体に対しても大きな影響はない。
【０１３４】
また、インデックスデータまたはインデックスデータを記載したインデックスファイルは、オリジナルのビットストリームと別ファイルで管理されるので、例えば、インデックスデータまたはインデックスデータを記載したインデックスファイルと、オリジナルのビットストリームとを、個別に、装置間で授受することが可能となる。また、インデックスデータまたはインデックスデータを記載したインデックスファイルは、オリジナルのビットストリームと別ファイルで管理されるので、オリジナルのビットストリームのデータサイズは変更されず、ビットストリームのレート制御に影響を及ぼさない。
【０１３５】
なお、上述した処理は、ランダムデコードが実行されるとき以外にも、例えば、倍速再生など、再生途中のＧＯＰのフレームのいずれかがデコードされないような場合において、適用可能であることは言うまでもない。
【０１３６】
なお、ここでは、コーディックの方式としてＭＰＥＧを用いた場合を例として説明しているが、量子化マトリクスおよびフレーム相関を用いたコーディック処理を行う場合においても、本発明は適用可能であることはいうまでもない。例えば、ＡＶＣ（Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）／Ｈ．２６４などにおいて、本発明は適用可能である。
【０１３７】
なお、ＡＶＣ/Ｈ.２６４のＢピクチャは、必ずしも、前方向および後ろ方向の双方向の参照画像を用いるとは限らず、過去から２枚の参照画像を用いて予測しても、未来から２枚の参照画像を用いて予測してもよいが、このような場合を考慮して、本発明を適用することは可能であり、本発明を適用することにより、誤った量子化マトリクスを用いてデコード処理を行ってしまう区間を減少することかでき、画像の劣化を抑制することが可能となる。
【０１３８】
上述した一連の処理は、上述したように、ハードウェアによってもソフトウェアによっても実行することもできる。そのソフトウェアは、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【０１３９】
この記録媒体は、図１２に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク（フレキシブルディスクを含む）、光ディスク（ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）を含む）、光磁気ディスク（ＭＤ（Ｍｉｎｉ−Ｄｉｓｋ）（商標）を含む）、もしくは半導体メモリなどよりなるリムーバブルメディア２０６などにより構成される。
【０１４０】
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１４１】
なお、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【０１４２】
ネットワークとは、少なくとも２つの装置が接続され、ある装置から、他の装置に対して、情報の伝達をできるようにした仕組みをいう。ネットワークを介して通信する装置は、独立した装置どうしであっても良いし、１つの装置を構成している内部ブロックどうしであっても良い。
【０１４３】
また、通信とは、無線通信および有線通信は勿論、無線通信と有線通信とが混在した通信、即ち、ある区間では無線通信が行われ、他の区間では有線通信が行われるようなものであっても良い。さらに、ある装置から他の装置への通信が有線通信で行われ、他の装置からある装置への通信が無線通信で行われるようなものであっても良い。
【０１４４】
復号装置は、独立した装置であっても良いし、情報処理装置、ストリーム変換装置、トランスコーダ、または、編集装置などの、復号処理を行うブロックであっても良い。
【０１４５】
また、情報処理装置は、独立した装置であっても良いし、復号装置、ストリーム変換装置、トランスコーダ、または、編集装置などの、情報処理を行うブロックであっても良い。
【０１４６】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【０１４７】
【図１】量子化マトリクスについて説明するための図である。
【図２】量子化マトリクスについて説明するための図である。
【図３】デコード処理システムの構成を示すブロック図である。
【図４】図３のビットストリーム解析装置の機能ブロック図である。
【図５】インデックスデータについて説明するための図である。
【図６】図３のデコーダの機能ブロック図である。
【図７】従来のランダムデコードついて説明するための図である。
【図８】従来のランダムデコードついて説明するための図である。
【図９】インデックスデータを用いた場合のランダムデコードついて説明するための図である。
【図１０】インデックスデータを用いた場合のランダムデコードついて説明するための図である。
【図１１】インデックスデータを用いた場合のランダムデコードついて説明するための図である。
【図１２】パーソナルコンピュータの構成を示すブロック図である。
【図１３】図１２のパーソナルコンピュータが有する機能を示す機能ブロック図の第１の例である。
【図１４】図１２のパーソナルコンピュータが有する機能を示す機能ブロック図の第２の例である。
【図１５】図１２のパーソナルコンピュータが有する機能を示す機能ブロック図の第３の例である。
【図１６】インデックスデータ生成処理について説明するためのフローチャートである。
【図１７】デコード処理について説明するためのフローチャートである。
【図１８】デコード処理について説明するためのフローチャートである。
【図１】
2008271546.tif 000003
【図２】
2008271546.tif 000004
【図３】
2008271546.tif 000005
【図４】
2008271546.tif 000006
【図５】
2008271546.tif 000007
【図６】
2008271546.tif 000008
【図７】
2008271546.tif 000009
【図８】
2008271546.tif 000010
【図９】
2008271546.tif 000011
【図１０】
2008271546.tif 000012
【図１１】
2008271546.tif 000013
【図１２】
2008271546.tif 000014
【図１３】
2008271546.tif 000015
【図１４】
2008271546.tif 000016
【図１５】
2008271546.tif 000017
【図１６】
2008271546.tif 000018
【図１７】
2008271546.tif 000019
【図１８】
2008271546.tif 000020