IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ キヤノン株式会社の特許一覧

特許7193929画像処理装置、画像処理方法、及び、プログラム
<>
  • 特許-画像処理装置、画像処理方法、及び、プログラム 図1
  • 特許-画像処理装置、画像処理方法、及び、プログラム 図2
  • 特許-画像処理装置、画像処理方法、及び、プログラム 図3
  • 特許-画像処理装置、画像処理方法、及び、プログラム 図4
  • 特許-画像処理装置、画像処理方法、及び、プログラム 図5
  • 特許-画像処理装置、画像処理方法、及び、プログラム 図6
  • 特許-画像処理装置、画像処理方法、及び、プログラム 図7
  • 特許-画像処理装置、画像処理方法、及び、プログラム 図8
  • 特許-画像処理装置、画像処理方法、及び、プログラム 図9
  • 特許-画像処理装置、画像処理方法、及び、プログラム 図10
  • 特許-画像処理装置、画像処理方法、及び、プログラム 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-13
(45)【発行日】2022-12-21
(54)【発明の名称】画像処理装置、画像処理方法、及び、プログラム
(51)【国際特許分類】
   H04N 19/115 20140101AFI20221214BHJP
   H04N 19/167 20140101ALI20221214BHJP
   H04N 19/176 20140101ALI20221214BHJP
   H04N 19/426 20140101ALI20221214BHJP
   H04N 19/86 20140101ALI20221214BHJP
