(57)【特許請求の範囲】
【請求項１】
Ｈ．２６４ビデオコーデックにおけるインループ・デブロッキング・フィルタの実行方法であって、
カレントマクロブロックの垂直エッジを処理する垂直エッジフィルタリングと、
前記カレントマクロブロックの水平エッジを処理する水平エッジフィルタリングと、
インター同期制御信号を後継処理部へ出力し、先行処理部からインター同期制御信号を受信する同期と、を備え、
カレント処理部は、カレントマクロブロック行ｎを処理し、
前記先行処理部は、直前のマクロブロック行ｎ−１を処理し、
前記後継処理部は、マクロブロック行ｎ＋１を処理し、
前記同期は、前記垂直エッジフィルタリングの後、且つ前記水平エッジフィルタリングの前にスケジュールされる、
Ｈ．２６４ビデオコーデックにおけるインループ・デブロッキング・フィルタの実行方法。
【請求項２】
請求項１において、
前記垂直エッジフィルタリングが、
カレントマクロブロックデータをロードすること、
左側のサブブロック列をロードすること、
前記カレントマクロブロックの垂直エッジを処理すること、及び
左側のサブブロック列データを記憶すること、
を含む、
Ｈ．２６４ビデオコーデックにおけるインループ・デブロッキング・フィルタの実行方法。
【請求項３】
請求項１又は２において、
前記水平エッジフィルタリングが、
上方のサブブロック行データをロードすること、
前記カレントマクロブロックの水平エッジを処理すること、
前記カレントマクロブロックデータを記憶すること、及び
前記上方のサブブロック行データを記憶すること、
を含む、
Ｈ．２６４ビデオコーデックにおけるインループ・デブロッキング・フィルタの実行方法。
【請求項４】
Ｈ．２６４ビデオコーデックにおいてインループ・デブロッキング・フィルタを行う装置であって、
カレントマクロブロックの垂直エッジを処理する垂直エッジフィルタリング部と、
前記カレントマクロブロックの水平エッジを処理する水平エッジフィルタリング部と、
インター同期制御信号を後継処理部へ出力し、先行処理部からインター同期制御信号を受信する同期部と、を備え、
カレント処理部は、カレントマクロブロック行ｎを処理し、
前記先行処理部は、直前のマクロブロック行ｎ−１を処理し、
前記後継処理部は、マクロブロック行ｎ＋１を処理し、
前記同期部は、垂直エッジフィルタリングが実行された後に、前記インター同期制御信号を前記後継処理部へ出力し、水平エッジフィルタリングが開始される前に、前記先行処理部から前記インター同期制御信号を受信する、
Ｈ．２６４ビデオコーデックにおいてインループ・デブロッキング・フィルタを行う装置。
【請求項５】
請求項４において、
前記垂直エッジフィルタリング部が、
カレントマクロブロックデータをロードするカレントマクロブロックロード部と、
左側のサブブロック列データをロードする左側サブブロック列ロード部と、
前記カレントマクロブロックの垂直エッジを処理するデータ処理部と、
前記左側のサブブロック列データを記憶するデータ記憶部と、
を含む、
Ｈ．２６４ビデオコーデックにおいてインループ・デブロッキング・フィルタを行う装置。
【請求項６】
請求項４又は５において、
前記水平エッジフィルタリング部が、
上方のサブブロック行データをロードするデータロード部と、
前記カレントマクロブロックの水平エッジを処理するデータ処理部と、
前記カレントマクロブロックデータを記憶するカレントマクロブロック記憶部と、
前記上方のサブブロック行データを記憶する上方サブブロック行記憶部と、
を含む、
Ｈ．２６４ビデオコーデックにおいてインループ・デブロッキング・フィルタを行う装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｈ．２６４ビデオコーデックにおいて使用されるインループ・デブロッキング・フィルタ(ｉｎ−ｌｏｏｐ ｄｅ−ｂｌｏｃｋｉｎｇ ｆｉｌｔｅｒ)を、多数の処理ユニット上で並列実行させるための装置及び方法に関する。
【背景技術】
【０００２】
過去数年に亘って、高効率なビデオ圧縮の標準規格であるＨ．２６４(非特許文献１)は、その人気が益々高くなって来ており、ＨＤＴＶ、携帯ビデオ、マルチメディア、ビデオ会議、ビデオ・デジタルカメラ等の多くの実用化に入っている。
その大きな成功の理由の一つは、高出力画質に伴う高性能化にあり、これはデブロッキング・フィルタの活用によって生じるものでもある(特許文献１、非特許文献２、非特許文献３)。
【０００３】
図８に、Ｈ．２６４ビデオデコーダ・復号ループのブロック図を示す。図８に示すように、Ｈ．２６４デブロッキング・フィルタ１０１は、インター予測部１０３及びイントラ予測部１０５、加算部１０７及び選択部１０６、並びに実フレーム(１０２)及びリファレンスフレーム(１０４)用のメモリ領域を備えた復号ループ１０８の内部で動作するクローズドループ・フィルタである。
デブロッキング・フィルタは、高圧縮比のブロック型ロッシー符号化(ｂｌｏｃｋ−ｗｉｓｅ ｌｏｓｓｙ ｃｏｄｉｎｇ)に必要不可欠である。
【０００４】
図９は、Ｈ．２６４インループ・デブロッキング・フィルタを実行するために、エッジ２０２の各端に４つの必要画素２０３を備えたマクロブロック(ＭＢ：ｍａｃｒｏ ｂｌｏｃｋ) ２００の構成を示している。
２つの異なるＭＢ又はサブブロック(ＳＢ：ｓｕｂ ｂｌｏｃｋｓ) ２０１において符号化される２つの隣接画像画素は、同一の画像コンテンツを表し得る。
しかしながら、２つの画素の独立した予測及び符号化は、ブロックエッジの両側に異なる復元値を生じさせ得る。
デブロッキング・フィルタ１０１は、このようなブロック境界での復元差分を、その推定量に応じて適応的に緩和する。
【０００５】
ブロック境界でのフィルタリングのために境界の両側のピクセルが必要であるという事実に因って、隣接ＭＢ間には依存性が存在する。
【０００６】
図１０に示すように、カレントマクロブロック(ＭＢＣ：ｃｕｒｒｅｎｔ ｍａｃｒｏ ｂｌｏｃｋ) ４００を処理するためには、現在処理されているマクロブロック(ＭＢＣ) ４００のデータの隣に、上方のマクロブロック(ＭＢＵ：ｕｐｐｅｒ ｍａｃｒｏ ｂｌｏｃｋ) ４０３の最終ＳＢ行４３、及び左側のマクロブロック(ＭＢＬ：ｌｅｆｔ ｍａｃｒｏ ｂｌｏｃｋ)の最終ＳＢ列４１が必要である。
【０００７】
[非特許文献４]に記載されるような実行方法が存在する。この実行方法は、１回目の実行に際しては画像に関するこれらの依存性を無視して並列性を増加させ、２回目の実行に際してエラーを訂正するものである。
しかしながら、他の実行方法の多くは、画像について１度のみ実施されるものであり、これらの依存性を１回目の実行に際して考慮に入れている。
他の実行方法は、タスクレベルを利用して処理時間を短縮するもの[特許文献２][特許文献３]か、或いはデータレベルの並列性を利用して処理時間を短縮するもの[非特許文献５、非特許文献６、非特許文献７、非特許文献８]のいずれかである。
【０００８】
関連技術[非特許文献５〜８]においては、ＭＢの処理に必要な全てのデータがロードされ、そしてＭＢが処理され、最後にデータが記憶し直される。これにより、図１１〜１３にそれぞれ示すように、カレントマクロブロック(ＭＢＣ) ４００及び左側のマクロブロック(ＭＢＬ) ４０１を同時に処理する間、ＭＢＣ ４００及び上方のマクロブロック(ＭＢＵ) ４０３を同時に処理する間、並びにＭＢＣ ４００及び上方右側のマクロブロック(ＭＢＵＲ：ｕｐｐｅｒ ｒｉｇｈｔ ｍａｃｒｏ ｂｌｏｃｋ) ４０５を同時に処理する間に依存性が生じる。
【０００９】
図１１は、ＭＢＬ ４０１及びＭＢＣ ４００を処理する際の必要データを示している。
ＭＢＣ ４００及びＭＢＬ ４０１の両者を並列に処理する場合、ＭＢＣ ４００を処理するためには、ＭＢＬ ４０１から、右側の共有ＳＢ列データ４１も必要となる。
【００１０】
図１２は、ＭＢＵ ４０３及びＭＢＣ ４００を処理する際の必要データを示している。
ＭＢＵ ４０３及びＭＢＣ ４００の両者を並列に処理する場合、ＭＢＣ ４００を処理するためには、ＭＢＵ ４０３から、共有下部ＳＢ行４３も必要となる。
【００１１】
図１３は、ＭＢＵＲ ４０５及びＭＢＣ ４００を処理する際の必要データを示している。
ここで、ＭＢＵ ４０３からの共有領域４６が必要であり、この領域４６は両ＭＢのフィルタタスクにおいて更新される。
【００１２】
図１４は、ＭＢＵＬ ４０７及びＭＢＣ ４００を処理する際の必要データを示している。
ここで、両ＭＢのフィルタプロセスにおいて同一データは不要であり、したがって、これらのＭＢ ４０７及び４００は並列に処理可能である。
【００１３】
図１５は、フィルタリングタスクの概念的なブロック図を示している。
フィルタ装置１０００は、複数のマクロブロックフィルタ(ＭＢフィルタ) １１００、１１０１、１１０２を含む。
まず、画像データ１０は、複数のマクロブロック行にスライスされる。
マクロブロック行は、それぞれ、対応するＭＢフィルタによって並列に処理される。
但し、上述した通り、マクロブロックのフィルタリングには隣接マクロブロックのデータを必要とするため、ＭＢフィルタ同士でのプロセッサ間同期が必要となる。
【００１４】
図１６は、関連技術におけるＭＢフィルタタスクを示している。
まず一つのＭＢ用のデータがＳＴ５１でロードされ、そして処理され(ＳＴ５３)、最後に記憶し直される(ＳＴ５５)。
データロードタスク(ＳＴ５１)は、"カレントＭＢをロードすること"(ＳＴ５１１)、"左側のＳＢ列をロードすること"(ＳＴ５１２)、及び"上方のＳＢ行をロードすること"(ＳＴ５１３)を含む。
データ処理タスク(ＳＴ５３)は、"垂直エッジ(ｖｅｒｔｉｃａｌ ｅｄｇｅｓ)を処理すること"(ＳＴ５３１)、及び"水平エッジ(ｈｏｒｉｚｏｎｔａｌ ｅｄｇｅｓ)を処理すること"(ＳＴ５３２)を含む。
"データ記憶"タスク(ＳＴ５５)は、"カレントＭＢを記憶すること"(ＳＴ５５１)、"左側のＳＢ列を記憶すること"(ＳＴ５５２)、及び"上方のＳＢ行を記憶すること"(ＳＴ５５３)を含む。
【００１５】
また、同期"Ｉｎｔｅｒ ｓｙｎｃ"(ＳＴ５７)は、ＭＢ処理の終端に行われるものであり、例えばマルチプロセッサユニット(ＭＢフィルタ)上での動作に際して、各ＭＢフィルタがＭＢ行を加工し、多数のＭＢフィルタを同時に実行させるのに必要である。
ＭＢ行の内部において、ＭＢが同一のＭＢフィルタにより全て処理されるという事実は、ＭＢ間の依存性が監視されていることを保証する。
【００１６】
上記のフィルタリング処理の実行手順を前提とすると、始動期間において、全ＰＵがフィルタタスクを起動するまで並列性が段階的に増大していくことになる。
図１７に示すように、ＭＢＣ ４００の処理を開始する前に、ＭＢＬ ４０１、ＭＢＵ ４０３及びＭＢＵＲ ４０５の処理が完了していなければならない。
この結果生じる遅延は、２ＭＢに相当する２ＳＩ(Ｓｙｎｃｈｒｏｎｏｕｓ Ｉｎｔｅｒｖａｌｓ)である。
【先行技術文献】
【特許文献】
【００１７】
【特許文献１】Minhua Zhou等、"In-loop Deblocking Filter"、米国特許公報ＵＳ２００６００２９１３５
【特許文献２】Philip. P. Dang、"Method and Apparatus for parallel processing of in-loop deblocking filter for H.264 video compression standard"、米国特許公報ＵＳ２００６００７８０５２
【特許文献３】Deuk-soo Jung、"Deblocking filters for performing horizontal and vertical filtering of video data simultaneously and methods of operating the same"、米国特許公報ＵＳ２００６０１３３５０４
【非特許文献】
【００１８】
【非特許文献１】JTV、"Draft recommendation and final draft international standard of joint video specification"、ITU-T Rec. H.264 and ISO/IEC 14496-10 AVC、２００３年５月
【非特許文献２】L.-G. Chen、"Architecture design for deblocking filter in H.264/JTV/AVC"、Proc. of Multimedia and Expo、第１巻、頁６９３〜６９６、２００３年７月
【非特許文献３】Peter List、Anthony Joch、Jani Lainema、Gisle Bjontegaard及びMarta Karczewicz、"Adaptive Deblocking Filter"、IEEE Transactions on Circuits and Systems for Video Technology、第１３巻、頁６１４〜６１９、２００３年
【非特許文献４】T. Moriyoshi及びS. Miura、"Real-time H.264 encoder with deblocking filter parallelization"、In IEEE Int. Conf. on Consumer Electronics、頁６３〜６４、２００８年
【非特許文献５】Z. Zhao及びP. Liang、"Data partition for wavefront parallelization of H.264 video encoder"、in IEEE International Symposium on Circuits and Systems、2006年
【非特許文献６】E. van der Tol、E. Jaspers及びR. Gelderblom、"Mapping of h.264 decoding on a multiprocessor architecture"、Image and Video Communications and Processing 2003、頁７０７〜７１８、２００３年５月
【非特許文献７】C.H. Meenderinck、A. Azevedo、M. Alvarez、B.H.H. Juurlink、A. Ramirez、"Parallel Scalability of H.264"、Proceedings of the first Workshop on Programmability Issues for Multi-Core Computers、エーテボリ、スウェーデン、２００８年１月
【非特許文献８】Azevedo、C.H. Meenderinck、B.H.H. Juurlink、A. Terechko、J. Hoogerbrugge、M. Alvarez、A. Ramirez、M. Valero、Parallel H.264 Decoding on an Embedded Multicore Processor、Proceedings of Hipeac Conference、パフォス、キプロス、２００９年１月
【発明の概要】
【発明が解決しようとする課題】
【００１９】
始動期間において、ＰＵ(ＭＢフィルタ)はＭＢ行の処理を水平方向に２ＳＩの距離で連続して開始するが、このことは全体のパフォーマンス低下を引き起こす。
【課題を解決するための手段】
【００２０】
隣接ＭＢ行を処理する２つの処理ユニット間で水平方向における時間距離が２ＳＩである関連技術と比して、本発明は、当該距離を２ＳＩから１ＳＩへ短縮可能であり、始動期間のパフォーマンスを向上させる。
この最適化は、サブタスクの順序を、隣接ＭＢ行からの同時に処理可能なＳＩ同士間のデータ依存性を低減させるように変更することによって成される。
このことは、フィルタタスクをサブタスクに分割して、これらのサブタスクの実行順序を変更することによって達成される。
サブタスクは、垂直エッジフィルタタスクと、水平エッジフィルタタスクとを含む。
このため、両エッジフィルタ処理タスクは、分離され、かつ、必要データの転送タスクに挟まれる。
また、同期は、垂直エッジフィルタタスクと水平エッジフィルタタスクとの間でスケジュールされる。
選択された同期タスクの配置によって、マクロブロックの依存性を除去でき、以て始動期間の実行時間が短縮される。
【発明の効果】
【００２１】
隣接ＭＢ行を処理する２つのＰＵ(ＭＢフィルタ)間の時間距離を、２ＳＩから１ＳＩへ短縮し、以て始動期間のパフォーマンスを向上させることが可能である。
【図面の簡単な説明】
【００２２】
【図１】実施の形態のＭＢフィルタのブロック図である。
【図２】実施の形態のＭＢフィルタタスクのフローである。
【図３】実施の形態の垂直エッジフィルタタスクのフローである。
【図４】実施の形態の水平エッジフィルタタスクのフローである。
【図５】実施の形態の隣接同期間隔間でのタスク依存性を示す図である。
【図６】実施の形態の始動期間における遅延を示す図である。
【図７】関連技術と比した、実施の形態の高速化を示す図である。
【図８】Ｈ．２６４ビデオ復号ループのブロック図である。
【図９】マクロブロックの構成を示す図である。
【図１０】一つのマクロブロックのフィルタに必要なデータを示す図である。
【図１１】一つのマクロブロックのフィルタに必要なデータを示す図である。
【図１２】一つのマクロブロックのフィルタに必要なデータを示す図である。
【図１３】一つのマクロブロックのフィルタに必要なデータを示す図である。
【図１４】一つのマクロブロックのフィルタに必要なデータを示す図である。
【図１５】インループ・デブロッキング・フィルタ装置のブロック図である。
【図１６】関連技術のサブタスク順序を示す図である。
【図１７】関連技術の隣接マクロブロックのタスク依存性及び同期間隔を示す図である。
【発明を実施するための形態】
【００２３】
図１５に示すように、インループ・デブロッキング・フィルタ装置１０００は複数の処理ユニットを含み、各処理ユニットはＭＢ行を加工する。
異なる処理ユニット間の同期は、互いの同期の起因となる制御信号を接続することによって実行される。
ここで、カレントＭＢフィルタ１１００の出力制御信号(Ｉｎｔｅｒ Ｓｙｎｃ)は、後継フィルタ１１０１の入力制御信号へ接続される。
カレントＭＢフィルタの入力制御信号は、先行フィルタ１１０２の出力制御信号へ接続される。
カレントＭＢフィルタ１１００がＭＢ行ｎを処理する一方、先行フィルタ１１０２はＭＢ行ｎ−１を処理し、後継フィルタ１１０１はＭＢ行ｎ＋１を処理する。
【００２４】
図１は、ＭＢフィルタ１１００の構成を示している。
ＭＢフィルタ１１００は、垂直エッジフィルタ部１２００と、同期部１３００と、水平エッジフィルタ部１４００とを含む。
【００２５】
垂直エッジフィルタ部１２００は、データロード部１２１０と、データ処理部１２２０と、データ記憶部１２３０と、を含む。
データロード部１２１０は、カレントＭＢ ４００を処理するための必要データをロードする。
データロード部は、ＭＢＣロード部１２１１と、左側ＳＢ列ロード部１２１２と、を含む。
ＭＢＣロード部１２１１は、カレントＭＢデータ４００をロードする。
左側ＳＢ列ロード部１２１２は、左側のＭＢ ４０１の最終ＳＢ列４１をロードする。
【００２６】
データ処理部１２２０は、カレントＭＢ ４００の垂直エッジに関するフィルタタスクを行う。
データ記憶部１２３０は、左側のＭＢ ４０１の最終ＳＢ列４１を記憶する。
【００２７】
同期部１３００は、継続信号(Ｉｎｔｅｒ Ｓｙｎｃ)を後継フィルタ１１０１へ送信し、先行フィルタ１１０２から継続信号(Ｉｎｔｅｒ Ｓｙｎｃ)を受信する。
【００２８】
水平エッジフィルタ部１４００は、データロード部１４１０と、データ処理部１４２０と、データ記憶部１４３０と、を含む。
【００２９】
データロード部１４１０は、上方のＭＢ ４０３の最終サブブロック行４３をロードする。
データ処理部１４２０は、カレントＭＢ ４００の水平エッジに関するフィルタタスクを行う。
データ記憶部１４３０は、ＭＢＣ記憶部１４３１と、上方ＳＢ行記憶部１４３２と、を含む。
ＭＢＣ記憶部１４３１は、カレントＭＢデータ４００を記憶する。
上方ＳＢ行記憶部１４３２は、上方のＭＢ ４０３の最終ＳＢ行４３を記憶する。
【００３０】
図２は、ＭＢフィルタタスクのフローである。
本実施の形態において、ＭＢフィルタタスクは、垂直エッジフィルタリング(ＳＴ７１０)及び水平エッジフィルタリング(ＳＴ７３０)の２つのタスクに更に分割される。
また、インター同期(ＳＴ７２０)のための同期点は変更される。
同期"Ｉｎｔｅｒ Ｓｙｎｃ"(ＳＴ７２０)は、"垂直エッジフィルタリング"(ＳＴ７１０)及び"水平エッジフィルタリング"(ＳＴ７３０)の２つのタスク間に配置されている。
【００３１】
図３は、垂直エッジフィルタリングのフローである。
垂直エッジのフィルタリング(ＳＴ７１３)に先立ち、サブタスク"カレントＭＢのロード"(ＳＴ７１１)及び"左側ＳＢ列のロード"(ＳＴ７１２)が進められる。
このフィルタ動作(ＳＴ７１３)を処理した後、サブタスク"左側ＳＢ列の記憶"(ＳＴ７１４)が行われる。
【００３２】
垂直エッジフィルタリング(ＳＴ７１０)の後、同期"Ｉｎｔｅｒ Ｓｙｎｃ"(ＳＴ７２０)が実行される。
すなわち、カレントＭＢフィルタ１１００は、後継制御信号(Ｉｎｔｅｒ Ｓｙｎｃ)を後継フィルタ１１０１へ出力し、先行フィルタ１１０２から制御信号(Ｉｎｔｅｒ Ｓｙｎｃ)を受信する。
カレントＭＢフィルタ１１００は、先行フィルタ１１０２から制御信号(Ｉｎｔｅｒ Ｓｙｎｃ)を受信すると、水平エッジフィルタリング(ＳＴ７３０)の処理を開始する。
同様にして、カレントＭＢフィルタ１１００は、後継制御信号(Ｉｎｔｅｒ Ｓｙｎｃ)を後継フィルタ１１０１へ出力し、後継フィルタ１１０１は、水平エッジフィルタリング(ＳＴ７３０)の処理を開始する。
【００３３】
図４は、水平エッジフィルタリングのフローである。
水平エッジのフィルタリング(ＳＴ７３２)に先立ち、サブタスク"上方ＳＢ行のロード"(ＳＴ７３１)が行われる。
このとき、垂直エッジフィルタリングは完了しているので、上方ＳＢ行のデータは、上方右側のＭＢデータ４０５には依存していない。
【００３４】
このフィルタ動作(ＳＴ７３２)の後、サブタスク"カレントＭＢの記憶"(ＳＴ７３３)及び"上方ＳＢ行の記憶"(ＳＴ７３４)が行われる。
【００３５】
次に、本実施の形態の効果を説明する。
本実施の形態においては、フィルタタスクが２つのタスク"垂直エッジフィルタリング"(ＳＴ７１０)及び"水平エッジフィルタリング"(ＳＴ７３０)に分割され、これらのサブタスクの実行結果が記憶される。
また、垂直エッジフィルタリング(ＳＴ７１０)と水平エッジフィルタリング(ＳＴ７３０)の間に同期が設定される。
【００３６】
図５における、行ｎのＭＢｎ２と行ｎ＋１のＭＢｎ＋１１に注目する。
行ｎにおいて、ＭＢｎ２の水平エッジフィルタリング(Ｈ−Ｆｉｌｔｅｒｉｎｇ)は、ＭＢｎ２の垂直エッジフィルタリング(Ｖ−Ｆｉｌｔｅｒｉｎｇ)の後に実行される。
この時点は、ＳｙｎｃポイントＰｎで示される。
また、行ｎ＋１においては、ＭＢｎ＋１１の水平エッジフィルタリング(Ｈ−Ｆｉｌｔｅｒｉｎｇ)は、ＭＢｎ＋１１の垂直エッジフィルタリング(Ｖ−Ｆｉｌｔｅｒｉｎｇ)の後に実行される。
この時点は、ＳｙｎｃポイントＰｎ＋１で示される。
【００３７】
図５に示すように、ＳｙｎｃポイントＰｎとＳｙｎｃポイントＰｎ＋１の間の時間距離は、１マクロブロックに対応するわずか１ＳＩである。
また、ＳＩとＭＢ処理は位相がずれている。
【００３８】
この結果生じる始動期間の遅延を、図６に示す。
カレントＭＢ行ｎ＋１のカレントＳＩ(９００ｎ＋１)と、ＭＢ行ｎの上方右側のＳＩＵＲ(９００ｎ)との間の依存性は取り除くことができる。
図示のように、処理されるＭＢ行の同時に処理可能なＳＩ(９００)は、水平方向において２ＳＩから１ＳＩへ短縮されており、ＭＢフィルタリングをより高速に開始することができ、以て関連技術と比して全体のパフォーマンス向上に繋がる。
【００３９】
図７は、ＭＢにおいてＭＢフィルタの数が異なり且つ水平画像サイズ(ｓｉｚｅｈｏｒ)が異なる他のケースを示している。
この推定のため、ＭＢにおける垂直画像サイズはＭＢフィルタ数の倍数であるとする。
この結果生じるパフォーマンスの高速化Ｓは、検討されるケースでは５％〜４８％であり、式(１)によって算出できる。
ＭＢにおいて水平サイズを無視できるＭＢフィルタの数が多いため、最大で５０％の高速化を達成できる。
【００４０】
【数１】
0005418674.tif 000002
ここで、ｓｉｚｅｈｏｒはＭＢにおける水平画像サイズを表し、ＮＭＢＦＩＬＴはＭＢフィルタ数を表す。
【００４１】
本実施の形態は、隣接ＭＢ行を処理する２つのＭＢフィルタ間の水平方向における時間距離を２ＳＩから１ＳＩへ短縮することによって、始動期間パフォーマンスの増加を達成するために使用できる。
最適化は、サブタスクの順序を隣接ＳＩ間のタスク依存性を減少させるよう変更することによって達成される。
【００４２】
本発明をその実施の形態を参照して具体的に示し且つ説明したが、本発明は、これらの実施の形態によって限定されるものでは無い。当業者によれば、請求の範囲に定義される本発明のスコープ内で本発明の構成や詳細に様々な変更を成し得ることが明らかである。
【産業上の利用可能性】
【００４３】
本発明は、Ｈ．２６４ビデオコーデックにおいて使用されるインループ・デブロッキング・フィルタのための装置及び方法に適用できる。
【符号の説明】
【００４４】
１００  エラー信号
１０１  インループ・デブロッキング・フィルタ
１０２  実フレームバッファ
１０３  インター予測部
１０４  リファレンスフレームバッファ
１０５  イントラ予測部
１０６  選択部
１０７  加算部
１０８  復号ループ
２００  マクロブロック(ＭＢ)
２０１  サブブロック(ＳＢ)
２０２  エッジ
２０３  ピクセル
４００  カレントＭＢ
４０１  左側マクロブロック(ＭＢＬ)
４０３  上方マクロブロック(ＭＢＵ)
４０５  上方右側マクロブロック(ＭＢＵＲ)
４０７  上方左側マクロブロック(ＭＢＵＬ)
４１  左側ＳＢ列データ
４３  上方ＳＢ行データ
４６  カレントＭＢ及びその上方左側を同時に処理する際の重複領域
１０００  フィルタ装置
１１００, １１０１, １１０２  マクロブロックフィルタ(ＭＢフィルタ)
１２００  垂直エッジフィルタ部
１２１０  データロード部
１２１１  ＭＢＣロード部
１２１２  左側ＳＢ列ロード部
１２２０  データ処理部
１２３０  データ記憶部
１３００  同期部
１４００  水平エッジフィルタ部
１４１０  データロード部
１４２０  データ処理部
１４３０  データ記憶部
１４３１  ＭＢＣ記憶部
１４３２  上方ＳＢ行記憶部
９００  同時処理可能ＳＩ
【図１】
0005418674.tif 000003
【図２】
0005418674.tif 000004
【図３】
0005418674.tif 000005
【図４】
0005418674.tif 000006
【図５】
0005418674.tif 000007
【図６】
0005418674.tif 000008
【図７】
0005418674.tif 000009
【図８】
0005418674.tif 000010
【図９】
0005418674.tif 000011
【図１０】
0005418674.tif 000012
【図１１】
0005418674.tif 000013
【図１２】
0005418674.tif 000014
【図１３】
0005418674.tif 000015
【図１４】
0005418674.tif 000016
【図１５】
0005418674.tif 000017
【図１６】
0005418674.tif 000018
【図１７】
0005418674.tif 000019