CN102480618B - 实现h264视频编码格式播放优化的方法及系统 - Google Patents

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

Info

Publication number
CN102480618B
CN102480618B CN201010557109.7A CN201010557109A CN102480618B CN 102480618 B CN102480618 B CN 102480618B CN 201010557109 A CN201010557109 A CN 201010557109A CN 102480618 B CN102480618 B CN 102480618B
Authority
CN
China
Prior art keywords
data
naked
bit stream
rtp packet
thread
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201010557109.7A
Other languages
English (en)
Other versions
CN102480618A (zh
Inventor
宋革联
庄涛
李英梅
孙小华
俞静飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Telecom Corp Ltd
Original Assignee
China Telecom Corp Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Telecom Corp Ltd filed Critical China Telecom Corp Ltd
Priority to CN201010557109.7A priority Critical patent/CN102480618B/zh
Publication of CN102480618A publication Critical patent/CN102480618A/zh
Application granted granted Critical
Publication of CN102480618B publication Critical patent/CN102480618B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明公开一种在手机平台下实现H264视频编码格式播放优化的方法及系统,该方法包括:手机客户端向服务器发送实时流媒体协议RTSP请求,请求位于服务器上的视频流;服务器按照H264编码格式进行编码,并以用户数据报文协议UDP形式发送实时传送流RTP数据包;客户端接收RTP数据包,将RTP数据包解析为裸码流数据,对裸码流数据进行解码;以及将解码后的流数据输出并进行视频显示。本发明通过对手机终端接收、解析、解码和显示过程进行优化从处理,从而提高H264格式文件播放的速度和质量。

Description

实现H264视频编码格式播放优化的方法及系统
技术领域
本发明涉及视频播放技术领域,尤其涉及一种在手机平台下实现H264视频编码格式播放优化的方法及系统。
背景技术
H264标准是由国际电信联盟(ITU)和国际标准化组织(ISO)共同制定的新一代视频编码标准,因其具有更高的压缩比、更好的IP和无线网络信道的适应性,在数字视频通信和存储领域得到越来越广泛的应用,但是H264标准获得优越性能的代价是计算复杂度增加,增加了对播放设备解码能力的要求。随着移动网络技术的不断发展,利用手机观看视频逐渐成为一种趋势,但是播放视频时高复杂度的解码和运算对手机是一种考验,常常会因为运算和解码能力不足导致视频播放不流畅和马赛克现象。
目前的手机平台基本都采用ARM(异步应答方式,AsynchronousResponse 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、4088j,其中步骤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,将解码输出的一维数据重排序转化为二维数据。例如,编码时将一副图像的数据也就是二维数据依据Zig-Zag(之字形)扫描成一维数据,解码时进行相反过程将一维数据重排序成二维数据。
步骤510c,将所述服务器压缩编码过程中减少的图像编码长度恢复成原始长度。
步骤510d,根据变换系数,恢复图片之间的关联性。其中变换系数是经过离散余弦变换后的变换系数。图片之间的关联性是指编码时一副图片将被分割成很多块,每个块的编码是参考周围块的数据进行编码(也就是说和周围块产生关联),所以在解码时要再以周围图片作为参考才能解码出当前数据块。
步骤510e,利用已编码视频帧以及基于块的运动补偿对运动轨迹或者周围前后的像素值进行预测。有关预测的技术细节可以参见“DraftITU-T Recommendation and Final Draft International Standard of JointVideo 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,判断是否有其它线程在等待;如果是,则等待系统调度新的线程运行;否则,跳转到步骤610h。
步骤610j,判断CPU是否有空余运算能力;如果有,则跳转到步骤610a;否则继续等待。
图7示出本发明提供的在手机平台下实现H264视频编码格式播放优化的方法的另一个实施例的流程图。
如图7所示,在手机平台下实现H264视频编码格式播放优化的方法700包括:步骤702-710、712a-712c,其中步骤702-710可以分别执行与图1所示的步骤102-110相同或相似的技术内容,为简洁起见,这里不再赘述其技术内容。
如图7所示,在步骤710之后,分别执行步骤712a-712c;具体如下:
步骤712a,将YUV数据进行拉伸以匹配手机屏幕,并将YUV数据转换为RGB数据。
步骤712b,将所述RGB数据转化为位图文件BMP数据。
步骤712c,将所述BMP数据显示在手机屏幕上。
图8示出本发明提供的在手机平台下实现H264视频编码格式播放优化的方法的另一个实施例的流程图。
如图8所示,在手机平台下实现H264视频编码格式播放优化的方法中步骤“解码后的流数据输出并进行视频显示”进一步包括:步骤812a-812c、812d、812e、812f、812g,其中步骤812a-812c可以分别执行与图7所示的步骤712a-712c相同或相似的技术内容,为简洁起见,这里不再赘述其技术内容。
如图8所示,在步骤712c之后,分别执行步骤812d、812e、812f、812g;具体如下:
步骤812d,进入短暂睡眠状态,使CPU部分运转能力进入空转状态从而能够接纳其它线程进入运算。
步骤812e,判断当前线程是否处于睡眠状态;如果是,则执行步骤812f;否则,执行步骤812g。
步骤812f,判断是否有其它线程在等待;如果是,则等待系统调度新的线程运行;否则,跳转到步骤812e。
步骤812g,判断CPU是否有空余运算能力;如果有,则跳转到步骤812a;否则继续等待。
图9示出本发明实施例提供的一种在手机平台下实现H264视频编码格式播放优化的系统的结构示意图。
如图9所示,一种在手机平台下实现H264视频编码格式播放优化的系统900包括:
手机客户端902,用于向服务器发送实时流媒体协议RTSP请求,请求位于服务器上的视频流;接收RTP数据包,将RTP数据包解析为裸码流数据,并对裸码流数据进行解码;以及将解码后的流数据输出并进行视频显示。
服务器904,用于存储视频流文件,以及按照H264编码格式进行编码,并以用户数据报文协议UDP形式发送实时传送流RTP数据包。
图10示出本发明提供的在手机平台下实现H264视频编码格式播放优化的系统的另一个实施例的结构示意图。
如图10所示,一种在手机平台下实现H264视频编码格式播放优化的系统1000包括:手机客户端1002、服务器1004。其中服务器1004可以是与图9所示服务器904具有相同或相似的功能模块。为简洁起见,这里不再赘述。
如图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个字节为单位进行输出,从而避免造成读取或者输出速度的浪费。
本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。

Claims (17)

1.一种在手机平台下实现H264视频编码格式播放优化的方法,其特征在于,所述方法包括:
手机客户端向服务器发送实时流媒体协议RTSP请求,请求位于服务器上的视频流;
所述服务器按照H264编码格式进行编码,并以用户数据报文协议UDP形式发送实时传送流RTP数据包;
所述客户端接收所述RTP数据包,将所述RTP数据包解析为裸码流数据,并对所述裸码流数据进行解码;以及
将解码后的流数据输出并进行视频显示;
其中“将所述RTP数据包解析为裸码流数据”的解析线程进一步包括:
判断所述RTP数据包的类型是否是IDR帧;如果是,并且数据包的接收速率大于解码器的最大处理速率时,则将所述IDR帧插入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所述的方法,其特征在于,所述方法还包括:
客户端进入短暂睡眠状态,使CPU部分运转能力进入空转状态从而能够接纳其它线程进入运算;
所述短暂睡眠状态结束后,判断CPU是否有空余运算能力;如果有,则重复执行判断所述RTP数据包的类型是否是IDR帧的步骤;否则继续等待。
6.根据权利要求1所述的方法,其特征在于,“对所述裸码流数据进行解码”的解码线程进一步包括:
根据数据的统计特性,对压缩编码的所述裸码流数据进行熵解码;
将解码输出的一维数据重排序转化为二维数据;
将所述服务器压缩编码过程中减少的图像编码长度恢复成原始长度;
根据变换系数,恢复图片之间的关联性;利用已编码视频帧以及基于块的运动补偿对运动轨迹或者周围前后的像素值进行预测;
对预测得到的数据进行滤波后输出完整的YUV数据。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
客户端进入短暂睡眠状态,使CPU部分运转能力进入空转状态从而能够接纳其它线程进入运算;
所述短暂睡眠状态结束后,判断CPU是否有空余运算能力;如果有,则重复执行“根据数据的统计特性,对压缩编码的所述裸码流数据进行熵解码”的步骤;否则继续等待。
8.根据权利要求1所述的方法,其特征在于,“解码后的流数据输出并进行视频显示”的显示线程进一步包括:
将YUV数据进行拉伸以匹配手机屏幕,并将YUV数据转换为RGB数据;
将所述RGB数据转化为位图文件BMP数据;
将所述BMP数据显示在手机屏幕上。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
客户端进入短暂睡眠状态,使CPU部分运转能力进入空转状态从而能够接纳其它线程进入运算;
所述短暂睡眠状态结束后,判断CPU是否有空余运算能力;如果有,则重复执行“将YUV数据进行拉伸以匹配手机屏幕,并将YUV数据转换为RGB数据”的步骤;否则继续等待。
10.一种在手机平台下实现H264视频编码格式播放优化的系统,其特征在于,所述系统包括:
手机客户端,用于向服务器发送实时流媒体协议RTSP请求,请求位于服务器上的视频流;接收RTP数据包,将所述RTP数据包解析为裸码流数据,并对所述裸码流数据进行解码;以及将解码后的流数据输出并进行视频显示;
所述服务器,用于存储视频流文件,以及按照H264编码格式进行编码,并以用户数据报文协议UDP形式发送实时传送流RTP数据包;
其中,手机客户端包括解析模块;所述解析模块将所述RTP数据包解析为裸码流数据进一步包括:判断所述RTP数据包的类型是否是IDR帧;如果是,并且数据包的接收速率大于解码器的最大处理速率时,则将所述IDR帧插入RTP链表,再根据丢包策略丢弃对后续解码没有影响的数据包;否则,直接在静态链表中插入该帧的数据包;丢弃所述RTP数据包中的附属信息,以生成裸码流数据;将所述裸码流数据输出至所述客户端的解码模块,以便解码模块对所述裸码流数据进行解码。
11.根据权利要求10所述的系统,其特征在于,所述解析模块还用于:进入短暂睡眠状态,使CPU部分运转能力进入空转状态从而能够接纳其它线程进入运算;所述短暂睡眠状态结束后,判断CPU是否有空余运算能力;如果有,则重复执行判断所述RTP数据包的类型是否是IDR帧的操作;否则继续等待。
12.根据权利要求10所述的系统,其特征在于,所述手机客户端进一步包括:
发送模块,用于向所述服务器发送实时流媒体协议RTSP请求,请求位于服务器上的视频流;
接收模块,用于接收所述服务器传送的RTP数据包,并将所述RTP数据包发送至解析模块;
所述解析模块,用于接收所述RTP数据包,并将所述RTP数据包解析为裸码流数据;以及将所述裸码流数据发送至解码模块;
所述解码模块,用于接收所述裸码流数据,并对所述裸码流数据进行解码;以及将解码后的流数据输出至显示模块;
所述显示模块,用于接收所述解码后的流数据,并进行视频显示。
13.根据权利要求12所述的系统,其特征在于,所述接收模块接收所述RTP数据包进一步包括:在内存中设置静态链表作为RTP链表;所述客户端的接收模块把接收到的所述RTP数据包放入所述RTP链表中;将所述RTP链表中的RTP数据包发送至所述客户端的解析模块;以及所述RTP链表中的空闲空间等待接收新的RTP数据包。
14.根据权利要求12所述的系统,其特征在于,所述解码模块对所述裸码流数据进行解码进一步包括:根据数据的统计特性,对压缩编码的所述裸码流数据进行熵解码;将解码输出的一维数据重排序转化为二维数据;将所述服务器压缩编码过程中减少的图像编码长度恢复成原始长度;根据变换系数,恢复图片之间的关联性;利用已编码视频帧以及基于块的运动补偿对运动轨迹或者周围前后的像素值进行预测;对预测得到的数据进行滤波后输出完整的YUV数据。
15.根据权利要求14所述的系统,其特征在于,所述解码模块还用于:进入短暂睡眠状态,使CPU部分运转能力进入空转状态从而能够接纳其它线程进入运算;所述短暂睡眠状态结束后,判断CPU是否有空余运算能力;如果有,则重复执行“根据数据的统计特性,对压缩编码的所述裸码流数据进行熵解码”的操作;否则继续等待。
16.根据权利要求12所述的系统,其特征在于,所述显示模块进行视频显示进一步包括:将YUV数据进行拉伸以匹配手机屏幕,并将YUV数据转换为RGB数据;将所述RGB数据转化为位图文件BMP数据;将所述BMP数据显示在手机屏幕上。
17.根据权利要求16所述的系统,其特征在于,所述显示模块还用于:进入短暂睡眠状态,使CPU部分运转能力进入空转状态从而能够接纳其它线程进入运算;所述短暂睡眠状态结束后,判断CPU是否有空余运算能力;如果有,则重复执行“将YUV数据进行拉伸以匹配手机屏幕,并将YUV数据转换为RGB数据”的操作;否则继续等待。
CN201010557109.7A 2010-11-24 2010-11-24 实现h264视频编码格式播放优化的方法及系统 Active CN102480618B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010557109.7A CN102480618B (zh) 2010-11-24 2010-11-24 实现h264视频编码格式播放优化的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010557109.7A CN102480618B (zh) 2010-11-24 2010-11-24 实现h264视频编码格式播放优化的方法及系统

Publications (2)

Publication Number Publication Date
CN102480618A CN102480618A (zh) 2012-05-30
CN102480618B true CN102480618B (zh) 2015-09-16

Family

ID=46093080

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010557109.7A Active CN102480618B (zh) 2010-11-24 2010-11-24 实现h264视频编码格式播放优化的方法及系统

Country Status (1)

Country Link
CN (1) CN102480618B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104780390A (zh) * 2015-04-07 2015-07-15 天脉聚源(北京)教育科技有限公司 一种视频处理方法及装置
CN105049774A (zh) * 2015-07-01 2015-11-11 四川效率源信息安全技术有限责任公司 监控视频无需转码直接检索的方法
CN104980798B (zh) * 2015-07-14 2018-04-10 天脉聚源(北京)教育科技有限公司 一种远端视频显示方法及装置
CN105681342B (zh) * 2016-03-08 2019-12-17 随锐科技集团股份有限公司 一种基于h264的多路视频会议系统的抗误码方法及系统
CN107092961B (zh) * 2017-03-23 2018-08-28 中国科学院计算技术研究所 一种基于模式频率统计编码的神经网络处理器及设计方法
CN107241598B (zh) * 2017-06-29 2020-03-24 贵州电网有限责任公司 一种针对多路h.264视频会议的GPU解码方法
CN109257561B (zh) * 2017-07-14 2021-04-30 成都鼎桥通信技术有限公司 视频解码方法、设备及系统
CN108024140B (zh) * 2017-12-14 2020-09-25 广州华多网络科技有限公司 一种直播方法及系统
CN113497792B (zh) 2020-04-02 2022-12-23 京东方科技集团股份有限公司 音视频通信方法、终端、服务器、计算机设备和存储介质
CN111954019A (zh) * 2020-08-17 2020-11-17 西安微嗨互动信息科技有限公司 一种实现低时延超高清直播的流媒体编解码方法和系统
CN112600858A (zh) * 2021-01-06 2021-04-02 智道网联科技(北京)有限公司 自动驾驶的数据处理方法、车载设备及车辆
CN114827692A (zh) * 2022-04-29 2022-07-29 深圳市瑞云科技有限公司 一种基于智能电视操作云桌面的系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1917639A (zh) * 2006-09-01 2007-02-21 北京天地互连信息技术有限公司 使用丢包重传的视频信号增强方法
CN101321274A (zh) * 2007-06-06 2008-12-10 朱映波 一种实现手机电视和互联网电视的方法及系统
CN101568029A (zh) * 2008-11-28 2009-10-28 深圳市高斯贝尔家居智能电子有限公司 基于优化h.264编码标准的手机视频监视装置及方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1917639A (zh) * 2006-09-01 2007-02-21 北京天地互连信息技术有限公司 使用丢包重传的视频信号增强方法
CN101321274A (zh) * 2007-06-06 2008-12-10 朱映波 一种实现手机电视和互联网电视的方法及系统
CN101568029A (zh) * 2008-11-28 2009-10-28 深圳市高斯贝尔家居智能电子有限公司 基于优化h.264编码标准的手机视频监视装置及方法

Also Published As

Publication number Publication date
CN102480618A (zh) 2012-05-30

Similar Documents

Publication Publication Date Title
CN102480618B (zh) 实现h264视频编码格式播放优化的方法及系统
RU2511595C2 (ru) Устройство декодирования сигнала изображения, способ декодирования сигнала изображения, устройство кодирования сигнала изображения, способ кодирования изображения и программа
JP6921873B2 (ja) ディスプレイストリーム圧縮のためのサブストリーム多重化
CN112243128B (zh) 层间预测方法和传输比特流的方法
EP3632114A1 (en) Substream multiplexing for display stream compression
CN102238374B (zh) 对图像数据进行压缩编码的方法和装置
FR2888424A1 (fr) Dispositif et procede de codage et de decodage de donnees video et train de donnees
EP4168940A1 (en) Systems and methods for encoding/decoding a deep neural network
US20190356911A1 (en) Region-based processing of predicted pixels
JP2019511865A (ja) ディスプレイストリーム圧縮のためのベクトルベースエントロピーコード化のための装置および方法
US9344720B2 (en) Entropy coding techniques and protocol to support parallel processing with low latency
CN103918258A (zh) 减少视频编码中的数据量
CN101242534B (zh) 视频编码设备及方法
US6008853A (en) Sub-frame decoder with area dependent update rate for digital camcorder transmission standard
US20070171980A1 (en) Method and Related Apparatus For Decoding Video Streams
CN101188768A (zh) 基于rgb编解码器发送和接收运动图像的方法和设备
US11595652B2 (en) Explicit signaling of extended long term reference picture retention
CN103313017B (zh) 多路录像方法及系统
KR100620606B1 (ko) 알앤디 최적화를 이용한 제이팩 영상의 양자화 테이블설계방법
WO2023213775A1 (en) Methods and apparatuses for film grain modeling
WO2023222521A1 (en) Sei adapted for multiple conformance points
WO2023046463A1 (en) Methods and apparatuses for encoding/decoding a video
WO2023041317A1 (en) Method and apparatus for video encoding and decoding with chroma residuals sampling
CN115362679A (zh) 用于视频编码和解码的方法和装置
CN117813817A (zh) 用于对视频进行编码/解码的方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant