JP4519929B2 - 情報処理装置およびリカバリ処理方法 - Google Patents

情報処理装置およびリカバリ処理方法 Download PDF

Info

Publication number
JP4519929B2
JP4519929B2 JP2008155608A JP2008155608A JP4519929B2 JP 4519929 B2 JP4519929 B2 JP 4519929B2 JP 2008155608 A JP2008155608 A JP 2008155608A JP 2008155608 A JP2008155608 A JP 2008155608A JP 4519929 B2 JP4519929 B2 JP 4519929B2
Authority
JP
Japan
Prior art keywords
slice
macroblock
data
error
decoding
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
JP2008155608A
Other languages
English (en)
Other versions
JP2009302948A (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 JP2008155608A priority Critical patent/JP4519929B2/ja
Priority to US12/428,339 priority patent/US20090310684A1/en
Publication of JP2009302948A publication Critical patent/JP2009302948A/ja
Application granted granted Critical
Publication of JP4519929B2 publication Critical patent/JP4519929B2/ja
Priority to US13/099,313 priority patent/US8218649B2/en
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/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/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/176Methods 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 block, e.g. a macroblock
    • 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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
    • H04N19/895Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder in combination with error concealment

Landscapes

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

Description

この発明は、例えばテレビジョン放送信号によって放送されるデジタル放送番組データを記録・再生するTV機能を有するパーソナルコンピュータ等に適用して好適な動画像ストリームの復号制御技術に関する。
近年、バッテリ駆動可能で携行容易なノートブックタイプのパーソナルコンピュータが広く普及している。この種のコンピュータは、薄型軽量化と並行して高機能化が日々図られており、デジタルテレビジョン放送番組を視聴するためのTV機能を搭載するものも登場してきている。従って、この種のコンピュータを携行すれば、ユーザは、外出先や移動中においても、デジタルテレビジョン放送番組を楽しむことができる。
また、無線通信環境の整備に伴い、外出先や移動中においても、インターネットに接続することが容易になり、インターネットを介して接続したサーバからデジタルテレビジョン放送番組データを受信して視聴するといったことも可能となっている。
デジタル放送番組データは、例えばMPEG(Moving Picture Experts Group)2規格に準拠した方式などで圧縮符号化された動画像ストリームである。そして、このような圧縮符号化された動画像ストリームの一部が転送中に欠落したりエラーを発生させたりした場合であっても画像を再生できるようにするためのリカバリの仕組みが、これまで種々提案されている(例えば特許文献1等参照)。
特開平9−154135号公報
通常、コンピュータは、各種アプリケーションプログラムが表示しようとする画像をCPUに代わって描画するグラフィックスアクセラレータ(以下、アクセラレータ)を標準的に搭載する。そして、最近では、圧縮符号化された動画像ストリームを復号するためのデコード処理の一部を実行する機能を持つアクセラレータが登場し始めている。TV機能を搭載するコンピュータの中には、このTV機能をソフトウェアによって実現しているものも少なくない。この場合、動画像ストリームのデコード処理もCPU上で動作する当該ソフトウェア内の1モジュールによって実行されることになるが、その一部をアクセラレータに代行させることにより、CPUの負荷を大幅に軽減することが期待される。
ところで、MPEG2規格に準拠した方式で圧縮符号化された動画像ストリームは、シーケンス層、GOP(Group Of Picture)層、ピクチャ層、スライス層、マクロブロック層およびブロック層の6層の階層構造となっている。このうち、ピクチャ層は、動画像中の各画像と一対に設けられるものであり、その下層のスライス層は、各画像を水平方向に分割して生成される部分画像データの集合体(スライス)である。また、マクロブロックは、各画像をマトリックス状に分割して生成されるものであり、即ち、このマクロブロックを行方向に並べたものがスライスとなる。そして、前述の、圧縮符号化された動画像ストリームを復号するためのデコード処理の一部を実行する機能を持つアクセラレータの代表的なものの1つに、このスライス単位またはマクロブロック単位にデータを受け取って、デコード処理を実行するものが存在する。
スライス単位またはマクロブロック単位にデータを受け取ってデコード処理を実行するアクセラレータでは、前述の特許文献1に記載されたエラー処理装置のような周辺のデータを利用したリカバリ処理を実行することは不可能である。よって、スライス単位またはマクロブロック単位でのデコード処理を当該アクセラレータに代替させようとするソフトウェアは、圧縮符号化された動画像ストリームの一部が転送中に欠落したりエラーを発生させたりした場合でも、アクセラレータがデコード処理を正常終了させることのできるデータを補完して当該アクセラレータに供給する仕組みを備えることが求められる。
この発明は、このような事情を考慮してなされたものであり、符号化された動画像ストリームの復号処理の一部をアクセラレータに代行させる場合におけるリカバリ処理を実現した情報処理装置およびリカバリ処理方法を提供することを目的とする。
前述の目的を達成するために、この発明の情報処理装置は、各画像をマトリックス状に分割して生成されるn×n画素のマクロブロック単位に符号化された動画像ストリームを入力する入力手段と、前記マクロブロックを行方向に並べて構成されるスライス単位に動画像ストリームを復号するアクセラレータと、前記入力手段が入力した動画像ストリームを前記スライス単位で前記アクセラレータに供給して、前記動画像ストリームの復号を前記アクセラレータに前記スライス単位で行わせる復号制御手段と、を具備し、前記復号制御手段は、前記入力手段が入力した動画像ストリーム中の各スライスデータのヘッダ部に含まれる各スライスの画像内における位置を示す情報の値が適正か否かを判定する判定手段と、前記判定手段により処理対象のスライスデータについて前記画像内における位置を示す情報の値が適正な値ではないと判定された場合、処理対象のスライスの上段に隣接するスライスのスライスデータに対し、前記画像内における位置を示す情報を前記処理対象のスライス用に編集して前記アクセラレータに供給して復号させる第1のリカバリ手段と、前記入力手段が入力した動画像ストリーム中の各スライスのスライスデータを前記マクロブロック単位に検査する検査手段と、前記検査手段がエラーを検出した場合、前記検査手段がエラーを検出したマクロブロックを含むスライスデータについて、前記検査手段がエラーを検出したマクロブロックおよびその後続のマクロブロックのデータを、復号対象の画像内において前記検査手段がエラーを検出したマクロブロックを含むスライスの上段に隣接するスライス中の前記検査手段がエラーを検出したマクロブロックおよびその後続のマクロブロックの上段に隣接するマクロブロックのデータに置き換え、かつ、画像内における位置を示す情報を処理対象のスライス内の各マクロブロック用にそれぞれ編集して前記アクセラレータに供給して復号させる第2のリカバリ手段と、を有することを特徴とする。
また、この発明の情報処理装置は、各画像をマトリックス状に分割して生成される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に記録された放送番組データ/ビデオデータを再生する再生処理等を実行する。なお、TVアプリケーションプログラム202の他の利用形態として、LANコントローラ108や無線LANコントローラ111を介して取得される放送番組データを視聴等することも考えられる。また、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に代わって実行する機能を有している。より具体的には、アクセラレータは、動画像ストリーム中のデータを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上で動作する、放送番組データ(動画像ストリーム)を再生するTVアプリケーションプログラム202は、図3に示すように、その復号処理を司るソフトウェアデコーダ2021が、GPU105のアクセラレータ1051に対して、動画像ストリーム中のデータを所定の単位(後述するストリーム単位またはマクロブロック単位)で供給する。ここで、図4を参照して、このソフトウェアデコーダ2021とアクセラレータ1051とによる動画像ストリームの復号処理のための協働動作の概要について説明する。
動画像の圧縮符号化の主要な方式であるMPEG2規格では、各画像を16×16画素のマクロブロックに分割し、このマクロブロック単位に符号化を行う。そして、このマクロブロックを行方向に並べてスライスを構成する。図4は、この各画像(フレーム)、スライス、マクロブロックの関係を示す概念図である。
図4に示すように、各フレームaは、複数のスライスbに分割され、各スライスbは、複数のマクロブロックcから構成される。MPEG2規格に準拠した方式で圧縮符号化された動画像ストリームは、シーケンス層、GOP層、ピクチャ層、スライス層、マクロブロック層およびブロック層の6層の階層構造となり、各フレームa毎にピクチャ層が設けられる。また、各スライスb毎に、ピクチャ層の下層としてスライス層が設けられ、各マクロブロックc毎に、スライス層の下層としてマクロブロック層が設けられる。例えば30fpsの動画像ストリームの場合、ソフトウェアデコーダ2021は、ピクチャ層単位の復号処理を、1/30秒以内に完了させる必要がある。
一方、アクセラレータ1051は、この動画像ストリームの復号処理をスライス層単位またはマクロブロック層単位で行う機能を有している。そこで、ソフトウェアデコーダ2021は、スライス層またはマクロブロック層以下のデータを順次に渡して、その復号処理をアクセラレータに代行させる。
次に、図5乃至図9を参照して、以上のようにソフトウェアデコーダ2021とアクセラレータ1051とが協働して動画像ストリームを復号する本コンピュータ10が、動画像ストリームの一部が転送中に欠落したりエラーを発生させたりした場合に実行するリカバリ処理の基本原理について説明する。
図5および図6は、ソフトウェアデコーダ2021が動画像ストリームの復号処理をスライス単位でアクセラレータ1051に代行させる場合におけるリカバリ処理を説明するための概念図である。
まず、図5(A)に示すように、あるフレームの4番目のスライス(d1)がエラーを発生させた場合を想定する。図示の例では、スライスの番号を示す値が”4”から”100”に変化してしまっている。アクセラレータ1051に対してスライス層以下のデータを順次に渡していくソフトウェアデコーダ2021は、データ供給時に、各スライスの各フレーム内における垂直位置を示す値が適正な値か否かをチェックする。図7は、MPEG2規格に準拠した方式で圧縮符号化された動画像ストリームの構造を示す図であり、前述したように、MPEG2規格に準拠した方式で圧縮符号化された動画像ストリームは、この図7に示すように、シーケンス層(A)、GOP層(B)、ピクチャ層(C)、スライス層(D)、マクロブロック層(E)、ブロック層(F)の6層の階層構造となっている。各スライスの各フレーム内における垂直位置を示す値は、スライス層(D)のヘッダ部(f1)に含まれているので、これを参照して、ソフトウェアデコーダ2021は、このデータは4番目のスライスとして不適格であることを検出することができる。
また、図5(A)で例示した”100”という値は、後続のスライスのいずれにおいても適合しない値であるので、ソフトウェアデコーダ2021は、このデータはエラーを発生させていると判断して当該データを破棄する。そして、ソフトウェアデコーダ2021は、図5(B)に示すように、4番目のスライスの上段に隣接する、直前にアクセラレータ1051に供給した3番目のスライスのヘッダ部(f1)を4番目のスライス用に編集し、この編集後の本来は3番目のスライスのデータで4番目のスライスのデータを補完して(d2)アクセラレータ1051に供給する。
次に、図6(B)に示すように、あるフレームの4番目のスライスが欠落した場合を想定する。この場合、ソフトウェアデコーダ2021は、5番目のスライス(e1)のデータに対して4番目のスライスであることを前提としたチェックを行うことになり、スライスの番号を示す値が”4”ではなく”5”であることから、まず、このデータは4番目のスライスとして不適格であることを検出する。また、この”5”という値は、後続のスライスにおいて適合する値であるので、ソフトウェアデコーダ2021は、4番目のスライスのデータが欠落したと判断し、当該データを破棄せずに保持しておきながら、前述した上段に隣接するスライスのデータを用いた補完(e2)を行い、続いて、この保持しておいたデータをアクセラレータ1051に供給する。
また、図8は、ソフトウェアデコーダ2021が動画像ストリームの復号処理をマクロブロック単位でアクセラレータ1051に代行させる場合におけるリカバリ処理を説明するための概念図である。
アクセラレータ1051に対してマクロブロック層以下のデータを順次に渡していくソフトウェアデコーダ2021は、データ供給時に、(動きベクトルなどの)可変長データのハフマン符号化時にテーブルを外れるハフマン符号化テーブルエラーや、スキップマクロブロック値が規格を越える値となるスキップマクロブロックエラー等のエラー有無を検査する。ここでは、図8(A)においてハッチングを施したマクロブロック(g1)についてエラーを検出したものと想定する。
この場合、ソフトウェアデコーダ2021は、マクロブロック(g1)と、同一スライス内のすべての後続マクロブロックとのデータを破棄する。そして、ソフトウェアデコーダ2021は、図8(B)に示すように、このデータを破棄したそれぞれのマクロブロックについて、上段に隣接するマクロブロックのデータを用いた補完(g2〜g4)を実行する。この際、ソフトウェアデコーダ2021は、図7に示すマクロブロック層(E)のMBAI(マクロブロックアドレスインクリメント:f2)の値が、先行マクロブロックとの間で矛盾しない値となるようにするための編集を行う。このMBAIには、符号量が殆ど発生しなかったマクロブロック(隣接する部分からの変化が殆どない等)に関する情報を動画像ストリーム内から排除できるようにするために、直前のマクロブロック層に対応するマクロブロックからの相対的な位置を示す値(スキップ数)が格納される。
つまり、本コンピュータ10は、図9に示すように、あるフレームの例えばあるスライスのデータが欠落し、またはエラーを発生させた場合(図9(B1)のh1)、1つ前のフレームのデータ(図9(A))を用いることなく、同一フレーム内の上段に隣接するスライスのデータを用いた補完を行う(図9(B2)のh2)。つまり、VRAM105Aに格納されているであろう(復号済みの)1つ前のフレームのデータを探し出して取り込むような手間を掛けることがないので、高速性を維持したままのリカバリを実現する。また、同一フレーム内の上段に隣接するスライスのデータを用いるにあたっても、VRAM105Aに格納された復号済みのデータによらず、復号前のデータを編集することによるので、この点においても、高速性の維持が図られることになる。そして、このような部分的な瑕疵を含む動画像ストリームを復号しなければならない状況下においても、スライス単位またはマクロブロック単位といった部分毎に動画像ストリームの復号処理を代行するアクセラレータ1051を正常に動作させることを可能とする。
図10は、動画像ストリームの復号処理をスライス単位でアクセラレータ1051に代行させる場合におけるソフトウェアデコーダ2021のフレーム単位の動作手順を示すフローチャートである。
ソフトウェアデコーダ2021は、アクセラレータ1051に渡すスライスの番号を検査し(ステップA1)、その値が適正な値か否かを判定する(ステップA2)。この値が適正なものであれば(ステップA2のYES)、ソフトウェアデコーダ2021は、そのスライスのデータをアクセラレータ1051に供給する(ステップA7)。
一方、スライスの番号の値が適正なものでなかった場合(ステップA2のNO)、ソフトウェアデコーダ2021は、続いて、その値が後続スライスのいずれにおいても適合しない値であるか否かを判定する(ステップA3)。そして、その値が後続スライスのいずれにおいても適合しない値であれば(ステップA3のYES)、ソフトウェアデコーダ2021は、当該スライスの上段に隣接する前行のスライスのデータを当該スライス用に編集してアクセラレータ1051に供給する(ステップA8)。
一方、その値が後続スライスのいずれかにおいて適合する値であった場合(ステップA3のNO)、ソフトウェアデコーダ2021は、当該スライスの上段に隣接する前行のスライスのデータを当該スライス用に編集してアクセラレータ1051に供給した後(ステップA4)、その値が次のスライスにおいて適合するか否かを判断し(ステップA5,ステップA6)、適合したら(ステップA6のYES)、そのスライスのデータをアクセラレータ1051に供給する(ステップA7)。また、適合しなければ(ステップA6のNO)、ソフトウェアデコーダ2021は、ステップA4からの処理、即ち、前行のスライスのデータを用いた補完を繰り返す。
アクセラレータ1051に対するスライスのデータの供給後、ソフトウェアデコーダ2021は、そのスライスがフレーム内の最終スライスであったか否かを判定し(ステップA9)、最終スライスでなければ(ステップA9のNO)、次のスライスについてステップA1からの処理を繰り返し、最終スライスであれば(ステップA9のYES)、当該フレームについての処理を終了する。
また、図11は、動画像ストリームの復号処理をマクロブロック単位でアクセラレータ1051に代行させる場合におけるソフトウェアデコーダ2021のフレーム単位の動作手順を示すフローチャートである。
ソフトウェアデコーダ2021は、アクセラレータ1051に渡すマクロブロックについて、ハフマン符号化テーブルエラーやスキップマクロブロックエラー等のエラー有無を検査する(ステップB1)。エラーが検出されなければ(ステップB2のNO)、ソフトウェアデコーダ2021は、そのマクロブロックのデータをアクセラレータ1051に供給する(ステップB6)。
一方、エラーが検出された場合(ステップB2のYES)、ソフトウェアデコーダ2021は、そのマクロブロックが存在するスライスの上段に隣接する前行のスライス内において当該マクロブロックに対応する位置のマクロブロックのデータを当該マクロブロック用に編集してアクセラレータ1051に供給する(ステップB3)。
この補完を行った場合、ソフトウェアデコーダ2021は、そのマクロブロックがスライス内の最終マクロブロックであったか否かを判定し(ステップB4)、最終マクロブロックでなければ(ステップB4のNO)、後続マクロブロックすべてについて(ステップB5)、ステップB4からの処理、即ち、前行のスライス内において当該マクロブロックに対応する位置のマクロブロックのデータを用いた補完を繰り返す。
アクセラレータ1051に対するマクロブロックのデータの供給後、ソフトウェアデコーダ2021は、そのマクロブロックがフレーム内の最終マクロブロックであったか否かを判定し(ステップB7)、最終マクロブロックでなければ(ステップB7のNO)、次のマクロブロックについてステップB1からの処理を繰り返し、最終マクロブロックであれば(ステップB7のYES)、当該フレームについての処理を終了する。
このように、本コンピュータ10においては、ソフトウェアデコーダ2021が動画像ストリームの復号処理の一部をアクセラレータ1051に代行させる場合におけるリカバリ処理を実現することができる。
ところで、以上では、ソフトウェアデコーダ2021が動画像ストリームの復号処理をマクロブロック単位でアクセラレータ1051に代行させる場合におけるリカバリ処理として、エラーを検出したマクロブロックのデータを上段のマクロブロックのデータを用いて補完する例を説明したが、この手法を、ソフトウェアデコーダ2021が動画像ストリームの復号処理をスライス単位でアクセラレータ1051に代行させる場合におけるリカバリ処理として組み合わせることも当然に可能である。
より具体的に説明すると、スライス番号が不適合であった場合、その時点で上段のスライスのデータを用いた補完を実行し、スライス番号が適合する場合には、続いて、各マクロブロックについてエラー有無を検査する。そして、エラーが検知された場合、そのマクロブロックおよび後続のマクロブロックを上段のマクロブロックのデータを用いて置き換えたスライスのデータを生成して、この部分的な置き換えが施されたスライスのデータをアクセラレータ1051に供給するようにする。
このように、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に構成要素を適宜組み合わせてもよい。
本発明の一実施形態に係る情報処理装置の概観の例を示す斜視図 同実施形態の情報処理装置のシステム構成の例を示すブロック図 同実施形態の情報処理装置上で動作するTVアプリケーションプログラムのソフトウェアデコーダとGPUのアクセラレータとの関係を示す概念図 MPEG2規格に準拠した方式で圧縮符号化された動画像ストリームにおけるフレーム、スライス、マクロブロックの関係を示す概念図 同実施形態の情報処理装置で実行される、ソフトウェアデコーダが動画像ストリームの復号処理をスライス単位でアクセラレータに代行させる場合におけるリカバリ処理を説明するための第1の概念図 同実施形態の情報処理装置で実行される、ソフトウェアデコーダが動画像ストリームの復号処理をスライス単位でアクセラレータに代行させる場合におけるリカバリ処理を説明するための第2の概念図 MPEG2規格に準拠した方式で圧縮符号化された動画像ストリームの構造を示す図 同実施形態の情報処理装置で実行される、ソフトウェアデコーダが動画像ストリームの復号処理をマクロブロック単位でアクセラレータに代行させる場合におけるリカバリ処理を説明するための概念図 同実施形態の情報処理装置で実行される動画像ストリームの復号時におけるリカバリ処理の基本原理を表した概念図 同実施形態の情報処理装置で実行される、動画像ストリームの復号処理をスライス単位でアクセラレータに代行させる場合におけるソフトウェアデコーダのフレーム単位の動作手順を示すフローチャート 同実施形態の情報処理装置で実行される、動画像ストリームの復号処理をマクロブロック単位でアクセラレータに代行させる場合におけるソフトウェアデコーダのフレーム単位の動作手順を示すフローチャート
符号の説明
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…IEEE 1394コントローラ、113…エンベデッド/キーボードコントローラIC(EC/KBC)、114…TVチューナ、115…EEPROM、201…オペレーティングシステム(OS)、202…TVアプリケーションプログラム、1051…アクセラレータ、2021…ソフトウェアデコーダ。

Claims (11)

  1. 各画像をマトリックス状に分割して生成されるn×n画素のマクロブロック単位に符号化された動画像ストリームを入力する入力手段と、
    前記マクロブロックを行方向に並べて構成されるスライス単位に動画像ストリームを復号するアクセラレータと、
    前記入力手段が入力した動画像ストリームを前記スライス単位で前記アクセラレータに供給して、前記動画像ストリームの復号を前記アクセラレータに前記スライス単位で行わせる復号制御手段と、
    を具備し、
    前記復号制御手段は、
    前記入力手段が入力した動画像ストリーム中の各スライスデータのヘッダ部に含まれる各スライスの画像内における位置を示す情報の値が適正か否かを判定する判定手段と、
    前記判定手段により処理対象のスライスデータについて前記画像内における位置を示す情報の値が適正な値ではないと判定された場合、処理対象のスライスの上段に隣接するスライスのスライスデータに対し、前記画像内における位置を示す情報を前記処理対象のスライス用に編集して前記アクセラレータに供給して復号させる第1のリカバリ手段と、
    前記入力手段が入力した動画像ストリーム中の各スライスのスライスデータを前記マクロブロック単位に検査する検査手段と、
    前記検査手段がエラーを検出した場合、前記検査手段がエラーを検出したマクロブロックを含むスライスデータについて、前記検査手段がエラーを検出したマクロブロックおよびその後続のマクロブロックのデータを、復号対象の画像内において前記検査手段がエラーを検出したマクロブロックを含むスライスの上段に隣接するスライス中の前記検査手段がエラーを検出したマクロブロックおよびその後続のマクロブロックの上段に隣接するマクロブロックのデータに置き換え、かつ、画像内における位置を示す情報を処理対象のスライス内の各マクロブロック用にそれぞれ編集して前記アクセラレータに供給して復号させる第2のリカバリ手段と、
    を有することを特徴とする情報処理装置。
  2. 前記復号制御手段の前記第1のリカバリ手段は、前記判定手段により適正な値ではないと判定された前記画像内における位置を示す情報が、復号対象の画像内で処理対象のスライスよりも下段に位置するいずれのスライスについても適合しない値である場合、そのスライスデータを破棄することを特徴とする請求項1記載の情報処理装置。
  3. 前記復号制御手段の前記第1のリカバリ手段は、前記判定手段が適正な値ではないと判定した前記画像内における位置を示す情報が、復号対象の画像内で処理対象のスライスよりも下段に位置するいずれかのスライスについて適合する値である場合、処理対象のスライスから前記画像内における位置を示す情報の値が適合するスライスの上段に隣接するスライスまでについて、前記処理対象のスライスの上段に隣接するスライスデータを用いたリカバリ処理を行うことを特徴とする請求項1記載の情報処理装置。
  4. 各画像をマトリックス状に分割して生成されるn×n画素のマクロブロック単位に符号化された動画像ストリームを入力する入力手段と、
    前記マクロブロック単位に動画像ストリームを復号するアクセラレータと、
    前記入力手段が入力した動画像ストリームを前記マクロブロック単位で前記アクセラレータに供給して、前記動画像ストリームの復号を前記アクセラレータに前記マクロブロック単位で行わせる復号制御手段と、
    を具備し、
    前記復号制御手段は、
    前記入力手段が入力した動画像ストリームを前記マクロブロック単位に検査する検査手段と、
    前記検査手段がエラーを検出した場合、復号対象の画像内において前記エラーが検出されたマクロブロックの上段に隣接するマクロブロックのデータを、前記エラーが検出されたマクロブロック用に復号対象の画像内における位置を示す情報を編集して前記アクセラレータに供給して復号させるリカバリ手段と、
    を有することを特徴とする情報処理装置。
  5. 前記復号制御手段の前記リカバリ手段は、前記検査手段がエラーを検出したマクロブロックの後続マクロブロックであって、前記検査手段がエラーを検出したマクロブロックと復号対象の画面内において同一行のマクロブロックについて、復号対象の画像内において各マクロブロックの上段に隣接するマクロブロックのデータを用いたリカバリ処理を行うことを特徴とする請求項記載の情報処理装置。
  6. 前記復号制御手段の前記検査手段は、可変長データのハフマン符号化時にテーブルを外れるハフマン符号化テーブルエラーの有無を検査することを特徴とする請求項記載の情報処理装置。
  7. 前記復号制御手段の前記検査手段は、スキップマクロブロック値が規格を越える値となるスキップマクロブロックエラーの有無を検査することを特徴とする請求項記載の情報処理装置。
  8. 前記入力手段は、テレビジョン放送信号によって放送されるデジタル放送番組データを前記動画像ストリームとして入力することを特徴とする請求項1または記載の情報処理装置。
  9. 前記入力手段は、コンピュータネットワークを介して接続されるサーバから前記動画像ストリームを入力することを特徴とする請求項1または記載の情報処理装置。
  10. 前記動画像ストリームは、MPEG(Moving Picture Experts Group)2規格に準拠した方式で動画像が圧縮符号化されたものであることを特徴とする請求項1または記載の情報処理装置。
  11. 各画像をマトリックス状に分割して生成されるn×n画素のマクロブロック単位に符号化された動画像ストリームを、前記マクロブロックを行方向に並べて構成されるスライス単位に復号するグラフィックスアクセラレータを搭載する情報処理装置のリカバリ処理方法であって、
    前記情報処理装置は、
    入力した動画像ストリーム中の各スライスのスライスデータを前記マクロブロック単位で検査し、
    エラーを検出した場合、前記エラーを検出したマクロブロックを含むスライスデータについて、前記エラーを検出したマクロブロックおよびその後続のマクロブロックのデータを、復号対象の画像内においてエラーを検出したマクロブロックを含むスライスの上段に隣接するスライス中の前記エラーを検出したマクロブロックおよびその後続のマクロブロックの上段に隣接するマクロブロックのデータに置き換え、かつ、画像内における位置を示す情報を処理対象のスライス内の各マクロブロック用にそれぞれ編集して前記グラフィックスアクセラレータに供給して復号させる、
    ことを特徴とするリカバリ処理方法。
JP2008155608A 2008-06-13 2008-06-13 情報処理装置およびリカバリ処理方法 Active JP4519929B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2008155608A JP4519929B2 (ja) 2008-06-13 2008-06-13 情報処理装置およびリカバリ処理方法
US12/428,339 US20090310684A1 (en) 2008-06-13 2009-04-22 Information processing apparatus and recovery processing method
US13/099,313 US8218649B2 (en) 2008-06-13 2011-05-02 Information processing apparatus and recovery processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008155608A JP4519929B2 (ja) 2008-06-13 2008-06-13 情報処理装置およびリカバリ処理方法

Publications (2)

Publication Number Publication Date
JP2009302948A JP2009302948A (ja) 2009-12-24
JP4519929B2 true JP4519929B2 (ja) 2010-08-04

Family

ID=41414762

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008155608A Active JP4519929B2 (ja) 2008-06-13 2008-06-13 情報処理装置およびリカバリ処理方法

Country Status (2)

Country Link
US (2) US20090310684A1 (ja)
JP (1) JP4519929B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8634474B2 (en) * 2011-05-03 2014-01-21 Texas Instruments Incorporated CABAC macroblock rewind and end of slice creation to control slice size for video encoders
JP6410483B2 (ja) 2013-08-09 2018-10-24 キヤノン株式会社 画像処理装置
US10158889B2 (en) * 2015-01-31 2018-12-18 Intel Corporation Replaying old packets for concealing video decoding errors and video decoding latency adjustment based on wireless link conditions
CN109729380B (zh) * 2018-12-24 2021-07-27 聚好看科技股份有限公司 音视频播放方法和设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06311052A (ja) * 1993-04-27 1994-11-04 Victor Co Of Japan Ltd 圧縮信号の処理装置
JP2005318255A (ja) * 2004-04-28 2005-11-10 Victor Co Of Japan Ltd デジタル映像信号処理装置及びデジタル映像信号処理方法並びにコンピュータプログラム
JP2006262406A (ja) * 2005-03-18 2006-09-28 Victor Co Of Japan Ltd 符号化データ生成装置
JP2006345046A (ja) * 2005-06-07 2006-12-21 Rohm Co Ltd 画像復号回路、画像復号システムおよびそれを搭載した電子機器
JP2007043575A (ja) * 2005-08-04 2007-02-15 Canon Inc 画像処理装置及び画像処理方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09154135A (ja) 1995-11-29 1997-06-10 Sanyo Electric Co Ltd エラー処理装置
JPH09154142A (ja) 1995-11-29 1997-06-10 Sanyo Electric Co Ltd エラー処理装置
KR100556450B1 (ko) * 1998-05-28 2006-05-25 엘지전자 주식회사 움직임 벡터 추정에 의한 오류 복원 방법
US6614843B1 (en) * 1999-04-15 2003-09-02 Diva Systems Corporation Stream indexing for delivery of interactive program guide
US7254824B1 (en) * 1999-04-15 2007-08-07 Sedna Patent Services, Llc Encoding optimization techniques for encoding program grid section of server-centric interactive programming guide
US6754278B1 (en) * 1999-07-15 2004-06-22 Lg Electronics Inc. Method for recovering moving picture by extending a damaged region in which an error occurs
US6987805B1 (en) * 1999-09-24 2006-01-17 Lsi Logic Corporation Macroblock level intrarefresh technique for encoded video
KR100418437B1 (ko) * 2001-12-24 2004-02-14 (주)씨앤에스 테크놀로지 멀티미디어 신호처리를 위한 영상복원 프로세서
US7027515B2 (en) * 2002-10-15 2006-04-11 Red Rock Semiconductor Ltd. Sum-of-absolute-difference checking of macroblock borders for error detection in a corrupted MPEG-4 bitstream
US7324698B2 (en) * 2003-11-20 2008-01-29 Mitsubishi Electric Research Laboratories, Inc. Error resilient encoding method for inter-frames of compressed videos
US7606313B2 (en) * 2004-01-15 2009-10-20 Ittiam Systems (P) Ltd. System, method, and apparatus for error concealment in coded video signals
JP4672431B2 (ja) * 2005-05-13 2011-04-20 パナソニック株式会社 フィルタ特性異常隠蔽処理装置
US9648325B2 (en) * 2007-06-30 2017-05-09 Microsoft Technology Licensing, Llc Video decoding implementations for a graphics processing unit

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06311052A (ja) * 1993-04-27 1994-11-04 Victor Co Of Japan Ltd 圧縮信号の処理装置
JP2005318255A (ja) * 2004-04-28 2005-11-10 Victor Co Of Japan Ltd デジタル映像信号処理装置及びデジタル映像信号処理方法並びにコンピュータプログラム
JP2006262406A (ja) * 2005-03-18 2006-09-28 Victor Co Of Japan Ltd 符号化データ生成装置
JP2006345046A (ja) * 2005-06-07 2006-12-21 Rohm Co Ltd 画像復号回路、画像復号システムおよびそれを搭載した電子機器
JP2007043575A (ja) * 2005-08-04 2007-02-15 Canon Inc 画像処理装置及び画像処理方法

Also Published As

Publication number Publication date
JP2009302948A (ja) 2009-12-24
US20110206134A1 (en) 2011-08-25
US8218649B2 (en) 2012-07-10
US20090310684A1 (en) 2009-12-17

Similar Documents

Publication Publication Date Title
WO2020248909A1 (zh) 视频解码方法、装置、计算机设备及存储介质
KR101560850B1 (ko) 변화하는 비주얼 컨텐트 통신
US20050147166A1 (en) Decoding device, electronic apparatus, computer, decoding method, program, and recording medium
JP4519929B2 (ja) 情報処理装置およびリカバリ処理方法
US20080069244A1 (en) Information processing apparatus, decoder, and operation control method of playback apparatus
CN112533059B (zh) 图像渲染方法、装置、电子设备以及存储介质
JP2008042566A (ja) 情報処理装置および情報処理装置のデコード制御方法
JP2009038501A (ja) 復号化装置および復号方法
CN1368816A (zh) 运动图像数据的记录再生方法和装置
JP4314315B1 (ja) 情報処理装置および復号制御方法
JP2007174195A (ja) 電子機器、自動シーンスキップ方法およびプログラム
JP2007295392A (ja) 情報処理装置、復号処理方法、およびプログラム
JP2007336275A (ja) 動画像再生装置
US20080175326A1 (en) Moving picture data decoding device
JP2006279709A (ja) 情報処理装置および画像処理方法
JP2009081579A (ja) 動画像復号装置、および動画像復号方法
JP4751413B2 (ja) 情報処理装置およびデコーダの判定モード設定方法
JP4592805B1 (ja) 動画像復号装置、プログラムおよび復号処理簡略化方法
US8358918B2 (en) Video processing apparatus and video processing method
JP2008311784A (ja) 動画像復号装置および動画像復号方法
JP5238850B2 (ja) 情報処理装置および動画像ストリームの復号方法
JP2009049474A (ja) 情報処理装置および再符号化方法
JP2006279308A (ja) 情報処理装置および画像処理方法
WO2004004357A1 (ja) 動画像の符号化方法、復号化方法、データストリーム、データ記録媒体およびプログラム
JP2010028436A (ja) 動画像復号装置、プログラムおよび復号処理簡略化方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091201

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100128

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

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

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

Free format text: PAYMENT UNTIL: 20130528

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 4519929

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140528

Year of fee payment: 4

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313121

Free format text: JAPANESE INTERMEDIATE CODE: R313117

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350