实现h264视频编码格式播放优化的方法及系统的制作方法

文档序号:7766231阅读:533来源:国知局
专利名称:实现h264视频编码格式播放优化的方法及系统的制作方法
技术领域
本发明涉及视频播放技术领域,尤其涉及一种在手机平台下实现H264视频编码格式播放优化的方法及系统。
背景技术
H264标准是由国际电信联盟(ITU)和国际标准化组织(ISO)共同制定的新一代视频编码标准,因其具有更高的压缩比、更好的IP和无线网络信道的适应性,在数字视频通信和存储领域得到越来越广泛的应用,但是H264标准获得优越性能的代价是计算复杂度增加,增加了对播放设备解码能力的要求。随着移动网络技术的不断发展,利用手机观看视频逐渐成为一种趋势,但是播放视频时高复杂度的解码和运算对手机是一种考验,常常会因为运算和解码能力不足导致视频播放不流畅和马赛克现象。目前的手机平台基本都采用ARM(异步应答方式,Asynchronous Response Mode) 作为运算CPU,ARM有其自身数据读取及输出的特点,即以4个字节为单位进行读取和输出, 当输出或读取数据少于4个时就会造成读取或者输出速度的浪费。此外,在手机平台下,当客户端请求H264编码视频流时,解析H264速度较慢。综上所述,如何解决手机客户端播放H264视频编码格式数据的速度和质量成为本领域亟待解决的技术问题。

