(57)【要約】【課題】欠陥画素が不規則に存在しても、規則的に配置された機能画素の位置情報のランレングス圧縮を可能にすることにより、補正対象画素の全体の位置情報の記憶容量を低減させた撮像装置を提供する。【解決手段】撮像装置は、光学像の光電変換を行う撮像素子と、撮像素子の複数の補正対象画素の位置情報を保持する記憶手段と、撮像素子を介して画像データを取得する際に、複数の補正対象画素の位置情報を用いて画素補正を行う補正手段とを有し、記憶手段は、複数の補正対象画素のうち規則的に配置された第１の画素の位置情報をランレングス圧縮して保持し、複数の補正対象画素のうち不規則的に配置された第２の画素の位置情報を付帯情報として保持する。【選択図】図１
2014158256.tif 000002
【特許請求の範囲】
【請求項１】
光学像の光電変換を行う撮像素子と、
前記撮像素子の複数の補正対象画素の位置情報を保持する記憶手段と、
前記撮像素子を介して画像データを取得する際に、前記複数の補正対象画素の位置情報を用いて画素補正を行う補正手段と、を有し、
前記記憶手段は、
前記複数の補正対象画素のうち規則的に配置された第１の画素の位置情報をランレングス圧縮して保持し、
前記複数の補正対象画素のうち不規則的に配置された第２の画素の位置情報を、ランレングス圧縮して保持された前記第１の画素の位置情報に付加して保持する、ことを特徴とする撮像装置。
【請求項２】
前記第１の画素の前記位置情報は、該第１の画素の一つの周期パターンに存在する該第１の画素の数を示す第１の情報、および、該周期パターンの繰り返し回数を示す第２の情報を含み、
前記第２の画素の前記位置情報は、該第２の画素が前記周期パターンに存在する前記第１の画素のうちいずれの画素の次に存在するかを示す第３の情報、および、該第２の画素が何回目の周期パターンに存在するかを示す第４の情報を含むことを特徴とする請求項１に記載の撮像装置。
【請求項３】
前記第１の情報は、前記第１の画素の前記一つの周期パターンに存在する該第１の画素の間の距離情報の数を示すことを特徴とする請求項２に記載の撮像装置。
【請求項４】
前記第３の情報は、前記第２の画素が前記周期パターンのいずれの距離情報の次に存在するかを示すことを特徴とする請求項３に記載の撮像装置。
【請求項５】
前記記憶手段にランレングス圧縮して保持された前記第１の画素の前記位置情報を伸長する伸長回路を更に有し、
前記伸長回路は、前記第１の情報、前記第２の情報、前記第３の情報、および、前記第４の情報を一時的に保持して前記第１の画素の前記位置情報を伸長することを特徴とする請求項２乃至４のいずれか１項に記載の撮像装置。
【請求項６】
前記伸長回路は、前記第１の情報および前記第２の情報に基づいて前記第１の画素のランレングス圧縮状態を検出し、前記第３の情報および前記第４の情報に基づいて前記第２の画素の位置を検出する検出部を有することを特徴とする請求項５に記載の撮像装置。
【請求項７】
前記第１の画素は機能画素であり、
前記第２の画素は欠陥画素であることを特徴とする請求項１乃至６のいずれか１項に記載の撮像装置。
【請求項８】
前記機能画素は焦点検出用画素であることを特徴とする請求項７に記載の撮像装置。
【請求項９】
ランレングス圧縮された規則配置の第１の画素の位置情報、および、不規則配置の第２の画素の位置情報を含む補正対象画素の位置情報を一時的に記憶する記憶手段と、
前記第１の画素の位置情報に基づいて、該第１の画素の一つの周期パターンに存在する該第１の画素の数を計数し、かつ、該周期パターンの繰り返し回数を計数するカウント部と、
前記第２の画素が前記周期パターンに存在する前記第１の画素のうちいずれの画素の次に存在するかを示す情報、および、該第２の画素が何回目の周期パターンに存在するかを示す情報を保持するレジスタ部と、
前記カウント部および前記レジスタ部の状態に基づいて前記第１の画素の位置情報を伸長する伸長手段と、を有することを特徴とする伸長回路。
【請求項１０】
前記伸長手段は、前記カウント部の状態に基づいて前記第１の画素のランレングス圧縮状態を検出し、前記レジスタ部の状態に基づいて前記第２の画素の位置を検出する検出部を含むことを特徴とする請求項９に記載の伸長回路。
【請求項１１】
ランレングス圧縮された規則配置の第１の画素の位置情報、および、不規則配置の第２の画素の位置情報を含む補正対象画素の位置情報を一時的に記憶する記憶ステップと、
前記第１の画素の位置情報に基づいて、該第１の画素の一つの周期パターンに存在する該第１の画素の数を計数し、かつ、該周期パターンの繰り返し回数を計数する計数ステップと、
前記第２の画素が前記周期パターンに存在する前記第１の画素のうちいずれの画素の次に存在するかを示す情報、および、該第２の画素が何回目の周期パターンに存在するかを示す情報を保持する保持ステップと、
前記計数ステップおよび前記保持ステップに基づいて前記第１の画素の位置情報を伸長する伸長ステップと、を情報処理装置に実行させるように構成されていることを特徴とするプログラム。
【請求項１２】
複数の補正対象画素のうち規則的に配置された第１の画素の位置情報を含む第１のデータ群と、任意の位置に配置された第２の画素の位置情報を含む第２のデータ群とを結合して補正データを生成する補正データ生成装置であって、
前記第１のデータ群に含まれるデータを順に判定する判定手段と、
前記判定手段の結果に基づいて前記第１のデータ群に含まれる更新前の基準位置と更新後の基準位置との間の第１の距離を算出する第１の距離算出手段と、
前記判定手段の結果に応じて前記基準位置を更新して保持するレジスタと、
前記第２のデータ群に含まれる前記位置情報を順に積算し、処理の開始点からの絶対距離情報を算出する絶対距離算出手段と、
前記レジスタの出力と前記絶対距離算出手段の出力との差に基づいて第２の距離を算出する第２の距離算出手段と、
前記第１の距離と前記第２の距離とを比較する比較手段と、を有し、
前記比較手段は、前記第２の距離が前記第１の距離よりも大きい場合、前記第１のデータ群に含まれる次のデータの処理に進めるための要求を出力する、ことを特徴とする補正データ生成装置。
【請求項１３】
前記第１のデータ群は、規則的に配置された前記第１の画素の位置情報の圧縮データとして構成されており、
前記判定手段は、前記第１のデータ群に含まれる前記データが圧縮データまたは非圧縮データのいずれであるかを判定することを特徴とする請求項１２に記載の補正データ生成装置。
【請求項１４】
前記第１のデータ群に含まれる前記データが前記圧縮データであって、かつ、前記第１の距離が前記第２の距離よりも大きい場合、該第２の距離を処理して前記圧縮データに対する添付データを生成するように構成されていることを特徴とする請求項１３に記載の補正データ生成装置。
【請求項１５】
前記第１のデータ群に含まれる前記データが前記非圧縮データである場合、前記第２の距離を前記第１のデータ群の現在処理しているデータ位置の後に添付し、前記第２のデータ群の次期処理データの受付を可能とするように構成されていることを特徴とする請求項１３または１４に記載の補正データ生成装置。
【請求項１６】
前記第１の画素の前記位置情報は、１回の繰り返しに含まれる位置情報の個数、および、ランレングス圧縮処理の繰り返し回数に関する情報を含むことを特徴とする請求項１２乃至１５のいずれか１項に記載の補正データ生成装置。
【請求項１７】
前記第２のデータ群に含まれるデータは非圧縮データであり、
前記絶対距離算出手段は、前記第２のデータ群に含まれる前記データを、前記第２の画素の位置情報を示す絶対座標と等価な距離情報となるように変換することを特徴とする請求項１２乃至１６のいずれか１項に記載の補正データ生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像装置に係り、特に補正対象画素の位置情報を記憶する撮像装置に関する。
【背景技術】
【０００２】
従来から、撮像素子を用いたデジタルカメラなどの撮像装置では、予め欠陥画素の位置情報を記憶手段に記憶しておき、撮像時に記憶手段に記憶された位置情報に基づいて欠陥画素を補正することにより、画像品質の劣化を改善させている。特許文献１には、記憶手段から読み出された位置情報を補正手段内のバッファに一時的に記憶し、入力画像に対して補正対象画素を指示する欠陥画素補正装置が開示されている。
【０００３】
また従来から、ＡＦ性能向上のため、コントラストＡＦに代えて撮像素子の画素を利用した位相差ＡＦを実施する構成が提案されている。特許文献２には、撮像素子上に焦点検出用画素（機能画素）を配置した撮像装置が開示されている。
【０００４】
一方、近年の撮像素子の高画素化に伴って増加した工程傷などの欠陥画素により、予め記憶する必要のある補正対象画素の位置情報のデータ量が増加している。特許文献３には、位置情報を固定長ではなく可変長に符号化した情報として記憶することで、記憶すべき位置情報を削減する欠陥検出装置が開示されている。また特許文献３では、欠陥画素パターンに応じて符号が割り当てられている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−２３０５１号公報
【特許文献２】特開２０００−１５６８２３号公報
【特許文献３】特開２００７−１２９２８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＡＦ画素などの機能画素は、（画像要素である）通常画素に対して信号レベルが異なる。このため、例えば欠陥画素と同様に扱うことにより、後段の処理（補正処理や画像処理）に対してその位置の画素はそのままでは画像として使用できないことを伝達することが可能である。そのような用途に対して、ＡＦ画素の位置情報と欠陥画素の位置情報とをマージ(結合)することができる。
【０００７】
ところで、ＡＦ画素のように所定の領域毎に規則的に配置された機能画素については、その位置情報に対してランレングス圧縮を行うことにより、その情報量を削減することができる。
【０００８】
しかしながら、撮像素子において、規則的に配置された機能画素とともに、工程傷などの不規則に配置された補正対象画素（欠陥画素）が存在すると、機能画素に対するランレングス圧縮化が途中で妨げられるため、情報圧縮の効果が低減する。この結果、補正対象画素の全体の位置情報の記憶容量が増加してしまう。
【０００９】
そこで本発明は、欠陥画素が不規則に存在しても、規則的に配置された機能画素の位置情報のランレングス圧縮を可能にすることにより、補正対象画素の全体の位置情報の記憶容量を低減させた撮像装置、伸長回路、およびプログラムを提供する。また本実施例は、任意の位置の補正対象画素の距離データをマージ（結合）することにより、画素の記憶容量を低減させて効率のよい画素データを生成可能な補正データ生成装置を提供する。
【課題を解決するための手段】
【００１０】
本発明の一側面としての撮像装置は、光学像の光電変換を行う撮像素子と、前記撮像素子の複数の補正対象画素の位置情報を保持する記憶手段と、前記撮像素子を介して画像データを取得する際に、前記複数の補正対象画素の位置情報を用いて画素補正を行う補正手段とを有し、前記記憶手段は、前記複数の補正対象画素のうち規則的に配置された第１の画素の位置情報をランレングス圧縮して保持し、該複数の補正対象画素のうち不規則的に配置された第２の画素の位置情報を付帯情報として保持する。
【００１１】
本発明の他の側面としての伸長回路は、ランレングス圧縮された規則配置の第１の画素の位置情報、および、不規則配置の第２の画素の位置情報を含む補正対象画素の位置情報を一時的に記憶する記憶手段と、前記第１の画素の位置情報に基づいて、該第１の画素の一つの周期パターンに存在する該第１の画素の数を計数し、かつ、該周期パターンの繰り返し回数を計数するカウント部と、前記第２の画素が前記周期パターンに存在する前記第１の画素のうちいずれの画素の次に存在するかを示す情報、および、該第２の画素が何回目の周期パターンに存在するかを示す情報を保持するレジスタ部と、前記カウント部および前記レジスタ部の状態に基づいて前記第１の画素の位置情報を伸長する伸長手段とを有する。
【００１２】
本発明の他の側面としてのプログラムは、ランレングス圧縮された規則配置の第１の画素の位置情報、および、不規則配置の第２の画素の位置情報を含む補正対象画素の位置情報を一時的に記憶する記憶ステップと、前記第１の画素の位置情報に基づいて、該第１の画素の一つの周期パターンに存在する該第１の画素の数を計数し、かつ、該周期パターンの繰り返し回数を計数する計数ステップと、前記第２の画素が前記周期パターンに存在する前記第１の画素のうちいずれの画素の次に存在するかを示す情報、および、該第２の画素が何回目の周期パターンに存在するかを示す情報を保持する保持ステップと、前記計数ステップおよび前記保持ステップに基づいて前記第１の画素の位置情報を伸長する伸長ステップと、を情報処理装置に実行させるように構成されている。
【００１３】
本発明の他の側面としての補正データ生成装置は、複数の補正対象画素のうち規則的に配置された第１の画素の位置情報を含む第１のデータ群と、任意の位置に配置された第２の画素の位置情報を含む第２のデータ群とを結合して補正データを生成する補正データ生成装置であって、前記第１のデータ群に含まれるデータを順に判定する判定手段と、前記判定手段の結果に基づいて前記第１のデータ群に含まれる更新前の基準位置と更新後の基準位置との間の第１の距離を算出する第１の距離算出手段と、前記判定手段の結果に応じて前記基準位置を更新して保持するレジスタと、前記第２のデータ群に含まれる前記位置情報を順に積算し、処理の開始点からの絶対距離情報を算出する絶対距離算出手段と、前記レジスタの出力と前記絶対距離算出手段の出力との差に基づいて第２の距離を算出する第２の距離算出手段と、前記第１の距離と前記第２の距離とを比較する比較手段とを有し、前記比較手段は、前記第２の距離が前記第１の距離よりも大きい場合、前記第１のデータ群に含まれる次のデータの処理に進めるための要求を出力する。
【００１４】
本発明の他の目的及び特徴は、以下の実施例において説明される。
【発明の効果】
【００１５】
本発明によれば、欠陥画素が不規則に存在しても、規則的に配置された機能画素の位置情報のランレングス圧縮を可能にすることにより、補正対象画素の全体の位置情報の記憶容量を低減させた撮像装置、伸長回路、およびプログラムを提供することができる。また本実施例によれば、任意の位置の補正対象画素の距離データをマージ（結合）することにより、画素の記憶容量を低減させて効率のよい画素データを生成可能な補正データ生成装置を提供することができる。
【図面の簡単な説明】
【００１６】
【図１】実施例１における撮像装置（伸長回路）の要部を示すブロック図である。
【図２】各実施例における撮像素子の焦点検出用画素の概略図である。
【図３】各実施例における撮像素子の画素配列の一例である。
【図４】各実施例における撮像素子の補正対象画素の配列を示す図である。
【図５】各実施例におけるファインダスクリーンおよび測距点５００に対応する焦点検出用画素を示す図である。
【図６】各実施例におけるファインダスクリーンおよび測距点６００に対応する焦点検出用画素を示す図である。
【図７】各実施例におけるランレングス圧縮後の補正対象画素の位置情報を示す図である。
【図８】各実施例における非圧縮時の補正対象画素の位置情報を示す図である。
【図９】各実施例を適用しない場合におけるランレングス圧縮後の補正対象画素の位置情報を示す図である。
【図１０】各実施例における焦点検出用画素の開口部の構成図である。
【図１１】実施例２における補正データ生成装置の要部ロジック回路図である。
【図１２】実施例２における補正データ生成装置のタイミングチャートである。
【図１３】実施例３における補正データ生成装置の要部詳細図である。
【図１４】実施例２、３における補正データ生成装置に入力されるデータの構成図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施例について、図面を参照しながら詳細に説明する。各図において、同一の部材については同一の参照番号を付し、重複する説明は省略する。
【実施例１】
【００１８】
まず、図２、図３および図１０を参照して、本発明の実施例１における撮像素子の画素（光電変換セル）の配列について説明する。撮像素子は、図２は、撮像素子の焦点検出用画素の概略図である。図３は、撮像素子の画素配列の一例である。図１０は、焦点検出用画素の開口部の構成図である。
【００１９】
図３において、撮像素子３００は、被写体像（光学像）の光電変換を行う素子である。撮像素子３００の画素配列は、通常カラー配列の行、第１の位相センサを含む行、および、第２の位相センサを含む行に分離される。Ｒ、Ｇ、Ｂは撮像用画素であり、通常カラー配列の行においてベイヤー配列で配置されている。Ｓ１、Ｓ２は、第１の位相センサを含む行および第２の位相センサを含む行にそれぞれ配置された焦点検出用画素（機能画素）である。
【００２０】
図２において、２１６はマイクロレンズ、２１４は遮光膜、２０７は光電変換素子である。マイクロレンズ２１６には、撮影レンズからの光が入射するが、光電変換素子２０７に入射する光は遮光膜２１４により制限され、特定の方向から入射する光束のみとなる。図３の焦点検出用画素Ｓ１、Ｓ２は、センサ画素（撮像素子の画素）を用いて位相差ＡＦを実現するため、センサ画素上に右目および左目（上目および下目）の開口状態を再現して視差を生成する。このため、焦点検出用画素Ｓ１、Ｓ２の遮光膜２１４は、図１０に示されるように左右対称（上下対称）となる。
【００２１】
焦点検出用画素Ｓ１、Ｓ２などの機能画素から取得された信号は、そのまま撮影画像情報として現像処理に用いることはできない。この信号と同一の画素位置の情報に対しては、画素欠陥補正と同様の処理を施すことにより、画像品質の劣化を改善する必要がある。このため、機能画素についても欠陥画素と同様に位置情報を記憶手段に予め記憶しておく必要がある。例えば、ＡＦ画素（焦点検出用画素）としての機能画素を、所定の領域毎に規則的に配置することにより、従来の位相差センサと同様の機能を実現させる。このような規則的に配置された機能画素の位置情報を、画素欠陥補正用の情報として保持するには、位置情報をランレングス圧縮してその情報量を縮小することが効果的である。
【００２２】
続いて、図５および図６を参照して、撮像素子の補正対象画素について説明する。図５は、ファインダスクリーン５および測距点５００に対応する焦点検出用画素を示す図である。図５において、ファインダスクリーン５上の５００は、被写体に対する測距点（焦点検出点）である。撮像素子上の機能画素（焦点検出用画素：ＡＦ画素）を用いて視差像を生成する場合、例えば図１０に示されるように互いに異なる開口部（開口位置）を有する機能画素を配置する。ここで、測距点５００に対して、焦点検出用画素（機能画素）である画素５０１、５０２、５０３、…、５０４の像、および、画素５０５、５０６、５０７、…、５０８の像のそれぞれで互いに視差の異なる像を生成しているとする。このとき、焦点検出用画素の位置情報は、それぞれ、前述のように補正対象画素として予め記憶手段に記憶しておく必要がある。また、補正対象画素が規則的に配置された画素である場合、これらの位置情報に対してランレングス圧縮を行うことにより、情報圧縮が可能である。
【００２３】
ところが、規則的に配置された機能画素に加えて、工程傷などの不規則に配置された補正対象画素が存在すると、機能画素のランレングス圧縮化が途中で妨げられるため、情報圧縮の効果が低減する。この状態について、図６を参照して説明する。図６は、図５と同様のファインダスクリーン５および測距点６００に対応する焦点検出用画素を示す図である。図６において、測距点６００に対して、焦点検出用画素（機能画素）である画素６０１、６０２、６０３、…、６０４の像、および、画素６０５、６０６、６０７、…、６０８の像のそれぞれで互いに視差の異なる像を生成しているとする。画素６０１〜６０８は、規則的に配置された第１の画素である。
【００２４】
ここで、画素６０３の後に（画素６０３の右側に）工程傷である画素６０９（不規則に配置された第２の画素）が存在する場合、画素６０９の存在により機能画素の規則性が崩れる。このため、それ以降の機能画素を含めたランレングス圧縮を行うことができない。このように、工程傷などの欠陥画素の存在は、機能画素配列情報のランレングス圧縮化を妨げる。そこで本実施例では、工程傷などの欠陥画素が不規則に存在しても、規則的に配置された機能画素の位置情報のランレングス圧縮を可能とすることにより、補正対象画素の全体の位置情報の記憶容量を低減させた撮像装置を提供する。
【００２５】
まず、図１、図４、図７乃至図９を参照して、本実施例における撮像装置（伸長回路）の構成について説明する。図１は、本実施例における撮像装置１０（伸長回路１）の要部を示すブロック図である。図４は、本実施例における撮像素子の補正対象画素の配列を示す図である。図７は、本実施例におけるランレングス圧縮後の補正対象画素の位置情報を示す図である。図８は、本実施例における非圧縮時の補正対象画素の位置情報を示す図である。図９は、本実施例を適用しない場合におけるランレングス圧縮後の補正対象画素の位置情報を示す図である。なお、図４の配列（各ＡＦ画素や工程傷４１５の位置など）は一例に過ぎず、本実施例は他の配列についても適用可能である。なお工程傷（工程傷画素）とは、製造段階での初期的欠陥画素である。
【００２６】
本実施例において、図４に示される撮像素子の補正対象画素の配置を各画素の相対距離毎の位置情報として記憶手段に格納すると、図８に示されるようになる。図４において、前回の工程傷（画素４０１）から次の補正対象画素（画素４０２）までの距離は２０である。なお本実施例において、画素４０２は規則的に配列された焦点検出用画素（機能画素）であり、後述の画素４０３〜４１４も画素４０２と同様に焦点検出用画素である。
【００２７】
ここで、距離の単位を画素であるとすると、画素４０２は、画素４０１から２０画素だけ離れて配置されていることになる。図８において、情報８０１（位置情報）として示される「距離２０」は、画素４０２の位置が画素４０１から２０画素だけ離れていることを意味している。同様に、図４中の画素４０２、４０３（いずれもＡＦ画素）の間の距離が「距離６」、画素４０３、４０４の間の距離が「距離６」、画素４０４、４０５との距離が「距離１０」である場合を考える。このとき、図４中の工程傷４１５の存在を無視すれば、画素４０２〜４１４は、「距離６」、「距離６」、「距離１０」の関係を４回繰り返して配置されていると解釈することができる。しかし本実施例では、工程傷４１５がランレングス圧縮する際の特異点となり、図４における画素の位置情報（相対位置情報）の変遷は、図８に示されるようになる。
【００２８】
本実施例において、画素の位置情報に関してランレングス圧縮による情報量の圧縮は、図８に示されるような位置情報の組（周期パターン）を抽出し、同様の周期パターンの繰り返し回数を定義することで実現される。すなわち、図８中の位置情報（情報８０１〜８１４）に適用すると、「距離６」を示す情報８０２、８０３および「距離１０」を示す情報８０４の三つの情報の組を周期パターンと定義する。そして、一つの周期パターン（「距離６」、「距離６」、「距離１０」）を二回繰り返して得られた位置情報（情報８０２〜８０７、ｃｙｃｌｅ−１、ｃｙｃｌｅ−２）に対してランレングス圧縮を行う。これにより、図９に示されるような結果が得られる。
【００２９】
図９において、ランレングス圧縮が行われた周期パターンに含まれる位置情報（距離情報）の個数をＬＥＮＧＴＨ情報（情報９０５）として定義し、周期パターンの繰り返し回数をＣＯＵＮＴ情報（情報９０６）として定義している。ＬＥＮＧＴＨ情報（情報９０５）の数値３は、図９における位置情報（情報９０２、９０３、９０４）の三つの情報で周期パターン化されていることを示している。また、ＣＯＵＮＴ情報（情報９０６）は、ＬＥＮＧＴＨ情報として示される周期パターンが二回繰り返されることを示している。このように、図９中の情報９０１〜９０６により、図４中の画素４０１〜４０８（ｃｙｃｌｅ−１、ｃｙｃｌｅ−２）の位置がランレングス圧縮されて表現（記憶）される。
【００３０】
図７において、情報７０８、７０９（付随情報）は、図４中の工程傷４１５（特異点）の存在を示すために用いられる定義である。このような定義を用いない場合、本来「距離１０」として示されることで規則配列となる位置情報の関係が、工程傷４１５のために図８中の情報８１０、８１１（距離４、距離６）のように二つに分断される。このため、図９の情報９０７以降（ｃｙｃｌｅ−３、ｃｙｃｌｅ−４）に対しては、ランレングス圧縮が行われず、情報の圧縮化が阻害されることになる。
【００３１】
ここで、工程傷４１５（特異点）が存在しないとして、画素４０２〜４１４（ｃｙｃｌｅ−１〜ｃｙｃｌｅ−４）の距離情報（位置情報）に対してランレングス圧縮を行う。このとき、画素４０２〜４１４（第１の画素（ＡＦ画素）の位置情報）は、図７中の情報７０２〜７０６のように表される。図７中の情報７０９（ＥＱ＿Ｃ３）は、図４の工程傷４１５が周期パターンの三回目の繰り返し中に存在することを示している。また、図７中の情報７０８（ＥＱ＿Ｌ２）は、三回目の周期パターンのうち、二つ目の画素（画素４１０）の後）に位置していることを示している。また、図７中の情報７０７（距離４）は、二つ目の画素（画素４１０）から距離が４だけ（四画素分）離れて位置していることを示している。このように本実施例において、特異点である工程傷４１５の存在は、図７中の情報７０７〜７０９（第２の画素（工程傷）の位置情報）により表現することができる。すなわち、情報７０９は、周期パターンの繰り返し回数（第Ｎ番目の周期パターン）を示す。情報７０８は、第Ｎ番目の周期パターンのなかで前の位置に存在する画素（ＡＦ画素）の個数を示す。情報７０７は、直前の画素（ＡＦ画素）から工程傷４１５までの距離（画素数）を示す。なお、情報７０８として示される記号ＥＱ＿Ｌ（ＥＱｕａｌ＿Ｌｅｎｇｔｈ）は、特異点（工程傷４１５）の存在する第Ｎ番目の周期パターンのなかでの位置（前の位置に存在する画素数）を示す記号として便宜的に付されている。また、情報７０９として示される記号ＥＱ＿Ｃ（ＥＱｕａｌ＿Ｃｏｕｎｔ）は、特異点の存在する周期パターンの繰り返し回数を示す記号として便宜的に付されている。
【００３２】
図７に示されるランレングス圧縮を行って得られた距離情報（位置情報）は、図１に示されるように、記憶手段２を介して伸長回路１（解凍回路）を通過することにより、図８に示されるような非圧縮の距離情報（位置情報）に伸長（解凍）することができる。伸長（解凍）後の位置情報は、補正手段３に入力される。このような構成により、補正手段３は、撮像素子を介して画像データを取得する際に、複数の補正対象画素の位置情報を用いて画素補正を行う。なお図１の伸長（解凍）ブロックは、ハードウエアまたはソフトウエア（プログラム）のいずれでも実現可能である。図１はロジック回路として実装することを想定して示しているが、本実施例はこれに限定されるものではない。例えば、図１の記憶部１１０、１１１、１１２（説明は後述）やレジスタなどをフリップフロップ構成によって実現することもできる。
【００３３】
図１において、１００は、補正対象画素の位置情報を一時的に蓄えるバッファである。バッファ１００は、シフトレジスタの構成を有する複数の記憶素子（記憶素子１００１、１００２、１００３、…）を備えている。複数の記憶素子の数としては、シフトレジスタに保持された情報の繰り返しで伸長するため、周期パターンに含まれる規則配列情報の数が必要である。
【００３４】
１０１はランレングスカウント部である。ランレングスカウント部１０１は、情報数カウント部１０１１およびパターンカウント部１０１２を備えている。情報数カウント部１０１１は、規則配列の周期パターンにおける距離情報数（情報７０５：ＬＥＮＧＴＨ情報）を保持し、伸長時にその数を計数する。パターンカウント部１０１２は、周期パターンの繰り返し回数（情報７０６：ＣＯＵＮＴ情報）を保持し、伸長時にその繰り返し回数を計数する。図７において、情報７０５（ＬＥＮＧＴＨ情報）は繰り返し要素数（処理すべき距離情報の数）として３を示している。ただし、情報数カウント部１０１１のカウンタ構成がゼロオリジン（０から計数開始）である場合、設定値自体は（要素数−１）とすればよい。情報７０６（ＣＯＵＮＴ情報）に対しても同様である。なお、図７には、必要数そのものが記載されている。
【００３５】
ランレングスカウント部１０１の情報数カウント部１０１１は、バッファ１００に対して信号ｓｉｇ＿１０１１を送出する。信号ｓｉｇ＿１０１１は、バッファ１００のセレクタ１００４を切り替える制御信号である。この制御信号により、周期パターン中の距離情報進捗結果を反映して、バッファ１００から読み出すべき注目情報が保持されている記憶素子（記憶素子１００１、１００２、１００３、…）の出力が選択され、加算器１０５およびセレクタ１０６へ送出される。また、情報数カウント部１０１１は、所望の数（繰り返しの周期パターンの単位）の計数状態を表す信号ｓｉｇ＿１０１２を後述の比較処理部１０３へ出力する。パターンカウント部１０１２は、所望の数（繰り返し回数）の計数情報を表す信号ｓｉｇ＿１０１３を比較処理部１０３へ出力する。
【００３６】
１０２はレジスタ１０２１、１０２２を有する特異点レジスタ部である。レジスタ１０２１は、繰り返される周期パターン中の特異点（図４中の工程傷４１５）の位置を示すＥＱ＿Ｌ情報（情報７０８）を保持する。レジスタ１０２２は、特異点の存在する繰り返し回数を示すＥＱ＿Ｃ情報（情報７０９）を保持する。特異点レジスタ部１０２は、レジスタ１０２１の保持情報を信号ｓｉｇ＿１０２１として比較処理部１０３へ出力し、レジスタ１０２２の保持情報を信号ｓｉｇ＿１０２２として比較処理部１０３へ出力する。
【００３７】
１０３は比較処理部である。比較処理部１０３は、ランレングスカウント部１０１の出力と特異点レジスタ部１０２の出力とを比較して一致／不一致を検出するコンパレータ（不図示）を含む。また比較処理部１０３は、信号ｓｉｇ＿１０３１、ｓｉｇ＿１０３２、ｓｉｇ＿１０３３の状態を管理する状態管理部（不図示）を含む。
【００３８】
比較処理部１０３から出力される信号ｓｉｇ＿１０３１は、ランレングス伸長していない通常の処理、ランレングス伸長処理中、または、特異点情報処理の三つのいずれかの状態を示す状態信号（ｓｔａｔｕｓ信号）である。信号ｓｉｇ＿１０３１は、デジタル信号として２ｂｉｔを必要とする。比較処理部１０３から出力される信号ｓｉｇ＿１０３２は、伸長処理の完了を示す状態信号（ｓｔａｔｕｓ信号）である。比較処理部１０３から出力される信号ｓｉｇ＿１０３３は、特異点処理の実行を示す状態信号（ｓｔａｔｕｓ信号）である。信号ｓｉｇ＿１０３３は、信号ｓｉｇ＿１０１２とｓｉｇ＿１０２１、信号ｓｉｇ＿１０１３とｓｉｇ＿１０２２のそれぞれが一致したことを検出することにより生成される。
【００３９】
１０４は、ランレングス化の有無および付随情報の有無を検出する検出部である。記憶部１１０、１１１に記憶された二つの距離情報の属性に基づいて、記憶部１１０、１１１に記憶された情報がランレングス情報である場合、検出部１０４は、ランレングスカウント部１０１に対してロード信号（信号ｓｉｇ＿１０４１）を出力する。同様に、記憶部１１０、１１１の情報が付随情報である場合、検出部１０４は、特異点レジスタ部１０２に対してロード信号（信号ｓｉｇ＿１０４２）を出力する。検出部１０４から出力される信号ｓｉｇ＿１０４５は、初期状態または非ランレングス制御状態において、セレクタ１０７、１０８の出力状態として０値が選択されるように制御する信号である。
【００４０】
１０５は、ランレングス化情報の伸長時に特異点情報の結果を反映または挿入する際に用いられる加算器である。１０６は、比較処理部１０３の結果（信号ｓｉｇ＿１０３１）に基づいて、バッファ１００の出力（ｓｅｌ＿１０６３）、加算器１０５の出力（ｓｅｌ＿１０６２）、および記憶部１１２の出力（ｓｅｌ＿１０６１）のいずれか一つを選択するセレクタである。
【００４１】
図１の伸長回路１（解凍回路）は、図７に示されるような距離情報群（位置情報群）を順次入力され、これらの距離情報群を伸長して図８に示されるような距離情報群を出力する。以下、図７および図８の距離情報を用いて、図１の伸長回路の動作について説明する。
【００４２】
伸長回路１は、図７に示されるような、ランレングス圧縮された補正対象画素の位置情報（入力データ）を受信すると、位置情報を記憶部１１０、１１１に順にシフトして格納する。記憶部１１０、１１１に格納されたデータは、バッファ１００および検出部１０４に送出可能である。更に、これらのデータは、セレクタ１０７、１０８を介して、ランレングスカウント部１０１および特異点レジスタ部１０２のそれぞれにも送出可能である。また非圧縮時には、これらのデータは記憶部１１２に送出される。
【００４３】
検出部１０４は、記憶部１１０、１１１の更新タイミングで、記憶部１１０、１１１のデータ対を検出する。すなわち、記憶部１１０、１１１のデータ対がＬＥＮＧＴＨ情報（情報７０５）とＣＯＵＮＴ情報（情報７０６）の対（状態Ａ）であるか、または、ＥＱ＿Ｌ情報（情報７０８）とＥＱ＿Ｃ情報（情報７０９）の対（状態Ｂ）であるかを検出する。検出部１０４は、データ対（状態Ａまたは状態Ｂ）の検出時に、信号ｓｉｇ＿１０４５をセレクタ１０７が記憶部１１１の保持データ（信号ｓｉｇ＿１１１１）を出力するように制御する。更に検出部１０４は、セレクタ１０８が記憶部１１０の保持データ（信号ｓｉｇ＿１１０１）を出力するように制御する。このようにして、記憶部１１０、１１１に格納されたデータは、ランレングスカウント部１０１および特異点レジスタ部１０２にそれぞれ転送される。
【００４４】
検出部１０４は、状態Ａを検出した場合、信号ｓｉｇ＿１０４１（ロード信号）をランレングスカウント部１０１に出力する。ランレングスカウント部１０１は、検出部１０４から出力されたロード信号を受けて、記憶部１１１のデータを情報数カウント部１０１１中のレジスタに取り込む。このとき同様に、ランレングスカウント部１０１は、記憶部１１０のデータをパターンカウント部１０１２中のレジスタに取り込む。
【００４５】
検出部１０４は、状態Ｂを検出した場合、信号ｓｉｇ＿１０４２（ロード信号）を出力する。特異点レジスタ部１０２は、検出部１０４から出力されたロード信号を受けて、記憶部１１１のデータをレジスタ１０２１に格納し、記憶部１１０のデータをレジスタ１０２２に格納する。これらの状態Ａ、Ｂの検出結果は、バッファ１００、記憶部１１２のデータ更新制御のために、検出部１０４に保持される。また、状態Ａ、Ｂの検出結果は、ランレングス伸長中にバッファ１００および記憶部１１２が更新されないように、補正対象画素の位置情報の送出側（不図示）に対してデータ送出の即時停止要求信号（Ｓｔｏｐ  ｓｔａｔｕｓ：不図示）を出力するのに用いてもよい。
【００４６】
検出部１０４の状態Ａに係る伸長処理の完了は、比較処理部１０３からの信号ｓｉｇ＿１０３２（状態信号）の受信により確認することができる。検出部１０４は、信号ｓｉｇ＿１０３２の出力を受けて信号ｓｉｇ＿１０４５（切替信号）を切り替え、セレクタ１０７、１０８の出力として０値側を選択する。そして、信号ｓｉｇ＿１０４１、ｓｉｇ＿１０４２（ロード信号）を出力して、ランレングスカウント部１０１および特異点レジスタ部１０２のそれぞれのレジスタの状態を初期化し、ランレングス伸長制御状態から抜ける。
【００４７】
検出部１０４が状態Ａおよび状態Ｂのいずれも検出せず、かつ、ランレングス伸長制御状態でもない場合、入力データの受信毎に信号ｓｉｇ＿１０４３を出力して記憶部１１２の記憶データを更新する。更に、検出部１０４は、信号ｓｉｇ＿１０４４（シフト信号）を出力してバッファ１００の一時バッファ（記憶素子１００１、１００２、１００３、…）内のデータをシフトさせる。データをシフトさせた結果、最終段のデータは上書きされる。このため、ランレングス圧縮のパターン長（ＬＥＮＧＴＨ情報（情報７０５）は、一時バッファの保持可能数（容量）を超えて設定することはできない。
【００４８】
検出部１０４がランレングス伸長制御状態にあるにも関わらず状態Ａを検出した場合、入力データの不具合であり、それを検知してエラー状態を保持するレジスタなどの記憶部（不図示）を設けてもよい。また、検出部１０４がランレングス伸長制御状態である場合、入力データは３データまでの受信を許可する。３データは、状態Ｂの場合の図７に示される情報７０７、７０８、７０９の受信を可能にするためのデータであり、記憶部１１０、１１１、１１２に格納される。データがランレングス化以降の任意の工程傷などのデータである場合、ランレングス伸長が完了するまで、それらの記憶部に保持（処理保留）される。ランレングス処理における、それ以降のデータ受信においては、入力データ送出側（前段）に対して入力データ送出の一時停止を要求し（一般的なデータ授受Ｉ／Ｆのため、回路は不図示である。）、以降のデータ転送Ｉ／Ｆを保留する。
【００４９】
検出部１０４がランレングス伸長制御状態にあって、記憶部１１０、  １１１に格納されたデータから状態Ｂを検出した場合、検出部１０４は、セレクタ１０７、１０８が記憶部１１１，１１０に格納されたデータを出力するように信号ｓｉｇ＿１０４５を制御する。またこの場合、検出部１０４は、特異点レジスタ部１０２に対して信号ｓｉｇ＿１０４２（ロード信号）を出力する。特異点レジスタ部１０２は、ＥＱ＿Ｌ情報（情報７０８）をレジスタ１０２１に、ＥＱ＿Ｃ情報（情報７０９）をレジスタ１０２２にそれぞれ格納する。このとき、記憶部１１２には、特異点位置情報（情報７０７）が格納されている。
【００５０】
状態Ａ（ランレングス情報）検出後にランレングスカウント部１０１は、情報数カウント部１０１１にてランレングスパターン長のカウントを開始する。情報数カウント部１０１１は、そのカウント結果を信号ｓｉｇ＿１０１１としてセレクタ１００４に出力する。バッファ１００は、内部の一時バッファ（記憶素子１００１、１００２、１００３、…）に格納されたデータの出力を、信号ｓｉｇ＿１０１１に応じてセレクタ１００４を切り替えることにより選択し、選択データをセレクタ１０６に対して出力する。
【００５１】
例えば、図７に示される位置情報の入力に対しては、情報７０２、７０３、７０４の出力で一巡となる。図１の伸長回路１（解凍回路）は、図８に示される位置情報の出力として情報８０２、８０３、８０４を送出した時点で、パターンカウント部１０１２を１インクリメントする。そして、情報数カウント部１０１１が初期状態に戻るように、ランレングスカウント部１０１を制御する。この動作は繰り返され、引き続き、出力データとして情報８０５、８０６、８０７が出現する。
【００５２】
本実施例において、信号ｓｉｇ＿１０３１は３状態（ｓｅｌ＿１０６１、ｓｅｌ＿１０６２、ｓｅｌ＿１０６３）をとる。比較処理部１０３は、ランレングスカウント部１０１が非ランレングス伸長処理時として０値出力を行っている場合、セレクタ１０６の出力状態に状態ｓｅｌ＿１０６１の記憶部１１２のデータ出力を選択するように、信号ｓｉｇ＿１０３１を制御する。ランレングス伸長の定常状態では、比較処理部１０３出力の信号ｓｉｇ＿１０３１（選択信号）は、セレクタ１０６の選択状態としてバッファ１００の出力（ｓｅｌ＿１０６３）を選択する。図７の入力データでは、パターン長３、パターン繰り返し４（３個の距離データを４回繰り返すように）で設定されており、特異点処理以外はバッファ１００の出力が選択される。
【００５３】
比較処理部１０３は、ランレングスカウント部１０１の出力が０でない場合、ランレングス伸長制御状態であると判定する。この状態で特異点レジスタ部１０２の出力が０値の場合、特異点の存在を認めず、信号ｓｉｇ＿１０３１の状態を、バッファ１００の出力選択状態である状態ｓｅｌ＿１０６３に制御する。
【００５４】
比較処理部１０３は、ランレングスカウント部１０１の出力が０でなく、かつ、特異点レジスタ部１０２の出力も０でない場合、ランレングスカウント部１０１の出力と特異点レジスタ部１０２の出力とを比較する。そして比較処理部１０３は、これらの出力が一致する場合、出力伸長データに特異点の距離情報（位置情報）を含めるように信号ｓｉｇ＿１０３１を切り替える。
【００５５】
比較処理部１０３は、情報数カウント部１０１１の出力（ｓｉｇ＿１０１２）とレジスタ１０２１の格納値（ｓｉｇ＿１０２１）とが一致するか否かを判定する。また比較処理部１０３は、パターンカウント部１０１２の出力（ｓｉｇ＿１０１３）とレジスタ１０２２の格納値（ｓｉｇ＿１０２２）とが一致するか否かを判定する。そして比較処理部１０３は、これらがそれぞれ一致する場合、信号ｓｉｇ＿１０３１の状態を、記憶部１１２に格納されたデータの出力するように制御する（ｓｅｌ＿１０６１）。このとき、記憶部１１２には情報７０７（距離情報）が記憶されており、図８の情報８１０（伸長出力結果）のように反映される。そして、信号ｓｉｇ＿１０３１の状態を上述の値（ｓｅｌ＿１０６１）とした後、加算器１０５（減算器）の出力を選択するように制御し（ｓｅｌ＿１０６２）、図８の情報８１１として示される伸長結果が得られる。
【００５６】
特異点の距離情報（位置情報）が挿入された後、信号ｓｉｇ＿１０３１は比較処理部１０３によって再びバッファ１００の出力側（ｓｅｌ＿１０６３）に戻され、通常のランレングス伸長の続きが実施される。その結果、図８に示されるように、情報８１０、８１１に続いて情報８１２〜８１４が出力される。カウンタの起点が０の場合、情報７０５、７０６、７０８、７０９などの設定数値は、実際の回数（個数）−１として設定すればよい。
【００５７】
ランレングス処理中に複数の特異点を設定する場合、まず、最初の特異点について上記の処理が施される。続く特異点の処理は、先の特異点の処理完了後に、同様の手順で特異点レジスタ部１０２にＥＱ＿Ｌ情報およびＥＱ＿Ｃ情報がロードされて行われる。
【００５８】
また、本実施例の距離データの表現において、ランレングス圧縮データに続く（ランレングス伸長後の）工程傷などの不規則データの距離情報は、伸長結果の最終データ位置からの相対距離で表現すればよい。本実施例のランレングス圧縮後の位置情報（距離情報）の伸長回路（解凍回路）の出力は、例えば、デジタル化した撮像データに対してセンサ補正前処理を行った後の欠陥補正実施時に、補正手段３に図８に示されるような位置情報（距離情報）として供給される。
【００５９】
本実施例の処理は、撮影時に並行して行う必要はなく、撮影の事前に伸長（解凍）処理を実施して、システムの一時的な記憶部（ＤＲＡＭなどの揮発性記憶手段：不図示）に格納しておけばよい。この処理を撮影時にオンフライで実施すれば、そのまま欠陥画素補正手段（不図示）に伸長（解凍）データを転送すればよいため、リソース（ＤＲＡＭなどの揮発性記憶手段）も消費しない。
【００６０】
以上のように、本実施例の圧縮データは、ランレングス圧縮化した傷データの後ろに、図７に示される情報７０７〜７０９を添付することにより与えられる。情報７０９は、特異点直前までのランレングス繰り返し回数である。情報７０８は、直前の規則配列画素までの距離を示す情報のランレングス中の順番である。情報７０７は、直前の規則配列画素から特異点までの距離である。
【００６１】
本実施例において、ランレングス圧縮化された傷データは、ＡＦ画素などの機能画素のように規則的に配列されている（欠陥画素同様の）補正対象画素について、従来のランレングス化処理後の情報に、特異点となる欠陥画素の位置情報を重畳して得られる。本実施例の圧縮データは、例えば、規則的に配置された補正対象画素の位置情報として、１周期に含まれる位置情報の個数およびランレングス処理の周期回数を利用し、それぞれの情報を含むランレングスデータに圧縮するランレングス圧縮手段を介して取得される。
【００６２】
そして、ランレングス化の先頭画素位置を基準として、任意の補正位置にある画素データを、ランレングスデータの表現に沿うように、画素位置直前の繰り返し回数と、そこからの残差に内在する位置情報の個数を算出する。ランレングスデータの表現とは、例えば、繰り返しに含まれる位置情報の個数や繰り返し回数である。このような構成により特異点情報を取得することで、ランレングス圧縮結果に特異点情報を重畳することができる。本実施例では、特異点情報を圧縮単位の後部に添付するが、これに限定されるものではなく、他の形式を採用してもよい。また、図７に示される情報７０７（距離情報）は、特異点とその直前の規則配列画素との相対位置として取得可能である。
【００６３】
以上のとおり、本実施例の撮像装置１０は、撮像素子の複数の補正対象画素の位置情報を保持する記憶手段２、および、撮像素子を介して画像データを取得する際に、複数の補正対象画素の位置情報を用いて画素補正を行う補正手段３を有する。記憶手段２は、複数の補正対象画素のうち規則的に配置された第１の画素（機能画素）の位置情報をランレングス圧縮して保持する。また記憶手段２は、複数の補正対象画素のうち不規則的に配置された第２の画素（工程傷画素）の位置情報を、ランレングス圧縮して保持された第１の画素の位置情報に付加して保持する。
【００６４】
好ましくは、第１の画素の位置情報は、第１の画素の一つの周期パターンに存在する第１の画素の数を示す第１の情報（情報７０５）、および、周期パターンの繰り返し回数を示す第２の情報（情報７０６）を含む。また第２の画素の前記位置情報は、第２の画素が周期パターンに存在する第１の画素のうちいずれの画素の次に存在するかを示す第３の情報（情報７０８）、および、第２の画素が何回目の周期パターンに存在するかを示す第４の情報（情報７０９）を含む。換言すると、第１の情報は、第１の画素の一つの周期パターンに存在する第１の画素の間の距離情報の数を示す。また第３の情報は、第２の画素が周期パターンのいずれの距離情報の次に存在するかを示す。
【００６５】
また好ましくは、撮像装置１０は、記憶手段２にランレングス圧縮して保持された第１の画素の位置情報を伸長する伸長回路１を有する。伸長回路１は、第１の情報、第２の情報、第３の情報、および、第４の情報を一時的に保持して第１の画素の位置情報を伸長する。また伸長回路１は、第１の情報および第２の情報に基づいて第１の画素のランレングス圧縮状態を検出し、第３の情報および第４の情報に基づいて第２の画素の位置を検出する検出部１０４を有する。
【００６６】
また好ましくは、伸長回路１は、ランレングス圧縮された規則配置の第１の画素の位置情報、および、不規則配置の第２の画素の位置情報を含む補正対象画素の位置情報を一時的に記憶する記憶手段（記憶部１１０、１１１）を有する。また伸長回路１は、第１の画素の位置情報に基づいて、第１の画素の一つの周期パターンに存在する第１の画素の数を計数し、かつ、周期パターンの繰り返し回数を計数するカウント部（ランレングスカウント部１０１）を有する。また伸長回路１は、第２の画素が周期パターンに存在する第１の画素のうちいずれの画素の次に存在するか、および第２の画素が何回目の周期パターンに存在するか、を示す情報（第２の画素の位置情報）を保持するレジスタ部（特異点レジスタ部１０２）を有する。また伸長回路１は、カウント部およびレジスタ部の状態に基づいて補正対象画素の位置情報を伸長する伸長手段（バッファ１００、比較処理部１０３、検出部１０４、セレクタ１０６）を有する。また本実施例は、情報処理装置に上記伸長回路の機能を実行させるプログラムにも適用可能である。
【００６７】
本実施例によれば、欠陥画素が不規則に存在しても、規則的に配置された機能画素の位置情報のランレングス圧縮を可能にすることにより、補正対象画素の全体の位置情報の記憶容量を低減させた撮像装置、伸長回路、およびプログラムを提供することができる。
【実施例２】
【００６８】
次に、本発明の実施例２における補正データ生成装置について説明する。補正データ生成装置は、複数の補正対象画素のうち規則的に配置された第１の画素の位置情報を含む第１のデータ群（データ１１００）と、任意の位置に配置された第２の画素の位置情報を含む第２のデータ群（データ１１０１）とを結合して補正データを生成する。本実施例において、第１の画素の位置情報は、１回の繰り返しに含まれる位置情報の個数、および、ランレングス圧縮処理の繰り返し回数に関する情報を含む。
【００６９】
図１１は、本実施例における補正データ生成装置２０の要部ロジック回路図であり、本実施例における補正対象画素の位置データを生成する手段のランレングスデータに対して特異点データを追加するロジック回路を示している。図１１の補正データ生成装置２０に関して、規則配列である補正対象画素の位置情報は、既にランレングス化されたデータ１１００（ランレングスデータ）として存在する。また補正データ生成装置２０は、特異点である任意の位置の補正対象画素の位置情報を保存したデータ１１０１（補正画素情報、すなわち任意の位置データである特異点データ）を走査順に取得し、データ１１００のランレングス圧縮の単位で特異点情報を付加する。
【００７０】
図１４は、本実施例における補正データ生成装置２０に入力されるデータ１１００、１１０１の構成図である。図１１の補正データ生成装置２０により処理されるデータ１１００（ランレングスデータ）は、図１４（ａ）に示されるように定義される。図１４（ａ）のデータ１１００は、２つのランレングスデータを含む位置情報構成となっている。図１４（ａ）に示されるように、（ランレングス）圧縮データと非圧縮データとが混在するように構成される。また、機能画素の規則配列がフレーム全体に続かない場合でも、規則配列と規則配列とをジャンプして定義することが可能であり、また、規則配列間に任意の補正画素が存在しても成立する。図１１の補正データ生成装置２０により処理される特異点としてのデータ１１０１（補正画素情報）は、図１４（ｂ）に示されるように、全てが非圧縮データとして各点間の距離データの集合である。そして各点は、フレーム処理の走査順に解釈され、その間を相対距離として保持するように構成されている。
【００７１】
本実施例において、図４中の画素４０２〜４１４のそれぞれの相対距離情報を図４に示されるように定義する。このときランレングス化したデータは、図７中のデータ（情報７０２〜７０６）のように、繰り返し間の距離データ（３つの情報７０２〜７０４）、その個数データ（ＬＥＮＧＴＨ＝３）、および、その繰り返し回数データ（ＣＯＵＮＴ＝４）により構成される。本実施例は、既存のランレングス圧縮データを含む規則配列としての補正画素データに、それに対する特異点としての任意の補正画素位置データをマージする。特にランレングス圧縮中の座標に特異点となる補正画素位置が存在する場合、ランレングス圧縮の関係を壊さないように、ランレングスデータの後に特異点情報を付加するようにデータをマージする。
【００７２】
図４は、繰り返し補正対象の画素４０２〜４１４に対して特異点４１５を定義した図である。図８は、各補正対象を非圧縮のまま情報保持した場合のデータ配列の例示である。図８はランレングス化した場合、図９のように圧縮可能である。また、図７に示されるようにランレングス化と補助データとの組み合わせとして、更に圧縮することが可能である。
【００７３】
本実施例の補正データ生成装置２０は、図７のようなデータ構成を生成するための手段である。
【００７４】
続いて、図１１を参照して、ランレングス化データに対する特異点情報付加についての具体例を説明する。図１１は、規則配列としての補正画素情報をランレングス圧縮したデータを含む距離データ（データ１１００）と、特異点としての任意の位置にある補正画素の距離データ（データ１１０１）とのマージ情報（結合情報）の生成ロジックを示す。
【００７５】
図１２は、本実施例における補正データ生成装置２０のタイミングチャートである。図１１中の各ロジックエレメントの出力状態は、図１２に示されるタイミングチャートのように遷移する。図１１中のレジスタ（記憶手段）は、クロック（ＣＬＫ）信号に基づいて動作する同期回路であり、各レジスタ間を同一クロックの立ち上がりエッジで同相転送する。
【００７６】
マージ情報としては、図７のようなランレングス化データと補助データとの組み合わせとして、注目ランレングスデータを展開したときにどの位置に追加画素位置が来るのかを示すデータとして添付する。ランレングスデータの構造は、図１４に示されるように、構成エレメントとなる複数の距離データと、距離データの個数（１回の展開データ数：ＬＥＮＧＴＨ）と、それを何回繰り返すかのカウント数（ＣＯＵＮＴ）とから構成される。また添付データとしては、何回目の伸長時かを示すデータ（ＥＱ＿Ｃ）と、そのときの伸長距離データの何個目かを示すデータ（ＥＱ＿Ｌ）とから構成されるように定義する。
【００７７】
例えば、データ１１００、１１０１は、不図示の場所から転送されるが、例えばＣＰＵ（不図示）からあるタイミング情報と共に転送されてもよい。ここでは、ランレングスデータ（データ１１００）の転送を図１１中のｅｖｅｎｔ＿Ｃで、特異点データ（データ１１０１）の転送を図１１中のｅｖｅｎｔ＿Ａで、それぞれ、転送および保持することができる。
【００７８】
バッファ１１０２は、ランレングスデータ（データ１１００）を転送信号ｅｖｅｎｔ＿Ｃのイベント受信時に格納および更新する。本実施例では、ランレングスデータ（データ１１００）の圧縮時の繰り返し対象となる距離データの最大個数を４個とし、ランレングス圧縮時の最大データ構成数を６と定義する。バッファ１１０２は、ランレングスデータ（データ１１００）を受信すると、バッファ１１０２中のエレメント（レジスタ１０２６）から順に、レジスタ１０２５、１０２４、…、１０２１へシフト転送するシフトレジスタである。
【００７９】
１１０３は、第１のデータ群に含まれるデータ（データ１１００）を順に判定する判定手段である。本実施例において、判定手段１１０３は、バッファ１１０２の受信データが圧縮データまたは非圧縮データのいずれであるかを判定する。レジスタ１０２５にＬＥＮＧＴＨデータが格納され、かつレジスタ１０２６にＣＯＵＮＴデータが格納されている場合、判定手段１１０３は、ランレングス圧縮データを検出するようにＬＥＮＧＴＨデータおよびＣＯＵＮＴデータに任意のＩＤ情報を添付してもよい。判定手段１１０３がランレングス圧縮データを検出した場合、レジスタ１０２１〜１０２４には圧縮時の繰り返しとなる距離データが格納されている。例えば、繰り返しデータ数が１（ＬＥＮＧＴＨ＝１）の場合にはレジスタ１０２４にのみ距離データが格納され、繰り返しデータ数が３の場合にはレジスタ１０２１〜１０２３に距離データが格納されている。
【００８０】
１１０７は、繰り返しデータとなるエレメントが示す距離（相対距離）を積算する積算部（第１の積算部）である。１１０４は、積算部１１０７の結果をＣＯＵＮＴ回数だけ積算する積算部（第２の積算部）である。本実施例において、積算部１１０４は、判定手段１１０３の結果に基づいて第１のデータ群（データ１１００）に含まれる更新前の基準位置と更新後の基準位置との間の第１の距離を算出する第１の距離算出手段である。１１０５は、基準点を保持および更新するレジスタである。レジスタ１１０５は、判定手段１１０３の結果に応じて基準位置を更新して保持する。ランレングス圧縮データの解析中において、レジスタ１１０５の出力がランレングスデータの起点を示すように、ランレングスの解釈終了ごとにレジスタ１１０５の現在値に、積算部１１０４の現在の出力結果を加算して、基準点の位置を更新する。従って、基準点はフレームの走査起点からの絶対距離と等価な距離情報を有するものと定義される。
【００８１】
１１０６は、絶対距離情報算出部（変換部）である。絶対距離情報算出部１１０６は、第２のデータ群（データ１１０１）に含まれる位置情報を順に積算し、処理の開始点からの絶対距離情報を算出する絶対距離算出手段である。本実施例において、任意の補正画素の位置データであるデータ１１０１は、非圧縮データであり、各補正画素位置間の相対距離を保持するように定義される。このため、処理対象となるデータ１１０１の更新ごとに、絶対距離情報算出部１１０６の出力が任意の補正データ（データ１１０１）の対象となる補正画素位置の絶対座標と等価な距離情報に更新される。すなわち絶対距離情報算出部１１０６は、第２のデータ群に含まれるデータ１１０１を、第２の画素の位置情報を示す絶対座標と等価な距離情報となるように変換する。
【００８２】
１１０８は、加算器（減算器）であり、ランレングス起点から注目特異点までの相対距離を出力する。加算器１１０８（減算器）は、レジスタ１１０５の出力と絶対距離情報算出部１１０６の出力との差に基づいて第２の距離を算出する第２の距離算出手段である。１１２３は、積算部１１０４の出力（第１の距離）と加算器１１０８の出力（第２の距離）とを比較する（大小比較を行う）比較手段である。積算部１１０４の出力（第１の距離）は、現在の起点（現基準点）からランレングス伸長後の最後の画素位置までの相対距離（次期基準点）を示す。現基準点から特異点までの相対距離が次期基準点までの相対距離よりも大きい場合、ＣＰＵ（不図示）に対して次期ランレングスデータを要求する必要がある。このため比較手段１１２３は、第２の距離が第１の距離よりも大きい場合、第１のデータ群（データ１１００）に含まれる次のデータの処理に進めるための要求を出力する。
【００８３】
ランレングス圧縮データを処理中において、比較手段１１２３の結果が前述と逆の場合（次期基準点よりも処理対象の特異点のほうが現基準点に近い場合）、特異点解析および添付データ生成作業を継続するように、ｅｖｅｎｔ＿Ｂの発生を要求する。ｅｖｅｎｔ＿Ｂは、一旦、ＣＰＵ（不図示）を介して発生してもよく、または、ロジックを追加して機械的に発生させてもよい。
【００８４】
１１０９は、イベント（ｅｖｅｎｔ＿Ｂ）時に加算器１１０８（減算器）の結果を保持し、その値（結果）から積算部１１０７の出力値を減じた結果（加算器１１１０の出力値）を、加算器１１１０の結果が負になるまで更新するレジスタである。レジスタ１１０９の出力は、図１２中の１１０９ｏｕｔとして示されている。１１１１は、前述の減算処理の実行期間を示すステータスを生成するレジスタであり、ｅｖｅｎｔ＿Ｂの受信時から加算器１１１０の出力値が負になるまで、１値となる。レジスタ１１１１の出力は、図１２中の１１１１ｏｕｔとして示されている。
【００８５】
１１１２は、クロック（ＣＬＫ）ごとにレジスタ１１１１の連続した１値状態を計数するカウンタである。カウンタ１１１２のカウント結果が、注目特異点が注目ランレングスデータの繰り返し処理の何回目に挿入されるかを示す情報（ＥＱ＿Ｃ値）となる。なお、この状態の推移（カウンタ１１１２の出力）は、図１２中の１１１２ｏｕｔに示されている。
【００８６】
１１１８、１１１９は、それぞれ、ＥＱ＿Ｃ値の解析完了のイベントを生成する微分回路を構成するレジスタおよびロジック回路である。ロジック回路１１１９の出力は、図１２中の１１１９ｏｕｔとして示される。イベントをレジスタ１１１３、１１１４が受けることにより、注目特異点が対象となるランレングス繰り返しデータ中の構成要素のどの位置に入るか（ＥＱ＿Ｌ値、および、近傍画素からの相対距離）の解析を開始する。１１１３は、ＥＱ＿Ｌ値および近傍画素からの相対距離解析の要求ステータスを生成および保持するレジスタである。レジスタ１１１３は、微分回路の出力結果（図１２中の１１１９ｏｕｔ）を受けて１値となり、加算器１１１５（減算器）の出力が負値となると０値となる。レジスタ１１１３のステータスの遷移（レジスタ１１１３の出力）は、図１２中の１１１３ｏｕｔとして示される。
【００８７】
１１１４は、微分回路からの出力結果を受けてレジスタ１１０９の結果（繰り返し距離単位で減算した結果の残距離）を初期値としてロードし、そこからランレングスのエレメント（距離データ）ごとに順に減算した結果を保持および更新するレジスタである。加算器１１１５（減算器）の結果が負値となる直前の値が、直近の構成エレメント（繰り返し対象画素）からの相対距離データとなる（例えば、図７中の情報７０７のような添付距離データ）。１１１６は、レジスタ１１１３の出力が連続する１値の状態を計数するカウンタであり、そのカウント結果が内輪で直近の構成エレメントの（ランレングス配置内での）位置を示す情報（ＥＱ＿Ｌ値）となる。カウンタ１１１６の状態の遷移（カウンタ１１１６の出力）は、図１２中の１１１６ｏｕｔとして示される。
【００８８】
１１１７は、加算器１１１５（減算器）に投入するデータを選択するセレクタである。選択信号としては、カウンタ１１１６の出力が用いられる。前述のように、図１は最大４エレメントを内包可能なランレングスデータを解析する手段として例示している。このため、セレクタ１１１７も４状態の選択として例示されている。セレクタ１１１７の状態の遷移（セレクタ１１１７の出力）は、図１２中の１１１７ｏｕｔとして示される。
【００８９】
１１２０、１１２１は、それぞれ、注目特異点の解析完了のイベントを生成する微分回路を構成するロジック回路およびレジスタである。１１２２は、イベントをレベル信号（ステータス）として保持するためのレジスタであり、例えば、ＣＰＵ（不図示）が信号を受信した後、次期特異点データ（データ１１０１）を図１の補正データ生成装置２０に送出してもよい。ロジック回路１１２０、レジスタ１１２１、および、レジスタ１１２２の状態の遷移は、それぞれ、図１２中の１１２０ｏｕｔ、１１２１ｏｕｔ、１１２２ｏｕｔとして示される。これらの状態の遷移は、ＥＱ＿Ｌ＝２、ＥＱ＿Ｃ＝３（図７）となるように例示されている。
【実施例３】
【００９０】
次に、図１３を参照して、本発明の実施例３におけるランレングスデータ（データ１１００）の解析について説明する。図１３は、補正データ生成装置２０の要部詳細図であり、データ１１００、１１０１の受信時のバッファ１１０２、判定手段１１０３、積算部１１０７、積算部１１０４、基準点更新のためのレジスタ１１０５、および、比較手段１１２３の詳細図である。本実施例は、実施例２と同様に、図１１の補正データ生成装置２０の回路部とのデータ送受信にはＣＰＵ（不図示）が介在しているもののとして説明する。なお本実施例は、全ての構成をハードウエアにより実現（ＤＭＡなど）してもよい。
【００９１】
図１４中の１１０２〜１１２３は、それぞれ、図１１の構成要素の抜粋である。本実施例では、ランレングス圧縮時の圧縮対象の距離情報を最大４データとして例示している。このため、図１４中のバッファ１１０２のエレメント（レジスタ１０２１〜１０２６）は、距離データ４及び情報データ２を格納可能であるように６エレメント構成として例示している。各エレメントは、シフトレジスタ構成を採り、レジスタ１０２６からレジスタ１０２１に向かってデータをシフトする。
【００９２】
判定手段１１０３は、バッファ１１０２中のレジスタ１０２５、１０２６に、例えば図７中の情報７０５、７０６（ＬＥＮＧＴＨ、ＣＯＵＮＴ）を検出する。情報７０５、７０６は、解析可能なＩＤの添付されたデータとして定義される。判定手段１１０３中のＩＤ検出部１０３１は、現在の注目データ群（バッファ１１０２の格納データ）がランレングス圧縮されているか否かを判定する。
【００９３】
１０３２は、ランレングス圧縮データを展開する際に、レジスタ１０２１、１０２２、１０２３のいずれか（または全て）がランレングス圧縮の繰り返しデータに含まれない場合、ランレングス圧縮データ対の解析前に処理を進捗させる制御部である。制御部１０３２は、ＩＤ検出部１０３１により現注目データが非圧縮データでないと判定された場合、レジスタ１０２１のデータを非圧縮データとして処理進捗するように制御する。これは、本実施例の繰り返しデータ最大数を４であって、現在のレジスタ１０２５、１０２６が圧縮ＩＤを示さない場合、次期データ到達時にレジスタ１０２１のデータが繰り返しデータに含まれないことが確定するためである。制御部１０３２は、セレクタ１３０１を切り替えて非圧縮データ処理対象のデータ（レジスタ１０２１、１０２２、１０２３のデータ）から所望のデータを後段に通し、処理進捗を行う。
【００９４】
１０３３は、ＩＤ検出部１０３１の結果および制御部１０３２の非圧縮データ進捗結果に基づいて、次期処理のステータスを出力する制御指示部である。積算部１１０７（第１の積算部）は、制御部１０７１およびレジスタ１０７２を含む。制御部１０７１は、制御指示部１０３３の出力であるｅｎａｂｌｅ信号が処理ｅｎａｂｌｅ状態を出力した後、レジスタ１０２５の値を読み込み、レジスタ１０２１〜１０２４中の所望のデータを選択するようにセレクタ１０７３の選択を切り替える。セレクタ１０７３の出力値は、レジスタ１０７２に積算される。レジスタ１０７２の積算結果は、対象となるランレングス圧縮データの繰り返し１回における補正対象画素の走査上における距離進捗である。
【００９５】
レジスタ１０７２への積算完了時に、制御部１０７１は積算部１１０４（第２の積算部）に対して積算開始のトリガ信号を送出する。積算部１１０４において、１０４１は、積算の開始および完了を制御する制御部である。１０４２は、積算結果を保持するレジスタである。積算は、レジスタ１０７２の出力を、レジスタ１０２６中のＣＯＵＮＴデータでの指示回数だけ積算する。積算後の結果出力は、現在処理しているランレングス圧縮部を伸長した場合の、走査距離（開始画素から終了画素までの相対距離）となる。１０４３は、圧縮時の伸長時相当の走査距離、または、非圧縮時のセレクタ１３０１の出力のいずれか一方を選択的に通すセレクタである。セレクタ１０４３の選択は、判定手段１１０３の制御指示部１０３３からの、現在圧縮データ処理か非圧縮データ処理かの選択信号により切り替わる。
【００９６】
１３０２は、レジスタ１１０５の保持値である現在の基準点に対して次期基準点への相対距離となるセレクタ１０４３の出力値を加算する加算器である。加算器１３０２の出力は、制御指示部１０３３の指示によるタイミングで、レジスタ１１０５へロードされる。任意の位置の補正データ（特異点データとしてのデータ１１０１）は、その処理ごとにＣＰＵ（不図示）より更新される。更新されたデータ１１０１（注目特異点データ）は、絶対距離情報算出部１１０６により、更新ごとにデータが提示する相対距離を積算し、フレーム先頭からの絶対距離と等価の情報を出力する。ここで、絶対距離と等価の情報とは、（ｘ，ｙ）座標のような２次元情報であり、または、基準点をフレーム先頭とした走査距離積算値でもよい。ただし、絶対距離情報算出部１１０６の出力値のデータタイプとレジスタ１１０５の出力値のデータタイプとは、互いに整合がとれているものとする。
【００９７】
加算器１１０８（減算器）は、絶対距離情報算出部１１０６の出力値とレジスタ１１０５の出力値との差を求め、相対距離データとして取得する。相対距離データは、現在の基準点からの注目特異点の相対位置である。比較手段１１２３は、比較器１２３１、レジスタ１２３２、および、セレクタ１２３３を含む。比較器１２３１には、前述の現在の基準点から注目特異点までの相対距離データ、および、積算部１１０４の出力である現在の基準点から次期基準点までの相対距離データが入力される。その入力結果は、非圧縮時には制御指示部１０３３による指示のタイミングで、圧縮処理時には制御部１０４１による指示のタイミングで、レジスタ１２３２に保持される。前述の圧縮または非圧縮時の判定は、制御指示部１０３３により提示されるセレクタ１０４３への選択信号と等価であり、セレクタ１２３３の選択切り替え信号である。
【００９８】
レジスタ１２３２は、比較器１２３１の出力状態を保持し、レベル信号としてのステータスを生成する。比較器１２３１の出力が１値の場合、特異点までの相対距離が次期基準点までの相対距離よりも大きく（遠く）、０値の場合には特異点までの距離は次期基準点よりも小さい（近い）。レジスタ１２３２に保持された比較結果が１値の場合、すなわち基準点からの相対距離で特異点の距離の方が次期基準点の距離よりも大きい（遠い）場合、バッファ１１０２のデータを押し出す。このとき、次期のバッファ１１０２のデータ（ランレングスデータ、すなわちデータ１１００）の要求をＣＰＵ（不図示）に対して出力する。
【００９９】
レジスタ１２３２に保持された比較結果が０値の場合、すなわち次期基準点までの相対距離の方が特異点までの相対距離よりも大きい（遠い）場合には以下のように動作する。すなわち、判定手段１１０３の出力が現在ランレングス圧縮データを処理していると判定される場合、特異点情報をランレングスデータに付加するためのデータ（ＥＱ＿Ｌ，  ＥＱ＿Ｃ）を生成するための開始要求を出力する。一方、現在非圧縮データを処理している場合、ＣＰＵ（不図示）に対して次期特異点データ（データ１１０１）を要求する。このとき、現特異点データは、基準点に対する相対距離データとして加算器１１０８（減算器）の出力をランレングスデータの現処理位置の次に添付する。
【０１００】
すなわち補正データ生成装置２０は、データ１１００が圧縮データであり、かつ第１の距離（積算部１１０４の出力）が第２の距離（加算器１１０８の出力）よりも大きい場合、第２の距離を処理して圧縮データに対する添付データを生成するように構成される。一方、データ１１００が非圧縮データである場合、第２の距離を第１のデータ群の現在処理しているデータ位置（現在のデータ１１００の位置）の後に添付し、第２のデータ群の次期処理データ（データ１１０１）の受付を可能とするように構成される。
【０１０１】
ランレングスへの付加データ（ＥＱ＿Ｌ、ＥＱ＿Ｃ）展開開始要求は、ＣＰＵ（不図示）に発行させることができ、または、要求ステータスの立ち上がりに微分回路を付加してトリガ信号を生成してもよい。ランレングスデータ（データ１１００）と任意の補正画素位置データ（特異点データ、すなわちデータ１１０１）とマージは、バッファ１１０２、加算器１１０８、レジスタ１１１４、カウンタ１１１２、１１１６の出力結果を取得することにより実行可能である。
【０１０２】
実施例２、３によれば、規則的に配置される補正対象の画素配列の位置情報を一纏まりのランレングスデータとして保持し、そのランレングスの示す配置配列の途中に存在する特異点（任意の位置の補正対象画素）の情報をその圧縮形態を崩さないで追加できる。また、複数の連続するランレングスデータのまとまりの単位ごとに基準点を更新していくことにより、特異点情報を所定のランレングス単位に対して追加できる。このため、圧縮率の高いランレングス情報を含む補正対象画素データを生成することが可能である。このように実施例２、３の構成によれば、任意の位置の補正対象画素の距離データをマージ（結合）することにより、画素の記憶容量を低減させて効率のよい画素データを生成可能な補正データ生成装置を提供することができる。
【０１０３】
以上、本発明の好ましい実施形態について説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。
【符号の説明】
【０１０４】
１  伸長回路
２  記憶手段
３  補正手段
【図７】
2014158256.tif 000003
【図１】
2014158256.tif 000004
【図２】
2014158256.tif 000005
【図３】
2014158256.tif 000006
【図４】
2014158256.tif 000007
【図５】
2014158256.tif 000008
【図６】
2014158256.tif 000009
【図８】
2014158256.tif 000010
【図９】
2014158256.tif 000011
【図１０】
2014158256.tif 000012
【図１１】
2014158256.tif 000013
【図１２】
2014158256.tif 000014
【図１３】
2014158256.tif 000015
【図１４】
2014158256.tif 000016