IP Library Granted Patent US 9,171,523
Granted Patent B2
US 9,171,523 · App. 13/837,530 · Granted Oct 27, 2015

GPU-accelerated, two-pass colorspace conversion using multiple simultaneous render targets

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 9,171,523
App. No.
13/837,530
Granted
Oct 27, 2015
Kind
B2
Abstract

Disclosed is a method including converting, during a first pass, video data from a first multi-component format to an intermediate multi-component format, the intermediate multi-component format including a first video component, the intermediate multi-component format including a second video component interleaved with a third video component, and converting, during a second pass, the video data from the intermediate multi-component format to a second multi-component format by de-interleaving the second component and third component.

Claims (81)

1. A method, comprising:

converting, during a first pass, video data from a first multi-component format to an intermediate multi-component format,

the intermediate multi-component format including a first video component generated as a first vector of a same vertical dimension as the video data and a same horizontal dimension as the video data,

the intermediate multi-component format including a second video component interleaved with a third video component generate as a second vector of the same vertical dimension as the video data and the same horizontal dimension as the video data such that each of the second video component and the third video component are compressed to half the vertical dimension of the video data; and

converting, during a second pass, the video data from the intermediate multi-component format to a second multi-component format by de-interleaving the second component and third component.

2. The method of claim 1 , wherein converting the video data from the intermediate multi-component format to a second multi-component format includes:

generating the second video component as a first vector of half a vertical dimension as the video data and half a horizontal dimension as the video data; and

generating the third video component as a second vector of half a vertical dimension as the video data and half a horizontal dimension as the video data.

3. The method of claim 1 , wherein the first multi-component format is an interleaved XRGB color space.

4. The method of claim 1 , wherein the second multi-component format is a planar subsampled YUV format.

5. The method of claim 1 , wherein

the first video component is a Y vector of planar, subsampled YUV formatted video data, and

the interleaved second video component and third video component are interleaved U and V vectors of the planar, subsampled YUV formatted video data.

6. The method of claim 1 , further comprising:

reinterpreting the first video component, the second video component and the third video component as a single set of multi-component data.

7. The method of claim 6 , wherein

the first video component is a Y vector of planar, subsampled YUV formatted video data,

the second video component is a U vector of the planar, subsampled YUV formatted video data, and

the third video component is a V vector of the planar, subsampled YUV formatted video data.

8. A non-transitory computer readable medium including code segments that when executed by a processor cause the processor to perform steps comprising:

convert video data from a first multi-component format to a partially converted second multi-component format, the partially converted second multi-component format including a first video component and an interleaved second video component and third video component, wherein the converting of the video data from the first multi-component format to the partially converted second multi-component format includes,

generating the first video component as a first vector of a same vertical dimension as the video data and a same horizontal dimension as the video data, and

generating an interleaved second video component and third video component in a second vector of the same vertical dimension as the video data and the same horizontal dimension as the video data such that each of the second video component and the third video component are compressed to half the vertical dimension of the video data; and

complete the conversion to the second multi-component format by de-interleaving the second component and the third component.

9. The method of claim 8 , wherein completing the conversion to the second multi-component format includes:

generating the second video component as a first vector of half a vertical dimension as the video data and half a horizontal dimension as the video data; and

generating the third video component as a second vector of half a vertical dimension as the video data and half a horizontal dimension as the video data.

10. A video card, comprising:

a memory including:

a first buffer, the first buffer storing a vector including a first horizontal dimension and a second horizontal dimension, the first buffer including video data in a first multi-component format;

a second buffer, the second buffer storing a vector including the first horizontal dimension and the second horizontal dimension;

a third buffer, the third buffer storing a vector including the first horizontal dimension and the second horizontal dimension;

a fourth buffer, the fourth buffer storing a vector including half the first horizontal dimension and half the second horizontal dimension; and

a fifth buffer, the fifth buffer storing a vector including half the first horizontal dimension and half the second horizontal dimension; and

a graphical processing unit configured to:

convert, during a first pass, video data from a first multi-component format to an intermediate multi-component format, the intermediate multi-component format including a first video component, the intermediate multi-component format including a second video component interleaved with a third video component;

store the first component in the second buffer;

store the interleaved second video and third video component in the third buffer;

converting, during a second pass, the video data from the intermediate multi-component format to a second multi-component format by de-interleaving the second video component and third video component;

store a compressed second video component in the fourth buffer; and

store a compressed third video component in the fifth buffer.

11. The video card of claim 10 , wherein the memory is an on-board memory of the graphical processing unit.

12. The video card of claim 10 , wherein memory allocated to each of the first buffer, the second buffer, the third buffer, the fourth buffer, and the fifth buffer are released for reallocation when the associated vector is no longer an active object.

13. The video card of claim 10 , wherein converting video data from a first multi-component format to an intermediate multi-component format includes:

generating the first video component as a first vector of a same vertical dimension as the video data and a same horizontal dimension as the video data; and

generating interleaved second video component and third video component in a second vector of the same vertical dimension as the video data and the same horizontal dimension as the video data such that each of the second video component and the third video component are compressed to half the vertical dimension of the video data.

14. The video card of claim 10 , wherein converting the video data from the intermediate multi-component format to a second multi-component format includes:

generating the second video component as a first vector of half the vertical dimension as the video data and half the horizontal dimension as the video data; and

generating the third video component as a second vector of half the vertical dimension as the video data and half the horizontal dimension as the video data.

15. The video card of claim 10 , wherein

the first multi-component format is an interleaved XRGB color space, and

the second multi-component format is a planar subsampled YUV format.

16. The video card of claim 10 , wherein

the first video component is a Y vector of planar, subsampled YUV formatted video data, and

the interleaved second video component and third video component are interleaved U and V vectors of the planar, subsampled YUV formatted video data.

17. The video card of claim 10 , wherein the graphical processing unit is further configured to:

reinterpreting the first video component, the second video component and the third video component as a single set of multi-component data.

18. The video card of claim 10 , wherein

the first video component is a Y vector of planar, subsampled YUV formatted video data,

the second video component is a U vector of the planar, subsampled YUV formatted video data, and

the third video component is a V vector of the planar, subsampled YUV formatted video data.

19. A method, comprising:

converting, during a first pass, video data from a first multi-component format to an intermediate multi-component format,

the intermediate multi-component format including a first video component, and

the intermediate multi-component format including a second video component interleaved with a third video component,

the second video component being generated as a first vector of half a vertical dimension as the video data and half a horizontal dimension as the video data, and

the third video component being generated as a second vector of half the vertical dimension as the video data and half the horizontal dimension as the video data; and

converting, during a second pass, the video data from the intermediate multi-component format to a second multi-component format by de-interleaving the second video component and the third video component.

20. The method of claim 19 , wherein converting video data from a first multi-component format to an intermediate multi-component format includes:

generating the first video component as a first vector of a same vertical dimension as the video data and a same horizontal dimension as the video data.

21. The method of claim 19 , wherein the first multi-component format is an interleaved XRGB color space.

22. The method of claim 19 , wherein the second multi-component format planar is a subsampled YUV format.

23. The method of claim 19 , wherein

the first video component is a Y vector of planar, subsampled YUV formatted video data, and

the interleaved second video component and third video component are interleaved U and V vector of the planar, subsampled YUV formatted video data.

24. The method of claim 19 , further comprising:

reinterpreting the first video component, the second video component and the third video component as a single set of multi-component data.

25. The method of claim 24 , wherein

the first video component is a Y vector of planar, subsampled YUV formatted video data,

the second video component is a U vector of the planar, subsampled YUV formatted video data, and

the third video component is a V vector of the planar, subsampled YUV formatted video data.

Assignments (2)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044334/0466 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 1, 2013
From: CARTER, NICHOLAS; BANKOSKI, JIM
To: GOOGLE INC.
Reel/Frame 031529/0408 →