先谈一下HDR的实现方法。通常我们所说的HDR都是指照片而不是视频,也就是说拍摄好几张不同曝光的照片存在系统的DRAM中,然后由CPU来计算合成,这是由SW来实现的,通常所需时间是秒级。HDR算法种类很多,效果较好的算法也意味着较高的计算复杂度。现在视频拍摄也需要HDR,CPU就容易算不过来,我这里分析一下由数字IC设计来实现HDR的可行性。
要视频HDR,首先需要CMOS sensor支持长短曝光模式,以长/短两种曝光图像合成为例,据我所知有两种输出格式,如下图。
对于依次传输的模式,要做二合一融合,必须要把长曝光的整幅图像先存起来,用SRAM的话显然面积会非常庞大,成本太高,因此需要存到系统的DRAM中,等短曝光的图像收到的时候再从DRAM中取出来。这样会占用DRAM的1个Frame存储空间,以及1次读Frame和1次写Frame的带宽。对于混合传输模式,除了可以同样采取把长曝光数据存储到DRAM中的方法以外,也具有把数据放入SRAM的可能性,这要看混合传输时block 大小。以FHD为例,假设先传输100 line的长曝光图像数据,再传输100 line的短曝光图像数据,需要把1920*100=192K个pixel存储到SRAM中,为了减小size,通常会在Bayer pattern domain做HDR合成,以pixel为10-bit为例,Total size为192K*10/8=240K bytes,成本或许可以接受。
HDR算法种类较多,我这里大概介绍一下基本思想。有基于直方图统计特征,进行亮度重新映射的方法,类似于直方图均衡化。有局部处理法,结合整体图像亮度和局部区域对比度,保留细节又压缩范围。有转换到对数域(人眼对亮度的敏感度类似对数关系)进行压缩的方法。有对图像进行分层,分为基础层和细节层,保留细节层,对基础层进行范围压缩的方法。各种方法可以相互融合借鉴,对于IC设计来说,最关键的还是性价比。
欢迎光临 SuperIC社区_ (/) | Powered by Discuz! X3.3 |