IP Library › Granted Patent US 9,859,920
Granted Patent B2
US 9,859,920 · App. 15/321,180 · Granted Jan 2, 2018

Encoder and decoder

Inventors: Tuomas Karkkainen (Turku, FI); Ossi Kalevo (Akaa, FI)
Assignee: Gurulogic Microsystems Oy
H03M7/6047H03M7/6005H03M7/6011H04L65/607H04L65/608H04L67/02H04L69/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 9,859,920
App. No.
15/321,180
Granted
Jan 2, 2018
Kind
B2
Abstract

An encoder for encoding input data to generate corresponding encoded data is provided. The encoder identifies substantial reoccurrences of data blocks and/or data packets within at least a portion of the input data. The encoder then identifies, in respect of individual elements, where elements are unchanged and/or changed within the substantially reoccurring data blocks and/or data packets. Subsequently, the encoder encodes unchanged elements in the encoded data by employing at least one corresponding symbol, or at least one corresponding bit, for example a single bit, indicating an absence of change in the unchanged elements relative to corresponding elements in a reference data block and/or data packet. Moreover, the encoder encodes changed elements in the encoded data.

Claims (59)

1. An encoder including processing hardware for encoding input data to generate corresponding encoded data, wherein the processing hardware is operable to process the input data as data blocks and/or data packets, characterized in that the processing hardware is operable to:

(i) identify substantial reoccurrences of data blocks and/or data packets within at least a portion of the input data, wherein the data blocks and/or data packets include a corresponding plurality of elements, wherein the elements include a plurality of bits;

(ii) identify where elements are unchanged within the substantially reoccurring data blocks and/or data packets, and/or where elements are changed within the substantially reoccurring data blocks and/or data packets;

(iii) encode unchanged elements in the encoded data by employing at least one corresponding symbol or at least one corresponding bit indicating an absence of change in the unchanged elements relative to corresponding elements in a reference data block and/or data packet; and

(iv) encode changed elements in the encoded data.

2. An encoder as claimed in claim 1 , characterized in that the input data is in a form of at least one of: text data, image data, video data, audio data, binary data, sensor data, measurement data, graphical data, multi-dimensional data, uni-dimensional data.

3. An encoder as claimed in claim 1 , characterized in that the at least one corresponding symbol is represented by a predetermined data value.

4. An encoder as claimed in claim 3 , characterized in that the predetermined data value is implemented as a zero data value.

5. An encoder as claimed in claim 1 , characterized in that the processing hardware is operable to implement chunked transfer encoding for Hypertext Transfer Protocol (HTTP) and/or Real-Time Messaging Protocol (RTMP).

6. An encoder as claimed in claim 5 , characterized in that the HTTP and/or RTMP employ fixed-size data blocks and/or data packets inside requests and responses.

7. An encoder as claimed in claim 1 , characterized in that the processing hardware is operable to encode at least a portion of the changed elements in a quantized manner in the encoded data.

8. An encoder as claimed in claim 1 , characterized in that the processing hardware is operable to apply a compression algorithm to compress the encoded data.

9. A method of encoding input data to generate corresponding encoded data, wherein the method includes processing the input data as data blocks and/or data packets, characterized in that the method includes:

identifying, by a processor, substantial reoccurrences of data blocks and/or data packets within at least a portion of the input data, wherein the data blocks and/or data packets include a corresponding plurality of elements, wherein the elements include a plurality of bits;

(ii) identifying, by the processor, in respect of individual elements where elements are unchanged within the substantially reoccurring data blocks and/or data packets, and/or where elements are changed within the substantially reoccurring data blocks and/or data packets;

(iii) encoding, by the processor, unchanged elements in the encoded data by employing at least one corresponding symbol or at least one corresponding bit indicating an absence of change in the unchanged elements relative to corresponding elements in a reference data block and/or data packet; and

(iv) encoding, by the processor, changed elements in the encoded data.

10. A method as claimed in claim 9 , characterized in that the method includes encoding, by the processor, the input data received in a form of at least one of: text data, image data, video data, audio data, binary data, sensor data, measurement data, graphical data, multi-dimensional data, uni-dimensional data.

11. A method as claimed in claim 9 , characterized in that the method includes representing, by the processor, the at least one corresponding symbol by a predetermined data value.

12. A method as claimed in claim 11 , characterized in that the predetermined data value is implemented as a zero data value.

13. A method as claimed in claim 9 , characterized in that the method includes implementing, by the processor, chunked transfer encoding for Hypertext Transfer Protocol (HTTP) and/or Real-Time Messaging Protocol (RTMP).

14. A method as claimed in claim 13 , characterized in that the HTTP and/or RTMP employ fixed-size data blocks and/or data packets inside requests and responses.

15. A method as claimed in claim 9 , characterized in that the method includes encoding, by the processor, at least a portion of the changed elements in a quantized manner in the encoded data.

16. A method as claimed in claim 9 , characterized in that the method includes applying, by the processor, a compression algorithm to compress the encoded data to generate corresponding compressed data.

17. A computer program product comprising a non-transitory computer-readable storage medium having computer-readable instructions stored thereon, the computer-readable instructions being executable by a computerized device comprising the processor to execute a method as claimed in claim 9 .

18. A decoder including processing hardware for decoding encoded data to generate corresponding decoded data, wherein the processing hardware is operable to process the encoded data as data blocks and/or data packets, characterized in that the processing hardware is operable to:

(i) decode the encoded data to generate data for changed elements, the changed elements being elements that are changed within substantial reoccurrences of data blocks and/or data packets within the encoded data;

(ii) decode the encoded data to generate data for unchanged elements, the unchanged elements being elements that are unchanged within the substantial reoccurrences of data blocks and/or data packets within the encoded data, wherein the unchanged elements are represented by at least one corresponding symbol or at least one corresponding bit indicating an absence of change in the unchanged elements relative to corresponding elements in a reference data block and/or data packet; and

(iii) assemble the data generated for the changed and unchanged elements in (i) and (ii) into data blocks and/or data packets to generate the decoded data, wherein the data blocks and/or data packets include a corresponding plurality of elements, wherein the elements include a plurality of bits.

19. A decoder as claimed in claim 18 , characterized in that the decoded data is in a form of at least one of: text data, image data, video data, audio data, binary data, sensor data, measurement data, graphical data, multi-dimensional data, uni-dimensional data.

20. A decoder as claimed in claim 18 , characterized in that the at least one corresponding symbol is represented by a predetermined data value.

21. A decoder as claimed in claim 20 , characterized in that the predetermined data value is implemented as a zero data value.

22. A decoder as claimed in claim 18 , characterized in that the processing hardware is operable to implement chunked transfer encoding for Hypertext Transfer Protocol (HTTP) and/or Real-Time Messaging Protocol (RTMP).

23. A decoder as claimed in claim 22 , characterized in that the HTTP and/or RTMP employ fixed-size data blocks and/or data packets inside requests and responses.

24. A decoder as claimed in claim 18 , characterized in that the processing hardware is operable to decode at least a portion of the changed elements in a quantized manner in the decoded data.

25. A decoder as claimed in claim 18 , characterized in that the processing hardware is operable to apply a decompression algorithm to decompress compressed data to generate the encoded data for decoding the encoded data to generate the data for the changed and unchanged elements.

26. A method of decoding encoded data to generate corresponding decoded data, wherein the method includes processing the encoded data as data blocks and/or data packets, characterized in that the method includes:

(i) decoding, by a processor, the encoded data to generate data for changed elements, the changed elements being elements that are changed within substantial reoccurrences of data blocks and/or data packets within the encoded data;

(ii) decoding, by the processor, the encoded data to generate data for unchanged elements, the unchanged elements being elements that are unchanged within the substantial reoccurrences of data blocks and/or data packets within the encoded data, wherein the unchanged elements are represented by at least one corresponding symbol or at least one corresponding bit indicating an absence of change in the unchanged elements relative to corresponding elements in a reference data block and/or data packet; and

(iii) assembling, by the processor, the data generated for the changed and unchanged elements in steps (i) and (ii) into data blocks and/or data packets to generate the decoded data, wherein the data blocks and/or data packets include a corresponding plurality of elements, wherein the elements include a plurality of bits.

27. A method as claimed in claim 26 , characterized in that the method includes generating, by the processor, the decoded data in a form of at least one of: text data, image data, video data, audio data, binary data, sensor data, measurement data, graphical data, multi-dimensional data, uni-dimensional data.

28. A method as claimed in claim 26 , characterized in that the at least one corresponding symbol is represented by a predetermined data value.

29. A method as claimed in claim 28 , characterized in that the predetermined data value is implemented as a zero data value.

30. A method as claimed in claim 26 , characterized in that the method includes implementing, by the processor, chunked transfer encoding for Hypertext Transfer Protocol (HTTP) and/or Real-Time Messaging Protocol (RTMP).

31. A method as claimed in claim 30 , characterized in that the HTTP and/or RTMP employ fixed-size data blocks and/or data packets inside requests and responses.

32. A method as claimed in claim 26 , characterized in that the method includes decoding, by the processor, at least a portion of the changed elements in a quantized manner in the decoded data.

33. A method as claimed in claim 26 , characterized in that the method includes applying, by the processor, a decompression algorithm to decompress compressed data to generate the encoded data for decoding the encoded data to generate the data for the changed and unchanged elements.

34. A computer program product comprising a non-transitory computer-readable storage medium having computer-readable instructions stored thereon, the computer-readable instructions being executable by a computerized device comprising processing hardware to execute a method of decoding encoded data to generate corresponding decoded data, wherein the method includes processing the encoded data as data blocks and/or data packets, characterized in that the method includes:

(i) decoding the encoded data to generate data for changed elements, the changed elements being elements that are changed within substantial reoccurrences of data blocks and/or data packets within the encoded data;

(ii) decoding the encoded data to generate data for unchanged elements, the unchanged elements being elements that are unchanged within the substantial reoccurrences of data blocks and/or data packets within the encoded data, wherein the unchanged elements are represented by at least one corresponding symbol or at least one corresponding bit indicating an absence of change in the unchanged elements relative to corresponding elements in a reference data block and/or data packet; and

(iii) assembling the data generated for the changed and unchanged elements in steps (i) and (ii) into data blocks and/or data packets to generate the decoded data, wherein the data blocks and/or data packets include a corresponding plurality of elements, wherein the elements include a plurality of bits.

35. A codec including at least one encoder including processing hardware for encoding input data to generate corresponding encoded data, wherein the processing hardware is operable to process the input data as data blocks and/or data packets, characterized in that the processing hardware is operable to:

(i) identify substantial reoccurrences of data blocks and/or data packets within at least a portion of the input data, wherein the data blocks and/or data packets include a corresponding plurality of elements, wherein the elements include a plurality of bits;

(ii) identify where elements are unchanged within the substantially reoccurring data blocks and/or data packets, and/or where elements are changed within the substantially reoccurring data blocks and/or data packets;

(iii) encode unchanged elements in the encoded data by employing at least one corresponding symbol or at least one corresponding bit indicating an absence of change in the unchanged elements relative to corresponding elements in a reference data block and/or data packet; and

(iv) encode changed elements in the encoded data; and at least one decoder including processing hardware for decoding encoded data to generate corresponding decoded data, wherein the processing hardware is operable to process the encoded data as data blocks and/or data packets, characterized in that the processing hardware is operable to:

(i) decode the encoded data to generate data for changed elements, the changed elements being elements that are changed within substantial reoccurrences of data blocks and/or data packets within the encoded data;

(ii) decode the encoded data to generate data for unchanged elements, the unchanged elements being elements that are unchanged within the substantial reoccurrences of data blocks and/or data packets within the encoded data, wherein the unchanged elements are represented by at least one corresponding symbol or at least one corresponding bit indicating an absence of change in the unchanged elements relative to corresponding elements in a reference data block and/or data packet; and

(iii) assemble the data generated for the changed and unchanged elements in (i) and (ii) into data blocks and/or data packets to generate the decoded data, wherein the data blocks and/or data packets include a corresponding plurality of elements, wherein the elements include a plurality of bits.

Assignments (4)
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 Oct 31, 2025
From: GURULOGIC MICROSYSTEMS OY
To: GL IP PROTECT LLC
Reel/Frame 072753/0874 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 21, 2016
From: KARKKAINEN, TUOMAS; KALEVO, OSSI
To: GURULOGIC MICROSYSTEMS OY
Reel/Frame 041172/0528 →
Priority Claims (1)
GB 1411451.6 · Jun 27, 2014 · national
Continuity (1)
Related Publication 20170155404A1 · Jun 1, 2017