Path: utzoo!attcan!uunet!cs.utexas.edu!mailrus!ncar!tank!eecae!abaa!esker From: esker@abaa.uucp (Lawrence Esker) Newsgroups: comp.dsp Subject: Re: converting to/from compressed form Message-ID: <3439@abaa.UUCP> Date: 26 Sep 89 16:16:12 GMT References:Reply-To: esker@abaa.UUCP (Lawrence Esker) Organization: Allen Bradley Lines: 35 In article rusty@garnet.berkeley.edu writes: >Does anybody have any code or know where I can get my hands on some >that would convert "normal" (uncompressed) 16 bit digital audio into >the 8 bit u-law (or A-law) compressed form that the AM79C30 uses? Or >point me at some references (that I could try and puzzle over; my math >is zip)? > rusty c. wright I am trying this from memory, so bear with me. I'm not too sure on the sign bit treatment. The best reference would be the data manual on the AM79C30. First, the data is separated into inverted sign bit plus magnetude. The magnetude is fractionalized into 0 through 7 leading zero's, four bits of data, and trash. The number of leading zero's subtracted from 7 is converted to binary. The compressed value is the sign bit, binary zero lead, four data bits. Some examples: 1111 1111 1111 1111 = 1 1111 xxxxxxxxxxx = 0 111 1111 1000 0101 1110 0100 = 1 0000 1011 xxxxxxx = 0 011 1011 1001 0110 0011 1010 = 1 00 1011 xxxxxxxxx = 0 101 1011 1000 0000 0001 0000 = 1 0000000 0001 xxxx = 0 000 0001 0111 1111 1111 0000 = 0 0000000 0001 xxxx = 1 000 0001 0111 0001 1001 0110 = 0 000 1110 xxxxxxxx = 1 100 1110 0000 0000 0000 0001 = 0 1111 xxxxxxxxxxx = 1 111 1111 0000 0000 0000 0000 = no 2's complement = 1 111 1111 You can see from above that the best resolution of small signal information is 12 bits. The least significant four or more bits of 16 bit data is trashed. As I said before, the sign bit treatment is probably wrong. I hope the rest was done correctly. Anyone who knows how CD players and compandors treat polarity is welcome to correct me. -- ---------- Lawrence W. Esker ---------- Modern Amish: Thou shalt not need any computer that is not IBM compatible. UseNet Path: __!mailrus!sharkey!itivax!abaa!esker == esker@abaa.UUCP