Hi35XXX海思媒体处理平台架构介绍.

     海思的媒体处理平台(MPP,Media Process Platform),在系统中的位置如下图所示,内部主要分为视频输入(VI)、视频处理(VPSS)、视频编码(VENC)、视频解码(VDEC)、视频输出(VO)、视频侦测分析(VDA)、音频输入(AI)、音频输出(AO)、音频编码(AENC)、音频解码(ADEC)、区域管理(REGION)等模块。

                                          

主要模块作用及流程.

VI模块捕获视频图像,可对其进行剪切、缩放等处理,并输出多路不同分辨率的图像数据.

VDEC对编码后的视频码流进行解码,并将其解析后的图像数据送给VPSS进行图像处理,亦可直接送给VO显示.

VPSS接收VI和VDEC发送过来的图像,对其进行去燥,锐化,图像增强等处理,并实现同源输出多路不同分辨率的图像数据用于编码、预览或抓拍等.

VENC接收VI捕获并经过VPSS处理后输出的图像数据,还可通过Region设置OSD图像,然后按不同协议进行编码输出相应码流.


VDA接收 VI 的输出图像,并进行移动侦测和遮挡侦测,最后输出侦测分析结果。

VO接收VPSS处理后的输出图像,可进行播放控制等处理,最后按用户配置的输出协议输出给外围视频设备.


AI捕获音频数据,AENC支持按多种音频协议对其进行编码,最后输出音频码流.

用户从网络或外围存储设备获取的音频码流可直接送给 ADEC 模块, ADEC 支持解码多种不同的音频格式码流,解码后数据送给 AO 模块即可播放声音.





Vi模块

即视频输入,它实现的功能为,通过(数字摄像接口)接收视频数据.

当工作在离线模式时,将接受的数据存入到指定的内存区域;当工作在在线模式时,Vi会将数据直接送给VPSS,在此过程中,Vi可以对接收到的原始视频图像数据进行裁剪(Crop)等处理,并实现一路原始视频图像输入,输出一路视频图像功能.

视频输入设备:支持若干种时序输入,负责对时序进行解析.

离线模式:指Vi写出数据到DDR,然后与之绑定的模块从DDR读取数据.
在线模式:指Vi与VPSS之间的在线数据流传输,在此模式下VI不会写出到DDR,而是直接吧数据流送给VPSS.

视频物理通道:将输入设备解析后得到的视频数据输出到DDR.在输出到DDR之前,它可以实现裁剪等功能.具体功能依芯片而定.

视频扩展通道:主要实现缩放功能,数据来源于物理通道,Hi35196A/Hi3518EV200/Hi3519V100最多支持16个扩展通道.

DCI:Dynamic Contrast Improvement,动态对比度调节.




VPSS

即视频处理子系统,支持对一幅输入图像进行同一预处理,如去燥、去隔行等,然后对通道进行缩放、锐化等处理,最后输出多种不同分辨率的图像.

VPSS单元支持的具体图像处理功能包括FRC(Frame Rate Control)、Crop、NR(Noise Reduce)、LDC(Lens Distortion Correction)、Rotate、Cover/Overlay、Scale、Mirror/Flip、FishEye等.


GROUP:VPSS对用户提供组,各个GROUP分时复用VPSS硬件.
CHANNEL:VPSS组的通道,分物理通道和扩展通道.
VPSS硬件提供多个物理通道,每个通道具备缩放裁剪等功能.
扩展通道具备缩放功能,它通过绑定物理通道,将物理通道的输出作为自己的输入,把图像缩放程用户设置的目标分辨率输出.

FRC:帧率控制,分group帧率控制和chn帧率控制.
group帧率控制:用于控制group对输入图像的接收,只应用在VI-VPSS的离线方案中.
Chn帧率控制:用于控制各个物理通道图像的处理,之应用在VI-VPSS的在线方案中.

Crop:裁剪,分group的裁剪和chn的裁剪.
Group的裁剪:VPSS对输入图像的裁剪.
Chn的裁剪:VPSS对各个物理通道的输出图像进行裁剪.

DEI:去隔行.
NR:去燥,把图像中的高斯噪声去除,是的图像变得平滑,有助于降低编码码率.
Scale:缩放,对图像进行缩放大小.
LDC:镜头畸变矫正.
Cover:视频遮挡区域,对VPSS的输出图像进行纯色填充.
Overlay:视频叠加区域,在GROUP上进行位图的加载和背景色更新.
Border:边框,在VPSS的输出图像上加边框.
备份节点:原始图像的备份节点,每个GROUP都有一个备份节点,用于备份即将提交硬件处理的那帧原始图像.

VPSS上下文关系:
VPSS可通过调用SYS模块的绑定接口,与VI、VO/VENC/IVE等模块进行绑定,VI作为VPSS的输入源,VO/VENC/IVE为VPSS的接收者.
用户可通过提供的MPI接口对GROUP进行管理,每个GROUP只能和一个输入源绑定.
GROUP的物理通道分AUTO和USER模式,可进行动态切换.默认工作模式为AUTO,此模式下各通道仅可与一个接受者绑定,每个组绑定一个输入源,每个通道绑定一个接收者.
若像使用USER模式则需要通过MPI接口进行配置,同时指定所需图像的大小和格式.此模式下各通道可与多个接收者绑定.(USER模式主要用于对一通道的图像进行多路编码的场景,此模式下的播放控制不会生效,因此预览和回放不建议使用USER模式).



VENC

即视频编码模块,本模块支持多路实时编码,且没路编码独立,编码协议和编码profile可以不同,本模块支持视频编码的同时,调用Region模块可对编码图像内容进行叠加和遮挡.



VENC的输入源:
用户态读取图像文件向编码模块发送数据.
视频输入(VIU)模块采集的图像直接发送到编码模块.
视频输入(VIU)模块采集的图像通过VPSS发送到编码模块.

典型的编码过程包括图像的接收、图像内容的遮挡覆盖、图像的编码、及码流的输出等过程.
VENC模块由编码通道子模块(VENC)和编码协议子模块(H.264/H.265/JPEG/MJPEG)组成.

如果输入图像比编码通道尺寸大,VENC将按照编码通道尺寸大小,调用VGS对源图像进行缩小,然后对缩小之后的图像进行编码.
如果输入图像比编码通道尺寸小,VENC将丢弃源图像,VENC不支持放大输入图像编码.
如果输入图像与编码通道尺寸相当,VENC直接接收源图像,进行编码.




VO

即视频输出模块,模块主动从内存相应位置读取视频和图形数据,并通过相应的显示设备输出.

SDK将高清和标清设备分为DHDx和DSDx,其中,x为索引号,从0开始取值,表示第几路高清/标清显示设备,可分别简称为HD和SD设备,高清设备可能同时绑定两个视频层.

视频层
对于固定在每个设备上面对应的视频层,SDK也对应采取VHDx和VSDx来标示,对于可以动态绑定视频层,用PIP表示.

通道
SDK将通道归属于视频层管理,对于一个视频层,它上面的通道都是独立的.不同的视频层上的通道也是独立的.

每个VHD(或PIP)视频层总共x个通道,设备视频层内的通道不可重叠.高清视频层的通道没有缩放能力,需要借助外部VPSS进行缩放,VI或VDEC的源图像经过VPSS缩放后,输出到VO的某一同到显示.
如果输出给 VO 通道的图像超过 VO 的通道区域大小,则 VO 将会对图像进行裁剪。高清视频层 VHD 支持对整个视频层进行放大,不支持裁剪。 PIP 视频层不支持放大,也不支持裁剪.

通道优先级
高清显示设备上输出显示的通道,该优先级没有效果,通道通过相关的视频层唯一确定了显示的位置,即显示在 VHDx 上还是 PIP 上.
标清显示设备支持多个通道同时输出显示,按照优先级顺序对输出图像进行叠加,当各个通道的画面有重叠区域时,优先级高的图像显示在上层,如果各个通道优先级一致,则通道号越大的默认优先级越高.

PIP(Picture In Picture)画面叠加
PIP 实现的是高清设备上的 PIP 视频层画面与原视频层 VHD 画面叠加.高清设备上原视频层 VHD 层与 PIP 层都不支持各个通道的叠加.各个视频层通过配置显示

优先级来确定视频层的输出位置,视频层显示优先级高的显示在上面.



猜你喜欢

转载自blog.csdn.net/qq_17308321/article/details/79741432