IP Library › Granted Patent US 9,258,389
Granted Patent B2
US 9,258,389 · App. 14/163,820 · Granted Feb 9, 2016

Encoder and method

Inventors: Ossi Mikael Kalevo (Toijala, FI); Tuomas Kärkkäinen (Turku, FI)
Assignee: GURULOGIC MICROSYSTEMS OY
H04L69/04H04N19/119H04N19/154H04N19/172H04N19/192H04N19/12H04N19/136H04N19/96
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,258,389
App. No.
14/163,820
Granted
Feb 9, 2016
Kind
B2
Abstract

An encoder includes data processing hardware which is operable: to divide input data into a plurality of blocks or packets; to apply a plurality of transformations to content of the blocks or packets to generate corresponding transformed data; to check a quality of representation of the transformed data prior to application of the transformations to determine whether or not the quality of representation of the transformed data satisfies one or more quality criteria; if the quality of representation of the transformed data does not satisfy the one or more quality criteria, to sub-divide and/or to combine the one or more blocks or packets further and repeating the transformation step; and if the quality of representation of the transformed data satisfies the one or more quality criteria, to output the transformed data to provide encoded output data representative of the input data to be encoded.

Claims (46)

1. A method of encoding input data to generate corresponding encoded output data, comprising the steps of:

(a) dividing the input data into a plurality of blocks or packets, the blocks or packets having a size depending upon a nature of their data content and/or data type, and the blocks or packets being of one or more sizes;

(b) applying a plurality of different types of transformations to content of the blocks or packets to generate corresponding transformed data;

(c) checking a quality of representation of the transformed data of individual blocks or packets compared to the content of the individual blocks or packets prior to application of the transformations to determine whether or not the quality of representation of the transformed data satisfies one or more quality criteria;

(d) in an event that the quality of representation of the transformed data of the one or more blocks or packets does not satisfy the one or more quality criteria, sub-dividing or combining the one or more individual blocks or packets whose quality of representation does not satisfy the one or more criteria further and repeating step (b) for the one or more blocks or packets whose quality of representation does not satisfy the one or more criteria; and

(e) in an event that the quality of representation of the transformed data of the one or more blocks or packets satisfies the one or more quality criteria, outputting the transformed data to provide the encoded output data representative of the input data to be encoded.

2. The method as claimed in claim 1 , further comprising using the plurality of transformations to compress content associated with the blocks or packets, so that the encoded output data is smaller in size than the input data to be encoded.

3. The method as claimed in claim 1 , further comprising arranging for the one or more quality criteria to be dynamically variable during encoding of the blocks or packets depending upon a nature of content included within the blocks or packets.

4. The method as claimed in claim 1 , wherein the blocks or packets are subdivision or combined so that at least one of their representative parameters describing their content is substantially flat within their sub-divided and/or combined blocks or packets.

5. The method as claimed in claim 1 , wherein the blocks or packets correspond to a series of data, wherein subdivision of the input data corresponding to a given information to form the plurality of corresponding blocks is made dependent upon content present in one or more data preceding the given information within the temporal sequence of data.

6. The method as claimed in claim 1 , further comprising adding header information to the transformed data in step (e) to generate the encoded output data, wherein the header information includes information indicative of the transformations employed in step (b).

7. The method as claimed in claim 1 , wherein step (b) comprises fetching supplementary information from a database arrangement for use when executing said at least one transformation, wherein the supplementary information includes at least one of: algorithms, rules, one or more transformation parameters.

8. The method as claimed in claim 7 , further comprising adding header information to the encoded output data indicative of the database arrangement for enabling subsequent decoding of the encoded output data to access said supplementary information when decoding the encoded output data.

9. The method as claimed in claim 1 , further comprising employing for the transformations one or more of the following as transform methods used for encoding: a data base coding method, a DC-value coding method, slide coding method, scale coding method, line coding method, multilevel coding method, interpolation coding method, extrapolation coding method, Discrete Cosine Transform (DCT), pulse code modulation (PCM), Differential Pulse Code Modulation (DPCM), Run-Length Encoding (RLE), Split Run-Length Encoding (SRLE), Entropy Modifier (EM), Lempel-Ziv Obehumer (LZO), Variable Length Coding (VLC), Huffman-coding, arithmetic coding, range coding, transform coding, delta coding, ODelta coding, bzip2-specific RLE, color conversion coding method, quantization, wavelet transform, Hadamard transform, linear transform and inverse methods of all mentioned.

10. The method as claimed in claim 1 , further comprising encoding at least one of video, image, audio, graphics, economic data, mask data, multidimensional data (3D), text data, texture data, Electrocardiogram (ECG), seismic, ASCII, Unicode, calendar data, mathematical data and binary information present in the input data.

11. The method as claimed in claim 1 , further comprising encoding multiple channels and/or layers in the encoded output data for providing at least one of: interactive video, commercial advertisements, a plurality of viewpoints during sports event reporting, interactive watermarks, interactive pattern recognition, animated 20/30 user interface buttons.

12. The method as claimed in claim 1 , further comprising providing the encoded data to at least one of following destinations: a data memory device, a communication network, a memory card, data memory disks, and local area communication networks (LANs), directly to a decoder.

