⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ac_vld_decode_h.asm

📁 h263,jpeg,mpeg2编解码核心程序(TI DSP C64xx)
💻 ASM
📖 第 1 页 / 共 4 页
字号:
*       Steps to be performed after the loop                                * *                                                                           * *   a)  *num_of_rles = numberval - 1. The number of run-level pairs found   * *       is numberval - 1. Remember numberval is 1 more because it           * *       increments for EOB as well.                                         * *                                                                           * *   b)  *bit_pos_vld = bit_pos_val;                                         * *       Store off the current bit position in the pointer. Status variable  * *       used for chaining VLD's.                                            * *                                                                           * *   c)  *used_up_bytes= used_bytes_val;                                     * *       Store off the number of used up bytes in the pointer. Status        * *       variable for chaining VLD's                                         * *                                                                           * *   d)  *data_word    = data_word_val;                                      * *       Store off the present VLD status word to begin resuming this on     * *       next pass of the VLD. Status word of the VLD is the most important  * *       state variable.                                                     * *                                                                           * *   e)  *data_ptr     = data_pointer;                                       * *       Store off the pointer from which the next set of 5 bytes need       * *       to be fetched at the end of the VLD. State variable used for        * *       chaining VLD calls.                                                 * *                                                                           * *   DIAGNOSTICS                                                             * *       Return value == 1: Incorrect VLD stream in which K > 63             * *       Return value == 0: Correct VLD and valid JPEG stream                * *                                                                           * *   CYCLES                                                                  * *       14 * N + 27                                                         * *       where N is the number of symbols in a block                         * *                                                                           * *       Example: N=15 symbols/block: 237 cycles                             * *                                                                           * *   CODESIZE                                                                * *       484 bytes                                                           * *                                                                           * *   BIBLIOGRAPHY                                                            * *       1) JPEG still image data compression standard by William B          * *          Pennabaker and Joan L. Mitchell                                  * *       2) CCITT T.81 standard                                              * *                                                                           * * ------------------------------------------------------------------------- **             Copyright (c) 2002 Texas Instruments, Incorporated.           **                            All Rights Reserved.                           ** ========================================================================= *                .sect ".text:hand"                .include "ac_vld_decode_h.h64"_ac_vld_decode_asm:; ====================== SYMBOLIC REGISTER ASSIGNMENTS =======================        .asg            A4,         A_data_ptr        .asg            B4,         B_data_word        .asg            A6,         A_run_level        .asg            B6,         B_num_of_rles        .asg            A8,         A_bit_position        .asg            B8,         B_used_up_bytes        .asg            A10,        A_ac_table_luma        .asg            B21,        B_data_word_cpy        .asg            B16,        B_EOB_MASK        .asg            A6,         A_EOB_CODE        .asg            A20,        A_data_word_val        .asg            A16,        A_data_pointer        .asg            B22,        B_numberval        .asg            B9,         B_run_tbl        .asg            B7,         B_sze_tbl        .asg            B5,         B_shf_tbl        .asg            A5,         A_const_32        .asg            B2,         B_K_62        .asg            A21,        A_bit_pos_val        .asg            A22,        A_shift_new        .asg            B1,         B_EOB        .asg            A9,         A_used_bytes_val        .asg            A7,         A_run        .asg            B23,        B_level        .asg            B24,        B_num_coeffs        .asg            B2,         B_tbl        .asg            B18,        B_sze_const        .asg            B16,        B_shf_const        .asg            B0,         B_eob_ofs_0        .asg            A0,         A_eob_byte0        .asg            B16,        B_eob_ofs_1        .asg            B0,         B_eob_byte1        .asg            B16,        B_ofs_len        .asg            B17,        B_EOB_LEN; ============================================================================        LDW     .D1T2   *+A_ac_table_luma(4),    B_run_tbl              ;[ 2,0]        NOP             1        LDBU    .D1T1   *A_bit_position,         A_bit_pos_val          ;[ 5,0]        LDW     .D1T2   *+A_ac_table_luma(12),   B_shf_tbl              ;[ 6,0]        LDW     .D1T2   *+A_ac_table_luma(8),    B_sze_tbl              ;[ 7,0]||      MVK     .S2     112,                     B_eob_ofs_0            ;[ 7,0]        LDBU    .D2T1   *+B_run_tbl[B_eob_ofs_0],A_eob_byte0            ;[ 8,0]||      ADD     .L2     B_eob_ofs_0,             1,         B_eob_ofs_1 ;[ 8,0]        LDBU    .D2T2   *+B_run_tbl[B_eob_ofs_1],B_eob_byte1            ;[ 9,0]||      ADD     .S2     B_eob_ofs_0,             4,         B_ofs_len   ;[ 9,0]        LDBU    .D2T2   *+B_run_tbl[B_ofs_len],  B_EOB_LEN              ;[10,0]        MVKL    .S2     62,                  B_K_62                     ;[11,0]||      LDW     .D2T1   *B_data_word,        A_data_word_val            ;[11,0]        MVKH    .S2     62,                  B_K_62                     ;[12,0]||      LDW     .D2T1   *B_used_up_bytes,    A_used_bytes_val           ;[12,0]        MVK     .S2     684,                 B_shf_const                ;[13,0]||      LDW     .D1T1   *A_data_ptr,         A_data_pointer             ;[13,0]        ZERO    .D2     B_num_coeffs                                    ;[14,0]||      ADD     .L2X    A_run_level,         2,             B_level     ;[14,0]||      MVK     .S2     370,                 B_sze_const                ;[14,0]        ADD     .D2     B_shf_tbl,           B_shf_const,   B_shf_tbl   ;[15,0]||      SHL     .S2     B_eob_byte1,         16,            B_eob_byte1 ;[15,0]||      MVK     .L2     -1,                  B_EOB_MASK                 ;[15,0]        MV      .L1     A_run_level,         A_run                      ;[16,0]||      ADD     .L2     B_sze_tbl,           B_sze_const,   B_sze_tbl   ;[16,0]||      ADDAW   .D2     B_run_tbl,           14,            B_run_tbl   ;[16,0]||      SHL     .S1     A_eob_byte0,         24,            A_eob_byte0 ;[16,0]||      SHRU    .S2     B_EOB_MASK,          B_EOB_LEN,     B_EOB_MASK  ;[16,0]        ADD     .D1     A_bit_pos_val,       8,             A_shift_new ;[17,0]||      MVK     .S1     32,                  A_const_32                 ;[17,0]||      ZERO    .L2     B_numberval                                     ;[17,0]||      ADD     .L1X    A_eob_byte0,         B_eob_byte1,   A_EOB_CODE  ;[17,0]||      NOT     .S2     B_EOB_MASK,          B_EOB_MASK                 ;[17,0]||      MV      .D2X    A_data_word_val,     B_data_word_cpy            ;[17,0]        ;==== Branch occurs; ====================== SYMBOLIC REGISTER ASSIGNMENTS =======================        .asg            B21,        B_data_word_cpy        .asg            B16,        B_EOB_MASK        .asg            A6,         A_EOB_CODE        .asg            A20,        A_data_word_val        .asg            A16,        A_data_pointer        .asg            B22,        B_numberval        .asg            B9,         B_run_tbl        .asg            B7,         B_sze_tbl        .asg            B5,         B_shf_tbl        .asg            A5,         A_const_32        .asg            B2,         B_K_62        .asg            A21,        A_bit_pos_val        .asg            A22,        A_shift_new        .asg            B1,         B_EOB        .asg            A9,         A_used_bytes_val        .asg            A7,         A_run        .asg            B23,        B_level        .asg            B24,        B_num_coeffs        .asg            B19,        B_EOB_VAL        .asg            B17,        B_lmbd_val        .asg            A17,        A_lmbd_val        .asg            A1,         A_new_hi        .asg            A3,         A_temp_h        .asg            A2,         A_temp_l        .asg            A0,         A_temp_swap_l        .asg            A0,         A_new_lo        .asg            B26,        B_t02_ofs        .asg            B18,        B_ofs        .asg            B17,        B_t68_ofs        .asg            B17,        B_t9x_ofs        .asg            A0,         A_st3        .asg            B1,         B_st5        .asg            A0,         A_st8        .asg            B20,        B_run_val        .asg            B25,        B_size_val        .asg            A2,         A_len_cw

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -