(57)【要約】【課題】隣接しあう画像を読み出して画像処理を行う際に、読み出すデータ量を削減する。【解決手段】第2の画像に対して画像処理を行う際に、該第2の画像とともに該画像に隣接した第1の画像の一部を読み出して該画像処理を行う画像処理装置は、第1の画像に対するパディングを生成し、第1の画像に付加する。画像処理装置は、読み出される第1の画像の一部にパディングが含まれないように該パディングを移動して第1の画像に付加する。【選択図】図１
2016058832.tif 000002
【特許請求の範囲】
【請求項１】
第1の画像の一部と、前記第1の画像に隣接した第2の画像とを読み出して前記第2の画像に対して画像処理を行う画像処理装置であって、
前記第1の画像に対するパディングを生成する生成手段と、
前記生成されたパディングを前記第1の画像に付加する付加手段とを有し、
前記付加手段は、読み出される前記第1の画像の一部に前記生成されたパディングが含まれないように該パディングを移動して前記第1の画像に付加することを特徴とする画像処理装置。
【請求項２】
前記生成手段は、前記付加手段により前記パディングが付加される領域に隣接する画像により前記パディングを生成することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第1の画像と前記第2の画像のそれぞれは、縮小処理または拡大処理された画像であることを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
画像が分割された複数の分割画像に対してデータ処理を行うデータ処理手段と、
前記複数の分割画像のうち、第1の分割画像に対する前記データ処理により得られる画像データの一部を、前記複数の分割画像のうち、第2の分割画像に対する画像処理のためにブロック単位でメモリから読み出す読出手段と、
前記第2の分割画像に対する前記画像処理のために前記読出手段により前記メモリから読み出される前記画像データが含まれる領域と、前記第2の分割画像の間にパディングが含まれないように制御する制御手段と、を有する
ことを特徴とする画像処理装置。
【請求項５】
前記データ処理は、画像に対してパディングを付加してブロックデータを生成する処理であることを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記制御手段は、 
前記ブロックのサイズを格納するブロックサイズレジスタと、
前記第1および第2の分割画像のサイズを格納する分割画像サイズレジスタと、
前記第2の分割画像に対する前記画像処理のために前記読出手段により前記メモリから読み出される前記画像データのサイズを格納する重畳領域サイズレジスタと、
前記第1の分割画像の有効領域サイズを格納する有効領域サイズレジスタと、
前記第1の分割画像の有効領域サイズがブロックサイズの整数倍となるように、挿入するパディングのサイズを決定するパディングサイズ決定手段と、 
前記パディングサイズが0でない場合に、前記第1の分割画像の有効領域に、前記第2の分割画像に対する前記画像処理の際に読み出される前記画像データの領域があるかを判断し、前記画像データの領域外で、パディングを移動する位置を決定するパディング位置決定手段と、を有し、
前記パディングサイズ決定手段により決定された前記パディングサイズと、前記パディング位置決定手段により決定された前記パディング位置と、パディング位置を移動したことの情報を前記データ処理手段に入力する
ことを特徴とする請求項４または５に記載の画像処理装置。
【請求項７】
前記制御手段は、 
前記第1および第2の分割画像のサイズを格納する分割画像サイズレジスタと、
前記第2の分割画像に対する前記画像処理のために前記読出手段により前記メモリから読み出される前記画像データのサイズを格納する重畳領域サイズレジスタと、
前記パディングサイズ決定手段が算出する分割画像ごとのパディングサイズを記憶するパディングサイズ記憶手段と、
前記パディング位置決定手段が算出する分割画像ごとのパディング位置を記憶するパディング位置記憶手段を有し、
前記読出手段が読み出す分割画像のパディングサイズおよびパディング位置を前記読出手段に入力する
ことを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記データ処理手段は、
前記第1の分割画像を格納するラインバッファと、
前記ラインバッファに格納されたデータからブロックデータを生成するブロック生成手段を有し、
前記ブロック生成手段は、前記制御手段によってパディング位置を移動したことの情報が入力された場合に、ラインバッファに格納されたデータの有効領域のうち、前記制御手段から入力されたパディング位置から有効領域の終端までのデータを、前記パディング位置からパディングサイズ分シフトした位置に移動した後、ラインバッファのデータからブロックデータを生成する
ことを特徴とする請求項４から７のいずれか１項に記載の画像処理装置。
【請求項９】
前記読出手段は、 
メモリから読み出したブロックデータを格納するブロックバッファと、
ブロックバッファに格納されたデータからラインデータを生成するライン生成手段を有し、
前記ライン生成手段は、前記制御手段が入力するパディングサイズおよびパディング位置に基づいて、ブロックバッファに格納されたデータからパディングを削除し、ラインデータを生成する
ことを特徴とする請求項４から８のいずれか１項に記載の画像処理装置。
【請求項１０】
前記複数の分割画像のそれぞれは、縮小処理または拡大処理された画像であることを特徴とする請求項４から９のいずれか１項に記載の画像処理装置。
【請求項１１】
第1の画像の一部と、前記第1の画像に隣接した第2の画像とを読み出して前記第2の画像に対して画像処理を行う画像処理装置の制御方法であって、
前記第1の画像に対するパディングを生成する生成工程と、
前記生成されたパディングを前記第1の画像に付加する付加工程とを有し、
前記付加工程では、読み出される前記第1の画像の一部に前記生成されたパディングが含まれないように該パディングを移動して前記第1の画像に付加することを特徴とする画像処理装置。
【請求項１２】
画像が分割された複数の分割画像に対してデータ処理を行うデータ処理工程と、
前記複数の分割画像のうち、第1の分割画像に対する前記データ処理により得られる画像データの一部を、前記複数の分割画像のうち、第2の分割画像に対する画像処理のためにブロック単位でメモリから読み出す読出工程と、
前記第2の分割画像に対する前記画像処理のために前記読出工程において前記メモリから読み出される前記画像データが含まれる領域と、前記第2の分割画像の間にパディングが含まれないように制御する制御工程と、を有する
ことを特徴とする画像処理装置の制御方法。
【請求項１３】
請求項１乃至請求項１０のいずれか１項に記載の画像処理装置の各手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、画像に対して画像処理を行う際に、該画像に隣接した画像の一部を参照して画像処理を行う技術に関する。
【背景技術】
【０００２】
近年、テレビ、液晶プロジェクタ、ディスプレイ等で４Ｋ２Ｋや８Ｋ４Ｋなどの高解像度映像に対応する動きが活発である。このような映像は、１画像あたりの画素数や色ビット深度が多く、画像処理装置のフレームメモリには、非常に大きな帯域が要求される。そのため、画像を複数分割して並列処理する方法や、メモリアクセス時に画像を圧縮・伸張するという方法が従来からとられてきた。
【０００３】
１つの画像を複数に分割して、分割画像に対して画像処理を行う場合、分割境界で画素の連続性が失われることによる画質劣化が発生する。そのため、分割境界の処理時に、隣接しあう分割画像の一部（以下、重畳領域）を参照しながら処理を行う方法があわせてとられることが多い（特許文献１）。
【０００４】
特許文献２には、４Ｋ２ＫをフルＨＤ用に４分割し、分割画像をブロック単位で圧縮する方法が開示されている。分割画像のサイズが圧縮ブロックのサイズで割り切れない場合、分割画像の端部で生成される圧縮ブロック内に分割画像の画素が存在しない領域（以下パディング領域）が発生する。圧縮ブロックを生成する場合は、パディング領域は、空白画素や端部画素のコピーデータ（以下、パディング）などで埋められることが一般的である。特許文献２による方法では、有効画素が転送されないブランキング期間に、パディング領域を埋めるための画素を、隣接する分割領域から転送されたものとすることで重畳領域読出し時の帯域を削減している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−２４４１８４号公報
【特許文献２】特開２０１０−２２６６７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、ある分割画像の画像処理を、他の分割画像を用いて実行する場合に、画像処理のための画像データの読み出し量が多くなってしまう恐れがあった。例えば、一つの画像を空間で分割し、各分割画像をさらに所定のサイズの圧縮処理単位のブロック（以下、ブロック、もしくは圧縮ブロックと称する）に分割して、分割画像毎に対して画像処理を行う画像処理システムを考える。ここで、各分割画像がブロックサイズの整数倍とならない場合は、各分割画像の端部のブロックにパディングの挿入が必要となる。この場合、第２の分割画像に対する画像処理時に、第１の分割画像から重畳領域を参照するために読み出す圧縮ブロックに、パディングが含まれることになる。
【０００７】
このことを図１１を用いて説明する。図１１は、第２の分割画像の処理時に、第１の分割画像から重畳領域を参照するために読み出す圧縮ブロックに、パディングが含まれることを説明するための図である。図１１（Ａ）は、分割前の画像を示し、図１１（Ｂ）のブロックb0000〜b0003は第１の分割画像T00、ブロックb0004〜b0007は第２の分割画像T01を示している。ここで、第１の分割画像T00に対する画像処理時には、分割境界で画素の連続性が失われることによる画質劣化を防ぐため、第１の分割画像T00と共に重畳領域としてb0004が読み出され、ブロックb0000〜b0004に対して画像処理が行われる。同様に、第２の分割画像T01に対する画像処理時には、ブロックb0003〜b0007が読み出される。なお、第２の分割画像T01に対する画像処理時には、T01の右隣の分割画像のブロックも参照されるが、この説明では省略する。
【０００８】
各分割画像が縮小されてから画像処理される場合、図１１（Ｃ）に示す第１の分割画像T00（ブロックb0000〜b0003）に対して縮小処理が行われ、図１１（Ｄ）に示すような第１の縮小分割画像T10となる。この後、画像処理を行うためにブロック単位の切り出しが行われる場合、図１１（Ｅ）に示されるように、ブロックb0013の一部分にパディングが挿入される。全ての分割画像に対して縮小処理とパディング挿入が行われた場合、画像データのイメージは図１１（Ｆ）のようになる。画像処理時には、上述のようにデータに隣接する重畳領域が共に読み出される。第２の縮小分割画像T11（ブロックb0014〜b0017）を読み出される際は、図１１（Ｇ）に示されるように、ブロックb0014〜b0017と共に、重畳領域としてb0012〜b0011が読み出される。このように、縮小処理をしない場合は、図１１（Ｂ）のように、読み出す重畳領域は1ブロックであったのに対し、縮小処理を施した場合は、読み出す重畳領域はブロックb0012〜b0013の2つのブロックとなる。
【０００９】
すなわち、第１の分割画像の、パディングおよび第２の分割領域から参照される重畳領域を含む圧縮ブロック数をN(p)とすると、N(p)は以下のように表される。
N(p)=roundup（（パディングサイズ＋重畳領域サイズ）/ 圧縮ブロックサイズ））
なお、roundupは（）内の値の整数への切り上げを意味する。また、サイズは、領域境界と直角方向の1次元のサイズとする。一方、単純に第2の分割領域から参照される重畳領域を含む圧縮ブロック数をNとすると、Nは以下のように表される。
N=roundup（重畳領域サイズ/ 圧縮ブロックサイズ）
ここで、2つの圧縮ブロック数N(p)とNの関係が、N(p)＞Nとなる場合、パディングを付加することにより、重畳領域を参照するために読み出す圧縮ブロック数が増加する。そのため、重畳領域読出し時の帯域が増加するという課題がある。
【００１０】
本発明は、上記課題に鑑みてなされたものであり、隣接しあう画像を読み出して画像処理を行う際に、読み出される画像データのデータ量を削減することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するための、本発明の一態様による画像処理装置は以下の構成を有する。すなわち、第1の画像の一部と、前記第1の画像に隣接した第2の画像とを読み出して前記第2の画像に対して画像処理を行う画像処理装置であって、前記第1の画像に対するパディングを生成する生成手段と、前記生成されたパディングを前記第1の画像に付加する付加手段とを有し、前記付加手段は、読み出される前記第1の画像の一部に前記生成されたパディングが含まれないように該パディングを移動して前記第1の画像に付加することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、隣接しあう画像を読み出して画像処理を行う際に、読み出される画像データのデータ量を削減することが可能となる。
【図面の簡単な説明】
【００１３】
【図１】実施形態１による画像処理装置の構成図。
【図２】実施形態１による画像処理装置を使用した画像処理システムの構成図。
【図３】実施形態１による画像処理装置の詳細な構成図。
【図４】データのメモリ配置、読出し方法を説明する図。
【図５】パディング生成時の動作フローチャート。
【図６】パディング削除時の動作フローチャート。
【図７】H方向のパディング移動時のバッファ内データを示す図。
【図８】V方向のパディング移動時のバッファ内データを示す図。
【図９】H方向のパディング削除時のバッファ内データを示す図。
【図１０】拡大処理時のH方向のパディング移動時のバッファ内データを示す図。
【図１１】従来技術を説明する図。
【発明を実施するための形態】
【００１４】
［実施形態１］
実施形態１による画像処理装置の構成を図１、図２を用いて説明する。図１は、本実施形態による画像処理装置10の構成図である。本実施形態による画像処理装置10は、処理部100、読出部102、メモリ103、処理部100と読出部102を制御する制御部101から構成される。
【００１５】
図２は、図１に示した画像処理装置10を使用した本実施形態による画像処理システム20の構成図である。なお、図１と同じモジュールには同じ番号を記載している。本実施形態による画像処理システム20は、入力部200、出力部206、スケーラ204、フィルタ画処理部205、画像処理装置10（100,101,102,103）、メモリアクセス時にデータを圧縮伸張する圧縮器201、伸長器203から構成される。
【００１６】
次に、図２に示す各モジュールの概要と、データフローについて説明する。入力部200は、圧縮器201が扱う圧縮ブロックサイズに基づいて、入力された画像のラインデータからブロックデータを生成し、圧縮器201へ入力する。圧縮器201は、8×8画素のブロック単位で圧縮を行う圧縮回路であり、例えばJPEG圧縮回路である。圧縮器201は、入力されたブロックデータをブロックごとに圧縮し、メモリ103に格納する。そのため、メモリ103へのデータの書き込み、および読出しは、圧縮ブロック単位となる。圧縮方式は、JPEG圧縮方式など、特定の方式に限定されず、ブロック単位で圧縮する方式であればよい。また、本実施形態では、圧縮器が想定されているが、圧縮に限定するものではなく、入力データをブロック単位でパケットにするパケット生成回路等でもよい。伸張器203は、メモリ103に格納された圧縮データを伸張して元のブロックデータに変換し、該ブロックデータを後段のモジュール（スケーラ204、読出部102、出力部206）へ入力する。
【００１７】
スケーラ204は、伸張器203から入力されるブロックデータを拡大・縮小し、処理部100へ入力する。ここで、スケーラ204によるスケーラ処理時のデータ読出し方法を図４（Ａ）と（Ｂ）を参照して説明する。図４は、本実施形態におけるデータのメモリ配置、読出し方法を説明する図である。図４（Ａ）は、スケーラ204に読み出される前のメモリ上の圧縮データ配置を図示したものである。1画面の画素は、圧縮ブロック単位で格子状に分割され、圧縮されてメモリに配置される。図４（Ｂ）は、スケーラ204が読み出すメモリ上のデータ範囲を図示したものである。スケーラ204は、圧縮ブロックサイズのn倍となる領域画像単位400（以下、分割画像）を読み出し、拡大・圧縮処理を行う。本実施形態では、図４（Ｂ）に示すように、１画面は6つに分割される。スケーラ204は、分割画像0（400）の処理後、隣接する分割画像1の処理、その次は分割画像2というように分割画像5まで処理を行う。全分割画像を処理することで１画像全体の処理が完了する。このように、スケーラ204は分割画像単位で処理を行うことによって、スケーラ204の内部に持つラインバッファの長さを分割画像のライン長まで短くできるため、１画面単位で処理を行う場合に比べ、バッファ容量を削減可能となる。
【００１８】
処理部100は、スケーラ処理後の分割画像から再びブロックデータを生成するデータ処理を行い、圧縮器201へ入力する。処理部100は、スケーラ204による拡大・縮小処理によって、ブロック生成時にパディングの付加が必要と判断した場合は、制御部101の制御に基づいた位置にパディングを生成する。本実施形態においてパディングは、空白画素を示すデータである。しかし、パディングは、この例に限らず、ブロック生成前の画素データに対して追加された画素データであることを示すデータであればよい。読出部102は、後段のフィルタ画処理部205のために、分割画像に重畳領域を付加してブロックデータを読み出す。
【００１９】
ここで、読出部102によるデータ読出し方法を説明する。図４（Ｃ）は、読出部102が読み出すメモリ上のデータ範囲を図示したものである。この例では、分割画像400は、4×4＝16個のブロックデータから構成される。分割画像の一部である、周囲の斜線部の領域401は、分割画像400の端部画素をフィルタ処理するために必要な領域（以下、重畳領域）である。分割画像400の場合，重畳領域は、右端および下端の9ブロックである。読出部102は、分割画像400と重畳領域401を合わせた画像領域（以下、拡張分割画像）を読み出す。この例では、拡張分割画像は、縦横5個ずつのブロック25個で構成される。
【００２０】
図４（Ｄ）は、読出部102による別の分割画像402の読み出しを図示したものである。この場合、重畳領域403は、分割画像402の右端、左端および下端に付加される。重畳領域の付加により、分割境界の画処理の連続性が保たれるため、分割境界における画質劣化を解消できる効果がある。フィルタ画処理部205は、スケーラ204によるスケーラ処理時と同様に、全拡張分割画像を順に処理することにより、１画像全体のフィルタ処理を完了する。読出部102は、制御部101による制御に基づいて、上記のように読み出したブロックデータからパディングを削除する。そして、読出部102は、残りの画素を結合してラインデータを生成し、フィルタ画処理部205へ入力する。
【００２１】
フィルタ画処理部205は、入力されたラインデータにフィルタ処理を実施後、ラインデータから再びブロックを生成して圧縮器201へ入力する。出力部206は、メモリ103と伸張器203を介して入力されるブロックデータからラインデータを生成し、分割画像を１画面に合成して表示装置（不図示）に出力する。
【００２２】
次に、本実施形態の特徴である処理部100、制御部101および、読出部102の詳細な構成について、図３を用いて説明する。図３は、本実施形態による画像処理装置10の詳細な構成図である。図３において、図１と同じモジュールには同じ番号を記載している。制御部101は、処理部100のパディング生成の制御を行う第1の制御手段101A、および読出部102のパディング削除の制御を行う第2の制御部101Bから構成される。
【００２３】
第1の制御部101Aは、有効領域サイズレジスタ300、ブロックサイズレジスタ303、分割画像サイズレジスタ304、重畳領域サイズレジスタ305、パディングサイズ決定部301、パディング位置決定部302から構成される。有効領域サイズレジスタ300は、スケーラ204から入力される拡大・縮小処理後のラインデータの有効領域サイズとして、H（水平）方向およびV（垂直）方向の画素数を格納する。ブロックサイズレジスタ303は、圧縮ブロックのサイズとして、H方向およびV方向の画素数を格納する。分割画像サイズレジスタ304は、分割画像のサイズとして、H方向およびV方向の画素数を格納する。重畳領域サイズレジスタ305は、重畳領域のサイズとして、H方向およびV方向の画素数を格納する。なお、これらのレジスタには、処理部100でブロック生成が行われる前に規定値が設定される。
【００２４】
パディングサイズ決定部301は、有効領域サイズとブロックサイズに基づき、パディングのH方向およびV方向のサイズを画素数で算出する。パディング位置決定部302は、有効領域サイズと重畳領域サイズ、分割領域サイズ、ブロックサイズ、パディングサイズに基づいて、ラインバッファ306に格納されたラインデータにパディングを生成するための、H方向およびV方向の位置を画素数で算出する。
【００２５】
第1の制御部101Aの各レジスタ値、カウンタ値、パディングサイズ、パディング位置は、スケーラ204における分割画像に対する処理開始時に更新され、これらは分割画像の識別子である分割画像IDとともに、第2の制御部101Bに入力される。分割画像IDは、スケーラ204によって縮小・拡大処理される順番に0から連続する番号とし、第2の制御部101Aに入力されるとともに、分割画像の圧縮データにヘッダとして付加される。図４（Ｂ）に、分割画像IDの例を図示する。分割画像400のIDは0、次に処理される右隣の分割画像IDは1となる。分割画像IDと該分割画像のパディング情報とが紐づけられることにより、分割画像の読み出し順序がフィルタ画処理部205で変更された場合にも、適切な順序でラインデータの生成が可能となる。
【００２６】
処理部100は、ラインバッファ306と、ブロック生成部307から構成される。ラインバッファ306は、スケーラ204から入力される拡大・縮小処理後のラインデータ格納するバッファである。ラインバッファ306は、スケーラ204が読み出す分割領域のライン長のバッファを、圧縮ブロックサイズのV方向の画素数分有する。ブロック生成部307は、第1の制御部101Aから入力される圧縮ブロックサイズに基づき、ラインバッファ306に格納されたラインデータから、画像データとしてのブロックデータを生成する。ラインバッファ306には、入力ラインデータが左詰めで配置され、ブロック生成部307は、左端の画素を先頭として左から右にシフトしながらブロックを生成する。ブロック生成前に、第1の制御部101Aからは、パディングサイズ、パディング生成位置、パディング移動情報、および、重畳領域サイズが入力される。ブロック生成部307は入力されたこれらの情報に基づき、ラインバッファ306のデータ配置を変更し、パディングを生成する。
【００２７】
第2の制御部101Bは、パディングサイズ記憶部308、パディング位置記憶部309、重畳領域サイズレジスタ305、分割画像サイズレジスタ304から構成される。第2の制御部101Bの重畳領域サイズレジスタ305および、分割画像サイズレジスタ304は、第1の制御部101Aの重畳領域サイズレジスタ305および、分割画像サイズレジスタ304が読出手段用に実装されたものである。
【００２８】
パディングサイズ記憶部308は、第1の制御部101Aのパディングサイズ決定部301で算出されたパディングサイズを、分割画像IDとともに格納する。そして、パディングサイズ記憶部308は、読出部102が読み出す分割画像IDと一致する分割画像のパディングサイズを読出部102へ入力する。パディング位置記憶部309は、第1の制御部101Aのパディング位置決定部302で算出されたパディング位置を、分割画像のIDとともに格納する。そして、パディング位置記憶部309は、読出部102が読み出す分割画像IDと一致する分割画像のパディング位置を読出部102へ入力する。なお、第2の制御部101Bの各レジスタ値、カウンタ値、パディングサイズ、パディング位置は、フィルタ画処理部205における分割画像のフィルタ処理開始時に更新される。
【００２９】
読出部102は、ブロックバッファ313とライン生成部312から構成される。ブロックバッファ313は、メモリ103から読み出されて伸長器203により伸張されたブロックデータを格納するバッファである。ブロックバッファ313は、圧縮ブロックサイズとサイズが一致するバッファを、読出部102が読み出す拡張分割画像のH方向のブロック数有する。ライン生成部312は、ブロックバッファ313のデータから、ラインデータを生成する。ライン生成部312は、ライン生成時に、第2の制御部101Bから入力されるパディングサイズとパディング位置に基づき、ブロックデータからパディングを削除する。
【００３０】
次に、本実施形態による画像処理装置10の動作フローについて、図５および図６のフローチャートを用いて説明する。なお、本実施形態では、入力画像の解像度を4096×2160とし、圧縮ブロックサイズを8画素×8画素、分割領域サイズを512画素×512画素、拡張分割画像のサイズを520画素×520画素とし、入力画像を解像度2016×1062に縮小処理することを想定する。
【００３１】
図５は、第1の制御部101Aのパディング生成制御および処理部100のブロック生成の動作フローチャートである。スケーラ204から画像処理装置10への入力が開始される前に、分割領域サイズ、重畳領域サイズ、ブロックサイズが各レジスタに設定される（S500）。なお、以降において、語尾のVは、垂直方向の値、Hは水平方向の値を意味する。本実施形態では、ブロックサイズH＝8、ブロックサイズV＝8、分割画像サイズH＝512、分割画像サイズV＝512、重畳領域サイズH＝8、重畳領域サイズV＝8が設定される。スケーラ処理のために、分割領域512×512が読み出される。本実施形態では、スケーラ204は領域4096×2160のデータを領域2016×1062のデータに縮小処理するため、分割領域512×512は、領域252×252へ縮小される。そのため、有効領域サイズH＝252、有効領域サイズV＝252が設定される（S500）。
【００３２】
処理部100は、入力されたラインデータをラインバッファ306に格納し（S501）、ラインバッファ306に格納したライン数がブロック生成に必要なライン数に達したかどうかを判断する（S502）。ラインバッファ306に格納したライン数がブロック生成に必要なライン数に達成するまでS501が繰り返される（S502：NO→S501）。本実施形態では、ブロックサイズV=8のため、8ライン分のデータがラインバッファ306に格納される。
【００３３】
図７は、H方向の各処理時のラインバッファ306のデータ配置を示している。図７（Ａ）に、ラインバッファ306に8ライン分のラインデータが格納された時（S502）のデータ配置を示す。領域700は、ラインバッファ306に配置可能なデータの領域であり、図７（Ａ）の例では、512×8サイズのデータが格納可能である。縮小処理後のラインデータ252×8（701：塗りつぶし領域）は、図示するように格納される。ラインバッファ306に必要なラインデータが格納されたら（S502：YES）、パディングサイズ決定部301が、ラインバッファに格納されたデータのH方向およびV方向のパディングサイズを算出する（S503）。パディングサイズは、以下の計算式に基づき算出される。
パディングサイズH ＝ 有効領域サイズH % ブロックサイズH
パディングサイズV ＝ 有効領域サイズV % ブロックサイズV
すなわち、有効領域サイズがブロックサイズの整数倍となるように、パディングサイズが算出される。本実施形態では、H方向とV方向ともに、有効領域サイズが252、ブロックサイズが8であるので、パディングサイズH＝4、パディングサイズV＝4となる。
【００３４】
パディングサイズHとパディングサイズVがともに0である場合（有効領域サイズがブロックサイズで割り切れる場合）は、ラインデータにパディングを挿入する必要がない。そのため、パディング位置の算出処理（S505、S506、S507）を省略する（S504：YES、S510）。一方、パディングサイズが0でない場合（つまり有効領域サイズがブロックサイズで割り切れない場合）（S504 : NO）、ラインデータのH方向およびV方向の最終ブロックの右端および下端以外の場所に有効領域の最終画素が存在することになる。
【００３５】
H方向のパディングについて、図７（Ｂ）を用いて説明する。図７（Ｂ）に、ラインバッファ306内のラインデータ701から複数のブロックを生成する場合の分割パターン（破線）を図示する。ラインバッファ306のラインデータ701は、左詰めで252個の画素#0〜#251（#0は0番目の画素、つまり先頭画素を意味する）が8ライン格納されている。ラインデータからは8×8の32個のブロックb0000〜b0031が生成される。ブロックb0031には、有効画素が画素#251までしか存在しないため、残りの領域4×8にH方向のパディングが挿入され（702：Pと記載の空白領域）、ブロックが生成される。ブロックb0031の有効領域とパディングの境界を、パディング位置の初期値とする。
【００３６】
図８は、V方向の各処理時のラインバッファ306のデータ配置を示している。V方向のパディングについて、図８（Ａ）を用いて説明する。図８（Ａ）に、ラインバッファ306内のラインデータ801から複数のブロックを生成する場合の分割パターン（破線）を図示する。領域800は、ラインバッファ306に配置可能なデータの領域である。図８（Ａ）の例では、252×252のサイズに縮小後の分割画像のライン#0〜#251（#0は0番目のライン、つまり先頭ラインを意味する）の内、V方向の最終ブロックとなるライン#248〜#251（801：塗りつぶし領域）が格納されている。この場合、有効領域の最終ラインは#251であるため、残りの領域252×4にV方向のパディングが挿入され（802：Pと記載の空白領域）、ブロックが生成される。ブロックb3000〜b3031の有効領域とパディングの境界を、パディング位置の初期値とする。
【００３７】
パディング位置決定部302は、現在のパディング位置（つまり最終ブロック内におけるパディング位置）が、隣接する分割画像が参照する重畳領域内に存在するかどうかを判断する（S505）。パディング位置決定部302は、この判断を以下に示すように行う。まず、パディング位置決定部302は、以下の計算式により、各ブロック数を算出する。
重畳領域ブロック数H= roundup(重畳領域サイズH / ブロックサイズH) 
有効領域ブロック数H= roundup（有効領域サイズH / ブロックサイズH）
分割画像ブロック数H= 分割領域サイズH / ブロックサイズH
重畳領域ブロック数V= roundup(重畳領域サイズV / ブロックサイズV) 
有効領域ブロック数V= roundup（有効領域サイズV / ブロックサイズV）
分割画像ブロック数V= 分割領域サイズV / ブロックサイズV
なお、roundupは（）内の値の整数への切り上げを意味する。
【００３８】
有効領域ブロック数＋重畳領域ブロック数 ＞ 分割画像ブロック数
の場合は、有効領域ブロックと重畳領域にあたるブロックが重なる状態を示すため、パディング位置決定部302は、現在のパディング位置が重畳領域内に存在すると判断する。逆に、
有効領域ブロック数＋重畳領域ブロック数 ＜＝ 分割領域ブロック数
の場合は、パディング位置決定部302は、現在のパディング位置が重畳領域内に含まれないと判断する。この場合、パディング位置決定部302は、パディング位置を初期値から変更しない（S507）。そして、パディング位置決定部302は、有効領域ブロック数Hを保持し、次の分割領域の縮小処理時のラインバッファ306におけるS505の有効領域ブロックHの算出結果に加算する。V方向についても、パディング位置決定部302は同様の処理を行う。このように、パディング位置決定部302は、複数の分割領域を縮小した結果、パディング位置が重畳領域内に存在する場合を検出する。
【００３９】
本実施形態では、上述した条件から、分割画像ブロック数H＝512（分割画像サイズH）/8（ブロックサイズH）＝64、分割画像ブロック数V＝512（分割画像サイズV）/8（ブロックサイズV）＝64、重畳領域ブロック数H＝8（重畳領域サイズH）/8（ブロックサイズH）8＝1、重畳領域ブロック数V＝8（重畳領域サイズV）/8（ブロックサイズV）8＝1、有効領域ブロック数H＝32、有効領域ブロック数V＝32となる。図４（Ｂ）〜（Ｄ）のように分割画像が配置される場合、分割画像0の縮小処理後のラインデータからは、図７（Ｂ）で示すように32個のブロックb0000〜b0031が生成される。このとき、有効領域ブロック数は32、重畳領域ブロック数は1であり、分割画像ブロック数64を下回るため、パディング位置決定部302は、パディング（702）の位置は重畳領域内に存在しないと判断する。パディング位置決定部302は、有効領域ブロック数である32を保持し、次処理の分割画像1の縮小処理後のラインデータの有効領域ブロック数に加算する。
【００４０】
図７（Ｃ）に分割領域1の縮小処理後のラインデータのブロック分割イメージを示す。分割領域1の縮小処理後のラインデータからは、分割領域0の処理時と同様に、32個のブロックb0032〜b0064が生成され、最終ブロックb0064には、パディング領域（703：Pと記載の空白領域）が発生する。分割領域1に対するS505の判断時は、分割領域1の有効領域ブロック数に、保持しておいた分割領域0の有効領域ブロック数が加算されるため、有効領域ブロック数は64となる。このとき、有効領域ブロック数は64、重畳領域ブロック数は1であり分割画像ブロック数64を上回るため、パディング位置決定部302は、パディング（703）の位置は重畳領域内に存在すると判断する。パディング位置決定部302は、V方向のパディングもH方向と同様に重畳領域内に存在するか否かを判断する。
【００４１】
パディング位置決定部302は、パディング位置が重畳領域内に存在すると判断した場合（S505：YES）、パディングを重畳領域外に移動するため、パディングの移動先の位置を算出する（S508）。パディング位置決定部302は、パディング位置を下記の計算式に基づき算出する。
パディング位置H＝有効領域サイズH  -  重畳領域サイズH  + 1
パディング位置V＝有効領域サイズV  -  重畳領域サイズV  + 1
つまり、パディング位置は、ラインバッファに格納されたデータに含まれる重畳領域の開始位置に設定される。パディング位置決定部302は、算出したパディング位置を、パディング位置の変更があったことを示すフラグ信号とともにブロック生成部307に入力する。本実施形態では、H方向のパディング挿入位置は、ラインバッファに配置された画素#0〜#251の内、画素#244の開始位置となる。同様に、V方向のパディング挿入位置は、ライン#244の開始位置となる。
【００４２】
図７（Ｄ）に、本実施形態のH方向のパディング位置（705）を示す。図７の上段の図（704）は、パディング領域を移動する前のラインバッファ306のデータ配置を示す。このラインデータには他の分割領域から参照される重畳領域（706：斜線領域AおよびB）が含まれる。重畳領域は右端から8画素であるため、ブロックb0062側に4画素（706：斜線領域A）とブロックb0063（706：斜線領域B）にまたがった状態となる。パディング位置（705）は、重畳領域の開始位置となるので、ブロックb0062の非重畳領域と重畳領域Aの境界となる。
【００４３】
図８（Ｂ）に、本実施形態のV方向のパディング位置（805）を示す。図７の上段の図（803）および、下段の図（804）は、パディング領域を移動する前のラインバッファ306のデータ配置を示す。上段の図（803）は、ライン#240〜#247のラインバッファのデータ配置である。下段の図（804）は、ライン#248〜#251のラインバッファのデータ配置である。重畳領域V（806：斜線領域）は、下端から8画素であるため、ライン#240〜#247に4ライン（806：斜線領域A）とライン#248〜#251に4ライン（806：斜線領域B）にまたがった状態となる。パディング位置（805）は、重畳領域の開始位置となるので、ライン#240〜#247で生成される各ブロックデータの非重畳領域と重畳領域Aの境界となる。
【００４４】
パディング位置が決定したら、ブロック生成部307は、パディングサイズとパディング位置に基づいて、パディングを生成し、ラインデータからブロックデータを生成する（S508）。パディングサイズが0の場合（S505：YES）は、ブロック生成時にパディングを挿入する必要がないため、ブロック生成部307は、バッファのデータを左端から分割し、ブロックデータを生成する。
【００４５】
パディングサイズが0でなく、パディング位置の移動が無い場合（S506：NO、S507）は、ブロック生成部307は、ラインデータから生成される最終ブロック内のパディング初期位置からパディングサイズ分のパディング画素を挿入してブロックデータを生成する。つまり、H方向は、図７（b）のパディング（702）、V方向は、図８（Ａ）のパディング（802）のようにパディングが挿入され、ブロックデータが生成される。
【００４６】
パディングサイズが0でなく、パディング位置の移動がある場合（S506：YES、S508）は、ブロック生成部307は、まず、有効領域の終端から重畳領域分のブロックを生成した場合の、重畳領域ブロックの先頭の画素位置を算出する。そして、ブロック生成部307は、重畳領域ブロック分のデータを、該先頭の位置からパディングサイズ分シフトした位置にコピーする。
【００４７】
図７（Ｄ）の下段図（707）に、H方向のパディング位置移動後のラインバッファ306のデータ配置を示す。本実施形態では、重畳領域ブロックの先頭位置は、重畳領域Aの開始位置（705）となる。そこから重畳領域ブロック分のデータ（706）をパディングサイズH（4画素）分、シフトした位置にコピーする。コピー後の重畳領域は、図７（Ｄ）の下段図（707）のブロックb0063の位置に配置される。このとき、パディングは、パディング開始位置（705）から、パディングサイズH＝4画素の領域に挿入される。
【００４８】
なお、パディングは、どのようなデータでもよいが、重畳領域706のうちの領域Aのデータとすることにより、次のような利点がある。すなわち。図７（Ｄ）の下段の図におけるb0062のブロックにランダムアクセスされた場合、パディングを領域Aのデータとすることにより、元のデータ（領域A）がb0063に移動しているにも関わらず、ブロックb0063を読み出す必要はない。V方向についても同様である。
【００４９】
図８（Ｃ）に、V方向のパディング位置移動後のラインバッファ306のデータ配置を示す。図８（Ｃ）の上段の図（807）は、ライン#240〜#247からブロックb3000〜b3031を生成するときのラインバッファのデータ配置を示す。図８（Ｃ）の下段の図（808）は、ライン#248〜#251からブロックb3100〜b3131を生成するときのラインバッファのデータ配置を示す。V方向の場合、重畳領域ブロックの先頭位置は、ラインバッファ306に格納される重畳領域Aの開始位置（805）となる。ブロック生成部307は、重畳領域ブロック分のデータ（806）を、その開始位置からパディングサイズV（4ライン）分、シフトした位置にコピーする。コピー後の重畳領域（806）は、図８（Ｃ）の下段の図（808）のように、ブロックb3100〜b3131の上端から配置される。このとき、パディングは、パディング開始位置（805）から、パディングサイズV（4ライン）分挿入される。
【００５０】
以上のように、本実施形態による画像処理装置は、パディング位置を変更して、２つのブロックにまたがった重畳領域を１つのブロックに再配置する。本実施形態による画像処理装置は、ブロックデータ生成時に、パディング位置を変更することによって、次のフィルタ画処理部における隣接分割画像の処理時に、重畳領域を読み出すためのブロック数を削減することが可能となる。
【００５１】
ブロック生成部307は、ラインバッファ306の全データからブロックデータを生成後、スケーラ204から入力される1分割画像の処理がまだ残っている場合（S509：NO）は、次に受信するラインデータについて、S502から同様にブロック生成の処理が行われる。スケーラ204から入力される1分割画像の処理全てが終了した場合は（S509：YES）、次の分割画像のラインデータについて、S500から同様にブロック生成が行われる。
【００５２】
図６は、第2の制御部101Bによるパディング削除制御および読出部102のパディング削除の動作フローチャートである。読出部102によるデータの読み出しが開始する前に、分割領域サイズ、重畳領域サイズが各レジスタに設定される（S600）。第2の制御部101Bのパディングサイズ記憶部308、および、パディング位置記憶部309には、処理部100によって、分割領域の処理時に生成されるパディング位置およびパディングサイズが、分割領域のIDと紐付され、格納されている。第2の制御部101Bは、読み出す拡張分割画像に対応する分割画像IDと紐付けされているパディングサイズおよびパディング位置を読出部102へ入力する（S601、S602）。
【００５３】
読出部102は、拡張分割画像をメモリから読み出し、伸張されたブロックデータをブロックバッファに格納する（S603）。第2の制御部101Bは、ライン生成に必要なブロックデータ、つまり、拡張分割画像のH方向のブロックがブロックバッファ313に格納されたことを検知する（S604：YES）。必要数のブロックが格納されていない場合（S604：NO）は、S603のデータ読出しを行う。読出部102は、第2の制御部101Bから入力されたパディングサイズを参照する。パディングサイズが0である場合（S605：YES）は、パディング削除の必要はないので、ブロックバッファのデータからラインを生成してフィルタ画処理部に入力する（S607）。パディングサイズが0でない場合（S605：NO）は、第2の制御部101Bから入力されたパディング位置を参照し、パディング位置からパディングサイズ分の画素を削除し、残りの画素を連結したラインデータを生成する（S606,S607）。
【００５４】
図９は、H方向のパディング削除処理時のブロックバッファ313のデータ配置を示している。フィルタ画処理時に、読出部102は、拡張分割画像を読み出す。図９（Ａ）におけるデータ配置900は、図４（Ｃ）に示した拡張分割画像（400および401）を読み出した時の、ブロックバッファのデータ配置である。塗りつぶし領域は、分割画像の有効画素を示す。また、斜線部は、隣接画像から読み出した重畳領域を示す。読出部102が読み出したブロックデータには、処理部100によって生成されたパディング（702）および（708）が含まれる。読出部102のライン生成部312は、分割画像0のパディング位置(画素#252)およびサイズ（4画素）に従って、パディング（702）を削除する。また、ライン生成部312は、分割画像1のパディング位置（画素#244）およびサイズ（4画素）に従って、パディング（708）を削除する。ライン生成部312は、パディングを削除後、残りの画素を連結して、ブロックデータからラインを生成する。図９（Ｂ）に、処理後のブロックバッファのデータ配置901に示す。H方向のパディング削除処理と同様に、ライン生成部312は、V方向のパディングも削除する。
【００５５】
ライン生成部312がブロックバッファの全データからラインデータを生成後、読出部102から読み出される1拡張分割画像の処理がまだ残っている場合（S608：NO）は、次に読み出すブロックデータについて、S603から同様にライン生成が行われる。読出部102から読み出される1拡張分割画像の処理全てが終了した場合は（S608：YES）、次の拡張分割画像のブロックデータについて、S600から同様にブロック生成が行われる。
【００５６】
なお、本実施形態では、縮小処理を想定したが、拡大処理にも適用可能である。例えば、入力画像の解像度を2048×1080とし、圧縮ブロックサイズを8画素×8画素、分割領域サイズを512画素×512画素、拡張分割領域サイズを520画素×520画素とし、入力画像を解像度4080×2152に拡大する処理が想定される。この場合、スケーラ204は、分割領域を読出す場合、拡大後のデータがスケーラ204の持つ分割領域Hサイズのバッファを超えないように分割画像を読み出す。スケーラ204は、256×256を読み出し、510×510に拡大した画像のラインデータを処理部100へ入力する。図１０に、この場合のラインバッファ306のデータ配置（H方向）を示す。このときパディングは、ブロックb0064に位置する画素#510の後に挿入される。この場合、有効領域ブロック数は64、重畳領域ブロック数は1であり、分割画像ブロック数である64を上回るため、パディング位置決定部302は、パディングは重畳領域内に存在すると判断する（図１０（Ａ））。その後の動作フローは縮小時と同じである（図１０（Ｂ））。
【００５７】
このように、本実施形態では、第1の分割画像が、圧縮ブロックサイズのn倍とならない場合に、第2の分割画像の処理時に読み出される第1の分割画像内の重畳領域を特定する。そのため、第2の分割画像の処理時に読み出される重畳領域を含む圧縮ブロック数が増加しない位置に、パディング生成することが可能になる。その結果、重畳領域読出し時の圧縮ブロック数を増やさなくてすむため、帯域（画像処理のために読み出される画像データのデータ量）を削減することができる。
【００５８】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００５９】
100  処理部、101  制御部、102  読出部、103  メモリ、200  入力部、201  圧縮部、203  伸張部、204  スケーラ、205  フィルタ画処理部、206  出力部、300  有効領域サイズレジスタ、301  パディングサイズ決定部、302  パディング位置決定部、303  ブロックサイズレジスタ、304  分割画像サイズレジスタ、305  重畳領域サイズレジスタ、306  ラインバッファ、307  ブロック生成部、308  パディングサイズ記憶部、309  パディング位置記憶部、312  ライン生成部、313  ブロックバッファ
【図１】
2016058832.tif 000003
【図２】
2016058832.tif 000004
【図３】
2016058832.tif 000005
【図４】
2016058832.tif 000006
【図５】
2016058832.tif 000007
【図６】
2016058832.tif 000008
【図７】
2016058832.tif 000009
【図８】
2016058832.tif 000010
【図９】
2016058832.tif 000011
【図１０】
2016058832.tif 000012
【図１１】
2016058832.tif 000013