IP Library › Granted Patent US 10,282,889
Granted Patent B2
US 10,282,889 · App. 15/432,782 · Granted May 7, 2019

Vertex attribute compression and decompression in hardware

Inventors: David C. Tannenbaum (Austin, TX); Manshila Adlakha (Dehradun, IN); Vikash Kumar (Argora, IN); Abhinav Golas (Mountain View, CA)
Assignee: Samsung Electronics Co., Ltd.
G06T15/005G06T2210/08
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,282,889
App. No.
15/432,782
Granted
May 7, 2019
Kind
B2
Abstract

One or more embodiments of the present disclosure provide an apparatus used in source data compression, comprising a memory and a at least one processor. The memory is configured to store vertex attribute data and a set of instructions. The processor is coupled to the memory. The processor is configured to receive a source data stream that includes one or more values corresponding to the vertex attribute data. The processor is also configured to provide a dictionary for the one or more values in the source data stream, wherein the dictionary includes a plurality of index values corresponding to the one or more values in the source data stream. The processor is also configured to lace at least some of the one or more values in the source data stream with corresponding index values of the plurality of index values.

Claims (40)

1. An apparatus comprising:

a memory configured to store vertex attribute data and a set of instructions; and

at least one processor coupled to the memory, the at least one processor configured to execute the set of instructions to:

receive a source data stream that includes one or more values corresponding to the vertex attribute data;

provide a dictionary for the one or more values in the source data stream, wherein the dictionary includes a plurality of index values corresponding to the one or more values in the source data stream;

replace at least some of the one or more values in the source data stream with corresponding index values of the plurality of index values;

partition the source data stream into blocks of vertices, wherein each block contains all relevant attributes of respective vertices in the block;

partition each of the blocks into packets, wherein each of the packets contains one or more attributes for all vertices in the block; and

sort data within at least some of the packets in a respective order in which a continuity of occurrences of values is greater compared to a continuity when the data is not sorted.

2. The apparatus of claim 1 , wherein the source data stream includes un-encoded data.

3. The apparatus of claim 1 , wherein providing the dictionary and replacing the at least some of the one or more values are performed while agnostic to one or more underlying datatypes of the one or more values.

4. The apparatus of claim 3 , wherein providing the dictionary includes creating the dictionary including the plurality of index values corresponding to the one or more values in the source data stream.

5. The apparatus of claim 1 , wherein the at least one processor is further configured to execute the set of instructions to:

encode continuous occurrences of the one or more values in the source data stream using run-length coding.

6. The apparatus of claim 1 , wherein the at least one processor is further configured to execute the set of instructions to:

add a code to each block identifying a type of the packets in the block.

7. An apparatus comprising:

a memory configured to store vertex attribute data and a set of instructions; and

at least one processor coupled to the memory, the at least one processor configured to execute the set of instructions to:

receive a source data stream that includes one or more values corresponding to the vertex attribute data;

provide a dictionary for the one or more values in the source data stream, wherein the dictionary includes a plurality of index values corresponding to the one or more values in the source data stream; and

replace at least some of the one or more values in the source data stream with corresponding index values of the plurality of index values, wherein the some of the one or more values of the source data stream that are represented by the corresponding index values of the dictionary are selected using a histogram, wherein the histogram identifies values of the source data stream that occur in accordance with at least a predefined frequency.

8. The apparatus of claim 1 , wherein replacing at least some of the one or more values in the source data stream comprises replacing any exact value in the source data with the corresponding index value of the plurality of index values.

9. A method for source data compression, the method comprising:

receiving a source data stream that includes one or more values corresponding to vertex attribute data stored in memory;

providing a dictionary for the one or more values in the source data stream, wherein the dictionary includes a plurality of index values corresponding to the one or more values in the source data stream;

replacing at least some of the one or more values in the source data stream with corresponding index values of the plurality of index values;

partitioning the source data stream into blocks of vertices, wherein each block contains all relevant attributes of respective vertices in the block;

partitioning each of the blocks into packets, wherein each of the packets contains one or more attributes for all vertices in the block; and

sorting data within at least some of the packets in a respective order in which a continuity of occurrences of values is greater compared to a continuity when the data is not sorted.

10. The method of claim 9 , wherein the source data steam includes un-encoded data.

11. The method of claim 9 , wherein providing the dictionary and replacing the at least some of the one or more values are performed while agnostic to one or more underlying datatypes of the one or more values.

12. The method of claim 11 , wherein providing the dictionary comprises creating the dictionary including the plurality of index values corresponding to the one or more values in the source data stream.

13. The method of claim 9 , further comprising:

encoding continuous occurrences of the one or more values in the source data steam using run-length coding.

14. The method of claim 9 , further comprising:

adding a code to each block identifying a type of the packets in the block.

15. The method of claim 9 , wherein the some of the one or more values of the source data stream that are represented by the corresponding index values of the dictionary are selected using a histogram, wherein the histogram identifies values of the source data stream that occur in accordance with at least a predefined frequency.

16. The method of claim 9 , wherein replacing any value in the source data with a corresponding index value of the plurality of index values comprises:

replacing any equivalent value in the source data with the corresponding index value of the plurality of index values.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 14, 2017
From: TANNENBAUM, DAVID C.; ADLAKHA, MANSHILA; KUMAR, VIKASH; GOLAS, ABHINAV
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 041256/0041 →
Continuity (2)
Provisional Application 62427587 · Nov 29, 2016
Related Publication 20180150991A1 · May 31, 2018