CN117136544A - 视频流式传输中的参数集指示的方法 - Google Patents

视频流式传输中的参数集指示的方法 Download PDF

Info

Publication number
CN117136544A
CN117136544A CN202280014716.XA CN202280014716A CN117136544A CN 117136544 A CN117136544 A CN 117136544A CN 202280014716 A CN202280014716 A CN 202280014716A CN 117136544 A CN117136544 A CN 117136544A
Authority
CN
China
Prior art keywords
sps
current
video sample
video
serving
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
CN202280014716.XA
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.)
Tencent America LLC
Original Assignee
Tencent America LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent America LLC filed Critical Tencent America LLC
Publication of CN117136544A publication Critical patent/CN117136544A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • 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
    • 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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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
    • 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

Landscapes

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

Abstract

本公开内容总体上涉及视频编码,并且特别地涉及视频文件封装和参数信令。例如,公开了一种用于处理视频数据的方法,该方法可以包括:接收包括至少一个视频样本的比特流,所述至少一个视频样本包括当前视频样本和先前视频样本,其中,每个视频样本包括至少一个视频帧,并且其中,每个视频样本与用于对所述至少一个视频样本中的每个视频样本进行解码的服务SPS相关联;确定用于当前视频样本的服务SPS为以下之一:已经从比特流中解析并用于对先前视频样本进行解码的先前SPS、封装在当前视频样本中的当前SPS;以及候选SPS的列表中的SPS;以及基于用于当前视频样本的服务SPS,对当前视频样本进行解码。

Description

视频流式传输中的参数集指示的方法
交叉引用
本申请基于在2022年10月26日提交的题为“METHODS OF PARAMETER SETINDICATION IN VIDEO STREAMING”的美国非临时申请第17/973,986号并要求该美国非临时申请的优先权的权益,该美国非临时申请基于在2022年3月25日提交的题为“METHOD ANDAPPARATUS FOR PARAMETER SET INDICATION IN VIDEO STREAMING”的美国临时申请第63/323,846号并要求该美国临时申请的优先权的权益,该美国非临时申请和美国临时申请的全部内容通过引用并入本文中。
技术领域
本公开内容描述了一组高级视频编码技术。更具体地,所公开的技术涉及对视频比特流的视频文件封装以及对参数信令的解码的实现和增强。
背景技术
本文中提供的背景描述是为了总体上呈现本公开内容的背景的目的。就该背景技术部分中描述的工作的程度而言,目前署名的发明人的工作以及在提交申请时可不被另外定义为现有技术的描述的方面既没有明确地也没有隐含地被承认为本公开内容的现有技术。
多媒体系统可以包括支持以下过程的模块:视频捕获、视频编码、视频文件封装、文件传输、文件解封装、视频解码和视频渲染。在这些过程中,文件封装用于利用基本元数据信息组织原始视频比特流,以优化传输和解码过程。在文件封装期间,比特流中的视频帧通常被重新定义为文件中的样本(或视频样本),通常,样本可以被视为具有诸如帧大小、呈现时间等的附加元数据的视频帧。
可以使用采用运动补偿的帧间图片预测来执行视频编码和视频解码。未压缩的数字视频可以包括一系列图片,每个图片具有例如1920×1080个亮度样本和相关联的全色度样本或子采样色度样本的空间维度。该系列图片可以具有固定的或可变的图片速率(替选地被称为帧速率),例如每秒60个图片或者每秒60帧。未压缩的视频对于流式传输或数据处理具有特定的比特率要求。例如,在每颜色通道每像素8比特下,像素分辨率为1920×1080、帧速率为60帧/秒、色度子采样为4:2:0的视频需要接近1.5Gbit/s的带宽。一小时的这样的视频需要多于600千兆字节的存储空间。
视频编码和解码的一个目的可以是通过压缩减少未压缩的输入视频信号中的冗余。在一些情况下,压缩可以帮助将前述带宽和/或存储空间要求降低两个数量级或更多。可以采用无损压缩和有损压缩两者及其组合。无损压缩是指可以经由解码过程根据经压缩的原始信号来重构原始信号的准确副本的技术。有损压缩是指原始视频信息在编码期间没有完全保留并且在解码期间也不能完全恢复的编码/解码过程。当使用有损压缩时,重构信号可能与原始信号不相同,但是原始信号与重构信号之间的失真变得足够小,以使得即使有一些信息损失,重构信号对于预期应用也是有用的。在视频的情况下,在许多应用中广泛地采用有损压缩。容许的失真量取决于应用。例如,某些消费者流式传输应用的用户可以比电影或电视广播应用的用户容忍更高的失真。可以选择或调整特定编码算法可实现的压缩比以反映各种失真容限:较高的可容忍的失真通常允许产生较高的损失和较高的压缩比的编码算法。
视频编码器和解码器可以利用来自若干宽泛类别和步骤的技术,包括例如运动补偿、傅里叶变换、量化和熵编码。
发明内容
本公开内容的各方面总体上涉及视频编码和解码,并且特别地,涉及对视频比特流的视频文件封装以及对参数信令的解码的实现和增强。
本公开内容的各方面提供了一种用于处理视频数据的方法。该方法包括:接收包括至少一个视频样本的比特流,所述至少一个视频样本包括当前视频样本和先前视频样本,其中,至少一个视频样本中的每个视频样本包括至少一个视频帧,并且其中,至少一个视频样本中的每个视频样本与用于对至少一个视频样本中的每个视频样本进行解码的服务序列参数集(serving sequence parameter set,SPS)相关联;确定用于当前视频样本的服务SPS为以下之一:已经从比特流中解析并且用于对先前视频样本进行解码的先前SPS;被封装在当前视频样本中的当前SPS;以及候选SPS的列表中的SPS;以及基于用于当前视频样本的服务SPS,对当前视频样本进行解码。
本公开内容的各方面还提供了包括被配置成执行上面方法实现中的任一个的电路系统的视频编码或解码设备或装置。
本公开内容的各方面还提供了一种非暂态计算机可读介质,其存储有指令,所述指令在由计算机执行以用于视频解码和/或编码时使计算机执行用于视频解码和/或编码的方法。
附图说明
根据以下详细描述和附图,所公开的主题的其他特征、性质和各种优点将更加明显,在附图中:
图1示出了视频编码/解码方法的示例性应用环境的图;
图2示出了各种示例视频样本;
图3示出了根据示例实施方式的通信系统(300)的简化框图的示意图;
图4示出了根据示例实施方式的通信系统(400)的简化框图的示意图;
图5示出了根据示例实施方式的视频解码器的简化框图的示意图;
图6示出了根据示例实施方式的视频编码器的简化框图的示意图;
图7示出了根据另一示例实施方式的视频编码器的框图;
图8示出了根据另一示例实施方式的视频解码器的框图;
图9示出了根据本公开内容的示例实施方式的方法的流程图;以及
图10示出了根据本公开内容的示例实施方式的计算机系统的示意图。
具体实施方式
现在将参照附图在下文中详细描述本发明,附图形成本发明的一部分,并且通过图示的方式示出实施方式的具体示例。然而,请注意,本发明可以以各种不同形式来实施,并且因此,所涵盖或所要求保护的主题旨在被解释为不限于以下要阐述的实施方式中的任一个。还请注意,本发明可以被实施为方法、设备、部件或系统。因此,本发明的实施方式可以例如采取硬件、软件、固件或其任何组合的形式。
贯穿说明书和权利要求书,术语可以具有在上下文中建议或暗示的超出明确陈述的含义的具有细微差别的含义。如本文所使用的短语“在一个实施方式中”或“在一些实施方式中”不一定是指相同的实施方式,并且如本文所使用的短语“在另一实施方式中”或“在其他实施方式中”不一定是指不同的实施方式。同样,如本文中所使用的短语“在一个实现方式中”或“在一些实现方式中”不一定是指相同的实现方式,并且如本文所使用的短语“在另一实现方式中”或“在其他实现方式中”不一定是指不同的实现方式。例如,意指所要求保护的主题包括示例性实施方式/实现方式的整体或部分的组合。
通常,术语可以至少部分地从上下文中的用法来理解。例如,如本文中所使用的诸如“和”、“或”或“和/或”的术语可以至少部分地取决于使用这样的术语的上下文而包括各种各样的含义。通常,如果“或”用于关联列表,例如A、B或C,则“或”旨在表示A、B和C,本文中以包含的意义使用,以及A、B或C,本文中以排他的意义使用。另外,至少部分地取决于上下文,如本文所使用的术语“一个或更多个”或“至少一个”可以用于以单数意义描述任何特征、结构或特性,或者可以用于以复数意义描述特征、结构或特性的组合。类似地,术语例如“一”、“一个”或“该”同样可以被理解成传达单数用法或传达复数用法,这至少部分地取决于上下文。另外,术语“基于”或“由......确定”可以被理解为不一定旨在传达排他的因素集合,并且可以替代地允许存在不一定明确描述的附加因素,这同样至少部分地取决于上下文。
图1是根据实施方式的视频处理(编码/解码)方法的应用环境的图。参照图1,将视频处理方法应用于视频处理系统。视频处理系统包括终端110和服务器120。终端110通过网络连接至服务器120。终端110可以是但不限于台式终端或移动终端,并且移动终端可以具体地是移动电话、平板计算机、笔记本计算机等中的至少一个,并且在本申请中没有强加限制。服务器120可以通过使用独立服务器或包括多个服务器的服务器集群来实现。终端也可以被称为客户端。
视频编码方法和视频解码方法可以在终端110和/或服务器120中实现。终端110可以通过使用视频编码方法对当前帧进行编码,并且然后将已编码视频帧发送至服务器120,或者从服务器120接收已编码数据(例如,比特流),通过使用视频解码方法对已编码数据进行解码,并且然后生成重构的视频帧。服务器120可以在存储期间对代码流执行转码。在这种情况下,在服务器上完成视频编码方法。如果服务器120需要对代码流进行解码,则在服务器上完成视频解码方法。可以理解的是,编码端和解码端可以是同一端或不同端。诸如终端或服务器的计算机设备可以是编码端或解码端,或者是编码端和解码端两者。
参照图1,终端110或服务器120可以通过使用编码器执行视频编码,或通过使用解码器执行视频解码。终端110或服务器120也可以通过使用运行视频编码程序的处理器来执行视频编码,或通过使用运行视频解码程序的处理器来执行视频解码。例如,在通过输入接口接收到由终端110发送的已编码数据之后,服务器120可以直接将已编码数据传输给处理器以进行解码,或者可以将已编码数据存储在数据库中以便后续解码。在通过由处理器对原始视频帧进行编码获得已编码数据之后,服务器120可以通过输出接口直接将已编码数据发送至终端110,或者可以将已编码数据存储在数据库中以供后续传输。
在示例实现方式中,在本公开内容中提供的视频编码方法和视频解码方法可以应用于诸如视频点播或视频流式传输的应用。在这样的应用中,作为示例,终端可以向服务器发送播放视频的请求。服务器可以从数据库中获取源数据,视频源可以是预编码的视频数据,或者服务器可以对视频源进行编码以实时获得已编码视频数据,例如,以满足一定的服务要求和/或传输带宽。然后,服务器可以经由比特流将已编码视频数据发送至终端。终端还可以支持多种播放模式,例如快进、倒带或跳转(例如,通过点击时间线上的新时间点,或在时间线上将播放头拖动到新的时间点)。跳转播放涉及随机存取功能,这将在后续部分中详细地描述。
在示例实现方式中,在本公开内容中提供的视频编码方法和视频解码方法可以应用于具有视频呼叫功能的应用。该应用可以包括社交应用或即时消息收发应用。在安装有该应用的实施方式的两个终端之间的视频呼叫期间,第一终端通过使用摄像装置获取视频帧,通过使用应用的视频编码功能对视频帧进行编码,以获得已编码数据,并将已编码数据发送至应用的后台服务器。后台服务器将已编码数据转发给第二终端。在接收到已编码数据之后,第二终端通过使用应用的视频解码功能对已编码数据进行解码,并且执行重构以获得视频帧,以显示视频帧。类似地,第二终端可以通过使用后台服务器将通过编码获得的已编码数据发送至第一终端,并且第一终端执行解码和显示,从而实现双方之间的视频呼叫。
在示例实现方式中,在本申请中提供的视频编码方法和视频解码方法可以应用于具有视频回放功能的应用。例如,该应用可以包括视频直播流应用、短视频应用或视频回放应用。安装有本申请的实施方式的终端可以通过使用摄像装置获取视频帧,通过使用本申请的视频编码功能对视频帧进行编码,以获得已编码数据,并将已编码数据发送至本申请的后台服务器。如果另一终端请求观看视频,则后台服务器将视频的已编码数据发送至另一终端。另一终端上的应用对已编码数据进行解码,以播放视频。
前述几种可能的应用场景仅用于示例性描述。本公开内容的各个实施方式中提供的视频编码方法和视频解码方法还可以应用于需要视频编码和解码的任何场景。
图2示出了示例性高级别视频比特流结构。比特流可以包括n个视频样本(202)。每个视频样本由至少一个视频帧形成。在一个实现方式中,每个视频样本中的视频帧的数目可以是变量。在一个实现方式中,每个视频样本中的视频帧的数目可以是固定的(例如,每个视频样本可以包括1个视频帧,或每个视频样本可以包括2个视频帧,等等)。在一个实现方式中,每个视频样本可以被封装在一个数据分组中以用于传输(例如,互联网协议(IP)分组)。在一个实现方式中,每个视频帧可以被封装在一个数据分组中。
在示例实现方式中,共享同一序列参数集(SPS,也称为序列级别参数集)的多个相邻视频样本可以形成视频序列(或序列、已编码视频序列)。参照图2,视频样本1和视频样本2可以形成序列,并且该序列包括两个视频样本中的所有帧。视频帧n-1和视频帧n可以形成另一序列。视频样本还可以封装SPS,该SPS可以用于对同一序列中的视频样本进行解码。SPS可以被封装在序列中的一个视频样本中,例如在序列中的起始视频样本中。SPS也可以被封装在序列中的所有视频样本中。在后续部分中将描述详细的实现方式。在本公开内容中,对视频样本进行解码包括:对视频样本中的所有帧进行解码。作为示例,比特流可以包括n个视频样本,其中n是正整数,每个视频样本可以包括1个视频帧,并且n个视频样本可以形成多个序列。
在本公开内容中,视频序列可以由单个视频样本形成。
图3示出了根据本公开内容的实施方式的通信系统(300)的简化框图。通信系统(300)包括多个终端设备,多个终端设备可以经由例如网络(350)彼此通信。例如,通信系统(300)包括经由网络(350)互连的第一对终端设备(310)和终端设备(320)。在图3的实施方式中,第一对终端设备(310)和终端设备(320)执行数据的单向传输。例如,终端设备(310)可以对视频数据(例如由终端设备(310)捕获的视频图片流)进行编码以经由网络(350)传输到另一终端设备(320)。已编码视频数据可以以一个或更多个已编码视频比特流的形式传送。终端设备(320)可以从网络(350)接收已编码视频数据,对已编码视频数据进行解码以恢复视频图片,并根据恢复的视频数据显示视频图片。单向数据传输可能在媒体服务应用等中实现。注意,终端设备(310)也可以直接从内部/外部存储装置和/或内部/外部数据库检索预编码的视频数据。在这种情况下,可以跳过编码过程,并且终端设备(310)可以直接将视频比特流发送至终端设备(320)。
在另一实施方式中,通信系统(300)包括执行已编码视频数据的双向传输的第二对第三终端设备(330)和第四终端设备(340),所述双向传输可以例如在视频会议应用期间实现。对于数据的双向传输,第三终端设备(330)和第四终端设备(340)中的每个终端设备可以对视频数据(例如由终端设备捕获的视频图片流)进行编码,以经由网络(350)传输到第三终端设备(330)和第四终端设备(340)中的另一终端设备。第三终端设备(330)和第四终端设备(340)中的每个终端设备还可以接收由第三终端设备(330)和第四终端设备(340)中的另一终端设备发送的已编码视频数据,并且可以对已编码视频数据进行解码以恢复视频图片,并且可以根据恢复的视频数据在可访问的显示设备上显示视频图片。
在图3的示例中,终端设备(310)、(320)、(330)和(340)可以被实现为服务器、个人计算机和智能电话,但本公开内容的基本原理的适用性可以不限于此。本公开内容的实施方式可以在台式计算机、膝上型计算机、平板计算机、媒体播放器、可穿戴计算机、专用视频会议设备等中实现。网络(350)表示在终端设备(310)、(320)、(330)和(340)之间传达已编码视频数据的任何数目或类型的网络,包括例如有线(连线的)和/或无线通信网络。通信网络(350)可以在电路交换、分组交换和/或其他类型的通道中交换数据。代表性的网络包括电信网络、局域网、广域网和/或因特网。出于本讨论的目的,除非在本文中有明确解释,否则网络(350)的架构和拓扑对于本公开内容的操作来说可能是无关紧要的。
作为用于所公开的主题的应用的示例,图4示出了视频编码器和视频解码器在视频流式传输环境中的放置。所公开的主题可以同样地适用于其他视频应用,包括例如视频会议、数字TV、广播、游戏、虚拟现实、在包括CD、DVD、存储棒等的数字介质上存储压缩视频。
视频流式传输系统可以包括视频捕获子系统(413),该视频捕获子系统(413)可以包括视频源(401)例如数字摄像装置,用于创建未压缩的视频图片或图像流(402)。在示例中,视频图片流(402)包括由视频源401的数字摄像装置记录的样本。视频图片流(402)被描绘为粗线以强调在与已编码视频数据(404)(或已编码视频比特流)比较时的高数据量,该视频图片流(402)可以由耦接至视频源(401)的包括视频编码器(403)的电子设备(420)来处理。视频编码器(403)可以包括硬件、软件或其组合以实现或实施如下更详细地描述的所公开的主题的各方面。已编码视频数据(404)(或已编码视频比特流(404))被描绘为细线以强调在与未压缩的视频图片流(402)相比时的较低数据量,已编码视频数据(404)可以被存储在流式传输服务器(405)上以供将来使用或直接存储至下游视频设备(未示出)。一个或更多个流式传输客户端子系统,例如图4中的客户端子系统(406)和(408),可以访问流式传输服务器(405)以检索已编码视频数据(404)的副本(407)和(409)。客户端子系统(406)可以包括例如电子设备(430)中的视频解码器(410)。视频解码器(410)对传入的已编码视频数据的副本(407)进行解码,并且创建未经压缩并且可以在显示器(412)(例如,显示屏)或另一呈现设备(未描绘)上呈现的输出视频图片流(411)。视频解码器410可以被配置成执行本公开内容中描述的各个功能中的一些或全部。在一些流式传输系统中,可以根据某些视频编码/压缩标准对已编码视频数据(404)、(407)和(409)(例如,视频比特流)进行编码。这些标准的示例包括ITU-T H.265建议书。在示例中,开发中的视频编码标准被非正式地称为通用视频编码(Versatile Video Coding,VVC)。所公开的主题可以在VVC和其他视频编码标准的背景下使用。
注意,电子设备(420)和(430)可以包括其他部件(未示出)。例如,电子设备(420)可以包括视频解码器(未示出),并且电子设备(430)也可以包括视频编码器(未示出)。
图5示出了根据下面本公开内容的任何实施方式的视频解码器(510)的框图。视频解码器(510)可以包括在电子设备(530)中。电子设备(530)可以包括接收器(531)(例如,接收电路系统)。可以使用视频解码器(510)代替图4示例中的视频解码器(410)。
接收器(531)可以接收要由视频解码器(510)解码的一个或更多个已编码视频序列。在相同实施方式或另一实施方式中,可以一次解码一个已编码视频序列,其中每个已编码视频序列的解码独立于其他已编码视频序列。每个视频序列可以与多个视频帧或图像相关联。可以从通道(501)接收已编码视频序列,通道(501)可以是到存储已编码视频数据的存储设备或发送已编码视频数据的流式传输源的硬件/软件链路。接收器(531)可以接收已编码视频数据及其他数据例如可以被转发至其各自的处理电路系统(未描绘)的编码音频数据和/或辅助数据流。接收器(531)可以将已编码视频序列与其他数据分开。为了防止网络抖动,可以在接收器(531)与熵解码器/解析器(520)(在下文中被称为“解析器(520)”)之间设置缓冲存储器(515)。在某些应用中,缓冲存储器(515)可以被实现为视频解码器(510)的一部分。在其他应用中,缓冲存储器(515)可以在视频解码器(510)外部并与视频解码器(510)分开(未描绘)。在又一些其他应用中,出于例如防止网络抖动的目的,在视频解码器(510)的外部可以存在缓冲存储器(未描绘),并且在视频解码器(510)的内部可以存在另一附加的缓冲存储器(515)以例如处理回放定时。在接收器(531)正在从具有足够带宽和可控性的存储/转发设备或从等同步网络接收数据时,可以不需要缓冲存储器(515),或者缓冲存储器(515)可以小。为了在诸如因特网的尽力型(best effort)分组网络上使用,可能需要具有足够大小的缓冲存储器(515),并且缓冲存储器(515)的大小可以相对大。这样的缓冲存储器可以被实现为具有自适应大小,并且可以至少部分地在操作系统或视频解码器(510)外部的类似元件(未描绘)中实现。
视频解码器(510)可以包括解析器(520)以根据已编码视频序列来重构符号(521)。这些符号的类别包括用于管理视频解码器(510)的操作的信息以及可能包括用以控制呈现设备例如显示器(512)(例如,显示屏幕)的信息,该呈现设备可以是或可以不是电子设备(530)的组成部分但是可以与电子设备(530)耦接,如图5中所示出的。用于呈现设备的控制信息可以是辅助增强信息(SEI(Supplemental Enhancement Information,SEI)消息)或视频可用性信息(Video Usability Information,VUI))参数集片段(未描绘)的形式。解析器(520)可以对由解析器(520)接收到的已编码视频序列进行解析/熵解码。已编码视频序列的熵编码可以根据视频编码技术或标准进行,并且可以遵循各种原理,包括可变长度编码、霍夫曼编码(Huffmancoding)、具有或不具有上下文敏感度的算术编码等。解析器(520)可以基于与子组相对应的至少一个参数,从已编码视频序列中提取针对视频解码器中的像素子组中的至少一个子组的子组参数集。子组可以包括图片组(Group ofPictures,GOP)、图片、图块(tile)、切片(slice)、宏块、编码单元(Coding Unit,CU)、块、变换单元(Transform Unit,TU)、预测单元(Prediction Unit,PU)等。解析器(520)还可以从已编码视频序列中提取诸如变换系数(例如,傅里叶变换系数)、量化器参数值、运动矢量等的信息。
解析器(520)可以对从缓冲器存储器(515)接收到的视频序列执行熵解码/解析操作,以创建符号(521)。
取决于已编码视频图片或其部分的类型(例如:帧间图片和帧内图片、帧间块和帧内块)以及其他因素,符号(521)的重构可以涉及多个不同处理或功能单元。涉及哪些单元以及涉及的方式可以通过由解析器(520)从已编码视频序列解析的子组控制信息控制。为了清楚起见,未描绘这样的子组控制信息在解析器(520)与下面的多个处理或功能单元之间的流。
除了已经提及的功能块,视频解码器(510)可以在概念上细分成如下所述的多个功能单元。在商业约束下运行的实际实现方式中,这些功能单元中的许多单元彼此紧密交互并且可以至少部分地彼此集成。然而,出于清楚描述所公开的主题的各个功能的目的,在以下公开内容中采用概念上细分成功能单元。
第一单元可以包括缩放器/逆变换单元(551)。缩放器/逆变换单元(551)从解析器(520)接收作为符号(521)的经量化变换系数以及控制信息,包括指示使用哪种逆变换、块大小、量化因子/参数、量化缩放矩阵等的信息。缩放器/逆变换单元(551)可以输出包括样本值的块,所述样本值可以输入至聚合器(555)中。
在一些情况下,缩放器/逆变换(551)的输出样本可以从属于经帧内编码的块,即不使用来自先前重构的图片的预测性信息,而是可以使用来自当前图片的先前重构的部分的预测性信息的块。这样的预测性信息可以由帧内图片预测单元(552)提供。在一些情况下,帧内图片预测单元(552)可以使用已经重构并且存储在当前图片缓冲器(558)中的周围块信息来生成大小和形状与正在重构的块相同的块。例如,当前图片缓冲器(558)对部分重构的当前图片和/或完全重构的当前图片进行缓冲。在一些实现方式中,聚合器(555)可以基于每个样本将帧内预测单元(552)已经生成的预测信息添加至如由缩放器/逆变换单元(551)提供的输出样本信息。
在其他情况下,缩放器/逆变换单元(551)的输出样本可以属于帧间已编码块并且潜在地属于运动补偿的块。在这种情况下,运动补偿预测单元(553)可以访问参考图片存储器(557)以获取用于帧间图片预测的样本。在根据属于该块的符号(521)对所获取的样本进行运动补偿之后,可以由聚合器(555)将这些样本添加至缩放器/逆变换单元(551)的输出(单元551的输出可以被称作残差样本或残差信号),以生成输出样本信息。可以通过运动矢量来控制运动补偿预测单元(553)获取预测样本的参考图片存储器(557)内的地址,该运动矢量以符号(521)的形式可以用于运动补偿预测单元(553),该符号(521)可以具有例如X分量、Y分量(移位)和参考图片分量(时间)。运动补偿还可以包括在使用子样本精确运动矢量时对从参考图片存储器(557)中获取的样本值进行的插值,并且还可以与运动矢量预测机制等相关联。
聚合器(555)的输出样本可以经受环路滤波器单元(556)中的各种环路滤波技术。视频压缩技术可以包括环路内滤波器技术,该环路内滤波器技术由包括在已编码视频序列(也被称为已编码视频比特流)中并且作为来自解析器(520)的符号(521)可用于环路滤波器单元(556)的参数来控制,但是视频压缩技术还可以响应于在对已编码图片或已编码视频序列的先前(按解码顺序)部分进行解码期间获得的元信息,以及响应于先前重建和环路滤波的样本值。几种类型的环路滤波器可以以各种顺序被包括为环路滤波器单元556的一部分,这将在下文中进一步详细描述。
环路滤波器单元(556)的输出可以是样本流,该样本流可以被输出至呈现设备(512)以及存储在参考图片存储器(557)中,以用于将来的帧间图片预测。
某些已编码图片一旦完全重构,就可以被用作参考图片以用于将来的帧间图片预测。例如,一旦与当前图片相对应的已编码图片被完全重构并且该已编码图片(通过例如解析器(520))被标识为参考图片,则当前图片缓冲器(558)就可以成为参考图片存储器(557)的一部分,并且可以在开始重构随后的已编码图片之前重新分配新的当前图片缓冲器。
视频解码器(510)可以根据在诸如ITU-T H.265建议书的标准中采用的预定视频压缩技术执行解码操作。在已编码视频序列遵循视频压缩技术或标准的语法以及视频压缩技术或标准中记录的配置文件两者的意义上,已编码视频序列可以符合由所使用的视频压缩技术或标准指定的语法。具体地,配置文件可以从视频压缩技术或标准中可用的所有工具中选择某些工具作为在该配置文件下可供使用的仅有工具。对于合规性,已编码视频序列的复杂度处于由视频压缩技术或标准的级别定义的界限内。在一些情况下,级别会限制最大图片大小、最大帧速率、最大重构样本率(以例如每秒兆样本为单位进行测量)、最大参考图片大小等。在一些情况下,由级别设置的限制可以通过假设参考解码器(HypotheticalReference Decoder,HRD)规范以及在已编码视频序列中用信令通知的HRD缓冲器管理的元数据来进一步限定。
在一些示例实施方式中,接收器(531)可以随着已编码视频一起接收附加(冗余)数据。附加数据可以被包括为(一个或多个)已编码视频序列的一部分。视频解码器(510)可以使用附加数据对数据进行适当解码以及/或者更准确地重构原始视频数据。附加数据可以为以下形式:例如时间、空间或信噪比(signal noise ratio,SNR)增强层、冗余切片、冗余图片、前向纠错码等。
图6示出了根据本公开内容的示例实施方式的视频编码器(603)的框图。视频编码器(603)可以包括在电子设备(620)中。电子设备(620)还可以包括发送器(640)(例如,传输电路系统)。可以使用视频编码器(603)代替图4的示例中的视频编码器(403)。
视频编码器(603)可以从可以捕获要由视频编码器(603)编码的视频图像的视频源(601)(在图6示例中其不是电子设备(620)的一部分)接收视频样本。在另一示例中,视频源(601)可以实现为电子设备(620)的一部分。
视频源(601)可以提供要由视频编码器(603)编码的呈数字视频样本流形式的源视频序列,该数字视频样本流可以具有任何合适的比特深度(例如:8比特、10比特、12比特、......)、任何色彩空间(例如,BT.601Y CrCB、RGB、XYZ、......)和任何合适的采样结构(例如,Y CrCb 4:2:0、YCrCb 4:4:4)。在媒体服务系统中,视频源(601)可以是能够存储先前准备的视频的存储设备。在视频会议系统中,视频源(601)可以是捕获本地图像信息作为视频序列的摄像装置。视频数据可以被提供为在顺序观看时被赋予运动的多个单独图片或图像。图片自身可以被组织为空间像素阵列,其中,取决于所用的采样结构、颜色空间等,每个像素可以包括一个或更多个样本。本领域技术人员可以容易理解像素与样本之间的关系。以下描述集中于样本。
根据一些示例实施方式,视频编码器(603)可以实时地或在应用所要求的任何其他时间约束下将源视频序列的图片编码和压缩成已编码视频序列(643)。施行适当的编码速度构成控制器(650)的一个功能。在一些实施方式中,控制器(650)可以在功能上耦接至如下所述的其他功能单元并且控制其他功能单元。为了清楚起见,未描绘该耦接。由控制器(650)设置的参数可以包括速率控制相关参数(图片跳过、量化器、速率失真优化技术的λ值......)、图片大小、图片组(GOP)布局、最大运动矢量搜索范围等。控制器(650)可以被配置成具有其他合适的功能,所述其他合适的功能涉及针对特定系统设计优化的视频编码器(603)。
在一些示例实施方式中,视频编码器(603)可以被配置成在编码环路中进行操作。作为极度简化的描述,在示例中,编码环路可以包括源编码器(630)(例如,负责基于要编码的输入图片和(一个或多个)参考图片创建符号,例如符号流)和嵌入在视频编码器(603)中的(本地)解码器(633)。解码器(633)以与(远程)解码器将创建样本数据的方式类似的方式重构符号以创建样本数据,尽管嵌入的解码器633是在不进行熵编码的情况下对源编码器630的已编码视频流进行处理(因为在所公开的主题中考虑的视频压缩技术中,符号与熵编码中的已编码视频比特流之间的任何压缩都是无损的)。重构的样本流(样本数据)被输入至参考图片存储器(634)。由于符号流的解码导致与解码器位置(本地或远程)无关的比特精确(bit-exact)结果,因此参考图片存储器(634)中的内容在本地编码器与远程编码器之间也是比特精确的。换言之,编码器的预测部分“看到”的参考图片样本与解码器在解码期间使用预测时将“看到”的样本值完全相同。参考图片同步性的这种基本原理(以及在例如由于通道误差而无法维持同步性的情况下产生偏移)也被用于改进编码质量。
“本地”解码器(633)的操作可以与“远程”解码器例如视频解码器(510)的操作相同,在上面已经结合图5对视频解码器(510)进行了详细描述。然而,还简要地参照图5,由于符号可用并且由熵编码器(645)将符号编码成已编码视频序列以及由解析器(520)对符号进行解码可以是无损的,因此视频解码器(510)的包括缓冲存储器(515)和解析器(520)的熵解码部分可以不在编码器中的本地解码器(633)中完全实现。
此时可以观察到的是,除了存在于解码器中的解析/熵解码之外的任何解码器技术也必须以基本上相同的功能形式存在于相应的编码器中。出于该原因,所公开的主题有时会侧重于解码器操作,这与编码器的解码部分有关。因此可以简化对编码器技术的描述,因为编码器技术与全面描述的解码器技术相反。下面仅在某些区域或方面中提供对编码器的更详细描述。
在一些示例实现方式中,在操作期间,源编码器(630)可以执行运动补偿预测编码,运动补偿预测编码参考来自视频序列的被指定为“参考图片”的一个或更多个先前编码的图片对输入图片进行预测性编码。以这样的方式,编码引擎(632)对输入图片的像素块与参考图片的像素块之间的颜色通道中的差异(或残差)进行编码,所述参考图片可以被选择为所述输入图片的预测参考。术语“残差”及其形容词形式“残差的”可以互换使用。
本地视频解码器(633)可以基于由源编码器(630)创建的符号对可以被指定为参考图片的图片的已编码视频数据进行解码。编码引擎(632)的操作可以有利地为有损过程。当可以在视频解码器(图6中未示出)处对已编码视频数据进行解码时,重构的视频序列通常可以是源视频序列的具有一些错误的副本。本地视频解码器(633)复制可以由视频解码器对参考图片执行的解码处理,并且可以使重构的参考图片存储在参考图片缓存(634)中。以这样的方式,视频编码器(603)可以在本地存储重构的参考图片的副本,所述副本与将由远端(远程)视频解码器获得的重构的参考图片具有共同内容(没有传输误差的情况下)。
预测器(635)可以针对编码引擎(632)执行预测搜索。也就是说,对于要编码的新图片,预测器(635)可以在参考图片存储器(634)中搜索样本数据(作为候选参考像素块)或特定元数据例如参考图片运动矢量、块形状等,这些数据可以用作针对新图片的合适预测参考。预测器(635)可以逐样本块-像素块操作以找到合适的预测参考。在一些情况下,如由预测器(635)获得的搜索结果所确定的,输入图片可以具有从参考图片存储器(634)中存储的多个参考图片取得的预测参考。
控制器(650)可以管理源编码器(630)的编码操作,包括例如对用于对视频数据进行编码的参数和子组参数的设置。
对所有以上提及的功能单元的输出可以在熵编码器(645)中经受熵编码。熵编码器(645)通过根据诸如霍夫曼编码、可变长度编码、算术编码等的技术对由各种功能单元生成的符号进行无损压缩来将这些符号转换为已编码视频序列。
发送器(640)可以缓冲由熵编码器(645)创建的已编码视频序列,来为经由通信通道(660)进行传输做准备,通信通道(660)可以是到将存储已编码视频数据的存储设备的硬件/软件链路。发送器(640)可以将来自视频编码器(603)的已编码视频数据与要传输的其他数据例如已编码音频数据和/或辅助数据流(未示出源)合并。
控制器(650)可以管理视频编码器(603)的操作。在编码期间,控制器(650)可以向每个已编码图片分配某种已编码图片类型,这可能影响可以应用于相应图片的编码技术。例如,通常可以将图片分配为以下图片类型中之一:
帧内图片(I图片),其可以是可以在不将序列中的任何其他图片用作预测源的情况下编码和解码的图片。一些视频编解码器容许不同类型的帧内图片,包括例如独立解码器刷新(Independent Decoder Refresh,“IDR”)图片。本领域技术人员了解I图片的那些变型及其各自的应用和特征。
预测性图片(P图片),其可以是可以使用利用至多一个运动矢量和参考索引来预测每个块的样本值的帧间预测或帧内预测进行编码和解码的图片。
双向预测性图片(B图片),其可以是可以使用利用至多两个运动矢量和参考索引来预测每个块的样本值的帧间预测或帧内预测进行编码和解码的图片。类似地,多预测性图片可以使用多于两个参考图片和相关联的元数据以用于单个块的重构。
源图片通常可以在空间上细分成多个样本编码块(例如,各自为4×4、8×8、4×8或16×16个样本的块),并且逐块进行编码。可以参考通过应用于块的相应图片的编码分配确定的其他(已编码的)块对这些块进行预测性编码。例如,可以对I图片的块进行非预测性地编码,或者可以参考相同图片的已编码块对I图片的块进行预测性地编码(空间预测或帧内预测)。可以参考一个先前已编码参考图片经由空间预测或经由时间预测对P图片的像素块进行预测性编码。可以参考一个或两个先前已编码参考图片经由空间预测或经由时间预测对B图片的块进行预测性编码。为了其他目的,源图片或中间处理过的图片可以被细分为其他类型的块。编码块和其他类型的块的划分可以遵循或不遵循相同的方式,下文将进一步详细说明。
视频编码器(603)可以根据预定视频编码技术或标准例如ITU-T H.265建议书执行编码操作。在视频编码器(603)的操作中,视频编码器(603)可以执行各种压缩操作,包括利用输入视频序列中的时间冗余和空间冗余的预测性编码操作。因此,已编码视频数据可以符合由正使用的视频编码技术或标准指定的语法。
在一些示例实施方式中,发送器(640)可以随着已编码视频一起传输附加数据。源编码器(630)可以将这样的数据包括为已编码视频序列的一部分。附加数据可以包括时间/空间/SNR增强层、其他形式的冗余数据例如冗余图片和切片、SEI消息、VUI参数集片段等。
可以按时间序列将视频捕获为多个源图片(视频图片)。帧内图片预测(通常简化为帧内预测)利用给定图片中的空间相关性,而帧间图片预测利用图片之间的时间或其他相关性。例如,将被称为当前图片的正在被编码/解码的特定图片分成块。在当前图片中的块与视频中先前已编码且仍被缓冲的参考图片中的参考块类似时,可以通过被称作运动矢量的矢量对当前图片中的块进行编码。运动矢量指向参考图片中的参考块,并且在使用多个参考图片的情况下,运动矢量可以具有标识参考图片的第三维度。
在一些示例实施方式中,双向预测技术可以用于帧间图片预测。根据这样的双向预测技术,使用两个参考图片,例如按解码次序均在视频中的当前图片之前(但按显示次序可能分别在过去和将来)的第一参考图片和第二参考图片。可以通过指向第一参考图片中的第一参考块的第一运动矢量和指向第二参考图片中的第二参考块的第二运动矢量对当前图片中的块进行编码。可以通过第一参考块和第二参考块的组合来共同预测该块。
此外,可以在帧间图片预测中使用合并模式技术以提高编码效率。
根据本公开内容的一些示例实施方式,诸如帧间图片预测和帧内图片预测的预测以块为单位执行。例如,将视频图片序列中的图片划分成编码树单元(codingtree unit,CTU)以用于压缩,图片中的CTU可以具有相同大小,例如128×128像素、64×64像素、32×32像素或16×16像素。一般来说,CTU可以包括三个并行编码树块(coding tree block,CTB):一个亮度CTB和两个色度CTB。每个CTU可以被递归地以四叉树分成一个或多个编码单元(CU)。例如,可以将64×64像素的CTU分成一个64×64像素的CU,或4个32×32像素的CU。32×32块中的一个或更多个中的每一个还可以被分成4个16×16像素的CU。在一些示例实施方式中,在编码期间对每个CU进行分析以确定各种预测类型中该CU的预测类型,例如帧间预测类型或帧内预测类型。取决于时间和/或空间可预测性,可以将CU分成一个或更多个预测单元(PU)。通常,每个PU包括亮度预测块(predictionblock,PB)和两个色度PB。在实施方式中,以预测块为单位来执行编码(编码/解码)中的预测操作。可以以各种空间模式执行将CU分成PU(或不同颜色通道的PB)。亮度或色度PB例如可以包括例如8×8像素、16×16像素、8×16像素、16×8像素等的样本的值(例如,亮度值)的矩阵。
图7示出了根据本公开内容的另一示例实施方式的视频编码器(703)的图。视频编码器(703)被配置成接收视频图片序列中的当前视频图片内的样本值的处理块(例如,预测块),并且将处理块编码至作为已编码视频序列的一部分的已编码图片中。可以使用示例视频编码器(703)代替图4示例中的视频编码器(403)。
例如,视频编码器(703)接收用于处理块例如8×8样本的预测块等的样本值的矩阵。视频编码器(703)然后使用例如速率失真优化(RDO)来确定是使用帧内模式、帧间模式还是双向预测模式来对处理块进行最佳编码。在确定要以帧内模式对处理块进行编码的情况下,视频编码器(703)可以使用帧内预测技术来将处理块编码至已编码图片中;而在确定要以帧间模式或双向预测模式下对处理块进行编码的情况下,视频编码器(703)可以分别使用帧间预测或双向预测技术来将处理块编码至已编码图片中。在一些示例实施方式中,可以使用合并模式作为帧间图片预测子模式,其中,在不借助于预测值外部的已编码运动矢量分量的情况下从一个或更多个运动矢量预测值得出运动矢量。在一些其他示例实施方式中,可以存在适用于对象块的运动矢量分量。因此,视频编码器(703)可以包括图7中未明确示出的部件,例如用于确定处理块的预测模式的模式决策模块。
在图7的示例中,视频编码器(703)包括如图7中的示例布置所示的耦接在一起的帧间编码器(730)、帧内编码器(722)、残差计算器(723)、开关(726)、残差编码器(724)、通用控制器(721)以及熵编码器(725)。
帧间编码器(730)被配置成:接收当前块(例如,处理块)的样本;将所述块与参考图片中的一个或更多个参考块(例如,按显示顺序的先前图片中的块和随后图片中的块)进行比较;生成帧间预测信息(例如,运动矢量、合并模式信息、根据帧间编码技术的冗余信息的描述);以及基于帧间预测信息使用任何合适的技术来计算帧间预测结果(例如,预测的块)。在一些示例中,参考图片是基于已编码视频信息使用嵌入在图6的示例编码器620中的解码单元633(被示出为图7的残差解码器728,如下面进一步详细描述的)来解码的解码参考图片。
帧内编码器(722)被配置成:接收当前块(例如,处理块)的样本;将该块与同一图片中已经编码的块进行比较;以及在变换之后生成经量化的系数;以及在一些情况下还生成帧内预测信息(例如,根据一个或更多个帧内编码技术的帧内预测方向信息)。帧内编码器(722)可以基于帧内预测信息和同一图片中的参考块来计算帧内预测结果(例如,预测的块)。
通用控制器(721)可以被配置成确定通用控制数据并且基于通用控制数据来控制视频编码器(703)的其他部件。在示例中,通用控制器(721)确定块的预测模式,并且基于该预测模式向开关(726)提供控制信号。例如,在预测模式是帧内模式的情况下,通用控制器(721)控制开关(726)选择帧内模式结果以供残差计算器(723)使用,并且控制熵编码器(725)选择帧内预测信息并将该帧内预测信息包括在比特流中;以及在块的预测模式是帧间模式的情况下,通用控制器(721)控制开关(726)选择帧间预测结果以供残差计算器(723)使用,并且控制熵编码器(725)选择帧间预测信息并将该帧间预测信息包括在比特流中。
残差计算器(723)可以被配置成计算接收到的块与从帧内编码器(722)或帧间编码器(730)选择的针对块的预测结果之间的差(残差数据)。残差编码器(724)可以被配置成对残差数据进行编码以生成变换系数。例如,残差编码器(724)可以被配置成将残差数据从空间域转换至频域以生成变换系数。然后,变换系数经受量化处理以获得经量化的变换系数。在各种示例实施方式中,视频编码器(703)还包括残差解码器(728)。残差解码器(728)被配置成执行逆变换并且生成已解码残差数据。已解码残差数据可以合适地由帧内编码器(722)和帧间编码器(730)使用。例如,帧间编码器(730)可以基于已解码残差数据和帧间预测信息生成已解码块,并且帧内编码器(722)可以基于已解码残差数据和帧内预测信息生成已解码块。适当处经理解码块以生成已解码图片,并且这些已解码图片可以在存储器电路(未示出)中缓冲并用作参考图片。
熵编码器(725)可以被配置成将比特流格式化以包括已编码块并且执行熵编码。熵编码器(725)被配置成在比特流中包括各种信息。例如,熵编码器(725)可以被配置成包括通用控制数据、所选的预测信息(例如,帧内预测信息或帧间预测信息)、残差信息和比特流中的其他合适的信息。当在帧间模式或双向预测模式的合并子模式下对块进行编码时,可能不存在残差信息。
图8示出了根据本公开内容的另一实施方式的示例视频解码器(810)的图。视频解码器(810)被配置成接收作为已编码视频序列的一部分的已编码图片,并且对已编码图片进行解码以生成重构图片。在示例中,可以使用视频解码器(810)代替图4的示例中的视频解码器(410)。
在图8的示例中,视频解码器(810)包括如图8的示例布置中所示的耦接在一起的熵解码器(871)、帧间解码器(880)、残差解码器(873)、重构模块(874)和帧内解码器(872)。
熵解码器(871)可以被配置成根据已编码图片来重构某些符号,这些符号表示构成已编码图片的语法元素。这样的符号可以包括:例如对块进行编码的模式(例如,帧内模式、帧间模式、双向预测模式、合并子模式中或者另一子模式)、可以标识某些样本或者分别由帧内解码器(872)或帧间解码器(880)使用以进行预测的元数据的预测信息(例如,帧内预测信息或帧间预测信息)、呈例如经量化的变换系数的形式的残差信息等。在示例中,当预测模式是帧间模式或双向预测模式时,帧间预测信息被提供给帧间解码器(880);以及当预测类型是帧内预测类型时,帧内预测信息被提供给帧内解码器(872)。残差信息可以经受逆量化并且被提供给残差解码器(873)。
帧间解码器(880)可以被配置成接收帧间预测信息并基于帧间预测信息生成帧间预测结果。
帧内解码器(872)可以被配置成接收帧内预测信息并基于帧内预测信息生成预测结果。
残差解码器(873)可以被配置成执行逆量化以提取去量化的变换系数,并且处理所述去量化的变换系数以将残差从频域转换至空间域。残差解码器(873)还可以利用某些控制信息(以包括量化器参数(Quantizer Parameter,QP)),所述控制信息可以由熵解码器(871)提供(由于这可能仅是小数据量控制信息,因此未描绘数据路径)。
重构模块(874)可以被配置成在空间域中组合由残差解码器(873)输出的残差与预测结果(在这种情况下可以由帧间预测模块或帧内预测模块输出)以形成重构的块,该重构的块形成重构的图片的一部分作为重构的视频的一部分。注意,还可以执行其他合适的操作例如去块操作等来改善视觉质量。
注意,可以使用任何合适的技术来实现视频编码器(403)、(603)和(703)以及视频解码器(410)、(510)和(810)。在一些示例实施方式中,可以使用一个或更多个集成电路来实现视频编码器(403)、(603)和(703)以及视频解码器(410)、(510)和(810)。在另一实施方式中,可以使用执行软件指令的一个或更多个处理器来实现视频编码器(403)、(603)和(603)以及视频解码器(410)、(510)和(810)。
转到用于编码和解码的块划分,一般划分可以从基本块开始,并且可以遵循预定义的规则集、特定模式、划分树或任何划分结构或方案。划分可以是分层的和递归的。在按照下面描述的示例划分过程或其他过程中的任何过程或者示例划分过程和其他过程的组合对基本块进行分割或划分之后,可以获得最终的一组划分或编码块。这些划分中的每一个可以处于划分分层中的各种划分级别中之一,并且可以具有各种形状。划分中的每一个可以被称为编码块(coding block,CB)。对于以下进一步描述的各种示例划分实现方式,每个所得到的CB可以具有任何允许的大小和划分级别。这样的划分被称为编码块,这是因为它们可以形成如下单元,针对这些单元可以进行一些基本的编码/解码决策并且可以在已编码视频比特流中优化、确定和用信令通知编码/解码参数。最终划分中的最高或最深级别表示树的编码块划分结构的深度。编码块可以是亮度编码块或色度编码块。每个颜色的CB树结构可以称为编码块树(coding blocktree,CBT)。
所有颜色通道的编码块可以统称为编码单元(CU)。所有颜色通道的分层结构可以统称为编码树单元。CTU中的各种颜色通道的划分模式或结构可以相同或不同。
在一些实现方式中,用于亮度通道和色度通道的划分树方案或结构可以不必相同。换言之,亮度通道和色度通道可以具有各自的编码树结构或模式。此外,亮度通道和色度通道使用相同的还是不同的编码划分树结构以及要使用的实际编码划分树结构可以取决于正在被编码的切片是P切片、B切片还是I切片。例如,对于I切片,色度通道和亮度通道可以具有单独的编码划分树结构或编码划分树结构模式,而对于P切片或B切片,亮度通道和色度通道可以共享相同的编码划分树方案。当应用单独的编码划分树结构或模式时,通过一个编码划分树结构将亮度通道划分为CB,并且可以通过另一编码划分树结构将色度通道划分为色度CB。
回到图2,同一序列中的每一帧可以具有一些共同的特征或属性。例如,序列中的每一帧可以共享相同的配置文件、相同的色度格式、相同的级别等。因此,出于解码目的,序列中的所有帧可以共享序列级别处的参数集,并且这样的参数集被称为序列参数集(SPS或序列级别参数集)。在解码器侧,解码器可以参考SPS以用于各种解码任务,包括初始化解码参数、解析比特流、执行存储器管理等。
在示例实现方式中,SPS可以包括至少以下参数:
·配置文件;
·级别值;
·层级值;
·色度格式;
·比特深度;
·图片宽度;
·图片高度;
·熵编码模式;或
·变换模式。
该SPS集可以应用于各种视频技术和标准,包括但不限于:HEVC、VVC、AV1、AV2、AVS、AVS2、AVS3以及未来一代视频标准。
在解码过程期间,解码器使用正确的SPS对帧序列进行解码是至关重要的,否则可能无法对该序列正确地解码。各种性能开销可能由SPS引入。例如,SPS在比特流中的传输占用传输带宽。在解码器侧,需要工作量从原始数据位中解析SPS,并且存储/激活经解析的SPS以供后续使用。
在本公开内容中,描述了旨在改进SPS实现方式的各种实施方式。在一个方面,一些实施方式可以提高SPS信令效率。例如,仅根据需要用信令通知SPS,并且当前激活的SPS(也被称为服务SPS)可以被重新用于同一序列中的后续视频样本。在另一方面,一些实施方式可以提高SPS确定上的灵活性。例如,可以使SPS对解码器可用(例如,通过将SPS封装在比特流中),然而解码器可以确定是否需要SPS更新,并且具有忽略用信令通知的SPS或基于用信令通知的SPS更新SPS的灵活性。在另一方面,对于在不同会话中发送的同一视频源,编码器可以基于例如传输条件、服务质量协议等,来选择为同一序列用信令通知不同的SPS。在又一方面,在视频流式传输的持续时间中,可以动态地更新应用于视频序列的SPS,例如,以实现更好的压缩率和/或更好的视频质量,以适应各种类型的解码器和/或各种传输条件等。
在一些示例实现方式中,服务SPS是用于对当前视频帧进行解码的特定SPS。在一些场景中,例如,如果先前视频帧与当前视频帧处于同一序列中,则服务SPS可以与用于对当前视频帧的先前视频帧进行解码的SPS相同。在这种情况下,解码器可以直接重新使用先前使用的SPS(例如,服务SPS已经存储在存储器中)。在一些场景中,例如,如果先前视频帧和当前视频帧处于不同序列中,则服务SPS可以不同于用于对先前视频帧进行解码的SPS。在这种情况下,解码器可以通过例如解析视频比特流中的SPS相关语法来获得服务SPS。
在一些示例实现方式中,参照图2,在每个视频样本中,用信令通知标志,以指示当前视频样本是否封装/携带SPS。例如,在视频样本1中,该标志可以被用信令通知为真,以指示在视频样本1中携带有SPS1。而在视频样本2中,该标志可以被用信令通知为假,以指示视频样本2中未携带有SPS。如果视频样本被指示为携带SPS,则可以进一步用信令通知诸如SPS的长度的位置信息。SPS在视频样本中的起始位置可以是固定的或预定义的位置,或者可以用信令通知。起始位置可以包括从诸如视频帧的开始或标志的开始的某个参考点的偏移。在这些实现方式中,可以根据需要用信令通知SPS,例如,当需要针对当前视频样本(例如,视频样本1)更新SPS时用信令通知SPS。这可以在新的序列开始时发生。解码器在处理视频样本1时,可能需要解析比特流以检索经封装的SPS,激活所检索的SPS并使用它来对视频样本1的视频序列进行解码。然而,对于视频样本2,相对于在视频样本1中用信令通知的SPS,SPS并不改变,因此解码器可以重新使用已经激活的SPS1来对视频样本2进行解码。用于对视频样本进行解码的激活的SPS可以被称为服务SPS。
在一些示例实现方式中,不管SPS是否被更新,将在每个视频样本中用信令通知SPS。参照图2,在视频样本n中用信令通知SPS2,甚至在视频样本n-1中用信令通知相同的SPS2。仍然可以用信令通知标志,以指示SPS更新状态。如果该标志指示SPS被更新,则解码器将需要解析比特流以检索经更新的SPS。否则,该标志可以指示未根据先前视频样本更新SPS,并且解码器可能具有不同的选择。在一个选项中,解码器可以跳过解析当前视频样本中携带的SPS的内容,并且直接使用已经解析的先前SPS(用于先前视频样本并被存储以供后续使用)。该选项在顺序地播放视频流(即,遵照时间线顺序显示帧)时是有用的,因为节省了SPS解析成本。在另一选项中,即使标志指示不存在SPS更新,解码器仍可能需要解析当前视频样本中携带的SPS的内容,并且使用新解析/检索的SPS来对当前视频样本进行解码。该选项在当前视频样本是随机访问播放的起点时是有用的,因为在这种情况下先前使用的SPS可以是随机视频样本的SPS并且对当前视频样本不再有效,因此可以期望对SPS进行强制刷新。在这些实现方式中,SPS和要显示的下一个帧将被封装在同一个视频样本中,因此SPS对解码器总是可用的。可以与较早的实现方式类似地用信令通知SPS位置信息。
在以上示例实现方式中,视频流无论是有序播放(遵照帧时间线)还是随机访问播放对服务器/编码器而言都是透明的,服务器/编码器将SPS封装在每个视频样本中。用于选择SPS的逻辑仅需要在终端/解码器侧实现。
在一些示例实现方式中,可以用信令通知SPS更新标志以指示SPS更新状态,并且仅当SPS被更新为不同于用于先前视频样本的SPS时,才将在视频样本中用信令通知SPS。如果SPS更新标志指示SPS被更新,则解码器可以解析比特流以获得更新的SPS,将更新的SPS存储/保存在例如本地存储器或片上存储器中,并且保持将更新的SPS用于后续视频样本,直到SPS如由SPS更新标志指示的那样再次被更新。另一方面,如果SPS更新标志指示不存在SPS更新,则解码器可以使用已存储的先前SPS,而无需任何SPS解析和处理工作量。注意,如果SPS更新标志指示SPS被更新,则可以进一步用信令通知诸如SPS的长度的位置信息。SPS在视频样本中的起始位置可以是固定的或预定义的位置,或者可以用信令通知。起始位置可以包括从诸如视频帧的开始或SPS更新标志的位置的某个参考点的偏移。
在一些示例实现方式中,可以为每个视频样本用信令通知语法元素,以指示与视频样本相关联的SPS的长度。当该长度等于0时,这隐含地指示当前视频样本不携带SPS,并且因此,没有后续的SPS内容需要被解析。在这种情况下,解码器将使用先前的SPS(用于对先前视频样本进行解码)以用于适当的解码。当该长度不等于0时,这指示SPS例如在长度信息字段紧之后或从预定义位置开始被用信令通知。解码器将解析并使用在当前视频样本中用信令通知/封装的SPS。
在一些示例实现方式中,从服务器侧,服务器或编码器可以确定将在视频流式传输会话中使用的SPS的列表,并且在视频流式传输会话开始时向终端(解码器)用信令通知SPS的列表,其中SPS的列表中的每个SPS可由SPS id(标识符)来标识。然后,在每个视频帧中,可以用信令通知SPS id,以向解码器通知在对视频帧进行解码时应该从SPS的列表中选择并应用哪个SPS。详细的SPS内容不再需要被用信令通知。因此,SPS信令开销可以减少,并且也消除了解码器的SPS解析工作量。此外,诸如0、负数、由SPS id字段支持的最大数字(例如0xff,SPS id是一个字节长)的特定SPS id可以用于指示不存在SPS更新,因此解码器可以直接使用先前的SPS。这些实现方式可以对于随机访问的场景特别有用。
在一些示例实现方式中,接收视频流的终端/解码器可以收集并维护SPS的列表,而不是如以上实现方式中所描述的那样服务器/编码器用信令通知SPS的列表。例如,在视频样本中用信令通知SPS,并且SPS可以包括id。解码器可以通过将接收到的任何新的SPS(由其id指示)添加至列表来维护SPS的列表。对于每个视频样本,解码器首先可以执行查找,以检查由SPS id指示的SPS(例如,在视频样本中携带的SPS)是否已经存在于SPS的列表中。如果解码器能够从SPS的列表中找到特定的SPS,则可以跳过根据比特流对SPS内容的解析。在一个实现方式中,SPS的列表可以经由循环缓冲器实现,以避免使用过多的内存。
在一些示例实现方式中,如果当前视频样本包括由随机访问请求产生的随机视频序列,则编码器可以确定针对随机视频序列的SPS是否与用于被馈送给接收终端(例如,解码器)的最后一个视频样本的SPS相同。例如,如图2所示,如果最后播放的序列在视频样本1中,而下一个序列是在视频样本n中的随机序列(即,视频从视频样本1跳转到视频样本n),则因为存在SPS更新(从SPS1到SPS2),因此比特流将用信令通知指示SPS更新的SPS更新标志。解码器将相应地检索经更新的SPS。然而,当跳转到视频样本n时,在最后播放的序列也使用SPS2的情况下,则SPS更新标志将指示不存在关于SPS的更新,并且在视频样本n中未用信令通知SPS。因此,即使当前视频样本是随机访问起点,解码器仍然可以重新使用先前的SPS。
图9示出了用于对视频数据进行处理的示例性方法900。该方法可以包括以下步骤的一部分或全部:步骤910,接收包括至少一个视频样本的比特流,所述至少一个视频样本包括当前视频样本和先前视频样本,其中,所述至少一个视频样本中的每个视频样本包括至少一个视频帧,并且其中,所述至少一个视频样本中的每个视频样本与用于对所述至少一个视频样本中的每个视频样本进行解码的服务序列参数集(SPS)相关联;步骤920,确定用于当前视频样本的服务SPS为以下之一:
已经从比特流中解析并且用于对先前视频样本进行解码的先前SPS;
被封装在当前视频样本中的当前SPS;以及候选SPS的列表中的SPS;
以及步骤930,基于用于当前视频样本的服务SPS对当前视频样本进行解码。
在本公开内容的实施方式和实现方式中,任何步骤和/或操作可以根据需要以任何量或顺序组合或布置。步骤和/或操作中的两个或更多个可以并行执行。本公开内容中的实施方式和实现方式可以单独使用或以任何顺序组合。此外,方法(或实施方式)、编码器和解码器中的每一个可以通过处理电路系统(例如,一个或更多个处理器或一个或更多个集成电路)实现。在一个示例中,一个或更多个处理器执行存储在非暂态计算机可读介质中的程序。
上述技术可以被实现为使用计算机可读指令并物理地存储在一个或更多个计算机可读介质中的计算机软件。例如,图10示出了适合于实现所公开的主题的某些实施方式的计算机系统(2800)。
计算机软件可以使用任何合适的机器代码或计算机语言来编码,所述机器代码或计算机语言可以经受汇编、编译、链接等机制以创建包括指令的代码,所述指令可以由一个或更多个计算机中央处理单元(central processingunit,CPU)、图形处理单元(GraphicsProcessing Unit,GPU)等直接执行或者通过解释、微代码执行等来执行。
指令可以在各种类型的计算机或其部件(包括例如个人计算机、平板计算机、服务器、智能电话、游戏设备、物联网设备等)上执行。
图10所示的用于计算机系统(2800)的部件本质上是示例性的,并且不旨在对实现本公开内容的实施方式的计算机软件的使用范围或功能提出任何限制。部件的配置也不应被解释为具有与计算机系统(2800)的示例性实施方式中所示的部件中的任何一个或其组合相关的任何依赖性或要求。
计算机系统(2800)可以包括某些人机接口输入设备。这样的人机接口输入设备可以对由一个或更多个人类用户通过例如触觉输入(例如:击键、滑动、数据手套移动)、音频输入(例如:语音、拍打)、视觉输入(例如:姿势)、嗅觉输入(未描绘)作出响应。人机接口设备还可以用于捕获不一定与人的意识输入直接有关的某些媒体,例如,音频(例如:语音、音乐、环境声音)、图像(例如:扫描图像、从静态图像摄像装置获得的摄影图像)、视频(例如,二维视频、包括立体视频的三维视频)。
输入人机接口设备可以包括以下各项中的一个或更多个(每项仅描绘出一个):键盘(2801)、鼠标(2802)、触控板(2803)、触摸屏(2810)、数据手套(未示出)、操纵杆(2805)、麦克风(2806)、扫描仪(2807)、摄像装置(2808)。
计算机系统(2800)还可以包括某些人机接口输出设备。这样的人机接口输出设备可以通过例如触觉输出、声音、光和气味/味道刺激一个或更多个人类用户的感官。这样的人机接口输出设备可以包括:触觉输出设备(例如,通过触摸屏(2810)、数据手套(未示出)或操纵杆(2805)进行的触觉反馈,但是也可以存在不用作输入设备的触觉反馈装置);音频输出设备(例如:扬声器(2809)、头戴式耳机(未描绘));视觉输出设备(例如,屏幕(2810),包括CRT屏幕、LCD屏幕、等离子屏幕、OLED屏幕,每个屏幕具有或不具有触摸屏输入能力,每个屏幕具有或不具有触觉反馈能力——其中的一些可能能够通过诸如立体图像输出的方式输出二维视觉输出或多于三维输出;虚拟现实眼镜(未描绘);全息显示器和发烟器(未描绘));以及打印机(未描绘)。
计算机系统(2800)还可以包括人类可访问存储设备及其相关联的介质,例如包括具有CD/DVD等介质(2821)的CD/DVD ROM/RW(2820)的光学介质、拇指驱动器(2822)、可移除硬盘驱动器或固态驱动器(2823)、传统磁性介质例如磁带和软盘(未描绘)、基于专用ROM/ASIC/PLD的设备例如安全加密狗(未描绘)等。
本领域技术人员还应当理解,结合目前公开的主题使用的术语“计算机可读介质”不包含传输介质、载波或其他瞬态信号。
计算机系统(2800)还可以包括到一个或更多个通信网络(2855)的接口(2854)。网络可以例如是无线网络、有线网络、光网络。网络还可以为局域网、广域网、城域网、车载和工业网络、实时网络、延迟容忍网络等。网络的示例包括:局域网例如以太网;无线LAN;包括GSM、3G、4G、5G、LTE等的蜂窝网络;包括线缆TV、卫星TV和地面广播TV的TV有线或无线广域数字网络;包括CAN总线的车辆和工业网络等。某些网络通常需要附接至某些通用数据端口或外围总线(2849)(例如,计算机系统(2800)的USB端口)的外部网络接口适配器;其他的网络通常通过如下所述(例如,到PC计算机系统的以太网接口或到智能电话计算机系统的蜂窝网络接口)附接至系统总线而集成到计算机系统(2800)的核心中。计算机系统(2800)可以使用这些网络中的任意网络与其他实体进行通信。这样的通信可以是仅单向接收的(例如,广播TV)、仅单向发送的(例如,至某些CAN总线设备的CAN总线)、或双向的,例如,到使用局域数字网络或广域数字网络至其他计算机系统。可以在如上所述的那些网络和网络接口中的每一个上使用某些协议和协议栈。
上述人机接口设备、人可访问的存储设备和网络接口可以附接至计算机系统(2800)的核(2840)。
核(2840)可以包括一个或更多个中央处理单元(CPU)(2841)、图形处理单元(GPU)(2842)、现场可编程门区(Field Programmable Gate Area,FPGA)(2843)形式的专用可编程处理单元、用于某些任务的硬件加速器(2844)、图形适配器(2850)等。这些设备以及只读存储器(Read-only memory,ROM)(2845)、随机存取存储器(2846)、内部大容量存储装置(例如,内部非用户可访问硬盘驱动器、SSD等)(2847)可以通过系统总线(2848)连接。在一些计算机系统中,系统总线(2848)可以以一个或更多个物理插头的形式访问,以使得能够通过附加的CPU、GPU等实现扩展。外围设备可以直接地或通过外围总线(2849)附接至核心的系统总线(2848)。在示例中,屏幕(2810)可以连接至图形适配器(2850)。外围总线的架构包括PCI、USB等。
CPU(2841)、GPU(2842)、FPGA(2843)和加速器(2844)可以执行某些指令,这些指令组合起来可以构成之前提及的计算机代码。该计算机代码可以存储在ROM(2845)或RAM(2846)中。过渡数据也可以存储在RAM(2846)中,而永久数据可以存储在例如内部大容量存储装置(2847)中。可以通过使用高速缓冲存储器来实现对存储器设备中的任何存储器设备的快速存储和检索,该高速缓冲存储器可与一个或更多个CPU(2841)、GPU(2842)、大容量存储装置(2847)、ROM(2845)、RAM(2846)等紧密相关联。
计算机可读介质在其上可以具有用于执行各种计算机实现的操作的计算机代码。这些介质和计算机代码可以是出于本公开内容的目的而专门设计和构造的介质和计算机代码,或者他们可以具有计算机软件领域的技术人员公知且可用的类型。
作为非限制示例,具有架构的计算机系统(2800)——特别是核心(2840)——可以提供由于(一个或更多个)处理器(包括CPU、GPU、FPGA、加速器等)执行在一个或更多个有形计算机可读介质中实现的软件而提供的功能。这样的计算机可读介质可以是如下介质,所述介质与如上所介绍的用户可访问大容量存储装置,以及具有非暂态性质的核(2840)的某些存储装置,例如核内部大容量存储装置(2847)或ROM(2845)相关联。实现本公开内容的各种实施方式的软件可以存储在这样的设备中并由核(2840)执行。根据特定需要,计算机可读介质可以包括一个或更多个存储器设备或芯片。软件可以使核(2840),并且特别是其中的处理器(包括CPU、GPU、FPGA等)执行本文描述的特定过程或特定过程的特定部分,包括定义存储在RAM(2846)中的数据结构,并根据软件定义的过程修改这样的数据结构。另外地或作为替选方案,计算机系统可以由于硬连线或以其他方式体现在电路中的逻辑而提供功能(例如:加速器(2844)),其可以代替软件或与软件一起操作以执行本文中描述的特定处理或特定处理的特定部分。在适当的情况下,提及的软件可以包括逻辑,反之,提及的逻辑也可以包括软件。在适当的情况下,对计算机可读介质的引用可以包括存储用于执行的软件的电路(例如,集成电路(IC))、实施用于执行的逻辑的电路或者存储用于执行的软件的电路(例如,集成电路(IC))和实施用于执行的逻辑的电路这两者。本公开内容包括硬件和软件的任何合适的组合。
虽然本公开内容使用视觉媒体作为示例,但所提出的实施方式也可以用于其他类似的场景,例如音频或其他类型的媒体内容。
尽管本公开内容已经描述了若干示例性实施方式,但是存在落入本公开内容的范围内的改变、置换和各种替换等效物。因此将认识到,本领域技术人员将能够设想出许多系统和方法,这些系统和方法尽管未在本文中明确示出或描述,但是体现了本公开内容的原理并因此在本公开内容的精神和范围内。
附录A:首字母缩略词
IBC:帧内块复制
IntraBC:帧内块复制
JEM:联合探索模型
VVC:多功能视频编码
BMS:基准集
MV:运动矢量
HEVC:高效视频编码
SEI:辅助增强信息
VUI:视频可用性信息
GOP:图片组
TU:变换单元
PU:预测单元
CTU:编码树单元
CTB:编码树块
PB:预测块
HRD:假设参考解码器
SNR:信噪比
CPU:中央处理单元
GPU:图形处理单元
CRT:阴极射线管
LCD:液晶显示器
OLED:有机发光二极管
CD:致密盘
DVD:数字视频光盘
ROM:只读存储器
RAM:随机存取存储器
ASIC:专用集成电路
PLD:可编程逻辑设备
LAN:局域网
GSM:全球移动通信系统
LTE:长期演进
CANBus:控制器局域网总线
USB:通用串行总线
PCI:外围部件互连
FPGA:现场可编程门区域
SSD:固态驱动器
IC:集成电路
HDR:高动态范围
SDR:标准动态范围
JVET:联合视频探索组
MPM:最可能模式
WAIP:广角帧内预测
CU:编码单元
PU:预测单元
TU:变换单元
CTU:编码树单元
PDPC:位置相关预测组合
ISP:帧内子划分
SPS:序列参数集
PPS:图片参数集
APS:自适应参数集
VPS:视频参数集
DPS:解码参数集
ALF:自适应环路滤波器
SAO:样本自适应偏移
CC-ALF:交叉分量自适应环路滤波器
CDEF:约束定向增强滤波器
CCSO:跨部件样本偏移
LSO:本地样本偏移
LR:环路恢复滤波器
AV1:开放媒体联盟视频1
AV2:开放媒体联盟视频2
AVS:音频和视频编码标准
AVS2:第二代AVS标准
AVS3:第三代AVS标准
DASH:基于HTTP的动态自适应流式传输(Dynamic Adaptive StreamingoverHTTP)
ISO BMFF:ISO基础媒体文件格式
VOD:视频点播
RPS:参考图片集

Claims (20)

1.一种用于视频处理的方法,所述方法包括:
接收包括至少一个视频样本的比特流,所述至少一个视频样本包括当前视频样本和先前视频样本,其中,所述至少一个视频样本中的每个视频样本包括至少一个视频帧,并且其中,所述至少一个视频样本中的每个视频样本与用于对所述至少一个视频样本中的每个视频样本进行解码的服务序列参数集(SPS)相关联;
确定用于所述当前视频样本的服务SPS为以下类型之一:
已经从所述比特流中解析并且用于对所述先前视频样本进行解码的先前SPS;
封装在所述当前视频样本中的当前SPS;以及
候选SPS的列表中的SPS;以及
基于用于所述当前视频样本的服务SPS和所确定的服务SPS的类型,对所述当前视频样本进行解码。
2.根据权利要求1所述的方法,其中,所述SPS包括以下参数中的至少一个:
配置文件;
级别值;
层级值;
色度格式;
比特深度;
图片宽度;
图片高度;
熵编码模式;以及
变换模式。
3.根据权利要求1至2中任一项所述的方法,其中,确定用于所述当前视频样本的服务SPS包括:
从所述比特流中提取指示所述当前视频样本是否封装所述当前SPS的SPS存在标志;以及
响应于指示所述当前视频样本封装了所述当前SPS的所述SPS存在标志,执行以下操作:
从所述比特流中提取所述当前SPS的位置信息;
基于所述位置信息来解析所述比特流,以获得所述当前SPS;以及
确定所述当前SPS为用于所述当前视频样本的服务SPS。
4.根据权利要求3所述的方法,还包括:响应于指示所述当前视频样本未封装所述当前SPS的所述SPS存在标志,确定所述先前SPS为用于所述当前视频样本的服务SPS。
5.根据权利要求1至2中任一项所述的方法,其中:
所述至少一个视频样本中的每个视频样本封装SPS;
在所述当前视频样本中封装的所述SPS是所述当前SPS;并且
确定用于所述当前视频样本的服务SPS包括:
从所述比特流中提取SPS更新状态标志,所述SPS更新状态标志指示所述服务SPS是否相对于用于对所述先前视频样本进行解码的所述先前SPS被更新;
响应于指示所述服务SPS相对于所述先前SPS被更新的所述SPS更新状态标志,确定所述当前SPS为所述服务SPS;以及
响应于指示所述服务SPS未相对于所述先前SPS被更新的所述SPS更新状态标志,忽略并跳过对所述当前视频样本中的所述当前SPS的解析,并且确定所述先前SPS为用于所述当前视频样本的服务SPS。
6.根据权利要求1至2中任一项所述的方法,其中,响应于所述当前视频样本是随机访问请求的起始点,将所述当前SPS封装在所述当前视频样本中。
7.根据权利要求6所述的方法,其中,确定用于所述当前视频样本的服务SPS包括:
响应于所述当前视频样本是随机访问请求的起始点,确定所述当前SPS为用于所述当前视频样本的服务SPS。
8.根据权利要求1至2中任一项所述的方法,还包括:
存储用于所述当前视频样本的服务SPS;
从所述比特流接收在所述当前视频样本之后的下一个视频样本;
确定用于所述下一个视频样本的服务SPS未相对于用于所述当前视频样本的服务SPS被更新;以及
基于用于所述当前视频样本的服务SPS,对所述下一个视频样本进行解码。
9.根据权利要求1至2中任一项所述的方法,其中:
在接收到包括所述至少一个视频样本的所述比特流之前,所述方法还包括从所述比特流接收所述候选SPS的列表;并且
确定用于所述当前视频样本的服务SPS包括:
从所述比特流中提取与所述当前视频样本相关联并且标识所述候选SPS的列表中的SPS的SPS标识符;以及
确定由所述SPS标识符标识的所述候选SPS的列表中的SPS为用于所述当前视频样本的服务SPS。
10.根据权利要求1至2中任一项所述的方法,其中:
所述当前视频样本封装所述当前SPS;
所述方法还包括确定所述当前SPS是否在所述候选SPS的列表中;以及
确定用于所述当前视频样本的服务SPS包括:
响应于所述当前SPS不在所述候选SPS的列表中,执行以下操作:
解析所述当前视频样本以获得所述当前SPS;
将所述当前SPS添加到所述候选SPS的列表;以及
确定所述当前SPS为用于所述当前视频样本的服务SPS;以及
响应于所述当前SPS在所述候选SPS的列表中,执行以下操作:
从所述候选SPS的列表中查找所述当前SPS;以及
确定所述当前SPS为用于所述当前视频样本的服务SPS。
11.根据权利要求1至2中任一项所述的方法,其中,确定用于所述当前视频样本的服务SPS包括:
从所述比特流中提取SPS长度指示器,所述SPS长度指示器与所述当前视频样本相关联并指示被封装在所述当前视频样本中的所述当前SPS的长度;
响应于由所述SPS长度指示器指示的所述当前SPS的长度为0,确定所述服务SPS是用于对所述先前视频样本进行解码的所述先前SPS;以及
响应由所述SPS长度指示器指示的所述SPS的长度不为0,执行以下操作:
从所述比特流中提取所述当前SPS的位置信息;
基于所述位置信息,对所述比特流进行解析,以获得所述当前SPS;以及
确定所述当前SPS为用于所述当前视频样本的服务SPS。
12.一种用于视频处理的设备,所述设备包括用于存储计算机指令的存储器和与所述存储器通信的处理器,其中,当所述处理器执行所述计算机指令时,所述处理器被配置成使所述设备执行以下操作:
接收包括至少一个视频样本的比特流,所述至少一个视频样本包括当前视频样本和先前视频样本,其中,所述至少一个视频样本中的每个视频样本包括至少一个视频帧,并且其中,所述至少一个视频样本中的每个视频样本与用于对所述至少一个视频样本中的每个视频样本进行解码的服务序列参数集(SPS)相关联;
确定用于所述当前视频样本的服务SPS为以下类型之一:
已经从所述比特流中解析并且用于对所述先前视频样本进行解码的先前SPS;
封装在所述当前视频样本中的当前SPS;以及
候选SPS的列表中的SPS;以及
基于用于所述当前视频样本的服务SPS和所确定的服务SPS的类型,对所述当前视频样本进行解码。
13.根据权利要求12所述的设备,其中,当所述处理器被配置成使所述设备确定用于所述当前视频样本的服务SPS时,所述处理器被配置成使所述设备执行以下操作:
从所述比特流中提取指示所述当前视频样本是否封装所述当前SPS的SPS存在标志;以及
响应于指示所述当前视频样本封装了所述当前SPS的所述SPS存在标志,执行以下操作:
从所述比特流中提取所述当前SPS的位置信息;
基于所述位置信息来解析所述比特流,以获得所述当前SPS;以及
确定所述当前SPS为用于所述当前视频样本的服务SPS。
14.根据权利要求13所述的设备,其中,所述处理器被配置成还使所述设备执行以下操作:
响应于指示所述当前视频样本未封装所述当前SPS的所述SPS存在标志,确定所述先前SPS为用于所述当前视频样本的服务SPS。
15.根据权利要求12所述的设备,其中:
所述至少一个视频样本中的每个视频样本封装SPS;
在所述当前视频样本中封装的所述SPS是所述当前SPS;并且
当所述处理器被配置成使所述设备确定用于所述当前视频样本的服务SPS时,所述处理器被配置成使所述设备执行以下操作:
从所述比特流中提取SPS更新状态标志,所述SPS更新状态标志指示所述服务SPS是否相对于用于对所述先前视频样本进行解码的所述先前SPS被更新;
响应于指示所述服务SPS相对于所述先前SPS被更新的所述SPS更新状态标志,确定所述当前SPS为所述服务SPS;以及
响应于指示所述服务SPS未相对于所述先前SPS被更新的所述SPS更新状态标志,忽略并跳过对所述当前视频样本中的所述当前SPS的解析,并且确定所述先前SPS为用于所述当前视频样本的服务SPS。
16.根据权利要求12所述的设备,其中,响应于所述当前视频样本是随机访问请求的起始点,将所述当前SPS封装在所述当前视频样本中。
17.根据权利要求16所述的设备,其中,当所述处理器被配置成使所述设备确定用于所述当前视频样本的服务SPS时,所述处理器被配置成使所述设备执行以下操作:
响应于所述当前视频样本是随机访问请求的起始点,确定所述当前SPS为用于所述当前视频样本的服务SPS。
18.根据权利要求12所述的设备,其中,所述处理器被配置成还使所述设备执行以下操作:
存储用于所述当前视频样本的服务SPS;
从所述比特流接收在所述当前视频样本之后的下一个视频样本;
确定用于所述下一个视频样本的服务SPS未相对于用于所述当前视频样本的服务SPS被更新;以及
基于用于所述当前视频样本的服务SPS,对所述下一个视频样本进行解码。
19.一种用于存储计算机可读指令的非暂态存储介质,所述计算机可读指令在由用于视频处理的设备中的处理器执行时,使所述处理器执行以下操作:
接收包括至少一个视频样本的比特流,所述至少一个视频样本包括当前视频样本和先前视频样本,其中,所述至少一个视频样本中的每个视频样本包括至少一个视频帧,并且其中,所述至少一个视频样本中的每个视频样本与用于对所述至少一个视频样本中的每个视频样本进行解码的服务序列参数集(SPS)相关联;
确定用于所述当前视频样本的服务SPS是以下类型之一:
已经从比特流中解析并且用于对所述先前视频样本进行解码的先前SPS;
封装在所述当前视频样本中的当前SPS;以及
候选SPS的列表中的SPS;以及
基于用于所述当前视频样本的服务SPS和所确定的服务SPS的类型,对所述当前视频样本进行解码。
20.根据权利要求19所述的非暂态存储介质,其中,当所述计算机可读指令使所述处理器确定用于所述当前视频样本的服务SPS时,所述计算机可读指令使所述处理器执行以下操作:
从所述比特流中提取指示所述当前视频样本是否封装所述当前SPS的SPS存在标志;以及
响应于指示所述当前视频样本封装了所述当前SPS的所述SPS存在标志,执行以下操作:
从所述比特流中提取所述当前SPS的位置信息;
基于所述位置信息来解析所述比特流,以获得所述当前SPS;以及
确定所述当前SPS为用于所述当前视频样本的服务SPS。
CN202280014716.XA 2022-03-25 2022-11-04 视频流式传输中的参数集指示的方法 Pending CN117136544A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202263323846P 2022-03-25 2022-03-25
US63/323,846 2022-03-25
US17/973,986 2022-10-26
US17/973,986 US20230308658A1 (en) 2022-03-25 2022-10-26 Methods of parameter set indication in video streaming
PCT/US2022/048932 WO2023183033A1 (en) 2022-03-25 2022-11-04 Methods of parameter set indication in video streaming

Publications (1)

Publication Number Publication Date
CN117136544A true CN117136544A (zh) 2023-11-28

Family

ID=88096795

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280014716.XA Pending CN117136544A (zh) 2022-03-25 2022-11-04 视频流式传输中的参数集指示的方法

Country Status (5)

Country Link
US (1) US20230308658A1 (zh)
JP (1) JP2024515989A (zh)
KR (1) KR20240001212A (zh)
CN (1) CN117136544A (zh)
WO (1) WO2023183033A1 (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DK3051824T3 (da) * 2012-04-12 2020-05-11 Velos Media Int Ltd Håndtering af udvidelsesdata
US9736476B2 (en) * 2012-04-27 2017-08-15 Qualcomm Incorporated Full random access from clean random access pictures in video coding
US9426466B2 (en) * 2012-06-22 2016-08-23 Qualcomm Incorporated Transform skip mode
CN115767099A (zh) * 2017-05-31 2023-03-07 交互数字麦迪逊专利控股公司 画面编码和解码的方法和设备

Also Published As

Publication number Publication date
US20230308658A1 (en) 2023-09-28
KR20240001212A (ko) 2024-01-03
WO2023183033A1 (en) 2023-09-28
JP2024515989A (ja) 2024-04-11

Similar Documents

Publication Publication Date Title
CN111869212B (zh) 视频解码方法、装置和可读介质
CN111937387B (zh) 用于采用并行处理的基于历史的运动矢量的预测方法和装置
CN111989918B (zh) 视频解码的方法、装置及存储介质
CN111903131B (zh) 用于解码器中的视频解码的方法、装置及计算机可读介质
CN111837390A (zh) 用于视频编码的方法和装置
CN110944185B (zh) 视频解码的方法和装置、计算机设备及存储介质
CN111492659A (zh) 视频编码的方法和装置
CN113785564B (zh) 视频编解码的方法和装置
CN112292859B (zh) 一种用于解码至少一个视频流的方法和装置
CN113424546B (zh) 视频解码或编码的方法和装置
CN113966613B (zh) 视频编解码的方法、装置、可读介质及计算机系统
CN112235581A (zh) 视频解码方法和装置
CN112020829B (zh) 用于在解码器中进行视频解码的方法、装置和计算机可读介质
CN112005549B (zh) 一种帧内-帧间预测控制方法、装置、设备及存储介质
CN113348668B (zh) 一种视频解码方法、装置及存储介质
CN113228649B (zh) 视频解码方法、装置以及存储介质
CN112514385B (zh) 视频解码方法及装置、计算机设备和计算机可读介质
CN113711586A (zh) 简化的最可能模式列表生成方案
CN111836056A (zh) 视频解码的方法和装置、计算机设备和存储介质
CN113348664B (zh) 视频解码的方法、装置及计算机可读介质
CN111726622B (zh) 视频编解码的方法、装置及介质
CN114402615B (zh) 视频解码方法、装置及计算机可读存储介质
CN110719462A (zh) 视频解码的方法和装置
CN112235573B (zh) 视频编解码的方法、装置、电子设备、存储介质
CN111757122A (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