(57)【要約】  処理の対象となる符号化された画像データに対して複数の処理部でマクロブロック単位の処理を行う復号化方法は、各処理部が処理を担当する処理範囲に複数のマクロブロックラインを割り当て、各処理部が処理する注目マクロブロックの処理を、注目マクロブロックが属するマクロブロックラインより１つ先行するマクロブロックラインの参照マクロブロックの処理結果を用いて行う。第１の処理部の処理範囲内の最後のマクロブロックラインの参照マクロブロックの処理結果を用いて、第２の処理部の処理範囲内の最初のマクロブロックラインの注目マクロブロックの処理を行う。
2008020470.tif 000002
【特許請求の範囲】
【請求項１】
処理の対象となる符号化された画像データに対して、複数の処理部でマクロブロック単位の並列処理を行う復号化方法であって、
各処理部が処理を担当する処理範囲に、複数のマクロブロックラインを割り当て、
該各処理部が処理する注目マクロブロックの処理を、該注目マクロブロックが属するマクロブロックラインより１つ先行するマクロブロックラインの参照マクロブロックの処理結果を用いて行い、
第１の処理部の処理範囲内の最後のマクロブロックラインの参照マクロブロックの処理結果を用いて、第２の処理部の処理範囲内の最初のマクロブロックラインの注目マクロブロックの処理を行うことを特徴とする、復号化方法。
【請求項２】
該複数の処理部の処理を、複数のプロセッサのソフトウェア処理、或いは、複数のデコーダのハードウェア処理で行うことを特徴とする、請求項１記載の復号化方法。
【請求項３】
該各処理部の処理は、Ｈ．２６４−ＡＶＣ規格に準拠したイントラ予測又はモーションベクトル予測であり、
参照マクロブロックは、対応する注目マクロブロックの右上に位置することを特徴とする、請求項１又は２記載の復号化方法。
【請求項４】
該第１及び第２の処理部の処理範囲の大きさが同じであることを特徴とする、請求項３記載の復号化方法。
【請求項５】
各処理部の処理は、Ｈ．２６４−ＡＶＣ規格に準拠したデブロッキングフィルタ処理であり、
参照マクロブロックは、対応する注目マクロブロックの上に位置することを特徴とする、請求項１又は２記載の復号化方法。
【請求項６】
該第１及び第２の処理部の処理範囲の大きさが異なることを特徴とする、請求項５記載の復号化方法。
【請求項７】
該第２の処理部の処理範囲内の最後のマクロブロックラインの参照マクロブロックの処理結果を用いて、第３の処理部の処理範囲内の最初のマクロブロックラインの注目マクロブロックの処理を行い、
該第１、第２及び第３の処理部の処理範囲の大きさが互いに異なることを特徴とする、請求項５又は６記載の復号化方法。
【請求項８】
該各処理部が、所定数のマクロブロックを処理する毎に、同期処理を行うことを特徴とする、請求項１〜７のいずれか1項記載の復号化方法。
【請求項９】
該同期処理は、処理の完了の待ち合わせ及びデータの受け渡しを含み、該第１の処理部の参照マクロブロックの処理結果を、該第２の処理部の注目マクロブロックの処理のために該第２の処理部に転送することを特徴とする、請求項８記載の復号化方法。
【請求項１０】
処理の対象となる符号化された画像データをマクロブロック単位で並列処理する複数の処理部を備え、
各処理部が処理を担当する処理範囲に、複数のマクロブロックラインが割り当てられ、  
該各処理部が処理する注目マクロブロックの処理は、該注目マクロブロックが属するマクロブロックラインより１つ先行するマクロブロックラインの参照マクロブロックの処理結果を用いて行われ、
第１の処理部の処理範囲内の最後のマクロブロックラインの参照マクロブロックの処理結果を用いて、第２の処理部の処理範囲内の最初のマクロブロックラインの注目マクロブロックの処理が行なわれることを特徴とする、復号化装置。
【請求項１１】
該複数の処理部は、ソフトウェア処理を行う複数のプロセッサ、或いは、ハードウェア処理を行う複数のデコーダで構成されることを特徴とする、請求項１０記載の復号化装置。
【請求項１２】
各処理部の処理は、Ｈ．２６４−ＡＶＣ規格に準拠したイントラ予測又はモーションベクトル予測であり、
参照マクロブロックは、対応する注目マクロブロックの右上に位置することを特徴とする、請求項１０又は１１記載の復号化装置。
【請求項１３】
該第１及び第２の処理部の処理範囲の大きさが同じであることを特徴とする、請求項１２記載の復号化装置。
【請求項１４】
該各処理部の処理は、Ｈ．２６４−ＡＶＣ規格に準拠したデブロッキングフィルタ処理であり、
参照マクロブロックは、対応する注目マクロブロックの上に位置することを特徴とする、請求項１０又は１１記載の復号化装置。
【請求項１５】
該第１及び第２の処理部の処理範囲の大きさが異なることを特徴とする、請求項１４記載の復号化装置。
【請求項１６】
該第２の処理部の処理範囲内の最後のマクロブロックラインの参照マクロブロックの処理結果を用いて、第３の処理部の処理範囲内の最初のマクロブロックラインの注目マクロブロックの処理を行い、
該第１、第２及び第３の処理部の処理範囲の大きさが互いに異なることを特徴とする、請求項１４又は１５記載の復号化装置。
【請求項１７】
該各処理部が、所定数のマクロブロックを処理する毎に、同期処理を行うことを特徴とする、請求項１０〜１６のいずれか1項記載の復号化装置。
【請求項１８】
該同期処理は、処理の完了の待ち合わせ及びデータの受け渡しを含み、該第１の処理部の参照マクロブロックの処理結果を、該第２の処理部の注目マクロブロックの処理のために該第２の処理部に転送することを特徴とする、請求項１７記載の復号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、復号化方法及び装置に係り、特にＨ．２６４方式等の動画符号化規格で符号化（即ち、圧縮）された動画データを復号化する復号化方法及び装置に関する。
【背景技術】
【０００２】
Ｈ．２６４又はＭＰＥＧ（Moving Picture Experts Group）４−ＡＶＣ（Advanced Video Coding）方式は、ＩＳＯとＩＴＵ−Ｔとの共同標準化組織であるＪＶＴで策定され（ＩＳＯ／ＩＥＣ １４４９６−１０又はＩＴＵ−Ｔ Ｑ６／１６）、２００３年に標準化された新しい圧縮伸張技術である。Ｈ．２６４−ＡＶＣ方式（以下、単にＨ．２６４方式と言う）は、地上デジタルテレビ放送の中でも「１セグメント放送」と呼ばれる、携帯端末向けの放送で使用されることで知られている。Ｈ．２６４方式では、４×４画素の整数変換、９方向のイントラ（Intra）予測、７種類のサブマクロブロック（Sub Macro Block）分割、最小４×４画素毎の動きベクトル、マルチフレーム参照、ループ内フィルタ、算術符号等の新しい技術を導入しており、高い圧縮率を実現している。Ｈ．２６４方式を用いることにより、ＭＰＥＧ２方式と比較して半分のストリームサイズで、同等の再生画質を得ることができると言われている。
しかし、Ｈ．２６４方式で採用されているアルゴリズムは、符号化効率を重視しているために処理量が多い。このため、Ｈ．２６４方式の符号化及び復号化（エンコード及びデコード）を行う信号処理装置には、ソフトウェアによる並列処理を行う構成のものと、専用ハードウェアによる並列処理を行う構成のものとが用いられてきた。【０００３】
画像処理をソフトウェア或いはハードウェアによる並列処理で行う場合、画像単位で処理を割り当てる方法と、処理単位で割り当てる方法とが考えられる。ハードウェアによる実装の場合、処理単位で割り当てる方法が採用されることが多い。ソフトウェアによる並列処理の場合は、どちらの方法も採用できるが、画像単位で処理を割り当てる方法を採用した場合には、プロセッサ間の処理の偏りが少なく、プロセッサ数を増加させることにより大画面への拡張が容易となる。【０００４】
しかし、Ｈ．２６４方式の各処理は、データ依存関係が複雑であり、並列処理を行う際には多くの同期処理が必要となる。【０００５】
Ｈ．２６４方式の符号化及び復号化方法は、例えば特許文献１にて提案されている。又、Ｈ．２６４方式の復号化を並列処理で行う方法が、例えば非特許文献1にて提案されている。
【特許文献１】特開２００５−３５４３６１号公報
【非特許文献１】Yen-Kuang Chen et al., "Implementation of Ｈ．２６４ Encoder and Decoder on Personal Computers", Special Issue on Emerging H.264 /AVC Video Coding Standard, Journal of Visual Communication and Image Representation, Kumar, Mandal and Panchanathan
【発明の開示】
【発明が解決しようとする課題】
【０００６】
Ｈ．２６４方式は、マクロブロック（ＭＢ：Macro Block）間にデータ依存が多く、並列処理において並行に演算可能なＭＢに制限がある。例えば、Ｈ．２６４方式の復号化処理において、ＭＢ単位の処理で、注目ＭＢの左、左上、上、右上のＭＢのデータを必要とする処理がある。このような処理の場合、注目ＭＢの処理を開始するためには、注目ＭＢの左、左上、上、右上のＭＢの処理が完了し、データの受け渡しを行われることが必要となる。このため、複数のプロセッサのソフトウェア処理、或いは、デコーダのハードウェア処理で上記の如きＭＢの処理を行う場合、処理完了の待ち合わせ、データの受け渡し等の同期処理が頻繁に発生し、オーバーヘッドが大きくなってしまうという問題があった。【０００７】
そこで、本発明は、Ｈ．２６４方式の復号化処理のような、複雑なデータ依存性がある処理が要求される画像処理に対して、効率の良い処理が行える復号化方法及び装置を提供することを概括的目的とする。
【課題を解決するための手段】
【０００８】
上記の課題は、処理の対象となる符号化された画像データに対して、複数の処理部でマクロブロック単位の並列処理を行う復号化方法であって、各処理部が処理を担当する処理範囲に、複数のマクロブロックラインを割り当て、該各処理部が処理する注目マクロブロックの処理を、該注目マクロブロックが属するマクロブロックラインより１つ先行するマクロブロックラインの参照マクロブロックの処理結果を用いて行い、第１の処理部の処理範囲内の最後のマクロブロックラインの参照マクロブロックの処理結果を用いて、第２の処理部の処理範囲内の最初のマクロブロックラインの注目マクロブロックの処理を行うことを特徴とする復号化方法によって達成できる。【０００９】
上記の課題は、処理の対象となる符号化された画像データをマクロブロック単位で並列処理する複数の処理部を備え、各処理部が処理を担当する処理範囲に、複数のマクロブロックラインが割り当てられ、該各処理部が処理する注目マクロブロックの処理は、該注目マクロブロックが属するマクロブロックラインより１つ先行するマクロブロックラインの参照マクロブロックの処理結果を用いて行われ、第１の処理部の処理範囲内の最後のマクロブロックラインの参照マクロブロックの処理結果を用いて、第２の処理部の処理範囲内の最初のマクロブロックラインの注目マクロブロックの処理が行なわれることを特徴とする復号化装置によって達成できる。
【発明の効果】
【００１０】
本発明によれば、Ｈ．２６４方式の復号化処理のような、複雑なデータ依存性がある処理が要求される画像処理に対して効率の良い処理が行える復号化方法及び装置を実現することができる。
【図面の簡単な説明】
【００１１】
【図１】Ｈ．２６４方式の復号化処理のデータ依存を説明する図である。
【図２】ＭＢ毎にプロセッサを割り当てた場合の考えられる処理順序とデータ転送を説明する図である。
【図３】ＭＢ毎にプロセッサを割り当てた場合の本発明の処理順序とデータ転送を説明する図である。
【図４】ＭＢ毎にプロセッサを割り当てた場合の本発明の処理順序とデータ転送を説明する図である。
【図５】第１実施例の処理順序とデータ転送を２つのプロセッサを用いる場合について説明する図である。
【図６】第１実施例の処理の概略を説明するフローチャートである。
【図７】第1実施例のオーバーヘッドを比較例と比較して示す図である。
【図８】第１実施例の処理順序とデータ転送を３つのプロセッサを用いる場合について説明する図である。
【図９】第１実施例における３つのプロセッサの処理を説明するフローチャートである。
【図１０】第２実施例の処理順序とデータ転送を２つのプロセッサを用いる場合について説明する図である。
【図１１】第２実施例の処理の概略を説明するフローチャートである。
【図１２】第２実施例の処理順序とデータ転送を３つのプロセッサを用いる場合について説明する図である。
【図１３】第２実施例における３つのプロセッサの処理を説明するフローチャートである。
【符号の説明】
【００１２】
１１，２１      プロセッサ
【発明を実施するための最良の形態】
【００１３】
Ｈ．２６４方式は、マクロブロック（ＭＢ：Macro Block）間にデータ依存が多く、並列処理において並行に演算可能なＭＢに制限がある。  Ｈ．２６４方式の処理であるイントラ予測、モーションベクトル（ＭＶ：Motion Vector）予測及びデブロッキングフィルタ（ＤＦ：Deblocking Filter）処理は、注目ＭＢの周囲のＭＢのデータが必要とされるデータ依存性がある。そのため、処理の完了待ち合わせ、データの受け渡し等を含む同期処理が頻繁に発生する。又、並行に演算可能なＭＢに制限がある。【００１４】
そこで、本発明は、この制限の中で、符号化された画像データ（動画データ）の局所性及び同期処理の簡略化に着目した並列処理順序を提供する。【００１５】
Ｈ．２６４方式の復号化処理において、ＭＢ単位の処理で、図１に示すようにハッチングで示す注目ＭＢの左、左上、上、右上の参照ＭＢのデータを必要とする処理がある。図１は、Ｈ．２６４方式の復号化処理のデータ依存を説明する図であり、（ａ）はイントラ予測及びＭＶ予測の場合のデータ依存を示し、（ｂ）はＤＦ処理の場合のデータ依存を示す。図１中、各矩形領域は、１つのＭＢを示す。図１からわかるように、注目ＭＢの処理を開始するためには、イントラ予測又はＭＶ予測の場合であれば注目ＭＢの左、左上、上、右上の参照ＭＢの処理が完了してデータの受け渡しが行われることが必要となり、ＤＦ処理の場合であれば注目画素の上の参照ＭＢの処理が完了してデータの受け渡しが行われることが必要となる。【００１６】
このため、復号化装置が複数のプロセッサのソフトウェア処理、或いは、デコーダのハードウェア処理で上記の如きＭＢの処理を行う場合、例えば図２に示すような処理順序で行うことが考えられる。図２は、一例としてイントラ予測の場合にＭＢ毎にプロセッサ（又は、デコーダ）を割り当てる、考えられる処理順序とデータ転送を説明する図である。図２中、各矩形領域は１つのＭＢを示し、太い実線の矢印は処理順序を示し、細い実線の矢印はデータ転送を示し、説明の便宜上２つのプロセッサ＃１，＃２が用いられるものとする。しかし、この考えられる処理順序を用いたのでは、処理を行うプロセッサ＃１，＃２が１マクロブロックライン（ＭＢライン）毎に変わり、処理完了の待ち合わせ、データの受け渡し等の同期処理が頻繁に発生し、オーバーヘッドが大きくなってしまう。【００１７】
そこで、本発明では、処理の対象となる符号化された画像データ（動画データ）に対して復号化装置が複数のプロセッサのソフトウェア処理、或いは、複数のデコーダのハードウェア処理、即ち、複数の処理部で上記の如きＭＢ単位の処理を行う場合、各プロセッサ（又は、デコーダ）が処理を担当する範囲（以下、処理範囲とも言う）を１ＭＢライン毎ではなく複数のＭＢライン毎にし、図３又は図４に示すような大略縦方向（即ち、同一ＭＢライン上の横方向以外の方向）に配置されたＭＢを優先する順序で処理を行う。図３及び図４は、イントラ予測の場合にＭＢ毎にプロセッサを割り当てる本発明の処理順序とデータ転送を説明する図である。図３及び図４中、各矩形領域は１つのＭＢを示し、太い実線の矢印は処理順序を示し、細い実線の矢印はデータ転送を示す。説明の便宜上、図３では２つのプロセッサ＃１，＃２が用いられ、図４では３つのプロセッサ＃１〜＃３が用いられ、各プロセッサ＃１，＃２，＃３が処理を担当する処理範囲は４ＭＢライン毎であるものとする。【００１８】
本発明によれば、異なるプロセッサ、或いは、異なるデコーダ間で担当する処理範囲の境界が少なくなり、同期処理によるオーバーヘッドの増加を抑制することができる。例えば、図３のように２つのプロセッサ＃１，＃２で上記復号化処理のＭＢ単位の処理を行う場合、各プロセッサ＃１，＃２の担当する処理範囲のＭＢライン数をＮとすると、同期処理の回数は上記考えられる方法と比べると１／Ｎ回に減少させることができる。初回の同期処理までに、例えば一方のプロセッサ＃１では（Ｎ＋１）Ｎ／２個のＭＢの処理が必要であり、その間、他方のプロセッサ＃２は処理を開始できないので、同期オーバーヘッドをＯＨ、復号化処理の対象となるＭＢの総数をＴＭ、ＭＢの１つ当たりの処理量をＡとすると、ＯＨ×ＴＭ×（Ｎ−１）／Ｎ>Ａ×（Ｎ＋１）×Ｎ／２という条件が成立するとき、本発明を導入することによる同期オーバーヘッドＯＨの減少効果が得られる。【００１９】
尚、ＤＢ処理の場合にＭＢ毎にプロセッサを割り当てる本発明の処理も、上記イントラ予測の場合と同様に大略縦方向（即ち、同一ＭＢライン上の横方向以外の方向）に配置されたＭＢを優先する順序で行われ、上記と同様の効果を得ることができるが、その詳細については以下の実施例と共に説明する。【００２０】
以下に、本発明の復号化方法及び装置の各実施例を、図面と共に説明する。
【実施例】
【００２１】
（第１実施例）
先ず、本発明の復号化方法及び装置の第１実施例を図５〜図８と共に説明する。【００２２】
図５は、第１実施例の処理順序とデータ転送を２つのプロセッサを用いる場合について説明する図である。図５中、各矩形領域は１つのＭＢを示し、各矩形領域内の数字は処理順序を示し、細い実線の矢印はデータ転送を示す。説明の便宜上、図５では２つのプロセッサ＃１，＃２が用いられ、各プロセッサ＃１，＃２が処理を担当する範囲は３ＭＢライン毎であるものとする。【００２３】
イントラ予測やＭＶ予測のように、処理対象となる符号化された画像データ（動画データ）の１フレーム内の注目ＭＢに対する処理を行う際に注目ＭＢの右上を含む参照ＭＢのデータを必要とする場合、図５に示すような順序で処理を行う。各ＭＢラインは例えば５つのＭＢからなり、各ＭＢは例えば１６×１６画素のデータからなる。【００２４】
注目ＭＢの処理が終了すると、次は斜め左下の参照ＭＢの処理を行う。処理を行っているプロセッサの処理範囲の最後（一番下又は下端）のＭＢラインの注目ＭＢまで処理が到達すると、この処理範囲の一番上（１番目）のＭＢラインの未処理のＭＢのうち、最も左のＭＢを注目ＭＢとしての処理を行う。１番目のＭＢラインに未処理のＭＢがない場合は上から２番目のＭＢラインから注目ＭＢの候補を探し、２番目のＭＢラインにも候補がない場合には更にその下の３番目のＭＢラインから候補を探す。各プロセッサ＃１，＃２、或いは、各専用ハードウェア（デコーダ）が担当する処理範囲のＭＢライン数は３なので、このようにして先ず３（３＋１）／２＝６個のＭＢの処理を行い、それ以降は３個のＭＢの処理に対して１個の同期処理を行う処理を、処理範囲の最後（一番下のＭＢラインの右端のＭＢ）に到達するまで繰り返す。このようにして各処理範囲内の全てのＭＢの処理が終わるまで処理を繰り返す。【００２５】
つまり、プロセッサ＃１は、図５に示すように、１番目のＭＢラインの一番左の注目ＭＢ「１」の処理が終了すると、１番目のＭＢラインの未処理で最も左のＭＢ「２」を注目ＭＢとして処理を行う。次は、斜め左下の２番目のＭＢラインにあるＭＢ「３」を注目ＭＢとして処理を行い、１番目のＭＢラインの未処理で最も左のＭＢ「４」を注目ＭＢとして処理を行う。次は、斜め左下の２番目、３番目のＭＢラインにあるＭＢ「５」、「６」を注目ＭＢとして処理を行い、６個のＭＢの処理が行われる。それ以降は、３個のＭＢの処理に対して１個の同期処理を行う処理を、処理範囲の最後（一番下のＭＢラインの右端のＭＢ）に到達するまで繰り返す。【００２６】
他方、プロセッサ＃２は、上記プロセッサ＃１と同様の処理順序で処理を行うが、最初に処理する第１番目のＭＢラインの処理については同期処理で転送されてくるプロセッサ＃１の処理結果を用いる。つまり、プロセッサ＃１による最初の６個のＭＢの処理及び次の３個のＭＢの処理が行われた時点で、プロセッサ＃２は夫々の３番目のＭＢラインのＭＢ「６」、「９」の処理結果を用いてプロセッサ＃２が処理するＭＢラインでは１番目のＭＢラインの一番左の注目ＭＢ「１」の処理を行う。この１番目のＭＢラインの一番左の注目ＭＢ「１」の処理が終了すると、プロセッサ＃１による次の３個のＭＢの処理が行われた時点で、プロセッサ＃２は３番目のＭＢラインのＭＢ「１２」の処理結果を用いてプロセッサ＃２が処理するＭＢラインでは１番目のＭＢラインの未処理で最も左のＭＢ「２」を注目ＭＢとして処理を行う。プロセッサ＃２は、それ以降は上記プロセッサ＃１の処理順序と同様の処理順序で、プロセッサ＃２が処理するＭＢラインでは１番目のＭＢラインの処理についてはプロセッサ＃１の処理結果を用いて、処理範囲の全てのＭＢの処理が終わるまで処理を繰り返す。【００２７】
各プロセッサ＃１，＃２、或いは、各専用ハードウェア（デコーダ）が担当する処理範囲のＭＢライン数をＮとすると、先ずＮ（Ｎ＋１）／２個のＭＢの処理を行い、以下Ｎ個のＭＢの処理と1個の同期処理を処理範囲の右端に到達するまで繰り返す。これにより、処理範囲の繰り返し部では、Ｎ個のＭＢ毎に1個の同期処理が必要となり、同期処理を上記考えられる方法（以下、比較例と言う）と比較するとＮ分の１に削減できる。【００２８】
同期処理のオーバーヘッドをＯＨとした場合、本実施例では図７（ａ）に示すように、図７（ｂ）の比較例の場合と比較して同期処理の回数がＮ分の１になる。図７は、第1実施例のオーバーヘッドＯＨを比較例と比較して示す図である。図７中、ハッチングを施された矩形領域はＭＢの処理を示し、黒く塗られた矩形領域は同期処理を示す。本実施例では、プロセッサ＃２が処理を開始できるのは、プロセッサ＃１が処理を開始してから｛Ｎ（Ｎ＋１）／２＋Ｎ｝個のＭＢの処理分だけ遅延されたタイミングであるが、画像サイズが大きく、同期処理のオーバーヘッドＯＨが大きい場合には、比較例より画像処理に対して効率の良い処理が行えることがわかる。【００２９】
図６は、第１実施例の処理の概略を説明するフローチャートである。図６に示す処理は、プロセッサ１１により実行される。プロセッサ１１は、ＣＰＵ及び記憶部等からなる周知の構成を有する情報処理装置であり、復号化装置はこのようなプロセッサ１１が複数個、並列処理可能に接続された構成を有する。【００３０】
図６において、ステップＳ１は最初のＮ（Ｎ＋１）／２個のＭＢの処理を行う。これにより、図５に示す１番目〜３番目のＭＢラインのＭＢ「１」〜「６」の処理が行われる。ステップＳ２は処理対象となる符号化された画像データの１フレームの処理範囲の各ＭＢラインの右端のＭＢが処理されるまで、ステップＳ３，Ｓ４の処理を繰り返す。ステップＳ３はＮ個のＭＢの処理を行い、ステップＳ４は処理完了の待ち合わせ、データの受け渡し等を含む同期処理を行う。ステップＳ５は処理範囲の最後のＭＢラインについてステップＳ２〜Ｓ４が行われたか否かを判定し、判定結果がＮＯであると処理はステップＳ２へ戻り、ＹＥＳであると処理は終了する。【００３１】
上記の如く２つのプロセッサ＃１，＃２を並列処理に用いる場合、各プロセッサ＃１，＃２は図６に示す処理を行うが、プロセッサ＃２の場合、注目ＭＢに対する処理を行う際に注目ＭＢの右上を含む参照ＭＢのデータを必要とする点ではプロセッサ＃１の場合の処理と同じであるが、プロセッサ＃２が処理するＭＢラインでは１番目のＭＢラインのＭＢを処理する際にはプロセッサ＃１が処理するＭＢラインでは３番目のＭＢラインのＭＢに対する処理結果を用いる点だけ異なる。【００３２】
図８は、第１実施例の処理順序とデータ転送を３つのプロセッサを用いる場合について説明する図であり、図９は、第１実施例における３つのプロセッサの処理を説明するフローチャートである。図８中、各矩形領域は１つのＭＢを示し、各矩形領域内の数字は処理範囲の左上から右上、右下への処理順序を示し、細い実線の矢印はデータ転送を示す。又、説明の便宜上、各プロセッサ＃１，＃２，＃３が処理を担当する処理範囲はＮマクロブロック（ＭＢ）ライン毎であり、各ＭＢラインはＷ個のＭＢからなるものとする。ここで、Ｎ，Ｗはいずれも２以上の整数であり、Ｎ≠ＷであってもＮ＝Ｗであっても良いが、好ましくはＮ<Ｗである。各ＭＢは、例えば１６×１６画素のデータからなる。【００３３】
イントラ予測やＭＶ予測のように、処理対象となる符号化された画像データの１フレーム内の注目ＭＢに対する処理を行う際に注目ＭＢの右上を含む参照ＭＢのデータを必要とする場合、図８に示すような順序で処理を行う。【００３４】
図９は、３つのプロセッサ＃１，＃２，＃３の処理を示す。プロセッサ＃１はステップＳ１０１−１〜Ｓ１０８−１を行い、プロセッサ＃２はステップＳ１０１−２〜Ｓ１０８−２，Ｓ１１１−２〜Ｓ１１３−２を行い、プロセッサ＃３はステップＳ１０１−３〜Ｓ１０８−３，Ｓ１１１−３〜Ｓ１１３−３を行う。図９中、実質的に同じステップには同一符号にプロセッサ＃１〜＃３に対応する添え字「−１」〜「−３」を付けて示す。【００３５】
先ず、プロセッサ＃１の処理を説明する。プロセッサ＃１の処理が開始されると、ステップＳ１０１−１は変数ｉ（整数）をｉ＝１に設定する。ステップＳ１０２−１はｉ番目のＭＢ「ｉ」の処理を行い、ステップＳ１０３−１はＭＢが処理範囲の左端に位置しているか否かを判定する。ステップＳ１０３−１の判定結果がＮＯであると、ステップＳ１０４−１はＭＢが処理範囲の下端に位置しているか否かを判定する。ステップＳ１０４−１の判定結果がＮＯであると、ステップＳ１０５−１は現在のＭＢの左下のＭＢの処理を行い、処理はステップＳ１０３−１へ戻る。他方、ステップＳ１０４−１の判定結果がＹＥＳであると、ステップＳ１０６−１はプロセッサ＃２へのデータ転送を行い、ステップＳ１０７−１はｉ＝（Ｗ＋Ｎ−１）であるか否かを判定する。ステップＳ１０６−１のデータ転送では、Ｎ番目のＭＢラインのＭＢの処理結果がプロセッサ＃２へ転送される。ステップＳ１０７−１の判定結果がＮＯであると、ステップＳ１０８−１はｉをｉ＝ｉ＋１にインクリメントし、処理はステップＳ１０２−１へ戻る。ステップＳ１０７−１の判定結果がＹＥＳであると、プロセッサ＃１の処理は終了する。【００３６】
次に、プロセッサ＃２の処理を説明する。プロセッサ＃２の処理が開始されると、ステップＳ１０１−２は変数ｉ（整数）をｉ＝１に設定する。ステップＳ１１１−２はプロセッサ＃１からのデータ転送を待つ同期処理を行う。従って、最初は、プロセッサ＃２が１番目のＭＢラインの１番目のＭＢ「１」を処理するのに必要である、プロセッサ＃１が処理したＮ番目のＭＢラインのＭＢの処理結果がプロセッサ＃１から転送されてくると、処理はステップＳ１１２−２へ進む。ステップＳ１１２−２はｉ≦Ｗであるか否かを判定し、判定結果がＹＥＳであると、ステップＳ１１３−２はプロセッサ＃１からのデータ転送を待つ同期処理を行う。従って、プロセッサ＃２がＭＢを処理するのに必要である、プロセッサ＃１が処理したＮ番目のＭＢラインのＭＢの処理結果がプロセッサ＃１から転送されてくると、処理はステップＳ１０２−２へ進む。ステップＳ１１２−２の判定結果がＮＯであると、処理はステップＳ１０２−２へ進む。プロセッサ＃２の他の処理は、基本的には上記プロセッサ＃１の処理と同じである。【００３７】
次に、プロセッサ＃３の処理を説明する。プロセッサ＃３の処理が開始されると、ステップＳ１０１−３は変数ｉ（整数）をｉ＝１に設定する。ステップＳ１１１−３はプロセッサ＃２からのデータ転送を待つ同期処理を行う。従って、最初は、プロセッサ＃３が１番目のＭＢラインの１番目のＭＢ「１」を処理するのに必要である、プロセッサ＃２が処理したＮ番目のＭＢラインのＭＢの処理結果がプロセッサ＃２から転送されてくると、処理はステップＳ１１２−３へ進む。ステップＳ１１２−３はｉ≦Ｗであるか否かを判定し、判定結果がＹＥＳであると、ステップＳ１１３−３はプロセッサ＃２からのデータ転送を待つ同期処理を行う。従って、プロセッサ＃３がＭＢを処理するのに必要である、プロセッサ＃２が処理したＮ番目のＭＢラインのＭＢの処理結果がプロセッサ＃２から転送されてくると、処理はステップＳ１０２−３へ進む。ステップＳ１１２−３の判定結果がＮＯであると、処理はステップＳ１０２−３へ進む。プロセッサ＃４の他の処理は、基本的には上記プロセッサ＃２の処理と同じである。
（第２実施例）
次に、本発明の復号化方法及び装置の第２実施例を図９〜図１２と共に説明する。【００３８】
図９は、第２実施例の処理順序とデータ転送を２つのプロセッサを用いる場合について説明する図である。図９中、各矩形領域は１つのＭＢを示し、各矩形領域内の数字は処理順序を示し、細い実線の矢印はデータ転送を示す。説明の便宜上、図９では２つのプロセッサ＃１，＃２が用いられ、各プロセッサ＃１，＃２が処理を担当する処理範囲は３ＭＢライン毎であるものとする。【００３９】
ＤＦ処理のように、処理対象となる符号化された画像データの1フレーム内の注目ＭＢに対する処理を行う際に注目ＭＢの上の参照ＭＢのデータを必要とする場合、図９に示すような順序で処理を行う。各ＭＢラインは例えば４つのＭＢからなり、各ＭＢは例えば１６×１６画素のデータからなる。【００４０】
注目ＭＢの処理が終了すると、次は下のＭＢの処理を行う。プロセッサの処理範囲の最後（一番下）のＭＢラインの注目ＭＢまで処理が到達すると、この処理範囲の一番上（１番目）のＭＢラインの未処理のＭＢのうち、最も左のＭＢを注目ＭＢとしての処理を行う。各プロセッサ＃１，＃２、或いは、各専用ハードウェア（デコーダ）が担当するＭＢライン数は３なので、このようにして３個のＭＢの処理に対して１個の同期処理を行う処理を、処理範囲の最後（一番下のＭＢラインの右端のＭＢ）に到達するまで繰り返す。このようにして各処理範囲内の全てのＭＢの処理が終わるまで処理を繰り返す。【００４１】
つまり、プロセッサ＃１は、図１０に示すように、１番目のＭＢラインの一番左の注目ＭＢ「１」の処理が終了すると、ＭＢ「１」の下に位置する２番目のＭＢラインの最も左のＭＢ「２」を注目ＭＢとして処理を行う。次は、ＭＢ「２」の下に位置する３番目のＭＢラインの最も左のＭＢ「３」を注目ＭＢとして処理を行う。次に、１番目のＭＢラインの未処理で最も左のＭＢ「４」を注目ＭＢとして処理を行い、下に位置する２番目、３番目のＭＢラインにあるＭＢ「５」、「６」を注目ＭＢとして処理を行う。それ以降は、同様にして、３個のＭＢの処理に対して１個の同期処理を行う処理を、処理範囲の最後（一番下のＭＢラインの右端のＭＢ）に到達するまで繰り返す。【００４２】
他方、プロセッサ＃２は、上記プロセッサ＃１と同様の処理順序で処理を行うが、最初に処理する第１番目のＭＢラインの処理については同期処理で転送されてくるプロセッサ＃１の処理結果を用いる。つまり、プロセッサ＃１による最初の３個のＭＢの処理が行われた時点で、３番目のＭＢラインのＭＢ「３」の処理結果を用いて、プロセッサ＃２が処理するＭＢラインでは１番目のＭＢラインの一番左の注目ＭＢ「１」の処理を行う。１番目のＭＢラインの一番左の注目ＭＢ「１」の処理が終了すると、２番目のＭＢラインのＭＢ「２」を注目ＭＢとして処理を行う。プロセッサ＃２は、それ以降は上記プロセッサ＃１の処理順序と同様の処理順序で、１番目のＭＢラインの処理についてはプロセッサ＃１の処理結果を用いて、処理範囲内の全てのＭＢの処理が終わるまで処理を繰り返す。【００４３】
各プロセッサ＃１，＃２、或いは、各専用ハードウェア（デコーダ）が担当する処理範囲のＭＢライン数をＮとすると、Ｎ個のＭＢの処理と1個の同期処理を処理範囲の右端に到達するまで繰り返す。これにより、処理範囲の繰り返し部では、Ｎ個のＭＢ毎に1個の同期処理が必要となり、同期処理を上記比較例と比較するとＮ分の１に削減できる。【００４４】
図１１は、第２実施例の処理の概略を説明するフローチャートである。図１０に示す処理は、プロセッサ２１により実行される。プロセッサ２１は、ＣＰＵ及び記憶部等からなる周知の構成を有する情報処理装置であり、復号化装置はこのようなプロセッサ２１が複数個、並列処理可能に接続された構成を有する。【００４５】
図１１において、ステップＳ２１は処理範囲の各ＭＢラインの右端のＭＢが処理されるまで、ステップＳ２２，Ｓ２３の処理を繰り返す。ステップＳ２２はＮ個のＭＢの処理を行い、ステップＳ２３は処理完了の待ち合わせ、データの受け渡し等を含む同期処理を行う。ステップＳ２４は処理範囲の最後のＭＢラインについてステップＳ２１〜Ｓ２３が行われたか否かを判定し、判定結果がＮＯであると処理はステップＳ２１へ戻り、ＹＥＳであると処理は終了する。【００４６】
上記の如く２つのプロセッサ＃１，＃２を並列処理に用いる場合、各プロセッサ＃１，＃２は図１１に示す処理を行うが、プロセッサ＃２の場合、注目ＭＢに対する処理を行う際に注目ＭＢの上を含む参照ＭＢのデータを必要とする点ではプロセッサ＃１の場合の処理と同じであるが、プロセッサ＃２が処理するＭＢラインでは１番目のＭＢラインの処理についてはプロセッサ＃１の３番目のＭＢラインのＭＢに対する処理結果を用いる点だけ異なる。【００４７】
図１２は、第２実施例の処理順序とデータ転送を３つのプロセッサを用いる場合について説明する図であり、図１３は、第２実施例における３つのプロセッサの処理を説明するフローチャートである。図１２中、各矩形領域は１つのＭＢを示し、各矩形領域内の数字は処理範囲の左上から右上、右下への処理順序を示し、細い実線の矢印はデータ転送を示す。又、説明の便宜上、各プロセッサ＃１，＃２，＃３が処理を担当する処理範囲は、例えば夫々の処理性能に合わせてＰ，Ｑ，Ｒマクロブロック（ＭＢ）ライン毎であり、各ＭＢラインはＷ個のＭＢからなるものとする。ここで、Ｐ，Ｑ，Ｒ，Ｗはいずれも２以上の整数であり、Ｐ，Ｑ，ＲはいずれもＮと等しくても異なっても良いが、好ましくはＷより小さい。又、本実施例ではＰ，Ｑ，ＲはＰ>Ｒ>Ｑなる関係を満足しているが、この関係に限定されるものではない。各ＭＢは、例えば１６×１６画素のデータからなる。【００４８】
ＤＦ処理のように、処理対象となる符号化された画像データの1フレーム内の注目ＭＢに対する処理を行う際に注目ＭＢの上を含む参照ＭＢのデータを必要とする場合、図１２に示すような順序で処理を行う。【００４９】
図１３は、３つのプロセッサ＃１，＃２，＃３の処理を示す。プロセッサ＃１はステップＳ２０１−１〜Ｓ２０７−１を行い、プロセッサ＃２はステップＳ２０１−２〜Ｓ２０７−２，Ｓ２１１−２を行い、プロセッサ＃３はステップＳ２０１−３〜Ｓ２０７−３，Ｓ２１１−３を行う。図１３中、実質的に同じステップには同一符号にプロセッサ＃１〜＃３に対応する添え字「−１」〜「−３」を付けて示す。【００５０】
先ず、プロセッサ＃１の処理を説明する。プロセッサ＃１の処理が開始されると、ステップＳ２０１−１は変数ｉ（整数）をｉ＝１に設定する。ステップＳ２０２−１はｉ番目のＭＢ「ｉ」の処理を行い、ステップＳ２０３−１はＭＢが処理範囲の下端に位置しているか否かを判定する。ステップＳ２０３−１の判定結果がＮＯであると、ステップＳ２０４−１は現在のＭＢの下のＭＢの処理を行い、処理はステップＳ２０３−１へ戻る。他方、ステップＳ２０３−１の判定結果がＹＥＳであると、ステップＳ２０５−１はプロセッサ＃２へのデータ転送を行い、ステップＳ２０６−１はｉ＝（Ｗ＋Ｐ−１）であるか否かを判定する。ステップＳ２０５−１のデータ転送では、Ｐ番目のＭＢラインのＭＢの処理結果がプロセッサ＃２へ転送される。ステップＳ２０６−１の判定結果がＮＯであると、ステップＳ２０７−１はｉをｉ＝ｉ＋１にインクリメントし、処理はステップＳ２０２−１へ戻る。ステップＳ２０６−１の判定結果がＹＥＳであると、プロセッサ＃１の処理は終了する。【００５１】
次に、プロセッサ＃２の処理を説明する。プロセッサ＃２の処理が開始されると、ステップＳ２０１−２は変数ｉ（整数）をｉ＝１に設定する。ステップＳ２１１−２はプロセッサ＃１からのデータ転送を待つ同期処理を行う。従って、最初は、プロセッサ＃２が１番目のＭＢラインの１番目のＭＢ「１」を処理するのに必要である、プロセッサ＃１が処理したＰ番目のＭＢラインのＭＢの処理結果がプロセッサ＃１から転送されてくると、処理はステップＳ２０２−２へ進む。プロセッサ＃２の他の処理は、基本的には上記プロセッサ＃１の処理と同じであるが、ステップＳ２０６−２はｉ＝（Ｗ＋Ｑ−１）であるか否かを判定する。【００５２】
次に、プロセッサ＃３の処理を説明する。プロセッサ＃３の処理が開始されると、ステップＳ２０１−３は変数ｉ（整数）をｉ＝１に設定する。ステップＳ２１１−３はプロセッサ＃２からのデータ転送を待つ同期処理を行う。従って、最初は、プロセッサ＃３が１番目のＭＢラインの１番目のＭＢ「１」を処理するのに必要である、プロセッサ＃２が処理したＱ番目のＭＢラインのＭＢの処理結果がプロセッサ＃２から転送されてくると、処理はステップＳ２０２−３へ進む。プロセッサ＃４の他の処理は、基本的には上記プロセッサ＃２の処理と同じであるが、ステップＳ２０６−３はｉ＝（Ｗ＋Ｒ−１）であるか否かを判定する。【００５３】
尚、上記各実施例においては、処理の対象となる符号化された画像データに対して復号化装置が複数のプロセッサのソフトウェア処理により上記の如きＭＢ単位の処理を行っているが、複数のデコーダのハードウェア処理により上記の如きＭＢ単位の処理を行う場合、デコーダとしては物理的に別々の複数のデコーダを用いても、物理的には単一のデコーダ内の複数のデコーダ部を用いても良いことは言うまでもない。
【産業上の利用可能性】
【００５４】
本発明は、Ｈ．２６４方式の復号化処理のような、複雑なデータ依存性がある処理が要求される画像処理に対して適用可能である。【００５５】
以上、本発明を実施例により説明したが、本発明は上記実施例に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能であることは言うまでもない。
【図１】
2008020470.tif 000003
【図２】
2008020470.tif 000004
【図３】
2008020470.tif 000005
【図４】
2008020470.tif 000006
【図５】
2008020470.tif 000007
【図６】
2008020470.tif 000008
【図７】
2008020470.tif 000009
【図８】
2008020470.tif 000010
【図９】
2008020470.tif 000011
【図１０】
2008020470.tif 000012
【図１１】
2008020470.tif 000013
【図１２】
2008020470.tif 000014
【図１３】
2008020470.tif 000015
【手続補正書】
【提出日】平成20年9月26日(2008.9.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
処理の対象となる符号化された画像データに対して、複数の処理部でマクロブロック単位の並列処理を行う復号化方法であって、
各処理部が処理を担当する処理範囲に、複数のマクロブロックラインを割り当て、
該各処理部が処理する注目マクロブロックの処理を、該注目マクロブロックが属するマクロブロックラインより１つ先行するマクロブロックラインの参照マクロブロックの処理結果を用いて行い、
第１の処理部の処理範囲内の最後のマクロブロックラインの参照マクロブロックの処理結果を用いて、第２の処理部の処理範囲内の最初のマクロブロックラインの注目マクロブロックの処理を行うことを特徴とする、復号化方法。
【請求項２】
該複数の処理部の処理を、複数のプロセッサのソフトウェア処理、或いは、複数のデコーダのハードウェア処理で行うことを特徴とする、請求項１記載の復号化方法。
【請求項３】
該各処理部の処理は、Ｈ．２６４−ＡＶＣ規格に準拠したイントラ予測又はモーションベクトル予測であり、
参照マクロブロックは、対応する注目マクロブロックの右上に位置することを特徴とする、請求項１又は２記載の復号化方法。
【請求項４】
各処理部の処理は、Ｈ．２６４−ＡＶＣ規格に準拠したデブロッキングフィルタ処理であり、
参照マクロブロックは、対応する注目マクロブロックの上に位置することを特徴とする、請求項１又は２記載の復号化方法。
【請求項５】
該各処理部が、所定数のマクロブロックを処理する毎に、同期処理を行うことを特徴とする、請求項１〜４のいずれか1項記載の復号化方法。
【請求項６】
処理の対象となる符号化された画像データをマクロブロック単位で並列処理する複数の処理部を備え、
各処理部が処理を担当する処理範囲に、複数のマクロブロックラインが割り当てられ、
該各処理部が処理する注目マクロブロックの処理は、該注目マクロブロックが属するマクロブロックラインより１つ先行するマクロブロックラインの参照マクロブロックの処理結果を用いて行われ、
第１の処理部の処理範囲内の最後のマクロブロックラインの参照マクロブロックの処理結果を用いて、第２の処理部の処理範囲内の最初のマクロブロックラインの注目マクロブロックの処理が行なわれることを特徴とする、復号化装置。
【請求項７】
該複数の処理部は、ソフトウェア処理を行う複数のプロセッサ、或いは、ハードウェア処理を行う複数のデコーダで構成されることを特徴とする、請求項６記載の復号化装置。
【請求項８】
各処理部の処理は、Ｈ．２６４−ＡＶＣ規格に準拠したイントラ予測又はモーションベクトル予測であり、
参照マクロブロックは、対応する注目マクロブロックの右上に位置することを特徴とする、請求項６又は７記載の復号化装置。
【請求項９】
該各処理部の処理は、Ｈ．２６４−ＡＶＣ規格に準拠したデブロッキングフィルタ処理であり、
参照マクロブロックは、対応する注目マクロブロックの上に位置することを特徴とする、請求項６又は７記載の復号化装置。
【請求項１０】
該各処理部が、所定数のマクロブロックを処理する毎に、同期処理を行うことを特徴とする、請求項６〜９のいずれか1項記載の復号化装置。
【国際調査報告】
2008020470.tif 000016
2008020470.tif 000017
2008020470.tif 000018
2008020470.tif 000019