一种用于高清视频的高效解码和播放方法及系统技术方案

技术编号:18600582 阅读:27 留言:0更新日期:2018-08-04 21:11
本发明专利技术公开的一种用于高清视频的高效解码和播放方法及系统,方法包括:创建窗口用于显示视频图像,并创建设备操作对象用以获取可编程图形中央处理器GPU设备的能力以及加速等级;向GPU申请一块后台缓冲区,将视频数据从主机内存传入到后台缓冲区中并进行解码;解码后的视频图像数据的颜色空间类型Y色度分量U V亮度分量以NV12的数据存放格式存储在图形处理器GPU的后台缓冲区中,在进行采样,插值计算,颜色空间转换,转换后的图像数据存储在后台缓冲区,由后台缓冲区切换到前台表面缓冲区进行视频图像数据显示。本发明专利技术通过GPU进行图像帧解码,降低中央处理器CPU的使用率,节省了不必要的数据传递时间及内存开销,且提高了图像显示效果。

An efficient decoding and playback method and system for HD video

The invention discloses an efficient decoding and playing method and system for high-definition video. The method includes: creating a window to display video images and creating device operating objects for the ability to obtain a programmable graphics central processor GPU device and the acceleration level; to request a backstage buffer to GPU to video data From the host memory into the background buffer and decoding, the color space type Y color component U V component of the decoded video image data is stored in the background buffer of the graphics processor GPU in the NV12 data storage format, and the image data after the sampling, interpolation calculation, color space conversion, and conversion are carried out. It is stored in the background buffer, and is moved from the background buffer to the front surface buffer to display video and image data. The invention uses GPU to decode the image frame, reduces the usage rate of the central processor CPU, saves the unnecessary data transfer time and memory overhead, and improves the image display effect.

