JP5698428B2 - 動き補償方法、記録媒体及び動き補償装置 - Google Patents

動き補償方法、記録媒体及び動き補償装置 Download PDF

Info

Publication number
JP5698428B2
JP5698428B2 JP2007290086A JP2007290086A JP5698428B2 JP 5698428 B2 JP5698428 B2 JP 5698428B2 JP 2007290086 A JP2007290086 A JP 2007290086A JP 2007290086 A JP2007290086 A JP 2007290086A JP 5698428 B2 JP5698428 B2 JP 5698428B2
Authority
JP
Japan
Prior art keywords
pixel
filter
value
motion compensation
pixels
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
JP2007290086A
Other languages
English (en)
Other versions
JP2008125078A (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co 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
Priority claimed from KR1020070108448A external-priority patent/KR101354659B1/ko
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2008125078A publication Critical patent/JP2008125078A/ja
Application granted granted Critical
Publication of JP5698428B2 publication Critical patent/JP5698428B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

本発明は、動画を復号化する方法及び装置に係り、特に、動きを補償する方法及び装置に関する。
動画の復号化は、色々な処理過程を経る。このような過程は、エントロピー復号化、逆変換、逆量子化、及び動き補償で構成される。これらのうち動き補償が、最長のプロセシング時間がかかる。動き補償とは、現在画像のブロックと参照画像の対応ブロックとの間の変位を表す動きベクトルを参照して、参照画像から参照画像と現在画像との間に共有される部分を抽出し、このように抽出されたデータ(以下“動き補償データ”という)と、参照画像と現在画像との差データ(以下“レジデューデータ”という)とを合算することによって、現在画像を復元する過程を意味する。このように、動き補償処理過程は、多くの画像データを処理せねばならないため、メモリアクセス量及び演算量が非常に多い。このような動き補償の処理量は、画像のサイズに比例するため、画像のサイズが大きくなれば、最悪の場合には、所望の時間内に画像全体が処理されず、その結果、自然な動画再生が不可能になることもある。
ほとんどの動画コーデックエンジニアは、動画コーデックをソフトウェアの形態で具現することを好む。これは、動画コーデックをハードウェアで具現する場合に比べて、その開発期間が短縮され、かつコストが低下し、動画コーデックの再使用が容易であり、特に、動画コーデック自体の柔軟性に優れて動画コーデックにエラーが発生する場合に、これを容易に修正しうるという長所があるためである。しかし、動画コーデックの核心は、リアルタイム処理にある。たとえソフトウェアの具現が多くの長所を有しているとしても、動画コーデックが画像の符号化及び復号化をリアルタイムで処理できなければ、無駄になる。一方、動画コーデックをハードウェアで具現する場合には、開発期間が長くなり、コストが上昇し、柔軟性が低くて、動画コーデックの修正をせねばならない場合に、動画コーデックの全体構造を変更する危険が伴うこともある。しかし、何よりも動画コーデックをハードウェアで具現する場合には、ターゲットに最適化された具現が可能であるため、ソフトウェアで処理する場合より動画符号化及び復号化の速度が飛躍的に速くなるという長所がある。
前記のようなハードウェア具現方式及びソフトウェア具現方式のそれぞれの相反した長短所によって、ほとんどの動画コーデックエンジニアは、この2つの方式を混合して多用する。すなわち、動画コーデックを構成するモジュールは、各特徴によってS/Wで処理する部分とH/Wで処理する部分とに分けて具現される。この場合、必須的にハードウェアで具現せねばならない部分が動き補償である。動き補償に要求されるデータ演算量も多いが、何よりもメモリアクセスが他の部分に比べてはるかに多いため、ソフトウェア的な処理が不適合であった。
最近、動画コーデック具現の重要なイッシュは、一つの動画プレイヤで多様な動画フォーマットを再生可能にすることである。主に多く使われる動画フォーマットは、MPEG4、VC1、H.264/AVCである。しかし、このような3つのコーデックを一つの機器に具現しようとするとき、それぞれのコーデックに対する動き補償をそれぞれ具現すれば、ソフトウェアで処理する場合には、データ演算量及びメモリアクセス量が大きく増加するという問題が発生し、ハードウェアで具現する場合にも、ハードウェアの大きさ及び製作コストが上昇するという問題点が発生する。
本発明が解決しようとする技術的課題は、データ演算量及びメモリアクセスを減らし、ハードウェアの大きさ及び製作コストを減少させるためのマルチコーデックを支援しつつも、動画の再生をリアルタイムで処理可能にし、動き補償のためのチップのサイズ縮小及びチップ製作コストを低下させる装置及び方法を提供することである。また、前記の方法をコンピュータで実行させるためのプログラムを記録したコンピュータで読み取り可能な記録媒体を提供することである。
本発明が解決しようとする技術的課題は、前記のような技術的課題に限定されず、さらに他の技術的課題が存在しうる。これは、当業者ならば、下記の記載から明確に分かる。
前記課題を解決するための本発明による動き補償方法は、(a)複数のコーデックのうち何れか一つを表すコーデック情報によって、現在画像に対応する参照画像の画素を補間する複数の方式のうち少なくとも一つの方式を利用して、前記参照画像の画素の値から前記画素の間に位置した画素の値を算出するステップと、(b)前記算出された画素値を含む動き補償データと、前記参照画像と前記現在画像との差とを合算することによって前記現在画像を復元するステップとを含む。
前記(a)ステップは、(a1)前記コーデック情報によって、選択的に前記参照画像の何れか一ブロックの何れか一つの垂直ラインに位置した画素の値から、前記垂直ラインに位置した画素の間に位置した画素の値を算出するステップと、(a2)前記コーデック情報によって、選択的に前記ブロックの何れか一つの水平ラインに位置した画素の値から、前記水平ラインに位置した画素の間に位置した画素の値を算出するステップと、(a3)前記コーデック情報によって、選択的に前記ブロックの何れか一つのキュービックに位置した画素の値から、前記キュービックに位置した画素の間に位置した画素の値を算出するステップと、を含む。
前記課題を解決するために、本発明は、前記の動き補償方法をコンピュータで実行させるためのプログラムを記録したコンピュータで読み取り可能な記録媒体を提供する。
前記課題を解決するための本発明による動き補償装置は、複数のコーデックのうち何れか一つを表すコーデック情報によって、現在画像に対応する参照画像の画素を補間する複数の方式のうち少なくとも一つの方式を利用して、前記参照画像の画素の値から前記画素の間に位置した画素の値を算出する動き補償エンジンと;前記算出された画素値を含む動き補償データと、前記参照画像と前記現在画像との差とを合算することによって前記現在画像を復元する加算器とを備える。
前記動き補償エンジンは、前記コーデック情報によって選択的に前記参照画像の何れか一ブロックの何れか一つの垂直ラインに位置した画素の値から前記垂直ラインに位置した画素の間に位置した画素の値を算出する垂直フィルタと、前記コーデック情報によって選択的に前記ブロックの何れか一つの水平ラインに位置した画素の値から前記水平ラインに位置した画素の間に位置した画素の値を算出する水平フィルタと、前記コーデック情報によって選択的に前記ブロックの何れか一つのキュービックに位置した画素の値から前記キュービックに位置した画素の間に位置した画素の値を算出するキュービックフィルタとを備える。
本発明によれば、MPEG4、H.264/AVC、VC1のような複数のコーデックのうち何れか一つを表すコーデック情報によって、垂直フィルタリング、水平フィルタリング、キュービックフィルタリングなどの複数のコーデック間の共通的な部分を選択的に行うことによって、マルチコーデックを支援する動き補償をハードウェアで具現することによってチップサイズを最小化しうる。特に、前記のように、共通的な部分が選択的に行えるようにモジュール化することにより、ハードウェアへの具現を容易にし、これと共にチップに所要される部品の数の減少によってチップの製作コストが低下する。
また、本発明によれば、外部メモリからデータを受信するために待機する区間及び外部メモリからデータを受信する区間の間、垂直フィルタリング、水平フィルタリング、キュービックフィルタリングがパイプライン形態で行われることによって動き補償処理時間を最小化し、これにより、マルチコーデックを支援しつつも、画像の符号化及び復号化がリアルタイムで処理されて、マルチコーデックを支援するDMB再生装置を容易に製作しうる。
以下、図面を参照して本発明の実施形態を詳細に説明する。
図1は、多様な動画圧縮コーデックのそれぞれで使われる動き補償のためのフィルタの特性を表で示す図である。さらなる高解像度の画像を復元するために、現在動画圧縮コーデックでは、動きベクトルが参照画像内の画素、すなわち整数画素のみを指示せず、整数画素の間の1/2に位置した1/2画素または整数画素の間の1/4に位置した1/4画素も指示するようにしている。しかし、1/2画素及び1/4画素は、参照画像に本来存在しない画素であるため、この画素の値は、画素補間法を利用して生成される。図1は、このような画素補間に使われるフィルタの特性を動画圧縮コーデック別に示す。
図1を参照するに、MPEG4、H.264/AVC、VC1の色差成分(chrominance component)は、何れもキュービックフィルタ(cubic filter)を使用しており、VC1は、リニアフィルタ(linear filter)を共に使用する。また、輝度成分(luminance component)については、MPEG4は、キュービックフィルタを使用し、H.264/AVCは、リニアフィルタを使用し、VC1は、キュービックフィルタとリニアフィルタとを共に使用しているということが分かる。以下では、MPEG4、H.264/AVC、VC1による画素補間の形を図2Aないし図2Eを参照しつつ詳細に説明する。
図2Aは、H.264/AVCによる輝度成分の画素補間の形を示す図である。図2Aに示された大文字アルファベットは、整数画素を表し、小文字アルファベットは、サブ画素を表す。整数画素は、画素補間に使われる本来の画素を意味し、サブ画素は、整数画素を利用して画素補間によって生成された値を有する画素、すなわち1/2画素、1/4画素を意味する。図2Aを参照するに、H.264/AVCの輝度成分に対する画素補間は、1/4画素単位までなされる。まず、図2Aに示された1/2画素、すなわち、b、h、m、s位置の画素は、次のような式(1)によって6個の係数を有する6タップフィルタを利用して計算される。
b1=(E−5*F+20*G+20*H−5*I+J)
h1=(A−5*C+20*G+20*M−5*R+T)
b=Clip1Y((b1+16)>>5)
h=Clip1Y((h1+16)>>5) (1)
j1=cc−5*dd+20*h1+20*m1−5*ee+ff、または
j1=aa−5*bb+20*b1+20*s1−5*gg+hh
j=Clip1Y((j1+512)>>10)
s=Clip1Y((s1+16)>>5)
m=Clip1Y((m1+16)>>5)
前記数式で“*”は、乗算演算を表す。以下でも同様である。
次いで、図2Aに示された1/4画素、すなわち、残りの画素は、次のような式(2)によって平均フィルタを利用して計算される。この平均フィルタは、2個の係数を有する2タップフィルタの一種であって、以下でも同様である。
a=(G+b+1)>>1
c=(H+b+1)>>1
d=(G+h+1)>>1
n=(M+h+1)>>1
f=(b+j+1)>>1
i=(h+j+1)>>1
k=(j+m+1)>>1 (2)
q=(j+s+1)>>1
e=(b+h+1)>>1
g=(b+m+1)>>1
p=(h+s+1)>>1
r=(m+s+1)>>1
前記の式(1)及び(2)のうち、表記“>>”は、右側シフト演算を意味し、“>>”の次の数字は、何ビットをシフトするかを表す。例えば、“>>1”は、1ビットシフトを意味し、二等分と同等である。以下でも同様である。
図2Bは、H.264/AVCによる色差成分の画素補間の様子を示す図である。図2Bに示されたP1、P2、P3、P4は、整数画素を表し、4個の矢印の収斂点は、サブ画素を表す。図2Bを参照するに、H.264/AVCの色差成分に対する画素補間は、固定された位置ではない、任意の位置でなされる。すなわち、図2Bに示された任意の位置の画素は、次のような式(3)によってキュービックフィルタを使用して計算される。このキュービックフィルタは、4個の係数を有する4タップフィルタの一種であって、以下でも同様である。
P=((8−xFrc)*(8−yFrc)*P1+xFrc*(8−yFrc)*P2+(8−xFrc)*yFrc*P3+xFrc*yFrc*P4+32)>>6 (3)
図2Cは、VC1によってリニアフィルタを使用した画素補間の形を示す図である。図2Cに示されたP1、P2、P3、P4は、整数画素を表し、整数画素P2とP3との間に位置した点は、サブ画素を表す。図2Cを参照するに、VC1によってリニアフィルタを使用した画素補間は、1/4画素単位までなされる。すなわち、図2Cに示された黒点に該当する1/2画素及び1/4画素は、次のような式(4)によってキュービックフィルタを使用して計算される。
P=(a*P1+b*P2+c*P3+d*P4+rc)>>s (4)
前記の式(4)のうち、表記“a”、“b”、“c”、“d”は、キュービックフィルタの4個のタップのそれぞれの係数であって、サブ画素の位置によってその値が決定される。また、表記“s”も、サブ画素の位置によってその値が決定される。
図2Dは、MPEG4による画素補間の様子を示す図である。図2Dに示されたP1、P2、P3、P4は、整数画素を表し、整数画素の間に位置した黒点は、サブ画素を表す。図2Dを参照するに、MPEG4の輝度成分及び色差成分に対する画素補間は、1/2画素単位までなされる。例えば、P1の位置をdx=0、dy=0とすれば、図2Cに示された黒色点に該当する1/2画素は、次のような式(5)によってキュービックフィルタを使用して計算される。
dx=1、dy=0:P=(P1+P2+1−rc)>>1
dx=0、dy=1:P=(P1+P3+1−rc)>>1 (5)
dx=1、dy=1:P=(P1+P2+P3+P4−rc)>>1
前記の式(5)のうち、表記“rc”は、ラウンド制御(rounding control)を意味し、0または1を有する。以下でも同様である。
図2Eは、VC1によってキュービックフィルタを使用した画素補間の様子を示す図である。図2Eに示されたP1、P2、P3、P4は、整数画素を表し、4個の矢印の収斂点は、サブ画素を表す。図2Eを参照するに、H.264/AVCの色差成分に対する画素補間は、固定され位置ではない、任意の位置でなされる。すなわち、図2Bに示された任意の位置の画素は、次のような式(6)によってキュービックフィルタを使用して計算される。
P=(a*P1+b*P2+c*P3+d*P4+rc)>>s (6)
前記の式(6)のうち、表記“a”、“b”、“c”、“d”は、キュービックフィルタの4個のタップのそれぞれの係数であって、サブ画素の位置によってその値が決定される。また、表記“s”も、サブ画素の位置によってその値が決定される。
前記のように、MPEG4、H.264/AVC、VC1で使われるフィルタのそれぞれのタップ数と係数値とは異なるが、このような係数値は、調整が可能であり、あるタップの係数値を0にすることによってタップ数も調整が可能である。例えば、6タップフィルタを構成する6個のタップのうち、2個のタップの係数値を0にすることによって、この6タップフィルタは、4タップフィルタとして使われる。また、4タップフィルタを構成する4個のタップのうち、2個のタップの係数値を0にすることによって、この4タップフィルタは、2タップフィルタ、すなわち平均フィルタとして使われる。したがって、MPEG4、H.264/AVC、VC1のそれぞれで使われるフィルタの間には、相互共有できる部分が存在するということが分かり、これを利用すれば、前記の3つのコーデック(CODEC)を何れもさらに小さい数のフィルタを利用して動き補償を効率的に処理しうる。
前記の3つのコーデックのうち、H.264/AVCが最も複雑な方式で画素を補間する。しかし、H.264/AVCは、輝度成分に対してリニアフィルタリング方式の6タップフィルタを使用し、色差成分に対しては、キュービックフィルタリング方式の4タップフィルタを使用するため、これらは、MPEG4、VC1のキュービックフィルタリング方式の4タップフィルタ及びVC1のリニアフィルタリング方式の4タップフィルタに使われる。したがって、MPEG4、VC1の画素補間法は、H.264/AVCの画素補間法のサブセットと言える。
すなわち、6個のタップを有する一つのリニアフィルタは、その6個のタップのそれぞれの係数値を調整することにより、MPEG4のリニアフィルタ、H.264/AVCのリニアフィルタ、VC1のリニアフィルタの何れにも使われる。また、4個のタップを有するキュービックフィルタは、その4個のタップのそれぞれの係数値を調整することにより、MPEG4のキュービックフィルタ、H.264/AVCのキュービックフィルタ、VC1のキュービックフィルタの何れもに使われる。しかし、H.264/AVCによる輝度成分の画素補間過程は、式(2)による平均フィルタリング過程を要求している。
しかし、式(2)によって算出される1/4画素のそれぞれは、その位置によって画素補間時に利用される周辺の画素が異なる。すなわち、e、g、p、r位置の画素の値は、そのそれぞれの画素を中心にしたダイアモンド位置の画素値を利用して算出され、f、i、k、g位置の画素の値は、そのそれぞれの画素を中心にした十字位置の画素値を利用して算出される。このように、H.264/AVCの1/4画素補間過程は、画素の位置による複雑なフィルタリング過程であるため、ハードウェアとして具現されるのが容易でなかった。
図3は、本発明の一実施形態によるキュービックフィルタを示す図である。図3を参照するに、本実施形態では、前記のようなH.264/AVCの1/4画素補間過程を、図3に示したように、キュービックフィルタに適用した。図3に示された形態のキュービックフィルタを利用すれば、H.264/AVCの1/4画素補間過程は、キュービックフィルタという共通モジュールを通じてなされる。
一般的に、キュービックフィルタは、キュービックの頂点のそれぞれに位置した整数画素(Integer pel)の値を利用して、キュービックの辺のそれぞれの中心に位置した1/2画素の値及びキュービックの中心に位置した1/2画素(Half pel)の値を算出する。本実施形態では、このようなキュービックフィルタの特性を利用して前記の式(2)に該当する計算を処理する。例えば、a位置の1/4画素(Quater pel)の値は、G位置の整数画素の値、b位置の1/2画素の値を、図3に示されたキュービックフィルタに適用することによって算出される。当業者ならば、他の位置の1/4画素の値も、図3に示したように算出されるということが分かる。
図4は、本発明の一実施形態によるマルチコーデック支援動き補償装置の構成図である。図4を参照するに、本実施形態によるマルチコーデック支援動き補償装置は、スレーブインターフェース(スレーブI/F)10、マスターインターフェース(マスターI/F)20、DMA(Direct Memory Access)I/F 30、動き補償エンジン40、第1メモリ50、第2メモリ60、及び加算器70で構成される。
スレーブI/F 10は、本実施形態によるマルチコーデック支援動き補償装置を備える動画復号化装置(図示せず)のシステムバスを経由して、外部動画符号化装置(図示せず)から伝送されたレジデューデータをフェッチし、フェッチされたレジデューデータを第2メモリ60に出力する。また、スレーブI/F 10は、システムバスを経由して、外部動画符号化装置から動き補償のために必要なパラメータであるMC(Motion Compensation)パラメータをフェッチし、フェッチされたMCパラメータをマスターI/F 20に出力する。
マスターI/F 20は、スレーブI/F 10から入力されたMCパラメータを解釈し、その解釈結果に基づいて、MCパラメータを選別してDMA I/F 30及び動き補償エンジン40に出力することにより、DMA I/F 30を構成するDMAモジュール31及びFIFO(First−In First−Out)モジュール32のそれぞれの動作を制御し、動き補償エンジン40を構成する垂直フィルタ41、第1水平フィルタ42、第2水平フィルタ43、キュービック整列部44、及びキュービックフィルタ45のそれぞれの動作を制御する。
第1メモリ50は、動き補償エンジン40によって生成された動き補償データを保存し、第2メモリ60は、スレーブI/F 10から入力されたレジデューデータを保存する。一般的に、第1メモリ50及び第2メモリ60は、SRAM(スタティックランダムアクセスメモリ)で具現される。加算器70は、第1メモリ50に保存された動き補償データと第2メモリ60に保存されたレジデューデータとを合算することによって現在画像を復元し、復元された現在画像のデータをDMA I/F 30に出力する。
DMA I/F 30は、DMAモジュール31及びFIFOモジュール32で構成される。DMAモジュール31は、マスターI/F 20から入力されたMCパラメータのうち、現在画像のブロックと参照画像の対応ブロックとの間の変位を表す動きベクトルを参照して、システムバスを経由して外部メモリ(図示せず)から、参照画像と現在画像との間に共有される参照画像の32ビット単位のデータをフェッチし、加算器70によって復元された現在画像を外部メモリに保存する。
FIFOモジュール32は、DMAモジュール31によってフェッチされた32ビット単位のデータを8ビット単位で抽出して順次に動き補償エンジン40に出力する。特に、FIFOモジュール32は、実際に動き補償のために必要なデータのみを動き補償エンジン40に出力する8ビットアンパッキング以外に、参照画像に動きベクトルが指示するデータが存在しない場合、この動きベクトルによるパッディングも共に行う。
動き補償エンジン40は、DMA I/F 30から入力された8ビット単位のデータに対する動き補償を行う。さらに詳細に説明すると、動き補償エンジン40は、マスターI/F 20から入力されたMCパラメータ中の複数のコーデックのうち何れか一つを表すコーデック情報、複数の色成分のうち何れか一つを表す色情報、及び複数のフィルタのうち何れか一つを表すフィルタ情報によって現在画像に対応する参照画像の画素を補間する複数の方式、すなわち、垂直リニアフィルタリング、水平リニアフィルタリング、キュービックフィルタリングのうち少なくとも一つの方式を利用して、参照画像の画素の値からその画素の間に位置した画素の値を算出する。
図4を参照するに、動き補償エンジン40は、さらに垂直フィルタ41、第1水平フィルタ42、第2水平フィルタ43、キュービック整列部44、及びキュービックフィルタ45で構成される。
垂直フィルタ41は、マスターI/F 20から入力されたMCパラメータ中の複数のコーデックのうち何れか一つを表すコーデック情報、複数の色成分のうち何れか一つを表す色情報、及び複数のフィルタのうち何れか一つを表すフィルタ情報によって、選択的にDMA I/F 30から入力された参照画像の何れか一ブロックの何れか一つの垂直ラインに位置した整数画素の値から、この垂直ラインに位置した整数画素の間に位置した1/2画素の値を算出する。特に、垂直フィルタ41は、6個のタップを有するリニアフィルタで具現され、前記の垂直ラインに位置した整数画素の値を6個のタップに適用することにより、マスターI/F 20から入力されたMCパラメータのうち前記のブロックの動きベクトルが指示する1/2画素の値を算出する。
第1水平フィルタ42は、マスターI/F 20から入力されたMCパラメータのうちコーデック情報、色情報、及びフィルタ情報によって、選択的にDMA I/F 30から入力された参照画像の何れか一ブロックの何れか一つの水平ラインに位置した整数画素の値から、その水平ラインに位置した整数画素の間に位置した1/2画素の値を算出する。特に、第1水平フィルタ42は、6個のタップを有するリニアフィルタで具現され、前記の水平ラインに位置した画素の値を6個のタップに適用することにより、マスターI/F 20から入力されたMCパラメータのうち前記のブロックの動きベクトルが指示する1/2画素の値を算出する。
第2水平フィルタ43は、マスターI/F 20から入力されたMCパラメータのうち、コーデック情報、色情報、及びフィルタ情報によって、選択的に第1水平フィルタ42によって処理される水平ラインでない他の水平ラインに位置した整数画素または1/2画素の値から、その水平ラインに位置した整数画素の間に位置した1/2画素の値を算出する。ここで、1/2画素は、周辺の整数画素から算出される。特に、第2水平フィルタ43は、6個のタップを有するリニアフィルタで具現され、前記の水平ラインに位置した整数画素または1/2画素の値を6個のタップに適用することにより、マスターI/F 20から入力されたMCパラメータのうち前記のブロックの動きベクトルが指示する1/2画素の値を算出する。
キュービック整列部44は、マスターI/F 20から入力されたMCパラメータのうち、コーデック情報、色情報、及びフィルタ情報によって、選択的に前記のブロックの動きベクトルが指示する1/2画素、1/4画素、または任意の位置の画素の値を生成するために要求されるキュービック位置に、DMA I/F 30から入力された整数画素または1/2画素の値を整列する。
キュービックフィルタ45は、マスターI/F 20から入力されたMCパラメータのうち、コーデック情報、色情報、及びフィルタ情報によって、選択的に図3に示されたところによって、キュービック整列部44によって整列された4個の整数画素の値から、この整列された画素の間に位置した1/2画素、1/4画素、または任意の位置の画素の値を算出する。また、キュービックフィルタ45は、マスターI/F 20から入力されたMCパラメータのうち、コーデック情報、色情報、及びフィルタ情報によって、選択的に第1水平フィルタ42及び第2水平フィルタ43から入力された輝度成分のブロックの何れか一つのキュービックに位置した2個の整数画素または1/2画素の値から、このキュービックに位置した2個の画素の間に位置した1/2画素または1/4画素の値を算出する。特に、キュービックフィルタ45は、4個のタップを有するキュービックフィルタで具現され、前記のキュービック位置の2個または4個の画素の値をこのキュービック位置に対応する2個のタップまたは4個のタップに適用することにより、マスターI/F 20から入力されたMCパラメータのうち、前記のブロックの動きベクトルが指示する1/2画素、1/4画素、任意の位置の画素の値を算出する。
垂直フィルタ41、第1水平フィルタ42、第2水平フィルタ43、キュービック整列部44及びキュービックフィルタ45のそれぞれは、全ての画素に対して動作するのではなく、動きベクトルの値によって動作する。それは、マスターI/F 20から入力されたMCパラメータのうち動きベクトルが整数画素の位置を指示する場合には、参照画面と予測画面との間の動きが正確に整数画素間隔の倍数に該当する場合であるため、参照画面を構成する整数画素の値が予測画面を構成する画素の値となるので、垂直フィルタ41、第1水平フィルタ42、第2水平フィルタ43、キュービック整列部44、及びキュービックフィルタ45による画素値補間が不要である。しかし、マスターI/F 20から入力されたMCパラメータのうち動きベクトルが1/2画素または1/4画素の位置を指示する場合には、参照画面と予測画面との間の動きが正確に整数画素間隔の倍数に該当しない場合であるため、参照画面を構成する整数画素の値を利用して補間された値が予測画面を構成する画素の値となるので、垂直フィルタ41、第1水平フィルタ42、第2水平フィルタ43、キュービック整列部44及びキュービックフィルタ45による画素値補間が必要である。
垂直フィルタ41、第1水平フィルタ42、第2水平フィルタ43、キュービック整列部44及びキュービックフィルタ45による画素値補間が参照画像全体に対して行われば、垂直フィルタ41、第1水平フィルタ42、第2水平フィルタ43及びキュービックフィルタ45によって処理されず、そのまま通過された整数画素の値、これらフィルタによって算出された1/2画素の値、1/4画素の値及び任意の位置の画素の値全体は、前記の参照画像に対応する現在画像の動き補償データとして完成される。
図5ないし図7は、図4に示された動き補償装置での各コーデック別動作シナリオを示す図である。図5ないし図7を参照するに、H.264/AVCの輝度成分とVC1とは、リニアフィルタリングを行うために、水平フィルタリングと垂直フィルタリングとを行い、その他の場合には、キュービック整列を通じてキュービックフィルタリングを行う。
図5は、図4に示された動き補償装置でのH.264/AVCのリニアフィルタ及びキュービックフィルタの動作シナリオを示す図である。図5を参照するに、図4に示された動き補償装置は、次のような動作シナリオによってH.264/AVCの輝度成分フィルタリングを行う。
DMA I/F 30は、マスターI/F 20から入力されたMCパラメータのうち、現在画像のブロックと参照画像の対応ブロックとの間の変位を表す動きベクトルを参照して、システムバスを経由して外部メモリから参照画像の輝度成分を所定サイズのブロック単位でフェッチし、フェッチされた輝度成分のブロックを垂直フィルタ41に出力する。
垂直フィルタ41は、マスターI/F 20から入力されたMCパラメータのうち、コーデック情報がH.264/AVCを表し、色情報が輝度成分を表し、フィルタ情報がリニアフィルタを表せば、DMA I/F 30から入力された輝度成分のブロックを構成する整数画素のうち何れか一つの垂直ラインに位置した整数画素の値から、この垂直ラインに位置した整数画素の間に位置した1/2画素の値を算出する。特に、垂直フィルタ41は、前記の垂直ラインに位置した整数画素の値を6個のタップに適用することにより、マスターI/F 20から入力されたMCパラメータのうち、前記のブロックの動きベクトルが指示する1/2画素の値を算出し、算出された1/2画素の値を第1水平フィルタ42または第2水平フィルタ43に出力する。垂直フィルタ41は、前記のブロックの動きベクトルが整数画素を指示すれば、DMA I/F 30から入力された輝度成分のブロックを構成する整数画素の値をそのまま第1水平フィルタ42または第2水平フィルタ43に出力する。
例えば、動きベクトルが指示する画素の位置が図2Aに示されたhである場合ならば、垂直フィルタ41は、A、C、G、M、R、T位置の整数画素値を6個のタップに適用して、h1=(A−5*C+20*G+20*M−5*R+T)、h=Clip1Y((h1+16)>>5)を計算することによってh位置の1/2画素の値を算出する。
第1水平フィルタ42は、マスターI/F 20から入力されたMCパラメータのうち、コーデック情報がH.264/AVCを表し、色情報が輝度成分を表し、フィルタ情報がリニアフィルタを表せば、垂直フィルタ41を経由してDMA I/F 30から入力された輝度成分のブロックを構成する整数画素のうち何れか一つの水平ラインに位置した整数画素の値から、この水平ラインに位置した整数画素の間に位置した1/2画素の値を算出する。特に、第1水平フィルタ42は、前記の水平ラインに位置した整数画素の値を6個のタップに適用することにより、マスターI/F 20から入力されたMCパラメータのうち、前記のブロックの動きベクトルが指示する1/2画素の値を算出し、算出された1/2画素の値をキュービックフィルタ45に出力する。また、第1水平フィルタ42は、前記のブロックの動きベクトルが整数画素を指示すれば、DMA I/F 30から入力された輝度成分のブロックを構成する整数画素の値をそのままキュービックフィルタ45に出力する。また、第1水平フィルタ42は、垂直フィルタ41から入力された1/2画素の値をそのままキュービックフィルタ45に出力する。
例えば、動きベクトルが指示する画素の位置が図2に示されたbである場合ならば、第1水平フィルタ42は、E、F、G、H、I、J位置の整数画素値を6個のタップに適用してb1=(E−5*F+20*G+20*H−5*I+J)、b=Clip1Y((b1+16)>>5)を計算することによってb位置の1/2画素の値を算出する。
第2水平フィルタ43は、マスターI/F 20から入力されたMCパラメータのうち、コーデック情報がH.264/AVCを表し、色情報が輝度成分を表し、フィルタ情報がリニアフィルタを表せば、垂直フィルタ41を経由してDMA I/F 30から入力された輝度成分のブロックを構成する整数画素のうち、前記の水平ラインでない他の水平ラインに位置した整数画素または1/2画素の値からこの水平ラインに位置した整数画素または1/2画素の間に位置した1/2画素の値を算出する。特に、第2水平フィルタ43は、この水平ラインに位置した整数画素または1/2画素の値を6個のタップに適用することにより、マスターI/F 20から入力されたMCパラメータのうち、前記のブロックの動きベクトルが指示する1/2画素の値を算出し、算出された1/2画素の値をキュービックフィルタ45に出力する。また、第2水平フィルタ43は、前記のブロックの動きベクトルが整数画素を指示すれば、DMA I/F 30から入力された輝度成分のブロックを構成する整数画素の値をそのままキュービックフィルタ45に出力する。また、第2水平フィルタ43は、垂直フィルタ41から入力された1/2画素の値をそのままキュービックフィルタ45に出力する。
例えば、動きベクトルが指示する画素の位置が図2に示されたjである場合ならば、第2水平フィルタ43は、cc、dd、h1、m1、ee、ff位置の1/2画素値を6個のタップに適用して、j1=cc−5*dd+20*h1+20*m1−5*ee+ff、j=Clip1Y((j1+512)>>10)を計算することによってj位置の1/2画素の値を算出する。前記の式(2)のうち、f=(b+j+1)>>1のように、ある1/4画素の値を求めるためには、同時に二つの1/2画素の値が要求される場合がある。このような場合、b位置の1/2画素の値を算出する過程とj位置の1/2画素の値を算出する過程とを同時に処理するために、第1水平フィルタ42と第2水平フィルタ43とが別途に存在する。
キュービックフィルタ45は、マスターI/F 20から入力されたMCパラメータのうち、コーデック情報がH.264/AVCを表し、色情報が輝度成分を表し、フィルタ情報がリニアフィルタを表せば、第1水平フィルタ42及び第2水平フィルタ43から入力された輝度成分のブロックの何れか一つのキュービックに位置した整数画素または1/2画素の値から、このキュービックに位置した2個の画素の間に位置した1/4画素の値を算出する。特に、キュービックフィルタ45は、前記のキュービック位置の2個の画素の値を、4個のタップのうち前記のキュービック位置に対応する2個のタップに適用することにより、マスターI/F 20から入力されたMCパラメータのうち前記のブロックの動きベクトルが指示する1/4画素の値を算出し、算出された1/4画素の値を第1メモリ50に出力する。また、キュービックフィルタ45は、第1水平フィルタ42または第2水平フィルタから入力された整数画素または1/2画素の値をそのまま第1メモリ50に出力する。
例えば、動きベクトルが指示する画素の位置が図2に示されたaである場合ならば、キュービックフィルタ45は、G位置の整数画素値及びb位置の1/2画素値を、4個のタップのうち前記キュービック位置に対応する2個のタップに適用して、a=(G+b+1)>>1を計算することによってa位置の1/4画素の値を算出する。
図5を参照するに、図4に示された動き補償装置は、次のような動作シナリオによって、H.264/AVCの色差成分Cbフィルタリングを行う。
DMA I/F 30は、マスターI/F 20から入力されたMCパラメータのうち、現在画像のブロックと参照画像の対応ブロックとの間の変位を表す動きベクトルを参照して、システムバスを経由して外部メモリから参照画像の色差成分Cbを所定サイズのブロック単位でフェッチし、フェッチされた色差成分Cbのブロックをキュービック整列部44に出力する。
キュービック整列部44は、マスターI/F 20から入力されたMCパラメータのうち、コーデック情報がH.264/AVCを表し、色情報が色差成分Cbを表し、フィルタ情報がキュービックフィルタを表せば、マスターI/F 20から入力された動きベクトルが指示する任意の位置の画素の値を生成するために要求されるキュービック位置に、DMA I/F 30から入力された色差成分Cbのブロックを構成する整数画素の値のうち4個を整列し、整列された4個の整数画素の値をキュービックフィルタ45に出力する。
キュービックフィルタ45は、マスターI/F 20から入力されたMCパラメータのうち、コーデック情報がH.264/AVCを表し、色情報が色差成分Cbを表し、フィルタ情報がキュービックフィルタを表せば、図3に示されたところによって、キュービック整列部44によって整列された4個の整数画素の値から、この整列された画素の間に位置した任意の位置の画素の値を算出する。特に、キュービックフィルタ45は、前記のキュービック位置の4個の画素の値を前記キュービック位置に対応する4個のタップに適用することにより、マスターI/F 20から入力されたMCパラメータのうち前記ブロックの動きベクトルが指示する1/4画素の値を算出し、算出された1/4画素の値を第1メモリ50に出力する。
例えば、動きベクトルが指示する画素の位置が図2Bに示された4つの矢印の収斂点である場合ならば、キュービックフィルタ45は、P1、P2、P3及びP4位置の整数画素値を4個のタップに適用して、P=((8−xFrc)*(8−yFrc)*P1+xFrc*(8−yFrc)*P2+(8−xFrc)*yFrc*P3+xFrc*yFrc*P4+32)>>6を計算することによって、任意の位置の画素の値を算出する。
図5を参照するに、DMA I/F 30、キュービック整列部44、キュービックフィルタ45のそれぞれは、色差成分Crに対しても、前記色差成分Cbの動作シナリオと同一に動作する。したがって、H.264/AVCの色差成分Cbフィルタリングの動作シナリオについての詳細な説明は省略する。
図6は、図4に示された動き補償装置でのVC1のリニアフィルタの動作シナリオを示す図である。図6を参照するに、図4に示された動き補償装置は、次のような動作シナリオによってVC1の輝度成分フィルタリングを行う。
DMA I/F 30は、マスターI/F 20から入力されたMCパラメータのうち、現在画像のブロックと参照画像の対応ブロックとの間の変位を表す動きベクトルを参照して、システムバスを経由して外部メモリから参照画像の輝度成分を所定サイズのブロック単位でフェッチし、フェッチされた輝度成分のブロックを垂直フィルタ41に出力する。
垂直フィルタ41は、マスターI/F 20から入力されたMCパラメータのうち、コーデック情報がV1を表し、色情報が輝度成分を表し、フィルタ情報がリニアフィルタを表せば、DMA I/F 30から入力された輝度成分のブロックを構成する整数画素のうち何れか一つの垂直ラインに位置した整数画素の値から、この垂直ラインに位置した整数画素の間に位置した1/2画素または1/4画素の値を算出する。特に、垂直フィルタ41は、前記の垂直ラインに位置した整数画素の値を4個のタップに適用することにより、マスターI/F 20から入力されたMCパラメータのうち、前記ブロックの動きベクトルが指示する1/2画素または1/4画素の値を算出し、算出された1/2画素または1/4画素の値を第1水平フィルタ42に出力する。垂直フィルタ41は、4タップフィルタの係数値を調整することによって1/2画素または1/4画素の値を算出しうる。また、垂直フィルタ41は、前記ブロックの動きベクトルが整数画素を指示すれば、DMA I/F 30から入力された輝度成分のブロックを構成する整数画素の値をそのまま第1水平フィルタ42に出力する。
図5に示された実施形態では、垂直フィルタ41及び第1水平フィルタ42として6タップフィルタが使われた。6タップフィルタは、6個のタップのうち2個のタップが使われずに、ハードウェア構造の変更なしに4タップフィルタとして使われるため、図6に示された実施形態では、垂直フィルタ41及び第1水平フィルタ42は、4タップフィルタとなりうる。
第1水平フィルタ42は、マスターI/F 20から入力されたMCパラメータのうち、コーデック情報がV1を表し、色情報が輝度成分を表し、フィルタ情報がリニアフィルタを表せば、垂直フィルタ41を経由してDMA I/F 30から入力された輝度成分のブロックを構成する整数画素のうち何れか一つの水平ラインに位置した整数画素値から、この水平ラインに位置した整数画素の間に位置した1/2画素または1/4画素の値を算出する。特に、第1水平フィルタ42は、前記水平ラインに位置した整数画素値を4個のタップに適用することにより、マスターI/F 20から入力されたMCパラメータのうち、前記ブロックの動きベクトルが指示する1/2画素または1/4画素の値を算出し、算出された1/2画素または1/4画素の値をキュービックフィルタ45に出力する。また、第1水平フィルタ42は、前記ブロックの動きベクトルが整数画素を指示すれば、垂直フィルタ41を経由してDMA I/F 30から入力された輝度成分のブロックを構成する整数画素の値をそのまま第1メモリ50に出力する。また、第1水平フィルタ42は、垂直フィルタ41から入力された1/2画素または1/4画素の値をそのまま第1メモリ50に出力する。
例えば、動きベクトルが指示する画素の位置が図2Cに示された黒点である場合ならば、第1水平フィルタ42は、P1、P2、P3及びP4位置の整数画素値を4個のタップに適用してP=(a*P1+b*P2+c*P3+d*P4+rc)>>sを計算することにより、図2Cに示された黒色点に該当する1/2画素または1/4画素の値を算出する。垂直フィルタ41の具体的な例は、示されていないが、水平フィルタリングが垂直フィルタリングに変わることを除いては、前記の通りである。また、図6を参照するに、DMA I/F 30、垂直フィルタ41、第2水平フィルタ43のそれぞれは、色差成分Cb、Crに対しても、前記輝度成分の動作シナリオと同一に動作する。
VC1のリニアフィルタとして参照画像の輝度成分に対する動きを補償する過程は、二つの水平フィルタが同時に使われねばならない場合がないため、何れか一つの水平フィルタのみが使われればよい。特に、本実施形態では、第1水平フィルタ42及び第2水平フィルタ43のうち、第1水平フィルタ42を使用するとしたが、当業者ならば、第2水平フィルタ43を使用することもあるということが分かる。
図7は、図4に示された動き補償装置でのMPEG4及びVC1のキュービックフィルタの動作シナリオを示す図である。図7を参照するに、図4に示された動き補償装置は、次のような動作シナリオによってMPEG4及びVC1の輝度成分フィルタリングを行う。
DMA I/F 30は、マスターI/F 20から入力されたMCパラメータのうち、現在画像のブロックと参照画像の対応ブロックとの間の変位を表す動きベクトルを参照して、システムバスを経由して外部メモリから参照画像の色差成分Cbを所定サイズのブロック単位でフェッチし、フェッチされた輝度成分のブロックをキュービック整列部44に出力する。
キュービック整列部44は、マスターI/F 20から入力されたMCパラメータのうち、コーデック情報がMPEG4またはVC1を表し、色情報が輝度成分を表し、フィルタ情報がキュービックフィルタを表せば、マスターI/F 20から入力された動きベクトルが指示する1/2画素または任意の位置の画素の値を生成するために要求されるキュービック位置に、DMA I/F 30から入力された輝度成分のブロックを構成する整数画素の値のうち4個を整列し、整列された4個の整数画素の値をキュービックフィルタ45に出力する。
キュービックフィルタ45は、マスターI/F 20から入力されたMCパラメータのうち、コーデック情報がMPEG4またはVC1を表し、色情報が輝度成分を表し、フィルタ情報がキュービックフィルタを表せば、図3に示されたところによって、キュービック整列部44によって整列された4個の整数画素の値から、この整列された画素の間に位置した1/2画素または任意の位置の画素の値を算出する。特に、キュービックフィルタ45は、前記キュービック位置の4個の画素の値を前記キュービック位置に対応する4個のタップに適用することにより、マスターI/F 20から入力されたMCパラメータのうち、前記ブロックの動きベクトルが指示する1/2画素または任意の位置の画素の値を算出し、算出された1/2画素または任意の位置の画素の値を第1メモリ50に出力する。
例えば、動きベクトルが指示する画素の位置が図2Dに示された黒点である場合ならば、キュービックフィルタ45は、P1、P2、P3及びP4位置の整数画素値を4個のタップに適用して、P=(P1+P2+1−rc)>>1、P=(P1+P3+1−rc)>>1、P=(P1+P2+P3+P4−rc)>>1を計算することにより、図2Dに示された黒色点に該当する画素の値を算出する。また、動きベクトルが指示する画素の位置が図2Eに示された4つの矢印の収斂点である場合ならば、キュービックフィルタ45は、P1、P2、P3及びP4位置の整数画素値を4個のタップに適用して、P=(a*P1+b*P2+c*P3+d*P4+rc)>>sを計算することにより、任意の位置の画素の値を算出する。
図7を参照するに、DMA I/F 30、キュービック整列部44、キュービックフィルタ45のそれぞれは、色差成分Cb、Crに対しても、前記輝度成分の動作シナリオと同一に動作する。
特に、本実施形態は、レジスターアレイ方式を採択している。第1水平フィルタ42または第2水平フィルタ43による水平フィルタリング及び垂直フィルタ41による垂直フィルタリングを何れも行う場合には、水平フィルタリングの結果値を垂直フィルタリングで使用するか、または垂直フィルタリングの結果値を水平フィルタリングで使用する。
図8は、図4に示された垂直フィルタ41の内部のレジスターアレイチェーンを示す図である。図8を参照するに、図4に示された垂直フィルタ41の内部のレジスターアレイチェーンは、H.264/AVCの場合に、何れか一つのブロックの何れか一つのラインを構成する画素の数が21個であることを考慮して、21個の8ビットレジスターで構成される。H.264/AVC以外の他のコーデックの場合には、何れか一つのブロックの何れか一つのラインを構成する画素の数が21個未満である。特に、H.264/AVCは、6タップフィルタを使用するため、このようなレジスターアレイチェーンが5個必要であり、相互直列に連結される。何れか一つのレジスターアレイチェーンの出力値は、これに連結された他のレジスターアレイチェーンの入力値となる。
図4に示された垂直フィルタ41の内部のレジスターアレイチェーンは、DMA I/F 30からクロックごとに8ビットに該当する一画素の値を入力され、入力された画素値をR0レジスターに保存すると同時に、21個のレジスターのそれぞれに現在保存された画素値を右側に一つずつシフトし、これにより、R20レジスターに保存された画素値を送出する。
特に、図4に示された垂直フィルタ41の内部のレジスターアレイチェーンは、H.264/AVC、VC1のそれぞれの動きベクトルが指示する画素の位置が整数画素である場合、クロックごとに8×1
MUXを通じてブロックサイズによって、R3レジスターに保存された画素値、R7レジスターに保存された画素値、R15レジスターに保存された画素値のうち何れか一つを出力する。例えば、図4に示された垂直フィルタ41の内部のレジスターアレイチェーンは、動き補償エンジン40によって4x4ブロック単位で動き補償がなされる場合には、R3レジスターに保存された画素値を出力し、8×8ブロック単位で動き補償がなされる場合には、R7レジスターに保存された画素値を出力し、16×16ブロック単位で動き補償がなされる場合には、R15レジスターに保存された画素値を出力する。
もし、H.264/AVCの動きベクトルが指示する画素の位置が整数画素ではない場合、図4に示された垂直フィルタ41の内部のレジスターアレイチェーンは、ブロックサイズによってR8レジスターに保存された画素値、R12レジスターに保存された画素値、R20レジスターに保存された画素値のうち何れか一つを出力する。例えば、図4に示された垂直フィルタ41の内部のレジスターアレイチェーンは、動き補償エンジン40によって4×4ブロック単位で動き補償がなされる場合には、R8レジスターに保存された画素値を出力し、8×8ブロック単位で動き補償がなされる場合には、R12レジスターに保存された画素値を出力し、16×16ブロック単位で動き補償がなされる場合には、R20レジスターに保存された画素値を出力する。
もし、VC1コーデックで動きベクトルが指示する画素の位置が整数画素ではない場合、図4に示された垂直フィルタ41の内部のレジスターアレイチェーンは、ブロックサイズによって、R10レジスターの出力値、R18レジスターの出力値のうち何れか一つを出力する。例えば、図4に示された垂直フィルタ41の内部のレジスターアレイチェーンは、動き補償エンジン40によって8×8ブロック単位で動き補償がなされる場合には、R10レジスターに保存された画素値を出力し、16×16ブロック単位で動き補償がなされる場合には、R20レジスターに保存された画素値を出力する。VC1の場合には、4×4ブロックモードを支援しない。
図9は、図4に示された垂直フィルタ41の内部の6タップフィルタの構成図である。図9を参照するに、図4に示された垂直フィルタ41の内部の6タップフィルタは、図8に示されたレジスターアレイチェーンの出力値を入力される。すなわち、図4に示された垂直フィルタ41の内部の6タップフィルタは、図8に示されたレジスターアレイチェーンから6個のクロックの間に出力されて累積された6個の画素値、すなわち、レジスター1〜5に保存された5個の整数画素値及び現在入力された一つの画素値から、この画素の間に位置した1/2画素の値を算出する。一つのレジスターアレイチェーンからの出力値は、6タップフィルタの一つのレジスターに保存されるため、6タップフィルタの5個のレジスターに対応してレジスターアレイチェーンが5個が必要である。すなわち、図9に示された6タップフィルタは、式(1)に示された演算、例えば、b1=(E−5*F+20*G+20*H−5*I+J)を計算するために、9個のレジスター、4個の乗算器、5個の加算器を備えている。図9に示された最も左側の加算器の二つの入力端子と4個の乗算器のそれぞれの入力端子とが6個のタップに該当する。
図10は、図4に示された動き補償装置の内部でのデータ処理についてのタイミング図である。図10を参照するに、外部メモリに対して参照画像に該当する32ビット単位のデータを伝送することを要請した後に、このデータを受信するために待機するデータレーテンシ区間と外部メモリから32ビット単位のデータを受信するデータ伝達区間との間、DMA I/F 30、垂直フィルタ41、第1水平フィルタ42、第2水平フィルタ43、及びキュービックフィルタ45は、パイプライン形態でそのそれぞれの動作を行う。一般的に、データレーテンシ区間及びデータ伝達区間が非常に長いため、垂直フィルタ41、第1水平フィルタ42、第2水平フィルタ43、及びキュービックフィルタ45のフィルタリング動作がこの区間に隠されて行われる。これにより、動き補償をさらに高速で処理しうる。
図11は、本発明の望ましい一実施形態によるマルチコーデック支援動き補償方法のフローチャートである。図11を参照するに、本実施形態によるマルチコーデック支援動き補償方法は、図4に示されたマルチコーデック支援動き補償装置で時系列的に処理されるステップで構成される。したがって、以下省略された内容であっても、図11に示されたマルチコーデック支援動き補償装置について前述した内容は、本実施形態によるマルチコーデック支援動き補償方法にも適用される。
ステップ100で、マルチコーデック支援動き補償装置は、システムバスを経由して外部符号化装置から、参照画像と現在画像との差に該当するレジデューデータ及び動き補償のために必要なパラメータのMCパラメータをフェッチする。
ステップ200で、マルチコーデック支援動き補償装置は、ステップ100でフェッチされたレジデューデータを保存する。
ステップ300で、マルチコーデック支援動き補償装置は、ステップ100でフェッチされたMCパラメータのうち、現在画像のブロックと参照画像の対応ブロックとの間の変位を表す動きベクトルを参照して、システムバスを経由して外部メモリから参照画像と現在画像との間に共有される参照画像の32ビット単位のデータをフェッチする。
ステップ400で、マルチコーデック支援動き補償装置は、ステップ300でフェッチされた32ビット単位のデータに対して、8ビットアンパッキング及び動きベクトルによるパッディングを行う。
ステップ500で、マルチコーデック支援動き補償装置は、ステップ100でフェッチされたMCパラメータのうち、複数のコーデックのうち何れか一つを表すコーデック情報、複数の色成分のうち何れか一つを表す色情報、及び複数のフィルタのうち何れか一つを表すフィルタ情報によって、選択的にステップ400での処理結果に該当する参照画像の何れか一つのブロックの何れか一つの垂直ラインに位置した整数画素の値から、この垂直ラインに位置した整数画素の間に位置した1/2画素の値を算出する。
さらに詳細に説明すれば、ステップ500で、マルチコーデック支援動き補償装置は、コーデック情報がH.264/AVCを表し、色情報が輝度成分を表し、フィルタ情報がリニアフィルタを表す場合、またはコーデック情報がVC1を表し、色情報が輝度成分または色差成分を表し、フィルタ情報がリニアフィルタを表す場合に、ステップ400での処理結果に該当する参照画像の何れか一つのブロックの何れか一つの垂直ラインに位置した整数画素の値から、この垂直ラインに位置した整数画素の間に位置した1/2画素の値を算出する。残りの場合については、前記のようなステップ500での垂直フィルタリングは、行われない。
ステップ600で、マルチコーデック支援動き補償装置は、ステップ100でフェッチされたMCパラメータのうち、コーデック情報、色情報、及びフィルタ情報によって、選択的にステップ400での処理結果に該当する参照画像の何れか一つのブロックの何れか一つの水平ラインに位置した整数画素の値から、この水平ラインに位置した整数画素の間に位置した1/2画素または1/4画素の値を算出する。
さらに詳細に説明すれば、ステップ600で、マルチコーデック支援動き補償装置は、コーデック情報がH.264/AVCを表し、色情報が輝度成分を表し、フィルタ情報がリニアフィルタを表す場合、またはコーデック情報がVC1を表し、色情報が輝度成分または色差成分を表し、フィルタ情報がリニアフィルタを表す場合に、ステップ400での処理結果に該当する参照画像の何れか一つのブロックの何れか一つの垂直ラインに位置した整数画素の値から、この垂直ラインに位置した整数画素の間に位置した1/2画素または1/4画素の値を算出する。残りの場合については、前記のようなステップ600での垂直フィルタリングは、行われない。
ステップ700で、マルチコーデック支援動き補償装置は、ステップ100でフェッチされたMCパラメータのうち、コーデック情報、色情報、及びフィルタ情報によって、選択的にステップ600で処理される水平ラインでない他の水平ラインに位置した整数画素または1/2画素の値から、この水平ラインに位置した整数画素または1/2画素の間に位置した1/2画素の値を算出する。
さらに詳細に説明すると、ステップ700で、マルチコーデック支援動き補償装置は、コーデック情報がH.264/AVCを表し、色情報が輝度成分を表し、フィルタ情報がリニアフィルタを表す場合に、ステップ600で処理される水平ラインでない他の水平ラインに位置した整数画素または1/2画素の値から、この水平ラインに位置した整数画素または1/2画素の間に位置した1/2画素の値を算出する。残りの場合については、前記のようなステップ700での垂直フィルタリングは、行われない。
ステップ800で、マルチコーデック支援動き補償装置は、ステップ100でフェッチされたMCパラメータのうち、コーデック情報、色情報、及びフィルタ情報によって、選択的に輝度成分のブロックの何れか一つのキュービックに位置した整数画素またはステップ600及びステップ700で算出された1/2画素の値から、このキュービックに位置した2個の画素の間に位置した1/4画素の値を算出する。
さらに詳細に説明すると、ステップ800で、マルチコーデック支援動き補償装置は、コーデック情報がH.264/AVCを表し、色情報が輝度成分を表し、フィルタ情報がリニアフィルタを表す場合に、輝度成分のブロックの何れか一つのキュービックに位置した整数画素またはステップ600及びステップ700で算出された1/2画素の値から、このキュービックに位置した2個の画素の間に位置した1/4画素の値を算出する。残りの場合については、前記のようなステップ800でのキュービックフィルタリングは行われない。
ステップ900で、マルチコーデック支援動き補償装置は、ステップ100でフェッチされたMCパラメータのうち、コーデック情報、色情報、及びフィルタ情報によって、選択的に前記ブロックの動きベクトルが指示する1/2画素、1/4画素、または任意の位置の画素の値を生成するために要求されるキュービック位置に、ステップ400での処理結果に該当する整数画素の値を整列する。
さらに詳細に説明すると、ステップ900で、マルチコーデック支援動き補償装置は、コーデック情報がH.264/AVCを表し、色情報が色差成分を表し、フィルタ情報がキュービックフィルタを表す場合、コーデック情報がMPEG4を表し、色情報が輝度成分または色差成分を表し、フィルタ情報がキュービックフィルタを表す場合、またはコーデック情報がVC1を表し、色情報が輝度成分または色差成分を表し、フィルタ情報がキュービックフィルタを表す場合に、前記ブロックの動きベクトルが指示する1/2画素、1/4画素、または任意の位置の画素の値を生成するために要求されるキュービック位置に、ステップ400での処理結果に該当する整数画素の値を整列する。残りの場合については、前記のようなステップ900でのキュービック整列は行われない。
ステップ1000で、マルチコーデック支援動き補償装置は、図3に示されたところによって、ステップ900で整列された4個の整数画素の値から、この整列された画素の間に位置した1/2画素、1/4画素、または任意の位置の画素の値を算出する。
ステップ1100で、マルチコーデック支援動き補償装置は、ステップ300からステップ1000までの過程が参照画像全体に対して完了されたか否かを確認し、その結果、完了されたならば、ステップ1200に進み、完了されていなければ、ステップ300に戻る。
ステップ1200で、マルチコーデック支援動き補償装置は、ステップ300からステップ1000までの過程によって生成された動き補償データを保存する。
ステップ1300で、マルチコーデック支援動き補償装置は、ステップ1200で保存された動き補償されたデータとステップ200で保存されたレジデューデータとを合算することによって現在画像を復元する。
一方、前述した本発明の実施形態は、コンピュータで実行できるプログラムで作成可能であり、コンピュータで読み取り可能な記録媒体を利用して、前記プログラムを動作させる汎用デジタルコンピュータで具現される。また、前述した本発明の実施形態で使われたデータの構造は、コンピュータで読み取り可能な記録媒体に色々な手段を通じて記録される。前記コンピュータで読み取り可能な記録媒体は、マグネチック保存媒体(例えば、ROM(リードオンリメモリ)、フロッピー(登録商標)ディスク、ハードディスクなど)、光学的判読媒体(例えば、CD−ROM、DVDなど)のような保存媒体を含む。
以上、本発明についてその望ましい実施形態を中心に説明した。当業者は、本発明が本発明の本質的な特性から逸脱しない範囲で変形された形態で具現されるということが分かるであろう。したがって、開示された実施形態は、限定的な観点でなく、説明的な観点で考慮されねばならない。本発明の範囲は、前述した説明でなく、特許請求の範囲に現れており、それと同等な範囲内にある全ての差異点は、本発明に含まれていると解釈されねばならない。
本発明は、動画を復号化するデバイス、例えば、デジタルTV、コンピュータ、携帯電話などに適用可能である。
多様な動画圧縮コーデックのそれぞれで使われる動き補償のためのフィルタの特性を表で示す図である。 H.264/AVCによる輝度成分の画素補間の様子を示す図である。 H.264/AVCによる色差成分の画素補間の様子を示す図である。 VC1によってリニアフィルタを使用した画素補間の様子を示す図である。 MPEG4による画素補間の様子を示す図である。 VC1によってキュービックフィルタを使用した画素補間の様子を示す図である。 本発明の一実施形態によるキュービックフィルタを示す図である。 本発明の一実施形態によるマルチコーデック支援動き補償装置の構成図である。 図4に示された動き補償装置でのH.264/AVCのリニアフィルタ及びキュービックフィルタの動作シナリオを示す図である。 図4に示された動き補償装置でのVC1のリニアフィルタの動作シナリオを示す図である。 図4に示された動き補償装置でのMPEG4及びVC1のキュービックフィルタの動作シナリオを示す図である。 図4に示された垂直フィルタ内部のレジスターアレイチェーンを示す図である。 図4に示された垂直フィルタ内部の6タップフィルタの構成図である。 図4に示された動き補償装置内部でのデータ処理に関するタイミング図である。 本発明の望ましい一実施形態によるマルチコーデック支援動き補償方法のフローチャートである。
符号の説明
10 スレーブI/F
20 マスターI/F
30 DMA I/F
31 DMAモジュール
32 FIFOモジュール
40 動き補償エンジン
41 垂直フィルタ
42 第1水平フィルタ
43 第2水平フィルタ
44 キュービック整列部
45 キュービックフィルタ
50 第1メモリ
60 第2メモリ
70 加算器

Claims (18)

  1. 垂直フィルタ、水平フィルタ及びキュービックフィルタを含む動き補償装置の動き補償方法において、
    (a)複数のコーデックのうち何れか一つを表すコーデック情報及び複数の色成分のうち何れか一つを表す色情報によって、現在画像に対応する参照画像の画素を補間する垂直リニアフィルタリング方式、水平リニアフィルタリング方式及びキュービックフィルタリング方式のうち少なくとも一つのフィルタリング方式を決定し、前記垂直フィルタ、水平フィルタ及びキュービックフィルタのうち前記決定されたフィルタリング方式を利用するフィルタに前記参照画像の値を入力することによって前記画素の間に位置した画素の値を算出するステップと、
    (b)前記算出された画素の値を含む動き補償データ、及び前記参照画像と前記現在画像との差を合算することによって前記現在画像を復元するステップと、を含み、
    前記参照画像の画素の値が入力されるフィルタは複数のタップを有し、前記タップの個数は、前記コーデック情報及び前記色情報によって決定されることを特徴とする動き補償方法。
  2. 前記(a)ステップは、
    (a1)前記コーデック情報及び前記色情報によって、選択的に前記参照画像の何れか一つのブロックの何れか一つの垂直ラインに位置した画素の値から、前記垂直ラインに位置した画素の間に位置した画素の値を算出するステップと、
    (a2)前記コーデック情報及び前記色情報によって、選択的に前記ブロックの何れか一つの水平ラインに位置した画素の値から、前記水平ラインに位置した画素の間に位置した画素の値を算出するステップと、
    (a3)前記コーデック情報及び前記色情報によって、選択的に前記ブロックの何れか一つのキュービックに位置した画素の値から、前記キュービックに位置した画素の間に位置した画素の値を算出するステップと、を含むことを特徴とする請求項1に記載の動き補償方法。
  3. 前記コーデック情報がH.264/AVCを表し、前記色情報が輝度成分を表す場合、前記(a1)ステップ、前記(a2)ステップ、及び前記(a3)ステップのそれぞれは、画素の値を算出することを特徴とする請求項2に記載の動き補償方法。
  4. 前記(a1)ステップは、前記垂直ラインに位置した画素の値を6個のタップに適用することにより、前記垂直ラインに位置した画素の間に位置した画素の値を算出し、
    前記(a2)ステップは、前記水平ラインに位置した画素の値を6個のタップに適用することにより、前記水平ラインに位置した画素の間に位置した画素の値を算出し、
    前記(a3)ステップは、前記キュービックに位置した2個の画素の値を4個のタップのうち、2個のタップに適用することにより、前記キュービックに位置した画素の間に位置した画素の値を算出することを特徴とする請求項3に記載の動き補償方法。
  5. 前記コーデック情報がH.264/AVCを表し、前記色情報が色差成分を表す場合、前記(a1)ステップ及び前記(a2)ステップは、画素の値を算出せず、前記(c)ステップは、画素の値を算出することを特徴とする請求項2に記載の動き補償方法。
  6. 前記(a1)ステップ、前記(a2)ステップ、及び前記(a3)ステップのそれぞれは、前記コーデック情報、前記色情報及び複数のフィルタのうち何れか一つを表すフィルタ情報によって選択的に前記画素の値を算出することを特徴とする請求項2に記載の動き補償方法。
  7. 前記コーデック情報がVC1を表し、前記色情報が輝度成分または色差成分を表し、前記フィルタ情報がリニアフィルタを表す場合、前記(a1)ステップ及び前記(a2)ステップは、画素の値を算出し、前記(a3)ステップは、画素の値を算出しないことを特徴とする請求項6に記載の動き補償方法。
  8. 前記コーデック情報がVC1を表し、前記色情報が輝度成分または色差成分を表し、前記フィルタ情報がキュービックフィルタを表す場合、前記(a1)ステップ及び前記(a2)ステップは、画素の値を算出せず、前記(a3)ステップは、画素の値を算出することを特徴とする請求項6に記載の動き補償方法。
  9. 前記(a)ステップは、前記参照画像の何れか一つのブロックの動きベクトルが指示する画素の値を算出することを特徴とする請求項1に記載の動き補償方法。
  10. 前記コーデック情報によって選択的に前記水平ラインでない他の水平ラインに位置した画素の値から、前記他の水平ラインに位置した画素の間に位置した画素の値を算出するステップをさらに含むことを特徴とする請求項2に記載の動き補償方法。
  11. 前記コーデック情報によって選択的に前記ブロックの動きベクトルが指示する画素の値を生成するために要求されるキュービック位置に前記画素の値を整列するステップと、
    前記コーデック情報によって選択的に前記整列された画素の値から前記整列された画素の間に位置した画素の値を算出するステップと、をさらに含むことを特徴とする請求項2に記載の動き補償方法。
  12. 前記(a1)ステップは、前記垂直ラインに位置した整数画素の値から前記垂直ラインに位置した画素の間に位置した1/2画素の値を算出し、
    前記(a2)ステップは、前記水平ラインに位置した整数画素の値から前記水平ラインに位置した画素の間に位置した1/2画素の値を算出し、
    前記(a3)ステップは、前記ブロックを構成する何れか一つの整数画素、前記(a)ステップで算出された1/2画素の値及び前記(b)ステップで算出された1/2画素の値から前記キュービックに位置した画素の間に位置した1/4画素の値を算出することを特徴とする請求項2に記載の動き補償方法。
  13. 前記コーデックのそれぞれの動きベクトルが指示する画素の位置によって、選択的に複数のレジスターのうち所定位置のレジスターに保存された画素の値を出力するステップをさらに含み、
    前記(a)ステップは、所定数のクロックの間に出力されて累積された画素の値から前記画素の間に位置した画素の値を算出することを特徴とする請求項1に記載の動き補償方法。
  14. ブロックのサイズによって、前記所定位置のレジスターのうち何れか一つを出力することを特徴とする請求項13に記載の動き補償方法。
  15. 外部メモリから前記参照画像に該当するデータを受信するために待機する区間及び前記外部メモリから前記データを受信する区間の間、前記(a1)ステップ、前記(a2)ステップ及び前記(a3)ステップのそれぞれは、パイプライン形態で行われることを特徴とする請求項2に記載の動き補償方法。
  16. 垂直フィルタ、水平フィルタ及びキュービックフィルタを含む動き補償装置の動き補償方法において、
    複数のコーデックのうち何れか一つを表すコーデック情報及び複数の色成分のうち何れか一つを表す色情報によって、現在画像に対応する参照画像の画素を補間する垂直リニアフィルタリング方式、水平リニアフィルタリング方式及びキュービックフィルタリング方式のうち少なくとも一つのフィルタリング方式を決定し、前記垂直フィルタ、水平フィルタ及びキュービックフィルタのうち前記決定されたフィルタリング方式を利用するフィルタに前記参照画像の画素の値を入力することによって前記画素の間に位置した画素の値を算出するステップと、
    前記算出された画素の値を含む動き補償データと、前記参照画像と前記現在画像との差とを合算することによって前記現在画像を復元するステップと、を含み、
    前記参照画像の画素の値が入力されるフィルタは複数のタップを有し、前記タップの個数は、前記コーデック情報及び前記色情報によって決定されることを特徴とする動き補償方法をコンピュータで実行させるためのプログラムを記録したコンピュータで読み取り可能な記録媒体。
  17. 垂直フィルタ、水平フィルタ及びキュービックフィルタを含み、複数のコーデックのうち何れか一つを表すコーデック情報及び複数の色成分のうち何れか一つを表す色情報によって、現在画像に対応する参照画像の画素を補間する垂直リニアフィルタリング方式、水平リニアフィルタリング方式及びキュービックフィルタリング方式のうち少なくとも一つのフィルタリング方式を決定し、前記垂直フィルタ、水平フィルタ及びキュービックフィルタのうち前記決定されたフィルタリング方式を利用するフィルタに前記参照画像の画素の値を入力することによって前記画素の間に位置した画素の値を算出する動き補償エンジンと、
    前記算出された画素の値を含む動き補償データと、前記参照画像と前記現在画像との差とを合算することによって前記現在画像を復元する加算器と、を備え、
    前記参照画像の画素の値が入力されるフィルタは複数のタップを有し、
    前記動き補償エンジンは、前記コーデック情報及び前記色情報によって前記タップの個数を決定することを特徴とする動き補償装置。
  18. 前記垂直フィルタは、
    前記コーデック情報及び前記色情報によって、選択的に前記参照画像の何れか一つのブロックの何れか一つの垂直ラインに位置した画素の値から、前記垂直ラインに位置した画素の間に位置した画素の値を算出し、
    前記水平フィルタは、
    コーデック情報及び前記色情報によって、選択的に前記ブロックの何れか一つの水平ラインに位置した画素の値から、前記水平ラインに位置した画素の間に位置した画素の値を算出し、
    前記キュービックフィルタは、
    前記コーデック情報及び前記色情報によって、選択的に前記ブロックの何れか一つのキュービックに位置した画素の値から、前記キュービックに位置した画素の間に位置した画素の値を算出することを特徴とする請求項17に記載の動き補償装置。
JP2007290086A 2006-11-08 2007-11-07 動き補償方法、記録媒体及び動き補償装置 Expired - Fee Related JP5698428B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2006-0110224 2006-11-08
KR20060110224 2006-11-08
KR10-2007-0108448 2007-10-26
KR1020070108448A KR101354659B1 (ko) 2006-11-08 2007-10-26 멀티 코덱을 지원하는 움직임 보상 방법 및 장치

Publications (2)

Publication Number Publication Date
JP2008125078A JP2008125078A (ja) 2008-05-29
JP5698428B2 true JP5698428B2 (ja) 2015-04-08

Family

ID=39509310

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007290086A Expired - Fee Related JP5698428B2 (ja) 2006-11-08 2007-11-07 動き補償方法、記録媒体及び動き補償装置

Country Status (1)

Country Link
JP (1) JP5698428B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2442569A1 (en) * 2009-06-09 2012-04-18 Sony Corporation Image processing device and method
JP5353560B2 (ja) * 2009-08-25 2013-11-27 富士通株式会社 画像処理回路および画像符号化装置
JP5287624B2 (ja) * 2009-09-14 2013-09-11 富士通株式会社 画像処理回路および画像符号化装置
CN102014287B (zh) * 2010-12-23 2012-06-13 芯原微电子(北京)有限公司 用于h.264亮度内插计算的操作方法
JP2015216440A (ja) 2014-05-08 2015-12-03 株式会社Nttドコモ ユーザ端末、無線基地局、無線通信方法及び無線通信システム
JP6223323B2 (ja) * 2014-12-12 2017-11-01 Nttエレクトロニクス株式会社 小数画素生成方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2288521B (en) * 1994-03-24 1998-10-14 Discovision Ass Reconfigurable process stage
JP4516051B2 (ja) * 2006-05-24 2010-08-04 ルネサスエレクトロニクス株式会社 フィルタ処理装置、乗算器及び動き補償処理装置

Also Published As

Publication number Publication date
JP2008125078A (ja) 2008-05-29

Similar Documents

Publication Publication Date Title
KR101354659B1 (ko) 멀티 코덱을 지원하는 움직임 보상 방법 및 장치
JP4987884B2 (ja) 映像データ処理
JP5698428B2 (ja) 動き補償方法、記録媒体及び動き補償装置
US7623575B2 (en) Method and apparatus for sub-pixel motion compensation
US8212823B2 (en) Systems and methods for accelerating sub-pixel interpolation in video processing applications
JP4824703B2 (ja) 2次元フィルタ演算装置及び方法
WO2019041264A1 (zh) 图像处理装置、方法及相关电路
US7929612B2 (en) Image interpolation apparatus and methods that apply quarter pel interpolation to selected half pel interpolation results
US8412003B2 (en) Image processing methods, apparatus and computer program products using interdependent pixel interpolation operations
US8014618B2 (en) High-speed motion compensation apparatus and method
US5550591A (en) Motion compensator for digital image restoration
US20050047502A1 (en) Method and apparatus for the efficient representation of interpolated video frames for motion-compensated coding
JP4963220B2 (ja) フィルタ演算器及び動き補償装置
JP2009015637A (ja) 演算ユニット及び画像フィルタリング装置
JP5106483B2 (ja) ピクセルデータを垂直にスケーリングするための方法および装置
CN102215404B (zh) 嵌入式系统中视频的解码方法和系统
US6728313B1 (en) Method and apparatus for performing MPEG II dequantization and IDCT
KR100656644B1 (ko) 영상압축에서의 움직임 보상을 위한 화면간 보간장치
JP2007286869A (ja) 補間方法及び解像度変換装置
JP2011249986A (ja) 動き補償装置
JP2005348176A (ja) 画像処理装置
KR101742765B1 (ko) 인터폴레이터 및 인터폴레이터 픽셀 생성 방법
JP4155102B2 (ja) 画素値演算装置、動画像符号化装置及び動画像復号化装置
CN102257530B (zh) 视频压缩/解压缩系统
JP2006211323A (ja) 画像処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101028

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111019

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120628

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120724

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121024

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130910

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140408

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140708

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: 20150120

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150213

R150 Certificate of patent or registration of utility model

Ref document number: 5698428

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees