(57)【要約】【課題】デブロッキングフィルタ処理を行う動画像処理装置及び方法に関し、デブロッキングフィルタ処理の並列度を高める。【解決手段】第１のマクロブロックのＤＢＦ（デブロッキングフィルタ）処理を、第２のマクロブロックのＤＢＦ処理結果を用いて行う動画像処理装置（１０１）であって、前記第２のマクロブロックに対し、前記ＤＢＦ処理の仮処理を行う仮処理部（２０３）と、前記仮処理が行われた前記第２のマクロブロックを用いて、前記第１のマクロブロックに対し、前記ＤＢＦ処理の本処理を行う本処理部（２０４）とを備える。【選択図】図１３
2010136245.tif 000002
【特許請求の範囲】
【請求項１】
第１のマクロブロックのＤＢＦ（デブロッキングフィルタ）処理を、第２のマクロブロックのＤＢＦ処理結果を用いて行う動画像処理装置であって、
前記第２のマクロブロックに対し、前記ＤＢＦ処理の仮処理を行う仮処理部と、
前記仮処理が行われた前記第２のマクロブロックを用いて、前記第１のマクロブロックに対し、前記ＤＢＦ処理の本処理を行う本処理部と、
を備えることを特徴とする動画像処理装置。
【請求項２】
前記第２のマクロブロックが本処理済みか否かを判断する判断部を備え、
前記第２のマクロブロックが本処理済みと判断された場合には、前記本処理部は、本処理済みの前記第２のマクロブロックを用いて、前記第１のマクロブロックに対し、前記本処理を行い、
前記第２のマクロブロックが本処理済みではないと判断された場合には、前記仮処理部は、前記第２のマクロブロックに対し、前記仮処理を行い、前記本処理部は、仮処理済みの前記第２のマクロブロックを用いて、前記第１のマクロブロックに対し、前記本処理を行う、
ことを特徴とする請求項１に記載の動画像処理装置。
【請求項３】
第１のマクロブロックのＤＢＦ（デブロッキングフィルタ）処理を、第２のマクロブロックのＤＢＦ処理結果を用いて行う動画像処理装置であって、
前記ＤＢＦ処理をマクロブロックごとに並列に実行するための第１から第Ｎ（Ｎは２以上の整数）のプロセッサと、
前記第１から第Ｎのプロセッサにおいて、前記第２のマクロブロックに対し、前記ＤＢＦ処理の仮処理を行う第１から第Ｎの仮処理部と、
前記第１から第Ｎのプロセッサにおいて、前記仮処理が行われた前記第２のマクロブロックを用いて、前記第１のマクロブロックに対し、前記ＤＢＦ処理の本処理を行う第１から第Ｎの本処理部と、
を備えることを特徴とする動画像処理装置。
【請求項４】
第１のマクロブロックのＤＢＦ（デブロッキングフィルタ）処理を、第２のマクロブロックのＤＢＦ処理結果を用いて行う動画像処理方法であって、
前記第２のマクロブロックに対し、前記ＤＢＦ処理の仮処理を行い、
前記仮処理が行われた前記第２のマクロブロックを用いて、前記第１のマクロブロックに対し、前記ＤＢＦ処理の本処理を行う、
ことを特徴とする動画像処理方法。
【請求項５】
前記第２のマクロブロックが本処理済みか否かを判断し、
前記第２のマクロブロックが本処理済みと判断された場合には、本処理済みの前記第２のマクロブロックを用いて、前記第１のマクロブロックに対し、前記本処理を行い、
前記第２のマクロブロックが本処理済みではないと判断された場合には、前記第２のマクロブロックに対し、前記仮処理を行い、仮処理済みの前記第２のマクロブロックを用いて、前記第１のマクロブロックに対し、前記本処理を行う、
ことを特徴とする請求項４に記載の動画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像処理装置及び方法に関し、例えば、Ｈ．２６４に準拠したエンコーダ及びデコーダに適用されるものである。
【背景技術】
【０００２】
動画像の圧縮、伸張に関する標準規格として、ＭＰＥＧが広く知られている。ＭＰＥＧには、ＭＰＥＧ１、ＭＰＥＧ２、Ｈ．２６４等の方式が存在する。
【０００３】
Ｈ．２６４では、ＤＢＦ（デブロッキングフィルタ）処理と呼ばれるブロックノイズの補正方法が規定されている。ＤＢＦ処理では、各マクロブロックの処理の際に、各マクロブロックの１つ上のマクロブロックと１つ左のマクロブロックの処理結果を用いる。
【０００４】
このような依存関係が存在するため、ＤＢＦ処理は並列化が困難である。ＤＢＦ処理を複数のプロセッサで実行すると、プロセッサ間で待ち合わせやデータのやり取りが頻繁に発生してしまう。そのため、ＤＢＦ処理を複数のプロセッサで並列化する場合、これらのプロセッサにプロセッサ数に応じた性能を発揮させることは困難である。
【０００５】
特許文献１から３には、ＤＢＦ処理を行う動画像処理装置の例が記載されている。特許文献１及び２には、ＤＢＦのハードウェアエンジンの実装方法が記載されている。また、特許文献３には、ＤＢＦ処理を行うか否かを、装置の負荷レベルに応じて判定する方法が記載されている。しかしながら、これらの特許文献には、マクロブロックレベルでのＤＢＦ処理の並列化については記載されていない。
【特許文献１】特開２００６−１７４４８６号公報
【特許文献２】特開２００７−１８０７２３号公報
【特許文献３】特開２００７−２０８４７６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、デブロッキングフィルタ処理を行う動画像処理装置及び方法に関し、デブロッキングフィルタ処理の並列度を高めることを課題とする。
【課題を解決するための手段】
【０００７】
本発明の一の態様は、例えば、第１のマクロブロックのＤＢＦ（デブロッキングフィルタ）処理を、第２のマクロブロックのＤＢＦ処理結果を用いて行う動画像処理装置であって、前記第２のマクロブロックに対し、前記ＤＢＦ処理の仮処理を行う仮処理部と、前記仮処理が行われた前記第２のマクロブロックを用いて、前記第１のマクロブロックに対し、前記ＤＢＦ処理の本処理を行う本処理部と、を備えることを特徴とする動画像処理装置である。
【０００８】
本発明の別の態様は、例えば、第１のマクロブロックのＤＢＦ（デブロッキングフィルタ）処理を、第２のマクロブロックのＤＢＦ処理結果を用いて行う動画像処理装置であって、前記ＤＢＦ処理をマクロブロックごとに並列に実行するための第１から第Ｎ（Ｎは２以上の整数）のプロセッサと、前記第１から第Ｎのプロセッサにおいて、前記第２のマクロブロックに対し、前記ＤＢＦ処理の仮処理を行う第１から第Ｎの仮処理部と、前記第１から第Ｎのプロセッサにおいて、前記仮処理が行われた前記第２のマクロブロックを用いて、前記第１のマクロブロックに対し、前記ＤＢＦ処理の本処理を行う第１から第Ｎの本処理部と、を備えることを特徴とする動画像処理装置である。
【０００９】
本発明の別の態様は、例えば、第１のマクロブロックのＤＢＦ（デブロッキングフィルタ）処理を、第２のマクロブロックのＤＢＦ処理結果を用いて行う動画像処理方法であって、前記第２のマクロブロックに対し、前記ＤＢＦ処理の仮処理を行い、前記仮処理が行われた前記第２のマクロブロックを用いて、前記第１のマクロブロックに対し、前記ＤＢＦ処理の本処理を行う、ことを特徴とする動画像処理方法である。
【発明の効果】
【００１０】
本発明によれば、デブロッキングフィルタ処理を行う動画像処理装置及び方法に関し、デブロッキングフィルタ処理の並列度を高めることが可能になる。
【発明を実施するための最良の形態】
【００１１】
本発明の実施形態を、図面に基づいて説明する。
【００１２】
（第１実施形態）
図１は、第１実施形態の動画像処理装置１０１の構成を示すブロック図である。
【００１３】
図１の動画像処理装置１０１は、Ｈ．２６４に準拠した動画像処理を行う装置であり、１個のＣＰ（Control Processor）１１１と、Ｎ個のＰＥ（Processor Element）１１２と、ＲＡＭ（Random Access Memory）１１３と、ＲＯＭ（Read Only Memory）１１４とを備える。ただし、Ｎは２以上の整数である。
【００１４】
図１の動画像処理装置１０１は、Ｎ個のＰＥ１１２により、ＤＢＦ（デブロッキングフィルタ）処理をマクロブロックごとに並列に実行する。その際、ＣＰ１１１は、これらのＰＥ１１２の制御を行い、ＲＡＭ１１３は、これらのＰＥ１１２の共有メモリとして使用される。また、ＲＯＭ１１４には、ＤＢＦ処理用のプログラムが格納されている。ＤＢＦ処理の際には、このプログラムが各ＰＥ１１２で実行される。
【００１５】
図１には、Ｎ個のＰＥ１１２として、第１から第ＮのＰＥ１１２1〜１１２Nが示されている。これらは、本発明の第１から第Ｎのプロセッサの例である。なお、図１の動画像処理装置１０１は、エンコーダでもデコーダでも構わない。
【００１６】
図２は、ＤＢＦ処理の実行方法について説明するための図である。
【００１７】
図２には、動画像を構成する１つの画像Ｉと、画像Ｉに含まれる複数のマクロブロックＭＢが示されている。各マクロブロックＭＢのサイズは、１６×１６ピクセルである。
【００１８】
図２では、あるマクロブロックがＭＢXで示されている。Ｈ．２６４では、マクロブロックＭＢXのＤＢＦ処理を行う際、その１つ上のマクロブロックＭＢAとその１つ左のマクロブロックＭＢBのＤＢＦ処理結果が必要となる。これは、他のマクロブロックについても同様である。マクロブロックＭＢXは、本発明の第１のマクロブロックの例であり、マクロブロックＭＢA及びＭＢBは、本発明の第２のマクロブロックの例である。
【００１９】
このように、ＤＢＦ処理では、各マクロブロックの処理の際に、各マクロブロックの１つ上のマクロブロックと１つ左のマクロブロックの処理結果が必要となる。このような依存関係が存在するため、ＤＢＦ処理は一般に並列化が困難である。
【００２０】
この様子は、図３に例示されている。図３は、ＤＢＦ処理の問題点について説明するための図である。図３では、ラインＬ1，Ｌ2，Ｌ3のＤＢＦ処理がそれぞれ、プロセッサエレメントＰＥ1，ＰＥ2，ＰＥ3により行われる。
【００２１】
ＰＥ2が、マクロブロックＭＢQのＤＢＦ処理を行う際には、マクロブロックＭＢPのＤＢＦ処理結果が必要となる。そのため、ＰＥ2は、ＰＥ1がＭＢPのＤＢＦ処理を終了するまで、ＭＢQのＤＢＦ処理を行うことができない。ＭＢPのＤＢＦ処理が終了していない場合、ＰＥ2は、ＭＢPのＤＢＦ処理が終了するまで待機することを強いられる。
【００２２】
本実施形態によれば、この問題に対する解決策が提示される。当該解決策については、後述することにする。
【００２３】
図４は、ＤＢＦ処理の詳細について説明するための図である。
【００２４】
図４(Ａ)には、マクロブロックＭＢXと、マクロブロックＭＢAの一部と、マクロブロックＭＢBの一部が示されている。図４(Ａ)に示す正方形領域Ｓは、４×４ピクセル分の領域を表す。マクロブロックＭＢXのＤＢＦ処理の際には、図４(Ａ)に示すように、Ｆ1からＦ8の順にマクロブロックＭＢXにフィルタをかける。
【００２５】
図４(Ｂ)は、図４(Ａ)に示す領域Ｘ1の拡大図である。図４(Ｂ)では、領域Ｘ1に含まれる８ピクセルの値が、p0〜p3及びq0〜q3で示されている。図４(Ｂ)では更に、Ｆ1のフィルタ処理の際のフィルタ境界が、Ｂで示されている。
【００２６】
Ｆ1のフィルタ処理では、図４(Ｂ)に示すピクセル値p0〜p3及びq0〜q3がそれぞれ、図４(Ｃ)に示すピクセル値p'0〜p'3及びq'0〜q'3に置き換えられる。図４(Ｄ)には、ピクセル値p0〜p3及びq0〜q3からピクセル値p'0〜p'3及びq'0〜q'3を導出するための処理式が示されている。
【００２７】
Ｆ1のフィルタ処理では、図４(Ｄ)の処理式で表される処理が、矢印Ｖ1の両側の８個の正方形領域Ｓに対して行われる。同様に、Ｆ2〜Ｆ8のフィルタ処理では、この処理式で表される処理がそれぞれ、矢印Ｖ2〜Ｖ8の両側の８個の正方形領域Ｓに対して行われる。
【００２８】
なお、Ｆ2の処理では、Ｆ1の処理結果が用いられ、Ｆ3の処理では、Ｆ1及びＦ2の処理結果が用いられる。同様に、Ｆ8の処理では、Ｆ1〜Ｆ7の処理結果が用いられる。
【００２９】
また、Ｆ1の処理では、マクロブロックＭＢBの処理結果が用いられ、Ｆ5の処理では、マクロブロックＭＢAの処理結果が用いられる。このように、マクロブロックＭＢXのＤＢＦ処理では、マクロブロックＭＢA及びＭＢBのＤＢＦ処理結果が用いられる。なお、Ｆ1の処理は領域Ｘ1に適用されるのに対し、Ｆ5の処理は領域Ｘ2に適用される（図４(Ａ)）。
【００３０】
図５は、ＤＢＦ処理の依存関係について説明するための図である。
【００３１】
図５(Ａ)では、１６個のピクセルの値が、p0〜p3，q0〜q3，r0〜r3，s0〜s3で示され、これらのピクセルにフィルタをかける際のフィルタ境界が、Ｂ1，Ｂ2，Ｂ3，Ｂ4で示されている。
【００３２】
ここで、図５(Ａ)の元画像に、フィルタ境界Ｂ1，Ｂ2，Ｂ3，Ｂ4の順にフィルタをかけることを想定する。図５(Ｂ)〜(Ｅ)はそれぞれ、フィルタ境界Ｂ1，Ｂ2，Ｂ3，Ｂ4においてフィルタ処理を行った直後の画像を表す。
【００３３】
図５(Ｂ)〜(Ｅ)において、p'0，p'1，，，はそれぞれ、フィルタ処理が１回行われたp0，p1，，，を表し、p''0，p''1，，，はそれぞれ、フィルタ処理が２回行われたp0，p1，，，を表す。なお、p'0，p'1，，，は、図４(Ｄ)に示す処理式で与えられる。また、p''0，p''1，，，は、この処理式のp0，p1，，，にp'0，p'1，，，を代入し、p''0，p''1，，，にp'0，p'1，，，を代入することで与えられる。
【００３４】
図５に示す矢印は、s'0〜s'3が依存するピクセル値を示している。これらの矢印から、s'0〜s'3は、元画像のq3，r0〜r3，s0〜s3に依存するが、元画像のp0〜p3には依存しないことが解る。よって、s'0〜s'3は、元画像のq3，r0〜r3，s0〜s3を利用することで導出可能であり、s'0〜s'3を導出する際に、元画像のp0〜p3は不要である。
【００３５】
なお、図４(Ｄ)に示す処理式は、最も依存関係が深いタイプの処理式である。よって、他のタイプの処理式を採用すれば、依存関係は更に浅くなる。
【００３６】
以上、図２から図５を参照して、ＤＢＦ処理について説明した。図２及び図４にて説明したように、マクロブロックＭＢXのＤＢＦ処理を行う際には、マクロブロックＭＢA及びＭＢBのＤＢＦ処理結果が必要となる。そのため、ＭＢXのＤＢＦ処理の際に、ＭＢA及びＭＢBのＤＢＦ処理が終了していない場合には、ＭＢA及びＭＢBのＤＢＦ処理が終了するまで待機しなければならなくなる。
【００３７】
そこで、本実施形態では、本来のＤＢＦ処理である「本処理」に加え、仮のＤＢＦ処理である「仮処理」を導入する。本実施形態では、ＭＢXのＤＢＦ処理（本処理）の際に、ＭＢA及びＭＢBのＤＢＦ処理（本処理）が終了していない場合には、ＭＢA及びＭＢBに対し、仮処理を行う。そして、本実施形態では、仮処理が行われたＭＢA及びＭＢBを用いて、ＭＢXのＤＢＦ処理（本処理）を行う。
【００３８】
以下、ＤＢＦ処理の仮処理の原理を説明する。図６から図１１は、ＤＢＦ処理の仮処理の原理を説明するための図である。
【００３９】
図６(Ａ)には、マクロブロックＭＢXの全体と、マクロブロックＭＢA，ＭＢB，ＭＢCの一部が示されている。マクロブロックＭＢA，ＭＢB，ＭＢCはそれぞれ、マクロブロックＭＢXの上，左，左上に隣接している。
【００４０】
図６(Ａ)には、４９個（＝７×７個）の正方形領域Ｓが示されている。これらの正方形領域Ｓに対しては、Ｆ1からＦ28の順にフィルタ処理が行われる。マクロブロックＭＢC，ＭＢA，ＭＢB，ＭＢXはそれぞれ、フィルタ処理Ｆ1〜Ｆ6，Ｆ7〜Ｆ13，Ｆ14〜Ｆ20，Ｆ21〜Ｆ28により処理される。
【００４１】
なお、マクロブロックＭＢCは、フィルタ処理Ｆ7及びＦ17の影響も受ける。また、マクロブロックＭＢA，ＭＢBはそれぞれ、フィルタ処理Ｆ25，Ｆ21の影響も受ける。
【００４２】
以下、図６(Ｂ)〜図１１(Ｂ)を参照して、マクロブロックＭＢXのＤＢＦ処理結果を得るために必要な画像データについて説明する。
【００４３】
まず、図６(Ｂ)に示すように、領域ＲAのＦ21までのフィルタ処理結果を得るためには、領域ＲBのＦ18までのフィルタ処理結果が必要である。理由は、図５において、s'0〜s'3がp'2及びp'3を利用してs0〜s3から導出可能であるのと同様である。領域ＲAは、ＭＢXに占める４×４ピクセルの領域であり、領域ＲBは、ＭＢBに占める２×４ピクセルの領域である。
【００４４】
次に、図７(Ａ)に示すように、領域ＲBのＦ18までのフィルタ処理結果を得るためには、領域ＲB及びＲCのＦ16までのフィルタ処理結果と、領域ＲDのＦ7までのフィルタ処理結果が必要である。領域ＲCは、ＭＢBに占める２×２ピクセルの領域であり、領域ＲDは、ＭＢCに占める２×２ピクセルの領域である。
【００４５】
また、図７(Ａ)に示すように、領域ＲB及びＲCのＦ16までのフィルタ処理結果は、領域ＲB，ＲC，ＲEの元画像に対しフィルタ処理Ｆ16を行うことで得られる。理由は、図５において、s'2及びs'3がr3，s0〜s3を利用して導出可能であるのと同様である。領域ＲEは、ＭＢBに占める３×６ピクセルの領域である。
【００４６】
次に、図７(Ｂ)に示すように、領域ＲDのＦ7までのフィルタ処理結果を得るためには、領域ＲDのＦ6までのフィルタ処理結果と、領域ＲFの元画像が必要である。領域ＲFは、ＭＢAに占める２×２ピクセルの領域である。
【００４７】
また、図７(Ｂ)に示すように、領域ＲDのＦ6までのフィルタ処理結果を得るためには、領域ＲD及びＲGのＦ3までのフィルタ処理結果が必要である。領域ＲGは、ＭＢCに占める２×３ピクセルの領域である。
【００４８】
また、図７(Ｂ)に示すように、領域ＲD及びＲGのＦ3までのフィルタ処理結果を得るためには、領域ＲD，ＲG，ＲHの元画像が必要である。領域ＲHは、ＭＢCに占める３×５ピクセルの領域である。
【００４９】
従って、図８(Ａ)に示すように、領域ＲAのＦ21までのフィルタ処理結果を得るためには、領域Ｒ(1)の元画像が必要である。領域Ｒ(1)は、領域ＲB〜ＲHを合計した領域である。
【００５０】
次に、図８(Ｂ)に示すように、領域ＲAのＦ25までのフィルタ処理結果を得るためには、領域ＲAのＦ21までのフィルタ処理結果と、領域ＲIのＦ13までのフィルタ処理結果が必要である。領域ＲIは、ＭＢAに占める４×２ピクセルの領域である。
【００５１】
次に、図９(Ａ)に示すように、領域ＲIのＦ13までのフィルタ処理結果を得るためには、領域ＲI及びＲJのＦ8までのフィルタ処理結果が必要である。領域ＲJは、ＭＢAに占める４×３ピクセルの領域である。
【００５２】
また、図９(Ａ)に示すように、領域ＲI及びＲJのＦ8までのフィルタ処理結果を得るためには、領域ＲI及びＲJのＦ7までのフィルタ処理結果と、領域ＲKの元画像が必要である。領域ＲKは、ＭＢAに占める２×５ピクセルの領域である。
【００５３】
次に、図９(Ｂ)に示すように、領域ＲI及びＲJのＦ7までのフィルタ処理結果を得るためには、領域ＲI及びＲJの元画像と、領域ＲLのＦ6までのフィルタ処理結果が必要である。領域ＲLは、ＭＢCに占める２×５ピクセルの領域である。
【００５４】
また、図９(Ｂ)に示すように、領域ＲLのＦ6までのフィルタ処理結果を得るためには、領域ＲLのＦ3までのフィルタ処理結果と、領域ＲMのＦ5までのフィルタ処理結果が必要である。領域ＲMは、ＭＢCに占める２×２ピクセルの領域である。
【００５５】
次に、図１０(Ａ)に示すように、領域ＲMのＦ5までのフィルタ処理結果を得るためには、領域ＲM及びＲNのＦ3までのフィルタ処理結果が必要である。従って、領域ＲLのＦ6までのフィルタ処理結果を得るためには、領域ＲL，ＲM，ＲNのＦ3までのフィルタ処理結果が必要である。領域ＲNは、ＭＢCに占める２×２ピクセルの領域である。
【００５６】
また、図１０(Ａ)に示すように、領域ＲL，ＲM，ＲNのＦ3までのフィルタ処理結果を得るためには、領域ＲL，ＲM，ＲN，ＲOの元画像が必要である。領域ＲOは、ＭＢCに占める３×９ピクセルの領域である。
【００５７】
従って、図１０(Ｂ)に示すように、領域ＲAのＦ25までのフィルタ処理結果を得るためには、領域Ｒ(2)の元画像が必要である。領域Ｒ(2)は、領域ＲB〜ＲOを合計した領域である。ただし、領域ＲB〜ＲHと領域ＲI〜ＲOには重複部分があるため、重複部分については一方だけを考慮する。
【００５８】
ＭＢX内のその他の領域のフィルタ処理結果は、同様にして得ることができる。よって、図１１(Ａ)に示すように、ＭＢXのＦ28までのフィルタ処理結果を得るためには、領域Ｒ(3)の元画像が必要となる。領域Ｒ(3)は、ＭＢAに占める１６×５ピクセルの領域と、ＭＢBに占める５×１６ピクセルの領域と、ＭＢCに占める５×９ピクセルの領域と、ＭＢDに占める２×４ピクセルの領域で構成される。なお、ＭＢDは、ＭＢXの右上に隣接するマクロブロックである。
【００５９】
以上のように、マクロブロックＭＢXのＤＢＦ処理結果は、領域Ｒ(3)の元画像から得ることができる。本実施形態では、これを利用してＤＢＦ処理の仮処理を行う。本実施形態では、ＭＢXのＤＢＦ処理（本処理）の際に、ＭＢA及びＭＢBのＤＢＦ処理（本処理）が終了していない場合には、ＭＢA及びＭＢBに対し、仮処理を行う。
【００６０】
ＭＢA及びＭＢBの本処理では、ＭＢA及びＭＢBに対し、Ｆ7〜Ｆ20等のフィルタ処理を行う。これにより、ＭＢA及びＭＢBの全領域のＤＢＦ処理結果を得ることができる。
【００６１】
これに対し、ＭＢA及びＭＢBの仮処理では、領域Ｒ(3)の元画像に対し、フィルタ処理Ｆ3，Ｆ5〜Ｆ10，Ｆ13，Ｆ16〜Ｆ20を行う。これにより、図１１(Ｂ)に示すように、領域ＲX及びＲYのＤＢＦ処理結果を得ることができる。領域ＲXは、ＭＢBに占める２×１６ピクセルの領域であり、領域ＲYは、ＭＢAに占める１６×２ピクセルの領域である。
【００６２】
ＭＢA及びＭＢBの仮処理が行われた場合、ＭＢXのＤＢＦ処理は、仮処理結果、即ち、領域ＲX及びＲYのＤＢＦ処理結果を用いて行われる。ＭＢXのＤＢＦ処理では、領域ＲX及びＲYのＤＢＦ処理結果を用いて、ＭＢXに対し、フィルタ処理Ｆ21〜Ｆ28を行う。これにより、ＭＢXの全領域のＤＢＦ処理結果を得ることができる。
【００６３】
上述のように、ＭＢXのＤＢＦ処理を行う際には、ＭＢA及びＭＢBのＤＢＦ処理結果が必要となる。しかしながら、この際、ＭＢA及びＭＢBの全領域のＤＢＦ処理結果は必要なく、領域ＲX及びＲYのＤＢＦ処理結果だけで十分である。このことは、図６(Ｂ)及び図８(Ｂ)に関する説明から理解される。そのため、本実施形態では、ＭＢXのＤＢＦ処理を、ＭＢA及びＭＢBの仮処理結果を用いて行うことができる。
【００６４】
以上のように、本実施形態では、ＭＢXのＤＢＦ処理の際に、ＭＢA及びＭＢBのＤＢＦ処理が終了していない場合には、ＭＢA及びＭＢBに対し、仮処理を行う。これにより、本実施形態では、ＭＢXのＤＢＦ処理の際に、ＭＢA及びＭＢBのＤＢＦ処理の終了まで待機する必要がなくなる。従って、本実施形態によれば、ＤＢＦ処理の並列度を高めることができる。
【００６５】
なお、本実施形態では、ＭＢA及びＭＢBの仮処理に、ＭＢA及びＭＢBの元画像だけでなく、ＭＢC及びＭＢDの元画像も利用される。理由は、領域ＲX及びＲYのＤＢＦ処理結果が、ＭＢC及びＭＢDの元画像に依存するからである。ただし、ＭＢXのＤＢＦ処理を行う際、ＭＢA及びＭＢB（領域ＲX及びＲY）のＤＢＦ処理結果は必要となるが、ＭＢC及びＭＢDのＤＢＦ処理結果は不要である。
【００６６】
図１２は、図１の動画像処理装置１０１により行われるＤＢＦ処理について説明するためのフローチャートである。
【００６７】
まず、動画像処理装置１０１は、ＤＢＦ処理前のマクロブロックＭＢXを取得する（ステップＳ１）。このＭＢXは、図２に示すＭＢXと同様、１つの画像に含まれる任意のマクロブロックに相当する。
【００６８】
次に、動画像処理装置１０１は、マクロブロックＭＢA及びＭＢBが本処理済みか否かを判断する（ステップＳ２）。これらのＭＢA及びＭＢBは、図２に示すＭＢA及びＭＢBと同様、ＭＢXの１つ上及び１つ左のマクロブロックに相当する。
【００６９】
動画像処理装置１０１は、ＭＢA及びＭＢBが本処理済みと判断された場合には、本処理済みのＭＢA及びＭＢBを取得する（ステップＳ３）。そして、動画像処理装置１０１は、本処理済みのＭＢA及びＭＢBを用いて、ＭＢXに対し、ＤＢＦ処理の本処理を行う（ステップＳ４）。
【００７０】
一方、動画像処理装置１０１は、ＭＢA又はＭＢBが本処理済みではないと判断された場合には、仮処理に必要な元画像を取得し（ステップＳ１１）、当該元画像を用いて、ＭＢA及びＭＢBに対し、仮処理を行う（ステップＳ１２）。そして、動画像処理装置１０１は、仮処理済みのＭＢA及びＭＢBを用いて、ＭＢXに対し、ＤＢＦ処理の本処理を行う（ステップＳ４）。
【００７１】
そして、動画像処理装置１０１は、Ｓ１〜Ｓ１２の処理を、上記画像に含まれる各マクロブロックに対して実行する（ステップＳ２１）。
【００７２】
このように、図１２では、ＭＢA又はＭＢBが本処理済みではない場合には、ＭＢA及びＭＢBの仮処理を行い、仮処理済みのＭＢA及びＭＢBを用いて、ＭＢXの本処理を行う。これにより、ＭＢA及びＭＢBのＤＢＦ処理の終了まで待機せずに、ＭＢXのＤＢＦ処理を行うことができる。
【００７３】
また、図１２では、ＭＢA又はＭＢBが本処理済みの場合には、本処理済みのＭＢA及びＭＢBを用いて、ＭＢXの本処理を行う。これにより、本処理済みのＭＢA及びＭＢBが取得可能な場合に、ＭＢA及びＭＢBの仮処理を無駄に行うことが回避される。
【００７４】
また、図１の動画像処理装置１０１は、Ｎ個のＰＥ１１２により、ＤＢＦ処理をマクロブロックごとに並列に実行する。ＤＢＦ処理を図１２のように実行する場合には、各ＰＥ１１２がＳ１〜Ｓ１２の処理を行うことで、ＤＢＦ処理をマクロブロックごとに並列に行うことができる。この場合、あるＰＥ１１２では、あるマクロブロックに対し、Ｓ１〜Ｓ１２の処理を行い、別のＰＥ１１２では、別のマクロブロックに対し、Ｓ１〜Ｓ１２の処理を並列に行うことになる。これにより、並列度の高いＤＢＦ処理が実現される。
【００７５】
図１２の処理は例えば、図１３に示す機能ブロックにより実行可能である。図１３は、図１の動画像処理装置１０１を構成する機能ブロックを示したブロック図である。
【００７６】
動画像処理装置１０１は、図１３のように、Ｎ個のマクロブロック取得部２０１と、Ｎ個のフラグチェック部２０２と、Ｎ個の仮処理部２０３と、Ｎ個の本処理部２０４と、Ｎ個のフラグ書き込み部２０５とを備える。これらの機能ブロックは、ＲＯＭ１１４（図１参照）内のプログラムを各ＰＥ１１２において実行することで実現される。なお、フラグチェック部２０２は、本発明の判断部の例である。
【００７７】
図１３には更に、ＤＢＦ処理（本処理）前の画像データと、ＤＢＦ処理（本処理）済みの画像データと、各マクロブロックのフィルタ処理完了フラグが示されている。これらは、ＲＡＭ１１３内に格納されている。
【００７８】
マクロブロック取得部２０１は、Ｓ１の処理を行う機能ブロックである。マクロブロック取得部２０１は、ＤＢＦ処理前のＭＢXをＲＡＭ１１３から取得する。
【００７９】
フラグチェック部２０２は、フィルタ処理完了フラグをチェックする機能ブロックである。フィルタ処理完了フラグは、各マクロブロックが本処理済みであるか否かを示している。フラグチェック部２０２は、フィルタ処理完了フラグをチェックすることで、ＭＢA及びＭＢBが本処理済みか否かを判断する（Ｓ２）。
【００８０】
仮処理部２０３は、Ｓ１１及びＳ１２の処理を行う機能ブロックである。仮処理部２０３は、ＭＢA又はＭＢBが本処理済みではないと判断された場合、仮処理に必要な元画像をＲＡＭ１１３から取得し、当該元画像を用いて、ＭＢA及びＭＢBに対し、仮処理を行う。
【００８１】
本処理部２０４は、Ｓ３及びＳ４の処理を行う機能ブロックである。本処理部２０４は、ＭＢA又はＭＢBが本処理済みではないと判断された場合には、仮処理済みのＭＢA及びＭＢBを仮処理部２０３から取得し、仮処理済みのＭＢA及びＭＢBを用いて、ＭＢXに対し、本処理を行う。一方、ＭＢA及びＭＢBが本処理済みと判断された場合には、本処理済みのＭＢA及びＭＢBをＲＡＭ１１３から取得し、本処理済みのＭＢA及びＭＢBを用いて、ＭＢXに対し、本処理を行う。本処理済みのＭＢXは、ＲＡＭ１１３内に格納される。
【００８２】
フラグ書き込み部２０５は、フィルタ処理完了フラグの書き込みを行う機能ブロックである。フラグ書き込み部２０５は、ＭＢXの本処理が終了すると、ＭＢXが本処理済みであることを示すフィルタ処理完了フラグを書き込む。
【００８３】
図１３には、これらの機能ブロックとして、第１から第Ｎのマクロブロック取得部２０１1〜２０１Nと、第１から第Ｎのフラグチェック部２０２1〜２０２Nと、第１から第Ｎの仮処理部２０３1〜２０３Nと、第１から第Ｎの本処理部２０４1〜２０４Nと、第１から第Ｎのフラグ書き込み部２０５1〜２０５Nが示されている。これらの機能ブロックはそれぞれ、第１から第ＮのＰＥ１１２1〜１１２Nにおいて実現されている。
【００８４】
動画像処理装置１０１では、これらの機能ブロックにより、ＤＢＦ処理がマクロブロックごとに並列に実行される。第ｎ（ｎは１〜Ｎの任意の整数）のＰＥ１１２では、機能ブロック２０１n〜２０５nにより、図１２の処理が実行される。
【００８５】
なお、本実施形態では、ＲＡＭ１１３が、第１から第ＮのＰＥ１１２1〜１１２Nの共有メモリとして使用される。よって、本実施形態では、あるＰＥ１１２が、ＭＢA及びＭＢBの本処理を行った場合、他のＰＥ１１２は、これらを利用してＭＢXの本処理を行うことができる。この際、後者のＰＥ１１２は、前者のＰＥ１１２が書き込んだフィルタ処理完了フラグをチェックすることで、ＭＢA及びＭＢBが本処理済みか否かを判断することができる。
【００８６】
また、本実施形態では、Ｎ個のＰＥ１１２を備える動画像処理装置１０１にて、ＤＢＦ処理が、Ｎ個のＰＥ１１２により実行される。しかしながら、本実施形態では、Ｎ＋Ｋ個のＰＥ１１２を備える動画像処理装置１０１にて、ＤＢＦ処理を、Ｎ個のＰＥ１１２により実行してもよい（Ｋは１以上の整数）。即ち、ＤＢＦ処理は、動画像処理装置１０１内の全てのＰＥ１１２で実行してもよいし、動画像処理装置１０１内の一部のＰＥ１１２で実行してもよい。
【００８７】
以上のように、本実施形態では、第１のマクロブロックのＤＢＦ処理を、第２のマクロブロックのＤＢＦ処理結果を用いて行う場合において、第２のマクロブロックの仮処理を行い、第２のマクロブロックの仮処理結果を用いて、第１のマクロブロックの本処理を行うことが可能となっている。これにより、本実施形態では、ＤＢＦ処理の並列度を高めることができる。
【００８８】
以下、本発明の第２実施形態について説明する。第２実施形態は、第１実施形態の変形例であり、第２実施形態については、第１実施形態との相違点を中心に説明する。
【００８９】
（第２実施形態）
図１の動画像処理装置１０１は、１つの画像に対しＤＢＦ処理を行う際、当該画像を複数のユニットに分割し、各ユニットに対しＤＢＦ処理を行ってもよい。第２実施形態では、このようなユニット分割の例について説明する。
【００９０】
図１４は、画像のユニット分割の第１の例を示した図である。図１４には、動画像を構成する１つの画像Ｉと、画像Ｉに含まれる複数のマクロブロックＭＢが示されている。
【００９１】
図１４では、画像Ｉが、横方向に伸びるＮ1本の直線Ｅ1により、Ｎ1＋１個のユニットに分割されている。ただし、Ｎ1は１以上の整数である。図１４では、第１のユニットＵ1に含まれるラインＬ1，Ｌ2，Ｌ3のＤＢＦ処理がそれぞれ、プロセッサエレメントＰＥ1，ＰＥ2，ＰＥ3（ＰＥ１１２1〜１１２3）により行われる。図１４では更に、第２のユニットＵ2に含まれるラインＬ4，Ｌ5，Ｌ6のＤＢＦ処理がそれぞれ、プロセッサエレメントＰＥ4，ＰＥ5，ＰＥ6（ＰＥ１１２4〜１１２6）により行われる。
【００９２】
図１４では、ＰＥ4が各マクロブロックのＤＢＦ処理を行う際、その１つ上のマクロブロックのＤＢＦ処理が終了していない。そこで、ＰＥ4は、各マクロブロックのＤＢＦ処理を、その１つ上及び１つ左のマクロブロックの仮処理結果を用いて行う。これにより、動画像処理装置１０１は、ＤＢＦ処理の並列処理を効率的に行うことができる。
【００９３】
図１５は、画像のユニット分割の第２の例を示した図である。図１５には、動画像を構成する１つの画像Ｉが示されている。
【００９４】
図１５では、画像Ｉが、横方向に伸びるＮ2本の直線Ｅ2と、縦方向に伸びるＮ3本の直線Ｅ3により、（Ｎ2＋１）×（Ｎ3＋１）個のユニットに分割されている。ただし、Ｎ1及びＮ2は共に１以上の整数である。図１５では、第１〜第１２のユニットＵ1〜Ｕ12のＤＢＦ処理がそれぞれ、プロセッサエレメントＰＥ1〜ＰＥ12（ＰＥ１１２1〜１１２12）により行われる。
【００９５】
図１５では、各ＰＥが領域ＲのマクロブロックのＤＢＦ処理を行う際、その１つ上又は１つ左のマクロブロックのＤＢＦ処理が終了していない。そこで、各ＰＥは、このようなマクロブロックのＤＢＦ処理を、その１つ上及び１つ左のマクロブロックの仮処理結果を用いて行う。これにより、動画像処理装置１０１は、ＤＢＦ処理の並列処理を効率的に行うことができる。
【００９６】
画像のユニット分割は、図１４や図１５とは別の方法で行っても構わない。
【００９７】
なお、画像のユニット分割は、仮処理対象となるマクロブロックの個数が、出来るだけ少なくなるように行うことが望ましい。理由は、仮処理の処理量を減らすことで、ＤＢＦ処理がより効率化されるからである。
【００９８】
また、画像のユニット分割は、ＭＢA及びＭＢBの本処理からＭＢXの本処理までの時間が、出来るだけ短くなるように行うことが望ましい。理由は、本処理済みのマクロブロックがＲＡＭ１１３を占める時間を短くすることで、ＲＡＭ１１３の使用効率が良くなるからである。これにより、小さな記憶容量のＲＡＭ１１３でＤＢＦ処理を行うことが可能になる。
【００９９】
ただし、仮処理対象のマクロブロック数を減らすことと、ＭＢA及びＭＢBの本処理からＭＢXの本処理までの時間を短くすることは、トレードオフの関係となることがあり得る。このような場合には、両者のバランスを考慮して、ユニット分割の方法を設定する必要がある。
【０１００】
また、図１の構成に代えて図１６の構成を採用することで、この問題に対処することも考えられる。図１６は、図１の動画像処理装置１０１の変形例を示すブロック図である。
【０１０１】
図１６では、第１から第ＭのＰＥ１１２が、第１のキャッシュ３０１1を共有しており、第Ｍ＋１から第ＮのＰＥ１１２が、第２のキャッシュ３０１2を共有している。ただし、Ｍは、１＜Ｍ＜Ｍ＋１＜Ｎを満たす整数である。
【０１０２】
この場合、第１から第ＭのＰＥ１１２が、互いに近接するマクロブロックを並列に処理すると共に、第Ｍ＋１から第ＮのＰＥ１１２が、互いに近接するマクロブロックを並列に処理するよう、ユニット分割を行う。これにより、本処理済みのマクロブロックが第１及び第２のキャッシュ３０１1，３０１2を占める時間が短くなる。よって、小さな記憶容量のキャッシュ３０１1，３０１2でＤＢＦ処理を行うことが可能になる。
【０１０３】
一方、第１から第ＭのＰＥ１１２と、第Ｍ＋１から第ＮのＰＥ１１２は、互いに離れたマクロブロックを並列に処理するようにしてもよい。この場合、第１から第ＭのＰＥ１１２によるＤＢＦ処理結果を、第Ｍ＋１から第ＮのＰＥ１１２によるＤＢＦ処理用に、大量に保持しておく必要が生じる可能性がある。しかしながら、これらのＤＢＦ処理結果については、キャッシュ３０１1，３０１2とは別個に設けられたメモリ３０２で対処する。
【０１０４】
なお、図１６の動画像処理装置１０１は、３つ以上のキャッシュ３０１を備えていても構わない。
【０１０５】
以上のように、本実施形態では、１つの画像に対しＤＢＦ処理を行う際、当該画像を複数のユニットに分割し、各ユニットに対しＤＢＦ処理を行う。本実施形態によれば、適切なユニット分割を行うことで、ＤＢＦ処理をより効率的に行うことが可能になる。
【０１０６】
以上、本発明の具体的な態様の例を、第１及び第２実施形態により説明したが、本発明は、これらの実施形態に限定されるものではない。
【図面の簡単な説明】
【０１０７】
【図１】第１実施形態の動画像処理装置の構成を示すブロック図である。
【図２】ＤＢＦ処理の実行方法について説明するための図である。
【図３】ＤＢＦ処理の問題点について説明するための図である。
【図４】ＤＢＦ処理の詳細について説明するための図である。
【図５】ＤＢＦ処理の依存関係について説明するための図である。
【図６】ＤＢＦ処理の仮処理の原理を説明するための図（１／６）である。
【図７】ＤＢＦ処理の仮処理の原理を説明するための図（２／６）である。
【図８】ＤＢＦ処理の仮処理の原理を説明するための図（３／６）である。
【図９】ＤＢＦ処理の仮処理の原理を説明するための図（４／６）である。
【図１０】ＤＢＦ処理の仮処理の原理を説明するための図（５／６）である。
【図１１】ＤＢＦ処理の仮処理の原理を説明するための図（６／６）である。
【図１２】図１の動画像処理装置により行われるＤＢＦ処理について説明するためのフローチャートである。
【図１３】図１の動画像処理装置を構成する機能ブロックを示したブロック図である。
【図１４】画像のユニット分割の第１の例を示した図である。
【図１５】画像のユニット分割の第２の例を示した図である。
【図１６】図１の動画像処理装置の変形例を示すブロック図である。
【符号の説明】
【０１０８】
１０１  動画像処理装置
１１１  ＣＰ
１１２  ＰＥ
１１３  ＲＡＭ
１１４  ＲＯＭ
２０１  マクロブロック取得部
２０２  フラグチェック部
２０３  仮処理部
２０４  本処理部
２０５  フラグ書き込み部
３０１  キャッシュ
３０２  メモリ
【図１】
2010136245.tif 000003
【図２】
2010136245.tif 000004
【図３】
2010136245.tif 000005
【図４】
2010136245.tif 000006
【図５】
2010136245.tif 000007
【図６】
2010136245.tif 000008
【図７】
2010136245.tif 000009
【図８】
2010136245.tif 000010
【図９】
2010136245.tif 000011
【図１０】
2010136245.tif 000012
【図１１】
2010136245.tif 000013
【図１２】
2010136245.tif 000014
【図１３】
2010136245.tif 000015
【図１４】
2010136245.tif 000016
【図１５】
2010136245.tif 000017
【図１６】
2010136245.tif 000018