用于收发视频分组的电子设备及其操作方法与流程

文档序号:31369699发布日期:2022-09-02 21:49阅读:104来源:国知局
用于收发视频分组的电子设备及其操作方法与流程
用于收发视频分组的电子设备及其操作方法
1.相关申请的交叉引用
2.本技术基于并要求于2021年3月2日向韩国知识产权局提交的韩国专利申请no.10-2021-0027706的优先权,该申请的公开通过全文引用合并于此。
技术领域
3.本发明构思涉及一种电子设备及其操作方法,并且更具体地,涉及一种用于收发视频分组的电子设备及其操作方法。


背景技术:

4.为了满足自第四代(4g)通信系统商业化以来不断增长的无线数据业务需求,已经付出了很多努力来开发改进的第五代(5g)或准5g通信系统。为此,5g或准5g通信系统也称为超越4g网络通信系统或后长期演进(lte)系统。
5.随着5g通信系统的引入,往返时间(rtt)已经从200ms减少到5ms,并且需要一种视频分组发送方法,该方法在提供诸如视频呼叫服务和流媒体服务之类的实时特性至关重要的服务时保持所提供的最大带宽并且对分组丢失具有鲁棒性。


技术实现要素:

6.本发明构思提供了一种电子设备,用于通过基于分层预测(p)编码收发视频分组来基于分层p编码生成非参考帧,从而减少或防止因为由于最大带宽限制不执行分组重传而发生视频播放错误。
7.根据本发明构思的一些示例实施例,提供了一种包括nack缓冲器和处理电路的电子设备,该nack缓冲器被配置为临时存储第一分组和第二分组,该处理电路被配置为:基于分层预测p编码生成多个帧,该多个帧包括参考帧和非参考帧,参考帧取决于对另一帧的解码,并且非参考帧独立于对另一帧的解码;基于多个帧生成第一分组和第二分组,第一分组形成参考帧,并且第二分组形成非参考帧;向外部设备发送第一分组和第二分组;接收指示外部设备接收失败的重传目标分组的nack请求;确定不重传与nack请求相对应的重传目标分组中的至少一些重传目标分组。
8.根据本发明构思的一些示例实施例,提供了一种包括处理电路的电子设备,该处理电路被配置为:基于分层预测p编码生成多个帧,该多个帧包括参考帧和非参考帧,参考帧取决于对另一帧的解码,并且非参考帧独立于对另一帧的解码;基于传输业务量和帧类型确定关于多个帧中的一些的丢帧;通过对参考帧进行打包来生成第一分组并通过对非参考帧进行打包来生成第二分组;向外部设备发送第一分组和第二分组;以及监视传输业务量是否超过最大业务量,传输业务量基于发送给外部设备的第一分组和第二分组的大小。
9.根据本发明构思的一些示例实施例,提供了一种包括nack缓冲器和处理电路的电子设备,该nack缓冲器被配置为临时存储第一分组、第二分组和第三分组,该处理电路被配置为:基于分层p编码顺序生成第一帧、第二帧和第三帧;确定是否对第一帧到第三帧中的
每一个执行打包;生成与第一帧相对应的第一分组、与第二帧相对应的第二分组和与第三帧相对应的第三分组;向外部设备发送第一分组至第三分组;监视实时传输业务量并确定实时传输业务量是否超过阈值业务量;接收指示外部设备接收失败的重传目标分组的nack请求;以及确定不重传与nack请求相对应的重传目标分组中的至少一些重传目标分组,其中,第二帧是独立于对另一帧的解码的非参考帧,并且第一帧和第三帧中的每一个是取决于对另一帧的解码的参考帧。
附图说明
10.根据以下结合附图的详细描述,将更清楚地理解本发明构思的一些示例实施例,在附图中:
11.图1是根据示例实施例的电子设备的框图;
12.图2a是根据示例实施例的无线发射机电路的框图;
13.图2b是根据示例实施例的无线接收机电路的框图;
14.图3a示出了基于ippp编码的帧的示例;
15.图3b示出了根据示例实施例的基于分层预测(p)编码的帧的示例;
16.图4是根据示例实施例的电子设备的操作方法的流程图;
17.图5是根据示例实施例的电子设备确定丢帧的操作方法的流程图;
18.图6是根据示例实施例的电子设备在接收到重传请求时的操作方法的流程图;
19.图7是根据示例实施例的电子设备在接收到业务量改变请求时的操作方法的流程图;
20.图8是根据示例实施例的电子设备的操作的逻辑流程图;
21.图9是根据示例实施例的信号交换图;以及
22.图10是根据示例实施例的没有播放错误的视频帧的百分比图。
具体实施方式
23.图1是根据示例实施例的电子设备的框图。
24.参照图1,电子设备10可以包括输入接口110、控制电路120、分组发送电路130、分组接收电路140和/或输出接口150。
25.根据各种实施例,电子设备10可以被实现为发送视频分组的用户设备(ue)。例如,电子设备10可以与外部设备(未示出)执行视频呼叫。外部设备可以称为接收ue。例如,电子设备10可以与流媒体服务提供商的服务器相对应。
26.根据各种实施例,输入接口110可以包括用于接收视频的接口单元。例如,当电子设备10用作发送ue并与接收ue执行视频呼叫时,输入接口110可以与发送ue的相机(未示出)相对应。电子设备10可以通过相机接收外部图像和/或视频,执行打包,以及向接收ue发送分组。
27.根据各种实施例,控制电路120通常可以控制电子设备10的操作。例如,控制电路120可以执行视频呼叫应用并控制电子设备10通过无线发射机电路137发送视频分组。例如,控制电路120可以执行针对实时流媒体的应用并控制电子设备10通过无线接收机电路141从流媒体提供商的服务器(未示出)接收视频分组。控制电路120可以包括至少一个处理
器或微处理器或者可以是处理器的一部分。
28.根据各种实施例,分组发送电路130可以对要发送的视频进行编码并且向外部设备(未示出)发送经编码的视频。分组发送电路130可以包括编码器131、业务量记录器132、分组生成电路133、无线发射机电路137和/或nack缓冲器136。
29.编码器131可以对图像数据进行编码。例如,编码器131可以对帧进行编码。根据实施例,编码器131可以根据控制信号改变编码模式。控制电路120可以根据所执行的应用向编码器131发送不同的信号。例如,当在相机应用中激活慢动作功能或延时功能时,或者当执行无缝视频流很重要的视频呼叫应用时,控制电路120可以向编码器131发送指示分层预测(p)编码的控制信号。编码器131可以从接收到控制信号的那一刻起对帧执行分层p编码。下面将描述分层p编码。
30.业务量记录器132可以实时测量和监视传输业务量。例如,每次(或一次或多次)发送由分组生成电路133生成的视频分组时,业务量记录器132可以接收并记录视频分组的大小信息。当业务量记录器132从分组生成电路133接收到对实时业务量信息的请求时,业务量记录器132可以在接收到请求时向分组生成电路133发送与实时业务量信息相对应的响应。例如,响应于来自分组生成电路133的对实时业务量信息的请求,业务量记录器132可以发送指示在接收到请求时实时业务量是否超过最大业务量的响应。本文使用的术语最大业务量可以表示阈值业务量。
31.分组生成电路133可以从编码器131接收经编码的帧并从经编码的帧生成视频分组。根据各种实施例,分组生成电路133可以不将所有接收到的帧转换为视频分组而是根据预定义(或备选地给定)条件生成视频分组或丢弃接收到的帧。分组生成电路133中包括的打包决定电路134可以基于帧的种类和是否超过最大业务量来决定执行丢帧。下面将详细描述丢帧。
32.nack缓冲器136可以临时存储向外部设备(未示出)发送的视频分组。分组生成电路133可以基于所接收的帧生成视频分组并将视频分组临时存储在nack缓冲器136中。视频分组被临时存储在nack缓冲器136中,以便在接收到nack请求时重传向外部设备(未示出)发送失败的视频分组。
33.根据各种实施例,分组接收电路140可以处理从外部设备(未示出)接收的至少一个请求。例如,至少一个请求可以包括从外部设备(未示出)接收的nack请求、业务量改变请求或视频分组。分组接收电路140可以将所接收的视频分组解码为图像,响应于nack请求而重传视频分组,以及/或者改变最大业务量值。分组接收电路140可以包括无线接收机电路141、业务量处理器142、nack处理器143和/或解码器144。
34.nack处理器143可以在接收到nack请求时确定是否执行重传。nack处理器143可以对nack请求进行解码,识别发送失败的分组的序列号,以及/或者向nack缓冲器136查询与序列号相对应的分组。nack处理器143可以忽略nack请求或基于从nack缓冲器136接收的分组向外部设备(未示出)重传分组。下面将详细描述nack处理器143。
35.当接收到业务量改变请求时,业务量处理器142可以控制业务量记录器132和编码器131的设置值。例如,当最大业务量值增加时,业务量处理器142可以向业务量记录器132发送控制信号,使得反映所增加的最大业务量值。业务量处理器142可以改变编码器131的比特率值以与所增加的最大业务量值相对应。下面将详细描述业务量处理器142。
36.解码器144可对所接收的视频分组进行解码并获得图像帧。根据实施例,解码器144可以根据控制信号改变解码模式。可以改变解码模式以与发送视频分组的编码器131的操作模式相对应。例如,当接收到基于分层p编码来编码的视频分组时,控制电路120可以向解码器144发送指示分层p编码的控制信号。
37.上面已经描述了电子设备10通过无线发射机电路137和无线接收机电路141发送和接收视频分组,但是实施例不限于此。根据各种实施例,电子设备10还可以应用于使用有线接口的网络(例如,以太网)。
38.在至少一个实施例中,所描述的功能可以由硬件、软件、固件或其组合来执行。当功能由软件执行时,该功能可以作为至少一个指令或代码存储在计算机可读介质中或被发送到计算机可读介质。计算机可读介质可以包括计算机存储介质和包括促进计算机程序从一个地方向另一个地方的传输的介质的任何通信介质。
39.在至少一个示例实施例中,控制电路120、分组发送电路130和/或分组接收电路140可以设置在电子设备10的不同部分上。例如,图1将分组发送电路130和分组接收电路140示出为与控制电路120分离的分立电路。然而,示例实施例不限于此。例如,在一些示例实施例中,分组发送电路130和/或分组接收电路可以是控制电路120的一部分和/或被包括在控制电路120中。
40.图2a是根据示例实施例的无线发射机电路的框图。
41.参照图2a,无线发射机电路137可以包括编码器和调制器210、数字波束成形器220、第一发送路径230-1至第n发送路径230-n、和/或模拟波束成形器240。
42.编码器和调制器210可以执行信道编码。对于信道编码,可以使用从低密度奇偶校验(ldpc)码、卷积码和/或极性码中选择的至少一种。编码器和调制器210可以通过执行星座映射来生成经调制的符号。
43.数字波束成形器220可以对数字信号(例如,经调制的符号)执行波束成形。对于该操作,数字波束成形器220可以将经调制的符号乘以波束成形权重。此时,波束成形权重可以用于改变信号的幅度和相位,并称为预编码矩阵或预编码器。数字波束成形器220可以将数字波束成形后的经调制的符号输出到第一发送路径230-1至第n发送路径230-n。此时,根据多输入多输出(mimo)传输方案,经调制的符号可以被复用,或者相同的经调制的符号被提供给第一发送路径230-1至第n发送路径230-n。
44.第一发送路径230-1至第n发送路径230-n可以将数字波束成形后的数字信号转换为模拟信号。对于该操作,第一发送路径230-1至第n发送路径230-n中的每一个或一个或多个可以包括快速傅立叶逆变换(ifft)算子、循环前缀(cp)插入器、数模转换器(dac)和/或上变频器。cp插入器用于正交频分复用(ofdm)方案,并且在使用不同的物理层方案(例如,滤波器组多载波(fbmc)方案)时可以省略。换言之,第一发送路径230-1至第n发送路径230-n可以针对通过数字波束成形生成的多个流提供独立的信号处理。然而,根据实现方法可以共享第一发送路径230-1至第n发送路径230-n的元件中的一些。
45.模拟波束成形器240可以对模拟信号执行波束成形。对于该操作,模拟波束成形器240可以将模拟信号乘以波束成形权重。此时,波束成形权重可以用于改变信号的幅度和相位。
46.图2b是根据示例实施例的无线接收机电路的框图。
47.参照图2b,无线接收机电路141可以包括解码器和解调器340、数字波束成形器330、第一接收路径320-1至第n接收路径320-n、和/或模拟波束成形器310。
48.解码器和解调器340可以执行信道解码。对于信道解码,可以使用从ldpc码、卷积码、极性码和/或turbo码中选择的至少一种。
49.根据各种实施例,数字波束成形器330和模拟波束成形器310可以分别对应于图2a中的数字波束成形器220和模拟波束成形器240。第一接收路径320-1至第n接收路径320-n可以将波束成形后的模拟信号转换为数字信号。对于该操作,第一接收路径320-1至第n接收路径320-n中的每一个或一个或多个可以包括快速傅立叶变换(fft)算子、模数转换器(adc)、cp去除器、串并转换器和/或下变频器。详细地,第一接收路径320-1至第n接收路径320-n中的每一个或一个或多个可通过将所接收的信号下变频为基带频率并从所接收的信号中去除cp来生成串行时域基带信号,将串行时域基带信号转换为并行时域信号,通过对并行时域信号执行fft算法来生成n个并行频域信号,以及将n个并行频域信号转换为经调制的数据符号的序列。换言之,第一接收路径320-1至第n接收路径320-n可以针对通过模拟波束成形生成的多个流提供独立的信号处理。然而,根据实现方法,可以共享第一接收路径320-1至第n接收路径320-n的元件中的一些。
50.图3a示出了基于ippp编码的帧的示例。
51.参照图3a,可以基于ippp编码生成第一帧i1和第二帧p2至第十帧p10。在ippp编码中,第一帧i1可以对应于帧内(i)帧。帧内(i)帧可以指对其中的所有宏块执行帧内编码的帧。换言之,i帧可以被独立解码而无需参考另一图像。i帧可以称为关键帧。
52.第二帧p2至第十帧p10可以对应于预测(p)帧。p帧可以指对其中的至少一个宏块执行帧间编码的帧。帧间编码可以指基于运动估计的编码方法。换言之,可以基于先前帧对当前帧执行帧间预测,并且p帧可以包括当前帧和实际宏块值之间的差值以及指示先前帧的运动矢量信息。
53.第一帧i1和第二帧p2至第九帧p9可以称为参考帧。参考帧可以被另一个帧参考。例如,与i帧相对应的第一帧i1可以被从第二帧p2至第十帧p10中选择的至少一帧参考。例如,第三帧p3可以被从其后的第四帧p4至第十帧p10中选择的至少一帧参考。
54.第十帧p10可以称为非参考帧。换言之,第十帧p10可以参考其他帧进行编码和解码,但是其他帧(例如,第一帧t1和第二帧p2至第九帧p9)可以既不参考第十帧p10进行编码也不参考第十帧p10进行解码。
55.图3b示出了根据示例实施例的基于分层p编码的帧的示例。
56.参照图3b,第一帧i1和第二帧p2至第十帧p10可以基于分层p编码来生成。
57.根据各种实施例,第一帧i1和第二帧p2至第十帧p10可以与至少两个层相对应。例如,参照图3b,第一帧i1、第五帧p5和第九帧p9可以与第一层层1相对应。第三帧p3和第七帧p7可以与第二层层2相对应。第二帧p2、第四帧p4、第六帧p6、第八帧p8和第十帧p10可以与第三层层3相对应。
58.最高层(例如,图3b中的第三层层3)可以仅包括非参考帧。换言之,第二帧p2可以参考第一帧i1进行编码和解码,第四帧p4可以参考第三帧p3进行编码和解码,第六帧p6可以参考第五帧进行编码和解码p5,第八帧p8可以参考第七帧p7进行编码和解码,以及第十帧p10可以参考第九帧p9进行编码和解码。换言之,可以不参考最高层中的帧来对其他帧进
行编码和解码,并且除了最高层之外的其他层可以仅包括参考帧。
59.根据各种实施例,当电子设备10使用分层p编码对传输帧进行编码时,可以根据特定模式将传输帧发送。例如,当电子设备10根据h.265标准对传输帧进行编码时,要发送的实时传输协议(rtp)分组可以被编码为每个(或一个或多个)包括业务标识符(tid)值。tid值指示rtp分组的相对重要性并且根据分层p编码的层可以是不同的。例如,与最低层(例如,第一层层1)中的参考帧相对应的rtp分组的tid值可以是0,其是最小值。例如,与最高层(例如,第三层层3)中的非参考帧相对应的rtp分组的tid值可以是3。换言之,当rtp分组的重要性高时(即,在对另一帧进行解码所必须参考的参考帧的情况下),tid值可以低。特定模式可以与tid值的模式相对应。例如,当基于如图3b所示的分层p编码生成rtp流时,要发送的rtp分组的tid值可以具有(0,2,1,2)的重复模式。重复模式可以基于0(为第一帧i1的tid值)、2(为第二帧p2的tid值)、1(为第三帧p3的tid值)、2(为第四帧p4的tid值)。根据各种实施例,当电子设备10根据是否超过最大业务量而丢弃至少一些帧(例如,非参考帧)时,由接收视频分组的外部设备(未示出)接收的rtp分组的tid值可以不基于重复模式。例如,在当发送第四帧p4时最大业务量被完全占用的情况下,电子设备10可以不对第四帧p4进行打包。在这种情况下,当由外部设备(未示出)接收的帧的tid值被顺序示出时,tid模式可以表示为(0,2,1,0...)。例如,当电子设备10接收视频分组并且所接收的帧的tid模式不是有规律地重复时,可以识别外部设备(未示出)使用基于最大带宽的丢帧来发送rtp分组。
60.图4是根据示例实施例的电子设备的操作方法的流程图。
61.参照图4,电子设备10可以在操作s110中设置编码模式和最大业务量。编码模式可以包括ippp编码和分层p编码。如参照图1所述,控制电路120可以响应于视频呼叫应用(对于视频呼叫应用,提供无缝视频流是至关重要的)的执行而向编码器131发送指示分层p编码的控制信号。编码器131可以响应于控制信号而改变内部编码设置,使得执行分层p编码。电子设备10可以向业务量记录器132发送最大业务量值。最大业务量值可以由上层协议(例如,会话描述协议(sdp))识别,该上层协议确定针对电子设备10和外部设备(未示出)之间的rtp建立用户数据报协议(udp)会话所需的细节。电子设备10可以向业务量记录器132发送在udp会话的建立期间所识别的最大业务量值。业务量记录器132可以将最大业务量值与实时业务量值进行比较,并确定是否超过最大业务量值。根据实施例,电子设备10可以向编码器131发送最大业务量值。编码器131可以根据由控制信号指示的编码模式设置值以执行分层p编码,并设置比特率值以有效地使用最大业务量。
62.在操作s120中电子设备10可以对传输视频进行编码。此时,编码器131可以基于分层p编码对多个帧进行编码。帧中的至少一个可以对应于非参考帧。
63.在操作s130中,电子设备10可以确定是否丢弃传输帧。电子设备10的分组生成电路133可以基于打包决定电路134丢弃传输帧。例如,在当发送从编码器131接收的帧并且该帧对应于非参考帧时传输业务量超过最大业务量的情况下,打包决定电路134可以丢弃该帧。下面将参照图5详细描述操作s130。
64.在操作s140中,电子设备10可以对传输帧执行rtp打包并向外部设备(未示出)发送rtp分组。当实时业务量未超过最大业务量时或当传输帧是参考帧时(即使实时业务量超过最大业务量),电子设备10可以确定向外部设备发送传输帧。分组生成电路133可以使用打包电路135将传输帧分为rtp分组并向外部设备发送rtp分组。
65.在操作s150中,电子设备10可以更新业务量记录器132中的实时业务量并且将rtp分组临时存储在nack缓冲器136中。根据各种实施例,控制电路120可以向业务量记录器132提供所发送的rtp分组的大小。业务量记录器132可以基于从无线发射机电路137接收的大小信息来实时监视传输业务量是否超过最大业务量。此外,为了在外部设备接收失败的情况下为分组重传的nack请求做好准备,控制电路120可以将所发送的rtp分组临时存储在nack缓冲器136中。
66.图5是根据示例实施例的电子设备确定丢帧的操作方法的流程图。
67.参照图5,在操作s131中,打包决定电路134可以向业务量记录器132查询实时业务量信息。当分组超过最大业务量进行发送时,可以不执行打包,因为传输极有可能失败。
68.在操作s133中,打包决定电路134可以确定实时业务量是否超过最大业务量。响应于查询,业务量记录器132可向打包决定电路134发送指示实时业务量信息或是否已超过最大业务量的响应。打包决定电路134可以基于来自业务量记录器132的响应来确定实时传输业务量是否超过最大业务量。当实时传输业务量未超过最大业务量时,打包决定电路134可以确定对传输帧进行打包。
69.打包决定电路134可以在操作s135中确定传输帧是否是参考帧并且在操作s137中确定是否丢弃传输帧。一起参照图3b,参考帧是对另一帧进行编码和解码所参考的帧,并且除了最高层(例如,第三层层3)中的帧之外的帧可以是参考帧。例如,一起参照图3b,在第一帧i1和第二帧p2至第十帧p10中,除第二帧p2、第四帧p4、第六帧p6、第八帧p8和第十帧p10之外的帧可以对应于参考帧。例如,当传输帧是第三帧p3时,由于第三帧p3被第四帧p4参考,所以可以确定进行打包。例如,当传输帧是第六帧p6时,由于不存在参考第六帧p6的帧,可以略过打包。由于当传输帧是非参考帧时传输帧不是解码其他帧所必需的,因此即使非参考帧的分组发送失败也可以播放视频。因此,打包决定电路134可以在超过最大业务量的通信环境中丢弃对于视频播放不是必需的非参考帧,使得非参考帧不被打包。
70.图6是根据示例实施例的电子设备在接收到重传请求时的操作方法的流程图。
71.参照图6,在操作s210中电子设备10可以接收nack请求。nack请求可以对应于请求电子设备10重传已经由电子设备10发送但外部设备(未示出)接收失败的分组的信号。根据各种实施例,外部设备可以将序列号包括在nack请求中。外部设备可以将外部设备接收失败的分组的序列号包括在nack请求中。根据实施例,外部设备可以向电子设备10发送包括多达16个分组的序列号的nack请求。nack请求可以包括分组id(pid)和后续丢失分组的位掩码(blp),分组id(pid)包括发送失败的分组的标识符,后续丢失分组的位掩码(blp)包括发送失败的分组的位掩码。pid可以包括表示序列号的两个字节(例如,0到65,535)。blp可以在从与pid所指示的序列号相对应的分组开始的多达16个分组的范围内附加地指示发送失败的分组。例如,当外部设备仅接收第13,197个分组失败时,pid可以包括指示13197的2字节值,并且blp值可以是0。这是因为在从第13,197个分组开始的最多16个分组中,没有发送失败的后续分组。例如,当外部设备接收第29,897至第29,900个分组失败时,pid可以包括指示29897的2字节值,并且blp可以包括指示剩余的第29,898个至第29,900个分组的值。当第29,897个至第29,900个分组接收失败时,blp值可以对应于ox0007。
72.nack处理器143可以在操作s220中向nack缓冲器136查询与nack请求相对应的分组。如上面参照图4所述,每次(或一次或多次)电子设备10发送rtp分组时,电子设备10可以
向nack缓冲器136发送rtp分组并且执行rtp分组的备份。因此,只要缓冲器大小允许,nack缓冲器136就临时存储已经向外部设备发送的所有rtp分组。nack处理器143可以对nack请求进行解码并获得发送失败的rtp分组的序列号,但是可以不仅用序列号来识别传输失败的rtp分组是基于非参考帧还是基于参考帧。nack处理器143可以不做出关于重传的决定,因为nack处理器143可能无法识别传输失败的rtp分组基于哪个帧。因此,nack处理器143可以向nack缓冲器136查询与序列号相对应的rtp分组。nack缓冲器136可以向nack处理器143发送与从nack处理器143接收的序列号相对应的分组。
73.nack处理器143在操作s230中可以确定从nack缓冲器136接收的分组是否包括在参考帧中。在实施例中,根据h.264标准,nack处理器143可以通过对从nack缓冲器136接收的rtp分组的报头进行解码来识别非参考指示符(nri)值。nri值指示与某个rtp分组相对应的帧是参考帧还是非参考帧。根据各种实施例,nri值为0可以指示对应的帧是非参考帧,而nri值为除了0之外的1至3可以指示对应的帧是参考帧。例如,当与序列号10相对应的rtp分组包括在第三帧p3中时,该rtp分组的nri值可以是1、2或3。例如,当与序列号15相对应的rtp分组包括在第六帧p6中时,该rtp分组的nri值可以是0。换言之,nack处理器143可以通过对从nack缓冲器136接收的rtp分组的报头进行解码来获得nri值,并且基于nri值是否是0来确定rtp分组是包括在非参考帧还是参考帧中。在实施例中,根据h.265标准,nack处理器143可以通过对从nack缓冲器136接收的rtp分组的报头进行解码来识别tid值。tid值指示rtp分组的相对重要性并且根据分层p编码的层可以是不同的。例如,当视频压缩编解码器为h.265时,与最低层(例如,层1)中的帧相对应的rtp分组的tid值可以小于与最高层(例如,层3)中的非参考帧相对应的rtp分组的tid值。当rtp分组的tid值是最大的值时,nack处理器143可以确定从nack缓冲器136接收的rtp分组包括在非参考帧中。
74.根据各种实施例,当视频压缩编解码器是h.264时,nack处理器143可以在nri值为0时终止操作。换言之,当由于外部设备(未示出)的接收失败而请求重传的rtp分组包括在非参考帧中时,nack处理器143可以忽略nack请求。这是因为非参考帧中包括的rtp即使发送失败也不会在播放视频中造成任何问题。
75.在操作s240中nack处理器143可以重传参考帧中包括的分组。例如,当与nack请求相对应的rtp分组的nri值不是0时,nack处理器143可以通过无线发射机电路137重传rtp分组。换言之,当rtp分组的nri值是1、2或3时,rtp分组可以被包括在对另一帧进行解码所必须参考的帧中。当具有1、2或3的nri值的rtp分组未被重传时,外部设备(未示出)可能无法解码至少一些帧,因此,视频播放可能不流畅。因此,nack处理器143可以选择性地重传与nack请求相对应的所有rtp分组中具有除0之外的nri值的所有rtp分组。
76.图7是根据示例实施例的电子设备在接收到业务量改变请求时的操作方法的流程图。
77.参照图7,在操作s310中电子设备10可以接收最大业务量改变请求。电子设备10可以通过无线接收机电路141接收最大业务量改变请求。无线接收机电路141可以向业务量处理器142发送最大业务量改变请求。根据rtp会话控制协议的rfc 5104标准,最大业务量变化请求可以对应于临时最大媒体流比特率请求(tmmbr)。tmmbr可以是从与电子设备10交换分组的外部设备(未示出)发送的。tmmbr可以包括关于可用于外部设备的最大比特率的信息。本文使用的术语最大比特率可以表示阈值比特率。例如,当外部设备移动到接收不良的
区域(例如,隧道内部、小区边缘等)时,可用于外部设备的最大比特率可能降低。因为即使电子设备10以高业务量发送rtp分组,外部设备也可以以降低的比特率接收rtp分组,所以分组丢失可以逐渐增加。因此,外部设备可以在tmmbr中包括最大比特率并且向电子设备10发送tmmbr,使得可以实时调整业务量。
78.在操作s320中,电子设备10可以重置业务量记录器132中的最大业务量值。业务量处理器142可以从无线接收机电路141接收tmmbr,并且通过对tmmbr进行解码来识别可用于外部设备(例如,接收机)的最大比特率值。业务量处理器142可以向业务量记录器132发送最大比特率值。业务量记录器132可以接收最大比特率值并基于最大比特率值重置最大业务量值。业务量记录器132可以将改变的最大业务量值与实时业务量进行比较并确定是否已经超过最大业务量。
79.在操作s330中,电子设备10可以基于改变的最大业务量值来调整编码器131的比特率。业务量处理器142可以向编码器131直接发送改变的最大业务量值,或者可以基于改变的最大业务量值计算编码比特率并向编码器131发送编码比特率。编码器131可以调整编码比特率以使用改变的最大业务量最(或更)有效地执行编码。
80.在操作s340中,电子设备10可以向外部设备发送指示编码器131的比特率调整已经完成的响应。该响应被提供以指示编码比特率已经根据由tmmbr指示的改变的最大业务量值进行了调整并且可以对应于临时最大媒体流比特率通知(tmmbn)。在彼此交换tmmbr和tmmbn之后,电子设备10和外部设备可以根据改变的最大业务交换rtp分组。
81.图8是根据示例实施例的电子设备的操作的逻辑流程图。
82.参照图8,可以执行编码器131的初始设置。例如,控制电路120可以配置编码器131以执行分层p编码并将初始业务量设置值发送到业务量记录器132以更新最大业务量值。例如,可以从与电子设备10交换分组的外部设备发送tmmbr(rtcp:tmmbr req(max as=))。
83.编码器131可以确定是否对经编码的帧进行打包。例如,编码器131可以向分组生成电路133发送帧,并且分组生成电路133可以使用打包决定电路134。打包决定电路134可以在接收到帧时确定传输业务量是否超过最大业务量。当传输业务量未超过最大业务量时,可以对帧进行打包。当传输业务量超过最大业务量时,打包决定电路134可以确定该帧是对应于参考帧还是非参考帧。这是因为当传输业务量超过最大业务量时,需要减少传输业务量。当该帧与非参考帧相对应时,即使该帧没有被打包并发送到外部设备,外部没备(未示出)在播放视频中也可以没有问题。因此,当该帧与非参考帧相对应时,打包决定电路134可以不对该帧进行打包而是丢弃该帧。当该帧与参考帧相对应时,打包决定电路134可以针对该参考帧生成分组。因为,如果参考帧没有被分组并发送到外部设备,由外部设备播放的视频可能断断续续或抖动。因此,不管传输业务量超过最大业务量的事实,参考帧都可以被打包并发送到外部设备。因此,打包决定电路134可以确定对与参考帧相对应的帧进行打包。
84.分组生成电路133可以对已经确定对其打包的帧执行rtp打包。分组生成电路133可以将该帧分为至少一个rtp分组。例如,作为关键帧的第一帧i1可以被分为8个rtp分组。参考第一帧i1的第二帧p2包括指示第一帧i1的运动矢量以及第一帧i1与宏块之间的差值,并且因此可以被分为比第一帧i1更少数量的rtp分组(例如,五个rtp分组)。分组生成电路133可以生成序列号并向每个或一个或多个rtp分组分配序列号。序列号指示rtp分组在由
分组生成电路133生成的rtp分组的序列中的位置。外部设备可以接收rtp分组并且在rtp分组由外部设备接收失败时将rtp分组的序列号包括在nack请求中(rtcp:nack req(rtp.seq=))。换言之,每次(或一次或多次)分组生成电路133生成rtp分组时,可以将序列号增加1。
85.分组生成电路133可以更新nack缓冲器136中的rtp分组并向外部设备发送rtp分组。nack缓冲器136可以临时存储多个rtp分组,并且在nack处理器143接收到nack请求时从nack处理器143接收查询。nack缓冲器136可以向nack处理器143输出与由该查询请求的序列号相对应的rtp分组。
86.根据各种实施例,nack处理器143可以接收nack请求。nack请求可以包括尚未由外部设备接收到的rtp分组的序列号。外部设备可以在nack请求中包括多达16个rtp分组的序列号。在接收到nack请求时,nack处理器143可以识别nack请求中包括的序列号,并向nack缓冲器136查询该序列号。nack处理器143可以不仅基于序列号来确定rtp分组是包括在参考帧中还是非参考帧中。nack处理器143可以从nack缓冲器136接收与nack请求所指示的序列号相对应的rtp分组。
87.当rtp分组包括在参考帧中时,nack处理器143可以向外部设备重传rtp分组。这是因为如果参考帧中包括的rtp分组未被发送到外部设备(未示出),则当外部设备播放视频时视频可能抖动。当与nack请求所指示的序列号相对应的rtp分组包括在非参考帧中时,nack处理器143可以忽略nack请求并终止操作。
88.因此,根据一些示例实施例,可以改进rtp分组的传输效率,并且可以减少或防止视频播放错误的发生和/或抖动播放的发生。
89.图9是根据示例实施例的信号交换图。
90.参照图9,编码器131可以根据分层p编码对第一帧i1和第二帧p2至第十帧p10进行编码。根据实施例,第一帧i1和第二帧p2至第十帧p10可以交替地布置在下层层0和上层层1中。
91.根据实施例,从第一帧i1和第二帧p2至第十帧p10中选择的至少一个可以由包括打包决定电路134和打包电路135的分组生成电路133进行打包。然而,每个或一个或多个帧被分为的rtp分组的数量可以不同。例如,第一帧i1可以由分组生成电路133分为第1至第8rtp分组,而第二帧p2可以由分组生成电路133分为第9至第14 rtp分组。第一帧i1的周期期间的实时传输业务量为960kbs,而第二帧p2的周期期间的实时传输业务量为958kbs,因此,第一帧i1和第二帧p2的所有分组可以是在不超过960kbs的最大业务量的情况下成功发送到外部设备(未示出)。因为电子设备10在向外部设备发送第1至第14 rtp分组之前在nack缓冲器136中备份第1至第14 rtp分组,所以nack缓冲器136也可以在其中存储第1至第14 rtp分组。
92.外部设备可能无法经由接收机接收到rtp分组中与第三帧p3相对应的至少一些。外部设备的接收机可以等同于无线接收机电路141。例如,第15至第20 rtp分组可以与第三帧p3相对应。外部设备可能无法接收到六个rtp分组中与第三帧p3相对应的四个rtp分组。例如,外部设备可能无法接收到第16 rtp分组、第18 rtp分组、第19 rtp分组和/或第20 rtp分组。
93.外部设备可能无法接收到rtp分组中与第四帧p4相对应的至少一些。例如,第21至第26 rtp分组可以对应于第四帧p4。外部设备可能无法接收到六个rtp分组中与第四帧p4
相对应的三个rtp分组。例如,外部设备可能无法接收到第21 rtp分组、第23 rtp分组和第24 rtp分组。
94.电子设备10可以从外部设备接收nack请求。nack请求可以包括关于尚未由外部设备接收到的rtp分组的序列号的信息。例如,nack请求可以包括第16、第18、第19、第20、第21、第23和/或第24 rtp分组的序列号。
95.根据各种实施例,nack处理器143和分组生成电路133可以独立地并行操作。例如,nack处理器143可以接收nack请求,从nack缓冲器136加载传输失败的rtp分组,以及确定仅重传所加载的rtp分组中包括在参考帧中的rtp分组。无论是否超过最大业务量,都可以执行重传。rtp分组被确定为重传,是因为如果rtp分组不被重传到外部设备,视频可能在播放时抖动或流媒体服务可能不均匀。在nack处理器143接收nack请求,向nack缓冲器136查询rtp分组以及确定重传第三帧p3中包括的第16、第18、第19和/或第20 rtp分组时,分组生成电路133可以独立确定是否针对第五帧p5生成分组。因为在分组生成电路133确定是否针对第五帧p5生成rtp分组(例如,第27至第29 rtp分组)时,实时传输业务量是956kbs,所以没有超过最大业务量,并且因此,可以生成和发送分别具有序列号27至29的rtp分组。
96.无论是否超过最大业务量,nack处理器143都可以重传参考帧中包括的rtp分组。例如,因为nack请求所请求的rtp分组中的第16、第18、第19和/或第20 rtp分组包括在与下层层0相对应的参考帧中,所以nack处理器143可以重传第16、第18、第19和/或第20 rtp分组。nack处理器143可以对nack请求所请求的rtp分组中的每一个或一个或多个的报头进行解码,并且基于从解码获得的nri或tid值来识别rtp分组中的第16、第18、第19和/或第20 rtp分组。例如,nack请求所请求的rtp分组中的第16、第18、第19和/或第20 rtp分组中的每一个或一个或多个的报头的nri值可以不为0。nack请求所请求的rtp分组中的第21、第23和/或第24 rtp分组中的每一个或一个或多个的报头的nri值可以为0。例如,nack处理器143可以识别nack请求所请求的rtp分组中的每一个或一个或多个的tid值。nack请求所请求的rtp分组中的第16、第18、第19和/或第20 rtp分组中的每一个或一个或多个的tid值可以小于rtp分组中第21、第23和/或第24 rtp分组中的每个或一个或多个的tid值。nack处理器143可以识别具有较小tid值的第16、第18、第19和/或第20 rtp分组并且重传第16、第18、第19和/或第20 rtp分组。nack处理器143可以向外部设备重传第16、第18、第19和/或第20 rtp分组,其中每个或一个或多个具有0的nri值或低tid值。然而,因为即使在超过最大带宽时也执行该重传,所以重传时的实时传输业务量可以大于最大带宽。例如,参照图9,nack处理器143执行重传时的传输业务量是973kbs,其超过960kbs的最大业务量。
97.根据各种实施例,分组生成电路133可以确定丢弃第六帧p6。详细地,分组生成电路133可以从编码器131接收第六帧p6并使用打包决定电路134确定是否执行打包。如上所述,因为分组生成电路133从编码器131接收到第六帧p6时的传输业务量为973kbs,所以打包决定电路134可以确定实时传输业务量超过最大业务量。此后,在最大业务量被完全占用的状态下,打包决定电路134可以确定是否通过丢弃帧来减少业务量共享或者是否对帧执行rtp分组并发送rtp分组而不管最大业务量,以允许外部设备播放没有闪烁或抖动的视频。参照图9,第六帧p6可以在上层层1中。换言之,可以看出第六帧p6参考第五帧p5进行解码,并且没有其他帧需要参考第六帧p6进行解码。因为第六帧p6是非参考帧,所以即使第六帧p6未被发送到外部设备时,打包决定电路134也可以确定视频没有抖动,并且确定丢弃第
六帧p6。类似地,打包决定电路134可以在从编码器131接收到第七帧p7时识别实时传输业务量,并识别实时传输业务量超过960kbs的最大业务量。然而,打包决定电路134可以识别第七帧p7是参考帧。换言之,第七帧p7可以是对第八帧p8和第九帧p9解码所必须参考的。当第七帧p7未发送到外部设备时,打包决定电路134可以确定在视频播放中发生错误和抖动。因为第七帧p7是参考帧,所以分组生成电路133可以将第七帧p7分为五个rtp分组,尽管最大业务量已被完全占用。五个rtp分组可以与第30至第34 rtp分组相对应。第八帧p8的描述与第六帧p6的描述相同,因此省略。第九帧p9和第十帧p10的描述与第一帧i1或第二帧p2的描述相同,因此省略。
98.根据各种实施例,外部设备可以成功地对第一帧i1、第二帧p2、第三帧p3、第五帧p5、第七帧p7、第九帧p9和/或第十帧p10进行解码。例如,外部设备还可以包括抖动缓冲器。抖动缓冲器可以按照编码序列的顺序而不是接收时间的顺序临时存储多个帧。因为最大业务量未被完全占用,所以第一帧i1、第二帧p2、第五帧p5、第九帧p9和/或第十帧p10可以从电子设备10成功发送到外部设备。
99.第三帧p3与第四帧p4的相同点可以是第三帧p3的一些rtp分组发送失败。然而,第三帧p3中包括的rtp分组被重传,而尽管有重传请求,但第四帧p4中包括的rtp分组不被重传。这是因为第三帧p3是参考帧,因此是外部设备的视频播放所必需的,而第四帧p4是非参考帧,即使第四帧未发送到外部设备也不会导致视频播放中的闪烁或错误。
100.第六帧p6与第七帧p7的相同点可以是在第六帧p6被打包时最大带宽被完全占用。然而,第六帧p6在被打包之前被丢弃,而第七帧p7被打包为第30至第34 rtp分组,并被发送到外部设备。这是因为第六帧p6是非参考帧并且即使第六帧p6未被发送到外部设备视频播放也是可能的。第七帧p7是参考帧,因此对外部设备的视频播放是必须发送的。外部设备未能接收到第六帧p6和第八帧p8,但因为rtp序列号被识别为顺序增加,可能不识别针对第六帧p6和第八帧p8的分组丢失。
101.图10是根据示例实施例的没有播放错误的视频帧的百分比图。
102.参照图10,图的横轴是所发送的rtp分组的数量,并且图的纵轴是获得没有播放错误的视频的概率。在下文中,假设以一秒为间隔生成i帧,一秒内发送85个rtp分组,并且根据分层p(hp)编码生成的帧中的非参考帧的部分为20%。
103.根据各种实施例,下面的表1示出了在ippp编码和hp编码的情况下,针对rtp分组的不同丢失率,获得没有播放错误的视频的概率。
104.表1
[0105][0106]
参照表1,可以看出,在以0.5%的丢失率(例如,在强电场环境中)和以10%的丢失率(例如,在弱电场环境中)发送和接收视频分组的情况下,使用hp编码时维护视频(例如,获得无缝视频)的概率大于使用ippp编码时的概率。如上所述,根据ippp编码,在作为关键帧的i帧之后,随后仅生成参考p帧。换言之,基于ippp编码的帧都是参考帧,因此,当在至少一帧中发生分组丢失时,因为分组几乎不可能被恢复,所以可能无法执行顺序解码,从而导致解码错误。例如,可以看出,即使在具有0.5%的丢失率的强电场环境下,获得无缝视频的概率也仅为65.30%。
[0107]
相反,hp编码可以必须包括非参考帧。因此,在具有分组丢失的帧是非参考帧的情况下,即使不对非参考帧进行解码,分组接收机也可以播放没有诸如闪烁或抖动的错误的视频。根据示例实施例,在具有分组丢失的帧是参考帧的情况下,无论最大带宽是否被完全占用,总是响应于nack请求而执行分组重传,因此,错误发生的概率可以进一步降低。在弱电场状态下丢失率为10%的恶劣通信环境中,基于ippp编码在一秒内发送视频分组时播放没有错误的视频的概率仅为0.01%,而基于hp编码在一秒内发送视频分组时播放没有错误的视频的概率为26.91%。基于该事实,响应于nack请求重传参考帧是有效的。
[0108]
上面公开的一个或多个元件可以包括一个或多个处理电路(或被实现在一个或多个处理电路中),例如包括逻辑电路的硬件;诸如执行软件的处理器的硬件/软件组合;或二者的组合。例如,处理电路更具体地可以包括但不限于中央处理单元(cpu)、算术逻辑单元(alu)、数字信号处理器、微型计算机、现场可编程门阵列(fpga)、片上系统(soc)、可编程逻辑单元、微处理器、专用集成电路(asic)等。
[0109]
尽管已参考本发明构思的实施例具体示出和描述了本发明构思,但是应当理解,在不脱离所附权利要求的精神和范围的情况下,可以在形式和细节上进行各种改变。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1