JP5083248B2 - 画像データ復号演算装置 - Google Patents

画像データ復号演算装置 Download PDF

Info

Publication number
JP5083248B2
JP5083248B2 JP2009052014A JP2009052014A JP5083248B2 JP 5083248 B2 JP5083248 B2 JP 5083248B2 JP 2009052014 A JP2009052014 A JP 2009052014A JP 2009052014 A JP2009052014 A JP 2009052014A JP 5083248 B2 JP5083248 B2 JP 5083248B2
Authority
JP
Japan
Prior art keywords
prediction
direct
peripheral
direct prediction
processing
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
JP2009052014A
Other languages
English (en)
Other versions
JP2010206688A (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.)
Fujitsu Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor 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 Fujitsu Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2009052014A priority Critical patent/JP5083248B2/ja
Publication of JP2010206688A publication Critical patent/JP2010206688A/ja
Application granted granted Critical
Publication of JP5083248B2 publication Critical patent/JP5083248B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

本発明は、動画像などの画像データ復号演算装置に関する。
近年、差分符号化を用いた画像圧縮技術としてH.264、MPEG−1/2、MPEG−4、VC−1、AVSなどの規格が知られている。これらの規格ではフレーム間予測を実行する方法として、動きベクトル(MV)を用いた予測手法が用いられる。
図1は、従来のH.264あるいはAVSの符号器、復号器の概略構成図である。
符号器10は、入力画像を入力し、符号化して、復号器11に渡し、復号器11は、渡された符号化画像を復号して、出力画像として出力する。
符号器10においては、入力画像は、MB(マクロブロック)分割部15において、処理単位であるマクロブロックに分割される。マクロブロックに分割された入力画像は、動きベクトル検出部16に入力され、マクロブロックごとの動きベクトルが検出される。動きベクトル検出部16には、過去に処理されたフレームを格納する過去のフレームバッファ17から、過去のフレームの画像データが入力される。これは、動きベクトル検出部16において、現在のフレームと過去のフレームとの差分をとって、処理対象のマクロブロックに一番近い、過去のフレームのマクロブロックを指し示すベクトルを動きベクトルとするからである。
動きベクトル(MV)は、フレーム間予測部18に入力される。フレーム間予測部18には、過去のフレームバッファ17から、動きベクトルの検出に用いられた過去のフレームが入力され、差分動きベクトルとフレーム間予測によって生成された予測画像が生成される。差分動きベクトルは、エントロピー符号化部19に入力される。フレーム間予測によって生成された予測画像は、予測モード選択部20に入力される。
一方、現フレームバッファ21には、現在のフレームが格納されており、フレーム内予測部22に現フレームを与えて、フレーム内予測によって生成された予測画像を生成させる。フレーム内予測によって生成された予測画像は、予測モード選択部20に入力される。また、現フレームバッファ21の現フレームは、デブロッキングフィルタ23において、デブロッキングされ、フレームバッファ管理部24を介して、過去に処理されたフレームとして、過去のフレームバッファ17に格納される。
予測モード選択部20は、現在のマクロブロックの予測方式がフレーム間予測かフレーム内予測かの設定を受けて、フレーム間予測部18からの予測画像か、フレーム内予測部22の予測画像のいずれかを選択出力する。予測モード選択部20から出力された予測画像は、減算器25において、マクロブロックごとに入力画像との差分が取られ、この差分が直交変換量子化部26において、直交変換され、量子化される。直交変換量子化部26の出力は、エントロピー符号化部19において可変長符号化され復号器11に渡される。また、直交変換量子化部26の出力は、逆量子化逆直交変換部27において、元の差分画に戻され、加算器28において、予測画像と加算されて、現在のフレームが復元される。復元された現フレームは、現フレームバッファ21に格納される。
復号器11では、可変長符号化された画像をエントロピー復号化部30において、可変長復号し、得られた差分動きベクトルをフレーム間予測部31に与える。また、可変長復号された画像は、逆量子化逆直交変換部32において、逆量子化され、逆直交変換され、加算器33に入力される。加算器では、予測画像と加算され、現フレームが復元される。現フレームは、現フレームバッファ34に格納される。現フレームバッファ34に格納された現フレームは、フレーム内予測部35に与えられ、フレーム内予測による予測画像を生成させる。フレーム内予測部35の出力は、予測モード選択部36に与えられる。また、現フレームバッファ34の現フレームは、デブロッキングフィルタ37において、デブロッキング処理され、フレームバッファ管理部38を介して、過去フレームバッファ39に格納される。
過去フレームバッファ39の過去フレームは、フレーム間予測部31に与えられ、フレーム間予測による予測画像を生成させる。フレーム間予測部31の出力は、予測モード選択部36に与えられる。予測モード選択部36は、マクロブロックのデータに付随する情報から、符号化に使用されている予測モードを取得し、フレーム内予測部35あるいはフレーム間予測部31のいずれかの予測画像を加算器33に入力する。過去フレームバッファ39の過去フレームは、処理し終わったフレームであるので、出力画像として出力される。
符号化処理では入力画像に対してMB(マクロブロック)内のブロック単位で処理が行われる。直交変換、量子化などで画面内の冗長性を取り除く画面内予測と過去の複数フレーム(過去のフレームバッファ17)から動き補償した予測残差を抽出する事でフレーム間の冗長性を取り除くフレーム間予測を用い、上記の値をエントロピー符号化する事により圧縮効果をはかる。復号化ではその符号化の逆動作となる。
動きベクトルは現フレームを再生する際に用いるパラメータであり、過去にデコードした画像からの移動距離を示すものである。
図2は、動きベクトルを説明する図である。
図2では、フレーム番号1〜3のフレームが示されている。フレーム2が他のフレームを参照するフレームである。フレーム2が他のフレームを参照する場合、表示順が先のフレーム1を参照する場合と、表示順が後のフレーム3を参照する場合がある。フレーム1を参照する場合を前方参照と呼び、フレーム3を参照する場合を後方参照と呼ぶ。いずれの場合にも、フレーム2がデコードされるときには、フレーム1も3もデコード済みでなくてはならないので、表示順は、フレーム1、2、3の順番でも、デコード順は、フレーム1、3、2の順番となる。
これらの技術を用いる事で、全時間の全画素情報を保持するよりも圧倒的にデータ量を削減することが可能であり、動画像圧縮技術や、動画内の移動物体認識等を行う場合に用いられる。
上記記載の画像圧縮規格において、現フレームをデコードする処理順番は16×16画素(MB:マクロブロック)単位に行われる。
図3は、フレーム内のデコード順を説明する図である。
デコードは、マクロブロック単位で行われる。マクロブロックは、16×16画素のブロックであり、図3に示すように、1フレーム内では、左から右、上から下の順にデコードを行う。
MB単位内では、予測精度を向上させる為MB内で分割される場合があり、下記に示すケースがある。
(MB分割:16×16、16×8、8×16、8×8)
更にMB分割が8×8分割の場合、下記に示すSubMB分割がある。
(SubMB分割:8×8、8×4、4×8、4×4)
図4は、MBの分割について図示する図である。
1マクロブロックは、16×16画素であるが、これを横に分割する16×8、縦に分割する8×16、4つに分割する8×8の分割方法がある。それぞれ、16×16画素、16×8画素、8×16画素、8×8画素の単位で動きベクトルを生成する。また、8×8画素の分割の場合には、SubMB分割がある。これは、H.264の場合であり、AVSには適用されない。SubMB分割は、8×8画素を基準に、横に分割する8×4分割、縦に分割する4×8分割、4つの分割する4×4分割がある。
また、同一MB内でもサブブロック単位(8×8)にMV演算の予測方法が異なる場合が存在する。
動きベクトル(MV)を求めるのにH.264やAVSでは周辺予測やDirect予測といった算出方法がある。
これらの演算方式は処理が全く異なるがMB分割毎にMV演算する必要があり、各演算処理に時間がかかるため演算時間の短縮が望まれている。
周辺予測ベクトル演算について以下に示す。
図5は、周辺予測の演算方法を説明する図である。
現ブロックのMVを求める場合、左隣接情報(A)、真上隣接情報(B)、右上隣接情報(C)、左上隣接情報(D)として図中に示される予測動きベクトルから、これらの中間値のMVP(予測動きベクトル)を求め、現ブロックの差分MV情報(MVD)との和で、現ブロックの動きベクトルを求める。隣接Cがない場合のみ隣接Dを隣接Cとして演算に用いる。
マクロブロックを更に分割して、8×8のサブブロックとした場合は、図5の分割マクロブロックMBPartの0〜3の順に処理を進める。MBPart3を処理する場合には、MBPart2が左隣情報(A)、MBPart1が真上隣接情報(B)、MBPart0が左上隣接情報(D)として使用される。
図6は、周辺予測の場合にメモリに格納されるデータについて説明する図である。
周辺予測演算に用いるメモリは、隣接B,C,Dを保持しておく必要がある為、4×4ブロックで処理する場合、(4)×1(Line)と、4×16(マクロブロックの左の縦の部分)と、現ブロック処理分(16)のメモリが必要となる。すなわち、図6のように、4×4画素を単位として処理を行う場合、図5で説明したように、隣接情報として、4×4ブロックA〜Dを保持しておく必要がある。したがって、現ブロックの上側の、現ブロックから右側に向かって一列と、現ブロックの左側の縦の列が必要である。上側のブロックを現ブロックから右側に一列分保持しておくのは、次のマクロブロックを処理するようになると、マクロブロックの位置が右にずれるが、その場合にもメモリ内に必要なデータ保持しておくためである。また、現マクロブロックがフレームの右端から、1段下の左端に移動する場合のために、メモリには、現ブロックから左に向かって一列分、現マクロブロックの一番下のブロックを保持しておく。前方、後方参照の両方を考慮した場合2倍のメモリ量が必要となる。
周辺予測の場合には、隣接A-Dの動きベクトルMVを参照して、現MBを処理するので、隣接A-DのMVが先に生成されていないと処理開始できない。また、参照先のMVが生成されてから現在のMBを処理するので、MBPart順に処理する必要がある。
次にDirect予測ベクトル演算について以下に示す。
Direct予測ベクトル演算は、時間Direct演算モードと空間Direct演算モードが存在する。
図7は、時間Direct予測の演算方法を示す図である。
時間Direct予測は、過去に復号したベクトル情報を後方参照ピクチャとし、対象ピクチャ、後方参照ピクチャ、前方参照ピクチャの時間的距離を演算し、ベクトルを生成する予測符号化モードである。
図7において、POC0は、前方参照するピクチャの表示順番を示す番号である。POC_CUは、現ピクチャの表示順番を示す番号である。POC1は、後方参照するピクチャの表示順番を示す番号である。図7の場合、POC0は、6であり、POC_CUは、8であり、POC1は、12である。前方の距離が2であり、後方の距離が4である。したがって、前方の動きベクトルと後方の動きベクトルの大きさの割合を1:2として、POC0の対応するMBの動きベクトルとPOC1の対応するMBの動きベクトルを内分したものをPOC_CUの動きベクトルとする。
時間Direct予測においては、過去のベクトル情報を用いて演算するので差分動きベクトル(MVD)を必要としない為、時間Direct演算を使用する事で圧縮効率が向上する。動き速度が一定の場合に時間的な相関関係があるので効果がある。処理順番は、復号対象ピクチャのMV情報をメモリにmvCol情報として使用する為に格納しておく(このピクチャが後方参照Pictureとなる場合の為)。
復号対象ピクチャの対象MBが時間Directモードの場合、ColPic(後方参照先ピクチャ)のmvCol情報を取得する。
ここで、
ColPic(Colocated Picture):復号対象ピクチャの後方参照ピクチャの事を意味する。
mvCol(motion vector Colocated MB):対象MB(マクロブロック16×16画素)におけるColPic内の同MB位置のMVを意味する。
POCは画面表示順のパラメータであり現フレーム、前方参照、後方参照のPOCを用いる。
POC0 :前方参照画 MV(Fwd)に対応したPOCもの
POC1 :後方参照画 MV(Bwd)に対応したPOCもの
POC_CU :現フレームに対応したPOC
時間Direct予測のMVの演算は、以下のような式で与えることが規格により規定されている。
・tb /tdを演算(POC_CU/POC0/POC1より)
tb = POC_CU-POC0
td = POC1-POC0
・txを演算(td/tbより)
tx = (16384 + Abs(td/2))/td
・DSF(DistScaleFactor)を演算(tb/txより)
DSF = Clip3(-1024,1023,(tb*tx + 32)>>6)
・TempralDirectMVを演算 MV内分式
前方MV mvFwd = (DSF * mvCol + 128)>>8
後方MV mvBwd= mvFwd - mvCol
時間Direct予測においては、周辺予測と異なりMB内で分割があった場合でも隣接A-Dの生成を参照する事なく演算開始が可能となる。
図8は、空間Direct予測の演算方法を示す図である。
時間Direct予測と同じく過去に復号化した後方参照のベクトル情報を用いてmvColと
復号化対象のMB分割に関わらず分割サイズを16×16とした隣接A、B、C、Dの情報から得られるMVPよりMV値を決定する。
図8(b)に基づいて空間Direct予測を説明する。まず、ステップS10において、現在のマクロブロックCuのサイズを16×16とし、参照するピクチャにおける、現在のマクロブロックの位置に対応するマクロブロックの周辺のマクロブロックA,B,C,Dの動きベクトルMVを取得し、これらの中間値のMVを得る。ステップS11において、現在のマクロブロックの後方参照用MVのX成分MVXが閾値thXより大きく、かつ、MVのY成分MVYが閾値thYより大きいか否かを判断する。ステップS11の判断がNoの場合には、ステップS12において、ステップS10で得られたMVを空間Direct予測によって得られた予測動きベクトルMVPであると設定する。ステップS11の判断がYesの場合には、ステップS13において、空間Direct予測による予測動きベクトルMVPを0とする。このように、現在のマクロブロックの動きベクトルを、過去のピクチャの、対応する位置の周囲のマクロブロックの動きベクトルの中間値の値とするか、0とするかを、現在のマクロブロックの後方参照用動きベクトルMVの値によって選択するのが、空間Direct予測である。予測動きベクトルMVPは、マクロブロックA,B,C,Dの動きベクトルMVA、MVB、MVC、MVDの中間値であるが、マクロブロックCが無い場合には、マクロブロックDの値で代用する。現在のマクロブロックCuをどのように分割しているかには関係なく、16×16のブロックを単位として、マクロブロックA,B,C,Dの動きベクトルを取得する。
空間Direct予測は、時間Direct予測と同様、過去のベクトル情報を用いて演算するので差分ベクトル(MVD)を必要としない為、空間Direct演算を使用する事で圧縮効率が向上する。空間的な相関関係がある場合に効果がある。
図9は、従来の動きベクトル生成装置のブロック構成図である。
エントロピー復号部40から出力された復号データは、MBTYPE解析部41に入力され、現在のマクロブロックがDirect予測か周辺予測か否かが決定される。また、現在のピクチャの表示順番PROC_CUと、参照先のピクチャの参照順番POC1、POC2がDirect予測処理部42に入力され、Direct予測処理が行われる。Direct予測処理の作業メモリとして、Direct演算メモリが設けられている。Direct予測処理が終わったマクロブロックは、Directメモリ44に格納される。Direct処理が終わると、完了報告が周辺予測処理部43に入力されると共に、Direct予測処理で得られた動きベクトルが周辺予測処理部43に入力される。周辺予測処理部43には、エントロピー復号部40からの差分動きベクトルも入力され、周辺予測処理が行われる。周辺予測処理が完了したマクロブロックは、周辺予測メモリ45に入力される。周辺予測処理部43は、Direct予測処理の対象のマクロブロックについては、Directメモリ44から動きベクトルを読み出して、そのままMV生成部46に入力する。周辺予測対照のマクロブロックについては、周辺予測メモリ45から動きベクトルを読み出して、MV生成部46に入力する。MV生成部46では、動きベクトルを、参照画像生成部47に送り、参照画像生成部47において、参照画像を生成する。
以上のような従来技術においては、Direct予測対象のマクロブロックをすべて最初に処理し、その後周辺予測演算を開始する。
また、以上のような従来技術では、1ピクチャ分のDirect予測処理の結果を格納するDirect演算メモリが必要である。また、Direct予測処理が完全に完了しないと周辺予測ができない。
MBTYPE解析部41は、マクロブロックタイプを解析しマクロブロック分割状態の解析を行う。また8×8分割の場合は各Partitionが周辺予測を行うかDirect予測を行うかの解析も行う。マクロブロックタイプ、およびDirect/周辺予測の情報はエントロピー符号化されて画像圧縮されており、エントロピー復号部40でその情報が復号されMV生成部のMBTYPE解析部41へ転送されてくる。
周辺予測処理部43は上述した周辺予測の演算を行う。周辺予測メモリ45は周辺予測処理部43から周辺情報のMVの格納取得を行うためのメモリである。
Direct予測処理部42は上述したDirect予測の演算を行う。Directメモリ44はDirect予測処理部42からのmvColの格納取得を行うためのメモリである。
Direct演算メモリ44はMB分割内でDirect予測したブロックが存在した場合、Direct演算結果を格納しておくメモリである。周辺予測で用いる周辺のマクロブロックがDirect予測の場合にDirect演算メモリ44からMV情報を取得しMV生成部46へ送出する。
MV生成部46は、周辺予測処理部43からのMV、Direct予測部42からのMVを切り替えて参照画像生成部47に転送する。
しかしながら、周辺予測演算とDirect予測演算はMBのPartition毎にMV再生完了を待つ必要があり、生成処理時間に対する演算効率が悪いという問題があった。
図10は、従来の動きベクトル生成のタイミングを示す図である。
MBpartとして、0〜3のMBpartがあり、MBpart1、2がDirect予測であるとする。まず、MBpart1、2を最初に処理する。この処理が終わると、Direct予測処理の完了通知が発行され、周辺予測演算が開始される。最初にMBpart0が周辺予測処理され、MV0が生成される。次に、MBpart1と2が処理されるが、これは、Direct予測するべきものであるので、DirectメモリからMV1、MV2を取得して、MBpart1、2の動きベクトルとする。次に、MBpart3が周辺予測処理される。これにより、動きベクトルMV3が得られる。Direct予測処理がすべて終わり、周辺予測処理で、MBpart0の処理が終わった時点から、参照画取得処理が可能となる。
Direct演算メモリを用いず、周辺予測とDirect予測が混在した場合でもMBPart順に処理を行う方式は可能である。しかし、周辺予測とDirect予測で回路構成が大きく異なりMBPart毎に周辺予測部とDirect予測部の切り替え制御が複雑になる。その為、従来では、先にDirectPartのみ演算してDirect演算メモリに格納しておき、周辺予測はDirectのPartも含めMBPart0−3の順番に処理を行い、DirectPartのMVはDirect演算メモリから取り出す方式を取っていた。
なお、上記演算における中間値(Median)、最大、最小、クリップの演算式は、以下で与えられる。
従来技術では、周辺予測演算とDirect予測演算が混在する場合でもMBPartition順にMVを生成していく必要があった。時間Direct予測が存在する場合は、周辺予測を開始する前にDirect予測のMBPartは先に演算を行い、Direct演算メモリに格納しておく必要があった。そして、その後、周辺予測をMBpart0-3の順に処理を行い、DirectのMBpartについては、Direct演算メモリからMVを取り出して処理を行っていた。
周辺予測とDirect予測は演算方式がまったく異なるので回路は別々に構成する必要があるが、どちらか片方しか動作する事ができなかった。
本発明の課題は、異なる予測演算を含む画像復号処理を高速化することの出来る画像データ復号演算装置を提供することである。
本発明の一側面における画像データ復号演算装置は、Direct予測方式で符号化されたデータと周辺予測方式で符号化されたデータとが混在する画像データを復号する画像データ復号演算装置において、Direct予測方式で符号化されたデータを復号して、動きベクトルを取得するDirect予測処理部と、ピクチャのすべてのDirect予測方式で符号化されたデータの復号を待たずに、Direct予測処理部の動作と並行して、周辺予測方式で符号化されたデータのうち参照先のデータが揃ったデータから復号して、動きベクトルを取得する周辺予測処理部と、Direct予測方式で符号化されたデータを該Direct予測処理部へ、周辺予測方式で符号化されたデータを該周辺予測処理部へ選択出力する選択部とを備える。
本発明によれば、異なる予測演算を含む画像復号処理を高速化することの出来る画像データ復号演算装置を提供することができる。
従来のH.264あるいはAVSの符号器、復号器の概略構成図である。 動きベクトルを説明する図である。 フレーム内のデコード順を説明する図である。 MBの分割について図示する図である。 周辺予測の演算方法を説明する図である。 周辺予測の場合にメモリに格納されるデータについて説明する図である。 時間Direct予測の演算方法を示す図である。 空間Direct予測の演算方法を示す図である。 従来の動きベクトル生成装置のブロック構成図である。 従来の動きベクトル生成のタイミングを示す図である。 本発明の実施形態のブロック構成図である。 選択部の処理フロー(その1)である。 選択部の処理フロー(その2)である。 選択部の処理フロー(その3)である。 本実施形態の動作タイミングを示す図である。 MBPartition2,3が時間Direct予測の場合の実施形態の動作タイミングと従来動作タイミングを比較する図である。 MBPartition0,3が時間Direct予測の場合の実施形態の動作タイミングと従来の動作タイミングを比較する図である。 本発明の別の実施形態のブロック構成図である。 MBPartition2,3が空間Direct予測の場合の実施形態の動作タイミングを説明する図である。 MBPartition0,3が空間Direct予測の場合の実施形態の動作タイミングを説明する図である。 本実施形態の効果を説明する図である。
図11は、本発明の実施形態のブロック構成図である。
図11において、図9と同じ構成要素には、同じ参照符号を付し、詳しい説明を省略する。
まず、MBTYPE解析部41において、時間Direct予測と周辺予測のMBPartを判定する。次に、時間Direct予測の箇所だけを順次処理していく。演算結果は周辺予測処理部43を経由してDirectメモリ44へ格納する。一方、時間Direct予測と並行して周辺予測処理を行うが、隣接A‐Dが生成されていればMBPart順に処理していく。まだ生成されていない場合は、隣接A-Dの生成完了まで待つ。演算結果は、周辺予格納メモリ45へ格納する。
本実施形態では、従来技術の構成において、MBTYPE解析後に、選択部50を設け、図12、13に示す選択フローにしたがって、選択処理を行うようにする。
時間Direct予測は隣接情報MVの生成完了を待たずに処理が開始できる特徴を活かす事で、周辺予測とDirect予測が混在する場合、時間Direct予測と周辺予測の処理並列化が可能となる。
図12A、B及び図13は、選択部の処理フローである。
まず、ステップS20において、どのMBpartがDirect予測処理を行うべきかを示す変数DIRPART[0]〜[3]をみな「0」に初期化する。この変数に「1」が立っているMBpartがDirect予測を行うものである。ステップS21において、エントロピー復号されたデータからMBTYPEを読み取り、ステップS21において、Direct予測処理を行うMBpartがあるか否かを判断する。ステップS22のループにおいては、iを0〜3まで1ずつ変化させながらステップS23を実行する。ステップS23は、Direct予測処理を行うMBpartの変数DIRPARTを「1」に設定する。
ステップS23において、DIRPART[0]〜[3]が「0000、1000、1100、1110、1111」のグループか、「0001、0010、0100、0111、1001、1010、1011、1101」のグループか、「0011、0101、0110」のグループか、いずれのグループに属するかを判断する。最初のグループの場合は、ステップS24に進む。ステップS24では、DIRPART[0]が「1」であるか否かを判断し、「0」ならばMBpart0に周辺予測処理を施し、「1」ならばMBpart0にDirect予測処理を施し、ステップS25に進む。ステップS24の判断と、その後の処理を合わせて1サイクルで処理を終える。次のサイクル2では、ステップS25において、DIRPART[1]が「1」か否かを判断し、「0」ならば周辺予測処理を、「1」ならばDirect予測処理をMBpart1に施す。サイクル3では、ステップS26において、DIRPART[2]が「1」か否かを判断し、「0」ならば周辺予測処理を、「1」ならばDirect予測処理をMBpart2に施す。サイクル4では、DIRPART[3]が「1」か否かを判断し、「0」周辺予測処理を、「1」ならばDirect予測処理をMBpart3に施す。以上のように、DIRPART[0]〜[3]が最初のグループの場合には、すべて処理し終わるのに4サイクルかかるので、特に高速化の効果は現れていない。
ステップS23の判断で、DIRPART[0]〜[3]が2番目のグループに属すると判断された場合には、ステップS28において、DIRPART[0]が「1」か否かが判断される。ステップS28の判断がNoの場合には、ステップS29において、DIRPART[0]〜[3]が、2番目のグループのいずれであるかが判断される。DIRPART[0]〜[3]が「0001」であると判断された場合には、サイクル1で、MBpart3のDirect予測処理とMBpart0の周辺予測処理を平行に行い、サイクル2、3で、それぞれMBpart1とMBpart2の周辺予測処理を行い、3サイクルで処理を終了する。DIRPART[0]〜[3]が「0010」であると判断された場合には、サイクル1で、MBpart2のDirect予測処理とMBpart0の周辺予測処理を平行に行い、サイクル2、3で、それぞれMBpart1とMBpart3の周辺予測処理を行い、3サイクルで処理を終了する。DIRPART[0]〜[3]が「0100」であると判断された場合には、サイクル1で、MBpart1のDirect予測処理とMBpart0の周辺予測処理を平行に行い、サイクル2、3で、それぞれMBpart2とMBpart3の周辺予測処理を行い、3サイクルで処理を終了する。DIRPART[0]〜[3]が「0111」であると判断された場合には、サイクル1で、MBpart1のDirect予測処理とMBpart0の周辺予測処理を平行に行い、サイクル2、3で、それぞれMBpart2とMBpart3のDirect予測処理を行い、3サイクルで処理を終了する。
ステップS28の判断がYesの場合には、サイクル1で、MBpart0のDirect予測処理を行い、サイクル2で、DIRPART[0]〜[3]が「1001、1010、1011、1101」のいずれであるかを判断する(ステップS30)。そして、サイクル2内で、DIRPART[0]〜[3]が「1001」の場合は、MBpart3のDirect予測処理とMBpart1の周辺予測処理を並行して行い、サイクル3でMBpart2の周辺予測処理を行って、3サイクルで処理を終了する。DIRPART[0]〜[3]が「1010」の場合は、サイクル2内で、MBpart2のDirect予測処理とMBpart1の周辺予測処理を並行して行い、サイクル3でMBpart3の周辺予測処理を行って、3サイクルで処理を終了する。DIRPART[0]〜[3]が「1011」の場合は、サイクル2内で、MBpart2のDirect予測処理とMBpart1の周辺予測処理を並行して行い、サイクル3でMBpart3のDirect予測処理を行って、3サイクルで処理を終了する。DIRPART[0]〜[3]が「1101」の場合は、サイクル2内で、MBpart1のDirect予測処理を行い、サイクル3で、MBpart2の周辺予測処理とMBpart3のDirect予測処理を並行に行って、3サイクルで処理を終了する。
ステップS23において、DIRPART[0]〜[3]が、最後のグループであると判断された場合には、ステップS31において、DIRPART[0]〜[3]が「0011、0101、0110」のいずれであるかが判断される。DIRPART[0]〜[3]が「0011」であった場合には、サイクル1で、MBpart2のDirect予測処理とMBpart0の周辺予測処理を並行して処理し、サイクル2で、MBpart3のDirect予測処理と、MBpart1の周辺予測処理を並行して行い、2サイクルで処理を終了する。DIRPART[0]〜[3]が「0101」であった場合には、サイクル1で、MBpart1のDirect予測処理とMBpart0の周辺予測処理を並行して処理し、サイクル2で、MBpart3のDirect予測処理と、MBpart2の周辺予測処理を並行して行い、2サイクルで処理を終了する。DIRPART[0]〜[3]が「0110」であった場合には、サイクル1で、MBpart1のDirect予測処理とMBpart0の周辺予測処理を並行して処理し、サイクル2で、MBpart2のDirect予測処理を行い、サイクル3で、MBpart3の周辺予測処理を行い、3サイクルで処理を終了する。
図14は、本実施形態の動作タイミングを示す図である。
図14の例は、マクロブロックが4つに分割されており、MBpart1,2がDirect予測処理で、MBpart0,3が周辺予測処理の場合の動作タイミングを示している。最初に、MBpart1、2のDirect予測処理を行い、次に、MBpart0,3について、周辺予測処理を行う。この場合は、図13のDIRPART[0]〜[3]が「0110」の場合を示しており、4つのMBpartを処理するのに、3サイクルかかる場合である。
図15は、MBPartition2,3が時間Direct予測の場合の実施形態の動作タイミングと従来動作タイミングを比較する図である。
図15(a)のように、従来では、時間Direct予測処理をすべて終えてから周辺予測処理を行っていた。したがって、最初に、MBpart2,3の時間Direct予測処理を行い、結果を格納してから、MBpart0,1の周辺予測処理を行って、4サイクルかかっていた。周辺予測処理のMBpart2,3の部分については、格納された結果を取得するのみである。
図15(b)のように、本実施形態では、MBpart2,3の時間Direct予測処理とMBpart0,1の周辺予測処理を並行して行うので、処理が完了するまでのサイクルが2サイクルとなって、処理サイクルが従来の1/2となる。
図16は、MBPartition0,3が時間Direct予測の場合の実施形態の動作タイミングと従来の動作タイミングを比較する図である。
図16(a)のように、従来の場合には、MBpart0、3の時間Direct予測処理を最初に行ってしまい、その後、MBpart1,2の周辺予測処理を行っていた。周辺予測に必要な参照画の取得は、Direct予測処理の終了後である。
一方、図16(b)のように、本実施形態では、最初にMBpart0の時間Direct予測処理を行う。これにより、周辺予測に必要な参照画の取得が、MBpart0の処理の後可能となるので、次のサイクルで、MBpart3の時間Direct予測処理とMBpart1の周辺予測処理とを並行して行う。すなわち、MBpart1の周辺予測処理は、MBpart0が隣接Aとなるので、MBpart0の処理が完了しないとMBpart1は処理を開始できないので、MBpart1の周辺予測処理は、MBpart0の時間Direct予測処理の完了をまって始める。そして、最後に、MBpart2の周辺予測処理を行う。これにより、処理サイクルが従来の3/4となる。
図17は、本発明の別の実施形態のブロック構成図である。
図17において、図11と同じ構成要素には、同じ参照符号を付し、詳しい説明を省略する。選択部50aは、Direct予測と周辺予測のMBPartを判定する。空間Direct予測が含まれる場合、現在のマクロブロックCuの分割サイズに関わらず、周辺予測部を分割サイズ=16×16とする隣接位置ABCDから空間Direct予測に使用する予測ベクトル値MVPを演算する。Direct予測のMBPartは、空間Directあるいは時間Directに関わらず、Direct予測の箇所だけを順次処理していく。演算結果は周辺予測処理部43を経由してDirectメモリ44へ格納する。周辺予測のMBPartは、隣接A‐Dが生成されてあればMBPart順に処理していく。まだ生成されていない場合は生成完了まで待つ。演算結果は周辺予格納メモリ45へ格納する。空間Direct予測と時間Direct予測は同一MB内での混在はない。なお、空間Direct予測処理部51へは、周辺予測処理部43より、空間Direct予測用MVPが入力される。すなわち、隣接A〜DのMVの中間値のMVが空間Direct予測処理部51に入力される。
図18は、MBPartition2,3が空間Direct予測の場合の実施形態の動作タイミングを説明する図である。
最初に空間Direct予測用のMVP値を得るために周辺予測処理部を起動し、その後の動作は時間Direct予測と同じである。従来では、図18(a)のように、周辺予測処理部で空間Direct予測用MVPを得た後、空間Direct処理をMBpart2,3について行い、これが完了してから、MBpart0,1の周辺予測処理を行っていた。一方、本実施形態では、図18(b)のように、空間Direct予測用MVPを得てから、MBpart2,3の空間Direct予測処理と、MBpart0,1の周辺予測処理を並行して実行することになる。これにより、処理サイクルが従来の1/2となる。
図19は、MBPartition0,3が空間Direct予測の場合の実施形態の動作タイミングを説明する図である。
最初に空間Direct予測用のMVP値を得るために周辺予測処理部を起動し、その後の動作は時間Direct予測と同じである。従来では、図19(a)のように、周辺予測処理部で空間Direct予測用MVPを得た後、空間Direct処理をMBpart0,3について行い、これが完了してから、MBpart1,2の周辺予測処理を行っていた。一方、図19(b)のように、本実施形態では、最初に周辺予測処理部で空間Direct予測用MVPを得た後、MBpart0の空間Direct予測処理を行う。これにより、周辺予測に必要な参照画の取得が、MBpart0の処理の後可能となるので、次のサイクルで、MBpart3の空間Direct予測処理とMBpart1の周辺予測処理とを並行して行う。すなわち、MBpart1の周辺予測処理は、MBpart0が隣接Aとなるので、MBpart0の処理が完了しないとMBpart1は処理を開始できないので、MBpart1の周辺予測処理は、MBpart0の空間Direct予測処理の完了をまって始める。そして、最後に、MBpart2の周辺予測処理を行う。これにより、処理サイクルが従来の3/4となる。
図20は、本実施形態の効果を説明する図である。
1つのマクロブロックが、MBpart0〜3の4つに分割されている場合、それぞれのMBpartが周辺予測か、時間Direct予測かによって、組み合わせは16パターンあり、11パターンで効果がある。図20において、△が従来と同じで高速化の効果が無い場合であり、○が4サイクルが3サイクルになる効果がある場合であり、◎が4サイクルが2サイクルになる効果がある場合である。生成時間は、それぞれサイクル0〜3が記載されており、どのサイクルで、どのMBpartをどのように処理するかが記載されている。
したがって、本実施形態の効果としては、以下のことが言える。
・2パターンで処理サイクルが1/2になる。
・9パターンで処理サイクルが3/4になる。
・5パターンで従来と同じ。
1MV生成に8サイクルとした場合、以下のサイクル数が動きベクトルの生成に必要となる。
MB分割8×8の場合 :4(MBPart)×8=32サイクル
全分割双方向参照 :32×2(Fwd/Bwd)=64サイクル
全分割(SubMB分割4×4):64×4(SubPart)=256サイクル

1Picture処理(HDサイズ:1920画素(120MB) × 1080画素(68MB))
120MB × 68MB=8160MB
8160MB × 256 × (1/2) =1044480サイクルの処理性能向上の効果がある。
以上のように、ベクトル生成処理性能が向上すると参照画像取得が早くできる。そして、参照画像取得は動画圧縮技術において最も処理サイクルが必要とされるが、その処理をできるだけ早く処理開始できる為処理性能を向上させる事ができる。
本実施形態の画像データ復号演算装置は、DVDレコーダ、Blu‐rayレコーダ、カムコーダ、地デジチューナ、ワンセグチューナ、STB(セットトップボックス)等の画像復号処理を伴う製品に適用可能である。
10 符号器
11 復号器
15 MB分解部
16 動きベクトル検出部
17 過去のフレームバッファ
18 フレーム間予測部
19 エントロピー符号化部
20 予測モード選択部
21 現フレームバッファ
22 フレーム内予測部
23 デブロッキングフィルタ
24 フレームバッファ管理部
25 減算器
26 直交変換量子化部
27 逆量子化逆直交変換部
28 加算器
30 エントロピー復号化部
31 フレーム間予測部
32 逆量子化逆直交変換部
33 加算器
34 現フレームバッファ
35 フレーム内予測部
36 予測モード選択部
37 デブロッキングフィルタ
38 フレームバッファ管理部
39 過去フレームバッファ
40 エントロピー復号部
41 MBTYPE解析部
42 時間Direct予測処理部
43 周辺予測処理部
44 Directメモリ
45 周辺予測メモリ
46 MV生成部
47 参照画像生成部
50、50a 選択部
51 空間Direct予測処理部

