説明

画像処理装置、画像処理方法

【課題】 隣接画素ブロック中の画素を用いるような画像処理を行うような場合であっても、画素ブロック群を格納するメモリに対するアクセスをより軽減させるための技術を提供すること。
【解決手段】 複数画素から成る画素ブロックを、左端の縦ラインを含む第1のブロック、右端の縦ラインを含む第2のブロック、第1及び第2のブロックを省いた残りの第3のブロック、に分割する。第1〜3のブロックのそれぞれを符号化して第1〜3の符号化ブロックを生成し、生成した第1〜3の符号化ブロックメモリに格納する。第1の符号化ブロックの先頭アドレス及びデータサイズ、第2の符号化ブロックの先頭アドレス及びデータサイズ、3の符号化ブロックの先頭アドレス及びデータサイズ、をアドレス情報としてメモリに格納する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像を符号化して格納するための技術に関するものである。
【背景技術】
【0002】
一般的な動画像処理装置では、1フレーム分の画像をメモリに格納した後、この画像をライン方向に走査しながら読み出し、画像処理モジュールに送信する。画像処理モジュールは1ライン単位や数ライン単位でピクセル処理およびフィルタ処理を行い、再度フレームバッファに書き込み出力する。
【0003】
近年の4K2Kや8K4Kといった画像の高解像度化に伴い、従来のライン処理では画像処理時に必要なラインバッファ容量やメモリ帯域が大きくなりうる。そのため、メモリコストが高くなるという問題が生じていた。メモリコスト削減のため、画像のメモリへの書き込み、読み出しの際に、リアルタイムで画素を圧縮伸張するアーキテクチャが提案されている。
【0004】
特許文献1では、画像を複数の矩形ブロックに分割し、矩形ブロック単位で圧縮し、圧縮された矩形ブロックを圧縮メモリの一定サイズの所定のアドレスに格納することが開示されている。圧縮アルゴリズムとしてはJPEG等の可変長変換アルゴリズムを用いている。圧縮データの書き込み時にメモリ配置アドレステーブルを設定し、圧縮データの読み出しに使用する。上記のような構成では、矩形ブロック単位で圧縮を施すため、画像処理を行う場合、圧縮された矩形ブロックを伸張した後に得られる矩形ブロックを処理する。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2006−129471号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
矩形ブロック単位でフィルタ処理等の画像処理を行う場合、分割境界付近の画素である境界画素の周辺の画素は、この境界画素が属する矩形ブロック内に存在しないことがあり、その結果、このような境界画素については周辺画素を参照した画像処理ができない。この場合、境界画素を複製するなどして処理することも可能であるが、分割境界の画質が悪化するため、隣接する矩形ブロックから周辺画素にあたる画素を参照することが望ましい。隣接する矩形ブロック内の画素を参照するには、処理対象の矩形ブロックと隣接する全ての矩形ブロックを読み出す必要がある。
【0007】
特許文献1のように、矩形ブロックを所定の画素数で構成する場合、矩形ブロックの大きさが参照画素数よりも大きい場合は、不要な画素を読み出す割合が多くなるため、メモリ帯域を有効利用できないという問題がある。また、不要な画素の読み出し量を減らすため、矩形ブロックの大きさを参照画素と同等にする場合には、圧縮データの配置アドレス情報等、付加情報の増加により、メモリ帯域が圧迫されるという問題がある。
【0008】
また、JPEG等では、一般的に圧縮単位が大きいほど、効率的に圧縮可能である。そのため、矩形ブロックを小さく設定するとメモリ帯域の削減効果が少なくなる。また、画像処理回路において、参照画素を必要とするフィルタ処理回路がフレームメモリを挟んで、前段、後段と分割されている構成を想定する。この場合、前段よりも後段の参照画素数が少ない場合、矩形ブロックの大きさを最初の参照画素数に合わせて作成すると、後段では、必要のない画素の読み出しが増加する。また、矩形ブロックの大きさを後段に合わせて作成すると、前段と後段とで、読み出す矩形ブロックの数を変更しなければならないため、処理が複雑になる。
【0009】
本発明は以上の問題に鑑みてなされたものであり、隣接画素ブロック中の画素を用いるような画像処理を行うような場合であっても、画素ブロック群を格納するメモリに対するアクセスをより軽減させるための技術を提供することを目的とする。
【課題を解決するための手段】
【0010】
本発明の目的を達成するために、例えば、本発明の画像処理装置は以下の構成を備える。即ち、複数画素から成る画素ブロックを、該画素ブロックの左端の縦ラインを含む第1の矩形画素ブロック、前記画素ブロックの右端の縦ラインを含む第2の矩形画素ブロック、前記画素ブロックから前記第1及び第2の矩形画素ブロックを省いた残りの矩形画素ブロックである第3の矩形画素ブロック、の3つの矩形画素ブロックに分割する手段と、前記第1の矩形画素ブロック、前記第2の矩形画素ブロック、前記第3の矩形画素ブロック、のそれぞれを符号化して第1の符号化矩形画素ブロック、第2の符号化矩形画素ブロック、第3の符号化矩形画素ブロックを生成し、該生成した第1の符号化矩形画素ブロック、第2の符号化矩形画素ブロック、第3の符号化矩形画素ブロックをメモリに格納する符号化手段と、前記メモリにおける前記第1の符号化矩形画素ブロックの先頭アドレス及びデータサイズ、前記メモリにおける前記第2の符号化矩形画素ブロックの先頭アドレス及びデータサイズ、前記メモリにおける前記第3の符号化矩形画素ブロックの先頭アドレス及びデータサイズ、を前記画素ブロックに対するアドレス情報として前記メモリに格納する格納手段とを備えることを特徴とする。
【発明の効果】
【0011】
本発明の構成により、隣接画素ブロック中の画素を用いるような画像処理を行うような場合であっても、画素ブロック群を格納するメモリに対するアクセスをより軽減させることができる。
【図面の簡単な説明】
【0012】
【図1】メモリ304上におけるマップを示す図。
【図2】縦分割画像、画素ブロック、共有領域、非共有領域、符号化単位を示す図。
【図3】画像処理装置の機能構成例を示すブロック図。
【図4】画像処理装置が行う処理のフローチャート。
【図5】画像処理装置の機能構成例を示すブロック図。
【図6】画像処理装置が行う処理のフローチャート。
【発明を実施するための形態】
【0013】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載の構成の具体的な実施例の1つである。
【0014】
[第1の実施形態]
本実施形態では、1枚の画像を縦方向に分割して複数個の縦分割画像を生成する。もちろん、縦分割画像を生成するための分割数は2以上である。図2(c)ではその一例として、1枚の画像220をB0,B1,B3の3つの縦分割画像に分割している。
【0015】
そして、それぞれの縦分割画像を符号化(圧縮)するために、それぞれの縦分割画像を更に、複数画素から成る画素ブロック(画像ブロック)毎に分割する。そしてこの縦分割画像毎に画像処理を施すのであるが、1つの縦分割画像に対して画像処理を行う場合、この縦分割画像内の画素をラスタスキャン順で参照しながら画像処理を進める。即ち、図2(c)の場合、最初は縦分割画像B0の1ライン目を処理し、次に縦分割画像B0の2ライン目を処理する。このようにして縦分割画像B0の全てのラインを処理すると、次に、縦分割画像B1の1ライン目を処理する。ただし、着目縦分割画像の左右端に位置する画素に対する画像処理では、着目縦分割画像の左右に隣接する縦分割画像内の画素を参照する必要がある。そのため、この左右に隣接する縦分割画像において着目縦分割画像との境界付近は、着目縦分割画像との共有領域となる。即ち、図2(b)に示す如く、縦分割画像B0中の画素群のうち縦分割画像B1との境界付近221に位置する画素に対して画像処理を行う場合、縦分割画像B1中の画素群のうち縦分割画像B0との境界付近229に位置する画素を参照する必要がある。同様に、縦分割画像B1中の画素群のうち縦分割画像B0との境界付近229に位置する画素に対して画像処理を行う場合、縦分割画像B0中の画素群のうち縦分割画像B1との境界付近221に位置する画素を参照する必要がある。そこで、境界付近221及び境界付近229は、縦分割画像B0と縦分割画像B1との共有領域となる。また、縦分割画像B3中の画素群のうち縦分割画像B1との境界付近222に位置する画素に対して画像処理を行う場合、縦分割画像B1中の画素群のうち縦分割画像B3との境界付近228に位置する画素を参照する必要がある。同様に、縦分割画像B1中の画素群のうち縦分割画像B3との境界付近228に位置する画素に対して画像処理を行う場合、縦分割画像B3中の画素群のうち縦分割画像B1との境界付近222に位置する画素を参照する必要がある。そこで、境界付近222及び境界付近228は、縦分割画像B0と縦分割画像B3との共有領域となる。
【0016】
以上ことから、例えば、縦分割画像B1に対して画像処理を行う場合、縦分割画像B0内の画素だけでなく、共有領域221,222内の画素も必要となる。然るに、縦分割画像B1に対して画像処理を行う場合には、縦分割画像B1内の画素に加え、共有領域221,222内の画素も読み出す。この共有領域は、画像の端部の縦分割画像には右か左に1つ存在し、それ以外の縦分割画像には左右1つずつ存在する。
【0017】
画素ブロック毎の詳細な構成を図2(a)に示す。画素ブロック202は、縦分割画像200を画素ブロック毎に分割した場合の1つの画素ブロックである。画素ブロック202は、画素ブロック201との共有領域LB10(左共有領域)、画素ブロック203との共有領域RB10(右共有領域)、どの画素ブロックからも参照されない画素群の領域B10(非共有領域)から成る。画素ブロック201は、縦分割画像を画素ブロック毎に分割した場合の1つの画素ブロックであり、画素ブロック202との共有領域RB00、左端領域LB00、どの画素ブロックからも参照されない画素群の領域B00から成る。画素ブロック203は、縦分割画像を画素ブロック毎に分割した場合の1つの画素ブロックであり、画素ブロック202との共有領域LB20、右隣の画素ブロックとの共有領域RB20、どの画素ブロックからも参照されない画素群の領域B20から成る。
【0018】
共有領域RB00は、領域LB10内の画素に対する画像処理を行う際に参照される画素が属する領域であり、共有領域LB10は、領域RB00内の画素に対する画像処理を行う際に参照される画素が属する領域である。また、共有領域RB10は、領域LB20内の画素に対する画像処理を行う際に参照される画素が属する領域であり、共有領域LB20は、領域RB10内の画素に対する画像処理を行う際に参照される画素が属する領域である。このように、それぞれの画素ブロックは、画像上で隣接する画素ブロックとの間で共有領域を有している。画素ブロックのX方向(同図横方向)の幅は、画像処理を行う対象の画素数とする。例えば、画素ブロック202のX方向の幅は、共有領域LB10の幅204と非共有領域B10の幅205と共有領域RB10の幅206の和である。Y方向の幅は、符号化単位に従ったもので、例えば、JPEG符号化を行う場合、符号化単位は8画素×8ラインであるので、8ラインとしても良いし、図2(b)に示す如く、符号化単位210のライン数のN倍でもよい。
【0019】
本実施形態では1つの画素ブロックを符号化する際に、この画素ブロックにおける左共有領域、右共有領域、非共有領域、のそれぞれを別個に符号化してメモリ上で管理するが、その際、それぞれの符号化データのメモリ上におけるアドレス情報を作成する。それぞれの画素ブロックの符号化データをメモリ上に格納した場合における、このメモリ上のマップを図1(a)に示す。
【0020】
それぞれの画素ブロックの符号化データ(Block00、10、20、01、11、21)は、左共有領域の符号化データLD、非共有領域の符号化データD、右共有領域の符号化データRD、から構成されている。このように、左共有領域の符号化データLD、非共有領域の符号化データD、右共有領域の符号化データRDが、メモリ上の連続したメモリ領域に格納されており、これらの符号化データLD、D、RDが1つの画素ブロックの符号化データを構成している。なお、これらの符号化データLD、D、RD、をまとめて1つの画素ブロックの符号化データとして管理することができるのであれば、それぞれの画素ブロックの符号化データのメモリ上における並び順は特に限定するものではない。なお、本実施形態では、画素ブロックはJPEG符号化方式に従って可変長符号化するため、画素ブロック毎に可変長の符号化データとなる。
【0021】
次に、上記メモリ上におけるそれぞれの符号化データを特定する為のアドレステーブルの構成例を図1(b)に示す。Address00は、画素ブロック00の符号化データBlock00に対応するアドレス情報であり、Address10は、画素ブロック10の符号化データBlock10に対応するアドレス情報である。このように、メモリ上には、画素ブロックの符号化データ毎のアドレス情報から成るアドレステーブルが格納されている。1つの画素ブロックの符号化データに対するアドレス情報には、画素ブロックの符号化データ、左共有領域の符号化データ、右共有領域の符号化データ、左共有領域の符号化データ、のそれぞれについてメモリ上の開始アドレスとデータサイズとが記されている。
【0022】
例えば、Address00中のBAは、画素ブロック00の符号化データBlock00のメモリ上における先頭アドレス、BSは、画素ブロック00の符号化データBlock00のデータサイズを示す。LAは、画素ブロック00の左共有領域の符号化データLDのメモリ上における先頭アドレスであり、LSは、画素ブロック00の左共有領域の符号化データLDのデータサイズである。RAは、画素ブロック00の右共有領域の符号化データRDのメモリ上における先頭アドレスであり、RSは、画素ブロック00の右共有領域の符号化データRDのデータサイズである。
【0023】
なお、アドレステーブルのデータサイズを削減するために、先頭アドレスBAと先頭アドレスLAとは一致するため、一方は削除しても良い。また、それぞれの先頭アドレスは、先頭アドレスLAや先頭アドレスBAからのオフセットアドレスで表現しても良い。このように、アドレステーブルの構成例については特に限定するものではない。本実施形態では、各アドレス情報は固定長とし、メモリ上の固定領域に順次配置するものとする。各アドレス情報の配置位置が常に固定である場合には、アドレス情報は圧縮されていてもよいし、連続に配置されなくてもよい。
【0024】
本実施形態に係る画像処理装置の機能構成例を示す図3のブロック図、本実施形態に係る画像処理装置が行う処理のフローチャートを示す図4を用いて、本実施形態に係る画像処理装置、及びこの画像処理装置が行う画像処理方法について説明する。
【0025】
入力部300には、静止画像や、動画像を構成する各フレームの画像が入力される。入力部300は入力された画像(静止画像若しくは1フレーム分の画像)を上記のようにいくつかの縦分割画像に分割し、分割した縦分割画像を順次で後段のブロック変換部301に送出する。ステップS400以降の処理は、1つの縦分割画像に対する処理であるため、図4(a)のフローチャートに従った処理は、縦分割画像毎に行うことになる。
【0026】
ステップS400においてブロック変換部301は、入力部300からライン毎のラインデータが入力されると、これを自身が管理するラインバッファに格納する。そしてブロック変換部301は、規定ライン数分のラインデータがラインバッファに格納されると、規定ライン数分のラインデータを圧縮器302による符号化単位毎に分割し、分割したそれぞれの符号化単位のデータを順次圧縮器302に送出する。本実施形態では、圧縮器302はJPEGエンコーダであるものとして説明するため、圧縮器302は、8画素×8ライン単位で符号化を行う。然るにブロック変換部301は、8ライン分のラインデータがラインバッファに格納されたことを検知すると、この8ライン分のラインデータを8画素×8ラインの画素ブロック毎に分割し、分割したそれぞれの画素ブロックを順次圧縮器302に送出する。
【0027】
その際、ブロック変換部301は、送出する画素ブロック内のそれぞれの画素に対してフラグ値を設定する。このフラグ値は、「左共有領域に属する画素」、「非共有領域に属する画素」、「右共有領域に属する画素」、の何れかを示す値をとる。ブロック変換部301は、画素ブロック内の画素を送出する毎にカウントすることで、送出した画素の画素ブロック内における位置を特定し、送出した画素が画素ブロック内で非共有領域、左共有領域、右共有領域の何れに属しているのかを判断する。そして、送出した画素が左共有領域に属する画素であれば、この画素に対しては「左共有領域に属する画素」を示すフラグ値「0」を設定する。また、送出した画素が非共有領域に属する画素であれば、この画素に対しては「非共有領域に属する画素」を示すフラグ値「1」を設定する。また、送出した画素が右共有領域に属する画素であれば、この画素に対しては「右共有領域に属する画素」を示すフラグ値「2」を設定する。そしてブロック変換部301は、送出した画素と関連付けて、この画素に対するフラグ値を圧縮器302に送出する。
【0028】
これにより圧縮器302は、画素ブロック内のそれぞれの画素のフラグ値を参照すれば、画素ブロック内の各画素が左共有領域に属しているのか、非共有領域に属しているのか、右共有領域に属しているのかを判別することができる。即ち、このフラグ値は画素ブロックを、画素ブロックの左端の縦ラインを含む第1の矩形画素ブロック、右端の縦ラインを含む第2の矩形画素ブロック、第1及び第2の矩形画素ブロックを省いた残りの第3の矩形画素ブロック、の3つに分割することになる。
【0029】
圧縮器302に対する入力はライン方向であるので、通常、画素ブロックは、左共有領域、非共有領域、右共有領域、の順に必要な画素がそろう。然るにステップS401で圧縮器302は、画素毎のフラグ値を参照し、左共有領域に属する画素から成る第1の矩形画素ブロックを構成し、この第1の矩形画素ブロックを1MCUとしてJPEG符号化を行うことで第1の符号化矩形画素ブロックを生成する。そして圧縮器302は、この生成した第1の符号化矩形画素ブロックを後段のWDMAC303に対して送出する。
【0030】
次にステップS402で圧縮器302は、画素毎のフラグ値を参照して、非共有領域に属する画素から成る第3の矩形画素ブロックを構成し、この第3の矩形画素ブロックを1MCUとしてJPEG符号化を行うことで第3の符号化矩形画素ブロックを生成する。そして圧縮器302は、この生成した第3の符号化矩形画素ブロックを後段のWDMAC303に対して送出する。
【0031】
次にステップS403で圧縮器302は、画素毎のフラグ値を参照して、右共有領域に属する画素から成る第2の矩形画素ブロックを構成し、この第2の矩形画素ブロックを1MCUとしてJPEG符号化を行うことで第2の符号化矩形画素ブロックを生成する。そして圧縮器302は、この生成した第2の符号化矩形画素ブロックを後段のWDMAC303に対して送出する。
【0032】
ステップS404でWDMAC303は、1画素ブロック分の符号化データ、即ち、ステップS401〜S403の各ステップで送出された第1〜3の符号化矩形画素ブロック、を受けると、それぞれの符号化矩形画素ブロックをメモリ304に格納する。メモリ304上における1画素ブロック分の符号化データの配置例については図1(a)を用いて上述したとおりである。また、画素ブロック201、202、203のそれぞれを符号化して符号化データBlock00、10、20、を生成した場合、図1(a)に示す如く、それぞれの符号化データをメモリ304上に並べて格納する。このように、書き込まれる画素ブロックは、ライン走査方向順に連続して格納する。
【0033】
ステップS404では更にWDMAC303は、各符号化矩形画素ブロックのデータサイズ(バイト数)、及び各符号化矩形画素ブロックのメモリ304上における先頭アドレスを求め、アドレス情報を生成する。これにより、1つの画素ブロック分の符号化データに対するアドレス情報を生成することができる。
【0034】
ステップS405ではWDMAC303は、ステップS404で生成したアドレス情報をメモリ304に格納する。1画素ブロック分の符号化データに対するアドレス情報のメモリ304上における配置例については図1(b)を用いて上述したとおりである。また、画素ブロック201、202、203のそれぞれに対応するアドレス情報がAddress00、10、20である場合、図1(b)に示す如く、それぞれのアドレス情報をそれぞれの符号化データをメモリ304上に並べて格納する。このように、書き込まれるアドレス情報はライン走査方向順に連続で格納する。
【0035】
そして、縦分割画像を構成する全ての画素ブロックについてステップS400〜S405の処理が行われたのであれば、図4(a)のフローチャートに従った処理は終了する。一方、まだステップS400〜S405の処理を行っていない画素ブロックが残っていれば、この画素ブロックについてステップS400以降の処理を行う。
【0036】
RDMAC305は、メモリ304に2以上の画素ブロックの符号化データが格納されると動作する。ステップS410でRDMAC305は、メモリ304中のアドレステーブルから、着目画素ブロックのアドレス情報、着目画素ブロックの左に隣接する画素ブロックのアドレス情報、着目画素ブロックの右に隣接する画素ブロックのアドレス情報、を読み出す。例えば、アドレステーブルが図1(b)に示すものであり、着目画素ブロックが画素ブロック00であるとする。この場合、Address00、Address10、Address20、をこのメモリ304から読み出す。
【0037】
ステップS411でRDMAC305は、着目画素ブロックの左に隣接する画素ブロックのアドレス情報から、先頭アドレスRA及びデータサイズRSを読み出す。そしてRDMAC305は、メモリ304においてこの先頭アドレスRAからデータサイズRS分の領域内のデータを、着目画素ブロックの左に隣接する画素ブロックの右共有領域の符号化データRDとして読み出す。図2(a)の例では、着目画素ブロックが画素ブロック202の場合、画素ブロック201のアドレス情報Address00中の先頭アドレスRA及びデータサイズRSを読み出す。そして、メモリ304においてこの先頭アドレスRAからデータサイズRS分の領域内のデータを、着目画素ブロックの左に隣接する画素ブロックの右共有領域の符号化データRDとして読み出す。そしてRDMAC305は、この読み出した符号化データRDを伸張器306に対して送出する。
【0038】
ステップS412でRDMAC305は、着目画素ブロックのアドレス情報から、先頭アドレスBA及びデータサイズBSを読み出す。そしてRDMAC305は、メモリ304においてこの先頭アドレスBAからデータサイズBS分の領域内のデータを、着目画素ブロックの符号化データとして読み出す。図2(a)の例では、着目画素ブロックが画素ブロック202の場合、画素ブロック202のアドレス情報Address10中の先頭アドレスBA及びデータサイズBSを読み出す。そして、メモリ304においてこの先頭アドレスBAからデータサイズBS分の領域内のデータを、画素ブロック202の符号化データBlock10として読み出す。そしてRDMAC305は、この読み出した符号化データを伸張器306に対して送出する。
【0039】
ステップS413でRDMAC305は、着目画素ブロックの右に隣接する画素ブロックのアドレス情報から、先頭アドレスLA及びデータサイズLSを読み出す。そしてRDMAC305は、メモリ304においてこの先頭アドレスLAからデータサイズLS分の領域内のデータを、着目画素ブロックの右に隣接する画素ブロックの左共有領域の符号化データLDとして読み出す。図2(a)の例では、着目画素ブロックが画素ブロック202の場合、画素ブロック203のアドレス情報Address20中の先頭アドレスLA及びデータサイズLSを読み出す。そして、メモリ304においてこの先頭アドレスLAからデータサイズLS分の領域内のデータを、着目画素ブロックの右に隣接する画素ブロックの左共有領域の符号化データLDとして読み出す。そしてRDMAC305は、この読み出した符号化データRDを伸張器306に対して送出する。
【0040】
ステップS414で伸張器306は、ステップS411〜S413でRDMAC305から送出されたそれぞれの符号化データを伸張してラインデータを生成する。即ち、着目画素ブロックの左に隣接する画素ブロックの右共有領域の符号化データを伸張(第2の伸張)して、着目画素ブロックの左に隣接する画素ブロックの右共有領域のラインデータを生成する。また、着目画素ブロックの符号化データを伸張(第1の伸張)して、着目画素ブロックのラインデータを生成する。また、着目画素ブロックの右に隣接する画素ブロックの左共有領域の符号化データを伸張(第3の伸張)して、着目画素ブロックの右に隣接する画素ブロックの左共有領域のラインデータを生成する。そしてこのようにして生成したそれぞれのラインデータを、ライン変換部307内のラインバッファに格納する。図2(a)の例では、着目画素ブロックが画素ブロック202の場合、右共有領域RB00、左共有領域LB10、非共有領域B10、右共有領域RB10、左共有領域LB20のそれぞれのラインデータが生成され、ラインバッファに格納される。
【0041】
ステップS415でライン変換部307は、伸張器306がステップS411〜S413で受け取ったそれぞれの符号化データを伸張したラインデータをラインバッファに格納すると、この格納されたラインデータを画像処理部308に転送する。図2(a)の例では、着目画素ブロックが画素ブロック202の場合、右共有領域RB00、左共有領域LB10、非共有領域B10、右共有領域RB10、左共有領域LB20のそれぞれのラインデータが画像処理部308に転送される。
【0042】
そして、縦分割画像を構成する全ての画素ブロックについてステップS410〜S415の処理が行われたのであれば、図4(b)のフローチャートに従った処理は終了する。一方、まだステップS410〜S415の処理を行っていない画素ブロックが残っていれば、この画素ブロックについてステップS410以降の処理を行う。
【0043】
これにより画像処理部308は、例えば画素ブロック202内のあるラインについて画像処理を行う場合、このライン内で、右共有領域RB00内の画素を参照する必要がある画素については、右共有領域RB00のラインデータを参照すればよい。また、画素ブロック202内のあるラインについて画像処理を行う場合、このライン内で、左共有領域LB20内の画素を参照する必要がある画素については、左共有領域LB20のラインデータを参照すればよい。
【0044】
そして画像処理部308は、1ライン分の画像処理が完了すると、画像処理済みのラインデータを、ブロック変換部301’が有するラインバッファに格納する。なお、ブロック変換部301’はブロック変換部301と同様の動作を行い、圧縮器302’は圧縮器302と同様の動作を行い、WDMAC303’はWDMAC303と同様の動作を行う。これにより、画像処理済みの画素ブロック毎の符号化データがメモリ304に格納されることになる。なお、ブロック変換部301’は、以降で周辺画素を用いた画像処理が行われないような場合には、上記のようなフラグ値の設定は再度、行わなくても良い。
【0045】
ステップS420においてRDMAC310は、読み出し対象となる画素ブロック(対象画素ブロック)に対するアドレス情報をメモリ304から読み出す。ステップS421ではRDMAC310は、この読み出したアドレス情報中の先頭アドレスBAとデータサイズBSとを参照し、メモリ304において先頭アドレスBAからデータサイズBS分のデータを、対象画素ブロックの符号化データとして読み出す。そしてRDMAC310は、この読み出した対象画素ブロックの符号化データを伸張器306’に対して送出する。
【0046】
ステップS422では伸張器306’は、RDMAC310から送出された対象画素ブロックの符号化データを伸張して対象画素ブロックを生成し、生成した対象画素ブロックをライン変換部307’に対して送出する。ライン変換部307’は自身が管理するメモリ内で、今回伸張器306’から受け取った画素ブロックを、既に伸張済みの画素ブロックに隣接させて配置させることで、画素ブロック単位で画像全体を形成する。然るに、RDMAC310が全ての画素ブロックの符号化データを読み出した場合、即ち、全ての画素ブロックが伸張されてライン変換部307’内に配置された場合には、処理はステップS424に進む。一方、RDMAC310が未だ読み出していない画素ブロックの符号化データがメモリ304内に残っている場合、処理はステップS420に戻る。そして、未だメモリ304から読み出されていない画素ブロックの符号化データについてステップS420以降の処理を行う。
【0047】
ステップS424ではライン変換部307’は、完成した画像を出力部309に対して送出する。送出単位については特に限定するものではなく、ラインデータ毎に送出しても良いし、画像全体を一度に送出しても良い。出力部309は、この画像を表示装置や記憶装置、印刷装置などに対して出力する。もちろん、出力先については特に限定するものではない。
【0048】
そして、以上の処理を繰り返す必要がある場合、例えば、次のフレームの画像について以上の処理を繰り返す必要がある場合には、処理はステップS420に戻り、次の画像についてステップS420以降の処理を行う。
【0049】
なお、図3に示した構成を有する画像処理装置は1台の装置で構成しても良いし、複数台の装置で構成しても良い。例えば、入力部300、ブロック変換部301、圧縮器302、WDMAC303、メモリ304、を1台の符号化装置で構成しても良い。また、メモリ304、RDMAC305、伸張器306、ライン変換部307、画像処理部308、ブロック変換部301’、圧縮器302’、WDMAC303’を1台の画像処理装置で構成しても良い。また、メモリ304、RDMAC310、伸張器306’、ライン変換部307’、出力部309を1台の復号装置で構成しても良い。同様のことは、以降の実施形態についても適用可能である。
【0050】
以上の説明により、本実施形態によれば、画素ブロックを処理する際に、隣接ブロックから共有画素の圧縮データのみにアクセス可能になるため、不要な画素の読み出しが無くなり、メモリ帯域を削減することができる。
【0051】
[第2の実施形態]
本実施形態に係る画像処理装置の構成例について、図5のブロック図を用いて説明する。なお、図5において図3に示した構成用件と同じものについては同じ参照番号を付けており、その説明は省略する。
【0052】
画像処理部A510は、画像処理部308と同様の処理を行い、1ライン分の画像処理が完了すると、画像処理済みのラインデータを、ブロック変換部512が有するラインバッファに格納する。
【0053】
ブロック変換部512は、ブロック変換部301と同様に、画素ブロックの出力、画素ブロック内の各画素に対するフラグ値の設定及び出力、を行うのであるが、これに加えて、画素ブロック内の共有領域のサイズを画像処理部B511用のサイズに変更する。例えば、共有領域のX方向のサイズ(画素数)を16画素から32画素に変更する。
【0054】
ブロック変換部512、圧縮器302”、WDMAC303’、は、図6のフローチャートに従った処理を行う。なお、図6のフローチャートにおいて、図4(a)に示したステップと同じステップには同じ参照番号を付けており、その説明は省略する。
【0055】
ステップS600ではブロック変換部512は、共有領域のサイズを変更(更新)する。即ち、画像処理部A510から送出されたラインデータ群を画素ブロック毎に分割した後、それぞれの画素ブロックが、この更新したサイズの共有領域を有するように、それぞれの画素ブロック内のそれぞれの画素に対するフラグ値を再設定する。
【0056】
なお、図5において、画像処理部B511は、ライン変換部307’から受けた画素ブロックを用いて、着目画素に対する処理をその周辺画素を用いて行うような画像処理を行う。そして画像処理部B511は、1ライン分の画像処理が完了すると、画像処理済みのラインデータを、ブロック変換部301”が有するラインバッファに格納する。
【0057】
ブロック変換部301”はブロック変換部301と同様の動作を行い、圧縮器302”は圧縮器302と同様の動作を行い、WDMAC303”はWDMAC303と同様の動作を行う。また、RDMAC310”はRDMAC310と同様の動作を行い、伸張器306”は伸張器306と同様の動作を行い、ライン変換部307”はライン変換部307と同様の動作を行う。
【0058】
以上の説明により、本実施形態によれば、画像処理の途中で、参照画素数を削減する場合であっても、アドレス情報中の共有領域の符号化データの先頭アドレス及びデータサイズの変更で対処できるため、アドレス情報の読み出し制御を変更する必要がない。
【0059】
[第3の実施形態]
図3や図5に示した各部はハードウェアで構成しても良いし、一部をソフトウェアで構成しても良い。例えば、入力部300及び出力部309をI/F(入出力インターフェース)で構成し、メモリ304をRAMで構成し、その他の各部をコンピュータプログラムで実装しても良い。この場合、このI/FとRAMとを有するコンピュータに、このコンピュータプログラムをインストールさせてから、このコンピュータプログラムをこのコンピュータが有するCPUに実行させる。これにより、このコンピュータは、上記の画像処理装置が行うものとして説明した各処理を実行することになる。
【0060】
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

