bits.h revision e2e838afcf03e603a41a0455846eaf9614537c16
1e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard/*
2e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard ** Copyright 2003-2010, VisualOn, Inc.
3e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard **
4e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard ** Licensed under the Apache License, Version 2.0 (the "License");
5e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard ** you may not use this file except in compliance with the License.
6e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard ** You may obtain a copy of the License at
7e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard **
8e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard **     http://www.apache.org/licenses/LICENSE-2.0
9e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard **
10e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard ** Unless required by applicable law or agreed to in writing, software
11e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard ** distributed under the License is distributed on an "AS IS" BASIS,
12e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard ** See the License for the specific language governing permissions and
14e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard ** limitations under the License.
15e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard */
16e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard
17e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard
18e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard/*--------------------------------------------------------------------------*
19e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard*                         BITS.H                                           *
20e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard*--------------------------------------------------------------------------*
21e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard*       Number of bits for different modes			           *
22e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard*--------------------------------------------------------------------------*/
23e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard
24e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard#ifndef __BITS_H__
25e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard#define __BITS_H__
26e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard
27e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard#include <stdio.h>
28e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard#include "typedef.h"
29e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard#include "cnst.h"
30e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard#include "cod_main.h"
31e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard
32e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard#define NBBITS_7k     132                  /* 6.60k  */
33e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard#define NBBITS_9k     177                  /* 8.85k  */
34e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard#define NBBITS_12k    253                  /* 12.65k */
35e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard#define NBBITS_14k    285                  /* 14.25k */
36e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard#define NBBITS_16k    317                  /* 15.85k */
37e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard#define NBBITS_18k    365                  /* 18.25k */
38e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard#define NBBITS_20k    397                  /* 19.85k */
39e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard#define NBBITS_23k    461                  /* 23.05k */
40e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard#define NBBITS_24k    477                  /* 23.85k */
41e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard
42e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard#define NBBITS_SID    35
43e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard#define NB_BITS_MAX   NBBITS_24k
44e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard
45e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard#define BIT_0     (Word16)-127
46e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard#define BIT_1     (Word16)127
47e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard#define BIT_0_ITU (Word16)0x007F
48e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard#define BIT_1_ITU (Word16)0x0081
49e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard
50e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard#define SIZE_MAX1  (3+NB_BITS_MAX)          /* serial size max */
51e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard#define TX_FRAME_TYPE (Word16)0x6b21
52e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard#define RX_FRAME_TYPE (Word16)0x6b20
53e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard
54e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgardstatic const Word16 nb_of_bits[NUM_OF_MODES] = {
55e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard	NBBITS_7k,
56e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard	NBBITS_9k,
57e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard	NBBITS_12k,
58e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard	NBBITS_14k,
59e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard	NBBITS_16k,
60e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard	NBBITS_18k,
61e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard	NBBITS_20k,
62e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard	NBBITS_23k,
63e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard	NBBITS_24k,
64e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard	NBBITS_SID
65e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard};
66e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard
67e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard/*typedef struct
68e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard{
69e2e838afcf03e603a41a0455846eaf9614537c16Mans RullgardWord16 sid_update_counter;
70e2e838afcf03e603a41a0455846eaf9614537c16Mans RullgardWord16 sid_handover_debt;
71e2e838afcf03e603a41a0455846eaf9614537c16Mans RullgardWord16 prev_ft;
72e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard} TX_State;
73e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard*/
74e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard
75e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard//typedef struct
76e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard//{
77e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard//	Word16 prev_ft;
78e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard//	Word16 prev_mode;
79e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard//} RX_State;
80e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard
81e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgardint PackBits(Word16 prms[], Word16 coding_mode, Word16 mode, Coder_State *st);
82e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard
83e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard
84e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgardvoid Parm_serial(
85e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard		Word16 value,                         /* input : parameter value */
86e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard		Word16 no_of_bits,                    /* input : number of bits  */
87e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard		Word16 ** prms
88e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard		);
89e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard
90e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard
91e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard#endif  //__BITS_H__
92e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard
93