説明

画像情報処理装置及び画像情報処理方法

【課題】画質劣化を低減させた量子化処理ができ、更にデータ処理の高速化を図ることが可能な画像情報処理装置及び画像情報処理方法を提供すること。
【解決手段】撮像素子から出力された画素データを所定数毎に分割しブロックを生成するブロック化部132と、ブロック内の画素データのレベル変化に応じてブロックを分割しサブブロックを生成する分割処理部134と、生成されたサブブロック毎に画素データレベルの変化量及びサブブロックの区間の長さに応じて決定された量子化語長で画素データを量子化し量子化データを生成する量子化部136と、ブロック内の画素データのレベル変化に関する情報と量子化データを集約し圧縮データを生成する圧縮データ生成部138とを有することを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像情報処理装置及び画像情報処理方法に関する。
【背景技術】
【0002】
デジタルカメラ、ビデオカメラ等の撮像装置は、CCD、CMOS等の撮像素子などを用いて被写体をデジタルデータに変換する。近年、撮像素子は多画素化が進み、撮像装置は高性能化が要求されている。撮像素子の多画素化が進むと、撮像装置内における撮像信号の処理負荷が増大する。従って、撮像装置は、ユーザーにとって操作性がスムーズとなるように、データを高速処理することが求められている。
【0003】
また、CCD、CMOS等の撮像素子から出力された信号は、不可逆圧縮処理や信号処理されて記録媒体に記録される場合もあるが、信号処理を施さずにRAWデータとして記録媒体に記録される場合もある。この場合、撮像装置の内部バスに伝送されるデータ量は多大であり、記録媒体への書き込み処理、記録媒体からの読み出し処理にかかる時間が長時間化する。例えば、特許文献1及び2では、撮像装置においてRAWデータを処理する技術について開示されている。
【0004】
【特許文献1】特開平5−191770号公報
【特許文献2】特開2007−228515号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
例えば、特許文献1では、撮像装置の内部バスにおけるデータ伝送の際、RAWデータを可逆圧縮して伝送する技術が開示されている。しかし、可逆圧縮したとしても、例えば、ハフマン符号化などは可変長符号化処理となるため、内部バスにおける帯域を一定に維持することは困難である。また、可変長符号化処理では、帯域削減の効果を常時得ることができないという問題があった。
【0006】
特許文献2では、記録媒体で読み書きされる画像データが圧縮される。この圧縮処理では、所定数の画素データからなるブロック内の画素データの最大値及び最小値と、ブロック内での位置情報と、ブロック内の画素データから最小値を減算した減算値が量子化される。特許文献2の圧縮処理は、固定長符号化処理であり、圧縮効率が8bit/pixの場合では、1画素あたり7ビットの量子化で達成可能であった。
【0007】
しかし、圧縮処理において、圧縮効率を更に向上させるため単純に量子化語長を4bitなどに下げるだけでは、波形の変動の激しい部分が上記ブロック内に存在した場合、量子化ノイズが顕在化するという問題があった。例えば、被写体が黒い幕を背景にして立った人物であって、暗い背景と明るい人物の肌色とのグラデーション変化のある境界部分が上記圧縮処理対象となる1つのブロック内に存在する場合、肌色部分が段差となる等の量子化ノイズが目立ってしまう。
【0008】
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、画質劣化を低減させた量子化処理ができ、更にデータ処理の高速化を図ることが可能な、新規かつ改良された画像情報処理装置及び画像情報処理方法を提供することにある。
【課題を解決するための手段】
【0009】
上記課題を解決するために、本発明のある観点によれば、撮像素子から出力された画素データを所定数毎に分割しブロックを生成するブロック化部と、ブロック内の画素データのレベル変化に応じてブロックを分割しサブブロックを生成する分割処理部と、生成されたサブブロック毎に画素データレベルの変化量及びサブブロックの区間の長さに応じて決定された量子化語長で画素データを量子化し量子化データを生成する量子化部と、ブロック内の画素データのレベル変化に関する情報と量子化データを集約し圧縮データを生成する圧縮データ生成部とを有する画像情報処理装置が提供される。
【0010】
上記分割処理部は、ブロック内の画素データレベルの振幅値と変化量に応じて、ブロックを分割しサブブロックを生成してもよい。
【0011】
上記分割処理部は、ブロック内の画素データレベルの振幅値と変化量に基づいてブロックを分割する数及び分割位置を決定する分割決定部と、決定された分割数及び分割位置に応じて、ブロックを分割しサブブロックを生成するサブブロック生成部とを有してもよい。
【0012】
また、上記課題を解決するために、本発明の別の観点によれば、圧縮データから、所定数の画素データからなるブロック内の画素データのレベル変化に関する情報と、ブロックが分割されたサブブロック毎に画素データレベルの変化量及びサブブロックの区間の長さに応じて決定された量子化語長で画素データが量子化された量子化データを抽出する抽出部と、レベル変化に関する情報に基づいて、量子化データを逆量子化し逆量子化画素データを生成する逆量子化部とを有する画像情報処理装置が提供される。
【0013】
上記レベル変化に関する情報は、画素データのレベルの振幅値と変化量に関する情報であってもよい。
【0014】
また、上記課題を解決するために、本発明の別の観点によれば、撮像素子から出力された画素データを所定数毎に分割しブロックを生成するステップと、ブロック内の画素データのレベル変化に応じてブロックを分割しサブブロックを生成するステップと、生成されたサブブロック毎に画素データレベルの変化量及びサブブロックの区間の長さに応じて決定された量子化語長で画素データを量子化し量子化データを生成するステップと、ブロック内の画素データのレベル変化に関する情報と量子化データを集約し圧縮データを生成するステップとを有する画像情報処理方法が提供される。
【0015】
また、上記課題を解決するために、本発明の別の観点によれば、圧縮データから、所定数の画素データからなるブロック内の画素データのレベル変化に関する情報と、ブロックが分割されたサブブロック毎に画素データレベルの変化量及びサブブロックの区間の長さに応じて決定された量子化語長で画素データが量子化された量子化データを抽出するステップと、レベル変化に関する情報に基づいて、量子化データを逆量子化し逆量子化画素データを生成するステップとを有する画像情報処理方法が提供される。
【発明の効果】
【0016】
本発明によれば、画質劣化を低減させた量子化処理ができ、更にデータ処理の高速化を図ることができる。
【発明を実施するための最良の形態】
【0017】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【0018】
まず、本発明の第1の実施形態に係る撮像装置100について説明する。図1は、本実施形態に係る撮像装置100を示すブロック図である。本実施形態に係る撮像装置100は、例えばデジタルスチルカメラ、デジタルビデオカメラなどであり、被写体像をデジタルデータとして記録することができる。
【0019】
撮像装置100は、図1に示すように、例えば、撮像素子101、AFE回路102、デジタル画像処理部103、SDRAM104、ROM105及びストレージデバイス106等を備えている。
また、デジタル画像処理部103は、カメラ信号前処理部111、カメラ信号処理部112、解像度変換部113、JPEGエンジン114、CPU115、ビデオ出力エンコーダ116及びSDRAMコントローラ117などを有する。これらの各構成要素は、内部バス118によって相互に接続されている。さらに、本実施形態のデジタル画像処理部103は、RAW圧縮部121及びRAW伸張部122を有する。
【0020】
撮像素子101は、例えばCCD(Charge Coupled Devices)、CMOS(Complementary Metal Oxide Semiconductor)撮像素子などの固体撮像素子であり、図示しないレンズブロック(光学系)を通じて被写体から入射された光を電気信号に変換する。
【0021】
AFE回路102は、撮像素子101から出力された画像信号に対して、CDS処理によりS/N(Signal/Noise)比を良好に保つようにサンプルホールドを行う。AFE回路102は、AGC処理により利得を制御し、A/D(Analog/Digital)変換を行ってデジタル画像信号を出力する。
【0022】
デジタル画像処理部103は、例えば、SoC(System on a Chip)回路などとして形成される。デジタル画像処理部103において、カメラ信号前処理部111は、AFE回路102から供給された画像信号に対して、撮像素子101における欠陥画素の信号補正処理、レンズの周辺光量落ちを補正するシェーディング処理などを施す。また、カメラ信号前処理部111は、処理後の信号をRAWデータとして出力する。
【0023】
RAW圧縮部121は、カメラ信号前処理部111からのRAWデータを、後述する圧縮方法により圧縮し、SDRAMコントローラ117を介して、SDRAM104に供給する。
RAW伸張部122は、SDRAM104からSDRAMコントローラ117を介して読み出した、圧縮されたRAWデータを、後述する方法により伸張して、カメラ信号処理部112に出力する。
【0024】
カメラ信号処理部112は、RAW伸張部122からRAWデータにデモザイク処理を施す。その後、カメラ信号処理部112は、AF(Auto Focus)、AE(Auto Exposure)、ホワイトバランス制御などのための信号検波処理や、ホワイトバランス調整に代表される信号補正処理など、いわゆるカメラ信号処理、またはその処理の一部を実行する。さらに、カメラ信号処理部112は、信号補正後の画像データを、例えば4:2:2などの所定フォーマットの輝度信号(Y)と色差信号(R−Y,B−Y)に変換する。
【0025】
解像度変換部113は、カメラ信号処理部112で処理された画像データ、又はJPEGエンジン114で伸張復号化された画像データの入力を受けて、所定の解像度に変換する。
【0026】
JPEGエンジン114は、解像度変換部113で処理された画像データを圧縮符号化し、JPEG方式の符号化データを生成する。また、JPEGエンジン114は、ストレージデバイス106から読み出されたJPEG画像データを伸張復号化する。なお、デジタル画像処理部103には、このJPEGエンジン114以外の他の静止画圧縮方式、又は動画圧縮方式のエンコード/デコードエンジンが設けられてもよい。
【0027】
CPU115は、ROM105に格納されたプログラムを実行することにより、デジタル画像処理部103及び撮像装置100全体を統括的に制御し、また、その制御のための各種演算を実行する。
【0028】
ビデオ出力エンコーダ116は、例えばNTSC(National Television Standards Committee)エンコーダなどである。ビデオ出力エンコーダ116は、解像度変換部113などから出力された画像データを基に、モニタ表示用の画像信号を生成し、モニタ(図示せず。)又はビデオ出力端子26aに出力する。
【0029】
SDRAMコントローラ117は、SDRAM104に対するインタフェースブロックであり、アドレスデコーダなどを有する。SDRAMコントローラ117は、CPU115からの制御信号に従って、SDRAM104の書き込み及び読み出し動作を制御する。
【0030】
SDRAM104は、DDR(Double Data Rate)SDRAMなどの揮発性のメモリである。SDRAM104は、デジタル画像処理部103におけるデータ処理のためのワークエリアである。SDRAM104は、キャプチャデータエリア104aと、JPEG符号エリア104bと、CPUワークエリア104cなどを含む。キャプチャデータエリア104aは、撮像素子101からキャプチャされたデータ、即ち、RAW圧縮部121で圧縮されたRAWデータを一時的に格納する。JPEG符号エリア104bは、JPEGエンジン114により符号化された画像データや、その符号化・復号化処理で利用されるデータなどを一時的に格納する。CPUワークエリア104cは、CPU115の処理で利用されるデータを一時的に格納する。
【0031】
ROM105は、CPU115が実行するプログラムや各種データを保持する。ROM105は、例えば、EEPROM(Electronically Erasable and Programmable ROM)、フラッシュメモリなどの不揮発性メモリである。
【0032】
ストレージデバイス106は、符号化された画像データのファイルを記録するためのデバイスである。ストレージデバイス106は、例えば、フラッシュメモリ、光ディスク、磁気テープなどの記録媒体と、記録媒体の記録/再生ドライブなどからなる。
【0033】
上記のような撮像装置100において、撮像素子101による撮像信号は、順次AFE回路102に供給され、CDS処理やAGC処理が施された後、デジタル信号に変換されて、デジタル画像処理部103のカメラ信号前処理部111に供給される。カメラ信号前処理部111では、入力された画像信号に対して、欠陥画素補正やシェーディング補正などを施したRAWデータが生成され、このRAWデータは、RAW圧縮部121により圧縮された後、SDRAM104に一旦書き込まれる。
【0034】
上記RAWデータは、SDRAM104から読み出されると、RAW伸張部122により伸張された後、カメラ信号処理部112により各種画質補正処理が施される。処理後の画像データは、例えばSDRAM104に一旦格納された後、解像度変換部113により、表示に適した解像度のデータに変換され、さらに例えばSDRAM104に格納された後、ビデオ出力エンコーダ116に供給される。これにより、カメラスルー画像がモニタに表示される。
【0035】
また、図示しない入力部などを通じて画像の記録が要求されると、解像度変換部113は、カメラ信号処理部112で処理された画像データを、必要に応じて記録用に設定された解像度のデータに変換して、例えばSDRAM104に一旦格納する。JPEGエンジン114は、画像データを圧縮符号化して、符号化データを生成する。符号化データは、例えばSDRAM104に一旦記録された後、ストレージデバイス106に記録される。
【0036】
また、ストレージデバイス106に記録された画像データ(符号化データ)は、JPEGエンジン114で伸張復号化され、解像度変換部113で解像度変換される。その後、画像データは、ビデオ出力エンコーダ116に出力されることで、モニタに画像を表示させることができる。
【0037】
本実施形態のデジタル画像処理部103には、カメラ信号前処理部111から内部バス118に対する画像データの入力位置に、RAWデータを圧縮するRAW圧縮部121が設けられる。これにより、内部バス118を通じてSDRAM104に伝送されるRAWデータのデータ量を低減することができる。また、内部バス118からカメラ信号処理部112に対する画像データの入力位置に、RAWデータを伸張するRAW伸張部122が設けられる。これにより、SDRAM104からカメラ信号処理部112に伝送されるRAWデータのデータ量を低減することができる。
【0038】
本実施形態によれば、撮像動作中の内部バス118の伝送負荷を軽減し、SDRAM104に対する書き込み/読み出し処理に要する時間を短縮することが可能となる。特に、圧縮/伸張の処理をできるだけ簡単にすることで、処理時間の短縮効果を上げることができる。また、バス上の伝送周波数を低減して、消費電力を抑制することもできる。
【0039】
また、本実施形態によれば、SDRAM104の容量を小さくすることができる。更に、SDRAM104の領域を他の処理に利用したり、複数フレーム分のRAWデータを格納して、連写できる枚数を増やしたり、あるいは連写速度を向上させたりなど、高画質化・高機能化に寄与する。従って、撮像処理やデータ記録処理に必要な時間を短くすることができる、高性能かつ小型、低コストの撮像装置100を実現できる。
【0040】
また、RAW圧縮部121によるRAWデータの圧縮処理では、可逆圧縮手法を用いることで、RAWデータの品質を完全に保持できるが、非可逆圧縮であっても、圧縮歪みの発生量が、輝度/色差信号に変換された時点で、肉眼では感知できない程度となるならば、画質としては許容できる。一般に、輝度/色差信号に変換された時点のPSNR(Peak Signal to Noise Ratio)が50dB〜40dB程度であれば、圧縮歪みは許容されるレベルになる。
【0041】
更に、本実施形態の撮像装置100は、RAWデータを圧縮する場合に、固定長で符号化できる。その結果、SDRAM104に対して読み書きするRAWデータの帯域を一定に保つことができ、内部バス118における伝送負荷を安定的に低減できる。また、カメラ信号処理部112におけるRAWデータの取り扱い(例えばSDRAM104からの読み出し制御処理)や、内部バス118を通じたRAWデータの伝送制御処理を、単純化することもできる。
【0042】
例えば、可変長で符号化した場合、圧縮されたRAWデータをSDRAM104から読み出す際に、バースト状にアクセスしなければならない場合が多い。一方、固定長で符号化することにより、任意の位置のRAWデータのSDRAM104上のアドレスを簡単に計算し、読み出すことができる。従って、カメラ信号処理部112は、1Hの数分の一程度のディレイラインしか持たずに、全画面を部分的に(例えば、縦方向の短冊状に)処理するとしてもよい。また、デジタル画像処理部103内のDMA(Direct Memory Access)コントローラによりアクセスすることも可能となる。
【0043】
以下では、本実施形態の撮像装置100のRAW圧縮部121の構成について詳細に説明する。本実施形態の撮像装置100は、固定長の符号化が可能で、かつ、画像品質を良好に保つことができ、比較的簡単な処理で実現できる非可逆圧縮/伸張方法が用いられる。
【0044】
なお、以下の例では、RAWデータ信号を1画素(ピクセル)当たり14ビットとする。また、例えば図6に示すように、同一色成分を持つ水平方向の20画素分を、1ブロックの符号化データに変換する。図6は、ベイヤ配列と抽出された同色1ラインを示す模式図である。量子化語長は、例えば2〜4ビットの可変とする。本実施形態のRAW圧縮部121は、20画素を1ブロックとして、この1ブロックを128ビットの固定長に圧縮する。その結果、1画素当たり6.4ビットとなる。通常、14ビットのデータは、20画素を1ブロックとすると、RAWデータを圧縮しない場合、1ブロックに対応するデータ量は280ビットとなる。一方、本実施形態によれば、280ビットのデータ量を128ビット分に圧縮でき、データ量を約46%に低減する圧縮率を達成できる。
【0045】
図2は、本実施形態に係るRAW圧縮部121を示すブロック図である。
図2に示すように、RAW圧縮部121は、折れ線圧縮部131、ブロック化部132、バッファ133、ブロック分割数決定部134、減算部135、量子化部136、量子化データバッファ137及びパッキング部138などを有する。
【0046】
折れ線圧縮部131は、入力された14ビットのRAWデータを、折れ線を用いた近似により10ビットのデータに非線形で圧縮する。折れ線圧縮部131は、この後の圧縮手順の前に、できるだけ階調を下げておくことで、全体的な圧縮効率を向上させることを目的として設けられる。目的とする圧縮率によっては、省略されてもよい。なお、この場合には、後の図11で説明するRAW伸張部122の出力段に設けられる逆折れ線伸張部192についても、省略できる。
【0047】
ここで、図9は、折れ線圧縮部131で用いられる折れ線の例を示すグラフである。
図9に示すグラフによって入力データの階調を変換する。この例では、人間の視覚特性に合わせて、入力データが小さいほど、すなわち暗いほど(または色がうすいほど)、高い階調を割り当てるようにしている。このような折れ線は、例えば色成分ごとに用意し、入力画素の色成分ごとに切り換えて利用してもよい。
【0048】
折れ線圧縮部131では、例えば、このような折れ線を用いて、入力データの階調を変換した後、変換後のデータを16で除算(すなわち4ビット分下位にシフト)して、10ビットデータに圧縮する。このとき、捨てられる下位ビットは、例えば四捨五入する。なお、以上のような演算に基づく、入力データと圧縮後の出力データとを対応付けて記憶したROMテーブルを用意し、折れ線圧縮部131では、このROMテーブルに従って入出力データの変換が行われてもよい。
【0049】
ブロック化部132は、折れ線圧縮部131から出力されたデータを、水平方向に隣接する20画素分の同色成分画素からなるブロックに分割し、分割したブロック毎に出力する。これにより、ブロック内のデータの相関が強くなり、この後の量子化処理による画質劣化を抑制することができる。
【0050】
例えば、図6に示すようなベイヤ配列の撮像素子が用いられた場合、出力データには、R成分とGr成分の繰り返しと、B成分とGb成分の繰り返しとが、1ラインごとに出現する。例えば、ブロック化部132への入力データに、R,Gr,R,Gr,・・・,R19,Gr19のように、R成分とGr成分が繰り返し現れる場合には、R,R,R,・・・,R19,Gr,Gr,・・・,Gr19のように、同色成分の画素が20個連続して現れるように、出力順序を変換して、ブロック化する。
【0051】
バッファ133は、ブロック化部132からのデータを保持する。バッファ133は、ブロック分割数決定部134において最小値が算出されるまでの間、入力データに対応するブロックを保持し遅延時間合わせをする。
【0052】
ブロック分割数決定部134は、ブロックを更にサブブロックに分割するための分割数や、圧縮用の要素を決定する。ブロック分割数決定部134の詳細は後述する。ブロック分割数決定部134は、分割処理部の一例である。
【0053】
減算部135は、ブロック化部132から出力された画素データから、ブロック分割数決定部134が出力した、対応するブロック内の最小値を減算する。この減算は、1ブロック内の画素に共通するDCオフセット分を、各画素のデータから差し引くことと等価である。
【0054】
量子化部136は、減算部135の出力データを、ブロック分割数決定部134から出力されるシフト量に従って量子化する。本実施形態では、一例として、2〜5ビットの可変長で量子化する。
【0055】
この量子化部136としては、例えば、整数型の除算器を利用して、減算部135の出力データをシフト量で除算する。また、量子化ステップを2のべき乗に限定した場合には、右シフタを適用でき、これにより回路規模を削減することができる。なお、圧縮処理側で右シフタを利用すると、伸張処理側の逆量子化においても同様に回路規模を削減できる。
量子化データバッファ137は、量子化部136から出力される20画素分の量子化データを一時的に保持する。
【0056】
パッキング部138は、量子化データバッファ137及びブロック分割数決定部134からの出力データを利用して、1ブロック当たり128ビットの圧縮データにパッキングする。ブロック分割数決定部134からの出力データには、ブロック内の画素データの最小値、シフト量、サブブロックの座標(位置情報)、量子化データ20画素分及びどの形式で圧縮したかという圧縮タイプを示すフラグを図10に示すようにパッキングする。これにより、280ビットのデータ量を128ビット分に圧縮できる。パッキング部138は、圧縮データ生成部の一例である。
【0057】
次に、図3〜5を参照して、本実施形態のブロック分割数決定部134について説明する。図3は、本実施形態に係るブロック分割数決定部134を示すブロック図である。ブロック分割数決定部134は、例えば、バッファ141、ブロック分割判断部142及びブロック分割用データ生成部143からなる。
【0058】
バッファ141は、ブロック化部132からのデータを保持する。バッファ141は、ブロック分割判断部142においてサブブロックの座標やブロック分割判断終了信号などが出力されるまでの間、入力データに対応するブロックを保持し遅延時間合わせをする。
【0059】
ブロック分割判断部142は、図4に示すように、例えば、最大値最小値検出部151、差分算出部152、語長検出部153、領域検出部154、アドレスカウンタ155、変化点ラッチ部156、変化点カウンタ157、タイプ判断部158及び領域2値化部159からなる。ブロック分割数決定部134は、サブブロックを生成する、又はサブブロックを生成しないという判断や、サブブロック分割座標を生成する。図4は、本実施形態に係るブロック分割判断部142を示すブロック図である。ブロック分割判断部142は、分割決定部の一例である。
【0060】
最大値最小値検出部151は、ブロック毎に、ブロック化された水平20画素のデータのうちから最大値(MAX)及び最小値(MIN)を検出する。最大値最小値検出部151は、検出した最大値(MAX)及び最小値(MIN)を差分算出部152及び領域検出部154に出力する。
【0061】
差分算出部152は、1つのブロック内の最大値(MAX)及び最小値(MIN)の差分を計算して、1つのブロックでのダイナミックレンジ(DR0)を算出する。差分算出部152は、ダイナミックレンジ(DR0)を語長検出部153に出力する。
【0062】
語長検出部153は、ダイナミックレンジ(DR0)から、1つのブロック内に存在する画素データのダイナミックレンジの桁数を検出する。語長検出部153は、検出したダイナミックレンジの桁数(DEPTH)を出力する。
【0063】
領域検出部154は、最大値(MAX)及び最小値(MIN)と、以下の閾値とによって、画素データの入力波形が最大と最小の両端に振れるまでの遷移区間(遷移領域)を判断する。そして、遷移領域にある画素は、AREA_DET=1とし、最小値近傍にある画素は、AREA_DET=0とし、最大値近傍にある画素は、AREA_DET=2として、AREA_DETを出力する。図7に画素データの入力値(Pi)と領域との関係を示す。図7は、画素データの入力波形を示す説明図である。
【0064】
閾値は、例えば下記の通りである。
MIN≦Pi<(MAX−MIN)/4+MIN ・・・ AREA_DET=0
(MAX−MIN)/4+MIN≦Pi<3×(MAX−MIN)/4+MIN ・・・ AREA_DET=1
3×(MAX−MIN)/4+MIN≦Pi≦MAX ・・・ AREA_DET=2
【0065】
なお、この閾値は一例であり、例えば、入力波形のヒストグラムや統計情報に基づいて、波形の傾向を閾値に反映させてもよい。閾値は、2つとしたが、これに限定されない。領域検出部154は、AREA_DETを変化点ラッチ部156及び領域2値化部159に出力する。
【0066】
アドレスカウンタ155は、入力される20画素の画素信号を数え上げる(カウントアップする)。アドレスカウンタ155は、20画素が入力される毎にブロック分割判断終了信号を後段のブロック分割用データ生成部143に出力し、自分自身を0(ゼロ)にリセットする。
【0067】
変化点ラッチ部156は、領域検出部154から出力されたAREA_DETの2ビット出力から領域の変化点を検出する。そして、変化点ラッチ部156は、領域の変化点(POSn(n=0,1,2))をサブブロックの切り替え座標候補(ブロックをサブブロックに分割するときの分割座標候補)として最大3つまで保持する。変化点ラッチ部156は、検出された変化点のアドレスカウンタ155から出力されたカウンタ値(本実施形態では0〜19)を保持して、そのカウンタ値を座標候補とする。変化点ラッチ部156は、変化点のカウンタ値(POSn(n=0,1,2)=0〜19)を出力する。
【0068】
変化点カウンタ157は、変化点ラッチ部156で、変化点のカウンタの値が座標候補として保持される毎に、画素信号をカウントアップする。そして、変化点カウンタ157は、サブブロックの切り替え座標候補の数を数え、保持する。変化点カウンタ157は、切り替え座標候補の数(CNT1)を出力する。
【0069】
タイプ判断部158は、サブブロックを生成する、又はサブブロックを生成しないという判断をする。サブブロックを生成する、即ち1つのブロックをサブブロックに分割するという判断は、1つのブロック内の画素データのレベルの振幅と、切り換え座標候補の数に基づく。例えば、語長検出部153で検出されたダイナミックレンジの桁数(DEPTH)が、入力信号の桁数(本実施形態では10桁)に対して、同じ桁数〜1/2以下の桁数の範囲にある場合(例えば、DEPTH=10又は9など)は、1つのブロック内の画素データの変化が大きい(振幅が大きい)。
【0070】
タイプ判断部158は、1つのブロック内の振幅が大きく、かつ、1つのブロックを4つ以内のサブブロックに分割できる場合、サブブロックを生成すると判断する。タイプ判断部158は、それ以外の場合は、サブブロックを生成しないと判断し、1つのブロックをひとまとまりとして画素データを圧縮する。タイプは、下記のように決定される。タイプは、伸張時の手順を決めるために必要であるため、圧縮データに含まれる。1つのブロックを4つ以内のサブブロックに分割できる場合とは、変化点カウンタ157から出力された値が、CNT1≦3のときである。
type00:1つのブロックのみとする場合
type01:2つのサブブロックを生成する場合
type10:3つのサブブロックを生成する場合
type11:4つのサブブロックを生成する場合
タイプ判断部158は、決定されたタイプを出力する。
【0071】
領域2値化部159は、最大4つのサブブロックのそれぞれのAREA_DETの値を保持する。そして、領域2値化部159は、サブブロック毎のAREA_DETの値を、遷移領域、最大値又は最小値近傍領域に応じて、2値化する。
具体的には、AREA_DET=0のとき、AREAn(n=0,1,2,3)=1とし、AREA_DET=1のとき、AREAn(n=0,1,2,3)=0とし、AREA_DET=2のとき、AREAn(n=0,1,2,3)=1とする。領域2値化部159は、AREAn(n=0,1,2,3)=0又は1を出力する。AREAn(n=0,1,2,3)は、4つ以内のサブブロックの各サブブロックを意味する。
【0072】
次に、図5を参照して、ブロック分割用データ生成部143について説明する。図5は、本実施形態に係るブロック分割用データ生成部143を示すブロック図である。
ブロック分割用データ生成部143は、図5に示すように、例えば、アドレスカウンタ161、変化点保持部162、ラッチパルス出力部163、区間幅計算部164、最大値最小値検出部165、差分算出部166、最小値ラッチ部167、セレクタ168、領域2値化値保持部169、量子化語長決定部170、シフト量計算部171、シフト量ラッチ部172、セレクタ173、変化点保持部174及びアドレスカウンタ175からなる。
ブロック分割用データ生成部143は、サブブロック単位での量子化に必要な要素を生成する。ブロック分割用データ生成部143は、サブブロック生成部の一例である。
【0073】
アドレスカウンタ161及びアドレスカウンタ175は、いずれも1つのブロック分の画素数を数え上げる。
アドレスカウンタ161は、ブロック分割判断終了信号を受けて、アドレスカウントスタート信号とする。アドレスカウンタ161の出力(CNT2)は、ラッチパルス出力部163の出力(latch2)を介して、最大値最小値検出部165、サブブロック毎の最小値を決定する最小値ラッチ部167、シフト量を決定するシフト量ラッチ部172を制御する。
【0074】
アドレスカウンタ175は、アドレスカウンタ161が20画素分のカウントを終了すると起動される。アドレスカウンタ175は、CONT信号を出力する。CONT信号は、タイプ(type00,01,10,11)に応じた分割数と、座標レジスタ(POS0’,1’,2’)に基づいてセレクタ173を切り替える制御をする。この制御によって、サブブロック毎に画素データの量子化が行われる。
【0075】
変化点保持部162及び変化点保持部174は、サブブロックの数に応じて、最大3つの座標を保持する。変化点保持部162は、変化点のカウンタ値(座標レジスタPOSn(n=0,1,2)=0〜19)を保持する。変化点保持部174は、変化点のカウンタ値(座標レジスタPOSn(n=0’,1’,2’)=0〜19)を保持する。座標レジスタPOS0’〜POS2’は、座標レジスタPOS0〜POS2のコピーであり、量子化終了後にパッキング部138で圧縮データとしてパックされるときに使用されるときまで保持される。
【0076】
ラッチパルス出力部163は、アドレスカウンタ161からのカウンタ値と変化点保持部162からの座標レジスタに基づいて、サブブロック単位でラッチパルス(latch2)を出力する。
【0077】
区間幅計算部164は、タイプ(type00,01,10,00)によって、サブブロック分割数を検知する。区間幅計算部164は、座標の差分から区間幅を計算する。区間幅計算部164は、例えば、以下のとおり計算して、区間幅W0,W1,W2,W3を出力する。
type00の場合、区間幅W0=19である。区間幅W1,W2,W3は使用しない。
type01の場合、区間幅W0=POS0−0、W1=19−POS0である。区間幅W2,W3は使用しない。
type10の場合、区間幅W0=POS0−0、W1=POS1−POS0、W2=19−POS1である。区間幅W3は使用しない。
type11の場合、区間幅W0=POS0−0、W1=POS1−POS0、W2=POS2−POS1、W3=19−POS2である。
【0078】
最大値最小値検出部165は、サブブロック単位で、サブブロック内での画素データの最大値及び最小値を検出する。最大値最小値検出部165は、検出した最大値及び最小値を差分算出部166及び最小値ラッチ部167に出力する。
【0079】
差分算出部166は、最大値最小値検出部165で検出されたサブブロック内の最大値及び最小値の差分を計算して、サブブロック単位でのダイナミックレンジ(DR1)を算出する。
【0080】
最小値ラッチ部167は、サブブロック単位にレジスタMINn(n=0,1,2,3)に最小値を順次保持する。
セレクタ168は、最小値ラッチ部167のレジスタMINn(n=0,1,2,3)から、サブブロック毎の最小値を順次読み出して、出力する。
領域2値化値保持部169は、領域2値化部159から出力されたAREAn(n=0,1,2,3)=0又は1を保持する。
【0081】
量子化語長決定部170は、サブブロック単位の量子化語長を決定する。量子化語長決定部170は、サブブロック毎に量子化語長(Qn(n=0,1,2,3)=2〜5)を出力する。ここで、決定される量子化語長は、2〜5である。
【0082】
本実施形態のアルゴリズムとしては、サブブロックが、1つのブロックの入力波形のうち最大値及び最小値というレベル両端への遷移領域に該当し、サブブロックの区間幅が狭いとき、画素データの変化が激しい区間と判断する。そして、画素データの変化が激しい区間と判断されたサブブロックについては、優先的により多くの量子化語長を割り当てるとする。
【0083】
量子化語長決定部170は、区間幅Wn(n=0,1,2,3)の値、AREAn(n=0,1,2,3)=0又は1、type(=00,01,10,11)を用いて、量子化語長を割り当てる順位を検出する。
【0084】
1ブロックに割り当てられた語長(本実施形態では128ビット)のうち量子化データに使用できるビット数は、図10に示すデータ構造を有する圧縮データでは、タイプ毎にそれぞれ異なり、以下のとおりである。
type00:100ビット
type01:93ビット
type10:74ビット
type11:55ビット
【0085】
これらの量子化データに使用できるビット数に基づいて、1つのブロック内の各画素に割り当てられる量子化語長の組み合わせは、例えば、以下のとおりに決定しておくことができる。
type00:20画素全て5ビット(計100ビット)
type01:最大13画素まで5ビット、残りの画素は4ビット(計93ビット)
type10:最大14画素まで4ビット、残りの画素は3ビット(計74ビット)
type11:最大15画素まで3ビット、残りの画素は2ビット(計55ビット)
【0086】
更に、type01,10,11のように割りあてられる量子化語長が画素によって異なる場合、量子化語長の大きいものを割り当てるルールとしては、以下のとおりに決定しておくことができる。
1)AREAn=0(波形の遷移領域)に該当するサブブロックであって、区間幅Wが短いサブブロックの順に、上記の制限数以内で、各画素に量子化語長の大きいほうを割り当てる。
2)次に、依然として量子化語長の大きいほうを割り当てられる余裕がある場合は、AREAn=1に該当するサブブロックであって、区間幅Wが短いサブブロックの順に、上記の制限数以内で、各画素に量子化語長の大きいほうを割り当てる。
3)大きいほうの量子化語長が割り当てられなくなった時点で、残りのサブブロックは全て小さいほうの量子化語長が割り当てられる。
【0087】
次に、図8を参照して、量子化語長の割り当てについて一例を説明する。図8は、画素データの入力波形を示す説明図である。ここでは、圧縮対象のブロックが、type10であって、サブブロック数を3にするように分割する場合について説明する。
【0088】
type10であるため、上述したルールとしては、大きいほうの量子化語長は4ビットであり、最大14画素まで割り当てることができる。残りの画素は全て3ビットが割り当てられる。
【0089】
図8に示す入力波形によれば、対象とするブロック内の各サブブロックの区間幅Wと領域AREAは、次のとおりである。
W0=7 AREA0=1
W1=3 AREA1=0
W2=10 AREA2=1
【0090】
このとき、区間幅の大小関係は、W1<W0<W2となる。従って、上述したルールでは、W1,W0,W2の順に大きいほうの量子化語長を割り当てるようにしていく。まず、W1の区間へQ0=4ビットを割り当てる。次に、W0の区間へ量子化語長を割り当てる。最大14画素まで4ビットを割り当てられ、W0+W1<14であるため、W0の区間へQ1=4ビットを割り当てる。次に、W2の区間へ量子化語長を割り当てる。W2=10であるが、既に量子語長4ビットを10画素分割り当てているため、W2の区間へ4ビットを割り当てることはできない。そのため、W2の区間へQ2=3ビットを割り当てる。区間幅W3は、type10によれば、サブブロック分割数は3つなので該当なしとなり、Q3は計算しない。
【0091】
なお、この量子化語長の割当手順は、伸張処理側でも同様のルールで行われて、逆量子化処理がされる。また、本発明は割り当てる量子化語長の大きさや種類は上述した例に限定されない。このとき、タイプに応じて量子化データに使用できるビット数は限定されるが、圧縮処理側と伸張処理側で同じルールであればよい。
【0092】
シフト量計算部171は、サブブロック単位のダイナミックレンジ(DR1)と量子化語長(Qn(n=0,1,2,3)=2〜5)に基づいて、減算部135の出力を右に何ビットシフトするかを計算する。シフト量計算部171は、計算結果をシフト量ラッチ部172のレジスタSFTn(n=0,1,2,3)に出力する。
【0093】
シフト量ラッチ部172は、シフト量計算部171から出力されたシフト量をレジスタSFTn(n=0,1,2,3)に順次記録する。セレクタ173は、シフト量ラッチ部172のレジスタSFTn(n=0,1,2,3)から、サブブロック毎のシフト量を順次読み出して、出力する。
【0094】
ここで、シフト量計算は、圧縮する領域(サブブロック)のダイナミックレンジ(DR1)と、出力したい量子化語長に基づいて、量子化部136で行われる右シフトの量を計算する。
例えば、10ビットを5ビットに量子化する場合、
0≦DR1≦31のとき、入力データ(減算部135からの出力データ)をそのまま出力する。
32≦DR1≦63のとき、入力データを1ビット分右へシフトする。
64≦DR1≦127のとき、入力データを2ビット分右へシフトする。
128≦DR1≦255のとき、入力データを3ビット分右へシフトする。
256≦DR1≦511のとき、入力データを4ビット分右へシフトする。
512≦DR1≦1023のとき、入力データを5ビット分右へシフトする。
【0095】
また、10ビットを4ビットに量子化する場合も、5ビットの例と同様に、ダイナミックレンジ(DR1)に応じて、「そのまま出力する」〜「6ビット右へシフトする」という処理をする。
10ビットを3ビットに量子化する場合は、ダイナミックレンジ(DR1)に応じて、「そのまま出力する」〜「7ビット右へシフトする」という処理をする。10ビットを2ビットに量子化する場合は、ダイナミックレンジ(DR1)に応じて、「そのまま出力する」〜「8ビット右へシフトする」という処理をする。
【0096】
次に、図11を参照して本実施形態に係るRAW伸張部122について説明する。図11は、本実施形態に係るRAW伸張部122を示すブロック図である。
図11に示すように、RAW伸張部122は、例えば、圧縮符号ラッチ部181、区間幅計算部182、量子化語長決定部183、アドレスカウンタ184、セレクタ185、符号シフタ186、セレクタ187、セレクタ188、逆量子化部189、加算部191及び逆折れ線伸張部192からなる。
【0097】
圧縮符号ラッチ部181は、SDRAM104から読み出された128ビットの圧縮データを保持する。圧縮符号ラッチ部181は、図10に示す圧縮データのうち、MSB(Most Significant Bit)2ビットからタイプを判別して、各サブブロックのシフト量、最小値を保持する。圧縮符号ラッチ部181は、抽出部の一例である。
【0098】
区間幅計算部182は、サブブロック切り替え座標の座標データ(POS0,1,2)を受け、座標データ(POS0,1,2)の差分を計算して、区間幅W0,1,2を算出する。区間幅計算部182は、RAW圧縮部121の区間幅計算部164と同様である。
【0099】
量子化語長決定部183は、区間幅計算部182で算出された区間幅W0,1,2,3及びタイプに基づいて、サブブロックの量子化語長を割り当て計算し、サブブロック毎の量子化語長(Q0,1,2,3)を決定する。量子化語長決定部183は、RAW圧縮部121の量子化語長決定部170と同様のアルゴリズムでサブブロック毎の量子化語長(Q0,1,2,3)を決定する。
【0100】
セレクタ185は、量子化語長決定部183で決定された量子化語長を受取、順次符号シフタ186に出力する。
アドレスカウンタ184は、タイプと座標データによって、伸張処理する画素が属するサブブロックの切り替え座標を検出し、セレクタ185、187、188を順次切り替える。
【0101】
符号シフタ186は、圧縮符号ラッチ部181で保持されたデータのうち、タイプに応じた量子化データ(100ビット、93ビット、74ビット、55ビット)を受け取る。そして、符号シフタ186は、サブブロック単位の量子化語長(Q0,1,2,3)に基づいて、2〜5ビットの符号をシフト動作によって抽出し、逆量子化部189に出力する。
【0102】
セレクタ187は、圧縮符号ラッチ部181で保持された図10のデータ構造を有する圧縮データのうち、各サブブロックのシフト量を受け取り、順次逆量子化部189に出力する。セレクタ188は、圧縮符号ラッチ部181で保持された圧縮データのうち、図10のデータ構造を有する圧縮データのうち、各サブブロックの最小値を受け取り、順次加算部191に出力する。
【0103】
逆量子化部189は、符号シフタ186からの画素毎の量子化データを、セレクタ187からのシフト量に応じて、逆量子化する。本実施形態では、逆量子化部189は、2〜5ビットの符号を逆量子化して10ビットのデータを出力する。RAW圧縮部121の量子化部136で右シフタとして量子化した場合、逆量子化部189は、以下のような左シフタとしての計算をする。
【0104】
例えば、5ビットを10ビットに逆量子化する場合、
0≦DR1≦31のとき、入力データ(符号シフタ186からの出力データ)をそのまま出力する。
32≦DR1≦63のとき、入力データを1ビット分左へシフトする。
64≦DR1≦127のとき、入力データを2ビット分左へシフトする。
128≦DR1≦255のとき、入力データを3ビット分左へシフトする。
256≦DR1≦511のとき、入力データを4ビット分左へシフトする。
512≦DR1≦1023のとき、入力データを5ビット分左へシフトする。
【0105】
また、4ビットを10ビットに逆量子化する場合も、5ビットの例と同様に、ダイナミックレンジ(DR1)に応じて、「そのまま出力する」〜「6ビット左へシフトする」という処理をする。
3ビットを10ビットに逆量子化する場合は、ダイナミックレンジ(DR1)に応じて、「そのまま出力する」〜「7ビット左へシフトする」という処理をする。2ビットを10ビットに逆量子化する場合は、ダイナミックレンジ(DR1)に応じて、「そのまま出力する」〜「8ビット左へシフトする」という処理をする。
【0106】
加算部191は、逆量子化部189が出力した符号に、サブブロック毎の共通DCオフセット値となる最小値を加算する。加算部191は、最小値を加算したデータを逆折れ線伸張部192に出力する。
【0107】
逆折れ線伸張部192は、加算部191からのデータを、RAW圧縮部121の折れ線圧縮部131と逆の特性により、10ビットから14ビットのデータに伸張する。
【0108】
ここで、図12は、逆折れ線伸張部192で用いられる折れ線の例を示す図である。
この図12の折れ線は、図9で示した折れ線圧縮部131における折れ線と、逆の特性により階調を変換するようになっている。なお、入力データと伸張後の出力データとを対応付けて記憶したROMテーブルを用意し、このROMテーブルに従って入出力データの変換が行われてもよい。なお、圧縮時に、折れ線圧縮部131による圧縮が適用されなかった場合には、伸張時には、この逆折れ線変換部192でのデータ変換もバイパスされる。
【0109】
次に、図10を参照して、本実施形態で生成される圧縮データのデータ構造について説明する。図10は、パッキング部138により生成される1ブロック分の圧縮データのデータ構造を示す説明図である。
圧縮データは、本実施形態のRAW圧縮部で生成されたものであり、RAWデータの14ビットを折れ線圧縮部10ビットに変換し、更に水平方向の20画素単位でブロック化し、各画素を量子化語長2〜5ビットで符号化したものである。圧縮データは、ブロック毎に128ビットで構成される。
【0110】
図10に示すように、圧縮時にサブブロック毎に分割しないtype00の圧縮データは、識別フラグ(2ビット)、ブロック内の最小値(10ビット)、ブロック内の例えば2のべき乗に変換したダイナミックレンジ(3ビット)、ブロックの量子化データ(100ビット)からなる。
一方、サブブロックに分割するtype01,10,11の圧縮データの場合、識別フラグ(2ビット)、サブブロック毎のサブブロック内の最小値(10ビット)、サブブロック毎のサブブロック内の例えば2のべき乗に変換したダイナミックレンジ(3ビット)、領域を示すAREAn(1ビット)、切り替え座標POSn(5ビット)、ブロックの量子化データ(93ビット,74ビット,55ビット)からなる。
【0111】
以上の構成のRAW圧縮部121およびRAW伸張部122によれば、量子化による画質劣化が最小限に抑制されるような、より適切なサブブロック分割が選択され、量子化処理が実行される。その結果、高画質な撮像画像を高速処理によって得ることができる。また、圧縮率を向上させることができるため、内部バス118の帯域を有効に使用することができ、連写機能による撮影時の応答速度の高速化を図ることができる。
【0112】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【図面の簡単な説明】
【0113】
【図1】本発明の第1の実施形態に係る撮像装置を示すブロック図である。
【図2】同実施形態に係るRAW圧縮部を示すブロック図である。
【図3】同実施形態に係るブロック分割数決定部を示すブロック図である。
【図4】同実施形態に係るブロック分割判断部を示すブロック図である。
【図5】同実施形態に係るブロック分割用データ生成部を示すブロック図である。
【図6】ベイヤ配列と抽出された同色1ラインを示す模式図である。
【図7】画素データの入力波形を示す説明図である。
【図8】画素データの入力波形を示す説明図である。
【図9】折れ線圧縮部で用いられる折れ線の例を示すグラフである。
【図10】パッキング部により生成される1ブロック分の圧縮データのデータ構造を示す説明図である。
【図11】本発明の第1の実施形態に係るRAW伸張部を示すブロック図である。
【図12】逆折れ線伸張部で用いられる折れ線の例を示す図である。
【符号の説明】
【0114】
100 撮像装置
101 撮像素子
102 AFE回路
103 デジタル画像処理部
104 SDRAM
105 ROM
106 ストレージデバイス
111 カメラ信号前処理部
112 カメラ信号処理部
113 解像度変換部
114 JPEGエンジン
115 CPU
116 ビデオ出力エンコーダ
117 SDRAMコントローラ
121 RAW圧縮部
122 RAW伸張部


【特許請求の範囲】
【請求項1】
撮像素子から出力された画素データを所定数毎に分割しブロックを生成するブロック化部と、
前記ブロック内の画素データのレベル変化に応じて前記ブロックを分割しサブブロックを生成する分割処理部と、
前記生成されたサブブロック毎に前記画素データレベルの変化量及び前記サブブロックの区間の長さに応じて決定された量子化語長で画素データを量子化し量子化データを生成する量子化部と、
前記ブロック内の画素データのレベル変化に関する情報と前記量子化データを集約し圧縮データを生成する圧縮データ生成部と
を有する、画像情報処理装置。
【請求項2】
前記分割処理部は、前記ブロック内の画素データレベルの振幅値と変化量に応じて、前記ブロックを分割しサブブロックを生成する、請求項1に記載の画像情報処理装置。
【請求項3】
前記分割処理部は、
前記ブロック内の画素データレベルの振幅値と変化量に基づいて前記ブロックを分割する数及び分割位置を決定する分割決定部と、
前記決定された分割数及び分割位置に応じて、前記ブロックを分割しサブブロックを生成するサブブロック生成部と
を有する、請求項1に記載の画像情報処理装置。
【請求項4】
圧縮データから、所定数の画素データからなるブロック内の画素データのレベル変化に関する情報と、前記ブロックが分割されたサブブロック毎に前記画素データレベルの変化量及び前記サブブロックの区間の長さに応じて決定された量子化語長で前記画素データが量子化された量子化データを抽出する抽出部と、
前記レベル変化に関する情報に基づいて、前記量子化データを逆量子化し逆量子化画素データを生成する逆量子化部と
を有する、画像情報処理装置。
【請求項5】
前記レベル変化に関する情報は、前記画素データのレベルの振幅値と変化量に関する情報である、請求項4に記載の画像情報処理装置。
【請求項6】
撮像素子から出力された画素データを所定数毎に分割しブロックを生成するステップと、
前記ブロック内の画素データのレベル変化に応じて前記ブロックを分割しサブブロックを生成するステップと、
前記生成されたサブブロック毎に前記画素データレベルの変化量及び前記サブブロックの区間の長さに応じて決定された量子化語長で画素データを量子化し量子化データを生成するステップと、
前記ブロック内の画素データのレベル変化に関する情報と前記量子化データを集約し圧縮データを生成するステップと
を有する、画像情報処理方法。
【請求項7】
圧縮データから、所定数の画素データからなるブロック内の画素データのレベル変化に関する情報と、前記ブロックが分割されたサブブロック毎に前記画素データレベルの変化量及び前記サブブロックの区間の長さに応じて決定された量子化語長で前記画素データが量子化された量子化データを抽出するステップと、
前記レベル変化に関する情報に基づいて、前記量子化データを逆量子化し逆量子化画素データを生成するステップと
を有する、画像情報処理方法。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate