(57)【特許請求の範囲】
【請求項１】
各画像をマトリックス状に分割して生成されるｎ×ｎ画素のマクロブロック単位に符号化された動画像ストリームを入力する入力手段と、
前記マクロブロックを行方向に並べて構成されるスライス単位に、各スライスの先頭のマクロブロックの各画像内における水平位置および垂直位置を示すアドレスと、各スライスに含まれるマクロブロック数とを引数として受け取って、前記入力手段が入力した動画像ストリームを復号する復号手段と、
前記入力手段が入力した動画像ストリームのヘッダ部に含まれる各画像の水平方向の画素数の情報を取得し、この水平方向の画素数の情報から各画像の行方向のマクロブロック数を算出する第１の解析手段と、
前記入力手段が入力した動画像ストリーム中の各スライスのヘッダ部に含まれる各スライスの各画像内における垂直位置の情報を取得する第２の解析手段と、
各スライスの先頭のマクロブロックの各画像内における水平位置として各画像の水平方向の開始位置を示し、かつ、各スライスの先頭のマクロブロックの各画像内における垂直位置として前記第２の解析手段が取得した垂直位置を示すアドレスと、各スライスに含まれるマクロブロック数として前記第１の解析手段が算出したマクロブロック数とを引数として与えて、前記動画像ストリームの復号を前記復号手段にスライス単位に実行させる復号制御手段と、
を具備することを特徴とする情報処理装置。
【請求項２】
前記入力手段が入力した動画像ストリーム中の各マクロブロックの情報を各画像の行の先頭のマクロブロックからすべて辿って、各スライスの先頭のマクロブロックの各画像内における水平位置と、各スライスに含まれるマクロブロック数とを取得する第３の解析手段をさらに具備し、
前記復号制御手段は、あるスライスについて、引数の不整合を原因として前記復号手段が前記動画像ストリームの復号をエラー終了した場合、各スライスの先頭のマクロブロックの各画像内における水平位置と、各スライスに含まれるマクロブロック数とを前記第３の解析手段により取得し、この値を前記第２の解析手段が取得した垂直位置と共に引数として与えて、当該エラー終了したスライスについて、前記動画像ストリームの復号を前記復号手段に再実行させる手段を含む、
ことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記復号制御手段は、前記エラー終了したスライスの後続スライスであって、前記エラー終了したスライスと各画面上で同一行のスライスについては、各スライスの先頭のマクロブロックの各画像内における水平位置と、各スライスに含まれるマクロブロック数とを前記第３の解析手段により取得し、この値を前記第２の解析手段が取得した垂直位置と共に引数として与えて、前記動画像ストリームの復号を前記復号手段に実行させることを特徴とする請求項２記載の情報処理装置。
【請求項４】
前記復号制御手段は、あるスライスについて、前記動画像ストリームの復号を前記復号手段に実行させる際、これと並行して、当該スライスの先頭のマクロブロックの各画像内における水平位置および当該スライスに含まれるマクロブロック数の取得を前記第３の解析手段に実行させる手段を含むことを特徴とする請求項２記載の情報処理装置。
【請求項５】
前記入力手段は、テレビジョン放送信号によって放送されるデジタル放送番組データを前記動画像ストリームとして入力することを特徴とする請求項１記載の情報処理装置。
【請求項６】
前記入力手段は、コンピュータネットワークを介して接続されるサーバから前記動画像ストリームを入力することを特徴とする請求項１記載の情報処理装置。
【請求項７】
前記動画像ストリームは、ＭＰＥＧ（Moving Picture Experts Group）２規格に準拠した方式で動画像が圧縮符号化されたものであることを特徴とする請求項１記載の情報処理装置。
【請求項８】
前記入力手段が入力した動画像ストリーム中の各マクロブロックの情報を各画像の行の先頭のマクロブロックからすべて辿って、各スライスの先頭のマクロブロックの各画像内における水平位置と、各スライスに含まれるマクロブロック数とを取得する第３の解析手段をさらに具備し、
前記復号制御手段は、前記第２の解析手段が取得した垂直位置の情報が直前のスライスから取得された垂直位置の情報と同じ値であった場合、各スライスの先頭のマクロブロックの各画像内における水平位置と、各スライスに含まれるマクロブロック数とを前記第３の解析手段により取得し、この値を前記第２の解析手段が取得した垂直位置と共に引数として与えて、前記動画像ストリームの復号を前記復号手段に実行させる手段を含む、
ことを特徴とする請求項１記載の情報処理装置。
【請求項９】
各画像をマトリックス状に分割して生成されるｎ×ｎ画素のマクロブロック単位に符号化された動画像ストリームを入力する入力手段と、前記マクロブロックを行方向に並べて構成されるスライス単位に、各スライスの先頭のマクロブロックの各画像内における水平位置および垂直位置を示すアドレスと、各スライスに含まれるマクロブロック数とを引数として受け取って、前記入力手段が入力した動画像ストリームを復号する復号手段とを有する情報処理装置における復号制御方法であって、
前記情報処理装置は、
前記入力手段が入力した動画像ストリームのヘッダ部に含まれる各画像の水平方向の画素数の情報を取得し、この水平方向の画素数の情報から各画像の行方向のマクロブロック数を算出し、
前記入力手段が入力した動画像ストリーム中の各スライスのヘッダ部に含まれる各スライスの各画像内における垂直位置の情報を取得し、
各スライスの先頭のマクロブロックの各画像内における水平位置として各画像の水平方向の開始位置を示し、かつ、各スライスの先頭のマクロブロックの各画像内における垂直位置として前記取得した垂直位置を示すアドレスと、各スライスに含まれるマクロブロック数として前記算出したマクロブロック数とを引数として与えて、前記動画像ストリームの復号を前記復号手段にスライス単位に実行させる、
ことを特徴とする復号制御方法。
【請求項１０】
前記情報処理装置は、
さらに、あるスライスについて、引数の不整合を原因として前記復号手段が前記動画像ストリームの復号をエラー終了した場合、前記入力手段が入力した動画像ストリーム中の各マクロブロックの情報を各画像の行の先頭のマクロブロックからすべて辿って、各スライスの先頭のマクロブロックの各画像内における水平位置と、各スライスに含まれるマクロブロック数とを取得し、この値を前記取得した垂直位置と共に引数として与えて、当該エラー終了したスライスについて、前記動画像ストリームの復号を前記復号手段に再実行させることを特徴とする請求項９記載の復号制御方法。
【請求項１１】
前記情報処理装置は、
前記エラー終了したスライスの後続スライスであって、前記エラー終了したスライスと各画面上で同一行のスライスについては、各スライスの先頭のマクロブロックの各画像内における水平位置と、各スライスに含まれるマクロブロック数とを、前記入力手段が入力した動画像ストリーム中の各マクロブロックの情報を各画像の行の先頭のマクロブロックからすべて辿って取得し、この値を前記取得した垂直位置と共に引数として与えて、前記動画像ストリームの復号を前記復号手段に実行させることを特徴とする請求項１０記載の復号制御方法。
【請求項１２】
前記情報処理装置は、
あるスライスについて、前記動画像ストリームの復号を前記復号手段に実行させる際、これと並行して、当該スライスの先頭のマクロブロックの各画像内における水平位置および当該スライスに含まれるマクロブロック数を、前記入力手段が入力した動画像ストリーム中の各マクロブロックの情報を各画像の行の先頭のマクロブロックからすべて辿って取得することを特徴とする請求項１０記載の復号制御方法。
【請求項１３】
前記情報処理装置は、
さらに、前記取得した垂直位置の情報が直前のスライスから取得された垂直位置の情報と同じ値であった場合、前記入力手段が入力した動画像ストリーム中の各マクロブロックの情報を各画像の行の先頭のマクロブロックからすべて辿って、各スライスの先頭のマクロブロックの各画像内における水平位置と、各スライスに含まれるマクロブロック数とを取得し、この値を前記取得した垂直位置と共に引数として与えて、前記動画像ストリームの復号を前記復号手段に実行させることを特徴とする請求項９記載の復号制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えばテレビジョン放送信号によって放送されるデジタル放送番組データを記録・再生するＴＶ機能を有するパーソナルコンピュータ等に適用して好適な動画像ストリームの復号制御技術に関する。
【背景技術】
【０００２】
近年、バッテリ駆動可能で携行容易なノートブックタイプのパーソナルコンピュータが広く普及している。この種のコンピュータは、薄型軽量化と並行して高機能化が日々図られており、デジタルテレビジョン放送番組を視聴するためのＴＶ機能を搭載するものも登場してきている。従って、この種のコンピュータを携行すれば、ユーザは、外出先や移動中においても、デジタルテレビジョン放送番組を楽しむことができる。
【０００３】
また、無線通信環境の整備に伴い、外出先や移動中においても、インターネットに接続することが容易になり、インターネットを介して接続したサーバからデジタルテレビジョン放送番組データを受信して視聴するといったことも可能となっている。
【０００４】
デジタル放送番組データは、例えばＭＰＥＧ（Moving Picture Experts Group）２規格に準拠した方式などで圧縮符号化された動画像ストリームである。そのため、このような圧縮符号化された動画像ストリームを効率的に復号するための仕組みが、これまで種々提案されている（例えば特許文献１等参照）。
【特許文献１】特開２００２−５７９８６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
通常、コンピュータは、各種アプリケーションプログラムが表示しようとする画像をＣＰＵに代わって描画するグラフィックスアクセラレータ（以下、アクセラレータ）を標準的に搭載する。そして、最近では、圧縮符号化された動画像ストリームを復号するためのデコード処理の一部を実行する機能を持つアクセラレータが登場し始めている。ＴＶ機能を搭載するコンピュータの中には、このＴＶ機能をソフトウェアによって実現しているものも少なくない。この場合、動画像ストリームのデコード処理もＣＰＵ上で動作する当該ソフトウェア内の１モジュールによって実行されることになるが、その一部をアクセラレータに代行させることにより、ＣＰＵの負荷を大幅に軽減することが期待される。
【０００６】
ところで、ＭＰＥＧ２規格に準拠した方式で圧縮符号化された動画像ストリームは、シーケンス層、ＧＯＰ（Group Of Picture）層、ピクチャ層、スライス層、マクロブロック層およびブロック層の６層の階層構造となっている。このうち、ピクチャ層は、動画像中の各画像と一対に設けられるものであり、その下層のスライス層は、各画像を水平方向に分割して生成される、所定の分割幅を持った任意の長さの画像データの集合体（スライス）である。任意の長さとは、１つの行に複数のスライスを設けることが可能であることを意味している。また、マクロブロックは、各画像をマトリックス状に分割して生成されるものであり、即ち、このマクロブロックを行方向に並べたものがスライスとなる。そして、前述の、圧縮符号化された動画像ストリームを復号するためのデコード処理の一部を実行する機能を持つアクセラレータの代表的なものの１つに、このスライス単位に動画像ストリームを受け取って、デコード処理を実行するものが存在する。
【０００７】
しかしながら、このアクセラレータは、デコード対象の１スライス分の動画像ストリームと共に、当該スライスの先頭のマクロブロックの各画像内における水平位置および垂直位置を示すアドレスと、各スライスに含まれるマクロブロック数とを引数として受け取ることを仕様として要求する。よって、スライス層以下のデコード処理を当該アクセラレータに代替させようとするソフトウェアは、引数として与えるこれらの値を得るために、スライス層以下を参照しなければならず、結局、期待された程はＣＰＵの負荷を軽減できないといった問題があった。
【０００８】
この発明は、このような事情を考慮してなされたものであり、符号化された動画像ストリームの復号処理の一部をアクセラレータに代行させるにあたっての解析処理の簡略化を実現した情報処理装置および復号制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
前述の目的を達成するために、この発明の情報処理装置は、各画像をマトリックス状に分割して生成されるｎ×ｎ画素のマクロブロック単位に符号化された動画像ストリームを入力する入力手段と、前記マクロブロックを行方向に並べて構成されるスライス単位に、各スライスの先頭のマクロブロックの各画像内における水平位置および垂直位置を示すアドレスと、各スライスに含まれるマクロブロック数とを引数として受け取って、前記入力手段が入力した動画像ストリームを復号する復号手段と、前記入力手段が入力した動画像ストリームのヘッダ部に含まれる各画像の水平方向の画素数の情報を取得し、この水平方向の画素数の情報から各画像の行方向のマクロブロック数を算出する第１の解析手段と、前記入力手段が入力した動画像ストリーム中の各スライスのヘッダ部に含まれる各スライスの各画像内における垂直位置の情報を取得する第２の解析手段と、各スライスの先頭のマクロブロックの各画像内における水平位置として各画像の水平方向の開始位置を示し、かつ、各スライスの先頭のマクロブロックの各画像内における垂直位置として前記第２の解析手段が取得した垂直位置を示すアドレスと、各スライスに含まれるマクロブロック数として前記第１の解析手段が算出したマクロブロック数とを引数として与えて、前記動画像ストリームの復号を前記復号手段にスライス単位に実行させる復号制御手段と、を具備することを特徴とする。
【００１０】
また、この発明の復号制御方法は、各画像をマトリックス状に分割して生成されるｎ×ｎ画素のマクロブロック単位に符号化された動画像ストリームを入力する入力手段と、前記マクロブロックを行方向に並べて構成されるスライス単位に、各スライスの先頭のマクロブロックの各画像内における水平位置および垂直位置を示すアドレスと、各スライスに含まれるマクロブロック数とを引数として受け取って、前記入力手段が入力した動画像ストリームを復号する復号手段とを有する情報処理装置における復号制御方法であって、前記情報処理装置は、前記入力手段が入力した動画像ストリームのヘッダ部に含まれる各画像の水平方向の画素数の情報を取得し、この水平方向の画素数の情報から各画像の行方向のマクロブロック数を算出し、前記入力手段が入力した動画像ストリーム中の各スライスのヘッダ部に含まれる各スライスの各画像内における垂直位置の情報を取得し、各スライスの先頭のマクロブロックの各画像内における水平位置として各画像の水平方向の開始位置を示し、かつ、各スライスの先頭のマクロブロックの各画像内における垂直位置として前記取得した垂直位置を示すアドレスと、各スライスに含まれるマクロブロック数として前記算出したマクロブロック数とを引数として与えて、前記動画像ストリームの復号を前記復号手段にスライス単位に実行させる、ことを特徴とする。
【発明の効果】
【００１１】
この発明によれば、符号化された動画像ストリームの復号処理の一部をアクセラレータに代行させるにあたっての解析処理の簡略化を実現した情報処理装置および復号制御方法を提供することができる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照して、本発明の実施形態を説明する。
【００１３】
まず、図１および図２を参照して、本発明の一実施形態に係る情報処理装置の構成を説明する。本実施形態の情報処理装置は、例えばノートブックタイプのパーソナルコンピュータ１０として実現されている。
【００１４】
このコンピュータ１０は、テレビジョン放送信号によって放送される放送番組データの視聴および録画を実行するためのテレビジョン（ＴＶ）機能を有している。このＴＶ機能は、例えば、コンピュータ１０に予めインストールされているＴＶアプリケーションプログラムによって実現されている。
【００１５】
図１は、このコンピュータ１０のディスプレイユニットを開いた状態における斜視図である。本コンピュータ１０は、コンピュータ本体１１と、ディスプレイユニット１２とから構成される。ディスプレイユニット１２には、ＬＣＤ（Liquid Crystal Display）１７によって構成される表示装置が組み込まれている。
【００１６】
ディスプレイユニット１２は、コンピュータ本体１１に対し、コンピュータ本体１１の上面が露出される開放位置とコンピュータ本体１１の上面を覆う閉塞位置との間を回動自在に取り付けられている。コンピュータ本体１１は薄い箱形の筐体を有しており、その上面にはキーボード１３、本コンピュータ１０をパワーオン／パワーオフするためのパワーボタン１４、入力操作パネル１５、タッチパッド１６、スピーカ１８Ａ，１８Ｂなどが配置されている。
【００１７】
入力操作パネル１５は、押下されたボタンに対応するイベントを入力する入力装置であり、複数の機能をそれぞれ起動するための複数のボタンを備えている。これらボタン群には、ＴＶ機能を制御するための操作ボタン群も含まれている。
【００１８】
また、コンピュータ本体１１の正面には、本コンピュータ１０のＴＶ機能をリモート制御するリモコンユニットとの通信を実行するためのリモコンユニットインタフェース部２０が設けられている。リモコンユニットインタフェース部２０は、赤外線信号受信部などから構成される。さらに、コンピュータ本体１１の例えば右側面には、ＴＶ放送用のアンテナ端子１９が設けられている。
【００１９】
次に、図２を参照して、本コンピュータ１０のシステム構成について説明する。
【００２０】
本コンピュータ１０は、図２に示されているように、ＣＰＵ１０１、ノースブリッジ１０２、主メモリ１０３、サウスブリッジ１０４、グラフィクスプロセシングユニット（ＧＰＵ）１０５、ビデオメモリ（ＶＲＡＭ）１０５Ａ、サウンドコントローラ１０６、ＢＩＯＳ−ＲＯＭ１０７、ＬＡＮコントローラ１０８、ハードディスクドライブ（ＨＤＤ）１０９、ＤＶＤドライブ１１０、無線ＬＡＮコントローラ１１１、IEEE 1394コントローラ１１２、エンベデッドコントローラ／キーボードコントローラＩＣ（ＥＣ／ＫＢＣ）１１３、ＴＶチューナ１１４、ＥＥＰＲＯＭ１１５等を備えている。
【００２１】
ＣＰＵ１０１は、本コンピュータ１０の動作を制御するプロセッサであり、ハードディスクドライブ（ＨＤＤ）１０９から主メモリ１０３にロードされる、オペレーティングシステム（ＯＳ）２０１や、このＯＳ２０１の配下で動作するＴＶアプリケーションプログラム２０２のような各種アプリケーションプログラムを実行する。ＴＶアプリケーションプログラム２０２は、前述のＴＶ機能を実行するためのソフトウェアである。このＴＶアプリケーションプログラム２０２は、ＴＶチューナ１１４が符号化された動画像ストリームとして受信する放送番組データを視聴するためのライブ再生処理、受信された放送番組データをＨＤＤ１０９に記録する録画処理およびＨＤＤ１０９に記録された放送番組データ／ビデオデータを再生する再生処理等を実行する。また、ＣＰＵ１０１は、ＢＩＯＳ−ＲＯＭ１０７に格納されたＢＩＯＳ（Basic Input/Output System）も実行する。ＢＩＯＳは、ハードウェア制御のためのプログラムである。
【００２２】
ノースブリッジ１０２は、ＣＰＵ１０１のローカルバスとサウスブリッジ１０４との間を接続するブリッジデバイスである。ノースブリッジ１０２には、主メモリ１０３をアクセス制御するメモリコントローラも内蔵されている。また、ノースブリッジ１０２は、PCI EXPRESS規格のシリアルバスなどを介してＧＰＵ１０５との通信を実行する機能も有している。
【００２３】
ＧＰＵ１０５は、本コンピュータ１０のディスプレイモニタとして使用されるＬＣＤ１７を制御する表示コントローラである。このＧＰＵ１０５によって生成される表示信号はＬＣＤ１７に送られる。このＧＰＵ１０５は、各種アプリケーションプログラムが表示しようとする画像をＣＰＵ１０１に代わって描画するアクセラレータを搭載する。このＧＰＵ１０５が搭載するアクセラレータは、ＴＶチューナ１１４によって受信される符号化された動画像ストリームの復号処理の一部をＴＶアプリケーションプログラム２０２に代わって実行する機能を有している。そして、本コンピュータ１０は、このアクセラレータの機能を利用した動画像ストリームの復号を効率的に行うべく工夫したものであり、この点については後述する。
【００２４】
サウスブリッジ１０４は、ＬＰＣ（Low Pin Count）バス上の各デバイスおよびＰＣＩ（Peripheral Component Interconnect）バス上の各デバイスを制御する。また、サウスブリッジ１０４は、ＨＤＤ１０９およびＤＶＤドライブ１１０を制御するためのＩＤＥ（Integrated Drive Electronics）コントローラを内蔵している。さらに、サウスブリッジ１０４は、サウンドコントローラ１０６との通信を実行する機能も有している。
【００２５】
サウンドコントローラ１０６は音源デバイスであり、再生対象のオーディオデータをスピーカ１８Ａ，１８Ｂに出力する。
【００２６】
無線ＬＡＮコントローラ１１１は、たとえばIEEE 802.11規格の無線通信を実行する無線通信デバイスである。IEEE 1394コントローラ１１２は、IEEE 1394規格のシリアルバスを介して外部機器との通信を実行する。
【００２７】
ＥＣ／ＫＢＣ１１３は、電力管理を行うためのエンベデッドコントローラと、キーボード（ＫＢ）１３およびタッチパッド１６を制御するためのキーボードコントローラとが集積された１チップマイクロコンピュータである。このＥＣ／ＫＢＣ１１３は、ユーザによるパワーボタン１４の操作に応じて本コンピュータ１０をパワーオン／パワーオフする機能を有している。さらに、ＥＣ／ＫＢＣ１１３は、リモコンユニットインタフェース部２０との通信を実行する機能を有している。
【００２８】
ＴＶチューナ１１４はテレビジョン放送信号によって放送される放送番組データを受信する受信装置であり、アンテナ端子１９に接続されている。このＴＶチューナ１１４は、例えば、地上波デジタルＴＶ放送のようなデジタル放送番組データを受信可能なデジタルＴＶチューナとして実現されている。また、ＴＶチューナ１１４は、外部機器から入力されるビデオデータをキャプチャする機能も有している。
【００２９】
ここで、このような構成を持つ本コンピュータ１０が実現する、ＧＰＵ１０５が搭載するアクセラレータの機能を利用して動画像ストリームを復号するにあたっての効率化の原理の理解を助けるために、図３乃至図５を参照して、ＧＰＵ１０５が搭載するアクセラレータの機能を利用した一般的な動画像ストリームの復号手順を説明する。
【００３０】
動画像の圧縮符号化の主要な方式であるＭＰＥＧ２規格では、各画像を１６×１６画素のマクロブロックに分割し、このマクロブロック単位に符号化を行う。そして、このマクロブロックを行方向に並べてスライスを構成する。図３は、この各画像（フレーム）、スライス、マクロブロックの関係を示す概念図である。
【００３１】
図３に示すように、各フレームａは、複数のスライスｂ１，ｂ２，…に分割され、各スライスｂ１，ｂ２，…は、１以上のマクロブロックｃから構成される。ＭＰＥＧ２規格に準拠した方式で圧縮符号化された動画像ストリームは、シーケンス層、ＧＯＰ層、ピクチャ層、スライス層、マクロブロック層、ブロック層の６層の階層構造となり、各フレームａ毎にピクチャ層が設けられ、また、複数のスライスｂ１，ｂ２，…毎に、ピクチャ層の下層としてスライス層が設けられる。よって、例えば３０ｆｐｓの動画像ストリームに対しては、ＴＶアプリケーションプログラム２０２は、ピクチャ層単位の復号処理を、１／３０秒以内に完了させる必要がある。
【００３２】
一方、ＧＰＵ１０５が搭載するアクセラレータは、この動画像ストリームの復号処理をスライス層単位で行う機能を有している。そこで、ＴＶアプリケーションプログラム２０２は、スライス層以下の復号処理を、このアクセラレータに代行させる。また、アクセラレータは、動画像ストリームの入力をスライス単位で受け付ける際、このスライスの先頭のマクロブロックのフレーム内での位置（アドレス）と、当該スライスに含まれるマクロブロック数とを引数として要求する。図３に示す例でいえば、２つめのスライスｂ２の復号処理をアクセラレータに行わせる場合、ＴＶアプリケーションプログラム２０２は、その先頭のマクロブロックのアドレスが（３，０）であることと、３つのマクロブロックが含まれていることとをアクセラレータに教える必要がある。
【００３３】
即ち、図４に示すように、放送番組データを再生するＴＶアプリケーションプログラム２０２は、その復号処理を司るソフトウェアデコーダ２０２１が、ＧＰＵ１０５のアクセラレータ１０５１に対して、スライス単位の動画像ストリーム（スライスストリーム）を供給すると共に、先頭マクロブロックアドレスと、スライス内マクロブロック数とを供給する。
【００３４】
図５は、ＭＰＥＧ２規格に準拠した方式で圧縮符号化された動画像ストリームの構造を示す図である。
【００３５】
前述したように、ＭＰＥＧ２規格に準拠した方式で圧縮符号化された動画像ストリームは、この図５に示すように、シーケンス層（Ａ）、ＧＯＰ層（Ｂ）、ピクチャ層（Ｃ）、スライス層（Ｄ）、マクロブロック層（Ｅ）、ブロック層（Ｆ）の６層の階層構造となっている。ここで、ＴＶアプリケーションプログラム２０２のソフトウェアデコーダ２０２１が、ＧＰＵ１０５のアクセラレータ１０５１に供給する、先頭マクロブロックアドレスとスライス内マクロブロック数とを、一般的な手順によった場合にはどのように取得するかについて説明する。
【００３６】
まず、先頭マクロブロックアドレスについては、垂直位置と水平位置とを取得する必要があるが、垂直位置は、スライスの垂直位置と等価であり、その値は、スライス層のヘッダ部（ｄ１）に含まれている。一方、水平位置は、スライス層の下層である各マクロブロック層のＭＢＡＩ（マクロブロックアドレスインクリメント：ｄ２）を各行の開始位置からすべて辿っていかなくては得られない。図３に示す例でいえば、２つめのスライスｂ２の先頭のマクロブロックの水平位置が３であることを取得するためには、１つめのスライスｂ１の各マクロブロック層のＭＢＡＩをすべて辿らなければならない。ＭＢＡＩには、その値だけで各画像内での水平位置を特定可能な絶対的な値が格納されるのではなく、符号量が殆ど発生しなかったマクロブロックに関する情報を動画像ストリーム内から排除できるようにするために、直前のマクロブロック層に対応するマクロブロックからの相対的な位置（スキップ数）が格納されるためである。
【００３７】
次に、スライス内マクロブロック数についてであるが、先頭マクロブロックの水平位置を取得する場合と同様の理由で、スライス層の下層である各マクロブロック層のＭＢＡＩをすべて参照しないと、各スライスに含まれるマクロブロックの数を取得することはできない。図３に示す例でいえば、１つめのスライスｂ１が３つのマクロブロックを含んでいることを取得するためには、当該スライスｂ１の各マクロブロック層のＭＢＡＩをすべて参照しなければならない。
【００３８】
即ち、ＴＶアプリケーションプログラム２０２のソフトウェアデコーダ２０２１は、動画像ストリームのスライス層以下の復号処理をＧＰＵ１０５のアクセラレータ１０５１に代行させようとしているにも関わらず、そのスライスの先頭のマクロブロックの水平位置および当該スライスに含まれるマクロブロックの数を取得するために、結局、そのスライス層以下の解析を行わなければならないこととなる。
【００３９】
そこで、本コンピュータ１０では、テレビジョン放送信号によって放送される放送番組データ（あるいはインターネット経由で配信される放送番組データ）は、各画面の１行を１スライスとして動画像ストリームを構成していることに着目し、第１に、図６に示すように、各スライスの先頭のマクロブロックの水平位置は、常に、各行の開始位置（０）であるものとし、また、第２に、図７に示すように、各スライスに含まれるマクロブロックの数は、各画像の水平方向の画素数をマクロブロックの画素数で除した値を用いる。各画像の水平方向の画素数は、シーケンス層のヘッダ部（ｄ３）に含まれている。
【００４０】
これにより、本コンピュータ１０においては、動画像ストリームのスライス層以下の復号処理をＧＰＵ１０５のアクセラレータ１０５１に代行させるＴＶアプリケーションプログラム２０２のソフトウェアデコーダ２０２１は、スライス層以下の解析を行う必要がなくなり、解析処理の簡略化が実現される。
【００４１】
また、例えばＴＶチューナ１１４による放送番組データの受信環境が整っていない等に起因して、１つのスライス分の動画像ストリームがロストしてしまった場合を考える。一般的な復号手順によっていた場合、後続のスライスを復号するための情報（先頭のマクロブロックの水平位置）を当該ロストしたスライスから得なければならないため、このフレーム自体を破棄せざるを得なかった。これに対して、本コンピュータ１０においては、あるスライスの復号に必要な情報を直前のスライスから得ることがないため、ロストの影響を当該スライスのみに限定することができる。
【００４２】
なお、仮に、ある行が複数のスライスからなっており、ＧＰＵ１０５のアクセラレータ１０５１が引数の不整合を原因として復号処理をエラー終了した場合、ＴＶアプリケーションプログラム２０２のソフトウェアデコーダ２０２１は、一般的な手順により先頭マクロブロックアドレスとスライス内マクロブロック数とを取得して、当該スライスについての復号をＧＰＵ１０５のアクセラレータ１０５１に改めて依頼する。ＴＶアプリケーションプログラム２０２のソフトウェアデコーダ２０２１は、このエラー終了したスライスを含む行の範囲内で、この一般的な手順を採用する。
【００４３】
また、ＴＶアプリケーションプログラム２０２のソフトウェアデコーダ２０２１は、ＧＰＵ１０５のアクセラレータ１０５１が引数の不整合を原因として復号処理をエラー終了した場合に備えて、一般的な手順による先頭マクロブロックアドレスとスライス内マクロブロック数との取得を、ＣＰＵ１０１の負荷を考慮して、低優先度で並行して行うようにしても良い。
【００４４】
図８は、本コンピュータ１０による動画像ストリームの復号処理の動作手順を示すフローチャートである。
【００４５】
ＴＶアプリケーションプログラム２０２のソフトウェアデコーダ２０２１は、まず、動画像ストリームのヘッダ部（シーケンス層のＨＳ）から各画面の水平方向の画素数を取得する（ステップＡ１）。そして、この取得した各画面の水平方向の画素数をマクロブロックの水平方向の画素数で割ることにより、各画面の水平方向のマクロブロック数を算出する（ステップＡ２）。ＴＶアプリケーションプログラム２０２のソフトウェアデコーダ２０２１は、以降、この値を、ＧＰＵ１０５のアクセラレータ１０５１に与える引数の１要素である各スライス内に含まれるマクロブロック数として使用する。
【００４６】
次に、ＴＶアプリケーションプログラム２０２のソフトウェアデコーダ２０２１は、各スライスについて、そのヘッダ部（スライス層のＳＳＣ）から当該スライスの垂直位置を取得し、この値をＧＰＵ１０５のアクセラレータ１０５１に与える引数の１要素である当該スライスの先頭マクロブロックの垂直位置として設定する（ステップＡ３）。一方、同じくＧＰＵ１０５のアクセラレータ１０５１に与える引数の１要素である当該スライスの先頭マクロブロックの水平位置については、ＴＶアプリケーションプログラム２０２のソフトウェアデコーダ２０２１は、その値を０（行の開始位置）と決め付けて設定する（ステップＡ４）。
【００４７】
そして、ＴＶアプリケーションプログラム２０２のソフトウェアデコーダ２０２１は、１スライス分の動画像ストリームを与えて、当該動画像ストリームの復号処理をＧＰＵ１０５のアクセラレータ１０５１に実行させる（ステップＡ５）。もし、この処理が引数の不整合を原因としてエラー終了したならば（ステップＡ６のＮＯ）、ＴＶアプリケーションプログラム２０２のソフトウェアデコーダ２０２１は、一般的な手順で当該スライスの先頭マクロブロックの水平位置およびマクロブロック数を取得し（ステップＡ７）、エラー終了したスライスに関する動画像ストリームの復号処理をＧＰＵ１０５のアクセラレータ１０５１に再実行させる（ステップＡ８）。ＴＶアプリケーションプログラム２０２のソフトウェアデコーダ２０２１は、このエラー終了したスライスを含む行の範囲内においては、一般的な手順でスライスの先頭マクロブロックの水平位置およびマクロブロック数を取得しながら、動画像ストリームの復号処理をＧＰＵ１０５のアクセラレータ１０５１に実行させる（ステップＡ７〜Ａ９）。
【００４８】
一方、動画像ストリームの復号処理が正常終了した場合（ステップＡ６のＹＥＳ）、または、エラー終了したスライスを含む行内のすべてのスライスの復号処理が終了した場合（ステップＡ９のＹＥＳ）、ＴＶアプリケーションプログラム２０２のソフトウェアデコーダ２０２１は、後続の動画像ストリームの存在有無を確認し（ステップＡ１０）、後続の動画像ストリームが存在すれば（ステップＡ１０のＮＯ）、ステップＡ３からの処理を繰り返す。そして、後続の動画像ストリームが存在しないならば（ステップＡ１０のＹＥＳ）、ＴＶアプリケーションプログラム２０２のソフトウェアデコーダ２０２１は、動画像ストリームの復号処理を終了する。
【００４９】
また、図９は、１つの行に複数のスライスが含まれていた場合に対処するための手順をより具体的に表した、本コンピュータ１０による動画像ストリームの復号処理の動作手順を示すフローチャートである。
【００５０】
ＴＶアプリケーションプログラム２０２のソフトウェアデコーダ２０２１は、まず、動画像ストリームのヘッダ部（シーケンス層のＨＳ）から各画面の水平方向の画素数を取得する（ステップＢ１）。そして、この取得した各画面の水平方向の画素数をマクロブロックの水平方向の画素数で割ることにより、各画面の水平方向のマクロブロック数を算出する（ステップＢ２）。また、ＴＶアプリケーションプログラム２０２のソフトウェアデコーダ２０２１は、各スライスについて、そのヘッダ部（スライス層のＳＳＣ）から当該スライスの垂直位置を取得する（ステップＢ３）。
【００５１】
ここで、ＴＶアプリケーションプログラム２０２のソフトウェアデコーダ２０２１は、取得した当該スライスの垂直位置が直前のスライスから取得された垂直位置と同じ値か否かを判断する（ステップＢ４）。同じ値でなければ（ステップＢ４のＮＯ）、ＴＶアプリケーションプログラム２０２のソフトウェアデコーダ２０２１は、先に算出した各画面の水平方向のマクロブロック数をＧＰＵ１０５のアクセラレータ１０５１に与える引数の１要素である各スライス内に含まれるマクロブロック数として設定すると共に、取得した当該スライスの垂直位置の値をＧＰＵ１０５のアクセラレータ１０５１に与える引数の１要素である当該スライスの先頭マクロブロックの垂直位置として設定し、さらに、同じくＧＰＵ１０５のアクセラレータ１０５１に与える引数の１要素である当該スライスの先頭マクロブロックの水平位置について、その値を０（行の開始位置）に設定して（ステップＢ５）、１スライス分の動画像ストリームを与え、当該動画像ストリームの復号処理をＧＰＵ１０５のアクセラレータ１０５１に実行させる（ステップＢ６）。
【００５２】
もし、この処理が引数の不整合を原因としてエラー終了したならば（ステップＢ７のＮＯ）、ＴＶアプリケーションプログラム２０２のソフトウェアデコーダ２０２１は、一般的な手順で当該スライスの先頭マクロブロックの水平位置およびマクロブロック数を取得し（ステップＢ８）、エラー終了したスライスに関する動画像ストリームの復号処理をＧＰＵ１０５のアクセラレータ１０５１に再実行させる（ステップＢ９）。
【００５３】
また、取得した当該スライスの垂直位置が直前のスライスから取得された垂直位置と同じ値であった場合（ステップＢ４のＹＥＳ）、当該スライスは、１つの行に含まれる複数のスライス中の２番目以降のスライスと推定されるので、ＴＶアプリケーションプログラム２０２のソフトウェアデコーダ２０２１は、その時点で、一般的な手順による当該スライスの先頭マクロブロックの水平位置およびマクロブロック数の取得を実施し（ステップＢ８）、当該スライスに関する動画像ストリームの復号処理をＧＰＵ１０５のアクセラレータ１０５１に実行させる（ステップＢ９）。
【００５４】
そして、ＴＶアプリケーションプログラム２０２のソフトウェアデコーダ２０２１は、後続の動画像ストリームの存在有無を確認し（ステップＢ１０）、後続の動画像ストリームが存在すれば（ステップＢ１０のＮＯ）、ステップＢ３からの処理を繰り返し、後続の動画像ストリームが存在しないならば（ステップＢ１０のＹＥＳ）、動画像ストリームの復号処理を終了する。
【００５５】
以上のように、本コンピュータ１０においては、ＴＶアプリケーションプログラム２０２のソフトウェアデコーダ２０２１が、符号化された動画像ストリームの復号処理の一部をＧＰＵ１０５のアクセラレータ１０５１に代行させるにあたっての解析処理の簡略化を実現する。
【００５６】
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００５７】
【図１】本発明の一実施形態に係る情報処理装置の概観の例を示す斜視図
【図２】同実施形態の情報処理装置のシステム構成の例を示すブロック図
【図３】ＭＰＥＧ２規格に準拠した方式で圧縮符号化された動画像ストリームにおけるフレーム、スライス、マクロブロックの関係を示す概念図
【図４】同実施形態の情報処理装置上で動作するＴＶアプリケーションプログラムのソフトウェアデコーダとＧＰＵのアクセラレータとの関係を示す概念図
【図５】ＭＰＥＧ２規格に準拠した方式で圧縮符号化された動画像ストリームの構造を示す図
【図６】同実施形態の情報処理装置で実行される動画像ストリームの復号時における解釈処理の簡略化の基本原理を説明するための第１の図
【図７】同実施形態の情報処理装置で実行される動画像ストリームの復号時における解釈処理の簡略化の基本原理を説明するための第２の図
【図８】同実施形態の情報処理装置による動画像ストリームの復号処理の動作手順を示すフローチャート
【図９】同実施形態の情報処理装置による動画像ストリームの復号処理の動作手順を示す第２のフローチャート
【符号の説明】
【００５８】
１０…パーソナルコンピュータ、１１…コンピュータ本体、１２…ディスプレイユニット、１３…キーボード（ＫＢ）、１４…パワーボタン、１５…入力操作パネル、１６…タッチパッド、１７…ＬＣＤ、１８Ａ，１８Ｂ…スピーカ、１９…アンテナ端子、２０…リモコンユニットインタフェース部、１０１…ＣＰＵ、１０２…ノースブリッジ、１０３…主メモリ、１０４…サウスブリッジ、１０５…グラフィクスプロセシングユニット（ＧＰＵ）、１０５Ａ…ビデオメモリ、１０６…サウンドコントローラ、１０７…ＢＩＯＳ−ＲＯＭ、１０８…ＬＡＮコントローラ、１０９…ハードディスクドライブ（ＨＤＤ）、１１０…ＤＶＤドライブ、１１１…ＬＡＮコントローラ、１１２…コントローラ、１１３…エンベデッドコントローラ／キーボードコントローラＩＣ（ＥＣ／ＫＢＣ）、１１４…ＴＶチューナ、１１５…ＥＥＰＲＯＭ、２０１…オペレーティングシステム（ＯＳ）、２０２…ＴＶアプリケーションプログラム、１０５１…アクセラレータ、２０２１…ソフトウェアデコーダ。
【要約】
【課題】符号化された動画像ストリームの復号処理の一部をアクセラレータに代行させるにあたっての解析処理の簡略化を実現した情報処理装置を提供する。
【解決手段】アクセラレータ１０５１は、各スライスについて、その先頭のマクロブロックの画面内における水平位置および垂直位置と、総マクロブロック数とを引数として受け取って、その復号処理を実行する。これに対して、ソフトウェアデコーダ２０２１は、テレビジョン放送信号によって放送される放送番組データ等は、各画面の１行を１スライスとして動画像ストリームを構成していることに着目して、動画像ストリームのヘッダ部から各画面の水平方向の画素数を取得し、これをマクロブロックの水平方向の画素数で除した値を各スライスの総マクロブロック数とし、また、先頭のマクロブロックの画面内における水平位置については、その値を無条件に行の開始位置とする。
【選択図】      図４【図１】
0004314315.tif 000002
【図２】
0004314315.tif 000003
【図３】
0004314315.tif 000004
【図４】
0004314315.tif 000005
【図５】
0004314315.tif 000006
【図６】
0004314315.tif 000007
【図７】
0004314315.tif 000008
【図８】
0004314315.tif 000009
【図９】
0004314315.tif 000010