(57)【特許請求の範囲】
【請求項１】
画像データを複数の画素プレーンに変換する変換手段と、
それぞれが、前記複数の画素プレーンの１つを格納する複数の第１の記憶手段と、
それぞれが、前記複数の第１の記憶手段のうち対応する１つに格納された画素プレーンを符号化する複数の符号化手段と、
前記複数の符号化手段から第２の記憶手段への出力レートを制御するレート制御手段と、
前記第２の記憶手段へのアクセス要求に対して許可を与えるアクセス制御手段と、を有し、
前記レート制御手段は、前記変換手段の変換モードおよび前記第１の記憶手段の残量の少なくとも一方に応じて、前記複数の符号化手段から前記第２の記憶手段へのアクセス要求のうち、前記アクセス制御手段に出力するアクセス要求を制御することにより前記出力レートを制御することを特徴とする画像処理装置。
【請求項２】
前記レート制御手段は、前記変換モードが第２の変換モードの場合には、前記変換モードが第１の変換モードの場合より、前記複数の符号化手段のうち特定の画素プレーンを符号化する符号化手段の出力レートが大きくなるように前記出力レートを制御することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記変換手段は、前記第１の変換モードにおいて前記画像データを赤、緑、青の画素プレーンに変換し、前記第２の変換モードにおいて前記画像データを輝度成分と色差成分の画素プレーンに変換することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記特定の画素プレーンが前記輝度成分の画素プレーンであることを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記レート制御手段は、前記複数の符号化手段のうち、前記複数の第１の記憶手段のうち、残量が少ないものに対応する符号化手段からの前記アクセス要求を優先的に前記アクセス制御手段に出力することを特徴とする請求項１から４のいずれか１項に記載の画像処理装置。
【請求項６】
前記レート制御手段は、前記複数の符号化手段から前記第２の記憶手段へのアクセス要求の１つを周期的に前記アクセス制御手段に出力することを特徴とする請求項１から５のいずれか１項に記載の画像処理装置。
【請求項７】
前記画像データが、原色ベイヤー配列のＲＡＷデータであることを特徴とする請求項１から６のいずれか１項に記載の画像処理装置。
【請求項８】
撮像素子と、
請求項１から７のいずれか１項に記載の画像処理装置とを有し、
前記画像データが前記撮像素子で得られた画像データであることを特徴とする撮像装置。
【請求項９】
画像データを複数の画素プレーンに変換する変換手段と、
それぞれが、前記複数の画素プレーンの１つを格納する複数の第１の記憶手段と、
それぞれが、前記複数の第１の記憶手段のうち対応する１つに格納された画素プレーンを符号化する複数の符号化手段と、
前記複数の符号化手段が共用する第２の記憶手段と、
前記第２の記憶手段へのアクセス要求に対して許可を与えるアクセス制御手段と、を有する画像処理装置が実行する画像処理方法であって、
前記変換手段の変換モードおよび前記第１の記憶手段の残量の少なくとも一方に応じて、前記複数の符号化手段から前記第２の記憶手段へのアクセス要求のうち、前記アクセス制御手段に出力するアクセス要求を制御することにより、前記複数の符号化手段から第２の記憶手段への出力レートを制御するレート制御工程を有することを特徴とする画像処理方法。
【請求項１０】
コンピュータを請求項１から７のいずれか１項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置および画像処理方法に関し、特には画像の符号化技術に関する。
【背景技術】
【０００２】
一般的なデジタルカメラには、カラーフィルタを備えた単板式の撮像素子が用いられている。また、単板式の撮像素子に設けるカラーフィルタの色配列パターンの１つとして、図２に示す原色ベイヤー配列が知られている。原色ベイヤー配列では、２×２画素を１単位としてＲ（赤）、Ｇ１（緑）、Ｇ２（緑）、Ｂ（青）が周期的に配列される。人間の視覚が色成分よりも輝度成分に敏感であり、赤や青よりも輝度成分を多く含む緑が多く配列されている。
【０００３】
単板式の撮像素子から読み出された信号は、画素あたり１つの色成分を有する。このような信号形式をＲＡＷ形式と呼び、ＲＡＷ形式のデータをＲＡＷデータと呼ぶ。また、全画素の信号を、対応するカラーフィルタの種類によって分類したものを画素プレーンと呼ぶ。カラーフィルタが原色ベイヤー配列であれば、画素信号はＲプレーン、Ｇ１プレーン、Ｇ２プレーン、Ｂプレーンに分類される。画素プレーンは色プレーンまたはコンポーネントと呼ばれることもある。
【０００４】
ＲＡＷデータはデータ量が大きいため、記録したり送信したりする場合にはデータ量を削減するために符号化することが知られている。この場合、処理時間を短縮するため、例えば図８に示す符号化器８００のように、ＲＡＷデータを画素プレーンに分離するコンポーネント変換部８０１を設け、４つの符号化部８０２で画素プレーンごとに符号化する構成が考えられる。例えば、コンポーネント変換部８０１は、原色ベイヤー配列のＲＡＷデータであれば、Ｒプレーン（Ｃ１）、Ｇ１プレーン（Ｃ２）、Ｇ２プレーン（Ｃ３）、Ｂプレーン（Ｃ４）に分離する。符号化部８０２はそれぞれ１つの画素プレーンを符号化して符号化データを出力する。
【０００５】
４つの符号化器８０２の出力を共通のデータバスに接続する場合、個々の符号化部８０２の能力を最大限に利用するには、発生する符号化データ量に応じて個々の符号化部８０２に適切な出力レートを割り当てることが重要である。特許文献１には、複数の処理モジュールがデータバスを共有するデジタルカメラにおいて、処理モジュールごとにデータバスを利用可能な期間のタイミングと長さを設定・管理する方法が記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００３−１３２００７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
個々の符号化部８０２で発生する符号化データの量は、例えば符号化部８０２が符号化する信号の種類や符号化部の動作モードなどによって変化しうるため、符号化データの出力レートを動的に制御することが重要である。しかしながら、特許文献１に開示される方法は、データバスを利用可能な期間のタイミングと長さがモジュールごとに固定されているため、モジュールの出力レートを動的に制御することができない。そのため、割り当てた期間において発生する符号量が過剰であったり少なかったりする場合が生じ、符号化効率が低下する。
【０００８】
本発明はこのような従来技術の課題に鑑みなされたものであり、複数の符号化部で画像データを並列に符号化する画像処理装置および画像処理方法において、符号化部の出力レートを動的に制御可能とすることを目的とする。
【課題を解決するための手段】
【０００９】
上述の目的は、画像データを複数の画素プレーンに変換する変換手段と、それぞれが、複数の画素プレーンの１つを格納する複数の第１の記憶手段と、それぞれが、複数の第１の記憶手段のうち対応する１つに格納された画素プレーンを符号化する複数の符号化手段と、複数の符号化手段から第２の記憶手段への出力レートを制御するレート制御手段と、第２の記憶手段へのアクセス要求に対して許可を与えるアクセス制御手段と、を有し、レート制御手段は、変換手段の変換モードおよび第１の記憶手段の残量の少なくとも一方に応じて、複数の符号化手段から第２の記憶手段へのアクセス要求のうち、アクセス制御手段に出力するアクセス要求を制御することにより出力レートを制御することを特徴とする画像処理装置によって達成される。
【発明の効果】
【００１０】
このような構成により、本発明によれば、複数の符号化部で画像データを並列に符号化する画像処理装置および画像処理方法において、符号化部の出力レートを動的に制御可能とすることができる。
【図面の簡単な説明】
【００１１】
【図１】実施形態に係る画像処理装置の一例としての撮像装置の機能構成例を示すブロック図
【図２】原色ベイヤー配列のＲＡＷデータの構成を示す模式図
【図３】第１の実施形態における出力レート制御を説明するためのフローチャート
【図４】第１の実施形態における出力レート制御例を示すタイミングチャート
【図５】第２の実施形態における出力レート制御を説明するためのフローチャート
【図６】第２の実施形態における出力レート制御例を示すタイミングチャート
【図７】第３の実施形態における出力レート制御を説明するためのフローチャート
【図８】従来の符号化器の構成例を示すブロック図
【発明を実施するための形態】
【００１２】
【図１】実施形態に係る画像処理装置の一例としての撮像装置の機能構成例を示すブロック図
【図２】原色ベイヤー配列のＲＡＷデータの構成を示す模式図
【図３】第１の実施形態における出力レート制御を説明するためのフローチャート
【図４】第１の実施形態における出力レート制御例を示すタイミングチャート
【図５】第２の実施形態における出力レート制御を説明するためのフローチャート
【図６】第２の実施形態における出力レート制御例を示すタイミングチャート
【図７】第３の実施形態における出力レート制御を説明するためのフローチャート
【図８】従来の符号化器の構成例を示すブロック図
【００１３】
●（第１の実施形態）
図１（ａ）は、第１の実施形態に係る撮像装置１００の、ＲＡＷデータの符号化に関する機能構成例を模式的に示すブロック図である。
制御部１０１は、例えばＣＰＵのようなプログラマブルプロセッサと、ＣＰＵが実行するプログラムを記憶するＲＯＭのような不揮発性メモリと、プログラムを実行時にロードするためのＲＡＭのような揮発性メモリとを有する。そして、ＣＰＵがプログラムを実行することにより、撮像装置１００の各ブロックの動作を制御し、後述する符号化処理を含む撮像装置１００の機能を実現する。
【００１４】
撮像部１０２は、撮像光学系と撮像素子とを含み、撮像光学系が撮像面に形成した被写体の光学像を撮像素子に配列された複数の画素で光電変換し、光学像に対応する画像信号を出力する。撮像部１０２における撮影条件の設定や露光制御は制御部１０１が行う。撮像光学系はフォーカスレンズ、変倍レンズ、絞りなどの可動部材と、それらを駆動するモータなどを含む。撮像素子は例えばＣＣＤまたはＣＭＯＳイメージセンサである。また、撮像部１０２はＡ／Ｄ変換機能を有し、画像信号をデジタル形式に変換する。なお、Ａ／Ｄ変換機能は撮像素子が有していてもよい。撮像素子から読み出されてデジタル形式に変換された画像信号は、画素あたり１つの色成分を有するＲＡＷデータである。撮像部１０２はＲＡＷデータを、メモリＩ／Ｆ部１０５を通じてメモリ１０４へ書き込む。
【００１５】
本実施形態では撮像素子が、図２に示した、Ｒ（赤）、Ｇ１（緑），Ｇ２（緑）、Ｂ（青）の４つの要素フィルタからなる繰り返し単位を有する原色ベイヤー配列のカラーフィルタを有するものとする。なお、他の色配列や色要素を有するカラーフィルタを備える撮像素子であってもよい。
【００１６】
ＲＡＷデータ符号化部１０３は、メモリ１０４へ格納された原色ベイヤー配列のＲＡＷデータを読み出し、画素プレーンごとに並列に符号化し、生成した符号化データをメモリ１０４へ再び書き込む。ＲＡＷデータ符号化部１０３の詳細な構成や動作については後述する。
【００１７】
メモリ１０４（第２の記憶手段）は、撮像装置１００の各部から出力される各種データを格納するための、例えば揮発性メモリで構成される記憶領域であり、ＲＡＷデータ符号化部１０３が有する複数の符号化部に共通した記憶領域（共用リソース）である。
【００１８】
メモリＩ／Ｆ部１０５（アクセス制御手段）は、複数の符号化部を含む、撮像装置１００の各部からのメモリ１０４に対するアクセス要求を調停し、メモリ１０４に対するアクセス（読み出しおよび書き込み）制御を行う。本実施形態でメモリＩ／Ｆ部１０５は、ＲＡＷデータ符号化部１０３（出力レート制御部１０３ｄ）からメモリ１０４のアクセス要求を受信すると、一定期間メモリ１０４へのアクセスを許可する許可信号をＲＡＷデータ符号化部１０３に出力する。
記録処理部１０６は、メモリ１０４に格納された符号化データを読み出し、所定の記録フォーマットで、例えば半導体メモリカードである記録媒体１０７へ記録する。
【００１９】
図１（ｂ）は、ＲＡＷデータ符号化部１０３の機能構成例を模式的に示すブロック図である。
コンポーネント変換部１０３ａは、ＲＡＷデータを構成する画素信号を、カラーフィルタの繰り返し単位に含まれる要素フィルタ（Ｒ，Ｇ１，Ｇ２，Ｂ）の種類ごとに分類して、４つの画素プレーン（Ｃ１〜Ｃ４）に変換する。４つのバッファ１０３ｂ（第１の記憶手段）は、４つの画素プレーンのうち、互いに異なる１つを格納する。４つの符号化部１０３ｃは、対応するバッファ１０３ｂに格納された画素プレーンを所定の方法で符号化し、符号化データを出力する。出力レート制御部１０３ｄは、符号化部１０３ｃから出力される符号化データの出力レートを制御する。以下、各部の動作についてさらに詳細に説明する。
【００２０】
コンポーネント変換部１０３ａは、ＲＡＷデータを分類したＲ、Ｇ１、Ｇ２、Ｂ信号をそのままの形式で画素プレーンとする変換モード１と、輝度成分と他の成分（例えば色差成分）とを表す信号形式に変換して画素プレーンとする変換モード２とを有する。変換モードは、例えば制御部１０１からの設定により動的に変更することができる。変換モードの設定はユーザの指示に基づいてもよいし、撮影モードなど、装置の動作モードに基づいてもよいし、他の情報に基づいてもよい。変換モード２では、例えば、Ｇ１およびＧ２信号を例えばハール変換によってＧ信号の低周波成分ＧＬと高周波成分ＧＨに変換し、さらに、Ｒ、ＧＬ、Ｂ信号の３要素を以下の式１に基づき変換する（ａ，ｂ，ｃ，ｄ，ｅは予め定めた変換係数）ことができる。
Ｄ１＝ａ×Ｒ＋ｂ×ＧＬ＋ｃ×Ｂ
Ｄ２＝ｄ×（Ｂ−Ｄ１）              式１
Ｄ３＝ｅ×（Ｒ−Ｄ１）
なお、これは一例であり、他の方法を変換モード２で実行してもよい。
【００２１】
なお、本実施形態のコンポーネント変換部１０３ａは、各変換モードにおいて、Ｒ，Ｇ１，Ｇ２，Ｂ信号を以下の様に画素プレーンＣ１〜Ｃ４に割り当てるものとする。
「変換モード１」
（Ｃ１，Ｃ２，Ｃ３，Ｃ４）＝（Ｒ，Ｇ１，Ｇ２，Ｂ）
「変換モード２」
（Ｃ１，Ｃ２，Ｃ３，Ｃ４）＝（Ｄ１，Ｄ２，Ｄ３，ＧＨ）
【００２２】
コンポーネント変換部１０３ａは、各画素プレーンを対応するバッファ１０３ｂへ書き込む。またコンポーネント変換部１０３ａは、バッファ１０３ｂに対する自身の書き込みアドレスと、符号化部１０３ｃによるバッファ１０３ｂの読み出しアドレスとから、各バッファ１０３ｂの残量を算出し、出力レート制御部１０３ｄへ出力する。
【００２３】
符号化部１０３ｃのそれぞれは、対応するバッファ１０３ｂに格納された画素プレーンを読み出して符号化し、符号化データを生成する。また、符号化部１０３ｃのそれぞれは、生成した符号化データをメモリ１０４に書き込むためのアクセス要求（以下、転送要求という）を出力レート制御部１０３ｄへ出力し、転送要求が許可されると符号化データを出力レート制御部１０３ｄへ出力する。なお、符号化部１０３ｃで行う符号化の方式に特に制限はなく、公知の可逆または不可逆符号化を適用することができる。一例を挙げれば、ウェーブレット変換や離散コサイン変換などによる周波数成分への変換処理、変換結果（変換係数）に対する量子化処理、量子化結果に対するゴロム符号化、ハフマン符号化、または算術符号化等の可変長符号化の組み合わせであってよい。
【００２４】
本実施形態において、コンポーネント変換部１０３ａが変換モード１で動作している場合には、符号化部１０３ｃが各画素プレーン（Ｒ，Ｇ１，Ｇ２，Ｂ）について発生させる符号量を均一化するような符号量制御が実行される。これは例えば発生符号量について同一の目標量を符号化部１０３ｃに設定することによって実現できる。例えば、画素プレーンＲ，Ｇ１，Ｇ２，Ｂについての発生符号量の目標値の比率が１：１：１：１となるように符号量制御を行うことができる。
【００２５】
コンポーネント変換部１０３ａが変換モード２で動作している場合、符号化対象の画素プレーンが、輝度成分を多く含む画素プレーンＤ１（Ｃ１）と、それ以外の画素プレーンＤ２，Ｄ３，ＧＨ（Ｃ２〜Ｃ４）である。そのため、視覚的に重要度の高い、輝度成分を多く含む画素プレーンＤ１について、他の画素プレーンよりも大きな出力レート（多い発生符号量）を許容するような符号量制御が実行される。これは例えば画素プレーンＤ１に対応する符号化部１０３ｃに設定する発生符号量についての目標量を、他の画素プレーンＤ２，Ｄ３，ＧＨに対応する符号化部１０３ｃに設定する発生符号量についての目標量より大きくすることによって実現できる。例えば、画素プレーンＤ１，Ｄ２，Ｄ３，ＧＨについての発生符号量の目標値の比率が３：１：１：１や３：１：１：２となるように符号量制御を行うことができる。
【００２６】
変換モードに応じた画素プレーンごと（または画素プレーンに対応する符号化部ごと）の発生符号量の目標値の関係（または割り当てられている符号化データ量）は、予め定められており、出力レート制御部１０３ｄに既知であるものとする。従って、出力レート制御部１０３ｄは、コンポーネント変換部１０３ａから、コンポーネント変換部１０３ａがどの変換モードで動作しているかの情報を取得することにより、複数の符号化部１０３ｃのそれぞれについて動的に出力レートを制御することができる。
【００２７】
出力レート制御部１０３ｄは、符号化部１０３ｃのそれぞれからの転送要求の優先度を、保持する優先度情報に基づいて判定し、最も優先度が高いと判定した転送要求をメモリＩ／Ｆ部１０５に対して出力する。メモリＩ／Ｆ部１０５は転送要求元に対してメモリ１０４のアクセス許可を与えるため、出力レート制御部１０３ｄがメモリＩ／Ｆ部１０５に出力する転送要求を選択することで、メモリ１０４への出力レートを符号化部１０３ｃごとに制御できる。
【００２８】
本実施形態では、出力レート制御部１０３ｄが保持する優先度情報を、コンポーネント変換部１０３ａの変換モードに応じて異なる方法で更新して符号化データの出力レートを動的に制御する。以下、本実施形態の出力レート制御方法（優先度情報の更新方法）について図３に示すフローチャートに基づき説明する。なお、図３に示す処理は所定の頻度で繰り返し実行される。
【００２９】
まず出力レート制御部１０３ｄは、符号化部１０３ｃから入力された転送要求の優先度を優先度情報に基づいて判定する（Ｓ３００）。ここで、優先度を判定すべき転送要求が存在しなければ、出力レート制御部１０３ｄは処理を終了する（Ｓ３０１，ｎｏ）。一方、優先度を判定すべき転送要求があれば、出力レート制御部１０３ｄは転送要求のうち優先度が最も高いと判定された転送要求をメモリＩ／Ｆ部１０５に対して出力し（Ｓ３０１，ｙｅｓ）、処理をＳ３０２に進める。
【００３０】
次に出力レート制御部１０３ｄは、コンポーネント変換部１０３ａが変換モード２で動作しているかどうか判定し（Ｓ３０２）、変換モード２で動作していると判定されればＳ３０３に処理を進める。また、出力レート制御部１０３ｄは、コンポーネント変換部１０３ａが変換モード２で動作していると判定されなければ（変換モード１で動作していると判定されれば）処理をＳ３０７に進め、優先度情報を更新する。この場合、Ｓ３０７で出力レート制御部１０３ｄは、Ｓ３０１でメモリＩ／Ｆ部１０５に出力した転送要求の要求元である符号化部１０３ｃの優先度を最下位に変更し、残りの符号化部１０３ｃの優先度を１つずつ上げることにより、優先度情報を更新する。なお、優先度は符号化部１０３ｃではなく、対応する画素プレーンに関連付けられてもよい。優先度情報を更新すると、出力レート制御部１０３ｄは処理を終了する。
【００３１】
一方、コンポーネント変換部１０３ａが変換モード２で動作していると判定された場合、Ｓ３０３で出力レート制御部１０３ｄは、メモリＩ／Ｆ部１０５に出力した転送要求が、所定の画素プレーンに関する符号化部１０３ｃからのものかどうか判定する。出力レート制御部１０３ｄは、メモリＩ／Ｆ部１０５に出力した転送要求が所定の画素プレーンに関する符号化部１０３ｃからのものと判定されればＳ３０４へ、判定されなければＳ３０７へ処理を進める。
【００３２】
本実施形態で出力レート制御部１０３ｄは、メモリＩ／Ｆ部１０５に出力した転送要求が画素プレーンＣ１に関連付けられた符号化部１０３ｃからの転送要求かどうかを判定する。変換モード２において画素プレーンＣ１には輝度成分を多く含むＤ１信号が割り当てられている。従って、本実施形態におけるＳ３０３の判定は、メモリＩ／Ｆ部１０５に出力した転送要求が、輝度成分を多く含む信号に関する転送要求かどうかの判定であってもよい。
【００３３】
メモリＩ／Ｆ部１０５に出力した転送要求が所定の画素プレーンに関する符号化部１０３ｃからのものと判定されなかった場合、Ｓ３０７で出力レート制御部１０３ｄは、変換モード１の場合と同様に優先度情報を更新する。すなわち、出力レート制御部１０３ｄは、Ｓ３０１でメモリＩ／Ｆ部１０５に出力した転送要求の要求元である符号化部１０３ｃの優先度を最下位に変更し、残りの符号化部１０３ｃの優先度を１つずつ上げることにより、優先度情報を更新する。
【００３４】
メモリＩ／Ｆ部１０５に出力した転送要求が所定の画素プレーンに関する符号化部１０３ｃからのものと判定された場合、Ｓ３０４で出力レート制御部１０３ｄは、カウンタｒｃｎｔをインクリメントする。カウンタｒｃｎｔは出力レート制御部１０３ｄが例えば内蔵するメモリに保持する変数であってよく、カウンタｒｃｎｔの初期値は０である。なお、カウンタｒｃｎｔの値は、所定の画素プレーンについての転送要求をメモリＩ／Ｆ部１０５に出力した回数を示す。
【００３５】
Ｓ３０５で出力レート制御部１０３ｄは、カウンタｒｃｎｔの値が所定値Ｎ（Ｎは１以上の整数）以上であるか判定し、Ｎ以上と判定された場合にはＳ３０６に、Ｎ以上と判定されない場合（Ｎ未満の場合）には優先度情報は変更せずに処理を終了する。
Ｓ３０６で出力レート制御部１０３ｄは、カウンタｒｃｎｔの値を０に初期化し、Ｓ３０７で優先度情報を更新する。ここでも、出力レート制御部１０３ｄは、Ｓ３０１でメモリＩ／Ｆ部１０５に出力した転送要求の要求元である符号化部１０３ｃの優先度を最下位に変更し、残りの符号化部１０３ｃの優先度を１つずつ上げることにより、優先度情報を更新する。
【００３６】
つまり、本実施形態では、コンポーネント変換部１０３ａの変換モードによらず、メモリＩ／Ｆ部１０５に出力した転送要求の要求元である符号化部１０３ｃの優先度を最下位に変更し、残りの符号化部１０３ｃの優先度を１つずつ上げて優先度情報を更新する。ただし、コンポーネント変換部１０３ａが変換モード２で動作している場合で、かつメモリＩ／Ｆ部１０５に出力した転送要求が特定の画素プレーンについての転送要求であった場合には、転送要求の出力回数が条件を満たすまで優先度情報を変更しない。換言すれば、転送要求の出力回数が条件を満たすまで、特定の画素プレーンに対する転送要求については優先度を下げない。
【００３７】
Ｓ３０７で優先度情報を更新すると、出力レート制御部１０３ｄは処理を終了する。上述したように、図３に示した出力レート制御動作は繰り返し実行される。繰り返しの頻度または周期に制限は無いが、メモリＩ／Ｆ部１０５から許可された転送処理が完了する都度実行したり、一定周期ごとに実行したりすることができる。
【００３８】
図３を用いて説明した出力レート制御の具体例を、図４に示すタイミングチャートを用いてさらに説明する。Ｃ１〜Ｃ４は画素プレーンを示し、ｐ１〜ｐ４は優先度情報における優先度を示し、値が小さい程優先度が高く、ｐ１が最高優先度である。Ｔ１〜Ｔ５は、出力レート制御部１０３ｄが図３の処理を実行し、転送要求をメモリＩ／Ｆ部１０５に出力したり、優先度情報を更新したりする時刻を示している。
【００３９】
図４（ａ）は、コンポーネント変換部１０３ａが変換モード１で動作している場合の例を示しており、初期状態の優先度情報では、画素プレーンと優先度とが例えば以下の様に関連付けられているものとする。
（Ｃ１，Ｃ２，Ｃ３，Ｃ４）＝（ｐ１，ｐ２，ｐ３，ｐ４）
また、各符号化部１０３ｃがＴ１において転送すべき符号化データを有しており、転送要求を出力するものとする。
【００４０】
Ｔ１で出力レート制御部１０３ｄは、優先度情報に基づいて、各符号化部１０３ｃからの転送要求のうち画素プレーンＣ１の転送要求をメモリＩ／Ｆ部１０５に出力する。また、出力レート制御部１０３ｄは、転送要求を出力した画素プレーンＣ１の優先度を最下位へ変更し、他の画素プレーンの優先度を１つずつ上げて優先度情報を更新する。更新後の優先度情報は以下のようになる。
（Ｃ１，Ｃ２，Ｃ３，Ｃ４）＝（ｐ４，ｐ１，ｐ２，ｐ３）
【００４１】
Ｔ１で出力した転送要求に対してメモリＩ／Ｆ部１０５から転送許可が与えられると、画素プレーンＣ１の符号化データが、対応する符号化部１０３ｃから出力レート制御部１０３ｄ、メモリＩ／Ｆ部１０５を通じてメモリ１０４に書き込まれる。この書き込みは符号化部１０３ｃによって行うことができる。転送許可期間が終了すると、画素プレーンＣ１の符号化データの書き込みは終了し、画素プレーンＣ１に対応する符号化部１０３ｃからの転送要求の出力および、出力レート制御部１０３ｄからの転送要求の出力も終了する。
【００４２】
Ｔ２になると、画素プレーンＣ１に対応する符号化部１０３ｃから再び転送要求が出力され、Ｔ１から継続して受信している画素プレーンＣ２〜Ｃ４に対応する符号化部１０３ｃからの転送要求を含め、出力レート制御部１０３ｄは４つの転送要求を受信する。Ｔ２において出力レート制御部１０３ｄは、優先度情報に基づき、画素プレーンＣ２についての転送要求をメモリＩ／Ｆ部１０５に出力する。さらに出力レート制御部１０３ｄは、転送要求を出力した画素プレーンＣ２の優先度を最下位へ変更し、他の画素プレーンの優先度を１つずつ上げて優先度情報を更新する。更新後の優先度情報は以下のようになる。
（Ｃ１，Ｃ２，Ｃ３，Ｃ４）＝（ｐ３，ｐ４，ｐ１，ｐ２）
【００４３】
Ｔ２で出力した転送要求に対してメモリＩ／Ｆ部１０５から転送許可が与えられると、画素プレーンＣ２の符号化データが、対応する符号化部１０３ｃから出力レート制御部１０３ｄ、メモリＩ／Ｆ部１０５を通じてメモリ１０４に書き込まれる。転送許可期間が終了すると、画素プレーンＣ２の符号化データの書き込みは終了し、画素プレーンＣ２に対応する符号化部１０３ｃからの転送要求の出力および、出力レート制御部１０３ｄからの転送要求の出力も終了する。
【００４４】
Ｔ３になると、画素プレーンＣ２に対応する符号化部１０３ｃから再び転送要求が出力され、継続して受信している他の画素プレーンＣ１，Ｃ３〜Ｃ４に対応する符号化部１０３ｃからの転送要求を含め、出力レート制御部１０３ｄは４つの転送要求を受信する。Ｔ３において出力レート制御部１０３ｄは、優先度情報に基づき、画素プレーンＣ３についての転送要求をメモリＩ／Ｆ部１０５に出力する。さらに出力レート制御部１０３ｄは、転送要求を出力した画素プレーンＣ３の優先度を最下位へ変更し、他の画素プレーンの優先度を１つずつ上げて優先度情報を更新する。更新後の優先度情報は以下のようになる。
（Ｃ１，Ｃ２，Ｃ３，Ｃ４）＝（ｐ２，ｐ３，ｐ４，ｐ１）
【００４５】
以下、同様にして、Ｔ４で出力レート制御部１０３ｄは、画素プレーンＣ４についての転送要求をメモリＩ／Ｆ部１０５に出力し、優先度情報を以下のように更新する。
（Ｃ１，Ｃ２，Ｃ３，Ｃ４）＝（ｐ１，ｐ２，ｐ３，ｐ４）
【００４６】
さらに、Ｔ５で出力レート制御部１０３ｄは、画素プレーンＣ１についての転送要求をメモリＩ／Ｆ部１０５に出力し、優先度情報を以下のように更新する。
（Ｃ１，Ｃ２，Ｃ３，Ｃ４）＝（ｐ４，ｐ１，ｐ２，ｐ３）
出力レート制御部１０３ｄは、以降も同様の処理を繰り返す。
【００４７】
上述の通り、コンポーネント変換部１０３ａが変換モード１で動作している場合には、符号化部１０３ｃが各画素プレーン（Ｒ，Ｇ１，Ｇ２，Ｂ）について発生させる符号量を均一化するような符号量制御が実行される。そのため、出力レート制御部１０３ｄでは、符号化部１０３ｃの各々に符号化データを転送する機会を均等に与えるよう、優先度情報を更新する（符号化部１０３ｃまたは画素プレーンの優先度を変更する）。これにより、各符号化部１０３ｃが転送許可される期間を均等とし、各画素プレーンに対する符号化データの出力レートが等しくなるような制御が実現できる。
【００４８】
図４（ｂ）は、コンポーネント変換部１０３ａが変換モード２で動作している場合の例を示しており、初期状態の優先度情報では、画素プレーンと優先度とが例えば以下の様に関連付けられているものとする。
（Ｃ１，Ｃ２，Ｃ３，Ｃ４）＝（ｐ１，ｐ２，ｐ３，ｐ４）
また、各符号化部１０３ｃがＴ１に一斉に転送要求を出力するものとする。さらに、Ｎ＝２が設定されているものとする。
【００４９】
Ｔ１で出力レート制御部１０３ｄは、優先度情報に基づいて、各符号化部１０３ｃからの転送要求のうち画素プレーンＣ１の転送要求をメモリＩ／Ｆ部１０５に出力する。また、出力レート制御部１０３ｄは、画素プレーンＣ１についての転送要求を出力したため、カウンタｒｃｎｔをインクリメントする。この時点ではカウンタｒｃｎｔの値は１であるため、出力レート制御部１０３ｄは優先度情報の更新は行わない。
【００５０】
Ｔ１で出力した転送要求に対してメモリＩ／Ｆ部１０５から転送許可が与えられると、画素プレーンＣ１の符号化データが、対応する符号化部１０３ｃから出力レート制御部１０３ｄ、メモリＩ／Ｆ部１０５を通じてメモリ１０４に書き込まれる。転送許可期間が終了すると、画素プレーンＣ１の符号化データの書き込みは終了し、画素プレーンＣ１に対応する符号化部１０３ｃからの転送要求の出力および、出力レート制御部１０３ｄからの転送要求の出力も終了する。
【００５１】
Ｔ２になると、画素プレーンＣ１に対応する符号化部１０３ｃから再び転送要求が出力され、Ｔ１から継続して受信している画素プレーンＣ２〜Ｃ４に対応する符号化部１０３ｃからの転送要求を含め、出力レート制御部１０３ｄは４つの転送要求を受信する。Ｔ１において優先度情報は更新されていないため、Ｔ２においても出力レート制御部１０３ｄは、優先度情報に基づき、画素プレーンＣ１についての転送要求をメモリＩ／Ｆ部１０５に出力する。また、出力レート制御部１０３ｄは、画素プレーンＣ１についての転送要求を出力したため、カウンタｒｃｎｔをインクリメントする。この時点ではカウンタｒｃｎｔの値は２となり、ｒｃｎｔ≧Ｎの条件を満たすため、出力レート制御部１０３ｄは優先度情報の更新を行う。
【００５２】
出力レート制御部１０３ｄは、転送要求を出力した画素プレーンＣ２の優先度を最下位へ変更し、他の画素プレーンの優先度を１つずつ上げて優先度情報を更新する。更新後の優先度情報は以下のようになる。
（Ｃ１，Ｃ２，Ｃ３，Ｃ４）＝（ｐ４，ｐ１，ｐ２，ｐ３）
【００５３】
Ｔ３からＴ５における出力レート制御部１０３ｄの動作は、図４（ａ）を参照して説明した、コンポーネント変換部１０３ａが変換モード１で動作する場合のＴ２からＴ４における動作と同じであるため、説明を省略する。
【００５４】
上述の通り、コンポーネント変換部１０３ａが変換モード２で動作している場合には、視覚的に重要度の高い、輝度成分を多く含む画素プレーンＣ１について、他の画素プレーンよりも多い発生符号量を許容するような符号量制御が実行される。そのため、出力レート制御部１０３ｄでは、画素プレーンＣ１に対応する符号化部１０３ｃが、他の画素プレーンに対応する符号化部１０３ｃより長い期間符号化データを転送許可される（より高い頻度で転送許可される）よう、優先度情報を更新する。
【００５５】
具体的には、画素プレーンＣ１に対応する符号化部１０３ｃ（または画素プレーンＣ１）の優先度が最高となる頻度を、他の画素プレーンに対応する符号化部（または他の画素プレーン）の優先度が最高となる頻度より多くなるように優先度情報を更新する。例えば、ここで説明したように、優先度情報の更新を行わないようにして画素プレーンＣ１に対応する符号化部１０３ｃ（または画素プレーンＣ１）の優先度が最高の状態を継続させることができる。あるいは、画素プレーンＣ１に対応する符号化部１０３ｃ（または画素プレーンＣ１）の優先度が最高となる周期を、他の画素プレーンに対応する符号化部１０３ｃ（または画素プレーン）よりも短くするように優先度情報を更新してもよい。
【００５６】
なお、ここでは画素プレーンＣ２〜Ｃ４に割り当てられる符号化データ量が共通であるため、画素プレーンＣ２〜Ｃ４の出力レートが均等になるように制御する例を示した。しかし、画素プレーンＣ２〜Ｃ４の少なくとも１つの画素プレーンの符号化データを他の画素プレーンの符号化データと異なる出力レートとなるように制御してもよい。
【００５７】
本実施形態では、コンポーネント変換部が動作する変換モードに応じて、あるいは複数の符号化部の各々に割り当てられる符号化データ量に応じて、符号化部の出力レートを制御することで、符号化部の出力レートを動的に制御することができる。さらに、コンポーネント変換部の動作モードに応じて、あるいは複数の符号化部の各々に割り当てられる符号化データ量に応じて、符号化部にデータの転送を許可する期間を動的に制御することができる。そのため、複数の符号化部において発生する符号化データの量の関係が動的に変化する場合であっても、個々の符号化部に適切な出力レートを実現することができ、共用リソースであるデータバスの帯域を効率的に利用することが可能になる。そのため、符号化部の性能を有効に活用し、符号化処理のスループットを向上させることが可能になる。
【００５８】
●（第２の実施形態）
次に第２の実施形態について説明する。第１の実施形態では符号化部１０３ｃの発生符号量が制御され、符号化部１０３ｃ間の発生符号量の関係が出力レート制御部１０３ｄに既知であった。本実施形態では符号化部１０３ｃ間の発生符号量の関係が出力レート制御部１０３ｄに未知の場合（あるいは発生符号量の関係を用いない場合）の出力レート制御に関する。以下、第１の実施形態と異なる部分について説明する。
【００５９】
本実施形態において出力レート制御部１０３ｄは各画素プレーン（または符号化部）の優先度を、対応するバッファ１０３ｂの残量に基づき更新して符号化データの出力レート制御を行う。図５は、本実施形態における出力レート制御部１０３ｄが行う出力レート制御動作（優先度情報の更新動作）を示すフローチャートである。
【００６０】
まず出力レート制御部１０３ｄは、符号化部１０３ｃから入力された転送要求の優先度を優先度情報に基づいて判定する（Ｓ５００）。ここで、優先度を判定すべき転送要求が存在しなければ、出力レート制御部１０３ｄは処理を終了する（Ｓ５０１，ｎｏ）。一方、優先度を判定すべき転送要求があれば、出力レート制御部１０３ｄは転送要求のうち優先度が最も高いと判定された転送要求をメモリＩ／Ｆ部１０５に対して出力し（Ｓ５０１，ｙｅｓ）、処理をＳ５０２に進める。
【００６１】
Ｓ５０２で出力レート制御部１０３ｄは、バッファ１０３ｂの残量を比較する。バッファ１０３ｂの残量は、上述の通り、コンポーネント変換部１０３ａが監視し、出力レート制御部１０３ｄに通知している。残量は空き容量のバイト数や、全容量に対する空き容量の割合など、任意の形式で表されてよい。
【００６２】
他のバッファより残量が少ないバッファがあれば、そのバッファに対応する画素プレーンの符号化処理が他の画素プレーンの符号化処理より遅延しており、符号化データの出力待ちが発生していると考えられる。そのため、Ｓ５０３で出力レート制御部１０３ｄは、残量が最も少ないバッファに対応する画素プレーンの優先度を最上位とするように優先度情報を更新する。本実施形態の出力レート制御は、コンポーネント変換部１０３ａが動作する変換モードに依存しない。
【００６３】
出力レート制御部１０３ｄは、以上の処理を繰り返し行う。このように、本実施形態の出力レート制御部１０３ｄは、残量が少ないバッファに対応する符号化部１０３ｃからの転送要求を優先的にメモリＩ／Ｆ部１０５に出力することで、適切な出力レートの制御を実現する。
【００６４】
図６は図４と同様の形態で、本実施形態の出力レート制御の具体例を模式的に示したタイミングチャートである。Ｃ１〜Ｃ４は画素プレーンを示し、ｐ１〜ｐ４は優先度情報における優先度を示し、値が小さい程優先度が高く、ｐ１が最高優先度である。Ｔ１〜Ｔ５は、出力レート制御部１０３ｄが図３の処理を実行し、転送要求をメモリＩ／Ｆ部１０５に出力したり、優先度情報を更新したりする時刻を示している。図４に対して、各画素プレーンＣ１〜Ｃ４に対応するバッファ１０３ｂの残量の経時変化が追加されている。
【００６５】
初期状態の優先度情報では、画素プレーンと優先度とが例えば以下の様に関連付けられているものとする。
（Ｃ１，Ｃ２，Ｃ３，Ｃ４）＝（ｐ１，ｐ２，ｐ３，ｐ４）
また、各符号化部１０３ｃがＴ１において転送すべき符号化データを有しており、転送要求を出力するものとする。
【００６６】
Ｔ１で出力レート制御部１０３ｄは、優先度情報に基づいて、各符号化部１０３ｃからの転送要求のうち画素プレーンＣ１の転送要求をメモリＩ／Ｆ部１０５に出力する。また、出力レート制御部１０３ｄは、各バッファ１０３ｂの残量を比較し、残量が最も少ない画素プレーンＣ４の優先度を最上位へ変更し、他の画素プレーンの優先度を１つずつ下げて優先度情報を更新する。更新後の優先度情報は以下のようになる。なお、優先度を残量の少ない方から順に付与してもよい。
（Ｃ１，Ｃ２，Ｃ３，Ｃ４）＝（ｐ２，ｐ３，ｐ４，ｐ１）
【００６７】
Ｔ１で出力した転送要求に対してメモリＩ／Ｆ部１０５から転送許可が与えられると、画素プレーンＣ１の符号化データが、対応する符号化部１０３ｃから出力レート制御部１０３ｄ、メモリＩ／Ｆ部１０５を通じてメモリ１０４に書き込まれる。転送許可期間が終了すると、画素プレーンＣ１の符号化データの書き込みは終了し、画素プレーンＣ１に対応する符号化部１０３ｃからの転送要求の出力および、出力レート制御部１０３ｄからの転送要求の出力も終了する。
【００６８】
Ｔ２になると、画素プレーンＣ１に対応する符号化部１０３ｃから再び転送要求が出力され、Ｔ１から継続して受信している画素プレーンＣ２〜Ｃ４に対応する符号化部１０３ｃからの転送要求を含め、出力レート制御部１０３ｄは４つの転送要求を受信する。Ｔ２において出力レート制御部１０３ｄは、優先度情報に基づき、画素プレーンＣ４についての転送要求をメモリＩ／Ｆ部１０５に出力する。また、出力レート制御部１０３ｄは、各バッファ１０３ｂの残量を比較し、残量が最も少ない画素プレーンＣ２の優先度を最上位へ変更し、他の画素プレーンの優先度を１つずつ下げて優先度情報を更新する。なお、すでに優先度が最低の画素プレーンＣ３については、優先度は変化しない。更新後の優先度情報は以下のようになる。
（Ｃ１，Ｃ２，Ｃ３，Ｃ４）＝（ｐ３，ｐ１，ｐ４，ｐ２）
そして、時刻Ｔ１の場合と同様にして、画素プレーンＣ４の符号化データがメモリ１０４に書き込まれる。
【００６９】
Ｔ３において出力レート制御部１０３ｄは、優先度情報に基づき、画素プレーンＣ２についての転送要求をメモリＩ／Ｆ部１０５に出力する。また、出力レート制御部１０３ｄは、各バッファ１０３ｂの残量を比較し、残量が最も少ない画素プレーンＣ３の優先度を最上位へ変更し、他の画素プレーンの優先度を１つずつ下げて優先度情報を更新する。更新後の優先度情報は以下のようになる。
（Ｃ１，Ｃ２，Ｃ３，Ｃ４）＝（ｐ４，ｐ２，ｐ１，ｐ３）
そして、時刻Ｔ１の場合と同様にして、画素プレーンＣ２の符号化データがメモリ１０４に書き込まれる。
【００７０】
Ｔ４においても同様に、出力レート制御部１０３ｄは、優先度情報に基づき、画素プレーンＣ３についての転送要求をメモリＩ／Ｆ部１０５に出力する。また、出力レート制御部１０３ｄは、バッファ残量が最も少ない画素プレーンＣ１の優先度を最上位へ変更し、他の画素プレーンの優先度を１つずつ下げて優先度情報を更新する。更新後の優先度情報は以下のようになる。
（Ｃ１，Ｃ２，Ｃ３，Ｃ４）＝（ｐ１，ｐ３，ｐ２，ｐ４）
そして、時刻Ｔ１の場合と同様にして、画素プレーンＣ３の符号化データがメモリ１０４に書き込まれる。
【００７１】
Ｔ５においても同様に、出力レート制御部１０３ｄは、優先度情報に基づき、画素プレーンＣ１についての転送要求をメモリＩ／Ｆ部１０５に出力する。また、出力レート制御部１０３ｄは、バッファ残量が最も少ない画素プレーンＣ４の優先度を最上位へ変更し、他の画素プレーンの優先度を１つずつ下げて優先度情報を更新する。更新後の優先度情報は以下のようになる。
（Ｃ１，Ｃ２，Ｃ３，Ｃ４）＝（ｐ２，ｐ４，ｐ３，ｐ１）
そして、時刻Ｔ１の場合と同様にして、画素プレーンＣ１の符号化データがメモリ１０４に書き込まれる。
以降も同様の処理を繰り返す。
【００７２】
このように、本実施形態によれば、画素プレーンを格納するバッファの残量または空き容量に応じて符号化部の出力レートを制御するので、符号化部の出力レートを動的に制御することができる。さらに、画素プレーンを格納するバッファの残量または空き容量を周期的に比較し、残量または空き容量が最も少ないバッファに対応する符号化部の転送要求の優先度を他の符号化部の転送要求の優先度より高くすることができる。これにより、発生符号量の多い、もしくは、符号化データの転送待ちが生じている符号化部に対してデータ転送が許可される期間が、他の符号化部より長くなり、適切な出力レート制御が実現できる。そのため、複数の符号化部において発生する符号化データの量の関係が変化する場合であっても、個々の符号化部に適切な出力レートを実現することができ、共用リソースであるデータバスの帯域を効率的に利用することが可能になる。そのため、符号化部の性能を有効に活用し、符号化処理のスループットを向上させることが可能になる。
【００７３】
●（第３の実施形態）
次に、第３の実施形態について説明する。第３の実施形態は、第１の実施形態の出力レート制御と第２の実施形態の出力レート制御とを組み合わせたものである。本実施形態の出力レート制御部１０３ｄは、コンポーネント変換部１０３ａが動作する変換モードに応じて優先度情報を更新した後、バッファの残量または空き容量とに応じてさらに優先度情報を変更する。
【００７４】
本実施形態の出力レート制御部１０３ｄの動作について、図７に示すフローチャートを用いて説明する。なお、図７において図３および図５と同様の処理ステップには同じ参照数字を付して説明を省略する。
【００７５】
図７に示すように、出力レート制御部１０３ｄは、まず第１の実施形態と同様にして優先度判定、転送要求の出力、および優先度の更新処理を行う（Ｓ３０１〜Ｓ３０７）。続いて出力レート制御部１０３ｄは、コンポーネント変換部１０３ａから受信したバッファ残量を比較する（Ｓ５０２）。そして、出力レート制御部１０３ｄは、残量が最も少ない画素プレーン（または対応する符号化部）の優先度を最上位へ変更し、他の画素プレーンの優先度を１つずつ下げて優先度情報を更新する（Ｓ５０３）。
【００７６】
本実施形態では、コンポーネント変換部が動作する変換モードに応じて、あるいは複数の符号化部の各々に割り当てられる符号化データ量に応じた出力レート制御に、バッファ残量または空き容量に応じた出力レート制御を組み合わせている。そのため、第１の実施形態の効果に加え、符号化部の発生符号量のばらつきが生じた場合においても適切な出力レート制御が可能になるという効果が実現できる。
【００７７】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００７８】
１００…撮像装置、１０１…制御部、１０３…ＲＡＷデータ符号化部、１０３ａ…コンポーネント変換部、１０３ｂ…バッファ、１０３ｃ…符号化部、１０３ｄ…出力レート制御部、１０４…メモリ、１０５…メモリＩ／Ｆ部
【図１】
0006556022.tif 000002
【図２】
0006556022.tif 000003
【図３】
0006556022.tif 000004
【図４】
0006556022.tif 000005
【図５】
0006556022.tif 000006
【図６】
0006556022.tif 000007
【図７】
0006556022.tif 000008
【図８】
0006556022.tif 000009