(57)【要約】      （修正有）【課題】任意のコード長においてハミング距離が常に１となるコードを利用可能とする。【解決手段】固体撮像装置は、複数の画素と画素信号と参照信号とを比較する比較器と、画素信号と参照信号とのレベルが一致するまでの時間をカウントするカウンタとを備える。カウンタは、２以上２ｎ以下の偶数のコード長から１を減算した数値がｎビットのバイナリコードで表された最大値を１ビット右シフトさせることで比較値を算出する第１の演算部と、ｎビットのバイナリコードで表された０から最大値までのいずれかの第１の値と比較値との間の比較結果に基づき、第１の値と、最大値から第１の値を減算した第２の値と、のいずれかを第３の値として出力する第１の選択部と、第３の値をｎビットのバイナリコードからｎビットのグレイコードに変換し、比較結果に基づき、グレイコードの最上位ビットに０または１を設定することで疑似コードを生成する第２の演算部とを備える。【選択図】図１０
2020021988.tif 000002
【特許請求の範囲】
【請求項１】
複数の画素と、
前記画素が出力する画素信号と、時間の経過とともにレベルが変化する参照信号と、を比較する比較器と、
前記画素信号と前記参照信号とのレベルが一致するまでの時間をカウントするカウンタと、
を備え、
前記カウンタは、
２以上２ｎ以下の偶数のコード長から１を減算した数値がｎビットのバイナリコードで表された最大値を１ビット右シフトさせることで比較値を算出する第１の演算部と、
ｎビットのバイナリコードで表された０から前記最大値までのいずれかの第１の値と前記比較値との間の比較結果に基づき、前記第１の値と、前記最大値から当該第１の値を減算した第２の値と、のいずれかを第３の値として出力する第１の選択部と、
前記第３の値をｎビットのバイナリコードからｎビットのグレイコードに変換し、前記比較結果に基づき、当該グレイコードの最上位ビットに０または１を設定することで疑似コードを生成する第２の演算部と、
を備える、固体撮像装置。
【請求項２】
前記第１の値は、初期値が０であり、当該初期値から昇順にカウントされ、
前記第１の選択部は、
前記第１の値が前記比較値以下の場合には当該第１の値を前記第３の値として出力し、
前記第１の値が前記比較値を超える場合には前記第２の値を前記第３の値として出力し、
前記第２の演算部は、前記第１の値が前記比較値を超える場合に、前記第３の値に対応するｎビットのグレイコードの最上位ビットに１を設定することで前記疑似コードを生成する、
請求項１に記載の固体撮像装置。
【請求項３】
前記第１の値は、初期値が前記最大値であり、当該初期値から降順にカウントされ、
前記第１の選択部は、
前記第１の値が前記比較値以下の場合には当該第１の値を前記第３の値として出力し、
前記第１の値が前記比較値を超える場合には前記第２の値を前記第３の値として出力し、
前記第２の演算部は、前記第１の値が前記比較値以下の場合に、前記第３の値に対応するｎビットのグレイコードの最上位ビットに１を設定することで前記疑似コードを生成する、
請求項１に記載の固体撮像装置。
【請求項４】
前記第２の演算部により生成された前記疑似コードの各ビットの０と１を反転して出力する第１のビット反転部を備える、請求項１に記載の固体撮像装置。
【請求項５】
前記疑似コードをバイナリコードに変換するデコード部を備え、
前記デコード部は、
前記疑似コードを最上位ビットと前記グレイコードとに分離し、当該グレイコードをｎビットのバイナリコードで表された第４の値に変換する第３の演算部と、
前記疑似コードから分離された前記最上位ビットに応じて、前記第４の値と、前記最大値から当該第４の値を減算した第５の値と、のいずれかを出力値として出力する第２の選択部と、
を備える、
請求項１に記載の固体撮像装置。
【請求項６】
前記第１の値は、初期値が０であり、当該初期値から昇順にカウントされ、
前記第２の選択部は、前記最上位ビットが０の場合に、前記第４の値を前記出力値として出力する、
請求項５に記載の固体撮像装置。
【請求項７】
前記第１の値は、初期値が前記最大値であり、当該初期値から降順にカウントされ、
前記第２の選択部は、前記最上位ビットが１の場合に、前記第４の値を前記出力値として出力する、
請求項５に記載の固体撮像装置。
【請求項８】
前記デコード部は、前記疑似コードの各ビットの０と１が反転された値を入力値として、当該入力値の０と１を反転することで当該疑似コードを出力する第２のビット反転部を備え、
前記第３の演算部は、前記第２のビット反転部から出力される前記疑似コードを前記最上位ビットと前記グレイコードとに分離し、当該グレイコードを前記第４の値に変換する、
請求項５に記載の固体撮像装置。
【請求項９】
前記デコード部は、前記比較器による比較結果に応じたタイミングに対応する前記第１の値に基づき生成された前記疑似コードをバイナリコードに変換する、請求項５に記載の固体撮像装置。
【請求項１０】
前記最大値が、選択的に切り替え可能に構成されている、請求項１に記載の固体撮像装置。
【請求項１１】
２以上２ｎ以下の偶数のコード長から１を減算した数値がｎビットのバイナリコードで表された最大値を１ビット右シフトさせることで比較値を算出する第１の演算部と、
ｎビットのバイナリコードで表された０から前記最大値までのいずれかの第１の値と前記比較値との間の比較結果に基づき、前記第１の値と、前記最大値から当該第１の値を減算した第２の値と、のいずれかを第３の値として出力する第１の選択部と、
前記第３の値をｎビットのバイナリコードからｎビットのグレイコードに変換し、前記比較結果に基づき、当該グレイコードの最上位ビットに０または１を設定することで出力値を生成する第２の演算部と、
を備える、コード変換装置。
【請求項１２】
２以上２ｎ以下の偶数のコード長から１を減算した数値がｎビットのバイナリコードで表された値を最大値とし、
当該最大値を１ビット右シフトさせた値を比較値として、
前記比較値を基準として、当該比較値から０まで順次減算される各値と、当該比較値を超えて前記最大値まで順次加算される各値と、のそれぞれに対して、前記比較値を基準として、当該比較値から順次減算される各値に対応するｎビットのグレイコードの最上位ビットに０を設定したコードと、当該比較値から順次減算される各値にｎビットのグレイコードの最上位ビットに１を設定したコードと、のうち互いに異なるコードが対応付けられた一連の疑似コードのうち、
いずれかの前記疑似コードを入力値として、当該入力値を前記最上位ビットと前記グレイコードとに分離し、当該グレイコードをｎビットのバイナリコードで表された第４の値に変換する第３の演算部と、
前記入力値から分離された前記最上位ビットに応じて、前記第４の値と、ｎビットの前記最大値から当該第４の値を減算した第５の値と、のいずれかを出力値として出力する第２の選択部と、
を備える、コード変換装置。
【請求項１３】
前記疑似コードは、
前記比較値を基準として、
前記比較値から０まで順次減算される各値が、前記比較値から順次減算される各値に対応するｎビットのグレイコードの最上位ビットに０を設定したコードに対応付けられ、
前記比較値を超えて前記最大値まで順次加算される各値が、前記比較値から順次減算される各値にｎビットのグレイコードの最上位ビットに１を設定したコードに対応付けられており、
前記第２の選択部は、前記最上位ビットが０の場合に、前記第４の値を前記出力値として出力する、
請求項１２に記載のコード変換装置。
【請求項１４】
前記疑似コードは、
前記比較値を基準として、
前記比較値から０まで順次減算される各値が、前記比較値から順次減算される各値にｎビットのグレイコードの最上位ビットに１を設定したコードに対応付けられ、
前記比較値を超えて前記最大値まで順次加算される各値が、前記比較値から順次減算される各値に対応するｎビットのグレイコードの最上位ビットに０を設定したコードに対応付けられており、
前記第２の選択部は、前記最上位ビットが１の場合に、前記第４の値を前記出力値として出力する、
請求項１２に記載のコード変換装置。
【請求項１５】
いずれかの前記疑似コードの各ビットの０と１が反転された値を入力値として、当該入力値の０と１を反転することで当該疑似コードを出力する第２のビット反転部を備え、
前記第３の演算部は、前記第２のビット反転部から出力される前記疑似コードを最上位ビットと前記グレイコードとに分離し、当該グレイコードを前記第４の値に変換する、
請求項１２に記載のコード変換装置。
【請求項１６】
コンピュータが、
２以上２ｎ以下の偶数のコード長から１を減算した数値がｎビットのバイナリコードで表された最大値を１ビット右シフトさせることで比較値を算出することと、
ｎビットのバイナリコードで表された０から前記最大値までのいずれかの第１の値と前記比較値との間の比較結果に基づき、前記第１の値と、前記最大値から当該第１の値を減算した第２の値と、のいずれかを第３の値として出力することと、
前記第３の値をｎビットのバイナリコードからｎビットのグレイコードに変換し、前記比較結果に基づき、当該グレイコードの最上位ビットに０または１を設定することで出力値を生成することと、
を含む、コード変換方法。
【請求項１７】
コンピュータが、
２以上２ｎ以下の偶数のコード長から１を減算した数値がｎビットのバイナリコードで表された値を最大値とし、
当該最大値を１ビット右シフトさせた値を比較値として、
前記比較値を基準として、当該比較値から０まで順次減算される各値と、当該比較値を超えて前記最大値まで順次加算される各値と、のそれぞれに対して、前記比較値を基準として、当該比較値から順次減算される各値に対応するｎビットのグレイコードの最上位ビットに０を設定したコードと、当該比較値から順次減算される各値にｎビットのグレイコードの最上位ビットに１を設定したコードと、のうち互いに異なるコードが対応付けられた一連の疑似コードのうち、
いずれかの前記疑似コードを入力値として、当該入力値を前記最上位ビットと前記グレイコードとに分離し、当該グレイコードをｎビットのバイナリコードで表された第４の値に変換することと、
前記入力値から分離された前記最上位ビットに応じて、前記第４の値と、ｎビットの前記最大値から当該第４の値を減算した第５の値と、のいずれかを出力値として出力することと、
を含む、コード変換方法。
【請求項１８】
コンピュータに、
２以上２ｎ以下の偶数のコード長から１を減算した数値がｎビットのバイナリコードで表された最大値を１ビット右シフトさせることで比較値を算出することと、
ｎビットのバイナリコードで表された０から前記最大値までのいずれかの第１の値と前記比較値との間の比較結果に基づき、前記第１の値と、前記最大値から当該第１の値を減算した第２の値と、のいずれかを第３の値として出力することと、
前記第３の値をｎビットのバイナリコードからｎビットのグレイコードに変換し、前記比較結果に基づき、当該グレイコードの最上位ビットに０または１を設定することで出力値を生成することと、
実行させる、プログラム。
【請求項１９】
コンピュータに、
２以上２ｎ以下の偶数のコード長から１を減算した数値がｎビットのバイナリコードで表された値を最大値とし、
当該最大値を１ビット右シフトさせた値を比較値として、
前記比較値を基準として、当該比較値から０まで順次減算される各値と、当該比較値を超えて前記最大値まで順次加算される各値と、のそれぞれに対して、前記比較値を基準として、当該比較値から順次減算される各値に対応するｎビットのグレイコードの最上位ビットに０を設定したコードと、当該比較値から順次減算される各値にｎビットのグレイコードの最上位ビットに１を設定したコードと、のうち互いに異なるコードが対応付けられた一連の疑似コードのうち、
いずれかの前記疑似コードを入力値として、当該入力値を前記最上位ビットと前記グレイコードとに分離し、当該グレイコードをｎビットのバイナリコードで表された第４の値に変換することと、
前記入力値から分離された前記最上位ビットに応じて、前記第４の値と、ｎビットの前記最大値から当該第４の値を減算した第５の値と、のいずれかを出力値として出力することと、
実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、固体撮像装置、コード変換装置、コード変換方法、及びプログラムに関する。
【背景技術】
【０００２】
固体撮像装置として、ＣＭＯＳ（Complementary  Metal  Oxide  Semiconductor）等のＭＯＳ型イメージセンサに代表される増幅型固体撮像装置が知られている。また、ＣＣＤ（Charge  Coupled  Device）イメージセンサに代表される電荷転送型固体撮像装置が知られている。これら固体撮像装置は、デジタルスチルカメラ、デジタルビデオカメラなどに広く用いられている。近年、カメラ付き携帯電話やＰＤＡ（Personal  Digital  Assistant）などのモバイル機器に搭載される固体撮像装置としては、電源電圧が低く、消費電力の観点などからＭＯＳ型イメージセンサが多く用いられている。
【０００３】
上記のような固体撮像装置では、フォトダイオード等の光電変換部により受光結果をアナログの電気信号に変換したうえで、Ａ／Ｄ変換器（ＡＤＣ：Analog  to  Digital  Converter）により当該アナログの電気信号をデジタル信号にＡ／Ｄ変換している。このようなＡＤＣとして、例えば、比較器及びカウンタを利用したシングルスロープ型のＡＤＣが適用される場合がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第５０９１９１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、上記のような固体撮像装置を構成する素子として、電力供給等に応じて敏感に反応する素子が適用される場合もあり、駆動時に消費される電力の変化をより抑制可能とする仕組みが求められる場合もある。このような背景から、上述したＡＤＣ等に適用されるカウンタとして、前後に隣接するコード間のハミング距離が必ず１となる特性を有するグレイコード等の交番二進符号を利用したカウンタが注目されている。例えば、特許文献１には、グレイコードを利用したカウンタの一例が開示されている。
【０００６】
一方で、グレイコードは、コード長が２のべき乗数とならない場合に、一連のカウント値のうち最後の値（以下、「終値」とも称する）と最初の値（以下、「初期値」とも称する）との間のハミング距離が１とならない場合がある。即ち、このような状況下では、連続してカウンタを動作させた場合のコード遷移時において、ハミング距離が１とならない場合がある。特に、上記のような固体撮像装置においては、効率的な動作を実現するために、カウンタのコード長を選択的に切り替える場合がある。このような場合には、少なくとも一部の条件での動作時に、コード長が２のべき乗数とならない状態となる可能性があり、結果として、ハミング距離を常に１とすることが困難となる場合がある。
【０００７】
そこで、本開示では、任意のコード長においてハミング距離が常に１となるコードを利用可能とする技術を提案する。
【課題を解決するための手段】
【０００８】
本開示によれば、複数の画素と、前記画素が出力する画素信号と、時間の経過とともにレベルが変化する参照信号と、を比較する比較器と、前記画素信号と前記参照信号とのレベルが一致するまでの時間をカウントするカウンタと、を備え、前記カウンタは、２以上２ｎ以下の偶数のコード長から１を減算した数値がｎビットのバイナリコードで表された最大値を１ビット右シフトさせることで比較値を算出する第１の演算部と、ｎビットのバイナリコードで表された０から前記最大値までのいずれかの第１の値と前記比較値との間の比較結果に基づき、前記第１の値と、前記最大値から当該第１の値を減算した第２の値と、のいずれかを第３の値として出力する第１の選択部と、前記第３の値をｎビットのバイナリコードからｎビットのグレイコードに変換し、前記比較結果に基づき、当該グレイコードの最上位ビットに０または１を設定することで疑似コードを生成する第２の演算部と、を備える、固体撮像装置が提供される。
【０００９】
また、本開示によれば、２以上２ｎ以下の偶数のコード長から１を減算した数値がｎビットのバイナリコードで表された最大値を１ビット右シフトさせることで比較値を算出する第１の演算部と、ｎビットのバイナリコードで表された０から前記最大値までのいずれかの第１の値と前記比較値との間の比較結果に基づき、前記第１の値と、前記最大値から当該第１の値を減算した第２の値と、のいずれかを第３の値として出力する第１の選択部と、前記第３の値をｎビットのバイナリコードからｎビットのグレイコードに変換し、前記比較結果に基づき、当該グレイコードの最上位ビットに０または１を設定することで出力値を生成する第２の演算部と、を備える、コード変換装置が提供される。
【００１０】
また、本開示によれば、２以上２ｎ以下の偶数のコード長から１を減算した数値がｎビットのバイナリコードで表された値を最大値とし、当該最大値を１ビット右シフトさせた値を比較値として、前記比較値を基準として、当該比較値から０まで順次減算される各値と、当該比較値を超えて前記最大値まで順次加算される各値と、のそれぞれに対して、前記比較値を基準として、当該比較値から順次減算される各値に対応するｎビットのグレイコードの最上位ビットに０を設定したコードと、当該比較値から順次減算される各値にｎビットのグレイコードの最上位ビットに１を設定したコードと、のうち互いに異なるコードが対応付けられた一連の疑似コードのうち、いずれかの前記疑似コードを入力値として、当該入力値を前記最上位ビットと前記グレイコードとに分離し、当該グレイコードをｎビットのバイナリコードで表された第４の値に変換する第３の演算部と、前記入力値から分離された前記最上位ビットに応じて、前記第４の値と、ｎビットの前記最大値から当該第４の値を減算した第５の値と、のいずれかを出力値として出力する第２の選択部と、を備える、コード変換装置が提供される。
【００１１】
また、本開示によれば、コンピュータが、２以上２ｎ以下の偶数のコード長から１を減算した数値がｎビットのバイナリコードで表された最大値を１ビット右シフトさせることで比較値を算出することと、ｎビットのバイナリコードで表された０から前記最大値までのいずれかの第１の値と前記比較値との間の比較結果に基づき、前記第１の値と、前記最大値から当該第１の値を減算した第２の値と、のいずれかを第３の値として出力することと、前記第３の値をｎビットのバイナリコードからｎビットのグレイコードに変換し、前記比較結果に基づき、当該グレイコードの最上位ビットに０または１を設定することで出力値を生成することと、を含む、コード変換方法が提供される。
【００１２】
また、本開示によれば、コンピュータが、２以上２ｎ以下の偶数のコード長から１を減算した数値がｎビットのバイナリコードで表された値を最大値とし、当該最大値を１ビット右シフトさせた値を比較値として、前記比較値を基準として、当該比較値から０まで順次減算される各値と、当該比較値を超えて前記最大値まで順次加算される各値と、のそれぞれに対して、前記比較値を基準として、当該比較値から順次減算される各値に対応するｎビットのグレイコードの最上位ビットに０を設定したコードと、当該比較値から順次減算される各値にｎビットのグレイコードの最上位ビットに１を設定したコードと、のうち互いに異なるコードが対応付けられた一連の疑似コードのうち、いずれかの前記疑似コードを入力値として、当該入力値を前記最上位ビットと前記グレイコードとに分離し、当該グレイコードをｎビットのバイナリコードで表された第４の値に変換することと、前記入力値から分離された前記最上位ビットに応じて、前記第４の値と、ｎビットの前記最大値から当該第４の値を減算した第５の値と、のいずれかを出力値として出力することと、を含む、コード変換方法が提供される。
【００１３】
また、本開示によれば、コンピュータに、２以上２ｎ以下の偶数のコード長から１を減算した数値がｎビットのバイナリコードで表された最大値を１ビット右シフトさせることで比較値を算出することと、ｎビットのバイナリコードで表された０から前記最大値までのいずれかの第１の値と前記比較値との間の比較結果に基づき、前記第１の値と、前記最大値から当該第１の値を減算した第２の値と、のいずれかを第３の値として出力することと、前記第３の値をｎビットのバイナリコードからｎビットのグレイコードに変換し、前記比較結果に基づき、当該グレイコードの最上位ビットに０または１を設定することで出力値を生成することと、実行させる、プログラムが提供される。
【００１４】
また、本開示によれば、コンピュータに、２以上２ｎ以下の偶数のコード長から１を減算した数値がｎビットのバイナリコードで表された値を最大値とし、当該最大値を１ビット右シフトさせた値を比較値として、前記比較値を基準として、当該比較値から０まで順次減算される各値と、当該比較値を超えて前記最大値まで順次加算される各値と、のそれぞれに対して、前記比較値を基準として、当該比較値から順次減算される各値に対応するｎビットのグレイコードの最上位ビットに０を設定したコードと、当該比較値から順次減算される各値にｎビットのグレイコードの最上位ビットに１を設定したコードと、のうち互いに異なるコードが対応付けられた一連の疑似コードのうち、いずれかの前記疑似コードを入力値として、当該入力値を前記最上位ビットと前記グレイコードとに分離し、当該グレイコードをｎビットのバイナリコードで表された第４の値に変換することと、前記入力値から分離された前記最上位ビットに応じて、前記第４の値と、ｎビットの前記最大値から当該第４の値を減算した第５の値と、のいずれかを出力値として出力することと、実行させる、プログラムが提供される。
【発明の効果】
【００１５】
以上説明したように本開示によれば、任意のコード長においてハミング距離が常に１となるコードを利用可能とする技術が提供される。
【００１６】
なお、上記の効果は必ずしも限定的なものではなく、上記の効果とともに、または上記の効果に代えて、本明細書に示されたいずれかの効果、または本明細書から把握され得る他の効果が奏されてもよい。
【図面の簡単な説明】
【００１７】
【図１】本開示の一実施形態に係る固体撮像装置の構成の一例として、ＣＭＯＳ固体撮像装置の概略構成を示した図である。
【図２】本開示に係る技術を適用し得る積層型の固体撮像装置の構成例の概要を示す図である。
【図３】本開示の一実施形態に係る固体撮像装置の一部の機能構成の一例を示すブロック図である。
【図４】ＡＤＣの動作について説明するための説明図である。
【図５】本開示の一実施形態に係る単位画素の回路構成の一例を示した図である。
【図６】比較例に係る固体撮像装置の動作の一例について説明するための説明図である。
【図７】比較例に係る固体撮像装置の動作の一例について説明するための説明図である。
【図８】本開示の一実施形態に係る固体撮像装置の機能構成の一例を示したブロック図である。
【図９】同実施形態に係る疑似グレイコードの一例を示した図である。
【図１０】同実施形態に係る疑似グレイコードの生成に係る構成の一例について説明するための説明図である。
【図１１】同実施形態に係る疑似グレイコードからバイナリコードへの変換に係る構成の一例について説明するための説明図である。
【図１２】同実施形態に係る固体撮像装置の処理の流れの一例について説明するための説明図である。
【図１３】同実施形態に係る固体撮像装置の処理の流れの他の一例について説明するための説明図である。
【図１４】同実施形態に係る固体撮像装置の実施例について説明するための説明図である。
【図１５】変形例１に係る疑似グレイコードの一例について説明するための説明図である。
【図１６】変形例１に係る疑似グレイコードの生成に係る構成の一例について説明するための説明図である。
【図１７】変形例１に係る疑似グレイコードからバイナリコードへの変換に係る構成の一例について説明するための説明図である。
【図１８】変形例２に係る疑似グレイコードの一例について説明するための説明図である。
【図１９】変形例２に係る疑似グレイコードの生成に係る構成の一例について説明するための説明図である。
【図２０】変形例２に係る疑似グレイコードからバイナリコードへの変換に係る構成の一例について説明するための説明図である。
【図２１】本開示の一実施形態に係る情報処理装置のハードウェア構成の一構成例を示す機能ブロック図である。
【発明を実施するための形態】
【００１８】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１９】
なお、説明は以下の順序で行うものとする。
１．固体撮像装置の構成例
１．１．概略構成
１．２．機能構成
１．３．単位画素の回路構成
２．カウンタ値として利用するコードの検討
３．技術的特長
３．１．構成例
３．２．処理
３．３．実施例
３．４．変形例
３．４．１．変形例１：ダウンカウンタとして構成する場合の一例
３．４．２．変形例２：負論理のカウンタとして構成する場合の一例
３．５．応用例
４．ハードウェア構成
５．むすび
【００２０】
＜＜１．固体撮像装置の構成例＞＞
本実施形態に係る固体撮像装置の一構成例について以下に説明する。
【００２１】
＜１．１．概略構成＞
図１に、本開示の一実施形態に係る固体撮像装置の構成の一例として、ＣＭＯＳ固体撮像装置の概略構成を示す。このＣＭＯＳ固体撮像装置は、各実施の形態の固体撮像装置に適用される。本例の固体撮像装置１は、図１に示すように、半導体基板１１、例えばシリコン基板に複数の光電変換部を含む画素２が規則的に２次元アレイ状に配列された画素アレイ（いわゆる画素領域）３と、周辺回路部とを有して構成される。画素２は、光電変換部となる例えばフォトダイオードと、複数の画素トランジスタ（いわゆるＭＯＳトランジスタ）を有して成る。複数の画素トランジスタは、例えば転送トランジスタ、リセットトランジスタ及び増幅トランジスタの３つのトランジスタで構成することができる。その他、選択トランジスタ追加して４つのトランジスタで構成することもできる。なお、単位画素の等価回路の一例については別途後述する。画素２は、１つの単位画素として構成することができる。また、画素２は、共有画素構造とすることもできる。この共有画素構造は、複数のフォトダイオードと、複数の転送トランジスタと、共有する１つのフローティングディフージョンと、共有する１つずつの他の画素トランジスタとから構成される。すなわち、共有画素では、複数の単位画素を構成するフォトダイオード及び転送トランジスタが、他の１つずつの画素トランジスタを共有して構成される。
【００２２】
周辺回路部は、垂直駆動回路４と、カラム信号処理回路５と、水平駆動回路６と、出力回路７と、制御回路８などを有して構成される。
【００２３】
制御回路８は、入力クロックと、動作モードなどを指令するデータを受け取り、また固体撮像装置の内部情報などのデータを出力する。すなわち、制御回路８では、垂直同期信号、水平同期信号及びマスタクロックに基づいて、垂直駆動回路４、カラム信号処理回路５及び水平駆動回路６などの動作の基準となるクロック信号や制御信号を生成する。そして、これらの信号を垂直駆動回路４、カラム信号処理回路５及び水平駆動回路６等に入力する。
【００２４】
垂直駆動回路４は、例えばシフトレジスタによって構成され、画素駆動配線を選択し、選択された画素駆動配線に画素を駆動するためのパルスを供給し、行単位で画素を駆動する。すなわち、垂直駆動回路４は、画素アレイ３の各画素２を行単位で順次垂直方向に選択走査し、垂直信号線９を通して各画素２の光電変換部となる例えばフォトダイオードにおいて受光量に応じて生成した信号電荷に基づく画素信号をカラム信号処理回路５に供給する。
【００２５】
カラム信号処理回路５は、画素２の例えば列ごとに配置されており、１行分の画素２から出力される信号を画素列ごとにノイズ除去などの信号処理を行う。すなわちカラム信号処理回路５は、画素２固有の固定パターンノイズを除去するためのＣＤＳや、信号増幅、ＡＤ変換等の信号処理を行う。カラム信号処理回路５の出力段には水平選択スイッチ（図示せず）が水平信号線１０との間に接続されて設けられる。
【００２６】
水平駆動回路６は、例えばシフトレジスタによって構成され、水平走査パルスを順次出力することによって、カラム信号処理回路５の各々を順番に選択し、カラム信号処理回路５の各々から画素信号を水平信号線１０に出力させる。
【００２７】
出力回路７は、カラム信号処理回路５の各々から水平信号線１０を通して順次に供給される信号に対し、信号処理を行って出力する。例えば、バファリングだけする場合もあるし、黒レベル調整、列ばらつき補正、各種デジタル信号処理などが行われる場合もある。入出力端子１２は、外部と信号のやりとりをする。
【００２８】
ここで、図２を参照して、本技術の固体撮像装置１の基本的な概略構成について説明する。
【００２９】
第１の例として、図２上段に示される固体撮像装置３３０は、１つの半導体チップ３３１内に、画素領域３３２、制御回路３３３、上述した信号処理回路を含むロジック回路３３４とを搭載して構成される。
【００３０】
第２の例として、図２中段に示される固体撮像装置３４０は、第１の半導体チップ部３４１と第２の半導体チップ部３４２とから構成される。第１の半導体チップ部３４１には、画素領域３４３と制御回路３４４が搭載され、第２の半導体チップ部３４２には、上述した信号処理回路を含むロジック回路３４５が搭載される。そして、第１の半導体チップ部３４１と第２の半導体チップ部３４２とが相互に電気的に接続されることで、１つの半導体チップとしての固体撮像装置３４０が構成される。
【００３１】
第３の例として、図２下段に示される固体撮像装置３５０は、第１の半導体チップ部３５１と第２の半導体チップ部３５２とから構成される。第１の半導体チップ部３５１には、画素領域３５３が搭載され、第２の半導体チップ部３５２には、制御回路３５４と、上述した信号処理回路を含むロジック回路３５５が搭載される。そして、第１の半導体チップ部３５１と第２の半導体チップ部３５２とが相互に電気的に接続されることで、１つの半導体チップとしての固体撮像装置３５０が構成される。
【００３２】
＜１．２．機能構成＞
続いて、図３を参照して、本開示の一実施形態に係る固体撮像装置の機能構成の一例について説明する。図３は、本開示の一実施形態に係る固体撮像装置の一部の機能構成の一例を示すブロック図である。図３に示される固体撮像装置１は、例えば、ＣＭＯＳ（Complementary  Metal  Oxide  Semiconductor）イメージセンサやＣＣＤ（Charge  Coupled  Device）イメージセンサ等の、被写体を撮像し、撮像画像のデジタルデータを得る撮像素子である。
【００３３】
図３に示すように、固体撮像装置１は、画素アレイ部１１１と、垂直走査回路１０１と、水平走査回路１０３と、位相同期回路（ＰＬＬ：Phase  Locked  Loop）１０５と、Ｄ／Ａ変換部（ＤＡＣ：Digital  to  Analog  Converter）１０７と、カウンタ１０９と、Ａ／Ｄ変換部（ＡＤＣ：Analog  to  Digital  Converter）１１３とを含む。
【００３４】
画素アレイ部１１１は、フォトダイオード等の光電変換素子を有する画素構成が行列（アレイ）状に配置される画素領域であり、図１に示す画素領域３に相当する。また、画素１２１は、画素アレイ部１１１に配置される画素群の中の一部の画素を示しており、図１に示す画素２に相当する。また、垂直走査回路１０１及び水平走査回路１０３は、図１に示す垂直駆動回路４及び水平駆動回路６に相当する。そのため、これらの構成については詳細な説明は省略する。
【００３５】
また、図３に示す固体撮像装置１においては、列ごとに各画素１２１から画素信号を読み出す出力線に対してＡＤＣ１１３が個別に設けられている。なお、当該出力線は、図１に示す垂直信号線９に相当する。
【００３６】
このような構成の基で、画素アレイ部１１１は、各画素１２１で被写体からの光を受光し、その入射光を光電変換して電荷を蓄積し、所定のタイミングにおいて、各画素１２１に蓄積された電荷を画素信号として出力する。このとき、各列に対応する行ごとの一連の画素１２１それぞれから画素信号が出力されるタイミングは、垂直走査回路１０１により制御される。即ち、列ごとに、各行に対応する画素１２１から画素信号が、出力線を介して、時分割で当該列に対応するＡＤＣ１１３に出力される。
【００３７】
ＡＤＣ１１３は、画素アレイ部１１１から列ごとに各出力線を介して供給される画素信号を、それぞれＡ／Ｄ変換し、デジタルデータとして出力する。ＡＤＣ１１３は、比較器１１５とラッチ回路１１７とを含み、後述するＤＡＣ１０７及びカウンタ１０９と連携して動作することで、所謂シングルスロープ型のＡＤＣとして動作する。そこで、以下に、図４を参照しながら、ＡＤＣ１１３の動作について、ＰＬＬ１０５、ＤＡＣ１０７、及びカウンタ１０９の動作とあわせて説明する。図４は、ＡＤＣの動作について説明するための説明図である。
【００３８】
ＰＬＬ１０５は、固体撮像装置１内の各構成が同期して動作するための基準クロックを生成する。図４に示す基準クロックは、ＰＬＬ１０５が生成する基準クロックに相当する。例えば、ＰＬＬ１０５は、生成した基準クロックをＤＡＣ１０７及びカウンタ１０９に出力する。これにより、ＤＡＣ１０７及びカウンタ１０９のそれぞれは、基準クロックに応じたタイミングで動作することで、互いに同期して動作することが可能となる。
【００３９】
ＤＡＣ１０７は、ＡＤＣ１１３が画素信号（即ち、画素１２１から出力されるアナログ信号）のレベルの特定に利用するアナログの参照信号を生成し、当該参照信号を各ＡＤＣ１１３に出力する。具体的な一例として、ＤＡＣ１０７は、ＰＬＬ１０５から出力される基準クロックに同期して、時間の経過とともにレベルが変化する参照信号を生成してもよい。参照信号のより具体的な一例として、ランプ波と称される信号が挙げられる。例えば、図４に示す参照信号は、ＤＡＣ１０７から出力される参照信号（ランプ波）に相当する。
【００４０】
カウンタ１０９は、ＰＬＬ１０５から出力される基準クロックに同期して、経過時間をカウントし、カウンタ値を各ＡＤＣ１１３に順次出力する。図４に示すカウンタ出力は、カウンタ１０９から順次出力されるカウンタ値を模式的に示している。
【００４１】
比較器１１５は、画素１２１からの画素信号のレベルと、ＤＡＣ１０７から出力される参照信号（例えば、ランプ波）のレベルと、を比較する。そして、比較器１１５は、参照信号のレベルが画素信号のレベルに達すると（即ち、参照信号のレベルが画素信号のレベルとが略一致すると）、後段に位置するラッチ回路１１７にシグナルを出力する。
【００４２】
ラッチ回路１１７には、カウンタ１０９からカウント結果に応じたカウンタ値が順次出力される。ラッチ回路１１７は、比較器１１５からのシグナルを受け付けると、そのときカウンタ１０９から出力されたカウンタ値を保持する。なお、当該カウンタ値が、アナログの画素信号に対応するデジタル信号（即ち、デジタルの画素信号）に相当する。また、ラッチ回路１１７に保持された情報（カウンタ値）は、水平走査回路１０３から供給されるシグナル（即ち、水平走査パルス）に基づき、列ごとに順次読み出される。
【００４３】
なお、図３に示す構成はあくまで一例であり、必ずしも固体撮像装置１の構成を限定するものではない。例えば、図３に示す各部の数は、不足しない限りは任意である。具体的な一例として、各列に対して出力線が複数系統設けられていてもよい。この場合には、各画素１２１からのアナログの画素信号が、複数系統の出力線のうちいずれかから出力され、当該出力線に接続されたＡＤＣによりデジタルの画素信号にＡ／Ｄ変換されてもよい。また、この場合には、系統ごとにＡ／Ｄ変換されたデジタルの画素信号が並列に出力されてもよい。
【００４４】
＜１．３．単位画素の回路構成＞
続いて、図５を参照して、単位画素の回路構成の一例について説明する。図５は、本開示の一実施形態に係る単位画素の回路構成の一例を示した図である。図５に示すように、本開示の一実施形態に係る単位画素２は、光電変換素子（例えばフォトダイオード）ＰＤと、４つの画素トランジスタとを含む。４つの画素トランジスタは、例えば、転送トランジスタＴｒ１１、リセットトランジスタＴｒ１２、増幅トランジスタＴｒ１３、及び選択トランジスタＴｒ１４である。これらの画素トランジスタは、例えば、ｎチャネルのＭＯＳトランジスタにより構成され得る。
【００４５】
転送トランジスタＴｒ１１は、光電変換素子ＰＤのカソードとフローティングディフュージョン部ＦＤとの間に接続される。光電変換素子ＰＤで光電変換され、ここに蓄積された信号電荷（ここでは、電子）を、ゲートに転送パルスＴＲＧが与えられることによってフローティングディフュージョン部ＦＤに転送する。
【００４６】
リセットトランジスタＴｒ１２は、電源ＶＤＤにドレインが、フローティングディフュージョン部ＦＤにソースがそれぞれ接続される。そして、光電変換素子ＰＤからフローティングディフュージョン部ＦＤへの信号電荷の転送に先立って、ゲートにリセットパルスＲＳＴが与えられることによってフローティングディフュージョン部ＦＤの電位をリセットする。
【００４７】
増幅トランジスタＴｒ１３は、フローティングディフュージョン部ＦＤにゲートが、電源ＶＤＤにドレインが、選択トランジスタＴｒ１４のドレインにソースがそれぞれ接続される。増幅トランジスタＴｒ１３は、リセットトランジスタＴｒ１２によってリセットした後のフローティングディフュージョン部ＦＤの電位をリセットレベルとして選択トランジスタＴｒ１４に出力する。さらに増幅トランジスタＴｒ１３は、転送トランジスタＴｒ１１によって信号電荷を転送した後のフローティングディフュージョン部ＦＤの電位を信号レベルとして選択トランジスタＴｒ１４に出力する。
【００４８】
選択トランジスタＴｒ１４は、例えば、増幅トランジスタＴｒ１３のソースにドレインが、垂直信号線ＶＳＬにソースがそれぞれ接続される。そして選択トランジスタＴｒ１４のゲートに選択パルスＳＥＬが与えられることによってオン状態となり、増幅トランジスタＴｒ１３から出力される信号を垂直信号線ＶＳＬに出力する。なお、この選択トランジスタＴｒ１４については、電源ＶＤＤと増幅トランジスタＴｒ１３のドレインとの間に接続した構成を採ることも可能である。
【００４９】
本実施形態に係る固体撮像装置１を、積層型の固体撮像装置として構成する場合には、例えば、フォトダイオード及び複数のＭＯＳトランジスタ等の素子が、図２の中段または下段における第１の半導体チップ部３４１に形成される。また、転送パルス、リセットパルス、選択パルス、電源電圧は、図２の中段または下段における第２の半導体チップ部３４２から供給される。また、選択トランジスタのドレインに接続される垂直信号線ＶＳＬから後段の素子は、選択トランジスタのドレインに接続される垂直信号線ＶＳＬから後段の素子は、ロジック回路３４５に構成されており、第２の半導体チップ部３４２に形成される。
【００５０】
以上、図５を参照して、単位画素の回路構成の一例について説明した。
【００５１】
＜＜２．カウンタ値として利用するコードの検討＞＞
続いて、カウンタ値として利用可能なコードの一例としてグレイコードについて概要を説明したうえで、本実施形態に係る固体撮像装置においてカウンタからＡＤＣに出力されるカウンタ値として利用する場合の技術的課題について説明する。
【００５２】
グレイコードは、交番二進符号（Reflected  Binary  Code）とも称し、前後に隣接するコード間のハミング距離が必ず１となる特性を有する。このような特性から、グレイコードは、例えば、前述した固体撮像装置においてシングルスロープ型のＡＤＣを実現するためのカウンタのカウンタ値等としても利用され得る。具体的には、カウンタが出力するカウンタ値としてグレイコードが適用されることで、上述した特性から、カウンタ値が順次カウントされる際に、カウント中のいずれのタイミングにおいても値が変化するビットが１ビットとなる（即ち、ビット変位が均等化される）。このような特性から、カウンタが順次カウント（即ち、カウントアップ、またはカウントダウン）を行う際に、その時々で駆動する素子（例えば、トランジスタ等）の数が均等化され、当該駆動に要する電力の変位をより小さく抑えることが可能となる。
【００５３】
特に、上述したような固体撮像装置を構成する素子として、電力供給等に応じて敏感に反応する素子が適用される場合がある。また、近年のイメージセンサでは、多画素化に伴い、列ごとに設けられたＡＤＣの数も増加しており、その数が５０００を超えるものもある。このような状況下では、カウンタ値のビット変位が画素信号や参照信号に与える影響を無視することが困難となる場合がある。そのため、ビット変位が均等化され、駆動に要する電力の変位が抑えられることで、より安定的な動作が実現可能となる効果が期待される。
【００５４】
また、グレイコード等の交番二進符号をカウンタ値として適用する場合には、コード長が２のべき乗数であれば、連続してカウンタを動作させた場合のコード遷移時（即ち、終値から初期値への遷移時）においてもハミング距離を常に１とすることが可能となる。
【００５５】
一方で、任意のコード長を周期としてカウンタを動作させた場合（特に、コード長が２のべき乗数とならない場合）には、連続してカウンタを動作させた場合のコード遷移時において、ハミング距離を常に１とすることが困難となる場合がある。
【００５６】
ここで、比較例として、図６及び図７を参照して、固体撮像装置においてシングルスロープ型のＡＤＣを実現するためのカウンタが出力するカウンタ値としてグレイコードを適用した場合の一例について説明する。図６及び図７は、比較例に係る固体撮像装置の動作の一例について説明するための説明図である。具体的には、図６は、カウンタが出力するカウンタ値としてグレイコードを適用した場合のＡＤＣの動作の一例について示している。また、図７は、任意のコード長を周期としてカウンタを動作させる場合におけるグレイコードで表されたカウンタ値の一例について示している。
【００５７】
図６に示す例では、各画素の画素信号として、入射光を受光した状態での画素信号と、入射光を状態していない状態での画素信号と、のそれぞれを取得し、これら２つの画素信号のレベルの差を、当該画素の受光結果に基づく正味の画素信号として扱う。このような構成により、所謂暗電流等のように、画素信号に含まれる直流成分の影響を除去することが可能となる。具体的には、図６の上側のグラフは、画素信号及びランプ波それぞれの時系列に沿ったレベルの変化を示している。また、図６の下側のグラフは、上記ランプ波に同期してカウンタから出力されるグレイコードで表されたカウンタ値それぞれの０（初期値）からのハミング距離を示している。即ち、図６の横軸は、時間を示している。また、図６の上側のグラフの縦軸は、信号（即ち、画素信号及びランプ波）のレベルを示している。また、図６の下側のグラフの縦軸は、グレイコードで表された各カウンタ値の初期値（例えば、０）からのハミング距離を示している。
【００５８】
図６において、参照符号Ｐ１１及びＰ１５は、画素が入射光を受光していない状態でのアナログの画素信号のレベルと、ランプ波（即ち、参照信号）のレベルと、の比較結果が一致するタイミングを模式的に示している。即ち、期間Ｔ１１及び期間Ｔ１５の測定結果に応じて特定されるランプ波のレベルが、当該画素信号のレベルに相当することとなる。また、タイミングＰ１１及びＰ１５における、カウンタのカウント値Ｃ１１及びＣ１５が上記比較結果に応じてラッチされ、画素が入射光を受光していない状態でのデジタルの画素信号として出力される。
【００５９】
また、参照符号Ｐ１３は、画素が入射光を受光している状態でのアナログの画素信号のレベルと、ランプ波（即ち、参照信号）のレベルと、の比較結果が一致するタイミングを模式的に示している。即ち、期間Ｔ１３の測定結果に応じて特定されるランプ波のレベルが、当該画素信号のレベルに相当することとなる。また、タイミングＰ１３における、カウンタのカウント値Ｃ１３が上記比較結果に応じてラッチされ、画素が入射光を受光している状態でのデジタルの画素信号として出力される。
【００６０】
一方で、図６に示すように、画素が入射光を受光していない状態で検出され得るアナログの画素信号のレベルは、画素が入射光を受光している状態で検出され得る当該画素信号のレベルに比べて極めて低い。このような状況下では、画素が入射光を受光している状態と同様のランプ波を使用したとしても、当該ランプ波の多くの部分が、実質的には画素信号のレベルの検出に使用されず、当該レベルの検出が行われていない期間が発生し得る。そのため、図６に示す例では、画素が入射光を受光していない状態でアナログの画素信号との比較に利用されるランプ波については、画素が入射光を受光している状態で当該画素信号との比較に利用されるランプ波に比べて、レベルの最大値がより小さくなるように制御している。これにより、アナログの画素信号とランプ波との比較に要する時間をより短縮することが可能となる。
【００６１】
また、上述したランプ波の最大値の調整に伴い、画素が入射光を受光している状態と、画素が入射光を受光していない状態とでは、カウンタのカウント値のコード長も異なることとなる。例えば、図６に示す例では、画素が入射光を受光していない状態においては、カウンタのカウント値として、コード長が１２のグレイコードが使用されている。また、画素が入射光を受光している状態においては、カウンタのカウント値として、コード長が２０のグレイコードが使用されている。
【００６２】
例えば、図７は、カウンタのカウント値としてグレイコードを利用した場合における、各カウンタ値に対応するコードの一覧を示している。なお、図７に示す例では、カウンタが出力するカウンタ値として５ビットのグレイコードを使用した場合において、コード長を１２及び２０とした場合のそれぞれについて、各カウンタ値に対応するコードの一覧を示している。また、図７では、参考として、５ビットのグレイコードの一覧として、コード長を２５＝３２とした場合の各カウンタ値に対応するコードの一覧をあわせて示している。
【００６３】
図７に示すように、カウンタが出力するカウンタ値として５ビットのグレイコードを利用する場合には、例えば、コード長が２５であれば、終値である「１００００」と、初期値である「０００００」との間でのビット変化が１ビットである。しかしながら、コード長が１２の場合と、コード長が２０の場合とのそれぞれにおいては、終値と初期値との間でのビット変化が１ビットとはなっていない。具体的には、コード長が１２の場合には、終値が「０１１１０」となり、当該終値と初期値との間でのビット変化が３ビットとなっている。また、コード長が２０の場合には、終値が「１１０１０」となり、当該終値と初期値との間でのビット変化が３ビットとなっている。即ち、図６及び図７に示す例では、連続してカウンタを動作させた場合のコード遷移時（即ち、終値から初期値への遷移時）において、ハミング距離が３となるため、例えば、一時的に消費電力が増大し、画素信号や参照信号に影響（例えば、レベルを変動させる等の影響）を及ぼす可能性がある。
【００６４】
なお、画素が入射光を受光している状態と、画素が入射光を受光していない状態と、のそれぞれにおいて、カウンタのコード長が２のべき乗となるように調整することで、上記の問題を解決することも可能ではある。しかしながら、この方法では、ランプ波のレベルの最大値として設定可能な値の制約が強く、現実的な対処方法とは言い難い。
【００６５】
以上のような状況を鑑み、本開示では、任意のコード長においてハミング距離が常に１となるコード、即ち、前後に隣接するコード間に加えて、終値と初期値との間においても、ハミング距離が常に１となるコードを利用可能とする技術を提案する。また、本開示では、当該コードを利用したカウンタと、当該カウンタを利用したＡＤＣ（ひいては、当該ＡＤＣを利用した固体撮像装置）とについても提案する。
【００６６】
＜＜３．技術的特長＞＞
以下に、本開示の一実施形態に係る固体撮像装置の技術的特徴について説明する。
【００６７】
＜３．１．構成例＞
まず、本開示の一実施形態に係る固体撮像装置の構成の一例について、特に、各画素からのアナログの画素信号をデジタル信号にＡ／Ｄ変換する部分に着目して説明する。例えば、図８は、本実施形態に係る固体撮像装置の機能構成の一例を示したブロック図であり、各画素からのアナログの画素信号をデジタル信号にＡ／Ｄ変換する部分についてより詳細に示している。なお、図８に示す例では、図３を参照して説明した構成のうち一部に相当する構成の図示を省略している。
【００６８】
図８に示すように、固体撮像装置１は、画素アレイ２０１と、水平走査回路２０３と、ＤＡＣ２０５と、カウンタ２０７と、ＡＤＣ２１３と、セレクタ２１９と、コード変換部２０９と、設定レジスタ２１１とを含む。また、ＡＤＣ２１３は、比較器２１５と、ラッチ回路２１７とを含む。なお、画素アレイ２０１、水平走査回路２０３、ＤＡＣ２０５、及びＡＤＣ２１３は、図３に示す例における、画素アレイ部１１１、水平走査回路１０３、ＤＡＣ１０７、及びＡＤＣ１１３にそれぞれ相当し、これらの構成について詳細な説明は省略する。
【００６９】
図８に示す例では、固体撮像装置１は、カウンタ値の取り得る値のうち最大の値（以下、「最大値」とも称する）を制御可能に構成されている。具体的な一例として、カウンタのコード長が「１２」の場合には、カウンタ値として「０」から「１１」の値を取り得るため、最大値は「１１」となる。また、カウンタがアップカウンタとして構成されている場合には、カウンタ値として取り得る「０」から「１１」の値のうち、「０」が初期値となり、「１１」が終値となる。同様に、カウンタのコード長が「２０」の場合には、カウンタ値として「０」から「１９」の値を取り得るため、最大値は「１９」となる。また、カウンタがアップカウンタとして構成されている場合には、カウンタ値として取り得る「０」から「１９」の値のうち、「０」が初期値となり、「１９」が終値となる。なお、カウンタがダウンカウンタとして構成されている場合には、アップカウンタとして構成されている場合に対して、カウンタ値の順序が昇順から降順に反転するため、初期値と終値の値についても反転することとなる。また、以降では、便宜上、カウンタ値が取り得る値のうち最小の値を、「最小値」とも称する。
【００７０】
カウンタ値の最大値の設定に関する情報ついては、所定の記憶領域に保持される。例えば、設定レジスタ２１１は、各種情報を一時的または恒久的に保持する記憶領域であり、例えば、カウンタ値の最大値の設定に関する情報を保持する。なお、以降の説明では、便宜上、カウンタ値の最大値の設定に関する情報が設定レジスタ２１１に保持されているものとする。
【００７１】
カウンタ２０７は、カウンタ値に応じたコードを生成し、ＤＡＣ２０５から各ＡＤＣ２１３の比較器２１３への参照信号（例えば、ランプ波）の出力に同期して、生成した当該コードを当該ＡＤＣ２１３のラッチ回路２１７に順次出力する。このとき、カウンタ２０７は、カウンタ値の最大値の設定に関する情報を読み出し、当該最大値に応じて、前後に隣接するコード間と、終値及び初期値間とのいずれにおいても、ハミング距離が１となるように、各カウンタ値に対応するコードを生成する。また、カウンタ２０７は、周期的に連続してカウントを行う場合に、カウントの周期（換言すると、初期値から終値までの一連のカウント）ごとにカウンタ値の最大値（換言すると、コード長）を選択的に切り替えてもよい。なお、以降の説明では、カウンタ２０７により生成される、各カウンタ値に対応するコードを、バイナリコードやグレイコードのような既存のコードと区別するために、便宜上「疑似コード」または「疑似グレイコード」とも称する。
【００７２】
（疑似グレイコードの一例）
ここで、図９を参照して、本開示の一実施形態に係る疑似グレイコードの一例について説明する。図９は、本実施形態に係る疑似グレイコードの一例を示した図である。図９では、本実施形態に係る疑似グレイコードの一例として、５ビットの疑似グレイコードについて、コード長が１２の場合の例と、コード長が２０の場合の例とを示している。また、詳細は後述するが、本実施形態に係る疑似グレイコードは、生成に際してグレイコードの特性を利用している。そのため、図９では、参考として、５ビットのグレイコードの一覧として、コード長を２５＝３２とした場合の各カウンタ値に対応するコードの一覧をあわせて示している。
【００７３】
本実施形態に係る固体撮像装置では、カウンタ値の最小値を０として規定しており、カウンタ値の最大値は、２以上２ｎ以下の偶数のコード長から１を減算した数値として規定される。具体的な一例として、図９に示すように、コード長が１２の場合には最大値が１１となり、コード長が２０の場合には最大値が１９となる。また、ｎビットの疑似グレイコードを規定する場合に、カウンタ値の最大値に対応するｎビットのバイナリコードを１ビット右シフトさせたコードに対応する値（以下、「比較値」とも称する）を基点として、比較値以下の値に対応するコードと、比較値を超える値に対応するコードとが規定される。具体的には、比較値から最小値（即ち、０）まで順次減算される各値に対して、当該比較値から順次減算される各値に対応するｎビットのグレイコードの最上位ビットに０を設定したコードがそれぞれ対応付けられている。また、比較値を超えて最大値まで順次加算される各値に対して、比較値から順次減算される各値に対応するｎビットのグレイコードの最上位ビットに１を設定したコードがそれぞれ対応付けられている。
【００７４】
より具体的な一例として、コード長が１２の場合について以下に説明する。コード長が１２の場合には、最大値が「１１」となり、当該最大値に対応するバイナリコード「０１０１１」を１ビット右シフトさせた「００１０１」に対応する値、即ち、「５」が比較値となる。そのため、比較値である「５」を基点として、「５」から「０」まで順次減算される各値には、グレイコードに従って「００１１１」から「０００００」まで順次減算されるコードがそれぞれ対応付けられている。また、比較値である「５」を基点として、「６」から「１１」まで順次加算される各値には、グレイコードに従って「１０１１１」から「１００００」まで順次減算されるコードがそれぞれ対応付けられている。
【００７５】
同様に、コード長が２０の場合について以下に説明する。コード長が２０の場合には、最大値が「１９」となり、当該最大値に対応するバイナリコード「１００１１」を１ビット右シフトさせた「０１００１」に対応する値、即ち、「９」が比較値となる。そのため、比較値である「９」を基点として、「９」から「０」まで順次減算される各値には、グレイコードに従って「０１１０１」から「０００００」まで順次減算されるコードがそれぞれ対応付けられている。また、比較値である「９」を基点として、「１０」から「１９」まで順次加算される各値には、グレイコードに従って「１１１０１」から「１００００」まで順次減算されるコードがそれぞれ対応付けられている。
【００７６】
なお、本実施形態に係る疑似グレイコードは、上記のような特徴から、換言すると、最大値の設定）が異なる場合には、一部の値に関連付けられるコードが必ずしも一致するとは限らない。例えば、コード長が１２の場合（即ち、最大値が１１の場合）には、値「１０」に対してコード「１０００１」が対応付けられているのに対して、コード長が２０の場合（即ち、最大値が１９の場合）には、値「１０」に対してコード「１１１０１」が対応付けられている。このような特性から、図８に示す固体撮像装置１では、カウンタ値の最大値の設定（即ち、カウンタ値のコード長の設定）に応じて、疑似グレイコードを当該最大値の設定に依存しない他のコード（例えば、バイナリコード）に変換する構成として、コード変換部２０９が設けられている。なお、コード変換部２０９が、「デコード部」の一例に相当する。
【００７７】
即ち、図８に示す固体撮像装置１では、カウンタ２０７からカウント結果に応じて各ＡＤＣ１２３のラッチ回路２１７に順次出力される疑似グレイコードが、当該ＡＤＣ１２３の比較器２１５による比較結果に応じて、当該ラッチ回路２１７に保持される。ラッチ回路２１７に保持された疑似グレイコードは、水平走査回路２０３による走査に応じて順次セレクタ２１９が駆動することで読み出され、コード変換部２０９に入力される。即ち、比較器２１５による比較結果に応じたタイミングに対応する、カウンタ２０７によるカウント結果に応じた疑似グレイコードがコード変換部２０９に入力されることとなる。コード変換部２０９は、設定レジスタ２１１に保持されたカウンタ値の最大値の設定に関する情報に応じて、入力される疑似グレイコードを、当該最大値の設定に依存しない他のコードに変換する。なお、以降の説明では、コード変換部２０９は、疑似グレイコードをバイナリコードに変換するものとする。
【００７８】
以上、図９を参照して、本開示の一実施形態に係る疑似グレイコードの一例について説明した。
【００７９】
（カウンタの構成）
続いて、図１０を参照して、図８に示すカウンタ２０７のより詳細な構成の一例について、特に、疑似グレイコードの生成に係る部分に着目して説明する。図１０は、本実施形態に係る疑似グレイコードの生成に係る構成の一例について説明するための説明図である。具体的には、図１０は、カウンタ２０７のより詳細な構成の一例として、特に、バイナリカウンタによるカウント結果に応じたｎビットのバイナリコードを、ｎビットの疑似グレイコードに変換するための構成の一例について示している。
【００８０】
図１０に示すように、カウンタ２０７は、バイナリカウンタ２３１と、シフトレジスタ２３３と、比較器２３５と、減算器２３７と、セレクタ２３９と、コード変換器２４１と、ビット結合部２４３とを含む。また、図１０に示す設定レジスタ２１１は、図８に示す設定レジスタ２１１に相当する。なお、図１０に示す例では、設定レジスタ２１１に保持されたカウンタ値の最大値の設定に関する情報に応じて、ｎビットのバイナリコードで表された当該最大値が、シフトレジスタ２３３及び減算器２３７に転送される。なお、以降の説明では、ｎビットのバイナリコードで表された上記最大値を、便宜上、「バイナリコードで表された最大値」、または、単に「最大値」とも称する。
【００８１】
バイナリカウンタ２３１は、バイナリコードをカウンタ値として利用したカウンタである。なお、図１０に示す例では、バイナリカウンタ２３１は、アップカウンタとして構成されている。バイナリカウンタ２３１は、カウント結果に応じたｎビットのバイナリコードを、比較器２３５、減算器２３７、及びセレクタ２３９のそれぞれに出力する。また、バイナリカウンタ２３１は、コード長が選択的に切り替えられてもよい。この場合には、バイナリカウンタ２３１は、例えば、設定レジスタ２１１からカウンタ値の最大値に関する情報の転送を受けて、当該最大値をカウンタ値の終値として設定すればよい。なお、以降の説明では、バイナリカウンタ２３１によるカウント結果に応じたｎビットのバイナリコードを、便宜上、「バイナリコードで表されたカウンタ値」、または、単に「カウンタ値」とも称する。また、上記したバイナリコードで表されたカウンタ値が、「第１の値」の一例に相当する。
【００８２】
シフトレジスタ２３３は、設定レジスタ２１１に保持された情報に応じて転送される、ｎビットのバイナリコードで表されたカウンタ値の最大値を、１ビット右シフトすることで、ｎビットのバイナリコードで表された比較値を算出する。シフトレジスタ２３３は、算出した比較値を、比較器２３５に出力する。なお、以降の説明では、シフトレジスタ２３３によりカウンタ値の最大値に応じて算出された、ｎビットのバイナリコードで表された比較値を、便宜上、「バイナリコードで表された比較値」、または、単に「比較値」とも称する。また、シフトレジスタ２３３が、「第１の演算部」の一例に相当する。
【００８３】
比較器２３５には、バイナリコードで表されたカウンタ値と、バイナリコードで表された比較値とが入力される。比較器２３５は、当該カウンタ値と当該比較値との間の比較結果に応じて、「０」または「１」をセレクタ２３９及びビット結合部２４３に出力する。なお、図１０に示す例では、比較器２３５は、カウンタ値が比較値以下の場合には「０」を出力し、カウンタ値が比較値を超える場合には「１」を出力する。
【００８４】
減算器２３７には、バイナリコードで表された最大値と、バイナリコードで表されたカウンタ値とが入力される。減算器２３７は、当該最大値から当該カウンタ値を減算し、減算結果として得られるバイナリコードで表された値を、セレクタ２３９に出力する。なお、減算器２３７の出力、即ち、上記減算結果として得られるバイナリコードで表された値が、「第２の値」の一例に相当する。
【００８５】
セレクタ２３９には、バイナリコードで表されたカウンタ値と、バイナリコードで表された減算器２３７からの出力値（即ち、上記最大値から当該カウンタ値を減算した結果）とが入力される。セレクタ２３９は、比較器２３５から比較結果として出力される値（即ち、「０」または「１」）に応じて、上記カウンタ値と、上記減算器２３７からの出力値と、のうちのいずれかを、後段に位置するコード変換器２４１に出力する。具体的には、セレクタ２３９は、上記比較結果として「０」が入力された場合（即ち、上記カウンタ値が上記比較値以下の場合）には、上記カウンタ値をコード変換器２４１に出力する。また、セレクタ２３９は、上記比較結果として「１」が入力された場合（即ち、上記カウンタ値が上記比較値を超える場合）には、上記減算器２３７からの出力値をコード変換器２４１に出力する。なお、セレクタ２３９が、「第１の選択部」の一例に相当する。また、セレクタ２３９の出力、即ち、比較器２３５による上記比較結果に応じて、上記カウンタ値と、上記減算器２３７からの出力値とのうちから選択された値が、「第３の値」の一例に相当する。
【００８６】
コード変換器２４１は、セレクタ２３９から出力されるｎビットのバイナリコードで表された値をｎビットのグレイコードに変換し、当該変換の結果として得られる値（即ち、ｎビットのグレイコードで表された値）を、後段に位置するビット結合部２４３に出力する。なお、バイナリコードからグレイコードに変換する処理については、公知の技術を利用することが可能なため、同処理の詳細については説明を省略する。また、コード変換器２４１が、「第２の演算部」の一例に相当する。
【００８７】
ビット結合部２４３には、グレイコードで表されたコード変換器２４１からの出力値と、比較器２３５から比較結果として出力される値（即ち、「０」または「１」）と、が入力される。ビット結合部２４３は、コード変換器２４１からの出力値の最上位ビットに対して、上記比較結果として出力される値を設定することで疑似グレイコードを生成する。そして、ビット結合部２４３により生成された疑似グレイコードが、カウンタ２０７から出力される。即ち、バイナリカウンタ２３１のカウント結果に応じて生成された疑似グレイコードが、例えば、図８に示す固体撮像装置１に含まれる各ＡＤＣ２１３のラッチ回路２１７に出力される。
【００８８】
なお、ビット結合部２４３は、比較器２３５から比較結果として出力される値と、グレイコードで表されたコード変換器２４１からの出力値の最上位ビットと、が一致する場合には、上記最上位ビットの設定に係る処理を省略してもよい。この場合には、ビット結合部２４３は、グレイコードで表されたコード変換器２４１からの出力値を、疑似グレイコードとして出力すればよい。
【００８９】
なお、図１０において参照符号２４５で示した部分、即ち、シフトレジスタ２３３、比較器２３５、減算器２３７、セレクタ２３９、コード変換器２４１、及びビット結合部２４３を含む構成が、バイナリコードを疑似グレイコードに変換する「コード変換部」の一例に相当する。即ち、当該コード変換部が含まれるように構成された装置が、バイナリコードを疑似グレイコードに変換する「コード変換装置」の一例に相当する。また、当該コード変換部や当該コード変換装置の適用先は、必ずしも図１０に示すようなカウンタのみには限定されない。即ち、本実施形態に係る疑似グレイコードを利用可能なシステムや装置であれば、当該コード変換部や当該コード変換装置を適用することが可能である。
【００９０】
以上、図１０を参照して、図８に示すカウンタ２０７のより詳細な構成の一例について、特に、疑似グレイコードの生成に係る部分に着目して説明した。
【００９１】
（コード変換部の構成）
続いて、図１１を参照して、図８に示すコード変換部２０９のより詳細な構成の一例について説明する。図１１は、本実施形態に係る疑似グレイコードからバイナリコードへの変換に係る構成の一例について説明するための説明図である。具体的には、図１１は、コード変換部２０９のより詳細な構成の一例として、特に、ｎビットの疑似グレイコードを、ｎビットのバイナリコードに変換するための構成の一例について示している。
【００９２】
図１１に示すように、コード変換部２０９は、ビット分離部２７１と、コード変換器２７３と、減算器２７５と、セレクタ２７７とを含む。また、図１１に示す設定レジスタ２１１は、図８に示す設定レジスタ２１１に相当する。なお、図１１に示す例では、設定レジスタ２１１に保持されたカウンタ値の最大値の設定に関する情報に応じて、ｎビットのバイナリコードで表された当該最大値が減算器２７５に転送される。
【００９３】
ビット分離部２７１は、本開示の一実施形態に係る疑似グレイコードが入力される。具体的な一例として、図８に示す例の場合には、カウンタ２０７のカウント結果に応じて各ＡＤＣ２１３のラッチ回路２１７に保持されたｎビットの疑似グレイコードが、ビット分離部２７１に入力される。ビット分離部２７１は、入力された疑似グレイコードから最上位ビットを分離し、当該最上位ビット（即ち、「０」または「１」）をセレクタ２７７に出力する。また、ビット分離部２７１は、入力されたｎビットの疑似グレイコードから最上位ビットが分離されたコード（即ち、最上位ビットが０となるｎビットのグレイコード）を、コード変換器２７３に出力する。
【００９４】
コード変換器２７３は、ビット分離部２７１から出力されるｎビットのグレイコードをｎビットのバイナリコードに変換し、当該変換の結果として得られる値（即ち、ｎビットのバイナリコードで表された値）を、後段に位置する減算器２７５及びセレクタ２７７のそれぞれに出力する。なお、コード変換器２７３が、「第３の演算部」の一例に相当する。また、コード変換器２７３から出力される値、即ち、上記変換の結果として得られるｎビットのバイナリコードで表された値が、「第４の値」の一例に相当する。
【００９５】
減算器２７５は、バイナリコードで表された最大値と、バイナリコードで表されたコード変換器２７３からの出力値と、が入力される。減算器２７５は、当該最大値から当該コード変換器２７３からの出力値を減算し、減算結果として得られるバイナリコードで表された値を、セレクタ２７７に出力する。なお、減算器２７５から出力される値、即ち、上記減算の結果として得られるｎビットのバイナリコードで表された値が、「第５の値」の一例に相当する。
【００９６】
セレクタ２７７には、バイナリコードで表されたコード変換器２７３からの出力値と、バイナリコードで表された減算器２７５からの出力値（即ち、上記最大値から当該コード変換器２７３からの出力値を減算した結果）とが入力される。セレクタ２７７は、ビット分離部２７１から出力される最上位ビット（即ち、「０」または「１」）に応じて、上記コード変換器２７３からの出力値と、上記減算器２３７からの出力値と、のうちのいずれかを出力する。具体的には、セレクタ２７７は、上記最上位ビットとして「０」が入力された場合には、上記コード変換器２７３からの出力値を出力する。また、セレクタ２７７は、上記比較結果として「１」が入力された場合には、上記減算器２７５からの出力値を出力する。なお、セレクタ２７７が、「第２の選択部」の一例に相当する。
【００９７】
なお、図８に示す例では、固体撮像装置１内にコード変換部２０９が設けられているが、必ずしも固体撮像装置１の構成を限定するものではない。即ち、カウンタ２０７が疑似コードの生成に利用した上記最大値をコード変換部２０９が認識することが可能であれば、当該コード変換部２０９が設けられる位置は、必ずしも固体撮像装置１内には限定されない。具体的な一例として、コード変換部２０９が固体撮像装置１の外部に設けられていてもよい。なお、この場合には、例えば、コード変換部２０９は、上記最大値に関する情報を固体撮像装置１から取得してもよい。また、上記最大値に関する情報が、規約等により規定されていてもよい。また、コード変換部２０９が含まれるように構成された装置が、疑似グレイコードをバイナリコードに変換する「コード変換装置」の一例に相当する。
【００９８】
以上、図１１を参照して、図８に示すコード変換部２０９のより詳細な構成の一例について説明した。
【００９９】
＜３．２．処理＞
続いて、本実施形態に係る固体撮像装置の一連の処理の流れの一例について、特に、疑似コードの生成及び出力に係る部分と、当該疑似グレイコードをバイナリコードに変換する部分と、のそれぞれに着目して説明する。
【０１００】
（疑似グレイコードの生成及び出力に係る処理）
まず、図１２を参照して、図８に示す固体撮像装置１の一連の処理のうち、特に、カウンタ２０７がカウント結果に応じて疑似グレイコードを生成して出力する処理、即ち、バイナリコードで表されたカウンタ値を疑似グレイコードに変換する処理の一例について説明する。図１２は、本実施形態に係る固体撮像装置の処理の流れの一例について説明するための説明図であり、カウント結果に応じて疑似グレイコードを生成して出力する処理の流れの一例を示している。
【０１０１】
図１２に示すように、カウンタ２０７は、設定レジスタ２１１からカウンタ値の最大値の設定に関する情報を取得することで、当該最大値の設定を認識する。また、カウンタ２０７（シフトレジスタ２３３）は、ｎビットのバイナリコードで表された当該最大値を１ビット右シフトすることで、ｎビットのバイナリコードで表された比較値を算出する（Ｓ１０１）。
【０１０２】
続いて、カウンタ２０７（バイナリカウンタ２３１）は、カウントの結果としてｎビットのバイナリコードで表されたカウンタ値を取得する（Ｓ１０３）。そして、カウンタ２０７（比較器２３５）は、当該カウンタ値と比較値とを比較する（Ｓ１０５）。
【０１０３】
カウンタ値が比較値以下の場合には（Ｓ１０５、ＹＥＳ）、カウンタ２０７（コード変換器２４１）は、当該カウンタ値をグレイコードに変換する（Ｓ１０７）。また、カウンタ２０７（ビット結合部２４３）は、当該グレイコードの最上位ビットに「０」を設定する（Ｓ１０９）。
【０１０４】
これに対して、カウンタ値が比較値を超える場合には（Ｓ１０５、ＮＯ）、カウンタ２０７（コード変換器２４１）は、最大値から当該カウンタ値を減算した値をグレイコードに変換する（Ｓ１１１）。また、カウンタ２０７（ビット結合部２４３）は、当該グレイコードの最上位ビットに「１」を設定する（Ｓ１１３）。
【０１０５】
以上のようにして、カウンタ２０７は、カウント結果に応じてバイナリコードで表されたカウンタ値を疑似グレイコードに変換する。即ち、カウンタ２０７は、カウンタ値に応じた疑似グレイコードを生成する。そして、カウンタ２０７は、生成した疑似グレイコードを所定の出力先に出力する（Ｓ１１５）。具体的な一例として、図８に示す固体撮像装置１では、カウンタ２０７は、各ＡＤＣ２１３のラッチ回路２１７に、カウント結果に応じて生成した疑似グレイコードを出力する。
【０１０６】
カウンタ２０７は、一連の処理の終了が指示されない限り（Ｓ１１７、ＮＯ）、参照符号Ｓ１０３〜Ｓ１１５で示された処理を逐次実行する。なお、このとき、カウントの周期ごとに、カウンタ値の最大値の設定が変更されてもよい。そして、カウンタ２０７は、一連の処理の終了が指示されると（Ｓ１１７、ＹＥＳ）、参照符号Ｓ１０３〜Ｓ１１５で示された処理の実行を終了する。
【０１０７】
以上、図１２を参照して、図８に示す固体撮像装置１の一連の処理のうち、特に、カウンタ２０７がカウント結果に応じて疑似グレイコードを生成して出力する処理の一例について説明した。
【０１０８】
（疑似グレイコードをバイナリコードに変換する処理）
次いで、図１３を参照して、図８に示す固体撮像装置１の一連の処理のうち、特に、コード変換部２０９が疑似グレイコードをバイナリコードに変換する処理の一例について説明する。図１３は、本実施形態に係る固体撮像装置の処理の流れの他の一例について説明するための説明図であり、疑似グレイコードをバイナリコードに変換する処理の流れの一例を示している。
【０１０９】
図１３に示すように、コード変換部２０９は、設定レジスタ２１１からカウンタ値の最大値の設定に関する情報を取得することで、当該最大値の設定を認識する（Ｓ２０１）。
【０１１０】
次いで、コード変換部２０９は、入力値として疑似グレイコードを取得する（Ｓ２０３）。具体的な一例として、図８に示す例の場合には、カウンタ２０７のカウント結果に応じて各ＡＤＣ２１３のラッチ回路２１７に保持されたｎビットの疑似グレイコードが、コード変換部２０９に入力される。
【０１１１】
コード変換部２０９（ビット分離部２７１）は、入力された疑似グレイコードから、最上位ビットを分離する（Ｓ２０５）。このとき、入力されたｎビットの疑似グレイコードから最上位ビットが分離されたコードは、最上位ビットが０となるｎビットのグレイコードに相当する。
【０１１２】
コード変換部２０９（コード変換器２７３）は、疑似グレイコードから分離されたｎビットのグレイコードをｎビットのバイナリコードに変換する（Ｓ２０７）。
【０１１３】
そして、コード変換部２０９（セレクタ２７７）は、入力された疑似グレイコードをバイナリコードから分離された最上ビットが「０」と「１」のいずれかを判定し、当該判定の結果に応じて出力を選択的に切り替える。具体的には、最上位ビットが「０」の場合には（Ｓ２０９、ＹＥＳ）、コード変換部２０９（セレクタ２７７）は、上記グレイコードが変換されたバイナリコードを所定の出力先に出力する（Ｓ２１１）。これに対して、最上位ビットが「１」の場合には（Ｓ２０９、ＮＯ）、コード変換部２０９（セレクタ２７７）は、上記最大値から上記グレイコードが変換されたバイナリコードを減算した値を所定の出力先に出力する（Ｓ２１３）。
【０１１４】
以上のようにして、コード変換部２０９は、一連の処理の終了が指示されない限り（Ｓ２１５、ＮＯ）、参照符号Ｓ２０３〜Ｓ２１３で示された処理を逐次実行する。なお、このとき、カウントの周期ごとに、カウンタ値の最大値の設定が変更されてもよい。そして、カウンタ２０７は、一連の処理の終了が指示されると（Ｓ２１５、ＹＥＳ）、参照符号Ｓ２０３〜Ｓ２１３で示された処理の実行を終了する。
【０１１５】
以上、図１３を参照して、図８に示す固体撮像装置１の一連の処理のうち、特に、コード変換部２０９が疑似グレイコードをバイナリコードに変換する処理の一例について説明した。
【０１１６】
＜３．３．実施例＞
続いて、本実施形態に係る固体撮像装置の実施例として、シングルスロープ型のＡＤＣを実現するためのカウンタが出力するカウンタ値として本実施形態に係る疑似グレイコードを適用した場合の一例について説明する。例えば、図１４は、本実施形態に係る固体撮像装置の実施例について説明するための説明図であり、カウンタが出力するカウンタ値として本実施形態に係る疑似グレイコードを適用した場合のＡＤＣの動作の一例について示している。
【０１１７】
具体的には、図１４に示す例では、図６に示す例と同様に、各画素の画素信号として、入射光を受光した状態での画素信号と、入射光を状態していない状態での画素信号と、のそれぞれを取得し、これら２つの画素信号のレベルの差を、当該画素の受光結果に基づく正味の画素信号として扱う場合の一例について示している。即ち、図１４の上側のグラフは、画素信号及びランプ波それぞれの時系列に沿ったレベルの変化を示している。また、図１４の下側のグラフは、上記ランプ波に同期してカウンタから出力される疑似グレイコードで表されたカウンタ値それぞれの０（初期値）からのハミング距離を示している。即ち、図１４の横軸は、時間を示している。また、図１４の上側のグラフの縦軸は、信号（即ち、画素信号及びランプ波）のレベルを示している。また、図１４の下側のグラフの縦軸は、疑似グレイコードで表された各カウンタ値の初期値（例えば、０）からのハミング距離を示している。
【０１１８】
図１４において、参照符号Ｐ２１及びＰ２５は、画素が入射光を受光していない状態でのアナログの画素信号のレベルと、ランプ波（即ち、参照信号）のレベルと、の比較結果が一致するタイミングを模式的に示している。また、タイミングＰ２１及びＰ２５における、カウンタのカウント値Ｃ２１及びＣ２５が上記比較結果に応じてラッチされ、画素が入射光を受光していない状態でのデジタルの画素信号として出力される。
【０１１９】
また、参照符号Ｐ２３は、画素が入射光を受光している状態でのアナログの画素信号のレベルと、ランプ波（即ち、参照信号）のレベルと、の比較結果が一致するタイミングを模式的に示している。また、タイミングＰ２３における、カウンタのカウント値Ｃ１３が上記比較結果に応じてラッチされ、画素が入射光を受光している状態でのデジタルの画素信号として出力される。
【０１２０】
また、図１４に示す例では、図６に示す例と同様に、画素が入射光を受光していない状態でアナログの画素信号との比較に利用されるランプ波については、画素が入射光を受光している状態で当該画素信号との比較に利用されるランプ波に比べて、レベルの最大値がより小さくなるように制御している。即ち、上記ランプ波の最大値の調整に伴い、画素が入射光を受光している状態と、画素が入射光を受光していない状態とでは、カウンタのカウント値のコード長も異なることとなる。例えば、図１４に示す例では、画素が入射光を受光していない状態においては、カウンタのカウント値として、コード長が１２の疑似グレイコードが使用されている。また、画素が入射光を受光している状態においては、カウンタのカウント値として、コード長が２０の疑似グレイコードが使用されている。なお、疑似グレイコードの一覧については、図９を参照して前述した通りである。
【０１２１】
図９に示すように、本実施形態に係る疑似グレイコードは、コード長が１２の場合と、コード長が２０の場合とのいずれにおいても、初期値「０００００」に対して終値が「１００００」となり、該終値と初期値との間でのビット変化が１ビットとなっている。これは、他のコード長の場合においても同様である。このような特性から、カウンタから出力されるカウンタ値として当該疑似コードを利用することで、連続してカウンタを動作させた場合のコード遷移時（即ち、終値から初期値への遷移時）において、ハミング距離が１となる。また、図１４に示すように、カウンタを連続して動作させる際に、コード長の設定が選択的に切り替えられるような状況下でも、前後に隣接するコード間と、終値と初期値との間と、のいずれにおいても、ハミング距離が常に１となるように（換言すると、ビット変位が均等化されるように）、当該カウンタを構成することが可能となる。
【０１２２】
以上のように、本実施形態に係る疑似グレイコードを利用することで、カウンタを任意のコード長で連続して動作させる場合においても、順次カウントを行う際や、カウントの終了後に新たにカウントを開始する際のその時々で駆動する素子（例えば、トランジスタ等）の数が均等化される。即ち、上記カウンタの一連の動作において、各素子の駆動に要する電力の変位をより小さく抑えることが可能となる。そのため、例えば、カウンタ値のビット変位（換言すると、各素子の駆動に要する電力の変位）が画素信号や参照信号に与える影響をより低減し、より安定的な動作を実現することも可能となる。
【０１２３】
以上、本実施形態に係る固体撮像装置の実施例として、図９及び図１４を参照して、シングルスロープ型のＡＤＣを実現するためのカウンタが出力するカウンタ値として本実施形態に係る疑似グレイコードを適用した場合の一例について説明した。
【０１２４】
＜３．４．変形例＞
続いて、本実施形態に係る固体撮像装置の変形例について説明する。
【０１２５】
＜３．４．１．変形例１：ダウンカウンタとして構成する場合の一例＞
まず、変形例１として、本実施形態に係る疑似グレイコードの他の一例について説明する。具体的には、前述した実施形態では、カウンタ２０７に含まれるバイナリカウンタ２３１がアップカウンタとして構成されている場合の一例について説明した。これに対して、変形例１では、当該バイナリカウンタ２３１に相当する部分がダウンカウンタとして構成されている場合の一例について説明する。
【０１２６】
（疑似グレイコードの一例）
まず、図１５を参照して、変形例１に係る疑似グレイコードの一例について説明する。図１５は、変形例１に係る疑似グレイコードの一例について説明するための説明図である。図１５では、変形例１に係る疑似グレイコードの一例として、５ビットの疑似グレイコードについて、コード長が１２の場合の例と、コード長が２０の場合の例とを示している。
【０１２７】
変形例１に係る疑似グレイコードは、比較値を基点として、比較値以下の値に対応するコードと、比較値を超える値に対応するコードとが規定される。具体的には、比較値から最小値（即ち、０）まで順次減算される各値に対して、当該比較値から順次減算される各値に対応するｎビットのグレイコードの最上位ビットに１を設定したコードがそれぞれ対応付けられている。また、比較値を超えて最大値まで順次加算される各値に対して、比較値から順次減算される各値に対応するｎビットのグレイコードの最上位ビットに０を設定したコードがそれぞれ対応付けられている。
【０１２８】
より具体的な一例として、コード長が１２の場合について以下に説明する。コード長が１２の場合には、最大値が「１１」となり、比較値が「５」となる。そのため、比較値である「５」を基点として、「５」から「０」まで順次減算される各値には、グレイコードに従って「１０１１１」から「１００００」まで順次減算されるコードがそれぞれ対応付けられている。また、比較値である「５」を基点として、「６」から「１１」まで順次加算される各値には、グレイコードに従って「００１１１」から「０００００」まで順次減算されるコードがそれぞれ対応付けられている。
【０１２９】
同様に、コード長が２０の場合について以下に説明する。コード長が２０の場合には、最大値が「１９」となり、比較値が「９」となる。そのため、比較値である「９」を基点として、「９」から「０」まで順次減算される各値には、グレイコードに従って「１１１０１」から「１００００」まで順次減算されるコードがそれぞれ対応付けられている。また、比較値である「９」を基点として、「１０」から「１９」まで順次加算される各値には、グレイコードに従って「０１１０１」から「０００００」まで順次減算されるコードがそれぞれ対応付けられている。
【０１３０】
以上、図１５を参照して、変形例１に係る疑似グレイコードの一例について説明した。
【０１３１】
（カウンタの構成）
続いて、図１６を参照して、変形例１に係る固体撮像装置のうち、図８に示すカウンタ２０７に相当する部分の機能構成の一例について、特に、疑似グレイコードの生成に係る部分に着目して説明する。図１６は、変形例１に係る疑似グレイコードの生成に係る構成の一例について説明するための説明図である。具体的には、図１６は、図８に示すカウンタ２０７に相当する部分の機能構成の一例として、特に、バイナリカウンタによるカウント結果に応じたｎビットのバイナリコードを、ｎビットの疑似グレイコードに変換するための構成の一例について示している。なお、以降の説明では、変形例１に係る固体撮像装置のうち、図８に示すカウンタ２０７に相当する構成を、前述した実施形態に係るカウンタ２０７と区別するために、便宜上「カウンタ４０１」とも称する。
【０１３２】
図１６に示すように、カウンタ４０１は、バイナリカウンタ４０３と、シフトレジスタ４０５と、比較器２３５と、減算器２３７と、セレクタ２３９と、コード変換器２４１と、ビット結合部２４３とを含む。また、図１６に示す設定レジスタ２１１は、図８に示す設定レジスタ２１１に相当する。なお、図１６に示す例では、設定レジスタ２１１に保持されたカウンタ値の最大値の設定に関する情報に応じて、ｎビットのバイナリコードで表された当該最大値が、バイナリカウンタ４０３、シフトレジスタ４０５、及び減算器４０９に転送される。
【０１３３】
バイナリカウンタ４０３は、バイナリコードをカウンタ値として利用したカウンタである。なお、図１６に示す例では、バイナリカウンタ４０３は、ダウンカウンタとして構成されており、設定レジスタ２１１から転送される最大値をカウンタ値の初期値として設定する。バイナリカウンタ４０３は、カウント結果に応じたｎビットのバイナリコードを、比較器４０７、減算器４０９、及びセレクタ４１１のそれぞれに出力する。また、バイナリカウンタ４０３は、コード長が選択的に切り替えられてもよい。
【０１３４】
シフトレジスタ４０５は、図１０に示すカウンタ２０７におけるシフトレジスタ２３３と同様である。即ち、シフトレジスタ４０５は、ｎビットのバイナリコードで表されたカウンタ値の最大値を、１ビット右シフトすることで、ｎビットのバイナリコードで表された比較値を算出し、当該比較値を比較器４０７に出力する。
【０１３５】
比較器４０７には、バイナリコードで表されたカウンタ値と、バイナリコードで表された比較値とが入力される。比較器２３５は、当該カウンタ値と当該比較値との間の比較結果に応じて、「０」または「１」をセレクタ４１１及びビット結合部４１５に出力する。なお、図１６に示す例では、比較器４０７は、カウンタ値が比較値以下の場合には「１」を出力し、カウンタ値が比較値を超える場合には「０」を出力する。
【０１３６】
減算器４０９は、図１０に示すカウンタ２０７における減算器２３７と同様である。即ち、減算器４０９は、バイナリコードで表された最大値から、バイナリコードで表されたカウンタ値を減算し、減算結果として得られるバイナリコードで表された値を、セレクタ４１１に出力する。
【０１３７】
セレクタ４１１には、バイナリコードで表されたカウンタ値と、バイナリコードで表された減算器４０９からの出力値（即ち、上記最大値から当該カウンタ値を減算した結果）とが入力される。セレクタ４１１は、比較器４０７から比較結果として出力される値（即ち、「０」または「１」）に応じて、上記カウンタ値と、上記減算器４０９からの出力値と、のうちのいずれかを、後段に位置するコード変換器４１３に出力する。具体的には、セレクタ４１１は、上記比較結果として「０」が入力された場合（即ち、上記カウンタ値が上記比較値を超える場合）には、上記減算器４０９からの出力値をコード変換器２４１に出力する。また、セレクタ４１１は、上記比較結果として「１」が入力された場合（即ち、上記カウンタ値が上記比較値以下の場合）には、上記カウンタ値をコード変換器２４１に出力する。
【０１３８】
コード変換器４１３は、図１０に示すカウンタ２０７におけるコード変換器２４１と同様である。即ち、コード変換器４１３は、セレクタ４１１から出力されるｎビットのバイナリコードで表された値をｎビットのグレイコードに変換し、当該変換の結果として得られる値（即ち、ｎビットのグレイコードで表された値）を、後段に位置するビット結合部４１５に出力する。
【０１３９】
ビット結合部４１５は、図１０に示すカウンタ２０７におけるビット結合部２４３と同様である。即ち、ビット結合部４１５は、コード変換器２４１からの出力値の最上位ビットに対して、比較器４０７から比較結果として出力される値を設定することで疑似グレイコードを生成する。そして、ビット結合部４１５により生成された疑似グレイコードが、カウンタ４０１から出力される。
【０１４０】
以上のように、カウンタ４０１を構成することで、ダウンカウンタからカウント結果として出力されるバイナリコードのカウンタ値を、図１５を参照して説明した例のような、変形例１に係る疑似グレイコードに変換することが可能となる。
【０１４１】
なお、本変形例においては、図１６において参照符号４１７で示した部分、即ち、シフトレジスタ４０５、比較器４０７、減算器４０９、セレクタ４１１、コード変換器４１３、及びビット結合部４１５を含む構成が、バイナリコードを疑似グレイコードに変換する「コード変換部」の一例に相当する。即ち、当該コード変換部が含まれるように構成された装置が、バイナリコードを疑似グレイコードに変換する「コード変換装置」の一例に相当する。
【０１４２】
以上、図１６を参照して、変形例１に係る固体撮像装置のうち、図８に示すカウンタ２０７に相当する部分の機能構成の一例について、特に、疑似グレイコードの生成に係る部分に着目して説明した。
【０１４３】
（コード変換部の構成）
続いて、図１７を参照して、変形例１に係る固体撮像装置のうち、図８に示すコード変換部２０９に相当する部分の機能構成の一例について説明する。図１７は、変形例１に係る疑似グレイコードからバイナリコードへの変換に係る構成の一例について説明するための説明図である。具体的には、図１７は、変形例１に係る固体撮像装置におけるコード変換部２０９に相当する部分のより詳細な構成の一例として、特に、ｎビットの疑似グレイコードを、ｎビットのバイナリコードに変換するための構成の一例について示している。なお、以降の説明では、変形例１に係る固体撮像装置のうち、図８に示すコード変換部２０９に相当する構成を、前述した実施形態に係るコード変換部２０９と区別するために、便宜上「コード変換部４２１」とも称する。
【０１４４】
図１７に示すように、コード変換部４２１は、ビット分離部４２３と、コード変換器４２５と、減算器４２７よ、セレクタ４２９とを含む。また、図１７に示す設定レジスタ２１１は、図８に示す設定レジスタ２１１に相当する。なお、図１７に示す例では、設定レジスタ２１１に保持されたカウンタ値の最大値の設定に関する情報に応じて、ｎビットのバイナリコードで表された当該最大値が減算器４２７に転送される。
【０１４５】
ビット分離部４２３は、図１１に示すコード変換部２０９におけるビット分離部２７１と同様である。即ち、ビット分離部４２３は、入力された疑似グレイコードから、最上位ビットを分離し、当該最上位ビット（即ち、「０」または「１」）をセレクタ４２９に出力する。また、ビット分離部４２３は、入力されたｎビットの疑似グレイコードから最上位ビットが分離されたコード（即ち、最上位ビットが０となるｎビットのグレイコード）を、コード変換器４２５に出力する。
【０１４６】
コード変換器４２５は、図１１に示すコード変換部２０９におけるコード変換器２７３と同様である。即ち、コード変換器４２５は、ビット分離部４２３から出力されるｎビットのグレイコードをｎビットのバイナリコードに変換し、当該変換の結果として得られる値（即ち、ｎビットのバイナリコードで表された値）を、後段に位置する減算器４２７及びセレクタ４２９のそれぞれに出力する。
【０１４７】
減算器４２７は、図１１に示すコード変換部２０９における減算器２７５と同様である。即ち、減算器４２７は、バイナリコードで表された最大値から、バイナリコードで表されたコード変換器２７３からの出力値を減算し、減算結果として得られるバイナリコードで表された値を、セレクタ４２９に出力する。
【０１４８】
セレクタ４２９には、バイナリコードで表されたコード変換器４２５からの出力値と、バイナリコードで表された減算器４２７からの出力値（即ち、上記最大値から当該コード変換器４２５からの出力値を減算した結果）とが入力される。セレクタ４２９は、ビット分離部４２３から出力される最上位ビット（即ち、「０」または「１」）に応じて、上記コード変換器４２５からの出力値と、上記減算器４２７からの出力値と、のうちのいずれかを出力する。具体的には、セレクタ４２９は、上記比較結果として「０」が入力された場合には、上記減算器４２７からの出力値を出力する。また、セレクタ４２９は、上記最上位ビットとして「１」が入力された場合には、上記コード変換器４２５からの出力値を出力する。
【０１４９】
以上のように、コード変換部４２１を構成することで、図１６を参照して前述したカウンタ４０１により生成された疑似グレイコードを対応するバイナリコードに変換することが可能となる。
【０１５０】
以上、図１７を参照して、変形例１に係る固体撮像装置のうち、図８に示すコード変換部２０９に相当する部分の機能構成の一例について説明した。
【０１５１】
＜３．４．２．変形例２：負論理のカウンタとして構成する場合の一例＞
続いて、変形例２として、本実施形態に係る疑似グレイコードの他の一例として、前述した実施形態に係るカウンタ２０７を、負論理の疑似グレイコードカウンタとして構成する場合の例について説明する。具体的には、変形例２では、カウント結果に応じた疑似グレイコードとして、前述した実施形態に係る疑似グレイコード（例えば、図９に示す疑似グレイコード）の各ビットの０と１を反転させたコードを出力する場合の一例について説明する。
【０１５２】
（疑似グレイコードの一例）
まず、図１７を参照して、変形例２に係る疑似グレイコードの一例について説明する。図１８は、変形例２に係る疑似グレイコードの一例について説明するための説明図である。図１８では、変形例２に係る疑似グレイコードの一例として、５ビットの疑似グレイコードについて、コード長が１２の場合の例と、コード長が２０の場合の例とを示している。
【０１５３】
変形例２に係る疑似グレイコードは、図１８と図９とを比較するとわかるように、前述した実施形態に係る疑似グレイコード（例えば、図９参照）の各ビットの０と１を反転したコードとなっている。
【０１５４】
（カウンタの構成）
続いて、図１９を参照して、変形例２に係る固体撮像装置のうち、図８に示すカウンタ２０７に相当する部分の機能構成の一例について、特に、疑似グレイコードの生成に係る部分に着目して説明する。図１９は、変形例２に係る疑似グレイコードの生成に係る構成の一例について説明するための説明図である。具体的には、図１９は、図８に示すカウンタ２０７に相当する部分の機能構成の一例として、特に、バイナリカウンタによるカウント結果に応じたｎビットのバイナリコードを、ｎビットの疑似グレイコードに変換するための構成の一例について示している。なお、以降の説明では、変形例２に係る固体撮像装置のうち、図８に示すカウンタ２０７に相当する構成を、当該カウンタ２０７と区別するために、便宜上「カウンタ４４１」とも称する。
【０１５５】
図１９と図１０とを比較するとわかるように、比較例２に係るカウンタ４４１は、出力端に反転回路４４３が設けられている点で、図１０に示すカウンタ２０７と異なる。即ち、カウンタ４４１の各構成のうち、反転回路４４３以外の他の構成については、図１０に示すカウンタ２０７の場合と実質的に同様のため、詳細な説明は省略する。
【０１５６】
反転回路４４３は、コード変換器２４１からの出力値の最上位ビットに対して、比較器２３５から比較結果として出力される値が設定されたコードの、各ビットの０と１を反転することで、疑似グレイコードを生成する。そして、反転回路４４３によるビット制御の結果として生成された疑似グレイコードが、カウンタ４４１から出力される。なお、反転回路４４３が、「第１のビット反転部」の一例に相当する。
【０１５７】
以上のように、カウンタ４４１を構成することで、カウント結果として出力されるバイナリコードのカウンタ値を、図１８を参照して説明した例のような、変形例２に係る疑似グレイコードに変換することが可能となる。
【０１５８】
なお、本変形例においては、図１９において参照符号４４５で示した部分、即ち、シフトレジスタ２３３、比較器２３５、減算器２３７、セレクタ２３９、コード変換器２４１、ビット結合部２４３、及び反転回路４４３を含む構成が、バイナリコードを疑似グレイコードに変換する「コード変換部」の一例に相当する。即ち、当該コード変換部が含まれるように構成された装置が、バイナリコードを疑似グレイコードに変換する「コード変換装置」の一例に相当する。
【０１５９】
以上、図１９を参照して、変形例２に係る固体撮像装置のうち、図８に示すカウンタ２０７に相当する部分の機能構成の一例について、特に、疑似グレイコードの生成に係る部分に着目して説明した。
【０１６０】
（コード変換部の構成）
続いて、図２０を参照して、変形例２に係る固体撮像装置のうち、図８に示すコード変換部２０９に相当する部分の機能構成の一例について説明する。図２０は、変形例２に係る疑似グレイコードからバイナリコードへの変換に係る構成の一例について説明するための説明図である。具体的には、図２０は、変形例２に係る固体撮像装置におけるコード変換部２０９に相当する部分のより詳細な構成の一例として、特に、ｎビットの疑似グレイコードを、ｎビットのバイナリコードに変換するための構成の一例について示している。なお、以降の説明では、変形例２に係る固体撮像装置のうち、図８に示すコード変換部２０９に相当する構成を、前述した実施形態に係るコード変換部２０９と区別するために、便宜上「コード変換部４６１」とも称する。
【０１６１】
図２０と図１１とを比較するとわかるように、比較例２に係るコード変換部４６１は、入力端に反転回路４６３が設けられている点で、図１１に示すコード変換部２０９と異なる。即ち、コード変換部４６１の各構成のうち、反転回路４６３以外の他の構成については、図１１に示すコード変換部２０９の場合と実質的に同様のため、詳細な説明は省略する。
【０１６２】
反転回路４６３は、変形例２に係る疑似グレイコードが入力される。反転回路４６３は、入力された疑似グレイコードの各ビットの０と１を反転し、当該反転の結果として得られるコードを、後段に位置するビット分離部２７１に出力する。なお、反転回路４６３が、「第２のビット反転部」の一例に相当する。また、反転回路４６３の出力値として得られるコードは、前述した実施形態に係る疑似グレイコード（例えば、図９参照）に相当する。即ち、以降の処理については、図１１を参照して説明したコード変換部２０９と同様である。
【０１６３】
以上のように、コード変換部４６１を構成することで、図１９を参照して前述したカウンタ４４１により生成された疑似グレイコードを対応するバイナリコードに変換することが可能となる。
【０１６４】
以上、図２０を参照して、変形例２に係る固体撮像装置のうち、図８に示すコード変換部２０９に相当する部分の機能構成の一例について説明した。なお、上記では、前述した実施形態に係る疑似グレイコード（例えば、図９に示す疑似グレイコード）の各ビットの０と１を反転させたコードを出力する場合について説明した。一方で、前述した変形例１に係る疑似グレイコード（例えば、図１５に示す疑似グレイコード）の各ビットの０と１を反転させたコードを出力するように構成することも可能である。この場合には、バイナリコードを疑似グレイコードに変換するための構成については、図１６に示すカウンタ４０１の出力端に反転回路４４３を設ければよい。また、疑似グレイコードをバイナリコードに変換するための構成については、図１７に示すコード変換部４２１の入力端に反転回路４６３を設ければよい。
【０１６５】
＜３．５．応用例＞
続いて、本開示の一実施形態に係る疑似グレイコードの応用例について説明する。上記では、主に、固体撮像装置において適用されるカウンタから出力されるカウンタ値として疑似グレイコードを適用する場合の一例について説明した。一方で、本実施形態に係る疑似グレイコードの応用先は、必ずしも上述した固体撮像装置のみには限定されない。具体的な一例として、カウンタを利用する装置であれば、当該カウンタが出力するカウンタ値として、本実施形態に係る疑似グレイコードを利用可能であることは言うまでもない。
【０１６６】
また、他の一例として、本実施形態に係る疑似グレイコードを、回転速度や回転角の制御に利用することも可能である。より具体的な一例として、電気接点式のアブソリュートロータリーエンコーダーに着目した場合には、従来のものでは分解能が２ｎに限られていた。これに対して、当該アブソリュートロータリーエンコーダーに対して、本実施形態に係る疑似グレイコードを利用して回転速度や回転角を制御するアプリケーションを適用することで、一回転の分解能をより自由に選択することが可能となる。即ち、実際の利用形態に応じて、一回転の分解能を、６０、１００、３６０、３６００等に適宜設定することが可能となる。
【０１６７】
もちろん、上記はあくまで一例であり、本開示の一実施形態に係る疑似グレイコードの適用先を限定するものではない。即ち、バイナリコードやグレイコード等のような二進法で表されたコードを利用する装置であれば、当該コードとして本実施形態に係る疑似グレイコードを適用することが可能である。
【０１６８】
以上、本開示の一実施形態に係る疑似グレイコードの応用例について説明した。
【０１６９】
＜＜４．ハードウェア構成＞＞
続いて、本実施形態に係る疑似グレイコードの生成に係る部分や、当該疑似グレイコードをバイナリコード等のような他のコードに変換する部分を独立したコード変換装置として構成する場合における、当該装置（以下、「情報処理装置」とも称する）のハードウェア構成の一例について説明する。図２１は、本開示の一実施形態に係る情報処理装置のハードウェア構成の一構成例を示す機能ブロック図である。
【０１７０】
本実施形態に係る情報処理装置９００は、主に、ＣＰＵ９０１と、ＲＯＭ９０２と、ＲＡＭ９０３と、を備える。また、情報処理装置９００は、更に、ホストバス９０７と、ブリッジ９０９と、外部バス９１１と、インタフェース９１３と、入力装置９１５と、出力装置９１７と、ストレージ装置９１９と、ドライブ９２１と、接続ポート９２３と、通信装置９２５とを備える。
【０１７１】
ＣＰＵ９０１は、演算処理装置及び制御装置として機能し、ＲＯＭ９０２、ＲＡＭ９０３、ストレージ装置９１９又はリムーバブル記録媒体９２７に記録された各種プログラムに従って、情報処理装置９００内の動作全般又はその一部を制御する。ＲＯＭ９０２は、ＣＰＵ９０１が使用するプログラムや演算パラメータ等を記憶する。ＲＡＭ９０３は、ＣＰＵ９０１が使用するプログラムや、プログラムの実行において適宜変化するパラメータ等を一次記憶する。これらはＣＰＵバス等の内部バスにより構成されるホストバス９０７により相互に接続されている。なお、図１０において参照符号２４５で示した各構成や、図１１に示すコード変換部２０９の各構成については、例えば、ＣＰＵ９０１による実現され得る。
【０１７２】
ホストバス９０７は、ブリッジ９０９を介して、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ／Ｉｎｔｅｒｆａｃｅ）バスなどの外部バス９１１に接続されている。また、外部バス９１１には、インタフェース９１３を介して、入力装置９１５、出力装置９１７、ストレージ装置９１９、ドライブ９２１、接続ポート９２３及び通信装置９２５が接続される。
【０１７３】
入力装置９１５は、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチ、レバー及びペダル等、ユーザが操作する操作手段である。また、入力装置９１５は、例えば、赤外線やその他の電波を利用したリモートコントロール手段（いわゆる、リモコン）であってもよいし、情報処理装置９００の操作に対応した携帯電話やＰＤＡ等の外部接続機器９２９であってもよい。さらに、入力装置９１５は、例えば、上記の操作手段を用いてユーザにより入力された情報に基づいて入力信号を生成し、ＣＰＵ９０１に出力する入力制御回路などから構成されている。情報処理装置９００のユーザは、この入力装置９１５を操作することにより、情報処理装置９００に対して各種のデータを入力したり処理動作を指示したりすることができる。
【０１７４】
出力装置９１７は、取得した情報をユーザに対して視覚的又は聴覚的に通知することが可能な装置で構成される。このような装置として、ＣＲＴディスプレイ装置、液晶ディスプレイ装置、プラズマディスプレイ装置、ＥＬディスプレイ装置及びランプ等の表示装置や、スピーカ及びヘッドホン等の音声出力装置や、プリンタ装置等がある。出力装置９１７は、例えば、情報処理装置９００が行った各種処理により得られた結果を出力する。具体的には、表示装置は、情報処理装置９００が行った各種処理により得られた結果を、テキスト又はイメージで表示する。他方、音声出力装置は、再生された音声データや音響データ等からなるオーディオ信号をアナログ信号に変換して出力する。
【０１７５】
ストレージ装置９１９は、情報処理装置９００の記憶部の一例として構成されたデータ格納用の装置である。ストレージ装置９１９は、例えば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等の磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス又は光磁気記憶デバイス等により構成される。このストレージ装置９１９は、ＣＰＵ９０１が実行するプログラムや各種データ等を格納する。なお、図１０及び図１１に示す設定レジスタ２１１は、例えば、ＲＯＭ９０２、ＲＡＭ９０３、及びストレージ装置９１９のうちの少なくともいずれかにより実現され得る。
【０１７６】
ドライブ９２１は、記録媒体用リーダライタであり、情報処理装置９００に内蔵、あるいは外付けされる。ドライブ９２１は、装着されている磁気ディスク、光ディスク、光磁気ディスク又は半導体メモリ等のリムーバブル記録媒体９２７に記録されている情報を読み出して、ＲＡＭ９０３に出力する。また、ドライブ９２１は、装着されている磁気ディスク、光ディスク、光磁気ディスク又は半導体メモリ等のリムーバブル記録媒体９２７に記録を書き込むことも可能である。リムーバブル記録媒体９２７は、例えば、ＤＶＤメディア、ＨＤ−ＤＶＤメディア又はＢｌｕ−ｒａｙ（登録商標）メディア等である。また、リムーバブル記録媒体９２７は、コンパクトフラッシュ（登録商標）（ＣＦ：ＣｏｍｐａｃｔＦｌａｓｈ）、フラッシュメモリ又はＳＤメモリカード（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ  ｍｅｍｏｒｙ  ｃａｒｄ）等であってもよい。また、リムーバブル記録媒体９２７は、例えば、非接触型ＩＣチップを搭載したＩＣカード（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ  ｃａｒｄ）又は電子機器等であってもよい。
【０１７７】
接続ポート９２３は、情報処理装置９００に直接接続するためのポートである。接続ポート９２３の一例として、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ポート、ＩＥＥＥ１３９４ポート、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）ポート等がある。接続ポート９２３の別の例として、ＲＳ−２３２Ｃポート、光オーディオ端子、ＨＤＭＩ（登録商標）（Ｈｉｇｈ−Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ）ポート等がある。この接続ポート９２３に外部接続機器９２９を接続することで、情報処理装置９００は、外部接続機器９２９から直接各種のデータを取得したり、外部接続機器９２９に各種のデータを提供したりする。
【０１７８】
通信装置９２５は、例えば、通信網（ネットワーク）９３１に接続するための通信デバイス等で構成された通信インタフェースである。通信装置９２５は、例えば、有線若しくは無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、Ｂｌｕｅｔｏｏｔｈ（登録商標）又はＷＵＳＢ（Ｗｉｒｅｌｅｓｓ  ＵＳＢ）用の通信カード等である。また、通信装置９２５は、光通信用のルータ、ＡＤＳＬ（Ａｓｙｍｍｅｔｒｉｃ  Ｄｉｇｉｔａｌ  Ｓｕｂｓｃｒｉｂｅｒ  Ｌｉｎｅ）用のルータ又は各種通信用のモデム等であってもよい。この通信装置９２５は、例えば、インターネットや他の通信機器との間で、例えばＴＣＰ／ＩＰ等の所定のプロトコルに則して信号等を送受信することができる。また、通信装置９２５に接続される通信網９３１は、有線又は無線によって接続されたネットワーク等により構成され、例えば、インターネット、家庭内ＬＡＮ、赤外線通信、ラジオ波通信又は衛星通信等であってもよい。
【０１７９】
以上、本開示の実施形態に係る情報処理装置９００の機能を実現可能なハードウェア構成の一例を示した。上記の各構成要素は、汎用的な部材を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用するハードウェア構成を変更することが可能である。なお、図２１では図示しないが、情報処理装置９００は、実行し得る機能に応じて、当該機能を実現するための各種の構成を備えてもよい。
【０１８０】
なお、上述のような本実施形態に係る情報処理装置９００の各機能を実現するためのコンピュータプログラムを作製し、パーソナルコンピュータ等に実装することが可能である。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。また、当該コンピュータプログラムを実行させるコンピュータの数は特に限定されない。例えば、当該コンピュータプログラムを、複数のコンピュータ（例えば、複数のサーバ等）が互いに連携して実行してもよい。
【０１８１】
＜＜５．むすび＞＞
以上説明したように、本開示の一実施形態に係る固体撮像装置は、複数の画素と、比較器と、カウンタとを備える。比較器は、上記画素が出力する画素信号と、時間の経過とともにレベルが変化する参照信号と、を比較する。カウンタは、画素信号と参照信号とレベルが一致するまでの時間をカウントする。また、当該カウンタは、第１の演算部と、第１の選択部と、第２の演算部とを備える。第１の演算部は、２以上２ｎ以下の偶数のコード長から１を減算した数値がｎビットのバイナリコードで表された最大値を１ビット右シフトさせることで比較値を算出する。第１の選択部は、ｎビットのバイナリコードで表された０から上記最大値までのいずれかの第１の値と上記比較値との間の比較結果に基づき、上記第１の値と、上記最大値から当該第１の値を減算した第２の値と、のいずれかを第３の値として出力する。第２の演算部は、上記第３の値をｎビットのバイナリコードからｎビットのグレイコードに変換し、上記比較結果に基づき、当該グレイコードの最上位ビットに０または１を設定することで疑似コードを生成する。
【０１８２】
以上のような構成により、上記疑似コードとして、任意のコード長において、前後に隣接するコード間と、終値と初期値との間と、のいずれにおいても、ハミング距離を常に１となるコードを生成することが可能となる。即ち、カウンタから出力されるカウンタ値として当該疑似コードを適用することで、カウント中のいずれのタイミングにおいても値が変化するビットが１ビットとなる（即ち、ビット変位が均等化される）。このような特性から、例えば、カウンタを任意のコード長で連続して動作させる場合においても、順次カウントを行う際や、カウントの終了後に新たにカウントを開始する際のその時々で駆動する素子（例えば、トランジスタ等）の数が均等化される。即ち、上記カウンタの一連の動作において、各素子の駆動に要する電力の変位をより小さく抑えることが可能となる。そのため、例えば、カウンタ値のビット変位（換言すると、各素子の駆動に要する電力の変位）が画素信号や参照信号に与える影響をより低減し、より安定的な動作を実現することも可能となる。また、上述した特性から、カウンタを連続して動作させる際に、コード長の設定（即ち、カウンタ値の最大値の設定）が選択的に切り替えられるような状況下でも、上記と同様にビット変位が均等化されるため、より安定的な動作を実現することが可能となる。
【０１８３】
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【０１８４】
また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。
【０１８５】
なお、以下のような構成も本開示の技術的範囲に属する。
（１）
複数の画素と、
前記画素が出力する画素信号と、時間の経過とともにレベルが変化する参照信号と、を比較する比較器と、
前記画素信号と前記参照信号とのレベルが一致するまでの時間をカウントするカウンタと、
を備え、
前記カウンタは、
２以上２ｎ以下の偶数のコード長から１を減算した数値がｎビットのバイナリコードで表された最大値を１ビット右シフトさせることで比較値を算出する第１の演算部と、
ｎビットのバイナリコードで表された０から前記最大値までのいずれかの第１の値と前記比較値との間の比較結果に基づき、前記第１の値と、前記最大値から当該第１の値を減算した第２の値と、のいずれかを第３の値として出力する第１の選択部と、
前記第３の値をｎビットのバイナリコードからｎビットのグレイコードに変換し、前記比較結果に基づき、当該グレイコードの最上位ビットに０または１を設定することで疑似コードを生成する第２の演算部と、
を備える、固体撮像装置。
（２）
前記第１の値は、初期値が０であり、当該初期値から昇順にカウントされ、
前記第１の選択部は、
前記第１の値が前記比較値以下の場合には当該第１の値を前記第３の値として出力し、
前記第１の値が前記比較値を超える場合には前記第２の値を前記第３の値として出力し、
前記第２の演算部は、前記第１の値が前記比較値を超える場合に、前記第３の値に対応するｎビットのグレイコードの最上位ビットに１を設定することで前記疑似コードを生成する、
前記（１）に記載の固体撮像装置。
（３）
前記第１の値は、初期値が前記最大値であり、当該初期値から降順にカウントされ、
前記第１の選択部は、
前記第１の値が前記比較値以下の場合には当該第１の値を前記第３の値として出力し、
前記第１の値が前記比較値を超える場合には前記第２の値を前記第３の値として出力し、
前記第２の演算部は、前記第１の値が前記比較値以下の場合に、前記第３の値に対応するｎビットのグレイコードの最上位ビットに１を設定することで前記疑似コードを生成する、
前記（１）に記載の固体撮像装置。
（４）
前記第２の演算部により生成された前記疑似コードの各ビットの０と１を反転して出力する第１のビット反転部を備える、前記（１）に記載の固体撮像装置。
（５）
前記疑似コードをバイナリコードに変換するデコード部を備え、
前記デコード部は、
前記疑似コードを最上位ビットと前記グレイコードとに分離し、当該グレイコードをｎビットのバイナリコードで表された第４の値に変換する第３の演算部と、
前記疑似コードから分離された前記最上位ビットに応じて、前記第４の値と、前記最大値から当該第４の値を減算した第５の値と、のいずれかを出力値として出力する第２の選択部と、
を備える、
前記（１）に記載の固体撮像装置。
（６）
前記第１の値は、初期値が０であり、当該初期値から昇順にカウントされ、
前記第２の選択部は、前記最上位ビットが０の場合に、前記第４の値を前記出力値として出力する、
前記（５）に記載の固体撮像装置。
（７）
前記第１の値は、初期値が前記最大値であり、当該初期値から降順にカウントされ、
前記第２の選択部は、前記最上位ビットが１の場合に、前記第４の値を前記出力値として出力する、
前記（５）に記載の固体撮像装置。
（８）
前記デコード部は、前記疑似コードの各ビットの０と１が反転された値を入力値として、当該入力値の０と１を反転することで当該疑似コードを出力する第２のビット反転部を備え、
前記第３の演算部は、前記第２のビット反転部から出力される前記疑似コードを前記最上位ビットと前記グレイコードとに分離し、当該グレイコードを前記第４の値に変換する、
前記（５）に記載の固体撮像装置。
（９）
前記デコード部は、前記比較器による比較結果に応じたタイミングに対応する前記第１の値に基づき生成された前記疑似コードをバイナリコードに変換する、前記（５）〜（８）のいずれか一項に記載の固体撮像装置。
（１０）
前記最大値が、選択的に切り替え可能に構成されている、前記（１）〜（９）のいずれか一項に記載の固体撮像装置。
（１１）
２以上２ｎ以下の偶数のコード長から１を減算した数値がｎビットのバイナリコードで表された最大値を１ビット右シフトさせることで比較値を算出する第１の演算部と、
ｎビットのバイナリコードで表された０から前記最大値までのいずれかの第１の値と前記比較値との間の比較結果に基づき、前記第１の値と、前記最大値から当該第１の値を減算した第２の値と、のいずれかを第３の値として出力する第１の選択部と、
前記第３の値をｎビットのバイナリコードからｎビットのグレイコードに変換し、前記比較結果に基づき、当該グレイコードの最上位ビットに０または１を設定することで出力値を生成する第２の演算部と、
を備える、コード変換装置。
（１２）
２以上２ｎ以下の偶数のコード長から１を減算した数値がｎビットのバイナリコードで表された値を最大値とし、
当該最大値を１ビット右シフトさせた値を比較値として、
前記比較値を基準として、当該比較値から０まで順次減算される各値と、当該比較値を超えて前記最大値まで順次加算される各値と、のそれぞれに対して、前記比較値を基準として、当該比較値から順次減算される各値に対応するｎビットのグレイコードの最上位ビットに０を設定したコードと、当該比較値から順次減算される各値にｎビットのグレイコードの最上位ビットに１を設定したコードと、のうち互いに異なるコードが対応付けられた一連の疑似コードのうち、
いずれかの前記疑似コードを入力値として、当該入力値を前記最上位ビットと前記グレイコードとに分離し、当該グレイコードをｎビットのバイナリコードで表された第４の値に変換する第３の演算部と、
前記入力値から分離された前記最上位ビットに応じて、前記第４の値と、ｎビットの前記最大値から当該第４の値を減算した第５の値と、のいずれかを出力値として出力する第２の選択部と、
を備える、コード変換装置。
（１３）
前記疑似コードは、
前記比較値を基準として、
前記比較値から０まで順次減算される各値が、前記比較値から順次減算される各値に対応するｎビットのグレイコードの最上位ビットに０を設定したコードに対応付けられ、
前記比較値を超えて前記最大値まで順次加算される各値が、前記比較値から順次減算される各値にｎビットのグレイコードの最上位ビットに１を設定したコードに対応付けられており、
前記第２の選択部は、前記最上位ビットが０の場合に、前記第４の値を前記出力値として出力する、
前記（１２）に記載のコード変換装置。
（１４）
前記疑似コードは、
前記比較値を基準として、
前記比較値から０まで順次減算される各値が、前記比較値から順次減算される各値にｎビットのグレイコードの最上位ビットに１を設定したコードに対応付けられ、
前記比較値を超えて前記最大値まで順次加算される各値が、前記比較値から順次減算される各値に対応するｎビットのグレイコードの最上位ビットに０を設定したコードに対応付けられており、
前記第２の選択部は、前記最上位ビットが１の場合に、前記第４の値を前記出力値として出力する、
前記（１２）に記載のコード変換装置。
（１５）
いずれかの前記疑似コードの各ビットの０と１が反転された値を入力値として、当該入力値の０と１を反転することで当該疑似コードを出力する第２のビット反転部を備え、
前記第３の演算部は、前記第２のビット反転部から出力される前記疑似コードを最上位ビットと前記グレイコードとに分離し、当該グレイコードを前記第４の値に変換する、
前記（１２）に記載のコード変換装置。
（１６）
コンピュータが、
２以上２ｎ以下の偶数のコード長から１を減算した数値がｎビットのバイナリコードで表された最大値を１ビット右シフトさせることで比較値を算出することと、
ｎビットのバイナリコードで表された０から前記最大値までのいずれかの第１の値と前記比較値との間の比較結果に基づき、前記第１の値と、前記最大値から当該第１の値を減算した第２の値と、のいずれかを第３の値として出力することと、
前記第３の値をｎビットのバイナリコードからｎビットのグレイコードに変換し、前記比較結果に基づき、当該グレイコードの最上位ビットに０または１を設定することで出力値を生成することと、
を含む、コード変換方法。
（１７）
コンピュータが、
２以上２ｎ以下の偶数のコード長から１を減算した数値がｎビットのバイナリコードで表された値を最大値とし、
当該最大値を１ビット右シフトさせた値を比較値として、
前記比較値を基準として、当該比較値から０まで順次減算される各値と、当該比較値を超えて前記最大値まで順次加算される各値と、のそれぞれに対して、前記比較値を基準として、当該比較値から順次減算される各値に対応するｎビットのグレイコードの最上位ビットに０を設定したコードと、当該比較値から順次減算される各値にｎビットのグレイコードの最上位ビットに１を設定したコードと、のうち互いに異なるコードが対応付けられた一連の疑似コードのうち、
いずれかの前記疑似コードを入力値として、当該入力値を前記最上位ビットと前記グレイコードとに分離し、当該グレイコードをｎビットのバイナリコードで表された第４の値に変換することと、
前記入力値から分離された前記最上位ビットに応じて、前記第４の値と、ｎビットの前記最大値から当該第４の値を減算した第５の値と、のいずれかを出力値として出力することと、
を含む、コード変換方法。
（１８）
コンピュータに、
２以上２ｎ以下の偶数のコード長から１を減算した数値がｎビットのバイナリコードで表された最大値を１ビット右シフトさせることで比較値を算出することと、
ｎビットのバイナリコードで表された０から前記最大値までのいずれかの第１の値と前記比較値との間の比較結果に基づき、前記第１の値と、前記最大値から当該第１の値を減算した第２の値と、のいずれかを第３の値として出力することと、
前記第３の値をｎビットのバイナリコードからｎビットのグレイコードに変換し、前記比較結果に基づき、当該グレイコードの最上位ビットに０または１を設定することで出力値を生成することと、
実行させる、プログラム。
（１９）
コンピュータに、
２以上２ｎ以下の偶数のコード長から１を減算した数値がｎビットのバイナリコードで表された値を最大値とし、
当該最大値を１ビット右シフトさせた値を比較値として、
前記比較値を基準として、当該比較値から０まで順次減算される各値と、当該比較値を超えて前記最大値まで順次加算される各値と、のそれぞれに対して、前記比較値を基準として、当該比較値から順次減算される各値に対応するｎビットのグレイコードの最上位ビットに０を設定したコードと、当該比較値から順次減算される各値にｎビットのグレイコードの最上位ビットに１を設定したコードと、のうち互いに異なるコードが対応付けられた一連の疑似コードのうち、
いずれかの前記疑似コードを入力値として、当該入力値を前記最上位ビットと前記グレイコードとに分離し、当該グレイコードをｎビットのバイナリコードで表された第４の値に変換することと、
前記入力値から分離された前記最上位ビットに応じて、前記第４の値と、ｎビットの前記最大値から当該第４の値を減算した第５の値と、のいずれかを出力値として出力することと、
実行させる、プログラム。
（２０）
２以上２ｎ以下の偶数のコード長から１を減算した数値で表された最大値を１ビット右シフトさせることで算出された比較値と、ｎビットのバイナリコードで表された０から前記最大値までのいずれかの第１の値と、の間の比較結果に基づき、前記第１の値と、前記最大値から当該第１の値を減算した第２の値と、のいずれかの第３の値をｎビットのバイナリコードからｎビットのグレイコードに変換し、前記比較結果に基づき、当該グレイコードの最上位ビットに０または１が設定された結果に応じた入力値を、最上位ビットと前記グレイコードとに分離し、当該グレイコードをｎビットのバイナリコードで表された第４の値に変換する第３の演算部と、
前記入力値から分離された前記最上位ビットに応じて、前記第４の値と、ｎビットのバイナリコードで表された前記最大値から当該第４の値を減算した第５の値と、のいずれかを出力値として出力する第２の選択部と、
を備える、コード変換装置。
【符号の説明】
【０１８６】
１      固体撮像装置
２０１  画素アレイ
２０３  水平走査回路
２０７  カウンタ
２０９  コード変換部
２１１  設定レジスタ
２１３  比較器
２１５  比較器
２１７  ラッチ回路
２１９  セレクタ
２３１  バイナリカウンタ
２３３  シフトレジスタ
２３５  比較器
２３７  減算器
２３９  セレクタ
２４１  コード変換器
２４３  ビット結合部
２７１  ビット分離部
２７３  コード変換器
２７５  減算器
２７７  セレクタ
【図１】
2020021988.tif 000003
【図２】
2020021988.tif 000004
【図３】
2020021988.tif 000005
【図４】
2020021988.tif 000006
【図５】
2020021988.tif 000007
【図６】
2020021988.tif 000008
【図７】
2020021988.tif 000009
【図８】
2020021988.tif 000010
【図９】
2020021988.tif 000011
【図１０】
2020021988.tif 000012
【図１１】
2020021988.tif 000013
【図１２】
2020021988.tif 000014
【図１３】
2020021988.tif 000015
【図１４】
2020021988.tif 000016
【図１５】
2020021988.tif 000017
【図１６】
2020021988.tif 000018
【図１７】
2020021988.tif 000019
【図１８】
2020021988.tif 000020
【図１９】
2020021988.tif 000021
【図２０】
2020021988.tif 000022
【図２１】
2020021988.tif 000023