CA2610721A1 - Method and apparatus for adaptive tranforms for compressing data streams - Google Patents

Method and apparatus for adaptive tranforms for compressing data streams Download PDF

Info

Publication number
CA2610721A1
CA2610721A1 CA002610721A CA2610721A CA2610721A1 CA 2610721 A1 CA2610721 A1 CA 2610721A1 CA 002610721 A CA002610721 A CA 002610721A CA 2610721 A CA2610721 A CA 2610721A CA 2610721 A1 CA2610721 A1 CA 2610721A1
Authority
CA
Canada
Prior art keywords
transform
data
cache line
transforms
encoding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CA002610721A
Other languages
French (fr)
Other versions
CA2610721C (en
Inventor
Russell T. Nakano
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nahava Inc
Original Assignee
Nahava Inc.
Russell T. Nakano
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nahava Inc., Russell T. Nakano filed Critical Nahava Inc.
Publication of CA2610721A1 publication Critical patent/CA2610721A1/en
Application granted granted Critical
Publication of CA2610721C publication Critical patent/CA2610721C/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Abstract

A method and apparatus for data encoding and compression is disclosed. For each data block being encoded, a particular encoding transform is selected among a baseline transform, like discrete cosine transform (DCT), and a transorm tailored to the block itself, like a sigular value decomposition (SVD) based transform, depending on a criterion of best reconstruction.

Claims (35)

1. An encoding method comprising:
inputting data to encode;
selecting a particular encoding transform from one or more encoding transforms;
encoding said data with said selected particular encoding transform;
outputting an identification of said selected particular encoding transform;
and outputting said encoded data.
2. The method of claim 1 wherein said selected particular encoding transform is a most efficient encoding transform for said data from said one or more encoding transforms.
3. The method of claim 1 wherein inputting data comprises inputting a plurality of blocks of data to encode and said selected particular encoding transform is a most efficient encoding transform over entire said plurality of blocks of data from said one or more encoding transforms.
4. The method of claim 3 wherein said most efficient encoding transform is one that will keep a decoder's resources maximally utilized.
5. The method of claim 1 wherein said one or more transforms have a property selected from the group consisting of not dynamically updateable, one or more pre-specified baseline transforms, and dynamically updateable based on said received data.
6. A machine-readable medium having stored thereon instructions, which when executed performs the method of claim 1.
7. A system comprising a processor coupled to a memory, which when executing a set of instructions performs the method of claim 1.
8. The method of claim 1 wherein one or more of said one or more encoding transforms are not prespecified and are one or more new transforms created over time based upon said inputted data.
9. The method of claim 8 wherein said one or more new transforms are discarded over time and replaced by one or more newer transforms based upon said inputted data.
10. The method of claim 9 wherein said one or more new transforms' bases and said one or more newer transforms' bases are not communicated to a decoder.
11. A decoding method comprising:
receiving an identification of a most efficient encoding transform;
receiving encoded data;
determining if said received identification of said most efficient transform identifies one or more transforms; and if said received identification does identify one or more transforms then;
decoding said received encoded data using said one or more transforms; and outputting said decoded data;
if said received identification does not identify one or more transforms then;

creating a new transform;
decoding said received encoded data with said created new transform; and outputting said decoded data.
12. The method of claim 11 wherein said created new transform becomes one of said one or more transforms.
13. The method of claim 12 wherein said one or more transforms are correspondingly identical to one or more transforms for an encoder sending said received encoded data.
14. A machine-readable medium having stored thereon instructions, which when executed performs the method of claim 11.
15. A system comprising a processor coupled to a memory, which when executing a set of instructions performs the method of claim 11.
16. The method of claim 11 wherein said new transform is one or more new transforms are discarded over time and replaced by one or more newer transforms based upon said inputted data.
17. The method of claim 11 wherein said one or more new transforms are discarded over time and replaced by one or more newer transforms based upon said received encoded data.
18. The method of claim 17 wherein said one or more new transforms' bases and said one or more newer transforms' bases are derived.
19. An encoding method comprising:

(a) setting up a cache of N lines, wherein each cache line is capable of storing a transform, a corresponding inverse transform, a profile for which a similarity of a block can be measured against an implied basis of said transform, one or more indicators for invalid, valid, active, pending, locked, and unlocked, and a cache line number indicating which of said N cache lines it is;
(b) initializing said N cache lines by setting each N cache line indicator to invalid;
(c) loading one of said N cache lines with a baseline transform, a corresponding inverse baseline transform, and indictors to valid and locked, and its cache line number;
(dx) inputting a block of data to be encoded;
(d) for each of said N cache lines with an indicator of valid;
(d1) computing a corresponding similarity profile based on said Nth cache line's transform and;
(d2) placing said computed similarity profile into said Nth cache's profile;
(e) for each of said N cache lines with an indicator of valid finding which profile is most similar to said data block to be encoded; and (f) if said most similar profile is from said baseline transform then;
(f1) encoding said block of data using said baseline transform;
(f2) outputting said encoded block of data; and (f3) outputting said baseline cache line number;
(g) if said most similar profile is not from said baseline transform then;
(g1) encoding said block of data using said most similar profile transform;
and (g2) outputting said encoded block of data; and (g3) outputting said most similar profile's corresponding cache line number.
20. The method of claim 19 wherein, (f) if said most similar profile is from said baseline transform, then the method further comprising:
(f4) decoding said encoded block of data using said baseline inverse transform;
(f5) searching said N cache lines for an indicator of pending; and (f5a) if a pending cache line is not found then selecting a cache line and setting its indicator to pending;
(f6) adding said decoded block of data to said pending cache line; and (f7) if said pending cache line has equal to or greater than m blocks of data then;
(f7a) computing a transform and an inverse transform based on said m blocks;
(f7b) storing said transform in said pending cache line transform;
(f7c) storing said inverse transform in said pending cache line inverse transform; and (f7d) setting said pending cache line indicators to valid and unlocked.
21. The method of claim 19 further comprising:
if said most similar profile's corresponding cache indicator is unlocked then;
updating said most similar profile's corresponding transform and inverse transform based on said decoded block of data; and determining if want to lock said most similar profile cache line and if so then;
locking said most similar profile cache line; and outputting a lock directive.
22. The method of claim 21 comprising:
encoding a first group of data blocks according to the method of claim 3;
locking all N cache lines;
encoding a second group of data blocks according to the method of claim 3 with said N locked cache lines;
calculating a similarity measure between said first group of data blocks and said second group of data blocks by;
(a) comparing each encoded block of data in said second group against each locked cache line from said first group;
(b) selecting a closest match;
(c) calculating a difference between said closet match locked cache and said encoded block of data in said second group;
(d) summing up a total;
(e) repeating (a)-(d) until all blocks of data in said second group are done;
and outputting said total as a similarity measure.
23. The method of claim 22 wherein said groups of data are video images.
24. The method of claim 23 further comprising applying the method of claim 5 based on a hierarchical decomposition of a data stream into a plurality of groups based on one or more levels of image resolution.
25. The method of claim 22 further comprising applying the method of claim 4 based on a decomposition of a data stream into a plurality of tokens.
26. The method of claim 25 wherein said tokens are selected from the group consisting of words, sentences, paragraphs, entire writings, dates, times, places, emails, stock prices, stock volumes, voce data, sound patterns, musical notes, and musical passages.
27. The method of claim 19 further comprising sending one or more of said one or more indicators.
28. A decoding method comprising:
(a) setting up a cache of N lines, wherein each cache line is capable of storing a transform, a corresponding inverse transform, a profile for which a similarity of a block can be measured against an implied basis of said transform, one or more indicators for invalid, valid, active, pending, locked, and unlocked and a cache line number indicating which of said N cache lines it is;
(b) initializing said N cache lines by setting each N cache line indicator to invalid;
(c) loading one of said N cache lines with a baseline transform, a corresponding inverse baseline transform, and indictors to valid and locked, and its cache line number;
(d) receiving a block of data to be decoded and a corresponding received cache line number;
(e) if said received cache line number corresponds to said baseline transform cache line number then;
(e1) decoding said block of data using said baseline inverse transform; and (e2) outputting said decoded data;
(f) if said received cache line number does not corresponds to said baseline transform cache line number then;
(f1) decoding said block of data using said received cache line number corresponding inverse transform; and (f2) outputting said decoded data;
29. The method of claim 28 wherein, (e) if said received cache line number corresponds to said baseline transform cache line number, then the method further comprising:
(e3) searching said N cache lines for an indicator of pending; and (e3a) if a pending cache line is not found then selecting a cache line and setting its indicator to pending;
(e4) adding said block of data to said pending cache line; and (e5) if said pending cache line has equal to or greater than m blocks of data then;
(e5a) computing a transform and an inverse transform based on said m blocks;
(e5b) storing said transform in said pending cache line transform;
(e5c) storing said inverse transform in said pending cache line inverse transform; and (e5d) setting said pending cache line indicators to valid and unlocked.
30. The method of claim 28 further comprising receiving a lock directive; and if said lock directive is true then setting said received cache line number corresponding indicator to locked;
if said lock directive is not true then;
if said received cache line number indictor is unlocked then;
updating said received cache line number corresponding transform and inverse transform based on said decoded block of data.
31. The method of claim 30 further comprising receiving a lock directive to unlock and setting said received cache line number lock indicator to unlocked.
32. An apparatus comprising:
means for inputting data to encode;
means for selecting a particular encoding transform from one or more encoding transforms;
means for encoding said data with said selected particular encoding transform;
means for outputting an identifcation of said selected particular encoding transform; and means for outputting said encoded data.
33. The apparatus of clam 32 further comprising:
means for inputting a group of data to be processed by the apparatus of claim 1; and means for determining one or more optimal one or more encoding transforms based on said group of data for a decoder's resources to be maximally utilized; and means for sending said encoded data encoded using said one or more optimal one or more encoding transforms.
34. The apparatus of claim 33 wherein means for sending said encoded data is means for sending said encoded data in a sequence not the same as said inputted data to encode.
35. An apparatus comprising:
means for receiving an identification of a most efficient encoding transform;
means for receiving encoded data;
means for determining if said received identification of said most efficient transform identifies one or more transforms; and if said received identification does identify one or more transforms then;
means for decoding said received encoded data using said one or more transforms; and means for outputting said decoded data;

if said received identification does not identify one or more transforms then;
means for creating a new transform;
means for decoding said received encoded data with said created new transform; and means for outputting said decoded data.
CA2610721A 2004-06-07 2005-06-07 Method and apparatus for adaptive tranforms for compressing data streams Active CA2610721C (en)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
USNOTYETASSIGNED 1998-08-28
US57786904P 2004-06-07 2004-06-07
US60/577869 2004-06-07
US11/146,380 US7664173B2 (en) 2004-06-07 2005-06-06 Method and apparatus for cached adaptive transforms for compressing data streams, computing similarity, and recognizing patterns
US11/146,380 2005-06-06
PCT/US2005/019919 WO2005122589A1 (en) 2004-06-07 2005-06-07 Method and apparatus for adaptive tranforms for compressing streams

Publications (2)

Publication Number Publication Date
CA2610721A1 true CA2610721A1 (en) 2005-12-22
CA2610721C CA2610721C (en) 2011-09-13

Family

ID=35448917

Family Applications (1)

Application Number Title Priority Date Filing Date
CA2610721A Active CA2610721C (en) 2004-06-07 2005-06-07 Method and apparatus for adaptive tranforms for compressing data streams

Country Status (4)

Country Link
US (2) US7664173B2 (en)
EP (1) EP1766989A1 (en)
CA (1) CA2610721C (en)
WO (1) WO2005122589A1 (en)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7765098B2 (en) * 2005-04-26 2010-07-27 Content Analyst Company, Llc Machine translation using vector space representations
FR2895108A1 (en) * 2005-12-16 2007-06-22 St Microelectronics Sa Sharable memory space access management method for multi-user type contactless integrated circuit, involves assigning same password for protection of blocks, and allocating access rights to each block
US20080201327A1 (en) * 2007-02-20 2008-08-21 Ashoke Seth Identity match process
US8351643B2 (en) 2007-10-05 2013-01-08 Dolby Laboratories Licensing Corporation Media fingerprints that reliably correspond to media content
US8217952B2 (en) * 2008-11-26 2012-07-10 Novell, Inc. Techniques for caching images
US8307285B2 (en) * 2008-12-08 2012-11-06 Wolo Mfg. Corp. Method and system having a multi-function base for storing and accessing an audio file for use in selection of a horn
CN102474607B (en) * 2009-07-23 2016-05-11 汤姆森许可贸易公司 The method and apparatus of selecting for the adaptive transformation of Video coding and decoding
US8631040B2 (en) * 2010-02-23 2014-01-14 Sas Institute Inc. Computer-implemented systems and methods for flexible definition of time intervals
US8495737B2 (en) 2011-03-01 2013-07-23 Zscaler, Inc. Systems and methods for detecting email spam and variants thereof
US9047559B2 (en) 2011-07-22 2015-06-02 Sas Institute Inc. Computer-implemented systems and methods for testing large scale automatic forecast combinations
US9244887B2 (en) 2012-07-13 2016-01-26 Sas Institute Inc. Computer-implemented systems and methods for efficient structuring of time series data
US9087306B2 (en) 2012-07-13 2015-07-21 Sas Institute Inc. Computer-implemented systems and methods for time series exploration
CN104718706B (en) * 2012-08-21 2019-11-05 Emc 公司 The method and system of format identification for segmented image data
US9147218B2 (en) 2013-03-06 2015-09-29 Sas Institute Inc. Devices for forecasting ratios in hierarchies
US9934259B2 (en) 2013-08-15 2018-04-03 Sas Institute Inc. In-memory time series database and processing in a distributed environment
US10169720B2 (en) 2014-04-17 2019-01-01 Sas Institute Inc. Systems and methods for machine learning using classifying, clustering, and grouping time series data
US9892370B2 (en) 2014-06-12 2018-02-13 Sas Institute Inc. Systems and methods for resolving over multiple hierarchies
US9208209B1 (en) 2014-10-02 2015-12-08 Sas Institute Inc. Techniques for monitoring transformation techniques using control charts
US9418339B1 (en) 2015-01-26 2016-08-16 Sas Institute, Inc. Systems and methods for time series analysis techniques utilizing count data sets
US10983682B2 (en) 2015-08-27 2021-04-20 Sas Institute Inc. Interactive graphical user-interface for analyzing and manipulating time-series projections
US10331490B2 (en) 2017-11-16 2019-06-25 Sas Institute Inc. Scalable cloud-based time series analysis
US10338994B1 (en) 2018-02-22 2019-07-02 Sas Institute Inc. Predicting and adjusting computer functionality to avoid failures
US10255085B1 (en) 2018-03-13 2019-04-09 Sas Institute Inc. Interactive graphical user interface with override guidance
US10685283B2 (en) 2018-06-26 2020-06-16 Sas Institute Inc. Demand classification based pipeline system for time-series data forecasting
US10560313B2 (en) 2018-06-26 2020-02-11 Sas Institute Inc. Pipeline system for time-series data forecasting
CN113742288A (en) * 2020-05-29 2021-12-03 伊姆西Ip控股有限责任公司 Method, electronic device and computer program product for data indexing

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4558302A (en) 1983-06-20 1985-12-10 Sperry Corporation High speed data compression and decompression apparatus and method
US5532693A (en) * 1994-06-13 1996-07-02 Advanced Hardware Architectures Adaptive data compression system with systolic string matching logic
WO1996002895A1 (en) 1994-07-14 1996-02-01 Johnson Grace Company Method and apparatus for compressing images
US5642112A (en) * 1994-12-29 1997-06-24 Unisys Corporation Method and apparatus for performing LZW data compression utilizing an associative memory
US5557759A (en) * 1995-06-07 1996-09-17 International Business Machines Corporation Video processor with non-stalling interrupt service
FR2760872B1 (en) * 1997-03-17 2000-06-09 Alsthom Cge Alcatel METHOD FOR OPTIMIZING THE COMPRESSION OF IMAGE DATA, WITH AUTOMATIC SELECTION OF COMPRESSION CONDITIONS
US6674536B2 (en) * 1997-04-30 2004-01-06 Canon Kabushiki Kaisha Multi-instruction stream processor
US6507898B1 (en) * 1997-04-30 2003-01-14 Canon Kabushiki Kaisha Reconfigurable data cache controller
US6731814B2 (en) * 2000-05-01 2004-05-04 Xerox Corporation Method for compressing digital documents with control of image quality and compression rate
US6348881B1 (en) * 2000-08-29 2002-02-19 Philips Electronics No. America Corp. Efficient hardware implementation of a compression algorithm
SE0004736D0 (en) * 2000-12-20 2000-12-20 Ericsson Telefon Ab L M Mapping system and method
US7042942B2 (en) * 2001-12-21 2006-05-09 Intel Corporation Zigzag in-order for image/video encoder and decoder
US7009533B1 (en) 2004-02-13 2006-03-07 Samplify Systems Llc Adaptive compression and decompression of bandlimited signals
WO2005103908A1 (en) * 2004-04-26 2005-11-03 Matsushita Electric Industrial Co., Ltd. Computer system and computer program executing encryption or decryption
US7184603B2 (en) 2004-11-15 2007-02-27 Smith Micro Software, Inc. System and method for lossless compression of digital images

Also Published As

Publication number Publication date
US8175144B2 (en) 2012-05-08
US7664173B2 (en) 2010-02-16
US20050271156A1 (en) 2005-12-08
CA2610721C (en) 2011-09-13
US20100098151A1 (en) 2010-04-22
EP1766989A1 (en) 2007-03-28
WO2005122589A1 (en) 2005-12-22

Similar Documents

Publication Publication Date Title
CA2610721A1 (en) Method and apparatus for adaptive tranforms for compressing data streams
Tian Reversible data embedding using a difference expansion
Lu et al. Digital image watermarking technique based on vector quantisation
JP5662429B2 (en) Method for encoding / decoding a 3D mesh model composed of one or more components
JP3195966B2 (en) Method and apparatus for coding data using both vector quantization and run-length coding and further using adaptive run-length coding
BRPI0712984A2 (en) error reduction during inverse discrete cosine transform computation
US20080159403A1 (en) System for Use of Complexity of Audio, Image and Video as Perceived by a Human Observer
JPH07506707A (en) Image compression encoding method in image transmission system
CN101304522A (en) Considerable information hide method using JPEG2000 compression image as carrier
JP2001203878A (en) Device and method for processing image
US9991905B2 (en) Encoding method, decoding method, encoder and decoder
US7965206B2 (en) Apparatus and method of lossless coding and decoding
Saupe Lean domain pools for fractal image compression
US20070276894A1 (en) Process And Device For Determining A Transforming Element For A Given Transformation Function, Method And Device For Transforming A Digital Signal From The Time Domain Into The Frequency Domain And Vice Versa And Computer Readable Medium
Mohan et al. Robust digital watermarking scheme using contourlet transform
CN104067338B (en) Improved hierarchical coding
Chang et al. Reversible index-domain information hiding scheme based on side-match vector quantization
Zhao et al. A new affine transformation: its theory and application to image coding
US7505897B2 (en) Generalized Lempel-Ziv compression for multimedia signals
US20030161469A1 (en) Method and apparatus for embedding data in compressed audio data stream
CN100520765C (en) Process and device for determining a transforming element for a given transformation function, method and device for transforming a digital signal and computer readable medium
US8532179B2 (en) Method and device for optimizing the compression of a video stream
Kadambe et al. Compressive sensing and vector quantization based image compression
US20050196055A1 (en) Method and system for codifying signals that ensure high fidelity reconstruction
Alsolami Audio steganography method using least significant bit (LSB) encoding technique

Legal Events

Date Code Title Description
EEER Examination request