(57)【要約】      （修正有）【課題】固定長による処理を行いつつ、処理単位においてデータ量の適応的な割り当てを可能とする画像処理装置を提供する。【解決手段】画像処理装置は、画像符号化部１００において処理対象の画像を分割して得られた符号化ブロックを符号化して得られる符号量を算出する符号量算出部と、複数の符号化ブロックを含む符号化グループにおける各符号化ブロックついて前記符号量算出部により算出された符号量と基準符号量とに基づいて、前記各符号化ブロックに対して割り当てる割当符号量を決定する符号量割当部と、前記割当符号量を目標の符号量として前記各符号化ブロックを符号化し、符号化データを生成する符号化部とを備える。【選択図】図１
2019201288.tif 000002
【特許請求の範囲】
【請求項１】
処理対象の画像を分割して得られた符号化ブロックを符号化して得られる符号量を算出する符号量算出手段と、
複数の符号化ブロックを含む符号化グループにおける各符号化ブロックついて前記符号量算出手段により算出された符号量と基準符号量とに基づいて、前記各符号化ブロックに対して割り当てる割当符号量を決定する決定手段と、
前記割当符号量を目標の符号量として前記各符号化ブロックを符号化し、符号化データを生成する符号化手段と
を備え、
前記決定手段は、前記符号化グループにおける前記各符号化ブロックに対する割当符号量の合計が、複数の符号化グループの間で同一となるように、前記割当符号量を決定することを特徴とする画像処理装置。
【請求項２】
前記決定手段は、前記算出された符号量と前記基準符号量との差分を算出し、前記差分に基づいて前記割当符号量を決定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記決定手段は、
前記符号化グループに含まれる前記複数の符号化ブロックのうち、前記算出された符号量が前記基準符号量以下となる第１の符号化ブロックについて、前記算出された符号量を前記割当符号量に決定し、
前記符号化グループに含まれる前記複数の符号化ブロックのうち、前記算出された符号量が前記基準符号量よりも大きくなる第２の符号化ブロックについて、前記第１の符号化ブロックの前記算出された符号量と前記基準符号量との差分の合計を、前記第２の符号化ブロックに分配することにより、前記割当符号量を決定する
ことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記決定手段は、
前記第１の符号化ブロックの前記算出された符号量と前記基準符号量との差分の第１の合計と、前記第２の符号化ブロックの前記算出された符号量と前記基準符号量との差分の第２の合計とを比較し、
前記第１の合計が前記第２の合計より小さくない場合に、前記第２の符号化ブロックに対する割当符号量を、前記第２の符号化ブロックの前記算出された符号量に決定し、
前記第１の合計が前記第２の合計よりも小さい場合に、前記第２の符号化ブロックに対する割当符号量を、前記第１の合計と前記第２の合計との比率に応じて決定する
ことを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記決定手段は、
前記第１の合計が前記第２の合計よりも小さい場合に、前記第２の符号化ブロックの前記算出された符号量と前記基準符号量との差分を、前記第１の合計と前記第２の合計との比率に基づいて前記基準符号量に加算することにより、前記第２の符号化ブロックに対する割当符号量を決定することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記符号量算出手段は、前記符号化ブロックに含まれる各画素について、該画素の画素値と他の画素の予測値との予測差分を、所定の量子化ステップにより量子化し、可変長符号化した結果の符号量を算出することを特徴とする請求項１から５のいずれか1項に記載の画像処理装置。
【請求項７】
前記所定の量子化ステップは、最小の量子化ステップであることを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記符号化手段は、前記符号化データが、前記各符号化ブロックに割り当てられた前記割当符号量を超えないデータ量となるように、符号化方式と量子化パラメータとを選択して符号化することを特徴とする請求項１から７のいずれか１項に記載の画像処理装置。
【請求項９】
前記符号化手段は、前記符号化方式として、量子化された画像を出力する第１の符号化方式と、量子化された画像と予測画像との差分を符号化したデータを出力する第２の符号化方式とのいずれかを選択することを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
前記符号化データは、選択した前記符号化方式に応じたサイズのヘッダを含むことを特徴とする請求項８または９に記載の画像処理装置。
【請求項１１】
処理対象の画像を、複数の符号化ブロックを含む複数の分割領域に分割し、前記複数の符号化ブロックを圧縮して圧縮画像を生成する圧縮手段と、
前記圧縮手段により生成された圧縮画像を記憶する記憶部と、
を備え、
前記圧縮手段は、前記複数の符号化ブロックにおける各符号化ブロックに、目標圧縮データ量を設定して前記圧縮を行い、
前記目標圧縮データ量は、前記複数の符号化ブロックのうちの所定数の符号化ブロックごとの合計が同一になるように設定され、かつ、前記所定数の符号化ブロックのうち、異なる分割領域に含まれる第1の符号化ブロックの処理において利用される第２の符号化ブロックには、所定値が設定されることを特徴とする画像処理装置。
【請求項１２】
前記目標圧縮データ量は、画像の特徴に応じてデータ量の多い順に第１の値、第２の値、及び、第３の値が少なくとも含まれ、
前記所定数の符号化ブロックにおいて前記第１の値が割り当てられる符号化ブロックの数と、前記第３の値が割り当てられる符号化ブロックの数とが同数であることを特徴とする請求項１１に記載の画像処理装置。
【請求項１３】
前記画像の特徴は画像を圧縮する際の圧縮難易度を含み、
前記符号化ブロックには、
前記圧縮難易度が第１の閾値より大きい場合に前記第１の値が割り当てられ、
前記圧縮難易度が第２の閾値より小さい場合に前記第３の値が割り当てられ、
前記圧縮難易度が前記第１の閾値以下で前記第２の閾値以上の場合に前記第２の値が割り当てられることを特徴とする請求項１２に記載の画像処理装置。
【請求項１４】
前記記憶部に記憶された前記圧縮画像を前記記憶部から読み出し、読み出された前記圧縮画像を伸長する伸長手段を更に備え、
前記伸長手段は、読み出そうとする前記分割領域の前記圧縮画像に前記第1の符号化ブロックが含まれる場合、前記第２の符号化ブロックの圧縮画像を含めて読み出すことを特徴とする請求項１１から１３のいずれか１項に記載の画像処理装置。
【請求項１５】
前記所定数の符号化ブロックは、前記分割領域の１ラインを構成することを特徴とする請求項１１から１４のいずれか1項に記載の画像処理装置。
【請求項１６】
前記処理対象の画像を取得する取得手段をさらに備えることを特徴とする請求項１乃至１５のいずれか１項に記載の画像処理装置。
【請求項１７】
処理対象の画像を分割して得られた符号化ブロックを符号化して得られる符号量を算出する符号量算出工程と、
複数の符号化ブロックを含む符号化グループにおける各符号化ブロックついて前記符号量算出工程において算出された符号量と基準符号量とに基づいて、前記各符号化ブロックに対して割り当てる割当符号量を決定する決定工程と、
前記割当符号量を目標の符号量として前記各符号化ブロックを符号化し、符号化データを生成する符号化工程と
を含み、
前記決定工程では、前記符号化グループにおける前記各符号化ブロックについて決定した割当符号量の合計が、複数の符号化グループの間で同一となるように、前記割当符号量が決定されることを特徴とする画像処理方法。
【請求項１８】
処理対象の画像を、複数の符号化ブロックを含む複数の分割領域に分割し、前記複数の符号化ブロックを圧縮して圧縮画像を生成する圧縮工程と、
前記圧縮工程において生成された圧縮画像を記憶部に記憶する記憶工程と、
を含み、
前記圧縮工程では、前記複数の符号化ブロックにおける各符号化ブロックに、目標圧縮データ量を設定して前記圧縮が行われ、
前記目標圧縮データ量は、前記複数の符号化ブロックのうちの所定数の符号化ブロックごとの合計が同一になるように設定され、かつ、前記所定数の符号化ブロックのうち、異なる分割領域に含まれる第1の符号化ブロックの処理において利用される第２の符号化ブロックには、所定値が設定されることを特徴とする画像処理方法。
【請求項１９】
コンピュータを請求項１から１５のいずれか１項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置、画像処理方法、及び、プログラムに関する。
【背景技術】
【０００２】
近年、デジタルビデオなどの撮像装置は高解像度化、高フレームレート化に伴って、システムで扱う画像データ量が著しく増加しており、画像メモリやバスインターフェース回路の高速化が要求されている。これに対し、画像メモリやバスインターフェースの前後で画像の圧縮符号化を行って、画像データ量を削減することで回路の高速化の要求に対応することができる。この場合、画像圧縮のための符号化方式は回路規模が小型で、符号化遅延の小さいことが望まれる。そのため、従来のＪＰＥＧやＭＰＥＧ２に代表されるＤＣＴベースの符号化方式は不向きである。そこでＤＰＣＭベースの予測符号化方式での提案がされている（特許文献１を参照）。
【０００３】
また、撮像装置においては、画像データをメモリに記憶させて画像処理や符号化処理を行うことが一般的である。データ量の増大に伴いメモリへのアクセス量も増大し、メモリバスの帯域が逼迫してきている。ここでメモリに記憶されるデータを圧縮（メモリバス圧縮と呼称する）することでメモリバスの帯域を緩和する技術が提案されている（特許文献２を参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−００４５１４号公報
【特許文献２】特開２０１５−１７０９９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
提案に係るような予測符号化では、所定の符号化単位の符号長を固定して符号化を行う固定長符号化が行われる。また、提案に係るようなメモリバス圧縮では、圧縮方式として圧縮ブロックを固定長圧縮する方法が採用されている。
【０００６】
このように、所定の処理単位について固定長で符号化や圧縮等の処理を行う場合、画像の特性に応じて、データ量が不足したり、余剰であったりするため、固定長による処理を維持しつつも、個々の処理単位についてより適応的な符号長の割り当てが求められている。
【０００７】
そこで、本発明は、固定長による処理を行いつつ、処理単位においてデータ量の適応的な割り当てを可能とする技術を提供する。
【課題を解決するための手段】
【０００８】
上記課題を解決する画像処理装置は、
処理対象の画像を分割して得られた符号化ブロックを符号化して得られる符号量を算出する符号量算出手段と、
複数の符号化ブロックを含む符号化グループにおける各符号化ブロックついて前記符号量算出手段により算出された符号量と基準符号量とに基づいて、前記各符号化ブロックに対して割り当てる割当符号量を決定する決定手段と、
前記割当符号量を目標の符号量として前記各符号化ブロックを符号化し、符号化データを生成する符号化手段と
を備え、
前記決定手段は、前記符号化グループにおける前記各符号化ブロックに対する割当符号量の合計が、複数の符号化グループの間で同一となるように、前記割当符号量を決定することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、固定長による処理を行いつつ、処理単位においてデータ量の適応的な割り当てが可能となる。
【図面の簡単な説明】
【００１０】
【図１】発明の実施形態１に対応する画像符号化部１００の構成、画像データの各色プレーンの画素の構成、及び、符号化コア部１１０の構成をそれぞれ示す図。
【図２】発明の実施形態１に対応する符号量割当処理の一例を示すフローチャート。
【図３】発明の実施形態１に対応する符号量割当処理による割当符号量の一例を示すグラフ。
【図４】発明の実施形態１に対応する符号化部１０６の構成の一例を示すブロック図。
【図５】発明の実施形態１に対応する符号化パラメータ決定部４０３における処理手順の一例を示すフローチャート、および、符号化モード・最適ＱＰの決定処理の一例を示すフローチャート。
【図６】発明の実施形態１に対応するＱＰ毎の符号量の一例を示す図、及び、ＤＰＣＭモード及びＰＣＭモードの各符号化フォーマットのデータ構造一例を示す図。
【図７】発明の実施形態２に対応する、圧縮ブロックを圧縮した圧縮データ量の一例を示す図、メモリバス圧縮部の難易度に応じて再分配した圧縮データ量を示す図、及び、画像を左右分割しオーバーラップ領域と圧縮ブロックとの関係を説明するための図。
【図８】発明の実施形態２に対する画像処理装置の構成例を示すブロック図。
【図９】発明の実施形態２に対応する圧縮処理の一例を示すフローチャート。
【図１０】発明の実施形態２に対応するメモリバス圧縮部の固定長圧縮の単位を示す図、メモリバス圧縮部の難易度に応じて再分配した圧縮データ量を示す図、及び、オーバーラップを含む場合の読み出し位置を説明するための図。
【図１１】発明の実施形態２に対応する復号処理の一例を示すフローチャート。
【発明を実施するための形態】
【００１１】
以下、図面を参照しながら、発明の実施の形態を詳細に説明する。
【００１２】
［実施形態１］
以下、発明の第１の実施形態について説明する。本実施形態では、発明の実施形態に対応する画像処理装置の一形態として、撮像装置が有する画像符号化部に発明を適用した場合を説明する。以下では画像符号化部を撮像装置に含まれる一構成として説明するが、画像符号化部自体を一つの装置として捉え、画像符号化装置としてもよい。
【００１３】
図１（Ａ）は、発明の実施形態に係る撮像装置が有する画像符号化部１００の構成例を示すブロック図である。以下、本実施形態の画像符号化部１００の構成において、各ブロックの動作について説明する。図１（Ａ）に示した画像符号化部１００は、符号量算出部１０３、符号量割当部１０４、遅延部１０５、符号化部１０６から構成されている。
【００１４】
画像符号化部１００は処理対象の画像データを所定のサイズの符号化ブロックに分割し、これを符号化対象ブロックとして符号化ブロック毎に符号化処理を実施する。本実施形態では画像データの信号フォーマットは輝度信号Ｙ、色差信号Ｃｂ、ＣｒからなるＹＣｂＣｒ４：２：２信号で、ビット深度は１０ビットとする。また符号化ブロックサイズは、輝度信号Ｙは水平３２画素×垂直１画素、色差信号Ｃｂは水平１６画素×垂直１画素、色差信号Ｃｒは水平１６画素×垂直１画素の合計６４画素を一つの符号化ブロックであり、平均圧縮率は６／１０として説明する。
【００１５】
なお、本実施形態において、画像データの信号フォーマットはＹＣｂＣｒに限定されるものではなく、グレースケール、ＲＧＢ、ベイヤー配列データなどの画像データ形式であってもよい。画像データのビット数は１０ビットに限定されるものではなく、８ビット、１２ビットなどであってもよい。また、符号化ブロックサイズは水平３２画素×垂直１画に限定されるものではなく任意のサイズでよい。例えば水平８画素×垂直８画素のように２次元構造としてもよい。
【００１６】
符号化ブロックに分割された画像データの各色プレーンの画素は図１（Ｂ）に示すようにＣｂ０、Ｙ０、Ｃｒ０、Ｙ１、・・・の順で多重化されて、入力端子１０１を介し、画像符号化部１００に入力される。当該入力端子１０１に入力される画像データは、例えば後述する図８に示す撮像部８０１から出力された画像データを取得してもよいし、あるいは、メモリ８０５に記憶されている画像データを取得してもよい。
【００１７】
次に、本実施形態の画像符号化部１００を構成する各ブロックのうち、符号量算出部１０３の具体的な構成としての符号化コア部１１０について図１（Ｃ）を参照して説明する。図１（Ｃ）は符号化コア部１１０の構成を示すブロック図である。同図において、外部からは画像データと、量子化パラメータ（以降、ＱＰ）、符号化モードが入力されている。
【００１８】
減算器１１１は入力された画像データの画素ごとに、後述の予測値生成部１１５で生成された予測値を減算して、予測差分データを算出する。予測差分データは正負の値を持つデータであり、画像データの変動の小さい平坦な部分では０付近の値となり、また、変動の大きいエッジ部分などでは大きな差分値になる。予測差分データは一般に０を中心としたラプラス分布の特性を持つ。セレクタ１１７は符号化モードに応じて画像データを切り替えるセレクタである。セレクタ１１７は、符号化モードがＤＰＣＭモードの場合は減算器１１１からの予測差分データを選択し、ＰＣＭモードの場合は入力された画像データを選択して量子化部１１２に出力する。符号化モードについては後述する。
【００１９】
量子化部１１２はセレクタ１１７から出力されたデータをＱＰに対応する量子化ステップを用いて量子化する。量子化ステップはＱＰが小さいほど細かくして、ＱＰが大きいほど粗くする。ＱＰが０の場合は量子化ステップを１とする。量子化ステップが１の場合は入力された値がそのまま出力されるので、量子化による劣化が生じない可逆符号化となる。量子化されたデータは量子化データとして、逆量子化部１１３、可変長符号化部１１６および符号化コア部１１０の外部に出力する。
【００２０】
逆量子化部１１３は量子化部１１２が出力した量子化データを量子化部１１２と同じ量子化ステップを用いて逆量子する。加算器１１４は逆量子化された量子化データと、後述の予測値とを加算して復号値を算出する。予測値生成部１１５は復号値から予測値（予測画像）を生成する。予測値生成部１１５は、色プレーンＹ，Ｃｂ、Ｃｒそれぞれに少なくとも１画素分の復号値を保持しており、符号化対象画素と同じ色プレーンの復号値を用いて予測値が生成される。例えば、符号化対象画素の左側の復号値を予測値とすることができる。なお、符号化ブロックの最初の画素は復号値が存在しないので、所定の値を予測値として用いる。例えば信号レンジの中間値（ビット深度１０ビットの場合は５１２）等を用いることができる。
【００２１】
可変長符号化部１１６は入力された量子化データに対し、所定の可変長符号化方式による符号化処理を行って、画素毎に符号データと符号長とを出力する。所定の可変長符号化方式とはハフマン符号、ゴロム符号などである。可変長符号化部１１６における符号化処理では、入力値が０の場合に最も短い符号長の符号データが割り当てられており、入力値の絶対値が大きくなるほど、長い符号長の符号データが割り当てられている。入力データが予測差分データの量子化データである場合、前述のように０中心のラプラス分布特性であり、０付近の発生頻度が高く、予測差分データの絶対値が大きいほど発生頻度が低い。発生頻度の高い値に短い符号データを割り当て、発生頻度の低い値に長い符号データを割り当てる事により、符号化ブロック全体としては発生する符号長を小さくすることができる。
【００２２】
ここで、符号化モードについて説明する。符号化コア部１１０における符号化モードはＤＰＣＭ（Differential Pulse Code Modulation）モードとＰＣＭ（Pulse Code Modulation）モードとがある。ＤＰＣＭモードは、符号化ブロックの各画素について、他の画素との画素値の差分を、所定の量子化ステップにより量子化し、可変長符号化した結果の符号量を算出するモードである。より具体的には、減算器１１１で予測差分データを生成し、量子化部１１２で量子化し可変長符号化部１１６で可変長符号化を行うモードであり、画像データやＱＰによって可変長の符号が生成される符号化モードである。一方、ＰＣＭモードは入力された画像データをそのまま量子化部１１２で量子化して量子化データとして出力するモードであり、ＱＰによって一意の固定長の符号が生成される符号化モードである。
【００２３】
図１（Ａ）に戻り、画像符号化部１００の説明を続ける。図１（Ａ）において、画像符号化部１００に入力された画像データは符号量算出部１０３に入力される。符号量算出部１０３には画像データが入力され、ＱＰとして０が入力され、符号化モードとしてＤＰＣＭモードが入力されている。これにより符号量算出部１０３ではＤＰＣＭモードにてＱＰ＝０すなわち量子化ステップが１での符号化処理が行われて符号長が画素毎に出力される。入力画像データは図１（Ｂ）に示すようにＣｂ０、Ｙ０、Ｃｒ０、Ｙ１・・・と１画素ずつ入力されており、符号長の出力もこの順番で１画素分ずつ出力される。
【００２４】
ここで、量子化ステップが１ということは、量子化による符号化誤差が全く存在しない可逆の状態での符号長が算出される。このようにすることで、平坦なブロックは可逆符号化が可能な符号量割り当てがなされるようになる。その必要がなければ、ＱＰは量子化ステップが１以上となるＱＰを用いてもよい。符号量算出部１０３は図１（Ｃ）に示した符号化コア部１１０として構成することができ、出力信号には量子化データ、符号データ、符号長が含まれるが、ここでは符号長のみを使用する。符号量算出部１０３は、符号量割当部１０４に対して符号長を出力する。
【００２５】
次に、符号量割当部１０４は符号量算出部１０３から提供された画素毎の符号長を用いて、符号化ブロック毎に符号量を割り当てる。割り当てられた符号量（割当符号量）は、符号化部１０６に出力される。遅延部１０５は符号量算出部１０３および符号量割当部１０４が、後述する符号化グループに含まれる複数の符号化ブロックについて符号量算出及び符号量割当処理を実行するための期間だけ、画像データを遅延させて符号化部１０６へ出力する。これにより、符号化部１０６は、入力符号化ブロックを当該符号化ブロックについて算出された割当符号量を用いて符号化を行うことができる。符号化部１０６は、遅延部１０５から遅延入力された画像データにつき、符号化ブロック毎に指定される割当符号量を用いて符号化処理を実行する。
【００２６】
次に、符号量割当部１０４における処理内容を詳細に説明する。本実施形態では、複数の符号化ブロックを１つのグループとして固定長の符号量を割り当てる。この複数の符号化ブロックのことを以下では「符号化グループ」という。符号化グループのことを「固定長化期間」と呼ぶこともできる。符号量割当部１０４は、符号化グループ毎にそこに含まれる各符号化ブロックに割り当てる符号量を決定する。符号化グループを構成する符号化ブロックの数は、任意の数とすることができ、例えば２ブロックあるいはそれ以上のブロック数でもよいし、画像データの１ライン、１フレームなどでもよい。
【００２７】
符号量割当部１０４の動作を図２のフローチャートを参照して説明する。図２は、発明の実施形態に対応する符号量割当処理の一例を示すフローチャートである。本符号化量割当処理は、符号化グループごとに実行される。本処理が開始されると、まず、Ｓ２０１において、符号量割当部１０４は、符号量算出部１０３から出力された画素単位の符号長から、符号化ブロックの符号量を集計し、符号化グループに属する複数の符号化ブロックのそれぞれの符号量を取得する。このとき得られた符号化ブロック毎の符号量を、ブロック番号ｂｌｋを要素として、ｂｌｋ＿ｓｉｚｅ［ｂｌｋ］とする。
【００２８】
次に、符号量割当部１０４は、Ｓ２０２において本処理において用いる変数ｂｌｋ，ｒｅｍａｉｎ、ｅｘｃｅｅｄを０にリセットする。続くＳ２０３において、ｂｌｋの値に対応する符号化ブロックの符号量ｂｌｋ＿ｓｉｚｅ［ｂｌｋ］と符号化ブロックの基準符号量ＲＥＦＥＲＥＮＣＥ＿ＳＩＺＥとを比較する。符号化ブロックの符号量が基準符号量以下の場合（Ｓ２０３で「ＹＥＳ」）、処理はＳ２０４に進む。Ｓ２０４では、符号量割当部１０４は、符号化ブロックの符号量が基準符号量を下回った分の値を残余符号量ｒｅｍａｉｎに累積し、その後に処理はＳ２０６に進む。一方、符号化ブロックの符号量が基準符号量を超えている場合（Ｓ２０３で「ＮＯ」）、処理はＳ２０５に進む。Ｓ２０５では、符号化ブロックの符号量が基準符号量を上回った分の値を超過符号量ｅｘｃｅｅｄに累積し、その後に処理はＳ２０６に進む。
【００２９】
これにより、ｒｅｍａｉｎには、符号化グループに属する複数の符号化ブロックのうち、基準符号量を下回った符号化ブロックについて、その符号量と基準符号量との差分値が累計される。一方、ｅｘｃｅｅｄには同基準符号量を上回った符号化ブロックについて、その符号量と基準符号量との差分が累計される。
【００３０】
続くＳ２０６において、符号量割当部１０４は、ｂｌｋの値が符号化グループに含まれる符号化ブロック数を示すＢＬＫ＿ＮＵＭより小さいかどうか、すなわち、未処理の符号化ブロックが存在するかどうかを判定する。未処理の符号化ブロックが存在する場合（Ｓ２０６で「ＹＥＳ」）、Ｓ２０７においてｂｌｋの値を１つ更新して、Ｓ２０３に戻って次のブロックを選択して上述の処理を繰り返す。未処理の符号化ブロックが存在しない場合（Ｓ２０６で「ＮＯ」）、処理はＳ２０８に進む。
【００３１】
Ｓ２０８において、符号量割当部１０４はｒｅｍａｉｎとｅｘｃｅｅｄとを比較し、ｒｅｍａｉｎがｅｘｃｅｅｄより小さい場合（Ｓ２０８で「ＹＥＳ」）、Ｓ２０９において増加率ｒａｔｅをｒｅｍａｉｎ／ｅｘｃｅｅｄを算出して取得する。一方、ｒｅｍａｉｎがｅｘｃｅｅｄ以上の場合（Ｓ２０８で「ＮＯ」）、Ｓ２１０において増加率ｒａｔｅを１とする。
【００３２】
次にＳ２１１において変数ｂｌｋを再び０にセットし、Ｓ２１２においてｂｌｋの値に対応する符号化ブロックの符号量ｂｌｋ＿ｓｉｚｅ［ｂｌｋ］と基準符号量ＲＥＦＥＲＥＮＣＥ＿ＳＩＺＥとを比較する。符号化ブロックの符号量が基準符号量以下の場合（Ｓ２１２で「ＹＥＳ」）、処理はＳ２１３に進む。Ｓ２１３において符号量割当部１０４は、当該符号量が基準符号量以下の第１の符号化ブロックに相当する符号化ブロック［ｂｌｋ］に対する割当符号量ａｓｓｉｇｎ＿ｓｉｚｅ［ｂｌｋ］を、符号化ブロックの符号量そのものであるｂｌｋ＿ｓｉｚｅ［ｂｌｋ］とする。その後、処理はＳ２１５に進む。
【００３３】
一方、符号化ブロックの符号量が基準符号量を超える場合（Ｓ２１２で「ＮＯ」）、処理はＳ２１４に進む。Ｓ２１４において符号量割当部１０４は、符号量が基準符号量を超える第２の符号化ブロックに相当する符号化ブロック［ｂｌｋ］に対する割当符号量ａｓｓｉｇｎ＿ｓｉｚｅ［ｂｌｋ］を、第１の符号化ブロックから得られた残余分を利用して以下の式１に基づき設定する。その後、処理は、Ｓ２１５に進む。
【００３４】
ＴＡＲＧＥＴ＿ＳＩＺＥ＝ＴＡＲＧＥＴ＿ＳＩＺＥ＋（ｂｌｋ＿ｓｉｚｅ［ｂｌｋ］−ＴＡＲＧＥＴ＿ＳＩＺＥ）＊ｒａｔｅ    （式１）
式１においてｒａｔｅの値は、Ｓ２０９またはＳ２１０で設定した値が用いられる。続くＳ２１５において、符号量割当部１０４は、ｂｌｋの値が上記ＢＬＫ＿ＮＵＭより小さいかどうか、すなわち、未処理の符号化ブロックが存在するかどうかを判定する。未処理の符号化ブロックが存在する場合（Ｓ２１５で「ＹＥＳ」）、Ｓ２１６においてｂｌｋの値を１つ更新して、Ｓ２１２に戻って次のブロックを選択して上述の処理を繰り返す。未処理の符号化ブロックが存在しない場合（Ｓ２１５で「ＮＯ」）、本処理を終了する。
【００３５】
以上のようにして決定した割当符号量は以下のようなことが言える。まず、符号量算出部１０３は量子化ステップを１とした場合の符号量、すなわち、可逆符号化における符号量（無劣化で符号化可能な符号量）を算出している。そのため、上述の第１の符号化ブロックについては、無劣化で符号化しても基準符号量に対して残余分が生じているので、その符号量をブロックの割当符号量とすることで、最小限の符号量で可逆符号化を行うことができる。一方、第２の符号化ブロックについては、この残余分を利用して割当符号量を基準符号量よりも大きくすることができる。
【００３６】
具体的に、残余符号量と超過符号量の比率から増加率を求め、基準符号量を上回った分に増加率を乗じて基準符号量を加算して、割当符号量を算出している。これにより、第１の符号化ブロックによる残余符号量を余すことなく第２の符号化ブロックに配分することができる。このようにして算出された割当符号量は、基準符号量の代わりに符号化部１０６が行う符号化処理における目標符号量として利用されることとなり、複数の符号化ブロックからなるグループ単位に固定長符号化を実現しつつも画質劣化を低減することができる。
【００３７】
図３に本処理によって算出された１つの符号化グループ分の割当符号量の一例のグラフを示す。図中、実線３０１は基準符号量（３８４ビット）である。実線３０２は符号量算出部１０３で算出された符号化ブロック毎の算出符号量である。点線３０３は、上記割当処理により求められた割当符号量である。本実施形態の割当処理によらない固定的な符号量の割当方法であれば、全てのブロックに均一に３８４ビットの符号量が割り当てられることになる。これに対し、本実施形態の割当処理によれば、ブロックの発生符号量に応じて１７０〜６００ビットに符号量を割り当てつつ、符号化グループにおいては固定長の符号量を維持することができる。
【００３８】
次に、図４を参照して、符号化部１０６の内部構成を説明する。図４に示した符号化部１０６は、仮符号化系４００と本符号化系４１０の２つの大ブロックより構成される。さらに仮符号化系４００は仮符号化部４０２−０〜４０２−Ｎ、符号化パラメータ決定部４０３を含み、本符号化系４１０は遅延部４１１、本符号化部４１２、多重化部４１３、ＱＰ生成部４１４を含んでいる。
【００３９】
まず、仮符号化系４００について説明する。仮符号化系４００に入力された画像データは複数の仮符号化部４０２−０〜４０２−Ｎに入力される。ここで、Ｎは、利用するＱＰ（０からＮ）の数に対応する。仮符号化部４０２−０〜４０２−Ｎではそれぞれ異なる複数のＱＰ（０〜Ｎ）で仮符号化処理が行われ、各ＱＰで行われた符号化処理で得られた符号長が画素毎に順次出力される。画像データは、図１（Ｂ）に示すようにＣｂ０、Ｙ０、Ｃｒ０、Ｙ１・・・と１画素ずつ入力され、符号長の出力もこの順番で１画素分ずつ出力される。仮符号化部４０２−０〜４０２−Ｎは前述の符号化コア部１１０であり、出力信号として、量子化データ、符号データ、符号長が存在するが、この仮符号化系４００では符号長のみが使用される。仮符号化部４０２−０〜４０２−Ｎの符号長が符号化パラメータ決定部４０３に出力される。
【００４０】
符号化パラメータ決定部４０３は仮符号化部４０２−０〜４０２−Ｎからの複数のＱＰ毎の符号長と、割当符号量とに基づいて符号化ブロック毎に、発生符号量が割当符号量以下となる符号化モードと最適なＱＰを決定する。符号化パラメータ決定部４０３は、決定した符号化パラメータを本符号化系４１０に出力する。
【００４１】
以下、符号化パラメータ決定部４０３における処理内容の詳細を説明する。本施形態における、符号化パラメータ決定部４０３の処理手順について、図５を参照して説明する。図５（Ａ）において、符号化ブロック毎に処理が開始されると、Ｓ５０１において符号化パラメータ決定部４０３は、仮符号化部４０２−０〜４０２−Ｎのそれぞれから、対応するＱＰを用いた仮符号化処理により得られた符号長を画素毎に取得する。続くＳ５０２において符号化パラメータ決定部４０３は、１つの符号化ブロックに含まれる画素数分だけ取得した画素毎の符号長を累積し、符号化ブロック全体の符号量を求める。当該符号量はＱＰ毎に算出する。本実施形態において算出された符号量を、ＱＰ値：ｑｐを要素として、ブロック符号量：ｂｌ＿ｓｉｚｅ［ｑｐ］と表す。
【００４２】
次に、Ｓ５０３において符号化パラメータ決定部４０３は、Ｓ５０２において算出されたブロック符号量ｂｌ＿ｓｉｚｅ［ｑｐ］と、割当符号量、ＰＣＭモードでの符号量に基づいて、該符号化ブロックの符号化における符号化モード及び最適ＱＰを決定する。
【００４３】
以下、Ｓ５０３における具体的な処理について図５（Ｂ）のフローチャートを参照して説明する。図５（Ｂ）は発明の実施形態に対応する符号化モード・最適ＱＰの決定処理の一例を示すフローチャートである。処理の概要としてはＱＰ毎の符号量を用いてブロック符号量が割り当て符号量以下となる最も小さいＱＰを選定するとともに、符号化モードを決定する。
【００４４】
まずＳ５１１において、符号化パラメータ決定部４０３は、処理において符号量算出に用いる変数ｑｐを初期化（０にセット）する。次に、Ｓ５１２において、現在設定されているｑｐの値に基づく量子化処理により符号化処理を行った場合の符号化ブロック全体の符号量を算出する。符号化ブロックの符号量は、仮符号化部から得た符号量ｂｌ＿ｓｉｚｅ［ｑｐ］と符号化ブロック毎に必要なヘッダ情報の符号量ｂｌ＿ｓｉｚｅ＿ｈを加算することにより算出することができる。ヘッダ情報のデータ量は、例えば符号化モードを示す１ビット、ＱＰ値を示す４ビットの計５ビットである。
【００４５】
次に、Ｓ５１３において、符号化パラメータ決定部４０３は、算出した符号化ブロックの符号量が、対応する符号化ブロックに割り当てられた割当符号量ＡＳＳＩＧＮ＿ＳＩＺＥ以下であるかどうかを判定する。符号化ブロックの符号量が割当符号量ＡＳＳＩＧＮ＿ＳＩＺＥ以下の場合（Ｓ５１３で「ＹＥＳ」）、処理はＳ５１４に進む。Ｓ５１４において、符号化パラメータ決定部４０３は、この時のｑｐ値を最適ＱＰとして変数ｓｅｌ＿ｑｐにセットし、続くＳ５１８において符号化モードｅｎｃ＿ｍｏｄｅをＤＰＣＭモードに設定した後、本処理を終了する。
【００４６】
また、符号化ブロックの符号量が割当符号量ＡＳＳＩＧＮ＿ＳＩＺＥを超える場合（Ｓ６１３で「ＮＯ」）、処理はＳ５１５に進み、ｑｐの値が最大値のＭＡＸ＿ＱＰよりも小さいかどうかを判定する。ここで、ｑｐの値が最大値より小さい場合（Ｓ５１５において「ＹＥＳ」）、処理はＳ５１６に進み、ｑｐの値をインクリメントしてＳ５１２に戻って上記処理を繰り返し、割当符号量以下となるＱＰを選定する。一方、ｑｐの値が最大値と一致する場合（Ｓ５１５において「ＮＯ」）、処理はＳ５１７に進む。
【００４７】
Ｓ５１５の判定においてｑｐの値が最大値に一致した場合は、どのＱＰ値を用いても当該符号化ブロックの発生符号量が割当符号量以下にならないことを意味する。この場合、ＤＰＣＭモードでの符号化では固定長符号化が実現できないことになるので、符号化モードをＰＣＭモードに設定する。Ｓ５１７では、符号化モードｅｎｃ＿ｍｏｄｅをＰＣＭモードに設定した後、本処理を終了する。
【００４８】
次に図６を参照して、最適ＱＰの選定方法の具体例を説明する。図６（Ａ）は、符号化ブロックをＱＰ：０〜１５で仮符号した場合の、輝度信号および色差信号の符号量（ビット）の一例を示す表である。当該表６００において、割当符号量ＡＳＳＩＧＮ＿ＳＩＺＥを３８４ビット、ＭＡＸ＿ＱＰを１５とする。この符号化ブロックの色差優遇モードが無効と決定された場合、ヘッダ符号量、輝度信号符号量、色差信号符号量の合計のデータ量が割当符号量の３８４以下となる最小のｑｐは、合計が３７８ビットのｑｐ：７となる。
【００４９】
このようにして決定した符号化モード及び最適ＱＰ値のことを、本実施形態では符号化パラメータと呼ぶこととする。符号化パラメータ決定部４０３は、上述のようにして符号化パラメータを決定することができる。
【００５０】
ここで、図４の説明に戻り、本符号化系４１０について説明する。仮符号化系４００に入力された画像データは本符号化系４１０にも入力され、遅延部４１１に供給される。遅延部４１１は、仮符号化系４００において符号化パラメータを生成するために必要な処理サイクル分だけ入力画像データを遅延させて本符号化部４１２へ出力する。これにより、本符号化部４１２は仮符号化系４００で処理した同一の符号化ブロックを、仮符号化系４００で決定した符号化モード、最適ＱＰ値を用いて符号化処理することができる。
【００５１】
本符号化部４１２の構成は、前述の符号化コア部１１０の構成にすることができる。本符号化部４１２は、仮符号化系４００で決定した符号化パラメータを用いて、遅延された画像データを符号化する本符号化処理を実行する。本符号化処理によれば、符号化パラメータ決定部４０３で算出したブロック符号長と同じ符号長の符号データが生成され、多重化部２１３に出力される。
【００５２】
ＱＰ生成部４１４は符号化パラメータに応じて、符号化ブロックの各画素に異なるＱＰを適用する必要がある場合に画素毎のＱＰを生成して本符号化部４１２に出力する。詳細な動作については後述する。多重化部４１３には、本符号化部４１２からの符号データ、符号長、量子化データ、符号化パラメータ決定部４０３からの符号化パラメータが入力され、符号化ブロック毎に所定のフォーマットで多重化を行ない、ストリームデータを出力する。ストリームデータは、図１の出力端子１０２に出力され、不図示の画像メモリやバスインターフェースにさらに出力される。
【００５３】
ここで、図６（Ｂ）及び（Ｃ）を参照して、ストリームデータのフォーマットについて説明する。図６（Ｂ）は符号化モードがＤＰＣＭモード時のフォーマットのデータ構造の一例を示す図であり、ブロックの全体の符号化データ６０１は、ヘッダ部６０２（５ビット）と、画素データ部６０３（可変長）を含むように構成される。また、ヘッダ部６０２は符号化モード６０４（１ビット）、最適ＱＰ値６０６（４ビット）を含む。画素データ部６０３には画素数分（６４画素分）の可変長の符号データが格納される。
【００５４】
図６（Ｃ）は、符号化モードがＰＣＭモード時のフォーマットのデータ構造の一例を示す図であり、ブロックの全体の符号化データ６１１は、ヘッダ部６１２（１ビット）と、画素データ部６１３（３８３ビット）を含むように構成される。また、ヘッダ部６１２は符号化モード（１ビット）が格納され、画素データ部６１３には画素数分（６４画素分）のＰＣＭデータが格納される。
【００５５】
ここでＰＣＭモード時の符号化方法について説明する。ＰＣＭモードはＤＰＣＭモードでは発生符号量が割当符号量に収まらない場合に用いられる符号化モードである。そのデータ構造は図６（Ｃ）に示すようにヘッダ部６１２にＰＣＭモードを示す符号化モード１ビットと、画素データ部６１３のＰＣＭデータで構成されている。ＰＣＭデータは、全画素を固定長で量子化したデータが格納される。ヘッダ部６１２に１ビットを使用しているので、符号化ブロック中の１画素は他の画素より１ビット削減して量子化されるようにする。例えば、本実施形態においては輝度信号の最初の画素Ｙ０を５ビットに量子化し、輝度信号の他の３１画素と色差信号３２画素合わせて６３画素は６ビットに量子化する。こうすることで、ヘッダ部１ビットと画素データ部３８３ビットあわせて３８４ビットに符号化することができる。
【００５６】
次に、ＱＰ生成部４１４の動作について説明する。ＱＰ生成部４１４は、符号化モードがＤＰＣＭモードの場合は、各画素のＱＰは符号化パラメータ決定部４０３が決定した最適ＱＰを適用するようにＱＰを生成し出力する。また、符号化モードがＰＣＭモードの場合は、上記に述べたＰＣＭモード時の量子化がなされるようにＱＰを生成して出力する。例えば、輝度信号の最初の画素だけ５ビットに量子化されるＱＰが適用され、その他の画素に対しては６ビットに量子化されるＱＰが適用されるようにＱＰを生成し出力する。
以上、説明したように、本実施形態によれば、符号量算出部１０３によって各符号化ブロックを所定のＱＰで符号化した場合の符号長を算出し、符号量割当部１０４によって、符号化グループにおける符号長の合計として算出された符号量に基づき、各符号化ブロックの割当符号量を決定する。符号化部１０６は、当該割当符号量を用いて画像データを符号化することにより、複数の符号化ブロックからなるグループ単位とした固定長符号化を行いつつ、個々の符号化ブロックについては可変長符号化を行うことができる。
【００５７】
ＤＰＣＭベースの予測符号化方式においては周囲の画像が平坦な画像であっても局所的に急峻なエッジが存在するような画像の場合、画質劣化が生じやすい。これに対し本実施形態では、当該エッジを含む符号化ブロックに対してより多くの符号量を割り当てることが可能となるので、周囲の画像が平坦で局所的に急峻なエッジが存在するような画像の符号化劣化を低減できる。
【００５８】
［実施形態２］
次に、発明の第２の実施形態について説明する。上述の実施形態１では、本発明を撮像装置の符号化処理を実行する構成に対して適用した場合を説明した。具体的に、符号化モードをＰＣＭモードとＤＰＣＭモードとで切り替えて画像の符号化処理を行う場合に、複数の符号化ブロックのグループ単位に固定長符号化を行いつつ、個々の符号化ブロックでは可変長符号化を行うことを可能とする場合を説明した。
【００５９】
これに対し本実施形態では、発明の実施形態に対応する画像処理装置の一形態として、撮像装置が有する画像処理部に発明を適用した場合を説明する。撮像装置における画像処理部は、例えばデモザイク処理、ノイズ除去、歪補正処理等を実行し、例えば画像を分割(左右、上下、田の字など)して処理を行うことができる。この場合、メモリに記録されている画像データの各分割領域にランダムアクセスできることが求められ、メモリに記憶するデータを圧縮するメモリバス圧縮処理のための圧縮方式として固定長圧縮が選択される。
【００６０】
例えば水平３２画素、垂直１画素を圧縮単位の符号化ブロック（以下、「圧縮ブロック」と呼ぶ）として固定長圧縮することにより画像処理で使用したいデータがメモリのどこに格納されているか容易に判断可能なためランダムアクセスが実現できる。
【００６１】
図７(Ａ)にその様子を示す。図７(Ａ)は、処理対象の１画像をメモリバス圧縮の処理単位である圧縮ブロックで分けた様子を示している。また画像の中央で左右の分割領域に分割されており、画像処理の処理単位は左右分割処理で行われる。各圧縮ブロック内に示す"320bit"とは、各圧縮ブロックをメモリバス圧縮手段で圧縮した後の圧縮データ量を示している。この例では、1画素10bitで輝度32画素、色差32画素の計640bitが1/2に圧縮され320bitになったことを示している。また、左右分割された各１ラインのデータ量は1920bitである。圧縮ブロックのサイズは水平３２画素×垂直１画に限定されるものではなく任意のサイズでよい。例えば水平８画素×垂直８画素のように２次元構造としてもよい。
【００６２】
図の上部に示す黒い逆三角形の印（以下、黒印という）は、圧縮されてメモリに記憶されている圧縮データを読み出す際にランダムアクセス可能な読み出し位置を示している。各圧縮ブロックは320bitの固定長で圧縮されているので各圧縮ブロックの単位でランダムアクセス可能である。この例では圧縮ブロックが水平３２画素、垂直１画素なので各黒印の座標は(x, y) = (32*n, m) (n,mは0以上の整数)で表現され、ランダムアクセス可能な位置となる（以降の黒印も同じようにランダムアクセス可能な位置を示した上端の1ラインだけでなく、黒印下の垂直方向にも適用される）。
【００６３】
しかし圧縮ブロック単位で固定長に圧縮すると画像の特徴によっては画質劣化が伴う圧縮ブロックが生じる。例えばメモリバス圧縮のアルゴリズムの性質上、320bitでは十分な画質を保てない画像の特徴を有する圧縮ブロックであっても必ず固定長の320bitに圧縮するため、苦手とする画像の特徴がある圧縮ブロックにおいては画質が劣化する傾向にある。一方320bit未満の符号長であっても圧縮前の画像に戻すことが可能な（画質劣化がない）場合もある。この場合は十分な画質を保つために320bit未満でも十分であるが、１つの圧縮ブロックは、必ず320bitでなければならないため、'0'をスタッフィングするなどの処理を行う必要があり符号量を無駄に使用することになる。
【００６４】
これに対し図７(Ｂ)のように、圧縮ブロックを固定長の単位とするのではなく、分割された左右それぞれの領域の各１ラインを固定長（1920bit）圧縮の単位とすることができる。ここで、１ラインには６ブロックが含まれ、各圧縮ブロックは、画像の特徴に応じ、圧縮難易度が高い圧縮ブロックには多くの符号量（512bit）を割り当て、圧縮難易度が低い圧縮ブロックには少ない符号量(128bit)を割り当てることで画質劣化を低減することができる。またこの場合、分割された左右それぞれの分割領域の１ラインの符号量はどのラインも1920bitの固定長なので黒印で示した分割した境界からはランダムアクセス可能な読み出し位置となり、ランダムアクセスも維持しつつ画質劣化を低減することができる。
【００６５】
しかしながら画像処理における、例えばノイズ除去処理などでは分割領域外の画素を必要とする処理部もある。図７(Ｃ)は、画像を左右分割した場合に、分割境界を跨いで画素を参照する例を示す。斜線で示す領域は、左右分割した左の分割領域に属する画素領域であるが、右側の分割領域のフィルタ処理を行う際に参照する必要がある。このように分割境界から所定範囲の画素領域は、隣接する他の分割領域の処理時に必要とされる画素領域であり、この画素領域を本実施形態では「オーバーラップ領域」と称する。
【００６６】
右側の分割領域を処理するためメモリに記録された圧縮データを読み出す場合、図７(Ｃ)に示した黒印７０１の位置からランダムアクセス可能だが、フィルタ処理としては黒印７０２の位置からの画素が必要である。しかし黒印７０２の位置を含む圧縮ブロックは何ビットで圧縮されているか不明なためメモリのどの位置に格納されているか判断できず読み出すことができない。
【００６７】
そこで、本実施形態では、画質向上のために圧縮ブロック単位で異なる圧縮データ量で圧縮処理を行いつつもランダムアクセス性を保つことが可能とするように、オーバーラップ領域における圧縮データ量を所定値に固定的に設定する。
【００６８】
以下、本実施形態に対応する画像処理部の構成について、より詳細に説明する。図８は、発明の実施形態２に対応する撮像装置８００の構成例を示すブロック図である。撮像装置８００は、撮像部８０１、画像処理部８０２、メモリバス圧縮部８０３及び８０７、メモリI/F８０４、メモリ８０５、ノイズ除去部８０６、メモリバス伸長部８０８、８０９及び８１２、符号化部８１０、記録部８１１、表示部８１３、制御部８１４を含むように構成することができる。
【００６９】
制御部８１４は、撮像部８０１、画像処理部８０２、メモリバス圧縮部８０３及び８０７、ノイズ除去部８０６、メモリバス伸長部８０８、８０９及び８１２、符号化部８１０、記録部８１１、表示部８１３を制御する。
【００７０】
撮像部８０１は、光学レンズ、絞り、フォーカス制御及びレンズ駆動部を含む光学ズームが可能なレンズ光学系とレンズ光学系からの光情報を電気信号に変換するＣＣＤイメージセンサ又は、ＣＭＯＳセンサなどのイメージセンサを含み、イメージセンサにより得られた電気信号をディジタル信号へ変換した画像データを画像処理部８０２へ出力する。画像処理部８０２は、入力された画像データに対し、デモザイク処理、ノイズ除去処理、光学歪補正処理、色補正処理等により画像データを生成しメモリ８０５に記憶するためにメモリバス圧縮部８０３へ出力する。
【００７１】
画像処理部８０２は、画像を左右、上下分割して処理することが可能である。メモリバス圧縮部８０３及び８０７は、圧縮率など圧縮動作を規定する圧縮パラメータを制御部８１４から受信し、メモリバスの帯域削減のために低遅延の圧縮技術で画像データを圧縮し、生成された圧縮データをメモリI/F部８０４へ出力する。圧縮パラメータは圧縮データと共にメモリ８０５に記憶しても良いし、制御部８１４で記憶しておいても良い。また撮像装置８００のメモリバスの帯域に余裕がある動作モードの場合は、圧縮せずに入力された画像データをメモリI/F部８０４へ出力することも可能である。
【００７２】
本実施形態におけるメモリバス圧縮部８０３及び８０７は、水平３２画素、垂直１画素の圧縮ブロック単位に圧縮を行い処理対象の画像から圧縮画像（圧縮データ）を生成する。またメモリバス圧縮部８０３及び８０７の圧縮パラメータには、圧縮率、画素のビット深度、画像フォーマット等があり、制御部８１４が撮像装置の動作モードに応じてこれら圧縮パラメータを決定し、メモリバス圧縮部８０３及び８０７に設定する。メモリI/F部８０４は、各処理部からのメモリへのアクセス要求を調停し、メモリ８０５に対するデータの読み出し・書き込み制御を行う。
【００７３】
メモリ８０５は、撮像装置８００を構成する各処理部から出力される各種データを格納するための例えば揮発性メモリで構成される記憶部である。メモリバス伸長部８０８は、メモリバス圧縮部８０３、８０７のいずれかで圧縮され、メモリ８０５に記憶されている圧縮データを読み出し、伸長した画像データをノイズ除去部８０６へ出力する。メモリバス伸長部８０９は、メモリバス圧縮部８０３、８０７のいずれかで圧縮され、メモリ８０５に記憶されている圧縮データを読み出し、伸長した画像データを符号化部８１０へ出力する。メモリバス伸長部８１２は、メモリバス圧縮部８０３、８０７のいずれかで圧縮され、メモリ８０５に記憶されている圧縮データを読み出し、伸長した画像データを表示部８１３へ出力する。メモリバス伸長部８０８，８０９及び８１２は、メモリ８０５に記憶されているデータが圧縮されていない場合は、伸長せずにそのまま各接続先へ出力する。
【００７４】
また伸長処理を開始する前に、メモリバス圧縮部８０３、８０７のいずれかで圧縮した際に設定した圧縮率など伸長に必要なパラメータを制御部８１４から設定する。メモリ８０５に圧縮パラメータが記憶されている場合は、先に圧縮パラメータをメモリ８０５から読み出して、伸長に必要なパラメータを設定する。
【００７５】
ノイズ除去部８０６は、現在処理中の画像と過去に処理した画像を用いてノイズを除去する巡回型ノイズ除去処理を行う。ノイズ除去後の画像データはメモリバス圧縮部８０７を介してメモリ８０５に記憶する。符号化部８１０は、HEVCやH.264に代表されるような高能率符号化方式で画像データを符号化し、記録部８１１に符号化データを記録する。記録部８１１は、例えば不揮発性メモリで構成される記録メディアである。表示部８１３は、例えば液晶ディスプレイや有機ＥＬディスプレイなどであり、メモリ８０５から読み出した画像データを表示する。
【００７６】
次に、メモリバス圧縮の制御処理について図９に示すフローチャートを参照して説明する。ここでは、メモリバス圧縮処理を行う前の各圧縮ブロックの目標圧縮データ量を設定する制御を主に説明する。メモリバス圧縮部８０３，８０７の入出力の接続先は異なるが、処理機能内容は同じであるため、メモリバス圧縮部８０３を例に説明する。
【００７７】
まず、Ｓ９０１において、制御部８１４はメモリバス圧縮部８０３の圧縮パラメータを設定する。次にＳ９０２において、制御部８１４は画像処理部８０２から出力されメモリバス圧縮部８０３に入力された画像データのメモリバス圧縮の難易度を測定する。例えば、図１０(Ａ)に示すように画像を左右分割し、分割された左右それぞれの分割領域の各１ラインを固定長圧縮の単位とする(図１０(Ａ)の斜線部)。この例では１ラインに圧縮ブロックが水平に12個並んでおり、各分割領域では6個の圧縮ブロックを持つ。画像データが1画素１０ビット、YUV４２２フォーマットとし、圧縮パラメータの圧縮率が1/2とすると、左右の各分割領域の１ラインの目標圧縮データ量は32[画素] x 2[4:2:2] x 10[bit] x 6[個] / 2[圧縮率] = 1920 [bit]となる。なお、画像の分割形態は図１０に示したものに限らず、処理対象の画像のサイズに応じて、該画像を複数の分割領域に分割し、当該分割領域をさらに所定数の圧縮ブロックに分割することができる。また、圧縮ブロックは１ライン毎でなくてもよい。
【００７８】
図１０(Ａ)の斜線部で示した１ラインをメモリバス圧縮部８０３で使用する所定の量子化パラメータにより一度圧縮し、その時の各圧縮ブロックの圧縮データ量で圧縮難易度を測る。圧縮データ量が予め定められた第１の閾値（Ｔｈ１）より大きい圧縮ブロックは、難易度が高いと判断する。逆に圧縮データ量が第２の閾値（Ｔｈ２＜Ｔｈ１）より小さい圧縮ブロックは、難易度が低いと判断し、制御部８１４で記憶しておく。この処理を各分割領域のそれぞれのラインで実施した結果を図１０(Ｂ)に示す。
【００７９】
"512bit"と記載された圧縮ブロックは難易度が高く、目標圧縮データ量が多く割り当てられている。"320bit"と記載された圧縮ブロックは、圧縮データ量が第１の閾値以下で、第２の閾値以上の圧縮ブロックである。"128bit"と記載された圧縮ブロックは難易度が低く、目標圧縮データ量が少なく割り当てられている。本実施形態では、目標圧縮データ量を、データ量の大きい順に第１の値(512bit)、第２の値(320bit)、第３の値(128bit)として、３個のデータ量を用いているが、目標圧縮データ量の持たせ方はこれに限定されるものではなく、数値が異なっていてもよいし、あるいは、個数が異なっていてもよい。
【００８０】
続くＳ９０３では、制御部８１４は、処理対象の分割領域内にオーバーラップ領域を含むかどうかを判定する。オーバ―ラップ領域を含む場合（Ｓ９０３で「ＹＥＳ」）は、処理はＳ９０４に進む。一方、オーバ―ラップ領域を含まない場合（Ｓ９０３で「ＮＯ」）は、処理はＳ９０７に進む。図１０（Ａ）に示す例では、左側分割領域を処理する場合には、オーバーラップ領域が含まれることになり、右側分割領域を処理する場合にはオーバーラップ領域は含まれない。
【００８１】
続く、Ｓ９０４では、まず、オーバーラップ領域に属する圧縮ブロックの目標圧縮データ量を設定する。当該圧縮ブロックの目標圧縮データ量は、難易度測定の結果によらず予め定められたオーバーラップ領域用の圧縮データ量とする。本実施形態では、図１０（Ｃ）に示す通り黒印７０２と７０１で挟まれる圧縮ブロックの目標圧縮データ量をともに320bitとしている。続くＳ９０５では、１ラインの目標圧縮データ量からオーバーラップ領域分の目標圧縮データ量を減算する。これにより、左側分割領域に属し、かつ、オーバーラップ領域に属しない圧縮ブロックで使用可能な圧縮データ量は1920 - ( 320 x 2 ) = 1280 [bit]となる。続くＳ９０６では、減算により得られた1280bitをオーバーラップ領域に属しない残りの４つの圧縮ブロックで分配する。その際、各圧縮ブロックの難易度に基づき各圧縮ブロックの目標圧縮データ量を決定する。
【００８２】
Ｓ９０７では、オーバーラップ領域を含まない分割領域について１ラインの目標圧縮データ量を分配する処理を行う。ここでは、各圧縮ブロックの難易度に基づき１ラインの各圧縮ブロックの目標圧縮データ量を決定する。このとき、１ラインの各圧縮ブロックの圧縮データ量の合計が固定長圧縮単位の圧縮データ量ここでは1920bitになるように設定する。なお、難易度の高い圧縮ブロックの数と、難易度の低い圧縮ブロックの数は同数にする必要があるが、仮に難易度が高いと判定された圧縮ブロックの数が、難易度が低いと判定された圧縮ブロックの数よりも多くなる場合も想定される。そのような場合は、算出された圧縮データ量の大きさに基づき、より大きい圧縮データ量が算出された圧縮ブロックを優先して512bitを割り当て、残りは320bitとする。難易度が高いと判定された圧縮ブロックの数が、難易度が低いと判定された圧縮ブロックの数よりも少なくなる場合も同様に、算出された圧縮データ量の大きさに基づき、より小さい圧縮データ量が算出された圧縮ブロックを優先して128bitを割り当て、残りは320bitとする。
【００８３】
以上の処理により各圧縮ブロックの目標圧縮データ量が定まったら、続くＳ９０８においてメモリバス圧縮部８０３が各圧縮ブロックを圧縮する。
【００８４】
次に、ノイズ除去部８０６がメモリ８０５から画像データ（圧縮データ）を読み出す際の処理について図１１に示すフローチャートを参照して説明する。
【００８５】
まず、Ｓ１１０１では、制御部８１４がノイズ除去部８０６，メモリバス伸長部８０８に対して伸長パラメータを設定する。伸長パラメータとは、例えばメモリバス圧縮前の画素のビット幅やメモリバス圧縮の圧縮率など、伸長に必要なパラメータをいう。制御部８１４は、本ステップにおいてメモリバス圧縮部８０３もしくは８０７によって圧縮された圧縮データが記憶されているメモリ８０５の領域の先頭アドレス、各分割領域の水平サイズなども設定する。
【００８６】
続くＳ１１０２では、制御部８１４は、ノイズ除去部８０６が読み出す画像領域のノイズ除去処理にオーバーラップ領域が必要か否かを判断する。当該判断は、処理する分割領域のサイズ情報や、メモリ８０５に記憶されている圧縮データを圧縮した際の圧縮ブロック数、分割領域やオーバーラップ領域内の圧縮ブロックの圧縮データ量とメモリバス伸長部８０８で復号済みの圧縮ブロック数に基づいて行う。オーバーラップ領域が必要と判断された場合（Ｓ１１０２で「ＹＥＳ」）、処理はＳ１１０３に進み、オーバーラップ領域を含まない場合（Ｓ１１０２で「ＮＯ」）、処理はＳ１１０４に進む。Ｓ１１０３において、ノイズ除去部８０６は、読み出すアドレスをオーバーラップ領域分ずらす。
【００８７】
具体的に図１０（Ｃ）を参照して説明すると、図１０(Ｃ)に示す左側分割領域をラスター順に読み出し、伸長し終えた状況とする。次に処理するのは右側分割領域で図１０（Ｃ）の位置７０１からラスター順に処理することになる。しかし、右側分割領域の各ラインの先頭の圧縮ブロックを処理するためにはオーバーラップ領域が必要であるため、位置７０２から圧縮ブロックを読み出さなければならない。そこで、Ｓ１１０３において制御部８１４は、メモリバス圧縮時にオーバーラップ領域に含まれる圧縮ブロック数やオーバーラップ領域内の圧縮ブロックの圧縮データ量も把握しているため、読み出しアドレスを位置７０１から位置７０２にずらす。
【００８８】
続くＳ１１０４では、制御部８１４が読み出しアドレスをノイズ除去部８０６に設定する。左右分割の左側の分割領域を処理する場合は、図１０の位置７０３から読み出すためのアドレスを設定し、左右分割の右側の分割領域を処理する場合は、図１０の位置７０２から読み出すためのアドレスを設定する。また画像を読み出すための情報も含まれており、例えば図１０に示す左右に分割されていることを示す情報や、分割時の各分割領域の水平、垂直サイズなどである。
【００８９】
続くＳ１１０５では、制御部８１４が伸長に必要なパラメータをメモリバス伸長部８０８に設定する。当該パラメータには、メモリバス圧縮部８０３もしくは８０７で使用された圧縮パラメータ、例えばメモリバス圧縮前の画素のビット幅やメモリバス圧縮の圧縮率などが含まれる。続くＳ１１０６では、ノイズ除去部８０６からメモリバス伸長部８０８を介してメモリI/F部８０４に対し、画像データ（圧縮データ）読み出し要求を行う。これに対しメモリI/F部８０４は、読み出し要求に従ってメモリ８０５から圧縮データを読み出しメモリバス伸長部８０８へ出力する。メモリバス伸長部８０８では設定されたパラメータに従い圧縮ブロック単位に伸長し、画像データを生成し、ノイズ除去部８０６へ出力する。
【００９０】
続くＳ１１０７では、ノイズ除去部８０６は、読み出すべき領域の最後のラインまで読み出し、伸長が完了したかどうかを判定する。最後のラインまで読み出し、伸長が完了したと判定される場合（Ｓ１１０７でＹＥＳ）、処理はＳ１１０８に進む。一方、最後のラインまで完了していないと判定される場合（Ｓ１１０７で「ＮＯ」）、処理はＳ１１０６に戻り、読み出しと伸長を繰り返す。Ｓ１１０８では、１画像全ての読み出し、伸長が完了したかを判定する。例えば図１０(Ｃ)に示す左側の分割領域の最終ラインまで読み出し、伸長が完了した際は、右側の分割領域の左上（図４の４０２）から読み出しを開始する。右側の分割領域の最終ラインまで読み出し、伸長が完了した際は、１画像全ての読み出し、伸長が完了したので伸長処理を終了する。読み出しおよび伸長が完了すると、ノイズ除去部８０６は読み出した画像データに対してノイズ除去処理を行う。
【００９１】
以上のように動作させることで、画質向上のために圧縮ブロック単位で異なる圧縮データ量で圧縮処理を行いつつもランダムアクセス性を保つことが可能となる。
【００９２】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００９３】
１００：画像符号化部、１０１：入力端子、１０２：出力端子、１０３：符号量算出部、１０４：符号量割当部、１０５：遅延部、１０６：符号化部
【図１】
2019201288.tif 000003
【図２】
2019201288.tif 000004
【図３】
2019201288.tif 000005
【図４】
2019201288.tif 000006
【図５】
2019201288.tif 000007
【図６】
2019201288.tif 000008
【図７】
2019201288.tif 000009
【図８】
2019201288.tif 000010
【図９】
2019201288.tif 000011
【図１０】
2019201288.tif 000012
【図１１】
2019201288.tif 000013