JP2006352238A - 画像処理装置、画像処理方法及びプログラム - Google Patents

画像処理装置、画像処理方法及びプログラム Download PDF

Info

Publication number
JP2006352238A
JP2006352238A JP2005172309A JP2005172309A JP2006352238A JP 2006352238 A JP2006352238 A JP 2006352238A JP 2005172309 A JP2005172309 A JP 2005172309A JP 2005172309 A JP2005172309 A JP 2005172309A JP 2006352238 A JP2006352238 A JP 2006352238A
Authority
JP
Japan
Prior art keywords
macroblock
image data
circuit
dimensional
address
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.)
Pending
Application number
JP2005172309A
Other languages
English (en)
Inventor
Yusuke Sagawa
裕祐 佐川
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP2005172309A priority Critical patent/JP2006352238A/ja
Publication of JP2006352238A publication Critical patent/JP2006352238A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】 ISO/IEC14496−10に規定されている演算を行う装置、方法及びプログラムよりも少ない回路構成・サイクル数でco−locatedマクロブロックアドレスを求めることができる画像処理装置、画像処理方法及びプログラムを提供する。
【解決手段】 2次元マクロブロック位置生成回路433が、カレントマクロブロックアドレスCurrMbAddrを基にカレントマクロブロックの2次元マクロブロック位置(MBx、MBy)を生成し、2次元マクロブロック位置生成回路433が生成したMByを基にco−locatedマクロブロック位置算出回路434がMBycolを算出し、2次元マクロブロック位置生成回路433が生成したMBxとco−locatedマクロブロック位置算出回路434が算出したMBycolとを基にマクロブロックアドレス変換回路435がco−locatedマクロブロックアドレスmbAddrColに変換する。
【選択図】 図7

Description

本発明は、画像データを符号化するために用いられる画像処理装置、画像処理方法及びプログラムに関する。
近年、画像データをデジタルデータとして取り扱い、圧縮する技術が、情報の通信、放送、蓄積などの目的で重要になっている。こうした技術には、例えば、MPEG(Moving Picture Experts Group)等の規格が挙げられる。
更に、圧縮効率を上げた技術として、H.264/AVC(Advanced Video Coding)と呼ばれる規格が提唱され、実用化されている。
MPEG2やMPEG4のBピクチャは双方向予測ピクチャ(Bi-directional predictive picture)のことであり、原画像データから見て前方1枚と後方1枚の参照画像データを参照して、予測を行う。しかし、H.264/AVCのBピクチャは、双予測ピクチャ(Bi-predictive picture)のことであり、H.264/AVCでは任意の2枚の参照画像データを参照して予測を行う。
H.264/AVCのBピクチャによる符号化では、画面内予測(イントラ予測)、L0予測(List 0 Prediction:主として前方予測に用いる予測)、L1予測(List 1 Prediction:主として後方予測に用いる予測)、双予測(L0とL1の2つの動き情報から、2つの参照画像データの平均値を用いる予測)、ダイレクトモードの5つの符号化モードを利用可能である。
ダイレクトモードは、動き情報を符号化済みブロックの動き情報から予測生成する符号化モードであり、圧縮効率がよい符号化モードである。
MPEG4においてもダイレクトモードは存在し、図1のように、B−ピクチャのカレントマクロブロック(原画像データが含むマクロブロック)とI・PまたはS−ピクチャ中の空間的な位置が一致するマクロブロック(co−locatedマクロブロック)の動きベクトルを利用する。MPEG4では、カレントマクロブロックの属するピクチャとco−locatedマクロブロックの属するピクチャ(参照画像データ)の構造は同一であり、そのためco−locatedマクロブロックのアドレス値はカレントマクロブロックのアドレス値と同一である。
しかし、H.264/AVCにおいては、図2に示すMB−AFF(Macroblock-Adaptive Frame-Field Coding:マクロブロック適応型フレーム/フィールド符号化)モードのように、カレントマクロブロックの属するピクチャの構造とco−locatedマクロブロックの属するピクチャの構造が異なる場合が存在するので、co−locatedマクロブロックのアドレス値の算出方法が複雑になっている。
上述したco−locatedマクロブロックアドレスの算出方法は、ISO/IEC14496−10で規定されており、図3に示すように、カレントピクチャ(原画像データ)とco−locatedマクロブロックを含むピクチャ(参照画像データ)のピクチャ構造の組み合わせによる場合分けと、除算や%演算(剰余演算)を含む複雑な演算が必要になる。
結果として、図4に示すように複雑かつ大規模な装置が必要になり、またサイクル数が増え符号化に時間がかかるといった不利益があった。図4において、PicCodingStruct(CurrPic)はカレントピクチャ(原画像データ)の構造を示す値、PicCodingStruct(colPic)はco−locatedマクロブロックを有するピクチャ(参照画像データ)の構造を示す値、mb_field_decoding_flagはH.264/AVCのシンタックス要素であり、当該マクロブロックペア(この場合カレントマクロブロックペア)がフィールドモードである時1となり、フレームモードである時0となるフラグ、fieldDecodingFlagは、co−locatedマクロブロックがフィールドモードである時1となり、フレームモードである時0となるフラグである。
本発明は、上述した不利益を解消するため、2次元画像領域内に規定された複数のブロックの各々の動きベクトルを生成し動き補償を行う画像処理装置、画像処理方法及びプログラムを提供することを目的とする。
上記の目的を達成するため、第1の発明の画像処理装置は、2次元画像領域内に規定された複数のブロックの各々の動きベクトルを生成し動き補償を行う画像処理装置であって、参照画像データ内のマクロブロックアドレスを、処理対照画像データ内のマクロブロックの2次元位置情報を基に算出する演算手段と、前記処理対象画像データ内のマクロブロックアドレスと、前記演算手段が算出した前記参照画像データ内の前記マクロブロックアドレスとを使用して、前記処理対象画像データの動きベクトルを算出する動きベクトル算出手段とを有する。
好適には、本発明の画像処理装置における前記処理対象画像データ内のマクロブロックの前記2次元位置情報は、前記処理対象画像データ内のマクロブロックの水平マクロブロック位置と垂直マクロブロック位置とからなる。
好適には、本発明の画像処理装置における前記演算手段は、前記処理対象データ内のマクロブロックの前記2次元位置情報を生成する2次元マクロブロック位置生成手段と、前記2次元マクロブロック位置生成手段が生成した前記処理対象データ内のマクロブロックの前記2次元位置情報を基に、前記参照ブロック内のマクロブロックの2次元位置情報を算出する参照マクロブロック位置算出手段と、前記参照マクロブロック位置算出手段が算出した前記参照ブロック内のマクロブロックの前記2次元位置情報を、前記参照ブロック内のマクロブロックアドレスに変換する参照マクロブロックアドレス変換手段とを有する。
更に好適には、本発明の画像処理装置における前記参照画像データ内のマクロブロックの前記水平マクロブロック位置は、前記処理対象画像データ内のマクロブロックの前記水平マクロブロック位置と等しい。
更に好適には、本発明の画像処理装置は、前記処理対象画像データと前記参照先画像データのピクチャ構造の組み合わせによって、前記演算手段に入力する値を切り替える入力値切り替え手段を更に有する。
第2の発明の画像処理方法は、2次元画像領域内に規定された複数のブロックの各々の動きベクトルを生成し動き補償を行う画像処理方法であって、参照画像データ内のマクロブロックアドレスを、処理対照画像データ内のマクロブロックの2次元位置情報を基に算出する第1の工程と、前記処理対象画像データ内のマクロブロックアドレスと、前記第1の工程において算出された前記参照画像データ内の前記マクロブロックアドレスとを使用して、前記処理対象画像データの動きベクトルを算出する第2の工程とを有する。
好適には、本発明の画像処理方法における前記第1の工程は、前記処理対象データ内のマクロブロックの前記2次元位置情報を生成する第3の工程と、前記第3の工程において生成された前記処理対象データ内のマクロブロックの前記2次元位置情報を基に、前記参照ブロック内のマクロブロックの2次元位置情報を算出する第4の工程と、前記第4の工程において算出された前記参照ブロック内のマクロブロックの前記2次元位置情報を基に、前記参照ブロック内のマクロブロックアドレスに変換する第5の工程とを有する。
第3の発明のプログラムは、2次元画像領域内に規定された複数のブロックの各々の動きベクトルを生成し動き補償を行うコンピュータが実行するプログラムであって、参照画像データ内のマクロブロックアドレスを、処理対照画像データ内のマクロブロックの2次元位置情報を基に算出する第1の手順と、前記処理対象画像データ内のマクロブロックアドレスと、前記第1の手順において算出された前記参照画像データ内の前記マクロブロックアドレスとを使用して、前記処理対象画像データの動きベクトルを算出する第2の手順を前記コンピュータに実行させる。
本発明によれば、ISO/IEC14496−10に規定されている演算を行う装置、方法及びプログラムよりも少ない回路構成・サイクル数でco−locatedマクロブロックアドレスを求めることができる画像処理装置、画像処理方法及びプログラムを提供することができる。
以下、本発明の実施形態の画像処理装置、画像処理方法及びプログラムが適用される通信システム1について説明する。
なお、本実施形態におけるピクチャは、1水平列及び1垂直列あたりのマクロブロック数が255以内のピクチャを想定している。
なお、本実施形態のマクロブロックは本発明のブロック及びマクロブロックに、本実施形態の動きベクトルMVは本発明の動きベクトルに、本実施形態の参照画像データは本発明の参照画像データに、本実施形態の原画像データは本発明の処理対象画像データに、本実施形態のco−locatedマクロブロックは本発明の参照画像データ内のマクロブロックに、本実施形態のカレントマクロブロックは本発明の処理対象画像データ内のマクロブロックに、本実施形態の2次元マクロブロック位置は本発明の2次元位置情報に、本実施形態の水平マクロブロック位置は本発明の水平マクロブロック位置に、本実施形態の垂直マクロブロック位置は本発明の垂直マクロブロック位置に、それぞれ対応している。
また、co−locatedマクロブロックアドレス算出回路432は本発明の演算手段に、本実施形態の動きベクトル生成回路436は本発明の動きベクトル算出手段に、本発明の2次元マクロブロック位置生成回路433は本発明の2次元マクロブロック位置生成手段に、本実施形態のco−locatedマクロブロック位置算出回路434は本発明の参照マクロブロック位置算出手段に、本実施形態のマクロブロックアドレス変換回路435は本発明の参照マクロブロックアドレス変換手段に、それぞれ対応している。本実施形態のセレクタ4344、4345、4352及び4356は、本発明の入力値切り替え手段の一例である。
また、本実施形態のプログラムは本発明のプログラムに対応している。
また、本実施形態のステップST21、ステップST22及びステップST23は、本発明の第1の工程の一例であり、本実施形態のステップST24は本発明の第2の工程に、本実施形態のステップST21は本発明の第3の工程に、本実施形態のステップST22は本発明の第4の工程に、本実施形態のステップST23は本発明の第5の工程に、それぞれ対応している。
図5は、本発明の実施形態に係わる通信システム1の概念図である。
図5に示すように、通信システム1は、送信側に設けられた符号化装置2と、受信側に設けられた復号装置3とを有する。
通信システム1では、送信側の符号化装置2において、離散コサイン変換やカルーネン・レーベ変換などの直交変換と動き補償によって圧縮したフレーム画像データ(ビットストリーム)を生成し、当該フレーム画像データを変調した後に、衛星放送波、ケーブルTV網、電話回線網、携帯電話回線網等の伝送媒体を介して送信する。
受信側では、受信した画像信号を復調した後に、上記変調時の直交変換の逆変換と動き補償によって伸張したフレーム画像データを生成して利用する。
なお、上記伝送媒体は、光ディスク、磁気ディスク及び半導体メモリ等の記録媒体であってもよい。
復号装置3は、符号化装置2の符号化に対応した復号を行う。
図6は、図5に示す符号化装置2のブロック図である。
図6に示すように、符号化装置2は、例えば、A/D変換回路22、画面並べ替え回路23、演算回路24、直交変換回路25、量子化回路26、可逆符号化回路27、バッファ28、逆量子化回路29、逆直交変換回路30、フレームメモリ31、レート制御回路32、加算回路33、デブロックフィルタ34、イントラ予測回路41、動き予測・補償回路43及び選択回路44を有する。
本実施形態は、動き予測・補償回路43の処理に特徴を有している。
以下、符号化装置2の各構成要素について説明する。
A/D変換回路22は、入力されたアナログの輝度信号Y、色差信号Pb、Prから構成される原画像信号をデジタルの画像信号S22に変換し、これを画面並べ替え回路23に出力する。
画面並べ替え回路23は、A/D変換回路22から入力された原画像信号内のフレーム画像信号を、そのピクチャタイプI、P、BからなるGOP(Group of Pictures)構造に応じて、符号化する順番に並べ替えた原画像データ(フレーム画像データ)S23を演算回路24及び動き予測・補償回路43に出力する。
演算回路24は、原画像データS23と、選択回路44から入力された予測画像データPIとの差分を示す画像データS24を生成し、これを直交変換回路25に出力する。
直交変換回路25は、画像データS24に離散コサイン変換やカルーネン・レーベ変換等の直交変換を施して画像データ(例えばDCT係数信号)S25を生成し、これを量子化回路26に出力する。
量子化回路26は、レート制御回路32から入力された量子化スケールで、画像データS25を量子化して変換係数S26を生成し、これを可逆符号化回路27及び逆量子化回路29に出力する。
可逆符号化回路27は、変換係数S26を可変長符号化或いは算術符号化し、画像データS27としてバッファ28に格納する。
また、レート制御回路32が、原画像データS23と、バッファ28から読み出した画像データS27を基に、量子化回路26における量子化レートを制御する。
バッファ28に格納された画像データは、変調等された後に送信される。
逆量子化回路29は、変換係数S26を逆量子化した信号を生成し、画像データS29として逆直交変換回路30に出力する。
逆直交変換回路30は、逆量子化回路29から入力された画像データS29に、直交変換回路25における直交変換の逆変換を施して生成した画像データS30を加算回路33に出力する。
加算回路33は、逆直交変換回路30から入力された画像データS30と、選択回路44から入力された予測画像データPIとを加算して再構成画像データを生成し、これをデブロックフィルタ34に出力する。
デブロックフィルタ34は、加算回路33から入力された再構成画像データのブロック歪みを除去した画像データを、参照画像データREFとしてフレームメモリ31に書き込む。
なお、フレームメモリ31には、例えば、動き予測・補償回路43による動き予測・補償処理、ならびにイントラ予測回路41におけるイントラ予測処理の対象となっている原画像データS23の再構成画像データが、処理を終了したマクロブロックMBを単位として順に書き込まれる。
イントラ予測回路41は、例えば、予め規定された4×4、16×16等の複数のサイズのブロックデータを単位として、イントラ予測符号化を行い、予測データPIと、原画像データS23と予測データPIとの差分DIFとを選択回路44に出力する。
動き予測・補償回路43は、原画像データS23内のカレントマクロブロックアドレスと、参照画像データ内のco-locatedマクロブロックアドレスとを基に動きベクトルMVを生成し、動きベクトルMVを基に更に予測画像データPIと、原画像データS23と予測データPIとの差分DIFとを生成し選択回路44に出力する。
co-locatedマクロブロックアドレスはカレントマクロブロックアドレスを基に算出される。co-locatedマクロブロックアドレスの算出方法については後述する。
選択回路44は、イントラ予測回路41及び動き予測・補償回路43から出力された差分DIFを比較し、イントラ予測回路41から出力された差分DIFの方が小さいと判断した場合はイントラ予測回路41の出力した予測データPIを、動き予測・補償回路43から出力された差分DIFの方が小さいと判断した場合は動き予測・補償回路43の出力した予測データPIを選択して演算回路24に出力する。
以下、動き予測・補償回路43が行うco-locatedマクロブロックアドレスの算出方法の一例について説明する。
動き予測・補償回路43は、動きベクトルMVを生成するために、co−locatedマクロブロックの位置情報を算出する。
図7は、動き予測・補償回路43のブロック図である。
図7のように、動き予測・補償回路43は、例えば、CPU431、co−locatedマクロブロックアドレス算出回路432、動きベクトル生成回路436及びメモリ437からなる。
CPU431は、動き予測・補償回路43の各構成要素の動作を統括する。
co−locatedマクロブロックアドレス算出回路432は、例えば、2次元マクロブロック位置生成回路433、co−locatedマクロブロック位置算出回路434、マクロブロックアドレス変換回路435からなり、co−locatedマクロブロックアドレスを算出する。
2次元マクロブロック位置生成回路433は、処理対象となる原画像データ内のマクロブロックのアドレス値を基に、図8(C)のように、水平マクロブロック位置と垂直マクロブロック位置とを生成する。
図8は、マクロブロックアドレスmbAddrと2次元のマクロブロック位置情報(MBx、MBy)との関係を示す図である。
本実施形態では、図8(A)、(B)のように、1つのブロックに対し1つの値を割り当ててマクロブロックアドレスとしている。
図8(B)は、MBAFF(Macroblock-Adaptive Frame-Field Coding:マクロブロック適応型フレーム/フィールド符号化)モードにおけるマクロブロックアドレスを表している。MBAFFとは、H.264/AVCに特有の符号化モードであり、上下2つのマクロブロック(マクロブロックペア)を定義し、それぞれのマクロブロックに対して符号化を行うモードである。
これに対し、2次元のマクロブロック位置は、図8(C)のように、座標のような形で各ブロックの位置を表す。
以下、2次元マクロブロック位置を(MBx[7:0]、MBy[7:0])のように表す。MBx[7:0]は水平マクロブロック位置、MBy[7:0]は垂直マクロブロック位置である。
以下、2次元マクロブロック位置の算出方法を説明する。
図9、図10は、2次元マクロブロック位置算出アルゴリズムを示す図である。図9がMBx[7:0]の算出アルゴリズムを、図10がMBy[7:0]の算出アルゴリズムを示している。
pic_width_in_mbs_minus1は、H.264/AVCビットストリームに含まれるSPS(Sequence Parameter Set:シーケンスパラメータセット)に含まれるパラメータで、水平方向のマクロブロックの数を表している。
また、MBx++、MBy++は後置増分演算を、MBy−−は後置減分演算を意味している。
以下、2次元マクロブロック位置生成回路433の動作例について説明する。
MBx[7:0]は、図9のように、例えば、以下の工程で求める。
ステップST1:
2次元マクロブロック位置生成回路433は、MBAFFモードであるか否かを判断し、MBAFFモードである場合ステップST2に、MBAFFモードではない場合ステップST3に進む。
MBAFFモードであるか否かは、mb_adaptive_frame_field_flagというシンタックス要素に含まれるフラグを基に判断する。このフラグは、値が1である場合、フレームマクロブロック、フィールドマクロブロックの両方を使用可能であることを意味する。
すなわち、mb_adaptive_frame_field_flagが0ならばST2に、1ならばST3に進む。
ステップST2:
2次元マクロブロック位置生成回路433は、現在のMBxがPic_width_in_mbs_minus1と等しいか否かを判断し、等しい場合はステップST4に、等しくない場合はステップST5に進む。
ステップST3:
2次元マクロブロック位置生成回路433は、現在のMBxがPic_width_in_mbs_minus1と等しいか否かを判断し、等しい場合はステップST10に、等しくない場合はステップST11に進む。
ステップST4:
2次元マクロブロック位置生成回路433は、MBy[0](MBy[7:0]の最下位ビット)が0であるか否かを判断し、0であればステップST6に、0でなければステップST7に進む。
ステップST5:
2次元マクロブロック位置生成回路433は、MBy[0]が0であるか否かを判断し、0であればステップST8に、0でなければステップST9に進む。
ステップST6:
2次元マクロブロック位置生成回路433は、現在のMBx[7:0]を出力する。
ステップST7:
2次元マクロブロック位置生成回路433は、0を出力する。
ステップST8:
2次元マクロブロック位置生成回路433は、現在のMBx[7:0]を出力する。
ステップST9:
2次元マクロブロック位置生成回路433は、現在のMBx[7:0]の値に1を加えて出力する。
ステップST10:
2次元マクロブロック位置生成回路433は、0を出力する。
ステップST11:
2次元マクロブロック位置生成回路433は、現在のMBx[7:0]の値に1を加えて出力する。
MBy[7:0]は、図10のように、例えば、以下の工程で求める。
ステップST11:
2次元マクロブロック位置生成回路433は、MBAFFモードであるか否かを判断し、MBAFFモードである場合ステップST12に、MBAFFモードではない場合ステップST13に進む。
すなわち、mb_adaptive_frame_field_flagが0ならばST12に、1ならばST13に進む。
ステップST12:
2次元マクロブロック位置生成回路433は、現在のMBxがPic_width_in_mbs_minus1と等しいか否かを判断し、等しい場合はステップST14に、等しくない場合はステップST15に進む。
ステップST13:
2次元マクロブロック位置生成回路433は、現在のMBxがPic_width_in_mbs_minus1と等しいか否かを判断し、等しい場合はステップST18に、等しくない場合はステップST19に進む。
ステップST14:
2次元マクロブロック位置生成回路433は、現在のMBy[7:0]の値に1を加えて出力する。
ステップST15:
2次元マクロブロック位置生成回路433は、MBy[0]が0であるか否かを判断し、0であればステップST16に、0でなければステップST17に進む。
ステップST16:
2次元マクロブロック位置生成回路433は、現在のMBy[7:0]の値に1を加えて出力する。
ステップST17:
2次元マクロブロック位置生成回路433は、現在のMBy[7:0]の値から1を減じて出力する。
ステップST18:
2次元マクロブロック位置生成回路433は、現在のMBy[7:0]の値に1を加えて出力する。
ステップST19:
2次元マクロブロック位置生成回路433は、現在のMBy[7:0]の値を出力する。
2次元マクロブロック位置生成回路433は、算出した2次元マクロブロック位置をco−locatedマクロブロック位置算出回路434に出力する。
co−locatedマクロブロック位置算出回路434は、2次元マクロブロック位置生成回路433が算出したカレントマクロブロックの2次元マクロブロック位置のy座標(垂直マクロブロック位置)MBy[7:0]を基に、co−locatedマクロブロックのy座標MBycol[7:0]を算出する。
以下、co−locatedマクロブロックのy座標MBycol[7:0]の算出方法について説明する。
図11は、co−locatedマクロアドレスのy座標MBycol[7:0]を求める際の場合分けを示す図である。
図11に示すように、ISO/IEC14496−10に規定されたPicCodingStruct(CurrPic)、PicCodingStruct(colPic)、mb_field_decoding_flag、fieldDecodingFlagXの値に応じて、MBycol[7:0]の算出方法が異なる。
PicCodingStruct(CurrPic)は原画像データの構造を示す値、PicCodingStruct(colPic)は参照画像データの構造を示す値、mb_field_decoding_flagはH.264/AVCのシンタックス要素であり、当該マクロブロックペア(この場合カレントマクロブロックペア)がフィールドモードである時1となり、フレームモードの時0となるフラグ、fieldDecodingFlagは、co−locatedマクロブロックがフィールドモードである時1となり、フレームモードの時0となるフラグである。
原画像データと参照画像データが共にFLD(フィールド構造)、或いは共にFRM(フレーム構造)である場合には、カレントマクロブロックアドレスCurrMbAddrとco−colatedマクロブロックアドレスmbAddrColは等しいので、co−locatedマクロブロック位置算出回路434は、MBy[7:0]をMBycol[7:0]として出力する。
原画像データがFLD、参照画像データがFRMの場合、co−locatedマクロブロック位置算出回路434は、MBycol1[7:0]を下記式(1)から算出する。
〔数1〕
MBycol1[7:0]=(MBy<<1)+blk_idx[3]
…(1)
blk_idx[3:0]は、例えば、図12に示す値を有する4×4のインデックス値であり、blk_idx[3]はその最上位ビットを表している。
また、MBy<<1は1ビット左にシフトする演算を意味する。
原画像データがFLD、参照画像データがAFRM(マクロブロックペアを有するピクチャ構造)の場合、更に以下の2通りに場合分けされる。
co−locatedマクロブロックがフレームモードである場合(fieldDecodingFlagX=0)、co−locatedマクロブロック位置算出回路434は、MBycol2[7:0]を下記式(2)から算出する。
〔数2〕
MBycol2[7:0]=(MBy<<1)+blk_idx[3]
…(2)
co−locatedマクロブロックがフィールドモードである場合(fieldDecodingFlagX=1)、co−locatedマクロブロック位置算出回路434は、MBycol3[7:0]を下記式(3)から算出する。
〔数3〕
MBycol3[7:0]=(MBy<<1)+bottom_field_flag
…(3)
bottom_field_flagはスライスヘッダシンタックスパラメータであり、ボトムフィールドである場合1となるフラグである。
原画像データがFRM、参照画像データがFLDの場合、co−locatedマクロブロック位置算出回路434は、MBycol4[7:0]を下記式(4)から算出する。
〔数4〕
MBycol4[7:0]=MBy>>1
…(4)
MBy>>1は、現在のMByを1ビット右にシフトする演算を意味する。
原画像データがAFRM、参照画像データがFLDである場合は、カレントマクロブロックがフレームモードであっても(mb_field_decoding_flag=0)、フィールドモードであっても(mb_field_decoding_flag=1)、co−locatedマクロブロック位置算出回路434は、MBycol5[7:0]を下記式(5)から算出する。
〔数5〕
MBycol5[7:0]=MBy>>1
…(5)
原画像データ、参照画像データ共にAFRMである場合は、更に下記の3通りに分けられる。
カレントマクロブロック、co−locatedマクロブロック共にフレームモードである場合、或いはカレントマクロブロック、co−locatedマクロブロック共にフィールドモードである場合は、mbAddrColはCurrMbAddrと等しいので、co−locatedマクロブロック位置算出回路434は、MBycol[7:0]としてMBy[7:0]を出力する。
カレントマクロブロックがフレームモード、co−locatedマクロブロックがフィールドモードである場合、co−locatedマクロブロック位置算出回路434は、MBycol6[7:0]を下記式(6)から算出する。
〔数6〕
MBycol6[7:0]=((MBy>>1)<<1)+((topAbsDiffPOC<bottomAbsDiffPOC)?0:1)
…(6)
topAbsDiffPOCは参照画像データのトップフィールドと原画像データのPOC(Picture Order Count:ピクチャの表示順序)の差分を、bottomAbsDiffPOCは参照画像データのボトムフィールドと原画像データのPOCの差分を意味し、(topAbsDiffPOC<bottomAbsDiffPOC)?0:1という演算は、topAbsDiffPOC<bottomAbsDiffPOCであれば0を、topAbsDiffPOC>bottomAbsDiffPOCであれば1を返す演算である。
カレントマクロブロックがフィールドモード、co−locatedマクロブロックがフレームモードである場合、co−locatedマクロブロック位置算出回路434は、MBycol7[7:0]を下記式(7)から算出する。
〔数7〕
MBycol7[7:0]=((MBy>>1)<<1)+blk_idx[3]
…(7)
上記のような演算を行うために、co−locatedマクロブロック位置算出回路434は以下のような構造を有する。
図13は、co−locatedマクロブロック位置算出回路434のブロック図である。
co−locatedマクロブロック位置算出回路434は、例えば、図13に示すように、シフタ4341、シフタ4342、シフタ4343、セレクタ4344、セレクタ4345及び加算器4346を有する。
シフタ4341は、入力されたMByを左に1ビットシフトした後、結果をセレクタ4344に出力する。
シフタ4342は、入力されたMByを右に1ビットシフトした後、結果をセレクタ4344或いはシフタ4343に出力する。
シフタ4343は、シフタ4342から出力された値を左に1ビットシフトし、結果をセレクタ4344に出力する。
セレクタ4344は、PicCodingStruct(CurrPic)、PicCodingStruct(colPic)、mb_field_decoding_flag、fieldDecodingFlagXの値に応じて、入力されたMBy、シフタ4341の出力、シフタ4342の出力、シフタ4343の出力の中から1つを選択し、加算器4346に出力する。
セレクタ4345は、入力されたPicCodingStruct(CurrPic)、PicCodingStruct(colPic)、mb_field_decoding_flag、fieldDecodingFlagXの値に応じて、blk_idx[3]、bottom_field_flag、(topAbsDiffPOC<bottomAbsDiffPOC)?0:1の判別結果及び0の中から1つを選択し、加算器4346に出力する。
加算器7は、セレクタ4344とセレクタ4345の出力を加算し、MBycol[7:0]としてマクロブロックアドレス変換回路435に出力する。
上記のように、co−locatedマクロブロック位置算出回路434はMBycol[7:0]を算出する。
マクロブロックアドレス変換回路435は、co−locatedマクロブロック位置算出回路434から入力されたMBycol[7:0]とMBxとを基に、co−locatedマクロブロックアドレスmbAddrColを算出する。
以下、co−locatedマクロブロックアドレスmbAddrColの算出方法について説明する。
co−locatedマクロブロック位置算出回路434から入力されたMBycol[7:0]がMBycol1[7:0]、MBycol4[7:0]、MBycol5[7:0]のいずれかの場合、マクロブロックアドレス変換回路435は、下記式(8)を使って(MBx、MBycol)からmbAddrColα[15:0]に変換する(α=1、4、5とする)。
〔数8〕
mbAddrColα[15:0]=PicWidthInMbs[8:0]*MBycolα[8:0]+MBx[8:0]
…(8)
co−locatedマクロブロック位置算出回路434から入力されたMBycol[7:0]がMBycol2[7:0]、MBycol3[7:0]、MBycol6[7:0]、MBycol7[7:0]のいずれかの場合、マクロブロックアドレス変換回路435は、下記式(8)を使って(MBx、MBycol)からmbAddrColβ[15:0]に変換する(β=2、3、6、7とする)。
〔数9〕
mbAddrColβ[15:0]=PicWidthInMbs[8:0]*(MBycolβ[8:0]−MBycolβ[0])+(MBx<<1)+MBycol[8:0]β
…(9)
ここで、MBycolβ[0]は、MBycolβ[8:0]の最下位ビットの値である。
上記のような演算を行うために、マクロブロックアドレス変換回路435は、以下のような構造を有する。
図14は、マクロブロックアドレス変換回路435のブロック図である。
マクロブロックアドレス変換回路435は、例えば、図14に示すように、減算器4351、セレクタ4352、乗算器4353、シフタ4354、加算器4355、セレクタ4356、加算器4357を有する。
減算器4351は、co−locatedマクロブロック位置算出回路434から入力されたMBycol[7:0]と、MBycol[7:0]の最下位ビットMBycol[0]との差分をとり、セレクタ4352に出力する。
セレクタ4352には、減算器4351から入力されたMBycol[7:0]とMBycol[0]との差分と、MBycol[7:0]が入力されており、セレクタ4352は、PicCodingStruct(colPic)のAFRMがオンの時差分を、オフの時MBycol[7:0]を選択し、乗算器4353に出力する。
乗算器4353は、セレクタ4352の出力と、PicWidthInMbsとを乗算し、加算器4357に出力する。
シフタ4354は、入力されたMBxを左に1ビットシフトし、加算器4355に出力する。
加算器4355は、シフタ4354の出力と、MBycol[0]とを加算し、セレクタ4356に出力する。
セレクタ4356には加算器4355の出力とMBxが入力され、セレクタ4356は、PicCodingStruct(colPic)のAFRMがオンの時加算器4355の出力を、オフの時MBxを選択し、加算器4357に出力する。
加算器4357は、入力された乗算器4353の出力と、セレクタ4356の出力とを加算し、co−locatedマクロブロックアドレスmbAddrColとして動きベクトル生成回路436に出力する。
動きベクトル生成回路436は、上述のように生成されたco−locatedマクロブロックアドレスと原画像データのカレントマクロブロックアドレスを基に、動きベクトルMVを生成する。
メモリ437は、上述したCPU431、co−locatedマクロブロックアドレス算出回路432、2次元マクロブロック位置生成回路433、co−locatedマクロブロック位置算出回路434、マクロブロックアドレス変換回路435及び動きベクトル生成回路436が使用するプログラムを格納している。
以下、動き予測・補償回路43の動作例について説明する。
図15は、動き予測・補償回路43の動作例を示すフローチャートである。
ステップST21:
カレントマクロブロックの位置を表す情報として、2次元マクロブロック位置生成回路433が2次元マクロブロック位置情報を生成する。
ステップST22:
次に、co−locatedマクロブロック位置算出回路434が、ステップST21で生成したカレントマクロブロックのy座標を基に、co−locatedマクロブロックのy座標MBycol[7:0]を算出する。
ステップST23:
次に、マクロブロックアドレス変換回路435が、ステップST22でco−locatedマクロブロック位置算出回路が算出したMBycol[7:0]を基に、co−locatedマクロブロックのマクロブロックアドレスmbAddrColに変換する。
ステップST24:
次に、動きベクトル生成回路436が、ステップST23でマクロブロックアドレス変換回路435が変換したco−locatedマクロブロックアドレスmbAddrColを基に、動きベクトルMVを生成する。
次に、図6に示す符号化装置2の全体動作を説明する。
入力となる画像信号は、まず、A/D変換回路22においてデジタル信号に変換される。次に、出力となる画像圧縮情報のGOP構造に応じ、画面並べ替え回路23においてフレーム画像データの並べ替えが行われ、それによって得られた原画像データS23が、演算回路24、イントラ予測回路41及び動き予測・補償回路43に出力される。
次に、演算回路24が、画面並べ替え回路23からの原画像データS23と選択回路44からの予測データPIとの差分を検出し、その差分を示す画像データS24を直交変換回路25に出力する。
次に、直交変換回路25が、画像データS24に離散コサイン変換やカルーネン・レーベ変換等の直交変換を施して画像データS25を生成し、これを量子化回路26に出力する。
次に、量子化回路26が画像データS25を量子化し、量子化された変換係数S26を可逆符号化回路27及び逆量子化回路29に出力する。
次に、可逆符号化回路27が、変換係数S26に可変長符号化或いは算術符号化等の可逆符号化を施して画像データS27を生成し、これをバッファ28に蓄積する。
また、レート制御回路32が、原画像データS23と、バッファ28から読み出した画像データS27を基に、量子化回路26における量子化レートを制御する。
次に、逆量子化回路29が、量子化回路26から出力された変換係数S26を逆量子化し、逆量子化した変換係数を示す画像データS29を逆直交変換回路30に出力する。
次に、逆直交変換回路30が、逆量子化回路29から出力された画像データS29に対し直交変換回路25における直交変換の逆変換を施し、生成された画像データS30を加算回路33に出力する。
次に、加算回路33が、逆直交変換回路30から出力された画像データS30と、選択回路44から出力された予測画像データPIとを加算して再構成データを生成し、これをデブロックフィルタ34に出力する。
次に、デブロックフィルタ34が、加算回路33から出力された再構成画像データのブロック歪みを除去し、除去された画像データを参照画像データREFとしてフレームメモリ31に書き込む。
そして、イントラ予測回路41がイントラ予測符号化を行い、予測データPIと、差分DIFとを選択回路44に出力する。
また、動き予測・補償回路43が、動きベクトルMVを生成し、それを基に更に予測画像データPIと、原画像データS23と予測データPIと差分DIFとを選択回路44に出力する。
そして、選択回路44が、イントラ予測回路41から出力された差分DIF及び動き予測・補償回路43から出力された差分DIFを比較し、イントラ予測回路41から出力された差分DIFの方が小さいと判断した場合はイントラ予測回路41の出力した予測データPIを、動き予測・補償回路43から出力された差分DIFの方が小さいと判断した場合は動き予測・補償回路43の出力した予測データPIを選択して演算回路24に出力する。
そして、バッファ28に格納された画像データが、変調等された後に送信される。
以上説明したように、ISO/IEC14496−10に規定されているco−locatedマクロブロックアドレスを求める演算は図3に示すように全部で7通りあり、各場合の演算を1つの回路で実現しようとすると図4のように大規模な回路が必要になるため、演算のために大量の時間やエネルギーが必要になる。しかし、本実施形態のco−locatedマクロブロックアドレス算出回路432によれば、式の種類は上述したように全部で5種類であり、従って回路構成も図13及び図14に示すように比較的簡便になる。
更に、本実施形態のco−locatedマクロブロックアドレス算出回路432では、各種演算器の入力信号をセレクタにより選択させることで、回路内でリソースの共有を図ることができ、回路規模や演算のサイクル数を削減することができるので、演算に要する時間やエネルギーを節約することができる。
本発明は上述した実施形態には限定されない。
すなわち、当業者は、本発明の技術的範囲またはその均等の範囲内において、上述した実施形態の構成要素に関し、様々な変更、コンビネーション、サブコンビネーション、並びに代替を行ってもよい。
本実施形態では、動き予測・補償回路43の一例として、CPU431が動き予測・補償回路43の全体の動作を統括し、2次元マクロブロック位置生成回路433、co−locatedマクロブロック位置算出回路434、マクロブロックアドレス変換回路435及び動きベクトル生成回路436の各回路が各種処理を行う構成について説明したが、本発明はこの例に限定されず、例えば、CPU431が動き予測・補償回路43の全ての処理を行い、上記各回路を持たない構成としてもよい。
図1は、カレントマクロブロックとco−locatedマクロブロックの関係を示す図である。 図2は、MBAFFモードを示す概念図である。 図3は、原画像データと参照画像データのピクチャ構造の組み合わせによるco−locatedマクロブロックアドレスmbAddrColを求める際の場合分けを示す図である。 図4は、ISO/IEC14496−10に規定されたco−locatedマクロアドレス値を算出する装置の一例を示すブロック図である。 図5は、本発明の第1実施形態の通信システム1のブロック図である。 図6は、図4に示す符号化装置2のブロック図である。 図7は、動き予測・補償回路43のブロック図である。 図8は、マクロブロックアドレスmbAddrと2次元のマクロブロック位置情報(MBx、MBy)との関係を示す図である。 図9は、2次元マクロブロック位置MBx[7:0]の算出アルゴリズムを示す図である。 図10は、2次元マクロブロック位置MBy[7:0]の算出アルゴリズムを示す図である。 図11は、co−locatedマクロアドレスのy座標MBycol[7:0]を求める際の場合分けを示す図である。 図12は、4×4のインデックス値blk_idx[3:0]を示す図である。 図13は、co−locatedマクロブロック位置算出回路434のブロック図である。 図14は、マクロブロックアドレス変換回路435のブロック図である。 図15は、動き予測・補償回路43の動作例を示すフローチャートである。
符号の説明
1…通信システム、2…符号化装置、3…復号装置、22…A/D変換回路、23…画面並べ替え回路、24…演算装置、25…直交変換回路、26…量子化回路、27…可逆符号化回路、28…バッファ、29…逆量子化回路、30…逆直交変換回路、31…フレームメモリ、32…レート制御回路、33…加算回路、34…デブロックフィルタ、41…イントラ予測回路、43…動き予測・補償回路、44…選択回路

Claims (8)

  1. 2次元画像領域内に規定された複数のブロックの各々の動きベクトルを生成し動き補償を行う画像処理装置であって、
    参照画像データ内のマクロブロックアドレスを、処理対照画像データ内のマクロブロックの2次元位置情報を基に算出する演算手段と、
    前記処理対象画像データ内のマクロブロックアドレスと、前記演算手段が算出した前記参照画像データ内の前記マクロブロックアドレスとを使用して、前記処理対象画像データの動きベクトルを算出する動きベクトル算出手段と
    を有する画像処理装置。
  2. 前記処理対象画像データ内のマクロブロックの前記2次元位置情報は、前記処理対象画像データ内のマクロブロックの水平マクロブロック位置と垂直マクロブロック位置とからなる
    請求項1に記載の画像処理装置。
  3. 前記演算手段は、
    前記処理対象データ内のマクロブロックの前記2次元位置情報を生成する2次元マクロブロック位置生成手段と、
    前記2次元マクロブロック位置生成手段が生成した前記処理対象データ内のマクロブロックの前記2次元位置情報を基に、前記参照ブロック内のマクロブロックの2次元位置情報を算出する参照マクロブロック位置算出手段と、
    前記参照マクロブロック位置算出手段が算出した前記参照ブロック内のマクロブロックの前記2次元位置情報を、前記参照ブロック内のマクロブロックアドレスに変換する参照マクロブロックアドレス変換手段と
    を有する
    請求項1に記載の画像処理装置。
  4. 前記参照画像データ内のマクロブロックの前記水平マクロブロック位置は、前記処理対象画像データ内のマクロブロックの前記水平マクロブロック位置と等しい
    請求項3に記載の画像処理装置。
  5. 前記処理対象画像データと前記参照先画像データのピクチャ構造の組み合わせによって、前記演算手段に入力する値を切り替える入力値切り替え手段
    を更に有する請求項3に記載の画像処理装置。
  6. 2次元画像領域内に規定された複数のブロックの各々の動きベクトルを生成し動き補償を行う画像処理方法であって、
    参照画像データ内のマクロブロックアドレスを、処理対照画像データ内のマクロブロックの2次元位置情報を基に算出する第1の工程と、
    前記処理対象画像データ内のマクロブロックアドレスと、前記第1の工程において算出された前記参照画像データ内の前記マクロブロックアドレスとを使用して、前記処理対象画像データの動きベクトルを算出する第2の工程と
    を有する画像処理方法。
  7. 前記第1の工程は、
    前記処理対象データ内のマクロブロックの前記2次元位置情報を生成する第3の工程と、
    前記第3の工程において生成された前記処理対象データ内のマクロブロックの前記2次元位置情報を基に、前記参照ブロック内のマクロブロックの2次元位置情報を算出する第4の工程と、
    前記第4の工程において算出された前記参照ブロック内のマクロブロックの前記2次元位置情報を基に、前記参照ブロック内のマクロブロックアドレスに変換する第5の工程と
    を有する
    請求項6に記載の画像処理方法。
  8. 2次元画像領域内に規定された複数のブロックの各々の動きベクトルを生成し動き補償を行うコンピュータが実行するプログラムであって、
    参照画像データ内のマクロブロックアドレスを、処理対照画像データ内のマクロブロックの2次元位置情報を基に算出する第1の手順と、
    前記処理対象画像データ内のマクロブロックアドレスと、前記第1の手順において算出された前記参照画像データ内の前記マクロブロックアドレスとを使用して、前記処理対象画像データの動きベクトルを算出する第2の手順と
    を前記コンピュータに実行させるプログラム。
JP2005172309A 2005-06-13 2005-06-13 画像処理装置、画像処理方法及びプログラム Pending JP2006352238A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005172309A JP2006352238A (ja) 2005-06-13 2005-06-13 画像処理装置、画像処理方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005172309A JP2006352238A (ja) 2005-06-13 2005-06-13 画像処理装置、画像処理方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2006352238A true JP2006352238A (ja) 2006-12-28

Family

ID=37647648

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005172309A Pending JP2006352238A (ja) 2005-06-13 2005-06-13 画像処理装置、画像処理方法及びプログラム

Country Status (1)

Country Link
JP (1) JP2006352238A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008048199A (ja) * 2006-08-17 2008-02-28 Fujitsu Ltd 動き予測処理装置、画像符号化装置および画像復号化装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004129191A (ja) * 2002-10-04 2004-04-22 Lg Electronics Inc Bピクチャのダイレクトモード動きベクトル演算方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004129191A (ja) * 2002-10-04 2004-04-22 Lg Electronics Inc Bピクチャのダイレクトモード動きベクトル演算方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008048199A (ja) * 2006-08-17 2008-02-28 Fujitsu Ltd 動き予測処理装置、画像符号化装置および画像復号化装置
JP4592656B2 (ja) * 2006-08-17 2010-12-01 富士通セミコンダクター株式会社 動き予測処理装置、画像符号化装置および画像復号化装置

Similar Documents

Publication Publication Date Title
KR101723282B1 (ko) 동화상 복호 장치, 동화상 복호 방법, 동화상 부호화 장치, 동화상 부호화 방법 및 기록 매체
KR101895744B1 (ko) 화상 복호 장치, 화상 부호화 장치, 화상 복호 방법, 화상 부호화 방법, 및 부호화 데이터의 데이터 구조를 기록한 기록 매체
EP3026906B1 (en) Moving image encoding apparatus and operation method thereof
KR101669388B1 (ko) 부호화 데이터가 기록된 기록 매체
JP4146444B2 (ja) 動画像符号化の方法及び装置
KR101607781B1 (ko) 화상 부호화 장치, 화상 복호 장치, 화상 부호화 방법, 화상 복호 방법 및 기억 매체
WO2005120077A1 (ja) 画像処理装置、そのプログラムおよびその方法
KR20110071231A (ko) 부호화 방법, 복호화 방법 및 장치
JP2007503777A (ja) ハイブリッド・イントラ・インター符号化ブロックを符号化する方法及び装置
JP5795525B2 (ja) 画像符号化方法,画像復号方法,画像符号化装置,画像復号装置,画像符号化プログラムおよび画像復号プログラム
WO2011125730A1 (ja) 画像符号化装置と画像符号化方法および画像復号化装置と画像復号化方法
JP2011229145A (ja) 符号化ユニットにおける動画符号化においてハイブリッド多仮説予測を行う方法、および関連装置
JP2007019995A (ja) 画像処理装置、画像処理方法およびそのプログラム
Bichon et al. Inter-block dependencies consideration for intra coding in H. 264/AVC and HEVC standards
JP4768779B2 (ja) 動画像符号化/復号化の方法及び装置
JP2006352238A (ja) 画像処理装置、画像処理方法及びプログラム
JP2005244666A (ja) データ処理装置、符号化装置およびデータ処理方法
JP5375935B2 (ja) 符号化装置及び方法
JP2006174212A (ja) 画像処理装置、符号化装置およびそれらの方法
JP2005110082A (ja) データ処理装置およびその方法と符号化装置
JP2012080570A (ja) 符号化装置及び方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080602

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100223

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100302

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100426

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101228

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110419