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

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

Info

Publication number
CN112449190A
CN112449190A CN201910837659.5A CN201910837659A CN112449190A CN 112449190 A CN112449190 A CN 112449190A CN 201910837659 A CN201910837659 A CN 201910837659A CN 112449190 A CN112449190 A CN 112449190A
Authority
CN
China
Prior art keywords
frame
decoded
video
decoding
spliced
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
CN201910837659.5A
Other languages
English (en)
Other versions
CN112449190B (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 CN201910837659.5A priority Critical patent/CN112449190B/zh
Priority claimed from CN201910837659.5A external-priority patent/CN112449190B/zh
Publication of CN112449190A publication Critical patent/CN112449190A/zh
Application granted granted Critical
Publication of CN112449190B publication Critical patent/CN112449190B/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression

Landscapes

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

Abstract

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

Description

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

Claims (5)

1.一种并发视频会话IPB帧图像组的解码方法,适用于多路视频会话的并发数据片段解码,所述数据片段由图像组组成,所述图像组中包含多帧待解码视频帧,其特征在于,该解码方法包括:
步骤S1,对接收到的数据片段进行缓存,并依次对所述数据片段进行解码,当判定所述数据片段的最后一帧待解码视频帧不是完整帧时,判断所述最后一帧待解码视频帧是否为I帧,若是,保存所述I帧,记作拼接帧,并清除缓存的所述数据片段,若否,执行步骤S2;
步骤S2,将缓存的解码尾帧进行I帧编码,记作拼接I帧,保存所述拼接I帧和所述最后一帧待解码视频帧,记作所述拼接帧,并清除缓存的所述数据片段;
步骤S3,将所述拼接帧与下一个数据片段的首帧进行拼接,并对拼接后的下一个数据片段进行解码。
2.如权利要求1所述的并发视频会话IPB帧图像组的解码方法,其特征在于,所述数据片段为IPB帧,所述解码尾帧包括所述数据片段中倒数第二帧待解码视频帧、解码后的第二解码视频帧和,倒数第三帧待解码视频帧、解码后的第三解码视频帧。
3.如权利要求2所述的并发视频会话IPB帧图像组的解码方法,其特征在于,所述步骤S2,包括:
步骤S211,判断所述最后一帧待解码视频帧是否为P帧,若是,执行步骤S212,若否,执行步骤S213;
步骤S212,判断所述倒数第二帧待解码视频帧是否为I帧,
若是,将所述I帧记作所述拼接I帧,保存所述拼接I帧和所述最后一帧待解码视频帧,记作所述拼接帧,
若否,将所述解码尾帧中的第二解码视频帧进行I帧编码,生成所述拼接I帧,保存所述拼接I帧和所述最后一帧待解码视频帧,记作所述拼接帧;
步骤S213,判断所述倒数第三帧待解码视频帧是否为I帧,
若是,将所述I帧记作所述拼接I帧,保存所述拼接I帧、所述倒数第二帧待解码视频帧和所述最后一帧待解码视频帧,记作所述拼接帧,
若否,将所述解码尾帧中的第三解码视频帧进行I帧编码,生成所述拼接I帧,保存所述拼接I帧、所述倒数第二帧待解码视频帧和所述最后一帧待解码视频帧,记作所述拼接帧。
4.如权利要求2所述的并发视频会话IPB帧图像组的解码方法,其特征在于,对数据片段进行解码,具体包括:
步骤S111,读取缓存的所述数据片段中的当前待解码视频帧,判断所述当前待解码视频帧是否为I帧,若是,执行步骤S112,若否,执行步骤S113;
步骤S112,清除所述I帧之前缓存的待解码帧信息和对应的、缓存的解码帧信息,对所述I帧进行解码,生成I帧解码视频帧,并对所述I帧和所述I帧解码视频帧进行缓存,
其中,所述待解码帧信息包括两个相邻的待解码视频帧,所述两个相邻的待解码视频帧可以为I帧或P帧,所述解码帧信息包括两个相邻的所述待解码视频帧对应的解码视频帧;
步骤S113,判断所述当前待解码视频帧是否为P帧,若是,根据所述待解码帧信息中、与所述P帧相邻的一个所述待解码视频帧、对应的所述解码视频帧,对所述P帧进行解码,生成P帧解码视频帧,清除另一个所述待解码视频帧和对应的所述解码视频帧,缓存所述P帧和所述P帧解码视频帧,
若否,根据所述待解码帧信息,对所述当前待解码视频帧进行解码,生成B帧解码视频帧。
5.如权利要求1或4中任一项所述的并发视频会话IPB帧图像组的解码方法,其特征在于,所述解码方法,还包括:
步骤S114,当判定所述最后一帧待解码视频帧是完整帧时,对所述最后一帧待解码视频帧进行解码,并判断所述最后一帧待解码视频帧是否为I帧,若是,保存所述I帧,记作所述拼接帧,清除缓存的所述数据片段,执行步骤S3,若否,执行步骤S115;
步骤S115,判断所述倒数第二帧待解码视频帧是否为I帧,
若是,保存所述最后一帧待解码视频帧和所述I帧,记作所述拼接帧,清除缓存的所述数据片段,执行步骤S3,
若否,将所述倒数第二帧待解码视频帧的解码视频帧进行I帧编码,记作编码I帧,并保存所述编码I帧和所述最后一帧待解码视频帧,记作所述拼接帧,清除缓存的所述数据片段,执行步骤S3。
CN201910837659.5A 2019-09-05 一种并发视频会话ipb帧图像组的解码方法 Active CN112449190B (zh)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
CN112449190A true CN112449190A (zh) 2021-03-05
CN112449190B CN112449190B (zh) 2024-07-09

Family

ID=

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020071485A1 (en) * 2000-08-21 2002-06-13 Kerem Caglar Video coding
US20020191959A1 (en) * 2001-06-18 2002-12-19 Shu Lin Changing a playback speed for video presentation recorded in a progressive frame structure format
CN101976323A (zh) * 2010-11-15 2011-02-16 武汉大学 基于视频gop的用户拷贝快速生成方法
CN103796019A (zh) * 2012-11-05 2014-05-14 北京勤能通达科技有限公司 一种均衡码率编码方法
CN104333762A (zh) * 2014-11-24 2015-02-04 成都瑞博慧窗信息技术有限公司 一种视频解码方法
US20150319452A1 (en) * 2014-05-01 2015-11-05 Google Inc. Method and System to Combine Multiple Encoded Videos
CN107231328A (zh) * 2016-03-23 2017-10-03 福建星网锐捷通讯股份有限公司 实时视频传输方法、装置、设备及系统
WO2017186067A1 (zh) * 2016-04-29 2017-11-02 北京奇虎科技有限公司 视频传输处理方法及装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020071485A1 (en) * 2000-08-21 2002-06-13 Kerem Caglar Video coding
US20020191959A1 (en) * 2001-06-18 2002-12-19 Shu Lin Changing a playback speed for video presentation recorded in a progressive frame structure format
CN101976323A (zh) * 2010-11-15 2011-02-16 武汉大学 基于视频gop的用户拷贝快速生成方法
CN103796019A (zh) * 2012-11-05 2014-05-14 北京勤能通达科技有限公司 一种均衡码率编码方法
US20150319452A1 (en) * 2014-05-01 2015-11-05 Google Inc. Method and System to Combine Multiple Encoded Videos
CN104333762A (zh) * 2014-11-24 2015-02-04 成都瑞博慧窗信息技术有限公司 一种视频解码方法
CN107231328A (zh) * 2016-03-23 2017-10-03 福建星网锐捷通讯股份有限公司 实时视频传输方法、装置、设备及系统
WO2017186067A1 (zh) * 2016-04-29 2017-11-02 北京奇虎科技有限公司 视频传输处理方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张凯;: "一种保证初始数据完整性的实时视频流分发插件", 计算机系统应用, no. 05 *

Similar Documents

Publication Publication Date Title
CN110784740A (zh) 视频处理方法、装置、服务器及可读存储介质
CN113596518B (zh) 一种用于提升倍速播放性能的视频存取方法
CN109711323B (zh) 一种实时视频流分析加速方法、装置和设备
CN109660805B (zh) 解码播放中音视频同步优化方法、存储介质、设备及系统
CN112653904A (zh) 一种基于pts与dts修改的快速视频裁剪方法
CN112449196B (zh) 一种并发视频会话ip帧图像组的解码方法
CN115150610A (zh) 一种图像处理方法、装置及设备
CN112291483B (zh) 视频推送方法及系统、电子设备及可读存储介质
CN112422984B (zh) 多核解码系统的码流预处理装置、系统及方法
CN112968750B (zh) 基于aos帧的卫星图像压缩数据块解析方法及系统
CN112019878B (zh) 一种视频解码和编辑的方法、装置、设备和存储介质
CN112449190A (zh) 一种并发视频会话ipb帧图像组的解码方法
CN112449190B (zh) 一种并发视频会话ipb帧图像组的解码方法
CN101485200B (zh) 视频信号处理设备和视频信号处理方法
CN113409801B (zh) 用于实时音频流播放的噪音处理方法、系统、介质和装置
WO2023033300A1 (en) Encoding and decoding video data
US20020106106A1 (en) Data insertion device and method of inserting data
JPH10164522A (ja) テレテキストページ内のデータ処理方法及びデコーダ
JP2000331421A (ja) 情報記録装置及び情報再生装置
CN114465993B (zh) 视频编码方法、视频解码方法和装置、介质和计算设备
CN116193160A (zh) 一种数字水印嵌入方法、装置、设备和介质
CN113727116B (zh) 基于过滤机制的视频解码方法
CN112565821B (zh) 数据处理方法、装置、安全网关及存储设备
JP2023007048A (ja) ストリーミングサーバ、送信方法及びプログラム
TWI439137B (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