JP4727557B2 - 復号装置および復号方法 - Google Patents

復号装置および復号方法 Download PDF

Info

Publication number
JP4727557B2
JP4727557B2 JP2006323429A JP2006323429A JP4727557B2 JP 4727557 B2 JP4727557 B2 JP 4727557B2 JP 2006323429 A JP2006323429 A JP 2006323429A JP 2006323429 A JP2006323429 A JP 2006323429A JP 4727557 B2 JP4727557 B2 JP 4727557B2
Authority
JP
Japan
Prior art keywords
decoding
picture
time
video
audio
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.)
Expired - Fee Related
Application number
JP2006323429A
Other languages
English (en)
Other versions
JP2008141311A (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.)
Sharp Corp
Original Assignee
Sharp 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 Sharp Corp filed Critical Sharp Corp
Priority to JP2006323429A priority Critical patent/JP4727557B2/ja
Publication of JP2008141311A publication Critical patent/JP2008141311A/ja
Application granted granted Critical
Publication of JP4727557B2 publication Critical patent/JP4727557B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

本発明は、復号装置および復号方法、特にMPEG(Moving Picture Experts Group)1、MPEG2、MPEG4等に代表されるデジタルの動画像符号化方式で符号化(圧縮)処理されたデータ列を復号する復号装置および復号方法に関する。
近年、MPEG1、MPEG2、MPEG4、H.263、H.264等の動画像符号化方式が、DVD(Digital Versatile Disk)、デジタル放送、テレビ電話等、様々な装置に利用されるようになっている。これらの符号化方式が普及した理由としては、蓄積、放送、通信の何れのメディアにおいても、利用上問題となる程に巨大な動画像データのサイズを、1/30〜1/80にまで圧縮することが可能である点が挙げられる。これらの動画像符号化方式においては、その圧縮率を高めるための一技術として、動画を構成する静止画(以降、ピクチャと呼ぶ)間の相関を利用する「動き補償」の技術が用いられている。この「動き補償」の基本的な考え方を、以下に述べる。
説明のために図20を用いる。図20における現在のピクチャ1710の中の領域1715と過去のピクチャ1700中の領域1705とが似た画であったとすれば、領域1715は領域1705に少しだけ修正したものと考えることができる。その修正に必要なデータは、前記領域1705と領域1715の相関が高い程少なくて済む。そこで、現在のピクチャ1710の領域1715の符号化では、過去のピクチャ1700の領域1705の領域1715に対する相対位置と、領域1715と領域1705との差分データを求め、それらを符号化する。
そして、ピクチャ1710の領域1715の復号は、前記相対位置から得られる過去のピクチャ1700の領域1705のデータに、前記差分データを加算することにより行われる。つまり、「動き補償」を利用した動画像符号化方式で符号化されたストリームを復号する際には、復号するピクチャのストリームに加え、既に復号済みの、符号化時に使用した他のピクチャのデータを参照する必要が生じる。また、現在のピクチャ1710の中の領域1715と未来のピクチャ1720の中の領域1725とが似た画であったときも、同様である。
ところで、前記の現在主流となっている動画像符号化では、ピクチャは、その符号化の方法によって、以下の3種類の符号化種別(ピクチャタイプ)に分類されている。それ自身の情報のみで符号化された、故にそれ自身の符号化データのみから復号が可能なI(Intra)ピクチャ、過去のピクチャ1枚から動き補償予測を使用して符号化した、即ち、復号時には符号化の際に使用したピクチャ1枚を参照する必要があるP(Predictive)ピクチャ、過去と未来のピクチャ1枚もしくは2枚から動き補償予測を使用して符号化した、即ち、復号時には符号化の際に使用したピクチャ1枚もしくは2枚を参照する必要があるB(MPEG1/2/4、H.263では、Bi-directional predictive(双方向予測)を意味し、H.264では、Bi-predictive Prediction(双予測)を意味する)ピクチャの3種類である。Bピクチャについては、H.264とそれ以前の動画像符号化規格で定義が異なるが、復号時のピクチャの参照枚数に限って言えば、最大2枚を参照するという点は共通である。なお、Pピクチャ及びBピクチャにも、Iピクチャと同様に、他のピクチャを参照しない部分が含まれることはある。
ここで、デジタルTVに用いられる動画像の復号装置の構成例を示した概略ブロック図を図21に示す。この復号装置は、ビデオデコーダ1800、メモリ1810、CPU1820、表示処理部1830、表示装置1840、オーディオデコーダ1850、チューナ1860、ストリーム処理部1870、バス1880、音声出力装置1890で構成されている。この例では、ストリーム処理部1870、CPU1820、メモリ1810、ビデオデコーダ1800、オーディオデコーダ1850、表示処理部1830が、バス1880に接続されて、バス1880を共有している。
以下、図21に示す動画像復号装置の動作を説明する。チューナ1860はデジタルTVチューナであり、受信した放送波を復調処理して、オーディオ、ビデオ、セクションその他の情報が格納されたデータ列(ストリーム)を取り出す。前記ストリームはストリーム処理部1870へと送られる。ストリーム処理部1870は、前記ストリームをビデオストリーム、オーディオストリーム、セクション等に分類し、それぞれメモリ1810へと書き込む。ビデオデコーダ1800は、前記ビデオストリームをメモリ1810から読み出し、復号処理を行って、その復号処理の結果であるピクチャデータをメモリ1810へと書き込む。PピクチャやBピクチャの復号処理時には、復号処理中に、前記「動き補償」処理のために、復号処理済みのピクチャデータの参照が必要となるため、メモリ1810から前記復号処理済みのピクチャデータの読み出しが随時行われる。オーディオデコーダ1850は、前記オーディオストリームをメモリ1810から読み出し、復号処理を行って、その復号処理の結果であるオーディオデータを音声出力装置1890へと出力する。
CPU1820は、前記セクションをメモリ1810から読み出し、データ放送や番組情報の復号を行い、復号結果の画像データをメモリ1810へと書き込む。表示処理部1830は、前記ビデオデコーダ1800がメモリ1810に書き込んだピクチャデータを読み出し、画質調整処理等を行ったり、前記CPU1820がメモリ1810に書き込んだ画像データにスケール調整等を行ったりし、さらには、双方の重ね合わせ処理等を行って、表示装置1840へと出力する。なお、ビデオデコーダ1800、オーディオデコーダ1850、表示処理部1830の動作タイミングは、ストリーム中に含まれる時間パラメータに基づき、制御が行われる。ストリームを復号した結果の表示/出力タイミングを制御する方法の詳細については、非特許文献2、非特許文献3を参照されたい。
従って、上記図21に示したようなシステムでは、バス1880(ひいてはメモリ1810)は、ストリーム処理部1870、CPU1820、ビデオデコーダ1800、オーディオデコーダ1850、表示処理部1830が使用する帯域の合計を上回る帯域を持たねばならないことになる。なお、本明細書中において、「帯域」は「単位時間当たりのデータ転送量(=データ転送速度)」を意味するものとする。
一方で、ビデオデコーダ1800がメモリ1810に対するアクセスで使用する帯域は復号を行うピクチャタイプ(符号化種別)毎に変化する。実際には、符号化時の動き補償処理でどれだけ他のピクチャを参照するかによって変動するが、各ピクチャタイプにおいて最も多く参照する(使用する帯域が多い)場合を考えると、図22に示すようになる。
ビデオデコーダ1800がバス1880を介してメモリ1810に行うアクセスは、大きく3つに分類される。即ち、(1)メモリ1810からビデオストリームを読み出す(図22、1900、1920、1950)、(2)メモリ1810に復号結果のピクチャデータを書き込む(図22、1910、1930、1960)、(3)メモリ1810から参照用のピクチャデータを読み出す(図22、1940、1970、1980)である。
(1)のケースは、前記MPEG2等のデジタルの動画像符号化方式においては、符号化されたビデオストリームが、元画像の1/30〜1/80のサイズにまで圧縮されていることを考えると、(2)、(3)のケースに比べて、非常に少ない帯域となる(全ての種類のピクチャで同一の帯域という訳ではないが使用する帯域の総量からするとわずかであるということは共通する)。
(2)のケースは、Iピクチャ、Pピクチャ、Bピクチャの何れの場合でも必ず1ピクチャ分の書き込みが行われる。従って、いずれのタイプのピクチャでも同じ帯域が使用される。
(3)のケースは、PピクチャとBピクチャでのみ発生し、Pピクチャでは最大1ピクチャ分、Bピクチャでは最大2ピクチャ分の読み出しが行われる。
即ち、各タイプのピクチャの復号処理に使用される帯域を比較すると、Bピクチャが最も使用する帯域が多くなり、次がPピクチャ、最も少ない帯域で済むのがIピクチャとなる。
特開平08−212701号公報 大久保 榮監修、「H.264/AVC教科書」、株式会社インプレス 亀山 渉、花村 剛監修、「改訂版デジタル放送教科書(上)」、株式会社インプレス 藤原 洋著、「最新MPEG教科書」、アスキー出版局
以上述べたように、ビデオデコーダはピクチャタイプ毎にメモリに対するアクセスで使用する最大帯域が変化し、最大帯域が最も多くなるのはBピクチャの復号処理時となる。従って、ビデオデコーダが接続されるバスやビデオデコーダが復号処理に使用するメモリには、Bピクチャの復号処理に必要となる帯域以上の帯域が要求される。該要求を満たすためには、高性能のメモリやバスを使用する必要があり、高コストとなってしまうという問題がある。
特に、これらのバスやメモリを、他のオーディオデコーダやCPU等のモジュールと共有する場合には、各々の行う処理でそれぞれ帯域が必要とされるため、前記バスやメモリに必要とされる帯域は、前記ビデオデコーダが必要とする最大の帯域に、前記ビデオデコーダ以外のモジュールが使用する帯域を加えた帯域となるため、さらに大きな帯域となってしまう。
また、デジタルTVのような機器において、これらのバスやメモリをCPU等のモジュールと共有する場合には、ビデオデコーダによる復号処理以外にも、外部からの非定常的に発生するイベント(例えばユーザの操作)に対する処理も行う必要があるが、ビデオデコーダが多くの帯域を使用する処理を行っている時は、ユーザの操作等の外部からもたらされるイベントに対する応答時間が長くなってしまう(ユーザの操作への応答性が悪くなる)という問題がある。
本発明は、このような事情に鑑みてなされたもので、その目的は、ビデオデコーダが復号処理を行う際に必要となるメモリの最大の帯域を抑えることで、低コスト化された復号装置、および、メモリをCPU等のモジュールと共有していても、ユーザ操作などの外部からのイベントに対して優れた応答性を得ることができる復号装置を提供することにある。
この発明は上述した課題を解決するためになされたもので、本発明の復号装置は、各々が符号化種別を有する複数の符号化単位を含むデータ列について、前記複数の符号化単位の符号化種別構成を検出し、符号化種別毎に固有のメモリとの間のデータ転送量と前記符号化種別構成とに基づき、前記データ列を復号する際のメモリとの間の単位時間当たりのデータ転送量が、時間方向に平準化されるように各符号化単位の復号処理速度を求める復号制御手段と、前記算出した復号処理速度に従い、前記符号化単位を復号する復号手段とを備えることを特徴とする。
これにより、復号処理の際のメモリとの間の単位時間当たりのデータ転送量の最大値が抑制され、結果として、より少ない帯域のバスやメモリを用いて復号処理を行うことができるため、低コスト化された復号装置を提供することができる。また、その他に、復号手段が復号処理に用いるメモリを、CPU等のモジュールと共有していても、ユーザ操作などの外部からのイベントに対して優れた応答性を得ることができる。
また、本発明の復号装置は、上述の復号装置であって、前記データ列との同期情報を有する第2のデータ列を復号し、前記同期情報に従い、前記第2のデータ列の復号結果を前記復号手段による前記データ列の復号結果と同期させて出力する第2の復号手段を備えることを特徴とする。
また、本発明の復号装置は、上述のいずれかの復号装置であって、前記符号化単位は動画像を構成する画像であるピクチャであり、前記符号化種別は符号化の際に参照する画像の最大数を判別可能なピクチャタイプであることを特徴とする
また、本発明の復号装置は、上述の復号装置であって、前記復号制御手段は、前記データ列が有する提示時刻情報復号時刻情報との差分に基づき、該データ列が有するピクチャのピクチャタイプの並びを符号化種別構成として検出することを特徴とする。
これにより、各ピクチャのデータを参照することなくピクチャタイプ構成を検出できるので、ピクチャタイプ構成検出による遅延時間を少なくすることができる。
また、本発明の復号方法は、各々が符号化種別を有する複数の符号化単位からなるデータ列を復号する復号装置における復号方法において、前記復号装置が、前記データ列に基づき、前記複数の符号化単位の符号化種別構成を検出する第1の過程と、前記復号装置が、符号化種別毎に固有のメモリとの間のデータ転送量と前記符号化種別構成とに基づき、前記データ列を復号する際のメモリとの間の単位時間当たりのデータ転送量が、時間方向に平準化されるように各符号化単位の復号処理速度を求める第2の過程と、前記復号装置が、前記算出した復号処理速度に従い、前記符号化単位を復号する第3の過程とを備えることを特徴とする。
また、本発明の復号装置は、符号化種別を有する符号化単位を含むデータ列を復号する復号装置であって、前記データ列を復号する際のメモリとの間の単位時間当たりのデータ転送量が、平準化されることを特徴とする。
また、本発明の復号装置は、符号化種別を有する符号化単位を含む第1のデータ列と第2のデータ列とを復号する復号装置であって、前記第1のデータ列を復号する際のメモリとの間の単位時間当たりのデータ転送量が、平準化され、前記第1のデータ列の復号処理結果と前記第2のデータ列の復号処理結果とが同期出力されることを特徴とする。
また、本発明の復号装置は、上述のいずれかの復号装置であって、前記符号化単位はピクチャ、前記符号化種別はピクチャタイプであることを特徴とする。
本発明によれば、復号処理の際の単位時間当たりメモリアクセス量の最大値が抑制され、結果として、より少ない帯域のバスやメモリを用いて復号処理を行うことができるため、低コスト化された復号装置を提供することができる。また、その他の効果としては、復号手段が復号処理に用いるメモリを、CPU等のモジュールと共有していても、ユーザ操作などの外部からのイベントに対して優れた応答性を得ることができる。
[第1の実施形態]
以下、本発明の第1の実施形態について、図1から図15、図23を用いて説明する。図1は、本実施形態による復号装置であるデジタルTV1000の構成を示した概略ブロック図である。チューナ600はデジタルTVチューナであり、アンテナにて受信した放送波を復調処理して、オーディオ、ビデオ、セクションその他の情報が格納されたストリームを取り出して、ストリーム処理部100へ送る。ストリーム処理部100は、入力されたストリームをビデオストリーム、オーディオストリーム、セクション等に分類し、それぞれメモリ400へと書き込む。ビデオデコーダ130は、前記ビデオストリームをメモリ400から読み出し、復号処理を行って、その復号処理の結果であるピクチャデータをメモリ400へと書き込む。ビデオデコーダ130は、PピクチャやBピクチャの復号処理中に、前記「動き補償」処理のために、復号処理済みのピクチャデータの参照が必要となるため、メモリ400から前記復号処理済みのピクチャデータの読み出しを随時行う。オーディオデコーダ170は、前記オーディオストリームをメモリ400から読み出し、復号処理を行って、その復号処理の結果であるオーディオデータを音声出力装置700へと出力する。音声出力装置700は、入力されたオーディオデータに従い、スピーカなどにより音声、楽音などを出力する。
CPU310は、前記セクションをメモリ400から読み出し、データ放送や番組情報の復号を行い、復号結果の画像データをメモリ400へと書き込む。また、制御部300は、ビデオデコーダ130の復号速度比(後述)および復号開始時刻、ビデオデコーダ130による復号結果の表示開始時刻、オーディオデコーダ170の出力開始時刻を求め、各々、ビデオデコーダ130、表示処理部500、オーディオデコーダ170に供給する。表示処理部500は、前記ビデオデコーダ130がメモリ400に書き込んだピクチャデータを読み出し、画質調整処理等を行ったり、CPU310がメモリ400に書き込んだ画像データにスケール調整等を行ったりし、さらには、前述のピクチャデータと画像データとの重ね合わせ処理等を行って生成した画像データを、表示装置800へと出力する。表示装置800は、入力された画像データに従い画像を表示する。なお、ビデオデコーダ130、オーディオデコーダ170、表示処理部500の動作タイミングは、同期情報としてストリーム中に含まれる時間パラメータ(後述する)に基づき、制御が行われる。バス900は、ストリーム処理部100、CPU310、制御部300、メモリ400、ビデオデコーダ130、オーディオデコーダ170、表示処理部500の間のデータの受け渡しを仲介するバスである。
図2は、図1のデジタルTV1000から復号処理に関連した構成を抜き出し、復号処理手順に準じた配置を示した概略ブロック図である。なお、図2においては、ストリーム処理部100、メモリ400、制御部300、ビデオデコーダ(復号手段)130、オーディオデコーダ(第2の復号手段)170、表示処理部500、CPU310の間を接続するバス900は図示を省略する。実装において、コストや設計上の制約の観点から、図1のように制御部300やメモリ400を各種の機能が共有する形態を採ることは、本発明の如き装置ではしばしば行われることである。また、CPU310も、本実施形態の説明に必要がないため、図示を省略する。
図2に示した装置を図1に適用する場合、メモリ400は、ビデオストリームバッファ110、ビデオ位相調整バッファ120、フレームバッファ140、オーディオストリームバッファ150、オーディオ位相調整バッファ160を含む。制御部300は、オーディオタイミング検出部180、タイミング制御部190、復号制御部(復号制御手段)200、フレーム周期検出部210、ストラクチャ検出部220、を含む。
以下、図2を参照して、入力された多重化ストリーム(MPEG2−TS(Transport Stream))を処理する手順を説明する。ストリーム処理部100は、前記入力されたMPEG2−TSからビデオES(Elementally Stream:エレメンタリストリーム)、オーディオES、TSヘッダ、ビデオESを格納したPES(Packetized Elementary Stream:パケット化エレメンタリストリーム)パケットのヘッダ部分(以下ビデオPESヘッダと表記する)、オーディオESを格納したPESパケットのヘッダ部分(以下オーディオPESヘッダと表記する)を抽出し、それぞれ、ビデオESをビデオストリームバッファ110、フレーム周期検出部210、ストラクチャ検出部220へ、オーディオESをオーディオストリームバッファ150へ、TSヘッダをタイミング制御部190へ、ビデオPESヘッダを復号制御部200へ、オーディオPESヘッダをオーディオタイミング検出部180へと分配する。
ここで、前記ストリーム処理部100が各ブロックへと送るデータの内容について簡単に説明する。MPEG2−TSの構造を、図3に示す。MPEG2−TSは、ビデオストリーム、オーディオストリーム、データ放送、制御情報等の様々な要素を構成要素とすることができるが、図3は、本発明に関係する要素である、ビデオストリームとオーディオストリームのみを含むMPEG2−TSを例示している。
図3において、TSパケットVT300、T310、T330は、ビデオストリームを運ぶためのTSパケットであり、TSパケットAT320、T340はオーディオストリームを運ぶためのTSパケットである。図3に例示するMPEG2−TSは、これらのTSパケットによって構成されている。TSパケットは固定長パケットであり、188バイトの長さを持つ。各TSパケットは、TSヘッダT350、T370、T390、T410とTSペイロードT360、T380、T400、T420に分割することができる。これらのTSヘッダT350、T370、T390、T410が、前記した、ストリーム処理部100がタイミング制御部190へと送るものである。TSパケットVT300、T310、T330とTSパケットAT320、T340は、前記TSヘッダ内のパラメータによりビデオストリームを運ぶためのTSパケットであるかオーディオストリームを運ぶためのTSパケットであるかを判別することが可能である。前記TSペイロードには、ビデオストリームやオーディオストリームをPESパケット化したものが分割され、格納されている。即ち、TSパケットVT310、T330のTSペイロードT360、T380には、ビデオPESパケットを分割したものが、TSパケットAT320、T340のTSペイロードT400、T420には、オーディオPESパケットを分割したものが格納されている。
PESパケットは、ビデオやオーディオの符号化されたデータである要素ストリームESをパケット化したものであり、ビデオPESパケットは、ビデオPESヘッダ(T430またはT450)とビデオES(T440またはT460)とから、オーディオPESパケットは、オーディオPESヘッダ(T470またはT490)とオーディオES(T480またはT500)とから構成される。前記ビデオPESヘッダT430、T450が、ストリーム処理部100が復号制御部200に送るものである。また、前記ビデオEST440、T460が、ストリーム処理部100がビデオストリームバッファ110、フレーム周期検出部210、ストラクチャ検出部220へと送るものである。また、前記オーディオPESヘッダT470、T490が、ストリーム処理部100が、オーディオタイミング検出部180へと送るものである。また、前記オーディオEST480、T500が、ストリーム処理部100がオーディオストリームバッファ150へと送るものである。
ここで、図2による多重化ストリームの処理手順の説明に戻る。ビデオストリームバッファ110は、動画像符号化の規格によってその容量を定められたバッファである。ビデオESを蓄積し、その入力と出力の速度の違いを吸収する役目を持つ。また、オーディオストリームバッファ150は、同様に、オーディオESを蓄積し、その入力と出力の速度の違いを吸収するためのバッファである。
ビデオストリームバッファ110に入力されたビデオESは、ビデオ位相調整バッファ120に空きがある限り、順次ビデオ位相調整バッファ120に移動させられる。図2では、利用目的の違いを明確にするために、ビデオストリームバッファ110とビデオ位相調整バッファ120を個別に設けているが、両者を一つのバッファにまとめた構成としてもよい。オーディオストリームバッファ150とオーディオ位相調整バッファ160の関係も、前記ビデオストリームバッファ110とビデオ位相調整バッファ120の関係と同様である。オーディオストリームバッファ150に入力されたオーディオESは、オーディオ位相調整バッファ160に空きがある限り、順次オーディオ位相調整バッファ160へと移動させられる。従って、同様に、オーディオストリームバッファ150とオーディオ位相調整バッファ160を一つのバッファにまとめた構成としてもよい。
フレーム周期検出部210は、入力されたビデオESから、動画のフレーム周期Tの演算を行う。演算のための処理手順は動画像符号化アルゴリズムにより異なるが、基本的にはビデオES中に含まれるフレームレートに関連するパラメータを抜き出して、これからフレーム周期を算出する。一例として、動画像符号化アルゴリズムにMPEG2が用いられている場合を以下に示す。MPEG2のビデオESの構成は、図4のように6層構造となっている。最上層がシーケンス層、第2層がGOP(Group Of Picture:グループオブピクチャ)層、第3層がピクチャ層、第4層がスライス層、第5層がマクロブロック層、第6層がブロック層である。
シーケンス層は、1つ以上のGOPを管理するための層であり、シーケンスヘッダと、1以上のGOPと、1つのシーケンスの終了を示すシーケンス終了コードとからなる。GOP層は、シーケンスへのランダムアクセスのための層であり、GOPヘッダとそれに続くIピクチャ(I)、Bピクチャ(B)、Pピクチャ(P)とからなる。GOP層は存在しないこともある。ピクチャ層は、符号化の基本単位であるピクチャを構成する層であり、ピクチャヘッダとそれに続くスライスとからなる。スライス層は、エラー発生時の再同期単位のための層であり、スライスヘッダとそれに続くマクロブロックとからなる。マクロブロック層は、動き補償の単位を構成する層であり、マクロブロックヘッダとそれに続くブロックとからなる。ブロック層は、DCT処理等の符号化処理の基本単位を構成する層であり、ブロックヘッダとそれに続くデータとからなる。
前記ビデオESの最上層、シーケンス層のシーケンスヘッダには、frame_rate_code、frame_rate_extension_n(以下、FREn)、frame_rate_extension_d(以下、FREd)というパラメータが含まれており、これらからフレームレートFを求めることが可能である。具体的には、frame_rate_codeを図5に示したframe_rate_codeの各値とframe_rate_value(以下、FRV)との対応関係を格納した表を用いて変換することにより、FRVが求まり、これを式(1)に代入することにより、フレームレートFが求まる。
Figure 0004727557
なお、対象とするMPEG2プロファイルにおいて、frame_rate_extension_n及びframe_rate_extension_dは0と規定されている場合や、復号しようとするビデオESにframe_rate_extension_nやframe_rate_extension_dが含まれていない場合には、以下の式(1)’を用いる。
Figure 0004727557
フレーム周期検出部210は、以上のように式(1)あるいは式(1)’を用いて求めたフレームレートFの逆数を取り、フレーム周期Tを求め、前記フレーム周期Tを復号制御部200に送る。
ストラクチャ検出部220は、入力されたビデオESから、ピクチャ構造を表すストラクチャ種別Sを検出する。具体的な検出方法は動画像符号化アルゴリズムによって異なるが、前記フレーム周期Tの場合と同様に、動画像符号化アルゴリズムとしてMPEG2が用いられている場合を以下に示す。前記ビデオESの第3層、ピクチャ層のピクチャヘッダには、picture_structureというパラメータが含まれており、この値によって、ストラクチャ種別S(フレームストラクチャかフィールドストラクチャか)の判定が可能である。ストラクチャ検出部220は、前記判定結果であるストラクチャ種別Sを復号制御部200に送る。この時、ストラクチャ検出部220は、復号制御部200に対し、ストラクチャ種別Sの判定結果が確定したことを示す信号も出力する。ここで、フレームストラクチャとは、1フレームの画像が、プログレッシブ走査による1枚のピクチャ1枚で構成されるフレーム構造を言い、フィールドストラクチャとは、1フレームの画像が、インターレース走査による奇数ラインのみで構成されるピクチャ(奇数フィールド)と偶数ラインのみで構成されるピクチャ(偶数フィールド)の2枚のピクチャで構成されるフレーム構造を言う。
復号制御部200は、前記ビデオES中のピクチャ(符号化単位)のピクチャタイプ(符号化種別:IピクチャまたはPピクチャまたはBピクチャ)の並び方(符号化種別構成)を検出する。復号制御部200はまた、前記符号化種別構成(ピクチャタイプの並び方)とピクチャタイプ毎に固有の最大メモリアクセス量によって、各ピクチャを復号する際の単位時間当たりメモリアクセス量が、時間方向に平準化されるように各ピクチャの復号開始時刻と復号速度比(1ピクチャの表示時間を1ピクチャの復号時間で割った値、即ち、この値の逆数を1ピクチャの表示時間をかけると1ピクチャの復号時間が求まる)を算出する。ここでは、MPEG2−TSにおいて、表示及び復号の時間情報として、PTS(Presentation Time Stamp、提示時刻情報)とDTS(Decoding Time Stamp、復号時刻情報)が用いられている場合の復号制御部200による処理方法を以下に示す。
復号制御部200は、ストリーム処理部100から与えられるビデオPESヘッダに含まれる提示時刻情報PTS及び復号時刻情報DTS、フレーム周期検出部210から与えられるフレーム周期T、及び、ストラクチャ検出部220から与えられるストラクチャ種別Sを用いて、符号化種別構成を検出し、該符号化種別構成に基づき、各ピクチャについて、ビデオデコーダ130の復号開始時刻Tds及び復号速度比Tdrを算出する。以下、その詳細な動作について、図6のフローチャートを用いて説明する。
まず、ステップS100で、復号制御部200は、パラメータn及びパラメータfを0にセットする。パラメータnは、処理を完了したフレーム数をカウントする変数であり、パラメータfは、本実施形態における動画像復号処理時のメモリに対するアクセスで使用する帯域(すなわち、単位時間当たりのメモリアクセス量)を平準化する手法を用いるかどうか、つまり、ピクチャタイプにより差異の発生する、メモリアクセスに使用する帯域の平準化処理を行うかどうかを示す変数である。パラメータf=0は前記帯域の平準化処理を行わないことを、パラメータf=1は前記帯域の平準化処理を行うことを示す。また、パラメータnは1フィールドを0.5フレームとしてカウントする。
続いて、ステップS120では、復号制御部200が、ストリーム処理部100から与えられたビデオPESヘッダP600(図7に構成を示す)から、PTS・DTSフラグP645を抽出し、提示時刻情報PTS、復号時刻情報DTSの有無を検出し、その検出結果が、提示時刻情報PTSのみ「有り」であった場合は、提示時刻情報PTSP661を、提示時刻情報PTS、復号時刻情報DTS共に「有り」であった場合には、提示時刻情報PTSP661と復号時刻情報DTSP662とを抽出する。以下、図6のフローチャートの説明においては、特に断りがない限り、提示時刻情報PTS、復号時刻情報DTSは、前記ステップS120で抽出した提示時刻情報PTSP661、復号時刻情報DTSP662を表すものとする。
次のステップS130では、復号制御部200が、ストラクチャ検出部220から、ストラクチャ種別S及びストラクチャ種別の判定結果が確定したことを示す信号が送られてくるのを待つ。前記信号が送られてきたら、ステップS140へと進む。ステップS140では、復号制御部200は、前記ステップS120における復号時刻情報DTS有無の検出結果によって分岐処理を行う。復号時刻情報DTSが有った場合は、ステップS150へと進み、復号時刻情報DTSが無かった場合にはS230へと進む。ステップS150では、ピクチャ構成検出部200は、前記抽出した提示時刻情報PTS、復号時刻情報DTS及びフレーム周期検出部210から送られてきたフレーム周期Tを用い、以下の式(2)により、デコードしたピクチャを何フレーム後に表示するかを示す値Mを算出し、ステップS160へと進む。
Figure 0004727557
提示時刻情報PTSと復号時刻情報DTSは式(2)の演算結果が整数となるような値であるとは限らないため、そのような場合、値Mは、右辺の演算結果に最も近い整数を取るものとする。また、ストラクチャ種別Sがフィールドストラクチャである場合は、n≠0でステップS150の処理が行われることがあるが、その場合は、Mは以前の値(n=0の時に算出した値を)をそのまま保持するようにしても良い。
この値Mの説明のために、まず、図8に、復号処理による遅延時間が0の、即ち、復号処理と同時に表示を行うことが可能である理想的なビデオデコーダにビデオESが入力された時の、前記ビデオデコーダにより復号処理が行われる期間と復号結果が表示される期間を示す。なお、この図8では、提示時刻情報PTSと復号時刻情報DTSにより復号処理及び表示処理のタイミングが制御されていることを前提としている。上段のT700〜T725は、各々、前記ビデオデコーダが入力されたビデオESを1ピクチャ分復号処理する期間を示している。但し、T700〜T725の示す期間は、復号処理に使用可能な期間であるということを示しているのであり、その期間全てを復号処理に使用しなければならないということではない。この復号処理期間T700〜T725中の符号(I1、B2、B3、P4、B5、B6)は、アルファベットが復号処理中のピクチャ種別を示し、数字がその入力順を示す。
また、下段のT730〜T755は前記入力されたビデオESの復号結果の表示期間を示しており、中の符号(B2、B3、I1、B5、B6、P4)は、上段のT700〜T725内の符号と対応している。図の最下部に記されている符号DTS1、DTS4およびPTS1〜PTS6は、数字部分の一致するピクチャに付けられている提示時刻情報PTS、復号時刻情報DTSの値を表している。例えば、DTS1は、ピクチャI1の復号時刻情報DTSを、PTS2は、ピクチャB2の提示時刻情報PTSを表す。
従って、この図8から、前記値Mは、あるP(またはI)ピクチャの復号処理開始から(例えばDTS1)、表示開始まで(例えばPTS1)の時間をフレーム数で示していると同時に、あるP(またはI)ピクチャ(I1)から次のP(またはI)ピクチャ(P4)までのフレーム数を示しているとも言える。また、そのように考えると、値M−1はあるP(またはI)ピクチャから次のP(またはI)ピクチャまでの間のBピクチャのフレーム数を示していると言える。
なお、図8は、ストラクチャ種別がフレームストラクチャの場合の処理タイミング図である。ストラクチャ種別がフィールドストラクチャの場合の処理タイミング図を考えると、図23のようになる。この図23から、フィールドストラクチャの場合は、前記値Mは、ある奇数フィールドのP(またはI)ピクチャ(I1)から次の奇数フィールドのP(またはI)ピクチャ(P7)までのフレーム数を示すことになるが、これをフレームを単位として考えると、値Mは、IまたはPピクチャを構成要素とするフレームから次のIまたはPピクチャを構成要素とするフレームまでのフレーム数を示していることになり、フレームストラクチャの場合と同様に考えることが可能であることがわかる。また、値M−1も、フレームストラクチャの場合と同様に、あるP(またはI)ピクチャから次のP(またはI)ピクチャまでの間のBピクチャのフレーム数を示していると言える。
そこで、式(2)で求めた値Mを、本実施形態におけるピクチャの構成(符号化種別構成)を示す値とし、以降、P−P間フレーム数と呼ぶこととする。
図6のフローチャートの説明に戻る。ステップS160では、復号制御部200は、ステップS150で算出したP−P間フレーム数Mを、予め設定された所定の閾値Mmaxと比較し、M≦Mmaxであった場合には、ステップS170へ、M>Mmaxであった場合には、ステップS260へ進む。ここでは、前記使用帯域の平準化処理を行うか否かの判定を行っている。前記P−P間フレーム数Mの値が大きくなると、P(またはI)ピクチャとP(またはI)ピクチャの間のBピクチャ数が多くなるため、使用する帯域の最大値を下げる効果は低くなるのに対して、必要なバッファの量が増加する(詳細後述)というデメリットがあるため、前記使用帯域の平準化処理を行うか否かをMmaxという閾値により判定する。従って、このステップS160は省略し(その場合、ステップS260も不要となる)、常にステップS170へ進むとしてもよい。
ステップS170では、復号制御部200は、前記使用帯域の平準化処理を行う場合のP(またはI)ピクチャの復号開始時刻Tdsと復号速度比Tdrを算出する。それには、以下の式(3)、(4)を用いる。また、前記使用帯域の平準化を行うか否かを示す変数fに、平準化を行うことを表す「1」を設定する。
Figure 0004727557
以下、式(3)、(4)の導出方法について説明する。本発明の目的は、動画像復号処理における、メモリ帯域使用量の最大値を抑えることにある。既に述べたように、MPEG2等の一般的な動画像符号化方式を用いた場合、動画を構成する静止画(=ピクチャ)は、符号化のアルゴリズムによって、Iピクチャ、Pピクチャ、Bピクチャの3種類のピクチャに大別される。前記各ピクチャは、復号処理の際に参照するピクチャの枚数が異なり、Iピクチャは0枚、Pピクチャは最大1枚、Bピクチャは最大2枚のピクチャを参照する。加えて、一般的に、復号後のピクチャはそのデータ量の多さ故に、サイズの小さいローカルなメモリに置くことができず、システムが共有する大容量の共有メモリ(本実施形態では、メモリ400)上に置かれることになる。
従って、復号処理時に使用されるシステムの共有メモリの帯域は、復号処理中のピクチャの種類によって異なることになり、Iピクチャ復号処理に使用する最大帯域(ピクチャ1枚を復号するのに発生するメモリアクセス量をそのピクチャ1枚を表示するのにかかる時間で割った値とする)(以下BWiと呼ぶ)と、Pピクチャ復号処理に使用する最大帯域(以下BWpと呼ぶ)と、Bピクチャ復号処理に使用する最大帯域(以下BWbと呼ぶ)との関係は、BWb>BWp>BWiとなる。従って、各ピクチャの復号処理時間の長さが同じとしている限り、使用する帯域はピクチャタイプによって差異が生じ、Bピクチャの場合に最大の使用帯域幅BWbとなるが、本発明では、各ピクチャの復号処理時間を各ピクチャの最大帯域の値(BWi、BWp、BWb)に応じて変えることで復号処理時の使用帯域を平準化して、復号処理全体での使用する帯域の最大値を小さくする。以下、復号制御部200で行われる、使用帯域を平準化するための復号処理時間の算出方法について説明する。
さて、P−P間フレーム数Mは、前記ステップS150で復号制御部200により得られたので、これを用いれば、1フレーム分のP(またはI)ピクチャとM−1フレーム分のBピクチャから構成されるMフレーム分のピクチャを復号するときの使用帯域の合計BWtotalは、以下の(5)式で表される。但し、本実施形態による方法では、Mフレーム分のピクチャに含まれる非BピクチャがIピクチャであるか、Pピクチャであるかは判別できないため、非Bピクチャのピクチャ種別は、常にIピクチャよりは使用帯域の多いPピクチャとして扱うものとする。
Figure 0004727557
前記Mフレーム分のピクチャの復号処理において、Mフレーム周期分の時間でMフレーム分のピクチャの復号を完了することを条件として、使用帯域を平準化すると、平準化した使用帯域BWaveは、式(6)のようになる。
Figure 0004727557
ここで、PピクチャとBピクチャの復号における最大使用帯域が、図9に示されるような比率であると仮定する。即ち、Pピクチャでは、復号結果のメモリへの書き込みと参照画像1面のメモリからの読み出しで計2ピクチャ分の帯域を使用し、Bピクチャでは、復号結果のメモリへの書き込みと参照画像2面のメモリからの読み出しで計3ピクチャ分の帯域を使用するものとする。すると、前述の使用帯域BWp、BWbの比は、BWp:BWb=2:3である。なお、この使用する帯域の比率の仮定は一例であり、適用しようとする復号装置に適した比率とすれば良い。すると、前記式(6)は、式(7)と書ける。
Figure 0004727557
式(7)は、復号に使用する帯域を平準化するためには、P(またはI)ピクチャの復号時の使用帯域、つまり、P(またはI)ピクチャの復号の速度を、1フレーム分の復号を1フレームの表示時間で復号する場合の(3M−1)/2M倍にする必要があることを意味する。また、Bピクチャの復号時の使用帯域、つまり、Bピクチャの復号の速度は、1フレーム分の復号を1フレームの表示時間で復号する場合の(3M−1)/3M倍にする必要があることを意味する。
これを図示したものが、図10、図11である。この図10、図11は、ストラクチャ種別がフレームストラクチャである場合、すなわち、1ピクチャ=1フレームである場合を示した図である。従来の動画像復号処理、すなわち、1ピクチャを1フレーム周期で復号する場合における、ピクチャタイプ毎の帯域使用量と1ピクチャの復号処理時間を示したものが図10であり、本実施形態の使用帯域を平準化する動画像復号処理における、ピクチャタイプ毎の帯域使用量と1ピクチャの復号処理時間を示したものが図11である。
図10に示すように、従来の動画像復号処理では、Pピクチャ、Bピクチャとも1フレーム周期T毎に復号処理を行うため、Pピクチャ復号時の使用帯域はBWpであり、Bピクチャ復号時の使用帯域はBWbである。これに対し、図11に示すように、本実施形態の動画像復号処理では、従来の動画像復号処理に比べ、P(またはI)ピクチャでは、帯域使用量が(3M−1)/2M倍となる代わりに、復号に要する時間が2M/(3M−1)倍となり、Bピクチャでは、帯域使用量が(3M−1)/3M倍となる代わりに、復号に要する時間が3M/(3M−1)倍となる。なお、図10、図11では、ストラクチャ種別がフレームストラクチャとして説明したが、フィールドストラクチャの場合にも復号に要する時間の比率は、フレームストラクチャの場合と同じ式で表される。
ステップS170は、復号時刻情報DTSが存在する場合にのみ行われる処理である、つまり、P(またはI)ピクチャに対しての処理であるので、復号に要する時間は2M/(3M−1)倍となる。従って、復号速度比Tdrは、その逆数となり、式(4)で表されることになる。
次に、復号開始時刻Tdsが式(3)によって求められることを、図12及び図13を用いて説明する。図12は、ストラクチャ種別Sがフレームストラクチャである場合の、従来及び本実施形態における動画像復号処理の動作タイミングを示す図であり、図13は、ストラクチャ種別Sがフィールドストラクチャである場合の、従来及び本実施形態における動画像復号処理の動作タイミングを示す図である。両図とも、動画像復号処理にかかる時間は0とした場合の図である。
前記図12及び図13は、「デコーダ入力」、「従来復号処理」、「従来表示」、「本実施形態復号処理」、「本実施形態表示」の5段に分かれており、各処理のタイミングを示している。図8同様、図中の矩形は1ピクチャ分の処理を行っていることを意味し、矩形内部の符号は、1文字目のアルファベットがピクチャタイプを、2文字目の数字がピクチャの入力順を示している。図の最下部に記されているDTS1,PTS2といった符号は、数字が一致するピクチャに付加された提示時刻情報PTS、復号時刻情報DTSが指し示す時間である。
「デコーダ入力」は、ビデオデコーダに入力されるビデオESを示している。この「デコーダ入力」は従来と本実施形態に共通のものである。「従来復号処理」は、従来のビデオデコーダに前述の「デコーダ入力」が入力された場合に、ピクチャが復号処理される様子を示している。「従来表示」は、従来のビデオデコーダにて前述の「従来復号処理」の処理が行われた場合に、ピクチャが表示処理される様子を示している。「本実施形態復号処理」は、本実施形態におけるビデオデコーダ130に前述の「デコーダ入力」が入力された場合に、ピクチャが復号処理される様子を示している。「本実施形態表示」は、本実施形態におけるビデオデコーダ130にて前述の「本実施形態復号処理」の処理が行われた場合に、ピクチャが表示処理される様子を示している。
図中の符号Tは、前記フレーム周期検出部210で検出されたフレーム周期Tを示している。また符号Eは、本実施形態のビデオデコーダ130において、復号処理がビデオESの入力を追い越さないために必要とされる最低限の時間であり、復号開始時刻の遅延量を表す。つまり、本実施形態の復号装置1000においては、この遅延時間Eで示される時間分のビデオES、オーディオESを蓄積して復号処理の開始を遅延させるバッファが必要となり、そのバッファが、ビデオ位相調整バッファ120及びオーディオ位相調整バッファ160である。遅延時間Eの値は、式(8)で表される。つまり遅延時間Eは、P−P間フレーム数Mの最大値Mmaxの値によって最低限必要な値が決まる。
Figure 0004727557
P−P間フレーム数Mに上限を設定しない場合は、Mmaxが無限大であることと同義なので、式(8)は、以下の式(9)のようになり、1/3フレーム時間以上であれば良いこととなる。
Figure 0004727557
本発明の効果はP−P間フレーム数Mが大きくなることによって小さくなるため、P−P間フレーム数Mは適当に上限を設定した方が良い。例えば、P−P間フレーム数Mの上限を5と設定した場合には、Mmax=5を式(8)に代入することにより、式(10)が求まり、Eの値は、2/7フレームに相当する時間以上あれば良いことがわかる。
Figure 0004727557
前記遅延時間Eは、本実施形態の動画像復号システムのオーディオタイミング検出部180及び復号制御部200に定数として供給される。
さて、ステップS170は、P(またはI)ピクチャに対しての処理であるので、図12「本実施形態復号処理」の段のI1や図13の「本実施形態復号処理」の段のI1、P2の処理タイミングを考える。これらの図からすると、I1の復号開始時刻は、I1の入力から遅延時間Eが経過した時点、つまり時刻DTS1+Eとなる。一方、P2の復号開始時刻は、元々P2の復号開始時刻として与えられているDTS2から、n=0の時の復号開始時刻、即ち、I1の復号開始時刻であるDTS1+E(に相当する時刻)を求め、かつ、それに、I1の復号処理に要した時間を加算する必要がある。図13におけるP2の復号開始時刻は、P2に与えられたDTS、つまりDTS2にEを加算した上で、DTS1とDTS2の差分に相当するn×T(=T/2)を減じ、P(またはI)ピクチャの1フィールド分の復号処理に必要となる式(11)にて表される時間を加算することになる。
Figure 0004727557
以上の内容を、あらゆるP(またはI)ピクチャに適用できるようにすると、復号開始時刻Tdsは、式(3)で表されることになる。
なお、ステップ170における復号開始時刻Tdsの算出方法としては、n=0の際の復号時刻情報DTSの値を記憶しておき、これを用いるという方法もある。この場合、前記n=0の時の復号時刻情報DTSの値をDTSiとすると、式(3)は式(3)’のようになる。
Figure 0004727557
ステップS170において、復号制御部200による復号開始時刻Tdsと復号速度比Tdrの算出が完了したら、ステップS175へと進む。
一方、ステップS260では、復号制御部200は、復号開始時刻Tdsと復号速度比Tdrを、以下の式(12)、(13)により算出する。これは、メモリ使用帯域の平準化を行わずに復号処理を行うことを表す。
Figure 0004727557
このとき、使用帯域の平準化を行うかどうかを示す変数fは0にする。
復号開始時刻Tdsが式(12)のように遅延時間Eを加算した形となる点が従来システムと異なるが、これは、使用帯域を平準化する処理が行われる場合と行われない場合が、復号処理の途中で切り換わっても、復号処理を継続できるようにするためである。式(12)、(13)により、復号開始時刻Tds、復号速度比Tdrの算出が完了したら、ステップS175へと進む。
ここで、ステップS140で復号制御部200が復号時刻情報DTSが存在しないと判定した場合のフローの説明に移る。ステップS230では、復号制御部200は、使用帯域を平準化する処理を行うかどうかを示す変数fが0であるかどうかを判定する。fが0である場合、使用帯域を平準化する処理は行わないため、S250へ進み、fが1である場合は、使用帯域を平準化する処理を行うためにS240へと進む。
ステップS240では、復号制御部200は、復号開始時刻Tdsと復号速度比Tdrを、以下の式(14)、(15)により算出する。
Figure 0004727557
以下、式(14)、(15)の導出方法について説明する。
式(14)は、図12、図13から以下の式(16)のように求められる。
Figure 0004727557
式(16)の右辺の第1項から第3項は、基準の位置(n=0の時の復号処理開始位置DTSi+Eに相当する)を決定する項である。また、第4項は、P(またはI)ピクチャの復号に要した時間を表す。第5項は、これまでに復号したBピクチャの復号に要した時間を表している。式(14)は、この式(16)を変形したものである。
第1項と第3項の部分を、n=0の時のDTSの値DTSiを用いて置き換えることが可能なので、復号開始時刻Tdsは、式(14)’のようにも書ける。
Figure 0004727557
式(15)は、図11に示したBピクチャの復号処理時間から求めている。本実施形態の動画像復号処理では、Bピクチャでは、使用帯域が(3M−1)/3M倍となる代わりに、復号に要する時間が3M/(3M−1)倍となる。従って、本実施形態の動画像復号処理のBピクチャにおける復号速度比Tdrは、前記復号に要する時間比の逆数となり、式(15)で表されることになる。
ステップS240は、復号時刻情報DTSが存在しない場合にのみ行われる処理である、つまり、Bピクチャに対しての処理であるので、復号速度比Tdrは(15)式で表されることになる。ステップS240において、復号制御部200は、復号開始時刻Tdsと復号速度比Tdrの算出が完了したら、ステップS175へと進む。
ステップS250では、復号制御部200は、復号開始時刻Tdsと復号速度比Tdrを、以下の式(17)、(18)により算出する。
Figure 0004727557
式(17)、(18)は、ステップS250が使用帯域の平準化を行わない場合の処理であるため、基本的には従来のシステムと同様の処理を行うことを示す式となっている。Tdsが式(17)のようにEを加算した形となる点が従来システムと異なるが、これは、ステップS260の処理の場合と同様に、使用帯域を平準化する処理が行われる場合と行われない場合が、復号処理の途中で切り換わっても、復号処理を継続できるようにするためである。式(17)、(18)により、復号開始時刻Tds、復号速度比Tdrの算出が完了したら、ステップS175へと進む。
ステップS175では、復号制御部200は、表示開始時刻Tpsを以下の式(19)から求め、ステップS180へと進む。式(19)は、復号開始時刻Tdsが最大でEだけ遅れることがあるため、表示開始時刻Tpsも少なくともEだけ遅らせる必要があるということを意味している。
Figure 0004727557
ステップS180では、復号制御部200は、求めた復号開始時刻Tds、復号速度比Tdr、表示開始時刻Tpsをタイミング制御部190へと出力し、ステップS190へと進む。ステップS190では、ステップS130で入手したストラクチャ種別Sの値に基づき復号制御部200が分岐処理を行う。ストラクチャ種別Sがフレームストラクチャであった場合には、ステップS200へと進み、フィールドストラクチャであった場合には、ステップS210へと進む。
ステップS200では、復号制御部200は、フレーム数nに1を加算して、ステップS220へと進む。ステップS210では、復号制御部200は、フレーム数nに0.5を加算して、ステップS220へと進む。ステップS220では、復号制御部200は、フレーム数nの値によって条件分岐処理を行う。n=Mであれば、ステップS100へ、それ以外の場合は、ステップS120へと進む。
復号制御部200は、以上のようにして、算出した復号開始時刻Tds、復号速度比Tdr及び表示開始時刻Tpsを、順次タイミング制御部190へと供給する。
次に、オーディオタイミング検出部180は、式(20)に示されるように、ストリーム処理部100から与えられるオーディオPESヘッダに含まれる提示時刻情報PTSの値(PTSaとする)に前記遅延時間Eを加算することにより、オーディオの復号開始時刻Tdsaを算出し、このTdsaをタイミング制御部190へと送る。
Figure 0004727557
但し、上述の復号制御部200及びオーディオタイミング検出部180の説明においては、ビデオデコードとオーディオデコード間のシステム上発生する時間差Pavが0であるものとして述べている。前記Pavが0で無い場合については、ビデオの復号開始時刻Tdsまたはオーディオの復号開始時刻Tdsaに対し、前記Pavを加算もしくは減算する必要がある。
タイミング制御部190は、ストリーム処理部100から送られてきたTSヘッダから、パラメータPCR(Program Clock Reference)を抽出し、システム基準時間STC(System Time Clock)の合わせ込みを行う。タイミング制御部190はまた、復号制御部200から受け取った復号開始時刻Tdsと復号速度比Tdrを用いて、ビデオデコーダ(復号手段)130の動作タイミング制御を、表示開始時刻Tpsを用いてビデオデコーダ130の復号結果の出力タイミング制御を、オーディオタイミング検出部180から受け取ったオーディオ復号開始時刻Tdsaを用いて、オーディオデコーダ(第2の復号手段)170の動作タイミング(兼出力タイミング)の制御を行う。前記制御の手順について、以下説明する。
タイミング制御部190は、復号制御部200から受け取った復号開始時刻Tdsと復号速度比Tdrを、図14に示すように両者を対応付けて記録するテーブルAを持つ。前記復号開始時刻Tds及び復号速度比Tdrが復号制御部200から送られてきたら、順次、前記テーブルA上に書き込む。そして、前記テーブルA上の復号開始時刻Tdsのうち、最初に格納されたTdsの値が、タイミング制御部190内部でカウントされているSTCの値と一致した(またはSTCがTdsの値を超えた)ことを検出したら、復号開始のトリガ信号と、前記検出に用いられたTdsに対応した復号速度比Tdrの値を、ビデオデコーダ130に供給する。この処理が完了した時点で、前記検出に使用した復号開始時刻Tdsとそれに対応した復号速度比Tdrを前記テーブルAから削除する。前記テーブルAのサイズは、ビデオストリームバッファ110及びビデオ位相調整バッファ120に蓄積可能なビデオストリーム長に対し、最大付加され得る提示時刻情報PTSの個数以上が格納できるサイズであれば良い。
一方で、タイミング制御部190は、復号制御部200から受け取った表示開始時刻Tpsを記録するテーブルBを持つ。前記表示開始時刻Tpsが復号制御部200から送られてきたら、既にテーブルB上の書き込まれている全ての表示開始時刻Tpsを読み出し、前記送られてきた表示開始時刻Tpsを含めた全ての表示開始時刻Tpsを昇順にソートし直して、前記テーブルB上に書き込む。そして、前記テーブルB上に格納されている表示開始時刻Tpsのうち、先頭に格納された、即ち、最も小さい値を持つTpsの値が、タイミング制御部190内部でカウントされているSTCの値と一致した(またはSTCがTpsの値を超えた)ことを検出したら、表示開始のトリガ信号をフレームバッファ140に送る。この処理が完了した時点で、前記検出に使用した表示開始時刻Tpsを前記テーブルBから削除する。前記テーブルBのサイズは、ビデオストリームバッファ110及びビデオ位相調整バッファ120に蓄積可能なビデオストリーム長に対し、最大付加され得る提示時刻情報PTSの個数以上が格納できるサイズであれば良い。
また、タイミング制御部190は、オーディオタイミング検出部180から受け取ったオーディオ復号開始時刻Tdsaを記録するテーブルCを持つ。前記オーディオ復号開始時刻Tdsaがオーディオタイミング検出部180から送られてきたら、順次、前記テーブルC上に書き込む。そして、前記テーブルC上に格納されているオーディオ復号開始時刻Tdsaのうち、最初に格納されたTdsaの値が、タイミング制御部190内部でカウントされているSTCの値と一致した(またはSTCがTdsaの値を超えた)ことを検出したら、デコード開始のトリガ信号をオーディオデコーダ170に送る。この処理が完了した時点で、前記検出に使用した復号開始時刻TdsaをテーブルCから削除する。前記テーブルCのサイズは、オーディオストリームバッファ150及びオーディオ位相調整バッファ160に蓄積可能なオーディオストリーム長に対し、最大付加され得る提示時刻情報PTSの個数以上が格納できるサイズであれば良い。タイミング制御部190は、上記動作を繰り返すことにより、ビデオデコーダ130、オーディオデコーダ170及びフレームバッファ140のタイミング制御を行う。
ビデオデコーダ130は、タイミング制御部190からの復号開始時刻Tdsに基づくトリガ信号により、1ピクチャ分のビデオ復号処理を開始する。ビデオ位相調整バッファ120に蓄積されたビデオストリームを順次読み出し、復号し、その結果をフレームバッファ140に出力する。その復号処理速度は、タイミング制御部190から与えられる復号速度比Tdrの値により制御される。
前記ビデオデコーダ130の前記復号速度比Tdrによる復号処理速度の変更の方法としては、様々な方法が考えられるが、MPEG2により符号化されたストリームを復号する場合の例を幾つか以下に述べる。
第一にある単位毎の処理の間隔を変更する方法がある。MPEG2の復号処理はマクロブロック単位やブロック単位での復号処理の繰り返し処理と見做せるので、マクロブロックやブロックの処理の間隔を制御することにより、結果として1ピクチャの処理時間を制御することが可能である。そして、前記復号速度比Tdrは、1ピクチャの表示時間を1ピクチャの復号時間で割った値であると同時に、1単位の表示に要する時間(1ピクチャの表示時間をピクチャを構成する1単位(マクロブロック、ブロック等)の数で割った値)を、ピクチャを構成するある1単位(マクロブロック、ブロック等)の復号時間で割った値でもある。図15は処理速度の変更方法の基本的な考え方を示した図である。図中のマクロブロック処理間隔Tmbは、復号速度比Tdr=1、即ち、1ピクチャ分の復号処理を1ピクチャ分の表示時間で行う場合において、1マクロブロックの復号処理に使用可能な時間を示している(全てのマクロブロックに同じ処理時間を与える場合)。例えば、1ピクチャが1920ドット×1088ドットで30フレーム/秒のHD(High Definition)動画の場合のマクロブロック処理間隔Tmbは、1/30秒で8160個のマクロブロックを処理する必要があるので、式(21)より、約4.08μsとなる。
Figure 0004727557
また、図中の矩形は、本実施形態のビデオデコーダ130が、1マクロブロックの復号処理に要する時間であるマクロブロック処理時間Tmbrを示している。入力されたストリームを復号できるためには、前記マクロブロック処理時間Tmbrは、前記入力されたストリームのマクロブロック処理間隔Tmbよりも短い時間である必要があるが、さらに本実施形態においては、前記マクロブロック処理時間Tmbrは、後述するように、復号速度比Tdrに反比例してマクロブロック処理間隔Tmbが短縮/延長されることがあるため、その短縮/延長された時間よりも短い時間でなければならない、即ち、式(22)の条件を満たす必要がある。
Figure 0004727557
さて、PピクチャとBピクチャの最大で使用する帯域の比がほぼ2:3であり、P−P間フレーム数Mの値に前記Mmaxによる制約がないとする時、本実施形態におけるマクロブロック処理時間Tmbrに必要とされる条件を考えてみる。すると、次の式(23)から、Tmbr≦2Tmb/3が必要であることになる。
Figure 0004727557
以下では、上記の条件は成立するということを前提に、ビデオデコーダ130が、マクロブロック毎の復号処理の間隔を調整して、復号処理速度の変更を行う方法を述べる。ビデオデコーダ130は、まず、入力されたビデオESのシーケンスヘッダ(図4参照)内のパラメータhorizontal_size_value及びhorizontal_size_extensionから水平方向画像サイズHSを、vertical_size_value及びvertical_size_extensionから、垂直方向画像サイズVSを求め、前記水平方向画像サイズHS、垂直方向画像サイズVSから、式(24)により、1フレーム内のマクロブロック数MBを算出する。
Figure 0004727557
また、ビデオデコーダ130は、前記ビデオESのシーケンスヘッダからフレームレートFdを、ピクチャヘッダからストラクチャ種別Sdを求め(フレーム周期検出部210及びストラクチャ検出部220において、フレームレートFとストラクチャ種別Sを検出するのと同等の処理)、1ピクチャの復号に1ピクチャの表示時間を使用する場合の1マクロブロック当たりに割り当てられるマクロブロック処理間隔Tmbを算出する。ストラクチャ種別Sdがフレームストラクチャを示す場合は、マクロブロック処理間隔Tmbは式(25)で表され、ストラクチャ種別Sdがフィールドストラクチャを示す場合は、マクロブロック処理間隔Tmbは式(26)で表される。
Figure 0004727557
最終的に、ビデオデコーダ130は、式(25)または式(26)により得られたマクロブロック処理間隔Tmbと、前記復号速度比Tdrを用いて、次式(27)により、マクロブロック処理時間Tmbvを求め、1マクロブロックの処理を、このマクロブロック処理時間Tmbv毎に行うことにより、復号処理の速度、即ち、1ピクチャの復号にかかる時間の制御を行う。
Figure 0004727557
図15には、復号速度比Tdrの値が1、4/3、5/6の時のマクロブロックの復号処理の様子が示されている。以上、マクロブロックの処理時間を変更することにより、ビデオデコーダ130による復号処理速度を変更方法する第一の方法について述べた。
前記第一の方法をブロック処理に適用することにより、ブロックの処理間隔を変更し、復号処理速度を変更することも同様に可能である。これが復号処理速度を変更する第二の方法である。第三の復号処理速度を変更する方法として、ビデオデコーダ130の動作クロックを復号速度比Tdrに比例させる方法がある。無段階にクロック周波数を変更する方法、予め用意しておいた何種類かのクロック周波数を復号速度比Tdrに応じて段階的に切り換える方法等が考えられる。
フレームバッファ140は、タイミング制御部190から復号開始時刻Tpsに基づくトリガ信号を受け取ると、ビデオデコーダ130により書き込まれた復号ビデオストリームのうち最も出力順が早いピクチャを出力する。ピクチャ出力順は各ピクチャに対応する提示時刻情報PTSの値によって決定される。その具体的な方法については、本発明に特有の要素ではないためここでは言及しない。出力結果は、表示処理部500に供給される。
オーディオデコーダ170は、復号開始時刻Tdsaに基づくタイミング制御部190からのトリガ信号により、1アクセスユニット分(提示時刻情報PTS1個分)の復号処理を開始する。オーディオ位相調整バッファ160に蓄積されたオーディオESを順次読み出し、復号し、その復号結果を音声出力装置700に出力する。
以上、入力されるデータ列が、MPEG2−TSの場合についての本発明の処理手順について説明したが、他の符号化方式により符号化されたデータ列や他のフォーマットのデータ列であっても、P(またはI)ピクチャとBピクチャがデータ列中でどのように配置されているかを算出するためのパラメータ(P−P間フレーム数Mを算出可能な提示時刻情報PTS、復号時刻情報DTSのようなパラメータ)、フレーム周期Tを算出するためのパラメータ、ストラクチャ構造S(フレーム構造かフィールド構造か)を判定することができるデータ列であれば、本実施形態と同様な処理を行うことにより、少ない遅延時間(本実施形態では最大でフレーム周期T/3)で、ビデオデコーダが使用する帯域(すなわち、単位時間当たりのデータ転送量)の時間方向の平準化を図り、メモリ400、バス900の最大使用帯域を少なく抑えることができる。これにより。メモリ400、バス900に要求される性能が抑えられ、コスト低下が可能となる。また、ユーザ操作などの外部からのイベントに対する処理をCPU310が行う際に、ビデオデコーダ130の使用帯域に圧迫されて発生する処理遅延を抑えることができる。
例えば、MPEG2−PS(Program Stream)の場合、以下の2点を変更することにより、本実施形態と同様のシステムが実現できる。1)ストリーム処理部100からタイミング制御部190へは、TSヘッダの代わりにPSパックヘッダを送る。2)タイミング制御部190は、TSヘッダ内のパラメータPCRの代わりにPSパックヘッダ内のパラメータSCR(System Clock Reference)により、システム基準時間STCの合わせ込みを行う。
[第2の実施形態]
以下、本発明の第2の実施形態について、図16乃至図19、図4、図7、図14を用いて詳細に説明する。図16は、本実施形態による復号装置であるデジタルTV1001の構成を示した概略ブロック図である。同図において、図1の各部に対応する部分には同一の符号を付け、その説明を省略する。1400は、入力されたストリームをビデオストリーム、オーディオストリーム、セクション等に分類し、それぞれメモリ401へと書き込むストリーム処理部である。301は、ビデオデコーダ130およびオーディオデコーダ170の復号速度比および復号開始時刻と、ビデオデコーダ130による復号結果の表示開始時刻を求める制御部である。
図17は、図16のデジタルTV1001から復号処理に関連した構成を抜き出し、復号処理手順に準じた配置を示した概略ブロック図である。なお、図17においては、ストリーム処理部1400、メモリ401、制御部301、ビデオデコーダ(復号手段)130、オーディオデコーダ(第2の復号手段)170、表示処理部500、CPU310の間を接続するバス900は図示を省略する。
図17に示した装置を図16に適用する場合、メモリ401は、ビデオストリームバッファ110、解析待ち用ビデオバッファ1410、フレームバッファ140、オーディオストリームバッファ150、解析待ち用オーディオバッファ1420を含む。制御部301は、オーディオタイミング検出部180、タイミング制御部190、フレーム周期検出部210、ストラクチャ検出部220、ピクチャタイプ検出部1430、シーケンス変化検出部1450、復号制御部(復号制御手段)1440、FIFO1460を備える。
以下、図17を参照して、入力された多重ストリーム(MPEG2−TS(Transport Stream))を処理する手順を説明する。ストリーム処理部1400は、前記入力されたMPEG2−TSからビデオES、オーディオES、TSヘッダ、ビデオPESヘッダ、オーディオPESヘッダを抽出し、ビデオESをビデオストリームバッファ110、フレーム周期検出部210、ストラクチャ検出部220、ピクチャタイプ検出部1430、シーケンス変化検出部1450へ、オーディオESをオーディオストリームバッファ150へ、TSヘッダをタイミング制御部190へ、ビデオPESヘッダを復号制御部1440へ、オーディオPESヘッダをオーディオタイミング検出部180へと分配する。
ビデオストリームバッファ110、オーディオストリームバッファ150は、第1の実施形態と同様に、ビデオES及びオーディオESの入出力の速度の違いを吸収するためのバッファである。解析待ち用ビデオバッファ1410及び解析待ち用オーディオバッファ1420は、復号制御部1440が、後述する入力ビデオESのピクチャの構成を検出するのに要する時間分のビデオESまたはオーディオESを一時的に貯めておくためのバッファである。
ビデオストリームバッファ110に入力されたビデオESは、解析待ち用ビデオバッファ1410に空きがある限り、順次、解析待ち用ビデオバッファ1410に移動させられる。図17では、利用目的の違いを明確にする目的で、ビデオストリームバッファ110と解析待ち用ビデオバッファ1410を個別に設けているが、両者を一つのバッファにまとめた構成としてもよい。オーディオストリームバッファ150と解析待ち用オーディオバッファ1420の関係も、前記ビデオストリームバッファ110と解析待ち用ビデオバッファ1410の関係と同様である。オーディオストリームバッファ150に入力されたオーディオストリームは、解析待ち用オーディオバッファ1420に空きがある限り、順次解析待ち用オーディオバッファ1420へと移動させられる。また、オーディオストリームバッファ150と解析待ち用オーディオバッファ1420を一つのバッファにまとめた構成としてもよい。
フレーム周期検出部210の動作は、第1の実施形態と同様である。但し、検出結果のフレーム周期Tは、復号制御部1440へと送られる。ストラクチャ検出部220の動作も、第1の実施形態と同様である。検出結果のストラクチャ種別Sは、復号制御部1440へと送られる。ピクチャタイプ検出部1430は、ストリーム処理部1400から与えられるビデオESからピクチャタイプ(Iピクチャ、Pピクチャ、Bピクチャのいずれであるかを示すパラメータ)を検出する。図4に示したMPEG2ビデオESの第三層、ピクチャ層のピクチャヘッダ内には、ピクチャタイプを示すパラメータpicture_coding_typeが含まれるため、このパラメータを検出する。前記検出結果(PTとする)は、復号制御部1440へと送られる。
シーケンス変化検出部1450は、ストリーム処理部1400から与えられるビデオESのシーケンスヘッダ(図4の第一層)内のパラメータのうち、画像のサイズやフレームレート、色差フォーマット等、ビデオデコーダ130の復号処理においてメモリの使用帯域に影響を及ぼすパラメータ値に変化があったかどうかを検出する。変化があった場合には、その旨を示す信号を復号制御部1440へと送る。復号制御部1440は、ストリーム処理部1400から与えられるビデオPESヘッダに含まれるPTSとDTS、フレーム周期検出部210から与えられるフレーム周期T、ストラクチャ検出部220から与えられるストラクチャ種別S、ピクチャタイプ検出部1430から与えられるピクチャタイプPTを用いて、復号開始時刻Tds、復号速度比Tdr及び表示開始時刻Tpsを算出する。以下、その詳細な動作について、図18のフローチャートを用いて説明する。
復号制御部1440は、動作開始後、まずステップS1500で、パラメータt及びパラメータkを0にセットする。パラメータtは時間を示すパラメータであり、ステップS1500で0にセットされた後は、図18の処理フローとは別個に、時間の経過に同期してカウントアップされる。このパラメータには、例えば同期カウンタの出力を用いる。パラメータkは、フレーム数をカウントする変数である。1フィールドは0.5フレームとしてカウントされる。
ステップ1505では、復号制御部1440は、ストリーム処理部1400から与えられたビデオPESヘッダ(図7、600)から、PTS・DTSフラグ(図7、645)を抽出して提示時刻情報PTS、復号時刻情報DTSの有無を検出し、その検出結果が、提示時刻情報PTSのみ有りであった場合は、提示時刻情報PTS(図7、661)を、提示時刻情報PTS、復号時刻情報DTS共に有りであった場合には、復号時刻情報DTS(図7、662)を抽出し、FIFO1460に書き込む。ここで書き込んだものを以下デコード開始基準時刻DBTと呼ぶこととする。また、PTS・DTSフラグの検出結果にかかわらず、提示時刻情報PTSを抽出し、この提示時刻情報PTSをFIFO1460に書き込む。ここで書き込んだ提示時刻情報PTSを以下表示開始基準時刻PBTと呼ぶこととする。
続くステップS1510では、復号制御部1440は、ピクチャタイプ検出部1430からピクチャタイプPTが送られてくるのを待ち、送られてきたピクチャタイプPTを、FIFO1460に書き込む。ステップS1520では、復号制御部1440は、ストラクチャ検出部220からストラクチャ種別Sが送られてくるのを待ち、送られてきたストラクチャ種別SをFIFO1460に書き込む。ここでは、デコード開始基準時刻DBT、表示開始基準時刻PBT、ピクチャタイプPT、ストラクチャ種別Sを個別にFIFO1460に書き込むように述べているが、これらを一つにまとめてFIFO1460に書き込むようにしても良い。また、一つのFIFOではなく、各々に専用のFIFOバッファを用意してもよい。
次のステップS1530では、復号制御部1440は、前記ストラクチャ種別Sの値によって、分岐処理を行う。即ち、ストラクチャ種別Sがフレームストラクチャを示す場合には、ステップS1540へ進み、フィールドストラクチャを示す場合には、ステップS1550へと進む。ステップS1540では、復号制御部1440は、フレーム数kに1を加算し、ステップS1560へと進む。ステップS1550では、復号制御部1440は、フレーム数kに0.5を加算し、ステップS1560へと進む。ステップS1560では、復号制御部1440は、シーケンス変化検出部1450から信号が送られてきたかどうか、つまりビデオESのシーケンスヘッダのパラメータに、ビデオデコーダ130の復号処理において使用する帯域に影響を与えるような変化があったかどうかによって、分岐処理を行う。信号が送られてきていた(変化があった)場合には、ステップS1580へ進み、信号が送られてきていなかった(変化がなかった)場合には、ステップS1570へと進む。ステップS1570では、復号制御部1440は、パラメータtの値が一定の基準値を超えているかどうかの判定を行い、分岐処理を行う。この判定は、以下の式(28)により行う。
Figure 0004727557
ここで、Dは、本実施形態におけるシステムのストリーム入力からデコード開始までに許容される最大遅延時間を示している。これは、解析待ち用ビデオバッファ1410または解析待ち用オーディオバッファ1420にビデオESまたはオーディオESを蓄積し続けることのできる時間、即ち、復号制御部1440が、動画像復号処理に使用する帯域を平準化するために使用するピクチャタイプを収集することのできる最大の時間を示す。従って、Dは、解析待ち用ビデオバッファ1410の容量と入力ビデオストリームの最大ビットレートまたは解析待ち用オーディオバッファ1420の容量と入力オーディオストリームの最大ビットレートによって決まる。
ところで、式(28)は、前記解析待ち用ビデオバッファ1410または前記解析待ち用オーディオバッファ1420に、次のピクチャのパラメータを取るだけの容量が残っているか否かの判定を行うための式である。つまり、ステップS1505に戻って、次のピクチャに対する処理を行うには、少なくともビデオストリーム1ピクチャ分の容量が、前記解析待ち用ビデオバッファ1410及び前記解析待ち用オーディオバッファ1420に確保できている状態でないとならない。式(28)のαは、このビデオストリーム1ピクチャ分の容量が残っているかどうかの指標となる値とする。予めシステムで扱うことになる最大値(固定値)をαとしても良いし、フレーム周期Tから随時ビデオストリーム1ピクチャ分の容量を演算してαとしても良い。
パラメータtが式(28)を満たす場合にはステップS1580へと進み、そうでない場合にはステップS1505へと戻る。ステップS1580では、復号制御部1440は、前記FIFO1460に蓄積されたkフレーム分のデコード開始基準時刻DBT、表示開始基準時刻PBT、ピクチャタイプPT、ストラクチャタイプSを全て読み出す。その際、読み出した数(=ピクチャの枚数)pを計数しておく。以下では、読み出した(=書き込んだ)順番j(jは1以上p以下の整数)を用いて、デコード開始基準時刻をDBT[j]、表示開始基準時刻をPBT[j]、ピクチャタイプをPT[j]、ストラクチャタイプをS[j]と表記する。
続くステップS1590では、復号制御部1440は、ステップS1580で読み出したkフレーム分のピクチャタイプPT[j]及びストラクチャタイプS[j]から、Iピクチャ、Pピクチャ、Bピクチャのフレーム数、ki、kp、kbを算出する。ストラクチャタイプSがフレームストラクチャの場合は、1ピクチャを1フレーム分と計数し、ストラクチャタイプSがフィールドストラクチャの場合は、1ピクチャを0.5フレーム分と計数する。ki、kp、kbとkの関係は、式(29)のようになる。
Figure 0004727557
S1600では、復号制御部1440は、前記ki、kp、kb、kからIピクチャ、Pピクチャ、Bピクチャの復号速度比Tdri、Tdrp、Tdrbを式(30)〜(32)により算出する。
Figure 0004727557
ここで、前記式(30)〜(32)の導出方法について説明する。第1の実施形態でも述べたように、Iピクチャ、Pピクチャ、Bピクチャは、復号処理の際に参照可能なピクチャの枚数が異なり、Iピクチャは0枚、Pピクチャは最大1枚、Bピクチャは最大2枚のピクチャを参照可能である。それ故、各ピクチャの復号処理時間を1フレーム周期Tとしたときには、3種のピクチャは復号時におけるメモリの使用帯域が異なり、Iピクチャが復号時に使用する最大帯域BWi、Pピクチャが復号時に使用する最大帯域BWp、Bピクチャが復号時に使用する最大帯域BWbの関係は、BWb>BWp>BWiとなる。従って、kフレーム分のピクチャの平均最大使用帯域BWaveは、式(33)のように表される。
Figure 0004727557
ここで、Iピクチャ、Pピクチャ、Bピクチャの最大使用帯域が、図9に示されるような比率であると仮定する。即ち、Iピクチャでは、復号結果のメモリへの書き込みで計1ピクチャ分の帯域を使用し、Pピクチャでは、復号結果のメモリへの書き込みと参照画像1面の読み出しで計2ピクチャ分の帯域を使用し、Bピクチャでは、復号結果のメモリへの書き込みと参照画像2面の読み出しで計3ピクチャ分の帯域を使用するものと仮定すると、BWi:BWp:BWb=1:2:3となる。なお、この仮定はあくまでも一例であり、適用しようとする動画像復号システムに適した比率とすれば良い。すると、前記式(33)は、式(34)〜(36)のように書ける。
Figure 0004727557
全てのピクチャの復号処理における最大使用帯域をBWaveにしようとする場合、その復号速度比は、使用帯域に比例させれば良い。従って、前記各ピクチャの復号速度比Tdri、Tdrp、Tdrbは、式(30)〜(32)のようになる。
ステップS1610では、ステップS1580において読み出した値から、復号開始時刻Tds[j]と復号速度比Tdr[j](jは1以上p以下の整数)を求める。Tdr[j]はj枚目のピクチャの復号速度比を表し、PT[j]が示すj枚目のピクチャのピクチャタイプに合わせて、Tdri、Tdrp、Tdrbの何れかが代入される。また、j枚目のピクチャの復号開始時刻Tds[j]は、j=1の場合は式(37)で、j≧2の場合は式(38)で求める。
Figure 0004727557
なお、Dは前述した通り、ストリーム入力からデコード開始までに供される最大遅延時間を示し、Tはフレーム周期検出部210から与えられるフレーム周期Tを示す。
ここで、ステップS1600及びステップS1610における復号制御部1440の具体的な処理内容について、図19を用いて説明する。図19における矩形内の符号については、I1はIピクチャを、P4はPピクチャを、B2、B3、B5、B6はBピクチャを示している。なお、前記符号の数字部は、ピクチャの入力順を示している。また、最下段に示されているDTS1、PTS2等の符号は、数字部が一致する各ピクチャに付けられている復号時刻情報DTSや提示時刻情報PTSが示す時刻を表している。図19においては、D=4Tのシステムを想定しており、ピクチャI1からピクチャP4の4フレーム分(k=4)のパラメータを用いて、復号開始時刻Tds[j]、復号速度比Tdr[j]が求められる場合を考える。この時、Iピクチャ1フレーム分(ki=1)、Pピクチャ1フレーム分(kp=1)、Bピクチャ2フレーム分(kb=2)である。各ピクチャ種別毎の復号速度比Tdri、Tdrp、Tdrbは、式(30)〜(32)により、以下の式(39)〜(41)のようになる。
Figure 0004727557
最初のピクチャI1のデコード開始基準時刻DBT[1]は、図19からわかるように、DTS1であるので、I1の復号開始時刻Tds[1]は、式(37)より、式(42)のようになる。
Figure 0004727557
以下、ピクチャB2、B3、P4の復号開始時刻Tds[2]〜Tds[4]は、式(38)から各々式(43)〜式(45)のようになる。
Figure 0004727557
全ての復号開始時刻Tds[j]と復号速度比Tdr[j]を算出したら、ステップS1615に進む。
ステップS1615では、復号制御部1440は、ステップS1580において読み出した値から、表示開始時刻Tps[j](jは1以上p以下の整数)を式(46)により求める。
Figure 0004727557
全ての表示開始時刻Tps[j]を算出したら、ステップS1620へと進む。
ステップS1620では、復号制御部1440は、ステップS1610及びステップS1615で得られた、復号開始時刻Tds[j]と復号速度比Tdr[j]を1組にして、j=1からpまで、順番にタイミング制御部190へと出力する。また、1〜pまでの表示開始時刻Tps[j]を、順にタイミング制御部190へと出力する。両者共pまでの出力が完了したら、ステップS1500へと戻る。
オーディオタイミング検出部180は、基本的には第1の実施形態と同様の動作をするが、ストリーム入力からデコード開始までの遅延時間が第1の実施形態とは異なるため、オーディオの復号開始時刻Tdsaは、式(47)に示されるものとなる。オーディオの提示時刻PTSaは、ストリーム処理部1400から与えられるオーディオPESヘッダに含まれる提示時刻情報PTSの値であり、Dは前記した通り、ストリーム入力からデコード開始までのシステムの最大遅延時間である。
Figure 0004727557
オーディオタイミング検出部180が算出したオーディオの復号開始時刻Tdsaは、タイミング制御部190へと送られる。
タイミング制御部190は、復号制御部1440が送ってきた復号開始時刻Tds[j]と復号速度比Tdr[j]を、図14のように対応付けて格納するためのテーブルをローカルメモリ上に持っており、送られてきた順に格納する。そして第1の実施形態と同様にしてビデオデコーダ130に対し、タイミング制御を行う。タイミング制御部190はまた、復号制御部1440が送ってきた表示開始時刻Tps[j]を格納するためのテーブルをローカルメモリ上に持っており、送られてきた全ての表示開始時刻Tpsを昇順にソートし直して、順にこのローカルメモリ上に格納する。そして、第1の実施形態と同様にしてフレームバッファ140に対し、タイミング制御部を行う。タイミング制御部190はさらに、オーディオタイミング検出部180が送ってきた復号開始時刻Tdsを格納するためのテーブルをローカルメモリ上に持っており、送られてきた順に格納する。そして、第1の実施形態と同様にしてオーディオデコーダ170に対し、タイミング制御を行う。ビデオデコーダ130、フレームバッファ140、オーディオデコーダ170は、第1の実施形態と同様に、タイミング制御部190によるタイミング制御に従い、ビデオESとオーディオESの復号処理及び、復号結果の出力を行う。
これにより、第1の実施形態のように提示時刻情報PTSおよび復号時刻情報DTSといったパラメータから符号化種別構成を算出するのではなく、各符号化単位の符号化種別を検出することで、符号化種別構成を把握して、ビデオデコーダが使用するメモリ帯域の時間方向の平準化を図り、メモリ401、バス900の最大使用帯域を抑えることができる。これにより、メモリ401、バス900に要求される性能が抑えられ、コスト低下が可能となる。また、ユーザ操作などの外部からのイベントに対する処理をCPU1820が行う際に、ビデオデコーダ130の使用帯域に圧迫されて発生する処理遅延を抑えることができる。
なお、本第2の実施形態も、第1の実施形態と同様にMPEG2−PSに対応したシステムとすることが可能である。
以上、本第2の実施形態においては、ピクチャ毎にそのピクチャタイプを判定し、前記ピクチャタイプにより、ストリーム中のピクチャ構成を得て、前記ピクチャ構成に基づいてビデオデコーダの復号処理速度を制御することにより、復号処理に使用するメモリ帯域を平準化する方法について述べた。
また、図2におけるストリーム処理部100、ビデオデコーダ130、オーディオデコーダ170、タイミング制御部190、復号制御部200、フレーム周期検出部210、ストラクチャ検出部220、オーディオタイミング検出部180、および、図17におけるストリーム処理部1400、ビデオデコーダ130、オーディオデコーダ170、タイミング制御部190、フレーム周期検出部210、ストラクチャ検出部220、オーディオタイミング検出部180、ピクチャタイプ検出部1430、復号制御部1440、シーケンス変化検出部1450、FIFO1460の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
以上、この発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
本発明は、デジタルテレビ、DVDプレーヤ、携帯電話等、MPEG2、H.264等の動画像復号機能を搭載した機器に用いて好適であるが、これに限定されない。
本発明の第1の実施形態による復号装置であるデジタルTV1000の構成を示した概略ブロック図である。 同実施形態におけるデジタルTV1000から復号処理に関連した構成を抜き出し、復号処理手順に準じた配置を示した概略ブロック図である。 MPEG2−TSの構造を示した図である。 MPEG2のビデオESの構成を示した図である。 MPEG2におけるframe_rate_codeとframe_rate_valueとの対応関係を示した表である。 第1の実施形態における復号制御部200の動作を説明するフローチャートである。 MPEG2のPESヘッダの構成を示した図である。 ストラクチャ種別Sがフレームストラクチャである場合の、復号処理による遅延時間が0の理想的なビデオデコーダにビデオESが入力されるタイミングと該ビデオデコーダによる復号結果が表示されるタイミングを示した図である。 各種別のピクチャを復号する際の最大使用帯域を示した図である。 1ピクチャを1フレーム周期で復号する場合における、ピクチャタイプ毎の帯域使用量と1ピクチャの復号処理時間を示した図である。 第1の実施形態におけるピクチャタイプ毎の帯域使用量と1ピクチャの復号処理時間を示した図である。 ストラクチャ種別Sがフレームストラクチャである場合の、従来及び第1の実施形態における動画像復号処理の動作タイミングを示す図である。 ストラクチャ種別Sがフィールドストラクチャである場合の、従来及び第1の実施形態における動画像復号処理の動作タイミングを示す図である。 第1の実施形態におけるタイミング制御部190が備えるテーブルAの記憶内容例を示した図である。 マクロブロックやブロックの処理の間隔を制御することによる処理速度の変更方法の基本的な考え方を示した図である。 第2の実施形態による復号装置であるデジタルTV1001の構成を示した概略ブロック図である。 同実施形態におけるデジタルTV1001から復号処理に関連した構成を抜き出し、復号処理手順に準じた配置を示した概略ブロック図である。 同実施形態における復号処理部1440の動作を説明するフローチャートである。 ストラクチャ種別Sがフレームストラクチャである場合の、従来及び第2の実施形態における動画像復号処理の動作タイミングを示す図である。 動画を構成するピクチャ間の相関を説明する図である。 従来のデジタルTVに用いられる動画像の復号装置の構成例を示した概略ブロック図である。 各種別のピクチャをビデオデコーダ1800が復号する際のメモリ1810に対するアクセスの使用帯域を示した図である。 ストラクチャ種別Sがフィールドストラクチャである場合の、復号処理による遅延時間が0の理想的なビデオデコーダにビデオESが入力されるタイミングと該ビデオデコーダによる復号結果が表示されるタイミングを示した図である。
符号の説明
100、1400、1870…ストリーム処理部
110…ビデオストリームバッファ
120…ビデオ位相調整バッファ
130、1800…ビデオデコーダ
140…フレームバッファ
150…オーディオストリームバッファ
160…オーディオ位相調整バッファ
170、1850…オーディオデコーダ
180…オーディオタイミング検出部
190…タイミング制御部
200、1440…復号制御部
210…フレーム周期検出部
220…ストラクチャ検出部
300、301…制御部
310、1820…CPU
400、401、1810…メモリ
500、1830…表示処理部
600、1860…チューナ
700、1890…音声出力装置
800、1840…表示装置
900、1880…バス
1000、1001…デジタルTV
1410…解析待ち用ビデオバッファ
1420…解析待ち用オーディオバッファ
1430…ピクチャタイプ検出部
1450…シーケンス変化検出部
1460…FIFO

