CN112449196A - 一种并发视频会话ip帧图像组的解码方法 - Google Patents

一种并发视频会话ip帧图像组的解码方法 Download PDF

Info

Publication number
CN112449196A
CN112449196A CN201910837130.3A CN201910837130A CN112449196A CN 112449196 A CN112449196 A CN 112449196A CN 201910837130 A CN201910837130 A CN 201910837130A CN 112449196 A CN112449196 A CN 112449196A
Authority
CN
China
Prior art keywords
frame
decoded
video
decoding
video frame
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
CN201910837130.3A
Other languages
English (en)
Other versions
CN112449196B (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.)
Dawning Network Technology Co ltd
Dawning Information Industry Beijing Co Ltd
Original Assignee
Dawning Network Technology Co ltd
Dawning Information Industry Beijing 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 Dawning Network Technology Co ltd, Dawning Information Industry Beijing Co Ltd filed Critical Dawning Network Technology Co ltd
Priority to CN201910837130.3A priority Critical patent/CN112449196B/zh
Publication of CN112449196A publication Critical patent/CN112449196A/zh
Application granted granted Critical
Publication of CN112449196B publication Critical patent/CN112449196B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4331Caching operations, e.g. of an advertisement for later insertion during playback
    • 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
    • H04N21/44016Processing 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 involving splicing one content stream with another content stream, e.g. for substituting a video clip
    • 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/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4788Supplemental services, e.g. displaying phone caller identification, shopping application communicating with other users, e.g. chatting

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本申请公开了一种并发视频会话IP帧图像组的解码方法,该解码方法包括:步骤S1,对接收到的数据片段进行缓存,并依次对数据片段进行解码,当判定数据片段的最后一帧待解码视频帧不是完整帧时,判断最后一帧待解码视频帧是否为I帧,若是,保存I帧,记作拼接帧,并清除缓存的数据片段,若否,执行步骤S2;步骤S2,将缓存的解码尾帧进行I帧编码,记作拼接I帧,保存拼接I帧和最后一帧待解码视频帧,记作拼接帧,并清除缓存的数据片段;步骤S3,将拼接帧与下一个数据片段的首帧进行拼接,并对拼接后的下一个数据片段进行解码。通过本申请中的技术方案,解决了并发解码丢帧问题,降低数据缓存的存储空间,优化了并发解码的实时性。

Description

