dplib.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. /*
  2. * Copyright (c) 2011 Apple Inc. All rights reserved.
  3. *
  4. * @APPLE_APACHE_LICENSE_HEADER_START@
  5. *
  6. * Licensed under the Apache License, Version 2.0 (the "License");
  7. * you may not use this file except in compliance with the License.
  8. * You may obtain a copy of the License at
  9. *
  10. * http://www.apache.org/licenses/LICENSE-2.0
  11. *
  12. * Unless required by applicable law or agreed to in writing, software
  13. * distributed under the License is distributed on an "AS IS" BASIS,
  14. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  15. * See the License for the specific language governing permissions and
  16. * limitations under the License.
  17. *
  18. * @APPLE_APACHE_LICENSE_HEADER_END@
  19. */
  20. /*
  21. File: dplib.h
  22. Contains: Dynamic Predictor routines
  23. Copyright: Copyright (C) 2001-2011 Apple, Inc.
  24. */
  25. #ifndef __DPLIB_H__
  26. #define __DPLIB_H__
  27. #include <stdint.h>
  28. #ifdef __cplusplus
  29. extern "C" {
  30. #endif
  31. // defines
  32. #define DENSHIFT_MAX 15
  33. #define DENSHIFT_DEFAULT 9
  34. #define AINIT 38
  35. #define BINIT (-29)
  36. #define CINIT (-2)
  37. #define NUMCOEPAIRS 16
  38. // prototypes
  39. void init_coefs( int16_t * coefs, uint32_t denshift, int32_t numPairs );
  40. void copy_coefs( int16_t * srcCoefs, int16_t * dstCoefs, int32_t numPairs );
  41. // NOTE: these routines read at least "numactive" samples so the i/o buffers must be at least that big
  42. void pc_block( int32_t * in, int32_t * pc, int32_t num, int16_t * coefs, int32_t numactive, uint32_t chanbits, uint32_t denshift );
  43. void unpc_block( int32_t * pc, int32_t * out, int32_t num, int16_t * coefs, int32_t numactive, uint32_t chanbits, uint32_t denshift );
  44. #ifdef __cplusplus
  45. }
  46. #endif
  47. #endif /* __DPLIB_H__ */