Adaptive color space transform coding

Adaptive color space transformation coding addresses inefficiencies in existing methods by applying selectable color transforms to residual data, improving encoding efficiency and reducing artifacts in image data processing.

JP2026010147AActive Publication Date: 2026-01-21APPLE INC
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2025177196
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2013-07-11
Filing Date
2025-10-21
Publication Date
2026-01-21
Estimated Expiration
2034-04-01

AI Technical Summary

Technical Problem

Existing image data encoding methods, particularly for formats like RGB 4:4:4, are inefficient due to redundant information between color components, leading to reduced coding efficiency and increased complexity, while formats like YUV 4:4:4 or YCoCg and YCoCg-R may introduce artifacts and require external color conversions.

Method used

Implement adaptive color space transformation coding using selectable color transforms applied to residual data, with signaling options at various levels to optimize encoding and decoding processes, including implicit and explicit signaling of color transform matrices and coefficients.

Benefits of technology

Enhances coding efficiency by reducing redundancy and minimizing artifacts, while maintaining computational efficiency and flexibility in encoding and decoding processes.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026010147000001_ABST
    Figure 2026010147000001_ABST
Patent Text Reader

Abstract

To provide a system and method for efficiently transforming and encoding image data.SOLUTION: In the encoding system 100, an analyzer analyzes a current image area of an input video to select a transformation, a selectable residue transformer is controlled by the analyzer to perform the selectable transformation on a residue image generated from the current image area and a predicted current image area to generate a transformed residue image, and an encoder encodes the transformed residue image to generate output data. The analyzer also controls the encoder to encode information identifying the selectable transform and to indicate that the selectable transform for a current image area is different from a transform of a previous image area of the input video. The decoding system includes components suitable for decoding the output data from the encoding system.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to adaptive color space transformation coding.

[0002] This application claims priority to U.S. Patent Application No. 13 / 940,025, filed July 11, 2013 (a continuation-in-part of U.S. Patent Application No. 13 / 905,889, filed May 30, 2013), the entire contents of which are incorporated herein by reference. [Background technology]

[0003] Image data (such as that contained in video) can contain a large amount of information regarding color, pixel location, and time. To process such a large amount of information, it may be necessary to compress or encode the image data without losing too much information from the original video, while at the same time increasing the complexity of the data compression (which could reduce the speed of image data processing). The encoded image data may later need to be decoded and inversely transformed or restored to the original video information.

[0004] To encode an image, pixel color data can first be converted into color data in an appropriate color space coordinate system. The converted data is then encoded. For example, image data may have raw pixel color data in a red / green / blue (RGB) color space coordinate system. To encode the image data, the raw pixel color data in the RGB color space can be converted into color data in a YCbCr color space coordinate system by separating the luminance and chrominance components. The color data in the YCbCr color space coordinate system can then be encoded. Doing so can compress redundant information that may exist among the original three colors by removing the redundancy during the color space conversion.

[0005] Additional redundancy in image data can be removed by performing spatial and temporal prediction during the encoding of the transformed image data, which may be followed by additional encoding of any desired range of remaining residual data, as well as entropy encoding of individual frame data at a time and / or data for the duration of the video sequence. Spatial prediction can predict image data for a single frame in time, removing redundant information between different pixels of the same frame. Temporal prediction can predict image data for the duration of the video sequence, removing redundant information between different frames. Residual images can be generated from the difference between unencoded image data and predicted image data.

[0006] Some color space formats (such as RGB 4:4:4) may be less efficient to encode natively because different color spaces cannot be effectively decorrelated. That is, there may be redundant information between different components that cannot be removed during encoding, which may result in reduced coding efficiency relative to another color space. On the other hand, in some applications, encoding this material in another color space, such as YUV 4:4:4 or YCoCg and YCoCg-R 4:4:4, may be undesirable due to color conversions that may have to be performed outside the encoding loop and due to possible artifacts that may be introduced by the color conversions.

[0007] Therefore, there is a need for improved methods for efficiently transforming and encoding image data. [Brief explanation of the drawings]

[0008] [Figure 1] 1 illustrates an encoding system according to one embodiment of the present disclosure. [Figure 2] 1 illustrates a decoding system according to one embodiment of the present disclosure. [Figure 3] 1 illustrates an encoding method according to an embodiment of the present disclosure. [Figure 4]1 illustrates a decoding method according to an embodiment of the present disclosure. DETAILED DESCRIPTION OF THE INVENTION

[0009] According to the embodiment as shown in FIG. 1, the system 100 includes an analyzer 130 , a selectable residual transformer 160 , and an encoder 170 .

[0010] The analyzer 130 may analyze a current image region of the input video 110 to select a transformation. The selectable residual transformer 160 may be controlled by the analyzer 130 to perform a selectable transformation on a residual image generated from the current image region and the predicted current image region to generate a transformed residual image. The encoder 170 may encode the transformed residual image to generate output data 190. The analyzer 130 may control the encoder 170 to encode information identifying the selectable transformation and indicating that the selectable transformation for the current image region differs from the transformation of a previous image region of the input video.

[0011] Optionally, system 100 may include a frame buffer 120 that stores information (e.g., previously processed image data) of input video 110. Such data in frame buffer 120 may be used by inter-prediction 150, controlled by analyzer 130, to perform temporal prediction, i.e., to generate predicted image data for the current image region based on data from a previous frame. Alternatively, such data in frame buffer 120 may be used by intra-prediction 152, controlled by analyzer 130, to perform spatial prediction, i.e., to generate predicted image data for the current image region based on data from another portion of the current frame. Optionally, analyzer 130 may perform analysis based on data stored in frame buffer 120. The predicted image region of the current image region generated by inter-prediction 150 and / or intra-prediction 152 may be combined with (or subtracted from) the current image region of input video 110 by accumulator 140 to generate a residual image.

[0012] According to one embodiment, the current image region may be one of a frame, a slice, and a coding tree unit. The selectable transforms may include a color space transform. The encoder 170 may include an entropy encoder. The coding information specifying the selectable transforms may specify coefficients of selectable inverse transforms. The coding information specifying the selectable transforms may be included in one of a sequence parameter set, a picture parameter set, and a slice header preceding the coded residual image data for the current image region. The encoder 170 may include a quantizer 174 that may be controlled by the transformer 172 and / or the analyzer 130 to perform quantization.

[0013] The analyzer 130 can select and modify the selectable transforms of the selectable residual transformer 160 and, for example, modify parameters related to the inter-prediction 150, intra-prediction 152, and encoder 170 accordingly to optimize data encoding, data decoding, coded data size, error rate, and / or system resources required for encoding or decoding.

[0014] The next-generation High Efficiency Video Coding (HEVC) standard introduced several new video coding tools in an effort to improve video coding efficiency over previous video coding standards and technologies (such as MPEG-2, MPEG-4 part 2, MPEG-4 AVC / H.264, VC1, and especially VP8).

[0015] The new standard may support encoding of YUV 4:2:0 8- or 10-bit material, using well-defined profiles (e.g., Main, Main 10, and Main Still Picture profiles). There is considerable interest in developing formats that support higher (greater than 10-bit) sample precision (bit depth) and different color sampling formats and color spaces (including YUV or RGB 4:4:4) for professional applications (such as cinematic applications, recording, video editing, archiving, games, and consumer applications, especially those related to screen content compression and sharing).

[0016] The coding principles for higher color sampling formats / spaces are similar to those for formats with lower sampling precision (i.e., 4:2:0 YUV), and can appropriately handle differences in chroma component resolution. While one of the color components can be considered equivalent to the luma component in 4:2:0 YUV coding, the remaining color components can be treated similarly to the chroma component while compensating for the higher resolution. That is, prediction tools such as intra-prediction and motion compensation must compensate for the increase in resolution, and the transform and quantization processes must also handle the additional residual data of the color components. Similarly, other processes such as entropy coding, deblocking, and especially sample adaptive offset (SAO) may need to be expanded to handle the increase in video data. Alternatively, every color component can be coded separately as a separate monochrome image, with each color component playing the role of luma information during the encoding or decoding process.

[0017] To improve coding performance, an additional color space transform may be performed on the residual data, which may result in better decorrelation (less redundancy) between all color components. The selectable color space transform may be applied to the unquantized (dequantized) and inverse transformed residual data using an adaptively derived color space transform matrix such as

