Method and apparatus for video coding

By selectively applying secondary transforms based on coefficient positions and block sizes, the method optimizes video encoding for improved compression and reduced bandwidth/storage requirements.

JP2025118891APending Publication Date: 2025-08-13TENCENT AMERICA LLC
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2025082014
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2020-04-02
Filing Date
2025-05-15
Publication Date
2025-08-13

AI Technical Summary

Technical Problem

Existing video encoding techniques face challenges in optimizing transform processes to achieve efficient compression while maintaining image quality, particularly in intra-coding and inter-coding methods, leading to suboptimal bandwidth and storage requirements.

Method used

The method involves determining whether to perform a secondary transform on coding blocks based on the position and size of non-zero transform coefficients, using thresholds and color format to decide on the necessity of a secondary transform, thereby optimizing the encoding process.

Benefits of technology

This approach enhances compression efficiency by reducing redundant data transmission and storage needs, improving encoding performance without compromising image quality.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025118891000001_ABST
    Figure 2025118891000001_ABST
Patent Text Reader

Abstract

To provide a method and an apparatus for video coding / decoding.SOLUTION: An apparatus 2200 decodes coded information of a coding unit (CU) from a coded video bitstream. The coded information indicates the last position of non-zero transform coefficients of a first coding block (CB) of the CU (S2210). The apparatus determines whether a secondary transform index is signaled in the coded information on the basis of the last position (S2220), and determines whether to execute secondary transform on a second CB on the basis of whether the secondary transform index is determined to be signaled in the coded information (S2230). When determining to execute the secondary transform, the apparatus executes the secondary transform on the second CB (S2240), and reconstructs the second CB. In response to determining not to execute the secondary transform, the apparatus reconstructs the second CB without executing the secondary transform on the second CB (S2250).SELECTED DRAWING: Figure 22
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application claims benefit of priority to U.S. Provisional Application No. 62 / 829,435, entitled "Modifications on the Secondary Transform," filed April 4, 2019, which claims benefit of priority to U.S. Provisional Application No. 16 / 838,755, entitled "Method and Apparatus for Video Coding," filed April 2, 2020. The entire disclosures of the prior applications are incorporated herein by reference in their entirety.

[0002] This disclosure describes embodiments generally related to video encoding. [Background technology]

[0003] The background art discussion provided herein is intended to generally present the context for the present disclosure. The inventors' work, to the extent that it is described in this background art section, and aspects of the description that may not be admitted as prior art at the time of filing, are not admitted expressly or implicitly as prior art to the present disclosure.

[0004] Video encoding and decoding can be performed using inter-image prediction with motion compensation. Uncompressed digital video may include a series of images, each having spatial dimensions of, for example, 1920 x 1080 luminance samples and associated chrominance samples. The series of images may have a fixed or variable image rate (also informally called a frame rate), for example, 60 images per second or 60 Hz. Uncompressed video has significant bitrate requirements. For example, 1080p60 4:2:0 video (1920 x 1080 luminance sample resolution at a 60 Hz frame rate) with 8 bits per sample requires a bandwidth approaching 1.5 Gbit / s. One hour of such video requires more than 600 GB of storage space.

[0005] One goal of video encoding and decoding can be to reduce redundancy in an input video signal through compression. Compression can help reduce the aforementioned bandwidth or storage requirements by two or more orders of magnitude, in some cases. Both lossless and lossy compression, as well as combinations of them, can be used. Lossless compression refers to techniques that allow an exact replica of the original signal to be reconstructed from a compressed version. When using lossy compression, the reconstructed signal may not be identical to the original signal, but the distortion between the original and reconstructed signal is small enough that the reconstructed signal is useful for the intended application. For video, lossy compression is widely adopted. The amount of acceptable distortion varies depending on the application. For example, users of certain consumer streaming applications may tolerate higher distortion than users of television distribution applications. The achievable compression ratio may reflect that higher tolerance / tolerance distortion results in higher compression ratios.

[0006] Video encoders and decoders can utilize techniques in several broad categories, such as motion compensation, transforms, quantization, and entropy coding.

[0007] Video coding techniques can include a technique known as intra-coding. In intra-coding, sample values are represented without reference to other data from samples or previously reconstructed reference images. In some video coding, images are spatially subdivided into blocks of samples. If all blocks of samples are coded in intra mode, the image may be an intra-image. Intra-images and their derivatives, such as independent decoder refresh images, can be used to reset the decoder state and thus can be used as the first image in a coded video bitstream and video session, or as still images. Samples in intra-blocks may be subjected to a transform, and the transform coefficients may be quantized before entropy coding. Intra-prediction can be a technique that minimizes sample values in the pre-transform domain. In some cases, the smaller the DC value and AC coefficients after the transform, the fewer bits required for a given quantization step size to represent the block after entropy coding.

[0008] Conventional intra-coding, such as that known from MPEG-2 generation coding techniques, does not use intra-prediction. However, some newer video compression techniques include techniques that rely on, for example, surrounding sample data and / or metadata obtained during the encoding / decoding of spatially adjacent and preceding blocks of data in decoding order. Such techniques are hereinafter referred to as "intra-prediction" techniques. Note that, at least in some cases, intra-prediction uses only reference data from the current picture being reconstructed, and not from reference pictures.

[0009] Intra-prediction can take many different forms. If two or more such techniques can be used in a given video coding technique, the technique in use can be coded as an intra-prediction mode. In some cases, a mode can have sub-modes and / or parameters, which can be coded separately or included in a mode codeword. Which codeword is used for a given mode / sub-mode / parameter combination can affect the coding efficiency gain via intra-prediction, and so can the entropy coding technique used to convert the codeword into a bitstream.

[0010] Certain modes of intra prediction were introduced in H.264, improved in H.265, and further refined in new coding techniques such as the Joint Search Model (JEM), Universal Video Coding (VVC), and Benchmark Set (BMS). Predictor blocks can be formed using neighboring sample values belonging to already available samples. The sample values of the neighboring samples are copied into the predictor block according to their direction. A reference to the direction in use can be coded in the bitstream or can be predicted itself.

[0011] Referring to FIG. 1A, shown at the bottom right is a subset of nine known predictor directions from the 33 possible predictor directions (corresponding to the 33 angle modes of the 35 intra modes) in H.265. The point where the arrows converge (101) represents the sample to be predicted. The arrows represent the direction from which the sample is predicted. For example, arrow (102) indicates that sample (101) is predicted from the sample to the upper right at an angle of 45 degrees from horizontal. Similarly, arrow (103) indicates that sample (101) is predicted from the sample to the lower left of sample (101) at an angle of 22.5 degrees from horizontal.

[0012] 1A, a square block (104) of 4x4 samples (shown in bold with dashed lines) is shown in the upper left. The square block (104) includes 16 samples, each labeled with an "S," along with its position in the Y dimension (e.g., row index) and its position in the X dimension (e.g., column index). For example, sample S21 is the second sample (from the top) in the Y dimension and the first sample (from the left) in the X dimension. Similarly, sample S44 is the fourth sample in both the Y and X dimensions of the block (104). Because the size of the block is 4x4 samples, S44 is located in the lower right. Reference samples are also shown, following a similar numbering scheme. The reference samples are labeled R, their Y position (e.g., row index), and their X position (column index) relative to the block (104). In both H.264 and H.265, predicted samples neighbor the block being reconstructed. Therefore, negative values need not be used.

[0013] Intra-image prediction can work by copying reference sample values from neighboring samples as appropriate according to the signaled prediction direction. For example, assume that the coded video bitstream includes signaling indicating a prediction direction consistent with the arrow (102) for this block, i.e., samples are predicted from the upper right predicted sample(s) at a 45-degree angle from horizontal. In that case, samples S41, S32, S23, and S14 are predicted from the same reference sample R05. And sample S44 is predicted from reference sample R08.

[0014] In certain cases, especially when the orientation is not evenly divisible by 45 degrees, the values of multiple reference samples can be combined, for example by interpolation, to calculate the reference sample.

[0015] The number of possible directions has increased as video coding technology has evolved. In H.264 (2003), nine different directions could be represented. This increased to 33 in H.265 (2013), and JEM / VVC / BMS, as of the time of this disclosure, can support up to 65 directions. Experiments have been conducted to identify the most likely directions, and specific techniques in entropy coding are used to represent those likely directions with a small number of bits, accepting a specific penalty for less likely directions. Furthermore, the direction itself may be predictable from neighboring directions used in adjacent, already decoded blocks.

[0016] FIG. 1B shows a schematic diagram (180) showing 65 intra-prediction directions with JEM to illustrate the increasing number of prediction directions over time.

[0017] The mapping of intra-prediction direction bits within a coded video bitstream to represent directions may vary between video coding techniques, ranging, for example, from simple direct mapping of prediction directions to complex adaptive schemes including intra-prediction modes, codewords, most likely modes, and similar techniques. However, in all cases, there may be certain directions that are statistically less likely to occur in video content than certain other directions. Because the goal of video compression is to reduce redundancy, in well-performing video coding techniques, these less likely directions are represented with more bits than more likely directions.

[0018] Video encoding and decoding can be performed using inter-image prediction with motion compensation. Motion compensation can be a lossy compression technique in which blocks of sample data from a previously reconstructed image or portion thereof (reference image) are spatially shifted in a direction indicated by a motion vector (hereinafter, MV) and then used to predict a newly reconstructed image or image portion. In some cases, the reference image may be the same as the image currently being reconstructed. The MV can have two dimensions, X and Y, or three dimensions, with the third dimension being a representation of the reference image in use (the latter can indirectly be a temporal dimension).

[0019] In some video compression techniques, the MV applicable to a particular region of sample data can be predicted from other MVs, for example, from an MV associated with another region of sample data that is spatially adjacent to the region being reconstructed and precedes that MV in decoding order. Doing so can substantially reduce the amount of data required to encode the MV, thereby eliminating redundancy and increasing compression. MV prediction can work effectively, for example, when encoding an input video signal derived from a camera (known as natural video), because there is a statistical likelihood that regions larger than the region to which a single MV is applicable will move in a similar direction and, therefore, in some cases, can be predicted using similar motion vectors derived from MVs in neighboring regions. This results in the MV found for a given region being similar or identical to the MV predicted from surrounding MVs, and after entropy coding, can be represented using fewer bits than would be used to directly encode the MV. In some cases, MV prediction can be an example of lossless compression of a signal (i.e., MV) derived from the original signal (i.e., sample stream). In other cases, MV prediction itself can be lossy, for example, due to rounding errors when calculating a predictor from several surrounding MVs.

[0020] H.265 / HEVC (ITU-T Rec. H.265, "High Efficiency Video Coding", December 2016) describes various MV prediction mechanisms. Here, we will explain a technique called "spatial merging" among the many MV prediction mechanisms provided by H.265.

[0021] Referring to Figure 2, the current block (201) contains samples found by the encoder during the motion search process to be predictable from a spatially shifted previous block of the same size. Instead of directly encoding its MV, the MV can be derived from metadata associated with one or more reference pictures, e.g., the most recent reference picture (in decoding order), using the MV associated with any one of five surrounding samples, denoted A0, A1, and B0, B1, B2 (202 to 206, respectively). In H.265, MV prediction can use predictors from the same reference picture as neighboring blocks. Summary of the Invention [Means for solving the problem]

[0022] Aspects of the present disclosure provide methods and apparatuses for video encoding / decoding. In some examples, the apparatus for video decoding includes a processing circuit. The processing circuit can decode coding information of a coding unit (CU) from a coded video bitstream. The coding information can indicate a last position of a non-zero transform coefficient of a first coding block (CB) of the CU. The processing circuit can determine whether a secondary transform index is signaled in the coding information based on the last position. The processing circuit can determine whether to perform a secondary transform on a second CB based on whether it is determined that a secondary transform index is signaled in the coding information. In response to determining that a secondary transform is performed, the processing circuit can perform a secondary transform on the second CB and reconstruct the second CB. In response to determining that a secondary transform is not performed, the processing circuit can reconstruct the second CB without performing a secondary transform on the second CB.

[0023] In one embodiment, the processing circuit may determine whether the horizontal component of the last position is less than a first threshold and the vertical component of the last position is less than a second threshold. In response to determining that the horizontal component is less than the first threshold and the vertical component is less than the second threshold, the processing circuit may determine that a secondary transform index is not signaled in the encoded information.

[0024] In one embodiment, the processing circuit may determine whether a sum of the horizontal and vertical components of the last position is less than a threshold. In response to determining that the sum is less than the threshold, the processing circuit may determine that a secondary transform index is not signaled in the encoded information.

[0025] In one embodiment, the processing circuit may determine whether a minimum component of (i) a horizontal component and (ii) a vertical component of the last position is less than a threshold value. In response to determining that the minimum component is less than the threshold value, the processing circuit may determine that a secondary transform index is not signaled in the encoding information.

[0026] In one embodiment, the processing circuit may determine whether a maximum component of (i) a horizontal component and (ii) a vertical component of the last position is less than a threshold value. In response to determining that the maximum component is less than the threshold value, the processing circuit may determine that a secondary transform index is not signaled in the encoding information.

[0027] In one embodiment, the first CB is a luminance block. The last position is the last luminance position of the luminance block. The processing circuit can determine whether a secondary transform index is signaled based on the last luminance position.

[0028] In one embodiment, the first CB is a luma block. The last position is the last luma position of the luma block. The CU further includes a chroma block. The coding information further indicates the last chroma position of a non-zero transform coefficient of the chroma block. The processing circuit can determine whether a secondary transform index is signaled based on the last luma position and the last chroma position.

[0029] In some examples, an apparatus for video decoding includes a processing circuit. The processing circuit can decode coding information of a coding unit (CU) from an encoded video bitstream. The coding information can indicate a size of the CU. The processing circuit can determine whether a secondary transform is allowed based on the size of the CU and a CU size threshold, where if the size of the CU is less than or equal to the CU size threshold, it is determined that the secondary transform is allowed, and if the size of the CU is greater than the CU size threshold, it is determined that the secondary transform is not allowed.

[0030] In one embodiment, the CU size threshold is the maximum size of a transform unit within a CU.

[0031] In one embodiment, if the size of the CU is less than or equal to a CU size threshold, the processing circuit can determine the number of non-zero transform coefficients of at least one CB in the CU, where the size of each of the at least one CB is greater than or equal to a first threshold. In response to the number of non-zero transform coefficients being less than a second threshold, the processing circuit can determine that a secondary transform index is not signaled in the encoding information. In one example, the encoding information indicates that the color format of the CU is YUV 4:2:0. The CU includes a luma block and two chroma blocks. The processing circuit can determine whether a first dimension of the luma block is 4 and a second dimension of the luma block is N, where N is greater than or equal to 4. In response to determining that the first and second dimensions are 4 and N, respectively, the processing circuit can determine the number of non-zero transform coefficients only from the luma blocks where at least one CB is the luma block.

[0032] In one embodiment, the encoding information indicates that the color format of the CU is YUV 4:2:2. The CU includes a luma block and two chroma blocks. The processing circuit may determine whether the size of the luma block is 4×N, where N is greater than or equal to 4. In response to determining that the size of the luma block is 4×N (N and 4 are the height and width of the luma block, respectively), the processing circuit may determine the number of non-zero transform coefficients from only the luma block. At least one CB is a luma block.

[0033] Aspects of the present disclosure also provide a non-transitory computer-readable medium storing instructions that, when executed by a computer, cause the computer to perform any of the methods for video decoding.

[0034] Further features, nature and various advantages of the disclosed subject matter will become more apparent from the following detailed description and accompanying drawings. [Brief explanation of the drawings]

[0035] [Figure 1A] FIG. 2 is a schematic diagram of an example subset of intra-prediction modes. [Figure 1B] FIG. 1 is a diagram of an exemplary intra-prediction direction. [Figure 2] FIG. 1 is a schematic diagram of a current block and its surrounding spatial merge candidates in one example. [Figure 3] FIG. 3 is a simplified block diagram schematic of a communication system (300) according to one embodiment. [Figure 4] FIG. 4 is a simplified block diagram schematic of a communication system (400) according to one embodiment. [Figure 5] FIG. 2 is a schematic diagram of a simplified block diagram of a decoder according to one embodiment. [Figure 6] FIG. 2 is a schematic diagram of a simplified block diagram of an encoder according to one embodiment. [Figure 7] FIG. 10 is a block diagram of an encoder according to another embodiment. [Figure 8] FIG. 10 is a block diagram of a decoder according to another embodiment. [Figure 9] FIG. 1 illustrates an example of a transform unit syntax according to one embodiment. [Figure 10A] 1 illustrates an example of a residual coding syntax according to one embodiment. [Figure 10B] 1 illustrates an example of a residual coding syntax according to one embodiment. [Figure 10C] 1 illustrates an example of a residual coding syntax according to one embodiment. [Figure 11A] 1 illustrates an example of a linear transformation according to one embodiment. [Figure 11B] 1 illustrates an example of a linear transformation according to one embodiment. [Figure 12A] 1 illustrates an example of a conversion process according to one embodiment. [Figure 12B] 1 illustrates an example of a conversion process according to one embodiment. [Figure 12C] 1 illustrates an example of a conversion process according to one embodiment. [Figure 12D]1 illustrates an example of a conversion process according to one embodiment. [Figure 12E] 1 illustrates an example of a conversion process according to one embodiment. [Figure 13] 13 illustrates an exemplary transform coding process (1300). [Figure 14] 14 illustrates an exemplary transform coding process (1400). [Figure 15A] An exemplary process for a contractive forward transform (1501) and an exemplary process for a contractive inverse transform (1502) are shown. [Figure 15B] 1 illustrates an example of a contractive quadratic transform according to some embodiments. [Figure 15C] 1 illustrates an example of a contractive quadratic transform according to some embodiments. [Figure 15D] An exemplary transform set selectable (1550) is shown. [Figure 16A] 1 shows a diagram of exemplary intra-prediction directions and intra-prediction modes according to one embodiment. [Figure 16B] 1 shows a diagram of exemplary intra-prediction directions and corresponding intra-prediction modes according to one embodiment. [Figure 17] 17 shows an example of four reference lines for a coding block (1710), according to one embodiment. [Figure 18] FIG. 10 illustrates a table associating several sub-partitions with block sizes, according to one embodiment. [Figure 19] An example of subpartitions for blocks of size 4x8 or 8x4 is shown below. [Figure 20] 10 shows another example of subpartitions of blocks having sizes larger than 4x8 and 8x4. [Figure 21A] Examples of different YUV formats are shown below. [Figure 21B] Examples of different YUV formats are shown below. [Figure 21C] Examples of different YUV formats are shown below. [Figure 21D] Examples of different YUV formats are shown below. [Figure 22]2 shows a flowchart outlining a process (2200) according to one embodiment. [Figure 23] 2 shows a flowchart outlining a process (2300) according to one embodiment. [Figure 24] FIG. 1 is a schematic diagram of a computer system according to one embodiment. DETAILED DESCRIPTION OF THE INVENTION

[0036] FIG. 3 illustrates a simplified block diagram of a communication system (300) according to an embodiment of the present disclosure. The communication system (300) includes multiple terminal devices capable of communicating with each other, for example, via a network (350). For example, the communication system (300) includes a first pair of terminal devices (310) and (320) interconnected via the network (350). In the example of FIG. 3, the first pair of terminal devices (310) and (320) perform unidirectional data transmission. For example, the terminal device (310) can encode video data (e.g., a stream of video images captured by the terminal device (310)) for transmission to another terminal device (320) via the network (350). The encoded video data can be transmitted in the form of one or more coded video bitstreams. The terminal device (320) can receive the coded video data from the network (350), decode the coded video data to reconstruct the video images, and display the video images according to the reconstructed video data. One-way data transmission may be common, such as in media serving applications.

[0037] In another example, the communication system (300) includes a second pair of terminal devices (330) and (340) that perform bidirectional transmission of encoded video data, such as may occur during a video conference. For the bidirectional transmission of data, in one example, each of the terminal devices (330) and (340) can encode video data (e.g., a stream of video images captured by the terminal device) for transmission to the other of the terminal devices (330) and (340) over the network (350). Each of the terminal devices (330) and (340) can also receive the encoded video data transmitted by the other of the terminal devices (330) and (340), decode the encoded video data to recover the video images, and display the video images on an accessible display device according to the recovered video data.

[0038] In the example of FIG. 3 , the terminal devices 310, 320, 330, and 340 may be depicted as a server, a personal computer, and a smartphone, although the principles of the present disclosure are not so limited. Embodiments of the present disclosure find application in laptop computers, tablet computers, media players, and / or dedicated videoconferencing equipment. Network 350 represents any number of networks that convey coded video data between the terminal devices 310, 320, 330, and 340, including, for example, wired (cabled) and / or wireless communication networks. The communication network 350 may exchange data over circuit-switched and / or packet-switched channels. Representative networks include telecommunications networks, local area networks, wide area networks, and / or the Internet. For purposes of this discussion, the architecture and topology of network 350 may not be important to the operation of the present disclosure, unless otherwise described herein.

[0039] 4 shows the arrangement of a video encoder and a video decoder in a streaming environment as an example of an application for the disclosed subject matter. The disclosed subject matter may be equally applicable to other video-enabled applications including, for example, video conferencing, digital TV, storage of compressed video on digital media including CDs, DVDs, memory sticks, etc.

[0040] The streaming system may include a capture subsystem (413), which may include a video source (401), such as a digital camera, that creates an uncompressed video sample stream (402). In one example, the video image stream (402) includes samples captured by the digital camera. The video image stream (402), shown as a thick line to emphasize its high data volume compared to the encoded video data (404) (or encoded video bitstream), may be processed by electronics (420) including a video encoder (403) coupled to the video source (401). The video encoder (403) may include hardware, software, or a combination thereof to enable or implement aspects of the disclosed subject matter, as described in more detail below. The encoded video data (404) (or encoded video bitstream (404)), shown as a thin line to emphasize its low data volume compared to the video image stream (402), may be stored on a streaming server (405) for future use. One or more streaming client subsystems, such as the client subsystems (406) and (408) of FIG. 4, can access the streaming server (405) to obtain copies (407) and (409) of the encoded video data (404). The client subsystem (406) can include a video decoder (410), for example, within an electronic device (430). The video decoder (410) decodes an input copy (407) of the encoded video data and creates an output stream (411) of video images that can be rendered on a display (412) (e.g., a display screen) or other rendering device (not shown). In some streaming systems, the encoded video data (404), (407), and (409) (e.g., a video bitstream) can be encoded according to a particular video encoding / compression standard. Examples of these standards include ITU-T Recommendation H.265. In one example, a video encoding standard under development is informally known as Universal Video Coding (VVC). The disclosed subject matter can be used in the context of VVC.

[0041] It should be noted that the electronics (420) and (430) may include other components (not shown). For example, the electronics (420) may include a video decoder (not shown), and the electronics (430) may also include a video encoder (not shown).

[0042] 5 shows a block diagram of a video decoder (510) according to an embodiment of the present disclosure. The video decoder (510) may be included in an electronic device (530). The electronic device (530) may include a receiver (531) (e.g., receiving circuitry). The video decoder (510) may be used in place of the video decoder (410) in the example of FIG. 4.

[0043] The receiver (531) can receive one or more coded video sequences to be decoded by the video decoder (510), and in the same or another embodiment, can receive one coded video sequence at a time, with the decoding of each coded video sequence being independent of the other coded video sequences. The coded video sequences can be received from a channel (501), which can be a hardware / software link to a storage device that stores the coded video data. The receiver (531) can receive the coded video data along with other data, such as coded audio data and / or auxiliary data streams, that can be forwarded to a respective using entity (not shown). The receiver (531) can separate the coded video sequences from other data. To combat network jitter, a buffer memory (515) can be coupled between the receiver (531) and the entropy decoder / parser (520) (hereinafter, "parser (520)"). In certain applications, the buffer memory (515) is part of the video decoder (510). In other cases, it may be external to the video decoder (510) (not shown). In still other cases, there may be a buffer memory (not shown) external to the video decoder (510), for example, to combat network jitter, and another buffer memory (515) internal to the video decoder (510), for example, to handle playback timing. If the receiver (531) is receiving data from a store-and-forward device with sufficient bandwidth and controllability, or from an isosynchronous network, the buffer memory (515) may not be needed or may be small. For use with best-effort packet networks such as the Internet, the buffer memory (515) may be needed, may be relatively large, advantageously adaptively sized, and may be implemented at least in part in an operating system or similar element (not shown) external to the video decoder (510).

[0044] The video decoder (510) may include a parser (520) for reconstructing symbols (521) from the coded video sequence. These symbol categories include information used to manage the operation of the video decoder (510) and, potentially, information for controlling a rendering device, such as a rendering device (512) (e.g., a display screen) that is not an integral part of the electronic device (530) but can be coupled to the electronic device (530), as shown in FIG. 5. The rendering device control information may be in the form of a supplemental enhancement information (SEI) message or a video usability information (VUI) parameter set fragment (not shown). The parser (520) can parse / entropy decode the received coded video sequence. The coding of the coded video sequence may follow a video coding technique or video coding standard and may follow various principles, including variable-length coding, Huffman coding, arithmetic coding with or without context-sensitivity, etc. The parser (520) can extract from the coded video sequence a set of subgroup parameters for at least one of the subgroups of pixels in the video decoder based on at least one parameter corresponding to the group. The subgroups may include groups of pictures (GOPs), images, tiles, slices, macroblocks, coding units (CUs), blocks, transform units (TUs), prediction units (PUs), etc. The parser (520) can also extract from the coded video sequence information such as transform coefficients, quantization parameter values, motion vectors, etc.

[0045] The parser (520) can perform entropy decoding / parsing operations on the video sequence received from the buffer memory (515) to create symbols (521).

[0046] The reconstruction of the symbols (521) may involve several different units, depending on the type of coded video image or portion thereof (e.g., inter- and intra-images, inter- and intra-blocks, etc.), and other factors. The units involved and how they are involved may be controlled by subgroup control information parsed from the coded video sequence by the parser (520). The flow of such subgroup control information between the parser (520) and the following units is not shown for clarity.

[0047] In addition to the functional blocks already mentioned, the video decoder (510) may be conceptually subdivided into several functional units, as described below. In an actual implementation operating under commercial constraints, many of these units may interact closely with each other and may be at least partially integrated with each other. However, for purposes of describing the disclosed subject matter, the following conceptual subdivision into functional units is appropriate.

[0048] The first unit is a scalar / inverse transform unit (551), which receives quantized transform coefficients as symbols (521) from the parser (520), as well as control information including the transform used, block size, quantization coefficients, quantization scaling matrix, etc. The scalar / inverse transform unit (551) may output blocks comprising sample values that may be input to an aggregator (555).

[0049] In some cases, the output samples of the scaler / inverse transform (551) may relate to intra-coded blocks, i.e., blocks that do not use prediction information from a previously reconstructed image but can use prediction information from a previously reconstructed portion of the current image. Such prediction information may be provided by an intra-image prediction unit (552). In some cases, the intra-image prediction unit (552) generates blocks of the same size and shape as the block being reconstructed using surrounding already reconstructed information fetched from a current (partially reconstructed) image buffer (558). The current image buffer (558), for example, buffers the partially reconstructed current image and / or the fully reconstructed current image. The aggregator (555) may add, on a sample-by-sample basis, the prediction information generated by the intra-prediction unit (552) to the output sample information provided by the scaler / inverse transform unit (551).

[0050] In other cases, the output samples of the scalar / inverse transform unit (551) may relate to an inter-coded, potentially motion-compensated block. In such cases, the motion-compensated prediction unit (553) may access a reference picture memory (557) to fetch samples used for prediction. After motion-compensating the fetched samples according to the symbols (521) associated with the block, these samples may be added by an aggregator (555) to the output of the scalar / inverse transform unit (551) to generate output sample information (in this case, referred to as residual samples or residual signals). The addresses in the reference picture memory (557) from which the motion-compensated prediction unit (553) fetches prediction samples may be controlled by motion vectors available to the motion-compensated prediction unit (553), for example, in the form of symbols (521) that may have X, Y, and reference picture components. Motion compensation may also include interpolation of sample values fetched from the reference picture memory (557) when sub-sample accurate motion vectors are used, motion vector prediction mechanisms, etc.

[0051] The output samples of the aggregator (555) may be subjected to various loop filtering techniques in the loop filter unit (556). Video compression techniques may include in-loop filtering techniques controlled by parameters contained in the coded video sequence (also referred to as coded video bitstream) and available to the loop filter unit (556) as symbols (521) from the parser (520), but may also be responsive to meta-information obtained during decoding of previous (in decoding order) parts of the coded image or coded video sequence, or to previously reconstructed and loop-filtered sample values.

[0052] The output of the loop filter unit (556) can be a sample stream that can be output to the rendering device (512) as well as stored in a reference picture memory (557) for use in future inter-picture prediction.

[0053] Once a particular coded image is fully reconstructed, it can be used as a reference image for future predictions. For example, once the coded image corresponding to the current image is fully reconstructed and the coded image is identified as a reference image (e.g., by the parser (520)), the current image buffer (558) can become part of the reference image memory (557), and a fresh current image buffer can be reallocated before starting reconstruction of the next coded image.

[0054] The video decoder (510) can perform decoding operations according to a predetermined video compression technique in a standard, such as ITU-T Rec. H.265. An encoded video sequence may conform to the syntax specified by the video compression technique or standard being used, in the sense that the encoded video sequence conforms to both the syntax of the video compression technique or standard and the profile documented in the video compression technique or standard. Specifically, a profile may select specific tools from all tools available in the video compression technique or standard as the only tools usable under that profile. Compliance also requires that the complexity of the encoded video sequence be within a range defined by the level of the video compression technique or standard. In some cases, the level imposes restrictions on the maximum picture size, maximum frame rate, maximum reconstruction sample rate (e.g., measured in megasamples per second), maximum reference picture size, etc. The restrictions set by the level may, in some cases, be further constrained by the specification of a hypothetical reference decoder (HRD) and HRD buffer management metadata signaled in the encoded video sequence.

[0055] In one embodiment, the receiver (531) can receive additional (redundant) data along with the encoded video. The additional data may be included as part of the encoded video sequence. The additional data may be used by the video decoder (510) to properly decode the data and / or more accurately reconstruct the original video data. The additional data may be in the form of, for example, temporal, spatial, or signal-to-noise ratio (SNR) enhancement layers, redundant slices, redundant images, forward error correction codes, etc.

[0056] 6 shows a functional block diagram of a video encoder (603) according to an embodiment of the present disclosure. The video encoder (603) is included in an electronic device (620). The electronic device (620) includes a transmitter (640) (e.g., a transmission circuit). The video encoder (603) can be used in place of the video encoder (403) in the example of FIG. 4.

[0057] The video encoder (603) can receive video samples from a video source (601) (not part of the electronics (620) in the example of FIG. 6) that can capture video images to be encoded by the video encoder (603). In another example, the video source (601) is part of the electronics (620).

[0058] The video source (601) may provide the source video sequence to be encoded by the video encoder (603) in the form of a digital video sample stream, which may be of any suitable bit depth (e.g., 8-bit, 10-bit, 12-bit, etc.), any color space (e.g., BT.601 YCrCB, RGB, etc.), and any suitable sampling structure (e.g., YCrCb 4:2:0, YCrCb 4:4:4). In a media serving system, the video source (601) may be a storage device that stores previously prepared video. In a video conferencing system, the video source (601) may be a camera that captures local image information as a video sequence. The video data may be provided as multiple individual images that, when viewed sequentially, create motion. The image itself may be organized as a spatial array of pixels, each of which may contain one or more samples, depending on the sampling structure, color space, etc., in use. Those skilled in the art will readily understand the relationship between pixels and samples. The following discussion will focus on samples.

[0059] According to one embodiment, the encoder (603) may encode and compress images of a source video sequence into a coded video sequence (643) in real time or under any other time constraints, as required by the application. Enforcing an appropriate coding rate is one function of the controller (650). In some embodiments, the controller (650) controls and is functionally coupled to other functional units, as described below. For clarity, coupling is not depicted. Parameters set by the controller (650) may include rate control-related parameters (e.g., picture skip, quantization, lambda value for rate-distortion optimization techniques), picture size, group of pictures (GOP) layout, maximum motion vector search range, etc. The controller (650) may be configured to have other appropriate functions for the video encoder (603) optimized for a particular system design.

[0060] In some embodiments, the video encoder (603) is configured to operate in a coding loop. As an overly simplified explanation, in one example, the coding loop can include a source encoder (630) (e.g., responsible for generating symbols, such as a symbol stream, based on an input image to be coded and a reference image) and a (local) decoder (633) embedded in the video encoder (603). The decoder (633) reconstructs the symbols to create sample data in a manner similar to that of the (remote) decoder (since any compression between the symbols and the coded video bitstream is lossless in the video compression techniques considered in the disclosed subject matter). The reconstructed sample stream (sample data) is input to a reference image memory (634). Because decoding of the symbol stream yields bit-accurate results regardless of the decoder's location (local or remote), the contents of the reference image memory (634) are also bit-accurate between the local encoder and the remote encoder. In other words, the prediction part of the encoder "sees" as samples in the reference image the exact same sample values that the decoder "sees" when using the prediction during decoding. This basic principle of reference image synchrony (and the drift that occurs when synchrony cannot be maintained, e.g., due to channel errors) is also used in several related technologies.

[0061] The operation of the "local" decoder (633) may be the same as that of a "remote" decoder, such as the video decoder (510), which has already been described in detail above in connection with Figure 5. However, with brief reference also to Figure 5, because symbols are available and the encoding / decoding of the symbols into an encoded video sequence by the entropy coder (645) and parser (520) may be lossless, the buffer memory (515) and entropy decoding portion of the video decoder (510), including the parser (520), may not be fully implemented in the local decoder (633).

[0062] An observation that can be made at this point is that any decoder techniques other than parsing / entropy decoding present in a decoder must necessarily be present in the corresponding encoder in substantially identical functional form. For this reason, the disclosed subject matter focuses on the operation of the decoder. A description of the encoder techniques can be omitted, as they are the reverse of the decoder techniques described generically. Only in certain areas is more detailed description necessary, which is provided below.

[0063] In some examples, during operation, the source encoder (630) may perform motion-compensated predictive encoding, which predictively encodes an input image with reference to one or more previously encoded images from a video sequence designated as “reference images.” In this manner, the encoding engine (632) encodes differences between pixel blocks of the input image and pixel blocks of reference images that may be selected as predictive references for the input image.

[0064] The local video decoder (633) may decode the coded video data of an image that may be designated as a reference image based on the symbols created by the source encoder (630). The operation of the coding engine (632) may advantageously be a lossy process. When the coded video data is decoded by a video decoder (not shown in FIG. 6), the reconstructed video sequence may be a replica of the source video sequence, typically with some errors. The local video decoder (633) may replicate the decoding process that may be performed by the video decoder on the reference image and store the reconstructed reference image in a reference image cache (634). In this way, the video encoder (603) may locally store a replica of a reconstructed reference image that has common content as a reconstructed reference image (without transmission errors) obtained by a far-end video decoder.

[0065] The predictor (635) may perform the prediction search for the coding engine (632). That is, for a new image to be coded, the predictor (635) may search the reference image memory (634) for specific metadata that serve as suitable prediction references for the new image, such as sample data (as candidate reference pixel blocks) or reference image motion vectors, block shapes, etc. The predictor (635) may operate on a sample block-pixel block basis to find suitable prediction references. In some cases, as determined by the search results obtained by the predictor (635), the input image may have prediction references drawn from multiple reference images stored in the reference image memory (634).

[0066] The controller (650) may manage the encoding operations of the source encoder (630), including, for example, setting parameters and subgroup parameters used to encode the video data.

[0067] The output of all of the aforementioned functional units may undergo entropy coding in an entropy coder (645), which converts the symbols produced by the various functional units into a coded video sequence by losslessly compressing the symbols according to techniques such as Huffman coding, variable length coding, arithmetic coding, etc.

[0068] The transmitter (640) may buffer the encoded video sequence created by the entropy encoder (645) and prepare it for transmission over a communication channel (660), which may be a hardware / software link to a storage device that stores the encoded video data. The transmitter (640) may merge the encoded video data from the video encoder (603) with other data to be transmitted, such as encoded audio data and / or auxiliary data streams (sources not shown).

[0069] The controller (650) may manage the operation of the video encoder (603). During encoding, the controller (650) may assign a particular encoded image type to each encoded image, which may affect the encoding technique that may be applied to the respective image. For example, in many cases, images may be assigned as one of the following image types:

[0070] An intra-picture (I-picture) is one that can be coded and decoded without using other pictures in the sequence as a source of prediction. Some video coding can use different types of intra-pictures, such as Independent Decoder Refresh ("IDR") pictures. Those skilled in the art are aware of these variations of I-pictures and their respective uses and characteristics.

[0071] A predicted image (P-image) may be one that can be coded and decoded using intra- or inter-prediction, which uses at most one motion vector and reference index to predict the sample values of each block.

[0072] Bidirectionally predicted images (B-images) may be those that can be coded and decoded using intra- or inter-prediction, which uses up to two motion vectors and reference indices to predict the sample values of each block. Similarly, multiple predicted images can use more than two reference images and associated metadata to reconstruct a single block.

[0073] A source image is typically spatially subdivided into multiple sample blocks (e.g., blocks of 4x4, 8x8, 4x8, or 16x16 samples each) and may be coded block by block. Blocks may be predictively coded with reference to other (already coded) blocks, as determined by the coding assignment applied to each image of the block. For example, blocks of an I image may be non-predictively coded, or they may be predictively coded with reference to previously coded blocks of the same image (spatial prediction or intra-prediction). Pixel blocks of a P image may be predictively coded via spatial prediction or via temporal prediction with reference to one previously coded reference image. Blocks of a B image may be predictively coded via spatial prediction or via temporal prediction with reference to one or two previously coded reference images.

[0074] The video encoder (603) may perform encoding operations according to a predetermined video encoding technique or standard, such as ITU-T Rec. H.265. In its operations, the video encoder (603) may perform various compression operations, including predictive encoding operations that exploit temporal and spatial redundancy in the input video sequence. Thus, the encoded video data may conform to a syntax specified by the video encoding technique or standard being used.

[0075] In one embodiment, the transmitter (640) may transmit additional data along with the encoded video. The source encoder (630) may include such data as part of the encoded video sequence. The additional data may include temporal / spatial / SNR enhancement layers, other forms of redundant data such as redundant pictures and slices, SEI messages, VUI parameter set fragments, etc.

[0076] A video may be captured as multiple source images (video images) in time sequence. Intra-image prediction (often abbreviated as intra-prediction) exploits spatial correlation within a given image, while inter-image prediction exploits correlation (temporal or otherwise) between images. In one example, a particular image being encoded / decoded, called the current image, is divided into blocks. When a block in the current image is similar to a reference block in a previously encoded and still buffered reference image in the video, the block in the current image can be coded by a vector called a motion vector. The motion vector points to a reference block in the reference image and may have a third dimension that identifies the reference image if multiple reference images are used.

[0077] In some embodiments, bi-prediction techniques can be used for inter-image prediction. According to bi-prediction techniques, two reference images, such as a first reference image and a second reference image, are used, both of which are before the decoding order of the current image in the video (although their display orders may be past and future, respectively). A block in the current image can be coded by a first motion vector pointing to a first reference block in the first reference image and a second motion vector pointing to a second reference block in the second reference image. A block can be predicted by a combination of the first reference block and the second reference block.

[0078] Furthermore, merge mode techniques can be used for inter-image prediction to improve coding efficiency.

[0079] According to some embodiments of the present disclosure, prediction, such as inter-image prediction and intra-image prediction, is performed block-by-block. For example, according to the HEVC standard, images in a sequence of video images are divided into coding tree units (CTUs) for compression, and the CTUs in an image have the same size, such as 64x64 pixels, 32x32 pixels, or 16x16 pixels. Generally, a CTU includes three coding tree blocks (CTBs), one luma CTB and two chroma CTBs. Each CTU can be recursively quadtree-decomposed into one or more coding units (CUs). For example, a 64x64 pixel CTU can be divided into one CU of 64x64 pixels, four CUs of 32x32 pixels, or 16 CUs of 16x16 pixels. In one example, each CU is analyzed to determine the prediction type of the CU, such as inter-prediction type or intra-prediction type. The CU is divided into one or more prediction units (PUs) according to temporal and / or spatial predictability. Generally, each PU includes a luma prediction block (PB) and two chroma PBs. In one embodiment, prediction operations in coding (encoding / decoding) are performed in units of prediction blocks. Taking a luma prediction block as an example of a prediction block, the prediction block includes a matrix of pixel values (e.g., luma values) of 8x8 pixels, 16x16 pixels, 8x16 pixels, 16x8 pixels, etc.

[0080] 7 shows a diagram of a video encoder (703) according to another embodiment of the present disclosure. The video encoder (703) is configured to receive a processed block (e.g., a predictive block) of sample values in a current video image in a sequence of video images and to encode the processed block into an encoded image that is part of the encoded video sequence. In one example, the video encoder (703) is used in place of the video encoder (403) of the example of FIG. 4.

[0081] In an HEVC example, the video encoder (703) receives a matrix of sample values for a processing block, such as a predictive block of 8x8 samples. The video encoder (703) determines whether the processing block is best coded using intra-mode, inter-mode, or bi-predictive mode, for example, using rate-distortion optimization. If the processing block is coded in intra-mode, the video encoder (703) may use intra-prediction techniques to code the processing block into a coded image. When the processing block is to be coded in inter-mode or bi-predictive mode, the video encoder (703) may use inter-prediction or bi-prediction techniques, respectively, to code the processing block into a coded image. In certain video coding techniques, merge mode may be an inter-image prediction submode in which motion vectors are derived from one or more motion vector predictors without the benefit of coded motion vector components outside the predictors. In certain other video coding techniques, there may be motion vector components applicable to the current block. In one example, the video encoder (703) includes other components, such as a mode determination module (not shown) for determining the mode of the processing block.

[0082] In the example of Figure 7, the video encoder (703) includes an inter encoder (730), an intra encoder (722), a residual calculator (723), a switch (726), a residual encoder (724), a general controller (721), and an entropy encoder (725), coupled together as shown in Figure 7.

[0083] The inter-encoder (730) is configured to receive samples of a current block (e.g., a processing block), compare the block with one or more reference blocks in reference images (e.g., blocks in previous and subsequent images), generate inter-prediction information (e.g., a description of redundant information through inter-coding techniques, motion vectors, merge mode information), and calculate an inter-prediction result (e.g., a predicted block) based on the inter-prediction information using any suitable technique. In some examples, the reference image is a decoded reference image that is decoded based on the coded video information.

[0084] The intra-encoder (722) is configured to receive samples of a current block (e.g., a processing block), optionally compare the block with blocks already coded in the same image, generate quantized coefficients after transformation, and optionally also generate intra-prediction information (e.g., intra-prediction direction information according to one or more intra-coding techniques). In one example, the intra-encoder (722) calculates an intra-prediction result (e.g., a prediction block) based on the intra-prediction information and a reference block in the same image.

[0085] The general-purpose controller (721) is configured to determine general-purpose control data and control other components of the video encoder (703) based on the general-purpose control data. In one example, the general-purpose controller (721) determines the mode of a block and provides a control signal to the switch (726) based on the mode. For example, if the mode is intra-mode, the general-purpose controller (721) controls the switch (726) to select an intra-mode result for the residual calculator (723) to use, and controls the entropy encoder (725) to select intra-prediction information for inclusion in the bitstream. If the mode is inter-mode, the general-purpose controller (721) controls the switch (726) to select an inter-prediction result for the residual calculator (723) to use, and controls the entropy encoder (725) to select inter-prediction information for inclusion in the bitstream.

[0086] The residual calculator (723) calculates the difference (residual data) between the received block and a prediction result selected from the intra-encoder (722) or inter-encoder (730). The residual encoder (724) is configured to operate on the residual data to encode the residual data to generate transform coefficients. In one example, the residual encoder (724) is configured to transform the residual data from the spatial domain to the frequency domain to generate transform coefficients. The transform coefficients then undergo a quantization process to obtain quantized transform coefficients. In various embodiments, the video encoder (703) also includes a residual decoder (728). The residual decoder (728) is configured to perform an inverse transform and generate decoded residual data. The decoded residual data is suitable for use in the intra-encoder (722) and the inter-encoder (730). For example, the inter-encoder (730) may generate decoded blocks based on the decoded residual data and inter-prediction information, and the intra-encoder (722) may generate decoded blocks based on the decoded residual data and intra-prediction information. In some examples, the decoded blocks may be appropriately processed to generate a decoded image, which may be buffered in a memory circuit (not shown) and used as a reference image.

[0087] The entropy encoder (725) is configured to format the bitstream to include the coded block. The entropy encoder (725) is configured to include various information in accordance with an appropriate standard, such as the HEVC standard. In one example, the entropy encoder (725) is configured to include general control data, selected prediction information (e.g., intra-prediction information or inter-prediction information), residual information, and other appropriate information in the bitstream. Note that, according to the disclosed subject matter, when coding a block in a merged sub-mode of either an inter-mode or a bi-prediction mode, no residual information is present.

[0088] 8 shows a diagram of a video decoder (810) according to another embodiment of the present disclosure. The video decoder (810) is configured to receive coded images that are part of a coded video sequence and decode the coded images to generate reconstructed images. In one example, the video decoder (810) is used in place of the video decoder (410) of the example of FIG. 4.

[0089] In the example of Figure 8, the video decoder (810) includes an entropy decoder (871), an inter decoder (880), a residual decoder (873), a reconstruction module (874), and an intra decoder (872), which are coupled together as shown in Figure 8.

[0090] The entropy decoder (871) may be configured to reconstruct, from the coded image, specific symbols representing the syntax elements of which the coded image is composed. Such symbols may include, for example, prediction information (e.g., intra-prediction information, inter-prediction information, etc.) that can identify the mode in which the block is coded (e.g., intra-mode, inter-mode, bi-prediction mode, the latter two being merged or separate submodes), specific samples or metadata used for prediction by the intra decoder (872) or inter decoder (880), respectively, residual information, e.g., in the form of quantized transform coefficients, etc. In one example, if the prediction mode is an inter-prediction mode or a bi-prediction mode, the inter-prediction information is provided to the inter decoder (880). If the prediction type is an intra-prediction type, the intra-prediction information is provided to the intra decoder (872). The residual information may undergo inverse quantization and be provided to the residual decoder (873).

[0091] The inter decoder (880) is configured to receive the inter prediction information and to generate inter prediction results based on the inter prediction information.

[0092] The intra decoder (872) is configured to receive intra prediction information and to generate a prediction result based on the intra prediction information.

[0093] The residual decoder (873) is configured to perform inverse quantization to extract dequantized transform coefficients and process the dequantized transform coefficients to transform the residual from the frequency domain to the spatial domain. The residual decoder (873) may also require certain control information (to include quantizer parameters (QP)), which may be provided by the entropy decoder (871) (the data path not shown may be low volume control information only).

[0094] The reconstruction module (874) is configured to combine, in the spatial domain, the residual as output by the residual decoder (873) and the prediction result (possibly as output by an inter- or intra-prediction module) to form a reconstructed block that may be part of a reconstructed image, which may be part of a reconstructed video. It should be noted that other suitable operations, such as a deblocking operation, may be performed to improve visual quality.

[0095] It should be noted that the video encoders (403), (603), and (703) and the video decoders (410), (510), and (810) may be implemented using any suitable technology. In one embodiment, the video encoders (403), (603), and (703) and the video decoders (410), (510), and (810) may be implemented using one or more integrated circuits. In another embodiment, the video encoders (403), (603), and (603) and the video decoders (410), (510), and (810) may be implemented using one or more processors executing software instructions.

[0096] Aspects of the present disclosure relate to modifying quadratic transforms, such as performing an inverse quadratic transform.

[0097] In some embodiments, such as HEVC, the primary transform may include 4-point, 8-point, 16-point, and 32-point Discrete Cosine Transform (DCT) Type 2 (DCT-2), and the transform core matrix may be represented using 8-bit integers (i.e., 8-bit transform cores). The transform core matrix of a smaller DCT-2 is a subset of the transform core matrix of a larger DCT-2, as shown in Appendix I.

[0098] The DCT-2 core matrix exhibits symmetry / anti-symmetry properties, so a "partial butterfly" implementation may be supported to reduce the operation count (e.g., multiplications, additions, subtractions, shifts, etc.), and the same result of a matrix multiplication can be obtained using a partial butterfly.

[0099] In some embodiments, such as VVC, in addition to the 4-point, 8-point, 16-point, and 32-point DCT-2 transforms described above, additional 2-point and 64-point DCT-2s may also be included. An example of a 64-point DCT-2 core, such as that used in VVC, is shown in Appendix II as a 64x64 matrix.

[0100] In addition to DCT-2 and 4x4 DST-7 as used in HEVC, the adaptive multiple transform (AMT) (also known as enhanced multiple transform (EMT) or multiple transform selection (MTS)) scheme can be used in VVC for residual coding of both inter-coded and intra-coded blocks. The AMT scheme can use multiple selected transforms from the DCT / DST family other than the current transforms in HEVC. The newly introduced transform matrices are DST-7 and DCT-8. Table 1 shows examples of selected DST / DCT basis functions for an N-point input.

[0101] [Table 1]

[0102] Linear transform matrices, such as those used in VVC, may be used in 8-bit representations. AMT applies transform matrices to CUs whose width and height are both 32 or less. Whether AMT is applied may be controlled by a flag (e.g., mts_flag). When mts_flag is equal to 0, in some examples, only DCT-2 is applied to the coded residual data. When mts_flag is equal to 1, an index (e.g., mts_idx) may be further signaled using two bins to identify the horizontal and vertical transforms to be used according to Table 2, where a type value of 1 means that DCT-7 is used and a type value of 2 means that DCT-8 is used. In Table 2, the specifications of trTypeHor and trTypeVer depend on mts_idx[x][y][cIdx].

[0103] [Table 2]

[0104] In some embodiments, implicit MTS may be applied when the above signaling-based MTS (i.e., explicit MTS) is not used. In implicit MTS, transform selection is performed according to block width and height instead of signaling. For example, in implicit MTS, DST-7 is selected for the short side of an MxN block (i.e., the smallest of M and N), and DCT-2 is selected for the long side of the block (i.e., the largest of M and N).

[0105] Exemplary transform cores for DST-7 and DCT-8, each a matrix of basis vectors, are shown in Appendix III.

[0106] In some examples, such as VVC, if both the height and width of the coding block are less than or equal to 64, the TB size is the same as the coding block size. If either the height or width of the coding block is greater than 64, when performing a transform (such as an inverse transform or an inverse linear transform) or intra prediction, the coding block is further divided into multiple sub-blocks, each with a width and height less than or equal to 64. One transform can be performed on each sub-block.

[0107] The relevant syntax and semantics of MTS in some examples in VVC can be explained below in Figure 9 and Figures 10A-10C (highlighted using gray). Figure 9 shows an example of a transform unit syntax. Figures 10A-10C show an example of a residual coding syntax.

[0108] Examples of transform unit semantics are shown below: cu_mts_flag[x0][y0] equal to 1 specifies that multiple transform selections are applied to the residual samples of the associated luma transform block. cu_mts_flag[x0][y0] equal to 0 specifies that multiple transform selections are not applied to the residual samples of the associated luma transform block. The array indices x0, y0 specify the position (x0, y0) of the top-left luma sample of the considered transform block relative to the top-left luma sample of the image. If cu_mts_flag[x0][y0] is not present, it is inferred to be equal to 0.

[0109] An example of residual coding semantics is shown below: mts_idx[x0][y0] specifies which transform kernel is applied to the luma residual samples along the horizontal and vertical directions of the current transform block. The array index x0, y0 specifies the position (x0, y0) of the top-left luma sample of the considered transform block relative to the top-left luma sample of the image. If mts_idx[x0][y0] is not present, it is inferred to be equal to -1.

[0110] 11A shows an exemplary forward transform (also called a forward primary transform) performed by the encoder. The forward transform can include a forward horizontal transform and a forward vertical transform. First, a residual block (1110) having residual data is subjected to a forward horizontal transform to obtain an intermediate block. Then, a forward vertical transform is applied to the intermediate block to obtain a coefficient block (1112) having transform coefficients.

[0111] FIG. 11B shows an exemplary inverse transform (also called an inverse linear transform or inverse transform) performed by a decoder. Generally speaking, the inverse transform coincides with the forward transform. The inverse linear transform may include an inverse linear horizontal transform (also called an inverse horizontal transform) and an inverse linear vertical transform (also called an inverse vertical transform). To match the forward transform, the inverse transform switches the order in which the horizontal and vertical inverse transforms are applied. Thus, to obtain an intermediate block, an inverse vertical transform is first applied to the coefficient block (1122). Subsequently, the intermediate block is subjected to an inverse horizontal transform to obtain a residual block (1120).

[0112] A linear transform can refer to a forward linear transform or an inverse linear transform. A horizontal transform can refer to an inverse horizontal transform or a forward horizontal transform. Similarly, a vertical transform can refer to an inverse vertical transform or a forward vertical transform.

[0113] In an example such as VVC, at the decoder, the inverse vertical linear transform is performed first, and then the inverse horizontal linear transform is performed second after applying the inverse vertical transform, as shown in Figures 12A-12E with the gray highlighted text. Figures 12A-12E show an example of a transform process, e.g., for scaled transform coefficients. The gray highlighted text is shown in Figure 12E.

[0114] In one embodiment, a mode-dependent non-separable secondary transform (NSST) can be used between the forward core transform and quantization at the encoder side, and between the inverse quantization and inverse core transform at the decoder side. For example, to maintain low complexity, the NSST is applied to the low-frequency coefficients after the primary transform (or core transform). When both the width (W) and height (H) of a transform coefficient block are equal to or greater than 8, an 8x8 NSST is applied to the top-left 8x8 region of the transform coefficient block. Otherwise, when either the width W or the height H of the transform coefficient block is 4, a 4x4 NSST is applied, and the 4x4 NSST is performed on the top-left min(8,W) x min(8,H) region of the transform coefficient block. The above transform selection method is applied to both luma and chroma components.

[0115] The matrix multiplication implementation of NSST is explained as follows using a 4x4 input block as an example. A 4x4 input block X is expressed as

number

[0116] The input block X is the vector in Eq.

number

number

number

number

number

[0117] In one example, 35x3 non-separable secondary transforms are available for both 4x4 and 8x8 block sizes, where 35 is the number of transform sets associated with the intra prediction modes and 3 is the number of NSST candidates for each intra prediction mode. Table 3 shows an example mapping from intra prediction modes to their respective transform sets. The transform set applied to the luma / chroma transform coefficients is specified by the corresponding luma / chroma intra prediction mode according to Table 3, which shows the mapping from intra prediction mode to transform set index. For intra prediction modes greater than 34 corresponding to diagonal prediction directions, the transform coefficient blocks are transposed before / after NSST at the encoder / decoder, respectively.

[0118] For each transform set, the selected NSST candidate can be further specified by an explicitly signaled CU-level NSST index. The CU-level NSST index is signaled in the bitstream for each intra-coded CU after the transform coefficients, and truncated unary binarization is used for the CU-level NSST index. For example, the truncation value is 2 in planar or DC mode and 3 in angular intra prediction mode. In one example, the CU-level NSST index is signaled only if the CU has multiple non-zero coefficients. The default value is 0, which indicates that it is not signaled and NSST is not applied to the CU. Each of the values 1 to 3 indicates which NSST candidate from the transform set is applied to the CU.

[0119] [Table 3]

[0120] In some embodiments, NSST is not applied to blocks coded in transform skip mode. When a CU-level NSST index is signaled for a CU and is not equal to 0, NSST is not used for blocks coded in transform skip mode within the CU. When a CU with all component blocks is coded in transform skip mode or the number of non-zero coefficients in non-transform skip mode CB is less than 2, a CU-level NSST index is not signaled for the CU.

[0121] In some embodiments, a variant of NSST, such as reduced size transform (RST), is used. RST uses a transform zero-out scheme. In one example, in RST, whether the intra prediction mode is planar or DC is checked to entropy code the transform index of NSST.

[0122] In one example, four transform sets are applied, each transform set including three RST transform cores. The RST transform cores can have a size of 16x48 (or 16x64) (applied to transform coefficient blocks whose height and width are both 8 or greater) or 16x16 (applied to transform coefficient blocks whose height or width is either 4). For convenience of notation, a 16x48 (or 16x64) transform is denoted as RST 8x8, and a 16x16 transform is denoted as RST 4x4.

[0123] Figures 13 and 14 show examples of two transform coding processes (1300) and (1400), respectively, using a 16x64 transform (or a 64x16 transform, depending on whether the transform is a forward quadratic or inverse quadratic transform) and a 16x48 transform (or a 48x16 transform, depending on whether the transform is a forward quadratic or inverse quadratic transform). Referring to Figure 13, in process (1300), the encoder side may first perform a forward linear transform (1310) over the residual block to obtain a coefficient block (1313). Subsequently, a forward quadratic transform (1312) may be applied to the coefficient block (1313). In the forward quadratic transform (1312), the 64 coefficients of the 4x4 sub-blocks A through D in the upper left corner of the coefficient block (1313) can be represented by a 64-length vector, which can be multiplied by a 64x16 transform matrix (i.e., 64 width and 16 height), resulting in a 16-length vector according to equation (2). The elements in the 16-length vector are backfilled (1313) into the 4x4 sub-block A in the upper left corner of the coefficient block. The coefficients in sub-blocks B through D can be zero. The coefficients obtained after the forward quadratic transform (1312) are then quantized in step (1314) and entropy coded to generate coded bits in the bitstream (1316).

[0124] The coded bits are received at the decoder side, entropy decoded, and then inverse quantized (1324) to generate a coefficient block (1323). An inverse secondary transform (1322), such as an inverse RST 8x8, can be performed to obtain, for example, 64 coefficients from the 16 coefficients of the upper-left 4x4 sub-block E. The 64 coefficients can then be backfilled into 4x4 sub-blocks E-H. The coefficients in the coefficient block (1323) after the inverse secondary transform (1322) can then be processed with an inverse primary transform (1320) to obtain a reconstructed residual block.

[0125] The process (1400) of the example in FIG. 14 is the same as the process (1300), except that fewer coefficients (i.e., 48) are processed during the forward secondary transformation (1412). Specifically, the 48 coefficients within sub-blocks A to C are processed with a smaller transformation matrix of size 48×16. By using a smaller transformation matrix of 48×16, the memory size for storing the transformation matrix and the number of calculations (e.g., multiplications, additions, subtractions, etc.) can be reduced, and thus the complexity of the calculation can be reduced.

[0126] The reduction transformation (RT) (also called RST) can map an N-dimensional vector to an R-dimensional vector in a different space, where R / N (R < N) is the reduction factor.

[0127] The RST (or RT) matrix is an R×N matrix as follows.

Number

[0128] FIG. 15A shows the process of the forward reduction transformation (1501) and the process of the inverse reduction transformation (1502). T represents the RST transformation matrix with dimensions of RxN, and T T represents the transpose matrix of T, and T T has dimensions of NxR.

[0129] RST 8x8 can achieve a reduction ratio of 4 (1 / 4 size). For example, a 16x64 direct matrix can be used instead of the traditional 8x8 non-separable transform matrix size of 64x64. A 64x16 inverse RST matrix can be used at the decoder side to generate core (primary) transform coefficients in the top-left region of the 8x8. Forward RST 8x8 uses 16x64 (or 8x64 for 8x8 blocks) matrices such that the forward RST 8x8 generates non-zero coefficients only in the top-left 4x4 region within a given 8x8 top-left region. In other words, when RST is applied, the area of the top-left region of the 8x8 outside the top-left 4x4 region has only zero coefficients. For RST 4x4, a 16x16 (or 8x16 for 4x4 blocks) direct matrix multiplication can be applied.

[0130] Additionally, for the RST 8x8, to further reduce the transform matrix size, instead of using the entire top-left 8x8 coefficients of the residual block (1510) (64 coefficients in the shaded sub-block in Figure 15B) as the input for computing the secondary transform, the top-left three 4x4 sub-block coefficients of the residual block (1510) (48 coefficients in the shaded sub-block in Figure 15C) are used as the input for computing the secondary transform. Thus, a 16x64 transform matrix is used in Figure 15B, and a 16x48 transform matrix is used in Figure 15C.

[0131] In one example, the inverse RST is conditionally applied when the following two conditions are met: (i) the block size (e.g., the width W and / or height H of the block) is greater than or equal to a threshold (e.g., W >= 4 and H >= 4), and (ii) the transform skip mode flag is equal to 0. For example, if both the width (W) and height (H) of the transform coefficient block are greater than 4, then the RST 8x8 is applied to the top-left 8x8 region of the transform coefficient block. Otherwise, the RST 4x4 is applied to the top-left min(8,W) x min(8,H) region of the transform coefficient block.

[0132] In one example, when the RST index is equal to 0, the RST is not applied. Otherwise, the RST is applied and a kernel is selected using the RST index. In one example, the RST is applied to intra CUs (e.g., CUs coded with intra prediction or intra mode) in both intra and inter slices, and to both luma and chroma. When dual trees are enabled, the RST indices for luma and chroma are signaled separately. For inter slices (dual trees are disabled), a single RST index is signaled and used for both luma and chroma. When ISP mode is selected, the RST is disabled and no RST index is signaled.

[0133] In one example, an RST matrix may be selected from four transform sets, each consisting of two transforms. Which transform set to apply may be determined based on the intra-prediction mode as follows: When one of three cross-component linear model (CCLM) modes is indicated, transform set 0 may be selected. Otherwise, transform set selection may be performed according to the table (1550) shown in FIG. 15D. An index (e.g., IntraPredMode) for accessing the table (1550) may be in the range of [-14, 80], which is, for example, a post-transform mode index used for wide-angle intra-prediction. An example of an intra-prediction mode is shown in FIG. 16B. In one example, the index for accessing the table (1550) may be in the range of [-14, 83] or any suitable range.

[0134] Figure 16A shows a diagram of exemplary intra-prediction directions and intra-prediction modes used in HEVC. HEVC has a total of 35 intra-prediction modes (modes 0 to 34). Modes 0 and 1 are omnidirectional modes, mode 0 is planar mode (labeled Intra_Planar in Figure 16A), and mode 1 is DC mode (labeled Intra_DC in Figure 16A). Modes 2 through 34 are directional modes, mode 10 is horizontal mode, mode 26 is vertical mode, and modes 2, 18, and 34 are diagonal modes. In some examples, intra-prediction modes are signaled by three most-probable modes (MPMs) and 32 remaining modes.

[0135] 16B shows a diagram of exemplary intra-prediction directions and intra-prediction modes in some examples (e.g., VVC). There are 95 intra-prediction modes in total (mode -14 to mode 80), of which mode 18 is horizontal mode, mode 50 is vertical mode, and mode 2, mode 34, and mode 66 are diagonal modes. Modes -1 to -14 and modes 67 to 80 are called wide-angle intra-prediction (WAIP) modes.

[0136] Multi-line intra prediction can use more reference lines for intra prediction. A reference line can include multiple samples within an image. In one example, a reference line includes row samples and column samples. In one example, an encoder can determine and signal the reference line used to generate an intra predictor. An index indicating the reference line (also called a reference line index) can be signaled before the intra prediction mode. In one example, only MPM is allowed when a non-zero reference line index is signaled. Figure 17 shows an example of four reference lines for a coding block (1710). In the example shown in Figure 17, the reference line can include six segments, namely, segments A through F. Reference line 3 can include an upper-left reference sample. Segments A and F can be padded with the nearest samples from segments B and E, respectively. In some examples, such as HEVC, only one reference line (e.g., reference line 0 adjacent to the coding block (1710)) is used for intra prediction. In some examples, such as VVC, multiple reference lines (eg, reference lines 0, 1, and 3) are used for intra prediction.

[0137] Intra-subpartition (ISP) coding modes may be used, in which a luma intra-predicted block can be divided vertically or horizontally into two or four subpartitions depending on the block size.

[0138] Figure 18 shows Table 4, which associates several subpartitions with block sizes. For example, if the block size is 4x4, no partitioning is performed on the block in ISP coding mode. If the block size is 4x8 or 8x4, the block is divided into two subpartitions in ISP coding mode. For all other block sizes larger than 4x8 or 8x4, the block is divided into four subpartitions. Figure 19 shows an example of subpartitions for a block of size 4x8 or 8x4. Figure 20 shows another example of subpartitions for a block having a size other than 4x8, 8x4, and 4x4, for example, a block size larger than 4x8 and 8x4. In one example, all subpartitions satisfy the condition that they have at least 16 samples. For chroma components, ISP is not applied.

[0139] In some examples, for each subpartition, the decoder may entropy decode the coefficients transmitted from the encoder to the decoder, and then the decoder may inverse quantize and inverse transform the coefficients to generate a residual (or residual data) for the subpartition. Furthermore, when a subpartition is intra-predicted by the decoder, the decoder may add the residual with the intra-prediction result to obtain a reconstructed sample for the subpartition. Thus, the reconstructed sample for each subpartition may be used to generate a prediction for the next subpartition to be reconstructed. The above process may be repeated for the next subpartition, and so on. In one example, all subpartitions share the same intra-prediction mode. In some examples, in ISP, because transform and reconstruction are performed for each subpartition individually, each subpartition may be considered a TU.

[0140] In some examples, the ISP algorithm is only tested on intra-prediction modes that are part of the MPM list. Thus, if a block uses ISP, it can be inferred that the MPM flag is 1. Furthermore, if ISP is used for a particular block, in some examples, the MPM list can be modified to exclude DC mode and prioritize horizontal intra-prediction modes (or horizontal splits) for the ISP horizontal partition and vertical intra-prediction modes (or vertical splits) for the vertical partition.

[0141] 21A-21D show examples of different YUV or chroma formats, each of which can define different downsampling grids for different color components.

[0142] The secondary transform may refer to NSST, RST (or RT), etc. The secondary transform index may refer to an NSST index, an RST index, etc. In one example, the secondary transform index indicates a secondary transform (also called a secondary transform candidate). The secondary transform index may be signaled at the CU level. For example, an NSST index or an RST index is signaled at the CU level of a CU. Whether to signal a secondary transform index may depend on the number of non-zero coefficients of the CU. Therefore, the decoder may loop through all TUs included in the CU to determine the number of non-zero coefficients of the CU. In some embodiments, the processing is relatively complex.

[0143] In certain secondary transform (e.g., RST) designs, for example, when a single partitioning tree is used between different color components in a CU containing a luma component and two chroma components, the number of nonzero coefficients in the CU can be counted to determine whether a secondary transform index is signaled. However, for a 4×N or N×4 luma block, the corresponding chroma block is 2×N / 2 or N / 2×2 in the YUV 4:2:0 format. Therefore, a secondary transform such as RST is not applied to the chroma block, and there is no need to count the number of nonzero coefficients in the chroma block.

[0144] In some instances, secondary transforms such as NSST or RST are not enabled for ISP, which may limit the full benefit of the secondary transforms in terms of coding efficiency.

[0145] The embodiments described herein may be used separately or combined in any order. Furthermore, the embodiments may be implemented by a processing circuit (e.g., one or more processors or one or more integrated circuits) such as an encoder, a decoder, etc. In one example, one or more processors may execute a program stored in a non-transitory computer-readable medium. In some examples, a block may be a prediction block, a coding block, a CU, etc.

[0146] In this disclosure, the DST-7 embodiment of the MTS candidate may be applicable to the DST-4, and the DCT-8 embodiment of the MTS candidate may be applicable to the DCT-4. Furthermore, in some embodiments, references to the NSST may also apply to the RST, which is an example of an alternative design of the non-separable quadratic transform.

[0147] A high-level syntax (HLS) element may refer to a video parameter set (VPS), a sequence parameter set (SPS), a picture parameter set (PPS), a slice header, a tile header, a tile group header, etc. A CTU header may refer to syntax elements signaled for a CTU, for example, as header information. In one example, a CTU size is a maximum CU size. A TU size may refer to a maximum width and / or height, or area, of a TU.

[0148] Generally, if the luma size (expressed in luma samples) of a certain unit (e.g., TU, CU) is known, the corresponding chroma size specified by several chroma samples can be obtained. In one example, a 4:2:0 YUV format is used, and a CU has a CU size of 64x64 luma samples (or 64x64-L). Therefore, a CU has a CU size of 32x32 chroma samples (or 32x32-C). The CU size can be referred to as 64x64-L, 32x32-C, or 64x64-L / 32x32-C. A CU can include a luma block and two chroma blocks, where the luma block has 64x64 luma samples and each of the two chroma blocks has 32x32 chroma samples. The description can be adapted to a TU. For brevity, the description is omitted.

[0149] TU size can be expressed using luma samples within a TU. For example, a maximum TU size of M samples refers to a maximum TU size of M luma samples. Similarly, CU size can be expressed using luma samples within a CU. In other embodiments, TU size and CU size can be expressed using chroma samples or a combination of luma and chroma samples.

[0150] The unit size may refer to the width, height, and / or area of the unit. For example, the maximum TU size may refer to the width, height, and / or area of the largest TU. In general, a TU, CU, etc. may have any suitable shape, including a rectangle, a square, an "L" shape, or any suitable shape. If the shape of the unit is irregular, such as an "L" shape, the unit size may specify the area of the unit.

[0151] In some embodiments, the maximum TU size (also referred to as the maximum size of a TU) may be signaled in an encoded video bitstream, such as HLS (e.g., SPS and PPS). The maximum TU size may be signaled with respect to luma samples or chroma samples.

[0152] In some embodiments, the maximum TU size may be stored in the encoder and / or decoder, and thus the maximum TU size is not signaled. In one example, the maximum TU size may be stored in a profile and / or level definition. The maximum TU size may be stored with respect to luma samples or chroma samples.

[0153] According to aspects of the present disclosure, whether a secondary transform is allowed for a CU may be determined based on the size of the CU (or CU size). In one example, whether a secondary transform is allowed for a CU may be determined based on the CU size and a CU size threshold. If the CU size is less than or equal to the CU size threshold, the secondary transform is determined to be allowed, and if the CU size is greater than the CU size threshold, the secondary transform is determined to be not allowed. In one example, if it is determined that the secondary transform is not allowed, the secondary transform index is not signaled. Thus, if the decoder determines that the secondary transform is not allowed, the decoder may also determine that the secondary transform index is not signaled. In one example, the CU size may refer to the width and / or height of the CU, such as 64 samples. In one example, the CU size may refer to the area of the CU, such as 64x64 samples.

[0154] In one example, a CU size threshold (e.g., a CU width threshold, a CU height threshold, or a CU area threshold) is limited to be less than or equal to a maximum size of a TU within a CU. The maximum size of a TU can be signaled in the HLS. The maximum size of a TU can also be predefined and stored in the decoder.

[0155] As described above, in some examples, the decoder may loop through the TUs in a CU to determine the number of non-zero coefficients of the CU, and then determine whether a secondary transform index is signaled. According to aspects of the present disclosure, instead of counting the number of non-zero coefficients of the CU, whether a secondary transform index is signaled may be determined based on the last position of the non-zero transform coefficients (or the last non-zero coefficient position) of the first CB of the CU. The first CB may be any appropriate block, such as a luma block, a chroma block, or the like, in the CU. The secondary transform index may indicate a secondary transform selected for the second CB in the CU.

[0156] According to aspects of the present disclosure, whether to perform a secondary transform on a second CB in a CU can be determined based on whether a secondary transform index is determined to be signaled. Furthermore, if it is determined that a secondary transform is to be performed, samples in the second CB can be reconstructed after a secondary transform indicated by the secondary transform index is performed on the second CB. Alternatively, if it is determined that a secondary transform is not to be performed, samples in the second CB can be reconstructed without performing a secondary transform on the second CB. The second CB can be any appropriate block, such as a luma block or a chroma block, in a CU. In one example, the first CB is the second CB. In another example, the first CB is different from the second CB.

[0157] In one example, the CU includes a luminance block. The first CB is the luminance block. The last position is the last non-zero luminance coefficient position of the luminance block. Therefore, whether the secondary transform index is signaled is determined based on the last luminance position. The second CB is also a luminance block or the first CB.

[0158] In some embodiments, as described below, additional information may be included to determine whether a secondary transform index is signaled.

[0159] In one example, the CU includes a luma block and a chroma block. The first CB is the luma block. The last position is the position of the last non-zero luma coefficient in the luma block. The additional information may include the position of the last non-zero chroma coefficient in the chroma block. Therefore, whether the secondary transform index is signaled is determined based on the position of the last non-zero luma coefficient and the position of the last non-zero chroma coefficient in the chroma block. The second CB may be one of the luma block and the chroma block.

[0160] In one example, a CU includes a luma block and two chroma blocks (e.g., chroma block I and chroma block II). The first CB is the luma block. The last position is the last non-zero luma coefficient position of the luma block. The additional information may include the last non-zero chroma coefficient position I of chroma block I and the last non-zero chroma coefficient position II of chroma block II. Therefore, whether a secondary transform index is signaled can be determined based on the last non-zero luma coefficient position, the last non-zero chroma coefficient position I of the non-zero transform coefficients of chroma block I, and the last non-zero chroma coefficient position II of the non-zero transform coefficients of chroma block II. The second CB may be one of the luma block, chroma block I, and chroma block II.

[0161] As described above, whether a secondary transform index is signaled can be determined based on the last non-zero coefficient position of the first CB of the CU. The last non-zero coefficient position can include a horizontal component (e.g., last_pos_x) and a vertical component (e.g., last_pos_y), and therefore, whether a secondary transform index is signaled can be determined based on the horizontal component and / or the vertical component. The horizontal component and the vertical component can be an integer greater than or equal to 0. The vertical component can be an integer greater than or equal to 0.

[0162] In one embodiment, the horizontal component can be compared to a first threshold and / or the vertical component can be compared to a second threshold. The first threshold can be the same as the second threshold. Alternatively, the first threshold can be different from the second threshold. The first threshold and / or the second threshold can be positive integers, such as 1, 2, 3, etc.

[0163] In one example, it may be determined whether the horizontal component is less than a first threshold and whether the vertical component is less than a second threshold. If it is determined that the horizontal component is less than the first threshold and the vertical component is less than the second threshold, it may be determined that the secondary transform index is not to be signaled.

[0164] In one example, it may be determined whether the horizontal component is greater than or equal to a first threshold. Further, it may be determined whether the vertical component is greater than or equal to a second threshold. If it is determined that the horizontal component is greater than or equal to the first threshold and the vertical component is greater than or equal to the second threshold, it may be determined that a secondary transform index is to be signaled.

[0165] In one embodiment, it may be determined whether the sum of the horizontal component and the vertical component of the last position is less than a third threshold. If it is determined that the sum is less than the third threshold, it may be determined that the secondary transform index is not to be signaled. The third threshold may be a positive integer such as 1, 2, 3, etc. If it is determined that the sum is greater than or equal to the third threshold, it may be determined that the secondary transform index is to be signaled.

[0166] In one embodiment, it may be determined whether the minimum component among the horizontal and vertical components is less than a fourth threshold. If it is determined that the minimum component among the horizontal and vertical components is less than the fourth threshold, it is determined that the secondary transform index is not to be signaled. The fourth threshold may be a positive integer such as 1, 2, or 3.

[0167] In one embodiment, it may be determined whether the maximum component among the horizontal and vertical components is less than a fifth threshold. If it is determined that the maximum component is less than the fifth threshold, it is determined that the secondary transform index is not to be signaled. The fifth threshold may be a positive integer such as 1, 2, or 3. The fourth threshold may be the same as the fifth threshold. Alternatively, the fourth threshold may be different from the fifth threshold.

[0168] In one embodiment, the first CB is a luma block in a CU. The CU further includes a chroma block. However, whether a secondary transform index is signaled is determined based only on the last non-zero luma coefficient position of the luma block of the CU. Therefore, when determining whether a secondary transform index is signaled, the last non-zero luma coefficient position of the chroma block is not considered.

[0169] In one embodiment, the CU includes a luma block and a chroma block as described above. Whether a secondary transform index is signaled is determined based on the last non-zero luma coefficient position of the luma block and the last non-zero chroma coefficient position of the chroma block. Similarly, the last non-zero luma coefficient position may include a luma horizontal component and a luma vertical component, and the last non-zero chroma coefficient position may include a chroma horizontal component and a chroma vertical component. Therefore, whether a secondary transform index is signaled may be determined based on the luma horizontal component, the luma vertical component, the chroma horizontal component, and / or the chroma vertical component.

[0170] In one embodiment, one or more of the horizontal and vertical components of each of the last non-zero luma and chroma coefficient locations may be compared to a respective threshold value, such as 1, 2, 3, etc. In one example, it may be determined whether one or more of the horizontal and vertical components of each of the last non-zero luma and chroma coefficient locations are less than a respective threshold value. When one or more of the horizontal and vertical components of each of the last non-zero luma and chroma coefficient locations are less than a respective threshold value, it may be determined that a secondary transform index is not to be signaled.

[0171] In one embodiment, the horizontal sum of the water level is obtained by summing the luma horizontal component and the chroma horizontal component, and the vertical sum of the water level is obtained by summing the luma vertical component and the chroma vertical component. It may be determined whether the vertical sum and the water level are each less than a respective threshold. When the vertical sum and the water level are each less than a respective threshold, it may be determined that the secondary transform index is not to be signaled.

[0172] In one example, a first sum of the luma horizontal component and the luma vertical component is determined, and a second sum of the chroma horizontal component and the chroma vertical component is determined. It can be determined whether the first sum and the second sum are each less than a respective threshold. If it is determined that the first sum and the second sum are each less than a respective threshold, it can be determined that the secondary transform index is not to be signaled.

[0173] In one embodiment, the total sum is obtained by summing the first sum and the second sum, and if it is determined that the total sum is less than a threshold, it can be determined that the secondary transform index is not to be signaled.

[0174] In one embodiment, a first minimum value of the luma horizontal component and the luma vertical component is determined, and a second minimum value of the chroma horizontal component and the chroma vertical component is determined. It may be determined whether the first minimum value and the second minimum value are each less than a respective threshold. If it is determined that the first minimum value and the second minimum value are each less than a respective threshold, it may be determined that the secondary transform index is not to be signaled. The above description may be adapted to determine whether the secondary transform index is to be signaled using the first maximum value of the luma horizontal component and the luma vertical component and the second maximum value of the chroma horizontal component and the chroma vertical component.

[0175] Similarly, the minimum of the horizontal and vertical sums can be used to determine whether a secondary transform index is signaled. The maximum of the horizontal and vertical sums can be used to determine whether a secondary transform index is signaled.

[0176] According to aspects of the present disclosure, when determining the number of non-zero transform coefficients of a CU, if the size of the CB (also referred to as the CB size) is equal to or greater than a size threshold, such as 4, the non-zero transform coefficients in the CB of the CU may be counted. In one example, if the CB size is less than the size threshold, the non-zero transform coefficients in the CB are not counted, i.e., are not included in the number of non-zero transform coefficients of the CU. The size threshold may be predefined and stored in the decoder. The size threshold may be explicitly signaled, for example, from the encoder to the decoder. Furthermore, if the number of non-zero transform coefficients in the CU is less than a number threshold, it may be determined that the secondary transform index is not to be signaled.

[0177] In one example, the color format of the CU is YUV 4:2:0. The CU includes a luma block and two chroma blocks co-located with the luma block. The size threshold is 4. If the luma block has a size of 4×N or N×4, N may refer to the width or height of the luma block and may be 4 or greater, and the two chroma blocks have a size of 2×N / 2 or N / 2×2. In one example, N is a positive even number. The number of non-zero transform coefficients of the CU is determined from the luma block alone, without considering the two chroma blocks. The width or height of each of the two chroma blocks is less than the size threshold. In another example, the size threshold is 4×4, and the CB size of 2×N / 2 or N / 2×2 is also less than the size threshold, and N may be a positive even number. No secondary transform is performed on the two chroma blocks.

[0178] In one example, the color format of the CU is YUV 4:2:2. The CU includes a luma block and two chroma blocks co-located with the luma block. The size threshold is 4. The size of the luma block is 4×N, and if N is 4 or greater, the size of the two chroma blocks is 2×N. The number of non-zero transform coefficients of the CU is determined from the luma block alone, without considering the two chroma blocks. The width of each of the two chroma blocks (e.g., 2) is less than the size threshold. No secondary transform is performed on the two chroma blocks.

[0179] A secondary transform may be performed on the first coefficient block (e.g., TB) to obtain a 4x2 (or 2x4) first sub-block containing at least one non-zero coefficient. For example, a RST is applied to the 4x4 first TB (e.g., the first coefficient block) to obtain a second TB containing the first sub-block and the second sub-block. The 4x2 (or 2x4) first sub-block contains at least one non-zero coefficient. The coefficients of the 4x2 (or 2x4) second sub-block are considered to be zero. Therefore, a 4x2 (or 2x4) sub-block scan of the first sub-block (i.e., a 4x2 (or 2x4) coefficient scan order) is applied to entropy encode the second TB. In one example, the 4x2 (or 2x4) coefficient scan order is the same scan order as that applied to entropy encode the 4x2 (or 2x4) chroma block.

[0180] Similarly, for example, if the first coefficient block is larger than 8x4 (or 4x8), a secondary transform may be performed on the first coefficient block (e.g., TB) to obtain an 8x4 (or 4x8) first sub-block containing at least one non-zero coefficient. For example, an RST is applied to the 8x8 first TB (e.g., the first coefficient block) to obtain a second TB containing the first sub-block and the second sub-block. The 8x4 (or 4x8) first sub-block contains at least one non-zero coefficient. The coefficients of the 8x4 (or 4x8) second sub-block are considered to be zero. Therefore, an 8x4 (or 4x8) block scan of the first sub-block (i.e., the 8x4 (or 4x8) coefficient scan order) is applied to entropy coding of the second TB. In one example, the 8x4 (or 4x8) coefficient scan order is the same scan order as that applied to entropy coding of the 8x4 (or 4x8) chroma block.

[0181] FIG. 22 shows a flowchart outlining the process (2200) according to one embodiment of the present disclosure. The process (2200) can be used to reconstruct a block coded in intra mode to generate a prediction block for the block being reconstructed. In some examples, the process (2200) can be used to reconstruct a block coded in inter mode. In various embodiments, the process (2200) is performed by a processing circuit, such as the processing circuitry of the terminal devices (310), (320), (330), and (340), a processing circuit that performs the functions of the video encoder (403), a processing circuit that performs the functions of the video decoder (410), a processing circuit that performs the functions of the video decoder (510), or a processing circuit that performs the functions of the video encoder (603). In some embodiments, the process (2200) is implemented by software instructions, and thus, the processing circuit performs the process (2200) when the processing circuit executes the software instructions. The process starts at (S2201) and proceeds to (S2210).

[0182] In (S2210), coding information of a CU may be decoded from the coded video bitstream. The coding information may indicate the last position of a non-zero transform coefficient (or the last non-zero coefficient position) of a first CB of the CU. In one example, the CU may include a luma block and a chroma block. The first CB may be a luma block or a chroma block.

[0183] In (S2220), whether a secondary transform index is signaled in the coding information can be determined based on the last non-zero coefficient position, as described above. The secondary transform index can indicate a secondary transform to be performed on a second CB in the CU. The second CB can be a luma block or a chroma block.

[0184] In one example, the last non-zero coefficient position may include a horizontal component and a vertical component, and whether a secondary transform index is signaled in the coding information may be determined based on the horizontal component and / or the vertical component. As described above, additional information may be used to determine whether a secondary transform index is signaled, and step (S2220) may be appropriately adapted to include the additional information. In one example, if it is determined that a secondary transform index is signaled, process (2200) proceeds to (S2230). Otherwise, process (2200) proceeds to (S2250).

[0185] In (S2230), whether to perform a secondary transform on the second CB can be determined based on whether it is determined that a secondary transform index is signaled in the coded information. In some examples, if it is determined that a secondary transform index is signaled, it is determined that a secondary transform is performed. If it is determined that a secondary transform is to be performed, the process (2200) proceeds to (S2240). Otherwise, the process (2200) proceeds to (S2250).

[0186] At (S2240), a secondary transform indicated by the secondary transform index is performed on the second CB. The secondary transform may be NSST. The secondary transform may be RST including a zero-out method. For example, if the second CB is 8x8, RST is applied to the second CB to obtain a transform block including an 8x4 first sub-block and an 8x4 second sub-block. The first sub-block includes at least one non-zero coefficient. The coefficients in the second sub-block are not calculated and are considered to be 0.

[0187] In step S2250, the samples in the second CB can be reconstructed, and the process 2200 then proceeds to step S2299 where it ends.

[0188] The process (2200) may be adapted as appropriate, as described above. For example, one or more steps may be modified, omitted, or combined. In one example, steps (S2220) and (S2230) are combined. Additional steps may also be added. The order in which the process (2200) is performed may also be modified.

[0189] FIG. 23 shows a flowchart outlining a process (2300) according to one embodiment of the present disclosure. The process (2300) can be used to reconstruct a block coded in intra mode to generate a prediction block for the block being reconstructed. In some examples, the process (2300) can be used to reconstruct a block coded in inter mode. In various embodiments, the process (2300) is performed by a processing circuit, such as the processing circuitry of the terminal devices (310), (320), (330), and (340), a processing circuit that performs the functions of the video encoder (403), a processing circuit that performs the functions of the video decoder (410), a processing circuit that performs the functions of the video decoder (510), or a processing circuit that performs the functions of the video encoder (603). In some embodiments, the process (2300) is implemented by software instructions, and thus, the processing circuit performs the process (2300) when the processing circuit executes the software instructions. The process starts at (S2301) and proceeds to (S2310).

[0190] In (S2310), coding information of the CU can be decoded from the coded video bitstream, where the coding information indicates the size of the CU.

[0191] In (S2320), whether or not the secondary transformation is permitted may be determined based on the size of the CU and the CU size threshold. If the size of the CU is equal to or less than the CU size threshold, it is determined that the secondary transformation is permitted. The process (2300) proceeds to (S2330). If the size of the CU is greater than the CU size threshold, it is determined that the secondary transformation is not permitted, and the process (2300) proceeds to (S2350).

[0192] In (S2330), whether to perform a secondary transformation on the CB in the CU can be determined based on whether a secondary transformation index is signaled, for example, as described above. If it is determined that a secondary transformation is to be performed, the process (2300) proceeds to (S2340). If not, the process (2300) proceeds to (S2350).

[0193] In (S2340), similar to step (S2240), the secondary transformation indicated by the secondary transformation index is performed on CB.

[0194] In step S2350, the samples in the CB can be reconstructed, and the process 2300 then proceeds to step S2399 and ends.

[0195] The process 2300 may be adapted as appropriate. For example, one or more steps may be modified. Additional steps may be added.

[0196] Steps 2200 and 2300 can be combined as appropriate. For example, steps S2310 and S2320 can be performed first, followed by steps S2210 to S2250.

[0197] The techniques described above may be implemented as computer software using computer-readable instructions and physically stored on one or more computer-readable media. For example, Figure 24 illustrates a computer system (2400) suitable for implementing certain embodiments of the disclosed subject matter.

[0198] Computer software can be encoded using any suitable machine code or computer language and can be subjected to assembly, compilation, linking, or similar mechanisms to create code containing instructions that can be executed by one or more computer central processing units (CPUs), graphics processing units (GPUs), etc., directly, or through interpretation, execution of microcode, etc.

[0199] The instructions may be executed on various types of computers or components thereof, including, for example, personal computers, tablet computers, servers, smartphones, gaming devices, Internet of Things devices, and the like.

[0200] 24 for computer system 2400 are exemplary in nature and are not intended to suggest any limitation as to the scope of use or functionality of the computer software implementing embodiments of the present disclosure, nor should the arrangement of components be interpreted as having a dependency or requirement related to any one or combination of components illustrated in the exemplary embodiment of computer system 2400.

[0201] The computer system 2400 may include certain human interface input devices. Such human interface input devices may respond to input by one or more users, such as, for example, tactile input (e.g., keystrokes, swipes, data glove movements), audio input (e.g., voice, clapping), visual input (e.g., gestures), olfactory input (not shown), etc. The human interface devices may also be used to capture certain media that do not necessarily involve direct conscious human input, such as sound (e.g., speech, music, ambient sounds), images (e.g., scanned images, photographic images obtained from a still image camera), and video (e.g., two-dimensional video, three-dimensional video, including stereoscopic video).

[0202] The input human interface devices may include one or more (only one of each shown) of a keyboard (2401), a mouse (2402), a trackpad (2403), a touchscreen (2410), a data glove (not shown), a joystick (2405), a microphone (2406), a scanner (2407), and a camera (2408).

[0203] The computer system (2400) may also include certain human interface output devices. Such human interface output devices may stimulate one or more of the human user's senses, for example, through tactile output, sound, light, and smell / taste. Such human interface output devices may include haptic output devices (e.g., haptic feedback via a touchscreen (2410), data gloves (not shown), or joystick (2405), although some haptic feedback devices may not function as input devices), audio output devices (e.g., speakers (2409), headphones (not shown), etc.), visual output devices (e.g., screens (2410), including CRT screens, LCD screens, plasma screens, and OLED screens, each with or without touchscreen input capability, each with or without haptic feedback capability, some of which may output two-dimensional visual output or three-dimensional or higher-dimensional output by means of stereographic output, virtual reality glasses (not shown), holographic displays, and smoke tanks (not shown), and printers (not shown).

[0204] The computer system (2400) may also include human-accessible storage and associated media such as optical media (2421) such as CD / DVD ROM / RW (2420), including CDs / DVDs, thumb drives (2422), removable hard drives or solid state drives (2423), legacy magnetic media such as tape and floppy disks (not shown), and dedicated ROM / ASIC / PLD-based devices such as security dongles (not shown).

[0205] Those skilled in the art should also understand that the term "computer-readable medium" as used in connection with the subject matter disclosed herein does not encompass transmission media, carrier waves, or other transitory signals.

[0206] The computer system (2400) may also include interfaces to one or more communication networks. Networks may be, for example, wireless, wired, or optical. Furthermore, networks may be local, wide-area, metropolitan, vehicular, industrial, real-time, or delay-tolerant. Examples of networks include local area networks, such as Ethernet, wireless LAN, and cellular networks, including GSM, 3G, 4G, 5G, and LTE; TV wired or wireless wide-area digital networks, including cable, satellite, and terrestrial broadcast television; and vehicular and industrial networks, including CANbus. Certain networks generally require an external network interface adapter connected to a particular general-purpose data port or peripheral bus (2449) (e.g., a USB port (2400) on the computer system); others are generally integrated into the computer system core (2400) by connecting to a system bus, as described below (e.g., an Ethernet interface to a PC computer system or a cellular network interface to a smartphone computer system). Using any of these networks, the computer system (2400) can communicate with other entities. Such communication may be unidirectional, receive only (e.g., broadcast TV), unidirectional transmit only (e.g., from a CANbus to a particular CANbus device), or bidirectional, e.g., communication to other computer systems using local area digital networks or wide area digital networks. As noted above, specific protocols and protocol stacks may be used with each of these networks and network interfaces.

[0207] The aforementioned human interface devices, human-accessible storage devices, and network interfaces may be connected to the core (2440) of the computer system (2400).

[0208] A core (2440) may include specialized programmable processing devices in the form of one or more central processing units (CPUs) (2441), graphics processing units (GPUs) (2442), field programmable gate arrays (FPGAs) (2443), task-specific hardware accelerators (2444), etc. These devices may be connected via a system bus (2448), along with read-only memory (ROM) (2445), random access memory (2446), and internal mass storage devices (2447) such as internal hard drives or SSDs that are not user-accessible. In some computer systems, the system bus (2448) may be accessible in the form of one or more physical plugs, allowing expansion with additional CPUs, GPUs, etc. Peripheral devices may be connected directly to the core's system bus (2448) or via a peripheral bus (2449). Peripheral bus architectures include PCI, USB, etc.

[0209] The CPU (2441), GPU (2442), FPGA (2443), and accelerator (2444) can execute specific instructions that, in combination, can constitute the aforementioned computer code. That computer code can be stored in ROM (2445) or RAM (2446). Transient data can also be stored in RAM (2446), while persistent data can be stored, for example, in internal mass storage (2447). The use of cache memory, which can be closely associated with one or more of the CPU (2441), GPU (2442), mass storage (2447), ROM (2445), RAM (2446), etc., allows for fast storage and retrieval from any memory device.

[0210] The computer-readable media may have computer code thereon for performing various computer-implemented operations. The media and computer code may be those specially designed and constructed for the purposes of the present disclosure, or they may be of the kind well known and available to those skilled in the computer software arts.

[0211] By way of example and not limitation, a computer system having the architecture (2400), and in particular the core (2440), can provide functionality as a result of a processor (including a CPU, GPU, FPGA, accelerator, etc.) executing software embodied in one or more tangible computer-readable media. Such computer-readable media may be the user-accessible mass storage devices introduced above, as well as media associated with specific storage of the core (2440) that is non-transitory in nature, such as the core's internal mass storage device (2447) or ROM (2445). Software implementing various embodiments of the present disclosure may be stored on such devices and executed by the core (2440). The computer-readable media may include one or more memory devices or chips according to particular needs. The software may cause the core (2440), and in particular the processor (including a CPU, GPU, FPGA, etc.) therein, to perform specific processes or portions of specific processes described herein, including defining data structures stored in RAM (2446) and modifying such data structures according to software-defined operations. Additionally, or alternatively, a computer system may provide functionality as a result of logic embedded in or otherwise implemented in circuitry (e.g., accelerator (2444)), which may operate in place of or together with software to perform particular processes or portions of particular processes described herein. References to software may include logic, and vice versa, as appropriate. References to computer-readable media may encompass circuitry (such as an integrated circuit (IC)) storing software for execution, circuitry embodying logic for execution, or both, as appropriate. The present disclosure encompasses any suitable combination of hardware and software.

[0212] Appendix A: Acronyms JEM: Joint exploration model VVC: versatile video coding BMS:benchmark set MV: Motion Vector HEVC: High Efficiency Video Coding SEI: Supplementary Enhancement Information VUI:Video Usability Information GOP: Group of Pictures TU: Transform Units PU: Prediction Units CTU: Coding Tree Units CTB: Coding Tree Blocks PB: Prediction Blocks HRD: Hypothetical Reference Decoder SNR: Signal Noise Ratio CPU: Central Processing Units GPU: Graphics Processing Units CRT: Cathode Ray Tube LCD: Liquid-Crystal Display OLED: Organic Light-Emitting Diode CD:Compact Disc DVD: Digital Video Disc ROM: Read-Only Memory RAM: Random Access Memory ASIC: Application-Specific Integrated Circuit PLD: Programmable Logic Device LAN: Local Area Network GSM: Global System for Mobile communications LTE: Long-Term Evolution CANBus: Controller Area Network Bus USB: Universal Serial Bus PCI: Peripheral Component Interconnect FPGA: Field Programmable Gate Areas SSD: solid-state drive IC: Integrated Circuit CU: Coding Unit

[0213] While this disclosure has described several exemplary embodiments, there are alterations, permutations, and various substitute equivalents that fall within the scope of this disclosure. It will thus be appreciated that those skilled in the art will be able to devise numerous systems and methods that, although not explicitly shown or described herein, embody the principles of the present disclosure and are therefore within its spirit and scope.

[0214] Appendix I 4x4 conversion

Mathematics

Mathematics

Mathematics

Mathematics

[0215] Appendix II 64-point DCT-2 core { {aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa, aa} {bf, bg, bh, bi, bj, bk, bl, bm, bn, bo, bp, bq, br, bs, bt, bu, bv, bw, bx, by, bz, ca, cb, cc, cd, ce, cf, cg, ch, ci, cj, ck, -ck, -cj, -ci, -ch, -cg, -cf, -ce, -cd, -cc, -cb, -ca, -bz, -by, -bx, -bw, -bv, -bu, -bt, -bs, -br, -bq, -bp, -bo, -bn, -bm, -bl, -bj, -bi, -bh, -bg, -bf} {ap、aq、ar、as、at、au、aw、ax、ay、az、ba、bb、bc、bd、be、-be、-bd、- bc、-bb、-ba、-az、-ay、-ax、-aw、-av、-au、-at、-as、-ar、-aq、-ap、- ap、-aq、-ar、as、-at、-au、-av、-aw、-ax、-ay、-az、-ba、-bb、-bc、- bd、-be、be、bd、bc、bb、ba、az、ay ax、aw、av、au au、at、as、ar、aq、ap、} {bg、bj、bm、bp、bs、bv by、cb、ce、ch、ck、-ci、-cf、-cc、-bz、-bw、-bt、-bq、-bn、-bk 、-bh、-bf、-bi、-bl、-bo、-br、-bu、-bx、-ca、-cd、-cg、-cj、cj 、cg、cd、ca、bx、bu、br、bo、bl、bi、bf、bh、bk、bn、bq、bt、bw、b z、cc、cf、ci、-ck、-ch、-ce、-cb、-by、-bs、-bp、-bm、-bj、-bg} {ah、ai、aj、ak、al、am、an、ao、-ao、-an、-am、-al、-ak、-aj、-ai、- ah、-ah、-ai、-aj、-ak、-al、-am、-an、-ao、ao、an、am、al、ak、aj、ai 、ah、ai、aj、ak、al、am、an、ao、-an、-am、-al、-ak、-aj、-ai、-ah、-a h、-ai、-aj、-ak、-al、-am、-an、-ao、ao、an、am、al、ak、aj、ai、ah、} {bh、bm、br、bw、cb、cg、-ck、-cf、-ca、-bv、-bq、-bl、-bg、-bi、-bn、 -bs、-bx、-cc、-ch、cj、ce、bz、bu、bp、bk、bf、bj、bo、bt、by、cd、ci、- ci、-cd、-by、-bt、-bo、-bj、-bf、-bk、-bp、-bu、-bz、-ce、-cj、ch、c c、bx、bs、bn、bg、bl、bq、bv、ca、cf、ck、-cg、-cb、-bw、-br、-bm、-bh} {aq、at、aw、az、bc、-be、-bb、-ay、-av、-as、-ap、-ar、-au、-ax、-ba 、-bd、bd、ba ax au au ar ap ap as av ay bb be bc az az-aw aw q、-aq、-at、-aw、-az、-bc、be、bb、ay、av、as、ap、ar、ax 、babd、 -bd、-ba、-ax、-au、-ar、-ap、-as、-av、-ay、-bb、-be、bc、az、aw、at} {bi、bp、bw、cd、ck、-ce、-bx、-bq、-bj、-bh、-bo、-bv、-cc、-cj、cf、 by、br、bk、bg、bn、bu、cb、ci、-cg、-bz、-bs、-bl、-bf、-bm、-bt、-ca 、-ch、ch、ca、bt、bm、bf、bl、bs、bz、cg、-ci、-cb、-bu、-bn、-bg、-bk 、-br、-by、-cf、cj、cc、bv、bo、bh、bj、bq、bx、ce、-ck、-cd、-bw、-bp} {ad、ae、af、ag、-ag、-af、-ae、-ad、-ad、-ad、-ae、-af、-ag、ag、af、 ae、ad、ae、af、-ag、-af、-ae、-ad、-ad、-ae、-af、-ag、af、ae、ad、ad、 ae、af、ag、-ag、-af、-ae、-ad、-ad、-ae、-af、-ag、ag、af、ae、ad、ad、 ae、af、ag、-ag、-af、-ae、-ad、-ad、-ae、-af、-ag、ag、ag、af、ae、ad} {bj、bs、cb、ck、-cc、-bt、-bk、-bi、-br、-ca、-cj、cd、bu、bl、bh、bq 、bz, ci、-ce, bv, bm, bg, bp, by: ch, cf, bx, bn, bf, bo, bx, cg. -cg、-bx、-bo、-bf、-bn、-bw、-cf、ch、by、bp、bg、bm、bv、ce、-ci、-b z、-bq、-bh、-bl、-bu、-cd、cj、ca、br、bi、bt、cc、-ck、-cb、-bs、-bj} {ar、aw、bb、-bd、-ay、-at、-ap、-au、-az、-be、ba、av、aq、as、ax、bc、 -bc、-ax、-as、-aq、-av、-ba、be、az、au、ap、at、ay、bd、-bb、-aw、-ar 、ar、-aw、-bb、bd、ay、at、ap、au、az、be、-ba、-av、-aq、-as、-ax、-b c、bc、ax、as、aq、av、ba、-be、-az、-au、-ap、-at、-ay、-bd、bb、aw、ar} {bk、bv、cg、-ce、-bt、-bi、-bm、-bx、-ci、cc、br、bg、bo、bz、ck、-ca、 -bp、-bf、-bq、-cb、cj、by、bn、bh、bs、cd、-ch、-bw、-bl、-bj、-bu、-c f、cf、bu、bj、bl、bw、ch、-cd、-bs、-bh、-bn、-by、-cj、cb、bq、bf、bp、 ca、-ck、-bz、-bo、-bg、-br、-cc、ci、bx、bm、bi、bt、ce、-cg、-bv、-bk} {ai、al、ao、-am、-aj、-ah、-ak、-an、an、ak、ah、aj、am、-ao、-al、- ai、-al、-ao、am、aj、ah、ak、an、an、-ak、-ah、-aj、-am、ao、al、ai、 al、ao、-am、-aj、-ah、-ak、-an、an、ak、ah、aj、am、ao、-al、-ai、-a i、-al、-ao、am、aj、ah、ak、-an、-an、-ak、-ah、-aj、-am、ao、al、ai} {bl、by-ck、-bx、-bk、-bm、-bz、cj、bw、bj、bn、ca、-ci、-bv、-bi、- bo、-cb、ch、bu、bh、bp、cc、-cg、-bt、-bg、-bq、-cd、cf、bs、bf、br、c e、-ce、-br、-bs、-cf、cd、bq、bg、bt、cg、-cc、-bp、-bh、-bu、-ch、cb 、bo、bi、bv、ci、-ca、-bn、-bj、-bw、-cj、bz、bm、bk、bx、ck、-by-bl} {as、az、-bd、-aw、-ap、-av、-bc、ba、at、ar、ay、-be、ax、-aq、-au、 -bb、bb、auaqaxaxbe-ay-ar-ar-at-ba bc-av-ap ap-aw bd-az、- as、-az、bd、aw、ap、av、bc、ba、-at、ar、-ay、be、ax、aq、au、bb、-b b、-au、-aq、-ax、-be、ay、ar、at、ba、-aw、-bd、az、as} {bm、cb、-cf、-bq、-bi、-bx、cj、bu、bf、bt、ci、-by、-bj 、-bp、-ce、cc、bn、bl、ca、-cg、-br、-bh、-bw、ck、bv、bg 、bs、ch、-bz、-bk、-bo、-cd、cd、bo、bk、bz、-ch、-bs、-b g、-bv、-ck、bw、bh、br、cg、ca、-bl、-bn、-cc、ce、bp、bj by、-ci、-bt、-bf、-bu、-cj、bx、bi、bq、cf、-cb、-bm} {ab、ac、-ac、-ab、-ab、-ac、ac、ab、ab、ac、-ac、-ab、-ab、-ac、ac、ab 、ab、ac、ac、-ac、-ac、-ab、-ab、ac、-ac、-ab、-ac、-ab、-ab、-ac、ac、 ab、ab、ac、ac、-ac、ab、-ab、-ac、ac、ab、ab、-ab、-ab、-ac、ac、ab、 -ab、-ac、-ab、-ab、-ac、-ab、-ab、-ac、-ac、-ab、-ac、-ab、-ac、-ab} {bn、ce、-ca、-bj、-br、-ci、bw、bf、bv、-cj、-bs、-bi、-bz、cf、bo、b m、cd、-cb、-bk、-bq、-ch、bx、bg、bu、-ck、-bt、-bh、-by、cg、bp、bl、c c、-cc、-bl、-bp、-cg、by、bh、bt、ck、-bu、-bg、-bx、ch、bq、bk、cb、- cd、-bm、-bo、-cf、bz、bi、bs、-bv、-bf、-bw、ci、br、bj、ca、-ce、-bn} {at、bc、-ay、-ap、-ax、bd、au、as、bb、-az、-aq、-aw、be、av、ar、ba、- ba、-ar、-av、-be、aw、aq、az、-bb、-as、-au、-bd、ax、ap、ay、-bc、-at 、-at、-bc、ay、ap、ax、-bd、au、-as、-bb、az、aq、aw、-be、-av、-ar、- ba、ba、ar、av、be、-aw、-aq、-az、bb、as、au、bd、-ax、-ap、-ay、bc、at} {bo、ch、-bv、-bh、-ca、cc、bj、bt、-cj、-bq、-bm、-cf、bx、bf、by、-c e、-bl、-br、-ck、bs、bk、cd、-bz、-bg、-bw、cg、bn、bp、ci、-bu、-bi、- cb、cb、bi、-ci、-bp、-bn、-cg、bw、bg、bz、-cd、-bk、-bs、ck、br、bl、 ce、-by、-bf、-bx、cf、bm、bq、cj、-bt、-bj、-cc、ca、bh、bv、-ch、-bo} {aj、ao、-ak、-ai、-an、al、ah、am、-am、-ah、-al、an、ai、ak、-ao、 -aj、-aj、-ao、ak、ai、an、-al、-ah、-am、ah、al、-an、-ai、-ak、ao、 aj、aj、ao、-ak、-ai、-an、al、ah、-am、-ah、-al、an、ai、ak、-aj、- aj、-ao、ak、ai、an、-al、-ah、am、am、ah、al、-an、-ai、-ak、ao、aj} {bp、ck、-bq、-bo、-cj、br、bn、ci、-bs、-bm、-ch、bt、bl、cg、-bu、-b k、-cf、bv、bj、ce、-bw、-bi、-cd、bx、bh、cc、-by、-bg、-cb、bz、bf、ca 、-ca、-bf、-bz、cb、bg、by、-cc、-bh、-bx、cd、bi、bw、-ce、-bj、-bv、 cf、bu、-cg、-bl、-bt、ch、bm、bs、-ci、-bn、-br、cj、bo、bq、-ck、-bp} {au、-be、-at、-av、bd、as、aw、-bc、-ar、ax、bb、aq、ay、ba、-ap、-a z、az、ap、ba、-ay、-aq、-bb、ax、ar、ar、bc、-aw、-as、-bd、av、at、be、-au 、-au、be at av - bd - as - aw - bc - ar ax - bb -aq - ay - ba ap - az -az、-ap、-ba、ay、aq、bb、ax、-ar、-bc、aw、as、as、bd、-av、-at、-be、au} {bq、-ci、-bl、-bv、cd、bg、ca、-by、-bi、-cf、bt、bn、ck、-bo、-bs、cg 、bj、bx、-cb、-bf、-cc、bw、bk、ch、br、-bp、cj、bm、bu、-ce、-bh、-bz 、bz、bh、ce、-bu、-bm、-cj、bp、br、-ch、-bk、-bw、cc、bf、cb、-bx、-bj 、-cg、bs、bo、-ck、-bn、-bt、cf、bi、by、ca、-bg、-cd、bv、bl、ci、-bq} {ae,-ag,-ad,-af,af,ad,ag,-ae,-ae,ag,ad,af,-af,-ad,-ag,ae,ae,-ag,-ad,-af,af,ad,ag,-ae,-ae,ag,ad,af,-af,-ad,-ag,ae ,ae,-ag,-ad,-af,af,ad,ag,-ae,-ae,ag,ad,af,-af,-ad,-ag,ae,ae,-ag,-ad,-af,af,ad,ag,-ae,-ae,ag,ad,af,-af,-ad,-ag,ae} {br、-cf、-bg、-cc、bu、bo、-ci、-bj、-bz、bx、bl、ck、-bm、-bw、ca、 bi、ch、-bp、-bt、cd、bf、ce、-bs、-bq、cg、bh、cb、-bv、-bn、cj、bk、b y、-by、-bk、-cj、bn、bv、-cb、-bh、-cg、bq、bs、-ce、-bf、-cd、bt、bp -ch, bm, ck, bl, bx, bz, bj, ci, bu, bg, cf, br} {av、-bb、-ap、-bc、au、aw、-ba、-aq、-bd、at、ax、-az、-ar、-be、as 、ay、-ay、as、be、ar、az、-ax、-at、bd、aq、ba、-aw、-au、bc、ap、bb 、-av、-av、bb、ap、bc、-au、-aw、ba、aq、bd、-at、-ax、az、ar、be、-a s、-ay、ay、as、-be、-ar、-az、ax、at、-bd、-ba、aw、-bc、-ap、-bb、} {bs、-cc、-bi、-cj、bl、bz、-bv、-bp、cf、bf、cg、-bo、-bw、by、bm、-c i、-bh、-cd、br、bt、-cb、-bj、-ck、bk、ca、-bu、-bq、ce、bg、ch、-bn、 -bx、bx、bn、-ch、-bg、-ce、bq、bu、-ca、-bk、ck、bj、cb、-bt、-br、cd 、bh、ci、-bm、-by、bw、bo、-cg、-bf、bp、bv、-bz、-bl、cj、bi、cc、-bs} {ak、-am、-ai、ao、ah、an、an、-aj、-al、al、aj、-an、-ah、-ao、ai、am、-ak 、-ak、am、ai、-ao、-ah、-an、aj、al、-al、-aj、an、ah、ao、-ai、-am、ak 、ak、-am、-ai、ao、ah、an、an、aj、-al、al、aj、-an、-ah、-ao、ai、am、-ak 、-ak、am、ai、-ao、-ah、-an、aj、al、-al、-aj、an、ah、ao、-ai、-am、ak} {bt、-bz、-bn、cf、bh、ck、-bi、-ce、bo、by、-bu、-bs、ca、bm、-cg、-b g、-cj、bj、cd、-bp、-bx、bv、br、-cb、-bl、ch、bf、ci、-bk、-cc、bq、b w、-bw、-bq、cc、bk、-ci、-bf、-ch、bl、cb、-br、-bv、bx、bp、-cd、-bj 、cj、bg、cg、-bm、-ca、bs、bu、-by、-bo、ce、bi、-ck、-bh、-cf、bn、bz} {aw、-ay、-au、ba、as、bc、-aq、be、ap、bd、ar、-bb、at、az、-av、-ax ax av - az - at bb bb ar - bd - ap - be 、aq bc -as -ba - au -ay -aw -aw、ay、au、ba、-as - bc 、aq -be 、-ap - bd -ar bb -at - az - av - ax -ax、-av、az、at、bb、ar、bd、ap、be、aq、-bc、as、ba、-au、-ay、-aw} {bu、-bw、-bs、by、bq、-ca、-bo、cc、bm、-ce、-bk、cg、bi、-ci、-bg、 ck、bf、cj、-bh、-ch、bj、cf、-bl、-cd、bn、cb、-bp、-bz、br、bx、-bt 、-bv、bv、bt、bx、-br、bz、bp、-cb、-bn cd、bl、-cf、-bj、ch、bh、- cj、-bf、-ck、bg、ci、-bi、-bobk、ce、-bm、-cc、ca、-bq、-by、bs、} {aa、-aa、-aa、-aa、-aa、-aa、aa、aa、-aa、-aa、-aa、-aa、-aa、-aa、-aa、 aa、-aa、-aa、-aa、-aa、-aa、-aa、-aa、-aa、-aa、-aa、-aa、-aa、-aa a、-aa、-aa、-aa、-aa、-aa、-aa、-aa、-aa、-aa、-aa、-aa、-aa、-aa、-aa 、-yeah、-yeah、-yeah、-yeah、-yeah、-yeah、-yeah、-yeah、-yeah、-yeah、-yeah、-yeah、-yeah、-yeah} {bv、-bt、-bx、br、bz、-bp、-cb、bn、cd、-bl、-cf、bj、ch、-bh、-cj、 bf、-ck、-bg、ci、bi、-cg、-bk、ce、bm、-cc、-bo、ca、bq、-by、-bs、bw 、bu、-bu、-bs、by cc、-ce、bk、cg、-bi、-ci、bg、ck、- bf、cj、bh、-ch、-bj、cf、bl、-cd、-bn、cb、bp、-bz、-br、bx、bt、-bv} {ax、-av、-az、at、bb、-ar、-bd、ap、-be、-aq、bc as、-ba、-au、ay、aw、-aw、-ay、au、ba、-as、-bc、aq、be、- ap、bd、ar、-bb、-at、az、av、-ax、-ax、av、az、at、-bb、ar bd、-ap、be、aq、-bc、-as、ba、au、-ay、-aw、aw、ay、-au、- ba、as、bc、-aq、-be、ap、-bd、-ar、bb、at、-az、-av、-ax、} {bw、-bq、-cc、bk、ci、-bf、ch、bl、-cb、-br、bv、bx、-bp、-cd、bj、cj 、-bg、cg、bm、-ca、-bs、bu、by、-bo、-ce、bi、ck、-bh、cf、bn、-bz、-b t、bt、bz、-bn、-cf、bh、-ck、-bi、ce、bo、-by、-bu、bs、ca、-bm、-cg、 bg、-cj、-bj、cd、bp、-bx、-bv、br、cb、-bl、-ch、bf、-ci、-bk、cc、bq bw} {al、-aj、-an、ah、-ao、-ai、am、ak、-ak、-am、ai、ao、-ah、an、aj、-a l、-al、aj、an、ah、ao、ai、am、-ak、ak、am、-ai、-ao、ah、-an、-aj、 al、al、-aj、-an、ah、-ao、-ai、am、ak、-am、ai、ao、-ah、an、aj、-al、 -al、aj、an、ah、ao、ai、-am、-ak、ak、am、-ai、-ao、ah、-an、-aj、al} {bx、-bn、-ch、bg、-ce、-bq、bu、ca、-bk、-ck、bj、-cb、-bt、br、cd、- bh、ci、bm、-by、-bw、bo、cg、-bf、cf、bp、-bv、-bz、bl、cj、-bi、cc、bs 、-bs、-cc、bi、-cj、-bl、bz、bv、-bp、-cf、bf、-cg、-bo、bw、by、-bm、 -ci、bh、-cd、-br、bt、cb、-bj、ck、bk、-ca、-bu、ce、-bg、ch、bn、-bx} {ay、-as、-be、ar、-az、-ax、at、bd、-aq、ba、aw、-au、-bc、ap、-bb、-a v、av、bb、ap、bc、au、-aw、ba、aq、-bd、at、ax、az、ar、be、as、-ay 、-ay、as、be、ar、az、ax、at、-bd、aq-ba、-aw、au、bc、ap、bb、av -av、-bb、ap、-bc、-au、aw、ba、-aq、bd、at、ax、-az、ar、be、as、ay} {by、-bk、cj、bn、-bv、-cb、bh、-cg、-bq、bs、ce、-bf、cd、bt、-bp、-ch bi-bi-ca、-bw-bm-bm-ck-bl-bl-bx-bz-bj-ci-bo-bo-bu-cc-cc-bg-cf-br 、br、cf、-bg、cc、bu、-bo、-ci、bj、-bz、-bx、bl、-ck、-bm、bw、ca、-bi 、ch、bp、-bt、-cd、bf、-ce、-bs、bq、cg、-bh、cb、bv、-bn、-cj、bk、-by} {af,-ad,ag,ae,-ae,-ag,ad,-af,-af,ad,-ag,-ae,ae,ag,-ad,af,af,-ad,ag,ae,-ae,-ag,ad,-af,-af,ad,-ag,-ae,ae,ag,-ad,af ,af,-ad,ag,ae,-ae,-ag,ad,-af,-af,ad,-ag,-ae,ae,ag,-ad,af,af,-ad,ag,ae,-ae,-ag,ad,-af,-af,ad,-ag,-ae,ae,ag,-ad,af} {bz、-bh、ce、bu、-bm、cj、bp、-br、-ch、bk、-bw、-cc、bf、-cb、-bx、 bj、-cg、-bs、bo、ck、-bn、bt、cf、-bi、by、ca、-bg、cd、bv、-bl、ci、b q、-bq、-ci、bl、-bv、-cd、bg、-ca、-by、bi、-cf、-bt、bn、-ck、-bo、 bs、cg、-bj、bx、cb、-bf、cc、br、-bk、ch、br、-bp、-cj、bm、bu、-bz} {az、-ap、ba、ay、-aq、bb、ax、-ar、bc、aw、-as、bd、av、-at、be、au、-a u、-be、at、-av、-bd、as、-aw、-bc、ar、-ax、-bb、aq、-ay、-ba、ap、-az 、-az、ap、-ba、-ay、aq、-bb、-ax、ar、-bc、-aw、as、-bd、-av、at、-be、 -au、au、be、-at、av、bd、-as、aw、bc、-ar、ax、bb、-aq、ay、ba、-ap、az} {ca、-bf、bz、cb、-bg、by、cc、-bh、bx、cd、-bi、bw、ce、-bj、bv、cf、-b k、bu、cg、-bl、bt、ch、-bm、bs、ci、-bn、br、cj、-bo、bq、ck、-bp、bp、- ck、-bq、bo、-cj、-br、bn、-ci、-bs、bm、-ch、-bt、bl、-cg、-bu、bk、-c f、-bv、bj、-ce、-bw、bi、-cd、-bx、bh、-cc、-by、bg、-cb、-bz、bf、-ca} {am、-ah、al、an、-ai、ak、ao、-aj、aj、-ao、-ak、ai、-an、-al、ah、-am am am、-ah、al、an、ai、ak、ao、-aj、aj、-ao、-ak、ai、-an、-al、ah、am 、-am、ah、-al、-an、ai、-ak、-ao、aj、-aj、ao、ak、-ai、an、al、-ah、am} {cb,-bi,bu,ci,-bp,bn,-cg,-bw,bg,-bz,-cd,bk,-bs,-ck,br,-bl,ce,by,-bf,bx,cf,-bm,bq,-cj,-bt,bj,-cc,-ca,bh,-bv,-bv o,-bo,ch,bv,-bh,ca,cc,-bj,bt,cj,-bq,bm,-cf,-bx,bf,-by,-ce,bl,-br,ck,bs,-bk,cd,bz,-bg,bw,cg,-bn,bp,-ci,-bu,bi,-cb} {ba、-ar、av、-be、-aw、aq、-az、-bb、as、as、au、bd、ax、ax、ay、bc、-at 、at、-bc、-ay、ap、-ax、-bd、au、as、bb、az、-aq、aw、be、av、ar、-ba、 -ba、ar、-av、be、aw、-aq、az bb -as -as au -bd -ax ap - ay -bc、at -at、bc、ay、ap、ax bd、-au、as、-bb、-az、aq、-aw、-be、av、ar、ba、} {cc、-bl、bp、-cg、-by、bh、-bt、ck、bu、-bg、bx、ch、-bq、bk、-cb、-c d、bm、-bo、cf、bz、-bi、bs、-cj、-bv、bf、-bw、-ci、br、-bj、ca、ce、-b n、bn、-ce、-ca、bj、-br、ci、bw、-bf、bv、cj、-bs、bi、-bz、-cf、bo、- bm、cd、cb、-bk、bq、-ch、-bx、bg、-bu、-ck、bt、-bh、by、cg、-bp、-cc} {ac,-ab,ab,-ac,-ac,-ab,-ab,ac,ac,-ab,-ac,-ac,-ab,-ab,ac,ac,-ab,-ac,-ac,-ab,-ab,ac,ac,-ab,-ac,-ac,ab,-ab,ac ,ac,-ab,ab,-ac,-ac,-ab,-ab,ac,ac,-ab,-ac,-ac,-ab,-ab,ac,ac,-ab,-ac,-ac,-ab,-ab,ac,ac,-ab,-ac,-ac,ab,-ab,ac} {cd、-bo、bk、-bz、-ch、bs、-bg、bv、-ck、-bw、bh、-br、cg、ca、-bl、bn、-cc、、、、、bp ci、-bt、bf、-bu、cj、bx、-bi、bq、-bm、cb、cf、-bq、bi、-bx、-cj-b-b-bu -ci、-by、bj、-bp、ce、cc、bn、bl、-ca、-cg、br、-bh、bw、ck-bv、bg、-bs、ch、bz}-c}-bk {bb、-au、aq、-ax、be、ay、-ar、at、-ba、-bc、av、-ap、aw、-bd、-az、as 、-as、az、bd、aw、ap、-av、bc、ba、-at、ar、-ay、-be、ax、-aq、au、-bb 、-bb、au、-aq、ax、-be、-ay、ar、-at、ba、bc、-av、ap、-aw、bd、az、as 、as、-az、-bd、aw、-ap、av、-bc、-ba、at、-ar、ay、be、-ax、aq、-au、bb} {ce、-br、bf、-bs、cf、cd、-bq、bg、-bt、cg、cc、-bp、bh、-bu、ch、cb、 -bo、bi、-bv、ci、ca、-bn、bj、-bw、cj、bz、-bm、bk、-bx、ck、by、-bl、b l、-by、-ck、bx、-bk、bm、-bz、-cj、bw、-bj、bn、-ca、-ci、bv、-bi、bo 、-cb、-ch、bu、-bh、bp、-cc、-cg、bt、-bg、bq、-cd、-cf、bs、-br、-ce} {an,-ak,ah,-aj,am,ao,-al,ai,-ai,al,-ao,-am,aj,-ah,ak,-an,-an,ak,-ah,aj,-am,-ao,al,-ai,ai,-al,ao,am,-aj,ah,-ak,an ,an,-ak,ah,-aj,am,ao,-al,ai,-ai,al,-ao,-am,aj,-ah,ak,-an,-an,ak,-ah,aj,-am,-ao,al,-ai,ai,-al,ao,am,-aj,ah,-ak,an} {cf、-bu、bj、-bl、bw、-ch、-cd、bs、-bh、bn、-by、cj、cb、-bq、bf、-b p、ca、ck、-bz、bo、-bg、br、-cc、-ci、bx、-bm、bi、-bt、ce、cg、-bv、bk 、-bk、bv、-cg、-ce、bt、-bi、bm、-bx、ci、cc、-br、bg、-bo、bz、-ck、- ca、bp、-bf、bq、-cb、-cj、by、-bn、bh、-bs、cd、ch、-bw、bl、-bu、-cf} {bc、-ax、as、-aq、av、ba、-be、az、-au、ap、-at、ay、-bd、-bb、aw、-a r、ar、-aw bb bb bd - ay - at - ap - au - az - be - ba - av -aq-as -ax - bc -bc、ax、as、ar、-av、ba、be、-az、au、ap、at、-aybd、bb-aw、ar、- ar、aw、-bb、-bd、ay、-at、ap、-au、az、-be、ba、av、-aq、as、ax、bc、} {cg、-bx、bo、-bf、bn、-bw、cf、ch、-by、bp、-bg、bm、-bv、ce、ci、-bz、 bq、-bh、bl、-bu、cd、cj、-ca、br、-bi、bk、-bt、cc、ck、-cb、bs、-bj、b j、-bs、cb、-ck、-cc、bt、-bk、bi、-br、ca、-cj、-cd、bu、-bl、bh、-bq、 bz、-ci、-ce、bv、-bm、bg、-bp、by、-ch、-cf、bw、-bn、bf、-bo、bx、-cg} {ag,-af,ae,-ad,ad,-ae,af,-ag,-ag,af,-ae,ad,-ad,ae,-af,ag,ag,-af,ae,-ad,-ae,af,-ag,-ag,af,-ae,ad,-ad,ae,-af,ag ,ag,-af,ae,-ad,ad,-ae,af,-ag,-ag,af,-ae,ad,-ad,ae,-af,ag,ag,-af,ae,-ad,-ae,af,-ag,-ag,af,-ae,ad,-ad,ae,-af,ag} {ch、-ca、bt、-bm、bf、-bl、bs、-bz cg cgci-cbbu、-bn bg-bk br -by、cf、cj、-cc、bv、-bo、bh、-bj、bq、-bx、ce、ck、-cd、bw、-bp、bi、- bi、bp、-bw、cd、-ck、-ce、bx、-bq、bj、-bh、bo、-bv、cc、cj、-cf、by、 -br、bk、-bg、bn、-bu、cb、-ci、-cg、bz、-bs、bl、-bf、bm、-bt、ca、-ch} {bd、-ba、ax、-au、ar、-ap、as、-av、ay、-bb、be、bc、-az、aw、-at、aq、 -aq、at、-aw、az、-bc、-be、bb、-ay、av、-as、ap、-ar、au、-ax、ba、-bd、 -bd、ba、-ax、au、-ar、ap、-as、av、-ay、bb、-be、-bc、az、-aw、at、-aq 、aq、-at、aw、-az、bc、be、-bb、ay、-av、as、-ap、ar、-au、ax、-ba、-bd} {ci、-cd、-bt、bo、-bj、bf、-bk、bp、-bu、bz、-ce、cj、ch、-cc、bx、-b s、bn、-bi、bg、-bl、bq、-bv、ca、-cf、ck、cg、-cb、bw、-br、bm、-bh、bh 、-bm、br、-bw、cb、-cg、-ck、cf、-ca、bv、-bq、bl、-bg、bi、-bn、bs、- bx、cc、-ch、-cj、ce、-bz、bu、-bp、bk、-bf、bj、-bo、bt、-by、cd、-ci} {ao,-an,am,-al,ak,-aj,ai,-ah,ah,-ai,aj,-ak,al,-am,an,-ao,-ao,an,-am,al,-ak,aj,-ai,ah,-ah,ai,-aj,ak,-al,am,-an,ao ,ao,-an,am,-al,ak,-aj,ai,-ah,ah,-ai,aj,-ak,al,-am,an,-ao,-ao,an,-am,al,-ak,aj,-ai,ah,-ah,ai,-aj,ak,-al,am,-an,ao} {cj,-cg,cd,-ca,bx,-bu,br,-bo,bl,-bi,bf,-bh,bk,-bn,bq,-bt,bw,-bz,cc,-cf,ci,ck,-ch,ce,-cb,by,-bv,bs,-bp,bm,-bj,bg -bg,bj,-bm,bp,-bs,bv,-by,cb,-ce,ch,-ck,-ci,cf,-cc,bz,-bw,bt,-bq,bn,-bk,bh,-bf,bi,-bl,bo,-br,bu,-bx,ca,-cd,cg,-cj}} {be, -bd, bc, -bb, ba, -az, ay, -ax, aw, -av, au, -at, as, -ar, aq, -ap, ap, -aq, ar, -as, at, -au, av, -aw, ax, -ay, az, -ba, bb, -bc, bd, -be, -be, bd, -bc, bb, -ba, az, -ay, ax, -aw, av, -au, at, -as, ar, -aq, ap, -ap, aq, -ar, as, -at, au, -av, aw, -ax, ay, -az, ba, -bb, bc, -bd, be} {ck, -cj, ci, -ch, cg, -cf, ce, -cd, cc, -cb, ca, -bz, by, -bx, bw, -bv, bu, -bt, bs, -br, bq, -bp, bo, -bn, bm, -bl, bk, -bj, bi, -bh, bg, -bf, bf, -bg, bh, -bi, bj, -bk, bl, -bm, bn, -bo, bp, -bq, br, -bs, bt, -bu, bv, -bw, bx, -by, bz, -ca, cb, -cc, cd, -ce, cf, -cg, ch, -ci, cj - ck} [[ID=4}} Here, {aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd, be, bf, bg, bh, bi, bj, bk, bl, bm, bn, bo, bp, bq, br, bs, bt, bu, bv, bw, bx, by, bz, ca, cb, cc, cd, ce, cf, cg, ch, ci, cj, ck} = {64, 83, 36, 89, 75, 50, 18, 90, 87, 80, 70, 57, 43, 25, 9, 90, 90, 88, 85, 82, 78, 73, 67, 61, 54, 46, 38, 31, 22, 13, 4, 91, 90, 90, 90, 88, 87, 86, 84, 83, 81, 79, 77, 73, 71, 69, 65, 62, 59, 56, 52, 48, 44, 41, 37, 33, 28, 24, 20, 15, 11, 7, 2}

[0216] Appendix III 4 - point DST - 7 {a, b, c, d} {c、c、0、-c} {d-a-c-b} {b-d-c-a} and {a, b, c, d}={29, 55, 74, 84} 8th DST-7: {a, b, c, d, e, f, g, h} {c、f、h、e、b、-a、-d-g}} {e, g, b, c, h, d, a, f} {g, c, d, f, a, h, b, e,} {h-a-g-b-f-c-e-d} {f-e-a-g-d-b-h-c} {d-h-e-a-cg-fb} {b-d-f-hg-e-c-a} {a, b, c, d, e, f, g, h}={17, 32, 46, 60, 71, 78, 85, 86} 16th DST-7 {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p} {c、f、i、l、o、o、l、i、f、c、0-c-f-i-l-o} {e, j, o, m, h, c, b, g, l, p, k, f, a, d, i, n} {g, n, l, e, b, i, p, j, c, d, k, o, h, a, f, - m} {i、o、f、-c、-l、-l、-c、f、o、i、0-i、-o、-f、c、l} {k、k、0、-k、-k、0、k、k、0、-k、-k、0、k、k、0、-k} {m-f-n-a-l-h-e-o-b-k-i-d-p-c-j} {o、c、-l、-f、i、i、-f、-l、c、o、0、-o、-c、l、f、-i} {p-a-o-b-n-c-m-d l-e-k f-j-g-i-h} {n, -e, -i, j, d, -o, a, m, -f, -h, k, c, -p, b, l, -g} {l, -i, -c, o, -f, -f, o, -c, -i, l, 0, -l, i, -c, o, f} {j, -m, c, g, -p, f, d, -n, i, a, -k, l, -b, -h, o, -e} {h, -p, i, -a, -g, o, -j, b, f, -n, k, -c, -e, m, -l, d} {f, -l, o, -i, c, c, -i, o, -l, f, 0, -f, l, -o, i, -c} {d, -h, l, -p, m, -i, e, -a, -c, g, -k, o, -n, j, -f, b} {b, -d, f, -h, j, -l, n, -p, o, -m, k, -i, g, -e, c, -a} Here, {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p} = {9, 17, 25, 33, 41, 49, 56, 62, 66, 72, 77, 81, 83, 87, 89, 90} 32 - point DST - 7 {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F} {c, f, i, l, o, r, u, x, A, D, F, C, z, w, t, q, n, k, h, e, b, -a, -d, -g, -j, -m, -p, -s, -v, -y, -B, -E} {e, j, o, t, y, D, D, y, t, o, j, e, 0, -e, -j, -o, -t, -y, -D, -D, -y, -t, -o, -j, -e, 0, e, j, o, t, y, D} {g, n, u, B, D, w, p, i, b, -e, -l, -s, -z, -F, -y, -r, -k, -d, c, j, q, x, E, A, t, m, f, -a, -h, -o, -v, -C} {i, r, A, C, t, k, b, -g, -p, -y, -E, -v, -m, -d, e, n, w, F, x, o, f, -c, -l, -u, -D, -z, -q, -h, a, j, s, B} {k、v、F、u、j、-a、-l、-w、-E、-t、-i、b、m、x、D、s、h、-c、-n、-y、-C、-r、-g、d、o、z、B、q、f、-e、-p、-A、} {m、z、z、m、0、-m、-z、-z、-m、0、m、z、z、m、0、-m、-z、-z、-m、0、m、z、z、m、0、-m、-z、-z、-m、0、m、z、} {o、D、t、e、-j、-y、-y、-j、e、t、D、o、0、-o、-D、-t、-e、j、y、y、j、-e、-t、-D、-o、0、o、D、t、e、-j、-y、} {q、E、n、-c、-t、-B、-k、f、w、y、h、-i、-z、-v、-e、l、C、s、b、-o、-F、-p、a、r、D、m、-d、-u、-A、-j、g、x、} {s、A、h、-k、-D、-p、c、v、x、e、-n、-F、-m、f、y、u、b、-q、-C、-j、i、B、r、-a、-t、-z、-g、l、E、o、-d、-w、} {u、w、b、-s、-y、-d、q、A、f、-o、-C、-h、m、E、j、-k、-F、-l、i、D、n、-g、-B、-p、e、z、r、-c、-x、-t、a、v、} {w、s、-d、-A、-o、h、E、k、-l、-D、-g、p、z、c、-t、-v、a、x、r、-e、-B、-n、i、F、j、-m、-C、-f、q、y、b、-u、} {y、o、-j、-D、-e、t、-e、-D、-j、o、y、0、-y、-o、j、D、e、-t、-t、e、D、j、-o、-y、0、y、o、-j、-D、-e、t、} {A、k、-p、-v、e、F、f、-u、-q、j、B、a、-z、-l、o、w、-d、-E、-g、t、r、-i、-C、-b、y、m、-n、-x、c、D、h、-s、} {C、g、-v、-n、o、u、-h、-B、a、D、f、-w、-m、p、t、-i、-A、b、E、e、-x、-l、q、s、-j、-z、c、F、d、-y、-k、r、} {E、c、-B、-f、y、i、-v、-l、s、o、-p、-r、m、u、-j、-x、g、A、-d、-D、a、F、b、-C、-e、z、h、-w、-k、t、n、-q、} {F、-a、-E、b、D、-c、-C、d、B、-e、-A、f、z、-g、-y、h、x、-i、-w、j、v、-k、-u、l、t、-m、-s、n、r、-o、-q、p、} {D、-e、-y、j、t、-o、-o、t、j、-y、-e、D、0、-D、e、y、-j、-t、o、-t、-j、y、e、-D、0、D、-e、-y、j、t、-o、} {B、-i、-s、r、j、-A、-a、C、-h、-t、q、k、-z、-b、D、-g、-u、p、l、-y、-c、E、-f、-v、o、m、-x、-d、F、-e、-w、n、} {z、-m、-m、z、0、-z、m、m、-z、0、z、-m、-m、z、0、-z、m、m、-z、0、z、-m、-m、z、0、-z、m、-m、-z、0、z、-m、} {x、-q、-g、E、-j、-n、A、-c、-u、t、d、-B、m、k、-D、f、r、-w、-a、y、-p、-h、F、-i、-o、z、-b、-v、s、e、-C、l、} {v、-u、-a、w、-t、-b、x、-s、-c、y、-r、-d、z、-q、-e、A、-p、-f、B、-o、-g、C、-n、-h、D、-m、-i、E、-l、-j、F、-k、} {t、-y、e、o、-D、j、j、-D、o、e、-y、t、0、-t、y、-e、-o、D、-j、-j、D、-o、-e、y、-t、0、t、-y、e、o、-D、j、} {r、-C、k、g、-y、v、-d、-n、F、-o、-c、u、-z、h、j、-B、s、-a、-q、D、-l、-f、x、-w、e、m、-E、p、b、-t、A、-i、} {p、-F、q、-a、-o、E、-r、b、n、-D、s、-c、-m、C、-t、d、l、-B、u、-e、-k、A、-v、f、j、-z、w、-g、-i、y、-x、h、} {n, -B, w, -i, -e, s, -F, r, -d, -j, x, -A, m, a, -o, C, -v, h, f, -t, E, -q, c, k, -y, z, -l, -b, p, -D, u, -g} {l, -x, C, -q, e, g, -s, E, -v, j, b, -n, z, -A, o, -c, -i, u, -F, t, -h, -d, p, -B, y, -m, a, k, -w, D, -r, f} {j, -t, D, -y, o, -e, -e, o, -y, D, -t, j, 0, -j, t, -D, y, -o, e, e, -o, y, -D, t, -j, 0, j, -t, D, -y, o, -e} {h, -p, x, -F, y, -q, i, -a, -g, o, -w, E, -z, r, -j, b, f, -n, v, -D, A, -s, k, -c, -e, m, -u, C, -B, t, -l, d} {f, -l, r, -x, D, -C, w, -q, k, -e, -a, g, -m, s, -y, E, -B, v, -p, j, -d, -b, h, -n, t, -z, F, -A, u, -o, i, -c} {d, -h, l, -p, t, -x, B, -F, C, -y, u, -q, m, -i, e, -a, -c, g, -k, o, -s, w, -A, E, -D, z, -v, r, -n, j, -f, b} {b, -d, f, -h, j, -l, n, -p, r, -t, v, -x, z, -B, D, -F, E, -C, A, -y, w, -u, s, -q, o, -m, k, -i, g, -e, c, -a} Here, {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F} = {4, 9, 13, 17, 21, 26, 30, 34, 38, 42, 45, 50, 53, 56, 60, 63, 66, 68, 72, 74, 77, 78, 80, 82, 84, 85, 86, 88, 88, 89, 90, 90} 4 - point DCT - 8 {a, b, c, d} {b, 0, -b, -b} {c, -b, -d, a} {d, -b, a, -c} Here, {a, b, c, d} = {84, 74, 55, 29} 8-point DCT-8 {a, b, c, d, e, f, g, h} {b, e, h, -g, -d, -a, -c, -f} {c, h, -e, -a, -f, g, b, d} {d, -g, -a, -h, c, e, -f, -b} {e, -d, -f, c, g, -b, -h, a} {f, -a, g, e, -b, h, d, -c} {g, -c, b, -f, -h, d, -a, e} {h, -f, d, -b, a, -c, e, -g} Here, {a, b, c, d, e, f, g, h} = {86, 85, 78, 71, 60, 46, 32, 17} 16-point DCT-8 {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p} {b, e, h, k, n, 0, -n, -k, -h, -e, -b, -b, -e, -h, -k, -n} {c, h, m, -p, -k, -f, -a, -e, -j, -o, n, i, d, b, g, l} {d, k, -p, -i, -b, -f, -m, n, g, a, h, o, -l, -e, -c, -j} {e, n, -k, -b, -h, 0, h, b, k, -n, -e, -e, -n, k, b, h} {f, 0, -f, -f, 0, f, 0, -f, -f, 0, f, 0, -f, -f, -f} {g, -n, -a, -m, h, f, -o, -b, -l, i, e, -p, -c, -k, j, d} {h, -k, -e, n, b, 0, -b, -n, e, k, -h, -h, k, e, -n, -b} {i, -h, -j, g, k, -f, -l, e, m, -d, -n, c, o, -b, -p, a} {j, -e, -o, a, -n, -f, i, k, -d, -p, b, -m, -g, h, l, -c} {k, -b, n, h, -e, 0, e, -h, -n, b, -k, -k, b, -n, -h, e} {l, -b, i, o, -e, f, -p, -h, c, -m, -k, a, -j, -n, d, -g} {m, -e, d, -l, -n, f, -c, k, o, -g, b, -j, -p, h, -a, i} {n, -h, b, -e, k, 0, -k, e, -b, h, -n, -n, h, -b, e, -k} {o, -k, g, -c, b, -f, j, -n, -p, l, -h, d, -a, e, -i, m} {p, -n, l, -j, h, -f, d, -b, a, -c, e, -g, i, -k, m, -o} Here, {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p} = {90, 89, 87, 83, 81, 77, 72, 66, 62, 56, 49, 41, 33, 25, 17, 9} 32 - point DCT - 8 {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F} {b, e, h, k, n, q, t, w, z, C, F, -E, -B, -y, -v, -s, -p, -m, -j, -g, -d, -a, -c, -f, -i, -l, -o, -r, -u, -x, -A, -D} {c, h, m, r, w, B, 0, -B, -w, -r, -m, -h, -c, -c, -h, -m, -r, -w, -B, 0, B, w, r, m, h, c, c, h, m, r, w, B} {d, k, r, y, F, -A, -t, -m, -f, -b, -i, -p, -w, -D, C, v, o, h, a, g, n, u, B, -E, -x, -q, -j, -c, -e, -l, -s, -z} {e, n, w, F, -y, -p, -g, -c, -l, -u, -D, A, r, i, a, j, s, B, -C, -t, -k, -b, -h, -q, -z, E, v, m, d, f, o, x} {f, q, B, -A, -p, -e, -g, -r, -C, z, o, d, h, s, D, -y, -n, -c, -i, -t, -E, x, m, b, j, u, F, -w, -l, -a, -k, -v} {g、t、0、-t、-g、-g、-t、0、t、g、g、t、0、-t、-g、-t、0、t、g、g、t、0、-t、-g、-g、-t、0、t、g、g、t、} {h、w、-B、-m、-c、-r、0、r、c、m、B、-w、-h、-h、-w、B、m、c、r、0、-r、-c、-m、-B、w、h、h、w、-B、-m、-c、-r、} {i、z、-w、-f、-l、-C、t、c、o、F、-q、-a、-r、E、n、d、u、-B、-k、-g、-x、y、h、j、A、-v、-e、-m、-D、s、b、p、} {j、C、-r、-b、-u、z、g、m、F、-o、-e、-x、w、d、p、-E、-l、-h、-A、t、a、s、-B、-i、-k、-D、q、c、v、-y、-f、-n、} {k、F、-m、-i、-D、o、g、B、-q、-e、-z、s、c、x、-u、-a、-v、w、b、t、-y、-d、-r、A、f、p、-C、-h、-n、E、j、l、} {l、-E、-h、-p、A、d、t、-w、-a、-x、s、e、B、-o、-i、-F、k、m、-D、-g、-q、z、c、u、-v、-b、-y、r、f、C、-n、-j、} {m、-B、-c、-w、r、h、0、-h、-r、w、c、B、-m、-m、B、c、w、-r、-h、0、h、r、-w、-c、-B、m、m、-B、-c、-w、r、h、} {n、-y、-c、-D、i、s、-t、-h、E、d、x、-o、-m、z、b、C、-j、-r、u、g、-F、-e、-w、p、l、-A、-a、-B、k、q、-v、-f、} {o、-v、-h、C、a、D、-g、-w、n、p、-u、-i、B、b、E、-f、-x、m、q、-t、-j、A、c、F、-e、-y、l、r、-s、-k、z、d、} {p、-s、-m、v、j、-y、-g、B、d、-E、-a、-F、c、C、-f、-z、i、w、-l、-t、o、q、-r、-n、u、k、-x、-h、A、e、-D、-b、} {q、-p、-r、o、s、-n、-t、m、u、-l、-v、k、w、-j、-x、i、y、-h、-z、g、A、-f、-B、e、C、-d、-D、c、E、-b、-F、a、} {r、-m、-w、h、B、-c、0、c、-B、-h、w、m、-r、-r、m、w、-h、-B、c、0、-c、B、h、-w、-m、r、r、-m、-w、h、B、-c、} {s、-j、-B、a、-C、-i、t、r、-k、-A、b、-D、-h、u、q、-l、-z、c、-E、-g、v、p、-m、-y、d、-F、-f、w、o、-n、-x、e、} {t、-g、0、g、-t、-t、g、0、-g、t、t、-g、0、g、-t、-t、g、0、-g、t、t、-g、0、g、-t、-t、g、0、-g、t、t、-g、} {u、-d、B、n、-k、-E、g、-r、-x、a、-y、-q、h、-F、-j、o、A、-c、v、t、-e、C、m、-l、-D、f、-s、-w、b、-z、-p、i} {v、-a、w、u、-b、x、t、-c、y、s、-d、z、r、-e、A、q、-f、B、p、-g、C、o、-h、D、n、-i、E、m、-j、F、l、-k、} {w、-c、r、B、-h、m、0、-m、h、-B、-r、c、-w、-w、c、-r、-B、h、-m、0、m、-h、B、r、-c、w、w、-c、r、B、-h、m、} {x、-f、m、-E、-q、b、-t、-B、j、-i、A、u、-c、p、F、-n、e、-w、-y、g、-l、D、r、-a、s、C、-k、h、-z、-v、d、-o、} {y、-i、h、-x、-z、j、-g、w、A、-k、f、-v、-B、l、-e、u、C、-m、d、-t、-D、n、-c、s、E、-o、b、-r、-F、p、-a、q、} {z、-l、c、-q、E、u、-g、h、-v、-D、p、-b、m、-A、-y、k、-d、r、-F、-t、f、-i、w、C、-o、a、-n、B、x、-j、e、-s、} {A, -o, c, -j, v, F, -t, h, -e, q, -C, -y, m, -a, l, -x, -D, r, -f, g, -s, E, w, -k, b, -n, z, B, -p, d, -i, u,} {B, -r, h, -c, m, -w, 0, w, -m, c, -h, r, -B, -B, r, -h, c, -m, w, 0, -w, m, -c, h, -r, B, B, -r, h, -c, m, -w,} {C, -u, m, -e, d, -l, t, -B, -D, v, -n, f, -c, k, -s, A, E, -w, o, -g, b, -j, r, -z, -F, x, -p, h, -a, i, -q, y,} {D, -x, r, -l, f, -a, g, -m, s, -y, E, C, -w, q, -k, e, -b, h, -n, t, -z, F, B, -v, p, -j, d, -c, i, -o, u, -A,} {E, -A, w, -s, o, -k, g, -c, b, -f, j, -n, r, -v, z, -D, -F, B, -x, t, -p, l, -h, d, -a, e, -i, m, -q, u, -y, C,} {F, -D, B, -z, x, -v, t, -r, p, -n, l, -j, h, -f, d, -b, a, -c, e, -g, i, -k, m, -o, q, -s, u, -w, y, -A, C, -E,} where {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F}={90, 90, 89, 88 , 88, 86, 85, 84, 82, 80, 78, 77, 74, 72, 68, 66, 63, 60, 56, 53, 50, 45, 42, 38, 34, 30, 26, 21, 17, 13, 9, 4} [Explanation of symbols]

[0217] 102 Arrow 103 Arrow 104 Square Blocks 180 Schematic 201 Current Block 202 Ambient Sample 203 Ambient Sample 204 Ambient Samples 205 ambient samples 206 Ambient Samples 300 Communication Systems 310 Terminal Equipment 320 Terminal Equipment 330 Terminal Equipment 340 Terminal Equipment 350 Network 400 Communication Systems 401 Video Source 402 Video Image Stream 403 Video Encoder 404 encoded video data 405 Streaming Server 406 Client Subsystem 407 Copy 408 Client Subsystem 409 Copy 410 Video Decoder 411 Video Image Output Stream 412 Display 413 Capture Subsystem 420 Electronic equipment 430 Electronic equipment 501 Channel 510 Video Decoder 512 Rendering Device 515 buffer memory 520 Parser 521 Symbol 530 Electronic equipment 531 Receiver 551 Scaler / Descaler Unit 552 Intra-Image Prediction Unit 553 Motion Compensation Prediction Unit 555 Aggregator 556 Loop Filter Unit 557 Reference Image Memory 558 Image Buffer 601 Video Sources 603 Video Encoder 620 Electronic equipment 630 Source Encoder 632 encoding engine 633 Decoder 634 Reference Image Memory 635 Predictor 640 Transmitter 643 coded video sequence 645 Entropy Encoder 650 Controller 660 Communication Channels 703 Video Encoder 721 General-purpose controller 722 Intra Encoder 723 Residual Calculator 724 Residual Encoder 725 Entropy Encoder 726 Switch 728 Residual Decoder 730 Intercoder 810 Video Decoder 871 Entropy Decoder 872 Intra Decoder 873 Residual Decoder 874 Reconstruction Module 880 Inter Decoder 1110 Residual Block 1112 Coefficient Block 1120 Residual Block 1122 coefficient block 1300 Transformation Encoding Processing 1310 Forward Linear Transformation 1312 Forward Quadratic Transformation 1316 bitstream 1320 Inverse Linear Transform 1322 Inverse Quadratic Transform 1400 Transformation Encoding Processing 1412 Forward Quadratic Transformation 1501 Processing of narrowing forward conversion 1502 Processing of inverse reduction transformation 1510 Residual Block 1550 table 1710 coding blocks 2200 Processing 2300 Processing 2400 Computer System 2401 keyboard 2402 Mouse 2403 Trackpad 2405 Joystick 2406 Mike 2407 Scanner 2408 Camera 2409 Speaker 2410 Touchscreen 2421 Optical Media 2422 thumb drive 2423 Solid State Drive 2440 cores 2443 Field Programmable Gate Area (FPGA) 2444 Hardware Acceleration for Specific Tasks 2445 Read-Only Memory (ROM) 2446 Random Access Memory 2447 Internal Mass Storage 2448 System Bus 2449 Peripheral Bus 2450 graphics adapter 2454 network interface

Claims

1. decoding coding information of a coding unit (CU) from a coded video bitstream, the coding information indicating a last position of a non-zero transform coefficient of a first coding block (CB) of the CU; determining whether a secondary transform index is signaled in the coded information based on the last position; determining whether to perform a secondary transform on a second CB based on whether it is determined that the secondary transform index is signaled in the coded information; In response to determining that the secondary transformation is to be performed, performing the secondary transformation on the second CB to reconstruct the second CB; In response to determining that the secondary transformation is not to be performed, reconstructing the second CB without performing the secondary transformation on the second CB; 1. A method for video decoding in a decoder, comprising:

2. The step of determining whether the secondary transform index is signaled comprises: determining whether a horizontal component of the last location is less than a first threshold and a vertical component of the last location is less than a second threshold; The horizontal component is determined to be less than the first threshold and the vertical component is determined to be less than the second threshold. and determining that the secondary transform index is not signaled in the encoding information in response to determining that the secondary transform index is full.

3. The step of determining whether the secondary transform index is signaled comprises: determining whether the sum of the horizontal and vertical components of the last position is less than a threshold; 2. The method of claim 1, further comprising: in response to determining that the sum is less than the threshold, determining that the secondary transform index is not signaled in the encoding information.

4. The step of determining whether the secondary transform index is signaled comprises: determining whether the minimum of (i) a horizontal component and (ii) a vertical component of the last position is less than a threshold; 2. The method of claim 1, further comprising: in response to determining that the smallest component is less than the threshold, determining that the secondary transform index is not signaled in the encoding information.

5. The step of determining whether the secondary transform index is signaled comprises: determining whether a maximum of (i) a horizontal component and (ii) a vertical component of the last position is less than a threshold; 2. The method of claim 1, further comprising: in response to determining that the maximum component is less than the threshold, determining that the secondary transform index is not signaled in the encoding information.

6. the first CB is a luminance block; the last position is the last luminance position of the luminance block; determining whether the secondary transform index is signaled further comprises determining whether the secondary transform index is signaled based on the last luminance position; The method of claim 1.

7. the first CB is a luminance block; the last position is the last luminance position of the luminance block; The CU further includes a chroma block; the coding information further indicates a last chroma position of a non-zero transform coefficient for the chroma block; The step of determining whether the secondary transform index is signaled comprises: determining whether the secondary transform index is signaled based on the last luma position and the last chroma position; The method of claim 1.

8. decoding coding information of a coding unit (CU) from a coded video bitstream, the coding information indicating a size of the CU; determining whether a secondary transform is allowed based on the size of the CU and a CU size threshold; Including, A method for video decoding in a decoder, wherein the secondary transform is determined to be allowed if the size of the CU is less than or equal to the CU size threshold, and the secondary transform is determined to be not allowed if the size of the CU is greater than the CU size threshold.

9. The method of claim 8 , wherein the CU size threshold is a maximum size of a transform unit in the CU.

10. If the size of the CU is less than or equal to the CU size threshold, determining a number of non-zero transform coefficients of at least one CB in the CU, wherein a size of each of the at least one CB is greater than or equal to a first threshold; determining, in response to the number of non-zero transform coefficients being less than a second threshold, that a secondary transform index is not signaled in the coding information; 9. The method of claim 8, further comprising:

11. the encoding information indicates that the color format of the CU is YUV 4:2:0; The CU includes a luma block and two chroma blocks; The method comprises: determining whether a first dimension of the luminance block is 4 and a second dimension of the luminance block is N, where N is greater than or equal to 4; and wherein, in response to the first dimension and the second dimension being determined to be 4 and N, respectively, the step of determining the number of non-zero transform coefficients includes determining the number of non-zero transform coefficients from only the luma block, and the at least one CB is the luma block. The method of claim 10.

12. the encoding information indicates that the color format of the CU is YUV 4:2:2; The CU includes a luma block and two chroma blocks; The method comprises: determining whether the size of the luminance block is 4×N, where N is greater than or equal to 4; The size of the luminance block is 4xN, and N and 4 are the height and width of the luminance block. and wherein, in response to each of the at least one CB being determined to be a luminance block and a width, the step of determining the number of non-zero transform coefficients includes determining the number of non-zero transform coefficients from only the luma block, and the at least one CB is the luma block. The method of claim 10.

13. decoding coding information of a coding unit (CU) from the coded video bitstream, the coding information indicating a last position of a non-zero transform coefficient of a first coding block (CB) of the CU; determining whether a secondary transform index is signaled in the coded information based on the last position; Determine whether to perform a secondary transform on a second CB based on whether it is determined that the secondary transform index is signaled in the coded information; In response to determining that the secondary transformation is to be performed, performing the secondary transformation on the second CB to reconstruct the second CB; in response to determining that the secondary transformation is not to be performed, reconstructing the second CB without performing the secondary transformation on the second CB.

16. An apparatus for video decoding, comprising: a processing circuit configured to:

14. The processing circuitry determining whether a horizontal component of the last location is less than a first threshold and a vertical component of the last location is less than a second threshold; in response to determining that the horizontal component is less than the first threshold and the vertical component is less than the second threshold, determine that the service is not signaled, 14. The apparatus of claim 13, further configured to:

15. The processing circuitry determining whether the sum of the horizontal and vertical components of the last position is less than a threshold; in response to determining that the sum is less than the threshold, determining that the secondary transform index is not signaled in the encoded information.

14. The apparatus of claim 13, further configured to:

16. The processing circuitry determining whether a minimum or maximum component of (i) a horizontal component and (ii) a vertical component of the last position is less than a threshold; determining that the secondary transform index is not signaled in the encoding information in response to determining that one of the minimum component and the maximum component is less than the threshold.

14. The apparatus of claim 13, further configured to:

17. the first CB is a luminance block; the last position is the last luminance position of the luminance block; the processing circuitry is further configured to determine whether the secondary transform index is signaled based on the last luminance position.

14. The apparatus of claim 13.

18. the first CB is a luminance block; the last position is the last luminance position of the luminance block; The CU further includes a chroma block; the coding information further indicates a last chroma position of a non-zero transform coefficient for the chroma block; the processing circuitry is further configured to determine whether the secondary transform index is signaled based on the last luma position and the last chroma position.

14. The apparatus of claim 13.

19. decoding coding information of a coding unit (CU) from the coded video bitstream, the coding information indicating a size of the CU; determining whether a secondary transform is allowed based on the size of the CU and a CU size threshold; If the size of the CU is equal to or smaller than the CU size threshold, it is determined that the secondary transformation is permitted, and if the size of the CU is greater than the CU size threshold, it is determined that the secondary transformation is not permitted.

23. An apparatus for video decoding, comprising: a processing circuit configured to:

20. The apparatus of claim 19 , wherein the CU size threshold is a maximum size of a transform unit in the CU.

Citation Information

Patent Citations

  • Non-separable secondary transform for video coding with reorganizing

    US20170094314A1