一种基于hevc的网络流媒体应用系统及方法
【技术领域】
[0001]本发明涉及流媒体播放技术领域,尤其涉及一种基于HEVC的网络流媒体应用系统及方法。
【背景技术】
[0002]HEVC (High Efficiency Video Coding)是一种新的视频压缩标准,可以替代
H.264/AVC编码标准。HEVC的规范化对许多未来的发展将做出巨大贡献,比如消费类设备领域(如广播电视、多媒体流媒体),移动通信和多媒体/视频内容的存储都将通过影响实施新兴HEVC标准。直至现在HEVC的研究重点一直放在改进的视频压缩效率上,许多改进都已经应用到HEVC的标准中。
[0003]但是,现有的工作并没有考虑到HEVC现实的流媒体的实际障碍环境,因此,现有的HEVC流媒体播放时网络波动造成HEVC播放视觉效果下降,并且,现有的HEVC流媒体播放系统对于测试的实施并不容易实现。
【发明内容】
[0004]为了解决现有技术中的问题,本发明提供了一种基于HEVC的网络流媒体应用系统及方法,弥补现有的HEVC流媒体播放时网络波动造成的HEVC播放视觉效果的下降,并尽可能的阻止信噪比的下降。
[0005]本发明通过以下技术方案实现:
[0006]—种基于HEVC的网络流媒体应用系统,其特征在于,所述系统包括:发送端和接收端,其中,所述发送端包括修改后的HEVC编码器模块、NAL单元加权重模块、自定义的HEVC字节流提取模块、字节流发送模块;所述修改后的HEVC编码器模块,用于对裸视频进行编码生成NAL单元并产生日志文件,所述日志文件用于记录NAL单元的第一个字节的内存偏移,所述NAL单元包括唯一标识符、PR1RITY字段以及标记原有顺序的字段;所述NAL单元加权重模块用于将所述修改后的HEVC编码器模块编码后的NAL单元根据RD0和PSNR综合计算得出ML单元的权重,记录到NAL的PR1RITY字段,并将G0P中的连续画面中的NAL单元根据权重重新排序,然后在所述标记原有顺序的字段记录NAL单元排序前的顺序;所述自定义的HEVC字节流提取模块,用于分析HEVC编码器模块产生的日志文件和NAL单元,根据所述日志文件记录的偏移量和NAL单元的顺序,从HEVC字节流中定位并提取NAL单元;所述字节流发送模块,用于发送所述NAL单元。
[0007]作为本发明的进一步改进,所述接收端包括接收处理模块,用于接收所述NAL单元,进行丢失标志位的NAL单元的识别、隐蔽性错误的解码和视觉质量的判定。通过对发送端的NAL单元跟踪文件与接收端的NAL单元跟踪文件比较来实现所述隐蔽性错误的解码。
[0008]作为本发明的进一步改进,所述发送端还包括测试模块,用于从字节流中提取任何一个的NAL单元进行测试。
[0009]另一方面,本发明还提供了一种基于HEVC的网络流媒体应用方法,所述方法基于修改后的HEVC编码器,所述方法包括以下步骤:
[0010]S101:对裸视频进行编码生成NAL单元并产生日志文件,所述日志文件用于记录NAL单元的第一个字节的内存偏移,所述NAL单元包括唯一标识符以及标记原有顺序的字段;
[0011]S102:对编码后的NAL单元根据RD0和PSNR综合计算得出NAL单元的权重,并将G0P中的连续画面中的NAL单元根据权重重新排序,然后在所述标记原有顺序的字段记录NAL单元排序前的顺序;
[0012]S103:分析HEVC编码器模块产生的日志文件和NAL单元,根据所述日志文件记录的偏移量和ML单元的顺序,从HEVC字节流中定位并提取NAL单元;
[0013]S104:发送所述NAL单元;
[0014]S105:接收所述NAL单元,进行丢失标志位的NAL单元的识别、隐蔽性错误的解码和视觉质量的判定。
[0015]本发明的有益效果是:本发明设计和实施了 HEVC流媒体和评估框架,并实现了一个高效的实时基准系统HEVC视频流,并允许有效测试。通过对NAL单元和HEVC编解码器的自定义修改,并把HEVC流媒体播放划分为服务端和接收端,使得对于网络波荡对HEVC流媒体播放造成的视觉影响减少。
【附图说明】
[0016]图1是本发明的基于HEVC的网络流媒体应用系统架构图;
[0017]图2是本发明的HEVC NAL单元标记结构体示意图;
[0018]图3是本发明的HEVC VCL NAL单元示意图;
[0019]图4是本发明的应用场景示意图;
[0020]图5是本发明测试得出的NAL单元丢失率示意图。
【具体实施方式】
[0021]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0022]附图1所示为本发明的基于HEVC的网络流媒体应用系统包括:发送端和接收端,其中,所述发送端包括修改后的HEVC编码器模块、NAL单元加权重模块、自定义的HEVC字节流提取模块、字节流发送模块。
[0023]所述修改后的HEVC编码器模块,用于对裸视频进行编码生成NAL单元并产生日志文件,所述日志文件用于记录NAL (Network Abstract Layer)单元的第一个字节的内存偏移,所述NAL单元包括唯一标识符、PR1RITY字段以及标记原有顺序的字段。由于本发明的基于HEVC的网络流媒体应用方法需要对NAL单元添加字段以及需要产生日志文件,因此HEVC编码器需要做出相应的调整,所述HEVC编码器的修改基于JSVM 12.0,在Windows平台下做出修改并编译通过。
[0024]附图2是本发明的HEVC NAL单元标记结构体示意图,其中,OFFSET字段记录偏移,TYPE表示类型,NUM_BYTES记录字节数,FRAME_N0表示帧编号,T_ID记录顺序,解码时使用;DECONDE_HME解码参数,解码时使用;PR1RITY表示优先级,解码时候需要此字段完成排序。TIMESTAMP表示时间戳。
[0025]所述NAL单元加权重模块用于将所述修改后的HEVC编码器模块编码后的NAL单元根据 RD0(rate distort1n optimizat1n)和 PSNR(Peak Signal to Noise Rat1)综合计算得出NAL单元的权重,记录到NAL的PR1RITY字段,并将GOP (Group of Pictures)中的连续画面中的NAL单元根据权重重新排序,由于重排序的NAL单元和原有顺序并不一致,因此需要添加字段T_ID来标记原有顺序,并把这些值记录在NAL单元的标记原有顺序的字段记录NAL单元排序前的顺序。
[0026]附图3是本发明的HEVC VCL NAL单元示意图,其中,F表示forbidden_zero_bit,占一位 bit ;N 表不 nal_ref_idc,占一位 bit ;TYPE 表不 nal_unit_type,占 6 位 bit ;以上这些和HEVC标准VCL NAL单元定义是一样的。只是T_ID是本发明的独特设计,加入了 T_ID变量,占三个b