CN117336534A - 数据传输方法、装置、电子设备及存储介质 - Google Patents

数据传输方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN117336534A
CN117336534A CN202311286847.6A CN202311286847A CN117336534A CN 117336534 A CN117336534 A CN 117336534A CN 202311286847 A CN202311286847 A CN 202311286847A CN 117336534 A CN117336534 A CN 117336534A
Authority
CN
China
Prior art keywords
reference frame
frame
target reference
receiving end
information
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.)
Pending
Application number
CN202311286847.6A
Other languages
English (en)
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.)
Douyin Vision Co Ltd
Original Assignee
Douyin Vision Co 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 Douyin Vision Co Ltd filed Critical Douyin Vision Co Ltd
Priority to CN202311286847.6A priority Critical patent/CN117336534A/zh
Publication of CN117336534A publication Critical patent/CN117336534A/zh
Pending legal-status Critical Current

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/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • H04N21/2353Processing of additional data, e.g. scrambling of additional data or processing content descriptors specifically adapted to content descriptors, e.g. coding, compressing or processing of metadata
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/233Processing of audio elementary streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/439Processing of audio elementary streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4621Controlling the complexity of the content stream or additional data, e.g. lowering the resolution or bit-rate of the video stream for a mobile client with a small screen

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Library & Information Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本公开涉及数据传输方法、装置、电子设备及存储介质,上述方法包括:获取发送端发送的多媒体数据,并基于所述多媒体数据获取可解码帧信息;向所述发送端发送所述可解码帧信息;获取所述发送端发送的目标参考帧,并基于所述目标参考帧对所述多媒体数据进行数据恢复。由于该目标参考帧基于可解码帧信息生成,使得在接收端接收到的多媒体数据出现丢包现象时,接收端可以根据接收到的目标参考帧实现对丢包数据的快速恢复,便于解码器可以对多媒体数据进行解码,进而避免出现视频卡顿等现象。

Description

