JP2008182471A - 演算装置 - Google Patents

演算装置 Download PDF

Info

Publication number
JP2008182471A
JP2008182471A JP2007014139A JP2007014139A JP2008182471A JP 2008182471 A JP2008182471 A JP 2008182471A JP 2007014139 A JP2007014139 A JP 2007014139A JP 2007014139 A JP2007014139 A JP 2007014139A JP 2008182471 A JP2008182471 A JP 2008182471A
Authority
JP
Japan
Prior art keywords
block
reference picture
picture
memory
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.)
Pending
Application number
JP2007014139A
Other languages
English (en)
Inventor
Yuji Nagaishi
裕二 永石
Takashi Masuno
貴司 増野
Hiroki Kobayashi
裕樹 小林
Kenjiro Tsuda
賢治郎 津田
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial 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
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2007014139A priority Critical patent/JP2008182471A/ja
Publication of JP2008182471A publication Critical patent/JP2008182471A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

【課題】対象ピクチャへの1度のメモリアクセスで複数の参照ピクチャに対する差分絶対値和演算を並列に行なう装置であって、メモリ数を削減し、メモリ量を減少させることが可能な演算装置およびその方法を提供する。
【解決手段】動画像の符号化対象ピクチャ内のブロックと参照ピクチャ内のブロックとの間の差分絶対値の和を演算する演算装置であって、複数の参照ピクチャ中の少なくとも1ブロックを記憶する複数の第1のメモリ205と、符号化対象ピクチャ中の少なくとも1ブロックを記憶する第2のメモリ206と、複数の第1のメモリ205の各々からのブロックの読み出しと、第2のメモリ206からの読み出しとを同時に行なうアクセス部203と、アクセス部203により、読み出された符号化対象ピクチャのブロックと、参照ピクチャのブロックの各々との間の差分絶対値の和を並列に演算する、2以上の差分演算部204とを備える。
【選択図】図1

Description

