CN115623222A - 多层视频编码的方法和系统 - Google Patents

多层视频编码的方法和系统 Download PDF

Info

Publication number
CN115623222A
CN115623222A CN202210654610.8A CN202210654610A CN115623222A CN 115623222 A CN115623222 A CN 115623222A CN 202210654610 A CN202210654610 A CN 202210654610A CN 115623222 A CN115623222 A CN 115623222A
Authority
CN
China
Prior art keywords
frame
layer
frames
layers
reassigned
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210654610.8A
Other languages
English (en)
Inventor
瓦西里·阿里斯塔科夫
克塞尼亚·季霍米罗娃
王长亮
张希敏
谢尔盖·索洛德科夫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN115623222A publication Critical patent/CN115623222A/zh
Pending legal-status Critical Current

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/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/37Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability with arrangements for assigning different transmission priorities to video input data or to video coded data
    • 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/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/124Quantisation
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/142Detection of scene cut or scene change
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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
    • 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/184Methods 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 bits, e.g. of the compressed video stream
    • 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/186Methods 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 colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/31Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the temporal domain
    • 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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction

Landscapes

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

Abstract

本公开涉及多层视频编码的方法和系统。与视频编码有关的技术包括具有内容敏感跨层参考帧重指派的多层视频编码。

Description

多层视频编码的方法和系统
技术领域
本公开涉及多层视频编码的方法和系统。
背景技术
视频编码器压缩视频信息,以使得更多的信息可通过给定的带宽被发送或者被存储在给定的存储器空间中等等。编码器具有解码环路,该解码环路对它已经压缩的视频帧进行解码,以模仿远程解码器的操作,并且确定解码帧和原始帧之间的残差或差异,以便这种差异或残差也能被压缩并且提供给解码器,以提高解码器处解码图像的准确性和质量。编码器使用时间预测或者帧间预测(inter-prediction),以通过使用参考帧的冗余图像数据来重建当前帧,来对当前帧解码。
许多视频编码标准使用多层帧间预测结构,其中每一层提供帧以实现不同的流媒体帧率。例如,基础层提供最慢的帧率,比如对于视频流媒体是15帧每秒(frames persecond,fps),而中间层提供的帧与基础层的帧一起对于视频流媒体可以按30fps提供帧,并且最高层可以提供更多的帧,这些帧与较低层的帧一起对于视频流媒体可以按60fps提供帧。为了获得目标fps的视频编码和流媒体,解码器使用期望帧率的层上的帧以及仅该目标帧率层以下的那些层。对于编码器处的帧间预测,较高层的帧可以使用较低层的帧作为参考帧,但不能反过来,以维持分层结构,以便解码器不需要解码任何超过维持目标帧率所需的帧。然而,这种严格的结构可能导致图像质量的下降和带宽消耗的尖峰,这可能导致图像质量的明显下降和流媒体视频中不利且恼人的停顿。
发明内容
根据本公开的一个实施例,提供了一种视频编码的由计算机实现的方法,包括:在多个层处对帧的视频序列进行解码,以提供多个替换帧率;以及将至少一个帧从其中一个层重指派到另一个层,以使用重指派的帧作为所述多个层的至少一个其他帧的参考帧。
根据本公开的另一实施例,提供了一种视频编码的由计算机实现的系统,包括:存储器,至少存储帧的视频序列的图像数据;以及处理器电路,与所述存储器通信地耦合并且形成至少一个处理器,所述至少一个处理器被安排为通过以下方式来操作:在多个层处对视频序列的视频帧进行解码,以形成各自具有不同帧率的多个视频序列;以及将至少一个帧从其中一个层重指派到另一个层,以使用重指派的帧作为帧间预测参考帧,并且所述重指派取决于对所述至少一个帧的导致延迟的图像数据内容的检测。
根据本公开的另一实施例,提供了至少一个非暂态机器可读介质,包括多个指令,所述多个指令响应于在计算设备上被执行,使得所述计算设备通过以下方式来操作:在多个层处对帧的视频序列进行解码,以提供多个替换帧率;以及将至少一个帧从其中一个层重指派到另一个层,以使用重指派的帧作为所述多个层的至少一个其他帧的参考帧。
根据本公开的另一实施例,提供了至少一种机器可读介质,包括多个指令,所述指令响应于在计算设备上被执行,使得所述计算设备执行如上所述的方法。
根据本公开的另一实施例,提供了一种设备,包括用于执行如上所述的方法的装置。
附图说明
在附图中以示例的方式而不是限制的方式图示了本文描述的素材。为了图示的简单和清晰,附图中图示的元素不一定是按比例绘制的。例如,为了清晰,一些元素的尺寸相对于其他元素可被夸大。另外,在认为适当时,在附图之间重复附图标记以指示出对应的或相似的元素。在附图中:
图1是用于帧间预测和帧率管理的传统多层时间结构;
图2是用于帧间预测和帧率管理的另一传统多层时间结构;
图3是根据本文的至少一个实现方式的示例编码器的示意图;
图4是根据本文的至少一个实现方式的示例解码器的示意图;
图5是根据本文的至少一个实现方式的多层视频编码的示例方法;
图6是根据本文的至少一个实现方式的多层视频的示例详细方法;
图7是根据本文的至少一个实现方式的用于帧间预测和帧率管理的示例多层时间结构;
图8是根据本文的至少一个实现方式的用于帧间预测和帧率管理的另一示例多层时间结构,其示出了图7的结构的结果;
图9是根据本文的至少一个实现方式的用于帧间预测和帧率管理的替换示例多层时间结构,其示出了图7的结构的结果;
图10是根据本文的至少一个实现方式的用于帧间预测和帧率管理的另一替换示例多层时间结构,其示出了图7的结构的结果;
图11是根据本文的至少一个实现方式的用于帧间预测和帧率管理的另外一个替换示例多层时间结构;
图12是根据本文的至少一个实现方式的用于帧间预测和帧率管理的另一个替换示例多层时间结构,其示出了图11的结构的结果;
图13是示例系统的说明图;
图14是另一示例系统的说明图;并且
图15图示了全都根据本公开的至少一些实现方式安排的示例设备。
具体实施方式
现在参考附图描述一个或多个实现方式。虽然论述了具体的配置和安排,但应当理解这么做只是为了说明。相关领域的技术人员将会认识到,在不脱离描述的精神和范围的情况下,可以采用其他配置和安排。相关领域的技术人员将会清楚,本文描述的技术和/或安排也可被用在与本文所述不同的各种其他系统和应用中。
虽然接下来的描述阐述了例如可在诸如片上系统(system-on-a-chip,SoC)体系结构之类的体系结构中显现的各种实现方式,但本文描述的技术和/或安排的实现方式不限于特定的体系结构和/或计算系统,而是可由任何体系结构和/或计算系统为类似的目的而实现。例如,采用例如多个集成电路(integrated circuit,IC)芯片和/或封装的各种体系结构,和/或诸如服务器、膝上型电脑、机顶盒、智能电话、平板设备、电视、计算机等等之类的各种计算设备和/或消费电子(consumer electronic,CE)设备,可实现本文描述的技术和/或安排。另外,虽然接下来的描述可阐述许多具体细节,例如逻辑实现方式、系统组件的类型和相互关系、逻辑分区/集成选择等等,但可在没有这种具体细节的情况下实现要求保护的主题。在其他情况中,可能没有详细示出一些素材,例如控制结构和完整软件指令序列,以免模糊本文公开的素材。
可以用硬件、固件、软件或者其任何组合来实现本文公开的素材。本文公开的素材也可被实现为存储在机器可读介质上的指令,这些指令可被一个或多个处理器读取和执行。机器可读介质可包括用于以机器(例如,计算设备)可读的形式存储或传输信息的任何介质和/或机制。例如,机器可读介质可包括只读存储器(read only memory,ROM);随机访问存储器(random access memory,RAM);磁盘存储介质;光存储介质;闪存设备;电的、光的、声的或者其他形式的传播信号(例如,载波、红外信号、数字信号,等等),以及其他。在另一形式中,可结合上文提及的任何示例或者其他示例使用诸如非暂态计算机可读介质之类的非暂态物品,只不过其不包括暂态信号本身。其确实包括除了信号本身以外的可以以“暂态”方式暂时保存数据的那些元素,例如DRAM等等。
说明书中提及“一个实现方式”、“一实现方式”、“一示例实现方式”等等表明描述的实现方式可包括特定的特征、结构或特性,但可能不一定每个实现方式都包括该特定特征、结构或特性。此外,这种短语不一定指同一实现方式。另外,当联系一实现方式来描述特定的特征、结构或特性时,认为联系其他实现方式(无论本文是否明确描述)来实现这种特征、结构或特性是在本领域技术人员的知识范围内的。
本文描述的方法、设备、装置、系统、计算平台、介质和物品与多层视频编码有关。
如上所述,使用时间可缩放性对视频序列进行编码,以使得具有不同帧率和带宽要求的不同解码器可各自能够访问相同的视频比特流,可能是有利的。从而,一个解码器可以只按60fps来流传输视频,而另一个解码器可以只能够按30fps来流传输视频。在编码器处具有时间层的多层帧间预测结构实现了同一比特流的这种帧率适应性。解码器只需要确定使用哪些层来实现目标帧率。因此,时间层也减轻了流传输视频的网络中的封包丢失的影响。换句话说,由于各层已经具有参考帧模式结构,该结构允许解码器选择时间层的某个组合,所以只有未选择的层上的帧被丢弃。没有其他帧会由于一帧丢失其参考帧而需要被丢弃(或者质量降低)。
例如参考图1,传统的帧间预测时间层结构100将视频流划分为若干层,每层表示不同的帧率。这包括基础层102和多个增强层104和106。每个层可以独立于它上方的上层被解码。这里从均匀编号的帧1(108)到帧n+3(130)示出了比特流的视频序列,其中帧1、5和n在基础层102上,帧2、4、6、8、n+1和n+3在紧接基础层102上方的上层1(104)中,而帧3、7和n+2在上层1(104)上方的上层2(106)中。已知的编码器使用已知的模式和帧顺序来编码时间可缩放性,如结构100上所示。那么对于本示例而言,基础层(102)帧可被定义为4n+1;增强层1(104)帧包括来自基础层的所有帧加上帧4n+2和4n+4;并且增强层2(106)具有来自层1的所有帧加上帧4n+3。帧108至130在这里被以解码器顺序示出,因为在这个示例中,没有使用B帧,B帧使用来自当前帧前面和后面的参考帧。所以在这里,在当前帧只能使用先前帧作为参考帧的情况下,解码器顺序与多层结构100上的显示顺序(或者时间顺序)相匹配,但顺序可能不同,从而结构100和这里示出的其他结构可能只示出显示顺序,而不是实际的解码器顺序。
具体而言,在具有时间可缩放性的低延时视频流媒体的典型场景中,多层结构100展示了IPPPPP帧的编码,其中没有提供B帧,以便提供具有三个时间层102、104和106的低延时模式。在这个示例中,基础层102可以提供15fps的帧率,第一层(104)可以提供45fps的帧率,并且第二层(106)可以提供60fps的帧率。参考依赖关系被示为箭头,其中箭头指向参考帧,该参考帧在使用它作为参考的并且是箭头发源处的帧之前被解码。因此,例如,帧1(108)是帧2-5的参考帧。帧1(108)本身可以是帧内预测(intra-prediction)帧(或者I帧),因为它在其自己的重建期间不使用任何参考帧。
不同的编码标准,例如AVC、HEVC、VP9、AV1等等,可能有不同的语法来标记帧在时间层上的放置,但参考依赖结构通常在各编解码器间是共同的,其中编码器在构建参考帧列表时,不会让上层帧依赖于下层参考帧,以避免上述的封包和帧丢失。通常情况下,编码器使用按时间顺序的邻居帧作为参考。在基础层102上,除了第一个I帧(108)以外,每个帧在同一层(基础层102)上具有参考帧。例如,帧5(116)使用帧1(108)作为参考帧。在示例的上层1(104)上,每个帧有两个参考帧:一个在基础层(102)上,一个在它自己的层(104)上。例如,帧6(118)在同一层上有参考帧4(114),在基础层上有参考帧5(116)。在上层2(106)上,每个帧有两个参考帧,一个在基础层(102),一个在上层1(104)。如根据标准所示,按照时间可缩放性结构,从下层到上层没有参考依赖关系可用,也不允许有参考依赖关系。从而,例如,帧5(116)只能使用帧1(108)作为参考帧,但不能使用帧2(110)、帧3(112)或帧4(114)作为参考帧。
当时间可缩放性被云游戏、实况流媒体或者视频会议应用使用并且这些应用以实时或者接近实时的方式操作来为观看视频的用户提供良好体验时,可能存在额外的要求,以最低限度的延迟在所有时间层递送帧,以尝试避免视频停顿或者不良视频质量。这比无缩放性的用例更复杂,因为在基础层或下层的参考列表上提到的限制。这种限制可能会严重影响视觉质量,并且在视频中存在场景变化或者快速运动时会导致视频冻结。
例如参考图2,当在帧与帧之间发生图像数据内容的突然变化,例如场景变化或者非常快速的运动218时,就会出现困难。当这样的场景变化或者快速运动在多层结构200的基础层202(如图所示按显示或者时间顺序)上开始时,这是在没有额外延迟的情况下被处理的,因为基础帧1或5没有参考帧或者有一个参考帧,从而只需要用大量的比特而不是参考帧来重建单个帧(帧1或5)。然后,这个基础帧1或者5可被用作任何层上的帧的参考帧,同时已经考虑到场景变化或快速运动(也被称为内容事件)。从而,例如,帧6仍然可以使用经更新的帧5作为参考帧,并且例如鉴于帧5处的场景变化而具有更好的准确性。这是相对高效的,而且不一定会导致实时视频的编码中的相对较长的延迟。
然而,当场景变化或者快速运动220首先发生在上层,例如层1(204)或者层2(206)时,用静态时间可缩放性模式处理这种情形的传统技术是不够的。例如,假设场景变化220如虚线所示发生在最上层2(206)上、就在上层帧3(212)之前。为了适应场景变化,编码器必须花费大量的比特对帧3进行编码,但帧3不能被用作其他时间层的参考帧,例如将受到场景变化220影响的帧4和帧5。由于场景变化,帧4和帧5将需要用帧上的更多帧内编码块(其比特成本比帧间预测大)以及更少的帧间预测块(或其他分区)来解码。因此,对帧4和帧5解码所消耗的比特大小和带宽会激增,并且编码器侧解码的效率变得非常低。当视频序列的多个帧需要通过减少可以使用参考帧的块的数目或者完全不使用参考帧来重建时,其中由于图像数据内容的突然大变化,必须倾向于更慢且比特成本更重的帧内预测,这被称为“大尺寸传播”,并且可能导致延迟或停顿,以及流媒体视频中的不良质量帧。这种严格的多层帧间预测不能实现低延迟流媒体。
尝试用固定的时间层模式来补偿大尺寸传播,通常只涉及管理编码器量化参数(quantization parameter,QP),以对于所有时间层累计地或者对于每个时间层实现每个流的要求比特率(或者帧率)。当场景变化或快速运动发生在增强层之一时,传统编码器不能使用上层的帧作为基础层或下层的参考。因此,传统编码器要么增大基础层处的帧的QP以满足带宽要求,但这对视觉质量有负面影响,要么消耗更多带宽以保持低QP,但这增大了延时,并且不管怎样可能导致客户端设备处的图像冻结。
为了解决这些问题,所公开的多层视频编码的方法将首先出现在上层帧上的场景变化和快速运动的影响降到最低,以便低延迟流媒体应用仍然可以在实时或接近实时的情况下被提供以良好质量的视频。这可以通过分析帧的内容并且依据上层帧的内容特性(或者图像数据内容)将上层帧重指派给下层来实现。当上层帧是沿着视频序列的例如具有场景变化或快速运动的第一帧时,时间层的结构可被调整,以提高帧的质量并且使帧的总体比特率最小化。该调整包括通过改变由编码器为帧间预测维护的帧的参考列表,将上层帧从上层时间层重指派到(一个或多个)下层或基础层。然后,同一层,即现在的下层或基础层上的帧可以使用该重指派的帧作为参考帧。上层帧也可以使用重指派的帧作为下层参考帧。可选地,下层帧可以被移动到上层,以针对第一次重指派进行补偿,来维持每层上的帧计数,尽管进行了帧重指派,该帧计数也能得出每层的目标帧率。这种相反方向的重指派也可以被执行以坚持严格的参考依赖模式要求。其结果是更准确的预测和图像质量,同时实现相似或减少的延迟。
现在参考图3,图像处理系统300可以是或者可具有编码器来执行根据本公开的至少一些实现方式安排的多层视频编码。本文提到的编码器和解码器可以与视频压缩-解压缩(编解码器)标准兼容,例如,HEVC(High Efficiency Video Coding高效率视频编码/H.265/MPEG-H第2部分),虽然所公开的技术可以对任何编解码器实现,例如AVC(AdvancedVideo Coding高级视频编码/H.264/MPEG-4第20部分),VVC(Versatile Video Coding多功能视频编码/MPEG-I第3部分),VP8,VP9,开放媒体联盟(Alliance for Open Media,AOMedia)视频2(AV1),VP8/VP9/AV1系列编解码器,等等。
如图所示,编码器300接收输入视频302,并且包括编码分区单元304、编码器控制309、减法器306、变换和量化模块308、以及熵编码器310。编码器300的解码环路316至少包括逆量化和变换模块312、加法器314、环内滤波器318、解码图片缓冲器(decoded picturebuffer,DPB)319(也称为参考帧缓冲器)、以及预测单元320。预测单元320可具有帧间预测单元322、帧内预测单元324、以及预测模式选择单元326。帧间预测单元322可具有运动估计(motion estimation,ME)单元328和运动补偿(motion compensation,MC)单元330。ME单元328能够通过查找当前帧的参考列表336来确定哪些帧是正被重建的当前帧的参考帧。ME328,以及进而MC单元330,可以选择同一当前帧的替换参考,以便测试哪个(哪些)参考提供最佳的当前图像质量。参考列表336以及层指派334可被保存在语法存储器或缓冲器332中,该语法存储器或缓冲器保存一个或多个帧的数据和设置,并且将被置于帧的网络适配层(network adaption layer,NAL)中,包括在帧或切片头部或者其他分区头部或开销中,这取决于正在使用的编解码器。其他细节在下面提供。多层参考帧重指派操作可由图像内容检测单元338和参考层重指派单元340执行,该参考层重指派单元如下所述向层或者参考列表控制单元342提供指令。将会明白,层/参考列表控制342可以是控制309的一部分。
在操作中,编码器300如上所述接收输入视频302。输入视频302可以是任何适当的格式,并且可以经由任何适当的技术来接收,例如从存储器取得,从另一设备发送,从相机捕捉,等等。作为高效视频编码(high efficiency video coding,HEVC)的一个示例形式,此标准使用编码单元(coding unit,CU)或者大型编码单元(large coding unit,LCU)。对于这个标准,当前帧可被编码分区器304通过划分成编码树块(例如,具有相应色度样本的64x 64亮度样本)的一个或多个切片来分区以便压缩,进而被划分成编码单元(CU)或分区单元(partition unit,PU)以便进行运动补偿预测。CU可具有各种尺寸,范围从64x 64到4x4或8x8块,并且也包括非方形的矩形尺寸。本公开不限于任何特定的CU分区和PU分区的形状和/或尺寸,并且这类似地适用于其他视频编码标准,例如VP_标准,该标准指的是被划分为超级块的瓦片,这些超级块在尺寸上例如与CU相似。
如图所示,输入视频302然后可以让帧的分区块被提供给预测单元320。具体而言,模式选择模块326(例如,经由开关),可以为编码单元或者块之类的在一个或多个帧内预测模式、一个或多个帧间预测模式或者在允许时在两者的某种组合之间进行选择。基于模式选择,视频帧的预测部分经由减法器306与视频帧的原始部分进行差分,以生成残差。变换和量化单元308将帧或者更具体而言将残差划分为变换块,并且进行变换(例如,经由离散余弦变换(discrete cosine transform,DCT)之类的)以确定变换系数。然后使用由编码控制309设置的QP对系数进行量化。控制309也可以为预测单元320提供设置,例如允许的预测模式选择,等等。量化的变换系数可以经由熵编码器310被编码,然后与下文描述的开销数据一起被打包,并且进入到编码比特流中。其他数据,例如运动向量残差、模式数据、变换大小数据、参考列表、如本文所述的层指派等等,也可以被编码并且被插入到编码比特流中。
此外,在解码环路316,量化的变换系数被逆量化,并且系数经由逆量化和变换模块312被逆变换,以生成重建的残差。重建的残差可与上述预测部分在加法器314和其他未示出的重组装单元处被组合,以重建出重建或解码帧,该重建或解码帧然后可使用细化环内滤波器318被进行过滤以生成重建帧。然后,解码帧被保存到帧缓冲器(或者解码图片缓冲器(DPB))319,并且被用作参考帧来用于编码当前或其他视频帧的其他部分。这样的处理可以对输入视频302的任何额外帧重复进行。
与此特别相关的是,虽然DPB 319存储了将被用作参考帧的帧的图像数据(例如YUV亮度和色度像素值),但诸如语法存储器332之类的其他存储器可以存储开销数据,以被放置在帧头部、切片头部、其他分区头部或者其他在被放置于比特流中时位于帧之间的参数集中,这取决于编解码器。一旦图像数据被压缩,开销数据就与图像数据一起被打包到比特流中。开销数据也可以被压缩或者不被压缩,这取决于语法水平、帧字段的位置和正在使用哪个编解码器。开销数据可包括层指派和参考帧列表,例如在HEVC中也被称为参考图片集(reference picture set,RPS)列表。参考列表列出了解码顺序上的哪些先前帧可以作为被重建的帧的参考帧。层/参考列表控制342可以管理帧的层和参考列表数据。哪些参考帧可被放置在列表上可以取决于编解码器帧间预测结构、编码器参数设置、以及DPB319的关于一次可以存储多少个帧或者一帧的多少的大小。控制342将帧放置在参考列表336上。
在一些情况下,当层被纯粹按帧类型来指派(例如I、P或者B帧)和/或按帧顺序来指派(例如IPPP)时,层指派是结构所固有的并且被省略。在其他结构中,如果没有层指派,就不能确定帧的层。从而,层指派——当被提供时——以及帧的参考列表时,可以依据所使用的编解码器的具体格式和语法在头部或者参数集中被提供,但一般而言在各编解码器之间是相似的。例如,在AVC或HEVC中,层和参考列表经常被放置在网络抽象层(networkabstraction layer,NAL)序列参数集(sequence parameter set,SPS)、图片参数集(picture parameter set,PPS)和/或切片头部中。在其他编解码器中,例如VC1或MPEG2,可以从解码图片缓冲区内容确定参考列表,因为在这些系统中,帧的类型表明哪些帧将是该帧的参考帧。例如,在P帧总是使用而且只使用连续的前一帧作为参考帧的IPPP中,不需要列表。列表被认为是帧顺序中固有的。在这种情况下,本文描述的重指派不能改变哪个帧是当前帧的前一帧。
具体到参考帧模式可能很复杂的时间可缩放性,并且作为一个示例在AVC中,基本参考列表结构参数可被编码为补充增强信息(supplemental enhancement information,SEI)消息,作为编解码器的可缩放视频编码(scalable video coding,SVC)的一部分,并且作为NAL单元。参考列表本身可以被放置到相应的帧或切片头部中。因此,利用此结构,解码器可以取回帧头部以获得信息数据,该数据表明哪些缓冲的(或者先前的)帧应当被用作参考帧。
对于本文描述的层重指派操作,图像内容检测单元(或电路)338获得原始输入帧内容(在由编码器本身进行分区和压缩之前),并且执行算法,以确定一帧是否有这样的图像内容事件,该事件导致与前一帧的时间断裂,从而使得该帧不能充分地单独依靠其参考帧在帧间预测期间生成准确的预测,并且应当通过使用更多的比特来被重建(或者解码),这可能导致或者不导致对没有类似于I帧的参考的帧进行重建。按照一种形式,仍然可以维持对基础层帧的依赖关系。作为一个示例,这个单元338可以对最初不是I帧(或者I切片)的个体帧或每个帧执行场景变化检测和快速运动检测。其他细节在下面提供。
当这样的帧被发现是场景变化或快速运动帧(在这里被称为时间断裂帧、内容事件帧或者简称为触发帧)时,参考层重指派单元或电路340确定哪些其他帧要使用时间触发帧作为参考帧。作为相对于现有初始结构的变化的任何参考帧依赖关系,或者层变化,被提供给控制342,以对参考列表336和帧的层指派334做出重指派更新。正如下文所论述的,这可以逐帧进行,或者逐切片进行,并且在编码器处理帧时进行。按照一种方法,图像内容检测和重指派可以在控制342为帧生成参考列表时被立即执行。按照另外一种替换方法,可以通过运行经过整个视频、或者整个场景或者正被编码的视频序列的其他部分来事先执行内容检测,因为内容检测是在已经有显示顺序计数的原始帧的数据上执行,而不是在重建的帧数据上执行的。在这种情况下,重指派指示符可以被事先提供给控制340,然后控制340根据需要使用这些指示符来生成参考列表。
否则,作为一个示例,操作可以逐帧进行,并且在每个帧上逐CU进行。编码的任何其他模块是本领域技术人员已知的,并且为了呈现的清晰起见在本文中不再参考图3来进一步论述。细节在下面提供。
参考图4,系统400可具有或者可以是解码器,并且可以接收比特流形式的具有图像数据(色度和亮度像素值)的编码视频数据、量化变换系数形式的残差、以及帧间预测数据,该帧间预测数据包括帧、切片或者其他分区头部、开销和/或参数集中的层指派和参考列表。帧间预测数据还可包括个体块或者诸如切片之类的其他分区的预测模式、帧间预测运动向量、分区、量化参数、滤波器信息,等等。系统400可利用熵解码模块402处理比特流以提取量化残差系数以及情境数据。然后,解码器可具有层选择器403,该层选择器表明哪些帧要被解码,以便只对以目标帧率或比特率生成视频流所需要的帧进行解码。从而,比如说多时间层结构具有用于15fps的基础帧,用于30fps的较高层,以及用于60fps的最高层。对于只对30fps的视频流进行解码的解码器,层选择器读取层指派,并且只发送基础层和第一较高层的帧来进行解码。最高层的帧被丢弃。系统400随后可使用逆量化器模块404和逆变换模块406来重建残差像素数据。
系统400接下来可使用加法器408(以及未示出的组装器)来将残差加到预测块。系统400也可利用依据在比特流的语法中指示的编码模式而采用解码技术,以及包括预测单元412的帧内预测器模块416的第一路径或者是包括一个或多个环内滤波器410的帧间预测解码路径的第二路径,来对所得到的数据解码。运动补偿预测器414利用重建的帧以及来自比特流的帧间预测运动向量来重建预测的块。
预测模式选择器418如上所述为每个块设置正确的预测模式,其中预测模式可以是从压缩的比特流中提取和解压缩的。在根据需要将块提供到加法器408之前,在选择器418的输出处可提供块组装器(未示出)。
本文对于系统300和400描述的模块的功能,除了本文详细描述的例如与层重指派有关的单元以外,是本领域中公知的并且在本文中将不再更详细描述。
参考图5,根据本公开的至少一些实现方式安排了用于多层视频编码的示例过程500。过程500可包括一个或多个操作502–506。过程500可以形成视频编码过程的至少一部分。作为非限制性示例,过程500可执行由诸如系统或设备300、400和/或1300之类的如本文所述的任何设备或系统执行的编码过程。
过程500可包括“在多个层处对帧的视频序列进行解码,以提供多个替换帧率”502。从而,可以在编码器处接收原始视频以进行压缩。此操作可包括对原始视频进行充分的预处理以进行编码。这里描述的过程也可能与编码器处的解码环路有关。从而,这个操作也是指这样的视频:该视频可能已经被分区,被与预测进行比较以生成残差,然后残差被变换和量化过程压缩,然后才将其提供给解码环路。然后,至少一些帧可以被解码或重建,其中对整个帧、切片或其他帧分区的帧间预测将被传播以用于本文描述的预测操作。帧间预测可使用本文描述的多时间层结构,以提供不同的层来用于解码器处的不同帧率。
按照一种形式,已经解码的帧可被用作根据多层结构和解码帧顺序尚未解码的帧的参考帧。按照一种形式,并且至少最初如本文所述,较高层中的帧只能使用同一层或较低层(其可以是基础层)中的帧作为参考帧,以限制为了实现目标帧率或比特率而需要解码的帧的数目。
过程500可包括“将至少一个帧从其中一个层重指派到另一个层,以使用重指派的帧作为将在其中一个层上解码的至少一个其他帧的参考帧”504。这可包括改变参考帧依赖关系(或者模式),从而使得原本属于原始上层的帧被用作下层上的至少一个帧的参考帧,该下层相对于原始上层是较低的。其结果是参考帧依赖模式的变化,这种变化通过减少计算负荷和为了解码一些帧而需要使用比特的数目而更有效率。
为了实现这一点,此操作可包括“依据至少一个帧的图像数据内容来重指派帧”506。具体而言,可以通过执行运动检测来检测图像数据内容或内容事件,以搜索图像数据的差异,这些差异表明视频上的成对连续帧之间的图像数据中的大变化。当存在大量的变化时,这通常表明快速运动或场景变化。当这种情况发生在一对帧上时,这表明后面的帧不能充分依靠早前的参考帧,因为后面的帧有如此多的具有新图像数据的像素。这种不能通过使用其(一个或多个)参考帧而像最初期望的那样充分重构的帧,就需要更多的帧内编码模式(要么是单独的,要么作为候选提供)与帧的较少块(或其他分区)的帧间预测模式一起来重建帧的至少一部分,而所有这些都会导致更多的比特来重建该帧。
当一个帧需要更多的比特来重建时,每一层都会有也需要这种重建的第一帧,除了当帧在基础层上时。当在基础层上时,经改变的基础层帧不管怎样将成为后续帧的根,这样就不需要重指派了。然而,当上层的帧需要更高比特成本解码,并且存在多个上层时,那么(一个或多个)其他上层将各自具有受内容事件(或者场景变化等等)影响的第一帧并且也需要用更多的努力来重建,从而重复了太多的努力,提高了帧的比特成本和带宽,从而降低了效率。从而,可以通过将需要较高比特重建的在解码顺序上的第一个上层帧重指派到下层或基础层,以便它至少可被用作其他上层上的需要较大比特重建的每个第一帧的参考帧,从而来避免冗余解码。
此后,多层帧结构可被用于向前推进的帧的帧间预测,其中,当帧内容表明这种重指派又是可取的时候,参考帧依赖关系可再次被重安排,如上所述。这可以根据需要在被分析的整个视频序列中被重复多次。
帧层和参考帧指派,当不是其他帧结构(例如I、P或B帧类型和帧顺序)中所固有的时,可以与压缩的图像数据一起被传输到解码器,无论是被放置在帧、切片或者其他帧分区头部中、开销中、帧之间、帧的NAL单元中,和/或作为元数据与帧一起被传输,如本文所述。然后,解码器根据传输的或者固有的层指派和参考帧依赖关系,使用帧间预测参考帧对帧进行解码。
将会理解,当原始帧对被分析然后被编码时,重指派可以被即时执行(第一帧只是被编码,然后原始的第一帧和下一帧被分析,然后下一帧被编码为当前帧,等等依此类推),但可以被事先执行,因为内容检测可以在原始图像数据而不是重建的数据上执行。在前一种情况下,可以提前分析视频序列,以确定哪些帧要被重指派到下层并且其参考帧依赖关系要被改变,并且这可被提供给例如编码器的重指派单元以及参考列表/层指派控制,以更新参考列表和层指派,或者等待这些帧被放置在DPB中以执行更新。还应当注意,该比较可以改为在当前原始帧和先前重建帧之间进行。
参考图6,根据本公开的至少一些实现方式安排了用于多层视频编码的示例过程600。过程600可包括大体上均匀编号的一个或多个操作602-620。过程600可以形成视频编码过程的至少一部分。作为非限制性示例,过程600可以执行由诸如系统300、400和/或视频处理器系统或设备1300(分别为图3、图4和图13)之类的如本文所述的任何设备或系统执行的编码过程,并且可以通过参考这些系统来描述。
过程600可包括“获得视频序列的帧的图像数据”602,并且如上所述,可包括为编码而充分预处理的亮度和色度数据,但除此之外如上文对于系统300、400或1300和过程500所述。
过程600可包括“对帧进行压缩”604。这可涉及让编码器通过对帧的预测和原始版本之间的残差进行压缩来压缩视频帧。
然后,过程600可包括“重建压缩帧”606,并且从编码器的解码环路获得解码帧以进行帧间预测,以便解码帧可被用作尚未解码的视频序列的后续帧的参考帧。
过程600可包括“分析与重建帧相对应的原始图像数据帧的内容”608。按照一种形式,此操作涉及“比较当前和先前帧”610。具体地,它涉及比较与刚刚解码的解码帧相对应的原始帧,并且与连续的先前原始帧相比较。因此按照这种形式,分析是就随着每一帧被解码而被即时执行的,并且可被用作参考帧。两个原始帧被用于分析,因为这些帧在编码器处是现成可用的,而且比重建的帧更准确。从而,按照另一种替换形式,帧分析可以被事先执行,而不是即时执行,其中在要编码的整个视频序列中,所有的多个个体帧被指示来重指派。例如,这可以在视频序列开始被提供给编码器的解码环路之前被执行。
此操作还可包括“检测可能导致编码中的延迟的图像数据”612。换句话说,如本文所述,要被重指派到不同层的层是那些具有可能导致编码中的延迟的图像数据内容的层,因为该内容与先前帧相比变化太大,以至于当前帧不能仅仅依靠参考帧来提供当前帧上的准确重建图像数据。连续的先前帧可能是或者可能不是当前帧的参考帧。在当前帧可能有导致延迟的内容时,必须使用更少的帧间预测,或者换句话说,使用更少的帧间预测块来重建当前帧,并且替代地例如改为在帧中的块(或者其他分区)上使用比特成本更高的帧内预测模式来为预测模式选择器创建预测候选。按照一种形式,检测分析使用算法来检测场景变化或快速运动,例如光流、背景减法(双背景模型)、已知模糊的绝对差异之和(sum ofabsolute differences,SAD)、全局运动、或者与阈值相比的其他差异,等等。
按照一种形式,帧的这种比较是在帧级别上执行的,而不考虑编码器形成的切片、块或者其他帧分区。
另外,按照一种形式,检测过程只对最初指派的非基础层帧执行,因为如上所述,重指派对于初始基础层帧不是必要的。帧的初始层可以通过例如在语法数据库或存储器中已经提供的层指派来确定。否则,帧的类型(I、P或B),和/或当层扫某个帧顺序固定时的帧顺序,可以固有地指示出帧在哪个层上。
过程600可包括“将时间触发帧重指派到下层”614。从而,如果发现当前帧相对于先前帧指示出场景变化或快速运动,或者其他这样的内容事件,并且它是任何上层的有这种变化的内容的第一帧,那么在大多数情况下,所有层的这个第一帧或触发帧可以被重指派到基础层,虽然如果希望,它可以改为简单地被降低到较低的上层。
例如参考图7,多层结构700具有基础层702、中间层或上层1(704)、以及最高的上层2(706)。帧被示出在层结构700上的其初始位置中,其中帧1(708)和帧5(718)在基础层中,帧2(710)、帧4(716)和帧6(722)在上层1(704)中,并且帧3(712)在上层2(706)中。细的箭头表示参考帧依赖关系,其中箭头从后续的帧指向先前的参考帧。最初,这些帧只依赖于同一层上的帧或者下层上的帧。另外,初始帧3,或者帧3的初始位置(712),是用虚线示出的,因为这个帧是受到场景变化724影响的任何上层的第一帧,并且在这个场景中可被重指派。
具体到层结构700的示例,场景变化724沿着视频序列发生,从而帧3(712)是第一上层帧(这里从左到右或者按解码顺序),其图像数据如上文在操作608中所述被检测到以指示场景变化。从而,可被称为内容触发帧或者就称为触发帧的帧3(712)随后可被重指派(如粗箭头726所示)到基础层702(或者层1(704))。重指派可被认为是形成帧3(714)的新位置,该帧3现在已经被用图像数据解码,考虑到了场景变化,以用作帧4(716)的参考帧,帧4是层1(704)的第一帧,它将有图像数据受到场景变化的影响。一旦帧3被重指派,帧4(716)就可以使用帧3(714)作为参考帧,并且不需要用明显更大量的比特来进行解码。
为了完成重指派,过程600可包括“获得层结构定义”616,其中这可以从如上所述的语法存储器中获得。否则,帧类型和顺序可以固有地指示出层指派和参考帧依赖关系。所有的层和参考帧依赖关系一旦被层和参考列表控制生成就可以被提前获得,但否则可以在帧的重建形式被放置在DPB中并且帧的内容检测分析被执行时根据需要即时获得。
此后,过程600可包括“确定帧的初始层和/或依赖关系”618,这可包括获得由于图像数据内容而要重指派的第一触发帧的参考列表和层指派,并且如下所述,获得最初使用第一触发帧作为参考帧的帧(如果有的话)的参考列表和层指派,以及由于相同图像数据内容(例如,相同场景变化)而作为触发帧的每层的第一触发帧。
过程600可包括“改变帧的参考列表和/或层指派”620。此操作执行更新帧的参考列表,以及在也保存时更新层指派,以完成重指派。从而,帧3(714)的依赖关系从帧2(710)改为帧1(708)。最初对帧2(710)的依赖关系用虚线示出,现在已被消除了。这个操作将帧2从帧3的参考列表中移除,并且转而添加了帧1,这由结构700和800上从帧3到帧1的实体依赖线示出。注意,在这种情况下,实际上由于帧1在场景改变之前有先前场景的内容,在这种情况下参考帧依赖关系并不关键并且可以被或不被放弃。与参考列表类似,层指派也可以被改变,并且可以简单地是语法中的某个位置处的比特指示符的改变。参考列表和层指派是已知的格式,并且是在已知的语法参数、头部、开销或者元数据位置。在编码期间,为了完成重指派,参考帧和/或层指派的更新可以为每个要被重指派的帧反复执行。然后帧间预测通过根据经更新的参考列表使用参考帧来进行。
参考图8,示出了一个示例的所产生的帧间预测多层结构800,当允许参考依赖模式的灵活性时,多层结构800示出了触发帧(这里是帧3(712))可以被重指派到基础层702或者下层1(704)上的位置714处的帧3,而不将任何其他帧,例如帧5(718),移动到上层2(706),无论是为了完成该模式还是为了平衡各层上的帧计数以更好地确保帧率,如下所述。从而,这样的替换方式可以简单地被提供来重指派这样的第一触发帧:该第一触发帧既是它的层中的第一触发帧又是由同一场景变化724触发的所有上层的第一触发帧。在这种情况下,只是单单将第一触发帧3(714)重指派到基础层702,而不重指派任何其他帧。从而,在这种形式中,其他触发帧例如帧4(716)可以是对场景变化724做出反应的触发帧,但根本不被移动。
参考图9,在另一个示例中,每一层的每个第一触发帧可以被降低到较低的上层或者降低到基础层。这里,多层帧间预测结构900示出了上层的每个第一触发帧被重指派到基础层。从而,帧3(712)和帧4(716)如粗箭头924和926所示被重指派到基础层,以分别形成位置714和717。结果,结构900维持了时间结构,包括参考帧依赖模式和后续帧的帧指派,这些后续帧从受场景变化724影响的下一个基础帧5(718)开始,此后沿着视频序列。这样的方法更好地确保了在任何一层的第一个场景变化触发帧(这里是帧3)之后的所有后续触发帧(此示例中的4和5)也将在新场景内具有参考帧,以提高性能和质量。
过程600还可包括“修改参考帧依赖关系以使用重指派的帧作为参考帧”622。这指的是改变后续帧的参考列表,这些后续帧将使用所有上层的第一触发帧,或者其他重指派的帧,作为参考帧。在结构700、800和900(图7-图9)的情况下,从帧4(716,现在在位置717)到帧3(714)添加了新的依赖关系。在结构900上,帧6(722)和帧4(716)之间的依赖关系被消除,而从帧5(718)到帧4(717)的依赖关系也被添加,以允许依赖模式从帧5开始继续,如上所述。生成这些结构的重指派操作包括“确定帧的初始层和依赖关系”624和“改变帧的参考列表和/或层指派”626,如上文对于操作616、618和620所述,并且这里不需要重复说明。
参考图10,可选地,过程600可包括“将帧从下层移动到上层”628。这可以出于两个原因中的至少一个而被执行:补偿向下重指派的(一个或多个)帧,以维持每一帧所添加的帧率,这是通过维持沿着视频帧序列的指定长度的帧计数来实现的,和/或更好地维持沿着视频序列的重复参考帧依赖模式。通常这两个优点都是通过移动相同的帧来实现的。从而,过程600可包括“移动(一个或多个)帧率平衡帧”630。在这种情况下,如结构700(图7)上所示的初始帧5(718)可以被移动到更高的层2(706),以便帧5(现在被重指派为720)帮助维持层2(706)上的帧计数,并进而维持基于层的帧率或比特率。具体地,帧的这种向上移动在一定的帧序列长度上维持了层上的帧计数,并且进而,维持了时间层之间的所要求的目标帧率比率。然而,这个操作可以是可选的,当它只影响少量的帧,而可能不会被观看视频的观众注意到时。
同样地,向上移动帧的这个操作也可包括“移动(一个或多个)帧以保持依赖模式”632,并且取决于使用的编解码器和/或应用,可能需要严格遵循时间多层参考依赖模式。在这种情况下,触发帧3(现在是714)可被视为重启动所有层上的3帧的参考依赖模式,从而帧3(714)可被放置在基础层702上,以重复最初在帧1(708)开始的三帧、三层模式。于是,在这种情况下,帧5(718)也将被向上移动,如粗箭头728所示(图7),从基础层702移动到上层2(706)到位置720,以完成三层、交叉层模式(有帧3、帧4和帧5)。完成的结构在图10上示出,其中有多层结构800和重指派的帧714和720。
可选地,过程600可包括“修改参考帧依赖关系和/或层指派以使用平衡/模式帧作为参考帧”634,在这里,帧依赖关系也可以改变为至少使用第一触发帧(这里是帧3)作为参考帧。从而,从帧6到帧5的初始依赖关系将被消除,而从帧5(720)到帧4(716)的新的帧依赖关系将被添加,因为现在帧5(720)处于比帧4(716)更高的层。
参考图11-图12作为另一个示例,提供了初始多层帧间预测结构1100和所产生的结构1200,以示出动态时间层管理。具体而言,在这个示例中,帧可以从一层被重指派到另一层,以便在检测到触发帧的收敛时段期间最好地维持帧计数,并进而维持帧率。这不是僵硬地维持帧依赖模式,甚至比允许参考依赖模式的轻微灵活性更灵活,因为参考依赖模式仍然限制了将触发帧重指派到基础层或者下层,如上文对于结构900所描述。相反,这里强调的是帧计数,而不管沿着视频序列发生的重复参考帧模式。只要各层之间的目标帧率比率得到维持,这种替换方式就可以允许与模式的任何偏差。
为了展示这个示例,结构1100最初在三层1102、1104、1106中具有帧1-12,帧被分组为重复的三帧参考依赖模式1108(例如一个模式由帧4、帧5和帧6形成)。收敛长度1206(图12)在结构1200上延伸,从就在内容事件(例如场景变化1202)之前,直到帧依赖模式可以继续不受内容事件的影响为止。参考帧依赖关系可在这个收敛内通过重指派被调整,目标是使收敛沿着视频序列的帧数尽可能短,同时仍维持收敛内的各帧之间的帧率比率。
在这个示例中,两个场景变化1202和1204发生得非常接近彼此,其中帧3是所有上层的第一触发帧,因此被重指派到基础层1102。为了维持重复模式的相似性,同时在收敛1206内维持帧计数,帧4和帧5被重指派,并且分别被上移到上层。从帧5到帧4的依赖关系被维持。帧的这种重指派或移动在结构1100上用虚线箭头示出,而依赖关系的变化在结构1100上用X示出,它指示出依赖关系被消除,而结构1200上的较粗箭头示出了依赖关系是新的。从而,帧2和帧3;帧1和帧4;以及帧4和帧7之间的依赖关系被移除,而在帧1和帧3;帧3和帧4;以及帧3和帧7之间添加了新的依赖关系。第二场景变化1204发生在帧8之前,从而帧8成为所有上层的另一个第一触发帧,并且帧8被重指派到基础层。在这种情况下,后续帧的改变与帧3不同,其中帧11现在依赖于帧9而不是帧10。其结果是,包括基础层在内,在收敛1206内在每层上维持四个帧,这与重指派之前每层的帧计数相同,虽然现在没有严格遵循帧模式。
那么通过这种安排,收敛1206可以是用于满足目标帧率的时间段(其中在默认情况下,收敛是一秒钟)。在这个示例中,三个层被用于编码,基础层、层1和层2分别为10fps、20fps和30fps。正在使用的编解码器或者应用可允许瞬间的帧率波动。在这种情况下,收敛1206可被设置为两秒,这指的是让基础层每两秒产生20帧,层1每两秒产生40帧,层2每两秒产生60帧,但确切的瞬间模式可以变化,并且按照一种形式,可以仅由媒体应用编程接口(application programming interface,API)的框架来定义或限制,这是一个示例。
过程600可包括“在各层继续编码帧”636。其中在收敛之后,各层继续在其初始指派中编码帧,直到检测到另一帧作为重指派触发(或者检测到具有可能导致延迟的内容)为止。这些帧按照其到各层的指派在编码期间被用作参考帧以用于解码环路处的帧间预测,以如上所述维持各层的目标帧率或比特率。
多层编码帧被打包成单个比特流,这与多通道增强编码形成对比,后者维持单独的比特流,每个比特流具有多个增强质量和/或与彼此的性能差异。然后,接收多层比特流的解码器只选择将会生成由解码器处理的目标帧率或比特率的层上的帧。未选择的上层的帧被解码器丢弃(例如,当在比特流上达到帧标记时不被解码,或者当需要熵解码来识别帧位置时不被进一步解码)。所有的帧都不管怎样可以被存储以便例如将来可能使用或者转码。
虽然本文论述的示例过程500和600的实现方式可包括按图示的顺序从事示出的所有操作,但本公开不限于此,并且在各种示例中,这里的示例过程的实现方式可只包括示出的操作的子集,包括按与图示不同的顺序执行的操作,或者包括额外或更少的操作。
此外,可响应于由一个或多个计算机程序产品提供的指令来从事本文论述的操作中的任何一个或多个。这种程序产品可包括提供指令的信号承载介质,这些指令当被例如处理器执行时,可提供本文描述的功能。可在任何形式的一个或多个机器可读介质中提供计算机程序产品。从而,例如,包括一个或多个图形处理单元或处理器核心的处理器可响应于由一个或多个机器可读介质输送到处理器的程序代码和/或指令或指令集而从事这里的示例过程的一个或多个块。一般而言,机器可读介质可以以程序代码和/或指令或指令集的形式输送软件,所述程序代码和/或指令或指令集可使得本文描述的任何设备和/或系统实现本文论述的操作的至少一些部分和/或如本文所述的设备、系统或任何模块或组件的任何部分。
按照在本文描述的任何实现方式中所使用的,术语“模块”指的是被配置为提供本文描述的功能的软件逻辑、固件逻辑、硬件逻辑和/或电路的任何组合。软件可体现为软件封装、代码和/或指令集或指令,并且如本文描述的任何实现方式中使用的“硬件”例如可单一地或者组合地包括硬连线电路、可编程电路、状态机电路、固定功能电路、执行单元电路、和/或存储被可编程电路执行的指令的固件。模块可集体地或者个体地体现为形成更大系统的一部分的电路,例如集成电路(IC)、片上系统(SoC),等等。
按照在本文描述的任何实现方式中使用的,术语“逻辑单元”指的是被配置为提供本文描述的功能的固件逻辑和/或硬件逻辑的任何组合。按照在本文描述的任何实现方式中使用的,“硬件”可例如单独或者按任何组合包括硬连线电路、可编程电路、状态机电路和/或存储由可编程电路执行的指令的固件。逻辑单元可集体地或者个体地体现为形成更大系统的一部分的电路,例如集成电路(IC)、片上系统(SoC),等等。例如,逻辑电路可体现在逻辑电路中,以用于经由固件或硬件实现本文论述的编码系统。本领域普通技术人员将会明白,由硬件和/或固件执行的操作或者可经由软件来实现,软件可体现为软件包、代码和/或指令集或指令,并且还将会明白逻辑单元也可利用软件的一部分来实现其功能。
按照本文描述的任何实现方式中使用的,术语“组件”可以指模块或者指逻辑单元,因为这些术语在上文描述了。因此,术语“组件”可以指被配置为提供本文描述的功能的软件逻辑、固件逻辑和/或硬件逻辑的任何组合。例如,本领域普通技术人员将会明白,由硬件和/或固件执行的操作或者可经由软件模块来实现,软件模块可体现为软件包、代码和/或指令集,并且还将会明白,逻辑单元也可利用软件的一部分来实现其功能。
就本文的任何实现方式中使用的而言,术语“电路”可例如单独或者按任何组合包括或形成硬连线的电路、可编程电路(例如包括一个或多个个体指令处理核心的计算机处理器)、状态机电路、和/或存储由可编程电路执行的指令的固件。该电路可包括处理器(“处理器电路”)和/或控制器,该处理器和/或控制器被配置为执行一个或多个指令以执行本文描述的一个或多个操作。指令可体现为例如应用、软件、固件等等,其被配置为使得电路执行上述任何操作。软件可体现为记录在计算机可读存储设备上的软件包、代码、指令、指令集和/或数据。以层次化的方式,软件可体现或实现为包括任何数目的进程,而进程又可体现或实现为包括任何数目的线程,等等。固件可体现为被硬编码(例如,非易失性)在存储器设备中的代码、指令或指令集和/或数据。电路可集体地或者个体地体现为形成更大系统的一部分的电路,例如集成电路(IC)、专用集成电路(application-specific integratedcircuit要,ASIC)、片上系统(SoC)、桌面型计算机、膝上型计算机、平板计算机、服务器、智能电话,等等。其他实现方式可被实现为由可编程控制设备执行的软件。在这种情况下,术语“电路”旨在包括软件和硬件的组合,例如可编程控制设备或者能够执行该软件的处理器。如本文所述,可使用形成电路、处理器电路的硬件元素、软件元素或者其任何组合来实现各种实现方式。硬件元素的示例可包括处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器,等等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(programmable logic device,PLD)、数字信号处理器(digital signal processors,DSP)、现场可编程门阵列(field programmable gate array,FPGA)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组,等等。
参考图13,根据本公开的至少一些实现方式安排了用于多层视频编码的示例图像处理系统(或视频编码系统)或设备1000。在图示的实现方式中,系统1300可包括:处理器电路1303,其形成一个或多个处理器1003并且因此可被称为(一个或多个)处理器;(一个或多个)处理单元1330,来至少提供本文论述的编码器并且也可包括解码器;可选地,一个或多个成像设备1301,来捕捉图像;天线1302,来接收或发送图像数据;可选地,显示设备1305;以及一个或多个存储器存储1304。(一个或多个)处理器1303、存储器存储1304和/或显示设备1305可能够经由例如总线、导线或其他访问手段与彼此通信。在各种实现方式中,显示设备1305可被集成在系统1300中或者与系统1300分开实现。
如图13中所示,以及如上所述,(一个或多个)处理单元1330可具有逻辑模块或电路1350,该逻辑模块或电路具有针对编码修改图像数据的预处理单元1352,以及可以是或者可以包括编码器300的编码器1354。与此相关,编码器1354可具有解码环路单元1356,该解码环路单元具有重建单元1358,来重建经变换和量化的图像数据,滤波器单元1360,来完善重建的图像数据,帧间预测单元1362,帧内预测单元1376,以及与本文描述的重指派操作相关的,内容检测单元1368,与上述图像内容检测单元328(图3)相同或相似,参考层选择单元1370(或者330),以及层/参考控制单元(或者332),具有根据如上所述公开的实现方式和方法将帧从一个层重指派到另一个层以控制帧率和/或比特率的操作。帧间预测单元1362(或者324)可具有ME单元1364(或者328),其在参考帧和正被重建的当前帧之间匹配图像数据以确定从一个帧到另一个帧的运动向量,以及MC单元1366(或者330),其使用运动向量来生成图像数据块或者帧的其他分区的预测。预测模式选择单元1374可以选择最终的预测模式,该预测模式被用于生成图像数据块或者其他帧分区的残差,以修改原始数据和用于压缩,并且在编码器的解码环路上重建帧。编码器1354也可具有其他编码单元1378,这可包括没有提及的视频编码单元,包括例如上文描述的编码器300的任何或所有其他单元。所有这些执行如上文详细描述以及如该单元、电路或模块的称呼所暗示的任务。还将会理解,编码器1354在需要时也可包括解码器400。
将会明白,图13中所示的模块(或电路)可包括各种软件和/或硬件模块,和/或可经由软件或硬件或者其组合实现的模块。例如,模块可经由处理单元1330被实现为软件,或者模块可经由专用硬件部分或处理器电路1303来实现。另外,系统1300可按各种方式来实现。例如,系统1300(不包括显示设备1305)可被实现为具有单个芯片或设备的处理器电路,该单个芯片或设备具有加速器或图形处理器单元(graphics processor unit,GPU),其可以具有或者不具有图像信号处理器(image signal processor,ISP)1306、四核中央处理单元和/或存储器控制器输入/输出(I/O)模块。在其他示例中,系统1300(同样不包括显示设备1305)可被实现为芯片组或片上系统(SoC)。将会明白,天线1302也可用于接收图像数据来编码。
否则,(一个或多个)处理器(或处理器电路)1303可包括任何适当的实现方式,例如包括中央处理单元(CPU)、(一个或多个)微处理器、多核处理器、专用集成电路、(一个或多个)芯片、芯片组、可编程逻辑器件、图形卡、集成图形、(一个或多个)通用图形处理单元、例如图像信号处理器(ISP)1306那样的固定功能GPU、(一个或多个)数字信号处理器(digital signal processor,DSP)等等,等等。在一种形式中,(一个或多个)处理器包括至少一个
Figure BDA0003688824880000251
Atom处理器。
此外,存储器存储1304可以存储(一个或多个)DPB缓冲器1382重建(解码)的图像数据,以形成如上所述的参考帧,并且可具有语法存储器或者缓冲器1384,以存储开销或头部数据,以在比特流中伴随图像数据,并且包括如上所述的参考列表和层指派。该存储器还可存储原始图像数据的版本。存储器存储1304可以是任何类型的存储器,例如易失性存储器(例如,静态随机访问存储器(Static Random Access Memory,SRAM)、动态随机访问存储器(Dynamic Random Access Memory,DRAM),等等)或者非易失性存储器(例如,闪存,等等),等等。在非限制性示例中,存储器存储1304也可经由缓存存储器来实现。
在各种实现方式中,示例视频编码系统1300可以使用成像设备1301来形成或接收捕捉的原始图像数据,而存储器,经由到系统1300的传输,可以接收从其他设备或系统传输的视频序列图像。从而,系统1300可通过相机、天线1302或者有线连接来接收屏幕内容。相机可按各种方式来实现。从而,在一种形式中,图像处理系统1300可以是一个或多个数字相机或其他图像捕捉设备,并且成像设备1301在此情况下可以是相机硬件和相机传感器软件、模块或组件。在其他示例中,视频编码系统1300可具有包括或者可以是一个或多个相机的成像设备1301,并且逻辑模块1350可与成像设备1301远程通信或者可以其他方式通信地耦合到成像设备1001,以便对图像数据的进一步处理。
从而,视频编码系统1300可以是智能电话、平板设备、膝上型电脑或诸如可穿戴设备之类的其他移动设备,或者可以是其一部分,或者可与之通信,其中可穿戴设备包括智能眼镜、智能耳机、健身带,等等。在这些情况的任何一者中,这种技术可包括相机,例如数字相机系统、专用相机设备或者成像电话或平板设备,无论是静态图片还是视频相机、提供预览屏幕的相机、或者这些的某种组合。从而,在一种形式中,成像设备1301可包括相机硬件和光学器件,其中包括一个或多个传感器以及自动聚焦、变焦、光圈、ND滤光器、自动曝光、闪光灯、以及致动器控制。成像设备1301还可具有透镜、带有RGB拜耳彩色滤光器的图像传感器、模拟放大器、A/D转换器、将入射光转换成数字信号的其他组件,等等,和/或这些的组合。数字信号在本文中也可被称为原始图像数据。
其他形式包括相机传感器型成像设备之类的(例如,网络摄像头或网络摄像头传感器或其他互补金属氧化物半导体型图像传感器(complementary metal–oxide–semiconductor,CMOS)),不使用红-绿-蓝(RGB)深度相机和/或麦克风阵列来定位谁在说话。在其他示例中,作为相机传感器的附加或者替换,可以使用RGB深度相机和/或麦克风阵列。在一些示例中,成像设备1301可设有眼睛跟踪相机。否则,成像设备1301可以是记录、显示或处理数字图像的任何其他设备,例如视频游戏面板或控制台、机顶盒,等等。
如图所示,这些组件的任何一者可能够与彼此通信和/或与逻辑模块1350和/或成像设备1301的一些部分通信。从而,处理器1303可以通信地耦合到成像设备1301和逻辑模块1350两者以便操作这些组件。虽然图像处理系统1300如图13所示可包括与特定的组件或模块(或电路)相关联的一组特定的块或动作,但这些块或动作可与不同于这里图示的特定组件或模块的组件或模块相关联。
图14是根据本公开的至少一些实现方式安排的示例系统1400的说明图。在各种实现方式中,系统1400可以是移动系统,虽然系统1400不限于此情境。例如,系统1400可被包含到以下所列项中:个人计算机(PC)、服务器、膝上型计算机、超便携膝上型计算机、平板设备、触摸板、便携计算机、手持计算机、掌上计算机、个人数字助理(personal digitalassistant,PDA)、蜂窝电话、组合蜂窝电话/PDA、电视、智能设备(例如,智能电话、智能平板或智能电视)、移动互联网设备(mobile internet device,MID)、消息传递设备、数据通信设备、相机(例如,傻瓜相机、超级变焦相机、数码单反(digital single-lens reflex,DSLR)相机),等等。
在各种实现方式中,系统1400包括与显示器1420耦合的平台1402。平台1402可从内容设备接收内容,其中内容设备例如是(一个或多个)内容服务设备1430或者(一个或多个)内容递送设备1440或者其他类似的内容源。包括一个或多个导航特征的导航控制器1450可被用于与例如平台1402和/或显示器1420交互。在下文更详述描述这些组件的每一者。
在各种实现方式中,平台1402可包括芯片组1405、处理器1410、存储器1412、天线1413、存储装置1414、图形子系统1415、应用1416和/或无线电装置1418的任何组合。芯片组1405可提供处理器1410、存储器1412、存储装置1414、图形子系统1415、应用1416和/或无线电装置1418之间的相互通信。例如,芯片组1405可包括能够提供与存储装置1414的相互通信的存储适配器(未图示)。
处理器1410可被实现为复杂指令集计算机(Complex Instruction SetComputer,CISC)或者精简指令集计算机(Reduced Instruction Set Computer,RISC)处理器、x86指令集兼容处理器、多核、或者任何其他微处理器或中央处理单元(centralprocessing unit,CPU)。在各种实现方式中,处理器1410可以是(一个或多个)双核处理器、(一个或多个)双核移动处理器,等等。
存储器1412可被实现为易失性存储器设备,例如但不限于随机访问存储器(Random Access Memory,RAM)、动态随机访问存储器(Dynamic Random Access Memory,DRAM)、或者静态RAM(Static RAM,SRAM)。
存储装置1414可被实现为非易失性存储设备,例如但不限于磁盘驱动器、光盘驱动器、磁带驱动器、内部存储设备、附接存储设备、闪存、电池后备SDRAM(同步DRAM)、和/或网络可访问存储设备。在各种实现方式中,例如当包括多个硬盘驱动器时,存储装置1414可包括技术来为有价值的数字媒体增加存储性能增强保护。
图形子系统1415可以执行诸如静态或视频之类的图像的处理以便显示。图形子系统1415例如可以是图形处理单元(graphics processing unit,GPU)或者视觉处理单元(visual processing unit,VPU)。模拟或数字接口可被用于通信地耦合图形子系统1415和显示器1420。例如,该接口可以是高清晰度多媒体接口、DisplayPort、无线HDMI和/或无线HD遵从技术中的任何一者。图形子系统1415可被集成到处理器1410或芯片组1405中。在一些实现方式中,图形子系统1415可以是与芯片组1405通信地耦合的独立设备。
本文描述的图形和/或视频处理技术可被实现在各种硬件体系结构中。例如,图形和/或视频功能可被集成在芯片组内。或者,可以使用分立的图形和/或视频处理器。作为另外一种实现方式,图形和/或视频功能可由包括多核处理器在内的通用处理器来提供。在另外的实现方式中,这些功能可被实现在消费电子设备中。
无线电装置1418可包括能够利用各种适当的无线通信技术来发送和接收信号的一个或多个无线电装置。这种技术可涉及跨一个或多个无线网络的通信。示例无线网络包括(但不限于)无线局域网(wireless local area network,WLAN)、无线个人区域网(wireless personal area network,WPAN)、无线城域网(wireless metropolitan areanetwork,WMAN)、蜂窝网络、以及卫星网络。在跨这种网络进行通信时,无线电装置1418可根据任何版本的一个或多个适用的标准进行操作。
在各种实现方式中,显示器1420可包括任何电视型监视器或显示器。显示器1420可包括例如计算机显示屏幕、触摸屏显示器、视频监视器、类似电视的设备、和/或电视机。显示器1420可以是数字的和/或模拟的。在各种实现方式中,显示器1420可以是全息显示器。另外,显示器1420可以是可接收视觉投影的透明表面。这种投影可以传达各种形式的信息、图像和/或对象。例如,这种投影可以是移动增强现实(mobile augmented reality,MAR)应用的视觉覆盖。在一个或多个软件应用1416的控制下,平台1402可在显示器1420上显示用户界面1422。
在各种实现方式中,(一个或多个)内容服务设备1430可由任何国家的、国际的和/或独立的服务所容宿并且从而例如是平台1402经由互联网可访问的。(一个或多个)内容服务设备1430可耦合到平台1402和/或显示器1420。平台1402和/或(一个或多个)内容服务设备1430可耦合到网络1460以向和从网络1460传输(例如,发送和/或接收)媒体信息。(一个或多个)内容递送设备1440也可耦合到平台1402和/或显示器1420。
在各种实现方式中,(一个或多个)内容服务设备1430可包括有线电视盒、个人计算机、网络、电话、能够递送数字信息和/或内容的具备互联网能力的设备或家电、以及能够经由网络1460或者直接地在内容提供者与平台1402和/或显示器1420之间单向或双向地传输内容的任何其他类似设备。将会明白,可经由网络1460单向地和/或双向地向和从系统1400中的任何一个组件和内容提供者传达内容。内容的示例可包括任何媒体信息,例如包括视频、音乐、医疗和游戏信息,等等。
(一个或多个)内容服务设备1430可接收内容,例如有线电视节目,包括媒体信息、数字信息和/或其他内容。内容提供者的示例可包括任何有线电视或卫星电视或者无线电或互联网内容提供者。提供的示例并不意图以任何方式限制根据本公开的实现方式。
在各种实现方式中,平台1402可以从具有一个或多个导航特征的导航控制器1450接收控制信号。导航特征例如可被用于与用户界面1422进行交互。在各种实现方式中,导航可以是指点设备,该指点设备可以是允许用户将空间(例如,连续的和多维的)数据输入到计算机中的计算机硬件组件(具体而言是人机接口设备)。诸如图形用户界面(graphicaluser interface,GUI)以及电视机和监视器之类的许多系统允许用户利用物理手势来控制计算机或电视机和向其提供数据。
导航特征的移动可被在显示器上显示的指针、光标、聚焦环或其他视觉指示物的移动复制在显示器(例如,显示器1420)上。例如,在软件应用1416的控制下,位于导航上的导航特征例如可被映射到在用户界面1422上显示的虚拟导航特征。在各种实现方式中,可以不是单独的组件,而是可被集成到平台1402和/或显示器1420中。然而,本公开并不限于本文示出或描述的元素或者情境。
在各种实现方式中,例如,当被使能时,驱动器(未示出)可包括使得用户能够在初始启动之后通过触摸按钮来像电视机那样即刻开启和关闭平台1402的技术。程序逻辑可允许平台1402即使在平台被“关闭”时也可将内容流传输到媒体适配器或者(一个或多个)其他内容服务设备1430或(一个或多个)内容递送设备1440。此外,芯片组1405可包括对例如5.1环绕立体声音频和/或高清晰度14.1环绕立体声音频的硬件和/或软件支持。驱动器可包括用于集成图形平台的图形驱动器。在各种实现方式中,图形驱动器可包括外围组件互连(peripheral component interconnect,PCI)快速图形卡。
在各种实现方式中,系统1400中示出的组件中的任何一个或多个可被集成。例如,平台1402和(一个或多个)内容服务设备1430可被集成,或者平台1402和(一个或多个)内容递送设备1440可被集成,或者平台1402、(一个或多个)内容服务设备1430和(一个或多个)内容递送设备1440可被集成。在各种实现方式中,平台1402和显示器1420可以是集成的单元。例如,显示器1420和(一个或多个)内容服务设备1430可被集成,或者显示器1420和(一个或多个)内容递送设备1440可被集成。这些示例并不意欲限制本公开。
在各种实现方式中,系统1400可被实现为无线系统、有线系统或者两者的组合。当被实现为无线系统时,系统1400可包括适合于通过无线共享介质进行通信的组件和接口,例如一个或多个天线、发送器、接收器、收发器、放大器、滤波器、控制逻辑,等等。无线共享介质的示例可包括无线频谱的一些部分,例如RF频谱等等。当被实现为有线系统时,系统1400可包括适合于通过有线通信介质进行通信的组件和接口,例如输入/输出(I/O)适配器、将I/O适配器与相应的有线通信介质连接的物理连接器、网络接口卡(networkinterface card,NIC)、盘控制器、视频控制器、音频控制器,等等。有线通信介质的示例可包括导线、电缆、金属引线、印刷电路板(printed circuit board,PCB)、背板、交换结构、半导体材料、双绞线、同轴电缆、光纤,等等。
平台1402可建立一个或多个逻辑或物理信道来传输信息。该信息可包括媒体信息和控制信息。媒体信息可以指表示打算给用户的内容的任何数据。内容的示例例如可包括来自语音交谈的数据、视频会议、流视频、电子邮件(“email”)消息、语音邮件消息、字母数字符号、图形、图像、视频、文本,等等。来自语音交谈的数据可例如是话音信息、静默时段、背景噪声、舒适噪声、音调,等等。控制信息可以指表示打算给自动化系统的命令、指令或控制字的任何数据。例如,控制信息可被用于将媒体信息路由过系统,或者指示节点以预定的方式处理媒体信息。然而,实现方式并不限于图14中示出或描述的元素或情境。
如上所述,系统1300或1400可体现为不同的物理风格或外形参数。图15图示了根据本公开的至少一些实现方式安排的示例小外形参数设备1500。在一些示例中,可经由设备1500来实现系统1300或1400。在其他示例中,可经由设备1500来实现系统或编码器300、400或者其一些部分。在各种实现方式中,例如,设备1500可被实现为具有无线能力的移动计算设备。移动计算设备例如可以指具有处理系统和移动电源或电力供应(例如一个或多个电池)的任何设备。
移动计算设备的示例可包括:个人计算机(PC)、膝上型计算机、超便携膝上型计算机、平板设备、触摸板、便携计算机、手持计算机、掌上计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、智能设备(例如,智能电话、智能平板或智能移动电视)、移动互联网设备(MID)、消息传递设备、数据通信设备、相机,等等。
移动计算设备的示例还可包括被安排为被人穿戴的计算机,例如手腕计算机、手指计算机、戒指计算机、眼镜计算机、皮带扣计算机、臂环计算机、鞋子计算机、衣服计算机、以及其他可穿戴计算机。在各种实现方式中,例如,移动计算设备可被实现为除了语音通信和/或数据通信以外还能够执行计算机应用的智能电话。虽然作为示例可利用被实现为智能电话的移动计算设备来描述一些实现方式,但可明白也可利用其他无线移动计算设备来实现其他实现方式。实现方式不限于此情境中。
如图15所示,设备1500可包括具有正面1501和背面1502的外壳。设备1500包括显示器1504、输入/输出(I/O)设备1506、以及集成天线1508。设备1500还可包括导航特征1510。I/O设备1506可包括用于将信息输入到移动计算设备中的任何适当的I/O设备。I/O设备1506的示例可包括字母数字键盘、数字小键盘、触摸板、输入键、按钮、开关、麦克风、扬声器、语音识别设备和软件,等等。信息也可通过麦克风(未示出)被输入到设备1500中,或者可被语音识别设备来数字化。如图所示,设备1500可包括集成到设备1500的背面1502(或别处)的一个或多个相机1505(例如,包括镜头、光圈和成像传感器)和闪光灯1512。在其他示例中,相机1505和闪光灯1512可被集成到设备1500的正面1501中,或者正面和背面相机都可被提供。相机1505和闪光灯1512可以是相机模块的组件,用于创作被处理成流视频的图像数据,该流视频例如被输出到显示器1504和/或被从设备1500经由天线1508远程通信。
可利用硬件元素、软件元素或者两者的组合来实现各种实现方式。硬件元素的示例可包括处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器,等等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组,等等。软件的示例可包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(application program interface,API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号,或者这些的任何组合。确定一实现方式是否利用硬件元素和/或软件元素来实现可根据任何数目的因素而变化,例如期望的计算速率、功率水平、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及其他设计或性能约束。
至少一个实现方式的一个或多个方面可由存储在机器可读介质上的表示处理器内的各种逻辑的代表性指令来实现,这些指令当被机器读取时使得该机器制作逻辑来执行本文描述的技术。这种被称为“IP核心”的表现形式可被存储在有形机器可读介质上并且被提供到各种客户或制造设施以加载到实际制作该逻辑或处理器的制作机器中。
虽然已参考各种实现方式来描述了本文记载的某些特征,但此描述并不打算被从限制意义上来解释。因此,对本公开所属领域的技术人员来说显而易见的对本文描述的实现方式的各种修改以及其他实现方式,被认为属于本公开的精神和范围内。
在一个或多个第一实现方式中,一种用于视频编码的设备,包括:存储器,用于存储至少一个视频;以及至少一个处理器,与所述存储器通信地耦合,所述处理器被安排为通过以下步骤来进行操作:
以下示例属于附加实现方式。
按照一个或多个示例第一实现方式,一种视频编码的由计算机实现的方法,包括:在多个层处对帧的视频序列解码,提供多个替换帧率;以及将至少一个帧从其中一个层重指派到另一个层,以使用重指派的帧作为所述多个层的至少一个其他帧的参考帧。
按照一个或多个第二实现方式,关于所述第一实现方式,所述方法包括:将至少一个帧从与较快帧率相关联的较高层帧重指派到与较慢帧率相关联的较低层帧。
按照一个或多个第三实现方式,关于所述第一实现方式,所述方法包括:将至少一个帧从与较快帧率相关联的较高层帧重指派到与较慢帧率相关联的较低层帧;并且使用重指派的帧作为与重指派的帧是同一层的较低层上的其他帧的参考帧,并且用于帧间预测。
按照一个或多个第四实现方式,关于所述第一实现方式,所述方法包括:将至少一个帧从与较快帧率相关联的较高层帧重指派到与较慢帧率相关联的较低层帧,其中,所述较低层是所述多个层中具有最慢帧率的基础层。
按照一个或多个第五实现方式,关于所述第一至第四实现方式中的任一者,所述方法包括:依据所述至少一个帧的图像数据内容来重指派所述至少一个帧。
按照一个或多个第六实现方式,关于所述第一至第四实现方式中的任一者,所述方法包括:依据所述至少一个帧的图像数据内容来重指派所述至少一个帧;并且检测所述至少一个帧是否是具有倾向于在对图像数据进行编码时导致延迟的图像数据内容的帧。
按照一个或多个第七实现方式,关于所述第一至第四实现方式中的任一者,所述方法包括:依据所述至少一个帧的图像数据内容来重指派所述至少一个帧;并且检测所述至少一个帧是否指示出场景变化或快速运动以触发所述至少一个帧的重指派。
按照一个或多个第八实现方式,关于所述第一至第四实现方式中的任一者,所述方法包括:依据所述至少一个帧的图像数据内容来重指派所述至少一个帧;并且其中,紧跟在触发帧之后的至少一个帧被重指派到不同的层。
按照一个或多个第九实现方式,关于所述第一至第八实现方式中的任一者,所述方法包括:将一个或多个帧从较低层移动到相对于所述较低层的较高层,其中,所述较高层缺失至少一个重指派的帧,并且来自较低层的一个或多个帧被移动来维持各层上的帧的相同原始计数。
按照一个或多个示例第十实现方式,一种视频编码的由计算机实现的系统,包括:存储器,至少存储帧的视频序列的图像数据;以及处理器电路,与所述存储器通信地耦合并且形成至少一个处理器,所述至少一个处理器被安排为通过以下方式来操作:在多个层处对视频序列的视频帧进行解码,以形成各自具有不同帧率的多个视频序列;以及将至少一个帧从其中一个层重指派到另一个层,以使用重指派的帧作为帧间预测参考帧,并且所述重指派取决于对所述至少一个帧的导致延迟的图像数据内容的检测。
按照一个或多个第十一实现方式,关于所述第十实现方式,其中,所述导致延迟的图像数据内容指示出场景变化或快速运动。
按照一个或多个第十二实现方式,关于所述第十或第十一实现方式,其中,被发现具有导致延迟的内容的所有上层中只有第一帧被重指派到下层。
按照一个或多个第十三实现方式,关于所述第十至第十二实现方式中的任一者,其中,所述多个层中的每个上层具有被发现具有导致延迟的内容的第一帧,其中,所述处理器被安排为通过以下方式来操作:将所述第一帧中按解码顺序的第一个设置为至少一个其他第一帧的参考帧。
按照一个或多个第十四实现方式,关于所述第十至第十三实现方式中的任一者,其中,被发现具有导致延迟的内容的每个上层的第一帧被重指派到下层。
按照一个或多个第十五实现方式,关于所述第十至第十四实现方式中的任一者,其中,重指派的帧被从所述多个层中的最高可用层重指派到基础层。
按照示例第十六实现方式,关于所述第十至第十五实现方式中的任一者,其中,所述处理器被安排为通过以下方式来操作:将一个或多个帧从较低层移动到相对于所述较低层的较高层,其中,所述较高层缺失至少一个重指派的帧,并且较低层的一个或多个帧被移动来维持各层上的帧的相同原始计数。
按照一个或多个示例第十七实现方式,至少一个非暂态机器可读介质,包括多个指令,所述多个指令响应于在计算设备上被执行,使得所述计算设备通过以下方式来操作:在多个层处对帧的视频序列进行解码,以提供多个替换帧率;以及将至少一个帧从其中一个层重指派到另一个层,以使用重指派的帧作为所述多个层的至少一个其他帧的参考帧。
按照一个或多个第十八实现方式,关于所述第十七实现方式,其中,所述重指派取决于对被认为导致处理延迟的帧的图像数据内容的检测。
按照一个或多个第十九实现方式,关于所述第十七或第十八实现方式,其中,所述图像数据内容是指示出场景变化或快速运动的图像数据。
按照一个或多个第二十实现方式,关于所述第十七至第十九实现方式中的任一者,其中,所述指令使得所述计算设备通过以下方式来操作:将一个或多个帧从上层重指派到下层并且将一个或多个帧从下层重指派到上层,其中,上和下是相对于帧的当前层而言的。
按照一个或多个第二十一实现方式,关于所述第十七至第二十实现方式中的任一者,其中,所述指令使得所述计算设备通过以下方式来操作:将基础层上的至少一个帧重指派到上层以维持与其中一个层相关联的目标帧率。
按照一个或多个第二十二实现方式,关于所述第十七至第二十一实现方式中的任一者,其中,所述指令使得所述计算设备通过以下方式来操作:将基础层上的至少一个帧重指派到上层以维持在所述视频序列中的帧的帧间预测期间沿着所述视频序列发生的重复参考帧模式。
按照一个或多个第二十三实现方式,关于所述第十七至第二十一实现方式中的任一者,其中,涉及所有层的重复帧依赖模式被忽略,并且帧被重指派到不同的层以在视频的收敛长度中维持每个层的帧计数。
按照一个或多个第二十四实现方式,关于所述第十七至第二十三实现方式中的任一者,其中,只有不包括基础层的所有上层的单个第一触发帧被重指派到所述基础层,其中,触发帧被发现具有导致延迟的图像数据内容。
按照一个或多个第二十五实现方式,关于所述第十七至第二十三实现方式中的任一者,其中,每个上层的每个第一触发帧被重指派到基础层,其中,触发帧被发现具有导致延迟的图像数据内容。
在一个或多个第二十六实现方式中,至少一个机器可读介质,包括多个指令,所述多个指令响应于在计算设备上被执行,使得所述计算设备执行根据上述实现方式中的任一者所述的方法。
在一个或多个第二十七实现方式中,一种设备,可以包括用于执行根据上述实现方式中的任一者所述的方法的装置。
将会认识到,实现方式不限于这样描述的实现方式,而是可在带有修改和变更的情况下被实现,而不脱离所附权利要求的范围。例如,上述实现方式可包括特征的特定组合。然而,上述实现方式不限于此,并且在各种实现方式中,上述实现方式可包括仅从事这种特征的子集,从事这种特征的不同顺序,从事这种特征的不同组合,和/或从事除明确列出的那些特征以外的额外特征。因此,应当参考所附权利要求以及这种权利要求有权享有的等同物的完整范围来确定实现方式的范围。

Claims (25)

1.一种视频编码的由计算机实现的方法,包括:
在多个层处对帧的视频序列进行解码,以提供多个替换帧率;以及
将至少一个帧从其中一个层重指派到另一个层,以使用重指派的帧作为所述多个层的至少一个其他帧的参考帧。
2.如权利要求1所述的方法,包括:将至少一个帧从与较快帧率相关联的较高层帧重指派到与较慢帧率相关联的较低层帧。
3.如权利要求2所述的方法,包括:使用重指派的帧作为与重指派的帧是同一层的较低层上的其他帧的参考帧,并且用于帧间预测。
4.如权利要求2所述的方法,其中,所述较低层是所述多个层中具有最慢帧率的基础层。
5.如权利要求1至4中任一项所述的方法,包括:依据所述至少一个帧的图像数据内容来重指派所述至少一个帧。
6.如权利要求5所述的方法,包括:检测所述至少一个帧是否是具有倾向于在对图像数据进行编码时导致延迟的图像数据内容的帧。
7.如权利要求5所述的方法,包括:检测所述至少一个帧是否指示出场景变化或快速运动以触发所述至少一个帧的重指派。
8.如权利要求5所述的方法,其中,紧跟在触发帧之后的至少一个帧被重指派到不同的层。
9.如权利要求1至4中任一项所述的方法,包括:将一个或多个帧从较低层移动到相对于所述较低层的较高层,其中,所述较高层缺失至少一个重指派的帧,并且来自较低层的一个或多个帧被移动来维持各层上的帧的相同原始计数。
10.一种视频编码的由计算机实现的系统,包括:
存储器,至少存储帧的视频序列的图像数据;以及
处理器电路,与所述存储器通信地耦合并且形成至少一个处理器,所述至少一个处理器被安排为通过以下方式来操作:
在多个层处对视频序列的视频帧进行解码,以形成各自具有不同帧率的多个视频序列;以及
将至少一个帧从其中一个层重指派到另一个层,以使用重指派的帧作为帧间预测参考帧,并且所述重指派取决于对所述至少一个帧的导致延迟的图像数据内容的检测。
11.如权利要求10所述的系统,其中,所述导致延迟的图像数据内容指示出场景变化或快速运动。
12.如权利要求10所述的系统,其中,被发现具有导致延迟的内容的所有上层中只有第一帧被重指派到下层。
13.如权利要求10所述的系统,其中,所述多个层中的每个上层具有被发现具有导致延迟的内容的第一帧,其中,所述处理器被安排为通过以下方式来操作:将所述第一帧中按解码顺序的第一个设置为至少一个其他第一帧的参考帧。
14.如权利要求10至13中任一项所述的系统,其中,被发现具有导致延迟的内容的每个上层的第一帧被重指派到下层。
15.如权利要求10至13中任一项所述的系统,其中,重指派的帧被从所述多个层中的最高可用层重指派到基础层。
16.如权利要求10至13中任一项所述的系统,其中,所述处理器被安排为通过以下方式来操作:将一个或多个帧从较低层移动到相对于所述较低层的较高层,其中,所述较高层缺失至少一个重指派的帧,并且较低层的一个或多个帧被移动来维持各层上的帧的相同原始计数。
17.至少一个非暂态机器可读介质,包括多个指令,所述多个指令响应于在计算设备上被执行,使得所述计算设备通过以下方式来操作:
在多个层处对帧的视频序列进行解码,以提供多个替换帧率;以及
将至少一个帧从其中一个层重指派到另一个层,以使用重指派的帧作为所述多个层的至少一个其他帧的参考帧。
18.如权利要求17所述的介质,其中,所述重指派取决于对被认为导致处理延迟的帧的图像数据内容的检测。
19.如权利要求17所述的介质,其中,所述图像数据内容是指示出场景变化或快速运动的图像数据。
20.如权利要求17至19中任一项所述的介质,其中,所述指令使得所述计算设备通过以下方式来操作:将一个或多个帧从上层重指派到下层并且将一个或多个帧从下层重指派到上层,其中,上和下是相对于帧的当前层而言的。
21.如权利要求17至19中任一项所述的介质,其中,所述指令使得所述计算设备通过以下方式来操作:将基础层上的至少一个帧重指派到上层以维持与其中一个层相关联的目标帧率。
22.如权利要求17至19中任一项所述的介质,其中,所述指令使得所述计算设备通过以下方式来操作:将基础层上的至少一个帧重指派到上层以维持在所述视频序列中的帧的帧间预测期间沿着所述视频序列发生的重复参考帧模式。
23.如权利要求17至19中任一项所述的介质,其中,涉及所有层的重复帧依赖模式被忽略,并且帧被重指派到不同的层以在视频的收敛长度中维持每个层的帧计数。
24.至少一种机器可读介质,包括多个指令,所述指令响应于在计算设备上被执行,使得所述计算设备执行如权利要求1至9中任一项所述的方法。
25.一种设备,包括用于执行如权利要求1至9中任一项所述的方法的装置。
CN202210654610.8A 2021-07-13 2022-06-10 多层视频编码的方法和系统 Pending CN115623222A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/373,986 2021-07-13
US17/373,986 US20210392352A1 (en) 2021-07-13 2021-07-13 Method and system of multi-layer video coding

Publications (1)

Publication Number Publication Date
CN115623222A true CN115623222A (zh) 2023-01-17

Family

ID=78826205

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210654610.8A Pending CN115623222A (zh) 2021-07-13 2022-06-10 多层视频编码的方法和系统

Country Status (3)

Country Link
US (1) US20210392352A1 (zh)
CN (1) CN115623222A (zh)
DE (1) DE102022106872A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230110088A1 (en) * 2021-10-13 2023-04-13 Meta Platforms Technologies, Llc Systems and methods for scheduling wireless channel access for remote rendering
WO2023144594A1 (en) * 2022-01-31 2023-08-03 Telefonaktiebolaget Lm Ericsson (Publ) Scene change acceleration in cloud gaming

Also Published As

Publication number Publication date
DE102022106872A1 (de) 2023-01-19
US20210392352A1 (en) 2021-12-16

Similar Documents

Publication Publication Date Title
CN109792540B (zh) 利用每帧参数控制的硬件加速的视频编码方法和系统
US10554977B2 (en) Method and system of high throughput arithmetic entropy coding for video coding
US11223831B2 (en) Method and system of video coding using content based metadata
JP6120390B2 (ja) 次世代動画用コンテンツに適応的な特性補償済み予測
US9661329B2 (en) Constant quality video coding
US10230950B2 (en) Bit-rate control for video coding using object-of-interest data
CN109565587B (zh) 具有上下文解码和重构旁路的视频编码的方法和系统
US10674151B2 (en) Adaptive in-loop filtering for video coding
CN106664409B (zh) 视频编码中黄金帧选择的方法、系统、设备和介质
KR102606584B1 (ko) 비디오 코딩을 위한 프레임 재정렬 방법 및 시스템
WO2017003594A1 (en) Method and system of adaptive reference frame caching for video coding
US10356417B2 (en) Method and system of video coding using projected motion vectors
CN115623222A (zh) 多层视频编码的方法和系统
EP2804384A1 (en) Slice level bit rate control for video coding
KR20150082512A (ko) 계층간 모션 데이터 상속
CN107736026B (zh) 样本自适应偏移编码
US10869041B2 (en) Video cluster encoding for multiple resolutions and bitrates with performance and quality enhancements
CN107743707B (zh) 低位率视频编解码
KR101777487B1 (ko) 코딩 단위 비트 수 제한

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication