CN106713913B - 视频图像帧发送方法及装置、视频图像帧接收方法及装置 - Google Patents

视频图像帧发送方法及装置、视频图像帧接收方法及装置 Download PDF

Info

Publication number
CN106713913B
CN106713913B CN201510907120.4A CN201510907120A CN106713913B CN 106713913 B CN106713913 B CN 106713913B CN 201510907120 A CN201510907120 A CN 201510907120A CN 106713913 B CN106713913 B CN 106713913B
Authority
CN
China
Prior art keywords
frame
frames
difference
sequence
key
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
CN201510907120.4A
Other languages
English (en)
Other versions
CN106713913A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201510907120.4A priority Critical patent/CN106713913B/zh
Publication of CN106713913A publication Critical patent/CN106713913A/zh
Application granted granted Critical
Publication of CN106713913B publication Critical patent/CN106713913B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2385Channel allocation; Bandwidth allocation
    • 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/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26208Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
    • H04N21/26216Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints involving the channel capacity, e.g. network bandwidth

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明实施例公开了一种视频图像帧发送方法,包括:采集原始图像帧,将所述采集的原始图像帧依次编码成差别帧;获取预设的分轨序列位置,并行地将处于所述分轨序列位置的原始图像帧编码成下一个图像组的关键帧;切分所述关键帧,并将切分得到的数据作为附加数据添加到关键帧对应的原始图像帧的分轨序列位置后序的差别帧上;依次发送所述差别帧和所述添加了附加数据的差别帧。本发明还公开了一种视频图像帧发送装置以及相应的视频图像帧接收方法及装置。采用本发明,可使得视频数据的传输过程的数据流量波动更加平滑,带宽利用率更高,从而减少在线视频播放的卡顿现象。

Description

