无电池摄像头如何实现高清晰度视频编码?

简介: 本文来自日本法政大学理工学院副教授 周金佳在LiveVideoStackCon 2019上海大会演讲,介绍了一种可被广泛应用于监控系统的超低功耗的视频采集和编码系统,在保证画质的同时,可大大降低系统的功耗。

文 / 周金佳


整理 / LiveVideoStack


image.png


大家好,我是来自日本法政大学理工学院的副教授周金佳,本次分享的主题是应用于监控系统中的高清晰度低功耗视频采集和编码算法,内容主要是关于日本学术认证机构的presto项目。


1. 监控系统实现低功耗的背景


image.png 

众所周知日本是全世界最安全的国家之一,其中完善的安防系统在其中占了很大比重,在公共场所都分布着很多摄像头,随着5G和Smart City在日本的讨论热度逐渐升高,大家对于监控系统未来的发展也提出了更高的要求,包括高清晰度低功耗的视频采集和压缩,高速度的传输,准确的视频分析理解。在监控系统的本地端,更关注的是系统的功耗其中包括视频采集的功耗以及视频压缩的功耗。该项目的目标是建立超低功耗的Batteryless的本地端监控系统。


image.png


上图是目前市场上在售的监控摄像头,虽然它们的性能很好,但功耗也相对比较大。没有一款能够真正做到batteryless。


2. 监控系统低功耗目标


2.1 视频采集中的耗电分布

 

image.png


上图分析了视频的采集编码和传输的功耗分布。功耗主要来自于image sensor和compression。Image sensor是指视频的采集。Compression指视频编码的功耗。Image Sensor 中最耗电的是从模拟到数字转换的部分, Image Sensor最终输出像素点(pixel),然后对像素进行压缩。视频编码算法的共同特点是复杂度很高,并且复杂度还会随着压缩率的提高而进一步提升,提升的同时也会带来能耗的增加。以352x288的CIF视频为例,即使在只追求low power的情况下进行图像采集、压缩和传输也需要至少200mW的能耗,而我们的目标是在支持高清及4K分辨率的同时将能耗限制在40mW以内。

2.2 降低能耗的原因


image.png


日本东京在两年前部署有大约1000万个监控摄像头,在采取降低监控系统能耗的系统后可以节约大约一个小型发电站的功耗。


image.png


监控系统另外一个目标是希望在系统内实现快速编码,但目前最新的算法和标准都不会考虑复杂度的问题,尤其是基于像素点的压缩部分,编码端的复杂度会变得特别的高。


2.3 解决方案

 

image.png


监控系统中最消耗功耗的部分是基于像素的压缩,即视频编码。视频编码是监控系统必不可少的环节,且目前所有的编码算法都是基于像素进行压缩编码,复杂度非常高。团队推翻之前所有的方案,提出在图像采集过程中就对图像进行初步压缩,image sensor的输出不再是像素点而是已经压缩过的数据,我们用全新的编码算法对这些压缩的数据进行再编码。在图像采集过程中就对图像进行压缩的好处是,减少模拟信号向数字信号转换的功耗。另外,新的基于压缩数据的视频编码算法会比传统的像素域的视频编码算法简单很多。可以大大减少视频编码的功耗。


3. 图像采集提案


3.1 图像采集方法对比

 

image.png


在传统的图像采集方法中,经过ADC(analog to digital convertor)将模拟信号转换为数字信号,然后用视频编码算法对这些信号也就是像素,进行压缩。只用帧内编码Intra的话,能压缩到5-10%,在加帧间预测编码可以达到更高的压缩率。但是视频编码算法都十分复杂。而且是越来越复杂。我们提出的基于压缩感知的图像采集方法是指,在经过ADC之前的观测值数据是已经被压缩过的, ADC的功耗可以降低50-70%。在2013年索尼和斯坦福大学已经验证了这一算法的可行性。基于索尼和斯坦福大学的研究成果,我们提出了是否可以对采集到的压缩数据进行再编码的想法。


3.2 基于压缩感知的图像采集系统

 

image.png


基于压缩感知的图像采集系统可以理解为在摄像头处加一个简单的0 1/0 1 -1矩阵,1相当于两个电压相加,-1表示两个电压相减,矩阵的m决定了可压缩量,矩阵*向量之后的数据传到ADC后转成数字信号,原本要做n个点的模数转换,经过压缩感知图像采集系统之后只需要做m个点的模数转换,ADC的功耗大大减少。在这个矩阵的设计上,需要用到压缩感知的原理,比如输入图像x经过θ变换到某一个domain必须是sparse的,测量矩阵和θ是非相关的。目前被广泛应用的是随机矩阵。


3.3 现有的视频压缩算法的兼容问题

 

image.png


在确定了image sensor里的矩阵,得到压缩过的数据后,我们需要一种新的编码方式,对其进行编码来达到进一步的压缩。基于压缩感知的图像采集系统输出的数据已经不再是像素,而是测量值成为measurement,而现有的视频压缩技术(H.264/AVC, H.265/HEVC、AV1……)都是基于像素的压缩算法,无法兼容基于压缩感知的图像采集系统(CS-imager)。有一些能够兼容CS-imager的测量值(measurement)压缩算法压缩率很低,因为无法有效利用相邻像素之间的相关性来提高压缩率。


image.png


我们的提案是在设计矩阵时隐藏像素域信息,然后利用这个像素域特征,实现一种全新的编码方式来压缩输出的观测值(measurement)。如图,将图像分为4x4/8x8/16x16的块,以4x4为例将其展开变成16个点,设计矩阵时将某一行设定为0000 0000 0000 1111,矩阵与像素点相乘之后得到最后四个点相加,也就是prediction图中上层的最后四个点,可以知道向量的第一个值其实代表了上面那一块最下面那一行中点相加的值,除以4后可以得到上面那部分块的平均值。还有一种矩阵设计是将某一行设定为0001 0001 0001 0001,这种算法是每隔四个点加一次,得到的结果是prediction图中左侧的最后四个点相加的值,除以4后可以得到左边四点的平均值。通过刻意改变矩阵中两行的设定来隐藏像素域的信息,之后在压缩过程中也可以知道像素域的特征。


3.4 多方向帧内预测

 

image.png


参考H.264的针内预测方法,做了九个方向的预测。为了实现这个预测,我们设计了如图所示的矩阵。做完预测之后,对残差进行量化和熵编码。


4. 基于压缩感知的图像采集系统的效果对比


4.1 视频压缩到约20%的效果

 

image.png


将视频压缩到约20%的情况下,图像采集功耗为原来的50%,在只做上下两个方向的帧内预测时,压缩功耗约为HEVC Intra coding的10%。


4.1 不同采样率下得到的压缩以及重建图像的质量比较

 image.png


上图中SR是sampling rate。0.25/0.5/0.75表示25%/50%/75%的感知压缩的压缩率。原图的大小是每个像素点8bits(8bpp:bit-per-pixel)。如图所示,当SR为0.75时,最终的编码输出为每个像素点1.21bits,PSNR为31.84dB。


4.2 基于compressive sensing的运动区域检测

 

image.png


上图是描述在不同SR时的压缩效果(bpp bit-per-pixel)以及画面的质量PSNR。团队进一步提出了基于compressive sensing的运动区域检测算法,在进行背景更新的同时只传输运动区域的信息,进一步提高压缩率。


4.3 提高重建视频质量的算法

 

image.png


为了提高重建视频的质量,系统中还添加了上图中的四种算法。以上四种算法都是使用在视频解码端。


5. 展望


image.png


本次分享的内容虽然是基于监控系统来进行讨论,但其实超低功耗的视频采集和编码方法可以运用很多其他的领域。

————————————————

版权声明:本文为CSDN博主「LiveVideoStack_」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/vn9PLgZvnPs1522s82g/article/details/98553067

相关文章
|
7月前
|
存储 传感器 编解码
LabVIEW风力涡轮机的雷电流测量系统中集成高速摄像机
LabVIEW风力涡轮机的雷电流测量系统中集成高速摄像机
54 1
|
4月前
|
编解码 网络协议 vr&ar
Android平台下VR头显如何低延迟播放4K以上超高分辨率RTSP|RTMP流
这段内容讲述了VR头显中实现高分辨率视频播放的技术背景与实现方法,并强调了其重要性。高分辨率对于提升VR体验至关重要,它能提供更清晰的画面、增强沉浸感、补偿透镜放大效应,并维持宽广视场角下的图像质量。文中提到的大牛直播SDK具备极低的延迟(200-400ms),支持多种协议与格式,并具有丰富的功能特性,如多实例播放、事件回调、视频及音频格式支持等。此外,提供了基于Unity的播放器示例代码,展示了如何配置播放参数并开始播放。最后,作者指出此类技术在远程控制、虚拟仿真等应用场景中的重要意义。
|
存储 编解码 算法
Baumer工业相机堡盟工业相机如何通过BGAPISDK的软触发实现两相机同步采集(C++)
Baumer工业相机堡盟工业相机如何通过BGAPISDK的软触发实现两相机同步采集(C++)
186 0
Baumer万兆网工业相机堡盟相机Gige网口连接PC如何实现最大帧率
Baumer万兆网工业相机堡盟相机Gige网口连接PC如何实现最大帧率
145 0
|
Android开发 开发者
Android平台GB28181设备接入端如何调节实时音量?
我们在对接Android平台GB28181设备接入端的时候,有开发者提出这样的疑惑,如何调整设备接入端的实时音量?
|
存储 编解码 算法
Baumer工业相机堡盟工业相机如何通过BGAPISDK的软触发实现两相机的同步采集(C#)
Baumer工业相机堡盟工业相机如何通过BGAPISDK的软触发实现两相机的同步采集(C#)
148 0
|
vr&ar 开发工具 git
Baumer工业相机万兆网10GigeVLXT系列相机硬件触发流程和设置
Baumer工业相机万兆网10GigeVLXT系列相机硬件触发流程和设置
152 0
|
C# 开发工具 C++
Baumer堡盟工业GigE网口相机出现相机已经连续成功,但是无法采集图像问题二(C#和C++))
Baumer堡盟工业GigE网口相机出现相机已经连续成功,但是无法采集图像问题二(C#和C++))
147 0
Baumer堡盟工业GigE网口相机出现相机已经连续成功,但是无法采集图像问题一
Baumer堡盟工业GigE网口相机出现相机已经连续成功,但是无法采集图像问题一
120 0
|
传感器 vr&ar 开发工具
Baumer工业相机VCX系列相机硬件触发流程和设置
Baumer工业相机VCX系列相机硬件触发流程和设置
1185 0