bits.h revision 956c553ab0ce72f8074ad0fda2ffd66a0305700c
1c383a500aa59423264811be3874461bf8adbfea0Zonr Chang/* 2c383a500aa59423264811be3874461bf8adbfea0Zonr Chang ** Copyright 2003-2010, VisualOn, Inc. 3c383a500aa59423264811be3874461bf8adbfea0Zonr Chang ** 4c383a500aa59423264811be3874461bf8adbfea0Zonr Chang ** Licensed under the Apache License, Version 2.0 (the "License"); 5c383a500aa59423264811be3874461bf8adbfea0Zonr Chang ** you may not use this file except in compliance with the License. 6c383a500aa59423264811be3874461bf8adbfea0Zonr Chang ** You may obtain a copy of the License at 7c383a500aa59423264811be3874461bf8adbfea0Zonr Chang ** 8c383a500aa59423264811be3874461bf8adbfea0Zonr Chang ** http://www.apache.org/licenses/LICENSE-2.0 9c383a500aa59423264811be3874461bf8adbfea0Zonr Chang ** 10c383a500aa59423264811be3874461bf8adbfea0Zonr Chang ** Unless required by applicable law or agreed to in writing, software 11c383a500aa59423264811be3874461bf8adbfea0Zonr Chang ** distributed under the License is distributed on an "AS IS" BASIS, 12c383a500aa59423264811be3874461bf8adbfea0Zonr Chang ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13c383a500aa59423264811be3874461bf8adbfea0Zonr Chang ** See the License for the specific language governing permissions and 14c383a500aa59423264811be3874461bf8adbfea0Zonr Chang ** limitations under the License. 15c383a500aa59423264811be3874461bf8adbfea0Zonr Chang */ 16c383a500aa59423264811be3874461bf8adbfea0Zonr Chang 17e639eb5caa2c386b4a60659a4929e8a6141a2cbeStephen Hines 18e639eb5caa2c386b4a60659a4929e8a6141a2cbeStephen Hines/*--------------------------------------------------------------------------* 193a9ca1f0d6bd8f12c2bb2adea51f95c255996180Zonr Chang* BITS.H * 203a9ca1f0d6bd8f12c2bb2adea51f95c255996180Zonr Chang*--------------------------------------------------------------------------* 213a9ca1f0d6bd8f12c2bb2adea51f95c255996180Zonr Chang* Number of bits for different modes * 22cf6af6abc1de499920571308b14a27e19cf57097Zonr Chang*--------------------------------------------------------------------------*/ 23cf6af6abc1de499920571308b14a27e19cf57097Zonr Chang 24e639eb5caa2c386b4a60659a4929e8a6141a2cbeStephen Hines#ifndef __BITS_H__ 25e639eb5caa2c386b4a60659a4929e8a6141a2cbeStephen Hines#define __BITS_H__ 26cf6af6abc1de499920571308b14a27e19cf57097Zonr Chang 27641558f02fe6ce0ee3ae5076eb366c25e2ad5903Zonr Chang#include <stdio.h> 28641558f02fe6ce0ee3ae5076eb366c25e2ad5903Zonr Chang#include "typedef.h" 29cf6af6abc1de499920571308b14a27e19cf57097Zonr Chang#include "cnst.h" 30cf6af6abc1de499920571308b14a27e19cf57097Zonr Chang#include "cod_main.h" 312e35b136cc2434080fcd682d2f95e53a87675dd4Stephen Hines 322e35b136cc2434080fcd682d2f95e53a87675dd4Stephen Hines#define NBBITS_7k 132 /* 6.60k */ 332e35b136cc2434080fcd682d2f95e53a87675dd4Stephen Hines#define NBBITS_9k 177 /* 8.85k */ 342e35b136cc2434080fcd682d2f95e53a87675dd4Stephen Hines#define NBBITS_12k 253 /* 12.65k */ 352e35b136cc2434080fcd682d2f95e53a87675dd4Stephen Hines#define NBBITS_14k 285 /* 14.25k */ 362e35b136cc2434080fcd682d2f95e53a87675dd4Stephen Hines#define NBBITS_16k 317 /* 15.85k */ 372e35b136cc2434080fcd682d2f95e53a87675dd4Stephen Hines#define NBBITS_18k 365 /* 18.25k */ 382e35b136cc2434080fcd682d2f95e53a87675dd4Stephen Hines#define NBBITS_20k 397 /* 19.85k */ 392e35b136cc2434080fcd682d2f95e53a87675dd4Stephen Hines#define NBBITS_23k 461 /* 23.05k */ 402e35b136cc2434080fcd682d2f95e53a87675dd4Stephen Hines#define NBBITS_24k 477 /* 23.85k */ 41fcda2352b9e140529f8f3c89f05b10a70c0048b2Stephen Hines 42fcda2352b9e140529f8f3c89f05b10a70c0048b2Stephen Hines#define NBBITS_SID 35 43fcda2352b9e140529f8f3c89f05b10a70c0048b2Stephen Hines#define NB_BITS_MAX NBBITS_24k 44fcda2352b9e140529f8f3c89f05b10a70c0048b2Stephen Hines 453a9ca1f0d6bd8f12c2bb2adea51f95c255996180Zonr Chang#define BIT_0 (Word16)-127 463a9ca1f0d6bd8f12c2bb2adea51f95c255996180Zonr Chang#define BIT_1 (Word16)127 47641558f02fe6ce0ee3ae5076eb366c25e2ad5903Zonr Chang#define BIT_0_ITU (Word16)0x007F 483a9ca1f0d6bd8f12c2bb2adea51f95c255996180Zonr Chang#define BIT_1_ITU (Word16)0x0081 493a9ca1f0d6bd8f12c2bb2adea51f95c255996180Zonr Chang 503a9ca1f0d6bd8f12c2bb2adea51f95c255996180Zonr Chang#define SIZE_MAX1 (3+NB_BITS_MAX) /* serial size max */ 513a9ca1f0d6bd8f12c2bb2adea51f95c255996180Zonr Chang#define TX_FRAME_TYPE (Word16)0x6b21 523a9ca1f0d6bd8f12c2bb2adea51f95c255996180Zonr Chang#define RX_FRAME_TYPE (Word16)0x6b20 533a9ca1f0d6bd8f12c2bb2adea51f95c255996180Zonr Chang 543a9ca1f0d6bd8f12c2bb2adea51f95c255996180Zonr Changstatic const Word16 nb_of_bits[NUM_OF_MODES] = { 553a9ca1f0d6bd8f12c2bb2adea51f95c255996180Zonr Chang NBBITS_7k, 562e35b136cc2434080fcd682d2f95e53a87675dd4Stephen Hines NBBITS_9k, 572e35b136cc2434080fcd682d2f95e53a87675dd4Stephen Hines NBBITS_12k, 58641558f02fe6ce0ee3ae5076eb366c25e2ad5903Zonr Chang NBBITS_14k, 59641558f02fe6ce0ee3ae5076eb366c25e2ad5903Zonr Chang NBBITS_16k, 60641558f02fe6ce0ee3ae5076eb366c25e2ad5903Zonr Chang NBBITS_18k, 612e35b136cc2434080fcd682d2f95e53a87675dd4Stephen Hines NBBITS_20k, 62641558f02fe6ce0ee3ae5076eb366c25e2ad5903Zonr Chang NBBITS_23k, 634cc67fce91f43215d61b2695746eab102a3db516Stephen Hines NBBITS_24k, 644cc67fce91f43215d61b2695746eab102a3db516Stephen Hines NBBITS_SID 654cc67fce91f43215d61b2695746eab102a3db516Stephen Hines}; 66641558f02fe6ce0ee3ae5076eb366c25e2ad5903Zonr Chang 67641558f02fe6ce0ee3ae5076eb366c25e2ad5903Zonr Chang/*typedef struct 68641558f02fe6ce0ee3ae5076eb366c25e2ad5903Zonr Chang{ 69641558f02fe6ce0ee3ae5076eb366c25e2ad5903Zonr ChangWord16 sid_update_counter; 70641558f02fe6ce0ee3ae5076eb366c25e2ad5903Zonr ChangWord16 sid_handover_debt; 71641558f02fe6ce0ee3ae5076eb366c25e2ad5903Zonr ChangWord16 prev_ft; 72641558f02fe6ce0ee3ae5076eb366c25e2ad5903Zonr Chang} TX_State; 73641558f02fe6ce0ee3ae5076eb366c25e2ad5903Zonr Chang*/ 74641558f02fe6ce0ee3ae5076eb366c25e2ad5903Zonr Chang 75641558f02fe6ce0ee3ae5076eb366c25e2ad5903Zonr Chang//typedef struct 76cf6af6abc1de499920571308b14a27e19cf57097Zonr Chang//{ 77cf6af6abc1de499920571308b14a27e19cf57097Zonr Chang// Word16 prev_ft; 78cf6af6abc1de499920571308b14a27e19cf57097Zonr Chang// Word16 prev_mode; 79cf6af6abc1de499920571308b14a27e19cf57097Zonr Chang//} RX_State; 80cf6af6abc1de499920571308b14a27e19cf57097Zonr Chang 81cf6af6abc1de499920571308b14a27e19cf57097Zonr Changint PackBits(Word16 prms[], Word16 coding_mode, Word16 mode, Coder_State *st); 82cf6af6abc1de499920571308b14a27e19cf57097Zonr Chang 83cf6af6abc1de499920571308b14a27e19cf57097Zonr Chang 84e86245a09bb8b9e72f5dc68083444ec938865798Zonr Changvoid Parm_serial( 85e86245a09bb8b9e72f5dc68083444ec938865798Zonr Chang Word16 value, /* input : parameter value */ 86e86245a09bb8b9e72f5dc68083444ec938865798Zonr Chang Word16 no_of_bits, /* input : number of bits */ 87641558f02fe6ce0ee3ae5076eb366c25e2ad5903Zonr Chang Word16 ** prms 883a9ca1f0d6bd8f12c2bb2adea51f95c255996180Zonr Chang ); 893a9ca1f0d6bd8f12c2bb2adea51f95c255996180Zonr Chang 903a9ca1f0d6bd8f12c2bb2adea51f95c255996180Zonr Chang 913a9ca1f0d6bd8f12c2bb2adea51f95c255996180Zonr Chang#endif //__BITS_H__ 923a9ca1f0d6bd8f12c2bb2adea51f95c255996180Zonr Chang 933a9ca1f0d6bd8f12c2bb2adea51f95c255996180Zonr Chang