(57)【特許請求の範囲】
【請求項１】
入力したフレームの１スライス内にて複数の処理対象領域に分割する分割部と、
前記複数に分割された処理対象領域それぞれの復号処理を担当する複数の部分復号部と、を備え、
前記部分復号部は、
自身が担当する処理対象領域において、先にインターマクロブロックの復号処理を終了させて、前記インターマクロブロックの復号処理が終了したときに前記分割された上段の処理対象領域を担当する部分復号部から復号処理終了通知を供給されていなければ、画面内予測を必要とするイントラマクロブロックの復号処理を保留する一方、
前記インターマクロブロックの復号処理が終了したときに前記分割された上段の処理対象領域を担当する部分復号部から復号処理終了通知を供給されていれば、画面内予測を必要とするイントラマクロブロックの復号処理を開始し、前記復号処理を終えた後に下段の処理対象領域を担当する部分復号部に対して復号処理終了通知を通知するよう制御する、
復号装置。
【請求項２】
前記分割された最上段の処理対象領域を担当する部分復号部は、マクロブロックの並び順に復号処理を開始し、前記復号処理を終えた後に、下段の処理対象領域を担当する部分復号部に対して復号処理終了通知を通知するよう制御する、
請求項１に記載の復号装置。
【請求項３】
前記部分復号部は、前記分割された処理対象領域において、インターマクロブロックの復号処理のときに、一列分のマクロブロックのすべてがインターマクロブロックであった場合、以降の列のマクロブロックについては、マクロブロックの並び順に復号処理をするよう制御する、
請求項１または２に記載の復号装置。
【請求項４】
前記部分復号部は、前記分割された処理対象領域において、インターマクロブロックの復号処理を終えたときに、該処理対象領域内の最下段の一列分のマクロブロックのすべてが復号処理を終えている場合、下段の処理対象領域を担当する部分復号部に対して復号処理終了通知を通知するよう制御する、
請求項１から３のいずれかに記載の復号装置。
【請求項５】
前記部分復号部は、入力したフレームの１スライス内の輝度成分のみを復号処理することを特徴とする、請求項１から請求項４のいずれかの請求項に記載の復号装置。
【請求項６】
前記部分復号部は、入力したフレームの１スライス内の色差成分のみを復号処理することを特徴とする、請求項１から請求項４のいずれかの請求項に記載の復号装置。
【請求項７】
入力したフレームの１スライス内にて複数の処理対象領域に分割する分割部と、
前記複数に分割された処理対象領域それぞれの復号処理を担当する複数の部分復号部と、を備えた復号装置を制御するための復号制御方法であって、
前記分割された最上段の処理対象領域を担当する部分復号部に、マクロブロックの並び順に復号処理を開始し、前記復号処理を終えた後に、下段の処理対象領域を担当する部分復号部に対して復号処理終了通知を通知するよう制御するステップと、
前記分割された最上段以外の処理対象領域を担当する部分復号部に、先にインターマクロブロックの復号処理を開始させるステップと、
前記分割された最上段以外の処理対象領域を担当する部分復号部に、前記インターマクロブロックの復号処理が終了したときに前記分割された上段の処理対象領域を担当する部分復号部から復号処理終了通知を供給されていなければ、画面内予測を必要とするイントラマクロブロックの復号処理を保留させる一方、前記インターマクロブロックの復号処理が終了したときに前記分割された上段の処理対象領域を担当する部分復号部から復号処理終了通知を供給されていれば、画面内予測を必要とするイントラマクロブロックの復号処理を開始し、前記復号処理を終えた後に下段の処理対象領域を担当する部分復号部に対して復号処理終了通知を通知させるステップと、を有する、
復号制御方法。
【請求項８】
請求項７に記載した復号方法について、コンピュータに処理を実行させるためのプログラムを記録した非一時記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＰＣ上で動作するソフトウェアに関するものである。
【背景技術】
【０００２】
近年、パーソナルコンピュータ（以下ＰＣ）を用いて、映像の編集が盛んに行われており、ビデオカメラで撮影した映像をＰＣ上で確認し、編集、保存するという機能を持つアプリケーションが数多く存在する。
【０００３】
一方、映像分野ではハイビジョン化が進み、ＨＤ解像度のＭＰＥＧ−２コーデックを用いた高画質な映像がビデオカメラ等で作成できるようになった。高解像度で高画質な映像を実現するには、高ビットレートでのＭＰＥＧ−２エンコードが必要となる。そこで、新たな動画コーデックであるＨ．２６４（ＭＰＥＧ−４  ＡＶＣ）に対する期待が高まっている。Ｈ．２６４は従来のＭＰＥＧ−２やＭＰＥＧ−４と比較し、２倍の圧縮効率を実現することが出来ると言われている。
【０００４】
しかしながら、Ｈ．２６４は圧縮率を向上させるための様々な手法が盛り込まれており、エンコードやデコードに膨大な処理を必要とする。その中でもデコード処理は、動画の再生時にはリアルタイムで行う必要がある。高解像度で高画質のＨ．２６４に対し、従来から盛んに行われているＰＣ上での動画編集を実現する際には、内容確認のためのリアルタイム再生機能を実現しなければならない。そのためには、高速に処理を行うＨ．２６４デコーダが必要となる。ＰＣに搭載されるＣＰＵは進化しているものの、動作周波数やバス速度をさらに高速化するのは困難であるため、近年ＣＰＵのマルチコア化が進んでいる。マルチＣＰＵの能力を十分に発揮するためには、並列処理を行うプログラミングが必要である。
【０００５】
以上のことから、高解像度で高画質のＨ．２６４をＰＣ上リアルタイムで再生するには、並列処理を行うデコーダが必要不可欠である。特許文献１のように、ＭＰＥＧ−２の並列処理による高速化手法は存在するが、同一の方法ではＨ．２６４のデコードはできない。その理由としては、以下のものが挙げられる。
【０００６】
（１）  ＭＰＥＧ−２と異なり、Ｈ．２６４には同一スライス内の既に復号されたＹまたはＣｂまたはＣｒ成分を使用して対象ブロック内の予測成分を生成する「画面内予測」がある。
【０００７】
（２）  画面内予測を行う場合には周辺ブロックの復号状況を知る必要があるが、画面内予測を行う度に復号状況を確認するオーバーヘッドが大きく現実的ではない。
【０００８】
以上の要因により、同一スライス内の異なるマクロブロックを並列にデコードすることはできない。スライス単位での並列処理は可能であるが、１ピクチャが１スライスで構成される場合には有効ではない。
【特許文献１】特開平１０−５６６４１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
発明が解決しようとする課題は、１スライス内での並列処理を実現し、高速に動作するＨ．２６４復号装置を実現することである。
【課題を解決するための手段】
【００１０】
本発明のＨ．２６４復号装置は、１つのスライスに対して１つのマクロブロック情報解析部とマクロブロック情報格納バッファと復号処理部とＹ、Ｃｂ、Ｃｒ成分格納バッファと出力順序制御部とフレームバッファを有し、復号処理部には複数の部分復号部を有し、各部分復号部は復号制御部とインターマクロブロック復号部とイントラマクロブロック復号部を有しており、１スライスの復号処理を並列に行うことを最大の特徴とする。
【発明の効果】
【００１１】
１スライス内での並列処理を可能にすることで、処理能力が向上し高速な復号処理が実現できる。
【発明を実施するための最良の形態】
【００１２】
（実施の形態１）
１スライスの復号を並列に処理する最小の構成で復号処理の高速化を実現する方法を以下に示す。図１は本発明のＨ．２６４復号装置の全体構成の概略である。図１は例として、１ピクチャが１スライスで構成されているＨ．２６４ビデオデータストリームを入力としているが、１ピクチャが複数のスライスで構成されている場合にも、図１の構成を並列に配置することでスライス単位での並列化も可能である。ここでは、説明の簡略化のため１ピクチャが１スライスで構成されているＨ．２６４ビデオデータストリームを入力する場合について説明する。
【００１３】
入力するＨ．２６４ビデオデータストリームは図３に示すような基本構成をとる。Ｈ．２６４ビデオデータストリームはＧＯＰの集まりであり、ＧＯＰはＩＤＲ  Ｉピクチャ（またはＩピクチャ）、Ｐピクチャ、Ｂピクチャの集まりであり、それぞれのピクチャはＮＡＬユニットという単位で分割された各種データの集まりであり、ＮＡＬユニットの１種であるスライスデータに符号化された映像に関する情報が格納されている。この内、スライスデータに相当する部分をマクロブロック解析部１０により、図４に示すように、マクロブロック毎にマクロブロック情報格納バッファ１１に格納する。マクロブロックの種別は大きくイントラマクロブロックとインターマクロブロックの２つのパターンに分類される。
【００１４】
イントラマクロブロック情報には、画面内予測モード、逆量子化係数、及び逆整数アダマール変換係数の情報がある。ここで、画面内予測モードの情報はイントラマクロブロックにのみ存在する画面内予測をするための情報である。図４に示すように、既に解析が完了し、情報が取得された周辺マクロブロックからの予測値および対象マクロブロックで取得される差分値から画面内予測モードを作成する。
【００１５】
インターマクロブロック情報には、モーションベクトル、逆量子化係数、及び逆整数アダマール変換係数の情報がある。ここで、モーションベクトルの情報はインターマクロブロックにのみ存在する動き補償をするための情報である。図４に示すように、既に解析が完了し、情報が取得された周辺マクロブロックからの予測値および対象マクロブロックで取得される差分値からモーションベクトルを作成する。また、対象マクロブロックの逆量子化係数の情報は、直前のマクロブロックの逆量子化係数との差分を取得することによって作成される。さらに、マクロブロック解析部では逆整数アダマール変換係数を取得するまでに留める。
【００１６】
図３のピクチャ種別毎に含まれるマクロブロック種別は以下のとおりである。
【００１７】
・  ＩＤＲ  Ｉ  ピクチャまたはＩピクチャ
−イントラマクロブロックのみ
・  Ｐピクチャ
−イントラマクロブロック
−インターマクロブロック
・  Ｂピクチャ
−イントラマクロブロック
−インターマクロブロック
なお、一般的にＰピクチャおよびＢピクチャ内に存在するイントラマクロブロックの数は、インターマクロブロックの数に比べて少ない傾向がある。
【００１８】
復号処理部１２では、マクロブロック解析部１０で得られた情報を基に、復号処理を行う。復号処理の内容としては、以下のようになる。
イントラマクロブロック復号処理（図５）
−画面内予測処理
−逆量子化
−逆整数アダマール変換
−画面内予測結果と逆整数アダマール変換結果の加算
・インターマクロブロック復号処理（図６）
−動き補償処理
−逆量子化
−逆整数アダマール変換
−動き補償結果と逆整数アダマール変換結果の加算
画面内予測処理は、図５に示すように、既に復号された周辺の成分を用いて予測モードに従い予測対象の成分を算出する。即ち、予測対象の周辺成分が復号されていることが画面内予測処理を行う必要条件となる。
【００１９】
一方、動き補償処理は、図６に示すように、既に復号済の異なるフレームの成分を用いて、予測対象の成分を算出する。即ち、予測対象の周辺成分が復号されている必要性はなく、単独で復号処理が可能である。
【００２０】
以上の点に着目し、復号処理部１２での並列処理を実現する。
【００２１】
復号処理部１２は複数の部分復号部を持ち、それぞれが並列に復号処理およびＹＣｂＣｒ成分格納バッファ１３への復号結果の格納を行う。部分復号部は、インターマクロブロック復号部とイントラマクロブロック復号部と復号制御部を持ち、復号制御部は以下の内容で復号するマクロブロックの順序を制御する。
【００２２】
図７の部分復号処理部［２］に示すように、割り当てられたマクロブロックの先頭から順にマクロブロックを復号処理するが、同部分復号部で１ライン全てがインターマクロブロック復号部によって復号されるまでは、画面内予測に必要な周辺の成分が復号されていることが保証されないのでイントラマクロブロック情報は復号処理せずに読み飛ばし、インターマクロブロックのみを先行して復号処理する。１ライン全てがインターマクロブロック復号部によって復号された後に出現するイントラマクロブロック情報は、画面内予測処理に必要な周辺の復号済成分が揃っていることが保証されるため、イントラマクロブロック復号部で復号する。各部分復号処理部は割り当てられたマクロブロックの最下段の復号処理が完了した時点で下段にある部分復号部に処理完了通知を行う。従って、図８に示すように、部分復号処理部［２］では、上段の部分復号処理部［１］からの処理完了通知を受け取った際には、未復号のイントラマクロブロック情報に相当する成分の周辺は、画面内予測処理に必要な周辺の成分が全て揃っている。
【００２３】
各部分復号処理部は上段からの処理完了通知を受け取ってから、未復号のイントラマクロブロックの復号処理を開始する。また、最上段に配置された部分復号処理部［１］には、復号処理を開始する際に処理完了通知を発行しておくことにより、先頭の部分復号処理部はイントラマクロブロックを漏れなく復号できる。この一連の処理を各部分復号部が行うことにより、復号処理の並列化が可能となる。全ての部分復号部での処理が完了すると、出力順序制御部１４は適切な表示順序でＹＣｂＣｒ成分格納バッファ１３或いはフレームバッファ１５のフレームを出力する。
【００２４】
出力順序制御部１４は出力カウンタを持ち、出力カウンタと図３におけるＨ．２６４ビデオデータストリーム内のスライスヘッダから得られる出力順序が一致する場合は、ＹＣｂＣｒ成分格納バッファ１３を即座に出力する。一致しない場合は、フレームバッファ１５内から一致するフレームを取り出して出力する。また、Ｈ．２６４ビデオデータストリーム内のＮＡＬユニットに記述される被参照ピクチャＩＤを確認し、ＹＣｂＣｒ成分格納バッファ１３に格納されているフレームが次以降のフレームを復号する際の動き補償に使用されることを示す被参照フレームの場合は、フレームバッファ１５に格納する。
【００２５】
以上のように、同一スライス内の異なるインターマクロブロックの復号処理を先行して並列処理し、イントラマクロブロックを後で復号処理することで、復号処理の高速化を実現することができる。
【００２６】
（実施の形態２）
図２はＹ、Ｃｂ、Ｃｒ成分を独立して処理することでさらなる並列処理化が可能であることを示している。Ｙ部分復号部１２Ｘ１（Ｘ  ＝  １，  ２，  ．．．，  Ｎ）は前述の部分復号部と同一の構成を持つが、Ｙ成分のみを復号する点が異なる。Ｃｂ部分復号部１２Ｘ２およびＣｒ部分復号部１２Ｘ２も同様にＣｂ成分、およびＣｒ成分のみを復号する。
図２は一例であり、全ての成分を並列にする必要はない。図２のような構成にすることで、互いに相関のないＹ成分、Ｃｂ成分、Ｃｒ成分を並列に処理することが可能となり、図１に示した構成よりさらに復号処理の高速化を実現することができる。
【産業上の利用可能性】
【００２７】
Ｈ．２６４の復号装置として使用することが出来る。
【図面の簡単な説明】
【００２８】
【図１】本発明の実施の形態１における、Ｈ．２６４復号装置の全体構成を示した説明図
【図２】本発明の実施の形態２における、成分毎の並列処理を示した説明図
【図３】Ｈ．２６４ビデオストリームの構成の一例を示した説明図
【図４】マクロブロック解析結果のバッファへの格納を示した説明図
【図５】イントラマクロブロック復号装置の構成を示した説明図
【図６】インターマクロブロック復号装置の構成を示した説明図
【図７】部分復号処理部での処理順序を示した説明図
【図８】部分復号処理部でのイントラマクロブロック復号時の復号状況を示した説明図
【符号の説明】
【００２９】
１０    マクロブロック解析処理部
１１    マクロブロック情報格納バッファ
１１１    マクロブロック情報［１］
１１Ｎ    マクロブロック情報［Ｎ］
１２    復号処理部
１２１    部分復号部［１］
１２Ｎ    部分復号部［Ｎ］
１２１１    Ｙ成分部分復号部［１］
１２Ｎ１    Ｙ成分部分復号部［Ｎ］
１２１２    Ｃｂ成分部分復号部［１］
１２Ｎ２    Ｃｂ成分部分復号部［Ｎ］
１２１３    Ｃｒ成分部分復号部［１］
１２Ｎ３    Ｃｒ成分部分復号部［Ｎ］
１３    ＹＣｂＣｒ成分格納バッファ
１４    出力順序制御部
１５    フレームバッファ
【図１】
0004779735.tif 000002
【図２】
0004779735.tif 000003
【図３】
0004779735.tif 000004
【図４】
0004779735.tif 000005
【図５】
0004779735.tif 000006
【図６】
0004779735.tif 000007
【図７】
0004779735.tif 000008
【図８】
0004779735.tif 000009