Claims (5)

  1. 各々が符号化種別を有する複数の符号化単位を含むデータ列について、前記複数の符号化単位の符号化種別構成を検出し、符号化種別毎に固有のメモリとの間のデータ転送量と前記符号化種別構成とに基づき、前記データ列を復号する際のメモリとの間の単位時間当たりのデータ転送量が、時間方向に平準化されるように各符号化単位の復号処理速度を求める復号制御手段と、
    前記算出した復号処理速度に従い、前記符号化単位を復号する復号手段と
    を備えることを特徴とする復号装置。
  2. 前記データ列との同期情報を有する第2のデータ列を復号し、前記同期情報に従い、前記第2のデータ列の復号結果を前記復号手段による前記データ列の復号結果と同期させて
    出力する第2の復号手段と
    を備えることを特徴とする請求項1に記載の復号装置。
  3. 前記符号化単位は動画像を構成する画像であるピクチャであり、前記符号化種別は符号化の際に参照する画像の最大数を判別可能なピクチャタイプであることを特徴とする請求項1また請求項2に記載の復号装置。
  4. 前記復号制御手段は、前記データ列が有する提示時刻情報復号時刻情報との差分に基づき、該データ列が有するピクチャのピクチャタイプの並びを符号化種別構成として検出することを特徴とする請求項3に記載の復号装置。
  5. 各々が符号化種別を有する複数の符号化単位からなるデータ列を復号する復号装置における復号方法において、
    前記復号装置が、前記データ列に基づき、前記複数の符号化単位の符号化種別構成を検出する第1の過程と、
    前記復号装置が、符号化種別毎に固有のメモリとの間のデータ転送量と前記符号化種別構成とに基づき、前記データ列を復号する際のメモリとの間の単位時間当たりのデータ転送量が、時間方向に平準化されるように各符号化単位の復号処理速度を求める第2の過程と、
    前記復号装置が、前記算出した復号処理速度に従い、前記符号化単位を復号する第3の過程と
    を備えることを特徴とする復号方法。
JP2006323429A 2006-11-30 2006-11-30 復号装置および復号方法 Expired - Fee Related JP4727557B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006323429A JP4727557B2 (ja) 2006-11-30 2006-11-30 復号装置および復号方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006323429A JP4727557B2 (ja) 2006-11-30 2006-11-30 復号装置および復号方法

Publications (2)

Publication Number Publication Date
JP2008141311A JP2008141311A (ja) 2008-06-19
JP4727557B2 true JP4727557B2 (ja) 2011-07-20

Family

ID=39602370

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006323429A Expired - Fee Related JP4727557B2 (ja) 2006-11-30 2006-11-30 復号装置および復号方法

Country Status (1)

Country Link
JP (1) JP4727557B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101947000B1 (ko) 2012-07-17 2019-02-13 삼성전자주식회사 방송 시스템에서 멀티미디어 데이터의 전송 특징 정보 전달 방법 및 장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08280022A (ja) * 1994-11-25 1996-10-22 Philips Electron Nv 符号化ビデオ信号の復号化方法及び装置
JP2001016113A (ja) * 1999-06-30 2001-01-19 Toshiba Corp 単一の外部記憶メモリを備えたマルチメディア復号化装置
JP2002112195A (ja) * 2000-10-04 2002-04-12 Sanyo Electric Co Ltd 動画像復号化装置および動画像復号化方法
JP2004534485A (ja) * 2001-07-06 2004-11-11 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ リソースをスケーリング可能なデコード

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2006004065A1 (ja) * 2004-07-02 2008-07-31 有限会社金沢大学ティ・エル・オー 動画像符号化処理システム、動画像符号化又は復号化処理システム、動画像符号化処理方法、及び、動画像符号化又は復号化処理方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08280022A (ja) * 1994-11-25 1996-10-22 Philips Electron Nv 符号化ビデオ信号の復号化方法及び装置
JP2001016113A (ja) * 1999-06-30 2001-01-19 Toshiba Corp 単一の外部記憶メモリを備えたマルチメディア復号化装置
JP2002112195A (ja) * 2000-10-04 2002-04-12 Sanyo Electric Co Ltd 動画像復号化装置および動画像復号化方法
JP2004534485A (ja) * 2001-07-06 2004-11-11 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ リソースをスケーリング可能なデコード