一种并发视频会话IP帧图像组的解码方法
技术领域
本申请涉及视频处理的技术领域,具体而言,涉及一种并发视频会话IP帧图像组的解码方法。
背景技术
视频会话解码的并行性可以通过多进程或者多线程进行实现,但考虑到系统性能和资源问题,进程/线程的数量不能太多,在要进行并行解码的视频会话数量,远超进程/线程数量时,则需要将多个视频会话在一个进程/线程中进行并发解码。
在并发解码处理过程中,每一路视频会话的视频内容都是由碎片化的网络数据包负载,提取、拼接成数据片段后,进行解码的,解码进程/线程交替为不同路视频会话的数据片段进行解码。由于视频会话的数量过多,为每一路会话都维护相应解码上下文,会占用非常多的存储资源,因此,只能够对每个数据片段进行独立解码。因此,当内存资源受限,无法为每一路视频都维护解码上下文资源时,会出现由于分段并发解码导致的丢帧问题,无法满足全量不丢帧的解码需求。
视频会话是以图像组为一个解码的完整单位,图像组以一个I帧为起始,后面跟随多个帧类型为P帧的待解码视频帧,其中,I帧可以独立解码,P帧需要依赖前一个I帧或P帧的解码结果进行解码。对于包括I帧、P帧的图像组,此时图像组类型为IP帧型,该图像组中待解码视频帧的采集顺序、编码顺序、存储顺序、解码顺序和存储顺序是相同的,即在此类图像组中,可以进行顺序解码。
在并发解码时,每一路视频会话中的图像组,会被拆分为不同的数据片段,解码进程/线程交替解码不同的数据片段。但由于数据片段划分方式的不确定性,无法保证划分后的每个数据片段的首帧均为当前图像组中的I帧,因此,存在数据片段中第一个I帧之前的数据,由于无法解码,而造成数据丢帧的问题。
而现有技术中,为了解决数据丢帧问题,通常是采用数据缓存的方法,将缓存的数据拼接到当前的数据片段中,具体包括以下两种方法:
1、缓存前一个数据片段中的最后一个I帧,将缓存的I帧拼接到当前数据片段的前端,对拼接后的数据片段进行解码,再将当前数据片段的最后一个I帧进行缓存,以便于对下一个数据片段进行解码。而这种方法,不仅对缓存的I帧进行重复解码,而且当前数据片段中,对于由缓存的I帧进行解码的待解码视频帧而言,存在由于缺少前一帧的视频内容,导致当前解码的待解码视频帧解码失真的可能。
2、缓存前一个数据片段中的最后一个I帧以及该I帧后面的所有P帧,将缓存的I帧、P帧拼接到当前数据片段的前端,对拼接后的数据片段进行解码,再将当前数据片段的最后一个I帧和该I帧后面的所有P帧进行缓存,以便于对下一个数据片段进行解码。而这种方法,缓存的I帧、P帧均存在重复解码,导致解码延迟较高。在多路并发场景下,需要占用的缓存空间也比较大。
发明内容
本申请的目的在于:在解决并发解码丢帧问题的同时,降低数据缓存的存储空间,优化了并发解码的实时性。
本申请的技术方案是:提供了一种并发视频会话IP帧图像组的解码方法,适用于多路视频会话的并发数据片段解码,数据片段由图像组组成,图像组中包含多帧待解码视频帧,该解码方法包括:步骤S1,对接收到的数据片段进行缓存,并依次对数据片段进行解码,当判定数据片段的最后一帧待解码视频帧不是完整帧时,判断最后一帧待解码视频帧是否为I帧,若是,保存I帧,记作拼接帧,并清除缓存的数据片段,若否,执行步骤S2;步骤S2,将缓存的解码尾帧进行I帧编码,记作拼接I帧,保存拼接I帧和最后一帧待解码视频帧,记作拼接帧,并清除缓存的数据片段;步骤S3,将拼接帧与下一个数据片段的首帧进行拼接,并对拼接后的下一个数据片段进行解码。
上述任一项技术方案中,进一步地,解码方法,还包括:当判定最后一帧待解码视频帧是完整帧时,对最后一帧待解码视频帧进行解码,并判断最后一帧待解码视频帧是否为I帧,若是,保存I帧,记作拼接帧,清除缓存的数据片段,执行步骤S3,若否,将最后一帧待解码视频帧的解码视频帧进行I帧编码,并保存,记作拼接帧,清除缓存的数据片段,执行步骤S3。
上述任一项技术方案中,进一步地,数据片段为IP帧,解码尾帧为数据片段中倒数第二帧待解码视频帧、解码后的解码视频帧。
上述任一项技术方案中,进一步地,步骤S2,包括:步骤S201,判断倒数第二帧待解码视频帧是否为I帧,若是,执行步骤S202,若否,执行步骤S203;步骤S202,将I帧记作拼接I帧,保存拼接I帧和最后一帧待解码视频帧,记作拼接帧;步骤S203,将解码尾帧进行I帧编码,生成拼接I帧,保存拼接I帧和最后一帧待解码视频帧,记作拼接帧;步骤S204,清除缓存的数据片段。
上述任一项技术方案中,进一步地,对数据片段进行解码,具体包括:步骤S101,读取缓存的数据片段中的第一待解码视频帧,判断第一待解码视频帧是否为P帧,若否,执行步骤S102,若是,执行步骤S103;步骤S102,清除第一待解码视频帧之前缓存的第二待解码视频帧和对应的、缓存的第二解码视频帧,对当前的第一待解码视频帧进行解码,生成第一解码视频帧,并对当前的第一待解码视频帧和第一解码视频帧进行缓存;步骤S103,根据之前的第二解码视频帧,对当前的P帧进行解码,生成所述第一解码视频帧,清除之前缓存的第二待解码视频帧和对应的第二解码视频帧,并对当前的P帧和第一解码视频帧进行缓存;步骤S104,输出第一解码视频帧。
本申请的有益效果是:
通过对接收到的最后一帧视频帧类型的判断,对解码尾帧和最后一帧视频帧进行保存,以便于对下一个数据片段的首帧进行拼接,解决了下一数据片段因缺少I帧或者中间视频帧,而导致并发解码丢帧的问题,同时通过对解码尾帧中所包含视频帧类型的判断,对不同的视频帧进行保存,降低了为解码下一个数据片段而保存的上一个数据片段视频帧的存储空间,在相同编解码的方法下,本申请的存储空间至少为一帧视频帧(且该视频帧为不完整I帧),最多为两帧视频帧(且最后一帧视频帧为不完整P帧)。
本申请对任一数据片段中全部的视频帧进行解码,在通过对数据片段尾部非I帧的解码视频帧,进行I帧编码并保存,降低了内存占用,且避免了数据片段尾部视频帧的重复解码,提高了视频会话中并发解码的实时性,降低了性能损耗,且能保证100%出帧率。
附图说明
本申请的上述和/或附加方面的优点在结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1是现有的并发视频会话IP帧图像组的解码方法的示意流程图;
图2是根据本申请的一个实施例的并发视频会话IP帧图像组的解码方法的示意流程图;
图3是根据本申请的一个实施例的IP帧数据片段中最后一帧种类的示意图;
图4是根据本申请的一个实施例的IP帧解码方法的示意流程图;
图5是根据本申请的一个实施例的原始帧信息和解码帧信息的缓存示意图。
具体实施方式
为了能够更清楚地理解本申请的上述目的、特征和优点,下面结合附图和具体实施方式对本申请进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互结合。
在下面的描述中,阐述了很多具体细节以便于充分理解本申请,但是,本申请还可以采用其他不同于在此描述的其他方式来实施,因此,本申请的保护范围并不受下面公开的具体实施例的限制。
在多路并发网络视频会话数据处理过程中,由于无法为每一路网络视频会话进行独立解码,因此,需要采用并发视频解码技术,进行并发解码,并发视频解码处理过程主要包括以下几部分:1.识别并捕获承载有视频数据的网络报文;2.剥离出视频负载数据;3.缓存和拼接视频数据,将符合条件的拼接数据送入解码模块;4.在解码模块中,进行并发视频解码;5.解码后数据用于进行内容分析。
而现有的并发视频会话IP帧图像组的解码方法,以IP帧类型的数据片段为例,如图1所示,需要保存当前数据片段中最后一个I帧和其之后的全部P帧,用于对下一数据片段的首帧进行拼接,每一帧视频帧的存储内容较大,因此,无法在占用系统内存较低的存储空间的前提下,既保证降低解码失真的可能,又保证较低的解码延迟。
以下结合图2至图5对本申请的实施例进行说明。
如图2所示,本实施例提供了一种并发视频会话IP帧图像组的解码方法,适用于多路视频会话的并发数据片段解码,数据片段由图像组组成,图像组中包含多帧待解码视频帧,若图像组由I帧和P帧构成,则可将该数据片段的类型记作为IP帧,该解码方法包括:
步骤S1,对接收到的数据片段进行缓存,并依次对数据片段进行解码,当判定数据片段的最后一帧待解码视频帧不是完整帧时,判断最后一帧待解码视频帧是否为I帧,若是,保存I帧,记作拼接帧,并清除缓存的数据片段,若否,执行步骤S2;
具体地,对于现有的视频会话编码方法而言,任意一路视频会话的数据片段的首帧视频帧,一定为I帧,该I帧可以独立解码,对于IP帧数据片段而言,该I帧的解码结果可以用于对第二帧的P帧进行解码,再由该P帧的解码结果对下一个P帧进行解码,依次循环,直到将该数据片段中的所有视频帧全部解码。需要说明的是,在本实施例中,不考虑包含多个连续I帧的情况。
对于一个数据片段而言,由于数据片段划分方式的不确定性,其首帧可以为:完整的I帧、部分I帧、完整的P帧、部分P帧四种情况,对应于上一个数据片段的最后一帧视频帧(最后一帧待解码视频帧),其类型依次为:完整P帧、部分I帧、完整的I帧或完整的P帧、部分P帧(此时,倒数第二视频帧可以为完整的I帧或完整的P帧),如图3所示。因此,通过判断最后一帧待解码视频帧是否为完整帧、以及最后一帧待解码视频帧是否为I帧,可以对下一数据片段的解码方法以及保存的视频帧进行选择。
当判定最后一帧待解码视频帧不是完整帧时,分为以下情况:
1)最后一帧待解码视频帧为不完整的P帧,对应于C2和C4,此时需要执行步骤S2;
2)最后一帧待解码视频帧为不完整的I帧,对应于C6,直接将该不完整的I帧保存,记作拼接帧,将该拼接帧拼接到下一个数据片段的首帧之前,执行步骤S3,对拼接后的首帧进行解码。
进一步地,该方法还包括:
当判定最后一帧待解码视频帧是完整帧时,对最后一帧待解码视频帧进行解码,并判断最后一帧待解码视频帧是否为I帧,
若是,保存I帧,记作拼接帧,清除缓存的数据片段,执行步骤S3,若否,将最后一帧待解码视频帧的解码视频帧进行I帧编码,并保存,记作拼接帧,清除缓存的数据片段,执行步骤S3。
具体地,当不能够成功读取下一帧视频帧时,已缓存的原始帧信息(a)中的内容即为当前数据片段的最后一帧待解码视频帧,即最后一帧待解码视频帧为完整帧时,分为以下情况:
1)最后一帧待解码视频帧为完整的P帧,则利用现有的I帧编码方法,将该P帧解码后的解码视频帧进行I帧编码,记作拼接帧,将该拼接帧进行保存,若下一个数据片段的首帧为I帧,对应于C1,则将该拼接帧删除,执行步骤S3,仅依据下一数据片段的首帧进行解码即可;若下一个数据片段的首帧为P帧,对应于C3,则将该拼接帧拼接到下一个数据片段的首帧之前,执行步骤S3,对拼接后的首帧进行解码;
2)最后一帧待解码视频帧为完整的I帧,则将该I帧进行保存,记作拼接帧,将该拼接帧拼接到下一个数据片段的首帧之前,对应于C5,执行步骤S3,对拼接后的首帧进行解码。
在本实施例中,示出一种视频帧完整性判断的方法,具体包括:
视频被封装在固定的数据结构中,该数据结构包括定长部分和变长部分,其中,定长部分的字节数是确定的,存储视频帧的一些基本信息,这些基本信息中的某个特定字段是视频帧的字节数。变长部分的字节数是不确定的,变长部分用于存储视频帧的实际数据,该数据的数据长度,由定长部分的视频帧字节数确定。
从变长部分的起始位置开始读取数据,当读取的数据长度大于或等于视频帧字节数时,说明读取到的该视频帧为完整帧;当读取的数据长度小于视频帧字节数时,说明读取到的该视频帧是不完整帧。
在本实施例中,示出一种视频帧类型判断的方法,具体包括:
视频帧的起始位置也包括定长的数据结构,其中的某个字段指明了帧类型,因此,可以通过某个特定的字段,对帧的类型进行区分。
以H.264为例,紧随[头部专属字段]的第一个字节的低5位表示帧类型,5表示I帧,1表示P帧。区分P帧和I帧,需要继续解析第三个字节,该字节从高位起连续0的个数记录为n,读取连续0跟随的1之后的n个比特的值a,计算2^n-1+a。若值为0、3、5、8,则为P帧,若值为2、4、7、9则为I帧。
如图4所示,本实施例提供了一种并发视频会话IP帧图像组的解码方法,具体包括以下方法:
首先,接收视频数据片段后,对接收到的数据片段进行缓存,判断是否还有后续数据片段,若没有后续数据片段,则表明该路视频会话已处理完毕,清除缓存的数据;若还有后续数据片段,则判断当前数据片段的首帧是否为完整I帧,若是,则读取该首帧,并进行解码。解码该I帧后,对于该首帧之后的任一视频帧而言:1)当读取成功且判定该视频帧为完整帧时,则对该视频帧进行解码,并进行缓存,2)如果读取成功,但判定该视频帧不是完整帧时,则表明该视频帧为当前数据片段的最后一帧视频帧(最后一帧待解码视频帧),对该视频帧的类型进行判断,按照类型的不同,对该不完整的视频帧进行保存,3)如果未能成功读取,则表明当前数据片段中的视频帧以全部处理完毕,此时,对已缓存的视频帧进行保存。
如果当前数据片段的首帧不是完整的I帧,则将缓存的视频帧拼接到当前的首帧之后,再对拼接后的该首帧进行读取。
然后,待首帧解码成功之后,读取下一帧视频帧,重新判断是否读取成功、以及判断读取的视频帧是否为完整帧,依次循环,直到没有后续数据片段。
进一步地,在本实施例中示出一种IP帧数据片段的解码方法,当判定仍有后续数据片段、且对当前数据片段进行缓存后,依次对数据片段中的视频帧进行解码,该解码包括:
步骤S101,读取缓存的数据片段中的第一待解码视频帧,判断第一待解码视频帧是否为P帧,若否,执行步骤S102,若是,执行步骤S103;
步骤S102,清除第一待解码视频帧之前缓存的第二待解码视频帧和对应的、缓存的第二解码视频帧,对当前的第一待解码视频帧进行解码,生成第一解码视频帧,并对当前的第一待解码视频帧和第一解码视频帧进行缓存;其中,第一待解码视频帧为当前读取的待解码视频帧,第二待解码视频帧为已经解码过的、上一帧待解码视频帧,即原始帧。
具体地,如图5所示,将待解码视频帧和对应的解码视频帧缓存至原始帧信息(a)和解码帧信息(A)中,设定当前的读取的视频帧为第一待解码视频帧,前一帧视频帧为第二待解码视频帧,则此时的原始帧信息(a)中的内容为第二待解码视频帧,解码帧信息(A)中的内容为第二解码视频帧。
当成功读取一个完整的视频帧(即第一待解码视频帧)后,判断第一待解码视频帧是I帧还是P帧,如果是I帧,则可以根据该第一待解码视频帧进行独立解码,解码过程为现有的I帧解码过程即可,此过程不再赘述。因此,清除已缓存的原始帧信息(a)和解码帧信息(A)中的内容,以降低内存空间的占用,并对该第一待解码视频帧进行独立解码,再将解码后的第一解码视频帧和该第一待解码视频帧缓存入解码帧信息(A)和原始帧信息(a)中,以便于对后续的P帧进行解码。
步骤S103,根据之前缓存的第二解码视频帧,对当前的P帧进行解码,生成所述第一解码视频帧,清除之前缓存的第二待解码视频帧和对应的第二解码视频帧,并对当前的P帧和第一解码视频帧进行缓存;
具体地,当判定第一待解码视频帧是P帧时,由于对P帧解码需要将前一视频帧解码后的解码视频帧作为解码的依据,即第二解码视频帧,该第二解码视频帧已缓存于解码帧信息(A)中,因此,根据缓存的解码帧信息(A),利用现有的P帧解码过程,对第一待解码视频帧进行解码,得到第一解码视频帧。
之后,清除已缓存的原始帧信息(a)和解码帧信息(A)中的内容,再将第一待解码视频帧和第一解码视频帧依次缓存入原始帧信息(a)和解码帧信息(A)中,以便于对后续的P帧进行解码。
步骤S104,输出第一解码视频帧,读取下一个视频帧。
步骤S2,将缓存的解码尾帧进行I帧编码,记作拼接I帧,保存拼接I帧和最后一帧待解码视频帧,记作拼接帧,并清除缓存的数据片段,其中,解码尾帧为数据片段中倒数第二帧待解码视频帧、解码后的解码视频帧;
进一步地,当最后一帧待解码视频帧不是完整帧、且为P帧时,步骤S2中具体包括:
步骤S201,判断倒数第二帧待解码视频帧是否为I帧,若是,执行步骤S202,若否,执行步骤S203;
步骤S202,将I帧记作拼接I帧,保存拼接I帧和最后一帧待解码视频帧,记作拼接帧;
具体地,此时,原始帧信息(a)和解码帧信息(A)中的内容为倒数第二帧待解码视频帧和解码尾帧(解码视频帧),当判定倒数第二帧待解码视频帧为I帧时,对应于C4,则将原始帧信息(a)和最后一帧待解码视频帧进行缓存,再将缓存的原始帧信息(a)和最后一帧待解码视频帧进行保存,存入保存信息(H)中,记作拼接帧,并将缓存的原始帧信息(a)和解码帧信息(A)中的内容清除,以实现降低内存空间的目的。
步骤S203,将解码尾帧进行I帧编码,生成拼接I帧,保存拼接I帧和最后一帧待解码视频帧,记作拼接帧;
具体地,当判定倒数第二帧待解码视频帧为P帧时,对应于C2,利用现有的I帧编码方法,将解码帧信息(A)中的内容进行I帧编码,记作拼接I帧,将拼接I帧和最后一帧待解码视频帧,缓存至原始帧信息(a)中,再对缓存的原始帧信息(a)和最后一帧待解码视频帧进行保存,存入保存信息(H)中,并将缓存的原始帧信息(a)和解码帧信息(A)中的内容清除,以实现降低内存空间的目的。
步骤S204,清除缓存的数据片段。
步骤S3,将拼接帧与下一个数据片段的首帧进行拼接,并对拼接后的下一个数据片段进行解码。
具体地,对于当前数据片段中的最后一帧待解码视频帧不是完整帧的情况,下一个数据片段的首帧必然不是完整帧,即下一个数据片段的首帧不是完整的I帧,因此,需要将上述步骤中保存的拼接帧与下一个数据片段的首帧进行拼接,之后,读取拼接后的下一个数据片段的首帧,对该首帧进行解码。
本实施例示出一种拼接方法,具体包括:
可以从保存信息(H)中的内容获取字节数N1以及对应的数据D1,对于下一个数据片段的首帧而言,其字节数N2和数据D2已知。通过分配一个能够容纳N1+N2字节的内存空间,并将D1拷贝到内存空间起始位置,将D2拷贝到D1的末尾,即可将该内存空间中的数据作为下一个数据片段的拼接首帧。
需要说明的是,本实施例中的编码方法和解码方法,采用现有的编解码方法即可。
通过对大量视频会话中数据片段的处理信息统计,本实施例中的并发视频会话IP帧图像组的解码方法,可以保证100%出帧率,可以适用于对出帧率要求100%的场景中,比如公安监测系统、网安检测系统、国安监测系统、军工检测系统等,并且具有如下效果:
(1)多路并发视频数据片段不丢帧、不失真解码;
(2)不需要维护解码上下文,每个数据片段最多缓存一个I帧和一个不完整的P帧,存储空间占用少;
(3)每个数据片段的处理中最多增加一次编码和两次解码操作,计算量相对较少,低性能损耗。
以上结合附图详细说明了本申请的技术方案,本申请提出了一种并发视频会话IP帧图像组的解码方法,该解码方法包括:步骤S1,对接收到的数据片段进行缓存,并依次对数据片段进行解码,当判定数据片段的最后一帧待解码视频帧不是完整帧时,判断最后一帧待解码视频帧是否为I帧,若是,保存I帧,记作拼接帧,并清除缓存的数据片段,若否,执行步骤S2;步骤S2,将缓存的解码尾帧进行I帧编码,记作拼接I帧,保存拼接I帧和最后一帧待解码视频帧,记作拼接帧,并清除缓存的数据片段;步骤S3,将拼接帧与下一个数据片段的首帧进行拼接,并对拼接后的下一个数据片段进行解码。通过本申请中的技术方案,解决了并发解码丢帧问题,降低数据缓存的存储空间,优化了并发解码的实时性。
本申请中的步骤可根据实际需求进行顺序调整、合并和删减。
本申请装置中的单元可根据实际需求进行合并、划分和删减。
尽管参考附图详地公开了本申请,但应理解的是,这些描述仅仅是示例性的,并非用来限制本申请的应用。本申请的保护范围由附加权利要求限定,并可包括在不脱离本申请保护范围和精神的情况下针对发明所作的各种变型、改型及等效方案。

Claims (5)

1.一种并发视频会话IP帧图像组的解码方法,适用于多路视频会话的并发数据片段解码,所述数据片段由图像组组成,所述图像组中包含多帧待解码视频帧,其特征在于,该解码方法包括:
步骤S1,对接收到的数据片段进行缓存,并依次对所述所述数据片段进行解码,当判定所述数据片段的最后一帧待解码视频帧不是完整帧时,判断所述最后一帧待解码视频帧是否为I帧,若是,保存所述I帧,记作拼接帧,并清除缓存的所述数据片段,若否,执行步骤S2;
步骤S2,将缓存的解码尾帧进行I帧编码,记作拼接I帧,保存所述拼接I帧和所述最后一帧待解码视频帧,记作所述拼接帧,并清除缓存的所述数据片段;
步骤S3,将所述拼接帧与下一个数据片段的首帧进行拼接,并对拼接后的下一个数据片段进行解码。
2.如权利要求1所述的并发视频会话IP帧图像组的解码方法,其特征在于,其特征在于,所述解码方法,还包括:
当判定所述最后一帧待解码视频帧是完整帧时,对所述最后一帧待解码视频帧进行解码,并判断所述最后一帧待解码视频帧是否为I帧,
若是,保存所述I帧,记作所述拼接帧,清除缓存的所述数据片段,执行步骤S3,
若否,将所述最后一帧待解码视频帧的解码视频帧进行I帧编码,并保存,记作所述拼接帧,清除缓存的所述数据片段,执行步骤S3。
3.如权利要求1所述的并发视频会话IP帧图像组的解码方法,其特征在于,所述数据片段为IP帧,所述解码尾帧为所述数据片段中倒数第二帧待解码视频帧、解码后的解码视频帧。
4.如权利要求3所述的并发视频会话IP帧图像组的解码方法,其特征在于,所述步骤S2,包括:
步骤S201,判断所述倒数第二帧待解码视频帧是否为I帧,若是,执行步骤S202,若否,执行步骤S203;
步骤S202,将所述I帧记作所述拼接I帧,保存所述拼接I帧和所述最后一帧待解码视频帧,记作所述拼接帧;
步骤S203,将所述解码尾帧进行I帧编码,生成所述拼接I帧,保存所述拼接I帧和所述最后一帧待解码视频帧,记作所述拼接帧;
步骤S204,清除缓存的所述数据片段。
5.如权利要求3至4中任一项所述的并发视频会话IP帧图像组的解码方法,其特征在于,对数据片段进行解码,具体包括:
步骤S101,读取缓存的所述数据片段中的第一待解码视频帧,判断所述第一待解码视频帧是否为P帧,若否,执行步骤S102,若是,执行步骤S103;
步骤S102,清除所述第一待解码视频帧之前缓存的第二待解码视频帧和对应的、缓存的第二解码视频帧,对当前的所述第一待解码视频帧进行解码,生成第一解码视频帧,并对当前的所述第一待解码视频帧和所述第一解码视频帧进行缓存;
步骤S103,根据之前缓存的所述第二解码视频帧,对当前的P帧进行解码,生成所述第一解码视频帧,清除之前缓存的所述第二待解码视频帧和对应的所述第二解码视频帧,并对当前的所述P帧和所述第一解码视频帧进行缓存;
步骤S104,输出所述第一解码视频帧。
CN201910837130.3A 2019-09-05 2019-09-05 一种并发视频会话ip帧图像组的解码方法 Active CN112449196B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910837130.3A CN112449196B (zh) 2019-09-05 2019-09-05 一种并发视频会话ip帧图像组的解码方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910837130.3A CN112449196B (zh) 2019-09-05 2019-09-05 一种并发视频会话ip帧图像组的解码方法

Publications (2)

Publication Number Publication Date
CN112449196A true CN112449196A (zh) 2021-03-05
CN112449196B CN112449196B (zh) 2022-10-14

Family

ID=74733518

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910837130.3A Active CN112449196B (zh) 2019-09-05 2019-09-05 一种并发视频会话ip帧图像组的解码方法

Country Status (1)

Country Link
CN (1) CN112449196B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115297094A (zh) * 2022-10-08 2022-11-04 苏州浪潮智能科技有限公司 视频传输控制方法、装置、设备及计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080075172A1 (en) * 2006-09-25 2008-03-27 Kabushiki Kaisha Toshiba Motion picture encoding apparatus and method
US20100296575A1 (en) * 2009-05-21 2010-11-25 Microsoft Corporation Optimized allocation of multi-core computation for video encoding
CN102006476A (zh) * 2010-11-19 2011-04-06 厦门雅迅网络股份有限公司 一种传输和接收实时视频数据的优化处理方法
CN105357570A (zh) * 2015-11-03 2016-02-24 上海熙菱信息技术有限公司 一种基于帧分析的视频流分析方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080075172A1 (en) * 2006-09-25 2008-03-27 Kabushiki Kaisha Toshiba Motion picture encoding apparatus and method
US20100296575A1 (en) * 2009-05-21 2010-11-25 Microsoft Corporation Optimized allocation of multi-core computation for video encoding
CN102006476A (zh) * 2010-11-19 2011-04-06 厦门雅迅网络股份有限公司 一种传输和接收实时视频数据的优化处理方法
CN105357570A (zh) * 2015-11-03 2016-02-24 上海熙菱信息技术有限公司 一种基于帧分析的视频流分析方法及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115297094A (zh) * 2022-10-08 2022-11-04 苏州浪潮智能科技有限公司 视频传输控制方法、装置、设备及计算机可读存储介质
CN115297094B (zh) * 2022-10-08 2023-02-28 苏州浪潮智能科技有限公司 视频传输控制方法、装置、设备及计算机可读存储介质

Also Published As

Publication number Publication date
CN112449196B (zh) 2022-10-14

Similar Documents

Publication Publication Date Title
CN109660805B (zh) 解码播放中音视频同步优化方法、存储介质、设备及系统
CN109348309B (zh) 一种适用于帧率上变换的分布式视频转码方法
CN113596518B (zh) 一种用于提升倍速播放性能的视频存取方法
CN105898625B (zh) 一种播放处理方法及终端设备
CN112653904A (zh) 一种基于pts与dts修改的快速视频裁剪方法
CN112449196B (zh) 一种并发视频会话ip帧图像组的解码方法
CN112422984B (zh) 多核解码系统的码流预处理装置、系统及方法
CN112291483B (zh) 视频推送方法及系统、电子设备及可读存储介质
CN112449190B (zh) 一种并发视频会话ipb帧图像组的解码方法
CN112019878B (zh) 一种视频解码和编辑的方法、装置、设备和存储介质
JPH10164522A (ja) テレテキストページ内のデータ処理方法及びデコーダ
CN112449190A (zh) 一种并发视频会话ipb帧图像组的解码方法
WO2023033300A1 (en) Encoding and decoding video data
CN113409801B (zh) 用于实时音频流播放的噪音处理方法、系统、介质和装置
CN116193160A (zh) 一种数字水印嵌入方法、装置、设备和介质
CN114465993B (zh) 视频编码方法、视频解码方法和装置、介质和计算设备
US10264274B2 (en) Coding of video and audio with initialization fragments
CN112565821B (zh) 数据处理方法、装置、安全网关及存储设备
JP2023007048A (ja) ストリーミングサーバ、送信方法及びプログラム
US20100076944A1 (en) Multiprocessor systems for processing multimedia data and methods thereof
US20040218679A1 (en) Method and system for predictive table look-up code length of variable length code
CN113365065B (zh) 用于rpa机器人屏幕录制的无损视频编码方法和解码方法
CN117135364B (zh) 一种视频解码方法和系统
CN113261283B (zh) 视频处理方法、装置及计算机可读存储介质
CN113055680B (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
GR01 Patent grant
GR01 Patent grant