CN116998150A - State transition for grid quantization in video coding and decoding - Google Patents
State transition for grid quantization in video coding and decoding Download PDFInfo
- Publication number
- CN116998150A CN116998150A CN202280019630.6A CN202280019630A CN116998150A CN 116998150 A CN116998150 A CN 116998150A CN 202280019630 A CN202280019630 A CN 202280019630A CN 116998150 A CN116998150 A CN 116998150A
- Authority
- CN
- China
- Prior art keywords
- quantized
- state transition
- transition diagram
- elements
- block
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/18—Methods 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 set of transform coefficients
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
相关申请的交叉引用Cross-references to related applications
本申请要求于2021年4月2日提交的标题为“Improved State Transition Methodfor Trellis Quantization in Video Coding”的美国临时申请第63/170,040号的优先权权益,该申请通过引用整体并入本文中。This application claims the benefit of priority from U.S. Provisional Application No. 63/170,040, entitled "Improved State Transition Method for Trellis Quantization in Video Coding", filed on April 2, 2021, which is incorporated herein by reference in its entirety.
技术领域Technical field
本公开总体上涉及用于视频处理的计算机实现的方法和系统。具体地,本公开涉及用于视频编解码的网格量化。The present disclosure relates generally to computer-implemented methods and systems for video processing. In particular, the present disclosure relates to trellis quantization for video codecs.
背景技术Background technique
无处不在的具备摄像功能的设备,如智能手机、平板电脑和电脑,使得捕捉视频或图像比以往任何时候都更容易。然而,即使是短视频的数据量也可能相当大。视频编解码技术(包括视频编码和解码)能够将视频数据压缩成更小的数据量,从而允许更多类型视频的存储和传输。视频编解码已经在广泛的应用中使用,例如数字电视广播、通过互联网和移动网络的视频传输、实时应用(例如,视频聊天、视频会议)、DVD和蓝光光盘等等。为了减少用于存储视频的存储空间和/或用于传输视频的网络带宽消耗,需要提高视频编解码方案的效率。The ubiquity of camera-enabled devices such as smartphones, tablets, and computers makes capturing video or images easier than ever. However, even short videos can be quite large in data size. Video codec technology (including video encoding and decoding) can compress video data into a smaller amount of data, allowing the storage and transmission of more types of videos. Video codecs are already used in a wide range of applications, such as digital television broadcasting, video transmission over the Internet and mobile networks, real-time applications (e.g., video chat, video conferencing), DVD and Blu-ray discs, and more. In order to reduce the storage space used to store videos and/or the network bandwidth consumption used to transmit videos, the efficiency of video encoding and decoding schemes needs to be improved.
发明内容Contents of the invention
一些实施例涉及用于视频编解码的相关量化。在一个示例中,一种用于重建视频的块的方法包括依据顺序处理块内的多个量化的元素,以生成对应于多个量化的元素的各个去量化的元素。该处理包括从多个量化的元素中获得块内的一个量化的元素;基于所获得的量化的元素之前的量化的元素的用于量化的状态和从第一状态转换图和第二状态转换图中选择的状态转换图,确定所获得的量化的元素的用于量化的状态,其中,第一状态转换图不同于第二状态转换图;基于所获得的量化的元素的状态确定所获得的量化的元素的量化器;以及使用此量化器去量化所获得的量化的元素,以生成对应于所获得的量化的元素的去量化的元素。该方法还包括基于对应于多个量化的元素的各个去量化的元素来重建块。Some embodiments relate to correlated quantization for video codecs. In one example, a method for reconstructing a block of a video includes processing a plurality of quantized elements within the block in a sequence to generate respective dequantized elements corresponding to the plurality of quantized elements. The processing includes obtaining a quantized element within the block from a plurality of quantized elements; a state for quantization based on a quantized element preceding the obtained quantized element and from a first state transition diagram and a second state transition diagram. Determine the state of the obtained quantized element for quantization from a state transition diagram selected in, wherein the first state transition diagram is different from the second state transition diagram; determine the obtained quantization based on the obtained state of the quantized element a quantizer for elements; and using this quantizer to quantize the obtained quantized elements to generate dequantized elements corresponding to the obtained quantized elements. The method also includes reconstructing the block based on respective dequantized elements corresponding to the plurality of quantized elements.
在另一个示例中,一种非暂时性计算机可读介质,其中存储有程序代码,并且该程序代码可由一个或多个处理设备执行,以执行以下操作:依据顺序处理视频的块内的多个量化的元素,以生成对应于多个量化的元素的各个去量化的元素,该处理包括:从多个量化的元素中获得块内的一个量化的元素;基于所获得的量化的元素之前的量化的元素的用于量化的状态和从第一状态转换图和第二状态转换图中选择的状态转换图,确定所获得的量化的元素的用于量化的状态,其中,第一状态转换图不同于第二状态转换图;基于所获得的量化的元素的状态确定所获得的量化的元素的量化器;以及使用此量化器去量化所获得的量化的元素,以生成对应于所获得的量化的元素的去量化的元素。该操作还包括基于对应于多个量化的元素的各个去量化的元素来重建块。In another example, a non-transitory computer-readable medium has program code stored therein and executable by one or more processing devices to perform the following operations: sequentially process a plurality of blocks within a video quantized elements to generate respective dequantized elements corresponding to a plurality of quantized elements, the processing comprising: obtaining a quantized element within the block from the plurality of quantized elements; based on a previous quantization of the obtained quantized element The state of the element for quantization and the state transition diagram selected from the first state transition diagram and the second state transition diagram determine the obtained state of the element for quantization for quantization, wherein the first state transition diagram is different in the second state transition diagram; determining a quantizer for the obtained quantized element based on the state of the obtained quantized element; and using the quantizer to quantize the obtained quantized element to generate a quantized signal corresponding to the obtained quantized element. The dequantized element of the element. The operations also include reconstructing the block based on respective dequantized elements corresponding to the plurality of quantized elements.
在又一示例中,一个包括处理设备和能与处理设备数据传输的非暂时性计算机可读介质的系统。处理设备被配置为执行存储在非暂时性计算机可读介质中的程序代码,以执行以下操作:依据顺序处理视频块内的多个量化的元素以生成对应于多个量化的元素的各个去量化的元素,该处理包括:从多个量化的元素中获得块内的一个量化的元素;基于所获得的量化的元素之前的量化的元素的用于量化的状态和从第一状态转换图和第二状态转换图中选择的状态转换图,确定所获得的量化的元素的用于量化的状态,其中,第一状态转换图不同于第二状态转换图;基于所获得的量化的元素的当前状态确定所获得的量化的元素的量化器;以及使用此量化器去量化所获得的量化的元素,以生成对应于所获得的量化的元素的去量化的元素。该操作还包括基于对应于多个量化的元素的各个去量化的元素来重建块。In yet another example, a system includes a processing device and a non-transitory computer-readable medium capable of data transmission with the processing device. The processing device is configured to execute program code stored in the non-transitory computer-readable medium to perform the following operations: sequentially process a plurality of quantized elements within the video block to generate respective dequantizations corresponding to the plurality of quantized elements. The processing includes: obtaining a quantized element within the block from a plurality of quantized elements; a state for quantization based on the quantized element before the obtained quantized element and a transition diagram from the first state and the second state; The state transition diagram selected from the two state transition diagrams determines the state of the obtained quantized element for quantization, wherein the first state transition diagram is different from the second state transition diagram; based on the current state of the obtained quantized element determining a quantizer for the obtained quantized elements; and using the quantizer to quantize the obtained quantized elements to generate dequantized elements corresponding to the obtained quantized elements. The operations also include reconstructing the block based on respective dequantized elements corresponding to the plurality of quantized elements.
在另一示例中,用于对视频的块进行编码的方法包括依据顺序处理视频的块内多个元素,以生成对应于多个元素的各个量化的元素。该处理包括:从多个元素中获得块内的一个元素;基于所获得的元素之前的元素的用于量化的状态和从第一状态转换图和第二状态转换图中选择的状态转换图,确定所获得的元素的用于量化的状态,其中,第一状态转换图不同于第二状态转换图;基于所获得的元素的当前状态确定所获得的元素的量化器;以及使用此量化器量化所获得的元素,以生成对应于所获得的元素的量化的元素。该方法还包括将对应于多个元素的各个量化的元素编码到视频的比特流中。In another example, a method for encoding a block of video includes sequentially processing a plurality of elements within the block of video to generate respective quantized elements corresponding to the plurality of elements. The processing includes: obtaining one element within the block from a plurality of elements; a state for quantization based on an element before the obtained element and a state transition diagram selected from the first state transition diagram and the second state transition diagram, Determining a state of the obtained element for quantization, wherein the first state transition diagram is different from the second state transition diagram; determining a quantizer of the obtained element based on the current state of the obtained element; and quantizing using the quantizer the obtained element to generate a quantized element corresponding to the obtained element. The method also includes encoding respective quantized elements corresponding to the plurality of elements into a bitstream of the video.
在又一示例中,一种非暂时性计算机可读介质,其中存储有程序代码,并且该程序代码可由一个或多个处理设备执行,以执行以下操作:依据顺序处理视频的块的多个元素,以生成对应于多个元素的各个量化的元素,该处理包括:从多个元素中获得块内的一个元素;基于所获得的元素之前的元素的用于量化的状态和从第一状态转换图和第二状态转换图中选择的状态转换图,确定所获得的元素的用于量化的状态,其中,第一状态转换图不同于第二状态转换图;基于所获得的元素的当前状态确定所获得的元素的量化器;以及使用此量化器量化所获得的元素,以生成对应于所获得的元素的量化的元素。该操作还包括将对应于多个元素的各个量化的元素编码到视频的比特流中。In yet another example, a non-transitory computer-readable medium has program code stored therein and executable by one or more processing devices to: sequentially process multiple elements of a block of video , to generate respective quantized elements corresponding to the plurality of elements, the process including: obtaining an element within the block from the plurality of elements; a state for quantization based on the element before the obtained element and transitioning from the first state The state transition diagram selected in the diagram and the second state transition diagram determines the state of the obtained element for quantification, wherein the first state transition diagram is different from the second state transition diagram; determined based on the current state of the obtained element a quantizer for the obtained element; and quantizing the obtained element using this quantizer to generate a quantized element corresponding to the obtained element. The operations also include encoding respective quantized elements corresponding to the plurality of elements into the bitstream of the video.
一个系统包括处理设备和能与处理设备数据传输的非暂时性计算机可读介质。处理设备被配置为执行存储在非暂时性计算机可读介质中的程序代码,以执行以下操作:依据顺序处理视频块的多个元素,以生成对应于多个元素的各个量化的元素,该处理包括:从多个元素中获得块内的一个元素;基于所获得的元素之前的元素的用于量化的状态和从第一状态转换图和第二状态转换图中选择的状态转换图,确定所获得的元素的用于量化的状态,其中,第一状态转换图不同于第二状态转换图;基于所获得的元素的当前状态确定所获得的元素的量化器;以及使用此量化器量化所获得的元素,以生成对应于所获得的元素的量化的元素。该操作还包括将对应于多个元素的各个量化的元素编码到视频的比特流中。A system includes a processing device and non-transitory computer-readable media capable of transmitting data to and from the processing device. The processing device is configured to execute program code stored in the non-transitory computer-readable medium to perform the following operations: process a plurality of elements of the video block in sequence to generate respective quantized elements corresponding to the plurality of elements, the processing including: obtaining an element within the block from a plurality of elements; determining the state transition diagram selected from the first state transition diagram and the second state transition diagram based on the state of the element before the obtained element for quantification. a state of the obtained element for quantization, wherein the first state transition diagram is different from the second state transition diagram; determining a quantizer of the obtained element based on the current state of the obtained element; and quantizing the obtained element using this quantizer elements to generate quantized elements corresponding to the obtained elements. The operations also include encoding respective quantized elements corresponding to the plurality of elements into the bitstream of the video.
提及这些说明性实施例不是为了限制或定义本公开,而是为了提供示例以帮助理解本公开。在具体实施方式中讨论了附加的实施例,并且提供了进一步的描述。These illustrative embodiments are mentioned not to limit or define the disclosure, but to provide examples to aid understanding of the disclosure. Additional embodiments are discussed and further description is provided in the Detailed Description.
附图说明Description of the drawings
参考附图阅读下面的具体实施方式能够更好地理解本公开的特征、实施例和优点。The features, embodiments, and advantages of the present disclosure can be better understood by reading the following detailed description with reference to the accompanying drawings.
图1示出被配置为实现本公开呈现的实施例的视频编码器的示例的框图。1 illustrates a block diagram of an example of a video encoder configured to implement embodiments presented in this disclosure.
图2示出被配置为实现本公开呈现的实施例的视频解码器的示例的框图。2 illustrates a block diagram of an example of a video decoder configured to implement embodiments presented in this disclosure.
图3描绘了根据本公开的一些实施例的视频中的图像的编码树单元划分的示例。Figure 3 depicts an example of coding tree unit partitioning of images in a video according to some embodiments of the present disclosure.
图4描绘了根据本公开的一些实施例的编码树单元的编码单元划分的示例。Figure 4 depicts an example of coding unit partitioning of coding tree units according to some embodiments of the present disclosure.
图5描绘了用于处理编码块内元素的预定顺序的示例。Figure 5 depicts an example of a predetermined order for processing elements within a coding block.
图6描绘了在现有的视频编解码技术中用于相关量化的两个量化器的示例。Figure 6 depicts an example of two quantizers used for correlation quantization in existing video coding and decoding techniques.
图7描绘了根据本公开的一些实施例的用于相关量化的状态转换图和相关联的状态转换表的示例。Figure 7 depicts an example of a state transition diagram and associated state transition table for correlation quantization in accordance with some embodiments of the present disclosure.
图8描绘了根据本公开的一些实施例中采用网格量化来量化块中的多个连续系数的可能网格路径的示例。Figure 8 depicts an example of possible trellis paths employing trellis quantization to quantize multiple consecutive coefficients in a block in accordance with some embodiments of the present disclosure.
图9A和9B描绘了根据本公开的一些实施例中采用网格量化来量化块中的多个连续系数的可能网格路径的另一个示例。Figures 9A and 9B depict another example of possible trellis paths employing trellis quantization to quantize multiple consecutive coefficients in a block in accordance with some embodiments of the present disclosure.
图10描绘了根据本公开的一些实施例的用于网格量化的状态转换图和相关联的状态转换表的另一个示例。Figure 10 depicts another example of a state transition diagram and associated state transition table for grid quantization in accordance with some embodiments of the present disclosure.
图11描绘了根据本公开的一些实施例中使用双状态转换图来量化块中的多个连续系数的可能网格路径的示例。Figure 11 depicts an example of a possible grid path for using a two-state transition map to quantize multiple consecutive coefficients in a block in accordance with some embodiments of the present disclosure.
图12描绘了根据本公开的一些实施例中使用双状态转换图来量化块中的多个连续系数的可能网格路径的另一个示例。Figure 12 depicts another example of a possible grid path for using a two-state transition map to quantize multiple consecutive coefficients in a block in accordance with some embodiments of the present disclosure.
图13描绘了根据本公开的一些实施例中使用具有双状态转换图的网格量化来编码视频的块的过程的示例。Figure 13 depicts an example of a process for encoding blocks of video using trellis quantization with a two-state transition map in accordance with some embodiments of the present disclosure.
图14描绘了根据本公开的一些实施例中重建通过使用具有双状态转换图的网格量化进行量化的视频的块的过程的示例。Figure 14 depicts an example of a process for reconstructing blocks of video quantized using grid quantization with a two-state transition map in accordance with some embodiments of the present disclosure.
图15描绘了可用于实现本公开的一些实施例的计算系统的示例。Figure 15 depicts an example of a computing system that may be used to implement some embodiments of the present disclosure.
具体实施方式Detailed ways
各种实施例均可以提供用于视频编解码的网格量化。如上所述,越来越多的视频数据正在被生成、存储和传输,所以提高视频编解码技术的编解码效率是有益的,这有利于使用较少的数据来呈现视频,同时不损害解码的视频的视觉质量。提高编解码效率的一个方面是改进视频编解码的量化方案。最新的视频编解码标准,例如通用视频编解码(versatile video coding,VVC),已经采用了诸如相关量化的网格量化技术。Various embodiments may provide trellis quantization for video codecs. As mentioned above, more and more video data are being generated, stored and transmitted, so it is beneficial to improve the encoding and decoding efficiency of video codec technology, which is beneficial to using less data to present the video without compromising the decoding efficiency. The visual quality of the video. One aspect of improving codec efficiency is to improve the quantization scheme of video codecs. The latest video codec standards, such as versatile video coding (VVC), have adopted grid quantization techniques such as correlation quantization.
在网格量化中,当量化编码块(或“块”)内的元素(例如,残差像素值或残差的变换系数)时,超过一个量化器是可用的。用于量化当前元素的量化器取决于编码块中前一个元素的值。在一些示例中,先前量化的元素的值用于确定用于量化当前元素的量化状态,该量化状态又用于确定当前元素的量化器(在下文中,“用于量化元素的量化状态”也称为“元素的状态”)。由于现有的网格量化方法仅使用一个状态转换图,所以沿着块中的连续元素的量化路径可能遵循具有简单模式的量化路径。例如,量化路径可以指示多个连续元素使用同一标量量化器,或者两个量化器被交替用于连续元素。这些简单的模式量化路径没有充分利用网格量化,大大削弱了网格量化相对于标量量化的优势,从而降低了编码效率。In trellis quantization, more than one quantizer is available when quantizing elements (eg, residual pixel values or residual transform coefficients) within a coding block (or "block"). The quantizer used to quantize the current element depends on the value of the previous element in the encoding block. In some examples, the value of a previously quantized element is used to determine the quantization state used to quantize the current element, which in turn is used to determine the quantizer for the current element (hereinafter, the "quantization state used to quantize the element" is also referred to as is the "state of the element"). Since existing grid quantization methods use only one state transition graph, the quantization path along consecutive elements in a block is likely to follow a quantization path with a simple pattern. For example, a quantization path may indicate that multiple consecutive elements use the same scalar quantizer, or that two quantizers are used alternately for consecutive elements. These simple pattern quantization paths do not fully utilize grid quantization, which greatly weakens the advantages of grid quantization over scalar quantization, thereby reducing coding efficiency.
本公开描述的各种实施例通过引入第二状态转换图并在确定编码块的元素的状态和为该元素选择量化器时使用两个状态转换图来解决这些问题。编码块的元素可以是编码块的帧间或帧内预测之后的残差。该元素可以是频域中残差的变换系数或像素域中残差的值。当确定用于选择用于量化当前元素的量化器的量化状态时,可以使用两个状态转换图中的一个。例如,这两个状态转换图可以在交替模式中使用,使得第一状态转换图用于N个连续元素,第二状态转换图用于接下来的M个连续元素,依此类推。M和N是整数值,M可以等于或小于N。Various embodiments described in this disclosure address these issues by introducing a second state transition diagram and using two state transition diagrams when determining the state of an element of a coding block and selecting a quantizer for that element. The elements of the coding block may be the residuals after inter- or intra-prediction of the coding block. This element can be the transform coefficient of the residual in the frequency domain or the value of the residual in the pixel domain. When determining the quantization state used to select the quantizer for quantizing the current element, one of two state transition diagrams may be used. For example, these two state transition diagrams can be used in alternating mode, such that the first state transition diagram is used for N consecutive elements, the second state transition diagram is used for the next M consecutive elements, and so on. M and N are integer values, M can be equal to or less than N.
提供以下非限制性示例来介绍一些实施例。在一个示例中,根据用于量化当前元素的量化状态确定编码块的当前元素的量化器。基于前一个元素的量化状态以及前一个元素的量化的值是否属于量化值的一个子集而非另一个子集来确定用于量化当前元素的量化状态。在一些实现中,如果元素是频域中的变换系数,则根据预定的顺序,例如从最高频率到最低频率,来处理编码块中的元素。在这些示例中,视频编码器或解码器根据预定顺序并基于状态转换图,基于当前元素之前的元素及其对应的量化状态来确定用于量化当前元素的量化状态。The following non-limiting examples are provided to introduce some embodiments. In one example, the quantizer for encoding the current element of the block is determined based on the quantization state used to quantize the current element. The quantization state used to quantize the current element is determined based on the quantization state of the previous element and whether the quantized value of the previous element belongs to one subset of quantized values rather than another subset. In some implementations, if the elements are transform coefficients in the frequency domain, the elements in the coding block are processed according to a predetermined order, such as from highest frequency to lowest frequency. In these examples, the video encoder or decoder determines the quantization state used to quantize the current element based on the elements preceding the current element and their corresponding quantization states according to a predetermined order and based on the state transition diagram.
该状态转换图是通过遵循N+M的重复模式在主要状态转换图和次要状态转换图之间交替所确定的。换句话说,主要状态转换图可以用于N个连续元素,然后次要状态转换图用于接下来的M个连续元素。可以重复这种模式,直到处理完块中的所有元素。N和M是整数,N可以等于M或大于M。编码器和解码器都使用相同的N、M和重复模式N+M。与仅使用一个状态转移图来确定当前元素的状态的现有的网格量化方法相比,所提出的方法避免了量化的网格路径被限制于有限数量的简单路径中,从而能够充分利用网格量化相对于标量量化的优势来提高编码效率。The state transition diagram is determined by alternating between a primary state transition diagram and a secondary state transition diagram following an N+M repeating pattern. In other words, the primary state transition diagram can be used for N consecutive elements, and then the secondary state transition diagram is used for the next M consecutive elements. This pattern can be repeated until all elements in the block have been processed. N and M are integers, and N can be equal to M or greater than M. Both encoder and decoder use the same N, M and repeating pattern N+M. Compared with existing mesh quantization methods that only use a state transition diagram to determine the state of the current element, the proposed method avoids the quantized mesh paths being restricted to a limited number of simple paths, thereby being able to fully utilize the mesh. The advantages of lattice quantization over scalar quantization are used to improve coding efficiency.
视频编码器可以使用所选择的量化器来量化当前元素,然后可以将用于编码块的量化的元素编码到视频的比特流中。在解码器侧或编码器侧,当为了预测目的重建块时,去量化处理可以使用上述方法确定块中每个量化的元素的量化状态,并且随后确定量化器。所确定的量化器可以用于对元素进行去量化,然后,这些去量化的块的元素可以用于重建视频的块,从而用于显示(在解码器处)或预测其他块或图像(在编码器和解码器处)。本公开提出的技术可以是各种视频编解码标准中的有效编解码工具。The video encoder can quantize the current element using the selected quantizer, and then can encode the quantized elements for the encoding block into the bitstream of the video. On the decoder side or encoder side, when reconstructing a block for prediction purposes, the dequantization process may use the method described above to determine the quantization state of each quantized element in the block, and subsequently determine the quantizer. The determined quantizer can be used to dequantize the elements, and the elements of these dequantized blocks can then be used to reconstruct blocks of the video for display (at the decoder) or prediction of other blocks or images (at the encoder). encoder and decoder). The technology proposed by this disclosure can be an effective codec tool in various video codec standards.
现在参考附图,图1示出了被配置为实现本公开呈现的实施例的视频编码器100的示例的框图。在图1所示的示例中,视频编码器100包括划分模块112、变换模块114、量化模块115、逆量化模块118、逆变换模块119、环内滤波器模块120、帧内预测模块126、帧间预测模块124、运动估计模块122、解码的图像缓冲器130和熵编码模块116。Referring now to the drawings, FIG. 1 illustrates a block diagram of an example of a video encoder 100 configured to implement embodiments presented in this disclosure. In the example shown in Figure 1, video encoder 100 includes partitioning module 112, transform module 114, quantization module 115, inverse quantization module 118, inverse transform module 119, in-loop filter module 120, intra prediction module 126, frame inter prediction module 124, motion estimation module 122, decoded image buffer 130 and entropy encoding module 116.
视频编码器100的输入是包含图像(也称为帧或图片)序列的输入视频102。在基于块的视频编码器中,对于每个图像,视频编码器100采用划分模块112将图像划分为块104,并且每个块包含多个像素。块可以是宏块、编码树单元、编码单元、预测单元和/或预测块。一个图像可以包括不同大小的块,并且视频的不同图像的块划分也可以不同。不同图像可以使用不同的预测(例如帧内预测或帧间预测或帧内和帧间混合预测)来编码每个块。The input to the video encoder 100 is an input video 102 that contains a sequence of images (also called frames or pictures). In a block-based video encoder, for each image, the video encoder 100 employs a partitioning module 112 to partition the image into blocks 104, and each block contains a plurality of pixels. A block may be a macroblock, coding tree unit, coding unit, prediction unit, and/or prediction block. An image can include blocks of different sizes, and different images of a video can have different block divisions. Different images may use different predictions (eg intra prediction or inter prediction or mixed intra and inter prediction) to encode each block.
通常,视频信号的第一图像是帧内编码的图像,其仅使用帧内预测进行编码。帧内预测模式仅使用从同一图像编码的数据来预测图像的块。解码帧内编码的图像可以在没有来自其他图像的信息的情况下完成。为了执行帧内预测,图1所示的视频编码器100可以采用帧内预测模块126。帧内预测模块126被配置为使用同一图像中重建的相邻块136中的重建的样本来生成帧内预测块(预测块134)。帧内预测是根据为块选择的帧内预测模式来执行的。然后,视频编码器100计算原始图像块104和帧内预测块134之间的差。这种差被称为残差块106。Typically, the first picture of the video signal is an intra-coded picture, which is encoded using intra prediction only. Intra prediction mode predicts blocks of an image using only data encoded from the same image. Decoding intra-coded images can be done without information from other images. To perform intra prediction, video encoder 100 shown in FIG. 1 may employ intra prediction module 126. Intra-prediction module 126 is configured to generate an intra-prediction block (prediction block 134) using reconstructed samples from reconstructed neighboring blocks 136 in the same image. Intra prediction is performed based on the intra prediction mode selected for the block. Video encoder 100 then calculates the difference between original image block 104 and intra prediction block 134 . This difference is called the residual block 106.
为了进一步从块中去除冗余,通过对块中的样本应用变换,残差块106被变换模块114变换到变换域中。变换的示例可以包括但不限于离散余弦变换(discrete cosinetransform,DCT)或离散正弦变换(discrete sine transform,DST)。变换后的值可称为表示变换域中的残差块的变换系数。在一些示例中,残差块可以被直接量化而不被变换模块114变换。这被称为变换跳过模式。To further remove redundancy from the block, the residual block 106 is transformed into the transform domain by transform module 114 by applying a transform to the samples in the block. Examples of transformations may include, but are not limited to, discrete cosine transform (DCT) or discrete sine transform (DST). The transformed values may be called transform coefficients representing the residual block in the transform domain. In some examples, the residual blocks may be quantized directly without being transformed by transform module 114. This is called transform skip mode.
视频编码器100可以进一步使用量化模块115来量化变换系数,以获得量化的系数。量化包括将样本除以量化步长,随后进行四舍五入,而逆量化涉及将量化的值乘以量化步长。这种量化过程称为标量量化。量化用于减小视频样本(变换的或未变换的)的动态范围,以便使用更少的比特来呈现视频样本。Video encoder 100 may further quantize the transform coefficients using quantization module 115 to obtain quantized coefficients. Quantization involves dividing the sample by the quantization step, followed by rounding, while inverse quantization involves multiplying the quantized value by the quantization step. This quantization process is called scalar quantization. Quantization is used to reduce the dynamic range of video samples (transformed or untransformed) so that fewer bits are used to render the video samples.
块内系数/样本的量化可以独立完成,并且这种量化方法被用于一些现有的视频压缩标准,例如H.264和HEVC。对于一个N×M块,可以使用一些扫描顺序将块的2D系数转换成用于系数量化和编解码的1-D阵列。块内系数的量化可以利用扫描顺序信息。例如,块中给定系数的量化可以取决于沿着扫描顺序的先前量化的值的状态。为了进一步提高编解码效率,可以使用超过一个量化器。哪个量化器用于量化当前系数取决于沿着扫描顺序在当前系数之前的编码解码信息。这种量化方法被称为相关量化。Quantization of intra-block coefficients/samples can be done independently, and this quantization method is used in some existing video compression standards, such as H.264 and HEVC. For an N×M block, some scan order can be used to convert the 2D coefficients of the block into a 1-D array for coefficient quantization and encoding and decoding. Quantization of coefficients within a block can exploit scan order information. For example, the quantization of a given coefficient in a block may depend on the state of previously quantized values along the scan order. To further improve encoding and decoding efficiency, more than one quantizer can be used. Which quantizer is used to quantize the current coefficient depends on the encoding and decoding information preceding the current coefficient along the scanning order. This quantification method is called correlation quantification.
可以使用量化步长来调整量化程度。例如,对于标量量化,可以应用不同的量化步长来实现更精细或更粗糙的量化。较小的量化步长对应于更精细的量化,而较大的量化步长对应于更粗糙的量化。量化步长可以由量化参数(quantization parameter,QP)指示。在视频的编码的比特流中提供量化参数,使得视频解码器可以访问并应用量化参数进行解码。The degree of quantization can be adjusted using the quantization step size. For example, with scalar quantization, different quantization steps can be applied to achieve finer or coarser quantization. Smaller quantization step sizes correspond to finer quantization, while larger quantization step sizes correspond to coarser quantization. The quantization step size may be indicated by a quantization parameter (QP). Quantization parameters are provided in the encoded bitstream of the video so that the video decoder can access and apply the quantization parameters for decoding.
量化的样本然后由熵编码模块116进行编码,以进一步减小视频信号的大小。熵编码模块116被配置为对量化的样本应用熵编码算法。在一些示例中,量化的样本被二值化为二进制码(bin),并且编码算法进一步将二进制码压缩到比特中。二值化方法的示例包括但不限于,组合的截断莱斯(truncated rice,TR)和有限k阶指数哥伦布(k-th order Exp-Golomb,EGk)二值化,以及k阶指数哥伦布二值化。熵编码算法的示例包括但不限于,可变长度编码(variable length coding,VLC)方案、上下文自适应VLC方案(context adaptiveVLC scheme,CAVLC)、算术编码方案、二值化、上下文自适应二进制算术编码(contextadaptive binary arithmetic coding,CABAC)、基于语法的上下文自适应二进制算术编码(syntax-based context-adaptive binary arithmetic coding,SBAC)、概率区间划分熵(probability interval partitioning entropy,PIPE)编码或其他熵编码技术。熵编码的数据然后被添加到已编码的视频132输出比特流中。The quantized samples are then encoded by the entropy encoding module 116 to further reduce the size of the video signal. Entropy coding module 116 is configured to apply an entropy coding algorithm to the quantized samples. In some examples, the quantized samples are binarized into bins, and the encoding algorithm further compresses the bins into bits. Examples of binarization methods include, but are not limited to, combined truncated rice (TR) and k-th order Exp-Golomb (EGk) binarization, and k-th order Exp-Golomb binarization change. Examples of entropy coding algorithms include, but are not limited to, variable length coding (VLC) scheme, context adaptive VLC scheme (CAVLC), arithmetic coding scheme, binarization, context adaptive binary arithmetic coding (contextadaptive binary arithmetic coding, CABAC), syntax-based context-adaptive binary arithmetic coding (SBAC), probability interval partitioning entropy (PIPE) coding or other entropy coding techniques . The entropy encoded data is then added to the encoded video 132 output bitstream.
如上所述,在图像的块的帧内预测中使用来自相邻块的重建的块136。生成块的重建的块136的过程涉及计算该块的重建的残差。可以通过对块的量化的残差应用逆量化和逆变换来确定重建的残差。逆量化模块118被配置为对量化的样本应用逆量化以获得去量化的系数。逆量化模块118通过使用与量化模块115相同的量化步长来应用与量化模块115所应用的量化方案相逆的方案。逆变换模块119被配置为将由变换模块114应用的变换的逆变换应用于去量化的样本,例如逆DCT或逆DST。逆变换模块119的输出是像素域中块的重建的残差。可将重建的残差添加到块的预测块134以获得像素域中的重建的块136。对于跳过变换的块,逆变换模块119不应用于那些块。去量化的样本是块的重建的残差。As described above, reconstructed blocks 136 from neighboring blocks are used in intra prediction of blocks of an image. The process of generating the reconstructed block 136 of a block involves calculating the reconstructed residual of the block. The reconstructed residual may be determined by applying inverse quantization and inverse transform to the quantized residual of the block. The inverse quantization module 118 is configured to apply inverse quantization to the quantized samples to obtain dequantized coefficients. Inverse quantization module 118 applies the inverse of the quantization scheme applied by quantization module 115 by using the same quantization step size as quantization module 115 . The inverse transform module 119 is configured to apply an inverse transform of the transform applied by the transform module 114 to the dequantized samples, such as an inverse DCT or an inverse DST. The output of the inverse transform module 119 is the reconstructed residual of the block in the pixel domain. The reconstructed residual may be added to the predicted block 134 of the block to obtain the reconstructed block 136 in the pixel domain. For blocks with skipped transformations, the inverse transform module 119 is not applied to those blocks. The dequantized samples are the reconstructed residuals of the block.
第一帧内预测图像的后续图像中的块可以使用帧间预测或帧内预测进行编码。在帧间预测中,图像中的块的预测来自一个或多个先前已编码的视频图像。视频编码器100使用帧间预测模块124来执行帧间预测。帧间预测模块124被配置为基于由运动估计模块122提供的运动估计对块执行运动补偿。Blocks in subsequent images of the first intra-predicted image may be encoded using inter-prediction or intra-prediction. In inter prediction, blocks in an image are predicted from one or more previously encoded video images. Video encoder 100 uses inter prediction module 124 to perform inter prediction. Inter prediction module 124 is configured to perform motion compensation on the block based on the motion estimate provided by motion estimation module 122 .
运动估计模块122将当前图像的当前块104与解码的参考图像108进行比较,以进行运动估计。解码的参考图像108被存储在解码的图像缓冲器130中。运动估计模块122从解码的参考图像108中选择与当前块最佳匹配的参考块。运动估计模块122进一步识别参考块的位置(例如,x,y坐标)和当前块的位置之间的偏移。该偏移被称为运动矢量(motionvector,MV),并且与所选择的参考块一起被提供给帧间预测模块124。在一些情况下,在多个解码的参考图像108中为当前块识别多个参考块。因此,多个运动矢量被生成并与相应的参考块一起被提供给帧间预测模块124。Motion estimation module 122 compares the current block 104 of the current image to the decoded reference image 108 to perform motion estimation. The decoded reference picture 108 is stored in the decoded picture buffer 130 . Motion estimation module 122 selects the reference block from the decoded reference image 108 that best matches the current block. Motion estimation module 122 further identifies an offset between the reference block's location (eg, x,y coordinates) and the current block's location. This offset is called a motion vector (MV) and is provided to the inter prediction module 124 together with the selected reference block. In some cases, multiple reference blocks are identified for the current block in multiple decoded reference images 108 . Accordingly, a plurality of motion vectors are generated and provided to the inter prediction module 124 along with the corresponding reference blocks.
帧间预测模块124使用运动矢量以及其他帧间预测参数来执行运动补偿,以生成当前块(即帧间预测块134)的预测。例如,基于运动矢量,帧间预测模块124可以在相应的参考图像中定位由运动矢量指向的预测块。如果存在超过一个预测块,则将这些预测块与一些权重组合以生成用于当前块的预测块134。Inter prediction module 124 performs motion compensation using motion vectors and other inter prediction parameters to generate predictions for the current block (ie, inter prediction block 134). For example, based on the motion vector, inter prediction module 124 may locate the prediction block pointed to by the motion vector in the corresponding reference image. If there is more than one prediction block, these prediction blocks are combined with some weights to generate prediction block 134 for the current block.
对于帧间预测的块,视频编码器100可以从块104减去帧间预测块134以生成残差块106。残差块106可以以与上面讨论的帧内预测的块的残差相同的方式被执行变换、量化和熵编码。同样,可以通过逆量化、逆变换残差并随后与相应的预测块134组合来获得帧间预测的块的重建块136。For inter-predicted blocks, video encoder 100 may subtract inter-predicted block 134 from block 104 to generate residual block 106 . The residual block 106 may be transformed, quantized, and entropy coded in the same manner as the residuals of intra-predicted blocks discussed above. Likewise, the reconstructed block 136 of the inter-predicted block may be obtained by inverse quantization, inverse transforming the residual and then combining with the corresponding prediction block 134 .
为了获得用于运动估计的解码的图像108,重建的块136由环内滤波器模块120处理。环内滤波器模块120被配置为平滑像素过渡,从而改善视频质量。环内滤波器模块120可以被配置为实现一个或多个环内滤波器,诸如去块滤波器、或采样自适应偏移(sample-adaptive offset,SAO)滤波器、或自适应环路滤波器(adaptive loop filter,ALF)等。To obtain the decoded image 108 for motion estimation, the reconstructed block 136 is processed by the in-loop filter module 120 . In-loop filter module 120 is configured to smooth pixel transitions, thereby improving video quality. In-loop filter module 120 may be configured to implement one or more in-loop filters, such as a deblocking filter, or a sample-adaptive offset (SAO) filter, or an adaptive loop filter. (Adaptive loop filter, ALF) etc.
图2描绘了被配置为实现本公开呈现的实施例的视频解码器200的示例。视频解码器200处理比特流中的已编码的视频202并生成解码的图像208。在图2所示的示例中,视频解码器200包括熵解码模块216、逆量化模块218、逆变换模块219、环内滤波器模块220、帧内预测模块226、帧间预测模块224和解码的图像缓冲器230。Figure 2 depicts an example of a video decoder 200 configured to implement embodiments presented in this disclosure. Video decoder 200 processes encoded video 202 in a bitstream and generates decoded images 208 . In the example shown in Figure 2, video decoder 200 includes entropy decoding module 216, inverse quantization module 218, inverse transform module 219, in-loop filter module 220, intra prediction module 226, inter prediction module 224, and decoded Image buffer 230.
熵解码模块216被配置为对已编码的视频202进行熵解码。熵解码模块216对量化的系数、包括帧内预测参数和帧间预测参数的编码参数以及其他信息进行解码。在一些示例中,熵解码模块216将已编码的视频202的比特流解码为二进制表示,然后将二进制表示转换为系数的量化级。然后由逆量化模块218对熵解码的系数级进行逆量化,并且随后由逆变换模块219将逆量化的系数逆变换到像素域。逆量化模块218和逆变换模块219的功能分别与如上面图1所述的逆量化模块118和逆变换模块119类似。逆变换后的残差块可以被添加到相应的预测块234以生成重建的块236。对于跳过变换的块,逆变换模块219不应用于那些块。由逆量化模块118生成的去量化的样本用于生成重建的块236。Entropy decoding module 216 is configured to entropy decode encoded video 202 . Entropy decoding module 216 decodes the quantized coefficients, coding parameters including intra prediction parameters and inter prediction parameters, and other information. In some examples, entropy decoding module 216 decodes the bitstream of encoded video 202 into a binary representation and then converts the binary representation into quantization levels of coefficients. The entropy decoded coefficient levels are then inversely quantized by the inverse quantization module 218, and the inverse quantized coefficients are then inversely transformed to the pixel domain by the inverse transform module 219. The functions of the inverse quantization module 218 and the inverse transform module 219 are respectively similar to the inverse quantization module 118 and the inverse transform module 119 described above in FIG. 1 . The inverse-transformed residual blocks may be added to corresponding prediction blocks 234 to generate reconstructed blocks 236 . For blocks with skipped transformations, the inverse transform module 219 is not applied to those blocks. The dequantized samples generated by the inverse quantization module 118 are used to generate the reconstructed block 236 .
基于块的预测模式生成特定块的预测块234。如果该块的编码参数指示该块是帧内预测的,则可以将同一图像中的参考块的重建的块236馈送到帧内预测模块226中,以生成该块的预测块234。如果该块的编码参数指示该块是帧间预测的,则由帧间预测模块224生成预测块234。帧内预测模块226和帧间预测模块224的功能分别与图1的帧内预测模块126和帧间预测模块124类似。A prediction block 234 is generated for a specific block based on the prediction mode of the block. If the coding parameters of the block indicate that the block is intra-predicted, the reconstructed block 236 of the reference block in the same image may be fed into the intra-prediction module 226 to generate a predicted block 234 for the block. Predictive block 234 is generated by inter prediction module 224 if the coding parameters of the block indicate that the block is inter-predicted. The functions of intra prediction module 226 and inter prediction module 224 are similar to intra prediction module 126 and inter prediction module 124 of FIG. 1 , respectively.
如上面图1所讨论的,帧间预测涉及一个或多个参考图像。视频解码器200通过将环内滤波器模块220应用于参考图像的重建的块来生成参考图像的解码的图像208。解码的图像208被存储在解码的图像缓冲器230中,以供帧间预测模块224使用并且还用于输出。As discussed above in Figure 1, inter prediction involves one or more reference pictures. Video decoder 200 generates decoded image 208 of the reference image by applying in-loop filter module 220 to the reconstructed blocks of the reference image. The decoded image 208 is stored in the decoded image buffer 230 for use by the inter prediction module 224 and also for output.
现在参考图3,图3描绘了根据本公开的一些实施例的视频中图像的编码树单元划分的示例。如上面图1和图2所讨论的,为了对视频的图像进行编码,图像被分成块,例如,如图3所示的VVC中的编码树单元(Coding Tree Unit,CTU)302。例如,CTU 302可以是128×128像素的块。根据诸如图3中所示的顺序的顺序来处理CTU。在一些示例中,如图4所示,图像中的每个CTU 302可以被划分为一个或多个编码单元(Coding Unit,CU)402,一个或多个CU可用于预测和变换。根据编码方案,CTU 302可以以不同的方式划分为CU 402。例如,在VVC中,CU 402可以是矩形或正方形,并且可以在不进一步划分为预测单元或变换单元的情况下进行编码。每个CU 402可以与它的根CTU 302一样大,或者也可以小到与CTU 302根块细分成的4×4块一样小。如图4所示,在VVC中将CTU 302划分为CU 402可以是四叉树分割或二叉树分割或三叉树分割。在图4中,实线表示四叉树分割,虚线表示二叉树分割。Referring now to Figure 3, Figure 3 depicts an example of coding tree unit partitioning of images in a video according to some embodiments of the present disclosure. As discussed above in Figures 1 and 2, in order to encode the image of the video, the image is divided into blocks, for example, Coding Tree Unit (CTU) 302 in VVC as shown in Figure 3. For example, CTU 302 may be a block of 128x128 pixels. CTUs are processed according to a sequence such as that shown in Figure 3. In some examples, as shown in Figure 4, each CTU 302 in the image can be divided into one or more coding units (Coding Units, CUs) 402, and one or more CUs can be used for prediction and transformation. Depending on the encoding scheme, the CTU 302 may be divided into CUs 402 in different ways. For example, in VVC, a CU 402 may be rectangular or square, and may be encoded without further partitioning into prediction units or transformation units. Each CU 402 may be as large as its root CTU 302, or as small as the 4x4 blocks into which the CTU 302 root block is subdivided. As shown in Figure 4, dividing the CTU 302 into CUs 402 in VVC may be a quad-tree partition, a binary tree partition, or a ternary tree partition. In Figure 4, the solid line represents quadtree segmentation, and the dashed line represents binary tree segmentation.
相关量化Relevant quantification
如上面图1和图2所讨论的,量化用于减小块(包括视频信号中的变换块和变换跳过块)的元素的动态范围,从而使用更少的比特来呈现视频信号。在一些示例中,在量化之前,块的位置处的元素被称为系数。在量化之后,系数的量化的值被称为量化级或级。量化通常由除以量化步长和随后的四舍五入的步骤组成,而逆量化由乘以量化步长的步骤组成。这种量化过程也称为标量量化。块内系数的量化可以独立地执行,并且这种独立量化方法被用于一些现有的视频压缩标准,例如H.264、HEVC等。在其他示例中,相关量化被采用,例如在VVC中。As discussed above in Figures 1 and 2, quantization is used to reduce the dynamic range of elements of blocks, including transform blocks and transform skip blocks in a video signal, thereby using fewer bits to render the video signal. In some examples, before quantization, the elements at the position of the block are called coefficients. After quantization, the quantized values of the coefficients are called quantization levels or levels. Quantization usually consists of steps of dividing by the quantization step size and subsequent rounding, while inverse quantization consists of steps of multiplying the quantization step size. This quantization process is also called scalar quantization. Quantization of intra-block coefficients can be performed independently, and this independent quantization method is used in some existing video compression standards, such as H.264, HEVC, etc. In other examples, correlated quantization is employed, such as in VVC.
对于N×M块,可以采用一些扫描顺序将块的2-D系数转换成用于系数量化和编解码的1-D阵列,并且编码和解码使用相同的扫描顺序。图5示出了用于处理编码块的系数的具有预定扫描顺序的编码块的示例。在该示例中,编码块500具有8×8的大小,并且处理从位置的右下角L0开始,并在左上角L63结束。如果块500是变换后的块,则图5所示的预定顺序从最高频率开始到最低频率结束。在一些示例中,根据预定的扫描顺序,块的处理(例如,量化)从块的第一个非零元素开始。例如,如果位置L0-L17处的系数都为零,并且L18处的系数非零,则量化从L18处的系数开始,并按照扫描顺序对L18之后的每个系数进行量化。在相关量化中,块内系数的量化可能要利用扫描顺序信息。例如,它可能取决于沿着扫描顺序的先前量化级的状态。For N×M blocks, some scan order can be used to convert the 2-D coefficients of the block into 1-D arrays for coefficient quantization and encoding and decoding, and the same scan order is used for encoding and decoding. FIG. 5 shows an example of encoding blocks with a predetermined scanning order for processing coefficients of the encoding blocks. In this example, the encoding block 500 has a size of 8×8, and processing starts at the lower right corner of position L 0 and ends at the upper left corner L 63 . If block 500 is a transformed block, the predetermined sequence shown in Figure 5 starts with the highest frequency and ends with the lowest frequency. In some examples, processing (eg, quantization) of a block begins with the first non-zero element of the block according to a predetermined scan order. For example, if the coefficients at positions L 0 -L 17 are all zero, and the coefficient at L 18 is non-zero, then quantization starts with the coefficient at L 18 and quantizes each coefficient after L 18 in scan order. In correlated quantization, the quantization of intra-block coefficients may exploit scan order information. For example, it may depend on the state of previous quantization levels along the scan order.
此外,为了进一步提高编码效率,在相关量化中使用超过一个量化器(例如,两个量化器)。例如,已经开发了使用两个量化器和网格结构的量化方法,例如网格编码量化(trellis coded quantization,TCQ)和VVC中的相关量化(dependent quantization,DQ)。通常,当使用基于网格的量化时,输入信号可以通过不同的量化器进行量化。针对当前信号的特定量化器的使用取决于当前信号之前的量化结果,并且通过构成网格结构的路径来控制,并因此由这些路径来编码。当当前信号的量化结果满足预定条件时,网格量化中的路径分配用于量化下一信号的量化器。在量化下一个信号时,通常有多条路径通向不同的量化器。可以使用类似维特比(Viterbi-like)算法来选择在整个序列的输入和量化输出之间提供最小率失真测量的特定网格路径。与仅使用一个标量量化器相比,网格量化的集体作用通常会导致信号序列的更好的整体性能。Furthermore, to further improve coding efficiency, more than one quantizer (eg, two quantizers) is used in correlated quantization. For example, quantization methods using two quantizers and a trellis structure have been developed, such as trellis coded quantization (TCQ) and dependent quantization (DQ) in VVC. Typically, when using grid-based quantization, the input signal can be quantized by different quantizers. The use of a specific quantizer for the current signal depends on the previous quantization results of the current signal and is controlled by the paths that make up the trellis structure and are therefore encoded by these paths. When the quantization result of the current signal satisfies a predetermined condition, the path in the grid quantization allocates a quantizer for quantizing the next signal. When quantizing the next signal, there are often multiple paths leading to different quantizers. A Viterbi-like algorithm can be used to select a specific grid path that provides the smallest rate distortion measurement between the input and the quantized output of the entire sequence. The collective effect of grid quantization usually results in better overall performance of the signal sequence compared to using only one scalar quantizer.
图6示出了相关量化的示例,其中使用了两个量化器,即Q0和Q1。由嵌入在比特流中的量化因子确定量化步长Δ。理想情况下,可以明确指定用于量化当前系数的量化器。然而,用于指定量化器的信号开销会降低编解码效率。可能的替代方式是使用网格结构代替显式信令,即可以通过先前系数的量化级的信息确定和导出当前系数的量化器。例如,可以使用具有四状态模型的网格结构,并且可以使用先前系数的量化级的奇偶性来指导网格路径并控制状态转换,来最终决定哪个量化器将用于量化当前系数。Figure 6 shows an example of correlated quantization, where two quantizers are used, namely Q0 and Q1. The quantization step size Δ is determined by the quantization factor embedded in the bit stream. Ideally, the quantizer used to quantize the current coefficients can be specified explicitly. However, the signaling overhead for specifying the quantizer reduces codec efficiency. A possible alternative is to use a trellis structure instead of explicit signaling, i.e. the quantizer of the current coefficient can be determined and derived from the information of the quantization level of the previous coefficient. For example, a trellis structure with a four-state model can be used, and the parity of the quantization levels of previous coefficients can be used to guide the trellis path and control state transitions to ultimately decide which quantizer will be used to quantize the current coefficient.
表1相关量化的状态转移图Table 1 Related quantified state transition diagram
两个标量量化器(Q0和Q1)之间的切换是通过具有四个状态的状态机来实现。表1示出了状态转换图的示例。系数的状态可以是如下四个不同值中的一个:0、1、2和3。当前系数的状态可以由编码/解码扫描顺序中紧接在当前系数之前的量化级的奇偶性唯一地确定。在块的编码侧的量化或解码侧的逆量化开始时,状态被设置为默认值,例如0。这些系数按照预定的扫描顺序(即,按照它们被熵解码的相同顺序)被量化或去量化。在一个系数被量化或去量化后,该过程根据扫描顺序移动到下一个系数。下一个系数成为新的当前系数,并且刚刚处理过的系数成为前一个系数。根据表1确定新的当前系数的状态状态i,其中ki-1表示先前系数的量化级的值。索引i表示沿着扫描顺序的系数或量化级的位置。需要注意的是,在本示例中,状态仅取决于前一个系数的状态状态i-1,以及位置i-1处的前一个系数的级ki-1的奇偶性(ki-1&1)。该状态更新过程可以公式化为Switching between the two scalar quantizers (Q0 and Q1) is achieved through a state machine with four states. Table 1 shows an example of a state transition diagram. The status of the coefficient can be one of four different values: 0, 1, 2, and 3. The state of the current coefficient may be uniquely determined by the parity of the quantization level immediately preceding the current coefficient in the encoding/decoding scan order. At the beginning of quantization on the encoding side or inverse quantization on the decoding side of a block, the state is set to a default value, such as 0. These coefficients are quantized or dequantized in a predetermined scanning order (ie, in the same order in which they are entropy decoded). After one coefficient is quantized or dequantized, the process moves to the next coefficient according to the scan order. The next coefficient becomes the new current coefficient, and the coefficient just processed becomes the previous coefficient. The state i of the new current coefficient is determined according to Table 1, where k i-1 represents the value of the quantization level of the previous coefficient. The index i represents the position of the coefficient or quantization level along the scan order. Note that in this example the state only depends on the state of the previous coefficient i-1 , and the parity of the stage k i-1 of the previous coefficient at position i-1 (k i-1 &1) . The status update process can be formulated as
状态i=stateTransTable[状态i-1][ki-1&1] (1)State i = stateTransTable [state i-1 ] [k i-1 &1] (1)
其中,stateTransTable表示表1中所示的表,运算符&指定二进制补码算法中的按位“与”运算符。可选地,也可以在没有查找表的情况下指定状态转换,如下所示:where stateTransTable represents the table shown in Table 1, and operator & specifies the bitwise AND operator in two's complement arithmetic. Optionally, state transitions can be specified without a lookup table, as follows:
状态i=(32040>>((状态i-1<<2)+((ki-1&1)<<1)))&3 (2)State i = (32040>>((state i-1 <<2)+((k i-1 &1)<<1)))&3 (2)
其中,16位值32040指定状态转换图。状态唯一地决定所使用的标量量化器。在一个示例中,如果当前系数的状态等于0或1,则使用图6所示的标量量化器Q0。否则(状态等于2或3),使用图6所示的标量量化器Q1。Among them, the 16-bit value 32040 specifies the state transition diagram. The state uniquely determines the scalar quantizer used. In one example, if the state of the current coefficient is equal to 0 or 1, then the scalar quantizer Q0 shown in Figure 6 is used. Otherwise (state equals 2 or 3), the scalar quantizer Q1 shown in Figure 6 is used.
由图6和表1描绘的相关量化可以扩展到如图7所示的更一般的形式,其中子集A和子集B是不相交的子集并且包括使用量化器Q0生成的所有级,并且子集C和子集D是不相交的子集并且包括使用量化器Q1生成的所有级。使用量化器Q0生成的级可以属于子集A或子集B,但不能两者都属于。类似地,使用量化器Q1生成的级可以属于子集C或子集D,但不能两者都属于。例如,子集A可以包括使用量化器Q0生成的所有奇数量化值,子集B可以包括使用量化器Q0生成的所有偶数量化值。类似地,子集C可以包括使用量化器Q1生成的所有奇数量化值,子集B可以包括使用量化器Q1生成的所有偶数量化值。也可以利用其他方式将使用量化器Q0或Q1生成的量化值划分成两个子集。The correlation quantization depicted by Figure 6 and Table 1 can be extended to a more general form as shown in Figure 7, where subset A and subset B are disjoint subsets and include all levels generated using quantizer Q0, and Set C and subset D are disjoint subsets and include all stages generated using quantizer Q1. Stages generated using quantizer Q0 can belong to either subset A or subset B, but not both. Similarly, a stage generated using quantizer Q1 can belong to either subset C or subset D, but not both. For example, subset A may include all odd quantized values generated using quantizer Q0, and subset B may include all even quantized values generated using quantizer Q0. Similarly, subset C may include all odd quantized values generated using quantizer Q1, and subset B may include all even quantized values generated using quantizer Q1. Other ways of dividing the quantized values generated using quantizer Q0 or Q1 into two subsets can also be used.
在基于网格的量化中,量化级控制状态转换,并且用于当前系数的量化器由先前系数的量化级来调节。通常,在Q0或Q1有两个量化级的子集。如果落入一个子集的量化级的概率强于另一个子集,则信号序列的整体量化质量可能不是最佳的。例如,当使用Q0时,序列中任何输入信号的两个连续量化级可以总是具有来自子集A的一个级和来自子集B的另一个级,或者当使用Q1时,序列中任何输入信号的两个连续量化级来自子集C的一个级和来自子集D的另一个级。在这种情况下,系统有最好的机会选择网格路径,该路径可以为整个序列提供比仅使用一个标量量化器更好的整体量化质量。这在图8中示出,其中Cn到Cn+8之间的任何输入系数总是具有从Q0和Q1向前到下一个系数的8个可能路径。在所有可能的网格路径中选择代表预定义成本测量的最小值的网格路径,其在图8中示出为路径802。这样的路径可以通过计算每个级的量化之后的成本测量以及识别将成本测量最小化到当前级所确定的成本测量的下一路径来识别。In grid-based quantization, quantization stages control state transitions, and the quantizer for the current coefficient is adjusted by the quantization stage of the previous coefficient. Typically, there are two subsets of quantization levels at Q0 or Q1. If the probability of falling into the quantization level of one subset is stronger than that of another subset, the overall quantization quality of the signal sequence may not be optimal. For example, when using Q0, two consecutive quantization levels for any input signal in the sequence can always have one level from subset A and another level from subset B, or when using Q1, any input signal in the sequence The two consecutive quantization levels are one level from subset C and another level from subset D. In this case, the system has the best chance of selecting a grid path that provides better overall quantization quality for the entire sequence than using just one scalar quantizer. This is illustrated in Figure 8, where any input coefficient between Cn and Cn +8 always has 8 possible paths from Q0 and Q1 onwards to the next coefficient. The grid path representing the minimum value of the predefined cost measure is selected among all possible grid paths, which is shown in Figure 8 as path 802. Such paths can be identified by calculating the cost measure after quantification for each level and identifying the next path that minimizes the cost measure to the cost measure determined by the current level.
根据子集的定义,有时即使来自Q0或Q1的一个子集的最佳量化级也可能仍然大大低于来自同一量化器的另一个子集的级。例如,如果子集B和子集D各自被定义为仅具有一个特定级(例如,等于1的级),则Q0或Q1中的其余级分别被放入子集A或子集C中。当输入信号具有小值时,这种配置在网格量化中可以较好地工作。然而,当输入信号很大并且其对应的量化级远大于1时,与使用来自另一个子集(即子集A或子集C)的级相比,子集B或子集D中的唯一级1通常会生成大的量化失真,并因此生成明显更大的率失真(RD)成本测量。因此,在这种情况下,Q0的子集B或Q1的子集D不太可能将网格路径段贡献给为输入信号的序列选择的最终的最佳网格路径。换句话说,由落在子集B或子集D中的前一级引起的状态转换是罕见的,并且状态转换主要由落在子集A或子集C中的前一级主导。图9A示出了网格量化示例,其中,对于Cn+2到Cn+8之间的输入信号,来自子集A或子集C的最佳级生成比来自Q0的子集B或D1的子集D中的任何级的RD成本测量小得多的RD成本测量。因此,最佳网格路径将从四条路径(路径902-908)中选择。图9A中的虚线表示由子集B或子集D生成的路径,其具有相对于路径902-908的RD成本测量明显更大的RD成本测量。作为简化和加速选择具有最小RD成本测量的网格路径的过程的方法,图9A中的虚线路径可以如图9B中所示被省略。Depending on the definition of subsets, sometimes even the best quantization level from one subset of Q0 or Q1 may still be significantly lower than the level from another subset of the same quantizer. For example, if subset B and subset D are each defined to have only one specific level (eg, a level equal to 1), then the remaining levels in Q0 or Q1 are put into subset A or subset C respectively. This configuration works better in grid quantization when the input signal has small values. However, when the input signal is large and its corresponding quantization level is much greater than 1, the unique quantization level in subset B or subset D is less effective than using a level from another subset (i.e., subset A or subset C). Level 1 typically generates large quantization distortion and therefore significantly larger rate distortion (RD) cost measurements. Therefore, in this case, it is unlikely that subset B of Q0 or subset D of Q1 will contribute a grid path segment to the final optimal grid path selected for the sequence of input signals. In other words, state transitions caused by the previous level falling in subset B or subset D are rare, and state transitions are mainly dominated by the previous level falling in subset A or subset C. Figure 9A shows a grid quantization example where, for input signals between Cn +2 to Cn +8 , the best stage generation from subset A or subset C is better than subset B or D1 from Q0 The RD cost measure of any level in subset D is much smaller than the RD cost measure. Therefore, the best grid path will be selected from the four paths (paths 902-908). The dashed lines in Figure 9A represent paths generated by subset B or subset D that have significantly larger RD cost measures relative to those of paths 902-908. As a way to simplify and speed up the process of selecting the grid path with the smallest RD cost measure, the dashed path in Figure 9A may be omitted as shown in Figure 9B.
与图8相比,图9A和9B具有更少的用于以最小的RD成本测量选择Cn+2到Cn+8之间的最佳路径的可能的Q0和Q1组合。此外,图9A和9B中保留的四个路径是简单路径:一个仅使用标量量化器Q0,一个使用标量量化器Q1,以及其它两个简单地在Q0和Q1之间交替。因此,在该示例中,网格量化相对于标量量化的优势被明显削弱。Compared to Figure 8, Figures 9A and 9B have fewer possible Q0 and Q1 combinations for selecting the best path between Cn+2 to Cn+8 with minimal RD cost measurements. Furthermore, the four paths remaining in Figures 9A and 9B are simple paths: one using only scalar quantizer Q0, one using scalar quantizer Q1, and the other two simply alternating between Q0 and Q1. Therefore, the advantages of grid quantization over scalar quantization are significantly diminished in this example.
为了避免在网格量化中总是使用相同的模式来选择连续信号的量化器,可以利用使用双状态转换图的方法。首先,通过交换原始状态转换图中每个状态的控制信号来创建第二状态转换图。作为示例,可以针对图7所示的原始状态转换图来创建图10所示的第二状态转换图。在图7中,当先前的量化级ki-1分别来自子集A或子集B时,状态S0将进行到状态S0或状态S2。然而,在图10中,当先前量化级ki-1分别来自子集A或子集B时,状态S0将进行到状态S2或状态S0。图7和图10中的其他状态具有类似的关系。在对输入信号的序列进行网格量化的过程中,第二图可以用于替换第一图。例如,两个图的使用可以用N+M的重复模式来描述。其中,N表示用第一状态转换图量化的连续信号的数量,跟随其后的是用第二状态转换图量化的M个连续信号。改变状态转换图的方案不局限于上述N+M模式。注意,与量化过程中使用的模式相同的模式也要用于逆量化过程,这可以通过对使用的实际的N和M进行编码并将编码后的N和M加到比特流中来实现。这样,解码器可以从比特流中提取N和M的值,以使用相同的N+M模式来执行逆量化。To avoid always using the same pattern for selecting quantizers for continuous signals in grid quantization, one can take advantage of using a two-state transition map. First, a second state transition diagram is created by exchanging the control signals for each state in the original state transition diagram. As an example, the second state transition diagram shown in FIG. 10 may be created for the original state transition diagram shown in FIG. 7 . In Figure 7, state S0 will proceed to state S0 or state S2 when the previous quantization level k i-1 is from subset A or subset B respectively. However, in Figure 10, state S0 will proceed to state S2 or state S0 when the previous quantization level k i-1 is from subset A or subset B respectively. The other states in Figures 7 and 10 have similar relationships. The second map can be used to replace the first map during grid quantization of the sequence of input signals. For example, the use of two graphs can be described by a repeating pattern of N+M. where N represents the number of consecutive signals quantized with the first state transition diagram, followed by M consecutive signals quantized with the second state transition diagram. The scheme of changing the state transition diagram is not limited to the above-mentioned N+M mode. Note that the same pattern used in the quantization process is also used in the inverse quantization process. This can be achieved by encoding the actual N and M used and adding the encoded N and M to the bitstream. This way, the decoder can extract the N and M values from the bitstream to perform inverse quantization using the same N+M pattern.
在一个实施例中,图10所示的第二状态转换图被用作图7所示的第一状态转换图的补充。换句话说,大多数状态转换仍然通过遵循第一图来执行,并且第二图用于“中断”长量化路径,其中相同的量化器用于多个连续信号。图11示出了当两个图在Cn+1之后以固定模式N=2和M=1交替时图9A的新状态转换。如图所示,图10所示的第二图仅在Cn+3和Cn+6的状态转换中使用,其余的状态转换仍然遵循图7所示的原始图。从图11可以看出,图9A和9B中的两条长路径在图11中不再存在。In one embodiment, the second state transition diagram shown in FIG. 10 is used as a supplement to the first state transition diagram shown in FIG. 7 . In other words, most state transitions are still performed by following the first diagram, and the second diagram is used to "break" long quantization paths, where the same quantizer is used for multiple consecutive signals. Figure 11 shows the new state transition of Figure 9A when the two graphs alternate in fixed patterns N=2 and M=1 after Cn +1 . As shown in the figure, the second diagram shown in Figure 10 is only used in the state transitions of C n+3 and C n+6 , and the remaining state transitions still follow the original diagram shown in Figure 7. As can be seen from Figure 11, the two long paths in Figures 9A and 9B no longer exist in Figure 11.
在另一个实施例中,图10所示的第二状态转换图与图7所示的第一状态转换图交替,使得这两个图被平均地使用。图12示出了当两个图在Cn之后以N=2和M=2交替时图9的新状态转换。在本示例中,每个图每次仅用于两个连续的信号。如图12所示,状态转换图的切换发生在Cn+2、Cn+4和Cn+6处。在Cn、Cn+1、Cn+4、Cn+5和Cn+8处的状态转换中使用图7所示的原始图,并且在Cn+2、Cn+3、Cn+6和Cn+7处的状态转换中使用图10所示的第二图。图9中的两条长路径在图12中不再存在。In another embodiment, the second state transition diagram shown in Figure 10 alternates with the first state transition diagram shown in Figure 7 such that the two diagrams are used equally. Figure 12 shows the new state transition of Figure 9 when the two maps alternate with N=2 and M=2 after Cn . In this example, each plot is used for only two consecutive signals at a time. As shown in Figure 12, the switching of the state transition diagram occurs at Cn +2 , Cn +4 and Cn +6 . The original diagram shown in Figure 7 is used in the state transitions at C n , C n+1 , C n+4 , C n+5 and C n+8 , and at C n+2 , C n+3 , C The second diagram shown in Figure 10 is used for the state transitions at n+6 and C n+7 . The two long paths in Figure 9 no longer exist in Figure 12.
需要注意的是,虽然上面描述的第一状态转换图是图7中所示的图,并且第二状态转换图是图10中所示的图,但是也可以采用其他设置。例如,图10所示的图或其他图可用作第一状态转换图,图7所示的图或其他图可用作第二状态转换图。可以从块的任何元素开始双状态转换图的重复交替N+M模式。在使用双状态转换图之前,可以如上所述地使用状态转换图中的一个,以用于相关量化。例如,重复交替的N+M模式可以应用于块内的某一组元素(从开始元素到结束元素)或块中需要量化的所有元素。可以通过在视频的比特流中条带级、图像级或序列级编入标志信号来指示交替模式是应用于所有元素还是一组元素。如果交替模式应用于一组元素,则还可以使用在条带级、图像级或序列级的视频的比特流中的标志指示起始元素和结束元素。以这种方式,条带、图像或序列中的块可以以相同的方式应用交替模式。类似地,重复交替的N+M模式也可以通过从特定图像之后开始并在另一特定图像处结束的方式来应用于特定图像。可以使用视频的比特流中的标志信号来指示开始图像和结束图像。在其他示例中,交替模式应用于一组图像(group of picture,GOP)中的整个序列。可以使用比特流中的一个或多个标志信号来指示交替模式是应用于GOP中的整个序列还是序列的一部分。It should be noted that although the first state transition diagram described above is the diagram shown in FIG. 7 and the second state transition diagram is the diagram shown in FIG. 10 , other settings may also be adopted. For example, the diagram shown in FIG. 10 or other diagrams can be used as the first state transition diagram, and the diagram shown in FIG. 7 or other diagrams can be used as the second state transition diagram. A repeating alternating N+M pattern of two-state transition diagrams can be started from any element of the block. Before using the dual state transition diagram, one of the state transition diagrams can be used as described above for correlation quantification. For example, a repeating alternating N+M pattern can be applied to a certain set of elements within a block (from the start element to the end element) or to all elements in the block that need to be quantized. Whether the alternation pattern applies to all elements or a group of elements can be indicated by incorporating a flag signal into the bitstream of the video at the slice level, image level, or sequence level. If the alternating pattern is applied to a group of elements, the start and end elements can also be indicated using flags in the bitstream of the video at the slice level, picture level or sequence level. In this way, alternating patterns can be applied in the same way to blocks in a strip, image, or sequence. Similarly, a repeating alternating N+M pattern can also be applied to a specific image by starting after a specific image and ending at another specific image. The start image and the end image may be indicated using flag signals in the bitstream of the video. In other examples, the alternating pattern is applied to an entire sequence within a group of pictures (GOP). One or more flag signals in the bitstream may be used to indicate whether the alternating pattern applies to the entire sequence in the GOP or to a portion of the sequence.
图13描绘了根据本公开的一些实施例的经由具有双状态转换图的网格量化来编码视频的块的过程1300的示例。一个或多个计算设备(例如,实现视频编码器100的计算设备)通过执行合适的程序代码(例如,实现量化模块115的程序代码)来实现图13中描绘的操作。出于说明的目的,参考附图中描绘的一些示例来描述过程1300。然而,其他实现是可能的。Figure 13 depicts an example of a process 1300 for encoding blocks of video via trellis quantization with a two-state transition map, in accordance with some embodiments of the present disclosure. One or more computing devices (eg, a computing device implementing video encoder 100) implements the operations depicted in Figure 13 by executing suitable program code (eg, program code implementing quantization module 115). For purposes of illustration, process 1300 is described with reference to some examples depicted in the accompanying drawings. However, other implementations are possible.
在框1302处,过程1300涉及访问视频信号的编码块(或块)。该块可以是输入视频的图像的一部分,例如图4中讨论的编码单元402,或者在执行量化时由视频编码器作为一个单元进行处理的任何类型的块。At block 1302, process 1300 involves accessing an encoded block (or blocks) of a video signal. The block may be part of an image of the input video, such as encoding unit 402 discussed in Figure 4, or any type of block that is processed as a unit by the video encoder when performing quantization.
在包括过程1306-1312的框1304,过程1300涉及根据块的预定扫描顺序(例如,图5所示的扫描顺序)来处理块中的每个元素,以生成量化的元素。编码块的元素可以是帧间或帧内预测之后的残差。该元素可以是频域中残差的变换系数或像素域中残差的值。At block 1304, which includes processes 1306-1312, process 1300 involves processing each element in the block according to a predetermined scan order of the block (eg, the scan order shown in Figure 5) to generate quantized elements. The elements of a coding block can be the residual after inter- or intra-prediction. This element can be the transform coefficient of the residual in the frequency domain or the value of the residual in the pixel domain.
在框1306处,过程1300涉及根据扫描顺序检索当前元素。如果对于当前块还没有元素被量化,则根据扫描顺序,当前元素将是块中的第一个元素。如上面图5所讨论的,在一些情况下,视频编码器根据扫描顺序从块中的第一个非零元素开始执行量化。在这些情况下,当前元素将是块中的第一个非零元素。如果块中已经有量化的元素,则当前元素将是扫描顺序中最后处理的元素之后的元素。At block 1306, process 1300 involves retrieving the current element according to the scan order. If no element has been quantized for the current block, the current element will be the first element in the block according to the scan order. As discussed above in Figure 5, in some cases the video encoder performs quantization starting from the first non-zero element in the block according to the scan order. In these cases, the current element will be the first non-zero element in the block. If there are already quantized elements in the block, the current element will be the element after the last processed element in the scan order.
在框1308处,过程1300涉及基于当前元素之前的元素的状态和状态转换图来确定当前元素的当前状态。如对图10-12的详细描述,可以从两个可选状态转换图中选择状态转换图。在一些示例中,两个状态转换图包括图7所示的状态转换图和图10所示的状态转换图。当前的状态转换图可以从第一状态转换图开始,然后从这两个状态转换图中选择,使得在切换到第二状态转换图之前,第一状态转换图用于N个连续元素,并且在切换回到第一状态转换图之前,第二状态转换图用于M个连续元素。其中,M和N是整数值,并且M可以等于N或小于N。At block 1308, process 1300 involves determining the current state of the current element based on the states of elements preceding the current element and the state transition diagram. As described in detail in Figure 10-12, a state transition diagram can be selected from two alternative state transition diagrams. In some examples, the two state transition diagrams include the state transition diagram shown in FIG. 7 and the state transition diagram shown in FIG. 10 . The current state transition diagram can start from the first state transition diagram and then select from these two state transition diagrams such that before switching to the second state transition diagram, the first state transition diagram is used for N consecutive elements, and in Before switching back to the first state transition diagram, the second state transition diagram is used for M consecutive elements. where M and N are integer values, and M can be equal to N or less than N.
在一个实施方式中,图7所示的状态转换图是第一状态转换图,图10所示的状态转换图是第二状态转换图。如果当前元素是块中的第一个元素,则可以设置默认状态(例如,状态0)。如果当前元素是块中的第二个元素,则第一状态转换图可以与第一个元素的量化的值一起用于确定状态。例如,根据图7所示的状态转换图,如果第一个元素的量化的值属于子集A,并且第一个元素的状态是S0,则当前元素的当前状态是状态S0。除了在将第一状态转换图用于N个连续元素之后将状态转换图切换到第二状态转换图以及在将第二状态转换图用于M个连续元素之后将状态转换图切换回第一状态转换图之外,可以以类似的方式通过状态转换图确定块的任何后续元素的状态。In one embodiment, the state transition diagram shown in FIG. 7 is a first state transition diagram, and the state transition diagram shown in FIG. 10 is a second state transition diagram. If the current element is the first element in the block, you can set a default state (for example, state 0). If the current element is the second element in the block, the first state transition diagram can be used together with the quantized value of the first element to determine the state. For example, according to the state transition diagram shown in Figure 7, if the quantized value of the first element belongs to subset A, and the state of the first element is S 0 , then the current state of the current element is state S 0 . Except switching the state transition diagram to the second state transition diagram after using the first state transition diagram for N consecutive elements and switching the state transition diagram back to the first state after using the second state transition diagram for M consecutive elements. Beyond transition diagrams, the state of any subsequent element of a block can be determined in a similar manner via a state transition diagram.
在框1310处,过程1300涉及根据状态与量化器之间的映射,基于当前元素的状态确定当前元素的量化器。例如,如果图7和10中的状态转换图被用于确定当前元素的当前状态,则如果当前状态是S0或S1,则量化器可以被确定为Q0,如果当前状态是S2或S3,则量化器可以被确定为Q1。在框1312处,过程1300涉及使用所确定的量化器量化当前元素以生成量化的元素。在框1314处,过程1300涉及对块的量化的元素(量化级)进行编码以包括在视频的比特流中。编码可以包括如上面图1所讨论的熵编码。At block 1310, process 1300 involves determining a quantizer for the current element based on the state of the current element based on a mapping between states and quantizers. For example, if the state transition diagrams in Figures 7 and 10 are used to determine the current state of the current element, then the quantizer can be determined to be Q0 if the current state is S 0 or S 1 , and Q0 if the current state is S 2 or S 3 , then the quantizer can be determined as Q1. At block 1312, process 1300 involves quantizing the current element using the determined quantizer to generate a quantized element. At block 1314, process 1300 involves encoding the quantized elements (quantization levels) of the block for inclusion in the bitstream of the video. Encoding may include entropy encoding as discussed in Figure 1 above.
图14描绘了根据本公开的一些实施例的用于经由具有双状态转换图的网格去量化来重建视频的块的过程1400的示例。一个或多个计算设备通过执行合适的程序代码来实现图14中描绘的操作。例如,实现视频编码器100的计算设备可以通过执行逆量化模块118的程序代码来实现图14中描绘的操作。实现视频解码器200的计算设备可以通过执行逆量化模块218的程序代码来实现图14中描绘的操作。出于说明的目的,参考附图中描绘的一些示例来描述过程1400。然而,其他实现是可能的。Figure 14 depicts an example of a process 1400 for reconstructing blocks of video via grid dequantization with a two-state transition map, in accordance with some embodiments of the present disclosure. One or more computing devices implement the operations depicted in Figure 14 by executing suitable program code. For example, a computing device implementing video encoder 100 may implement the operations depicted in FIG. 14 by executing the program code of inverse quantization module 118 . A computing device implementing video decoder 200 may implement the operations depicted in FIG. 14 by executing the program code of inverse quantization module 218. For purposes of illustration, process 1400 is described with reference to some examples depicted in the accompanying drawings. However, other implementations are possible.
在框1402处,过程1400涉及访问视频信号的编码块的量化的元素(量化级)。该块可以是输入视频的图像的一部分,例如图4中讨论的编码单元402,或者在执行去量化时由视频编码器或解码器作为单元处理的任何类型的块。对于编码器,可以通过量化块的元素来获得量化的元素。对于解码器,可以通过对从视频的已编码的比特流解析的二进制串执行熵解码来获得量化的元素。At block 1402, process 1400 involves accessing a quantized element (quantization level) of a coded block of a video signal. The block may be part of an image of the input video, such as encoding unit 402 discussed in Figure 4, or any type of block that is processed as a unit by a video encoder or decoder when performing dequantization. For the encoder, the quantized elements can be obtained by quantizing the elements of the block. For the decoder, the quantized elements can be obtained by performing entropy decoding on a binary string parsed from the encoded bitstream of the video.
在框1404(包括1406-1412)处,过程1400涉及根据块的预定扫描顺序(例如,图5所示的扫描顺序)处理块的每个量化的元素,以生成去量化的元素。在框1406处,过程1400涉及根据扫描顺序检索当前量化的元素。如果当前块中还没有量化的元素被去量化,则当前量化的元素将是根据扫描顺序的块的第一个量化的元素。如上面图5所讨论的,在一些情况下,视频编码器根据扫描顺序从块中的第一个非零元素开始执行量化。在这些情况下,第一个量化的元素将是块中的第一非零量化级。如果块中存在已经被去量化的元素,则当前量化的元素将是扫描顺序中最后一个去量化的元素之后的量化级。At block 1404 (including 1406-1412), process 1400 involves processing each quantized element of the block according to a predetermined scan order of the block (eg, the scan order shown in Figure 5) to generate dequantized elements. At block 1406, process 1400 involves retrieving the currently quantized element according to the scan order. If no quantized element in the current block has been dequantized, the currently quantized element will be the first quantized element of the block according to the scan order. As discussed above in Figure 5, in some cases the video encoder performs quantization starting from the first non-zero element in the block according to the scan order. In these cases, the first quantized element will be the first non-zero quantization level in the block. If there are elements in the block that have been dequantized, the currently quantized element will be the quantization level after the last dequantized element in the scan order.
在框1408处,过程1400涉及基于状态转换图和当前元素之前的量化的元素的状态来确定当前量化的元素的当前状态。如图10-12详细描述的,可以从两个可选状态转换图中选择状态转换图。在一些示例中,两个状态转换图包括图7所示的状态转换图和图10所示的状态转换图。状态转换图可以从第一状态转换图开始,然后从这两个状态转换图中选择,使得在切换到第二状态转换图之前,第一状态转换图用于N个连续元素,并且在切换到第一状态转换图之前,第二状态转换图用于M个连续元素。其中,M和N是整数值,并且M可以等于N或小于N。在一些示例中,M和N的值可以被编解码在视频的比特流中并被传输到解码器侧。At block 1408, process 1400 involves determining the current state of the current quantized element based on the state transition diagram and the state of the quantized element preceding the current element. As detailed in Figure 10-12, a state transition diagram can be selected from two alternative state transition diagrams. In some examples, the two state transition diagrams include the state transition diagram shown in FIG. 7 and the state transition diagram shown in FIG. 10 . The state transition diagram can start with the first state transition diagram and then select from these two state transition diagrams such that before switching to the second state transition diagram, the first state transition diagram is used for N consecutive elements, and before switching to Before the first state transition diagram, the second state transition diagram is used for M consecutive elements. where M and N are integer values, and M can be equal to N or less than N. In some examples, the values of M and N may be encoded in the bitstream of the video and transmitted to the decoder side.
在一个实施方式中,图7所示的状态转换图是第一状态转换图,图10所示的状态转换图是第二状态转换图。如果当前量化的元素是块中的第一个元素,则可以设置默认状态(例如,状态0)。如果当前量化的元素是块中的第二个元素,则第一状态转换图可以与第一个元素的量化的值一起用于确定状态。例如,根据图7所示的状态转换图,如果第一个元素的量化的值属于子集A,并且第一个元素的状态是S0,则当前元素的当前状态是状态S0。除了在将第一状态转换图用于N个连续量化的元素之后将状态转换图切换到第二状态转换图以及在将第二状态转换图用于M个连续量化的元素之后将状态转换图切换回第一状态转换图之外,可以类似地确定块的任何后续量化的元素的状态。In one embodiment, the state transition diagram shown in FIG. 7 is a first state transition diagram, and the state transition diagram shown in FIG. 10 is a second state transition diagram. If the currently quantized element is the first element in the block, a default state (e.g., state 0) can be set. If the currently quantized element is the second element in the block, the first state transition diagram may be used together with the quantized value of the first element to determine the state. For example, according to the state transition diagram shown in Figure 7, if the quantized value of the first element belongs to subset A, and the state of the first element is S 0 , then the current state of the current element is state S 0 . In addition to switching the state transition diagram to the second state transition diagram after using the first state transition diagram for N consecutive quantized elements and switching the state transition diagram after using the second state transition diagram for M consecutive quantized elements. Beyond the first state transition diagram, the state of any subsequent quantized elements of the block may be determined similarly.
在框1410处,过程1400涉及根据状态与量化器之间的映射,基于当前元素的当前状态确定当前量化的元素的量化器。例如,如果图7和10中的状态转换图被用于确定当前量化的元素的当前状态,则如果当前状态是S0或S1,则量化器可以被确定为Q0,如果当前状态是S2或S3,则量化器可以被确定为Q1。在框1412处,过程1400涉及使用所确定的量化器去量化当前量化的元素以生成去量化的元素。在框1414处,过程1400涉及基于去量化的块的元素在像素域中重建块。重建可以包括如上面图1和图2所讨论的逆变换。如上文图1和图2所述的,重建的块还可用于由编码器或解码器对视频中的其他块或图像执行帧内或帧间预测。还可以进一步处理重建的块以生成解码的块,解码的块用于在解码器侧与图像中的其他解码的块一起显示。At block 1410, process 1400 involves determining a quantizer for the currently quantized element based on the current state of the current element according to a mapping between states and quantizers. For example, if the state transition diagrams in Figures 7 and 10 are used to determine the current state of the currently quantized element, then the quantizer can be determined to be Q0 if the current state is S0 or S1 , and Q0 if the current state is S2 or S3, then the quantizer can be determined as Q1. At block 1412, process 1400 involves dequantizing the currently quantized element using the determined quantizer to generate dequantized elements. At block 1414, process 1400 involves reconstructing the block in the pixel domain based on the elements of the dequantized block. Reconstruction may include inverse transformation as discussed above in Figures 1 and 2. As described above in Figures 1 and 2, the reconstructed blocks can also be used by the encoder or decoder to perform intra or inter prediction on other blocks or images in the video. The reconstructed blocks can also be further processed to generate decoded blocks for display at the decoder side with other decoded blocks in the image.
应当注意,可以在视频的编码和解码期间使用除了图7和图10中所示的状态转换图之外的状态转换图。此外,虽然在上述描述中,相关量化被应用于视频编解码,但是相同的技术也可以应用于图像编解码。例如,如上所述,当压缩图像时,图像可以被划分成块,并且每个块的元素(变换或没有变换)可以被量化。如上所述,可以通过对每个块中的元素进行去量化来执行图像的去压缩。It should be noted that state transition diagrams other than those shown in FIGS. 7 and 10 may be used during encoding and decoding of video. Furthermore, although in the above description, correlation quantization is applied to video encoding and decoding, the same technology can also be applied to image encoding and decoding. For example, as mentioned above, when compressing an image, the image can be divided into blocks, and the elements of each block (transformed or not) can be quantized. As mentioned above, decompression of an image can be performed by dequantizing the elements in each block.
用于实现视频编解码的相关量化的计算系统示例Example of a computing system for implementing correlated quantization of video codecs
任何合适的计算系统都可以用于执行本公开描述的操作。例如,图15描绘了可实现图1的视频编码器100或图2的视频解码器200的计算设备1500的示例。在一些实施例中,计算设备1500可以包括处理器1512,与处理器1512数据通信连接在一起的存储器1514,并且执行计算机可执行程序代码和/或访问存储在存储器1514中的信息。处理器1512可以包括微处理器、专用集成电路(application-specific integrated circuit,“ASIC”)、状态机或其他处理设备。处理器1512可以包括任何数量的处理设备(包括一个处理设备)。这样的处理器可以包括存储指令的计算机可读介质,或者可以与存储指令的计算机可读介质数据通信,当由处理器1512执行指令时,使得处理器执行本公开描述的操作。Any suitable computing system may be used to perform the operations described in this disclosure. For example, FIG. 15 depicts an example of a computing device 1500 that may implement video encoder 100 of FIG. 1 or video decoder 200 of FIG. 2 . In some embodiments, computing device 1500 may include processor 1512, memory 1514 coupled in data communication with processor 1512, and execute computer-executable program code and/or access information stored in memory 1514. Processor 1512 may include a microprocessor, application-specific integrated circuit ("ASIC"), state machine, or other processing device. Processor 1512 may include any number of processing devices (including one processing device). Such a processor may include, or may be in data communication with, a computer-readable medium storing instructions that, when executed by processor 1512, cause the processor to perform the operations described in this disclosure.
存储器1514可以包括任何合适的非暂时性计算机可读介质。计算机可读介质可以包括能够向处理器提供计算机可读指令或其他程序代码的任何电子、光学、磁性或其他存储设备。计算机可读介质的非限制性示例包括磁盘、存储器芯片、ROM、RAM、ASIC、配置的处理器、光学存储器、磁带或其他磁存储器、或计算机处理器可以从中读取指令的任何其他介质。指令可以包括由编译器和/或解释器从用任何合适的计算机编程语言编写的代码生成的处理器特定指令,计算机编程语言包括例如C、C++、C#、Visual Basic、Java、Python、Perl、JavaScript和ActionScript。Memory 1514 may include any suitable non-transitory computer-readable media. Computer-readable media may include any electronic, optical, magnetic, or other storage device capable of providing computer-readable instructions or other program code to the processor. Non-limiting examples of computer-readable media include disks, memory chips, ROM, RAM, ASICs, configured processors, optical storage, tape or other magnetic storage, or any other medium from which a computer processor can read instructions. Instructions may include processor-specific instructions generated by a compiler and/or interpreter from code written in any suitable computer programming language, including, for example, C, C++, C#, Visual Basic, Java, Python, Perl, JavaScript and ActionScript.
计算设备1500还可以包括总线1516。总线1516可以在计算设备1500的一个或多个组件之间实现数据通信连接。计算设备1500还可以包括多个外部或内部设备,例如输入或输出设备。例如,计算设备1500被示出具有输入/输出(“I/O”)接口1518,该接口1518可以从一个或多个输入设备1520接收输入或者向一个或多个输出设备1522提供输出。一个或多个输入设备1520和一个或多个输出设备1522可以通过数据通信的方式耦合到I/O接口1518。数据通信耦合可以通过任何合适的方式(例如,通过印刷电路板的连接、通过电缆的连接、通过无线传输的通信等)实现。输入设备1520的非限制性示例包括触摸屏(例如,用于对触摸区域成像的一个或多个相机或用于检测由触摸引起的压力变化的压力传感器)、鼠标、键盘或可用于响应于计算设备的用户的物理动作生成输入事件的任何其他设备。输出设备1522的非限制性示例包括LCD屏幕、外部监视器、扬声器或可用于显示或以其他方式呈现由计算设备生成的输出的任何其他设备。Computing device 1500 may also include bus 1516 . Bus 1516 may enable data communications connections between one or more components of computing device 1500 . Computing device 1500 may also include a number of external or internal devices, such as input or output devices. For example, computing device 1500 is shown having an input/output (“I/O”) interface 1518 that can receive input from one or more input devices 1520 or provide output to one or more output devices 1522 . One or more input devices 1520 and one or more output devices 1522 may be coupled to the I/O interface 1518 via data communications. Data communication coupling may be achieved by any suitable means (eg, connection via a printed circuit board, connection via cable, communication via wireless transmission, etc.). Non-limiting examples of input devices 1520 include a touch screen (e.g., one or more cameras for imaging the touch area or a pressure sensor for detecting changes in pressure caused by touch), a mouse, a keyboard, or a computing device that may be used to respond to The user's physical actions generate input events for any other device. Non-limiting examples of output devices 1522 include an LCD screen, an external monitor, speakers, or any other device that can be used to display or otherwise present output generated by the computing device.
计算设备1500可以执行将处理器1512配置为执行上面图1-14描述的一个或多个操作的程序代码。程序代码可以包括视频编码器100或视频解码器200。程序代码可以驻留在存储器1514或任何合适的计算机可读介质中,并且可以由处理器1512或任何其他合适的处理器执行。Computing device 1500 may execute program code that configures processor 1512 to perform one or more operations described above in FIGS. 1-14. The program code may include video encoder 100 or video decoder 200. The program code may reside in memory 1514 or any suitable computer-readable medium, and may be executed by processor 1512 or any other suitable processor.
计算设备1500还可以包括至少一个网络接口设备1524。网络接口设备1524可以包括适合于建立一个或多个数据网络1528的有线或无线数据连接的任何设备或设备组。网络接口设备1524的非限制性示例包括以太网网络适配器、调制解调器等。计算设备1500可以经由网络接口设备1524以电子信号或光信号的形式传输消息。Computing device 1500 may also include at least one network interface device 1524. Network interface device 1524 may include any device or group of devices suitable for establishing wired or wireless data connections to one or more data networks 1528 . Non-limiting examples of network interface devices 1524 include Ethernet network adapters, modems, and the like. Computing device 1500 may transmit messages in the form of electronic or optical signals via network interface device 1524 .
一般注意事项General precautions
本文阐述了许多细节,以提供对所要求保护的主题的透彻理解。然而,本领域技术人员将理解,所要求保护的主题可以在没有这些细节的情况下实施。在其他情况下,没有详细描述普通技术人员已知的方法、装置或系统,以便不模糊要求保护的主题。This article sets forth numerous details to provide a thorough understanding of the claimed subject matter. However, one skilled in the art will understand that the claimed subject matter may be practiced without these details. In other instances, methods, apparatus or systems known to one of ordinary skill have not been described in detail so as not to obscure claimed subject matter.
除非特别说明,否则应当理解,在整个说明书中,利用诸如“过程”、“计算”、“核算”、“确定”和“识别”等类似术语的讨论是指计算设备的动作或过程,例如操纵或转换在计算平台的存储器、寄存器或其他信息存储设备、传输设备或显示设备内表示为实际的电磁数据的一个或多个计算机或一个或多个类似的电子计算设备。Unless specifically stated otherwise, it will be understood that throughout this specification, discussions utilizing similar terms such as "process," "compute," "calculate," "determine," and "identify" refer to the action or process of a computing device, such as the manipulation of a computing device. or one or more computers or one or more similar electronic computing devices that converts the electromagnetic data represented into actual electromagnetic data within the memory, registers or other information storage devices, transmission devices or display devices of the computing platform.
本公开讨论的一个或多个系统不限于任何特定的硬件架构或配置。一个计算设备可以包括任何合适设置下的组件,从而在一个或多个输入的情况下生成一个输出结果。合适的计算设备包括访问存储的软件的基于多用途微处理器的计算机系统,该存储的软件对从通用计算装置到实现本主题的一个或多个实施例的专用计算装置的计算系统进行编程或配置。任何合适的编程、脚本或其他类型的语言或语言的组合都可以用于在编程或配置计算设备时使用的软件中实现本公开包含的教导。The system or systems discussed in this disclosure are not limited to any particular hardware architecture or configuration. A computing device may include components in any suitable arrangement to produce an output in response to one or more inputs. Suitable computing devices include general-purpose microprocessor-based computer systems that access stored software for programming computing systems ranging from general-purpose computing devices to special-purpose computing devices implementing one or more embodiments of the subject matter, or configuration. Any suitable programming, scripting, or other type of language or combination of languages may be used to implement the teachings contained in this disclosure in software used in programming or configuring a computing device.
本公开公开的方法的实施例可以在这种计算设备的操作中执行。以上示例中呈现的块的顺序可以变化——例如,块可以被重新排序、组合和/或分解成子块。一些框或过程可以并行执行。Embodiments of the disclosed methods may be performed in operation of such computing devices. The order of the chunks presented in the examples above may vary - for example, the chunks may be reordered, combined and/or broken into sub-chunks. Some boxes or processes can be executed in parallel.
此处使用“适于”或“配置为”意味着开放和包容性的语言,其不排除适于或配置为执行附加任务或步骤的设备。此外,“基于”的使用意味着开放和包容,因为“基于”一个或多个所列举的条件或值的过程、步骤、计算或其他动作在实践中可以基于所列举的条件或值之外的附加条件或值。本公开包含的标题、列表和编号只是为了便于解释,并不意味着限制。The use of "suitable for" or "configured to" herein means open and inclusive language that does not exclude equipment adapted or configured to perform additional tasks or steps. Furthermore, the use of "based on" is meant to be open and inclusive in that a process, step, calculation or other action "based on" one or more of the enumerated conditions or values may in practice be based on conditions other than the enumerated conditions or values. Additional conditions or values. The headings, lists, and numbering included in this disclosure are for convenience of interpretation only and are not meant to be limiting.
尽管已经关于其具体实施例详细描述了本主题,但是应当理解,本领域技术人员在获得对前述内容的理解后,可以容易地获得对这些实施例的变更、变化和等同物。因此,应该理解,本公开是出于示例而非限制的目的而呈现的,并且不排除包括对本领域普通技术人员显而易见的对本主题的这种修改、变化和/或添加。Although the subject matter has been described in detail with respect to specific embodiments thereof, it should be understood that modifications, variations, and equivalents to these embodiments can readily be devised by those skilled in the art upon gaining an understanding of the foregoing. Accordingly, it is to be understood that the present disclosure is presented for purposes of illustration and not limitation and is not intended to exclude the inclusion of such modifications, changes and/or additions to the subject matter that would be apparent to one of ordinary skill in the art.
Claims (40)
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163170040P | 2021-04-02 | 2021-04-02 | |
US63/170,040 | 2021-04-02 | ||
PCT/US2022/071502 WO2022213122A1 (en) | 2021-04-02 | 2022-04-01 | State transition for trellis quantization in video coding |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116998150A true CN116998150A (en) | 2023-11-03 |
Family
ID=83459941
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280019630.6A Pending CN116998150A (en) | 2021-04-02 | 2022-04-01 | State transition for grid quantization in video coding and decoding |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116998150A (en) |
WO (1) | WO2022213122A1 (en) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7580584B2 (en) * | 2003-07-18 | 2009-08-25 | Microsoft Corporation | Adaptive multiple quantization |
JPWO2006098226A1 (en) * | 2005-03-14 | 2008-08-21 | 松下電器産業株式会社 | Encoding device and moving image recording system provided with encoding device |
US9571849B2 (en) * | 2011-01-04 | 2017-02-14 | Blackberry Limited | Coding of residual data in predictive compression |
US11451840B2 (en) * | 2018-06-18 | 2022-09-20 | Qualcomm Incorporated | Trellis coded quantization coefficient coding |
-
2022
- 2022-04-01 CN CN202280019630.6A patent/CN116998150A/en active Pending
- 2022-04-01 WO PCT/US2022/071502 patent/WO2022213122A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2022213122A1 (en) | 2022-10-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110199524B (en) | Method implemented in computing device | |
CN112335251B (en) | Coefficient coding with grouped bypass bits | |
CN113411612B (en) | Method for video coding image block, decoding device and coder/decoder | |
CN114913249A (en) | Encoding method, decoding method and related devices | |
JP2024532697A (en) | History-Based Rice Parameter Derivation for Wavefront Parallel Processing in Video Coding | |
US20240364939A1 (en) | Independent history-based rice parameter derivations for video coding | |
US20250016383A1 (en) | Method for decoding video, non-transitory computer-readable medium, and method for encoding video | |
US20240397063A1 (en) | Method for decoding video from video bitstream encoded using video encoder, system for decoding video bitstream comprising compressed video data of video, and computer-readable medium | |
WO2023172851A1 (en) | Model adjustment for local illumination compensation in video coding | |
CN116982262A (en) | State transition for dependent quantization in video coding | |
CN113330748B (en) | Method and apparatus for intra prediction mode signaling | |
CN116998150A (en) | State transition for grid quantization in video coding and decoding | |
US20250039380A1 (en) | Subblock coding inference in video coding | |
US20240373027A1 (en) | History-based rice parameter derivations for video coding | |
CN116965028A (en) | Residual level binarization for video coding | |
CN110944177B (en) | Video decoding method, video decoder, video encoding method and video encoder | |
WO2022217245A1 (en) | Remaining level binarization for video coding | |
CN118216153A (en) | Initialization process for video coding | |
CN117981306A (en) | Independent history-based Ricean parameter derivation for video coding | |
CN117837148A (en) | History-based Rice coding parameter derivation for video encoding and decoding | |
CN119013978A (en) | Cross-component model adjustment for video coding | |
KR20240137567A (en) | Generic Constraint Information Signaling for Video Coding | |
CN118158413A (en) | Operational range extension for versatile video coding | |
JP2022548685A (en) | Encoding and decoding image data |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20240410 Address after: Changan town in Guangdong province Dongguan 523860 usha Beach Road No. 18 Applicant after: GUANGDONG OPPO MOBILE TELECOMMUNICATIONS Corp.,Ltd. Country or region after: China Address before: 2479 Bay East Road, Palo Alto, California, USA, Room 110 Applicant before: Chuangfeng Technology Country or region before: U.S.A. |
|
TA01 | Transfer of patent application right |