Claims (5)

  1. Direct予測方式で符号化されたデータと周辺予測方式で符号化されたデータとが混在する画像データを復号する画像データ復号演算装置において、
    Direct予測方式で符号化されたデータを復号して、動きベクトルを取得するDirect予測処理部と、
    ピクチャのすべてのDirect予測方式で符号化されたデータの復号を待たずに、Direct予測処理部の動作と並行して、周辺予測方式で符号化されたデータのうち参照先のデータが揃ったデータから復号して、動きベクトルを取得する周辺予測処理部と、
    Direct予測方式で符号化されたデータを該Direct予測処理部へ、周辺予測方式で符号化されたデータを該周辺予測処理部へ選択出力する選択部と、
    を備えることを特徴とする画像データ復号演算装置。
  2. 前記Direct予測方式は、時間Direct予測方式であることを特徴とする請求項1に記載の画像データ復号演算装置。
  3. 前記Direct予測方式は、時間Direct予測方式と空間Direct予測方式とを含むことを特徴とする請求項1に記載の画像データ復号演算装置。
  4. 前記データは、マクロブロックを分割したブロック単位で動きベクトルの生成が行われることを特徴とする請求項1に記載の画像データ復号演算装置。
  5. Direct予測方式で符号化されたデータと周辺予測方式で符号化されたデータとが混在する画像データを復号する画像データ復号演算方法において、
    Direct予測方式で符号化されたデータを復号して、動きベクトルを取得し、
    ピクチャのすべてのDirect予測方式で符号化されたデータの復号を待たずに、Direct予測処理部の動作と並行して、周辺予測方式で符号化されたデータのうち参照先のデータが揃ったデータから復号して、動きベクトルを取得する、
    ことを特徴とする画像データ復号演算方法。
