(57)【要約】【課題】視覚的な違和感を生じさせないように、デコードされた画像の表示間隔の時間的均一性を保持したまま、デコード処理を省略する。【解決手段】ビデオ再生アプリケーションプログラム２０１は、圧縮符号化された動画像ストリームに含まれる符号化ピクチャをデコードするデコード実行モジュール２１３と、符号化ピクチャが非参照ピクチャであり、かつ動画像ストリームにおける符号化画像の並びに応じてデコード処理を省略する候補として決定された省略候補ピクチャであると判別された場合に、デコード実行モジュール２１３によるデコードを省略させるデコード制御モジュール２１２と、デコード制御モジュール２１２によりデコードされた画像を出力するか否かを、動画像ストリームにおける符号化画像の並びに応じて決定された省略候補ピクチャとならない符号化ピクチャに対するデコードされたピクチャを選択する周期的な規則に従って決定する出力ピクチャ決定モジュール２１４とを含む。【選択図】      図３
2009182891.tif 000002
【特許請求の範囲】
【請求項１】
圧縮符号化された動画像ストリームに含まれる符号化画像をデコードするデコード実行手段と、
前記動画像ストリームにおける符号化画像の出力順で周期的となるように、前記デコード実行手段によりデコードされた画像を出力する画像出力手段と、
前記符号化画像が他の画像から参照されていない非参照画像であると共に前記周期上にない、デコード処理を省略する候補とする省略候補画像であると判別される場合に、前記デコード実行手段によるデコードを省略させるデコード制御手段と
を具備することを特徴とする情報処理装置。
【請求項２】
前記デコード制御手段は、前記動画像ストリームにおける符号化画像の並びにおいて非参照画像ではない画像が周期３で現れる場合に、前記非参照画像ではない画像に続く２つの第１の符号化画像と第２の符号化画像のうち、前記非参照画像ではない画像が現れる毎に前記第１の符号化画像と前記第２の符号化画像を交互に省略候補画像であると判別し、
前記画像出力手段は、前記動画像ストリームの符号化画像の並びを表示順に替えた並びにおいて、１つおきに符号化画像に対する前記デコード実行手段によりデコードされた画像を出力することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記デコード制御手段は、前記デコード実行手段により最初にデコードの対象となった符号化画像を記憶し、
前記画像出力手段は、前記デコード制御手段により記憶された前記符号化画像を基準として、前記デコード実行手段によりデコードされた画像を基準として画像を出力することを特徴とする請求項２記載の情報処理装置。
【請求項４】
負荷を検出する負荷検出手段をさらに具備し、
前記デコード制御手段は、前記負荷検出手段によって所定の基準値よりも高負荷状態にあると判別された場合に、前記デコード実行手段によるデコードを省略させることを特徴とする請求項３記載の情報処理装置。
【請求項５】
前記動画像ストリームに対してフレームレートを下げた動画像への変換の指示を入力する入力手段と、
前記動画像ストリームに対して前記デコード実行手段によりデコードされた画像を記憶させる画像記憶手段とをさらに具備し、
前記デコード制御手段は、前記入力手段により入力された指示に応じて、前記記憶手段に記憶された前記動画像ストリームに対する前記デコード実行手段によるデコードを省略させることを特徴とする請求項３記載の情報処理装置。
【請求項６】
コンピュータを、
圧縮符号化された動画像ストリームに含まれる符号化画像をデコードするデコード実行手段と、
前記動画像ストリームにおける符号化画像の出力順で周期的となるように、前記デコード実行手段によりデコードされた画像を出力するピクチャ出力手段と、
前記符号化画像が他の画像から参照されていない非参照画像であると共に前記周期上にない、デコード処理を省略する候補とする省略候補画像であると判別される場合に、前記デコード実行手段によるデコードを省略させるデコード制御手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パーソナルコンピュータ等の情報処理装置および同装置で用いられる動画像データのデコード用のプログラムに関する。
【背景技術】
【０００２】
近年、ＤＶＤ（Digital Versatile Disc）プレーヤやテレビジョン装置のようなオーディオ・ビデオ（ＡＶ）機器と同様のＡＶ機能を備えたパーソナルコンピュータが普及し始めている。この種のパーソナルコンピュータでは、圧縮符号化（エンコード）された動画像データをソフトウェアによりデコードするソフトウェアデコーダが用いられている。このソフトウェアデコーダを使用することにより、専用のハードウェアを別途設けることなく、圧縮符号化された動画像データをプロセッサ（ＣＰＵ）によってデコードすることが可能になる。
【０００３】
また、最近では、次世代の動画像圧縮符号化技術として、Ｈ．２６４／ＡＶＣ（Advanced Video Coding）規格が注目されている。このＨ．２６４／ＡＶＣ規格は、ＭＰＥＧ２やＭＰＥＧ４のような従来の圧縮符号化技術よりも高能率の圧縮符号化技術である。このため、Ｈ．２６４／ＡＶＣ規格に対応するエンコード処理およびデコード処理の各々においては、ＭＰＥＧ２やＭＰＥＧ４のような従来の圧縮符号化技術よりも多くの処理量が必要とされる。
【０００４】
従って、Ｈ．２６４／ＡＶＣ規格で圧縮符号化された動画像データをソフトウェアによってデコードするように設計されたパーソナルコンピュータにおいては、システムの負荷が増大すると、デコード処理自体に遅れが生じ、これによってスムーズな動画再生を実行できなくなる危険がある。
【０００５】
例えば特許文献１に記載の情報処理装置では、装置の負荷を検出し、負荷が所定の基準値よりも大きい場合には、動画像ストリームに含まれる符号化画像群の中から他の画像から参照されていない非参照画像を検出し、非参照画像に対するデコード処理をスキップすることでデコード処理に要する負荷を軽減し、動画像ストリームのデコードをスムーズに実行することを可能にしている。
【特許文献１】特開２００６−１０１４０５号公報（段落［００５４］など）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載された情報処理装置では、負荷が所定の基準値よりも大きい場合に、対象画像が非参照画像（ピクチャ）であればデコード処理をスキップしている。この場合、動画ストリームにおいて非参照画像が時間的に均一に並んでいるわけではないため、単に非参照画像についてデコード処理をスキップすると、出力される画像の表示間隔が不均等になってしまう。すなわち、再生される動画像に視覚的な違和感が生じてしまう。
【０００７】
本発明は上述の事情を考慮してなされたものであり、視覚的な違和感を生じさせないように、デコードされた画像の表示間隔の時間的均一性を保持したまま、一部の画像に対するデコード処理を省略することが可能な情報処理装置およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述の課題を解決するため、本発明は、圧縮符号化された動画像ストリームに含まれる符号化画像をデコードするデコード実行手段と、前記動画像ストリームにおける符号化画像の出力順で周期的となるように、前記デコード実行手段によりデコードされた画像を出力するピクチャ出力手段と、前記符号化画像が他の画像から参照されていない非参照画像であると共に前記周期上にない、デコード処理を省略する候補とする省略候補画像であると判別される場合に、前記デコード実行手段によるデコードを省略させるデコード制御手段とを具備したことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、視覚的な違和感を生じさせないように、デコードされた画像の表示間隔の時間的均一性を保持したまま、一部の画像に対するデコード処理を省略することが可能となる。
【発明を実施するための最良の形態】
【００１０】
以下、図面を参照して、本発明の実施形態を説明する。  
まず、図１および図２を参照して、本発明の一実施形態に係る情報処理装置の構成について説明する。この情報処理装置は、例えば、ノートブック型パーソナルコンピュータ１０として実現されている。
【００１１】
図１はノートブック型パーソナルコンピュータ１０のディスプレイユニットを開いた状態における正面図である。本コンピュータ１０は、コンピュータ本体１１と、ディスプレイユニット１２とから構成されている。ディスプレイユニット１２にはＬＣＤ（Liquid Crystal Display）１７から構成される表示装置が組み込まれており、そのＬＣＤ１７の表示画面はディスプレイユニット１２のほぼ中央に位置されている。
【００１２】
ディスプレイユニット１２は、コンピュータ本体１１に対して開放位置と閉塞位置との間を回動自在に取り付けられている。コンピュータ本体１１は薄い箱形の筐体を有しており、その上面にはキーボード１３、本コンピュータ１を電源オン／オフするためのパワーボタン１４、入力操作パネル１５、およびタッチパッド１６などが配置されている。
【００１３】
入力操作パネル１５は、押されたボタンに対応するイベントを入力する入力装置であり、複数の機能をそれぞれ起動するための複数のボタンを備えている。これらボタン群には、ＴＶ起動ボタン１５Ａ、ＤＶＤ（Digital Versatile Disc）起動ボタン１５Ｂも含まれている。ＴＶ起動ボタン１５Ａは、デジタルＴＶ放送番組のような放送番組データの再生及び記録を行うためのＴＶ機能を起動するためのボタンである。ＴＶ起動ボタン１５Ａがユーザによって押下された時、ＴＶ機能を実行するためのアプリケーションプログラムが自動的に起動される。ＤＶＤ起動ボタン１５Ｂは、ＤＶＤに記録されたビデオコンテンツを再生するためのボタンである。ＤＶＤ起動ボタン１５Ｂがユーザによって押下された時、ビデオコンテンツを再生するためのアプリケーションプログラムが自動的に起動される。
【００１４】
次に、図２を参照して、本コンピュータ１０のシステム構成について説明する。
【００１５】
本コンピュータ１０は、図２に示されているように、ＣＰＵ１１１、ノースブリッジ１１２、主メモリ１１３、グラフィクスコントローラ１１４、サウスブリッジ１１９、ＢＩＯＳ−ＲＯＭ１２０、ハードディスクドライブ（ＨＤＤ）１２１、光ディスクドライブ（ＯＤＤ）１２２、デジタルＴＶ放送チューナ１２３、エンベデッドコントローラ／キーボードコントローラＩＣ（ＥＣ／ＫＢＣ）１２４、およびネットワークコントローラ１２５等を備えている。
【００１６】
ＣＰＵ１１１は本コンピュータ１０の動作を制御するために設けられたプロセッサであり、ハードディスクドライブ（ＨＤＤ）１２１から主メモリ１１３にロードされる、オペレーティングシステム（ＯＳ）２００、およびビデオ再生アプリケーションプログラム２０１のような各種アプリケーションプログラムを実行する。
【００１７】
ビデオ再生アプリケーションプログラム２０１は、圧縮符号化（エンコード）された動画像データをデコードおよび再生するためのソフトウェアである。このビデオ再生アプリケーションプログラム２０１は、Ｈ．２６４／ＡＶＣ規格に対応するソフトウェアデコーダである。ビデオ再生アプリケーションプログラム２０１は、Ｈ．２６４／ＡＶＣ規格で定義された符号化方式で圧縮符号化されている動画像ストリーム（例えば、デジタルＴＶ放送チューナ１２３によって受信されたデジタルＴＶ放送番組、光ディスクドライブ（ＯＤＤ）１２２から読み出されるＨＤ（High Definition）規格のビデオコンテンツ、など）をデコードするための機能を有している。
【００１８】
また、ＣＰＵ１１１は、ＢＩＯＳ−ＲＯＭ１２０に格納されたシステムＢＩＯＳ（Basic Input Output System）も実行する。システムＢＩＯＳはハードウェア制御のためのプログラムである。
【００１９】
ノースブリッジ１１２はＣＰＵ１１１のローカルバスとサウスブリッジ１１９との間を接続するブリッジデバイスである。ノースブリッジ１１２には、主メモリ１１３をアクセス制御するメモリコントローラも内蔵されている。また、ノースブリッジ１１２は、ＡＧＰ（Accelerated Graphics Port）バスなどを介してグラフィクスコントローラ１１４との通信を実行する機能も有している。
【００２０】
グラフィクスコントローラ１１４は本コンピュータ１０のディスプレイモニタとして使用されるＬＣＤ１７を制御する表示コントローラである。このグラフィクスコントローラ１１４はビデオメモリ（ＶＲＡＭ）１１４Ａに書き込まれた画像データからＬＣＤ１７に送出すべき表示信号を生成する。
【００２１】
サウスブリッジ１１９は、ＬＰＣ（Low Pin Count）バス上の各デバイス、およびＰＣＩ（Peripheral Component Interconnect）バス上の各デバイスを制御する。また、サウスブリッジ１１９は、ＨＤＤ１２１、ＯＤＤ１２２を制御するためのＩＤＥ（Integrated Drive Electronics）コントローラを内蔵している。さらに、サウスブリッジ１１９は、デジタルＴＶ放送チューナ１２３を制御する機能、およびＢＩＯＳ−ＲＯＭ１２０をアクセス制御するための機能も有している。
【００２２】
ＨＤＤ１２１は、各種ソフトウェア及びデータを格納する記憶装置である。ＨＤＤ１２１には、例えば、デジタルＴＶ放送チューナ１２３によって受信されたデジタルＴＶ放送番組の動画像ストリーム（Ｈ．２６４／ＡＶＣ規格で定義された符号化方式で圧縮符号化されている）を記憶させることができる。
【００２３】
光ディスクドライブ（ＯＤＤ）１２３は、ビデオコンテンツが格納されたＤＶＤなどの記憶メディアを駆動するためのドライブユニットである。デジタルＴＶ放送チューナ１２３は、デジタルＴＶ放送番組のような放送番組データを外部から受信するための受信装置である。
【００２４】
エンベデッドコントローラ／キーボードコントローラＩＣ（ＥＣ／ＫＢＣ）１２４は、電力管理のためのエンベデッドコントローラと、キーボード（ＫＢ）１３およびタッチパッド１６を制御するためのキーボードコントローラとが集積された１チップマイクロコンピュータである。このエンベデッドコントローラ／キーボードコントローラＩＣ（ＥＣ／ＫＢＣ）１２４は、ユーザによるパワーボタン１４の操作に応じて本コンピュータ１０をパワーオン／パワーオフする機能を有している。さらに、エンベデッドコントローラ／キーボードコントローラＩＣ（ＥＣ／ＫＢＣ）１２４は、ユーザによるＴＶ起動ボタン１５Ａ、ＤＶＤ起動ボタン１５Ｂの操作に応じて、本コンピュータ１０をパワーオンすることもできる。ネットワークコントローラ１２５は、例えばインターネットなどの外部ネットワークとの通信を実行する通信装置である。
【００２５】
図３は、ビデオ再生アプリケーションプログラム２０１の機能構成を示すブロック図である。
【００２６】
ビデオ再生アプリケーションプログラム２０１は、図３に示すように、負荷検出モジュール２１１、デコード制御モジュール２１２、デコード実行モジュール２１３、および出力ピクチャ決定モジュール２１４を備えている。
【００２７】
デコード実行モジュール２１３は、Ｈ．２６４／ＡＶＣ規格で定義されたデコード処理を実行するデコーダである。負荷検出モジュール２１１は、コンピュータ１０の負荷を検出するモジュールである。この負荷検出モジュール２１１は、例えば、オペレーティングシステム（ＯＳ）２００にコンピュータ１０の現在の負荷を問い合わせることによって、コンピュータ１０の現在の負荷量を検出する。コンピュータ１０の負荷量は、例えば、ＣＰＵ１１１の使用率に基づいて決定される。
【００２８】
また、コンピュータ１０の負荷量は、ＣＰＵ１１１の使用率とメモリ１１３の使用率との組み合わせによって決定することもできる。通常、ソフトウェアデコーダをスムーズに実行するためには、ある一定サイズ以上のメモリが必要である。システムのメモリ使用率が高くなると、ＯＳのページングにより、ソフトウェアデコーダのデコードパフォーマンスは低下する。よって、ＣＰＵ１１１の使用率とメモリ１１３の使用率との組み合わせによってコンピュータ１０の負荷量を検出することにより、コンピュータ１０の現在の負荷量がソフトウェアデコーダの実行に支障を来す負荷量（高負荷状態）であるかどうかをより精度よく判別することができる。
【００２９】
なお、コンピュータ１０の負荷量として、ＣＰＵ１１１とメモリ１１３の使用率以外について検出するようにしても良い。
【００３０】
デコード制御モジュール２１２は、負荷検出モジュール２１１によって検出されたコンピュータ１０の負荷に応じて、デコード実行モジュール２１３によって実行されるデコード処理の内容を制御する。
【００３１】
具体的には、デコード制御モジュール２１２は、コンピュータ１０の負荷量が予め決められた基準値以下である場合には、Ｈ．２６４／ＡＶＣ規格で定義されたデコード処理がＣＰＵ１１１によって実行されるように、デコード実行モジュール２１３によって実行すべきデコード処理の内容を制御する。一方、コンピュータ１０の負荷量が基準値よりも大きい場合には（高負荷状態）、デコード制御モジュール２１２は、後述するような、Ｈ．２６４／ＡＶＣ規格で定義されたデコード処理の一部が省略された処理に置換されるように、デコード実行モジュール２１３によって実行すべきデコード処理の内容を制御する。
【００３２】
ビデオ再生アプリケーションプログラム２０１によってデコードされた動画像データは、表示ドライバ２０２を介してグラフィクスコントローラ１１４のビデオメモリ１１４Ａに順次書き込まれる。これにより、デコードされた動画像データはＬＣＤ１７に表示される。表示ドライバ２０２はグラフィクスコントローラ１１４を制御するためのソフトウェアである。
【００３３】
なお、デコード制御モジュール２１２は、ＯＳ２００を通じて、ＨＤＤ１２１に記憶された動画像ストリームに対してフレームレートを下げた動画像への変換の指示を入力し、この入力された指示に応じて、動画像ストリームに対してデコード処理の一部が省略または簡略された処理に置換されるようにデコード処理の内容を制御することができる。例えば、デジタルＴＶ放送チューナ１２３によって受信されたデジタルＴＶ放送番組の動画像ストリームを携帯電話機などの表示機能が低位の情報処理装置において視聴するための動画像ストリームに変換する場合に、ユーザからの指示に応じて実行される。デコード制御モジュール２１２は、ＨＤＤ１２１に記憶された動画像ストリームに対して、デコード処理の一部を省略したデコードを実行することでフレームレートを下げた動画像に変換する。デコード制御モジュール２１２は、デコードされた動画像を例えばＨＤＤ１２１に記憶させる。このＨＤＤ１２１に記憶された動画像に対してエンコード処理を実行することで、例えば携帯電話機用の動画像ストリームを生成することができる。
【００３４】
次に、図４を参照して、ビデオ再生アプリケーションプログラム２０１によって実現されるソフトウェアデコーダの機能構成を説明する。
【００３５】
ビデオ再生アプリケーションプログラム２０１のデコード実行モジュール２１３は、Ｈ．２６４／ＡＶＣ規格に対応しており、図示のように、エントロピー復号部３０１、逆量子化部３０２、逆ＤＣＴ部（DCT：Discrete Cosine Transform）３０３、加算部３０４、デブロッキングフィルタ部３０５、フレームメモリ３０６、動きベクトル予測部３０７、補間予測部３０８、重み付き予測部３０９、イントラ予測部３１０、およびモード切替スイッチ部３１１を含む。Ｈ．２６４の直交変換は整数精度であり、従来のＤＣＴとは異なるが、ここではＤＣＴと称することとする。
【００３６】
各画像（ピクチャ）の符号化は、たとえば１６ｘ１６画素のマクロブロック単位で実行される。各マクロブロックごとに、フレーム内符号化モード（イントラ符号化モード）および動き補償フレーム間予測符号化モード（インター符号化モード）のいずれか一方が選択される。
【００３７】
動き補償フレーム間予測符号化モードにおいては、既に符号化された画像（ピクチャ）からの動きを推定することによって、符号化対象画像に対応する動き補償フレーム間予測信号が定められた形状単位で生成される。そして、符号化対象画像（ピクチャ）から動き補償フレーム間予測信号を引いた予測誤差信号が、直交変換（ＤＣＴ）、量子化、およびエントロピー符号化によって、符号化される。また、イントラ符号化モードにおいては、符号化対象画像（ピクチャ）から予測信号が生成され、その予測信号が直交変換（ＤＣＴ）、量子化、およびエントロピー符号化によって、符号化される。
【００３８】
Ｈ．２６４／ＡＶＣ規格に対応するコーデックは、さらに圧縮率を高めるために、
（１）従来のＭＰＥＧよりも高い画素精度（１／４画素精度）の動き補償
（２）フレーム内符号化を効率的に行うためのフレーム内予測
（３）ブロック歪みを低減するためのデブロッキングフィルタ
（４）４ｘ４画素単位の整数ＤＣＴ
（５）任意の位置の複数の画像（ピクチャ）を参照画像として使用可能なマルチリファレンスフレーム
（６）重み付け予測
等の技術を利用する。
【００３９】
以下、図４のソフトウェアデコーダの動作を説明する。
【００４０】
Ｈ．２６４／ＡＶＣ規格にしたがって圧縮符号化された動画像ストリームは、まず、エントロピー復号部３０１に入力される。圧縮符号化された動画像ストリームには、符号化された画像情報の他に、動き補償フレーム間予測符号化（インター予測符号化）で用いられた動きベクトル情報、フレーム内予測符号化（イントラ予測符号化）で用いられたフレーム内予測情報、予測モード（インター予測符号化／イントラ予測符号化）を示すモード情報等が含まれている。
【００４１】
デコード処理は、たとえば１６ｘ１６画素のマクロブロック単位で実行される。エントロピー復号部３０１は動画像ストリームに対して可変長復号のようなエントロピー復号処理を施して、動画像ストリームから、量子化ＤＣＴ係数、動きベクトル情報（動きベクトル差分情報）、フレーム内予測情報、およびモード情報を分離する。この場合、例えば、デコード対象画像（ピクチャ）内の各マクロブロックは４ｘ４画素（または８ｘ８画素）のブロック毎にエントロピー復号処理され、各ブロックは４ｘ４（または８ｘ８画素）の量子化ＤＣＴ係数に変換される。以下では、各ブロックが４ｘ４である場合を想定する。
【００４２】
動きベクトル情報は、動きベクトル予測部３０７に送られる。フレーム内予測情報は、イントラ予測部３１０に送られる。モード情報はモード切替スイッチ部３１１に送られる。
【００４３】
各デコード対象ブロックの４ｘ４の量子化ＤＣＴ係数は、逆量子化部３０２による逆量子化処理により４ｘ４のＤＣＴ係数（直交変換係数）に変換される。この４ｘ４のＤＣＴ係数は、逆ＤＣＴ部３０３による逆整数ＤＣＴ（逆直交変換）処理によって、周波数情報から、４ｘ４の画素値に変換される。この４ｘ４の画素値は、デコード対象ブロックに対応する予測誤差信号である。この予測誤差信号は加算部３０４に送られ、そこでデコード対象ブロックに対応する予測信号（動き補償フレーム間予測信号またはフレーム内予測信号）が加算され、これによってデコード対象ブロックに対応する４ｘ４の画素値がデコードされる。
【００４４】
イントラ予測モードにおいては、モード切替スイッチ部３１１によってイントラ予測部３１０が選択され、これによってイントラ予測部３１０からのフレーム内予測信号が予測誤差信号に加算される。インター予測モードにおいては、モード切替スイッチ部３１１によって重み付き予測部３０９が選択され、これによって、動きベクトル予測部３０７、補間予測部３０８、および重み付き予測部３０９によって得られる動き補償フレーム間予測信号が予測誤差信号に加算される。
【００４５】
このように、デコード対象画像に対応する予測誤差信号に予測信号（動き補償フレーム間予測信号またはフレーム内予測信号）を加算してデコード対象画像をデコードする処理が所定のブロック単位で実行される。
【００４６】
デコードされた各画像（ピクチャ）は、デブロッキングフィルタ部３０５によってデブロッキングフィルタ処理が施された後に、フレームメモリ３０６に格納される。このデブロッキングフィルタ部３０５は、例えば４ｘ４画素のブロック単位で、デコードされた各画像に対してブロックノイズを低減するためのデブロッキングフィルタ処理を施す。このデブロッキングフィルタ処理は、ブロック歪みが参照画像に含まれてしまい、これによってブロック歪みが復号画像に伝搬してしまうことを防止する。デブロッキングフィルタ処理のための処理量は膨大であり、ソフトウェアデコーダの全処理量の５０パーセントを占める場合もある。デブロッキングフィルタ処理は、ブロック歪みが生じやすい箇所に対してはより強いフィリタリングが施され、ブロック歪みが生じにくい箇所に対しては弱いフィリタリングが施されるように、適応的に実行される。デブロッキングフィルタ処理はループフィルタ処理によって実現されている。
【００４７】
そして、デブロッキングフィルタ処理された各画像は、フレームメモリ３０６から出力画像フレーム（または出力画像フィールド）として読み出される。また、動き補償フレーム間予測のための参照画像として使用されるべき各画像（参照画像）は、フレームメモリ３０６内に一定期間保持される。Ｈ．２６４／ＡＶＣ規格の動き補償フレーム間予測符号化においては、複数の画像を参照画像として使用することができる。このため、フレームメモリ３０６は、複数画像分の画像を記憶するための複数個のフレームメモリ部を備えている。
【００４８】
動きベクトル予測部３０７は、デコード対象ブロックに対応する動きベクトル差分情報に基づいて、動きベクトル情報を生成する。補間予測部３０８は、デコード対象ブロックに対応する動きベクトル情報に基づいて、参照画像内の、整数精度の画素群および１／４画素精度の予測補間画素群から、動き補償フレーム間予測信号を生成する。１／４画素精度の予測補間画素の生成においては、６タップフィルタ（入力６つ、出力１つ）が用いられる。このため、高周波成分まで考慮した高精度の予測補間処理を実行できるが、その分、動き補償には多くの処理量が必要となる。
【００４９】
重み付け予測部３０９は、動き補償フレーム間予測信号に対して重み係数を乗じる処理を動き補償ブロック単位で実行することにより、重み付けされた動き補償フレーム間予測信号を生成する。この重み付け予測は、デコード対象画像の明るさを予測する処理である。この重み付け予測処理により、フェード・イン、フェード・アウトのように、明るさが時間の経過と共に変化する画像の画質を向上することができる。しかし、その分、ソフトウェアデコードに必要な処理量は増大する。
【００５０】
イントラ予測部３１０は、デコード対象画像からその画像内に含まれるデコード対象ブロックのフレーム内予測信号を生成するものである。このイントラ予測部３１０は、上述のフレーム内予測情報に従ってフレーム内予測処理を実行して、デコード対象ブロックと同一画像内に存在する、当該デコード対象ブロックに近接する既にデコードされた他のブロック内の画素値からフレーム内予測信号を生成する。このフレーム内予測（イントラ予測）は、ブロック間の画素相関を利用して圧縮率を高める技術である。このフレーム内予測においては、フレーム内予測情報に従って、垂直予測（予測モード０）、水平予測（予測モード１）、平均値予測（予測モード３）、平面予測（予測モード４）を含む４種類の予測モードの内の一つが、フレーム内予測ブロック（例えば１６ｘ１６画素）単位で選択される。平面予測が選択される頻度は他のフレーム内予測モードよりも低いが、平面予測のために必要とされる処理量は、他のどのフレーム内予測モードの処理量よりも多い。
【００５１】
本実施形態においては、コンピュータ１０の負荷が増大しても時間制約内に動画像ストリームをリアルタイムにデコードできるようにするために、コンピュータ１０の負荷に応じて、図４で説明したデコード処理（以下、通常デコード処理と称する）と、特殊デコード処理とを選択的に実行する。特殊デコード処理は、デコードされた動画像に視覚的な違和感を生じさせないように、デコードされた画像の表示間隔の時間的均一性を保持したまま、符号化された他の画像から参照されていない非参照画像のデコード（図４のエントロピー復号以降の全ての処理））をスキップ（省略）デコード処理である。また、特殊デコード処理は、動画像ストリームのフレームレートを変換する場合に、ビデオ再生アプリケーションプログラム２０１からの指示に応じて実行することもできる。
【００５２】
以下、図５のフローチャートを参照して、ビデオ再生アプリケーションプログラム２０１によって実行されるデコード処理の手順を説明する。ここでは、コンピュータ１０の負荷に応じてデコード処理を制御する場合について説明する。
【００５３】
ビデオ再生アプリケーションプログラム２０１（負荷検出モジュール２１１）は、デコード処理の実行期間中、ＯＳ２００に対してコンピュータ１０の現在の負荷を問い合わせることによってコンピュータ１０の現在の負荷を検出する処理を定期的に繰り返し実行する（ステップＳ１０１）。このステップＳ１０１においては、ビデオ再生アプリケーションプログラム２０１は、例えば、ＣＰＵ１１１の現在の使用率（プロセッサ使用率）と主メモリ１１３の現在の使用率（メモリ使用率）とをＯＳ２００から取得する。
【００５４】
そして、ビデオ再生アプリケーションプログラム２０１は、コンピュータ１０の現在の負荷量が所定の基準値よりも大きいかどうかによって、コンピュータ１０が高負荷状態であるかどうかを判別する（ステップＳ１０２）。ステップＳ１０２においては、例えば、ビデオ再生アプリケーションプログラム２０１は、現在のプロセッサ使用率が予め決められたプロセッサ基準使用率よりも大きいか否かを判別するとともに、現在のメモリ使用率が予め決められたメモリ基準使用率よりも大きいか否かを判別する。現在のプロセッサ使用率および現在のメモリ使用率のいずれか一方でもそれに対応する基準使用率よりも大きい場合には、ビデオ再生アプリケーションプログラム２０１は、コンピュータ１０が高負荷状態であると判定する。現在のプロセッサ使用率および現在のメモリ使用率の双方がそれらに対応する基準使用率以下ならば、ビデオ再生アプリケーションプログラム２０１は、コンピュータ１０が高負荷状態ではないと判定する。
【００５５】
コンピュータ１０が高負荷状態ではないならば（ステップＳ１０２のＮＯ）、ビデオ再生アプリケーションプログラム２０１（デコード制御モジュール２１２）は、ＣＰＵ１１１に実行させるべきデコード処理として上述の通常デコード処理を選択し、これによって図４で説明した一連の処理をＣＰＵ１１１（デコード実行モジュール２１３）上で実行する（ステップＳ１０３）。
【００５６】
通常デコード処理においては、圧縮符号化された動画像ストリームに含まれる符号化画像（ピクチャ）群それぞれのデコードが順次実行される。コンピュータ１０が高負荷状態にならない限り、動画像ストリームは通常デコード処理によってデコードされる。
【００５７】
一方、コンピュータ１０が高負荷状態であるならば（ステップＳ１０２のＹＥＳ）、ビデオ再生アプリケーションプログラム２０１は、ＣＰＵ１１１に実行させるべきデコード処理として特殊デコード処理を選択し、これによって非参照画像のデコードが省略されたデコード処理をＣＰＵ１１１（デコード実行モジュール２１３、出力ピクチャ決定モジュール２１４）上で実行する（ステップＳ１０４）。
【００５８】
動画像ストリーム全てのデコードが完了するまで、上述のステップＳ１０１〜Ｓ１０４の処理は繰り返し実行される（ステップＳ１０５）。他のプログラムの実行が終了されること等によってコンピュータ１０の負荷が下がると、デコード処理は、特殊デコード処理から通常デコード処理に再び切り替えられる。
【００５９】
Ｈ．２６４の動画像ストリームのシーケンス構造は、図６のように複数のアクセスユニット（ＡＵ）から構成されている。各アクセスユニットは１つの画像に対応している。各アクセスユニットは複数のＮＡＬ（Network Abstraction Layer）ユニットから構成されている。各ＮＡＬユニットは図７に示すようにヘッダ部（ＮＡＬヘッダ）とデータ部に分かれている。ＮＡＬヘッダには、図７に示すように、ピクチャがデコード時に参照される参照ピクチャであるか、参照されない非参照ピクチャであるかを示すnal_ref_idcが含まれている。nal_ref_idc＝０は、参照ピクチャではないことを示す。
【００６０】
ＮＡＬユニットは、３２種類あり、ヘッダ部を解析することによってその種類を判別することができる。図８は、図６のＡＵの構造に具体的なＮＡＬユニットの種類を当てはめて示した図である。図８中の各ブロックはＮＡＬユニットを示しており、例えばPrimary picのブロックには、ＮＡＬヘッダ、Sliceヘッダ、Sliceデータが含まれている。Sliceヘッダには、スライスの符号化タイプを示すslice_typeが含まれている。slice_typeを参照することで、例えば符号化画像（以下、ピクチャと称する）のスライスタイプがＩピクチャ、Ｂピクチャ、Ｐピクチャなどの何れであるかを判別できる。
【００６１】
まず、本実施形態における特殊デコード処理との比較のために、単純に非参照ピクチャのデコードをスキップするデコード処理について図９に示すピクチャの並びを参照しながら説明する。
【００６２】
図９（ａ）は、動画像ストリームに含まれるピクチャのデコード順の並びを示している。ここで、デコード順とは、ビットストリーム内に格納されているピクチャの順番である。図９では、ハッチングを付していないピクチャを非参照ピクチャとして示している。図９（ａ）に示すように、動画像ストリームでは、非参照ピクチャではないＩピクチャとＰピクチャが周期３で現れ、ＩピクチャとＰピクチャのそれぞれに２つのＢピクチャ（非参照ピクチャ）が続いている。
【００６３】
ここで、単純にＩピクチャまたはＰピクチャの後に続く最初の非参照ピクチャについてデコード処理を省略するものとする。この場合、図９（ｂ）において、括弧を付したＢピクチャについてデコード処理が省略される。図９（ｂ）に示すピクチャの並びを表示順（出力順）に並べ替えると図９（ｃ）に示すようになる。ここで、表示順とは、ピクチャ間参照を行いながらデコードすることで並び替えられた、デコーダ（ビデオ再生アプリケーション）から出力されるピクチャ列の順番を示す。
【００６４】
図９（ｃ）に示す表示順では、括弧が付されたピクチャに対するデコード処理が省略されるため、矢印を付したピクチャが出力される。図９（ｃ）に示すように、表示順のピクチャ列では３枚に１枚のピクチャが抜けることになり、表示間隔が均一になるようにピクチャの省略が行われない。
【００６５】
このように、ピクチャ単位にデコード処理を省略しようとした場合、単純に非参照ピクチャに対するデコード処理を省略すると、デコード時の参照関係を破綻させずにデコード処理を実施することができる。しかし、非参照ピクチャの発生パターンが時間的に均等ではないため、出力されるピクチャの間隔が不均等となり、視覚的に違和感が生じてしまう。
【００６６】
次に、図１０に示すフローチャートを参照しながら、本実施形態における特殊デコード処理の具体的な手順を説明する。  
本実施形態における特殊デコード処理では、非参照ピクチャのデコードを省略することでデコード処理に要する負荷を軽減しながら、出力されるピクチャの表示間隔を均一にして、再生される動画像について視覚的な違和感が生じないようにする。
【００６７】
まず、特殊デコード処理において、ビデオ再生アプリケーションプログラム２０１（デコード制御モジュール２１２）は、動画像ストリームに含まれるシンタックス情報を解析して、対象ピクチャが非参照ピクチャであるか否かを判別する。すなわち、ビデオ再生アプリケーションプログラム２０１は、ＮＡＬヘッダをデコードし、ＮＡＬヘッダに含まれるnal_ref_idcを判別することで（図７参照）、対象ピクチャが非参照ピクチャであるか否かを判別する（ステップＳ２０１）。
【００６８】
次に、ビデオ再生アプリケーションプログラム２０１は、当該対象ピクチャのSliceヘッダのデコードを実行し、Sliceヘッダに含まれるslice_typeを参照することで、対象ピクチャのスライスタイプを判別する（ステップＳ２０２）。
【００６９】
ここで、デコード制御モジュール２１２は、対象ピクチャがデコード処理の省略候補のピクチャとなるかを決定する（ステップＳ２０３）。本実施形態における特殊デコード処理では、デコード制御モジュール２１２は、動画像ストリームにおける符号化画像の並びに応じて決定される規則に従い、省略候補のピクチャとなるかを決定する。本実施例では、例えば図１１（ｄ）を参照しながら後述するようにピクチャは周期的に出力されるため、この周期上のピクチャが省略候補のピクチャとならないように定められた規則で省略候補のピクチャが決定される。
【００７０】
図１１は、本実施形態における特殊デコード処理を説明するためのピクチャの並びを示す図である。図１１（ａ）は、本実施形態における特殊デコード処理の対象となる動画像ストリームに含まれるピクチャのデコード順の並びを示している（図９（ａ）と同じ）。動画像ストリームでは、非参照ピクチャではないＩピクチャとＰピクチャが周期３で現れ、ＩピクチャとＰピクチャのそれぞれに２つのＢピクチャ（非参照ピクチャ）が続いている。
【００７１】
図１１（ａ）に示すピクチャの並びの動画像ストリームについては、次のような規則に従い省略候補のピクチャとなるかを決定する。すなわち、非参照ピクチャではないピクチャ（ＩピクチャまたはＰピクチャ）に続く２つのピクチャ（並び順に第１のピクチャと第２のピクチャとする）のうち、非参照ピクチャではないピクチャが現れる毎に第１のピクチャと第２のピクチャを交互に省略候補のピクチャとして決定する。
【００７２】
ここでは、最初の参照ピクチャ（図１１（ａ）では「Ｉ０１」ピクチャ）に続く第１のピクチャと第２のピクチャについては、第２のピクチャ（「Ｂ０３」ピクチャ）を選択するものとする。従って、次は第１のピクチャ（「Ｂ０５」）、その次は第２のピクチャ（「Ｂ０９」）の順で省略候補のピクチャを決定することになる。
【００７３】
図１１（ｂ）には、図１１（ａ）に示す動画像ストリームのピクチャの並びにおいて、前述した規則に従って省略候補として決定されるピクチャに括弧を付して示している。なお、図１１（ａ）に示す動画像ストリームの例では、ＩピクチャまたはＰピクチャに続く２つのＢピクチャは何れも非参照ピクチャとしているため、省略候補として決定されるピクチャが全て非参照ピクチャとなっているが、参照ピクチャとなっているＢピクチャが省略候補として決定されても良い。
【００７４】
また、デコード制御モジュール２１２は、特殊デコード処理を開始した最初のＩピクチャ（図１１（ｂ）では「Ｉ０１」）を、後述する出力ピクチャ決定モジュール２１４において出力するピクチャを決定するための基準とするために記憶しておく。
【００７５】
次に、デコード制御モジュール２１２は、対象ピクチャが省略候補として決定され、かつ非参照ピクチャであるかを判別する（ステップＳ２０４）。ここで、対象ピクチャが省略候補であり、かつ非参照ピクチャである場合には（ステップＳ２０２のＹｅｓ）、デコード制御モジュール２１２は、デコード実行モジュール２１３による対象ピクチャに対するデコードをスキップさせる。すなわち、この対象ピクチャに対するデコード処理を省略することで負荷を軽減する。
【００７６】
一方、対象ピクチャが省略候補でない場合、あるいは非参照ピクチャでない場合には（ステップＳ２０２のＮＯ）、デコード制御モジュール２１２は、デコード実行モジュール２１３により当該ピクチャのSliceデータに対するデコードを実行させる（ステップＳ２０５）。従って、参照ピクチャが省略候補として決定されたとしても（図１１（ａ）に示す動画像ストリームにおいて参照ピクチャとするＢピクチャが含まれていても）、ステップＳ２０４における判別により対象ピクチャをデコードの対象とすることができる。
【００７７】
次に、出力ピクチャ決定モジュール２１４は、対象ピクチャに対する、デコード実行モジュール２１３によりデコードされたピクチャを出力するか否かを、対象とする動画像ストリームにおける符号化画像の並びに応じて決定された、省略候補とならない符号化ピクチャに対するデコードされたピクチャを、表示順（出力順）で周期的となる規則に従って決定する（ステップＳ２０６）。本実施形態において対象としている図１１（ａ）に示す動画像ストリームに対して決められた規則では、動画像ストリームの符号化ピクチャの並びを表示順に替えた並びにおいて、１つおきに符号化ピクチャに対するデコード実行モジュール２１３によりデコードされたピクチャを出力すると決定する。図１１（ｃ）には、動画像ストリームに含まれる符号化ピクチャの並びを表示順に替えた並びを示している。
【００７８】
出力ピクチャ決定モジュール２１４は、デコード制御モジュール２１２によって記憶された特殊デコード処理を開始した最初のＩピクチャ（図１１（ｂ）では「Ｉ０１」）を基準として、前述した規則に従って出力するピクチャを決定する。ここでは、基準とする「Ｉ０１」のピクチャを最初に出力するピクチャとして決定する。従って、図１１（ｄ）に示すピクチャの並びにおいて「Ｂ０２」「Ｂ０３」については出力対象とせず、「Ｉ０１」に対するデコード実行モジュール２１３によりデコードされたピクチャを出力するピクチャとして決定して（ステップＳ２０６のＹｅｓ）、最初に出力する（ステップＳ７０７）。
【００７９】
出力ピクチャ決定モジュール２１４は、基準とする「Ｉ０１」の後は、前述した規則に従って、図１１（ｄ）において矢印を付した「Ｉ０１」から１つおきのピクチャ「Ｂ０６」「Ｂ０８」「Ｐ０７」…を出力対象として決定していく。前述した規則に従って出力対象とするピクチャを決定していくことで、省略候補となっていない符号化ピクチャについてデコード実行モジュール２１３によりデコードされたピクチャが選択される。
【００８０】
図１１（ｄ）に示すように、出力ピクチャ決定モジュール２１４により出力対象として決定されたピクチャの間隔は均一となっているため、このピクチャにより再生される動画像では視覚的な違和感が生じない。
【００８１】
このようにして、各非参照ピクチャのデコード処理を省略することにより、ソフトウェアデコードに必要な処理量を大幅に低下させて負荷を軽減することができる。このため、ソフトウェアデコードの実行中にたとえ他のプログラムが実行されてコンピュータ１０が高負荷状態となっても、動画像データのデコードおよび再生をスムーズに継続して実行することができる。さらに、デコードされて出力されるピクチャの表示間隔を均一にすることができるため、動画像において視覚的な違和感を生じさせない。
【００８２】
なお、前述した説明では、デコード処理の実行期間中にシステムが高負荷状態となった場合に、本実施形態における特殊デコード処理を実行するものとして説明しているが、他の目的のために特殊デコード処理を実行できるようにしても良い。例えば、元の動画像ストリームのフレームレートを下げた動画像ストリームへの変換を実行する場合を想定する。具体的には、例えばデジタルＴＶ放送チューナ１２３によって受信されたデジタルＴＶ放送番組の動画像ストリームを携帯電話機などの表示機能が低位の情報処理装置において視聴するための動画像ストリームに変換する。
【００８３】
この場合、コンピュータ１０は、デジタルＴＶ放送チューナ１２３によって受信されたデジタルＴＶ放送番組の動画像ストリームをＨＤＤ１２１に記憶させる。ビデオ再生アプリケーションプログラム２０１は、例えばユーザのキーボード１３の所定キーに対する操作によって、ＨＤＤ１２１に記憶された動画像ストリームに対してフレームレートを下げた動画像への変換の指示がＯＳ２００を介して入力される。ビデオ再生アプリケーションプログラム２０１は、この指示に応じてＨＤＤ１２１に記憶された動画像ストリームを対象として前述した特殊デコード処理を実行する。コンピュータ１０は、ビデオ再生アプリケーションプログラム２０１によりデコードされたピクチャ（動画像）を例えばＨＤＤ１２１に記憶させる。特殊デコード処理を実行することで、一部のピクチャに対するデコードを省略してデコード処理の負荷を軽減しながらピクチャの枚数を削減すると共に、表示間隔を均一にしてピクチャを出力することができる。
【００８４】
コンピュータ１０は、特殊デコード処理によって生成された動画像を符号化（エンコード）して、例えば携帯電話機用の動画像ストリームを生成する。そして、コンピュータ１０は、図示せぬデバイスを介して、携帯電話機等で使用できる可搬型の記憶媒体に動画像ストリームを記憶させる。
【００８５】
このように本実施形態におけるビデオ再生アプリケーションプログラム２０１により実行される特殊デコード処理は、コンピュータ１０が高負荷の場合以外においても実行することが可能である。
【００８６】
また、前述した説明では、図１１（ａ）に示すような、ＩピクチャあるいはＰピクチャが周期３で現れ、ＩピクチャとＰピクチャの後に２つの符号化ピクチャ（Ｂピクチャ）が並ぶ動画像ストリームをデコードする場合について説明しているが、その他のピクチャの並びによる動画像ストリームを対象とすることも可能である。この場合、デコード制御モジュール２１２には、図１１（ａ）に示す動画像ストリームに対応する規則に従って実行する機能の他に、その他の動画像ストリームのピクチャの並びに応じて省略候補を決定するための規則に従う機能（アルゴリズム）が用意され、また出力ピクチャ決定モジュール２１４においても対応する規則に従う機能（アルゴリズム）が用意される。ビデオ再生アプリケーションプログラム２０１は、処理対象とする動画像ストリームに含まれる符号化ピクチャの並びに応じた規則を選択して、対象とする動画像ストリームに対応する特殊デコード処理を実行する。これにより、一部の符号化ピクチャに対するデコード処理を省略しながら、出力されるピクチャの表示間隔を均一にして視覚的な違和感が生じないようにする。
【００８７】
なお、前述した説明では、Ｈ．２６４／ＡＶＣ規格で定義された符号化方式で圧縮符号化されている動画像ストリームをデコード対象としているが、その他の符号化方式で圧縮符号化されている動画像ストリーム、例えばＭＰＥＧ２（Moving Picture Experts Group 2）による動画像ストリームを対象とすることも可能である。特に、デジタルＴＶ放送番組の動画像ストリームがＭＰＥＧ２が符号化されている場合には、前述したビデオ再生アプリケーションプログラム２０１による特殊デコード処理を利用した動画像ストリームの変換が有効である。
【００８８】
また、上述のデコード制御処理は全てコンピュータプログラムによって実現されているので、このコンピュータプログラムをコンピュータ読み取り可能な記憶媒体を通じて通常のコンピュータに導入するだけで、本実施形態と同様の効果を容易に実現することができる。
【００８９】
また、本実施形態のソフトウェアデコーダは、パーソナルコンピュータに限らず、ＰＤＡ、携帯型電話機等の他の情報処理装置にも適用することができる。
【００９０】
また、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００９１】
【図１】本発明の一実施形態に係るコンピュータの概観を示す斜視図。
【図２】図１のコンピュータのシステム構成を示すブロック図。
【図３】図１のコンピュータで用いられるビデオ再生アプリケーションプログラムの機能構成を示すブロック図。
【図４】図３のビデオ再生アプリケーションプログラムによって実現されるソフトウェアデコーダの構成を示すブロック図。
【図５】図３のビデオ再生アプリケーションプログラムによって実行されるデコード処理の手順を示すフローチャート。
【図６】図３のビデオ再生アプリケーションプログラムによってデコードされる動画像ストリームの構造を示す図。
【図７】図６の動画像ストリームのＮＡＬユニットの構造を示す図。
【図８】図６の動画像ストリームのアクセスユニットの構造を示す図。
【図９】単純に非参照ピクチャのデコードをスキップするデコード処理について説明するための図。
【図１０】本実施形態における特殊デコード処理の具体的な手順を説明するフローチャート。
【図１１】本実施形態における特殊デコード処理を説明するためのピクチャの並びを示す図。
【符号の説明】
【００９２】
1０…コンピュータ、１１１…ＣＰＵ、１１３…メモリ、１１４…グラフィクスコントローラ、２００…ＯＳ、２０１…負荷検出モジュール、２１２…デコード制御モジュール、２１３…デコード実行モジュール、２１４…出力ピクチャ決定モジュール、３０１…エントロピー復号部、３０２…逆量子化部、３０３…逆ＤＣＴ部、３０４…加算部、３０５…デブロッキングフィルタ部、３０６…フレームメモリ、３０７…動きベクトル予測部、３０８…補間予測部、３０９…重み付き予測部、３１０…イントラ予測部、３１１…モード切替スイッチ部。
【図１】
2009182891.tif 000003
【図２】
2009182891.tif 000004
【図３】
2009182891.tif 000005
【図４】
2009182891.tif 000006
【図５】
2009182891.tif 000007
【図６】
2009182891.tif 000008
【図７】
2009182891.tif 000009
【図８】
2009182891.tif 000010
【図９】
2009182891.tif 000011
【図１０】
2009182891.tif 000012
【図１１】
2009182891.tif 000013