JPWO2008020470A1 - 復号化方法及び装置 - Google Patents

復号化方法及び装置 Download PDF

Info

Publication number
JPWO2008020470A1
JPWO2008020470A1 JP2008529793A JP2008529793A JPWO2008020470A1 JP WO2008020470 A1 JPWO2008020470 A1 JP WO2008020470A1 JP 2008529793 A JP2008529793 A JP 2008529793A JP 2008529793 A JP2008529793 A JP 2008529793A JP WO2008020470 A1 JPWO2008020470 A1 JP WO2008020470A1
Authority
JP
Japan
Prior art keywords
processing
macroblock
line
processing unit
processed
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.)
Granted
Application number
JP2008529793A
Other languages
English (en)
Other versions
JP4879269B2 (ja
Inventor
都市 雅彦
雅彦 都市
今井 賢
賢 今井
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2008020470A1 publication Critical patent/JPWO2008020470A1/ja
Application granted granted Critical
Publication of JP4879269B2 publication Critical patent/JP4879269B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock

Abstract

処理の対象となる符号化された画像データに対して複数の処理部でマクロブロック単位の処理を行う復号化方法は、各処理部が処理を担当する処理範囲に複数のマクロブロックラインを割り当て、各処理部が処理する注目マクロブロックの処理を、注目マクロブロックが属するマクロブロックラインより1つ先行するマクロブロックラインの参照マクロブロックの処理結果を用いて行う。第1の処理部の処理範囲内の最後のマクロブロックラインの参照マクロブロックの処理結果を用いて、第2の処理部の処理範囲内の最初のマクロブロックラインの注目マクロブロックの処理を行う。

Description

本発明は、復号化方法及び装置に係り、特にH.264方式等の動画符号化規格で符号化(即ち、圧縮)された動画データを復号化する復号化方法及び装置に関する。
H.264又はMPEG(Moving Picture Experts Group)4−AVC(Advanced Video Coding)方式は、ISOとITU−Tとの共同標準化組織であるJVTで策定され(ISO/IEC 14496−10又はITU−T Q6/16)、2003年に標準化された新しい圧縮伸張技術である。H.264−AVC方式(以下、単にH.264方式と言う)は、地上デジタルテレビ放送の中でも「1セグメント放送」と呼ばれる、携帯端末向けの放送で使用されることで知られている。H.264方式では、4×4画素の整数変換、9方向のイントラ(Intra)予測、7種類のサブマクロブロック(Sub Macro Block)分割、最小4×4画素毎の動きベクトル、マルチフレーム参照、ループ内フィルタ、算術符号等の新しい技術を導入しており、高い圧縮率を実現している。H.264方式を用いることにより、MPEG2方式と比較して半分のストリームサイズで、同等の再生画質を得ることができると言われている。
しかし、H.264方式で採用されているアルゴリズムは、符号化効率を重視しているために処理量が多い。このため、H.264方式の符号化及び復号化(エンコード及びデコード)を行う信号処理装置には、ソフトウェアによる並列処理を行う構成のものと、専用ハードウェアによる並列処理を行う構成のものとが用いられてきた。
画像処理をソフトウェア或いはハードウェアによる並列処理で行う場合、画像単位で処理を割り当てる方法と、処理単位で割り当てる方法とが考えられる。ハードウェアによる実装の場合、処理単位で割り当てる方法が採用されることが多い。ソフトウェアによる並列処理の場合は、どちらの方法も採用できるが、画像単位で処理を割り当てる方法を採用した場合には、プロセッサ間の処理の偏りが少なく、プロセッサ数を増加させることにより大画面への拡張が容易となる。
しかし、H.264方式の各処理は、データ依存関係が複雑であり、並列処理を行う際には多くの同期処理が必要となる。
H.264方式の符号化及び復号化方法は、例えば特許文献1にて提案されている。又、H.264方式の復号化を並列処理で行う方法が、例えば非特許文献1にて提案されている。
特開2005−354361号公報 Yen-Kuang Chen et al., "Implementation of H.264 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
H.264方式は、マクロブロック(MB:Macro Block)間にデータ依存が多く、並列処理において並行に演算可能なMBに制限がある。例えば、H.264方式の復号化処理において、MB単位の処理で、注目MBの左、左上、上、右上のMBのデータを必要とする処理がある。このような処理の場合、注目MBの処理を開始するためには、注目MBの左、左上、上、右上のMBの処理が完了し、データの受け渡しを行われることが必要となる。このため、複数のプロセッサのソフトウェア処理、或いは、デコーダのハードウェア処理で上記の如きMBの処理を行う場合、処理完了の待ち合わせ、データの受け渡し等の同期処理が頻繁に発生し、オーバーヘッドが大きくなってしまうという問題があった。
そこで、本発明は、H.264方式の復号化処理のような、複雑なデータ依存性がある処理が要求される画像処理に対して、効率の良い処理が行える復号化方法及び装置を提供することを概括的目的とする。
上記の課題は、処理の対象となる符号化された画像データに対して、複数の処理部でマクロブロック単位の並列処理を行う復号化方法であって、各処理部が処理を担当する処理範囲に、複数のマクロブロックラインを割り当て、該各処理部が処理する注目マクロブロックの処理を、該注目マクロブロックが属するマクロブロックラインより1つ先行するマクロブロックラインの参照マクロブロックの処理結果を用いて行い、第1の処理部の処理範囲内の最後のマクロブロックラインの参照マクロブロックの処理結果を用いて、第2の処理部の処理範囲内の最初のマクロブロックラインの注目マクロブロックの処理を行うことを特徴とする復号化方法によって達成できる。
上記の課題は、処理の対象となる符号化された画像データをマクロブロック単位で並列処理する複数の処理部を備え、各処理部が処理を担当する処理範囲に、複数のマクロブロックラインが割り当てられ、該各処理部が処理する注目マクロブロックの処理は、該注目マクロブロックが属するマクロブロックラインより1つ先行するマクロブロックラインの参照マクロブロックの処理結果を用いて行われ、第1の処理部の処理範囲内の最後のマクロブロックラインの参照マクロブロックの処理結果を用いて、第2の処理部の処理範囲内の最初のマクロブロックラインの注目マクロブロックの処理が行なわれることを特徴とする復号化装置によって達成できる。
本発明によれば、H.264方式の復号化処理のような、複雑なデータ依存性がある処理が要求される画像処理に対して効率の良い処理が行える復号化方法及び装置を実現することができる。
H.264方式の復号化処理のデータ依存を説明する図である。 MB毎にプロセッサを割り当てた場合の考えられる処理順序とデータ転送を説明する図である。 MB毎にプロセッサを割り当てた場合の本発明の処理順序とデータ転送を説明する図である。 MB毎にプロセッサを割り当てた場合の本発明の処理順序とデータ転送を説明する図である。 第1実施例の処理順序とデータ転送を2つのプロセッサを用いる場合について説明する図である。 第1実施例の処理の概略を説明するフローチャートである。 第1実施例のオーバーヘッドを比較例と比較して示す図である。 第1実施例の処理順序とデータ転送を3つのプロセッサを用いる場合について説明する図である。 第1実施例における3つのプロセッサの処理を説明するフローチャートである。 第2実施例の処理順序とデータ転送を2つのプロセッサを用いる場合について説明する図である。 第2実施例の処理の概略を説明するフローチャートである。 第2実施例の処理順序とデータ転送を3つのプロセッサを用いる場合について説明する図である。 第2実施例における3つのプロセッサの処理を説明するフローチャートである。
符号の説明
11,21 プロセッサ
H.264方式は、マクロブロック(MB:Macro Block)間にデータ依存が多く、並列処理において並行に演算可能なMBに制限がある。 H.264方式の処理であるイントラ予測、モーションベクトル(MV:Motion Vector)予測及びデブロッキングフィルタ(DF:Deblocking Filter)処理は、注目MBの周囲のMBのデータが必要とされるデータ依存性がある。そのため、処理の完了待ち合わせ、データの受け渡し等を含む同期処理が頻繁に発生する。又、並行に演算可能なMBに制限がある。
そこで、本発明は、この制限の中で、符号化された画像データ(動画データ)の局所性及び同期処理の簡略化に着目した並列処理順序を提供する。
H.264方式の復号化処理において、MB単位の処理で、図1に示すようにハッチングで示す注目MBの左、左上、上、右上の参照MBのデータを必要とする処理がある。図1は、H.264方式の復号化処理のデータ依存を説明する図であり、(a)はイントラ予測及びMV予測の場合のデータ依存を示し、(b)はDF処理の場合のデータ依存を示す。図1中、各矩形領域は、1つのMBを示す。図1からわかるように、注目MBの処理を開始するためには、イントラ予測又はMV予測の場合であれば注目MBの左、左上、上、右上の参照MBの処理が完了してデータの受け渡しが行われることが必要となり、DF処理の場合であれば注目画素の上の参照MBの処理が完了してデータの受け渡しが行われることが必要となる。
このため、復号化装置が複数のプロセッサのソフトウェア処理、或いは、デコーダのハードウェア処理で上記の如きMBの処理を行う場合、例えば図2に示すような処理順序で行うことが考えられる。図2は、一例としてイントラ予測の場合にMB毎にプロセッサ(又は、デコーダ)を割り当てる、考えられる処理順序とデータ転送を説明する図である。図2中、各矩形領域は1つのMBを示し、太い実線の矢印は処理順序を示し、細い実線の矢印はデータ転送を示し、説明の便宜上2つのプロセッサ#1,#2が用いられるものとする。しかし、この考えられる処理順序を用いたのでは、処理を行うプロセッサ#1,#2が1マクロブロックライン(MBライン)毎に変わり、処理完了の待ち合わせ、データの受け渡し等の同期処理が頻繁に発生し、オーバーヘッドが大きくなってしまう。
そこで、本発明では、処理の対象となる符号化された画像データ(動画データ)に対して復号化装置が複数のプロセッサのソフトウェア処理、或いは、複数のデコーダのハードウェア処理、即ち、複数の処理部で上記の如きMB単位の処理を行う場合、各プロセッサ(又は、デコーダ)が処理を担当する範囲(以下、処理範囲とも言う)を1MBライン毎ではなく複数のMBライン毎にし、図3又は図4に示すような大略縦方向(即ち、同一MBライン上の横方向以外の方向)に配置されたMBを優先する順序で処理を行う。図3及び図4は、イントラ予測の場合にMB毎にプロセッサを割り当てる本発明の処理順序とデータ転送を説明する図である。図3及び図4中、各矩形領域は1つのMBを示し、太い実線の矢印は処理順序を示し、細い実線の矢印はデータ転送を示す。説明の便宜上、図3では2つのプロセッサ#1,#2が用いられ、図4では3つのプロセッサ#1〜#3が用いられ、各プロセッサ#1,#2,#3が処理を担当する処理範囲は4MBライン毎であるものとする。
本発明によれば、異なるプロセッサ、或いは、異なるデコーダ間で担当する処理範囲の境界が少なくなり、同期処理によるオーバーヘッドの増加を抑制することができる。例えば、図3のように2つのプロセッサ#1,#2で上記復号化処理のMB単位の処理を行う場合、各プロセッサ#1,#2の担当する処理範囲のMBライン数をNとすると、同期処理の回数は上記考えられる方法と比べると1/N回に減少させることができる。初回の同期処理までに、例えば一方のプロセッサ#1では(N+1)N/2個のMBの処理が必要であり、その間、他方のプロセッサ#2は処理を開始できないので、同期オーバーヘッドをOH、復号化処理の対象となるMBの総数をTM、MBの1つ当たりの処理量をAとすると、OH×TM×(N−1)/N>A×(N+1)×N/2という条件が成立するとき、本発明を導入することによる同期オーバーヘッドOHの減少効果が得られる。
尚、DB処理の場合にMB毎にプロセッサを割り当てる本発明の処理も、上記イントラ予測の場合と同様に大略縦方向(即ち、同一MBライン上の横方向以外の方向)に配置されたMBを優先する順序で行われ、上記と同様の効果を得ることができるが、その詳細については以下の実施例と共に説明する。
以下に、本発明の復号化方法及び装置の各実施例を、図面と共に説明する。
(第1実施例)
先ず、本発明の復号化方法及び装置の第1実施例を図5〜図8と共に説明する。
図5は、第1実施例の処理順序とデータ転送を2つのプロセッサを用いる場合について説明する図である。図5中、各矩形領域は1つのMBを示し、各矩形領域内の数字は処理順序を示し、細い実線の矢印はデータ転送を示す。説明の便宜上、図5では2つのプロセッサ#1,#2が用いられ、各プロセッサ#1,#2が処理を担当する範囲は3MBライン毎であるものとする。
イントラ予測やMV予測のように、処理対象となる符号化された画像データ(動画データ)の1フレーム内の注目MBに対する処理を行う際に注目MBの右上を含む参照MBのデータを必要とする場合、図5に示すような順序で処理を行う。各MBラインは例えば5つのMBからなり、各MBは例えば16×16画素のデータからなる。
注目MBの処理が終了すると、次は斜め左下の参照MBの処理を行う。処理を行っているプロセッサの処理範囲の最後(一番下又は下端)のMBラインの注目MBまで処理が到達すると、この処理範囲の一番上(1番目)のMBラインの未処理のMBのうち、最も左のMBを注目MBとしての処理を行う。1番目のMBラインに未処理のMBがない場合は上から2番目のMBラインから注目MBの候補を探し、2番目のMBラインにも候補がない場合には更にその下の3番目のMBラインから候補を探す。各プロセッサ#1,#2、或いは、各専用ハードウェア(デコーダ)が担当する処理範囲のMBライン数は3なので、このようにして先ず3(3+1)/2=6個のMBの処理を行い、それ以降は3個のMBの処理に対して1個の同期処理を行う処理を、処理範囲の最後(一番下のMBラインの右端のMB)に到達するまで繰り返す。このようにして各処理範囲内の全てのMBの処理が終わるまで処理を繰り返す。
つまり、プロセッサ#1は、図5に示すように、1番目のMBラインの一番左の注目MB「1」の処理が終了すると、1番目のMBラインの未処理で最も左のMB「2」を注目MBとして処理を行う。次は、斜め左下の2番目のMBラインにあるMB「3」を注目MBとして処理を行い、1番目のMBラインの未処理で最も左のMB「4」を注目MBとして処理を行う。次は、斜め左下の2番目、3番目のMBラインにあるMB「5」、「6」を注目MBとして処理を行い、6個のMBの処理が行われる。それ以降は、3個のMBの処理に対して1個の同期処理を行う処理を、処理範囲の最後(一番下のMBラインの右端のMB)に到達するまで繰り返す。
他方、プロセッサ#2は、上記プロセッサ#1と同様の処理順序で処理を行うが、最初に処理する第1番目のMBラインの処理については同期処理で転送されてくるプロセッサ#1の処理結果を用いる。つまり、プロセッサ#1による最初の6個のMBの処理及び次の3個のMBの処理が行われた時点で、プロセッサ#2は夫々の3番目のMBラインのMB「6」、「9」の処理結果を用いてプロセッサ#2が処理するMBラインでは1番目のMBラインの一番左の注目MB「1」の処理を行う。この1番目のMBラインの一番左の注目MB「1」の処理が終了すると、プロセッサ#1による次の3個のMBの処理が行われた時点で、プロセッサ#2は3番目のMBラインのMB「12」の処理結果を用いてプロセッサ#2が処理するMBラインでは1番目のMBラインの未処理で最も左のMB「2」を注目MBとして処理を行う。プロセッサ#2は、それ以降は上記プロセッサ#1の処理順序と同様の処理順序で、プロセッサ#2が処理するMBラインでは1番目のMBラインの処理についてはプロセッサ#1の処理結果を用いて、処理範囲の全てのMBの処理が終わるまで処理を繰り返す。
各プロセッサ#1,#2、或いは、各専用ハードウェア(デコーダ)が担当する処理範囲のMBライン数をNとすると、先ずN(N+1)/2個のMBの処理を行い、以下N個のMBの処理と1個の同期処理を処理範囲の右端に到達するまで繰り返す。これにより、処理範囲の繰り返し部では、N個のMB毎に1個の同期処理が必要となり、同期処理を上記考えられる方法(以下、比較例と言う)と比較するとN分の1に削減できる。
同期処理のオーバーヘッドをOHとした場合、本実施例では図7(a)に示すように、図7(b)の比較例の場合と比較して同期処理の回数がN分の1になる。図7は、第1実施例のオーバーヘッドOHを比較例と比較して示す図である。図7中、ハッチングを施された矩形領域はMBの処理を示し、黒く塗られた矩形領域は同期処理を示す。本実施例では、プロセッサ#2が処理を開始できるのは、プロセッサ#1が処理を開始してから{N(N+1)/2+N}個のMBの処理分だけ遅延されたタイミングであるが、画像サイズが大きく、同期処理のオーバーヘッドOHが大きい場合には、比較例より画像処理に対して効率の良い処理が行えることがわかる。
図6は、第1実施例の処理の概略を説明するフローチャートである。図6に示す処理は、プロセッサ11により実行される。プロセッサ11は、CPU及び記憶部等からなる周知の構成を有する情報処理装置であり、復号化装置はこのようなプロセッサ11が複数個、並列処理可能に接続された構成を有する。
図6において、ステップS1は最初のN(N+1)/2個のMBの処理を行う。これにより、図5に示す1番目〜3番目のMBラインのMB「1」〜「6」の処理が行われる。ステップS2は処理対象となる符号化された画像データの1フレームの処理範囲の各MBラインの右端のMBが処理されるまで、ステップS3,S4の処理を繰り返す。ステップS3はN個のMBの処理を行い、ステップS4は処理完了の待ち合わせ、データの受け渡し等を含む同期処理を行う。ステップS5は処理範囲の最後のMBラインについてステップS2〜S4が行われたか否かを判定し、判定結果がNOであると処理はステップS2へ戻り、YESであると処理は終了する。
上記の如く2つのプロセッサ#1,#2を並列処理に用いる場合、各プロセッサ#1,#2は図6に示す処理を行うが、プロセッサ#2の場合、注目MBに対する処理を行う際に注目MBの右上を含む参照MBのデータを必要とする点ではプロセッサ#1の場合の処理と同じであるが、プロセッサ#2が処理するMBラインでは1番目のMBラインのMBを処理する際にはプロセッサ#1が処理するMBラインでは3番目のMBラインのMBに対する処理結果を用いる点だけ異なる。
図8は、第1実施例の処理順序とデータ転送を3つのプロセッサを用いる場合について説明する図であり、図9は、第1実施例における3つのプロセッサの処理を説明するフローチャートである。図8中、各矩形領域は1つのMBを示し、各矩形領域内の数字は処理範囲の左上から右上、右下への処理順序を示し、細い実線の矢印はデータ転送を示す。又、説明の便宜上、各プロセッサ#1,#2,#3が処理を担当する処理範囲はNマクロブロック(MB)ライン毎であり、各MBラインはW個のMBからなるものとする。ここで、N,Wはいずれも2以上の整数であり、N≠WであってもN=Wであっても良いが、好ましくはN<Wである。各MBは、例えば16×16画素のデータからなる。
イントラ予測やMV予測のように、処理対象となる符号化された画像データの1フレーム内の注目MBに対する処理を行う際に注目MBの右上を含む参照MBのデータを必要とする場合、図8に示すような順序で処理を行う。
図9は、3つのプロセッサ#1,#2,#3の処理を示す。プロセッサ#1はステップS101−1〜S108−1を行い、プロセッサ#2はステップS101−2〜S108−2,S111−2〜S113−2を行い、プロセッサ#3はステップS101−3〜S108−3,S111−3〜S113−3を行う。図9中、実質的に同じステップには同一符号にプロセッサ#1〜#3に対応する添え字「−1」〜「−3」を付けて示す。
先ず、プロセッサ#1の処理を説明する。プロセッサ#1の処理が開始されると、ステップS101−1は変数i(整数)をi=1に設定する。ステップS102−1はi番目のMB「i」の処理を行い、ステップS103−1はMBが処理範囲の左端に位置しているか否かを判定する。ステップS103−1の判定結果がNOであると、ステップS104−1はMBが処理範囲の下端に位置しているか否かを判定する。ステップS104−1の判定結果がNOであると、ステップS105−1は現在のMBの左下のMBの処理を行い、処理はステップS103−1へ戻る。他方、ステップS104−1の判定結果がYESであると、ステップS106−1はプロセッサ#2へのデータ転送を行い、ステップS107−1はi=(W+N−1)であるか否かを判定する。ステップS106−1のデータ転送では、N番目のMBラインのMBの処理結果がプロセッサ#2へ転送される。ステップS107−1の判定結果がNOであると、ステップS108−1はiをi=i+1にインクリメントし、処理はステップS102−1へ戻る。ステップS107−1の判定結果がYESであると、プロセッサ#1の処理は終了する。
次に、プロセッサ#2の処理を説明する。プロセッサ#2の処理が開始されると、ステップS101−2は変数i(整数)をi=1に設定する。ステップS111−2はプロセッサ#1からのデータ転送を待つ同期処理を行う。従って、最初は、プロセッサ#2が1番目のMBラインの1番目のMB「1」を処理するのに必要である、プロセッサ#1が処理したN番目のMBラインのMBの処理結果がプロセッサ#1から転送されてくると、処理はステップS112−2へ進む。ステップS112−2はi≦Wであるか否かを判定し、判定結果がYESであると、ステップS113−2はプロセッサ#1からのデータ転送を待つ同期処理を行う。従って、プロセッサ#2がMBを処理するのに必要である、プロセッサ#1が処理したN番目のMBラインのMBの処理結果がプロセッサ#1から転送されてくると、処理はステップS102−2へ進む。ステップS112−2の判定結果がNOであると、処理はステップS102−2へ進む。プロセッサ#2の他の処理は、基本的には上記プロセッサ#1の処理と同じである。
次に、プロセッサ#3の処理を説明する。プロセッサ#3の処理が開始されると、ステップS101−3は変数i(整数)をi=1に設定する。ステップS111−3はプロセッサ#2からのデータ転送を待つ同期処理を行う。従って、最初は、プロセッサ#3が1番目のMBラインの1番目のMB「1」を処理するのに必要である、プロセッサ#2が処理したN番目のMBラインのMBの処理結果がプロセッサ#2から転送されてくると、処理はステップS112−3へ進む。ステップS112−3はi≦Wであるか否かを判定し、判定結果がYESであると、ステップS113−3はプロセッサ#2からのデータ転送を待つ同期処理を行う。従って、プロセッサ#3がMBを処理するのに必要である、プロセッサ#2が処理したN番目のMBラインのMBの処理結果がプロセッサ#2から転送されてくると、処理はステップS102−3へ進む。ステップS112−3の判定結果がNOであると、処理はステップS102−3へ進む。プロセッサ#4の他の処理は、基本的には上記プロセッサ#2の処理と同じである。
(第2実施例)
次に、本発明の復号化方法及び装置の第2実施例を図9〜図12と共に説明する。
図9は、第2実施例の処理順序とデータ転送を2つのプロセッサを用いる場合について説明する図である。図9中、各矩形領域は1つのMBを示し、各矩形領域内の数字は処理順序を示し、細い実線の矢印はデータ転送を示す。説明の便宜上、図9では2つのプロセッサ#1,#2が用いられ、各プロセッサ#1,#2が処理を担当する処理範囲は3MBライン毎であるものとする。
DF処理のように、処理対象となる符号化された画像データの1フレーム内の注目MBに対する処理を行う際に注目MBの上の参照MBのデータを必要とする場合、図9に示すような順序で処理を行う。各MBラインは例えば4つのMBからなり、各MBは例えば16×16画素のデータからなる。
注目MBの処理が終了すると、次は下のMBの処理を行う。プロセッサの処理範囲の最後(一番下)のMBラインの注目MBまで処理が到達すると、この処理範囲の一番上(1番目)のMBラインの未処理のMBのうち、最も左のMBを注目MBとしての処理を行う。各プロセッサ#1,#2、或いは、各専用ハードウェア(デコーダ)が担当するMBライン数は3なので、このようにして3個のMBの処理に対して1個の同期処理を行う処理を、処理範囲の最後(一番下のMBラインの右端のMB)に到達するまで繰り返す。このようにして各処理範囲内の全てのMBの処理が終わるまで処理を繰り返す。
つまり、プロセッサ#1は、図10に示すように、1番目のMBラインの一番左の注目MB「1」の処理が終了すると、MB「1」の下に位置する2番目のMBラインの最も左のMB「2」を注目MBとして処理を行う。次は、MB「2」の下に位置する3番目のMBラインの最も左のMB「3」を注目MBとして処理を行う。次に、1番目のMBラインの未処理で最も左のMB「4」を注目MBとして処理を行い、下に位置する2番目、3番目のMBラインにあるMB「5」、「6」を注目MBとして処理を行う。それ以降は、同様にして、3個のMBの処理に対して1個の同期処理を行う処理を、処理範囲の最後(一番下のMBラインの右端のMB)に到達するまで繰り返す。
他方、プロセッサ#2は、上記プロセッサ#1と同様の処理順序で処理を行うが、最初に処理する第1番目のMBラインの処理については同期処理で転送されてくるプロセッサ#1の処理結果を用いる。つまり、プロセッサ#1による最初の3個のMBの処理が行われた時点で、3番目のMBラインのMB「3」の処理結果を用いて、プロセッサ#2が処理するMBラインでは1番目のMBラインの一番左の注目MB「1」の処理を行う。1番目のMBラインの一番左の注目MB「1」の処理が終了すると、2番目のMBラインのMB「2」を注目MBとして処理を行う。プロセッサ#2は、それ以降は上記プロセッサ#1の処理順序と同様の処理順序で、1番目のMBラインの処理についてはプロセッサ#1の処理結果を用いて、処理範囲内の全てのMBの処理が終わるまで処理を繰り返す。
各プロセッサ#1,#2、或いは、各専用ハードウェア(デコーダ)が担当する処理範囲のMBライン数をNとすると、N個のMBの処理と1個の同期処理を処理範囲の右端に到達するまで繰り返す。これにより、処理範囲の繰り返し部では、N個のMB毎に1個の同期処理が必要となり、同期処理を上記比較例と比較するとN分の1に削減できる。
図11は、第2実施例の処理の概略を説明するフローチャートである。図10に示す処理は、プロセッサ21により実行される。プロセッサ21は、CPU及び記憶部等からなる周知の構成を有する情報処理装置であり、復号化装置はこのようなプロセッサ21が複数個、並列処理可能に接続された構成を有する。
図11において、ステップS21は処理範囲の各MBラインの右端のMBが処理されるまで、ステップS22,S23の処理を繰り返す。ステップS22はN個のMBの処理を行い、ステップS23は処理完了の待ち合わせ、データの受け渡し等を含む同期処理を行う。ステップS24は処理範囲の最後のMBラインについてステップS21〜S23が行われたか否かを判定し、判定結果がNOであると処理はステップS21へ戻り、YESであると処理は終了する。
上記の如く2つのプロセッサ#1,#2を並列処理に用いる場合、各プロセッサ#1,#2は図11に示す処理を行うが、プロセッサ#2の場合、注目MBに対する処理を行う際に注目MBの上を含む参照MBのデータを必要とする点ではプロセッサ#1の場合の処理と同じであるが、プロセッサ#2が処理するMBラインでは1番目のMBラインの処理についてはプロセッサ#1の3番目のMBラインのMBに対する処理結果を用いる点だけ異なる。
図12は、第2実施例の処理順序とデータ転送を3つのプロセッサを用いる場合について説明する図であり、図13は、第2実施例における3つのプロセッサの処理を説明するフローチャートである。図12中、各矩形領域は1つのMBを示し、各矩形領域内の数字は処理範囲の左上から右上、右下への処理順序を示し、細い実線の矢印はデータ転送を示す。又、説明の便宜上、各プロセッサ#1,#2,#3が処理を担当する処理範囲は、例えば夫々の処理性能に合わせてP,Q,Rマクロブロック(MB)ライン毎であり、各MBラインはW個のMBからなるものとする。ここで、P,Q,R,Wはいずれも2以上の整数であり、P,Q,RはいずれもNと等しくても異なっても良いが、好ましくはWより小さい。又、本実施例ではP,Q,RはP>R>Qなる関係を満足しているが、この関係に限定されるものではない。各MBは、例えば16×16画素のデータからなる。
DF処理のように、処理対象となる符号化された画像データの1フレーム内の注目MBに対する処理を行う際に注目MBの上を含む参照MBのデータを必要とする場合、図12に示すような順序で処理を行う。
図13は、3つのプロセッサ#1,#2,#3の処理を示す。プロセッサ#1はステップS201−1〜S207−1を行い、プロセッサ#2はステップS201−2〜S207−2,S211−2を行い、プロセッサ#3はステップS201−3〜S207−3,S211−3を行う。図13中、実質的に同じステップには同一符号にプロセッサ#1〜#3に対応する添え字「−1」〜「−3」を付けて示す。
先ず、プロセッサ#1の処理を説明する。プロセッサ#1の処理が開始されると、ステップS201−1は変数i(整数)をi=1に設定する。ステップS202−1はi番目のMB「i」の処理を行い、ステップS203−1はMBが処理範囲の下端に位置しているか否かを判定する。ステップS203−1の判定結果がNOであると、ステップS204−1は現在のMBの下のMBの処理を行い、処理はステップS203−1へ戻る。他方、ステップS203−1の判定結果がYESであると、ステップS205−1はプロセッサ#2へのデータ転送を行い、ステップS206−1はi=(W+P−1)であるか否かを判定する。ステップS205−1のデータ転送では、P番目のMBラインのMBの処理結果がプロセッサ#2へ転送される。ステップS206−1の判定結果がNOであると、ステップS207−1はiをi=i+1にインクリメントし、処理はステップS202−1へ戻る。ステップS206−1の判定結果がYESであると、プロセッサ#1の処理は終了する。
次に、プロセッサ#2の処理を説明する。プロセッサ#2の処理が開始されると、ステップS201−2は変数i(整数)をi=1に設定する。ステップS211−2はプロセッサ#1からのデータ転送を待つ同期処理を行う。従って、最初は、プロセッサ#2が1番目のMBラインの1番目のMB「1」を処理するのに必要である、プロセッサ#1が処理したP番目のMBラインのMBの処理結果がプロセッサ#1から転送されてくると、処理はステップS202−2へ進む。プロセッサ#2の他の処理は、基本的には上記プロセッサ#1の処理と同じであるが、ステップS206−2はi=(W+Q−1)であるか否かを判定する。
次に、プロセッサ#3の処理を説明する。プロセッサ#3の処理が開始されると、ステップS201−3は変数i(整数)をi=1に設定する。ステップS211−3はプロセッサ#2からのデータ転送を待つ同期処理を行う。従って、最初は、プロセッサ#3が1番目のMBラインの1番目のMB「1」を処理するのに必要である、プロセッサ#2が処理したQ番目のMBラインのMBの処理結果がプロセッサ#2から転送されてくると、処理はステップS202−3へ進む。プロセッサ#4の他の処理は、基本的には上記プロセッサ#2の処理と同じであるが、ステップS206−3はi=(W+R−1)であるか否かを判定する。
尚、上記各実施例においては、処理の対象となる符号化された画像データに対して復号化装置が複数のプロセッサのソフトウェア処理により上記の如きMB単位の処理を行っているが、複数のデコーダのハードウェア処理により上記の如きMB単位の処理を行う場合、デコーダとしては物理的に別々の複数のデコーダを用いても、物理的には単一のデコーダ内の複数のデコーダ部を用いても良いことは言うまでもない。
本発明は、H.264方式の復号化処理のような、複雑なデータ依存性がある処理が要求される画像処理に対して適用可能である。
以上、本発明を実施例により説明したが、本発明は上記実施例に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能であることは言うまでもない。

Claims (18)

  1. 処理の対象となる符号化された画像データに対して、複数の処理部でマクロブロック単位の並列処理を行う復号化方法であって、
    各処理部が処理を担当する処理範囲に、複数のマクロブロックラインを割り当て、
    該各処理部が処理する注目マクロブロックの処理を、該注目マクロブロックが属するマクロブロックラインより1つ先行するマクロブロックラインの参照マクロブロックの処理結果を用いて行い、
    第1の処理部の処理範囲内の最後のマクロブロックラインの参照マクロブロックの処理結果を用いて、第2の処理部の処理範囲内の最初のマクロブロックラインの注目マクロブロックの処理を行うことを特徴とする、復号化方法。
  2. 該複数の処理部の処理を、複数のプロセッサのソフトウェア処理、或いは、複数のデコーダのハードウェア処理で行うことを特徴とする、請求項1記載の復号化方法。
  3. 該各処理部の処理は、H.264−AVC規格に準拠したイントラ予測又はモーションベクトル予測であり、
    参照マクロブロックは、対応する注目マクロブロックの右上に位置することを特徴とする、請求項1又は2記載の復号化方法。
  4. 該第1及び第2の処理部の処理範囲の大きさが同じであることを特徴とする、請求項3記載の復号化方法。
  5. 各処理部の処理は、H.264−AVC規格に準拠したデブロッキングフィルタ処理であり、
    参照マクロブロックは、対応する注目マクロブロックの上に位置することを特徴とする、請求項1又は2記載の復号化方法。
  6. 該第1及び第2の処理部の処理範囲の大きさが異なることを特徴とする、請求項5記載の復号化方法。
  7. 該第2の処理部の処理範囲内の最後のマクロブロックラインの参照マクロブロックの処理結果を用いて、第3の処理部の処理範囲内の最初のマクロブロックラインの注目マクロブロックの処理を行い、
    該第1、第2及び第3の処理部の処理範囲の大きさが互いに異なることを特徴とする、請求項5又は6記載の復号化方法。
  8. 該各処理部が、所定数のマクロブロックを処理する毎に、同期処理を行うことを特徴とする、請求項1〜7のいずれか1項記載の復号化方法。
  9. 該同期処理は、処理の完了の待ち合わせ及びデータの受け渡しを含み、該第1の処理部の参照マクロブロックの処理結果を、該第2の処理部の注目マクロブロックの処理のために該第2の処理部に転送することを特徴とする、請求項8記載の復号化方法。
  10. 処理の対象となる符号化された画像データをマクロブロック単位で並列処理する複数の処理部を備え、
    各処理部が処理を担当する処理範囲に、複数のマクロブロックラインが割り当てられ、
    該各処理部が処理する注目マクロブロックの処理は、該注目マクロブロックが属するマクロブロックラインより1つ先行するマクロブロックラインの参照マクロブロックの処理結果を用いて行われ、
    第1の処理部の処理範囲内の最後のマクロブロックラインの参照マクロブロックの処理結果を用いて、第2の処理部の処理範囲内の最初のマクロブロックラインの注目マクロブロックの処理が行なわれることを特徴とする、復号化装置。
  11. 該複数の処理部は、ソフトウェア処理を行う複数のプロセッサ、或いは、ハードウェア処理を行う複数のデコーダで構成されることを特徴とする、請求項10記載の復号化装置。
  12. 各処理部の処理は、H.264−AVC規格に準拠したイントラ予測又はモーションベクトル予測であり、
    参照マクロブロックは、対応する注目マクロブロックの右上に位置することを特徴とする、請求項10又は11記載の復号化装置。
  13. 該第1及び第2の処理部の処理範囲の大きさが同じであることを特徴とする、請求項12記載の復号化装置。
  14. 該各処理部の処理は、H.264−AVC規格に準拠したデブロッキングフィルタ処理であり、
    参照マクロブロックは、対応する注目マクロブロックの上に位置することを特徴とする、請求項10又は11記載の復号化装置。
  15. 該第1及び第2の処理部の処理範囲の大きさが異なることを特徴とする、請求項14記載の復号化装置。
  16. 該第2の処理部の処理範囲内の最後のマクロブロックラインの参照マクロブロックの処理結果を用いて、第3の処理部の処理範囲内の最初のマクロブロックラインの注目マクロブロックの処理を行い、
    該第1、第2及び第3の処理部の処理範囲の大きさが互いに異なることを特徴とする、請求項14又は15記載の復号化装置。
  17. 該各処理部が、所定数のマクロブロックを処理する毎に、同期処理を行うことを特徴とする、請求項10〜16のいずれか1項記載の復号化装置。
  18. 該同期処理は、処理の完了の待ち合わせ及びデータの受け渡しを含み、該第1の処理部の参照マクロブロックの処理結果を、該第2の処理部の注目マクロブロックの処理のために該第2の処理部に転送することを特徴とする、請求項17記載の復号化装置。
JP2008529793A 2006-08-15 2006-08-15 復号化方法及び装置 Expired - Fee Related JP4879269B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2006/316037 WO2008020470A1 (en) 2006-08-15 2006-08-15 Decoding method and device

Publications (2)

Publication Number Publication Date
JPWO2008020470A1 true JPWO2008020470A1 (ja) 2010-01-07
JP4879269B2 JP4879269B2 (ja) 2012-02-22

Family

ID=39082003

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008529793A Expired - Fee Related JP4879269B2 (ja) 2006-08-15 2006-08-15 復号化方法及び装置

Country Status (2)

Country Link
JP (1) JP4879269B2 (ja)
WO (1) WO2008020470A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2009063646A1 (ja) * 2007-11-16 2011-03-31 パナソニック株式会社 画像復号装置及び画像復号方法
JP5259625B2 (ja) * 2008-05-23 2013-08-07 パナソニック株式会社 画像復号化装置、画像復号化方法、画像符号化装置、及び画像符号化方法
US8311111B2 (en) * 2008-09-11 2012-11-13 Google Inc. System and method for decoding using parallel processing
JP5275454B2 (ja) * 2009-03-31 2013-08-28 パナソニック株式会社 画像復号装置
US9100657B1 (en) 2011-12-07 2015-08-04 Google Inc. Encoding time management in parallel real-time video encoding
US11425395B2 (en) 2013-08-20 2022-08-23 Google Llc Encoding and decoding using tiling
KR101676788B1 (ko) * 2014-10-17 2016-11-16 삼성전자주식회사 멀티코어 시스템 기반 비디오 병렬 복호화 방법 및 그 장치
US9794574B2 (en) 2016-01-11 2017-10-17 Google Inc. Adaptive tile data size coding for video and image compression
US10542258B2 (en) 2016-01-25 2020-01-21 Google Llc Tile copying for video compression

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11234678A (ja) * 1998-02-18 1999-08-27 Victor Co Of Japan Ltd 画像分割伝送方法
JP2001218201A (ja) * 2000-02-01 2001-08-10 Nippon Telegr & Teleph Corp <Ntt> 並列画像復号装置,並列画像復号方法および並列画像復号用プログラム記録媒体

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09294262A (ja) * 1996-04-26 1997-11-11 Hitachi Ltd 画像符号化装置
JP2004140473A (ja) * 2002-10-15 2004-05-13 Sony Corp 画像情報符号化装置、復号化装置並びに画像情報符号化方法、復号化方法
JP4407472B2 (ja) * 2004-10-29 2010-02-03 ソニー株式会社 符号化及び復号装置並びに符号化及び復号方法
JP4453518B2 (ja) * 2004-10-29 2010-04-21 ソニー株式会社 符号化及び復号装置並びに符号化及び復号方法
JP4616057B2 (ja) * 2005-04-13 2011-01-19 パイオニア株式会社 画像符号化装置及び画像符号化方法
JP4779735B2 (ja) * 2006-03-16 2011-09-28 パナソニック株式会社 復号装置、復号方法、プログラムおよび記録媒体
JP4847222B2 (ja) * 2006-06-12 2011-12-28 日本電信電話株式会社 動画像のフィルタ処理方法,装置,フィルタ処理プログラムおよびその記録媒体

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11234678A (ja) * 1998-02-18 1999-08-27 Victor Co Of Japan Ltd 画像分割伝送方法
JP2001218201A (ja) * 2000-02-01 2001-08-10 Nippon Telegr & Teleph Corp <Ntt> 並列画像復号装置,並列画像復号方法および並列画像復号用プログラム記録媒体

Also Published As

Publication number Publication date
WO2008020470A1 (en) 2008-02-21
JP4879269B2 (ja) 2012-02-22

Similar Documents

Publication Publication Date Title
JP4879269B2 (ja) 復号化方法及び装置
US11064198B2 (en) Image coding apparatus, image coding method, image decoding apparatus, image decoding method, and program
EP2659675B1 (en) Method for picture segmentation using columns
CN107087170B (zh) 编码设备、编码方法、解码设备和解码方法
JP4908180B2 (ja) 動画像符号化装置
US8031778B2 (en) Picture decoding device and method
JP2017099017A (ja) 画像復号化装置、画像符号化装置、画像復号化方法、画像符号化方法、プログラムおよび集積回路
CN104380740A (zh) 编码装置、编码方法、解码装置和解码方法
US10986373B2 (en) Moving image encoding method, moving image decoding method, moving image encoding device, and moving image decoding device
US20080298473A1 (en) Methods for Parallel Deblocking of Macroblocks of a Compressed Media Frame
US9392278B2 (en) Image encoding or decoding apparatus, system, method, and storage medium for encoding or decoding a plurality of images in parallel
JP2010273190A (ja) 復号処理装置、復号処理方法、データ分配プログラムおよび復号処理プログラム
JP2007251865A (ja) 画像データの処理装置、画像データの処理方法、画像データの処理方法のプログラム及び画像データの処理方法のプログラムを記録した記録媒体
JPWO2009063646A1 (ja) 画像復号装置及び画像復号方法
WO2015145504A1 (ja) 画像復号装置、画像復号方法、及び集積回路
JP2024019496A (ja) 画像符号化装置、画像復号装置、画像符号化方法、画像復号方法
JP2024019495A (ja) 画像符号化装置、画像復号装置、画像符号化方法、画像復号方法
US20150358630A1 (en) Combined Parallel and Pipelined Video Encoder
JP4802928B2 (ja) 画像データ処理装置
US9219926B2 (en) Image encoding apparatus, image encoding method and program, image decoding apparatus, image decoding method and program
JP2008289105A (ja) 画像処理装置およびそれを搭載した撮像装置
US11425423B1 (en) Memory storage for motion estimation and visual artifact redcution
JP2021061547A (ja) 画像符号化装置、画像符号化方法、及びプログラム
JP2018125882A (ja) 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
JP2009302896A (ja) 画像符号化装置および画像符号化方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110125

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110328

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111101

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111129

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141209

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees