JP2004135067A - 動画像再生処理方法、動画像再生装置および動画像再生処理プログラム - Google Patents
動画像再生処理方法、動画像再生装置および動画像再生処理プログラム Download PDFInfo
- Publication number
- JP2004135067A JP2004135067A JP2002297588A JP2002297588A JP2004135067A JP 2004135067 A JP2004135067 A JP 2004135067A JP 2002297588 A JP2002297588 A JP 2002297588A JP 2002297588 A JP2002297588 A JP 2002297588A JP 2004135067 A JP2004135067 A JP 2004135067A
- Authority
- JP
- Japan
- Prior art keywords
- moving image
- processing
- frame
- threshold
- load
- 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.)
- Withdrawn
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
【課題】動画像の伸長・再生処理を効率的に行うこと。
【解決手段】動画像再生装置1は、(23)〜(28)式に基づく条件判定を行い、動画像のストリームデータをデコード処理する際のフレームバッファ量および処理能力を適切な範囲に調整する。したがって、デコード処理および動画像の再生のいずれもが連続的に行なわれることとなり、過剰なフレームバッファを割り当てたり、デコード処理能力に対してフレームバッファが不足し、動画像の再生が円滑に行なわれない事態を避けることができる。即ち、記憶容量や処理能力を効率的に使用することができ、消費電力あるいは不要輻射の低減、また、実装コストの削減等の効果を得ることができるため、動画像の伸長・再生処理を効率的に行うことが可能となる。
【選択図】 図5
【解決手段】動画像再生装置1は、(23)〜(28)式に基づく条件判定を行い、動画像のストリームデータをデコード処理する際のフレームバッファ量および処理能力を適切な範囲に調整する。したがって、デコード処理および動画像の再生のいずれもが連続的に行なわれることとなり、過剰なフレームバッファを割り当てたり、デコード処理能力に対してフレームバッファが不足し、動画像の再生が円滑に行なわれない事態を避けることができる。即ち、記憶容量や処理能力を効率的に使用することができ、消費電力あるいは不要輻射の低減、また、実装コストの削減等の効果を得ることができるため、動画像の伸長・再生処理を効率的に行うことが可能となる。
【選択図】 図5
Description
【0001】
【発明の属する技術分野】
本発明は、圧縮された動画像データの伸長および再生処理を行なう動画像再生処理方法、動画像再生装置および動画像再生処理プログラムに関する。
【0002】
【従来の技術】
従来、携帯電話あるいは携帯情報端末等の情報処理装置において、動画像の再生が行なわれている。
このような情報処理装置において再生される動画像は、一般に、圧縮された状態で格納され、伸長された上で再生されている。
【0003】
ところが、動画像の伸長および再生の処理は、一定のメモリや処理能力を要するものであり、そのため、消費電力が増大する場合がある。
一方、携帯電話や携帯情報端末といった情報処理装置の中には、十分なメモリや処理能力を備えていないものも多く、動画像の伸長および再生の処理を如何に行うかが問題となる。
【0004】
このような事情に鑑み、動画像の伸長あるいは再生の処理を効率的に行うための技術が種々提案されている。
例えば、特開2002−91782号公報には、非同期に実行すべきタスクが多数存在する場合に、それらのタスクを効率的に実行するプロセッサに関する技術が開示されている。
【0005】
本号公報に記載された技術においては、緊急度の高くなったタスクを他のタスクに優先して実行することで、処理の効率化を図っている。
また、特許第3159591号公報には、動画像の圧縮伸長処理の際、事前にCPU(Central Processing Unit)から必要なコマンド列を与えられ、フレーム毎に、その垂直同期信号に従って、前記コマンドが実行されるように制御する技術が開示されている。
【0006】
本号公報に記載された技術によれば、CPUの負担を軽減し、効率的に動画像の圧縮伸長処理を行なうことが可能である。
また、特開平7−14207号公報には、入力バッファメモリを持ち、外部からのコマンドの発行に応じて実行を指示し、入力バッファメモリに格納されたデータを復号対象とする技術が開示されている。
【0007】
また、特許第3013826号公報には、メインシステムおよびサブシステムを備え、サブシステムで生成した表示タイミング情報に基づいて、表示装置における映像表示を制御する技術が開示されている。
【0008】
【特許文献1】
特開2002−91782号公報
【特許文献2】
特許第3159591号公報
【特許文献3】
特開平7−14207号公報
【特許文献4】
特許第3013826号公報
【0009】
【発明が解決しようとする課題】
しかしながら、特開2002−91782号公報に記載された技術は、タスクの優先度を変化させ、動作クロック数を際下限値に設定する制御機構を有するものの、バッファ容量と連動して制御するといったことは行なわれていない。また、タスク分割を複数行なうことにより、タスク制御部において複雑な処理を要し、開発コストが上昇する原因となる。
【0010】
また、上述した他の公報に記載された技術においては、伸長処理の負荷がフレーム毎に変動する場合に、処理時間にも変化があるものであるが、この処理時間の変動を吸収する目的で入力バッファおよび出力フレームバッファを使用することとしている。
しかし、これらの公報に記載された技術によっては、そのフレームバッファ量を低減することや、また、処理能力を変動させて、消費電力を低減するといったことを実現することはできない。
【0011】
本発明の課題は、動画像の伸長・再生処理を効率的に行うことである。
【0012】
【課題を解決するための手段】
以上の課題を解決するため、請求項1記載の発明は、
複数のフレームを含む符号化された動画像のストリームデータを復号化して再生するための動画像再生処理方法であって、処理対象である動画像のストリームデータに含まれる各フレームの処理負荷を所定の閾値(例えば、(20)式に示す全フレームの負荷平均WAverage)に基づいて分類し、該閾値より処理負荷の大きいフレーム群(例えば、発明の実施の形態中のグループG1に属するフレーム)のフレーム処理負荷に基づく第1の要素と、該閾値より処理負荷の小さいフレーム群のフレーム処理負荷に基づく第2の要素(例えば、図4に示すP,Bフレームの負荷平均“WB”)と、動画像のストリームデータを復号化する処理および動画像の再生処理のいずれもが連続的に行なわれるための所定条件(例えば、(23)式あるいは(24)式に基づく条件)とに基づいて、動画像再生処理のためのフレームバッファ量と、処理能力とを決定することを特徴としている。
【0013】
請求項2記載の発明は、
請求項1記載の動画像再生処理方法であって、
前記閾値は、処理対象である全フレームそれぞれの平均処理負荷あるいは前記閾値より処理負荷の大きいフレーム群の負荷平均と前記閾値より処理負荷の小さいフレーム群の負荷平均との中間値の少なくともいずれかに基づいて決定されることを特徴としている。
【0014】
請求項3記載の発明は、
請求項1または2記載の動画像再生処理方法であって、
前記第1の要素は、該閾値より処理負荷の大きいフレーム(例えば、Iフレーム)の負荷平均であり、前記第2の要素は、該閾値より処理負荷の小さいフレーム(例えば、P,Bフレーム)の負荷平均であることを特徴としている。
【0015】
請求項4記載の発明は、
請求項1〜3のいずれかに記載の動画像再生処理方法であって、
動画像のストリームデータを復号化する処理および動画像の再生処理のいずれもが連続的に行なわれるための前記所定条件を、以下の式に基づいて判定することを特徴としている。
【0016】
【数19】
【0017】
請求項5記載の発明は、
請求項1〜4のいずれかに記載の動画像再生処理方法であって、
前記閾値より処理負荷が大きいフレーム間における処理(例えば、1GOPの処理)について、前記所定条件を、以下の式に基づいて判定することを特徴としている。
【0018】
【数20】
【0019】
請求項6記載の発明は、
請求項1〜5のいずれかに記載の動画像再生処理方法であって、
前記第1の要素あるいは第2の要素の少なくともいずれかを、処理対象に含まれるフレームの処理負荷の分布状態(例えば、分散の平方根等)に基づいて補正することを特徴としている。
【0020】
請求項7記載の発明は、
請求項4または5記載の動画像再生処理方法であって、
前記閾値より処理負荷が大きいフレームの平均処理時間を、以下の式によって補正することを特徴としている。
【0021】
【数21】
【0022】
請求項8記載の発明は、
請求項4または5記載の動画像再生処理方法であって、
前記閾値より処理負荷が小さいフレームの平均処理時間を、以下の式によって補正することを特徴としている。
【0023】
【数22】
【0024】
請求項9記載の発明は、
請求項1〜8のいずれかに記載の動画像再生処理方法であって、
前記第1の要素あるいは第2の要素の少なくともいずれかを、処理対象である動画像の再生におけるフレームレートの変動に基づいて補正することを特徴としている。
【0025】
請求項10記載の発明は、
請求項4、請求項5、請求項7または請求項8のいずれかに記載の動画像再生処理方法であって、
前記閾値より処理負荷が大きいフレームの平均処理時間を、以下の式によって補正することを特徴としている。
【0026】
【数23】
【0027】
請求項11記載の発明は、
請求項4、請求項5、請求項7または請求項8のいずれかに記載の動画像再生処理方法であって、
前記閾値より処理負荷が大きいフレームの平均処理時間を、以下の式によって補正することを特徴としている。
【0028】
【数24】
【0029】
請求項12記載の発明は、
請求項1〜11のいずれかに記載の動画像再生処理方法であって、
処理対象である前記ストリームデータの再生処理実行前に把握可能な属性(例えば、図6に示す各要素に相当する属性)に基づいて、予め設定された所定値(例えば、図6に示す特定のストリームデータについての各種パラメータ)を選択し、選択した値に基づいて、前記第1あるいは第2の要素、前記所定条件の少なくともいずれかを決定することを特徴としている。
【0030】
請求項13記載の発明は、
請求項1〜12のいずれかに記載の動画像再生処理方法であって、
処理対象である前記ストリームデータの再生処理を実行することによって取得される属性に基づいて、前記第1あるいは第2の要素、前記所定条件の少なくともいずれかを決定することを特徴としている。
【0031】
請求項14記載の発明は、
複数のフレームを含む符号化された動画像のストリームデータを復号化して再生するための動画像再生装置であって、処理対象である動画像のストリームデータに含まれる各フレームの処理負荷を所定の閾値に基づいて分類し、該閾値より処理負荷の大きいフレーム群のフレーム処理負荷に基づく第1の要素と、該閾値より処理負荷の小さいフレーム群のフレーム処理負荷に基づく第2の要素と、動画像のストリームデータを復号化する処理および動画像の再生処理のいずれもが連続的に行なわれるための所定条件とに基づいて、動画像再生処理のためのフレームバッファ量と、処理能力とを決定することを特徴としている。
【0032】
請求項15記載の発明は、
請求項14記載の動画像再生装置であって、
前記閾値は、処理対象である全フレームそれぞれの平均処理負荷あるいは前記閾値より処理負荷の大きいフレーム群の負荷平均と前記閾値より処理負荷の小さいフレーム群の負荷平均との中間値の少なくともいずれかに基づいて決定されることを特徴としている。
【0033】
請求項16記載の発明は、
請求項14または15記載の動画像再生装置であって、
前記第1の要素は、該閾値より処理負荷の大きいフレームの負荷平均であり、前記第2の要素は、該閾値より処理負荷の小さいフレームの負荷平均であることを特徴としている。
【0034】
請求項17記載の発明は、
請求項14〜16のいずれかに記載の動画像再生装置であって、
動画像のストリームデータを復号化する処理および動画像の再生処理のいずれもが連続的に行なわれるための前記所定条件を、以下の式に基づいて判定することを特徴としている。
【0035】
【数25】
【0036】
請求項18記載の発明は、
請求項14〜17のいずれかに記載の動画像再生装置であって、
前記閾値より処理負荷が大きいフレーム間における処理について、前記所定条件を、以下の式に基づいて判定することを特徴としている。
【0037】
【数26】
【0038】
請求項19記載の発明は、
請求項14〜18のいずれかに記載の動画像再生装置であって、
前記第1の要素あるいは第2の要素の少なくともいずれかを、処理対象に含まれるフレームの処理負荷の分布状態に基づいて補正することを特徴としている。
請求項20記載の発明は、
請求項17または18記載の動画像再生装置であって、
前記閾値より処理負荷が大きいフレームの平均処理時間を、以下の式によって補正することを特徴としている。
【0039】
【数27】
【0040】
請求項21記載の発明は、
請求項17または18記載の動画像再生装置であって、
前記閾値より処理負荷が小さいフレームの平均処理時間を、以下の式によって補正することを特徴としている。
【0041】
【数28】
【0042】
請求項22記載の発明は、
請求項14〜21のいずれかに記載の動画像再生装置であって、
前記第1の要素あるいは第2の要素の少なくともいずれかを、処理対象である動画像の再生におけるフレームレートの変動に基づいて補正することを特徴としている。
【0043】
請求項23記載の発明は、
請求項17、請求項18、請求項20または請求項21のいずれかに記載の動画像再生装置であって、
前記閾値より処理負荷が大きいフレームの平均処理時間を、以下の式によって補正することを特徴としている。
【0044】
【数29】
【0045】
請求項24記載の発明は、
請求項17、請求項18、請求項20または請求項21のいずれかに記載の動画像再生装置であって、
前記閾値より処理負荷が大きいフレームの平均処理時間を、以下の式によって補正することを特徴としている。
【0046】
【数30】
【0047】
請求項25記載の発明は、
請求項14〜24のいずれかに記載の動画像再生装置であって、
処理対象である前記ストリームデータの再生処理実行前に把握可能な属性に基づいて、予め設定された所定値を選択し、選択した値に基づいて、前記第1あるいは第2の要素、前記所定条件の少なくともいずれかを決定することを特徴としている。
【0048】
請求項26記載の発明は、
請求項14〜25のいずれかに記載の動画像再生装置であって、
処理対象である前記ストリームデータの再生処理を実行することによって取得される属性に基づいて、前記第1あるいは第2の要素、前記所定条件の少なくともいずれかを決定することを特徴としている。
【0049】
請求項27記載の発明は、
複数のフレームを含む符号化された動画像のストリームデータを復号化して再生するための動画像再生処理プログラムであって、処理対象である動画像のストリームデータに含まれる各フレームの処理負荷を所定の閾値に基づいて分類し、該閾値より処理負荷の大きいフレーム群のフレーム処理負荷に基づく第1の要素と、該閾値より処理負荷の小さいフレーム群のフレーム処理負荷に基づく第2の要素と、動画像のストリームデータを復号化する処理および動画像の再生処理のいずれもが連続的に行なわれるための所定条件とに基づいて、動画像再生処理のためのフレームバッファ量と、処理能力とを決定する機能をコンピュータに実現させることを特徴としている。
【0050】
請求項28記載の発明は、
請求項27記載の動画像再生処理プログラムであって、
前記閾値は、処理対象である全フレームそれぞれの平均処理負荷あるいは前記閾値より処理負荷の大きいフレーム群の負荷平均と前記閾値より処理負荷の小さいフレーム群の負荷平均との中間値の少なくともいずれかに基づいて決定されることを特徴としている。
【0051】
請求項29記載の発明は、
請求項27または28記載の動画像再生処理プログラムであって、
前記第1の要素は、該閾値より処理負荷の大きいフレームの負荷平均であり、前記第2の要素は、該閾値より処理負荷の小さいフレームの負荷平均であることを特徴としている。
【0052】
請求項30記載の発明は、
請求項27〜29のいずれかに記載の動画像再生処理プログラムであって、
動画像のストリームデータを復号化する処理および動画像の再生処理のいずれもが連続的に行なわれるための前記所定条件を、以下の式に基づいて判定する機能をコンピュータに実現させることを特徴としている。
【0053】
【数31】
【0054】
請求項31記載の発明は、
請求項27〜30のいずれかに記載の動画像再生処理プログラムであって、
前記閾値より処理負荷が大きいフレーム間における処理について、前記所定条件を、以下の式に基づいて判定する機能をコンピュータに実現させることを特徴としている。
【0055】
【数32】
【0056】
請求項32記載の発明は、
請求項27〜31のいずれかに記載の動画像再生処理プログラムであって、
前記第1の要素あるいは第2の要素の少なくともいずれかを、処理対象に含まれるフレームの処理負荷の分布状態に基づいて補正する機能をコンピュータに実現させることを特徴としている。
【0057】
請求項33記載の発明は、
請求項30または31記載の動画像再生処理プログラムであって、
前記閾値より処理負荷が大きいフレームの平均処理時間を、以下の式によって補正する機能をコンピュータに実現させることを特徴としている。
【0058】
【数33】
【0059】
請求項34記載の発明は、
請求項30または31記載の動画像再生処理プログラムであって、
前記閾値より処理負荷が小さいフレームの平均処理時間を、以下の式によって補正する機能をコンピュータに実現させることを特徴としている。
【0060】
【数34】
【0061】
請求項35記載の発明は、
請求項27〜34のいずれかに記載の動画像再生処理プログラムであって、
前記第1の要素あるいは第2の要素の少なくともいずれかを、処理対象である動画像の再生におけるフレームレートの変動に基づいて補正する機能をコンピュータに実現させることを特徴としている。
【0062】
請求項36記載の発明は、
請求項30、請求項31、請求項33または請求項34のいずれかに記載の動画像再生処理プログラムであって、
前記閾値より処理負荷が大きいフレームの平均処理時間を、以下の式によって補正する機能をコンピュータに実現させることを特徴としている。
【0063】
【数35】
【0064】
請求項37記載の発明は、
請求項30、請求項31、請求項33または請求項34のいずれかに記載の動画像再生処理プログラムであって、
前記閾値より処理負荷が大きいフレームの平均処理時間を、以下の式によって補正する機能をコンピュータに実現させることを特徴としている。
【0065】
【数36】
【0066】
請求項38記載の発明は、
請求項27〜37のいずれかに記載の動画像再生処理プログラムであって、
処理対象である前記ストリームデータの再生処理実行前に把握可能な属性に基づいて、予め設定された所定値を選択し、選択した値に基づいて、前記第1あるいは第2の要素、前記所定条件の少なくともいずれかを決定する機能をコンピュータに実現させることを特徴としている。
【0067】
請求項39記載の発明は、
請求項27〜38のいずれかに記載の動画像再生処理プログラムであって、
処理対象である前記ストリームデータの再生処理を実行することによって取得される属性に基づいて、前記第1あるいは第2の要素、前記所定条件の少なくともいずれかを決定する機能をコンピュータに実現させることを特徴としている。
【0068】
本発明によれば、所定式に基づく条件判定を行い、動画像のストリームデータを復号・再生処理する際のフレームバッファ量および処理能力を適切な範囲に調整する。
したがって、動画像の復号処理および再生処理のいずれもが連続的に行なわれることとなり、過剰なフレームバッファを割り当てたり、デコード処理能力に対してフレームバッファが不足し、動画像の再生が円滑に行なわれないという事態を避けることができる。
【0069】
即ち、記憶容量や処理能力を効率的に使用することができ、消費電力あるいは不要輻射の低減、また、実装コストの削減等の効果を得ることができるため、動画像の伸長・再生処理を効率的に行うことが可能となる。
【0070】
【発明の実施の形態】
以下、図を参照して本発明に係る動画像再生装置の実施の形態を詳細に説明する。
動画像再生装置は、圧縮された動画像のストリームデータを伸長・再生処理(以下、適宜「デコード処理」と言う。)する装置である。ここで、処理対象となる動画像のストリームデータは、一般に、ストリームデータ毎に、また、フレーム毎に処理量(処理時間)が異なるものである。
【0071】
そのため、ストリームデータのデコード処理において、動画像の再生が円滑に行われる一方、動画像のデコード処理が連続的に行われる処理能力を割り当てることが望ましい。即ち、動画像を連続して再生可能としつつ、そのストリームデータのデコード処理に割り当てる処理能力をより低く抑えることにより、低消費電力、低コスト化といった効果を生ずるものとなる。
【0072】
したがって、初めに、このような効果を得るための動画像伸長・再生方法について説明する。
図1は、動画像のストリームデータにおいて、各フレームを伸長処理するために要する処理負荷の一例を示す図である。
図1において、ストリームデータに含まれる各フレームは、それぞれ異なる処理負荷を要しているが、大別すると、例えば図1中の閾値WTを基準として、処理負荷の比較的大きい(処理時間が比較的長い)フレームと、処理負荷の比較的小さい(処理時間の比較的短い)フレームとに分けられる。
【0073】
そして、例えば、MPEG(Moving Picture Experts Group)に準拠した動画像においては、処理時間の比較的長いフレームは、いわゆるIフレームであり、処理時間の比較的短いフレームは、いわゆるPフレームあるいはBフレームである。
このように処理時間にばらつきのあるストリームデータをデコード処理する場合、デコード処理の条件によっては、フレームの再生までにそのフレームのデコード処理が終了しない場合が発生し得る。
【0074】
図2は、各フレームの再生タイミングと、デコード処理時間帯との関係を示す図である。なお、図2において、(a)は、各フレーム(f1〜f6)の再生タイミングを示し、(b)は、フレームバッファを1フレーム分用意してデコード処理した場合の各フレームのデコード処理時間帯を示し、(c)は、フレームバッファを2フレーム分用意してデコード処理した場合の各フレームのデコード処理時間帯を示している。
【0075】
図2(b)のデコード処理においては、前フレームの再生が開始され、フレームバッファが使用可能な状態となるまで、次のフレームのデコード処理は待機する必要がある。
そのため、フレームf2,f3のように、処理時間の短いフレームのデコード処理が終了した場合であっても、そのフレームの再生が開始されるまで、デコード処理は停止状態となる。
【0076】
このようにデコード処理が停止状態となる場合、その間の処理能力を他の処理に割り当てたり、クロックおよび電源の停止等の処理を行うといったことにより、不要な電力の消費を防ぐことが可能である。
しかしながら、他の処理に切り替えるためのオーバーヘッドが生ずることから、処理効率が低下したり、処理の停止状態が発生することにより、システム全体として処理が均一化されず、必要となる最大クロック周波数の増大をもたらし、それによる電力消費あるいは不要輻射(クロック信号による不要電波の発生)等の不利益が発生したりする。
【0077】
一方、デコード処理時間の長いフレームf6に注目すると、フレームf5の再生開始後にデコード処理を開始した場合には、フレームf6の再生タイミングにデコード処理が終了しておらず(図2(b)の斜線部分参照)、再生が断続的となる、あるいは、フレームf6がコマ落ちするといった事態が発生する。なお、同様の事態が、フレームf4についても発生している。
【0078】
これに対し、図2(c)に示すように、フレームバッファを2フレーム分用意してデコード処理した場合、ほとんどのフレームについて、再生タイミングにデコード処理が終了している。ただし、この場合にも、デコード処理時間の長いフレームf6については、再生タイミングにデコード処理が終了していない。
次に、図3は、デコード処理能力を10%向上させた場合を示している。なお、図2と同様に、(a)は、各フレーム(f1〜f6)の再生タイミングを示し、(b)は、フレームバッファを1フレーム分用意してデコード処理した場合の各フレームのデコード処理時間帯を示し、(c)は、フレームバッファを2フレーム分用意してデコード処理した場合の各フレームのデコード処理時間帯を示している。
【0079】
図3(b)のデコード処理おいては、フレームf4について、再生タイミングまでにデコード処理が終了していない事態が回避されているが、フレームf6については、依然として再生タイミングまでにデコード処理が終了していない。
一方、図3(c)のデコード処理においては、フレームf6を含む全てのフレームについて、再生タイミングまでにデコード処理が終了している。
【0080】
このように、フレームバッファの量やデコーダの処理能力によって、ストリームデータを処理した場合の処理結果に差異が生じ、フレームバッファの量が不足している場合およびデコーダの処理能力が過小である場合には、デコード処理が間に合わず、動画像の円滑な再生が妨げられることとなる。一方、フレームバッファの量あるいはデコーダの処理能力が過大である場合には、ほぼ使用されないフレームバッファを備えることとなったり、フレームバッファに空きがないため、デコード処理を一時的に停止せざるを得ないといった事態となる。
【0081】
即ち、フレームバッファの量と、デコーダの処理能力とが適切なバランスを有することが必要である。
上述した事項に鑑みると、各フレームの処理時間とフレームバッファの量とが満たすべき条件は、以下の通りである。
【0082】
【数37】
【0083】
ただし、(19)式において、“n”は対象フレームの番号、“m”は、連続処理を開始するフレーム番号、“Xi”は、第i番目のフレームの処理時間、“NB”は、フレームバッファ量であり、1フレームを処理する時間が“1”となるように正規化されている。なお、以下の式においても同様である。
(19)式の左辺は、各フレームのデコード処理が再生タイミングまでに終了しているための条件を示し、右辺は、デコード処理が連続的に行われる条件、即ち、処理能力に対してフレームバッファが不足しない条件を示している。
【0084】
次に、デコーダの処理能力において満たすべき条件について考察する。
図4は、図1に示すヒストグラムに設定した各種パラメータを示す図である。
図4において、“T”は、代表的なGOP(Group Of Picture)間隔(Iフレーム間隔)、“WA”は、Iフレームの負荷平均、“WB”は、P,Bフレームの負荷平均、“ΔWA”は、各Iフレームの処理負荷の負荷平均“WA”との差分、“ΔWB”は、各P,Bフレームの処理負荷の負荷平均“WB”との差分を示している。
【0085】
図4に示す各パラメータを用いると、全フレームの負荷平均WAverageは、以下の式により表される。
【0086】
【数38】
【0087】
各フレームの処理負荷それぞれが全フレームの負荷平均WAverageとなることは、理想的なストリームデータであることを意味し、この場合には、デコード処理は連続的に行われることとなる。したがって、全フレームの負荷平均WAverageを図1に示す閾値WTとすることが可能である。
一方、実際のストリームデータにおいて、Iフレームのグループ(以下、「グループG1」と言う。)に属する1フレームの平均処理時間xAは、以下の式で表される。
【0088】
【数39】
【0089】
また、実際のストリームデータにおいて、P,Bフレームのグループ(以下、「グループG2」と言う。)に属する1フレームの平均処理時間xBは、以下の式で表される。
【0090】
【数40】
【0091】
すると、(19)式、(21)式および(22)式より、以下の式が導かれる。
【0092】
【数41】
【0093】
ただし、“lA”は、連続的に処理されているストリームデータにおけるグループG1に属するフレームの数である。
さらに、1GOP(特定のIフレームから次のIフレームまでの間のストリームデータ)において考えると、以下の式が導かれる。
【0094】
【数42】
【0095】
以上のように、フレームバッファの量と、デコーダの処理能力との関係は、(23)式あるいは(24)式から求めることができる。
ここで、デコード処理の開始前においては、予め統計的に求められた各種パラメータ(後述する「負荷係数初期化テーブル」の各値)を(24)式に代入して、フレームバッファの量を決定することができる。
【0096】
また、デコード処理の開始後においては、予め統計的に求められた各種パラメータ(負荷係数初期化テーブルの各値)および実際のデコード処理において測定された値が格納された処理時間テーブル(後述)の各値を(23)式に代入しつつ、動的にフレームバッファの量を決定することができる。
なお、負荷係数初期化テーブルに想定されていないストリームデータが入力された場合には、近似値あるいは近傍の既定値を用いることとする。
【0097】
そして、(23)式あるいは(24)式の左辺に基づいて、処理能力の過不足を判定し、不足している場合には能力を上昇させるといった処理を行なう。
また、(23)式あるいは(24)式の右辺に基づいて、フレームバッファ量の過不足を判定し、不足している場合には割り当てるフレームバッファ量を増加するといった処理を行なう。
【0098】
ここで、処理能力あるいはフレームバッファ量が許容される最大値を超えて必要となっている場合、警告を発する処理や、必要に応じてフレームを間引く処理等を行なうことが可能である。
続いて、上述のIフレームの負荷平均WAおよびP,Bフレームの負荷平均WBのばらつきを加味した場合の判定条件について説明する。
【0099】
上述した“ΔWA”および“ΔWB”の分散の平方根をそれぞれ“ΔuA” “ΔuB”とし、さらに、その寄与度をそれぞれ“λA”、“λB”とすると、(21)式および(22)式より、以下の式が導かれる。
【0100】
【数43】
【0101】
【数44】
【0102】
(25)式および(26)式において、寄与度“λA”、“λB”を上昇させると、動画像のデコード処理において、コマ落ち等が発生する確率を低下させることができる。
ここで、上述の判定条件は、固定フレームレートに適する条件を想定しているが、可変フレームレートの場合、(21)式および(22)式より、以下のような判定条件が導かれる。
【0103】
【数45】
【0104】
【数46】
【0105】
ただし、(27)式および(28)式において、“ΔuT”は、平均フレームレートに対する実際のフレームレートの分散の平方根、“λT”は、その寄与度である。
(27)式および(28)式の判定条件を用い、フレームバッファの量および処理能力を動的に変化させることにより、可変フレームレートの場合にも、適切なデコード処理を行なうことが可能となる。
【0106】
次に、上述の動画像伸長・再生方法を利用した動画像再生装置について説明する。
図5は、本発明を適用した動画像再生装置1の機能構成を示すブロック図である。図5において、動画像再生装置1は、メインシステム10と、サブシステム20と、音声出力部30とを含んで構成され、これらの各機能部分は、バス40を介してそれぞれ接続されている。
【0107】
メインシステム10は、メインプロセッサ11と、ホストドライバ12とを含んで構成される。
メインプロセッサ11は、動画像再生装置1全体を制御し、動画像のデコード処理以外の各種処理を実行する。
具体的には、動画像再生装置1が携帯電話である場合、ユーザからの入力を受け付ける処理や、通信制御処理等を行う。
【0108】
また、メインプロセッサ11は、ホストドライバ12を介して、サブシステム20に対し、動画像のデコード処理を指示する。このとき、メインプロセッサ11は、フレーム単位でデコード処理を指示したり、ストリーム単位でデコード処理を指示したりすることが可能である。なお、フレームとは、ビデオ信号においては、1コマに相当し、オーディオ信号においては、1グラニュラ単位に相当する。
【0109】
ホストドライバ12は、メインプロセッサ11からの指示に応じて、サブシステム20のホストインターフェース22あるいは共有メモリ27にコマンドやデコード処理対象となるストリームデータを書き込んだり、共有メモリ27に記憶されたデコード処理結果を読み出したりする。
なお、サブシステム20のホストインターフェース22および共有メモリ27は、メインシステム10およびサブシステム20の双方から書き込みおよび読み出しが可能な記憶領域を有する。
【0110】
次に、サブシステム20は、デコーダ21と、ホストインターフェース22と、画像入力部23と、描画部24と、タイマ25と、サブプロセッサ26と、共有メモリ27と、動画処理制御部28とを含んで構成され、これらの各機能部分は、バス29を介してそれぞれ接続されている。
デコーダ21は、動画処理制御部28の制御に従いつつ、ホストインターフェース22の共有メモリ22b等に記憶された動画像について、伸長処理を含む復号化処理に関する演算を行い、処理結果を共有メモリ27のフレームバッファ27a等に記憶する。
【0111】
ホストインターフェース22は、メインシステム10から入力されるコマンドおよびそれに付随する少量のデータを記憶するレジスタ22aと、コマンドに付随して送信される多量のデータ(ストリームデータ等)を記憶する共有メモリ22bとを含んで構成される。
なお、ホストインターフェース22のレジスタ22aにコマンドが入力されると、サブプロセッサ26は、それを割り込みとして処理し、共有メモリ22bの内容を読み込む。
【0112】
画像入力部23は、外部装置から画像データの入力を受け付けるインターフェースである。
描画部24は、共有メモリ27のフレームバッファ27a等に記憶された動画像のデータ(デコード後のデータ)を読み出し、映像として再生する。
タイマ25は、システムクロックに基づいて時間の管理を行い、サブプロセッサ26に時間信号を供給する。
【0113】
サブプロセッサ26は、サブシステム20全体を制御するものであり、メインシステム10からホストインターフェースにコマンドが入力されたことに対応して、動画像のデコード処理の実行を指示する。このとき、サブプロセッサ26は、サブシステム20が、直ちにデコード処理を実行可能である場合、動画像のデコード処理を開始し、直ちにはデコード処理を実行可能でない場合、命令キュー28bにコマンドおよびそれに付随するデータを記憶する。
【0114】
そして、サブプロセッサ26は、デコード処理を実行可能となった後、命令キュー28bに記憶されたコマンドを実行する。
なお、サブプロセッサ26は、その他、動画像のデコード処理あるいは再生処理に関する各種管理のための処理を実行する。
共有メモリ27は、デコード処理結果であるフレームデータを1フレーム分記憶するフレームバッファ27aを含んで構成される。なお、共有メモリ27は、所定容量のメモリによって構成されており、必要に応じて、フレームバッファを所定フレーム分形成することが可能である。
【0115】
また、共有メモリ27には、メインシステム10から入力されるストリームデータを記憶する入力リングバッファ28iが含まれ、入力リングバッファ28iは、同時に動画処理制御部28の構成要素にもなっている。
動画処理制御部28は、命令キュー管理部28aと、命令キュー28bと、フレームバッファ管理部28cと、処理時間テーブル部28dと、負荷係数初期値テーブル部28eと、負荷係数解析部28fと、処理能力管理部28gと、リングバッファ管理部28hとを含んで構成される。
【0116】
命令キュー管理部28aは、サブプロセッサ26の指示に基づいて、命令キュー28bへのデータの記憶および命令キュー28bからのデータの読み出しを管理する。
命令キュー28bは、メインシステム10からサブシステム20に入力されたコマンドおよびそれに付随するデータのうち、直ちに実行されないものを一時的に記憶する。
【0117】
フレームバッファ管理部28cは、負荷係数解析部28fの解析結果に基づいて、共有メモリ27内に形成するフレームバッファの量(フレームの記憶可能枚数)を増減させる。
処理時間テーブル部28dは、動画像のストリームデータに含まれる各フレームについて、デコード処理に要した時間の実測値をテーブル形式のデータ(処理時間テーブル)として記憶する。
【0118】
また、処理時間テーブル部28dは、記憶しているフレームの処理時間を負荷係数解析部28fに出力する。
負荷係数初期値テーブル部28eは、動画像のストリームデータとして入力され得る種々のデータについて、その属性の代表的な要素(符号化または伸長方式、画像サイズ、ビットレートあるいはフレームレート等)が予め記憶された負荷係数初期値テーブルを記憶する。
【0119】
図6は、負荷係数初期値テーブルに格納される要素を示す図である。図6において、負荷係数初期値テーブルには、代表的な複数のストリームデータについて、符号化または伸長方式、画像サイズ(WX)、ビットレート(BPS)、フレームレート(FPS)、代表的なGOP間隔(T)および(23)〜(28)式に基づく判定に必要な各種パラメータが格納されている。
【0120】
そして、負荷係数初期値テーブル部28eは、負荷係数初期値テーブルに格納されている要素を負荷係数解析部28fに出力する。
負荷係数解析部28fは、処理時間テーブル部28dから入力されるフレーム処理時間あるいは負荷係数初期値テーブル部28eから入力される各要素に基づいて、処理対象であるストリームデータに関する(23)〜(28)式のいずれかに基づく判定処理を行い、判定結果をフレームバッファ管理部28cおよび処理能力管理部28gに出力する。
【0121】
処理能力管理部28gは、負荷係数解析部28fの判定結果に基づいて、動画像のデコード処理に割り当てる処理能力を増減させる。
リングバッファ管理部28hは、メインシステム10によって入力されたストリームデータの入力リングバッファ28iへの記憶および読み出しを管理する。
入力リングバッファ28iは、メインシステム10から入力されるストリームデータを記憶する。
【0122】
なお、上述の機能部のうち、サブシステム20に備えることとしたリングバッファ管理部28hおよび負荷係数初期値テーブル部28eは、メインシステム10のホストドライバ12に備えることとしてもよい。
次に、音声出力部30は、サブシステム20においてデコード処理された音声等を発声する。
【0123】
続いて、動画像再生装置1の動作を説明する。
上述の構成の下、まず、メインシステム10が、ホストドライバ12を介して、サブシステム20に動画像のデコード処理を出力する。
サブシステム20は、ホストインターフェース22に書き込まれたコマンドを読み込み、コマンドが直ちに実行可能である場合には実行し、直ちには実行できない場合、一旦、命令キュー28bに書き込み、実行可能な状態となった後にコマンドを実行する。
【0124】
このとき、メインシステム10は、初めに、初期化コマンドを送信し、引き続き、伸長処理コマンドを出力する。この初期化コマンドには、処理対象であるストリームデータについて、負荷係数初期値テーブルのいずれの値を用いるべきかについての指示が含まれている。
また、メインシステム10は、ストリームデータを1フレーム分ずつデコード処理させるように、伸長処理コマンドを順次出力する。
【0125】
サブシステム20は、初期化コマンドに含まれる負荷係数初期値テーブルの値を参照して、フレームバッファの量および処理能力を設定し、伸長処理を開始する。
そして、伸長処理におけるフレーム処理時間の実測値を処理時間テーブルに順次格納していく。
【0126】
さらに、サブシステム20は、伸長処理の実行後においては、処理時間テーブルに格納されているフレームの処理時間も参照し、(25)式あるいは(26)式等において用いる分散等を適宜算出しながら、(23)式および(24)式(または、(25)式および(26)式、または、(27)式および(28)式)に基づく条件判定を行い、フレームバッファの量と処理能力とを動的に変化させながら、デコード処理を実行する。
【0127】
このとき、サブシステム20は、フレームバッファの量あるいは処理能力が、許容される最大値を超えて必要となった場合、警告を発したり、必要に応じて、フレームを間引く処理を行なったりする。
以上のように、本実施の形態に係る動画像再生装置1は、(23)〜(28)式に基づく条件判定を行い、動画像のストリームデータをデコード処理する際のフレームバッファ量および処理能力を適切な範囲に調整する。
【0128】
したがって、デコード処理および動画像の再生のいずれもが連続的に行なわれることとなり、過剰なフレームバッファを割り当てたり、デコード処理能力に対してフレームバッファが不足し、動画像の再生が円滑に行なわれない事態を避けることができる。
即ち、記憶容量や処理能力を効率的に使用することができ、消費電力あるいは不要輻射の低減、また、実装コストの削減等の効果を得ることができるため、動画像の伸長・再生処理を効率的に行うことが可能となる。
【0129】
なお、本実施の形態において、処理負荷の比較的大きいものと処理負荷の比較的小さいものとにフレームを分ける閾値として、全フレームの負荷平均WAverageが採用可能であることについて述べたが、その他にも、処理負荷の比較的大きいフレームの負荷平均(例えば、“WA”)と処理負荷の比較的小さいフレームの負荷平均(例えば、“WB”)との中間値とすることも可能である。
【0130】
【発明の効果】
本発明によれば、所定式に基づく条件判定を行い、動画像のストリームデータを復号・再生処理する際のフレームバッファ量および処理能力を適切な範囲に調整する。
したがって、動画像の復号処理および再生処理のいずれもが連続的に行なわれることとなり、過剰なフレームバッファを割り当てたり、デコード処理能力に対してフレームバッファが不足し、動画像の再生が円滑に行なわれないという事態を避けることができる。
【0131】
即ち、記憶容量や処理能力を効率的に使用することができ、消費電力あるいは不要輻射の低減、また、実装コストの削減等の効果を得ることができるため、動画像の伸長・再生処理を効率的に行うことが可能となる。
【図面の簡単な説明】
【図1】動画像のストリームデータにおいて、各フレームを伸長処理するために要する処理負荷の一例を示す図である。
【図2】各フレームの再生タイミングと、デコード処理時間帯との関係を示す図である。
【図3】図2の場合に比べ、デコード処理能力を10%向上させた場合を示している。
【図4】図1に示すヒストグラムに設定した各種パラメータを示す図である。
【図5】本発明を適用した動画像再生装置1の機能構成を示すブロック図である。
【図6】負荷係数初期値テーブルに格納される要素を示す図である。
【符号の説明】
1 動画像再生装置,10 メインシステム,11 メインプロセッサ,12 ホストドライバ,20 サブシステム,21 デコーダ,22 ホストインターフェース,22a レジスタ,22b 共有メモリ,23 画像入力部,24 描画部,25 タイマ,26 サブプロセッサ,27 共有メモリ,27a フレームバッファ,28 動画処理制御部,28a 命令キュー管理部,28b 命令キュー,28c フレームバッファ管理部,28d 処理時間テーブル部,28e 負荷係数初期値テーブル部,28f 負荷係数解析部,28g 処理能力管理部,28h リングバッファ管理部,28i 入力リングバッファ,29バス,30 音声出力部,40 バス
【発明の属する技術分野】
本発明は、圧縮された動画像データの伸長および再生処理を行なう動画像再生処理方法、動画像再生装置および動画像再生処理プログラムに関する。
【0002】
【従来の技術】
従来、携帯電話あるいは携帯情報端末等の情報処理装置において、動画像の再生が行なわれている。
このような情報処理装置において再生される動画像は、一般に、圧縮された状態で格納され、伸長された上で再生されている。
【0003】
ところが、動画像の伸長および再生の処理は、一定のメモリや処理能力を要するものであり、そのため、消費電力が増大する場合がある。
一方、携帯電話や携帯情報端末といった情報処理装置の中には、十分なメモリや処理能力を備えていないものも多く、動画像の伸長および再生の処理を如何に行うかが問題となる。
【0004】
このような事情に鑑み、動画像の伸長あるいは再生の処理を効率的に行うための技術が種々提案されている。
例えば、特開2002−91782号公報には、非同期に実行すべきタスクが多数存在する場合に、それらのタスクを効率的に実行するプロセッサに関する技術が開示されている。
【0005】
本号公報に記載された技術においては、緊急度の高くなったタスクを他のタスクに優先して実行することで、処理の効率化を図っている。
また、特許第3159591号公報には、動画像の圧縮伸長処理の際、事前にCPU(Central Processing Unit)から必要なコマンド列を与えられ、フレーム毎に、その垂直同期信号に従って、前記コマンドが実行されるように制御する技術が開示されている。
【0006】
本号公報に記載された技術によれば、CPUの負担を軽減し、効率的に動画像の圧縮伸長処理を行なうことが可能である。
また、特開平7−14207号公報には、入力バッファメモリを持ち、外部からのコマンドの発行に応じて実行を指示し、入力バッファメモリに格納されたデータを復号対象とする技術が開示されている。
【0007】
また、特許第3013826号公報には、メインシステムおよびサブシステムを備え、サブシステムで生成した表示タイミング情報に基づいて、表示装置における映像表示を制御する技術が開示されている。
【0008】
【特許文献1】
特開2002−91782号公報
【特許文献2】
特許第3159591号公報
【特許文献3】
特開平7−14207号公報
【特許文献4】
特許第3013826号公報
【0009】
【発明が解決しようとする課題】
しかしながら、特開2002−91782号公報に記載された技術は、タスクの優先度を変化させ、動作クロック数を際下限値に設定する制御機構を有するものの、バッファ容量と連動して制御するといったことは行なわれていない。また、タスク分割を複数行なうことにより、タスク制御部において複雑な処理を要し、開発コストが上昇する原因となる。
【0010】
また、上述した他の公報に記載された技術においては、伸長処理の負荷がフレーム毎に変動する場合に、処理時間にも変化があるものであるが、この処理時間の変動を吸収する目的で入力バッファおよび出力フレームバッファを使用することとしている。
しかし、これらの公報に記載された技術によっては、そのフレームバッファ量を低減することや、また、処理能力を変動させて、消費電力を低減するといったことを実現することはできない。
【0011】
本発明の課題は、動画像の伸長・再生処理を効率的に行うことである。
【0012】
【課題を解決するための手段】
以上の課題を解決するため、請求項1記載の発明は、
複数のフレームを含む符号化された動画像のストリームデータを復号化して再生するための動画像再生処理方法であって、処理対象である動画像のストリームデータに含まれる各フレームの処理負荷を所定の閾値(例えば、(20)式に示す全フレームの負荷平均WAverage)に基づいて分類し、該閾値より処理負荷の大きいフレーム群(例えば、発明の実施の形態中のグループG1に属するフレーム)のフレーム処理負荷に基づく第1の要素と、該閾値より処理負荷の小さいフレーム群のフレーム処理負荷に基づく第2の要素(例えば、図4に示すP,Bフレームの負荷平均“WB”)と、動画像のストリームデータを復号化する処理および動画像の再生処理のいずれもが連続的に行なわれるための所定条件(例えば、(23)式あるいは(24)式に基づく条件)とに基づいて、動画像再生処理のためのフレームバッファ量と、処理能力とを決定することを特徴としている。
【0013】
請求項2記載の発明は、
請求項1記載の動画像再生処理方法であって、
前記閾値は、処理対象である全フレームそれぞれの平均処理負荷あるいは前記閾値より処理負荷の大きいフレーム群の負荷平均と前記閾値より処理負荷の小さいフレーム群の負荷平均との中間値の少なくともいずれかに基づいて決定されることを特徴としている。
【0014】
請求項3記載の発明は、
請求項1または2記載の動画像再生処理方法であって、
前記第1の要素は、該閾値より処理負荷の大きいフレーム(例えば、Iフレーム)の負荷平均であり、前記第2の要素は、該閾値より処理負荷の小さいフレーム(例えば、P,Bフレーム)の負荷平均であることを特徴としている。
【0015】
請求項4記載の発明は、
請求項1〜3のいずれかに記載の動画像再生処理方法であって、
動画像のストリームデータを復号化する処理および動画像の再生処理のいずれもが連続的に行なわれるための前記所定条件を、以下の式に基づいて判定することを特徴としている。
【0016】
【数19】
【0017】
請求項5記載の発明は、
請求項1〜4のいずれかに記載の動画像再生処理方法であって、
前記閾値より処理負荷が大きいフレーム間における処理(例えば、1GOPの処理)について、前記所定条件を、以下の式に基づいて判定することを特徴としている。
【0018】
【数20】
【0019】
請求項6記載の発明は、
請求項1〜5のいずれかに記載の動画像再生処理方法であって、
前記第1の要素あるいは第2の要素の少なくともいずれかを、処理対象に含まれるフレームの処理負荷の分布状態(例えば、分散の平方根等)に基づいて補正することを特徴としている。
【0020】
請求項7記載の発明は、
請求項4または5記載の動画像再生処理方法であって、
前記閾値より処理負荷が大きいフレームの平均処理時間を、以下の式によって補正することを特徴としている。
【0021】
【数21】
【0022】
請求項8記載の発明は、
請求項4または5記載の動画像再生処理方法であって、
前記閾値より処理負荷が小さいフレームの平均処理時間を、以下の式によって補正することを特徴としている。
【0023】
【数22】
【0024】
請求項9記載の発明は、
請求項1〜8のいずれかに記載の動画像再生処理方法であって、
前記第1の要素あるいは第2の要素の少なくともいずれかを、処理対象である動画像の再生におけるフレームレートの変動に基づいて補正することを特徴としている。
【0025】
請求項10記載の発明は、
請求項4、請求項5、請求項7または請求項8のいずれかに記載の動画像再生処理方法であって、
前記閾値より処理負荷が大きいフレームの平均処理時間を、以下の式によって補正することを特徴としている。
【0026】
【数23】
【0027】
請求項11記載の発明は、
請求項4、請求項5、請求項7または請求項8のいずれかに記載の動画像再生処理方法であって、
前記閾値より処理負荷が大きいフレームの平均処理時間を、以下の式によって補正することを特徴としている。
【0028】
【数24】
【0029】
請求項12記載の発明は、
請求項1〜11のいずれかに記載の動画像再生処理方法であって、
処理対象である前記ストリームデータの再生処理実行前に把握可能な属性(例えば、図6に示す各要素に相当する属性)に基づいて、予め設定された所定値(例えば、図6に示す特定のストリームデータについての各種パラメータ)を選択し、選択した値に基づいて、前記第1あるいは第2の要素、前記所定条件の少なくともいずれかを決定することを特徴としている。
【0030】
請求項13記載の発明は、
請求項1〜12のいずれかに記載の動画像再生処理方法であって、
処理対象である前記ストリームデータの再生処理を実行することによって取得される属性に基づいて、前記第1あるいは第2の要素、前記所定条件の少なくともいずれかを決定することを特徴としている。
【0031】
請求項14記載の発明は、
複数のフレームを含む符号化された動画像のストリームデータを復号化して再生するための動画像再生装置であって、処理対象である動画像のストリームデータに含まれる各フレームの処理負荷を所定の閾値に基づいて分類し、該閾値より処理負荷の大きいフレーム群のフレーム処理負荷に基づく第1の要素と、該閾値より処理負荷の小さいフレーム群のフレーム処理負荷に基づく第2の要素と、動画像のストリームデータを復号化する処理および動画像の再生処理のいずれもが連続的に行なわれるための所定条件とに基づいて、動画像再生処理のためのフレームバッファ量と、処理能力とを決定することを特徴としている。
【0032】
請求項15記載の発明は、
請求項14記載の動画像再生装置であって、
前記閾値は、処理対象である全フレームそれぞれの平均処理負荷あるいは前記閾値より処理負荷の大きいフレーム群の負荷平均と前記閾値より処理負荷の小さいフレーム群の負荷平均との中間値の少なくともいずれかに基づいて決定されることを特徴としている。
【0033】
請求項16記載の発明は、
請求項14または15記載の動画像再生装置であって、
前記第1の要素は、該閾値より処理負荷の大きいフレームの負荷平均であり、前記第2の要素は、該閾値より処理負荷の小さいフレームの負荷平均であることを特徴としている。
【0034】
請求項17記載の発明は、
請求項14〜16のいずれかに記載の動画像再生装置であって、
動画像のストリームデータを復号化する処理および動画像の再生処理のいずれもが連続的に行なわれるための前記所定条件を、以下の式に基づいて判定することを特徴としている。
【0035】
【数25】
【0036】
請求項18記載の発明は、
請求項14〜17のいずれかに記載の動画像再生装置であって、
前記閾値より処理負荷が大きいフレーム間における処理について、前記所定条件を、以下の式に基づいて判定することを特徴としている。
【0037】
【数26】
【0038】
請求項19記載の発明は、
請求項14〜18のいずれかに記載の動画像再生装置であって、
前記第1の要素あるいは第2の要素の少なくともいずれかを、処理対象に含まれるフレームの処理負荷の分布状態に基づいて補正することを特徴としている。
請求項20記載の発明は、
請求項17または18記載の動画像再生装置であって、
前記閾値より処理負荷が大きいフレームの平均処理時間を、以下の式によって補正することを特徴としている。
【0039】
【数27】
【0040】
請求項21記載の発明は、
請求項17または18記載の動画像再生装置であって、
前記閾値より処理負荷が小さいフレームの平均処理時間を、以下の式によって補正することを特徴としている。
【0041】
【数28】
【0042】
請求項22記載の発明は、
請求項14〜21のいずれかに記載の動画像再生装置であって、
前記第1の要素あるいは第2の要素の少なくともいずれかを、処理対象である動画像の再生におけるフレームレートの変動に基づいて補正することを特徴としている。
【0043】
請求項23記載の発明は、
請求項17、請求項18、請求項20または請求項21のいずれかに記載の動画像再生装置であって、
前記閾値より処理負荷が大きいフレームの平均処理時間を、以下の式によって補正することを特徴としている。
【0044】
【数29】
【0045】
請求項24記載の発明は、
請求項17、請求項18、請求項20または請求項21のいずれかに記載の動画像再生装置であって、
前記閾値より処理負荷が大きいフレームの平均処理時間を、以下の式によって補正することを特徴としている。
【0046】
【数30】
【0047】
請求項25記載の発明は、
請求項14〜24のいずれかに記載の動画像再生装置であって、
処理対象である前記ストリームデータの再生処理実行前に把握可能な属性に基づいて、予め設定された所定値を選択し、選択した値に基づいて、前記第1あるいは第2の要素、前記所定条件の少なくともいずれかを決定することを特徴としている。
【0048】
請求項26記載の発明は、
請求項14〜25のいずれかに記載の動画像再生装置であって、
処理対象である前記ストリームデータの再生処理を実行することによって取得される属性に基づいて、前記第1あるいは第2の要素、前記所定条件の少なくともいずれかを決定することを特徴としている。
【0049】
請求項27記載の発明は、
複数のフレームを含む符号化された動画像のストリームデータを復号化して再生するための動画像再生処理プログラムであって、処理対象である動画像のストリームデータに含まれる各フレームの処理負荷を所定の閾値に基づいて分類し、該閾値より処理負荷の大きいフレーム群のフレーム処理負荷に基づく第1の要素と、該閾値より処理負荷の小さいフレーム群のフレーム処理負荷に基づく第2の要素と、動画像のストリームデータを復号化する処理および動画像の再生処理のいずれもが連続的に行なわれるための所定条件とに基づいて、動画像再生処理のためのフレームバッファ量と、処理能力とを決定する機能をコンピュータに実現させることを特徴としている。
【0050】
請求項28記載の発明は、
請求項27記載の動画像再生処理プログラムであって、
前記閾値は、処理対象である全フレームそれぞれの平均処理負荷あるいは前記閾値より処理負荷の大きいフレーム群の負荷平均と前記閾値より処理負荷の小さいフレーム群の負荷平均との中間値の少なくともいずれかに基づいて決定されることを特徴としている。
【0051】
請求項29記載の発明は、
請求項27または28記載の動画像再生処理プログラムであって、
前記第1の要素は、該閾値より処理負荷の大きいフレームの負荷平均であり、前記第2の要素は、該閾値より処理負荷の小さいフレームの負荷平均であることを特徴としている。
【0052】
請求項30記載の発明は、
請求項27〜29のいずれかに記載の動画像再生処理プログラムであって、
動画像のストリームデータを復号化する処理および動画像の再生処理のいずれもが連続的に行なわれるための前記所定条件を、以下の式に基づいて判定する機能をコンピュータに実現させることを特徴としている。
【0053】
【数31】
【0054】
請求項31記載の発明は、
請求項27〜30のいずれかに記載の動画像再生処理プログラムであって、
前記閾値より処理負荷が大きいフレーム間における処理について、前記所定条件を、以下の式に基づいて判定する機能をコンピュータに実現させることを特徴としている。
【0055】
【数32】
【0056】
請求項32記載の発明は、
請求項27〜31のいずれかに記載の動画像再生処理プログラムであって、
前記第1の要素あるいは第2の要素の少なくともいずれかを、処理対象に含まれるフレームの処理負荷の分布状態に基づいて補正する機能をコンピュータに実現させることを特徴としている。
【0057】
請求項33記載の発明は、
請求項30または31記載の動画像再生処理プログラムであって、
前記閾値より処理負荷が大きいフレームの平均処理時間を、以下の式によって補正する機能をコンピュータに実現させることを特徴としている。
【0058】
【数33】
【0059】
請求項34記載の発明は、
請求項30または31記載の動画像再生処理プログラムであって、
前記閾値より処理負荷が小さいフレームの平均処理時間を、以下の式によって補正する機能をコンピュータに実現させることを特徴としている。
【0060】
【数34】
【0061】
請求項35記載の発明は、
請求項27〜34のいずれかに記載の動画像再生処理プログラムであって、
前記第1の要素あるいは第2の要素の少なくともいずれかを、処理対象である動画像の再生におけるフレームレートの変動に基づいて補正する機能をコンピュータに実現させることを特徴としている。
【0062】
請求項36記載の発明は、
請求項30、請求項31、請求項33または請求項34のいずれかに記載の動画像再生処理プログラムであって、
前記閾値より処理負荷が大きいフレームの平均処理時間を、以下の式によって補正する機能をコンピュータに実現させることを特徴としている。
【0063】
【数35】
【0064】
請求項37記載の発明は、
請求項30、請求項31、請求項33または請求項34のいずれかに記載の動画像再生処理プログラムであって、
前記閾値より処理負荷が大きいフレームの平均処理時間を、以下の式によって補正する機能をコンピュータに実現させることを特徴としている。
【0065】
【数36】
【0066】
請求項38記載の発明は、
請求項27〜37のいずれかに記載の動画像再生処理プログラムであって、
処理対象である前記ストリームデータの再生処理実行前に把握可能な属性に基づいて、予め設定された所定値を選択し、選択した値に基づいて、前記第1あるいは第2の要素、前記所定条件の少なくともいずれかを決定する機能をコンピュータに実現させることを特徴としている。
【0067】
請求項39記載の発明は、
請求項27〜38のいずれかに記載の動画像再生処理プログラムであって、
処理対象である前記ストリームデータの再生処理を実行することによって取得される属性に基づいて、前記第1あるいは第2の要素、前記所定条件の少なくともいずれかを決定する機能をコンピュータに実現させることを特徴としている。
【0068】
本発明によれば、所定式に基づく条件判定を行い、動画像のストリームデータを復号・再生処理する際のフレームバッファ量および処理能力を適切な範囲に調整する。
したがって、動画像の復号処理および再生処理のいずれもが連続的に行なわれることとなり、過剰なフレームバッファを割り当てたり、デコード処理能力に対してフレームバッファが不足し、動画像の再生が円滑に行なわれないという事態を避けることができる。
【0069】
即ち、記憶容量や処理能力を効率的に使用することができ、消費電力あるいは不要輻射の低減、また、実装コストの削減等の効果を得ることができるため、動画像の伸長・再生処理を効率的に行うことが可能となる。
【0070】
【発明の実施の形態】
以下、図を参照して本発明に係る動画像再生装置の実施の形態を詳細に説明する。
動画像再生装置は、圧縮された動画像のストリームデータを伸長・再生処理(以下、適宜「デコード処理」と言う。)する装置である。ここで、処理対象となる動画像のストリームデータは、一般に、ストリームデータ毎に、また、フレーム毎に処理量(処理時間)が異なるものである。
【0071】
そのため、ストリームデータのデコード処理において、動画像の再生が円滑に行われる一方、動画像のデコード処理が連続的に行われる処理能力を割り当てることが望ましい。即ち、動画像を連続して再生可能としつつ、そのストリームデータのデコード処理に割り当てる処理能力をより低く抑えることにより、低消費電力、低コスト化といった効果を生ずるものとなる。
【0072】
したがって、初めに、このような効果を得るための動画像伸長・再生方法について説明する。
図1は、動画像のストリームデータにおいて、各フレームを伸長処理するために要する処理負荷の一例を示す図である。
図1において、ストリームデータに含まれる各フレームは、それぞれ異なる処理負荷を要しているが、大別すると、例えば図1中の閾値WTを基準として、処理負荷の比較的大きい(処理時間が比較的長い)フレームと、処理負荷の比較的小さい(処理時間の比較的短い)フレームとに分けられる。
【0073】
そして、例えば、MPEG(Moving Picture Experts Group)に準拠した動画像においては、処理時間の比較的長いフレームは、いわゆるIフレームであり、処理時間の比較的短いフレームは、いわゆるPフレームあるいはBフレームである。
このように処理時間にばらつきのあるストリームデータをデコード処理する場合、デコード処理の条件によっては、フレームの再生までにそのフレームのデコード処理が終了しない場合が発生し得る。
【0074】
図2は、各フレームの再生タイミングと、デコード処理時間帯との関係を示す図である。なお、図2において、(a)は、各フレーム(f1〜f6)の再生タイミングを示し、(b)は、フレームバッファを1フレーム分用意してデコード処理した場合の各フレームのデコード処理時間帯を示し、(c)は、フレームバッファを2フレーム分用意してデコード処理した場合の各フレームのデコード処理時間帯を示している。
【0075】
図2(b)のデコード処理においては、前フレームの再生が開始され、フレームバッファが使用可能な状態となるまで、次のフレームのデコード処理は待機する必要がある。
そのため、フレームf2,f3のように、処理時間の短いフレームのデコード処理が終了した場合であっても、そのフレームの再生が開始されるまで、デコード処理は停止状態となる。
【0076】
このようにデコード処理が停止状態となる場合、その間の処理能力を他の処理に割り当てたり、クロックおよび電源の停止等の処理を行うといったことにより、不要な電力の消費を防ぐことが可能である。
しかしながら、他の処理に切り替えるためのオーバーヘッドが生ずることから、処理効率が低下したり、処理の停止状態が発生することにより、システム全体として処理が均一化されず、必要となる最大クロック周波数の増大をもたらし、それによる電力消費あるいは不要輻射(クロック信号による不要電波の発生)等の不利益が発生したりする。
【0077】
一方、デコード処理時間の長いフレームf6に注目すると、フレームf5の再生開始後にデコード処理を開始した場合には、フレームf6の再生タイミングにデコード処理が終了しておらず(図2(b)の斜線部分参照)、再生が断続的となる、あるいは、フレームf6がコマ落ちするといった事態が発生する。なお、同様の事態が、フレームf4についても発生している。
【0078】
これに対し、図2(c)に示すように、フレームバッファを2フレーム分用意してデコード処理した場合、ほとんどのフレームについて、再生タイミングにデコード処理が終了している。ただし、この場合にも、デコード処理時間の長いフレームf6については、再生タイミングにデコード処理が終了していない。
次に、図3は、デコード処理能力を10%向上させた場合を示している。なお、図2と同様に、(a)は、各フレーム(f1〜f6)の再生タイミングを示し、(b)は、フレームバッファを1フレーム分用意してデコード処理した場合の各フレームのデコード処理時間帯を示し、(c)は、フレームバッファを2フレーム分用意してデコード処理した場合の各フレームのデコード処理時間帯を示している。
【0079】
図3(b)のデコード処理おいては、フレームf4について、再生タイミングまでにデコード処理が終了していない事態が回避されているが、フレームf6については、依然として再生タイミングまでにデコード処理が終了していない。
一方、図3(c)のデコード処理においては、フレームf6を含む全てのフレームについて、再生タイミングまでにデコード処理が終了している。
【0080】
このように、フレームバッファの量やデコーダの処理能力によって、ストリームデータを処理した場合の処理結果に差異が生じ、フレームバッファの量が不足している場合およびデコーダの処理能力が過小である場合には、デコード処理が間に合わず、動画像の円滑な再生が妨げられることとなる。一方、フレームバッファの量あるいはデコーダの処理能力が過大である場合には、ほぼ使用されないフレームバッファを備えることとなったり、フレームバッファに空きがないため、デコード処理を一時的に停止せざるを得ないといった事態となる。
【0081】
即ち、フレームバッファの量と、デコーダの処理能力とが適切なバランスを有することが必要である。
上述した事項に鑑みると、各フレームの処理時間とフレームバッファの量とが満たすべき条件は、以下の通りである。
【0082】
【数37】
【0083】
ただし、(19)式において、“n”は対象フレームの番号、“m”は、連続処理を開始するフレーム番号、“Xi”は、第i番目のフレームの処理時間、“NB”は、フレームバッファ量であり、1フレームを処理する時間が“1”となるように正規化されている。なお、以下の式においても同様である。
(19)式の左辺は、各フレームのデコード処理が再生タイミングまでに終了しているための条件を示し、右辺は、デコード処理が連続的に行われる条件、即ち、処理能力に対してフレームバッファが不足しない条件を示している。
【0084】
次に、デコーダの処理能力において満たすべき条件について考察する。
図4は、図1に示すヒストグラムに設定した各種パラメータを示す図である。
図4において、“T”は、代表的なGOP(Group Of Picture)間隔(Iフレーム間隔)、“WA”は、Iフレームの負荷平均、“WB”は、P,Bフレームの負荷平均、“ΔWA”は、各Iフレームの処理負荷の負荷平均“WA”との差分、“ΔWB”は、各P,Bフレームの処理負荷の負荷平均“WB”との差分を示している。
【0085】
図4に示す各パラメータを用いると、全フレームの負荷平均WAverageは、以下の式により表される。
【0086】
【数38】
【0087】
各フレームの処理負荷それぞれが全フレームの負荷平均WAverageとなることは、理想的なストリームデータであることを意味し、この場合には、デコード処理は連続的に行われることとなる。したがって、全フレームの負荷平均WAverageを図1に示す閾値WTとすることが可能である。
一方、実際のストリームデータにおいて、Iフレームのグループ(以下、「グループG1」と言う。)に属する1フレームの平均処理時間xAは、以下の式で表される。
【0088】
【数39】
【0089】
また、実際のストリームデータにおいて、P,Bフレームのグループ(以下、「グループG2」と言う。)に属する1フレームの平均処理時間xBは、以下の式で表される。
【0090】
【数40】
【0091】
すると、(19)式、(21)式および(22)式より、以下の式が導かれる。
【0092】
【数41】
【0093】
ただし、“lA”は、連続的に処理されているストリームデータにおけるグループG1に属するフレームの数である。
さらに、1GOP(特定のIフレームから次のIフレームまでの間のストリームデータ)において考えると、以下の式が導かれる。
【0094】
【数42】
【0095】
以上のように、フレームバッファの量と、デコーダの処理能力との関係は、(23)式あるいは(24)式から求めることができる。
ここで、デコード処理の開始前においては、予め統計的に求められた各種パラメータ(後述する「負荷係数初期化テーブル」の各値)を(24)式に代入して、フレームバッファの量を決定することができる。
【0096】
また、デコード処理の開始後においては、予め統計的に求められた各種パラメータ(負荷係数初期化テーブルの各値)および実際のデコード処理において測定された値が格納された処理時間テーブル(後述)の各値を(23)式に代入しつつ、動的にフレームバッファの量を決定することができる。
なお、負荷係数初期化テーブルに想定されていないストリームデータが入力された場合には、近似値あるいは近傍の既定値を用いることとする。
【0097】
そして、(23)式あるいは(24)式の左辺に基づいて、処理能力の過不足を判定し、不足している場合には能力を上昇させるといった処理を行なう。
また、(23)式あるいは(24)式の右辺に基づいて、フレームバッファ量の過不足を判定し、不足している場合には割り当てるフレームバッファ量を増加するといった処理を行なう。
【0098】
ここで、処理能力あるいはフレームバッファ量が許容される最大値を超えて必要となっている場合、警告を発する処理や、必要に応じてフレームを間引く処理等を行なうことが可能である。
続いて、上述のIフレームの負荷平均WAおよびP,Bフレームの負荷平均WBのばらつきを加味した場合の判定条件について説明する。
【0099】
上述した“ΔWA”および“ΔWB”の分散の平方根をそれぞれ“ΔuA” “ΔuB”とし、さらに、その寄与度をそれぞれ“λA”、“λB”とすると、(21)式および(22)式より、以下の式が導かれる。
【0100】
【数43】
【0101】
【数44】
【0102】
(25)式および(26)式において、寄与度“λA”、“λB”を上昇させると、動画像のデコード処理において、コマ落ち等が発生する確率を低下させることができる。
ここで、上述の判定条件は、固定フレームレートに適する条件を想定しているが、可変フレームレートの場合、(21)式および(22)式より、以下のような判定条件が導かれる。
【0103】
【数45】
【0104】
【数46】
【0105】
ただし、(27)式および(28)式において、“ΔuT”は、平均フレームレートに対する実際のフレームレートの分散の平方根、“λT”は、その寄与度である。
(27)式および(28)式の判定条件を用い、フレームバッファの量および処理能力を動的に変化させることにより、可変フレームレートの場合にも、適切なデコード処理を行なうことが可能となる。
【0106】
次に、上述の動画像伸長・再生方法を利用した動画像再生装置について説明する。
図5は、本発明を適用した動画像再生装置1の機能構成を示すブロック図である。図5において、動画像再生装置1は、メインシステム10と、サブシステム20と、音声出力部30とを含んで構成され、これらの各機能部分は、バス40を介してそれぞれ接続されている。
【0107】
メインシステム10は、メインプロセッサ11と、ホストドライバ12とを含んで構成される。
メインプロセッサ11は、動画像再生装置1全体を制御し、動画像のデコード処理以外の各種処理を実行する。
具体的には、動画像再生装置1が携帯電話である場合、ユーザからの入力を受け付ける処理や、通信制御処理等を行う。
【0108】
また、メインプロセッサ11は、ホストドライバ12を介して、サブシステム20に対し、動画像のデコード処理を指示する。このとき、メインプロセッサ11は、フレーム単位でデコード処理を指示したり、ストリーム単位でデコード処理を指示したりすることが可能である。なお、フレームとは、ビデオ信号においては、1コマに相当し、オーディオ信号においては、1グラニュラ単位に相当する。
【0109】
ホストドライバ12は、メインプロセッサ11からの指示に応じて、サブシステム20のホストインターフェース22あるいは共有メモリ27にコマンドやデコード処理対象となるストリームデータを書き込んだり、共有メモリ27に記憶されたデコード処理結果を読み出したりする。
なお、サブシステム20のホストインターフェース22および共有メモリ27は、メインシステム10およびサブシステム20の双方から書き込みおよび読み出しが可能な記憶領域を有する。
【0110】
次に、サブシステム20は、デコーダ21と、ホストインターフェース22と、画像入力部23と、描画部24と、タイマ25と、サブプロセッサ26と、共有メモリ27と、動画処理制御部28とを含んで構成され、これらの各機能部分は、バス29を介してそれぞれ接続されている。
デコーダ21は、動画処理制御部28の制御に従いつつ、ホストインターフェース22の共有メモリ22b等に記憶された動画像について、伸長処理を含む復号化処理に関する演算を行い、処理結果を共有メモリ27のフレームバッファ27a等に記憶する。
【0111】
ホストインターフェース22は、メインシステム10から入力されるコマンドおよびそれに付随する少量のデータを記憶するレジスタ22aと、コマンドに付随して送信される多量のデータ(ストリームデータ等)を記憶する共有メモリ22bとを含んで構成される。
なお、ホストインターフェース22のレジスタ22aにコマンドが入力されると、サブプロセッサ26は、それを割り込みとして処理し、共有メモリ22bの内容を読み込む。
【0112】
画像入力部23は、外部装置から画像データの入力を受け付けるインターフェースである。
描画部24は、共有メモリ27のフレームバッファ27a等に記憶された動画像のデータ(デコード後のデータ)を読み出し、映像として再生する。
タイマ25は、システムクロックに基づいて時間の管理を行い、サブプロセッサ26に時間信号を供給する。
【0113】
サブプロセッサ26は、サブシステム20全体を制御するものであり、メインシステム10からホストインターフェースにコマンドが入力されたことに対応して、動画像のデコード処理の実行を指示する。このとき、サブプロセッサ26は、サブシステム20が、直ちにデコード処理を実行可能である場合、動画像のデコード処理を開始し、直ちにはデコード処理を実行可能でない場合、命令キュー28bにコマンドおよびそれに付随するデータを記憶する。
【0114】
そして、サブプロセッサ26は、デコード処理を実行可能となった後、命令キュー28bに記憶されたコマンドを実行する。
なお、サブプロセッサ26は、その他、動画像のデコード処理あるいは再生処理に関する各種管理のための処理を実行する。
共有メモリ27は、デコード処理結果であるフレームデータを1フレーム分記憶するフレームバッファ27aを含んで構成される。なお、共有メモリ27は、所定容量のメモリによって構成されており、必要に応じて、フレームバッファを所定フレーム分形成することが可能である。
【0115】
また、共有メモリ27には、メインシステム10から入力されるストリームデータを記憶する入力リングバッファ28iが含まれ、入力リングバッファ28iは、同時に動画処理制御部28の構成要素にもなっている。
動画処理制御部28は、命令キュー管理部28aと、命令キュー28bと、フレームバッファ管理部28cと、処理時間テーブル部28dと、負荷係数初期値テーブル部28eと、負荷係数解析部28fと、処理能力管理部28gと、リングバッファ管理部28hとを含んで構成される。
【0116】
命令キュー管理部28aは、サブプロセッサ26の指示に基づいて、命令キュー28bへのデータの記憶および命令キュー28bからのデータの読み出しを管理する。
命令キュー28bは、メインシステム10からサブシステム20に入力されたコマンドおよびそれに付随するデータのうち、直ちに実行されないものを一時的に記憶する。
【0117】
フレームバッファ管理部28cは、負荷係数解析部28fの解析結果に基づいて、共有メモリ27内に形成するフレームバッファの量(フレームの記憶可能枚数)を増減させる。
処理時間テーブル部28dは、動画像のストリームデータに含まれる各フレームについて、デコード処理に要した時間の実測値をテーブル形式のデータ(処理時間テーブル)として記憶する。
【0118】
また、処理時間テーブル部28dは、記憶しているフレームの処理時間を負荷係数解析部28fに出力する。
負荷係数初期値テーブル部28eは、動画像のストリームデータとして入力され得る種々のデータについて、その属性の代表的な要素(符号化または伸長方式、画像サイズ、ビットレートあるいはフレームレート等)が予め記憶された負荷係数初期値テーブルを記憶する。
【0119】
図6は、負荷係数初期値テーブルに格納される要素を示す図である。図6において、負荷係数初期値テーブルには、代表的な複数のストリームデータについて、符号化または伸長方式、画像サイズ(WX)、ビットレート(BPS)、フレームレート(FPS)、代表的なGOP間隔(T)および(23)〜(28)式に基づく判定に必要な各種パラメータが格納されている。
【0120】
そして、負荷係数初期値テーブル部28eは、負荷係数初期値テーブルに格納されている要素を負荷係数解析部28fに出力する。
負荷係数解析部28fは、処理時間テーブル部28dから入力されるフレーム処理時間あるいは負荷係数初期値テーブル部28eから入力される各要素に基づいて、処理対象であるストリームデータに関する(23)〜(28)式のいずれかに基づく判定処理を行い、判定結果をフレームバッファ管理部28cおよび処理能力管理部28gに出力する。
【0121】
処理能力管理部28gは、負荷係数解析部28fの判定結果に基づいて、動画像のデコード処理に割り当てる処理能力を増減させる。
リングバッファ管理部28hは、メインシステム10によって入力されたストリームデータの入力リングバッファ28iへの記憶および読み出しを管理する。
入力リングバッファ28iは、メインシステム10から入力されるストリームデータを記憶する。
【0122】
なお、上述の機能部のうち、サブシステム20に備えることとしたリングバッファ管理部28hおよび負荷係数初期値テーブル部28eは、メインシステム10のホストドライバ12に備えることとしてもよい。
次に、音声出力部30は、サブシステム20においてデコード処理された音声等を発声する。
【0123】
続いて、動画像再生装置1の動作を説明する。
上述の構成の下、まず、メインシステム10が、ホストドライバ12を介して、サブシステム20に動画像のデコード処理を出力する。
サブシステム20は、ホストインターフェース22に書き込まれたコマンドを読み込み、コマンドが直ちに実行可能である場合には実行し、直ちには実行できない場合、一旦、命令キュー28bに書き込み、実行可能な状態となった後にコマンドを実行する。
【0124】
このとき、メインシステム10は、初めに、初期化コマンドを送信し、引き続き、伸長処理コマンドを出力する。この初期化コマンドには、処理対象であるストリームデータについて、負荷係数初期値テーブルのいずれの値を用いるべきかについての指示が含まれている。
また、メインシステム10は、ストリームデータを1フレーム分ずつデコード処理させるように、伸長処理コマンドを順次出力する。
【0125】
サブシステム20は、初期化コマンドに含まれる負荷係数初期値テーブルの値を参照して、フレームバッファの量および処理能力を設定し、伸長処理を開始する。
そして、伸長処理におけるフレーム処理時間の実測値を処理時間テーブルに順次格納していく。
【0126】
さらに、サブシステム20は、伸長処理の実行後においては、処理時間テーブルに格納されているフレームの処理時間も参照し、(25)式あるいは(26)式等において用いる分散等を適宜算出しながら、(23)式および(24)式(または、(25)式および(26)式、または、(27)式および(28)式)に基づく条件判定を行い、フレームバッファの量と処理能力とを動的に変化させながら、デコード処理を実行する。
【0127】
このとき、サブシステム20は、フレームバッファの量あるいは処理能力が、許容される最大値を超えて必要となった場合、警告を発したり、必要に応じて、フレームを間引く処理を行なったりする。
以上のように、本実施の形態に係る動画像再生装置1は、(23)〜(28)式に基づく条件判定を行い、動画像のストリームデータをデコード処理する際のフレームバッファ量および処理能力を適切な範囲に調整する。
【0128】
したがって、デコード処理および動画像の再生のいずれもが連続的に行なわれることとなり、過剰なフレームバッファを割り当てたり、デコード処理能力に対してフレームバッファが不足し、動画像の再生が円滑に行なわれない事態を避けることができる。
即ち、記憶容量や処理能力を効率的に使用することができ、消費電力あるいは不要輻射の低減、また、実装コストの削減等の効果を得ることができるため、動画像の伸長・再生処理を効率的に行うことが可能となる。
【0129】
なお、本実施の形態において、処理負荷の比較的大きいものと処理負荷の比較的小さいものとにフレームを分ける閾値として、全フレームの負荷平均WAverageが採用可能であることについて述べたが、その他にも、処理負荷の比較的大きいフレームの負荷平均(例えば、“WA”)と処理負荷の比較的小さいフレームの負荷平均(例えば、“WB”)との中間値とすることも可能である。
【0130】
【発明の効果】
本発明によれば、所定式に基づく条件判定を行い、動画像のストリームデータを復号・再生処理する際のフレームバッファ量および処理能力を適切な範囲に調整する。
したがって、動画像の復号処理および再生処理のいずれもが連続的に行なわれることとなり、過剰なフレームバッファを割り当てたり、デコード処理能力に対してフレームバッファが不足し、動画像の再生が円滑に行なわれないという事態を避けることができる。
【0131】
即ち、記憶容量や処理能力を効率的に使用することができ、消費電力あるいは不要輻射の低減、また、実装コストの削減等の効果を得ることができるため、動画像の伸長・再生処理を効率的に行うことが可能となる。
【図面の簡単な説明】
【図1】動画像のストリームデータにおいて、各フレームを伸長処理するために要する処理負荷の一例を示す図である。
【図2】各フレームの再生タイミングと、デコード処理時間帯との関係を示す図である。
【図3】図2の場合に比べ、デコード処理能力を10%向上させた場合を示している。
【図4】図1に示すヒストグラムに設定した各種パラメータを示す図である。
【図5】本発明を適用した動画像再生装置1の機能構成を示すブロック図である。
【図6】負荷係数初期値テーブルに格納される要素を示す図である。
【符号の説明】
1 動画像再生装置,10 メインシステム,11 メインプロセッサ,12 ホストドライバ,20 サブシステム,21 デコーダ,22 ホストインターフェース,22a レジスタ,22b 共有メモリ,23 画像入力部,24 描画部,25 タイマ,26 サブプロセッサ,27 共有メモリ,27a フレームバッファ,28 動画処理制御部,28a 命令キュー管理部,28b 命令キュー,28c フレームバッファ管理部,28d 処理時間テーブル部,28e 負荷係数初期値テーブル部,28f 負荷係数解析部,28g 処理能力管理部,28h リングバッファ管理部,28i 入力リングバッファ,29バス,30 音声出力部,40 バス
Claims (39)
- 複数のフレームを含む符号化された動画像のストリームデータを復号化して再生するための動画像再生処理方法であって、
処理対象である動画像のストリームデータに含まれる各フレームの処理負荷を所定の閾値に基づいて分類し、該閾値より処理負荷の大きいフレーム群のフレーム処理負荷に基づく第1の要素と、該閾値より処理負荷の小さいフレーム群のフレーム処理負荷に基づく第2の要素と、動画像のストリームデータを復号化する処理および動画像の再生処理のいずれもが連続的に行なわれるための所定条件とに基づいて、動画像再生処理のためのフレームバッファ量と、処理能力とを決定することを特徴とする動画像再生処理方法。 - 前記閾値は、処理対象である全フレームそれぞれの平均処理負荷あるいは前記閾値より処理負荷の大きいフレーム群の負荷平均と前記閾値より処理負荷の小さいフレーム群の負荷平均との中間値の少なくともいずれかに基づいて決定されることを特徴とする請求項1記載の動画像再生処理方法。
- 前記第1の要素は、該閾値より処理負荷の大きいフレームの負荷平均であり、前記第2の要素は、該閾値より処理負荷の小さいフレームの負荷平均であることを特徴とする請求項1または2記載の動画像再生処理方法。
- 前記第1の要素あるいは第2の要素の少なくともいずれかを、処理対象に含まれるフレームの処理負荷の分布状態に基づいて補正することを特徴とする請求項1〜5のいずれかに記載の動画像再生処理方法。
- 前記第1の要素あるいは第2の要素の少なくともいずれかを、処理対象である動画像の再生におけるフレームレートの変動に基づいて補正することを特徴とする請求項1〜8のいずれかに記載の動画像再生処理方法。
- 処理対象である前記ストリームデータの再生処理実行前に把握可能な属性に基づいて、予め設定された所定値を選択し、選択した値に基づいて、前記第1あるいは第2の要素、前記所定条件の少なくともいずれかを決定することを特徴とする請求項1〜11のいずれかに記載の動画像再生処理方法。
- 処理対象である前記ストリームデータの再生処理を実行することによって取得される属性に基づいて、前記第1あるいは第2の要素、前記所定条件の少なくともいずれかを決定することを特徴とする請求項1〜12のいずれかに記載の動画像再生処理方法。
- 複数のフレームを含む符号化された動画像のストリームデータを復号化して再生するための動画像再生装置であって、
処理対象である動画像のストリームデータに含まれる各フレームの処理負荷を所定の閾値に基づいて分類し、該閾値より処理負荷の大きいフレーム群のフレーム処理負荷に基づく第1の要素と、該閾値より処理負荷の小さいフレーム群のフレーム処理負荷に基づく第2の要素と、動画像のストリームデータを復号化する処理および動画像の再生処理のいずれもが連続的に行なわれるための所定条件とに基づいて、動画像再生処理のためのフレームバッファ量と、処理能力とを決定することを特徴とする動画像再生装置。 - 前記閾値は、処理対象である全フレームそれぞれの平均処理負荷あるいは前記閾値より処理負荷の大きいフレーム群の負荷平均と前記閾値より処理負荷の小さいフレーム群の負荷平均との中間値の少なくともいずれかに基づいて決定されることを特徴とする請求項14記載の動画像再生装置。
- 前記第1の要素は、該閾値より処理負荷の大きいフレームの負荷平均であり、前記第2の要素は、該閾値より処理負荷の小さいフレームの負荷平均であることを特徴とする請求項14または15記載の動画像再生装置。
- 前記第1の要素あるいは第2の要素の少なくともいずれかを、処理対象に含まれるフレームの処理負荷の分布状態に基づいて補正することを特徴とする請求項14〜18のいずれかに記載の動画像再生装置。
- 前記第1の要素あるいは第2の要素の少なくともいずれかを、処理対象である動画像の再生におけるフレームレートの変動に基づいて補正することを特徴とする請求項14〜21のいずれかに記載の動画像再生装置。
- 処理対象である前記ストリームデータの再生処理実行前に把握可能な属性に基づいて、予め設定された所定値を選択し、選択した値に基づいて、前記第1あるいは第2の要素、前記所定条件の少なくともいずれかを決定することを特徴とする請求項14〜24のいずれかに記載の動画像再生装置。
- 処理対象である前記ストリームデータの再生処理を実行することによって取得される属性に基づいて、前記第1あるいは第2の要素、前記所定条件の少なくともいずれかを決定することを特徴とする請求項14〜25のいずれかに記載の動画像再生装置。
- 複数のフレームを含む符号化された動画像のストリームデータを復号化して再生するための動画像再生処理プログラムであって、
処理対象である動画像のストリームデータに含まれる各フレームの処理負荷を所定の閾値に基づいて分類し、該閾値より処理負荷の大きいフレーム群のフレーム処理負荷に基づく第1の要素と、該閾値より処理負荷の小さいフレーム群のフレーム処理負荷に基づく第2の要素と、動画像のストリームデータを復号化する処理および動画像の再生処理のいずれもが連続的に行なわれるための所定条件とに基づいて、動画像再生処理のためのフレームバッファ量と、処理能力とを決定する機能をコンピュータに実現させることを特徴とする動画像再生処理プログラム。 - 前記閾値は、処理対象である全フレームそれぞれの平均処理負荷あるいは前記閾値より処理負荷の大きいフレーム群の負荷平均と前記閾値より処理負荷の小さいフレーム群の負荷平均との中間値の少なくともいずれかに基づいて決定されることを特徴とする請求項27記載の動画像再生処理プログラム。
- 前記第1の要素は、該閾値より処理負荷の大きいフレームの負荷平均であり、前記第2の要素は、該閾値より処理負荷の小さいフレームの負荷平均であることを特徴とする請求項27または28記載の動画像再生処理プログラム。
- 前記第1の要素あるいは第2の要素の少なくともいずれかを、処理対象に含まれるフレームの処理負荷の分布状態に基づいて補正する機能をコンピュータに実現させることを特徴とする請求項27〜31のいずれかに記載の動画像再生処理プログラム。
- 前記第1の要素あるいは第2の要素の少なくともいずれかを、処理対象である動画像の再生におけるフレームレートの変動に基づいて補正する機能をコンピュータに実現させることを特徴とする請求項27〜34のいずれかに記載の動画像再生処理プログラム。
- 処理対象である前記ストリームデータの再生処理実行前に把握可能な属性に基づいて、予め設定された所定値を選択し、選択した値に基づいて、前記第1あるいは第2の要素、前記所定条件の少なくともいずれかを決定する機能をコンピュータに実現させることを特徴とする請求項27〜37のいずれかに記載の動画像再生処理プログラム。
- 処理対象である前記ストリームデータの再生処理を実行することによって取得される属性に基づいて、前記第1あるいは第2の要素、前記所定条件の少なくともいずれかを決定する機能をコンピュータに実現させることを特徴とする請求項27〜38のいずれかに記載の動画像再生処理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002297588A JP2004135067A (ja) | 2002-10-10 | 2002-10-10 | 動画像再生処理方法、動画像再生装置および動画像再生処理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002297588A JP2004135067A (ja) | 2002-10-10 | 2002-10-10 | 動画像再生処理方法、動画像再生装置および動画像再生処理プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004135067A true JP2004135067A (ja) | 2004-04-30 |
Family
ID=32287256
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002297588A Withdrawn JP2004135067A (ja) | 2002-10-10 | 2002-10-10 | 動画像再生処理方法、動画像再生装置および動画像再生処理プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004135067A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009005345A (ja) * | 2007-06-20 | 2009-01-08 | Nvidia Corp | 一律なビデオ復号及び表示 |
JP5384712B1 (ja) * | 2012-10-29 | 2014-01-08 | 株式会社藤商事 | 遊技機 |
JP5384713B1 (ja) * | 2012-10-29 | 2014-01-08 | 株式会社藤商事 | 遊技機 |
-
2002
- 2002-10-10 JP JP2002297588A patent/JP2004135067A/ja not_active Withdrawn
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009005345A (ja) * | 2007-06-20 | 2009-01-08 | Nvidia Corp | 一律なビデオ復号及び表示 |
JP5384712B1 (ja) * | 2012-10-29 | 2014-01-08 | 株式会社藤商事 | 遊技機 |
JP5384713B1 (ja) * | 2012-10-29 | 2014-01-08 | 株式会社藤商事 | 遊技機 |
JP2014087401A (ja) * | 2012-10-29 | 2014-05-15 | Fujishoji Co Ltd | 遊技機 |
JP2014087402A (ja) * | 2012-10-29 | 2014-05-15 | Fujishoji Co Ltd | 遊技機 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8225112B2 (en) | Using historic load profiles to dynamically adjust operating frequency and available power to a handheld multimedia device processor core | |
JP4519082B2 (ja) | 情報処理方法、動画サムネイル表示方法、復号化装置、および情報処理装置 | |
US10509588B2 (en) | System and method for controlling memory frequency using feed-forward compression statistics | |
US20040205757A1 (en) | Performance scheduling using multiple constraints | |
EP1653470A1 (en) | Information processing apparatus, method, recording medium and program | |
JP2008269282A (ja) | 情報処理装置および方法、並びにプログラム | |
CN110583018B (zh) | 用于片上系统中的智能数据/帧压缩的系统和方法 | |
CN110521208B (zh) | 用于片上系统中的智能数据/帧压缩的系统和方法 | |
JP2008282150A (ja) | 信号処理装置及び信号処理システム | |
JP3802521B2 (ja) | 符号化装置、符号化制御方法及び符号化制御プログラム | |
JP2009026047A (ja) | 動作周波数動的自動制御機能を有するオーディオプロセッサ | |
US20060174303A1 (en) | Moving picture encoding or decoding processing system and mobin g picture encoding or decoding processing method | |
US7861012B2 (en) | Data transmitting device and data transmitting method | |
US20200387801A1 (en) | Electronic apparatus and method of performing operations thereof | |
JP2004135067A (ja) | 動画像再生処理方法、動画像再生装置および動画像再生処理プログラム | |
US10349072B2 (en) | Image processing apparatus and control method for the same | |
JP4728083B2 (ja) | メディア処理装置 | |
US20100242046A1 (en) | Multicore processor system, scheduling method, and computer program product | |
US7577762B1 (en) | Cooperative scheduling for multiple consumers | |
US7103100B1 (en) | Digital signal processing apparatus and method and providing medium | |
US20130103392A1 (en) | Apparatus and method of reproducing audio data using low power | |
JP2005064773A (ja) | 画像圧縮システム及び画像圧縮方法 | |
US8520964B2 (en) | Image processing apparatus | |
CN110809754B (zh) | 用于计算设备中的动态缓冲器大小设定的系统和方法 | |
CN112462924A (zh) | 一种时钟频率调整方法、装置及电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060110 |