视频图像帧发送方法及装置、视频图像帧接收方法及装置
技术领域
本发明涉及视频编码技术领域,尤其涉及一种视频图像帧发送方法及装置、。
背景技术
随着网络技术的发展,用户上网的带宽越来越大,因此涌现了越来越多的在线视频网站。用户无需下载,即可通过浏览器或其他视频应用客户端在线观看视频。视频网站的服务器为了减少视频传输中无谓的数据重复,通常会使用视频压缩算法对视频流进行压缩后再进行传输(例如现有的H.264或H.265视频压缩算法),从而使得传输的数据量较小,提高带宽利用率。
然而,发明人经研究发现,传统技术中的视频图像帧发送方法至少存在以下问题:
传统的视频传输中的数据压缩算法通常采用差值编码,即对于一个图像组,先将位于图像组(Group of pictures,GOP)首位的图像帧进行帧内压缩编码生成关键帧(即I帧,I frame,帧内编码帧),对于图像序列中后续的图像帧,通过计算其与图像组前序或后序的图像帧的差值生成差别帧(即P帧或B帧,P帧为前向估计差别帧,B帧为双向估计差别帧)。因此,关键帧的数据量通常比较大(直接编码原始图像帧中的每个像素),而差别帧的数据量则较小(仅对差值部分的像素进行编码),如图1所示,得到的编码数据通常为的数据流量波动起伏较大的波浪形数据,由于在线视频播放的连续性,导致关键帧的传输速度将低于视频播放的码率,因此带宽利用率较低,对传输的带宽提出了较高的要求,且在网络质量较差时,较容易出现视频卡顿的情况。
发明内容
基于此,为了解决上述视频数据传输的带宽利用率较低的技术问题,特提供了一种视频图像帧发送方法。
一种视频图像帧发送方法,包括:
采集原始图像帧,将所述采集的原始图像帧依次编码成差别帧;
获取预设的分轨序列位置,并行地将处于所述分轨序列位置的原始图像帧编码成下一个图像组的关键帧;
切分所述关键帧,并将切分得到的数据作为附加数据添加到关键帧对应的原始图像帧的分轨序列位置后序的差别帧上;
依次发送所述差别帧和所述添加了附加数据的差别帧。
此外,为了解决上述视频数据传输的带宽利用率较低的技术问题,特提供了一种视频图像帧发送装置。
一种视频图像帧发送装置,包括:
图像采集模块,用于采集原始图像帧,将所述采集的原始图像帧依次编码成差别帧;
关键帧编码模块,用于获取预设的分轨序列位置,并行地将处于所述分轨序列位置的原始图像帧编码成下一个图像组的关键帧;
关键帧切分模块,用于切分所述关键帧,并将切分得到的数据作为附加数据添加到关键帧对应的原始图像帧的分轨序列位置后序的差别帧上;
图像帧发送模块,用于依次发送所述差别帧和所述添加了附加数据的差别帧。
相应的,为了解决上述视频数据传输的带宽利用率较低的技术问题,特提供了一种视频图像帧接收方法。
一种视频图像帧接收方法,所述方法还包括:
依次接收差别帧,提取所述接收的差别帧包含的附加数据并缓存;
根据所述缓存的附加数据还原关键帧;
获取接收到的差别帧的序列位置;
在该序列位置为图像组起始的序列位置时,根据所述还原的关键帧解码得到原始图像帧。
相应的,为了解决上述视频数据传输的带宽利用率较低的技术问题,特提供了一种视频图像帧接收装置。
一种视频图像帧接收装置,所述装置还包括:
图像帧接收模块,用于依次接收差别帧,提取所述接收的差别帧包含的附加数据并缓存
关键帧还原模块,用于根据所述缓存的附加数据还原关键帧;
序列位置获取模块,用于获取接收到的差别帧的序列位置;
图像组起始图像帧解码模块,用于在该序列位置为图像组起始的序列位置时,根据所述还原的关键帧解码得到原始图像帧。
实施本发明实施例,将具有如下有益效果:
采用了上述视频发送和接收方法之后,数据量较大的关键帧被平摊到了数据量相对较小的差别帧上进行发送,发送方在传输位于关键帧前序的连续的差别帧时,即可将该关键帧的数据作为差别帧的附加数据发送给接收方,接收方则可通过将该差别帧上附带的附加数据进行拼接还原得到数据量较大的关键帧。使得传输过程的数据流量波动更加平滑,无需根据接收端的播放码率而在短时间内传输大量数据,因此对带宽的要求较小,提高了带宽利用率,从而减少了在线视频播放过程中的卡顿现象。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
其中:
图1为传统技术中视频图像帧差值编码前后帧数据量大小对比图;
图2为一个实施例中一种视频图像帧发送方法的流程图;
图3为一个实施例中切分关键帧并添加到其前序差别帧进行发送的过程示意图;
图4为一个实施例中两路并发地对原始图像序列编码后切分关键帧并添加到其前序差别帧进行发送的过程示意图;
图5为一个实施例中一种视频图像帧发送装置的结构示意图;
图6为一个实施例中一种视频图像帧接收方法的流程图;
图7为一个实施例中一种视频图像帧接收装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
视频文件或视频流由图像序列组成,未经过压缩编码的视频文件或视频流原始图像在编码前,每一帧的数据量均较大。如图1所示,经过压缩编码后,视频文件或视频流中的仅关键帧(即图1中的I帧)的数据量较大,而差别帧的数据量较小,如图1中P帧所示(P帧也就是前向估计差别帧)。
需要说明的是,根据压缩算法的不同,差别帧也可以是B帧,即双向估计差别帧,由于区分P帧和B帧对本发明的实际效果没有实际影响,因此,为方便描述,在后续实施例中,仅以P帧为例表示差别帧,而在实际应用中,根据压缩算法的不同,差别帧既可以是P帧也可以是B帧)。
传统技术中,在实时的视频文件或视频流传输时,为了保证实时性,发送方通常将采集的原始图像帧编码后立即发送,接收方则在接收到数据后,立刻解码然后播放。因此,由图1即可看出,在单位时间(播放每一帧的时间)内传输的数据量在传输I帧时较大,而在传输P帧时较小,造成数据的传输过程的数据流量波动不平滑。且在当带宽限定,接收端播放码率较高时,若I帧的数据量过大,大于接收端播放码率对应的单位时间的数据传输量时(如图1中虚线位置),则在I帧无法在规定的时间内传输完毕,从而会造成视频在播放时卡顿。
为解决上述传统技术中视频数据的传输过程的数据流量波动起伏较大,导致带宽利用率较低,从而容易造成播放时卡顿的技术问题,在一个实施例中,特提出了一种新的视频图像帧发送方法,该方法的执行可依赖于计算机程序,可运行于冯诺依曼体系的计算机系统之上。该计算机系统则可以是在线视频点播系统的服务器、监控系统的实时图像采集设备等可接入网络用于发送视频数据的计算机设备。
具体的,在本实施例中,该视频图像帧发送方法如图2所示,包括:
步骤S102:采集原始图像帧,将采集的原始图像帧依次编码成差别帧。
如图3所示,原始图像帧序列即为摄像头采集的图像帧,摄像头采集的视频由按照时间顺序依次采集的图像帧构成(如图1中的A序列)。由于摄像头采集的图像帧为通过光学成像得到原始图像,未经过编码,因此数据量通常较大。而在图1中,摄像头每采集一幅原始图像帧,则对其进行差值编码。如图3中的C序列。也就是说,采集图像帧和编码图像中的工作并行执行,B序列伴随着A序列生成。
需要说明的是,在本实施例中,总是会将原始图像帧编码成差别帧,而编码差别帧时作为参考的图像帧可以是前序的差别帧,也可以是并发编码得到的关键帧(后续的步骤将详细介绍)。且在本实施例中,采集原始图像帧,将采集的原始图像帧依次编码成差别帧的步骤为持续的过程,伴随着摄像头开始工作进行视频采集而启动,伴随着摄像头结束工作停止视频采集而终止,对于后续的步骤S104至步骤S108并没有严格的执行先后顺序的限定。
步骤S104:获取预设的分轨序列位置,并行地将处于分轨序列位置的原始图像帧编码成下一个图像组的关键帧。
步骤S106:切分关键帧,并将切分得到的数据作为附加数据添加到关键帧对应的原始图像帧的分轨序列位置后序的差别帧上。
步骤S108:依次发送差别帧和添加了附加数据的差别帧。
如图3所示,在传统技术中,若设定了图像组长度固定为5,则依次每编码一个关键帧,则后序相应地编码4个差别帧。例如请参考图3中的B序列。
而在本实施例中,请参考图3中的C序列,若预设的分轨序列位置为6(分轨序列位置即为需要并行编码得到关键帧的序列位置),图像组长度为9,则对于图3中A序列的序列位置为6的原始图像帧,则不仅需要执行前述步骤S102,即根据前序的差别帧编码该位置的原始图像帧得到差别帧的步骤,还需要并行地将该序列位置为6的原始图像帧编码成下一个图像组的关键帧。
也就是说,参考图3所示,由于预设的图像组长度为9,则当摄像头采集到序列位置为10的原始图像帧,对其进行差值编码生成差别帧时,将以根据序列位置为6的原始图像帧并行编码得到的关键帧作为参考,也就是说,该序列位置为10的差别帧已属于下一个图像组,而该下一个图像组的关键帧即为并行地对序列位置为6的原始图像进行编码得到的关键帧(每个图像组均包含一个作为参考的关键帧和依次排列的差别帧)。
该分轨序列位置可设置为周期性的值。例如,若图像组长度设置为固定的L,则该分轨序列位置可设置为n×(L-1)+K。如上例中,若图像组长度设置为固定的9,K设置为6,则该分轨序列位置即为6、14、22….等。
在另一个实施例中,分轨序列位置也可以是伴随着编码过程变化的值,可由编码程序根据对原始图像帧的数据量进行预分析后设定。例如,将采集的原始图像帧依次编码成差别帧的步骤还包括:
通过判断生成差别帧数据量是否大于或等于阈值,若是,则将该差别帧对应的原始图像并行地编码成下一个图像组的关键帧。
也就是说,可根据差别帧的数据量确定需要并行编码得到关键帧的序列位置。如图3所示,如在序列位置为6时,通过预分析判断得到该差别帧的数据量较大,则可将该序列位置6设置为需要并行编码得到关键帧的序列位置(即分轨序列位置),从而在编码序列位置6的原始图像帧时,可并行地再进行帧内编码得到作为下一个图像组的关键帧。
需要说明的是,上述方案也可结合执行,可预先设置初始的需要进行并行编码关键帧的分轨序列位置,在编码过程中,再根据差别帧的数据量调整需要进行并行编码关键帧的分轨序列位置,两者并不矛盾。
如前述介绍,为了保证视频聊天或监控应用的实时性,每采集一帧图像即对其进行编码,每编码一帧图像即将其进行传输,发送给接收方。参考图3所示,对于分轨序列位置为6的图像帧并行编码得到的关键帧和差别帧,差别帧照常发送,而关键帧I则被切分成多个数据段,如图3中的I1、I2、I3和I4,并附加在后续的序列位置为6、7、8、9的差别帧上(需要说明的是,若编码关键帧的时间较长,也可附加在后续的7、8、9位置或者8、9位置的差别帧上,并不限于该分轨序列位置后序的所有的差别帧),得到添加了附加数据的差别帧上进行发送,也就是说,随着摄像头采集原始图像帧的进行,时刻依次抵达序列位置为6、7、8、9时,不仅发送依次进行差值编码得到的P帧,在每个时刻还同时发送该附加数据,即随着时刻的抵达依次发送P6+I1、P7+I2、P8+I3和P9+I4(P6、P7、P8和P9为序列位置6、7、8、9原始图像帧编码得到的差别帧)。
将关键帧附加在差别帧上时,可在差别帧的数据段后先添加分隔符(自定义的一段标识性数据),然后继续附加切分得到的关键帧的字数据段。
接收方在接收到该差别帧后,判断其是否包含该分隔符,若包含,则表示该差别帧包含附加数据,从而提取该附加数据,直至检测到接收了不包含分隔符的差别帧,即表示附加数据已接收完毕,然后可按照顺序将附加数据进行拼接,即可还原该关键帧。而对于该未添加附加数据的差别帧,则意味着已进入下一图像组,可参考该还原的关键帧对其进行解码,从而得到解码后的图像帧。
如图3中,接收的终端在连续接收到P6+I1、P7+I2、P8+I3和P9+I4后,即可提取得到I1、I2、I3和I4的数据,从而还原得到下一图像组的关键帧,而在接收P10时,由于其没有附加数据,则可根据判定已进入下一图像组,可根据前述还原得到的关键帧对其进行解码(参考前述的编码过程可知,P10的编码过程也并不是参考的其前序的P9,而是参考该关键帧,因此图像能够顺利解码),从而得到解码的图像帧。
经上述编码后进行传输,由图3所示,发送方并不需要在实时播放速率限定的狭小时间区间内将数据量较大的关键帧全部传输完毕,而可伴随着多个数据量较小的差别帧进行传输,因此瞬时传输的数据得到了分散,实时播放速率限定的狭小时间区间内传输的数据量也可低于限定值,在实时播放时,则不容易引起卡顿。也就是说,为了避免播放卡顿,需要的带宽可减小,而不用为了在实时播放速率限定的狭小时间区间传输完成关键帧而浪费较多的带宽,从而提高了带宽利用率。
具体的,在本实施例中,将采集的原始图像帧依次编码成差别帧的步骤还包括:
判断切分得到的数据是否作为附加数据发送完毕,若是,则根据生成的下一个图像组的关键帧将采集的原始图像帧依次编码成差别帧。
也就是说,可将生成的关键帧存储在缓存中;在判断添加了附加数据的差别帧是否发送完毕时,可判断缓存中是否剩余切分关键帧得到的数据,若否,则发送完毕。
如前所述,为了保证视频聊天或监控应用的实时性,每采集一帧图像即对其进行编码,每编码一帧图像即将其进行传输,发送给接收方。因此,可将并行编码得到的关键帧存储在缓存中,在发送后序的差别帧时,则依次切分缓存中的关键帧的部分数据段作为附加数据添加到该差别帧上进行发送,若在某时刻检测到缓存中的被切分的关键帧的数据已发送完毕,则根据该作为下一个图像组的关键帧对当前序列位置的原始图像帧进行编码。
如图3中,在序列位置为6时,并行编码的到了作为下一图像组的关键帧,可将其拷贝切分为I1、I2、I3和I4的数据缓存在缓存中,随着摄像头的采集,在序列位置为6、7、8和9的时刻,则依次取出I1、I2、I3和I4的数据作为附加数据发送P6+I1、P7+I2、P8+I3和P9+I4。到序列位置为10的时刻,由于检测到缓存中的I1、I2、I3和I4的数据已发送完毕,则在序列位置为10的原始图像帧进行编码时,可参考该作为下一图像组的关键帧(即I1+I2+I3+I4的数据)进行差值编码。
进一步的,并行地将处于分轨序列位置的原始图像帧编码成下一个图像组的关键帧的步骤包括:
启动并发线程/进程对分轨序列位置的原始图像帧编码;
根据生成的下一个图像组的关键帧将采集的原始图像帧依次编码成差别帧的步骤包括:
通过该并发线程/进程将采集的原始图像帧依次编码成差别帧。
在本实施例中,可由多路线程/进程对原始图像帧进行编码。如图3中,随着摄像头的采集抵达序列位置为1至5时,由线程/进程A持续对原始图像帧进行编码,而随着摄像头的采集抵达序列位置为6的时刻时,可创建线程/进程B,或者由线程池/进程池中申请线程/进程B,然后由线程/进程B并行地对序列位置为6的原始图像帧进行帧内编码得到下一个图像组的关键帧,而线程/进程A仍然继续对原始图像帧进行帧间编码得到后续的P6、P7、P8和P9,而抵达序列位置为10的时刻时,线程/进程A经判断下一个图像组的关键帧已发送完毕后,即I1、I2、I3和I4的数据已发送完毕后,则可将其注销或者由线程池/进程池回收,转而由线程/进程B继续根据其编码得到的下一个图像组的关键帧对序列位置为10的原始图像帧进行帧间编码得到P10。当下一个需要并行编码的分轨序列位置到来时,则可创建或申请线程/进程C,以此类推。
优选的,并行地将处于所述分轨序列位置的原始图像帧编码成下一个图像组的关键帧的步骤还包括:
获取分轨序列位置对应的编码参数,根据编码参数将处于序列位置的原始图像帧编码成下一个图像组的关键帧。
如上例中,可为线程/进程设定各自对应的编码参数,由于线程/进程总是在需要并行编码成关键帧的序列位置时创建或申请,因此该编码参数也与分轨序列位置对应。
编码参数可包括码率、压缩比和/或图像组长度等参数。可根据带宽和差别帧的数据量大小来调节编码参数。如上例中,在创建或申请线程/进程B时,若检测到带宽减小,则可为线程/进程B设置较大的压缩比的编码参数,而在创建或申请线程/进程C时,检测到带宽恢复,则可设置较小的压缩比的编码参数。
在本实施例中,将切分得到的数据作为附加数据添加到关键帧对应的原始图像帧的序列位置后序的差别帧上的步骤还包括:
获取预设的图像组长度,根据图像组长度确定分轨序列位置后序的差别帧的数目,将切分得到的数据作为附加数据添加到关键帧对应的原始图像帧的分轨序列位置后序的该数目的差别帧上。
如前所述,图像组长度可预先设定,也可由为编码线程/进程设置的编码参数设定,也可在编码过程中根据具体的编码算法设定。如图3所示,若图像组长度为9,而分轨序列位置为6,则可将根据分轨序列位置编码得到的关键帧平均切分成I1、I2、I3和I4四份,然后附加在P6、P7、P8和P9上。
在一个实施例中,切分关键帧的步骤还可包括:获取带宽参数,根据带宽参数和分轨序列位置后序的差别帧的数据量切分关键帧。
可根据带宽参数计算播放的时间区间内最大可传输的数据量的大小,然后再获取被附加的差别帧的大小,然后根据两者的差值设置切分关键帧的数据量的大小,从而可更高效地利用带宽资源,也可尽快的将下一个图像组的关键帧传输至接收方,从而避免编码关键帧的原始图像帧和以其作为参考编码差别帧的原始图像帧相隔时间过长(如图3中,序列位置为10的图像帧编码得到的差别帧其参考为序列位置为6的图像帧,期间需要经历7、8、9三个图像帧,若序列位置为6的图像帧并行编码得到的关键帧能够快速传输完毕,则可调整图像组的大小,提前对后序的图像帧根据该关键帧编码差别帧,如图4中,切分成I1、I2和I3即可将该关键帧数据传输完,因此在9位置即可根据该关键帧编码差别帧,即可缩小该时间差距)而导致编码的差别帧数据量较大。
在一个实施例中,为解决上述传统技术中视频数据的传输过程的数据流量波动起伏较大,导致带宽利用率较低,从而容易造成播放时卡顿的技术问题,还相应地提出了一种视频图像帧发送装置,如图5所示,该包括图像采集模块102、关键帧编码模块104、关键帧切分模块106和图像帧发送模块108,其中:
图像采集模块102,用于采集原始图像帧,将所述采集的原始图像帧依次编码成差别帧。
关键帧编码模块104,用于获取预设的分轨序列位置,并行地将处于所述分轨序列位置的原始图像帧编码成下一个图像组的关键帧。
关键帧切分模块106,用于切分所述关键帧,并将切分得到的数据作为附加数据添加到关键帧对应的原始图像帧的分轨序列位置后序的差别帧上。
图像帧发送模块108,用于依次发送所述差别帧和所述添加了附加数据的差别帧。
在本实施例中,图像采集模块102还用于判断所述切分得到的数据是否作为附加数据是否发送完毕,若是,则根据所述生成的下一个图像组的关键帧将所述采集的原始图像帧依次编码成差别帧。
在本实施例中,关键帧编码模块104还用于启动并发线程/进程对所述分轨序列位置的原始图像帧编码;
图像采集模块102还用于通过该并发线程/进程将所述采集的原始图像帧依次编码成差别帧。
在本实施例中,关键帧编码模块104还用于将所述生成的关键帧存储在缓存中。
图像采集模块102还用于判断所述缓存中是否剩余切分所述关键帧得到的数据,若否,则判定发送完毕。
在本实施例中,关键帧编码模块104还用于通过判断生成差别帧数据量是否大于或等于阈值,若是,则将该差别帧对应的原始图像并行地编码成下一个图像组的关键帧。
在本实施例中,关键帧切分模块106还用于获取预设的图像组长度,根据所述图像组长度确定所述分轨序列位置后序的差别帧的数目,将切分得到的数据作为附加数据添加到关键帧对应的原始图像帧的分轨序列位置后序的该数目的差别帧上。
在本实施例中,关键帧编码模块104还用于获取所述分轨序列位置对应的编码参数,根据所述编码参数将处于所述分轨序列位置的原始图像帧编码成下一个图像组的关键帧。
在本实施例中,关键帧切分模块106还用于获取带宽参数,根据所述带宽参数和所述分轨序列位置后序的差别帧的数据量切分所述关键帧。
为解决上述传统技术中视频数据的传输过程数据流量波动起伏较大,导致带宽利用率较低,从而容易造成播放时卡顿的技术问题,在一个实施例中,还相应地提出了一种新的视频图像帧发送方法,该方法的执行可依赖于计算机程序,可运行于冯诺依曼体系的计算机系统之上。
具体的,如图6所示,该方法包括:
步骤S202,依次接收差别帧,提取所述接收的差别帧包含的附加数据并缓存。
步骤S204,根据所述缓存的附加数据还原关键帧。
步骤S206,获取接收到的差别帧的序列位置。
步骤S208,在该序列位置为图像组起始的序列位置时,根据所述还原的关键帧解码得到原始图像帧。
接收的终端在接收到差别帧后,则判断其是否包含附加数据,若是,则将其提取并缓存。如图3所示,若接收的终端在依次接收了序列位置为6、7、8和9的图像帧后,即可提取到附加的I1、I2、I3和I4的数据,从而可根据缓存中的数据还原得到完整的关键帧。在接收序列位置为10的差别帧时,由于该序列位置已为下一个图像组的起始位置,则可根据还原得到的关键帧对序列位置为10的差别帧进行解码得到图像帧。而在接收到序列位置为11的差别帧时,则可根据序列位置为10的差别帧和该关键帧解码得到图像帧。
在一个实施例中,为解决上述传统技术中视频数据的传输过程数据流量波动起伏较大,导致带宽利用率较低,从而容易造成播放时卡顿的技术问题,还相应地提出了一种视频图像帧接收装置,如图7所示,该包括图像帧接收模块102、附加数据提取模块104、关键帧还原模块106和原始图像解码模块108,其中:
图像帧接收模块202,用于图像帧接收模块,用于依次接收差别帧,提取所述接收的差别帧包含的附加数据并缓存
关键帧还原模块204,用于根据所述缓存的附加数据还原关键帧;
序列位置获取模块206,用于获取接收到的差别帧的序列位置;
图像组起始图像帧解码模块208,用于在该序列位置为图像组起始的序列位置时,根据还原的关键帧解码得到原始图像帧。
综上所述,实施本发明实施例,将具有如下有益效果:
采用了上述视频发送和接收方法之后,数据量较大的关键帧被平摊到了数据量相对较小的差别帧上进行发送,发送方在传输位于关键帧前序的连续的差别帧时,即可将该关键帧的数据作为差别帧的附加数据发送给接收方,接收方则可通过将该差别帧上附带的附加数据进行拼接还原得到数据量较大的关键帧。使得传输过程的过程数据流量波动更加平滑,无需根据接收端的播放码率而在短时间内传输大量数据,因此对带宽的要求较小,提高了带宽利用率,从而减少了在线视频播放过程中的卡顿现象。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