发明内容
本发明要解决的一个技术问题是提供一种在手机平台下实现H264视频编码格式播放优化的方法及系统,通过对手机终端接收、解析、解码和显示过程进行优化从处理,从而提高H264格式文件播放的速度和质量。本发明的一个方面提供了一种在手机平台下实现H264视频编码格式播放优化的方法,该方法包括手机客户端向服务器发送实时流媒体协议RTSP请求,请求位于服务器上的视频流;服务器按照H264编码格式进行编码,并以用户数据报文协议UDP形式发送实时传送流RTP数据包;客户端接收RTP数据包,将RTP数据包解析为裸码流数据,对裸码流数据进行解码;以及将解码后的流数据输出并进行视频显示。本发明提供的在手机平台下实现H264视频编码格式播放优化的方法的一个实施例中,将“RTP数据包解析为裸码流数据”设置为解析线程,将“对裸码流数据进行解码”设置为解码线程,将“解码后的流数据输出并进行视频显示”设置为显示线程;解析线程、解码线程和显示线程独立地交付CPU进行运算。本发明提供的在手机平台下实现H264视频编码格式播放优化的方法的一个实施例中,解析线程、解码线程和显示线程独立地交付CPU进行运算具体为控制CPU在从内存中读取数据时,以4个字节为单位进行读取;经过处理的数据输出至内存时,CPU以4个字节为单位进行输出。本发明提供的在手机平台下实现H264视频编码格式播放优化的方法的一个实施例中,“客户端接收RTP数据包”进一步包括在内存中设置静态链表作为RTP链表;客户端的接收模块把接收到的RTP数据包放入RTP链表中;将RTP链表中的RTP数据包发送至客户端的解析模块;以及RTP链表中的空闲空间等待接收新的RTP数据包。本发明提供的在手机平台下实现H264视频编码格式播放优化的方法的一个实施例中,“将RTP数据包解析为裸码流数据”的解析线程进一步包括判断RTP数据包的类型是否是IDR帧;如果是,并且数据包的接收速率大于解码器的最大处理速率时,则将IDR帧插入RTP链表,再根据丢包策略丢弃对后续解码没有影响的数据包;否则,直接在静态链表中插入该帧的数据包;丢弃RTP数据包中的附属信息,以生成裸码流数据;将裸码流数据输出至客户端的解码模块。本发明提供的在手机平台下实现H264视频编码格式播放优化的方法的一个实施例中,“对裸码流数据进行解码”的解码线程进一步包括根据数据的统计特性,对压缩编码的裸码流数据进行熵解码;将解码输出的一维数据重排序转化为二维数据;将服务器压缩编码过程中减少的图像编码长度恢复成原始长度;根据变换系数,恢复图片之间的关联性; 利用已编码视频帧以及基于块的运动补偿对运动轨迹或者周围前后的像素值进行预测;对预测得到的数据进行滤波后输出完整的YUV数据。本发明提供的在手机平台下实现H264视频编码格式播放优化的方法的一个实施例中,“解码后的流数据输出并进行视频显示”的显示线程进一步包括将YUV数据进行拉伸以匹配手机屏幕,并将YUV数据转换为RGB数据;将RGB数据转化为位图文件BMP数据; 将BMP数据显示在手机屏幕上。本发明提供的在手机平台下实现H264视频编码格式播放优化的方法的一个实施例中,该方法还包括客户端进入短暂睡眠状态,使CPU部分运转能力进入空转状态从而能够接纳其它线程进入运算;短暂睡眠状态结束后,判断CPU是否有空余运算能力;如果有, 则重复以上步骤;否则继续等待。本发明的另一个方面提供了一种在手机平台下实现H264视频编码格式播放优化的系统,该系统包括手机客户端,用于向服务器发送实时流媒体协议RTSP请求,请求位于服务器上的视频流;接收RTP数据包,将RTP数据包解析为裸码流数据,并对裸码流数据进行解码;以及将解码后的流数据输出并进行视频显示;服务器,用于存储视频流文件,以及按照H264编码格式进行编码,并以用户数据报文协议UDP形式发送实时传送流RTP数据包。本发明提供的在手机平台下实现H264视频编码格式播放优化的系统的一个实施例中,手机客户端进一步包括发送模块,用于向服务器发送实时流媒体协议RTSP请求,请求位于服务器上的视频流;接收模块,用于接收服务器传送的RTP数据包,并将RTP数据包发送至解析模块;解析模块,用于接收RTP数据包,并将RTP数据包解析为裸码流数据;以及将裸码流数据发送至解码模块;解码模块,用于接收裸码流数据,并对裸码流数据进行解码;以及将解码后的流数据输出至显示模块;显示模块,用于接收解码后的流数据,并进行视频显示。本发明提供的在手机平台下实现H264视频编码格式播放优化的系统的一个实施例中,接收模块接收RTP数据包进一步包括在内存中设置静态链表作为RTP链表;客户端的接收模块把接收到的RTP数据包放入RTP链表中;将RTP链表中的RTP数据包发送至客户端的解析模块;以及RTP链表中的空闲空间等待接收新的RTP数据包。本发明提供的在手机平台下实现H264视频编码格式播放优化的系统的一个实施例中,解析模块将RTP数据包解析为裸码流数据进一步包括判断RTP数据包的类型是否是 IDR帧;如果是,并且数据包的接收速率大于解码器的最大处理速率时,则将IDR帧插入RTP 链表,再根据丢包策略丢弃对后续解码没有影响的数据包;否则,直接在静态链表中插入该帧的数据包;丢弃RTP数据包中的附属信息,以生成裸码流数据;将裸码流数据输出至客户端的解码模块。本发明提供的在手机平台下实现H264视频编码格式播放优化的系统的一个实施例中,解码模块对裸码流数据进行解码进一步包括根据数据的统计特性,对压缩编码的裸码流数据进行熵解码;将解码输出的一维数据重排序转化为二维数据;将服务器压缩编码过程中减少的图像编码长度恢复成原始长度;根据变换系数,恢复图片之间的关联性;利用已编码视频帧以及基于块的运动补偿对运动轨迹或者周围前后的像素值进行预测;对预测得到的数据进行滤波后输出完整的YUV数据。本发明提供的在手机平台下实现H264视频编码格式播放优化的系统的一个实施例中,显示模块进行视频显示进一步包括将YUV数据进行拉伸以匹配手机屏幕,并将YUV 数据转换为RGB数据;将RGB数据转化为位图文件BMP数据;将BMP数据显示在手机屏幕上。本发明提供的在手机平台下实现H264视频编码格式播放优化的系统的一个实施例中,解析模块、解码模块、显示模块还分别用于进入短暂睡眠状态,使CPU部分运转能力进入空转状态从而能够接纳其它线程进入运算;短暂睡眠状态结束后,判断CPU是否有空余运算能力;如果有,则重复以上步骤;否则继续等待。本发明供的在手机平台下实现H264视频编码格式播放优化的方法及系统,通过对手机终端接收、解析、解码和显示过程进行优化从处理;即解析线程、解码线程和显示线程独立地交付CPU进行运算,控制CPU在从内存中读取数据时,以4个字节为单位进行读取;经过处理的数据输出至内存时,CPU以4个字节为单位进行输出,从而提高H264格式文件播放的速度和质量。


图1示出本发明实施例提供的一种在手机平台下实现H264视频编码格式播放优化的方法的流程图;图2示出本发明提供的在手机平台下实现H264视频编码格式播放优化的方法的另一个实施例的流程图;图3示出本发明提供的在手机平台下实现H264视频编码格式播放优化的方法的另一个实施例的流程图;图4示出本发明提供的在手机平台下实现H264视频编码格式播放优化的方法的另一个实施例的流程图;图5示出本发明提供的在手机平台下实现H264视频编码格式播放优化的方法的另一个实施例的流程图;图6示出本发明提供的在手机平台下实现H264视频编码格式播放优化的方法的另一个实施例的流程图;图7示出本发明提供的在手机平台下实现H264视频编码格式播放优化的方法的另一个实施例的流程图;图8示出本发明提供的在手机平台下实现H264视频编码格式播放优化的方法的另一个实施例的流程图;图9示出本发明实施例提供的一种在手机平台下实现H264视频编码格式播放优化的系统的结构示意图;图10示出本发明提供的在手机平台下实现H264视频编码格式播放优化的系统的另一个实施例的结构示意图。
具体实施例方式下面参照附图对本发明进行更全面的描述,其中说明本发明的示例性实施例。图1示出本发明实施例提供的一种在手机平台下实现H264视频编码格式播放优化的方法的流程图。如图1所示,在手机平台下实现H264视频编码格式播放优化的方法流程100包括步骤102-112;具体如下步骤102,手机客户端向服务器发送RTSP(实时流媒体协议,Real-Time Streaming Protocol)请求,请求位于服务器上的视频流。步骤104,服务器按照H264编码格式进行编码,并以UDP (用户数据报文协议,User Datagram Protocol)形式发送 RTP (实时传输协议,Real-time Transport Protocol)数据包。步骤106,客户端接收RTP数据包。步骤108,将RTP数据包解析为裸码流数据。本发明提供的在手机平台下实现H264 视频编码格式播放优化的方法的一个实施例中,将“所述RTP数据包解析为裸码流数据”设置为解析线程。本发明中可以采用现有的解析技术,从而去掉RTP数据包的包头数据。步骤110,对裸码流数据进行解码。本发明提供的在手机平台下实现H264视频编码格式播放优化的方法的一个实施例中,将“对所述裸码流数据进行解码”设置为解码线程。本发明中可以采用现有的解码技术,即从现有的FFMPEG解码库移植h. 264视频解码部分。步骤112,将解码后的流数据输出并进行视频显示。本发明提供的在手机平台下实现H264视频编码格式播放优化的方法的一个实施例中,将“解码后的流数据输出并进行视频显示”设置为显示线程。本发明提供的在手机平台下实现H264视频编码格式播放优化的方法的一个实施例中,前述解析线程、解码线程和显示线程独立地交付CPU进行运算。其中,将前述线程独立地交付CPU进行运算具体为控制CPU在从内存中读取数据时,以4个字节为单位进行读取;经过处理的数据输出至内存时,所述CPU以4个字节为单位进行输出。稍后的实施例还将分别进一步地详细介绍解析线程、解码线程和显示线程。图2示出本发明提供的在手机平台下实现H264视频编码格式播放优化的方法的另一个实施例的流程图。
如图2所示,在手机平台下实现H264视频编码格式播放优化的方法200包括步骤202-210,其中步骤202、204、208-212可以分别执行与图1所示的步骤102、104、108-112 相同或相似的技术内容,为简洁起见,这里不再赘述其技术内容。
如图2所示,在步骤204之后,分别执行步骤206a-206d ;具体如下
步骤206a,在内存中设置静态链表作为RTP链表。
步骤206b,客户端的接收模块把接收到的RTP数据包放入RTP链表中。
步骤206c,将RTP链表中的RTP数据包发送至客户端的解析模块。
步骤206d,RTP链表中的空闲空间等待接收新的RTP数据包。
图3示出本发明提供的在手机平台下实现H264视频编码格式播放优化的方法的另一个实施例的流程图。
如图3所示,在手机平台下实现H264视频编码格式播放优化的方法300包括步骤302-306、3080-3086、310、312,其中步骤302-306、310、312可以分别执行与图1所示的步骤102-106、110、112相同或相似的技术内容,为简洁起见,这里不再赘述其技术内容。
如图3所示,在步骤306之后,分别执行步骤3080-3086 ;具体如下
步骤3080,判断所述RTP数据包的类型是否是IDR帧;如果是,执行步骤3081 ;否则,执行步骤3082。
步骤3081,判断数据包的接收速率是否大于解码器的最大处理速率;如果时,执行步骤3083 ;否则,执行步骤3084。
步骤3082,直接在静态链表中插入该帧的数据包。例如,如果解码器的解码速率大于接收速率,此时不用丢包,直接将接收到的rtp数据包插入rtp链表中。
步骤3083,将所述IDR帧插入所述RTP链表,再根据丢包策略丢弃对后续解码没有影响的数据包。
步骤3084,丢弃所述RTP数据包中的附属信息,以生成裸码流数据。其中,附属信息是指rtp数据包前面的rtp头信息,包括时间戳、序列号、码流类型等。
步骤3085,将所述裸码流数据输出至所述客户端的解码模块。
图4示出本发明提供的在手机平台下实现H264视频编码格式播放优化的方法的另一个实施例的流程图。
如图4所示,在手机平台下实现H264视频编码格式播放优化的方法中步骤“将RTP 数据包解析为裸码流数据”进一步包括步骤4080-4085、4086、4087、4088i、4088 j,其中步骤4080-4085可以分别执行与图3所示的步骤3080-3085相同或相似的技术内容,为简洁起见,这里不再赘述其技术内容。
如图4所示,在步骤4085之后,分别执行步骤4086、4087、4088i、4088j ;具体如下
步骤4086,进入短暂睡眠状态,使CPU部分运转能力进入空转状态从而能够接纳其它线程进入运算。
步骤4087,判断当前线程是否处于睡眠状态;如果是,则执行步骤4088i ;否则,执行步骤4088j。
步骤4088i,判断是否有其它线程在等待;如果是,则等待系统调度新的线程运行;否则,跳转到步骤4087。
步骤4088j,判断CPU是否有空余运算能力;如果有,则跳转到步骤4080 ;否则继续等待。
图5示出本发明提供的在手机平台下实现H264视频编码格式播放优化的方法的另一个实施例的流程图。
如图5所示,在手机平台下实现H264视频编码格式播放优化的方法500包括步骤502-508、510、512,其中步骤502-508、512可以分别执行与图1所示的步骤102-108、112 相同或相似的技术内容,为简洁起见,这里不再赘述其技术内容。
如图5所示,在步骤508之后,分别执行步骤510a_510f ;具体如下
步骤510a,根据数据的统计特性,对压缩编码的所述裸码流数据进行熵解码。其中,统计特性是指对码流数据进行分析,对出现概率大的符号分配短字长的二进制码,从而提高压缩率。
步骤510b,将解码输出的一维数据重排序转化为二维数据。例如,编码时将一副图像的数据也就是二维数据依据Zigzag(之字形)扫描成一维数据,解码时进行相反过程将一维数据重排序成二维数据。
步骤510c,将所述服务器压缩编码过程中减少的图像编码长度恢复成原始长度。
步骤510d,根据变换系数,恢复图片之间的关联性。其中变换系数是经过离散余弦变换后的变换系数。图片之间的关联性是指编码时一副图片将被分割成很多块,每个块的编码是参考周围块的数据进行编码(也就是说和周围块产生关联),所以在解码时要再以周围图片作为参考才能解码出当前数据块。
步骤510e,利用已编码视频帧以及基于块的运动补偿对运动轨迹或者周围前后的像素值进行预测。有关预测的技术细节可以参见“Draft ITU-T Recommendation and Final Draft International Standard of Joint Video Specification(ITU-T Rec. H. 264|ISO/ IEC 14496-10 AVC)”。
步骤510f,对预测得到的数据进行滤波后输出完整的YUV数据。其中,YUV是指显示一张图片所用的亮度信号和2个色差信号,“Y”表示为Luminance (亮度),“UV”并非任何单词的缩写。
图6示出本发明提供的在手机平台下实现H264视频编码格式播放优化的方法的另一个实施例的流程图。
如图6所示,在手机平台下实现H264视频编码格式播放优化的方法中步骤“对裸码流数据进行解码”进一步包括步骤610a-610f、610g、610h、610i、610j,其中步骤 610a-610f可以分别执行与图5所示的步骤510a-510f相同或相似的技术内容,为简洁起见,这里不再赘述其技术内容。
如图6所示,在步骤610f之后,分别执行步骤610g、610h、610i、610j ;具体如下
步骤610g,客户端进入短暂睡眠状态,使CPU部分运转能力进入空转状态从而能够接纳其它线程进入运算。其中,短暂睡眠状态一般为10ms。
步骤610h,客户端判断当前线程是否处于睡眠状态;如果是,则执行步骤610i ;否则,执行步骤610j。
步骤610i,判断是否有其它线程在等待;如果是,则等待系统调度新的线程运行; 否则,跳转到步骤6IOh。
步骤610j,判断CPU是否有空余运算能力;如果有,则跳转到步骤610a ;否则继续等待。
图7示出本发明提供的在手机平台下实现H264视频编码格式播放优化的方法的另一个实施例的流程图。
如图7所示,在手机平台下实现H264视频编码格式播放优化的方法700包括步骤702-710、71加-712(3,其中步骤702-710可以分别执行与图1所示的步骤102-110相同或相似的技术内容,为简洁起见,这里不再赘述其技术内容。
如图7所示,在步骤710之后,分别执行步骤712a_712c ;具体如下
步骤712a,将YUV数据进行拉伸以匹配手机屏幕,并将YUV数据转换为RGB数据。
步骤712b,将所述RGB数据转化为位图文件BMP数据。
步骤712c,将所述BMP数据显示在手机屏幕上。
图8示出本发明提供的在手机平台下实现H264视频编码格式播放优化的方法的另一个实施例的流程图。
如图8所示,在手机平台下实现H264视频编码格式播放优化的方法中步骤“解码后的流数据输出并进行视频显示”进一步包括步骤81h-812C、812d、812e、812f、812g,其中步骤812a-812c可以分别执行与图7所示的步骤712a_712c相同或相似的技术内容,为简洁起见,这里不再赘述其技术内容。
如图8所示,在步骤712c之后,分别执行步骤812d、812e、812f、812g ;具体如下
步骤812d,进入短暂睡眠状态,使CPU部分运转能力进入空转状态从而能够接纳其它线程进入运算。
步骤812e,判断当前线程是否处于睡眠状态;如果是,则执行步骤812f ;否则,执行步骤812g。
步骤812f,判断是否有其它线程在等待;如果是,则等待系统调度新的线程运行; 否则,跳转到步骤81加。
步骤812g,判断CPU是否有空余运算能力;如果有,则跳转到步骤81 ;否则继续等待。
图9示出本发明实施例提供的一种在手机平台下实现H264视频编码格式播放优化的系统的结构示意图。
如图9所示,一种在手机平台下实现H264视频编码格式播放优化的系统900包括
手机客户端902,用于向服务器发送实时流媒体协议RTSP请求,请求位于服务器上的视频流;接收RTP数据包,将RTP数据包解析为裸码流数据,并对裸码流数据进行解码; 以及将解码后的流数据输出并进行视频显示。
服务器904,用于存储视频流文件,以及按照H264编码格式进行编码,并以用户数据报文协议UDP形式发送实时传送流RTP数据包。
图10示出本发明提供的在手机平台下实现H264视频编码格式播放优化的系统的另一个实施例的结构示意图。
如图10所示,一种在手机平台下实现H264视频编码格式播放优化的系统1000包括手机客户端1002、服务器1004。其中服务器1004可以是与图9所示服务器904具有相11同或相似的功能模块。为简洁起见,这里不再赘述。
如图10所示,手机客户端1002进一步包括发送模块1002a、接收模块1002b、解析模块1002c、解码模块1002d和显示模块1002e ;其中
发送模块1002a,用于向服务器发送实时流媒体协议RTSP请求,请求位于服务器上的视频流。
接收模块1002b,用于接收服务器传送的RTP数据包,并将RTP数据包发送至解析模块。例如,接收模块接收RTP数据包进一步包括在内存中设置静态链表作为RTP链表; 客户端的接收模块把接收到的RTP数据包放入RTP链表中;将RTP链表中的RTP数据包发送至客户端的解析模块;以及RTP链表中的空闲空间等待接收新的RTP数据包。
解析模块1002c,用于接收RTP数据包,并将RTP数据包解析为裸码流数据;以及将裸码流数据发送至解码模块。解析模块将RTP数据包解析为裸码流数据进一步包括判断RTP数据包的类型是否是中速率数据IDR帧;如果是,并且数据包的接收速率大于解码器的最大处理速率时,则将IDR帧插入RTP链表,再根据丢包策略丢弃对后续解码没有影响的数据包;否则,直接插入该帧的数据包;丢弃RTP数据包中的附属信息,以生成裸码流数据; 将裸码流数据输出至客户端的解码模块。
解码模块1002d,用于接收裸码流数据,并对裸码流数据进行解码;以及将解码后的流数据输出至显示模块。解码模块对裸码流数据进行解码进一步包括根据数据的统计特性,对压缩编码的裸码流数据进行熵解码;将解码输出的一维数据重排序转化为二维数据;将服务器压缩编码过程中减少的图像编码长度恢复成原始长度;根据变换系数,恢复图片之间的关联性;利用已编码视频帧以及基于块的运动补偿对运动轨迹或者周围前后的像素值进行预测;对预测得到的数据进行滤波后输出完整的YUV数据。
显示模块1002e,用于接收解码后的流数据,并进行视频显示。显示模块进行视频显示进一步包括将YUV数据进行拉伸以匹配手机屏幕,并将YUV数据转换为RGB数据;将 RGB数据转化为位图文件BMP数据;将BMP数据显示在手机屏幕上。
本发明提供的在手机平台下实现H264视频编码格式播放优化的系统中,解析模块、解码模块、显示模块还分别用于进入短暂睡眠状态,使CPU部分运转能力进入空转状态从而能够接纳其它线程进入运算;短暂睡眠状态结束后,判断CPU是否有空余运算能力; 如果有,则重复以上步骤;否则继续等待。
参考前述本发明示例性的描述,本领域技术人员可以清楚的知晓本发明具有以下优点
1、本发明提供的在手机平台下实现H264视频编码格式播放优化的方法及系统, 通过对手机终端接收、解析、解码和显示过程进行优化从处理,从而提高H264格式文件播放的速度和质量。
2、本发明提供的在手机平台下实现H264视频编码格式播放优化的方法及系统, 解析线程、解码线程和显示线程独立地交付CPU进行运算;控制CPU在从内存中读取数据时,以4个字节为单位进行读取;经过处理的数据输出至内存时,所述CPU以4个字节为单位进行输出,从而避免造成读取或者输出速度的浪费。
本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
权利要求
1.一种在手机平台下实现H264视频编码格式播放优化的方法,其特征在于,所述方法包括手机客户端向服务器发送实时流媒体协议RTSP请求,请求位于服务器上的视频流; 所述服务器按照H264编码格式进行编码,并以用户数据报文协议UDP形式发送实时传送流RTP数据包;所述客户端接收所述RTP数据包,将所述RTP数据包解析为裸码流数据,并对所述裸码流数据进行解码;以及将解码后的流数据输出并进行视频显示。
2.根据权利要求1所述的方法,其特征在于,将“所述RTP数据包解析为裸码流数据” 设置为解析线程,将“对所述裸码流数据进行解码”设置为解码线程,将“解码后的流数据输出并进行视频显示”设置为显示线程;所述解析线程、解码线程和显示线程独立地交付CPU 进行运算。
3.根据权利要求2所述的方法,其特征在于,所述解析线程、解码线程和显示线程独立地交付CPU进行运算具体为控制CPU在从内存中读取数据时,以4个字节为单位进行读取;经过处理的数据输出至内存时,所述CPU以4个字节为单位进行输出。
4.根据权利要求1所述的方法,其特征在于,“所述客户端接收所述RTP数据包”进一步包括在内存中设置静态链表作为RTP链表;所述客户端的接收模块把接收到的所述RTP数据包放入所述RTP链表中; 将所述RTP链表中的RTP数据包发送至所述客户端的解析模块;以及所述RTP链表中的空闲空间等待接收新的RTP数据包。
5.根据权利要求1所述的方法,其特征在于,“将所述RTP数据包解析为裸码流数据” 的解析线程进一步包括判断所述RTP数据包的类型是否是IDR帧;如果是,并且数据包的接收速率大于解码器的最大处理速率时,则将所述IDR帧插入所述RTP链表,再根据丢包策略丢弃对后续解码没有影响的数据包;否则,直接在静态链表中插入该帧的数据包; 丢弃所述RTP数据包中的附属信息,以生成裸码流数据; 将所述裸码流数据输出至所述客户端的解码模块。
6.根据权利要求1所述的方法,其特征在于,“对所述裸码流数据进行解码”的解码线程进一步包括根据数据的统计特性,对压缩编码的所述裸码流数据进行熵解码; 将解码输出的一维数据重排序转化为二维数据; 将所述服务器压缩编码过程中减少的图像编码长度恢复成原始长度; 根据变换系数,恢复图片之间的关联性;利用已编码视频帧以及基于块的运动补偿对运动轨迹或者周围前后的像素值进行预测;对预测得到的数据进行滤波后输出完整的YUV数据。
7.根据权利要求1所述的方法,其特征在于,“解码后的流数据输出并进行视频显示” 的显示线程进一步包括将YUV数据进行拉伸以匹配手机屏幕,并将YUV数据转换为RGB数据; 将所述RGB数据转化为位图文件BMP数据; 将所述BMP数据显示在手机屏幕上。
8.根据权利要求5-7中任意一项所述的方法,其特征在于,所述方法还包括 客户端进入短暂睡眠状态,使CPU部分运转能力进入空转状态从而能够接纳其它线程进入运算;所述短暂睡眠状态结束后,判断CPU是否有空余运算能力;如果有,则重复以上步骤; 否则继续等待。
9.一种在手机平台下实现H264视频编码格式播放优化的系统,其特征在于,所述系统包括手机客户端,用于向服务器发送实时流媒体协议RTSP请求,请求位于服务器上的视频流;接收所述RTP数据包,将所述RTP数据包解析为裸码流数据,并对所述裸码流数据进行解码;以及将解码后的流数据输出并进行视频显示;所述服务器,用于存储视频流文件,以及按照H264编码格式进行编码,并以用户数据报文协议UDP形式发送实时传送流RTP数据包。
10.根据权利要求9所述的系统,其特征在于,所述手机客户端进一步包括发送模块,用于向所述服务器发送实时流媒体协议RTSP请求,请求位于服务器上的视频流;接收模块,用于接收所述服务器传送的RTP数据包,并将所述RTP数据包发送至解析模块;所述解析模块,用于接收所述RTP数据包,并将所述RTP数据包解析为裸码流数据;以及将所述裸码流数据发送至解码模块;所述解码模块,用于接收所述裸码流数据,并对所述裸码流数据进行解码;以及将解码后的流数据输出至显示模块;所述显示模块,用于接收所述解码后的流数据,并进行视频显示。
11.根据权利要求10所述的系统,其特征在于,所述接收模块接收所述RTP数据包进一步包括在内存中设置静态链表作为RTP链表;所述客户端的接收模块把接收到的所述RTP 数据包放入所述RTP链表中;将所述RTP链表中的RTP数据包发送至所述客户端的解析模块;以及所述RTP链表中的空闲空间等待接收新的RTP数据包。
12.根据权利要求10所述的系统,其特征在于,所述解析模块将所述RTP数据包解析为裸码流数据进一步包括判断所述RTP数据包的类型是否是IDR帧;如果是,并且数据包的接收速率大于解码器的最大处理速率时,则将所述IDR帧插入所述RTP链表,再根据丢包策略丢弃对后续解码没有影响的数据包;否则,直接在静态链表中插入该帧的数据包;丢弃所述RTP数据包中的附属信息,以生成裸码流数据;将所述裸码流数据输出至所述客户端的解码模块。
13.根据权利要求10所述的系统,其特征在于,所述解码模块对所述裸码流数据进行解码进一步包括根据数据的统计特性,对压缩编码的所述裸码流数据进行熵解码;将解码输出的一维数据重排序转化为二维数据;将所述服务器压缩编码过程中减少的图像编码长度恢复成原始长度;根据变换系数,恢复图片之间的关联性;利用已编码视频帧以及基于块的运动补偿对运动轨迹或者周围前后的像素值进行预测;对预测得到的数据进行滤波后输出完整的YUV数据。
14.根据权利要求10所述的系统,其特征在于,所述显示模块进行视频显示进一步包括将YUV数据进行拉伸以匹配手机屏幕,并将YUV数据转换为RGB数据;将所述RGB数据转化为位图文件BMP数据;将所述BMP数据显示在手机屏幕上。
15.根据权利要求12-14中任意一项所述的系统,其特征在于,所述解析模块、所述解码模块、所述显示模块还分别用于进入短暂睡眠状态,使CPU部分运转能力进入空转状态从而能够接纳其它线程进入运算;所述短暂睡眠状态结束后,判断CPU是否有空余运算能力;如果有,则重复以上步骤;否则继续等待。
全文摘要
本发明公开一种在手机平台下实现H264视频编码格式播放优化的方法及系统,该方法包括手机客户端向服务器发送实时流媒体协议RTSP请求,请求位于服务器上的视频流;服务器按照H264编码格式进行编码,并以用户数据报文协议UDP形式发送实时传送流RTP数据包;客户端接收RTP数据包,将RTP数据包解析为裸码流数据,对裸码流数据进行解码;以及将解码后的流数据输出并进行视频显示。本发明通过对手机终端接收、解析、解码和显示过程进行优化从处理,从而提高H264格式文件播放的速度和质量。
文档编号H04N7/26GK102480618SQ201010557109
公开日2012年5月30日 申请日期2010年11月24日 优先权日2010年11月24日
发明者俞静飞, 孙小华, 宋革联, 庄涛, 李英梅 申请人:中国电信股份有限公司, 浙江省公众信息产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1