JP2002010277A - デジタルスチルカメラシステムおよび方法 - Google Patents

デジタルスチルカメラシステムおよび方法

Info

Publication number
JP2002010277A
JP2002010277A JP2000404442A JP2000404442A JP2002010277A JP 2002010277 A JP2002010277 A JP 2002010277A JP 2000404442 A JP2000404442 A JP 2000404442A JP 2000404442 A JP2000404442 A JP 2000404442A JP 2002010277 A JP2002010277 A JP 2002010277A
Authority
JP
Japan
Prior art keywords
pixel
value
array
color
green
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.)
Abandoned
Application number
JP2000404442A
Other languages
English (en)
Inventor
Ching-Yu Hung
− ユ フン チン
Hideo Tamama
秀雄 玉眞
Akira Osamoto
オサモト アキラ
Osamu Koshiba
修 小柴
Akira Yamauchi
暁 山内
Minhua Zhou
ゾウ ミンファ
Klaus Illgner
イルグナー クラウス
Rajendra Talluri
タルリ ラジェンドラ
Youngjun Yoo
ヨー ヤウンジュン
Jie Liang
リアン ジー
Mandy Tsai
ツァイ マンディ
Kiyoshi Tsunoda
ツノダ キヨシ
Shinri Inamori
イナモリ シンリ
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.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
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 Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of JP2002010277A publication Critical patent/JP2002010277A/ja
Abandoned legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/40Scaling the whole image or part thereof
    • G06T3/4007Interpolation-based scaling, e.g. bilinear interpolation

Abstract

(57)【要約】 【課題】 すべてのカメラ周辺機器を一体化したものか
ら選択される特質を備えたデジタルスチルカメラのアー
キテクチャを提供する。 【解決手段】 デジタルスチルカメラ(DSC)に、プ
レビュー・エンジン,バーストモード圧縮/圧縮解除・
エンジン,画像パイプライン,CCD+CCDコントロ
ーラおよびメモリ+メモリ・コントローラが個別に含ま
れる。ARMマイクロプロセッサとDSPとが制御を共
有する。赤と青と補間に加えられた緑高周波とを用いる
ことによるカラーフィルタアレイ補間を行う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、集積回路に関し、
より詳しくは、デジタルカメラで用いる集積回路および
方法に関する。
【0002】
【発明が解決しようとする課題】近年、デジタルスチル
カメラ(DSC)は、非常に人気のある消費者用電気機
器となっており、写真を趣味とする人,ウェブ製作者,
不動産業者,保険の損害査定人,フォトジャーナリスト
からすべての写真愛好家に渡る広く多様なユーザにアピ
ールしている。低電力デジタル信号プロセッサ(DS
P)の有用性と結びついた高解像度CCDアレイの近年
の進歩により、伝統的なフィルムカメラによって提供さ
れる解像度および品質に極めて近いDSCの開発が行わ
れている。これらのDSCは、データ蓄積,操作性及び
伝送性の点から見て伝統的なフィルムカメラと比べてさ
らにいくつかの利点を提供している。撮られた画像をデ
ジタル表示することにより、ユーザはその画像を任意の
種類の電子媒体に簡単に取り込んだりそれらを任意の種
類のネットワークを介して簡単に伝送することができ
る。撮られた画像を瞬時に見て選択的に蓄積する能力に
より、フィルムの浪費を最小限にするとともにその画像
を再度撮る必要があるかどうかを瞬時に決定する柔軟性
が提供される。デジタル表示することで、画像を撮った
後にそれを訂正したり変更したり修正することができ
る。例えば、ベンカタラマンらの「次世代デジタルカメ
ラの集積化及びソフトウェア開発の問題」,デジタル固
体素子カメラ,設計と応用,3302会報,SPIE
(1998年)を参照のこと。同様に、USP5,52
8,293およびUSP5,412,425には、メモ
リカードへの画像の蓄積およびバッテリーパワーカメラ
用の節電を含むデジタルスチルカメラシステムの態様が
開示されている。
【0003】
【課題を解決するための手段】本発明は、プログラム可
能カメラ機能+短いオーディオ・ビデオ・クリップ能力
とデュアルプロセッサ+画像コプロセッサとバーストモ
ード圧縮/圧縮解除エンジンとプログラム可能プレビュ
ー・エンジンとIrDA,USB,NTSC/PALエ
ンコーダ,RGB用のDAC,UARTおよびコンパク
トフラッシュカード/スマートメディアカード・インタ
ーフェースを含むすべてのカメラ周辺機器の一体化とか
ら選択された特質を備えるデジタルスチルカメラ・アー
キテクチャを提供する。これには、柔軟性,適応性およ
び有効性を含む利点がある。
【0004】
【発明の実施の形態】システムのあらまし 図1aおよび図1bは、好ましい実施例のデジタルスチ
ルカメラ(DSC)およびシステムにおける様々な高レ
ベル機能ブロックを示し、ここで、図1bは図1aより
も詳細なものを提供している。特に、好ましい実施例の
集積回路100は、以下のアイテムを含む。すなわち、
CCDまたはCMOSイメージャ150とインターフェ
ースするCCDコントローラ102と、NTSC符号器
106またはデジタルLCDインターフェースを用いて
CCDコントローラ102からのデータをディスプレイ
に適切なフォーマットに変換するプレビュー・エンジン
ブロック104と、損失のない(または、ユーザによっ
て選択された損失のある)圧縮を用いてCCDコントロ
ーラ102からの生画像データを圧縮するとともにその
圧縮されたデータをSDRAMコントローラ110を介
して外部SDRAM160に書き込むバースト・モード
圧縮/圧縮解除エンジン108とである。その後、この
データは、DSP122の制御のもとで圧縮解除エンジ
ンによって圧縮解除され、処理され、表示されるかSD
RAM160に再び記録される。DSPサブシステムブ
ロック120(DSP122およびiMX124と可変
長符号器126およびバッファ128)は、捕獲モード
において画像データのすべての処理を行う。そのデータ
は、SDRAMコントローラ110への要求を通してD
SP122によってSDRAM160から画像バッファ
128にフェッチされ、また、DSP122は、捕獲モ
ードにおいて要求されるすべての画像処理および圧縮を
行う。画像拡大プロセッサ(iMX)124は、撮像ア
プリケーションのためにDSP122の性能を向上させ
るようDSP122の専用加速器として働く。
【0005】RISCマイクロプロセッサ・サブシステ
ム(ARM130とメモリ132)は、インカメラ・オ
ペレーティングシステム(OS)を支援する。VxWo
rks,Microitron,Nucleusおよび
PSOSのような種々のOSおよび他のリアルタイム核
も回路100で支援される。
【0006】SDRAMコントローラ・ブロック110
は、SDRAM160とプロセッサ(ARM130,D
SP122),CCDコントローラ102,TV符号器
106,プレビュー・エンジン104などのようなすべ
ての機能ブロックとの間の主要インターフェースとして
働く。SDRAMコントローラ110は、80MHzS
DRAMのタイミングまでを支援し、また、連続データ
アクセス用の低いオーバーヘッドを提供する。それはま
た、CCDデータ入力およびTVディスプレイ・データ
出力のリアルタイム・データ・ストリームを支援するア
クセスユニットに優先順位を付ける能力を有する。
【0007】カメラ・ショット・ツー・ショット遅延
は、DSCエンジン100がCCD150からデータを
読み、それを処理し、それをSDRAM160に書き込
むのにかかる時間である。その処理は、画像パイプライ
ン段を含み、JPEG圧縮も含む。
【0008】リアルタイムプレビューを支援するため
に、DSCエンジン100は、CCD150を「高速読
出し」モードに設定し、データを処理し、データをNT
SCフォーマットに変換し、組込みLCDスクリーン
(図1には示されていない)か場合によってはTVモニ
タ上にデータを表示する。
【0009】オートフォーカス,オート露光およびオー
トホワイトバランス(3A機能)が、DSC100がプ
レビュー・モードの動作状態にある間に、DSP122
によって行われる。DSP122は、SDRAM160
から画像データを読み、リアルタイムで3A機能を実行
する。3A機能用のアルゴリズムはプログラム可能であ
る。
【0010】インターレースおよびプログレッシブCC
DおよびCMOSイメージャ150の双方は、組込みC
CD/CMOSコントローラ102を用いてDSCエン
ジン100と直接連係する。
【0011】Microitronのようなインカメラ
・オペレーティングシステムは、DSCエンジン100
ではARMプロセッサ130で効率的に支援される。D
SCエンジン100はまた、「バースト・モード」の動
作状態で高速シーケンスの画像を捕獲するのを支援する
能力を有する。2メガピクセル画像の10フレーム/秒
までのバーストが支援される。バーストシーケンスの持
続期間は、DSCシステムのSDRAM160のサイズ
によってのみ制限される。また、MPEG圧縮がショー
トクリップのために用いられてもよい。また、オーディ
オ−ビデオの再生の能力は巡回バッファリングを含む。
【0012】DSC回路100はまた、プログラミング
およびARM130での中断処理用のUSBコア142
を備えるI/Oブロック140を含む。
【0013】CCDモジュール150は、画像を検知す
るCCDイメージャと、必要な信号がCCDをクロック
するためのドライバ電子回路およびタイミング発生器
と、相関二重サンプリングおよび自動利得制御電子回路
とを含む。その後、このCCDデータが、デジタル化さ
れ、DSCエンジン100に送り込まれる。
【0014】SDRAM160は、任意の便宜的および
高速SDRAMであってよい。
【0015】DSCシステムは、画像にテキスト/音声
で注釈を付ける能力もあって更により用途が多い。好ま
しい実施例のプログラム可能DSPにより、モデムおよ
び/またはインターネットへの直接接続用のTCP/I
Pインターフェースを簡単に含むことが可能となる。D
SCは、複雑なマルチタスキング・オペレーティングシ
ステムを走らせて種々のリアルタイム・タスクをスケジ
ュールする。
【0016】このように、好ましい実施例は、プログラ
ム可能カメラ機能と二重プロセッサ(ARMおよびDS
P)および画像コンプレッサとバースト・モード圧縮/
圧縮解除エンジンとプログラム可能プレビュー・エンジ
ンとIrDA,USB,NTSC/PAL符号器,RG
B用のDAC,UARTおよびコンパクトフラッシュカ
ード/スマートメディアカード・インターフェースを含
むすべてのカメラ周辺器の一体化のためのプラットフォ
ームを提供する。また、プラットフォームは、同じ集積
回路上にカメラ機能およびデジタルオーディオ再生の双
方を提供することができる。
【0017】以下のセクションは機能およびモジュール
の更なる詳細を提供する。
【0018】DSC動作モード 好ましい実施例のシステムは、以下の通り、動作の
(1)プレビュー・モード,(2)捕獲モード,(3)
再生モードおよび(4)バースト・モードを有する。
【0019】(1)プレビュー・モードは、図2に例示
されるようなデータ・フローを有する。ARM130
は、CCD150を高フレーム速度読出しモード(垂直
解像度が低減される)に設定する。ARM130は、プ
レビュー・エンジン104をイネーブルするとともに、
デフォルト・パラメータのために適切なレジスタを設定
する。生CCDデータは、プレビュー・エンジン104
に流れ込み、プレビュー・エンジン処理の後にSDRA
M160に流れ込む。ARM130は、TV符号器10
6をイネーブルしてプレビュー・エンジン出力を表示さ
せる。プレビュー・エンジン104の処理(ハードウェ
ア)は、利得制御と、ホワイトバランスと、CFA補間
と、ダウンサンプリングと、ガンマ補正と、RGBから
YUVへの変換とを含む。ARM130は、必要なとき
はいつでも、オート露光およびオートホワイトバランス
を行うようにDSP122に指令する。DSP122の
処理は、オート露光とオートホワイトバランスとオート
フォーカスとを含む。ARM130は、プレビュー・エ
ンジン104のための新しいパラメータを受け取り、こ
れらのパラメータをプレビュー・エンジン・ハードウェ
アにローディングする。出力は、完全解像度CCIR6
01NTSC/PALと、利得,ホワイトバランスおよ
びオートフォーカスのリアルタイム更新とである。
【0020】(2)捕獲モードは、図3aに例示される
ようなデータ・フローを有する。ARM130は、CC
D150を「微細」読出しモード、最大限解像度に設定
する。CCDデータは、SDRAMコントローラ110
を通してSDRAM160に直接読み込まれる。ARM
130は、DSP122(とIMX124およびVLC
エンジン126)に捕獲処理(ブラック・クランプと、
誤りピクセル訂正と、陰影補償と、ホワイトバランシン
グと、ガンマ補正と、CFA補間と、色空間変換と、エ
ッジ・エンハンスメントと、誤色抑制と、4:2:0ダ
ウンサンプリングと、JPEG圧縮)を行うように指令
する。DSPは、圧縮データをSDRAMに記憶する。
ARM130は、圧縮データをコンパクトフラッシュ/
スマートメディア182に書き込む。
【0021】計算は、2つのスレッドとしてスケジュー
ルされる。すなわち、1つのスレッドでのiMXと、他
方のスレッドでの他のユニットとである。図3bは、バ
ッファAおよびバッファBに関係するスレッドでのタイ
ミングおよびデータ・フローを示す。
【0022】(3)再生モードは、図4に例示されるよ
うなデータ・フローを有する。ARM130は、CFC
/スマートメディア182からの圧縮データをDMA1
62を用いてSDRAMコントローラ110を介してS
DRAM160に読み込む。ARMは、「再生」を行う
ようにDSP122に指令する。DSP処理(DSP1
22とiMX124およびVLCエンジン126)は、
JPEG復号(ビットストリーム構文解析,IDCT,
VLDおよびアスペクト比用のダウンサンプリング)を
含み、非圧縮画像データをSDRAMに記憶する。AR
Mは、TV符号器106をイネーブルして画像をTV/
LCDディスプレイに表示する。オーディオおよびビデ
オ(例えば、MPEG圧縮された)クリップが再生され
てもよいということに留意願いたい。
【0023】(4)バースト捕獲モードは、図5に例示
されるようなデータ・フローを有し、また、図6は、オ
フラインデータ処理を示す。ARM130は、CCD1
50を微細解像モードに設定する。ARMは、バースト
圧縮パラメータ,バースト長,フレーム数/秒,圧縮比
(損失のある、損失のない)などを設定する。ARM
は、バースト圧縮エンジン108をイネーブルして生C
CDデータをSDRAM160に書き込む。ARMは、
記憶された生CCD画像の各々をバーストにおいて処理
するようにDSPに信号を送る。バースト・モード圧縮
解除エンジン108は、バースト捕獲された画像の各々
を圧縮解除する。DSPは、通常の捕獲にある画像の各
々を処理するとともに、JPEGビットストリームをS
DRAM160に書き込む。
【0024】バースト捕獲モードは、毎回ARM130
による異なるJPEGビットストリームでの通常の再生
ルーティンへのコールを繰り返すことによって、達成さ
れる。
【0025】好ましい実施例はまた、MPEG1捕獲モ
ードと再生モードとを有する。
【0026】画像獲得 DSCは、通常は、高品質画像が記憶される前に多数の
処理ステップを行わなければならない。最初のステップ
は画像獲得である。場面から反射された強度分布が、光
システムによってイメージャにマッピングされる。好ま
しい実施例はCCDを用いるが、CMOSへの移行が画
像処理原理を変えるものではない。カラー画像を提供す
るために、イメージャ(CCDまたはCMOS)は、各
画素を(各CCDフォトサイト上の蒸着された染料のよ
うな)カラーフィルタによってマスクさせる。この生画
像データは、通常は、カラー・フィルタ・アレイ(CF
A)と呼ばれる。CCDにおける画素のアレイのマスキ
ングパターンとフィルタカラー原色とは、異なる製造業
者間で異なっている。DSCアプリケーションでは、最
も普通に用いられているCFAパターンは、CCDアレ
イ全体に渡って傾いている2×2セル素子からなるRG
Bバイエル(Bayer)パターンである。図7aは、
CCDカメラに続く行列ブロックにおけるこのバイエル
・パターンの部分集合を示す。画素の半分は緑に対して
感受性があることと、赤と青とは緑とバランスがとられ
ていることとに留意すべきである。図7bは、黄,シア
ン,緑およびマゼンタ画素を備える代替の補完カラーC
FAパターンの部分集合を示す。
【0027】画像パイプライン 画像が最終的に圧縮または表示用の使用可能なフォーマ
ットで提供される前に、CFAデータは著しい量の画像
処理を受ける必要がある。これらの処理段のすべては、
まとめて「画像パイプライン」と呼ばれる。好ましい実
施例のDSCは、高品質の画像が記憶される前に、多数
の処理ステップを行う。画像パイプライン処理タスクの
ほとんどは、乗算/累算(MAC)集中動作であり、D
SPを好ましいプラットフォームにする。様々な画像パ
イプライン処理段が以下のセクションで記述される。
【0028】A/Dコンバータ CCDイメージャ・データをデジタル化するA/Dコン
バータは、10〜12ビットの解像度を有する。これに
よって、入力画像値を表すのに良好なダイナミックレン
ジが可能となる。もちろん、より高い解像度は、より高
い品質の画像を意味するが、より多くの計算およびより
遅い処理を意味する。また、より低い解像度はその反対
を意味する。A/DコンバータはCCDモジュールの一
部であってもよい。
【0029】ブラック・クランプ A/D変換の後、「ブラック」画素は、これらの画素位
置である電流(電荷蓄積)をまだ記録するCCDのため
に、必ずしも0値を有するわけではない。CCDイメー
ジャによって表される画素値のダイナミックレンジを最
適化するために、ブラックを表す画素は0値を有さなけ
ればならない。ブラック・クランプ機能は、各画素値か
らオフセットを減算することによって、このための調整
を行う。処理のこの段階で画素ごとに1つのカラー・チ
ャンネルのみがあることに留意願いたい。
【0030】誤り画素補間 CCDアレイ(とりわけ500,000を超える素子を
備えるアレイ)は、欠陥のある(失われている)画素を
有しているかもしれない。その失われている画素値は簡
単な補間によって充填される。補間もCFA補間段で行
われるため、高いオーダの補間が必要なわけではない。
したがって、この予備補間ステップを行う主な理由は、
失われているデータを削除することによって画像処理を
通常のものにすることである。
【0031】典型的には、失われている画素の位置はC
CD製造業者から得られる。誤り画素位置はまた、DS
Cエンジンによってオフラインで計算できる。例えば、
カメラ初期化動作の間、レンズのキャップが閉められた
画像が捕獲される。誤り画素は「白いスポット」として
現れ、一方、その画像の残りは黒である。それにより、
誤り画素位置は、簡単な閾値検出器で識別でき、ビット
・マップとしてメモリに記憶できる。
【0032】DSCの通常動作の間、誤り画素位置の画
像値は、単純な双線形補間技術によって充填される。
【0033】レンズ歪補償 レンズの不完全性によって導入される非線形性のため
に、画像の明るさは画像の中心から画像の境界にかけて
低減する。これらのレンズ歪の影響は、それの空間的な
位置の機能として各画素の明るさを調整することによっ
て補償される。レンズ歪を記述するパラメータは、最終
システムで測定され、レンズ製造業者によって供給され
る情報によって支援される必要がある。
【0034】レンズ調整は、画素強度を定数と乗算する
ことによって達成することができ、その定数の値は画素
位置で異なる。その調整は、水平方向および垂直方向の
双方について行われる必要がある。
【0035】ホワイトバランス ホワイトバランシングは、ある光の状態のもとで検知さ
れた3刺激値を、表示されるとするならば白が再び白と
して現れるように変換を試みるものである。一般に、カ
メラによって捕獲される色は、場面を捕獲するときにそ
れらが見られた通りに出力デバイス上に現れることはな
い。それには2,3の理由が考えられる。第1に、スペ
クトラム範囲にわたってカラーフィルタの感度がわずか
に異なる。完全な白色光源(一定の光スペクトラム)で
露光されると、CCDによって検知される3刺激値はわ
ずかに異なる。第2に、CCDモジュール全体および光
システムの設計は3刺激値の不均衡に加わる。第3に、
場面を記録する間に存在する典型的な照明体が一定では
ない。照明体はある「カラー」を有しており、それは、
典型的には、「カラー温度」(または、相関カラー温
度)として特徴付けられる。照明体1のもとで捕獲され
た画像が異なる照明体のもとで表示されると、カラーの
見た目が変わる。これによって、ホワイト領域が少し赤
にまたは少し青に変えられる。
【0036】ホワイトバランスのためにいくつかの異な
るアプローチが知られている。それらのほとんどは、ホ
ワイトパッチについての結果として得られる3刺激値が
特定の値を有するように、赤および青チャンネルをある
ファクターと乗算する。
【0037】
【数1】
【0038】しかしながら、後で説明されるように、こ
のアプローチでは照明体の変化についての補正が得られ
ない。したがって、好ましい実施例のシステムにおける
ホワイトバランシングの実行は、センサ・モジュールの
不均衡を補正する。照明体補正は、カラー補正セクショ
ンにおける後の段で取り扱われる。
【0039】利得ファクターを計算する典型的な技術
は、
【0040】
【数2】
【0041】それらのすべてがあらゆる場合において成
り立つわけではない。したがって、ホワイトバランシン
グを主にイメージャ・モジュール特性の補正として定義
することによって、補正値を得るためのアルゴリズムは
ほとんど場面から独立させることができる。
【0042】図8は、プレビュー・エンジンを簡素化し
て実現したものを示しており、CCDセンサが線形範囲
で作動する限り良好な結果が得られている。以下のホワ
イトバランス・セクションは、より洗練された方法を記
述する。
【0043】ガンマ補正 画像を表示するのに用いられるディスプレイ装置(TV
モニタ)および画像を印刷するのに用いられるプリンタ
は、画像灰色値と実際に表示される画素強度との間の非
線形マッピングを有する。それ故に、好ましい実施例の
DSCにおいては、ガンマ補正段は、CCD画像を補償
してそれらを最終的な表示/印刷のために調整する。
【0044】ガンマ補正は非線形動作である。好ましい
実施例は、その補正をテーブル・ルックアップとして実
行する。テーブル・ルックアップの利点は、高速および
高柔軟性である。ルックアップ・テーブル・データはカ
メラ製造業者によって提供されるものであってもよい。
【0045】12ビットのデータでは、最大限ルックア
ップ・テーブルは、各エントリが8〜12ビットの4K
エントリを有する。より小さなルックアップ・テーブル
については、補正曲線への区分線形近似(piecewise li
near approximation)を用いることができる。例えば、
6つの最も重要なビットは、エントリがベース値(8〜
12ビット)とスロープ(6ビット)との値の複数のペ
アである64エントリ・ルックアップ・テーブルにアド
レスすることができる。そして、6つの最も重要ではな
いビットとスロープとの積がベース値に加算されて、8
〜12ビットの最終的に補正された値を生成する。図9
bは区分線形近似曲線を例示し、図9cは対応する動作
を例示する。
【0046】LCDディスプレイは線形であると考える
ことができ、ガンマ補償を不要とすることに留意願いた
い。しかしながら、LCDディスプレイ・モジュール
は、通常は、NTSC入力(それはすでにガンマ補償さ
れている)を期待しており、それ故に、この期待された
ガンマ補正を補償するために何らかの「ガンマ不補正」
(逆ガンマ補正)を行う。それで、そのようなLCDプ
レビュー・モジュールを用いる好ましい実施例のDSC
においては、ガンマ補正をなおも行っていて、NTSC
は信号をLCDモジュールに送出する前にそれを符号化
する。
【0047】ガンマ補正は、画像パイプライン処理の全
段の終わりにあって、ディスプレイに行く直前に行われ
る。代わりに、画像パイプラインは、パイプラインにお
いてより早くすなわちCFA補間段の前にガンマ補正を
行うことができる。
【0048】CFA補間 カラーフィルタ・アレイ(CFA)を用いることによ
り、各カラー平面の有効解像度が低減される。任意の所
定の画素位置には、1つのカラー画素情報(RGB原色
の場合にはRかGかB)のみがある。しかしながら、D
SCにおける各画素では最大限カラー解像度(R,Gお
よびB)を生成することが要求される。これをすること
ができるために、失われている画素値(G位置でのRお
よびBなど)がCFA補間において局所的な隣接部の値
から補間によって再構築される。このシステムにおける
DSPの利点を生かすために、補間フィルタとしてFI
R核(FIR-kernel)が使用されている。フィルタの長さ
と重みとは実例によって異なる。帯域間の関係もまた考
慮されなければならない。図10は、ハードワイヤード
・プレビュー・エンジン・モジュールにおけるCFA補
間の実現を説明する。それは、基本的には、垂直補間が
続く水平補間用の1D・FIR核を使用する。
【0049】高品質画像処理用のDSPサブシステムの
実行は、それが完全にプログラム可能であって2Dフィ
ルタ核を使用することができるという点で異なってい
る。改良されたCFA補間技術用のいくつかの背景情報
と提案とが、以下に続くセクションで示される。
【0050】カラー補正 捕獲と再生/印刷とで異なる照明体によって引き起こさ
れるカラー外観の変化は、赤,緑および青チャンネルを
独立してバランスさせることだけでは補正できない。こ
れを補償するために、色調(カラー)補正行列は、照明
体を考慮に入れた補正RGB画素値にRGB画素値をマ
ッピングする。
【0051】その原理は以下の通りである。I1は記録
照明体を示すN×N斜行列を示し、Sは各カラーについ
て1列ベクトルを備えるイメージャ・モジュールのスペ
クトラム特性を示すN×3行列を示し、Rは場面の反射
率を示す1×N列ベクトルを示すものとする。画素位置
での測定された3刺激値X1は、次式で与えられる。
【0052】
【数3】X1T=RT*I1*S ここで、 SS=S*ST
【0053】場面がI2によって照明されているならば
測定されたであろうX2に測定された3刺激値X1を変
換することができる。
【0054】
【数4】 X2T=X1T*ST*SS-1*I1-1*I2*S
【0055】3×3変換行列ST*SS-1*I1-1*I
2*Sは、センサのスペクトラム応答が測定されること
ができるものとして、オフラインで計算することができ
る。このように、異なる照明体についての一組のカラー
補正行列をカメラに記憶すれば十分である。カラー外観
の主観的好みはユーザ間で変わるので、これらをカラー
補正行列に含めるか画像処理パイプラインに別のステッ
プを加える(例えば、「色調スケール」)ことは容易に
可能である。
【0056】カラー空間変換 CFA補間およびカラー補正の後、画素は、典型的に
は、RGBカラー空間にある。圧縮アルゴリズム(JP
EG)はYCbCrカラー空間に基づいているので、カ
ラー空間変換が実行されなければならない。好ましい実
施例のDSCはまた、TVでの表示のために、また、L
CDプレビューに送出するために、NTSC信号出力を
生成する。それ故に、RGBからYCbCrへのカラー
空間変換が実行される必要がある。これは線形変換であ
り、Y値,Cb値およびCr値はそれぞれ、そのピクセ
ル位置でのR値,G値およびB値の重付け合計である。
図11aは、ハードワイヤード・プレビュー・エンジン
において実現されるカラー変換を例示する。DSP(再
生)実行は、原理的には同様であるが、より高い精度の
変換を可能とする。
【0057】
【数5】
【0058】エッジ・エンハンスメント CFA補間の後に、画像は補間フィルタのローパスフィ
ルタリング効果により少し「スムーズ」に見える。画像
をシャープにするためには、Y成分のみについて動作す
れば十分である。各画素位置では、典型的には二次元F
IRフィルタであるエッジ検出器を用いてエッジの大き
さを計算する。好ましい実施例は3×3ラプラス演算子
を用いる。エッジの大きさは、画像のシャープさを高め
るために原輝度(Y)画像に加算される前に、閾値がと
られてスケーリングされる。エッジ強調はハイパスフィ
ルタであり、このハイパスフィルタもノイズを増幅す
る。この増幅されたノイズを回避するために、閾値機構
が用いられてエッジ上にある画像のこれらの部分のみを
強調する。増幅されたエッジの大きさは変えられる。閾
値動作がノイズの増幅を低減するのに必要である。した
がって、エッジの素子であるこれらの画素のみが強調さ
れる。輝度チャンネルに加算される強調信号は図11b
のようにグラフィックに表すことができ、パラメータt
1,t2およびスロープs1は最高品質を得るのに必要
であると思われるように選択されることができる。
【0059】誤りカラー抑制 エッジ強調はY画像において行われるのみであることに
留意願いたい。エッジでは、カラー・チャンネルの補間
画像が十分に整列されないかもしれない。これは、シャ
ープなエッジで厄介な虹のような人工物を引き起こす。
したがって、Y成分におけるエッジでカラー成分Cb,
Crを抑制することによって、これらの人工物を低減す
ることができる。エッジ検出器の出力に基づいて、カラ
ー成分Cb,Crは、画素当りベースで1未満の係数と
乗算され、誤りカラー人工物を抑制する。
【0060】画像圧縮 画像圧縮ステップは、典型的には、約10:1から1
5:1に画像を圧縮する。好ましい実施例のDSCはJ
PEG圧縮を用いる。これは、良好な性能を与えるDS
Tベース画像圧縮技術である。
【0061】オート露光 場面の明るさが変化することにより、良好な全体画像品
質を得るのに、CCDの露光を制御してデジタル化画像
のダイナミックレンジを最大にすることが必要である。
露光制御の主なタスクは、シャッタースピードおよび可
能ならば光学システムの開口を制御することによって、
センサを線形レンジで作動させ続けるものである。虹彩
絞りを閉じることとシャッター速度を遅くすることとは
お互いに補償し合うので、露光が変わらないままである
一定のパラメータ範囲が存在する。高速で動く場面を捕
獲するというような他の制約がユーザによって望まれる
ときにある程度までしかこれを達成することができない
のは明白である。センサを線形レンジで作動させ続けよ
うとすることに加えて、ADCのダイナミックレンジし
たがってデジタル化画像を最大にすることが望まれる。
これは、AFEにおけるPGAを制御することによって
行われる。関連する制御パラメータを得るのに必要な処
理は、DSPで行われる。
【0062】オートフォーカス 画像処理を通してDSCにおけるレンズ焦点を自動的に
調整することもできる。オート露光と同様に、これらの
オートフォーカス機構もフィードバックループにおいて
作動する。それらは、レンズ焦点の品質を検出するため
に画像処理を行って、画像がシャープに焦点を結ぶまで
反復してレンズ・モータを動かす。オートフォーカス
は、先に説明されたエッジ強調からのエッジ測定に依存
する。
【0063】再生 好ましい実施例のDSCはまた、ユーザが捕獲画像をカ
メラのLCDスクリーン上か外部TVモニタ上で見るこ
とができるようにする。捕獲画像はJPEGビットスト
リームとしてSDRAM(または、コンパクトフラッシ
ュメモリ)に記憶されるので、再生モード・ソフトウェ
アもDSP上に備えられる。この再生モード・ソフトウ
ェアは、JPEGビットストリームを復号し、復号され
た画像を適当な空間解像度に縮小拡大し、それをLCD
スクリーンおよび/または外部TVモニタ上に表示す
る。
【0064】ダウンサンプリング 好ましい実施例のDSCシステムでは、JPEGデータ
を復号した後の再生モードの間の画像は、CCDセンサ
の解像度、例えば2メガピクセル(1600×120
0)である。この画像は、CCDセンサの解像度によっ
てより大きなものとすることもできる。しかしながら、
表示する目的のためには、この復号データは、NTSC
符号器に送出することができるようになる前に、NTS
C解像度(720×480)にダウンサンプルされなけ
ればならない。それ故に、DSCは、再生モードの末尾
でダウンサンプリング・フィルタを実現し、それによっ
て、更なるDSP計算を要求する。好ましい実施例は、
この更なるDSP計算の問題を、JPEG圧縮解除モジ
ュールの一部として含まれるDCTドメイン・ダウンサ
ンプリング方式によって解決する。JPEG圧縮解除は
本質的に3つの段(すなわち、最初のエントロピー復号
化段,それに続く反量子化段および最後のIDCT段)
を含むことに留意願いたい。JPEGでは、IDCTは
8×8画素のブロックで行われる。好ましい実施例は、
IDCTドメインにおいて4×4IDCTを(8×8D
CT係数ブロックからの)左上4×4DCT係数まで使
用することによって、2メガピクセル画像をNTSC解
像度(4/8ダウンサンプリング)にダウンサンプル
し、これによって、IDCTおよび4/8ダウンサンプ
リングの双方を1つのステップで効率的に達成する。サ
ンプリング比は、1/8(最小画像)と8/8(最大解
像度画像)との間で変えることができる。
【0065】分離可能二次元4ポイントIDCTが適用
されて、左上(低空間周波数)4×4DCT係数から画
像画素の4×4ブロックを得る。この低オーダーIDC
Tによって、反折返し(anti-aliasing)フィルタリン
グと8から4のデシメーション(decimation)とを効率
的に結合する。使用された反折返しフィルタは、保持さ
れたDCT係数をスケーリングすることなくDCTドメ
インにおいて16の最低周波数成分のみを保持するとい
う簡単な動作に対応する。この簡単なフィルタは折返し
(aliasing)効果を低減するのに有効であるが、好まし
い実施例は、更に折返しを低減するために、より良好な
周波数応答を備えるローパスフィルタを有する。他のロ
ーパスフィルタの使用は、スケーリング係数が各DCT
係数の位置である保持された係数のスケーリングを導
く。DCTドメイン・ダウンサンプリング技術は計算の
複雑さを増大しないことに留意願いたい。実際、それ
は、エントロピー復号化後のJPEG復号化段が左上4
×4係数を除いた8×8DCT係数全体を取り扱う必要
はないので、計算を低減する。他の反折返しフィルタの
使用は、係数スケーリング動作が低オーダーIDCT動
作にマージされることができるので、複雑さを加えな
い。このDCTドメイン・ダウンサンプリング・アイデ
ア技術は他のCCDセンサ解像度についてn/8(n=
1,…,7)ダウンサンプリング比を提供することがで
きることにも留意願いたい。
【0066】アップサンプリング 画像のズーミング用の切り取られた画像を表示すること
もアップサンプリング方式を用いる。ダウンサンプリン
グと反対のアプローチはエレガント・ツールを提供す
る。最初の場合には、8×8DCT係数は、N×M係数
(N,M>8)のブロックを形成するようにゼロで(実
質的に)垂直および水平に拡大される。このブロックで
は、サイズがN×MのIDCTが実行され、空間ドメイ
ンにN×Mサンプルを生成する。現在、ほとんどの画像
パイプライン動作は標準化されていない。プログラム可
能DSCエンジンを持つことは、ソフトウェアをグレー
ドアップして新しい標準を構成したり画像パイプライン
品質を向上する能力を提供する。未使用の性能は、ヒュ
ーマン・インターフェース,音声注釈,オーディオ記録
/圧縮,モデム,ワイヤレス通信などのような他のタス
ク専用とすることもできる。図27は、CFA補間,ホ
ワイトバランス,カラー補正,色調スケーリング,ガン
マ補正,RGBからYCrCbへの変換,エッジ強調,
エッジ検出,カラー・ブーストおよびJPEG圧縮の準
備における誤りカラー抑制を含む前処理機能ブロック図
を示す。以下のセクションは、CFA補間に関する好ま
しい実施例を説明する。
【0067】折返しを低減したCFA補間 バイエル・パターン(図7a)用の好ましい実施例のC
FA補間は、緑チャンネルからの高周波を用いて赤およ
び青チャンネル補間を修正して、他のカラー・チャンネ
ルの信号を用いることによって画像内のエッジでの折返
し成分を低減する。これによって、人工物が低減され、
シャープさが向上し、更なる後処理が避けられる。実
際、以下のような手順である。 (1)緑チャンネルに補間を適用する(いかなる補間方
法でも)。これは緑平面を生成する。 (2)緑チャンネルにおいてエッジを検出する(勾配ま
たは他の方法によって)。 (3)緑チャンネルのハイパス成分を計算する(任意の
ハイパスフィルタを備えたフィルタ)。 (4)赤チャンネルに補間を適用する(いかなる補間方
法でも)。これは赤平面を生成する。 (5)(3)のハイパス成分を(重付け係数で)赤チャ
ンネルに加算する。 (6)青チャンネルに補間を適用する(いかなる補間方
法でも)。これは青平面を生成する。 (7)(3)のハイパス成分を(重付け係数で)青チャ
ンネルに加算する。
【0068】それで、最終画像は3つのカラー平面から
なる。すなわち、ステップ(1)からの緑平面とステッ
プ(5)からの赤平面とステップ(7)からの青平面と
である。すなわち、最終画像の一画素について、緑の強
度はステップ(3)からの緑平面の対応画素の値となる
ようにとられ、赤の強度はステップ(5)からの修正赤
平面の対応画素の値となるようにとられ、青強度はステ
ップ(7)からの修正青平面の対応画素の値となるよう
にとられる。前記の理論的な分析:各CCD画素はその
画素の空間的広がりにわたる入射光信号を平均化し、こ
うして、そのCCDは入射光信号のローパスフィルタリ
ングに画素サイズの逆数であるカットオフ周波数を効率
的に提供する。また、画素についてのカラーフィルタに
よる画素アレイのサブサンプリングは、各カラー平面に
おける折返しに導く。実際、赤と青については、サブサ
ンプリングは各方向において2の係数によるものであ
り、それで、周波数スペクトラムは各方向において最大
周波数の半分で折れる。こうして、赤および青のベース
バンド・スペクトラム領域は原アレイ・スペクトラム領
域の各4分の1である(赤および青サンプリングが原ア
レイの各4分の1であることを反映している)。緑につ
いては、スペクトラムの折れが斜め方向で赤および青と
同じ大きさの21/2の距離であるという点で、サブサン
プリングは半分だけしか良好ではない。緑のベースバン
ド・スペクトラムは、原アレイ・スペクトラムの2分の
1の領域である。
【0069】エッジでのカラー縁取りは、折返し問題で
ある。また、たとえ折返しが存在していなくとも、非類
似のベースバンド・スペクトラムもカラー縁取りに導
く。実際、折返しが必ずしも一つのカラー・バンド画像
では見えないが、3つのカラー成分を組み合わせて1つ
のカラー画像にすることに影響があることは明白とな
る。赤と緑と青との間のサンプリング格子のシフトは、
折返し信号成分の位相シフトを引き起こす。一次元の例
はこれを明らかにする。一次元離散信号f(n)と、それ
ぞれ2の係数によるが偶数番目のサンプルの一つと奇数
番目のサンプルの一つの(それで、1つのサンプルによ
ってサンプリング格子のシフトがある)2つのサブサン
プリングとを仮定する。
【0070】
【数6】feven(2m)=f(2m) feven(2m+1)=0 fodd(2m)=0 fodd(2m+1)=f(2m+1)
【0071】もちろん、f(n)=feven(n)+f
odd(n)である。F(z)をf(n)のz変換とし、F
even(z)をfeven(n)のz変換とし、Fodd(z)をfodd
(n)のz変換とする。ここで、Feven(z)はzの偶数関
数(zの偶数乗のみ)でありFodd(z)はzの奇数関数
(zの奇数乗のみ)であることに留意願いたい。
【0072】
【数7】Feven(z)={F(z)+F(−z)}/2 Fodd(z)={F(z)−F(−z)}/2
【0073】F(−z)は、折返しに対応し、また、反対
符号すなわちπの位相シフトで現れる。
【0074】カラー縁取りは折返し成分のπの位相シフ
トによって低減することができる。しかしながら、これ
を達成するのは非常に困難である。というのは、たった
一つの利用できる信号は原信号と折返し信号との和であ
るからである。したがって、好ましい実施例は別のアプ
ローチを有する。2つ(または、それ以上)のサブサン
プルされた信号(すなわち、赤,緑および青)が同一の
特性(例えば、灰色スケール画像についてのような)を
有している限り、原画像の完全再構築は、サブサンプル
された信号を加えさえすれば達成できる。しかしなが
ら、CFA補間においては、一般に、サブサンプルされ
た信号は異なるカラー・バンドから生じている。折返し
のエラーは、異なるカラー・バンドの補間信号が誤って
配列されたエッジで特に目に見えるものとなる。したが
って、好ましい実施例は、サブサンプルされた信号の他
のものを使うことによってエッジのみでの折返し成分を
低減することによって、エッジでのカラー縁取りを阻止
する。これによって、人工物が低減でき、シャープさを
向上し、後処理が加わるのを避けるものとなる。
【0075】とりわけ、バイエル・パターンCFAにつ
いては、緑チャンネルは赤および青チャンネルよりも高
いカットオフ周波数を有しており、それ故に、緑チャン
ネルの折返しはさほど重要なものではない。補償される
べき折返し信号はハイパス信号であり、それは緑チャン
ネルのハイパス成分として見積もられ、これは赤および
青チャンネルに(緑のサブサンプリング格子に関する赤
および青のサブサンプリング格子のオフセットによる位
相シフトにより減算されるよりもむしろ)加算される。
ハイパス緑成分は、赤および青のサブサンプリングに加
算されるに先立って、スケール係数で乗算されることが
できる。信号は、赤,青を補間している間かその後に加
算される。
【0076】中間色相を適応するCFA補間 代わりのCFA補間の好ましい実施例は、まず、5×5
FIRフィルタを使ってバイエル・パターン緑を補間
し、その後、補間された緑を用いてそれぞれ2つのステ
ップで赤および青を補間する。すなわち、まず、斜めに
補間して原緑パターンに類似するパターンを形成し(こ
の補間は緑による正規化を用いて高周波数を見積り)、
その後、4つの最も近い隣接補間を適用して(緑の正規
化を再度用いて高周波数を見積もって)赤または青平面
を完了する。以下のようにyがアレイの行番号でxが列
番号である画素位置(y,x)についてのCFA値をよ
り明白に表わす。すなわち、yおよびxが共に偶数であ
る画素位置(y,x)での赤値R(y,x)と、yおよび
xが共に奇数である青値B(y,x)と、他の位置すなわ
ちy+xが奇数である緑値g(y,x)である。
【0077】まず、G^(y,x)が緑平面補間の結果生
じる画素位置(y,x)での緑値を表わすものとし、これ
はすべての画素位置(y,x)について定義される。この
補間は、以下のセクションのエッジ保存補間を含む様々
な方法によって行うことができる。多くの補間は原緑値
を変えない、すなわち、Gが元々定義されると(すなわ
ち、y+xが奇数であると)、G^(y,x)=G(y,
x)が真であるということに留意願いたい。次に、青に
ついてラベル付けされるとともに補間寄与を示すのに矢
印を用いる図28に例示されるように、2つのステップ
で赤補間および青補間をそれぞれ定義する。まず、赤ス
テップである。R(y,x)は、すでに、mおよびnを整
数としてy=2mおよびx=2nで画素位置(y,x)に
ついて定義されており、それで、第1に、y=2m+1
およびx=2n+1についてR^(y,x)を定義する。
【0078】
【数8】R^(y, x)=G^(y, x){R(y-1, x-1)/G^(y-1, x-1)
+R(y-1, x+1)/G^(y-1, x+1)+R(y+1, x-1)/G^(y+1, x-1)
+R(y+1, x+1)/G^(y+1, x+1)}/4
【0079】これは、赤平面をB(y,x)が定義された
画素に補間する。(図28は、青についての類似する補
間を例示する。)この補間は本質的には対応緑値によっ
て各位置で正規化された値で(y,x)周りの3×3正
方形の4つの角で赤値を平均化する。緑値に閾値未満の
ものがあれば、正規化を省略して赤値を平均することだ
け行われる。同じ緑値が用いられているので、最初の赤
ステップと並列して最初の青ステップを行う。最初の青
ステップ:B(y,x)は、mおよびnを整数としてy=
2m+1およびx=2n+1で画素位置(y,x)につ
いてすでに定義されているので、まず、y=2mおよび
x=2nについてB^(y,x)を定義する。
【0080】
【数9】B^(y, x)=G^(y, x){B(y-1, x-1)/G^(y-1, x-1)
+B(y-1, x+1)/G^(y-1, x+1)+B(y+1, x-1)/G^(y+1, x-1)
+B(y+1, x+1)/G^(y+1, x+1)}/4
【0081】これは、図28の左手部分に例示されるよ
うにR(y,x)が定義された画素に青平面を補間する。
ここでも、この補間は、本質的に、対応緑値によって各
位置で正規化された値で(y,x)周りの3×3正方形
の4つの角で青値を平均化する。第2の赤ステップ。y
+xが奇数である(y=2mおよびx=2n+1かy=
2m+1およびx=2nである)場合のR^(y,x)を
定義する。
【0082】
【数10】R^(y, x)=G^(y, x)[R^(y-1, x)/G^(y-1, x)+
R^(y, x+1)/G^(y, x+1)+R^(y+1, x)/G^(y+1, x)+R^(y,
x+1)/G^(y, x+1)]/4
【0083】この第2のステップは、第1のステップに
よって定義された赤平面部分をG(y,x)が定義される
画素に補間する。ここでもまた、この補間は、本質的
に、対応緑値によって各位置で正規化された値で(y,
x)の4つの隣接画素での赤値を平均化する。第2の青
ステップ。y+xが奇数(y=2mおよびx=2n+1
かy=2m+1およびx=2n)であるものについて定
義する。
【0084】
【数11】B^(y, x)=G^(y, x){B^(y-1, x)/G^(y-1, x)+
B^(y, x+1)/G^(y, x+1)+B^(y+1, x)/G^(y+1, x)+B^(y,
x+1)/G^(y, x+1)}/4
【0085】この第2のステップは、第1のステップに
よって定義された青平面部分をG(y,x)が定義される
画素に補間する。ここでもまた、この補間は、本質的に
は、対応緑値によって各位置で正規化される値で(y,
x)の4つの隣接画素で青値を平均化する。最終カラー
画像は、3つの補間されたカラー平面G^(y,x),R
^(y,x),B^(y,x)によって定義される。G^
(y,x)について用いられる特定の補間は、R^(y,
x)およびB^(y,x)のために用いられる2ステップ
補間用の正規化において反映される。
【0086】エッジを保存するCFA補間 代わりのCFA補間の好ましい実施例は、補間された画
素緑値を最も近い隣接画素緑値と比較し、また、補間さ
れた値が範囲外にあれば補間された値を隣接値と置き換
えることによって、(小さな)FIRフィルタと保存エ
ッジとでバイエル・パターン緑を補間する。図29は緑
補間を例示する。この緑補間の後に、赤平面および青平
面を補間する。とりわけ、第1に、各画素(y,x)で
以下の5×5FIRフィルタをx+yが奇数である画素
(y,x)上で定義されるG(y,x)に適用し、すべて
の(y,x)について定義されるG1(y,x)を生成す
る。
【0087】
【数12】
【0088】200の中央エントリは、G(y,x)がC
FAにおいて定義される(y,x)についてG1(y,
x)=G(y,x)を意味するに過ぎない。緑値は0〜2
55の範囲にあることと負値は0に切り捨てられること
とに留意願いたい。もちろん、他のFIRフィルタを用
いることもできるが、このものが簡単で有効である。次
に、G1(y,x)が補間される(y,x)について、4
つの最も近い隣接値G(y±1,x),G(y,x±1)を
考慮して、最大および最小の値を破棄する。AおよびB
を残りの2つの最も近い隣接値であって、BがA以下で
あるとする。そのとき、最終補間緑値G^(y,x)は以
下のように定義される。
【数13】
【0089】これは、補間された値を隣接画素値の中間
範囲に固定し、一つのエッジを超えた最も近い隣接画素
が補間画素値を薄めないものとする。図29は緑補間全
体を示す。赤補間および青補間によって画像を完成させ
る。赤補間および青補間はそれぞれ、単一ステップの補
間であってもよいし、エッジ保存された緑値を用いる前
述のセクションにおいて説明したような2ステップ補間
であってもよいし、他の種類の補間であってもよい。
【0090】CFA補間とノイズフィルタリング 好ましい実施例は、一体化されたアプローチでノイズを
制限するローパスフィルタリングが続いて行われるCF
A補間に必要なラインメモリに保存する。とりわけ、C
FA補間は、典型的には、図30に例示されるように、
間にラインメモリを有する水平補間ブロックおよび垂直
補間ブロックを含む。水平補間ブロックは、CFA信号
の行の入力と、2つのトグルスイッチと、2つのゼロ挿
入サブブロックと、2つの3タップFIRフィルタ(係
数0.5,1.0,0.5)と、2つの出力(各カラー
につき1つの出力)とを有する。FIRフィルタの各々
は、入力カラー値を再生するに過ぎず、また、挿入され
たゼロの代わりに連続する入力カラー値の平均を入れ
る。2つのサブブロックのゼロ挿入およびトグル・タイ
ミングは、互いに交互になる。水平補間ブロックのブロ
ック図が図31に示され、生データR/G/R/G/
R...を有し、このブロックにおいて、行補間された
赤および緑信号が出力される。生データ入力の行がB/
G/B/G/B...であるならば、補間された青およ
び緑信号が出力される。ライン(行)メモリは、データ
を垂直補間ブロックで補間するために、1CFAライン
(行)周期だけデータを遅延させる。図32は、4つの
ラインメモリとそのメモリの入出力データとを示す。行
データが入力するにつれて増大する(偶数)行番号を示
すmと列番号を示すnについてのR/G/R/G
/...生データの入力行の場合には、入力および出力
データは、 Input A=R(m, n) Output A1=Input A=R(m, n) Output A2=G(m-1, n) これは生データG/B/G/
B...行の前の行からの補間された緑であった。 Output A3=R(m-2, n) これは生データR/G/R/G
/...行の2つ前の行からの補間された赤であった。 Input B=G(m, n) Output B1=Input B=G(m, n) Output B2=B(m-1, n) これは生データG/B/G/
B...行の前の行からの補間された青であった。 Output B3=G(m-2, n) これは生データR/G/R/G
/...行の2つ前の行からの補間された緑であった。 これによって、垂直補間のために赤の2行R(m,n),
R(m−2,n)が備わり、赤のm−1行を生成し、ま
た、垂直補間を必要としない緑行G(m,n),G(m−
1,n),G(m−2,n)も備わるものとなる。
【0091】G/B/G/B/...生データの次の入
力行(行m+1)によって以下の入力および出力データ
が導かれる。 Input A=G(m+1, n) Output A1=Input A=G(m+1, n) Output A2=R(m, n) これは生データR/G/R/G
/...行の前の行から補間された赤であった。 Output A3=G(m-1, n) これは生データG/B/G/B
/...行の2つ前の行から補間された緑であった。 Input B=B(m+1, n) Output B1=Input B=B(m+1, n) Output B2=G(m, n) これは生データR/G/R/G
/...行の前の行から補間された緑であった。 Output B3=B(m-1, n) これは生データG/B/G/B
/...行の2つ前の行から補間された青であった。 これによって、垂直補間のために2つの青の行B(m+
1,n),B(m−1,n)が備わり、m行の青を定義
し、また、垂直補間を必要としない緑行G(m+1,
n),G(m,n),G(m−1,n)も備わる。
【0092】図33は垂直補間用の組合せを示す。とり
わけ、行m出力(行m+1入力)については組合せは
(図33b)、 緑はG(m,n) 赤はR(m,n) 青は(B(m−1,n)+B(m+1,n))/2 である。また、行m−1出力(行m入力)については組
合せは(図33a)、 緑はG(m−1,n) 赤は(R(m,n)+R(m−2,n))/2 青はB(m−1,n) である。
【0093】図33が例示するように、垂直ローパスノ
イズフィルタは、3つの緑出力(行m入力に対してG
(m−2,n),G(m−1,n)およびG(m,n)と、行
m+1入力に対してG(m−1,n),G(m,n)および
G(m+1,n))に直接適用することができるが、図3
2の4つのラインメモリが十分なライン(行)を出力し
ないので、赤と青とは垂直にフィルタすることができな
い。むしろ、図34に例示されるように、8つのライン
メモリが必要である。
【0094】図35aおよび図35bは、緑垂直ノイズ
低減フィルタ・ブロックAと緑ノイズ・ブロックBと青
/赤緑ノイズ差分ブロックCと赤/青緑ノイズ総和ブロ
ックDとを含む垂直補間およびローパスノイズフィルタ
リングの好ましい実施例の組合せを例示する。図35a
および図35bの好ましい実施例に対する6つの入力
は、図30から図32の水平補間および4つのラインメ
モリの出力であり、このように、図34の公知の垂直補
間フィルタへの入力と同じである。この補間とノイズフ
ィルタリングとをプログラム可能プロセッサ上で実施す
るためには、図34の8つのラインメモリが図30から
図32の4つのラインメモリの2倍のプロセッサ・メモ
リ空間をとり、これは大きなメモリ空間となり得る。2
メガピクセル(1920×1080画素)CCDのよう
な大きなCFAについては、ラインメモリは1〜2キロ
バイトであり、差はプロセッサ・メモリの4〜8キロバ
イトとなる。
【0095】より詳細には、図35aは、図32の水平
補間+4つのラインメモリへのmが偶数である入力列m
(生CFAデータR/G/R/G/...)の場合のノ
イズ低減および垂直補間を例示する。図35aの左手エ
ッジでの6つの(水平に補間された)入力は、R(m,
n),G(m−1,n),R(m−2,n),G(m,n),
B(m−1,n)およびG(m−2,n)であり(すなわ
ち、図32における出力)、また、出力は、行m−1に
ついてノイズ低減されたカラー、すなわち、R”(m−
1,n),G”(m−1,n)およびB”(m−1,n)で
ある。まず、垂直補間(図35aの左手部分)は、R
(m,n)およびR(m−2,n)を平均化してR(m−
1,n)を生成し、G(m−1,n)およびB(m−1,
n)は入力としてすでに存在する。そして、ノイズ低減
フィルタ(図35aの右手部分におけるブロックA)
は、垂直にローパスフィルタリングされた緑G”(m−
1,n)を生成して出力する。
【0096】
【数14】G”(m-1, n)=[G(m, n)+2*G(m-1, n)
+G(m-2, n)]/4
【0097】次に、ブロックBは、Delta_GをGと
G”との差として生成する、すなわち、Delta_GはG
の垂直高周波部分である。
【0098】
【数15】 Delta_G(m-1, n)=G(m-1, n)−G”(m-1, n)
【0099】Gは、バイエルCFAにおけるBおよびR
の2倍の頻度でサンプルされるので、Gの直接高周波見
積りはBおよびRのそれよりも良いように思え、このよ
うに、好ましい実施例はノイズ低減用の減算にDelta_
Gを用いる。垂直平均[G(m+1,n)−G(m−1,
n)]/2とG”(m,n)との差が−Delta_G(m,n)
と等しくなり、それにより、垂直に補間され(平均化さ
れ)かつローパスフィルタリングされるべきRおよびB
について、RおよびBから減算されるべきGによって提
供される高周波数見積りが反対の符号を有するものとな
ることに留意願いたい。
【0100】このように、ブロックCは、Delta_Gを
Bから減算して行m−1についてB”を生成する。とい
うのも、Bはn−1について垂直に補間されないからで
ある。
【0101】
【数16】 B”(m-1, n)=B(m-1, n)−Delta_G(m-1, n)
【0102】本質的に、Gの垂直高周波部はBの垂直高
周波部についての見積りとして用いられ、Bの直接垂直
ローパスフィルタリングは適用されない。
【0103】続いて、ブロックDは、Delta_GをRに加
算して行m−1についてR”を生成する。というのも、
Rは垂直に補間されなかったからである。
【0104】
【数17】 R”(m-1, n)=R(m-1, n)+Delta_G(m-1, n)
【0105】ここでも、Gの垂直高周波部がRの高周波
部の代わりに用いられ、垂直平均化がR(m−1,n)を
生成するので、Delta_Gの反対符号が高周波数見積り
を減算するのに用いられる。
【0106】このように、ノイズが低減されフィルタリ
ングされた3つのカラー出力行m−1は、先のG”(m
−1,n),R”(m−1,n)およびB”(m−1,n)
である。同様に、入力行m+1からの出力行m(ここで
もmは偶数)および生CFAデータG/B/G/B
/...について、6つの(水平に補間された)入力
は、G(m+1,n),R(m,n),G(m−1,n),B
(m+1,n),G(m,n)およびB(m−1,n)であ
り、出力は、行mについてノイズの低減されたカラー
R”(m,n),G”(m,n)およびB”(m,n)であ
る。垂直補間(図35bの左手部分)は、B(m+1,
n)とB(m−1,n)とを平均化してB(m,n)を生成
し、G(m,n)とR(m,n)とはすでに入力として存在
する。ノイズ低減フィルタ(図35bの右手部分)ブロ
ックAは、再度垂直にローパスフィルタリングされた緑
G”(m,n)を次の通り生成する。
【0107】
【数18】G”(m, n)={G(m+1, n)+2*G(m, n)+
G(m-1, n)}/4
【0108】次に、ブロックBは、再度、Delta_Gと
呼ばれるGの垂直高周波部分をGとG”との差分として
生成する。
【0109】
【数19】Delta_G(m, n)=G(m, n)−G”(m, n)
【0110】その後、ブロックCは、再度、Delta_G
を(行m−1出力についてはBよりもむしろ)Rのみか
ら減算してR”を生成する。
【0111】
【数20】R”(m, n)=R(m, n)−Delta_G(m, n)
【0112】このように、Gの高周波部分は、再度、R
のノイズのある部分についての見積りとして用いられ、
また、Rの直接のノイズフィルタリングは適用されず、
行mについてはDelta_Gが行m−1に対して加算され
るよりはむしろ減算される。実際、奇数行はRを垂直平
均として定義しているので、Rについて、偶数行はDelt
a_Gを減算させ、奇数行はDelta_Gを加算させる。最
後に、ブロックDは、Delta_GをBに加算してB”を
生成する。
【0113】
【数21】B”(m, n)=B(m, n)+Delta_G(m, n)
【0114】このように、Bの直接垂直ローパスフィル
タリングの代わりに、Rについて、Delta_G垂直高周
波数見積りは、行ごとに交代でBに加算されまたBから
減算される。所定の行について、RおよびBの一方は先
行する行および後続する行の平均であるので、Rおよび
BについてのDelta_G項は反対の符号を有することに
留意願いたい。
【0115】要するに、好ましい実施例は、Gに基づく
高周波数見積りを用いることによってたった4つのライ
ンメモリでCFA水平補間,垂直補間およびローパスフ
ィルタリングを模倣することができる。図36aから図
36bおよび図37aから図37bは、Gの垂直ローパ
スフィルタリングが、図35aから図35bの好ましい
実施例の1/4,1/2,1/4の重付けとは異なる代
替の実施例を例示している。
【0116】補色CCD用のCFA補間 補色パターンCFA(図7bに例示される)のための好
ましい実施例のCFA補間は、単純補間を、それに続く
カラー不均衡の検出および調整による画像品質強調と組
み合わせる。とりわけ、各画素で定義された最初の補間
をすべての4つの補色値とし、色値をYe(黄),Cy
(シアン),Mg(マゼンタ)およびG(緑)と記す。
最初に、各画素で不均衡ファクターμを計算する。
【0117】
【数22】μ=Ye+Cy−2*G−Mg
【0118】この不均衡ファクターは、理想の画素カラ
ー値と実際の画素カラー値との差を現す。実際に、赤値
(R),緑値(G)および青値(B)に関しての補色値
の定義は、Ye=R+G,Cy=G+BおよびMg=B
+Gである。それ故に、画素のカラー値について以下の
関係が常に成立する。
【0119】
【数23】Ye+Cy=2*G+Mg
【0120】このように、不均衡ファクターμは理想的
には消失する。エッジが画素に近いとき、不均衡はCF
Aにおける4つのカラー・サンプルの各々の空間的差分
により生じ得る。好ましい実施例は、不均衡を検出し、
各カラー値を変更することによって調整する。
【0121】
【数24】Ye’=Ye−μ/4 Cy’=Cy−μ/4 Mg’=Mg+μ/4 G’=G+μ/8
【0122】その後、これらの変更された補色は最終画
像を形成するのに用いられる。図38は、不均衡ファク
ターを用いた強調(エンハンスメント)についての全体
的なフローを明示する。もちろん、Ye’+Cy’=2
*G’+Mg’であるならば、−1/4,−1/4,1
/4および1/8以外のスケール因数を不均衡ファクタ
ーに適用することもできる。
【0123】ホワイトバランス 「ホワイトバランシング」という語は、典型的には、ア
ルゴリズムを記述するのに用いられ、それは、カメラが
現在作動している光源に関してカメラのホワイトポイン
トを補正する。真の光スペクトラムの見積りが非常に困
難であるので、たいていのアプローチの目的は、灰色の
対象物についてはすべてのカラー・チャンネルについて
の画素強度がほとんど同じものとなるように、(RGB
カラーフィルタに基づくCCDであるとして)赤および
青チャンネルの出力を補正することである。最も普通の
技術は、基本的には、平均エネルギーまたは単純に各チ
ャンネルの中間値を計算する。平均の計算は、赤につい
てはN個のローカル・ウインドウWj(j=1,
2,...,N)において実行される。
【0124】
【数25】Rj=Σk∈wjr(k)
【0125】ここで、r(k)は赤チャンネル用のデジタ
ル信号を示す。青および緑カラー・チャンネルについて
は、同様に、平均Bjおよび平均Gjが計算される。チャ
ンネル間の不均衡は、緑対赤の比および緑対青の比によ
って与えられる
【0126】
【数26】WBR=Σjj/Σjj WBB=Σjj/Σjj
【0127】が、赤および青チャンネル用の補正乗数と
してそれぞれ用いられる。
【0128】
【数27】r’(k)=WBRr(k) b’(k)=WBBb(k)
【0129】このアプローチには多くの異なる種類が存
在し、それらはすべて、強度から独立した乗算因数WB
R,WBBを計算する。
【0130】このアプローチは、いくつかの仮定が有効
でありさえすれば、成り立つ。第1に、センサ応答は入
力強度範囲全体にわたって良好に配列されると仮定す
る。換言すれば、緑応答曲線は、因数を乗算された赤
(青)応答曲線に等しい。センサ(CCD)特性を見る
ことは、この仮定が成立するのではないということを指
示する。高い光強度については、センサは飽和し、一
方、非常に低い光強度では、センサ反応(特に、青チャ
ンネル)は非常に小さい。また、センサの非線形性とセ
ンサ反応に関するカラー・チャンネルの不均衡と光源と
は、同時に取り扱われる。結果としての人工物は、非常
に明るい領域でのマゼンタ・カラーを含み、そこでは、
「カラー」が白くなったり暗い領域で違うカラーになっ
たりする。センサ出力での、例えば赤カラー・チャンネ
ルについての画素強度は、以下のようにモデル化するこ
とができる。
【0131】
【数28】 r(k)=.I(λ)β(k, λ)fR(λ)α(I, λ)dλ
【0132】ここで、λは波長を示し、I(λ)は光源の
スペクトラムを示し、β(x,λ)は観察下にある対象物
の反射率を示し、fR(λ)はCCD画素をカバーする赤
カラーフィルタのスペクトラムの感度を示し、α(I,
λ)は光子を電子に変換するCCDの強度および波長に
依存する効率を示す。
【0133】典型的なCCDセンサのカラーフィルタf
R(λ)(とfG(λ)およびfB(λ))のスペクトラム応答
曲線に関してのみ、出力信号は異なる。
【0134】
【数29】 WBR=.fG(λ)dλ/.fR(λ)dλ=1.09 WBB=.fG(λ)dλ/.fB(λ)dλ=1.34
【0135】典型的なCCDの応答を用いて、完全白色
光源(スペクトラムI(λ)がフラットである)と完全に
白い対象物(反射光のスペクトラムが照射光のスペクト
ラムと同じであって、β(k,λ)=1を意味する)とを
想定し、また、α(I,λ)を無視(波長に依存する量子
効果がない)して、それらの値が得られる。特に、青チ
ャンネルは、同じ強度で緑または赤よりも小さな応答を
示す。センサの非線形量子効果は別の影響である。入力
強度にわたっての典型的なS字型のセンサ反応が図39
aに示されている。また、各チャンネルにおけるセンサ
反応は光源のスペクトラムに依存する。
【0136】こうして、好ましい実施例のホワイトバラ
ンシングは非整列および非線形性を考慮する。典型的な
光源は、可視スペクトラムにわたってフラットではな
く、あるスペクトラムの帯域においてより高いエネルギ
ーを有する傾向にある。この効果は、観察されるセンサ
反応に影響し、理想的には、それがホワイトポイント補
償によって補正されるが、それは補正行列に基づく。チ
ャンネルの独立したバランシングは、この効果を先に概
要を述べたように取り扱うことができない。数学的な記
述を簡単にするために、図39aのS字型応答曲線を区
分線形部分で近似する。3つの部分は光の状態を3つの
カテゴリ(非常に低い強度と通常の強度と非常に明るい
光)に分ける。図39bは単一の乗数を適用する効果を
示す。緑信号に関して、青信号の増幅は、低い光の状態
においてはあまりに小さすぎ、一方、非常に明るい状態
においてはその乗数は大きすぎる。ファクターを低減す
ると、成分間でのオフセットが残り、違う色として目に
見える。したがって、3つのすべての応答曲線を整列す
るための補正条件は、異なって見え、センサ特性を反映
しなければならない。
【0137】好ましい実施例のホワイトバランシング
は、2つの別々の方式に分けられる。一つはイメージャ
に依存する調整を考慮し、他方は光源に関係する。一般
的なものとして制限されるわけではないが、S字型応答
曲線は、以下の3つの区分線形部分で近似される。より
多くの部分とすれば、制度が向上するが、基本的な概念
は変わらない。第1の領域(非常に低い強度)と青チャ
ンネルについて、sを応答としxを入力強度としてモデ
ルが読み取られる。
【0138】
【数30】sB,1=aB,1
【0139】第2の領域をモデル化するには、乗数およ
びオフセットが必要である。
【0140】
【数31】sB,2=aB,2x+bB,2
【0141】オフセット項は、応答曲線が領域1から領
域2への移行ポイントx1で連続する必要があるという
制約によって決定される。
【0142】
【数32】sB,1(x1)=sB,2(x1) したがって、bB,2=(aB,1−aB,2)x1
【0143】領域3の線形モデルについてのパラメータ
【0144】
【数33】sB,3=aB,3x+bB,3
【0145】が完全に決定される。というのも、最大出
力は最大入力xmaxと同じでなければならず、また、応
答曲線は接続ポイントx2で連続する必要があるからで
ある。
【0146】
【数34】xmax=aB,3max+bB,3B,2(x2)=sB,3(x2) aB,3=(sB,2(x2)−xmax)/(x2−xmax) bB,3=(1−aB,3)xmax
【0147】こうして、各カラー成分について応答曲線
の近似を特定するパラメータはa1,a2,x1およびx2
である。xmaxは、入力信号のビット解像度によって特
定されるので、自由パラメータではない。
【0148】好ましい実施例のホワイトバランシング
は、各領域について異なる乗数を適用する。1つの領域
から次の領域への連続する移行については、更なるオフ
セットが要求される。領域の数は任意であるが、一般性
を失うことなく、以下の等式では3つだけの領域が考慮
される。領域1についての緑に関する青の補正項は、
【0149】
【数35】
【0150】でなければならない。ここで、(G1およ
びB1用の)ウインドウ1は、領域1の強度をもつ画素
を有する。このように、領域1にある入力強度値は、補
正された出力
【0151】
【数36】b’(k)=WBB1b(k)
【0152】を得る。領域2についてのバランシング乗
数に基づいて、
【0153】
【数37】
【0154】ホワイト・バランシングは、領域2におけ
る値の更なるオフセットを考慮しなければならず、
【0155】
【数38】b’(k)=WBB2b(k)+WBOB2 ここで、 WBOB2=(WBB1−WBB2)x1
【0156】第3の領域について、WBB3を明瞭に特
定することができないことを除いて、計算は基本的に同
じであるが、増幅は最大値xmaxによって決定される。
【0157】
【数39】b’(k)=WBB3b(k)+WBOB3 ここで、 WBB3=(xmax−(WBB22+WBOB2))/(xmax
2) WBOB3=(1−aB,3)xmax
【0158】実施のために、システムは、N−1の領域
について適当なホワイトバランシング乗数WBBiを決
定しなければならない。これらの値に基づいて、残りの
オフセット値WBOBおよび最後の領域用の乗数が計算
される。移行ポイントの位置は演繹的に特定される。ホ
ワイトバランシング自体は、入力画素の強度値に基づい
て領域を選択し、適当な利得およびオフセットをその値
に適用する。
【0159】
【数40】
【0160】赤チャンネルについて同様の乗数も加え
る。
【0161】CCD出力信号の全ダイナミックレンジ
は、CCDにおいて捕獲される光子の数に影響するの
で、開口およびシャッターから独立である。しかしなが
ら、アナログ利得または処理に先立つデジタル利得は、
信号をシフトさせ、避けられるべきである。利得(デジ
タル)αが適用される必要のある場合は、この利得はホ
ワイトバランシング方法に含まれる。利得は、最大入力
値xmaxを出力値α*xmaxにマッピングする。スケーリ
ングされた応答曲線は、スケーリングされていないもの
と同じに振る舞い、スケーリングされた信号がα*x
maxで飽和することを意味している。
【0162】
【数41】WBB1:=α*WBB1 WBB2:=α*WBB2
【0163】を代入のこと。このようにして、先のセク
ションにおける等式は、以下を除いて変わっていない。
【0164】
【数42】WBOB3=(α−aB,3)xmax
【0165】線形化の後に、信号は光源を反映して調整
を受けることができる。これはまた、ホワイトポイント
調整としても知られている。ここで、入力信号は、異な
る光源の下で捕らえられたかのように見えるように変換
される。例えば、画像は、明るい日光でとられた(D6
5)が、カラー特性は室内状態(D50タングステン)
の下でとられているかのようである。
【0166】
【数43】 [R,G,B]D65 T=ID65 T*β*[fR,fG,fB]T [R,G,B]D50 T=ID50 T*β*[fR,fG,fB]T
【0167】ここで、IDxxは光スペクトラムをサンプ
リングするベクトルを示し、βは対象物の反射率を記述
する斜行列であり、fR,fGおよびfBはCCD光フィ
ルタのスペクトラム応答を示す。これらの等式に基づい
て、D65からD50の下での信号に関して3×3変換
行列を計算することができる。
【0168】
【数44】[R,G,B]D50 T=ID50 T*ID65 -T*[R,
G,B]D65 T
【0169】3×3変換行列
【0170】
【数45】MD=ID50 T*ID65 -T
【0171】は、オフラインで計算することができる。
現実のシステムでは、異なる応答領域について平均を求
めることはほとんど不可能である。したがって、簡単な
解決策は、先の一体化の比において全体の値を計算し、
それらを所定のセンサ測定に基づいて固定値で変更する
ことである。
【0172】
【数46】WBB1=α1*WBB WBB2=α2*WBB
【0173】WBRについても同様である。移行ポイン
トもまた、前もって固定することができる。移行ポイン
トx2いう1つだけの例外がある。稀な状況では、WB
R値は非常に大きくて移行ポイントx 2で最大出力値を
超える。その状況では、WBRが低減される必要がある
か移行ポイントが低減される。図40の図は、この技術
の有効性の例を示す。赤構成要素は、緑構成要素に関し
て調整される。単一の乗数を用いることは、明るい領域
において緑信号を超え、低い光領域において有効ではな
く、一方、区分化されたホワイトバランシングがあらゆ
る強度の緑曲線にマッチする。
【0174】好ましい実施例のサイズ調整 あるサイズ(例えば、320×240画素)で捕獲され
た画像は、様々な蓄積または入出力フォーマットにマッ
チするために頻繁に別のサイズ(例えば、約288×2
16)に変換されなければならない。一般に、これには
有理の因数N/Mによる分数のアップサンプリングまた
はダウンサンプリングが必要とされ、例えば、320×
240から288×216へのサイズ調整は9/10の
サイズ調整である。理論的には、サイズ調整は、Nによ
る何重もの補間と、反折返しフィルタとMによるデシメ
ーションとに相当する。特に、サイズ調整は、M位相の
KタップフィルタリングとM入力当りN出力の選定とで
達成される。例えば、最上の水平線が画素入力を表し、
また、水平長さ−3つの括弧が、指示された3つの入力
に適用されて指示された出力を生成する3タップ・フィ
ルタ核を表わす図41aに図示されるような3タップ・
フィルタを用いる63/64の比でのサイズ調整を前置
きとして考える。実際、フィルタ核は、長さ3−1/6
3の支持で連続する関数f(t)であり、最大3つの入力
を含むことができるものとする。図41bを参照のこ
と。図41aにおいて連続する括弧の右にわずかにシフ
トしていることに留意願いたい。これは、64入力から
63出力へのサイズ調整を表わす。というのも、フィル
タ核の中心(それ故に、概数で表されていない出力位
置)が、63の出力が64の入力にマッチするために、
各出力について1+1/63(=64/63)画素位置
だけ増大しなければならないからである。出力[0]
(図41aにおいて最も左側の括弧によって表される)
が入力の位置で真中に置かれ、また、それでoutp
pos[j]と記される概数で表されていない出力位置j
が1+j*64/63に等しくなる。
【0175】フィルタ核は、時間0で中央に置かれる対
称な連続関数f(t)として表される。例えば出力[0]
は3つの核値f(−1),f(0),f(1)を必要とする。
各出力ポイントは,3つの核係数値の3つの入力画素値
との内積(inner product)として計算される。出力
[j]用の中央入力ポイントはround(outp
os[j])で位置付けられ、ここで、round()は四
捨五入機能である。他の2つの入力ポイントはこの中央
のポイントからの±1だけのオフセットである。中央フ
ィルタ核係数値は、f(round(outp pos
[j])−outp pos[j])であり、他のものは、
この中央値ポイントの±1オフセットでのf()である。
こうして、以下の表が、各出力に必要なの出力位置,係
数核値および入力ポイントを示す。
【0176】
【表1】
【0177】この表は、各出力に関する望ましい係数位
置および入力を示す。j=63の場合は、核の中央が入
力と整列するということでj=0の場合と類似するが、
出力位置および入力インデックスは64だけシフトして
いるということに留意願いたい。j=32では入力パタ
ーンに変化があることに注意し、jが31以下では、出
力[j]は入力j,j+1,j+2を用い、一方、jが3
2以上では、出力[j]は入力j+1,j+2,j+3を
用いる。
【0178】好ましい実施例は、iMX124とDSP
122との間で二次元アレイ(画像)のサイズを調整す
るためにフィルタリング計算を分割し、メモリの使用を
以下のように制限する。最初に、iMX124は、64
バンクの係数で3タップ行フィルタリングを行い、続い
て、64バンクの係数で3タップ列フィルタリングを行
う。まず、行フィルタリングを考慮する。iMX124
での3タップ行フィルタリングは次の入出力関係を有す
る。
【0179】
【表2】
【0180】この表と先の63/64サイズ調整表とを
比べると、唯一の違いは、iMXが一つ余分のポイント
すなわちIPP output[32]を生成するもので
あるということが示されている。このように、好ましい
実施例は、iMX124で64出力ポイントを生成し、
続いて、63有効ポイントを選ぶためにDSP122を
用いる。
【0181】
【数47】output[j]=IPP output[j] j=1,2,…,
31のとき IPP output[j+1] j=32,33,…,62のとき
【0182】一般に、N/Mが1未満のときのN/Mサ
イズ調整は、M出力ごとのM−N出力の削除を含む。こ
うして、好ましい実施例は、一般に、iMXのような加
速器においてM入力ポイントでのフィルタ動作を行い、
続いて、DSPのようなプロセッサを用いて不必要な出
力を廃棄する。(iMXはまた、N/M=3までの1単
位より大きなサイズ調整を取り扱うこともできる。)
【0183】iMXは、3サイクルで3タップ行フィル
タの8出力を生成できる。基本的には、8つの隣り合う
出力は、8MACユニットを用いて並列に計算される。
時間0では、入力ポイント0,1,2,3,...7を
引き出し、適当な係数(各々異なり得る)と乗算して8
つのアキュミュレータに累積する。時間1では、入力ポ
イント1,2,...8を引き出して同じことを行い、
時間2では、入力ポイント2,3,...9を引き出し
て積を累積し、8つの出力j=0,1,...7を書き
出す。続いて、8つの入力ポイントにわたってシフト
し、j=8,9,...15を計算する。垂直方向につ
いては、iMXは8つの出力を同じように並列に計算す
る。これらは、8つの水平に隣接する出力ポイントであ
って、入力アレイのすべてのフェッチも、8つの水平に
隣接する出力ポイントをひと括りにする。したがって、
すべての8MACユニットは、各サイクルについて同じ
係数値を共有する。垂直方向については、iMXでのデ
ータ再使用はより少なく、それで、入出力メモリの衝突
が4サイクル/8出力に計算をスローダウンする。フィ
ルタリング時間の合計は、7サイクル/8出力または出
力当り7/8サイクルである。入力データは、サイズが
320×240×3である。このように、iMXのフィ
ルタリングは、iMXが120MHzで走るときには3
20×240×3×7/8であり、201,600サイ
クルまたは1.7ミリ秒かかる。
【0184】フィルタリングの後に、DSPは正しい出
力を選ぶ。基本的には、64行ごとに1行および64列
ごとに1列が廃棄される。DSPアセンブリ・ループ
は、有効なiMX出力ポイントを別々の出力領域に動か
す。充分なローカル・メモリが双方のためにあるなら
ば、iMXとDSPとは並列して走行する。入力画像全
体は大きすぎてローカル・メモリに入らないように思え
る。自然な選択でさえ、63×63出力ポイントで大き
過ぎる。そのような場合は、幅63×高さ16に画像を
分割して垂直方向に余分な簿記(bookkeeping)を取り
扱う。3×64=192の係数だけであれば、前もって
計算してそれらを記憶するのが経済的である。DSP
は、各処理ブロックの位相の経過を追い、iMXを係数
の正しい開始アドレスに向ける。カラーがインターリー
ブされるならば、これはインターリーブされたフィルタ
リングも可能とする。iMXは入力ポイントを得るのに
ストライド(strides)を取り扱う。以下の表は、イン
ターリーブされた3タップ・フィルタリングを示す。
【0185】
【表3】
【0186】しかしながら、インターリーブするには、
各カラーにつき同じ出力ブロックサイズ用に3倍より多
くメモリを費やす。このように、タスクを各カラー平面
上で63×5のようなより小さなサイズに分割し、ま
た、垂直方向で余分のオーバーヘッドを取り扱うことが
可能である。カラーフォーマットが4:4:4ではなく
(例えば、4:2:2)かつ入力がカラーインターリー
ブされているならば、DSPはカラー平面を分けるのに
更なる時間を費やす必要がある。
【0187】DSP122において全体的にサイズ調整
を行うには、直接分数アドレシングで実行されるなら
ば、時間が費やされる。好ましい実施例は、フィルタ係
数を再オーダーしダミー・ワードで膨らますことを要求
することによって、計算を簡素化する。iMX124
は、DSP122が係数を計算するのと同時に主処理を
行う。これは高スループット・サイズ調整を効率的に実
現する。さらに詳しくは、好ましい実施例は、iMX1
24を用いてM位相のKタップ・フィルタリング(冗長
の出力ポイントを生成する)を行い、また、DSP12
2を用いて正しい出力ポイントを選択することによっ
て、画像のN/Mサイズ調整を行う。また、DSP12
2は、メモリ使用を8*Kに低減するのに、より少ない
サブサンプル係数テンプレートから必要な係数を計算す
る。そうでなければ、2*M*K係数ワードまでのメモ
リ使用が必要となる。DSP122は、係数用のおよそ
の位置を計算し、iMX124用の係数メモリを築き上
げることができる。
【0188】広くて短い画素のブロック(すなわち、1
6×64)を処理するために、水平方向は、水平係数が
垂直係数よりもより頻繁に更新されるという点で、より
多くの計算が必要となる。しかしながら、DSP122
によって構築された係数は、短いブロック内で何度も再
使用することができ、それにより、DSP122上の負
荷は過剰ではない。
【0189】とりわけ、好ましい実施例は、3タップ・
フィルタおよび10から9へのサイズ調整(例えば、3
0フレーム/秒における320×240から288×2
16へのサイズ調整)(4:2:2または4:1:1に
ついて4:4:4にインターリーブされるものとしてサ
イズ調整の後にサブサンプリングを行う)について、図
42aから図42eに図示される以下のステップで進行
する。1.入出力パターンを選ぶ:10入力ごとに図4
2aのとおり9つの出力が導入される。2.処理ユニッ
トについて係数パターンをあるカラーで最初に描く。入
力ポイントを指示する図42bにおける矢印が用いられ
る:結び付けられた矢印は同じ出力ポイントを形成し、
また、灰色(オープン・ヘッド)の矢印はゼロ係数を指
示する。こうして、3つの入力ポイントが第1の出力ポ
イントを決定し、2つの入力ポイントのみが次の8つの
出力ポイントの各々と9番目の無視される出力(非ゼロ
入力ポイントはない)とを決定し、これが10ごとに繰
り返される。このパターンは、多位相3タップ・フィル
タの使用を示唆し、また、10の出力のグループごとに
最後の出力をドロップする。3.インターリーブされた
入出力を考慮する。図42cを参照すると、インターリ
ーブされた10の入力ポイントの3つのグループの組が
示されており、10の入力ポイントの原第1のグループ
から第1の出力ポイントを決定する3つの入力ポイント
が位置1,4,7に現在あり、10の入力ポイントの原
第2のグループから第1の出力ポイントを決定する3つ
の入力ポイントが位置2,5,8に現在あり、10の入
力ポイントの原第3のグループから第1の出力ポイント
を決定する3つの入力ポイントが位置3,6,9に現在
あり、以下同様であるものとされる。このインターリー
ブは、3つの隣接出力ポイントの組がすべての異なる入
力ポイントを用いるとともに同時メモリアクセスを必要
としないということを意味する。4.8重の並列処理と
iMXとを考慮し、必要ならばさらにダミーの出力を加
える。図42dを参照すると、並列計算用の8からなる
4つのグループに分割された出力ポイントが示されてい
る。5.グループ分けされた係数およびオーダーを計算
する。iMXは、左から右へのそして上から下への係数
オーダーを用いて1度に1つのグループを処理し、その
後、次のグループへと進む。係数は同じオーダーに整列
される必要がある。iMX係数メモリとフラッシュメモ
リとがこれらすべての係数を収容できるならば、これら
の係数はDSPコードに一定のデータとして含むことが
でき、また、このステップはソフトウェア開発において
1度に行われる。iMX係数メモリがこれらの係数をず
っと保持することができるがこれらがフラッシュメモリ
においてあまりにも大きな場所を占めるならば、このス
テップはシステムの初期化の間に1度行われる。同様
に、SDRAMはこれらのすべての係数を保持できる
が、iMX係数メモリはそれらをずっと保持できない。
このステップはシステムの初期化において1度行われ、
また、係数画像はSDRAMに記憶される。必要なとき
は、これらの係数はSDRAMから交換される。これら
すべての係数をいかなるときにも記憶するのは望ましく
なく、とりわけ、Mが非常に大きい(100+)とき
は、係数の必要な「ウインドウ」をiMX処理と同時に
DSPで計算する。iMX係数メモリが計算ブロックの
ために必要な係数を保持できることを確認だけするこ
と。6.iMXで計算を始める。この場合、27有効出
力ポイントを生成するのにインナーループで約12サイ
クル掛かる。各iMXコマンドは、2−D出力ブロック
を生成でき、それにより、16×27出力ポイントを生
成するのに約10+16*12=202サイクル掛か
る。7.iMXが行われたとき、DSPに正しい出力ポ
イントを選ばさせる。この例では、276ポイントが3
2出力ポイントの全グループから選ばれる。このタスク
は、出力の幅が3*Mにマッチするかその倍数であるな
らば、符号化するのがより簡単である。DSPは、各有
効出力に1度触れることのみしなければならず、それに
より、DSPのローディングは重要なものとはならない
【0190】垂直サイズ調整では、iMXはSIMDモ
ードで働く。8つの隣接データ入力の各グループが並列
に処理される。係数はサイクルごとに1つの値で用いら
れ、この値はすべてのカラー成分に適応される。サイズ
調整ファクターが水平および垂直で同じであるとして
も、どのようにiMXが係数を用いるかは異なってお
り、それにより、別々の垂直サイズ調整係数記憶である
(それには水平係数の1/3掛かる)必要がある。図4
2eを参照のこと。ここでも、iMXにおけるすべての
垂直係数をスワップ・インおよびスワップ・アウトに保
つか、DSPに休む間もなく計算させるというオプショ
ンがある。DSPは、iMXが処理を完了した後に、有
効出力行を選ぶ必要がある。
【0191】色調スケーリングの好ましい実施例 色調スケーリングは、細部をより明瞭にするために、画
像の輝度信号(または、カラー信号)のダイナミックレ
ンジについて作動する。例えば、逆光でまたは非常に明
るい環境で撮られた写真は、典型的には、高い明るさレ
ベルを有する。色調スケーリングは、通常、図43によ
ってブロック形状で図示される輝度(または、カラー)
ヒストグラム均一化に依存する。実際、コンバータ・ブ
ロック430は、入力輝度レベルを(8ビットについて
は0〜255の範囲において、または、12ビットにつ
いては0〜4095の範囲において)ルックアップ・テ
ーブルを用いて同じ範囲における出力輝度レベルに変換
する。ルックアップ・テーブルは、入力レベルと、ヒス
トグラム均一化ブロック432において以下のように計
算される出力レベルを有する対応出力レベルとのペアで
ある。まず、色調スケーリングが適応される画像の入力
輝度レベルの累積分布関数を求める。すなわち、F(r)
=(レベルがr以下である画素の数)/(画像における
画素の合計数)であるようなF(r)を求める。次に、F
(r)を最大画素レベルと乗算し最も近い整数に四捨五入
することにより、ルックアップ・テーブル関数T(r)を
生成する。そのとき、ルックアップ・テーブルは、s=
T(r)であるレベル(r,s)のペアにすぎない。図4
5は、暗部の細かな細部は認識するのが困難である現像
下の画像(画素の大半は、小さなrについてのT(r)の
大きなスロープによって反射されるので、低レベルを有
する)についてのT(r)を例示する。また、この現像下
の画像については、図45に示されるように、色調スケ
ーリングはレベルr=500をs=2000に変換し、
したがって、色調スケーリングされた画像においては、
輝度レベルの相違が低レベルについては強調され高レベ
ルについては強調されない。こうして、色調スケーリン
グは暗部における細部を強調する。
【0192】しかしながら、色調スケーリングされた画
像は、カラーが明瞭でありすぎて、色調スケーリングさ
れた画像が油絵で描かれたものであるかのように、不自
然に見える。このように、医療やナイト・ビジョンのよ
うな他の応用は不自然ながらも細かい細部を要求するけ
れども、この色調スケーリングは、たとえ細かな細部が
より明瞭であっても、不自然な特徴のために消費者用に
は強すぎるものとなることがある。
【0193】好ましい実施例は、ヒストグラム均等化関
数T(r)と原画像レベルrとの線形組合せを用いること
によって色調スケーリングを提供する。すなわち、0以
上1以下のパラメータαについて、色調スケーリング関
数は次式で定義される。
【0194】
【数48】s=Round(αT(r)+(1−α)r)
【0195】ここで、続くαとの乗算,(1−α)rと
の加算および四捨五入のために、最も近い整数に四捨五
入することがT(r)の定義においては必要でないという
点を除いて、T(r)は先に説明したとおりである。図4
5は、曲線s=T(r)と恒等線s=rとの間のα=0.
3についての好ましい実施例を例示する。
【0196】図44は、機能ブロック形状における好ま
しい実施例の色調スケーリングを示し、ここでも、ブロ
ック442において輝度(または、カラー)レベルにつ
いてヒストグラム均等関数T()を定義し、T()の重みα
とブロック444における恒等式との四捨五入された線
形組合せを定義して、コンバータ440における色調ス
ケーリング用の最終ルックアップ・テーブルを得る。重
みαが0に等しいときは、色調スケーリングはなく見た
目も自然ではないが、重みαが1に等しいときは、色調
スケーリングがT()で行われ細かい細部が強調される。
重みαの値は応用に従って選択できる。計算のすべては
プログラム可能である。
【0197】実施の詳細 先の機能を支援する好ましい実施例のハードウェア構造
は以下のものを含む。
【0198】SDRAMコントローラ SDRAMコントローラ・ブロック110は、SDRA
M110とプロセッサ(ARM130,DSP12
2),CCDコントローラ102,TV符号器106,
プレビュー・エンジン104などのようなすべての機能
ブロックとの間のメイン・インターフェイスとして動作
する。それは80MHzまでのSDRAMタイミングを
支援する。それはまた、連続データ・アクセス用の低オ
ーバーヘッドを提供する。それはまた、CCDデータ入
力およびTV表示データ出力の実時間データストリーム
を支援するためにアクセスユニットを優先付ける能力を
有する。それはまた、外部SDRAM用のパワーダウン
制御を提供する。DSP122は、データ・アクセスが
ない間にSDRAM160のCKE信号を禁止すること
ができる。SDRAMコントローラ・ブロック110
は、16/64/128/256MB・SDRAMと、
32ビット幅または2×16ビット幅SDRAMと、最
大80MHz(例えば、10〜80MHz)動作と、ワ
ード,ハーフ・ワードまたはバイト・アクセス(AR
M)の利用可能性とを支援し、モード設定とパワーダウ
ンおよび自己リフレッシュ・プログラム可能リフレッシ
ュ間隔とをコマンドし、2または3のCAS待ち時間を
選択可能とすることができ、2チップ選択出力(最大S
DRAMサイズが1Gビット)をコマンドし、DMA転
送を許可および管理し、プロセッサとSDRAMとの間
の、CCDデータバッファからSDRAMへの、プレビ
ュー・エンジンからSDRAMへの、バースト圧縮から
SDRAMへのまたはその反対の、SDRAMからビデ
オ符号器への、SDRAMからOSDへの、ARMから
SDRAMへのまたはその反対の、DSP画像バッファ
からSDRAMへのまたはその反対の、データ・フロー
を管理する。図12aはSDRAMコントローラによっ
て管理されるデータ・フローを示す。信号および優先順
位は以下のとおりである。
【0199】
【表4】
【0200】アクセス・ユニットの優先順位表は以下の
とおりである。
【0201】
【表5】
【0202】プレビュー・エンジン 図14は、CCD生データからの4:2:2フォーマッ
トのYCbCrをCCDコントローラ102から画像デ
ータに提供するとともに以下のメイン機能を有する好ま
しい実施例のプレビュー・エンジン104のブロック図
である。RGB・CCDおよび相補(YeCyMgG)
CCDの双方について利用可能である(図7aおよび図
7bがこれらのCCDパターンを示す) デジタル利得調整 ホワイトバランス 垂直および水平ノイズフィルタ 相補CCD用のRGB利得調整 RGBカラー用の独立ガンマ補正 YCbCr−4:2:2でフォーマットされたデータ出
【0203】同期モジュール1402は、画像の開始ポ
イント用の同期信号およびダウンサンプリング用のイネ
ーブル信号のような他のモジュール用の制御信号を生成
する。このモジュールでは、画像処理は行われない。ホ
ワイトバランス・モジュール1404は、CCD生デー
タについてデジタル利得調整およびホワイトバランスを
行う。CFA補間モジュール1406は、水平ノイズフ
ィルタ,水平補間,垂直ノイズフィルタ,垂直補間,ダ
ウンサンプリングなどのような多くの重要なサブモジュ
ールを有する。このモジュールは、CCDモード(RG
B CCDまたは相補CCD)に関係なくRGBフォー
マットされたデータを出力する。相補CCD用のRGB
利得モジュール1408は、相補CCD用のRGBカラ
ー・フォーマットによってホワイトバランスを行う調整
を可能とする。ガンマ補正モジュール1410は、4つ
の線形セグメントを有する近似ガンマ曲線でガンマ補正
を行う。このモジュールは、各カラーについて存在して
RGBへの独立調整を可能とする。RGB2YCbCr
変換モジュール1412は、RGBフォーマットされた
データをYCbCrフォーマットされたデータに変換
し、CbおよびCrのオフセットを調整する。4:2:
2変換モジュール1414は、YCbCr−4:4:4
フォーマットされたデータを2:2:2フォーマットに
変換し、それらを32ビット・データ・バスに出力す
る。SDRAMインターフェイス・モジュール1416
は、SDRAMコントローラ110(図1b)と通信
し、それにYCbCr−4:2:2フォーマットされた
画像データを記憶するように要求する。
【0204】以下にモジュールを説明する。ホワイトバ
ランス・モジュール1404は、CCD生データについ
てデジタル利得調整およびホワイトバランスを行う。デ
ジタル利得は画像の全体明るさを調整し、ホワイトバラ
ンスはCFAパターンで存在するカラーの比を調整す
る。図8は、ホワイトバランス・モジュール1404の
ブロック図である。2つの利得調整のために2つの乗算
器があり、また、回路のサイズを低減するためにクリッ
プ回路がある。この図でPVGAINと名付けられたデ
ジタル利得用の利得値はPVGAINレジスタのデータ
を用い、また、ホワイトバランスはCFAパターン・レ
ジスタを設定することによって自動的に選択される。
【0205】CFA補間モジュール1406は、水平お
よび垂直補間,水平および垂直ノイズフィルタリング,
ダウンサンプリング,カラー調整およびRGBカラー変
換への相補カラー用のサブモジュールを含む。図10a
は、CFA補間モジュール1406のブロック図であ
る。水平ノイズフィルタ・サブモジュール1002は、
3タップ・ローパスフィルタ水平フィルタを行う。図1
0bを参照。水平補間フィルタ・サブモジュール100
4は、2種類のフィルタを用意しており、それらの1つ
を用いて水平に補間する。出力信号「L」および「R」
はライン上の左データおよび右データを意味する。例え
ば、処理されたラインは次のCFAパターンGBGBG
BGBGB...で始まり、出力信号「L」はGであ
り、出力信号「R」はBである。したがって、これらの
2つの出力は各ラインでカラーを変える。水平ダウンサ
ンプリング・サブモジュール1006は、水平デシメー
ション・パターンのレジスタ設定に基づいて有効画素上
のデータのみを出力する。垂直補間サブモジュール10
08は、プレビュー・エンジン・モジュールの外で2つ
のラインメモリ1010を用いて3タップ垂直補間フィ
ルタを処理するとともに、CFAパターンに存在するす
べてのカラーのデータを出力する。そして、このサブモ
ジュールは垂直ノイズフィルタも実行する。カラー選択
サブモジュール1012は、CFAパターンでカラーご
とにデータを抽出するとともに、RGBカラー・フォー
マットされたデータをRGB CCDモードで出力する
か相補カラー・フォーマットされたデータを相補CCD
モードで出力する。この図では、「g」信号は、Gに関
する一時データであり、次のカラー調整サブモジュール
1014においてRおよびBを再計算するのに用いられ
る。カラー・フォーマットされたデータはカラー調整サ
ブモジュール1014でカラー調整処理され、また、そ
の処理はCCDモードによって異なる。垂直補間サブモ
ジュール1008からカラー調整サブモジュール101
4へのこの画像処理は、CCDモードおよび垂直補間モ
ードに依存して強い相関関係を有する。したがって、そ
の処理は、以下で説明される一連の垂直補間処理として
考慮される。Comp2RGB変換サブモジュール10
16は、相補CCDモードにおいて補色フォーマットを
RGBカラー・フォーマットに変換する。RGB CC
Dモードでは、データはこのサブモジュールを迂回す
る。
【0206】以下のセクションはこれらのサブモジュー
ルを説明する。水平ノイズフィルタ1002は、3タッ
プ水平ローパスフィルタを実行し、ランダムノイズを効
率的に低減することができる。実際、データの中心がX
0に設定されるとき、CFAパターンおよびそれの処理
されたラインに依存して以下の計算が実行される。
【0207】
【数49】
【0208】このフィルタのオン/オフ・スイッチング
はレジスタ設定によって制御できる。
【0209】図10bは、水平ノイズフィルタ・サブモ
ジュール1002のブロック図である。2種類のフィル
タが、2つの加算器とこの図で「three taps sw」と
名付けられたスイッチとを用いて実行される。処理ライ
ンに1つのカラーがあるならば、スイッチはオンに設定
される(図においてハイ)。このスイッチは、CFAパ
ターンのレジスタ設定と処理画像のラインの位置とに依
存して自動的に制御される。出力の前に、ノイズフィル
タリングされたデータまたは迂回されたデータがレジス
タ設定によって選択される。
【0210】水平補間サブモジュール1004では、2
つのモードのフィルタリングがあり、水平ノイズフィル
タ1002からのデータは2タップか5タップかのいず
れかの補間フィルタによって水平に補間される。2タッ
プ・フィルタは、中央のデータを補間するために、左お
よび右の隣接画素での2つのデータの平均を用いる。こ
のモードは「単純モード」と呼ばれる。5タップ水平補
間フィルタは、処理画像におけるエッジの周りの誤りカ
ラーを効率的に低減することができるように、処理ライ
ン上で別のカラーの情報を使用する。このモードは「通
常モード」と呼ばれる。これらのモードはレジスタ設定
によって選択可能である。実際、データの中央がX0
設定されるとき、補間モードに依存して以下の計算が実
行される。
【0211】
【数50】
【0212】図10cは、RGBバイエルCCDモード
におけるこの水平補間処理の一例を示す。この図におい
て、補間されるデータは小文字によって表されている。
【0213】図10dは、水平補間モジュール1004
のブロック図である。2つの加算器,1つの減算器およ
びフィルタ・モード・スイッチが、これら2種類のフィ
ルタの1つを実行するために実現される。フィルタ・モ
ード・スイッチは、レジスタを設定することによって制
御される。
【0214】垂直補間サブモジュール1008は、プレ
ビュー・エンジン・モジュールの外の2つのラインメモ
リを用いて2タップか3タップかのいずれかの垂直補間
フィルタを処理し、CFAパターンに存在するすべての
カラーの情報を出力する。そして、このサブモジュール
は垂直ノイズフィルタも実行する。このモジュールにお
ける画像処理は少し複雑であり、このサブモジュールか
らの出力は処理ライン,CCDモード,CFAパター
ン,フィルタ・モードおよびノイズフィルタ・オン/オ
フによって変化する。以下で説明されるように、垂直補
間サブモジュール1008からカラー調整サブモジュー
ル1014までの画像処理は強い相関関係を有してお
り、それらのこの処理フローは一連の垂直補間処理と考
えられる。したがって、この一連の垂直補間処理がまず
説明される。そのシーケンスは「垂直補間シーケンス」
と呼ばれる。
【0215】水平補間のように、垂直補間処理も、2種
類の補間モードすなわち「単純モード」と「通常モー
ド」とを有する。単純モードにおける補間フィルタは、
上および下の隣の画素での2つのデータの平均を使用し
てデータの中央を補間する。通常モードでは、処理はR
GB CCDモードと相補CCDモードとの間で異な
る。RGB CCDモードにおける通常モードでの補間
フィルタは、水平補間フィルタと同じ他のカラーの1つ
のデータを使用する。実際、補間されるべきあるカラー
のデータがX(主に、R,B)に設定されるとともに基
準として用いられるカラーのデータがY(主に、G)に
設定されるとき、この垂直補間シーケンスを通して補間
モードに依存して以下の計算が実行され、そして、それ
はカラー調整サブモジュールからの出力である。
【0216】
【数51】
【0217】図10eは、RGBバイエルCCDパター
ンについてのこの垂直補間シーケンスの一例を示す。
【0218】相補CCDモードでは、通常モードとは
「カラー調整のある単純補間」を意味する。すなわち、
単純垂直補間によって処理されるすべてのカラーのデー
タが、補色空間における公式に基づいて調整される。実
際、補間されるべきあるカラーのデータがXに設定さ
れ、他のカラーのデータがW,YおよびZに設定される
とき、相補CCDモードにおける通常モードでは以下の
計算が実行される。
【0219】
【数52】
【0220】a=a(w0,x0,y0,z0)の計算について
は、以下を参照のこと。
【0221】この垂直補間シーケンスでは、垂直補間サ
ブモジュール1008の主な役割は垂直補間シーケンス
の一部および垂直ノイズフィルタを実行することであ
る。垂直補間シーケンスの一部とは通常の垂直補間モー
ド用のデータを準備することを意味する。図10eおよ
び図10bに示されるように(それぞれRGBおよび相
補CCDパターンについて)、単純モードでは、この垂
直補間サブモジュールの出力データはカラー調整サブモ
ジュールを迂回する。したがって、単純モードでは、こ
のサブモジュールからの出力が垂直補間シーケンスの出
力として用いられる。補間モードのいずれの場合におい
ても、このサブモードは垂直補間シーケンスについて以
下の等式を計算する。
【0222】
【数53】X0=(X-1−X1)/2
【0223】次の3タップ垂直ローパスフィルタを実行
する垂直ノイズフィルタはまた、CFAパターンに依存
してこのサブモジュールで処理される。
【0224】
【数54】X0=(X-1−2X0−X1)4
【0225】しかしながら、このフィルタリングについ
て、処理される3つのライン上の同じカラーのデータが
準備されなければならない。したがって、垂直ノイズフ
ィルタの機能は、主に、RGBバイエルCCDにおいて
Gのみを実行する。図10gは、RGBバイエルCCD
についてのこの垂直補間サブモジュールの出力の一例を
示す。垂直ノイズフィルタが適用できてかつそれがオン
に設定されるとき、原データ(この図ではR)も、他の
カラー(この図ではG)との相関関係を保つために調整
される。
【0226】図10hは、垂直補間サブモジュール10
08のブロック図である。垂直補間およびノイズフィル
タリングを実行するために、6つの加算器と2つの減算
器とが実現される。特に、L 121およびR 121
の計算処理は非常に複雑であって、L 121およびR
121用のスイッチング動作はこの図を単純化するた
めに示されていない。カラー選択サブモジュール101
2は、カラー・フォーマットのオーダーに、すなわち、
RGB CCDモードにおいてはR,GおよびBに、相
補CCDモードにおいてはYe,Cy,Mg,Gに、垂
直補間サブモジュールからの入力を整列する。この整列
はCFAパターンのレジスタを設定することによって自
動的に実行される。図10iは、図10gのRGBバイ
エルCCDにおけるこのカラー選択処理の一例を示す。
この図において「g」と名付けられた出力は、Gの一時
データであって、カラー調整サブモジュールにおけるR
GB CCDモードでのRまたはBの再計算のために用
いられる。
【0227】図10jは、カラー選択サブモジュール1
012のブロック図である。4つのカラー抽出器が、垂
直補間サブモジュール1008からの4つの入力から正
しいカラーに独立して切り替えて選択する。カラー調整
サブモジュール1014は垂直補間シーケンスについて
の残りの計算を行う。RGBバイエルCCDのようなR
GB CCDモードでは、RまたはBはGの一時データ
を用いて再び計算される。カラー選択サブモジュールか
らのRまたはBのデータがXに設定されるとき、RGB
CCDモードにおいて以下の計算が行われる。
【0228】
【数55】x=X−Gtemp+G
【0229】図10iの例では、ノイズフィルタがオフ
であるとき、
【0230】
【数56】X=(b02−b22)/2 Gtemp=(G02+G22)/2 G=g12 したがって、 x=B =(b02−b22)/2−(G02+G22)/2+g12 =((b02−G02)+(b22−G22))/2+g12
【0231】これは、カラー調整モジュールの出力Bで
あり、また、垂直補間シーケンスの出力でもある。すな
わち、RGB CCDモードにおける垂直補間シーケン
スは、補間されるべきカラーのデータと他のカラーの基
準データとの間の差の平均を用いる。
【0232】相補CCDモジュールでは、カラー調整は
カラー選択サブモジュールからのすべてのデータに対し
て処理される。まず、値aが、相補カラー空間における
公式Ye+Cy=G+Mgに基づいて各画素で計算され
る。
【0233】
【数57】a=G+Mg−Ye−Cy
【0234】すなわち、値aは4つのカラーのエラー値
の量と考えることができる。したがって、相補CCDモ
ードでは、すべてのカラーYe,Cy,Mg,Gに対し
て上記公式を満たすために、以下の調整が処理される。
【0235】
【数58】ye=Ye+a/4 cy=Cy+a/4 g=G−a/4 mg=Mg−a/4
【0236】図10kは、カラー調整サブモジュール1
014のブロック図である。上述した2種類の計算を行
うために、6つの加算器と3つの減算器とが実現され
る。この図において、CCDMODと名付けられたスイ
ッチャーが、CCDモードに依存して正しい出力を選択
し、レジスタを設定することによって制御される。
【0237】comp2RGB変換サブモジュール10
16は、相補CCDモードでは相補カラー・フォーマッ
トされたデータをRGBフォーマットされたデータに変
換する。特に、Gについては、カラー調整からのデータ
および変換公式によって計算されるデータは、5種類の
混合比で混合することができる。実際、以下の計算が変
換公式に基づいて行われる。
【0238】
【数59】R=Ye−Cy+Mg G=rGinput+(1−r)(Ye+Cy−Mg) (r=0,1/4,2/4,3/4,1) B=Mg−Ye+Cy
【0239】RGB CCDモードでは、カラー調整サ
ブモジュールからのデータはこのサブモジュールを迂回
する。
【0240】図10lは、comp2RGB変換サブモ
ジュール1016のブロック図である。上の計算を行う
ために、3つの加算器と3つの減算器と2つの乗算器と
が実現される。この図において「green_ratio」と名づ
けられたGについての利得調整器はレジスタを設定する
ことによって調整可能である。RGB CCDモードで
は、CCDMODスイッチャ−は、このモジュールを迂
回するためにオフ(この図ではハイ)を選択する。相補
CCDモジュールについてのRGB利得は、相補CCD
モジュールのためでさえあるRGBカラー・フォーマッ
トによってホワイトバランスの調整を可能とする。この
モジュールはRGB CCDモードにおいても利用でき
る。
【0241】図9aは、相補ホワイトバランス・モジュ
ール1408のブロック図である。この動作のために、
1つの乗算器とクリップ回路とが実現される。RGBに
ついての各利得がレジスタによって設定される。ガンマ
補正モジュール1410は、RGBカラー・フォーマッ
トで各カラー・データについてガンマ補正を行う。この
動作のために、4つの線形セグメントでガンマ曲線を近
似するために、前もって3種類のデータを用意する。こ
れらは、図9bに示される領域,オフセットおよび利得
である。図14に示されるように、このモジュールは、
RGBへの独立調整が行われるように、各カラーについ
て存在する。図9cは、ガンマ補正モジュール1410
のブロック図である。領域検出器は、領域データに基づ
いて入力データ用の正しい利得およびオフセットを選択
する。利得,オフセットおよび領域に関するデータは3
つのレジスタで設定される。
【0242】RGB2YCbCr変換モジュール141
2は、RGBフォーマットされたデータをYCbCrフ
ォーマットされたデータに変換し、以下の行列計算に基
づいてCbおよびCrに対してオフセットを調整する。
【0243】
【数60】
【0244】この行列の各係数は、この変換用の可変設
定が利用できるように、レジスタで設定される。
【0245】図11は、このRGB2YCbCr変換モ
ジュール1412のブロック図である。前述した行列計
算のために、9つの乗算器と5つの加算器とが実現され
る。RGBデータを係数と乗算した後に、乗算器からの
各データの最も重要でない6つのビットが、回路のサイ
ズを低減するために、カットされる。CbおよびCrに
ついては、オフセット調整用の更なる回路に、YCbC
r変換回路が続けられる。CbおよびCr用のクリップ
回路には、2者の相補からオフセット・バイナリへの変
換回路が含まれる。
【0246】バースト・モード圧縮/圧縮解除エンジン 好ましい実施例のDSCエンジンには、通常の捕獲モー
ドと比較して画像の解像度において妥協のない、リアル
タイム処理を行う改良されたバースト捕獲機能が含まれ
る。バースト捕獲モードは、増大されたバースト捕獲シ
ーケンス長用の専用の圧縮および圧縮解除エンジン10
8を使用するものである。CCD生画像フレームのシー
ケンスが、圧縮エンジン108を用いて、SDRAM1
60にまず記憶される。その後、オフライン処理とし
て、通常の捕獲モードの画像パイプラインが、CCD生
画像をSDRAM160から検索し、それらを連続して
処理し、最後にそれらをJPEGファイルとしてSDR
AMに記憶し直す。動画再生モードはこれらのJPEG
ファイルを表示することができる。
【0247】バースト・モード圧縮/圧縮解除エンジン
108は、差分パルス符号変調(DPCM)と、ベース
ラインJPEG圧縮におけるDC係数のエントロピー符
号化と同じ表を用いたハフマン(Huffman)符号
化とを含む。エンジン108は、クロミナンスDC差分
データ用のJPEG基準におけるサンプル・ハフマン表
を用いる。エンジン108は、図13に例示される逆変
換も提供する。固定ハフマン表(クロミナンスDC係数
用のJPEGハフマン表)を以下に示す。
【0248】
【表6】
【0249】符号器は4つのルックアップ・テーブルを
有する。すなわち、ハフマン符号(13×2バイト・エ
ントリ)とハフマン符号長表(13×1バイト・エント
リ)と可変長ビットストリームを生成する低ビット・マ
スク(32×4バイト・エントリ)とログ・テーブル
(256×1バイト・エントリ)とである。ハフマン表
は、簡略化のためプログラム可能ではないが、代わりの
実施例はプログラム可能ハフマン表を含むこともでき
る。
【0250】ハフマン復号器は、ハフマン符号器の逆関
数を行い、5つのルックアップ・テーブルを有する。す
なわち、最大符号比較表(13×2バイト・エントリ)
と最小符号比較表(13×2バイト・エントリ)と復号
化ハフマン符号ポインタ(13×1バイト・エントリ)
と復号化ハフマン符号表(13×1バイト・エントリ)
とビット位置マスク(32×4バイト・エントリ)とで
ある。損失のあるモード圧縮は、各係数の最も重要でな
いビット(LSB)または2つの最も重要でないビット
を単に廃棄する。
【0251】再生同期 オーディオ・ビジュアル・ビットストリームを再生する
上での問題は、オーディオをビデオ信号といかにして同
期させるかということである。好ましい実施例は、リア
ルタイムでバックグラウンドにおいて継ぎ目なくオーデ
ィオ・ビットストリームを再生するが、オーディオはI
TU−TG.711およびマイクロソフト16ビットP
CMのような簡単な符号化標準を用いて符号化されてい
る。中断サービス・ルーチンを用いることによって、D
SP源の約0.1%が(マルチチャンネルの)バッファ
されたシリアルポートを通してリアルタイムでオーディ
オを出力するのに十分である。図1bを参照のこと。し
たがって、好ましい実施例は、オーディオ再生に同期し
てビデオ復号化を実現しなければならない。明瞭化のた
め、オーディオおよびビデオの双方が最高スピードで
(オーディオについては8Kサンプル/秒およびビデオ
については30フレーム/秒のリアルタイムで)捕獲さ
れるとする。オーディオはサンプルとして再生される。
しかしながら、ビデオはフレームの粒子において表示さ
れる。こうして、同期の問題が、ビデオ復号化がリアル
タイム要請よりも早いか遅いかという事実によって引き
起こされる。ビデオ復号化が早すぎるならば、ある量の
遅延スロットが挿入されて、復号化をスローダウンしな
ければならない。反対に、ビデオ復号化が遅過ぎるなら
ば、リアルタイム・オーディオ再生に追いつくように、
いくつかのビデオ・フレームがスキップされなければな
らない。
【0252】好ましい実施例は双方の場合を取り扱う。
特に、遅いビデオ復号化の場合には、好ましい実施例は
最適なやり方でフレームを適切に選択およびスキップす
ることができる。好ましい実施例は、2方向符号化フレ
ーム(Bフレーム)なしのビデオ・ビットストリームに
ついて説明されることに注意すること。図46aは、オ
ーディオとビデオとの間の同期を図示する。最初のビデ
オ・フレームは、オーディオ・ビデオ再生を始める前に
予め復号化される。ビデオはフレームの粒子において表
示されるので、同期ポイントはビデオ・フレーム境界す
なわち{t=0,ΔT,2ΔT,3ΔT...}に位置
する。ここで、ΔTはフレームの期間であり、それは次
式で定義される。
【0253】
【数61】
【0254】ここで、fpは、ビデオ・シーケンスに用
いられるフレーム速度である。
【0255】ビデオ復号化スピードが十分に速くないと
き、オーディオおよびビデオは同期を失い得る。図46
aに例示される通り、ビデオ・フレーム2の復号化が時
間内で終わらない(Td2>ΔT)とき、オーディオ・
ビデオ再生は、ビデオ・フレーム1を表示した後に、同
期を失う。ここで、{Tdm,m=0,1,
2,...}は、ビデオ・フレームmを復号するのに用
いられる復号化時間を示す。ビデオの再生スピードが十
分でないとき、オーディオとビデオとの間の適切な同期
を維持する唯一の方法はビデオ・フレームを適当にスキ
ップすることである。図46bにおいて、ビデオ・フレ
ーム2は、同期がフレーム3で再び得ることができるよ
うに、スキップされる(かつ、フレーム1は繰り返され
る)。
【0256】好ましい実施例の循環バッファ構成が図4
7に例示されている。ビデオ復号器は、循環バッファの
一方の側に接続され、ディスプレイが他方の側に接続さ
れる。循環バッファは、サイズNのビデオ・フレームを
有する。循環バッファの各フレーム・バッファに関連す
る2つのレジスタがある。すなわち、バッファnに記憶
されるビデオ・フレームの推定表示時間を指示するTP
n(n=0,1,2,3,...,N−1)を含む第1
のレジスタと、バッファnにおけるフレームが表示のた
めの用意ができているかどうかを信号で知らせる(準備
できているときは1,準備できていないときは0)Sn
(n=0,1,2,3,...,N−1)を含む第2の
レジスタとである。もちろん、TPnの値はΔTの倍数
である。ディスプレイ用のバッファスイッチングもフレ
ームの境界(すなわち、時間t=mΔT,m=0,1,
2,...)で生じる。好ましい実施例はNフレームを
含む循環バッファを用いるので、すべてのインデックス
(...,n−1,n,n+1,...)はモジュロN
インデックスとみなされる。現在のビデオ・フレームを
復号化した後の時間がTであるとする。復号化された現
在のフレームは図47のバッファn−1に記憶される。
したがって、図47の次のフレームを記憶するのに用い
られるバッファはバッファnである。
【0257】ビットストリームにおける現在の位置を決
定する。現在復号化されているフレームのフレーム・イ
ンデックスmは次式のように定義される。
【0258】
【数62】
【0259】次のフレームの復号開始時間を決定する。
バッファnにおけるフレームは{TP n以上TPn+1以下
のt}の時間間隔の間表示されることになるので、バッ
ファnはTPn+1まで次のフレームを復号化するのに利
用できない。したがって、次のフレームTsの復号化開
始時間は、次式で表わされる。
【0260】
【数63】
【0261】復号化されるべき次のフレームを決定す
る。
【外1】 を次のフレームを復号するための見積り時間であるとす
ると、次のフレームの表示時間は次式を満足しなければ
ならない。
【0262】
【数64】
【0263】上記の条件は、次のフレームの復号化がそ
れの表示時間の前に終わることを意味し、また、次のフ
レームは、少なくともビットストリームにある現在のフ
レームの後のフレームに位置する。TPnはΔTの倍数
でなければならないので、オーディオに同期できる次の
フレームは、次の条件を満たす。
【0264】
【数65】
【0265】ここで、[・]は、切り捨てによる整数部
分を示す。
【0266】したがって、次のフレームの表示時間は、
次式によって決定される。
【数66】
【0267】
【外2】 を見積もるために、先の復号化またはフレーム・パラメ
ータに基づいた統計的な見積りのような異なる方法があ
る。ある好ましい実施例は、単純に、同じ写真符号化タ
イプ(IフレームまたはPフレーム)の最も新しく符号
化されたフレームの実際の復号化時間+次のフレームに
ついての見積り復号化時間としてある量の安全マージン
を用いる。
【0268】こうして、復号されるべき次のフレームの
フレーム・インデックスm’は、次式のように計算する
ことができる。
【0269】
【数67】
【0270】続いて、現在の位置からスキップされるべ
きフレームの数Δmが、次式によって決定される。
【0271】
【数68】
【0272】式(2)から式(6)は、環状バッファを
更新するための基礎制御動作を構成する。
【0273】好ましい実施例は、同期を実現するのに環
状バッファ構成を用いる。2つの部分(すなわち、ビデ
オ復号器バッファスイッチ制御およびディスプレイバッ
ファスイッチ制御)がある。図48は、ビデオ復号器バ
ッファスイッチ制御のフローチャートを示しており、そ
れは2つの段階(すなわち、初期化および再生)を含
む。
【0274】初期化:循環バッファの初期化では、Nf
(Nfは1以上でN以下)のビデオ・フレームが再生を
開始する前に復号される。図48にダッシュ線の囲みで
示されるように、初期化には4つのステップがある。・
ステップ0:すべての表示時間レジスタ{TPn,n=
0,1,2,3,...,N−1}および状態レジスタ
{Sn,n=0,1,2,3,...,N−1}をゼロ
に設定し、ビデオ復号器をバッファ0(すなわち、n=
0)に切り替え、ビデオ・ビットストリームの始まりを
指し示し(すなわち、m’=Δm=0)、時間をゼロに
設定する(すなわち、t=0)。 ・ステップ1:関連する状態レジスタSnを1に設定
し、Δmビデオ・フレームをスキップし、フレームm’
を復号し、バッファnに復号されたフレームを記憶す
る。(ループを通る最初の経路でn=0,m’=0を呼
び戻し、それで最初のフレームが復号されてバッファ0
に記憶される。) ・ステップ2:復号化開始時間Tsをtに設定し、次の
バッファ(すなわち、n++)に切り替え、式(4),
(5),(6)に従ってTPn,m’,Δmを更新す
る。 ・ステップ3:復号フレームの数が前もって設定された
フレームの数Nfに到達したかどうかをチェックする。
そうであるならば再生に移り、そうでなければステップ
1に戻る。
【0275】再生:再生の間に循環バッファを更新する
のに、6つのステップが含まれる。 ・ステップ0:ディスプレイをバッファ0に切り替え、
ディスプレイをイネーブルし、時間を0にリセット(す
なわち、t=T=0)し、ビデオ復号器をバッファNf
(すなわち、n=Nf)に切り替える。 ・ステップ1:全ビデオ・シーケンスが復号されるなら
ば、復号をやめるか、さもなければステップ2に移る。 ・ステップ2:式(3),(4),(5),(6)に従
ってTs,TPn,m’およびΔmを更新する。 ・ステップ3:時間がTs(すなわち、Tsはt以下)
に到達するまで待機し、ステップ4に移る。 ・ステップ4:関係する状態レジスタSnを0に設定
し、Δmビデオ・フレームをスキップし、フレームm’
を復号し、復号されたフレームをバッファnに記憶す
る。 ・ステップ5:フレーム復号化が時間内で終わるならば
(すなわち、t<TPn)、Snを1に設定して、復号フ
レームがディスプレイする準備のできていることを指示
し、Tをtに設定し、ビデオ復号器を次のバッファ(す
なわち、n++)に切り替える。さもなければ、Tをt
に設定し、DTを見積もられた
【外3】 に加え(すなわち、
【外4】 +=DT(DT=NdΔT)、次の段階で意図的にもう
d(Ndは0以上)だけのフレームをスキップし)、現
在のフレーム・インデックスmをm’に設定する。ステ
ップ1に移る。Ndは同期を再開する前に画面がフリー
ズする時間を制御するためのパラメータであることに留
意願いたい。
【0276】ユーザーは、環状バッファ・サイズ(N)
と再生用の初期遅延時間(Nf)と画面フリーズ時間
(Nd)とを自由に決定できる。明らかに、最小バッフ
ァ・サイズは3ビデオ・フレーム(すなわち、N=3)
であり、最も小さな遅延時間は1ビデオ・フレーム(す
なわち、Nf=1)である。しかしながら、ビデオ復号
スピードが不充分な場合には、循環バッファ初期化の間
にN−1フレーム(すなわち、Nf=N−1)を復号する
ことが強く推奨される結果、ビデオ復号器がオーディオ
実時間再生に追いつくために最大の余地を得ることがで
きる。
【0277】ディスプレイバッファスイッチ制御:ディ
スプレイバッファ制御がビデオ復号器バッファスイッチ
と並列に実行される。好ましい実施例は、ディスプレイ
バッファスイッチをビデオ・フレーム境界でチェックす
る。t=mΔT,m=0,1,2,...。ディスプレ
イがバッファn−1におけるビデオ・フレームを現在示
しているとすると、現在時間(TPn以上のt)および
(Sn=1)が保たれればかつ保たれさえすれば、それ
は次のバッファすなわちバッファnに切り替わる。そう
でなければ、それはバッファn−1に接続される。ここ
で、(tがTPn以上)かつ(Sn=0)ならば、それ
は、復号器が時間内でフレームの復号を終えられなかっ
たことを意味する。この場合、バッファnにおけるビデ
オ・フレームは廃棄されており、復号器は、バッファn
を再度更新するために、内輪で選択された次のフレーム
を復号しており、ディスプレイは、(tがTPn以上)
および(Sn=1)が成り立つまで、バッファn−1に
おけるフレームを表示し続ける。要するに、好ましい実
施例は、ソフトウェアまたはファームウェアを用いて再
生するときオーディオとビデオとの間の同期を実現する
一方法を提供する。
【0278】可変長復号 可変長復号(VLD)は、符号器で可変長符号(VL
C)を用いて生成される復号ビットストリームに含まれ
ている。図1bのアイテム126を参照のこと。VLC
のために、符号化ユニットに用いられるビットの数がユ
ニットごとに変わる。したがって、復号器は、それを復
号するまで符号ユニットに用いられるビットの数が分か
らない。これにより、復号器が復号処理の間にビットス
トリーム・バッファを用いることが不可欠になる。ビデ
オの符号化では、例えば、符号化されるべきフレームは
一組のマクロブロックに分解される(図49を参照)。
最も小さなメモリ要件を考慮するとき、ここでの符号化
ユニットは、通常、マクロブロックとして定義される。
それは、16×16画素輝度領域と、クロマ・フォーマ
ット(4:2:0,4:2:2または4:4:4)に依
存する対応クロミナンス領域とからなる。確かに、スラ
イス(フレームにおけるマクロブロックの行)またはフ
レームそれ自体さえも、充分なメモリがあるならば、符
号化ユニットとして取り扱うことができる。
【0279】図50は、好ましい実施例のデジタルスチ
ルカメラ(DSC)でのビデオ再生を示す。DSC応用
では、ビデオ・ビットストリームは、前もって捕獲さ
れ、高容量SDRAMに記憶され、また、ビデオ復号器
がDSP上に築かれる。復号器がSDRAMに直接アク
セスするのは極端に高価であるので、オンチップ・ビッ
トストリーム・バッファがDSP内部メモリで開放され
る。ビットストリームは、まず、SDRAMからビット
ストリーム・バッファにSDRAMを通ってローディン
グされ、その後、復号器は、ビットストリーム・バッフ
ァにおけるビットストリームを用いてビデオを再構築す
る。CPUの介入なしでバックグラウンドにおいて走行
できるDMA(直接メモリ・アクセス)を用いてビット
ストリーム・ローディングが達成されるため、ビットス
トリーム・ローディング・オーバーヘッドは、主に、D
MA転送用のレジスタをセットアップするのに用いられ
る時間に起因するものとなる。
【0280】ビットストリーム・バッファの管理に関し
ては、2つの基礎的要件がある。第1に、バッファ・サ
イズは最悪の場合をカバーするのに充分な大きさである
こと。例えば、ビデオの符号化では、マクロブロックを
符号化するための理論上の最大ビット数は256ワード
であり得る(ここでの1ワードは2バイトとして定義さ
れる)。この最悪の場合は非常にまれではあるけれど
も、安全サイドにあるためには、ビットストリーム・バ
ッファ・サイズは256ワードでなければならない。第
2に、ビットストリーム・バッファは決してアンダーフ
ローしてはならない。すなわち、バッファ管理は、符号
化ユニット用のビットストリームが復号されるときそれ
が利用可能であることが保証されなければならない。
【0281】2番目の要件を満足するために、異なる構
成がある。最も簡単なものは、各バッファ・アクセスで
ビットストリーム・バッファにおける復号位置をチェッ
クするというものである。ビットストリーム・バッファ
は、復号位置が有効バッファ範囲の外にあるときはいつ
でも、再充填される。復号化はビットごとの動作である
ので、この構成は現実的ではなく、それはバッファをい
つ充填するのかを決めるのにオーバーヘッドを費やし過
ぎる。現実的な構成は、図51aに示されるような線形
シフト・バッファ方式である。この方式では、ビットス
トリーム・バッファは復号器によって左から右へと線形
にアクセスされ、また、ユニットを復号した後は、ビッ
トストリームの残りはバッファの始めに前方にシフトさ
れ、その後、バッファは次のユニットを復号する前に
「フル」に再充填される。図51aにおいて、Psおよ
びPdは、ビットストリーム・バッファにおける現在の
復号位置およびビットストリーム最終位置をそれぞれ示
す。このバッファ方式は2つの不利益を有する。第1
に、バッファ・サイズが復号ユニットのビットの平均数
よりも大き過ぎるので、ビットストリーム・シフトに多
くの時間が費やされる。例えば、ビデオ復号では、バッ
ファ・サイズは最悪の場合をカバーするのに256ワー
ドであるが、平均すると、ユニットは16ワードしか使
っておらず、これは各ユニットについて約240ワード
のシフトがあることを意味する。第2の不利益は、各ユ
ニットを復号した後にビットストリームのローディング
を必要とするというものであり、DMA転送を発するの
に時間を費やさなければならないので、これには更なる
オーバーヘッドが費やされる。
【0282】より良いバッファ管理方式は、図51bに
示されるようないわゆる擬似循環バッファ方式である。
この方式では、復号器はビットストリーム・バッファを
循環してアクセスする。これにより、線形バッファ方式
に必要とされるビットストリーム・シフトは避けられ
る。ユニットを復号した後に2つの場合がある。この最
初の場合は図51bの左手部分のものであり、ビットス
トリームの残りがバッファの真中に位置する。この場合
には、バッファはビットストリームを2回ローディング
することによって充填され、1回は右端用で、それに続
いてもう1回が左端をローディングするためである。
(注意:ビットストリーム・ローディングがビットスト
リームをビットストリーム・バッファに循環して書き込
むことができるならば、1回のみのローディングが必要
である。しかしながら、いつもこのような場合ではな
い。)第2の場合は、図51bの右手部分に示されてお
り、そこではバッファの真中のみを充填する必要があ
る。擬似環状バッファ方式は、ビットストリーム・シフ
トを避けることができるので線形シフティング・バッフ
ァよりもより効率的であるが、各ユニットを復号した後
に1つまたは2つのビットストリーム負荷が必要となる
という不利益をなおも被る。以下の好ましい実施例のハ
イブリッド環状二重バッファ方式はこの問題を解決す
る。
【0283】図52の状態0は、サイズの等しい2つの
バッファ(すなわち、左バッファおよび右バッファ)を
含むハイブリッド環状二重バッファを示す。各バッファ
には、バッファ充満(「フル」/「非フル」)を指示す
るフラッグがある。Psは、ユニットを復号した後の現
在の復号位置を指し示す。バッファ・サイズについて
は、各バッファは符号化ユニットを復号する最悪の場合
をカバーし、これによって、ハイブリッド・バッファ・
サイズが線形シフティング・バッファまたは擬似環状バ
ッファの2倍になっている。伝統的な2重バッファとは
異なり、ここの2つのバッファは、連続するメモリ割当
てを有する。すなわち、左バッファがメモリ・マップに
おいて右バッファに直接続けられている。復号器は、環
状にハイブリッド・バッファにアクセスする。
【0284】好ましい実施例のハイブリッド・バッファ
は、以下の4つの状態を通って動作する。 ・状態0:初期化状態であって、左バッファおよび右バ
ッファの双方が完全にローディングされて「フル」に設
定され、Psはハイブリッド・バッファの開始を指し示
す。 ・状態1:第1のユニットを復号した後に、左バッファ
・フラッグを「非フル」に変更する。 ・状態2:ユニットを復号した後に、現在の復号位置P
sが右バッファにあり、かつ、左バッファ・フラッグが
「非フル」であるならば、左バッファを完全にローディ
ングして、左バッファ・フラッグを「フル」に設定す
る。また、右バッファ・フラッグが「フル」であるなら
ば、それを「非フル」に変更する。そうでなければ、何
の動作もとられない。 ・状態3:ユニットを復号した後に、現在の復号位置P
sが左バッファにあり、かつ、右バッファ・フラッグが
「非フル」であるならば、右バッファを完全にローディ
ングして、右バッファ・フラッグを「フル」に設定す
る。左バッファ・フラッグが「フル」であるならば、そ
れを「非フル」に変更する。そうでなければ、何の動作
もとられない。好ましい実施例のプラットフォーム(例
えば、図1b)を例(ここで、データは16ビット・ユ
ニットにある)として挙げて、以下のデータ種類を定義
する。
【0285】
【表7】
【0286】表1に示される擬似符号はハイブリッド環
状二重バッファ方式を説明する。バッファ初期化機
能()は復号の開始時に一度だけ呼ばれ、一方、ビット
ストリーム・バッファ更新機能()は各符号化ユニット
を復号した後に呼ばれ、それは、条件が真になるなら
ば、バッファ・フラッグを自動的に更新し、バッファを
再ローディングする。表1において、BUFSIZEは
ハイブリッド環状二重バッファのバッファ・サイズを表
す。
【0287】
【表8】
【0288】表1におけるBitstreamBufferUpdate()に
見ることができるように、左バッファまたは右バッファ
は、各ユニットを復号した後に再ローディングされない
が、反対バッファ(左/右)が用いられていて、かつ、
それのバッファ・フラッグが「非フル」でありさえすれ
ば、ローディングされる。これはバッファ負荷の数を大
きく低減する。ビデオ符号化を一例として考える。これ
は、マクロブロックがユニットであって、ユニットの平
均ビットストリーム・サイズが16ワードであるとする
ならば、512ワードのBUFSIZEを必要とする。線形シ
フティング・バッファおよび擬似環状バッファが各ユニ
ットを復号した後にバッファを再充填するので、これら
の2つの方式の平均ローディング長も16ワードであ
る。ハイブリッド環状二重バッファ方式における256
ワードの固定ローディング長と比較して、好ましい実施
例は約16のファクターでローディング・オーバーヘッ
ドを低減する(すなわち、256/16)。
【0289】ミニ実験をして、上述した3つのバッファ
方式を比較した。使われたビデオ・シーケンスは、コー
ストガード(352×288,300フレーム、4:
2:0)であった。ビットストリームはMPEG1ビデ
オ符号器を用いて生成されている。目標ビット速度は3
メガビット/秒,Iフレームのみである。3つの異なる
バッファ方式の同じ復号器が同じビットストリームを復
号するために用いられ、バッファ・ローディング・カウ
ントおよびワード・シフティング・カウントが復号化の
間に記録される。3つのバッファ方式の間の性能の比較
が表2に列挙されている。表2に示されるとおり、各マ
クロ・ブロックについて、線形シフティング・バッファ
方式は、1つのバッファ負荷と、平均で約240ワード
のシフティングとを必要とする。擬似環状バッファ方式
は、わずかに多くのバッファ負荷を必要とするが(1.
06負荷/マクロブロック)、シフティングを必要とし
ない。好ましい実施例のハイブリッド環状二重バッファ
方式は、マクロブロック当り約0.0619バッファ負
荷だけを用いた。特に、図1bの好ましい実施例のプラ
ットフォームでは、好ましい実施例の方式は、線形シフ
ティング・バッファ方式および擬似環状バッファ方式と
比較して約113および17のサイクル・カウント低減
比をそれぞれ提供する。
【0290】
【表9】
【0291】画面上表示およびグラフィック加速 画面上表示(OSD)モジュール105は、異なるOS
DウインドウからのOSDデータを管理する責任があ
り、また、それをビデオと混合する。それは、OSDデ
ータをSDRAM160から読み出し、NTSC/PA
L符号器106に出力する。OSDモジュールはスタン
バイ・モジュールにデフォルトし、そこでは、それはビ
デオをNTSC/PAL符号器106に単純に送る。A
RM CPU130によって構成され活性化された後
に、OSDモジュールはOSDデータを読み出して、そ
れをビデオ出力と混合する。ARM CPU130は、
OSD動作をオン/オフするとともにOSDデータをS
DRAMに書き込む責任がある。図15は、OSDモジ
ュールのブロック図および関係する他のアイテムを示
す。OSDの様々な機能が、以下の段落で説明される。
【0292】OSDデータ記憶。OSDデータは様々な
サイズを有する。ビットマップ・ウインドウでは、各画
素は1,2,4または8ビット幅であり得る。YCrC
b4:2:2ウインドウでは、それは成分当り8ビット
を取り、その成分は4:2:2(Cb/Y/Cr/
Y...)フォーマットに従って配列される。RGBグ
ラフィック・データがOSDとして用いられる必要があ
る場合には、アプリケーションは、それを記憶する前に
Y/Cr/Cbへのソフトウェア変換を行う。OSDデ
ータは、常に、32ビット・ワードにパックされ、正し
いままとされる。OSDウインドウの左上角から始め
て、すべてのデータは隣接32ビット・ワードにパック
される。
【0293】OSDウインドウを設定する。OSDウイ
ンドウはそれの属性によって定義される。ウインドウ用
のOSDデータをARM CPU130によってSDR
AMに記憶することに加えて、アプリケーション・プロ
グラムも、以下のサブセクションで説明される通り、ウ
インドウ属性およびOSDモジュールにおける他の設定
を更新する必要がある。
【0294】位置レジスタ。位置レジスタは各ウインド
ウの左上角および右下角のXおよびYの位置を含む。ア
プリケーション・プログラムは、CAMを設定し、選択
されたOSDウインドウをイネーブルする必要がある。
図16を参照。
【0295】カラー・ルックアップ・テーブル。OSD
は固定256エントリ・カラー・ルックアップ・テーブ
ル(CLUT)を有する。CLUTはビットマップ・デ
ータをY/Cr/Cb成分に変換するのに用いられる。
1,2または4ビットマップ画素の場合には、CLUT
はCLUTレジスタによって決定することができる。
【0296】混合および透明性。画素レベルでのカラー
混合がまた支援される。この特徴はビットマップ表示の
ためだけに利用できる(ウインドウ1,2)。ウインド
ウ・カラー混合がイネーブルされるならば、各画素の混
合量は混合ファクターによって決定される。以下の表に
示される通り、ウインドウ混合は、選択された混合ファ
クターに従って5つの異なるレベルを支援する。ハード
ウェアはビットマップで透明性モードを支援する。透明
性がイネーブルされるならば、0の値を有するビットマ
ップ表示上のいかなる画素も、ビデオが表示されること
を可能とする。本質的に、0の値の画素は、透明なカラ
ー(すなわち、背景カラーがビットマップを通して示さ
れる)と考えられる。表には、同じウインドウ上の透明
性と混合との間の接続が示されている。
【0297】
【表10】
【0298】ハードウェア・カーソル。長方形がハード
ウェア・ウインドウ1を用いて提供される。ウインドウ
1では、カーソルは,常に,他のOSDウインドウ上に
現れる。ユーザは、その形のサイズおよびカラーを特定
できる。ハードウェア・ウインドウ1がカーソルとして
指定されるとき、2つのウインドウのみがOSDアプリ
ケーションに利用できる。ハードウェア・カーソルが用
いられないならば、アプリケーションはウインドウ1を
通常のハードウェア・ウインドウとして用いることがで
きる。図17は、ハードウェア・カーソルの一例を示
す。
【0299】DSPサブシステム DSPサブシステムは、C54xDSPと、ローカルメ
モリ・ブロックと、iMXおよびVLC加速器と、共有
される画像バッファと、共有を実行する乗算器とからな
る。C54xは、高性能,低電力および市場で証明され
たDSPである。C54x用のcDSPハードウェアお
よびソフトウェア開発ツールも非常に円熟している。D
SPは、オート露光,オートフォーカスおよびオートホ
ワイトバランシング(AE/AF/AWB)と画像パイ
プライン・タスクの一部とを実行する。それはまた、S
DRAM転送を取り扱い、加速器を駆動して画像処理の
残りおよび画像圧縮タスクを実行する。DSPにおける
プログラミングの柔軟性および簡易性により、カメラ製
造業者が、画像処理フローを洗練させ、品質および性能
のトレードオフを調整し、カメラに更なる特徴を導入す
ることが可能となる。
【0300】適合性のあるDSP(cDSP)設計フロ
ーは、柔軟性および設計再使用を可能とするように採用
される。DSPと加速器との間でタイム・シェアリング
されるメモリ・ブロックは、1つの処理ユニット(16
×16画素)のために十分大きく、また、DSPへのゼ
ロ待機状態アクセスを提供する。 特徴 固定小数点デジタル信号プロセッサ 100MIPsLEAD2.0CPU オンモジュールRAM32K×16ビット (4ブロックの8K×16ビット二重アクセス・プログ
ラム/データRAM) マルチチャンネルバッファされたシリアルポート(Mc
BSPs) ARMは拡張8ビット・ホスト・ポート・インターフェ
ースを介してRAMにアクセスすることができる。 1つのハードウェア・タイマー オンチップ・プログラム可能PLL ソフトウェア・プログラム可能待機状態生成器 スキャン・ベース・エミュレーションおよびJTAG境
界スキャン・ロジック
【0301】図18aは、DSPサブシステムについて
の更なる詳細、特に、DSPとiMXおよびVLCとの
間の接続の詳細を示す。図18bは、メモリ・マップで
ある。共有されたメモリ・ブロックA,Bは、DSPの
データ・メモリ空間上で2つの2Kワード・バンクを占
める。各ブロックは、DSPによって制御される状態ス
イッチングに依存してDSP,iMX,VCLおよびS
DRAMコントローラによってアクセスすることができ
る。ダイナミックなサイクルごとのメモリ仲裁は計画さ
れない。DSPのプログラムは、ゼロ待機状態外部メモ
リ・インターフェースを通してこれらのメモリ・ブロッ
クの継ぎ目のないアクセスを得る。iMX係数,iMX
コマンド,VLC Q行列およびVLCハフマン表用の
構成メモリ・ブロックもDSPの外部メモリ・インター
フェースに接続する。それらはまた、特定のモジュール
とDSPとの間で静的に切り替えられる。典型的には、
パワーアップでまたはカメラ動作モードの初期の段階
で、これらのメモリ・ブロックはDSP側に切り替えら
れ、DSPが動作のために適切な構成情報を設定するこ
とができるものとなっている。その後、それらは、動作
の期間中にiMXおよびVLCに切り替えられる。
【0302】イメージング拡張(iMX) iMX(イメージング拡張)は、プログラム可能なDS
Pの画像処理性能を拡張するための柔軟な制御およびメ
モリ・インターフェースをもつ並列MACエンジンであ
る。iMXは、柔軟性,メモリ使用およびプログラミン
グの簡易性が達成されるように、DSPプロセッサを備
えた共有メモリ構成において良好に作動するものと考え
られる。そのアーキテクチャは、一般の1−Dおよび2
−D FIRフィルタリング,アレイ・スケーリング/
付加,(カラー空間変換用の)行列乗算,クリッピング
および閾値動作をカバーする。デジタルスチルカメラで
は、iMXは、以下のものをスピードアップするのに用
いることができる。 CFA補間 カラー空間変換 クロマ・ダウンサンプリング エッジ強調 カラー抑制 DCTおよびIDCT テーブル・ルックアップ
【0303】iMX方法論は、並列処理および高性能コ
ンピュータ・アーキテクチャの研究から生じている。設
計は、スケーラブルMACエンジンの必要性を含む。第
1の好ましい実施例におけるiMXは4つのMACユニ
ットを組み込んでいる。図19を参照。代替の好ましい
実施例は8以上のMACユニットにグレードアップして
いる。ソフトウェアは、ハードウェア・グレードアップ
が実質的なソフトウェア変更を生じないように、構成す
ることができる。iMXの大きな柔軟性は、パラメータ
起動アドレス生成およびルーピング制御によるものであ
る。全体の効率は、iMX内の効率的なパイプライン制
御およびシステム・レベル・メモリ・バッファリング方
式から生じている。iMXはブロック・ベース処理のた
めに最もよく作動する。これを容易とするために、デー
タパスはデータ入出力および係数メモリに接続する必要
がある。iMXは、データ入力ポート,データ出力ポー
トおよび係数メモリ・ポートを含み、また、これらのポ
ート間の仲裁を可能とする。これは、専用メモリ・ブロ
ックの必要性を削除し、システムレベルに更なる柔軟性
とより良いメモリ使用とをもたらす。これらのメモリ・
ブロックは、データ交換を容易とするために、DSPデ
ータ・メモリとしてアクセス可能である。iMXにコマ
ンド復号ユニットを送出する別のコマンド・メモリがあ
る。そのコマンド・メモリが、自らの基準画像パイプラ
イン・アルゴリズムにおいて、すべての加速されたステ
ップに適合するよう指定され、このコマンドのシーケン
スがDSPからの介入をほとんどなしに実行することが
できるものとされる。
【0304】iMXブロック図が図20に示されてい
る。コマンド復号サブブロックは、コマンドを読み出し
復号し、また、静的パラメータをコマンド当り一組だけ
アドレス生成器に押しやる。その後、アドレス生成器
は、ルーピング変数およびデータ/係数/出力ポインタ
を計算し、サイクルごとのパイプライン制御を取り扱う
実行制御と整合する。アドレス生成器は、データおよび
係数読出し要求をアービタ(arbiter)に送る。アービ
タはその要求をデータ/係数メモリに転送する。メモリ
から読み戻されたデータは入力フォーマッタに行き、そ
れはデータの整列および複製を行う。その後、フォーマ
ットされたデータおよび係数はデータパスに提供され、
それは、主として、4つのMACユニットからなる。デ
ータパスからの出力は、メモリ書込み用のアービタへの
経路をたどる。iMXは、共有メモリを介して(データ
入力,係数,データ出力,コマンドのために)およびメ
モリ・マップされたレジスタ(開始コマンド,終了状
態)を介してDSPと通信する。すべてのデータ・バッ
ファおよびメモリ・ブロックは、シングル・ポートであ
り、オンライン仲裁よりもむしろ静的制御を介して1つ
のものから別のものへと切り替えられる。
【0305】典型的な応用では、DSPは、フィルタ係
数,DCT/IDCTコサイン定数およびルックアップ
・テーブルを係数メモリに置き、また、iMXコマンド
をコマンド・メモリに置く。その後、DSPはこれらの
メモリ・ブロックへのアクセスをiMXに引き渡す。こ
れらのメモリ・ブロックは、主要なカメラ動作モード
(例えば、画像捕獲)のために必要なすべての係数およ
びコマンドに適合するために、基準設計に適切なサイズ
とされる。いかなる更新/再ローディングも非常に低い
頻度で起こるべきである。いずれかのまたは双方のメモ
リ・ブロックの空間がなくなる場合には、ページングを
行うことができる。DSPは、iMXに1つのデータ・
バッファだけがあるように、スイッチ・ネットワークを
管理する。走行時間の間、DSPは、A/Bバッファを
それ自体,iMX,VLXおよびSDRAMコントロー
ラの間で切り替えて、データの受け渡しを実行した。図
21は、DSP上の画像パイプラインをスピードアップ
するのに用いられる入力切上げ/クリッピング能力を備
えた単純テーブル・ルックアップ加速器を図示する。こ
れは非常に単純な制御構造およびデータパスで実行され
る。
【0306】VLCエンジン VLC加速器は、JPEG圧縮およびMPEG圧縮の場
面における量子化およびハフマン符号化のために最適化
されたコプロセッサである。それは、DSPによってプ
レローディングされた量子化行列およびハフマン表で共
有メモリ・ブロックを介して動作する。設計における積
極的なパイプラインは、圧縮用の3千万のDCT係数を
超える非常に高いスループット速度を達成する。量子化
行列,ハフマン表およびデータ入出力メモリを含むVL
Cの作動メモリはすべて共有メモリ・ブロックである。
【0307】VLC機能性 基本的に、VLCは、量子化,ジグザグ・スキャンおよ
びJPEG符号用のハフマン符号(ベースラインDC
T,8ビット・サンプル)を4つまでの量子化行列(in
vq[i, j]=216/q[i, j])およびすべてローディング
可能な2つの符号化ハフマン表でカバーする。10ブロ
ックまでを含む1つのMCUを処理することができる。
各ブロックは8×8=64サンプルからなる。量子化,
ジグザグ・スキャンおよびMPEG−1ビデオ符号化用
のハフマン符号化。6つまでの8×8ブロックで1つの
マクロブロックを処理することができる。ブロックの数
およびそれらの中の輝度ブロック数を指定することがで
きる。ハフマン符号化は、量子化されジグザグに順位付
けられたレベルを生成するのに迂回することができる。
加速器は、入出力バッファ,量子化行列およびハフマン
符号化表用のメモリ・ブロックを要求する。メモリ構成
は、通常の符号化動作,1つのJPEG MCU(最小
符号化ユニット)または呼出し当りのMPEGマクロブ
ロックを支援するのに十分なものである。
【0308】入力および出力の双方は2Kワード(1ワ
ード=16ビット)共有メモリ・バッファ(Aまたは
B)に適合しなければならない。MCUまたはマクロブ
ロックは、最大10の8×8ブロックまたは640入力
ワードを有する。圧縮された出力データは、典型的に
は、入力サイズよりも小さい。JPEGハフマン符号化
表は、表当り(12×176)×32ビットまたは38
4ワードを費やす。JPEG標準は、2つの表を可能と
し、合計で768メモリ・ワードを費やす。MPEG表
は、VLCに回路接続され、メモリを費やさない。ハフ
マン表には2Kワードを割り当てている。16ビットに
よる512ワードの量子化行列メモリは、各々が64×
16ビットを費やす8つの量子化行列が同時に存在する
ことを可能とする。JPEGは、4つの行列を可能と
し、MPEG符号化は2つの行列を必要とする。図22
はVLCの主なサブブロックを示す。符号化経路のみが
1つの好ましい実施例のVLCモジュールで実現され、
代替の好ましい実施例では、復号化経路はモジュールに
組み込まれる。
【0309】ARMサブシステム ARMマイクロプロセッサ130は、システムレベル初
期化,構成,ユーザ・インターフェース,ユーザコマン
ド実行,接続性機能および全体のシステム制御を取り扱
う。ARM130は、大きなメモリ空間,より良いコン
テクスト切替え能力を有しており、それにより、DSP
122よりも複雑な処理,マルチ・タスキング処理およ
び一般の処理に適当である。好ましい実施例は、ARM
7cTDMIコアを一体化する。図1bを参照。ARM
7コアは少なくとも40MHzまで指定される。ARM
サブシステムはまた、32Kバイト・ローカル・スタテ
ィックRAM132を有する。ARMプロセッサ130
は、CCDコントローラ,TV符号器,プレビュー・エ
ンジン,IrDA,USB,コンパクトフラッシュ(登
録商標)/スマートメディア,UARTなどを含むすべ
てのDSC周辺機器に接続される。
【0310】ARMプロセッサ130は、SDRAMお
よびLCDNへのCCD入力生データおよび中間データ
の管理をする。すべてのI/Oデバイスに接続されて、
ARMは、USB,IrDA,コンパクトフラッシュ/
スマートメディアおよびUARTSのようなスマートデ
バイスを管理し、それらに対して責任がある。PREV
IEW,CAPTURE,PLAYBACKおよびBU
RSTの4つの基礎動作モードはARMからの要求によ
って開始される。その後、ARMは、その要求を完了す
るためにデバイスをモニタし、場合によっては、その要
求が完了した後にデータを管理する。RESETの後で
かついかなるカメラ動作が起こり得る前に、ARMはい
くつかのハウスキーピング・タスクを行わなければなら
ない。最初のタスクはBOOT動作タスクとして知られ
ている。この機能はI/Oおよび周辺機器を周知の状態
に初期化するだけではなく、それはまたDSP122を
用意しローディングし開始しなければならない。このシ
ーケンスは、フラッシュからDSPブート符号を読み出
し、DSP符号メモリをローディングし、続いてそれの
HOLD状態からDSPを放出することによって、開始
する。更なるDSP符号があるフォーマットでSDRA
Mにロードされ、その後、DSPは、ARM介入なしに
それの符号空間を読み出しオーバーレイすることができ
る。
【0311】ARM SDRAMインターフェース ARMは、(1)SDRAMバッファ(バースト読出し
/書込み)を通して、(2)より長い待機時間−4サイ
クルREAD,6サイクルWRITEでのSDRAMへ
の直接アクセスという、SDRAMへの2種類のアクセ
スを有する。メモリへの直接アクセスはワード,半ワー
ドまたはバイト・アクセスであり得る。ARM/SDR
AMコントローラ・インターフェースはまた、32バイ
トのバッファを有する。SDRAMバースト要求は最初
にこのバッファを充填し、ARMはこのバッファからの
読出しとそれへの書込みとを行う。
【0312】ARM外部メモリ・インターフェース ARM130は、外部メモリ・インターフェース・モジ
ュールを通して外部メモリに接続する。ARM130
は、このインターフェースを通してコンパクトフラッシ
ュ/スマートメディアに接続する。ARM130はま
た、このインターフェースを通してオフチップのフラッ
シュメモリに接続する。DMAブロック(図1b)は、
ARMをCF/スマートメディア転送に高める。
【0313】ARM/DSP BOOTシーケンス DSP BOOTシーケンスは電源立上げの後かCOL
D STARTの後に開始する。この状態で、DSP1
22は、ARM130からの初期化を待機するHOLD
状態にある。ARMは、DSP状態レジスタをチェック
して、DSPがHOLD状態にあることを確認する。A
RMは、DSPブート符号データをFLASHからのD
SP符号メモリにプログラムする。その符号は、必要と
される機能のために適当な符号(この場合には、BOO
T符号)をARMが選択するのを可能とする論理オーバ
ーレイにおいて整理される。ARMは、HPIブリッジ
(HPIB)インターフェースを用いてDSP符号をロ
ーディングする。このインターフェースは、8ビット幅
か16ビット幅でアクセスするようにプログラムでき
る。BOOTの目的のために、これは常に16ビット・
アクセスである。符号がロードされた後に、ARMは、
DSPに信号を送ってHOLDを開放することによって
開始させる。その後、DSPは、DSP RESETベ
クトル領域にあるDSP 7F80hのアドレスからそ
れのリセット・シーケンスを開始する。RESETシー
ケンスを完了すると、DSPは、ARMによってロード
されたBOOTプログラムの開始であるDSP FF8
0hに分岐する。図23aは、ARM/DSPブート・
シーケンスで用いられるデータパスと、後述されるデー
タ,要求およびコマンド交換とを示す。
【0314】捕獲モード ARM130は、画像を捕獲するようにCCDコントロ
ーラ102をプログラムする。CCDコントローラは、
画像データをSDRAMに自動的に転送し、その転送が
完了したときにIRQ1を用いてARMを中断する。そ
の後、ARMは、生映像データがクランチするのに利用
可能であるということをDSPに通知する。生データの
処理が完了したとき、DSPは、タスクが終了されたと
いう信号をARMに送る。
【0315】プレビュー・モード CCDは、30fpsの高フレーム速度用にプログラム
されているが、垂直の解像度が低減されている。CCD
およびTG(タイミング生成器)の再構成は、生映像デ
ータをプレビュー・エンジン104に行かせる。DSP
は、SDRAMにおいてデータを後処理し、FOCU
S,EXPOSUREおよびWHITEBALANCE
用のパラメータを用意する。ARMは、新しい調整パラ
メータが準備できるとともにこれらの補正がARMによ
って適用されるときに、DSPによって信号で知らされ
る。補正パラメータの転送は、前述したのと同じ通信中
断アーキテクチャを用い、また、現在のフレーム速度で
あることが期待される。
【0316】バースト・モード バースト・モード・タイミングは、アプリケーション・
パラメータからの映像速度をクロックするARMに基づ
く。捕獲モードとプレビュー・モードとの間の交差と同
様に、ARMは、圧縮エンジンを通してSDRAMに圧
縮画像を記憶する捕獲のためにCCDをプログラムす
る。プレビュー・モードと同様に、ARMは、DSPか
ら調整パラメータを受け取ってFOCUS,EXPOS
UREおよびWHITE BALANCEの補正を行
う。
【0317】アイドル・モード ARMは、アイドル・モードを用いて、他のカメラ・モ
ードに先行する間にDSPから補正パラメータを受け取
る。電源ダウン状態になければ、10〜15フレームの
この時間は、DSPからARMへの補正ループがFOC
US,EXPOSUREおよびWHITE BALAN
CEについて自動補正を行うことを可能とする。このア
イドル・モードは、安定した補正を得るという目的でプ
レビュー・モードをシミュレーションする。
【0318】ARM/DSPコミュニケーション ARM130とDSP122との間の通信は、HPIB
(ホスト・ポート・インターフェース・ブリッジ)を介
する。HPIBは、DSP(C5409タイプのDS
P)ポートとBUSC(BUSコントローラ)134と
を物理的に接続する。ARMは、HPIBをプログラム
するとともにDSPメモリ・マップに32kワード・ウ
インドウを開けることによって、DSPメモリにアクセ
スする。マップは、コマンド要求,アクノリッジおよび
データグラム(datagram)のためにARMおよびDSP
によって共有されるデータ構造を含む。HPIBは5つ
のサブブロックを含む。それらは、インターフェース
と、タイミング生成器と、DSP制御レジスタと、中断
保持セクションとである。インターフェース・セクショ
ンは、BUSC134からのデータを受信して記憶し、
それをC5409におよびそこから転送する。このイン
ターフェースは、C5409への8ビットまたは16ビ
ット・データパスであり得、また、BUSCへの16ビ
ットである。付加された特徴は、そのようにプログラム
されるならば、上部バイトおよび下部バイトを交換する
能力である。タイミング生成器は、信号HBILおよび
信号HDSを作り、信号HRDYを検出する。HBIL
はC5409へのHPIバイト識別信号である。HDS
はC5409へのデータ・ストローブ信号であり、HR
DYはC5409から読み出されたレディ信号である。
中断保持セクションは、HINTレベルを検出し、IN
TCパルスをARMクロックと同期させる。モジュール
はまた、C5409のHOLDポートを設定し、HOL
DAを検出する。
【0319】8ビット・モードでは、ARMからのアド
レス・データはC5409に到達しない。アドレスは、
C5409内部メモリが選択されていさえすれば、用い
られる。したがって、ARMは、32KワードDARA
Mにデータを送るか受け取るかする前にHPIAレジス
タにアドレスを設定しなければならない。8ビット・モ
ードはまた、ARMとDSPとの間のハンドシェーキン
グのために用いられる。ARMは、HPICレジスタに
おけるHINTビットを用いてC5409を中断する。
16ビット・モードでは、HPIA/HPIC/HPI
Dは用いられない。ARMは、あたかもそれがHPIB
モジュールに存在するかのように、C5409内部メモ
リにアクセスできる。このモードは、より速いパフォー
マンスを行うが、HANDSHAKE信号はHPICレ
ジスタに経路付けられているのでHANDSHAKE信
号を支援しない。
【0320】図23bは、ARMがC5409DARA
Mに到達する信号および経路を示す。図23cは、AR
M(HOST)とC5409プロセッサとの間の共有メ
モリ・マップを示す。ARMがメモリ領域「DSPメモ
リ」を選択するとき、BUSCは、cs hpib信号
をアクティブにする。ここで、ARMはDSP内部メモ
リ(32kワードDARAM+HPIA+HPIC+H
PID)にアクセスすることができる。ARMが、「D
SPコントローラ」領域を選択するとき、BUSCはc
dspc信号をアクティブにする。ここで、ARM
は、C5409に関係するレジスタにアクセスしてい
る。
【0321】多重処理デバギング環境 好ましい実施例は、ARM130とDSP122したが
って多重処理を一体化し、それにより、デバギングおよ
び開発支援を必要とする。好ましい実施例は、図24に
例示される付加的なエミュレーション論理を備えた一つ
のJTAGコネクタ170でこれを達成する。
【0322】入力/出力モジュール 入力/出力モジュールは、以下のようにDSC周辺機器
に異なるインターフェースを提供する。TV符号器10
6は、LCDディスプレイおよびTV用のNTSC/P
ALおよびRGB出力を生成する。CCD/CMOSコ
ントローラ102は、タイミング信号VD/HDを生成
し、外部で生成されたHD/VD信号(MODESET
レジスタの#0、SYNCENレジスタの#0)につい
て同期し、プログレッシブ・スキャンおよびインターレ
ースCCDを支援し、ブラック・クランピング制御信
号,プログラム可能なculingパターン(9CUL
H,CULVレジスタ),1ライン/2ライン交代フィ
ールド,(CCDモジュールによって生成される)MC
LKを生成し、WEN(TG上のWRQ、アクティブ−
ハイ)は、SDRAMにデータを書き込むCCDコント
ローラを指示し、TGシリアル・ポート・インターフェ
ースはGIOピンによって制御され、アイリス,機械シ
ャッター,焦点およびズームはGIOピンによって制御
される。
【0323】プログラマーの視野からのUSB142
は、3つの主要部分(FIFOコントローラ,UDCコ
ントローラおよびUDCコア)からなる。USB構成:
INTERFACED0 ALT0 ENDPOINT
0: CONTROL; INTERFACE0 AL
T0 ENDPOINT1: BULKIN; INT
ERFACE0 ALT0 ENDPOINT1: B
ULKOUT; INTERFACE1 ALT0 E
NDPOINT2: ISOIN; INTERFAC
E2 ALT0 ENDPOINT3: INTERR
UPT IN。バッファ構成:SUBモジュールは6つ
のFIFOを内部に有する。各FIFOは、方向および
バッファ・サイズを除いて、同じ構造である。USBモ
ジュールは、すべての終点についてひとつだけの統一メ
モリを有する。バッファ・サイズは、すべてのバッファ
がメモリ内部に設けられている限り、プログラム可能で
ある。
【0324】I/Oブロック140のUART部は、ス
タート/ストップ通信プロトコルを支援し、(偶数,奇
数パリティまたはパリティなしで7または8ビットのお
よび1または2ストップ・ビットのデータ長を支援す
る)パリティ・エラーを検出し、送信機および受信機の
双方用のFIFOの32バイトを有し、FIFOオーバ
ーフロー用の中断を生成するかタイムアウトがデータ受
信で検出される。ARM130はUARTモジュールを
制御する。ARM130からアクセス可能な7つの16
ビット幅レジスタがある。データ送信機/受信機レジス
タ(FIFO)と、ビット速度レジスタと、モード・レ
ジスタと、受信機用FIFO制御レジスタと、送信機用
FIFO制御レジスタと、ライン制御レジスタと、状態
レジスタとである。図25はブロック図である。
【0325】コンパクトフラッシュ/スマートメディア
・インターフェース180は、画像またはユーザのデー
タをコンパクトフラッシュカードまたはスマートメディ
アに保存/記憶するのに用いられる。図26参照。イン
ターフェースは、レジスタ設定およびデータ転送用の2
種類の動作モードを支援する。すなわち、メモリ・マッ
プド・モードとI/Oモードとである。コンパクトフラ
ッシュカードがプラグに差し込まれつつあるかプラグか
ら抜かれつつあるかする間、ARM130中断がカード
検出のために生成される。スマートメディアおよびコン
パクトフラッシュ制御インターフェースの双方用のピン
は、オーバーラップされ、製品ニーズに依存してARM
130によって切り替えることができる。図26を参
照。特に、コンパクトフラッシュコントローラは、AR
Mメモリ空間にマップされたレジスタを有する。コンパ
クトフラッシュコントローラは、インターフェースピン
に関連制御信号を生成する責務があり、420KB/秒
で書き込み、2.0MB/秒で読み出す。SDRAMは
少なくとも1つの映像を記憶するのに使用することがで
き、また、DOSマシーンで行われるように大きなセク
タ・カウントでコンパクトフラッシュへの書込みを試み
ることは高速書込みパフォーマンスを引き起こす。反対
に、スマートメディアコントローラは5つのレジスタ設
定を有する。すなわち、コマンドレジスタと、アドレス
1レジスタと、アドレス2レジスタと、アドレス3レジ
スタと、データポートレジスタとである。これらの5つ
のレジスタはARMメモリ空間にマップされ、また、ス
マートメディアコントローラは異なるレジスタアクセス
用の関連信号を自動的に生成する。
【0326】オーディオ入力/出力は、DSPバッファ
リングを備えたI/Oブロック140のシリアル・ポー
トを通る。赤外データ・アクセス(IrDA)は高速F
IRコアとI/Oブロック140の一部とによって支援
される。ブロック140はまた、AGC利得および電子
シャッターを調整するためのCCD/CMOSイメージ
ャ・モジュール制御,RTC制御,適切なシステム応答
のためにARMに内部中断を生成できるバッテリー電源
検出,焦点およびズーム用のカメラレンズモーター制
御,ユーザキーパッド入力,LEDインディケータ,フ
ラッシュライト制御および電源管理制御のようなアイテ
ムを支援できる汎用入力/出力を含む。
【0327】iMXプログラミング DSP122は、iMX124を指示して、iMXコマ
ンドを送ることによってタスクを行わせる。これらのコ
マンドは、理解するのが複雑で、内部ループに固定され
る多くのパラメータを含む。ダイヤルモデルが別々のコ
マンド構成およびコマンド転送経路をDSPプログラマ
ーに提供し、その結果、コマンドがループ外に前もって
構築され、一般データメモリがループ内で動くときにi
MXに転送される。通常用いられるiMXコマンドは、
C符号に前もってパッケージされており、プログラミン
グを容易としている。
【0328】ARM/DSPタスク割り当て ARM130は、ウインドウズCEのようなオペレーテ
ィングシステムを走らせ、(コンパクトフラッシュカー
ド(CFC)へのような)低周波数,同期入力/出力を
制御するとともに、やはり低速であるユーザ交流を制御
し、また、すべての周辺モジュールは、プレビュー・エ
ンジン,バーストモード圧縮,TV符号器,CCDコン
トローラ,USB,CF,IrDAなどを制御する。D
SP122は、SPOXのようなオペレーティングシス
テムを走らせ、すべてのリアルタイム機能(オートフォ
ーカス,オート露光,オートホワイトバランス),リア
ルタイム入力/出力(オーディオIO,モデムIO),
リアルタイムアプリケーション(例えば、オーディオプ
レイヤー),コンピュータを使用する高価な信号処理タ
スク(画像パイプライン,JPEG2000,画像の縫
合)を制御する。
【0329】集積回路チップのピンの説明 好ましい実施例のピンは以下の通りである。
【0330】
【表11】 CCDセンサ ピン総数:16 1.C PCLK (I) 画素クロック 2.C VSYNC (I/O) 垂直同期 3.C HSYNC (I/O) 水平同期 4.C FIELD (I/O) フィールドインディケータ 5.C WEN (I) CCDC書込みイネーブル 6:17.C DATA (I) 画像データ12ビット SDRAMインターフェース ピン総数:58 1.SDR CLK (O) マスタークロック 2.SDR CKE (O) クロックイネーブル 3.SDR WE (O) 書込みイネーブル 4.SDR CAS (O) 列アドレスストローブ 5.SDR RAS (O) 生アドレスストローブ 6.SDR CS0 (O) RAMの支援2pc 7.SDR CS1 (O) RAMの支援4pc 8:39.DQ[31:0] (I/O) データバス 40:54.SDR A[14:0] (O) アドレスバス 55.SDR DQMHH (O) DQ[31:24]用のDQMH 56.SDR DQMHL (O) DQ[23:16]用のDQMH 57.SDR DQMLH (O) DQ[15:8]用のDQMH 58.SDR DQMLL (O) DQ[7:0]用のDQMH ARMバス ピン総数:39 1:23.ARM A[22:0] (O) アドレスバス 24:39.ARM D[15:0] (O) データバス オーディオインターフェース ピン総数:6 1.DSP BDX (O) シリアルポート送信 2.DSP BCLKX (I/O) 送信クロック 3.DSP BFSX (I/O) フレーム同期パルス 4.DSP BDR (I) シリアルデータ受信 5.DSP BCLKR (I) 受信クロック 6.DSP BFSR (I) フレーム同期パルス受信 外部フラッシュインターフェース ピン総数:5 1.FLSH WE (O) 書込みイネーブル 2.FLSH CE (O) チップ選択 3.FLSH OE (O) 出力イネーブル 4.FLSH SIZE (I) 8ビット/16ビット選択 5.FLSH BSY (I) ビジー入力 USB(T.B.D) ピン総数:10 1.M48XO (O) 48MHzクロック出力 2.M48XI (I) 48MHzクロック入力 3.USB DP (I/O) 差分データ+ 4.USB DM (I/O) 差分データ− 5.ATTACH (I) 付着検出 UART ピン総数:5 1.RXD (I) UART RX 2.TXD (O) UART TX 3.ERXD (I) 外部CPU用のUART Rx 4.ETXD (O) 外部CPU用のUART TX 5.SIFDO (O) シリアルI/Fデータ出力 IrDA ピン総数:2 1.IRXD (I) IrDA RX 2.ITXD (O) IrDA TX コンパクトフラッシュ ピン総数:9 1.CFE1 (O) カードイネーブル#1 2.CFE2 (O) カードイネーブル#2 3.IOIS16 (O) I/O選択 4.STSCHG (I/O) 状態変化 5.CFWAIT (I) 待機信号入力 6.CFRST (O) リセット 7.CFD1 (I) カード検出ピン#1 8.CFD2 (I) カード検出ピン#2 9.CFRDY (I) レディ TV/RGB DACアナログ出力 ピン総数:27 1.IREF(R) (I) R−ch電流基準制御 2.DAOUT(R) (O) アナログ出力R−ch 3.GNDA アナログGND 4.VCCA アナログVCC 5.BIAS (I) 位相補償cap.R−ch 6.VREF (I) RGB共通基準電圧 7.IREF(G) (I) G−ch電流基準制御 8.DAOUT(G) (O) アナログ出力G−ch 9.GNDA アナログGND 10.VCCA アナログVCC 11.BIAS (I) 位相補償cap.G−ch 12.IREF(B) (I) B−ch電流基準制御 13.DAOUT(B) (O) アナログ出力B−ch 14.GNDA アナログGND 15.VCCA アナログVCC 16.BIAS (I) 位相補償cap.B−ch 17.IREF(C) (I) コンポジット電流基準制御 18.DAOUT(C) (O) アナログ出力コンポジット 19.GNDA アナログGND 20.VCCA アナログVCC 21.VREF (I) コンポジット基準電圧 22.BIAS (I) 位相補償cap.コンポジット 23.DVCC DAC用のデジタルVCC 24.DGND DAC用のデジタルGND 25.HSYNC (O) RGB出力用のH同期出力 26.VCSYNC (O) V同期/コンポジット同期(レジス タによって選択) GIO ピン総数:32[31:0] 1:32:GIO (I/O) 汎用I/O その他 ピン総数:15 1.RESET (I) リセットをパワー・オン 2.M27XI (I) 27MHz入力 3.M27XO (O) 27MHz出力 4.TCK (I) JTAGクロック 5.TDI (I) JTAGデータ入力 6.TDO (O) JTAGデータ出力 7.TMS (I) JTAGテストモード選択 8.TRST (I) JTAGテストリセット 9.EMU0 (I/O) エミュレータ割込み0ピン 10.EMU1 (I/O) エミュレータ割込み1ピン 11.TEST0 (I) テスト入力0 12.TEST1 (I) テスト入力1 13.SCAN (I) テスト入力 14.TESTSL0 (I) テスト・モード選択0 15.TESTSL1 (I) テスト・モード選択1 合計ピン総数 CCDセンサ 17 SDRAM I/F 58 ARMバス 39 オーディオI/F 6 フラッシュメモリI/F 5 USB 5 UART 5 IrDA 2 コンパクトフラッシュI/F 9 4DAC 26 GIO 32 その他 15 サブ合計 219ピン 電源 37ピン(14%) 合計 256ピン
【0331】オーディオプレイヤー 携帯デジタルオーディオプレイヤーは、最も人気のある
消費者用の製品の1つであることが期待される。現在、
MPEG−1レイヤー3オーディオ圧縮標準に基づいた
MP−3プレイヤーは携帯オーディオ市場で急速に成長
しているが、MPEG−2AACおよびDobyAC−
3が、標準として定着しつつあると考えられる代替デジ
タルオーディオ符号化フォーマットである。このよう
に、好ましい実施例のプログラム可能性は、デジタルオ
ーディオプレイヤーの機能を含ませることを可能とす
る。オーディオは、フラッシュメモリやPCなどを介し
て入力することができ、また、復号されたものはシリア
ルポートで出力することができる。復号化プログラム
は、フラッシュメモリやROMなどからロードすること
ができる。
【図面の簡単な説明】
【図1a】機能ブロック・フォーマットの好ましい実施
例システムを示す。
【図1b】機能ブロック・フォーマットの好ましい実施
例システムを示す。
【図2】データ・フローを例示する。
【図3a】データ・フローを例示する。
【図3b】データ・フローを例示する。
【図4】データ・フローを例示する。
【図5】データ・フローを例示する。
【図6】データ・フローを例示する。
【図7a】CFA配列を示す。
【図7b】CFA配列を示す。
【図8】ホワイトバランスのための機能図である。
【図9a】ガンマ補正を示す。
【図9b】ガンマ補正を示す。
【図9c】ガンマ補正を示す。
【図10a】CFA補間を例示する。
【図10b】CFA補間を例示する。
【図10c】CFA補間を例示する。
【図10d】CFA補間を例示する。
【図10e】CFA補間を例示する。
【図10f】CFA補間を例示する。
【図10g】CFA補間を例示する。
【図10h】CFA補間を例示する。
【図10i】CFA補間を例示する。
【図10j】CFA補間を例示する。
【図10k】CFA補間を例示する。
【図10l】CFA補間を例示する。
【図11a】カラー変換を示す。
【図11b】カラー変換を示す。
【図12a】メモリ・コントローラ・データ・フローを
示す。
【図12b】メモリ・コントローラ・データ・フローを
示す。
【図13a】バースト圧縮/圧縮解除エンジンの機能ブ
ロック図である。
【図13b】バースト圧縮/圧縮解除エンジンの機能ブ
ロック図である。
【図14】プレビュー・エンジンの機能ブロック図であ
る。
【図15】オンスクリーン・ディスプレイ・ブロック図
である。
【図16】オンスクリーン・ディスプレイ・ウインドウ
である。
【図17】ハードウェア・カーソルを示す。
【図18a】DSPサブシステムを示す。
【図18b】DSPサブシステムを示す。
【図19】並列乗算−累算データパスを示す。
【図20】コプロセッサ・アーキテクチャを示す。
【図21】ルックアップ・テーブル・加速器を例示す
る。
【図22】可変長符号器のブロック図である。
【図23a】ブリッジを示す。
【図23b】ブリッジを示す。
【図23c】ブリッジを示す。
【図24】マルチプロセッサ・デバグ支持を示す。
【図25】UART接続を例示する。
【図26】フラッシュカード/スマートカード・インタ
ーフェースのブロック図である。
【図27】カラーフィルタ・アレイ補間を例示する。
【図28】カラーフィルタ・アレイ補間を例示する。
【図29】カラーフィルタ・アレイ補間を例示する。
【図30】カラーフィルタ・アレイ補間を例示する。
【図31】カラーフィルタ・アレイ補間を例示する。
【図32】カラーフィルタ・アレイ補間を例示する。
【図33a】カラーフィルタ・アレイ補間を例示する。
【図33b】カラーフィルタ・アレイ補間を例示する。
【図34】カラーフィルタ・アレイ補間を例示する。
【図35a】カラーフィルタ・アレイ補間を例示する。
【図35b】カラーフィルタ・アレイ補間を例示する。
【図36a】カラーフィルタ・アレイ補間を例示する。
【図36b】カラーフィルタ・アレイ補間を例示する。
【図37a】カラーフィルタ・アレイ補間を例示する。
【図37b】カラーフィルタ・アレイ補間を例示する。
【図38】カラーフィルタ・アレイ補間を例示する。
【図39a】ホワイトバランシングを示す。
【図39b】ホワイトバランシングを示す。
【図40】ホワイトバランシングを示す。
【図41a】画像サイズ調整を指示する。
【図41b】画像サイズ調整を指示する。
【図42a】画像のサイズ調整を指示する。
【図42b】画像サイズ調整を指示する。
【図42c】画像サイズ調整を指示する。
【図42d】画像サイズ調整を指示する。
【図42e】画像サイズ調整を指示する。
【図43】色調スケーリングを例示する。
【図44】色調スケーリングを例示する。
【図45】色調スケーリングを例示する。
【図46a】同期を示す。
【図46b】同期を示す。
【図47】同期を示す。
【図48】同期を示す。
【図49】復号化バッファリングを示す。
【図50】復号化バッファリングを示す。
【図51a】復号化バッファリングを示す。
【図51b】復号化バッファリングを示す。
【図52】復号化バッファリングを示す。
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) H04N 1/393 H04N 1/393 5C065 1/48 5/232 Z 5C076 5/232 9/04 B 5C079 5/91 101:00 7/24 9/79 G 9/04 5/91 J 9/79 1/46 A // H04N 101:00 7/13 Z (31)優先権主張番号 632543 (32)優先日 平成12年8月4日(2000.8.4) (33)優先権主張国 米国(US) (72)発明者 アキラ オサモト 茨城県稲敷郡東町幸田972−2 (72)発明者 小柴 修 茨城県つくば市高野台3−11−2−402 (72)発明者 山内 暁 茨城県土浦市乙戸1022−17 (72)発明者 ミンファ ゾウ アメリカ合衆国 テキサス、プラノ、 オ ハイオ ドライブ 2523、ナンバー108 (72)発明者 クラウス イルグナー ドイツ連邦共和国 ミュンヘン、 マルク アルトシュタイナー シュトラーセ 12 (72)発明者 ラジェンドラ タルリ アメリカ合衆国 テキサス、プラノ、 フ ァンテン ヘッド ドライブ 2220 (72)発明者 ヤウンジュン ヨー アメリカ合衆国 テキサス、リチャードソ ン、 ダブリュ、レンナー ロード 800、 ナンバー1418 (72)発明者 ジー リアン アメリカ合衆国 テキサス、プラノ、 フ ロステッド グリーン レーン 2505 (72)発明者 マンディ ツァイ 台湾、台北、ファ リン ストリート 72、4エフ (72)発明者 キヨシ ツノダ 神奈川県横浜市港北区篠原台町36−33 (72)発明者 シンリ イナモリ 神奈川県横浜市金沢区釜利谷東2−18−22 −404 Fターム(参考) 5B057 BA02 CA01 CA08 CA12 CA16 CB01 CB08 CB12 CB16 CC01 CD06 CE17 CE18 CH02 CH08 CH09 CH14 5C022 AA13 AB00 AC69 5C053 FA08 GB36 KA01 KA21 KA24 KA25 KA26 5C055 AA07 BA06 EA01 GA00 HA18 HA31 HA35 HA37 5C059 KK50 LB11 ME05 ME17 PP15 PP16 SS11 UA02 UA11 UA34 UA38 5C065 AA03 BB02 GG13 GG15 GG18 GG29 GG31 GG32 5C076 AA21 AA26 BA05 BA06 BB04 5C079 HB01 HB04 JA23 LA17 LA23 LA28 LA37 LB02 MA02 MA11 NA03 NA09

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】 デジタルスチルカメラ用の集積回路であ
    って、(a)制御機能を走らせるようプログラムされた
    第1のプログラム可能なプロセッサであって、ユーザイ
    ンターフェース,メモリ用コントローラおよび画像獲得
    用コントローラに結合された第1のプロセッサと、
    (b)画像処理および圧縮機能を走らせるようプログラ
    ムされた第2のプログラム可能プロセッサであって、前
    記第1のプロセッサに結合された第2のプロセッサと、
    (c)前記第2のプロセッサに結合された第3のプロセ
    ッサであって、少なくとも4つの並列乗算および累算ユ
    ニットを含む第3のプロセッサと、を具備する、集積回
    路。
  2. 【請求項2】 デジタル画像のサイズを調整する方法で
    あって、(a)M1×M2画素画像(M1およびM2は
    正の整数)を提供するステップと、(b)画素位置に依
    存する一組のフィルタ係数で前記画像のM1画素の行を
    フィルタリングしてM1フィルタリング出力を生成する
    ステップと、(c)ステップ(b)のフィルタリング出
    力のM1−N1を廃棄するステップと、(d)M1×M
    2画像の他のすべての行についてステップ(b)および
    ステップ(c)を繰り返してN1×M2画像を生成する
    ステップと、(e)画素位置に依存する一組のフィルタ
    係数でN1×M2画像のM2画素の列をフィルタリング
    してM2フィルタリング出力を生成するステップと、
    (f)ステップ(e)のフィルタリング出力のM2−N
    2を廃棄するステップと、(g)N1×M2画像の他の
    すべての行についてステップ(e)およびステップ
    (f)を繰り返してN1×N2画像を生成するステップ
    と、を具備する、方法。
  3. 【請求項3】 カラーフィルタリングアレイ補間の方法
    であって、 第1のカラー・サブアレイを補間して第1のカラー・ア
    レイを生成するステップと、 前記先行のステップからの前記第1のカラー・アレイを
    ハイパスフィルタリングしてハイパス・第1のカラー・
    アレイを生成するステップと、 第2のカラー・サブアレイを補間して第2のカラー・ア
    レイを生成するステップと、 前記ハイパス・第1のカラー・アレイを重み付けして前
    記第2のカラー・アレイに加算して修正・第2のカラー
    ・アレイを生成するステップと、 第3のカラー・サブアレイを補間して第3のカラー・ア
    レイを生成するステップと、 前記ハイパス・第1のカラー・アレイを重み付けして前
    記第3のカラー・アレイに加算して修正・第3のカラー
    ・アレイを生成するステップと、 前記第1のカラー・アレイ,前記修正・第2のカラー・
    アレイおよび前記修正・第3のカラー・アレイで3色画
    像を画定するステップと、 を具備する、方法。
  4. 【請求項4】 画像を色調スケーリングする方法であっ
    て、(a)M×N画素画像を提供するステップであっ
    て、MおよびNは正の整数であり、各画素が0からKの
    範囲の強度を有する、ステップと、(b)スケーリング
    された累積分布関数T(X)を0からKの範囲のXについ
    て決定するステップであって、0からKの範囲の値で、
    T(X)は、X以下の強度を持つ画素の数を乗算されたの
    ちにMNで割られたKに等しい、ステップと、(c)0
    から1の範囲のパラメータAを選択するステップと、
    (d)ステップ(a)の画素の強度ZをAT(Z)+(1
    −A)Zに調整するステップと、を具備する、方法。
  5. 【請求項5】 バイエル・カラーフィルタリングアレイ
    用の補間の方法であって、 緑サブアレイを補間して一時的緑アレイを形成するステ
    ップと、 該一時的緑アレイの補間された画素値をクランプし前記
    緑サブアレイの4つの隣接値のうちの2つの真中の値の
    範囲にあるようにして緑アレイを形成するステップと、 赤および青サブアレイを補間するステップと、 を具備する、方法。
  6. 【請求項6】 バイエル・カラーフィルタリングアレイ
    画像用の補間の方法であって、 緑サブアレイを補間して緑アレイを形成するステップ
    と、 赤サブアレイを斜めに補間して第2の赤サブアレイを形
    成するステップと、 該第2の赤サブアレイを水平および垂直に補間して第2
    の赤アレイを形成するステップと、 青サブアレイを斜めに補間して第2の青サブアレイを形
    成するステップと、 該第2の青アレイを水平および垂直に補間して青アレイ
    を形成するステップと、 を具備し、 前記斜めの補間は、前記緑アレイにおける対応画素の値
    による重み付けを含み、 前記水平および垂直の補間は、前記緑アレイにおける対
    応画素の値による重み付けを含み、 前記緑アレイ,前記赤アレイおよび前記青アレイがカラ
    ー画像を画定する、 方法。
  7. 【請求項7】 カラー画像センサ用のホワイトバランシ
    ングの方法であって、(a)白色光で照明されたカラー
    画像センサに出力緑,赤および青画素強度を提供するス
    テップと、(b)ステップ(a)の出力について緑画素
    強度の青画素強度に対する比を決定するステップと、
    (c)ステップ(b)の比を乗算したものとステップ
    (a)における画素強度に依存するオフセットの加算と
    の和として青画素強度を調整するステップと、(d)ス
    テップ(a)の出力について緑画素強度の赤画素強度に
    対する比を決定するステップと、(c)ステップ(b)
    の比を乗算したものとステップ(a)における画素強度
    に依存するオフセットの加算との和として赤画素強度を
    調整するステップと、を具備する、方法。
  8. 【請求項8】 ビデオ復号および表示の方法であって、
    (a)符号化されたビデオフレームのシーケンス,ビデ
    オフレーム境界時間のシーケンスおよびフレームの復号
    されたものについての蓄積位置を提供するステップと、
    (b)前記シーケンスのm番目のフレームが復号されて
    いると、TPnをDelta Tで割ったものとして決定
    されるm’で前記シーケンスのm’番目のフレームを復
    号するステップであって、Delta Tがステップ
    (a)のビデオフレーム境界時間の連続するものの間の
    時間間隔であり、TPnが、(i)m番目のフレームの
    表示時間TPn-1とDelta Tとの和と(ii)m番
    目のフレーム後に次に現れるべきフレームを復号するた
    めの開始時間Tsとフレームを復号するための見積り時
    間との和(該和はDelta Tの倍数まで切り上げら
    れている)とのうちの大きい方として決定される表示時
    間であり、開始時間Tsが、(i)現在時間と(ii)
    復号されたm’番目のフレームが含まれる蓄積場所が表
    示されている先に復号されたフレームにより利用できる
    ものとなる時間とのうちの大きな方である、ステップ
    と、(c)復号されたフレームを表示するステップと、
    (d)インクリメントされたインデックスでステップ
    (b)およびステップ(c)を繰り返すステップと、を
    具備する、方法。
  9. 【請求項9】 補償カラーフィルタリングアレイ画像用
    の補間の方法であって、(a)第1のサブアレイ上のイ
    エロー画素値Ye,第2のサブアレイ上のシアン画素値
    Cy,第3のサブアレイ上のマゼンタ画素値Mgおよび
    第4のサブアレイ上の緑画素値Gを画素値の補償カラー
    フィルタリングアレイに提供するステップと、(b)前
    記イエロー画素値を前記アレイ中のすべての画素に補間
    するステップと、(c)前記シアン画素値を前記アレイ
    中のすべての画素に補間するステップと、(d)前記マ
    ゼンタ画素値を前記アレイ中のすべての画素に補間する
    ステップと、(e)前記緑画素値を前記アレイ中のすべ
    ての画素に補間するステップと、(f)ステップ(b)
    からの画素イエロー値から量(Ye+Cy−2*G−M
    g)/4を減算することによって画素イエロー値を調整
    するステップであって、Yeがステップ(b)からの画
    素イエロー値であり、Cyがステップ(c)からの画素
    シアン値であり、Mgがステップ(d)からの画素マゼ
    ンタ値であり、Gがステップ(e)からの画素緑値であ
    る、ステップと、(g)ステップ(c)からの画素シア
    ン値から量(Ye+Cy−2*G−Mg)/4を減算す
    ることによって画素シアン値を調整するステップであっ
    て、Yeがステップ(b)からの画素イエロー値であ
    り、Cyがステップ(c)からの画素シアン値であり、
    Mgがステップ(d)からの画素マゼンタ値であり、G
    がステップ(e)からの画素緑値である、ステップと、
    (h)ステップ(d)からの画素マゼンタ値に量(Ye
    +Cy−2*G−Mg)/4を加算することによって画
    素マゼンタ値を調整するステップであって、Yeがステ
    ップ(b)からの画素イエロー値であり、Cyがステッ
    プ(c)からの画素シアン値であり、Mgがステップ
    (d)からの画素マゼンタ値であり、Gがステップ
    (e)からの画素緑値である、ステップと、(i)ステ
    ップ(e)からの画素緑値に量(Ye+Cy−2*G−
    Mg)/4を加算することによって画素緑値を調整する
    ステップであって、Yeがステップ(b)からの画素イ
    エロー値であり、Cyがステップ(c)からの画素シア
    ン値であり、Mgがステップ(d)からの画素マゼンタ
    値であり、Gがステップ(e)からの画素緑値である、
    ステップと、を具備する、方法。
  10. 【請求項10】 カラーフィルタリングアレイ画像用の
    補間の方法であって、(a)画素値のカラーフィルタリ
    ングアレイに、jおよびkが偶数であるときにはj番目
    の行およびk番目の列に位置する画素用の赤画素値R
    (j,k)を、jおよびkが奇数であるときにはj番目の
    行およびk番目の列に位置する画素用の青画素値B
    (j,k)を、jおよびkの一方が偶数で他方が奇数であ
    るときにはj番目の行およびk番目の列に位置する画素
    用の緑画素値G(j,k)を提供するステップと、(b)
    画素値の行を水平に補間して、jが偶数であるときには
    すべてのkについて赤値R(j,k)および緑値G(j,
    k)の行を生成し、jが奇数であるときにはすべてのk
    について緑値G(j,k)および青値B(j,k)を生成す
    るステップと、(c)jが偶数であるときには、ステッ
    プ(b)からの水平補間された赤行を垂直に補間して赤
    値R(j−1,k)を生成し、jが奇数であるときには、
    水平補間された青を垂直に補間して青値B(j−1,k)
    を生成するステップと、(d)ステップ(b)からの水
    平補間された緑画素行を垂直にフィルタリングして、フ
    ィルタリングされた緑出力値G”(j,k)を生成するス
    テップと、(e)緑値G(j,k)とフィルタリングされ
    た緑値G”(j,k)との差値D(j,k)を定めるステッ
    プと、(f)jが偶数であるときには、D(j,k)を赤
    値R(j,k)から減算して赤出力値R”(j,k)を生成
    し、mが奇数であるときには、D(j,k)を赤値R
    (j,k)に加算して赤出力値R”(j,k)を生成するス
    テップと、(g)mが偶数であるときには、D(j,k)
    を青値B(j,k)に加算して青出力値B”(j,k)を生
    成し、mが奇数であるときには、D(j,k)を青値B
    (j,k)から減算して青出力値B”(j,k)を生成する
    ステップと、を具備する、方法。
  11. 【請求項11】 再生バッファリングの方法であって、
    (a)第1および第2のバッファを備えるステップであ
    って、これらのバッファがフル/非フル・指示器をそれ
    ぞれ備え、位置指示器が前記第1および第2のバッファ
    内の位置を指示する、ステップと、(b)前記第1のバ
    ッファについての前記フル/非フル・指示器が非フルを
    指示し、前記位置指示器が前記第2のバッファにおける
    位置を指示するときには、前記第1のバッファを符号化
    されたビットで充填するステップと、(c)前記第2の
    バッファについての前記フル/非フル・指示器が非フル
    を指示し、前記位置指示器が前記第1のバッファにおけ
    る位置を指示するときには、前記第2のバッファを符号
    化されたビットで充填するステップと、(d)前記位置
    指示器によって指示される位置で開始する前記第1およ
    び第2のバッファにおける1群のビットを復号するとと
    もに、前記第1および第2のバッファを一つの巡回バッ
    ファを形成するように取り扱うステップと、(e)ステ
    ップ(d)によって取り除かれたビットに従って前記フ
    ル/非フル・指示器を更新するステップと、(f)ステ
    ップ(b)からステップ(e)を繰り返すステップと、
    を具備する、方法。
JP2000404442A 1999-12-20 2000-12-20 デジタルスチルカメラシステムおよび方法 Abandoned JP2002010277A (ja)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US632543 1996-04-19
US17278099P 1999-12-20 1999-12-20
US21500000P 2000-06-29 2000-06-29
US21495100P 2000-06-29 2000-06-29
US63254300A 2000-08-04 2000-08-04
US172780 2000-08-04
US214951 2000-08-04
US215000 2000-08-04

Publications (1)

Publication Number Publication Date
JP2002010277A true JP2002010277A (ja) 2002-01-11

Family

ID=27497025

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000404442A Abandoned JP2002010277A (ja) 1999-12-20 2000-12-20 デジタルスチルカメラシステムおよび方法

Country Status (1)

Country Link
JP (1) JP2002010277A (ja)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006187004A (ja) * 2004-12-24 2006-07-13 Sony Taiwan Ltd 画像信号処理装置
JP2007066142A (ja) * 2005-09-01 2007-03-15 Shinsedai Kk ダイレクトメモリアクセスコントローラ
US7197581B2 (en) 2003-04-21 2007-03-27 Matsushita Electric Industrial Co., Ltd. Integrated circuit, device and method for inputting/outputting images
JP2007124434A (ja) * 2005-10-31 2007-05-17 Renesas Technology Corp 画像処理用半導体集積回路
JP2008543203A (ja) * 2005-06-03 2008-11-27 ノキア コーポレイション 圧縮された未加工の画像を使用する画像プロセッサのための一時的画像バッファ
US7822296B2 (en) 2002-02-13 2010-10-26 Canon Kabushiki Kaisha Data processing apparatus, image processing apparatus, and method therefor
JP2011010331A (ja) * 2003-01-30 2011-01-13 Qualcomm Inc ディジタルビデオデータを処理するための繰り返し使用可能なフロントエンドを有するモジュラアーキテクチャ
JP2011113182A (ja) * 2009-11-25 2011-06-09 Toshiba Corp 画像処理装置
US8049923B2 (en) 2005-05-31 2011-11-01 Ricoh Company Ltd. Method and apparatus for image processing capable of efficiently interfacing with different digital signal processors
CN108259742A (zh) * 2018-01-12 2018-07-06 北京图森未来科技有限公司 一种图像采集方法和装置
USRE48845E1 (en) 2002-04-01 2021-12-07 Broadcom Corporation Video decoding system supporting multiple standards

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8867864B2 (en) 2002-02-13 2014-10-21 Canon Kabushiki Kaisha Data processing apparatus, image processing apparatus, and method therefor
US8165427B2 (en) 2002-02-13 2012-04-24 Canon Kabushiki Kaisha Data processing apparatus, image processing apparatus, and method therefor
US7889935B2 (en) 2002-02-13 2011-02-15 Canon Kabushiki Kaisha Data processing apparatus, image processing apparatus, and method therefor
US7899275B2 (en) 2002-02-13 2011-03-01 Canon Kabushiki Kaisha Data processing apparatus, image processing apparatus, and method therefor
US9361664B2 (en) 2002-02-13 2016-06-07 Canon Kabushiki Kaisha Data processing apparatus, image processing apparatus, and method therefor
US7822296B2 (en) 2002-02-13 2010-10-26 Canon Kabushiki Kaisha Data processing apparatus, image processing apparatus, and method therefor
USRE48845E1 (en) 2002-04-01 2021-12-07 Broadcom Corporation Video decoding system supporting multiple standards
US8804000B2 (en) 2003-01-30 2014-08-12 Qualcomm Incorporated Modular architecture having reusable front end for processing digital video data
JP2011010331A (ja) * 2003-01-30 2011-01-13 Qualcomm Inc ディジタルビデオデータを処理するための繰り返し使用可能なフロントエンドを有するモジュラアーキテクチャ
US7197581B2 (en) 2003-04-21 2007-03-27 Matsushita Electric Industrial Co., Ltd. Integrated circuit, device and method for inputting/outputting images
JP2006187004A (ja) * 2004-12-24 2006-07-13 Sony Taiwan Ltd 画像信号処理装置
US8049923B2 (en) 2005-05-31 2011-11-01 Ricoh Company Ltd. Method and apparatus for image processing capable of efficiently interfacing with different digital signal processors
JP2008543203A (ja) * 2005-06-03 2008-11-27 ノキア コーポレイション 圧縮された未加工の画像を使用する画像プロセッサのための一時的画像バッファ
JP2007066142A (ja) * 2005-09-01 2007-03-15 Shinsedai Kk ダイレクトメモリアクセスコントローラ
JP4625929B2 (ja) * 2005-09-01 2011-02-02 新世代株式会社 ダイレクトメモリアクセスコントローラ
JP2007124434A (ja) * 2005-10-31 2007-05-17 Renesas Technology Corp 画像処理用半導体集積回路
JP4641926B2 (ja) * 2005-10-31 2011-03-02 ルネサスエレクトロニクス株式会社 画像処理用半導体集積回路
JP2011113182A (ja) * 2009-11-25 2011-06-09 Toshiba Corp 画像処理装置
CN108259742A (zh) * 2018-01-12 2018-07-06 北京图森未来科技有限公司 一种图像采集方法和装置
CN108259742B (zh) * 2018-01-12 2020-08-25 北京图森未来科技有限公司 一种图像采集方法和装置

Similar Documents

Publication Publication Date Title
US6791609B2 (en) Digital still camera system and method
US6829016B2 (en) Digital still camera system and method
US7330209B2 (en) Digital still camera system and complementary-color-filtered array interpolation method
US6933970B2 (en) Digital still camera system and method
US6754279B2 (en) Digital still camera system and method
US6873658B2 (en) Digital still camera system and method
US20020135683A1 (en) Digital still camera system and method
US20030222998A1 (en) Digital still camera system and method
US6975354B2 (en) Digital still camera color filter array interpolation system and method
US7142251B2 (en) Video input processor in multi-format video compression system
EP1111904A2 (en) Digital camera system and method
US7787026B1 (en) Continuous burst mode digital camera
US8619866B2 (en) Reducing memory bandwidth for processing digital image data
US20120301102A1 (en) Video camera
WO2001049026A1 (fr) Camera numerique, dispositif de commande de memoire utilisable dans ce cas, procede et dispositif de traitement d'image
KR100997619B1 (ko) 소형 또는 대형 화상의 처리를 위한 소형 라인 버퍼의 사용을 용이하게 하는 기술
US6697106B1 (en) Apparatus for processing image signals representative of a still picture and moving pictures picked up
JP2002157111A (ja) 画像制御装置およびその制御方法ならびにディジタルカメラ
JP2002010277A (ja) デジタルスチルカメラシステムおよび方法
KR100695839B1 (ko) 디지털 스틸 카메라 동작 방법
JP3812264B2 (ja) 撮像装置
JP4302661B2 (ja) 画像処理システム
EP1175101B1 (en) Digital still camera system and method.
JP4281161B2 (ja) 電子カメラ
US7362362B2 (en) Reformatter and method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071220

A762 Written abandonment of application

Free format text: JAPANESE INTERMEDIATE CODE: A762

Effective date: 20090113