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