Signaling method in video codec

By simplifying the secondary transform method in the video codec, independently operating the transform/quantization pipeline and the prediction pipeline, and using features such as block size and color components to derive the secondary transform matrix, the problem of insufficient coding efficiency in the existing technology is solved, the encoding and decoding efficiency is improved, and the data transmission and storage requirements are reduced.

CN114009022BActive Publication Date: 2025-10-14BRITISH BROADCASTING CORP
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202080046233.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-06-25
Filing Date
2020-04-21
Publication Date
2025-10-14
Estimated Expiration
2040-04-21

AI Technical Summary

Technical Problem

Existing video coding technologies have shortcomings in improving coding efficiency, especially in reducing data volume and computational complexity, which affects the storage and transmission efficiency of videos.

Method used

By simplifying the secondary transform method in the video codec, operating the transform/quantization pipeline and the prediction pipeline independently, and using features such as block size and color components to derive the secondary transform matrix, the dependence on the intra-frame prediction mode is reduced and unnecessary secondary transforms are removed.

Benefits of technology

It improves the efficiency of encoding and decoding processes, reduces encoding time and decoding complexity, and reduces data transmission and storage requirements.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114009022B_ABST
    Figure CN114009022B_ABST
Patent Text Reader

Abstract

Encoding of video data in video codecs involves a transform of the residual. This can consist of a primary transform and a secondary transform. The selection of the secondary transform is achieved by considering the characteristics of the block to be encoded. The selection of the secondary transform can be signaled to the decoder or inferred in the decoder.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present disclosure relates to video encoding, and in particular, but not exclusively, to the encoding of video data in preparation for storage or transmission. BACKGROUND

[0002] Various video encoding techniques have been developed to deal with digital video presentations and other similar media objects. Recent developments in the techniques used to create video presentations have led to improvements and enhancements in the precision, clarity, detail and complexity of such presentations. As a result, the amount of data used to build video presentations has increased significantly.

[0003] With these advances in video recording and creation techniques, users are now increasingly expecting to acquire video presentations in digital format, which incurs an effective file size. For example, the size of storage media is limited, and if a particularly high definition movie is to be created without some form of encoding and / or compression, the digital file for that movie can be larger than the capacity of the storage media.

[0004] The reader will appreciate that a key driver for digital media encoding and compression is the fact that the distribution of media is increasingly subject to communication channels. As a result, there have been substantial improvements in the speed and capacity of communication channels, both through advances in physical technology (e.g. laser fibre communications), and through higher efficiency in the way data is communicated over such channels.

[0005] However, there remains a general need to consider ways of improving video encoding efficiency. This is both from the perspective of reducing the amount of data required to transmit a video presentation to a particular level of clarity, and from the perspective of managing the level of computational complexity required to encode a video presentation at an encoder, and to decode encoded data at a decoder.

[0006] Improving encoding efficiency in this way also has potential positive impacts on data storage. This will have an impact on any provider of a subscription service, as a large number of video presentations need to be stored to provide to subscribers or broadcasters and recipients who can be watching such video presentations on devices with limited storage capacity.

[0007] More broadly, it is desirable to reduce the amount of data to be transmitted between a transmitter and a receiver, to reduce the impact on network usage, and to reduce any potential financial impact on users of downloading large amounts of data over public networks.

[0008] Intra prediction involves performing a prediction in a block of samples in a video frame by using reference samples extracted from other blocks within the same frame. Such a prediction can be obtained through different techniques (referred to as “modes” in traditional codec architectures).

[0009] In the proposed VVC (Versatile Video Coding) technology developed by the Joint Video Team (JVET), a plurality of possible intra prediction modes are intended to be defined. Thus, one of these modes can be used for intra prediction and the particular selected mode can be signaled in the bitstream or otherwise determined at the decoder. BRIEF DESCRIPTION OF DRAWINGS

[0010] Figure 1 is a schematic diagram of a communication network according to an embodiment;

[0011] Figure 2 is a schematic diagram of a transmitter of the communication network of Figure 1

[0012] Figure 3 is a diagram illustrating an encoder implemented on the transmitter of Figure 2

[0013] Figure 4 is a flowchart of a transform selection process performed at a transform module of the encoder of Figure 3

[0014] Figure 5 is a flowchart of a transform selection process performed at a transform module of the encoder of Figure 3

[0015] Figure 6 is a flowchart of a transform selection process performed at a transform module of the encoder of Figure 3

[0016] Figure 7 is a schematic diagram of a receiver of the communication network of Figure 1

[0017] Figure 8 is a diagram illustrating a decoder implemented on the receiver of Figure 7

[0018] Figure 9 is a flowchart of a secondary inverse transform process at the decoder of Figure 8

[0019] Figure 10 is a flowchart of a secondary inverse transform process at the decoder of Figure 8 DETAILED DESCRIPTION

[0020] Aspects of the disclosure can correspond to the subject matter of the appended claims.

[0021] ​​​​​​​​​In general, intra prediction involves performing a primary transform and an optional secondary transform on the residual data of a given block to produce coefficient information. The coefficient information is typically in a compressed form relative to the original frame data.

[0022] In the current VVC draft specification, a set of secondary transforms (referred to as “low-frequency non-separable transforms” in the VVC specification) can be applied to the primary transform coefficients of intra coded blocks to further reduce the energy of the residual signal. A flag is coded for each block to determine whether the secondary transform is used for that block. In case the block uses a secondary transform, an inverse secondary transform matrix is applied at the decoder to recover the primary transform coefficients.

[0023] For each secondary transform matrix (used at the encoder), there is a corresponding inverse secondary transform matrix (used at the decoder). The selection of a particular secondary transform matrix is determined by the intra prediction mode used to generate the residual signal. Furthermore, a flag is coded for each secondary transform block to decide between one of two possible secondary transform matrices corresponding to the intra prediction mode. In the current VVC draft specification, the secondary transform is used regardless of the primary transform type.

[0024] Aspects of the invention relate to methods to simplify the secondary transform used in video codecs in a streamlined fashion that can remove the unnecessary dependency of the transform / quantization pipeline on the prediction pipeline, enabling independent operation of the two pipelines. Embodiments can further eliminate the use of secondary transforms in cases where the corresponding primary transform is able to recover most of the coding performance on its own, which simplifies both the encoding and decoding processes.

[0025] Embodiments described herein are conceived as modifications to the codec proposed in the envisaged Versatile Video Coding (VVC) specification. However, the reader will appreciate that the principles disclosed herein have potential applicability to other scenarios outside the scope of VVC. The scope of VVC should not be considered as limiting the scope of the present disclosure.

[0026] A first embodiment described herein comprises a method of deriving a set of secondary transforms in intra prediction, the set of secondary transforms comprising a set of secondary transforms for producing residual data and corresponding coefficients.

[0027] This can be seen as an alternative to the existing intra mode based secondary transform set derivation process in the VVC draft specification. In this embodiment, the secondary transform set derivation is performed through a block size based process. This takes advantage of the fact that in the VVC architecture, the block size is readily available in the transform / quantization pipeline and hence this can prevent inter-pipeline dependencies. In addition to the block size, the channel id (luma or chroma) is further incorporated to enhance the accuracy of the proposed secondary transform set derivation process.

[0028] In an embodiment, an identification step is performed to determine which primary transform has been used. Except for the case where the primary transform is obtained as an integer approximation of DCT2 (Discrete Cosine Transform, Category 2) in both the horizontal and vertical directions, the embodiment prohibits the use of a secondary transform. This simplification allows for shorter encoding times and reduced decoder complexity. Compared to the current VVC proposal, this will completely remove one of the context models in the current VVC draft specification.

[0029] Aspects of the present disclosure can be determined from the accompanying claims.

[0030] like Figure 1 , there is shown an arrangement including an illustrative video communication network 10 in which a transmitter 20 and a receiver 30 communicate via a communication channel 40. In practice, the communication channel 40 may comprise a satellite communication channel, a cable network, a terrestrial radio broadcast network, a telephone communication channel such as that used to provide Internet service to homes and small businesses, a fiber optic communication system, or a combination of any of the above and any other conceivable communication medium.

[0031] Furthermore, the present disclosure extends to communication by physically transporting a storage medium having a machine-readable record of an encoded bit stream stored thereon to a suitably configured receiver capable of reading the medium and obtaining a bit stream therefrom. An example of this is the provision of a digital versatile disc (DVD) or equivalent. The following description focuses on signal transmission, such as by electronic or electromagnetic signal carriers, but should not be construed as excluding the aforementioned methods involving storage media.

[0032] like Figure 2 As shown in FIG, transmitter 20 is a computer device in structure and function. It may share certain features with general-purpose computer devices, but some features may be implementation-specific given the specialized functions for which transmitter 20 will be used. The reader will understand which functions may be of a general type and which may require specific configuration for use with a video transmitter.

[0033] Thus, transmitter 20 includes a graphics processing unit (GPU) 202 configured for specific purposes in processing graphics and the like. Transmitter 20 also includes one or more other processors 204 that are commonly provided or configured for other purposes such as mathematical operations, audio processing, and managing communication channels.

[0034] The input interface 206 provides facilities for receiving user input actions. Such user input actions can be caused by user interaction with specific input units including one or more control buttons and / or switches, a keyboard, a mouse or other pointing device, a voice recognition unit capable of receiving and processing voice as control commands, a signal processor configured to receive and control processes from another device such as a tablet or smartphone or a remote control receiver, for example. This list will be understood as non-exhaustive and the reader can envisage other forms of input, whether user initiated or automatic.

[0035] Similarly, the output interface 214 is operable to provide facilities for outputting signals to a user or another device. Such outputs can include display signals for driving a local video display unit (VDU) or any other device.

[0036] The communication interface 208 enables a communication channel with one or more signal recipients, whether broadcast or end-to-end. In the context of the present embodiment, the communication interface is configured to cause transmission of a signal carrying a bitstream encoded by the transmitter 20 of a defined video signal.

[0037] In particular for the benefit of the present disclosure, the processor 204 and the GPU 202 are operable to execute computer programs in the operation of the encoder. In doing so, recourse is made to data storage facilities provided by the mass storage device 208, which is implemented to provide large-scale data storage (albeit at a relatively slow access speed), and in practice will store computer programs and, in the present context, video presentation data, in preparation for execution of the encoding process.

[0038] The read-only memory (ROM) 210 is pre-configured with executable programs designed to provide the functional core of the transmitter 20, and the random access memory 212 is provided for fast access and storage of data and program instructions in pursuit of execution of computer programs.

[0039] Reference will now be made to Figure 3 the functioning of the transmitter 20 will be described. Figure 3 A processing pipeline performed by the encoder implemented on the transmitter 20 by executable instructions is shown, on data files representing a video presentation comprising a plurality of frames for sequential display as a sequence of pictures.

[0040] The data files can also include audio playback information accompanying the video presentation as well as further supplementary information such as electronic program guide information, subtitles or metadata implementing the program of the presentation. The processing of these aspects of the data files is not relevant to the present disclosure.

[0041] Reference will now be made to Figure 3 The current picture or frame in the sequence of pictures is passed to the partitioning module 230 where it is partitioned into rectangular blocks of a given size for encoder processing. This processing can be sequential or parallel. The manner can depend on the processing power of the particular implementation.

[0042] Each block is then input to the prediction module 232 which seeks to discard temporal and spatial redundancies present in the sequence and uses previously encoded content to obtain a prediction signal. The information enabling such a prediction to be calculated is encoded in the bitstream. This information should include sufficient information to enable the calculation to be made, including the possibility of inferring other information required to complete the prediction at the receiver.

[0043] The prediction signal is subtracted from the original signal to obtain a residual signal. This is then input to the transform module 234 which seeks to further reduce the spatial redundancies within the block by using a more suitable data representation. The adoption of a domain transform or otherwise can be signalled in the bitstream.

[0044] The resulting signal is then typically quantized by the quantization module 236 and finally, the resulting data formed of coefficients and information required to calculate the prediction for the current block is input to the entropy encoding module 238 which represents the signal in a compact form by short binary codes exploiting statistical redundancies. Again, the reader will note that entropy encoding can be an optional feature in some embodiments and can be omitted entirely in certain cases. The adoption of entropy encoding and information enabling decoding such as an index of the entropy encoding (e.g. Huffman encoding) mode and / or codebook can be signalled in the bitstream.

[0045] By the repeated action of the encoding facilities of the transmitter 20, a bitstream of block information elements can be constructed for transmission to a receiver or multiple receivers as the case can be. The bitstream can also carry information elements that apply across multiple block information elements and thus, remain in the bitstream syntax independent of the block information elements. Examples of such information elements include configuration options, parameters applicable to a sequence of frames and parameters relating to the entire video presentation.

[0046] The encoding facilities of the transmitter 20 will now be described in more detail with reference to Figure 4 The transform module 234 will now be described in more detail. It will be appreciated that this is by way of example only and other ways can be envisaged within the scope of the present disclosure and the appended claims.

[0047] The following process is performed on each block in the frame.

[0048] The transform process includes the process of deriving a transform matrix to derive the quadratic transform matrix used in the transform module 234.

[0049] In the specific context of the draft VVC proposal, the existing approach relies on the derivation of a secondary transform matrix based on the intra prediction mode adopted in the specific case. In contrast, in the present embodiment, the secondary transform matrix is derived from other characteristics of the block, including characteristics of the coefficients within the block such as whether they belong to the chroma (“chroma”) or luma (“luma”) color component or the number of non-zero coefficients contained within the block or within a specific region within the block (step S1-2), and / or other physical characteristics of the block such as its size or the ratio between its height and width.

[0050] In a first step, a set of possible secondary transform matrices defined for the codec is considered. Two of them are selected (step S1-4) for the transformation of the primary residual of the luma block. The selection of the secondary transform matrix for each block depends on the block size, the color component and / or the ratio between the height and the width of the current block.

[0051] Then, it is determined which of these selected secondary transform matrices is to be used (step S1-6). This determination can be performed using any suitable technique, for example, it can be made on the basis of the efficiency of the resulting transform, i.e. which transform produces the most efficient encoding of the residual data (step S1-8). Together with the transformed residual data (S1-10), the correct inverse secondary transform matrix to be used among those in the selection is signaled to the decoder in the bitstream (step S1-12).

[0052] Alternatively, in another case of the first embodiment, three secondary transform matrices are selected from the set of possible secondary transform matrices used in the VVC draft specification to transform the primary residual of the luma block. The selection of the secondary transform matrix for each block again depends on the block size, the color component and / or the ratio between the height and the width of the current block.

[0053] Then, it is determined which of these selected secondary transform matrices is to be used. This determination can be performed using any suitable technique, for example, it can be made on the basis of the efficiency of the resulting transform, i.e. which transform produces the most efficient encoding of the residual data. The correct inverse secondary transform matrix to be used among those in the selection is signaled to the decoder in the bitstream.

[0054] Further alternatively, in another case of the first embodiment, two or three secondary transform matrices are selected from the set of possible secondary transform matrices used in the VVC draft specification to transform the primary residual of the luma block. The number of possible secondary transforms in the selection as well as the selection of the secondary transform matrix for each block depends on the block size, the color component and / or the ratio between the height and the width of the current block.

[0055] It is again determined which of these selected secondary transform matrices to use. This determination can be performed using any suitable technique, for example, it can be based on the efficiency of the resulting transform, i.e. which transform produces the most efficient coding of the residual data. The correct inverse secondary transform matrix to use among the selected ones is signaled to the decoder in the bitstream.

[0056] Further alternatively, in another case of the first embodiment, even more than three secondary transform matrices are selected from the set of possible secondary transform matrices used in the VVC draft specification to transform the primary residual of the luma block. The number of possible secondary transforms in the selection and the selection of the secondary transform matrix for each block depend on the block size, the color component and / or the ratio between the height and the width of the current block. When it is determined which of the selected secondary transforms should be used, the correct inverse secondary transform matrix to use among the selected ones is signaled to the decoder in the bitstream.

[0057] In a second embodiment, which can be combined with the first embodiment, the number of possible secondary transforms in the selection and / or the selection of the secondary transform matrix for each block depend on the number of non-zero coefficients signaled to the decoder in the bitstream. As Figure 5 The procedure according to this embodiment comprises the same steps as Figure 4 illustrated in the first embodiment, but step S2-3 is interposed between step S2-2 of determining the number of candidate matrices to select and step S2-4.

[0058] Alternatively, the number of possible secondary transforms in the selection and / or the selection of the secondary transform matrix for each block depend on the amplitudes and signs of certain selected coefficients within the block. For example, a modulo operator is applied to one or more coefficients to determine which possible secondary transform matrices should be used for the current block.

[0059] In a third embodiment, which can be combined with the first and / or second embodiment, the use of secondary transforms can be eliminated for certain primary transform types. This can have advantages in terms of signaling the cost of the secondary transform, as for certain blocks the signaling can be avoided, thus reducing the bit rate. Additionally, this can have advantages in terms of potential reduction of complexity at the encoder, as the encoder does not need to search for the best secondary transform option in certain blocks. Additionally, this can have advantages in terms of potential reduction of complexity at the decoder, as the decoder does not need to include the inverse secondary transform capability for certain block types.

[0060] In one case of this embodiment, all primary transform types remove the use of secondary transform except for the case where the integer approximation of DCT2 is used in both the horizontal and vertical directions. The correct inverse secondary transform matrix is signaled in the bitstream for the residual block that was transformed using the integer approximation of DCT2 in both the horizontal and vertical directions.

[0061] As shown in Figure 6 The process involves, in a preliminary step, determining whether DCT2 has been used in both the horizontal and vertical directions (step S3-3). Then, if DCT2 is employed in the primary transform, a candidate secondary transform matrix is selected (step S3-4), the selected secondary transform is applied to the residual transformed by the primary transform, and the secondary transform selection is signaled on the bitstream (step S3-8). The transform output is placed on the bitstream (step S3-10). On the other hand, if DCT2 is not employed in the primary transform, the secondary transform is bypassed (step S3-14), and the residual transformed by the primary transform is placed on the bitstream (step S3-10).

[0062] In another case of the third embodiment, for certain block sizes, the use of secondary transform is removed for all primary transform types except for the case where the integer approximation of DCT2 is used in both the horizontal and vertical directions. The correct inverse secondary transform matrix is signaled in the bitstream for the residual block that was transformed using the primary transform.

[0063] In a fourth embodiment, which can be combined with the first embodiment, and / or the second embodiment, and / or the third embodiment, the use of secondary transform is not explicitly signaled to the decoder in the bitstream, but is rather decided by the application of an inference process applied at both the encoder side and the decoder side. This can have an advantage in terms of reducing the number of bits needed to signal the secondary transform information.

[0064] In one case of this embodiment, the inference process that determines whether a secondary transform is applied to the current block can depend on the number of non-zero coefficients transmitted in the bitstream. Alternatively, the inference process that determines whether a secondary transform is applied to the current block depends on the magnitude and sign of certain selected coefficients within the block. For example, a modulo operator is applied to one or more coefficients to determine whether to apply a secondary transform to the current block.

[0065] In Figure 7 The structural architecture of the receiver is illustrated in The receiver 30 comprises a graphics processing unit 302 configured for specific use in processing graphics and similar operations. The receiver 30 also comprises one or more other processors 304 that are generally provided or configured for other purposes such as mathematical operations, audio processing, and managing communication channels, etc.

[0066] As the reader will appreciate, the receiver 30 can be implemented in the form of a set-top box, a handheld personal electronic device, a personal computer or any other device suitable for video presentation playback.

[0067] The input interface 306 provides facilities for receiving user input actions. For example, such user input actions can be caused by user interaction with specific input units including one or more control buttons and / or switches, a keyboard, a mouse or other pointing device, a voice recognition unit capable of receiving and processing voice as control commands, a signal processor configured to receive and control processes from another device such as a tablet or smartphone or a remote control receiver. This list will be understood as non-exhaustive and the reader can envisage other forms of input, whether user-initiated or automatic.

[0068] Similarly, the output interface 314 is operable to provide facilities for outputting signals to a user or another device. Such output can include a television signal in a suitable format for driving a local television device.

[0069] The communication interface 308 enables a communication channel with one or more signal recipients, whether broadcast or end-to-end. In the context of the present embodiment, the communication interface is configured to cause transmission of a signal carrying a bitstream encoded by the receiver 30, the bitstream defining a video signal.

[0070] In particular for the benefit of the present disclosure, the processor 304 and the GPU 302 are operable to execute computer programs in the operation of the receiver. In doing so, recourse is made to data storage facilities provided by the mass storage device 308, which is implemented to provide large-scale data storage (albeit with relatively slow access speeds), and in practice will store computer programs and, in the present context, video presentation data resulting from the execution of the receiving process.

[0071] The read-only memory (ROM) 310 is pre-configured with executable programs designed to provide the functional core of the receiver 30, and the random access memory 312 is provided for fast access and storage of data and program instructions in pursuit of the execution of computer programs.

[0072] Reference will now be made to Figure 8 the functioning of the receiver 30 will be described. Figure 8 A processing pipeline performed by a decoder implemented on the receiver 20 by executable instructions on the received bitstream at the receiver 30 is shown, the bitstream including structured information from which a video presentation can be derived, including reconstruction of frames encoded by the encoder functionality of the transmitter 20.

[0073] Figure 8The decoding process illustrated in is intended to reverse the process performed at the encoder. The reader will understand that this does not mean that the decoding process is exactly the opposite of the encoding process.

[0074] The received bitstream includes a sequence of coded information elements, each element being associated with a block. The block information elements are decoded in the entropy decoding module 330 to obtain the block of coefficients and the information required to calculate the prediction for the current block. The block of coefficients is typically dequantized in the dequantization module 332 and typically inversely transformed to the spatial domain by the transform module 334. Specific aspects of the operation of the transform module 334 are described in Figure 9 1 and will be described in due course.

[0075] As mentioned above, the reader will recognize that if entropy encoding, quantization, and transform are separately employed at the transmitter, then only entropy decoding, dequantization, and inverse transform need be employed at the receiver.

[0076] The prediction signal is generated by the prediction module 336 as previously described based on previously decoded samples from the current or previous frame and using information decoded from the bitstream. A reconstruction of the original picture block is then derived in the reconstruction block 338 from the decoded residual signal and the calculated prediction block. The prediction module 336 signals the use of intra prediction in response to information on the bitstream and, if such information exists, reads information from the bitstream that enables the decoder to determine which intra prediction mode was employed and, therefore, which prediction technique should be employed in the reconstruction of the block information samples.

[0077] By repeated action of the decoding function on successively received block information elements, picture blocks can be reconstructed into frames, which can then be combined to produce a video presentation for playback.

[0078] exist Figure 9 The figure in FIG. 5 shows an exemplary decoder algorithm that complements the encoder algorithm described previously.

[0079] As previously mentioned, the decoder function of the receiver 30 extracts from the bitstream a series of block information elements defining the block information and accompanying configuration information as encoded by the encoder facility of the transmitter 20 .

[0080] In general, the decoder uses information from previous predictions to construct a prediction for the current block. In doing so, the decoder can combine knowledge from inter-frame predictions (i.e., from the previous frame) and intra-frame predictions (i.e., from another block in the same frame).

[0081] Specifically, the inverse transforms (including the primary inverse transform and the optional secondary inverse transform) are signaled in the bitstream, and this governs the operation of the transform module 334. The implementation of the encoder embodiment described above does not affect the operation of the decoder.

[0082] Specifically, and with reference to the first embodiment of the encoder described above, the decoder is operable to read from the bitstream the transformed residual to be transformed back into the spatial domain (step S4-2). The decoder may read from the bitstream information regarding whether the block of the transformed residual needs to be inverse transformed using an inverse secondary transform and then an inverse primary transform, or whether it only needs to be inverse transformed using an inverse primary transform.

[0083] Alternatively, the decoder can apply an inference process to the bitstream to determine, in correspondence with the encoder, whether an inverse quadratic transform needs to be applied to the current block. This process can depend on, for example, the number of non-zero coefficients in the block, or on the magnitude and sign of certain selected coefficients in the block. For example, a modulo operator is applied to one or more coefficients to determine whether an inverse quadratic transform needs to be applied to the current block.

[0084] In the event that the decoder identifies that a block requires an inverse quadratic transform, the decoder applies an inference process to the bitstream to determine which of the pre-stored inverse quadratic transform matrices corresponding to the encoder can be candidates for use. Part of the inference process will be based on the characteristics of the block being decoded. As described above, these characteristics can include whether the block is chroma data or luminance data, the size of the block, the ratio of the height to the width of the block, and the non-zero population of the block. Another part of the inference process can optionally include selecting how many candidates, i.e., 1, 2, 3, or another number, corresponding to the examples given above for the encoder. Another part of the inference process can optionally include information about the prediction mode used to calculate the prediction for the current block.

[0085] Along with the transformed residual data, a secondary transform matrix indicator is read from the bitstream (step S4-4), indicating to the decoder which of the inferred candidate choices to use.

[0086] The signaled inverse quadratic transform is loaded into memory for use (step S4-6), and finally, the inverse transform is applied to the data (step S4-8).

[0087] The reader will understand, then, Figure 9 The process in

[0054] will be complemented by an inverse primary transform operation. In some embodiments, the primary transform to be used is also signaled in the bitstream. However, it may be the case that a specific primary transform to be used for a block can be inferred, so that the primary transform need not be signaled in the bitstream.

[0088] The reader will also appreciate that appropriate modifications can be made to the process. For example, it can be the case that the data is encoded without applying a secondary transform. In that case, the case can be signalled on the bitstream and the decoder can respond to the signal to omit the secondary transform. On the other hand, it can be that the particular characteristics of the block enable the inference at the decoder that no secondary transform is applied, in which case there is no need to signal and no need to implement the facility at the decoder to enable detection of such a signal on the bitstream.

[0089] Figure 10 Such an implementation is illustrated. In this implementation, for example, the decoder derives the characteristics of the block to be decoded (step S5-2) and then makes a decision based on whether the primary transform used to encode the residual was the integer approximation of DCT2 in both the horizontal and vertical directions (step S5-4). Based on this, the decoder can infer whether or not the secondary transform has been applied and therefore whether or not the inverse is required. If DCT2 has been used, a candidate inverse secondary transform matrix is selected (step S5-6) and the correct matrix is applied (step S5-8). On the other hand, if DCT2 has not been used, the decoder will be able to infer that no secondary transform has been applied (step S5-14).

[0090] For the purpose of constructing a practical algorithm for performing the disclosed decoding process, it can be convenient to consider that determining that no secondary transform is applied can be equivalent to applying a null transform or identity transform. That is, by setting the secondary transform to the identity matrix I, this is equivalent to not applying a transform at all.

[0091] It will be appreciated that the application is not limited to the above-described embodiments and that various modifications and improvements can be made without departing from the concepts described herein. Any feature can be employed singly or in combination with any other feature or features unless specifically stated otherwise, and the disclosure extends to and includes all combinations and sub-combinations of one or more features described herein.

Claims

1. A decoder for decoding an encoded bitstream representing a block of a video frame, the decoder comprising: The inverse transform module is operable to: determining a set of candidate inverse secondary transform matrices based on characteristics of the block to be decoded, wherein determining the set of candidate inverse secondary transform matrices includes determining a number of candidates, the number of candidates determining how many candidate inverse secondary transform matrices are to be determined in the set of candidate inverse secondary transform matrices, the number of candidates being determined based on the characteristics of the block, wherein the characteristics include non-zero coefficients contained in the block; selecting an inverse secondary transform matrix from the set of candidate inverse secondary transform matrices based on a signal received on a bitstream; and applying an inverse matrix transform governed by the inverse secondary transform matrix and the inverse primary transform matrix to the transformed residual information to extract untransformed residual information; and An intra-frame prediction module is configured to calculate a prediction of the block according to an intra-frame prediction mode and reconstruct the block by combining the inverse transformed residual data with the prediction.

2. The decoder according to claim 1, wherein The inverse transform module is operable to determine the inverse secondary transform matrix based on inference from the characteristics of the block being decoded.

3. The decoder according to any one of claims 1 to 2, wherein: The characteristics further include whether the block includes chrominance data or luma data.

4. The decoder according to any one of claims 1 to 3, wherein: The characteristic includes a number of non-zero coefficients within a specified portion of the block.

5. The decoder according to any one of claims 1 to 4, wherein: The inverse secondary transform matrix is ​​selected based on a computational operation applied to one or more of the residual information. The decoder according to claim 5 , wherein: The computation operation is a modulo operation applied to one or more of the residual information.

7. The decoder according to claim 6, wherein: The modulo operation is applied to one or more predetermined ones of the residual information.

8. The decoder according to any one of claims 1 to 7, wherein: The characteristics further include a size characteristic of the block.

9. The decoder according to claim 8, wherein The dimensional characteristic includes at least one of a height or a width of the block.

10. A decoder according to claim 8 or claim 9, wherein: The dimensional characteristic comprises a ratio of the height to the width of the block.

11. The decoder according to any one of claims 1 to 10, wherein: The inverse transform module is operable to select the inverse secondary transform matrix based on a selection of the inverse primary transform matrix.

12. The decoder according to claim 11, wherein The transform module is operable to apply an inverse secondary transform according to the inverse primary transform matrix of a predetermined character.

13. The decoder according to claim 12, wherein: The predetermined character of the inverse primary transform matrix comprises that it is derived as an integer approximation of the discrete cosine transform used in the horizontal direction and the vertical direction.

14. The decoder according to claim 13, wherein: The discrete cosine transform is DCT2.

15. A method for decoding encoded transformed residual information of a block of a video frame, the method comprising: determining a set of candidate inverse secondary transform matrices based on characteristics of a block to be decoded, wherein determining the set of candidate inverse secondary transform matrices includes determining a number of candidates, the number of candidates determining how many candidate inverse secondary transform matrices are to be determined in the set of candidate inverse secondary transform matrices, the number of candidates being determined based on the characteristics of the block, wherein the characteristics include non-zero coefficients contained in the block, selecting an inverse quadratic transform matrix from the set of candidate inverse quadratic transform matrices based on a signal received on a bitstream, Applying an inverse quadratic transform and an inverse primary transform to inversely transform the residual information to extract untransformed residual information, wherein the inverse quadratic transform is calculated based on the inverse quadratic transform matrix; calculating a prediction for the block according to an intra prediction mode; and The block is reconstructed by combining the inverse transformed residual data with the prediction.

16. The method of claim 15, comprising determining the inverse secondary transform matrix based on inference from the characteristics of the block being decoded.

17. The method according to any one of claims 15 to 16, wherein The characteristics further include whether the block includes chrominance data or luma data.

18. The method according to any one of claims 15 to 17, wherein The characteristic comprises the number of non-zero coefficients contained in the block.

19. The method according to any one of claims 15 to 18, wherein The characteristic includes a number of non-zero coefficients within a specified portion of the block.

20. The method according to any one of claims 15 to 19, wherein The inverse secondary transform matrix is ​​selected based on a computational operation applied to one or more of the residual information.

21. The method according to claim 20, wherein The computation operation is a modulo operation applied to one or more of the residual information.

22. The method according to claim 21, wherein The modulo operation is applied to one or more predetermined ones of the residual information.

23. The method according to any one of claims 15 to 22, wherein The characteristics further include a size characteristic of the block.

24. The method according to claim 23, wherein The dimensional characteristic includes at least one of a height or a width of the block.

25. The method according to claim 23 or claim 24, wherein The dimensional characteristic comprises a ratio of the height to the width of the block.

26. A method according to any one of claims 15 to 25, comprising selecting the inverse secondary transform matrix based on selection of an inverse primary transform matrix.

27. The method according to claim 26, wherein The inverse secondary transform is applied according to the inverse primary transform matrix of a predetermined character.

28. The method according to claim 27, wherein The predetermined character of the inverse primary transform matrix comprises that it is derived as an integer approximation of the discrete cosine transform used in the horizontal direction and the vertical direction.

29. The method according to claim 28, wherein The discrete cosine transform is DCT2.

30. A computer-readable medium comprising computer-executable instructions which, when executed on a computer, configure the computer to perform the method according to any one of claims 15 to 29.

Citation Information

Patent Citations

  • Non-separable secondary transform for video coding

    CN108141596A