本発明は、演算装置およびその方法に関し、特に、動き検出処理等に用いられる差分和演算装置およびその方法に関するものである。
H.264(ISO/IEC 14496−10 Advanced Video Coding)は、MPEG(Moving Picture Expserts Group)2やMPEG(Moving Picture Expserts Group)4などに対して約2倍以上の圧縮率を実現できるといわれており、低帯域でのビデオ通信や、ハイビジョン画像伝送およびビデオカメラへの応用が期待されている。
従来のH.264の符号化装置の概要について以下に説明する。
図16は従来のH.264の符号化方式を用いた符号化装置300の構成を示すブロック図である。この図16に示されるように、符号化装置300は、直交変換部301と、量子化部302と、符号化部303と、逆量子化部304と、逆直交変換部305と、イントラ予測部306と、参照ピクチャメモリ307と、動き補償部308と、動きベクトル算出部309と、入力部310と、減算器311とを備えている。
入力部310は、符号化対象ピクチャをマクロブロックと呼ばれるN個のブロックに分割する。分割されたマクロブロックデータは順に減算器311および動きベクトル算出部309に送られる。
減算器311では符号化対象ピクチャと動き補償部308とにおいて動き補償された参照ピクチャの画像が供給され、この差分データが直交変換部301に供給される。
直交変換部301では、例えばDCT(Discrete Cosine Transform:離散コサイン変換)が行われ、その結果得られた変換係数は量子化部302によって量子化される。量子化されたデータは、逆量子化部304および逆直交変換部305により差分データが復元される。復元された差分データは、加算器312により動き補償されたデータを加算され、参照ピクチャメモリ307に参照ピクチャとして蓄積される。
符号化部303は、量子化された変換係数や動きベクトルなどを符号化する。符号化にはCAVLC(Context−based Adaptive Variable Length Coding:コンテキスト適応型可変長符号化方式)と呼ばれる可変長符号化方式、あるいはCABAC(Context−based Adaptive Binary Arithmetic Coding:コンテキスト適応型2値算術符号化方式)とよばれる算出符号化方式が使われる。
動きベクトル算出部309は、参照ピクチャメモリ307に蓄積された参照ピクチャと入力される符号化対象の対象ピクチャとの差分をとりその絶対値和を求めてパターンマッチングすることにより動きベクトル検出を行なう。検出された動きベクトルは、動き補償部308に出力され予測画像が生成されて減算器311に送られる。こうした処理ループを1マクロブロック毎に行なうことにより符号化される。
また、高効率の圧縮を実現するH.264を支える技術の一つに、複数のピクチャを参照ピクチャとして用いることができるというものがある。これはMPEG2やMPEG4では直前のPピクチャのみから動き補償予測を行なうのに対し、複数のピクチャを参照ピクチャとして用いて動き補償予測を行なうものである。
複数のピクチャを参照ピクチャとして用いると言うことは、符号化しようとする対象ピクチャと参照ピクチャをマクロブロック単位で差分をとりその絶対値和を求める(以下、差分絶対値和演算と記載。)という処理を複数の参照ピクチャに対して行なうことである。参照するピクチャが増えることは、より差分量の小さい参照ピクチャを検出することができる確率が多くなることを意味し、その結果、より効率的な動き補償予測を行なえる。
ここで、マクロブロックとは、16×16画素などのN×Mの画素の集まりである。
図17は、図16における差分絶対値和演算装置3000の構成を示す図である。
差分絶対値和演算装置3000は、参照ピクチャメモリ307と、符号化対象ピクチャメモリ3101と、差分絶対値和演算部3091とを備える。ここで、差分絶対値和演算装置3000は、図16に示す符号化装置300における主に動き補償部308および動きベクトル算出部309によって構成される。
対象ピクチャメモリ3101は入力部310から動きベクトル算出部309に入力される前に設けられたメモリである。
差分絶対値和演算部3091は、符号化対象ピクチャメモリ3101から符号対象ピクチャを、参照ピクチャメモリ307から参照ピクチャを読み出して差分絶対値和演算(Sum of Absoluete Differences)を行なう。
しかしながら、複数のピクチャに対して差分絶対値和演算を行なうと、それを保持するためのメモリ量や演算量も増加する。すなわち、図17において参照ピクチャメモリ307の数が増え、対象ピクチャと参照ピクチャとを読み出して絶対値差分演算をする回数が増えることに相当する。特に、ハイビジョン画角の処理に対応させようとすると、動作周波数を高くして単位時間あたりの処理量を増やすか、並列に処理化して処理量を増やすことなどが必要になる。動作周波数を上げて処理量を向上させる方法は、使用する半導体プロセスに依存するため、それ以上の処理を行なうには処理の並列化などの方法が必要となる。
特許文献1では、動作周波数を上げずに処理量を向上させる方法が紹介されている。ここでは、差分画像データ用と予測画像データ用とのバッファメモリをそれぞれ複数もつことで、書き込みと読み出しとを異なるバッファメモリから行い、一定画素数を処理するごとに使用するバッファメモリを切り替えるようにしている。それにより、差分画像データを連続して入力できるので、バッファメモリへのアクセスを切り替えながら連続に行なうことで全体の処理量を向上させている。
特開平7−336689号公報
しかしながら、複数の参照ピクチャに対して並列的に差分絶対値和演算を行なうためには、複数の参照ピクチャを格納するメモリを多数必要とする。また、上記特許文献1にあるように、複数の参照ピクチャと符号化対象ピクチャとの差分絶対値和演算を行なうには、複数の参照ピクチャの各々に対する符号化対象ピクチャをその都度、読み出す必要がある。その結果、メモリアクセス量が増大してしまい、演算装置を動作させるための消費電力が増大してしまう。このことは、ビデオカメラのように高画質および低消費電力が要求される携帯型電子機器などの設計を困難にする。
本発明は、上記の問題点に鑑みてなされたものであり、対象ピクチャへの1度のメモリアクセスで複数の参照ピクチャに対する差分絶対値和演算を並列に行なう装置であって、メモリ数を削減し、メモリアクセス量を減少させることが可能な演算装置およびその方法を提供することを目的とする。
上記目的を達成するために、本発明に係る演算装置は、動画像の符号化対象ピクチャ内のブロックと参照ピクチャ内のブロックとの間の差分絶対値の和を演算する演算装置であって、複数の参照ピクチャ中の少なくとも1ブロックを記憶する複数の第1のメモリと、符号化対象ピクチャ中の少なくとも1ブロックを記憶する第2のメモリと、前記複数の第1のメモリの各々からのブロックの読み出しと、前記第2のメモリからの読み出しとを同時に行なうアクセス手段と、前記アクセス手段により、読み出された前記符号化対象ピクチャのブロックと、前記参照ピクチャのブロックの各々との間の差分絶対値の和を並列に演算する、2以上の差分演算手段とを備えることを特徴とする。
この構成により、符号化対象ピクチャと複数の参照ピクチャとに対する差分絶対値の和の演算を並列に行なうことができる。言い換えると、複数の参照ピクチャと符号化対象ピクチャとの差分絶対値和演算において、複数の参照ピクチャの各々に対して符号化対象ピクチャを繰り返し読み出すのではなく、1回だけ読み出すことで可能になる。したがって、符号化対象ピクチャ中の少なくとも1ブロックを記憶した符号化対象ピクチャメモリへの読み出しのためのアクセス回数を最小限にしつつ、符号化対象ピクチャとそれに対する差分絶対値和演算を並列に行なうことができ、メモリアクセス量を減少させる演算装置を実現することができる。
このとき、前記演算装置は、さらに、参照方向または参照ピクチャを指定する参照ピクチャ番号情報に応じて、いずれかの第1のメモリを選択する選択部と、前記選択部により選択された第1のメモリに符号化済みのピクチャを参照ピクチャとして記憶させる記憶部を有するライトメモリ選択手段を備えてもよい。
例えば、H.264では、複数のピクチャを参照ピクチャとして用いることができるが、この構成により、参照ピクチャのピクチャタイプがBピクチャあるいはPピクチャのいずれかであってもメモリが競合せずに対象ピクチャに対する複数の参照ピクチャを同時に読み出せるように、複数の参照ピクチャを参照ピクチャメモリに記憶させることができる。それにより、参照ピクチャメモリ数は無用に増やすことなく最小限の個数の構成となり、符号化対象ピクチャを記憶した符号化対象ピクチャメモリへの読み出しのためのアクセス回数を最小限にしつつ、符号化対象ピクチャと複数の参照ピクチャとを同時に読み出せるので、符号化対象ピクチャと複数の参照ピクチャとに対する差分絶対値和演算を並列に行なうことができる。
また、前記各第1のメモリは、N画素×N画素のサブブロックを少なくとも2つ記憶するための領域を有し、前記演算装置は、さらに、参照ピクチャに含まれるN画素×2N画素または2N画素×N画素のブロック中の前記サブブロック毎に複数の第1のメモリから1つを選択する選択部と、前記選択部が選択した第1のメモリに当該サブブロックを記憶させる記憶制御部を有するライトメモリ選択手段を備えてもよい。このとき、前記ライトメモリ選択手段は、対象ピクチャのブロックのサイズに応じて、当該対象ピクチャのブロック中のサブブロックを再配置して記憶させる第1のメモリを選択してもよい。
この構成により、符号化対象ピクチャのブロックに対する複数の参照ピクチャのブロック各々をブロックサイズに応じてブロック中のサブマクロブロックを再配置して参照ピクチャメモリに記憶させることでメモリが競合せずに同時に読み出せるようにできる。それにより、参照ピクチャメモリ数を無用に増やすことなく最小限の個数の構成にすることができる。
また、前記演算装置は、さらに、前記符号化対象ピクチャに対する参照ピクチャの参照方向または参照ピクチャを指定する参照ピクチャ番号情報に応じて、前記第1のメモリから読み出す当該参照ピクチャを選択するリードメモリ選択手段を備え、前記アクセス手段は、リードメモリ選択手段により選択された2つの第1メモリと、前記第2メモリとからブロックをそれぞれ同時に読み出してもよい。
この構成により、参照ピクチャのピクチャタイプがBピクチャあるいはPピクチャのいずれかであっても符号化対象ピクチャと、それに対応する複数の参照ピクチャとを同時に読み出すことができる。
なお、本発明は、装置として実現するだけでなく、このような装置が備える処理手段を備える集積回路として実現したり、その装置を構成する処理手段をステップとする方法として実現したり、それらステップをコンピュータに実行させるプログラムとして実現したり、そのプログラムを示す情報、データまたは信号として実現したりすることもできる。そして、それらプログラム、情報、データおよび信号は、CD−ROM等の記録媒体やインターネット等の通信媒体を介して配信してもよい。
本発明によれば、対象ピクチャへの1度のメモリアクセスで複数の参照ピクチャに対する差分絶対値和演算を並列に行なう装置であって、メモリ数を削減し、メモリアクセス量を減少させることが可能な演算装置およびその方法を実現することができる。よって、ビデオカメラのように高画質かつ低消費電力が要求される携帯型電子機器が普及しつつある今日における本発明の実用的価値は極めて高い。
以下、本発明の実施の形態1について図面を参照して説明する。
(実施の形態1)
図1は本発明に係る差分絶対値和演算装置200の構成を示すブロック図である。
この図1に示されるように、差分絶対値和演算装置200は、動画像の符号化対象ピクチャ内のブロックと参照ピクチャ内のブロックとの間の差分絶対値の和を演算する演算装置であって、ライトメモリ選択部201と、リードメモリ選択部202と、同期アクセス部203と、差分絶対値和演算部204と、参照ピクチャメモリ205と、対象ピクチャメモリ206とを備えている。
差分絶対値和演算装置200は、図14に示す符号化装置300における主に動き補償部308および動きベクトル算出部309において構成され、参照ピクチャメモリ205はピクチャメモリ307に相当し、対象ピクチャメモリ206は入力部310から入力される手前に設けられた符号化対象ピクチャメモリ3101に相当する。
参照ピクチャメモリ205は、本発明に係る複数の第1のメモリに相当し、複数の参照ピクチャ中の少なくとも1ブロックを記憶する。具体的には、入力された複数の参照ピクチャそれぞれが、ブロックに分割され2つの参照ピクチャメモリ205に格納される。
符号化対象ピクチャメモリ206は、本発明に係る第2のメモリに相当し、符号化対象ピクチャ中の少なくとも1ブロックを記憶する。具体的には、入力された符号化対象ピクチャがブロックに分割され1つの符号化対象ピクチャメモリ206に格納される。
ライトメモリ選択部201は、本発明に係るライトメモリ選択手段に相当し、参照方向または参照ピクチャを指定する参照ピクチャ番号情報に応じて、いずれかの第1のメモリを選択する選択部と、前記選択部により選択された第1のメモリに符号化済みのピクチャを参照ピクチャとして記憶させる記憶部を有する。具体的には、ライトメモリ選択部201に入力される参照ピクチャについての情報に応じて、例えば、参照ピクチャの参照方向または参照ピクチャ番号などに応じて書き込む参照ピクチャメモリ205を選択する。
リードメモリ選択部202は、本発明に係るリードメモリ選択手段に相当し、前符号化対象ピクチャに対する参照ピクチャの参照方向または参照ピクチャを指定する参照ピクチャ番号情報に応じて、前記第1のメモリから読み出す当該参照ピクチャを選択する。具体的には、参照ピクチャメモリ205に格納された参照ピクチャのブロックを、参照ピクチャについての情報、例えば、参照方向あるいは参照ピクチャ番号などに基づいて読み出す参照ピクチャメモリ205と参照ピクチャのブロックとを選択する。また、リードメモリ選択部202は、複数の参照ピクチャメモリ205に対して、同時にアクセスできる構成であり、これらを同時に読み出すことができる。
差分絶対値和演算部204は、本発明に係る差分演算手段に相当し、前記アクセス手段により、読み出された前記符号化対象ピクチャのブロックと、前記参照ピクチャのブロックの各々との間の差分絶対値の和を並列に演算する。具体的には、2つの同じ機能をもつ演算器からなり、それぞれ同期アクセス部203から与えられる参照ピクチャと符号化対象ピクチャとのブロック単位での差分絶対値を演算しそれらの総和を演算して出力する。すなわち、符号化しようとする対象ピクチャと参照ピクチャをブロック単位でブロック内のすべての画素の差分をとりその絶対値和を求めるものである。
同期アクセス部203は、本発明に係るアクセス手段に相当し、前記複数の第1のメモリの各々からのブロックの読み出しと、前記第2のメモリからの読み出しとを同時に行なう。具体的には、参照ピクチャメモリ205からの参照ピクチャのブロックと、符号化対象ピクチャメモリ206からの符号化対象ピクチャのブロックとの読み出しを同期させる制御を行なう。
また、同期アクセス部203は、符号化対象ピクチャのブロックの読み出し順序で複数の参照ピクチャのブロックを読み出して、複数の差分絶対値和演算部204に同時に与えれば、符号化対象ピクチャのブロックに対しては1回の読み出しで2つの参照ピクチャのブロックとの差分絶対値和演算が可能となる。つまり、同期アクセス部203は、リードメモリ選択部202による参照ピクチャの複数のブロックの読み出しと、符号化対象ピクチャメモリ206からの符号化対象ピクチャのブロックの読み出しタイミングを揃えて同時に符号化対象ピクチャのブロックおよび参照ピクチャのブロックを複数の差分絶対値和演算部204に与えることができる。従来、各々の参照ピクチャメモリ205から参照ピクチャのブロックを読み出すたびに符号化対象ピクチャのブロックを取得し、取得した符号化対象ピクチャのブロックおよび読み出した参照ピクチャのブロックを同時に差分絶対値和演算部に与える必要があったが、これを削減することができる。つまり、符号化対象ピクチャのブロックについては、その都度、繰り返し読み出すという無駄を回避している。
図2は、符号化対象ピクチャのブロックに対して1回の読み出しで複数の参照ピクチャのブロックとの差分絶対値和演算することを概念的に示した図である。
差分絶対値和演算部204(204−1および204−2)は、符号化しようとする対象ピクチャと参照ピクチャをブロック単位(マクロブロック)でブロック内のすべての画素の差分をとりその絶対値和を求める。ここでは、一例として、参照ピクチャおよび対象ピクチャのブロックとして、ブロックサイズが16×16画素のブロック(マクロブロック)を対象に8×8の処理単位(サブブロック)に分割されてマクロブロック内の差分絶対値和を演算する場合を示す。
ところで、H.264では、例えば16×16画素のブロックサイズのマクロブロックで差分絶対値和演算を求める際には、そのマクロブロックにおける、例えば8×8の処理単位(サブブロック)に分割して演算する。すなわち、処理単位(サブブロック)でマクロブロック内のすべての画素の差分をとりその絶対値和を求める。また、H.264では、16×16画素から4×4画素までの7種類のブロックサイズが用意されており、このブロックサイズの中から最適なものを切り替えてマクロブロックとして用いられる。また、処理単位(サブブロック)は8×8画素に限定されない。
図2において、2つの参照ピクチャのマクロブロック600および601における処理単位の分割位置が左上のサブブロック601Aおよび602Aの2つのサブブロックの読み出しと、符号化対象ピクチャのマクロブロック603における処理単位の分割位置が左上のサブブロック603Aとの読み出しとが、タイミングを揃えて同時になされる。そして、2つの差分絶対値和演算部204−1および204−2それぞれに符号化対象ピクチャのマクロブロック603のサブブロック603Aと参照ピクチャの2つのサブブロック601Aまたは602Aとが与えられる。そして、それぞれ2つの差分絶対値和演算部204で並列に差分絶対値和演算される。
なお、上述では、符号化対象ピクチャと複数の参照ピクチャのサブブロックに対して並列に差分絶対値和演算する場合についての概念を説明したが、符号化対象ピクチャと複数の参照ピクチャのブロックに対して並列に差分絶対値和演算する場合も同様である。この場合には、上述の600および601が参照ピクチャに相当し、600Aおよび601Aが参照ピクチャのブロック(マクロブロック)に相当する。603は対象ピクチャに相当し、603Aは対象ピクチャのブロックに相当する。
以上のように、対象ピクチャのブロックに対して1度のメモリアクセスで複数の参照ピクチャのブロックに対する差分絶対値和演算を並列に行なうことができる。
図3は、複数のピクチャに対する差分絶対値和演算を並列に行って動きベクトルが検出されるまでの処理手順を示すフローチャートである。
まず、差分絶対値和演算装置200において、ライトメモリ選択部201は、入力される参照ピクチャについての情報から参照ピクチャのピクチャタイプを検出する(S301)。
ここで、参照ピクチャのピクチャタイプとしては、Pピクチャ(Predictive picture:画面間の順方向予測符号化によって得られるピクチャ)あるいは(Bi−directional predictive picture:過去と未来の双方向から予測符号化によって得られるピクチャ)があり、このどちらかであるかを検出する。
次に、ライトメモリ選択部201は、入力される参照ピクチャについての情報から参照ピクチャのブロック(マクロブロック)における処理単位(サブブロック)の分割位置を検出する(S302)。ここで、例えば16×16画素のブロックサイズであるマクロブロックを8×8画素の単位で処理する場合には、マクロブロックは4つの8×8画素の処理単位(サブブロック)で構成され、その位置(分割位置)は、左上、右上、左上、右下となる。
また、このとき、ライトメモリ選択部201は、参照ピクチャについての情報、例えば、参照ピクチャの参照方向や参照ピクチャ番号などの情報を同時に検出している。
次に、ライトメモリ選択部201は、上記検出結果に基づき、すわなち、得られた参照ピクチャについての情報に応じて、参照ピクチャのブロックを書き込む参照ピクチャメモリ205を選択する。
次に、リードメモリ選択部202は、参照ピクチャメモリ205に格納された参照ピクチャのブロックを、参照ピクチャの情報、例えば、参照方向あるいは参照ピクチャ番号の情報などに基づいて読み出す参照ピクチャメモリ205と参照ピクチャのブロックとを選択する。
次に、同期アクセス部203は、リードメモリ選択部202による複数の参照ピクチャのブロックの読み出しと、符号化対象ピクチャメモリ206からの符号化対象ピクチャのブロックの読み出しを同時に行なう(S304)。すなわち、参照ピクチャメモリ205に格納されている複数の参照ピクチャのブロックと符号化対象ピクチャメモリ206に格納されている1つの符号化対象ピクチャのブロックとの読み出しタイミングを同期させて同時に読み出す。
次に、同期アクセス部203は、読み出した参照ピクチャのブロックと符号化対象ピクチャのブロックとを差分絶対値和演算部204に与える。そして、差分絶対値和演算部204では、与えられた符号化対象ピクチャのブロックおよび参照ピクチャのブロックから差分絶対値和演算され、動きベクトルが検出される(S305)。
以下、具体例を示しながら、本発明の実施の形態をさらに詳しく説明する。
図4は、符号化対象ピクチャのブロックと符号化対象ピクチャのブロックが参照ピクチャのブロックとして用いることのできる複数の参照ピクチャのブロックとの関係を概念的に示した図である。
高効率の圧縮を実現するH.264では、画面内符号化と前方予測(規格では、L0予測といい、以下L0と記載する。)を行なうPピクチャと、画面内符号化に加えて前方予測(L0)および後方予測(規格では、L1予測といい、以下L1と記載する。)から双方向予測を行なうBピクチャなどが規定されている。
図4において、L0およびL1は参照ピクチャの参照方向を示しており、L0は前方予測として定義されている方向、L1は後方予測として定義されている方向であり、これは上述の通りである。
ところで、H.264では、複数の参照ピクチャの候補からブロック単位で任意のピクチャを参照ピクチャとして用いることができるので、ブロック毎にどの参照ピクチャを参照しているのかを示す必要がある。そこで、参照ピクチャを特定し区別するために各参照ピクチャに割り当てた識別番号を参照ピクチャ番号と呼んでいる。
図4では、符号化対象ピクチャがL0(前方予測)の2つの参照ピクチャを用いる場合を示しており、L0の2つの参照ピクチャを特定し区別するために用いられる情報である参照ピクチャ番号を、例えばidx0およびidx1としている。L1(後方予測)でも同様に、符号化対象ピクチャがL1(後方予測)の2つの参照ピクチャを用いる場合を示しており、L1(後方予測)の2つの参照ピクチャを特定し区別するために用いられる情報である参照ピクチャ番号を例えば、idx0およびidx1としている。
図1におけるライトメモリ選択部201は、入力される参照ピクチャに関する情報からの参照ピクチャの参照方向または参照ピクチャ番号などに応じて書き込む参照ピクチャメモリ205を選択する。
図5は、2つの物理メモリから構成される参照ピクチャメモリ205(205−1、205−2)に参照ピクチャのブロック(マクロブロック)を処理単位(サブブロック)で格納する場合の一例を概念的に説明する図である。
ブロックサイズが16×16画素である参照ピクチャのマクロブロックを参照ピクチャメモリ205(205−1および205−2)に格納する場合、参照ピクチャのマクロブロックは、その半分のブロックサイズである8×16画素の処理単位(サブブロック)、例えばサブブロック501およびサブブロック502に分割される。参照ピクチャのピクチャタイプがBピクチャで、参照方向がL0(前方予測)であった場合には、サブブロック501を参照ピクチャメモリ205−1に格納し、サブブロック502は参照ピクチャメモリ205−2に格納する。逆に、参照ピクチャのピクチャタイプがBピクチャで、参照方向がL1(後方予測)であった場合には、サブブロック501を参照ピクチャメモリ205−2に格納し、サブブロック502を、参照ピクチャメモリ205−1に格納する。
なお、分割して格納する参照ピクチャのマクロブロックの分割境界付近の画素については、並列処理を可能にするために動き検出や動き補償で必要となる画素分を多重にメモリに格納している。
また、図5において、参照ピクチャのピクチャタイプがPピクチャであった場合には、上述した予測方向(L0およびL1)ではなく、参照ピクチャ番号の情報で格納する参照ピクチャメモリ205(205−1および205−2)を決定する。
図6は、ブロックサイズが16×16画素であるPピクチャのマクロブロックを参照ピクチャメモリ205(205−1および205−2)に格納する様子を示した図である。
図6では、まず、参照ピクチャ番号が0であるマクロブロックを参照ピクチャメモリ205(205−1および205−2)に格納し、次に、参照ピクチャ番号が1であるマクロブロックを参照ピクチャメモリ205(205−1および205−2)に格納する様子を概念的に説明する。また、図6では、ブロックサイズが16×16画素である参照ピクチャのマクロブロックは、その4分の1のブロックサイズである8×8画素の処理単位(サブブロック)に分割されて処理される場合を示している。図6において、参照ピクチャのマクロブロック中に記載されたUL、DL、UR、DRはそれぞれ、ブロックサイズが16×16画素のマクロブロックをその4分の1である8×8画素の処理単位で分割した場合の分割位置を示している。UL(Upper Left)は左上の位置を、UR(Upper Right)は右上の位置を、DL(Down Left)は左下の位置を、DR(Down Right)は右下の位置を示している。
図6では、Pピクチャのマクロブロックは、その4分の1のブロックサイズである8×8画素の処理単位(サブブロック)として、UL、DL、URおよびDRに分割される。参照ピクチャ番号が0であった場合には、サブブロックULおよびDLを参照ピクチャメモリ205−1に格納し、サブブロックDLおよびURは参照ピクチャメモリ205−2に格納する。次に格納する参照ピクチャのピクチャタイプがPピクチャのマクロブロックで、参照ピクチャ番号が1であった場合には、サブブロックULおよびDLを参照ピクチャメモリ205−2に格納し、サブブロックDLおよびURを、参照ピクチャメモリ205−1に格納する。
なお、上述した図5におけるサブブロック501は、ULおよびDLのように8×8画素の処理単位で2つ占有しているように示され、図5におけるサブブロック502はDLおよびURで示される処理単位(サブブロック)で2つ占有しているように示される。このように、マクロブロックにおける処理単位(サブブロック)のブロックサイズは8×8画素に限定されない。
図7は、ブロックサイズが16×8画素であるPピクチャのマクロブロックを参照ピクチャメモリ205(205−1および205−2)に格納する様子を示した図である。図6のマクロブロックのブロックサイズが16×8画素である場合に相当する。
図7では、Pピクチャのマクロブロックは、その4分の1のブロックサイズである8×8画素の処理単位(サブブロック)として、UL、URに分割される。参照ピクチャ番号が0であった場合には、サブブロックULを参照ピクチャメモリ205−1に格納し、サブブロックURは参照ピクチャメモリ205−2に格納する。次に格納する参照ピクチャのピクチャタイプがPピクチャのマクロブロックで、参照ピクチャ番号が1であった場合には、サブブロックULを参照ピクチャメモリ205−2に格納し、サブブロックURを、参照ピクチャメモリ205−1に格納する。
このように、参照ピクチャメモリ205−1および参照ピクチャメモリ205−2で参照ピクチャ番号の違う参照ピクチャのブロックが格納されてゆくことで、図1におけるリードメモリ選択部202では、異なる参照ピクチャのブロックを同時に読み出すことができる。
それにより、参照ピクチャメモリ数を無用に増やすことなく最小限の個数の構成にしつつ、差分絶対値和演算部204では1度の符号化対象ピクチャのブロックの読み出しで複数の参照ピクチャのブロックに対して並列に差分絶対値和演算を行なうことができる。
図8は、参照ピクチャのブロックを参照ピクチャメモリ205に格納するまでの処理手順を示すフローチャートである。
まず、図1における差分絶対値和演算装置200において、ライトメモリ選択部201は、入力された参照ピクチャに関する情報から参照ピクチャのピクチャタイプを検出する。このとき、検出された参照ピクチャタイプがPピクチャかどうかを確認する(S901)。
次に、確認された参照ピクチャタイプがPピクチャの場合(S901のYesの場合)、ライトメモリ選択部201は、入力された参照ピクチャに関する情報から参照ピクチャを区別する参照番号である参照ピクチャ番号を確認する(S902)。
次に、ライトメモリ選択部201は、参照ピクチャの確認した参照ピクチャ番号に応じて参照ピクチャメモリ205を決定し(S903)、決定した参照ピクチャメモリ205に参照ピクチャのブロックを格納する(S904)。
また、図1における差分絶対値和演算装置200において、ライトメモリ選択部201が確認した参照ピクチャの参照ピクチャタイプがPピクチャでない場合(S901のNoの場合)、ライトメモリ選択部201は、参照ピクチャタイプがBピクチャかどうかを確認する(S905)。
次に、確認した参照ピクチャタイプがBピクチャの場合(S905のYesの場合)、入力された参照ピクチャのL1(前方予測)あるいはL0(後方予測)の予測方向を確認する(S906)。
次に、ライトメモリ選択部201は、参照ピクチャの確認した予測方向に応じて参照ピクチャメモリ205を決定し(S907)、決定した参照ピクチャメモリ205に参照ピクチャのブロックを格納する(S904)。
次に、本発明の実施の形態1のその他の例として、ブロックサイズが16×8画素である参照ピクチャのマクロブロックが参照ピクチャメモリ205(205−1および205−2)に格納される場合を説明する。
図9は、2つの物理メモリから構成される参照ピクチャメモリ205(205−1および205−2)に参照ピクチャのブロック(マクロブロック)を処理単位(サブブロック)で格納する場合の一例を概念的に説明するための図である。ブロックサイズが16×8画素である参照ピクチャのマクロブロックが参照ピクチャメモリ205(205−1および205−2)に格納される場合において、参照ピクチャのマクロブロックは、その半分のブロックサイズである8×8画素の処理単位(サブブロック)、例えばサブブロック701およびサブブロック702に分割され、参照方向がL0(前方予測)であった場合には、サブブロック701は参照ピクチャメモリ205−1に格納され、サブブロック702は参照ピクチャメモリ205−2に格納される。参照方向がL1(後方予測)であった場合は、サブブロック701は参照ピクチャメモリ205−2に格納され、サブブロック702は、参照ピクチャメモリ205−1に格納される。
ところで、リードメモリ選択部202は、参照ピクチャがBピクチャである場合には、L0(前方予測)およびL1(後方予測)の情報に基づいて読み出す参照ピクチャメモリ205を選択する。例えば、図5で上述したように格納された参照ピクチャのサブブロック501および502を読み出す場合には、参照ピクチャメモリ205−1を選択し格納されているサブブロック501を読み出し、参照ピクチャメモリ205−2を選択し格納されているサブブロック502を読み出す。ブロックサイズが16×8画素や8×16画素についても同様となる。
また、リードメモリ選択部202は、参照ピクチャがPピクチャである場合には、参照ピクチャ番号に基づいて格納する参照ピクチャメモリ205を選択する。つまり、リードメモリ選択部202は、ライトメモリ選択部201で書き込む際に参照ピクチャメモリ205を選択したルールと同じルールで、読み出す参照ピクチャメモリ205を選択する。ここで、リードメモリ選択部202の大きな特徴は、物理メモリのメモリ競合が発生しないアクセスであれば、異なる複数の参照ピクチャのブロックに同時にアクセスすることができることである。例えば、図6で示されるように、参照ピクチャ番号が0であるPピクチャのマクロブロックのサブブロックULおよびDLは、参照ピクチャメモリ205−1に格納され、参照ピクチャ番号が1であるPピクチャのマクロブロックのサブブロックULおよびDLは、参照ピクチャメモリ205−2に格納されている。符号化対象ピクチャのブロックに対する複数の参照ピクチャのブロックがメモリ格納時において、別の物理メモリに格納されるので同時にアクセスが可能となる。
このように、ライトメモリ選択部201により、参照ピクチャメモリ205(205−1および205−2)に参照方向または処理単位(サブブロック)の分割位置の違う参照ピクチャのブロックが格納されることで、リードメモリ選択部202では、符号化対象ピクチャのブロックに対する複数の参照ピクチャのブロックを同時に読み出すことができる。それにより、参照ピクチャメモリ数を最小限の個数の構成にしつつ、差分絶対値和演算部204では対象ピクチャへの1度のメモリアクセスで複数の参照ピクチャのブロックに対する差分絶対値和演算を並列に行なうことができる。
なお、参照ピクチャメモリ205は、参照ピクチャを1フレームずつ記憶するメモリでもよく、参照ピクチャ中の少なくとも1ブロックを記憶するメモリで構成されてもよい。さらに、参照ピクチャメモリとは別に参照ピクチャ中の少なくとも1ブロック、例えばマクロブロックあるいはマクロブロックの処理単位(サブブロック)を記憶するバッファメモリとして構成してもよい。
以上より、本発明の実施の形態1においては、複数の参照ピクチャのブロックを、参照方向や参照ピクチャ番号、参照ピクチャのブロック(マクロブロック)における処理単位(サブブロック)の分割位置などの参照ピクチャに関する情報に応じて、参照ピクチャメモリに格納する。それにより、参照ピクチャメモリ数を無用に増やすことなく最小限の個数からなる構成にしながら、すなわち、符号化対象ピクチャを格納した符号化対象ピクチャメモリへの読み出しのためのアクセス回数を最小限にしつつ、格納された複数の参照ピクチャと符号化対象ピクチャを同時に読み出し、複数のピクチャに対する差分絶対値和演算を並列に行なうことができる。
以上より、対象ピクチャへの1度のメモリアクセスで複数の参照ピクチャに対する差分絶対値和演算を並列に行なう装置であって、メモリ数を削減し、メモリアクセス量を減少させることが可能な演算装置およびその方法を実現することができる。
(実施の形態2)
次に、本発明の実施の形態2について、図面を用いて説明する。
本実施の形態2の差分絶対値和演算装置200の構成は、図1に示した実施の形態1と同じであるので、説明を省略する。
実施の形態1においては、参照ピクチャのマクロブロックのブロックサイズが同じ場合について説明したが、H.264規格では、参照ピクチャのマクロブロックのブロックサイズが同じでなくても良い。しかし、その場合には、実施例1における参照ピクチャメモリ205への格納方法では、参照ピクチャメモリでメモリアクセス競合してしまい、符号化対象ピクチャに対する複数の参照ピクチャを同時に読み出すことができない。
図10は、参照ピクチャのマクロブロックのブロックサイズが異なる場合において、参照ピクチャメモリでメモリアクセス競合してしまい、符号化対象ピクチャに対する複数の参照ピクチャを同時に読み出すことができないことを説明するための概念図である。
ここで、参照ピクチャのマクロブロック1100または1101にUL、DLおよびURが記載されているが、上述したように、参照ピクチャのマクロブロック中に記載されたUL、DL、UR、DRはそれぞれ、ブロックサイズが16×16画素のマクロブロックをその4分の1である8×8画素の処理単位(サブブロック)で分割する場合の分割位置を示している。UL(Upper Left)は左上の位置を、UR(Upper Right)は右上の位置を、DL(Down Left)は左下の位置を、DR(Down Right)は右下の位置を示している。
図10において、入力される参照ピクチャデータには、2つの参照ピクチャのマクロブロック1100および1101がある。参照ピクチャのマクロブロック1100のブロックサイズは、16×8画素であり、参照ピクチャのマクロブロック1101のブロックサイズは、8×16画素である。これらの参照ピクチャのマクロブロック1100および1101に対応する符号化対象ピクチャデータの対象ピクチャのマクロブロック1102は、16×16画素のマクロブロックサイズである。
また、参照ピクチャのマクロブロック1100および1101は、ブロックサイズが8×8画素の処理単位(サブブロック)に分割されて処理され、図10に示す下から一つずつ順番に参照ピクチャメモリ205へ格納される。すなわち、参照ピクチャのマクロブロック1101のサブブロックDL1およびサブブロックUL1と参照ピクチャのマクロブロック1100のサブブロックUL2は順番に、参照ピクチャメモリ205−1に格納され、参照ピクチャのマクロブロック1100のサブブロックUR2は、参照ピクチャメモリ205−2に格納される。なお、同じ参照ピクチャメモリ205に格納された複数のブロックサイズが8×8画素の処理単位(サブブロック)は同時にはアクセスできない。すなわち、参照ピクチャメモリ205−1に格納されている参照ピクチャのマクロブロック1101のサブブロックDL1およびUL1と参照ピクチャのマクロブロック1100のサブブロックUL2は同時にはアクセスできない。
したがって、符号化対象ピクチャのマクロブロック1102のサブブロックUL0に対応する参照ピクチャのマクロブロック1100のサブブロックUL2と参照ピクチャのマクロブロック1101のサブブロックUL1とを同時に読み出すことができず、差分絶対値和演算部204−1および204−2にて並列に差分絶対値和演算することができない。すなわち、参照ピクチャのマクロブロック1100のサブブロックUL2および参照ピクチャのマクロブロック1101のサブブロックUL1は、例えば、サブブロックUL1の読み出しの後に、再度サブブロックUL2の読み出しを行なうなど、別のタイミングで読み出す必要があり、その都度、対象ピクチャのマクロブロック1102のサブブロックUL0を読み出して差分絶対値和演算部204にて差分絶対値和演算することになる。
図11は、参照ピクチャのマクロブロックのブロックサイズが異なる場合に、参照ピクチャメモリ205(205−1および205−2)に参照ピクチャのマクロブロックにおける処理単位の分割位置を再配置して格納することにより符号化対象ピクチャに対する複数の参照ピクチャを同時に読み出せることを説明するための図である。
まず、参照ピクチャのマクロブロック1101のサブブロックDL1、UL1および参照ピクチャのマクロブロック1100のサブブロックUL2およびUR2において、符号化対象ピクチャと比較するマクロブロックにおける処理単位(サブブロック)の分割位置に応じて、例えば、ブロックサイズが8×8画素の処理単位(サブブロック)であるUL2に応じて、参照ピクチャのマクロブロック1101のサブブロックUL1およびDL1の上下を反転にし、さらに縦横を入れ替える。具体的には、ブロックサイズが8×16画素の参照ピクチャのマクロブロック1101内で上と下の位置にあるサブブロックUL1およびDL1の配置を、上の位置にサブブロックDL1かつ下の位置にサブブロックUL1となるように上下の配置を入れ替える(以下、この操作をシャッフルと呼ぶ。)。そして、ブロックサイズが8×16画素である参照ピクチャのマクロブロック1101をブロックサイズが16×8画素である参照ピクチャのマクロブロックとなるように配置を入れ替える。その結果、ブロックサイズが16×8画素である参照ピクチャのマクロブロック内で、左の位置にサブブロックDL1かつ右の位置にサブブロックUL1となる。すなわち、シャッフルしたマクロブロックの縦の関係を横の関係となるように変換する(以下、この操作をまとめて再配置と呼ぶ。)。
次に、参照ピクチャのマクロブロック1100のサブブロックUL2およびUR2と、シャッフルして縦と横の関係を変換した参照ピクチャのマクロブロック1101のサブブロックDL1およびUL1を、参照ピクチャメモリ205に格納する。このとき、参照ピクチャのマクロブロック1100のサブブロックUL2および参照ピクチャのマクロブロック1101のサブブロックDL1は参照ピクチャメモリ205−1に、参照ピクチャのマクロブロック1100のサブブロックUR2および参照ピクチャのマクロブロック1101のサブブロックUL1を参照ピクチャメモリ205−2に順に格納する。
以上より、対象ピクチャのマクロブロック1102のサブブロックUL0に対応する参照ピクチャのマクロブロック1100のサブブロックUL2および参照ピクチャのマクロブロック1101のサブブロックUL1は再配置されて、それぞれ別の参照ピクチャメモリ205−1および205−2に格納されるので、リードメモリ選択部202は、対象ピクチャのブロックに対応する2つの参照ピクチャのブロックを同時に読み出すことができる。したがって、参照ピクチャメモリ数を最小限の個数の構成にしつつ、差分絶対値和演算部204−1および204−2では、対象ピクチャへの1度のメモリアクセスで複数の参照ピクチャに対する差分絶対値和演算を並列に行なうことができる。
なお、参照ピクチャのマクロブロック1101のサブブロックDL1およびUL1を参照ピクチャメモリ205に再配置して格納する方法として、マクロブロック内のサブブロックDL1およびUL1の上下の配置を入れ替えてからマクロブロックの縦の関係を横の関係となるように変換したが、マクロブロックの縦の関係を横の関係にしてからマクロブロック内のサブブロックUL1およびDL1の左右の配置を入れ替えても良い。
また、参照ピクチャのマクロブロック1101について再配置して参照ピクチャメモリ205に格納するのではなく、参照ピクチャ1のマクロブロック100について再配置して参照ピクチャメモリ205に格納しても良い。対象ピクチャのマクロブロック内のサブブロックの配置(処理単位の分割位置)に対応する参照ピクチャのマクロブロックのサブブロックが、それぞれ別の参照ピクチャメモリ205に格納されるように、参照ピクチャのマクロブロック内におけるサブブロックの縦横の関係または左右の関係の入れ替える順番は、組み合わせによらない。
図12は、参照ピクチャのマクロブロックを参照ピクチャメモリ205に格納するまでの処理手順を示すフローチャートである。
まず、図1の差分絶対値和演算装置200において、ライトメモリ選択部201は、入力される複数の参照ピクチャデータからそれらの参照ピクチャのマクロブロックにおけるブロックサイズがN×M画素であるか、すなわち、複数の参照ピクチャのマクロブロックの縦と横とのブロックサイズが同じであるかを確認する(S1201)。
ここでは、2つの参照ピクチャのマクロブロックにおけるブロックサイズが同じであるかを確認する。
次に、確認した2つの参照ピクチャのマクロブロックの縦と横のブロックサイズが同じ場合(S1201のYesの場合)、ライトメモリ選択部201は、参照ピクチャのマクロブロックを処理単位(サブブロック)で分割して参照ピクチャメモリ205に格納する(S1202)。このとき、参照ピクチャのマクロブロックを参照ピクチャメモリ205に格納する方法は、上述したように、参照ピクチャのピクチャタイプとその参照方向および参照ピクチャ番号に従い格納するのが好ましい。
また、確認した2つの参照ピクチャのマクロブロックの縦と横のブロックサイズが違う場合(S1201のNoの場合)、ライトメモリ選択部201は、入力される参照ピクチャデータから2つの参照ピクチャのマクロブロックのブロックサイズを検出する(S1203)。
次に、ライトメモリ選択部201は、検出した参照ピクチャにおけるマクロブロックを8×8画素となる処理単位(サブブロック)で、参照ピクチャのマクロブロック内の位置関係(配置)を確認する。
そして、対象ピクチャのマクロブロックにおける8×8画素の処理単位(サブブロック)に対応する複数の参照ピクチャのマクロブロックにおける8×8画素の処理単位(サブブロック)の配置が、それぞれ別の参照ピクチャメモリ205に格納されるように参照ピクチャのマクロブロックにおける8×8画素の処理単位(サブブロック)の配置を調整する(S1204)。
次に、8×8画素の処理単位(サブブロック)の調整された配置(図11で述べた再配置)に基づいて、参照ピクチャのマクロブロックを処理単位(サブブロック)で参照ピクチャメモリ205に格納する(S1205)。
図13は、ブロックサイズが8×16画素であるPピクチャのマクロブロックを参照ピクチャメモリ205(205−1および205−2)に格納する様子を示した図である。
図13では、最初に、参照ピクチャ番号が0であるマクロブロックを参照ピクチャメモリ205(205−1および205−2)に格納し、次に、参照ピクチャ番号が1であるマクロブロックを参照ピクチャメモリ205(205−1および205−2)に格納する様子を概念的に説明する。また、図13では、ブロックサイズが8×16画素である参照ピクチャのマクロブロックが、その2分の1のブロックサイズである8×8画素の処理単位(サブブロック)に分割されて処理される場合を示している。図13において、参照ピクチャのマクロブロック中に記載されたUL、DLはそれぞれ、ブロックサイズが8×16画素のマクロブロックをその2分の1である8×8画素の処理単位で分割した場合の分割位置を示している。ULは上の位置を、DLは下の位置を示している。
図13では、最初、Pピクチャのマクロブロックは、その2分の1のブロックサイズである8×8画素の処理単位(サブブロック)として、UL、DLに分割される。参照ピクチャ番号が0でブロックサイズが8×16画素である参照ピクチャのマクロブロック1401を参照ピクチャメモリ205に格納する場合には、ブロックサイズが8×16画素である参照ピクチャのマクロブロック1401をブロックサイズが16×8画素である参照ピクチャのマクロブロックとなるように配置を入れ替える。その結果、ブロックサイズが16×8画素である参照ピクチャのマクロブロック1402内で、左の位置にサブブロックULかつ右の位置にサブブロックDLとなる。すなわち、マクロブロックの縦の関係を横の関係となるように変換する。そして、参照ピクチャのマクロブロック1401のサブブロックULおよびDLの縦と横の関係を変換した参照ピクチャのマクロブロック1402のサブブロックULおよびDLを参照ピクチャメモリ205に格納する。このとき、参照ピクチャのマクロブロック1402のサブブロックULを参照ピクチャメモリ205−1に、参照ピクチャのマクロブロック1402のサブブロックDLを参照ピクチャメモリ205−2に順に格納する。
次に、参照ピクチャのピクチャタイプがPピクチャのマクロブロックで、参照ピクチャ番号が1であるブロックサイズが8×16画素である参照ピクチャのマクロブロック1403を参照ピクチャメモリ205に格納する場合には、ブロックサイズが8×16画素である参照ピクチャのマクロブロック1403を、ブロックサイズが16×8画素である参照ピクチャのマクロブロック1404となるように再配置する。具体的には、マクロブロック内で上の位置にサブブロックULかつ、下の位置にサブブロックDLが配置されるブロックサイズが16×8画素である参照ピクチャのマクロブロック1401が、マクロブロック内で左の位置にサブブロックULかつ右の位置にサブブロックDLが配置されるブロックサイズが16×8画素である参照ピクチャのマクロブロック1402となる。そして、ブロックサイズが8×16画素の参照ピクチャのマクロブロック1404内で左と右の位置にあるサブブロックULおよびDLは、左の位置にサブブロックDLかつ右の位置にサブブロックULとなるように左右の配置を入れ替えられる(この操作を上述同様シャッフルと呼ぶ。)。つまり、マクロブロックの縦の関係を横の関係となるように変換され、マクロブロックのサブブロックULおよびDLの左右が反転される。
次に、マクロブロック1403の縦と横の関係を変換されシャッフルされた参照ピクチャのマクロブロック1404のサブブロックDLおよびULを参照ピクチャメモリ205に格納する。このとき、参照ピクチャのマクロブロック1404のサブブロックDLを参照ピクチャメモリ205−1に、参照ピクチャのマクロブロック1404のサブブロックULを参照ピクチャメモリ205−2に格納する。
それにより、対象ピクチャのマクロブロックのサブブロックULに対応する参照ピクチャのマクロブロック1401のサブブロックULおよび参照ピクチャのマクロブロック1403のサブブロックULは再配置されて、それぞれ別の参照ピクチャメモリ205−1および205−2に格納され、リードメモリ選択部202は、対象ピクチャのブロックULに対応する2つの参照ピクチャのブロックULを同時に読み出すことができる。したがって、差分絶対値和演算部204−1および204−2において、対象ピクチャへの1度のメモリアクセスで複数の参照ピクチャに対する差分絶対値和演算を並列に行なうことができる。
図14は、ブロックサイズが16×16画素、16×8画素および8×16画素であるPピクチャのマクロブロックを参照ピクチャメモリ205(205−1および205−2)に格納する様子を示した図である。図13は、まず、参照ピクチャ番号が0で、ブロックサイズが16×16画素、16×8画素および8×16画素であるPピクチャのマクロブロックをこの順に参照ピクチャメモリ205(205−1および205−2)に格納し、次に、参照ピクチャ番号が0で、ブロックサイズが16×16画素、16×8画素および8×16画素であるPピクチャのマクロブロックをこの順に参照ピクチャメモリ205(205−1および205−2)に格納した様子を示している。
図14に示すように、ブロックサイズが16×16画素である参照ピクチャのマクロブロックのサブブロックUL(1501)と、ブロックサイズが16×8画素である参照ピクチャのマクロブロックのサブブロックUL(1502)とは、上述した再配置の方法により必ず別の物理メモリに格納されるので、対象ピクチャのブロックULに対応する2つの参照ピクチャのサブブロックULとして同時に読み出すことができる。それにより、差分絶対値和演算部204では符号化対象ピクチャのブロックの1度の読み出しで、複数の参照ピクチャのブロックに対して並列に差分絶対値和演算を行なうことができる。
図15は2つの物理メモリから構成される参照ピクチャメモリ205(205−1および205−2)にブロックサイズが8×16画素である参照ピクチャのマクロブロックを処理単位(サブブロック)で格納する場合を概念的に説明するための図である。
ブロックサイズが8×16画素である参照ピクチャのマクロブロック900を参照ピクチャメモリ205(205−1および205−2)に格納する場合において、参照ピクチャメモリ205への処理単位(サブブロック)ではブロックサイズが16×8画素のマクロブロックである場合(図9の場合)に揃える。すなわち、ブロックサイズが8×16画素のマクロブロック900内における8×8画素の処理単位(サブブロック)であるサブブロックULおよびサブブロックDLを上下に分割した場合の、下の位置となる参照ピクチャのマクロブロック900のサブブロックULと、上の位置となる参照ピクチャのマクロブロック900のサブブロックDLとの配置を、ブロックサイズが16×8画素である参照ピクチャのマクロブロック900の内における8×8画素の処理単位(サブブロック)で左右に分割し、それぞれ左側がサブブロックULに右側がサブブロックDLになるように、参照ピクチャのマクロブロック900の縦の関係を横の関係に変換する(この操作も再配置と呼ぶ。)。そして、再配置されたブロックサイズが16×8画素である参照ピクチャのマクロブロック900を、参照ピクチャに関する情報に応じて、例えば、参照方向、参照ピクチャ番号などに応じて格納する参照ピクチャメモリ205(205−1および205−2)を選択して格納するのが好ましい。例えば、参照ピクチャのピクチャタイプがBピクチャである場合には、L0(前方予測)およびL1(後方予測)の情報に基づいて格納する参照ピクチャメモリ205を選択し、参照ピクチャのピクチャタイプがPピクチャである場合は、参照ピクチャ番号の情報に基づき格納する参照ピクチャメモリ205を選択する。参照ピクチャのピクチャタイプがBピクチャで、参照方向がL0(前方予測)であった場合には、参照ピクチャのマクロブロック900のサブブロックULを参照ピクチャメモリ205−1に格納し、参照ピクチャのマクロブロック900のサブブロックDLを参照ピクチャメモリ205−2に格納する。逆に、参照方向がL1(後方予測)であった場合には、参照ピクチャのマクロブロック900のサブブロックULを参照ピクチャメモリ205−2に格納し、参照ピクチャのマクロブロック900のサブブロックDLを参照ピクチャメモリ205−1に格納する。
以上のように、ライトメモリ選択部201により、参照ピクチャは、そのマクロブロックのブロックサイズに応じて、再配置して参照ピクチャメモリ205に格納されることで、リードメモリ選択部202では対象ピクチャのブロックに対応する複数の参照ピクチャのブロックを同時に読み出すことができる。それにより、参照ピクチャメモリ数を最小限の個数の構成にしつつ、差分絶対値和演算部204において、対象ピクチャへの1度のメモリアクセスで複数の参照ピクチャに対する差分絶対値和演算を並列に行なうことができる。
以上より、対象ピクチャへの1度のメモリアクセスで複数の参照ピクチャに対する差分絶対値和演算を並列に行なう装置であって、メモリ数を削減し、メモリアクセス量を減少させることが可能な演算装置およびその方法を実現することができる。
なお、本実施の形態で説明した差分絶対値和演算装置200では差分絶対値和演算部204は2つの差分絶対値和演算部204で構成されているが、2つ以上で構成しても良く、本発明は差分絶対値和演算部204の数に依存するものではない。また、参照ピクチャメモリ205は本実施の形態において、2つの物理メモリの例を説明したが、構成した差分絶対値和演算部204に応じたメモリの個数を構成しても良く、数には限定されない。
また、本実施の形態では、ブロックサイズが8×8画素の処理単位ブロック(サブブロック)に基づき、再配置して、参照ピクチャのマクロブロックを参照ピクチャメモリ205に格納する方法について説明したが、処理単位(サブブロック)としては、8×8画素に限定されず、4×4画素や16×16画素などのN×Nの画素数を処理ブロック単位(サブブロック)としても良い。さらに、参照ピクチャメモリ205に格納し、符号化対象ピクチャとそれに対応する複数の参照ピクチャを同時に読み出せるのなら、再配置に用いるブロックサイズとしてはN×Nでなくともよく、N×Mでもよく、処理単位がマクロブロックでもよい。
また、参照ピクチャメモリ205は、参照ピクチャを1フレームずつ格納するメモリでもよく、参照ピクチャ中の少なくとも1ブロックを格納するメモリで構成されてもよい。さらに、参照ピクチャメモリとは別に参照ピクチャ中の少なくとも1ブロック、例えばマクロブロックあるいはマクロブロックの処理単位(サブブロック)を記憶するバッファメモリとして構成してもよい。
以上、本発明の演算装置について、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、本発明の範囲内に含まれる。
本発明は、差分演算装置およびその方法に利用でき、特に、処理量やメモリ量が大きくなる動画データの圧縮符号化処理を実現するLSIや、様々なシステムに組み込まれ映像蓄積装置、ビデオカメラ、映像伝送装置などの符号化処理を実現する差分演算装置やその方法において利用することができる。
本発明の実施の形態1に係る差分絶対値和演算装置の構成を示すブロック図である。 本発明の実施の形態1に係る符号化対象ピクチャのブロックに対して1回の読み出しで複数の参照ピクチャのブロックとの差分絶対値和演算することを概念的に示した図である。 本発明の実施の形態1に係る複数のピクチャに対する差分絶対値和演算を並列に行い動きベクトルが検出されるまでの処理手順を示すフローチャートである。 本発明の実施の形態1に係る符号化対象ピクチャと符号化対象ピクチャが参照ピクチャとして用いることのできる複数の参照ピクチャとの関係を概念的に示した図である。 本発明の実施の形態1に係る2つの物理メモリから構成される参照ピクチャメモリに参照ピクチャを格納する場合を説明する図である。 本発明の実施の形態1に係るブロックサイズが16×16画素であるPピクチャを参照ピクチャメモリに格納する場合の様子を示した図である。 本発明の実施の形態1に係るブロックサイズが16×16画素であるPピクチャを参照ピクチャメモリに格納する場合の様子を示した図である。 本発明の実施の形態1に係る参照ピクチャを参照ピクチャメモリに格納するまでの処理手順を示すフローチャートである。 本発明の実施の形態1に係る2つの物理メモリから構成される参照ピクチャメモリに参照ピクチャを格納する場合を概念的に説明するための図である。 本発明の実施の形態1に係る参照ピクチャのマクロブロックのブロックサイズが異なる場合において、参照ピクチャメモリでメモリアクセス競合してしまい、符号化対象ピクチャに対する複数の参照ピクチャを同時に読み出すことができないことを説明するための図である。 本発明の実施の形態2に係る参照ピクチャのブロックサイズが異なる場合において、参照ピクチャのマクロブロックにおける処理単位の分割位置を再配置して格納することにより符号化対象ピクチャに対する複数の参照ピクチャを同時に読み出せることを説明する図である。 本発明の実施の形態2に係る参照ピクチャを参照ピクチャメモリに格納するまでの処理手順を示すフローチャートである。 本発明の実施の形態2に係るブロックサイズが8×16画素であるPピクチャのマクロブロックを参照ピクチャメモリに格納する様子を示した図である。 本発明の実施の形態2に係るブロックサイズが16×16画素、16×8画素および8×16画素であるPピクチャのマクロブロックを参照ピクチャメモリに格納する様子を示した図である。 本発明の実施の形態2に係る2つの物理メモリから構成される参照ピクチャメモリに8×16の参照ピクチャを格納する場合を概念的に説明するための図である。 従来のH.264の符号化方式を用いた符号化装置の構成を示すブロック図である。 従来の差分絶対値和演算装置の構成を示すブロック図である。
符号の説明
100、3000 従来の差分絶対値和演算装置
200 差分絶対値和演算装置
201 ライトメモリ選択部
202 リードメモリ選択部
203 同期アクセス部
204、3091 差分絶対値和演算部
205 参照ピクチャメモリ
206 対象ピクチャメモリ
300 符号化装置
301 直交変換部
302 量子化部
303 符号化部
304 逆量子化部
305 逆直交変換部
306 イントラ予測部
307 参照ピクチャメモリ
3101 符号化対象ピクチャメモリ
308 動き補償部
309 動きベクトル算出部
310 入力部
311 減算器
312 加算器
501、502、600A、601A、603A、701、702、901、902、1501、1502、UL、DL、UR、DR サブブロック
600、601、603、1101、1102、1103、1401、1402、1403、1404 マクロブロック
1102 符号化対象ピクチャ

