(57)【要約】  可変長データをメモリに連続的に格納する処理においてエラーが検出され、格納済みのデータの書き換えが必要な場合にも、その書き換えを省略可能とし、エラー隠蔽の処理時間を短縮することを目的とし、エラーが検出されなかった可変長データをメモリ上の定められた位置から連続的に格納し、エラーが検出された時、その可変長データを格納すべきであった領域に対応する復帰アドレスを含み、エラー隠蔽用データによって代用されるべきデータの中で、最も古くメモリに格納された可変長データを指定するエラー情報を、前記定められた位置の前に格納する。
2009040873.tif 000002
【特許請求の範囲】
【請求項１】
与えられる可変長データに対してエラーの検出を行い、
エラーが検出されなかった可変長データをメモリ上の予め定められた位置から連続的に格納し、
エラーが検出された場合、前記メモリ上で該エラーが検出された可変長データを格納すべきであった領域に対応して、次にエラーが検出されない可変長データを格納すべき復帰アドレスを含み、前記エラーに対応してエラー隠蔽用データによって代用されるべき可変長データの中で、最も古く前記メモリに格納された最古の可変長データを指定するエラー情報を、前記メモリに格納することを特徴とする可変長データのメモリ格納方法。
【請求項２】
請求項１に記載の方法でメモリに格納された可変長データの出力方法であって、
前記メモリに格納されているエラー情報を参照し、
前記エラーが検出されなかった可変長データのうちで、前記予め定められた位置から前記最古の可変長データの前までの可変長データについては、前記メモリから読み出した値を出力し、
該最古の可変長データから前記復帰アドレスの前のアドレスまでの間でメモリに格納された可変長データ、およびメモリに格納されなかった可変長データについては、該可変長データの値を“０”として出力することを特徴とする可変長データの出力方法。
【請求項３】
前記エラーが検出された時、前記復帰アドレスを含み、前記最古の可変長データを指定するエラー情報を一旦保持し、
予め定められた個数に達するまでの可変長データに対するエラーの検出と、エラーが検出されなかった可変長データの前記メモリへの格納を繰り返し、該定められた個数の可変長データに対するエラー検出を含む処理の終了後に、前記保持されていたエラー情報の前記メモリへの格納を行うことを特徴とする請求項１に記載の可変長データのメモリ格納方法。
【請求項４】
請求項３に記載の方法でメモリに格納された可変長データの出力方法であって、
前記メモリに格納されているエラー情報を参照し、
エラーが検出されなかった可変長データのうちで、前記予め定められた位置から前記最古の可変長データの前まで、および前記復帰アドレス以後の領域に格納された可変長データについては、前記メモリから読み出した値を出力し、
前記最古の可変長データから前記復帰アドレスの前のアドレスまでの間でメモリに格納された可変長データ、およびメモリに格納されなかった可変長データについては、該可変長データの値を“０”として出力することを特徴とする可変長データ出力方法。
【請求項５】
前記予め定められた個数に達するまでの可変長データに対するエラー検出によって新たにエラーが検出された可変長データのメモリへの格納を行わず、前記エラー情報のうちの前記復帰アドレスを、該新たにエラーが検出された可変長データの次にエラーが検出されない可変長データが格納されるべき位置を指定する新たなアドレスに更新することを特徴とする請求項３に記載の可変長データのメモリ格納方法。
【請求項６】
請求項５に記載の方法でメモリに格納された可変長データの出力方法であって、
前記メモリに格納されているエラー情報を参照し、
前記エラーが検出されなかった可変長データのうちで、前記予め定められた位置から前記最古の可変長データの前まで、および前記更新された復帰アドレス以後の領域に格納された可変長データについては、前記メモリから読み出した値を出力し、
前記最古の可変長データから前記更新された復帰アドレスの前のアドレスまでの間でメモリに格納された可変長データ、およびメモリに格納されなかった可変長データについては、該可変長データの値を“０”として出力することを特徴とする可変長データの出力方法。
【請求項７】
前記エラーが検出された時、前記復帰アドレスを含み、前記最古の可変長データを指定するエラー情報を一旦保持し、
さらに与えられる可変長データに対するエラーの検出を行い、エラーが検出された可変長データはメモリに格納せず、エラーのない次の可変長データが検出された時、該次の可変長データを示すデータを前記エラー情報に追加して、該追加後のエラー情報を格納し、
前記復帰アドレスによって指定されるアドレスに次のエラー情報の格納領域を確保した後に、前記次の可変長データをメモリに格納し、
前記与えられる可変長データに対するエラー検出から、前記追加後のエラー情報の前記次のエラー情報格納領域への格納と、さらに前記次のエラー情報格納領域の確保、および前記次の可変長データのメモリへの格納までの処理を繰り返すことを特徴とする請求項１に記載の可変長データのメモリ格納方法。
【請求項８】
請求項７に記載の方法でメモリに格納された可変長データの出力方法であって、
前記メモリ内で前記予め定められた位置の前に格納されている最初のエラー情報を参照し、
前記エラーが検出されなかった可変長データのうちで、前記予め定められた位置から前記最古の可変長データの前までの可変長データについては前記メモリから読み出した値を出力し、
前記最古の可変長データから前記次のエラー情報格納領域の前までの間でメモリに格納された可変長データ、およびメモリに格納されなかった可変長データについては、該可変長データの値を“０”として出力し、
前記次のエラー情報格納領域に格納されているエラー情報の参照から、エラーが検出されなかった可変長データに対するメモリ読み出し値の出力、および可変調データの値を“０”とした出力までの処理を繰り返すことを特徴とする可変長データの出力方法。
【請求項９】
前記可変長データがブロック分割された各ブロックに対応するデータであり、
前記予め定められた位置が複数のブロックによって構成されるブロックライン内の各ブロックに対応する可変長データが格納されるべき固定長の領域の先頭アドレスであることを特徴とする請求項１に記載の可変長データのメモリ格納方法。
【請求項１０】
前記ブロックが動画像データを分割したブロックであり、
前記可変長データの各ブロックに対して求められる動きベクトルのデータであることを特徴とする請求項９に記載の可変長データのメモリ格納方法。
【請求項１１】
前記可変長データのメモリ格納方法が、動き補償方式を用いる動画像復号装置によって用いられ、
前記可変長データが、該動き補償方式における参照用動きベクトルのデータであることを特徴とする請求項１に記載の可変長データのメモリ格納方法。
【請求項１２】
前記動き補償方式としてダイレクト・モード動き予測方式が用いられることを特徴とする請求項１１に記載の可変長データのメモリ格納方法。
【請求項１３】
前記可変長データが、前記ダイレクト・モード動き予測方式において動画像データがブロック分割された各ブロックに対応し、個数が可変の参照用動きベクトルのデータであることを特徴とする請求項１２に記載の可変長データのメモリ格納方法。
【請求項１４】
与えられた可変長データのうちで、エラーが検出されなかった可変長データを予め定められた位置から１つずつ連続的な領域に記憶し、
与えられたデータにエラーが検出された場合、該可変長データを記憶すべきであった領域に対応して、次にエラーが検出されない可変長データを記憶すべき復帰アドレスを含み、前記エラーに対応してエラー隠蔽用データによって代用されるべき可変長データのうちで、最も古く記憶した最古の可変長データを指定するエラー情報を、記憶することを特徴とする可変長データ記憶装置。
【請求項１５】
前記エラー情報を記憶し、
さらに与えられる可変長データに対するエラー検出を行い、エラーが検出された可変長データを記憶せず、エラーのない次の可変長データが検出された時、該次の可変長データを示すデータを前記一旦保持されているエラー情報に追加して、該追加後のエラー情報を前記予め定められた位置の前に記憶し、
前記復帰アドレスによって指定されるアドレスに次のエラー情報の格納領域を確保した後に、前記次の可変長データを記憶し、
前記与えられる可変長データに対するエラー検出から、前記追加後のエラー情報の前記次のエラー情報格納領域への記憶と、さらに前記次のエラー情報格納領域の確保、および前記次の可変長データの記憶までを繰り返すことを特徴とする請求項１４に記載の可変長データ記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、可変長データのメモリ格納方式に係り、さらに詳しくは、例えば動画像復号装置において動き予測処理に用いられる参照用動きベクトルのデータが可変長であって、その参照用動きベクトルのデータにエラーが生じた場合の、参照用動きベクトルデータのメモリ格納方法に関する。
【背景技術】
【０００２】
近年、ＭＰＥＧ（ムービング・ピクチャ・エキスパーツ・グループ）などの動画像符号化方式を用いたデジタル放送やネットワーク放送、デジタルデータを用いた動画像配信などがさかんに行われている。このような動画像符号化方式において、動画像を高い圧縮率で符号化することによって高解像度の動画像データを転送することが可能となってきている。このような動画像圧縮技術の中に動き補償方式が存在し、その１つとしてダイレクト・モードという手法がある。ダイレクト・モードは動き情報を符号化済みブロックの動き情報から予測生成する符号化モードであり、動き情報の符号化に必要なビット数が不必要となるため、圧縮効率が向上する。【０００３】
図１は、このようなダイレクト・モードとしての時間ダイレクト・モードの概念の説明図である。時間ダイレクト・モードでは、アンカー・ピクチャで対象ブロックと同じ位置にあるアンカー・ブロックの動きベクトルｍｖＣｏｌを、参照ピクチャと対象ピクチャとの時間間隔ｔｂと参照ピクチャとアンカー・ピクチャとの時間間隔ｔｄを用いてスケーリングし、前方予測としてのＬ０予測に対する動きベクトルｍｖＬ０と、後方予測としてのＬ１予測に対する動きベクトルｍｖＬ１とを次式によって求めることになる。【０００４】
ｍｖＬ０＝ｍｖＣｏｌ×ｔｂ／ｔｄ
ｍｖＬ１＝−ｍｖＣｏｌ×（ｔｄ−ｔｂ）／ｔｄ＝ｍｖＬ０−ｍｖＣｏｌ
このようなダイレクト・モードが用いられて符号化された動画像データを復号化する復号処理においては、符号化された画像データの復号にあたって、ダイレクト・モードで参照される可能性のある動きベクトルの情報をすべてメモリに格納しておく処理が必要である。【０００５】
図２は、このようにダイレクト・モードの処理で参照される可能性のある動きベクトル情報を表わす例である。同図において、例えば１６×１６の画素に対応する１つのマクロブロック（ＭＢ）に対する動きベクトルの数は一定ではなく、数が変化すると共に、それらの動きベクトルを求める領域の大きさを含めて何種類ものパターンが存在する。【０００６】
図３は、そのような参照用動きベクトル情報のメモリ格納方式の１つの従来例の説明図である。同図においては、各マクロブロック（ＭＢ）に対して異なるパターンを持ち、結果として可変長の動きベクトル情報に対して、固定サイズのメモリ領域が割り当てられ、動きベクトル情報が格納されている。このようにマクロブロック単位で固定サイズのメモリ領域を割当てる場合には動きベクトル情報の転送にあたって常に固定サイズのデータを転送する必要があり、メモリへのアクセス処理が膨大となる。【０００７】
図４、および図５は、マクロブロック毎に数も異なり、また動きベクトルが検出される領域の大きさも異なる可変長データのメモリへの異なる格納方式の説明図である。図４において、例えばマクロブロック０に対する動きベクトルの数は２個であり、マクロブロック３に対する動きベクトルの数は７個となる。【０００８】
図５は、図４の動きベクトルのデータ長に応じてメモリ内の可変長領域を割り当てる動きベクトル情報の格納方式であり、図４の各マクロブロックに対する動きベクトルの情報が動きベクトルの個数などに応じた可変長の領域にそれぞれ格納されている。【０００９】
図５の参照用動きベクトル情報のメモリ格納方式を従来例として、従来例における参照用動きベクトル情報のメモリへの書き込みと読み出しの処理について、図６から図９を用いて説明する。図６は、動きベクトル情報のメモリ格納方式の従来例における動きベクトル情報格納処理のフローチャートである。同図は、１マクロブロック（ＭＢ）に対する参照用動きベクトル格納処理の詳細フローチャートの従来例である。【００１０】
図６において処理が開始されると、まずステップＳ１０１でマクロブロックラインの先頭のマクロブロックに対する処理であるか否かが判定される。ここでは１つのマクロブロックライン、すなわち横方向のマクロブロックの並びに対応してメモリ内の固定領域が割り当てられるものとし、マクロブロックラインの先頭である場合には、そのように割り当てられた固定サイズの領域の先頭にそのマクロブロックに対する参照用動きベクトル情報を格納する必要があるため、ステップＳ１０２でその領域の先頭アドレスが計算された後に、マクロブロックラインの先頭でない場合には直ちにステップＳ１０３に移行し、そのマクロブロックに対する参照用動きベクトルの計算が行われる。【００１１】
そしてステップＳ１０４で参照用動きベクトルの計算においてエラーが発生したか否かが判定され、エラーが発生していない場合にはステップＳ１０５で参照用動きベクトルの格納が行われ、次のマクロブロックに対する参照用動きベクトル格納処理が続行される。【００１２】
ステップＳ１０４でエラーが発生したと判定されると、ステップＳ１０６でマクロブロックを巻き戻る処理が必要であるか否かが判定される。例えば画像データの欠落などによって参照される動きベクトルの計算が正しく行われない場合には、その参照用動きベクトル情報を用いて算出される該当マクロブロックの動きベクトル情報に対する影響が大きくなり、画質劣化に直接結びついてしまうために、エラーが発生したマクロブロックの動きベクトル情報をそのまま使用することなく、例えばその参照用動きベクトル情報を“０”としてダイレクト・モード動き予測処理を行うことが望ましい方法となる。なお、例えばダイレクト・モードが用いられるＨ．２６４画像圧縮方式では、データ復号時の処理の詳細は規定されていないが、以下の説明では、エラーが発生しているマクロブロックの動きベクトル情報を“０”としてダイレクト・モード動き予測処理を行うものとする。【００１３】
またあるマクロブロックに対してエラーが検出された場合、該当するマクロブロックの手前に位置し、すでに参照用動きベクトルの格納処理が終了したマクロブロックに対しても、画質劣化が発生している可能性が高い。このため手前のマクロブロックに巻き戻ってエラー隠蔽処理を行うことによって、検出されたエラーによる画質劣化を手前のマクロブロックに対しても防止することが可能である。【００１４】
ステップＳ１０６でそのようなマクロブロック巻き戻り処理が必要であるか否かが判定され、そのような巻き戻り処理が必要でない場合には、ステップＳ１０７で計算結果の動きベクトル情報が“０”で上書きされて、ステップＳ１０５で参照用動きベクトルの格納が行われる。【００１５】
ステップＳ１０６で、例えば経験的にマクロブロックの巻き戻り処理が必要であり、どこまでマクロブロックの巻き戻りを行うべきかが決定された場合には、ステップＳ１０８で図５で説明した１つのマクロブロックラインに対応する動きベクトル情報格納領域の先頭アドレスからメモリの内容を再びリードし、ステップＳ１０９で巻き戻りマクロブロック位置、すなわちエラー隠蔽処理を行うべきマクロブロックの位置が探索され、ステップＳ１０７でそのマクロブロックの位置から計算結果の動きベクトル情報が“０”で上書きされ、ステップＳ１０５で巻き戻ったマクロブロックの位置から現在の処理対象のマクロブロックの位置まで、参照用動きベクトルの値として“０”の書き込みが行われ、次のマクロブロックに対する参照用動きベクトル格納処理が続行される。【００１６】
図７は、図６の処理による参照用動きベクトル情報書き込み結果の説明図である。同図において、図５で説明した１つのマクロブロックラインに対する動きベクトル情報格納のための固定サイズの領域にマクロブロック（ＭＢ）０から可変長の動きベクトル情報が次々と書き込まれるが、マクロブロック５に対してエラーが検出されたとすると、この時点でステップＳ１０６でマクロブロックの巻き戻り処理が必要であるか否かが判定され、マクロブロック２までの巻き戻り処理が必要であると判定されると、マクロブロック２からマクロブロック５までのデータとして参照用動きベクトル情報が“０”であることを示すデータが書き込まれる。マクロブロック６に対してもエラーが検出されると、ステップＳ１０６では巻き戻り処理が必要ないと判定され、ステップＳ１０７、およびステップＳ１０５でマクロブロック６に対しても“０”が書き込まれ、以後の処理が続行されることになる。【００１７】
図８は、図５の動きベクトル情報の格納方式の従来例に対応する動きベクトル情報読み出し処理のフローチャートである。同図においては、図６に対応して１マクロブロックの参照用動きベクトル読み出し処理のフローチャートが示されている。処理が開始されると、まずステップＳ１１１で１マクロブロックラインの先頭マクロブロックに対する処理であるか否かが判定され、先頭マクロブロックである場合にはステップＳ１１２で動きベクトル情報を格納しているＲＡＭのアドレスとして１マクロブロックラインの先頭アドレスが設定されて、ＲＡＭのリードが行われた後に、先頭マクロブロックラインでない場合には直ちに、ステップＳ１１３で参照用動きベクトル情報が読み出され、ステップＳ１１４でダイレクト・ベクトルの計算が行われ、１マクロブロックに対応する参照用動きベクトル読み出し処理を終了する。【００１８】
図９は、図８の処理による参照用動きベクトル情報の読み出し方法の説明図である。同図においてマクロブロックラインの先頭、すなわちＭＢ（マクロブロック）０から参照用動きベクトル情報の読み出しが行われるが、マクロブロック２からマクロブロック６に対しては動きベクトル情報としてメモリに格納されている“０”の読み出しが行われることになる。【００１９】
以上において可変長となるマクロブロック動きベクトル情報をメモリに格納する格納方式の従来例と、その従来例に対応する動きベクトル情報の書き込み、および読み出し処理について詳細に説明したが、あるマクロブロックにおいてエラーが検出され、手前のマクロブロックに巻き戻ってエラー隠蔽処理を行う必要がある場合に、巻き戻るべきマクロブロックに対応する動きベクトル情報の格納アドレスをユニークに求めることはできず、再度先頭アドレスからメモリの内容を読み出して巻き戻り位置の動きベクトル情報を探し出し、その位置から動きベクトル情報の“０”への置き換えを行う必要があり、このような処理には膨大なメモリアクセスと、長い処理時間を必要とするという問題点があった。【００２０】
このような画像復号化システムにおけるエラー隠蔽方法に関する従来技術としての特許文献１では、エラー領域の予測動きベクトルと隣接領域の動きベクトルとの差分と閾値との比較結果に基づいて、エラー領域に対する代替領域の動きベクトルを“０”に設定するか、またはエラー領域の予測動きベクトルに補償値を加えて代替領域の動きベクトルとして機能させる技術が開示されている。
【特許文献１】特開２００６−１２８９２０号公報  「画像信号復号化システムにおけるエラー隠蔽方法および装置」
【００２１】
しかしながらこのような従来技術を用いても、可変長の動きベクトル情報が連続的に格納されたメモリにおいてマクロブロックの巻き戻り処理を必要とする場合に、メモリアクセスが膨大となり、処理時間が長くなるという問題点を解決することはできなかった。
【発明の開示】
【００２２】
本発明の目的は、可変長データ、例えば参照用動きベクトルのデータを各マクロブロックに対応して次々とメモリに格納する処理において、エラーが検出され、既に格納済みの可変長データの書き換えを行う必要が生じた場合にも、その書き換え処理を省略可能とすることによって、メモリアクセス処理の必要性を低減させ、エラー隠蔽処理に必要な時間を大幅に短縮することである。
【００２３】
本発明の可変長データのメモリ格納方法は、複数の可変長データ、例えば１マクロブロックラインの複数のマクロブロックに対する参照用動きベクトルデータをメモリ上に連続して格納する方法である。
【００２４】
この方法においては、可変長データに対してエラー検出を行い、エラーが検出されなかった可変長データをメモリ上の予め定められた位置から１つずつ格納し、可変長データに対してエラーが検出された時、その可変長データを書き込むべきであった前記メモリ内の領域に対応して、次にエラーが検出されない可変長データを格納すべき復帰アドレスを含むエラー情報を、前記予め定められた位置の前に書き込むものである。
【００２５】
本発明におけるエラー情報は、前述の復帰アドレスに加えて、検出されたエラー情報に対応してエラー隠蔽用データによって代用されるべき可変長データの中で、最も古く入力された可変長データを指定するものである。
【００２６】
本発明の可変長データ記憶装置は、このような可変長データのメモリ格納方法を用いて可変長データが格納されるデータ記憶装置である。
以上のように本発明によれば、メモリに書き込むべき可変長データにエラーが検出された時には、その可変長データを書き込むべきであったメモリ上の領域に対応する復帰アドレスを含み、エラー隠蔽用データによって代用されるべき可変長データの中で最も古く入力された可変長データが指定されることによって、データの読み出し時には、その最も古く入力された可変長データから、前述の復帰アドレスに格納されている可変長データの前までの可変長データがエラー隠蔽用データ、例えば“０”として出力されることによって、前述のマクロブロックの巻き戻り処理が不必要となり、メモリアクセスのための処理時間を大幅に削減することが可能となる。
【図面の簡単な説明】
【００２７】
【図１】ダイレクト・モードの処理の概要を説明する図である。
【図２】ダイレクト・モード処理において用いられる参照用動きベクトルの説明図である。
【図３】固定サイズ領域への動きベクトル情報の格納方式の従来例の説明図である。
【図４】マクロブロックに対する参照用動きベクトルの各種パターンの説明図である。
【図５】メモリへの可変長動きベクトル情報の連続格納方式の従来例の説明図である。
【図６】図５の従来例に対する動きベクトル情報格納処理のフローチャートである。
【図７】図６の処理によるメモリへの参照用動きベクトル情報書き込み例の説明図である。
【図８】図５の従来例に対する動きベクトル情報読み出し処理のフローチャートである。
【図９】図８の処理によるメモリからの参照用動きベクトル情報読み出し例の説明図である。
【図１０】可変長データのメモリ格納方法の基本的な機能ブロック図である。
【図１１】動画像復号装置の構成例のブロック図である。
【図１２】各ピクチャの入力、符号化、復号化、および表示の順序を説明する図である。
【図１３】図１２に対する各ピクチャの復号処理の全体フローチャートである。
【図１４】第１の実施例におけるエラー情報のメモリへの格納方式の説明図である。
【図１５】第１の実施例における参照用動きベクトル情報格納処理のフローチャートである。
【図１６】図１５におけるエラー情報保持処理の詳細フローチャートである。
【図１７】第１の実施例における参照用動きベクトル情報書き込み例の説明図である。
【図１８】第１の実施例における参照用動きベクトル情報読み出し処理のフローチャートである。
【図１９】第１の実施例における参照用動きベクトル情報読み出し例の説明図である。
【図２０】第２の実施例におけるエラー情報格納方式の説明図である。
【図２１】第２の実施例における参照用動きベクトル情報格納処理のフローチャートである。
【図２２】図２１におけるエラー情報保持処理の詳細フローチャートである。
【図２３】図２１の処理による参照用動きベクトル情報書き込み例の説明図である。
【図２４】第２の実施例における参照用動きベクトル情報読み出し処理のフローチャートである。
【図２５】図２４の処理による参照用動きベクトル情報読み出し例の説明図である。
【発明を実施するための最良の形態】
【００２８】
図１０は、本実施形態における可変長データのメモリ格納方法の基本的な機能ブロック図である。同図は複数の可変長データ、例えば参照用動きベクトルのデータをメモリ上に連続して格納するメモリ格納方法の基本的な機能ブロック図である。【００２９】
図１０において、まずステップＳ１で入力される可変長データに対するエラー検出が行われ、エラーが検出されなかった場合には予め定められた位置から可変長データが連続してメモリに書き込まれる。エラーが検出された場合には、そのエラーに対応するエラー情報がメモリ内で前述の予め定められた位置より前に書き込まれる。このエラー情報は、復帰アドレスとして、エラーが検出された可変長データが書き込まれるべきであったメモリ上の領域に対応するアドレス、例えばその領域の終了アドレスの次のアドレスを含み、検出されたエラーに対応してエラー隠蔽用データ、例えば“０”によって代用されるべき可変長データの中で最も古く入力された可変長データを指定するものである。【００３０】
これによって可変長データが参照用の動きベクトルのデータである場合には、エラーが検出されたマクロブロックに対する参照用動きベクトルのデータを書き込むべきであったメモリ上の領域の、例えば終了アドレスの次のアドレスと、マクロブロックの巻き戻り処理として参照用動きベクトルの値が“０”とされるべきマクロブロックのうちで最も古くメモリに格納された参照用動きベクトルのデータが指定され、参照用動きベクトルデータの読み出しに際してはその最も古くメモリに格納された参照用動きベクトルのデータから、前述の終了アドレスの次のアドレスから格納されているマクロブロックのデータの前までのマクロブロックに対する参照用動きベクトルのデータが、エラー隠蔽用のデータとしての“０”とされて出力されることになる。【００３１】
図１１は、本実施形態における動画像復号装置の構成例のブロック図である。同図において動画像復号装置１は、ＶＬＣ（バリアブル・レングス・コード、可変長符号）復号部２、逆量子化部３、逆ＤＣＴ部４、フィルタ処理部５、フレームメモリ６、画面内予測部７、動き補償部８、重み付き予測部９、およびメモリ１０を備えている。【００３２】
図１１において入力ストリームデータはＶＬＣ復号部２に与えられ、復号化された後に逆量子化部３によって逆量子化され、逆ＤＣＴ部４によって逆離散コサイン変換される。
ＶＬＣ復号部２による復号結果は、画面内予測部７、および動き補償部８にも与えられ、画面内予測、すなわちフレーム内予測方式が用いられている場合には、画面内予測部７の出力が選択されて、逆ＤＣＴ部４の出力と加算され、出力画像として外部に出力される。【００３３】
出力画像はフィルタ処理部５にも与えられ、フィルタ処理の結果はフレームメモリ６に格納され、動き補償部８によって動き補償が行われ、その補償結果に応じて重み付き予測部９によってフレーム間予測に対応する処理が行われ、重み付き予測部９の出力が選択され、逆ＤＣＴ部４の出力と加算されて出力画像として外部に出力される。この時、動き補償部８によって参照用動きベクトルの計算が行われ、その計算結果はメモリ、例えばＲＡＭ１０に格納され、またダイレクト・モード処理による演算においてメモリ１０から読み出されて使用される。メモリ１０、例えばＲＡＭは実装上は動画像復号装置、例えばデコーダチップの外部に備えられることもあるが、ここでは基本的な構成例として、メモリ１０が動画像復号装置１の内部に備えられているものとする。【００３４】
図１２は、本実施形態における入力ストリーム内の画像の入力、符号化、復号化、および表示の順序の説明図である。画像の入力順はＩピクチャ、２つのＢピクチャ、Ｐピクチャの順序であるが、符号化、および復号化においてはその順序はＩピクチャ、Ｐピクチャおよび２つのＢピクチャの順となる。表示順は画像入力順と同じである。本実施形態の復号化処理において、例えばPピクチャのあるマクロブロックにエラーが発生した場合に、エラー隠蔽処理として、そのマクロブロックに対応する参照用動きベクトルの値が“０”に置き換えられて、復号化の処理が行われることになる。【００３５】
図１３は、図１２の画像復号化順に対応する画像データ復号処理の全体フローチャートである。同図において処理が開始されると、まずステップＳ１１でＩピクチャの復号処理が、ステップＳ１２でＰピクチャの復号処理が行われる。このＰピクチャの復号処理においては、ステップＳ１５で１マクロブロックライン単位の処理が行われ、その処理はステップＳ１６ですべてのマクロブロックラインに対して終了したと判定されるまで続けられる。このステップＳ１５における１マクロブロックライン単位の処理において、後述するように各マクロブロックに対する参照用動きベクトルの格納処理が行われる。【００３６】
ステップＳ１２の処理が終了すると、ステップＳ１３でＢピクチャの復号処理が行われる。この処理では、ステップＳ１７で１マクロブロックライン単位の処理が行われ、その処理はステップＳ１８ですべてのマクロブロックラインに対する処理が終了したと判定されるまで続けられる。このステップＳ１７における１マクロブロック単位処理において、ダイレクト・モードが使用されている場合、各マクロブロックに対する参照用動きベクトル読み出し処理が行われる。そして最後にステップＳ１４で次のＢピクチャ復号処理が行われる。【００３７】
続いて本実施形態におけるエラー情報のメモリ格納方式、参照用動きベクトル情報のメモリへの格納と読み出しの処理について、従来例と対応させながら詳細に説明する。
図１４から図１９は、第１の実施例の説明図である。図１４は、第１の実施例におけるエラー情報のメモリ格納方式の説明図である。本実施形態では、従来例における図５と同様に、メモリ内で１マクロブロックラインに対応する参照用動きベクトル情報の格納開始位置から連続的に動きベクトル情報が格納されるが、第１の実施例においてはその格納開始位置の直前にエラー情報が格納される。【００３８】
エラー情報としては、例えばその１ワードがエラー情報であることを示す識別子が格納され、その後ろの空の領域の後に、そのマクロブロックラインに対するエラーの有無を示すエラーフラグが格納され、その後にエラー開始マクロブロック情報と復帰アドレス情報が格納される。【００３９】
エラー開始マクロブロック情報は、あるマクロブロックに対してエラーが検出された時にマクロブロックを巻き戻ってエラー隠蔽処理、すなわち参照用動きベクトル情報の値を“０”とする処理を開始すべきマクロブロックの番号（コンシール・スタートＭＢ）を示し、復帰アドレス情報はエラー隠蔽処理、すなわちエラーが検出されたマクロブロックまでの参照用動きベクトル情報の値を“０”とする処理の後に、通常処理としてマクロブロックに対する参照用動きベクトル情報の通常の書き込みと読み出しを開始すべきメモリアドレス（ネクスト・アドレス・ポインタ）を示す。【００４０】
図１５は、第１の実施例における１マクロブロック参照用動きベクトル格納処理のフローチャートである。同図において処理が開始されると、ステップＳ２１からＳ２３で従来例の図６におけるステップＳ１０１からステップＳ１０３までと同様の処理が行われ、参照用動きベクトルの計算が行われる。そしてステップＳ２４でエラーが発生したか否かが判定され、エラーが発生していない場合には、従来例におけると同様に参照用動きベクトルのデータがステップＳ２５でメモリに格納された後に、エラーが発生した場合にはステップＳ２６でエラー情報が、例えば図示しないメモリのワーク領域に保持された後に、ステップＳ２７でそのマクロブロックラインが終了し、かつそのマクロブロックラインの中のマクロブロックに対してエラーがあったか否かが判定され、この条件が成立しない場合には直ちに、成立した場合には先頭メモリアドレス、すなわち図１４の動きベクトル情報格納開始位置の直前にエラー情報が書き込まれた後に、そのマクロブロックに対する参照用動きベクトル格納処理を終了する。すなわち第１の実施例においては、１マクロブロックラインの中のすべてのマクロブロックに対する参照用動きベクトル格納処理が終了した時点でエラー情報のメモリへの書込みが行われる。【００４１】
図１６は、図１５におけるステップＳ２６のエラー情報保持処理の詳細フローチャートである。同図において、まずステップＳ３０でエラーフラグの値が“１”となっているか否か、すなわち前述のワーク領域に保持されているエラー情報の中のフラグが“１”であるか否かが判定され、“１”でない場合にはステップＳ３１でその値が“１”に設定され、ステップＳ３２でマクロブロックの巻き戻り処理が必要か否かが判定され、必要である場合にはステップＳ３４でエラー開始ＭＢ位置として巻き戻りＭＢ位置が格納され、ステップＳ３５で復帰アドレスが格納、すなわちエラー情報としてワーク領域に保持された後にステップＳ２７の処理に移行する。【００４２】
ステップＳ３２でマクロブロックの巻き戻り処理が必要でない場合には、エラー開始マクロブロック位置として現在のマクロブロック位置を示すデータが格納された後に、またステップＳ３０でエラーフラグの値がすでに“１”である場合、すなわち１つのマクロブロックラインの中ですでに参照用動きベクトルの計算においてエラーが発生したと判定されたマクロブロックがあった場合には、ステップＳ３５で復帰メモリアドレスの格納、すなわちエラー情報として保持された後にステップＳ２７の処理に移行する。【００４３】
なお、本発明の特許請求の範囲の請求項１における可変長データはマクロブロックに対する参照用動きベクトルのデータに相当し、予め定められた位置は図１４の格納開始位置に相当し、さらに最古の可変長データはエラー開始マクロブロックに対する参照用動きベクトルのデータに相当する。【００４４】
請求項３における予め定められた個数の可変長データは１マクロブロックラインを構成するマクロブロックに対する参照用動きベクトルデータに相当する。また請求項３全体は図１６のステップＳ３０でエラーフラグが“１”と判定されることがなく、復帰アドレスが更新されない場合の図１５、１６の処理に相当し、これに対して請求項５全体は復帰アドレスが更新される場合の処理に相当する。【００４５】
図１７は、図１５の処理によるメモリへの参照用動きベクトル情報書き込み例の説明図である。同図において格納開始位置から始めて、マクロブロック０からマクロブロック４までに対する参照用動きベクトルのデータが格納された後に、マクロブロック５に対応する処理においてエラーが検出されたものとする。【００４６】
エラーが検出されたマクロブロック５に対する参照用動きベクトルの格納は図１５の処理においては行われないが、ステップＳ２３でマクロブロック５に対する参照用動きベクトルの計算が行われた時点でその動きベクトルのデータの格納領域の大きさが特定されるため、ここではマクロブロック５に対する参照用動きベクトル格納領域はその大きさだけメモリ内に取られるものとし、実際の参照用動きベクトルのデータの格納は行われないものとする。しかしながら次に正常な参照用動きベクトルのデータが格納されるべき領域の先頭アドレスは、マクロブロック５に対応する参照用動きベクトルを格納すべきであった領域の終了アドレスの次のアドレスであり、この次のアドレスの値が復帰アドレス情報としてエラー情報として保持される。【００４７】
またマクロブロック５に対するエラーが検出されたことによって、マクロブロック２まで巻き戻ってエラー隠蔽処理を行うべき場合には、このマクロブロックの番号がエラー開始（ＭＢ）位置情報として保持され、１マクロブロックラインに対する参照用動きベクトルの格納処理の終了時点、ここでは例えばマクロブロック７に対する参照用動きベクトル格納処理の終了時点で、格納開始位置の直前にエラー情報の書き込みが行われることになる。なお、例えばエラーが検出されたマクロブロック５に対するデータ格納領域をメモリ内に取ることなく、その領域にマクロブロック７のデータを格納することも当然可能であり、この場合はその領域の開始アドレスが復帰アドレスとなる。【００４８】
図１８は、第１の実施例における参照用動きベクトル読み出し処理のフローチャートである。同図において処理が開始されると、まずステップＳ３８でマクロブロックラインの先頭のマクロブロックに対する処理であるか否かが判定され、先頭マクロブロックに対する処理である場合にはステップＳ３９でメモリアドレスがエラー情報格納アドレスとされてメモリの内容がリードされ、リードされたエラー情報が、例えばワークエリアに保持された後に、マクロブロックラインの先頭でない場合には直ちに、ステップＳ４０の処理に移行する。【００４９】
ステップＳ４０においてすでに保持されているエラー情報のエラーフラグの値が“１”であるか否かが判定され、“１”でない場合にはステップＳ４１で参照用動きベクトルのデータが読み出され、ステップＳ４２でダイレクト・ベクトルの計算が行われ、そのマクロブロックに対する参照用動きベクトル読み出し処理を終了する。【００５０】
図１９は、参照用動きベクトル情報読み出し例の説明図である。図１８のステップＳ４０で図１９の先頭に格納されているエラーフラグの値が“１”であれば、現在処理対象となっているマクロブロックを含むマクロブロックラインの中にエラーが発生したマクロブロックが存在することになるため、ステップＳ４３で現在のマクロブロック位置、図１９でマクロブロック０がエラー開始マクロブロック位置以上であるか否かが判定される。図１７で説明したようにエラーが検出されたマクロブロック５から巻き戻ってエラー隠蔽処理が開始されるべきマクロブロックはマクロブロック２であり、ここではまだその位置に達していないため、ステップＳ４１以降の処理が行われる。【００５１】
マクロブロック２に対する処理において、ステップＳ４３でエラー開始マクロブロック位置以上と判定され、ステップＳ４４で現在読み出し中のメモリアドレスが復帰アドレス以上であるか否かが判定される。ここで復帰アドレスは図１７で説明したように、例えばマクロブロック７の先頭を示すアドレスであり、まだこのアドレスに達していないため、ステップＳ４５でメモリアドレスが復帰アドレスとされ、ステップＳ４６でその位置のマクロブロック、すなわち復帰マクロブロックの位置、ここではマクロブロック７の番号がリードされ、ステップＳ４７で現在処理対象となっているマクロブロック、すなわちマクロブロック２に対する参照用動きベクトルの値が“０”とされた後に、ステップＳ４２の処理に移行する。【００５２】
次のマクロブロック３に対する処理においては、ステップＳ４４でメモリアドレスが復帰アドレスに達していると判定される。これはマクロブロック２に対する処理においてステップＳ４５でメモリアドレスが復帰アドレスの位置とされたためであり、その結果ステップＳ４８で現在のマクロブロックの位置が復帰マクロブロック位置以上であるか否かが判定され、ステップＳ４７で参照用動きベクトルの値が“０”とされる。【００５３】
次のマクロブロック４からマクロブロック６に対しては、マクロブロック３に対すると同様の処理がステップＳ４３からステップＳ４４、ステップＳ４８、およびステップＳ４７で行われ、参照用動きベクトルの値が“０”とされて、ステップＳ４２でダイレクト・ベクトルの計算が行われる。【００５４】
マクロブロック７に対する処理においては、ステップＳ４３、ステップＳ４４の処理を経てステップＳ４８で現在のマクロブロックの位置が復帰マクロブロックに達したと判定され、ステップＳ４１でマクロブロック７に対する参照用動きベクトルのデータが読み出され、ステップＳ４２でダイレクト・ベクトルの計算が行われる。【００５５】
このように第１の実施例によれば、参照用動きベクトル情報格納時にあるマクロブロックに対してエラーが発生しても、それに対応してすでに格納されているマクロブロックに対する参照用動きベクトルに対するエラー隠蔽処理としての動きベクトルデータの“０”への書き換えを行う必要がなく、また参照用動きベクトル情報の読み出し時においても、その巻き戻り位置のマクロブロックから、次にエラーのないマクロブロックに対する参照用動きベクトル情報が格納されている領域の前までについては、実質的なメモリアクセスは不必要となり、参照用動きベクトルのデータとして“０”を用いて、ダイレクト・ベクトルの計算を行えばよいことになる。【００５６】
次に第２の実施例について説明する。この第２の実施例は第１の実施例において残っている問題点を解決するものである。第１の実施例に対する図１６においては、ステップＳ３０でエラーフラグの値、すなわちステップＳ２８で先頭メモリアドレスに書き込まれる前に、図示しないメモリのワークエリアなどに保持されているエラーフラグの値が“１”である場合には、ステップＳ３５で復帰メモリアドレスの格納が行われる。【００５７】
図１７においては、１つのマクロブロックラインが、例えばマクロブロック７までで終わるものと考えているが、さらに１マクロブロックライン内のマクロブロックの数が多く、例えば後続のマクロブロック９において再びエラーが発生したとすると、その時エラーフラグの値は“１”として保持されており、ステップＳ３５で復帰アドレスの上書きが行われることになる。例えばマクロブロック１０にもエラーがあり、マクロブロック１１にエラーがないとすると、マクロブロック１０に対する参照用動きベクトルの書き込み領域は存在せず、ステップＳ３５で上書きされる復帰アドレスはマクロブロック９に対する動きベクトルの格納領域の終了アドレスの次のアドレス、すなわちマクロブロック１１の動きベクトルの格納領域の先頭アドレスとなる。【００５８】
その結果、図１８の参照用動きベクトル読み出し処理のステップＳ４５で、メモリアドレスが復帰アドレスとしてのマクロブロック１１の参照用動きベクトル格納領域の先頭アドレスとされ、ステップＳ４６でリードされる復帰マクロブロックの位置はマクロブロック１１を指すことになり、その結果前述と同様にマクロブロック３からマクロブロック１０に対してはすべてステップＳ４４、ステップＳ４８の処理を介して、ステップＳ４７で参照用動きベクトルの値が“０”とされ、ステップＳ４２でダイレクト・ベクトルの計算が行われることになる。すなわち、エラーが検出されなかったマクロブロック７、およびマクロブロック８に対して計算され、正しい参照用動きベクトルの値が格納されたメモリ領域に対しても、参照用動きベクトルの値が“０”とされてしまうことになる。【００５９】
第２の実施例は、この問題点を解決するものである。図２０は、第２の実施例におけるエラー情報格納形式の説明図である。同図を第１の実施例に対する図１４と比較すると、エラー情報として復帰マクロブロック情報（スタートＭＢ）がさらに格納される。この復帰マクロブロック情報は復帰アドレス情報によって指定されるマクロブロックの番号に対応し、図１７の例ではマクロブロック７が復帰マクロブロッのク位置となる。また第２の実施例においては、復帰アドレス情報、すなわちマクロブロック７に対する参照用動きベクトル情報格納領域の先頭アドレスの値が上書きされて更新されることはなく、前述のように例えばマクロブロック９において再びエラーが発生した場合には、後述するようにエラー情報そのものが新たにメモリ内に書き込まれることになる。【００６０】
図２１、図２２は、第２の実施例における参照用動きベクトル格納処理のフローチャートである。この処理フローチャートを、図２３に示す参照用動きベクトル情報書き込み例を用いて、また第１の実施例との相違点を中心に説明する。【００６１】
図２１において、ステップＳ５０からステップＳ５３の処理は第１の実施例に対する図１５と同様である。そしてステップＳ５３でエラーが発生していないと判定されると、ステップＳ５４で後述するように１つのマクロブロックラインの中で現在処理対象となっているマクロブロックの属する部分に対するエラーフラグの値がすでに“１”になっているか否かが判定され、“１”になっていない場合にはステップＳ５５で参照用動きベクトルデータのメモリへの格納が行われ、そのマクロブロックに対する参照用動きベクトル格納処理が終了する。【００６２】
ステップＳ５３でエラーが発生したと判定されると、ステップＳ５６でエラー情報の保持が行われる。図２２に示されるこの処理の詳細フローでは、第１の実施例に対する図１６に類似した処理が行われるが、ステップＳ６４で行われる復帰アドレスの格納処理は、ステップＳ６１でエラーフラグの値が“１”でないと判定された場合に１回だけ行われる点が図１６と基本的に異なっている。なお、ステップＳ６３におけるエラー開始マクロブロック位置の格納では、図１６のステップＳ３２からＳ３４と同様にマクロブロックの巻き戻り処理があるか否かによって、異なるマクロブロック位置を格納するようにしても良いことは当然である。そしてエラー情報の保持が終了すると、第１の実施例に対する図１５と異なり、直ちにそのマクロブロックに対する処理を終了する。【００６３】
ステップＳ５４でエラーフラグが“１”と判定される場合は、図２３ではマクロブロック７に対する処理において発生する。すなわちマクロブロック５でエラーが検出され、ステップＳ５６でエラー情報が保持された後のマクロブロック６に対する処理では同様にエラー発生のために、ステップＳ５６においては実質的になんらの処理も行われず、マクロブロック７に対する処理でステップＳ５３でエラー発生なしと判定され、ステップＳ５４でエラーフラグの値が“１”と判定される。【００６４】
このような場合には、ステップＳ５７で復帰マクロブロックの位置が、例えばワークエリアに格納される。この復帰マクロブロック位置はマクロブロック７を示すものであり、ステップＳ５８でこの復帰マクロブロック位置を含むエラー情報が特定アドレス、ここでは１マクロブロックラインに対する参照用動きベクトル情報格納領域の開始位置の直前のアドレスに書き込まれ、ステップＳ５９で新規エラー情報の格納領域として１ワードの追加が行われ、ステップＳ５５でマクロブロック７に対する参照用動きベクトルの格納処理が行われてマクロブロック７に対する処理を終了する。ステップＳ５９で追加される１ワードの位置は、マクロブロック７に対する参照用動きベクトル格納領域の直前であり、マクロブロック８以降の処理においてエラーが発生した場合に、対応するエラー情報を格納すべき領域として、この１ワードの領域の追加が行われる。【００６５】
図２４は、第２の実施例における参照用動きベクトル読み出し処理のフローチャートであり、図２５は読み出し処理例の説明図である。これらの図を第１の実施例に対する図１８、図１９と比較し、相違点を中心に説明する。【００６６】
図２４において処理が開始されると、ステップＳ６６からステップＳ７１で図１８におけると同様の処理が行われ、ステップＳ７１で現在のマクロブロックの位置がエラー開始マクロブロック位置に達していないと判定されると、ステップＳ６９で参照用動きベクトルのデータが読み出され、ステップＳ７０でダイレクト・ベクトルの計算が行われて、そのマクロブロックに対する参照用動きベクトル読み出し処理を終了する。【００６７】
図２５のマクロブロック２に対する処理において、このマクロブロックがエラー開始マクロブロックであることから、ステップＳ７２で現在のマクロブロック位置が復帰マクロブロック位置に達したか否かが判定される。この復帰マクロブロック位置は、図２１のステップＳ５７で説明したように、そのマクロブロックに対してエラーが発生することなく、ステップＳ５４でエラーフラグが“１”となっていると判定されて格納されるものであり、図２３においてはその値はマクロブロック７を指すものとなっている。そこでマクロブロック２に対しては当然その位置に達しておらず、ステップＳ７３で参照用動きベクトルの値が“０”とされ、その値がステップＳ６９で読み出され、ステップＳ７０におけるダイレクト・ベクトルの計算に用いられる。図２５のマクロブロック５まで、およびマクロブロック６に対する処理においては、同様にステップＳ７３で参照用動きベクトルの値が“０”とされる。【００６８】
処理中のマクロブロックの位置が復帰マクロブロックの位置、すなわちマクロブロック７に達すると、ステップＳ７４でメモリアドレスが復帰アドレスとされ、メモリのリードが行われる。図２２のステップＳ６４で説明したように、そこでリードされるメモリアドレスはマクロブロック５に対する参照用動きベクトル情報を格納すべきであった領域の終了アドレスの次のアドレスである。このアドレスは図２１のステップＳ５９で追加された新規のエラー情報１ワードの格納領域を示しており、ここで読み出されるメモリのアドレスには新規のエラー情報が格納されており、その情報を用いてステップＳ７５でエラー情報の更新、すなわち新規のエラー情報の保持が行われ、続いてステップＳ６９でマクロブロック７に対する参照用動きベクトルの読み出しが行われることになる。【００６９】
すなわち図２３において、例えばマクロブロック１１にエラーが発生し、マクロブロック９までの巻き戻り処理が必要となる場合には、例えばエラーのないマクロブロック１２に対する処理のステップＳ５８で、それらに対応するエラー開始マクロブロック情報、復帰マクロブロック情報、および復帰アドレス情報が、図２１のステップＳ５９で追加された新規エラー情報の領域に格納されることとなり、図２４のステップＳ７４ではそのエラー情報の内容がメモリからリードされ、ステップＳ６７で保持されていた１番先頭のエラー情報に対する上書きが行われることになる。【００７０】
なお、請求項７全体は第２の実施例における図２１、２２の処理に相当し、請求項８全体は図２４の処理に相当する。
以上のように第２の実施例においては、マクロブロックライン内で連続しない複数のマクロブロックに対してエラーが発生した場合にも、そのマクロブロックラインに対するエラー隠蔽処理を正しく行うことが可能となる。【００７１】
以上のように本発明においては、動きベクトル情報を可変長データとしてメモリに格納する参照用動きベクトル格納方式において、あるマクロブロックにエラーが発生した場合にすでにメモリに格納されているマクロブロックに対する動きベクトル情報の書き換えのための巻き戻り処理が不必要となり、そのためのメモリアクセスの処理を低減させることが可能となる。また従来においてメモリに書き込まれたエラー隠蔽用データとしての“０”をメモリから読み出す処理も実質的に不必要となり、ダイレクト・モード演算におけるメモリアクセス処理が効率化され、ダイレクト・モードを利用する動画像復号装置の処理効率向上に寄与するところが大きい。
【図１】
2009040873.tif 000003
【図２】
2009040873.tif 000004
【図３】
2009040873.tif 000005
【図４】
2009040873.tif 000006
【図５】
2009040873.tif 000007
【図６】
2009040873.tif 000008
【図７】
2009040873.tif 000009
【図８】
2009040873.tif 000010
【図９】
2009040873.tif 000011
【図１０】
2009040873.tif 000012
【図１１】
2009040873.tif 000013
【図１２】
2009040873.tif 000014
【図１３】
2009040873.tif 000015
【図１４】
2009040873.tif 000016
【図１５】
2009040873.tif 000017
【図１６】
2009040873.tif 000018
【図１７】
2009040873.tif 000019
【図１８】
2009040873.tif 000020
【図１９】
2009040873.tif 000021
【図２０】
2009040873.tif 000022
【図２１】
2009040873.tif 000023
【図２２】
2009040873.tif 000024
【図２３】
2009040873.tif 000025
【図２４】
2009040873.tif 000026
【図２５】
2009040873.tif 000027
【手続補正書】
【提出日】平成21年10月29日(2009.10.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
与えられる可変長データに対してエラーの検出を行い、
エラーが検出されなかった可変長データをメモリ上の予め定められた位置から連続的に格納し、
エラーが検出された場合、前記メモリ上で該エラーが検出された可変長データを格納すべきであった領域に対応して、次にエラーが検出されない可変長データを格納すべき復帰アドレスを含み、前記エラーに対応してエラー隠蔽用データによって代用されるべき可変長データの中で、最も古く前記メモリに格納された最古の可変長データを指定するエラー情報を、前記メモリに格納することを特徴とする可変長データのメモリ格納方法。
【請求項２】
請求項１に記載の方法でメモリに格納された可変長データの出力方法であって、
前記メモリに格納されているエラー情報を参照し、
前記エラーが検出されなかった可変長データのうちで、前記予め定められた位置から前記最古の可変長データの前までの可変長データについては、前記メモリから読み出した値を出力し、
該最古の可変長データから前記復帰アドレスの前のアドレスまでの間でメモリに格納された可変長データ、およびメモリに格納されなかった可変長データについては、該可変長データの値を“０”として出力することを特徴とする可変長データの出力方法。
【請求項３】
前記エラーが検出された時、前記復帰アドレスを含み、前記最古の可変長データを指定するエラー情報を一旦保持し、
予め定められた個数に達するまでの可変長データに対するエラーの検出と、エラーが検出されなかった可変長データの前記メモリへの格納を繰り返し、該定められた個数の可変長データに対するエラー検出を含む処理の終了後に、前記保持されていたエラー情報の前記メモリへの格納を行うことを特徴とする請求項１に記載の可変長データのメモリ格納方法。
【請求項４】
請求項３に記載の方法でメモリに格納された可変長データの出力方法であって、
前記メモリに格納されているエラー情報を参照し、
エラーが検出されなかった可変長データのうちで、前記予め定められた位置から前記最古の可変長データの前まで、および前記復帰アドレス以後の領域に格納された可変長データについては、前記メモリから読み出した値を出力し、
前記最古の可変長データから前記復帰アドレスの前のアドレスまでの間でメモリに格納された可変長データ、およびメモリに格納されなかった可変長データについては、該可変長データの値を“０”として出力することを特徴とする可変長データ出力方法。
【請求項５】
前記予め定められた個数に達するまでの可変長データに対するエラー検出によって新たにエラーが検出された可変長データのメモリへの格納を行わず、前記エラー情報のうちの前記復帰アドレスを、該新たにエラーが検出された可変長データの次にエラーが検出されない可変長データが格納されるべき位置を指定する新たなアドレスに更新することを特徴とする請求項３に記載の可変長データのメモリ格納方法。
【請求項６】
請求項５に記載の方法でメモリに格納された可変長データの出力方法であって、
前記メモリに格納されているエラー情報を参照し、
前記エラーが検出されなかった可変長データのうちで、前記予め定められた位置から前記最古の可変長データの前まで、および前記更新された復帰アドレス以後の領域に格納された可変長データについては、前記メモリから読み出した値を出力し、
前記最古の可変長データから前記更新された復帰アドレスの前のアドレスまでの間でメモリに格納された可変長データ、およびメモリに格納されなかった可変長データについては、該可変長データの値を“０”として出力することを特徴とする可変長データの出力方法。
【請求項７】
前記エラーが検出された時、前記復帰アドレスを含み、前記最古の可変長データを指定するエラー情報を一旦保持し、
さらに与えられる可変長データに対するエラーの検出を行い、エラーが検出された可変長データはメモリに格納せず、エラーのない次の可変長データが検出された時、該次の可変長データを示すデータを前記エラー情報に追加して、該追加後のエラー情報を格納し、
前記復帰アドレスによって指定されるアドレスに次のエラー情報の格納領域を確保した後に、前記次の可変長データをメモリに格納し、
前記与えられる可変長データに対するエラー検出から、前記追加後のエラー情報の前記次のエラー情報格納領域への格納と、さらに前記次のエラー情報格納領域の確保、および前記次の可変長データのメモリへの格納までの処理を繰り返すことを特徴とする請求項１に記載の可変長データのメモリ格納方法。
【請求項８】
請求項７に記載の方法でメモリに格納された可変長データの出力方法であって、
前記メモリ内で前記予め定められた位置の前に格納されている最初のエラー情報を参照し、
前記エラーが検出されなかった可変長データのうちで、前記予め定められた位置から前記最古の可変長データの前までの可変長データについては前記メモリから読み出した値を出力し、
前記最古の可変長データから前記次のエラー情報格納領域の前までの間でメモリに格納された可変長データ、およびメモリに格納されなかった可変長データについては、該可変長データの値を“０”として出力し、
前記次のエラー情報格納領域に格納されているエラー情報の参照から、エラーが検出されなかった可変長データに対するメモリ読み出し値の出力、および可変調データの値を“０”とした出力までの処理を繰り返すことを特徴とする可変長データの出力方法。
【請求項９】
前記可変長データがブロック分割された各ブロックに対応するデータであり、
前記予め定められた位置が複数のブロックによって構成されるブロックライン内の各ブロックに対応する可変長データが格納されるべき固定長の領域の先頭アドレスであることを特徴とする請求項１に記載の可変長データのメモリ格納方法。
【請求項１０】
前記可変長データのメモリ格納方法が、動き補償方式を用いる動画像復号装置によって用いられ、
前記可変長データが、該動き補償方式における参照用動きベクトルのデータであることを特徴とする請求項１に記載の可変長データのメモリ格納方法。
【国際調査報告】
2009040873.tif 000028
2009040873.tif 000029
2009040873.tif 000030
2009040873.tif 000031