Claims (19)

1.一种视频图像帧发送方法,包括:
采集原始图像帧,将所述采集的原始图像帧依次编码成差别帧;
获取预设的分轨序列位置,在将所述分轨序列位置的原始图像帧编码成差别帧的同时,并行地将处于所述分轨序列位置的原始图像帧编码成下一个图像组的关键帧;
切分所述关键帧,并将切分得到的数据作为附加数据添加到关键帧对应的原始图像帧的分轨序列位置后序的差别帧上;
依次发送所述差别帧和所述添加了附加数据的差别帧,所述添加了附加数据的差别帧的数据量小于或者等于播放的时间区间内最大可传输的数据量。
2.根据权利要求1所述的视频图像帧发送方法,其特征在于,所述切分所述关键帧,并将切分得到的数据作为附加数据添加到关键帧对应的原始图像帧的分轨序列位置后序的差别帧上之后还包括:
判断所述切分得到的数据是否作为附加数据发送完毕,若是,则根据所述编码成的下一个图像组的关键帧将所述采集的原始图像帧依次编码成差别帧。
3.根据权利要求2所述的视频图像帧发送方法,其特征在于,所述并行地将处于所述分轨序列位置的原始图像帧编码成下一个图像组的关键帧的步骤包括:
启动并发线程/进程对所述分轨序列位置的原始图像帧编码;
所述根据所述编码成的下一个图像组的关键帧将所述采集的原始图像帧依次编码成差别帧的步骤包括:
通过该并发线程/进程将所述采集的原始图像帧依次编码成差别帧。
4.根据权利要求2所述的视频图像帧发送方法,其特征在于,所述并行地将处于所述分轨序列位置的原始图像帧编码成下一个图像组的关键帧的步骤之后还包括:
将所述关键帧存储在缓存中;
所述判断所述切分得到的数据是否作为附加数据发送完毕的步骤还包括:
判断所述缓存中是否剩余切分所述关键帧得到的数据,若否,则发送完毕。
5.根据权利要求1所述的视频图像帧发送方法,其特征在于,所述将所述采集的原始图像帧依次编码成差别帧的步骤还包括:
通过判断生成差别帧数据量是否大于或等于阈值,若是,则将该差别帧对应的原始图像并行地编码成下一个图像组的关键帧。
6.根据权利要求1所述的视频图像帧发送方法,其特征在于,所述将切分得到的数据作为附加数据添加到关键帧对应的原始图像帧的分轨序列位置后序的差别帧上的步骤还包括:
获取预设的图像组长度,根据所述图像组长度确定所述分轨序列位置后序的差别帧的数目,将切分得到的数据作为附加数据添加到关键帧对应的原始图像帧的分轨序列位置后序的该数目的差别帧上。
7.根据权利要求1所述的视频图像帧发送方法,其特征在于,所述并行地将处于所述分轨序列位置的原始图像帧编码成下一个图像组的关键帧的步骤还包括:
获取所述分轨序列位置对应的编码参数,根据所述编码参数将处于所述分轨序列位置的原始图像帧编码成下一个图像组的关键帧。
8.根据权利要求1所述的视频图像帧发送方法,其特征在于,所述切分所述关键帧的步骤还包括:
获取带宽参数,根据所述带宽参数和所述分轨序列位置后序的差别帧的数据量切分所述关键帧。
9.一种视频图像帧发送装置,其特征在于,包括:
图像采集模块,用于采集原始图像帧,将所述采集的原始图像帧依次编码成差别帧;
关键帧编码模块,用于获取预设的分轨序列位置,在将所述分轨序列位置的原始图像帧编码成差别帧的同时,并行地将处于所述分轨序列位置的原始图像帧编码成下一个图像组的关键帧;
关键帧切分模块,用于切分所述关键帧,并将切分得到的数据作为附加数据添加到关键帧对应的原始图像帧的分轨序列位置后序的差别帧上;
图像帧发送模块,用于依次发送所述差别帧和所述添加了附加数据的差别帧,所述添加了附加数据的差别帧的数据量小于或者等于播放的时间区间内最大可传输的数据量。
10.根据权利要求9所述的视频图像帧发送装置,其特征在于,所述图像采集模块还用于判断所述切分得到的数据是否作为附加数据发送完毕,若是,则根据所述编码的下一个图像组的关键帧将所述采集的原始图像帧依次编码成差别帧。
11.根据权利要求10所述的视频图像帧发送装置,其特征在于,所述关键帧编码模块还用于启动并发线程/进程对所述分轨序列位置的原始图像帧编码;
所述图像采集模块还用于通过该并发线程/进程将所述采集的原始图像帧依次编码成差别帧。
12.根据权利要求10所述的视频图像帧发送装置,其特征在于,所述关键帧编码模块还用于将所述关键帧存储在缓存中;
所述图像采集模块还用于判断所述缓存中是否剩余切分所述关键帧得到的数据,若否,则判定发送完毕。
13.根据权利要求9所述的视频图像帧发送装置,其特征在于,所述关键帧编码模块还用于通过判断生成差别帧数据量是否大于或等于阈值,若是,则将该差别帧对应的原始图像并行地编码成下一个图像组的关键帧。
14.根据权利要求9所述的视频图像帧发送装置,其特征在于,所述关键帧切分模块还用于获取预设的图像组长度,根据所述图像组长度确定所述分轨序列位置后序的差别帧的数目,将切分得到的数据作为附加数据添加到关键帧对应的原始图像帧的分轨序列位置后序的该数目的差别帧上。
15.根据权利要求9所述的视频图像帧发送装置,其特征在于,所述关键帧编码模块还用于获取所述分轨序列位置对应的编码参数,根据所述编码参数将处于所述分轨序列位置的原始图像帧编码成下一个图像组的关键帧。
16.根据权利要求9所述的视频图像帧发送装置,其特征在于,所述关键帧切分模块还用于获取带宽参数,根据所述带宽参数和所述分轨序列位置后序的差别帧的数据量切分所述关键帧。
17.一种视频图像帧接收方法,所述方法还包括:
依次接收差别帧,提取所述接收的差别帧包含的附加数据并缓存,包含附加数据的差别帧的数据量小于或者等于播放码率对应的单位时间的数据传输量;
根据所述缓存的附加数据还原关键帧,所述关键帧由所述接收的差别帧包括的附加数据按照接收顺序拼接得到;
获取接收到的差别帧的序列位置;
在该序列位置为图像组起始的序列位置时,根据所述还原的关键帧解码得到原始图像帧。
18.一种视频图像帧接收装置,其特征在于,所述装置还包括:
图像帧接收模块,用于依次接收差别帧,提取所述接收的差别帧包含的附加数据并缓存,包含附加数据的差别帧的数据量小于或者等于播放码率对应的单位时间的数据传输量;
关键帧还原模块,用于根据所述缓存的附加数据还原关键帧,所述关键帧由所述接收的差别帧包括的附加数据按照接收顺序拼接得到;
序列位置获取模块,用于获取接收到的差别帧的序列位置;
图像组起始图像帧解码模块,用于在该序列位置为图像组起始的序列位置时,根据所述还原的关键帧解码得到原始图像帧。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,执行如权利要求1-8或17中任一项所述的方法。
CN201510907120.4A 2015-12-09 2015-12-09 视频图像帧发送方法及装置、视频图像帧接收方法及装置 Active CN106713913B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510907120.4A CN106713913B (zh) 2015-12-09 2015-12-09 视频图像帧发送方法及装置、视频图像帧接收方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510907120.4A CN106713913B (zh) 2015-12-09 2015-12-09 视频图像帧发送方法及装置、视频图像帧接收方法及装置

Publications (2)

Publication Number Publication Date
CN106713913A CN106713913A (zh) 2017-05-24
CN106713913B true CN106713913B (zh) 2020-01-10

Family

ID=58933189

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510907120.4A Active CN106713913B (zh) 2015-12-09 2015-12-09 视频图像帧发送方法及装置、视频图像帧接收方法及装置

Country Status (1)

Country Link
CN (1) CN106713913B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109218748B (zh) 2017-06-30 2020-11-27 京东方科技集团股份有限公司 视频传输方法、装置及计算机可读存储介质
CN107948654A (zh) 2017-11-21 2018-04-20 广州市百果园信息技术有限公司 视频发送、接收方法和装置及终端
CN112468847B (zh) * 2019-09-06 2022-12-02 中兴通讯股份有限公司 一种多媒体流的特技播放方法、装置和多媒体播放器
CN110662047B (zh) * 2019-10-10 2022-06-21 上海依图网络科技有限公司 图像存储方法及装置、电子设备以及计算机存储介质
CN110830819B (zh) * 2019-11-19 2022-03-25 聚好看科技股份有限公司 编码、解码方法、编码端和解码端
EP3829170A1 (en) 2019-11-29 2021-06-02 Axis AB Encoding and transmitting image frames of a video stream
CN113316028B (zh) * 2020-02-27 2022-03-08 华为技术有限公司 投屏方法、投屏设备及存储介质
CN114501039B (zh) * 2020-11-11 2024-04-16 中移(上海)信息通信科技有限公司 超低时延的视频数据传输方法及装置
CN115701709A (zh) * 2021-08-02 2023-02-10 腾讯科技(深圳)有限公司 视频编码方法、装置、计算机可读介质及电子设备
CN113840091B (zh) * 2021-10-29 2023-07-18 Oppo广东移动通信有限公司 图像处理方法、装置、电子设备和计算机可读存储介质
CN115134629B (zh) * 2022-05-23 2023-10-31 阿里巴巴(中国)有限公司 视频传输方法、系统、设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101127918A (zh) * 2007-09-25 2008-02-20 腾讯科技(深圳)有限公司 一种视频容错控制系统及方法
CN101389028A (zh) * 2008-10-15 2009-03-18 北京航空航天大学 一种基于空域分解的视频帧内编码方法
CN102547375A (zh) * 2010-12-23 2012-07-04 上海讯垒网络科技有限公司 一种快速实现预览h.264编码帧的传输方法
CN102572362A (zh) * 2010-12-15 2012-07-11 盛乐信息技术(上海)有限公司 视频信号传输方法
CN103227926A (zh) * 2013-05-27 2013-07-31 合肥优尔电子科技有限公司 适用于低带宽无线通信信道的视频编码装置及其编码方法
CN103796019A (zh) * 2012-11-05 2014-05-14 北京勤能通达科技有限公司 一种均衡码率编码方法
CN103873869A (zh) * 2012-12-18 2014-06-18 北京市勤能通达科技有限公司 一种码率控制方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101127918A (zh) * 2007-09-25 2008-02-20 腾讯科技(深圳)有限公司 一种视频容错控制系统及方法
CN101389028A (zh) * 2008-10-15 2009-03-18 北京航空航天大学 一种基于空域分解的视频帧内编码方法
CN102572362A (zh) * 2010-12-15 2012-07-11 盛乐信息技术(上海)有限公司 视频信号传输方法
CN102547375A (zh) * 2010-12-23 2012-07-04 上海讯垒网络科技有限公司 一种快速实现预览h.264编码帧的传输方法
CN103796019A (zh) * 2012-11-05 2014-05-14 北京勤能通达科技有限公司 一种均衡码率编码方法
CN103873869A (zh) * 2012-12-18 2014-06-18 北京市勤能通达科技有限公司 一种码率控制方法
CN103227926A (zh) * 2013-05-27 2013-07-31 合肥优尔电子科技有限公司 适用于低带宽无线通信信道的视频编码装置及其编码方法

Also Published As

Publication number Publication date
CN106713913A (zh) 2017-05-24

Similar Documents

Publication Publication Date Title
CN106713913B (zh) 视频图像帧发送方法及装置、视频图像帧接收方法及装置
US10009630B2 (en) System and method for encoding video content using virtual intra-frames
WO2021147448A1 (zh) 一种视频数据处理方法、装置及存储介质
TWI520590B (zh) 影音串流傳輸方法、影音裝置以及影音提供裝置
CN109660879B (zh) 直播丢帧方法、系统、计算机设备和存储介质
CN108141581B (zh) 视频编码
CN110392284B (zh) 视频编码、视频数据处理方法、装置、计算机设备和存储介质
CN107770538B (zh) 一种检测场景切换帧的方法、装置和系统
KR102077752B1 (ko) 모션 비디오의 재생을 위한 방법 및 시스템
US20180014010A1 (en) Method and apparatus for reference frame management for video communication
CN101742289B (zh) 视频码流压缩方法、系统及装置
CN111093083B (zh) 数据传输方法及装置
CN107801049B (zh) 一种实时视频传送、播放方法及装置
US9900608B2 (en) Keyframe alignment for encoding video at multiple bitrates
CN104394426A (zh) 流媒体倍速播放方法和装置
CN111726657A (zh) 直播视频的播放处理方法、装置及服务器
CN106791875B (zh) 视频数据解码方法、编码方法以及相关设备
US20160142330A1 (en) Effective intra-frame refresh in multimedia communications over packet networks
CN114245196B (zh) 一种录屏推流方法、装置、电子设备及存储介质
CN105898358B (zh) 视频数据的发送方法及装置
CN113542804A (zh) 基于码流统计特征检测静帧序列的方法
US10536726B2 (en) Pixel patch collection for prediction in video coding system
KR20230040872A (ko) 비디오 스트림의 전송을 제어하는 방법들 및 장치들
JP5173613B2 (ja) 動画像符号化装置及びその制御方法
CN115442615A (zh) 一种视频编码方法、装置、电子设备及存储介质

Legal Events

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