1b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen/* 2b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * Copyright (C) 2008-2009 SVOX AG, Baslerstr. 30, 8048 Zuerich, Switzerland 3b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * 4b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * Licensed under the Apache License, Version 2.0 (the "License"); 5b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * you may not use this file except in compliance with the License. 6b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * You may obtain a copy of the License at 7b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * 8b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * http://www.apache.org/licenses/LICENSE-2.0 9b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * 10b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * Unless required by applicable law or agreed to in writing, software 11b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * distributed under the License is distributed on an "AS IS" BASIS, 12b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * See the License for the specific language governing permissions and 14b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * limitations under the License. 15b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen */ 16b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen/** 17b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * @file picokpdf.h 18b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * 19b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * knowledge handling for pdf 20b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * 21b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * Copyright (C) 2008-2009 SVOX AG, Baslerstr. 30, 8048 Zuerich, Switzerland 22b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * All rights reserved. 23b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * 24b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * History: 25b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * - 2009-04-20 -- initial version 26b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * 27b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen */ 28b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen 29b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen#ifndef PICOKPDF_H_ 30b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen#define PICOKPDF_H_ 31b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen 32b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen#include "picoos.h" 33b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen#include "picoknow.h" 34b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen 35b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen#ifdef __cplusplus 36b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chenextern "C" { 37b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen#endif 38b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen#if 0 39b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen} 40b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen#endif 41b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen 42b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen 43b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen/* ************************************************************/ 44b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen/** 45b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * @addtogroup picokpdf 46b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * 47b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen Two specialized pdf kb types are provided by this knowledge 48b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen handling module: 49b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen 50b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen - pdf dur: ...kpdf_DUR (for dur) 51b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen - pdf mul: ...kpdf_MUL (for lfz and mgc) 52b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen - pdf phs: ...kpdf_PHS (for phase) 53b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen 54b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen*/ 55b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen/* ************************************************************/ 56b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen 57b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen 58b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen/* ************************************************************/ 59b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen/* defines and functions to create specialized kb, */ 60b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen/* to be used by picorsrc only */ 61b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen/* ************************************************************/ 62b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen 63b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen#define PICOKPDF_MAX_NUM_STATES 10 64b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen 65b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen#define PICOKPDF_MAX_MUL_LFZ_CEPORDER 1 66b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen#define PICOKPDF_MAX_MUL_MGC_CEPORDER 25 67b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen 68b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen/* trade accuracy against computation: more long multiplications. 69b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * Maximum is 15 when invdiag0=(1<<(2*bigpow))/diag0 used 70b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * currently observing instability in mlpg when bigpow >= 14, this needs to be investigated */ 71b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen 72b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen#define PICOKPDF_BIG_POW 12 73b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen 74b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chentypedef enum { 75b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen PICOKPDF_KPDFTYPE_DUR, 76b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen PICOKPDF_KPDFTYPE_MUL, 77b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen PICOKPDF_KPDFTYPE_PHS 78b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen} picokpdf_kpdftype_t; 79b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen 80b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chenpico_status_t picokpdf_specializePdfKnowledgeBase(picoknow_KnowledgeBase this, 81b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen picoos_Common common, 82b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen const picokpdf_kpdftype_t type); 83b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen 84b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen 85b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen/* ************************************************************/ 86b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen/* pdf types and get Pdf functions */ 87b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen/* ************************************************************/ 88b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen 89b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen/** object : PdfDur, PdfMUL 90b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * shortcut : kpdf* 91b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * derived from : picoknow_KnowledgeBase 92b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen */ 93b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen 94b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chentypedef struct picokpdf_pdfdur *picokpdf_PdfDUR; 95b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chentypedef struct picokpdf_pdfmul *picokpdf_PdfMUL; 96b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chentypedef struct picokpdf_pdfphs *picokpdf_PdfPHS; 97b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen 98b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen/* subobj specific for pdf dur type */ 99b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chentypedef struct picokpdf_pdfdur { 100b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen picoos_uint16 numframes; 101b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen picoos_uint8 vecsize; 102b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen picoos_uint8 sampperframe; 103b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen picoos_uint8 phonquantlen; 104b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen picoos_uint8 *phonquant; 105b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen picoos_uint8 statequantlen; 106b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen picoos_uint8 *statequant; 107b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen picoos_uint8 *content; 108b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen} picokpdf_pdfdur_t; 109b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen 110b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen/* subobj specific for pdf mul type */ 111b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chentypedef struct picokpdf_pdfmul { 112b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen picoos_uint16 numframes; 113b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen picoos_uint8 vecsize; 114b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen picoos_uint8 numstates; 115b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen picoos_uint16 stateoffset[PICOKPDF_MAX_NUM_STATES]; /* offset within a phone to find the state ? */ 116b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen picoos_uint8 ceporder; 117b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen picoos_uint8 numvuv; 118b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen picoos_uint8 numdeltas; 119b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen picoos_uint8 meanpow; 120b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen picoos_uint8 bigpow; 121b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen picoos_uint8 amplif; 122b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen picoos_uint8 *meanpowUm; /* KPDF_NUMSTREAMS x ceporder values */ 123b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen picoos_uint8 *ivarpow; /* KPDF_NUMSTREAMS x ceporder values */ 124b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen picoos_uint8 *content; 125b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen} picokpdf_pdfmul_t; 126b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen 127b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen/* subobj specific for pdf phs type */ 128b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chentypedef struct picokpdf_pdfphs { 129b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen picoos_uint16 numvectors; 130b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen picoos_uint8 *indexBase; 131b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen picoos_uint8 *contentBase; 132b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen} picokpdf_pdfphs_t; 133b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen 134b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen/* return kb pdf for usage in PU */ 135b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chenpicokpdf_PdfDUR picokpdf_getPdfDUR(picoknow_KnowledgeBase this); 136b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chenpicokpdf_PdfMUL picokpdf_getPdfMUL(picoknow_KnowledgeBase this); 137b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chenpicokpdf_PdfPHS picokpdf_getPdfPHS(picoknow_KnowledgeBase this); 138b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen 139b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen 140b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen/* ************************************************************/ 141b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen/* PDF DUR functions */ 142b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen/* ************************************************************/ 143b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen 144b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen/* e.g. */ 145b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen/*picoos_uint8 picokpdf_pdfDURgetEle(const picokpdf_PdfDUR this, 146b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen const picoos_uint16 row, 147b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen const picoos_uint16 col, 148b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen picoos_uint16 *val); 149b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen*/ 150b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen 151b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen/* ************************************************************/ 152b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen/* PDF MUL functions */ 153b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen/* ************************************************************/ 154b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen 155b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen#ifdef __cplusplus 156b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen} 157b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen#endif 158b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen 159b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen 160b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen#endif /*PICOKPDF_H_*/ 161