以下、本技術を実施するための形態(以下、実施の形態と称する)について説明する。説明は以下の順序により行う。
1.第1の実施の形態(画像処理制御:メモリーコントローラから供給される情報に基づいてエンコードの負荷を調整する例)
2.第2の実施の形態(画像処理制御:アービタから供給される情報に基づいてエンコードの負荷を調整する例)
3.第3の実施の形態(画像処理制御:エンコーダー入力バッファから供給される情報に基づいてエンコードの負荷を調整する例)
4.第4の実施の形態(画像処理制御:エンコーダーから供給される情報に基づいてエンコードの負荷を調整する例)
5.第5の実施の形態(CPU制御:CPUのパフォーマンスに基づいてエンコードの負荷を調整する例)
<1.第1の実施の形態>
[画像処理装置の機能構成例]
図1は、本技術の第1の実施の形態における画像処理装置100の機能構成の一例を模式的に示すブロック図である。
この画像処理装置100は、動画データ(例えば、テレビジョン放送などの動画コンテンツ)の録画および再生を同時に行えるものである。また、画像処理装置100は、動画データの録画により記録されるデータ(圧縮ストリーム)を生成するのに必要な機能と、動画データの再生により表示される画像(表示画像)を生成するのに必要な機能とが1つのチップに集積された画像処理用のSoC(System-on-a-Chip)を備えている。なお、図1では、このSoCは、集積回路200として表されている。
画像処理装置100は、集積回路200と、メモリー120と、画像表示部151と、音声出力部152とを備える。
集積回路200は、1つのチップに様々な機能の回路を集積したSoCである。なお、集積回路200の内部の機能構成として、図1では、動画データの録画にかかわる機能構成と、動画データの再生にかかわる機能構成とが示されている。なお、集積回路200では、集積回路200の外部に設けられたメモリー120と、このメモリー120とデータのやり取りをするためのバス290が、集積回路200の各構成が使用する共通のリソースとされる。
集積回路200は、機能構成として、入力画像スケーラー210と、エンコーダー入力バッファ220と、エンコード負荷調整部230と、エンコーダー240と、圧縮ストリーム出力部260とを備える。また、集積回路200は、デコーダー281と、グラフィック処理部282と、表示処理部283と、音声処理部284と、アービタ271と、メモリーコントローラ275と、バス290とを備える。
アービタ271は、メモリー120へのアクセス(データの書き込みまたは読み出し)を調停(アービトレーション)するものである。このアービタ271は、クライアント(エンコーダー240、デコーダー281、グラフィック処理部282、表示処理部283、音声処理部284)がメモリー120へアクセスしたい場合には、そのクライアントが発行したアクセス要求(リクエスト信号)を、信号線273を介して受信する。
そして、アービタ271は、受信したリクエストのうちからメモリー120へのアクセスを許可するリクエストを決定(調停)し、アクセスの許可信号(グラント信号)を、そのリクエストを発行したクライアントへ信号線272を介して供給する。また、アービタ271は、メモリー120へのアクセスを許可したリクエストをメモリーコントローラ275に供給し、そのリクエストによるメモリー120へのアクセスを実行させる。
なお、アービタ271は、バス290の帯域幅(メモリーバンド幅)に余裕がある場合には、録画の処理に関するリクエストと、再生の処理に関するリクエストとを、両方ともにリアルタイム処理ができるように調停する。すなわち、録画の処理に関するクライアントが必要とするメモリーバンド幅(GB/秒)の速度が出るようにリクエストを処理するとともに、再生の処理に関するクライアントが必要とするメモリーバンド幅の速度も出るようにリクエストを処理する。
また、メモリーバンド幅が不足する場合には、アービタ271は、録画の処理に関するリクエストの優先度を下げて、再生の処理がリアルタイム処理されるように調停する。すなわち、再生の処理に関するクライアントが必要とするメモリーバンド幅の速度が出るようにリクエストが処理されるとともに、録画の処理に関するクライアントのリクエストは、許可が遅延される。なお、リクエストに関しては、図3を用いて説明するため、ここでの詳細な説明を省略する。
メモリーコントローラ275は、メモリー120へのアクセスを制御するものである。このメモリーコントローラ275は、アービタ271から供給される許可したリクエストに関する情報に基づいてメモリー120におけるデータの読み書きを制御し、そのリクエストを出力したクライアントがバス290を介して行うメモリー120への読み書きを制御する。
バス290は、集積回路200において、メモリー120へのアクセスを行う各クライアントおよびメモリーコントローラ275の間を相互に接続するバスである。バス290の帯域幅(メモリーバンド幅)には、バス290に接続されている各構成が単独で動作するために必要となる帯域幅(例えば、各構成が必要とする最大の帯域幅)を加算した幅よりも小さい帯域幅が設定される。これにより、図1で示す本技術の第1の実施の形態では、エンコードおよびデコードが両方ともに通常の動作で最大の帯域幅を必要とすると、メモリーバンド幅が不足する。
エンコード負荷調整部230は、エンコードのリアルタイム処理が破綻しないように、エンコード内容を調整するものである。すなわち、エンコード負荷調整部230は、バス290の使用状態を監視して、エンコーダー240に対して割り当て可能なメモリーバンド幅を検出し、この検出したメモリーバンド幅でエンコードがリアルタイム処理されるようにエンコード内容を調整する。この調整により、エンコーダー240におけるエンコードによるメモリーバンド幅への負荷が軽減され、エンコードによるメモリーバンド幅の必要量が減少する。
例えば、エンコード負荷調整部230は、エンコーダー240に割り当て可能なメモリーバンド幅(リソース)が、エンコードをリアルタイムで行うために必要なメモリーバンド幅(基準量)よりも少ない場合には、メモリーバンド幅(リソース)が不足していると判断する。そして、エンコード負荷調整部230は、メモリーバンド幅への負荷が軽減されるようにエンコードの設定を変更する。ここで、基準量とは、例えば、目的の品質(圧縮率)の圧縮ストリームを生成する際に、一時的に遅延が発生する可能性はあるもののこの遅延は軽い処理の時に回復可能であり、動画のエンコード全体では遅延が発生せずにリアルタイムでエンコードが行われるメモリーバンド幅の量である。なお、この基準量は、基準とする圧縮率、処理対象とする動画のサイズ、バンド幅、回路設計などに応じて適切な値が設定される。
また、エンコード負荷調整部230は、エンコード内容を調整してエンコードによるメモリーバンド幅への負荷を軽くした後に、エンコーダー240に対して割り当て可能なメモリーバンド幅が増えた場合には、軽減した負荷の分を元に戻したり、軽減の度合いを小さくしたりする。すなわち、エンコード負荷調整部230は、エンコーダー240に対して割り当て可能なメモリーバンド幅に応じてエンコード内容を調整(設定)する。
なお、必要なメモリーバンド幅を軽減させるエンコード内容の変更として、エンコード負荷調整部230は、入力画像スケーラー210およびエンコーダー240のうちの少なくとも一方における処理内容を変更する。なお、どちらの処理内容を変更するか、両方ともに変更するか、変更の度合いなどは、メモリーバンド幅の軽減の度合いに応じて決定される。また、入力画像スケーラー210における処理内容の変更については図4を参照して説明し、エンコーダー240における処理内容の変更については図5を参照して説明するため、ここでの説明を省略する。
また、エンコード負荷調整部230によるバス290の使用状態(メモリーバンド幅の使用状態)の検出は、種々の方法が考えられる。本技術の第1の実施の形態では、メモリーコントローラ275からバス290の使用状態を取得する例について説明する。また、アービタ271におけるリクエストの処理状態からバス290の使用状態を検出する例について、本技術の第2の実施の形態として、図9および図10を参照して説明する。また、エンコーダー入力バッファ220におけるバッファの空き容量からエンコーダー240へのメモリーバンド幅の割り当てがリアルタイム処理に十分か否かを検出してバス290の使用状態として用いる例について、本技術の第3の実施の形態として、図11を参照して説明する。また、エンコーダー240における1フレーム当たりの処理速度からエンコーダー240へのメモリーバンド幅の割り当てがリアルタイム処理に十分か否かを検出してバス290の使用状態として用いる例については、本技術の第4の実施の形態として、図12を参照して説明する。なお、エンコード負荷調整部230は、特許請求の範囲に記載の検出部および制御部の一例である。
入力画像スケーラー210は、集積回路200の外部から信号線219を介して供給されるエンコード対象の動画コンテンツ(動画データ)を受け取り、エンコード負荷調整部230による制御に基づいて、画像(フレーム)のサイズ(解像度)を変更するものである。なお、エンコード対象の動画データとは、例えば、チューナー(図示せず)が出力したベースバンド信号が考えられる。また、DVD(Digital Versatile Disk)等のディスクやメモリカード等の半導体メモリなどの記録媒体に記録されたデータを別のファイル形式で保存し直す場合において、このデータをデコードしたものなども考えられる。
入力画像スケーラー210は、例えば、メモリーバンド幅に十分な空きがあることをエンコード負荷調整部230が検出した場合には、受け取った動画データにおける画像のサイズを変更せずに、そのままのサイズ(入力サイズ)でエンコーダー入力バッファ220に供給する。また、入力画像スケーラー210は、メモリーバンド幅の不足を検出したエンコード負荷調整部230が画像サイズの変更を決定すると、受け取った動画データにおける画像のサイズをその決定に応じて縮小し、その縮小した画像をエンコーダー入力バッファ220に供給する。
エンコーダー入力バッファ220は、入力画像スケーラー210から供給される画像(フレーム)をフレーム単位で一時的に保持するものである。エンコーダー入力バッファ220は、動画データにおける画像サイズ(入力サイズ)で複数の画像を一時的に保持できる容量を備える。エンコーダー入力バッファ220は、エンコーダー240においてエンコード対象の画像(フレーム)のエンコードが終わると、次のエンコード対象の画像(時間軸上で1枚後の画像)を、信号線221を介してエンコーダー240に供給する。
エンコーダー240は、エンコーダー入力バッファ220から供給される画像に対して、データ量を圧縮するための符号化処理(エンコード)を行うものである。このエンコーダー240は、エンコード負荷調整部230による制御に基づいてエンコード内容が変更される。このエンコード内容の変更により、エンコーダー240が必要とするバス290のメモリーバンド幅が減少する。なお、エンコーダー240の内部の機構構成については、図2を参照して説明するためここでの詳細な説明を省略する。エンコーダー240は、エンコードが終了した画像を、信号線241を介して圧縮ストリーム出力部260に供給する。
圧縮ストリーム出力部260は、エンコーダー240から信号線241を介して供給される画像に基づいて集積回路200の外部へエンコード結果の動画コンテンツを出力するためのストリーム(圧縮ストリーム)を生成し、この生成した圧縮ストリームを出力するものである。例えば、圧縮ストリーム出力部260が出力した圧縮ストリームは、DVD等のディスクやメモリカード等の半導体メモリなどの記録媒体に記録されたり、ストリーミング配信されたりする。
デコーダー281は、集積回路200の外部から供給される再生対象の動画データ(動画コンテンツ)を受け取り、復号処理(デコード)を行うものである。なお、デコード対象の動画データとは、例えば、記録媒体に記録されたデータなどが考えられる。また、デコーダー281は、デコード対象の動画データからこの動画データに多重化されているデータ(ストリーム)を分離する。図1では、ビデオストリームおよびオーディオストリームが多重化されていることを想定して説明する。デコーダー281は、ビデオストリームを表示処理部283に供給し、オーディオストリームを音声処理部284に供給する。
グラフィック処理部282は、デコーダー281から供給されるビデオストリームの画像の表示に重ね合せる情報がある場合に、この情報(オンスクリーン情報)を表示するための画像(例えば、ポップアップメニューの画像)を生成するものである。例えば、グラフィック処理部282は、再生中の動画の残り再生時間や、画像処理装置100の設定のメニュー画面などの情報を表示するための画像を生成する。グラフィック処理部282は、生成した画像(オンスクリーン画像)を表示処理部283に供給する。
表示処理部283は、デコーダー281から供給されるビデオストリームを構成する各画像に種々の画像処理を施して、画像表示部151に表示する画像を生成するものである。表示処理部283は、例えば、ビデオストリームを構成する画像の解像度(サイズ)を、画像表示部151における表示面の解像度に変更する。また、表示処理部283は、表示する画像に、ノイズ除去などの画像処理を施す。また、表示処理部283は、グラフィック処理部282からオンスクリーン画像が供給されている場合には、画像表示部151に表示するビデオストリームの画像にオンスクリーン画像を重ね合せて画像表示部151に表示させる。
音声処理部284は、デコーダー281から供給されるデジタル情報のオーディオストリームからアナログのオーディオ信号を生成するものである。音声処理部284は、生成したアナログのオーディオ信号を音声出力部152に供給し、音声を出力させる。
メモリー120は、集積回路200から供給される画像信号を一時的に保持する記憶装置である。すなわち、メモリー120は、集積回路200が行うエンコードおよびデコードの作業領域として用いられる。メモリー120は、例えば、DRAM(Dynamic Random Access Memory)により実現される。
画像表示部151は、画像を表示するものであり、例えば、カラー液晶パネルにより構成される。例えば、集積回路200が映像視聴装置(例えば、ハードディスク内蔵型レコーダー)に設けられている場合には、画像表示部151は、映像視聴装置に接続された表示装置(例えば、液晶テレビジョン)に対応する。
音声出力部152は、音声を出力するものであり、例えば、スピーカーにより構成される。
次に、エンコーダー240の内部の機構構成について、図2を参照して説明する。
[エンコーダーの機能構成例]
図2は、本技術の第1の実施の形態におけるエンコーダー240の機能構成の一例を模式的に示すブロック図である。
エンコーダー240は、エンコードを行うものであり、例えば、H.264(MPEG(Moving Picture Experts Group)−4 AVC)として規定されたストリームにエンコードを行う。エンコーダー240は、減算器243と、離散コサイン変換部244と、量子化部245と、エントロピー符号化部246と、逆量子化部247と、逆離散コサイン変換部248と、加算器249と、ループ内フィルタ250と、フレームメモリー251と、フレーム間予測部252と、フレーム内予測部253と、スイッチ254と、動きベクトル検出部255とを備える。
減算器243は、エンコーダー入力バッファ220から信号線221を介して供給される符号化対象の画像(符号化対象画像)と、スイッチ254から供給される予測画像との差分(差分画像)を生成するものであり、この生成した差分画像を、離散コサイン変換部244に供給する。なお、減算器243は、スイッチ254から予測画像が供給されない場合には、符号化対象の画像をそのまま離散コサイン変換部244に供給する。
離散コサイン変換部244は、減算器243から供給される差分画像に対して離散コサイン変換(DCT:Discrete Cosine Transform)を施すものである。離散コサイン変換部244は、離散コサイン変換により算出された直交変換係数を、量子化部245に供給する。
量子化部245は、離散コサイン変換により算出される直交変換係数を量子化するものである。量子化部245は、量子化された直交変換係数を、エントロピー符号化部246および逆量子化部247に供給する。
エントロピー符号化部246は、量子化部245から供給される量子化された直交変換係数をエントロピー符号化するものである。また、エントロピー符号化部246は、動きベクトル検出部255から供給された動きベクトルもエントロピー符号化する。エントロピー符号化部246は、これらの符号化した情報と、予測に関する各種の情報(例えば、予測モード情報に関する情報、量子化パラメータ)とを多重化して出力ストリームを生成する。エントロピー符号化部246は、生成した出力ストリームを、信号線241を介して圧縮ストリーム出力部260に供給する。
逆量子化部247は、量子化部245から供給される量子化された直交変換係数を逆量子化するものであり、量子化を逆量子化して戻した直交変換係数を逆離散コサイン変換部248に供給する。
逆離散コサイン変換部248は、逆量子化部247から供給される直交変換係数に対して逆離散コサイン変換を行うものであり、逆離散コサイン変換により算出された信号(差分画像)を加算器249に供給する。
加算器249は、逆離散コサイン変換部248から供給される差分画像と、スイッチ254から供給される予測画像とを加算して画像(復号画像)を生成するものであり、生成した復号画像をループ内フィルタ250に供給する。
ループ内フィルタ250は、加算器249から供給される復号画像にブロック歪みを減少させるためのフィルタ処理を施すものであり、フィルタ処理後の復号画像をフレームメモリー251に供給する。
フレームメモリー251は、ループ内フィルタ250から供給される復号画像を複数枚保持するものである。このフレームメモリー251は、フレーム内予測で用いられる復号画像をフレーム内予測部253に供給し、フレーム間予測で用いられる復号画像をフレーム間予測部252および動きベクトル検出部255に供給する。
動きベクトル検出部255は、エンコーダー入力バッファ220から信号線221を介して供給される符号化対象画像と、フレームメモリー251から供給される復号画像とに基づいて、画像間における位置の差を示す動きベクトルの検出を画素のブロック単位で行うものである。動きベクトル検出部255は、検出した動きベクトルおよびその動きベクトルが位置を示すブロックを特定するための情報(ブロック情報)を、フレーム間予測部252およびエントロピー符号化部246に供給する。
なお、動きベクトル検出部255は、1枚の符号化対象画像に対して複数枚の復号画像(参照フレーム)を適用して動きベクトルを検出する。また、動きベクトル検出部255は、符号化対象画像における検出対象のブロックの画像における位置を中心として、所定の範囲を探索範囲(サーチ範囲)として参照フレームにおけるブロックの位置を検出する。この検出において、参照フレームの枚数および探索範囲のサイズ(大きさ)は、エンコード負荷調整部230による制御により増減され、リソースが少ない場合には、参照フレームの数が少なくされたり、探索範囲が狭くされたりする。なお、参照フレームの枚数および探索範囲のサイズの増減については、図5を参照して説明するため、ここでの詳細な説明を省略する。
フレーム間予測部252は、動きベクトル検出部255から供給される動きベクトルおよびブロック情報に基づいて、動き補償予測(インター予測)を行うものである。フレーム間予測部252は、動き補償予測により符号化される部分に対応する符号化対象画像の部分的な画像(予測画像)を生成し、生成した予測画像をスイッチ254へ供給する。
フレーム内予測部253は、フレームメモリー251から供給される符号化対象画像の復号画像を用いて、符号化対象画像に対するイントラ予測を行うものである。このフレーム内予測部253は、符号化対象の画素のブロック(符号化対象ブロック)のサイズやイントラ予測モードなどを決定する。フレーム内予測部253は、決定した情報(符号化対象ブロック、イントラ予測モード)を、エントロピー符号化部246に供給する。また、フレーム内予測部253は、イントラ予測により符号化される部分に対応する符号化対象画像の部分的な画像(予測画像)を生成し、生成した予測画像をスイッチ254へ供給する。
スイッチ254は、フレーム間予測部252から供給される予測画像と、フレーム内予測部253から供給される予測画像とを切替えるものであり、どちらかの予測画像を、減算器243および加算器249に供給する。
このように、エンコーダー240では、動きベクトル検出部255における動きベクトル検出の処理の重さが、エンコード負荷調整部230により制御される。
[アービタにおけるリクエストの優先度の一例]
図3は、本技術の第1の実施の形態におけるアービタ271におけるリクエストの優先度の一例を模式的に示す表である。
なお、図3では、動画データの再生処理にかかわるクライアント(デコーダー281、グラフィック処理部282、表示処理部283、音声処理部284)と、動画データの圧縮処理にかかわるクライアント(エンコーダー240)とに着目して説明する。
この図3の表に示すように、デコーダー281と、表示処理部283と、音声処理部284と、エンコーダー240とは、リアルタイムで処理が行われるように優先度が高く設定される。なお、グラフィック処理部282によるオンスクリーン画像の生成処理は、遅延したとしても再生中の動画の画像の表示には問題がないため、優先度は「中」に設定される。
また、エンコーダー240は、優先度が「高」に設定されるものの、他の優先度が「高」のクライアント(デコーダー281、表示処理部283、音声処理部284)と均等にメモリーバンド幅が割り当てられる訳ではない。エンコーダー240以外の優先度が「高」のクライアントへのメモリーバンド幅の割り当てが増加してエンコーダー240が必要なメモリーバンド幅よりメモリーバンド幅の空きが少なくなると、メモリーバンド幅の空き量がエンコーダー240への割り当て量とされる。すなわち、メモリーバンド幅に空きがない場合には、優先度が「高」の他のクライアントへのメモリーバンド幅の割り当てが優先され、エンコーダー240への割り当てが減少される。
なお、エンコーダー240への割り当てが必要なメモリーバンド幅より少ないことや、少なくなることがエンコード負荷調整部230により検出されると、エンコード負荷調整部230は、必要なメモリーバンド幅が少なくなるようにエンコード内容を調整する。
次に、エンコード負荷調整部230によるエンコードの負荷の調整(軽減)について、図4および図5を参照して説明する。
[入力画像スケーラーによる画像のサイズ変更の例]
図4は、本技術の第1の実施の形態の入力画像スケーラー210における画像サイズの変更を模式的に示す図である。
図4には、エンコード対象の動画データにおける画像のサイズ(解像度)を模式的に示す画像(入力画像321)が示されている。また、図4には、エンコード負荷調整部230がリソース(メモリーバンド幅)不足を検出した場合において、入力画像スケーラー210がサイズ変更して出力する画像のサイズを模式的に示す画像(縮小出力画像322)が示されている。さらに、図4には、エンコード負荷調整部230がリソース(メモリーバンド幅)が十分であることを検出した場合において、入力画像スケーラー210がサイズ変更しないで出力する画像のサイズを模式的に示す画像(出力画像323)とが示されている。
図4に示すように、エンコード負荷調整部230がリソース不足を検出した際に画像のサイズを小さくしてエンコーダー240に出力すると、エンコードの際の画像1枚当たりのデータ量が小さくなる。これにより、エンコーダー240がエンコードを行う際に必要とするリソース量を小さくすることができる。
なお、このサイズの縮小は、圧縮ストリームにおけるデータ構造が圧縮ストリームの規格に合うように行われる。例えば、このサイズの縮小は、GOP(Group of Picture)単位で縮小する。
なお、この縮小した画像を含む圧縮ストリームを再生して表示画面に表示する際には、表示画面の解像度(サイズ)に拡大される。
[エンコーダーにおける動きベクトル検出の変更の例]
図5は、本技術の第1の実施の形態のエンコーダー240における動きベクトル検出の変更を模式的に示す図である。
図5aでは、エンコード負荷調整部230がリソース不足を検出した場合において参照フレームの数が少なくされる例が示され、図5bでは、エンコード負荷調整部230がリソース不足を検出した場合において探索範囲が狭くされる例が示されている。
図5aには、基準の参照フレーム数を模式的に示す画像群(参照フレーム群331)が示されている。ここで、基準の参照フレーム数とは、例えば、エンコード処理のみを実行してリソースの不足が発生しない場合において設定される参照フレームの数である。また、図5aには、エンコード負荷調整部230がリソース不足を検出した場合において、少なくされた参照フレーム数を模式的に示す画像群(参照フレーム群332)が示されている。さらに、図5aには、エンコード負荷調整部230がリソースが十分であることを検出した場合において、参照フレーム数が変更されなかったことを模式的に示す画像群(参照フレーム群333)が示されている。
図5aに示すように、エンコード負荷調整部230がリソース不足を検出した際に参照フレーム数を少なくすると、データを参照する画像の枚数が減少して、メモリー120から読み出すデータ量が少なくなる。これにより、エンコーダー240がエンコードを行う際に必要とするリソース量を小さくすることができる。
図5bには、基準の動きベクトルの探索範囲(範囲342)のサイズを示すための画像(画像341)が示されている。ここで、基準の動きベクトルの探索範囲とは、例えば、エンコード処理のみを実行してリソースの不足が発生しない場合において設定される探索範囲の大きさである。また、図5bには、エンコード負荷調整部230がリソース不足を検出した場合において、狭くされた探索範囲(範囲345)のサイズを示すための画像(画像344)が示されている。さらに、図5bには、エンコード負荷調整部230がリソースが十分であることを検出した場合において、探索範囲(範囲347)のサイズが基準のサイズから変更されなかったことを模式的に示す画像(画像346)が示されている。
図5bに示すように、エンコード負荷調整部230がリソース不足を検出した際に動きベクトルの探索範囲を狭くすると、データを利用する画像の範囲が狭くなり、メモリー120から読み出すデータ量が少なくなる。これにより、エンコーダー240がエンコードを行う際に必要とするリソース量を小さくすることができる。
ここで、図4において示した画像のサイズ変更と、図5において示した動きベクトル検出の変更との違いについて説明する。
図4で示した入力画像スケーラー210による画像のサイズの縮小は、画像のサイズ(解像度)が小さくなるため画質の劣化(解像度の低下)をもたらす。しかしながら、圧縮ファイルのデータ量も小さくなるため、圧縮ストリームのサイズの縮小を優先させるようにエンコードが設定されている場合においてリソースの不足が発生すると、参照フレーム数の減少やサーチ範囲の縮小よりも優先的に行われる。
また、図5で示した動きベクトル検出の変更(参照フレーム数の減少、サーチ範囲の減少)は、圧縮率が悪くなるため、画像1枚当たりのデータ量が増えて、圧縮ファイルのデータ量も大きくなる。しかしながら、画質の劣化は生じないため、画質を優先させるようにエンコードが設定されている場合においてリソースの不足が発生すると、入力画像スケーラー210によるサイズの縮小よりも優先的に行われる。
なお、リソースの不足が深刻な場合や、データ量の縮小と画質とを両立させたい場合には、両方の処理が行われる。
[メモリーバンド幅の使用状態の遷移の例]
図6は、本技術の第1の実施の形態におけるバス290の使用状態の遷移の一例を模式的に示すグラフである。
この図6で示すグラフには、横軸を時間軸を示す軸とし、縦軸をリソースの総量(バス290の全メモリーバンド幅)を示す軸として、メモリーバンド幅の使用状態の遷移が示されている。
このグラフでは、エンコーダー240以外に割り当てられたメモリーバンド幅およびこの割り当ての時間経過に伴う遷移を、斜線を付した領域(領域351)により示している。また、このグラフでは、エンコーダー240に割り当てられたメモリーバンド幅およびこの割り当ての時間経過に伴う遷移を、灰色を付した領域(領域352)により示している。
ここで、エンコード負荷調整部230によるエンコード内容の調整と、メモリーバンド幅の使用状態との関係について、図6のグラフを参照しながら説明する。なお、ここでは、どのクライアントにも割り当てられていないメモリーバンド幅の空きの量に基づいて、エンコーダ240に割り当てるメモリーバンド幅の量が決定される例について説明する。
エンコード負荷調整部230は、メモリーコントローラ275からバスの使用状態(メモリーバンド幅の割り当て状態)を取得する。これにより、どのクライアントにも割り当てられていないメモリーバンド幅の空きの量(空き幅)がエンコード負荷調整部230に通知される。なお、メモリーバンド幅の空き幅は、図6において、領域351および領域352に挟まれた白地の領域により示されている。
空き幅が通知されると、エンコード負荷調整部230は、空き幅の時間遷移から、エンコード内容(負荷)を変更すべきか否かを判断する。例えば、エンコード負荷調整部230は、空き幅が、リソースに対するエンコードの負荷を重くできるほど十分に増えたか否か判断し、空き幅が十分にあると判断された場合には、エンコードの負荷が重くされる。例えば、入力画像スケーラー210において行っていたサイズ(解像度)の縮小の縮小率を低くして元のサイズに近くする。また、エンコーダー240において、参照フレームの数を増やしたり、動きベクトルの探索範囲を広くしたりする。なお、図6では、空きの量が十分にあると判断される空きの量が矢印353により示され、エンコーダー240に割り当てられたメモリーバンド幅の増加が矢印354により示されている。
また、エンコード負荷調整部230は、空き幅の時間遷移から、現在行われているエンコードの負荷量を維持できるか否かを判断する。例えば、空きの量が所定量(所定の閾値)よりも減少した状態が数秒続いた場合には、エンコーダー240に割り当てられるメモリーバンド幅が不足して現在行われているエンコードを維持できない可能性が高いと判断し、リソースに対するエンコードの負荷を軽くする。例えば、入力画像スケーラー210において、元のサイズ(解像度)で出力していたものを縮小して出力したり、縮小率を上げてさらに縮小して出力したりする。また、エンコーダー240において、参照フレームの数を減らしたり、動きベクトルの探索範囲を狭くしたりする。なお、図6では、現在行われているエンコードを維持できない可能性が高いと判断される空きの量が矢印355および矢印357により示され、エンコーダー240に割り当てられたメモリーバンド幅の減少が矢印356および矢印358により示されている。
[効果例]
図7は、本技術の第1の実施の形態における画像処理装置100の効果を模式的に示す図である。
図7aには、デコーダーおよびエンコーダーがメモリーバスを共有する他の画像処理装置におけるメモリーバンド幅のサイズと、画像処理装置100におけるメモリーバンド幅のサイズとが示されている。
他の画像処理装置では、デコーダー単独で動作させる場合の最大のメモリーバンド幅と、エンコーダー単独で動作させる場合の最大のメモリーバンド幅とを足し合わせて、デコーダーとエンコーダーとで共有されるメモリーバスのバンド幅が設計される。
なお、説明の便宜上、ここでは、画像処理装置100のデコーダー281と、表示処理部283と、音声処理部284とがリアルタイム処理をするのに必要な最大のメモリーバンド幅を、デコーダー単独設計時のバンド幅と称して説明している。
一方、画像処理装置100では、エンコーダーに割り当てることができるメモリーバンド幅の量に応じて、メモリーバス(バス290)へのエンコードの負荷が、エンコード負荷調整部230により設定される。これにより、マージンを少なくしてメモリーバンド幅を設計することができ、他の画像処理装置と比べて、メモリーバス(バス290)のバンド幅を狭くすることができる。
図7bには、他の画像処理装置においてメモリーバンド幅の不足が生じた場合と、画像処理装置100においてメモリーバンド幅の不足が生じた場合とを説明するための表が示されている。
図7bの表に示すように、他の画像処理装置では、メモリーバンド幅の不足が発生すると、デコードおよびエンコードの両方で処理不足が発生して、デコードおよびエンコードの両方でリアルタイム処理が破綻する可能性がある。
一方、画像処理装置100では、メモリーバンド幅の不足が発生しても、デコードの処理にメモリーバンド幅が優先的に確保されるため、デコードのリアルタイム処理は破綻しない。また、メモリーバンド幅の不足が発生すると、エンコードの処理によるバンド幅の必要量が、メモリーバンド幅の不足量に応じて軽減されるため、エンコードのリアルタイム処理も破綻しない。
[画像処理装置の動作例]
次に、本技術の第1の実施の形態における画像処理装置100の動作について図面を参照して説明する。
図8は、本技術の第1の実施の形態におけるエンコード負荷調整部230によるエンコードの負荷調整の処理手順例を示すフローチャートである。
なお、図8では、集積回路200は、エンコードおよびデコードを同時に行っていることとする。また、図8では、エンコーダーに割り当て可能なリソースの量(エンコーダーよりも優先的に割り当てられるリソースの量を、全体のリソースの量から除いた量)を検出する例につて説明する。
まず、リソース(バス290のメモリーバンド幅)の使用状態に関する情報が、エンコード負荷調整部230により取得される(ステップS901)。なお、本技術の第1の実施の形態では、メモリーコントローラ275から供給されたメモリーバンド幅の使用状態を示す情報が取得される。なお、ステップS901は、特許請求の範囲に記載の検出手順の一例である。
次に、エンコーダーに割り当て可能なリソースの量が、基準量以上であるか否かが、エンコード負荷調整部230により判断される(ステップS902)。そして、エンコーダーに割り当て可能なリソースの量が基準量以上であると判断された場合には(ステップS902)、基準の処理内容(動画データにおける画像のサイズ、基準の参照フレームの数、基準の探索範囲の広さ)にエンコードが設定される(ステップS903)。そして、ステップS903の後に、ステップS901に戻り、エンコードの負荷調整の処理手順が繰り返される。
一方、エンコーダーに割り当て可能なリソースの量が基準量よりも少ないと判断された場合には(ステップS902)、エンコーダーの必要リソース量が、割り当て可能なリソースの量以下になるように、エンコードが設定される(ステップS904)。そして、ステップS904の後に、ステップS901に戻り、エンコードの負荷調整の処理手順が繰り返される。なお、ステップS904およびステップS903は、特許請求の範囲に記載の制御手順の一例である。
このように、本技術の第1の実施の形態によれば、エンコード負荷調整部230によって、エンコーダー240に割り当てられるメモリーバンド幅に応じてエンコード内容を設定することができる。これにより、エンコーダー240が必要なメモリーバンド幅が、エンコーダー240に割り当て可能なメモリーバンド幅より小さくなり、エンコードをリアルタイムで行うことができる。すなわち、本技術の第1の実施の形態によれば、リソースを共有させてエンコードおよびデコードを同時に行う場合に、リソースの使用量が多い場合でもリアルタイムを維持することができる。
<2.第2の実施の形態>
本技術の第1の実施の形態では、メモリーコントローラ275からバス290のメモリーバンド幅の割り当てに関する情報をリソース(バス290のバンド幅)の使用状態に関する情報として取得する例について説明した。なお、メモリーコントローラ275からの情報以外の情報についてもリソースの使用状態に関する情報として用いることができるものがある。
そこで、本技術の第2の実施の形態では、アービタ271が受信したリクエストからリソースの使用状態を算出する例について、図9および図10を参照して説明する。また、本技術の第3および第4の実施の形態においても、リソースの使用状態に関する情報が異なる例について説明する。
[画像処理装置の機能構成例]
図9は、本技術の第2の実施の形態における画像処理装置510の機能構成の一例を模式的に示すブロック図である。
なお、画像処理装置510は、図1において示した画像処理装置100の変形例であり、リソースの使用状態に関する情報の供給元が、メモリーコントローラ275からアービタ271に代わる点のみが異なる。そこで、ここでは、アービタ271がエンコード負荷調整部230に供給するリソースの使用状態に関する情報に着目して説明し、各機能構成については、図1と同一の符号を付してここでの説明を省略する。
アービタ271では、クライアントからのリクエストに基づいてメモリー120へのアクセスが調停される。すなわち、アービタ271が許可したリクエストの頻度および内容から、各クライアントのメモリー120へのアクセスの度合い(メモリーバンド幅)を算出することができる。このように、本技術の第2の実施の形態では、リクエストに基づいて、同時にメモリーバンド幅を使用する複数の機能構成が必要とするメモリーバンド幅が算出される。アービタ271は、リクエストから算出したメモリーバンド幅の使用状態をエンコード負荷調整部230に供給する。
[メモリーバンド幅の割り当てのリクエストからの算出例]
図10は、本技術の第2の実施の形態におけるアービタ271によるメモリーバンド幅の使用状態の算出の一例を模式的に示す図が示されている。
図10には、横軸を時間軸を示す軸とし、縦軸をリソースの総量(バス290の全メモリーバンド幅)を示す軸として、リクエストからアービタ271が算出したメモリーバンド幅の使用状態の見積もりの遷移が示されている。
図10に示すように、メモリアクセスを許可したリクエストからメモリーバンド幅の使用状態を見積もることができる。そして、エンコード負荷調整部230は、この見積もりのメモリーバンド幅の空き具合から、エンコーダーに割り当てられるメモリーバンド幅を算出することができ、このメモリーバンド幅に応じた負荷となるエンコードを設定することができる。
このように、本技術の第2の実施の形態によれば、エンコーダー240に割り当てられるメモリーバンド幅をリクエストに基づいて算出し、この算出されたメモリーバンド幅に応じてエンコード内容を設定することができる。
<3.第3の実施の形態>
本技術の第3の実施の形態では、エンコーダー入力バッファにおけるバッファの空きの量からリソースの使用状態(エンコーダーに割り当てられているメモリーバンド幅)を推定し、この推定に基づいてエンコード処理の負荷を調整する例を説明する。
[画像処理装置の機能構成例]
図11は、本技術の第3の実施の形態における画像処理装置520の機能構成の一例を模式的に示すブロック図である。
なお、画像処理装置520は、図1において示した画像処理装置100の変形例であり、リソースの使用状態に関する情報の供給元が、メモリーコントローラ275からエンコーダー入力バッファ220に代わる点のみが異なる。そこで、ここでは、エンコーダー入力バッファ220が出力するバッファの空きの量に関する情報がリソースの使用状態に関する情報としてエンコード負荷調整部230により用いられる点に着目して説明し、各機能構成については、図1と同一の符号を付してここでの説明を省略する。
エンコーダー入力バッファ220では、エンコードがリアルタイムに行われている場合には、所定数の画像が保持される。しかしながら、エンコーダー240に割り当てられるメモリーバンド幅が不足してエンコードに遅延が生じると、エンコーダー入力バッファ220に保持される画像の数が増えて、エンコーダー入力バッファ220の空き容量が少なくなる。エンコード負荷調整部230は、エンコーダー入力バッファ220の空き容量の減少を検出すると、エンコーダー240に割り当てられているメモリーバンド幅が不足していると判断する。そして、エンコード負荷調整部230は、エンコードの負荷が軽くなるようにエンコード内容を設定(画像サイズの縮小、参照フレーム数の減少、探索範囲の縮小)し、エンコードによるメモリーバンド幅の必要量を少なくする。
このように、本技術の第3の実施の形態によれば、エンコーダー240に割り当てられるメモリーバンド幅をエンコーダー入力バッファ220の空き容量に基づいて算出し、この算出されたメモリーバンド幅に応じてエンコード内容を設定することができる。
<4.第4の実施の形態>
本技術の第4の実施の形態では、エンコーダーからの圧縮画像(エンコード処理後の画像)の出力速度からリソースの使用状態(エンコーダーに割り当てられているメモリーバンド幅)を推定し、この推定に基づいてエンコード内容を調整する例を説明する。
[画像処理装置の機能構成例]
図12は、本技術の第4の実施の形態における画像処理装置530の機能構成の一例を模式的に示すブロック図である。
なお、画像処理装置530は、図1において示した画像処理装置100の変形例であり、リソースの使用状態に関する情報の供給元が、メモリーコントローラ275からエンコーダー240に代わる点のみが異なる。そこで、ここでは、エンコーダー240が出力する圧縮画像の生成速度がリソースの使用状態に関する情報としてエンコード負荷調整部230により用いられる点に着目して説明し、各機能構成については、図1と同一の符号を付してここでの説明を省略する。
エンコーダー240では、エンコードがリアルタイムに行われている場合には、略所定の間隔でエンコードされた画像が出力される。しかしながら、エンコーダー240に割り当てられるメモリーバンド幅が不足してエンコードに遅延が生じると、圧縮画像の出力も遅延が生じるため、画像の出力間隔が長くなる。エンコード負荷調整部230は、画像の出力間隔が長くなったことを検出すると、エンコーダー240に割り当てられているメモリーバンド幅が不足していると判断する。そして、エンコード負荷調整部230は、エンコードの負荷が軽くなるようにエンコード内容を設定し、エンコードによるメモリーバンド幅の必要量を少なくする。
このように、本技術の第4の実施の形態によれば、エンコーダー240に割り当てられるメモリーバンド幅をエンコーダー240の処理速度に基づいて算出し、この算出されたメモリーバンド幅に応じてエンコード内容を設定することができる。
<5.第5の実施の形態>
本技術の第1乃至第4の実施の形態では、エンコーダーとデコーダーとが1つのチップに集積されたSoCを想定し、メモリーバンド幅がリソースであることを想定して説明した。エンコーダーとデコーダーとが共有するリソースに関しては、メモリーバンド幅以外にも種々の例が考えられる。
そこで、本技術の第5の実施の形態では、ソフトウェアエンコードおよびソフトウェアデコードを同時にリアルタイムで行う場合において、CPU(Central Processing Unit)のパフォーマンスがリソースとなる例について、図13および図14を参照して説明する。
[情報処理装置の機能構成例]
図13は、本技術の第5の実施の形態における情報処理装置600の機能構成の一例を模式的に示すブロック図である。
情報処理装置600は、ソフトウェアエンコードおよびソフトウェアデコードにより動画データの録画および再生を同時に行えるものであり、ベースバンド入力画像スケーラー610と、圧縮ストリーム出力部620と、CPU630と、メモリー640と、記録部650とを備える。なお、情報処理装置600は、図1において示した画像処理装置100の機能の多くをCPUを用いて実現することのみが本技術の第1の実施の形態と異なるため、ここでの詳細な説明を省略する。
CPU630は、情報処理装置600の全体の制御を行うものである。また、CPU630は、記録部650に記録されたプログラムに従って各種の処理を実行し、情報処理装置600の各機能を実現させる。例えば、CPU630は、ソフトウェアエンコードおよびソフトウェアデコードのプログラムに従い、動画のエンコードおよびデコードを行う。また、CPU630は、エンコードの負荷を調整するためのプログラムに従ってCPU630のパフォーマンスを監視し、パフォーマンスが不足する場合には、エンコードの負荷を低減させる。なお、CPU630は、特許請求の範囲に記載の演算器の一例である。
ベースバンド入力画像スケーラー610は、図1の入力画像スケーラー210に対応するものである。すなわち、CPU630のパフォーマンスが不足する場合において、エンコード対象の画像のサイズ(解像度)を縮小する。
圧縮ストリーム出力部620は、図1の圧縮ストリーム出力部260に対応するものである。すなわち、エンコードされた画像から圧縮ストリームを生成する。
メモリー640は、情報処理装置600において行われる各処理に必要なデータ(例えば、プログラムや画像データなど)が一時的に保持されるものであり、図1のメモリー120およびエンコーダー入力バッファ220に対応する。なお、図13では、図1のエンコーダー入力バッファ220に対応する機能をメモリー640が備えることが、メモリー640を示す矩形の中に付した破線の領域(エンコーダー入力バッファエリア641)により示されている。
記録部650は、情報処理装置600において行われる各処理に必要なデータを記録するものである。例えば、記録部650は、各種のプログラム、エンコード対象の動画データ、デコード対象の動画データなどを保持する。
[情報処理装置において実行されるソフトウェアの基本概念例]
図14は、本技術の第5の実施の形態におけるソフトウェアの基本概念を模式的に示す図である。
図14では、情報処理装置600において処理されるソフトウェアの階層構造が示されている。
最も下位の階層であるハードウェア671は、情報処理装置600を構成する物理的な構成要素を示す。
ハードウェア671の1つ上の階層であるオペレーティングシステム672は、情報処理装置600において動作するアプリケーションソフトを制御するものである。また、オペレーティングシステム672は、ハードウェアの機能を管理し、アプリケーションソフトの要求に応じてハードウェアを制御する。
オペレーティングシステム672の1つ上の階層はアプリケーションソフトの階層であり、図14では、情報処理装置600において動作するアプリケーションソフトとして、エンコード処理673と、負荷計測674と、スケーラー制御675とが示されている。なお、ここで示したアプリケーションソフトは、情報処理装置600において動作するアプリケーションソフトの一部を示したものである。他にも、参照フレーム数制御、探索範囲制御、デコード処理、表示画像生成処理、オーディオ生成処理などの様々なアプリケーションソフトが情報処理装置600において動作する。
このように、本技術の第5の実施の形態によれば、ソフトウェアエンコードおよびソフトウェアデコードを行う装置においても、エンコードに割り当て可能なリソース量に応じたエンコード内容を設定することができる。すなわち、本技術の第5の実施の形態によれば、リソースを共有させてエンコードおよびデコードを同時に行う場合に、リソースの使用量が多い場合でもリアルタイムを維持することができる。
このように、本技術の実施の形態によれば、リソースを共有させてエンコードおよびデコードを同時に行う場合に、リソースの使用量が多い場合でもリアルタイムを維持することができる。
なお、本技術の実施の形態では、メモリーバンド幅およびCPUパフォーマンスがリソースの例について説明したが、これに限定されるものではない。例えば、メモリーにおける空きの量をリソースとする場合も考えられる。また、組み合わせ(複数)て複数のリソースを管理し、不足に応じてエンコード内容を調整することも考えられる。
また、本技術の実施の形態では、基準のエンコード内容(例えば、エンコーダのみで動作する時のエンコードの設定内容)があり、リソースが不足する場合に、エンコーダーが必要とするリソースが減少するようにエンコード内容を調整する例について説明したが、これに限定されるものではない。例えば、基準のエンコード内容を行う際に必要なリソース量よりもエンコードに割り当て可能なリソース量が多い場合に、参照フレーム数を基準の数よりも多くしたり、動きベクトルの探索範囲を基準の広さよりも広くしたりして、基準のエンコード内容よりも処理を重くする場合も考えられる。これにより、基準のエンコードよりも圧縮率を上昇させることができる可能性が高まる。
なお、デコーダーが単独で動作するために必要な最大のメモリーバンド幅と、エンコーダーが単独で動作するために必要な最大のメモリーバンド幅とを足し合わせてバンド幅が設計される他の画像処理装置では、最大を想定する際に設定したエンコードの処理よりも処理を重くすることは難しい。これに対し、本技術の実施の形態では、エンコードに割り当て可能なリソース量が多い場合にエンコード処理を重くすることが容易に行うことができる。
また、本技術の実施の形態では、画像のエンコード処理を軽くする例について説明したが、これに限定されるものではなく、オーディオのエンコードを軽くすることも考えられる。例えば、サンプリングレートを落として、必要なリソース量を軽減する場合などが考えられる。
なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
また、上述の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、ハードディスク、CD(Compact Disc)、MD(MiniDisc)、DVD(Digital Versatile Disk)、メモリカード、ブルーレイディスク(Blu-ray Disc(登録商標))等を用いることができる。
なお、本技術は以下のような構成もとることができる。
(1) エンコーダーおよびデコーダーが共有するリソースの同時使用により生じる状態であって、前記リソースの不足により前記エンコーダーよりも前記デコーダーへ優先的に前記リソースが割り当てられる前記リソースに関する使用状態を検出する検出部と、
前記エンコーダーへの前記リソースの割り当てに応じたエンコードの設定を前記検出された使用状態に基づいて決定し、当該決定した設定に応じたエンコードを前記エンコーダーに実行させる制御を行う制御部と
を具備する画像処理装置。
(2) 前記エンコードの設定は、前記エンコーダーに供給されるエンコード対象の動画ファイルにおける画像のサイズの設定であり、
前記制御部は、前記設定に応じてサイズが変更された画像のエンコードを前記エンコーダーに実行させる制御を行う
前記(1)に記載の画像処理装置。
(3) 前記制御部は、前記検出された使用状態における前記エンコーダーへ割り当て可能な前記リソースが基準量より少ない場合には、前記画像のサイズを前記動画ファイルにおけるサイズよりも小さくする前記(2)に記載の画像処理装置。
(4) 前記エンコードの設定は、前記エンコーダーにおけるインター予測での参照フレームの数の設定であり、
前記制御部は、前記設定に応じて参照フレームの数が変更されたエンコードを前記エンコーダーに実行させる制御を行う
前記(1)に記載の画像処理装置。
(5) 前記制御部は、前記検出された使用状態における前記エンコーダーへ割り当て可能な前記リソースが基準量より少ない場合には、前記参照フレームの数を基準の数よりも少なくする前記(4)に記載の画像処理装置。
(6) 前記制御部は、前記検出された使用状態における前記エンコーダーへ割り当て可能な前記リソースが基準量より多い場合には、前記参照フレームの数を基準の数よりも多くする前記(4)に記載の画像処理装置。
(7) 前記エンコードの設定は、前記エンコーダーにおけるインター予測での動きベクトルの探索範囲の大きさの設定であり、
前記制御部は、前記設定に応じて探索範囲の大きさが変更されたエンコードを前記エンコーダーに実行させる制御を行う
前記(1)に記載の画像処理装置。
(8) 前記制御部は、前記検出された使用状態における前記エンコーダーへ割り当て可能な前記リソースが基準量より少ない場合には、前記探索範囲の大きさを基準の大きさよりも狭くする前記(7)に記載の画像処理装置。
(9) 前記制御部は、前記検出された使用状態における前記エンコーダーへ割り当て可能な前記リソースが基準量より多い場合には、前記探索範囲の大きさを基準の大きさよりも広くする前記(7)に記載の画像処理装置。
(10) 前記リソースは、前記エンコーダーおよび前記デコーダーが共有するメモリへアクセスするためのバスのバンド幅である前記(1)から(9)のいずれかに記載の画像処理装置。
(11) 前記検出部は、前記メモリのコントローラが検出する前記バスのバンド幅の割り当てに関する情報と、前記バスのアービタにおけるメモリアクセスのリクエストの処理状況に関する情報と、前記エンコーダーの入力バッファにおける空き容量に関する情報と、前記エンコーダーの処理速度に関する情報とのうちの少なくとも1つから前記使用状態を検出する前記(10)に記載の画像処理装置。
(12) 前記エンコーダーは、ソフトウェアエンコードを行うアプリケーションソフトにより構成される機能であり、
前記デコーダーは、ソフトウェアデコードを行うアプリケーションソフトにより構成される機能であり、
前記リソースは、前記アプリケーションソフトを同時に実行する演算器のパフォーマンスである前記(1)から(9)のいずれかに記載の画像処理装置。
(13) エンコーダーおよびデコーダーが共有するリソースの同時使用により生じる状態であって、前記リソースの不足により前記エンコーダーよりも前記デコーダーへ優先的に前記リソースが割り当てられる前記リソースに関する使用状態を検出する検出手順と、
前記エンコーダーへの前記リソースの割り当てに応じたエンコードの設定を前記検出された使用状態に基づいて決定し、当該決定した設定に応じたエンコードを前記エンコーダーに実行させる制御を行う制御手順と
を具備する画像処理方法。
(14) エンコーダーおよびデコーダーが共有するリソースの同時使用により生じる状態であって、前記リソースの不足により前記エンコーダーよりも前記デコーダーへ優先的に前記リソースが割り当てられる前記リソースに関する使用状態を検出する検出手順と、
前記エンコーダーへの前記リソースの割り当てに応じたエンコードの設定を前記検出された使用状態に基づいて決定し、当該決定した設定に応じたエンコードを前記エンコーダーに実行させる制御を行う制御手順と
をコンピュータに実行させるプログラム。