JP4124686B2 - Image data processing device - Google Patents

Image data processing device Download PDF

Info

Publication number
JP4124686B2
JP4124686B2 JP2003089750A JP2003089750A JP4124686B2 JP 4124686 B2 JP4124686 B2 JP 4124686B2 JP 2003089750 A JP2003089750 A JP 2003089750A JP 2003089750 A JP2003089750 A JP 2003089750A JP 4124686 B2 JP4124686 B2 JP 4124686B2
Authority
JP
Japan
Prior art keywords
data
image
image data
code
encoding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2003089750A
Other languages
Japanese (ja)
Other versions
JP2004297653A (en
Inventor
智博 福岡
雅樹 岡田
一彦 岡田
敦司 森
展幸 服部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2003089750A priority Critical patent/JP4124686B2/en
Publication of JP2004297653A publication Critical patent/JP2004297653A/en
Application granted granted Critical
Publication of JP4124686B2 publication Critical patent/JP4124686B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、CCDやCMOSセンサなどの撮像素子から取り込んだ画像データを処理する画像データ処理装置に関するものである。
【0002】
近年、デジタルカメラの記録画素数は拡大の一途を辿っており、それに応じて処理負荷が益々重くなる傾向にある。そのため、デジタルカメラにおけるデータ処理システムでは、連写速度を高める目的でバッファメモリを搭載することが多い。同システムにおいて、少しでも処理能力を高めるためにはバッファメモリを極力有効に使用することが望まれており、データ処理の途中で発生する中間データによるバッファの専有を避ける技術が重要な課題となっている。
【0003】
【従来の技術】
デジタルカメラにおいて、例えば、原色ベイヤー配列で配置された単版式の撮像素子のデータを記録する場合、撮像素子から入力される生データを一旦バッファメモリに格納した後、該メモリからデータを読み出して3版化のための補間処理やファイル圧縮のためのJPEG圧縮などの処理が行われている。この場合、理想的には、撮像素子からの入力データを、バッファメモリを使用することなく記録対象のデータであるJPEGデータに変換し、変換結果をバッファメモリに蓄積することができれば、バッファメモリを最大限に有効活用することが可能となる。しかしながら、撮像素子からのデータ入力は一定の順序を保って入力され、その順番は必ずしも後処理の回路(補間回路等)で都合の良い順番になっていない。その一例として、インタレース型のスキャンを行う撮像素子を用いる場合、フィールド単位でデータが入力されてくるが、そのデータを補間する補間回路はフィールド単位ではなくフレーム単位で処理を行うため、先行するフィールドのデータをバッファメモリに一旦待避しておく必要がある。また、補間回路は大きなラインメモリを必要とし、回路量の制約から矩形に分割して補間処理を行うといった形態をとる。そのため、フレーム単位で読み出し可能な撮像素子(具体的には、プログレッシブ型のスキャンを行う撮像素子)を用いた場合でも、バッファメモリへのデータ待避が必要となる。さらに、JPEG圧縮の処理では、8×8画素単位の矩形(ブロック単位)で圧縮処理を行うことが決められているため、撮像素子からのデータ入力の順番がその処理に適合することはほとんど有り得ない。
【0004】
一方、高画質なデジタルカメラでは、カメラ内部での補間処理を行わず、生データを記録しておいて、後にソフトウェアにより補間処理を行うものもあり、この記録方法はRAW記録と呼ばれている。RAW記録の場合、補間前の生データに対して適当な符号化を行ってファイルサイズを小さくする技術がしばしば用いられる。また、この符号化は、隣接するデータ間では相関が強いことを利用して、差分を符号化するのが一般的である。この場合、一旦バッファメモリに待避させた非圧縮の生データを改めて符号化するという処理が行われる。これは、RAW記録を行うデジタルカメラであっても、付属のモニタによって記録画像を確認したり、サムネールを作成したりする必要があるためである。すなわち、画像確認のためのデータ作成や、サムネール作成のために補間処理を行わねばならず、補間回路の処理対象となりうるフレームデータを一旦はバッファメモリ上に展開する必要が生じるためである。また、データ間の相関を利用しないで、単純に非可逆な非線型圧縮(例えば、γ補正による圧縮)等によりデータ圧縮を行うものであればバッファメモリにおけるデータの展開は不要となるが、階調が失われて画質が劣化するといった問題が生じてしまう。
【0005】
因みに、特許文献1では、要求される処理速度と品質によって処理経路を動的に変更する技術が提案されている。また、特許文献2では、バッファメモリへ格納されたデータに対して効率よく矩形処理を行う手法が提案されている。
【0006】
【特許文献1】
特開2001−45427号公報
【特許文献2】
特開2000−354193号公報
【0007】
【発明が解決しようとする課題】
上述したように、従来の画像データ処理装置では、撮像素子から入力される大量の生データ(非圧縮データ)をバッファメモリに待避する必要があるため、バッファメモリを有効に利用して補間処理等を行うことができなかった。
【0008】
また、上記特許文献1,2においても、容量の大きなRAWデータを一旦はバッファメモリに待避しなければならないといった問題には言及されておらず、その問題を解決するには至っていない。
【0009】
本発明は上記問題点を解決するためになされたものであって、その目的は、画像データを記憶するためのメモリを有効的に使用して処理能力を向上することができる画像データ処理装置を提供することにある。
【0010】
【課題を解決するための手段】
図1は、本発明の原理説明図である。すなわち、画像データ処理装置10は、画像入力手段11と、符号化手段12と、記憶手段13と、復号化手段14と、補間手段15とを備える。画像入力手段11には、撮像素子から画像データが入力される。符号化手段12では、画像入力手段11から送出される画像データについて、隣接する撮像素子間のデータの相関を利用して符号化処理が行われる。なお、この符号化処理においては、例えば、隣接するデータの差分を求めてその差分を符号化することでデータ圧縮が行われる。また、画像データが複数の種類に区別される場合には、同一種別の近隣データ間で差分が求められ、その差分が符号化される。そして、符号化手段12により符号化されたデータが記憶手段13に格納される。復号化手段14では、記憶手段13から符号データを取り込んで該データの復号化処理が行われ、該復号化手段14により復号化された画像データが補間手段15に入力される。その補間手段15によって、画像データの補間処理が行われて画像表示に必要なデータが生成される。この場合、記憶手段13に対して、非圧縮の大容量のデータを記憶するのではなく、符号化により圧縮したデータが記憶されるので、記憶手段13を有効活用することが可能となり、画像データ処理装置10の処理能力が向上される。
【0011】
また、撮像素子からの画像データが画像入力手段11を介して符号化手段12に順次入力される。符号化手段12では、水平方向の相関のみを使用してライン毎に独立して画像データの符号化が行われる。その符号化に際して、水平ラインでの先頭の符号データの書き込み位置情報(アドレス)が書き込み位置保持手段24により記憶手段13に記憶される。この書き込み位置情報の記憶は、各ラインの先頭データを符号化する度に行われ、書き込み位置はライン番号に応じて設定された位置である。
【0012】
さらに、読み出し位置保持手段34により、記憶手段13に記憶した位置情報(アドレス)が読み出され、その位置情報が参照されることにより、該記憶手段13に格納されている符号列からラインの先頭の符号データが特定される。
【0013】
このように構成することで、任意のラインの先頭から復号化処理を行うことが可能となる。その結果、画像の全体ではなく、画像をトリミングして表示する場合に、復号化処理が迅速に行われる。
【0014】
図2に示すように、第1記憶手段43には、復号化手段14により復号されたデータが画素の種別毎に記憶される。この第1記憶手段43に記憶すべきデータは指示手段により指示される。また、復号化手段14に入力される符号データの位置情報が監視手段47により監視され、第2記憶手段45には、第1記憶手段43の記憶データに対応する符号データの位置情報が記憶される。この場合、第1及び第2記憶手段43,45に記憶した情報を用いれば、第2記憶手段45の位置情報により復号を再開すべき位置を特定し、第1記憶手段43のデータを使用して、ライン途中の任意の位置から復号を再開することが可能となる。
【0015】
さらに、第1及び第2記憶手段43,45を複数備えることにより、各記憶手段43,44に複数ライン分のデータと位置情報が記憶される。これにより、JPEG等の矩形処理を実現することが可能となる。
【0016】
【発明の実施の形態】
(第1実施形態)
以下、本発明を具体化した第1実施形態を図面に従って説明する。
【0017】
図3は、本実施形態の画像データ記録装置10を示すブロック回路図である。なお、この画像データ記録装置10は、例えば、デジタルカメラに搭載され、撮影した画像のデータを記録する。
【0018】
画像データ記録装置10は、画像データ入力部11、符号化部12、バッファメモリ13、復号化部14、補間部15、レジスタ16、CPU17、及び記録媒体18を備え、それぞれバス19を介して情報の授受が可能に接続されている。なお、本実施形態の画像データ記録装置10では、画像データ入力部11、符号化部12、復号化部14、補間部15、レジスタ16、及びCPU17が1チップの半導体集積回路(LSI)上に形成されており、該LSIの外付け部品としてバッファメモリ13及び記録媒体18が接続されている。また、バッファメモリ13及び記録媒体18へのデータ入出力は、16ビットのバス幅のデータバスを介して行われる。
【0019】
画像データ入力部11には、図示しない撮像素子からの画像データが入力される。本実施形態において、撮像素子(具体的には、例えばCCDセンサ)に設けられるカラーフィルタは、図4に示すように原色ベイヤー配列のものを使用しており、全画素読み出し方式(プログレッシブ・スキャン)により、各画素に対応する画像データが順次入力される。具体的には、複数の水平ラインについて上から下に順次走査される。また、1水平走査期間において、図4における左端の素子のデータから順次入力される。
【0020】
画像データ入力部11は、撮像素子からの画像データに基づいて、画質制御に必要となる明るさや色合いに関する色情報の抽出処理を行うとともに、その処理後の画像データを符号化部12に送出する。なお、図4の第1ライン、第3ライン等の奇数ラインについては、赤色に関する色情報(データR)と緑色に関する色情報(データGr)が抽出される。また、第2ライン、第4ライン等の偶数ラインについては、緑色に関する色情報(データGb)と青色に関する色情報(データB)とが抽出される。
【0021】
符号化部12は、画像データを受け取ると、該画像データを順次符号化することでデータ圧縮を行う。この符号化は、近傍に位置する画素間の情報は相関が深いことを利用して行う。具体的には、同一種別(各色別)の隣り合う画素間における差分を算出し、その算出した差分に対して可変長の符号を割り当てる方法により符号化を行う。なお、符号化処理に用いる可変長符号はレジスタ16に格納されている。
【0022】
符号化部12には、先ず、第1ラインのデータR0,Gr0,R1,Gr1,…が順に入力されるため、データ圧縮の手順としては、これらの入力データから連続する同一種別のデータ間での差分(具体的には、Rn−Rn-1,Grn−Grn-1)を算出する。この際、ライン先頭のデータR0,Gr0については、差分を取るための対象データが存在しないため、固定値と差分を取る必要があり、本実施形態では、その固定値を「0」とする。すなわち、算出結果として得られる差分データは順に、(R0−0),(Gr0−0),(R1−R0),(Gr1−Gr0),…となる。
【0023】
なおここで、CPU17が適当な固定値をレジスタ16に設定するよう構成してもよく、その構成によりデータの圧縮率の向上を図ることが可能となる。
また、符号化部12は、演算結果(差分データ)に対して可変長符号を割り当てることでデータを圧縮し、その符号を16ビットのデータに詰めていき、16ビットのデータ単位でバッファメモリ13に格納する。
【0024】
そして、第1ライン目に関するデータの符号化が終了すると、次の第2ラインの画像データGb0,B0,Gb1,B1,…が順に入力されてくるので、符号化部12は、上記と同じ手順で符号化を行いバッファメモリ13にデータを格納する。この手順を1フレームのライン数分繰り返すことで、撮像素子から取り込まれた画像データが圧縮された状態でバッファメモリ13に取り込まれることとなる。
【0025】
そして、バッファメモリ13に1フレーム分の画像データの取り込みが完了した時点で、該画像データが外部の記録媒体18に書き込まれて画像記録が行われる。
【0026】
また、本実施形態の画像データ記録装置10においては、取り込んだ画像を確認するためのモニタを備え、その画像確認のための動作が必要となる。具体的には、モニタに表示可能なデータを作成するために、バッファメモリ13に一旦貯えたデータを読み出して補間処理を行う必要がある。
【0027】
この場合、バッファメモリ13の格納データは可変長符号化されたデータであり、その格納データを対象として補間処理を行う必要があるため、復号化部14がバッファメモリ13から符号データを読み出して該データの復号を行う。そして、復号化部14が、その復号後の画像データを補間部15へ送出するようにしている。
【0028】
復号化部14で行われる復号化処理としては、符号化部12で行われる符号化処理の逆の処理である。すなわち、復号化部14は、バッファメモリ13から取り込んだ符号データを差分データにデコードし、その差分データを順次加算する。各ラインの先頭データについては、差分を算出するときに用いた固定値(具体的には、「0」)を加算することになる。
【0029】
また、補間部15は、その復号化後の画像データに対して補間処理を行い、モニタに表示可能なデータを作成して該データをモニタへ送出する。この補間処理では、画像データ入力部11で抽出した色情報(各々1色分の色情報)について、その色情報以外の残り2色の情報を、周辺画素の色情報から推定して演算する。これにより、3原色の色情報を含むデータが生成される。
【0030】
図5は、符号化部12の具体的な構成を示すブロック回路図である。
符号化部12は、シフトレジスタ21、減算器22、符号化ロジック回路23、アドレスカウンタ24、及びセレクタ25,26を備える。
【0031】
符号化部12において、画像データ入力部11から送出された画像データがシフトレジスタ21に順次格納される。シフトレジスタ21は、画像データ(16ビットの入力データ)を格納するための2つのレジスタ21a,21bを備える。そして、シフトレジスタ21は、入力データを初段のレジスタ21aにラッチするとともに、後段のレジスタ21bにデータをシフトする。例えば、シフトレジスタ21が、初段のレジスタ21aに第1ラインの先頭データR0を保持しているときに、2番目のデータGr0が画像データ入力部11から入力されると、該データGr0を初段のレジスタ21aにラッチするとともに、データR0を後段のレジスタ21bにシフトする。
【0032】
減算器22には、画像データ入力部11からのデータと、シフトレジスタ21の後段のレジスタ21bに保持されているデータとが入力される。減算器22はそれらデータを用いて、各データ間の差分を演算する。ここで、シフトレジスタ21における後段のレジスタ21bにデータR0が保持され、初段のレジスタにデータGr0が保持されており、さらに、画像データ入力部11からデータR1が入力される場合、データR1からデータR0が減算されて差分データ(R1−R0)が算出される。このように、減算器22では、同一種別の画素について、隣り合う画素間の差分データが算出される。
【0033】
符号化ロジック回路23には、減算器22の算出結果である差分データが入力される。符号化ロジック回路23は、差分データに対応する符号を割り当てる。ここでは、レジスタ16に格納された可変長符号の符号表を参照することで差分データの符号化がなされる。従って、符号化ロジック回路23において割り当てられる各符号のデータ長は異なるため、符号化ロジック回路23は、符号した各符号データを16ビットのデータとして順次詰めていき、16ビット単位のデータとして出力する。
【0034】
アドレスカウンタ24は、バッファメモリ13にデータの書き込みを行うためのアドレスを発生するカウンタである。なお、第1ラインの先頭符号の書き込みをする際には、外部から入力される初期アドレスがアドレスカウンタ24に設定される。そして、符号化ロジック回路23から16ビットのデータが出力される度に、アドレスカウンタ24のカウント値が「1」ずつカウントアップされる。
【0035】
セレクタ25は、CPU17から入力される制御信号S1に基づいて、アドレスカウンタ24で保持されているカウンタ値(アドレス値)と、外部から入力されるアドレス値とのいずれか一方を選択的にバッファメモリ13に出力する。
【0036】
また、セレクタ26は、CPU17から入力される制御信号S2に基づいて、アドレスカウンタ24のアドレス値と、符号化ロジック回路23から出力されるデータとのいずれか一方を選択的にバッファメモリ13に出力する。
【0037】
バッファメモリ13では、セレクタ25から入力されるアドレス値に基づいて、書き込み対象となるアドレスが指定され、その指定されたアドレスにセレクタ26からのデータが書き込まれる。
【0038】
本実施形態の符号化部12は、1ライン分の画像データに関する符号化処理を開始するのに先立って、シフトレジスタ21における各レジスタ21a,21bのデータを「0」にクリアする。これにより、各ラインの先頭データの差分を算出する際には、該先頭データから減算する固定データが「0」になる。
【0039】
このように構成した符号化部12において、減算器22は、同一種別の隣り合う画素について、各画素から得られる画像データ間の差分データを常に出力している。従って、符号化ロジック回路23では、減算器22から入力されてくる差分データに対して、順次符号の割り当てを行いながら16ビットのデータに詰めてデータ出力を行う。これにより、一連の符号化処理が実施される。そして、符号化ロジック回路23から出力されたデータは、セレクタ26を介してバッファメモリ13に書き込まれる。
【0040】
また、各ラインの符号列について先頭の符号データをバッファメモリ13に記憶する際には、そのアドレス(位置情報)を記憶するよう構成している。つまり、バッファメモリ13には、符号化されたデータを記憶するデータ記憶領域とデータのアドレスを記憶するアドレス記憶領域とが設けられている。そして、先頭の符号データをデータ記憶領域に記憶する際には、それに先立ってアドレスカウンタ24が保持しているアドレス値をアドレス記憶領域に書き込むための処理が行われる。
【0041】
具体的に、符号化ロジック回路23が第1ラインの先頭データR0を符号化しそのデータを書き込む場合、先ず、アドレスカウンタ24に、外部から入力される初期値が設定される。そして、セレクタ25は、制御信号S1に基づいて外部から入力されるアドレス値をバッファメモリ13に出力し、セレクタ26は制御信号S2に基づいてアドレスカウンタ24に設定した初期値のカウント値(アドレス値)をバッファメモリ13に出力する。ここで、外部からセレクタ25に入力されるアドレス値は、バッファメモリ13におけるアドレス記憶領域を示す値である。また、アドレスカウンタ24に設定される初期値は、バッファメモリ13におけるデータ記憶領域の先頭アドレスを示す値である。従って、バッファメモリ13には、外部から入力されたアドレス値により指定されるアドレス記憶領域に、データ記憶領域の先頭アドレス(第1ラインの符号列を記憶するためのアドレス)が記憶される。
【0042】
そのアドレスの記憶後、符号化ロジック回路23で符号化したデータを書き込む場合、セレクタ25は、制御信号S1に基づいてアドレスカウンタ24のカウント値(アドレス値)をバッファメモリ13に出力し、セレクタ26は、制御信号S2に基づいて符号化ロジック回路23の符号データをバッファメモリ13に出力する。従って、バッファメモリ13には、アドレスカウンタ24のアドレス値により指定されるデータ記憶領域に、符号データが記憶される。以降は、符号化ロジック回路23から符号データが順次出力され、そのデータ出力の都度、アドレスカウンタ24のカウント値が「1」ずつインクリメントされる。そして、アドレスカウンタ24のカウント値で指定されるアドレスに符号化ロジック回路23の出力データ(符号データ)が順次記憶されていく。
【0043】
また、ラインの最終データを処理したときに16ビットに満たないデータが残った場合、符号化ロジック回路23では、その残りの部分に「0」又は「1」を詰めてデータを出力する。そして、そのデータの書き込みが行われ、第1ラインの画像データの符号化処理が終了される。
【0044】
その後、第2ライン以降の画像データも同様に符号化処理が実施され、該符号化処理は1フレームのライン数分だけ繰り返し実施される。その結果、1フレームに対応する全ての画像データが符号化されバッファメモリ13に格納される。なお、第2ライン以降においても、ライン先頭の画像データを処理する場合、セレクタ25は、制御信号S1に基づいて外部から入力されるアドレス値をバッファメモリ13に出力し、セレクタ26は、制御信号S2に基づいてアドレスカウンタ24のアドレス値をバッファメモリ13に出力する。これにより、バッファメモリ13のアドレス記憶領域には、各ラインの符号列を格納している先頭アドレスが記憶される。
【0045】
図6は、復号化部14の構成を示すブロック回路図である。
復号化部14は、復号化ロジック回路31、加算器32、シフトレジスタ33、アドレスカウンタ34、及びセレクタ35を備える。
【0046】
復号化部14において、復号化ロジック回路31は、バッファメモリ13から符号データを読み出してデータの復号を行い、その復号により得られた差分データを出力する。加算器32は、復号化ロジック回路31から出力される差分データとシフトレジスタ33の出力データに基づいて、差分をとる前の画像データに組み立て直すための加算を行う。シフトレジスタ33は、加算器32から入力されるデータを初段のレジスタ33aにラッチするとともに後段のレジスタ33bにデータをシフトし、その後段のレジスタ33bのデータを前記加算器32に戻す。
【0047】
アドレスカウンタ34は、バッファメモリ13におけるデータの読み出しアドレスを発生するカウンタである。セレクタ35は、CPU17から入力される制御信号S3に基づいて、アドレスカウンタ34で保持されているアドレス値と、外部から入力されるアドレス値とのいずれか一方を選択的にバッファメモリ13に出力する。
【0048】
上述したように、本実施形態では、バッファメモリ13に、符号データに加えて、各ラインの符号列の先頭アドレスが記憶されている。そして、復号化部14において、先頭アドレスを参照することにより、任意のラインから復号化処理を開始することが可能となっている。
【0049】
具体的に、Lライン目の符号列の先頭から復号化処理を開始する場合、先ず、セレクタ35は、制御信号S3に基づいて外部から入力されるアドレス値をバッファメモリ13に出力する。そして、アドレスカウンタ34は、そのアドレス値に応じてバッファメモリ13から読み出されたデータを取り込む。ここで、外部から入力されるアドレス値は、復号の対象とするLライン目の符号列の先頭アドレスを格納しているアドレスを指定する。つまり、アドレスカウンタ34には、Lライン目の符号列の先頭アドレスが格納される。なお、各ラインに対応した先頭アドレスを格納するためのアドレスは、システムとして予め設定されている。その設定情報は、固定値としてもよいし、CPU17のアクセス可能なメモリ領域上に記憶させる構成としてもよい。
【0050】
ここで、セレクタ35は、制御信号S3に基づいて、アドレスカウンタ34から出力されるアドレス値をバッファメモリ13に出力する。これにより、バッファメモリ13において、Lラインの符号列を格納している先頭アドレスから符号データが読み出される。また、バッファメモリ13からデータを読み出す度に、アドレスカウンタ34が「1」ずつインクリメントされ、そのアドレスカウンタ34のカウント値がセレクタ35を介して、次の読み出し対象のアドレス値としてバッファメモリ13に出力される。その結果、Lライン目の符号データがバッファメモリ13から順次読み出されることとなる。
【0051】
バッファメモリ13から読み出された符号データは、復号化ロジック回路31で復号されて、同一種別の隣接する画素間の差分データが復元される。この差分データは、加算器32において、同一種別の直前の画像データに加算されて元の画像データとして復元される。これにより、撮像素子からの画像データを完全に復元することが可能となり、その復元した画像データが加算器32から後段の補間部15へ順次送出される。
【0052】
ここで、加算器32の出力データは、補間部15へ入力されるとともに、シフトレジスタ33にも入力される。シフトレジスタ33において、そのデータが入力されると、該データを初段のレジスタ33aにラッチするとともに、初段のレジスタ33aに保持していたデータを後段のレジスタ33bにシフトする。シフトレジスタ33は、そのシフト結果として、後段のレジスタ33bのデータを加算器32に戻す。
【0053】
このように構成することで、シフトレジスタ33から加算器32に戻されるデータは、復号化ロジック回路31で復号された差分データを加算すべき直前の画像データになる。また、1ライン分の画像データに関する復号化処理を開始するのに先立って、シフトレジスタ33における各レジスタ33a,33bのデータを「0」にクリアする。こうすることで、各ラインの先頭の画像データを復元するのに必要となる固定値の「0」が自動的にシフトレジスタ33から加算器32に入力されることとなる。
【0054】
このように、画像データ記録装置10を構成すると、バッファメモリ13に書き込んだ符号データを、任意のラインから読み出しで復号することが可能となる。これにより、補間部15においては、バッファメモリ13に取り込んだ全画像データを補間処理の対象とするのではなく、必要に応じてトリミングした画像データを対象として補間処理が実施される。
【0055】
撮像素子から入力される各画像データは、水平方向のみではなく、垂直方向の近隣画素についても強い相関を持つ。従って、ラインの先頭データと固定値との差分をとるのではなく、垂直方向に存在する同一種別の近傍画素、すなわち、2ライン前の画像データと差分をとることで圧縮率をより高めることが可能となる。しかしながら、本実施形態では、その垂直方向の相関を立ち、水平方向のみの相関を利用した符号化を行った上で、各ラインの先頭符号のアドレスを記憶することにより、簡単に任意のラインから復号を開始することを可能としている。
【0056】
また従来、符号化による圧縮、特に、近隣画像の相関を利用した符号化による圧縮をした場合では、トリミングした画像データを補間処理の対象とするときにも、復号化の際には、符号データの先頭から順次復号を行っていかねばならないといった問題があった。そのため、復元した画像データに対して、公知の画像圧縮技術であるJPEG圧縮の矩形処理を行う場合には、冗長処理が発生してしまう。
【0057】
また、JPEG圧縮の場合、リスタートマーカと呼ばれるコードが符号列に一定のインターバルで挿入されており、符号列の中からリスタートマーカのコードをサーチすることで、一定のインターバル単位で画像データを切り出すことが可能である。しかし、リスタートマーカをサーチする処理には相当な時間がかかってしまう。
【0058】
これに対して、本実施形態では、各ラインの先頭符号のアドレスを記憶し、それを参照することで任意のラインから復号が簡単に開始される。よって、JPEG圧縮の矩形処理を行う場合にも、冗長処理が発生することが回避される。
【0059】
以上記述したように、上記実施形態によれば、下記の効果を奏する。
(1)バッファメモリ13に対して非圧縮の大容量のデータを待避する必要がないので、バッファメモリ13を有効活用することができる。これにより、バッファメモリ13の容量を削減することが可能となる。また、バッファメモリの容量を変更しない場合には、デジタルカメラにおける連続処理可能な画像数を増すことができる。つまり、画像データ記録装置10を用いることにより、デジタルカメラのシステムコストと処理能力の向上を図ることができる。
【0060】
(2)任意のラインの先頭から復号化処理を行うことが可能であるため、画像をトリミングする場合の復号化処理を迅速に行うことができる。また、JPEG圧縮の矩形処理を行う場合にも、第1ラインから符号化を行う必要がなくなることから、従来技術のように冗長処理が発生することを回避できる。
【0061】
(第2実施形態)
上記第1実施形態において、復号化部14で復号された画像データは後段の補間部15に送られて補間処理が行われる。補間部15にはラインメモリ(図示略)が設けられており、そのラインメモリを用いて補間処理が行われる。このラインメモリを必要とする理由は、所定の画素に着目して補間処理をする際に、その着目した画素の上下のラインにある画素の色情報を使用するからである。
【0062】
具体的には、図4に示すベイヤー配列の場合、第1ライン、第3ライン等の奇数ラインでは、赤色のデータRと緑色のデータGrは存在するが、青色のデータBは存在しない。また、第2ライン、第4ライン等の偶数ラインでは、緑色のデータGbと青色のデータBは存在するが赤色のデータRは存在しない。そして、補間処理では、全ての画素について、赤・緑・青のデータのうち欠落した情報を補って赤・緑・青の色情報の揃ったデータ化が行われる。それ故、単一ラインの画像データだけでは、各色情報を補間処理で補うことができない。
【0063】
従って、最も原始的な補間方法、例えば、欠落した情報を近傍画素の情報により埋める最近傍法を用いる場合においても、少なくとも1ライン分の画像データを記憶させ、2ラインの画像データを一度に参照する必要がある。この最近傍法を採用する場合であれば、1ライン分のデータ記憶で済むが、より高精度な補間を実現するためには参照範囲を広げる必要があり、高画質なデジタルカメラなどにおいては、10数ラインもの情報を用いて補間処理が行われている。そのため、補間部15を構成する回路としてラインメモリを大量に搭載する必要が生じ、回路規模を増大させる原因になっている。
【0064】
そこで、図7に示すように、ラインメモリのサイズを、全画像の水平サイズ(水平ライン上にある全画素数のデータを記憶するためのサイズ)S10よりも小さなサイズS20とすることで、回路規模の増大を抑制している。そして、全画像を処理する際には、ラインメモリのサイズS20で横幅が設定される短冊状の領域(Block1〜BlockX)に分割して補間処理を行う。具体的な処理の順番としては、図7におけるBlock1のLine1〜LineY,Block2のLine1〜LineY,…,BlockXのLine1〜LineYとなる。従って、この順番で補間部15にデータを供給する必要がある。
【0065】
図8に示す本実施形態の復号化部41は、上述した順序で補間部15にデータを供給可能に構成されている。なお、図8において、第1実施形態の復号化部14と同等の構成については同一の記号を付している。
【0066】
本実施形態の復号化部41は、復号化ロジック回路31、加算器32、シフトレジスタ33,43、アドレスカウンタ34、セレクタ35,44、データカウンタ42、レジスタ45、及びデクリメンタ46を備える。すなわち、復号化部41は、第1実施形態の復号化部14との相違点として、データカウンタ42、シフトレジスタ43、セレクタ44、レジスタ45、デクリメンタ46が追加されている。以下、第1実施形態との相違点を中心に説明する。
【0067】
データカウンタ42は、各領域(Block1〜BlockX)の幅情報を記憶しており、読み出しデータをカウントしたカウント値とブロックの幅情報とに基づいて許可信号をシフトレジスタ43に出力する。具体的には、図7に示す各領域の右端にあるデータRとデータGとを復号する際に、データカウンタ42は許可信号をシフトレジスタ43に出力する。このとき、シフトレジスタ43は、その許可信号に応答して動作し、加算器32から出力されるデータRとデータGとを順次ラッチすることで、各データR,Gを初段のレジスタ43aと後段のレジスタ43bとに記憶する。
【0068】
復号化ロジック回路31は、読み出しデータである16ビットの符号データを復号する際に、その16ビットのうちで復号されずに残っているビット数を表す4ビットの履歴情報を記憶しており、その履歴情報を使用してデータの復号を行っている。ここで、4ビットの履歴情報が0000であった場合には、取り込んだ16ビットの符号データのうち、復号されずに残っているビットがないことを意味し、履歴情報が0001〜1111である場合、その数値が復号されずに残っているビット数を示す。
【0069】
そして、復号化ロジック回路31は、各ブロックの右端にあるデータRとデータGとを復号したとき、4ビットの履歴情報をレジスタ45に送出してその情報をレジスタ45に記憶させる。またこのとき、アドレスカウンタ34は、アドレス値をレジスタ45に送出してそのアドレス値をレジスタ45に記憶させる。デクリメンタ46は、レジスタ45に記憶されたアドレス値を取り込み、アドレス値から「1」を減算し、その減算したアドレス値を出力する。
【0070】
セレクタ35は、CPU17から入力される制御信号S4に基づいて、アドレスカウンタ34からのアドレス値と、レジスタ45からのアドレス値と、デクリメンタ46からのアドレス値と、外部から入力されるアドレス値とのいずれか1つを選択的にバッファメモリ13に出力する。また、セレクタ44は、CPU17から入力される制御信号S5に基づいて、シフトレジスタ33からのデータとシフトレジスタ43からのデータとのいずれか一方を選択的に加算器32に出力する。
【0071】
このように構成した復号化部41において、Block1の復号化処理を終えた後、Block2のLine1から復号を再開する場合、レジスタ45の記憶情報から先頭の符号アドレスを特定して符号データを読み出す。ここで、レジスタ45の記憶情報は、既に復号が終了したBlock1の画素(右端にある画素)の右隣の画素に対する符号位置を示している。例えば、レジスタ45において、復号化ロジック回路31から記憶した4ビットの履歴情報が0000を示していた場合、アドレスカウンタ34から記憶したアドレス値が次の画素に対する符号アドレスになる。従って、セレクタ35は、制御信号S4に基づいて、レジスタ45から出力されるアドレス値をバッファメモリ13に出力する。これにより、そのアドレス値に対応する有効な符号データをバッファメモリ13から読み出す。
【0072】
また、レジスタ45に記憶されている4ビットの履歴情報が0000でない場合には、既に、次の画素に対する符号データが一部取り込まれていることを意味する。従って、セレクタ35は、制御信号S4に基づいて、デクリメンタ46から出力されるアドレス値をバッファメモリ13に出力する。これにより、そのアドレス値に対応する有効な符号データをバッファメモリ13から読み出す。
【0073】
ここで、Block2の符号データはライン途中にある符号データであるが、既に復号化処理を行ったBlock1に続く領域のデータであるので、レジスタ45の記憶情報に基づいて、Block2の画素に対する符号データの位置(アドレス)を特定することができる。つまり、復号化ロジック回路31は、レジスタ45から取得した4ビットの履歴情報を使用することで、Block2の先頭の符号データから復号を再開する。
【0074】
そして、その符号データの復号を再開する際には、Block2における先頭の2画素について、シフトレジスタ43に記憶したデータを用いる。具体的には、シフトレジスタ43は、データカウンタ42から出力される許可信号に応答して動作し、加算器32からデータが出力されると、各レジスタ43a,43bに記憶している各データ(Block1の右端にあるデータRとデータG)を順次出力する。このとき、セレクタ44は、制御信号S5に基づいてシフトレジスタ43からのデータを加算器32に出力する。加算器32は、そのデータを復号化ロジック回路31から出力される差分データに加算し、その加算結果により元の画像データに復元する。そして、加算器32はその画像データを補間部15及びシフトレジスタ33,43に出力する。
【0075】
また、Block3以降の復号化処理についても同様に既に復号を終えた領域に続く場合であれば、ライン途中からでも復号の再開が可能である。
本実施形態において、データカウンタ42が指示手段に相当し、シフトレジスタ43が第1記憶手段に相当する。また、復号化ロジック回路31とアドレスカウンタ34が監視手段に相当し、レジスタ45が第2記憶手段に相当する。
【0076】
なお、復号化部41において、シフトレジスタ43及びレジスタ45は、複数ライン数分用意されているが便宜上、図示を省略している。例えば、補間後のデータに対して、直接JPEGのような矩形処理を行う場合には、8×8画素のブロック単位で処理が行われる。この場合には、シフトレジスタ43及びレジスタ45を8ライン分設け、補間回路の処理方式を加味して、JPEG処理に必要な8ラインを常に出力するに足るライン数(8ライン+補間の参照ライン数−1)の記録を残すように構成する。
【0077】
以上記述したように、上記実施形態によれば、下記の効果を奏する。
(1)バッファメモリ13に対して非圧縮の大容量のデータを待避する必要がない。さらに、シフトレジスタ43及びレジスタ45が複数用意されることにより、バッファメモリ13の格納データを使用したJPEG等の矩形処理の実現についても解決することができる。
【0078】
上記実施の形態は、次に示すように変更することもできる。
・上記実施形態において、全てのラインにおける先頭符号のアドレスを記憶して、任意のラインから符号化処理を開始できる構成としたが、これに限定されるものではない。システムとしてトリミングを行うためのラインが予め設定されるものでは、トリミングに必要なラインの先頭符号のアドレスのみを記憶する構成としてもよい。またこの場合、先頭符号のアドレスを記憶する必要がない各ラインにおける先頭データの符号化に際しては、固定値との差分をとるのではなく、2ライン前の画素のデータとの差分を取る処理(垂直方向の相関を利用した符号化処理)を行うようにしてもよい。
【0079】
・上記実施形態では、各ラインの符号列の先頭アドレスと符号データとをバッファメモリ13に記憶する構成としたが、符号データを記憶するバッファメモリ13とは別の記憶手段(例えば、レジスタ16)に先頭アドレスを記憶する構成としてもよい。
【0080】
・符号化部12における符号化処理は、画像データの差分を算出して符号化するものであったが、それ以外に、FFT(フーリエ変換)やDCT(離散コサイン変換)等を用いて符号化するものでもよい。要は、隣接する撮像素子間のデータの相関を利用して符号化処理を行うものであればよい。
【0081】
・全画素読み出し方式のスキャン(プログレッシブ・スキャン)を行う撮像素子に具体化したが、インタレース方式のスキャンを行う撮像素子に具体化してもよい。また、撮像素子としては、CCDセンサ以外に、CMOSセンサを用いてもよい。
【0082】
・画像データ記録装置10は、バッファメモリ13に格納した符号データを外部の記録媒体18に記憶する構成であるが、補間部15にて補間処理が施された補間後のデータを記録媒体18に記録する構成としてもよい。
【0083】
・上記実施形態では、外部の記録媒体18に画像データを記録する画像データ記録装置10に具体化するものであったが、これ以外に、記録機能を省略してモニタに表示するための補間処理を行う画像データ処理装置に具体化してもよい。
【0084】
以上の様々な実施の形態をまとめると、以下のようになる。
(付記1)撮像素子からの画像データを入力する画像入力手段と、画像データを一旦格納する記憶手段と、前記記憶手段に格納した画像データに基づいて補間処理を行う補間手段とを備えた画像データ処理装置であって、
前記画像入力手段から送出される画像データについて、隣接する前記撮像素子間のデータの相関を利用して符号化処理を行い、符号化したデータを前記記憶手段に格納する符号化手段と、
前記記憶手段からデータを取り込んで該データの復号化処理を行い、復号化したデータを前記補間手段に入力する復号化手段と
を備えたことを特徴とする画像データ処理装置。
(付記2)前記符号化手段は、前記撮像素子間の画像データの差分を求め、該差分を符号化することでデータ圧縮し、
前記復号化手段は、前記記憶手段から取り込んだ符号データを前記差分に復号し、その差分を用いて元の画像データに復元することを特徴とする付記1に記載の画像データ処理装置。
(付記3)前記画像入力手段は、前記画像データから画質制御に必要な色情報を抽出し、該抽出した色情報を含む画像データを前記符号化手段に送出することを特徴とする付記1に記載の画像データ処理装置。
(付記4)前記補間手段は、前記画像入力手段が抽出した色情報について、所定画素の色情報以外の色情報を、該所定画素の周辺画素の色情報から推定して演算する補間処理を行うことを特徴とする付記3に記載の画像データ処理装置。
(付記5)前記記憶手段に格納したデータ又は前記補間手段にて補間処理が施された補間後のデータを記憶する記録媒体を備えることを特徴とする付記1に記載の画像データ処理装置。
(付記6)撮像素子からの画像データが前記画像入力手段を介して順次入力され、前記符号化手段は、水平方向の相関のみを使用してライン毎に独立して画像データの符号化を行うものであり、
前記水平ラインの先頭の符号データについて、その符号データの書き込み位置情報を記憶する書き込み位置保持手段を備えたことを特徴とする付記1に記載の画像データ処理装置。
(付記7)前記符号化手段は、前記撮像素子間の画像データの差分を求め、該差分を符号化することでデータ圧縮するものであり、各ラインにおける先頭の画像データの差分を求める際には、その差分を求める初期値として固定値を用いることを特徴とする付記6に記載の画像データ処理装置。
(付記8)前記書き込み位置情報を読み出し、その位置情報を参照することにより、該記憶手段に格納されている符号列からラインの先頭の符号データを特定する読み出し位置保持手段を備えたことを特徴とする付記6に記載の画像データ処理装置。
(付記9)前記復号化手段により復号されたデータを画素の種別毎に記憶するための第1記憶手段と、
前記第1記憶手段に対して記憶すべきデータを指示する指示手段と、
前記復号化手段に入力される符号データの位置情報を監視する監視手段と、
前記第1記憶手段に記憶したデータに対応する符号データの位置情報を記憶するための第2記憶手段と
を備えたことを特徴とする付記1〜8のいずれかに記載の画像データ処理装置。
(付記10)前記第1及び第2記憶手段を複数備え、各記憶手段に複数ライン分の前記データ及び位置情報を記憶するようにしたことを特徴とする付記9に記載の画像データ処理装置。
(付記11)前記第1記憶手段に記憶したデータと、前記第2記憶手段に記憶した位置情報とに基づいて、ライン途中から復号化処理を再開することを特徴とする付記9又は10に記載の画像データ処理装置。
【0085】
【発明の効果】
以上詳述したように、本発明によれば、画像データ処理装置において、メモリを有効的に使用することにより、処理能力を向上することができる。
【図面の簡単な説明】
【図1】 本発明の原理説明図である。
【図2】 復号化手段を示すブロック回路図である。
【図3】 第1実施形態の画像データ記録装置のブロック回路図である。
【図4】 原色ベイヤー配列のパターンを示す説明図である。
【図5】 符号化部を示すブロック回路図である。
【図6】 復号化部を示すブロック回路図である。
【図7】 補間部での処理単位を示す説明図である。
【図8】 第2実施形態の復号化部を示すブロック回路図である。
【符号の説明】
10 画像データ処理装置としての画像データ記録装置
11 画像入力手段としての画像データ入力部
12 符号化手段としての符号化部
13 記憶手段としてのバッファメモリ
14 復号化手段としての復号化部
15 補間手段としての補間部
24 書き込み位置保持手段としてのアドレスカウンタ
31 監視手段を構成する復号化ロジック回路
34 読み出し位置保持手段としてのアドレスカウンタ
42 指示手段としてのデータカウンタ
43 第1記憶手段としてのシフトレジスタ
45 第2記憶手段としてのレジスタ
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an image data processing apparatus that processes image data captured from an image sensor such as a CCD or CMOS sensor.
[0002]
In recent years, the number of recording pixels of a digital camera has been steadily increasing, and the processing load tends to become heavier accordingly. For this reason, data processing systems in digital cameras often have a buffer memory for the purpose of increasing the continuous shooting speed. In this system, it is desired to use the buffer memory as effectively as possible in order to increase the processing capacity as much as possible, and the technology to avoid the exclusive use of the buffer by the intermediate data generated during the data processing becomes an important issue. ing.
[0003]
[Prior art]
In a digital camera, for example, when recording data of a monolithic image sensor arranged in a primary color Bayer array, raw data input from the image sensor is temporarily stored in a buffer memory, and then the data is read from the memory. Interpolation processing for versioning and JPEG compression for file compression are performed. In this case, ideally, if the input data from the image sensor is converted into JPEG data that is data to be recorded without using the buffer memory, and the conversion result can be stored in the buffer memory, the buffer memory is It is possible to make the most effective use. However, the data input from the image sensor is input in a fixed order, and the order is not necessarily a convenient order in a post-processing circuit (such as an interpolation circuit). As an example, when an image sensor that performs interlaced scanning is used, data is input in units of fields, but an interpolation circuit that interpolates the data performs processing in units of frames instead of units of fields. It is necessary to temporarily save the field data in the buffer memory. In addition, the interpolation circuit requires a large line memory and takes a form in which interpolation processing is performed by dividing into rectangles due to restrictions on the circuit amount. For this reason, even when an image sensor that can be read in frame units (specifically, an image sensor that performs progressive scanning) is used, it is necessary to save data in the buffer memory. Furthermore, in the JPEG compression process, it is determined that the compression process is performed in a rectangle (block unit) of 8 × 8 pixels. Therefore, the order of data input from the image sensor can hardly match the process. Absent.
[0004]
On the other hand, some high-quality digital cameras do not perform interpolation processing inside the camera, but instead record raw data and later perform interpolation processing by software. This recording method is called RAW recording. . In the case of RAW recording, a technique for reducing the file size by appropriately encoding the raw data before interpolation is often used. Moreover, this encoding generally encodes a difference using the fact that the correlation between adjacent data is strong. In this case, a process of re-encoding the uncompressed raw data once saved in the buffer memory is performed. This is because even a digital camera that performs RAW recording needs to check a recorded image or create a thumbnail using an attached monitor. That is, interpolation processing must be performed for data creation for image confirmation and thumbnail creation, and frame data that can be processed by the interpolation circuit needs to be once expanded on the buffer memory. In addition, if data compression is performed by simply irreversible nonlinear compression (for example, compression by γ correction) without using correlation between data, data expansion in the buffer memory is unnecessary. The problem is that the tone is lost and the image quality deteriorates.
[0005]
Incidentally, Patent Document 1 proposes a technique for dynamically changing a processing path according to required processing speed and quality. Patent Document 2 proposes a method for efficiently performing rectangular processing on data stored in a buffer memory.
[0006]
[Patent Document 1]
JP 2001-45427 A
[Patent Document 2]
JP 2000-354193 A
[0007]
[Problems to be solved by the invention]
As described above, in the conventional image data processing apparatus, since it is necessary to save a large amount of raw data (uncompressed data) input from the image sensor in the buffer memory, interpolation processing or the like using the buffer memory effectively Could not do.
[0008]
In the above-mentioned Patent Documents 1 and 2, there is no mention of the problem that RAW data having a large capacity must be temporarily saved in the buffer memory, and the problem has not been solved.
[0009]
The present invention has been made to solve the above-described problems, and an object of the present invention is to provide an image data processing apparatus capable of effectively using a memory for storing image data and improving processing capability. It is to provide.
[0010]
[Means for Solving the Problems]
FIG. 1 is an explanatory diagram of the principle of the present invention. That is, the image data processing apparatus 10 includes an image input unit 11, an encoding unit 12, a storage unit 13, a decoding unit 14, and an interpolation unit 15. Image data is input to the image input means 11 from the image sensor. In the encoding unit 12, the image data sent from the image input unit 11 is encoded using the correlation of data between adjacent image sensors. In this encoding process, for example, data compression is performed by obtaining a difference between adjacent data and encoding the difference. When image data is classified into a plurality of types, a difference is obtained between neighboring data of the same type, and the difference is encoded. Then, the data encoded by the encoding unit 12 is stored in the storage unit 13. The decoding unit 14 takes in the code data from the storage unit 13 and performs a decoding process on the data, and the image data decoded by the decoding unit 14 is input to the interpolation unit 15. The interpolation means 15 performs image data interpolation processing to generate data necessary for image display. In this case, since the data compressed by encoding is stored in the storage unit 13 instead of storing uncompressed large-capacity data, the storage unit 13 can be used effectively, and the image data The processing capability of the processing apparatus 10 is improved.
[0011]
In addition, image data from the image sensor is sequentially input to the encoding unit 12 via the image input unit 11. The encoding means 12 encodes the image data independently for each line using only the horizontal correlation. During the encoding, the write position information (address) of the head code data on the horizontal line is stored in the storage means 13 by the write position holding means 24. The writing position information is stored every time the head data of each line is encoded, and the writing position is a position set according to the line number.
[0012]
Further, the position information (address) stored in the storage unit 13 is read out by the reading position holding unit 34, and the position information is referred to, so that the head of the line is read from the code string stored in the storage unit 13. Are specified.
[0013]
With this configuration, it is possible to perform a decoding process from the beginning of an arbitrary line. As a result, when the image is trimmed and displayed instead of the entire image, the decoding process is quickly performed.
[0014]
As shown in FIG. 2, the first storage unit 43 stores the data decoded by the decoding unit 14 for each pixel type. The data to be stored in the first storage means 43 is instructed by the instruction means. The position information of the code data input to the decoding means 14 is monitored by the monitoring means 47, and the position information of the code data corresponding to the storage data of the first storage means 43 is stored in the second storage means 45. The In this case, if the information stored in the first and second storage means 43, 45 is used, the position where decoding should be resumed is specified by the position information in the second storage means 45, and the data in the first storage means 43 is used. Thus, decoding can be resumed from an arbitrary position in the middle of the line.
[0015]
Further, by providing a plurality of first and second storage means 43 and 45, data and position information for a plurality of lines are stored in the storage means 43 and 44, respectively. Thereby, rectangular processing such as JPEG can be realized.
[0016]
DETAILED DESCRIPTION OF THE INVENTION
(First embodiment)
A first embodiment of the present invention will be described below with reference to the drawings.
[0017]
FIG. 3 is a block circuit diagram showing the image data recording apparatus 10 of the present embodiment. The image data recording device 10 is mounted on, for example, a digital camera and records captured image data.
[0018]
The image data recording apparatus 10 includes an image data input unit 11, an encoding unit 12, a buffer memory 13, a decoding unit 14, an interpolation unit 15, a register 16, a CPU 17, and a recording medium 18. Are connected to each other. In the image data recording apparatus 10 of the present embodiment, the image data input unit 11, the encoding unit 12, the decoding unit 14, the interpolation unit 15, the register 16, and the CPU 17 are arranged on a one-chip semiconductor integrated circuit (LSI). The buffer memory 13 and the recording medium 18 are connected as external components of the LSI. Data input / output to / from the buffer memory 13 and the recording medium 18 is performed via a data bus having a 16-bit bus width.
[0019]
Image data from an image sensor (not shown) is input to the image data input unit 11. In the present embodiment, the color filter provided in the image sensor (specifically, for example, a CCD sensor) uses a primary color Bayer array as shown in FIG. 4, and is an all-pixel readout method (progressive scan). Thus, image data corresponding to each pixel is sequentially input. Specifically, a plurality of horizontal lines are sequentially scanned from top to bottom. Further, in one horizontal scanning period, the data of the leftmost element in FIG. 4 are sequentially input.
[0020]
Based on the image data from the image sensor, the image data input unit 11 performs color information extraction processing relating to brightness and hue necessary for image quality control, and sends the processed image data to the encoding unit 12. . For odd lines such as the first line and the third line in FIG. 4, color information (data R) relating to red and color information (data Gr) relating to green are extracted. For even lines such as the second line and the fourth line, color information (data Gb) regarding green and color information (data B) regarding blue are extracted.
[0021]
When receiving the image data, the encoding unit 12 performs data compression by sequentially encoding the image data. This encoding is performed by utilizing the fact that information between pixels located in the vicinity has a deep correlation. Specifically, a difference between adjacent pixels of the same type (each color) is calculated, and encoding is performed by a method of assigning a variable-length code to the calculated difference. The variable length code used for the encoding process is stored in the register 16.
[0022]
First, the first line of data R0, Gr0, R1, Gr1,... Is input to the encoding unit 12 in order. Therefore, as a data compression procedure, between these input data, the same type of continuous data is used. (Specifically, Rn−Rn−1, Grn−Grn−1) is calculated. At this time, for the data R0 and Gr0 at the beginning of the line, there is no target data for obtaining a difference, so it is necessary to obtain a difference from a fixed value. In this embodiment, the fixed value is set to “0”. That is, the difference data obtained as a calculation result is (R0-0), (Gr0-0), (R1-R0), (Gr1-Gr0),.
[0023]
Here, the CPU 17 may be configured to set an appropriate fixed value in the register 16, and this configuration can improve the data compression rate.
The encoding unit 12 compresses the data by assigning a variable-length code to the calculation result (difference data), packs the code into 16-bit data, and buffers the buffer memory 13 in units of 16-bit data. To store.
[0024]
Then, when the encoding of the data relating to the first line is completed, the image data Gb0, B0, Gb1, B1,... Of the next second line are sequentially input, so that the encoding unit 12 performs the same procedure as above. Then, encoding is performed and data is stored in the buffer memory 13. By repeating this procedure for the number of lines in one frame, the image data captured from the image sensor is captured in the buffer memory 13 in a compressed state.
[0025]
Then, when the image data for one frame has been taken into the buffer memory 13, the image data is written in the external recording medium 18 and image recording is performed.
[0026]
Further, the image data recording apparatus 10 of the present embodiment includes a monitor for confirming the captured image, and requires an operation for confirming the image. Specifically, in order to create data that can be displayed on the monitor, it is necessary to read out data once stored in the buffer memory 13 and perform interpolation processing.
[0027]
In this case, the data stored in the buffer memory 13 is variable-length encoded data, and it is necessary to perform interpolation processing on the stored data. Therefore, the decoding unit 14 reads the code data from the buffer memory 13 and Decrypt data. Then, the decoding unit 14 sends the decoded image data to the interpolation unit 15.
[0028]
The decoding process performed by the decoding unit 14 is the reverse process of the encoding process performed by the encoding unit 12. That is, the decoding unit 14 decodes the code data fetched from the buffer memory 13 into difference data, and sequentially adds the difference data. For the top data of each line, a fixed value (specifically “0”) used when calculating the difference is added.
[0029]
Further, the interpolation unit 15 performs an interpolation process on the decoded image data, creates data that can be displayed on the monitor, and sends the data to the monitor. In this interpolation processing, for the color information extracted by the image data input unit 11 (each color information for one color), information of the remaining two colors other than the color information is estimated from the color information of the surrounding pixels. As a result, data including color information of the three primary colors is generated.
[0030]
FIG. 5 is a block circuit diagram showing a specific configuration of the encoding unit 12.
The encoding unit 12 includes a shift register 21, a subtracter 22, an encoding logic circuit 23, an address counter 24, and selectors 25 and 26.
[0031]
In the encoding unit 12, the image data sent from the image data input unit 11 is sequentially stored in the shift register 21. The shift register 21 includes two registers 21a and 21b for storing image data (16-bit input data). The shift register 21 latches input data in the first-stage register 21a and shifts the data to the subsequent-stage register 21b. For example, when the shift register 21 holds the leading data R0 of the first line in the first-stage register 21a, if the second data Gr0 is input from the image data input unit 11, the data Gr0 is stored in the first-stage data 21a. While latching in the register 21a, the data R0 is shifted to the subsequent register 21b.
[0032]
The subtracter 22 receives data from the image data input unit 11 and data held in the register 21 b subsequent to the shift register 21. The subtractor 22 calculates the difference between each data using those data. Here, in the case where the data R0 is held in the subsequent register 21b of the shift register 21, the data Gr0 is held in the first register, and the data R1 is input from the image data input unit 11, the data R1 to the data R0 is subtracted to calculate difference data (R1-R0). Thus, the subtracter 22 calculates difference data between adjacent pixels for the same type of pixel.
[0033]
Difference data that is a calculation result of the subtracter 22 is input to the encoding logic circuit 23. The encoding logic circuit 23 assigns a code corresponding to the difference data. Here, the difference data is encoded by referring to the code table of the variable-length code stored in the register 16. Accordingly, since the data length of each code assigned in the encoding logic circuit 23 is different, the encoding logic circuit 23 sequentially packs each encoded code data as 16-bit data and outputs it as 16-bit unit data. .
[0034]
The address counter 24 is a counter that generates an address for writing data to the buffer memory 13. Note that an initial address input from the outside is set in the address counter 24 when writing the first code of the first line. Each time 16-bit data is output from the encoding logic circuit 23, the count value of the address counter 24 is incremented by "1".
[0035]
Based on the control signal S1 input from the CPU 17, the selector 25 selectively selects either the counter value (address value) held by the address counter 24 or the address value input from the outside as a buffer memory. 13 is output.
[0036]
The selector 26 selectively outputs either the address value of the address counter 24 or the data output from the encoding logic circuit 23 to the buffer memory 13 based on the control signal S2 input from the CPU 17. To do.
[0037]
In the buffer memory 13, an address to be written is specified based on the address value input from the selector 25, and the data from the selector 26 is written to the specified address.
[0038]
The encoding unit 12 of the present embodiment clears the data in the registers 21a and 21b in the shift register 21 to “0” before starting the encoding process for the image data for one line. Thereby, when calculating the difference between the head data of each line, the fixed data to be subtracted from the head data becomes “0”.
[0039]
In the encoding unit 12 configured as described above, the subtractor 22 always outputs difference data between image data obtained from each pixel for adjacent pixels of the same type. Therefore, in the encoding logic circuit 23, the differential data input from the subtracter 22 is packed into 16-bit data while sequentially assigning codes, and data is output. As a result, a series of encoding processes is performed. The data output from the encoding logic circuit 23 is written into the buffer memory 13 via the selector 26.
[0040]
Further, when the head code data of the code string of each line is stored in the buffer memory 13, the address (position information) is stored. That is, the buffer memory 13 is provided with a data storage area for storing encoded data and an address storage area for storing data addresses. When the head code data is stored in the data storage area, processing for writing the address value held by the address counter 24 to the address storage area is performed prior to that.
[0041]
Specifically, when the encoding logic circuit 23 encodes the first data R0 of the first line and writes the data, first, an initial value input from the outside is set in the address counter 24. Then, the selector 25 outputs an address value inputted from the outside based on the control signal S1 to the buffer memory 13, and the selector 26 counts the initial value (address value) set in the address counter 24 based on the control signal S2. ) Is output to the buffer memory 13. Here, the address value input to the selector 25 from the outside is a value indicating an address storage area in the buffer memory 13. The initial value set in the address counter 24 is a value indicating the head address of the data storage area in the buffer memory 13. Therefore, the buffer memory 13 stores the start address of the data storage area (address for storing the code string of the first line) in the address storage area specified by the address value input from the outside.
[0042]
When the data encoded by the encoding logic circuit 23 is written after the address is stored, the selector 25 outputs the count value (address value) of the address counter 24 to the buffer memory 13 based on the control signal S1, and the selector 26 Outputs the code data of the encoding logic circuit 23 to the buffer memory 13 based on the control signal S2. Therefore, the code data is stored in the buffer memory 13 in the data storage area designated by the address value of the address counter 24. Thereafter, the encoded data is sequentially output from the encoding logic circuit 23, and the count value of the address counter 24 is incremented by "1" each time the data is output. Then, the output data (code data) of the encoding logic circuit 23 is sequentially stored at the address specified by the count value of the address counter 24.
[0043]
Further, when data less than 16 bits remains when the final data of the line is processed, the encoding logic circuit 23 fills the remaining portion with “0” or “1” and outputs the data. Then, the data is written, and the encoding process of the image data of the first line is finished.
[0044]
Thereafter, the image data for the second and subsequent lines is similarly encoded, and the encoding process is repeated for the number of lines in one frame. As a result, all image data corresponding to one frame is encoded and stored in the buffer memory 13. Even in the second and subsequent lines, when processing the image data at the head of the line, the selector 25 outputs the address value input from the outside to the buffer memory 13 based on the control signal S1, and the selector 26 receives the control signal. Based on S2, the address value of the address counter 24 is output to the buffer memory 13. As a result, the head address storing the code string of each line is stored in the address storage area of the buffer memory 13.
[0045]
FIG. 6 is a block circuit diagram showing a configuration of the decoding unit 14.
The decoding unit 14 includes a decoding logic circuit 31, an adder 32, a shift register 33, an address counter 34, and a selector 35.
[0046]
In the decoding unit 14, the decoding logic circuit 31 reads code data from the buffer memory 13, decodes the data, and outputs difference data obtained by the decoding. Based on the difference data output from the decoding logic circuit 31 and the output data of the shift register 33, the adder 32 performs addition for reassembling image data before taking the difference. The shift register 33 latches the data input from the adder 32 in the first-stage register 33a, shifts the data to the subsequent-stage register 33b, and returns the data in the subsequent-stage register 33b to the adder 32.
[0047]
The address counter 34 is a counter that generates a data read address in the buffer memory 13. The selector 35 selectively outputs either the address value held by the address counter 34 or the address value input from the outside to the buffer memory 13 based on the control signal S3 input from the CPU 17. .
[0048]
As described above, in the present embodiment, the buffer memory 13 stores the head address of the code string of each line in addition to the code data. The decoding unit 14 can start the decoding process from an arbitrary line by referring to the head address.
[0049]
Specifically, when the decoding process is started from the head of the L-th line code string, first, the selector 35 outputs an address value input from the outside to the buffer memory 13 based on the control signal S3. Then, the address counter 34 takes in the data read from the buffer memory 13 according to the address value. Here, the address value inputted from the outside designates the address storing the head address of the code string of the Lth line to be decoded. That is, the address counter 34 stores the head address of the code string of the Lth line. The address for storing the head address corresponding to each line is set in advance as a system. The setting information may be a fixed value or may be stored in a memory area accessible by the CPU 17.
[0050]
Here, the selector 35 outputs the address value output from the address counter 34 to the buffer memory 13 based on the control signal S3. As a result, the code data is read from the head address storing the L-line code string in the buffer memory 13. Each time data is read from the buffer memory 13, the address counter 34 is incremented by “1”, and the count value of the address counter 34 is output to the buffer memory 13 as the next read target address value via the selector 35. Is done. As a result, the Lth line code data is sequentially read from the buffer memory 13.
[0051]
Code data read out from the buffer memory 13 is decoded by the decoding logic circuit 31 to restore difference data between adjacent pixels of the same type. The difference data is added to the immediately preceding image data of the same type in the adder 32 and restored as the original image data. As a result, it is possible to completely restore the image data from the image sensor, and the restored image data is sequentially sent from the adder 32 to the interpolation unit 15 at the subsequent stage.
[0052]
Here, the output data of the adder 32 is input to the interpolation unit 15 and also to the shift register 33. When the data is input to the shift register 33, the data is latched in the first-stage register 33a and the data held in the first-stage register 33a is shifted to the subsequent-stage register 33b. The shift register 33 returns the data of the subsequent register 33b to the adder 32 as the shift result.
[0053]
With this configuration, the data returned from the shift register 33 to the adder 32 is the image data immediately before the difference data decoded by the decoding logic circuit 31 is to be added. Prior to starting the decoding process for the image data for one line, the data in the registers 33a and 33b in the shift register 33 are cleared to “0”. By doing so, a fixed value “0” necessary for restoring the head image data of each line is automatically input from the shift register 33 to the adder 32.
[0054]
As described above, when the image data recording apparatus 10 is configured, the code data written in the buffer memory 13 can be read and decoded from an arbitrary line. As a result, the interpolation unit 15 does not target all the image data fetched into the buffer memory 13 for the interpolation process, but performs the interpolation process for the trimmed image data as necessary.
[0055]
Each image data input from the image sensor has a strong correlation not only in the horizontal direction but also in neighboring pixels in the vertical direction. Therefore, rather than taking the difference between the head data of the line and the fixed value, the compression rate can be further increased by taking the difference from the neighboring pixels of the same type that exist in the vertical direction, that is, the image data two lines before. It becomes possible. However, in the present embodiment, the correlation in the vertical direction is established, the encoding using only the correlation in the horizontal direction is performed, and the address of the head code of each line is stored, so that an arbitrary line can be easily obtained. It is possible to start decoding.
[0056]
Conventionally, in the case of compression by encoding, particularly compression by encoding using the correlation of neighboring images, the code data is also used for decoding even when the trimmed image data is to be subjected to interpolation processing. There has been a problem that decoding must be performed sequentially from the top of the. For this reason, when JPEG compression rectangular processing, which is a known image compression technique, is performed on the restored image data, redundant processing occurs.
[0057]
In the case of JPEG compression, a code called a restart marker is inserted into the code string at a certain interval, and by searching for the code of the restart marker from the code string, image data is obtained in a certain interval unit. It is possible to cut out. However, it takes a considerable time to search for the restart marker.
[0058]
In contrast, in the present embodiment, the address of the head code of each line is stored, and decoding is easily started from any line by referring to the address. Therefore, it is possible to avoid redundant processing even when JPEG compression rectangle processing is performed.
[0059]
As described above, according to the above embodiment, the following effects can be obtained.
(1) Since it is not necessary to save a large amount of uncompressed data with respect to the buffer memory 13, the buffer memory 13 can be used effectively. Thereby, the capacity of the buffer memory 13 can be reduced. Further, when the capacity of the buffer memory is not changed, the number of images that can be continuously processed in the digital camera can be increased. That is, by using the image data recording apparatus 10, it is possible to improve the system cost and processing capability of the digital camera.
[0060]
(2) Since the decoding process can be performed from the head of an arbitrary line, the decoding process when an image is trimmed can be quickly performed. Also, when JPEG compression rectangular processing is performed, it is not necessary to perform encoding from the first line, so that it is possible to avoid occurrence of redundant processing as in the prior art.
[0061]
(Second Embodiment)
In the first embodiment, the image data decoded by the decoding unit 14 is sent to the subsequent interpolation unit 15 to perform interpolation processing. The interpolation unit 15 is provided with a line memory (not shown), and interpolation processing is performed using the line memory. The reason why this line memory is required is that, when interpolation processing is performed while paying attention to a predetermined pixel, the color information of the pixels on the upper and lower lines of the target pixel is used.
[0062]
Specifically, in the case of the Bayer array shown in FIG. 4, red data R and green data Gr exist, but blue data B does not exist in odd lines such as the first line and the third line. In the even lines such as the second line and the fourth line, the green data Gb and the blue data B exist, but the red data R does not exist. In the interpolation process, all the pixels are converted into data in which red, green, and blue color information is aligned by compensating for missing information in the red, green, and blue data. Therefore, each color information cannot be supplemented by interpolation processing with only a single line of image data.
[0063]
Therefore, even when using the most primitive interpolation method, for example, the nearest neighbor method in which missing information is filled with neighboring pixel information, at least one line of image data is stored and two lines of image data are referenced at once. There is a need to. If this nearest neighbor method is used, data for one line can be stored, but in order to realize more accurate interpolation, it is necessary to widen the reference range. Interpolation processing is performed using as many as ten lines of information. Therefore, it is necessary to mount a large amount of line memory as a circuit constituting the interpolation unit 15, which increases the circuit scale.
[0064]
Therefore, as shown in FIG. 7, the size of the line memory is set to a size S20 smaller than the horizontal size of all images (size for storing data of the total number of pixels on the horizontal line) S10. The increase in scale is suppressed. When all the images are processed, interpolation processing is performed by dividing into strip-shaped areas (Block 1 to Block X) in which the horizontal width is set by the size S20 of the line memory. The specific processing order is Line 1 to Line Y of Block 1, Line 1 to Line Y of Block 2,..., Line 1 to Line Y of Block X in FIG. Therefore, it is necessary to supply data to the interpolation unit 15 in this order.
[0065]
The decoding unit 41 of this embodiment shown in FIG. 8 is configured to be able to supply data to the interpolation unit 15 in the order described above. In FIG. 8, the same symbol is attached to the same configuration as the decoding unit 14 of the first embodiment.
[0066]
The decoding unit 41 of the present embodiment includes a decoding logic circuit 31, an adder 32, shift registers 33 and 43, an address counter 34, selectors 35 and 44, a data counter 42, a register 45, and a decrementer 46. That is, the decoding unit 41 is different from the decoding unit 14 of the first embodiment in that a data counter 42, a shift register 43, a selector 44, a register 45, and a decrementer 46 are added. Hereinafter, the difference from the first embodiment will be mainly described.
[0067]
The data counter 42 stores the width information of each area (Block 1 to Block X), and outputs a permission signal to the shift register 43 based on the count value obtained by counting the read data and the block width information. Specifically, the data counter 42 outputs a permission signal to the shift register 43 when data R and data G at the right end of each area shown in FIG. At this time, the shift register 43 operates in response to the permission signal, and sequentially latches the data R and data G output from the adder 32, so that the data R and G are sent to the first stage register 43a and the subsequent stage. Stored in the register 43b.
[0068]
When the decoding logic circuit 31 decodes 16-bit code data as read data, the decoding logic circuit 31 stores 4-bit history information representing the number of bits remaining in the 16 bits that are not decoded. The history information is used to decode the data. Here, when the 4-bit history information is 0000, it means that there are no bits left undecoded in the fetched 16-bit code data, and the history information is 0001-1111. The number of bits remaining without being decoded.
[0069]
When decoding the data R and data G at the right end of each block, the decoding logic circuit 31 sends 4-bit history information to the register 45 and stores the information in the register 45. At this time, the address counter 34 sends the address value to the register 45 and causes the register 45 to store the address value. The decrementer 46 takes in the address value stored in the register 45, subtracts “1” from the address value, and outputs the subtracted address value.
[0070]
Based on the control signal S4 input from the CPU 17, the selector 35 selects the address value from the address counter 34, the address value from the register 45, the address value from the decrementer 46, and the address value input from the outside. Any one of them is selectively output to the buffer memory 13. The selector 44 selectively outputs either the data from the shift register 33 or the data from the shift register 43 to the adder 32 based on the control signal S5 input from the CPU 17.
[0071]
In the decoding unit 41 configured as described above, when decoding is resumed from the Line 1 of Block 2 after the decoding processing of Block 1 is completed, the head code address is specified from the storage information of the register 45 and the code data is read out. Here, the storage information of the register 45 indicates the code position for the pixel on the right side of the block 1 pixel (the pixel at the right end) that has already been decoded. For example, in the register 45, when the 4-bit history information stored from the decoding logic circuit 31 indicates 0000, the address value stored from the address counter 34 becomes the code address for the next pixel. Therefore, the selector 35 outputs the address value output from the register 45 to the buffer memory 13 based on the control signal S4. As a result, valid code data corresponding to the address value is read from the buffer memory 13.
[0072]
If the 4-bit history information stored in the register 45 is not 0000, it means that a part of the code data for the next pixel has already been captured. Therefore, the selector 35 outputs the address value output from the decrementer 46 to the buffer memory 13 based on the control signal S4. As a result, valid code data corresponding to the address value is read from the buffer memory 13.
[0073]
Here, although the code data of Block 2 is code data in the middle of the line, since it is data of the area following Block 1 that has already been decoded, the code data for the pixel of Block 2 based on the storage information of the register 45 The position (address) of can be specified. That is, the decoding logic circuit 31 uses the 4-bit history information acquired from the register 45 to restart decoding from the top code data of Block2.
[0074]
When the decoding of the code data is resumed, the data stored in the shift register 43 is used for the first two pixels in Block2. Specifically, the shift register 43 operates in response to the permission signal output from the data counter 42. When the data is output from the adder 32, the data stored in the registers 43a and 43b ( Data R and data G) at the right end of Block 1 are sequentially output. At this time, the selector 44 outputs the data from the shift register 43 to the adder 32 based on the control signal S5. The adder 32 adds the data to the difference data output from the decoding logic circuit 31, and restores the original image data based on the addition result. Then, the adder 32 outputs the image data to the interpolation unit 15 and the shift registers 33 and 43.
[0075]
Similarly, the decoding process after Block 3 can be resumed from the middle of the line as long as it continues to the area where the decoding has already been completed.
In the present embodiment, the data counter 42 corresponds to an instruction unit, and the shift register 43 corresponds to a first storage unit. The decryption logic circuit 31 and the address counter 34 correspond to monitoring means, and the register 45 corresponds to second storage means.
[0076]
In the decoding unit 41, shift registers 43 and registers 45 are prepared for a plurality of lines, but are not shown for convenience. For example, when a rectangular process such as JPEG is directly performed on the interpolated data, the process is performed in units of 8 × 8 pixel blocks. In this case, the shift register 43 and the register 45 are provided for 8 lines, and the number of lines (8 lines + interpolation reference line) sufficient to always output the 8 lines necessary for the JPEG processing is considered in consideration of the processing method of the interpolation circuit. It is configured so that the record of Equation -1) remains.
[0077]
As described above, according to the above embodiment, the following effects can be obtained.
(1) It is not necessary to save a large amount of uncompressed data in the buffer memory 13. Furthermore, by providing a plurality of shift registers 43 and registers 45, it is possible to solve the implementation of rectangular processing such as JPEG using the data stored in the buffer memory 13.
[0078]
The above embodiment can be modified as follows.
In the above embodiment, the address of the head code in all lines is stored, and the encoding process can be started from any line. However, the present invention is not limited to this. If the line for trimming is preset as the system, only the address of the head code of the line necessary for trimming may be stored. Also, in this case, when encoding the head data in each line that does not need to store the address of the head code, a process of taking a difference from the pixel data of the previous two lines instead of taking a difference from a fixed value ( (Encoding processing using vertical correlation) may be performed.
[0079]
In the above embodiment, the head address and code data of the code string of each line are stored in the buffer memory 13, but storage means (for example, the register 16) different from the buffer memory 13 for storing the code data The head address may be stored in the memory.
[0080]
The encoding process in the encoding unit 12 is to calculate and encode a difference between image data, but in addition to this, encoding is performed using FFT (Fourier transform), DCT (discrete cosine transform), or the like. You may do it. In short, what is necessary is just to perform an encoding process using the correlation of the data between adjacent image sensors.
[0081]
Although the present invention is embodied in an image sensor that performs all pixel readout scanning (progressive scan), it may be embodied in an image sensor that performs interlaced scanning. In addition to the CCD sensor, a CMOS sensor may be used as the image sensor.
[0082]
The image data recording apparatus 10 is configured to store the code data stored in the buffer memory 13 in the external recording medium 18, but the interpolated data subjected to the interpolation processing by the interpolation unit 15 is stored in the recording medium 18. It is good also as a structure to record.
[0083]
In the above-described embodiment, the image data recording apparatus 10 that records image data on the external recording medium 18 is embodied. However, in addition to this, an interpolation process for omitting the recording function and displaying on the monitor It may be embodied in an image data processing apparatus that performs the above.
[0084]
The various embodiments described above can be summarized as follows.
(Additional remark 1) Image provided with the image input means which inputs the image data from an image pick-up element, the memory | storage means which stores image data once, and the interpolation means which performs an interpolation process based on the image data stored in the said memory | storage means A data processing device,
Encoding means for performing encoding processing on the image data sent from the image input means using the correlation of data between the adjacent image sensors, and storing the encoded data in the storage means;
Decoding means for fetching data from the storage means, decoding the data, and inputting the decoded data to the interpolation means;
An image data processing apparatus comprising:
(Additional remark 2) The said encoding means calculates | requires the difference of the image data between the said image sensors, and compresses data by encoding this difference,
The image data processing apparatus according to appendix 1, wherein the decoding unit decodes the code data fetched from the storage unit into the difference and restores the original image data using the difference.
(Additional remark 3) The said image input means extracts the color information required for image quality control from the said image data, and sends the image data containing the extracted color information to the said encoding means. The image data processing apparatus described.
(Additional remark 4) The said interpolation means performs the interpolation process which estimates and calculates color information other than the color information of a predetermined pixel from the color information of the surrounding pixel of this predetermined pixel about the color information extracted by the said image input means The image data processing device according to attachment 3, wherein the image data processing device is described above.
(Additional remark 5) The image data processing apparatus of Additional remark 1 characterized by including the recording medium which memorize | stores the data stored in the said memory | storage means, or the data after the interpolation which the interpolation process was performed by the said interpolation means.
(Appendix 6) Image data from the image sensor is sequentially input via the image input means, and the encoding means encodes image data independently for each line using only horizontal correlation. Is,
The image data processing apparatus according to appendix 1, further comprising a writing position holding unit that stores writing position information of the code data at the head of the horizontal line.
(Additional remark 7) The said encoding means calculates | requires the difference of the image data between the said image sensors, and compresses data by encoding this difference, and when calculating | requiring the difference of the head image data in each line The image data processing apparatus according to appendix 6, wherein a fixed value is used as an initial value for obtaining the difference.
(Additional remark 8) It has the reading position holding means which specifies the code data at the head of the line from the code string stored in the storage means by reading the writing position information and referring to the position information The image data processing device according to appendix 6.
(Supplementary Note 9) First storage means for storing data decoded by the decoding means for each pixel type;
Instruction means for instructing data to be stored in the first storage means;
Monitoring means for monitoring position information of code data input to the decoding means;
Second storage means for storing position information of code data corresponding to the data stored in the first storage means;
The image data processing device according to any one of appendices 1 to 8, further comprising:
(Supplementary note 10) The image data processing apparatus according to supplementary note 9, wherein a plurality of the first and second storage units are provided, and the data and position information for a plurality of lines are stored in each storage unit.
(Supplementary note 11) The supplementary note 9 or 10, wherein the decoding process is resumed in the middle of the line based on the data stored in the first storage unit and the position information stored in the second storage unit. Image data processing apparatus.
[0085]
【The invention's effect】
As described above in detail, according to the present invention, it is possible to improve the processing capability by effectively using the memory in the image data processing apparatus.
[Brief description of the drawings]
FIG. 1 is a diagram illustrating the principle of the present invention.
FIG. 2 is a block circuit diagram showing decoding means.
FIG. 3 is a block circuit diagram of the image data recording apparatus of the first embodiment.
FIG. 4 is an explanatory diagram showing a primary color Bayer array pattern.
FIG. 5 is a block circuit diagram showing an encoding unit.
FIG. 6 is a block circuit diagram showing a decoding unit.
FIG. 7 is an explanatory diagram showing a processing unit in an interpolation unit.
FIG. 8 is a block circuit diagram showing a decoding unit of a second embodiment.
[Explanation of symbols]
10. Image data recording device as image data processing device
11 Image data input unit as image input means
12 Encoding unit as encoding means
13 Buffer memory as storage means
14 Decoding unit as decoding means
15 Interpolation section as interpolation means
24 Address counter as writing position holding means
31 Decoding logic circuit constituting monitoring means
34 Address counter as reading position holding means
42 Data counter as instruction means
43 Shift register as first storage means
45 Register as second storage means

Claims (4)

撮像素子からの画像データを入力する画像入力手段と、画像データを一旦格納する記憶手段と、前記記憶手段に格納した画像データに基づいて補間処理を行う補間手段とを備えた画像データ処理装置であって、
前記画像入力手段から送出される画像データについて、隣接する前記撮像素子間のデータの相関を利用して符号化処理を行い、符号化したデータを前記記憶手段に格納する符号化手段と、
前記記憶手段からデータを取り込んで該データの復号化処理を行い、復号化したデータを前記補間手段に入力する復号化手段と
前記復号化手段により復号されたデータを画素の種別毎に記憶するための第1記憶手段と、
前記第1記憶手段に対して記憶すべきデータを指示する指示手段と、
前記復号化手段に入力される符号データの位置情報を監視する監視手段と、
前記第1記憶手段に記憶したデータに対応する符号データの位置情報を記憶するための第2記憶手段と
を備えたことを特徴とする画像データ処理装置。
An image data processing apparatus comprising image input means for inputting image data from an image sensor, storage means for temporarily storing image data, and interpolation means for performing interpolation processing based on the image data stored in the storage means. There,
Encoding means for performing encoding processing on the image data sent from the image input means using the correlation of data between the adjacent image sensors, and storing the encoded data in the storage means;
Decoding means for fetching data from the storage means, performing decoding processing on the data, and inputting the decoded data to the interpolation means ;
First storage means for storing data decoded by the decoding means for each pixel type;
Instruction means for instructing data to be stored in the first storage means;
Monitoring means for monitoring position information of code data input to the decoding means;
An image data processing apparatus comprising: second storage means for storing position information of code data corresponding to data stored in the first storage means .
撮像素子からの画像データが前記画像入力手段を介して順次入力され、前記符号化手段は、水平方向の相関のみを使用してライン毎に独立して画像データの符号化を行うものであり、
平ラインの先頭の符号データについて、その符号データの書き込み位置情報を記憶する書き込み位置保持手段を備えたことを特徴とする請求項1に記載の画像データ処理装置。
Image data from the image sensor is sequentially input via the image input means, and the encoding means encodes image data independently for each line using only horizontal correlation,
The head of the code data of horizontal lines, the image data processing apparatus according to claim 1, further comprising a writing position holding means for storing the writing position information of the code data.
前記書き込み位置情報を読み出し、その位置情報を参照することにより、該記憶手段に格納されている符号列からラインの先頭の符号データを特定する読み出し位置保持手段を備えたことを特徴とする請求項2に記載の画像データ処理装置。  The read position holding means for specifying the code data at the head of the line from the code string stored in the storage means by reading the write position information and referring to the position information. 2. The image data processing apparatus according to 2. 前記第1及び第2記憶手段を複数備え、各記憶手段に複数ライン分の前記データ及び位置情報を記憶するようにしたことを特徴とする請求項1〜3のいずれか1つに記載の画像データ処理装置。The image according to any one of claims 1 to 3, wherein a plurality of the first and second storage units are provided, and the data and position information for a plurality of lines are stored in each storage unit. Data processing device.
JP2003089750A 2003-03-28 2003-03-28 Image data processing device Expired - Lifetime JP4124686B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003089750A JP4124686B2 (en) 2003-03-28 2003-03-28 Image data processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003089750A JP4124686B2 (en) 2003-03-28 2003-03-28 Image data processing device

Publications (2)

Publication Number Publication Date
JP2004297653A JP2004297653A (en) 2004-10-21
JP4124686B2 true JP4124686B2 (en) 2008-07-23

Family

ID=33403530

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003089750A Expired - Lifetime JP4124686B2 (en) 2003-03-28 2003-03-28 Image data processing device

Country Status (1)

Country Link
JP (1) JP4124686B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5203692B2 (en) 2007-12-26 2013-06-05 三星電子株式会社 Imaging method, imaging apparatus, and program

Also Published As

Publication number Publication date
JP2004297653A (en) 2004-10-21

Similar Documents

Publication Publication Date Title
KR101226877B1 (en) Encoding device, encoding method, encoding program, and imaging device
US8134612B2 (en) Digital camera for recording a still image while shooting a moving image
JP4130207B2 (en) Image processing display device and image processing display method
JP5520122B2 (en) Data converter
JP5092536B2 (en) Image processing apparatus and program thereof
US7443428B2 (en) Image processing device
KR20090064272A (en) Recording apparatus, reproduciton apparatus, recording method, reproduction method and storing medium having computer program to perform the same
JP5393331B2 (en) Imaging device
JP4124686B2 (en) Image data processing device
KR20090066192A (en) Apparatus for writing, method of writing, apparatus for playing, method of playing, and computer readable medium for recording program
JP4333270B2 (en) Image processing apparatus, image processing system, imaging apparatus, and image processing method
JP2011029809A (en) Image processing device, image processing method, and image capturing device
US7787700B2 (en) Signal processing method, signal processing apparatus, computer-readable medium and a data recording medium
US5751886A (en) Video image processing apparatus
JP2000244744A (en) Image data compression method and image data management method
JP7020782B2 (en) Reproduction device and its control method
US8031245B2 (en) Imaging apparatus and methods, and storing medium having computer program to perform the methods
JP4720494B2 (en) Imaging apparatus, imaging method and program, and recording medium
JP2004282305A (en) Image processing system
KR19990006992A (en) Placement method of image number
JP3027023B2 (en) Digital electronic still camera, operation method thereof, and digital image reproducing apparatus and method
JPH04211575A (en) Orthogonal convertion operation device
WO2009150795A1 (en) Image reproduction device
JP3647102B2 (en) Imaging device
JP2009038782A (en) Image processor, image processing method, program for image processing method, and recording medium recording program for image processing method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060308

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080411

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080430

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080502

R150 Certificate of patent or registration of utility model

Ref document number: 4124686

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110516

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110516

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110516

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110516

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120516

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120516

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130516

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140516

Year of fee payment: 6

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

EXPY Cancellation because of completion of term