(57)【要約】【課題】リソースを共有させてエンコードおよびデコードを同時に行う場合に、リソースの使用量が多い場合でもリアルタイムを維持する。【解決手段】検出部は、エンコーダーおよびデコーダーが共有するリソースの同時使用により生じる状態であって、リソースの不足によりエンコーダーよりもデコーダーへ優先的にリソースが割り当てられるリソースに関する使用状態を検出する。制御部は、エンコーダーへのリソースの割り当てに応じたエンコードの設定を検出された使用状態に基づいて決定し、当該決定した設定に応じたエンコードをエンコーダーに実行させる。【選択図】図１
2014064161.tif 000002
【特許請求の範囲】
【請求項１】
エンコーダーおよびデコーダーが共有するリソースの同時使用により生じる状態であって、前記リソースの不足により前記エンコーダーよりも前記デコーダーへ優先的に前記リソースが割り当てられる前記リソースに関する使用状態を検出する検出部と、
前記エンコーダーへの前記リソースの割り当てに応じたエンコードの設定を前記検出された使用状態に基づいて決定し、当該決定した設定に応じたエンコードを前記エンコーダーに実行させる制御を行う制御部と
を具備する画像処理装置。
【請求項２】
前記エンコードの設定は、前記エンコーダーに供給されるエンコード対象の動画ファイルにおける画像のサイズの設定であり、
前記制御部は、前記設定に応じてサイズが変更された画像のエンコードを前記エンコーダーに実行させる制御を行う
請求項１記載の画像処理装置。
【請求項３】
前記制御部は、前記検出された使用状態における前記エンコーダーへ割り当て可能な前記リソースが基準量より少ない場合には、前記画像のサイズを前記動画ファイルにおけるサイズよりも小さくする請求項２記載の画像処理装置。
【請求項４】
前記エンコードの設定は、前記エンコーダーにおけるインター予測での参照フレームの数の設定であり、
前記制御部は、前記設定に応じて参照フレームの数が変更されたエンコードを前記エンコーダーに実行させる制御を行う
請求項１記載の画像処理装置。
【請求項５】
前記制御部は、前記検出された使用状態における前記エンコーダーへ割り当て可能な前記リソースが基準量より少ない場合には、前記参照フレームの数を基準の数よりも少なくする請求項４記載の画像処理装置。
【請求項６】
前記制御部は、前記検出された使用状態における前記エンコーダーへ割り当て可能な前記リソースが基準量より多い場合には、前記参照フレームの数を基準の数よりも多くする請求項４記載の画像処理装置。
【請求項７】
前記エンコードの設定は、前記エンコーダーにおけるインター予測での動きベクトルの探索範囲の大きさの設定であり、
前記制御部は、前記設定に応じて探索範囲の大きさが変更されたエンコードを前記エンコーダーに実行させる制御を行う
請求項１記載の画像処理装置。
【請求項８】
前記制御部は、前記検出された使用状態における前記エンコーダーへ割り当て可能な前記リソースが基準量より少ない場合には、前記探索範囲の大きさを基準の大きさよりも狭くする請求項７記載の画像処理装置。
【請求項９】
前記制御部は、前記検出された使用状態における前記エンコーダーへ割り当て可能な前記リソースが基準量より多い場合には、前記探索範囲の大きさを基準の大きさよりも広くする請求項７記載の画像処理装置。
【請求項１０】
前記リソースは、前記エンコーダーおよび前記デコーダーが共有するメモリへアクセスするためのバスのバンド幅である請求項１記載の画像処理装置。
【請求項１１】
前記検出部は、前記メモリのコントローラが検出する前記バスのバンド幅の割り当てに関する情報と、前記バスのアービタにおけるメモリアクセスのリクエストの処理状況に関する情報と、前記エンコーダーの入力バッファにおける空き容量に関する情報と、前記エンコーダーの処理速度に関する情報とのうちの少なくとも１つから前記使用状態を検出する請求項１０記載の画像処理装置。
【請求項１２】
前記エンコーダーは、ソフトウェアエンコードを行うアプリケーションソフトにより構成される機能であり、
前記デコーダーは、ソフトウェアデコードを行うアプリケーションソフトにより構成される機能であり、
前記リソースは、前記アプリケーションソフトを同時に実行する演算器のパフォーマンスである請求項１記載の画像処理装置。
【請求項１３】
エンコーダーおよびデコーダーが共有するリソースの同時使用により生じる状態であって、前記リソースの不足により前記エンコーダーよりも前記デコーダーへ優先的に前記リソースが割り当てられる前記リソースに関する使用状態を検出する検出手順と、
前記エンコーダーへの前記リソースの割り当てに応じたエンコードの設定を前記検出された使用状態に基づいて決定し、当該決定した設定に応じたエンコードを前記エンコーダーに実行させる制御を行う制御手順と
を具備する画像処理方法。
【請求項１４】
エンコーダーおよびデコーダーが共有するリソースの同時使用により生じる状態であって、前記リソースの不足により前記エンコーダーよりも前記デコーダーへ優先的に前記リソースが割り当てられる前記リソースに関する使用状態を検出する検出手順と、
前記エンコーダーへの前記リソースの割り当てに応じたエンコードの設定を前記検出された使用状態に基づいて決定し、当該決定した設定に応じたエンコードを前記エンコーダーに実行させる制御を行う制御手順と
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、画像処理装置に関する。詳しくは、動画を扱う画像処理装置およびその画像処理方法ならびに当該方法をコンピュータに実行させるプログラムに関する。
【背景技術】
【０００２】
近年、動画コンテンツ（動画データ）を処理する電子機器が発展している。この電子機器には、動画コンテンツをエンコードして記録媒体に記録する機能と、動画コンテンツをデコードして画面に表示する機能とが両方ともに設けられたものがある（例えば、特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−４８７７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記の従来技術では、動画コンテンツの記録および再生を行うことができる。なお、エンコードおよびデコードを同時にリアルタイムで行う際に、処理能力不足が発生すると、記録しているデータや、表示している映像に不具合が発生する（例えば、ブラックアウトする）。このため、処理能力不足の発生を防止することが重要である。
【０００５】
ここで、エンコードを行う機能（エンコーダー）と、デコードを行う機能（デコーダー）とが１つのリソース（例えば、メモリーバス）を共有する場合を想定する。この場合には、どちらの処理に対しても処理能力不足が発生しないように、エンコーダー単独で動作する際に必要とする最大のリソース量（メモリーバスのメモリーバンド幅）と、デコーダー単独で動作する際に必要とする最大のリソース量（メモリーバンド幅）とを足し合わせてリソース量（例えば、メモリーバンド幅）が設計されることが多い。
【０００６】
このため、両方の処理を同時にリアルタイムで行う際に、両方の処理がそれぞれ平均的なメモリーバンド幅の使用率である場合には、リソースにおけるマージン（空きの量）は、エンコーダー単独で設計する際のマージンと、デコーダー単独で設計する際のマージンとを足し合わせた量となる。すなわち、マージンはかなり大きな量となる。リソース量のマージンは、無駄な消費電力、無駄な製造コストおよび無駄な設計コストになるおそれがあるため、マージンはできる限り少ない方が望ましい。
【０００７】
また、マージンを少なくしてバッファを設けることも考えられるが、処理能力不足が長時間続く場合にはバッファが枯渇して不具合が発生するおそれがある。
【０００８】
このように、リアルタイムで行う必要があるエンコードおよびデコードで１つのリソースを共有させる場合には、リソースの使用量が多い場合においてもリアルタイムを維持することが重要になる。
【０００９】
本技術はこのような状況に鑑みて生み出されたものであり、リソースを共有させてエンコードおよびデコードを同時に行う場合に、リソースの使用量が多い場合でもリアルタイムを維持することを目的とする。
【課題を解決するための手段】
【００１０】
本技術は、上述の問題点を解消するためになされたものであり、その第１の側面は、エンコーダーおよびデコーダーが共有するリソースの同時使用により生じる状態であって、上記リソースの不足により上記エンコーダーよりも上記デコーダーへ優先的に上記リソースが割り当てられる上記リソースに関する使用状態を検出する検出部と、上記エンコーダーへの上記リソースの割り当てに応じたエンコードの設定を上記検出された使用状態に基づいて決定し、当該決定した設定に応じたエンコードを上記エンコーダーに実行させる制御を行う制御部とを具備する画像処理装置およびその画像処理方法ならびに当該方法をコンピュータに実行させるプログラムにである。これにより、エンコーダーおよびデコーダーが共有するリソースが不足した場合に、デコーダーへ優先的にリソースが割り当てられ、エンコーダーへ割り当てられるリソースの大きさに応じてエンコードの設定が決定され、決定された設定に応じたエンコードが行われるという作用をもたらす。
【００１１】
また、この第１の側面において、上記エンコードの設定は、上記エンコーダーに供給されるエンコード対象の動画ファイルにおける画像のサイズの設定であり、上記制御部は、上記設定に応じてサイズが変更された画像のエンコードを上記エンコーダーに実行させる制御を行うようにしてもよい。これにより、エンコーダーへ割り当てられるリソースの大きさに応じてエンコード対象の画像のサイズが変更されるという作用をもたらす。
【００１２】
また、この第１の側面において、上記制御部は、上記検出された使用状態における上記エンコーダーへ割り当て可能な上記リソースが基準量より少ない場合には、上記画像のサイズを上記動画ファイルにおけるサイズよりも小さくするようにしてもよい。これにより、エンコーダーへ割り当てられるリソースが基準量より少ない場合には、画像のサイズが動画ファイルにおけるサイズよりも小さくされるという作用をもたらす。
【００１３】
また、この第１の側面において、上記エンコードの設定は、上記エンコーダーにおけるインター予測での参照フレームの数の設定であり、上記制御部は、上記設定に応じて参照フレームの数が変更されたエンコードを上記エンコーダーに実行させる制御を行うようにしてもよい。これにより、エンコーダーへ割り当てられるリソースの大きさに応じてインター予測での参照フレームの数が変更されるという作用をもたらす。
【００１４】
また、この第１の側面において、上記制御部は、上記検出された使用状態における上記エンコーダーへ割り当て可能な上記リソースが基準量より少ない場合には、上記参照フレームの数を基準の数よりも少なくするようにしてもよい。これにより、エンコーダーへ割り当てられるリソースが基準量より少ない場合には、参照フレームの数が基準の数よりも少なくされるという作用をもたらす。
【００１５】
また、この第１の側面において、上記制御部は、上記検出された使用状態における上記エンコーダーへ割り当て可能な上記リソースが基準量より多い場合には、上記参照フレームの数を基準の数よりも多くするようにしてもよい。これにより、エンコーダーへ割り当てられるリソースが基準量より多い場合には、参照フレームの数が基準の数よりも多くされるという作用をもたらす。
【００１６】
また、この第１の側面において、上記エンコードの設定は、上記エンコーダーにおけるインター予測での動きベクトルの探索範囲の大きさの設定であり、上記制御部は、上記設定に応じて探索範囲の大きさが変更されたエンコードを上記エンコーダーに実行させる制御を行うようにしてもよい。これにより、エンコーダーへ割り当てられるリソースの大きさに応じてインター予測での動きベクトルの探索範囲の大きさが変更されるという作用をもたらす。
【００１７】
また、この第１の側面において、上記制御部は、上記検出された使用状態における上記エンコーダーへ割り当て可能な上記リソースが基準量より少ない場合には、上記探索範囲の大きさを基準の大きさよりも狭くするようにしてもよい。これにより、エンコーダーへ割り当てられるリソースが基準量より少ない場合には、探索範囲の大きさが基準の大きさよりも狭くされるという作用をもたらす。
【００１８】
また、この第１の側面において、上記制御部は、上記検出された使用状態における上記エンコーダーへ割り当て可能な上記リソースが基準量より多い場合には、上記探索範囲の大きさを基準の大きさよりも広くするようにしてもよい。これにより、エンコーダーへ割り当てられるリソースが基準量より多い場合には、探索範囲の大きさが基準の大きさよりも広くされるという作用をもたらす。
【００１９】
また、この第１の側面において、上記リソースは、上記エンコーダーおよび上記デコーダーが共有するメモリへアクセスするためのバスのバンド幅であるようにしてもよい。これにより、バスのバンド幅が不足した場合に、デコーダーへ優先的にバンド幅が割り当てられ、エンコーダーへ割り当てられるバンド幅の大きさに応じてエンコードの設定が決定され、決定された設定に応じたエンコードが行われるという作用をもたらす。
【００２０】
また、この第１の側面において、上記検出部は、上記メモリのコントローラが検出する上記バスのバンド幅の割り当てに関する情報と、上記バスのアービタにおけるメモリアクセスのリクエストの処理状況に関する情報と、上記エンコーダーの入力バッファにおける空き容量に関する情報と、上記エンコーダーの処理速度に関する情報とのうちの少なくとも１つから上記使用状態を検出するようにしてもよい。これにより、メモリのコントローラが検出するバスのバンド幅の割り当てに関する情報と、バスのアービタにおけるメモリアクセスのリクエストの処理状況に関する情報と、エンコーダーの入力バッファにおける空き容量に関する情報と、エンコーダーの処理速度に関する情報とのうちの少なくとも１つからリソースの使用状態が検出されるという作用をもたらす。
【００２１】
また、この第１の側面において、上記エンコーダーは、ソフトウェアエンコードを行うアプリケーションソフトにより構成される機能であり、上記デコーダーは、ソフトウェアデコードを行うアプリケーションソフトにより構成される機能であり、上記リソースは、上記アプリケーションソフトを同時に実行する演算器のパフォーマンスであるようにしてもよい。これにより、演算器のパフォーマンスが不足した場合に、デコーダーへ優先的にパフォーマンスが割り当てられ、エンコーダーへ割り当てられるパフォーマンスの大きさに応じてエンコードの設定が決定され、決定された設定に応じたエンコードが行われるという作用をもたらす。
【発明の効果】
【００２２】
本技術によれば、リソースを共有させてエンコードおよびデコードを同時に行う場合に、リソースの使用量が多い場合でもリアルタイムを維持することができるという優れた効果を奏し得る。
【図面の簡単な説明】
【００２３】
【図１】本技術の第１の実施の形態における画像処理装置１００の機能構成の一例を模式的に示すブロック図である。
【図２】本技術の第１の実施の形態におけるエンコーダー２４０の機能構成の一例を模式的に示すブロック図である。
【図３】本技術の第１の実施の形態におけるアービタ２７１におけるリクエストの優先度の一例を模式的に示す表である。
【図４】本技術の第１の実施の形態の入力画像スケーラー２１０における画像サイズの変更を模式的に示す図である。
【図５】本技術の第１の実施の形態のエンコーダー２４０における動きベクトル検出の変更を模式的に示す図である。
【図６】本技術の第１の実施の形態におけるバス２９０の使用状態の遷移の一例を模式的に示すグラフである。
【図７】本技術の第１の実施の形態における画像処理装置１００の効果を模式的に示す図である。
【図８】本技術の第１の実施の形態におけるエンコード負荷調整部２３０によるエンコードの負荷調整の処理手順例を示すフローチャートである。
【図９】本技術の第２の実施の形態における画像処理装置５１０の機能構成の一例を模式的に示すブロック図である。
【図１０】本技術の第２の実施の形態におけるアービタ２７１によるメモリーバンド幅の使用状態の算出の一例を模式的に示す図が示されている。
【図１１】本技術の第３の実施の形態における画像処理装置５２０の機能構成の一例を模式的に示すブロック図である。
【図１２】本技術の第４の実施の形態における画像処理装置５３０の機能構成の一例を模式的に示すブロック図である。
【図１３】本技術の第５の実施の形態における情報処理装置６００の機能構成の一例を模式的に示すブロック図である。
【図１４】本技術の第５の実施の形態におけるソフトウェアの基本概念を模式的に示す図である。
【発明を実施するための形態】
【００２４】
以下、本技術を実施するための形態（以下、実施の形態と称する）について説明する。説明は以下の順序により行う。
１．第１の実施の形態（画像処理制御：メモリーコントローラから供給される情報に基づいてエンコードの負荷を調整する例）
２．第２の実施の形態（画像処理制御：アービタから供給される情報に基づいてエンコードの負荷を調整する例）
３．第３の実施の形態（画像処理制御：エンコーダー入力バッファから供給される情報に基づいてエンコードの負荷を調整する例）
４．第４の実施の形態（画像処理制御：エンコーダーから供給される情報に基づいてエンコードの負荷を調整する例）
５．第５の実施の形態（ＣＰＵ制御：ＣＰＵのパフォーマンスに基づいてエンコードの負荷を調整する例）
【００２５】
＜１．第１の実施の形態＞
［画像処理装置の機能構成例］
図１は、本技術の第１の実施の形態における画像処理装置１００の機能構成の一例を模式的に示すブロック図である。
【００２６】
この画像処理装置１００は、動画データ（例えば、テレビジョン放送などの動画コンテンツ）の録画および再生を同時に行えるものである。また、画像処理装置１００は、動画データの録画により記録されるデータ（圧縮ストリーム）を生成するのに必要な機能と、動画データの再生により表示される画像（表示画像）を生成するのに必要な機能とが１つのチップに集積された画像処理用のＳｏＣ（System-on-a-Chip）を備えている。なお、図１では、このＳｏＣは、集積回路２００として表されている。
【００２７】
画像処理装置１００は、集積回路２００と、メモリー１２０と、画像表示部１５１と、音声出力部１５２とを備える。
【００２８】
集積回路２００は、１つのチップに様々な機能の回路を集積したＳｏＣである。なお、集積回路２００の内部の機能構成として、図１では、動画データの録画ににかかわる機能構成と、動画データの再生にかかわる機能構成とが示されている。なお、集積回路２００では、集積回路２００の外部に設けられたメモリー１２０と、このメモリー１２０とデータのやり取りをするためのバス２９０が、集積回路２００の各構成が使用する共通のリソースとされる。
【００２９】
集積回路２００は、機能構成として、入力画像スケーラー２１０と、エンコーダー入力バッファ２２０と、エンコード負荷調整部２３０と、エンコーダー２４０と、圧縮ストリーム出力部２６０とを備える。また、集積回路２００は、デコーダー２８１と、グラフィック処理部２８２と、表示処理部２８３と、音声処理部２８４と、アービタ２７１と、メモリーコントローラ２７５と、バス２９０とを備える。
【００３０】
アービタ２７１は、メモリー１２０へのアクセス（データの書き込みまたは読み出し）を調停（アービトレーション）するものである。このアービタ２７１は、クライアント（エンコーダー２４０、デコーダー２８１、グラフィック処理部２８２、表示処理部２８３、音声処理部２８４）がメモリー１２０へアクセスしたい場合には、そのクライアントが発行したアクセス要求（リクエスト信号）を、信号線２７３を介して受信する。
【００３１】
そして、アービタ２７１は、受信したリクエストのうちからメモリー１２０へのアクセスを許可するリクエストを決定（調停）し、アクセスの許可信号（グラント信号）を、そのリクエストを発行したクライアントへ信号線２７２を介して供給する。また、アービタ２７１は、メモリー１２０へのアクセスを許可したリクエストをメモリーコントローラ２７５に供給し、そのリクエストによるメモリー１２０へのアクセスを実行させる。
【００３２】
なお、アービタ２７１は、バス２９０の帯域幅（メモリーバンド幅）に余裕がある場合には、録画の処理に関するリクエストと、再生の処理に関するリクエストとを、両方ともにリアルタイム処理ができるように調停する。すなわち、録画の処理に関するクライアントが必要とするメモリーバンド幅（ＧＢ／秒）の速度が出るようにリクエストを処理するとともに、再生の処理に関するクライアントが必要とするメモリーバンド幅の速度も出るようにリクエストを処理する。
【００３３】
また、メモリーバンド幅が不足する場合には、アービタ２７１は、録画の処理に関するリクエストの優先度を下げて、再生の処理がリアルタイム処理されるように調停する。すなわち、再生の処理に関するクライアントが必要とするメモリーバンド幅の速度が出るようにリクエストが処理されるとともに、録画の処理に関するクライアントのリクエストは、許可が遅延される。なお、リクエストに関しては、図３を用いて説明するため、ここでの詳細な説明を省略する。
【００３４】
メモリーコントローラ２７５は、メモリー１２０へのアクセスを制御するものである。このメモリーコントローラ２７５は、アービタ２７１から供給される許可したリクエストに関する情報に基づいてメモリー１２０におけるデータの読み書きを制御し、、そのリクエストを出力したクライアントがバス２９０を介して行うメモリー１２０への読み書きを制御する。
【００３５】
バス２９０は、集積回路２００において、メモリー１２０へのアクセスを行う各クライアントおよびメモリーコントローラ２７５の間を相互に接続するバスである。バス２９０の帯域幅（メモリーバンド幅）には、バス２９０に接続されている各構成が単独で動作するために必要となる帯域幅（例えば、各構成が必要とする最大の帯域幅）を加算した幅よりも小さい帯域幅が設定される。これにより、図１で示す本技術の第１の実施の形態では、エンコードおよびデコードが両方ともに通常の動作で最大の帯域幅を必要とすると、メモリーバンド幅が不足する。
【００３６】
エンコード負荷調整部２３０は、エンコードのリアルタイム処理が破綻しないように、エンコード内容を調整するものである。すなわち、エンコード負荷調整部２３０は、バス２９０の使用状態を監視して、エンコーダー２４０に対して割り当て可能なメモリーバンド幅を検出し、この検出したメモリーバンド幅でエンコードがリアルタイム処理されるようにエンコード内容を調整する。この調整により、エンコーダー２４０におけるエンコードによるメモリーバンド幅への負荷が軽減され、エンコードによるメモリーバンド幅の必要量が減少する。
【００３７】
例えば、エンコード負荷調整部２３０は、エンコーダー２４０に割り当て可能なメモリーバンド幅（リソース）が、エンコードをリアルタイムで行うために必要なメモリーバンド幅（基準量）よりも少ない場合には、メモリーバンド幅（リソース）が不足していると判断する。そして、エンコード負荷調整部２３０は、メモリーバンド幅への負荷が軽減されるようにエンコードの設定を変更する。ここで、基準量とは、例えば、目的の品質（圧縮率）の圧縮ストリームを生成する際に、一時的に遅延が発生する可能性はあるもののこの遅延は軽い処理の時に回復可能であり、動画のエンコード全体では遅延が発生せずにリアルタイムでエンコードが行われるメモリーバンド幅の量である。なお、この基準量は、基準とする圧縮率、処理対象とする動画のサイズ、バンド幅、回路設計などに応じて適切な値が設定される。
【００３８】
また、エンコード負荷調整部２３０は、エンコード内容を調整してエンコードによるメモリーバンド幅への負荷を軽くした後に、エンコーダー２４０に対して割り当て可能なメモリーバンド幅が増えた場合には、軽減した負荷の分を元に戻したり、軽減の度合いを小さくしたりする。すなわち、エンコード負荷調整部２３０は、エンコーダー２４０に対して割り当て可能なメモリーバンド幅に応じてエンコード内容を調整（設定）する。
【００３９】
なお、必要なメモリーバンド幅を軽減させるエンコード内容の変更として、エンコード負荷調整部２３０は、入力画像スケーラー２１０およびエンコーダー２４０のうちの少なくとも一方における処理内容を変更する。なお、どちらの処理内容を変更するか、両方ともに変更するか、変更の度合いなどは、メモリーバンド幅の軽減の度合いに応じて決定される。また、入力画像スケーラー２１０における処理内容の変更については図４を参照して説明し、エンコーダー２４０における処理内容の変更については図５を参照して説明するため、ここでの説明を省略する。
【００４０】
また、エンコード負荷調整部２３０によるバス２９０の使用状態（メモリーバンド幅の使用状態）の検出は、種々の方法が考えられる。本技術の第１の実施の形態では、メモリーコントローラ２７５からバス２９０の使用状態を取得する例について説明する。また、アービタ２７１におけるリクエストの処理状態からバス２９０の使用状態を検出する例について、本技術の第２の実施の形態として、図９および図１０を参照して説明する。また、エンコーダー入力バッファ２２０におけるバッファの空き容量からエンコーダー２４０へのメモリーバンド幅の割り当てがリアルタイム処理に十分か否かを検出してバス２９０の使用状態として用いる例について、本技術の第３の実施の形態として、図１１を参照して説明する。また、エンコーダー２４０における１フレーム当たりの処理速度からエンコーダー２４０へのメモリーバンド幅の割り当てがリアルタイム処理に十分か否かを検出してバス２９０の使用状態として用いる例については、本技術の第４の実施の形態として、図１２を参照して説明する。なお、エンコード負荷調整部２３０は、特許請求の範囲に記載の検出部および制御部の一例である。
【００４１】
入力画像スケーラー２１０は、集積回路２００の外部から信号線２１９を介して供給されるエンコード対象の動画コンテンツ（動画データ）を受け取り、エンコード負荷調整部２３０による制御に基づいて、画像（フレーム）のサイズ（解像度）を変更するものである。なお、エンコード対象の動画データとは、例えば、チューナー（図示せず）が出力したベースバンド信号が考えられる。また、ＤＶＤ（Digital Versatile Disk）等のディスクやメモリカード等の半導体メモリなどの記録媒体に記録されたデータを別のファイル形式で保存し直す場合において、このデータをデコードしたものなども考えられる。
【００４２】
入力画像スケーラー２１０は、例えば、メモリーバンド幅に十分な空きがあることをエンコード負荷調整部２３０が検出した場合には、受け取った動画データにおける画像のサイズを変更せずに、そのままのサイズ（入力サイズ）でエンコーダー入力バッファ２２０に供給する。また、入力画像スケーラー２１０は、メモリーバンド幅の不足を検出したエンコード負荷調整部２３０が画像サイズの変更を決定すると、受け取った動画データにおける画像のサイズをその決定に応じて縮小し、その縮小した画像をエンコーダー入力バッファ２２０に供給する。
【００４３】
エンコーダー入力バッファ２２０は、入力画像スケーラー２１０から供給される画像（フレーム）をフレーム単位で一時的に保持するものである。エンコーダー入力バッファ２２０は、動画データにおける画像サイズ（入力サイズ）で複数の画像を一時的に保持できる容量を備える。エンコーダー入力バッファ２２０は、エンコーダー２４０においてエンコード対象の画像（フレーム）のエンコードが終わると、次のエンコード対象の画像（時間軸上で１枚後の画像）を、信号線２２１を介してエンコーダー２４０に供給する。
【００４４】
エンコーダー２４０は、エンコーダー入力バッファ２２０から供給される画像に対して、データ量を圧縮するための符号化処理（エンコード）を行うものである。このエンコーダー２４０は、エンコード負荷調整部２３０による制御に基づいてエンコード内容が変更される。このエンコード内容の変更により、エンコーダー２４０が必要とするバス２９０のメモリーバンド幅が減少する。なお、エンコーダー２４０の内部の機構構成については、図２を参照して説明するためここでの詳細な説明を省略する。エンコーダー２４０は、エンコードが終了した画像を、信号線２４１を介して圧縮ストリーム出力部２６０に供給する。
【００４５】
圧縮ストリーム出力部２６０は、エンコーダー２４０から信号線２４１を介して供給される画像に基づいて集積回路２００の外部へエンコード結果の動画コンテンツを出力するためのストリーム（圧縮ストリーム）を生成し、この生成した圧縮ストリームを出力するものである。例えば、圧縮ストリーム出力部２６０が出力した圧縮ストリームは、ＤＶＤ等のディスクやメモリカード等の半導体メモリなどの記録媒体に記録されたり、ストリーミング配信されたりする。
【００４６】
デコーダー２８１は、集積回路２００の外部から供給される再生対象の動画データ（動画コンテンツ）を受け取り、復号処理（デコード）を行うものである。なお、デコード対象の動画データとは、例えば、記録媒体に記録されたデータなどが考えられる。また、デコーダー２８１は、デコード対象の動画データからこの動画データに多重化されているデータ（ストリーム）を分離する。図１では、ビデオストリームおよびオーディオストリームが多重化されていることを想定して説明する。デコーダー２８１は、ビデオストリームを表示処理部２８３に供給し、オーディオストリームを音声処理部２８４に供給する。
【００４７】
グラフィック処理部２８２は、デコーダー２８１から供給されるビデオストリームの画像の表示に重ね合せる情報がある場合に、この情報（オンスクリーン情報）を表示するための画像（例えば、ポップアップメニューの画像）を生成するものである。例えば、グラフィック処理部２８２は、再生中の動画の残り再生時間や、画像処理装置１００の設定のメニュー画面などの情報を表示するための画像を生成する。グラフィック処理部２８２は、生成した画像（オンスクリーン画像）を表示処理部２８３に供給する。
【００４８】
表示処理部２８３は、デコーダー２８１から供給されるビデオストリームを構成する各画像に種々の画像処理を施して、画像表示部１５１に表示する画像を生成するものである。表示処理部２８３は、例えば、ビデオストリームを構成する画像の解像度（サイズ）を、画像表示部１５１における表示面の解像度に変更する。また、表示処理部２８３は、表示する画像に、ノイズ除去などの画像処理を施す。また、表示処理部２８３は、グラフィック処理部２８２からオンスクリーン画像が供給されている場合には、画像表示部１５１に表示するビデオストリームの画像にオンスクリーン画像を重ね合せて画像表示部１５１に表示させる。
【００４９】
音声処理部２８４は、デコーダー２８１から供給されるデジタル情報のオーディオストリームからアナログのオーディオ信号を生成するものである。音声処理部２８４は、生成したアナログのオーディオ信号を音声出力部１５２に供給し、音声を出力させる。
【００５０】
メモリー１２０は、集積回路２００から供給される画像信号を一時的に保持する記憶装置である。すなわち、メモリー１２０は、集積回路２００が行うエンコードおよびデコードの作業領域として用いられる。メモリー１２０は、例えば、ＤＲＡＭ（Dynamic Random Access Memory）により実現される。
【００５１】
画像表示部１５１は、画像を表示するものであり、例えば、カラー液晶パネルにより構成される。例えば、集積回路２００が映像視聴装置（例えば、ハードディスク内蔵型レコーダー）に設けられている場合には、画像表示部１５１は、映像視聴装置に接続された表示装置（例えば、液晶テレビジョン）に対応する。
【００５２】
音声出力部１５２は、音声を出力するものであり、例えば、スピーカーにより構成される。
【００５３】
次に、エンコーダー２４０の内部の機構構成について、図２を参照して説明する。
【００５４】
［エンコーダーの機能構成例］
図２は、本技術の第１の実施の形態におけるエンコーダー２４０の機能構成の一例を模式的に示すブロック図である。
【００５５】
エンコーダー２４０は、エンコードを行うものであり、例えば、Ｈ．２６４（ＭＰＥＧ（Moving Picture Experts Group）−４  ＡＶＣ）として規定されたストリームにエンコードを行う。エンコーダー２４０は、減算器２４３と、離散コサイン変換部２４４と、量子化部２４５と、エントロピー符号化部２４６と、逆量子化部２４７と、逆離散コサイン変換部２４８と、加算器２４９と、ループ内フィルタ２５０と、フレームメモリー２５１と、フレーム間予測部２５２と、フレーム内予測部２５３と、スイッチ２５４と、動きベクトル検出部２５５とを備える。
【００５６】
減算器２４３は、エンコーダー入力バッファ２２０から信号線２２１を介して供給される符号化対象の画像（符号化対象画像）と、スイッチ２５４から供給される予測画像との差分（差分画像）を生成するものであり、この生成した差分画像を、離散コサイン変換部２４４に供給する。なお、減算器２４３は、スイッチ２５４から予測画像が供給されない場合には、符号化対象の画像をそのまま離散コサイン変換部２４４に供給する。
【００５７】
離散コサイン変換部２４４は、減算器２４３から供給される差分画像に対して離散コサイン変換（ＤＣＴ：Discrete Cosine Transform）を施すものである。離散コサイン変換部２４４は、離散コサイン変換により算出された直交変換係数を、量子化部２４５に供給する。
【００５８】
量子化部２４５は、離散コサイン変換により算出される直交変換係数を量子化するものである。量子化部２４５は、量子化された直交変換係数を、エントロピー符号化部２４６および逆量子化部２４７に供給する。
【００５９】
エントロピー符号化部２４６は、量子化部２４５から供給される量子化された直交変換係数をエントロピー符号化するものである。また、エントロピー符号化部２４６は、動きベクトル検出部２５５から供給された動きベクトルもエントロピー符号化する。エントロピー符号化部２４６は、これらの符号化した情報と、予測に関する各種の情報（例えば、予測モード情報に関する情報、量子化パラメータ）とを多重化して出力ストリームを生成する。エントロピー符号化部２４６は、生成した出力ストリームを、信号線２４１を介して圧縮ストリーム出力部２６０に供給する。
【００６０】
逆量子化部２４７は、量子化部２４５から供給される量子化された直交変換係数を逆量子化するものであり、量子化を逆量子化して戻した直交変換係数を逆離散コサイン変換部２４８に供給する。
【００６１】
逆離散コサイン変換部２４８は、逆量子化部２４７から供給される直交変換係数に対して逆離散コサイン変換を行うものであり、逆離散コサイン変換により算出された信号（差分画像）を加算器２４９に供給する。
【００６２】
加算器２４９は、逆離散コサイン変換部２４８から供給される差分画像と、スイッチ２５４から供給される予測画像とを加算して画像（復号画像）を生成するものであり、生成した復号画像をループ内フィルタ２５０に供給する。
【００６３】
ループ内フィルタ２５０は、加算器２４９から供給される復号画像にブロック歪みを減少させるためのフィルタ処理を施すものであり、フィルタ処理後の復号画像をフレームメモリー２５１に供給する。
【００６４】
フレームメモリー２５１は、ループ内フィルタ２５０から供給される復号画像を複数枚保持するものである。このフレームメモリー２５１は、フレーム内予測で用いられる復号画像をフレーム内予測部２５３に供給し、フレーム間予測で用いられる復号画像をフレーム間予測部２５２および動きベクトル検出部２５５に供給する。
【００６５】
動きベクトル検出部２５５は、エンコーダー入力バッファ２２０から信号線２２１を介して供給される符号化対象画像と、フレームメモリー２５１から供給される復号画像とに基づいて、画像間における位置の差を示す動きベクトルの検出を画素のブロック単位で行うものである。動きベクトル検出部２５５は、検出した動きベクトルおよびその動きベクトルが位置を示すブロックを特定するための情報（ブロック情報）を、フレーム間予測部２５２およびエントロピー符号化部２４６に供給する。
【００６６】
なお、動きベクトル検出部２５５は、１枚の符号化対象画像に対して複数枚の復号画像（参照フレーム）を適用して動きベクトルを検出する。また、動きベクトル検出部２５５は、符号化対象画像における検出対象のブロックの画像における位置を中心として、所定の範囲を探索範囲（サーチ範囲）として参照フレームにおけるブロックの位置を検出する。この検出において、参照フレームの枚数および探索範囲のサイズ（大きさ）は、エンコード負荷調整部２３０による制御により増減され、リソースが少ない場合には、参照フレームの数が少なくされたり、探索範囲が狭くされたりする。なお、参照フレームの枚数および探索範囲のサイズの増減については、図５を参照して説明するため、ここでの詳細な説明を省略する。
【００６７】
フレーム間予測部２５２は、動きベクトル検出部２５５から供給される動きベクトルおよびブロック情報に基づいて、動き補償予測（インター予測）を行うものである。フレーム間予測部２５２は、動き補償予測により符号化される部分に対応する符号化対象画像の部分的な画像（予測画像）を生成し、生成した予測画像をスイッチ２５４へ供給する。
【００６８】
フレーム内予測部２５３は、フレームメモリー２５１から供給される符号化対象画像の復号画像を用いて、符号化対象画像に対するイントラ予測を行うものである。このフレーム内予測部２５３は、符号化対象の画素のブロック（符号化対象ブロック）のサイズやイントラ予測モードなどを決定する。フレーム内予測部２５３は、決定した情報（符号化対象ブロック、イントラ予測モード）を、エントロピー符号化部２４６に供給する。また、フレーム内予測部２５３は、イントラ予測により符号化される部分に対応する符号化対象画像の部分的な画像（予測画像）を生成し、生成した予測画像をスイッチ２５４へ供給する。
【００６９】
スイッチ２５４は、フレーム間予測部２５２から供給される予測画像と、フレーム内予測部２５３から供給される予測画像とを切替えるものであり、どちらかの予測画像を、減算器２４３および加算器２４９に供給する。
【００７０】
このように、エンコーダー２４０では、動きベクトル検出部２５５における動きベクトル検出の処理の重さが、エンコード負荷調整部２３０により制御される。
【００７１】
［アービタにおけるリクエストの優先度の一例］
図３は、本技術の第１の実施の形態におけるアービタ２７１におけるリクエストの優先度の一例を模式的に示す表である。
【００７２】
なお、図３では、動画データの再生処理にかかわるクライアント（デコーダー２８１、グラフィック処理部２８２、表示処理部２８３、音声処理部２８４）と、動画データの圧縮処理にかかわるクライアント（エンコーダー２４０）とに着目して説明する。
【００７３】
この図３の表に示すように、デコーダー２８１と、表示処理部２８３と、音声処理部２８４と、エンコーダー２４０とは、リアルタイムで処理が行われるように優先度が高く設定される。なお、グラフィック処理部２８２によるオンスクリーン画像の生成処理は、遅延したとしても再生中の動画の画像の表示には問題がないため、優先度は「中」に設定される。
【００７４】
また、エンコーダー２４０は、優先度が「高」に設定されるものの、他の優先度が「高」のクライアント（デコーダー２８１、表示処理部２８３、音声処理部２８４）と均等にメモリーバンド幅が割り当てられる訳ではない。エンコーダー２４０以外の優先度が「高」のクライアントへのメモリーバンド幅の割り当てが増加してエンコーダー２４０が必要なメモリーバンド幅よりメモリーバンド幅の空きが少なくなると、メモリーバンド幅の空き量がエンコーダー２４０への割り当て量とされる。すなわち、メモリーバンド幅に空きがない場合には、優先度が「高」の他のクライアントへのメモリーバンド幅の割り当てが優先され、エンコーダー２４０への割り当てが減少される。
【００７５】
なお、エンコーダー２４０への割り当てが必要なメモリーバンド幅より少ないことや、少なくなることがエンコード負荷調整部２３０により検出されると、エンコード負荷調整部２３０は、必要なメモリーバンド幅が少なくなるようにエンコード内容を調整する。
【００７６】
次に、エンコード負荷調整部２３０によるエンコードの負荷の調整（軽減）について、図４および図５を参照して説明する。
【００７７】
［入力画像スケーラーによる画像のサイズ変更の例］
図４は、本技術の第１の実施の形態の入力画像スケーラー２１０における画像サイズの変更を模式的に示す図である。
【００７８】
図４には、エンコード対象の動画データにおける画像のサイズ（解像度）を模式的に示す画像（入力画像３２１）が示されている。また、図４には、エンコード負荷調整部２３０がリソース（メモリーバンド幅）不足を検出した場合において、入力画像スケーラー２１０がサイズ変更して出力する画像のサイズを模式的に示す画像（縮小出力画像３２２）が示されている。さらに、図４には、エンコード負荷調整部２３０がリソース（メモリーバンド幅）が十分であることを検出した場合において、入力画像スケーラー２１０がサイズ変更しないで出力する画像のサイズを模式的に示す画像（出力画像３２３）とが示されている。
【００７９】
図４に示すように、エンコード負荷調整部２３０がリソース不足を検出した際に画像のサイズを小さくしてエンコーダー２４０に出力すると、エンコードの際の画像１枚当たりのデータ量が小さくなる。これにより、エンコーダー２４０がエンコードを行う際に必要とするリソース量を小さくすることができる。
【００８０】
なお、このサイズの縮小は、圧縮ストリームにおけるデータ構造が圧縮ストリームの規格に合うように行われる。例えば、このサイズの縮小は、ＧＯＰ（Group of Picture）単位で縮小する。
【００８１】
なお、この縮小した画像を含む圧縮ストリームを再生して表示画面に表示する際には、表示画面の解像度（サイズ）に拡大される。
【００８２】
［エンコーダーにおける動きベクトル検出の変更の例］
図５は、本技術の第１の実施の形態のエンコーダー２４０における動きベクトル検出の変更を模式的に示す図である。
【００８３】
図５ａでは、エンコード負荷調整部２３０がリソース不足を検出した場合において参照フレームの数が少なくされる例が示され、図５ｂでは、エンコード負荷調整部２３０がリソース不足を検出した場合において探索範囲が狭くされる例が示されている。
【００８４】
図５ａには、基準の参照フレーム数を模式的に示す画像群（参照フレーム群３３１）が示されている。ここで、基準の参照フレーム数とは、例えば、エンコード処理のみを実行してリソースの不足が発生しない場合において設定される参照フレームの数である。また、図５ａには、エンコード負荷調整部２３０がリソース不足を検出した場合において、少なくされた参照フレーム数を模式的に示す画像群（参照フレーム群３３２）が示されている。さらに、図５ａには、エンコード負荷調整部２３０がリソースが十分であることを検出した場合において、参照フレーム数が変更されなかったことを模式的に示す画像群（参照フレーム群３３３）が示されている。
【００８５】
図５ａに示すように、エンコード負荷調整部２３０がリソース不足を検出した際に参照フレーム数を少なくすると、データを参照する画像の枚数が減少して、メモリー１２０から読み出すデータ量が少なくなる。これにより、エンコーダー２４０がエンコードを行う際に必要とするリソース量を小さくすることができる。
【００８６】
図５ｂには、基準の動きベクトルの探索範囲（範囲３４２）のサイズを示すための画像（画像３４１）が示されている。ここで、基準の動きベクトルの探索範囲とは、例えば、エンコード処理のみを実行してリソースの不足が発生しない場合において設定される探索範囲の大きさである。また、図５ｂには、エンコード負荷調整部２３０がリソース不足を検出した場合において、狭くされた探索範囲（範囲３４５）のサイズを示すための画像（画像３４４）が示されている。さらに、図５ｂには、エンコード負荷調整部２３０がリソースが十分であることを検出した場合において、探索範囲（範囲３４７）のサイズが基準のサイズから変更されなかったことを模式的に示す画像（画像３４６）が示されている。
【００８７】
図５ｂに示すように、エンコード負荷調整部２３０がリソース不足を検出した際に動きベクトルの探索範囲を狭くすると、データを利用する画像の範囲が狭くなり、メモリー１２０から読み出すデータ量が少なくなる。これにより、エンコーダー２４０がエンコードを行う際に必要とするリソース量を小さくすることができる。
【００８８】
ここで、図４において示した画像のサイズ変更と、図５において示した動きベクトル検出の変更との違いについて説明する。
【００８９】
図４で示した入力画像スケーラー２１０による画像のサイズの縮小は、画像のサイズ（解像度）が小さくなるため画質の劣化（解像度の低下）をもたらす。しかしながら、圧縮ファイルのデータ量も小さくなるため、圧縮ストリームのサイズの縮小を優先させるようにエンコードが設定されている場合においてリソースの不足が発生すると、参照フレーム数の減少やサーチ範囲の縮小よりも優先的に行われる。
【００９０】
また、図５で示した動きベクトル検出の変更（参照フレーム数の減少、サーチ範囲の減少）は、圧縮率が悪くなるため、画像１枚当たりのデータ量が増えて、圧縮ファイルのデータ量も大きくなる。しかしながら、画質の劣化は生じないため、画質を優先させるようにエンコードが設定されている場合においてリソースの不足が発生すると、入力画像スケーラー２１０によるサイズの縮小よりも優先的に行われる。
【００９１】
なお、リソースの不足が深刻な場合や、データ量の縮小と画質とを両立させたい場合には、両方の処理が行われる。
【００９２】
［メモリーバンド幅の使用状態の遷移の例］
図６は、本技術の第１の実施の形態におけるバス２９０の使用状態の遷移の一例を模式的に示すグラフである。
【００９３】
この図６で示すグラフには、横軸を時間軸を示す軸とし、縦軸をリソースの総量（バス２９０の全メモリーバンド幅）を示す軸として、メモリーバンド幅の使用状態の遷移が示されている。
【００９４】
このグラフでは、エンコーダー２４０以外に割り当てられたメモリーバンド幅およびこの割り当ての時間経過に伴う遷移を、斜線を付した領域（領域３５１）により示している。また、このグラフでは、エンコーダー２４０に割り当てられたメモリーバンド幅およびこの割り当ての時間経過に伴う遷移を、灰色を付した領域（領域３５２）により示している。
【００９５】
ここで、エンコード負荷調整部２３０によるエンコード内容の調整と、メモリーバンド幅の使用状態との関係について、図６のグラフを参照しながら説明する。なお、ここでは、どのクライアントにも割り当てられていないメモリーバンド幅の空きの量に基づいて、エンコーダ２４０に割り当てるメモリーバンド幅の量が決定される例について説明する。
【００９６】
エンコード負荷調整部２３０は、メモリーコントローラ２７５からバスの使用状態（メモリーバンド幅の割り当て状態）を取得する。これにより、どのクライアントにも割り当てられていないメモリーバンド幅の空きの量（空き幅）がエンコード負荷調整部２３０に通知される。なお、メモリーバンド幅の空き幅は、図６において、領域３５１および領域３５２に挟まれた白地の領域により示されている。
【００９７】
空き幅が通知されると、エンコード負荷調整部２３０は、空き幅の時間遷移から、エンコード内容（負荷）を変更すべきか否かを判断する。例えば、エンコード負荷調整部２３０は、空き幅が、リソースに対するエンコードの負荷を重くできるほど十分に増えたか否か判断し、空き幅が十分にあると判断された場合には、エンコードの負荷が重くされる。例えば、入力画像スケーラー２１０において行っていたサイズ（解像度）の縮小の縮小率を低くして元のサイズに近くする。また、エンコーダー２４０において、参照フレームの数を増やしたり、動きベクトルの探索範囲を広くしたりする。なお、図６では、空きの量が十分にあると判断される空きの量が矢印３５３により示され、エンコーダー２４０に割り当てられたメモリーバンド幅の増加が矢印３５４により示されている。
【００９８】
また、エンコード負荷調整部２３０は、空き幅の時間遷移から、現在行われているエンコードの負荷量を維持できるか否かを判断する。例えば、空きの量が所定量（所定の閾値）よりも減少した状態が数秒続いた場合には、エンコーダー２４０に割り当てられるメモリーバンド幅が不足して現在行われているエンコードを維持できない可能性が高いと判断し、リソースに対するエンコードの負荷を軽くする。例えば、入力画像スケーラー２１０において、元のサイズ（解像度）で出力していたものを縮小して出力したり、縮小率を上げてさらに縮小して出力したりする。また、エンコーダー２４０において、参照フレームの数を減らしたり、動きベクトルの探索範囲を狭くしたりする。なお、図６では、現在行われているエンコードを維持できない可能性が高いと判断される空きの量が矢印３５５および矢印３５７により示され、エンコーダー２４０に割り当てられたメモリーバンド幅の減少が矢印３５６および矢印３５８により示されている。
【００９９】
［効果例］
図７は、本技術の第１の実施の形態における画像処理装置１００の効果を模式的に示す図である。
【０１００】
図７ａには、デコーダーおよびエンコーダーがメモリーバスを共有する他の画像処理装置におけるメモリーバンド幅のサイズと、画像処理装置１００におけるメモリーバンド幅のサイズとが示されている。
【０１０１】
他の画像処理装置では、デコーダー単独で動作させる場合の最大のメモリーバンド幅と、エンコーダー単独で動作させる場合の最大のメモリーバンド幅とを足し合わせて、デコーダーとエンコーダーとで共有されるメモリーバスのバンド幅が設計される。
【０１０２】
なお、説明の便宜上、ここでは、画像処理装置１００のデコーダー２８１と、表示処理部２８３と、音声処理部２８４とがリアルタイム処理をするのに必要な最大のメモリーバンド幅を、デコーダー単独設計時のバンド幅と称して説明している。
【０１０３】
一方、画像処理装置１００では、エンコーダーに割り当てることができるメモリーバンド幅の量に応じて、メモリーバス（バス２９０）へのエンコードの負荷が、エンコード負荷調整部２３０により設定される。これにより、マージンを少なくしてメモリーバンド幅を設計することができ、他の画像処理装置と比べて、メモリーバス（バス２９０）のバンド幅を狭くすることができる。
【０１０４】
図７ｂには、他の画像処理装置においてメモリーバンド幅の不足が生じた場合と、画像処理装置１００においてメモリーバンド幅の不足が生じた場合とを説明するための表が示されている。
【０１０５】
図７ｂの表に示すように、他の画像処理装置では、メモリーバンド幅の不足が発生すると、デコードおよびエンコードの両方で処理不足が発生して、デコードおよびエンコードの両方でリアルタイム処理が破綻する可能性がある。
【０１０６】
一方、画像処理装置１００では、メモリーバンド幅の不足が発生しても、デコードの処理にメモリーバンド幅が優先的に確保されるため、デコードのリアルタイム処理は破綻しない。また、メモリーバンド幅の不足が発生すると、エンコードの処理によるバンド幅の必要量が、メモリーバンド幅の不足量に応じて軽減されるため、エンコードのリアルタイム処理も破綻しない。
【０１０７】
［画像処理装置の動作例］
次に、本技術の第１の実施の形態における画像処理装置１００の動作について図面を参照して説明する。
【０１０８】
図８は、本技術の第１の実施の形態におけるエンコード負荷調整部２３０によるエンコードの負荷調整の処理手順例を示すフローチャートである。
【０１０９】
なお、図８では、集積回路２００は、エンコードおよびデコードを同時に行っていることとする。また、図８では、エンコーダーに割り当て可能なリソースの量（エンコーダーよりも優先的に割り当てられるリソースの量を、全体のリソースの量から除いた量）を検出する例につて説明する。
【０１１０】
まず、リソース（バス２９０のメモリーバンド幅）の使用状態に関する情報が、エンコード負荷調整部２３０により取得される（ステップＳ９０１）。なお、本技術の第１の実施の形態では、メモリーコントローラ２７５から供給されたメモリーバンド幅の使用状態を示す情報が取得される。なお、ステップＳ９０１は、特許請求の範囲に記載の検出手順の一例である。
【０１１１】
次に、エンコーダーに割り当て可能なリソースの量が、基準量以上であるか否かが、エンコード負荷調整部２３０により判断される（ステップＳ９０２）。そして、エンコーダーに割り当て可能なリソースの量が基準量以上であると判断された場合には（ステップＳ９０２）、基準の処理内容（動画データにおける画像のサイズ、基準の参照フレームの数、基準の探索範囲の広さ）にエンコードが設定される（ステップＳ９０３）。そして、ステップＳ９０３の後に、ステップＳ９０１に戻り、エンコードの負荷調整の処理手順が繰り返される。
【０１１２】
一方、エンコーダーに割り当て可能なリソースの量が基準量よりも少ないと判断された場合には（ステップＳ９０２）、エンコーダーの必要リソース量が、割り当て可能なリソースの量以下になるように、エンコードが設定される（ステップＳ９０４）。そして、ステップＳ９０４の後に、ステップＳ９０１に戻り、エンコードの負荷調整の処理手順が繰り返される。なお、ステップＳ９０４およびステップＳ９０３は、特許請求の範囲に記載の制御手順の一例である。
【０１１３】
このように、本技術の第１の実施の形態によれば、エンコード負荷調整部２３０によって、エンコーダー２４０に割り当てられるメモリーバンド幅に応じてエンコード内容を設定することができる。これにより、エンコーダー２４０が必要なメモリーバンド幅が、エンコーダー２４０に割り当て可能なメモリーバンド幅より小さくなり、エンコードをリアルタイムで行うことができる。すなわち、本技術の第１の実施の形態によれば、リソースを共有させてエンコードおよびデコードを同時に行う場合に、リソースの使用量が多い場合でもリアルタイムを維持することができる。
【０１１４】
＜２．第２の実施の形態＞
本技術の第１の実施の形態では、メモリーコントローラ２７５からバス２９０のメモリーバンド幅の割り当てに関する情報をリソース（バス２９０のバンド幅）の使用状態に関する情報として取得する例について説明した。なお、メモリーコントローラ２７５からの情報以外の情報についてもリソースの使用状態に関する情報として用いることができるものがある。
【０１１５】
そこで、本技術の第２の実施の形態では、アービタ２７１が受信したリクエストからリソースの使用状態を算出する例について、図９および図１０を参照して説明する。また、本技術の第３および第４の実施の形態においても、リソースの使用状態に関する情報が異なる例について説明する。
【０１１６】
［画像処理装置の機能構成例］
図９は、本技術の第２の実施の形態における画像処理装置５１０の機能構成の一例を模式的に示すブロック図である。
【０１１７】
なお、画像処理装置５１０は、図１において示した画像処理装置１００の変形例であり、リソースの使用状態に関する情報の供給元が、メモリーコントローラ２７５からアービタ２７１に代わる点のみが異なる。そこで、ここでは、アービタ２７１がエンコード負荷調整部２３０に供給するリソースの使用状態に関する情報に着目して説明し、各機能構成については、図１と同一の符号を付してここでの説明を省略する。
【０１１８】
アービタ２７１では、クライアントからのリクエストに基づいてメモリー１２０へのアクセスが調停される。すなわち、アービタ２７１が許可したリクエストの頻度および内容から、各クライアントのメモリー１２０へのアクセスの度合い（メモリーバンド幅）を算出することができる。このように、本技術の第２の実施の形態では、リクエストに基づいて、同時にメモリーバンド幅を使用する複数の機能構成が必要とするメモリーバンド幅が算出される。アービタ２７１は、リクエストから算出したメモリーバンド幅の使用状態をエンコード負荷調整部２３０に供給する。
【０１１９】
［メモリーバンド幅の割り当てのリクエストからの算出例］
図１０は、本技術の第２の実施の形態におけるアービタ２７１によるメモリーバンド幅の使用状態の算出の一例を模式的に示す図が示されている。
【０１２０】
図１０には、横軸を時間軸を示す軸とし、縦軸をリソースの総量（バス２９０の全メモリーバンド幅）を示す軸として、リクエストからアービタ２７１が算出したメモリーバンド幅の使用状態の見積もりの遷移が示されている。
【０１２１】
図１０に示すように、メモリアクセスを許可したリクエストからメモリーバンド幅の使用状態を見積もることができる。そして、エンコード負荷調整部２３０は、この見積もりのメモリーバンド幅の空き具合から、エンコーダーに割り当てられるメモリーバンド幅を算出することができ、このメモリーバンド幅に応じた負荷となるエンコードを設定することができる。
【０１２２】
このように、本技術の第２の実施の形態によれば、エンコーダー２４０に割り当てられるメモリーバンド幅をリクエストに基づいて算出し、この算出されたメモリーバンド幅に応じてエンコード内容を設定することができる。
【０１２３】
＜３．第３の実施の形態＞
本技術の第３の実施の形態では、エンコーダー入力バッファにおけるバッファの空きの量からリソースの使用状態（エンコーダーに割り当てられているメモリーバンド幅）を推定し、この推定に基づいてエンコード処理の負荷を調整する例を説明する。
【０１２４】
［画像処理装置の機能構成例］
図１１は、本技術の第３の実施の形態における画像処理装置５２０の機能構成の一例を模式的に示すブロック図である。
【０１２５】
なお、画像処理装置５２０は、図１において示した画像処理装置１００の変形例であり、リソースの使用状態に関する情報の供給元が、メモリーコントローラ２７５からエンコーダー入力バッファ２２０に代わる点のみが異なる。そこで、ここでは、エンコーダー入力バッファ２２０が出力するバッファの空きの量に関する情報がリソースの使用状態に関する情報としてエンコード負荷調整部２３０により用いられる点に着目して説明し、各機能構成については、図１と同一の符号を付してここでの説明を省略する。
【０１２６】
エンコーダー入力バッファ２２０では、エンコードがリアルタイムに行われている場合には、所定数の画像が保持される。しかしながら、エンコーダー２４０に割り当てられるメモリーバンド幅が不足してエンコードに遅延が生じると、エンコーダー入力バッファ２２０に保持される画像の数が増えて、エンコーダー入力バッファ２２０の空き容量が少なくなる。エンコード負荷調整部２３０は、エンコーダー入力バッファ２２０の空き容量の減少を検出すると、エンコーダー２４０に割り当てられているメモリーバンド幅が不足していると判断する。そして、エンコード負荷調整部２３０は、エンコードの負荷が軽くなるようにエンコード内容を設定（画像サイズの縮小、参照フレーム数の減少、探索範囲の縮小）し、エンコードによるメモリーバンド幅の必要量を少なくする。
【０１２７】
このように、本技術の第３の実施の形態によれば、エンコーダー２４０に割り当てられるメモリーバンド幅をエンコーダー入力バッファ２２０の空き容量に基づいて算出し、この算出されたメモリーバンド幅に応じてエンコード内容を設定することができる。
【０１２８】
＜４．第４の実施の形態＞
本技術の第４の実施の形態では、エンコーダーからの圧縮画像（エンコード処理後の画像）の出力速度からリソースの使用状態（エンコーダーに割り当てられているメモリーバンド幅）を推定し、この推定に基づいてエンコード内容を調整する例を説明する。
【０１２９】
［画像処理装置の機能構成例］
図１２は、本技術の第４の実施の形態における画像処理装置５３０の機能構成の一例を模式的に示すブロック図である。
【０１３０】
なお、画像処理装置５３０は、図１において示した画像処理装置１００の変形例であり、リソースの使用状態に関する情報の供給元が、メモリーコントローラ２７５からエンコーダー２４０に代わる点のみが異なる。そこで、ここでは、エンコーダー２４０が出力する圧縮画像の生成速度がリソースの使用状態に関する情報としてエンコード負荷調整部２３０により用いられる点に着目して説明し、各機能構成については、図１と同一の符号を付してここでの説明を省略する。
【０１３１】
エンコーダー２４０では、エンコードがリアルタイムに行われている場合には、略所定の間隔でエンコードされた画像が出力される。しかしながら、エンコーダー２４０に割り当てられるメモリーバンド幅が不足してエンコードに遅延が生じると、圧縮画像の出力も遅延が生じるため、画像の出力間隔が長くなる。エンコード負荷調整部２３０は、画像の出力間隔が長くなったことを検出すると、エンコーダー２４０に割り当てられているメモリーバンド幅が不足していると判断する。そして、エンコード負荷調整部２３０は、エンコードの負荷が軽くなるようにエンコード内容を設定し、エンコードによるメモリーバンド幅の必要量を少なくする。
【０１３２】
このように、本技術の第４の実施の形態によれば、エンコーダー２４０に割り当てられるメモリーバンド幅をエンコーダー２４０の処理速度に基づいて算出し、この算出されたメモリーバンド幅に応じてエンコード内容を設定することができる。
【０１３３】
＜５．第５の実施の形態＞
本技術の第１乃至第４の実施の形態では、エンコーダーとデコーダーとが１つのチップに集積されたＳｏＣを想定し、メモリーバンド幅がリソースであることを想定して説明した。エンコーダーとデコーダーとが共有するリソースに関しては、メモリーバンド幅以外にも種々の例が考えられる。
【０１３４】
そこで、本技術の第５の実施の形態では、ソフトウェアエンコードおよびソフトウェアデコードを同時にリアルタイムで行う場合において、ＣＰＵ（Central Processing Unit）のパフォーマンスがリソースとなる例について、図１３および図１４を参照して説明する。
【０１３５】
［情報処理装置の機能構成例］
図１３は、本技術の第５の実施の形態における情報処理装置６００の機能構成の一例を模式的に示すブロック図である。
【０１３６】
情報処理装置６００は、ソフトウェアエンコードおよびソフトウェアデコードにより動画データの録画および再生を同時に行えるものであり、ベースバンド入力画像スケーラー６１０と、圧縮ストリーム出力部６２０と、ＣＰＵ６３０と、メモリー６４０と、記録部６５０とを備える。なお、情報処理装置６００は、図１において示した画像処理装置１００の機能の多くをＣＰＵを用いて実現することのみが本技術の第１の実施の形態と異なるため、ここでの詳細な説明を省略する。
【０１３７】
ＣＰＵ６３０は、情報処理装置６００の全体の制御を行うものである。また、ＣＰＵ６３０は、記録部６５０に記録されたプログラムに従って各種の処理を実行し、情報処理装置６００の各機能を実現させる。例えば、ＣＰＵ６３０は、ソフトウェアエンコードおよびソフトウェアデコードのプログラムに従い、動画のエンコードおよびデコードを行う。また、ＣＰＵ６３０は、エンコードの負荷を調整するためのプログラムに従ってＣＰＵ６３０のパフォーマンスを監視し、パフォーマンスが不足する場合には、エンコードの負荷を低減させる。なお、ＣＰＵ６３０は、特許請求の範囲に記載の演算器の一例である。
【０１３８】
ベースバンド入力画像スケーラー６１０は、図１の入力画像スケーラー２１０に対応するものである。すなわち、ＣＰＵ６３０のパフォーマンスが不足する場合において、エンコード対象の画像のサイズ（解像度）を縮小する。
【０１３９】
圧縮ストリーム出力部６２０は、図１の圧縮ストリーム出力部２６０に対応するものである。すなわち、エンコードされた画像から圧縮ストリームを生成する。
【０１４０】
メモリー６４０は、情報処理装置６００において行われる各処理に必要なデータ（例えば、プログラムや画像データなど）が一時的に保持されるものであり、図１のメモリー１２０およびエンコーダー入力バッファ２２０に対応する。なお、図１３では、図１のエンコーダー入力バッファ２２０に対応する機能をメモリー６４０が備えることが、メモリー６４０を示す矩形の中に付した破線の領域（エンコーダー入力バッファエリア６４１）により示されている。
【０１４１】
記録部６５０は、情報処理装置６００において行われる各処理に必要なデータを記録するものである。例えば、記録部６５０は、各種のプログラム、エンコード対象の動画データ、デコード対象の動画データなどを保持する。
【０１４２】
［情報処理装置において実行されるソフトウェアの基本概念例］
図１４は、本技術の第５の実施の形態におけるソフトウェアの基本概念を模式的に示す図である。
【０１４３】
図１４では、情報処理装置６００において処理されるソフトウェアの階層構造が示されている。
【０１４４】
最も下位の階層であるハードウェア６７１は、情報処理装置６００を構成する物理的な構成要素を示す。
【０１４５】
ハードウェア６７１の１つ上の階層であるオペレーティングシステム６７２は、情報処理装置６００において動作するアプリケーションソフトを制御するものである。また、オペレーティングシステム６７２は、ハードウェアの機能を管理し、アプリケーションソフトの要求に応じてハードウェアを制御する。
【０１４６】
オペレーティングシステム６７２の１つ上の階層はアプリケーションソフトの階層であり、図１４では、情報処理装置６００において動作するアプリケーションソフトとして、エンコード処理６７３と、負荷計測６７４と、スケーラー制御６７５とが示されている。なお、ここで示したアプリケーションソフトは、情報処理装置６００において動作するアプリケーションソフトの一部を示したものである。他にも、参照フレーム数制御、探索範囲制御、デコード処理、表示画像生成処理、オーディオ生成処理などの様々なアプリケーションソフトが情報処理装置６００において動作する。
【０１４７】
このように、本技術の第５の実施の形態によれば、ソフトウェアエンコードおよびソフトウェアデコードを行う装置においても、エンコードに割り当て可能なリソース量に応じたエンコード内容を設定することができる。すなわち、本技術の第５の実施の形態によれば、リソースを共有させてエンコードおよびデコードを同時に行う場合に、リソースの使用量が多い場合でもリアルタイムを維持することができる。
【０１４８】
このように、本技術の実施の形態によれば、リソースを共有させてエンコードおよびデコードを同時に行う場合に、リソースの使用量が多い場合でもリアルタイムを維持することができる。
【０１４９】
なお、本技術の実施の形態では、メモリーバンド幅およびＣＰＵパフォーマンスがリソースの例について説明したが、これに限定されるものではない。例えば、メモリーにおける空きの量をリソースとする場合も考えられる。また、組み合わせ（複数）て複数のリソースを管理し、不足に応じてエンコード内容を調整することも考えられる。
【０１５０】
また、本技術の実施の形態では、基準のエンコード内容（例えば、エンコーダのみで動作する時のエンコードの設定内容）があり、リソースが不足する場合に、エンコーダーが必要とするリソースが減少するようにエンコード内容を調整する例について説明したが、これに限定されるものではない。例えば、基準のエンコード内容を行う際に必要なリソース量よりもエンコードに割り当て可能なリソース量が多い場合に、参照フレーム数を基準の数よりも多くしたり、動きベクトルの探索範囲を基準の広さよりも広くしたりして、基準のエンコード内容よりも処理を重くする場合も考えられる。これにより、基準のエンコードよりも圧縮率を上昇させることができる可能性が高まる。
【０１５１】
なお、デコーダーが単独で動作するために必要な最大のメモリーバンド幅と、エンコーダーが単独で動作するために必要な最大のメモリーバンド幅とを足し合わせてバンド幅が設計される他の画像処理装置では、最大を想定する際に設定したエンコードの処理よりも処理を重くすることは難しい。これに対し、本技術の実施の形態では、エンコードに割り当て可能なリソース量が多い場合にエンコード処理を重くすることが容易に行うことができる。
【０１５２】
また、本技術の実施の形態では、画像のエンコード処理を軽くする例について説明したが、これに限定されるものではなく、オーディオのエンコードを軽くすることも考えられる。例えば、サンプリングレートを落として、必要なリソース量を軽減する場合などが考えられる。
【０１５３】
なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
【０１５４】
また、上述の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、ハードディスク、ＣＤ（Compact Disc）、ＭＤ（MiniDisc）、ＤＶＤ（Digital Versatile Disk）、メモリカード、ブルーレイディスク（Blu-ray Disc（登録商標））等を用いることができる。
【０１５５】
なお、本技術は以下のような構成もとることができる。
（１）  エンコーダーおよびデコーダーが共有するリソースの同時使用により生じる状態であって、前記リソースの不足により前記エンコーダーよりも前記デコーダーへ優先的に前記リソースが割り当てられる前記リソースに関する使用状態を検出する検出部と、
前記エンコーダーへの前記リソースの割り当てに応じたエンコードの設定を前記検出された使用状態に基づいて決定し、当該決定した設定に応じたエンコードを前記エンコーダーに実行させる制御を行う制御部と
を具備する画像処理装置。
（２）  前記エンコードの設定は、前記エンコーダーに供給されるエンコード対象の動画ファイルにおける画像のサイズの設定であり、
前記制御部は、前記設定に応じてサイズが変更された画像のエンコードを前記エンコーダーに実行させる制御を行う
前記（１）に記載の画像処理装置。
（３）  前記制御部は、前記検出された使用状態における前記エンコーダーへ割り当て可能な前記リソースが基準量より少ない場合には、前記画像のサイズを前記動画ファイルにおけるサイズよりも小さくする前記（２）に記載の画像処理装置。
（４）  前記エンコードの設定は、前記エンコーダーにおけるインター予測での参照フレームの数の設定であり、
前記制御部は、前記設定に応じて参照フレームの数が変更されたエンコードを前記エンコーダーに実行させる制御を行う
前記（１）に記載の画像処理装置。
（５）  前記制御部は、前記検出された使用状態における前記エンコーダーへ割り当て可能な前記リソースが基準量より少ない場合には、前記参照フレームの数を基準の数よりも少なくする前記（４）に記載の画像処理装置。
（６）  前記制御部は、前記検出された使用状態における前記エンコーダーへ割り当て可能な前記リソースが基準量より多い場合には、前記参照フレームの数を基準の数よりも多くする前記（４）に記載の画像処理装置。
（７）  前記エンコードの設定は、前記エンコーダーにおけるインター予測での動きベクトルの探索範囲の大きさの設定であり、
前記制御部は、前記設定に応じて探索範囲の大きさが変更されたエンコードを前記エンコーダーに実行させる制御を行う
前記（１）に記載の画像処理装置。
（８）  前記制御部は、前記検出された使用状態における前記エンコーダーへ割り当て可能な前記リソースが基準量より少ない場合には、前記探索範囲の大きさを基準の大きさよりも狭くする前記（７）に記載の画像処理装置。
（９）  前記制御部は、前記検出された使用状態における前記エンコーダーへ割り当て可能な前記リソースが基準量より多い場合には、前記探索範囲の大きさを基準の大きさよりも広くする前記（７）に記載の画像処理装置。
（１０）  前記リソースは、前記エンコーダーおよび前記デコーダーが共有するメモリへアクセスするためのバスのバンド幅である前記（１）から（９）のいずれかに記載の画像処理装置。
（１１）  前記検出部は、前記メモリのコントローラが検出する前記バスのバンド幅の割り当てに関する情報と、前記バスのアービタにおけるメモリアクセスのリクエストの処理状況に関する情報と、前記エンコーダーの入力バッファにおける空き容量に関する情報と、前記エンコーダーの処理速度に関する情報とのうちの少なくとも１つから前記使用状態を検出する前記（１０）に記載の画像処理装置。
（１２）  前記エンコーダーは、ソフトウェアエンコードを行うアプリケーションソフトにより構成される機能であり、
前記デコーダーは、ソフトウェアデコードを行うアプリケーションソフトにより構成される機能であり、
前記リソースは、前記アプリケーションソフトを同時に実行する演算器のパフォーマンスである前記（１）から（９）のいずれかに記載の画像処理装置。
（１３）  エンコーダーおよびデコーダーが共有するリソースの同時使用により生じる状態であって、前記リソースの不足により前記エンコーダーよりも前記デコーダーへ優先的に前記リソースが割り当てられる前記リソースに関する使用状態を検出する検出手順と、
前記エンコーダーへの前記リソースの割り当てに応じたエンコードの設定を前記検出された使用状態に基づいて決定し、当該決定した設定に応じたエンコードを前記エンコーダーに実行させる制御を行う制御手順と
を具備する画像処理方法。
（１４）  エンコーダーおよびデコーダーが共有するリソースの同時使用により生じる状態であって、前記リソースの不足により前記エンコーダーよりも前記デコーダーへ優先的に前記リソースが割り当てられる前記リソースに関する使用状態を検出する検出手順と、
前記エンコーダーへの前記リソースの割り当てに応じたエンコードの設定を前記検出された使用状態に基づいて決定し、当該決定した設定に応じたエンコードを前記エンコーダーに実行させる制御を行う制御手順と
をコンピュータに実行させるプログラム。
【符号の説明】
【０１５６】
１００  画像処理装置
１２０  メモリー
１５１  画像表示部
１５２  音声出力部
２００  集積回路
２１０  入力画像スケーラー
２２０  エンコーダー入力バッファ
２３０  エンコード負荷調整部
２４０  エンコーダー
２４３  減算器
２４４  離散コサイン変換部
２４５  量子化部
２４６  エントロピー符号化部
２４７  逆量子化部
２４８  逆離散コサイン変換部
２４９  加算器
２５０  ループ内フィルタ
２５１  フレームメモリー
２５２  フレーム間予測部
２５３  フレーム内予測部
２５４  スイッチ
２５５  動きベクトル検出部
２６０  圧縮ストリーム出力部
２７１  アービタ
２７５  メモリーコントローラ
２８１  デコーダー
２８２  グラフィック処理部
２８３  表示処理部
２８４  音声処理部
２９０  バス
【図１】
2014064161.tif 000003
【図２】
2014064161.tif 000004
【図３】
2014064161.tif 000005
【図４】
2014064161.tif 000006
【図５】
2014064161.tif 000007
【図６】
2014064161.tif 000008
【図７】
2014064161.tif 000009
【図８】
2014064161.tif 000010
【図９】
2014064161.tif 000011
【図１０】
2014064161.tif 000012
【図１１】
2014064161.tif 000013
【図１２】
2014064161.tif 000014
【図１３】
2014064161.tif 000015
【図１４】
2014064161.tif 000016