Claims (8)

  1. 動画像の符号化対象ピクチャ内のブロックと参照ピクチャ内のブロックとの間の差分絶対値の和を演算する演算装置であって、
    複数の参照ピクチャ中の少なくとも1ブロックを記憶する複数の第1のメモリと、
    符号化対象ピクチャ中の少なくとも1ブロックを記憶する第2のメモリと、
    前記複数の第1のメモリの各々からのブロックの読み出しと、前記第2のメモリからのブロックの読み出しとを同時に行なうアクセス手段と、
    前記アクセス手段により、読み出された前記符号化対象ピクチャのブロックと、前記参照ピクチャのブロックの各々との間の差分絶対値の和を並列に演算する、2以上の差分演算手段と
    を備えることを特徴とする演算装置。
  2. 前記演算装置は、さらに、
    参照方向または参照ピクチャを指定する参照ピクチャ番号情報に応じて、いずれかの第1のメモリを選択する選択部と、前記選択部により選択された第1のメモリに符号化済みのピクチャを参照ピクチャとして記憶させる記憶部を有するライトメモリ選択手段を備える
    ことを特徴とする請求項1に記載の演算装置。
  3. 前記各第1のメモリは、N画素×N画素のサブブロックを少なくとも2つ記憶するための領域を有し、
    前記演算装置は、さらに、
    参照ピクチャに含まれるN画素×2N画素または2N画素×N画素のブロック中の前記サブブロック毎に複数の第1のメモリから1つを選択する選択部と、前記選択部が選択した第1のメモリに当該サブブロックを記憶させる記憶制御部を有するライトメモリ選択手段を備える
    ことを特徴とする請求項1に記載の演算装置。
  4. 前記ライトメモリ選択手段は、
    対象ピクチャのブロックのサイズに応じて、当該対象ピクチャのブロック中のサブブロックを再配置して記憶させる第1のメモリを選択する
    ことを特徴とする請求項3に記載の演算装置。
  5. 前記演算装置は、さらに、
    前記符号化対象ピクチャに対する参照ピクチャの参照方向または参照ピクチャを指定する参照ピクチャ番号情報に応じて、前記第1のメモリから読み出す当該参照ピクチャを選択するリードメモリ選択手段を備え、
    前記アクセス手段は、リードメモリ選択手段により選択された2つの第1メモリと、前記第2メモリとからブロックをそれぞれ同時に読み出す
    ことを特徴とする請求項1に記載の演算装置。
  6. 動画像の符号化対象ピクチャ内のブロックと参照ピクチャ内のブロックとの間の差分絶対値の和を演算する方法であって、
    複数の参照ピクチャ中の少なくとも1ブロックを記憶する複数の第1のメモリの各々からのブロックの読み出しと、符号化対象ピクチャ中の少なくとも1ブロックを記憶する第2のメモリからの読み出しとを同時に行なうアクセスステップと、
    前記アクセス手段により、読み出された前記符号化対象ピクチャのブロックと、前記参照ピクチャのブロックの各々との間の差分絶対値の和を並列に演算する、2以上の差分演算ステップと
    を含むことを特徴とする演算方法。
  7. 動画像の符号化対象ピクチャ内のブロックと参照ピクチャ内のブロックとの間の差分絶対値の和を演算するプログラムであって、
    複数の参照ピクチャ中の少なくとも1ブロックを記憶する複数の第1のメモリの各々からのブロックの読み出しと、符号化対象ピクチャ中の少なくとも1ブロックを記憶する第2のメモリからの読み出しとを同時に行なうアクセスステップと、
    前記アクセス手段により、読み出された前記符号化対象ピクチャのブロックと、前記参照ピクチャのブロックの各々との間の差分絶対値の和を並列に演算する、2以上の差分演算ステップと
    をコンピュータに実行させるためのプログラム。
  8. 動画像の符号化対象ピクチャ内のブロックと参照ピクチャ内のブロックとの間の差分絶対値の和を演算する集積回路であって、
    複数の参照ピクチャ中の少なくとも1ブロックを記憶する複数の第1のメモリと、
    符号化対象ピクチャ中の少なくとも1ブロックを記憶する第2のメモリと、
    前記複数の第1のメモリの各々からのブロックの読み出しと、前記第2のメモリからの読み出しとを同時に行なうアクセス手段と、
    前記アクセス手段により、読み出された前記符号化対象ピクチャのブロックと、前記参照ピクチャのブロックの各々との間の差分絶対値の和を並列に演算する、2以上の差分演算手段と
    を備えることを特徴とする集積回路。
