Browse Prior Art Database

EFFICIENT COMPUTATION OF BIT EXACT RESULTS

IP.com Disclosure Number: IPCOM000009270D
Original Publication Date: 1999-Jun-01
Included in the Prior Art Database: 2002-Aug-14
Document File: 2 page(s) / 102K

Publishing Venue

Motorola

Related People

Roger Smith: AUTHOR [+2]

Abstract

The international standard ITU G.729A describes a method for compressing and decom- pressing voice signals. Associated with the standard is an unoptimized reference C code which imple- ments it. An optimized implementation of the stan- dard is deemed compliant if any input stream to be compressed or decompressed produces an output stream which is bit-for-bit identical with the output stream produced by the reference code. Although other mechanisms exist for satisfying compliance, bit-exact output is a de facto requirement for com- pliance.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 50% of the total text.

Page 1 of 2

MOTOROLA @ Technical Developments

EFFICIENT COMPUTATION OF BIT EXACT RESULTS

by Roger Smith and Wen Su

  The international standard ITU G.729A describes a method for compressing and decom- pressing voice signals. Associated with the standard is an unoptimized reference C code which imple- ments it. An optimized implementation of the stan- dard is deemed compliant if any input stream to be compressed or decompressed produces an output stream which is bit-for-bit identical with the output stream produced by the reference code. Although other mechanisms exist for satisfying compliance, bit-exact output is a de facto requirement for com- pliance.

  This standard and other DSP applications are written to use saturation arithmetic. In saturation arithmetic, integers are restricted to a range [Low, High]. An operation which produces a result greater than High must instead produce the result High, while an operation which produces a result less than Low must instead produce the result Low. The prin-

cipal problem this introduces is that addition and subtraction are no longer associative, i.e., a+(bkc) is not the same as (a+b)+c. For example, (High + High) - High = (High) - High = 0, while High + (High - High) = High + 0 = High. Saturation arith- metic makes it hard to perform sums in parallel, since the result is affected by the order in which operations are performed.

  It is advantageous for an optimized implementa- tion on a particular processor to achieve bit-exact- ness with as high a performance as possible. In par- ticular, for a processor which can perform multiple arithmetic operations in parallel, it is desirable to use these operations efficiently.

  A typical filter operation takes a sequence of input values Xi and produces a sequence of output values yi, according to the relationship

Y~+I = al yi + % Yi.1 + a3 Yi.l+ . . . + % Yi+l.n + b, Xi+, + b, xi +... + b, x~+,.~.

  A combination of two factors makes a filter illustrated be performed from left to right. Thus, operation like this diflicult to implement efficiently after yi has been computed, it is then necessary to in a microprocessor where a number of arithmetic compute the product at yi and add on the results of operations can be performed in parallel. The first the other n+m products...