United States Patent (19) 11 Patent Number: 5,884,269 Cellier Et Al

Total Page:16

File Type:pdf, Size:1020Kb

United States Patent (19) 11 Patent Number: 5,884,269 Cellier Et Al USOO5884269A United States Patent (19) 11 Patent Number: 5,884,269 Cellier et al. (45) Date of Patent: Mar 16, 1999 54) LOSSLESS COMPRESSION/ 4,841,299 6/1989 Weaver ..................................... 341/36 DECOMPRESSION OF DIGITALAUDIO 4.882,754 11/1989 Weaver et al. ............................ 381/35 DATA OTHER PUBLICATIONS 75 Inventors: Claude Cellier, CheXbres, Switzerland; C. Cellier et al., “Lossless Audio Data Compression for Real Pierre Chenes, Ferreyres, Switzerland Time Applications,” 95th AES Convention, Oct. 1993. 73 ASSignee: Merging Technologies, Puidoux, Primary Examiner-Chi H. Pham Switzerland Assistant Examiner Ricky Q. Ngu Attorney, Agent, or Firm-Kenyon & Kenyon 21 Appl. No.: 422,457 57 ABSTRACT 22 Filed: Apr. 17, 1995 6 An audio signal compression and decompression method 51 Int. Cl. ................................. G10L 7/00; G10L 3/02 and apparatus that provide lossleSS, realtime performance. 52 U.S. Cl. ......................... 704/501; 704/504; 371/37.8; The compression/decompression method and apparatus are 341/64 based on an entropy encoding technique using multiple 58 Field of Search .................................. 395/2.38, 2.39, Huffman code tables. Uncompressed audio data Samples C 395/2.3–2.32; 375/242, 243, 254; 371/30, first processed by a prediction filter which generates predic 37.1, 37.2, 37.7, 37.8; 382/56; 358/246, tion error Samples. An optimum coding table is then Selected 261.1, 261.2, 427; 704/200, 500, 501, 503, from a number of different preselected tables which have 504; 341/50, 51, 64, 65 been tailored to different probability density functions of the prediction error. For each frame of prediction error Samples, 56) References Cited an entropy encoder Selects the one Huffman code table U.S. PATENT DOCUMENTS which will yield the Shortest encoded representation of the frame of prediction error Samples. The frame of prediction 4,396,906 8/1983 Weaver ................................... 340/347 CO Samples is then encoded using the selected Huffman 4,449,536 5/1984 Weaver ... ... 128/696 code table. A block Structure for the compressed data and a 4,503.510 3/1985 Weaver ... ... 364/715 decoder for reconstructing the original audio signal from the 4,535,320 8/1985 Weaver ........ ... 340/347 compressed data are also disclosed. 4,546,342 10/1985 Weaver et al. ... ... 340/347 4,754,483 6/1988 Weaver ..................................... 381/36 4,802,222 1/1989 Weaver ..................................... 381/35 14 Claims, 7 Drawing Sheets 1 O 4. COMPACT HUFFMAN TABLES DICTIONARY HUFFMAN BEST TABLE CODING AND OUTPUT, PREDICTOR SELECTOR FRAME STORAGE CODING COMPACT HUFFMAN WEIGHT TABLES U.S. Patent Mar 16, 1999 Sheet 1 of 7 5,884,269 104 COMPACT HUFFMAN TABLES DICTIONARY 1 O2 BEST té CODINGHUFFMAN AND OUTPUT PREDICTOR SELECTOR FRAME STORAGE CODING COMPACT HUFFMAN WEIGHT TABLES FIG. 1 204 HUFFMAN TABLES DCTIONARY 2O 2O5 FRAME HUFFMAN INVERSE INPUT, DECODING STORAGE BLOCK DECODING PREDICTOR FIG. 2 U.S. Patent Mar 16, 1999 Sheet 2 of 7 5,884,269 ETTVA(J>|E. G| „MULITIEVEJO?!c) U.S. Patent Mar 16, 1999 Sheet 3 of 7 5,884,269 401 NINIT ALL BIN HIT COUNTERS TO O, N=0 402- GET ERR SAMPLE IN 403 NFIND BIN HIT FOR ERR SAMPLE (N) 404 405 E EN YES 406-N INIT COST OF EACH TABLE TO O, TABLE POINTER T=0 4O7 COMPUTE COST FOR TABLET) 408 T=O OR COSTTKMINCOST 2 409 MINCOST = COSTT) BESTTABLE = T 41 O 411 T= LAST TABLE 2 YES FIG. 4 U.S. Patent Mar 16, 1999 Sheet 5 of 7 5,884,269 FROM 404 (FIG. 4) 522-N TAKE ABSOLUTE VALUE OF ERR SAMPLE ABS ERR(N) 523 LBYTE = ABS ERR(N) AND 00FF HBYTE = ABS ERR(N) AND FF00 HBYTE = HBYTE SHIFTED 8 BITS RIGHT 525 INC BINHITHIGH TABLEHBYTE) INC BINHITLOW TABLELBYTE)) ABS ERR x 255 ABS ERR < 256 TO 404 (FIG. 4) FIG. 5(B) U.S. Patent Mar 16, 1999 Sheet 6 of 7 5,884,269 601 N. COST = O, LEVEL POINTER L=0 6O2 COST = COST+(BINHITL) * WEIGHTL) FIG. 6 5,884,269 1 2 LOSSLESS COMPRESSION/ difference between the actual Sampled value and the pre DECOMPRESSION OF DIGITALAUDIO dicted value for that Sample, is then provided to an entropy DATA encoder, which can be based on a Huffman or arithmetic coding Scheme, to encode digital audio Samples into a FIELD OF THE INVENTION compressed form using code words of varying length. The present invention relates to an apparatus and method An object of the present invention is to provide a highly for digitally compressing and decompressing audio signals. efficient and compact way of mapping the Statistics of the More specifically, the present invention relates to an appa actual audio Signal, on a block basis, in order to Select the ratus and method for the lossleSS compression and decom optimum encoding table from a number of different prese pression of digital audio data. lected tables which have been tailored to different probabil ity density functions (PDFs) of the predictor error. It has BACKGROUND INVENTION been discovered that the long-term Statistics of the predic tion error of commonly used predictors follow a Laplacian Sampled digital audio data, from Sources Such as Speech distribution. For each block of audio data, the entropy or musical instruments, particularly in the form of linear 15 encoder of the present invention Selects one of a number of Pulse Code Modulation (PCM) samples, tends to include a encoding tables, each of which closely matches a Laplacian high degree of redundancy because of the high degree of distribution with a given variance. The encoding tables dependence between Successive Sample values. correspond to a Series of Laplacian distributions whose With the proliferation of multimedia applications, several Variances are in a geometric progression. compression/decompression algorithms have been pro While an ideal matching to each PDF would suggest a moted. U.S. Pat. No. 4,396,906 to Weaver describes a different probability for each value, Such an implementation, System which includes means for digitizing analog signals, for a 16-bit Signal, would require 64K entries for each for compression filtering the digital Samples, and for Huff encoding table. In accordance with the present invention, the man encoding the compressed digital Samples for recording range of possible values is divided into Sub-ranges or “bins' or transmission. The U.S. Pat. No. 4,396,906 patent also 25 with boundaries at integer powers of two, with each bin describes a receiving System which includes a Huffman having one entry in each encoding table. As a result, the decoder, a digital reconstruction filter and means for con number of entries per table is only n+1, where n is the Verting the decoded, reconstructed digital Signals back to number of bits of the predictor error signal to be encoded. analog form. A similar System is describe in an article by U. Each Huffman encoding table includes a prefix code for each E. Ruttimann et al., entitled “Compression of the ECG by of the n+1 bin entries. Each Huffman table will yield a Prediction or Interpolation and Entropy Encoding”, IEEE minimum coding length for a different bin and as Such will Transactions on Biomedical Engineering, Vol. BME-26, No. yield a different coding cost depending on the variance of the 11, November 1979, pp. 613-623. Another system is predictor error values over a frame. The Huffman table described in an article by K. L. Ripley et al., entitled “A having the lowest coding cost for each frame is Selected and Computer System for Capturing Electrocardiographic 35 used to encode the predictor error values for that frame. Data”, Pro. Comput. Cardiol., 1976, pp. 439-445. Another object of the present invention is to provide an To achieve constant compression rates, however, existing efficient and flexible compressed data file format. In accor Schemes have Sacrificed audio integrity, losing Some of the dance with the present invention, compressed audio data is information contained in the original audio signal. There are 40 organized in blocks having a header and a body of user data, lossleSS compression algorithms which have been used to i.e., the encoded audio data. The Start of each block is compress text and data files with completely accurate recov delimited by a unique Sync word in the header. Each of the ery of the primary data upon decompression. These variable-length codes in the encoding tables are of Such a techniques, however, are optimized for text and data and are format that they can be combined in any order without only marginally effective in compressing audio data. forming the same pattern as the unique code that is used for Some methods of audio compression are based on psy 45 the sync word in the block header. This feature adds a level choacoustics. Such perceptual coding algorithms drop psy of error detection making it possible to prevent the propa choacoustically imperceptible audio information. While gation of an error beyond the frame in which the error acceptable for most consumer audio delivery formats, Such occurred. The use of a unique Sync word also allows for easy as MiniDisc, DAT and CD-ROMs, such an approach is Synchronization of a random acceSS System fetch to an inadequate for professional audio production, where mate 50 arbitrary location in a compressed audio data file and for rial may go through multiple iterations of compression and Subsequently quickly initializing and Synchronizing the decompression before being mastered onto the final delivery decoding process of the following frame. medium. Any loss of audio information is compounded with The block header Structure in accordance with the present each iteration causing a Serious compromise in the audio 55 invention also provides a means of rapidly jumping forward integrity of the finished product.
Recommended publications
  • Multimedia Data and Its Encoding
    Lecture 14 Multimedia Data and Its Encoding M. Adnan Quaium Assistant Professor Department of Electrical and Electronic Engineering Ahsanullah University of Science and Technology Room – 4A07 Email – [email protected] URL- http://adnan.quaium.com/aust/cse4295 CSE 4295 : Multimedia Communication prepared by M. Adnan Quaium 1 Text Encoding The character by character encoding of an alphabet is called encryption. As a rule, this coding must be reversible – the reverse encoding known as decoding or decryption. Examples for a simple encryption are the international phonetic alphabet or Braille script CSE 4295 : Multimedia Communication prepared by M. Adnan Quaium 2 Text Encoding CSE 4295 : Multimedia Communication prepared by M. Adnan Quaium 3 Morse Code Samuel F. B. Morse and Alfred Vail used a form of binary encoding, i.e., all text characters were encoded in a series of two basic characters. The two basic characters – a dot and a dash – were short and long raised impressions marked on a running paper tape. Word borders are indicated by breaks. CSE 4295 : Multimedia Communication prepared by M. Adnan Quaium 4 Morse Code ● To achieve the most efficient encoding of the transmitted text messages, Morse and Vail implemented their observation that specific letters came up more frequently in the (English) language than others. ● The obvious conclusion was to select a shorter encoding for frequently used characters and a longer one for letters that are used seldom. CSE 4295 : Multimedia Communication prepared by M. Adnan Quaium 5 7 bit ASCII code CSE 4295 : Multimedia Communication prepared by M. Adnan Quaium 6 Unicode Standard ● The Unicode standard assigns a number (code point) and a name to each character, instead of the usual glyph.
    [Show full text]
  • Answers to Exercises
    Answers to Exercises A bird does not sing because he has an answer, he sings because he has a song. —Chinese Proverb Intro.1: abstemious, abstentious, adventitious, annelidous, arsenious, arterious, face- tious, sacrilegious. Intro.2: When a software house has a popular product they tend to come up with new versions. A user can update an old version to a new one, and the update usually comes as a compressed file on a floppy disk. Over time the updates get bigger and, at a certain point, an update may not fit on a single floppy. This is why good compression is important in the case of software updates. The time it takes to compress and decompress the update is unimportant since these operations are typically done just once. Recently, software makers have taken to providing updates over the Internet, but even in such cases it is important to have small files because of the download times involved. 1.1: (1) ask a question, (2) absolutely necessary, (3) advance warning, (4) boiling hot, (5) climb up, (6) close scrutiny, (7) exactly the same, (8) free gift, (9) hot water heater, (10) my personal opinion, (11) newborn baby, (12) postponed until later, (13) unexpected surprise, (14) unsolved mysteries. 1.2: A reasonable way to use them is to code the five most-common strings in the text. Because irreversible text compression is a special-purpose method, the user may know what strings are common in any particular text to be compressed. The user may specify five such strings to the encoder, and they should also be written at the start of the output stream, for the decoder’s use.
    [Show full text]
  • Lelewer and Hirschberg, "Data Compression"
    Data Compression DEBRA A. LELEWER and DANIEL S. HIRSCHBERG Department of Information and Computer Science, University of California, Irvine, California 92717 This paper surveys a variety of data compression methods spanning almost 40 years of research, from the work of Shannon, Fano, and Huffman in the late 1940s to a technique developed in 1986. The aim of data compression is to reduce redundancy in stored or communicated data, thus increasing effective data density. Data compression has important application in the areas of file storage and distributed systems. Concepts from information theory as they relate to the goals and evaluation of data compression methods are discussed briefly. A framework for evaluation and comparison of methods is constructed and applied to the algorithms presented. Comparisons of both theoretical and empirical natures are reported, and possibilities for future research are suggested Categories and Subject Descriptors: E.4 [Data]: Coding and Information Theory-data compaction and compression General Terms: Algorithms, Theory Additional Key Words and Phrases: Adaptive coding, adaptive Huffman codes, coding, coding theory, tile compression, Huffman codes, minimum-redundancy codes, optimal codes, prefix codes, text compression INTRODUCTION mation but whose length is as small as possible. Data compression has important Data compression is often referred to as application in the areas of data transmis- coding, where coding is a general term en- sion and data storage. Many data process- compassing any special representation of ing applications require storage of large data that satisfies a given need. Informa- volumes of data, and the number of such tion theory is defined as the study of applications is constantly increasing as the efficient coding and its consequences in use of computers extends to new disci- the form of speed of transmission and plines.
    [Show full text]
  • Entropy Coding and Different Coding Techniques
    Journal of Network Communications and Emerging Technologies (JNCET) www.jncet.org Volume 6, Issue 5, May (2016) Entropy Coding and Different Coding Techniques Sandeep Kaur Asst. Prof. in CSE Dept, CGC Landran, Mohali Sukhjeet Singh Asst. Prof. in CS Dept, TSGGSK College, Amritsar. Abstract – In today’s digital world information exchange is been 2. CODING TECHNIQUES held electronically. So there arises a need for secure transmission of the data. Besides security there are several other factors such 1. Huffman Coding- as transfer speed, cost, errors transmission etc. that plays a vital In computer science and information theory, a Huffman code role in the transmission process. The need for an efficient technique for compression of Images ever increasing because the is a particular type of optimal prefix code that is commonly raw images need large amounts of disk space seems to be a big used for lossless data compression. disadvantage during transmission & storage. This paper provide 1.1 Basic principles of Huffman Coding- a basic introduction about entropy encoding and different coding techniques. It also give comparison between various coding Huffman coding is a popular lossless Variable Length Coding techniques. (VLC) scheme, based on the following principles: (a) Shorter Index Terms – Huffman coding, DEFLATE, VLC, UTF-8, code words are assigned to more probable symbols and longer Golomb coding. code words are assigned to less probable symbols. 1. INTRODUCTION (b) No code word of a symbol is a prefix of another code word. This makes Huffman coding uniquely decodable. 1.1 Entropy Encoding (c) Every source symbol must have a unique code word In information theory an entropy encoding is a lossless data assigned to it.
    [Show full text]
  • Data Communications Fundamentals: Data Transmission and Coding
    Data Transmission Codes Data Communications Fundamentals: Data Transmission and Coding Cristian S. Calude Clark Thomborson July 2010 Version 1.1: 24 July 2010, to use “k” rather than “K” as the SI prefix for kilo. Data Communications Fundamentals 1/57 Data Transmission Codes Thanks to Nevil Brownlee and Ulrich Speidel for stimulating discussions and critical comments. Data Communications Fundamentals 2/57 Data Transmission Codes Goals for this week “C” students are fluent with basic terms and concepts in data transmission and coding. They can accurately answer simple questions, using appropriate terminology, when given technical information. They can perform simple analyses, if a similar problem has been solved in a lecture, in a required reading from the textbook, or in a homework assignment. “B” students are conversant with the basic theories of data transmission and coding: they can derive non-trivial conclusions from factual information. “A” students are fluent with the basic theories of data transmission and coding: they can perform novel analyses when presented with relevant information. Data Communications Fundamentals 3/57 Data Transmission Codes References 1 B. A. Forouzan. Data Communications and Networking, McGraw Hill, 4th edition, New York, 2007. 2 W. A. Shay. Understanding Data Communications and Networks, 3rd edition, Brooks/Cole, Pacific Grove, CA, 2004. (course textbok) Data Communications Fundamentals 4/57 Data Transmission Codes Pictures All pictures included and not explicitly attributed have been taken from the instructor’s
    [Show full text]
  • Lecture 4 Data Compression (Source Coding) Instructor: Yichen Wang Ph.D./Associate Professor
    Elements of Information Theory Lecture 4 Data Compression (Source Coding) Instructor: Yichen Wang Ph.D./Associate Professor School of Information and Communications Engineering Division of Electronics and Information Xi’an Jiaotong University Outlines AEP for Data Compression (Source Coding) Fixed-Length Coding Variable-Length Coding Optimal Codes Huffman Code Xi’an Jiaotong University 3 AEP for Data Compression Let X1,X2,…,Xn be independent, identically distributed (i.i.d.) random variables with probability mass function p(x). How many bits are enough for describe the sequence of random variables X1,X2,…,Xn? Typical Sequence and Typical Set Xi’an Jiaotong University 4 AEP for Data Compression Divide all sequences in into two sets elements Non-typical set Typical set Xi’an Jiaotong elementsUniversity 5 AEP for Data Compression Indexing sequences in typical set No more than n(H+ε)+1 bits (Why having 1 extra bit?) If prefixing all these sequences by a 0, the required total length is no more than n(H+ε)+2 bits Indexing sequences in atypical set No more than bits (Why?) If prefixing all these sequences by a 1, the required total length is no more than bits Xi’an Jiaotong University 6 AEP for Data Compression n Use x to denote a sequence x1, x2, … , xn n n Let l(x ) be the length of the codeword corresponding to x The expected length of the codeword is CanXi’an be arbitraryJiaotong University small AEP for Data Compression Theorem Let Xn be i.i.d. ~ p(x). Let ε > 0. Then there exists a code that maps sequences xn of length n into binary strings such that the mapping is one-to-one (and therefore invertible) and for n sufficiently large.
    [Show full text]
  • Bits and Bytes Huffman Coding Encoding Text: How Is It Done? ASCII, UTF, Huffman Algorithm ASCII
    More Bits and Bytes Huffman Coding Encoding Text: How is it done? ASCII, UTF, Huffman algorithm ASCII 0100 0011 0100 0001 0101 0100 C A T 0100 0111|0110 1111|0010 0000| 0101 0011|0110 1100|0111 0101|0110 0111|0111 0011| © 2010 Lawrence Snyder, CSE UC SANTA CRUZ UTF-8: All the alphabets in the world § Uniform Transformation Format: a variable-width encoding that can represent every character in the Unicode Character set § 1,112,064 of them!!! § http://en.wikipedia.org/wiki/UTF-8 § UTF-8 is the dominant character encoding for the World-Wide Web, accounting for more than half of all Web pages. § The Internet Engineering Task Force (IETF) requires all Internet protocols to identify the encoding used for character data § The supported character encodings must include UTF-8. UC SANTA CRUZ UTF is a VARIABLE LENGTH ALPHABET CODING § Remember ASCII can only represent 128 characters (7 bits) § UTF encodes over one million § Why would you want a variable length coding scheme? UC SANTA CRUZ UTF-8 UC SANTA CRUZ UTF-8 What is the first Unicode value represented by this sequence? 11101010 10000011 10000111 00111111 11000011 10000000 A. 0000000001101010 B. 0000000011101010 C. 0000001010000111 D. 1010000011000111 UC SANTA CRUZ UTF-8 How many Unicode characters are represented by this sequence? 11101010 10000011 10000111 00111111 11000011 10000000 A. 1 B. 2 C. 3 D. 4 E. 5 UC SANTA CRUZ How many bits for all of Unicode? There are 1,112,064 different Unicode characters. If a fixed bit format (like ascii with its 7 bits) where used, how many bits would you need for each character? (Hint: 210 = 1024) A.
    [Show full text]
  • Binary Coding
    Binary Coding Sébastien Boisgérault, Mines ParisTech February 13, 2017 Contents Binary Data 2 Bits ..................................... 2 Binary Digits and Numbers ..................... 2 Bytes and Words ........................... 5 Integers ................................... 8 Unsigned Integers ........................... 8 Signed Integers ............................ 10 Network Order ............................ 11 Information Theory and Variable-Length Codes 12 Entropy from first principles ........................ 12 Password Strength measured by Entropy . 15 Alphabets, Symbol Codes, Stream Codes . 18 Prefix Codes ............................. 19 Example of variable-length code: Unicode and utf-8 . 20 Prefix Codes Representation ..................... 22 Optimal Length Coding .......................... 24 Average Bit Length – Bounds .................... 24 Algorithm and Implementation of Huffman Coding . 26 Optimality of the Huffman algorithm . 28 Example: Brainfuck, Spoon and Fork . 29 Golomb-Rice Coding ............................ 31 Optimality of Unary Coding – Reduced Sources . 31 Optimal Coding of Geometric Distribution - Rice Coding . 33 Rice Coding .............................. 34 Implementation ............................ 35 1 Binary Data Digital audio data – stored in a file system, in a compact disc, transmitted over a network, etc. – always end up coded as binary data, that is a sequence of bits. Bits Binary Digits and Numbers The term “bit” was coined in 1948 by the statistician John Tukey as a contrac- tion of binary
    [Show full text]
  • Compression, Information and Entropy – Huffman's Coding
    CS 473: Algorithms, Fall 2018 Compression, Information and Entropy – Huffman’s coding Lecture 25 December 1, 2018 1/28 1 25.1: Huffman coding 2 Entropy... Clicker question 1. I know what entropy of information is. 2. I know what entropy of information is - I use every day to wash my dishes. 3. I do not know what entropy of information is. 4. I do not know what entropy of information is, but I know it increases. 3/28 3 Huffman’s trees... Clicker question 1. I know what Huffman’s trees are. 2. I know what Huffman’s trees are, and I know how to build them. 3. I do not know what Hufmman’s trees are. 4. I know what Huffman’s trees are - I use them every day to dry my dishes. 5. I am going to take the fifth on this question. 4/28 4 Codes... 1. Σ: alphabet. 2. binary code: assigns a string of 0s and 1s to each character in the alphabet. 3. each symbol in input = a codeword over some other alphabet. 4. Useful for transmitting messages over a wire: only 0=1. 5. receiver gets a binary stream of bits... 6. ... decode the message sent. 7. prefix code: reading a prefix of the input binary string uniquely match it to a code word. 8. ... continuing to decipher the rest of the stream. 9. binary/prefix code is prefix-free if no code is a prefix of any other. 10. ASCII and Unicode’s UTF-8 are both prefix-free binary codes.
    [Show full text]