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*--------------------------------------------------------------------------* 215d5c3a132bb446ac78a37dfaac24a46cacf0dd73Marco Nelissen* 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 45183d387706417863076873ec566ca5966d8f5560Chih-Hung Hsieh#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] = { 555d5c3a132bb446ac78a37dfaac24a46cacf0dd73Marco Nelissen NBBITS_7k, 565d5c3a132bb446ac78a37dfaac24a46cacf0dd73Marco Nelissen NBBITS_9k, 575d5c3a132bb446ac78a37dfaac24a46cacf0dd73Marco Nelissen NBBITS_12k, 585d5c3a132bb446ac78a37dfaac24a46cacf0dd73Marco Nelissen NBBITS_14k, 595d5c3a132bb446ac78a37dfaac24a46cacf0dd73Marco Nelissen NBBITS_16k, 605d5c3a132bb446ac78a37dfaac24a46cacf0dd73Marco Nelissen NBBITS_18k, 615d5c3a132bb446ac78a37dfaac24a46cacf0dd73Marco Nelissen NBBITS_20k, 625d5c3a132bb446ac78a37dfaac24a46cacf0dd73Marco Nelissen NBBITS_23k, 635d5c3a132bb446ac78a37dfaac24a46cacf0dd73Marco Nelissen NBBITS_24k, 645d5c3a132bb446ac78a37dfaac24a46cacf0dd73Marco Nelissen 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//{ 775d5c3a132bb446ac78a37dfaac24a46cacf0dd73Marco Nelissen// Word16 prev_ft; 785d5c3a132bb446ac78a37dfaac24a46cacf0dd73Marco Nelissen// 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( 855d5c3a132bb446ac78a37dfaac24a46cacf0dd73Marco Nelissen Word16 value, /* input : parameter value */ 865d5c3a132bb446ac78a37dfaac24a46cacf0dd73Marco Nelissen Word16 no_of_bits, /* input : number of bits */ 875d5c3a132bb446ac78a37dfaac24a46cacf0dd73Marco Nelissen Word16 ** prms 885d5c3a132bb446ac78a37dfaac24a46cacf0dd73Marco Nelissen ); 89e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard 90e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard 91e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard#endif //__BITS_H__ 92e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard 93