IP Library Granted Patent US 10,448,024
Granted Patent B2
US 10,448,024 · App. 15/398,567 · Granted Oct 15, 2019

System and methods for calculating distortion in display stream compression (DSC)

Inventors: Vijayaraghavan Thirumalai (San Diego, CA); Natan Haim Jacobson (San Diego, CA); Rajan Laxman Joshi (San Diego, CA)
Assignee: QUALCOMM Incorporated
H04N19/154H04N19/103H04N19/117H04N19/12H04N19/147H04N19/174H04N19/176H04N19/186H04N19/60H04N19/85
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,448,024
App. No.
15/398,567
Granted
Oct 15, 2019
Kind
B2
Abstract

Systems and methods are disclosed for calculating a distortion value of a frame or block, in a number of color spaces, and determining an optimal coding mode based on the calculated distortion values. One embodiment includes a system having a video source that includes a video camera or a video archive that contains previously stored video content, and a processor configured to encode the stored video content.

Claims (59)

1. An apparatus for coding video data, comprising:

a memory for storing the video data and information about a plurality of coding modes, the video data comprising a plurality of video blocks; and

a hardware processor operationally coupled to the memory and configured to:

select one of a plurality of color spaces for a video block of the plurality of video blocks,

apply a color transformation to every video block of the plurality of video blocks that is not in the selected color space and verify that all of the video blocks of the plurality of video blocks are in the selected color space,

determine a distortion value of each of the plurality of video blocks based on the selected color space,

determine a respective coding mode from the plurality of coding modes based on the respective distortion value for each of the plurality of video blocks, and

encode the plurality of video blocks using the determined respective coding modes.

2. The apparatus of claim 1 , wherein the hardware processor is further configured to:

determine an initial color space of each video block of the plurality of video blocks, the initial color space being the color space of each video block prior to application of the color transformation;

determine which coding modes of the plurality of coding modes are used with the initial color space; and

encode the video block of the plurality of video blocks with the coding modes to provide an encoded block.

3. The apparatus of claim 1 , wherein the hardware processor is further configured to:

determine which coding modes of the plurality of coding modes are not used with an initial color space, the initial color space being the color space of each video block prior to application of the color transformation;

apply the color transformation to the initial color space to provide a compatible color block; and

encode the compatible color block with the coding modes not used with the initial color space to provide an encoded block.

4. The apparatus of claim 2 , wherein the hardware processor is further configured to calculate a residue block from the video block and the encoded block, the residue block indicative of a difference between the video block and the encoded block.

5. The apparatus of claim 4 , wherein determining the distortion value comprises determining the distortion value of the residue block.

6. The apparatus of claim 1 , wherein the selected color space comprises a luma-chroma color space and wherein determining the distortion value comprises normalizing each chroma component of the luma-chroma color space.

7. The apparatus of claim 1 , wherein the video block comprises a number of color planes, and wherein determining the distortion value of the video block comprises at least one of:

a sum of absolute differences of each color plane of the number of color planes, and

a sum of square error of each color plane of the number of color planes.

8. The apparatus of claim 1 , wherein the color transformation is based on a transformation matrix, the transformation matrix is defined by a number of columns indicative of a number of color planes of the selected color space, and wherein the hardware processor is further configured to determine a weight value based on a Euclidean norm of a column of the number of columns.

9. The apparatus of claim 8 , wherein the distortion value of the transformed video block is based on at least one of:

a sum of absolute differences of each color plane of the number of color planes, wherein each color plane is multiplied by a corresponding weight value of the number of weight values, and

a sum of square error of each color plane of the number of color planes, wherein each color plane is multiplied by the corresponding weight of the number of weights.

10. The apparatus of claim 1 , wherein the selected color space is in at least one of a luma-chroma color space and an RGB color space.

11. The apparatus of claim 1 , wherein determining the respective coding modes further comprises determining the respective coding modes based on (i) the distortion value of each of the plurality of video blocks, (ii) a lambda value, and (iii) a bitstream rate for communicating the video block.

12. The apparatus of claim 1 , wherein each video block of the plurality of video blocks is indicative of a single video block that has been encoded using every coding mode of the plurality of coding modes.

13. A method of coding video data, comprising:

selecting one of a plurality of color spaces for a video block of a plurality of video blocks;

applying a color transformation to every video block of the plurality of video blocks that is not in the selected color space and verify that all of the video blocks of the plurality of video blocks are in the selected color space;

determining a distortion value of each of the plurality of video blocks based on the selected color space;

determining a respective coding mode from the plurality of coding modes based on the respective distortion value for each of the plurality of video blocks; and

encoding the plurality of video blocks using the determined respective coding modes.

14. The method of claim 13 , further comprising:

determining an initial color space of each video block of the plurality of video blocks, the initial color space being the color space of each video block prior to application of the color transformation;

determining which coding modes of a plurality of coding modes are used with the initial color space; and

encoding the video block of the plurality of video blocks with coding modes to provide an encoded block.

15. The method of claim 13 , further comprising:

determining which coding modes of a plurality of coding modes are not used with an initial color space, the initial color space being the color space of each video block prior to application of the color transformation;

applying the color transformation to the initial color space to provide a compatible color block; and

encoding the compatible color block with coding modes not used with the initial color space to provide an encoded block.

16. The method of claim 14 , further comprising calculating a residue block from the video block and the encoded block, the residue block indicative of a difference between the video block and the encoded block.

17. The method of claim 13 , wherein determining the respective coding modes further comprises determining the respective coding modes based on (i) the distortion value of each of the plurality of video blocks, (ii) a lambda value, and (iii) a bitstream rate for communicating the video block.

18. A non-transitory computer-readable medium comprising instructions that, when executed by a device, cause the device to:

select one of a plurality of color spaces for a video block of the plurality of video blocks,

apply a color transformation to every video block of the plurality of video blocks that is not in the selected color space and verify that all of the video blocks of the plurality of video blocks are in the selected color space, and

determine a distortion value of each of the plurality of video blocks based on the selected color space,

determine a respective coding mode from the plurality of coding modes based on the respective distortion value for each of the plurality of video blocks, and

encode the plurality of video blocks using the determined respective coding modes.

19. The non-transitory computer-readable medium of claim 18 , further comprising:

determine an initial color space of each video block of the plurality of video blocks, the initial color space being the color space of each video block prior to application of the color transformation;

determine which coding modes of a plurality of coding modes are used with the initial color space; and

encode the video block of the plurality of video blocks with coding modes to provide an encoded block.

20. The non-transitory computer-readable medium of claim 18 , further comprising:

determine which coding modes of a plurality of coding modes are not used with an initial color space, the initial color space being the color space of each video block prior to application of the color transformation;

apply the color transformation to the initial color space to provide a compatible color block; and

encode the compatible color block with coding modes not used with the initial color space to provide an encoded block.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 2, 2017
From: THIRUMALAI, VIJAYARAGHAVAN; JACOBSON, NATAN HAIM; JOSHI, RAJAN LAXMAN
To: QUALCOMM INCORPORATED
Reel/Frame 041158/0239 →
Continuity (2)
Provisional Application 62277379 · Jan 11, 2016
Related Publication 20170201753A1 · Jul 13, 2017