【特許請求の範囲】
【請求項1】
複数画素から成る画素ブロックを、該画素ブロックの左端の縦ラインを含む第1の矩形画素ブロック、前記画素ブロックの右端の縦ラインを含む第2の矩形画素ブロック、前記画素ブロックから前記第1の矩形画素ブロック及び第2の矩形画素ブロックを省いた残りの矩形画素ブロックである第3の矩形画素ブロック、の3つの矩形画素ブロックに分割する手段と、
前記第1の矩形画素ブロック、前記第2の矩形画素ブロック、前記第3の矩形画素ブロック、のそれぞれを符号化して第1の符号化矩形画素ブロック、第2の符号化矩形画素ブロック、第3の符号化矩形画素ブロックを生成し、該生成した第1の符号化矩形画素ブロック、第2の符号化矩形画素ブロック、第3の符号化矩形画素ブロックをメモリに格納する符号化手段と、
前記メモリにおける前記第1の符号化矩形画素ブロックの先頭アドレス及びデータサイズ、前記メモリにおける前記第2の符号化矩形画素ブロックの先頭アドレス及びデータサイズ、前記メモリにおける前記第3の符号化矩形画素ブロックの先頭アドレス及びデータサイズ、を前記画素ブロックに対するアドレス情報として前記メモリに格納する格納手段と
を備えることを特徴とする画像処理装置。
【請求項2】
前記符号化手段は、前記第1の矩形画素ブロック、前記第2の矩形画素ブロック、前記第3の矩形画素ブロック、のそれぞれに対して可変長符号化を行うことで前記第1の符号化矩形画素ブロック、前記第2の符号化矩形画素ブロック、前記第3の符号化矩形画素ブロックを生成し、該生成した第1の符号化矩形画素ブロック、第2の符号化矩形画素ブロック、第3の符号化矩形画素ブロックのそれぞれを前記メモリ内の連続したメモリ領域に格納することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
更に、
着目画素ブロックの前記第1の符号化矩形画素ブロック、前記第2の符号化矩形画素ブロック、前記第3の符号化矩形画素ブロック、を伸張する第1の伸張手段と、
前記着目画素ブロックが属する画像上で前記着目画素ブロックの左に隣接する画素ブロックのアドレス情報を参照して、前記メモリから該左に隣接する画素ブロックの前記第2の符号化矩形画素ブロックを読み出して伸張する第2の伸張手段と、
前記着目画素ブロックが属する画像上で前記着目画素ブロックの右に隣接する画素ブロックのアドレス情報を参照して、前記メモリから該右に隣接する画素ブロックの前記第1の符号化矩形画素ブロックを読み出して伸張する第3の伸張手段と、
前記第1の伸張手段による伸張で得られる前記着目画素ブロックに対する画像処理を、前記第2の伸張手段により伸張された前記第2の矩形画素ブロック、前記第3の伸張手段により伸張された前記第3の矩形画素ブロック、を用いて行う手段と
を備えることを特徴とする請求項1又は2に記載の画像処理装置。
【請求項4】
前記画像処理は、JPEG符号化の処理であることを特徴とする請求項3に記載の画像処理装置。
【請求項5】
画像処理装置が行う画像処理方法であって、
前記画像処理装置の分割手段が、複数画素から成る画素ブロックを、該画素ブロックの左端の縦ラインを含む第1の矩形画素ブロック、前記画素ブロックの右端の縦ラインを含む第2の矩形画素ブロック、前記画素ブロックから前記第1及び第2の矩形画素ブロックを省いた残りの矩形画素ブロックである第3の矩形画素ブロック、の3つの矩形画素ブロックに分割する工程と、
前記画像処理装置の符号化手段が、前記第1の矩形画素ブロック、前記第2の矩形画素ブロック、前記第3の矩形画素ブロック、のそれぞれを符号化して第1の符号化矩形画素ブロック、第2の符号化矩形画素ブロック、第3の符号化矩形画素ブロックを生成し、該生成した第1の符号化矩形画素ブロック、第2の符号化矩形画素ブロック、第3の符号化矩形画素ブロックをメモリに格納する符号化工程と、
前記画像処理装置の格納手段が、前記メモリにおける前記第1の符号化矩形画素ブロックの先頭アドレス及びデータサイズ、前記メモリにおける前記第2の符号化矩形画素ブロックの先頭アドレス及びデータサイズ、前記メモリにおける前記第3の符号化矩形画素ブロックの先頭アドレス及びデータサイズ、を前記画素ブロックに対するアドレス情報として前記メモリに格納する格納工程と
を備えることを特徴とする画像処理方法。
【請求項6】
コンピュータを、請求項1乃至4の何れか1項に記載の画像処理装置の各手段として機能させるためのコンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate