/************************************************************************** * * ITU-T SOFTWARE TOOLS' GENERAL PUBLIC LICENSE * * This "General Public License" is published in the Annex 1 of the * ITU-T Recommendation on "SOFTWARE TOOLS FOR HOMOGENITY OF RESULTS * IN THE STANDARDIZATION PROCESS OF SPEECH AND AUDIO CODERS", * approved in Geneva, 2000. * * TERMS AND CONDITIONS * * 1. This License Agreement applies to any module or other work * related to the ITU-T Software Tool Library, and developed by the * User's Group on Software Tools. The "Module", below, refers to any * such module or work, and a "work based on the Module" means either * the Module or any work containing the Module or a portion of it, * either verbatim or with modifications. Each licensee is addressed * as "you". * * 2. You may copy and distribute verbatim copies of the Module's * source code as you receive it, in any medium, provided that you: * - conspicuously and appropriately publish on each copy an appropriate * copyright notice and disclaimer of warranty; * - keep intact all the notices that refer to this General Public * License and to the absence of any warranty; and * - give any other recipients of the Module a copy of this General * Public License along with the Module. * You may charge a fee for the physical act of transferring a copy. * * 3. You may modify your copy or copies of the Module or any portion * of it, and copy and distribute such modifications under the terms * of Paragraph 1 above, provided that you also do the following: * * o cause the modified files to carry prominent notices stating * that you changed the files and the date of any change; and * * o cause the whole of any work that you distribute or publish, * that in whole or in part contains the Module or any part * thereof, either with or without modifications, to be licensed * at no charge to all third parties under the terms of this * General Public License (except that you may choose to grant * warranty protection to some or all third parties, at your * option). * * o If the modified module normally reads commands interactively * when run, you must cause it, when started running for such * interactive use in the simplest and most usual way, to print or * display an announcement including an appropriate copyright * notice and a notice that there is no warranty (or else, saying * that you provide a warranty) and that users may redistribute * the module under these conditions, and telling the user how to * view a copy of this General Public License. * * You may charge a fee for the physical act of transferring a copy, * and you may at your option offer warranty protection in exchange * for a fee. * * Mere aggregation of another independent work with the Module (or * its derivative) on a volume of a storage or distribution medium * does not bring the other work under the scope of these terms. * * 4. You may copy and distribute the Module (or a portion or * derivative of it, under Paragraph 2) in object code or executable * form under the terms of Paragraphs 1 and 2 above provided that you * also do one of the following: * * o accompany it with the complete corresponding machine- * readable source code, which must be distributed under the terms * of Paragraphs 1 and 2 above; or, * * o accompany it with a written offer, valid for at least three * years, to give any third party free (except for a nominal * charge for the cost of distribution) a complete machine- * readable copy of the corresponding source code, to be * distributed under the terms of Paragraphs 1 and 2 above; or, * * o accompany it with the information you received as to where * the corresponding source code may be obtained. (This * alternative is allowed only for noncommercial distribution and * only if you received the module in object code or executable * form alone.) * * Source code for a work means the preferred form of the work for * making modifications to it. For an executable file, complete * source code means all the source code for all modules it contains; * but, as a special exception, it need not include source code for * modules which are standard libraries that accompany the operating * system on which the executable file runs, or for standard header * files or definitions files that accompany that operating system. * * 5. You may not copy, modify, sublicense, distribute or transfer * the Module except as expressly provided under this General Public * License. Any attempt otherwise to copy, modify, sublicense, * distribute or transfer the Module is void, and will automatically * terminate your rights to use the Module under this License. * However, parties who have received copies, or rights to use copies, * from you under this General Public License will not have their * licenses terminated so long as such parties remain in full * compliance. * * 6. By copying, distributing or modifying the Module (or any work * based on the Module) you indicate your acceptance of this license * to do so, and all its terms and conditions. * * 7. Each time you redistribute the Module (or any work based on the * Module), the recipient automatically receives a license from the * original licensor to copy, distribute or modify the Module subject * to these terms and conditions. You may not impose any further * restrictions on the recipients' exercise of the rights granted * herein. * * 8. The ITU-T may publish revised and/or new versions of this * General Public License from time to time. Such new versions will * be similar in spirit to the present version, but may differ in * detail to address new problems or concerns. * * Each version is given a distinguishing version number. If the * Module specifies a version number of the license which applies to * it and "any later version", you have the option of following the * terms and conditions either of that version or of any later version * published by the ITU-T. If the Module does not specify a version * number of the license, you may choose any version ever published by * the ITU-T. * * 9. If you wish to incorporate parts of the Module into other free * modules whose distribution conditions are different, write to the * author to ask for permission. For software which is copyrighted by * the ITU-T, write to the ITU-T Secretariat; exceptions may be made * for this. This decision will be guided by the two goals of * preserving the free status of all derivatives of this free software * and of promoting the sharing and reuse of software generally. * * * NO WARRANTY * * 10. BECAUSE THE MODULE IS LICENSED FREE OF CHARGE, THERE IS NO * WARRANTY FOR THE MODULE, TO THE EXTENT PERMITTED BY APPLICABLE LAW. * EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS * AND/OR OTHER PARTIES PROVIDE THE MODULE "AS IS" WITHOUT WARRANTY OF * ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A * PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND * PERFORMANCE OF THE MODULE IS WITH YOU. SHOULD THE MODULE PROVE * DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR * OR CORRECTION. * * 11. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN * WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY * MODIFY AND/OR REDISTRIBUTE THE MODULE AS PERMITTED ABOVE, BE LIABLE * TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR * CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE * THE MODULE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING * RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR * A FAILURE OF THE MODULE TO OPERATE WITH ANY OTHER MODULES), EVEN IF * SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF * SUCH DAMAGES. * * END OF TERMS AND CONDITIONS ***************************************************************************/ ;------------------------------------------------------------------------------ ;Decoder state members /*typedef struct { short dq0; short dq0_exp; short dq1; ;Quantized difference signal with delays 5 * to 0 short dq1_exp; short dq2; short dq2_exp; short dq3; short dq3_exp; short dq4; short dq4_exp; short dq5; short dq5_exp; short sr0; short sr0_exp; short sr1; ;Reconstructed signal with delays 0 and 1 short sr1_exp; short a1r; short a2r; ;Triggered 2nd order predictor coeffs. short b1r; ;Triggered 6nd order predictor coeffs short b2r; short b3r; short b4r; short b5r; short b6r; short yup; ;Fast quantizer scale factor; short dmsp; ;Short term average of the F(I) sequence short dmlp; ;Long term average of the F(I) sequence short apr; ;Triggered unlimited speed control * parameter short tdr; ;Triggered tone detector short pk0; short pk1; ;sign of dq+sez with delays 0 and 1 long ylp; ;Slow quantizer scale factor short leak; short rate; ;Modified by Adeptte short slen; short *table; short (*quan_fptr)(short dln, short ds); } G726_state;*/ ;------------------------------------------------------------------------------ ;------------------------------------------------------------------------------ ;External Variables ;------------------------------------------------------------------------------ .extern _G726A_tab ;------------------------------------------------------------------------------ ;Global Declarations: ;------------------------------------------------------------------------------ .global _G726ADecoderInit ;------------------------------------------------------------------------------ ;Code Section in Program Memory ;------------------------------------------------------------------------------ .section libg726a, code /****************************************************************************** * * Function Name: G726_decoder_init * * System: RISC * * Platform: dsPIC33F * * Description: Initializes the decoder state * * Cycle Count: 96 * * Input Parameters: w0 - Pointer to decoder state * w1 - Bit Rate * * Output Parameters: None * * History: * * Date | By | Remarks * ---------------+-------------------+---------------------------------- * Oct-21-2005 Sharanabasava M. Created. * Jan-11-2010 Sankaralingam.M Modified ******************************************************************************/ .text _G726ADecoderInit: mov #32,w3 mov #544,w4 mov #1,w5 mov #34816,w6 mov w2,[w0+70] ;slen ;Adeptte do #7,DQSRINIT mov w3,[w0++] DQSRINIT: clr [w0++] repeat #7 clr [w0++] mov w4,[w0++] repeat #3 clr [w0++] mov w5,[w0++] mov w5,[w0++] clr w7 mov.d w6,[w0++] mov #8,w7 mov w7,[w0++] mov w1,[w0] ;rate ;Adeptte add w0,#4,w3 mov #_G726A_tab,w4 ;Adeptte cp w1,#5 bra nz,RATE4 add w4,#28,w5 add w5,#28,[w3] add w7,#1,[--w0] bra RET RATE4: cp w1,#4 bra nz,RATE3 mov w4,[w3] bra RET RATE3: cp w1,#3 bra nz,RATE2 add w4,#8,[w3] bra RET RATE2: mov w4,[w3] RET: return ;--------End of All Code Sections --------------------------------------------- .end ;End of program code in this file