JP2007014139A 2007-01-24 2007-01-24 演算装置 Pending JP2008182471A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007014139A JP2008182471A (ja) 2007-01-24 2007-01-24 演算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007014139A JP2008182471A (ja) 2007-01-24 2007-01-24 演算装置

Publications (1)

Publication Number Publication Date
JP2008182471A true JP2008182471A (ja) 2008-08-07

Family

ID=39726038

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007014139A Pending JP2008182471A (ja) 2007-01-24 2007-01-24 演算装置

Country Status (1)

Country Link
JP (1) JP2008182471A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011010297A (ja) * 2009-06-23 2011-01-13 Hon Hai Precision Industry Co Ltd 誤差絶対値和の推定システム及び推定方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011010297A (ja) * 2009-06-23 2011-01-13 Hon Hai Precision Industry Co Ltd 誤差絶対値和の推定システム及び推定方法

Similar Documents

Publication Publication Date Title
JP6851429B2 (ja) 画像復号装置、画像復号方法、画像符号化装置及び画像符号化方法
TW201444350A (zh) 方形區塊預測
CN103299637A (zh) 运动图像编码装置、运动图像译码装置、运动图像编码方法以及运动图像译码方法
JPWO2003043347A1 (ja) 画像符号化方法、画像復号方法、画像符号化装置、画像復号装置、プログラム、コンピュータデータ信号、及び画像伝送システム
JP2014511643A (ja) 画像の符号化および復号の方法、符号化および復号デバイス、ならびにそれに対応するコンピュータプログラム
JP2009218742A (ja) 画像符号化装置
JPWO2008120434A1 (ja) 復号化回路、復号化方法、符号化回路及び符号化方法
JP2008182527A (ja) 画像符号化装置及び方法、並びに撮像システム
JP5087016B2 (ja) 符号化装置及びその制御方法、コンピュータプログラム
JP2024019495A (ja) 画像符号化装置、画像復号装置、画像符号化方法、画像復号方法
US11089326B2 (en) Moving image encoding device, moving image encoding method, moving image decoding device, and moving image decoding method
JPWO2008136164A1 (ja) 復号化回路、復号化方法及び画像再生装置
KR20170126934A (ko) 컨텐츠-적응적 b-픽쳐 패턴 비디오 인코딩
WO2013014693A1 (ja) 動画像復号化方法及び画像符号化方法
JP2007325119A (ja) 画像処理装置及び画像処理方法
JP2022177181A (ja) 画像復号装置、画像復号方法及びプログラム
JP2010183368A (ja) 画像符号化処理方法、画像符号化処理装置、画像符号化プログラム
CN113115041B (zh) 支持alpha通道的无损图片压缩方法、装置及介质
JP2006166308A (ja) 復号化装置及び復号化方法
JP2008182471A (ja) 演算装置
JP2015165644A (ja) 動画像符号化装置及び動画像符号化方法
JP4802928B2 (ja) 画像データ処理装置
JP2008092456A (ja) 画像符号化装置および画像復号装置
JP2002118853A (ja) 画像復号装置及び画像復号方法
JP2008289105A (ja) 画像処理装置およびそれを搭載した撮像装置