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