Also Published As

Publication number Publication date
JP2008141311A (ja) 2008-06-19

Similar Documents

Publication Publication Date Title
JP6961778B2 (ja) 送信方法、受信方法、送信装置及び受信装置
US10827208B2 (en) Transmitting method, receiving method, transmitting device and receiving device
US8046815B2 (en) Optical network for bi-directional wireless communication
US9467696B2 (en) Dynamic streaming plural lattice video coding representations of video
KR100711635B1 (ko) 화상 부호화 방법
TWI268107B (en) Adaptive bandwidth footprint matching for multiple compressed video streams in a fixed bandwidth network
US7668170B2 (en) Adaptive packet transmission with explicit deadline adjustment
US8396126B2 (en) Systems and methods for video coding and transmission
JP5043096B2 (ja) チャネル変更方法及びデジタル・ビデオ装置
US20120275518A1 (en) Moving picture coding method, apparatus, program, and integrated circuit
US20070279683A1 (en) Communication Apparatus, Communication Method, Communication Transmission and Reception Apparatus, Communication Transmission and Reception Method, and Program
US20110116722A1 (en) Coded stream reproduction device and coded stream reproduction method
KR20110124161A (ko) 계층 부호화 영상의 송수신 방법 및 장치
JP2009182442A (ja) 動画像符号化・復号システム、並びにそれに用いる動画像符号化装置および動画像復号装置
WO2008032660A1 (en) Image decoding device, image decoding method, image decoding system, and system lsi
US11722714B2 (en) Transmitting method, receiving method, transmitting device and receiving device
US20160337671A1 (en) Method and apparatus for multiplexing layered coded contents
JP2017520940A5 (ja) レイヤードコード化コンテンツを多重化する方法および装置
KR20020026250A (ko) 비디오 신호 인코딩 및 버퍼 관리
JP4727557B2 (ja) 復号装置および復号方法
JP4807883B2 (ja) 復号装置、デジタルテレビ装置、テレビ付き携帯電話、デジタルメディアプレーヤ、インターネットテレビ装置および復号方法
JP5333218B2 (ja) 動画像データ配信システム、その方法及びそのプログラム
JPWO2008053557A1 (ja) 動画像再符号化装置、動画像再符号化方法、動画像再符号化プログラムおよび動画像再符号化プログラムを格納した記録媒体
US20050265369A1 (en) Network receiving apparatus and network transmitting apparatus
KR101114749B1 (ko) 수신된 트랜스포트 스트림에 포함된 영상 데이터를 화면끊김 현상이 없도록 처리하는 방법과 그에 따른 디지털멀티미디어 방송 수신 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090218

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101019

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101214

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110208

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110405

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140422

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees