(57)【要約】【課題】  動画像復号化処理時の遅延発生を抑制することのできる情報処理装置を提供する。【解決手段】  Ｉピクチャと、Ｐピクチャと、Ｂピクチャとを含み、Ｉピクチャとしてピクチャ・バッファのリセットを伴うＩＤＲピクチャを含み、Ｂピクチャとして、Ｂピクチャ又はＰピクチャから参照される被参照Ｐピクチャと、いずれのピクチャからも参照されない非被参照Ｐピクチャとを含む動画像符号化列を復号化する情報処理装置であって、動画像符号化列の復号化を行うＣＰＵ及びＧＰＵと、ＣＰＵでの復号化処理時にデータを一時的に記憶する主メモリと、ＧＰＵでの復号化処理時にデータを一時的に記憶するＶＲＡＭとを備え、被参照Ｂピクチャが復号化対象ピクチャとなった場合に該ピクチャをＧＰＵで復号化すると共に、ＩＤＲピクチャが復号化対象ピクチャとならない限り、それに続く少なくともＢピクチャ及びＰピクチャの復号化はＧＰＵで行う。【選択図】      図２
2008252818.tif 000002
【特許請求の範囲】
【請求項１】
他のピクチャを参照せずに復号可能な第１ピクチャと、１枚のピクチャを参照して復号可能な第２のピクチャと、複数のピクチャを参照して復号可能な第３ピクチャとを含む動画像符号化列であって、
前記第１ピクチャとして、ピクチャ・バッファのリセットを伴うリフレッシュ第１ピクチャを含み、
前記第３ピクチャとして、前記第２ピクチャ又は前記第３ピクチャから参照される被参照第３ピクチャと、いずれのピクチャからも参照されない非被参照第３ピクチャとを含む動画像符号化列を復号化する情報処理装置であって、
前記動画像符号化列の復号化をソフトウェアにより行うＣＰＵと、
前記動画像符号化列の復号化を行うＧＰＵと、
前記ＣＰＵでの復号化処理時にデータを一時的に記憶する主メモリと、
前記ＧＰＵでの復号化処理時にデータを一時的に記憶するＶＲＡＭと
を備え、
前記被参照第３ピクチャを前記ＧＰＵで復号化した後、前記リフレッシュ第１ピクチャが復号化対象ピクチャとならない限り、それに続く少なくとも前記第２ピクチャ及び前記第３ピクチャは前記ＧＰＵでの復号化すること
を特徴とする情報処理装置。
【請求項２】
前記ＧＰＵでの復号化処理に遅延が生じた場合に、少なくとも前記第１ピクチャの復号化を前記ＣＰＵで行うこと
を特徴とする請求項１記載の情報処理装置。
【請求項３】
前記リフレッシュ第１ピクチャを検出した後、前記ＧＰＵが、前記第１のピクチャ、前記第２のピクチャ、前記第３のピクチャを復号化すること
を特徴とする請求項２記載の情報処理装置。
【請求項４】
前記第２ピクチャ又は前記第３ピクチャが重み付き予測を伴う場合には、前記被参照第３ピクチャ又は前記リフレッシュ第１ピクチャが復号化対象ピクチャとならない限り、少なくとも前記第２ピクチャの復号化は前記ＣＰＵで行うこと
を特徴とする請求項１記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等である情報処理装置に関する。
【背景技術】
【０００２】
近年、例えばＨ．２６４／ＡＶＣ（以下、単にＨ．２６４とも称す）等の符号化方式で符号化された動画像符号化列の復号化処理を行うことのできる、例えばＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等である情報処理装置が増えている。しかしながら、動画像符号化列の復号化処理は計算量が大きいので全ての処理をＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）で行うと他の処理に与える影響が大きい。そこで、動画像符号化列の復号化処理を専用のＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）で行うことが考えられている（例えば、特許文献１参照）。ＣＰＵとＧＰＵの作業分担方法はいくつか考えられるが、特許文献１記載の手法ではピクチャをスライスに分割し、スライスの可変長復号及び逆量子化を含む復号化処理をＣＰＵで行い、逆離散コサイン変換を行う復号化処理をＧＰＵで実行する、即ち一つのピクチャの復号処理をＣＰＵとＧＰＵで分担する手法について記載されている。
【特許文献１】特開２００６−３１９９４４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ＧＰＵで復号化処理を行う場合、処理内容に応じてＧＰＵでの処理にも得手不得手があるため、ＧＰＵよりもＣＰＵで処理した方が早い場合もある。このような場合に対応するため、ピクチャ単位で復号化に使用するプロセッサを切り換えることが考えられる。
【０００４】
ここで、ＣＰＵでの復号化処理ではメインメモリが、ＧＰＵでの復号化処理ではＶＲＡＭ（Ｖｉｄｅｏ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）が、記憶媒体として使用されるのが一般的である。しかしながら、システムメモリとＶＲＡＭ間のデータ転送に時間がかかる場合、特に、ＶＲＡＭからシステムメモリへの転送に時間がかかる場合には、ＧＰＵで復号化したピクチャをＣＰＵ側の復号化処理で参照する場合に、復号化処理に遅延が生じる原因となる。
【０００５】
そこで本発明は、動画像復号化処理時の遅延発生を抑制することのできる情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明の情報処理装置は、他のピクチャを参照せずに復号可能な第１ピクチャと、１枚のピクチャを参照して復号可能な第２のピクチャと、複数のピクチャを参照して復号可能な第３ピクチャとを含む動画像符号化列であって、前記第１ピクチャとして、ピクチャ・バッファのリセットを伴うリフレッシュ第１ピクチャを含み、前記第３ピクチャとして、前記第２ピクチャ又は前記第３ピクチャから参照される被参照第３ピクチャと、いずれのピクチャからも参照されない非被参照第３ピクチャとを含む動画像符号化列を復号化する情報処理装置であって、前記動画像符号化列の復号化をソフトウェアにより行うＣＰＵと、前記動画像符号化列の復号化を行うＧＰＵと、前記ＣＰＵでの復号化処理時にデータを一時的に記憶する主メモリと、前記ＧＰＵでの復号化処理時にデータを一時的に記憶するＶＲＡＭとを備え、前記被参照第３ピクチャを前記ＧＰＵで復号化した後、前記リフレッシュ第１ピクチャが復号化対象ピクチャとならない限り、それに続く少なくとも前記第２ピクチャ及び前記第３ピクチャは前記ＧＰＵでの復号化することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、動画像復号化処理時の遅延発生を抑制することのできる情報処理装置を提供する。
【発明を実施するための最良の形態】
【０００８】
以下、本発明の情報処理装置について、図面を参照しながら説明する。
【実施例１】
【０００９】
まず、図１を参照しながら、本発明の情報処理装置の実施例であるコンピュータの構成について説明する。図１は、本発明の情報処理装置の実施例であるコンピュータの構成を示す図である。
【００１０】
コンピュータ１０は、図１に示すように、ＣＰＵ１１１と、ノースブリッジ１１３と、メインメモリ１１５と、グラフィカルプロセッシングユニット（ＧＰＵ）１１７と、ＶＲＡＭ１１８と、サウスブリッジ１１９と、ＢＩＯＳ−ＲＯＭ１２１と、ハードディスクドライブ（ＨＤＤ）１２３と、光ディスクドライブ（ＯＤＤ）１２５と、アナログＴＶチューナ１２７と、デジタルＴＶチューナ１２９と、エンベデッド・コントローラ／キーボードコントローラＩＣ（ＥＣ／ＫＢＣ）１３１と、ネットワークコントローラ１３３、及び無線通信デバイス１３５等を備えている。
【００１１】
ＣＰＵ１１１は、本コンピュータ１０の動作を制御するために設けられたプロセッサであり、ＨＤＤ１２３からメインメモリ１１５にロードされる、オペレーティングシステム（ＯＳ）、及び復号化プログラム２０等の各種プログラムを実行する。復号化プログラムは、例えばＨ．２６４／ＡＶＣ（以下、単にＨ．２６４とも称す）等の符号化方式で符号化された動画像符号化列を復号化するためのプログラムである。復号化プログラム２０が復号化する該動画像符号化列は、例えばＨＤ−ＤＶＤ（Ｈｉｇｈ−Ｄｅｆｉｎｉｔｉｏｎ  Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）からＯＤＤ１２５が読み込んだものや、デジタルＴＶチューナ１２９が受信したものが考えられる。
【００１２】
復号化プログラム２０は、メインメモリ１１５上をメモリとして使用しながらＣＰＵ１１１が復号化（以下デコードとも称す）する場合と、ＶＲＡＭ１１８をメモリとして使用しながらＧＰＵ１１７が復号化する場合とをピクチャ毎に切り換えて復号化処理を行う。この切り換え方については後述する。
【００１３】
また、ＣＰＵ１１１は、ＢＩＯＳ−ＲＯＭ１２１に格納されたＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）も実行する。ＢＩＯＳはハードウェア制御のためのプログラムである。
【００１４】
ノースブリッジ１１３はＣＰＵ１１１のローカルバスと、サウスブリッジ１１９との間を接続するブリッジである。ノースブリッジ１１３には、メインメモリ１１５をアクセス制御するメモリコントローラも内蔵されている。また、ノースブリッジ１１３は、ＡＧＰ（Ａｃｃｅｌｅｒａｔｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔ）バス等を解してＧＰＵ１１７との通信を実行する機能も有している。
【００１５】
ＧＰＵ１１７は本コンピュータ１０のディスプレイモニタとして使用されるＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）１２０を制御する表示コントローラである。このＧＰＵ１１７はＯＳ等によりＶＲＡＭ１１８に書き込まれた画像データをＬＣＤ１２０に表示する。また先述の通り、ＧＰＵ１１７は復号化プログラム２０による制御の下、動画像符号化列の復号化処理を行う機能も有する。
【００１６】
サウスブリッジ１１９は、ＬＰＣ（Ｌｏｗ  Ｐｉｎ  Ｃｏｕｎｔ）バス上の各デバイス、及びＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バス上の各デバイスを制御する。また、サウスブリッジ１１９は、ＨＤＤ１２３、ＯＤＤ１２５を制御するためのＩＤＥ（Ｉｎｔｅｇｒａｔｅｄ  Ｄｒｉｖｅ  Ｅｌｅｃｔｒｏｎｉｃｓ）コントローラを内蔵している。
【００１７】
さらに、サウスブリッジ１１９は、リアルタイムクロック（ＲＴＣ）１１９Ａを備えている。ＲＴＣ１１９Ａは、現在時刻（年、月、日、時、分、秒）を計時する時計モジュールとして機能する。
【００１８】
アナログＴＶチューナ１２７及びデジタルＴＶチューナ１２９は、其々放送波によって放送される放送番組データを受信する受信部である。本実施例では、アナログＴＶチューナ１２７は、アナログ放送信号によって放送される放送番組データを受信するアナログＴＶチューナから構成され、デジタルＴＶチューナ１２９は、地上波デジタル放送信号によって放送される放送番組データを受信するデジタルＴＶチューナから構成されている。
【００１９】
ＥＣ／ＫＢＣ１３１は、電力管理のためのエンベデッドコントローラと、キーボード（ＫＢ）１３２及びタッチパッド１３５を制御するためのキーボードコントローラとが集約された、１チップマイクロコンピュータである。ＥＣ／ＫＢＣ１３１は、ユーザによるパワーボタンの操作に応じて本コンピュータ１０をパワーオン／パワーオフする機能を有している。本コンピュータ１０の各コンポーネントに供給される動作電源は、本コンピュータ１０に内蔵されたバッテリ１３６、又はＡＶアダプタ１３８を介して外部から供給される外部電源から生成される。
【００２０】
ネットワークコントローラ１３３は有線ネットワークに接続するためのデバイスであり、インターネット等の外部ネットワークとの通信を実行するために使用される。また、無線通信デバイス１３５は無線ネットワークに接続するためのデバイスであり、他の無線通信デバイスとの一対一の無線通信や、インターネット等の外部ネットワークとの通信等に使用される。
【００２１】
次に、図２を参照しながら復号化プログラム２０の構成を説明する。図２は、Ｈ．２６４／ＡＶＣの規格に基づく動画像符号化列を復号化する復号化プログラム２０の構成を示す。尚先述の通り、図２に示す復号化プログラム２０は、ＣＰＵ１１１及びＧＰＵ１１７で復号化処理を行う。
【００２２】
入力端子２１１からは、動画像符号化列２５１が入力される。この動画像符号化列２５１は、可変長符号復号部２１３に出力される。動画像符号化列２５１では、出現頻度の高い情報は短い符号で、そうでない情報は長い符号で表現することにより伝送ビット数を減らす可変長符号化が施されているが、可変長符号復号部２１３は、この可変長符号化が施された動画像符号化列２５１を、量子化ＤＣＴ係数データ２５３へと復号化する。また可変長符号復号部２１３は、動画像符号化列２５１を可変長復号して得られる、動きベクトル情報や予測モード情報等の各種パラメータ情報の解析処理も行う。この解析処理により得られた各種制御信号２８１は、復号化プログラム２０の各構成に適宜与えられる。
【００２３】
可変長符号復号部２１３から出力された量子化ＤＣＴ係数データ２５３は、逆変換部２１５に入力される。逆変換部２１５は、逆量子化及び逆ＤＣＴ（Ｉｎｖｅｒｓｅ  Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）変換により予測誤差信号２５５へと復号化される。
【００２４】
逆変換部２１５で復号化された予測誤差信号２５５は、加算器２１７で予測画像信号２５７と加算され、復号化画像信号２５９として再現される。この復号化画像信号２５９は、デブロッキング・フィルタ部２１９でブロック歪みの低減が図られる。このブロック歪みの低減が図られた出力画像信号２６１は、フレームメモリ部２２１に出力／記憶され、定められた出力順に応じて出力端子２２３から出力される。
【００２５】
フレーム間予測部２２５では、制御信号２８１として得た情報から、フレームメモリ部２２１に格納されている出力画像信号の補正を行う。より具体的には、制御信号２８１として得た動きベクトルの情報を用いて動き補正すると共に、当該動き補正した予測画像信号に対し、同じく制御信号２８１として得た明るさの重み係数を用いて重み付き予測を行う。これらのフレーム間予測処理により得られたフレーム間予測信号２６３をフレーム間予測部２２５は出力する。
【００２６】
また、フレーム内予測モードで符号化されている場合には、フレーム内予測部２２７が制御信号２８１に基づいてフレーム内予測信号２６５を生成して出力する。
切換器２２９は、制御信号２８１として得られる予測モード情報に基づいて、フレーム間予測信号２６３とフレーム内予測信号２６５のいずれを予測画像信号として加算器２１７に出力するかを切り換える。
【００２７】
続いて、図３を参照しながら、Ｈ．２６４規格に準拠する、復号化プログラム２０が復号化処理を行う動画像符号化列２５１の階層構造について説明する。図３は、動画像符号化列２５１の階層構造を示す図である。
【００２８】
１つの動画像符号化列２５１は、シーケンス３０１として表現される。シーケンス３０１は２以上あっても良い。１つのシーケンス３０１は、１又は複数のアクセスユニット３０３を含む。１つのアクセスユニットは、複数のＮＡＬ（Ｎｅｔｗｏｒｋ  Ａｂｓｔｒａｃｔｉｏｎ  Ｌａｙｅｒ：ネットワーク抽象レイヤ）ユニット３０５を含む。
【００２９】
ＮＡＬユニットには、大きく分けて、ビデオ・コーディング・レイヤ（Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｌａｙｅｒ：動画像符号化処理を行うレイヤ、以下単にＶＣＬとも称す）で生成された動画像符号化データが格納されるＶＣＬ  ＮＡＬユニットと、ＳＰＳ（Ｓｅｑｕｅｎｃｅ  Ｐａｒａｍｅｔｅｒ  Ｓｅｔ）やＰＰＳ（Ｐｉｃｔｕｒｅ  Ｐａｒａｍｅｔｅｒ  Ｓｅｔ）等、各種パラメータセットを格納するための非ＶＣＬ  ＮＡＬユニットとがある。尚、ＮＡＬは、ビデオ・コーディング・レイヤと、符号化した情報を伝送・蓄積する下位レイヤとの間の層（レイヤ）であり、ＶＣＬと下位システムとを関連付けるための層である。
【００３０】
ＮＡＬユニット３０５は、１バイトのＮＡＬヘッダ３０７と、ＶＣＬで得られた情報を格納したＲＢＳＰ（Ｒａｗ  Ｂｙｔｅ  Ｓｅｑｕｅｎｃｅ  Ｐａｙｌｏａｄ：図３中、単にデータ３０９）の部分から構成されている。
【００３１】
ＮＡＬヘッダ１０７は、１ビットのｆｏｒｂｉｄｄｅｎ＿ｚｅｒｏ＿ｂｉｔ３１１（固定値「０」が入る）と、２ビットのｎａｌ＿ｒｅｆ＿ｉｄｃ３１３と、５ビットのｎａｌ＿ｕｎｉｔ＿ｔｙｐｅ３１５とから構成される。ＮＡＬユニットの種類は、ｎａｌ＿ｕｎｉｔ＿ｔｙｐｅ３１５により判別することが可能である。また、ｎａｌ＿ｒｅｆ＿ｉｄｃ３１３は、被参照ピクチャかどうかを示すフラグである。復号化プログラム２０は、当該ｎａｌ＿ｒｅｆ＿ｉｄｃ３１３を参照して、非０か否かを判断することにより、処理しているピクチャが被参照ピクチャか、非被参照ピクチャであるかを判断して、ＧＰＵ１１７で復号化処理を行うか、ＣＰＵ１１１で復号化処理を行うかを切り換える。この処理の詳細については後述する。
【００３２】
尚ここで、被参照ピクチャとは、他のピクチャでフレーム間予測を行う際に、参照画像として使用されるピクチャであるものとする。同様に、非被参照ピクチャとは、他のピクチャでフレーム間予測を行う際に、参照画像として使用されないピクチャであるものとする。
【００３３】
Ｈ．２６４コーデックはＭＰＥＧ−２等の従来のコーデックと比べて処理量が多い。そのためコンピュータ１０でＨ．２６４動画像符号列２５１をデコードする場合は、ＧＰＵ１１７を利用してデコードする方が一般的である。しかしながら、ＧＰＵ１１７での処理内容にも得手不得手があり、ＧＰＵ１１７よりもＣＰＵ１１１で処理した方が速いケースもある。本実施例では、ピクチャ単位に処理させるプロセッサを適応的に切り換えることにより、復号化処理の遅延発生を抑制する。
【００３４】
ＣＰＵ１１１とＧＰＵ１１７とを使い分ける場合、復号化するときに使用するメモリ領域について考慮する必要がある。Ｈ．２６４等の動画像符号列の復号化では、過去に復号化したピクチャを参照して復号化する場合がある。ＧＰＵ１１７で復号化する場合は、フレームメモリ部２２１として出力画像信号２６１を記憶する一時記憶媒体としてＶＲＡＭ１１８が使用される。これに対してＣＰＵ１１１で復号化する場合には、フレームメモリ部２２１として出力画像信号２６１を記憶する一時記憶媒体としてメインメモリ１１５が使用される。
【００３５】
使用するプロセッサを途中で切り換える場合、参照を必要とするピクチャを復号化するときにプロセッサが使用できるメモリ領域に参照画像が無ければならない。以下、ＣＰＵ１１１とＧＰＵ１１７との復号化処理について、図４を参照しながら説明する。
【００３６】
図４において、Ｉピクチャ、Ｐ１ピクチャ、Ｐ２ピクチャはＣＰＵ１１１で復号化され、Ｂ１ピクチャ、Ｂ２ピクチャは其々ＧＰＵ１１７で復号化されるものとする。この場合、ＣＰＵ１１１で復号化されるＩピクチャ、Ｐ１ピクチャ、Ｐ２ピクチャの復号化画像（出力画像信号２６１に対応）は其々メインメモリ１１５上に生成され、同様にＧＰＵ１１７で復号化されるＢ１ピクチャ、Ｂ２ピクチャの復号化画像は其々ＶＲＡＭ１１８上に生成されることになる。
【００３７】
このとき、例えば図４中（１）として示すように、ＣＰＵ１１１で復号化されてメインメモリ１１５上に復号化画像Ｐ１が生成され、このＰ１を参照するピクチャＰ２をＣＰＵ１１１上で復号化するケースについては特に問題は生じない。また同様に、図４中（２）として示すように、ＧＰＵ１１７で復号化されてＶＲＡＭ１１８上に復号化画像Ｂ１が生成され、このＢ１を参照するＢ２をＧＰＵ１１７上で復号化するケースについても問題は生じない。
【００３８】
この他、メインメモリ１１５とＶＲＡＭ１１８間の転送速度が無視できる程小さいシステムに於いては、復号化画像のデータを転送することにより、使用するメモリを意識することなく復号化することが可能な場合もある。
【００３９】
例えば、図４中（３）として示すように、ＧＰＵ１１７でピクチャＢ２を復号化する場合であって、ピクチャＢ２がメインメモリ１１５上にあるピクチャＰ１を参照している場合であっても、メインメモリ１１５上にあるピクチャＰ１をＶＲＡＭ１１８に転送することにより、Ｂ２をＧＰＵ１１７で復号化することが可能である。
【００４０】
しかしながら、例えばＭｉｃｒｏｓｏｆｔ社が提唱するフレームワークＤｉｒｅｃｔＸ  ＶＡ（以下ＤＸＶＡとも称す）のような環境では、メインメモリ１１５とＶＲＡＭ１１８間のデータ転送に時間がかかる場合もある。
【００４１】
例えばＤＸＶＡでは、メインメモリ１１５からＶＲＡＭ１１８への転送速度は非常に小さいが、ＶＲＡＭ１１８からメインメモリ１１５への転送速度は大きい。このようなシステムでは、図４中（４）に示すように、ＣＰＵ１１１でピクチャＰ２を復号化する場合であって、ピクチャＰ２がＶＲＡＭ１１８上にあるピクチャＢ２を参照する場合に、データ転送に時間がかかるため、復号化処理での遅延発生の原因となる。
【００４２】
つまり、このような状況では、被参照ピクチャ（Ｉ、Ｐ、被参照Ｂピクチャ）と非被参照ピクチャとで使用できるプロセッサが分かれることになる。
そこで本実施例のコンピュータ１０では、図４（４）のようなケースを回避しつつ、ＣＰＵ１１１とＧＰＵ１１７とで復号化処理を切り換える。処理の詳細は図８乃至図１０のフローチャートを参照しながら後述するが、以下概要を示す。
【００４３】
本実施例の復号化プログラム２０は、混合フラグに応じて復号化対象ピクチャの復号化を行うプロセッサを決定する。ここで混合フラグとは、復号化対象ピクチャに対して使用するプロセッサを決定するフラグであり、本実施例では３つの状態を決定するものとする。
【００４４】
混合レベル０：全てのピクチャをＧＰＵ１１７で復号化を行う
混合レベル１：ＩピクチャをＣＰＵ１１１で復号化し、Ｐ、ＢピクチャをＧＰＵ１１７で復号化する。
混合レベル２：Ｉ、ＰピクチャをＣＰＵ１１１で復号化し、ＢピクチャをＧＰＵ１１７で復号化する。
Ｈ．２６４規格では、Ｂピクチャを被参照ピクチャとすることが許可されている。従って混合レベル２の状態で復号化処理を進めている場合、途中でＢピクチャが被参照画像として使用されることがわかると、図４（４）のような状態となって遅延発生の要因となりかねない。そこで、復号化対象のピクチャが被参照Ｂピクチャである場合には、混合レベル１に移行し、今後の動画像符号化列に含まれるＢ、ＰピクチャをＧＰＵ１１７で復号化するようにする。
【００４５】
被参照ピクチャか否かは、図３で説明したように、ｎａｌ＿ｒｅｆ＿ｉｄｃ３１３が非０であることを確認すればよい。ｎａｌ＿ｒｅｆ＿ｉｄｃ３１３が非０であれば、そのピクチャは被参照ピクチャである。
【００４６】
次に、図５を参照しながら、Ｂピクチャか否かの判断方法について説明する。図３を参照しながら先述した通り、アクセス・ユニット３０３内にはＮＡＬユニット３０５が複数格納されるが、その中に、動画像符号化データが格納されるＶＣＬ  ＮＡＬユニット３０５Ａがある。このＶＣＬ  ＮＡＬユニット３０５Ａには、Ｈ．２６４における符号化の基本単位であるスライスのデータが格納される。
【００４７】
ＶＡＬ  ＮＡＬユニット３０５Ａは、スライス・ヘッダ５０１と、スライス・データ５０３とから構成される。スライス・ヘッダ５０１には、ｓｌｉｃｅ＿ｔｙｐｅ５０５が含まれ、これを参照することによりＢピクチャか否かを判断することができる。
【００４８】
図６に、ｓｌｉｃｅ＿ｔｙｐｅ５０５の取り得る値を示す。ｓｌｉｃｅ＿ｔｙｐｅ５０５は、１〜９の１０種類の値を取り得る。値０及び値５は、Ｐスライスであることを示し、Ｐスライスとは、画面内符号化、及び参照ピクチャを１枚用いた画面間予測符号化を行うスライスである。Ｐスライスは、Ｉ、Ｐの２種類のマクロブロックを含むことができる。
【００４９】
ｓｌｉｃｅ＿ｔｙｐｅ５０５が値１又は値６を取る場合は、Ｂスライスであることを示す。Ｂスライスとは、画面内符号化、及び参照ピクチャを１枚又は２枚用いた画面間予測符号化を行うスライスである。Ｂスライスは、Ｉ、Ｐ、Ｂの３種類のマクロブロックを含むことができる。
【００５０】
ｓｌｉｃｅ＿ｔｙｐｅ５０５が値２又は値７を取る場合は、Ｉスライスであることを示す。Ｉスライスとは、画面内符号化のみを行うスライスである。Ｉスライスは、マクロブロックのタイプとしてＩのみを含むことができる。
【００５１】
ｓｌｉｃｅ＿ｔｙｐｅ５０５が値３又は値８を取る場合は、ＳＰスライスであることを示す（ＳはＳｗｉｔｃｈｉｎｇの略）。ＳＰスライスとは、ストリーム切換を行うための特殊なＰスライスである。
【００５２】
ｓｌｉｃｅ＿ｔｙｐｅ５０５が値４又は値９を取る場合は、ＳＩスライスであることを示す（ＳはＳｗｉｔｃｈｉｎｇの略）。ＳＩスライスとは、ストリーム切換を行うための特殊なＩスライスである。
【００５３】
尚、ｓｌｉｃｅ＿ｔｙｐｅ５０５が値５乃至９のいずれかを取る場合には、そのスライスを含むピクチャ内の全てのスライスが同一のスライスタイプであることを示す。即ち、ｓｌｉｃｅ＿ｔｙｐｅが６である場合には、ピクチャ内の全てのスライスがＢスライスであることがわかるので、該ピクチャはＢピクチャであると判断することができる。ｓｌｉｃｅ＿ｔｙｐｅ５０５が値０〜４を取る場合には、ｓｌｉｃｅ＿ｔｙｐｅ５０５のみを参照するだけではいずれのＩ、Ｐ、Ｂのいずれのピクチャか判断することが困難である。よって、そのようなピクチャでは、混合レベル０として全てのピクチャに対してＧＰＵ１１７で復号化すればよい。
【００５４】
また、例えばＨＤ  ＤＶＤ規格のように、アクセス・ユニット・デリミタ（Ａｃｃｅｓｓ  Ｕｎｉｔ  Ｄｅｌｉｍｉｔｅｒ、以下ＡＵＤとも称す）３０５Ｂを必須とする動画像符号化列２５１である場合には、アクセス・ユニット・デリミタ３０５Ｂ内に含まれるｐｒｉｍａｒｙ＿ｐｉｃ＿ｔｙｐｅ７０１を参照することにより、ｓｌｉｃｅ＿ｔｙｐｅ５０５を確認しなくてもピクチャの種類を判断することができる。尚、アクセス・ユニット・デリミタ３０５は、アクセス・ユニット３０３の先頭を示すＮＡＬユニット３０５である。
【００５５】
続いて、図８乃至図１０を参照しながら、復号化プログラム２０による復号化処理の流れについて説明する。図８乃至図１０は、復号化プログラム２０による動画像符号化列２５１の復号化処理の流れを示すフローチャートである。
【００５６】
動画像符号化列２５１の復号化処理を開始時点では、混合レベル０に設定する（Ｓ８０１）。先述の通り混合レベル０は、Ｉ、Ｐ、Ｂの全てのピクチャをＧＰＵ１１７で復号化を行うモードである。
【００５７】
続いて、ＨＤサイズの３０ｉコンテンツか否かを判断する。これは、ＧＰＵ１１７がイントラ・マクロ・ブロックの処理が遅い場合があるからである。動画像符号化列２５１がＨＤ３０ｉコンテンツである場合には（Ｓ８０３のＹｅｓ）、ＣＰＵ１１１での復号化処理を合わせて用いる混合レベル１へ移行する（図９のＳ９０１）。
【００５８】
動画像符号化列２５１がＨＤ３０ｉコンテンツでない場合には（Ｓ８０５のＮｏ）、ＨＤサイズの２４ｐコンテンツであるか否かを判断する（Ｓ８０５）。ＧＰＵ１１７が、ＨＤ２４ｐコンテンツの復号化処理が遅い場合があるからである。ＨＤサイズの２４ｐコンテンツである場合には（Ｓ８０５のＹｅｓ）、混合レベル２へ移行する（Ｓ１００１）。
【００５９】
ＨＤ３０ｉコンテンツでもＨＤ２４ｐコンテンツでもない場合には（Ｓ８０５のＮｏ）、復号化対象ピクチャの復号化処理を混合レベルに応じて行う（Ｓ８０７）。ここでは、混合レベルが０に設定されているので、復号化対象ピクチャがＩ、Ｐ、Ｂのいずれのピクチャであっても、ＧＰＵ１１７で復号化処理を行う。
【００６０】
更に、復号化プログラム２０は、動画像符号化列２５１の全てのピクチャの復号化処理が終了したか否かを判断する（Ｓ８０９）。全ての処理が終了した場合には、復号化処理を終了する。
【００６１】
動画像符号化列２５１にまだ復号化していないピクチャがある場合には（Ｓ８０９のＮｏ）、描画の遅延が発生したか否かを判断する（Ｓ８１１）。遅延が生じていない場合には（Ｓ８１１のＮｏ）、混合レベル０のまま、復号化処理を続ける（Ｓ８０１）。一方、描画の遅延が生じた場合には、混合レベル１に設定する（Ｓ９０１）。
【００６２】
混合レベル１は先述の通り、ＩピクチャをＣＰＵ１１１で復号化し、Ｐ、ＢピクチャをＧＰＵ１１７で復号化するモードである。
混合レベル１に設定した後、復号化プログラム２０は、復号化対象ピクチャがＩＤＲ（Ｉｎｓｔａｎｔａｎｅｏｕｓ  Ｄｅｃｏｄｉｎｇ  Ｒｅｆｒｅｓｈ）ピクチャであるか否かを判断する（Ｓ９０３）。ＩＤＲピクチャとは、画像シーケンスの先頭に位置するＩピクチャである。ＩＤＲピクチャは、Ｉスライス又はＳＩスライスからなり、ＩＤＲピクチャが検出されると、フレームメモリ部２１１（ピクチャ・バッファ）の状態やフレーム番号、ピクチャの出力順序を示す情報など、ビット・ストリームを復号するために必要な状態を全てリセットされる。ＩＤＲピクチャを検出した場合には、フレームメモリ部２１１に格納された全ての動画像信号２６１が破棄されるので、参照関係は気にする必要は無い。
【００６３】
ＩＤＲピクチャを検出した場合（Ｓ９０３のＹｅｓ）、即ち復号化対象ピクチャがＩＤＲピクチャである場合には、動画像符号化列２５１の内容が変わっている可能性があるので、Ｓ８０１に戻って混合フラグの設定からやり直す。尚、ＩＤＲピクチャか否かは、ＮＡＬヘッダ３０７内のｎａｌ＿ｕｎｉｔ＿ｔｙｐｅ３１５を参照することによりわかる。ｎａｌ＿ｕｎｉｔ＿ｔｙｐｅ３１５が値５を取る場合には、復号化対象ピクチャはＩＤＲピクチャである。
【００６４】
復号化対象ピクチャがＩＤＲピクチャでない場合には（Ｓ９０３のＮｏ）、重み付き予測があるか否かを判断する（Ｓ９０５）。これは、ＧＰＵ１１７が重み付き予測について処理が遅い場合があるからである。重み付き予測がある場合には（Ｓ９０５のＹｅｓ）、混合レベル２へ移行する（Ｓ１００１）。
【００６５】
尚、重み付き予測は、フェード・インやフェード・アウト等のシーンに対して圧縮効率を高めるためのＨ．２６４の符号化方法の一つである。重み付き予測があるか否かは、ＰＰＳ（ピクチャ・パラメタ・セット：Ｐｉｃｔｕｒｅ  Ｐａｒａｍｅｔｅｒ  Ｓｅｔ）３０５Ｃ内の、ｗｅｉｇｈｔｅｄ＿ｐｒｅｄ＿ｆｒａｇ１１０１及びｗｅｉｇｈｔｅｄ＿ｂｉｐｒｅｄ＿ｉｄｃ１１０２を参照することによりわかる（図１１参照）。より詳細には、ｗｅｉｇｈｔｅｄ＿ｐｒｅｄ＿ｆｌａｇ１１０１が値１を取る場合には、Ｐ又はＳＰスライスで重み付き予測が用いられることがわかり、ｗｅｉｇｈｔｅｄ＿ｂｉｐｒｅｄ＿ｉｄｃ１１０２が値１を取る場合には、明示的（Ｅｘｐｌｉｃｉｔ）モードで重み付き予測がＢスライスに適用されることがわかる。
【００６６】
ここでＰＰＳは、３０５Ｃは、ピクチャ全体の符号化モード（可変長符号化モード、ピクチャ単位の量子化パラメータ初期値等）を示すヘッダ情報が含まれるＮＡＬユニット３０５である。
【００６７】
重み付き予測がない場合には（Ｓ９０５のＮｏ）、復号化対象ピクチャの復号化処理を混合レベルに応じて行う（Ｓ９０７）。ここでは、混合レベルが１に設定されているので、復号化対象ピクチャがＩピクチャであればＣＰＵ１１１で復号化を行い、復号化対象ピクチャがＰ又はＢピクチャである場合にはＧＰＵ１１７で復号化を行う。
【００６８】
続いて復号化プログラム２０は、動画像符号化列２５１の全てのピクチャの復号化処理が終了したか否かを判断する（Ｓ８０９）。全ての復号化処理が終了した場合には（Ｓ９０９のＹｅｓ）、復号化処理を終了する。
【００６９】
動画像符号化列２５１にまだ復号化していないピクチャがある場合には（Ｓ９０９のＮｏ）、描画の遅延が発生したか否かを判断する（Ｓ９０９）。遅延が生じていない場合には（Ｓ９０９のＮｏ）、混合レベル１のまま復号化処理を続ける（Ｓ９０１）。一方、描画の遅延が生じた場合には、混合レベル２に設定する（Ｓ１００１）。
【００７０】
混合レベル２は先述の通り、Ｉ、ＰピクチャをＣＰＵ１１１で復号化し、ＢピクチャをＧＰＵ１１７で復号化するモードである。
混合レベル２に設定した後、復号化プログラム２０は、復号化対象ピクチャがＩＤＲピクチャであるか否かを判断する（Ｓ１００３）。ＩＤＲピクチャを検出した場合には（Ｓ１００３のＹｅｓ）、動画像符号化列２５１の内容が変わっている可能性があるので、Ｓ８０１に戻って混合フラグの設定をやり直す。
【００７１】
復号化対象ピクチャがＩＤＲピクチャでない場合には（Ｓ１００３のＮｏ）、復号化対象ピクチャが被参照ピクチャか否かを判断する（Ｓ１００５）。先述の通り、被参照ピクチャであるか否かはｎａｌ＿ｒｅｆ＿ｉｄｃ３１３を検出することにより、Ｂピクチャであるか否かはｓｌｉｃｅ＿ｔｙｐｅ５０５やｐｒｉｍａｒｙ＿ｐｉｃ＿ｔｙｐｅ７０１を検出することにより判断することができる。
【００７２】
復号化対象ピクチャが被参照Ｂピクチャである場合には（Ｓ１００５のＹｅｓ）、混合レベル１に設定する（Ｓ９０１）。ＣＰＵ１１１でＰピクチャを復号化した場合に、参照ピクチャとして当該被参照Ｂピクチャを参照する可能性があり、先述の通り、ＶＲＡＭ１１８に該ピクチャが記憶されている場合に復号化の遅延が生じる要因となるからである。
【００７３】
復号化対象ピクチャが被参照Ｂピクチャでない場合、即ちＩピクチャ、Ｐピクチャ、非被参照Ｂピクチャのいずれかである場合には、混合フラグに従って復号化を行う。ここでは、混合レベルが２に設定されているので、復号化対象ピクチャがＩピクチャ又はＰピクチャであればＣＰＵ１１１で復号かを行い、復号化対象ピクチャがＢピクチャで或る場合にはＧＰＵ１１７で復号化を行う。
【００７４】
続いて復号化プログラム２０は、動画像符号化列２５１の全てのピクチャの復号化処理が終了したか否かを判断する（Ｓ１００９）。全ての復号化処理が終了した場合には（Ｓ１００９のＹｅｓ）、復号化処理を終了する。動画像符号化列２５１にまだ復号化していないピクチャがある場合には（Ｓ１００９のＮｏ）、混合レベル２のまま復号化処理を続ける（Ｓ１００１）。
【図面の簡単な説明】
【００７５】
【図１】本発明の実施例１に係るコンピュータの構成を示す図。
【図２】本発明の実施例１に係る復号化プログラムの構成を示す図。
【図３】本発明の実施例１に係るコンピュータが復号化する動画像符号化列の階層構造を示す図。
【図４】本発明の実施例１に係るコンピュータが復号化する動画像符号化列のピクチャ間の参照関係を説明するための図。
【図５】本発明の実施例１に係るコンピュータが復号化する動画像符号化列の階層構造を示す図。
【図６】本発明の実施例１に係るコンピュータが復号化する動画像符号化列のｓｌｉｃｅ＿ｔｙｐｅの種類を示す図。
【図７】本発明の実施例１に係るコンピュータが復号化する動画像符号化列の階層構造を示す図。
【図８】本発明の実施例１に係るコンピュータの復号化処理の流れを示すフローチャート。
【図９】本発明の実施例１に係るコンピュータの復号化処理の流れを示すフローチャート。
【図１０】本発明の実施例１に係るコンピュータの復号化処理の流れを示すフローチャート。
【図１１】本発明の実施例１に係るコンピュータが復号化する動画像符号化列の階層構造を示す図。
【符号の説明】
【００７６】
１０・・・コンピュータ
２０・・・復号化プログラム
１１１・・・ＣＰＵ
１１３・・・ノースブリッジ
１１５・・・メインメモリ
１１７・・・ＧＰＵ
１１８・・・ＶＲＡＭ
１１９・・・サウスブリッジ
１１９Ａ・・・ＲＴＣ
１２０・・・ＬＣＤ
１２１・・・ＢＩＯＳ−ＲＯＭ
１２３・・・ＨＤＤ
１２５・・・ＯＤＤ
１２７・・・アナログＴＶチューナ
１２９・・・デジタルＴＶチューナ
１３１・・・ＥＣ／ＫＢＣ
１３２・・・キーボード
１３３・・ネットワークコントローラ
１３４・・・タッチパッド
１３５・・・無線通信デバイス
１３６・・・バッテリ
１３８・・・ＡＣアダプタ
【図１】
2008252818.tif 000003
【図２】
2008252818.tif 000004
【図３】
2008252818.tif 000005
【図４】
2008252818.tif 000006
【図５】
2008252818.tif 000007
【図６】
2008252818.tif 000008
【図７】
2008252818.tif 000009
【図８】
2008252818.tif 000010
【図９】
2008252818.tif 000011
【図１０】
2008252818.tif 000012
【図１１】
2008252818.tif 000013