SVC/ROI技术提升数字摄影机设计
可延展视频编码(或称为可调性视频编码,SVC)早已是老生常谈的话题,目前在市场上也能够看到具有wavelet-base SVC(小波编码为基础的可延展视频编码)这一功能的实际芯片。不过,市场上对这种技术还并不太熟悉,因此,本文将向大家介绍数字网络摄影机用ASC8851(M2)芯片的一些新功能和与之相关的SVC-T及ROI技术。
SVC的优势
为何可延展视频编码会受到学术界与研究单位的重视?目前在应用上H.264格式已几乎占据主导地位,但目前无论是DVR、NVR、IPC、DVS,还是视频会议系统,都需要具有子码流或是多码流的编译码能力。同样的内容分别被编成不同的分辨率,不同的比特率(或码流),以及不同的帧率。这对编/译码器而言涵盖了多种子码流,它们都是比较大的负担,不仅如此,在实际使用上,网络带宽、存储容量和负载也都是额外的成本考虑。仔细斟酌,对于同样的内容,为何我们不能只编一次就包含所有信息,按需获取资源,其他不重要的部分直接把封包丢掉就好?如果我们能够把影像资料有系统地排列,把重要部分和较不重要的部分在压缩时用头文件标示清楚,那么就太完美了!所有的影像一次压缩到最高的分辨率并采用最高的比特率和最多的帧率,然后就能完成一切。在译码取用的时候或是往外部串流的时候,筛选封包依照所需的分辨率。在允许的带宽范围内提供最合适的帧率做串流或译码即可。这就是可延展视频编码的目标和功效。
什么是SVC-T
延展性视频编码在时间轴上的应用就是SVC-T,也就是前面说到的对不同帧率上的应用。举例而言,1080p@30fps的数据流无需重新编码,而只需舍弃掉某些帧的数据,就可以译码成1080p@15fps,甚至是1080p@7.5fps的资料。同理,1080p@25fps到1080p@12.5fps,再到1080p@6.25fps,以此类推均可。
SVC-T的原理
罗列了这些好处之后,就不得不介绍应该如何实现,图1所示示意图可方便大家了解。
以一个简单的GOP(图像组)为例,I-P-P-P-I-P-P-P-I分别代表I帧和P帧在GOP内的排列顺序,时间轴上从T0到T8代表帧-帧间编码顺序。图1所示箭头代表P帧所用的参考I帧关系,而不同的0~2层则代表不同帧率所需取用的编码资料。
在最开始的T0时刻先以I帧编码,下一帧T1的P帧编码以T0为参考帧,T2也以T0为参考帧做P帧编码,T3以T2为参考帧做P帧编码,T4又以I帧编码,依照之前的顺序重新做一轮新的GOP编码。
在串流或是译码的时候,若是把所有的0~2层(包含T0~T8)I-P-P-P-I-P-P-P-I帧资料都拿来使用,就是25fps(或30fps);若把第2层的资料舍弃不用,则剩下0~1层的T0、T2、T4和T8就是一半的帧率12.5fps(或是15fps),如果只用第0层的T0、T4和T8,那么,帧率就将再减一半,即6.25fps(或7.5fps)。
SVC-T的其它注意事项
SVC-T可支持所有帧率减半和再减半及以此类推的码流。但是当帧率减半时,码流却并未减半(可能只有变成原本的3/4)。可以理解,因为I帧压缩得较少,而P帧却压缩得较多。较高层所用均是P帧,而此时码流相对较低。在SEI(补充增强信息)的语法里,可以记录不同帧率下所需要的比特率,这样,就可以视带宽、译码能力与网络状况去决定需要用多少帧率(对应于多少层)的压缩数据做串流或是译码。
SVC-T比分辨率与比特率上的可延展性视频编码更容易实现,可以在现有的基础上增加NAL层语法而做特别标示,批注是0层、1层或是2层的资料,而这种特别批注会被旧有译码语言所忽略。因此,SVC-T所做的改动最小,影响的层面也最小。这将发挥可延展性视讯编码在节能(降低多余的编译码)和降低比特率(舍弃帧率)等方面的优势。虽然降低帧率可能会牺牲影像的流畅性,但如果能保证其在视觉可接受的范围内,便将是在目前可延展性视频编码中最可行的方案。
目前的VLC免费软件支持SVC-T译码,可以用图2所示方式并加上svc-tlayer=#(#为层号)来开启串流(rtsp://172.17.208.9/live1.sdp?svc-tlayer=2)。
什么是ROI
ROI(感兴趣的区域)简单来说就是在视频编码时把感兴趣的区域编得更细腻些,让此区域的画面能够比其它区域显示得更清楚。通常我们把整张画面的主体放在ROI区域内,在相同的带宽条件下更加突显主体,将大部分的码流花在压缩主体的重要画面上,而将小部分的码流花在背景的影像压缩上。
评论