【FI】
H04N19/115
H04N19/167
H04N19/176
H04N19/426 300
H04N19/86
【請求項の数】 14
(21)【出願番号】P 2018093980
(22)【出願日】2018-05-15
(65)【公開番号】P2019201288
(43)【公開日】2019-11-21
【審査請求日】2021-05-07
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】金子 唯史
(72)【発明者】
【氏名】川上 雅司
【審査官】坂東 大五郎
(56)【参考文献】
【文献】特開2009-290389(JP,A)
【文献】特開2010-074597(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
画像を入力する入力手段と、
前記画像を複数の領域に分割し、分割されたそれぞれの領域の前記画像を圧縮して圧縮画像を生成する圧縮手段と、
前記圧縮画像を記憶する記憶手段と、
前記圧縮画像を前記記憶手段から読み出して前記圧縮画像を伸長して伸長画像を生成し、前記伸長画像を用いてノイズ除去処理を実行する処理手段と、
前記圧縮画像を前記記憶手段から読み出して前記圧縮画像を伸長して伸長画像を生成し、前記伸長画像を符号化して符号化データを生成する生成手段と、
前記圧縮画像を前記記憶手段から読み出して前記圧縮画像を伸長して伸長画像を生成し、前記伸長画像を表示部へ出力する出力手段と、
を備え、
前記処理手段、前記生成手段及び前記出力手段における前記圧縮画像の前記記憶手段からの読み出しは、それぞれ独立して行われ、
前記圧縮手段は、前記複数の領域のそれぞれについて所定サイズのブロックを単位として前記圧縮画像を生成し、
前記処理手段は、前記複数の領域のうち第1の領域、及び、前記第1の領域に隣接する第2の領域の一部の前記圧縮画像を前記記憶手段から読み出して伸長画像を生成し、前記伸長画像を用いてノイズ除去処理を実行し、
前記第2の領域に含まれる前記ブロックの符号量は、少なくとも前記第2の領域の前記一部に含まれるブロックについて固定長であることを特徴とする装置。
【請求項2】
前記第2の領域の残りの部分に含まれる前記ブロックの符号量は可変長である、請求項1に記載の装置。
【請求項3】
前記処理手段、前記生成手段及び前記出力手段における前記圧縮画像の前記記憶手段からの読み出しは、ランダムアクセスにより実行されることを特徴とする請求項1または2に記載の装置。
【請求項4】
前記処理手段は、前記圧縮画像をラスター順に前記記憶手段から読み出すことを特徴とする請求項1から3のいずれか1項に記載の装置。
【請求項5】
前記生成手段は、前記圧縮画像を所定サイズのブロックごとに前記記憶手段から読み出すことを特徴とする請求項1から4のいずれか1項に記載の装置。
【請求項6】
前記圧縮画像は、前記画像の1ラインの符号量が固定長になるように圧縮することにより生成されることを特徴とする請求項1から5のいずれか1項に記載の装置。
【請求項7】
前記ラインは複数のブロックを有し、前記ブロックの符号量は可変長を含むことを特徴とする請求項に記載の装置。
【請求項8】
前記圧縮画像は、前記画像を色空間で圧縮して生成されたことを特徴とする請求項1からのいずれか1項に記載の装置。
【請求項9】
前記伸長画像は周波数空間で符号化されることを特徴とする請求項1からのいずれか1項に記載の装置。
【請求項10】
前記処理手段、前記生成手段及び前記出力手段における前記圧縮画像の伸長は、それぞれ独立して行われることを特徴とする請求項1からのいずれか1項に記載の装置。
【請求項11】
前記符号化データは記録媒体に記録されることを特徴とする請求項1から10のいずれか1項に記載の装置。
【請求項12】
撮像装置であることを特徴とする請求項1から11のいずれか1項に記載の装置。
【請求項13】
画像を入力する入力手段と、
前記画像を複数の領域に分割し、分割されたそれぞれの領域の前記画像を圧縮して圧縮画像を生成する圧縮手段と、
前記圧縮画像を記憶する記憶手段と、
を備える装置の制御方法であって、
前記圧縮画像を前記記憶手段から読み出して前記圧縮画像を伸長して伸長画像を生成し、前記伸長画像を用いてノイズ除去処理を実行する処理工程と、
前記圧縮画像を前記記憶手段から読み出して前記圧縮画像を伸長して伸長画像を生成し、前記伸長画像を符号化して符号化データを生成する生成工程と、
前記圧縮画像を前記記憶手段から読み出して前記圧縮画像を伸長して伸長画像を生成し、前記伸長画像を表示部へ出力する出力工程と、
を含み、
前記処理工程、前記生成工程及び前記出力工程における前記圧縮画像の前記記憶手段からの読み出しは、それぞれ独立して行われ
前記圧縮手段は、前記複数の領域のそれぞれについて所定サイズのブロックを単位として前記圧縮画像を生成し、
前記処理工程では、前記複数の領域のうち第1の領域、及び、前記第1の領域に隣接する第2の領域の一部の前記圧縮画像を前記記憶手段から読み出して伸長画像を生成し、前記伸長画像を用いてノイズ除去処理を実行し、
前記第2の領域に含まれる前記ブロックの符号量は、少なくとも前記第2の領域の一部に含まれるブロックについて固定長であることを特徴とする装置の制御方法。
【請求項14】
コンピュータを請求項1から12のいずれか1項に記載の装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は画像処理装置、画像処理方法、及び、プログラムに関する。
【背景技術】
【0002】
近年、デジタルビデオなどの撮像装置は高解像度化、高フレームレート化に伴って、システムで扱う画像データ量が著しく増加しており、画像メモリやバスインターフェース回路の高速化が要求されている。これに対し、画像メモリやバスインターフェースの前後で画像の圧縮符号化を行って、画像データ量を削減することで回路の高速化の要求に対応することができる。この場合、画像圧縮のための符号化方式は回路規模が小型で、符号化遅延の小さいことが望まれる。そのため、従来のJPEGやMPEG2に代表されるDCTベースの符号化方式は不向きである。そこでDPCMベースの予測符号化方式での提案がされている(特許文献1を参照)。
【0003】
また、撮像装置においては、画像データをメモリに記憶させて画像処理や符号化処理を行うことが一般的である。データ量の増大に伴いメモリへのアクセス量も増大し、メモリバスの帯域が逼迫してきている。ここでメモリに記憶されるデータを圧縮(メモリバス圧縮と呼称する)することでメモリバスの帯域を緩和する技術が提案されている(特許文献2を参照)。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2010-004514号公報
【文献】特開2015-170994号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
提案に係るような予測符号化では、所定の符号化単位の符号長を固定して符号化を行う固定長符号化が行われる。また、提案に係るようなメモリバス圧縮では、圧縮方式として圧縮ブロックを固定長圧縮する方法が採用されている。
【0006】
このように、所定の処理単位について固定長で符号化や圧縮等の処理を行う場合、画像の特性に応じて、データ量が不足したり、余剰であったりするため、固定長による処理を維持しつつも、個々の処理単位についてより適応的な符号長の割り当てが求められている。
【0007】
そこで、本発明は、固定長による処理を行いつつ、処理単位においてデータ量の適応的な割り当てを可能とする技術を提供する。
【課題を解決するための手段】
【0008】
上記課題を解決する装置は、
画像を入力する入力手段と、
前記画像を複数の領域に分割し、分割されたそれぞれの領域の前記画像を圧縮して圧縮画像を生成する圧縮手段と、
前記圧縮画像を記憶する記憶手段と、
前記圧縮画像を前記記憶手段から読み出して前記圧縮画像を伸長して伸長画像を生成し、前記伸長画像を用いてノイズ除去処理を実行する処理手段と、
前記圧縮画像を前記記憶手段から読み出して前記圧縮画像を伸長して伸長画像を生成し、前記伸長画像を符号化して符号化データを生成する生成手段と、
前記圧縮画像を前記記憶手段から読み出して前記圧縮画像を伸長して伸長画像を生成し、前記伸長画像を表示部へ出力する出力手段と、
を備え、
前記処理手段、前記生成手段及び前記出力手段における前記圧縮画像の前記記憶手段からの読み出しは、それぞれ独立して行われ
前記圧縮手段は、前記複数の領域のそれぞれについて所定サイズのブロックを単位として前記圧縮画像を生成し、
前記処理手段は、前記複数の領域のうち第1の領域、及び、前記第1の領域に隣接する第2の領域の一部の前記圧縮画像を前記記憶手段から読み出して伸長画像を生成し、前記伸長画像を用いてノイズ除去処理を実行し、
前記第2の領域に含まれる前記ブロックの符号量は、少なくとも前記第2の領域の前記一部に含まれるブロックについて固定長である。
【発明の効果】
【0009】
本発明によれば、固定長による処理を行いつつ、処理単位においてデータ量の適応的な割り当てが可能となる。
【図面の簡単な説明】
【0010】
図1】発明の実施形態1に対応する画像符号化部100の構成、画像データの各色プレーンの画素の構成、及び、符号化コア部110の構成をそれぞれ示す図。
図2】発明の実施形態1に対応する符号量割当処理の一例を示すフローチャート。
図3】発明の実施形態1に対応する符号量割当処理による割当符号量の一例を示すグラフ。
図4】発明の実施形態1に対応する符号化部106の構成の一例を示すブロック図。
図5】発明の実施形態1に対応する符号化パラメータ決定部403における処理手順の一例を示すフローチャート、および、符号化モード・最適QPの決定処理の一例を示すフローチャート。
図6】発明の実施形態1に対応するQP毎の符号量の一例を示す図、及び、DPCMモード及びPCMモードの各符号化フォーマットのデータ構造一例を示す図。
図7】発明の実施形態2に対応する、圧縮ブロックを圧縮した圧縮データ量の一例を示す図、メモリバス圧縮部の難易度に応じて再分配した圧縮データ量を示す図、及び、画像を左右分割しオーバーラップ領域と圧縮ブロックとの関係を説明するための図。
図8】発明の実施形態2に対する画像処理装置の構成例を示すブロック図。
図9】発明の実施形態2に対応する圧縮処理の一例を示すフローチャート。
図10】発明の実施形態2に対応するメモリバス圧縮部の固定長圧縮の単位を示す図、メモリバス圧縮部の難易度に応じて再分配した圧縮データ量を示す図、及び、オーバーラップを含む場合の読み出し位置を説明するための図。
図11】発明の実施形態2に対応する復号処理の一例を示すフローチャート。
【発明を実施するための形態】
【0011】
以下、図面を参照しながら、発明の実施の形態を詳細に説明する。
【0012】
[実施形態1]
以下、発明の第1の実施形態について説明する。本実施形態では、発明の実施形態に対応する画像処理装置の一形態として、撮像装置が有する画像符号化部に発明を適用した場合を説明する。以下では画像符号化部を撮像装置に含まれる一構成として説明するが、画像符号化部自体を一つの装置として捉え、画像符号化装置としてもよい。
【0013】
図1(A)は、発明の実施形態に係る撮像装置が有する画像符号化部100の構成例を示すブロック図である。以下、本実施形態の画像符号化部100の構成において、各ブロックの動作について説明する。図1(A)に示した画像符号化部100は、符号量算出部103、符号量割当部104、遅延部105、符号化部106から構成されている。
【0014】
画像符号化部100は処理対象の画像データを所定のサイズの符号化ブロックに分割し、これを符号化対象ブロックとして符号化ブロック毎に符号化処理を実施する。本実施形態では画像データの信号フォーマットは輝度信号Y、色差信号Cb、CrからなるYCbCr4:2:2信号で、ビット深度は10ビットとする。また符号化ブロックサイズは、輝度信号Yは水平32画素×垂直1画素、色差信号Cbは水平16画素×垂直1画素、色差信号Crは水平16画素×垂直1画素の合計64画素を一つの符号化ブロックであり、平均圧縮率は6/10として説明する。
【0015】
なお、本実施形態において、画像データの信号フォーマットはYCbCrに限定されるものではなく、グレースケール、RGB、ベイヤー配列データなどの画像データ形式であってもよい。画像データのビット数は10ビットに限定されるものではなく、8ビット、12ビットなどであってもよい。また、符号化ブロックサイズは水平32画素×垂直1画に限定されるものではなく任意のサイズでよい。例えば水平8画素×垂直8画素のように2次元構造としてもよい。
【0016】
符号化ブロックに分割された画像データの各色プレーンの画素は図1(B)に示すようにCb0、Y0、Cr0、Y1、・・・の順で多重化されて、入力端子101を介し、画像符号化部100に入力される。当該入力端子101に入力される画像データは、例えば後述する図8に示す撮像部801から出力された画像データを取得してもよいし、あるいは、メモリ805に記憶されている画像データを取得してもよい。
【0017】
次に、本実施形態の画像符号化部100を構成する各ブロックのうち、符号量算出部103の具体的な構成としての符号化コア部110について図1(C)を参照して説明する。図1(C)は符号化コア部110の構成を示すブロック図である。同図において、外部からは画像データと、量子化パラメータ(以降、QP)、符号化モードが入力されている。
【0018】
減算器111は入力された画像データの画素ごとに、後述の予測値生成部115で生成された予測値を減算して、予測差分データを算出する。予測差分データは正負の値を持つデータであり、画像データの変動の小さい平坦な部分では0付近の値となり、また、変動の大きいエッジ部分などでは大きな差分値になる。予測差分データは一般に0を中心としたラプラス分布の特性を持つ。セレクタ117は符号化モードに応じて画像データを切り替えるセレクタである。セレクタ117は、符号化モードがDPCMモードの場合は減算器111からの予測差分データを選択し、PCMモードの場合は入力された画像データを選択して量子化部112に出力する。符号化モードについては後述する。
【0019】
量子化部112はセレクタ117から出力されたデータをQPに対応する量子化ステップを用いて量子化する。量子化ステップはQPが小さいほど細かくして、QPが大きいほど粗くする。QPが0の場合は量子化ステップを1とする。量子化ステップが1の場合は入力された値がそのまま出力されるので、量子化による劣化が生じない可逆符号化となる。量子化されたデータは量子化データとして、逆量子化部113、可変長符号化部116および符号化コア部110の外部に出力する。
【0020】
逆量子化部113は量子化部112が出力した量子化データを量子化部112と同じ量子化ステップを用いて逆量子する。加算器114は逆量子化された量子化データと、後述の予測値とを加算して復号値を算出する。予測値生成部115は復号値から予測値(予測画像)を生成する。予測値生成部115は、色プレーンY,Cb、Crそれぞれに少なくとも1画素分の復号値を保持しており、符号化対象画素と同じ色プレーンの復号値を用いて予測値が生成される。例えば、符号化対象画素の左側の復号値を予測値とすることができる。なお、符号化ブロックの最初の画素は復号値が存在しないので、所定の値を予測値として用いる。例えば信号レンジの中間値(ビット深度10ビットの場合は512)等を用いることができる。
【0021】
可変長符号化部116は入力された量子化データに対し、所定の可変長符号化方式による符号化処理を行って、画素毎に符号データと符号長とを出力する。所定の可変長符号化方式とはハフマン符号、ゴロム符号などである。可変長符号化部116における符号化処理では、入力値が0の場合に最も短い符号長の符号データが割り当てられており、入力値の絶対値が大きくなるほど、長い符号長の符号データが割り当てられている。入力データが予測差分データの量子化データである場合、前述のように0中心のラプラス分布特性であり、0付近の発生頻度が高く、予測差分データの絶対値が大きいほど発生頻度が低い。発生頻度の高い値に短い符号データを割り当て、発生頻度の低い値に長い符号データを割り当てる事により、符号化ブロック全体としては発生する符号長を小さくすることができる。
【0022】
ここで、符号化モードについて説明する。符号化コア部110における符号化モードはDPCM(Differential Pulse Code Modulation)モードとPCM(Pulse Code Modulation)モードとがある。DPCMモードは、符号化ブロックの各画素について、他の画素との画素値の差分を、所定の量子化ステップにより量子化し、可変長符号化した結果の符号量を算出するモードである。より具体的には、減算器111で予測差分データを生成し、量子化部112で量子化し可変長符号化部116で可変長符号化を行うモードであり、画像データやQPによって可変長の符号が生成される符号化モードである。一方、PCMモードは入力された画像データをそのまま量子化部112で量子化して量子化データとして出力するモードであり、QPによって一意の固定長の符号が生成される符号化モードである。
【0023】
図1(A)に戻り、画像符号化部100の説明を続ける。図1(A)において、画像符号化部100に入力された画像データは符号量算出部103に入力される。符号量算出部103には画像データが入力され、QPとして0が入力され、符号化モードとしてDPCMモードが入力されている。これにより符号量算出部103ではDPCMモードにてQP=0すなわち量子化ステップが1での符号化処理が行われて符号長が画素毎に出力される。入力画像データは図1(B)に示すようにCb0、Y0、Cr0、Y1・・・と1画素ずつ入力されており、符号長の出力もこの順番で1画素分ずつ出力される。
【0024】
ここで、量子化ステップが1ということは、量子化による符号化誤差が全く存在しない可逆の状態での符号長が算出される。このようにすることで、平坦なブロックは可逆符号化が可能な符号量割り当てがなされるようになる。その必要がなければ、QPは量子化ステップが1以上となるQPを用いてもよい。符号量算出部103は図1(C)に示した符号化コア部110として構成することができ、出力信号には量子化データ、符号データ、符号長が含まれるが、ここでは符号長のみを使用する。符号量算出部103は、符号量割当部104に対して符号長を出力する。
【0025】
次に、符号量割当部104は符号量算出部103から提供された画素毎の符号長を用いて、符号化ブロック毎に符号量を割り当てる。割り当てられた符号量(割当符号量)は、符号化部106に出力される。遅延部105は符号量算出部103および符号量割当部104が、後述する符号化グループに含まれる複数の符号化ブロックについて符号量算出及び符号量割当処理を実行するための期間だけ、画像データを遅延させて符号化部106へ出力する。これにより、符号化部106は、入力符号化ブロックを当該符号化ブロックについて算出された割当符号量を用いて符号化を行うことができる。符号化部106は、遅延部105から遅延入力された画像データにつき、符号化ブロック毎に指定される割当符号量を用いて符号化処理を実行する。
【0026】
次に、符号量割当部104における処理内容を詳細に説明する。本実施形態では、複数の符号化ブロックを1つのグループとして固定長の符号量を割り当てる。この複数の符号化ブロックのことを以下では「符号化グループ」という。符号化グループのことを「固定長化期間」と呼ぶこともできる。符号量割当部104は、符号化グループ毎にそこに含まれる各符号化ブロックに割り当てる符号量を決定する。符号化グループを構成する符号化ブロックの数は、任意の数とすることができ、例えば2ブロックあるいはそれ以上のブロック数でもよいし、画像データの1ライン、1フレームなどでもよい。
【0027】
符号量割当部104の動作を図2のフローチャートを参照して説明する。図2は、発明の実施形態に対応する符号量割当処理の一例を示すフローチャートである。本符号化量割当処理は、符号化グループごとに実行される。本処理が開始されると、まず、S201において、符号量割当部104は、符号量算出部103から出力された画素単位の符号長から、符号化ブロックの符号量を集計し、符号化グループに属する複数の符号化ブロックのそれぞれの符号量を取得する。このとき得られた符号化ブロック毎の符号量を、ブロック番号blkを要素として、blk_size[blk]とする。
【0028】
次に、符号量割当部104は、S202において本処理において用いる変数blk,remain、exceedを0にリセットする。続くS203において、blkの値に対応する符号化ブロックの符号量blk_size[blk]と符号化ブロックの基準符号量REFERENCE_SIZEとを比較する。符号化ブロックの符号量が基準符号量以下の場合(S203で「YES」)、処理はS204に進む。S204では、符号量割当部104は、符号化ブロックの符号量が基準符号量を下回った分の値を残余符号量remainに累積し、その後に処理はS206に進む。一方、符号化ブロックの符号量が基準符号量を超えている場合(S203で「NO」)、処理はS205に進む。S205では、符号化ブロックの符号量が基準符号量を上回った分の値を超過符号量exceedに累積し、その後に処理はS206に進む。
【0029】
これにより、remainには、符号化グループに属する複数の符号化ブロックのうち、基準符号量を下回った符号化ブロックについて、その符号量と基準符号量との差分値が累計される。一方、exceedには同基準符号量を上回った符号化ブロックについて、その符号量と基準符号量との差分が累計される。
【0030】
続くS206において、符号量割当部104は、blkの値が符号化グループに含まれる符号化ブロック数を示すBLK_NUMより小さいかどうか、すなわち、未処理の符号化ブロックが存在するかどうかを判定する。未処理の符号化ブロックが存在する場合(S206で「YES」)、S207においてblkの値を1つ更新して、S203に戻って次のブロックを選択して上述の処理を繰り返す。未処理の符号化ブロックが存在しない場合(S206で「NO」)、処理はS208に進む。
【0031】
S208において、符号量割当部104はremainとexceedとを比較し、remainがexceedより小さい場合(S208で「YES」)、S209において増加率rateをremain/exceedを算出して取得する。一方、remainがexceed以上の場合(S208で「NO」)、S210において増加率rateを1とする。
【0032】
次にS211において変数blkを再び0にセットし、S212においてblkの値に対応する符号化ブロックの符号量blk_size[blk]と基準符号量REFERENCE_SIZEとを比較する。符号化ブロックの符号量が基準符号量以下の場合(S212で「YES」)、処理はS213に進む。S213において符号量割当部104は、当該符号量が基準符号量以下の第1の符号化ブロックに相当する符号化ブロック[blk]に対する割当符号量assign_size[blk]を、符号化ブロックの符号量そのものであるblk_size[blk]とする。その後、処理はS215に進む。
【0033】
一方、符号化ブロックの符号量が基準符号量を超える場合(S212で「NO」)、処理はS214に進む。S214において符号量割当部104は、符号量が基準符号量を超える第2の符号化ブロックに相当する符号化ブロック[blk]に対する割当符号量assign_size[blk]を、第1の符号化ブロックから得られた残余分を利用して以下の式1に基づき設定する。その後、処理は、S215に進む。
【0034】
TARGET_SIZE=TARGET_SIZE+(blk_size[blk]-TARGET_SIZE)*rate (式1)
式1においてrateの値は、S209またはS210で設定した値が用いられる。続くS215において、符号量割当部104は、blkの値が上記BLK_NUMより小さいかどうか、すなわち、未処理の符号化ブロックが存在するかどうかを判定する。未処理の符号化ブロックが存在する場合(S215で「YES」)、S216においてblkの値を1つ更新して、S212に戻って次のブロックを選択して上述の処理を繰り返す。未処理の符号化ブロックが存在しない場合(S215で「NO」)、本処理を終了する。
【0035】
以上のようにして決定した割当符号量は以下のようなことが言える。まず、符号量算出部103は量子化ステップを1とした場合の符号量、すなわち、可逆符号化における符号量(無劣化で符号化可能な符号量)を算出している。そのため、上述の第1の符号化ブロックについては、無劣化で符号化しても基準符号量に対して残余分が生じているので、その符号量をブロックの割当符号量とすることで、最小限の符号量で可逆符号化を行うことができる。一方、第2の符号化ブロックについては、この残余分を利用して割当符号量を基準符号量よりも大きくすることができる。
【0036】
具体的に、残余符号量と超過符号量の比率から増加率を求め、基準符号量を上回った分に増加率を乗じて基準符号量を加算して、割当符号量を算出している。これにより、第1の符号化ブロックによる残余符号量を余すことなく第2の符号化ブロックに配分することができる。このようにして算出された割当符号量は、基準符号量の代わりに符号化部106が行う符号化処理における目標符号量として利用されることとなり、複数の符号化ブロックからなるグループ単位に固定長符号化を実現しつつも画質劣化を低減することができる。
【0037】
図3に本処理によって算出された1つの符号化グループ分の割当符号量の一例のグラフを示す。図中、実線301は基準符号量(384ビット)である。実線302は符号量算出部103で算出された符号化ブロック毎の算出符号量である。点線303は、上記割当処理により求められた割当符号量である。本実施形態の割当処理によらない固定的な符号量の割当方法であれば、全てのブロックに均一に384ビットの符号量が割り当てられることになる。これに対し、本実施形態の割当処理によれば、ブロックの発生符号量に応じて170~600ビットに符号量を割り当てつつ、符号化グループにおいては固定長の符号量を維持することができる。
【0038】
次に、図4を参照して、符号化部106の内部構成を説明する。図4に示した符号化部106は、仮符号化系400と本符号化系410の2つの大ブロックより構成される。さらに仮符号化系400は仮符号化部402-0~402-N、符号化パラメータ決定部403を含み、本符号化系410は遅延部411、本符号化部412、多重化部413、QP生成部414を含んでいる。
【0039】
まず、仮符号化系400について説明する。仮符号化系400に入力された画像データは複数の仮符号化部402-0~402-Nに入力される。ここで、Nは、利用するQP(0からN)の数に対応する。仮符号化部402-0~402-Nではそれぞれ異なる複数のQP(0~N)で仮符号化処理が行われ、各QPで行われた符号化処理で得られた符号長が画素毎に順次出力される。画像データは、図1(B)に示すようにCb0、Y0、Cr0、Y1・・・と1画素ずつ入力され、符号長の出力もこの順番で1画素分ずつ出力される。仮符号化部402-0~402-Nは前述の符号化コア部110であり、出力信号として、量子化データ、符号データ、符号長が存在するが、この仮符号化系400では符号長のみが使用される。仮符号化部402-0~402-Nの符号長が符号化パラメータ決定部403に出力される。
【0040】
符号化パラメータ決定部403は仮符号化部402-0~402-Nからの複数のQP毎の符号長と、割当符号量とに基づいて符号化ブロック毎に、発生符号量が割当符号量以下となる符号化モードと最適なQPを決定する。符号化パラメータ決定部403は、決定した符号化パラメータを本符号化系410に出力する。
【0041】
以下、符号化パラメータ決定部403における処理内容の詳細を説明する。本施形態における、符号化パラメータ決定部403の処理手順について、図5を参照して説明する。図5(A)において、符号化ブロック毎に処理が開始されると、S501において符号化パラメータ決定部403は、仮符号化部402-0~402-Nのそれぞれから、対応するQPを用いた仮符号化処理により得られた符号長を画素毎に取得する。続くS502において符号化パラメータ決定部403は、1つの符号化ブロックに含まれる画素数分だけ取得した画素毎の符号長を累積し、符号化ブロック全体の符号量を求める。当該符号量はQP毎に算出する。本実施形態において算出された符号量を、QP値:qpを要素として、ブロック符号量:bl_size[qp]と表す。
【0042】
次に、S503において符号化パラメータ決定部403は、S502において算出されたブロック符号量bl_size[qp]と、割当符号量、PCMモードでの符号量に基づいて、該符号化ブロックの符号化における符号化モード及び最適QPを決定する。
【0043】
以下、S503における具体的な処理について図5(B)のフローチャートを参照して説明する。図5(B)は発明の実施形態に対応する符号化モード・最適QPの決定処理の一例を示すフローチャートである。処理の概要としてはQP毎の符号量を用いてブロック符号量が割り当て符号量以下となる最も小さいQPを選定するとともに、符号化モードを決定する。
【0044】
まずS511において、符号化パラメータ決定部403は、処理において符号量算出に用いる変数qpを初期化(0にセット)する。次に、S512において、現在設定されているqpの値に基づく量子化処理により符号化処理を行った場合の符号化ブロック全体の符号量を算出する。符号化ブロックの符号量は、仮符号化部から得た符号量bl_size[qp]と符号化ブロック毎に必要なヘッダ情報の符号量bl_size_hを加算することにより算出することができる。ヘッダ情報のデータ量は、例えば符号化モードを示す1ビット、QP値を示す4ビットの計5ビットである。
【0045】
次に、S513において、符号化パラメータ決定部403は、算出した符号化ブロックの符号量が、対応する符号化ブロックに割り当てられた割当符号量ASSIGN_SIZE以下であるかどうかを判定する。符号化ブロックの符号量が割当符号量ASSIGN_SIZE以下の場合(S513で「YES」)、処理はS514に進む。S514において、符号化パラメータ決定部403は、この時のqp値を最適QPとして変数sel_qpにセットし、続くS518において符号化モードenc_modeをDPCMモードに設定した後、本処理を終了する。
【0046】
また、符号化ブロックの符号量が割当符号量ASSIGN_SIZEを超える場合(S13で「NO」)、処理はS515に進み、qpの値が最大値のMAX_QPよりも小さいかどうかを判定する。ここで、qpの値が最大値より小さい場合(S515において「YES」)、処理はS516に進み、qpの値をインクリメントしてS512に戻って上記処理を繰り返し、割当符号量以下となるQPを選定する。一方、qpの値が最大値と一致する場合(S515において「NO」)、処理はS517に進む。
【0047】
S515の判定においてqpの値が最大値に一致した場合は、どのQP値を用いても当該符号化ブロックの発生符号量が割当符号量以下にならないことを意味する。この場合、DPCMモードでの符号化では固定長符号化が実現できないことになるので、符号化モードをPCMモードに設定する。S517では、符号化モードenc_modeをPCMモードに設定した後、本処理を終了する。
【0048】
次に図6を参照して、最適QPの選定方法の具体例を説明する。図6(A)は、符号化ブロックをQP:0~15で仮符号した場合の、輝度信号および色差信号の符号量(ビット)の一例を示す表である。当該表600において、割当符号量ASSIGN_SIZEを384ビット、MAX_QPを15とする。この符号化ブロックの色差優遇モードが無効と決定された場合、ヘッダ符号量、輝度信号符号量、色差信号符号量の合計のデータ量が割当符号量の384以下となる最小のqpは、合計が378ビットのqp:7となる。
【0049】
このようにして決定した符号化モード及び最適QP値のことを、本実施形態では符号化パラメータと呼ぶこととする。符号化パラメータ決定部403は、上述のようにして符号化パラメータを決定することができる。
【0050】
ここで、図4の説明に戻り、本符号化系410について説明する。仮符号化系400に入力された画像データは本符号化系410にも入力され、遅延部411に供給される。遅延部411は、仮符号化系400において符号化パラメータを生成するために必要な処理サイクル分だけ入力画像データを遅延させて本符号化部412へ出力する。これにより、本符号化部412は仮符号化系400で処理した同一の符号化ブロックを、仮符号化系400で決定した符号化モード、最適QP値を用いて符号化処理することができる。
【0051】
本符号化部412の構成は、前述の符号化コア部110の構成にすることができる。本符号化部412は、仮符号化系400で決定した符号化パラメータを用いて、遅延された画像データを符号化する本符号化処理を実行する。本符号化処理によれば、符号化パラメータ決定部403で算出したブロック符号長と同じ符号長の符号データが生成され、多重化部13に出力される。
【0052】
QP生成部414は符号化パラメータに応じて、符号化ブロックの各画素に異なるQPを適用する必要がある場合に画素毎のQPを生成して本符号化部412に出力する。詳細な動作については後述する。多重化部413には、本符号化部412からの符号データ、符号長、量子化データ、符号化パラメータ決定部403からの符号化パラメータが入力され、符号化ブロック毎に所定のフォーマットで多重化を行ない、ストリームデータを出力する。ストリームデータは、図1の出力端子102に出力され、不図示の画像メモリやバスインターフェースにさらに出力される。
【0053】
ここで、図6(B)及び(C)を参照して、ストリームデータのフォーマットについて説明する。図6(B)は符号化モードがDPCMモード時のフォーマットのデータ構造の一例を示す図であり、ブロックの全体の符号化データ601は、ヘッダ部602(5ビット)と、画素データ部603(可変長)を含むように構成される。また、ヘッダ部602は符号化モード604(1ビット)、最適QP値606(4ビット)を含む。画素データ部603には画素数分(64画素分)の可変長の符号データが格納される。
【0054】
図6(C)は、符号化モードがPCMモード時のフォーマットのデータ構造の一例を示す図であり、ブロックの全体の符号化データ611は、ヘッダ部612(1ビット)と、画素データ部613(383ビット)を含むように構成される。また、ヘッダ部612は符号化モード(1ビット)が格納され、画素データ部613には画素数分(64画素分)のPCMデータが格納される。
【0055】
ここでPCMモード時の符号化方法について説明する。PCMモードはDPCMモードでは発生符号量が割当符号量に収まらない場合に用いられる符号化モードである。そのデータ構造は図6(C)に示すようにヘッダ部612にPCMモードを示す符号化モード1ビットと、画素データ部613のPCMデータで構成されている。PCMデータは、全画素を固定長で量子化したデータが格納される。ヘッダ部612に1ビットを使用しているので、符号化ブロック中の1画素は他の画素より1ビット削減して量子化されるようにする。例えば、本実施形態においては輝度信号の最初の画素Y0を5ビットに量子化し、輝度信号の他の31画素と色差信号32画素合わせて63画素は6ビットに量子化する。こうすることで、ヘッダ部1ビットと画素データ部383ビットあわせて384ビットに符号化することができる。
【0056】
次に、QP生成部414の動作について説明する。QP生成部414は、符号化モードがDPCMモードの場合は、各画素のQPは符号化パラメータ決定部403が決定した最適QPを適用するようにQPを生成し出力する。また、符号化モードがPCMモードの場合は、上記に述べたPCMモード時の量子化がなされるようにQPを生成して出力する。例えば、輝度信号の最初の画素だけ5ビットに量子化されるQPが適用され、その他の画素に対しては6ビットに量子化されるQPが適用されるようにQPを生成し出力する。

以上、説明したように、本実施形態によれば、符号量算出部103によって各符号化ブロックを所定のQPで符号化した場合の符号長を算出し、符号量割当部104によって、符号化グループにおける符号長の合計として算出された符号量に基づき、各符号化ブロックの割当符号量を決定する。符号化部106は、当該割当符号量を用いて画像データを符号化することにより、複数の符号化ブロックからなるグループ単位とした固定長符号化を行いつつ、個々の符号化ブロックについては可変長符号化を行うことができる。
【0057】
DPCMベースの予測符号化方式においては周囲の画像が平坦な画像であっても局所的に急峻なエッジが存在するような画像の場合、画質劣化が生じやすい。これに対し本実施形態では、当該エッジを含む符号化ブロックに対してより多くの符号量を割り当てることが可能となるので、周囲の画像が平坦で局所的に急峻なエッジが存在するような画像の符号化劣化を低減できる。
【0058】
[実施形態2]
次に、発明の第2の実施形態について説明する。上述の実施形態1では、本発明を撮像装置の符号化処理を実行する構成に対して適用した場合を説明した。具体的に、符号化モードをPCMモードとDPCMモードとで切り替えて画像の符号化処理を行う場合に、複数の符号化ブロックのグループ単位に固定長符号化を行いつつ、個々の符号化ブロックでは可変長符号化を行うことを可能とする場合を説明した。
【0059】
これに対し本実施形態では、発明の実施形態に対応する画像処理装置の一形態として、撮像装置が有する画像処理部に発明を適用した場合を説明する。撮像装置における画像処理部は、例えばデモザイク処理、ノイズ除去、歪補正処理等を実行し、例えば画像を分割(左右、上下、田の字など)して処理を行うことができる。この場合、メモリに記録されている画像データの各分割領域にランダムアクセスできることが求められ、メモリに記憶するデータを圧縮するメモリバス圧縮処理のための圧縮方式として固定長圧縮が選択される。
【0060】
例えば水平32画素、垂直1画素を圧縮単位の符号化ブロック(以下、「圧縮ブロック」と呼ぶ)として固定長圧縮することにより画像処理で使用したいデータがメモリのどこに格納されているか容易に判断可能なためランダムアクセスが実現できる。
【0061】
図7(A)にその様子を示す。図7(A)は、処理対象の1画像をメモリバス圧縮の処理単位である圧縮ブロックで分けた様子を示している。また画像の中央で左右の分割領域に分割されており、画像処理の処理単位は左右分割領域となる。各圧縮ブロック内に示す"320bit"とは、各圧縮ブロックをメモリバス圧縮手段で圧縮した後の圧縮データ量を示している。この例では、1画素10bitで輝度32画素、色差32画素の計640bitが1/2に圧縮され320bitになったことを示している。また、左右分割された各1ラインのデータ量は1920bitである。圧縮ブロックのサイズは水平32画素×垂直1画に限定されるものではなく任意のサイズでよい。例えば水平8画素×垂直8画素のように2次元構造としてもよい。
【0062】
図の上部に示す黒い逆三角形の印(以下、黒印という)は、圧縮されてメモリに記憶されている圧縮データを読み出す際にランダムアクセス可能な読み出し位置を示している。各圧縮ブロックは320bitの固定長で圧縮されているので各圧縮ブロックの単位でランダムアクセス可能である。この例では圧縮ブロックが水平32画素、垂直1画素なので各黒印の座標は(x, y) = (32*n, m) (n,mは0以上の整数)で表現され、ランダムアクセス可能な位置となる(以降の黒印も同じようにランダムアクセス可能な位置を示した上端の1ラインだけでなく、黒印下の垂直方向にも適用される)。
【0063】
しかし圧縮ブロック単位で固定長に圧縮すると画像の特徴によっては画質劣化が伴う圧縮ブロックが生じる。例えばメモリバス圧縮のアルゴリズムの性質上、320bitでは十分な画質を保てない画像の特徴を有する圧縮ブロックであっても必ず固定長の320bitに圧縮するため、苦手とする画像の特徴がある圧縮ブロックにおいては画質が劣化する傾向にある。一方320bit未満の符号長であっても圧縮前の画像に戻すことが可能な(画質劣化がない)場合もある。この場合は十分な画質を保つために320bit未満でも十分であるが、1つの圧縮ブロックは、必ず320bitでなければならないため、'0'をスタッフィングするなどの処理を行う必要があり符号量を無駄に使用することになる。
【0064】
これに対し図7(B)のように、圧縮ブロックを固定長の単位とするのではなく、分割された左右それぞれの領域の各1ラインを固定長(1920bit)圧縮の単位とすることができる。ここで、1ラインには6ブロックが含まれ、各圧縮ブロックは、画像の特徴に応じ、圧縮難易度が高い圧縮ブロックには多くの符号量(512bit)を割り当て、圧縮難易度が低い圧縮ブロックには少ない符号量(128bit)を割り当てることで画質劣化を低減することができる。またこの場合、分割された左右それぞれの分割領域の1ラインの符号量はどのラインも1920bitの固定長なので黒印で示した分割した境界からはランダムアクセス可能な読み出し位置となり、ランダムアクセスも維持しつつ画質劣化を低減することができる。
【0065】
しかしながら画像処理における、例えばノイズ除去処理などでは分割領域外の画素を必要とする処理部もある。図7(C)は、画像を左右分割した場合に、分割境界を跨いで画素を参照する例を示す。斜線で示す領域は、左右分割した左の分割領域に属する画素領域であるが、右側の分割領域のフィルタ処理を行う際に参照する必要がある。このように分割境界から所定範囲の画素領域は、隣接する他の分割領域の処理時に必要とされる画素領域であり、この画素領域を本実施形態では「オーバーラップ領域」と称する。
【0066】
右側の分割領域を処理するためメモリに記録された圧縮データを読み出す場合、図7(C)に示した黒印701の位置からランダムアクセス可能だが、フィルタ処理としては黒印702の位置からの画素が必要である。しかし黒印702の位置を含む圧縮ブロックは何ビットで圧縮されているか不明なためメモリのどの位置に格納されているか判断できず読み出すことができない。
【0067】
そこで、本実施形態では、画質向上のために圧縮ブロック単位で異なる圧縮データ量で圧縮処理を行いつつもランダムアクセス性を保つことが可能とするように、オーバーラップ領域における圧縮データ量を所定値に固定的に設定する。
【0068】
以下、本実施形態に対応する画像処理部の構成について、より詳細に説明する。図8は、発明の実施形態2に対応する撮像装置800の構成例を示すブロック図である。撮像装置800は、撮像部801、画像処理部802、メモリバス圧縮部803及び807、メモリI/F804、メモリ805、ノイズ除去部806、メモリバス伸長部808、809及び812、符号化部810、記録部811、表示部813、制御部814を含むように構成することができる。
【0069】
制御部814は、撮像部801、画像処理部802、メモリバス圧縮部803及び807、ノイズ除去部806、メモリバス伸長部808、809及び812、符号化部810、記録部811、表示部813を制御する。
【0070】
撮像部801は、光学レンズ、絞り、フォーカス制御及びレンズ駆動部を含む光学ズームが可能なレンズ光学系とレンズ光学系からの光情報を電気信号に変換するCCDイメージセンサ又は、CMOSセンサなどのイメージセンサを含み、イメージセンサにより得られた電気信号をディジタル信号へ変換した画像データを画像処理部802へ出力する。画像処理部802は、入力された画像データに対し、デモザイク処理、ノイズ除去処理、光学歪補正処理、色補正処理等により画像データを生成しメモリ805に記憶するためにメモリバス圧縮部803へ出力する。
【0071】
画像処理部802は、画像を左右、上下分割して処理することが可能である。メモリバス圧縮部803及び807は、圧縮率など圧縮動作を規定する圧縮パラメータを制御部814から受信し、メモリバスの帯域削減のために低遅延の圧縮技術で画像データを圧縮し、生成された圧縮データをメモリI/F部804へ出力する。圧縮パラメータは圧縮データと共にメモリ805に記憶しても良いし、制御部814で記憶しておいても良い。また撮像装置800のメモリバスの帯域に余裕がある動作モードの場合は、圧縮せずに入力された画像データをメモリI/F部804へ出力することも可能である。
【0072】
本実施形態におけるメモリバス圧縮部803及び807は、水平32画素、垂直1画素の圧縮ブロック単位に圧縮を行い処理対象の画像から圧縮画像(圧縮データ)を生成する。またメモリバス圧縮部803及び807の圧縮パラメータには、圧縮率、画素のビット深度、画像フォーマット等があり、制御部814が撮像装置の動作モードに応じてこれら圧縮パラメータを決定し、メモリバス圧縮部803及び807に設定する。メモリI/F部804は、各処理部からのメモリへのアクセス要求を調停し、メモリ805に対するデータの読み出し・書き込み制御を行う。
【0073】
メモリ805は、撮像装置800を構成する各処理部から出力される各種データを格納するための例えば揮発性メモリで構成される記憶部である。メモリバス伸長部808は、メモリバス圧縮部803、807のいずれかで圧縮され、メモリ805に記憶されている圧縮データを読み出し、伸長した画像データをノイズ除去部806へ出力する。メモリバス伸長部809は、メモリバス圧縮部803、807のいずれかで圧縮され、メモリ805に記憶されている圧縮データを読み出し、伸長した画像データを符号化部810へ出力する。メモリバス伸長部812は、メモリバス圧縮部803、807のいずれかで圧縮され、メモリ805に記憶されている圧縮データを読み出し、伸長した画像データを表示部813へ出力する。メモリバス伸長部808,809及び812は、メモリ805に記憶されているデータが圧縮されていない場合は、伸長せずにそのまま各接続先へ出力する。
【0074】
また伸長処理を開始する前に、メモリバス圧縮部803、807のいずれかで圧縮した際に設定した圧縮率など伸長に必要なパラメータを制御部814から設定する。メモリ805に圧縮パラメータが記憶されている場合は、先に圧縮パラメータをメモリ805から読み出して、伸長に必要なパラメータを設定する。
【0075】
ノイズ除去部806は、現在処理中の画像と過去に処理した画像を用いてノイズを除去する巡回型ノイズ除去処理を行う。ノイズ除去後の画像データはメモリバス圧縮部807を介してメモリ805に記憶する。符号化部810は、HEVCやH.264に代表されるような高能率符号化方式で画像データを符号化し、記録部811に符号化データを記録する。記録部811は、例えば不揮発性メモリで構成される記録メディアである。表示部813は、例えば液晶ディスプレイや有機ELディスプレイなどであり、メモリ805から読み出した画像データを表示する。
【0076】
次に、メモリバス圧縮の制御処理について図9に示すフローチャートを参照して説明する。ここでは、メモリバス圧縮処理を行う前の各圧縮ブロックの目標圧縮データ量を設定する制御を主に説明する。メモリバス圧縮部803,807の入出力の接続先は異なるが、処理機能内容は同じであるため、メモリバス圧縮部803を例に説明する。
【0077】
まず、S901において、制御部814はメモリバス圧縮部803の圧縮パラメータを設定する。次にS902において、制御部814は画像処理部802から出力されメモリバス圧縮部803に入力された画像データのメモリバス圧縮の難易度を測定する。例えば、図10(A)に示すように画像を左右分割し、分割された左右それぞれの分割領域の各1ラインを固定長圧縮の単位とする(図10(A)の斜線部)。この例では1ラインに圧縮ブロックが水平に12個並んでおり、各分割領域では6個の圧縮ブロックを持つ。画像データが1画素10ビット、YUV422フォーマットとし、圧縮パラメータの圧縮率が1/2とすると、左右の各分割領域の1ラインの目標圧縮データ量は32[画素] x 2[4:2:2] x 10[bit] x 6[個] / 2[圧縮率] = 1920 [bit]となる。なお、画像の分割形態は図10に示したものに限らず、処理対象の画像のサイズに応じて、該画像を複数の分割領域に分割し、当該分割領域をさらに所定数の圧縮ブロックに分割することができる。また、圧縮ブロックは1ライン毎でなくてもよい。
【0078】
図10(A)の斜線部で示した1ラインをメモリバス圧縮部803で使用する所定の量子化パラメータにより一度圧縮し、その時の各圧縮ブロックの圧縮データ量で圧縮難易度を測る。圧縮データ量が予め定められた第1の閾値(Th1)より大きい圧縮ブロックは、難易度が高いと判断する。逆に圧縮データ量が第2の閾値(Th2<Th1)より小さい圧縮ブロックは、難易度が低いと判断し、制御部814で記憶しておく。この処理を各分割領域のそれぞれのラインで実施した結果を図10(B)に示す。
【0079】
"512bit"と記載された圧縮ブロックは難易度が高く、目標圧縮データ量が多く割り当てられている。"320bit"と記載された圧縮ブロックは、圧縮データ量が第1の閾値以下で、第2の閾値以上の圧縮ブロックである。"128bit"と記載された圧縮ブロックは難易度が低く、目標圧縮データ量が少なく割り当てられている。本実施形態では、目標圧縮データ量を、データ量の大きい順に第1の値(512bit)、第2の値(320bit)、第3の値(128bit)として、3個のデータ量を用いているが、目標圧縮データ量の持たせ方はこれに限定されるものではなく、数値が異なっていてもよいし、あるいは、個数が異なっていてもよい。
【0080】
続くS903では、制御部814は、処理対象の分割領域内にオーバーラップ領域を含むかどうかを判定する。オーバ―ラップ領域を含む場合(S903で「YES」)は、処理はS904に進む。一方、オーバ―ラップ領域を含まない場合(S903で「NO」)は、処理はS907に進む。図10(A)に示す例では、左側分割領域を処理する場合には、オーバーラップ領域が含まれることになり、右側分割領域を処理する場合にはオーバーラップ領域は含まれない。
【0081】
続く、S904では、まず、オーバーラップ領域に属する圧縮ブロックの目標圧縮データ量を設定する。当該圧縮ブロックの目標圧縮データ量は、難易度測定の結果によらず予め定められたオーバーラップ領域用の圧縮データ量とする。本実施形態では、図10(C)に示す通り黒印702と701で挟まれる圧縮ブロックの目標圧縮データ量をともに320bitとしている。続くS905では、1ラインの目標圧縮データ量からオーバーラップ領域分の目標圧縮データ量を減算する。これにより、左側分割領域に属し、かつ、オーバーラップ領域に属しない圧縮ブロックで使用可能な圧縮データ量は1920 - ( 320 x 2 ) = 1280 [bit]となる。続くS906では、減算により得られた1280bitをオーバーラップ領域に属しない残りの4つの圧縮ブロックで分配する。その際、各圧縮ブロックの難易度に基づき各圧縮ブロックの目標圧縮データ量を決定する。
【0082】
S907では、オーバーラップ領域を含まない分割領域について1ラインの目標圧縮データ量を分配する処理を行う。ここでは、各圧縮ブロックの難易度に基づき1ラインの各圧縮ブロックの目標圧縮データ量を決定する。このとき、1ラインの各圧縮ブロックの圧縮データ量の合計が固定長圧縮単位の圧縮データ量ここでは1920bitになるように設定する。なお、難易度の高い圧縮ブロックの数と、難易度の低い圧縮ブロックの数は同数にする必要があるが、仮に難易度が高いと判定された圧縮ブロックの数が、難易度が低いと判定された圧縮ブロックの数よりも多くなる場合も想定される。そのような場合は、算出された圧縮データ量の大きさに基づき、より大きい圧縮データ量が算出された圧縮ブロックを優先して512bitを割り当て、残りは320bitとする。難易度が高いと判定された圧縮ブロックの数が、難易度が低いと判定された圧縮ブロックの数よりも少なくなる場合も同様に、算出された圧縮データ量の大きさに基づき、より小さい圧縮データ量が算出された圧縮ブロックを優先して128bitを割り当て、残りは320bitとする。
【0083】
以上の処理により各圧縮ブロックの目標圧縮データ量が定まったら、続くS908においてメモリバス圧縮部803が各圧縮ブロックを圧縮する。
【0084】
次に、ノイズ除去部806がメモリ805から画像データ(圧縮データ)を読み出す際の処理について図11に示すフローチャートを参照して説明する。
【0085】
まず、S1101では、制御部814がノイズ除去部806,メモリバス伸長部808に対して伸長パラメータを設定する。伸長パラメータとは、例えばメモリバス圧縮前の画素のビット幅やメモリバス圧縮の圧縮率など、伸長に必要なパラメータをいう。制御部814は、本ステップにおいてメモリバス圧縮部803もしくは807によって圧縮された圧縮データが記憶されているメモリ805の領域の先頭アドレス、各分割領域の水平サイズなども設定する。
【0086】
続くS1102では、制御部814は、ノイズ除去部806が読み出す画像領域のノイズ除去処理にオーバーラップ領域が必要か否かを判断する。当該判断は、処理する分割領域のサイズ情報や、メモリ805に記憶されている圧縮データを圧縮した際の圧縮ブロック数、分割領域やオーバーラップ領域内の圧縮ブロックの圧縮データ量とメモリバス伸長部808で復号済みの圧縮ブロック数に基づいて行う。オーバーラップ領域が必要と判断された場合(S1102で「YES」)、処理はS1103に進み、オーバーラップ領域を含まない場合(S1102で「NO」)、処理はS1104に進む。S1103において、ノイズ除去部806は、読み出すアドレスをオーバーラップ領域分ずらす。
【0087】
具体的に図10(C)を参照して説明すると、図10(C)に示す左側分割領域をラスター順に読み出し、伸長し終えた状況とする。次に処理するのは右側分割領域で図10(C)の位置701からラスター順に処理することになる。しかし、右側分割領域の各ラインの先頭の圧縮ブロックを処理するためにはオーバーラップ領域が必要であるため、位置702から圧縮ブロックを読み出さなければならない。そこで、S1103において制御部814は、メモリバス圧縮時にオーバーラップ領域に含まれる圧縮ブロック数やオーバーラップ領域内の圧縮ブロックの圧縮データ量も把握しているため、読み出しアドレスを位置701から位置702にずらす。
【0088】
続くS1104では、制御部814が読み出しアドレスをノイズ除去部806に設定する。左右分割の左側の分割領域を処理する場合は、図10の位置703から読み出すためのアドレスを設定し、左右分割の右側の分割領域を処理する場合は、図10の位置702から読み出すためのアドレスを設定する。また画像を読み出すための情報も含まれており、例えば図10に示す左右に分割されていることを示す情報や、分割時の各分割領域の水平、垂直サイズなどである。
【0089】
続くS1105では、制御部814が伸長に必要なパラメータをメモリバス伸長部808に設定する。当該パラメータには、メモリバス圧縮部803もしくは807で使用された圧縮パラメータ、例えばメモリバス圧縮前の画素のビット幅やメモリバス圧縮の圧縮率などが含まれる。続くS1106では、ノイズ除去部806からメモリバス伸長部808を介してメモリI/F部804に対し、画像データ(圧縮データ)読み出し要求を行う。これに対しメモリI/F部804は、読み出し要求に従ってメモリ805から圧縮データを読み出しメモリバス伸長部808へ出力する。メモリバス伸長部808では設定されたパラメータに従い圧縮ブロック単位に伸長し、画像データを生成し、ノイズ除去部806へ出力する。
【0090】
続くS1107では、ノイズ除去部806は、読み出すべき領域の最後のラインまで読み出し、伸長が完了したかどうかを判定する。最後のラインまで読み出し、伸長が完了したと判定される場合(S1107でYES)、処理はS1108に進む。一方、最後のラインまで完了していないと判定される場合(S1107で「NO」)、処理はS1106に戻り、読み出しと伸長を繰り返す。S1108では、1画像全ての読み出し、伸長が完了したかを判定する。例えば図10(C)に示す左側の分割領域の最終ラインまで読み出し、伸長が完了した際は、右側の分割領域の左上(図4の402)から読み出しを開始する。右側の分割領域の最終ラインまで読み出し、伸長が完了した際は、1画像全ての読み出し、伸長が完了したので伸長処理を終了する。読み出しおよび伸長が完了すると、ノイズ除去部806は読み出した画像データに対してノイズ除去処理を行う。
【0091】
以上のように動作させることで、画質向上のために圧縮ブロック単位で異なる圧縮データ量で圧縮処理を行いつつもランダムアクセス性を保つことが可能となる。
【0092】
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【符号の説明】
【0093】
100:画像符号化部、101:入力端子、102:出力端子、103:符号量算出部、104:符号量割当部、105:遅延部、106:符号化部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11