13. The method as claimed in claim 1 , wherein step (a) comprises initially splitting the input data into one or more blocks based on at least one of:

(1) image resolutions;

(2) an amount of data;

(3) a content of data;

(4) maximum block or packet size; and

(5) a quality parameter.

14. The method as claimed in claim 1 , further comprising utilizing only a single processing unit.

15. A non-transitory computer-readable data storage media comprising computer instructions which when executed by a processor cause the processor to perform the method as claimed in claim 1 .

16. An encoder operable to encode input data to generate corresponding encoded output data, comprising data processing hardware which is operable:

(a) to divide the input data into a plurality of blocks or packets, the blocks or packets having a size depending upon a nature of their data content and/or data type, and the blocks or packets being of one or more sizes;

(b) to apply a plurality of different types of transformations to content of the blocks or packets to generate corresponding transformed data;

(c) to check a quality of representation of the transformed data of the individual blocks or packets compared to the content of the individual blocks or packets prior to application of the transformations to determine whether or not the quality of representation of the transformed data satisfies one or more quality criteria;

(d) in an event that the quality of representation of the transformed data of the one or more blocks or packets does not satisfy the one or more quality criteria, to sub-divide or combine the one or more individual blocks or packets whose quality of representation does not satisfy the one or more criteria further and repeating step (b) for the one or more blocks or packets whose quality of representation does not satisfy the one or more criteria; and

(e) in an event that the quality of representation of the transformed data of the one or more blocks or packets satisfies the one or more quality criteria, to output the transformed data to provide the encoded output data representative of the input data to be encoded.

17. The encoder as claimed in claim 16 , wherein the encoder is operable to use the at least one transformation to compress content associated with the blocks or packets, so that the encoded output data is smaller in size than the input data to be encoded.

18. The encoder as claimed in claim 16 , wherein the encoder is operable to arrange for the one or more quality criteria to be dynamically variable during encoding of the blocks or packets depending upon a nature of content included within the blocks or packets.

19. The encoder as claimed in claim 16 , wherein the blocks or packets are sub-divided or combined so that at least one of their representative parameters describing their content is substantially flat within their sub-divided and/or combined blocks or packets.

20. The encoder as claimed in claim 16 , wherein the blocks or packets correspond to a series of data, wherein subdivision of the input data corresponding to a given information to form the plurality of corresponding blocks is made dependent upon content present in one or more data preceding the given information within the temporal sequence of data.

21. The encoder as claimed in claim 16 , wherein the encoder is operable to add header information to the transformed data to generate the encoded output data, wherein the header information includes information indicative of the transformations employed by the encoder.

22. The encoder as claimed in claim 16 , wherein the encoder is operable to fetch supplementary information from a database arrangement for use when executing the transformations, wherein the supplementary information includes at least one of: algorithms, rules, one or more transformation parameters.

23. The encoder as claimed in claim 22 , wherein the encoder is operable to add header information to the encoded output data in a manner indicative of the database arrangement for enabling subsequent decoding of the encoded output data to access the supplementary information when decoding the encoded output data.

24. The encoder as claimed in claim 16 , wherein the encoder is operable to employ for the transformations one of more of the following as transform methods used for encoding: data base coding method, DC-value coding method, slide coding method, scale coding method, line coding method, multilevel coding method, interpolation coding method, extrapolation coding method, Discrete Cosine Transform (DCT), pulse code modulation (PCM), Differential Pulse Code Modulation (DPCM), Run-Length Encoding (RLE), Split Run-Length Encoding (SRLE), Entropy Modifier (EM), Lempel-Ziv Obehumer (LZO), Variable Length Coding (VLC), Huffman-coding, arithmetic coding, range coding, transform coding, delta coding, ODelta coding, bzip2-specific RLE, color conversion coding method, quantization, wavelet transform, Hadamard transform, linear transform and inverse methods of all mentioned.

25. The encoder as claimed in claim 16 , wherein the encoder further comprises only a single processing unit.

26. The method as claimed in claim 1 , further comprising the step of communicating the information regarding the splitting or combining with the data.

27. The encoder as claimed in claim 16 , wherein the data processing hardware is also operable to communicate information regarding the splitting or combining with the data.

28. The method as claimed in claim 1 , further comprising utilizing only a single memory device.

29. The method as claimed in claim 1 , further comprising utilizing only a single receiver.

30. The encoder as claimed in claim 16 , wherein the encoder further comprises a single memory device.

31. The encoder as claimed in claim 16 , wherein the encoder further comprises a single receiver.

Assignments (3)
SECURITY INTEREST Recorded Apr 6, 2026
From: GL IP PROTECT LLC
To: UNITY MASTER LLC SERIES XIX
Reel/Frame 075366/0123 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 16, 2026
From: GURULOGIC MICROSYSTEMS OY
To: GL IP PROTECT LLC
Reel/Frame 074092/0232 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 21, 2014
From: KALEVO, OSSI; KÄRKKÄINEN, TUOMAS
To: GURULOGIC MICROSYSTEMS OY
Reel/Frame 032268/0617 →
Continuity (2)
Continuation In Part 13584005 · Aug 13, 2012
Related Publication 20140140359A1 · May 22, 2014