CN1365569A - 主要功能实现在主机软件中的摄像机 - Google Patents
主要功能实现在主机软件中的摄像机 Download PDFInfo
- Publication number
- CN1365569A CN1365569A CN00811020A CN00811020A CN1365569A CN 1365569 A CN1365569 A CN 1365569A CN 00811020 A CN00811020 A CN 00811020A CN 00811020 A CN00811020 A CN 00811020A CN 1365569 A CN1365569 A CN 1365569A
- Authority
- CN
- China
- Prior art keywords
- data
- pixel
- video camera
- value
- image sensor
- 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.)
- Pending
Links
- 238000012545 processing Methods 0.000 claims abstract description 55
- 238000012937 correction Methods 0.000 claims abstract description 37
- 238000007906 compression Methods 0.000 claims abstract description 29
- 230000006835 compression Effects 0.000 claims abstract description 29
- 239000000872 buffer Substances 0.000 claims abstract description 16
- 238000000034 method Methods 0.000 claims description 48
- 230000002950 deficient Effects 0.000 claims description 36
- 238000005070 sampling Methods 0.000 claims description 22
- 230000002159 abnormal effect Effects 0.000 claims description 18
- 230000005540 biological transmission Effects 0.000 claims description 11
- 238000013144 data compression Methods 0.000 claims description 4
- 230000008878 coupling Effects 0.000 claims 5
- 238000010168 coupling process Methods 0.000 claims 5
- 238000005859 coupling reaction Methods 0.000 claims 5
- 230000006870 function Effects 0.000 abstract description 23
- 238000003860 storage Methods 0.000 abstract description 14
- 230000006837 decompression Effects 0.000 abstract description 4
- 230000000694 effects Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 15
- 238000001514 detection method Methods 0.000 description 14
- 238000005516 engineering process Methods 0.000 description 12
- 238000013519 translation Methods 0.000 description 9
- 230000008859 change Effects 0.000 description 8
- 238000006243 chemical reaction Methods 0.000 description 8
- 238000004519 manufacturing process Methods 0.000 description 5
- 238000007619 statistical method Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 230000000007 visual effect Effects 0.000 description 5
- 230000007547 defect Effects 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 4
- 238000007792 addition Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013138 pruning Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 239000000428 dust Substances 0.000 description 2
- 230000008030 elimination Effects 0.000 description 2
- 238000003379 elimination reaction Methods 0.000 description 2
- 238000005286 illumination Methods 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 230000000873 masking effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000035945 sensitivity Effects 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 241000233855 Orchidaceae Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 125000001475 halogen functional group Chemical group 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000012464 large buffer Substances 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N25/00—Circuitry of solid-state image sensors [SSIS]; Control thereof
- H04N25/60—Noise processing, e.g. detecting, correcting, reducing or removing noise
- H04N25/61—Noise processing, e.g. detecting, correcting, reducing or removing noise the noise originating only from the lens unit, e.g. flare, shading, vignetting or "cos4"
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/16—Analogue secrecy systems; Analogue subscription systems
- H04N7/162—Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing
- H04N7/165—Centralised control of user terminal ; Registering at central
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/414—Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
- H04N21/4143—Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance embedded in a Personal Computer [PC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/84—Generation or processing of descriptive data, e.g. content descriptors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N25/00—Circuitry of solid-state image sensors [SSIS]; Control thereof
- H04N25/60—Noise processing, e.g. detecting, correcting, reducing or removing noise
- H04N25/68—Noise processing, e.g. detecting, correcting, reducing or removing noise applied to defects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/482—End-user interface for program selection
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Studio Devices (AREA)
- Surface Acoustic Wave Elements And Circuit Networks Thereof (AREA)
- Color Television Image Signal Generators (AREA)
Abstract
通过在主机软件中实现主要功能而提供了一种低成本摄像机。这是通过将原始数字化数据直接从摄像机发送给主机完成的。增加的原始数据量是由采用无损失的压缩的改进的压缩/解压方案、采用有损失的压缩或采用带有较高带宽的共用总线处理的。通过将诸如彩色处理与缩放等功能转移至主机,也能将象素纠正转移至主机。这进一步允许从摄像机中消除帧缓冲存储器。最后,通过在摄像机的寄存器中存储纠正值供主机以后访问来执行纠正,而实现渐晕、畸变、灰度系数或假频纠正,摄像机能使用低成本镜头。
Description
相关申请的相互参照
本申请为1999年6月30日提交的名为“基于图象传感器的渐晕纠正”的申请号09/345,167、1999年12月15日提交的名为“动态异常象素检测与纠正”的申请号09/464,364及1999年6月30日提交的名为“快速解码”的申请号09/343,934的部分继续申请。通过引用将它们全部结合在此。
发明背景
本发明涉及摄像机,具体地涉及用诸如通用串行总线(USB)等共用接口连接在计算机或其它智能设备上的摄像机。
已研制出用于提供静止画面与运动画面两者的摄像机,它们能连接在计算机上以提供数字化图象。这些摄像机能通过诸如USB等共用总线连接在计算机上。这限制了能发送的数据的带宽而要求压缩视频数据。通常,摄像机在摄像机电子器件中进行一些图象预处理,从而既从计算机的CPU卸载了处理并潜在地减少了必须压缩及在总线上发送的数据量。
以这一设计,一些功能需要在摄像机中完成。例如,摄像机中的CCD或CMOS传感器可能具有不正确地采集光线的有缺陷的检测器位置。它们能通过平均在邻接检测器。位置上检测到的光量并将其代替由有缺陷的位置所提供的值来加以补偿。当前,通常在摄像中进行的诸如彩色处理与缩放等其它类型的处理之前需要完成这一类型的处理。
图1为能通过总线连接到主机上的典型摄像机的框图。镜头10将光线聚焦在带有用于读出传感器数据的相关控制逻辑的传感器12上。将数据提供给模数转换器(ADC)14,在这里将其数字化。然后将数据存储在帧缓冲存储器16中。可用电路18在数据上施加象素纠正。可将纠正数据存储在可编程存储器20中。这一存储器可在运送摄像机之前的制造过程中编程。
通常以图1中所示的特定次序在摄像机中执行若干其它功能,然而它们可按其它次序或者在调用它们时通过总线连接来改变。例如,彩色处理电路22可执行若干彩色功能,例如可将接收的数据从诸如YUV等一种彩色格式转换成诸如RGB的另一格式。缩放器功能24能缩放图象来符合主机上所要求的显示。压缩电路26压缩数据以减少要在共用总线上传输的数据量。最后,总线接口电路28实现将数据传输到远程主机的总线30的协议。
赫夫曼编码是最广泛地用于压缩视频数据的算法之一。赫夫曼编码已用在各种图象与视频压缩标准中,诸如联合照相专家组(JPEG)、运动图象专家组(MPEG)、MPEG-II、H.261、H.263及H.323所规定的标准。将这些标准全文包含在此作为参考。赫夫曼编码为无损失熵编码技术。赫夫曼编码利用概率来为最频繁出现的数据选择最短的码字。例如,在编码英文正文时,可用2位码字表示在英语中非常普遍的字符“E”,而可用8位码字表示不那样频繁使用的“A”。
结果,赫夫曼编码通过将较短的码字分配给较频繁出现的数据而将较长的码字给较不频繁出现的数据来压缩数据。可将分配的码字维护在一表中,然后由接收者与发送者共同使用。关于赫夫曼编码的进一步细节可在D.A.Huffman的“构成最小冗余码的方法”,IRE学报,卷40,第9期,1952年9月,1098-1101页中找到,将其全文结合在此作为参考。
此外,赫夫曼码字是以这一方式构成的,即没有码字是另一码字的前缀。这保证尽管代码是可变长度的,来自数据位流的各符号是无歧义解码的。赫夫曼码的特征的附加描述可在M.Nelson与J.L.Gailly的数据压缩书本,M&T书本(1996年)中找到,将其全文结合在此作为参考。在31-35页上,这一参考书提出基于树跟踪的解码算法。然而这一算法不适用于使用诸如Intel、Pentium系列等当前可获得的大多数微处理器的快速解压。
渐晕效应是当屏幕周边的亮度小于屏幕中心的亮度时产生的晕圈效应。专业摄影师有时用适当的镜头或屏幕试图故意产生这一效应以在画面的边沿产生柔和的图象。然而当在数字照片中非故意出现这一效应时,它是烦人的。已研发多种技术来测定与处理渐晕效应。
专利号4,884,140示出为使用导致渐晕的变焦镜头的摄像机提供渐晕补偿的模拟电路。
专利号5,434,902示出通过使用恒定亮度图象测定X线检验装置的渐晕效应。然后为各象素在存储器中存储一纠正因子。
专利号5,576,797示出用焦点检测装置检测摄像机中的渐晕效应。
专利号5,381,174示出通过使用场频锯齿信号纠正由变焦镜头的操作引起的渐晕。
专利号4,816,663示出取象镜与焦点检测光学系统之间的渐晕检测。
供与个人计算机一起用于个人电话会议的数字摄像机已越来越便宜。这在摄像机制造商身上施压去采用更便宜的镜头,它们具有更大的渐晕效应。此外,价格压力迫使制造商使用较少的半导体芯片,从而使得使用半导体存储器存储渐晕纠正不理想。从而,存在着对制造成本低廉并且也纠正廉价镜头的渐晕的数字摄像机的需求。
用于生产图象传感器的过程虽高度先进但不是完美的。图象传感器阵列中的光格点的灵敏度或将光转换成电流的能力可能改变。有些改变是预期的与容许的,但有时阵列中的单个光格点可能是死的、不活跃的或过度活跃的。这能使显示的图象具有暗或黑点、亮白点或不正确的彩色点,所有这些对最终用户都是不想要与不希望的。在数字成象领域中人们也认识到目标图象的不适当数字化所导致的问题,并已提出各种解决方法来检测与纠正有缺陷的象素。可将这些先有技术方法与系统大致上分成两类。
一方面存在着各种基于硬件的方法用于检测与纠正从图象传感器阵列取得的有缺陷象素。这些基于硬件的方法与系统对于摄像机制造商相当普遍。大多数传统摄像机采用固态取象装置,包含有缺陷象素检测与纠正电路用于纠正取自图象传感器阵列的有缺陷的象素。有缺陷的象素是在制造图象传感器时或之后产生的。在这种摄像机中,有缺陷象素纠正电路检出有缺陷的象素并将位置数据及关于该有缺陷象素的各种数据存储在只读存储器(ROM)等中。然后,在使用该摄像机时,用来自靠近该有缺陷的象素的象素的数据取代来自该有缺陷象素的象素数据。美国专利号5,796,430中公开了一种这样的方法与系统。这种方法的缺点是需要在产品组装与测试中加入程序存储装置,这增加成本并延长工期。此外,由于需要在视频处理应用特定的集成电路(ASIC)中增加纠正电路而同时增加硬件设备成本。
另一方面,存在着各种基于软件的方法用于检出与纠正数字图象中的有缺陷象素。美国专利号5,982,946中公开了这样的方法与系统。这些基于软件的方法通常瞄准在纠正已数字化并且完全处理过的图象中的坏图象象素上。这些已数字化图象采用已通过彩色处理、压缩及在从图象传感器阵列读出的原始数据上执行的各种其它处理的最终可显示和存储的形式。因此,这些处理完全处理过的数字图象的基于软件的方法可以纠正由诸如原始景象上的尘土或脏物、用于捕捉景象的镜头上的尘土或脏物等任何数目的人为事物导致的异常象素以及由有缺陷的光格点所导致的数字化图象中的异常象素。这些方法通常依赖于较完善与昂贵的系统与计算机软件来检测与纠正坏象素。这些方法通常需要用户输入以检测潜在的坏图象象素的位置。一旦用户用视觉扫描了整个图象并标记了潜在的坏图象象素,包含软件程序的系统便接手纠正加标记的有缺陷象素。除了需要用户输入,这些方法也是昂贵的、乏味的与非常费时的。
廉价的与PC接口的数字静止与视频摄像机设备的扩张需要快速、动态、廉价与智能的有缺陷象素检测与纠正解决方案。
发明概述
本发明通过将主要功能实现在主机软件中提供低成本的摄像机。这是通过从摄像机直接将原始的数字化数据发送给主机实现的。通过使用无损失压缩,使用有损式压缩或使用较高带宽的共用总线的以改进的压缩/解压方案来处理原始数据的增加的容量。通过将诸如彩色处理及缩放等功能转移给主机,象素纠正也能转移给主机。这又允许从摄像机中消除帧缓冲存储器。最后,通过用存储在摄像机的寄存器中的渐晕纠正值实现渐晕纠正以供主机以后访问来执行纠正,该摄像机能使用低成本镜头。
在一个实施例中,通过使用带诸如Intel MMXTM技术的在多个组合象素值上同时操作的能力的处理器,主机解压所传输的数据。这对于较大的数据量保持足够的解压速度而在帧速率上具有最小的影响。在一个实施例中,复制来自数据流的位组并将其提供给寄存器中的多个位置,它们能在那里同时与多个最大值比较。这能快速确定可变位编码中多少位对应于一象素值。
在采用有损失压缩的实施例中,渐晕、反衬度、畸变或假频纠正与象素纠正是在摄像机本身中执行的,由于在有损失的压缩/解压过程中信息的损失会降低纠正能力。然而,彩色处理、缩放及其它操作仍在主机中执行。实现了并不需要帧缓冲存储器与彩色处理及缩放电路的低成本摄像机。
在一个实施例中,通过使用即使有渐晕畸变的低成本镜头能使摄像机的成本降低。这是通过在摄像机中提供诸如寄存器等存储器单元达到的。在制造时用对应于渐晕量或所需的纠正的值编程该存储器单元。然后在操作期间主机可读取该寄存器来确定在任何其它处理之前在所接收的数据上主机中所执行的渐晕纠正算法中所需的纠正量。在一可替换的实施例中,该存储单元能为镜头中的其它缺陷或摄像机的其它方面存储纠正或值因子。例如,可存储坏象素位置的指示供以后由主机读取与纠正。
为了进一步理解本发明的性质与优点,应参考下面结合附图所作的描述。
附图简述
图1为先有技术摄像机的框图。
图2为将主要功能转移到主机的本发明的一个实施例的框图。
图3为说明赫夫曼并行解码操作的操作图。
图4说明用于执行本发明的实施例的方法的计算机系统的示例。
图5说明用于执行本发明的实施例的方法的典型计算机系统100的简化系统框图。
图6为按照本发明的实施例的SIMD系统300的简化框图。
图7说明按照本发明的实施例的系统400的简化框图。
图8说明按照本发明的实施例解码赫夫曼编码数据的顺序解码方法500。
图9说明按照本发明的另一实施例解码赫夫曼编码数据的并行解码方法600。
图10为说明渐晕效应的象素阵列与亮度曲线图。
图11为按照本发明的渐晕纠正的一个实施例的框图。
图12说明按照本发明的一个实施例检测与纠正有缺陷象素的方法的简化流程图。
图13为按照本发明的一个实施例的摄像机系统的框图。
图14为按照本发明的一个实施例的提供给CMOS传感器阵列的脉冲的定时图。
具体实施方式I.总体系统
图2为本发明的一个实施例的框图。摄像机32和先有技术一样包含镜头10、传感器与控制逻辑12、及ADC14。然而除外压缩单元26与总线接口28,其它主要功能被消除了。此外,增加了纠正寄存器34来存储对应于镜头10的渐晕的值。
摄像机通过共用总线30连接在主机36上。在主机36中,所示的单元为主机36的处理器所执行的编程单元。其中有解压单元38、渐晕纠正单元40、象素纠正单元42、彩色处理单元44及缩放单元46。同时示出的有用于存储关于需要纠正的象素的统计信息的统计存储器48,它可以是主机存储器的一部分。II.赫夫曼解压
最好,主机36所使用的处理器包含在单一寄存器中的多个组合象素上并行执行操作的能力。例如,Intel MMXTM技术提供用于在微处理器寄存器中的组合象素上的这种操作的若干指令。从而,希望利用这些功能来提高处理速度。然而,有些操作并不支持这种同时操作。例如,赫夫曼压缩通常用于视频数据,并用在本发明的实施例中。这是一种可变长度码压缩机制。换言之,对应于一象素值的位数可以是1、2、3、4等,并能逐个象素改变。事先不知道位数,并带有不同的大小,便不能立即明白如何利用一组合象素寄存器,它为各象素表示使用相同的大小。
在当今的USB技术的有限带宽上,如果摄像机发送具有比已经预处理过的数据大得多的数据量的原始数据,希望能设法进行并行解压处理。这是通过独一无二地采用组合象素配置来执行赫夫曼解码而完成的。
图3为总的说明并行赫夫曼解码如何进行的图。用若干字母示出进入数据流50。各字母是指示不同位数的任意符号。在所示的例中,将第一位数A复制四次并放入第一寄存器52的四个位置中。第二寄存器54存储四个不同的掩码。这些掩码启动与位段A中的位的不同部分的比较。例如,受检验的A的位数可能分别是1、2、3与4。然后将这些与1、2、3与4位的赫夫曼码的最大值进行比较。这四个不同的最大值存储在另一寄存器56中。从而,不是将位数A顺序地与四个不同值比较,这能并行进行,即使要比较的位数是可变的也一样。这一变化是用屏蔽操作来克服的。从而,将相同的位数存储在寄存器中各象素位置中,但借助于屏蔽操作为各象素位置比较不同的位数。
在所示的例中,位段A对应于在最大段M3之内,然后在等式中利用它索引到组合赫夫曼值表58中。通过利用前面的比较的算术结果作为索引,先有技术中需要三次不同的表查找,现在只须进行一次表查找来完成,从而节省了进一步处理时间。
图4说明用于执行本发明的软件的计算机系统的实例。图4示出的计算机系统100包含监视器104、屏幕102、机柜108、键盘214(见图5)、及鼠标器110。鼠标器110可具有一或多个按钮,诸如鼠标器按钮112。机柜108能容纳CD-ROM驱动器106与硬盘驱动器(未示出),它们能用来存储与检索体现本发明的软件程序。虽然CD-ROM 106示出为可卸的介质,其它可卸的现有介质也可利用,其中包含软盘、磁带驱动器、ZIP驱动器,及闪速存储器。机柜108也能容纳诸如处理器、存储器、及诸如此类的熟知的计算机部件。
图5说明用于执行本发明的实施例的软件的典型计算机系统100的简化系统框图。如图1中所示,计算机系统100可包含监视器104。计算机系统100还能包含诸如I/O控制器204、系统存储器206、中央处理器208、扬声器210、可卸盘212、键盘214、固定盘216、及网络接口218等子系统。适用于本发明的其它计算机系统可包含或多或少的子系统。例如,另一计算机系统可包含一个以上处理器208(即多处理器系统)或高速缓冲存储器。诸如220等箭头表示计算机系统100的系统总线体系结构。然而,这些箭头220示例服务于链接子系统的任何互联方案。
例如,可用本机总线将中央处理器208连接在系统存储器206上。同时,可将诸如电耦合器件(CCD)摄像机等图象捕捉设备连接在计算机系统100上用于捕捉图象数据。可通过诸如通用串行总线(USB)等同一或另一总线体系结构将图象捕捉设备连接在计算机系统100上。USB通过使用与设备驱动器的数据库匹配的标识号为100台以上连接的外围设备提供插接与播放支持。也能通过I/O控制器204或网络接口218将USB连接在计算机系统100上。此外,能将计算机系统100配置成通过诸如I/O控制器204或网络接口218与因特网通信。从而,能用多种设备向/自计算机系统100传输数据。图4中所示的计算机系统100只是适用于本发明的计算机系统的一个示例。对于熟悉本技术的人员适用于本发明的其它子系统配置是显而易见的。
本发明能在能单指令多数据(SIMD)执行的任何微处理器中实施。例如,IntelMMXTM微处理器、带视觉指令集的SunUltraAPSRC、高级微设备公司(Advance Micro Device,Inc.)的3Dnow!TM、带流送SIMD扩展的IntelMMXTM等都可使用。为了示例,将描述使用IntelMMXTM的一种实现方案。MMXTM技术是在1997年1月正式引入以加速对CPU要求高的多媒体应用的。MMXTM提供由Intel公司引入的一组指令(57条指令)。它能在同一指令中的64位的单元上执行加、减、乘、逻辑与算术移位。64位单元也能作为8个字节、4个字、2个双字、或一个四重字对待。提供了饱和算术与组装/解开数据的指令以及在MMXTM寄存器与整数寄存器之间传送数据的指令。进一步的关于MMXTM技术的信息可在Intel(1996年)的“Intel体系结构MMXTM技术开发者手册导论”中找到,将其全文结合在此作为参考。
图6为SIMD系统300的简化框图。该系统300包含当前支持一57条指令集的MMXTM处理器302。MMXTM处理器能实现在CPU内或者能另外实现在一分开的芯片中。MMXTM处理器302接收来自寄存器304a-h的数据。各该寄存器304a-h为64位宽。这些寄存器的各个能保持8×8、16×4、32×2、64×1位数据。MMXTM处理器302在一个周期中从寄存器304a-h接收数据及在数据上执行要求的操作。然后将处理过的数据提供给存储器306或返回给寄存器304a-h。存储器306可实现在MMXTM处理器302内或者它也能是共用的存储器。结果,MMXTM处理器302能同时在不同数据上执行相同的操作,从而它具有SIMD体系结构。
图7说明采用USB的系统400的简化框图。摄像机402捕捉图象并将它们提供给位流转换单元404。摄像机402能包含用于将模拟数据转换成数字数据的电路。摄像机402也能包含执行数据压缩与/或编码的电路。摄像机402与位流转换单元404通过连接器406连接。可从本技术中普通技术人员所熟知的若干连接器或总线体系结构中选择连接器406。连接器406最好是USB连接。在一些实现中,USB提供12Mb/sec带宽。连接器406的另一选择可以是Firewire(IEEE1394),它能提供100Mb/sec、200、400或800Mb/sec的带宽。对于某些实施例USB连接较佳,因为它是当前提供高达500mA与5V的供电的总线。能利用USB所提供的电能来运行诸如摄像机402等连接在总线上的设备。此外,USB的实现较便宜。在一些实施例中,由于USB没有与Firewires相同的带宽,可在USB上传输之前首先压缩数据时利用USB。
因此,摄像机402能包含压缩电路以便在将数据发送到位流转换单元404之前压缩捕捉到的图象。摄像机402可以是包含CCD、互补金属氧化物半导体(CMOS)等的用于捕捉图象的任何数目的器件。可将位流转换单元404配置成将串行传输的数据转换成数据分组。例如,位流转换单元404能为各图象帧累积数据并将累积的数据发送给解压单元408。数据帧可以是任何规模的。但最好是352×288个象素。帧也能是320×240、176×144或160×120个象素的块。在一些实施例中,数据帧可以是640×480个象素的块。解压单元408解压与/或解码从位流转换单元404接收的数据。解码可按照赫夫曼编码、算术编码、其它类型的熵编码等。位流转换单元404也能包含用于存储从摄像机402接收的数据及发送给解压单元408的数据的缓冲器。
然后将来自解压单元408的解压后的数据提供给彩色转换单元410。来自解压单元408的数据可是以任何格式但最好是YUV格式,其中Y是亮度,U是色度红(也称作CR),而V是色度兰(也称作CB)。转换单元410将YUV格式数据转换成包含RBG(红、绿、与兰)在内的适合于显示器412的格式。显示器412可以是包含打印机、手持式设备等在内的任何输出设备。系统400还包含能为显示器412、彩色转换单元410及位流转换单元404提供存储的存储器414。存储器414可以是任何类型的存储器,诸如动态随机存取存储器(DRAM)、扩展输出DRAM(EDO DRAM)、同步DRAM(SDRAM)、视频RAM(VRAM)、静态RAM(SRAM)等。此外,位流转换单元404、彩色转换单元410与显示器412可具有它们自己的本机存储器。同时,解压单元408可具有其本身的存储器或在需要时使用存储器414供它存储。
图8说明用于解码赫夫曼编码数据的顺序解码方法500。顺序解码方法500利用下列四表产生解码值。
MINCODE[I]-长度I的码字的最小值;
MAXCODE[I]-长度I的码字的最大值;
HUFFVAL[J]-对应于第J个码字的符号值表;及
VALPTR[I]-对用长度I的码字解码的HUFFVAL中的值的表的起点的索引。
所有码字的最小长度为MinLength而所有码字的最大长度为MaxLength。因此,表MINCODE、MAXCODE及VALPTR的大小等于[MaxLength-MinLength+1]。HUFFVAL的大小取决于码字的数目,并记作N。MINCODE、MAXCODE及VALPTR三表用于为各有效赫夫曼码解码出对HUFFVAL的指针。
在步骤502中,接收位流数据供解码。在步骤504中,将当前码长I设定为MinLength。步骤504还将变量CODE初始化成包含来自步骤502所提供的位流的码字的NEXTBITS[MinLength]。步骤506将CODE的值与MAXCODE[I]比较。如果CODE的值大于MAXCODE[I]的值,指示当前的码字具有大于I的长度,I是在步骤504中首先初始化成MinLength的,步骤506后面是步骤508。在步骤508中,将I的值增加一。步骤508还将位流的下一位读入CODE。步骤508通过在CODE的当前值上执行逻辑左移(SLL)一位,并用来自位流的下一位(NEXTBIT)填充CODE的最低位来更新CODE的值。
另一方面,如果在步骤506中判定CODE的值不大于MAXCODE[I]之值,指示当前码字具有等于或小于I的长度,则步骤506后面是步骤510。步骤510解码符号值。步骤510计算码值指针J然后用J计算符号值。步骤501将J设定为{VALPTR[I-MinLength]+CODE-MINCODE[I-MinLengthJ]}。然后步骤510通过设定VALUE为HUFFVAL[J]来计算符号值。从而步骤510执行三次表查找,包含VALPTR、MINCODE及HUFFVAL,来计算符号值。然后将计算出的符号值(VALUE)提供给步骤512去输出。为下一码字重复顺序解码方法500。
可为各种实现来定制用于编码与解码的赫夫曼表。但大多数编码标准提供缺省的赫夫曼表。下面的表1示出按照JPEG标准的用于亮度DC差的一推荐的赫夫曼表。关于JPEG标准的进一步的信息可在William B.Pennebaker与Joan L.Mitchell的“JPEG-静止图象数据压缩标准”,附录A,ISO DIS 10918-1,要求与指南,F-26页,Van Nostrand Reiuhold,1993中找到,将其全文结合在此作为参考。
在JPEG标准中,MinLength为2且MaxLength为16。进一步将码字分类成按长度加以组合并在各长度组中按递升的值次序排序。MINCODE与MAXCODE中的值为带符号的16位整数。
Huff值 | 码长 | 码字 | Huff码 |
0 | 2 | 00 | 0 |
1 | 3 | 010 | 2 |
2 | 3 | 011 | 3 |
3 | 3 | 100 | 4 |
4 | 3 | 101 | 5 |
5 | 3 | 110 | 6 |
6 | 4 | 1110 | 14 |
7 | 5 | 11110 | 30 |
8 | 6 | 111110 | 62 |
9 | 7 | 1111110 | 126 |
10 | 8 | 11111110 | 254 |
11 | 9 | 111111110 | 510 |
表1
表1中,码字表示来自定位流的实际码字;码长为各码字的长度;Huff码为各码字的值;而Huff值为各符号的赫夫曼码。
以表1中的值为例,Min Length=2及Max Length=9,顺序解码方法500所利用的三个表的表值如下:
MINCODE[8]={0,2,14,30,62,126,254,510};
MAXCODE[8]={0,6,14,30,62,126,254,510};及
VALPTR[8]={0,1,6,7,8,9,10,11}
例如,考虑一进入位流“010”,步骤504将I设定为2并将CODE设定为“01”。步骤506将返回“是”,因为“01”大于为0的MAXCODE[2-2]。在步骤508中,将I增加到3并将OCDE设定为“010”。再度重复步骤506而这一次它将返回“否”,因为“010”小于为6的MAXCODE[3-2]。然后步骤510将J设定为等于1。步骤510还查找HUFFVAL[I]的符号值并在步骤512中输出这一符号值(VALUE)。
从而,顺序方法500重复地将位流移位到CODE中并将当前码与相同长度的最大码比较。一旦知道了码长,各值的解码需要两次加法与三次表查找。这一算法本质上是顺序的,因为码长是顺序地检验的。这便是在检验长度I之前,没有实际码长是否I,I+1,I+2等的指示。
图9说明按照本发明的实施例的解码赫夫曼编码数据的并行解码方法600。为了示例,将描述对图6讨论的并行解码方法600的一种实现。同样,在示例实施例中利用相对于图8与表1讨论的样本JPEG值。然而并行解码方法600可在能够SIMD执行的任何处理器上被执行,其中这些处理器包含IntelMMXTM微处理器、带视觉指令集的SunUltra SPARC、高级微设备公司的3DNow!TM、带流送SIMD扩展的IntelMMXTM等。
如上面详述的,MMXTM技术能在同一指令中在64位单元上执行操作。也能将64位的单元作为8个字节、4个字、2个双字或一个四重字进行处理。对于按照来自表1的值的实例,可将64位作为四个16位寄存器(或4个字)对待,因为表1中的最大码字长度为9。对于图9的示例实施例,利用MMXTM指令PSRL、PSLL、及PSRA来移位选择的变量的内容。PSRL表示组合逻辑右移。PSLL表示组合逻辑左移而PSRA表示组合算术右移。
并行解码方法600在步骤602中接收位流。在步骤604中将位流排列成little-endian格式的4位部分(或四重位)。这表示如果原始位流具有格式b0,b1,b2,b3,…(其中bi代表字节i),则转换后的位流将具有格式:b1,b0,b1,b0,b1,b0,b1,b0,b3,b2,b3,b2,b3,b2,b3,b2,b3,b2,…。
对于每一16位字,这一转换可用5.5个周期实现。在步骤606中,初始化I、MASK与CODE4的值。如上面对JPEG实例讨论的,将I初始化成2。步骤606将CODE4初始化成来自位流的第一组4×16位码(或四重位)。并行解码方法600在步骤608中用MASK屏蔽出用于比较操作的位。将MASK的初始值设定为“1100,0000,0000,0000,1110,0000,0000,0000,1111,0000,0000,0000,1111,1000,0000,0000b”或“0×C000,E000,F000,F800”。这是码长2至5的位掩码,它们将在并行解码方法600的第一迭代中被检验。
在步骤608中,用MASK的值屏蔽掉CODE4。步骤608还将MAXCODE4设定为MAXCODE4_P[I~I+3],后者表示对于I,I+1,I+2与I+3的MAXCODE4_P的值。相应地,MAXCODE4将为四个接连的码长保持最大值。因为MAXCODE4的四个值是在单一指令中加载的,可将用于并行解码方法600的MAXCODE表生成如下:
I=0 While I is less than(Maxlength-Minlength+2)do(当I小于 (Maxlength-Minlength+2)时) J=(I/4)*4+3-I%4 MAXCODE_P[I]=(2(16-Minlength-J)*MAXCODE[J]+1 I=I+1 End while(结束)
其中“/”表示舍位除法及“%”表示模运算。MAXCODE4-P之值为不带符号的16位整数。必须为各赫夫曼表示成MAXCODE表一次。
取与相对于图8所讨论的顺序赫夫曼解码算法中相同的实例,用于并行算法的MAXCODE表具有下列的值:
MAXCODE_P[8]={61441,57345,49153,1,65281,65025,64513,63489}
对于一实例,表的尺度必须是4的倍数。并且,对于不存在在赫夫曼码表中的码长假设为零。
在步骤610中,将MAXCODE4的值与步骤606与608中初始化与屏蔽的CODE4比较。在使用MMXTM技术的实施例中,由于MMXTM指令PCMPEQ只比较带符号的字,这一比较操作能用带饱和的一次不带符号的减法及一次与零的比较来进行。可将MAXCODE的值存储在MAXCODE4中。如果发现CODE4大于MAXCODE4,则在步骤612中将I增加4并通过将MASK的值向右算术移位4位来更新MASK。MASK的新值将为下面剩下的4个码字长度(6至9)建立位屏蔽。步骤612之后,重复步骤608与610。从而,对于表1的实例,步骤608与610重复两次,一次用于码字长度2至5而一次用于码长度6至9。
一旦步骤610返回“是”,步骤614判定正在检验的四个长度中哪一个包含该符号。从而,步骤614计算设定为[MAXCODE4-CODE4-1]向右逻辑移位4位的DIF的值。步骤610还执行表查找来提供找到的符号值(VALUE)。步骤614在表HUFFVAL_P中查找符号值(VALUE)。
对于这一实例,假设1<I<17,则可用[I+16*(MAXCODE[I]-CODE)]作为索引来建立HUFFVAL_P表。令:
M=max(MAXCODE[I]-MINCODE[I]);及
I=0,1,2,…,Max Length-Min Length。
HUFFVAL_P表将具有[16*(M+2)]的大小。令COENUM[I]表示码长为(I+Min Length)的码字的数目。令CODE[I]表示第J个码长为I的码的码值。大HUFFVAL表的表项可计算如下:
I=0 While I is less than(Maxlength-Minlength+1)do(当I小于 (Maxlength-Minlength+1)时) J=Q While J is less than CODENUM[I]do(当J小于CODENUM[I]时) HUFFVAL_P[I+16*(MAXCODE[I]+1-CODE[J])]= HUFFVAL[VALPTR[I]+CODE[J]-MINCODE[I]] J=J+1 <dp n="d17"/> End while(结束) I=I+1 End while(结束)
从而,HUFFVAL_P表中的值将是取决于赫夫曼码的数目的无符号16位整数的最大大小。通过将顺序方法的三次表查找组合成一次,明显地减少索引赫夫曼码值所需的指令。同时,减少表查找次数节省了宝贵的寄存器空间。并且,注意(MAXCODE[I]+1-CODE)是在确定码长时计算的及可为这一表查找利用。
在步骤616中,输出计算的符号值(VALUE)。一旦在步骤614中确定了当前赫夫曼码的码长,便能左移当前的4×16位码字并将来自下一4×16位码字的相同数目的位移入。然后开始下一个赫夫曼码的解码。
从而,并行解码方法600一次从位流中读入4位数据。并行检验各接连的4位长度来判定当前的码字是否落入这一范围中。代替顺序算法中所需的16次检验来覆盖范围1至16,只需四次检验来覆盖同一范围。另一重大改进是将用于解码的三次表查找组合成单一的表查找。这具有减少计算及寄存器使用的效果,这在许多场合是非常宝贵的。长度1至8的样板实施例
上面讨论的示例实施例假定码字具有2与9之间的长度、然而,如果码字的长度在1与8之间,解码可在8位单元上进行。每一码字需要最多一次而不是8次检验。这要求将位流扩张成8×8位。例如,如果输入位流是“b0,b1,…”(其中bi代表字节i),转换后的位流将是“b0,b0,b0,b0,b0,b0,b0,b0,b1,b1,b1,b1,b1,b1,b1,b1,…”。初始位掩码现在是“10000000,11000000,11100000,11110000,11111000,11111100,11111110,11111111b”或“0×80C0,E0F8,F8FC,FEFF”。
表项将生成如下:
I=0 While I is less than(Maxlength-Minlength+1)do(当I小于 (Maxlength-Minlength+1)时) J=(I/8)*8+7-I%8 MAXCODE_P[I]=(2(8-Minlength-1)*MAXCODE[J]+1 I=I+1 End while(结束) I=1 While I is less than 9 do(当I小于9时) J=0 While J is less than CODENUM[I]do(当J小于CODENUM[I]时) HUFFVAL_P[I+8*(MAXCODE[I]+1-CODE[J])]= HUFFVAL[VALPTR[I]+CODE[J]-MINCODE[I]] J=J+1 End while(结束) I=I+1 End while(结束)
HUFFVAL_P表的值将是无符号8位整数,MAXCODE_P表的值将是无符号8位整数。长度1至32的样板实施例
如果码字长度在1与32之间,解码可在32位的单元上进行。需要最多8次而不是16次检验来确定码字长度。位流扩充至2×32位格式如下:
输入位流:b0,b1,b2,b3,b4,b5,b6,b7,…
输出位流:b3,b2,b1,b0,b3,b2,b1,b0,b7,b6,b5,b4,b7,b6,b5,b4,…
初始位掩码现在是“10000000,00000000,00000000,00000000,11000000,00000000,00000000,00000000,00000000b”或“0×8000,0000,C000,0000”。
表项可计算如下:
I=0 While I is less than 32 do(当I小于32时) J=(I/2)*2+1-I%2 MAXCODE_P[I]=(2(32-Minlength-1)*MAXCODE[J]+1 I=I+1 End while(结束) I=1 While I is less than 32 do(当I小于32时) J=0 While J is less than CODENUM[I] do(当J小于CODENUM[I]时) HUFFVAL_P[I+32*(MAXCODE[I]+1-CODE[J])]= HUFFVAL[VALPTR[I]+CODE[J]-MINCODE[I]] J=J+1 End while(结束) I=I+1 End while(结束)
从而,MAXCODE_P表的值将是无符号32位整数。表HUFFVAL-P的值将是无符号32位整数的最大大小。性能估计
所提出的并行赫夫曼解码算法已在MMXTM汇编代码中实现。对于这一节,将初始位流扩张成4×16位部分的CPU时间包含在解码时间中。
如果长度I的码字以2-1的概率出现,则长度I的码字的概率将是CODENUM[I]*2-1。令T[I]为解码长度I的码字的时间,则一个符号的平均解码时间可计算如下:
假定用顺序算法压缩10个公共中间格式(CIF)画面并且其中只有四分之一的离散余弦变换(DCT)系数是用RUN-LEVEL符号编码的,要解码的赫夫曼码字的个数可计算如下:
(352*288/4)*10=253,440
虽然在本例中选择了DCT,本技术中的普通技术人员显而易见能利用任何变换,诸如差分脉码调制(DPCM)、子波、分波段变换、矢量量化等。下面表2中示出使用带MMXTM和166MHz IntelPentium处理器的最佳情况(其中所有码字为2至5位长)、最坏情况(其中所有码字为12至15位长)及平均情况(其码字长度分布在2至16位之间)的解压计时。
解码时间(msec) | 并行赫夫曼解码 |
最佳情况 | 111 |
平均情况 | 113 |
最坏情况 | 218 |
表2
表2展示并行算法极大地降低最坏情况定时,同时给予平均情况优越的性能。同时,注意通过进一步优化汇编代码可达到甚至更好的结果。
如本技术中普通技术人员所理解的,本发明可以以其它特定形式实施不脱离其精神或主要特征。例如,也能将本发明的技术应用在其它SIMD系统上,例如也能利用带视觉指令集的SunUltraSPARC高级微设备公司的3Dnow!TM等。
并且,PentiumII的后继者Intel的新PentiumIII(也称作Katmai)增加了流送SIMD扩展。PentiumIII提供了70条新指令。许多指令是用于瞄准3-D应用的浮点SIMD运算。几条用于固定点数运算的指令也被加上。这些指令部分地瞄准MPEG编码/解码(运动估算、运动补偿)。然而,本技术中的普通技术人员会理解也能利用这些新指令来进一步加速本发明的解码技术。例如,Min与Max运算能加快码长检测。传输整数寄存器与一部分MMXTM寄存器的插入指令也提供加速。类似地,广播指令能以更高效方式复制位流。
此外,能在计算机系统中实现本发明的技术。例如,可在外围设备部件互联(PCE)卡上实现方法500与600。可将PCI卡安装在个人计算机的PCI总线上。同时也能利用诸如NUBUS、ISA、EISA、通用串行总线(USB)、1394Firewite、及加速图形端口(AGP)等其它总线技术。此外,通过利用诸如高速缓冲存储、新指令集、多处理器系统及它们的等效物等可获得的例程与特征能实现本发明的技术。III.渐晕纠正
图2的寄存器34允许进行渐晕纠正,从而允许在摄像机22中使用较便宜的镜头10。这允许将摄像机的成本降得更低。
操作中,主机36中的处理器询问摄像机以读取器34的值。然后将其用于主机的渐晕纠正单元40去纠正摄像机的渐晕缺陷。这是在单元42的象素纠正之前进行的,以免误将渐晕当作有缺陷的象素。这一纠正能通过在所提供的象素亮度值上加上偏移值来完成。
图10说明象素阵列11及Y轴上的对应亮度曲线13。具有值(x0,y0)的中心象素17对应于镜头的最大亮度点。第二样本象素15接近最小亮度,展示具有曲线13与最大亮度值19之间的差的渐晕效应。本发明在X与Y方向上纠正这一渐晕效应。
在一个实施例中,示出用rT指示的阈值,在其以内曲线13接近最大值19,而不需要施加渐晕纠正。作为替代,可将纠正施加在所有象素上以避免点rT上的任何过渡效应。
取决于所选用的具体镜头,可用其特定的渐晕量来提供寄存器72中的一个常数。从而,通过简单地将不同的常数值编程进入寄存器72中,便能在制造摄像机时使用不同的镜头。这允许使用多种来源的镜头,并允许逐批或逐个制造商地补偿镜头质量的变化。
下面列出用于实现的等式及执行渐晕纠正的硬件或软件的一个实施例。虽然该常数是存储在摄像机中的,渐晕纠正可用摄像机中的硬件/软件或主机中的软件完成。低质量镜头的渐晕效应可模型化为通过镜头中央及靠近镜头边沿的抛物线。变换函数是各向同性的。令Pi与Po为渐晕纠正之前与之后的象素值,而x0,y0为镜头中心的坐标(如果镜头是正确地安装的,应是图象中心)。则
P0=Pi *(α*r2+1)
=Pi *(α*((x-x0)2+(y-y0)2)+1
“α”为一个小的正常数。谨慎地说,最大能纠正50%的渐晕,这意味着:
1.0=0.5*(α*(176*176+144*144)+1)
α=1.9338*10-5
用226正规化,这将给出α=1298。通过将α限制为0至1023,并执行逆运算,最大可纠正的渐晕为56%。
注意在上面给出的公式中,并未计入象素的纵横比。对于正方形象素,公式是精确的,对于12/11纵横比,结果稍有偏差。同时,如果传感器规格为非缩放的QCIF(通过在水平与垂直两个方向上隔一个留一个象素从CIF二次抽样的QCIF),α将被缩放1/4。
如果yi是10位,(x-x0)2与(y-y0)2为16位(对于CIF尺寸),且y0为10位,这确定α必须是10位(0至1023)。
图11为用于实现上述公式的硬件系统或软件单元的一个实施例的框图。具体地,在多路复用器82的选择的输入上作用一可选用的选择电路/单元80。当象素位置小于阈值r2时,将线路84上的输入象素pi简单地传递通过到线路86上的输出象素p0。如果大于阈值,通过用图11中所示的硬件实现上面的公式来施加渐晕纠正。
具体地,将该象素的当前x值xi作用在算术电路/单元88上,在那里从它减去中心象素x0。然后通过多路复用器90将其输入两次作用在乘法电路/单元92上来平方这一值,在那里将其累计在加法/累加器94中。类似地,将y值yi提供给电路/单元96,在那里确定与中心y值y0之差。类似地将其作为两个值通过多路复用器90作用在乘法器92上,在那里将其平方并提供给加法/累加器,在那里将其加在平方的x值上。多路复用器的使用简单地用时分多路复用允许将同一乘法器92用于两种计算。明显地,另一方案是提供两个独立的乘法单元。
然后将累加器94的输出提供给第二乘法器96,在那里将其乘以来自寄存器72的常数值。然后在单元98中减去1,并在乘法器100将这一值乘以象素值pi。在线路102上通过多路复用器82将该输出提供给输出线路86。显而易见可提供电路的变型,诸如将同一乘法电路用作乘法器92、96与100,在不同的时隙中将乘法器用于不同目的。
选用的电路/单元80提供比较器104,它将加法/累加器94的输出(x2+y2值的半径值)与寄存器106中的阈值半径比较。
最好,常数α与象素值pi具有相同的位数。从而,如果pi为10位而x与y值为16位时,常数α是10位。同时,如果传感器规格为未缩放的QCIF(修剪的)则α可被缩放1/4。从而,在渐晕纠正之前修剪图象时提供了纠正。
此外,在使用TV时通过将y值乘以11/12能对象素纵横比进行纠正。
在一个实施例中,纠正只在预定义的直径外面进行。这假设在镜头中心周围镜头满意地工作,这通常是合理的假设。这样做能导出更精确的纠正模型。令rT为可在其中忽略渐晕效应的直径。则
如果r<=rT,
p0=pi,
如果r<=rT,
p0=pi *(α*(r2-rT 2)+1)
=pi *(α*(((x-x0)2+(y-y0)2)-((xT-x0)2+(yT-y0)2))+1)
从而,本发明允许使用多种镜头及使用较便宜的镜头。它改进主计算机中的AGC与AWB。此外,它允许更好的目标运动跟踪。目标运动的进行通常通过假定亮度值与目标运动到传感器边沿时相同并从而通过寻找相同亮度值来跟踪。明显地,渐晕效应能妨碍定位目标的努力。通过在接近传感器处作用渐晕纠正,能加以克服。本发明还提供整体改进的图象质量。IV.象素纠正
图2的单元42在主机中执行象素纠正。这能够纠正CMOS或CCD传感器阵列上的有缺陷的检测器位置。通常,这是通过将亮度值与相邻检测器元件的亮度值进行比较来完成。如果差大于阈值,假定这是由有缺陷的传感器元件导致的。从而,代入纠正值,它通常是周围象素值的平均值。
为了在主机中完成这一操作而不影响视频帧速度,将算法保持简单。这是通过两个基本特征实现的。,首先有缺陷象素检测不是在任何帧上进行的,而只在帧的子样本上进行。例如,检测只在每32-128帧进行一次。第二,统计保持简单,以减少所需的处理量。具体地,统计可以只包含素元件的位置及检测到有缺陷的象素的频率或次数。
系统通过从图象拾取器件中读出或扫描原始图象数据中的变化大于相邻象素的强度中的特定量的象素来进行工作。原始图象传感器数据便是从图象传感器得到的未经过任何有损失的压缩或彩色处理的未处理过的亮度数据输出。图象传感器读出模拟电压或电流,转换成数字并将信号不加进一步处理或压缩发送给主机。图象传感器上的光格点用于捕捉彩色或单色数字静止或视频图象。以诸如通用串行总线(USB)或并行端口等特定总线的总线协议所确定的数据传输率在总线上将原始图象数据发送给智能主机。
将原始图象传感器数据、各有缺陷象素的位置与出现频率、及计算机程序所执行的所有中间计算的结果全部存储在存储器中。然后用其它算法求出异常象素的相邻象素的平均值来取代来自有缺陷的象素的数据。然后便能进一步处理纠正后的数据并将其最终显示在监视器上。该处理包含视频二次抽样,意味着检测是在各种帧间隔上进行及重复的。视频二次抽样是在每128帧之一上进行的(1/128)。此外,视频二次抽样可在每1/64视频帧上进行。在又另一实施例中,视频二次抽样是在每1/(n乘x)帧上进行的,其中n为整数而x不等于50或60。50与60对应于50Hz与60Hz,50Hz与60Hz分别是在美国和欧洲使用的AC照明频率。这样,便能保证异常原始数据象素不是人工照明系统的人为产物。采用视频二次抽样允许快速与最佳的纠正而无须扫描每一帧。这会不利地冲击处理器与系统的处理速度。当然,在检测与纠正静止图象中的有缺陷象素时不采用视频二次抽样。
生成记录有缺陷象素的位置与出现频率的统计数据库并将其存储在存储器中以便系统随时学习及适应其操作。存储了来自统计数据库的趋势,以便随时能将真正的异常象素能与目标图象中的真实异常、照明或其它环境引起的异常的虚假检出加以区别。下面描述统计数据库的操作逻辑与计算机程序的操作细节。
图12说明描述实现在按照本发明的一个实施例的用于检测与纠正有缺陷的象素的系统中的软件程序的功能的简化流程图。有缺陷的象素检测与纠正中的第一步骤包含从一图象传感器阵列获取一部分帧原始图象数据,步骤1210。原始图象数据可以是对应于数字化的实况场景的数据或对应于标准或“黑”背景图象的数据。“黑”背景图象可通过减少传感器阵列的积分时间或减少图象信号的增益获得。可将来自“黑”图象的原始数据以检测活跃光格点。对应于“黑”图象的原始数据可以是黑的,而如果任何象素不是这样,则它对应于一过度活跃的光格点。“黑”图象的使用能通过消除源于场景本身的任何亮度偏移来增强有缺陷的象素检测。
虽然能为有缺陷的象素检测与纠正一次处理来自整个帧的数据,当来自三行图象传感器的数据到达主机时算法便立即开始其功能。来自图象传感器阵列的三行数据允许处理一个象素及其所有周围相邻象素的数据。再者,当正在用传感器阵列捕捉视频图象时,采用视频二次抽样,因以使是图象传感器阵列所捕获的每一视频帧都是有缺陷象素检测所需的。在较佳实施例中,缺陷检测是在上述预定的帧间隔上进行的,而纠正则作用在所有视频帧上,视频二次抽样的明智使用使本方法非常快捷与高效。
在另一实施例中,不采用视频二次抽样而在每一视频帧上进行有缺陷象检测。视频二次抽样的采用是智能主机的处理器速度的函数。如果处理器快得足以在每一帧中检测异常象素,则不采用视频二次抽样。反之,如果处理器不够快而不允许在要求的帧速率上进行视频处理,则采用视频二次抽样来保证在该要求的帧速率上的数据传输。不用视频二次抽样,异常象素纠正是立即的,使得缺陷就在检出它们的帧中得到纠正。用视频二次抽样,异常象素纠正被延迟直到抽样一帧来检测异常象素。因此,采用视频二次抽样的选择及二次抽样率是处理器速率的函数及处理器能力及纠正前的延迟之间的折衷。
为各获得的象素进行数据采集之后,计算与存储本地象素亮度值及其所有紧邻象素的平均亮度值,步骤1212。接着,设定偏移阈值,步骤1214。该偏移阈值确定象素的亮度值与其所有紧邻象素的平均亮度值之间可接受的变动范围。接着为各获得的象素计算本地亮度偏移,步骤1216。本地亮度偏移是象素的亮度值与其所有紧邻象素的平均亮度值之间的差的绝对值。
接着,为已获得数据的各象素,将其本地亮度偏移与偏移阈值比较,步骤1218。然后将其本地亮度偏移超过阈值移值的任何象素标记为有缺陷的象素。然后将各有缺陷的象素的物理位置与出现频率记录在统计数据库中,步骤1220。然后查询统计数据库来确定是否应纠正该有缺陷象素的数据值,步骤1222。统计数据库通过存储有缺陷象素的位置与频率,导出确认哪些有缺陷象素有理由纠正的长期趋势。来自统计数据库的趋势的逻辑初始将认可所有加标记的有缺陷象素的纠正作为一缺省值,并只有在最近四次查询中至少有两次出现的频率的特定象素才长期保证象素纠正。
接着纠正已通过统计数据库过滤的有缺陷象素,步骤1224。为了纠正有缺陷的象素,用该象素的本地平均亮度值取代有缺陷象素的错误的原始亮度数据,前者是其所有紧邻象素的平均亮度值。接着,准备好发送来自有缺陷的象素的纠正后的数据以及来自无缺陷的象素的数据供下面的处理,步骤1226。下面的处理可包含压缩、彩色处理及编码成适用于显示的数据格式。有缺陷象素检测与纠正是在来自图象传感器阵列的原始数据上进行的,因为由于处理本身可能引入难于与作为有缺陷的光格点的后果早已产生的赝象区别的人为现象,最好在发生任何后面的处理之前纠正数据。
有意识地将软件算法保持非常简单,以便处理器负荷与/或视频帧速率受到最小的影响。首先,软件算法被保持简单,因为它只执行三种功能,即检测、纠正与统计操作。统计例程保持简单因为只跟踪异常象素的位置信息及出现频率。第二,将软件算法保持简单以便在将数据传输给主机的速率上具有最小的冲击,从而正在扫描一帧中的有缺陷的象素时,并不阻塞后面的帧。软件算法的最大冲击是最坏将视频数据传输率从每秒10帧(fps)降低到9fps,第三,将软件算法保持简单使得在执行该算法时主机处理器的负荷不增加于1%。异常象素是在一帧中检测的而纠正是稍后在从图象传感器中读出时的后面的帧上实行的。
因此,当系统正在工作时,随着获取来自图象传感器的原始数据及将其发送到主机上去处理,如上所述地捕捉帧供有缺陷象素检测与纠正。一旦识别出有缺陷的象素并经统计数据库认可其纠正,后面所有的帧将继续这一纠正直到对统计数据库作出下一次查询为止。如果此时继续将初始加标记的有缺陷象素指定为有缺陷的,则纠正将继续进行,如上所述。反之如果统计数据库并不认可有缺陷纱的纠正,则不再纠正这些象素直到作出对统计数据库的下一次查询为止。本系统的动态本质也允许对来自由于制造后环境改变而引起的成为长期有缺陷的光格点的数据的纠正。
缺陷检测与纠正算法的统计分析段是任选的。它的目的在于提高象素纠正的效率,以便不纠正不是由有缺陷的光格点导致的异常并从而节省处理时间与负荷。然而,效率的收益必须与统计分析部分本身施加的负荷平衡。在另一实施例中,不采用统计分析部分,将加上标记为缺陷的所有象素加以纠正。如在选择使用还是不使用视频二次抽样中,采用缺陷检测与纠正算法的统计分析部分的决策取决于效率与处理器能力之间的折衷。如果处理器足够快,则效率考虑不那么重要。反之,如果处理器不够快,则象素纠正效率变得足够重要而认可缺陷检测与纠正算法的统计分析部分的实现。
如本技术中的熟练技术人员所理解的,可用其它特定形式实施本发明而不脱离其主要特征。例如,可改变视频二次抽样率,或完全不进行视频二次抽样。此外,可将任选的统计数据库的逻辑从纠正有缺陷象素作为一缺省的逻辑改变成只有在来自统计数据库的趋势认可时才纠正有缺陷的象素的逻辑。V.无帧缓冲存储器
消除摄像机中的处理能消除帧缓冲存储器,由于不需要为这一处理存储数字象素数据。然而,另一潜在问题是来自传感器的数据输出需要被一直保持到总线的可获得为止。这需要非常大的缓冲存储器。在一个摄像机的实施例中,只在总线接口中使用小的缓冲器。通过将读取传感器的时间的定时控制成对应于主机总线可获得的时间,及只读取到下一次可获得总线为止能缓冲存储的数据量便可达到一小缓冲器。
图13为按照本发明的摄像机的框图。这一系统包含镜头1310及诸如CMOS传感器阵列1312等传感器阵列,并连接在USB1320上。
不是象先有技术中那样将来自CMOS传感器芯片的数字化信号存储在帧缓冲存储器中,而是将其直接提供给数字处理电路1348。首先将它们提供给执行压缩及诸如修剪、缩放与数字滤波等其它任选功能的视频数字信号处理器1350来减少数据传输。一旦经过了处理,便将数字数据提供给总线接口1354。
总线接口1354包含总线控制器缓冲器1356与总线控制器1358。缓冲器1356至少存储来自CMOS传感器行的一行数据。最好,总线控制器缓冲器1356能存储最大可能速率上的两个USB帧,即2K字节。取决于帧速率、压缩率等,这通常可改变到高达10行,或者如果进行分样甚至可达到5-20行。
总线控制器1358在线路1360上提供控制信号来定时与控制发生器1326。定时发生器1326在线路1364上提供时钟信号给CMOS传感器阵列1322。时钟信号1364包含行与列传输脉冲。列传输脉冲是象先有技术中那样提供的,周期性地加载来自CMOS传感器阵列的充电的值。然而,行传输脉冲是变化的以便使出自CMOS传感器阵列的数据读取与下面的电路的处理和到USB的数据传输匹配。
在一个实施例中,数字处理电路1348与CMOS传感器阵列1312、定时发生器1326、ADC1328、及行与列逻辑与缓冲器集成在同一半导体芯片基板上。帧缓冲器的消除允许这一单一芯片。这允许构成更紧凑、较便宜的摄像机。
图14说明在线路1364上提供的行传输脉冲的定时。不是连续的脉冲流,这些位是在所示的成群的处理电路需要时被输出的。发布第一群三行1466,然后在处理这些象素及将其传输给总线时有一段延时。然后可提供下一群两行1468。取决于线路缓冲器的可获得性及到USB上的传输定时,可能有一段延时。示出了下面传输的单行1469,后面跟随用若干脉冲1470传输的4行的一后继群。传输了整个图象之后,提供垂直传输脉冲1472。图14的实例意在简单地示例说明。注意因为行传输脉冲是在相同的列脉冲之间提供的,为了能示出间隙,将这些脉冲提供得更紧地靠近在一起。从而,提供小脉冲群的脉冲串以便在电路能处理它们时尽快地发送象素数据。在一个实施例中,在一系列紧密地间隔开的脉冲中定时输出整个图象,使下一个列传输脉冲之前能完成处理。如果在下一个列传输脉冲的时间上仍未完成处理,可能有一段延时,它符合处理的定时及USB的可获得性。从而,行脉冲可以完全是顺序提供的,但在比先有技术快的速率上,并可将列脉冲后面的这一脉冲的群的定时改变成紧接下一个列脉冲之后或正好在其前面,以便接受处理及总线定时。VI.无压缩
在本发明的一个实施例中,可消除图2的压缩单元26及解压单元38。这可在例如开发出具有更高带宽的新的USB时进行。然而,如果研制出提高灵敏度的传感器,允许传输更高分辨率的视频图象数据,而用尽可利用的额外带宽,前面的实施例的仍然是令人满意的。然而,一个实施例通过消除对压缩的需要而得益于额外的带宽,从而进一步简化摄像机并其成本。
图2中所示的相同主要功能(除外解压)可在主机中执行。摄像机在一个实施例中仍包含纠正寄存器34而允许使用廉价的镜头10。VII.有损失的压缩
在另一实施例中,可利用有损失的压缩方法。有损失的压缩意味着恢复的图象可损失一些分辨率。有损失的压缩的缺点在于会降级在主机中进行的任何渐晕或象素纠正。从而,在这另一实施例中,渐晕纠正与象素纠正是在摄像机自身中完成的。这允许将有损失的压缩单元用作图2的单元26。彩色处理与缩放操作仍在主机中执行,从而提供比图1的先有技术简单的摄像机。
熟悉本技术的会理解,可用其它特定形式实施本发明而不脱离其主要特征。例如,在一个实施例中,纠正寄存器除了镜头的特征之外能纠正制造时可能逐个摄像机改变的摄像机特征。代替物理共同总线,可将数据从摄像机无线传输给主机,或到连接在主机上的接收机。主机本身可以是个人计算机、智能因特网设备、或带有某种处理器或处理电路的任何其它设备或部件。从而,上文中的描述旨在作为下面的权利要求中所提出的发明的范围的示例而非限制。
Claims (14)
1、一种摄像机系统,包括:
(a)摄像机,具有
图象传感器,及
用于执行数据压缩的处理元件;
(b)耦合在所述摄像机上的接口;以及
(c)用于接收来自所述接口的压缩数据的处理单元,所述处理单元配置成执行
解压所述压缩数据,至少一部分所述解压操作是并行执行的,
异常象素纠正,及
彩色处理;
使得在所述摄像机中不需要异常象素纠正与彩色处理电路,并且所述异常象素纠正是在所述彩色处理之前执行的。
2、如权利要求1的摄像机,其中所述摄像机包含一镜头,及所述处理单元进一步配置成为所述镜头执行渐晕纠正。
3、如权利要求1的摄像机,所述摄像机中还包括一存储器单元用于存储对应于所述镜头的渐晕量的一常数值。
4、如权利要求1的摄像机,其中将所述异常象素纠正设计成通过包含视频二次抽样来确定有缺陷象素及只统计记录象素位置与关于检测到的有缺陷象素的频率的数据来减少其在视频帧速率上的冲击。
5、如权利要求1的系统,其中所述处理单元包括具有用于并行操作寄存器中的多个象素的指令的一处理器,所述处理器被编程用于解压可变大小的压缩编码的数据流,其中至少一部分解压操作是在所述寄存器中的多个字段上并行执行的。
6、如权利要求5的系统,其中所述数据流是用赫夫曼编码压缩的,及所述操作包含:
复制来自所述数据流的一组位以在第一寄存器中的多个位置中提供复制品;以及
在第二寄存器中的值与所述复制品之间并行执行运算,不同的值被用于各复制品。
7、一种摄像机系统,包括:
(a)摄像机,具有
图象传感器,及
耦合在所述图象传感器上的模数转换器;
(b)耦合在所述摄像机上的接口,所述接口为能被其它外围设备同时使用的共用接口;及
(c)用于接收来自所述接口的数字数据的处理单元,所述处理单元配置成执行
异常象素纠正,及
彩色处理;
使得在所述摄像机中不需要异常象素纠正与彩色处理电路,及所述异常象素纠正是在所述彩色处理之前执行的。
8、如权利要求7的系统,其中所述摄像机还包含用于压缩来自所述模数转换器的数字数据的处理装置。
9、一种在具有用于在寄存器中的多个象素上并行操作的指令的处理器中解码赫夫曼压缩数据流的方法,包括:
复制来自所述数据流的一组数据以在第一寄存器的多个位置中提供复制器;及
在第二寄存器中的值与所述复制品之间并执行运算,将不同的值用于各复制品。
10、如权利要求9的方法,还包括:
在索引操作中利用所述运算结果来索引赫夫曼解码值的表。
11、一种摄像机,包括:
图象传感器;
耦合在所述图象传感器上的模数转换器;
用于保持对应于所述摄像机的一个方面的纠正因子的值的存储器单元,所述值是可传输到一远程主机的;及
耦合在所述模数转换器与所述存储器元件上的用于与所述远程主机建立通信的接口。
12、如权利要求11的摄像机,还包括一镜头,及其中所述值为镜头渐晕值。
13、一种检测与纠正取自用于获取数字化图象的图象传感器的原始数据中的有缺陷象素的方法,其中所述原始数据包含正常象素与有缺陷象素,所述方法包括下列步骤:
(a)接收所述图象中的各象素的原始数据信号;
(b)为从所述图象传感接收的各象素计算亮度值;
(c)为从所述图象传感器接收的各象素计算本地亮度值;
(d)为从所述图象传感器接收的各象素计算所述亮度值自所述本地亮度值的一本地亮度偏移;
(e)设定偏移阈值;
(f)为从所述图象传感器接收的各象素,将其本地亮度偏移与所述偏移阈值比较,并将具有大于所述偏移阈值的本地亮度偏移的象素指定为有缺陷象素;
(g)将所述有缺陷象素的位置记录在统计数据库中;
(h)将所述有缺陷象素的出现频率记录在所述统计数据库中的;以及
(i)如果来自所述统计数据库的趋势认可纠正,便纠正所述有缺陷象素的亮度值。
14、一种操作摄像机的方法,包括下述步骤:
从图象传感器阵列读取图象数据;
在视频数字信号处理器(DSP)中处理所述图象数据,所述处理包含执行图象压缩;
将处理后的图象数据提供给总线;及
提供时钟信号给所述图象传感器阵列以便在对应于所述总线上的数据传输率的速率上从所述图象传感器阵列传送图象数据,使得不需要用于存储所述图象的整个帧的帧缓冲存储器。
Applications Claiming Priority (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/343,934 | 1999-06-30 | ||
US09/345,167 US6833862B1 (en) | 1999-06-30 | 1999-06-30 | Image sensor based vignetting correction |
US09/345,167 | 1999-06-30 | ||
US09/343,934 US6580828B1 (en) | 1999-06-30 | 1999-06-30 | Fast decoding |
US09/464,364 | 1999-12-15 | ||
US09/464,364 US7009644B1 (en) | 1999-12-15 | 1999-12-15 | Dynamic anomalous pixel detection and correction |
US09/602,547 US6704359B1 (en) | 1999-04-15 | 2000-06-21 | Efficient encoding algorithms for delivery of server-centric interactive program guide |
US09/602,547 | 2000-06-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1365569A true CN1365569A (zh) | 2002-08-21 |
CN1391725A CN1391725A (zh) | 2003-01-15 |
Family
ID=27502681
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN00900004U Expired - Fee Related CN2567940Y (zh) | 1999-06-30 | 2000-06-29 | 摄像机设备 |
CN008110204A Pending CN1391725A (zh) | 1999-06-30 | 2000-11-29 | 弹性波装置 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN00900004U Expired - Fee Related CN2567940Y (zh) | 1999-06-30 | 2000-06-29 | 摄像机设备 |
Country Status (3)
Country | Link |
---|---|
CN (2) | CN2567940Y (zh) |
DE (1) | DE20080319U1 (zh) |
WO (1) | WO2001001675A2 (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8188878B2 (en) | 2000-11-15 | 2012-05-29 | Federal Law Enforcement Development Services, Inc. | LED light communication system |
FI113132B (fi) * | 2001-06-28 | 2004-02-27 | Nokia Corp | Menetelmä ja laite kuvanparannukseen |
DE60227374D1 (de) * | 2001-07-12 | 2008-08-14 | Do Labs | Verfahren und System zur Bereitstellung formatierter Informationen für Bildverarbeitungsvorrichtungen |
US7233352B2 (en) * | 2002-06-20 | 2007-06-19 | Hewlett-Packard Development Company, L.P. | Method and apparatus for color non-uniformity correction in a digital camera |
US7502057B2 (en) * | 2002-06-20 | 2009-03-10 | Hewlett-Packard Development Company, L.P. | Method and apparatus for color non-uniformity correction in a digital camera |
EP1447977A1 (en) * | 2003-02-12 | 2004-08-18 | Dialog Semiconductor GmbH | Vignetting compensation |
ITMI20030341A1 (it) * | 2003-02-26 | 2004-08-27 | Easydur Italiana Di Renato Affri | Sistema per controllare la fabbricazione di una molla. |
US20060221230A1 (en) * | 2003-04-17 | 2006-10-05 | Nokia Corporation | Mobile camera telephone |
US7355639B2 (en) * | 2003-11-06 | 2008-04-08 | Omnivision Technologies, Inc. | Lens correction using processed YUV data |
CN100367763C (zh) * | 2005-07-19 | 2008-02-06 | 华晶科技股份有限公司 | 清除数字影像噪音的方法及装置 |
KR100848589B1 (ko) | 2005-10-11 | 2008-07-28 | 노키아 코포레이션 | 휴대용 카메라폰, 이미지 레코딩 방법 및 카메라 모듈 |
CN101277436B (zh) * | 2007-03-26 | 2010-07-14 | 创惟科技股份有限公司 | 多串流式网络摄影机控制系统及其控制方法 |
US9258864B2 (en) | 2007-05-24 | 2016-02-09 | Federal Law Enforcement Development Services, Inc. | LED light control and management system |
US9100124B2 (en) | 2007-05-24 | 2015-08-04 | Federal Law Enforcement Development Services, Inc. | LED Light Fixture |
US9414458B2 (en) | 2007-05-24 | 2016-08-09 | Federal Law Enforcement Development Services, Inc. | LED light control assembly and system |
US9294198B2 (en) | 2007-05-24 | 2016-03-22 | Federal Law Enforcement Development Services, Inc. | Pulsed light communication key |
US8188879B2 (en) | 2007-05-24 | 2012-05-29 | Federal Law Enforcement Development Services, Inc. | LED light global positioning and routing communication system |
US9455783B2 (en) | 2013-05-06 | 2016-09-27 | Federal Law Enforcement Development Services, Inc. | Network security and variable pulse wave form with continuous communication |
US11265082B2 (en) | 2007-05-24 | 2022-03-01 | Federal Law Enforcement Development Services, Inc. | LED light control assembly and system |
US8103121B2 (en) * | 2007-08-31 | 2012-01-24 | Adobe Systems Incorporated | Systems and methods for determination of a camera imperfection for an image |
US8890773B1 (en) | 2009-04-01 | 2014-11-18 | Federal Law Enforcement Development Services, Inc. | Visible light transceiver glasses |
WO2014160096A1 (en) | 2013-03-13 | 2014-10-02 | Federal Law Enforcement Development Services, Inc. | Led light control and management system |
US20150198941A1 (en) | 2014-01-15 | 2015-07-16 | John C. Pederson | Cyber Life Electronic Networking and Commerce Operating Exchange |
US20170048953A1 (en) | 2015-08-11 | 2017-02-16 | Federal Law Enforcement Development Services, Inc. | Programmable switch and system |
WO2022174881A1 (en) * | 2021-02-16 | 2022-08-25 | Huawei Technologies Co., Ltd. | Event sensor illuminance variation compensation |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4774565A (en) * | 1987-08-24 | 1988-09-27 | Polaroid Corporation | Method and apparatus for reconstructing missing color samples |
EP0469716B1 (en) * | 1990-07-03 | 1997-04-23 | Canon Kabushiki Kaisha | Image processing apparatus |
EP0496573B1 (en) * | 1991-01-24 | 1995-12-20 | Matsushita Electric Industrial Co., Ltd. | Pixel defect removing circuit for solid-state image pickup device |
JPH05508529A (ja) * | 1991-05-10 | 1993-11-25 | イーストマン・コダック・カンパニー | 電子式画像化のための注文製作可能なタイミング及び制御asic |
US5231485A (en) * | 1991-11-19 | 1993-07-27 | Scientific-Atlanta, Inc. | Method and apparatus for transforming between fixed-rate vector quantized data and variable rate vector quantized data |
US5475441A (en) * | 1992-12-10 | 1995-12-12 | Eastman Kodak Company | Electronic camera with memory card interface to a computer |
JP3163872B2 (ja) * | 1993-10-21 | 2001-05-08 | 株式会社日立製作所 | コンピュータ機器ならびに撮像装置 |
JP3242515B2 (ja) * | 1993-12-24 | 2001-12-25 | キヤノン株式会社 | 撮像装置 |
US5477264A (en) * | 1994-03-29 | 1995-12-19 | Eastman Kodak Company | Electronic imaging system using a removable software-enhanced storage device |
JPH0969978A (ja) * | 1995-08-30 | 1997-03-11 | Sanyo Electric Co Ltd | 撮像装置 |
US5867214A (en) * | 1996-04-11 | 1999-02-02 | Apple Computer, Inc. | Apparatus and method for increasing a digital camera image capture rate by delaying image processing |
US6005613A (en) * | 1996-09-12 | 1999-12-21 | Eastman Kodak Company | Multi-mode digital camera with computer interface using data packets combining image and mode data |
-
2000
- 2000-06-29 DE DE20080319U patent/DE20080319U1/de not_active Expired - Lifetime
- 2000-06-29 CN CN00900004U patent/CN2567940Y/zh not_active Expired - Fee Related
- 2000-06-29 WO PCT/US2000/018046 patent/WO2001001675A2/en active Application Filing
- 2000-11-29 CN CN008110204A patent/CN1391725A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2001001675A3 (en) | 2001-07-05 |
CN2567940Y (zh) | 2003-08-20 |
WO2001001675A2 (en) | 2001-01-04 |
CN1391725A (zh) | 2003-01-15 |
DE20080319U1 (de) | 2002-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN2567940Y (zh) | 摄像机设备 | |
US6995794B2 (en) | Video camera with major functions implemented in host software | |
CN101573695B (zh) | 用于图像预处理的方法和系统 | |
US9781398B2 (en) | Method and system of lens shading color correction using block matching | |
CN104702851B (zh) | 使用嵌入式数据的强大自动曝光控制 | |
CN1168290C (zh) | 电视和静止双模工作的数字相机 | |
KR102412007B1 (ko) | 전자 장치 및 전자 장치에서 하이 다이나믹 레인지 이미지 데이터를 압축하는 방법 | |
US7903869B2 (en) | Automatic color removal in digitally captured image technical field | |
US10750195B2 (en) | Electronic device and method for encoding image data therein | |
US10778917B2 (en) | Joint dictionary generation method for image processing, interlace-based high dynamic range imaging apparatus using joint dictionaries and image processing method of the same | |
TW200904160A (en) | Image processor, image processing method and program | |
CN109002843A (zh) | 图像处理方法和装置、电子设备、计算机可读存储介质 | |
US20130222645A1 (en) | Multi frame image processing apparatus | |
US20120224788A1 (en) | Merging Multiple Exposed Images in Transform Domain | |
CN101069191A (zh) | 视频处理 | |
US20100254617A1 (en) | Apparatus and method to rotate an image | |
CN110213502A (zh) | 图像处理方法、装置、存储介质及电子设备 | |
WO2003049030A1 (fr) | Dispositif de traitement d'image, procede de traitement d'image, procede de stockage et programme informatique | |
CN1820509A (zh) | 图像处理显示装置和图像处理显示方法 | |
CN103546803A (zh) | 一种图像处理的方法、客户端和图像处理的系统 | |
CN107220208A (zh) | 一种图像处理系统及方法 | |
CN1217489C (zh) | 快速解码的方法及其装置 | |
CN112308785B (zh) | 图像去噪方法、存储介质及终端设备 | |
CN102957913A (zh) | 图像编码设备、图像编码方法和程序 | |
CN1338090A (zh) | 使用编程的并行计算机实现图像处理功能和控制的数字摄像机 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
CI01 | Publication of corrected invention patent application |
Correction item: Publication of application for patent for invention Correct: Revoked Number: 34 Page: 233 Volume: 18 |
|
ERR | Gazette correction |
Free format text: CORRECT: INVENTION PATENT APPLICATION PUBLICATION; REVOCATION |
|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |