[go: up one dir, main page]

CN112351285A - 视频编码、解码方法和装置、电子设备和存储介质 - Google Patents

视频编码、解码方法和装置、电子设备和存储介质 Download PDF

Info

Publication number
CN112351285A
CN112351285A CN202011216894.XA CN202011216894A CN112351285A CN 112351285 A CN112351285 A CN 112351285A CN 202011216894 A CN202011216894 A CN 202011216894A CN 112351285 A CN112351285 A CN 112351285A
Authority
CN
China
Prior art keywords
video
frame
decoded
video frame
target
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
CN202011216894.XA
Other languages
English (en)
Other versions
CN112351285B (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.)
Beijing Kingsoft Cloud Network Technology Co Ltd
Original Assignee
Beijing Kingsoft Cloud Network Technology 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 Beijing Kingsoft Cloud Network Technology Co Ltd filed Critical Beijing Kingsoft Cloud Network Technology Co Ltd
Priority to CN202011216894.XA priority Critical patent/CN112351285B/zh
Publication of CN112351285A publication Critical patent/CN112351285A/zh
Application granted granted Critical
Publication of CN112351285B publication Critical patent/CN112351285B/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • 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/177Methods 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 a group of pictures [GOP]
    • 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding

Landscapes

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

Abstract

本申请提供了一种视频编码、解码方法和装置、电子设备和存储介质,其中,该视频编码方法包括:获取待编码视频,其中,所述待编码视频包含有待编码视频帧;确定与所述待编码视频对应的参考步长,其中,所述参考步长用于指示编码所述待编码视频帧所参考的视频帧与所述待编码视频帧之间的距离,所述参考步长为大于1的整数;根据所述参考步长对所述待编码视频包含的所述待编码视频帧进行编码。通过本申请,解决了相关技术中的视频编解码方式存在由于编解码时延过大导致数据传输时效性差的问题。

Description

视频编码、解码方法和装置、电子设备和存储介质
技术领域
本申请通信技术领域,尤其涉及一种视频编码、解码方法和装置、电子设备和存储介质。
背景技术
目前,对于一些要求数据传输时效性的视频处理场景,可以使用低延迟编码方式对视频进行编码。例如,在VR编码中,主视角采用的是高清码流,其他视角采用的是低清码流。当使用者发生转头动作时,其他视角的码流需要切换到高清码流,避免使用者由于视角内的画面清晰度发生改变(由高清晰度的画面切换到低清晰度的画面)产生晕眩等不适反应,影响使用者的视觉体验。为了快速进行低清视频流到高清视频流的切换,VR编码需要使用低延迟编码。
相关技术中采用的低延迟编码一般为LDP编码。在编码一个GOP内的每一个P帧时,既需要参考I帧,又需要参考前一个P帧,因此,编解码P帧的过程是串行的。在随机解码非第一个P帧时,需要等待前面的帧解码完才能解码该帧,即,需要首先解码其前面参考的帧,因此会有至少3帧的延迟,延迟时间大,不能满足快速转换视频流的需求。
例如,在VR编码中,一个GOP中的最后一个帧需要前面所有的帧均解码完成才能解码该帧。当VR发生视角切换时,延迟过大,会大大降低使用体验。
因此,相关技术中的视频编解码方式存在由于编解码时延过大导致数据传输时效性差的问题。
发明内容
本申请提供了一种视频编码、解码方法和装置、电子设备和存储介质,以至少解决相关技术中的视频编解码方式存在由于编解码时延过大导致数据传输时效性差的问题。
根据本申请实施例的一个方面,提供了一种视频编码方法,包括:获取待编码视频,其中,所述待编码视频包含有待编码视频帧;确定与所述待编码视频对应的参考步长,其中,所述参考步长用于指示编码所述待编码视频帧所参考的视频帧与所述待编码视频帧之间的距离,所述参考步长为大于1的整数;根据所述参考步长对所述待编码视频包含的所述待编码视频帧进行编码。
根据本申请实施例的另一个方面,还提供了一种视频解码方法,包括:获取待解码视频,其中,所述待解码视频包含有待解码视频帧;确定与所述待解码视频帧对应的目标参考关系,其中,所述目标参考关系用于指示所述待解码视频帧的参考视频帧,所述待解码视频帧与所述待解码视频帧的参考视频帧之间的距离是根据参考步长确定的,所述参考步长为大于1的整数;按照所述目标参考关系对所述待解码视频帧进行解码。
根据本申请实施例的又一个方面,还提供了一种视频编码装置,包括:获取单元,用于获取待编码视频,其中,所述待编码视频包含有待编码视频帧;确定单元,与确定与所述待编码视频对应的参考步长,其中,所述参考步长用于指示编码所述待编码视频帧所参考的视频帧与所述待编码视频帧之间的距离,所述参考步长为大于1的整数;编码单元,用于根据所述参考步长对所述待编码视频包含的所述待编码视频帧进行编码。
可选地,所述确定单元包括:第一确定模块,用于根据目标延迟时间和目标编解码时间,确定目标延迟帧数,其中,所述目标延迟时间为允许的最大延迟时间,所述目标编解码时间为一个视频帧的编解码时间,所述编解码时间包含编码所用的时间和解码所用的时间,所述目标延迟帧数为在所述目标延迟时间内允许编解码出的视频帧的数量;第二确定模块,用于根据所述目标延迟帧数,确定与所述待编码视频对应的所述参考步长。
可选地,所述第一确定模块包括:第一确定子模块,用于确定所述目标延迟时间与第一编解码时间的目标时间差值,其中,所述第一编解码时间为一个图像组的关键帧的所述编解码时间;第二确定子模块,用于将所述目标时间差值与第二编解码时间的商,确定为所述目标延迟帧数,其中,所述第二编解码时间为一个图像组的非关键帧的所述编解码时间,所述目标延迟帧数为在所述目标延迟时间内允许编解码出的所述非关键帧的数量,所述目标编解码时间包含所述第一编解码时间和所述第二编解码时间。
可选地,所述第二确定模块包括:第三确定子模块,用于将目标视频帧数除以所述目标延迟帧数的结果向上取整后所得到的值,确定为与所述待编码视频对应的所述参考步长,其中,所述目标视频帧数为所述待编码视频的一个图像组中所包含的非关键帧的数量,所述目标延迟帧数为在所述目标延迟时间内允许编解码出的所述非关键帧的数量。
可选地,所述待编码视频的当前图像组中包含待编码关键帧和多个待编码非关键帧;所述编码单元包括:第一编码模块,用于在所述待编码视频帧为所述待编码关键帧的情况下,对所述待编码视频帧进行帧内编码;第二编码模块,用于在所述待编码视频帧为所述当前图像组中与所述待编码关键帧之间的距离小于或者等于所述参考步长的非关键帧的情况下,将所述待编码关键帧作为所述待编码视频帧的参考视频帧,对所述待编码视频帧进行目标编码;第三编码模块,用于在所述待编码视频帧为所述当前图像组中与所述待编码关键帧之间的距离大于所述参考步长的非关键帧的情况下,将目标参考视频帧作为所述待编码视频帧的参考视频帧,对所述待编码视频帧进行目标编码,其中,所述目标参考视频帧包含所述当前图像组中与所述待编码视频帧之间的距离为所述参考步长的非关键帧;其中,所述目标编码为以下之一:帧间编码,帧内编码结合帧间编码。
可选地,所述第三编码模块包括:第四确定子模块,用于在与所述待编码视频帧对应的参考视频帧的数量为多个的情况下,将所述待编码关键帧、以及所述当前图像组中与所述待编码视频帧之间的距离为所述参考步长的整数倍的非关键帧,确定为所述目标参考视频帧;编码子模块,用于将所述目标参考视频帧作为所述当前待编码视频帧的参考视频帧,对所述当前待编码视频帧进行目标编码。
可选地,所述待编码视频帧包含所述待编码视频的当前图像组中的多个待编码非关键帧;所述编码单元包括:第四编码模块,用于按照多个所述待编码非关键帧的先后顺序,对处于同一区间内的所述待编码非关键帧进行并行编码,其中,多个所述待编码非关键帧按照所述参考步长被划分为两两相邻且不重叠的多个区间。
可选地,所述获取单元包括:获取模块,用于在全景视频中目标对象的主视角区域由第一视角区域切换到第二视角区域的情况下,获取待编码全景视频中处于所述第二视角区域内的所述待编码视频,其中,所述待编码视频帧为所述待编码视频中发生视角切换之后的视频帧,与所述主视角区域对应的清晰度为第一清晰度,与所述全景视频中除了所述主视角区域以外的其他区域对应的清晰度为第二清晰度,所述第一清晰度高于所述第二清晰度。
根据本申请实施例的又一个方面,还提供了一种视频解码装置,包括:获取单元,用于获取待解码视频,其中,所述待解码视频包含有待解码视频帧;确定单元,用于确定与所述待解码视频帧对应的参考视频帧,其中,与所述待解码视频帧对应的参考视频帧与所述待解码视频帧之间的距离是根据参考步长确定的,所述参考步长为大于1的整数;解码单元,用于根据与所述待解码视频帧对应的参考视频帧,对所述待解码视频帧进行解码。
可选地,所述待解码视频的当前图像组中包含待解码关键帧和多个待解码非关键帧;所述解码单元包括:第一解码模块,用于在所述待解码视频帧为所述待解码关键帧的情况下,对所述待解码关键帧进行帧内解码;第二解码模块,用于在所述待解码视频帧为所述当前图像组中与所述待解码关键帧之间的距离小于或者等于所述参考步长的非关键帧的情况下,将所述待解码关键帧作为所述待解码视频帧的参考视频帧,对所述待解码视频帧进行目标解码;第三解码模块,用于在所述待解码视频帧为所述当前图像组中与所述待解码关键帧之间的距离大于所述参考步长的非关键帧的情况下,将目标参考视频帧作为所述待解码视频帧的参考视频帧,对所述待解码视频帧进行目标解码,其中,所述目标参考视频帧包含所述当前图像组中与所述待解码视频帧之间的距离为所述参考步长的非关键帧;其中,所述目标解码为以下之一:帧间解码,帧内解码结合帧间解码。
可选地,所述第三解码模块包括:确定子模块,用于在与所述待解码视频帧对应的参考视频帧的数量为多个的情况下,将所述待解码关键帧、以及所述当前图像组中与所述待解码视频帧之间的距离为所述参考步长的整数倍的非关键帧,确定为所述目标参考视频帧;解码子模块,用于将所述目标参考视频帧作为所述当前待解码视频帧的参考视频帧,对所述当前待解码视频帧进行目标解码。
可选地,所述待解码视频帧包含所述待解码视频的当前图像组中的多个待解码非关键帧;所述解码单元包括:第四解码模块,用于按照多个所述待解码非关键帧的先后顺序,对处于同一区间内的所述待解码非关键帧进行并行解码,其中,多个所述待解码非关键帧按照所述参考步长被划分为两两相邻且不重叠的多个区间。
可选地,所述获取单元包括:获取模块,用于在全景视频中目标对象的主视角区域由第一视角区域切换到第二视角区域的情况下,获取待解码全景视频中处于所述第二视角区域内的所述待解码视频,其中,所述待解码视频帧为所述待解码视频中发生视角切换之后的视频帧,与所述主视角区域对应的清晰度为第一清晰度,与所述全景视频中除了所述主视角区域以外的其他区域对应的清晰度为第二清晰度,所述第一清晰度高于所述第二清晰度。
根据本申请实施例的又一个方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;其中,存储器,用于存储计算机程序;处理器,用于通过运行所述存储器上所存储的所述计算机程序来执行上述任一实施例中的方法步骤。
根据本申请实施例的又一个方面,还提供了一种计算机可读的存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一实施例中的方法步骤。
在本申请实施例中,采用跨步长进行参考的方式,通过获取待编码视频,其中,待编码视频包含有待编码视频帧;确定与待编码视频对应的参考步长,其中,参考步长用于指示编码待编码视频帧所参考的视频帧与待编码视频帧之间的距离,参考步长为大于1的整数;根据参考步长对待编码视频包含的待编码视频帧进行编码,由于在编解码时进行跨步长参考,不再依赖于其前面的视频帧,可以实现减少编解码等待时间的目的,达到了减少编解码时延、提高编解码效率的技术效果,解决了相关技术中的视频编解码方式存在由于编解码时延过大导致数据传输时效性差的问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的一种可选的视频编码方法的硬件环境的示意图;
图2是根据本申请实施例的一种可选的视频编码方法的流程示意图;
图3是一种可选的LDP编码模式的示意图;
图4是根据本申请实施例的一种可选的VR视角的示意图;
图5是根据本申请实施例的一种可选的视频编码方法的示意图;
图6是根据本申请实施例的一种可选的视频解码方法的流程示意图;
图7是根据本申请实施例的一种可选的视频编解码方法的示意图;
图8是根据本申请实施例的一种可选的视频编解码方法的流程示意图;
图9是根据本申请实施例的一种可选的视频编码装置的结构框图;
图10是根据本申请实施例的一种可选的视频编码装置的结构框图;
图11是根据本申请实施例的一种可选的电子设备的结构框图。
具体实施方式
为了使本领域技术人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或者术语适用于如下解释:
1、视频编码:是指通过压缩技术,将原始视频格式的文件转换成另一种视频格式文件的方式,常见的视频编解码标准有H.264、H.265、AVS、AV1等等。
2、延迟:是网络传输中的一个重要指标,测量了数据从一个端点到另外一个端点所需的时间,一般使用毫秒、秒等作为其单位。
3、编码延迟:是指编码过程中产生的延迟,即视频帧输入至编码完成生成码流所消耗的时间。
4、编码帧类型:编码帧通常分为3种类型:I帧(内部编码帧)亦称为关键帧,作为视频流中的随机访问点,采取帧内预测的方式编码(帧内编码),不参考其他帧,通常编码质量较高,压缩效率低;P帧(预测编码帧),通过参考前向的I帧或前向的其他P帧,采用帧间预测、或者帧内与帧间预测结合的方式编码,压缩效率高;B帧(双向预测编码帧),可参考前向与后向的帧进行预测编码,压缩效率最高。
5、GOP(Group Of Pictures,编码组):在视频编码中,GOP是一组多帧连续编码帧序列,用于辅助解码时随机访问,通常每一个GOP以I帧开头。
6、POC(PictureOrder Count,图像序列号):表示视频编码时,源视频帧的显示顺序。
7、LDP(Low Delay P,低延迟P帧)编码:每个GOP内第一帧以I帧编码,后续帧全部以P帧编码,并且编码每个P帧时,只参考播放顺序在其前的图像。通过避免后向参考,以保证编解码顺序与显示顺序一致,降低编解码延迟。视频编码中除了LDP编码模式外,还有All-Intra(全I帧)编码配置和Random-Access(随机访问)编码配置。
8、RTC(Real-time Communications,实时通信):狭义一般称为实时音视频,最典型的应用为直播连麦、实时音视频通话、视频会议、交互式在线教育等。
9、VR(Virtual Reality,虚拟现实):是指综合利用计算机图形系统和各种显示及控制等接口设备,在计算机上生成的、可交互的三维环境中提供沉浸感觉的技术。
根据本申请实施例的一个方面,提供了一种视频编码方法。可选地,在本实施例中,上述视频编码方法可以应用于如图1所示的由编码端(编码设备)102、解码端(解码设备)104和播放设备106所构成的硬件环境中。如图1所示,编码端102通过网络与解码端104进行连接,可以在编码端102(和/或解码端104)上或独立于编码端102(和/或解码端104)设置数据库,用于为编码端102(和/或解码端104)提供数据存储服务。解码端104和播放设备106可以是独立设置的两个设备,也可以是同一设备,本实施例中对此不作限定。
如图1所示,编码端102可以用于对输入的待传输视频(或者,待传输视频中的视频帧)进行编码,得到对应的视频码流,并通过网络将视频码流传输给解码端104;解码端104可用于对接收到的视频码流进行解码,得到对应的视频(或者,视频帧),并将得到的视频(或者,视频帧)通过播放设备106进行播放。
上述网络可以包括但不限于:广域网、城域网或局域网,编码端102和解码端104可以是终端设备,也可以是服务器,可以但不限于是以下至少之一:PC、手机、平板电脑、VR设备等。本申请实施例的视频编码方法可以由编码端102来执行,该编码端102可以是终端设备,还可以是服务器。其中,终端设备执行本申请实施例的视频编码方法也可以是由安装在其上的客户端来执行。
以由编码端102来执行本实施例中的视频编码方法为例,图2是根据本申请实施例的一种可选的视频编码方法的流程示意图,如图2所示,该方法的流程可以包括以下步骤:
步骤S202,获取待编码视频,其中,待编码视频包含有待编码视频帧。
本实施例中的视频编码方法可以应用于具有视频传输需求的场景,例如,直播,RTC,VR等,上述视频可以是直播视频、实时音视频、全景视频等,本实施例中对此不作限定。
编码设备可以首先获取待编码视频,待编码视频可以是待传输至解码端并由播放设备进行播放的视频,待编码视频中可以包含有待编码视频帧,待编码视频帧的数量一般为多个。一定数量的待编码视频帧可以作为一个图像组,一个图像组内的视频帧的POC可以从0开始连续编号。
例如,一个图像组中包含9个视频帧,按照视频帧的播放顺序,9个视频帧的POC依次为:0,1,2,3,4,5,6,7,8。
步骤S204,确定与待编码视频对应的参考步长,其中,参考步长用于指示编码待编码视频帧所参考的视频帧与待编码视频帧之间的距离,参考步长为大于1的整数。
相关技术中,采用LDP及LDB进行编码时,由于GOP的某一帧(非第一个帧及第二个帧)既参考I帧,又参考其前一帧的图像,如果要解码该帧,首先要解码其参考的帧,因此,会有最少3帧的延迟。对于一个GOP中的最后一帧,需要前面所有的帧均解码完成之后才能解码该帧。
例如,LDP编码方式可以如图3所示。对于一个GOP,编码每一个P帧同时参考I帧以及其前面一P帧,当解码任意一帧时,需要I帧及其前面所有的P帧均已被解码才能解码该帧,因此,需要等待I帧、以及若干个P帧的解码时间。
对于时延要求较高的场景,采用LDP及LDB进行编码延迟过大,会大大降低使用体验。例如,对于VR场景,如图4所示,用户的主视角区域是高清码流,其他视角是低清码流。用户的主视角区域会随着用户视角的转移发生切换,例如,用户的视角向左移动,主视角区域会随着向左移动。在任意时刻切换视角,需要快速将当前视角转换到高清视频流。如果采用LDP编码方式,若随机切换的时机刚好是后面的某一帧,则需要等待约1.2至1.5秒的时间,超过VR使用者可以容忍的时间,降低了使用体验。
在本实施例中,每次按照跨步长进行参考,视频帧(非第一个帧和第二个帧)的编解码不再依赖其前一个视频帧,图像组的多个视频帧之间不再是链式参考关系,可以减少编解码的时延,加快编解码的速度。
编码设备可以确定与待编码视频对应的参考步长,上述参考步长用于指示编码待编码视频帧所参考的视频帧和待编码视频帧之间的距离,上述距离是通过视频帧的数量表示,参考步长为大于1的整数,例如,参考步长可以为2、3或者其他大于1的整数。
例如,对于VR场景,若随机切换的时机是后面的某一帧,需要等待的时间包括:其所在的图像组的I帧、以及与其具有关联关系(直接参考关系,间接参考关系)的P帧的编解码时间,相对于等待其所在的图像组中位于其前的全部视频帧的编解码时间,可以缩短等待时间,快速将当前视角转换到高清视频流,从而提升用户的使用体验。
步骤S206,根据参考步长对待编码视频包含的待编码视频帧进行编码。
在确定出参考步长之后,编码设备可以根据参考步长对待编码视频包含的待编码视频帧进行编码,得到对应的视频码流,例如,对于非关键帧,可以根据参考步长确定待编码视频帧的参考视频帧,按照参考视频帧对待编码视频帧进行帧间编码、或者帧内编码结合帧间编码。对待编码视频帧进行编码可以是基于图像组执行的,即,编码设备可以根据参考步长对待编码视频的一个图像组中包含的待编码视频帧进行编码。
编码得到的视频码流内的每一帧可以包含这一帧编码时参考了哪些帧(也就是,参考关系)的信息,即,用于指示视频帧之间的参考关系的指示信息。编码设备可以通过网络将得到的视频码流传输给解码设备。
需要说明的是,除了视频帧以外,待编码视频还可以包含其他数据,例如,对应的音频数据,字幕信息等等。对于其他数据,编码设备可以采用一定的数据压缩方式进行数据压缩,得到对应的数据码流,通过网络传输给解码端,采用的数据压缩方式和传输方式(例如,与视频码流一起传输、单独进行传输等)可以根据需要进行配置,本实施例中对此不作限定。
还需要说明的是,参考步长是与待解码视频对应,也就是,参考步长适用于待解码视频中的各个图像组中的各个非关键帧,各个非关键帧的参考帧可以是根据参考步长确定的。参考步长可以是预先配置的,也可以是根据编码设备和/或解码设备的资源状况实时确定的。在参考步长预先配置的情况下,编码设备中可以根据参考步长预先配置视频帧与其参考帧之间的对应关系,编码设备可以根据上述对应关系确定待编码视频帧所参考的参考视频帧,本实施例中对此不作限定。
此外,除了按照参考步长进行间隔参考,还可以按照参考步长将GOP内的P帧划分为多个片段,每个片段参考前一个片段最后一帧,本实施例中对此不作限定。
通过上述步骤S202至步骤S206,通过获取待编码视频,其中,待编码视频包含有待编码视频帧;确定与待编码视频对应的参考步长,其中,参考步长用于指示编码待编码视频帧所参考的视频帧与待编码视频帧之间的距离,参考步长为大于1的整数;根据参考步长对待编码视频包含的待编码视频帧进行编码,解决了相关技术中的视频编解码方式存在由于编解码时延过大导致数据传输时效性差的问题,减少了编解码时延,提高了编解码效率。
作为一种可选的实施例,确定与待编码视频对应的参考步长包括:
S11,根据目标延迟时间和目标编解码时间,确定目标延迟帧数,其中,目标延迟时间为允许的最大延迟时间,目标编解码时间为一个视频帧的编解码时间,编解码时间包含编码所用的时间和解码所用的时间,目标延迟帧数为在目标延迟时间内允许编解码出的视频帧的数量;
S12,根据目标延迟帧数,确定与待编码视频对应的参考步长。
参考步长可以是预先配置的步长,编码设备可以读取与待编码视频对应的配置信息,并从配置信息中读取出参考步长。可选地,参考步长也可以是根据时延需求(目标延迟时间)和编解码一帧的用时(目标编解码时间)进行估计的:在编码一个GOP内某一帧时,编码设备可以根据时延需求和编解码一帧的用时估计出用户能够忍耐的最大延迟帧数(目标延迟帧数),根据最大延迟帧数计算出参考步长。
上述时延需求可以是用户可忍受的最大解码延时(允许的最大延迟时间),例如,对于VR场景(或者,类似的全景视频场景),时延需求是指:切换视角之后,用户可以忍受的、当前视角转换到高清视频流所需等待的时间。上述时延需求可以是人工输入的(用户手动输入的,根据经验值等预先设定的默认值),也可以是根据某一对象的对象特征(例如,用于表征对象状态的特征)计算得到的,或者,根据多个对象的对象特征计算得到的,本实施例中对此不作限定。
编解码一帧的用时为一个视频帧的编解码时间,编解码时间包含编码所用的时间和解码所用的时间。编解码一帧的用时是一个估计值,是在连续传输视频流的前提下,编解码一个视频帧(图像帧,例如,I帧,P帧)的、统计性的估计时间。编解码一帧的用时可以是由人工输入的(用户手动输入,相关人员根据经验值等预先设定),也可以是在编解码的过程中基于统计值进行动态调整的,本实施例中对此不作限定。
编码设备可以根据时延需求和编解码一帧的用时,估计出用户能够忍耐的最大延迟帧数,也就是,在目标延迟时间内允许编解码出的视频帧的数量,可以是所有类型的视频帧(例如,I帧和P帧)的数量,也可以是特定类型的视频帧(例如,P帧)的数量。
根据目标延迟帧数,编码设备可以确定与待编码视频对应的参考步长,也就是,在跨多少帧进行参考时,可以满足最大延迟帧数的需求,对于满足最大延迟帧数的需求的所有值,均可作为参考步长。
需要说明的是,由于编解码器会有波动,所以本实施例中是根据统计得到的延时动态确定参考步长,从而调整参考关系。
通过本实施例,根据时延需求和编解码一帧的用时估计出用户能够忍耐的最大延迟帧数,根据最大延迟帧数确定出参考步长,可以提高编解码速度,保证编解码时延满足时延需求,提高用户的使用体验。
作为一种可选的实施例,根据目标延迟时间和目标编解码时间,确定目标延迟帧数包括:
S21,确定目标延迟时间与第一编解码时间的目标时间差值,其中,第一编解码时间为一个图像组的关键帧的编解码时间;
S22,将目标时间差值与第二编解码时间的商,确定为目标延迟帧数,其中,第二编解码时间为一个图像组的非关键帧的编解码时间,目标延迟帧数为在目标延迟时间内允许编解码出的非关键帧的数量,目标编解码时间包含第一编解码时间和第二编解码时间。
由于编解码方式不同,一个图像组的关键帧(例如,I帧)的编解码时间和非关键帧(例如,P帧)的编解码时间存在差异,目标编解码时间可以包括:与一个图像组的关键帧对应的第一编解码时间和与一个图像组的非关键帧对应的第二编解码时间。编码设备可以确定目标延迟时间、第一编解码时间和第二编解码时间,并根据第一编解码时间和第二编解码时间确定目标延迟帧数。
可选地,在本实施例中,编码设备可以计算目标延迟时间与第一编解码时间的目标时间差值,目标时间差值为允许的编解码非关键帧帧的最大延迟时间;并将目标时间差值与第二编解码时间的商,确定为目标延迟帧数,目标延迟帧数为在目标延迟时间内允许编解码出的非关键帧的数量。如果目标延迟帧数是指在目标延迟时间内允许编解码出的关键帧和非关键帧的总数量,则目标延迟时间可以是目标时间差值与第二编解码时间的商加上1。
例如,当可忍受的时延为t,编解码一帧I需要的时间为tI,编解码一帧P需要的时间为tP,则能够忍耐的最大延迟帧数为:(t-tI)/tP+1,能够忍耐的P帧的最大延迟帧数为:(t-tI)/tP
通过本实施例,根据目标延迟时间、I帧的编解码时间和P帧的编解码时间确定目标延迟帧数,从而可以根据延时和算力(计算能力)自适应调整参考步长,在减少参考误差的同时满足应用延时需求,进而保证用户的使用体验。
作为一种可选的实施例,根据目标延迟帧数,确定与待编码视频对应的参考步长包括:
S31,将目标视频帧数除以目标延迟帧数的结果向上取整后所得到的值,确定为与待编码视频对应的参考步长,其中,目标视频帧数为待编码视频的一个图像组中所包含的非关键帧的数量,目标延迟帧数为在目标延迟时间内允许编解码出的非关键帧的数量。
如果目标延迟帧数为在目标延迟时间内允许编解码出的非关键帧的数量,编码设备可以首先确定待编码视频的一个图像组中所包含的非关键帧的数量(即,目标视频帧数)和目标延迟帧数;然后,将目标视频帧数除以目标延迟帧数的结果向上取整后所得到的值,确定为与待编码视频对应的参考步长。通过对目标视频帧数除以目标延迟帧数的结果向上取整,可以保证在随机切换到图像组中一个靠后的帧时,需要等待解码完成的P帧的数量不超过目标延迟帧数。
对应地,在解码侧,在随机解码任意一P帧时,只需等待一个I帧+GOP帧数(目标视频帧数)/步长(参考步长)个P帧的解码时间就能解码。
例如,可忍受的时延为t,编解码一帧I需要tI,编解码一帧P需要tP,GOP包含n帧P,可以按照公式(1)计算出自适应步长(参考步长):
Figure BDA0002760698860000131
以n为8、(t-tI)/tP等于3为例,
Figure BDA0002760698860000132
自适应步长为3。
通过本实施例,通过对目标视频帧数除以目标延迟帧数的结果向上取整,可以保证在随机切换到任意视频帧时,所需等待的时延不超过时延需求,提高视频编解码配置的合理性,提高用户的使用体验。
可选地,在本实施例中,待编码视频可以包含多个图像组,当前图像组(当前待编码的图像组)可以包含待编码关键帧和多个待编码非关键帧。根据参考步长,当前图像组中不同位置的待编码视频帧可以采用不同的编码方式。
作为一种可选的实施例,根据参考步长对待编码视频包含的待编码视频帧进行编码包括以下至少之一:
S41,在待编码视频帧为待编码关键帧的情况下,对待编码视频帧进行帧内编码;
S42,在待编码视频帧为当前图像组中与待编码关键帧之间的距离小于或者等于参考步长的非关键帧的情况下,将待编码关键帧作为待编码视频帧的参考视频帧,对待编码视频帧进行目标编码;
S43,在待编码视频帧为当前图像组中与待编码关键帧之间的距离大于参考步长的非关键帧的情况下,将目标参考视频帧作为待编码视频帧的参考视频帧,对待编码视频帧进行目标编码,其中,目标参考视频帧包含当前图像组中与待编码视频帧之间的距离为参考步长的非关键帧;
其中,目标编码为以下之一:帧间编码,帧内编码结合帧间编码。
如果待编码视频帧为当前图像组的待编码关键帧(第一个视频帧),可以作为视频流中的一个随机访问点。编码设备可以不参考其他帧,采用帧内预测的方式对其进行编码(帧内编码),得到与当前图像组对应的I帧(内部编码帧)。I帧通常编码质量较高,压缩效率较低。
如果当前待编码视频帧为当前图像组中与待编码关键帧之间的距离小于或者等于参考步长的非关键帧(待编码非关键帧),则除了待编码关键帧以外,在待编码视频帧之前,没有与其距离达到参考步长的非关键帧。编码设备可以将待编码关键帧作为待编码视频帧的参考视频帧,对待编码视频帧采用帧间预测的方式进行编码(帧间编码),或者,对待编码视频帧采用帧内预测和帧间预测结合的方式进行编码(帧内编码结合帧间编码),提高压缩效率。
如果待编码视频帧为当前图像组中与待编码关键帧之间的距离大于参考步长的非关键帧(待编码非关键帧),则除了待编码关键帧以外,在待编码视频帧之前,存在与其距离达到参考步长的非关键帧。编码设备可以首先确定与待编码视频帧对应的目标参考视频帧。目标参考视频帧可以包括:当前图像组中与待编码视频帧之间的距离为参考步长的非关键帧,也可以包括:待编码关键帧,还可以包括其他按照参考步长与其具有关联关系的视频帧。
编码设备可以将目标参考视频帧作为待编码视频帧的参考视频帧,对待编码视频帧进行帧间编码,或者,对待编码视频帧进行帧内编码结合帧间编码,提高压缩效率。
例如,如图5所示,参考步长为2,图像组中包含9个视频帧,分别为一个I帧和8个P帧,视频帧之间按照参考步长进行跨帧参考。
通过本实施例,根据待编码视频帧与当前图像组的第一个视频帧的关系采用不同的编码方式对待编码视频帧进行编码,可以兼顾编码质量和压缩效率,提高资源利用率。
作为一种可选的实施例,将目标参考视频帧作为待编码视频帧的参考视频帧,对待编码视频帧进行目标编码包括:
S51,在与待编码视频帧对应的参考视频帧的数量为多个的情况下,将待编码关键帧、以及当前图像组中与待编码视频帧之间的距离为参考步长的整数倍的非关键帧,确定为目标参考视频帧;
S52,将目标参考视频帧作为当前待编码视频帧的参考视频帧,对当前待编码视频帧进行目标编码。
如果待编码视频帧允许参考多帧,即,与待编码视频帧对应的参考视频帧的数量为多个,编码设备可以按照参考步长确定与待编码视频帧对应的多个参考视频帧(目标参考视频帧),例如,可以将待编码关键帧、以及与待编码视频帧之间的距离为参考步长的整数倍的非关键帧的全部或者部分,确定为与待编码视频帧对应的目标参考视频帧。
在确定出目标参考视频帧之后,编码设备可以将目标参考视频帧作为当前待编码视频帧的参考视频帧,对当前待编码视频帧进行帧间编码、或者帧内编码结合帧间编码。
例如,如图5所示,如果允许参考多帧时,每个步长内的帧可以根据当前步数往前参考多帧,比如,参考帧数为2时,POC=4的帧可以参考POC=0和POC=2的帧。
通过本实施例,在允许参考多帧时,按照参考步长确定与待编码视频帧对应的多个参考视频帧,可以保证参考视频帧确定的合理性。
可选地,在本实施例中,待编码视频帧可以包含待编码视频的当前图像组中的多个待编码非关键帧,还可以包括:待编码关键帧和多个待编码非关键帧。多个待编码非关键帧可以是当前图像组的全部非关键帧,也可以是部分非关键帧,本实施例中对此不做限定。
作为一种可选的实施例,根据参考步长对待编码视频包含的待编码视频帧进行编码包括:
S61,按照多个待编码非关键帧的先后顺序,对处于同一区间内的待编码非关键帧进行并行编码,其中,多个待编码非关键帧按照参考步长被划分为两两相邻且不重叠的多个区间。
在LDP编码模式中,从第二个P帧开始,每个P帧既参考I帧又参考其前面的P帧,因此,编码P帧的方式是串行的,编码效率低。
可选地,在本实施例中,由于P帧进行了跨步长参考,不再依赖于其前面的P帧,因此,对于一个步长里的P帧可以并行编解码,大大加快编解码速度。
按照先后顺序,多个待编码非关键帧可以按照参考步长被划分为两两相邻且不重叠的多个区间(片段),每个区间包含的待编码非关键帧的数量可以与参考步长相同,也可以小于参考步长(例如,最后一个区间包含的待编码非关键帧的数量可以小于参考步长)。编码设备可以对处于同一区间内的待编码非关键帧进行并行编码,从而加快编解码速度。
例如,如图5所示,参考步长为2,则第1个P帧和第2个P帧可以并行编解码,第3个P帧和第4个P帧可以并行编解码,第5个P帧和第6个P帧可以并行编解码,第7个P帧和第8个P帧可以并行编解码。P帧编解码使用并行方式,可以加快编解码速度。
通过本实施例,通过对于一个步长里的P帧进行并行编解码,可以加快编解码速度。
作为一种可选的实施例,获取待编码视频包括:
S71,在全景视频中目标对象的主视角区域由第一视角区域切换到第二视角区域的情况下,获取待编码全景视频中处于第二视角区域内的待编码视频,其中,待编码视频帧为待编码视频中发生视角切换之后的视频帧,与主视角区域对应的清晰度为第一清晰度,与全景视频中除了主视角区域以外的其他区域对应的清晰度为第二清晰度,第一清晰度高于第二清晰度。
本实施例中的视频编码方法可以应用于不同的视频传输场景,例如,全景视频传输的场景。对于全景视频(例如,VR场景中的全景视频),可以将用户的主视角区域对应的清晰度配置为第一清晰度(高清),将全景视频中除了主视角区域以外的其他区域对应的清晰度配置为第二清晰度(低清),第一清晰度高于第二清晰度。
在未发生视角切换之前,目标对象(用户)的主视角区域为第一视角区域,则第一视角区域内显示的是高清视频,全景视频中除了第一视角区域以外的其他区域显示的是低清视频。在某一时刻,目标对象的视角发生切换,其主视角区域由第一视角区域切换到第二视角区域,则需要将第二视角区域对应的视频码流切换为高清码流,从而在第二视角区域内显示高清视频。
编码设备所获取的待编码视频可以是待编码全景视频中处于第二视角区域内的待编码视频,待编码视频的视频码流对应的清晰度为第一清晰度。待编码视频帧为待编码视频中发生视角切换之后的视频帧,例如,VR设备检测到用户在某一时刻发生切换,发生切换后,需要快速将位于第二视角区域内的视频码流切换为高清码流,发生切换之后的第一个视频帧可以是上述待编码视频帧。编码设备中的编码器本身具有控制视频流质量的参数,可以通过此参数来控制视频码流的清晰度。
通过本实施例,根据用户视角区域的切换来控制视频码流对应的清晰度,并根据参考步长进行视角区域内视频的编码,可以提高视角区域内的低清流到高清流的转换速度,提高用户的使用体验。
可选地,在本实施例中,在获取待编码视频之前,编码设备可以接收目标设备传输的目标视角信息,目标设备是用于获取目标对象查看全景视频的视角信息的设备;根据目标视角信息,编码设备可以确定在全景视频中目标对象的主视角区域由第一视角区域切换到第二视角区域。
在解码端、或者播放设备端,目标设备(例如,VR设备)可以获取目标对象查看全景视频的视角信息,得到目标视角信息,并由目标设备、编码设备或者播放设备通过网络将目标视角信息传输给编码设备。目标设备、编码设备和播放设备可以是同一设备,也可以是不同设备,本实施例中对此不作限定。
编码设备可以接收目标设备传输的目标视角信息,并根据目标视角信息,确定在全景视频中目标对象的主视角区域由第一视角区域切换到第二视角区域。目标视角信息可以是主视角区域的区域信息,也可以是目标对象的主视点在全景视频(全景视频帧)上的位置。编码设备可以通过目标视角信息直接确定出主视角区域,也可以通过主视点在全景视频(全景视频帧)上的位置、以及主视角区域的范围信息,确定出主视角区域,本实施例中对此不作限定。
例如,VR眼镜(或者,手机的VR在划动画面时)可以得到用户的视角信息,判断主视点在图像的位置,进而确定用户的主视角区域。
通过本实施例,通过获取目标对象的视角信息确定目标对象的主视角区域,可以提高主视角区域确定的准确性。
可选地,在本实施例中,编码设备对待编码视频帧进行编码得到的视频码流为第一视频码流,第一视频码流对应的清晰度为第一清晰度,可以是高清码流。为了保证用户在转换视角时,可以看到切换后的视角区域内的视频画面,编码设备可以对与待编码全景视频帧具有对应关系的待编码全景视频的待编码全景视频帧进行编码,得到第二视频码流,第二视频码流对应的清晰度为第二清晰度,是低清码流。
编码设备可以将第一视频码流和第二视频码流传输给解码设备,以便解码设备可以将第一视频码流解码得到的视频帧(图像帧,图像)渲染到第二视频码流解码得到的视频帧的主视角区域内,从而在主视角区域内显示高清视频画面。
当前待编码全景视频帧的编码过程与当前待编码视频帧的编码过程可以是同时执行的(消耗一定的存储资源),也可以是先后执行的,本实施例中对此不作限定。
例如,如果某一视角区域显示的视频画面转高清,低清码流仍然会被传输,因为传输代价较小,视角转换时如果当前视角对应区域不再是主视觉范围,可以直接切换为低清流进行解码。
通过本实施例,通过同时传输低清码流和高清码流,可以保证用户在视角切换时视频信息显示的完整性,提高用户的使用体验。
根据本申请实施例的另一个方面,还提供了一种视频解码方法。可选地,在本实施例中,上述视频解码方法可以应用于如图1所示的由编码端102、解码端104和播放设备106所构成的硬件环境中。已经进行过说明的,在此不做赘述。
本申请实施例的视频解码方法可以由解码端104来执行,该解码端104可以是终端设备,还可以是服务器。其中,终端设备执行本申请实施例的视频解码方法也可以是由安装在其上的客户端来执行。以由解码端104来执行本实施例中的视频解码方法为例,图6是根据本申请实施例的一种可选的视频解码方法的流程示意图,如图6所示,该方法的流程可以包括以下步骤:
步骤S602,获取待解码视频,其中,待解码视频包含有待解码视频帧。
本实施例中的视频解码方法可以用于解码通过上述任一项视频编码方法对待编码视频帧进行编码所得到的视频码流。解码设备可以获取编码设备通过网络所传输的视频码流,即,待解码视频,待解码视频中包含有待解码视频帧。
步骤S604,确定与待解码视频帧对应的目标参考关系,其中,目标参考关系用于指示待解码视频帧的参考视频帧,待解码视频帧与待解码视频帧的参考视频帧之间的距离是根据参考步长确定的,参考步长为大于1的整数。
如果待解码视频帧为当前图像组(待解码视频帧所在的图像组)的关键帧(第一个帧,即,I帧),则解码设备可以采用帧内解码的方式对待解码视频帧进行解码,得到解码出的视频帧。
如果待解码视频帧为当前图像组的非第一帧(非关键帧,即,P帧),则解码设备可以采用帧间解码的方式、或者帧内解码和帧间解码结合的方式对待解码视频帧进行解码,得到解码出的视频帧。
为了对待解码视频帧进行帧间解码,解码设备可以首先确定与待解码视频帧对应的目标参考关系,该目标参考关系用于指示待解码视频帧的参考视频帧,也就是,待解码视频帧在编码时参考了哪些帧。待解码视频帧与待解码视频帧的参考视频帧之间的距离是根据参考步长确定的,该参考步长为大于1的整数,例如,2,3,4等。参考步长的计算方式、以及根据参考步长确定参考视频帧的方式可以与上述任一项的视频编码方法所采用的方式一致,在此不做赘述。在待解码视频帧为当前图像组的非第一个非关键帧的情况下,待解码视频帧与其参考视频帧之间的距离大于1。
步骤S606,按照目标参考关系对待解码视频帧进行解码。
在确定出与待解码视频帧对应的目标参考关系之后,解码设备可以依据该目标参考关系确定出待解码视频帧的参考视频帧,并使用与待解码视频帧对应的参考视频帧对待解码视频帧进行帧间解码,或者进行帧内解码结合帧间解码,得到对应的视频帧。待解码视频帧的解码过程可以参考相关技术,本实施例中对此不作限定。
通过上述步骤S602至步骤S606,通过获取待解码视频,其中,待解码视频包含有待解码视频帧;确定与待解码视频帧对应的目标参考关系,其中,目标参考关系用于指示待解码视频帧的参考视频帧,待解码视频帧与待解码视频帧的参考视频帧之间的距离是根据参考步长确定的,参考步长为大于1的整数;按照目标参考关系对待解码视频帧进行解码,解决了相关技术中的视频编解码方式存在由于编解码时延过大导致数据传输时效性差的问题,减少了编解码时延,提高了编解码效率。
可选地,在本实施例中,待解码视频的当前图像组中可以包含待解码关键帧和多个待解码非关键帧。对于不同位置的待解码视频帧,按照目标参考关系对待解码视频帧进行解码的方式可以是不同的。
作为一种可选的实施例,按照目标参考关系对待解码视频帧进行解码包括:
S81,在待解码视频帧为待解码关键帧的情况下,对待解码关键帧进行帧内解码;
S82,在待解码视频帧为当前图像组中与待解码关键帧之间的距离小于或者等于参考步长的非关键帧的情况下,将待解码关键帧作为待解码视频帧的参考视频帧,对待解码视频帧进行目标解码;
S83,在待解码视频帧为当前图像组中与待解码关键帧之间的距离大于参考步长的非关键帧的情况下,将目标参考视频帧作为待解码视频帧的参考视频帧,对待解码视频帧进行目标解码,其中,目标参考视频帧包含当前图像组中与待解码视频帧之间的距离为参考步长的非关键帧;
其中,目标解码为以下之一:帧间解码,帧内解码结合帧间解码。
如果待解码视频帧为当前图像组的待解码关键帧(第一个视频帧,I帧),可以是视频流中的一个随机访问点。解码设备可以不参考其他帧,直接对其进行帧内解码,得到对应的视频帧。
如果待解码视频帧为当前图像组中与待解码关键帧之间的距离小于或者等于参考步长的非关键帧(待解码非关键帧,P帧),除了待解码关键帧以外,在待解码视频帧之前,没有与其距离达到参考步长的非关键帧。则在进行解码时,解码设备可以根据目标参考关系,将待解码关键帧参考作为待解码视频帧的参考视频帧,对待解码视频帧进行帧间解码,或者,帧内解码和帧间解码的结合。
如果待解码视频帧为当前图像组中与待解码关键帧之间的距离大于参考步长的非关键帧(待解码非关键帧,P帧),则除了待解码关键帧以外,在待解码视频帧之前,存在与其距离达到参考步长的非关键帧。则在进行解码时,该视频帧所参考的视频帧至少包括:当前图像组中与其之间的距离为参考步长的视频帧。解码设备可以首先确定与待解码视频帧对应的目标参考视频帧,目标参考视频帧至少包括:与待解码视频帧之间的距离为参考步长的非关键帧,也可以包括:待解码关键帧,还可以包括其他按照参考步长与其具有关联关系的视频帧。
解码设备可以将目标参考视频帧作为待解码视频帧的参考视频帧,对待解码视频帧进行帧间解码,或者,对待解码视频帧进行帧内解码结合帧间解码。
通过本实施例,根据参考步长,不同位置的视频帧与其参考的视频帧之间具有不同的位置关系,可以兼顾视频质量和压缩效率,提高资源利用率。
作为一种可选的实施例,将目标参考视频帧作为待解码视频帧的参考视频帧,对待解码视频帧进行目标解码包括:
S91,在与待解码视频帧对应的参考视频帧的数量为多个的情况下,将待解码关键帧、以及当前图像组中与待解码视频帧之间的距离为参考步长的整数倍的非关键帧,确定为目标参考视频帧;
S92,将目标参考视频帧作为当前待解码视频帧的参考视频帧,对当前待解码视频帧进行目标解码。
如果允许参考多帧,即,与待解码视频帧对应的参考视频帧的数量可以为多个,解码设备可以将当前图像组的待解码关键帧、以及当前图像组中与待解码视频帧之间的距离为参考步长的整数倍的非关键帧的全部或者部分,确定为与待解码视频帧对应的目标参考视频帧。
在确定出目标参考视频帧之后,解码设备可以将目标参考视频帧作为当前待解码视频帧的参考视频帧,对当前待解码视频帧进行帧间解码、或者帧内解码结合帧间解码。
通过本实施例,通过参考多个视频帧对待解码视频帧进行解码,可以提高视频帧解码的准确性。
可选地,在本实施例中,待解码视频帧包含待解码视频的当前图像组中的多个待解码非关键帧,还可以包括:待解码关键帧和多个待解码非关键帧。多个待解码非关键帧可以是当前图像组的全部非关键帧,也可以是部分非关键帧,本实施例中对此不做限定。
作为一种可选的实施例,按照目标参考关系对待解码视频帧进行解码包括:
S101,按照多个待解码非关键帧的先后顺序,对处于同一区间内的待解码非关键帧进行并行解码,其中,多个待解码非关键帧按照参考步长被划分为两两相邻且不重叠的多个区间。
在本实施例中,解码设备可以对于一个步长里的P帧并行编解码,大大加快编解码速度。
根据先后顺序,多个待解码非关键帧可以按照参考步长被划分为两两相邻且不重叠的多个区间(片段),每个区间包含的待解码非关键帧的数量可以与参考步长相同,也可以小于参考步长(例如,最后一个区间包含的待解码非关键帧的数量可以小于参考步长)。解码设备可以对处于同一区间内的待解码非关键帧进行并行解码,从而加快编解码速度。
通过本实施例,通过对于一个步长里的P帧进行并行编解码,可以加快编解码速度。
作为一种可选的实施例,获取待解码视频包括:
S111,在全景视频中目标对象的主视角区域由第一视角区域切换到第二视角区域的情况下,获取待解码全景视频中处于第二视角区域内的待解码视频,其中,待解码视频帧为待解码视频中发生视角切换之后的视频帧,与主视角区域对应的清晰度为第一清晰度,与全景视频中除了主视角区域以外的其他区域对应的清晰度为第二清晰度,第一清晰度高于第二清晰度。
解码设备可以接收编码设备传输来的视频码流,例如,第一视频码流,对应于待解码视频,可以是高清码流,又例如,第二视频码流,对应于待解码全景视频,可以是低清码流。第一视频码流可以是待解码全景视频中处于第二视角区域内的待解码视频。第一视频码流(主视角区域)对应的清晰度为第一清晰度(高清),与除了第二视角区域以外的其他区域对应的清晰度为第二清晰度(低清),第一清晰度高于第二清晰度。
第二视角区域可以是通过视频码流中的区域指示信息所指示的。区域指示信息用于指示主视角区域在全景视频中的位置,可以是上述主视角区域的区域信息,也可以是其他类型的信息,能够指示主视角区域的区域范围的信息,均可以作为区域指示信息。
可选地,第二视角区域也可以是通过由目标设备传输来的目标视角信息确定的,通过匹配时间,解码设备可以确定目标视角信息与待解码视频帧之间的对应关系,从而确定出用于显示待解码视频帧的第二视角区域。
通过本实施例,根据用户视角区域的切换来控制视频码流对应的清晰度,可以提高用户主视角区域内的低清流到高清流的转换速度,提升用户的使用体验。
可选地,在本实施例,解码设备可以对待解码视频帧(对应于第一视频码流)进行解码,得到目标视频帧,目标视频帧的清晰度为第一清晰度;对与待解码视频帧对应的待解码全景视频帧(对应于第二视频码流)进行解码,得到目标全景视频帧,目标全景视频帧的清晰度为第二清晰度;将目标视频帧渲染到目标全景视频帧的主视角区域,并通过播放设备播放渲染后的目标全景视频帧。
下面结合可选示例对本申请实施例中的视频编解码方法进行解释说明。本示例中提供了一种应用于VR场景中的自适应低延迟解码帧参考方法,能够根据延迟的需求自适应调整GOP内参考步长,提高GOP内编解码并行度,同时在低时延前提下更大程度提高画质。
本示例中所提供的自适应低延迟解码帧参考方法可以应用于如图7所示的网络架构,在该网络架构中包含:
编码器,用于获取并拼接全景视频,该全景视频是在VR设备中所播放的视频;对全景视频中位于用户的主视角区域内的视频数据按照第一清晰度(高清)进行编码,得到对应的高清流,对全景视频按照第二清晰度(低清)进行编码,得到对应的低清流,将得到的高清流和低清流通过网络传输给解码器;接收VR设备传输的用户的视角信息,并根据视角信息确定用户的主视角区域;
解码器,用于分别对高清流和低清流进行解码,将对高清流进行解码得到的视频帧渲染到对对应的低清流进行解码得到的视频帧的主视角区域,得到解码后的视频,并将解码后的视频通过VR设备进行播放;
VR设备,用于播放解码器解码得到的视频,并获取用户的视角信息,在用户的视角发生切换时,将用户的视角信息通过网络传输给编码器。
如图8所示,本示例中的视频编解码方法的流程可以包括以下步骤:
步骤S802,根据时延的需求和编解码一帧的用时估计出用户能够忍耐的最大延迟帧数,根据最大延迟帧数计算出参考步长。
在编码侧,在编码一个GOP内某一帧时,编码器可以根据时延需求和编解码一帧的用时估计出用户能够忍耐的最大延迟帧数,并根据最大延迟帧数计算出参考步长,计算公式可以参考公式(1)。
步骤S804,按照参考步长对全景视频中与主视角区域的对应的视频帧进行编码,得到对应的视频码流,并将得到的视频码流通过网络传输至解码器。
按照参考步长,编码器可以采用如图5所示的方式对全景视频中与主视角区域的对应的视频帧进行编码,得到对应的视频码流,并将得到的视频码流通过网络传输至解码器。此外,编码器可以采用同样的方式或者不同的方式对全景视频进行编码,本示例中对此不作限定。
使用这种方式进行编码时,当VR从主视角切换到左右任一视角(向左或者向右切换视角)时,可以快速完成高清流到低清流的转换。
步骤S806,按照编码时的参考关系对接收到的视频码流进行解码,得到对应的视频,并通过VR设备播放解码出的视频。
编码得到的码流内每一帧都包含这一帧编码时候参考了哪些帧的信息,也就是参考关系。解码器可以按照编码时的参考关系对接收到的视频码流进行解码,得到对应的视频,并将其传输至VR设备进行播放。
此外,由于图像组中的P帧进行跨步长的参考,不再依赖于其前面的P帧,对于一个步长里的P帧可以并行编解码,大大加快编解码速度。
相比于LDP模式,解码任意一个P帧时,需要将其所有的参考帧放在内存中。在本示例中,解码到任意P帧时,需要解码一个I帧的时间加上解码前面跨帧参考链(参见图5,一个参考链可以为0-1-3-5-7,后一个帧参考前一个帧)上的P帧的时间,每个步长间隔内的P帧解码时间是相同的,即,解码前面参考链上P帧+解码I帧的时间。
通过本示例,由于对P帧进行自适应跨步长编码,可以根据当前算力、以及应用时延需求计算出编码延时和可忍受最大延时,对一个步长内的P帧并行编码,加快编码速度;对应地,解码时同一个步长内的P帧可以并行被解码,加速了解码速度。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM(Read-Only Memory,只读存储器)/RAM(Random Access Memory,随机存取存储器)、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
根据本申请实施例的又一个方面,还提供了一种用于实施上述视频编码方法的视频编码装置。图9是根据本申请实施例的一种可选的视频编码装置的结构框图,如图9所示,该装置可以包括:
获取单元902,用于获取待编码视频,其中,待编码视频包含有待编码视频帧;
确定单元904,与获取单元902相连,用于确定与待编码视频对应的参考步长,其中,参考步长用于指示编码待编码视频帧所参考的视频帧与待编码视频帧之间的距离,参考步长为大于1的整数;
编码单元906,与确定单元904相连,用于根据参考步长对待编码视频包含的待编码视频帧进行编码。
需要说明的是,该实施例中的获取单元902可以用于执行上述步骤S202,该实施例中的确定单元904可以用于执行上述步骤S204,该实施例中的编码单元906可以用于执行上述步骤S206。
通过上述模块,通过获取待编码视频,其中,待编码视频包含有待编码视频帧;确定与待编码视频对应的参考步长,其中,参考步长用于指示编码待编码视频帧所参考的视频帧与待编码视频帧之间的距离,参考步长为大于1的整数;根据参考步长对待编码视频包含的待编码视频帧进行编码,解决了相关技术中的视频编解码方式存在由于编解码时延过大导致数据传输时效性差的问题,减少了编解码时延,提高了编解码效率。
作为一种可选的实施例,确定单元904包括:
第一确定模块,用于根据目标延迟时间和目标编解码时间,确定目标延迟帧数,其中,目标延迟时间为允许的最大延迟时间,目标编解码时间为一个视频帧的编解码时间,编解码时间包含编码所用的时间和解码所用的时间,目标延迟帧数为在目标延迟时间内允许编解码出的视频帧的数量;
第二确定模块,用于根据目标延迟帧数,确定与待编码视频对应的参考步长。
作为一种可选的实施例,第一确定模块包括:
第一确定子模块,用于确定目标延迟时间与第一编解码时间的目标时间差值,其中,第一编解码时间为一个图像组的关键帧的编解码时间;
第二确定子模块,用于将目标时间差值与第二编解码时间的商,确定为目标延迟帧数,其中,第二编解码时间为一个图像组的非关键帧的编解码时间,目标延迟帧数为在目标延迟时间内允许编解码出的非关键帧的数量,目标编解码时间包含第一编解码时间和第二编解码时间。
作为一种可选的实施例,第二确定模块包括:
第三确定子模块,用于将目标视频帧数除以目标延迟帧数的结果向上取整后所得到的值,确定为与待编码视频对应的参考步长,其中,目标视频帧数为待编码视频的一个图像组中所包含的非关键帧的数量,目标延迟帧数为在目标延迟时间内允许编解码出的非关键帧的数量。
可选地,在本实施例中,待编码视频的当前图像组中包含待编码关键帧和多个待编码非关键帧。
作为一种可选的实施例,编码单元906包括:
第一编码模块,用于在待编码视频帧为待编码关键帧的情况下,对待编码视频帧进行帧内编码;
第二编码模块,用于在待编码视频帧为当前图像组中与待编码关键帧之间的距离小于或者等于参考步长的非关键帧的情况下,将待编码关键帧作为待编码视频帧的参考视频帧,对待编码视频帧进行目标编码;
第三编码模块,用于在待编码视频帧为当前图像组中与待编码关键帧之间的距离大于参考步长的非关键帧的情况下,将目标参考视频帧作为待编码视频帧的参考视频帧,对待编码视频帧进行目标编码,其中,目标参考视频帧包含当前图像组中与待编码视频帧之间的距离为参考步长的非关键帧;
其中,目标编码为以下之一:帧间编码,帧内编码结合帧间编码。
作为一种可选的实施例,第三编码模块包括:
第四确定子模块,用于在与待编码视频帧对应的参考视频帧的数量为多个的情况下,将待编码关键帧、以及当前图像组中与待编码视频帧之间的距离为参考步长的整数倍的非关键帧,确定为目标参考视频帧;
编码子模块,用于将目标参考视频帧作为当前待编码视频帧的参考视频帧,对当前待编码视频帧进行目标编码。
可选地,在本实施例中,待编码视频帧包含待编码视频的当前图像组中的多个待编码非关键帧。
作为一种可选的实施例,编码单元906包括:
第四编码模块,用于按照多个待编码非关键帧的先后顺序,对处于同一区间内的待编码非关键帧进行并行编码,其中,多个待编码非关键帧按照参考步长被划分为两两相邻且不重叠的多个区间。
作为一种可选的实施例,获取单元902包括:
获取模块,用于在全景视频中目标对象的主视角区域由第一视角区域切换到第二视角区域的情况下,获取待编码全景视频中处于第二视角区域内的待编码视频,其中,待编码视频帧为待编码视频中发生视角切换之后的视频帧,与主视角区域对应的清晰度为第一清晰度,与全景视频中除了主视角区域以外的其他区域对应的清晰度为第二清晰度,第一清晰度高于第二清晰度。
根据本申请实施例的又一个方面,还提供了一种用于实施上述视频解码方法的视频解码装置。图10是根据本申请实施例的一种可选的视频解码装置的结构框图,如图10所示,该装置可以包括:
获取单元1002,用于获取待解码视频,其中,待解码视频包含有待解码视频帧;
确定单元1004,与获取单元1002相连,用于确定与待解码视频帧对应的目标参考关系,其中,目标参考关系用于指示待解码视频帧的参考视频帧,待解码视频帧与待解码视频帧的参考视频帧之间的距离是根据参考步长确定的,参考步长为大于1的整数;
解码单元1006,与确定单元1004相连,用于按照目标参考关系对待解码视频帧进行解码。
需要说明的是,该实施例中的获取单元1002可以用于执行上述步骤S602,该实施例中的确定单元1004可以用于执行上述步骤S604,该实施例中的解码单元1006可以用于执行上述步骤S606。
通过上述模块,通过获取待解码视频,其中,待解码视频包含有待解码视频帧;确定与待解码视频帧对应的目标参考关系,其中,目标参考关系用于指示待解码视频帧的参考视频帧,待解码视频帧与待解码视频帧的参考视频帧之间的距离是根据参考步长确定的,参考步长为大于1的整数;按照目标参考关系对待解码视频帧进行解码,解决了相关技术中的视频编解码方式存在由于编解码时延过大导致数据传输时效性差的问题,减少了编解码时延,提高了编解码效率。
可选地,在本实施例中,待解码视频的当前图像组中包含待解码关键帧和多个待解码非关键帧。
作为一种可选的实施例,解码单元1006包括:
第一解码模块,用于在待解码视频帧为待解码关键帧的情况下,对待解码关键帧进行帧内解码;
第二解码模块,用于在待解码视频帧为当前图像组中与待解码关键帧之间的距离小于或者等于参考步长的非关键帧的情况下,将待解码关键帧作为待解码视频帧的参考视频帧,对待解码视频帧进行目标解码;
第三解码模块,用于在待解码视频帧为当前图像组中与待解码关键帧之间的距离大于参考步长的非关键帧的情况下,将目标参考视频帧作为待解码视频帧的参考视频帧,对待解码视频帧进行目标解码,其中,目标参考视频帧包含当前图像组中与待解码视频帧之间的距离为参考步长的非关键帧;
其中,目标解码为以下之一:帧间解码,帧内解码结合帧间解码。
作为一种可选的实施例,第三解码模块包括:
确定子模块,用于在与待解码视频帧对应的参考视频帧的数量为多个的情况下,将待解码关键帧、以及当前图像组中与待解码视频帧之间的距离为参考步长的整数倍的非关键帧,确定为目标参考视频帧;
解码子模块,用于将目标参考视频帧作为当前待解码视频帧的参考视频帧,对当前待解码视频帧进行目标解码。
可选地,在本实施例中,待解码视频帧包含待解码视频的当前图像组中的多个待解码非关键帧。
作为一种可选的实施例,解码单元1006包括:
第四解码模块,用于按照多个待解码非关键帧的先后顺序,对处于同一区间内的待解码非关键帧进行并行解码,其中,多个待解码非关键帧按照参考步长被划分为两两相邻且不重叠的多个区间。
作为一种可选的实施例,获取单元1002包括:
获取模块,用于在全景视频中目标对象的主视角区域由第一视角区域切换到第二视角区域的情况下,获取待解码全景视频中处于第二视角区域内的待解码视频,其中,待解码视频帧为待解码视频中发生视角切换之后的视频帧,与主视角区域对应的清晰度为第一清晰度,与全景视频中除了主视角区域以外的其他区域对应的清晰度为第二清晰度,第一清晰度高于第二清晰度。
根据本申请实施例的又一个方面,还提供了一种视频传输系统,包括:编码端,与编码端进行通信连接的解码端,其中,编码端可以包含本申请实施例中提供的上述任一项视频编码装置(或者,编码端为上述视频编码装置),解码端可以包含本申请实施例中提供的上述任一项视频解码装置(或者,解码端为上述视频解码装置)。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
根据本申请实施例的又一个方面,还提供了一种用于实施上述视频编码方法和/或视频解码方法的电子设备,该电子设备可以是服务器、终端、或者其组合。
图11是根据本申请实施例的一种可选的电子设备的结构框图,如图11所示,包括处理器1102、通信接口1104、存储器1106和通信总线1108,其中,处理器1102、通信接口1104和存储器1106通过通信总线1108完成相互间的通信,其中,
存储器1106,用于存储计算机程序;
处理器1102,用于执行存储器1106上所存放的计算机程序时,实现如下步骤:
S1,获取待编码视频,其中,待编码视频包含有待编码视频帧;
S2,确定与待编码视频对应的参考步长,其中,参考步长用于指示编码待编码视频帧所参考的视频帧与待编码视频帧之间的距离,参考步长为大于1的整数;
S3,根据参考步长对待编码视频包含的待编码视频帧进行编码。
可选地,处理器1102,用于执行存储器1106上所存放的计算机程序时,实现如下步骤:
S1,获取待解码视频,其中,待解码视频包含有待解码视频帧;
S2,确定与待解码视频帧对应的目标参考关系,其中,目标参考关系用于指示待解码视频帧的参考视频帧,待解码视频帧与待解码视频帧的参考视频帧之间的距离是根据参考步长确定的,参考步长为大于1的整数;
S3,按照目标参考关系对待解码视频帧进行解码。
可选地,在本实施例中,上述的通信总线可以是PCI(Peripheral ComponentInterconnect,外设部件互连标准)总线、或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图11中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括RAM,也可以包括非易失性存储器(non-volatile memory),例如,至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。
作为一种示例,上述存储器1102中可以但不限于包括上述视频编码装置中的获取单元902、确定单元904以及编码单元906。此外,还可以包括但不限于上述视频编码装置中的其他模块单元,本示例中不再赘述。
作为另一种示例,上述存储器1102中可以但不限于包括上述视频解码装置中的获取单元1002、确定单元1004以及解码单元1006。此外,还可以包括但不限于上述视频解码装置中的其他模块单元,本示例中不再赘述。
上述处理器可以是通用处理器,可以包含但不限于以下至少之一:CPU(CentralProcessing Unit,中央处理器)、NP(Network Processor,网络处理器)等;还可以是DSP(Digital Signal Processing,数字信号处理器)、ASIC(Application SpecificIntegrated Circuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
本领域普通技术人员可以理解,图11所示的结构仅为示意,实施上述视频编码方法和/或视频解码方法的设备可以是终端设备,该终端设备可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图11其并不对上述电子装置的结构造成限定。例如,终端设备还可包括比图11中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图11所示的不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、ROM、RAM、磁盘或光盘等。
根据本申请实施例的又一个方面,还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行本申请实施例中所提供的上述任一项视频编码方法和/或视频解码方法的程序代码。
可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
S1,获取待编码视频,其中,待编码视频包含有待编码视频帧;
S2,确定与待编码视频对应的参考步长,其中,参考步长用于指示编码待编码视频帧所参考的视频帧与待编码视频帧之间的距离,参考步长为大于1的整数;
S3,根据参考步长对待编码视频包含的待编码视频帧进行编码。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
S1,获取待解码视频,其中,待解码视频包含有待解码视频帧;
S2,确定与待解码视频帧对应的参考视频帧,其中,与待解码视频帧对应的参考视频帧与待解码视频帧之间的距离是根据参考步长确定的,参考步长为大于1的整数;
S3,根据与待解码视频帧对应的参考视频帧,对待解码视频帧进行解码。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例中对此不再赘述。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、ROM、RAM、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
根据本申请实施例的又一个方面,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中;计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述任一个实施例中的方法步骤。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例中所提供的方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (17)

1.一种视频编码方法,其特征在于,包括:
获取待编码视频,其中,所述待编码视频包含有待编码视频帧;
确定与所述待编码视频对应的参考步长,其中,所述参考步长用于指示编码所述待编码视频帧所参考的视频帧与所述待编码视频帧之间的距离,所述参考步长为大于1的整数;
根据所述参考步长对所述待编码视频包含的所述待编码视频帧进行编码。
2.根据权利要求1所述的方法,其特征在于,所述确定与所述待编码视频对应的参考步长包括:
根据目标延迟时间和目标编解码时间,确定目标延迟帧数,其中,所述目标延迟时间为允许的最大延迟时间,所述目标编解码时间为一个视频帧的编解码时间,所述编解码时间包含编码所用的时间和解码所用的时间,所述目标延迟帧数为在所述目标延迟时间内允许编解码出的视频帧的数量;
根据所述目标延迟帧数,确定与所述待编码视频对应的所述参考步长。
3.根据权利要求2所述的方法,其特征在于,所述根据目标延迟时间和目标编解码时间,确定目标延迟帧数包括:
确定所述目标延迟时间与第一编解码时间的目标时间差值,其中,所述第一编解码时间为一个图像组的关键帧的所述编解码时间;
将所述目标时间差值与第二编解码时间的商,确定为所述目标延迟帧数,其中,所述第二编解码时间为一个图像组的非关键帧的所述编解码时间,所述目标延迟帧数为在所述目标延迟时间内允许编解码出的所述非关键帧的数量,所述目标编解码时间包含所述第一编解码时间和所述第二编解码时间。
4.根据权利要求2所述的方法,其特征在于,所述根据所述目标延迟帧数,确定与所述待编码视频对应的所述参考步长包括:
将目标视频帧数除以所述目标延迟帧数的结果向上取整后所得到的值,确定为与所述待编码视频对应的所述参考步长,其中,所述目标视频帧数为所述待编码视频的一个图像组中所包含的非关键帧的数量,所述目标延迟帧数为在所述目标延迟时间内允许编解码出的所述非关键帧的数量。
5.根据权利要求1所述的方法,其特征在于,所述待编码视频的当前图像组中包含待编码关键帧和多个待编码非关键帧;
所述根据所述参考步长对所述待编码视频包含的所述待编码视频帧进行编码包括:
在所述待编码视频帧为所述待编码关键帧的情况下,对所述待编码视频帧进行帧内编码;
在所述待编码视频帧为所述当前图像组中与所述待编码关键帧之间的距离小于或者等于所述参考步长的非关键帧的情况下,将所述待编码关键帧作为所述待编码视频帧的参考视频帧,对所述待编码视频帧进行目标编码;
在所述待编码视频帧为所述当前图像组中与所述待编码关键帧之间的距离大于所述参考步长的非关键帧的情况下,将目标参考视频帧作为所述待编码视频帧的参考视频帧,对所述待编码视频帧进行目标编码,其中,所述目标参考视频帧包含所述当前图像组中与所述待编码视频帧之间的距离为所述参考步长的非关键帧;
其中,所述目标编码为以下之一:帧间编码,帧内编码结合帧间编码。
6.根据权利要求5所述的方法,其特征在于,所述将目标参考视频帧作为所述待编码视频帧的参考视频帧,对所述待编码视频帧进行目标编码包括:
在与所述待编码视频帧对应的参考视频帧的数量为多个的情况下,将所述待编码关键帧、以及所述当前图像组中与所述待编码视频帧之间的距离为所述参考步长的整数倍的非关键帧,确定为所述目标参考视频帧;
将所述目标参考视频帧作为所述当前待编码视频帧的参考视频帧,对所述当前待编码视频帧进行目标编码。
7.根据权利要求1所述的方法,其特征在于,所述待编码视频帧包含所述待编码视频的当前图像组中的多个待编码非关键帧;
所述根据所述参考步长对所述待编码视频包含的所述待编码视频帧进行编码包括:
按照多个所述待编码非关键帧的先后顺序,对处于同一区间内的所述待编码非关键帧进行并行编码,其中,多个所述待编码非关键帧按照所述参考步长被划分为两两相邻且不重叠的多个区间。
8.根据权利要求1至7中任一项所述的方法,其特征在于,所述获取待编码视频包括:
在全景视频中目标对象的主视角区域由第一视角区域切换到第二视角区域的情况下,获取待编码全景视频中处于所述第二视角区域内的所述待编码视频,其中,所述待编码视频帧为所述待编码视频中发生视角切换之后的视频帧,与所述主视角区域对应的清晰度为第一清晰度,与所述全景视频中除了所述主视角区域以外的其他区域对应的清晰度为第二清晰度,所述第一清晰度高于所述第二清晰度。
9.一种视频解码方法,其特征在于,包括:
获取待解码视频,其中,所述待解码视频包含有待解码视频帧;
确定与所述待解码视频帧对应的目标参考关系,其中,所述目标参考关系用于指示所述待解码视频帧的参考视频帧,所述待解码视频帧与所述待解码视频帧的参考视频帧之间的距离是根据参考步长确定的,所述参考步长为大于1的整数;
按照所述目标参考关系对所述待解码视频帧进行解码。
10.根据权利要求9所述的方法,其特征在于,所述待解码视频的当前图像组中包含待解码关键帧和多个待解码非关键帧;
所述按照所述目标参考关系对所述待解码视频帧进行解码包括:
在所述待解码视频帧为所述待解码关键帧的情况下,对所述待解码关键帧进行帧内解码;
在所述待解码视频帧为所述当前图像组中与所述待解码关键帧之间的距离小于或者等于所述参考步长的非关键帧的情况下,将所述待解码关键帧作为所述待解码视频帧的参考视频帧,对所述待解码视频帧进行目标解码;
在所述待解码视频帧为所述当前图像组中与所述待解码关键帧之间的距离大于所述参考步长的非关键帧的情况下,将目标参考视频帧作为所述待解码视频帧的参考视频帧,对所述待解码视频帧进行目标解码,其中,所述目标参考视频帧包含所述当前图像组中与所述待解码视频帧之间的距离为所述参考步长的非关键帧;
其中,所述目标解码为以下之一:帧间解码,帧内解码结合帧间解码。
11.根据权利要求10所述的方法,其特征在于,所述将目标参考视频帧作为所述待解码视频帧的参考视频帧,对所述待解码视频帧进行目标解码包括:
在与所述待解码视频帧对应的参考视频帧的数量为多个的情况下,将所述待解码关键帧、以及所述当前图像组中与所述待解码视频帧之间的距离为所述参考步长的整数倍的非关键帧,确定为所述目标参考视频帧;
将所述目标参考视频帧作为所述当前待解码视频帧的参考视频帧,对所述当前待解码视频帧进行目标解码。
12.根据权利要求9所述的方法,其特征在于,所述待解码视频帧包含所述待解码视频的当前图像组中的多个待解码非关键帧;
所述按照所述目标参考关系对所述待解码视频帧进行解码包括:
按照多个所述待解码非关键帧的先后顺序,对处于同一区间内的所述待解码非关键帧进行并行解码,其中,多个所述待解码非关键帧按照所述参考步长被划分为两两相邻且不重叠的多个区间。
13.根据权利要求9至12中任一项所述的方法,其特征在于,所述获取待解码视频包括:
在全景视频中目标对象的主视角区域由第一视角区域切换到第二视角区域的情况下,获取待解码全景视频中处于所述第二视角区域内的所述待解码视频,其中,所述待解码视频帧为所述待解码视频中发生视角切换之后的视频帧,与所述主视角区域对应的清晰度为第一清晰度,与所述全景视频中除了所述主视角区域以外的其他区域对应的清晰度为第二清晰度,所述第一清晰度高于所述第二清晰度。
14.一种视频编码装置,其特征在于,包括:
获取单元,用于获取待编码视频,其中,所述待编码视频包含有待编码视频帧;
确定单元,与确定与所述待编码视频对应的参考步长,其中,所述参考步长用于指示编码所述待编码视频帧所参考的视频帧与所述待编码视频帧之间的距离,所述参考步长为大于1的整数;
编码单元,用于根据所述参考步长对所述待编码视频包含的所述待编码视频帧进行编码。
15.一种视频解码装置,其特征在于,包括:
获取单元,用于获取待解码视频,其中,所述待解码视频包含有待解码视频帧;
确定单元,用于确定与所述待解码视频帧对应的目标参考关系,其中,所述目标参考关系用于指示所述待解码视频帧的参考视频帧,所述待解码视频帧与所述待解码视频帧的参考视频帧之间的距离是根据参考步长确定的,所述参考步长为大于1的整数;
解码单元,用于按照所述目标参考关系对所述待解码视频帧进行解码。
16.一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口和所述存储器通过所述通信总线完成相互间的通信,其特征在于,
所述存储器,用于存储计算机程序;
所述处理器,用于通过运行所述存储器上所存储的所述计算机程序来执行权利要求1至8中任一项所述的方法步骤、或者执行权利要求9至13中任一项所述的方法步骤。
17.一种计算机可读的存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行权利要求1至8中任一项中所述的方法步骤、或者执行权利要求9至13中任一项中所述的方法步骤。
CN202011216894.XA 2020-11-04 2020-11-04 视频编码、解码方法和装置、电子设备和存储介质 Active CN112351285B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011216894.XA CN112351285B (zh) 2020-11-04 2020-11-04 视频编码、解码方法和装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011216894.XA CN112351285B (zh) 2020-11-04 2020-11-04 视频编码、解码方法和装置、电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN112351285A true CN112351285A (zh) 2021-02-09
CN112351285B CN112351285B (zh) 2024-04-05

Family

ID=74430023

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011216894.XA Active CN112351285B (zh) 2020-11-04 2020-11-04 视频编码、解码方法和装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN112351285B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114979757A (zh) * 2022-06-02 2022-08-30 北京字跳网络技术有限公司 视频发布方法、装置、设备及存储介质
CN115134629A (zh) * 2022-05-23 2022-09-30 阿里巴巴(中国)有限公司 视频传输方法、系统、设备及存储介质
CN115550688A (zh) * 2021-06-30 2022-12-30 华为技术有限公司 视频码流的处理方法、介质、程序产品和电子设备
WO2023011098A1 (zh) * 2021-08-06 2023-02-09 腾讯科技(深圳)有限公司 一种数据传输方法及相关装置
WO2024017135A1 (zh) * 2022-07-21 2024-01-25 华为技术有限公司 处理图像的方法和装置

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070160288A1 (en) * 2005-12-15 2007-07-12 Analog Devices, Inc. Randomly sub-sampled partition voting (RSVP) algorithm for scene change detection
CN101018334A (zh) * 2007-02-13 2007-08-15 武汉大学 一种快速实现双帧参考视频流的时域可伸缩编码的方法
CN101257628A (zh) * 2008-03-20 2008-09-03 武汉大学 一种实现视频码流帧率可调整的压缩方法
CN101668208A (zh) * 2009-09-15 2010-03-10 杭州华三通信技术有限公司 帧编码方法及装置
CN102404572A (zh) * 2011-11-22 2012-04-04 西交利物浦大学 延迟约束条件下基于系统rs码的视频编解码系统及其方法
CN103621085A (zh) * 2011-06-30 2014-03-05 微软公司 降低视频编码和解码中的延迟
CN105872544A (zh) * 2016-04-19 2016-08-17 电子科技大学 低延迟视频编码中时域率失真优化方法
CN105959700A (zh) * 2016-05-31 2016-09-21 腾讯科技(深圳)有限公司 视频图像编码的方法和装置
CN106231348A (zh) * 2016-09-19 2016-12-14 浙江宇视科技有限公司 一种gop数据的回放方法、装置和系统
CN108141611A (zh) * 2015-10-13 2018-06-08 联发科技股份有限公司 任意观看角度的部分解码及虚拟现实视频的线帧缓存器降低
JP2018142752A (ja) * 2014-07-03 2018-09-13 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 画像符号化方法、画像復号方法、画像符号化装置及び画像復号装置
CN110300305A (zh) * 2018-03-21 2019-10-01 联咏科技股份有限公司 视频编码装置与方法
WO2020097888A1 (zh) * 2018-11-15 2020-05-22 深圳市欢太科技有限公司 视频处理方法、装置、电子设备及计算机可读存储介质

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070160288A1 (en) * 2005-12-15 2007-07-12 Analog Devices, Inc. Randomly sub-sampled partition voting (RSVP) algorithm for scene change detection
CN101018334A (zh) * 2007-02-13 2007-08-15 武汉大学 一种快速实现双帧参考视频流的时域可伸缩编码的方法
CN101257628A (zh) * 2008-03-20 2008-09-03 武汉大学 一种实现视频码流帧率可调整的压缩方法
CN101668208A (zh) * 2009-09-15 2010-03-10 杭州华三通信技术有限公司 帧编码方法及装置
CN103621085A (zh) * 2011-06-30 2014-03-05 微软公司 降低视频编码和解码中的延迟
CN102404572A (zh) * 2011-11-22 2012-04-04 西交利物浦大学 延迟约束条件下基于系统rs码的视频编解码系统及其方法
JP2018142752A (ja) * 2014-07-03 2018-09-13 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 画像符号化方法、画像復号方法、画像符号化装置及び画像復号装置
CN108141611A (zh) * 2015-10-13 2018-06-08 联发科技股份有限公司 任意观看角度的部分解码及虚拟现实视频的线帧缓存器降低
CN105872544A (zh) * 2016-04-19 2016-08-17 电子科技大学 低延迟视频编码中时域率失真优化方法
CN105959700A (zh) * 2016-05-31 2016-09-21 腾讯科技(深圳)有限公司 视频图像编码的方法和装置
CN106231348A (zh) * 2016-09-19 2016-12-14 浙江宇视科技有限公司 一种gop数据的回放方法、装置和系统
CN110300305A (zh) * 2018-03-21 2019-10-01 联咏科技股份有限公司 视频编码装置与方法
WO2020097888A1 (zh) * 2018-11-15 2020-05-22 深圳市欢太科技有限公司 视频处理方法、装置、电子设备及计算机可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
RALF M. SCHREIER, ET AL: "《2006 IEEE International Conference on Multimedia and Expo》", ARCHITECTURE ANALYSIS FOR LOW-DELAY VIDEO CODING *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115550688A (zh) * 2021-06-30 2022-12-30 华为技术有限公司 视频码流的处理方法、介质、程序产品和电子设备
WO2023011098A1 (zh) * 2021-08-06 2023-02-09 腾讯科技(深圳)有限公司 一种数据传输方法及相关装置
US12262000B2 (en) 2021-08-06 2025-03-25 Tencent Technology (Shenzhen) Company Limited Data transmission method and related apparatus
CN115134629A (zh) * 2022-05-23 2022-09-30 阿里巴巴(中国)有限公司 视频传输方法、系统、设备及存储介质
CN115134629B (zh) * 2022-05-23 2023-10-31 阿里巴巴(中国)有限公司 视频传输方法、系统、设备及存储介质
CN114979757A (zh) * 2022-06-02 2022-08-30 北京字跳网络技术有限公司 视频发布方法、装置、设备及存储介质
CN114979757B (zh) * 2022-06-02 2024-01-30 北京字跳网络技术有限公司 视频发布方法、装置、设备及存储介质
WO2024017135A1 (zh) * 2022-07-21 2024-01-25 华为技术有限公司 处理图像的方法和装置

Also Published As

Publication number Publication date
CN112351285B (zh) 2024-04-05

Similar Documents

Publication Publication Date Title
CN112040233B (zh) 视频编码、视频解码方法和装置、电子设备及存储介质
CN112333448B (zh) 视频编码、解码方法和装置、电子设备和存储介质
CN112351285B (zh) 视频编码、解码方法和装置、电子设备和存储介质
AU2014275405B2 (en) Tuning video compression for high frame rate and variable frame rate capture
CN113497937B (zh) 图像编码方法、图像解码方法及相关装置
CN113924780A (zh) 用于色度子块的仿射帧间预测的方法及装置
CN107172376B (zh) 一种基于屏幕共享的视频编码方法和装置
CN111800653B (zh) 视频解码方法、系统、设备及计算机可读存储介质
CN113259671B (zh) 视频编解码中的环路滤波方法、装置、设备及存储介质
CN112040232B (zh) 实时通信的传输方法和装置、实时通信的处理方法和装置
CN107181744B (zh) 一种视频处理及编码方法、处理器与编码器
CN112040234B (zh) 视频编码、解码方法和装置、电子设备及存储介质
US9451288B2 (en) Inferred key frames for fast initiation of video coding sessions
WO2023142716A1 (zh) 编码方法、实时通信方法、装置、设备及存储介质
US12101489B2 (en) Supporting view direction based random access of bitstream
CN112351278B (zh) 一种视频的编码方法和装置,视频的解码方法和装置
CN111212288B (zh) 视频数据的编解码方法、装置、计算机设备和存储介质
US20240236378A1 (en) Encoding method, decoding method, and decoder
CN112351284B (zh) 视频编码、解码方法和装置、电子设备和存储介质
CN107302680B (zh) 一种用于多人视频通话的视频处理方法及服务器
CN112040235B (zh) 视频资源的编码方法和装置,视频资源的解码方法和装置
CN117616751A (zh) 动态图像组的视频编解码
CN114071148A (zh) 视频编码方法、装置、设备及产品
CN115866297B (zh) 视频处理方法、装置、设备及存储介质
HK40024374B (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