【技术实现步骤摘要】
一种用于高清视频的高效解码和播放方法及系统
本专利技术涉及视频处理
,尤其涉及一种用于高清视频的高效解码和播放方法及系统。
技术介绍
随着现代高清视频的广泛应用,视频数据量的急剧增加对中央处理器CPU造成了巨大的压力,虽然视频编码标准采用了最新的视频编码技术,获得了很好的效果,但是其压缩效率的提高是以压缩算法复杂度的提高为代价的。相对于较高分辨率的视频来说,海量的视频数据使视频的编码和解码对于硬件和软件都提出了很高的要求,在现代计算机上大多数视频的编解码部分及视频图像数据绘制显示部分(例如windows系统平台下的GDI图形设备接口(GraphicsDeviceInterface)),大部分的运算工作是依赖于中央处理器CPU来实现工作,对于路数相对较少,分辨率相对较低的视频来说,一般的中央处理器CPU可以胜任其工作。但若是对分辨率较高的超高清视频实时编解码或绘制视频图像时,对中央处理器CPU将是一个巨大的负担,多路超高清视频的编解码及绘制视频图像时尤其。根据上述问题得出结论:如果单纯仅靠提高中央处理器CPU的时钟频率来完成多路超高清视频的编解码及超高清视频的图像绘制,效果已经不明显或不可能,直接后果将是中央处理器CPU负荷满载,导致出现不理想的效果,例如画面不流畅花屏,卡顿,甚至影响计算机系统程序处理的阻塞等一系列的问题。
技术实现思路
本专利技术的目的在于提供一种用于高清视频的高效解码和播放方法,。为达成上述技术目的,本专利技术的技术方案如下:一种用于高清视频的高效解码和播放方法,包括以下步骤:步骤一、创建一个窗口,该窗口用于显示视频图像;步骤二、根据主机使用的图形处理器GPU创建一个设备操作对象,以操作图形处理器GPU;步骤三、通过设备操作对象获取图形处理器GPU支持解码加速的等级;步骤四、向GPU申请一块后台缓冲区,后台缓冲区在显存中分配了一块线性区域,并且将该缓冲区的数据存放格式设置为NV12,然后将待解码的数据流传入后台缓冲区,进行解码;步骤五、视频数据在GPU中解码后,获得颜色空间类型Y色度分量UV亮度分量数据,此时颜色空间类型YUV以NV12数据存放格式存储在后台缓冲区;步骤六、对解码后的颜色空间类型Y色度分量UV亮度分量数据进行采样、插值计算以及颜色空间转换,转换后的图像数据存储在后台缓冲区之中;步骤七、将存储了图像数据的后台缓冲区与前台表面缓冲区进行切换,从而实现在所述窗口进行图像数据的显示。所述获取图形处理器GPU支持解码加速的等级是指:GPU中执行视频码流的所有关于解码的耗时运算,耗时运算的内容包括GPU中处理可变长编码、反离散余弦变换和运动补偿。将存储了图像数据的后台缓冲区与前台表面缓冲区通过切换链技术进行切换。一种用于高清视频的高效解码和播放的系统,其特征在于包括:RTSP协议交互模块,用于处理RTSP指令交互,协商媒体格式、网络端口,并创建网络通道接收媒体流数据(视频数据);视频数据包缓存模块,用于申请主机内存缓冲区,并将RTSP协议交互模块接收到的所有与视频图像相关的包数据插入到预先申请好的主机内存缓冲区的队尾;图像帧处理模块,用于取出主机内存缓冲区的数据包并进行解析及拼帧处理,最后将一个完整的图像帧送入图像数据解码模块当中图像数据解码模块,用于对完整的图像帧进行解码,得到将解码后的YUVNV12数据并存入GPU的后台缓冲区;以及图像绘制显示模块,用于对解码后的YUVNV12数据进行采样、插值计算以及颜色空间转换处理,在利用切换链技术将后台缓冲区与前台表面缓冲区进行切换,完成视频图像的绘制显示。与现有技术相比,本专利技术具有以下优点:本专利技术对视频图像数据的显示部分的耗时处理(即图形处理器GPU支持解码加速的等级获取),对解码后的视频数据采样、插值计算和颜色空间类型的变换等复杂耗时过程均在图形处理器GPU中处理实现,进一步的减少了在中央处理器CPU的中的处理过程,从而降低了中央处理器CPU的使用率,又因为GPU的并行处理特性使得运算处理过程的时间大大减少;另外,因解码部分及显示视频图像数据部分仅一次性从主机内存传递到图形处理器GPU显存中,无需将显存数据频繁传递至主机系统内存数据中,避免了进行多余的双向传递交互的操作,从而节省了不必要的数据传递时间及内存占用。以下结合附图和具体实施例对本专利技术作进一步详述。附图说明图1是本专利技术用于高清视频的高效解码及播放的方法的流程简图;图2是用于高清视频的高效解码及播放的系统结构框图。具体实施方式本专利技术提出在现代主流PC机拥有一颗强劲的中央处理器CPU以外,都必须装配有一块集成图形处理器GPU或一块独立图形处理器GPU。图形处理器GPU强大的处理能力源于其核心模块—图形处理器(GraphicsProcessorUnit,GPU)。图形处理器GPU最初是为3D图形渲染而设计的,具有强大的浮点计算能力和并行特性,相对于中央处理器CPU而言图形处理器GPU拥有更大的数据传输带宽,更多的计算单元,更强的浮点运算能力,非常适合用于那些具有高度并行特征的计算领域,而高清视频的解码与视频图像的绘制渲染正好符合这一特点。而可编程图形处理器GPU的出现,使得图形处理器GPU不再单纯的仅限于图形处理,也可以用于非图形化的计算领域。本专利技术利用图形处理器GPU的强大浮点计算能力,并行特性,研究基于图形处理器GPU视频数据解码处理以及基于渲染绘制视频图像数据的设计与实现问题,提出一种用于高清视频的高效解码和播放方法,如图1所示,其具体包括如下步骤:S101、创建一个窗口,该窗口用于显示视频图像;S102、根据主机使用的图形处理器GPU(通常是用来显示windows桌面的显卡)创建一个设备操作对象,以操作图形处理器GPU;S103、通过设备操作对象获取图形处理器GPU支持解码加速的等级;获取图形处理器GPU支持解码加速的等级具体是指:GPU中执行视频码流的所有关于解码的耗时运算,耗时运算的内容包括GPU中处理可变长编码(VLD)、反离散余弦变换(IDCT)和运动补偿(MC)。以intel集成图形处理器GPUhdgraphics4600型号为例,其支持最高的加速等级;而加速等级越高,GPU所能处理的环节越多,解码的时间就越少,而且也能大幅度地减轻CPU的工作量。S104、向GPU申请一块后台缓冲区,后台缓冲区在显存中分配了一块线性区域,并且将该缓冲区的数据存放格式设置为NV12(大多数显卡支持NV12的数据存放格式),然后将待解码的数据流传入后台缓冲区,进行解码;S105、视频数据在GPU中解码后,获得颜色空间类型Y色度分量UV亮度分量数据,此时颜色空间类型YUV以NV12数据存放格式存储在后台缓冲区,存放数据的格式取决于后台缓冲区的预置类型,本实施例的存放格式为步骤S103所述的NV12;S106、根据以上所述,视频数据解码后存储在后台缓冲区当中,因与显示器能够显示的格式不相同,则还需要对解码后的颜色空间类型Y色度分量UV亮度分量数据进行采样、插值计算以及颜色空间转换,转换后的图像数据存储在后台缓冲区之中;S107、在利用切换链技术将存储了图像数据的后台缓冲区与前台表面缓冲区进行切换,前台表面缓冲区是显示在显示屏上的,可以直观得看到内容,而后台缓冲区则主要用于图形绘制本文档来自技高网...

【技术保护点】
1.一种用于高清视频的高效解码和播放方法,其特征在于,包括以下步骤:步骤一、创建一个窗口,该窗口用于显示视频图像;步骤二、根据主机使用的图形处理器GPU创建一个设备操作对象,以操作图形处理器GPU;步骤三、通过设备操作对象获取图形处理器GPU支持解码加速的等级;步骤四、向GPU申请一块后台缓冲区,后台缓冲区在显存中分配了一块线性区域,并且将该缓冲区的数据存放格式设置为NV12,然后将待解码的数据流传入后台缓冲区,进行解码;步骤五、视频数据在GPU中解码后,获得颜色空间类型Y色度分量UV亮度分量数据,此时颜色空间类型YUV以NV12数据存放格式存储在后台缓冲区;步骤六、对解码后的颜色空间类型Y色度分量UV亮度分量数据进行采样、插值计算以及颜色空间转换,转换后的图像数据存储在后台缓冲区之中;步骤七、将存储了图像数据的后台缓冲区与前台表面缓冲区进行切换,从而实现在所述窗口进行图像数据的显示。

【技术特征摘要】
1.一种用于高清视频的高效解码和播放方法,其特征在于,包括以下步骤:步骤一、创建一个窗口,该窗口用于显示视频图像;步骤二、根据主机使用的图形处理器GPU创建一个设备操作对象,以操作图形处理器GPU;步骤三、通过设备操作对象获取图形处理器GPU支持解码加速的等级;步骤四、向GPU申请一块后台缓冲区,后台缓冲区在显存中分配了一块线性区域,并且将该缓冲区的数据存放格式设置为NV12,然后将待解码的数据流传入后台缓冲区,进行解码;步骤五、视频数据在GPU中解码后,获得颜色空间类型Y色度分量UV亮度分量数据,此时颜色空间类型YUV以NV12数据存放格式存储在后台缓冲区;步骤六、对解码后的颜色空间类型Y色度分量UV亮度分量数据进行采样、插值计算以及颜色空间转换,转换后的图像数据存储在后台缓冲区之中;步骤七、将存储了图像数据的后台缓冲区与前台表面缓冲区进行切换,从而实现在所述窗口进行图像数据的显示。2.如权利要求1所述的一种用于高清视频的高效解码和播放方法,其特征在于:所述获取图形处理器GPU支持解码加速的等级是指:GPU中执行视频码流的...

【专利技术属性】
技术研发人员:付强
申请(专利权)人:厦门普杰信息科技有限公司
类型:发明
国别省市:福建,35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1