[0018]

number

[0019] The color transform matrix can be derived using previously recovered image data, such as image data to the left or above the current transform unit, or image data from a transform unit in a previous frame. This derivation can include normalizing the reference samples in each color space by subtracting the mean value from the reference samples and calculating and normalizing a covariance matrix across all color spaces. This allows the HEVC specification to gain some "local" coding performance benefits without adding any new signaling overhead. However, this can add complexity to both the encoder and decoder for deriving the transform parameters.

[0020] To simplify adaptive color transforms in video encoding and decoding, color transforms are applied only to residual data. Additional color transforms are selectable and may be signaled by the encoder. Then, in accordance with the present invention, the decoder can select and perform a corresponding inverse color transform based on the signaling decoded from the encoded data.

[0021] In particular, one or more color transforms can be implicitly or explicitly signaled at different levels within a codec such as HEVC. For example, an encoder may implicitly signal a known color transform from an RGB color space (such as a limited or full-gamut transform of YUV Rec. 709, Rec. 2020, or Rec. 601, and YCoCg). An encoder may explicitly signal a color transform by signaling or specifying all inverse color transform coefficients with a given precision (e.g., listing the transform coefficients or their relationships in a portion of the coded data). Color transforms, including their type, parameters, and coefficients, may be signaled or specified in a sequence parameter set (SPS) NALU, picture parameter set (PPS), and / or slice header. Signaling within a coding tree unit (CTU) may also be possible, although this may be a bit more costly in terms of bitrate and may not be desirable.

[0022] If such transform information is specified for different levels of a video sequence (i.e., pixel blocks of sequences, frames, and CTUs), then the transforms can be predicted within these component hierarchies. That is, the transform in the PPS can be predicted from the transform defined in the SPS, and the transform in the slice header can be predicted from the transform in the PPS and / or SPS. New syntax elements and units can be defined and used to allow this transform prediction between different levels of the video sequence hierarchy, including predicting or not predicting the transform from a specific transform or a higher-order transform, as well as predicting or not predicting the transform coefficients and the precision of the coefficients themselves. The derivation of an explicitly defined color transform can be based on available data, such as sample data from all sequences, pictures, slices, or CTUs. The encoder can choose or select to use data corresponding to the current pixel samples, if available, or can use data from past frames or units that have already been coded. Principal component analysis methods (e.g., covariance methods, iterative methods, nonlinear iterative partial least squares, etc.) can be used to derive the transform coefficients.

[0023] The system can indicate that only one transform should be used for the entire sequence. Therefore, signaling or semantics (i.e., enforced by codec or profile / level) will not allow any changes of color transform within any subcomponent of the sequence (i.e., within a picture, slice, CTU, or transform unit (TU)). Similar restrictions can be implemented at lower levels (i.e., within a picture, slice, or CTU).

[0024] However, the system can also enable color transform switching within a sequence, picture, slice, or even CTU. Color transform switching for every picture and slice can be performed by signaling new color transform parameters for each new data block, overwriting the transform parameters of higher-order or previous blocks. Additional transform parameters can be signaled at lower layers to efficiently enable color transform switching for every CTU, coding unit (CU), or even TU. However, such signaling can occupy a significant number of bits in the resulting coded data stream, thereby increasing the data stream size.

[0025] Alternatively, the color transform can be derived based on various predefined or signaled states in the bitstream. In particular, a particular color transform can be pre-assigned to a particular transform block size, coding unit size, or prediction mode (e.g., intra vs. inter). For example, assuming that the transform units of luma and chroma data are aligned for a particular video sequence, if the size of the luma transform used is 16x16, color transform A is used. If an 8x8 luma transform is used, color transform B is used, and for 32x32 or 4x4 transforms, no color transform is applied. If the transform units of luma and chroma data are not aligned, a different but similar method can be used to compensate for the misalignment of the transform units with respect to the predetermined conditional derivation of the color transform.

[0026] The system can buffer or cache a number of predefined color transforms along with associated processing algorithms so that it can store a codebook (e.g., via a look-up table (LUT)) from which predefined color transforms can be looked up during encoding or decoding. The system can also calculate or predict color transforms and store them in a buffer for later retrieval.

[0027] In some codec standards, prediction units (PUs) and TUs can be defined within a CU without a strict dependency between the two. Therefore, prediction units (PUs) and TUs may not be directly related in terms of size. In other codec standards, when TUs are strictly defined within a PU, PU information such as prediction lists and reference indices can be used to derive color transforms.

[0028] In systems where complexity is not a concern, a combination of the above methods can be used. That is, for every CTU, CU, or transform block, the encoder can signal in the coded data stream whether to use a previously defined / signaled color transform or whether a color transform must be derived separately for the current unit based on neighboring information. This allows the system to control decoder complexity and avoid cases where there is insufficient information to derive a color transform from neighbors. This may be particularly true when neighboring data is uncorrelated around objects or color boundaries or noisy data. The adaptively calculated color transform can be calculated and updated at less frequent time intervals (e.g., per CTU row, or even per CTU), reducing decoder complexity. The stability of the color transform can be increased by slowly adapting the color transform using previously generated values. That is, the calculation of the current color transform in unit (e.g., transform unit) n can be performed as follows: Transform(n) = w0 * Transform(n-1) + w1 * Calculation Transform(n)

[0029] Here, the computed transform(n) is a transform that is estimated based only on local pixel group information. Two weights, w0 and w1, can be predefined or signaled in the system to provide additional flexibility in how the color transform computation is controlled. That is, increasing the value of w0 relative to w1 increases the dependency of the resulting color transform, transform(n), on the neighboring color transform, transform(n-1).

[0030] For example, an encoding system can determine all transforms required to encode a video sequence by analyzing the image data of the video sequence. Then, a cost-effective evaluation can be performed to optimize the encoding, decoding, data quality, and / or encoded data size. For example, if the encoding system has sufficient computational resources, it can perform a "brute force" analysis by running multiple possible color transforms for every individual frame and transform unit. Following this, for each transform unit, if rate-distortion is to be optimized, it selects the color transform that results in the lowest rate distortion. However, such a "brute force" analysis requires a lot of computational resources and is slow, and therefore may not be useful for applications where encoding needs to occur in near "real time" (e.g., "live" video streaming).

[0031] The use of different color transforms for different blocks may affect other parts of the encoding and decoding process. In particular, entropy coding (e.g., based on context-adaptive binary arithmetic coding (CABAC)) assumes that coefficients of neighboring blocks are in the same color region, statistics related to the entropy coding process can be accumulated accordingly, and deblocking can utilize the quantization parameters (QP) used for each color component when filtering block edges.

[0032] However, this may not be the case for systems using block-level adaptive color transforms, which may affect coding performance. For entropy coding, the impact is negligible, and therefore differences in color space can be ignored. Limiting the process to considering neighboring data in the same color space may penalize performance in terms of complexity and implementation, as more context needs to be processed and compensated for for each new color transform that could be used. Therefore, the system may not need to change the coding process for adaptive color transforms.

[0033] On the other hand, changes in the adaptive color transform can be easily compensated for during deblocking. In particular, when deriving appropriate thresholds for deblocking for each color component, the signaled QP value can be used while ignoring the color space used. Alternatively, if there is a QP value used to encode the transformed residual, the QP value can be approximated in the original color domain. For example, a simple approach is to apply the same color transform applied to the residual data to the quantized values ​​as well. Alternatively, define and signal an additional transform that will help convert the quantized values ​​used for the transformed residual to quantized values ​​in the original color space. For simplicity, the system may not need to convert or adjust the quantized values ​​for adaptive color transform.

[0034] According to an embodiment as illustrated in FIG. 2, the system 200 may include a decoder 230, a selectable residual inverse transformer 220, and an accumulator 240.

[0035] The decoder 230 may receive and decode the input data 210. The selectable residual inverse transformer 220 may be controlled by the decoder 230 to perform a selectable inverse transform on the decoded input data to generate an inverse transformed residual image. The accumulator 240 may combine the inverse transformed residual image with a predicted image for the current image region to generate a reconstructed current image region of the output video 290. The decoder 230 may select the selectable inverse transform based on coding information in the input data 210. This coding information identifies the selectable inverse transform and indicates that the selectable inverse transform for the current image region differs from a transform of a previous image region in the output video 290.

[0036] Optionally, the system 200 may include a frame buffer 280 that stores information (e.g., previously processed image data) for the output video 290. Such data in the frame buffer 280 may be used by the inter prediction 250, which may be controlled by the decoder 230 to perform temporal prediction, i.e., to generate predicted image data for the current image region based on data from a previous frame. The intra prediction 260 may be controlled by the decoder 230 to perform spatial prediction, i.e., to generate predicted image data for the current image region based on data from another portion of the current frame. The predicted image region for the current image region generated by the inter prediction 250 and / or intra prediction 260 may be combined with (or added to) the inverse transformed residual image from the selectable residual inverse transformer 220 by the accumulator 240 to generate a reconstructed current image region for the output video 290. The system 220 may also include an adjuster 270 that adjusts the reconstructed current image region for the output video 290. The adjuster 270 may include deblocking 272 and sample adaptive offset (SAO) 274. The adjuster 270 may output to an output video 290 and / or a frame buffer 280.

[0037] According to one embodiment, the current image region may be one of a frame, a slice, and a coding tree unit. The selectable inverse transforms may include a color space transform. The decoder 230 may include an entropy decoder. The coding information specifying the selectable inverse transforms may specify coefficients of the selectable inverse transforms. The coding information specifying the selectable inverse transforms may be included in one of a sequence parameter set, a picture parameter set, and a slice header preceding the coded residual image data for the current image region. The decoder 230 may include an inverse transformer 232 and / or an inverse quantizer 234 that performs quantization. The output video 290 may be connected to a display device (not shown) and displayed.

[0038] The decoder 230 can select and modify the selectable inverse transforms of the selectable residual inverse transformer 220 and can modify parameters for, for example, inter-prediction 250, intra-prediction 260, and adjuster 270 accordingly based on the coding information of the received input data that specifies the selectable inverse transforms.

[0039] FIG. 3 illustrates a method 300 according to one embodiment.

[0040] The method 300 may include a block 310 of analyzing, by an analyzer, a current image region of the input video to select a transformation.

[0041] In block 320, a selectable residual transformer, under control of the analyzer, performs a selectable transform on the residual image generated from the current image region and the predicted current image region to generate a transformed residual image.

[0042] In block 330, an encoder encodes the transformed residual image to generate output data.

[0043] According to one embodiment, the analyzer can control the encoder to encode information identifying selectable transformations and indicating that the selectable transformations for a current image region are different from transformations of previous image regions in the input video.

[0044] According to one embodiment, the analyzer may analyze the input video and select a global sequence color transform for the entire video sequence. It can then analyze and select residual color transforms for individual frames, slices, pixel blocks, CTUs, etc. The analyzer may continuously analyze the input video and perform on-the-fly color transform selection for each frame as the input video is received and processed for encoding. Alternatively, the analyzer may select a color transform and analyze the entire input video sequence in its entirety before encoding begins.

[0045] FIG. 4 illustrates a method 400 according to one embodiment.

[0046] The method 400 may include a block 410 where input data is received and decoded by a decoder.

[0047] At block 420, a selectable inverse transform is performed on the decoded input data by a selectable inverse residual transformer under decoder control to produce an inverse transformed residual image.

[0048] In block 430, the inverse transformed residual image may be combined with the predicted image for the current image region by accumulator 240 to generate a reconstructed current image region of the output video.

[0049] According to one embodiment, the decoder may select the selectable inverse transform based on coding information in the input data that identifies the selectable inverse transform and indicates that the selectable inverse transform for a current image region is different from a transform for a previous image region in the input video.

[0050] According to one embodiment, the selectable residual converter 160 of Figure 1 may perform a color conversion in which one color component of the result can be based on only one color component of the input. For example, the selectable residual converter 160 may perform the following color conversion: a) [G]

[0100] [G] [Rb] = [-1 1 0][B] [Rr] [-1 0 1][R] b) [G]

[0100] [G] [Rb] = [-1 1 0] [B] [Rrb][0-1 1][R] c) [G]

[0100] [G] [R] =

[0010] [B] [Rrb][0-1 1][R]

[0051] If the input data each have N bits, the color transformation can be combined with a simple quantization to N bits, including the sign. The subtraction in the above calculation can be done in two ways: first, by a right-shift operation (i.e., the coded Rb can be derived by (B-G+1)>>1); and second, by a clipping operation [i.e., by min(max_range, max(min_range,BG)), where min_range and max_range are the minimum and maximum values ​​allowed in the transformation, and are either pre-specified in the protocol, signaled by the coding system, or dynamically calculated (e.g., max_range=(1<<(N-1))-1, and min_range=-max_range-1)].

[0052] The above-described transforms can be beneficial because they are “causal” and correspond to the order in which color components of image data might be decoded (e.g., typically starting with green (or luminance in YCbCr or YCgCo / YCgCo-R color spaces), then B (or Cb), followed by R (or Cr)). The first color component can depend on only one color component of the input data and be independent of other (yet-unencoded) color components of the input data. However, after the first color component is encoded, it can be used as a factor in calculating predictions of the other color components. A corresponding decoding system can perform an inverse color transform corresponding to the above-described color transform. This can enable the implementation of encoding and decoding systems that operate sequentially on such color spaces. Thus, using the relatively simple calculations shown above, color components can be processed as they are transmitted or received in sequence, without adding extra delays waiting for all color components to be queued and / or processed. The selectable residual transformer 160 of FIG. 1 can perform separate or separate processing paths for each color component. Here, the input data can be separated into individual color components, and the resulting transformed color components can be later merged by the encoder 170 .

[0053] According to one embodiment, the selectable residual converter 160 of Figure 1 can be implemented using a "closed" loop optimization of the color transform, i.e., the selectable residual converter 160 can receive feedback data for use in the color transform.

[0054] The selectable residual transformer 160 can perform a color transform using the original samples as input data. For example, in a GRbRr transform, the original GBR color space data samples can be used to perform the color transform, with each new set of resulting transformed data independently calculated using a new set of original GBR color space data samples.

[0055] Given the sequential nature of the color transformations shown in the examples above, the green component data may be color transformed and encoded first, followed by the other colors. The selectable residual transformer 160 of Figure 1 can use the reconstructed green component data as input for the color transformations of the other color components, for example, using the following equation: G*=IQT(QT(G') where QT is the quantization function, IQT is the corresponding inverse quantization function, G' is the green residual data, and G* is the reconstructed green residual data. Rb'=(BG*) Here, B represents the blue component data and Rb' represents the residual data for the Rb component. Rb*=IQT(QT(Rb') where Rb* represents the reconstructed Rb residual data. Rr'=(RG*) Here, R represents the red component data, and Rr' represents the residual data for the Rr component. Rr*=IQT(QT(Rr') where Rr* represents the reconstructed Rr residual data.

[0056] Through the above-described color transformation, the coded data components Rb', Rb*, Rr', and Rr* are generated based on the reconstructed green residual data. This can help a corresponding decoding system achieve better performance. Because the corresponding decoding system can have only the reconstructed color component data (such as G*) rather than the original color data samples for the inverse color transformation, a coding system that uses the reconstructed color component data is better suited to the decoding system. This can reduce any potential color component leakage caused by the quantization process.

[0057] It is understood that the present disclosure is not limited to the described embodiments, and that any number of scenarios and embodiments where conflicting arrangements exist can be resolved.

[0058] Although the present disclosure has been described with reference to several exemplary embodiments, it is understood that the words used are words of description and illustration, rather than words of limitation. In aspects, changes may be made within the purview of the appended claims, as presently defined and as amended, without departing from the spirit and scope of the present disclosure. While the present disclosure has been described with reference to particular means, materials, and embodiments, it is not intended that the present disclosure be limited to the disclosed particulars. Rather, the present disclosure extends to all functionally equivalent structures, methods, and uses, as may fall within the scope of the appended claims.

[0059] Although the computer-readable medium may be described as a single medium, the term "computer-readable medium" includes a single medium or multiple media, such as a centralized or distributed database, and / or associated caches and servers that store one or more sets of instructions. The term "computer-readable medium" is also intended to include any medium that can store, encode, or carry a set of instructions for execution by a processor or computer system to execute any one or more embodiments disclosed herein.

[0060] The computer-readable medium can include non-transitory computer-readable medium(s) and / or can include transitory computer-readable medium(s). In certain non-limiting, exemplary embodiments, the computer-readable medium can include solid-state memory, such as a memory card or another package containing one or more non-volatile read-only memories. Additionally, the computer-readable medium can be random access memory or other volatile rewritable memory. Additionally, the computer-readable medium can include magneto-optical or optical media, such as disks or tapes or other storage devices that capture carrier signals, such as signals communicated over a transmission medium. Accordingly, the present disclosure is considered to include any computer-readable medium or other equivalent and successor media capable of storing data or instructions.

[0061] This application describes certain embodiments that may be embodied as code segments on a computer-readable medium. However, it should be understood that dedicated hardware implementations, such as application-specific integrated circuits, programmable logic arrays, and other hardware devices, can be configured to perform one or more of the embodiments described herein. Applications that may include the various embodiments described herein can broadly encompass a variety of electronic and computer systems. Thus, this application may include software, firmware, and hardware implementations, or a combination thereof.

[0062] Although this specification describes components and functions that may be performed in particular embodiments in accordance with particular standards and protocols, the present disclosure is not limited to such standards and protocols. Such standards are periodically superseded by faster or more efficient equivalents having substantially the same functionality. Accordingly, updated standards and protocols having the same or similar functionality are considered equivalents thereof.

[0063] The illustrative embodiments described herein are intended to provide a general understanding of various embodiments. These illustrative examples are not intended to serve as a complete description of all elements and functions of apparatus and systems utilizing the structures and methods described herein. Numerous other embodiments will become apparent to those skilled in the art upon review of the present disclosure. Other embodiments may be utilized and derived from the present disclosure, such that structural and logical substitutions and changes may be made without departing from the scope of the present disclosure. Furthermore, the figures are for illustrative purposes only and may not be drawn to scale. Certain dimensions within the figures may be exaggerated, while other dimensions may be minimized. Therefore, the disclosure and figures should be considered illustrative rather than restrictive.

[0064] Without intending to spontaneously limit the scope of this application to any particular disclosure or inventive concept, one or more embodiments of the disclosure may be referred to herein, individually and / or collectively, by the term "disclosure," merely for convenience. Furthermore, while specific embodiments have been illustrated and described herein, it should be understood that any subsequent configurations designed to achieve the same or similar purpose may be substituted for the specific embodiments set forth herein. The disclosure is intended to cover any and all subsequent revisions or variations of the various embodiments. Combinations of the above-described embodiments, as well as other embodiments not specifically described herein, will become apparent to those skilled in the art upon reviewing the description herein.

[0065] Furthermore, in the foregoing Detailed Description, various features may be grouped together or described in a single embodiment for the purpose of streamlining the disclosure. This disclosure is not to be interpreted as reflecting an intention that the claimed embodiments require more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive subject matter may be directed to fewer than all features of any disclosed embodiment. Accordingly, the following claims are incorporated into the Detailed Description, with each claim standing on its own, with each claim separately defining claimed subject matter.

[0066] The above disclosed subject matter should be considered illustrative and not restrictive, and the appended claims are intended to cover all such modifications, improvements, and other embodiments that fall within the true spirit and scope of the present disclosure. Accordingly, to the maximum extent permitted by law, the scope of the present disclosure should be determined by the broadest permissible interpretation of the following claims and equivalents, and should not be limited or constrained by the detailed description set forth above.

Claims

1. an analyzer for analyzing a current image region of the input video to select a transformation; a selectable residual transformer controlled by the analyzer to perform the selectable transform on a residual image generated from the current image region and the predicted current image region to generate a transformed residual image; an encoder for encoding the transformed residual image to generate output data; wherein the analyzer controls the encoder to encode information identifying the selectable transformations, indicating that the selectable transformations for the current image region are different from transformations of previous image regions of the input video; the one color component of the transformed residual image is generated based on only one color component of the residual image; The system according to claim 1, wherein another color component of the transformed residual image is generated based on two or more color components of the residual image.

2. The system of claim 1 , wherein the current image region is one of a frame, a slice, and a coding tree unit.

3. 2. The system of claim 1, wherein the other color component of the transformed residual image is generated based on a reconstructed residual image of the one color component of the transformed residual image.

4. 2. The system of claim 1, wherein the coding information identifying the selectable transforms specifies coefficients of selectable inverse transforms.

5. 2. The system of claim 1, wherein the coding information identifying the selectable transforms is contained in one of a sequence parameter set, a picture parameter set, and a slice header preceding the coded residual image data for the current image region.

6. a decoder for receiving and decoding input data; a selectable inverse residual transformer controlled by the decoder to perform a selectable inverse transform on the decoded input data to produce an inverse transformed residual image; an accumulator that combines the inverse transformed residual image with a predicted image for a current image region to generate a reconstructed current image region of an output video; the decoder selects the selectable inverse transform based on coding information in the input data, the coding information identifying the selectable inverse transform and indicating that the selectable inverse transform for the current image region is different from a transform of a previous image region in the output video; one color component of the inverse transformed residual image is based on only one color component of the decoded input data; wherein other color components of the inverse transformed residual image are generated based on two or more color components of the decoded input data.

7. 7. The system of claim 6, wherein the current image region is one of a frame, a slice, and a coding tree unit.

8. 7. The system of claim 6, wherein the decoder is an entropy decoder.

9. 7. The system of claim 6, wherein the coding information identifying the selectable inverse transforms specifies coefficients of the selectable inverse transforms.

10. 7. The system of claim 6, wherein the coding information identifying the selectable transforms is contained in one of a sequence parameter set, a picture parameter set, and a slice header preceding the coded residual image data for the current image region.

11. analyzing, by an analyzer, a current image region of the input video to select a transformation; performing, by a selectable residual transformer controlled by the analyzer, the selectable transform on a residual image generated from the current image region and the predicted current image region to generate a transformed residual image; encoding, by an encoder, the transformed residual image to generate output data; wherein the analyzer controls the encoder to encode information identifying the selectable transformations and indicating that the selectable transformations for the current image region are different from transformations of previous image regions of the input video; the one color component of the transformed residual image is based on only one color component of the residual image; A method according to claim 1, characterized in that other color components of the transformed residual image are generated based on two or more color components of the residual image.

12. The method of claim 11 , wherein the current image region is one of a frame, a slice, and a coding tree unit.

13. 12. The method of claim 11, wherein the other color component of the transformed residual image is generated based on a reconstructed residual image of the one color component of the transformed residual image.

14. 12. The method of claim 11, wherein the coding information identifying the selectable transforms specifies coefficients of selectable inverse transforms.

15. 12. The method of claim 11, wherein the coding information specifying the selectable transforms is contained in one of a sequence parameter set, a picture parameter set, and a slice header preceding the coded residual image data for the current image region.

16. receiving and decoding input data by a decoder; performing a selectable inverse transform on the decoded input data by a selectable inverse residual transformer controlled by the decoder to produce an inverse transformed residual image; combining, by an accumulator, the inverse transformed residual image with a predicted image for the current image region to generate a reconstructed current image region of the output video; the decoder selects the selectable inverse transform based on coding information in the input data, the coding information identifying the selectable inverse transform and indicating that the selectable inverse transform for the current image region is different from a transform of a previous image region in the output video; one color component of the inverse transformed residual image is based on only one color component of the decoded input data; A method according to claim 1, characterized in that other color components of the inverse transformed residual image are generated based on two or more color components of the decoded input data.

17. 17. The method of claim 16, wherein the current image region is one of a frame, a slice, and a coding tree unit.

18. 17. The method of claim 16, wherein the decoder is an entropy decoder.

19. 17. The method of claim 16, wherein the coding information identifying the selectable inverse transforms specifies coefficients of the selectable inverse transforms.

20. 17. The method of claim 16, wherein the coding information specifying the selectable transforms is contained in one of a sequence parameter set, a picture parameter set, and a slice header preceding the coded residual image data for the current image region.

Citation Information

Patent Citations

  • Video encoding / decoding method and apparatus using residue prediction of video

    JP2004343774A

  • Color video residue transformation / inverse transformation method and apparatus, and color video encoding / decoding method and apparatus using the same

    JP2005160108A

  • Video coding with residual color conversion using reversible YCoCg

    US20050259730A1

  • Moving picture coding / decoding method and apparatus

    WO2006112653A1

  • Picture coding using adaptive colour space transformation

    WO2007079781A1