(57)【要約】【課題】  動き補償方式を用いる動画像データ復号装置において、メモリアクセス性能を向上させる。【解決手段】  復号装置１は、画像データを一時的に格納するキャッシュメモリ２と、符号化ビットストリームを解析して得られる動きベクトルに基づいて、復号対象マクロブロックに対応する参照マクロブロックの位置を決定する手段３と、参照マクロブロックのデータがメモリ２に格納されていない時に参照マクロブロックがキャッシュライン境界を含んでいるかを判定し、含んでいる場合にはその境界の位置を参照マクロブロックのデータを格納するメモリからのデータプリロード先頭アドレスとして指定する手段４とを備える。【選択図】図１
2006041898.tif 000002
【特許請求の範囲】
【請求項１】
動き補償方式を用いる動画像データ復号装置であって、
画像データを一時的に格納するキャッシュメモリと、
符号化ビットストリームを解析して得られる動きベクトルに基づいて、復号対象マクロブロックに対応する参照フレーム上の参照マクロブロックの位置を決定する参照マクロブロック位置決定手段と、
該参照マクロブロックのデータが前記キャッシュメモリに格納されていない時に、該参照マクロブロックがキャッシュライン境界を含んでいるかを判定し、含んでいる場合に該キャッシュライン境界の位置を該参照マクロブロックのデータを格納するメモリからのデータプリロード先頭アドレスとして指定するプリロードアドレス指定手段とを備えることを特徴とする動画像データ復号装置。
【請求項２】
動き補償方式を用いる動画像データ復号装置であって、
画像データを一時的に格納するキャッシュメモリと、
符号化ビットストリームを解析して得られる動きベクトルに基づいて、復号対象マクロブロックに対応する参照フレーム上の参照マクロブロックの位置を決定する参照マクロブロック位置決定手段と、
該参照マクロブロックのデータが前記キャッシュメモリに格納されていない時に、前回の参照マクロブロックの位置と今回の参照マクロブロックの位置とを比較していずれが画面上で上にあるかを判定し、今回の参照マクロブロックの位置が上にある時には、該参照マクロブロックの上端行を優先して上端行から順次下端行の方向に参照マクロブロックのデータを格納するメモリからの行のデータプリロードの順位を決定し、今回の参照マクロブロックの位置が下にある時には、下端行を優先して下端行から順次上端行の方向に行のデータプリロードの順位を決定するプリロード行優先順位決定手段とを備えることを特徴とする動画像データ復号装置。
【請求項３】
前記動画像データ復号装置において、
前記参照マクロブロックがキャッシュライン境界を含んでいるかを判定し、含んでいる場合に該キャッシュライン境界の位置を、前記プリロード行優先順位決定手段によって決定された結果に従って実行されるデータプリロード行内のプリロード先頭アドレスとして指定するプリロードアドレス指定手段をさらに備えることを特徴とする請求項２記載の動画像データ復号装置。
【請求項４】
動画像データ復号を行う計算機によって使用されるプログラムであって、
符号化ビットストリームを解析して得られる動きベクトルに基づいて、復号対象マクロブロックに対応する参照フレーム上の参照マクロブロックの位置を決定する手順と、
該参照マクロブロックのデータがキャッシュメモリに格納されていない時に、該参照マクロブロックがキャッシュラインの境界を含んでいるかを判定し、含んでいる場合に該キャッシュライン境界の位置を参照マクロブロックのデータを格納するメモリからのデータプリロード先頭アドレスとして指定する手順とを計算機に実行させるための動画像データ復号プログラム。
【請求項５】
動画像データ復号を行う計算機によって使用されるプログラムであって、
符号化ビットストリームを解析して得られる動きベクトルに基づいて、復号対象マクロブロックに対応する参照フレーム上の参照マクロブロックの位置を決定する手順と、
該参照マクロブロックのデータがキャッシュメモリに格納されていない時に、前回の参照マクロブロックの位置より今回の参照マクロブロックの位置が画面上で上にあるかを判定し、上にある時にはその参照マクロブロックの上端行を優先して上端行から順次下端行の方向に参照マクロブロックのデータを格納するメモリからの行のデータプリロードの順位を決定し、下にある時には下端行を優先して下端行から順次上端行の方向に行のデータプリロードの順位を決定するプリロード行優先順位決定手順とを計算機に実行させるための動画像データ復号プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は動画像の圧縮方式に係り、さらに詳しくはフレーム間予測方式を用いて符号化されたビットストリームを、キャッシュメモリを備えるプロセッサシステム上で高速に復号処理する動画像データ復号装置、および復号プログラムに関する。
【背景技術】
【０００２】
近年、動画像データがデジタルデータとして表現され、デジタルメディアへの蓄積やネットワーク通信による映像配信、衛星を通じたデジタルテレビ放送などに利用されている。一般に動画像データはその量が膨大であり、圧縮符号化技術を用いてデータ量の圧縮が行われ、その再生時には復号されて動画像が表示される。国際標準の動画像圧縮規格としてのＭＰＥＧ（ムービング・ピクチャー・エキスパート・グループ）方式では動画像データはビットストリーム形式に符号化される。
【０００３】
図１２はフレーム間予測方式の概要の説明図である。フレーム画像は縦１６画素、横１６画素の矩形領域サイズのマクロブロックという単位に分割され、フレーム間予測がマクロブロック単位に行われる。フレーム間予測方式では符号化時に入力マクロブロックの各画素の画素値から参照画像マクロブロックの各画素値が減算された差分値が符号化される。
【０００４】
ここで参照画像マクロブロックとは、入力画像ブロックから動きベクトル情報によって指示される領域の画像データをマクロブロックサイズで取り出したものであり、この動きベクトル情報は差分値とともに復号器に与えられる。復号器では差分値と参照画像マクロブロックの画素値とを合成することによって復号画像マクロブロックを得ることが可能になる。
【０００５】
図１３はこの復号処理、すなわち動き補償処理の説明図であり、図１４は動き補償処理の従来例のフローチャートである。図１４のフローチャートを中心に説明すると、まずステップＳ１で符号化ビットストリーム、すなわち符号化されて送られてきたビットストリームの解析が行われ、ステップＳ２で動きベクトルが取得され、ステップＳ３でその動きベクトルに対応して参照フレーム上の参照マクロブロックの位置が決定され、ステップＳ４で参照マクロブロックのプリロードが行われる。このプリロードはプロセッサ内のキャッシュメモリに参照マクロブロックの画像データが格納されていない時に、そのデータを外部のメモリからロードするためのものである。一般に動画像データはその量が膨大であり、参照マクロブロック内のすべての画素に対応する画素データがキャッシュメモリに格納されている確率は少なく、キャッシュミスによる性能低下を防ぐためにここでプリロードの命令が発行される。
【０００６】
続いてステップＳ５でマクロブロック間の差分値、すなわち図１２で説明した入力画像ブロックと参照画像マクロブロックとの差分値がビットストリームから取得され、ステップＳ６で差分値の画素データと参照マクロブロックの画素データが合成されて復号マクロブロックが生成され、ステップＳ７でフレーム内のすべてのマクロブロックに対する復号が終了したか否かが判定され、また終了していない場合にはステップＳ２以降の処理が次の復号位置のマクロブロックに対して繰り返され、すべてのマクロブロックに対する復号が終了したと判定されるとステップＳ８で復号フレーム画像が出力されて処理を終了する。
【０００７】
このように動画像の復号処理には、そのデータ量が膨大なために大きな演算量が要求されるが、近年プロセッサが組み込まれた各種の機器においても動画像の再生能力が求められている。動画像の再生のためにはキャッシュメモリを備え、そのキャッシュメモリに参照フレームの画像データを復号に先立ってできるだけ格納しておくことが望ましいが、一般に参照フレーム画像のサイズはキャッシュメモリのサイズより膨大であり、また機器の低価格化や低消費電力化を考慮するとキャッシュメモリのサイズを大きくすることには各種の制限が存在する。
【０００８】
このようにキャッシュメモリのサイズに制限があるため、キャッシュミスの発生する確率が大きくなり、キャッシュミスの発生時に外部メモリや主記憶上のデータをロードする時間が長くなり、メモリアクセス性能が低下するという問題点があった。特に動き補償方式を用いる動画像データ復号装置においては、参照フレーム画像に頻繁にアクセスするため、キャッシュミス発生によるメモリアクセス性能の低下によって、復号処理の高速化が妨げられてしまうという問題点があった。
【０００９】
そこでキャッシュミス発生によるアクセス性能低下を防止するために、前述のように参照マクロブロックの位置が決定された時点で、参照マクロブロックのデータをキャッシュメモリに格納するためのプリロード処理が行われる。プロセッサはプリロード命令を発行した後には、別の処理を実行することができ、データアクセス時間を隠蔽することができる。
【００１０】
しかしながらこのようなプリロードを行う場合にも、参照マクロブロックの位置によっては必要な領域のプリロードが行われなかったり、すでにロード済みの領域を未だプリロードされていない領域よりも先にプリロードしてしまい、結果的にメモリアクセス性能が低下するという問題点があった。
【００１１】
図１５、および図１６はこのようなプリロード方式の従来例における問題点の説明図である。図１５においては、参照マクロブロックの行内にキャッシュライン境界があり、参照マクロブロックがキャッシュラインをまたがっている時に、キャッシュライン境界を超えた領域がプリロードされず、キャッシュミスが発生してしまう場合を示す。すなわち同図において、プリロード指定アドレスが参照マクロブロック（参照矩形領域）の行の先頭のアドレスに設定されるために、キャッシュライン境界を越える前の領域としてのＡ領域はプリロードされるが、キャッシュライン境界を超えたＢ領域はプリロードされず、プリロード後にキャッシュミスが発生し、メモリアクセス性能が低下してしまうことになる。
【００１２】
図１６はすでにプリロード済みの領域を、未だプリロードされていない領域より先にプリロードしてしまう場合の例である。同図において点線で囲まれたマクロブロックは、直前のマクロブロックの復号時に参照された参照マクロブロックを示し、この直前のマクロブロックに含まれる行については、キャッシュライン境界までの部分がすでにプリロードされている。従って同図においてＡ領域は直前の参照マクロブロックと重複する領域であり、Ｂ領域は重複する領域ではないが、すでに直前のマクロブロックのプリロード時にプリロード済みの領域である。
【００１３】
これに対してＣ領域は、今回の参照マクロブロックのプリロード時にプリロードしなければならない領域を示す。参照マクロブロックのプリロードは従来では上の行から順番にプリロードが行われていたために、図１６では（１）の行からプリロードが行われる。このため実際にプリロードが必要な（３）、および（４）の行のプリロードは後になり、プリロードと並行して実行される別処理の時間が短い場合には、（３）、（４）の行がプリロードされない状態でプリロード処理が終わってしまい、結果的にキャッシュミスが発生し、メモリアクセス性能が低下することがある。
【００１４】
このような動き補償方式を用いた画像データの復号や、それに関連するキャッシュメモリの制御について次のような従来技術がある。
【特許文献１】特開平４−１７０６５４号公報  「キャッシュメモリ制御方式」
【特許文献２】特開平６−１８０６６９号公報  「キャッシュシステム」
【特許文献３】特開平１１−２１５５０９号公報  「動き補償処理方法及びシステム並びにその処理プログラムを記録した記録媒体」
【００１５】
特許文献１には、１つの画像データにおいて１ライン分のデータ長が一定で、かつ各画像データ毎に１ラインのデータ長が不定の場合に、１ラインのデータ長をキャッシュメモリの１エントリのデータ長として指定することにより、キャッシュのヒット率をあげることができるキャッシュメモリ制御方式が開示されている。
【００１６】
特許文献２には、キャッシュミスの時に、メインメモリの上では不連続であるが、表示画面上ではキャッシュミスとなったデータの周辺に位置するデータをキャッシュメモリに記憶させることによってヒット率を向上させる技術が開示されている。
【００１７】
特許文献３には、動きベクトルが指す参照領域の右側に隣接する領域のアドレスに対応して、その領域のデータをキャッシュにプリロードすることによって、次のマクロブロックの伸長時におけるキャッシュヒットの確率を高くし、動き補償処理を高速化できる技術が開示されている。
【００１８】
しかしながらこのような従来技術においても、図１５で説明したキャッシュライン境界を越えた領域がプリロードされないという問題点や、図１６で説明したすでにプリロード済みの領域がまだプリロードされていない領域よりも先にプリロードされるという問題点を解決することができなかった。
【発明の開示】
【発明が解決しようとする課題】
【００１９】
本発明の第１の課題は、参照マクロブロック内の行がキャッシュライン境界を含んでいる場合にも参照マクロブロックのプリロード後のキャッシュミスを低減することであり、第２の課題は参照マクロブロック内ですでにプリロード済みの領域よりも未だプリロードされていない領域を先にプリロードすることであり、これらの課題を解決することによって動画像データ復号時におけるメモリアクセス性能を向上させることである。
【課題を解決するための手段】
【００２０】
図１は、本発明の動画像データ復号装置の原理構成ブロック図である。同図において復号装置１は動き補償方式を用いるものであり、キャッシュメモリ２、参照マクロブロック位置決定手段３、およびプリロードアドレス指定手段４を備える。
【００２１】
キャッシュメモリ２は画像データを一時的に格納するものであり、参照マクロブロック位置決定手段３は、符号化ビットストリームを解析して得られる動きベクトルに基づいて、復号対象マクロブロックに対応する参照フレーム上の参照マクロブロックの位置を決定するものであり、プリロードアドレス指定手段４は参照マクロブロックのデータがキャッシュメモリ２に格納されていない時に、その参照マクロブロックがキャッシュライン境界を含んでいるか判定し、含んでいる場合にそのキャッシュライン境界の位置を参照マクロブロックのデータを格納するメモリからのデータプリロード先頭アドレスとして指定するものである。
【００２２】
本発明の動画像データ復号装置は、前述のキャッシュメモリ、参照マクロブロック位置決定手段、およびプリロード行優先順位決定手段を備える。
プリロード行優先順位決定手段は、参照マクロブロックのデータがキャッシュメモリに格納されていない時に、前回の参照マクロブロックの位置と今回の参照マクロブロックの位置とを比較していずれが画面上で上にあるかを判定し、今回の参照マクロブロックの位置が上にある時、その参照マクロブロックの上端行を優先して上端行から順次下端行の方向に参照マクロブロックのデータを格納するメモリからの行のデータプリロードの順位を決定し、今回の参照マクロブロックの位置が下にある時、下端行を優先して下端行から順次上端行の方向に行のデータプリロードの順位を決定するものである。
【００２３】
次に本発明の動画像データ復号を行う計算機によって使用されるプログラムは、符号化ビットストリームを解析して得られる動きベクトルに基づいて、復号対象マクロブロックに対応する参照フレーム上の参照マクロブロックの位置を決定する手順と、参照マクロブロックのデータがキャッシュメモリに格納されていない時に、その参照マクロブロックがキャッシュライン境界を含んでいるかを判定し、含んでいる場合にそのキャッシュライン境界の位置を参照マクロブロックのデータを格納するメモリからのデータプリロード先頭アドレスとして指定する手順とを計算機に実行させるものである。
【００２４】
また次に本発明において動き補償方式を用いて動画像データを復号する計算機によって使用されるプログラムは、前述の参照マクロブロックの位置を決定する手順と、参照マクロブロックのデータがキャッシュメモリに格納されていない時に、前回の参照マクロブロックの位置より今回の参照マクロブロックの位置が画面上で上にあるかを判定し、上にある時にはその参照マクロブロックの上端行を優先して上端行から順次下端行の方向に参照マクロブロックのデータを格納するメモリからの行のデータプリロードの順位を決定し、下にある時には下端行を優先して下端行から順次上端行の方向に行のデータプリロードの順位を決定するプリロード行優先順位決定手順とを計算機に実行させるものである。
【００２５】
発明の実施の形態においては、動き補償方式を用いて動画像データの復号を行う計算機によって使用されるプログラムは、前述の参照マクロブロック位置決定手順と、プリロード先頭アドレス指定手順と、プリロード行優先順位決定手順とを計算機に実行させるプログラムであることもできる。
【００２６】
また実施の形態においては、以上のようなプログラムを格納した計算機読出し可能可搬型記憶媒体を用いることも、また以上のようなプログラムにおける手順を次々と実行する動画像データ復号方法を用いることもできる。
【発明の効果】
【００２７】
本発明によれば、動画像データ復号処理におけるキャッシュミス発生率を低減させることができ、メモリアクセス性能が向上し、各種の動画像再生機器の性能向上に寄与するところが大きい。
【発明を実施するための最良の形態】
【００２８】
図２は本発明の動画像データ復号装置の基本構成ブロック図である。同図において復号装置はプロセッサ１０、大容量メモリ１１、および動画像表示器１２によって基本的に構成されている。プロセッサ１０はプロセッサコア１４とキャッシュメモリ１５とを備えており、また大容量メモリ１１はビットストリーム格納メモリ１７、参照画像格納メモリ１８、および復号済み画像格納メモリ１９を備えている。
【００２９】
図３は本実施形態における復号時のマクロブロック走査方式の説明図である。本実施形態では、復号フレーム画像の内部で復号マクロブロックを一般的な走査方向に従って走査するものとする。すなわち最も上の行から始め、（１）、（２）、および（３）のように左端から右方向に１つずつマクロブロックの走査を行い、マクロブロック単位の画像データの復号を行う。その後２行目についても同様に左端のマクロブロックから、右方向に走査が行われるものとする。
【００３０】
図４、および図５は本実施形態における動き補償方式を用いる動画像データ復号方式の処理フローチャートである。同図を図１４で説明した従来例のフローチャートと比較すると、ステップＳ３で参照マクロブロックの位置が決定された後に、ステップＳ９で参照マクロブロックが図１５で説明したようにキャッシュライン境界をまたがっているかが判定され、またがっている場合にはステップＳ１０でその参照マクロブロックの各行に対するデータのプリロード指定アドレスが変更され、さらにその後ステップＳ１１で前回参照したマクロブロック、すなわち図３で説明したマクロブロックの走査方式において、現在復号対象となっているマクロブロックの１つ左側のマクロブロックの復号時における参照マクロブロックの位置と、今回参照すべきマクロブロックとの位置関係に基づいて参照マクロブロック内の行のプリロードの優先順位が決定され、その後図１４におけると同様にステップＳ４以降の処理が実行される点が異なっている。なおステップＳ３で参照マクロブロックの位置が決定された時点で、従来例と同様にその先頭がプリロード指定アドレスとして一旦決定され、キャッシュライン境界をまたがっていない場合にはその変更は行われないものとする。
【００３１】
図６は、図４のステップＳ９における参照マクロブロックがキャッシュライン境界をまたがっているかの判定と、ステップＳ１０におけるプリロード指定アドレスを変更する処理の詳細フローチャートである。同図を図７の参照マクロブロックがキャッシュライン境界をまたがっている場合のアドレスの説明図を用いて説明する。まず図７において参照マクロブロック内の上端行の開始アドレスはＡ番地であり、その行の後尾アドレスはＢ番地であるとする。キャッシュライン境界はＣ番地にあり、このＣ番地がＡ番地とＢ番地との間にあることから、参照マクロブロックがキャッシュライン境界をまたがっている、すなわち参照マクロブロックの行がキャッシュライン境界を含んでいるものと判定される。
【００３２】
図６のステップＳ２１で参照キャッシュライン境界マクロブロックの行の先頭アドレスが算出され、そのアドレスがＡ番地とされ、ステップＳ２２で参照マクロブロックの行の後尾アドレスが算出され、そのアドレスがＢ番地とされる。そしてステップＳ２３でＡ番地とＢ番地の間にキャッシュライン境界が存在するか否かが判定され、存在する時にはその番地がＣ番地として求められ、ステップＳ２４でキャッシュライン境界をまたがっていると判定され、ステップＳ２５でプリロード指定アドレス、すなわちプリロード時における先頭アドレスが従来例におけるＡ番地から変更されてＣ番地とされる。ステップＳ２３でＡ番地とＢ番地の間にキャッシュライン境界が存在しない時には、ステップＳ２６でキャッシュライン境界をまたがっていないと判定され、ステップＳ２７でプリロード指定アドレスが行の先頭アドレス、すなわちＡ番地とされる。なお図４のステップＳ１０は図６ではステップＳ２５のみに相当し、図６のその他のステップが図５のステップＳ１１に続く部分を含めて図４のステップＳ９に相当する。
【００３３】
図７で説明したようにキャッシュライン境界をまたがっている場合には、プリロード先頭アドレスをＣ番地とすることによってその行のその前の領域、すなわち図７のＡ領域が今回のマクロブロックに対する復号処理ではプリロードされないことになる。従ってこのＡ領域に対応してキャッシュミスが発生する確率が存在するが、図３で説明したようなマクロブロックの走査方法をとること、すなわち行の左端のマクロブロックから復号を行うことによって、動きベクトルを考慮しても参照フレーム画像のマクロブロックの中で右端に近いマクロブロックよりも左端に近いマクロブロックの方がプリロード済みである確率が高く、従って図７においてもＡ領域は参照マクロブロックの左側にあることからこのＡ領域のデータはすでにキャッシュメモリにプリロード済みとなっている確率が高い。本実施形態ではこのような動画像データ処理の特性に対応してデータのプリロード命令を発行することによって、キャッシュミスの発生が低減されることが期待される。
【００３４】
図８は図５のステップＳ１１における処理、すなわち行のプリロード優先順位決定処理の詳細フローチャートである。同図を図９、および図１０のマクロブロック内の行のプリロード優先順位決定例の説明図を用いて説明する。
【００３５】
図９は参照マクロブロック内で下端行を優先して行のプリロード順位を決定する例の説明図である。同図において点線のマクロブロックは、前回、すなわち直前の参照マクロブロックの領域を示し、この領域のデータはすでにキャッシュメモリにプリロード済みである。今回の参照マクロブロックの上端の位置、すなわちｒｅｆＢの位置は前回の参照マクロブロックの上端の位置ｒｅｆＡの位置より下にあるものとする。
【００３６】
前回のデータプリロードの処理において前回の参照マクロブロックの下の２行分のデータはキャッシュライン境界までプリロードされており、今回の参照マクロブロックのうちで上の２行分のデータのプリロードは不必要である。この２行のうちＡ領域は参照マクロブロックの重複領域であり、Ｂ領域は重複はしていないが、すでに今回の参照マクロブロックの右端を越えてキャッシュライン境界までデータのプリロードが行われている領域である。
【００３７】
従って今回の参照マクロブロックのデータのプリロードに当っては、未だプリロードされていない行、すなわち下側の行のプリロードを行う必要があり、下端行を優先して下端行から順次上の方に各行のデータのプリロードを実行することによって、プリロード処理のためにとることができる時間が短くても必要なデータのプリロードを終了できる可能性が大きくなる。
【００３８】
図１０においては、直前の参照マクロブロックよりも今回の参照マクロブロックが上にある場合を示し、このような場合には図９における説明と反対に今回の参照マクロブロックの上端行から順次下の行のデータをプリロードすることによって、すでにプリロード済みの領域よりも未だプリロードされていない領域のデータのプリロードを確実に実行することが可能となる。
【００３９】
図８においてまずステップＳ３１で現在復号対象となっているマクロブロックがピクチャ先頭、すなわちフレームの先頭、図３では（１）の位置のマクロブロックであるか否かが判定される。先頭のマクロブロックである場合には、前回の参照マクロブロックの位置を問題とする必要はなく、ステップＳ３８でプリロードにおける行の優先順位を特に判定する必要もなく、上端行から下端行の方向、または下端行から上端行の方向のどちらであってもプリロード順が許可される。
【００４０】
ピクチャ先頭のマクロブロックでない場合には、ステップＳ３２で装置内に保持されている前回の参照マクロブロックの位置、すなわちｒｅｆＡの位置が読み出され、ステップＳ３３で動きベクトルに基づいて、今回の参照マクロブロックの位置ｒｅｆＢの位置が算出され、ステップＳ３４で次のマクロブロックの復号時の処理に必要となるため、ｒｅｆＢの位置が保持され、ステップＳ３５でｒｅｆＡの位置よりｒｅｆＢの位置が上か否かが判定され、上の場合には図１０に相当することになり、ステップＳ３６で上端行が優先され、順次下端行の方向に行の優先順位が決定され、逆にｒｅｆＢの位置が下である時にはステップＳ３７で図９の例に相当して下端行が優先され、順次上端行の方向に行の優先順位が決定される。
【００４１】
以上のように本実施形態では、今回の参照マクロブロックの位置と前回の参照マクロブロックの位置との位置関係に対応して、すでにプリロードが行われていると考えられている領域よりも未だプリロードされていないと考えられている領域に対応するデータのプリロードを優先して実行することができ、プリロード処理に十分な時間が取れない場合にも必要な領域をプリロードし損ねるような状況を回避することができ、キャッシュミスの発生を低減させ、メモリアクセス性能をさらに向上させることができる。
【００４２】
以上において本発明の動画像データ復号装置についてその詳細を説明したが、この復号装置は当然一般的なコンピュータシステムを基本として構成することが可能である。図１１はそのようなコンピュータシステム、すなわちハードウェア環境の構成ブロック図である。
【００４３】
図１１においてコンピュータシステムは中央処理装置（ＣＰＵ）２０、リードオンリメモリ（ＲＯＭ）２１、ランダムアクセスメモリ（ＲＡＭ）２２、通信インタフェース２３、記憶装置２４、入出力装置２５、可搬型記憶媒体の読取り装置２６、およびこれらの全てが接続されたバス２７によって構成されている。
【００４４】
記憶装置２４としてはハードディスク、磁気ディスクなど様々な形式の記憶装置を使用することができ、このような記憶装置２４、またはＲＯＭ２１に図４〜図６、図８などのフローチャートに示されたプログラムや、本発明の特許請求の範囲の請求項４、５のプログラムなどが格納され、そのようなプログラムがＣＰＵ２０によって実行されることにより、本実施形態におけるキャッシュライン境界を越えた領域のデータプリロード、およびプリロード済みデータの先行プリロードの防止などが可能となる。
【００４５】
このようなプログラムは、プログラム提供者２８からネットワーク２９、および通信インタフェース２３を介して、例えば記憶装置２４に格納されることも、また市販され、流通している可搬型記憶媒体３０に格納され、読取り装置２６にセットされて、ＣＰＵ２０によって実行されることも可能である。可搬型記憶媒体３０としてはＣＤ−ＲＯＭ、フレキシブルディスク、光ディスク、光磁気ディスク、ＤＶＤなど様々な形式の記憶媒体を使用することができ、このような記憶媒体に格納されたプログラムが読取り装置２６によって読取られることにより、本実施形態における動画像データ復号時のメモリアクセス性能向上が可能となる。
【００４６】
（付記１）  動き補償方式を用いる動画像データ復号装置であって、
画像データを一時的に格納するキャッシュメモリと、
符号化ビットストリームを解析して得られる動きベクトルに基づいて、復号対象マクロブロックに対応する参照フレーム上の参照マクロブロックの位置を決定する参照マクロブロック位置決定手段と、
該参照マクロブロックのデータが前記キャッシュメモリに格納されていない時に、該参照マクロブロックがキャッシュライン境界を含んでいるかを判定し、含んでいる場合に該キャッシュライン境界の位置を該参照マクロブロックのデータを格納するメモリからのデータプリロード先頭アドレスとして指定するプリロードアドレス指定手段とを備えることを特徴とする動画像データ復号装置。
【００４７】
（付記２）  動き補償方式を用いる動画像データ復号装置であって、
画像データを一時的に格納するキャッシュメモリと、
符号化ビットストリームを解析して得られる動きベクトルに基づいて、復号対象マクロブロックに対応する参照フレーム上の参照マクロブロックの位置を決定する参照マクロブロック位置決定手段と、
該参照マクロブロックのデータが前記キャッシュメモリに格納されていない時に、前回の参照マクロブロックの位置と今回の参照マクロブロックの位置とを比較していずれが画面上で上にあるかを判定し、今回の参照マクロブロックの位置が上にある時には、該参照マクロブロックの上端行を優先して上端行から順次下端行の方向に参照マクロブロックのデータを格納するメモリからの行のデータプリロードの順位を決定し、今回の参照マクロブロックの位置が下にある時には、下端行を優先して下端行から順次上端行の方向に行のデータプリロードの順位を決定するプリロード行優先順位決定手段とを備えることを特徴とする動画像データ復号装置。
【００４８】
（付記３）  前記動画像データ復号装置において、
前記参照マクロブロックがキャッシュライン境界を含んでいるかを判定し、含んでいる場合に該キャッシュライン境界の位置を、前記プリロード行優先順位決定手段によって決定された結果に従って実行されるデータプリロード行内のプリロード先頭アドレスとして指定するプリロードアドレス指定手段をさらに備えることを特徴とする付記２記載の動画像データ復号装置。
【００４９】
（付記４）  動画像データ復号を行う計算機によって使用されるプログラムであって、
符号化ビットストリームを解析して得られる動きベクトルに基づいて、復号対象マクロブロックに対応する参照フレーム上の参照マクロブロックの位置を決定する手順と、
該参照マクロブロックのデータがキャッシュメモリに格納されていない時に、該参照マクロブロックがキャッシュラインの境界を含んでいるかを判定し、含んでいる場合に該キャッシュライン境界の位置を参照マクロブロックのデータを格納するメモリからのデータプリロード先頭アドレスとして指定する手順とを計算機に実行させるための動画像データ復号プログラム。
【００５０】
（付記５）  動画像データ復号を行う計算機によって使用されるプログラムであって、
符号化ビットストリームを解析して得られる動きベクトルに基づいて、復号対象マクロブロックに対応する参照フレーム上の参照マクロブロックの位置を決定する手順と、
該参照マクロブロックのデータがキャッシュメモリに格納されていない時に、前回の参照マクロブロックの位置より今回の参照マクロブロックの位置が画面上で上にあるかを判定し、上にある時にはその参照マクロブロックの上端行を優先して上端行から順次下端行の方向に参照マクロブロックのデータを格納するメモリからの行のデータプリロードの順位を決定し、下にある時には下端行を優先して下端行から順次上端行の方向に行のデータプリロードの順位を決定するプリロード行優先順位決定手順とを計算機に実行させるための動画像データ復号プログラム。
【００５１】
（付記６）  前記動画像データ復号プログラムにおいて、
前記参照マクロブロックがキャッシュラインの境界を含んでいるかを判定し、含んでいる場合に該キャッシュライン境界の位置を前記プリロード行優先順位決定手順において決定された順位のプリロード行における参照マクロブロックのデータを格納するメモリからのプリロード先頭アドレスとして指定する手順をさらに計算機に実行させるための付記５記載の動画像データ復号プログラム。
【００５２】
（付記７）  動き補償方式を用いる動画像データ復号方法であって、
符号化ビットストリームを解析して得られる動きベクトルに基づいて、復号対象マクロブロックに対応する参照フレーム上の参照マクロブロックの位置を決定し、
該参照マクロブロックのデータがキャッシュメモリに格納されていない時に、該参照マクロブロックがキャッシュライン境界を含んでいるかを判定し、含んでいる場合に該キャッシュライン境界の位置を該参照マクロブロックのデータを格納するメモリからのデータプリロード先頭アドレスとして指定することを特徴とする動画像データ復号方法。
【００５３】
（付記８）  動き補償方式を用いる動画像データ復号方法であって、
符号化ビットストリームを解析して得られる動きベクトルに基づいて、復号対象マクロブロックに対応する参照フレーム上の参照マクロブロックの位置を決定し、
該参照マクロブロックのデータがキャッシュメモリに格納されていない時に、前回の参照マクロブロックの位置と今回の参照マクロブロックの位置とを比較していずれが画面上で上にあるかを判定し、今回の参照マクロブロックの位置が上にある時には、該参照マクロブロックの上端行を優先して上端行から順次下端行の方向に参照マクロブロックのデータを格納するメモリからの行のデータプリロードの順位を決定し、今回の参照マクロブロックの位置が下にある時には、下端行を優先して下端行から順次上端行の方向に行のデータプリロードの順位を決定することを特徴とする動画像データ復号方法。
【００５４】
（付記９）  前記動画像データ復号方法において、
前記参照マクロブロックがキャッシュライン境界を含んでいるかを判定し、含んでいる場合に該キャッシュライン境界の位置を、前記行のデータプリロード順位の決定結果に従って実行されるデータプリロード行内のプリロード先頭アドレスとして指定することを特徴とする付記８記載の動画像データ復号方法。
【００５５】
（付記１０）  動画像データ復号を行う計算機によって使用される記憶媒体であって、
符号化ビットストリームを解析して得られる動きベクトルに基づいて、復号対象マクロブロックに対応する参照フレーム上の参照マクロブロックの位置を決定するステップと、
該参照マクロブロックのデータがキャッシュメモリに格納されていない時に、該参照マクロブロックがキャッシュラインの境界を含んでいるかを判定し、含んでいる場合に該キャッシュライン境界の位置を参照マクロブロックのデータを格納するメモリからのデータプリロード先頭アドレスとして指定するステップとを計算機に実行させるための動画像データ復号プログラムを格納した計算機読出し可能可搬型記憶媒体。
【００５６】
（付記１１）  動画像データ復号を行う計算機によって使用される記憶媒体であって、
符号化ビットストリームを解析して得られる動きベクトルに基づいて、復号対象マクロブロックに対応する参照フレーム上の参照マクロブロックの位置を決定するステップと、
該参照マクロブロックのデータがキャッシュメモリに格納されていない時に、前回の参照マクロブロックの位置より今回の参照マクロブロックの位置が画面上で上にあるかを判定し、上にある時にはその参照マクロブロックの上端行を優先して上端行から順次下端行の方向に参照マクロブロックのデータを格納するメモリからの行のデータプリロードの順位を決定し、下にある時には下端行を優先して下端行から順次上端行の方向に行のデータプリロードの順位を決定するプリロード行優先順位決定ステップとを計算機に実行させるための動画像データ復号プログラムを格納した計算機読出し可能可搬型記憶媒体。
【００５７】
（付記１２）  前記参照マクロブロックがキャッシュラインの境界を含んでいるかを判定し、含んでいる場合に該キャッシュライン境界の位置を、前記プリロード行優先順位決定ステップにおいて決定された順位のプリロード行における参照マクロブロックのデータを格納するメモリからのデータプリロード先頭アドレスとして指定するステップをさらに計算機に実行させるための動画像データ復号プログラムを格納した付記１１記載の計算機読出し可能可搬型記憶媒体。
【図面の簡単な説明】
【００５８】
【図１】本発明の動画像データ復号装置の基本構成ブロック図である。
【図２】動画像データ復号装置のシステム構成を示すブロック図である。
【図３】本実施形態における復号時のマクロブロック走査方法の説明図である。
【図４】本実施形態における動画像データ復号処理の詳細フローチャートである。
【図５】本実施形態における動画像データ復号処理の詳細フローチャート（続き）である。
【図６】図４におけるステップＳ９とステップＳ１０の処理の詳細フローチャートである。
【図７】参照マクロブロックがキャッシュライン境界をまたがっている場合のプリロード指定アドレス設定法の説明図である。
【図８】図５における参照マクロブロック内の行のプリロード優先順位決定処理の詳細フローチャートである。
【図９】今回の参照マクロブロックの位置が前回よりも下にある場合の行のプリロード優先順位決定例の説明図である。
【図１０】今回の参照マクロブロックの位置が前回よりも上にある場合の行のプリロード優先順位決定例の説明図である。
【図１１】本発明を実現するためのプログラムのコンピュータへのローディングを説明する図である。
【図１２】フレーム間予測方式の説明図である。
【図１３】従来の動き補償処理方式の説明図である。
【図１４】従来の動画像データ復号処理のフローチャートである。
【図１５】参照マクロブロックがキャッシュライン境界をまたがっている場合の従来の処理を説明する図である。
【図１６】従来においてプリロード不必要な領域から先にデータのプリロードを行ってしまう場合の例の説明図である。
【符号の説明】
【００５９】
１  動画像データ復号装置
２、１５  キャッシュメモリ
３  参照マクロブロック位置決定手段
４  プリロードアドレス指定手段
１０  プロセッサ
１１  大容量メモリ
１２  動画像表示器
１４  プロセッサコア
１７  ビットストリーム格納メモリ
１８  参照画像格納メモリ
１９  復号済み画像格納メモリ
２０  中央処理装置（ＣＰＵ）
２１  リードオンリメモリ（ＲＯＭ）
２２  ランダムアクセスメモリ（ＲＡＭ）
２３  通信インタフェース
２４  記憶装置
２５  入出力装置
２６  読み取り装置
２７  バス
２８  プログラム提供者
２９  ネットワーク
３０  可搬型記憶媒体
【図１】
2006041898.tif 000003
【図２】
2006041898.tif 000004
【図３】
2006041898.tif 000005
【図４】
2006041898.tif 000006
【図５】
2006041898.tif 000007
【図６】
2006041898.tif 000008
【図７】
2006041898.tif 000009
【図８】
2006041898.tif 000010
【図９】
2006041898.tif 000011
【図１０】
2006041898.tif 000012
【図１１】
2006041898.tif 000013
【図１２】
2006041898.tif 000014
【図１３】
2006041898.tif 000015
【図１４】
2006041898.tif 000016
【図１５】
2006041898.tif 000017
【図１６】
2006041898.tif 000018