数据传输方法、装置、电子设备及存储介质
技术领域
本公开涉及网络技术领域,尤其涉及数据传输方法、装置、电子设备及存储介质。
背景技术
随着网络的不断发展,用户在观看视频的过程中难免出现卡顿的情况。为解决视频卡顿问题,相关技术中通常需要重新传输数据包。
而视频卡顿可能是丢包引起,也可能是网络拥塞引起。如果是网络拥塞引起,通过数据包重传的方式会加重视频卡顿的情况,使得相关技术在解决视频卡顿时的效率较低。
发明内容
本公开提供了一种数据传输方法、装置、电子设备及存储介质。
根据本公开的第一方面,提供了一种数据传输方法,所述方法用于接收端,所述方法包括:
获取发送端发送的多媒体数据,并基于所述多媒体数据获取可解码帧信息;
向所述发送端发送所述可解码帧信息;
获取所述发送端发送的目标参考帧,并基于所述目标参考帧对所述多媒体数据进行数据恢复。
根据本公开的第二方面,提供了一种数据传输方法,所述方法用于发送端,所述方法包括:
向接收端发送多媒体数据,并获取所述接收端发送的可解码帧信息;
基于所述可解码帧信息生成目标参考帧,并向所述接收端发送所述目标参考帧。
根据本公开的第三方面,提供了一种数据传输装置,所述装置用于接收端,所述装置包括:
多媒体数据获取模块,用于获取发送端发送的多媒体数据;
可解码帧信息获取模块,用于基于所述多媒体数据获取可解码帧信息;
信息发送模块,用于向所述发送端发送所述可解码帧信息;
目标参考帧接收模块,用于获取所述发送端发送的目标参考帧;
数据恢复模块,用于基于所述目标参考帧对所述多媒体数据进行数据恢复。
根据本公开的第四方面,提供了一种数据传输装置,所述装置用于发送端,所述装置包括:
多媒体数据发送模块,用于向接收端发送多媒体数据;
信息获取模块,用于获取所述接收端发送的可解码帧信息;
目标参考帧生成模块,用于基于所述可解码帧信息生成目标参考帧;
目标参考帧发送模块,用于向所述接收端发送所述目标参考帧。
根据本公开的第五方面,提供了一种电子设备。该电子设备包括:存储器和处理器,所述存储器上存储有计算机程序,所述处理器执行所述程序时实现如以上所述的方法。
根据本公开的第六方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本公开的上述方法。
本公开实施例提供的数据传输方法、装置、电子设备及存储介质,通过获取发送端发送的多媒体数据,并基于该多媒体数据可以获得接收到可解码帧信息,并向发送端发送该可解码帧信息。获取发送端发送的目标参考帧,并基于目标参考帧对多媒体数据进行数据恢复。由于该目标参考帧基于可解码帧信息生成,使得在接收端接收到的多媒体数据出现丢包现象时,接收端可以根据接收到的目标参考帧实现对丢包数据的快速恢复,便于解码器可以对多媒体数据进行解码,进而避免出现视频卡顿等现象。
附图说明
在下面结合附图对于示例性实施例的描述中,本公开的更多细节、特征和优点被公开,在附图中:
图1为本公开一示例性实施例提供的场景示意图;
图2为本公开一示例性实施例提供的数据传输方法的流程图;
图3为本公开又一示例性实施例提供的数据传输方法的流程图;
图4为本公开一示例性实施例提供的数据传输装置的功能模块示意性框图;
图5为本公开一示例性实施例提供的电子设备的结构框图;
图6为本公开一示例性实施例提供的计算机***的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
可以理解的是,在使用本公开各实施例公开的技术方案之前,均应当依据相关法律法规通过恰当的方式对本公开所涉及个人信息的类型、使用范围、使用场景等告知用户并获得用户的授权。
例如,在响应于接收到用户的主动请求时,向用户发送提示信息,以明确地提示用户,其请求执行的操作将需要获取和使用到用户的个人信息。从而,使得用户可以根据提示信息来自主地选择是否向执行本公开技术方案的操作的电子设备、应用程序、服务器或存储介质等软件或硬件提供个人信息。
作为一种可选的但非限定性的实现方式,响应于接收到用户的主动请求,向用户发送提示信息的方式例如可以是弹窗的方式,弹窗中可以以文字的方式呈现提示信息。此外,弹窗中还可以承载供用户选择“同意”或者“不同意”向电子设备提供个人信息的选择控件。可以理解的是,上述通知和获取用户授权过程仅是示意性的,不对本公开的实现方式构成限定,其它满足相关法律法规的方式也可应用于本公开的实现方式中。
为了提高数据传输过程中的传输效率,解决视频中出现的卡顿等问题。如图1所示,在本公开提供的实施例中,发送端10可以通过服务器20向接收端30发送多媒体数据,该多媒体数据可以是视频或者音视频等数据。实施例中以该多媒体数据为视频为例进行说明,实施例不限于此。
受限于网络带宽等因素的影响,接收端30在接收发送端10发送的视频的过程中,可能会出现卡顿的情况,因此接收端30在接收到可以解码的视频帧时,就会向发送端10发送可解码帧信息,该可解码帧信息包括可以解码的视频帧的帧号。实施例中,该可解码帧为解码器能够解码的视频帧,或者其依赖是视频帧是可以被解码器解码(通过其依赖帧可以对其进行恢复),实施例中该可以解码帧还可以成为可解帧。
实施例中,接收端30在向发送端10发送可解码帧信息时,该可解码帧信息可以携带历史最多可解码帧的帧号,例如,该可解码帧信息如果每次可以携带10个可解帧的帧号,那么接收端30可以将当前可解帧的帧号及历史时期与该当前可解帧相邻的可解帧的帧号也包含在可解码帧信息中,即,该可解码帧信息可以包含一个当前可解帧的帧号还有9个历史时期与该当前可解帧的帧号相邻的可解帧的帧号。
实施例中,接收端30可以在当前获得一个可解帧时,立即向发送端10发送包含该可解帧的帧号的可解码帧信息,还可以每隔一段时间发送包含该可解帧的帧号的可解码帧信息,或者是在一次累计接收到N个可解帧时,向发送端发送包含该N个可解帧的帧号的可解码帧信息,实施例不限于此。其中,N为正整数。这样发送端10在接收到接收端30发送的可解码帧信息时,就可以知道接收端30都接收到了哪些可解帧,以便基于该可解帧生成目标参考帧,接收端30就可以通过目标参考帧对不可解帧或丢包数据进行数据恢复。该不可解帧可以包括不能被解码器解码的视频帧,或者其依赖的帧不能够被解码器解码。其中,目标参考帧可以为长期参考帧或者关键帧等。
实施例中,接收端30还可以向发送端10发送丢包信息,该丢包信息可以根据接收端30接收到的数据包的包序号确定,例如如果接收端30根据接收到的数据包的序号不连续,说明存在丢包情况,可以生成丢包信息,并向发送端10发送该丢包信息。发送端10在接收到接收端30发送的丢包信息时,就可以判断出接收端30存在丢包现象,会根据接收端30发送的可解码帧信息生成目标参考帧,并向接收端30发送该目标参考帧,便于接收端30根据该目标参考帧实现数据恢复。
实施例中,如果接收端30接收到的数据包的序号连续,可以确认此时不存在丢包现在,很可能是深buffer拥塞引起的数据包非乱序场景。这时接收端30可以向发送端10发送数据包非乱序信息,告知发送端30不存在丢包情况,发送端10在接收到数据包非乱序信息时,不会像接收端30发送目标参考帧,避免进一步加深网络拥塞的情况。其中,实施例中的目标参考帧可以为长期参考帧或者关键帧等,用于接收端30对丢包数据进行恢复,该目标参考帧基于接收端30接收到的可解帧生成。
实施例中,接收端30可以主动向发送端10请求目标参考帧,还可以被动接收发送端10发送的目标参考帧。
接收端30在满足目标条件时,可以主动向发送端30请求目标参考帧。该目标条件可以是接收端30超过目标时长未接收到可解帧或者存在丢包情况时,接收端30向发送端10发送目标参考帧请求。实施例中,该目标时长可以是一个阈值,该阈值可以通过threshold表示,其中:
threshold = 2*(T1+ T2) + T3/10 * N (1)
其中,T1表示帧间隔,T2表示收报抖动或者网络抖动,T3表示距离上次丢包时的时间间隔,N为常数,可以根据需要进行设定,例如N可以为100ms,实施例不限于此。需要说明的是,实施例中该threshold最大为值可以为500ms或者为最小帧间隔的1.5倍。
实施例中,如果存在丢包情况,接收端30可以及时向发送端10发送目标参考帧请求,或者发送端10主动向接收端30发送目标参考帧。而如果不存在丢包情况,需要进一步判断是当前是否为网络拥塞等情况,避免发送端10向接收端发送目标参考帧时进一步引起网络拥塞的情况。
在本公开提供的实施例中,发送端10在接收到接收端30发送的可解码帧信息时,会将该可解码信息中的可解帧的帧号存储到缓存帧列表中,该缓存帧列表用于表征接收端30接收到的视频帧中哪些帧是可以解码的视频帧,便于发送端10根据缓存帧列表中的可解帧生成目标参考帧。
实施例中,该目标参考帧可以是关键帧,还可以是长期参考帧。即发送端10可以根据接收端30当前的可解帧编关键帧或者编长期参考帧,并将编的关键帧或者长期参考帧作为目标参考帧,并向接收端30发送该目标参考帧,便于接收端30根据该目标参考帧实现对丢包数据的恢复。
实施例中,发送端10可以根据图像纹理的复杂程度以及与上一帧长期参考帧复杂程度确定编关键帧或者长期参考帧,如果图像纹理复杂,但当前帧与上一帧的长期参考帧相比变化很大(例如数据量大小超过预设的阈值),则编关键帧作为目标参考帧,或者图像纹理比较简单,也可以编关键帧,否则,编长期参考帧。其中,可以将图像的大小与相关阈值进行比较,例如图像帧小于阈值,说明图像纹理比较简单,不复杂;否则,图像纹理可以看作比较复杂。实施例中,例如可以根据发送端30的当前可解帧分别生成关键帧和长期参考帧,通过对比该关键帧和该长期参考帧的大小关系,选择数据量较小的作为目标参考帧。这样便于发送端10向接收端30发送目标参考帧,避免因目标参考帧过大导致网络拥塞或者加剧丢包现象。其中,实施例中的编关键帧或者编长期参考帧,可以理解为生成关键帧或者生成长期参考帧。
实施例中,为了减少因分别编关键帧和长期参考帧带来的计算量较大的情况,还可以分别参考相邻的前一关键帧和和前一长期参考帧,通过比较二者的大小作为判断依据,例如前一关键帧的数据量大于前一参考帧的数据量,那么此时就可以编长期参考帧作为目标参考帧。
实施例中,长期参考帧具体可以是SP帧,例如可以当前一个SP帧和前面一个关键帧,比较二者之间的大小。例如可以将两个都编出来都来比较其大小。或者,如果前面一个SP帧与当前帧之间的间隔较小(例如间隔小于阈值),可以将该SP帧作为长期参考帧,如果隔较大,可以比较长期参考帧和关键帧之间的大小。假设参考的长期参考帧已经超过5秒,通过比较二者的大小,确定编关键帧,还是编SP作为长期参考帧。
实施例中,发送端10向接收到30发送长期参考帧的时机,需要满足最小发送间隔,即:
min_interval_ms = min(avg_ack_elase_ms,150) (2)
其中,min_interval_ms表示发送长期参考帧的最小发送间隔,avg_ack_elase_ms表示平均反馈延时;min_interval_ms取平均反馈延时与150ms之间的最小者,平均反馈延时可以是接收端30的平均延时时间。
在本公开提供的实施例中,发送端10可以根据接收到的可解码帧信息主动生成长期参考帧,即发送端10在接收到接收端30发送的可解码帧信息后,每间隔一段时间发送端10向接收端30发送一次目标参考帧。其中,发送端10距离上次接收到接收端30请求目标参考帧时越近,或者距离接收端30反馈丢包信息时越近,发送端10向接收端30发送目标参考帧的时间间隔越小,及发送目标参考帧的持续时长越小;反之,时间间隔越大,持续时长越大。这样可以尽量减少因接收端在不需要目标参考帧进行数据恢复时的目标参考帧的数据传输,提高目标参考帧的数据传输效率。另外,本公开实施例中还可以结合目标参考帧和前向冗余进行网络带宽的分配。
具体的,可以通过获取视频的当前可用带宽,通过获取视频最小码率和最大码率约束,以及可用带宽除以所需重传冗余率、目标参考帧所需冗余率和前向冗余所需冗余率之和,获得分配给视频的基础码率(即P帧码率),得到视频基础带宽。通过获取视频的基础带宽,并将视频可用带宽减去该视频基础带宽,可以获得剩余带宽分配重传带宽,如果该剩余带宽分配重传带宽小于0,那么需要提前结束。否则,获得重传预算带宽,并将剩余带宽减去重传预算带宽,进行剩余带宽的目标参考帧的带宽分配,如果获得的剩余带宽小于0,可以提前结束,否则获得目标参考帧所需的带宽。后续同样通过将剩余带宽减去重传带宽,如果剩余带宽小于0,可以提前结束;否则,获得前向冗余所需的带宽,并为前向冗余分配相应的带宽。
基于上述实施例,在本公开提供的又一实施例中,还提供了一种数据传输方法,如图2所示,该方法可以应用于接收端,该方法可以包括以下步骤:
在步骤S210中,获取发送端发送的多媒体数据,并基于多媒体数据获取可解码帧信息。
实施例中,发送端会向接收端发送多媒体数据,实施例中可以以该多媒体数据为视频为例进行说明,实施例不限于此。
在步骤S220中,向发送端发送可解码帧信息。
实施例中,发送端在接收视频帧的过程中,如果接收到的视频帧为可以解码的视频帧,可以向发送端发送包含该可以解码的视频帧的帧号的可解码帧信息。发送端可以在接收到可以解码的视频帧时立即向发送端发送可解码帧信息,还可以每隔一段时间向发送端发送一次可解码帧信息,该可解码帧信息可以包括历史多个可解帧的帧号。由于可解码帧信息包含可解帧的帧号,数据量不是很大,因此不会对网络传输造成太大影响。
在步骤S230中,获取发送端发送的目标参考帧,并基于目标参考帧对多媒体数据进行数据恢复。
接收端通过向发送端发送可解码帧信息,使得发送端可以基于接收到的可解码帧信息生成目标参考帧,这样在接收端发生丢包等情况下,可以基于该目标参考帧实现对多媒体数据的数据快速恢复。
本公开实施例提供的数据传输方法,通过获取发送端发送的多媒体数据,并基于该多媒体数据可以获得接收到可解码帧信息,并向发送端发送该可解码帧信息。获取发送端发送的目标参考帧,并基于目标参考帧对多媒体数据进行数据恢复。由于该目标参考帧基于可解码帧信息生成,使得在接收端接收到的多媒体数据出现丢包现象时,接收端可以根据接收到的目标参考帧实现对丢包数据的快速恢复,便于解码器可以对多媒体数据进行解码,进而避免出现视频卡顿等现象。
基于上述实施例,在本公开提供的实施例中,接收端还可以主动向发送端发送目标参考帧请求。因此,该方法还可以包括以下步骤:
步骤S240,接收端在满足目标条件的情况下,向发送端发送目标参考帧请求。
实施例中,该目标条件可以包括:超过目标时长未接收到可解码帧和存在丢包情况中的至少一种情况。
实施例中,可以通过获取多媒体数据中相邻帧之间的帧间隔、网络抖动信息和丢包时长,并基于帧间隔、网络抖动信息和丢包时长确定该目标时长。如果接收端在超过该目标时长的情况下还未接收到可以解码的视频帧,或者接收端在超过该目标时长的情况下还未接收到视频帧,那么接收端就可以向发送端发送目标参考帧请求,便于发送端在接收到该目标参考帧请求时,向接收端发送目标参考帧,使得接收端可以基于该目标参考帧实现对丢包数据的恢复。具体可以参见上述式(1),这里不再赘述。
实施例中,接收端获取发送端发送的多媒体数据,可以数据包的形式传输,接收端通过获取的数据包的序号,通过判断接收到的数据包中是否存在乱序的情况,例如接收到的数据包存在数据包的序号不连续,说明存在丢包的情况。
因此,实施例中在超过目标时长未接收到可解码帧和存在丢包情况中的至少一种情况时,就可以向发送端发送目标参考帧请求,以便发送端在接收到该目标参考帧请求时,向接收端发送基于可解码帧信息生成的目标参考帧,这样接收端可以基于该目标参考帧实现对丢包数据的数据恢复。
在本公开提供的实施例中,接收端还可以主动向发送端发送丢包信息,便于发送端根据该丢包信息向接收端发送目标参考帧。因此,该方法还可以包括以下步骤:
步骤S250,基于多媒体数据获取数据包序号。
步骤S260,基于数据包序号生成丢包信息,并向发送端发送丢包信息。
实施例中,接收端接收到的数据包会携带序号,发送端在向接收端发送数据包时,数据包的序号是连续的,因此接收端在接收发送端发送的数据包时,如果基于数据包的序号存在数据包不连续的情况,说明有数据包在传输的过程中存在数据包丢失的情况,否则说明书不存在数据包丢失的情况。这样可以根据接收到的数据包序号生成丢包信息,并向发送端发送丢包信息。
基于上述实施例,在本公开提供的又一实施例中,如图3所示,还提供了一种数据传输方法,该方法可以应用于发送端,该方法可以包括以下步骤:
在步骤S310中,向接收端发送多媒体数据,并获取接收端发送的可解码帧信息。
在步骤S320中,基于可解码帧信息生成目标参考帧,并向接收端发送目标参考帧。
实施例中,发送端可以向接收端发送多媒体数据,例如,发送端可以向接收端发送音视频数据,并且发送端可以获取接收端发送的可解码帧信息。
实施例中,该可解码帧信息包含接收端接收到的可解帧的帧号,这样发送端可以根据可解码帧信息中可解帧的帧号获知接收端当前都接收端到了哪些可解帧。进而发送端可以根据该可解码帧信息生成目标参考帧,该目标参考帧可以是关键帧或者长期参考帧等,并向接收端发送该目标参考帧。这样接收端可以根据接收到目标参考帧实现对丢包数据的快速恢复。
实施例中,发送端可以在接收到接收端发送的目标参考帧请求的情况下,或者在接收到接收端发送的丢包信息的情况下,向接收端发送目标参考帧。由于发送端在接收到接收端发送的目标参考帧请求或者丢包信息时,说明接收端存在丢包现象,需要尽快对丢包数据进行数据恢复,因此发送端需要在上述情况下向接收端发送目标参考帧,以便接收端可以基于接收到的目标参考帧实现对丢包是数据的数据恢复。
实施例中,在发送端基于可解码帧信息生成目标参考帧的过程中,可以通过获取生成目标参考帧的间隔时长,并基于间隔时长生成目标参考帧。其中,该间隔时长与距离目标时刻之间的时长正相关,该目标时刻包括接收到接收端发送丢包信息的时刻。例如,发送端在接收到丢包信息时对应的时刻,或者该丢包信息中携带的发送时刻。另外,该目标时刻还可以包括发送端在接收到目标参考帧请求对应的时刻,或者目标参考帧请求中携带的发送时刻。
实施例中,该目标参考帧可以是关键帧或者是长期参考帧。发送端在确定是编关键帧或者编长期参考帧作为目标参考帧时,可以考虑二者的数据量大小,可以选择数据量较小的作为目标参考帧。例如,可以获取基于可解码帧信息生成的关键帧的第一数据量,及基于可解码帧信息生成的长期参考帧的第二数据量。并在第一数据量大于第二数量的情况下,将长期参考帧确定为目标参考帧;或者,在第一数据量不大于第二数量的情况下,将关键帧确定为目标参考帧。发送端可以预先获得所需编关键帧或者编长期参考帧的数据量大小,并基于二者数据量的大小选择编关键帧或者编长期参考帧作为目标参考帧。当然,为了尽量降低计算的复杂度,在判断二者数据量的大小时,可以参考前一帧的关键帧和长期参考帧(如SP帧)的数据量的大小,这样可以避免还需要同时编关键帧和编长期吃参考帧,能够降低计算量。
在本公开提供的实施例中,还可以根据当前的可用带宽,并将可用带宽合理进行分配,例如将可用带宽按照优先级的顺序分别分配视频的基础码率(包括P帧码率),然后再分配重传带宽、目标参考帧和前向冗余的带宽等。因此,在视频传输的过程中,可以获取当前可用带宽,并在当前可用带宽大于阈值的情况下,为目标参考帧分配目标带宽,并基于目标带宽向接收端发送目标参考帧。在视频传输过程中,视频的传输已经占用了基础码率的带宽,因此通过检测当前可用带宽是否大于阈值,便于为发送目标参考帧合理分配带宽。例如在当前可用带宽小于阈值时,说明当前可用带宽太小,就可以停止发送目标参考帧,避免网络卡顿的加剧,否则,就可以通过当前可用带宽为目标参考帧分配带宽进行网络传输。
在采用对应各个功能划分各个功能模块的情况下,本公开实施例提供了一种数据传输装置,该数据传输装置可以为服务器或应用于服务器的芯片。图4为本公开一示例性实施例提供的数据传输装置的功能模块示意性框图。如图4所示,所述装置用于接收端,该数据传输装置包括:
多媒体数据获取模块11,用于获取发送端发送的多媒体数据;
可解码帧信息获取模块12,用于基于所述多媒体数据获取可解码帧信息;
信息发送模块13,用于向所述发送端发送所述可解码帧信息;
目标参考帧接收模块14,用于获取所述发送端发送的目标参考帧;
数据恢复模块15,用于基于所述目标参考帧对所述多媒体数据进行数据恢复。
在本公开提供的又一实施例中,所述装置还包括:
在满足目标条件的情况下,向所述发送端发送目标参考帧请求。
在本公开提供的又一实施例中,所述目标条件包括:超过目标时长未接收到可解码帧和存在丢包情况中的至少一种情况。
在本公开提供的又一实施例中,所述装置还包括:
数据获取模块,用于获取所述多媒体数据中相邻帧之间的帧间隔、网络抖动信息和丢包时长;
目标时长确定模块,用于基于所述帧间隔、网络抖动信息和丢包时长确定所述目标时长。
在本公开提供的又一实施例中,所述装置还包括:
序号接收模块,用于基于所述多媒体数据获取数据包序号;
丢包信息发送模块,用于基于所述数据包序号生成丢包信息,并向所述发送端发送所述丢包信息。
基于上述实施例,在采用对应各个功能划分各个功能模块的情况下,本公开实施例提供了一种数据传输装置,该数据传输装置可以为服务器或应用于服务器的芯片。该装置用于发送端,该数据传输装置包括:
多媒体数据发送模块,用于向接收端发送多媒体数据;
信息获取模块,用于获取所述接收端发送的可解码帧信息;
目标参考帧生成模块,用于基于所述可解码帧信息生成目标参考帧;
目标参考帧发送模块,用于向所述接收端发送所述目标参考帧。
在本公开提供的又一实施例中,所述目标参考帧发送模块,具体用于:
在接收到所述接收端发送的目标参考帧请求的情况下,或者在接收到所述接收端发送的丢包信息的情况下,向所述接收端发送所述目标参考帧。
在本公开提供的又一实施例中,所述目标参考帧生成模块,具体用于:
获取生成目标参考帧的间隔时长;所述间隔时长与距离目标时刻之间的时长正相关,所述目标时刻包括接收到所述接收端发送丢包信息的时刻;
基于所述间隔时长生成所述目标参考帧。
在本公开提供的又一实施例中,所述目标参考帧包括关键帧或长期参考帧。
在本公开提供的又一实施例中,所述装置还包括处理模块,所述处理模块具体终于:
获取基于所述可解码帧信息生成的关键帧的第一数据量,及基于所述可解码帧信息生成的长期参考帧的第二数据量;
在所述第一数据量大于所述第二数量的情况下,将所述长期参考帧确定为所述目标参考帧;
或者,在所述第一数据量不大于所述第二数量的情况下,将所述关键帧确定为所述目标参考帧。
在本公开提供的又一实施例中,所述目标参考帧发送模块,具体用于:
获取当前可用带宽;
在所述当前可用带宽大于阈值的情况下,为所述目标参考帧分配目标带宽,并基于所述目标带宽向所述接收端发送目标参考帧。
有关装置部分,与上述方法实施例相对应,具体参见方式实施例的对应描述,这里不再赘述。
本公开实施例还提供一种电子设备,包括:至少一个处理器;用于存储所述至少一个处理器可执行指令的存储器;其中,所述至少一个处理器被配置为执行所述指令,以实现本公开实施例公开的上述方法。
图5为本公开一示例性实施例提供的电子设备的结构示意图。如图5所示,该电子设备1800包括至少一个处理器1801以及耦接至处理器1801的存储器1802,该处理器1801可以执行本公开实施例公开的上述方法中的相应步骤。
上述处理器1801还可以称为中央处理单元(central processing unit,CPU),其可以是一种集成电路芯片,具有信号的处理能力。本公开实施例公开的上述方法中的各步骤可以通过处理器1801中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1801可以是通用处理器、数字信号处理器(digital signal processing,DSP)、ASIC、现成可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本公开实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储器1802中,例如随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质。处理器1801读取存储器1802中的信息,结合其硬件完成上述方法的步骤。
另外,根据本公开的各种操作/处理在通过软件和/或固件实现的情况下,可从存储介质或网络向具有专用硬件结构的计算机***,例如图6所示的计算机***1900安装构成该软件的程序,该计算机***在安装有各种程序时,能够执行各种功能,包括诸如前文所述的功能等等。图6为本公开一示例性实施例提供的计算机***的结构框图。
计算机***1900旨在表示各种形式的数字电子的计算机设备,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图6所示,计算机***1900包括计算单元1901,该计算单元1901可以根据存储在只读存储器(ROM)1902中的计算机程序或者从存储单元1908加载到随机存取存储器(RAM)1903中的计算机程序,来执行各种适当的动作和处理。在RAM 1903中,还可存储计算机***1900操作所需的各种程序和数据。计算单元1901、ROM 1902以及RAM 1903通过总线1904彼此相连。输入/输出(I/O)接口1905也连接至总线1904。
计算机***1900中的多个部件连接至I/O接口1905,包括:输入单元1906、输出单元1907、存储单元1908以及通信单元1909。输入单元1906可以是能向计算机***1900输入信息的任何类型的设备,输入单元1906可以接收输入的数字或字符信息,以及产生与电子设备的用户设置和/或功能控制有关的键信号输入。输出单元1907可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。存储单元1908可以包括但不限于磁盘、光盘。通信单元1909允许计算机***1900通过网络诸如因特网的与其他设备交换信息/数据,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信收发机和/或芯片组,例如蓝牙TM设备、WiFi设备、WiMax设备、蜂窝通信设备和/或类似物。
计算单元1901可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1901的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1901执行上文所描述的各个方法和处理。例如,在一些实施例中,本公开实施例公开的上述方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1908。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1902和/或通信单元1909而被载入和/或安装到电子设备1900上。在一些实施例中,计算单元1901可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行本公开实施例公开的上述方法。
本公开实施例还提供一种计算机可读存储介质,其中,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行本公开实施例公开的上述方法。
本公开实施例中的计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的程序。上述计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。更具体的,上述计算机可读存储介质可以包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
本公开实施例还提供一种计算机程序产品,包括计算机程序,其中,所述计算机程序被处理器执行时实现本公开实施例公开的上述方法。
在本公开的实施例中,可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络(包括局域网(LAN)或广域网(WAN))连接到用户计算机,或者,可以连接到外部计算机。
附图中的流程图和框图,图示了按照本公开各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的模块、部件或单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块、部件或单元的名称在某种情况下并不构成对该模块、部件或单元本身的限定。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示例性的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上***(SOC)、复杂可编程逻辑设备(CPLD)等等。
以上描述仅为本公开的一些实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
虽然已经通过示例对本公开的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本公开的范围。本领域的技术人员应该理解,可在不脱离本公开的范围和精神的情况下,对以上实施例进行修改。本公开的范围由所附权利要求来限定。

Claims (15)

1.一种数据传输方法,其特征在于,所述方法用于接收端,所述方法包括:
获取发送端发送的多媒体数据,并基于所述多媒体数据获取可解码帧信息;
向所述发送端发送所述可解码帧信息;
获取所述发送端发送的目标参考帧,并基于所述目标参考帧对所述多媒体数据进行数据恢复。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在满足目标条件的情况下,向所述发送端发送目标参考帧请求。
3.根据权利要求2所述的方法,其特征在于,所述目标条件包括:超过目标时长未接收到可解码帧和存在丢包情况中的至少一种情况。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
获取所述多媒体数据中相邻帧之间的帧间隔、网络抖动信息和丢包时长;
基于所述帧间隔、网络抖动信息和丢包时长确定所述目标时长。
5.根据权利要求1~4任一所述的方法,其特征在于,所述方法还包括:
基于所述多媒体数据获取数据包序号;
基于所述数据包序号生成丢包信息,并向所述发送端发送所述丢包信息。
6.一种数据传输方法,其特征在于,所述方法用于发送端,所述方法包括:
向接收端发送多媒体数据,并获取所述接收端发送的可解码帧信息;
基于所述可解码帧信息生成目标参考帧,并向所述接收端发送所述目标参考帧。
7.根据权利要求6所述的方法,其特征在于,所述向所述接收端发送所述目标参考帧,包括:
在接收到所述接收端发送的目标参考帧请求的情况下,或者在接收到所述接收端发送的丢包信息的情况下,向所述接收端发送所述目标参考帧。
8.根据权利要求7所述的方法,其特征在于,所述基于所述可解码帧信息生成目标参考帧,包括:
获取生成目标参考帧的间隔时长;所述间隔时长与距离目标时刻之间的时长正相关,所述目标时刻包括接收到所述接收端发送丢包信息的时刻;
基于所述间隔时长生成所述目标参考帧。
9.根据权利要求6所述的方法,其特征在于,所述目标参考帧包括关键帧或长期参考帧。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
获取基于所述可解码帧信息生成的关键帧的第一数据量,及基于所述可解码帧信息生成的长期参考帧的第二数据量;
在所述第一数据量大于所述第二数量的情况下,将所述长期参考帧确定为所述目标参考帧;
或者,在所述第一数据量不大于所述第二数量的情况下,将所述关键帧确定为所述目标参考帧。
11.根据权利要求6所述的方法,其特征在于,所述向所述接收端发送所述目标参考帧,包括:
获取当前可用带宽;
在所述当前可用带宽大于阈值的情况下,为所述目标参考帧分配目标带宽,并基于所述目标带宽向所述接收端发送目标参考帧。
12.一种数据传输装置,其特征在于,所述装置用于接收端,所述装置包括:
多媒体数据获取模块,用于获取发送端发送的多媒体数据;
可解码帧信息获取模块,用于基于所述多媒体数据获取可解码帧信息;
信息发送模块,用于向所述发送端发送所述可解码帧信息;
目标参考帧接收模块,用于获取所述发送端发送的目标参考帧;
数据恢复模块,用于基于所述目标参考帧对所述多媒体数据进行数据恢复。
13.一种数据传输装置,其特征在于,所述装置用于发送端,所述装置包括:
多媒体数据发送模块,用于向接收端发送多媒体数据;
信息获取模块,用于获取所述接收端发送的可解码帧信息;
目标参考帧生成模块,用于基于所述可解码帧信息生成目标参考帧;
目标参考帧发送模块,用于向所述接收端发送所述目标参考帧。
14.一种电子设备,其特征在于,包括:
至少一个处理器;
用于存储所述至少一个处理器可执行指令的存储器;
其中,所述至少一个处理器被配置为执行所述指令,以实现如权利要求1-11中任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1-11中任一项所述的方法。
CN202311286847.6A 2023-10-07 2023-10-07 数据传输方法、装置、电子设备及存储介质 Pending CN117336534A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311286847.6A CN117336534A (zh) 2023-10-07 2023-10-07 数据传输方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311286847.6A CN117336534A (zh) 2023-10-07 2023-10-07 数据传输方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN117336534A true CN117336534A (zh) 2024-01-02

Family

ID=89278645

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311286847.6A Pending CN117336534A (zh) 2023-10-07 2023-10-07 数据传输方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN117336534A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117520252A (zh) * 2024-01-08 2024-02-06 芯瞳半导体技术(山东)有限公司 一种通信控制方法、***级芯片、电子设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117520252A (zh) * 2024-01-08 2024-02-06 芯瞳半导体技术(山东)有限公司 一种通信控制方法、***级芯片、电子设备及存储介质
CN117520252B (zh) * 2024-01-08 2024-04-16 芯瞳半导体技术(山东)有限公司 一种通信控制方法、***级芯片、电子设备及存储介质

Similar Documents

Publication Publication Date Title
US10819766B2 (en) Voice encoding and sending method and apparatus
US10924745B2 (en) Image processing method and device
US9369255B2 (en) Method and apparatus for reducing feedback and enhancing message dissemination efficiency in a multicast network
CN107277423B (zh) 丢包重传的方法及装置
CN107342848B (zh) 一种自适应码流传输方法、装置及设备
CN106817585B (zh) 一种利用长期参考帧的视频编码方法、电子设备和***
CN111147606B (zh) 数据传输的方法、装置、终端及存储介质
CN117336534A (zh) 数据传输方法、装置、电子设备及存储介质
CN111263153B (zh) 视频编码方法、装置、设备及存储介质
CN111629210A (zh) 一种数据处理的方法、装置及电子设备
CN114039703B (zh) 数据传输方法、装置、设备和介质
US10313083B2 (en) Method for hybrid automatic repeat request process, network device and terminal device
CN104601521A (zh) 用于动态选择通信传输协议的方法、装置和***
CN111082896A (zh) 一种数据传输方法及发送、接收装置
US11546884B2 (en) Method and device for determining time-frequency resource preemption, user equipment and base station
CN110996035B (zh) 信息发送方法及装置
CN107566795A (zh) 一种提高实时画面流畅度的方法、装置及***
CN103929682A (zh) 一种在视频直播***中设置关键帧的方法及装置
CN110912922B (zh) 一种图像传输方法、装置、电子设备及存储介质
CN111327864A (zh) 一种视频通话控制方法、装置、终端设备及存储介质
CN107566291B (zh) 组播传输方法、装置、电子设备及存储介质
US10003470B2 (en) Method and terminal for transmitting and receiving data
CN106937168B (zh) 一种利用长期参考帧的视频编码方法、电子设备及***
CN116996649B (zh) 投屏方法、装置、存储介质及电子设备
CN109451796B (zh) 传输上行业务数据的方法、装置和***

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination