Chroma Intra Mode Derivation Encoder, Decoder, and Corresponding Method - Patent application

By accurately deriving chroma intra prediction modes in video coding, the method enhances coding efficiency and reduces data volume while maintaining high video quality for transmission over limited bandwidth networks.

JP7625674B2Active Publication Date: 2025-02-03HUAWEI TECH CO LTD

Patent Information

Application Number
JP2023190927
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-08-01
Filing Date
2023-11-08
Publication Date
2025-02-03
Estimated Expiration
2040-07-20

AI Technical Summary

Technical Problem

The challenge of efficiently compressing video data for transmission over limited bandwidth networks while maintaining high video quality is addressed by improving the derivation of chroma intra prediction modes in video coding, which is crucial for reducing data volume without sacrificing image quality.

Method used

A method and device for encoding and decoding video data that accurately derive chroma intra prediction modes by mapping initial values to current coding blocks, utilizing specific syntax elements and default mapping relationships to enhance coding efficiency.

Benefits of technology

This approach improves video coding efficiency by accurately deriving chroma intra prediction modes, thereby reducing data volume and maintaining high video quality during transmission.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007625674000105
    Figure 0007625674000105
  • Figure 0007625674000106
    Figure 0007625674000106
  • Figure 0007625674000107
    Figure 0007625674000107
Patent Text Reader

Abstract

To provide a method of coding executed by a decoding device.SOLUTION: A method of coding executed by a decoding device, includes: a step of acquiring a video bit stream; a step of acquiring an initial intra-prediction mode value corresponded to a chroma component of the current coding block by decoding the video bit stream; a step of determining whether or not a ratio between a width corresponded to a luma component of the current coding block and a width corresponded to a chroma component of the current coding block is equal to a threshold value; a step of acquiring the intra-mode prediction value to be mapped that is corresponded to a chroma component of the current coding block in accordance with the existed mapping relation and the initial intra-prediction mode value when it is determined that the ratio is equal to the threshold value; and a step of acquiring the prediction sample value corresponded to the chroma component of the current coding block in accordance with the intra-prediction mode value to be mapped.SELECTED DRAWING: Figure 13
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This patent application claims the benefit of International Application No. PCT / EP2019 / 070804 entitled “AN ENCODER, A DECODER AND CORRESPONDING METHODS OF CHROMA INTRA MODE DERIVATION WHEN CHROMA COMPONENT IS SUB-SAMPLED HORIZONTALLY OR VERTICALLY” filed on August 1, 2019 by Wang Biao et al., which is incorporated herein by reference. This patent application is a divisional application of Japanese Patent Application No. 2022-506502, filed on January 31, 2022, which is a continuation of International Application No. PCT / CN2020 / 103055 entitled “AN ENCODER, A DECODER AND CORRESPONDING METHODS OF CHROMA INTRA MODE DERIVATION” filed on July 20, 2020 by Wang Biao et al. All of the above mentioned patent applications are hereby incorporated by reference in their entirety. TECHNICAL FIELD Embodiments of the present disclosure relate generally to the field of picture processing, and more particularly to chroma intra prediction mode derivation. [Background technology]

[0002] Video coding (video encoding and video decoding) is a wide range of digital Video applications, e.g. broadcast digital TV, Internet and mobile networks Video transmission over the network, real-time conversational applications such as video chat Video conferencing, DVD and Blu-ray discs, video content collection and editing It is used in video signal processing, video signal collection systems, and camcorders in security applications.

[0003] The amount of video data required to render even a relatively short video can be considerable. This can be achieved by transmitting data across a communications network that has limited bandwidth capacity. This poses difficulties when data is to be streamed or otherwise transmitted. Thus, video data is generally transmitted across modern telecommunications networks. Since memory resources may be limited, the video may take a long time to load on the storage device. The size of the video can also be an issue when it is stored in a video compression device. Often, software and / or hardware are modified at the source prior to transmission or storage. The video data is coded using the software to represent a digital video image. The compressed data is then used to reduce the amount of data required to The data is received at the destination by a video recovery device that decodes the data. With ever increasing demand for network resources and higher video quality, Improved compression and compression ratios with little to no sacrifice in quality Restoration techniques are preferred. Summary of the Invention [Means for solving the problem]

[0004] Embodiments of the present application include an apparatus for encoding and decoding according to the independent claims and The present invention provides a method and

[0005] These and other objects are achieved by the subject matter of the independent claims. This is evident from the dependent claims, the description and the figures.

[0006] A first aspect of the present invention provides a method of coding performed by a decoding device. The method includes the steps of obtaining a video bitstream, Decodes the chroma format display information value for the current coding block. and obtaining an initial intra-chrominance value for the chrominance components of the current coding block. Obtaining a prediction mode value and a chroma form for the current coding block. When the value of the matte display information is equal to the default value, the default mapping relationship and initial intra prediction are used. The chroma components of the current coding block are mapped according to the measurement mode value. obtaining an intra-prediction mode value; and Therefore, the step of obtaining the predicted sample value for the chrominance component of the current coding block is It is equipped with a.

[0007] According to an embodiment of the present invention, for a chroma subsampling format, The mapping relationship between prediction modes is derived more accurately. Coding efficiency is improved. will be done.

[0008] As shown in FIG. 13, a coding method performed by a decoding device is disclosed. The method shown comprises:

[0009] S1301: Get a video bitstream.

[0010] The bit stream is acquired according to a wireless or wired network. The bit stream can be transmitted over coaxial cable, fiber optic cable, twisted pair, digital Digital subscriber line (DSL), or infrared, radio, microwave, WIFI, Bluetooth, LTE, or 5 G to connect to a website, server, or other remote source The information may be transmitted from

[0011] In one embodiment, the bitstream comprises one or more coded video streams. A representation of a sequence of access units (AUs) forming a network sequence (CVS). In the form of a Work Abstraction Layer (NAL) unit stream or byte stream is a sequence of bits in the expression.

[0012] In some embodiments, the decoding process involves the decoder side decoding the bitstream It reads the bitstream, derives the decoded picture, and executes the encoding process. For each source, the encoder creates a bitstream.

[0013] Typically, a bitstream contains syntax elements organized by syntax structures. Prepare.

[0014] Syntax element: An element of data represented within a bitstream.

[0015] Syntax structure: Zero or more elements that occur together in the bitstream in a specified order. Syntax elements.

[0016] In a particular example, the bitstream format is Specifies the relationship between NAL unit streams and byte streams, and which of them is also called a bitstream.

[0017] The bitstream is available in two formats: NAL unit stream format. NAL units can be in one of two formats: bit or byte stream. The bit stream format is conceptually a more "basic" type. The NAL stream format defines a sequence of syntax structures called NAL units. The sequence is ordered in decoding order. There are constraints imposed on the decoding order (and content) of NAL units.

[0018] Order the NAL units in decoding order to form a stream of bytes, starting with By prepending a code prefix and zero or more zero-valued bytes to each NAL unit. The byte stream format is constructed from the NAL unit stream format. A unique start code prefix within this stream of bytes can be Extract NAL units from the byte stream format by searching for the location of the pattern. The stream format can be extracted.

[0019] This section describes the source and decoded picture representations provided via the bitstream. Specifies the relationship between the objects.

[0020] The video source represented by the bitstream is a sequence of pictures in decoding order. This is a sequence.

[0021] Each source and decoded picture is provided with one or more sample arrays. can be done. - Luma (Y) only (monochrome). - Luma and two chromas (YCbCr or YCgCo). - Green, Blue, and Red (GBR, also known as RGB). - an array representing other unspecified monochrome or tristimulus color sampling ( For example, YZX, also known as XYZ).

[0022] The variables and terms associated with these arrays are luma (or L or Y) and where the two chroma arrays are referred to as C chroma, regardless of the actual color representation method in use. The actual color representation methods in use are called b and Cr. The syntax is as specified in the VUI parameters as specified in It is possible.

[0023] The variables SubWidthC and SubHeightC correspond to the sps_chroma_format_idc and sps_separate_colour Depending on the chroma format sampling structure specified through r_plane_flag, the e 1 is specified.

[0024] [Table 1]

[0025] Monochrome sampling has only one sample array, nominally considered the luma array. There is Ray.

[0026] In 4:2:0 sampling, each of the two chroma arrays is half the height of the luma array and It has half the width.

[0027] In 4:2:2 sampling, each of the two chroma arrays is at the same height and half of the luma array. It has a width of minutes.

[0028] For 4:4:4 sampling, the following applies depending on the value of sps_separate_colour_plane_flag: will be done. - If sps_separate_colour_plane_flag is equal to 0, then each of the two chroma arrays It has the same height and width as the luma array. - Otherwise (sps_separate_colour_plane_flag is equal to 1), the three colour planes are are treated separately as autosampled pictures.

[0029] S1302: Initial intra prediction mode value for the chroma components of the current coding block. Get the.

[0030] The initial intra-prediction mode value is the index value coded in the video bitstream. The initial intra-prediction mode value can be obtained by parsing the may be determined according to syntax values ​​parsed from the video bitstream.

[0031] In one implementation, an initial intra prediction mode for the chroma components of the current coding block is The code value is based on the intra prediction mode for the luma component of the current coding block. The data is obtained by

[0032] In a particular example, an initial intra prediction model for the chroma components of the current coding block is To obtain the code value, the following process is used:

[0033] The inputs to this process are: - The current chroma coding block relative to the top-left luma sample of the current picture. The luma position ( xCb, yCb ) specifying the top-left sample of the block. - The variable cbWidth that specifies the width of the current coding block in luma samples. - The variable cbHeigh, which specifies the height of the current coding block in luma samples. t. - variable tre that specifies whether a single or a dual tree is used eType.

[0034] In this process, the chrominance intra prediction mode IntraPredModeC[xCb][yCb] and MI The P chroma direct mode flag MipChromaDirectFlag[ xCb ][ yCb ] is derived.

[0035] treeType is equal to SINGLE_TREE, sps_chroma_format_idc is equal to 3, and intra_chroma_ If pred_mode is equal to 4 and intra_mip_flag[xCb][yCb] is equal to 1, then Applies. - MIP chroma direct mode flag MipChromaDirectFlag[xCb][yCb] is equal to 1 It is set. - Chrominance intra prediction mode IntraPredModeC[xCb][yCb] is IntraPredModeY[xCb] It is set equal to [ yCb ].

[0036] Otherwise, the following applies: - MIP chroma direct mode flag MipChromaDirectFlag[ xCb ][ yCb ] is equal to 0 It is set. - The corresponding luma intra prediction mode lumaIntraPredMode is derived as follows: - if intra_mip_flag[ xCb + cbWidth / 2 ][ yCb + cbHeight / 2 ] is equal to 1 For example, lumaIntraPredMode is set equal to INTRA_PLANAR. - otherwise CuPredMode

[0000] [ xCb + cbWidth / 2 ][ yCb + cbHeight / 2 If MODE_IBC or MODE_PLT is set, lumaIntraPredMode is set to INTRA_DC. will be done. - Otherwise, lumaIntraPredMode is IntraPredModeY[ xCb + cbWidth / 2 ][ y The pixel value is set equal to [cb + cbHeight / 2]. - The chrominance intra prediction mode IntraPredModeC[xCb][yCb] is derived as follows: do. - If cu_act_enabled_flag[xCb][yCb] is equal to 1, the chrominance intra prediction model is enabled. The mode IntraPredModeC[xCb][yCb] is set equal to lumaIntraPredMode. - Otherwise, if BdpcmFlag[xCb][yCb]

[0001] is equal to 1, then IntraPredM odeC[ xCb ][ yCb ] is BdpcmDir[ xCb ][ yCb ]

[0001] ? INTRA_ANGULAR50 : INTRA_ANGULA Set equal to R18. - Otherwise (cu_act_enabled_flag[ xCb ][ yCb ] is equal to 0 and BdpcmFla g[ xCb ][ yCb ]

[0001] is equal to 0), chrominance intra prediction mode IntraPredModeC[ xCb ][ yCb] are specified according to cclm_mode_flag, cclm_mode_idx, intra_c It is derived using hroma_pred_mode, and lumaIntraPredMode.

[0037] [Table 2]

[0038] S1303: Decode the video bitstream and Gets the value of the chroma format display information.

[0039] In one embodiment, the chroma format display information is represented by the syntax sps sps_chroma_format_idc is the relative value for luma sampling. Specifies the chroma sampling.

[0040] In one example, the syntax sps_chroma_format_idc has the following sequence parameters: It is decoded from the .

[0041] [Table 3]

[0042] There is no particular order for steps S1302 and S1303, and step S1302 is Step S1303 may be performed before step S1302, or step S1303 may be performed before step S1302. It may be understood that the steps may be performed in parallel or in parallel.

[0043] S1304: The chroma format display information for the current coding block is set to the default When the value is equal to the initial intra-prediction mode value, the current Obtain the mapped intra prediction mode value for the chroma component of the coding block. You will benefit.

[0044] In one embodiment, the default value is 2 or 1. The default value of 2 indicates that the chroma format The default value of 1 indicates that the chroma format is 4:2:0. This expresses that.

[0045] In one example, when sps_chroma_format_idc is equal to 2, the chroma intra prediction mode Y is The chrominance intra prediction mode X is used to predict the chrominance intra prediction mode X. It is set equal to the romaine intra prediction mode Y.

[0046] The mapping relationship between Mode X and Mode Y is shown in Table 2, Table 3, Table 4, Table 5, and Ta Table 6, Table 8, Table 10, Table 12, Table 14, Table 15, or Table 18 It can be done.

[0047] In one example, when sps_chroma_format_idc is equal to 2, the chroma intra prediction mode Y is Use chrominance intra prediction mode X in Table 20 as specified in able 21. Then, chrominance intra prediction mode X is equal to chrominance intra prediction mode Y. It is set correctly.

[0048] [Table 4]

[0049] S1305: Calculate the current coding block according to the mapped intra prediction mode value. Obtain predicted sample values ​​for the chroma components of

[0050] The mapped intra prediction mode value is used as the “intra prediction mode” to obtain the predicted sample value. The details of this process are described in ITU H.264 or ITU H.265 or other documents may be referenced.

[0051] As shown in FIG. 14, a second aspect of the present invention provides a decoding device 1400, The device is a receiving module 1401 configured to obtain a video bitstream; Decode the video bitstream into the chroma components of the current coding block. a parameter processing module configured to obtain an initial intra-prediction mode value for the Rule 1402, The parameter process module 1402 also decodes the video bitstream to To get the value of chroma format display information for the current coding block Consists of The value of the chroma format display information for the current coding block is equal to the default value. When the current coding mode is not set, the current coding mode is determined according to the default mapping relationship and the initial intra prediction mode value. To obtain the mapped intra prediction mode values ​​for the chroma components of a A mapping module 1403 configured as follows: The chrominance of the current coding block is calculated according to the mapped intra prediction mode value. A prediction module 1404 configured to obtain predicted sample values ​​for the components.

[0052] The method according to the first aspect of the invention may be carried out by an apparatus according to the second aspect of the invention. Further features and implementation forms of the above method are provided in an apparatus according to the second aspect of the invention. It corresponds to the features and implementation format of.

[0053] In one embodiment, a third aspect of the present invention relates to a coding device executed by the coding device. and a method for selecting an initial intra-prediction mode for a current coding block. and obtaining a width and a current value for the luma component of the current coding block. Determine whether the ratio between the width of the coding block and the chrominance components is equal to a threshold value. determining the width and current coding block for the luma component of the current coding block; When the ratio between the width of the chrominance component of the matching block is equal to the threshold, the default matching The current coding block is closed according to the pinning relationship and the initial intra-prediction mode value. obtaining a mapped intra-prediction mode value for the corresponding component; The current coding block is coded according to the assigned intra prediction mode value. The method includes the steps.

[0054] In one implementation, the method comprises: The value of the chroma format display information for the current coding block is written to the bitstream. The value of the chroma format display information is further encoded into a frame. The width for the luma component of the current coding block and the chrominance of the current coding block. Expresses the ratio between the width and the component.

[0055] In one implementation, the following table is used to represent the default mapping relationship:

[0056] [Table 5]

[0057] or

[0058] [Table 6]

[0059] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped Represents an intra-prediction mode value.

[0060] In one implementation, the following table is used to represent the default mapping relationship:

[0061] [Table 7]

[0062] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped Represents an intra-prediction mode value.

[0063] A further embodiment of the method according to the third aspect of the invention (encoding side) comprises the steps of: The method may be carried out in accordance with the second aspect of the present invention.

[0064] In one embodiment, a method according to any one of the above embodiments and implementations is performed. A decoder (30) or encoder (20) is disclosed that includes processing circuitry for

[0065] In one embodiment, a method according to any one of the above embodiments and implementations is performed. A computer program product is disclosed comprising program code for:

[0066] In one embodiment, a decoder or encoder comprising: one or more processors; a non-uniform memory coupled to the processor and storing programming for execution by the processor; and a temporary computer-readable storage medium, the programming being executed by a processor. When the method is performed according to any one of the above embodiments and implementations, Configuring a decoder or encoder, A decoder or encoder is disclosed.

[0067] In one embodiment, the encoded bits are decoded by an image decoding device. A non-transitory storage medium containing a bitstream, the bitstream being a video signal or It is generated by dividing a frame of an image signal into a number of blocks, and has a number of symbols. A tax element and a plurality of syntax elements may be included in any of the above embodiments and implementations. Non-transient with one of the indicators (syntax sps_chroma_format_idc) A storage medium is disclosed.

[0068] The details of one or more embodiments are set forth in the accompanying drawings and the description below. Other features, objects, and advantages will become apparent from the description, the drawings, and the claims. .

[0069] In the following, embodiments of the invention will be described in more detail with reference to the accompanying figures and drawings. . [Brief description of the drawings]

[0070] [Figure 1A] FIG. 1 is a block diagram illustrating an example of a video coding system configured to implement embodiments of the invention. [Figure 1B] FIG. 2 is a block diagram illustrating another example of a video coding system configured to implement embodiments of the invention. [Diagram 2] FIG. 2 is a block diagram illustrating an example of a video encoder configured to implement embodiments of the invention. [Diagram 3] 2 is a block diagram illustrating an example structure of a video decoder configured to implement an embodiment of the invention. [Figure 4] 1 is a block diagram illustrating an example of an encoding device or a decoding device. [Diagram 5] 1 is a block diagram illustrating another example of an encoding device or a decoding device. [Figure 6] An example for the chroma subsampling format 4:4:4. [Figure 7]An example for chroma subsampling format 4:2:0. [Figure 8] An example for chroma subsampling format 4:2:2. [Figure 9] FIG. 1 is a block diagram illustrating an example of a prediction mode. [Figure 10] 1 is an example of the original mode and the corresponding mode when chroma subsampling is applied in the horizontal direction using a 4:2:2 chroma subsampling format. [Figure 11] FIG. 31 is a block diagram illustrating an example structure of a content provision system 3100 for implementing a content distribution service. [Figure 12] FIG. 2 is a block diagram illustrating the structure of an example of a terminal device. [Figure 13] 1 is a flow chart illustrating an embodiment of a method according to the present invention. [Figure 14] FIG. 1 is a block diagram illustrating an embodiment of an apparatus according to the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0071] In the following, identical reference signs refer to identical or at least Both refer to functionally equivalent features.

[0072] The following description forms part of the disclosure and describes certain aspects of embodiments of the invention or the practice of the invention. Reference is made to the accompanying drawings, which show, by way of illustration, specific embodiments in which the invention may be practiced. The embodiments of the present invention may be used in other aspects and may have structural or logical limitations not depicted in the figures. It is understood that various modifications may be made thereto. Accordingly, the following detailed description is not to be taken in a limiting sense. and the scope of the present invention is defined by the appended claims.

[0073] For example, a disclosure of a method described may include a corresponding It is understood that the same may also be true for devices or systems that For example, if one or more particular method steps are described, such Unless one or more units are explicitly described or illustrated in the figures, However, a corresponding device may be used to perform one or more of the method steps described. one or more units, e.g., functional units (e.g., one or more steps A unit that performs one or more of the steps, or a On the other hand, for example, one or more units, e.g. If a particular device is described in terms of functional units, one or more of such units Even if a step is not explicitly described or illustrated in a diagram, the corresponding method , a step for performing a function of one or more units (e.g., one or more A step that performs the function of several units, or one or more of several units In addition, the method may include a plurality of steps, each of which performs a plurality of functions. If not, the features of the various exemplary embodiments and / or aspects described herein may differ from one another. It is understood that the above may be combined.

[0074] Video coding typically involves the division of a set of pictures that form a video or a video sequence. Instead of the term "picture", the term "picture" is used in the field of video coding. In video coding, the terms "frame" and "image" may be used synonymously. (or, in general, coding) consists of two parts: video encoding and video decoding. Video encoding is performed at the source side and typically involves The amount of data required to represent The method comprises processing the original video picture (e.g., by compression) to reduce (significantly) Video decoding is performed at the destination side, typically to reconstruct the video picture. The encoder has a reverse process for converting video pictures (or, in general, The embodiments referring to "coding" a video picture or a respective This shall be understood to refer to the "encoding" or "decoding" of a video sequence. The combination of the encoding and decoding parts is called CODEC (Coding and Decoding). Also called encoding and decoding.

[0075] In the case of lossless video coding, the original video picture can be reconstructed. possible, i.e., without transmission or other data loss during storage or transmission. Assuming that the reconstructed video picture has the same quality as the original video picture. In the case of lossy video coding, the amount of data representing a video picture is reduced. To achieve this, further compression is performed, for example by quantization, and the video picture is It is not possible to completely reconstruct the video signal in the coder, i.e. The quality of the clip is lower or worse than the quality of the original video picture.

[0076] Some video coding standards are called "lossy and hybrid video codecs." (i.e., spatial and temporal prediction in the sample domain and (Combining 2D transform coding to apply quantization in the video sequence.) Each picture in a sequence is typically partitioned into a set of non-overlapping blocks and coded. is typically performed at the block level. In other words, Video is typically encoded using, for example, spatial (intra-picture) prediction and / or temporal (intra-picture) prediction. The current block (currently being processed) is processed using the prediction 1. Subtract the prediction block from the block to be processed / predicted to get the residual block, and Transform the block and quantize the residual block in the transform domain to obtain the data to be transmitted. It is processed at the block (video block) level by reducing the amount of , i.e., encoded, while in the decoder, the reverse process is performed compared to the encoder. , the representation applied to the encoded or compressed block for the current block The encoder then processes the following blocks, i.e., In order to achieve this, both predictions (e.g., intra- and inter-prediction) and / or re-prediction are used. To generate the configuration, the decoder processing loop is duplicated.

[0077] In the following, a video coding system 10, a video encoder 20, and a video decoder are An embodiment of the actuator 30 will be described with reference to FIGS.

[0078] FIG. 1A illustrates an example coding system 10, e.g., a video coding system, that may utilize the techniques of the present application. FIG. 1 is a schematic block diagram illustrating an example of an encoding system 10 (or, for short, a coding system 10). FIG. 1 is a block diagram of a video encoder 20 (or encoder for short) of a video coding system 10. The video decoder 20 and the video decoder 30 (or decoder 30 for short) are described in this application. 1 depicts an example of a device that may be configured to perform techniques according to various examples described herein.

[0079] As shown in FIG. 1A, the coding system 10 may, for example, The encoded picture data 21 is sent to a destination device 14 for decoding the picture data 13. The input signal includes a source device 12 configured to provide

[0080] The source device 12 includes an encoder 20 and, optionally, a picture encoder. A preprocessor (or pre-processing unit) 18, e.g. a picture preprocessor 18, and a communication interface or unit 22.

[0081] The picture source 16 may be any kind of picture capture device, e.g., a real-world picture capture device. A camera and / or any kind of picture generating device for capturing the , e.g., a computer for generating computer-animated pictures. Graphics processor, or real-world pictures, computer-generated pictures ( For example, screen content, virtual reality (VR) pictures, and / or or any combination thereof (e.g., augmented reality (AR) pictures) Equipped with or comprising any other device of any kind for obtaining and / or providing The picture source may be any kind of source that stores any of the above mentioned pictures. It may be a memory or storage device.

[0082] The preprocessor 18, and the processing performed by the preprocessing unit 18, are distinguished from the pixel The picture data 17 is also called the unprocessed picture or the unprocessed picture data 17. It is possible.

[0083] A pre-processor 18 receives (unprocessed) picture data 17 and Perform preprocessing to get preprocessed picture 19 or preprocessed picture data 19 The pre-processing performed by the pre-processor 18 is, for example, a trimming process. color format conversion (e.g., from RGB to YCbCr), color correction, or noise reduction. It will be appreciated that the pre-processing unit 18 may be an optional component. is possible.

[0084] A video encoder 20 receives the pre-processed picture data 19 and outputs the encoded picture data. 2. The method according to claim 1, further comprising: will be explained below).

[0085] The communication interface 22 of the source device 12 transmits the encoded picture data 21 to Received and, for storage or direct reconstruction, transmitted over a communication channel 13 to another device, e.g. The encoded picture data 21 (also may be configured to transmit the corresponding further processed versions of the corresponding

[0086] The destination device 14 includes a decoder 30 (e.g., a video decoder 30) and, in addition, Optionally, a communication interface or unit 28, a post-processor 32 (or , a post-processing unit 32), and a display device 34.

[0087] The communication interface 28 of the destination device 14 may, for example, directly receive data from the source device 12, or any other source, e.g., a storage device, e.g., an encoded picture data The encoded picture data 21 (or the data stored in the memory) is then transferred to the 2 receives the encoded picture data 21 (any version processed by the decoder 30) and outputs the encoded picture data 21 to the decoder 30. is configured to provide

[0088] The communication interface 22 and the communication interface 28 communicate with the source device 12 and the destination device 13. a direct communications link between the devices 14, e.g., via a direct wired or wireless connection, or Any type of network, e.g., wired or wireless network or any of them Combinations or any type of private and / or public networks Any combination of these types of encoded picture data 21 or It may be configured to transmit or receive coded data 13.

[0089] The communication interface 22 may, for example, transmit the data in an appropriate format, e.g., in packets. The encoded picture data 21 may be packaged and / or transmitted over a communications link or using any type of transmission encoding or processing for transmission over a communication network. The decoder may be configured to process the encoded picture data.

[0090] A communication interface 28 forming the counterpart of the communication interface 22 is, for example, a transmission and receiving the transmitted data and performing any kind of corresponding transmission decoding or processing and / or processing. Process the transmission data using package removal to obtain the encoded picture data 21 The device may be configured to:

[0091] Both the communication interface 22 and the communication interface 28 are connected to the source device 12 and the destination device 13. As shown by the arrow for communication channel 13 in FIG. 1A, which points to destination device 14, It may be configured as a unidirectional communication interface such as For example, communication links and / or data transmissions, e.g., encoded pi To acknowledge and exchange any other information regarding the client data transmission, e.g. It may be configured to send and receive messages to set up the connection.

[0092] The decoder 30 receives the encoded picture data 21 and outputs the decoded picture 3, and configured to provide data 31 or a decoded picture 31 (see further details , as will be explained below, for example, with reference to FIG. 3 or FIG. 5.

[0093] A post-processor 32 in the destination device 14 processes the decoded picture data 31 (reconstructed For example, the decoded picture 31 may be post-processed to obtain configured to obtain post-processed picture data 33, e.g. a post-processed picture 33 The post-processing performed by the post-processing unit 32 may be, for example, 34 for preparing the decoded picture data 31 for display, e.g. For example, color format conversion (e.g., from YCbCr to RGB), color correction, cropping, or may comprise resampling, or any other processing.

[0094] The display device 34 of the destination device 14 may, for example, display a picture to a user or viewer. The display is configured to receive post-processed picture data 33 for displaying the image. The play device 34 may be any type of display for presenting the reconstructed picture. For example, the display may be an integrated or external display or monitor. The display may be, for example, a liquid crystal display (LCD). , organic light emitting diode (OLED) displays, plasma displays Displays, projectors, micro LED displays, liquid crystal on silicon LCD on silicon (LCoS), digital light processor (DLP), or Any other type of display may be provided.

[0095] Although FIG. 1A depicts source device 12 and destination device 14 as separate devices, The device embodiment also includes a source device 12 or corresponding functionality and a destination device 14 or may have corresponding functions, or both. The source device 12 or a corresponding function and the destination device 14 or a corresponding function are using separate hardware and / or software or software, or any combination thereof.

[0096] The functions of the different units will become clear to a person skilled in the art on the basis of the description. or functionality within source device 12 and / or destination device 14 as depicted in FIG. 1A. The presence and (exact) division may vary depending on the actual device and application.

[0097] An encoder 20 (e.g., a video encoder 20) or a decoder 30 (e.g., a video decoder The encoder 20 and the decoder 30, or both the encoder 20 and the decoder 30, may be implemented using one or more microprocessors. , digital signal processor (DSP), application specific integrated circuit (ap application-specific integrated circuit (ASIC), field programmable gate array field-programmable gate array (FPGA), discrete logic, hardware, dedicated video controller 1B, such as a processing circuit, The encoder 20 may be implemented via the above-described method as discussed with respect to the encoder 20 of FIG. Various modules and / or any other encoder system described herein or To embody the subsystem, the decoder 30 may be implemented via a processing circuit 46. The various modules as discussed with respect to the decoder 30 and / or via processing circuitry 46 to embody any other decoder system or subsystem that may be used. The processing circuitry may be configured to perform various operations as discussed below. If the technique is partly implemented in software, as shown in Figure 5, The device stores instructions for the software on a suitable non-transitory computer-readable storage medium. and may be implemented using one or more processors to perform the techniques of this disclosure. The video encoder 20 and the video decoder 30 may execute the instructions in the hardware. For example, as shown in FIG. 1B, The components may be integrated into a single device.

[0098] The source device 12 and the destination device 14 may be any type of handheld or fixed device. Devices, such as notebook or laptop computers, mobile phones, smartphones, smartphone, tablet or tablet computer, camera, desktop computer computers, set-top boxes, televisions, display devices, digital media players , video game consoles, (content service servers or content distribution servers such as) video streaming devices, broadcast receiver devices, broadcast transmitter devices, or the like, and may include any of a wide range of devices It does not require the use of any operating system or any type of operating system. In some cases, source device 12 and destination device 14 may use Thus, source device 12 and destination device 14 may be equipped with wireless communication devices. It may be a s

[0099] In some cases, the video coding system 10 illustrated in FIG. 1A is merely an example. The techniques of the present application do not necessarily require any data communication between the encoding and decoding devices. does not include the video encoding settings (e.g. video encoding or video decoding). In another example, the data may be retrieved from local memory and sent over a network. A video encoding device encodes the data into a video file, which is then streamed in a file format, or the like. The data may be encoded and stored in memory, and / or the video decoding device may In some cases, they may not communicate with each other but simply Encoding data into memory and / or retrieving data from memory and decoding it The encoding and decoding is performed by the device.

[0100] For convenience of explanation, for example, High-Efficiency Video Coding (HVC) g (HEVC) or the ITU-T Video Coding Experts Group The ISO / IEC Motion Picture Experts Group (VCEG) and the ISO / IEC Motion Picture Experts Group (Motion Picture Joint Collaboration Task Force on Video Coding of the Motion Picture Arts and Culture Experts Group (MPEG) eam on Video Coding (JCT-VC) is the next-generation video coding standard. Reference software for Versatile Video Coding (VVC) With reference to the above, embodiments of the invention are described herein. Those skilled in the art will appreciate that the present invention is not limited to the above.

[0101] Encoders and encoding methods FIG. 2 is a schematic block diagram of an example video encoder 20 configured to implement the techniques of the present application. In the example of FIG. 2, a video encoder 20 receives an input 201 (or an input interface interface 201), a residual calculation unit 204, a transform processing unit 206, a quantization unit 208, and an inverse quantization unit 209. A conversion unit 210, an inverse conversion processing unit 212, a reconstruction unit 214, a loop filter unit 216, and a unit 220, a decoded picture buffer (DPB) 230, A code selection unit 260, an entropy encoding unit 270, and an output 272 (or output image) The mode selection unit 260 includes an inter prediction unit 244, an inter prediction unit 246, and an inter prediction unit 248. The inter prediction unit 24 may include an intra prediction unit 254, and a partitioning unit 262. 4 may include a motion estimation unit and a motion compensation unit (not shown). The video encoder 20 as described above may be referred to as a hybrid video encoder. It may also be called a video encoder using a video codec.

[0102] A residual calculation unit 204, a transform processing unit 206, a quantization unit 208, a mode selection unit The output 260 may be referred to as forming a forward signal path of the encoder 20, while the reverse A decomposition unit 210, an inverse transformation processing unit 212, a reconstruction unit 214, a buffer 216, and a loop A filter 220, a decoded picture buffer (DPB) 230, The inter-prediction unit 244 and the intra-prediction unit 254 are the reverse prediction units of the video encoder 20. The reverse signal path of video encoder 20 may be referred to as forming a decoded signal path. The signal path of the video decoder corresponds to that of the video decoder 30 in FIG. 3. 210, an inverse transform processing unit 212, a reconstruction unit 214, a loop filter 220, and a decoded A decoded picture buffer (DPB) 230, an inter prediction unit 244, and The intra-prediction unit 254 also uses a “built-in decoder” of the video encoder 20. It is mentioned to form.

[0103] Pictures and picture divisions (pictures and blocks) The encoder 20 receives pictures 17 (or picture data 17), e.g., video or video Pictures of a sequence of pictures forming a sequence are received, for example via input 201. The received picture or picture data may also be pre-processed. For the sake of brevity, For this reason, the following description refers to picture 17. Picture 17 can be either the current picture or the Another picture of the same video sequence, i.e. the video sequence that also comprises the current picture A picture, e.g., a previously encoded and / or decoded picture to a current In order to distinguish between pictures, It may also be called a moving picture.

[0104] Is a (digital) picture a two-dimensional array or matrix of samples with intensity values? The samples in the array are called pixels (pixs). The horizontal and vertical division of an array or picture. The number of samples in the vertical direction (or axis) determines the size and / or resolution of the picture. To represent colors, typically three color components are adopted: may represent or contain three sample arrays. is a color space, and a picture comprises corresponding red, green, and blue sample arrays. But In video coding, each pixel is typically represented as a luminance and chrominance A format or color space, e.g., YCbCr, which is expressed as Y (sometimes also L) The luminance component denoted by Cb and Cr is used, and the two The luminance (or luma for short) component Y is the brightness or (e.g. For example, one pixel represents gray level intensity (as in a grayscale picture), while the other pixel represents gray level intensity (as in a grayscale picture). The chrominance (or chroma for short) components Cb and Cr represent the chromaticity or color information components. Thus, a picture in YCbCr format consists of luminance sample values ​​(Y) sample array, and two chrominance sample arrays for the chrominance values ​​(Cb and Cr). Pictures in RGB format are converted to YCbCr format and or vice versa, a process also known as color transformation or conversion. If the picture is monochrome, the picture contains only a luminance sample array. Thus, a picture may be, for example, an array of luma samples in a monochrome format. luma sample allocation for 4:2:0, 4:2:2, and 4:4:4 color formats. There may be two corresponding arrays of rays and chroma samples.

[0105] An embodiment of video encoder 20 splits picture 17 into multiple (typically non-overlapping) pictures. 2. A picture partitioning unit (not depicted in FIG. 2) configured to partition the picture into blocks 203. These blocks may be root blocks, macroblocks (H.264 / AVC), or Coding tree block (CTB) or coding tree unit It may also be called a coding tree unit (CTU) (H.265 / HEVC and VVC). The method uses the same block size and block size for all pictures in a video sequence. Use the corresponding grid to define the size or size of the picture or a subset of the picture. Change the block size between the images or groups and divide each picture into corresponding blocks. The device may be configured to:

[0106] In a further embodiment, the video encoder may select a block 203 of picture 17, e.g. You can choose to receive one, some or all of the blocks that make up Cloud 17 directly. The picture block 203 may be a current picture block or a coding block. The picture block may also be referred to as the picture block to be processed.

[0107] Like picture 17, picture block 203 again contains samples with intensity values ​​(sample values). A two-dimensional array or matrix of the same size, but smaller than that of Picture 17, or In other words, block 203 may be, for example, One sample array (e.g., a luma array for monochrome pictures, or a color array for monochrome pictures) luma or chroma arrays in case of a single picture), or three sample arrays (e.g. , luma and two chroma arrays in case of color picture 17), or the applicable color The block may have any other number and / or type of arrays depending on the block format. The number of samples in the horizontal and vertical directions (or axes) of block 203 is determined by the size of block 203. Thus, a block may be, for example, an M×N (M columns by N rows) array of samples, or a It may be an M×N array of conversion coefficients.

[0108] The embodiment of the video encoder 20 depicted in FIG. 2 encodes the picture 17 block by block. For example, the encoding and prediction may be performed in each block 203. It is executed.

[0109] The embodiment of the video encoder 20 as depicted in FIG. 2 processes slices (also called video slices). To segment and / or encode pictures using a A picture may be further organized into one or more (typically non-overlapping) slices. Each slice may be partitioned or encoded using its slices, with each slice being one or more or a plurality of blocks (eg, CTUs).

[0110] The embodiment of the video encoder 20 as depicted in FIG. groups) and / or tiles (also called video tiles) and may be further configured to partition and / or encode the picture by ,The picture is partitioned into one or more (typically non-overlapping) tile groups, and may be encoded using its tile groups, where each tile group may be, for example, Each may comprise one or more blocks (e.g., CTUs) or one or more tiles. A tile may be, for example, rectangular in shape and may be made up of one or more blocks (e.g., CTUs), For example, it may comprise complete or fragmentary blocks.

[0111] Residual calculation The residual calculation unit 204 may, for example, calculate the residuals of picture block 2 sample by sample (pixel by pixel). The picture block is calculated by subtracting the sample values ​​of the prediction block 265 from the sample values ​​of the prediction block 266. block 203 and a prediction block 265 (more details about the prediction block 265 are provided later). 205) based on the sample domain. The residual block 205 may be obtained by subtracting the residual block 205 from the original residual block 205.

[0112] conversion A transform processing unit 206 performs a transform, e.g., a discrete cosine transform, on the sample values ​​of the residual block 205. Sine transform (discrete cosine transform (DCT)) or discrete sine transform (discrete sine nsform (DST)) to obtain transform coefficients 207 in the transform domain. Transform coefficients 207, also called transform residual coefficients, represent residual block 205 in the transform domain. That's fine.

[0113] The transform processing unit 206 performs integer approximation of DCT / DST transforms such as those specified for H.265 / HEVC. In comparison to the orthogonal DCT transform, such integer approximations are typically Typically, the residual is scaled by a factor. An additional scaling factor as part of the transformation process to maintain the block norm is applied. The scaling factor is typically Power of 2, bit depth of transform coefficients, trade-off between accuracy and implementation cost, etc. For example, the inverse transformation processing unit 212 may select the For example, inverse transformation (and, e.g., by inverse transformation processing unit 312 in video decoder 30) A particular scaling factor is specified for the corresponding inverse transform, For example, the corresponding scaling coefficients for the forward transform by the transform processing unit 206 are It can be specified accordingly.

[0114] An embodiment of video encoder 20 (respectively, transform processing unit 206) may, for example, directly , or encoded or compressed via an entropy encoding unit 270. Also, configured to output transformation parameters, e.g., one or more types of transformation. For example, the video decoder 30 may use the transform parameters can be received and used.

[0115] Quantization The quantization unit 208 may, for example, apply scalar quantization or vector quantization. may be configured to quantize the transform coefficients 207 to obtain quantized coefficients 209 by The quantized coefficients 209 are the quantized transform coefficients 209 or the quantized residual coefficients 209. It may also be called.

[0116] The quantization process reduces the bit depth associated with some or all of the transform coefficients 207. For example, an n-bit transform coefficient may be truncated to an m-bit transform coefficient during quantization. The degree of quantization can be determined by the quantization parameter (Quantizat This can be modified by adjusting the quantization parameter (QP). For example, Different scaling is applied to achieve finer or coarser quantization. A smaller quantization step size corresponds to a finer quantization, while a smaller quantization step size corresponds to a finer quantization. A larger quantization step size corresponds to a coarser quantization. The size may be indicated by a quantization parameter (QP). It may be an index into a predefined set of possible quantization step sizes. For example, A small quantization parameter often corresponds to finer quantization (smaller quantization step size). A large quantization parameter often corresponds to coarser quantization (larger quantization step size). , or vice versa. Quantization may involve division by a quantization step size. , for example, the corresponding and / or inverse dequantization by the inverse quantization unit 210 is This may involve multiplication by a factorization step size. The configuration may be configured to determine a quantization step size using a quantization parameter. In general, the quantization step size is determined by using a fixed-point approximation of the formula involving division. The quantization step size and the quantization parameter can be calculated based on the The residual block, which may be modified due to the scaling used in the fixed-point approximation of all equations, To recover the norm of , an additional scaling factor is added for quantization and dequantization. In one exemplary implementation, the inverse transform and dequantization scaling are combined. Alternatively, a customized quantization table can be used, e.g. It may be signaled in the bitstream from the encoder to the decoder. It is a lossy operation, and the loss increases with increasing quantization step size.

[0117] An embodiment of video encoder 20 (respectively, quantization unit 208) may, for example, directly or the quantization parameters encoded via the entropy encoding unit 270. For example, video decoder 30 may be configured to output a QP such that A quantization parameter may be received and applied for decoding.

[0118] inverse quantization The inverse quantization unit 210 may, for example, use the same quantization step size as the quantization unit 208. Based on or using the inverse of the quantization scheme applied by the quantization unit 208 quantization unit 208 applies inverse quantization to the quantized coefficients by applying quantized coefficients 211 using the dequantized coefficients 211 are also called dequantized residual coefficients 211, which are typically Although not identical to the transform coefficients, they may correspond to the transform coefficients 207 .

[0119] Reverse transformation The inverse transform processing unit 212 performs the inverse transform of the transform applied by the transform processing unit 206, e.g. For example, apply the inverse discrete cosine transform (DCT) or inverse discrete sine transform (DST), or some other inverse transform. Then, the reconstructed residual block 213 in the sample domain (or the corresponding dequantized The reconstructed residual block 213 is configured to obtain the reconstructed coefficients 213 of the transform block. It may also be called lock 213.

[0120] Reconstruction The reconstruction unit 214 (e.g., an adder or summation unit 214) may, for example, The sample values ​​of the prediction block 265 and the sample values ​​of the prediction block 213 are added together sample by sample. and convert the transformed block 213 (i.e., the reconstructed residual block 213) into a predicted block 265 to obtain a reconstructed block 215 in the sample domain. do.

[0121] Filtering The loop filter unit 220 (or "loop filter" 220 for short) is reconfigured. 2 to filter the filtered block 215 to obtain a filtered block 221. Or, more commonly, the reconstructed samples are filtered to obtain the filtered samples. The loop filter unit is configured to, for example, smooth pixel transitions. , or otherwise configured to improve video quality. 0 is deblocking filter, Sample-Adaptive Offset (SAO) filter, or one or more other filters, e.g., bilateral filters, adaptive Loop filter (Adaptive Loop Filter (ALF)), sharpening, smoothing filter, or collaborative filter One or more loop filters, such as a The loop filter unit 220 is depicted in FIG. 2 as being an in-loop filter. However, in other configurations, the loop filter unit 220 is implemented as a post-loop filter. The filtered block 221 may be a filtered reconstructed block. It may also be called block 221.

[0122] An embodiment of video encoder 20 (respectively, loop filter unit 220) may, for example, Encoded directly or via an entropy encoding unit 270 (sample The NI 8111 is configured to output loop filter parameters (such as loop adaptive offset information) Well, for example, the decoder 30 may thereby use the same loop filter parameters for decoding. The meter or respective loop filters may be received and applied.

[0123] Decoded Picture Buffer The decoded picture buffer (DPB) 230 receives the video data from the video encoder 20. A memory for storing reference pictures or reference picture data in general for encoding data The DPB 230 may be a dynamic RAM, including synchronous DRAM (SDRAM). Dynamic random access memory (DRAM), magnetoresistive RAM Magnetic random access memory (MRAM), resistive RAM (RRAM), or other types The memory device may be formed by any of a variety of memory devices, such as The decoded picture buffer (DPB) 230 stores one or more filtered The decoded picture buffer 230 may be configured to store the following: Other previously filtered blocks, e.g., of the same current picture or of a different picture, A previously reconstructed and filtered block 221 of the data, e.g., The method may further be configured to store the image obtained by the decoding process, e.g., for inter prediction. , a previously reconstructed, i.e. decoded, complete picture (and its corresponding reference block) lock and sample), and / or the partially reconstructed current picture (and For example, the reconstructed block 215 may provide a corresponding reference block and sample. is not filtered or reconstructed by the loop filter unit 220. If it is a block or any other version of the sample that has been further processed, The loaded picture buffer (DPB) 230 also includes one or more unfiltered The unfiltered reconstructed block 215, or in general, the unfiltered reconstructed sub-block The device may be configured to store the sample.

[0124] Mode Selection (Segmentation and Prediction) The mode selection unit 260 comprises a partitioning unit 262, an inter prediction unit 244, and an inter prediction unit 246. The original picture data, e.g., the original block 203 (current picture) is input to the trajectory prediction unit 254. current block 203 of picture 17) and one or more of the same (current) picture is a decoded picture buffer from multiple previously decoded pictures, e.g. Reconstructed data from buffer 230 or other buffers (e.g., line buffers, not shown). filtered and / or unfiltered picture data, e.g. The reconstructed sample or block is configured to receive or acquire a reconstructed sample or block that is not reconstructed. The generated picture data is subjected to a prediction, For example, the image may be used as reference picture data for inter- or intra-prediction. .

[0125] The mode selection unit 260 selects a partition for the current block prediction mode (which does not include partitioning). , and determining or selecting a prediction mode (e.g., intra or inter prediction mode); used for the computation of the residual block 205 and for the reconstruction of the reconstructed block 215 The decoder 200 may be configured to generate a corresponding prediction block 265, which is

[0126] An embodiment of the mode selection unit 260 selects the best match, or in other words the minimum residual ( Small residuals mean better compression for transmission or storage), or minimal signaling. overhead (minimal signaling overhead is the best way to transmit or store (meaning a small compression) or taking into account or balancing both, The measurement mode (e.g., supported by the mode selection unit 260 or The mode selection unit 260 may be configured to select a mode from among those available to the mode selection unit 260. The 260 standard uses rate distortion optimization (RDO) to segment and Decide the prediction mode, i.e., select the prediction mode that provides the minimum rate distortion. In this context, terms such as "best," "minimum," and "optimal" may be used. The terms used do not necessarily refer to the overall "best," "smallest," "optimal," etc., but rather to the overall Specifies the satisfaction of termination or selection criteria, such as a minimum or maximum value or a value above or below some other constraint. This may potentially lead to "suboptimal choices" but reduces complexity and processing time.

[0127] In other words, the partitioning unit 262 may perform, for example, quad-tree-partitioning (QT) , binary partitioning (BT), or triple-tree partitioning (TPP) rtitioning (TT), or any combination thereof, in a recursive manner to perform block 203 Partitioning into smaller block segments or sub-blocks (which again form blocks), e.g. , may be configured to perform prediction for each of the block partitions or sub-blocks. The mode selection comprises the selection of a tree structure of the partitioned blocks 203, and the prediction mode is This applies to each of the lock segments or subblocks.

[0128] In the following, the following is a description of the process performed by the exemplary video encoder 20 (e.g., in the partitioning unit 260): partitioning (by inter prediction unit 244 and intra prediction unit 254) The process will now be described in more detail.

[0129] classification The partition unit 262 divides the current block 203 into smaller partitions, e.g., square or rectangular. The image may be partitioned (or divided) into smaller blocks of the same size. These smaller blocks Blocks (which may also be called sub-blocks) may be further partitioned into smaller partitions. is also called a tree partition or a hierarchical tree partition, and for example, the root tree level 0 (hierarchical The root block at level 0 (depth 0) is partitioned recursively, e.g., Two or more blocks at a given level, e.g., node at tree level 1 (hierarchical level 1, depth 1) These blocks may again be partitioned into blocks, e.g., until a termination criterion is met, e.g. , next, until the partition is terminated because the maximum tree depth or the minimum block size is reached. to two or more blocks at a lower level, for example, tree level 2 (hierarchical level 2, depth 2) A block that is not further partitioned is a leaf block or leaf of the tree. A tree that uses partitions into two partitions is called a Binary-Tree (BT). A tree that uses a partition into three partitions is called a Ternary-Tree (TT), and a tree that uses a partition into four partitions is called a Ternary-Tree (TT). A tree that uses partitions into partitions is called a Quad-Tree (QT).

[0130] As mentioned before, the term "block" as used herein refers to a portion of a picture, especially a right-hand It may be a square or rectangular part. For example, referring to HEVC and VVC, a block is a coding tree unit (CTU), a coding unit (codi ing unit (CU), prediction unit (PU), and transform unit (transform un it (TU)), and / or the corresponding blocks, e.g., coding tree blocks (codi ng tree block (CTB), coding block (CB), transformation block (transformation It may be a time domain block (TB) or a prediction block (PB), or It can correspond to the above.

[0131] For example, a coding tree unit (CTU) may be used to map a picture with three sample arrays. a CTB of luma samples, two corresponding CTBs of chroma samples, or a monochrome picture or the CTB of a sample of a picture coded using three separate color planes, and and the syntax structure used to code the samples, or Correspondingly, the coding tree block (CTB) may be For some values ​​of N, the partitioning of N is a partition of an N x N block of samples. A coding unit (CU) is a picture luma sampler with three sample arrays. A coding block of samples, two corresponding coding blocks of chroma samples , or a monochrome picture or a picture coded using three separate color planes Coding blocks of samples of cha, and used to code samples The code may be or may comprise a syntax structure as specified in the The coding block (CB) is a M and C such that the division of the CTB into coding blocks is partitioned. and for some values ​​of N it may be an M×N block of samples.

[0132] For example, in an HEVC embodiment, a coding tree unit (CTU) is a coding A picture can be divided into CUs by using a quadtree structure, denoted as a picture tree. Should the pixel area be coded using (temporal) inter-picture prediction, or The decision to code using (spatial) intra-picture prediction is made at the CU level. Each CU is further divided into 1, 2, or 4 PUs according to the PU division type. Within one PU, the same prediction process is applied, and the related Information is transmitted to the decoder for each PU. The prediction process is applied based on the PU partition type. After obtaining the residual block by The image can be partitioned into transform units (TUs) according to another quadtree structure:

[0133] For example, the latest video coding standard currently being developed is called Versatile Video Coding (VVC). In the implementation of the Ding standard, a combined quad-tree and binary tree is used. A quantized binary tree (QTBT) partition is used to partition the coding blocks, for example. In the QTBT block structure, CUs can have either a square or rectangular shape. For example, a coding tree unit (CTU) is first divided into quadtree structures. The quadtree leaf nodes are sorted by binary or ternary (or triple tree) structures. The tree leaf nodes that divide the image are called coding units (CUs). The segmentation is then used for prediction and transformation processing without further partitioning. This means that CU, PU, ​​and TU have the same block size in the QTBT coding block structure. In parallel, multiple partitions, e.g. triple tree partitions, may share the QTBT block. It may be used in conjunction with a locking mechanism.

[0134] In one example, mode selection unit 260 of video encoder 20 may employ the partitioning techniques described herein. It may be configured to perform any combination of methods.

[0135] As described above, video encoder 20 may select a (e.g., predetermined) predictive mode. and configured to determine or select a best or optimal prediction mode from a set of prediction modes. The set of prediction modes may include, for example, intra prediction modes and / or inter prediction modes. The device may be equipped with a

[0136] Intra prediction The set of intra prediction modes, as defined in HEVC for example, is 35 different Intra prediction modes, e.g., DC (or average) mode and non-directional modes such as planar mode It may have a sexual mode, or a directional mode, or may be defined, for example, for VVC. Thus, 67 different intra prediction modes are available, such as DC (or average) mode and planar mode. The optical fiber may have a non-directional mode such as a directional mode, or a directional mode.

[0137] The intra prediction unit 254 performs the prediction according to an intra prediction mode of the set of intra prediction modes. To generate the intra-prediction block 265, the neighboring blocks of the same current picture are used. The reconstituted sample is then configured to be used.

[0138] The intra prediction unit 254 (or the mode selection unit 260 in general) Intra prediction parameters in the form of syntax elements 266 for inclusion in picture data 21. The data (or information indicating the selected intra-prediction mode for a block in general) is 2. The apparatus is further configured to output to a P encoding unit 270, thereby, for example, Video decoder 30 may receive and use the prediction parameters for decoding.

[0139] Inter Prediction The set of inter prediction modes (or possible inter prediction modes) is determined by the available reference pixels. The at least partially decoded data (i.e., data stored in, for example, DBP 230) the previous picture), and other inter prediction parameters, e.g., the best matching reference Either the entire reference picture is used to search for the reference block, or a part of the reference picture is used. Only a part of the search window area, e.g. around the current block area, is used. , and / or pixel interpolation, e.g., half / semi-pel and / or cross-pixel interpolation, Depends on whether water-pel interpolation is applied or not.

[0140] In addition to the above prediction modes, skip and / or direct modes may be applied. stomach.

[0141] The inter prediction unit 244 includes a motion estimation (ME) unit and a motion compensation unit. The motion compensation unit may include a motion compensation (MC) unit (both not shown in FIG. 2). The motion estimation unit 202 estimates the motion of the picture block 203 (current picture 17). 203) and the decoded picture 231, or at least one or more a number of previously reconstructed blocks, e.g., one or more other / different previously decoded blocks The image processing unit 200 may be configured to receive or acquire reconstructed blocks of the uploaded picture 231. For example, a video sequence may consist of a current picture and a previously decoded picture. 231, or in other words, the current picture and the previously decoded picture. The picture 231 may be part of a sequence of pictures forming a video sequence, Or they may be formed.

[0142] The encoder 20 may, for example, generate a duplicate of the same or a different picture from a plurality of other pictures. Select a reference block from the number of reference blocks and select the reference picture (or reference picture index). and / or between the position of the reference block (x, y coordinates) and the position of the current block The offset (spatial offset) of the inter-prediction frame is provided to the motion estimation unit as an inter-prediction parameter. This offset is also called a motion vector (MV). Be found out.

[0143] The motion compensation unit obtains, for example receives, inter prediction parameters. Based on or using the parameters, perform inter prediction to generate inter prediction blocks. The motion compensation unit is configured to acquire the motion compensation clock 265. The prediction block is fed based on the motion / block vector determined by the motion estimation. It is possible to capture or generate a pixel by using a Interpolation filtering involves deriving additional pixel samples from known pixel samples. Candidate predictors may be generated and thus used to code picture blocks. The motion vector for the PU of the current picture block is Upon receiving the frame, the motion compensation unit calculates the motion vector in one of the reference picture lists. The predictive block to which the vector points may be located.

[0144] The motion compensation unit also uses the video The symbols associated with the blocks and video slices are stored for use by the video decoder 30. In addition to the slice and its respective syntax elements, Alternatively, tile groups and / or tiles and their respective syntax A custom element may be created or used.

[0145] Entropy Coding The entropy encoding unit 270 encodes the quantized coefficients 209, the inter prediction parameters, parameters, intra prediction parameters, loop filter parameters, and / or other syntax In the text element, for example, an entropy encoding algorithm or method (e.g., Variable length coding (VLC) method, context adaptive VLC method text adaptive VLC scheme (CAVLC), arithmetic coding method, binarization, context adaptation Context Adaptive Binary Arithmetic Coding (CABAC), Syntax-based Context-Adaptive Binary Arithmetic Coding adaptive binary arithmetic coding (SBAC), probability interval division entropy (probability i Interval partitioning entropy (PIPE) coding, or another entropy encoding compression methodology or technique), or bypass (no compression) to The encoded bitstream 21 can be output via the output 272. The image data 21 is adapted to be acquired from the video data, e.g. The coder 30 may receive and use the parameters for decoding. The bit stream 21 is transmitted to a video decoder 30 or is later encoded by the video decoder 30. It may be stored in a memory for transmission or retrieval.

[0146] Other structural variations of the video encoder 20 may be used to encode the video stream. For example, a non-transform based encoder 20 may be used to Alternatively, the residual signal can be quantized directly for a frame without the transform processing unit 206. In another implementation, the encoder 20 may use quantization units that are combined into a single unit. The decoder 200 may have a dequantization unit 208 and an inverse quantization unit 210 .

[0147] Decoder and decoding method FIG. 3 illustrates an example of a video decoder 30 configured to implement the techniques of the present application. The video decoder 30 receives the encoded video signal, e.g., the encoded video signal, which is encoded by the encoder 20. 2. The decoder 20 receives the decoded picture data 21 (e.g., the encoded bitstream 21) and decodes the The encoded picture data is then processed to obtain the encoded picture 331. Or the bitstream contains information to decode the encoded picture data. For example, encoded video slices (and / or tile groups or tag The data representing picture blocks of a picture file (file), and associated syntax elements Prepare.

[0148] In the example of FIG. 3, the decoder 30 includes an entropy decoding unit 304, an inverse quantization unit 31, 0, an inverse transform processing unit 312, a reconstruction unit 314 (e.g., a summer 314), a loop filter 32 0, the decoded picture buffer (DBP) 330, the mode application unit 360, the inter prediction unit The inter prediction unit 344 is a motion vector prediction unit. The video decoder 30 may be or may include a compensation unit. In this example, the encoding path is generally different from that described with respect to the video encoder 100 from FIG. , and may perform a complementary decode path.

[0149] As described with respect to the encoder 20, the inverse quantization unit 210, the inverse transform processing unit 2 12, reconstruction unit 214, loop filter 220, decoded picture buffer (DPB) 230 , inter prediction unit 344, and intra prediction unit 354 of video encoder 20. The inverse quantization unit 310 is also referred to as forming a "built-in decoder." may be identical in function to the inverse quantization unit 110, and the inverse transform processing unit 312 may be the inverse transform The reconstruction unit 314 may be identical in function to the conversion processing unit 212. The loop filter 320 may be identical in function to the loop filter 214, and the loop filter 320 may be identical in function to the loop filter 220. The decoded picture buffer 330 may be the same in The buffer 230 may be identical in function to that of the video 20 encoder. The description provided for each unit and function corresponds to the video decoder 30. This applies to each unit and function of the

[0150] Entropy Decoding The entropy decoding unit 304 receives the bitstream 21 (or generally the encoded 2) to parse the encoded picture data 21, e.g. 309. Perform entropy decoding to, for example, quantize the coefficients 309 and / or decode the The coding parameters (not shown in FIG. 3), e.g., the inter prediction parameters, data (e.g., reference picture indexes and motion vectors), intra prediction parameters (e.g., intra-prediction mode or index), transformation parameters, quantization parameters , loop filter parameters, and / or other syntax elements. The entropy decoding unit 304 is configured to obtain all or part of the encoded data. The encoding method is as described with respect to the entropy encoding unit 270 of the data acquisition system 20. It may be configured to apply a corresponding decoding algorithm or scheme. The decoding unit 304 outputs the inter prediction parameters, the intra prediction parameters, and the mode application unit 360. The measurement parameters and / or other syntax elements may be transmitted to other units of the decoder 30. The video decoder 30 may be further configured to provide a parameter for the video slice. The syntax elements may be received at the frame level and / or the video block level. In addition to or as an alternative to slices and their respective syntax elements, types The rule groups and / or tiles and their respective syntax elements are received and / or can be used.

[0151] inverse quantization The inverse quantization unit 310 (e.g., by the entropy decoding unit 304, e.g. For example, by parsing and / or decoding the encoded picture data. From data 21, the quantization parameter (QP) (or in general, Receive the quantized coefficients and the information to be decoded based on the quantization parameter. Inverse quantization is applied to the quantized coefficients 309 to produce quantized coefficients 311, which may also be referred to as transform coefficients 311. The dequantization process may be configured to obtain the dequantized coefficients 311. , and similarly, the video slice (or For each video block in the video block (or tile or tile group), This may include using a quantization parameter determined by

[0152] Reverse transformation The inverse transform processing unit 312 receives dequantized coefficients 311, also called transform coefficients 311. and dequantized to obtain a reconstructed residual block 213 in the sample domain. The reconstructed residual block 213 may be configured to apply a transform to the reconstructed coefficients 311. The transform may be an inverse transform, such as an inverse DCT, an inverse DST, an inverse integer transform, or a conceptually similar inverse transform process. The inverse transform processing unit 312 performs quantization To determine the transformation to be applied to the decoded coefficients 311, (e.g., by parsing and / or decoding by the decoding unit 304) To receive transformation parameters or corresponding information from the encoded picture data 21. It can be further configured as follows.

[0153] Reconstruction The reconstruction unit 314 (e.g., an adder or summation unit 314) may, for example, The prediction block 313 is added to the prediction block 365 to obtain the sample value. The reconstructed residual block 313 is added to block 365 to obtain a reconstructed residual in the sample domain. The block 315 may be configured to obtain the block 315.

[0154] Filtering Loop filter unit (either in the coding loop or after the coding loop) Unit 320 may, for example, smooth pixel transitions or otherwise improve video quality. To do this, the reconstructed block 315 is filtered to produce a filtered block 321. The loop filter unit 320 is configured to obtain a deblocking filter , sample-adaptive offset (SAO) filter, or one or more A number of other filters, such as bilateral filters, adaptive loop filters, filter(ALF)), sharpening, smoothing filter, or collaborative filter, or any of them The loop filter may include one or more loop filters such as a combination. Although filter 320 is depicted in FIG. 3 as being an in-loop filter, in other configurations, The filter unit 320 may be implemented as a post-loop filter.

[0155] Decoded Picture Buffer The decoded video blocks 321 of the picture are then processed to obtain the continuation for other pictures. For motion compensation and / or for each output display, The decoded picture is stored in a decoded picture buffer 330 that stores the decoded picture 331. do.

[0156] The decoder 30 outputs the decoded signal for presentation or viewing to a user, for example via an output 312. 311.

[0157] prediction The inter prediction unit 344 is the same as the inter prediction unit 244 (particularly the motion compensation unit). The intra prediction unit 354 may be the same as the inter prediction unit 254 in function. The partition and / or prediction parameters, or the encoded picture From the character data 21 (e.g., by the entropy decoding unit 304, e.g., parsing and / or by decoding) the received information or segmentation decision and prediction. The mode application unit 360 , or unfiltered) reconstructed picture, block, or Based on the samples, we perform prediction (intra or inter prediction) for each block, The prediction block 365 may be obtained.

[0158] A video slice is coded as an intra-coded (I) slice. At this time, the intra prediction unit 354 of the mode application unit 360 uses the signaled intra prediction The prediction mode and data from previously decoded blocks of the current picture are used. Based on the above, a prediction block 365 is generated for the picture block of the current video slice. The video is organized as an inter-coded (i.e., B or P) slice. When a video picture is coded, the inter prediction unit of the mode application unit 360 The motion vectors are then decoded by the motion compensation unit 344 (e.g., a motion compensation unit). Based on other syntax elements received from the packet 304, the video For the inter prediction, the prediction block 365 is generated. Therefore, the prediction block is derived from one of the reference pictures in one of the reference picture lists. The video decoder 30 may generate the image based on the reference pictures stored in the DPB 330. Use the default construction technique to construct the reference frame lists, List 0 and List 1. In addition to or as an alternative to slices (e.g., video slices), tile groups may be used. Loops (e.g., video tile groups) and / or tiles (e.g., video tiles) The same or similar may apply to the embodiment used or depending on the embodiment. For example, a video may be divided into I, P, or B tile groups and / or tiles. It may be coded using

[0159] The mode application unit 360 receives motion vectors or related information and other syntax. Predict the video blocks of the current video slice by parsing the elements information about the current video block being decoded using the prediction information. For example, the mode application unit 360 may be configured to generate a prediction block. Use some of the syntax elements provided to select the video block in the current video slice. To decode a block of a video slice, the block is coded as follows: The prediction mode (e.g., intra or inter prediction) used for the inter prediction slice A reference to the slice, its type (e.g., B slice, P slice, or GPB slice) Configuration information for one or more of the picture lists, slice inter-encoding motion vectors for each inter-coded video block in a slice Determines the inter prediction status and other information for each video block. In addition to or as an alternative to tile groups (e.g., video slices), Embodiments using video tile groups and / or tiles (e.g., video tiles) The same or similar may apply to, for example, For example, a video can be coded using I, P, or B tile groups and / or tiles. may be censored.

[0160] The embodiment of the video decoder 30 as depicted in FIG. 3 processes slices (also called video slices). configured to segment and / or decode pictures by using A picture may be partitioned into one or more (typically non-overlapping) slices. , or may be decoded using it, and each slice may be divided into one or more blocks ( For example, a CTU may be provided.

[0161] The embodiment of the video decoder 30 as depicted in FIG. 3 uses tile groups (video tile groups). Use video tiles (also known as loops) and / or tiles (also known as video tiles) The picture may be configured to be partitioned and / or decoded by , divided into one or more (typically non-overlapping) tile groups, or Each tile group may be decoded using, for example, one or more blocks (e.g. For example, the CTU may comprise one or more tiles, each of which may be, for example, rectangular in shape. may be in the form of one or more blocks (e.g., CTUs), e.g., complete or fragmentary A block may be provided.

[0162] Another variation of the video decoder 30 is to use a For example, the decoder 30 may be used to implement a loop filtering unit It is possible to create an output video stream without using 320. For example, The coder 30 may directly perform the inverse transform processing unit 312 for a block or frame. In another implementation, video decoder 30 may dequantize the residual signal. The inverse quantization unit 310 and the inverse transform processing unit 312 are combined in a It is possible.

[0163] In the encoder 20 and the decoder 30, the processing result of the current step is further processed. It should be understood that the interpolation function may then be output to the next step. After filtering, motion vector derivation, or loop filtering, The result of vector derivation or loop filter processing may be clipped or shifted. Further operations may be performed such as:

[0164] The derived motion vector of the current block (the control point motion vector in affine mode, Fin, Plane, Sub-block Motion Vectors, Temporal Motion Vectors, etc. in ATMVP Mode It should be noted that further operations may be applied to the For example, the values ​​of motion vectors are constrained to a predefined range according to their representation bits. If the representation bit of the motion vector is bitDepth, the range is -2^(bitDepth-1) to 2^(bit For example, if bitDepth is set equal to 16, If set, the range is -32768 to 32767, and if bitDepth is set equal to 18, , the range is -131072 to 131071. For example, the derived motion vector (e.g., one 8×8 The value of the MV of the four 4x4 subblocks in a block is the integer part of the MV of the four 4x4 subblocks. The maximum difference between is not more than 1 pixel, such as not more than N pixels. Here we provide two methods to constrain the motion vector according to bitDepth. do.

[0165] Method 1: Remove the overflow MSB (Most Significant Bit) by flow arithmetic. ux = ( mvx + 2 bitDepth ) % 2 bitDepth (1) mvx = ( ux >= 2 bitDepth-1 ) ? ( ux - 2 bitDepth ) : ux (2) uy = ( mvy + 2 bitDepth ) % 2 bitDepth (3) mvy = ( uy >= 2 bitDepth-1 ) ? ( uy - 2 bitDepth ) : uy (4) where mvx is the horizontal component of the motion vector of an image block or sub-block, and mvy is is the vertical component of the motion vector of an image block or sub-block, ux and uy are intermediate values Shows.

[0166] For example, if the value of mvx is -32769, then after applying formulas (1) and (2), the resulting The value that corresponds to this is 32767. In computer systems, decimal numbers are stored as two's complement numbers. The two's complement of -32769 is 1,0111,1111,1111,1111 (17 bits), then the MSB is discarded, Therefore, the resulting two's complement number is the same as the output by applying equations (1) and (2). The decimal equivalent is 0111, 1111, 1111, 1111 (32767 in decimal). ux = ( mvpx + mvdx +2 bitDepth ) % 2 bitDepth (5) mvx = ( ux >= 2 bitDepth-1 ) ? ( ux - 2 bitDepth ) : ux (6) uy = ( mvpy + mvdy +2 bitDepth ) % 2 bitDepth (7) mvy = ( uy >= 2 bitDepth-1 ) ? ( uy - 2 bitDepth ) : uy (8)

[0167] As shown in equations (5) through (8), the operation may be applied between the sums of mvp and mvd.

[0168] Method 2: Eliminate the overflow MSB by clipping the value. vx = Clip3(-2 bitDepth-1 , 2 bitDepth-1 -1, vx) vy = Clip3(-2 bitDepth-1 , 2 bitDepth-1 -1, vy) where vx is the horizontal component of the motion vector of an image block or sub-block, and vy is the horizontal component of the motion vector of the image block or sub-block. are the vertical components of the motion vector of an image block or sub-block, and x, y, and z are These correspond to the three inputs of the MV clipping process, and the function Clip3 is defined as follows: be.

[0169]

number

[0170] FIG. 4 is a schematic diagram of a video coding device 400 according to one embodiment of the disclosure. The encoding device 400 implements the disclosed embodiments as described herein. In one embodiment, video coding device 400 is suitable for the video coding device of FIG. A decoder, such as decoder 30, or an encoder, such as video encoder 20 of FIG. 1A. That's fine.

[0171] Video coding device 400 includes an inlet port 410 (or inlet port 420) for receiving data. a receiver unit (Rx) 420, a processor for processing the data, logic unit, or central processing unit (CPU) 430, a transmitter unit (T x) 440 and exit port 450 (or output port 450), and a memo for storing data The video coding device 400 also includes an output for an optical or electrical signal, or an inlet port 410 for ingress, a receiver unit 420, a transmitter unit 440, and an outlet port 412 for ingress. Coupled to port 450 are optical-to-electrical (OE) components and electrical-to-optical (ELE) components. The optical fiber may include optical-to-optical (EO) components.

[0172] The processor 430 is implemented by hardware and software. 30 may include one or more CPU chips, cores (e.g., as a multi-core processor), FPGAs The processor 430 may be implemented as an ASIC, an ASIC, and a DSP. The processor is in communication with a processor unit 420, a transmitter unit 440, an exit port 450, and a memory 460. The decoder 430 includes a coding module 470. The coding module 470 is For example, the coding module 470 may include: It performs, processes, prepares, or provides various coding operations. The inclusion of module 470 provides a significant improvement in the functionality of video coding device 400, Transformation of video coding device 400 into a different state. The input module 470 is configured to execute instructions stored in the memory 460 and executed by the processor 430. This is realized as:

[0173] The memory 460 may be one or more disks, tape drives, and solid-state drives. and when such a program is selected for execution, and to store instructions and data read during program execution. For example, the memory 460 may be used as an overflow data storage device. For example, the memory may be volatile and / or non-volatile, and may be a read-only memory. ROM), random access memory (RAM), ternary associative memory (ternary content addressable memory y content-addressable memory (TCAM), and / or static random access It may be a static random-access memory (SRAM).

[0174] FIG. 5 illustrates a block diagram of source device 12 and destination device 14 from FIG. 1 in accordance with an example embodiment. FIG. 5 is a simplified block diagram of an apparatus 500 that may be used as either or both.

[0175] The processor 502 in the device 500 may be a central processing unit. The processor 502 may include any now existing or later developed device capable of manipulating or processing information. It may be any other type of device or devices possible. The implementation shown uses a single processor, e.g., processor 502. Although it is possible to implement the above, the advantages in speed and efficiency may be greater if more than one process is used. This can be accomplished using a scrubber.

[0176] The memory 504 in the device 500 may be, in one implementation, a read-only memory (ROM) device or a random access memory (RAM). It may be a random access memory (RAM) device, or any other suitable type of storage device. A storage device may be used as the memory 504. The memory 504 is connected to the bus 512. The code and data 506 may be accessed by the processor 502 using The memory 504 includes an operating system 508 and application programs 510. The application program 510 may further include the application program 510 that the processor 502 executes as described herein. The present invention includes at least one program enabling the implementation of the method described herein. For example, The application programs 510 can include applications 1 to N. Applications 1 through N are video coding applications that implement the methods described herein. The present invention further includes the following options:

[0177] The apparatus 500 may also include one or more output devices, such as a display 518. In one example, the display 518 can be configured to be sensitive to touch input. In combination with the operable touch-sensitive element, there may be a touch-sensitive display. A display 518 may be coupled to the processor 502 via the bus 512 .

[0178] Although depicted here as a single bus, the bus 512 of the device 500 may be comprised of multiple buses. Additionally, the secondary storage device 514 may be directly coupled to other components of the device 500. and capable of being stored or accessed over a network; It can be a single integrated unit, such as a memory card, or multiple units, such as multiple memory cards. Thus, the device 500 may be realized in a wide variety of configurations. It is possible.

[0179] Chroma Component Subsampling In video coding, the input video typically has one luma component (Y) and two There are two chrominance components (Cb and Cr). In practice, the chrominance components are usually The signal is subsampled to reduce storage and transition bandwidth for the signal.

[0180] There are several chroma subsampling formats. In some cases, One chroma subsampling format that does not require chroma subsampling for There are also other formats, such as chroma subsampling format 4:4:4. In the ring format 4:4:4, the three components Y, U, V are represented as an example in Figure 6: In one example, the luma component size is 1 in a video. Assume the total size of the video is 3.

[0181] In practice, one chroma subsampling format, 4:2:0, is widely used, where: The chroma components correspond horizontally and vertically to the luma components, as shown for example in FIG. The size of Cb or Cr is 1 / 4 the size of the luma component. Therefore, in a 4:2:0 format, the total size of the video is 1 / 2 the size of the luma component. (Y) + 0.25(Cb) + 0.25(Cr) = 1.5. 4:4:4 chroma subsampling format and In comparison, the 4:2:0 format requires less space for storing or transitioning video streams. Save half the money.

[0182] In another example, a chroma subsampling format of 4:2:2 is disclosed, where the chroma components are Horizontally subsampled as shown in the example in FIG. 8. In this case, Cb or Cr The size of the luma component is half that of the luma component. The total size is 1(Y) + 0.5(Cb) + 0.5(Cr) = 2 times the size of the luma component. Compared to subsampling formats, the 4:2:2 format requires less memory or transition. Saves 1 / 3 of the required size.

[0183] In these examples, the luma component size is assumed to be 1 in the video.

[0184] ITU-T JVET O2001 (link is http: / / phenix.it-sudparis.eu / jvet / doc_end_user / docume In one example, shown in nts / 15_Gothenburg / wg11 / JVET-O2001-v14.zip, The variables and terms associated with Y are called luma (or L or Y) and chroma, Here, the two chroma arrays are called Cb and Cr.

[0185] The variables SubWidthC and SubHeightC correspond to the chroma_format_idc and separate_colour_plane_ Depending on the chroma format sampling structure specified through flag, the following table 1. Other values ​​of chroma_format_idc, SubWidthC, and SubHeightC are specified in ITU -T | May be specified in the future by ISO / IEC.

[0186] [Table 8]

[0187] chroma_format_idc is the chroma format (as described in Table 1 and the related paragraphs) Specifies the chroma sampling relative to the chroma_format_idc value. The value of chroma_format_idc ranges from 0 to It is assumed that the range includes all of the three.

[0188] Monochrome sampling has only one sample array, nominally considered the luma array. There is Ray.

[0189] In 4:2:0 sampling, each of the two chroma arrays is half the height of the luma array and It has half the width.

[0190] In 4:2:2 sampling, each of the two chroma arrays is at the same height and half of the luma array. It has a width of minutes.

[0191] For 4:4:4 sampling, the following applies depending on the value of separate_colour_plane_flag: do. - If separate_colour_plane_flag is equal to 0, each of the two chroma arrays is It has the same height and width as the master array. - Otherwise (separate_colour_plane_flag is equal to 1), the three colour planes are monochrome. The images are then processed separately as multisampled pictures.

[0192] For each representation of a sample in the luma and chroma arrays in a video sequence The number of bits required for is in the range of 8 to 16 inclusive and is used in the luma array. The number of bits used may be different from the number of bits used in the chroma array.

[0193] When the value of chroma_format_idc is equal to 1, the number of luma and chroma samples in the picture is The nominal vertical and horizontal relative positions are shown in Figure 7. Alternative Chroma Sample Relative Positions may be indicated in the video usability information.

[0194] When the value of chroma_format_idc is equal to 2, chroma samples are They are co-located and their nominal positions in the picture are as shown in FIG.

[0195] When the value of chroma_format_idc is equal to 3, all arrays for all cases of the picture The samples were placed in the same place and their nominal positions in the picture were as shown in Figure 6. do.

[0196] Angular intra prediction modes and their corresponding directional interpretations In the example shown in FIG. 9, the solid lines (from 2 to 66) with arrows are used to represent the angular intra prediction. Among them, modes 18 and 50 are horizontal and vertical prediction methods, respectively. Relative to the horizontal, modes 2 and 34 correspond to 45° and -45°, respectively. Relative to the vertical direction, modes 66 and 34 correspond to 45° and −45°.

[0197] Some examples are shown in Table 2 with mode as input and distance as output. As mentioned above, the angles for these modes (e.g., inputs 2, 18, 34, 50, 66) are calculated using the distance values. It is implicitly defined in

[0198] [Table 9]

[0199] The corresponding degrees for Mode X are: degree = arctan(output(x) / 32) It can be derived as:

[0200] In one example, input mode 2 will output 32 values, and the corresponding degree for mode 2 is Similarly, modes 18, 34, 50, and 66 output values ​​of 0, -32, 0, and 32. The corresponding degrees are 0, -45°, 0, and 45°, respectively. Modes 18 (horizontal prediction) and 5 0 (vertical projection) corresponds to 0 degrees, and mode 34 overlaps the two 0 degree modes relative to -45 It is noted that this corresponds to .degree.

[0201] As shown in FIG. 10, for modes 0 to 34, the adjacent sides of the desired angle are horizontal. , but the opposite side of the desired angle is parallel to the vertical direction. The desired angles are shown on the left side of Figure 10. For modes 34 to 66, the neighbors of the desired angles are The side at the desired angle is parallel to the vertical while the opposing side is parallel to the horizontal.

[0202] In some instances, some modes (e.g. modes 3, 4, 6...26) are multiples of 32. There is no corresponding output for modes 2, 18, 34, 50, and 66. The degrees of the beam are not uniformly distributed between the 45 degrees. As shown in Figure 9, the modes are The angles are more tightly defined when they are closer to horizontal (mode 18) and vertical (mode 50) degrees.

[0203] In some examples, several intra prediction modes (e.g., 8, 28, 40, and 60...) are used. .) is a multiple of 16 (but not 32) that corresponds to an angle whose opposite sides are half adjacent (The tangent of these angles is 0.5 or -0.5.)

[0204] In some examples, there are wide-angle modes from -1 to -14 and 67 to 80. When the clock aspect ratio is not 1:1, these modes are not directly coded but are It will be mapped.

[0205] The mapping rule is to take the input nW as the width of the block, nH as the height of the block, and The angle mode is defined as the following process, using predModeIntra.

[0206] The variable whRatio is set equal to Abs(Log2(nW / nH)).

[0207] For non-square blocks (nW is not equal to nH), the intra prediction mode predModeIntra is modified as follows: - The following conditions (these conditions determine whether the wide-angle mapping process should be applied or not): If all of the following are true, then predModeIntra is set to ( predModeIntra +65 ). is set equal to - nW is greater than nH, - predModeIntra is 2 or greater, - predModeIntra is less than ( whRatio > 1 )?( 8 + 2 * whRatio ) : 8. - Otherwise, the following conditions (these conditions must be met to apply the wide-angle mapping process): If all of (predModeIntra is used to determine whether pred ModeIntra - 67). - nH is greater than nW, - predModeIntra is less than or equal to 66, - predModeIntra is ( whRatio > 1 )?( 60 - 2 * whRatio ) : greater than 60.

[0208] Take as an example a block with an aspect ratio of 1:2 (the block width is half its height). and predModeIntra modes 61 to 66 are mapped to -6 to -1 when the following conditions are met: It will be done. - nH is greater than nW, - predModeIntra is less than or equal to 66, - predModeIntra is greater than ( whRatio > 1 ) ? ( 60 - 2 * whRatio ) : 60, Here, whRatio = Abs(Log2(nW / nH)) = 1.

[0209] Chroma intra prediction modes when chroma components are subsampled horizontally or vertically Derivation In some cases, for 4:2:2 chroma subsampling formats, the final A mapping table may be defined to derive the Mintra angle modes, where: The original chroma angle prediction mode is adjusted based on the ratio that has changed due to subsampling. will be done.

[0210] In one example, as shown in FIG. 10, the block without chroma subsampling (left) has the same Modes 2, 8, 18, 34, 50, and 66 use their prediction directions to The chroma components are sampled in 4:2:2 chroma subsample format (i.e. That is, as shown in Figure 8, the chroma components are subsampled only horizontally, When the chroma samples are aligned with the luma samples every two columns, the width of the chroma components is is half of that.

[0211] In this case, the aspect ratio of the chroma block is 1:2 due to chroma subsampling. Therefore, the original mode is scaled according to the horizontally subsampled chroma components. In this case, mode 2 adjusts the horizontal reduction by half. The aspect ratio of the subsampled block is 1:2, so it is mapped to 61. and the mapped mode 61 meets the conditions for the wide-angle mapping process. If we add, the mapped mode 61 is converted to mode -6 according to the wide-angle mapping process. is further mapped to

[0212] Mode-6 corresponds to 64 output values ​​according to Table 2. Therefore, chroma subsampling The corresponding degrees of the final angle after the ring are degree = arctan(64 / 32) It is.

[0213] The tangent value of this angle is twice the tangent value of mode 2, which means that the adjacent sides of mode 2 are This reflects the halving due to Roman subsampling.

[0214] Since the half-width position corresponds to mode 8 (as shown on the left in Figure 10), is mapped to mode 2, and mode 8 corresponds to an angle of 45° due to the width in the horizontal direction. Similarly, modes 34 and 60 are mapped to 40 and 60, respectively. In this example, the horizontal and vertical prediction modes whose degree is 0 are mapped to other modes. i.e. horizontal / vertical modes still map to the same mode.

[0215] The chroma components are subsampled (for example, the chroma subsampling format To map intra prediction modes when the input is 4:2:2, the mapping table is as follows: It is defined as follows:

[0216] [Table 10]

[0217] In one implementation of the present invention, the matching of modes 2 to 7, as defined in Table 4, is performed. It is proposed to replace ping 60 with 65.

[0218] [Table 11]

[0219] In the above example, mode 2 would map to 61. In this embodiment, mode 2 will map to mode 60 as shown in FIG.

[0220] In one implementation of the present invention, the matching of modes 2 to 7, as defined in Table 5, is performed. It is proposed to replace ping with modes 61 to 66, which are the same as modes 2 to 7 in Table 3. will be done.

[0221] [Table 12]

[0222] In one implementation of the present invention, modes 8 through 18 are It is proposed to map in the following modes:

[0223] [Table 13]

[0224] In one implementation of the present invention, we show how the modes to be mapped are derived. To do this, Table 7 below is used.

[0225] [Table 14]

[0226] The left side represents 2 to 18 input modes, each corresponding to a tangent value and an angle. In the case without subsampling, the angles of these modes can be defined as It is possible. degree = arctan(output(x) / 32)

[0227] For modes 2 to 34, the scaling factor 32 may be considered as the range shown in Figure 10. For those modes, the adjacent sides of the desired angle are parallel to the horizontal, but the The opposite sides of the angle are parallel to the vertical direction. The desired angle corresponding to mode 8 is In contrast, the angle corresponding to mode 34 is shown in the left subfigure. For modes 34 to 66, the desired angle is -45 degrees, since the overlapping angle is related to both directions. The adjacent sides of the desired angle are parallel to the vertical, but the opposite sides of the desired angle are parallel to the horizontal. be.

[0228] Due to chroma subsampling, for modes 2 to 34, adjacent (parallel to the width) The tangent value with subsampling is doubled because the sides are halved, for modes 34 to 66 Therefore, the tangent value with subsampling is half, since the opposing sides are halved.

[0229] In one example, the doubled tangent values ​​are listed for each mode on the right side of Table 7. However, the angles are not linearly proportional to the tangent values. Therefore, these doubled tangent values needs to be converted back to an angle value. Using the converted angle values, the mode with the closest angle on the left side of Table 7 is found. This is the power mode.

[0230] In summary, to find the corresponding mapping mode, we use the following with input mode X: Using the steps below, a lookup table is first generated. Obtain the output value according to Table 2. Alternatively or additionally, calculate the tangent value for this mode as output(X) / 32. Alternatively or additionally, the derived tangent value may be used to calculate the angle, e.g., ar The function is ctan(output(x) / 32). Alternatively or in addition, use the above three steps using the range of input mode X. Generate a lookup table using the tangent, angle, and input mode columns in Table 7. As shown on the left, X is in the range 2..18.

[0231] To derive the mapped modes using the input mode X, the following steps are applied: It is used. Alternatively or additionally, double the tangent value for X mode as 2*output(X) / 32. Alternatively or additionally, chroma subsampling can be done using doubled tangent values. Calculates the angle in format 4:2:2, e.g., arctan (2*output(x) / 32). Alternatively or additionally, calculations in chroma subsampling format 4:2:2 According to the angle value, the lookup table (for example, the chroma subsampling in Table 7) Find the closest angle in the given angle list (without gating). Alternatively or additionally, the corresponding output model is selected according to the closest angle in the look-up table. Pick up the card.

[0232] For the sake of brevity, the above process is used as the process for deriving the output mode. It is mentioned as follows.

[0233] In one example, the input mode 10, after the look-up table is generated, changes its output mode to the following: This is derived as follows. ·Double the tangent value of the 10th mode: 2*12 / 32 = 0.75. - Corner in chroma subsampling format 4:2:2 using doubled tangent value Calculates degrees, for example, arctan(0.75) = 36.8699°. According to the calculated angle value 36.8699°, find the closest angle 35.70669° in the lookup table find. According to the closest angle 35.70669° in the lookup table, pick the corresponding output mode 5 Upload.

[0234] Thus, input mode 10 is mapped to mode 5.

[0235] In one implementation of the present invention, modes 19 through 28 are It is proposed to map in the following modes:

[0236] [Table 15]

[0237] In one implementation of the present invention, we show how the modes to be mapped are derived. To do this, Table 9 below is used.

[0238] [Table 16]

[0239] Table 9 shows the process for deriving the output modes as defined in the previous embodiment. In this example, the lookup table (Table When generating a 34-bit number (left of 9), input modes 19 through 34 are used.

[0240] In one implementation of the present invention, modes 29 through 34, as defined in Table 10, are It is proposed to map in the following modes:

[0241] [Table 17]

[0242] In one implementation of the present invention, we show how the modes to be mapped are derived. To do this, Table 11 below is used.

[0243] [Table 18]

[0244] In one example, Table 11 may be used as defined in the previous embodiment, except for the following aspects: It can be derived using a process for deriving an output mode. · When generating lookup tables, input modes 29 to 40 are used. For modes 29 to 34, one more step is required to derive the output mode. The angle corresponding to the value of 2*tangent(output(x) / 32) is less than -45° (i.e., The absolute value of the angle is greater than 45°. The smallest angle that can be derived is -45°. Therefore, these angles (smaller than -45°) cannot be used directly. If so, their complements are used and the angle mapped is the current Therefore, the adjacent sides of the mapped angle and The opposite sides are swapped, and the tangent of their complementary angles is then calculated as 1 / 2*tangent(output(x) / 32 ) to derive the correct angle, which is used to find the closest angle in the lookup table. It is used to

[0245] In one implementation of the present invention, modes 35 to 50, as defined in Table 12, are It is proposed to map in the following modes:

[0246] [Table 19]

[0247] In one implementation of the present invention, we show how the modes to be mapped are derived. To do this, Table 13 below is used.

[0248] [Table 20]

[0249] Table 13 may be derived using the process for deriving output modes, as follows: Change the aspect. · When generating lookup tables, input modes 35 to 50 are used. Modes 35 to 50 correspond to angles whose opposite side is the upper boundary of the current block. After chroma subsampling, the opposite side is in 4:2:2 chroma subsampling format. Since the square root of the square root is halved using the square root function, the corresponding tangent value is (instead of being doubled in Table 7) (to ) is halved.

[0250] In one example, mode 36 also uses the following mapping table, as shown in Table 2: It can be mapped to 42 by taking into account:

[0251] [Table 21]

[0252] From the standpoint of mode 36, the opposite sides of the corresponding angles are parallel to the horizontal, and the corresponding angles The adjacent sides of the 32-bit pixel are parallel to the vertical direction. Due to chroma subsampling, the horizontal is reduced by half, i.e. the opposite side of the corresponding angle is reduced by half. is equivalent to decreasing the output value by half, which means that the output value is now -26 / 2 = -13, which has two equal nearest output values ​​-12 and -14. Therefore, it can be mapped to either mode 41 or 42.

[0253] For the same reason, modes 39, 41, 43, 47, and 49 are 43 or 44, 44 or 45, and 45 or or 46, 48 or 49, 49 or 50. Table 14 shows the possible Summarize the mapping modes and how they are derived.

[0254] [Table 22]

[0255] In one implementation of the present invention, modes 51 through 66, as defined in Table 15, are It is proposed to map in the following modes:

[0256] [Table 23]

[0257] In one implementation of the present invention, we show how the modes to be mapped are derived. To do this, Table 16 below is used.

[0258] [Table 24]

[0259] Similar to Table 13, Table 16 is derived using a process for deriving output modes. may be issued, but with the following modifications: · When generating lookup tables, input modes 50 to 66 are used. Modes 51 to 66 correspond to angles whose opposite side is the top boundary of the current block. After chroma subsampling, the opposite side is in 4:2:2 chroma subsampling format. Since the square root of the square root is halved using the square root function, the corresponding tangent value is (instead of being doubled in Table 7) (to ) is halved.

[0260] Similar to Table 14, among modes 51 to 66, as shown in Table 17, Some of the may have alternative mapped modes.

[0261] [Table 25]

[0262] In the above embodiment, the chroma subsampling mode is 4:2:2, i.e. Mapping modes for half subsampling of the chrominance components in A number of embodiments are presented: Chroma Subsampled, where the chroma components are vertically subsampled; Note that a similar approach could be proposed for the sampling format. will be done.

[0263] In some cases, chroma subsampling can result in the block aspect remaining unchanged. It is not necessary to perform intra-prediction mode mapping for the encoding format. For example, using a 4:2:0 chroma subsampling format, both horizontally and vertically The chroma components are subsampled in the other direction, so the block aspect remains unchanged. Therefore, there is no need to perform mode mapping.

[0264] In some examples, the above embodiments may be implemented in any manner, as long as one input mode X has one output mode Y. For example, Table 18 below shows the proposed implementation. It is one of the combinations of forms.

[0265] [Table 26]

[0266] In some examples, the compounds disclosed in the above embodiments (e.g., Tables 2 to 18) may be used. One or any combination of the modes can be combined to form a mode mapping relationship. It is okay to do so.

[0267] Example 1. A method of coding performed by a decoding device, comprising: obtaining a video bitstream; Decode the video bitstream into the chroma components of the current coding block. obtaining an initial intra-prediction mode value for the The width of the current coding block for the luma component and the width of the current coding block Determines whether the ratio between the width and chroma components is equal to a threshold (or the current The height for the luma component of the coding block and the chroma of the current coding block. determining whether the ratio between the height of the component and the component height is equal to a threshold value; When it is determined that the ratio is equal to the threshold, the default mapping relationship and the initial The chrominance components of the current coding block are mapped according to the chrominance prediction mode value. obtaining a determined intra-prediction mode value; The chrominance of the current coding block is calculated according to the mapped intra prediction mode value. obtaining predicted sample values ​​for the components.

[0268] Example 2. The method of example 1, where the threshold is 2 or 0.5.

[0269] Example 3. The following table is used to represent the default mapping relationships:

[0270] [Table 27]

[0271] or

[0272] [Table 28]

[0273] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped 3. The method of example 1 or 2 for representing an intra-prediction mode value.

[0274] Example 4. The following table is used to represent the default mapping relationships:

[0275] [Table 29]

[0276] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped 4. The method of any one of examples 1 to 3 for representing an intra-prediction mode value.

[0277] Example 5. The following table is used to represent the default mapping relationships:

[0278] [Table 30]

[0279] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped 5. The method of any one of examples 1 to 4 for representing an intra-prediction mode value.

[0280] Example 6. The following table is used to represent the default mapping relationships:

[0281] [Table 31]

[0282] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped 6. The method of any one of examples 1 to 5 for representing an intra-prediction mode value.

[0283] Example 7. The following table is used to represent the default mapping relationships:

[0284] [Table 32]

[0285] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped 7. The method of any one of examples 1 to 6 for representing an intra-prediction mode value.

[0286] Example 8. The following table is used to represent the default mapping relationships:

[0287] [Table 33]

[0288] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped 7. The method of any one of examples 1 to 6 for representing an intra-prediction mode value.

[0289] Example 9. The following table is used to represent the default mapping relationships:

[0290] [Table 34]

[0291] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped 7. The method of any one of examples 1 to 6 for representing an intra-prediction mode value.

[0292] Example 10. The following table is used to represent the default mapping relationships:

[0293] [Table 35]

[0294] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped The method of any one of Examples 1 to 6, 8, and 9 for representing an intra-prediction mode value.

[0295] Example 11. The following table is used to represent the default mapping relationships:

[0296] [Table 36]

[0297] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped The method of any one of Examples 1 to 6, 8, and 9 for representing an intra-prediction mode value.

[0298] Example 12. The following table is used to represent the default mapping relationships:

[0299] [Table 37]

[0300] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped The method of any one of Examples 1 to 6 and 8 to 11 for representing an intra-prediction mode value.

[0301] Example 13. The following table is used to represent the default mapping relationships:

[0302] [Table 38]

[0303] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped The method of any one of Examples 1 to 6 and 8 to 11 for representing an intra-prediction mode value.

[0304] Example 14. The following table is used to represent the default mapping relationships:

[0305] [Table 39]

[0306] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped The method of any one of Examples 1 to 6 and 8 to 13 for representing an intra-prediction mode value.

[0307] Example 15. The following table is used to represent the default mapping relationships:

[0308] [Table 40]

[0309] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped The method of any one of Examples 1 to 6 and 8 to 13 for representing an intra-prediction mode value.

[0310] Example 16. The following table is used to represent the default mapping relationships:

[0311] [Table 41]

[0312] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped The method of any one of Examples 1 to 6 and 8 to 15 for representing an intra-prediction mode value.

[0313] Example 17. The following table is used to represent the default mapping relationships:

[0314] [Table 42]

[0315] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped The method of any one of Examples 1 to 6 and 8 to 15 for representing an intra-prediction mode value.

[0316] Example 18. The following table is used to represent the default mapping relationships:

[0317] [Table 43]

[0318] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped The method of any one of Examples 1-6 and 8-17 for representing an intra-prediction mode value.

[0319] Example 19. The following table is used to represent the default mapping relationships:

[0320] [Table 44]

[0321] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped The method of any one of Examples 1-6 and 8-17 for representing an intra-prediction mode value.

[0322] Example 20. The following table is used to represent the default mapping relationships:

[0323] [Table 45]

[0324] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped 20. The method of any one of Examples 1 to 19 for representing an intra-prediction mode value.

[0325] Example 21. The following table is used to represent the default mapping relationships:

[0326] [Table 46]

[0327] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped 20. The method of any one of Examples 1 to 19 for representing an intra-prediction mode value.

[0328] Example 22. The following table is used to represent the default mapping relationships:

[0329] [Table 47]

[0330] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped 20. The method of any one of Examples 1 to 19 for representing an intra-prediction mode value.

[0331] Example 23. The following table is used to represent the default mapping relationships:

[0332] [Table 48]

[0333] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped The method of any one of Examples 1 to 19 and 21 to 22 for representing an intra-prediction mode value. .

[0334] Example 24. The following table is used to represent the default mapping relationships:

[0335] [Table 49]

[0336] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped The method of any one of Examples 1 to 19 and 21 to 22 for representing an intra-prediction mode value. .

[0337] Example 25. The following table is used to represent the default mapping relationships:

[0338] [Table 50]

[0339] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped The method of any one of Examples 1 to 19 and 21 to 24 for representing an intra-prediction mode value. .

[0340] Example 26. The following table is used to represent the default mapping relationships:

[0341] [Table 51]

[0342] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped The method of any one of Examples 1 to 19 and 21 to 24 for representing an intra-prediction mode value. .

[0343] Example 27. The following table is used to represent the default mapping relationships:

[0344] [Table 52]

[0345] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped The method of any one of Examples 1 to 19 and 21 to 26 for representing an intra-prediction mode value. .

[0346] Example 28. The following table is used to represent the default mapping relationships:

[0347] [Table 53]

[0348] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped The method of any one of Examples 1 to 19 and 21 to 26 for representing an intra-prediction mode value. .

[0349] Example 29. The following table is used to represent the default mapping relationships:

[0350] [Table 54]

[0351] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped The method of any one of Examples 1 to 19 and 21 to 28 for representing an intra-prediction mode value. .

[0352] Example 30. The following table is used to represent the default mapping relationships:

[0353] [Table 55]

[0354] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped The method of any one of Examples 1 to 19 and 21 to 28 for representing an intra-prediction mode value. .

[0355] Example 31. The following table is used to represent the default mapping relationships:

[0356] [Table 56]

[0357] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped The method of any one of Examples 1 to 19 and 21 to 30 for representing an intra-prediction mode value. .

[0358] Example 32. The following table is used to represent the default mapping relationships:

[0359] [Table 57]

[0360] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped The method of any one of Examples 1 to 19 and 21 to 30 for representing an intra-prediction mode value. .

[0361] Example 33. A method of coding performed by a decoding device, comprising: obtaining a video bitstream; Decode the video bitstream into the chroma components of the current coding block. obtaining an initial intra-prediction mode value for the Decodes the video bitstream to obtain the chrominance for the current coding block. obtaining a value of format display information; The value of the chroma format display information for the current coding block is equal to the default value. When the current coding mode is not set, the current coding mode is determined according to the default mapping relationship and the initial intra prediction mode value. A step for obtaining a mapped intra-prediction mode value for the chroma component of a block. Tep and The chrominance of the current coding block is calculated according to the mapped intra prediction mode value. obtaining predicted sample values ​​for the components.

[0362] Example 34. The method of Example 33, where the default value is 2 or 1.

[0363] Example 35. The following table is used to represent the default mapping relationships:

[0364] [Table 58]

[0365] or

[0366] [Table 59]

[0367] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped 33. The method of example 31 or 32 for representing an intra-prediction mode value.

[0368] Example 36. The following table is used to represent the default mapping relationships:

[0369] [Table 60]

[0370] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped 36. The method of any one of Examples 33 to 35 for representing an intra-prediction mode value.

[0371] Example 37. The following table is used to represent the default mapping relationships:

[0372] [Table 61]

[0373] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped 37. The method of any one of Examples 33 to 36 for representing an intra-prediction mode value.

[0374] Example 38. The following table is used to represent the default mapping relationships:

[0375] [Table 62]

[0376] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped 38. The method of any one of Examples 33 to 37 for representing an intra-prediction mode value.

[0377] Example 39. The following table is used to represent the default mapping relationships:

[0378] [Table 63]

[0379] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped The method of any one of Examples 33 to 38 for representing an intra-prediction mode value.

[0380] Example 40. The following table is used to represent the default mapping relationships:

[0381] [Table 64]

[0382] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped The method of any one of Examples 33 to 38 for representing an intra-prediction mode value.

[0383] Example 41. The following table is used to represent the default mapping relationships:

[0384] [Table 65]

[0385] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped The method of any one of Examples 33 to 38 for representing an intra-prediction mode value.

[0386] Example 42. The following table is used to represent the default mapping relationships:

[0387] [Table 66]

[0388] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped Any one of Examples 33 to 38, 40, and 41 for expressing an intra-prediction mode value. Law.

[0389] Example 43. The following table is used to represent the default mapping relationships:

[0390] [Table 67]

[0391] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped Any one of Examples 33 to 38, 40, and 41 for expressing an intra-prediction mode value. Law.

[0392] Example 44. The following table is used to represent the default mapping relationships:

[0393] [Table 68]

[0394] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped Any one of Examples 33 to 38 and 40 to 43 for expressing an intra-prediction mode value. Law.

[0395] Example 45. The following table is used to represent the default mapping relationships:

[0396] [Table 69]

[0397] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped Any one of Examples 33 to 38 and 40 to 43 for expressing an intra-prediction mode value. Law.

[0398] Example 46. The following table is used to represent the default mapping relationships:

[0399] [Table 70]

[0400] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped Any one of Examples 33 to 38 and 40 to 45 for expressing an intra-prediction mode value. Law.

[0401] Example 47. The following table is used to represent the default mapping relationships:

[0402] [Table 71]

[0403] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped Any one of Examples 33 to 38 and 40 to 45 for expressing an intra-prediction mode value. Law.

[0404] Example 48. The following table is used to represent the default mapping relationships:

[0405] [Table 72]

[0406] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped Any one of Examples 33 to 38 and 40 to 47 for expressing an intra-prediction mode value. Law.

[0407] Example 49. The following table is used to represent the default mapping relationships:

[0408] [Table 73]

[0409] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped Any one of Examples 33 to 38 and 40 to 47 for expressing an intra-prediction mode value. Law.

[0410] Example 50. The following table is used to represent the default mapping relationships:

[0411] [Table 74]

[0412] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped Any one of Examples 33 to 38 and 40 to 49 for expressing an intra-prediction mode value. Law.

[0413] Example 51. The following table is used to represent the default mapping relationships:

[0414] [Table 75]

[0415] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped Any one of Examples 33 to 38 and 40 to 49 for expressing an intra-prediction mode value. Law.

[0416] Example 52. The following table is used to represent the default mapping relationships:

[0417] [Table 76]

[0418] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped The method of any one of Examples 33 to 51 for representing an intra-prediction mode value.

[0419] Example 53. The following table is used to represent the default mapping relationships:

[0420] [Table 77]

[0421] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped The method of any one of Examples 33 to 51 for representing an intra-prediction mode value.

[0422] Example 54. The following table is used to represent the default mapping relationships:

[0423] [Table 78]

[0424] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped The method of any one of Examples 33 to 51 for representing an intra-prediction mode value.

[0425] Example 55. The following table is used to represent the default mapping relationships:

[0426] [Table 79]

[0427] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped Any one of Examples 33 to 51 and 53 to 54 for expressing an intra-prediction mode value. Law.

[0428] Example 56. The following table is used to represent the default mapping relationships:

[0429] [Table 80]

[0430] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped Any one of Examples 33 to 51 and 53 to 54 for expressing an intra-prediction mode value. Law.

[0431] Example 57. The following table is used to represent the default mapping relationships:

[0432] [Table 81]

[0433] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped Any one of Examples 33 to 51 and 53 to 56 for expressing an intra-prediction mode value. Law.

[0434] Example 58. The following table is used to represent the default mapping relationships:

[0435] [Table 82]

[0436] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped Any one of Examples 33 to 51 and 53 to 56 for expressing an intra-prediction mode value. Law.

[0437] Example 59. The following table is used to represent the default mapping relationships:

[0438] [Table 83]

[0439] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped Any one of Examples 33 to 51 and 53 to 58 for expressing an intra-prediction mode value. Law.

[0440] Example 60. The following table is used to represent the default mapping relationships:

[0441] [Table 84]

[0442] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped Any one of Examples 33 to 51 and 53 to 58 for expressing an intra-prediction mode value. Law.

[0443] Example 61. The following table is used to represent the default mapping relationships:

[0444] [Table 85]

[0445] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped Any one of Examples 33 to 51 and 53 to 60 for expressing an intra-prediction mode value. Law.

[0446] Example 62. The following table is used to represent the default mapping relationships:

[0447] [Table 86]

[0448] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped Any one of Examples 33 to 51 and 53 to 60 for expressing an intra-prediction mode value. Law.

[0449] Example 63. The following table is used to represent the default mapping relationships:

[0450] [Table 87]

[0451] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped Any one of Examples 33 to 51 and 53 to 62 for expressing an intra-prediction mode value. Law.

[0452] Example 64. The following table is used to represent the default mapping relationships:

[0453] [Table 88]

[0454] is used, where mode X represents the initial intra-prediction mode value and mode Y represents the mapped Any one of Examples 33 to 51 and 53 to 62 for expressing an intra-prediction mode value. Law.

[0455] Example 65. A method according to any one of examples 1 to 64, comprising a processing circuit for carrying out the method. Decoder(30).

[0456] Example 66. Program code for carrying out a method according to any one of Examples 1 to 64 1. A computer program product comprising:

[0457] Example 67. A decoder comprising: one or more processors; a non-uniform memory coupled to the processor and storing programming for execution by the processor; and a temporary computer-readable storage medium, the programming being executed by a processor. and configuring the decoder to execute a method according to any one of Examples 1 to 64 when the decoder receives the , decoder.

[0458] The following is a method for encoding as well as a method for decoding as illustrated in the above-mentioned embodiment. , and a description of the application of systems that use them.

[0459] FIG. 11 shows a content supply system 3100 for implementing a content distribution service. This content supply system 3100 includes a capture device 3102, a terminal The capture device 3102 includes a capture device 3106 and optionally a display 3126. 3104 communicates with a terminal device 3106. The communication link may be any of the communication The communication link 3104 may include WIFI, Ethernet, cable, wireless (3G / 4G / 5G, etc. G), USB, or any combination thereof, or the like, but Not limited to.

[0460] The capture device 3102 generates data and encodes it as described in the above embodiments. Alternatively, the capture device 3102 may encode the data by a The data may be delivered to a streaming server (not shown), which may then The capture device 3106 encodes the captured image and transmits the encoded image to the terminal device 3106. The device 3102 can be used with cameras, smartphones or pads, computers or laptops , video conferencing systems, PDAs, vehicle mounted devices, or any combination thereof For example, a capture device 31 may be used. 02 may include a source device 12 as described above. If the data includes video, The video encoder 20 included in the capture device 3102 actually encodes the video. When the data contains audio (i.e., voice), the capture device The audio encoder included in the device 3102 actually performs the audio encoding process. For some practical scenarios, the capture device 3102 may Distributing encoded video and audio data by multiplexing them together For other practical scenarios, e.g. in video conferencing systems, The captured audio data and the encoded video data are not multiplexed. The device 3102 receives encoded audio data and encoded video data. The data is delivered to the terminal device 3106 separately.

[0461] In the content supply system 3100, the terminal device 310 receives encoded data. The terminal device 3106 receives and plays the encoded data described above. A smartphone or pad 3108, computer or laptop that can be coded Top 3110, network video recorder (NVR) / digital video Digital video recorder (DVR) 3112, TV 3114, set-top box top box (STB) 3116, video conference system 3118, video surveillance system 3120, personal device Personal digital assistant (PDA) 3122, vehicle mounted device 3124 or any combination thereof, or the like, such as data reception and For example, the terminal device 3106 may be a device having a restoration capability. The encoded data may include a destination device 14 as described in . When the video signal is received, the video decoder 30 included in the terminal device is configured to perform video decoding. When the encoded data contains audio, the terminal device The audio decoder contained within is prioritized to perform the audio decoding process. It is attached.

[0462] A terminal device having a display thereon, for example a smartphone or a pad 3108; Computer or Laptop 3110, Network Video Recorder (NVR) / Digital Video Digital Video Recorder (DVR) 3112, TV 3114, Personal Digital Assistant (PDA) 3122, or The terminal device displays the decoded image on the vehicle-mounted device 3124. Data can be provided to terminal devices that are not equipped with a display, e.g. , STB 3116, video conferencing system 3118, or video surveillance system 3120. An external display 3126 is contacted thereto to receive and display the downloaded data.

[0463] When each device in this system performs encoding or decoding, As shown in the embodiment, a picture encoding device or a picture decoding device A chair can be used.

[0464] FIG. 12 is a diagram illustrating an example of the structure of a terminal device 3106. After receiving the stream from the device 3102, the protocol progression unit 3202 The transmission protocol of the real-time streaming protocol is analyzed. Real Time Streaming Protocol (RTSP), Hyper Text Transfer Protocol (Hyper Text HTTP Live Streaming Protocol (HTTP Live Streaming Protocol) streaming protocol (HLS), MPEG-DASH, Real-time Transport Protocol (Real- Real Time Transport protocol (RTP), Real Time Messaging Protocol (Real Time Real Time Messaging Protocol (RTMP), or any combination thereof, or similar Including, but not limited to,

[0465] After the protocol progression unit 3202 processes the stream, a stream file is generated. The file is output to a demultiplexing unit 3204. The demultiplexing unit 3204 demultiplexes the file. The encoded data is encoded audio data and encoded video data. As explained above, for some practical scenarios For example, in a video conferencing system, the encoded audio data and The downloaded video data is not multiplexed. In this situation, the encoded data is The video decoder 3206 and the audio decoder 3208 are not passed through the demultiplexing unit 3204. The data is transmitted to the

[0466] Through the demultiplexing process, the video elementary stream (ES), In the above embodiment, audio ES and, optionally, subtitles are generated. The video decoder 3206 including the video decoder 30 as described above may be used in the above-described embodiments. The video ES is decoded by the above-mentioned decoding method to generate a video frame, The audio decoder 3208 outputs the audio ES to the synchronization unit 3212. The audio data is then encoded to generate audio frames and fed to the synchronization unit 3212. Alternatively, the video frame may be buffered (see FIG. 12) before being fed to the synchronization unit 3212. Similarly, an audio frame may be stored in a synchronization unit 321. 12. The received signal may be stored in a buffer (not shown in FIG. 12) before being fed to

[0467] The synchronization unit 3212 synchronizes the video and audio frames to generate a video / audio signal. The synchronization unit 3212 supplies the video / audio display 3214 with the The information is then coded into the audio and video information to synchronize the presentation of the information. timestamps related to the presentation of audio and visual data, and data streams The timestamp associated with the delivery of the message may be coded into the syntax.

[0468] If the stream contains subtitles, the subtitle decoder 3210 It decodes the title, synchronizes it with the video and audio frames, and Video / audio / subtitle to video / audio / subtitle display 3216 Supply.

[0469] The present invention is not limited to the above-mentioned system, and the picture in the above-mentioned embodiment Either the encoding device or the picture decoding device may communicate with other systems, e.g. For example, it can be integrated into an automobile system.

[0470] Mathematical Operators The mathematical operators used in this application are those used in the C programming language. However, the results of integer division and arithmetic shift operations are more precisely defined. Additional operations such as exponentiation and real-valued division are defined. Numbering and counting conventions Generally, numbers start from 0, so for example, "first" is equivalent to number 0, "second" is equivalent to number 1, etc. value, etc.

[0471] Arithmetic Operators The following arithmetic operators are defined as follows: + Add. - Subtraction (as an operator with two arguments) or negation (as a unary prefix operator). * Multiplication, including matrix multiplication. x y Power. Specifies x to the power of y. In other contexts, such notation is used to refer to Used to make superscripts not intended for interpretation. / Integer division with truncation of the result towards 0. For example, 7 / 4 and -7 / -4 are truncated to 1. , -7 / 4 and 7 / -4 are rounded down to -1. ÷ Used to represent division in mathematical expressions where no truncation or rounding is intended do.

[0472]

number

[0473] Used to denote division in mathematical expressions where no truncation or rounding is intended.

[0474]

number

[0475] The sum of f(i), for all integer values ​​of i from x to y inclusive. The x % y modulus, defined only for integers x and y, x>=0 and y>0, is the product of x divided by y. Surplus.

[0476] Logical Operators The following logical operators are defined as follows: x && y The Boolean logic "and" of x and y. x || yThe Boolean logic "or" of x and y. ! "Not" in Boolean logic. x ? y : Evaluates to the value of y if zx is TRUE, i.e. not equal to 0, otherwise , evaluates to the value of z.

[0477] Relational Operators The following relational operators are defined as follows: > Greater than. >= Greater than or equal to. < Less than. <= Less than or equal. == Equal to. != Not equal.

[0478] Any operation related to a syntax element or variable that is assigned the value "na" (not applicable) When the operator is applied, the value "na" is the special value for that syntax element or variable. The value "na" is considered not equal to any other value.

[0479] Bitwise Operators The following bitwise operators are defined as follows: & Bitwise "and". When operating on integer arguments, the two's complement representation of the integer value. When operating on a binary argument that contains fewer bits than another argument, When a byte is expanded, the shorter argument is extended by appending more significant bits equal to 0. Bitwise "logical or". When operating on integer arguments, the two's complement representation of the integer value. When operating on a binary argument that contains fewer bits than another argument, When a byte is expanded, the shorter argument is extended by appending more significant bits equal to 0. ^ Bitwise "exclusive or". When operating on integer arguments, the two's complement of the integer value. Operates on number expressions. Operates on binary arguments that contain fewer bits than another argument. When using a byte array, the shorter argument is extended by appending more significant bits equal to 0. can be. x >> yArithmetic right shift of the two's complement integer representation of x by y binary digits. This function Only defined for negative integer values. The most significant bit is shifted as a result of the right shift. The bit shifted into the xth bit (the most significant bit (MSB)) has a value equal to the MSB of x before the shift operation. do. x << yArithmetic left shift of the two's complement integer representation of x by y binary digits. This function Defined only for negative integer values. The least significant bit is shifted left. The bit that is shifted into the least significant bit (LSB) has a value equal to 0.

[0480] Assignment Operator The following arithmetic operators are defined as follows: = Assignment operator. ++ increments, i.e. x++ is equivalent to x = x + 1, and is used in array indexing. When used in an increment operation, it evaluates to the value of the variable before the increment operation. -- Decrement, i.e. x-- is equivalent to x = x - 1, in array indexing When used in a decrement operation, it evaluates to the value of the variable before the decrement operation. += increment by a specified amount, i.e. x += 3 is equivalent to x = x + 3 and += (-3) is equivalent to x = x + (-3). -= Decrement by a specified amount, i.e. x -= 3 is equivalent to x = x - 3, and x -= (-3) is equivalent to x = x - (-3).

[0481] Range Notation The following notation is used to specify a range of values: x=y..zx takes integer values ​​starting from y through z inclusive, where x, y, and z are integers. and z is greater than y.

[0482] Mathematical Functions The following mathematical functions are defined:

[0483]

number

[0484] Asin(x) operates on the argument x in the range from -1.0 to 1.0 inclusive, converting the value to a unit of radian. The trigonometric arcsine function with output values ​​in the range from -π÷2 to π÷2 inclusively in digits. Atan(x) operates on the argument x, taking the value in radians from -π÷2 to π÷2 inclusive. The trigonometric arctangent function has output values ​​within a range.

[0485]

number

[0486] Ceil(x) The smallest integer greater than or equal to x. Clip1 Y ( x ) = Clip3( 0, ( 1 << BitDepth Y ) - 1, x ) Clip1 C ( x ) = Clip3( 0, ( 1 << BitDepth C ) - 1, x )

[0487]

number

[0488] Cos(x) The trigonometric cosine function, operated on the argument x in radians. Floor(x) The largest integer less than or equal to x.

[0489]

number

[0490] Ln(x) The natural logarithm of x (logarithm to the base e, where e is the base constant of the natural logarithm, 2.718 281 828.. .). Log2(x) The base 2 logarithm of x. Log10(x) The base 10 logarithm of x.

[0491]

number

[0492] Round( x ) = Sign( x ) * Floor( Abs( x ) + 0.5 )

[0493]

number

[0494] Sin(x) The trigonometric sine function operated on the argument x in radians.

[0495]

number

[0496] Swap( x, y ) = ( y, x ) Tan(x) The trigonometric tangent function, operated on the argument x in radians.

[0497] Order of operation precedence When the order of precedence in an expression is not explicitly indicated by the use of parentheses, the following rules apply: The rules apply. - An operation with higher precedence is evaluated before any operation with lower precedence. - Operations of equal precedence are evaluated sequentially from left to right.

[0498] The following table specifies the precedence of operations from highest to lowest, with higher positions in the table indicating Indicates high priority.

[0499] Those operators that are also used in the C programming language are described in this specification. The order of precedence used in this procedure is the same as that used in the C programming language. be.

[0500] [Table 89]

[0501] Description of logical operations in text In the text, statements of logical operations that are to be mathematically written in the form nt, i.e. if(condition 0) Statement 0 else if(condition 1) Statement 1 ... else / * explanatory notes for remaining conditions * / Statement n can be explained in the following form: ...as follows / ...the following applies - If condition 0, then statement 0 - Else, if condition 1, then statement 1 - ... - otherwise (explanatory note in the remaining condition), statement n

[0502] The status of each "if... then, otherwise... if... otherwise" in the text A statement is immediately followed by "if...", "as follows..." or "...the following is true" It is introduced with "if... then, not... then, otherwise" The last condition of "..." is always "Otherwise...". If, then... then, otherwise..." statements are "...as follows: "...the following applies" to be consistent with the "otherwise..." at the end. It is possible to distinguish between the two.

[0503] In the text, statements of logical operations that are to be mathematically written in the form nt, i.e. if(condition0a && condition0b) Statement 0 else if(condition 1a || condition 1b) Statement 1 ... else Statement n can be explained in the following form: ...as follows / ...the following applies - Statement 0 if all of the following conditions are true: - Condition 0a - Condition 0b - Otherwise, if one or more of the following conditions are true, T1: - Condition 1a - Condition 1b - ... - Otherwise, statement n

[0504] In the text, statements of logical operations that are to be mathematically written in the form nt, i.e. if(condition 0) Statement 0 if(condition1) Statement 1 can be explained in the following form: If condition 0, then statement 0 If condition 1, then statement 1

[0505] Although the embodiments of the invention are primarily described in terms of video coding, Implementations of system 10, encoder 20, and decoder 30 (and correspondingly system 10) This and other embodiments described herein may also be used for still picture processing or coding. A picture sequence, i.e., any preceding or consecutive pictures, as in video coding. The present invention may be configured for processing or coding of individual pictures independent of the processor. It should be noted that in general, picture processing coding is limited to a single picture17. In this case, only the inter prediction units 244 (encoder) and 344 (decoder) are available. All other functions (tools) of the video encoder 20 and the video decoder 30 may not be available. or techniques) include still picture processing, e.g., residual calculation 204 / 304, transformation 206, Quantization 208, inverse quantization 210 / 310, (inverse) transform 212 / 312, partitioning 262 / 362, intra prediction 254 / 354, and / or loop filtering 220, 320 and entropy coding 270 and and entropy decoding 304.

[0506] For example, the embodiments of the encoder 20 and the decoder 30, The functions described herein with reference to the decoder 30 may be implemented in hardware, software, or firmware. The present invention may be implemented in software, firmware, or any combination thereof. If so, the functionality may be represented as one or more instructions or code on a computer-readable medium. The data may be stored in a computer or transmitted over a communications medium and processed by a hardware-based processing unit. The computer-readable medium may be implemented by a tangible medium such as a data storage medium. In one embodiment, the communication protocol is implemented in accordance with a computer readable storage medium or Communication media, including any medium that facilitates the transfer of a computer program from one place to another In this form, the computer-readable medium generally includes: (1) a non-transitory (2) for a communication medium such as a signal or carrier wave The data storage medium may include instructions, commands, and the like for implementing the techniques described in this disclosure. one or more computers or is any available data that can be accessed by one or more processors. The computer program product may include a computer-readable medium. .

[0507] By way of example and not limitation, such computer readable storage media may include RAM, ROM, EEPROM, , CD-ROM, or other optical disk storage, magnetic disk storage, or other magnetic storage device , flash memory, or a memory device that stores desired program code in the form of instructions or data structures. can be used to store information and can be accessed by a computer. Any connection may include any other medium capable of communicating with a computer. For example, the instructions may be transmitted over a coaxial cable, a fiber optic cable, a twisted pair, digital subscriber line (DSL), or infrared, radio, and and use wireless technologies such as microwaves to transmit information to websites, servers, or other remote If transmitted from the source, it can be coaxial cable, fiber optic cable, twisted pair, DSL or wireless technologies such as infrared, radio, and microwave are included within the definition of the medium. However, computer-readable storage media and data storage media may be connected, carried, transmitted, or received by any or other transitory media, but may instead cover non-transitory tangible storage media. It should be understood that as used herein, disk and disc , compact disc (CD), laser disc (disc), optical disc (disc c), digital versatile disc (DVD), floppy disk (disk), and Blu-ray ( A disk is a device that typically stores data magnetically. The DVD player uses a laser to play back the data, while the disc player uses a laser to play back the data optically. Combinations of things should also be included within the scope of computer-readable media.

[0508] The instructions may be written to one or more digital signal processors (DSPs), general-purpose microprocessors, Application specific integrated circuits (ASICs), field programmable logic arrays (FPGAs), or other Executed by one or more processors, such as highly cost-effective integrated logic circuits or discrete logic circuits. Thus, the term "processor" as used herein refers to the above structure or It may refer to any other structure suitable for implementing the techniques described herein. In some aspects, the functionality described herein may include, for example, Delivered in dedicated hardware and / or software modules configured The techniques may also be incorporated into one or more It may be fully realized in circuits or logic elements.

[0509] The techniques of this disclosure may be implemented in a wireless handset, an integrated circuit (IC), or a set of ICs (e.g., The various components may be implemented in a wide variety of devices or apparatuses, including a computer-based system, a mobile device, a mobile phone, a tablet, a worktable, or a computer-based system. , a module, or a unit is a device configured to perform the disclosed techniques. Although described in this disclosure to emphasize the functional aspects of It does not necessarily require implementation by a single unit. Rather, it is possible to use a variety of units as described above. The units are combined in a codec hardware unit or as described above. A collection of interoperable hardware units, including one or more processors such as In some cases, the device may be provided with appropriate software and / or firmware. . [Explanation of symbols]

[0510] 10. Video Coding System 12 Source Device 13 Communication Channels 14 Destination Device 16 Picture Source 17 Picture, Picture Data, Raw Picture, Raw Picture Data 18 Preprocessor, preprocessing unit 19 Preprocessed Picture, Preprocessed Picture Data 20 Video Encoder 21 Encoded picture data 22 Communication interface, communication unit 28 Communication interface, communication unit 30 Video Decoder, Short Decoder 31 Decoded Picture, Decoded Picture Data 32 Post-processor, post-processing unit 33 Post-Processed Picture, Post-Processed Picture Data 34 Display Devices 46 Processing Circuit 201 Input, input interface 203 Picture Block 204 Residual Calculation Unit 205 Residual Blocks, Residual 206 Conversion Processing Unit 207 Conversion Factors 208 Quantization Units 209 Quantized Coefficients, Quantized Transform Coefficients, Quantized Residual Coefficients 210 Inverse Quantization Unit 211 Dequantized coefficients, inverse quantized residual coefficients 212 Inverse Transformation Processing Unit 213 Reconstructed residual block, corresponding dequantized coefficients, transform block 214 Reconstruction Unit 215 Reconstructed Blocks 220 Loop Filter Unit 221 Filtered Block, Filtered Reconstructed Block 230 Decoded Picture Buffer 231 Decoded Picture 244 Inter Prediction Units 254 intra prediction units 260 Mode Selection Unit 262 Division Unit 265 prediction block, predictor 266 Syntax Elements 270 Entropy Encoding Unit 272 Output, Output Interface 304 Entropy Decoding Unit 309 Quantized Coefficients 310 Inverse Quantization Unit 311 transform coefficients, dequantized coefficients 312 Inverse Transformation Processing Unit 313 Reconstructed residual block, transform block 314 Reconstruction Unit, Adder 315 Reconstructed Blocks 320 Loop Filter Unit 321 filtered blocks, decoded video blocks of a picture 330 Decoded Picture Buffer (DPB) 331 Decoded Picture 332 Output 344 Inter Prediction Units 354 intra prediction units 360 mode application unit 365 predicted blocks 400 Video Coding Device 410 inlet port, input port 420 Receiver Unit 430 Processors, Logic Units, Central Processing Units 440 Transmitter Unit 450 Exit port, output port 460 Memory 470 Coding Module 500 devices 502 processor 504 Memory 506 Code and Data 508 Operating Systems 510 Application Program 512 Bus 514 Secondary Storage 518 Display 1400 Decoding Device 1401 Receiver Module 1402 Parameter Process Module 1403 Mapping Module 1404 Prediction Module 3100 Contents Supply System 3102 Capture Device 3104 Communication Links 3106 Terminal Device 3108 Smartphone / Pad 3110 Computer / Laptop 3112 Network Video Recorder / Digital Video Recorder 3114 TV 3116 Set-top box 3118 Video Conference System 3120 Video Surveillance System 3122 Portable information terminals 3124 Vehicle-mounted devices 3126 Display 3202 Protocol Progression Unit 3204 Demultiplexing Unit 3206 Video Decoder 3208 Audio Decoder 3210 Subtitle Decoder 3212 Synchronous Unit 3214 Video / Audio Display 3216 Video / Audio / Subtitle Display

Claims

1. A method of coding performed by a decoding device, comprising: obtaining a video bitstream; decoding the video bitstream to obtain residual coefficients and values ​​of chroma format display information for a current coding block, the chroma format display information being sps_chroma_format_idc, the sps_chroma_format_idc specifying chroma sampling relative to luma sampling; obtaining an initial intra-prediction mode value for a chroma component of the current coding block based on at least one syntax value parsed from the video bitstream; when the sps_chroma_format_idc is equal to 2, obtaining mapped intra-prediction mode values ​​for chroma components of the current coding block according to a predefined mapping relationship and the initial intra-prediction mode value; obtaining a prediction block of the current coding block according to the mapped intra-prediction mode value; obtaining a reconstructed residual block based on the residual coefficients; obtaining a reconstructed block by adding the reconstructed residual block to the prediction block; Equipped with The following table is used to represent the predefined mapping relationship: 【Table 1】 is used, where mode X represents the initial intra-prediction mode values ​​and mode Y represents the mapped intra-prediction mode values.

2. The method of claim 1 , wherein when the sps_chroma_format_idc is 2, it represents that the chroma format is 4:2:

2.

3. The method of claim 1 or 2, wherein the at least one syntax value includes cclm_mode_flag and cclm_mode_idx.

4. 4. The method of claim 1, wherein the initial intra-prediction mode value for a chroma component of the current coding block is obtained based on the at least one syntax value parsed from the video bitstream and an intra-prediction mode for a luma component of the current coding block.

5. A decoder (30) comprising processing circuitry for carrying out the method according to any one of claims 1 to 4.

6. 1. A method of coding performed by an encoding device, comprising: obtaining an initial intra-prediction mode value for the current coding block based on the at least one syntax value; encoding the at least one syntax value into a video bitstream; encoding chroma format indication information for a current coding block into the video bitstream, the chroma format indication information being sps_chroma_format_idc, the sps_chroma_format_idc specifying chroma sampling relative to luma sampling; when the sps_chroma_format_idc is equal to 2, obtaining mapped intra-prediction mode values ​​for chroma components of the current coding block according to a predefined mapping relationship and the initial intra-prediction mode value; obtaining a prediction block of the current coding block according to the mapped intra-prediction mode value; obtaining a residual block based on the current coding block and the prediction block; obtaining residual coefficients based on the residual block; encoding the residual coefficients into the video bitstream; Equipped with The following table is used to represent the predefined mapping relationship: 【Table 2】 is used, where mode X represents the initial intra-prediction mode values ​​and mode Y represents the mapped intra-prediction mode values.

7. The method of claim 6, wherein when the sps_chroma_format_idc is 2, it represents that the chroma format is 4:2:

2.

8. The method of claim 6 or 7, wherein the at least one syntax value includes cclm_mode_flag and cclm_mode_idx.

9. 9. The method of claim 6, wherein the initial intra-prediction mode value for a chroma component of the current coding block is obtained based on the at least one syntax value and an intra-prediction mode for a luma component of the current coding block.

10. A computer program product comprising program code for carrying out the method according to any one of claims 1 to 4 and 6 to 9.

11. A decoder comprising: one or more processors; and a non-transitory computer-readable storage medium coupled to the processor and storing programming for execution by the processor, the programming, when executed by the processor, configuring the decoder to perform the method of any one of claims 1 to 4.

12. 1. An encoder comprising: one or more processors; and a non-transitory computer-readable storage medium coupled to the processor and storing programming for execution by the processor, the programming, when executed by the processor, configuring the encoder to perform the method of any one of claims 6 to 9.

13. A device for storing a bitstream, comprising at least one memory and at least one receiver, the at least one receiver configured to obtain one or more bitstreams; the at least one memory configured to store the one or more bitstreams; the bitstream includes a value of chroma format display information for a current coding block, the chroma format display information being sps_chroma_format_idc, the sps_chroma_format_idc specifying chroma sampling relative to luma sampling, the bitstream further including at least one syntax value used to cause an encoder or decoder to determine an initial intra-prediction mode value for a chroma component of the current coding block; When the sps_chroma_format_idc is equal to 2, the encoder or the decoder obtains a mapped intra-prediction mode value for a chroma component of the current coding block according to a default mapping relationship and the initial intra-prediction mode value; The following table is used to represent the predefined mapping relationship: 【Table 3】 is used, where mode X represents the initial intra-prediction mode values ​​and mode Y represents the mapped intra-prediction mode values.

14. The device of claim 13 , wherein the at least one syntax value includes cclm_mode_flag and cclm_mode_idx.

15. 1. A method for storing a bitstream, comprising: obtaining one or more bitstreams through at least one receiver; storing the bitstream in one or more storage devices, the bitstream including a value of chroma format display information for a current coding block, the chroma format display information being sps_chroma_format_idc, the sps_chroma_format_idc specifying chroma sampling relative to luma sampling, the bitstream further including at least one syntax value used to cause an encoder or decoder to determine an initial intra-prediction mode value for a chroma component of the current coding block; Equipped with When the sps_chroma_format_idc is equal to 2, the encoder or the decoder obtains a mapped intra-prediction mode value for a chroma component of the current coding block according to a default mapping relationship and the initial intra-prediction mode value; The following table is used to represent the predefined mapping relationship: 【Table 4】 is used, where mode X represents the initial intra-prediction mode values ​​and mode Y represents the mapped intra-prediction mode values.

16. The method of claim 15 , wherein the at least one syntax value includes cclm_mode_flag and cclm_mode_idx.

17. 1. A system for processing a bitstream, comprising: an encoding device; one or more storage devices; and a decoding device; the encoding device is configured to obtain a video signal and to encode the video signal to obtain one or more bitstreams, the bitstreams including a value of chroma format display information for a current coding block, the chroma format display information being sps_chroma_format_idc, the sps_chroma_format_idc specifying chroma sampling relative to luma sampling, the bitstream further including at least one syntax value used to cause an encoder or decoder to determine an initial intra-prediction mode value for a chroma component of the current coding block; When the sps_chroma_format_idc is equal to 2, the encoder or the decoder obtains a mapped intra-prediction mode value for a chroma component of the current coding block according to a default mapping relationship and the initial intra-prediction mode value; the one or more storage devices are used to store the one or more bitstreams; the decoding device is used to decode the one or more bitstreams; The following table is used to represent the predefined mapping relationship: 【Table 5】 is used, with mode X representing the initial intra-prediction mode values ​​and mode Y representing the mapped intra-prediction mode values.

18. 20. The system of claim 17, wherein the at least one syntax value includes cclm_mode_flag and cclm_mode_idx.

Citation Information

Patent Citations

  • Image encoder, image encoding method and image encoding program

    JP2013009102A

  • Method and device for chroma sample intra prediction in video coding system

    US20180241995A1

  • Coding Chroma Samples In Video Compression

    US20180332283A1

Cited By

  • Encoder, decoder, and corresponded method of chroma intra-mode derivation

    JP2025081317A