JP4314315B1 - 情報処理装置および復号制御方法 - Google Patents

情報処理装置および復号制御方法 Download PDF

Info

Publication number
JP4314315B1
JP4314315B1 JP2008324332A JP2008324332A JP4314315B1 JP 4314315 B1 JP4314315 B1 JP 4314315B1 JP 2008324332 A JP2008324332 A JP 2008324332A JP 2008324332 A JP2008324332 A JP 2008324332A JP 4314315 B1 JP4314315 B1 JP 4314315B1
Authority
JP
Japan
Prior art keywords
slice
decoding
macroblock
moving image
macroblocks
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.)
Active
Application number
JP2008324332A
Other languages
English (en)
Other versions
JP2009268060A (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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2008324332A priority Critical patent/JP4314315B1/ja
Priority to US12/392,002 priority patent/US7725008B2/en
Application granted granted Critical
Publication of JP4314315B1 publication Critical patent/JP4314315B1/ja
Publication of JP2009268060A publication Critical patent/JP2009268060A/ja
Active 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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • 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/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

【課題】符号化された動画像ストリームの復号処理の一部をアクセラレータに代行させるにあたっての解析処理の簡略化を実現した情報処理装置を提供する。
【解決手段】アクセラレータ1051は、各スライスについて、その先頭のマクロブロックの画面内における水平位置および垂直位置と、総マクロブロック数とを引数として受け取って、その復号処理を実行する。これに対して、ソフトウェアデコーダ2021は、テレビジョン放送信号によって放送される放送番組データ等は、各画面の1行を1スライスとして動画像ストリームを構成していることに着目して、動画像ストリームのヘッダ部から各画面の水平方向の画素数を取得し、これをマクロブロックの水平方向の画素数で除した値を各スライスの総マクロブロック数とし、また、先頭のマクロブロックの画面内における水平位置については、その値を無条件に行の開始位置とする。
【選択図】 図4

Description

この発明は、例えばテレビジョン放送信号によって放送されるデジタル放送番組データを記録・再生するTV機能を有するパーソナルコンピュータ等に適用して好適な動画像ストリームの復号制御技術に関する。
近年、バッテリ駆動可能で携行容易なノートブックタイプのパーソナルコンピュータが広く普及している。この種のコンピュータは、薄型軽量化と並行して高機能化が日々図られており、デジタルテレビジョン放送番組を視聴するためのTV機能を搭載するものも登場してきている。従って、この種のコンピュータを携行すれば、ユーザは、外出先や移動中においても、デジタルテレビジョン放送番組を楽しむことができる。
また、無線通信環境の整備に伴い、外出先や移動中においても、インターネットに接続することが容易になり、インターネットを介して接続したサーバからデジタルテレビジョン放送番組データを受信して視聴するといったことも可能となっている。
デジタル放送番組データは、例えばMPEG(Moving Picture Experts Group)2規格に準拠した方式などで圧縮符号化された動画像ストリームである。そのため、このような圧縮符号化された動画像ストリームを効率的に復号するための仕組みが、これまで種々提案されている(例えば特許文献1等参照)。
特開2002−57986号公報
通常、コンピュータは、各種アプリケーションプログラムが表示しようとする画像をCPUに代わって描画するグラフィックスアクセラレータ(以下、アクセラレータ)を標準的に搭載する。そして、最近では、圧縮符号化された動画像ストリームを復号するためのデコード処理の一部を実行する機能を持つアクセラレータが登場し始めている。TV機能を搭載するコンピュータの中には、このTV機能をソフトウェアによって実現しているものも少なくない。この場合、動画像ストリームのデコード処理もCPU上で動作する当該ソフトウェア内の1モジュールによって実行されることになるが、その一部をアクセラレータに代行させることにより、CPUの負荷を大幅に軽減することが期待される。
ところで、MPEG2規格に準拠した方式で圧縮符号化された動画像ストリームは、シーケンス層、GOP(Group Of Picture)層、ピクチャ層、スライス層、マクロブロック層およびブロック層の6層の階層構造となっている。このうち、ピクチャ層は、動画像中の各画像と一対に設けられるものであり、その下層のスライス層は、各画像を水平方向に分割して生成される、所定の分割幅を持った任意の長さの画像データの集合体(スライス)である。任意の長さとは、1つの行に複数のスライスを設けることが可能であることを意味している。また、マクロブロックは、各画像をマトリックス状に分割して生成されるものであり、即ち、このマクロブロックを行方向に並べたものがスライスとなる。そして、前述の、圧縮符号化された動画像ストリームを復号するためのデコード処理の一部を実行する機能を持つアクセラレータの代表的なものの1つに、このスライス単位に動画像ストリームを受け取って、デコード処理を実行するものが存在する。
しかしながら、このアクセラレータは、デコード対象の1スライス分の動画像ストリームと共に、当該スライスの先頭のマクロブロックの各画像内における水平位置および垂直位置を示すアドレスと、各スライスに含まれるマクロブロック数とを引数として受け取ることを仕様として要求する。よって、スライス層以下のデコード処理を当該アクセラレータに代替させようとするソフトウェアは、引数として与えるこれらの値を得るために、スライス層以下を参照しなければならず、結局、期待された程はCPUの負荷を軽減できないといった問題があった。
この発明は、このような事情を考慮してなされたものであり、符号化された動画像ストリームの復号処理の一部をアクセラレータに代行させるにあたっての解析処理の簡略化を実現した情報処理装置および復号制御方法を提供することを目的とする。
前述の目的を達成するために、この発明の情報処理装置は、各画像をマトリックス状に分割して生成されるn×n画素のマクロブロック単位に符号化された動画像ストリームを入力する入力手段と、前記マクロブロックを行方向に並べて構成されるスライス単位に、各スライスの先頭のマクロブロックの各画像内における水平位置および垂直位置を示すアドレスと、各スライスに含まれるマクロブロック数とを引数として受け取って、前記入力手段が入力した動画像ストリームを復号する復号手段と、前記入力手段が入力した動画像ストリームのヘッダ部に含まれる各画像の水平方向の画素数の情報を取得し、この水平方向の画素数の情報から各画像の行方向のマクロブロック数を算出する第1の解析手段と、前記入力手段が入力した動画像ストリーム中の各スライスのヘッダ部に含まれる各スライスの各画像内における垂直位置の情報を取得する第2の解析手段と、各スライスの先頭のマクロブロックの各画像内における水平位置として各画像の水平方向の開始位置を示し、かつ、各スライスの先頭のマクロブロックの各画像内における垂直位置として前記第2の解析手段が取得した垂直位置を示すアドレスと、各スライスに含まれるマクロブロック数として前記第1の解析手段が算出したマクロブロック数とを引数として与えて、前記動画像ストリームの復号を前記復号手段にスライス単位に実行させる復号制御手段と、を具備することを特徴とする。
また、この発明の復号制御方法は、各画像をマトリックス状に分割して生成されるn×n画素のマクロブロック単位に符号化された動画像ストリームを入力する入力手段と、前記マクロブロックを行方向に並べて構成されるスライス単位に、各スライスの先頭のマクロブロックの各画像内における水平位置および垂直位置を示すアドレスと、各スライスに含まれるマクロブロック数とを引数として受け取って、前記入力手段が入力した動画像ストリームを復号する復号手段とを有する情報処理装置における復号制御方法であって、前記情報処理装置は、前記入力手段が入力した動画像ストリームのヘッダ部に含まれる各画像の水平方向の画素数の情報を取得し、この水平方向の画素数の情報から各画像の行方向のマクロブロック数を算出し、前記入力手段が入力した動画像ストリーム中の各スライスのヘッダ部に含まれる各スライスの各画像内における垂直位置の情報を取得し、各スライスの先頭のマクロブロックの各画像内における水平位置として各画像の水平方向の開始位置を示し、かつ、各スライスの先頭のマクロブロックの各画像内における垂直位置として前記取得した垂直位置を示すアドレスと、各スライスに含まれるマクロブロック数として前記算出したマクロブロック数とを引数として与えて、前記動画像ストリームの復号を前記復号手段にスライス単位に実行させる、ことを特徴とする。
この発明によれば、符号化された動画像ストリームの復号処理の一部をアクセラレータに代行させるにあたっての解析処理の簡略化を実現した情報処理装置および復号制御方法を提供することができる。
以下、図面を参照して、本発明の実施形態を説明する。
まず、図1および図2を参照して、本発明の一実施形態に係る情報処理装置の構成を説明する。本実施形態の情報処理装置は、例えばノートブックタイプのパーソナルコンピュータ10として実現されている。
このコンピュータ10は、テレビジョン放送信号によって放送される放送番組データの視聴および録画を実行するためのテレビジョン(TV)機能を有している。このTV機能は、例えば、コンピュータ10に予めインストールされているTVアプリケーションプログラムによって実現されている。
図1は、このコンピュータ10のディスプレイユニットを開いた状態における斜視図である。本コンピュータ10は、コンピュータ本体11と、ディスプレイユニット12とから構成される。ディスプレイユニット12には、LCD(Liquid Crystal Display)17によって構成される表示装置が組み込まれている。
ディスプレイユニット12は、コンピュータ本体11に対し、コンピュータ本体11の上面が露出される開放位置とコンピュータ本体11の上面を覆う閉塞位置との間を回動自在に取り付けられている。コンピュータ本体11は薄い箱形の筐体を有しており、その上面にはキーボード13、本コンピュータ10をパワーオン/パワーオフするためのパワーボタン14、入力操作パネル15、タッチパッド16、スピーカ18A,18Bなどが配置されている。
入力操作パネル15は、押下されたボタンに対応するイベントを入力する入力装置であり、複数の機能をそれぞれ起動するための複数のボタンを備えている。これらボタン群には、TV機能を制御するための操作ボタン群も含まれている。
また、コンピュータ本体11の正面には、本コンピュータ10のTV機能をリモート制御するリモコンユニットとの通信を実行するためのリモコンユニットインタフェース部20が設けられている。リモコンユニットインタフェース部20は、赤外線信号受信部などから構成される。さらに、コンピュータ本体11の例えば右側面には、TV放送用のアンテナ端子19が設けられている。
次に、図2を参照して、本コンピュータ10のシステム構成について説明する。
本コンピュータ10は、図2に示されているように、CPU101、ノースブリッジ102、主メモリ103、サウスブリッジ104、グラフィクスプロセシングユニット(GPU)105、ビデオメモリ(VRAM)105A、サウンドコントローラ106、BIOS−ROM107、LANコントローラ108、ハードディスクドライブ(HDD)109、DVDドライブ110、無線LANコントローラ111、IEEE 1394コントローラ112、エンベデッドコントローラ/キーボードコントローラIC(EC/KBC)113、TVチューナ114、EEPROM115等を備えている。
CPU101は、本コンピュータ10の動作を制御するプロセッサであり、ハードディスクドライブ(HDD)109から主メモリ103にロードされる、オペレーティングシステム(OS)201や、このOS201の配下で動作するTVアプリケーションプログラム202のような各種アプリケーションプログラムを実行する。TVアプリケーションプログラム202は、前述のTV機能を実行するためのソフトウェアである。このTVアプリケーションプログラム202は、TVチューナ114が符号化された動画像ストリームとして受信する放送番組データを視聴するためのライブ再生処理、受信された放送番組データをHDD109に記録する録画処理およびHDD109に記録された放送番組データ/ビデオデータを再生する再生処理等を実行する。また、CPU101は、BIOS−ROM107に格納されたBIOS(Basic Input/Output System)も実行する。BIOSは、ハードウェア制御のためのプログラムである。
ノースブリッジ102は、CPU101のローカルバスとサウスブリッジ104との間を接続するブリッジデバイスである。ノースブリッジ102には、主メモリ103をアクセス制御するメモリコントローラも内蔵されている。また、ノースブリッジ102は、PCI EXPRESS規格のシリアルバスなどを介してGPU105との通信を実行する機能も有している。
GPU105は、本コンピュータ10のディスプレイモニタとして使用されるLCD17を制御する表示コントローラである。このGPU105によって生成される表示信号はLCD17に送られる。このGPU105は、各種アプリケーションプログラムが表示しようとする画像をCPU101に代わって描画するアクセラレータを搭載する。このGPU105が搭載するアクセラレータは、TVチューナ114によって受信される符号化された動画像ストリームの復号処理の一部をTVアプリケーションプログラム202に代わって実行する機能を有している。そして、本コンピュータ10は、このアクセラレータの機能を利用した動画像ストリームの復号を効率的に行うべく工夫したものであり、この点については後述する。
サウスブリッジ104は、LPC(Low Pin Count)バス上の各デバイスおよびPCI(Peripheral Component Interconnect)バス上の各デバイスを制御する。また、サウスブリッジ104は、HDD109およびDVDドライブ110を制御するためのIDE(Integrated Drive Electronics)コントローラを内蔵している。さらに、サウスブリッジ104は、サウンドコントローラ106との通信を実行する機能も有している。
サウンドコントローラ106は音源デバイスであり、再生対象のオーディオデータをスピーカ18A,18Bに出力する。
無線LANコントローラ111は、たとえばIEEE 802.11規格の無線通信を実行する無線通信デバイスである。IEEE 1394コントローラ112は、IEEE 1394規格のシリアルバスを介して外部機器との通信を実行する。
EC/KBC113は、電力管理を行うためのエンベデッドコントローラと、キーボード(KB)13およびタッチパッド16を制御するためのキーボードコントローラとが集積された1チップマイクロコンピュータである。このEC/KBC113は、ユーザによるパワーボタン14の操作に応じて本コンピュータ10をパワーオン/パワーオフする機能を有している。さらに、EC/KBC113は、リモコンユニットインタフェース部20との通信を実行する機能を有している。
TVチューナ114はテレビジョン放送信号によって放送される放送番組データを受信する受信装置であり、アンテナ端子19に接続されている。このTVチューナ114は、例えば、地上波デジタルTV放送のようなデジタル放送番組データを受信可能なデジタルTVチューナとして実現されている。また、TVチューナ114は、外部機器から入力されるビデオデータをキャプチャする機能も有している。
ここで、このような構成を持つ本コンピュータ10が実現する、GPU105が搭載するアクセラレータの機能を利用して動画像ストリームを復号するにあたっての効率化の原理の理解を助けるために、図3乃至図5を参照して、GPU105が搭載するアクセラレータの機能を利用した一般的な動画像ストリームの復号手順を説明する。
動画像の圧縮符号化の主要な方式であるMPEG2規格では、各画像を16×16画素のマクロブロックに分割し、このマクロブロック単位に符号化を行う。そして、このマクロブロックを行方向に並べてスライスを構成する。図3は、この各画像(フレーム)、スライス、マクロブロックの関係を示す概念図である。
図3に示すように、各フレームaは、複数のスライスb1,b2,…に分割され、各スライスb1,b2,…は、1以上のマクロブロックcから構成される。MPEG2規格に準拠した方式で圧縮符号化された動画像ストリームは、シーケンス層、GOP層、ピクチャ層、スライス層、マクロブロック層、ブロック層の6層の階層構造となり、各フレームa毎にピクチャ層が設けられ、また、複数のスライスb1,b2,…毎に、ピクチャ層の下層としてスライス層が設けられる。よって、例えば30fpsの動画像ストリームに対しては、TVアプリケーションプログラム202は、ピクチャ層単位の復号処理を、1/30秒以内に完了させる必要がある。
一方、GPU105が搭載するアクセラレータは、この動画像ストリームの復号処理をスライス層単位で行う機能を有している。そこで、TVアプリケーションプログラム202は、スライス層以下の復号処理を、このアクセラレータに代行させる。また、アクセラレータは、動画像ストリームの入力をスライス単位で受け付ける際、このスライスの先頭のマクロブロックのフレーム内での位置(アドレス)と、当該スライスに含まれるマクロブロック数とを引数として要求する。図3に示す例でいえば、2つめのスライスb2の復号処理をアクセラレータに行わせる場合、TVアプリケーションプログラム202は、その先頭のマクロブロックのアドレスが(3,0)であることと、3つのマクロブロックが含まれていることとをアクセラレータに教える必要がある。
即ち、図4に示すように、放送番組データを再生するTVアプリケーションプログラム202は、その復号処理を司るソフトウェアデコーダ2021が、GPU105のアクセラレータ1051に対して、スライス単位の動画像ストリーム(スライスストリーム)を供給すると共に、先頭マクロブロックアドレスと、スライス内マクロブロック数とを供給する。
図5は、MPEG2規格に準拠した方式で圧縮符号化された動画像ストリームの構造を示す図である。
前述したように、MPEG2規格に準拠した方式で圧縮符号化された動画像ストリームは、この図5に示すように、シーケンス層(A)、GOP層(B)、ピクチャ層(C)、スライス層(D)、マクロブロック層(E)、ブロック層(F)の6層の階層構造となっている。ここで、TVアプリケーションプログラム202のソフトウェアデコーダ2021が、GPU105のアクセラレータ1051に供給する、先頭マクロブロックアドレスとスライス内マクロブロック数とを、一般的な手順によった場合にはどのように取得するかについて説明する。
まず、先頭マクロブロックアドレスについては、垂直位置と水平位置とを取得する必要があるが、垂直位置は、スライスの垂直位置と等価であり、その値は、スライス層のヘッダ部(d1)に含まれている。一方、水平位置は、スライス層の下層である各マクロブロック層のMBAI(マクロブロックアドレスインクリメント:d2)を各行の開始位置からすべて辿っていかなくては得られない。図3に示す例でいえば、2つめのスライスb2の先頭のマクロブロックの水平位置が3であることを取得するためには、1つめのスライスb1の各マクロブロック層のMBAIをすべて辿らなければならない。MBAIには、その値だけで各画像内での水平位置を特定可能な絶対的な値が格納されるのではなく、符号量が殆ど発生しなかったマクロブロックに関する情報を動画像ストリーム内から排除できるようにするために、直前のマクロブロック層に対応するマクロブロックからの相対的な位置(スキップ数)が格納されるためである。
次に、スライス内マクロブロック数についてであるが、先頭マクロブロックの水平位置を取得する場合と同様の理由で、スライス層の下層である各マクロブロック層のMBAIをすべて参照しないと、各スライスに含まれるマクロブロックの数を取得することはできない。図3に示す例でいえば、1つめのスライスb1が3つのマクロブロックを含んでいることを取得するためには、当該スライスb1の各マクロブロック層のMBAIをすべて参照しなければならない。
即ち、TVアプリケーションプログラム202のソフトウェアデコーダ2021は、動画像ストリームのスライス層以下の復号処理をGPU105のアクセラレータ1051に代行させようとしているにも関わらず、そのスライスの先頭のマクロブロックの水平位置および当該スライスに含まれるマクロブロックの数を取得するために、結局、そのスライス層以下の解析を行わなければならないこととなる。
そこで、本コンピュータ10では、テレビジョン放送信号によって放送される放送番組データ(あるいはインターネット経由で配信される放送番組データ)は、各画面の1行を1スライスとして動画像ストリームを構成していることに着目し、第1に、図6に示すように、各スライスの先頭のマクロブロックの水平位置は、常に、各行の開始位置(0)であるものとし、また、第2に、図7に示すように、各スライスに含まれるマクロブロックの数は、各画像の水平方向の画素数をマクロブロックの画素数で除した値を用いる。各画像の水平方向の画素数は、シーケンス層のヘッダ部(d3)に含まれている。
これにより、本コンピュータ10においては、動画像ストリームのスライス層以下の復号処理をGPU105のアクセラレータ1051に代行させるTVアプリケーションプログラム202のソフトウェアデコーダ2021は、スライス層以下の解析を行う必要がなくなり、解析処理の簡略化が実現される。
また、例えばTVチューナ114による放送番組データの受信環境が整っていない等に起因して、1つのスライス分の動画像ストリームがロストしてしまった場合を考える。一般的な復号手順によっていた場合、後続のスライスを復号するための情報(先頭のマクロブロックの水平位置)を当該ロストしたスライスから得なければならないため、このフレーム自体を破棄せざるを得なかった。これに対して、本コンピュータ10においては、あるスライスの復号に必要な情報を直前のスライスから得ることがないため、ロストの影響を当該スライスのみに限定することができる。
なお、仮に、ある行が複数のスライスからなっており、GPU105のアクセラレータ1051が引数の不整合を原因として復号処理をエラー終了した場合、TVアプリケーションプログラム202のソフトウェアデコーダ2021は、一般的な手順により先頭マクロブロックアドレスとスライス内マクロブロック数とを取得して、当該スライスについての復号をGPU105のアクセラレータ1051に改めて依頼する。TVアプリケーションプログラム202のソフトウェアデコーダ2021は、このエラー終了したスライスを含む行の範囲内で、この一般的な手順を採用する。
また、TVアプリケーションプログラム202のソフトウェアデコーダ2021は、GPU105のアクセラレータ1051が引数の不整合を原因として復号処理をエラー終了した場合に備えて、一般的な手順による先頭マクロブロックアドレスとスライス内マクロブロック数との取得を、CPU101の負荷を考慮して、低優先度で並行して行うようにしても良い。
図8は、本コンピュータ10による動画像ストリームの復号処理の動作手順を示すフローチャートである。
TVアプリケーションプログラム202のソフトウェアデコーダ2021は、まず、動画像ストリームのヘッダ部(シーケンス層のHS)から各画面の水平方向の画素数を取得する(ステップA1)。そして、この取得した各画面の水平方向の画素数をマクロブロックの水平方向の画素数で割ることにより、各画面の水平方向のマクロブロック数を算出する(ステップA2)。TVアプリケーションプログラム202のソフトウェアデコーダ2021は、以降、この値を、GPU105のアクセラレータ1051に与える引数の1要素である各スライス内に含まれるマクロブロック数として使用する。
次に、TVアプリケーションプログラム202のソフトウェアデコーダ2021は、各スライスについて、そのヘッダ部(スライス層のSSC)から当該スライスの垂直位置を取得し、この値をGPU105のアクセラレータ1051に与える引数の1要素である当該スライスの先頭マクロブロックの垂直位置として設定する(ステップA3)。一方、同じくGPU105のアクセラレータ1051に与える引数の1要素である当該スライスの先頭マクロブロックの水平位置については、TVアプリケーションプログラム202のソフトウェアデコーダ2021は、その値を0(行の開始位置)と決め付けて設定する(ステップA4)。
そして、TVアプリケーションプログラム202のソフトウェアデコーダ2021は、1スライス分の動画像ストリームを与えて、当該動画像ストリームの復号処理をGPU105のアクセラレータ1051に実行させる(ステップA5)。もし、この処理が引数の不整合を原因としてエラー終了したならば(ステップA6のNO)、TVアプリケーションプログラム202のソフトウェアデコーダ2021は、一般的な手順で当該スライスの先頭マクロブロックの水平位置およびマクロブロック数を取得し(ステップA7)、エラー終了したスライスに関する動画像ストリームの復号処理をGPU105のアクセラレータ1051に再実行させる(ステップA8)。TVアプリケーションプログラム202のソフトウェアデコーダ2021は、このエラー終了したスライスを含む行の範囲内においては、一般的な手順でスライスの先頭マクロブロックの水平位置およびマクロブロック数を取得しながら、動画像ストリームの復号処理をGPU105のアクセラレータ1051に実行させる(ステップA7〜A9)。
一方、動画像ストリームの復号処理が正常終了した場合(ステップA6のYES)、または、エラー終了したスライスを含む行内のすべてのスライスの復号処理が終了した場合(ステップA9のYES)、TVアプリケーションプログラム202のソフトウェアデコーダ2021は、後続の動画像ストリームの存在有無を確認し(ステップA10)、後続の動画像ストリームが存在すれば(ステップA10のNO)、ステップA3からの処理を繰り返す。そして、後続の動画像ストリームが存在しないならば(ステップA10のYES)、TVアプリケーションプログラム202のソフトウェアデコーダ2021は、動画像ストリームの復号処理を終了する。
また、図9は、1つの行に複数のスライスが含まれていた場合に対処するための手順をより具体的に表した、本コンピュータ10による動画像ストリームの復号処理の動作手順を示すフローチャートである。
TVアプリケーションプログラム202のソフトウェアデコーダ2021は、まず、動画像ストリームのヘッダ部(シーケンス層のHS)から各画面の水平方向の画素数を取得する(ステップB1)。そして、この取得した各画面の水平方向の画素数をマクロブロックの水平方向の画素数で割ることにより、各画面の水平方向のマクロブロック数を算出する(ステップB2)。また、TVアプリケーションプログラム202のソフトウェアデコーダ2021は、各スライスについて、そのヘッダ部(スライス層のSSC)から当該スライスの垂直位置を取得する(ステップB3)。
ここで、TVアプリケーションプログラム202のソフトウェアデコーダ2021は、取得した当該スライスの垂直位置が直前のスライスから取得された垂直位置と同じ値か否かを判断する(ステップB4)。同じ値でなければ(ステップB4のNO)、TVアプリケーションプログラム202のソフトウェアデコーダ2021は、先に算出した各画面の水平方向のマクロブロック数をGPU105のアクセラレータ1051に与える引数の1要素である各スライス内に含まれるマクロブロック数として設定すると共に、取得した当該スライスの垂直位置の値をGPU105のアクセラレータ1051に与える引数の1要素である当該スライスの先頭マクロブロックの垂直位置として設定し、さらに、同じくGPU105のアクセラレータ1051に与える引数の1要素である当該スライスの先頭マクロブロックの水平位置について、その値を0(行の開始位置)に設定して(ステップB5)、1スライス分の動画像ストリームを与え、当該動画像ストリームの復号処理をGPU105のアクセラレータ1051に実行させる(ステップB6)。
もし、この処理が引数の不整合を原因としてエラー終了したならば(ステップB7のNO)、TVアプリケーションプログラム202のソフトウェアデコーダ2021は、一般的な手順で当該スライスの先頭マクロブロックの水平位置およびマクロブロック数を取得し(ステップB8)、エラー終了したスライスに関する動画像ストリームの復号処理をGPU105のアクセラレータ1051に再実行させる(ステップB9)。
また、取得した当該スライスの垂直位置が直前のスライスから取得された垂直位置と同じ値であった場合(ステップB4のYES)、当該スライスは、1つの行に含まれる複数のスライス中の2番目以降のスライスと推定されるので、TVアプリケーションプログラム202のソフトウェアデコーダ2021は、その時点で、一般的な手順による当該スライスの先頭マクロブロックの水平位置およびマクロブロック数の取得を実施し(ステップB8)、当該スライスに関する動画像ストリームの復号処理をGPU105のアクセラレータ1051に実行させる(ステップB9)。
そして、TVアプリケーションプログラム202のソフトウェアデコーダ2021は、後続の動画像ストリームの存在有無を確認し(ステップB10)、後続の動画像ストリームが存在すれば(ステップB10のNO)、ステップB3からの処理を繰り返し、後続の動画像ストリームが存在しないならば(ステップB10のYES)、動画像ストリームの復号処理を終了する。
以上のように、本コンピュータ10においては、TVアプリケーションプログラム202のソフトウェアデコーダ2021が、符号化された動画像ストリームの復号処理の一部をGPU105のアクセラレータ1051に代行させるにあたっての解析処理の簡略化を実現する。
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に構成要素を適宜組み合わせてもよい。
本発明の一実施形態に係る情報処理装置の概観の例を示す斜視図 同実施形態の情報処理装置のシステム構成の例を示すブロック図 MPEG2規格に準拠した方式で圧縮符号化された動画像ストリームにおけるフレーム、スライス、マクロブロックの関係を示す概念図 同実施形態の情報処理装置上で動作するTVアプリケーションプログラムのソフトウェアデコーダとGPUのアクセラレータとの関係を示す概念図 MPEG2規格に準拠した方式で圧縮符号化された動画像ストリームの構造を示す図 同実施形態の情報処理装置で実行される動画像ストリームの復号時における解釈処理の簡略化の基本原理を説明するための第1の図 同実施形態の情報処理装置で実行される動画像ストリームの復号時における解釈処理の簡略化の基本原理を説明するための第2の図 同実施形態の情報処理装置による動画像ストリームの復号処理の動作手順を示すフローチャート 同実施形態の情報処理装置による動画像ストリームの復号処理の動作手順を示す第2のフローチャート
符号の説明
10…パーソナルコンピュータ、11…コンピュータ本体、12…ディスプレイユニット、13…キーボード(KB)、14…パワーボタン、15…入力操作パネル、16…タッチパッド、17…LCD、18A,18B…スピーカ、19…アンテナ端子、20…リモコンユニットインタフェース部、101…CPU、102…ノースブリッジ、103…主メモリ、104…サウスブリッジ、105…グラフィクスプロセシングユニット(GPU)、105A…ビデオメモリ、106…サウンドコントローラ、107…BIOS−ROM、108…LANコントローラ、109…ハードディスクドライブ(HDD)、110…DVDドライブ、111…LANコントローラ、112…コントローラ、113…エンベデッドコントローラ/キーボードコントローラIC(EC/KBC)、114…TVチューナ、115…EEPROM、201…オペレーティングシステム(OS)、202…TVアプリケーションプログラム、1051…アクセラレータ、2021…ソフトウェアデコーダ。

Claims (13)

  1. 各画像をマトリックス状に分割して生成されるn×n画素のマクロブロック単位に符号化された動画像ストリームを入力する入力手段と、
    前記マクロブロックを行方向に並べて構成されるスライス単位に、各スライスの先頭のマクロブロックの各画像内における水平位置および垂直位置を示すアドレスと、各スライスに含まれるマクロブロック数とを引数として受け取って、前記入力手段が入力した動画像ストリームを復号する復号手段と、
    前記入力手段が入力した動画像ストリームのヘッダ部に含まれる各画像の水平方向の画素数の情報を取得し、この水平方向の画素数の情報から各画像の行方向のマクロブロック数を算出する第1の解析手段と、
    前記入力手段が入力した動画像ストリーム中の各スライスのヘッダ部に含まれる各スライスの各画像内における垂直位置の情報を取得する第2の解析手段と、
    各スライスの先頭のマクロブロックの各画像内における水平位置として各画像の水平方向の開始位置を示し、かつ、各スライスの先頭のマクロブロックの各画像内における垂直位置として前記第2の解析手段が取得した垂直位置を示すアドレスと、各スライスに含まれるマクロブロック数として前記第1の解析手段が算出したマクロブロック数とを引数として与えて、前記動画像ストリームの復号を前記復号手段にスライス単位に実行させる復号制御手段と、
    を具備することを特徴とする情報処理装置。
  2. 前記入力手段が入力した動画像ストリーム中の各マクロブロックの情報を各画像の行の先頭のマクロブロックからすべて辿って、各スライスの先頭のマクロブロックの各画像内における水平位置と、各スライスに含まれるマクロブロック数とを取得する第3の解析手段をさらに具備し、
    前記復号制御手段は、あるスライスについて、引数の不整合を原因として前記復号手段が前記動画像ストリームの復号をエラー終了した場合、各スライスの先頭のマクロブロックの各画像内における水平位置と、各スライスに含まれるマクロブロック数とを前記第3の解析手段により取得し、この値を前記第2の解析手段が取得した垂直位置と共に引数として与えて、当該エラー終了したスライスについて、前記動画像ストリームの復号を前記復号手段に再実行させる手段を含む、
    ことを特徴とする請求項1記載の情報処理装置。
  3. 前記復号制御手段は、前記エラー終了したスライスの後続スライスであって、前記エラー終了したスライスと各画面上で同一行のスライスについては、各スライスの先頭のマクロブロックの各画像内における水平位置と、各スライスに含まれるマクロブロック数とを前記第3の解析手段により取得し、この値を前記第2の解析手段が取得した垂直位置と共に引数として与えて、前記動画像ストリームの復号を前記復号手段に実行させることを特徴とする請求項2記載の情報処理装置。
  4. 前記復号制御手段は、あるスライスについて、前記動画像ストリームの復号を前記復号手段に実行させる際、これと並行して、当該スライスの先頭のマクロブロックの各画像内における水平位置および当該スライスに含まれるマクロブロック数の取得を前記第3の解析手段に実行させる手段を含むことを特徴とする請求項2記載の情報処理装置。
  5. 前記入力手段は、テレビジョン放送信号によって放送されるデジタル放送番組データを前記動画像ストリームとして入力することを特徴とする請求項1記載の情報処理装置。
  6. 前記入力手段は、コンピュータネットワークを介して接続されるサーバから前記動画像ストリームを入力することを特徴とする請求項1記載の情報処理装置。
  7. 前記動画像ストリームは、MPEG(Moving Picture Experts Group)2規格に準拠した方式で動画像が圧縮符号化されたものであることを特徴とする請求項1記載の情報処理装置。
  8. 前記入力手段が入力した動画像ストリーム中の各マクロブロックの情報を各画像の行の先頭のマクロブロックからすべて辿って、各スライスの先頭のマクロブロックの各画像内における水平位置と、各スライスに含まれるマクロブロック数とを取得する第3の解析手段をさらに具備し、
    前記復号制御手段は、前記第2の解析手段が取得した垂直位置の情報が直前のスライスから取得された垂直位置の情報と同じ値であった場合、各スライスの先頭のマクロブロックの各画像内における水平位置と、各スライスに含まれるマクロブロック数とを前記第3の解析手段により取得し、この値を前記第2の解析手段が取得した垂直位置と共に引数として与えて、前記動画像ストリームの復号を前記復号手段に実行させる手段を含む、
    ことを特徴とする請求項1記載の情報処理装置。
  9. 各画像をマトリックス状に分割して生成されるn×n画素のマクロブロック単位に符号化された動画像ストリームを入力する入力手段と、前記マクロブロックを行方向に並べて構成されるスライス単位に、各スライスの先頭のマクロブロックの各画像内における水平位置および垂直位置を示すアドレスと、各スライスに含まれるマクロブロック数とを引数として受け取って、前記入力手段が入力した動画像ストリームを復号する復号手段とを有する情報処理装置における復号制御方法であって、
    前記情報処理装置は、
    前記入力手段が入力した動画像ストリームのヘッダ部に含まれる各画像の水平方向の画素数の情報を取得し、この水平方向の画素数の情報から各画像の行方向のマクロブロック数を算出し、
    前記入力手段が入力した動画像ストリーム中の各スライスのヘッダ部に含まれる各スライスの各画像内における垂直位置の情報を取得し、
    各スライスの先頭のマクロブロックの各画像内における水平位置として各画像の水平方向の開始位置を示し、かつ、各スライスの先頭のマクロブロックの各画像内における垂直位置として前記取得した垂直位置を示すアドレスと、各スライスに含まれるマクロブロック数として前記算出したマクロブロック数とを引数として与えて、前記動画像ストリームの復号を前記復号手段にスライス単位に実行させる、
    ことを特徴とする復号制御方法。
  10. 前記情報処理装置は、
    さらに、あるスライスについて、引数の不整合を原因として前記復号手段が前記動画像ストリームの復号をエラー終了した場合、前記入力手段が入力した動画像ストリーム中の各マクロブロックの情報を各画像の行の先頭のマクロブロックからすべて辿って、各スライスの先頭のマクロブロックの各画像内における水平位置と、各スライスに含まれるマクロブロック数とを取得し、この値を前記取得した垂直位置と共に引数として与えて、当該エラー終了したスライスについて、前記動画像ストリームの復号を前記復号手段に再実行させることを特徴とする請求項9記載の復号制御方法。
  11. 前記情報処理装置は、
    前記エラー終了したスライスの後続スライスであって、前記エラー終了したスライスと各画面上で同一行のスライスについては、各スライスの先頭のマクロブロックの各画像内における水平位置と、各スライスに含まれるマクロブロック数とを、前記入力手段が入力した動画像ストリーム中の各マクロブロックの情報を各画像の行の先頭のマクロブロックからすべて辿って取得し、この値を前記取得した垂直位置と共に引数として与えて、前記動画像ストリームの復号を前記復号手段に実行させることを特徴とする請求項10記載の復号制御方法。
  12. 前記情報処理装置は、
    あるスライスについて、前記動画像ストリームの復号を前記復号手段に実行させる際、これと並行して、当該スライスの先頭のマクロブロックの各画像内における水平位置および当該スライスに含まれるマクロブロック数を、前記入力手段が入力した動画像ストリーム中の各マクロブロックの情報を各画像の行の先頭のマクロブロックからすべて辿って取得することを特徴とする請求項10記載の復号制御方法。
  13. 前記情報処理装置は、
    さらに、前記取得した垂直位置の情報が直前のスライスから取得された垂直位置の情報と同じ値であった場合、前記入力手段が入力した動画像ストリーム中の各マクロブロックの情報を各画像の行の先頭のマクロブロックからすべて辿って、各スライスの先頭のマクロブロックの各画像内における水平位置と、各スライスに含まれるマクロブロック数とを取得し、この値を前記取得した垂直位置と共に引数として与えて、前記動画像ストリームの復号を前記復号手段に実行させることを特徴とする請求項9記載の復号制御方法。
JP2008324332A 2008-03-31 2008-12-19 情報処理装置および復号制御方法 Active JP4314315B1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008324332A JP4314315B1 (ja) 2008-03-31 2008-12-19 情報処理装置および復号制御方法
US12/392,002 US7725008B2 (en) 2008-03-31 2009-02-24 Information processing apparatus and decoding control method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2008091728 2008-03-31
JP2008324332A JP4314315B1 (ja) 2008-03-31 2008-12-19 情報処理装置および復号制御方法

Publications (2)

Publication Number Publication Date
JP4314315B1 true JP4314315B1 (ja) 2009-08-12
JP2009268060A JP2009268060A (ja) 2009-11-12

Family

ID=41036724

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008324332A Active JP4314315B1 (ja) 2008-03-31 2008-12-19 情報処理装置および復号制御方法

Country Status (2)

Country Link
US (1) US7725008B2 (ja)
JP (1) JP4314315B1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102447962B (zh) * 2010-09-30 2016-03-30 联想(北京)有限公司 一种具有电视功能的终端及显示方法
BR112014001026B1 (pt) 2011-07-15 2022-05-03 Ge Video Compression, Llc Codificação de matriz de amostra de baixo atrasdo
CN107277505B (zh) * 2017-05-19 2020-06-16 北京大学 基于软硬件分区的avs-2视频解码器装置
CN110022481B (zh) * 2018-01-10 2023-05-02 中兴通讯股份有限公司 视频码流的解码、生成方法及装置、存储介质、电子装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4906197B2 (ja) 2000-05-29 2012-03-28 ソニー株式会社 復号装置および方法、並びに記録媒体
JP4182442B2 (ja) * 2006-04-27 2008-11-19 ソニー株式会社 画像データの処理装置、画像データの処理方法、画像データの処理方法のプログラム及び画像データの処理方法のプログラムを記録した記録媒体
JP2008072647A (ja) * 2006-09-15 2008-03-27 Toshiba Corp 情報処理装置、デコーダおよび再生装置の動作制御方法

Also Published As

Publication number Publication date
JP2009268060A (ja) 2009-11-12
US7725008B2 (en) 2010-05-25
US20090245383A1 (en) 2009-10-01

Similar Documents

Publication Publication Date Title
JP2011507401A (ja) 変化するビジュアルコンテンツの通信
CN104685873B (zh) 编码控制设备以及编码控制方法
US20080069244A1 (en) Information processing apparatus, decoder, and operation control method of playback apparatus
JP4314315B1 (ja) 情報処理装置および復号制御方法
JP2009038501A (ja) 復号化装置および復号方法
JP2006254232A (ja) 情報処理装置およびプログラム
JP2007174195A (ja) 電子機器、自動シーンスキップ方法およびプログラム
US8891015B2 (en) Electronic apparatus and display control method
US8787466B2 (en) Video playback device, computer readable medium and video playback method
JP4519929B2 (ja) 情報処理装置およびリカバリ処理方法
JP2007295392A (ja) 情報処理装置、復号処理方法、およびプログラム
JP2011244160A (ja) 再生装置および再生方法
JP2006279709A (ja) 情報処理装置および画像処理方法
JP2008177907A (ja) 動画データ復号装置、情報機器、動画データ復号方法および動画データ復号プログラム
JP4592805B1 (ja) 動画像復号装置、プログラムおよび復号処理簡略化方法
US20140099039A1 (en) Image processing device, image processing method, and image processing system
JP2011009949A (ja) 映像処理装置及び映像処理方法
JP4751413B2 (ja) 情報処理装置およびデコーダの判定モード設定方法
JP5106671B1 (ja) 電子機器および再生制御方法
JP5238850B2 (ja) 情報処理装置および動画像ストリームの復号方法
US8873939B2 (en) Electronic apparatus, control method of electronic apparatus, and computer-readable storage medium
JP4922418B2 (ja) 再生装置および再生装置の制御方法
JP5092028B2 (ja) 映像処理装置及び映像処理方法
JP2010028436A (ja) 動画像復号装置、プログラムおよび復号処理簡略化方法
JP2010148048A (ja) 動画像再圧縮装置および動画像再圧縮方法

Legal Events

Date Code Title Description
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: 20090421

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: 20090518

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

Free format text: PAYMENT UNTIL: 20120522

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 4314315

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

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

Free format text: PAYMENT UNTIL: 20120522

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120522

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130522

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130522

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140522

Year of fee payment: 5

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313117

Free format text: JAPANESE INTERMEDIATE CODE: R313121

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350