JP2009052014A 2009-03-05 2009-03-05 画像データ復号演算装置 Expired - Fee Related JP5083248B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009052014A JP5083248B2 (ja) 2009-03-05 2009-03-05 画像データ復号演算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009052014A JP5083248B2 (ja) 2009-03-05 2009-03-05 画像データ復号演算装置

Publications (2)

Publication Number Publication Date
JP2010206688A JP2010206688A (ja) 2010-09-16
JP5083248B2 true JP5083248B2 (ja) 2012-11-28

Family

ID=42967679

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009052014A Expired - Fee Related JP5083248B2 (ja) 2009-03-05 2009-03-05 画像データ復号演算装置

Country Status (1)

Country Link
JP (1) JP5083248B2 (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4114859B2 (ja) * 2002-01-09 2008-07-09 松下電器産業株式会社 動きベクトル符号化方法および動きベクトル復号化方法
JP3879741B2 (ja) * 2004-02-25 2007-02-14 ソニー株式会社 画像情報符号化装置および画像情報符号化方法

Also Published As

Publication number Publication date
JP2010206688A (ja) 2010-09-16

Similar Documents

Publication Publication Date Title
TWI597974B (zh) Dynamic image prediction decoding method and dynamic image prediction decoding device
JP2019115061A (ja) 符号化装置、符号化方法、復号装置、復号方法、及びプログラム
KR101990423B1 (ko) 인터 예측 방법 및 그 장치
TWI722842B (zh) 影像預測解碼方法
JP5821542B2 (ja) 動画像符号化装置、および動画像復号装置
JP5895469B2 (ja) 動画像符号化装置、および動画像復号装置
JP2011199362A (ja) 動画像符号化装置、動画像符号化方法及び動画像復号装置ならびに動画像復号方法
EP2380354A1 (en) Video processing method and apparatus with residue prediction
US20070133689A1 (en) Low-cost motion estimation apparatus and method thereof
JP2004032355A (ja) 動画像符号化方法,動画像復号方法,動画像符号化装置および動画像復号装置
JP2009260421A (ja) 動画像処理システム、符号化装置、符号化方法、符号化プログラム、復号化装置、復号化方法および復号化プログラム
JP5083248B2 (ja) 画像データ復号演算装置
JP5442039B2 (ja) 画像符号化装置、画像復号装置、画像符号化方法及び画像復号方法
JP2007221202A (ja) 動画像符号化装置及び動画像符号化プログラム
Ahmed et al. Enhanced computation time for fast block matching algorithm
KR20120008271A (ko) 주변 화소의 정합을 이용한 예측 움직임 벡터 선택 장치 및 그 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111125

TRDD Decision of grant or rejection written
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120731

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120807

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

R150 Certificate of patent or registration of utility model

Ref document number: 5083248

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150914

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees