Signaling mechanism for transform coefficients in video coding
By employing partial coefficients and residuals modes in video coding, only a subset of transform coefficients or residuals are signaled, addressing inefficiencies in existing standards and improving coding efficiency and performance.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- MEDIATEK INC
- Filing Date
- 2026-01-06
- Publication Date
- 2026-07-16
AI Technical Summary
Existing video coding standards like HEVC and VVC face inefficiencies in signaling transform coefficients, leading to increased data transmission and computational complexity, particularly in handling residual blocks and transform coefficients.
Implementing partial coefficients and partial residuals modes, where only a predetermined subset of transform coefficients or prediction residuals are signaled in the bitstream, with remaining values set to predefined values or derived from coding information, reducing the need for full transform operations.
This approach reduces data transmission and computational complexity by selectively encoding and decoding only necessary transform coefficients or residuals, enhancing coding efficiency and performance.
Smart Images

Figure CN2026070812_16072026_PF_FP_ABST
Abstract
Description
SIGNALING MECHANISM FOR TRANSFORM COEFFICIENTS IN VIDEO CODINGCROSS REFERENCE TO RELATED PATENT APPLICATION (S)
[0001] The present disclosure is part of a non-provisional application that claims the priority benefit of U.S. Provisional Patent Application No. 63 / 743,699, filed on 10 January 2025. Content of the above-listed application is herein incorporated by reference.TECHNICAL FIELD
[0002] The present disclosure relates generally to video coding. In particular, the present disclosure relates to methods related to signaling transform coefficients.BACKGROUND
[0003] Unless otherwise indicated herein, approaches described in this section are not prior art to the claims listed below and are not admitted as prior art by inclusion in this section.
[0004] High-Efficiency Video Coding (HEVC) is an international video coding standard developed by the Joint Collaborative Team on Video Coding (JCT-VC) . HEVC is based on the hybrid block-based motion-compensated DCT-like transform coding architecture. The basic unit for compression, termed coding unit (CU) , is a 2Nx2N square block of pixels, and each CU can be recursively split into four smaller CUs until the predefined minimum size is reached. Each CU contains one or multiple prediction units (PUs) .
[0005] Versatile video coding (VVC) is the latest international video coding standard developed by the Joint Video Expert Team (JVET) of ITU-T SG16 WP3 and ISO / IEC JTC1 / SC29 / WG11. The input video signal is predicted from the reconstructed signal, which is derived from the coded picture regions. The prediction residual signal is processed by a block transform. The transform coefficients are quantized and entropy coded together with other side information in the bitstream. The reconstructed signal is generated from the prediction signal and the reconstructed residual signal after inverse transform on the de-quantized transform coefficients. The reconstructed signal is further processed by in-loop filtering for removing coding artifacts. The decoded pictures are stored in the frame buffer for predicting the future pictures in the input video signal.
[0006] In VVC, a coded picture is partitioned into non-overlapped square block regions represented by the associated coding tree units (CTUs) . The leaf nodes of a coding tree correspond to the coding units (CUs) . A coded picture can be represented by a collection of slices, each comprising an integer number of CTUs. The individual CTUs in a slice are processed in raster-scan order. A bi-predictive (B) slice may be decoded using intra prediction or inter prediction with at most two motion vectors (MVs) and reference indices to predict the sample values of each block. A predictive (P) slice is decoded using intra prediction or inter prediction with at most one motion vector and reference index to predict the sample values of each block. An intra (I) slice is decoded using intra prediction only.
[0007] A CTU can be partitioned into one or multiple non-overlapped coding units (CUs) using the quadtree (QT) with nested multi-type-tree (MTT) structure to adapt to various local motion and texture characteristics.
[0008] Each CU contains one or more prediction units (PUs) . The prediction unit, together with the associated CU syntax, works as a basic unit for signaling the predictor information. The specified prediction process is employed to predict the values of the associated pixel samples inside the PU. Each CU may contain one or more transform units (TUs) for representing the prediction residual blocks. A transform unit (TU) is comprised of a transform block (TB) of luma samples and two corresponding transform blocks of chroma samples and each TB correspond to one residual block of samples from one color component. An integer transform is applied to a transform block. The level values of quantized coefficients together with other side information are entropy coded in the bitstream. The terms coding tree block (CTB) , coding block (CB) , prediction block (PB) , and transform block (TB) are defined to specify the 2-D sample array of one-color component associated with CTU, CU, PU, and TU, respectively. Thus, a CTU consists of one luma CTB, two chroma CTBs, and associated syntax elements. A similar relationship is valid for CU, PU, and TU.
[0009] For each inter-predicted CU, motion parameters consisting of motion vectors, reference picture indices and reference picture list usage index, and additional information are used for inter-predicted sample generation. The motion parameter can be signalled in an explicit or implicit manner. When a CU is coded with skip mode, the CU is associated with one PU and has no significant residual coefficients, no coded motion vector delta or reference picture index. A merge mode is specified whereby the motion parameters for the current CU are obtained from neighbouring CUs, including spatial and temporal candidates, and additional schedules introduced in VVC. The merge mode can be applied to any inter-predicted CU. The alternative to merge mode is the explicit transmission of motion parameters, where motion vector, corresponding reference picture index for each reference picture list and reference picture list usage flag and other needed information are signalled explicitly per each CU.SUMMARY
[0010] The following summary is illustrative only and is not intended to be limiting in any way. That is, the following summary is provided to introduce concepts, highlights, benefits and advantages of the novel and non-obvious techniques described herein. Select and not all implementations are further described below in the detailed description. Thus, the following summary is not intended to identify essential features of the claimed subject matter, nor is it intended for use in determining the scope of the claimed subject matter.
[0011] Some embodiments of the disclosure provide a partial coefficients mode in which only a predetermined subset of the transform coefficients of a current block is signaled. When configured to perform encoding operations, a video coder generates a set of prediction residuals for the current block based on a predictor. The video coder transforms the set of prediction residuals into a set of transform coefficients and signals only a predetermined subset of the set of transform coefficients in the bitstream by omitting remaining transform coefficients outside of the subset. When configured to perform decoding operations, the video coder inverse-transforms a set of transform coefficients into a set of prediction residuals of the current block, with only a predetermined subset of the set of transform coefficients parsed from the bitstream and the remaining transform coefficients in the set being set to one or more predefined values.
[0012] Some embodiments of the disclosure provide a partial residuals mode. When configured to perform encoding operations, the video coder generates a set of prediction residuals for the current block based on the generated predictor and signals only a predetermined subset of the set of prediction residuals in the bitstream by omitting prediction residuals of the current block not in the subset. When configured to perform decoding operations, the video coder provides a set of prediction residuals of the current block, with only a predetermined subset of the set of prediction residuals parsed from the bitstream and the remainder of the set of prediction residuals set to one or more predefined values. The current block is then reconstructed based on the predictor of the current block and the set of prediction residuals of the current block.
[0013] In some embodiments, the one or more predefined values may be zeros. The subset of transform coefficients signaled in the bitstream may include only one transform coefficient, or a predetermined number of transform coefficients. The subset of prediction residuals signaled in the bitstream may include only one residual, or a predetermined number of residuals. In some embodiments, one or more syntax elements identifying the position of the last significant transform coefficient are not signaled in the bitstream. In some embodiments, syntax elements signaled in the bitstream may indicate whether the current block is coded by partial coefficient mode or partial residual mode.BRIEF DESCRIPTION OF THE DRAWINGS
[0014] The accompanying drawings are included to provide a further understanding of the present disclosure, and are incorporated in and constitute a part of the present disclosure. The drawings illustrate implementations of the present disclosure and, together with the description, serve to explain the principles of the present disclosure. It is appreciable that the drawings are not necessarily in scale as some components may be shown to be out of proportion than the size in actual implementation in order to clearly illustrate the concept of the present disclosure.
[0015] FIG. 1 illustrates residual samples for a residual block being transformed into transform coefficients of a transform block.
[0016] FIG. 2 illustrates intra prediction samples and their reference samples.
[0017] FIG. 3 illustrates an example block coded by partial coefficient mode.
[0018] FIG. 4 illustrates an example block coded by partial residual mode.
[0019] FIG. 5 illustrates an example video encoder that may implement partial coefficients mode or partial residuals mode.
[0020] FIG. 6 conceptually illustrates a process for encoding pixel blocks using partial coefficients mode or partial residuals mode.
[0021] FIG. 7 illustrates an example video decoder that may implement partial coefficients mode or partial residuals mode.
[0022] FIG. 8 conceptually illustrates a process for decoding pixel blocks using partial coefficients mode or partial residuals mode.
[0023] FIG. 9 conceptually illustrates an electronic system with which some embodiments of the present disclosure are implemented.DETAILED DESCRIPTION
[0024] In the following detailed description, numerous specific details are set forth by way of examples in order to provide a thorough understanding of the relevant teachings. Any variations, derivatives and / or extensions based on teachings described herein are within the protective scope of the present disclosure. In some instances, well-known methods, procedures, components, and / or circuitry pertaining to one or more example implementations disclosed herein may be described at a relatively high level without detail, in order to avoid unnecessarily obscuring aspects of teachings of the present disclosure. I. Transform Scaling and Quantization
[0025] The fundamental idea of utilizing an integer transform to the prediction residual and then quantizing the resulting coefficients has been established in previous standards and is still utilized in VVC. However, VVC goes further by implementing extended transforms, refined quantization, and residual coding to achieve superior energy compaction of the prediction residual. VVC utilizes more advanced designs on transforms and quantization to achieve better coding performance.
[0026] VVC not only utilizes separable square transforms with kernel sizes ranging from 4x4 to 32x32, VVC offers support for non-square transforms by combining various kernel sizes that increase dyadically from length-2 to length-64 both horizontally and vertically.
[0027] Alternative transforms can be more effective at decorrelating the prediction residual, particularly in the case of the intra prediction residual where the prediction error tends to increase as the distance from the boundary samples increases. In HEVC, this is addressed by incorporating an additional 4x4 integer approximation of the DST type-VII for intra prediction luma residuals. VVC takes this a step further by introducing four additional horizontal / vertical combinations of separate DST type-VII and DCT type-VIII integer kernels for all square and non-square luma block sizes ranging from 4x4 to 32x32. The selection of which transform to use is either explicitly signaled per CU or implicitly derived based on the width and height of the transform block. Similar to the DCT type-II based transform of length 64, the non-DCT type-II coefficients outside a 16x16 area are zeroed out to reduce the implementation complexity of the additional transforms.
[0028] The encoder can apply a set of non-separable mode-dependent transforms to the low frequency coefficients of the DCT type-II based primary transform in intra-coded blocks. These additional inverse transform kernels were derived from training data to take advantage of the remaining directionality characteristics present in the intra-picture prediction residual signals.
[0029] When coding inter-predicted CUs, a sub-partition of the residual block may be selected to be coded while the remaining portion is skipped. This coded residual sub-partition can be either half or one-quarter the size of the CU, with an MTS transform type for the coded residual being implicitly inferred. The left, right, top, or bottom part of the coded half or quarter sub-partition can be selected, resulting in a total of 8 modes that need to be signaled per CU.
[0030] The remaining correlations present in the quantized chroma residual signal may be exploited through the use of a Joint Coding of Chroma Residuals (JCCR) mode. This mode signals only one residual block, which is then utilized to derive residual blocks for both chroma components.
[0031] The coding efficiency of trellis-coded quantization may be increased by increasing the number of quantization states (at the cost of a higher encoder complexity) . Dependent quantization with 8 quantization states in addition to the current variant of dependent quantization with 4 quantization state is supported.
[0032] There are three aspects that depend on the quantization state QState: (a) the mapping of transmitted transform coefficient levels to intermediate quantization indexes (part of the dequantization specified in the syntax) ; (b) the context selection for the sig_coeff_flag; (c) the derivation of the mapping parameter ZeroPos [] for transform coefficient levels coded in bypass mode.
[0033] The mapping of transmitted transform coefficient levels to intermediate quantization indexes is TransCoeffLevel [x0] [y0] [cIdx] [xC] [yC] = (2 *AbsLevel [xC] [yC] - (QState &1) ) * (1 -2 *coeff_sign_flag [n] )
[0034] The context selection of the sig_coeff_flag depends on a parameter (context set id) that is derived based on the quantization state. In VVC, this parameter is given by Max (0, QState –1) . With the relabelling of the quantization states, this parameter can be derived according to ctxSetId [QState &3] with ctxSetId [] = {0, 1, 0, 2} .
[0035] The derivation of the mapping parameter ZeroPos [] for transform coefficient levels coded in bypass mode is ZeroPos [n] = (1 + (QState &1) ) << cRiceParam
[0036] Both CTU size and maximum transform size (i.e., all MTS transform kernels) are extended to 256, where the maximum intra coded block can have a size of 128x128. The maximum CTU size is set to 256 for UHD sequences and it is set to 128, otherwise. In the primary transformation process, there is no normative zeroing out operation applied on transform coefficients. However, if LFNST is applied, the primary transform coefficients outside the LFNST region are normatively zeroed-out.
[0037] For MTS, only DST7 and DCT8 transform kernels are utilized which are used for intra and inter coding. Additional primary transforms including DCT5, DST4, DST1, and identity transform (IDT) are employed. Also MTS set is made dependent on the TU size and intra mode information. 16 different TU sizes are considered, and for each TU size 5 different classes are considered depending on intra-mode information. For each class, 1, 4 or 6 different transform pairs are considered. Number of intra MTS candidates are adaptively selected (between 1, 4 and 6 MTS candidates) depending on the sum of absolute value of transform coefficients. The sum is compared against the two fixed thresholds to determine the total number of allowed MTS candidates.
[0038] For angular modes, a joint symmetry over TU shape and intra prediction is considered. So, a mode i (i > 34) with TU shape A×B will be mapped to the same class corresponding to the mode j = (68 –i) with TU shape B×A. However, for each transform pair the order of the horizontal and vertical transform kernel is swapped. For example, for a 16x4 block with mode 18 (horizontal prediction) and a 4x16 block with mode 50 (vertical prediction) are mapped to the same class. However, the vertical and horizontal transform kernels are swapped. For the wide-angle modes the nearest conventional angular mode is used for the transform set determination. For example, mode 2 is used for all the modes between -2 and -14. Similarly, mode 66 is used for mode 67 to mode 80.
[0039] For the MTS of inter-coded CUs, four candidates: { (DST7, DST7) , (DST7, DCT8) , (DCT8, DST7) , (DCT8, DCT8) } are used for every CU. For the larger resolution sequences (width > 1080) maximum CU size for Inter-MTS usage is set to 32 (i.e., Inter-MTS is used for CU with width <=32 and height <=32) , and for the remaining sequences (smaller resolution) it is set to 16. For 4-pt, 8-pt and 16-pt transforms, the current AMT transform cores, i.e., DST-7 and DCT-8, may be replaced with separable KLTs.
[0040] Quantization is performed using integer arithmetic in HEVC, with quantizer step size doubling for every increase of QP by 6. The QP remainder (QP%6) specifies a fractional scaling of the quantizer step size normalized at 16384 (corresponding to 2QUANT_SHIFT, with QUANT_SHIFT equal to 14) and using a table f [x] . When scaling lists are used, an additional fractional scaling is performed that depends on the position of the transform coefficient in the TB, with either a default scaling list used, or a scaling list supplied via a file. The additional fractional scaling is normalized at 16.
[0041] When scaling lists are not used, the quantized transform coefficients qij (i, j=0.. nS-1) are derived from the transform coefficients dij (i, j=0.. nS-1) and the scaling list sij (i, j = 0.. nS-1) as qij = (dij *f [QP%6] + offset) >> (QUANT_SHIFT + MAX_TR_DYNAMIC_RANGE +QP / 6 –log2 (nS) -BitDepth) , with i, j = 0, ..., nS-1 where f [x] = {26214, 23302, 20560, 18396, 16384, 14564} , x=0, …, 5 228+QP / 6-nS-BitDepth < offset < 229+QP / 6-nS-BitDepth QUANT_SHIFT = 14 MAX_TR_DYNAMIC_RANGE = 15 when extended_precision_processing_flag is equal to 0.
[0042] When scaling lists are used, the quantized transform coefficients qij (i, j=0.. nS-1) are derived from the transform coefficients dij (i, j=0.. nS-1) and the scaling list sij (i, j = 0.. nS-1) as qij = (dij * (f [QP%6] << 4 / sij) + offset) >> (QUANT_SHIFT +MAX_TR_DYNAMIC_RANGE + QP / 6 –log2 (nS) -BitDepth) , with i, j = 0, ..., nS-1
[0043] The value offset is set at 171 / 512 for I slices and 85 / 512 for P or B slices. When scaling lists are not applied, sij = 16 for all i and j. II. Signaling Transform Coefficients
[0044] In the prediction stage of a video codec, different coding or prediction modes are applied to generate the predictors for each sample of the current block. This block of predictors is termed as prediction block (PU) . A residual block is then obtained by calculate per-sample differences (prediction residuals) between the prediction block and the original block which contains the original uncompressed samples. The video coder may selectively apply transform to the residual block or not. The quantized transform coefficients and the quantized transform skipped residual signal are then signaled into the bitstream. FIG. 1 illustrates residual samples for a residual block being transformed into transform coefficients of a transform block 120. As illustrated, for a 4x4 current block, the residual samples (ri, j) of the residual block 110 are transformed into transform domain to obtain the transform coefficients (Ci, j) of the transform block 120.
[0045] In general, the prediction modes used to generate the residual samples can be categorized into two approaches: intra prediction and inter prediction. The intra prediction utilizes only the reconstructed samples within the current picture / slice while the inter prediction further utilizes the reconstructed samples in the other reconstructed pictures / slices. FIG. 2 illustrates intra prediction samples and their reference samples for some embodiments. As illustrated, the intra prediction generated predictors (pi, j) for a current block 200 are derived using the spatially reconstructed samples (rci, j) . The residual samples are then generated by subtracting the original samples by the prediction samples (pi, j) . The residual samples (ri, j) of the current block 200 is then transformed into transform domain to obtain a block of transform coefficients (Ci, j) , as described by reference to FIG. 1 above.
[0046] Some embodiments of the disclosure provide a new coding mode termed as partial coefficient (PC) mode. The PC mode is built upon the concept of the skip mode in which transform coefficients are not signaled at all. Under the PC mode, after the transform process is applied to the residual block, but only a predetermined subset of the transform coefficients are selected to be coded and signaled into the bitstream. FIG. 3 illustrates an example block 300 coded by partial coefficient mode. As illustrated, the transform process is applied to a 4x4 residual block 300 (r0, 0, r0,1, …) to form a 4x4 coefficient block 310 (C0, 1, C0, 1, …) , but only a predetermined subset of the coefficients (non-shaded coefficients) are signaled into the bitstream. The remaining coefficients (shaded coefficients) may be set to predefined values (e.g. all remaining coefficients are set to zero) or derived from the signaled coefficients and / or the coding information such as the prediction modes, predictors and so on.
[0047] For example, the signaled coefficient may include only C0, 0, which is the top-left transform coefficient (or so called DC coefficient) and the remaining coefficients may be set to predefined values (e.g., all remaining coefficients are set to zero) or derived from the signaled coefficients and / or the coding information such as the prediction modes, predictors and so on.
[0048] For another example, the signaled coefficients may include only C0, 0, and C0, 1, and the remaining coefficients may be set to predefined values (e.g. all remaining coefficients are set to zero) or the remaining coefficients could be derived from the signaled coefficients and / or the coding information such as the prediction modes, predictors and so on.
[0049] For another example, the signaled coefficients may include only C0, 0, and C1, 0, and the remaining coefficients may be set to predefined values (e.g. all remaining coefficients are set to zero) or the remaining coefficients could be derived from the signaled coefficients and / or the coding information such as the prediction modes, predictors and so on.
[0050] For another example, the signaled coefficients may include only C0, 0, C0, 1 and C1, 0, and the remaining coefficients may be set to predefined values (e.g. all remaining coefficients are set to zero) or the remaining coefficients could be derived from the signaled coefficients and / or the coding information such as the prediction modes, predictors and so on.
[0051] For another example, the signaled coefficients may include only C0, 0, C0, 1, C0, 2, …, C0, w-1 and C1, 0, C2, 0, C4, 0, …, Ch-1, 0, (where w is block width while h is the block height. ) The remaining coefficients may be set to predefined values (e.g. all remaining coefficients are set to zero) or derived from the signaled coefficients and / or the coding information such as the prediction modes, predictors and so on.
[0052] Some embodiments of the disclosure provide a new coding mode termed as transform skipped “partial residual” (PR) mode. If transform skip is applied, the residual signaled is directly signaled into the bitstream without applying any transform operations. In some embodiments, only a predetermined subset of the residuals of a block are selected to be coded and signaled into the bitstream. FIG. 4 illustrates an example block coded by partial residual mode. As illustrated, a 4x4 residual block 400 having residuals r0, 0, r0, 1…, r3, 3 is transform skipped to become a transform skipped block 410 such that transform operations are not applied to the residuals, and the residuals are coded directly into the bitstream without transform. In some embodiments, only a predetermined subset of the residuals (illustrated as not-shaded, r0, 0, r0, 1, r1, 0, r1, 1) in the transform skipped block 410 is directly signaled into the bitstream without applying any transform operations. The remaining residuals (illustrated as shaded) may be set to predefined values (e.g. all remaining residuals are set to zero) or derived from the signaled residuals and / or the coding information such as the prediction modes, predictors and so on.
[0053] For example, the signaled residual may include only r0, 0, which is the top-left residuals. The remaining coefficients may be set to predefined values (e.g. all remaining coefficients are set to zero) or derived from the signaled coefficients and / or the coding information such as the prediction modes, predictors and so on.
[0054] For another example, the signaled coefficients may include only r0, 0, r0, 1 and r1, 0. The remaining coefficients may be set to predefined values (e.g. all remaining coefficients are set to zero) or derived from the signaled coefficients and / or the coding information such as the prediction modes, predictors and so on.
[0055] For another example, the signaled coefficients may include only r0, 0, r0, 1, r0, 2, …r0, w-1 and r1, 0, r2, 0, r3, 0, …, rh-1, 0, (where w is block width while h is the block height) . The remaining coefficients could be set to predefined values (e.g. all remaining coefficients are set to zero) or derived from the signaled coefficients and / or the coding information such as the prediction modes, predictors and so on.
[0056] For another example, the signaled coefficients may include only the residuals located within the bottom-right quarter of the block, (e.g., r2, 2, r2, 3, r3, 2 and r3, 3 for the 4x4 residual block 300) . The remaining coefficients may be set to predefined values (e.g., all remaining coefficients are set to zero) or derived from the signaled coefficients and / or the coding information such as the prediction modes, predictors and so on.
[0057] In some embodiments, when the partial coefficient mode or the partial residual mode is used for coding the current CU, some syntax elements or flags related to indicating whether the CU is coded are inferred as ‘1’ (meaning affirmative) and not signaled in the coded video of bitstream. Such syntax elements omitted from signaling include cu_coded_flag (coding unit is coded) , tu_y_coded_flag, (transform unit for luma is coded) , tu_cb_coded_flag (transform unit for Cb is coded) , tu_cr_coded_flag (transform unit for Cr) .
[0058] In some embodiments, when the partial coefficient mode or the partial residual mode is used for coding the current CU, some syntax elements or flags related to indicating the position of the last significant coefficient of a block are not signaled in the coded video or bitstream. Such syntax elements omitted from signaling include last_sig_coeff_x_prefix, last_sig_coeff_y_prefix, last_sig_coeff_x_suffix, and last_sig_coeff_y_suffix. The position of the last significant coefficient / residual may be inferred as the position of c0, 0 or r0, 0 when the partial coefficient / residual mode allows only c0, 0 or r0, 0 to be signaled. III. Example Video Encoder
[0059] FIG. 5 illustrates an example video encoder 500 that may implement partial coefficients mode or partial residuals mode. As illustrated, the video encoder 500 receives input video signal from a video source 505 and encodes the signal into bitstream 595. The video encoder 500 has several components or modules for encoding the signal from the video source 505, at least including some components selected from a transform module 510, a quantization module 511, an inverse quantization module 514, an inverse transform module 515, an intra estimation module 524, an intra prediction module 525, a motion compensation module 530, a motion estimation module 535, an in-loop filter 545, a reconstructed picture buffer 550, a MV buffer 565, and a MV prediction module 575, and an entropy encoder 590. The motion compensation module 530 and the motion estimation module 535 are part of an inter-prediction module 540. The intra-prediction module 525 and the intra-estimation module 524 are part of a current picture prediction module 520, which uses current picture reconstructed samples as reference samples for prediction of the current block.
[0060] In some embodiments, the modules 510 –590 are modules of software instructions being executed by one or more processing units (e.g., a processor) of a computing device or electronic apparatus. In some embodiments, the modules 510 –590 are modules of hardware circuits implemented by one or more integrated circuits (ICs) of an electronic apparatus. Though the modules 510 –590 are illustrated as being separate modules, some of the modules can be combined into a single module.
[0061] The video source 505 provides a raw video signal that presents pixel data of each video frame without compression. A subtractor 508 computes the difference between the raw video pixel data of the video source 505 and the predicted pixel data 513 from the motion compensation module 530 or intra-prediction module 525 as prediction residual 509. The transform module 510 converts the difference (or the residual pixel data or residual signal 508) into transform coefficients (e.g., by performing Discrete Cosine Transform, or DCT) . The quantization module 511 quantizes the transform coefficients into quantized data (or quantized coefficients) 512, which is encoded into the bitstream 595 by the entropy encoder 590.
[0062] The inverse quantization module 514 de-quantizes the quantized data (or quantized coefficients) 512 to obtain transform coefficients 518, and the inverse transform module 515 performs inverse transform on the transform coefficients 518 to produce reconstructed residual 519. The reconstructed residual 519 is added with the predicted pixel data 513 to produce reconstructed pixel data 517. In some embodiments, the reconstructed pixel data 517 is temporarily stored in a line buffer 527 (or intra prediction buffer) for intra-picture prediction and spatial MV prediction. The reconstructed pixels are filtered by the in-loop filter 545 and stored in the reconstructed picture buffer 550. In some embodiments, the reconstructed picture buffer 550 is a storage external to the video encoder 500. In some embodiments, the reconstructed picture buffer 550 is a storage internal to the video encoder 500.
[0063] When partial transform mode is enabled for the current block, the entropy encoder 590 signals only a predetermined subset of the transform coefficients generated by the transform module 510 (based on the prediction residual 509) , while the inverse transform module 515 inverse-transforms that subset of transform coefficients. Transform coefficients not in that subset are set to predetermined values (e.g., zeroes) for the inverse transform operations. The result of the inverse-transform becomes the reconstructed residuals 519 to generate the reconstructed pixel data 517. The entropy encoder 590 may also skip certain syntax elements related to positions of the last significant transform coefficient as there is a predetermined number transform coefficients in the signaled subset.
[0064] When partial residual mode is enabled for the current block, the transform module 510 and the inverse transform module 515 do not perform transform and inverse transform operations on the prediction residuals 509 for the current block (transform skipped) , and only a predetermined subset of such prediction residuals of the current block are signaled by the entropy encoder 590 into the bitstream. The same subset of prediction residuals are provided as the reconstructed residual 519 to become the reconstructed pixel data 517. The prediction residuals not in the subset are set to predetermined values (e.g., zeroes) .
[0065] The intra estimation module 524 derives intra-prediction data (e.g., intra prediction modes) based on the reconstructed pixel data 517 (stored in the line buffer 527) . The intra-prediction data is provided to the entropy encoder 590 to be encoded into bitstream 595. The intra-prediction data is also used by the intra-prediction module 525 to produce the predicted pixel data 513.
[0066] The motion estimation module 535 performs inter-prediction by producing MVs to reference pixel data of previously decoded frames stored in the reconstructed picture buffer 550. These MVs are provided to the motion compensation module 530 to produce predicted pixel data.
[0067] Instead of encoding the complete actual MVs in the bitstream, the video encoder 500 uses MV prediction to generate predicted MVs, and the difference between the MVs used for motion compensation and the predicted MVs is encoded as residual motion data and stored in the bitstream 595.
[0068] The MV prediction module 575 generates the predicted MVs based on reference MVs that were generated for encoding previously video frames, i.e., the motion compensation MVs that were used to perform motion compensation. The MV prediction module 575 retrieves reference MVs from previous video frames from the MV buffer 565. The video encoder 500 stores the MVs generated for the current video frame in the MV buffer 565 as reference MVs for generating predicted MVs.
[0069] The MV prediction module 575 uses the reference MVs to create the predicted MVs. The predicted MVs can be computed by spatial MV prediction or temporal MV prediction. The difference between the predicted MVs and the motion compensation MVs (MC MVs) of the current frame (residual motion data) are encoded into the bitstream 595 by the entropy encoder 590.
[0070] The entropy encoder 590 encodes various parameters and data into the bitstream 595 by using entropy-coding techniques such as context-adaptive binary arithmetic coding (CABAC) or Huffman encoding. The entropy encoder 590 encodes various header elements, flags, along with the quantized transform coefficients 512, and the residual motion data as syntax elements into the bitstream 595. The bitstream 595 is in turn stored in a storage device or transmitted to a decoder over a communications medium such as a network.
[0071] The in-loop filter 545 performs filtering or smoothing operations on the reconstructed pixel data 517 to reduce the artifacts of coding, particularly at boundaries of pixel blocks. In some embodiments, the filtering or smoothing operations performed by the in-loop filter 545 include deblock filter (DBF) , sample adaptive offset (SAO) , and / or adaptive loop filter (ALF) . In some embodiments, luma mapping chroma scaling (LMCS) is performed before the loop filters.
[0072] FIG. 6 conceptually illustrates a process 600 for encoding pixel blocks using partial coefficients mode or partial residuals mode. In some embodiments, one or more processing units (e.g., a processor) of a computing device implementing the encoder 500 performs the process 600 by executing instructions stored in a computer readable medium. In some embodiments, an electronic apparatus implementing the encoder 500 performs the process 600.
[0073] The encoder receives (at block 610) data to be encoded as a current block of pixels in a current picture into a bitstream. The encoder generates (at block 620) a predictor of the current block. The encoder generates (at block 630) a set of prediction residuals for the current block based on the generated predictor.
[0074] The encoder determines (at block 635) whether the current block is to be coded by directly coding residuals into the bitstream without transform operations (i.e., transform skip) . If residuals are to be directly coded into the bitstream, the process proceeds to block 640. Otherwise, the process proceeds to block 670.
[0075] The encoder determines (at block 640) whether partial residual mode is to be used for encoding the current block. If partial residual mode is to be used, the process proceeds to block 650. Otherwise, the encoder signals (at block 660) the entire set of prediction residuals of the current block in the bitstream without transform. In some embodiments, syntax elements signaled in the bitstream indicates whether the current block is coded by partial residual mode. The encoder signals (at block 650) only a predetermined subset of the set of prediction residuals in the bitstream by omitting prediction residuals of the current block not in the subset.
[0076] The encoder transforms (at block 670) the set of prediction residuals into a set of transform coefficients. The encoder determines (at block 675) whether the partial coefficients mode is to be used to encode the current block. If partial coefficient mode is to be used, the process proceeds to block 680. Otherwise, the encoder signals (at block 690) the entire set of transform coefficients in the bitstream. In some embodiments, syntax elements signaled in the bitstream indicates whether the current block is coded by partial coefficient mode.
[0077] The encoder signals (at block 680) only a predetermined subset of the set of transform coefficients in the bitstream by omitting remaining transform coefficients outside of the subset. The subset of transform coefficients signaled in the bitstream may include only one transform coefficient, or a predetermined number of transform coefficients. In some embodiments, one or more syntax elements (e.g., last_sig_coeff_x_prefix, last_sig_coeff_y_prefix, last_sig_coeff_x_suffix, and last_sig_coeff_y_suffix) identifying the position of the last significant transform coefficient are not signaled in the bitstream. IV. Example Video Decoder
[0078] In some embodiments, an encoder may signal (or generate) one or more syntax element in a bitstream, such that a decoder may parse said one or more syntax element from the bitstream.
[0079] FIG. 7 illustrates an example video decoder 700 that may implement partial coefficients mode or partial residuals mode. As illustrated, the video decoder 700 is an image-decoding or video-decoding circuit that receives a bitstream 795 and decodes the content of the bitstream into pixel data of video frames for display. The video decoder 700 has several components or modules for decoding the bitstream 795, including some components selected from an inverse quantization module 714, an inverse transform module 715, an intra-prediction module 725, a motion compensation module 730, an in-loop filter 745, a decoded picture buffer 750, a MV buffer 765, a MV prediction module 775, and a parser 790. The motion compensation module 730 is part of an inter-prediction module 740. The intra-prediction module 725 is part of a current picture prediction module 720, which uses current picture reconstructed samples as reference samples for prediction of the current block.
[0080] In some embodiments, the modules 714 –790 are modules of software instructions being executed by one or more processing units (e.g., a processor) of a computing device. In some embodiments, the modules 714 –790 are modules of hardware circuits implemented by one or more ICs of an electronic apparatus. Though the modules 714 –790 are illustrated as being separate modules, some of the modules can be combined into a single module.
[0081] The parser 790 (or entropy decoder) receives the bitstream 795 and performs initial parsing according to the syntax defined by a video-coding or image-coding standard. The parsed syntax element includes various header elements, flags, as well as quantized data (or quantized coefficients) 712. The parser 790 parses out the various syntax elements by using entropy-coding techniques such as context-adaptive binary arithmetic coding (CABAC) or Huffman encoding.
[0082] The inverse quantization module 714 de-quantizes the quantized data (or quantized coefficients) 712 to obtain transform coefficients, and the inverse transform module 715 performs inverse transform on the transform coefficients 718 to produce reconstructed residual signal 719. The reconstructed residual signal 719 is added with predicted pixel data 713 from the intra-prediction module 725 or the motion compensation module 730 to produce decoded pixel data 717. The decoded pixels data are filtered by the in-loop filter 745 and stored in the decoded picture buffer 750. In some embodiments, the decoded picture buffer 750 is a storage external to the video decoder 700. In some embodiments, the decoded picture buffer 750 is a storage internal to the video decoder 700.
[0083] When partial transform mode is enabled for the current block, the entropy decoder 790 parses only a predetermined subset of the transform coefficients of the current block from the bitstream (since only such subset is signaled) . The inverse transform module 715 inverse-transforms that subset of transform coefficients. Transform coefficients not in that subset are set to predetermined values (e.g., zeroes) for the inverse transform operations. The result of the inverse-transform becomes the reconstructed residuals 719 to generate the reconstructed pixel data 717. The entropy decoder 790 may also skip certain syntax elements related to positions of the last significant transform coefficient as there is a predetermined number transform coefficients in the signaled subset.
[0084] When partial residual mode is enabled for the current block, the prediction residuals are parsed directly from the bitstream 795 by the entropy decoder 790. The parsed prediction residuals are only a predetermined subset of the prediction residuals for the current block, with prediction residuals of the current block not in the subset being set to predetermined values (e.g., zeroes) . The prediction residuals of the current block are provided as the reconstructed residual 719 to become the reconstructed pixel data 717. The inverse transform module 715 does not perform inverse transform operations on the parsed prediction residuals (transform skipped) .
[0085] The intra-prediction module 725 receives intra-prediction data from bitstream 795 and according to which, produces the predicted pixel data 713 from the decoded pixel data 717 stored in the decoded picture buffer 750. In some embodiments, the decoded pixel data 717 is also stored in a line buffer 727 (or intra prediction buffer) for intra-picture prediction and spatial MV prediction.
[0086] In some embodiments, the content of the decoded picture buffer 750 is used for display. A display device 705 either retrieves the content of the decoded picture buffer 750 for display directly, or retrieves the content of the decoded picture buffer to a display buffer. In some embodiments, the display device receives pixel values from the decoded picture buffer 750 through a pixel transport.
[0087] The motion compensation module 730 produces predicted pixel data 713 from the decoded pixel data 717 stored in the decoded picture buffer 750 according to motion compensation MVs (MC MVs) . These motion compensation MVs are decoded by adding the residual motion data received from the bitstream 795 with predicted MVs received from the MV prediction module 775.
[0088] The MV prediction module 775 generates the predicted MVs based on reference MVs that were generated for decoding previous video frames, e.g., the motion compensation MVs that were used to perform motion compensation. The MV prediction module 775 retrieves the reference MVs of previous video frames from the MV buffer 765. The video decoder 700 stores the motion compensation MVs generated for decoding the current video frame in the MV buffer 765 as reference MVs for producing predicted MVs.
[0089] The in-loop filter 745 performs filtering or smoothing operations on the decoded pixel data 717 to reduce the artifacts of coding, particularly at boundaries of pixel blocks. In some embodiments, the filtering or smoothing operations performed by the in-loop filter 745 include deblock filter (DBF) , sample adaptive offset (SAO) , and / or adaptive loop filter (ALF) . In some embodiments, luma mapping chroma scaling (LMCS) is performed before the loop filters.
[0090] FIG. 8 conceptually illustrates a process 800 for decoding pixel blocks using partial coefficients mode or partial residuals mode. In some embodiments, one or more processing units (e.g., a processor) of a computing device implementing the decoder 700 performs the process 800 by executing instructions stored in a computer readable medium. In some embodiments, an electronic apparatus implementing the decoder 700 performs the process 800.
[0091] The decoder receives (at block 810) data to be decoded from a bitstream as a current block of pixels in a current picture. The decoder generates (at block 820) a predictor of the current block by e.g., inter prediction or intra prediction or other prediction modes. The decoder determines (at block 825) whether residuals are coded directly in the bitstream without transform operations for the current block (i.e., transform skip) . If the residuals are directly coded in the bitstream, the process proceeds to block 830. Otherwise, the process proceeds to block 860.
[0092] The decoder determines (at block 830) whether partial residual mode is used to code the current block. If partial residual mode is used, the process proceeds to block 840. Otherwise, the process proceeds to block 835. In some embodiments, syntax elements signaled in the bitstream indicates whether the current block is coded by partial residual mode. The decoder provides (at block 835) a set of prediction residuals of the current block signaled in the bitstream. The process then proceeds to block 850.
[0093] The decoder provides (at block 840) a set of prediction residuals of the current block, wherein only a predetermined subset of the set of prediction residuals are parsed from the bitstream and the remainder of the set of prediction residuals are set to one or more predefined values. The one or more predefined values may be zeros. The subset of prediction residuals signaled in the bitstream may include only one residual, or a predetermined number of residuals.
[0094] The decoder reconstructs (at block 850) the current block based on the predictor of the current block and the set of prediction residuals of the current block.
[0095] The decoder determines (at block 860) whether partial coefficient mode is used to code the current block. If partial coefficient mode is used, the process proceeds to block 880. Otherwise, the process proceeds to block 870. In some embodiments, syntax elements signaled in the bitstream indicates whether the current block is coded by partial coefficient mode. The decoder inverse transforms (at block 870) a set of transform coefficients signaled in the bitstream into a set of prediction residuals of the current block. The process then proceeds to block 890.
[0096] The decoder inverse-transforms (at block 880) a set of transform coefficients into a set of prediction residuals of the current block, wherein only a predetermined subset of the set of transform coefficients are parsed from the bitstream and the remaining transform coefficients in the set are set to one or more predefined values. The one or more predefined values may be zeroes. The subset of transform coefficients signaled in the bitstream may include only one transform coefficient, or a predetermined number of transform coefficients. In some embodiments, one or more syntax elements (e.g., last_sig_coeff_x_prefix, last_sig_coeff_y_prefix, last_sig_coeff_x_suffix, and last_sig_coeff_y_suffix) identifying the position of the last significant transform coefficient are not signaled in the bitstream.
[0097] The decoder reconstructs (at block 890) the current block based on the predictor of the current block and the set of prediction residuals from the inverse-transforming. The decoder may then provide the reconstructed current block for display or output as part of the reconstructed current picture. V. Example Electronic System
[0098] Many of the above-described features and applications are implemented as software processes that are specified as a set of instructions recorded on a computer readable storage medium (also referred to as computer readable medium) . When these instructions are executed by one or more computational or processing unit (s) (e.g., one or more processors, cores of processors, or other processing units) , they cause the processing unit (s) to perform the actions indicated in the instructions. Examples of computer readable media include, but are not limited to, CD-ROMs, flash drives, random-access memory (RAM) chips, hard drives, erasable programmable read only memories (EPROMs) , electrically erasable programmable read-only memories (EEPROMs) , etc. The computer readable media does not include carrier waves and electronic signals passing wirelessly or over wired connections.
[0099] In this specification, the term “software” is meant to include firmware residing in read-only memory or applications stored in magnetic storage which can be read into memory for processing by a processor. Also, in some embodiments, multiple software inventions can be implemented as sub-parts of a larger program while remaining distinct software inventions. In some embodiments, multiple software inventions can also be implemented as separate programs. Finally, any combination of separate programs that together implement a software invention described here is within the scope of the present disclosure. In some embodiments, the software programs, when installed to operate on one or more electronic systems, define one or more specific machine implementations that execute and perform the operations of the software programs.
[0100] FIG. 9 conceptually illustrates an electronic system 900 with which some embodiments of the present disclosure are implemented. The electronic system 900 may be a computer (e.g., a desktop computer, personal computer, tablet computer, etc. ) , phone, PDA, or any other sort of electronic device. Such an electronic system includes various types of computer readable media and interfaces for various other types of computer readable media. Electronic system 900 includes a bus 905, processing unit (s) 910, a graphics-processing unit (GPU) 915, a system memory 920, a network 925, a read-only memory 930, a permanent storage device 935, input devices 940, and output devices 945.
[0101] The bus 905 collectively represents all system, peripheral, and chipset buses that communicatively connect the numerous internal devices of the electronic system 900. For instance, the bus 905 communicatively connects the processing unit (s) 910 with the GPU 915, the read-only memory 930, the system memory 920, and the permanent storage device 935.
[0102] From these various memory units, the processing unit (s) 910 retrieves instructions to execute and data to process in order to execute the processes of the present disclosure. The processing unit (s) may be a single processor or a multi-core processor in different embodiments. Some instructions are passed to and executed by the GPU 915. The GPU 915 can offload various computations or complement the image processing provided by the processing unit (s) 910.
[0103] The read-only-memory (ROM) 930 stores static data and instructions that are used by the processing unit (s) 910 and other modules of the electronic system. The permanent storage device 935, on the other hand, is a read-and-write memory device. This device is a non-volatile memory unit that stores instructions and data even when the electronic system 900 is off. Some embodiments of the present disclosure use a mass-storage device (such as a magnetic or optical disk and its corresponding disk drive) as the permanent storage device 935.
[0104] Other embodiments use a removable storage device (such as a floppy disk, flash memory device, etc., and its corresponding disk drive) as the permanent storage device. Like the permanent storage device 935, the system memory 920 is a read-and-write memory device. However, unlike storage device 935, the system memory 920 is a volatile read-and-write memory, such a random access memory. The system memory 920 stores some of the instructions and data that the processor uses at runtime. In some embodiments, processes in accordance with the present disclosure are stored in the system memory 920, the permanent storage device 935, and / or the read-only memory 930. For example, the various memory units include instructions for processing multimedia clips in accordance with some embodiments. From these various memory units, the processing unit (s) 910 retrieves instructions to execute and data to process in order to execute the processes of some embodiments.
[0105] The bus 905 also connects to the input and output devices 940 and 945. The input devices 940 enable the user to communicate information and select commands to the electronic system. The input devices 940 include alphanumeric keyboards and pointing devices (also called “cursor control devices” ) , cameras (e.g., webcams) , microphones or similar devices for receiving voice commands, etc. The output devices 945 display images generated by the electronic system or otherwise output data. The output devices 945 include printers and display devices, such as cathode ray tubes (CRT) or liquid crystal displays (LCD) , as well as speakers or similar audio output devices. Some embodiments include devices such as a touchscreen that function as both input and output devices.
[0106] Finally, as shown in FIG. 9, bus 905 also couples electronic system 900 to a network 925 through a network adapter (not shown) . In this manner, the computer can be a part of a network of computers (such as a local area network ( “LAN” ) , a wide area network ( “WAN” ) , or an Intranet, or a network of networks, such as the Internet. Any or all components of electronic system 900 may be used in conjunction with the present disclosure.
[0107] Some embodiments include electronic components, such as microprocessors, storage and memory that store computer program instructions in a machine-readable or computer-readable medium (alternatively referred to as computer-readable storage media, machine-readable media, or machine-readable storage media) . Some examples of such computer-readable media include RAM, ROM, read-only compact discs (CD-ROM) , recordable compact discs (CD-R) , rewritable compact discs (CD-RW) , read-only digital versatile discs (e.g., DVD-ROM, dual-layer DVD-ROM) , a variety of recordable / rewritable DVDs (e.g., DVD-RAM, DVD-RW, DVD+RW, etc. ) , flash memory (e.g., SD cards, mini-SD cards, micro-SD cards, etc. ) , magnetic and / or solid state hard drives, read-only and recordable discs, ultra-density optical discs, any other optical or magnetic media, and floppy disks. The computer-readable media may store a computer program that is executable by at least one processing unit and includes sets of instructions for performing various operations. Examples of computer programs or computer code include machine code, such as is produced by a compiler, and files including higher-level code that are executed by a computer, an electronic component, or a microprocessor using an interpreter.
[0108] While the above discussion primarily refers to microprocessor or multi-core processors that execute software, many of the above-described features and applications are performed by one or more integrated circuits, such as application specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs) . In some embodiments, such integrated circuits execute instructions that are stored on the circuit itself. In addition, some embodiments execute software stored in programmable logic devices (PLDs) , ROM, or RAM devices.
[0109] As used in this specification and any claims of this application, the terms “computer” , “server” , “processor” , and “memory” all refer to electronic or other technological devices. These terms exclude people or groups of people. For the purposes of the specification, the terms display or displaying means displaying on an electronic device. As used in this specification and any claims of this application, the terms “computer readable medium, ” “computer readable media, ” and “machine readable medium” are entirely restricted to tangible, physical objects that store information in a form that is readable by a computer. These terms exclude any wireless signals, wired download signals, and any other ephemeral signals.
[0110] While the present disclosure has been described with reference to numerous specific details, one of ordinary skill in the art will recognize that the present disclosure can be embodied in other specific forms without departing from the spirit of the present disclosure. In addition, a number of the figures (including FIG. 6 and FIG. 8) conceptually illustrate processes. The specific operations of these processes may not be performed in the exact order shown and described. The specific operations may not be performed in one continuous series of operations, and different specific operations may be performed in different embodiments. Furthermore, the process could be implemented using several sub-processes, or as part of a larger macro process. Thus, one of ordinary skill in the art would understand that the present disclosure is not to be limited by the foregoing illustrative details, but rather is to be defined by the appended claims. Additional Notes
[0111] The herein-described subject matter sometimes illustrates different components contained within, or connected with, different other components. It is to be understood that such depicted architectures are merely examples, and that in fact many other architectures can be implemented which achieve the same functionality. In a conceptual sense, any arrangement of components to achieve the same functionality is effectively "associated" such that the desired functionality is achieved. Hence, any two components herein combined to achieve a particular functionality can be seen as "associated with" each other such that the desired functionality is achieved, irrespective of architectures or intermediate components. Likewise, any two components so associated can also be viewed as being "operably connected" , or "operably coupled" , to each other to achieve the desired functionality, and any two components capable of being so associated can also be viewed as being "operably couplable" , to each other to achieve the desired functionality. Specific examples of operably couplable include but are not limited to physically mateable and / or physically interacting components and / or wirelessly interactable and / or wirelessly interacting components and / or logically interacting and / or logically interactable components.
[0112] Further, with respect to the use of substantially any plural and / or singular terms herein, those having skill in the art can translate from the plural to the singular and / or from the singular to the plural as is appropriate to the context and / or application. The various singular / plural permutations may be expressly set forth herein for sake of clarity.
[0113] Moreover, it will be understood by those skilled in the art that, in general, terms used herein, and especially in the appended claims, e.g., bodies of the appended claims, are generally intended as “open” terms, e.g., the term “including” should be interpreted as “including but not limited to, ” the term “having” should be interpreted as “having at least, ” the term “includes” should be interpreted as “includes but is not limited to, ” etc. It will be further understood by those within the art that if a specific number of an introduced claim recitation is intended, such an intent will be explicitly recited in the claim, and in the absence of such recitation no such intent is present. For example, as an aid to understanding, the following appended claims may contain usage of the introductory phrases "at least one" and "one or more" to introduce claim recitations. However, the use of such phrases should not be construed to imply that the introduction of a claim recitation by the indefinite articles "a" or "an" limits any particular claim containing such introduced claim recitation to implementations containing only one such recitation, even when the same claim includes the introductory phrases "one or more" or "at least one" and indefinite articles such as "a" or "an, " e.g., “a” and / or “an” should be interpreted to mean “at least one” or “one or more; ” the same holds true for the use of definite articles used to introduce claim recitations. In addition, even if a specific number of an introduced claim recitation is explicitly recited, those skilled in the art will recognize that such recitation should be interpreted to mean at least the recited number, e.g., the bare recitation of "two recitations, " without other modifiers, means at least two recitations, or two or more recitations. Furthermore, in those instances where a convention analogous to “at least one of A, B, and C, etc. ” is used, in general such a construction is intended in the sense one having skill in the art would understand the convention, e.g., “a system having at least one of A, B, and C” would include but not be limited to systems that have A alone, B alone, C alone, A and B together, A and C together, B and C together, and / or A, B, and C together, etc. In those instances where a convention analogous to “at least one of A, B, or C, etc. ” is used, in general such a construction is intended in the sense one having skill in the art would understand the convention, e.g., “a system having at least one of A, B, or C” would include but not be limited to systems that have A alone, B alone, C alone, A and B together, A and C together, B and C together, and / or A, B, and C together, etc. It will be further understood by those within the art that virtually any disjunctive word and / or phrase presenting two or more alternative terms, whether in the description, claims, or drawings, should be understood to contemplate the possibilities of including one of the terms, either of the terms, or both terms. For example, the phrase “A or B” will be understood to include the possibilities of “A” or “B” or “A and B. ”
[0114] From the foregoing, it will be appreciated that various implementations of the present disclosure have been described herein for purposes of illustration, and that various modifications may be made without departing from the scope and spirit of the present disclosure. Accordingly, the various implementations disclosed herein are not intended to be limiting, with the true scope and spirit being indicated by the following claims.
Claims
1.A video decoding method comprising:receiving data from a bitstream for a block of pixels to be decoded as a current block of a current picture of a video;generating a predictor of the current block;inverse-transforming a set of transform coefficients into a set of prediction residuals of the current block, wherein only a predetermined subset of the set of transform coefficients are parsed from the bitstream and the remaining transform coefficients in the set are set to one or more predefined values;reconstructing the current block based on the predictor of the current block and the set of prediction residuals from the inverse-transforming; andoutputting the reconstructed current block.2.The video decoding method of claim 1, wherein a syntax element is signaled to indicate that only a predetermined subset of the transform coefficients of the current block are signaled in the bitstream.3.The video decoding method of claim 1, wherein the subset of transform coefficients signaled in the bitstream comprises only one transform coefficient.4.The video decoding method of claim 1, wherein the remaining transform coefficients of the set of transform coefficients are set to zero.5.The video decoding method of claim 1, wherein the subset of transform coefficients signaled in the bitstream comprises a predetermined number of transform coefficients.6.The video decoding method of claim 5, wherein one or more syntax elements identifying the position of the last significant transform coefficient are not signaled.7.A video decoding method comprising:receiving data from a bitstream for a block of pixels to be decoded as a current block of a current picture of a video;generating a predictor of the current block;providing a set of prediction residuals of the current block, wherein only a predetermined subset of the set of prediction residuals are parsed from the bitstream and the remainder of the set of prediction residuals are set to one or more predefined values;reconstructing the current block based on the predictor of the current block and the set of prediction residuals of the current block; andoutputting the reconstructed current block.8.The video decoding method of claim 7, wherein a syntax element is signaled to indicate that only a predetermined subset of the prediction residuals of the current block are signaled in the bitstream.9.The video decoding method of claim 7, wherein the predefined values are zero.10.The video decoding method of claim 7, wherein the subset of prediction residuals signaled in the bitstream comprises only one residual.11.The video decoding method of claim 7, wherein the subset of prediction residuals signaled in the bitstream comprises a predetermined number of residuals.12.An electronic apparatus comprising a video coder circuit configured to perform operations comprising:receiving data to be encoded or decoded as a current block of pixels of a current picture of a video; andgenerating a predictor of the current block;wherein when the video coder circuit is performing encoding operations, the video coder circuit is further configured to perform operations comprising:generating a set of prediction residuals for the current block based on the generated predictor;transforming the set of prediction residuals into a set of transform coefficients; andsignaling only a predetermined subset of the set of transform coefficients in the bitstream and omitting remaining transform coefficients outside of the subset;wherein when the video coder circuit is performing decoding operations, the video coder circuit is further configured to perform operations comprising:inverse-transforming a set of transform coefficients into a set of prediction residuals of the current block, wherein only a predetermined subset of the set of transform coefficients are parsed from the bitstream and the remaining transform coefficients in the set are set to one or more predefined values;reconstructing the current block based on the predictor of the current block and the set of prediction residuals from the inverse-transforming; andoutputting the reconstructed current block.13.A video encoding method comprising:receiving raw pixel data to be encoded as a current block of pixels of a current picture of a video into a bitstream;generating a predictor of the current block;generating a set of prediction residuals for the current block based on the generated predictor;transforming the set of prediction residuals into a set of transform coefficients; andsignaling only a predetermined subset of the set of transform coefficients in the bitstream by omitting remaining transform coefficients outside of the subset.14.The video encoding method of claim 13, wherein a syntax element is signaled to indicate that only a predetermined subset of the transform coefficients of the current block is signaled in the bitstream.15.The video encoding method of claim of claim 13, wherein the subset of the set of transform coefficients signaled in the bitstream comprises only one transform coefficient.16.The video encoding method of claim of claim 13, wherein the set of transform coefficients signaled in the bitstream comprises a predetermined number of transform coefficients.17.The video encoding method of claim of claim 16, wherein one or more syntax elements identifying the position of the last significant coefficient are not signaled.18.A video encoding method comprising:receiving raw pixel data to be encoded as a current block of pixels of a current picture of a video into a bitstream;generating a predictor of the current block;generating a set of prediction residuals for the current block based on the generated predictor; andsignaling only a predetermined subset of the set of prediction residuals in the bitstream by omitting prediction residuals of the current block not in the subset.19.The video encoding method of claim of claim 18, wherein a syntax element is signaled to indicate that only a predetermined subset of the prediction residuals of the current block are signaled in the bitstream.20.The video encoding method of claim of claim 19, wherein the subset of the set of prediction residuals signaled in the bitstream comprises only one prediction residual.