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

📄 vpar_blocks.c

📁 vlc stand 0.1.99 ist sehr einfach
💻 C
📖 第 1 页 / 共 5 页
字号:
/***************************************************************************** * vpar_blocks.c : blocks parsing ***************************************************************************** * Copyright (C) 1999, 2000 VideoLAN * * Authors: * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. *  * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA. *****************************************************************************//***************************************************************************** * Preamble *****************************************************************************/#include "defs.h"#include <sys/types.h>                        /* on BSD, uio.h needs types.h */#include <sys/uio.h>                                            /* "input.h" */#include "config.h"#include "common.h"#include "threads.h"#include "mtime.h"#include "plugins.h"#include "intf_msg.h"#include "debug.h"                 /* XXX?? temporaire, requis par netlist.h */#include "input.h"#include "input_netlist.h"#include "decoder_fifo.h"#include "video.h"#include "video_output.h"#include "vdec_idct.h"#include "video_decoder.h"#include "vdec_motion.h"#include "vpar_blocks.h"#include "vpar_headers.h"#include "vpar_synchro.h"#include "video_parser.h"#include "video_fifo.h"static int i_count = 0;/* * Welcome to vpar_blocks.c ! Here's where the heavy processor-critical parsing * task is done. This file is divided in several parts : *  - Initialization of the lookup tables *  - Decoding of coded blocks *  - Decoding of motion vectors *  - Decoding of the other macroblock structures *  - Picture data parsing management (slices and error handling) * It's a pretty long file. Good luck and have a nice day. *//* * Initialization tables */    /* Table for coded_block_pattern resolution */static lookup_t     pl_coded_pattern[512] =    { {MB_ERROR, 0}, {0, 9}, {39, 9}, {27, 9}, {59, 9}, {55, 9}, {47, 9}, {31, 9},    {58, 8}, {58, 8}, {54, 8}, {54, 8}, {46, 8}, {46, 8}, {30, 8}, {30, 8},    {57, 8}, {57, 8}, {53, 8}, {53, 8}, {45, 8}, {45, 8}, {29, 8}, {29, 8},    {38, 8}, {38, 8}, {26, 8}, {26, 8}, {37, 8}, {37, 8}, {25, 8}, {25, 8},    {43, 8}, {43, 8}, {23, 8}, {23, 8}, {51, 8}, {51, 8}, {15, 8}, {15, 8},    {42, 8}, {42, 8}, {22, 8}, {22, 8}, {50, 8}, {50, 8}, {14, 8}, {14, 8},    {41, 8}, {41, 8}, {21, 8}, {21, 8}, {49, 8}, {49, 8}, {13, 8}, {13, 8},    {35, 8}, {35, 8}, {19, 8}, {19, 8}, {11, 8}, {11, 8}, {7, 8}, {7, 8},    {34, 7}, {34, 7}, {34, 7}, {34, 7}, {18, 7}, {18, 7}, {18, 7}, {18, 7},    {10, 7}, {10, 7}, {10, 7}, {10, 7}, {6, 7}, {6, 7}, {6, 7}, {6, 7},    {33, 7}, {33, 7}, {33, 7}, {33, 7}, {17, 7}, {17, 7}, {17, 7}, {17, 7},    {9, 7}, {9, 7}, {9, 7}, {9, 7}, {5, 7}, {5, 7}, {5, 7}, {5, 7},    {63, 6}, {63, 6}, {63, 6}, {63, 6}, {63, 6}, {63, 6}, {63, 6}, {63, 6},    {3, 6}, {3, 6}, {3, 6}, {3, 6}, {3, 6}, {3, 6}, {3, 6}, {3, 6},    {36, 6}, {36, 6}, {36, 6}, {36, 6}, {36, 6}, {36, 6}, {36, 6}, {36, 6},    {24, 6}, {24, 6}, {24, 6}, {24, 6}, {24, 6}, {24, 6}, {24, 6}, {24, 6},    {62, 5}, {62, 5}, {62, 5}, {62, 5}, {62, 5}, {62, 5}, {62, 5}, {62, 5},    {62, 5}, {62, 5}, {62, 5}, {62, 5}, {62, 5}, {62, 5}, {62, 5}, {62, 5},    {2, 5}, {2, 5}, {2, 5}, {2, 5}, {2, 5}, {2, 5}, {2, 5}, {2, 5},    {2, 5}, {2, 5}, {2, 5}, {2, 5}, {2, 5}, {2, 5}, {2, 5}, {2, 5},    {61, 5}, {61, 5}, {61, 5}, {61, 5}, {61, 5}, {61, 5}, {61, 5}, {61, 5},    {61, 5}, {61, 5}, {61, 5}, {61, 5}, {61, 5}, {61, 5}, {61, 5}, {61, 5},    {1, 5}, {1, 5}, {1, 5}, {1, 5}, {1, 5}, {1, 5}, {1, 5}, {1, 5},    {1, 5}, {1, 5}, {1, 5}, {1, 5}, {1, 5}, {1, 5}, {1, 5}, {1, 5},    {56, 5}, {56, 5}, {56, 5}, {56, 5}, {56, 5}, {56, 5}, {56, 5}, {56, 5},    {56, 5}, {56, 5}, {56, 5}, {56, 5}, {56, 5}, {56, 5}, {56, 5}, {56, 5},    {52, 5}, {52, 5}, {52, 5}, {52, 5}, {52, 5}, {52, 5}, {52, 5}, {52, 5},    {52, 5}, {52, 5}, {52, 5}, {52, 5}, {52, 5}, {52, 5}, {52, 5}, {52, 5},    {44, 5}, {44, 5}, {44, 5}, {44, 5}, {44, 5}, {44, 5}, {44, 5}, {44, 5},    {44, 5}, {44, 5}, {44, 5}, {44, 5}, {44, 5}, {44, 5}, {44, 5}, {44, 5},    {28, 5}, {28, 5}, {28, 5}, {28, 5}, {28, 5}, {28, 5}, {28, 5}, {28, 5},    {28, 5}, {28, 5}, {28, 5}, {28, 5}, {28, 5}, {28, 5}, {28, 5}, {28, 5},    {40, 5}, {40, 5}, {40, 5}, {40, 5}, {40, 5}, {40, 5}, {40, 5}, {40, 5},    {40, 5}, {40, 5}, {40, 5}, {40, 5}, {40, 5}, {40, 5}, {40, 5}, {40, 5},    {20, 5}, {20, 5}, {20, 5}, {20, 5}, {20, 5}, {20, 5}, {20, 5}, {20, 5},    {20, 5}, {20, 5}, {20, 5}, {20, 5}, {20, 5}, {20, 5}, {20, 5}, {20, 5},    {48, 5}, {48, 5}, {48, 5}, {48, 5}, {48, 5}, {48, 5}, {48, 5}, {48, 5},    {48, 5}, {48, 5}, {48, 5}, {48, 5}, {48, 5}, {48, 5}, {48, 5}, {48, 5},    {12, 5}, {12, 5}, {12, 5}, {12, 5}, {12, 5}, {12, 5}, {12, 5}, {12, 5},    {12, 5}, {12, 5}, {12, 5}, {12, 5}, {12, 5}, {12, 5}, {12, 5}, {12, 5},    {32, 4}, {32, 4}, {32, 4}, {32, 4}, {32, 4}, {32, 4}, {32, 4}, {32, 4},    {32, 4}, {32, 4}, {32, 4}, {32, 4}, {32, 4}, {32, 4}, {32, 4}, {32, 4},    {32, 4}, {32, 4}, {32, 4}, {32, 4}, {32, 4}, {32, 4}, {32, 4}, {32, 4},    {32, 4}, {32, 4}, {32, 4}, {32, 4}, {32, 4}, {32, 4}, {32, 4}, {32, 4},    {16, 4}, {16, 4}, {16, 4}, {16, 4}, {16, 4}, {16, 4}, {16, 4}, {16, 4},    {16, 4}, {16, 4}, {16, 4}, {16, 4}, {16, 4}, {16, 4}, {16, 4}, {16, 4},    {16, 4}, {16, 4}, {16, 4}, {16, 4}, {16, 4}, {16, 4}, {16, 4}, {16, 4},    {16, 4}, {16, 4}, {16, 4}, {16, 4}, {16, 4}, {16, 4}, {16, 4}, {16, 4},    {8, 4}, {8, 4}, {8, 4}, {8, 4}, {8, 4}, {8, 4}, {8, 4}, {8, 4},    {8, 4}, {8, 4}, {8, 4}, {8, 4}, {8, 4}, {8, 4}, {8, 4}, {8, 4},    {8, 4}, {8, 4}, {8, 4}, {8, 4}, {8, 4}, {8, 4}, {8, 4}, {8, 4},    {8, 4}, {8, 4}, {8, 4}, {8, 4}, {8, 4}, {8, 4}, {8, 4}, {8, 4},    {4, 4}, {4, 4}, {4, 4}, {4, 4}, {4, 4}, {4, 4}, {4, 4}, {4, 4},    {4, 4}, {4, 4}, {4, 4}, {4, 4}, {4, 4}, {4, 4}, {4, 4}, {4, 4},    {4, 4}, {4, 4}, {4, 4}, {4, 4}, {4, 4}, {4, 4}, {4, 4}, {4, 4},    {4, 4}, {4, 4}, {4, 4}, {4, 4}, {4, 4}, {4, 4}, {4, 4}, {4, 4},    {60, 3}, {60, 3}, {60, 3}, {60, 3}, {60, 3}, {60, 3}, {60, 3}, {60, 3},    {60, 3}, {60, 3}, {60, 3}, {60, 3}, {60, 3}, {60, 3}, {60, 3}, {60, 3},    {60, 3}, {60, 3}, {60, 3}, {60, 3}, {60, 3}, {60, 3}, {60, 3}, {60, 3},    {60, 3}, {60, 3}, {60, 3}, {60, 3}, {60, 3}, {60, 3}, {60, 3}, {60, 3},    {60, 3}, {60, 3}, {60, 3}, {60, 3}, {60, 3}, {60, 3}, {60, 3}, {60, 3},    {60, 3}, {60, 3}, {60, 3}, {60, 3}, {60, 3}, {60, 3}, {60, 3}, {60, 3},    {60, 3}, {60, 3}, {60, 3}, {60, 3}, {60, 3}, {60, 3}, {60, 3}, {60, 3},    {60, 3}, {60, 3}, {60, 3}, {60, 3}, {60, 3}, {60, 3}, {60, 3}, {60, 3} };    /* Tables for dc DCT coefficients     * Tables are cut in two parts to reduce memory occupation     */    /* Table B-12, dct_dc_size_luminance, codes 00XXX ... 11110 */static lookup_t     pl_dct_dc_lum_init_table_1[32] =    { {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2},      {2, 2}, {2, 2}, {2, 2}, {2, 2}, {2, 2}, {2, 2}, {2, 2}, {2, 2},      {0, 3}, {0, 3}, {0, 3}, {0, 3}, {3, 3}, {3, 3}, {3, 3}, {3, 3},      {4, 3}, {4, 3}, {4, 3}, {4, 3}, {5, 4}, {5, 4}, {6, 5}, {MB_ERROR, 0}    };static lookup_t     ppl_dct_dc_init_table_1[2][32] ={    { {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2},      {2, 2}, {2, 2}, {2, 2}, {2, 2}, {2, 2}, {2, 2}, {2, 2}, {2, 2},      {0, 3}, {0, 3}, {0, 3}, {0, 3}, {3, 3}, {3, 3}, {3, 3}, {3, 3},      {4, 3}, {4, 3}, {4, 3}, {4, 3}, {5, 4}, {5, 4}, {6, 5}, {MB_ERROR, 0}},{ {0, 2}, {0, 2}, {0, 2}, {0, 2}, {0, 2}, {0, 2}, {0, 2}, {0, 2},      {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2},      {2, 2}, {2, 2}, {2, 2}, {2, 2}, {2, 2}, {2, 2}, {2, 2}, {2, 2},      {3, 3}, {3, 3}, {3, 3}, {3, 3}, {4, 4}, {4, 4}, {5, 5}, {MB_ERROR, 0}    }    };    /* Table B-12, dct_dc_size_luminance, codes 111110xxx ... 111111111 */static lookup_t     pl_dct_dc_lum_init_table_2[32] =    { {7, 6}, {7, 6}, {7, 6}, {7, 6}, {7, 6}, {7, 6}, {7, 6}, {7, 6},      {8, 7}, {8, 7}, {8, 7}, {8, 7}, {9, 8}, {9, 8}, {10,9}, {11,9},      {MB_ERROR, 0}, {MB_ERROR, 0}, {MB_ERROR, 0}, {MB_ERROR, 0},      {MB_ERROR, 0}, {MB_ERROR, 0}, {MB_ERROR, 0}, {MB_ERROR, 0},      {MB_ERROR, 0}, {MB_ERROR, 0}, {MB_ERROR, 0}, {MB_ERROR, 0},      {MB_ERROR, 0}, {MB_ERROR, 0}, {MB_ERROR, 0}, {MB_ERROR, 0}    };static lookup_t     ppl_dct_dc_init_table_2[2][32] ={    { {7, 6}, {7, 6}, {7, 6}, {7, 6}, {7, 6}, {7, 6}, {7, 6}, {7, 6},      {8, 7}, {8, 7}, {8, 7}, {8, 7}, {9, 8}, {9, 8}, {10,9}, {11,9},      {MB_ERROR, 0}, {MB_ERROR, 0}, {MB_ERROR, 0}, {MB_ERROR, 0},      {MB_ERROR, 0}, {MB_ERROR, 0}, {MB_ERROR, 0}, {MB_ERROR, 0},      {MB_ERROR, 0}, {MB_ERROR, 0}, {MB_ERROR, 0}, {MB_ERROR, 0},      {MB_ERROR, 0}, {MB_ERROR, 0}, {MB_ERROR, 0}, {MB_ERROR, 0}},    { {6, 6}, {6, 6}, {6, 6}, {6, 6}, {6, 6}, {6, 6}, {6, 6}, {6, 6},      {6, 6}, {6, 6}, {6, 6}, {6, 6}, {6, 6}, {6, 6}, {6, 6}, {6, 6},      {7, 7}, {7, 7}, {7, 7}, {7, 7}, {7, 7}, {7, 7}, {7, 7}, {7, 7},      {8, 8}, {8, 8}, {8, 8}, {8, 8}, {9, 9}, {9, 9}, {10,10}, {11,10}    }    };    /* Table B-13, dct_dc_size_chrominance, codes 00xxx ... 11110 */static lookup_t     pl_dct_dc_chrom_init_table_1[32] = { {0, 2}, {0, 2}, {0, 2}, {0, 2}, {0, 2}, {0, 2}, {0, 2}, {0, 2},      {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2}, {1, 2},      {2, 2}, {2, 2}, {2, 2}, {2, 2}, {2, 2}, {2, 2}, {2, 2}, {2, 2},      {3, 3}, {3, 3}, {3, 3}, {3, 3}, {4, 4}, {4, 4}, {5, 5}, {MB_ERROR, 0}    };       /* Table B-13, dct_dc_size_chrominance, codes 111110xxxx ... 1111111111 */static lookup_t     pl_dct_dc_chrom_init_table_2[32] =    { {6, 6}, {6, 6}, {6, 6}, {6, 6}, {6, 6}, {6, 6}, {6, 6}, {6, 6},      {6, 6}, {6, 6}, {6, 6}, {6, 6}, {6, 6}, {6, 6}, {6, 6}, {6, 6},      {7, 7}, {7, 7}, {7, 7}, {7, 7}, {7, 7}, {7, 7}, {7, 7}, {7, 7},      {8, 8}, {8, 8}, {8, 8}, {8, 8}, {9, 9}, {9, 9}, {10,10}, {11,10}    };     /* Tables for ac DCT coefficients. There are cut in many parts to save space */    /* Table B-14, DCT coefficients table zero,     * codes 0100 ... 1xxx (used for first (DC) coefficient)     */static dct_lookup_t pl_DCT_tab_dc[12] =    {        {0,2,4}, {2,1,4}, {1,1,3}, {1,1,3},        {0,1,1}, {0,1,1}, {0,1,1}, {0,1,1},        {0,1,1}, {0,1,1}, {0,1,1}, {0,1,1}    };    /* Table B-14, DCT coefficients table zero,     * codes 0100 ... 1xxx (used for all other coefficients)     */static dct_lookup_t pl_DCT_tab_ac[12] =    {        {0,2,4},  {2,1,4},  {1,1,3},  {1,1,3},        {DCT_EOB,0,2}, {DCT_EOB,0,2}, {DCT_EOB,0,2}, {DCT_EOB,0,2}, /* EOB */        {0,1,2},  {0,1,2},  {0,1,2},  {0,1,2}    };    /* Table B-14, DCT coefficients table zero,     * codes 000001xx ... 00111xxx     */static dct_lookup_t pl_DCT_tab0[60] =    {        {DCT_ESCAPE,0,6}, {DCT_ESCAPE,0,6}, {DCT_ESCAPE,0,6}, {DCT_ESCAPE,0,6},        /* Escape */        {2,2,7}, {2,2,7}, {9,1,7}, {9,1,7},        {0,4,7}, {0,4,7}, {8,1,7}, {8,1,7},        {7,1,6}, {7,1,6}, {7,1,6}, {7,1,6},        {6,1,6}, {6,1,6}, {6,1,6}, {6,1,6},        {1,2,6}, {1,2,6}, {1,2,6}, {1,2,6},        {5,1,6}, {5,1,6}, {5,1,6}, {5,1,6},        {13,1,8}, {0,6,8}, {12,1,8}, {11,1,8},        {3,2,8}, {1,3,8}, {0,5,8}, {10,1,8},        {0,3,5}, {0,3,5}, {0,3,5}, {0,3,5},        {0,3,5}, {0,3,5}, {0,3,5}, {0,3,5},        {4,1,5}, {4,1,5}, {4,1,5}, {4,1,5},        {4,1,5}, {4,1,5}, {4,1,5}, {4,1,5},        {3,1,5}, {3,1,5}, {3,1,5}, {3,1,5},        {3,1,5}, {3,1,5}, {3,1,5}, {3,1,5}    };    /* Table B-15, DCT coefficients table one,     * codes 000001xx ... 11111111     */static dct_lookup_t pl_DCT_tab0a[252] =    {        {65,0,6}, {65,0,6}, {65,0,6}, {65,0,6}, /* Escape */        {7,1,7}, {7,1,7}, {8,1,7}, {8,1,7},        {6,1,7}, {6,1,7}, {2,2,7}, {2,2,7},        {0,7,6}, {0,7,6}, {0,7,6}, {0,7,6},        {0,6,6}, {0,6,6}, {0,6,6}, {0,6,6},        {4,1,6}, {4,1,6}, {4,1,6}, {4,1,6},        {5,1,6}, {5,1,6}, {5,1,6}, {5,1,6},        {1,5,8}, {11,1,8}, {0,11,8}, {0,10,8},        {13,1,8}, {12,1,8}, {3,2,8}, {1,4,8},        {2,1,5}, {2,1,5}, {2,1,5}, {2,1,5},        {2,1,5}, {2,1,5}, {2,1,5}, {2,1,5},        {1,2,5}, {1,2,5}, {1,2,5}, {1,2,5},        {1,2,5}, {1,2,5}, {1,2,5}, {1,2,5},        {3,1,5}, {3,1,5}, {3,1,5}, {3,1,5},        {3,1,5}, {3,1,5}, {3,1,5}, {3,1,5},        {1,1,3}, {1,1,3}, {1,1,3}, {1,1,3},        {1,1,3}, {1,1,3}, {1,1,3}, {1,1,3},        {1,1,3}, {1,1,3}, {1,1,3}, {1,1,3},        {1,1,3}, {1,1,3}, {1,1,3}, {1,1,3},        {1,1,3}, {1,1,3}, {1,1,3}, {1,1,3},        {1,1,3}, {1,1,3}, {1,1,3}, {1,1,3},        {1,1,3}, {1,1,3}, {1,1,3}, {1,1,3},        {1,1,3}, {1,1,3}, {1,1,3}, {1,1,3},        {64,0,4}, {64,0,4}, {64,0,4}, {64,0,4}, /* EOB */        {64,0,4}, {64,0,4}, {64,0,4}, {64,0,4},        {64,0,4}, {64,0,4}, {64,0,4}, {64,0,4},        {64,0,4}, {64,0,4}, {64,0,4}, {64,0,4},        {0,3,4}, {0,3,4}, {0,3,4}, {0,3,4},        {0,3,4}, {0,3,4}, {0,3,4}, {0,3,4},        {0,3,4}, {0,3,4}, {0,3,4}, {0,3,4},        {0,3,4}, {0,3,4}, {0,3,4}, {0,3,4},        {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2},        {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2},        {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2},        {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2},        {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2},        {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2},        {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2},        {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2},        {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2},        {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2},        {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2},        {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2},        {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2},        {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2},        {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2},        {0,1,2}, {0,1,2}, {0,1,2}, {0,1,2},        {0,2,3}, {0,2,3}, {0,2,3}, {0,2,3},        {0,2,3}, {0,2,3}, {0,2,3}, {0,2,3},        {0,2,3}, {0,2,3}, {0,2,3}, {0,2,3},        {0,2,3}, {0,2,3}, {0,2,3}, {0,2,3},        {0,2,3}, {0,2,3}, {0,2,3}, {0,2,3},        {0,2,3}, {0,2,3}, {0,2,3}, {0,2,3},        {0,2,3}, {0,2,3}, {0,2,3}, {0,2,3},        {0,2,3}, {0,2,3}, {0,2,3}, {0,2,3},        {0,4,5}, {0,4,5}, {0,4,5}, {0,4,5},        {0,4,5}, {0,4,5}, {0,4,5}, {0,4,5},        {0,5,5}, {0,5,5}, {0,5,5}, {0,5,5},        {0,5,5}, {0,5,5}, {0,5,5}, {0,5,5},        {9,1,7}, {9,1,7}, {1,3,7}, {1,3,7},        {10,1,7}, {10,1,7}, {0,8,7}, {0,8,7},        {0,9,7}, {0,9,7}, {0,12,8}, {0,13,8},        {2,3,8}, {4,2,8}, {0,14,8}, {0,15,8}    };    /* Table B-14, DCT coefficients table zero,     * codes 0000001000 ... 0000001111     */static dct_lookup_t pl_DCT_tab1[8] =    {        {16,1,10}, {5,2,10}, {0,7,10}, {2,3,10},        {1,4,10}, {15,1,10}, {14,1,10}, {4,2,10}    };    /* Table B-15, DCT coefficients table one,     * codes 000000100x ... 000000111x     */static dct_lookup_t pl_DCT_tab1a[8] =    {        {5,2,9}, {5,2,9}, {14,1,9}, {14,1,9},        {2,4,10}, {16,1,10}, {15,1,9}, {15,1,9}    };    /* Table B-14/15, DCT coefficients table zero / one,

⌨️ 快捷键说明

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