JP4355319B2 - 動画像復号化方法 - Google Patents

動画像復号化方法 Download PDF

Info

Publication number
JP4355319B2
JP4355319B2 JP2006014914A JP2006014914A JP4355319B2 JP 4355319 B2 JP4355319 B2 JP 4355319B2 JP 2006014914 A JP2006014914 A JP 2006014914A JP 2006014914 A JP2006014914 A JP 2006014914A JP 4355319 B2 JP4355319 B2 JP 4355319B2
Authority
JP
Japan
Prior art keywords
motion vector
accuracy
shift
encoding
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006014914A
Other languages
English (en)
Other versions
JP2006187025A (ja
Inventor
芳典 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2006014914A priority Critical patent/JP4355319B2/ja
Publication of JP2006187025A publication Critical patent/JP2006187025A/ja
Application granted granted Critical
Publication of JP4355319B2 publication Critical patent/JP4355319B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

本発明は、動画像信号の符号化方法、復号化方法、符号化装置及び復号化装置、特に、動きベクトルの符号化及び復号化技術に関するものである。
動画像の符号化・復号化処理の概要について説明する。動画像の符号化は、一般的に、図13の符号化装置で行われる。符号化の対象となる動画像の1フレームは、図3に示すように、1個の輝度信号(Y信号:61)と2個の色差信号(Cr信号:62, Cb信号:63)で構成されており、色差信号の画像サイズは縦横とも輝度信号の1/2となる。一般のビデオ規格では、動画像の各フレームを小ブロックに分割し、マクロブロックと呼ばれるブロック単位で再生処理を行う。
上記マクロブロックは、図5に示ように、16x16画素の1個のY信号ブロック30と、それと空間的に一致する8x8画素のCr信号ブロック31並びにCb信号ブロック31で構成されている。画像信号の符号化は、上記マクロブロック単位で処理される。符号化には、大きく分けて、イントラ符号化(イントラモード)、と予測符号化(インターモード)とがある。
図13の画像信号の符号化装置において、イントラ符号化の場合は、符号化対象の入力マクロブロック画像201は、DCT符号化ブロックに分割されDCT変換器203で直接DCT203を行い、DCT係数に変換される。各変換係数は量子化器で204され、多重化器206で符号化される。
DCT符号化ブロックサイズは従来の符号化方式では8×8画素が一般的であるが、最近ではMPEG-4 Part 10 (Advanced Video Coding)等で4x4画素サイズによるDCT変換も検討されている。
図6に示すように、各マクロブロックは24個の4x4画素ブロックに分割され、DCT変換器203でそれぞれ16個のDCT係数に変換される。量子化されたDCT係数はの一部は、局部復号器220の逆量子化器207と逆DCT器208で、入力マクロブロックに復号され、フレームメモリ210に合成される。局部復号器220は、後述の復号装置と同様の復号画像を作成する。フレームメモリ210に蓄積された画像は後述の時間方向の予測に用いられる。このイントラ符号化は、前フレームに似通った部分がないマクロブロック(第1符号化フレームも含む)や、DCTに伴う蓄積演算誤差を解消したい部分等に配置される。
インター(予測符号化)符号化の場合は、入力マクロブロック画像201とフレームメモリ210に蓄積されている符号化済みフレームの復号画像(参照フレーム)間の動き補償処理が、動き補償器211で行われる。動き補償とは、参照フレームから対象マクロブロックの内容と似通った部分(一般的には、ブロック内の予測誤差信号の絶対値和あるいは2乗誤差和が小さい部分を選択する)を検索し、その動き量(動きベクトル)を符号化する時間方向の圧縮技術である。
図4に動き補償の処理構造を示す。図4は、太枠で囲んだ現フレーム71の輝度信号ブロック72について、前フレーム73(参照フレーム)上の予測ブロック75と動きベクトル76を示した図である。動きベクトル76は、現フレームの太枠ブロックに対して空間的に同位置に相当する前フレーム上のブロック74(破線)から、前フレーム上の予測ブロック75領域までの移動分を示す (色差信号用の動きベクトル長は、輝度信号の半分とし、符号化はしない)。検出された動きベクトルは、MV予測器215から得られる予測動きベクトル(隣接ブロックの動きベクトルから予測)との間で差分処理された後、多重化器206で符号化される。動き補償により前フレームから抜き出された予測マクロブロック画像213は、現フレームの入力マクロブロック画像201との間で差分器202にて差分処理され、差分マクロブロック画像が生成される。
差分マクロブロック画像は、図6に示すように、24個の4x4画素ブロックに分割され、DCT変換器203でそれぞれ16個のDCT係数に変換される。各DCT係数は、量子化器204にて量子化され、多重化器206で符号化される。インター符号化の場合も、量子化DCT係数を局部復号器220の逆量子化器207と逆DCT器208で、差分マクロブロック画像に復号し、加算器209にて予測マクロブロック画像と加算した後、フレームメモリ210に合成する。なお、ここでは、1マクロブロックで符号化する動きベクトルの数を1本としているが、マクロブロックを更に小ブロックに分割し、小ブロック毎に動きベクトルを算出し符号化する方法が一般的である。例えば、MPEG-4 Part 10 (Advanced Video Coding)では、動き補償を行う際のマクロブロック分割タイプ(輝度成分)を図7として考える。基本はタイプ51〜タイプ54の4種類である。タイプ54は、4個の8×8ブロック54-0〜54-3それぞれについて、更にタイプ54a, 54b, 54c, 54dとイントラ符号化の5種類から選択する。
更に、予測符号化の動き補償方法としては、時間的に過去のフレームの情報を用いて動き補償を行う前方向予測符号化と、時間的に過去と未来のフレームの情報を用いて動き補償を行う双方向予測符号化に分けられる。上記前方向予測符号化の動き補償では、前方予測のみを扱うが、双方向符号化の動き補償では、前方予測の他に、後方予測、双方向予測並びに時間的に未来のフレームにおける動きベクトル情報を利用して双方向から予測を行う直接予測を扱う。
動きベクトルの符号化精度は、整数画素以下の精度まで扱うことが一般的である。例えば、MPEG-4 Part 2のAdvanced Simple Profileでは、1/2画素精度と1/4画素精度がビットデータ毎に選択することが可能となっている。整数画素精度以下の予測値の算出方法については、説明を省くが、1/2画素精度では2タップの線形フィルタ、1/4画素精度では8タップフィルタと2タップフィルタを画素位置に応じて適応的に用いている。また、MPEG-4 Part 10でも1/4画素精度で動きベクトルを表現することが検討されており、6タップフィルタと2タップフィルタを用いて予測値を算出する。このように、長いタップ数のフィルタを用いることにより予測性能が向上する。
全てのマクロブロックに対してイントラ符号化を適用したフレームをI-Picture、前方向予測符号化あるいはイントラ符号化にて構成されるフレームをP-Picture、双方向符号化符号化あるいはイントラ符号化にて構成されるフレームをB-Pictureと呼ぶ。P-PictureあるいはB-Pictureでは、図13のINTRA/INTER判定器214にて、各マクロブロックを予測符号化とイントラ符号化のいずれで行うかを判定し、判定結果218を多重化器206で符号化する。
動画像の符号化信号の復号化は、符号化と逆の手順で行われる。一般的に、図14の動画像復号装置で行われる。
符号解読部501では、入力された符号化データを解析し、動きベクトル関連情報とマクロブロックタイプ情報をMV予測器508に、量子化DCT係数情報を逆量子化器502に振り分ける。マクロブロックタイプがイントラ符号化であった場合には、復号した量子化DCT係数情報を、逆量子化器502と逆DCT器503において、4×4画素ブロック毎に逆量子化・逆DCT処理し、マクロブロック画像を再生する。マクロブロックの予測モードが予測符号化であった場合には、MV予測器508にて復号差分動きベクトルと予測動きベクトルから復号動きベクトルが算出され、動き補償器504に入力される。動き補償器504では、動き量に従って、前フレームの復号画像が蓄積されているフレームメモリ507から予測マクロブロック画像を抜き出す。
次に、予測誤差信号に関する符号化データを、逆量子化器502と逆DCT器503において、4×4画素ブロック毎に、逆量子化・逆DCT処理し、差分マクロブロック画像を再生する。そして、予測マクロブロック画像と差分マクロブロック画像を加算器505にて加算処理し、マクロブロック画像を再生する。再生されたマクロブロック画像は、合成器506にて復号フレーム画像に合成される。また、復号フレーム画像は、次フレームの予測用にフレームメモリ507に蓄積される。
本発明に関連する文献として、特許公開公報(特開平11−46364号公報)がある。この文献では、ブロック単位で符号化・復号化処理を行う動画像の符号化・復号化方法において、数種類の動きベクトル精度を用意し、複数個束ねたブロック単位で動きベクトルの符号化精度を切り換える手段が、記載されている。
従来知られている動画像信号の動き補償符号化では、ブロックに含まれる動きベクトル数が複数種類用意されており、動きベクトルの符号化精度が1/8画素精度のように高い符号化方式が検討されている。しかしながら、動きベクトルの符号量の関係から、ブロックに複数の動きが含まれる場合でも、少ない動きベクトル数で符号化する方法が選択される傾向がある。また、整数画素精度以下の予測画素を長いタップ数のフィルタを用いて生成する場合には、1個の予測ブロックを生成するために用いる参照画像内の画素数が大きくなるというメモリアクセスの問題が発生する。この問題は、特に動き補償を行う際に問題となる。
従って、本発明の目的は、動きベクトルの符号量を削減及び符号化ブロック内のブロック数の増大による動き予測誤差情報の削減ができる動画像信号の符号化方法、復号化方法、符号化装置及び復号化装置を提供することである。
本発明の他の目的は、符号化装置及び復号化装置において、動き補償時メモリアクセス範囲を低減することである。
上記目的を達成するため、本発明は、画像を複数の符号化ブロックに分割し、符号化ブロック内の動きベクトルを隣接位置の動きベクトルから予測し、符号化すべき動きベクトルとその予測動きベクトルより算出される差分動きベクトルをブロック単位で符号化する手順を含む動画像符号化方法において、
動きベクトルを符号化が、(1)差分動きベクトルの精度を数種類用意し、符号化ブロック毎に差分動きベクトルの精度を選定し、選定した精度の情報及びその精度の差分動きベクトルとを符号化する手順をもつ。又は(2)動きベクトルの精度を数種類用意し、符号化ブロック毎に動きベクトルの精度を選定し、選定した精度の情報と、選定した精度に修正した予測動きベクトルと選定した精度の動きベクトルより算出される差分動きベクトルとを符号化する手順をもつ。
ここで、上記(1)及び(2)の場合において、差分動きベクトルの符号化に伴う精度値(以下、mv_shift値とも略称)の決定及び符号化処理は、全てのマクロブロックで行う他、マクロブロックのタイプ(例えば、符号化動きベクトルの数の大小)や周囲の状況(例えば、隣接マクロブロックの状況 )を利用し、特定マクロブロックのmv_shift値の符号化を省略する場合を含む。
上記(2)の場合、動きベクトルの水平成分と垂直成分で異なる精度を割り当て、各成分は割り当てられた精度の動きベクトルから算出された差分ベクトルを符号化するようにしてもよい。
本発明の動画像の復号化は、本発明の動画像符号化による符号を用いて、符号化の手順と逆の手順によって、符号化ブロックの画像再生を行う。即ち、動きベクトルの精度を複数用意し、動きベクトルの水平成分と垂直成分で異なる精度を割り当てる。各成分は該割り当てられた精度に修正し、該修正予測動きベクトルと割り当てられた精度の動きベクトルから算出される差分動きベクトルを符号化する。
さらに、復号化の場合にも、mv_shift値の設定は、復号すべき符号が符号化された処理に対応して行われる。例えば、符号化において、マクロブロックのタイプ、あるいは周囲の状況でmv_shift値が符号化されていない符号の再生においては、復号マクロブロックのタイプ、あるいは周囲の状況でmv_shift値が決定、処理される。
本発明の目的、特徴、符号化装置及び復号化装置の構成は以下の図面を伴う実施例の説明によってさらに明確にされる。
本発明の実施例を説明する前に、以下の説明の理解を容易にするため、符号化装置の多重化器で作成される符号データのデータシンタックスについて説明する。
図1がP-Pictureのデータシンタックス、図2がB-Pictureデータシンタックスの一部(CBP15以降は図1と同じであるため省略)を示す。なお、ここでは、データ(動きベクトル精度情報)13は、データシンタックス内に現れないものとして説明する。また、I-pictureについては、本発明の特徴に含まれないため説明を省略する。
picture header10には画像サイズ、再生時刻等フレームの再生情報に関するデータが含まれる。picture type11は、フレームタイプ情報で、I-Picture, P-Picture, B-Pictureの種別がここで符号化される。MB type12からTcoeff chroma17がマクロブロックデータにあたり、フレーム内のマクロブロック数だけ繰り返される。MB type12では図15の表95 (P-picture)又は表96 (B-Picture)に示されるマクロブロックモードからマクロブロック毎に1つのモードが選択され、符号化される。
SKIPモードは、前フレームの復号画像から空間的に同一位置に相当するマクロブロック画像を切り出しコピーすることを意味する。表内のIntraM×NのM, Nは空間予測を行う際の小ブロックサイズを示す。M×Nは動き補償を行う際の小ブロック単位を示しており、それぞれ図7のモード1〜モード4に対応している。
Directは、直接予測を意味する。Block 1並びにBlock 2は、図7のモード2又はモード3における2個の小ブロックを識別しており、各小ブロックの予測方向がForward (前方予測)、Backward (後方予測)、Bi-directional (双方向予測)のいずれであるかを示す。MB type12で8x8(split)を選択したマクロブロックについては、8x8 Partition 18が発生する。それ以外のマクロブロックモードでは、8x8 Partition 18は発生しない。8x8 Partition 18では、図11の表92 (P-picture)又は図12の表94 (B-Picture)に示される8x8パーティションモードから8x8パーティション毎に1つのモードが選択され、符号化される。表内のIntraは空間予測を示す。M×Nは動き補償を行う際の小ブロック単位を示しており、それぞれ図7のパーティション1〜パーティション4に対応している。Directは、直接予測を意味する。
Predictionは、各小ブロックの予測方向がForward (前方予測)、Backward (後方予測)、Bi-directional (双方向予測)のいずれであるかを示す。MVD14は、P-Pictureにおける差分動きベクトルの符号化データを示す。従って、MB type12がIntraM×Nの場合には、このデータは発生しない。MB type12がM×Nの場合には、MVD14は、MB typeと8×8 Partitionが示すベクトル数だけ繰り返し符号化される。例えば、16×8の場合には、符号化すべき差分動きベクトル数が2個であり、各動きベクトルは水平、垂直の2成分から構成されるため、4個のMVDが連続して符号化される。MVDFW23とMVDBW24は、B-Pictureにおける差分動きベクトルの符号化データを示す。MVDFW23は、MB type 12と8x8 Partition 18が示す前方予測(双方向予測も含む)に伴う動きベクトルを含むマクロブロックである場合に発生する。同様に、MVDBW24は、MB type 12と8x8 Partition 18が示す後方予測(双方向予測も含む)に伴う動きベクトルを含むマクロブロックである場合に発生する。従って、MB type12がIntraM×NあるいはDirectの場合の場合には、このデータは発生しない。MB type12がM×Nであり、前方予測(双方向予測も含む)に伴う動きベクトルが存在する場合には、MVDFW23は、MB typeと8×8 Partitionが示す前方予測(双方向予測も含む)に伴うベクトル数(差分動きベクトル数×2、水平・垂直成分)だけ繰り返し符号化される。同様に、MB type12がM×Nであり、後方予測(双方向予測も含む)に伴う動きベクトルが存在する場合には、MVDBW24は、MB typeと8×8 Partitionが示す後方予測(双方向予測も含む)に伴うベクトル数(差分動きベクトル数×2、水平・垂直成分)だけ繰り返し符号化される。
CBP15は、図6に示される24個のDCTブロックについて、0以外の量子化DCT係数(有意係数)が16個係数に含まれているか否かを示す符号化データである。但し、24個の各DCTブロックについてそれぞれ有意係数の有無情報を符号化すると付加情報が大きくなるため、ここでは、図6に示すように4個のDCTブロックをまとめた8×8ブロック単位で有意係数の有無を符号化するものとする。
Tcoeff luma16は、輝度ブロック40における量子化DCT係数の符号化データを示す。符号化は、4×4ブロック40-0から4x4ブロック40-15まで、番号の小さい順にそれぞれ16個の量子化係数が符号化される。但し、CBPにて有意係数が無いことが示されている8×8ブロックについては、符号化処理が省略される。
Tcoeff chroma17は、輝度ブロック40における量子化DCT係数の符号化データを示す。符号化は、4×4ブロック41-0, 41-2, 41-3, 41-4, 42-0, 42-1, 42-3, 42-4の順にそれぞれ16個の量子化係数が符号化される。但し、CBP15で有意係数が無いことが示されている信号成分については、符号化処理が省略される。
図1と2に示したマクロブロックレベルの符号化データの符号化方法については、1種類の可変長符号表のみを用いるUniversal VLC(UVLC)、固定長符号化と可変長符号化(各符号化要素に異なる符号表を用意)を組み合わせた符号化方法並びに、算術符号化(例えば、非特許文献1参照)等が考えられる。図16の表83がUVLCの構成を示しており、Xnの値は‘0’又は‘1’となる。表84に、実際の可変長符号表の例を示す。算術符号化の具体的な方法としては、各符号の意味を数ビットのバイナリーデータに置き換え、各ビットを各々の0と1の発生確率を示す生起確率モデルに応じて符号化する方法を考える。この方法は、CABAC(Context-based Adaptive Binary Arithmetic Coding)と呼ばれている(Witten et al., ”Arithmetic Coding for Data Compression”, Comm. of the ACM, 30(6), 1987, pp.520-541)。
本発明は、特に、動きベクトルの符号化部/復号化部に特徴をもつ。即ち、図1及び図2のデータMVDシンタックスでMVDprecision13部の処理、図13の符号化装置のMV予測部部215、動き補償部211部、及び図14の復号化装置のMV部508、動き補償部504部の構成並び信号処理方法にの特徴をもつ。他の部分の構成及び信号処理方法は従来の装置、方法と実質的に同じであり、以下本発明の特徴部の実施例について説明する。
<実施例1>
本実施は、動きベクトルの符号化部は、画像を複数の符号化ブロックに分割し、上記符号化ブロックの画像信号及び上記符号化ブロック内の動きベクトルを隣接位置の動きベクトルから予測し、符号化すべき動きベクトルとその予測動きベクトルより算出される差分動きベクトルをブロック単位で符号化する動画像符号化(以下動画像の動き補償符号化と略称)において、差分動きベクトルの精度を数種類用意し、復号化ブロック毎に差分動きベクトルの精度を選定し、選定した精度の情報及びその精度の情報の差分動きベクトルを符号化する方法である。
まず、上記予測動きベクトルの生成を図8を用いて説明する。ここで、動きベクトルを符号化する対象の小ブロックを50とする。小ブロック50では、動きベクトルの水平・垂直成分それぞれについて、隣接位置A, B, Cに位置する3ブロックの動きベクトルを候補としてその中間値を計算し、中間値の動きベクトルを予測動きベクトルとする。但し、符号化順序やマクロブロック位置の関係で位置Cのブロックが符号化前の場合や画像の外に位置する場合には、位置Cの代わりに位置Dに位置するブロックの動きベクトルを候補動きベクトルの1つとして用いる。なお、位置A, B, C, Dのブロックが動きベクトルを持たない場合には、その動きベクトルを0ベクトルとして予測処理を行う。この際、3個の候補ブロックのうち2個が動きベクトルを持たない場合には、残りの1つの候補動きベクトルを予測動きベクトルとする。上述の予測方法は、図7のモード1(51)のブロック51-0, モード4(54)の小ブロック54a-0、54b-0、54b-1、54c-0、54c-2並びに54d-0〜54d-3については、同じ予測方法を用いる。
モード2(52)の2個の小ブロック(52-0, 52-1)、モード3(53)の2個の小ブロック(53-0, 53-1)については、図8に示す矢印の根元に位置するブロックの動きベクトルを予測値とする。なお、いずれのモードにおいても、色差成分用の動きベクトルは符号化せず、輝度成分の動きベクトルを2で割る等して使用する。
本実施例1では、まず、差分動きベクトルの精度の候補を、1/4画素精度、1/2画素精度、1画素精度の3種類とする。MVを1/4画素精度表現の動きベクトル成分を4倍した値、PMVを1/4画素精度表現の予測動きベクトル成分を4倍した値とすると、この表現で、各精度候補に対す
るMVの値は以下のように制限される。
1画素精度:マクロブロック内の全小ブロックにおける(MV-PMV)の値が水平・垂直成分とも4の倍数となるMV。
1/2画素精度:マクロブロック内の全小ブロックにおける(MV-PMV)の値が水平・垂直成分とも2の倍数となるMV。
1/4画素精度:マクロブロック内の全小ブロックにおける(MV-PMV)の値が水平・垂直成分とも1の倍数となるMV。
従って、本方式の効果を符号化特性に反映させるためには動きベクトル推定において、予測誤差信号の絶対値和或いは2乗誤差和に、動きベクトルの符号量の影響を加えた評価関数を用意する。この際、各小ブロックの最適評価値を(MV-PMV)の各精度について算出し、マクロブロック内の全小ブロックの動きベクトル推定処理が終了した後、各精度について小ブロックの評価値の加算値を計算することにより、評価値の総和が小さい精度を差分動きベクトルの精度と決定する。符号化する差分動きベクトルMVDは式(1)で算出される。
MVD = (MV - PMV)>>mv_shift………(1)
式(1)中のmv_shiftは、図9の表81に示す値である。式(1)は、動きベクトル成分MVから予測動きベクトル成分PMVを引いた値を、mv_shiftで示す数だけ右に算術ビットシフトした値が差分動きベクトル成分MVDであることを示す。ここで、動きベクトル成分MVから予測動きベクトル成分PMVを引いた値は1<<mv_shiftの倍数であり、算術右ビットシフト処理した差分動きベクトル成分MVDが1の倍数の値となる。
Picture typeがP-Pictureの場合には、mv_shiftが図1のデータMVD precision13に示す符号化データ要素、MVDがデータMVD14に示す符号化要素として符号化される。Picture typeがB-Pictureの場合には、mv_shiftが図2のデータMVD precision13に示す符号化データ要素、MVDがデータMVDFW23(MVDが前方予測の差分動きベクトルの場合)又はデータMVDBW24(MVDが後方予測の差分動きベクトルの場合)に示す符号化データ要素として符号化される。なお、MVD precisionの符号化は差分動きベクトルの符号化データ(MVD14又は、MVDFW23とMVDBW24)が発生しないマクロブロックでは省略される。具体的には、P-Picture: MB typeがIntraM×N又は、MB typeが8x8 (split)で4個の小ブロックの8x8 partitionが全てintraの場合、B-Picture: MB typeがIntraM×N又はDirectの場合、さらにMB typeが8x8(split)で4個の小ブロックの8x8 partitionが全てintra又はdirectの場合である。
従来例に示したように、符号化方法としては、UVLCや算術符号化等を採用する。図9の表81に示すコードは、UVLCを使用した場合の符号化コードの例である。算術符号化の場合には、例えば符号化MB(図10の7C)の予測動きベクトルの生成値は、直左MB(図10の7A)と直上MB(図10の7B)のmv_shift値から算出される発生確率テーブルに従って符号化する。
復号化側では、復号mv_shift値と復号MVD並びにPMVから、以下の式、
MV = (MVD<<mv_shift) + PMV………(2)
に従って、各動きベクトル成分の復号、即ちMV値を再生(復号化)する。式(2)は、差分動きベクトル成分MVDをmv_shiftで示す数だけ左に算術ビットシフトした値に予測動きベクトル成分PMVを加えた値が復号動きベクトル成分MVになることを示す。この算術左ビットシフト処理により、復号された差分動きベクトル成分MVDは1の倍数から1<<mv_shiftの倍数(符号化側のMV-PMVに対応)となる。この値にPMVを加えることで復号動きベクトル成分MVは元の精度の値に復元される。
次に、差分動きベクトルの精度の候補が、1/8画素精度、1/4画素精度、1/2画素精度、1画素精度の4種類の場合について述べる。MVを1/8画素精度表現の動きベクトル成分を8倍した値、PMVを1/8画素精度表現の予測動きベクトル成分を8倍した値とすると、この表現で、各精度候補に対するMVの値は以下のように制限される。
1画素精度:マクロブロック内の全小ブロックにおける(MV-PMV)の値が水平・垂直成分とも8の倍数となるMV。
1/2画素精度:マクロブロック内の全小ブロックにおける(MV-PMV)の値が水平・垂直成分とも4の倍数となるMV。
1/4画素精度:マクロブロック内の全小ブロックにおける(MV-PMV)の値が水平・垂直成分とも2の倍数となるMV。
1/8画素精度:マクロブロック内の全小ブロックにおける(MV-PMV)の値が水平・垂直成分とも1の倍数となるMV。
動き推定の方法については、1/4画素精度、1/2画素精度、1画素精度の3種類の場合と同じであるため、説明を省略する。差分動きベクトルMVDは式(1)で算出される。ここで、動きベクトル成分MVから予測動きベクトル成分PMVを引いた値は1<<mv_shiftの倍数であり、算術右ビットシフト処理した差分動きベクトル成分MVDが1の倍数の値となり、前述の式(1)で算出される。式(1)中のmv_shiftは、図9の表82に示す値である。
mv_shiftとMVDの符号化方法ついては、差分動きベクトルの精度の候補が、1/4画素精度、1/2画素精度、1画素精度の3種類の場合と同じであるため、説明を省略するが、UVLCを使用した場合の符号化コードは、表81ではなく表82に従うことなる。
復号化側の処理も、差分動きベクトルの精度の候補が、1/4画素精度、1/2画素精度、1画素精度の3種類の場合と同じであり、復号mv_shift値と復号MVD並びにPMVから、前述の式(2)に従って、各動きベクトル成分の復号MV値が再生される。式(2)は、差分動きベクトル成分MVDをmv_shiftで示す数だけ左に算術ビットシフトした値に予測動きベクトル成分PMVを加えた値が復号動きベクトル成分MVになることを示す。この算術左ビットシフト処理により、復号された差分動きベクトル成分MVDは1の倍数から1<<mv_shiftの倍数(符号化側のMV-PMVに対応)となる。この値にPMVを加えることで復号動きベクトル成分MVは元の精度の値に復元される。
<実施例2>
本実施2は、動画像の動き補償符号化において、動きベクトルの精度を複数種類用意し、マクロブロック毎に動きベクトルの精度を選定し、選定した精度情報と、その選定した精度に修正した予測動きベクトルとその選定した精度に修正した符号化動きベクトルから算出される差分動きベクトルを符号化する方法である。
まず、予測動きベクトルと符号化動きベクトルの精度の候補を、1/4画素精度、1/2画素精度、1画素精度の3種類とする。MVを1/4画素精度表現の動きベクトル成分を4倍した値、PMVを1/4画素精度表現の予測動きベクトル成分を4倍した値とすると、この表現で、各精度候補に対するMVの値は以下のように制限される。
1画素精度:マクロブロック内の全小ブロックにおけるMVの値が水平・垂直成分とも4の倍数となるMV。
1/2画素精度:マクロブロック内の全小ブロックにおけるMVの値が水平・垂直成分とも2の倍数となるMV。
1/4画素精度:マクロブロック内の全小ブロックにおけるMVの値が水平・垂直成分とも1の倍数となるMV。
従って、本方式の効果を符号化特性に反映されるためには動きベクトル推定において、予測誤差信号の絶対値和或いは2乗誤差和に、動きベクトルの符号量の影響を加えた評価関数を用意する。この際、各小ブロックの最適評価値をMVの各精度について算出してき、マクロブロック内の全小ブロックの動きベクトル推定処理が終了した後、各精度について小ブロックの評価値の加算値を計算することにより、評価値の総和が小さい精度を差分動きベクトルの精度を決定できる。符号化する差分動きベクトルMVDは以下の式、
MVD = (MV- ((PMV>>mv_shift)<<mv_shift))>>mv_shift………(3)
で算出される。式(3)中のmv_shiftは、図9の表81に示す値である。式(3)は、動きベクトル成分MVから、予測動きベクトル成分PMVをmv_shiftで示す数だけ右に算術ビットシフトのち直ちに左に算術ビットシフトした値を引いた値に対して、さらにmv_shiftで示す数だけ第2の算術右ビットシフトを実施した値が差分動きベクトル成分MVDになることを示す。ここで、予測動きベクトル成分に対する連続する右ビットシフト処理並びに左ビットシフト処理は、予測動きベクトル成分PMVの値をMVと同じ1<<mv_shiftの倍数の値に変換する役割を果たす。また、第2の算術右ビットシフト処理により、差分動きベクトル成分MVDが1の倍数の値となる。
このように、符号化動きベクトルの精度を切り換える方法では、動き推定の際にPMVの精度を考慮する必要はないが、MVDの生成処理の際に、PMV予測動きベクトルの精度をmv_shiftの精度に落とす処理を行う必要がある。但し、式(3)は下記のように簡略化することにより、演算ステップ数を削減できる。回路設計等の実装時に有効である。この式では、動きベクトル成分MVと予測動きベクトル成分PMVを1の倍数の値に変換してから差分処理を実施している。「1の倍数に変換した予測ベクトル成分を1<<mv_shift倍した値」は上式における「1<<mv_shift倍の値に変換した予測動きベクトル成分」と同等であり、また動きベクトル成分MVは1<<mv_shiftの倍数であるため、下記の式を用いることによる情報の欠落は発生しない。
MVD = (MV>>mv_shift)-(PMV>>mv_shift)。………(4)
mv_shiftとMVDのデータシンタックス図1と図2への割り当てと符号化方法については、差分動きベクトルの精度を切り換える方法と同じであるため説明を省略する。
復号化側では、復号mv_shift値と復号MVD並びにPMVから、以下の式、
MV = (MVD<<mv_shift) + ((PMV>>mv_shift)<<mv_shift)………(5)
に従って、各動きベクトル成分の復号MV値を再生する。この式(5)は、差分動きベクトル成分MVDをmv_shiftで示す数だけ左に算術ビットシフトした値に、予測動きベクトル成分PMVをmv_shiftで示す数だけ右に算術ビットシフトのち直ちに左に算術ビットシフトした値を加えた値が復号動きベクトル成分MVになることを示す。ここで、予測動きベクトル成分に対する連続する右ビットシフト処理並びに左ビットシフト処理と、MVDを差分動きベクトル成分mv_shiftで示す数だけ左に算術ビットシフトする処理は、各成分を1<<mv_shiftの倍数の値に変換する役割を果たしている。従って、復号動きベクトル成分MVは元の1<<mv_shiftの倍数となる。なお、式(5)は下記のように簡略化することにより、演算ステップ数を削減できる。回路設計等の実装時に有効である。式(5)では、1の倍数の値に変換した予測動きベクトル成分PMVに復号した差分動きベクトルDMVを加算した値に対して、mv_shiftで示す数だけ左算術ビットシフトを施した値が復号動きベクトル成分MVになることを示す。「1の倍数に変換した予測ベクトル成分を1<<mv_shift倍した値」は上式における「1<<mv_shiftの倍数に変換した予測動きベクトル成分」と同等であり、また差分動きベクトル成分DMVは1の倍数であるため、下記式(6)を用いることによる情報の欠落は発生しない。
MV = (MVD + (PMV>>mv_shift))<<mv_shift………(6)
次に、差分動きベクトルの精度の候補が、1/8画素精度、1/4画素精度、1/2画素精度、1画素精度の4種類の場合について述べる。MVを1/8画素精度表現の動きベクトル成分を8倍した値、PMVを1/8画素精度表現の予測動きベクトル成分を8倍した値とすると、この表現で、各精度候補に対するMVの値は以下のように制限される。
1画素精度:マクロブロック内の全小ブロックにおけるMVの値が水平・垂直成分とも8の倍数となるMV。
1/2画素精度:マクロブロック内の全小ブロックにおけるMVの値が水平・垂直成分とも4の倍数となるMV。
1/4画素精度:マクロブロック内の全小ブロックにおけるMVの値が水平・垂直成分とも2の倍数となるMV。
1/8画素精度:マクロブロック内の全小ブロックにおけるMVの値が水平・垂直成分とも1の倍数となるMV。
動き推定の方法については、1/4画素精度、1/2画素精度、1画素精度の3種類の場合と同じであるため、説明を省略する符号化する。符号化する差分動きベクトルMVDは以下の式、
MVD = (MV- ((PMV>>mv_shift)<<mv_shift))>>mv_shift………(3)
で算出される。式中のmv_shiftは、図9の表82に示す値である。この式は、動きベクトル成分MVから予測動きベクトル成分PMVをmv_shiftで示す数だけ右に算術ビットシフトのち直ちに左に算術ビッビットシフトした値を引いた値に対して、さらにmv_shiftで示す数だけ第2の算術右ビットシフトを実施した値が差分動きベクトル成分MVDになることを示す。ここで、予測動きベクトル成分に対する連続する右ビットシフト処理並びに左ビットシフト処理は、予測動きベクトル成分PMVの値をMVと同じ1<<mv_shiftの倍数の値に変換する役割を果たす。
また、第2の算術右ビットシフト処理により、差分動きベクトル成分MVDが1の倍数の値となる。
mv_shiftとMVDの符号化方法ついては、差分動きベクトルの精度の候補が、1/4画素精度、1/2画素精度、1画素精度の3種類の場合と同じであるため、説明を省略するが、UVLCを使用した場合の符号化コードは、表81ではなく表82に従うことなる。但し、上式は下記のように簡略化することにより、演算ステップ数を削減できる。回路設計等の実装時に有効である。この式では、動きベクトル成分MVと予測動きベクトル成分PMVを1の倍数の値に変換してから差分処理を実施している。「1の倍数に変換した予測ベクトル成分を1<<mv_shift倍した値」は上式における「1<<mv_shiftの倍数に変換した予測動きベクトル成分」と同等であり、また動きベクトル成分MVは1<<mv_shiftの倍数であるため、下記の式を用いることによる情報の欠落は発生しない。
MVD = (MV>>mv_shift)-(PMV>>mv_shift)………(4)
復号化側の処理も、差分動きベクトルの精度の候補が、1/4画素精度、1/2画素精度、1画素精度の3種類の場合と同じであり、復号mv_shift値と復号MVD並びにPMVから、以下の式、
MV = (MVD<<mv_shift) + ((PMV>>mv_shift)<<mv_shift)………(5)
に従って、各動きベクトル成分の復号MV値が再生される。この式は、差分動きベクトル成分MVDをmv_shiftで示す数だけ左に算術ビットシフトした値に、予測動きベクトル成分PMVをmv_shiftで示す数だけ右に算術ビットシフトのち直ちに左に算術ビットシフトした値を加えた値が復号動きベクトル成分MVになることを示す。ここで、予測動きベクトル成分に対する連続する右ビットシフト処理並びに左ビットシフト処理と、MVDを差分動きベクトル成分mv_shiftで示す数だけ左に算術ビットシフトする処理は、各成分を1<<mv_shiftの倍数の値に変換する役割を果たしている。従って、復号動きベクトル成分MVは元の1<<mv_shiftの倍数となる。なお、この式は下記のように簡略化することにより、演算ステップ数を削減できる。回路設計等の実装時に有効である。この式では、1の倍数の値に変換した予測動きベクトル成分PMVに復号した差分動きベクトルDMVを加算した値に対して、mv_shiftで示す数だけ左算術ビットシフトを施した値が復号動きベクトル成分MVになることを示す。「1の倍数に変換した予測ベクトル成分をmv_shift倍した値」は上式における「mv_shiftの倍数に変換した予測動きベクトル成分」と同等であり、また差分動きベクトル成分DMVは1の倍数であるため、下記の式を用いることによる情報の欠落は発生しない。
MV = (MVD + (PMV>>mv_shift))<<mv_shift………(6)
上記実施例1及び2を比較すると、実施例1は実際に符号化する差分動きベクトルの精度を調整するため、実施例2に比較して演算が簡単である。これに対して、実施例2は、符号化すべき動きベクトルの精度を調整するため、各精度を想定した場合の探索画素が予測ベクトルに依存しない。従って、符号化性能のみを追求する場合には実施例1が有効であるが、後述するメモリアクセス削減方法では、実施例2が有効である。
<実施例3>
本実施例3は、mv_shift値の符号化を極力行わずに、ブロックモードに応じて予め決めておく符号化方法及び復号化方法で、マクロブロックの選択率が高い領域での、mv_shift値の符号量の増大防止する方法である。即ち、マクロブロックに伴う動きベクトル数が少ないモードでは、予め規定したデフォルトの動きベクトル精度で差分動きベクトルの符号化並びに復号化処理を行う。この処理により、動きベクトル精度情報の符号化並びに復号化処理を省略する。
例えば、MB typeが16×16のマクロブロックでは、1/4画素精度或いは1/8画素精度で符号化並びに復号化処理を行うように符号化側と復号側で設定し、これらのモードのマクロブロックでは精度情報の符号化・復号化処理を省略する。ここでは、MB typeが16x16のマクロブロックのみを精度情報の符号化・復号化処理を省略するモードとして設定しているが、その対象をさらに拡張できる。例えば、MB typeが16x16, 16x8並びに8x16のマクロブロックを1/4画素精度或いは1/8画素精度で符号化並びに復号化処理を行うように符号化側と復号側で設定することも有効である。また、P-Pictureでは、MB typeが16x16のマクロブロックのみを精度情報の符号化・復号化処理を省略するモードとして設定し、符号化する動きベクトル数が多いB-Pictureでは、MB typeが16x16, 16x8並びに8x16のマクロブロックまでを精度情報の符号化・復号化処理を省略するモードとして設定してもよい。
なお、上記動きベクトル精度のdefault値は、mv_shift値と同様に0-3(1/4 MC typeのときには0-2)の範囲で設定可能であり、ビットストリーム単位或いはフレーム単位で切り換える。この際、default値の符号は、ビットストリーム単位の場合にはデータの始めのヘッダ部、フレーム単位の場合にはpicture headerデータに含まれるものとする。なお、ビットストリーム単位の場合においては、符号化側と復号化側で予め定めておけば、符号化データに含める必要はない。
さらに、図15の表95と表96の替わりに、図11の表91と図12の表93に示すようなmv_shiftの値を規定したマクロブロックタイプを用意することにより、mv_shift値の符号化に伴う付加情報を削減することができる。また、mv_shift値を算術符号化する際に、マクロブロックに含まれる動きベクトル数の基づいて、符号化に用いる確率モデルを適応的に切り換えることで、符号化効率を向上させることができる。なお、ここでは、mv_shiftの切り換え単位をマクロブロック単位としているが、8×8毎に切り換える場合も考えられる。このような処理は、MB_typeに8×8毎に処理するモードと16×16毎に処理するモードを設けることにより実現できる。また、表81又は表82に8x8毎に切り換えるモードを設け、更に4個のmv_shift値を8x8毎に符号化する方法でも実現できる。
またさらに、差分動きベクトル或いは動きベクトルの精度の選択切り換え単位として、フレーム全体で固定にする場合やシーケンス全体で固定にするようにしてもよい。精度の選択切り換え単位を固定することは、符号化/復号化処理を簡略化することになる。従って、実装コストを考慮したシンプルな符号化/復号化方式では、精度の切り換え単位をフレーム単位やシーケンス単位で固定することが有効である。
<実施例4>
、本実施例4は、周囲の状況からシフト値を一意に判定する方法である。即ち、隣接マクロブロックから符号化対象マクロブロックのmv_shift値を予測することにより、mv_shift値の符号量を削減する。例えば、符号化対象マクロブロック(図10のマクロブロック7C)のmv_shift値を、直左のマクロブロック(7A)、直上のマクロブロック(7B)のmv_shift値から予測する。予測方法としては、7Aと7Bのmv_shift値の加算値から予測する方法がある。具体的な利用手段としては、加算値が0であり、7CのMB typeが16x16の場合には、mv_shift値(MVD precision)の符号化を省略し規定値として1/8画素精度或いは1/4画素精度を符号化・復号化側の両者で用い、それ以外の加算値とMB typeの組み合わせの場合には、mv_shift値の符号化を行制御手段がある。なお、この具体例は一例であり、予測に用いる隣接マクロブロックの種類、予測方法、制御を行うMB typeの種類、制御時の場合分け種類等の組み合わせは多種ある。例えば、制御を行うMB typeを2個以下の差分動きベクトルまで拡張したり、加算値の制御ポイントを2以下に拡張したりすることで、mv_shift値の符号量の削減量は大きくなる。また、動きベクトルの予測のような方法で隣接MBのmv_shift値から現MBのmv_shift値を予測し、その差分値を符号化する方法等がある。
上述の実施例の動きベクトルの符号化精度切り換える手段には次のような変形も含まれる。
本実施例では、動きベクトルの符号化精度の候補を1/8画素精度、1/4画素精度、1/2画素精度、1画素精度としているが、これに限定されない。例えば1/16画素精度まで含める場合や、1/2画素精度、1画素精度の2種類とする場合。
また、上記実施例では、動きベクトルの符号化精度情報の符号化をマクロブロック単位で行っているが、複数のマクロブロックグループ毎に動きベクトルの符号化精度情報を切り換える方法。
さらに、上記実施例では、マクロブロックにおける動き補償ブロックの分割モードを図7に示した4種類としているが、本明細書の動きベクトル符号化方法は、動き補償ブロックの分割モードの種類と数が変更されても実施できるため、動きベクトルの符号化ブロック構成は限定されない。
また、上記実施例では、符号化データの符号化方式としてUVLCや算術符号化を説明した、本明細書の動きベクトル符号化方法は、エントロピー符号化の種類に限定されず実施できる。また、UVLCの符号表の構成や算術符号化/復号化の構成の方法も実施例の表には限定されない。
またさらに、本実施例では、16x16, 16x8並びに8x16モードについてmv_shift値のdefault値を利用しているが、このdefault値を8x8(split)の一部のPartitionモードに適用できる。また、実施例では、default値の設定をビットストリーム単位又はフレーム単位としているが、各マクロブロック単位について、異なる値を割り当てもよい。例えば、16x16モードでは、default値を1と設定し、16x8と8x16モードでは、default値を0と設定する方法がある。総括的に言えば、マクロブロックモードや8x8 Partitionモードについて、それぞれ適用する差分動きベクトル(或いは動きベクトル)の符号化精度をフレーム単位或いはシーケンス単位で規定し、符号化伝送すればよい(シーケンス単位の場合には、予め符号化側と復号化側で各モードにおける符号化精度を決めておけば、精度情報の符号化は必要ない)。前述のように、符号化精度の選択切り換え単位を固定することは、符号化/復号化処理を簡略化することになる。default値を規定するモードを増やすことにより、実装コストはさらに低減される。よりシンプルな構成を必要とする符号化/復号化方式では、より多くのモードに対して、符号化精度の切り換え単位を固定することが有効である。
以上は本発明による動画像の符号化方法及び復号化方法の実施例について説明した。本発明による動画像の符号化装置及び復号化装置は、実施例の方法図13の符号化装置については、まず、動き補償器211にMB typeと8x8 Partitionの組み合わせに応じてmv_shift値の符号化をON/OFFする判定処理、mv_shift値を考慮した動き推定処理、mv_shiftを伴うMVD, MVDFW, MVDBWの算出処理並びにmv_shift値を多重化器206に伝える処理が追加される。また、多重化器206にmv_shift値をMVD precisionとして符号化する処理を追加する。図14の復号化装置については、符号解読器501にMB typeと8x8 Partitionの復号値に応じてmv_shift値の復号化をON/OFFする判定処理、MVD precisionをmv_shift値として復号する処理並びにmv_shift値をMV予測器508に伝える処理を加える処理部を設ける。また、MV予測器508にmv_shiftを伴うMVD, MVDFW, MVDBWをMVに再生する処理部を設ける。
図25、図27、図29、図31、図33、図35、図37、図39及び図41は、何れも本発明による動画像の符号化装置の実施例の要部(動きベクトルの符号化部)構成を示すブロック図である。図26、図28、図30、図32、図34、図36、図38、図40及び図42は、それぞれ図25、図27、図29、図31、図33、図35、図37、図39及び図41の符号化装置に対応する本発明による動画像の復号化装置の実施例の要部(動きベクトルの復号化部)構成を示すブロック図である。の実施例の要部(動きベクトルの符号化部)構成を示すブロック図である。
各図において、実質的に同じ機能ブロックについては同一番号を付している。各図の装置の構成、動作は、上記実施例1ないし4の説明によって、容易に実現できるので、上記各実施例との対応のみ示し、詳細な説明は省く。
図25と図26の装置は、それぞれ実施例1の式(1)及び(2)を実行する回路で構成され、シフト(mv_shift)値の決定が外部入力(動きベクトル検出時に求まる)のみによって制御される。MV予測部215は各ブロックの動きベクトルMVを記憶したメモリ101を利用し、予測動きベクトルPMVを作る。減算器102は、これらの差分MV-PMVをえる。右シフト処理部103はMV-PMVを右シフトする。復号側では、符号側の逆処理を行うため、動きベクトルMVを記憶したメモリ101、左シフト処理部113及び加算器112が設けられる。
図27と図28の装置は、それぞれ実施例1の式(1)及び(2)を実行する回路で構成され、シフト(mv_shift)値の決定が外部入力(動きベクトル検出時に求まる)とマクロブロックのタイプ等の条件のいずれかによって決定され、制御される。シフト値選択部104は特定のブロックタイプを選択した場合、mv_shift値を選択し、制御回路105で、該部からのmv_shift値から、ブロックタイプに対応したmv_shift値で右シフト処理部103を処理する。
図29と図30の装置は、それぞれ実施例1のそれぞれ式(1)及び(2)を実行する回路で構成され、シフト(mv_shift)値の決定がマクロブロックのタイプ等の条件のみによって決定され、制御される。
図31と図32の装置は、それぞれ実施例2の式(3)及び(5)を実行する回路で構成され、シフト(mv_shift)値の決定が外部入力(動きベクトル検出時に求まる)のみによって制御される。精度修正処理部106は、式(3)の(PMV>>mv_shift)<<mv_shiftの処理を行う。
図33と図34の装置は、それぞれ実施例2の式(3)及び(5)を実行する回路で構成され、シフト(mv_shift)値の決定が外部入力(動きベクトル検出時に求まる)とマクロブロックのタイプ等の条件のいずれかのよって決定され、制御される。
図35と図36の装置は、それぞれ実施例2の式(3)及び(5)を実行する回路で構成され、シフト(mv_shift)値の決定がマクロブロックのタイプ等のみによって制御される。
図37と図38の装置は、それぞれ実施例2の式(4)及び(6)を実行する回路で構成され、シフト(mv_shift)値の決定が外部入力(動きベクトル検出時に求まる)のみによって制御される。
図39と図40の装置は、それぞれ実施例2の式(4)及び(6)を実行する回路で構成され、シフト(mv_shift)値の決定が外部入力(動きベクトル検出時に求まる)とマクロブロックのタイプ等の条件のいずれかのよって決定され、制御される。
図41と図42の装置は、それぞれ実施例2のそれぞれ式(4)及び(6)を実行する回路で構成され、シフト(mv_shift)値の決定がマクロブロックのタイプ等の条件のいずれかのよって決定され、制御される。
<実施例5>
図18は、実施例5の符号化方法の処理フロー図である。
本実施例5は長いタップ数のフィルタを用いた動き補償でメモリアクセス領域が拡大する問題を解決するため、符号化動きベクトルの精度を切り換える符号化・復号化方法である。
長いフィルタを用いて生成する予測値は、画素精度以下の予測画素のみである。従って、動きベクトルの符号化精度を整数画素に限定することにより、メモリアクセス領域は削減できる。しかし、動きベクトルの符号化精度を整数画素に限定することは、予測性能を低減させる。そこで、本実施例5では、メモリアクセス範囲の拡大が装置実装或いはソフトウェア実装に影響する程度に応じて、画素精度を制限する。特に、動き補償時のブロックサイズが小さい場合についてのみ、動きベクトルの符号化精度を制限する。
メモリアクセス領域の拡大に伴う影響は、ブロックサイズが小さいほど大きくなる。サイズの小さいブロックは本来アクセスする画素数が少ない。そのため、サイズの大きいブロックと小さいブロックを比較すると、元のアクセス範囲に対する拡大アクセス領域の比率は、ブロックサイズが小さいほど大きい。
本実施例の符号化装置方法は、1/4画素精度の動き補償を図7のブロック分割に対して行う場合、図18のように、まずブロックサイズ判別し(処理801)、mv_shift値を選択する。本実施例の場合には、8x8 Partition 2(8x4)と8x8 Partition 3(4x8)では1/2画素精度(処理811)、8x8 Partition 3(4x4)では整数画素精度(処理812)、8x8画素並びにそれ以上の大きなサイズのブロックでは、1/4画素精度(図18 処理813)を選択し、選択されたmv_shiftで、右シフト処理分103、を駆動して動き補償を行う。動きベクトルの符号化時には、8x4と4x8画素サイズのブロックではmv_shiftを1、4x4画素サイズのブロックではmv_shiftを2、それ以外の画素サイズのブロックではmv_shiftを0とする。
また、P-pictureとB-pictureを用いた方式では、B-pictureのみに上記精度切り換えを適用し、P-pictureでは、ブロックサイズに関わらず1/4画素精度で動き補償を行うようにしてもよい。なお、ここでは、整数画素精度で動き補償を行うブロックサイズを4x4のみとしているが、これを、8x4と4x8まで拡張してもよい。この場合、8x4と4x8と4x4画素サイズのブロックではmv_shiftを2、それ以外の画素サイズのブロックではmv_shiftを0とする。
本実施例による動画像の符号化装置及び復号化装置における動きベクトルの符号化部及び復号化部は、それぞれ前記図41及び図42と同様に構成される。
<実施例6>
図19,図45及び図46は,それぞれ本発明の実施例6の符号化方法処理フロー図、符号化装置の要部構成図及び復号装置の要部構成図である。本実施例も長いタップ数のフィルタを用いた動き補償でメモリアクセス領域が拡大する問題を解決するため、動きベクトルの垂直・水平各成分を異なる符号化精度で符号化することにより、メモリアクセス範囲を制限する。
符号化装置のシフト選択部124は、図19のように、動きベクトルが垂直成分か否かをし(処理801)、mv_shiftを選択する。タイプ適応部124は、選択されたmv_shiftで、右シフト処理部103を駆動して動き補償を行う。本実施例では、1/4画素精度の動き補償で、動きベクトルの垂直成分を整数画素精度(処理812)、水平成分を1/4画素精度(処理813)とし、垂直成分を符号化/復号化する際のmv_shiftを2、水平成分を符号化/復号化する際のmv_shiftを0とする。
本実施例のメモリアクセス範囲拡大の影響が大きい動きベクトルの垂直成分の符号化精度を制限する方法は効果が大きい。画像データは、左上から右下に向けてラスタスキャン順でメモリに保存されているのが一般的である。そのため、ある画素から隣接画素にアクセス範囲を広げる場合、水平方向の1画素は1画素分を意味するが、垂直方向の1画素は1ライン分を意味する。従って、垂直方向へのメモリアクセスに伴う工数は、水平方向のそれよりも大きい。さらに、1画素1byteの画素データを、byte単位(1画素)ではなく、word単位(2画素毎)やdword単位(4画素毎)で保存する実装方法では、水平方向へのメモリアクセス範囲の拡大は、word単位或いはdword単位で発生するため、その影響はあまり大きくない。これに対して、垂直方向では1画素分のアクセスであっても、メモリアクセス範囲は必ず拡大される。従って、垂直方向の動きベクトルの符号化精度を制限する方法は、メモリアクセス範囲の縮小という観点で効果的である。
また、実施例5及び実施例6の方法を綜合して、図23のような処理を行うようにしてもよい。即ち、シフト選択部124は、8x4, 4x8並びに4x4画素サイズのブロックについてのみ、動きベクトルの垂直成分を整数画素に制限する。さらに、ブロックサイズに応じて、範囲を制限するベクトル成分を切り替える手段も有効である。
上述のように、メモリアクセス領域の拡大に伴う影響は、ブロックサイズが小さいほど大きいが、これは、ブロックの縦横比率にも言える。つまり、ブロックの縦横サイズの比率が異なる場合には、サイズの小さい成分ほどアクセス範囲拡大の影響は大きくなる。図7のブロック分割で考えると、サイズが4画素の成分に対して制限をかけることが有効と言える。
<実施例7>
図24、図43及び図44は、それぞれ、本発明の実施例7の符号化方法の処理フロー図、符号化装置の要部構成図及び復号装置の要部構成図である。
本実施例は、符号化装置(図43)、復号化装置(図44)のシフト値選択部124は図24の処理フローに示すように、ブロックサイズが8x4(縦x横)のときは水平成分を整数画素精度(mv_shift=2)で垂直成分を1/4画素精度(mv_shift=0)、ブロックサイズが4x8(縦x横)のときは水平成分を1/4画素精度(mv_shift=0)で垂直成分を整数画素精度(mv_shift=2)、ブロックサイズが4x4(縦x横)のときは水平・垂直成分とも整数画素精度(mv_shift=2)とする。なお、予測性能の観点から、8x4と4x8モードの水平・垂直成分の扱いを入れ替えてもよい。これは、サイズが小さい成分ほど精度の高い予測方法が有効という概念に起因する。いずれの方法を適用するかは、メモリアクセス制限の必要性、符号化性能、ビットレート等のアプリケーションによって決定される。
<実施例8>
図20、図47及び図48は、それぞれ、本発明の実施例8の符号化方法処理フロー図、符号化装置の要部構成図及び復号装置の要部構成図である。本実施例は、実施例7において、入力画像がインタレース信号であり、マクロブロックがフレーム構造の場合に、動きベクトルの垂直成分を偶数画素精度に制限する方法である。
図17は、インタレース信号をフレーム構造で符号化/復号化する場合のマクロブロックを示す。図上の実線は奇数フィールド(top field)、破線は偶数フィールド(bottom field)を意味する。図17から、奇数値の動きベクトルは、奇数フィールド上の予測値を参照画像上の偶数フィールドから生成され、偶数フィールド上の予測値を参照画像上の奇数フィールドから生成される。インタレース信号では、奇数フィールドと偶数フィールドは表示時刻が異なるため、奇数値の垂直成分ベクトルは、実際には発生しない。
そこで、本実施例では、入力画像がインタレース信号で、マクロブロックがフレーム構造の場合について動きベクトルの垂直成分を偶数画素精度に制限する。符号化/復号化装置において、垂直成分を符号化/復号化する際のmv_shiftを3(図20 処理803、814)、水平成分を符号化/復号化する際のmv_shiftを0(図20 処理813)とする。このインタレース信号のフレーム構造場合も、図21及び図22の流れ図に示すように、実施例7の方法と組み合わせて、8x4, 4x8並びに4x4画素サイズのブロックについてのみ(図21 処理801)、動きベクトルの垂直成分を整数画素に制限するするようにしてもよい。さらに、インタレース信号の符号化方式としては、フレーム構造、フィールド構造並びにフレーム構造とフィールド構造をマクロブロック毎に切り換える適応方式があり、その方法に応じて動きベクトルの符号化精度の選定方法を変えるようにしてもよい。例えば、インタレース信号とプログレッシブ信号を扱う符号化規格では、フレーム構造の符号化方式は信号走査に関わらず同じ場合がある。この場合には、フレーム構造並びにフィールド構造では、小さいサイズのブロックについて、垂直方向の動きベクトルの符号化精度を整数画素精度に限定して符号化/復号化(図20と図21並びに図22 処理812)し、フレーム構造とフィールド構造をマクロブロック毎に切り換える適応方式では、小さいサイズのブロックについて、フレーム構造では垂直方向の動きベクトルの符号化精度を偶数画素精度に限定し(図20と図21の処理814)、フィールド構造では整数画素精度に限定して符号化/復号化する(図20と図21の処理812)という方法でもよい。なお、この際、フレーム構造ではブロックのサイズに関わらず垂直方向の動きベクトルの符号化精度を偶数画素精度に限定し(図22の処理814)、フィールド構造では小さいサイズのブロックについて整数画素精度に限定して符号化/復号化する(図22 処理801と処理812)という方法でもよい。
実施例7及び8のメモリアクセス範囲低減方式では、mv_shift値の符号化/復号化処理は必要ない。従って、図1、図2におけるMVD Prediction13と図11と図12におけるmv_shiftは必要ない。また、図13において、mv_shift値を動き補償器211から多重化器206に伝える処理は必要ない。さらに、図14において、mv_shift値を符号解読器501からMV予測器508に伝える処理は必要ない。mv_shift値は、予測モードに従ってMV予測器508で決められる。
なお、本実施例8のメモリアクセス範囲低減方式は、符号化動きベクトルと予測動きベクトルの精度を切り換える手段を用いて「ブロックサイズに応じて動きベクトルの符号化精度を整数画素に限定すること」、「動きベクトルの垂直成分の符号化精度を整数画素或いは偶数画素に限定すること」であり、動き補償の精度、用意する動きベクトル符号化精度の種類並びに動きベクトルの符号化精度を切り換えるブロックサイズについては、上記実施例に限定されるものではない。また、動きベクトルの精度を1/2画素精度に限定することでメモリアクセス範囲が低減される動き補償方式では、動きベクトルを整数画素精度ではなく、1/2画素精度に限定する方法も本発明で実現できる。
図1は、前方向予測フレームのデータシンタックスの例を示した図である。 図2は、双方向予測フレームのデータシンタックスの例を示した図である。 図3は、マクロフロック分割を説明する図である。 図4は、動き補償の原理を説明する図である。 図5は、マクロブロックに含まれる有意DCT係数の有無を符号化する際に利用するブロック構成を示す図である。 図6は、DCT処理並びに符号化処理を行うブロック単位を示すマクロブロック構成を示す図である。 図7は、動き補償を行うブロック単位を示す輝度ブロックの構成を示す図である。 図8は、予測動きベクトルの生成を説明する図である。 図9は、動きベクトル精度の符号表の例を示した図である。 図10は、動きベクトル精度の予測方法を説明する図である。 図11は、本発明の実施例によるP-Pictureにおけるマクロブロックタイプの符号表と8x8パーティションタイプの符号表を示す図である。 図12は、本発明の実施例によるB-Pictureにおけるマクロブロックタイプの符号表と8x8パーティションタイプの符号表を示す図である。 図13は、動画像符号化装置の一般的構成を示すブロック図である。 図14は、本動画像復号化装置の一般的構成を示すブロック図である。 図15は、従来法におけるマクロブロックタイプの符号表の例を説明した図である。 図16は、ユニバーサル符号化表の構成例を示した図である。 図17は、フィールド信号におけるフレーム構造のマクロブロックの構成例を示した図である。 図18は、ブロックサイズで動きベクトルの符号化精度を切り換える処理の流れ図である。 図19は、本発明の実施例における動きベクトルの成分で動きベクトルの符号化精度を切り換える処理の流れ図である。 図20は、本発明の実施例における動きベクトルの成分とマクロブロック構成で動きベクトルの符号化精度を切り換える処理の流れ図である。 図21は、本発明の実施例におけるブロックサイズと動きベクトルの成分とマクロブロック構成で動きベクトルの符号化精度を切り換える処理の流れ図である。 図22は、本発明の実施例におけるブロックサイズと動きベクトルの成分とマクロブロック構成で動きベクトルの符号化精度を切り換える処理の流れ図の別例である。 図23は、本発明の実施例におけるブロックサイズと動きベクトルの成分で動きベクトルの符号化精度を切り換える処理の流れ図の例である。 図24は、本発明の実施例におけるブロックサイズと動きベクトルの成分で動きベクトルの符号化精度を切り換える処理の流れ図の別例である。 図25は、本発明による動画像符号化装置の動きベクトルの符号化部の実施例の構成図である。 図26は、本発明による動画像復号化装置の動きベクトルの復号化部の実施例の構成図である。 図27は、本発明による動画像符号化装置の動きベクトルの符号化部の実施例の構成図である。 図28は、本発明による動画像復号化装置の動きベクトルの復号化部の実施例の構成図である。 図29は、本発明による動画像符号化装置の動きベクトルの符号化部の実施例の構成図である。 図30は本発明による動画像復号化装置の動きベクトルの復号号化部の実施例の構成図である。 図31は、本発明による動画像符号化装置の動きベクトルの符号化部の実施例の構成図である。 図32は、本発明による動画像復号化装置の動きベクトルの復号化部の実施例の構成図である。 図33は、本発明による動画像符号化装置の動きベクトルの符号化部の実施例の構成図である。 図34は、本発明による動画像復号化装置の動きベクトルの復号化部の実施例の構成図である。 図35は、本発明による動画像符号化装置の動きベクトルの符号化部の実施例の構成図である。 図36は、本発明による動画像復号化装置の動きベクトルの復号化部の実施例の構成図である。 図37は、本発明による動画像符号化装置の動きベクトルの符号化部の実施例の構成図である。 図38は、本発明による動画像復号化装置の動きベクトルの復号化部の実施例の構成図である。 図39は、本発明による動画像符号化装置の動きベクトルの符号化部の実施例の構成図である。 図40は、本発明による動画像復号化装置の動きベクトルの復号化部の実施例の構成図である。 図41は、本発明による動画像符号化装置の動きベクトルの符号化部の実施例の構成図である。 図42は、本発明による動画像復号化装置の動きベクトルの復号化部の実施例の構成図である。 図43は、本発明による動画像符号化装置の動きベクトルの符号化部の実施例の構成図である。 図44は、本発明による動画像復号化装置の動きベクトルの復号化部の実施例の構成図である。 図45は、本発明による動画像符号化装置の動きベクトルの符号化部の実施例の構成図である。 図46は、本発明による動画像復号化装置の動きベクトルの復号化部の実施例の構成図である。 図47は、本発明による動画像符号化装置の動きベクトルの符号化部の実施例の構成図である。 図48は、本発明による動画像復号化装置の動きベクトルの復号化部の実施例の構成図である。
符号の説明
10:ピクチャーヘッダー、11:ピクチャータイプ、 12:MBタイプ、
13:動きベクトル精度情報、14:差分動きベクトルの符号化データ、
15:CBP、16:量子化DCT係数の符号化データ、17:マクロブロックデータ、、18:パーティション。

Claims (2)

  1. 画像を複数の復号ブロックに分割し、復号ブロックの動きベクトルを隣接ブロックの復号動きベクトルから予測し、復号差分動きベクトルと予測動きベクトルより復号動きベクトルを算出する手順を含む動画像復号化方法であって、
    差分動きベクトルの精度を数種類用意し、復号ブロック毎に差分動きベクトルの精度情報とその精度の差分動きベクトルを復号化し、復号差分動きベクトルの精度を予測動きベクトルと同じ精度に修正した後、精度修正した復号差分動きベクトルと予測動きベクトルから復号ブロックの動きベクトルを算出する手順を有する。
  2. 画像を複数の復号ブロックに分割し、復号ブロックの動きベクトルを隣接ブロックの復号動きベクトルから予測し、復号差分動きベクトルと予測動きベクトルより復号動きベクトルを算出する手順を含む動画像復号化方法であって、
    動きベクトルの精度を数種類用意し、復号ブロック毎に動きベクトルの精度情報とその精度の差分動きベクトルを復号化し、予測動きベクトルの精度を復号精度情報と同じ精度に修正した後、復号差分動きベクトルと精度修正した予測動きベクトルから復号ブロックの動きベクトルを算出する手順をもつ。
JP2006014914A 2002-01-24 2006-01-24 動画像復号化方法 Expired - Fee Related JP4355319B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006014914A JP4355319B2 (ja) 2002-01-24 2006-01-24 動画像復号化方法

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
JP2002014974 2002-01-24
JP2002014974 2002-01-24
JP2002036130 2002-02-14
JP2002036130 2002-02-14
JP2002093541 2002-03-29
JP2002093541 2002-03-29
JP2002267555 2002-09-13
JP2002267555 2002-09-13
JP2002330209 2002-11-14
JP2002330209 2002-11-14
JP2006014914A JP4355319B2 (ja) 2002-01-24 2006-01-24 動画像復号化方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2003563227A Division JP4401783B2 (ja) 2002-01-24 2003-01-24 動画像の符号化方法

Publications (2)

Publication Number Publication Date
JP2006187025A JP2006187025A (ja) 2006-07-13
JP4355319B2 true JP4355319B2 (ja) 2009-10-28

Family

ID=36739713

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006014914A Expired - Fee Related JP4355319B2 (ja) 2002-01-24 2006-01-24 動画像復号化方法

Country Status (1)

Country Link
JP (1) JP4355319B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101742278B (zh) * 2008-11-12 2012-11-07 富士通半导体股份有限公司 获取图像的运动矢量和边界强度的方法和系统
TW201041404A (en) * 2009-03-06 2010-11-16 Sony Corp Image processing device and method
JP2011229190A (ja) * 2011-08-17 2011-11-10 Sharp Corp 動画像符号化装置及び動画像復号装置
CN111741308B (zh) 2014-10-31 2024-03-19 三星电子株式会社 用于对运动矢量进行编码/解码的方法和装置
CN109005407B (zh) 2015-05-15 2023-09-01 华为技术有限公司 视频图像编码和解码的方法、编码设备和解码设备
CN108235007B (zh) * 2016-12-12 2023-06-27 上海天荷电子信息有限公司 各模式使用不同精度同种编码参数的数据压缩方法和装置
WO2020058961A1 (en) * 2018-09-23 2020-03-26 Beijing Bytedance Network Technology Co., Ltd. Modification of motion vector with adaptive motion vector resolution

Also Published As

Publication number Publication date
JP2006187025A (ja) 2006-07-13

Similar Documents

Publication Publication Date Title
JP5042267B2 (ja) 動画像の符号化方法
US7567617B2 (en) Predicting motion vectors for fields of forward-predicted interlaced video frames
KR101083870B1 (ko) 인터레이스형 비디오의 최신 양방향 예측 코딩
US8175159B2 (en) Moving picture signal coding method, decoding method, coding apparatus, and decoding apparatus
JP4355319B2 (ja) 動画像復号化方法
JP4527677B2 (ja) 動画像符号化方法、動画像符号化装置、動画像符号化プログラム
KR20040070176A (ko) 디지털 비디오 콘텐트를 위한 매크로블록 레벨 적응성프레임/필드 코딩
JP2010028220A (ja) 動きベクトル検出装置、動きベクトル検出方法、画像符号化装置及びプログラム
JP2004048522A (ja) 動画像の符号化方法及び復号化方法
WO2020156454A1 (en) Method and apparatus of transform type assignment for intra sub-partition in video coding
KR100774297B1 (ko) 움직임 벡터 복호화 방법 및 그 장치
KR100774298B1 (ko) 움직임 벡터 복호화 방법 및 그 장치
JP2020025308A (ja) 画像符号化方法及び画像復号化方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090303

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090428

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090707

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090731

R150 Certificate of patent (=grant) or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120807

Year of fee payment: 3

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120807

Year of fee payment: 3

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130807

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees