JP4755624B2 - 動き補償装置 - Google Patents

動き補償装置 Download PDF

Info

Publication number
JP4755624B2
JP4755624B2 JP2007112762A JP2007112762A JP4755624B2 JP 4755624 B2 JP4755624 B2 JP 4755624B2 JP 2007112762 A JP2007112762 A JP 2007112762A JP 2007112762 A JP2007112762 A JP 2007112762A JP 4755624 B2 JP4755624 B2 JP 4755624B2
Authority
JP
Japan
Prior art keywords
unit
area
data
read
read target
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
JP2007112762A
Other languages
English (en)
Other versions
JP2008271292A (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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics 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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2007112762A priority Critical patent/JP4755624B2/ja
Priority to EP20080154236 priority patent/EP1986439A2/en
Priority to US12/081,090 priority patent/US20080259089A1/en
Publication of JP2008271292A publication Critical patent/JP2008271292A/ja
Application granted granted Critical
Publication of JP4755624B2 publication Critical patent/JP4755624B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、動き補償より具体的には圧縮動画像の復号時にマクロブロック単位で動き補償をする技術に関する。
近年、動画像を圧縮して情報量を削減する方法として種々の動画像圧縮技術が規格化されており、その代表的なものとしてMPEG−4、H.264/MPEG−4 AVC(MPEG−4 Part10 Advanced Video Coding)、VC−1などのMPEG技術がある。
これらの技術では、動画像信号の時間冗長性を軽減するために動き補償(MC:Motion Compensation)処理が行われている。
特許文献1は、動き補償処理をする際に、現在復号中のマクロブロックの次に復号されるマクロブロックの参照領域を予測し、予測した参照領域を含む該参照領域より大きい領域の画素データを主記憶手段から読み出してキャッシュメモリに格納する手法を開示している。この手法は、現在復号中のマクロブロックの復号中に、次に復号されるマクロブロックの参照領域を予測して該参照領域の画素データをキャッシュメモリに格納しているので、予測が正しければ、次に復号されるマクロブロックの復号時に参照領域の画素データをキャッシュメモリから動き補償演算に提供することができるため、高速な動き補償処理ができる。また、予測した参照領域を含む該参照領域よりも大きい領域の画素データを主記憶手段から読み出してキャッシュメモリに格納するので、予測がずれた場合でもそのずれを吸収できる可能性が高い。
また、特許文献2に記載されたように、水平走査方向(横方向)のマクロブロック単位で順次処理を行う動き補償処理では、復号中のマクロブロックの参照領域の画素データは直前に動き補償処理をしたマクロブロックの参照領域の画素データの次のアドレスになる可能性が高い。ところで、この参照領域の画素データの主記憶手段における開始アドレスは、ランダムに発生し、アドレスのオフセットは一律ではない。一般に、SDRAM(Synchronous Dynamic Random Access Memroy)などの主記憶手段やメモリバスなどのスループット性能は、シングルアクセスに比べ、バーストアクセスの方が優れており、主記憶手段のコントローラやバスプロトコルは、バースト転送をより高速に実現するように実装されている。従って、復号中のマクロブロックの参照領域の画素データを主記憶手段から読み出す際に、次に復号するマクロブロックの参照領域の画素データまたはその一部を読み出している可能性が高い。特許文献2は、このような事情に基づき、現在の参照領域の画素データを読み出す際に、余分の画素データまで読出してキャッシュメモリに格納する手法を提案している。この手法によれば、次のマクロブロックに対して動き補償処理を行う際に、このマクロブロックの参照領域の一部の画素データが既にキャッシュメモリに格納されている場合、この一部の画素データをキャッシュメモリから供給することができるため、参領域の画素データの読み出す時間を短縮することができる(特許文献2の「0050」〜「0051」を参照)。
このように、圧縮動画像に対してマクロブロック単位で動き補償を処理する際に、現在復号中のマクロブロックの参照領域を含む該参照領域より大きい領域の画素データか、現在復号中のマクロブロックの次に復号するマクロブロックの参照領域を予測して該参照領域を含む該参照領域より大きい領域の画素データをキャッシュメモリに格納することによって、次に復号するマクロブロックの参照領域の画素データの一部がキャッシュメモリに格納されている(キャッシュヒット)場合に、この一部の画素データをキャッシュメモリから出力することにより動き補償処理の効率向上を図っている。
通常のキャッシュメモリは、データをラインと呼ぶある程度まとまった管理単位で管理するものであり、1つのラインは、データとそのアドレス、フラグなど属性情報のセットで構成される。キャッシュメモリは、ライン単位アドレスの下位ビットであるエントリアドレスによりラインを特定し、各ラインには、ライン単位アドレスの上位ビットが、タグと呼ばれるバッファに格納されている。また、1つのライン分のデータが該ラインに格納されたときに、該ラインのタグがセットされて該ラインにデータが格納されたことを示す。
データのアクセス要求があった際に、キャッシュメモリは、アクセスアドレスに含まれるエントリアドレスにより可能性のあるラインを特定し、特定したラインのタグと、アクセスアドレスの上位ビットとを比較することによってキャッシュのヒットを検出する。具体的には、アクセスアドレスの上位ビットと一致するタグがセットされていれば、キャッシュヒットとして該タグのラインから、アクセス要求されたデータを出力する。
特開2006−279330号公報 特開2003−296724号公報
ここで、図13を参照して、通常のキャッシュメモリのラインサイズと、動き補償処理時に必要とする参照領域の画素データ(以下参照データという)のサイズと、主記憶手段から読み出したデータ(以下読出データという)のサイズについて考える。
図13は通常のキャッシュメモリ1の模式図である。図13において、A1−A2−A7−A6や、A6−A7−A12−A11などにより示す太線矩形はそれぞれ1つのラインに該当し、キャッシュメモリ1は複数のこのようなラインにより構成されている。1ラインは、2のべき乗のビット数のサイズを有する。
各太線矩形内の細線により囲まれる小さい矩形(例えばB11−B12−B22−B21)は、主記憶手段からデータを読み出してキャッシュメモリに格納する際の格納単位のデータを示し、図13の例では、1つのラインは、4つの格納単位のデータの大きさを有する。なお、この格納単位の大きさは例えば圧縮動画像を復号するLSIの内部バスがクロック信号のサイクル毎に転送するデータのサイズ(ビット幅)である。
図13において、C1−C2−C3−C4により示される矩形は、動き補償処理時の参照データを示す。この参照データは、主記憶手段から読み出されて、そのアドレスに対応するラインに格納される。
前述したように、参照データを主記憶手段から読み出す際に、参照領域を含む参照領域より大きい領域の画素データの読出しが行われている。そのため、C1−C2−C3−C4の参照データの読出時に、この参照データのみならず、例えばB13−B14−B42−B41の点線矩形が示す部分のデータ(読出データ)が読み出されてキャッシュメモリ1に格納されることになる。
ところで、通常のキャッシュメモリはライン単位でデータを管理し、ライン内に1ライン分のデータが格納されたときに該ラインのタグをセットする。したがって、図13に示す例の場合、B13−B14−B42−B41が示す点線矩形内にデータが格納されているが、A8−A9−A14−A13が示すラインのタグのみはセットされる。A2−A3−A8−A7が示すラインと、A1−A3−A8−A7、A7−A8−A13−A12、A12−A13−A18−A17、A3−A4−A9−A8、A13−A14−A19−A18、A4−A5−A10−A9、A9−A10−A15−A14、A14−A15−A20−A19が示す各ライン内に、一部のデータしか格納されていないため、それらのタグがセットされない。
そのため、マクロブロックの復号時に、このマクロブロックの動き補償処理のための参照データの一部が、例えば図13に示すB31−B32−B42−B41が示す矩形のデータである場合でも、これらのデータが属するラインのタグがセットされていないため、キャッシュミスとして、主記憶手段からこれらのデータの読出しが再度行われる。
キャッシュのヒット率を高めるために、キャッシュメモリのラインサイズを小さくすることが考えられる。しかし、キャッシュメモリのラインサイズを小さくすると、タグの容量が大きくなり、キャッシュメモリの制御回路が複雑化し回路規模が大きくなるという問題がある。一方、ラインサイズを大きくすると、キャッシュのヒット率が低下し、それに起因してシステム全体の処理効率も低下する。
本発明の一つの態様は、圧縮動画像の復号に際してマクロブロック単位で順次動き補償処理を行う動き補償装置である。この動き補償装置は、バッファメモリと、読出部と、読出対象領域特定部と、読出対象領域分割部と、制御部を備える。
読出部は、参照画像が記憶された外部メモリからデータの読出しを行い、読み出したデータをバッファメモリに格納する。
読出対象領域特定部は、マクロブロックに対する動き補償処理のための参照領域を含む参照画像が記憶された外部メモリから参照領域の画素データを読み出す際の読出対象領域を特定し、読出対象領域分割部はこの読出対象領域を複数の分割領域に分割する。
制御部は、読出対象領域特定部が特定した読出対象領域の読出しを読出部に行わせると共に、読出部の前回までの読出しによりバッファメモリに格納されたデータを分割領域毎に管理する。そして、読出対象領域が特定した今回の読出対象領域の各分割領域のうちの、バッファメモリにその画素データが格納されていない分割領域の画素データの読出しのみを読出部に行わせる。
なお、上記態様の動き補償装置を、方法や、装置、システムに置き換えて表現したものも、本発明の態様としては有効である。
本発明の技術によれば、圧縮動画像をマクロブロック単位で動き補償を行う際に、処理効率を高めつつ、回路規模の増大を抑制することができる。
以下、図面を参照して本発明の実施の形態について説明する。
図1は、本発明の実施の形態となる復号装置100を示す。例として復号装置100はMPEG−4に準拠したものであり、可変長符号復号部112と、逆量子化部114と、逆離散コサイン変換部116と、動き補償処理部120と、加算部170と、フィルタ処理部172と、メモリコントローラ180と、外部メモリ190を有する。なお、復号装置100は動画像の輝度成分と色差成分について復号するが、以下において、「データ」を「輝度成分のデータ」として用い、輝度成分のみについて説明する。色差成分については、データサイズが異なるだけで、処理シーケンスは同じであるため、同様の方式で処理される。
可変長符号復号部112は、MPEG−4の圧縮動画データS0に対して可変長符号の復号を行って量子化係数と動きベクトルを得る。この処理は、水平走査順にマクロブロック単位で行われる。
逆量子化部114は、可変長符号復号部112が得た量子化係数を逆量子化し、変換係数を得る。逆離散コサイン変換部116は、逆量子化部114が得た変換係数に対して逆離散コサイン変換を行って動き予測残差を得る。
動き補償処理部120は、可変長符号復号部112が得た動きベクトルに基づいて、該動きベクトルが示す参照領域の画素データである参照データ(その詳細について後述する)に対して動き補償演算を行って動き予測データを得る。
加算部170は、逆離散コサイン変換部116が得た動き予測残差と、動き補償処理部120が得た動き予測データとを加算して加算データを得る。
フィルタ処理部172は、加算部170が得た加算データをフィルタリングし、復号済みのデータ(復号データS1)を得る。
メモリコントローラ180は、フィルタ処理部172が得た復号データS1を外部メモリ190に格納させると共に、動き補償処理部120から読出要求があった際に、該読出要求に応じたデータ(読出データ)を外部メモリ190から読み出して動き補償処理部120に備えられた後述のキャッシュメモリに出力する。
復号装置100を詳細に説明する前に、まず、外部メモリとしてよく用いられるSDRAMを例にして、圧縮動画像を復号する際に復号済みのデータを外部メモリに格納する態様および外部メモリからデータを読み出す態様について説明する。
図2は、SDRAMの構成を示す。SDRAMは、複数のバンクから構成され、各バンクは、さらに複数のカラムより構成される。1つのカラムは、128バイトや256バイト、512バイトなどの容量を有する。前述したように、SDRAMにアクセスする際に、バーストアクセスのほうが優れているため、SDRAMの制御部やメモリバスプロトコルは、バースト転送をより高速に実現するように実装されている。また、同じカラム内のデータへのアクセスであれば、バースト転送開始の位置がランダムでも転送効率が悪くならないことと、アクセスが連続した場合、連続したアクセスが異なるバンクに対してなされるものであれば転送効率が悪くならないことも知られている。
このような事情から、SDRAMで構成されたフレームバッファに動画像を格納する際に、一般的に、動画像のフレームの水平走査方向順に画素単位に格納するのではなく、フレームを複数の矩形ブロック(以下格納ブロックという)に分け、1つの格納ブロック内のデータが1つのカラムに格納されるように、かつ、相隣する格納ブロックが異なるバンクに格納されるようにしている。図3は、そのイメージを示す。
図3に示すように、1つのフレームは、格納ブロック1、格納ブロック2、・・・などの複数の格納ブロックを有する。格納ブロックと、フレームバッファ内のカラムは1対1に対応し、各格納ブロック内のデータは、それぞれが対応するカラムに格納される。図中括弧の中は、その格納ブロックが格納されるバンクの番号であり、隣接する格納ブロックは、異なるバンクの中に格納されるようになっている。
動画像のフレームは、図3に示す態様でフレームバッファに格納される。フレームバッファからデータを読み出す際に、バンク番号、バンク内のカラム番号、カラム内の位置(ローアドレス)を指定する。
また、フレームバッファへのデータの格納およびフレームバッファからデータの読出しは、アクセス単位(1サイクルでやり取りするデータの量)で行われるので、各カラム内に格納されるデータのサイズは、アクセス単位の整数倍になる。
ここでフレームバッファへアクセスする際のアクセス単位について考える。前述したように、SDRAMとのデータ転送はバースト転送が用いられ、バースト転送の単位(ビット幅)は例えば8ビットや16ビットなどである。また、近年、SDRAMではDDR−SDRAM(Double−Data−Rate SDRAM)が主流になっている。図4の左側に示すように、DDR−SDRAMのメモリバスバスプロトコルは、高速なクロック信号の立ち上がりと立ち下がりの両エッジにそれぞれ同期してデータをやり取りする。このプロトコルをそのままLSIで用いることが困難であるため、DDR−SDRAMとデータのやり取りをLSIは、図4の右側に示すように、ビット幅とクロック周波数の変換を行い、クロック信号の周波数を下げると共にデータのビット幅を増やして、クロック信号の立ち上がりエッジのみに同期してLSIの内部バスにデータを転送する。そのため、LSIからDDR−SDRAMへのアクセス単位は、バースト転送の単位より大きい。
すなわち、DDR−SDRAMで構成されたフレームバッファでは、動画像のフレームは格納ブロック毎に対応するカラムに格納され、かつ、隣接する格納ブロックとそれぞれ対応するカラムは、異なるバンク内にある。フレームバッファへアクセスする際のアクセス単位は、SDRAMのバースト転送より大きく、各カラムにはアクセス単位の整数倍のデータが格納される。
以上の説明を踏まえて、図1に示す実施の形態の復号装置100におけるメモリコントローラ180と外部メモリ190を説明する。
外部メモリ190は、DDR−SDRAMにより構成されたフレームバッファである。フィルタ処理部172は、復号データS1を得てメモリコントローラ180に出力し、メモリコントローラ180は、復号データS1を外部メモリ190に格納する。
本実施の形態において、例として、外部メモリ190の各カラムのサイズは16バイト×16バイト(256バイト)であり、メモリコントローラ180が外部メモリ190へアクセスする際のアクセス単位は64ビット(8バイト)である。また、復号データS1の1画素が8ビットであり、外部メモリ190への1アクセス単位は、水平走査方向の連続した8画素分のデータである。そのため、本実施の形態において、復号データS1は、図5に示す格納ブロック単位(16画素×16画素)で外部メモリ190に格納され、外部メモリ190内における1つのカラムに、1つの格納ブロックのデータが格納される。
また、本実施の形態において、各格納ブロックへのアドレスの割り当ては、水平8画素単位でなされている。図6は、アドレスの割り当て順の例を示す。図中矢印が示すように、格納ブロック内において、左上の8画素(図中0で表す)→左下の8画素→右上の8画素右下の8画素(図中31で表す)の順でアドレスが割り当てられている。
このようなアドレスの割り当ては、フレーム内において、左上の格納ブロックから水平走査順に各格納ブロックに対してなされる。図7は、4格納ブロック×4格納ブロックのフレームのアドレスの割り当て例を示しており、図示のように、左上の格納ブロックから水平走査方向の順で格納ブロック毎に32個のアドレスが割り当てられている。これらのアドレスの上位ビットは、バンク番号の指定や、格納ブロックがフレームにおける位置を示すことができる。図7から分かるように、アドレスの割り当ては、フレームの左上の8画素からスタートし、水平走査順に行われているので、格納ブロックがフレームにおける位置はフレームの先頭(左上端)との相対位置であり、左上の8画素のアドレスは、他の各8画素のベースアドレスとなる。
次いで復号装置100の動き補償処理部120を説明する。
図8は、動き補償処理部120を示す。動き補償処理部120は、水平走査方向順にマクロブロック単位で動き補償を行うものであり、参照領域特定部122と、読出対象領域特定部124と、読出対象領域分割部126と、制御部130と、バッファメモリ140と、出力部150と、動き補償演算部160を備える。なお、図8において、様々な処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、CPU、メモリ、その他のLSIで構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
参照領域特定部122は、可変長符号復号部112が得た復号中のマクロブロックの動きベクトルを入力し、この動きベクトルが示す領域を参照領域として特定する。マクロブロックのサイズおよび参照領域のサイズが規格によって異なり、本実施の形態において、マクロブロックのサイズは8画素×8画素であり、参照領域のサイズは13画素×13画素である。
参照領域は既に復号済みのフレーム(以下参照フレームという)上の領域であり、そのデータはフレームバッファとして機能する外部メモリ190に格納されている。読出対象領域特定部124は、参照領域特定部122が特定した参照領域に基づいて、外部メモリ190からデータを読み出す領域(読出対象領域)を特定する。図9を参照して参照領域と読出対象領域の関係を説明する。
前述したように、外部メモリ190へのアクセスが水平走査方向に並ぶ8画素単位であるので、13画素×13画素の参照領域のデータを外部メモリ190から読み出すために、この参照領域を含む16画素×13画素か24画素×13画素の読出対象領域のデータを読み出すことになる。図9において、点線枠が示す13画素×13画素の領域が参照領域であり、図9の左部分と右部分は16画素×13画素を読み出す場合と24画素×13画素を読み出す場合をそれぞれ示す。読出対象領域特定部124は、参照領域特定部122が特定した13画素×13画素の参照領域に基づいて、図9に示す16画素×13画素または24画素×13画素の読出対象領域を特定する。
すなわち、復号中のマクロブロックに対して動き補償をするための参照領域のデータを読み出すために、実際に読み出す領域(読出対象領域)はこの参照領域を含み参照領域より大きい。
読出対象領域分割部126は、読出対象領域特定部124が特定した読出対象領域を複数の分割領域に分割する。本実施の形態において、読出対象領域分割部126は、読出対象領域に対して、水平方向において、アクセス単位と同じ大きさの8画素単位に分割する。図10に示すように、16画素×13画素の読出対象領域は8画素×13画素の2つの分割領域に分割され、24画素×13画素の読出対象領域は8画素×13画素の3つの分割領域に分割される。
読出対象領域分割部126は、このようにして読出対象領域を分割し、各分割領域のサイズ情報と位置情報、およびベースアドレスを読出対象情報として制御部130に出力する。サイズ情報は分割領域の大きさ(図10の例では8画素×13画素)である。位置情報は、分割領域が参照フレーム上における位置を示すものであり、参照フレームの左上端を基準とする。ベースアドレスは、参照フレームの先頭アドレスであり、本実施の形態においては、参照フレームの左上の8画素のアドレスとなる。
制御部130は管理情報バッファ132と読出制御部134を備え、読出制御部134は、読出対象領域分割部126からの読出対象情報と、管理情報バッファ132に記憶された管理情報とに基づいて外部メモリ190からのデータの読出しを制御する。なお、管理情報は、バッファメモリ140にその画素データが格納されている分割領域の読出対象情報である。
ここでまず、管理情報バッファ132に管理情報が記憶されていない場合について説明する。この場合、復号中のマクロブロックは、それが属するフレームの各マクロブロックのうちの最初に復号されるマクロブロックすなわち該フレームの左上端のマクロブロックである。
読出制御部134は、読出対象領域分割部126からの読出対象情報が示す各分割領域の読出要求をメモリコントローラ180に出力すると共に、これらの分割領域の読出対象情報を管理情報として管理情報バッファ132に格納させる。
メモリコントローラ180は、読出部として機能し、読出制御部134からの読出要求を受信すると、該当する分割領域の画素データを外部メモリ190から読み出してバッファメモリ140に出力する。なお、メモリコントローラ180は、外部メモリ190が出力するデータのビット幅に対してビット幅変換と周波数変換を行う機能が実装されている。
バッファメモリ140は、メモリコントローラ180が読み出したデータ(読出データ)を格納する。この読出データは、参照領域特定部122が特定した参照領域のデータを含む16画素×13画素または24画素×13画素の読出対象領域の画素データである。
出力部150は、制御部130の管理情報バッファ132に格納された管理情報に基づいて、参照領域特定部122が特定した13画素×13画素の参照領域の画素データ(参照データ)がバッファメモリ140に格納されているか否かを確認する。このとき、キャッシュメモリに格納された各分割領域の管理情報が既に管理情報バッファ132に格納されているので、出力部150は、参照データをバッファメモリ140から読み出して動き補償演算部160に出力する。
動き補償演算部160は、出力部150からの参照データを用いて動き補償演算を行い、復号中のマクロブロックの動き予測データを得る。
次いで管理情報バッファ132に管理情報が記憶されている場合について説明する。上記の説明から分かるように、管理情報バッファ132に格納された管理情報は、外部メモリ190からそのデータが読み出されバッファメモリ140に格納された各分割領域の管理情報である。
ここで、復号中のマクロブロックの読出対象領域とその後に復号するマクロブロックの読出対象領域の関係について考える。マクロブロックの参照領域はその動きベクトルにより示されるが、隣接するマクロブロックは同じ動きベクトルを有する確率が高い。また、隣接するマクロブロックの動きベクトルが異なる場合でも、2つの動きベクトルが指す参照領域間の差は整数個の画素に満たさないことが多い。さらに、本実施の形態において、参照領域より大きい領域を読出対象領域に特定しているので、隣接するマクロブロックの読出対象領域の大部分は高い確率で重なる。
復号中のマクロブロックの次に復号するマクロブロックは、復号中のマクロブロックと同一の水平方向走査ラインに位置している場合、この復号中のマクロブロックと水平方向に隣接する。また、復号中のマクロブロックの次に復号するマクロブロックは、復号中のマクロブロックの水平方向走査ラインの1つ下の水平方向走査ラインに位置する場合には、復号中のマクロブロックの水平方向走査ラインに位置する各マクロブロックの復号が既に完了している。そのため、次に復号するマクロブロックは、復号中のマクロブロックの水平方向走査ラインに位置する既に復号が完了しているマクロブロックと垂直方向に隣接する。
すなわち、動き補償演算のために外部メモリ190から読み出してバッファメモリ140に格納された読出データには、復号中のマクロブロックの後に復号するマクロブロックの読出データの少なくとも一部を含むことが多い。
読出制御部134は、管理情報バッファ132に管理情報が記憶されている場合に、読出対象領域分割部126からの読出対象情報と、管理情報バッファ132に記憶された管理情報とを比較する。読出制御部134は、読出対象領域分割部126からの読出対象情報が示す分割領域のうちの、管理情報バッファ132にその管理情報が格納されていない分割領域に対してのみ、読出要求をメモリコントローラ180に出力する。また、読出制御部134は、読出要求をした分割領域の読出対象情報を管理情報として管理情報バッファ132に格納させる。
なお、読出対象領域分割部126からの読出対象情報が示す分割領域のうちの、管理情報バッファ132にその管理情報が格納されている分割領域の画素データは、前に復号したマクロブロックの動き補償演算のために既に外部メモリ190から読み出されてバッファメモリ140に格納されている。
メモリコントローラ180、バッファメモリ140、出力部150、動き補償演算部160のこの後の処理は、前述した1つ目のマクロブロックのときと同じである。
本実施の形態において、バッファメモリ140は、FIFO(First In First Out)メモリである。管理情報バッファ132もFIFOメモリであり、バッファメモリ140が格納できる分割領域の分の管理情報を記憶する容量を有する。バッファメモリ140にその画素データが格納された分割領域の管理情報は管理情報バッファ132に格納されており、バッファメモリ140が分割領域の画素データを破棄する際に、管理情報バッファ132もこの分割領域の管理情報を破棄する。
図11は、図8に示す動き補償処理部120における処理の流れを示すフローチャートである。参照領域特定部122は、復号中のマクロブロックの動きベクトルが示す13画素×13画素の参照領域を特定し(S10)、読出対象領域特定部124は、参照領域特定部が特定した参照領域に応じて、該参照領域を含む16画素×13画素または24画素×13画素の読出対象領域を特定する(S20)。読出対象領域分割部126は、読出対象領域特定部124が特定した読出対象領域を8画素×13画素の分割領域に分割すると共に、これらの分割領域が位置する参照フレームのベースアドレス、および各分割領域が参照フレームにおける位置を示す位置情報とサイズ情報を読出対象情報として制御部130に出力する(S30)。
制御部130の読出制御部134は、読出対象領域分割部126から出力された各分割領域の読出対象情報と、管理情報バッファ132に分割領域毎に格納された管理情報とを比較し、読出対象情報が示す分割領域のうちの、その管理情報が管理情報バッファ132に格納されていない分割領域についてのみ読出要求をメモリコントローラ180に出力する(S40、S50:No、S60)。また、ステップS60において、読出制御部134は、読出要求をした分割領域の読出対象情報を、該分割領域の管理情報として管理情報バッファ132に出力して格納させる。
メモリコントローラ180は、読出制御部134からの読出要求に応じて外部メモリ190から当該分割領域の画素データを読み出して読出データをバッファメモリ140に格納する(S70、S80)。
すなわち、復号中のマクロブロックの読出領域の各分割領域のうちの、その画素データがバッファメモリ140に格納されていない分割領域の画素データは外部メモリ190から読み出されてバッファメモリ140に格納される。復号中のマクロブロックの読出領域の各分割領域のうちの、その画素データが既にバッファメモリ140に格納されている分割領域の画素データについては、外部メモリ190からの読出しがなされない。
これにより、復号中のマクロブロックの参照領域を含む読出対象領域の画素データがバッファメモリ140に格納され、管理情報バッファ132にはそれらの管理情報が格納される。そのため、出力部150は、管理情報バッファ132を参照して読出対象領域の画素データがバッファメモリ140に格納されていることを知ることができる。出力部150は、参照領域特定部122が特定した13画素×13画素の参照領域の画素データのアドレスを特定し、特定したアドレスから参照データを読み出して動き補償演算部160に出力する(S90、S100)。
動き補償演算部160は、出力部150からの参照データを用いて動き補償演算を行って動き予測データを得、この動き予測データを加算部170に出力する(S110)。これをもって、復号中のマクロブロックの動き補償処理が完了する。
図12は、復号装置100のバッファメモリ140における参照領域の画素データおよび読出対象領域の画素データの格納態様と管理態様を示す。なお、図13に示す従来のキャッシュメモリ1と比較しやすいために、参照領域の画素データ、読出対象領域の画素データを示す枠に対して同じ符号で表示する。
図12に示すように、バッファメモリ140において、画素データが格納単位で格納される。この格納単位は、動き補償処理部120の内部バス上を転送されるデータのビット幅であり、外部メモリ190へのアクセス単位と同一である。本実施の形態においてこの格納単位は64ビットの8画素分となる。図12に示す例では、参照領域の画素データは、C1−C2−C3−C4の点線枠で示す13画素×13画素のデータであり、読出対象領域の画素データは、B13−B14−B42−B41で示す24画素×13画素のデータである。
制御部130は、読出対象領域を8画素×13画素の分割領域に分割して得た分割領域毎にバッファメモリ140に格納されたデータを管理している。図12に示すように、B13−B14−B42−B41で示す読出対象領域の画素データは、B13−B14−D2−D1、D1−D2−D3−D4、D4−D3−B42−B41の3つの分割領域の画素データに分割されている。制御部130の管理情報バッファ132は、これらの分割領域毎に管理情報を保持している。
従来のキャッシュメモリは、データが外部メモリに記憶されたアドレスそのものを用いてライン単位でデータを管理するので、ラインサイズは2のべき乗ビット数であり、ライン内にラインサイズ分のデータが格納されてはじめてこのライン内のデータが利用できる。そのため、図13に示す例のように、B31−B32−B42−B41が示すデータが格納されている場合でも、これらのデータが属するラインのタグがセットされないため、キャッシュミスとして、主記憶手段からこれらのデータの読出しが再度行われる。
それに対して、本実施の形態では、バッファメモリ140に格納されたデータを分割領域単位で管理し、管理情報として分割領域の位置情報を用いることによって、参照フレーム上の任意の位置(アドレス)からの画素データを管理することができる。そのため、バッファメモリ140に画素データが格納されている分割領域であれば、管理情報バッファ132にはその管理情報が保持されており、バッファメモリ140から出力可能であり、動き補償処理の効率を高めることができる。
また、本実施の形態において、分割領域のサイズ情報も管理情報に用いる。こうすることによって、データを分割領域のサイズで管理することができ、動き補償演算に参照データを供給するための、外部メモリからの読出しを必要最小限に抑えることができる。さらに、バッファメモリ140の容量も分割領域のサイズで管理することができるので、参照領域乃至読出対象領域の大きさが可変である場合や参照データのサイズが2のべき乗ビット数ではない場合においても、読出データを詰めて格納することができ効率的にバッファメモリを利用することができる。すなわち、格納されたデータの再利用に際して、小さなバッファメモリ容量で従来のキャッシュメモリと同様な再利用効果を得ることができる。
また、H.264やVC−1の規格に準拠した動画像の場合、マクロブロックのサイズは4画素×4画素や4画素×8画素などの小さいサイズになり、参照領域のサイズ、読出対象領域のサイズも小さくなる場合がある。このような場合においても、参照領域のサイズに応じた読出対象領域を分割して得た分割領域単位でバッファメモリに格納されたデータを管理することができるので、バッファメモリに格納されたデータの再利用における本発明の技術の効果をより発揮することができる。
以上、実施の形態をもとに本発明を説明した。実施の形態は例示であり、本発明の主旨から逸脱しない限り、さまざまな変更、増減を加えてもよい。これらの変更、増減が加えられた変形例も本発明の範囲にあることは当業者に理解されるところである。
例えば、本実施の形態の復号装置100において、分割領域の大きさが固定した8画素×13画素である。H.264やVC−1などの場合は、マクロブロックのサイズが可変であるため、参照領域のサイズ、読出対象領域のサイズも可変である。このような場合においても、外部メモリからの読出データの読出しおよびバッファメモリに格納されたデータの管理に本発明の技術を適用することができる。
また、本実施の形態の復号装置100は、復号中のマクロブロックの動き補償演算処理のために読み出した読出データをバッファメモリに蓄積しておき、時系列に後に処理されるマクロブロックの動き補償演算処理の際に、バッファメモリに蓄積されたデータを再利用する形態に本発明の技術を適用したものである。本発明は、特許文献1に記載されたような、現在のマクロブロックの復号時に次の参照領域を予測し、予測した参照領域の画素データを外部メモリから読み出してキャッシュメモリに格納する形態の復号装置にも本発明の技術を適用することができる。この場合、予測された参照領域について読出対象領域を特定すればよい。
また、本実施の形態の復号装置100は、外部メモリ190の構造上の理由から参照領域より大きい読出対象領域の画素データを外部メモリ190から読み出しているが、たとえば特許文献2に記載されたように、キャッシュメモリのヒット率を高めるために意図的に参照領域を含む参照領域より大きい領域の画素データを読み出す形態の復号装置にも、本発明の技術を適用することができる。
本発明の実施の形態にかかる復号装置を示す図である。 図1に示す復号装置における外部メモリを説明するための図である。 フレームが外部メモリに格納される態様を示す図である。 外部メモリへアクセスする際のアクセス単位を説明するための図である。 外部メモリの1カラムに格納される格納ブロックのデータを示す図である。 格納ブロック内のデータに対するアドレスの割当てを説明するための図である。 1フレームのデータのアドレスの割当て例を示す図である。 図1に示す復号装置における動き補償処理部を示す図である。 参照領域と読出対象領域の関係を示す図である。 読出対象領域の分割を説明するための図である。 図8に示す動き補償処理部における処理の流れを示すフローチャートである。 図8に示す動き補償処理部のバッファメモリにおけるデータの格納態様および管理態様を示す図である。 動き補償処理に従来のキャッシュメモリを利用する場合の問題点を説明するための図である。
符号の説明
100 復号装置
112 可変長符号復号部
114 逆量子化部
116 逆離散コサイン変換部
120 動き補償処理部
122 参照領域特定部
124 読出対象領域特定部
126 読出対象領域分割部
130 制御部
132 管理情報バッファ
134 読出制御部
140 バッファメモリ
150 出力部
160 動き補償演算部
170 加算部
172 フィルタ処理部
180 メモリコントローラ
190 外部メモリ

Claims (5)

  1. 圧縮動画像の復号に際してマクロブロック単位で順次動き補償処理を行う動き補償装置であって、
    バッファメモリと、
    参照画像が記憶された外部メモリからデータの読出しを行い、読み出したデータを前記バッファメモリに格納する読出部と、
    前記参照画像上の読出対象領域であって、前記マクロブロックに対する前記動き補償処理のための参照領域の画素データを前記外部メモリから読み出す際の前記読出対象領域を特定する読出対象領域特定部と、
    該読出対象領域特定部が特定した前記読出対象領域を複数の分割領域に分割する読出対象領域分割部と、
    前記読出対象領域特定部が特定した読出対象領域の読出しを前記読出部に行わせると共に、前記読出部の前回までの読出しにより前記バッファメモリに格納された画素データを前記分割領域毎に管理する制御部であって、前記読出対象領域特定部が特定した今回の読出対象領域の各分割領域のうちの、前記バッファメモリにその画素データが格納されていない分割領域の画素データの読出しのみを前記読出部に行わせる制御部とを備え
    前記制御部は、
    前記バッファメモリに格納されている各前記分割領域の画素データ毎に、該分割領域が含まれる前記参照画像の先頭アドレスと、該分割領域が前記参照画像上における位置を示す位置情報とを管理情報として管理情報保持部と、
    該管理情報保持部が保持した前記管理情報に基づいて前記読出部による読出しの制御を行う読出制御部とを備え、
    前記管理情報保持部は、前記分割領域の大きさを示すサイズ情報も前記管理情報として保持することを特徴とする動き補償装置。
  2. 前記読出対象領域特定部は、前記参照領域を含む前記参照領域より大きい領域を該参照領域の読出対象領域として特定することを特徴とする請求項1に記載の動き補償装置。
  3. 現在復号中のマクロブロックの動きベクトルを復号する動きベクトル復号部をさらに備え、
    前記読出対象領域特定部は、前記動きベクトル復号部により得られた前記動きベクトルが示す前記参照領域に対応する前記読出対象領域を特定するものであることを特徴とする請求項1または2に記載の動き補償装置。
  4. 現在復号中のマクロブロックの動きベクトルを復号する動きベクトル復号部と、
    前記動きベクトルが示す前記参照領域の次の参照領域を予測する予測部とをさらに備え、
    前記読出対象領域特定部は、前記予測部が予測した前記次の参照領域に対応する前記読出対象領域を特定するものであることを特徴とする請求項1または2に記載の動き補償装置。
  5. 前記バッファメモリは、FIFO(First In First Out)であることを特徴とする請求項1から4のいずれか1項に記載の動き補償装置。
JP2007112762A 2007-04-23 2007-04-23 動き補償装置 Expired - Fee Related JP4755624B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2007112762A JP4755624B2 (ja) 2007-04-23 2007-04-23 動き補償装置
EP20080154236 EP1986439A2 (en) 2007-04-23 2008-04-09 Efficient cache memory fetching for motion compensated video decoding
US12/081,090 US20080259089A1 (en) 2007-04-23 2008-04-10 Apparatus and method for performing motion compensation by macro block unit while decoding compressed motion picture

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007112762A JP4755624B2 (ja) 2007-04-23 2007-04-23 動き補償装置

Publications (2)

Publication Number Publication Date
JP2008271292A JP2008271292A (ja) 2008-11-06
JP4755624B2 true JP4755624B2 (ja) 2011-08-24

Family

ID=39677380

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007112762A Expired - Fee Related JP4755624B2 (ja) 2007-04-23 2007-04-23 動き補償装置

Country Status (3)

Country Link
US (1) US20080259089A1 (ja)
EP (1) EP1986439A2 (ja)
JP (1) JP4755624B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5580541B2 (ja) 2009-03-06 2014-08-27 パナソニック株式会社 画像復号化装置および画像復号化方法
WO2012120582A1 (ja) * 2011-03-07 2012-09-13 パナソニック株式会社 動き補償装置、動画像符号化装置、動画像復号装置、動き補償方法、プログラム、及び集積回路
US9122609B2 (en) * 2011-03-07 2015-09-01 Texas Instruments Incorporated Caching method and system for video coding
JP5662233B2 (ja) * 2011-04-15 2015-01-28 株式会社東芝 画像符号化装置及び画像復号装置
WO2013076897A1 (ja) * 2011-11-24 2013-05-30 パナソニック株式会社 画像処理装置および画像処理方法
CN103841083B (zh) * 2012-11-22 2017-07-21 华为技术有限公司 增强报文识别能力的方法及装置
GB2509169B (en) * 2012-12-21 2018-04-18 Displaylink Uk Ltd Management of memory for storing display data
KR102358276B1 (ko) 2014-09-30 2022-02-04 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 비디오 코딩을 위한 해시 기반 인코더 결정
US11202085B1 (en) * 2020-06-12 2021-12-14 Microsoft Technology Licensing, Llc Low-cost hash table construction and hash-based block matching for variable-size blocks

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10215457A (ja) * 1997-01-30 1998-08-11 Toshiba Corp 動画像復号方法及び動画像復号装置
JP4264571B2 (ja) * 1998-04-09 2009-05-20 ソニー株式会社 ディジタル画像復号装置及び方法、並びに記録媒体
US6835750B1 (en) * 2000-05-01 2004-12-28 Accera, Inc. Use of medium chain triglycerides for the treatment and prevention of alzheimer's disease and other diseases resulting from reduced neuronal metabolism II
JP2002152756A (ja) * 2000-11-09 2002-05-24 Mitsubishi Electric Corp 動画像符号化装置
JP2003296724A (ja) * 2002-04-05 2003-10-17 Hitachi Ltd 画像処理システム及びその方式
JP4419608B2 (ja) * 2004-02-27 2010-02-24 セイコーエプソン株式会社 動画像符号化装置
JP4436782B2 (ja) * 2004-05-14 2010-03-24 パナソニック株式会社 動き補償装置
JP2006279330A (ja) * 2005-03-28 2006-10-12 Victor Co Of Japan Ltd 動き補償処理方法
US20060224871A1 (en) * 2005-03-31 2006-10-05 Texas Instruments Incorporated Wide branch target buffer
JP2006287583A (ja) * 2005-03-31 2006-10-19 Victor Co Of Japan Ltd 画像データ領域取得補間回路
US20070008323A1 (en) * 2005-07-08 2007-01-11 Yaxiong Zhou Reference picture loading cache for motion prediction
JP4757080B2 (ja) * 2006-04-03 2011-08-24 パナソニック株式会社 動き検出装置、動き検出方法、動き検出集積回路および画像符号化装置

Also Published As

Publication number Publication date
JP2008271292A (ja) 2008-11-06
US20080259089A1 (en) 2008-10-23
EP1986439A2 (en) 2008-10-29

Similar Documents

Publication Publication Date Title
JP4755624B2 (ja) 動き補償装置
JP5969914B2 (ja) 動画像圧縮伸張装置
US20050190976A1 (en) Moving image encoding apparatus and moving image processing apparatus
US9612962B2 (en) Performing cache bank operations in offset sequences from first bank
KR100772379B1 (ko) 외부 메모리 장치, 그 영상 데이터 저장 방법, 이를 이용한영상 처리 장치
JP5043012B2 (ja) キャッシュ・ローカリティを保存するビデオ符号化/復号化方法
US20050169378A1 (en) Memory access method and memory access device
KR100606812B1 (ko) 비디오 디코딩 시스템
US20170019679A1 (en) Hybrid video decoding apparatus for performing hardware entropy decoding and subsequent software decoding and associated hybrid video decoding method
JP2010119084A (ja) 高速動き探索装置及びその方法
US9118891B2 (en) Video encoding system and method
US20120147023A1 (en) Caching apparatus and method for video motion estimation and compensation
US8406306B2 (en) Image decoding apparatus and image decoding method
JP3322233B2 (ja) 動画像伸長方法及びそれを実行するプログラムを記録した記録媒体
US20110099340A1 (en) Memory access control device and method thereof
US20110096082A1 (en) Memory access control device and method thereof
JP5182285B2 (ja) デコード方法及びデコード装置
US20190095338A1 (en) Semiconductor device, data processing system, and semiconductor device control method
JP2007259323A (ja) 画像復号化装置
JP4383367B2 (ja) 動きベクトル検出装置
JPH11289536A (ja) 動画像伸長装置及び方法
JP5867050B2 (ja) 画像処理装置
US20070071098A1 (en) Image storage device for motion estimation and method of storing image data
JPH11167518A (ja) 動画復号化装置におけるメモリの使用方法
WO2009080590A1 (en) Method and apparatus for performing de-blocking filtering of a video picture

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100114

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110315

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110414

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

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

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

Free format text: PAYMENT UNTIL: 20140603

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees