CN104754339A - I帧调整方法、装置及*** - Google Patents

I帧调整方法、装置及*** Download PDF

Info

Publication number
CN104754339A
CN104754339A CN201310731550.6A CN201310731550A CN104754339A CN 104754339 A CN104754339 A CN 104754339A CN 201310731550 A CN201310731550 A CN 201310731550A CN 104754339 A CN104754339 A CN 104754339A
Authority
CN
China
Prior art keywords
frame
report
rtcp
receiving terminal
delay
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.)
Granted
Application number
CN201310731550.6A
Other languages
English (en)
Other versions
CN104754339B (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.)
TD Tech Ltd
TD Tech Chengdu Co Ltd
Original Assignee
TD Tech 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 TD Tech Ltd filed Critical TD Tech Ltd
Priority to CN201310731550.6A priority Critical patent/CN104754339B/zh
Publication of CN104754339A publication Critical patent/CN104754339A/zh
Application granted granted Critical
Publication of CN104754339B publication Critical patent/CN104754339B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/6437Real-time Transport Protocol [RTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64784Data processing by the network
    • H04N21/64792Controlling the complexity of the content stream, e.g. by dropping packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8547Content authoring involving timestamps for synchronizing content

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种I帧调整方法、装置及***。其中,发送端在发送RTP包、发送端报告;接收接收端发送的接收端报告的同时,发送端会获得I帧抖动参数,该I帧抖动参数包含:第一时戳、第二时戳、第三时戳、第四时戳、第一处理时延和第二处理时延。发送端根据I帧抖动参数获取I帧的延时抖动。若I帧的延时抖动大于抖动阈值,发送端增加邻近I帧的间隔,对I帧间隔配置进行调整,并知会发送端视频编码层的编码器依据新的I帧间隔对视频数据进行编码,从而实现了依据I帧的抖动进行I帧间隔的调整,从而在保证视频数据流解码质量的同时,避免了由于I帧抖动不均匀而造成视频卡顿的现象。

Description

I帧调整方法、装置及***
技术领域
本发明涉及视频通信技术,尤其涉及一种I帧调整方法、装置及***。
背景技术
现有技术中的视频编码,通常采用I帧,P帧和B帧进行编码传输。其中,I帧主要是参考本帧进行编码,而P帧主要参考I帧或者P帧,B帧一般会参考I帧,P帧,或者B帧。因此,I帧编码输出编码比特通常具有较高的码率。并且,码率通常为P帧或者B帧的几十倍或者上百倍。由于在有I帧输出时,需要传输的数据较多,因此导致一个I帧或者I片输出的视频包较大,在分辨率比较高的情况下,I片或者I帧输出的包通常会拆包处理。
在图像的实时传输过程中,现有技术一般会采用实时传输协议(Real-time Transport Protocol,简称:RTP)来承载视频编码的视频包,同时相应地进行视频包时延,码率等的实时估计。在视频流媒体应用的一个典型的协议体系结构中,RTP需要实时传输控制协议(RTP ControlProtocol,简称:RTCP)为其服务质量提供保证,RTCP的主要功能是:服务质量的监视与反馈、媒体间的同步,以及多播组中成员的标识。在RTP会话期间,各参与者周期性地传送RTCP包。RTCP包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料,因此,各参与者可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。
但是采用现有技术的RTP协议与RTCP协议进行视频数据传输时,由于通常传输时延就比较大,传输的时延比较长,这样在不同帧之间的时延抖动不均衡,在进行I包的传递过程中,I包延迟就会比较大,从而导致视频解码端视频输出依然会出现视频卡顿的问题。
发明内容
本发明提供一种I帧调整方法、装置及***,用以在保证视频数据流解码质量的同时,避免了由于I帧抖动不均匀而造成视频卡顿的现象。
本发明的第一个方面是提供一种I帧调整方法,包括:
发送端每次向接收端发送一个I帧实时传送协议RTP包,对应每个所述I帧RTP包向所述接收端发送第一实时传送控制协议RTCP发送端报告,所述第一RTCP发送端报告与I帧关联,所述第一RTCP发送端报告采用特殊位标识为对应I帧的特殊报告;
所述发送端接收所述接收端发送的第一RTCP接收端报告,所述第一RTCP接收端报告与I帧关联,所述第一RTCP接收端报告包含第一处理时延,所述第一处理时延为所述接收端收到所述第一发送端报告到所述接收端发送所述第一接收端报告的时延;
所述发送端基于RTCP报告间隔向所述接收端发送第二RTCP发送端报告;
所述发送端接收所述接收端基于RTCP报告间隔发送的第二RTCP接收端报告,所述第二RTCP接收端报告包含第二处理时延,所述第二处理时延为所述接收端收到所述第二RTCP发送端报告到所述接收端发送所述第二RTCP接收端报告的时延;
所述发送端记录第一时戳、第二时戳、第三时戳和第四时戳,所述第一时戳为所述发送端发送所述第一RTCP发送端报告的时刻、所述第二时戳为所述发送端收到所述第一RTCP接收端报告的时刻、所述第三时戳为所述发送端发送第二RTCP发送端报告的时刻、所述第四时戳为所述发送端收到所述第二RTCP接收端报告的时刻;
所述发送端根据所述第一时戳、所述第二时戳、所述第三时戳、所述第四时戳、所述第一处理时延和所述第二处理时延获取所述I帧的延时抖动;
若所述I帧的延时抖动大于抖动阈值,则增加邻近I针的间隔进行编码。
结合第一个方面,在第一种可能的实现方式中,所述发送端根据所述第一时戳、所述第二时戳和所述处理时延获取所述I帧的延时抖动,包括:
通过下面公式获取所述I帧的等效传输时延:
D Ik = ( Σ n = 1 N T RR sn Ikn - T SR sn Ikn - DLSR Ikn 2 ) ÷N
其中,所述DIk为所述第k个I帧的等效传输时延,所述为所述发送端发送所述第一RTCP发送端报告的第一时戳,所述第一RTCP发送端报告与所述第k个I帧的第n个RTP包对应,所述为所述发送端接收所述第一RTCP接收端报告的第二时戳,所述第一RTCP接收端报告与所述第k个I帧的第n个RTP包对应,所述DLSRIn为所述第一RTCP接收端报告包含的第一处理时延,N为所述第k个I帧所分解对应的RTP包数目,应为大于或等于1的整数,所述n的取值范围为[1,N],所述k为顺序记录的I帧的索引号;
通过下面公式获取视频帧的等效传输时延:
D l = T RR l - T SR l - DLSR l 2
其中,所述Dl为RTP流数据的等效传输时延,所述为所述基于时间间隔发送的所述第二RTCP发送端报告对应的第三时戳,所述为与所述基于时间间隔收到所述第二RTCP接收端报告对应的第四时戳,所述DLSRl为所述标准RTCP接收端报告包含的第二处理时延,所述l为顺序记录的基于时间间隔按序发送的RTCP报告的索引号;
通过下面公式获取所述I帧的延时抖动:
DI jetter=DIk_avg-Dl_avg
其中,所述DI jetter为所述I帧的延时抖动,所述DIk_avg为所述I帧的传输时延的长期平滑,所述Dl_avg为视频帧的传输时延的长期平滑;
通过下面公式获取所述DIk_avg
D Ik _ avg = ∂ 1 × D I ( k - 1 ) + ( 1 - ∂ 1 ) D Ik
其中,所述为对I帧等效传输时延进行长期平滑的滤波因子,取值范围为[0.0,1.0],所述Dl(k-1)为第k-1个I帧的等效传输时延;
通过下面公式获取所述视频帧的传输时延的长期平滑:
D l _ avg = ∂ 2 × D l - 1 + ( 1 - ∂ 2 ) D l
其中,所述为对视频帧等效传输时延进行长期平滑的滤波因子,取值范围为[0.0,1.0],所述Dl-1为第l-1个所述第二RTCP报告的等效传输时延,所述Dl为第l个所述第二RTCP报告的等效传输时延。
结合第一个方面的第一种可能的实现方式,在第二种可能的实现方式中,若存在所述第一RTCP发送端报告或所述第一RTCP接收端报告丢失无法进行计算,则通过下面公式获取所述DIk
DIk=DMax
其中,所述DMax为所定义的最大传输时延;
若存在所述第二RTCP发送端报告或所述第二RTCP接收端报告丢失无法进行计算,则通过下面公式获取所述Dl
Dl=DMax
结合第一个方面或第一个方面上述任意一种可能的实现方式,在第三种可能的实现方式中,所述抖动阈值包括:第一抖动阈值和第二抖动阈值;
所述若所述I帧的延时抖动大于抖动阈值,则增加邻近I针的间隔进行编码,包括:
若所述DI jetter大于所述第一抖动阈值,则触发I帧转换,每隔一个I帧,将下一个I帧转换为P帧或B帧进行编码,并且每转换一次I帧格式,则对累计转换次数m加1;
当所述m值累计达到M次,所述M为大于或等于1的整数或者所述DI jetter连续R次大于所述第二抖动阈值,则增大相邻I帧的间隔,所述R为大于或等于1的整数,所述第二抖动阈值大于所述第一抖动阈值;
其中,新的相邻I帧的间隔通过以下公式获得:
DIst_new=DIst_old+Diststep
其中,所述DIst_new为所述新的相邻I帧的间隔,所述DIst_old为上一次采用的I帧间隔,所述Diststep为预设的I帧间隔改变的步长。
结合第一个方面的第三种可能的实现方式,在第四种可能实现方式中,所述DIst_old初始值为DIst_I,所述DIst_I为标准相邻I帧的间隔。
结合第一个方面的第三种可能的实现方式,在第五种可能实现方式中,若所述DIst_new大于等于间隔最大值,则所述新的相邻I帧的间隔取值为所述间隔最大值。
结合第一个方面的第三种可能的实现方式,在第六种可能实现方式中,还包括:
若所述累计转换次数m未达到M次,且所述DI jetter小于或等于所述第一抖动阈值,则停止I帧转换动作。
结合第一个方面的第三种可能的实现方式,在第七种可能实现方式中,还包括:
若所述DI jetter连续R次小于或等于所述第二抖动阈值,则减少I帧间隔;其中,新的相邻I帧的间隔DIst_new通过以下公式获得:
DIst_new=DIst_old-Diststep
结合第一个方面的第七种可能的实现方式,在第八种可能实现方式中,若所述DIst_new小于等于标准相邻I帧的间隔DIst_I,则所述新的相邻I帧的间隔取值为所述DIst_I
本发明的第二个方面是提供一种I帧调整方法,包括:
接收端接收到发送端发送的一个第一实时传送控制协议RTCP发送端报告,所述第一RTCP发送端报告与I帧关联,所述第一RTCP发送端报告采用特殊位标识为对应I帧的特殊报告;
所述接收端向所述发送端发送第一RTCP接收端报告,所述第一RTCP接收端报告与I帧关联,所述第一RTCP接收端报告包含第一处理时延,所述第一处理时延为所述接收端收到所述第一RTCP发送端报告到所述接收端发送所述第一RTCP接收端报告的时延;
所述接收端接收所述发送端基于RTCP报告间隔发送的第二RTCP发送端报告;
所述接收端基于RTCP报告间隔向所述发送端发送第二RTCP接收端报告,所述第二RTCP接收端报告包含第二处理时延,所述第二处理时延为所述接收端收到所述第二RTCP发送端报告到所述接收端发送所述第二RTCP接收端报告的时延。
本发明的第三个方面是提供一种I帧调整装置,包括:
发送模块,用于每次向接收端发送一个I帧实时传送协议RTP包,对应每个所述I帧RTP包向所述接收端发送第一实时传送控制协议RTCP发送端报告,所述第一RTCP发送端报告与I帧关联,所述第一RTCP发送端报告采用特殊位标识为对应I帧的特殊报告;
接收模块,用于接收所述接收端发送的第一RTCP接收端报告,所述第一RTCP接收端报告与I帧关联,所述第一RTCP接收端报告包含第一处理时延,所述第一处理时延为所述接收端收到所述第一发送端报告到所述接收端发送所述第一接收端报告的时延;
所述发送模块,还用于基于RTCP报告间隔向所述接收端发送第二RTCP发送端报告;
所述接收模块,还用于接收所述接收端基于RTCP报告间隔发送的第二RTCP接收端报告,所述第二RTCP接收端报告包含第二处理时延,所述第二处理时延为所述接收端收到所述第二RTCP发送端报告到所述接收端发送所述第二RTCP接收端报告的时延;
处理模块,用于记录第一时戳、第二时戳、第三时戳和第四时戳,所述第一时戳为所述发送端发送所述第一RTCP发送端报告的时刻、所述第二时戳为所述发送端收到所述第一RTCP接收端报告的时刻、所述第三时戳为所述发送端发送第二RTCP发送端报告的时刻、所述第四时戳为所述发送端收到所述第二RTCP接收端报告的时刻;
所述处理模块,还用于根据所述第一时戳、所述第二时戳、所述第三时戳、所述第四时戳、所述第一处理时延和所述第二处理时延获取所述I帧的延时抖动;
调整模块,用于若所述I帧的延时抖动大于抖动阈值,则增加邻近I针的间隔进行编码。
结合第三个方面,在第一种可能的实现方式中,所述处理模块,具体用于通过下面公式获取所述I帧的等效传输时延:
D Ik = ( Σ n = 1 N T RR sn Ikn - T SR sn Ikn - DLSR Ikn 2 ) ÷N
其中,所述DIk为所述第k个I帧的等效传输时延,所述为所述发送端发送所述第一RTCP发送端报告的第一时戳,所述第一RTCP发送端报告与所述第k个I帧的第n个RTP包对应,所述为所述发送端接收所述第一RTCP接收端报告的第二时戳,所述第一RTCP接收端报告与所述第k个I帧的第n个RTP包对应,所述DLSRIn为所述第一RTCP接收端报告包含的第一处理时延,N为所述第k个I帧所分解对应的RTP包数目,应为大于或等于1的整数,所述n的取值范围为[1,N],所述k为顺序记录的I帧的索引号;
所述处理模块,具体还用于通过下面公式获取视频帧的等效传输时延:
D l = T RR l - T SR l - DLSR l 2
其中,所述Dl为RTP流数据的等效传输时延,所述为所述基于时间间隔发送的所述第二RTCP发送端报告对应的第三时戳,所述为与所述基于时间间隔收到所述第二RTCP接收端报告对应的第四时戳,所述DLSRl为所述标准RTCP接收端报告包含的第二处理时延,所述l为顺序记录的基于时间间隔按序发送的RTCP报告的索引号;
所述处理模块,具体还用于通过下面公式获取所述I帧的延时抖动:
DI jetter=DIk_avg-Dl_avg
其中,所述DI jetter为所述I帧的延时抖动,所述DIk_avg为所述I帧的传输时延的长期平滑,所述Dl_avg为视频帧的传输时延的长期平滑;
所述处理模块,具体还用于通过下面公式获取所述DIk_avg
D Ik _ avg = ∂ 1 × D I ( k - 1 ) + ( 1 - ∂ 1 ) D Ik
其中,所述为对I帧等效传输时延进行长期平滑的滤波因子,取值范围为[0.0,1.0],所述Dl(k-1)为第k-1个I帧的等效传输时延;
所述处理模块,具体还用于通过下面公式获取所述视频帧的传输时延的长期平滑:
D l _ avg = ∂ 2 × D l - 1 + ( 1 - ∂ 2 ) D l
其中,所述为对视频帧等效传输时延进行长期平滑的滤波因子,取值范围为[0.0,1.0],所述Dl-1为第l-1个所述第二RTCP报告的等效传输时延,所述Dl为第l个所述第二RTCP报告的等效传输时延。
结合第三个方面的第一种可能的实现方式,在第二种可能的实现方式中,所述处理模块,具体还用于若存在所述第一RTCP发送端报告或所述第一RTCP接收端报告丢失无法进行计算,则通过下面公式获取所述DIk
DIk=DMax
其中,所述DMax为所定义的最大传输时延;
所述处理模块,具体还用于若存在所述第二RTCP发送端报告或所述第二RTCP接收端报告丢失无法进行计算,则通过下面公式获取所述Dl
Dl=DMax
结合第三个方面或第三个方面上述任意一种可能的实现方式,在第三种可能的实现方式中,所述抖动阈值包括:第一抖动阈值和第二抖动阈值;
所述调整模块,具体用于若所述DI jetter大于所述第一抖动阈值,则触发I帧转换,每隔一个I帧,将下一个I帧转换为P帧或B帧进行编码,并且每转换一次I帧格式,则对累计转换次数m加1;
所述调整模块,具体用于当所述m值累计达到M次,所述M为大于或等于1的整数或者所述DI jetter连续R次大于所述第二抖动阈值,则增大相邻I帧的间隔,所述R为大于或等于1的整数,所述第二抖动阈值大于所述第一抖动阈值;
所述处理模块还用于通过以下公式获得新的相邻I帧的间隔:
DIst_new=DIst_old+Diststep
其中,所述DIst_new为所述第一相邻I帧的间隔,所述DIst_old为上一次采用的I帧间隔,所述Diststep为预设的I帧间隔改变的步长。
结合第三个方面的第三种可能的实现方式,在第四种可能实现方式中,所述DIst_old初始值为DIst_I,所述DIst_I为标准相邻I帧的间隔。
结合第三个方面的第三种可能的实现方式,在第五种可能实现方式中,所述调整模块,具体还用于若所述DIst_new大于等于间隔最大值,则所述新的相邻I帧的间隔取值为所述间隔最大值。
结合第三个方面的第三种可能的实现方式,在第六种可能实现方式中,所述调整模块,还用于若所述累计转换次数m未达到M次,且所述DI jetter小于或等于所述第一抖动阈值,则停止I帧转换动作。
结合第三个方面的第三种可能的实现方式,在第七种可能实现方式中,所述调整模块,还用于若所述DI jetter连续R次小于或等于所述第二抖动阈值,则减少I帧间隔;
所述处理模块还用于通过以下公式获得新的相邻I帧的间隔DIst_new
DIst_new=DIst_old-Diststep
结合第三个方面的第七种可能的实现方式,在第八种可能实现方式中,所述调整模块,具体还用于若所述DIst_new小于等于标准相邻I帧的间隔DIst_I,则所述新的相邻I帧的间隔取值为所述DIst_I
本发明的第四个方面是提供一种I帧调整装置,包括:
接收模块,用于接收到发送端发送的一个第一实时传送控制协议RTCP发送端报告,所述第一RTCP发送端报告与I帧关联,所述第一RTCP发送端报告采用特殊位标识为对应I帧的特殊报告;
发送模块,用于向所述发送端发送第一RTCP接收端报告,所述第一RTCP接收端报告与I帧关联,所述第一RTCP接收端报告包含第一处理时延,所述第一处理时延为所述接收端收到所述第一RTCP发送端报告到所述接收端发送所述第一RTCP接收端报告的时延;
所述接收模块,还用于接收所述发送端基于RTCP报告间隔发送的第二RTCP发送端报告;
所述发送模块,还用于基于RTCP报告间隔向所述发送端发送第二RTCP接收端报告,所述第二RTCP接收端报告包含第二处理时延,所述第二处理时延为所述接收端收到所述第二RTCP发送端报告到所述接收端发送所述第二RTCP接收端报告的时延。
本发明的第五个方面是提供一种I帧调整***,包括:上述第三个方面或第三个方面任意一种可能的实现方式中所述的I帧调整装置、上述第四个方面所述的I帧调整装置。
本实施例提供的I帧调整方法、装置及***,通过每次向接收端发送一个I帧RTP包的同时,发送端针对每个I帧RTP包向接收端发送与I帧关联的第一RTCP发送端报告,并接收收端发送的第一RTCP接收端报告,第一RTCP接收端报告包含第一处理时延,第一处理时延为接收端收到第一发送端报告到接收端发送第一接收端报告的时延。并且,发送端还要向接收端发送第二RTCP发送端报告,并接收接收端发送的第二RTCP接收端报告,第二RTCP接收端报告包含第二处理时延,第二处理时延为接收端收到第二RTCP发送端报告到接收端发送第二RTCP接收端报告的时延。进一步的,发送端记录第一时戳、第二时戳、第三时戳和第四时戳,第一时戳为发送端发送第一RTCP发送端报告的时刻、第二时戳为发送端收到第一RTCP接收端报告的时刻、第三时戳为发送端发送第二RTCP发送端报告的时刻、第四时戳为发送端收到第二RTCP接收端报告的时刻。发送端根据第一时戳、第二时戳、第三时戳、第四时戳、第一处理时延和第二处理时延获取I帧的延时抖动,若I帧的延时抖动大于抖动阈值,则增加邻近I帧的间隔进行编码。从而实现了依据I帧的抖动进行I帧间隔的调整,从而在保证视频数据流解码质量的同时,避免了由于I帧抖动不均匀而造成视频卡顿的现象。
附图说明
图1为本发明实施例提供的一种I帧调整方法流程示意图;
图2为本发明实施例提供的一种I帧调整方法示意图;
图3为本发明实施例提供的一种I帧调整装置结构示意图;
图4为本发明实施例提供的一种I帧调整装置结构示意图;
图5为本发明实施例提供的一种I帧调整***示意图。
具体实施方式
在监视场景中,由于视频画面不同于电影或者电视画面会存在帧间的场景变换,这样监视场景的相邻帧之间在时间上会存在一定的相关性,所以I帧的间隔设置为较大的间隔不会对视频质量产生较大影响,另外,在监视场景中,如果画面中有场景切换,带来的P帧码率较大情况,在这样情况下视频卡顿现象也不容易觉察,所以可以采用增加I间隔的方式缓解视频卡顿,或者根据信道能够承载的码率,调整I帧出现的间隔,或者将I帧的切换为P帧。
但是如果长时间只有P帧或者B帧,视频编码参数可能会不稳定,将影响编码质量,为了获得在视频质量和I帧间隔之间的平衡,可根据I帧数据的时延抖动进行I帧间隔设置,尽量减少由于I帧传输时延带来的卡顿,下面通过具体实施例对调整I帧间隔的方案进行说明:
图1为本发明实施例提供的一种I帧调整方法流程示意图,如图1所示,该执行主体为视频数据流的发送端。该方法包括如下步骤:
步骤100、发送端每次向接收端发送一个I帧实时传送协议(Real-timeTransport Protocol,简称:RTP)包,对应每个I帧RTP包向接收端发送第一实时传送控制协议(Real-time Transport Control Protocol,简称:RTCP)发送端报告,第一RTCP发送端报告与I帧关联,第一RTCP发送端报告采用特殊位标识为对应I帧的特殊报告。
具体的,发送端在发送数据时I帧的RTP包时,可能一次发一个RTP包,也可能同时发送多个,每次发送RTP包时,对应发送一次第一RTCP发送端报告。
第一RTCP发送端报告识别:利用“profile-specific extensions”,高16位定义固定值,如1010,与真实的profile-specific extensions值不重复,且不能为无效值。低8位用于指示此第一RTCP发送端报告为对应I帧发出的特殊RTCP报告。
步骤101、发送端接收接收端发送的第一RTCP接收端报告,第一RTCP接收端报告与I帧关联,第一RTCP接收端报告包含第一处理时延,第一处理时延为接收端收到第一发送端报告到接收端发送第一接收端报告的时延。
具体的,每次发送数据时同步发送的第一RTCP发送端报告,因此第一RTCP发送端报告的传输时间近似等效数据的传输时间。可以通过报告的环回来评估数据的时延。
步骤102、发送端基于RTCP报告间隔向接收端发送第二RTCP发送端报告。
需要说明的是,该第二RTCP发送端报告与I帧不关联。
步骤103、发送端接收接收端基于RTCP报告间隔发送的第二RTCP接收端报告,第二RTCP接收端报告包含第二处理时延,第二处理时延为接收端收到第二RTCP发送端报告到接收端发送第二RTCP接收端报告的时延。
步骤104、发送端记录第一时戳、第二时戳、第三时戳和第四时戳,第一时戳为发送端发送第一RTCP发送端报告的时刻、第二时戳为发送端收到第一RTCP接收端报告的时刻、第三时戳为发送端发送第二RTCP发送端报告的时刻、第四时戳为发送端收到第二RTCP接收端报告的时刻。
步骤105、发送端根据第一时戳、第二时戳、第三时戳、第四时戳、第一处理时延和第二处理时延获取I帧的延时抖动。
步骤106、若I帧的延时抖动大于抖动阈值,则增加邻近I针的间隔进行编码。
本实施例提供的I帧调整方法,通过每次向接收端发送一个I帧RTP包的同时,发送端针对每个I帧RTP包向接收端发送与I帧关联的第一RTCP发送端报告,并接收收端发送的第一RTCP接收端报告,第一RTCP接收端报告包含第一处理时延,第一处理时延为接收端收到第一发送端报告到接收端发送第一接收端报告的时延。并且,发送端还要向接收端发送第二RTCP发送端报告,并接收接收端发送的第二RTCP接收端报告,第二RTCP接收端报告包含第二处理时延,第二处理时延为接收端收到第二RTCP发送端报告到接收端发送第二RTCP接收端报告的时延。进一步的,发送端记录第一时戳、第二时戳、第三时戳和第四时戳,第一时戳为发送端发送第一RTCP发送端报告的时刻、第二时戳为发送端收到第一RTCP接收端报告的时刻、第三时戳为发送端发送第二RTCP发送端报告的时刻、第四时戳为发送端收到第二RTCP接收端报告的时刻。发送端根据第一时戳、第二时戳、第三时戳、第四时戳、第一处理时延和第二处理时延获取I帧的延时抖动,若I帧的延时抖动大于抖动阈值,则增加邻近I帧的间隔进行编码。从而实现了依据I帧的抖动进行I帧间隔的调整,从而在保证视频数据流解码质量的同时,避免了由于I帧抖动不均匀而造成视频卡顿的现象。
优选的,图1中的步骤105的一种可行的实现方式为:
通过下面公式获取I帧的等效传输时延:
D Ik = ( Σ n = 1 N T RR sn Ikn - T SR sn Ikn - DLSR Ikn 2 ) ÷N
其中,DIk为第k个I帧的等效传输时延,为发送端发送第一RTCP发送端报告的第一时戳,第一RTCP发送端报告与第k个I帧的第n个RTP包对应,为发送端接收第一RTCP接收端报告的第二时戳,第一RTCP接收端报告与第k个I帧的第n个RTP包对应,DLSRIn为第一RTCP接收端报告包含的第一处理时延,N为第k个I帧所分解对应的RTP包数目,应为大于或等于1的整数,n的取值范围为[1,N],k为顺序记录的I帧的索引号。
通过下面公式获取视频帧的等效传输时延:
D l = T RR l - T SR l - DLSR l 2
其中,Dl为RTP流数据的等效传输时延,为基于时间间隔发送的第二RTCP发送端报告对应的第三时戳,为与基于时间间隔收到第二RTCP接收端报告对应的第四时戳,DLSRl为标准RTCP接收端报告包含的第二处理时延,l为顺序记录的基于时间间隔按序发送的RTCP报告的索引号。
通过下面公式获取I帧的延时抖动:
DI jetter=DIk_avg-Dl_avg
其中,DI jetter为I帧的延时抖动,DIk_avg为I帧的传输时延的长期平滑,Dl_avg为视频帧的传输时延的长期平滑。
通过下面公式获取DIk_avg
D Ik _ avg = ∂ 1 × D I ( k - 1 ) + ( 1 - ∂ 1 ) D Ik
其中,为对I帧等效传输时延进行长期平滑的滤波因子,取值范围为[0.0,1.0],可根据经验值或仿真值设置,只考虑本次I帧的时延特性该值可设为0.0。Dl(k-1)为第k-1个I帧的等效传输时延。
通过下面公式获取视频帧的传输时延的长期平滑:
D l _ avg = ∂ 2 × D l - 1 + ( 1 - ∂ 2 ) D l
其中,为对视频帧等效传输时延进行长期平滑的滤波因子,取值范围为[0.0,1.0],Dl-1为第l-1个第二RTCP报告的等效传输时延,Dl为第l个第二RTCP报告的等效传输时延。
进一步的,对于若存在第一RTCP发送端报告或第一RTCP接收端报告丢失无法进行计算的场景,则通过下面公式获取DIk
DIk=DMax
其中,DMax为所定义的最大传输时延,可根据经验值或仿真值配置。
对于若存在第二RTCP发送端报告或第二RTCP接收端报告丢失无法进行计算的场景,则通过下面公式获取Dl
Dl=DMax
优选的,上述实施例中的抖动阈值包括:第一抖动阈值和第二抖动阈值。
并且,对于图1步骤106,一种可能的实现方式为:
当I帧传输时延持续较大时,认为无法适应当前的信号状态,需要进行I帧间隔调整,I帧间隔调整有如下两种方式,可同时使用或使用其一:
方式一:若DI jetter大于第一抖动阈值,则触发I帧转换,每隔一个I帧,将下一个I帧转换为P帧或B帧进行编码,并且每转换一次I帧格式,则对累计转换次数m加1。
方式二:当m值累计达到M次,M为大于或等于1的整数或者DI jetter连续R次大于第二抖动阈值,则增大相邻I帧的间隔,R为大于或等于1的整数,第二抖动阈值大于第一抖动阈值。
其中,新的相邻I帧的间隔通过以下公式获得:
DIst_new=DIst_old+Diststep
其中,DIst_new为新的相邻I帧的间隔,DIst_old为上一次采用的I帧间隔,Diststep为预设的I帧间隔改变的步长。
具体的,若DIst_new大于等于间隔最大值,则新的相邻I帧的间隔取值为间隔最大值。
需要说明的是,DIst_old的初始值为DIst_I,DIst_I为标准相邻I帧的间隔,并且持续更新DIst_old=DIst_new
进一步的,若累计转换次数m未达到M次,且DI jetter小于或等于第一抖动阈值,则停止I帧转换动作。
若DI jetter连续R次小于或等于第二抖动阈值,则减少I帧间隔;其中,新的相邻I帧的间隔DIst_new通过以下公式获得:
DIst_new=DIst_old-Diststep
具体的,若DIst_new小于等于标准相邻I帧的间隔DIst_I,则新的相邻I帧的间隔取值为DIst_I
需要说明的是,在发送端计算得出上述I帧间隔后,把相应I帧间隔传递到编码器,调整编码器编码输出。并且以最近一个I帧为起点,重新确定新的I帧的间隔,并把相应的帧类型配置为I帧。
图2为本发明实施例提供的一种I帧调整方法示意图,该执行主体为视频数据流的接收端。该方法包括如下步骤:
步骤200、接收端接收到发送端发送的一个第一RTCP发送端报告,第一RTCP发送端报告与I帧关联,第一RTCP发送端报告采用特殊位标识为对应I帧的特殊报告。
步骤201、接收端向发送端发送第一RTCP接收端报告,第一RTCP接收端报告与I帧关联,第一RTCP接收端报告包含第一处理时延,第一处理时延为接收端收到第一RTCP发送端报告到接收端发送第一RTCP接收端报告的时延。
接收端接收到第一RTCP发送端报告,则每收到一次第一RTCP发送端报告,即回复一个第一RTCP接收端报告。第一RTCP接收端报告需要有一个与第一RTCP发送端报告对应的标识。
步骤202、接收端接收发送端基于RTCP报告间隔发送的第二RTCP发送端报告。
步骤203、接收端基于RTCP报告间隔向发送端发送第二RTCP接收端报告,第二RTCP接收端报告包含第二处理时延,第二处理时延为接收端收到第二RTCP发送端报告到接收端发送第二RTCP接收端报告的时延。
本实施例提供的I帧调整方法,通过每次向接收端发送一个I帧RTP包的同时,接收端接收发送端针对每个I帧RTP包发送的与I帧关联的第一RTCP发送端报告,并向发送端发送第一RTCP接收端报告,第一RTCP接收端报告包含第一处理时延,第一处理时延为接收端收到第一发送端报告到接收端发送第一接收端报告的时延。并且,接收端还要接收发送端发送的第二RTCP发送端报告,并向发送端发送第二RTCP接收端报告,第二RTCP接收端报告包含第二处理时延,第二处理时延为接收端收到第二RTCP发送端报告到接收端发送第二RTCP接收端报告的时延。以使发送端记录第一时戳、第二时戳、第三时戳和第四时戳,第一时戳为发送端发送第一RTCP发送端报告的时刻、第二时戳为发送端收到第一RTCP接收端报告的时刻、第三时戳为发送端发送第二RTCP发送端报告的时刻、第四时戳为发送端收到第二RTCP接收端报告的时刻,并根据第一时戳、第二时戳、第三时戳、第四时戳、第一处理时延和第二处理时延获取I帧的延时抖动,若I帧的延时抖动大于抖动阈值,则增加邻近I帧的间隔进行编码。从而实现了依据I帧的抖动进行I帧间隔的调整,从而在保证视频数据流解码质量的同时,避免了由于I帧抖动不均匀而造成视频卡顿的现象。
图3为本发明实施例提供的一种I帧调整装置结构示意图,该I帧调整装置设置于发送端上,该I帧调整装置包括:发送模块10、接收模块11、处理模块12、调整模块13。
发送模块10,用于每次向接收端发送一个I帧RTP包,对应每个I帧RTP包向接收端发送第一RTCP发送端报告,第一RTCP发送端报告与I帧关联,第一RTCP发送端报告采用特殊位标识为对应I帧的特殊报告。
接收模块11,用于接收接收端发送的第一RTCP接收端报告,第一RTCP接收端报告与I帧关联,第一RTCP接收端报告包含第一处理时延,第一处理时延为接收端收到第一发送端报告到接收端发送第一接收端报告的时延。
发送模块10,还用于基于RTCP报告间隔向接收端发送第二RTCP发送端报告。
接收模块11,还用于接收接收端基于RTCP报告间隔发送的第二RTCP接收端报告,第二RTCP接收端报告包含第二处理时延,第二处理时延为接收端收到第二RTCP发送端报告到接收端发送第二RTCP接收端报告的时延。
处理模块12,用于记录第一时戳、第二时戳、第三时戳和第四时戳,第一时戳为发送端发送第一RTCP发送端报告的时刻、第二时戳为发送端收到第一RTCP接收端报告的时刻、第三时戳为发送端发送第二RTCP发送端报告的时刻、第四时戳为发送端收到第二RTCP接收端报告的时刻。
处理模块12,还用于根据第一时戳、第二时戳、第三时戳、第四时戳、第一处理时延和第二处理时延获取I帧的延时抖动。
调整模块13,用于若I帧的延时抖动大于抖动阈值,则增加邻近I针的间隔进行编码。
本实施例提供的I帧调整方法,通过每次向接收端发送一个I帧RTP包的同时,发送模块针对每个I帧RTP包向接收端发送与I帧关联的第一RTCP发送端报告,接收模块接收收端发送的第一RTCP接收端报告,第一RTCP接收端报告包含第一处理时延,第一处理时延为接收端收到第一发送端报告到接收端发送第一接收端报告的时延。并且,发送模块还要向接收端发送第二RTCP发送端报告,接收模块接收接收端发送的第二RTCP接收端报告,第二RTCP接收端报告包含第二处理时延,第二处理时延为接收端收到第二RTCP发送端报告到接收端发送第二RTCP接收端报告的时延。进一步的,处理模块记录第一时戳、第二时戳、第三时戳和第四时戳,第一时戳为发送端发送第一RTCP发送端报告的时刻、第二时戳为发送端收到第一RTCP接收端报告的时刻、第三时戳为发送端发送第二RTCP发送端报告的时刻、第四时戳为发送端收到第二RTCP接收端报告的时刻。处理模块根据第一时戳、第二时戳、第三时戳、第四时戳、第一处理时延和第二处理时延获取I帧的延时抖动,若I帧的延时抖动大于抖动阈值,则调整模块增加邻近I帧的间隔进行编码。从而实现了依据I帧的抖动进行I帧间隔的调整,从而在保证视频数据流解码质量的同时,避免了由于I帧抖动不均匀而造成视频卡顿的现象。
进一步的,处理模块12,具体用于通过下面公式获取I帧的等效传输时延:
D Ik = ( Σ n = 1 N T RR sn Ikn - T SR sn Ikn - DLSR Ikn 2 ) ÷N
其中,DIk为第k个I帧的等效传输时延,为发送端发送第一RTCP发送端报告的第一时戳,第一RTCP发送端报告与第k个I帧的第n个RTP包对应,为发送端接收第一RTCP接收端报告的第二时戳,第一RTCP接收端报告与第k个I帧的第n个RTP包对应,DLSRIn为第一RTCP接收端报告包含的第一处理时延,N为第k个I帧所分解对应的RTP包数目,应为大于或等于1的整数,n的取值范围为[1,N],k为顺序记录的I帧的索引号。
处理模块12,具体还用于通过下面公式获取视频帧的等效传输时延:
D l = T RR l - T SR l - DLSR l 2
其中,Dl为RTP流数据的等效传输时延,为基于时间间隔发送的第二RTCP发送端报告对应的第三时戳,为与基于时间间隔收到第二RTCP接收端报告对应的第四时戳,DLSRl为标准RTCP接收端报告包含的第二处理时延,l为顺序记录的基于时间间隔按序发送的RTCP报告的索引号。
处理模块12,具体还用于通过下面公式获取I帧的延时抖动:
DI jetter=DIk_avg-Dl_avg
其中,DI jetter为I帧的延时抖动,DIk_avg为I帧的传输时延的长期平滑,Dl_avg为视频帧的传输时延的长期平滑。
处理模块12,具体还用于通过下面公式获取DIk_avg
D Ik _ avg = ∂ 1 × D I ( k - 1 ) + ( 1 - ∂ 1 ) D Ik
其中,为对I帧等效传输时延进行长期平滑的滤波因子,取值范围为[0.0,1.0],Dl(k-1)为第k-1个I帧的等效传输时延。
处理模块12,具体还用于通过下面公式获取视频帧的传输时延的长期平滑:
D l _ avg = ∂ 2 × D l - 1 + ( 1 - ∂ 2 ) D l
其中,为对视频帧等效传输时延进行长期平滑的滤波因子,取值范围为[0.0,1.0],Dl-1为第l-1个第二RTCP报告的等效传输时延,Dl为第l个第二RTCP报告的等效传输时延。
优选的,处理模块12,具体还用于若存在第一RTCP发送端报告或第一RTCP接收端报告丢失无法进行计算,则通过下面公式获取DIk
DIk=DMax
其中,DMax为所定义的最大传输时延。
处理模块12,具体还用于若存在第二RTCP发送端报告或第二RTCP接收端报告丢失无法进行计算,则通过下面公式获取Dl
Dl=DMax
进一步的,抖动阈值包括:第一抖动阈值和第二抖动阈值。
由此,调整模块13,具体用于若DI jetter大于第一抖动阈值,则触发I帧转换,每隔一个I帧,将下一个I帧转换为P帧或B帧进行编码,并且每转换一次I帧格式,则对累计转换次数m加1。
调整模块13,具体用于当m值累计达到M次,M为大于或等于1的整数或者DI jetter连续R次大于第二抖动阈值,则增大相邻I帧的间隔,R为大于或等于1的整数,第二抖动阈值大于第一抖动阈值。
处理模块12,还用于通过以下公式获得新的相邻I帧的间隔:
DIst_new=DIst_old+Diststep
其中,DIst_new为第一相邻I帧的间隔,DIst_old为上一次采用的I帧间隔,Diststep为预设的I帧间隔改变的步长。
需要说明的是,DIst_old的初始值为DIst_I,DIst_I为标准相邻I帧的间隔。
优选的,调整模块13,具体还用于若DIst_new大于等于间隔最大值,则新的相邻I帧的间隔取值为间隔最大值。
进一步的,调整模块13,还用于若累计转换次数m未达到M次,且DI jetter小于或等于第一抖动阈值,则停止I帧转换动作。
进一步的,调整模块13,还用于若DI jetter连续R次小于或等于第二抖动阈值,则减少I帧间隔;
处理模块12还用于通过以下公式获得新的相邻I帧的间隔DIst_new
DIst_new=DIst_old-Diststep
优选的,调整模块13,具体还用于若DIst_new小于等于标准相邻I帧的间隔DIst_I,则新的相邻I帧的间隔取值为DIst_I
图4为本发明实施例提供的一种I帧调整装置结构示意图,该I帧调整装置设置于接收端,该I帧调整装置包括:接收模块20、发送模块21。
接收模块20,用于接收到发送端发送的一个第一RTCP发送端报告,第一RTCP发送端报告与I帧关联,第一RTCP发送端报告采用特殊位标识为对应I帧的特殊报告。
发送模块21,用于向发送端发送第一RTCP接收端报告,第一RTCP接收端报告与I帧关联,第一RTCP接收端报告包含第一处理时延,第一处理时延为接收端收到第一RTCP发送端报告到接收端发送第一RTCP接收端报告的时延。
接收模块20,还用于接收发送端基于RTCP报告间隔发送的第二RTCP发送端报告。
发送模块21,还用于基于RTCP报告间隔向发送端发送第二RTCP接收端报告,第二RTCP接收端报告包含第二处理时延,第二处理时延为接收端收到第二RTCP发送端报告到接收端发送第二RTCP接收端报告的时延。
本实施例提供的I帧调整方法,通过每次向接收端发送一个I帧RTP包的同时,接收模块接收发送端针对每个I帧RTP包发送的与I帧关联的第一RTCP发送端报告,发送模块向发送端发送第一RTCP接收端报告,第一RTCP接收端报告包含第一处理时延,第一处理时延为接收端收到第一发送端报告到接收端发送第一接收端报告的时延。并且,接收模块还要接收发送端发送的第二RTCP发送端报告,发送模块向发送端发送第二RTCP接收端报告,第二RTCP接收端报告包含第二处理时延,第二处理时延为接收端收到第二RTCP发送端报告到接收端发送第二RTCP接收端报告的时延。以使发送端记录第一时戳、第二时戳、第三时戳和第四时戳,第一时戳为发送端发送第一RTCP发送端报告的时刻、第二时戳为发送端收到第一RTCP接收端报告的时刻、第三时戳为发送端发送第二RTCP发送端报告的时刻、第四时戳为发送端收到第二RTCP接收端报告的时刻,并根据第一时戳、第二时戳、第三时戳、第四时戳、第一处理时延和第二处理时延获取I帧的延时抖动,若I帧的延时抖动大于抖动阈值,则增加邻近I帧的间隔进行编码。从而实现了依据I帧的抖动进行I帧间隔的调整,从而在保证视频数据流解码质量的同时,避免了由于I帧抖动不均匀而造成视频卡顿的现象。
图5为本发明实施例提供的一种I帧调整***示意图,该***包括:上述设置于发送端的I帧调整装置和上述设置于接收端的I帧调整装置。具体的,参照图5,发送端的调整模块13通过发送端的视频编码层与发送模块10连接。其中,发送端的发送模块10在发送RTP包、发送端报告(该发送端报告可以为第一发送端报告或第二发送端报告);接收模块11在接收接收端的发送模块21发送的接收端报告(该接收端报告可以为第一接收端报告或第二接收端报告)的同时,发送模块10以及接收模块11会向处理模块12发送I帧抖动参数,该I帧抖动参数包含上文所述:第一时戳、第二时戳、第三时戳、第四时戳、第一处理时延和第二处理时延。处理模块12依据I帧抖动参数记录该I帧抖动参数,并根据第一时戳、第二时戳、第三时戳、第四时戳、第一处理时延和第二处理时延获取I帧的延时抖动。若I帧的延时抖动大于抖动阈值,调整模块13增加邻近I帧的间隔,对I帧间隔配置进行调整,并知会发送端视频编码层的编码器依据新的I帧间隔对视频数据进行编码,并通过发送模块10发送给接收端接收模块20。从而实现了依据I帧的抖动进行I帧间隔的调整,从而在保证视频数据流解码质量的同时,避免了由于I帧抖动不均匀而造成视频卡顿的现象。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (21)

1.一种I帧调整方法,其特征在于,包括:
发送端每次向接收端发送一个I帧实时传送协议RTP包,对应每个所述I帧RTP包向所述接收端发送第一实时传送控制协议RTCP发送端报告,所述第一RTCP发送端报告与I帧关联,所述第一RTCP发送端报告采用特殊位标识为对应I帧的特殊报告;
所述发送端接收所述接收端发送的第一RTCP接收端报告,所述第一RTCP接收端报告与I帧关联,所述第一RTCP接收端报告包含第一处理时延,所述第一处理时延为所述接收端收到所述第一发送端报告到所述接收端发送所述第一接收端报告的时延;
所述发送端基于RTCP报告间隔向所述接收端发送第二RTCP发送端报告;
所述发送端接收所述接收端基于RTCP报告间隔发送的第二RTCP接收端报告,所述第二RTCP接收端报告包含第二处理时延,所述第二处理时延为所述接收端收到所述第二RTCP发送端报告到所述接收端发送所述第二RTCP接收端报告的时延;
所述发送端记录第一时戳、第二时戳、第三时戳和第四时戳,所述第一时戳为所述发送端发送所述第一RTCP发送端报告的时刻、所述第二时戳为所述发送端收到所述第一RTCP接收端报告的时刻、所述第三时戳为所述发送端发送第二RTCP发送端报告的时刻、所述第四时戳为所述发送端收到所述第二RTCP接收端报告的时刻;
所述发送端根据所述第一时戳、所述第二时戳、所述第三时戳、所述第四时戳、所述第一处理时延和所述第二处理时延获取所述I帧的延时抖动;
若所述I帧的延时抖动大于抖动阈值,则增加邻近I针的间隔进行编码。
2.根据权利要求1所述的方法,其特征在于,所述发送端根据所述第一时戳、所述第二时戳和所述处理时延获取所述I帧的延时抖动,包括:
通过下面公式获取所述I帧的等效传输时延:
D Ik = ( Σ n = 1 N T RR sn Ikn - T SR sn Ikn - DLSR Ikn 2 ) ÷N
其中,所述DIk为所述第k个I帧的等效传输时延,所述为所述发送端发送所述第一RTCP发送端报告的第一时戳,所述第一RTCP发送端报告与所述第k个I帧的第n个RTP包对应,所述为所述发送端接收所述第一RTCP接收端报告的第二时戳,所述第一RTCP接收端报告与所述第k个I帧的第n个RTP包对应,所述DLSRIn为所述第一RTCP接收端报告包含的第一处理时延,N为所述第k个I帧所分解对应的RTP包数目,应为大于或等于1的整数,所述n的取值范围为[1,N],所述k为顺序记录的I帧的索引号;
通过下面公式获取视频帧的等效传输时延:
D l = T RR l - T SR l - DLSR l 2
其中,所述Dl为RTP流数据的等效传输时延,所述为所述基于时间间隔发送的所述第二RTCP发送端报告对应的第三时戳,所述为与所述基于时间间隔收到所述第二RTCP接收端报告对应的第四时戳,所述DLSRl为所述标准RTCP接收端报告包含的第二处理时延,所述l为顺序记录的基于时间间隔按序发送的RTCP报告的索引号;
通过下面公式获取所述I帧的延时抖动:
DI jetter=DIk_avg-Dl_avg
其中,所述DI jetter为所述I帧的延时抖动,所述DIk_avg为所述I帧的传输时延的长期平滑,所述Dl_avg为视频帧的传输时延的长期平滑;
通过下面公式获取所述DIk_avg
D Ik _ avg = ∂ 1 × D I ( k - 1 ) + ( 1 - ∂ 1 ) D Ik
其中,所述为对I帧等效传输时延进行长期平滑的滤波因子,取值范围为[0.0,1.0],所述Dl(k-1)为第k-1个I帧的等效传输时延;
通过下面公式获取所述视频帧的传输时延的长期平滑:
D l _ avg = ∂ 2 × D l - 1 + ( 1 - ∂ 2 ) D l
其中,所述为对视频帧等效传输时延进行长期平滑的滤波因子,取值范围为[0.0,1.0],所述Dl-1为第l-1个所述第二RTCP报告的等效传输时延,所述Dl为第l个所述第二RTCP报告的等效传输时延。
3.根据权利要求2所述的方法,其特征在于,若存在所述第一RTCP发送端报告或所述第一RTCP接收端报告丢失无法进行计算,则通过下面公式获取所述DIk
DIk=DMax
其中,所述DMax为所定义的最大传输时延;
若存在所述第二RTCP发送端报告或所述第二RTCP接收端报告丢失无法进行计算,则通过下面公式获取所述Dl
Dl=DMax
4.根据权利要求1-3任意一项所述的方法,其特征在于,所述抖动阈值包括:第一抖动阈值和第二抖动阈值;
所述若所述I帧的延时抖动大于抖动阈值,则增加邻近I针的间隔进行编码,包括:
若所述DI jetter大于所述第一抖动阈值,则触发I帧转换,每隔一个I帧,将下一个I帧转换为P帧或B帧进行编码,并且每转换一次I帧格式,则对累计转换次数m加1;
当所述m值累计达到M次,所述M为大于或等于1的整数或者所述DI jetter连续R次大于所述第二抖动阈值,则增大相邻I帧的间隔,所述R为大于或等于1的整数,所述第二抖动阈值大于所述第一抖动阈值;
其中,新的相邻I帧的间隔通过以下公式获得:
DIst_new=DIst_old+Diststep
其中,所述DIst_new为所述新的相邻I帧的间隔,所述DIst_old为上一次采用的I帧间隔,所述Diststep为预设的I帧间隔改变的步长。
5.根据权利要求4所述的方法,其特征在于,所述DIst_old初始值为DIst_I,所述DIst_I为标准相邻I帧的间隔。
6.根据权利要求4所述的方法,其特征在于,若所述DIst_new大于等于间隔最大值,则所述新的相邻I帧的间隔取值为所述间隔最大值。
7.根据权利要求4所述的方法,其特征在于,还包括:
若所述累计转换次数m未达到M次,且所述DI jetter小于或等于所述第一抖动阈值,则停止I帧转换动作。
8.根据权利要求4所述的方法,其特征在于,还包括:
若所述DI jetter连续R次小于或等于所述第二抖动阈值,则减少I帧间隔;其中,新的相邻I帧的间隔DIst_new通过以下公式获得:
DIst_new=DIst_old-Diststep
9.根据权利要求8所述的方法,其特征在于,若所述DIst_new小于等于标准相邻I帧的间隔DIst_I,则所述新的相邻I帧的间隔取值为所述DIst_I
10.一种I帧调整方法,其特征在于,包括:
接收端接收到发送端发送的一个第一实时传送控制协议RTCP发送端报告,所述第一RTCP发送端报告与I帧关联,所述第一RTCP发送端报告采用特殊位标识为对应I帧的特殊报告;
所述接收端向所述发送端发送第一RTCP接收端报告,所述第一RTCP接收端报告与I帧关联,所述第一RTCP接收端报告包含第一处理时延,所述第一处理时延为所述接收端收到所述第一RTCP发送端报告到所述接收端发送所述第一RTCP接收端报告的时延;
所述接收端接收所述发送端基于RTCP报告间隔发送的第二RTCP发送端报告;
所述接收端基于RTCP报告间隔向所述发送端发送第二RTCP接收端报告,所述第二RTCP接收端报告包含第二处理时延,所述第二处理时延为所述接收端收到所述第二RTCP发送端报告到所述接收端发送所述第二RTCP接收端报告的时延。
11.一种I帧调整装置,其特征在于,包括:
发送模块,用于每次向接收端发送一个I帧实时传送协议RTP包,对应每个所述I帧RTP包向所述接收端发送第一实时传送控制协议RTCP发送端报告,所述第一RTCP发送端报告与I帧关联,所述第一RTCP发送端报告采用特殊位标识为对应I帧的特殊报告;
接收模块,用于接收所述接收端发送的第一RTCP接收端报告,所述第一RTCP接收端报告与I帧关联,所述第一RTCP接收端报告包含第一处理时延,所述第一处理时延为所述接收端收到所述第一发送端报告到所述接收端发送所述第一接收端报告的时延;
所述发送模块,还用于基于RTCP报告间隔向所述接收端发送第二RTCP发送端报告;
所述接收模块,还用于接收所述接收端基于RTCP报告间隔发送的第二RTCP接收端报告,所述第二RTCP接收端报告包含第二处理时延,所述第二处理时延为所述接收端收到所述第二RTCP发送端报告到所述接收端发送所述第二RTCP接收端报告的时延;
处理模块,用于记录第一时戳、第二时戳、第三时戳和第四时戳,所述第一时戳为所述发送端发送所述第一RTCP发送端报告的时刻、所述第二时戳为所述发送端收到所述第一RTCP接收端报告的时刻、所述第三时戳为所述发送端发送第二RTCP发送端报告的时刻、所述第四时戳为所述发送端收到所述第二RTCP接收端报告的时刻;
所述处理模块,还用于根据所述第一时戳、所述第二时戳、所述第三时戳、所述第四时戳、所述第一处理时延和所述第二处理时延获取所述I帧的延时抖动;
调整模块,用于若所述I帧的延时抖动大于抖动阈值,则增加邻近I针的间隔进行编码。
12.根据权利要求11所述的装置,其特征在于,所述处理模块,具体用于通过下面公式获取所述I帧的等效传输时延:
D Ik = ( Σ n = 1 N T RR sn Ikn - T SR sn Ikn - DLSR Ikn 2 ) ÷N
其中,所述DIk为所述第k个I帧的等效传输时延,所述为所述发送端发送所述第一RTCP发送端报告的第一时戳,所述第一RTCP发送端报告与所述第k个I帧的第n个RTP包对应,所述为所述发送端接收所述第一RTCP接收端报告的第二时戳,所述第一RTCP接收端报告与所述第k个I帧的第n个RTP包对应,所述DLSRIn为所述第一RTCP接收端报告包含的第一处理时延,N为所述第k个I帧所分解对应的RTP包数目,应为大于或等于1的整数,所述n的取值范围为[1,N],所述k为顺序记录的I帧的索引号;
所述处理模块,具体还用于通过下面公式获取视频帧的等效传输时延:
D l = T RR l - T SR l - DLSR l 2
其中,所述Dl为RTP流数据的等效传输时延,所述为所述基于时间间隔发送的所述第二RTCP发送端报告对应的第三时戳,所述为与所述基于时间间隔收到所述第二RTCP接收端报告对应的第四时戳,所述DLSRl为所述标准RTCP接收端报告包含的第二处理时延,所述l为顺序记录的基于时间间隔按序发送的RTCP报告的索引号;
所述处理模块,具体还用于通过下面公式获取所述I帧的延时抖动:
DI jetter=DIk_avg-Dl_avg
其中,所述DI jetter为所述I帧的延时抖动,所述DIk_avg为所述I帧的传输时延的长期平滑,所述Dl_avg为视频帧的传输时延的长期平滑;
所述处理模块,具体还用于通过下面公式获取所述DIk_avg
D Ik _ avg = ∂ 1 × D I ( k - 1 ) + ( 1 - ∂ 1 ) D Ik
其中,所述为对I帧等效传输时延进行长期平滑的滤波因子,取值范围为[0.0,1.0],所述Dl(k-1)为第k-1个I帧的等效传输时延;
所述处理模块,具体还用于通过下面公式获取所述视频帧的传输时延的长期平滑:
D l _ avg = ∂ 2 × D l - 1 + ( 1 - ∂ 2 ) D l
其中,所述为对视频帧等效传输时延进行长期平滑的滤波因子,取值范围为[0.0,1.0],所述Dl-1为第l-1个所述第二RTCP报告的等效传输时延,所述Dl为第l个所述第二RTCP报告的等效传输时延。
13.根据权利要求12所述的装置,其特征在于,所述处理模块,具体还用于若存在所述第一RTCP发送端报告或所述第一RTCP接收端报告丢失无法进行计算,则通过下面公式获取所述DIk
DIk=DMax
其中,所述DMax为所定义的最大传输时延;
所述处理模块,具体还用于若存在所述第二RTCP发送端报告或所述第二RTCP接收端报告丢失无法进行计算,则通过下面公式获取所述Dl
Dl=DMax
14.根据权利要求11-13任意一项所述的装置,其特征在于,所述抖动阈值包括:第一抖动阈值和第二抖动阈值;
所述调整模块,具体用于若所述DI jetter大于所述第一抖动阈值,则触发I帧转换,每隔一个I帧,将下一个I帧转换为P帧或B帧进行编码,并且每转换一次I帧格式,则对累计转换次数m加1;
所述调整模块,具体用于当所述m值累计达到M次,所述M为大于或等于1的整数或者所述DI jetter连续R次大于所述第二抖动阈值,则增大相邻I帧的间隔,所述R为大于或等于1的整数,所述第二抖动阈值大于所述第一抖动阈值;
所述处理模块还用于通过以下公式获得新的相邻I帧的间隔:
DIst_new=DIst_old+Diststep
其中,所述DIst_new为所述第一相邻I帧的间隔,所述DIst_old为上一次采用的I帧间隔,所述Diststep为预设的I帧间隔改变的步长。
15.根据权利要求14所述的装置,其特征在于,所述DIst_old初始值为DIst_I,所述DIst_I为标准相邻I帧的间隔。
16.根据权利要求14所述的装置,其特征在于,所述调整模块,具体还用于若所述DIst_new大于等于间隔最大值,则所述新的相邻I帧的间隔取值为所述间隔最大值。
17.根据权利要求14所述的装置,其特征在于,所述调整模块,还用于若所述累计转换次数m未达到M次,且所述DI jetter小于或等于所述第一抖动阈值,则停止I帧转换动作。
18.根据权利要求14所述的装置,其特征在于,所述调整模块,还用于若所述DI jetter连续R次小于或等于所述第二抖动阈值,则减少I帧间隔;
所述处理模块还用于通过以下公式获得新的相邻I帧的间隔DIst_new
DIst_new=DIst_old-Diststep
19.根据权利要求18所述的装置,其特征在于,所述调整模块,具体还用于若所述DIst_new小于等于标准相邻I帧的间隔DIst_I,则所述新的相邻I帧的间隔取值为所述DIst_I
20.一种I帧调整装置,其特征在于,包括:
接收模块,用于接收到发送端发送的一个第一实时传送控制协议RTCP发送端报告,所述第一RTCP发送端报告与I帧关联,所述第一RTCP发送端报告采用特殊位标识为对应I帧的特殊报告;
发送模块,用于向所述发送端发送第一RTCP接收端报告,所述第一RTCP接收端报告与I帧关联,所述第一RTCP接收端报告包含第一处理时延,所述第一处理时延为所述接收端收到所述第一RTCP发送端报告到所述接收端发送所述第一RTCP接收端报告的时延;
所述接收模块,还用于接收所述发送端基于RTCP报告间隔发送的第二RTCP发送端报告;
所述发送模块,还用于基于RTCP报告间隔向所述发送端发送第二RTCP接收端报告,所述第二RTCP接收端报告包含第二处理时延,所述第二处理时延为所述接收端收到所述第二RTCP发送端报告到所述接收端发送所述第二RTCP接收端报告的时延。
21.一种I帧调整***,其特征在于,包括:权利要求11-19任意一项所述的I帧调整装置、所述权利要求20所述的I帧调整装置。
CN201310731550.6A 2013-12-26 2013-12-26 I帧调整方法、装置及*** Active CN104754339B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310731550.6A CN104754339B (zh) 2013-12-26 2013-12-26 I帧调整方法、装置及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310731550.6A CN104754339B (zh) 2013-12-26 2013-12-26 I帧调整方法、装置及***

Publications (2)

Publication Number Publication Date
CN104754339A true CN104754339A (zh) 2015-07-01
CN104754339B CN104754339B (zh) 2018-02-13

Family

ID=53593360

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310731550.6A Active CN104754339B (zh) 2013-12-26 2013-12-26 I帧调整方法、装置及***

Country Status (1)

Country Link
CN (1) CN104754339B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108809850A (zh) * 2017-05-03 2018-11-13 成都鼎桥通信技术有限公司 传输通道的状态反馈方法及装置
CN109861789A (zh) * 2019-01-15 2019-06-07 北京临近空间飞行器***工程研究所 一种适应慢记快发的流水线遥测数据批量处理***
CN111066320A (zh) * 2017-08-31 2020-04-24 浅原慎之辅 动态图像发布装置、方法、程序、动态图像发布***
CN113068001A (zh) * 2019-12-16 2021-07-02 浙江宇视科技有限公司 基于级联摄像机的数据处理方法、装置、设备和介质
CN113452953A (zh) * 2020-03-26 2021-09-28 浙江宇视科技有限公司 一种视频流传输控制方法、装置、设备和介质
WO2023284445A1 (zh) * 2021-07-15 2023-01-19 腾讯科技(深圳)有限公司 视频流的处理方法、装置、设备、存储介质及程序产品

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1980238A (zh) * 2006-10-30 2007-06-13 上海广电(集团)有限公司中央研究院 基于实时传输/控制协议的h.264流媒体传输控制方法
CN1996897A (zh) * 2005-12-28 2007-07-11 中兴通讯股份有限公司 一种在rtp中实时检测网络传输时延的方法
JP3948597B2 (ja) * 2000-03-08 2007-07-25 Kddi株式会社 動画像圧縮符号化送信装置、受信装置および送受信装置
CN101699867A (zh) * 2009-10-28 2010-04-28 武汉世纪信通通信产业有限公司 一种视频数据传输速率动态调整方法
CN101909208B (zh) * 2010-08-05 2012-06-20 浙江工业大学 一种适用于cdma2000的视频无线传输控制方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3948597B2 (ja) * 2000-03-08 2007-07-25 Kddi株式会社 動画像圧縮符号化送信装置、受信装置および送受信装置
CN1996897A (zh) * 2005-12-28 2007-07-11 中兴通讯股份有限公司 一种在rtp中实时检测网络传输时延的方法
CN1980238A (zh) * 2006-10-30 2007-06-13 上海广电(集团)有限公司中央研究院 基于实时传输/控制协议的h.264流媒体传输控制方法
CN101699867A (zh) * 2009-10-28 2010-04-28 武汉世纪信通通信产业有限公司 一种视频数据传输速率动态调整方法
CN101909208B (zh) * 2010-08-05 2012-06-20 浙江工业大学 一种适用于cdma2000的视频无线传输控制方法

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108809850B (zh) * 2017-05-03 2021-11-30 成都鼎桥通信技术有限公司 传输通道的状态反馈方法及装置
CN108809850A (zh) * 2017-05-03 2018-11-13 成都鼎桥通信技术有限公司 传输通道的状态反馈方法及装置
CN111066320A (zh) * 2017-08-31 2020-04-24 浅原慎之辅 动态图像发布装置、方法、程序、动态图像发布***
CN111066320B (zh) * 2017-08-31 2021-05-14 浅原慎之辅 动态图像发布装置、方法、记录介质、动态图像发布***
CN109861789A (zh) * 2019-01-15 2019-06-07 北京临近空间飞行器***工程研究所 一种适应慢记快发的流水线遥测数据批量处理***
CN109861789B (zh) * 2019-01-15 2021-09-07 北京临近空间飞行器***工程研究所 一种适应慢记快发的流水线遥测数据批量处理***
CN113068001A (zh) * 2019-12-16 2021-07-02 浙江宇视科技有限公司 基于级联摄像机的数据处理方法、装置、设备和介质
CN113068001B (zh) * 2019-12-16 2022-10-04 浙江宇视科技有限公司 基于级联摄像机的数据处理方法、装置、设备和介质
CN113452953A (zh) * 2020-03-26 2021-09-28 浙江宇视科技有限公司 一种视频流传输控制方法、装置、设备和介质
CN113452953B (zh) * 2020-03-26 2022-06-14 浙江宇视科技有限公司 一种视频流传输控制方法、装置、设备和介质
WO2021189815A1 (zh) * 2020-03-26 2021-09-30 浙江宇视科技有限公司 视频流传输控制方法、装置、设备和介质
EP4131972A1 (en) * 2020-03-26 2023-02-08 Zhejiang Uniview Technologies Co., Ltd. Video stream transmission control method and apparatus, device, and medium
EP4131972A4 (en) * 2020-03-26 2024-05-22 Zhejiang Uniview Tech Co Ltd METHOD AND APPARATUS FOR CONTROLLING VIDEO STREAM TRANSMISSION, DEVICE AND MEDIUM
WO2023284445A1 (zh) * 2021-07-15 2023-01-19 腾讯科技(深圳)有限公司 视频流的处理方法、装置、设备、存储介质及程序产品

Also Published As

Publication number Publication date
CN104754339B (zh) 2018-02-13

Similar Documents

Publication Publication Date Title
US11349900B2 (en) Voice encoding and sending method and apparatus
CN104754339A (zh) I帧调整方法、装置及***
US9565482B1 (en) Adaptive profile switching system and method for media streaming over IP networks
CN106851281B (zh) 实时视频传输的初始带宽估计
US10602139B2 (en) Embedded multimedia systems with adaptive rate control for power efficient video streaming
CN104918133B (zh) 一种视联网中视频流的播放方法和装置
US9781488B2 (en) Controlled adaptive rate switching system and method for media streaming over IP networks
CN105357592A (zh) 一种流媒体自适应传输选择性丢帧方法
CN101552660B (zh) 对流媒体数据进行重传、播放的方法、装置及通信***
CN105704580B (zh) 一种视频传输方法
KR101122143B1 (ko) 수신기 버퍼 아키텍처를 나타내는 버퍼 파라미터의 시그널링
CN102014286B (zh) 一种视频编解码方法及装置
CN106973294B (zh) 实时视频传输的初始带宽估计
CN104519325A (zh) 一种基于4g网络的无线视频监控***自适应保障方法
KR20180031016A (ko) 전송기측 화상 전화 다운그레이드
CN104618337A (zh) 一种基于tcp/udp混合协议的流媒体无线自适应传输方法
CN103166974A (zh) 一种基于tcp/udp混合协议的流媒体无线传输方法
CN104980819A (zh) 一种视频传输方法及装置
CN111741248B (zh) 一种数据传输方法、装置、终端设备和存储介质
CN110996103A (zh) 一种根据网络情况对视频编码码率进行调节的方法
CN103414956A (zh) 基于传输控制协议的实时数据传输方法及其***
CN105142002A (zh) 音/视频直播方法、装置及控制方法、装置
US10020914B2 (en) Methods and apparatus for maximum utilization of a dynamic varying digital data channel
CN101521813B (zh) 一种处理媒体流的方法和装置
CN104135486A (zh) 一种基于tcp协议的流媒体无线自适应传输方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant