(57)【要約】【課題】動きベクトルの精度の悪化を低減しつつ演算量の増加を抑えて高画質の画像を得る動き補償装置を得ること。【解決手段】入力されるフレームの数をカウントするフレーム数カウンタ部１１と、動きベクトルを縮小する際に、前記フレーム数カウンタ部１１によるカウント数の奇遇に基づいて、当該動きベクトルの値を規定の精度に変換する丸め処理の丸め方向を決定する丸め方向制御部１２と、動きベクトルを縮小し、前記丸め方向制御部１２により決定された丸め方向に基づいて、縮小後の動きベクトルの値に対して丸め処理を行うＭＶ変換処理部１３と、丸め処理後の動きベクトルおよび前記参照画像である過去の復号画像を用いて予測画像を作成し、当該予測画像に基づいて復号画像を作成する復号画像作成部１４と、を備える。【選択図】        図２
2010130351.tif 000002
【特許請求の範囲】
【請求項１】
符号化時と異なるサイズの参照画像を用いて復号処理を行う復号処理装置に適用可能な動き補償装置であって、
入力されるフレームの数をカウントするカウンタ手段と、
動きベクトルを縮小する際に、前記カウンタ手段によるカウント数の奇遇に基づいて、当該動きベクトルの値を規定の精度に変換する丸め処理の丸め方向を決定する丸め方向制御手段と、
動きベクトルを縮小し、前記丸め方向制御手段により決定された丸め方向に基づいて、縮小後の動きベクトルの値に対して丸め処理を行うＭＶ（Motion  Vector）変換処理手段と、
丸め処理後の動きベクトルおよび前記参照画像である過去の復号画像を用いて予測画像を作成し、当該予測画像に基づいて復号画像を作成する復号画像作成手段と、
を備えることを特徴とする動き補償装置。
【請求項２】
符号化時と異なるサイズの参照画像を用いて復号処理を行う復号処理装置に適用可能な動き補償装置であって、
縮小した動きベクトルを縮小前の精度にシフト処理した値と縮小前の動きベクトルの値との差分を算出し、当該差分の累積値を算出する誤差値カウンタ手段と、
動きベクトルを縮小する際に、前記誤差値カウンタ手段が算出した差分の累積値に基づいて、当該動きベクトルの値を規定の精度に変換する丸め処理の丸め方向を決定する丸め方向制御手段と、
動きベクトルを縮小し、前記丸め方向制御手段により決定された丸め方向に基づいて、縮小後の動きベクトルの値に対して丸め処理を行うＭＶ（Motion  Vector）変換処理手段と、
丸め処理後の動きベクトルおよび前記参照画像である過去の復号画像を用いて予測画像を作成し、当該予測画像に基づいて復号画像を作成する復号画像作成手段と、
を備えることを特徴とする動き補償装置。
【請求項３】
符号化時と異なるサイズの参照画像を用いて復号処理を行う復号処理装置に適用可能な動き補償装置であって、
縮小したマクロブロック列単位の動きベクトルを縮小前の精度にシフト処理した値と縮小前の動きベクトルの値との差分を算出し、当該差分の累積値を算出する誤差値カウンタ手段と、
動きベクトルを縮小する際に、前記誤差値カウンタ手段が算出した差分の累積値に基づいて、当該動きベクトルの値を規定の精度に変換する丸め処理の丸め方向を決定する丸め方向制御手段と、
動きベクトルを縮小し、前記丸め方向制御手段により決定された丸め方向に基づいて、縮小後の動きベクトルの値に対して丸め処理を行うＭＶ（Motion  Vector）変換処理手段と、
丸め処理後の動きベクトルおよび前記参照画像である過去の復号画像を用いて予測画像を作成し、当該予測画像に基づいて復号画像を作成する復号画像作成手段と、
を備えることを特徴とする動き補償装置。
【請求項４】
符号化時と異なるサイズの参照画像を用いて復号処理を行う復号処理装置に適用可能な動き補償装置であって、
それぞれ異なるフレームにおいて、縮小したマクロブロック単位の動きベクトルを縮小前の精度にシフト処理した値と縮小前の動きベクトルの値との差分を算出し、各フレームにおける同一のマクロブロックの位置ごとに前記算出した差分を累積して差分の累積値を求める誤差値カウンタ手段と、
動きベクトルを縮小する際に、前記誤差値カウンタ手段が算出した差分の累積値に基づいて、当該動きベクトルの値を規定の精度に変換する丸め処理の丸め方向を決定する丸め方向制御手段と、
動きベクトルを縮小し、前記丸め方向制御手段により決定された丸め方向に基づいて、縮小後の動きベクトルの値に対して丸め処理を行うＭＶ（Motion  Vector）変換処理手段と、
丸め処理後の動きベクトルおよび前記参照画像である過去の復号画像を用いて予測画像を作成し、当該予測画像に基づいて復号画像を作成する復号画像作成手段と、
を備えることを特徴とする動き補償装置。
【請求項５】
符号化時と異なるサイズの参照画像を用いて復号処理を行う復号処理装置に適用可能な動き補償装置であって、
動きベクトルの値を規定の精度に変換する丸め処理として動きベクトルの値を＋方向に丸める場合と−方向に丸める場合の、２つの丸め方向について、縮小した動きベクトルを縮小前の精度にシフト処理した値と縮小前の動きベクトルの値との差分を算出し、当該差分の累積値を算出する誤差値カウンタ手段と、
動きベクトルを縮小する際に、＋方向に丸め処理を行った場合の差分の累積値の絶対値と、−方向に丸め処理を行った場合の差分の累積値の絶対値に基づいて、丸め方向を決定する丸め方向制御手段と、
動きベクトルを縮小し、前記丸め方向制御手段により決定された丸め方向に基づいて、縮小後の動きベクトルの値に対して丸め処理を行うＭＶ（Motion  Vector）変換処理手段と、
丸め処理後の動きベクトルおよび前記参照画像である過去の復号画像を用いて予測画像を作成し、当該予測画像に基づいて復号画像を作成する復号画像作成手段と、
を備えることを特徴とする動き補償装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化時と異なるサイズの参照画像を用いて復号処理を行う際の動き補償装置に関する。
【背景技術】
【０００２】
近年、デジタル放送の普及やデジタル機器の進歩により、高解像度の映像を扱う機会が増えている。デジタル放送ではＨＤ（High  Definition）サイズの番組が放映されており、また、民生用デジタルビデオカメラではフルＨＤ解像度の撮影ができる。ＨＤコンテンツをドットバイドットで表示可能なディスプレイは、高価であり、復号処理装置の性能（メモリ容量、バンド幅、処理能力）も高いものが必要となりコストがかかる。さらに携帯機器で用いる際には、その用途からサイズや消費電力などの厳しい制約もある。
【０００３】
たとえば、携帯機器で高解像度の映像を表示する場合は、下記非特許文献１〜３の規定に基づき検討すると、フレーム全体を復号した後に縮小フィルタをかけて表示サイズを縮小するのではなく、復号処理の段階で縮小フィルタをかけてフレームを縮小し、縮小した参照画像と縮小した動きベクトルを用いて復号処理を行う。このような処理を行うことによって、復号処理装置の性能を抑えてコストを下げることが可能となる。
【０００４】
しかしながら、上記従来の技術によれば、たとえば、横方向の画像サイズを1/2に縮小する場合、参照画像も動きベクトルも横方向に1/2となる。これは動きベクトルの最下位1bit分の精度欠落に相当する。そのため、動き補償を行う場合、参照すべき画素位置がずれ、新たに作られる参照画像に誤差が蓄積し、画面内予測フレームに移る際に画像内の物体が急激に移動するように見える、という問題があった。
【０００５】
また、縮小した参照画像および動きベクトルを用いる場合には、動きベクトルの精度が1/2pelのとき、動きベクトルの1/2化の方法として1/4pel精度に読み替えることにより、動きベクトルの精度を確保することができる。しかしながら、この場合、参照画像の画素を符号化時と異なる1/4pel精度に線形補間する必要がある。そのため、規格で定められた以上の演算量が必要となる、という問題があった。
【０００６】
【非特許文献１】ＩＳＯ／ＩＥＣ  １３８１８−２  １９９５年３月
【非特許文献２】ＩＳＯ／ＩＥＣ  １４４９６−２  １９９９年３月
【非特許文献３】ＩＳＯ／ＩＥＣ  １４４９６−１０  ２００３年５月
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、上記に鑑みてなされたものであって、縮小した参照画像を用いて復号処理を行う場合において、動きベクトルの精度の悪化を低減しつつ、動き補償における演算量の増加を抑えて高画質の画像を得る動き補償装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本願発明の一態様によれば、符号化時と異なるサイズの参照画像を用いて復号処理を行う復号処理装置に適用可能な動き補償装置であって、入力されるフレームの数をカウントするカウンタ手段と、動きベクトルを縮小する際に、前記カウンタ手段によるカウント数の奇遇に基づいて、当該動きベクトルの値を規定の精度に変換する丸め処理の丸め方向を決定する丸め方向制御手段と、動きベクトルを縮小し、前記丸め方向制御手段により決定された丸め方向に基づいて、縮小後の動きベクトルの値に対して丸め処理を行うＭＶ（Motion  Vector）変換処理手段と、丸め処理後の動きベクトルおよび前記参照画像である過去の復号画像を用いて予測画像を作成し、当該予測画像に基づいて復号画像を作成する復号画像作成手段と、を備えることを特徴とする動き補償装置が提供される。
【０００９】
また、本願発明の一態様によれば、符号化時と異なるサイズの参照画像を用いて復号処理を行う復号処理装置に適用可能な動き補償装置であって、縮小した動きベクトルを縮小前の精度にシフト処理した値と縮小前の動きベクトルの値との差分を算出し、当該差分の累積値を算出する誤差値カウンタ手段と、動きベクトルを縮小する際に、前記誤差値カウンタ手段が算出した差分の累積値に基づいて、当該動きベクトルの値を規定の精度に変換する丸め処理の丸め方向を決定する丸め方向制御手段と、動きベクトルを縮小し、前記丸め方向制御手段により決定された丸め方向に基づいて、縮小後の動きベクトルの値に対して丸め処理を行うＭＶ（Motion  Vector）変換処理手段と、丸め処理後の動きベクトルおよび前記参照画像である過去の復号画像を用いて予測画像を作成し、当該予測画像に基づいて復号画像を作成する復号画像作成手段と、を備えることを特徴とする動き補償装置が提供される。
【００１０】
また、本願発明の一態様によれば、符号化時と異なるサイズの参照画像を用いて復号処理を行う復号処理装置に適用可能な動き補償装置であって、縮小したマクロブロック列単位の動きベクトルを縮小前の精度にシフト処理した値と縮小前の動きベクトルの値との差分を算出し、当該差分の累積値を算出する誤差値カウンタ手段と、動きベクトルを縮小する際に、前記誤差値カウンタ手段が算出した差分の累積値に基づいて、当該動きベクトルの値を規定の精度に変換する丸め処理の丸め方向を決定する丸め方向制御手段と、動きベクトルを縮小し、前記丸め方向制御手段により決定された丸め方向に基づいて、縮小後の動きベクトルの値に対して丸め処理を行うＭＶ（Motion  Vector）変換処理手段と、丸め処理後の動きベクトルおよび前記参照画像である過去の復号画像を用いて予測画像を作成し、当該予測画像に基づいて復号画像を作成する復号画像作成手段と、を備えることを特徴とする動き補償装置が提供される。
【００１１】
また、本願発明の一態様によれば、符号化時と異なるサイズの参照画像を用いて復号処理を行う復号処理装置に適用可能な動き補償装置であって、それぞれ異なるフレームにおいて、縮小したマクロブロック単位の動きベクトルを縮小前の精度にシフト処理した値と縮小前の動きベクトルの値との差分を算出し、各フレームにおける同一のマクロブロックの位置ごとに前記算出した差分を累積して差分の累積値を求める誤差値カウンタ手段と、動きベクトルを縮小する際に、前記誤差値カウンタ手段が算出した差分の累積値に基づいて、当該動きベクトルの値を規定の精度に変換する丸め処理の丸め方向を決定する丸め方向制御手段と、動きベクトルを縮小し、前記丸め方向制御手段により決定された丸め方向に基づいて、縮小後の動きベクトルの値に対して丸め処理を行うＭＶ（Motion  Vector）変換処理手段と、丸め処理後の動きベクトルおよび前記参照画像である過去の復号画像を用いて予測画像を作成し、当該予測画像に基づいて復号画像を作成する復号画像作成手段と、を備えることを特徴とする動き補償装置が提供される。
【００１２】
また、本願発明の一態様によれば、符号化時と異なるサイズの参照画像を用いて復号処理を行う復号処理装置に適用可能な動き補償装置であって、動きベクトルの値を規定の精度に変換する丸め処理として動きベクトルの値を＋方向に丸める場合と−方向に丸める場合の、２つの丸め方向について、縮小した動きベクトルを縮小前の精度にシフト処理した値と縮小前の動きベクトルの値との差分を算出し、当該差分の累積値を算出する誤差値カウンタ手段と、動きベクトルを縮小する際に、＋方向に丸め処理を行った場合の差分の累積値の絶対値と、−方向に丸め処理を行った場合の差分の累積値の絶対値に基づいて、丸め方向を決定する丸め方向制御手段と、動きベクトルを縮小し、前記丸め方向制御手段により決定された丸め方向に基づいて、縮小後の動きベクトルの値に対して丸め処理を行うＭＶ（Motion  Vector）変換処理手段と、丸め処理後の動きベクトルおよび前記参照画像である過去の復号画像を用いて予測画像を作成し、当該予測画像に基づいて復号画像を作成する復号画像作成手段と、を備えることを特徴とする動き補償装置が提供される。
【発明の効果】
【００１３】
本発明によれば、動きベクトルを縮小する際に行う丸め処理の方向を、フレーム数の奇遇で決定するため、動きベクトルの精度を維持しつつ、演算量を増やすことなく動きベクトルの誤差の蓄積を低減して高画質の画像を得る、という効果を奏する。
【００１４】
また、本発明によれば、動きベクトルを縮小する際に行う丸め処理の方向を、動きベクトルを縮小した際に発生する誤差の累積値に基づいて決定するため、動きベクトルの精度を維持しつつ、演算量を増やすことなく動きベクトルの誤差の蓄積を低減して高画質の画像を得る、という効果を奏する。
【００１５】
また、本発明によれば、マクロブロックの列を１つの単位とし、丸め方向の変更をマクロブロックの列単位で行うため、さらに細かな制御が可能となる、という効果を奏する。
【００１６】
また、本発明によれば、マクロブロックごとに求めた動きベクトルの誤差を時間的に累積し、丸め方向の変更をマクロブロックごとに行うため、細かな制御が可能となる、という効果を奏する。
【００１７】
また、本発明によれば、フレームごとに動きベクトルを縮小する際に行う丸め処理を＋方向と−方向のそれぞれについて行い誤差の累積値を比較するため、累積誤差値が小さくなる丸め処理の方向を選択できる、という効果を奏する。
【発明を実施するための最良の形態】
【００１８】
以下に添付図面を参照して、この発明にかかる動き補償装置の最良な実施の形態を詳細に説明する。
【００１９】
（第１の実施の形態）
最初に、動画像の復号処理において一般的に行われている処理を簡単に説明する。図１は、動画像の復号処理を行う復号処理装置の構成例を示すブロック図である。復号処理装置１０は、可変長符号復号部１と、逆スキャン部２と、逆量子化部３と、逆ＤＣＴ部４と、フレームバッファ部５と、動き補償部６と、を備える。
【００２０】
復号処理装置１０では、符号化データが入力されると、可変長符号復号部１が、符号化データに対して可変長符号の復号を行い、各種パラメータ，フラグ，動きベクトル，ＤＣＴ係数を取り出す。取り出されたＤＣＴ係数に対して、逆スキャン部２が並び替え処理を行った後、逆量子化部３が逆量子化の処理を行い、さらに、逆ＤＣＴ部４が逆ＤＣＴの処理を行う。
【００２１】
逆ＤＣＴ部４は、画面内予測が行われるフレームについては動き補償を行わないため、後に参照画像とするためフレームバッファ部５へ転送し保存する。画面内予測のフレームは、そのまま復号画像となる。画面間予測を行うフレームについては動き補償を行うため、動き補償部６へ転送する。動き補償部６は、フレームバッファ部５の参照画像と動きベクトルを用いて予測画像を作成し、逆量子化および逆ＤＣＴの処理によって得られる残差を足し合わせて復号画像を得る。復号画像作成後、後に参照画像とするため、この復号画像をフレームバッファ部５へ転送し保存する。
【００２２】
本実施の形態では、符号化時に利用した参照画像とは異なるサイズの参照画像を用いて動き補償を行うため、動き補償を行うまでに参照画像を所望のサイズに変換する。たとえば、画面内予測のフレームを横方向に1/2のサイズに変換する場合、逆ＤＣＴ部４は、逆ＤＣＴ処理を行う際、通常行う8×8の逆ＤＣＴ処理ではなく、高周波成分を０として4×8と次数を減らして逆ＤＣＴ処理を行うことで縮小した画像を得る。逆ＤＣＴ部４は、縮小した画像を参照画像としてフレームバッファ部５へ転送し保存する。以降、参照画像を横方向（x方向）に1/2に縮小する場合ついて説明を行う。なお、動きベクトルの精度は、縮小前（符号化時）の段階で1/2pelとする。
【００２３】
ここで、動き補償部６において、動きベクトルの丸め誤差を低減する処理について説明する。本実施の形態では、動き補償部６に入力されるフレーム数の奇遇に基づいて、動きベクトルの丸め方向を変化させることにより、丸め誤差の偏りを減少する。なお、動きベクトルは、マクロブロック単位とする。
【００２４】
図２は、本実施の形態の動き補償部６の構成例を示すブロック図である。動き補償部６は、フレーム数カウンタ部１１と、丸め方向制御部１２と、ＭＶ（Motion  Vector）変換処理部１３と、復号画像作成部１４と、を備える。フレーム数カウンタ部１１は、入力されたフレーム（逆ＤＣＴ処理後のフレーム）数をカウントする。丸め方向制御部１２は、カウントされたフレーム数の奇遇に基づいて動きベクトルの丸め方向を決定する。ＭＶ変換処理部１３は、丸め方向制御部１２の決定に基づいて動きベクトルの丸め処理を行い、1/2化した動きベクトルを出力する。復号画像作成部１４は、参照画像と動きベクトルを用いて予測画像を作成し、さらに逆ＤＣＴ処理を行った残差を予測画像に加算して復号画像を得る。
【００２５】
つづいて、動き補償部６が行う動き補償処理をフローチャートに基づいて詳細に説明する。図３は、本実施の形態の動き補償処理を示すフローチャートである。まず、フレーム数カウンタ部１１は、入力されるフレームが、新たに復号処理を開始するフレームかどうかを確認する（ステップＳ１１）。新たに復号処理を開始する場合（ステップＳ１１：Ｙｅｓ）、フレーム数を初期化（frameNum=0）して（ステップＳ１２）、フレーム数をカウントする（ステップＳ１３）。新たに開始するフレームではない場合は（ステップＳ１１：Ｎｏ）、フレーム数を初期化せずに、フレーム数をカウントする（ステップＳ１３）。
【００２６】
つぎに、丸め方向制御部１２が、フレーム数カウンタ部１１がカウントしたフレーム数の下位1bitの奇遇を見て、動きベクトルを1/2にする際の丸め方向（roundXDirection）を決定する（ステップＳ１４〜Ｓ１６）。具体的には、フレーム数が奇数（frameNum&1）の場合（ステップＳ１４：Ｙｅｓ）、「roundXDirection=1」として1/4pel精度の動きベクトルを＋方向に丸める決定をする（ステップＳ１５）。フレーム数が偶数の場合（ステップＳ１４：Ｎｏ）、「roundXDirection=0」として1/4pel精度の動きベクトルを−方向に丸める決定をする（ステップＳ１６）。
【００２７】
ここで、動きベクトルの丸め処理について説明する。図４は、動きベクトルの丸め処理を示す図である。本来、1/2pel精度を持つ動きベクトルを1/2化すると、1/4pel精度を持つことになるが、これを1/2pel精度に補正する場合の丸め方向を示すものである。たとえば、動きベクトル（mvx）=3.5を1/2化すると、mvx=1.75になる。このmvx=1.75を＋方向に丸めるとは、1.75の値を2.0にすることに相当する（図４（ａ））。一方、mvx=1.75を−方向に丸めるとは、1.75の値を1.5にすることに相当する（図４（ｂ））。このような丸め処理を行うことにより、1/4(0.25)pel精度の動きベクトルを、1/2(0.5)pel精度に補正することができ、符号化時と同一の精度を確保できる。
【００２８】
つぎに、ＭＶ変換処理部１３が、丸め方向制御部１２の決定に基づいて、符号データを復号した際に得られた動きベクトル（mvx）に対して下位1bitの丸め処理を行って1/2化した動きベクトル（mvxh）を出力する（ステップＳ１７）。ここで用いる動きベクトル（mvxh）は、予測画像および復号画像を作成する際に使用する。このとき、出力する1/2化後の動きベクトル（mvxh）は、本来の動きベクトル（mvx）の値に対して丸め方向制御部１２で決定した「roundXDirection」の値を加算後に、右方向へ1bitシフトする処理を行うことにより求めることができる。すなわち、「mvxh=（mvx+roundXDirection）>>1」として表すことができる。
【００２９】
最後に、復号画像作成部１４は、ＭＶ変換処理部１３から出力された1/2化後の動きベクトル（mvxh）と、フレームバッファ部５に保存されている参照画像を用いて予測画像を作成する。さらに、逆ＤＣＴが行われた残差を予測画像に加算することによって復号画像を得る（ステップＳ１８）。予測画像および復号画像を作成する方法は従来と同様である。
【００３０】
上記処理を行うことにより、動きベクトルを1/2化する際に特定の方向に誤差が蓄積しないため、参照画像においても誤差が蓄積しない。そのため、画面間予測フレームから画面内予測フレームに移る際に、画像内の物体が急激に移動するように見える状態を回避することができる。
【００３１】
以上説明したように、本実施の形態では、動きベクトルを縮小する際に行う丸め処理の方向を、フレーム数の奇遇で決定することとした。これにより、縮小した参照画像を用いて動き補償を行う場合でも、動きベクトルの精度を維持しつつ、演算量を増やすことなく動きベクトルの誤差の蓄積を低減して高画質の画像を得ることが可能となる。
【００３２】
なお、丸め方向制御部１２は、フレーム数が奇数の場合に＋方向に丸め、偶数の場合に−方向に丸める決定をしたが、これに限定するものではなく、丸める方向をそれぞれ逆に設定してもよい。
【００３３】
（第２の実施の形態）
本実施の形態では、フレーム内のマクロブロックごとの動きベクトルの丸め誤差を累積し、累積した誤差値が許容範囲を超えた場合に動きベクトルの丸め方向を変化させて丸め誤差の偏りを低減する。第１の実施の形態と異なる部分について説明する。
【００３４】
図５は、本実施の形態の動き補償部６ａの構成例を示すブロック図である。動き補償部６ａは、誤差値カウンタ部２１と、丸め方向制御部１２ａと、ＭＶ変換処理部１３と、復号画像作成部１４と、を備える。誤差値カウンタ部２１は、1/2化する前の動きベクトルの値と、1/2化後の動きベクトルを左方向へ1bitシフトした値との差分（誤差）を求め、誤差の累積値を算出する。丸め方向制御部１２ａは、誤差の累積値と許容誤差範囲との比較結果に基づいて動きベクトルの丸め方向を決定する。なお、本実施の形態では、図１における動き補償部６を上記動き補償部６ａに置き換えて、復号処理装置１０を構成する。
【００３５】
ここで、動き補償部６ａが行う動き補償処理をフローチャートに基づいて詳細に説明する。図６は、本実施の形態の動き補償処理を示すフローチャートである。まず、誤差値カウンタ部２１は、画面内予測フレームがデコードされているかどうか確認する（ステップＳ２１）。デコードされている場合（ステップＳ２１：Ｙｅｓ）、復号処理の開始時に丸め方向と累積誤差値の初期化を行う（ステップＳ２２）。ここでは、初期設定として「roundXDirection=0」とし、−方向に丸める設定とする。また、横方向に1/2化した動きベクトル（mvxh)を左方向へ1bitシフトした値と、1/2化する前の元の動きベクトル（mvx）の値との差分（誤差）を累積した累積誤差値（totalError）の初期化（totalError=0）を行う。デコードされていない場合（ステップＳ２１：Ｎｏ）、ステップＳ２２の処理を省略する。
【００３６】
誤差値カウンタ部２１は、動き補償の処理開始後は、仮の処理として初期設定で設定された丸め方向（−方向）に基づいて1/2化した動きベクトル（mvxh）を求め、さらに、mvxhを左方向へ1bitシフトした値（mvxh<<1）を求める。その後、1/2化後の動きベクトル（mvxh）を左方向へ1bitシフトした値（mvxh<<1）と、1/2化する前の元の動きベクトル（mvx）の値との差分（mvx-（mvxh<<1））をマクロブロックの動きベクトルごとに算出し、求めた差分を加算して累積誤差値（totalError）を算出する（ステップＳ２３）。なお、丸め方向制御部１２ａから丸め方向を変更する通知があった場合、通知に基づいて上記処理（ステップＳ２３）における丸め方向を変更する。
【００３７】
つぎに、丸め方向制御部１２ａが、誤差値カウンタ部２１が算出したtotalErrorと、あらかじめ設定された許容誤差範囲との比較を行う（ステップＳ２４，Ｓ２６）。許容誤差範囲とは、マクロブロックごとに求めた動きベクトルの誤差を累積した場合において、画像サイズや最大動きベクトル本数等に基づいて設定可能な許容できる誤差の範囲である。
【００３８】
具体的には、totalErrorの方が許容誤差範囲の上限よりも大きい場合（ステップＳ２４：Ｙｅｓ）、「roundXDirection=1」として丸め方向を＋方向に変更する（ステップＳ２５）。totalErrorが許容誤差範囲の上限以下の場合は（ステップＳ２４：Ｎｏ）、さらに、totalErrorの方が許容誤差範囲の下限よりも小さいかどうか比較する（ステップＳ２６）。totalErrorの方が許容誤差範囲の下限よりも小さい場合は（ステップＳ２６：Ｙｅｓ）、「roundXDirection=0」として丸め方向を−方向に変更する（ステップＳ２７）。totalErrorが許容誤差範囲の下限以上の場合は（ステップＳ２６：Ｎｏ）、丸め方向は変更せずに現状維持とする（ステップＳ２８）。
【００３９】
丸め方向制御部１２ａは、決定した動きベクトルの丸め方向を誤差値カウンタ部２１およびＭＶ変換処理部１３へ通知する。なお、丸め方向を変更するタイミングは、フレーム単位とする（totalErrorが許容誤差範囲から外れた場合、次に復号処理を行うフレームから丸め方向を変更する）。
【００４０】
ＭＶ変換処理部１３が行う1/2化した動きベクトル（mvxh）を出力する処理（ステップＳ１７）、および復号画像作成部１４が行う復号画像の作成処理（ステップＳ１８）については、第１の実施の形態と同様である。
【００４１】
すなわち、本実施の形態では、動きベクトルを1/2化する際、各フレームにおいて特定の方向に所定の誤差が蓄積した場合に、動きベクトルの丸め方向を変更する。そのため、画面内予測フレームに移る際に画像内の物体が急激に移動するように見える状態を回避することができる。
【００４２】
以上説明したように、本実施の形態では、動きベクトルを縮小する際に行う丸め処理の方向を、動きベクトルを縮小した際に発生する誤差の累積値に基づいて決定することとした。これにより、縮小した参照画像を用いて動き補償を行う場合でも、動きベクトルの精度を維持しつつ、演算量を増やすことなく動きベクトルの誤差の蓄積を低減して高画質の画像を得ることが可能となる。
【００４３】
なお、上記処理では、誤差値カウンタ部２１が累積誤差値を算出するため動きベクトルを1/2化する処理を行っているが、これに限定するものではない。たとえば、ＭＶ変換処理部１３が1/2化した動きベクトルを誤差値カウンタ部２１が利用してもよい。また、動きベクトルはマクロブロック単位に限定するものではなく、サブマクロブロック等、他の領域を単位とする動きベクトルとしてもよい。
【００４４】
（第３の実施の形態）
本実施の形態では、画像サイズを縮小した方向と直交する方向に並ぶマクロブロックの列を１つの単位として動きベクトルの丸め誤差を累積し、累積した誤差値が許容範囲を超えた場合に動きベクトルの丸め方向を変化させて丸め誤差の偏りを低減する。第１，２の実施の形態と異なる部分について説明する。
【００４５】
図７は、本実施の形態の動き補償部６ｂの構成例を示すブロック図である。動き補償部６ｂは、列誤差値カウンタ部３１と、丸め方向制御部１２ｂと、ＭＶ変換処理部１３と、復号画像作成部１４と、を備える。列誤差値カウンタ部３１は、1/2化する前の動きベクトルの値と、1/2化後の動きベクトルを左方向へ1bitシフトした値との差分（誤差）を求め、誤差の累積値を算出する。本実施の形態では、１列に並ぶマクロブロックを１つの単位として扱う。画像の横方向（x方向）を1/2のサイズに変換する場合、直交する方向に並ぶマクロブロックは列方向（y方向）となる。丸め方向制御部１２ｂは、誤差の累積値と列許容誤差範囲との比較結果に基づいて動きベクトルの丸め方向を決定する。なお、本実施の形態では、図１における動き補償部６を上記動き補償部６ｂに置き換えて、復号処理装置１０を構成する。
【００４６】
ここで、動き補償部６ｂが行う動き補償処理をフローチャートに基づいて詳細に説明する。図８は、本実施の形態の動き補償処理を示すフローチャートである。まず、列誤差値カウンタ部３１は、画面内予測フレームがデコードされているかどうか確認する（ステップＳ２１）。デコードされている場合（ステップＳ２１：Ｙｅｓ）、復号処理の開始時に丸め方向と列累積誤差値の初期化を行う（ステップＳ３１）。ここでは、初期設定として「roundXDirection=0」とし、−方向に丸める設定とする。また、横方向に1/2化した動きベクトル（mvxh)を左方向へ1bitシフトした値と、1/2化する前の元の動きベクトル（mvx）の値との差分（誤差）を累積した列累積誤差値（totalErrorL）の初期化（totalErrorL=0）を行う。本実施の形態で扱う動きベクトルは、マクロブロックの列を１つの単位とした場合、このマクロブロック列における動きベクトルをいう。デコードされていない場合は（ステップＳ２１：Ｎｏ）、ステップＳ３１の処理を省略する。
【００４７】
列誤差値カウンタ部３１は、動き補償の処理開始後は、１つのマクロブロック列について、仮の処理として初期設定で設定された丸め方向（−方向）に基づいて1/2化した動きベクトル（mvxh）を求め、mvxhを左方向へ1bitシフトした値（mvxh<<1）を求める。その後、1/2化後の動きベクトル（mvxh）を左方向へ1bitシフトした値（mvxh<<1）と、1/2化する前の元の動きベクトル（mvx）の値との差分（mvx-（mvxh<<1））を算出し、求めた差分を加算して列累積誤差値（totalErrorL）を算出する（ステップＳ３２）。なお、丸め方向制御部１２ｂから丸め方向を変更する通知があった場合、この通知に基づいて上記ステップＳ３２の処理における丸め方向を変更する。
【００４８】
つぎに、丸め方向制御部１２ｂが、列誤差値カウンタ部３１により算出されたtotalErrorLと、あらかじめ設定された列許容誤差範囲との比較を行う（ステップＳ３３，Ｓ３４）。列許容誤差範囲とは、マクロブロックの列単位で求めた動きベクトルの誤差を累積した場合において、画像サイズや最大動きベクトル本数等に基づいて設定可能な許容できる誤差の範囲である。
【００４９】
具体的には、totalErrorLの方が列許容誤差範囲の上限よりも大きい場合（ステップＳ３３：Ｙｅｓ）、「roundXDirection=1」として丸め方向を＋方向に変更する（ステップＳ２５）。totalErrorLが列許容誤差範囲の上限以下の場合は（ステップＳ３３：Ｎｏ）、さらに、totalErrorLの方が列許容誤差範囲の下限よりも小さいかどうか比較する（ステップＳ３４）。totalErrorLの方が列許容誤差範囲の下限よりも小さい場合は（ステップＳ３４：Ｙｅｓ）、「roundXDirection=0」として丸め方向を−方向に変更する（ステップＳ２７）。totalErrorLが列許容誤差範囲の下限以上の場合は（ステップＳ３４：Ｎｏ）、丸め方向は変更せずに現状維持とする（ステップＳ２８）。
【００５０】
丸め方向制御部１２ｂは、上記で決定した動きベクトルの丸め方向を列誤差値カウンタ部２１およびＭＶ変換処理部１３へ通知する。なお、丸め方向を変更するタイミングは、マクロブロックの列単位とする（列累積誤差値が列許容誤差範囲から外れた場合、次に復号処理を行うマクロブロック列から丸め方向を変更する）。
【００５１】
つぎに、丸め方向制御部１２ｂは、フレーム内の全てのマクロブロック列について上記処理（ステップＳ３２〜Ｓ２８）を終了したか確認する（ステップＳ３５）。終了していない場合は（ステップＳ３５：Ｎｏ）、上記処理（ステップＳ３２〜Ｓ２８）を全てのマクロブロック列が終了するまで繰り返し行う。終了した場合は（ステップＳ３５：Ｙｅｓ）、丸め制御部１２ｂの決定に基づき、ＭＶ変換処理部１３が動きベクトルの1/2化の処理を行う（ステップＳ１７）。
【００５２】
ＭＶ変換処理部１３による1/2化した動きベクトル（mvxh）を出力する処理（ステップＳ１７）、および復号画像作成部１４による復号画像の作成処理（ステップＳ１８）については、第１の実施の形態と同様である。
【００５３】
すなわち、本実施の形態では、動きベクトルを1/2化する際、フレーム内のマクロブロックの列を１つの単位とし、特定の方向に所定の誤差が蓄積した場合に、動きベクトルの丸め方向を変更する。そのため、画面内予測フレームに移る際に画像内の物体が急激に移動するように見える状態を回避することができる。
【００５４】
以上説明したように、本実施の形態では、マクロブロックの列を１つの単位とし、丸め方向の変更をマクロブロックの列単位で行うこととした。これにより、第２の実施の形態よりも、さらに細かな制御（丸め方向の変更）が可能となる。
【００５５】
なお、復号処理の開始時に行う初期化のタイミングを画面内予測フレームをデコードした場合について説明したが、これに限定するものではない。たとえば、復号処理を行うフレームが変わるごとに初期化を行ってもよい。
【００５６】
（第４の実施の形態）
本実施の形態では、マクロブロックごとの動きベクトルの丸め誤差を時間的に累積し、累積した誤差値が許容範囲を超えた場合に動きベクトルの丸め方向を変化させて丸め誤差の偏りを低減する。第１〜３の実施の形態と異なる部分について説明する。
【００５７】
図９は、本実施の形態の動き補償部６ｃの構成例を示すブロック図である。動き補償部６ｃは、ＭＢ（Macro  Block：マクロブロック)誤差値カウンタ部４１−１，４１−２，…，４１−ｍと、丸め方向制御部１２ｃと、ＭＶ変換処理部１３と、復号画像作成部１４と、を備える。ＭＢ誤差値カウンタ部４１−１，４１−２，…，４１−ｍは、それぞれ、1/2化する前の動きベクトルの値と、1/2化後の動きベクトルを左方向へ1bitシフトした値との差分（誤差）を求め、同一位置にあるマクロブロックごとに、各フレームで求めた誤差を加算して累積値を算出する。本実施の形態では、一例として、フレーム内のマクロブロックの数はｍ個とし、動き補償部６ｃは、マクロブロックの数（ｍ個）だけＭＢ誤差値カウンタ部を備える。丸め方向制御部１２ｃは、誤差の累積値とＭＢ許容誤差範囲との比較結果に基づいて動きベクトルの丸め方向を決定する。なお、本実施の形態では、図１における動き補償部６を上記動き補償部６ｃに置き換えて、復号処理装置１０を構成する。
【００５８】
ここで、動き補償部６ｃが行う動き補償処理をフローチャートに基づいて詳細に説明する。図１０は、本実施の形態の動き補償処理を示すフローチャートである。まず、各ＭＢ誤差値カウンタ部４１−１，４１−２，…，４１−ｍは、画面内予測フレームがデコードされているかどうか確認する（ステップＳ２１）。デコードされている場合（ステップＳ２１：Ｙｅｓ）、復号処理の開始時に丸め方向とＭＢ累積誤差値の初期化を行う（ステップＳ４１）。ここでは、初期設定として「roundXDirection=0」とし、−方向に丸める設定とする。また、横方向に1/2化した動きベクトル（mvxh)を左方向へ1bitシフトした値と、1/2化する前の元の動きベクトル（mvx）の値との差分（誤差）を累積したＭＢ累積誤差値（totalError［i］、1≦i≦m）の初期化（totalError［i］=0）を行う。totalError［i］はｉ番目のマクロブロックに対応するＭＢ誤差値カウンタ部４１−ｉにおけるＭＢ累積誤差値とする。デコードされていない場合は（ステップＳ２１：Ｎｏ）、ステップＳ４１の処理を省略する。
【００５９】
ＭＢ誤差値カウンタ部４１−ｉは、動き補償の処理開始後は、仮の処理として初期設定で設定された丸め方向（−方向）に基づいて1/2化した動きベクトル（mvxh）を求め、mvxhを左方向へ1bitシフトした値（mvxh<<1）を求める。その後、1/2化後の動きベクトル（mvxh）を左方向へ1bitシフトした値（mvxh<<1）と、1/2化する前の元の動きベクトル（mvx）の値との差分（mvx-（mvxh<<1））をマクロブロックの動きベクトルごとに算出し、求めた差分をマクロブロックの位置に対応するＭＢ誤差値カウンタ部４１−ｉに加算してＭＢ累積誤差値（totalError［i］）を算出する（ステップＳ４２）。なお、丸め方向制御部１２ｃから丸め方向を変更する旨の通知があった場合、この通知に基づいて上記ステップＳ４２の処理における丸め方向を変更する。
【００６０】
つぎに、丸め方向制御部１２ｃが、ＭＢ誤差値カウンタ部４１−ｉが算出したtotalError［i］と、あらかじめ設定された各マクロブロック位置におけるＭＢ許容誤差範囲との比較を行う（ステップＳ４３，Ｓ４４）。ＭＢ許容誤差範囲とは、マクロブロックごとに求めた動きベクトルの誤差をマクロブロックの位置ごとに累積した場合において、画像サイズや最大動きベクトル本数等に基づいて設定可能な許容できる誤差の範囲である。ＭＢ許容誤差範囲は、マクロブロックの位置ごとに変えてもよいし、全て同じでもよい。
【００６１】
具体的には、totalError［i］の方がＭＢ許容誤差範囲の上限よりも大きい場合（ステップＳ４３：Ｙｅｓ）、「roundXDirection=1」として丸め方向を＋方向に変更する（ステップＳ２５）。totalError［i］がＭＢ許容誤差範囲の上限以下の場合は（ステップＳ４３：Ｎｏ）、さらに、totalError［i］の方がＭＢ許容誤差範囲の下限よりも小さいかどうか比較する（ステップＳ４４）。totalError［i］の方がＭＢ許容誤差範囲の下限よりも小さい場合は（ステップＳ４４：Ｙｅｓ）、「roundXDirection=0」として丸め方向を−方向に変更する（ステップＳ２７）。totalError［i］がＭＢ許容誤差範囲の下限以上の場合は（ステップＳ４４：Ｎｏ）、丸め方向は変更せずに現状維持とする（ステップＳ２８）。
【００６２】
丸め方向制御部１２ｃは、上記で決定した動きベクトルの丸め方向をＭＢ誤差値カウンタ部４１−ｉおよびＭＶ変換処理部１３へ通知する。なお、丸め方向の変更は、マクロブロックごとに行う（ＭＢ累積誤差値がＭＢ許容誤差範囲から外れた場合、次に復号処理を行うフレームの同一場所にあるマクロブロックから丸め方向を変更する）。
【００６３】
つぎに、丸め方向制御部１２ｃは、フレーム内の全てのマクロブロックについて上記処理（ステップＳ４２〜Ｓ２８）を終了したか確認する（ステップＳ４５）。終了していない場合は（ステップＳ４５：Ｎｏ）、上記処理（ステップＳ４２〜Ｓ２８）を全てのマクロブロック（ｍ個）が終了するまで繰り返し行う。終了した場合は（ステップＳ４５：Ｙｅｓ）、丸め制御部１２ｃの決定に基づき、ＭＶ変換処理部１３が動きベクトルの1/2化の処理を行う（ステップＳ１７）。なお、全てのマクロブロックの処理の終了を待つことなく、上記処理（ステップＳ４２〜Ｓ２８）が終了したマクロブロックから、ＭＶ変換処理部１３が動きベクトルの1/2化の処理を行う（ステップＳ１７）こととしてもよい。
【００６４】
ＭＶ変換処理部１３による1/2化した動きベクトル（mvxh）を出力する処理（ステップＳ１７）、および復号画像作成部１４による復号画像の作成処理（ステップＳ１８）については、第１の実施の形態と同様である。
【００６５】
すなわち、本実施の形態では、動きベクトルを1/2化する際、同一位置のマクロブロックごとに時間的に誤差を累積し、特定の方向に所定の誤差が蓄積した場合に、動きベクトルの丸め方向を変更する。そのため、画面内予測フレームに移る際に画像内の物体が急激に移動するように見える状態を回避することができる。
【００６６】
以上説明したように、本実施の形態では、マクロブロックごとに求めた動きベクトルの誤差を、別のフレームで求めた同一位置にあるマクロブロックごとに累積し、マクロブロックごとに丸め処理の方向を決定することとした。これにより、マクロブロック単位で丸め方向を変更できるため、細かな制御（丸め方向の変更）が可能となる。
【００６７】
また、この場合においても、動きベクトルの精度を維持しつつ、演算量を増やすことなく動きベクトルの誤差の蓄積を低減して高画質の画像を得ることが可能となる。
【００６８】
なお、同一位置における時間的な誤差を累積する単位はマクロブロックに限定するものではなく、第３の実施の形態のように、マクロブロック列を単位としてもよい。
【００６９】
（第５の実施の形態）
本実施の形態では、フレーム全体におけるマクロブロックごとの動きベクトルの丸め誤差を累積し、丸め誤差が小さくなる丸め方向を選択する。第１の実施の形態と異なる部分について説明する。
【００７０】
図１１は、本実施の形態の動き補償部６ｄの構成例を示すブロック図である。動き補償部６ｄは、フレーム誤差値カウンタ部５１−１，５１−２と、丸め方向制御部１２ｄと、ＭＶ変換処理部１３と、復号画像作成部１４と、を備える。フレーム誤差値カウンタ部５１−１は、＋方向に丸め処理を行った場合において、1/2化する前の動きベクトルと、1/2化後の動きベクトルを左方向へ1bitシフトした値との差分（誤差）を求め、誤差の累積値を算出する。フレーム誤差値カウンタ部５１−２は、−方向に丸め処理を行った場合において、1/2化する前の動きベクトルと、1/2化後の動きベクトルを左方向へ1bitシフトした値との差分（誤差）を求め、誤差の累積値を算出する。丸め方向制御部１２ｄは、＋方向に丸めた場合の累積誤差値と−方向に丸めた場合の累積誤差値を比較して小さい方を選択する。なお、本実施の形態では、図１における動き補償部６を上記動き補償部６ｄに置き換えて、復号処理装置１０を構成する。
【００７１】
ここで、動き補償部６ｄが行う動き補償処理をフローチャートに基づいて詳細に説明する。図１２は、本実施の形態の動き補償処理を示すフローチャートである。まず、フレーム誤差値カウンタ部５１−１は、復号処理の開始時に、横方向に1/2化した動きベクトル（mvxh)を左方向へ1bitシフトした値と、1/2化する前の元の動きベクトル（mvx）との差分（誤差）を累積した＋方向の累積誤差値（totalError1）の初期化（totalError1=0）を行う（ステップＳ５１）。同様に、フレーム誤差値カウンタ部５１−２は、差分（誤差）を累積した−方向の累積誤差値（totalError0）の初期化（totalError0=0）を行う（ステップＳ５１）。なお、上記初期化の処理は、画面間予測を行うフレームが変わるごとに行う。
【００７２】
フレーム誤差値カウンタ部５１−１は、動き補償の処理開始後は、仮の処理として＋方向に丸め処理をして1/2化した動きベクトル（mvxh）を求め、mvxhを左方向へ1bitシフトした値（mvxh<<1）を求める。その後、1/2化後の動きベクトル（mvxh）を左方向へ1bitシフトした値（mvxh<<1）と、1/2化する前の元の動きベクトル（mvx）との差分（mvx-（mvxh<<1））をマクロブロックの動きベクトルごとに算出し、求めた差分を加算して＋方向の累積誤差値（totalError1）を算出する（ステップＳ５２）。同様に、フレーム誤差値カウンタ部５１−１は、−方向に丸め処理を行った場合における−方向の累積誤差値（totalError0）を算出する（ステップＳ５２）。
【００７３】
つぎに、丸め方向制御部１２ｄが、フレーム誤差値カウンタ部５１−１により算出されたtotalError1とフレーム誤差値カウンタ部５１−２により算出されたtotalError0の比較を行う（ステップＳ５３）。具体的には、totalError1の絶対値の方がtotalError0の絶対値よりも大きい（＋方向の累積誤差値の絶対値の方が大きい）場合（ステップＳ５３：Ｙｅｓ）、「roundXDirection=0」として丸め方向を−方向にする（ステップＳ１６）。totalError1の絶対値がtotalError0の絶対値以下（−方向の累積誤差値の絶対値の方が大きいまたは同じ）の場合は（ステップＳ５３：Ｎｏ）、「roundXDirection=1」として丸め方向を＋方向にする（ステップＳ１５）。丸め方向制御部１２ｄは、決定した動きベクトルの丸め方向を、ＭＶ変換処理部１３へ通知する。
【００７４】
ＭＶ変換処理部１３が行う1/2化した動きベクトル（mvxh）を出力する処理（ステップＳ１７）、および復号画像作成部１４が行う復号画像の作成処理（ステップＳ１８）については、第１の実施の形態と同様である。
【００７５】
すなわち、本実施の形態では、動きベクトルを1/2化する際、フレームごとに＋方向に丸め処理を行った場合と−方向に丸め処理を行った場合のそれぞれについて誤差を算出し、累積した誤差値が小さい方の丸め方向を選択する。そのため、フレームごとに最適な丸め方向を選択でき、画面内予測フレームに移る際に画像内の物体が急激に移動するように見える状態を回避することができる。
【００７６】
以上説明したように、本実施の形態では、各フレームにおいて、動きベクトルを縮小する際に行う丸め処理を＋方向と−方向のそれぞれについて行い、発生する誤差の累積値を比較することとした。これにより、フレームごとに、確実に累積誤差値が小さくなる丸め処理の方向を選択することができる。
【００７７】
なお、動きベクトルはマクロブロック単位に限定するものではなく、サブマクロブロック等、他の領域を単位とする動きベクトルとしてもよい。
【００７８】
なお、上記で説明した各実施の形態における動き補償処理のほか、各実施の形態の動き補償処理を組み合わせることも可能である。また、丸め方向を変更する単位をマクロブロックおよび列ではなく、スライスや画面領域単位とすることも可能である。
【００７９】
また、各実施の形態では画像を1/2化する場合の処理について説明したが、これに限定するものではなく、その他の縮尺についても適用可能である。さらに、各実施の形態では横方向（x方向）に縮小する処理について説明したが、他の方向に縮小する処理についても適用可能である。
【００８０】
また、画面内予測フレームの用語を用いて説明したがISO/IEC14496-10（H.264）に限定するものではなく、ISO/IEC13818-2（MPEG2）やISO/IEC14496-2（MPEG4）において、イントラフレームと読み替えて適用することも可能である。
【図面の簡単な説明】
【００８１】
【図１】復号処理装置の構成例を示すブロック図である。
【図２】第１の実施の形態の動き補償部の構成例を示すブロック図である。
【図３】第１の実施の形態の動き補償処理を示すフローチャートである。
【図４】動きベクトルの丸め処理を示す図である。
【図５】第２の実施の形態の動き補償部の構成例を示すブロック図である。
【図６】第２の実施の形態の動き補償処理を示すフローチャートである。
【図７】第３の実施の形態の動き補償部の構成例を示すブロック図である。
【図８】第３の実施の形態の動き補償処理を示すフローチャートである。
【図９】第４の実施の形態の動き補償部の構成例を示すブロック図である。
【図１０】第４の実施の形態の動き補償処理を示すフローチャートである。
【図１１】第５の実施の形態の動き補償部の構成例を示すブロック図である。
【図１２】第５の実施の形態の動き補償処理を示すフローチャートである。
【符号の説明】
【００８２】
１  可変長符号復号部、２  逆スキャン部、３  逆量子化部、４  逆ＤＣＴ部、５  フレームバッファ部、６，６ａ，６ｂ，６ｃ，６ｄ  動き補償部、１０  復号処理装置、１１  フレーム数カウンタ部、１２，１２ａ、１２ｂ，１２ｃ，１２ｄ  丸め方向制御部、１３  ＭＶ変換処理部、１４  復号画像作成部、２１  誤差値カウンタ部、３１  列誤差値カウンタ部、４１−１，４１−２，…，４１−ｍ  ＭＢ誤差値カウンタ部、５１−１，５１−２  フレーム誤差値カウンタ部。
【図１】
2010130351.tif 000003
【図２】
2010130351.tif 000004
【図３】
2010130351.tif 000005
【図４】
2010130351.tif 000006
【図５】
2010130351.tif 000007
【図６】
2010130351.tif 000008
【図７】
2010130351.tif 000009
【図８】
2010130351.tif 000010
【図９】
2010130351.tif 000011
【図１０】
2010130351.tif 000012
【図１１】
2010130351.tif 000013
【図１２】
2010130351.tif 000014