(57)【要約】【課題】H.264/AVC規格準拠のフルサーチアルゴリズムに基づき、高画質ビデオストリーミングリアルタイム符号化を実現する補間器の提供。【解決手段】画像垂直方向の偶数個の整数画素の画素値により、各整数画素の位置の重心点の半整数画素の画素値をＦＩＲ補間演算により算出する垂直補間器ＦＩＲ＿０を、垂直方向の画素列の各々に対応してＮ個備え、対角方向に並ぶ偶数個の整数画素の画素値により、整数画素の位置の重心点の半整数画素の画素値をＦＩＲ補間演算により算出する対角補間器ＦＩＲ＿１をＮ／２個備え、対角方向に並ぶ偶数個の半整数画素の画素値に基づき、それらの半整数画素の位置の重心点の半整数画素の画素値をＦＩＲ補間演算によって算出する対角補間器ＦＩＲ＿２を、Ｎ／２個備え、各補間器ＦＩＲ＿０，ＦＩＲ＿１，ＦＩＲ＿２を配置した。【選択図】図４
2008154227.tif 000002
【特許請求の範囲】
【請求項１】
画像の各整数画素の中間の画素（以下「半整数画素」という。）の画素値をＦＩＲ補間演算によって算出する補間器であって、
２Ｎ列×２Ｍ行の画素（Ｎ，Ｍは２以上の整数）からなる入力画像の各画素列に対応して２Ｎ個設けられ、それぞれ対応する前記画素列の画素値が順次入力されるｎタップ（ｎは偶数）のシフトレジスタを有し、当該画素列の１番目からｎ番目の画素の列方向中心位置の半整数画素の画素値をＦＩＲ補間演算によって算出する垂直補間器ＦＩＲ＿０１〜ＦＩＲ＿０２Ｎと、
隣接する（Ｎ＋１）列の前記画素列の集合の各々に対応してＮ個設けられた第１の対角補間器ＦＩＲ＿１１〜ＦＩＲ＿１Ｎと、
隣接する（Ｎ＋１）列の前記画素列の集合の各々に対応してＮ個設けられた第２の対角補間器ＦＩＲ＿２１〜ＦＩＲ＿２Ｎと、
を備え、
ｉ番目（ｉ＝１，…，Ｎ）の前記第１の対角補間器ＦＩＲ＿１ｉは、ｉ番目から（ｉ＋Ｎ）番目の前記垂直補間器ＦＩＲ＿０ｉ〜ＦＩＲ＿０ｉ＋Ｎに対応しており、（ｉ＋ｊ）番目（ｊ＝０，…，Ｎ）の前記垂直補間器ＦＩＲ＿０ｉ＋ｊのシフトレジスタの（ｊ＋１）番目のタップに格納された画素値をそれぞれ用いて、これら垂直補間器ＦＩＲ＿０ｉ〜ＦＩＲ＿０ｉ＋Ｎに対応する各画素列の行方向中心位置の半整数画素の画素値をＦＩＲ補間演算によって算出するものであり、
ｉ番目（ｉ＝１，…，Ｎ）の前記第２の対角補間器ＦＩＲ＿２ｉは、ｉ番目から（ｉ＋Ｎ）番目の前記垂直補間器ＦＩＲ＿０ｉ〜ＦＩＲ＿０ｉ＋Ｎに対応しており、各垂直補間器ＦＩＲ＿０ｉ〜ＦＩＲ＿０ｉ＋Ｎが出力する同一の行に対応する半整数画素の画素値を用いて、これら垂直補間器ＦＩＲ＿０ｉ〜ＦＩＲ＿０ｉ＋Ｎに対応する各画素列の行方向中心位置且つ列方向中心位置の半整数画素の画素値をＦＩＲ補間演算によって算出するものであることを特徴とする補間器。
【請求項２】
前記各垂直補間器ＦＩＲ＿０１〜ＦＩＲ＿０２Ｎのそれぞれに対応して設けられ、対応する前記垂直補間器ＦＩＲ＿０ｉ（ｉは１〜２Ｎの何れか。）が出力する半整数画素の画素値が順次に入力される列方向半整数画素シフトレジスタを備え、
ｉ番目（ｉ＝１，…，Ｎ）の前記列方向半整数画素シフトレジスタは、ｉ番目の前記垂直補間器ＦＩＲ＿０ｉに対応し、少なくともｉ個のタップを備えており、
（２Ｎ−ｉ＋１）番目（ｉ＝１，…，Ｎ）の前記列方向半整数画素シフトレジスタは、（２Ｎ−ｉ＋１）番目の前記垂直補間器ＦＩＲ＿０２Ｎ−ｉ＋１に対応し、少なくともｉ個のタップを備えており、
ｉ番目（ｉ＝１，…，Ｎ）の前記第２の対角補間器ＦＩＲ＿２ｉは、（ｉ＋ｊ）番目（ｊ＝０，…，Ｎ）の前記列方向半整数画素シフトレジスタの（ｊ＋１）番目又は（Ｎ−ｊ＋１）番目のタップに格納された画素値をそれぞれ用いて、これら列方向半整数画素シフトレジスタに対応する各画素列の行方向中心位置且つ列方向中心位置の半整数画素の画素値をＦＩＲ補間演算によって算出するものであることを特徴とする請求項１記載の補間器。
【請求項３】
前記各第１の対角補間器ＦＩＲ＿１１〜ＦＩＲ＿１Ｎに対応してそれぞれ設けられ、対応する前記垂直補間器ＦＩＲ＿１ｉ（ｉは１〜Ｎの何れか。）が出力する半整数画素の画素値が順次に入力される行方向半整数画素シフトレジスタを備えたことを特徴とする請求項１又は２記載の補間器。
【請求項４】
フルサーチ・アルゴリズムに基づき小数動き推定を行い、動きベクトルを算出する小数動き推定装置であって、
画像の各整数画素の中間の画素（半整数画素）の画素値をＦＩＲ補間によって算出する補間器を備え、
前記補間器は、
２Ｎ列×２Ｍ行の画素（Ｎ，Ｍは２以上の整数）からなる入力画像の各画素列に対応して２Ｎ個設けられ、それぞれ対応する前記画素列の画素値が順次入力されるｎタップ（ｎは偶数）のシフトレジスタを有し、当該画素列の１番目からｎ番目の画素の列方向中心位置の半整数画素の画素値をＦＩＲ補間演算によって算出する垂直補間器ＦＩＲ＿０１〜ＦＩＲ＿０２Ｎと、
隣接する（Ｎ＋１）列の前記画素列の集合の各々に対応してＮ個設けられた第１の対角補間器ＦＩＲ＿１１〜ＦＩＲ＿１Ｎと、
隣接する（Ｎ＋１）列の前記画素列の集合の各々に対応してＮ個設けられた第２の対角補間器ＦＩＲ＿２１〜ＦＩＲ＿２Ｎと、
を備え、
ｉ番目（ｉ＝１，…，Ｎ）の前記第１の対角補間器ＦＩＲ＿１ｉは、ｉ番目から（ｉ＋Ｎ）番目の前記垂直補間器ＦＩＲ＿０ｉ〜ＦＩＲ＿０ｉ＋Ｎに対応しており、（ｉ＋ｊ）番目（ｊ＝０，…，Ｎ）の前記垂直補間器ＦＩＲ＿０ｉ＋ｊのシフトレジスタの（ｊ＋１）番目のタップに格納された画素値をそれぞれ用いて、これら垂直補間器ＦＩＲ＿０ｉ〜ＦＩＲ＿０ｉ＋Ｎに対応する各画素列の行方向中心位置の半整数画素の画素値をＦＩＲ補間演算によって算出するものであり、
ｉ番目（ｉ＝１，…，Ｎ）の前記第２の対角補間器ＦＩＲ＿２ｉは、ｉ番目から（ｉ＋Ｎ）番目の前記垂直補間器ＦＩＲ＿０ｉ〜ＦＩＲ＿０ｉ＋Ｎに対応しており、各垂直補間器ＦＩＲ＿０ｉ〜ＦＩＲ＿０ｉ＋Ｎが出力する同一の行に対応する半整数画素の画素値を用いて、これら垂直補間器ＦＩＲ＿０ｉ〜ＦＩＲ＿０ｉ＋Ｎに対応する各画素列の行方向中心位置且つ列方向中心位置の半整数画素の画素値をＦＩＲ補間演算によって算出するものであることを特徴とする小数動き推定装置。
【発明の詳細な説明】
【背景技術】
【０００１】
本発明は、可変ブロックサイズ動き推定における補間器及びそれを用いた小数動き推定装置に関する。
【技術分野】
【０００２】
近年、最新の画像符号化規格として、ISO/IEC MPEGとITU-T VCEGの2つの標準化機関が合同で結成したJVT(Joint Video Team:合同ビデオ・チーム)により、H.264/AVCが作成された(非特許文献1)。この新しい規格の最も重要な目的のひとつは、様々なアプリケーションにおいて動画の高圧縮効率を実現することである。
【０００３】
H.264/AVCは、従来の規格の性能と比較すると同等の知覚品質でビットレートを50％節約できることが証明されている(非特許文献2)。これは動き推定において、整数画素と補間されたサブピクセルについて様々なブロックサイズの検索を行うことにより実現された。整数動き推定(integer motion estimation :IME)は、マクロブロックのサンプル値を参照画像の検索領域の整数画素の値と比較して行う。整数動き推定では16×16 マクロブロック(macroblock:MB)を7つの異なるブロックサイズ:16×16, 16×8, 8×16, 8×8, 8×4, 4×8, 4×4に従って41個のサブブロックに分割する。41個のサブブロックについて(整数動きベクトル(integer motion vector :IMV)によって示される)最適な位置を見つけたら各サブブロックで小数動き推定(Fractional motion estimation:FME)を行い、整数位置近傍の補間された点内で、より最適な位置を探索する。サブピクセルは6-tap FIRフィルタ(1/2画素)と線形FIRフィルタ(1/4画素)により生成される。
【０００４】
従って、小数動き推定は、MPEG IIのような整数画素検索のみの符号化規格やその他の符号化規格と比較するとレート歪効率をPSNR 4+dB高めることができる。小数動き推定を用いたH.264が特にHDTV(High Definition TeleVision:高精細テレビ)などの高画質画像アプリケーションにおいて高い画像品質を提供できるのは明らかである。
【非特許文献１】Joint Video Team, "Draft ITU-T recommendation and final draft international standard of joint video specification (ITU-T Rec. H.264/ISCMEC 14 496-10 AVC)" in Joint Video Team (JVT) of ISO/IEC MPEG and ITU-T VCEG, JVTG050, 2003.
【非特許文献２】T.Wiegand, GJ.Sullivan, G.Bjntegaard and A.Luthra, "Overview of the H.264/AVC video coding standard", IEEE Transactions on Circuits and System for Video Technology, vol. 13, pp.560-576, July 2003.
【非特許文献３】T.C.Chen, Y.W.Huang, L.G.Chen, "Analysis and design of macroblock pipelining for H.264/AVC VLSI architecture", Proceedings of ISCAS 2004, pp.273-276.
【非特許文献４】L.Yang, K.Yu, J.Li, and S.Li, "Prediction-based directional fractional pixel motion estimation for H.264 video coding", Proceedings oflCASSP 2005, pp.901-904.
【非特許文献５】Yilong Liu; Oraintara, S., "Fractional-pel motion refinement based on hierarchical adjustable dual-parabola model". Communications and Information Technology, 2004. ISCIT 2004. IEEE International Symposium on. Volume 2, 26-29 Oct. 2004 pp.752 - 755 vol.2.
【非特許文献６】Joint Video Team Reference Software JM9.6, http://iphome.hhi.de/suehring/tml/
【非特許文献７】W.N.Lie, H.C.Yeh, "Hardware-efficient computing architecture for motion compensation interpolation in H.264 video coding". Proceedings of ISCAS 2005, pp2136-2139.
【非特許文献８】Y.Y.Wang, C.J.Tsai, "An efficient dual-interpolator architecture for subpixel motion estimation", Proceedings of ISCAS 2005, pp2907-2910.
【非特許文献９】T.C.Chen, Y.W.Huang, L.G.Chen, "Fully untilized and reusable architecture for fractional motion estimation of H.264/AVC", Proceedings of ICASSP, pp9- 12.
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、H.264符号化処理において、小数動き推定は、H.264符号化処理の計算量のほぼ45％以上を占める(非特許文献3)。計算量が大きいと、HDTVなどの高画質画像アプリケーションにとっては、リアルタイムビデオ・ストリーミングを実現するのに大きな障害となる。従って、ハードウェアの高速化が必須である。
【０００６】
小数動き推定は、整数動き推定に先行して制御しなければならない。それに加えて、小数動き推定はできるだけ短時間でマクロブロックを処理するように注意して設計しなければならない。
【０００７】
従来の小数動き推定装置は、アルゴリズムを単純化して高速化を図ることに焦点をあてているものもあったが(非特許文献4,5)、それでは多かれ少なかれ画質が低下する。実際、フルサーチ・アルゴリズムは、最適な符号化品質を提供しハードウェアの実行に適している(非特許文献6)。フルサーチ・アルゴリズムに基づく部分小数動き推定アーキテクチャ・デザインについて、他にもいくつかの有用な研究報告がある(非特許文献7,8)。
【０００８】
非特許文献9では、小数動き推定アーキテクチャの最新の研究である小数動き推定全体のハードウェアシステムを紹介している。しかしながら、このハードウェアシステは複雑で、回路速度が制限されているため、HDTV用で要求される性能を実現できてはいない。よって、改良の余地は大いにあるといえる。
【０００９】
そこで、本発明の目的は、H.264/AVC規格準拠のフルサーチ・アルゴリズムに基づき、HDTVのような高画質ビデオ・ストリーミング・リアルタイム符号化を実現することが可能な小数動き推定装置及び補間器を提供することにある。
【課題を解決するための手段】
【００１０】
本発明の第1の構成に係る補間器は、画像の各整数画素の中間の画素(以下「半整数画素」という。)の画素値をFIR補間演算によって算出する補間器であって、
2N列×2M行の画素(N,Mは2以上の整数)からなる入力画像の各画素列に対応して2N個設けられ、それぞれ対応する前記画素列の画素値が順次入力されるnタップ(nは偶数)のシフトレジスタを有し、当該画素列の1番目からn番目の画素の列方向中心位置の半整数画素の画素値をFIR補間演算によって算出する垂直補間器FIR_01〜FIR_02Nと、
隣接する(N+1)列の前記画素列の集合の各々に対応してN個設けられた第1の対角補間器FIR_11〜FIR_1Nと、
隣接する(N+1)列の前記画素列の集合の各々に対応してN個設けられた第2の対角補間器FIR_21〜FIR_2Nと、
を備え、
i番目(i＝1,…,N)の前記第1の対角補間器FIR_1iは、i番目から(i+N)番目の前記垂直補間器FIR_0i〜FIR_0i+Nに対応しており、(i+j)番目(j＝0,…,N)の前記垂直補間器FIR_0i+jのシフトレジスタの(j+1)番目のタップに格納された画素値をそれぞれ用いて、これら垂直補間器FIR_0i〜FIR_0i+Nに対応する各画素列の行方向中心位置の半整数画素の画素値をFIR補間演算によって算出するものであり、
i番目(i＝1,…,N)の前記第2の対角補間器FIR_2iは、i番目から(i+N)番目の前記垂直補間器FIR_0i〜FIR_0i+Nに対応しており、各垂直補間器FIR_0i〜FIR_0i+Nが出力する同一の行に対応する半整数画素の画素値を用いて、これら垂直補間器FIR_0i〜FIR_0i+Nに対応する各画素列の行方向中心位置且つ列方向中心位置の半整数画素の画素値をFIR補間演算によって算出するものであることを特徴とする。
【００１１】
本発明の第2の構成に係る補間器は、前記第1の構成において、前記各垂直補間器FIR_01〜FIR_02Nのそれぞれに対応して設けられ、対応する前記垂直補間器FIR_0i(iは1〜2Nの何れか。)が出力する半整数画素の画素値が順次に入力される列方向半整数画素シフトレジスタを備え、
i番目(i＝1,…,N)の前記列方向半整数画素シフトレジスタは、i番目の前記垂直補間器FIR_0iに対応し、少なくともi個のタップを備えており、
(2N-i+1)番目(i＝1,…,N)の前記列方向半整数画素シフトレジスタは、(2N-i+1)番目の前記垂直補間器FIR_02N-i+1に対応し、少なくともi個のタップを備えており、
i番目(i＝1,…,N)の前記第2の対角補間器FIR_2iは、(i+j)番目(j＝0,…,N)の前記列方向半整数画素シフトレジスタの(j+1)番目又は(N-j+1)番目のタップに格納された画素値をそれぞれ用いて、これら列方向半整数画素シフトレジスタに対応する各画素列の行方向中心位置且つ列方向中心位置の半整数画素の画素値をFIR補間演算によって算出するものであることを特徴とする。
【００１２】
本発明の第1の構成に係る補間器は、前記第1又は2の構成において、前記各第1の対角補間器FIR_11〜FIR_1Nに対応してそれぞれ設けられ、対応する前記垂直補間器FIR_1i(iは1〜Nの何れか。)が出力する半整数画素の画素値が順次に入力される行方向半整数画素シフトレジスタを備えたことを特徴とする。
【００１３】
本発明に係る小数動き推定装置は、フルサーチ・アルゴリズムに基づき小数動き推定を行い、動きベクトルを算出する小数動き推定装置であって、
画像の各整数画素の中間の画素(半整数画素)の画素値をFIR補間によって算出する補間器を備え、
前記補間器は、
2N列×2M行の画素(N,Mは2以上の整数)からなる入力画像の各画素列に対応して2N個設けられ、それぞれ対応する前記画素列の画素値が順次入力されるnタップ(nは偶数)のシフトレジスタを有し、当該画素列の1番目からn番目の画素の列方向中心位置の半整数画素の画素値をFIR補間演算によって算出する垂直補間器FIR_01〜FIR_02Nと、
隣接する(N+1)列の前記画素列の集合の各々に対応してN個設けられた第1の対角補間器FIR_11〜FIR_1Nと、
隣接する(N+1)列の前記画素列の集合の各々に対応してN個設けられた第2の対角補間器FIR_21〜FIR_2Nと、
を備え、
i番目(i＝1,…,N)の前記第1の対角補間器FIR_1iは、i番目から(i+N)番目の前記垂直補間器FIR_0i〜FIR_0i+Nに対応しており、(i+j)番目(j＝0,…,N)の前記垂直補間器FIR_0i+jのシフトレジスタの(j+1)番目のタップに格納された画素値をそれぞれ用いて、これら垂直補間器FIR_0i〜FIR_0i+Nに対応する各画素列の行方向中心位置の半整数画素の画素値をFIR補間演算によって算出するものであり、
i番目(i＝1,…,N)の前記第2の対角補間器FIR_2iは、i番目から(i+N)番目の前記垂直補間器FIR_0i〜FIR_0i+Nに対応しており、各垂直補間器FIR_0i〜FIR_0i+Nが出力する同一の行に対応する半整数画素の画素値を用いて、これら垂直補間器FIR_0i〜FIR_0i+Nに対応する各画素列の行方向中心位置且つ列方向中心位置の半整数画素の画素値をFIR補間演算によって算出するものであることを特徴とする。
【発明の効果】
【００１４】
本発明によれば、H.264/AVC規格準拠のフルサーチ・アルゴリズムに基づき、HDTVのような高画質ビデオ・ストリーミング・リアルタイム符号化を実現することが可能となる。この補間器及び小数動き推定装置を使用すると、最悪の場合、動作周波数200MHz、典型的な場合285MHz、189K gatesで実行することができる。フレームレート30fpsで108 0HD (1920×1088)ビデオ・ストリーミングに十分な250K MB/secを超える処理量を提供することができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明を実施するための最良の形態について、図面を参照しながら説明する。
【実施例１】
【００１６】
〔1〕アルゴリズムの説明
本発明の実施例1に係る補間器を用いる可変ブロックサイズ動き推定方法はフルサーチ・アルゴリズムに基づいている。フルサーチ・アルゴリズムでは、整数動き推定を小数動き推定より先に実行する。
【００１７】
整数動き推定では最小限のコストで、探索領域において最適な整数位置を探索し、整数動きベクトル(MV:motion vector)で示される位置を小数動き推定モジュールに送る。小数動き推定は、1/2サーチと1/4サーチの二つのサーチフローから構成される。
【００１８】
1/2サーチは最適整数点近傍の9つの1/2画素候補に対して行い最低限のコストで最適なものを探索する。1/4サーチは探索点が最適な1/2画素近傍であることを除き同様に行う。1/2画素は原参照画像には存在せず、6タップFIR(Finite Impulse Response)フィルタを用い、最近傍の6つの整数画素のサンプル値により次式(1)のように補間する必要がある。
【００１９】
【数１】
2008154227.tif 000003
ここで、A,B,C,D,E,Fは、それぞれ、6タップFIRフィルタの各タップに格納された値であり、この順でタップが並んでいるものとする。
【００２０】
1/4画素は線形FIRフィルタを用い、最近傍の2つの1/2画素または整数画素により次式(2)のように補間する。
【００２１】
【数２】
2008154227.tif 000004
ここで、A,Bは線形FIRフィルタの各タップに格納された値である。
【００２２】
異なる点におけるコストを判断するには、マクロブロックのサンプルと参照サンプル(補間された値)の差を変換して変換差分絶対値和(sum of absolute transform difference:SATD)を計算し動きベクトルのコストに追加する必要がある。
【００２３】
上記全手順を異なるブロックサイズ・モードの41個の各サブブロックについて実行する。全サブブロックについて最終的に最適な位置を検索して割り出したら、小数動き推定は異なるブロックサイズ・モードによるコストの差を比較し最適なものを選択する。リアルタイムHDTVアプリケーション(1920×1088 at 30fps)ではこれらの全工程は4100ナノ秒未満で完了する必要がある。小数動き推定が整数動き推定と完全に先行制御され、回路がクロック周波数200 MHzで動かされると仮定すると、小数動き推定アーキテクチャで1マクロブロックを処理するのにわずか820クロック周波数ですむ。
【００２４】
このフルサーチ・アルゴリズムではハードウェアの実装効率に影響を与えるものが2つある。1つは検索戦略、もう1つは補間器である。検索戦略に関しては、整数動き推定により得られた整数動きベクトルはサブブロックやブロックサイズ・モードが異なれば変わってくるので、通常の整数動き推定であるような、より小さいサブブロックのSATDが大きなブロックにより共有されるということが起こる可能性は低い。従って異なるサイズのブロックが全て逐次小数動き推定で処理されて、処理時間が延び、ハードウェアの稼働時間が短くなる。
【００２５】
上記非特許文献9記載のアーキテクチャでは、全サブブロックを4×4のブロックに分割しハードウェアをフルに活用している。しかし冗長な補間領域の再計算に多大な時間がかかり、1マクロブロックを処理するのに1648周期必要である。また補間器に関しては、4レベルの加算器を使用し、遅延ルートが非常に長いため回路速度を100MHzに限定している水平6タップFIRフィルタを形成する。従って、非特許文献9記載のアーキテクチャはHDTVアプリケーションには適さない。
【００２６】
そこで、本発明では、非特許文献9記載のアーキテクチャの欠点を克服するため、処理時間とハードウェアの稼働時間を調整し、水平6タップFIRフィルタを先行制御の対角線6タップFIRフィルタと交換して回路速度を高めた。
【００２７】
〔2〕本実施例1に係る小数動き推定装置の説明
【００２８】
〔2-1〕全体のアーキテクチャ
図1は、本実施例1に係る小数動き推定装置全体のブロック図である。
【００２９】
入力データには原マクロブロック・データと整数動き推定により得られた整数動きベクトルが含まれる。その他の入力データとしては、外部SRAMに記憶され、列ごとに入力されると想定される検索範囲[-64,+63]の参照画像からの検索領域データがある。
【００３０】
最初に小数動き推定のカレントブロックを対応する整数動きベクトルに従って水平に検索領域に配置する必要がある。列セレクタ(Column Selector)は対応する検索ウィンドウデータを作成してカレントブロックを配置する。そして、このデータを使用して全1/2補間画素を1/2補間器(Half Interpolation Unit)で生成する。1/4補間器(Quarter Interpolation Unit)は、1/2画素を使用して、1/2MV(Half MV)記憶手段に記憶されている相対座標によりマークされた1/2または整数点近傍の全1/4画素を生成する。9つの16×16 PEがありSATD計算を9の候補点で行う。4×4ブロックから16×16ブロックまで全SATDを備えている。しかし、SATDセレクタ(SATD Selector)は制御部(図示せず)の有限状態機械(finite-state machine:FSM)のカレント・ステータスに従って、正しいものを選択する。副探索比較器(Sub Search Comparator)は9の候補から最適な位置を比較選択し、1/2MV記憶手段または1/4MV(Quarter MV)記憶手段に保存する。さらに最適な動きベクトルは登録ファイルに送信、記憶され、最終的なブロックモードと最終的な動きベクトル(final MV)についてモード決定器(Mode Decision)が評価、決定する。
【００３１】
〔2-2〕補間器の冗長削減
本実施例の補間器は、本実施例1に係る小数動き推定装置の最も重要な構成部分である。非特許文献9記載のアーキテクチャ(非特許文献9)とは異なり、本発明では処理時間とハードウェア稼働時間を調整した。例えば、非特許文献9記載のアーキテクチャでは、図2に示すように、16×8ブロックについて4つの4×8ブロックに分割して、4画素補間器を使用している。ハードウェアの使用率は100％だが、全部で24個の拡張された列の内、18個の冗長な列を2度計算しなければならず、無駄なクロック周期となる。8画素補間器では冗長なのは6列に削減できる。
【００３２】
それに対し、本実施例1に係る小数動き推定装置では、16画素補間器を導入し冗長な列を全て除去した。16画素補間器では、特に、4×4ブロックと4×8ブロックではハードウェアをフルに使用することができない。こうした補間器についての検索戦略については、図3に示す。本発明では4×4ブロックと4×8ブロックについて、この内の2つを同時に処理してクロック周期を節約するようにする。このアーキテクチャで必要なクロック周期については、(表1)に一覧表で示す。尚、(表1)では、非特許文献9記載のアーキテクチャ(非特許文献9)との比較も示す。(表1)より、16画素補間器がHDTVアプリケーションの制約を満たすよう、50％を超えるクロック周期を節約しているのは明白である。
【００３３】
【表１】
2008154227.tif 000005
【００３４】
〔2-3〕補間器アーキテクチャ
本実施例1に係る小数動き推定装置の16画素1/2補間器の詳細を図4に示す(わかりやすいように、この図のアーキテクチャは4画素補間器としてある)。画素バッファと3種類の6-tap FIRフィルタ:FIR_0,FIR_1,FIR_2から構成される。FIR_0は垂直のFIRフィルタで垂直な1/2画素を作成する整数画素を使用する。FIR_1,FIR_2は対角線のFIRフィルタでそれぞれ水平な1/2画素と対角線の1/2画素を作成する整数画素と垂直な1/2画素を使用する。以下、FIRフィルタFIR_0,FIR_1,FIR_2を、それぞれ「垂直補間器」、「第1対角補間器」、「第2対角補間器」とよぶ。
【００３５】
図4の例では、16画素1/2補間器は、整数画素シフトレジスタ(図4中では「■」及び「□」で表記)、列方向半整数画素シフトレジスタ(図4中では「●」及び「○」で表記)、行方向半整数画素シフトレジスタ(図4中では「▲」及び「△」で表記)、行列方向半整数画素シフトレジスタ(図4中では「★」及び「☆」で表記)、垂直補間器FIR_01〜FIR_02N、第1対角補間器FIR_11〜FIR_1N、及び第2対角補間器FIR_21〜FIR_2Nを備えている。なお、この例ではN＝5であるが、Nの値は自由に変えることが可能である。
【００３６】
図4では、垂直方向の「■」及び「□」のタップの並びが1つの整数画素シフトレジスタを構成し、垂直方向の「●」及び「○」のタップの並びが1つの列方向半整数画素シフトレジスタを構成し、垂直方向の「▲」及び「△」のタップの並びが1つの行方向半整数画素シフトレジスタを構成し、垂直方向の「★」及び「☆」のタップの並びが1つの行列方向半整数画素シフトレジスタを構成する。
【００３７】
垂直補間器FIR_01〜FIR_010は、10列の画素からなる入力画像各画素列に対応してそれぞれ設けられている。各垂直補間器FIR_01〜FIR_010は、6タップの整数画素シフトレジスタを有しており、図4の「■」で記したタップから、それぞれ対応する画素列の画素値が1クロックおきに順次入力される。各整数画素シフトレジスタは、クロック毎に、図4の上から下に向かってタップに格納された画素値をシフトさせていく。各垂直補間器FIR_0i(i＝1,…,10)は、対応するi番目の画素列のn行分の画素の列方向中心位置の半整数画素の画素値をFIR補間演算によって算出する。
【００３８】
尚、3番目から8番目の垂直補間器FIR_03〜FIR_08の整数画素シフトレジスタは、演算結果を出力するために4タップだけ余分に設けられている。
【００３９】
各列方向半整数画素シフトレジスタ(「●」及び「○」の列)は、前記各垂直補間器FIR_01〜FIR_02Nのそれぞれに対応して設けられている。各列方向半整数画素シフトレジスタには、対応する前記垂直補間器FIR_0i(i＝1,…,2N)が出力する半整数画素の画素値が、「●」で記したタップから、1クロックおきに順次に入力される。各列方向半整数画素シフトレジスタは、クロック毎に、図4の上から下に向かってタップに格納された画素値をシフトさせていく。i番目(i＝1,…,N;N＝5)の列方向半整数画素シフトレジスタは、i番目の垂直補間器FIR_0iに対応しており、i個のタップを備えている。また、(2N-i+1)番目(i＝1,…,N;N＝5)の列方向半整数画素シフトレジスタは、(2N-i+1)番目の垂直補間器FIR_02N-i+1に対応しており、i個のタップを備えている。
【００４０】
第1対角補間器FIR_11〜FIR_1N(N＝5)は、隣接する(N+1)列の画素列の集合の各々に対応して1つずつ設けられている。各第1対角補間器FIR_1iは、i番目から(i+N)番目の前記垂直補間器FIR_0i〜FIR_0i+Nに対応している。第1対角補間器FIR_1iは、(i+j)番目(j＝0,…,N)の垂直補間器FIR_0i+jのシフトレジスタの(j+1)番目のタップに格納された画素値をそれぞれ用いて、これら垂直補間器FIR_0i〜FIR_0i+Nに対応する各画素列の行方向中心位置の半整数画素の画素値をFIR補間演算によって算出する。1クロック毎に算出される半整数画素の画素値は、それぞれ「▲」で記した行方向半整数画素シフトレジスタの先頭タップに入力される。
【００４１】
各行方向半整数画素シフトレジスタ(「▲」及び「△」の列)は、各第1対角補間器FIR_11〜FIR_1N(N＝5)のそれぞれに対応して設けられている。各行方向半整数画素シフトレジスタは、クロック毎に、図4の上から下に向かってタップに格納された画素値をシフトさせていく。
【００４２】
第2対角補間器FIR_21〜FIR_2N(N＝5)は、隣接する(N+1)列の画素列の集合の各々に対応して1つずつ設けられている。1番目から3番目の各第2対角補間器FIR_2i(i＝1,2,3)は、(i+j)番目(j＝0,…,N)の列方向半整数画素シフトレジスタの(j+1)番目のタップに格納された画素値をそれぞれ用いて、これら列方向半整数画素シフトレジスタに対応する各画素列の行方向中心位置且つ列方向中心位置の半整数画素の画素値をFIR補間演算によって算出する。また、4番目から5番目の各第2対角補間器FIR_2i(i＝4,5)は、(i+j)番目(j＝0,…,N)の列方向半整数画素シフトレジスタの(N-j+1)番目のタップに格納された画素値をそれぞれ用いて、これら列方向半整数画素シフトレジスタに対応する各画素列の行方向中心位置且つ列方向中心位置の半整数画素の画素値をFIR補間演算によって算出する。各第2対角補間器FIR_21〜FIR_25が算出した半整数画素の画素値は、それぞれ「★」で記した行列方向半整数画素シフトレジスタの先頭タップに入力される。
【００４３】
各行列方向半整数画素シフトレジスタ(「★」及び「☆」の列)は、各第2対角補間器FIR_21〜FIR_2N(N＝5)のそれぞれに対応して設けられている。各行列方向半整数画素シフトレジスタは、クロック毎に、図4の上から下に向かってタップに格納された画素値をシフトさせていく。
【００４４】
非特許文献9記載のアーキテクチャでは図5(a)に示すような水平なFIRフィルタにより1/2画素が作成された。4レベルの加算器構造により長遅延ルートとなり、操作クロック周期を制限する。本発明ではこれを対角線のFIRフィルタ(第1対角補間器FIR_1,第2対角補間器FIR_2)と交換した。
【００４５】
対角線のFIRフィルタ(第1対角補間器FIR_1,第2対角補間器FIR_2)は、図5(c)に示すような、2レベルの加算器構造のみの先行制御FIRフィルタである。FIR_1,FIR_2は先行制御の対角線のFIRフィルタである。また、垂直補間器FIR_0も図5(b)に示すような先行制御の対角線のFIRフィルタである。垂直及び対角線のFIRフィルタでは、先行制御バッファをみたすため5クロック周期待ち時間が必要である。その後、各連続クロック周期内で1/2画素が作成される。
【００４６】
垂直のFIRフィルタ(垂直補間器FIR_0)と対角線のFIRフィルタ(第1対角補間器FIR_1,第2対角補間器FIR_2)の違いは次の通りである。対角線のFIRフィルタはA,B,C,D,E,F(図5の右側のタイムチャート参照)の6入力必要だが、垂直のFIRフィルタは1入力のみでよい。クロック周期は図5の右側のタイムチャートに示したようになる。このような構造では、回路領域が大きく増加することなく遅延ルートを大幅に短縮できる。本実施例1に係る小数動き推定装置における16画素1/2補間器の領域とタイミング遅延は(表2)に一覧表にした。非特許文献9記載のアーキテクチャ(非特許文献9)の既存のアーキテクチャと比較するため、本発明では4画素補間器を実行し、データを(表2)に示した。HDTVアプリケーションの要件を満たすため、本実施例1に係る小数動き推定装置が非特許文献9記載のアーキテクチャよりもはるかに高いクロック周期で作動することは明らかである。
【００４７】
【表２】
2008154227.tif 000006
【００４８】
図4では、算出された1/2画素が最下部のレジスタAに記憶される。そこから出力された信号は1/4補間器(Quarter Interpolation Unit)(図1参照)に入力される。1/4補間器は単純に線形FIRフィルタを使用して1/4画素を作成する。役に立たない1/4画素が生成され回路の領域を無駄にすることがないように、1/4補間器は、どの1/4画素を補間する必要があり、どの1/4画素を補間する必要がないのか決定する1/2サーチ(half search)の結果である1/2動きベクトル(Half MVs)を使用する。領域を節約するため、1/2補間器(Half Interpolation Unit)と1/4補間器の間には、一時的に1/2画素データをラッチするバッファは設けていない。従って、各サブブロックについて1/2補間器を2度実行する。1度は1/2サーチのために1/2画素を作成し、もう1度は1/4補間のために1/2画素を作成する。このようにしても、本実施例1に係る小数動き推定装置では1マクロブロックのクロック周期を800周期未満に制限することが可能である。
【００４９】
16×16 PE(Processing Element:処理要素)のアーキテクチャは、非特許文献9記載のアーキテクチャ(非特許文献9)のものと類似している。非特許文献9記載のアーキテクチャでは4画素PEしかないが、本発明ではアーキテクチャを4倍にして16×16PEにした。様々なブロックサイズの検索を可能にするため、中間のSATDの16×8,8×16,8×8,8×4,4×8,4×4ブロックもラッチし、SATDセレクタに出力した。
【００５０】
〔2-4〕シリコンの実装例
発明の効果の検証のため、本実施例1に係る小数動き推定装置をTSMC 0.18μ technology で実装した。本実施例1に係る小数動き推定装置の主要個別部分の領域は(表3)に示す。レイアウト後ダイナミック・シミュレーションで、本実施例1に係る小数動き推定装置は最悪の場合動作周波数200MHz(典型的な場合285MHz)で作動可能である。(表4)に最終シリコン実装結果を示す。ダイナミック・シミュレーションから、本実施例1に係る小数動き推定装置はフレームレート30fpsで1080HD (1920×1088 at 30fps:245K MB/sec) 2K×1K(2048×1024 at 30fps:246K MB/sec)ビデオ・ストリーミングに十分な250K MB/secの処理量を提供できる。
【００５１】
【表３】
2008154227.tif 000007
【００５２】
【表４】
2008154227.tif 000008
【００５３】
〔3〕結論
本発明ではHDTV用高性能な小数動き推定装置を提供した。先行制御による最適化と完全に標準準拠のフルサーチ・アルゴリズムに基づく検索戦略の観点から、既存の小数動き推定装置をさらに改良したものである。ダイナミック・シミュレーションの結果、このアーキテクチャは回路を285MHzまで高速化し、リアルタイムHDTVビデオ・ストリーミングを符号化する高い処理量を達成することができることが証明された。従って、本発明はHDTVアプリケーションに適用することが可能な、効率的なハードウェア・アクセラレータである。
【図面の簡単な説明】
【００５４】
【図１】本実施例1に係る小数動き推定装置全体のブロック図である。
【図２】16×8ブロックに対する各種補間演算の探索領域及び拡張領域を示す図である。
【図３】16画素補間器における各ブロックサイズの探索探索領域及び拡張領域を示す図である。
【図４】本実施例1に係る小数動き推定装置の16画素1/2補間器の詳細を示す図である。
【図５】水平のFIRフィルタ、垂直のFIRフィルタ、及び対角線のFIRフィルタのアーキテクチャを示す図である。
【符号の説明】
【００５５】
FIR_01〜FIR_010  垂直補間器
FIR_11〜FIR_15  第1対角補間器
FIR_21〜FIR_25  第2対角補間器
「■」及び「□」  整数画素シフトレジスタのタップ
「●」及び「○」  列方向半整数画素シフトレジスタのタップ
「▲」及び「△」  行方向半整数画素シフトレジスタのタップ
「★」及び「☆」  行列方向半整数画素シフトレジスタのタップ
A  最下部のレジスタ
【図１】
2008154227.tif 000009
【図２】
2008154227.tif 000010
【図３】
2008154227.tif 000011
【図４】
2008154227.tif 000012
【図５】
2008154227.tif 000013