Added support for high throughput (HTJ2K) decoding.
There are a few limitations: - mixed mode (HT and regular code blocks) is not supported. - ROI in HT blocks is not supported. - Placeholder passes are not supported. - MultiHT sets are not support, only a singleHT set. - there are known issues with some compliance testing files related to the parsing of packet header.
This commit is contained in:
parent
fd485f2f13
commit
1e6c925eb5
|
@ -13,7 +13,7 @@ jobs:
|
||||||
- name: Install Requirements
|
- name: Install Requirements
|
||||||
run: |
|
run: |
|
||||||
sudo apt update
|
sudo apt update
|
||||||
sudo apt install -y gcc g++
|
sudo apt install -y gcc g++ libtiff-dev libwebp-dev libzstd-dev
|
||||||
|
|
||||||
- name: Build and run tests
|
- name: Build and run tests
|
||||||
run: |
|
run: |
|
||||||
|
|
|
@ -21,11 +21,9 @@ ASTYLEDIFF=/tmp/astyle.diff
|
||||||
if [ ! -z $GITHUB_BASE_REF ] && [ ! -z $GITHUB_HEAD_REF ]; then
|
if [ ! -z $GITHUB_BASE_REF ] && [ ! -z $GITHUB_HEAD_REF ]; then
|
||||||
# on a PR
|
# on a PR
|
||||||
echo "GitHub PR COMMIT RANGE: ${GITHUB_BASE_REF}..${GITHUB_HEAD_REF}"
|
echo "GitHub PR COMMIT RANGE: ${GITHUB_BASE_REF}..${GITHUB_HEAD_REF}"
|
||||||
git branch ${GITHUB_BASE_REF} origin/${GITHUB_BASE_REF}
|
git branch tmp_${GITHUB_BASE_REF} origin/${GITHUB_BASE_REF}
|
||||||
git branch ${GITHUB_HEAD_REF} origin/${GITHUB_HEAD_REF}
|
BASE_SHA1=$(git rev-parse tmp_${GITHUB_BASE_REF})
|
||||||
BASE_SHA1=$(git rev-parse ${GITHUB_BASE_REF})
|
FILES=$(git diff --diff-filter=AMR --name-only ${BASE_SHA1}..${GITHUB_SHA} | tr '\n' ' ' )
|
||||||
HEAD_SHA1=$(git rev-parse ${GITHUB_HEAD_REF})
|
|
||||||
FILES=$(git diff --diff-filter=AMR --name-only ${BASE_SHA1}..${HEAD_SHA1} | tr '\n' ' ' )
|
|
||||||
elif [ ! -z $GITHUB_SHA ]; then
|
elif [ ! -z $GITHUB_SHA ]; then
|
||||||
echo "GitHub push COMMIT $GITHUB_SHA"
|
echo "GitHub push COMMIT $GITHUB_SHA"
|
||||||
FILES=$(git diff --diff-filter=AMR --name-only ${GITHUB_SHA}~1..${GITHUB_SHA} | tr '\n' ' ' )
|
FILES=$(git diff --diff-filter=AMR --name-only ${GITHUB_SHA}~1..${GITHUB_SHA} | tr '\n' ' ' )
|
||||||
|
|
|
@ -19,6 +19,7 @@ set(OPENJPEG_SRCS
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/dwt.h
|
${CMAKE_CURRENT_SOURCE_DIR}/dwt.h
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/event.c
|
${CMAKE_CURRENT_SOURCE_DIR}/event.c
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/event.h
|
${CMAKE_CURRENT_SOURCE_DIR}/event.h
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/ht_dec.c
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/image.c
|
${CMAKE_CURRENT_SOURCE_DIR}/image.c
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/image.h
|
${CMAKE_CURRENT_SOURCE_DIR}/image.h
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/invert.c
|
${CMAKE_CURRENT_SOURCE_DIR}/invert.c
|
||||||
|
@ -134,9 +135,9 @@ install(
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(BUILD_LUTS_GENERATOR)
|
if(BUILD_LUTS_GENERATOR)
|
||||||
# internal utility to generate t1_luts.h (part of the jp2 lib)
|
# internal utility to generate t1_luts.h and t1_ht_luts.h (part of the jp2 lib)
|
||||||
# no need to install:
|
# no need to install:
|
||||||
add_executable(t1_generate_luts t1_generate_luts.c)
|
add_executable(t1_generate_luts t1_generate_luts.c t1_ht_generate_luts.c)
|
||||||
if(UNIX)
|
if(UNIX)
|
||||||
target_link_libraries(t1_generate_luts m)
|
target_link_libraries(t1_generate_luts m)
|
||||||
endif()
|
endif()
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1177,6 +1177,32 @@ static OPJ_BOOL opj_j2k_read_cbd(opj_j2k_t *p_j2k,
|
||||||
OPJ_UINT32 p_header_size,
|
OPJ_UINT32 p_header_size,
|
||||||
opj_event_mgr_t * p_manager);
|
opj_event_mgr_t * p_manager);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reads a CAP marker (extended capabilities definition). Empty implementation.
|
||||||
|
* Found in HTJ2K files
|
||||||
|
*
|
||||||
|
* @param p_header_data the data contained in the CAP box.
|
||||||
|
* @param p_j2k the jpeg2000 codec.
|
||||||
|
* @param p_header_size the size of the data contained in the CAP marker.
|
||||||
|
* @param p_manager the user event manager.
|
||||||
|
*/
|
||||||
|
static OPJ_BOOL opj_j2k_read_cap(opj_j2k_t *p_j2k,
|
||||||
|
OPJ_BYTE * p_header_data,
|
||||||
|
OPJ_UINT32 p_header_size,
|
||||||
|
opj_event_mgr_t * p_manager);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reads a CPF marker (corresponding profile). Empty implementation. Found in HTJ2K files
|
||||||
|
* @param p_header_data the data contained in the CPF box.
|
||||||
|
* @param p_j2k the jpeg2000 codec.
|
||||||
|
* @param p_header_size the size of the data contained in the CPF marker.
|
||||||
|
* @param p_manager the user event manager.
|
||||||
|
*/
|
||||||
|
static OPJ_BOOL opj_j2k_read_cpf(opj_j2k_t *p_j2k,
|
||||||
|
OPJ_BYTE * p_header_data,
|
||||||
|
OPJ_UINT32 p_header_size,
|
||||||
|
opj_event_mgr_t * p_manager);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Writes COC marker for each component.
|
* Writes COC marker for each component.
|
||||||
|
@ -1399,6 +1425,8 @@ static const opj_dec_memory_marker_handler_t j2k_memory_marker_handler_tab [] =
|
||||||
{J2K_MS_COM, J2K_STATE_MH | J2K_STATE_TPH, opj_j2k_read_com},
|
{J2K_MS_COM, J2K_STATE_MH | J2K_STATE_TPH, opj_j2k_read_com},
|
||||||
{J2K_MS_MCT, J2K_STATE_MH | J2K_STATE_TPH, opj_j2k_read_mct},
|
{J2K_MS_MCT, J2K_STATE_MH | J2K_STATE_TPH, opj_j2k_read_mct},
|
||||||
{J2K_MS_CBD, J2K_STATE_MH, opj_j2k_read_cbd},
|
{J2K_MS_CBD, J2K_STATE_MH, opj_j2k_read_cbd},
|
||||||
|
{J2K_MS_CAP, J2K_STATE_MH, opj_j2k_read_cap},
|
||||||
|
{J2K_MS_CPF, J2K_STATE_MH, opj_j2k_read_cpf},
|
||||||
{J2K_MS_MCC, J2K_STATE_MH | J2K_STATE_TPH, opj_j2k_read_mcc},
|
{J2K_MS_MCC, J2K_STATE_MH | J2K_STATE_TPH, opj_j2k_read_mcc},
|
||||||
{J2K_MS_MCO, J2K_STATE_MH | J2K_STATE_TPH, opj_j2k_read_mco},
|
{J2K_MS_MCO, J2K_STATE_MH | J2K_STATE_TPH, opj_j2k_read_mco},
|
||||||
#ifdef USE_JPWL
|
#ifdef USE_JPWL
|
||||||
|
@ -6594,6 +6622,60 @@ static OPJ_BOOL opj_j2k_read_cbd(opj_j2k_t *p_j2k,
|
||||||
return OPJ_TRUE;
|
return OPJ_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reads a CAP marker (extended capabilities definition). Empty implementation.
|
||||||
|
* Found in HTJ2K files.
|
||||||
|
*
|
||||||
|
* @param p_header_data the data contained in the CAP box.
|
||||||
|
* @param p_j2k the jpeg2000 codec.
|
||||||
|
* @param p_header_size the size of the data contained in the CAP marker.
|
||||||
|
* @param p_manager the user event manager.
|
||||||
|
*/
|
||||||
|
static OPJ_BOOL opj_j2k_read_cap(opj_j2k_t *p_j2k,
|
||||||
|
OPJ_BYTE * p_header_data,
|
||||||
|
OPJ_UINT32 p_header_size,
|
||||||
|
opj_event_mgr_t * p_manager
|
||||||
|
)
|
||||||
|
{
|
||||||
|
/* preconditions */
|
||||||
|
assert(p_header_data != 00);
|
||||||
|
assert(p_j2k != 00);
|
||||||
|
assert(p_manager != 00);
|
||||||
|
|
||||||
|
(void)p_j2k;
|
||||||
|
(void)p_header_data;
|
||||||
|
(void)p_header_size;
|
||||||
|
(void)p_manager;
|
||||||
|
|
||||||
|
return OPJ_TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reads a CPF marker (corresponding profile). Empty implementation. Found in HTJ2K files
|
||||||
|
* @param p_header_data the data contained in the CPF box.
|
||||||
|
* @param p_j2k the jpeg2000 codec.
|
||||||
|
* @param p_header_size the size of the data contained in the CPF marker.
|
||||||
|
* @param p_manager the user event manager.
|
||||||
|
*/
|
||||||
|
static OPJ_BOOL opj_j2k_read_cpf(opj_j2k_t *p_j2k,
|
||||||
|
OPJ_BYTE * p_header_data,
|
||||||
|
OPJ_UINT32 p_header_size,
|
||||||
|
opj_event_mgr_t * p_manager
|
||||||
|
)
|
||||||
|
{
|
||||||
|
/* preconditions */
|
||||||
|
assert(p_header_data != 00);
|
||||||
|
assert(p_j2k != 00);
|
||||||
|
assert(p_manager != 00);
|
||||||
|
|
||||||
|
(void)p_j2k;
|
||||||
|
(void)p_header_data;
|
||||||
|
(void)p_header_size;
|
||||||
|
(void)p_manager;
|
||||||
|
|
||||||
|
return OPJ_TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------- */
|
/* ----------------------------------------------------------------------- */
|
||||||
/* J2K / JPT decoder interface */
|
/* J2K / JPT decoder interface */
|
||||||
/* ----------------------------------------------------------------------- */
|
/* ----------------------------------------------------------------------- */
|
||||||
|
@ -10617,9 +10699,10 @@ static OPJ_BOOL opj_j2k_read_SPCod_SPCoc(opj_j2k_t *p_j2k,
|
||||||
/* SPcod (G) / SPcoc (D) */
|
/* SPcod (G) / SPcoc (D) */
|
||||||
opj_read_bytes(l_current_ptr, &l_tccp->cblksty, 1);
|
opj_read_bytes(l_current_ptr, &l_tccp->cblksty, 1);
|
||||||
++l_current_ptr;
|
++l_current_ptr;
|
||||||
if (l_tccp->cblksty & 0xC0U) { /* 2 msb are reserved, assume we can't read */
|
if ((l_tccp->cblksty & J2K_CCP_CBLKSTY_HTMIXED) != 0) {
|
||||||
|
/* We do not support HT mixed mode yet. For conformance, it should be supported.*/
|
||||||
opj_event_msg(p_manager, EVT_ERROR,
|
opj_event_msg(p_manager, EVT_ERROR,
|
||||||
"Error reading SPCod SPCoc element, Invalid code-block style found\n");
|
"Error reading SPCod SPCoc element. Unsupported Mixed HT code-block style found\n");
|
||||||
return OPJ_FALSE;
|
return OPJ_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -61,6 +61,8 @@ The functions in J2K.C have for goal to read/write the several parts of the code
|
||||||
#define J2K_CCP_CBLKSTY_VSC 0x08 /**< Vertically stripe causal context */
|
#define J2K_CCP_CBLKSTY_VSC 0x08 /**< Vertically stripe causal context */
|
||||||
#define J2K_CCP_CBLKSTY_PTERM 0x10 /**< Predictable termination */
|
#define J2K_CCP_CBLKSTY_PTERM 0x10 /**< Predictable termination */
|
||||||
#define J2K_CCP_CBLKSTY_SEGSYM 0x20 /**< Segmentation symbols are used */
|
#define J2K_CCP_CBLKSTY_SEGSYM 0x20 /**< Segmentation symbols are used */
|
||||||
|
#define J2K_CCP_CBLKSTY_HT 0x40 /**< (high throughput) HT codeblocks */
|
||||||
|
#define J2K_CCP_CBLKSTY_HTMIXED 0x80 /**< MIXED mode HT codeblocks */
|
||||||
#define J2K_CCP_QNTSTY_NOQNT 0
|
#define J2K_CCP_QNTSTY_NOQNT 0
|
||||||
#define J2K_CCP_QNTSTY_SIQNT 1
|
#define J2K_CCP_QNTSTY_SIQNT 1
|
||||||
#define J2K_CCP_QNTSTY_SEQNT 2
|
#define J2K_CCP_QNTSTY_SEQNT 2
|
||||||
|
@ -71,9 +73,11 @@ The functions in J2K.C have for goal to read/write the several parts of the code
|
||||||
#define J2K_MS_SOT 0xff90 /**< SOT marker value */
|
#define J2K_MS_SOT 0xff90 /**< SOT marker value */
|
||||||
#define J2K_MS_SOD 0xff93 /**< SOD marker value */
|
#define J2K_MS_SOD 0xff93 /**< SOD marker value */
|
||||||
#define J2K_MS_EOC 0xffd9 /**< EOC marker value */
|
#define J2K_MS_EOC 0xffd9 /**< EOC marker value */
|
||||||
|
#define J2K_MS_CAP 0xff50 /**< CAP marker value */
|
||||||
#define J2K_MS_SIZ 0xff51 /**< SIZ marker value */
|
#define J2K_MS_SIZ 0xff51 /**< SIZ marker value */
|
||||||
#define J2K_MS_COD 0xff52 /**< COD marker value */
|
#define J2K_MS_COD 0xff52 /**< COD marker value */
|
||||||
#define J2K_MS_COC 0xff53 /**< COC marker value */
|
#define J2K_MS_COC 0xff53 /**< COC marker value */
|
||||||
|
#define J2K_MS_CPF 0xff59 /**< CPF marker value */
|
||||||
#define J2K_MS_RGN 0xff5e /**< RGN marker value */
|
#define J2K_MS_RGN 0xff5e /**< RGN marker value */
|
||||||
#define J2K_MS_QCD 0xff5c /**< QCD marker value */
|
#define J2K_MS_QCD 0xff5c /**< QCD marker value */
|
||||||
#define J2K_MS_QCC 0xff5d /**< QCC marker value */
|
#define J2K_MS_QCC 0xff5d /**< QCC marker value */
|
||||||
|
|
|
@ -217,6 +217,27 @@ static OPJ_BOOL opj_t1_decode_cblk(opj_t1_t *t1,
|
||||||
opj_mutex_t* p_manager_mutex,
|
opj_mutex_t* p_manager_mutex,
|
||||||
OPJ_BOOL check_pterm);
|
OPJ_BOOL check_pterm);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Decode 1 HT code-block
|
||||||
|
@param t1 T1 handle
|
||||||
|
@param cblk Code-block coding parameters
|
||||||
|
@param orient
|
||||||
|
@param roishift Region of interest shifting value
|
||||||
|
@param cblksty Code-block style
|
||||||
|
@param p_manager the event manager
|
||||||
|
@param p_manager_mutex mutex for the event manager
|
||||||
|
@param check_pterm whether PTERM correct termination should be checked
|
||||||
|
*/
|
||||||
|
OPJ_BOOL opj_t1_ht_decode_cblk(opj_t1_t *t1,
|
||||||
|
opj_tcd_cblk_dec_t* cblk,
|
||||||
|
OPJ_UINT32 orient,
|
||||||
|
OPJ_UINT32 roishift,
|
||||||
|
OPJ_UINT32 cblksty,
|
||||||
|
opj_event_mgr_t *p_manager,
|
||||||
|
opj_mutex_t* p_manager_mutex,
|
||||||
|
OPJ_BOOL check_pterm);
|
||||||
|
|
||||||
|
|
||||||
static OPJ_BOOL opj_t1_allocate_buffers(opj_t1_t *t1,
|
static OPJ_BOOL opj_t1_allocate_buffers(opj_t1_t *t1,
|
||||||
OPJ_UINT32 w,
|
OPJ_UINT32 w,
|
||||||
OPJ_UINT32 h);
|
OPJ_UINT32 h);
|
||||||
|
@ -1665,18 +1686,34 @@ static void opj_t1_clbl_decode_processor(void* user_data, opj_tls_t* tls)
|
||||||
}
|
}
|
||||||
t1->mustuse_cblkdatabuffer = job->mustuse_cblkdatabuffer;
|
t1->mustuse_cblkdatabuffer = job->mustuse_cblkdatabuffer;
|
||||||
|
|
||||||
if (OPJ_FALSE == opj_t1_decode_cblk(
|
if ((tccp->cblksty & J2K_CCP_CBLKSTY_HT) != 0) {
|
||||||
t1,
|
if (OPJ_FALSE == opj_t1_ht_decode_cblk(
|
||||||
cblk,
|
t1,
|
||||||
band->bandno,
|
cblk,
|
||||||
(OPJ_UINT32)tccp->roishift,
|
band->bandno,
|
||||||
tccp->cblksty,
|
(OPJ_UINT32)tccp->roishift,
|
||||||
job->p_manager,
|
tccp->cblksty,
|
||||||
job->p_manager_mutex,
|
job->p_manager,
|
||||||
job->check_pterm)) {
|
job->p_manager_mutex,
|
||||||
*(job->pret) = OPJ_FALSE;
|
job->check_pterm)) {
|
||||||
opj_free(job);
|
*(job->pret) = OPJ_FALSE;
|
||||||
return;
|
opj_free(job);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (OPJ_FALSE == opj_t1_decode_cblk(
|
||||||
|
t1,
|
||||||
|
cblk,
|
||||||
|
band->bandno,
|
||||||
|
(OPJ_UINT32)tccp->roishift,
|
||||||
|
tccp->cblksty,
|
||||||
|
job->p_manager,
|
||||||
|
job->p_manager_mutex,
|
||||||
|
job->check_pterm)) {
|
||||||
|
*(job->pret) = OPJ_FALSE;
|
||||||
|
opj_free(job);
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
x = cblk->x0 - band->x0;
|
x = cblk->x0 - band->x0;
|
||||||
|
|
|
@ -39,6 +39,12 @@
|
||||||
|
|
||||||
#include "opj_includes.h"
|
#include "opj_includes.h"
|
||||||
|
|
||||||
|
// defined elsewhere
|
||||||
|
extern OPJ_BOOL vlc_init_tables();
|
||||||
|
extern OPJ_BOOL vlc_tables_initialized;
|
||||||
|
extern int vlc_tbl0[1024];
|
||||||
|
extern int vlc_tbl1[1024];
|
||||||
|
|
||||||
static int t1_init_ctxno_zc(OPJ_UINT32 f, OPJ_UINT32 orient)
|
static int t1_init_ctxno_zc(OPJ_UINT32 f, OPJ_UINT32 orient)
|
||||||
{
|
{
|
||||||
int h, v, d, n, t, hv;
|
int h, v, d, n, t, hv;
|
||||||
|
@ -307,5 +313,11 @@ int main(int argc, char **argv)
|
||||||
printf("static const OPJ_INT16 lut_nmsedec_ref0[1U << T1_NMSEDEC_BITS] = {\n ");
|
printf("static const OPJ_INT16 lut_nmsedec_ref0[1U << T1_NMSEDEC_BITS] = {\n ");
|
||||||
dump_array16(lut_nmsedec_ref0, 1U << T1_NMSEDEC_BITS);
|
dump_array16(lut_nmsedec_ref0, 1U << T1_NMSEDEC_BITS);
|
||||||
|
|
||||||
|
vlc_tables_initialized = vlc_init_tables();
|
||||||
|
printf("static const OPJ_UINT16 vlc_tbl0[1024] = {\n ");
|
||||||
|
dump_array16(vlc_tbl0, 1024);
|
||||||
|
printf("static const OPJ_UINT16 vlc_tbl1[1024] = {\n ");
|
||||||
|
dump_array16(vlc_tbl1, 1024);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,973 @@
|
||||||
|
//***************************************************************************/
|
||||||
|
// This software is released under the 2-Clause BSD license, included
|
||||||
|
// below.
|
||||||
|
//
|
||||||
|
// Copyright (c) 2021, Aous Naman
|
||||||
|
// Copyright (c) 2021, Kakadu Software Pty Ltd, Australia
|
||||||
|
// Copyright (c) 2021, The University of New South Wales, Australia
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without
|
||||||
|
// modification, are permitted provided that the following conditions are
|
||||||
|
// met:
|
||||||
|
//
|
||||||
|
// 1. Redistributions of source code must retain the above copyright
|
||||||
|
// notice, this list of conditions and the following disclaimer.
|
||||||
|
//
|
||||||
|
// 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
// notice, this list of conditions and the following disclaimer in the
|
||||||
|
// documentation and/or other materials provided with the distribution.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
|
||||||
|
// IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
||||||
|
// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
||||||
|
// PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
// HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
|
||||||
|
// TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||||
|
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||||
|
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
|
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
//***************************************************************************/
|
||||||
|
// This file is part of the OpenJpeg software implementation.
|
||||||
|
// File: t1_ht_generate_luts.c
|
||||||
|
// Author: Aous Naman
|
||||||
|
// Date: 01 September 2021
|
||||||
|
//***************************************************************************/
|
||||||
|
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <assert.h>
|
||||||
|
|
||||||
|
typedef int OPJ_BOOL;
|
||||||
|
#define OPJ_TRUE 1
|
||||||
|
#define OPJ_FALSE 0
|
||||||
|
|
||||||
|
#include "opj_stdint.h"
|
||||||
|
|
||||||
|
typedef int8_t OPJ_INT8;
|
||||||
|
typedef uint8_t OPJ_UINT8;
|
||||||
|
typedef int16_t OPJ_INT16;
|
||||||
|
typedef uint16_t OPJ_UINT16;
|
||||||
|
typedef int32_t OPJ_INT32;
|
||||||
|
typedef uint32_t OPJ_UINT32;
|
||||||
|
typedef int64_t OPJ_INT64;
|
||||||
|
typedef uint64_t OPJ_UINT64;
|
||||||
|
|
||||||
|
//************************************************************************/
|
||||||
|
/** @brief HT decoding tables, as given in the standard
|
||||||
|
*
|
||||||
|
* Data in the table is arranged in this format:
|
||||||
|
* c_q is the context for a quad
|
||||||
|
* rho is the signficance pattern for a quad
|
||||||
|
* u_off indicate if u value is 0 (u_off is 0), or communicated
|
||||||
|
* e_k, e_1 EMB patterns
|
||||||
|
* cwd VLC codeword
|
||||||
|
* cwd VLC codeword length
|
||||||
|
*/
|
||||||
|
typedef struct vlc_src_table {
|
||||||
|
int c_q, rho, u_off, e_k, e_1, cwd, cwd_len;
|
||||||
|
}
|
||||||
|
vlc_src_table_t;
|
||||||
|
|
||||||
|
// initial quad rows
|
||||||
|
static vlc_src_table_t tbl0[] = {
|
||||||
|
{0, 0x1, 0x0, 0x0, 0x0, 0x06, 4},
|
||||||
|
{0, 0x1, 0x1, 0x1, 0x1, 0x3F, 7},
|
||||||
|
{0, 0x2, 0x0, 0x0, 0x0, 0x00, 3},
|
||||||
|
{0, 0x2, 0x1, 0x2, 0x2, 0x7F, 7},
|
||||||
|
{0, 0x3, 0x0, 0x0, 0x0, 0x11, 5},
|
||||||
|
{0, 0x3, 0x1, 0x2, 0x2, 0x5F, 7},
|
||||||
|
{0, 0x3, 0x1, 0x3, 0x1, 0x1F, 7},
|
||||||
|
{0, 0x4, 0x0, 0x0, 0x0, 0x02, 3},
|
||||||
|
{0, 0x4, 0x1, 0x4, 0x4, 0x13, 6},
|
||||||
|
{0, 0x5, 0x0, 0x0, 0x0, 0x0E, 5},
|
||||||
|
{0, 0x5, 0x1, 0x4, 0x4, 0x23, 6},
|
||||||
|
{0, 0x5, 0x1, 0x5, 0x1, 0x0F, 7},
|
||||||
|
{0, 0x6, 0x0, 0x0, 0x0, 0x03, 6},
|
||||||
|
{0, 0x6, 0x1, 0x0, 0x0, 0x6F, 7},
|
||||||
|
{0, 0x7, 0x0, 0x0, 0x0, 0x2F, 7},
|
||||||
|
{0, 0x7, 0x1, 0x2, 0x2, 0x4F, 7},
|
||||||
|
{0, 0x7, 0x1, 0x2, 0x0, 0x0D, 6},
|
||||||
|
{0, 0x8, 0x0, 0x0, 0x0, 0x04, 3},
|
||||||
|
{0, 0x8, 0x1, 0x8, 0x8, 0x3D, 6},
|
||||||
|
{0, 0x9, 0x0, 0x0, 0x0, 0x1D, 6},
|
||||||
|
{0, 0x9, 0x1, 0x0, 0x0, 0x2D, 6},
|
||||||
|
{0, 0xA, 0x0, 0x0, 0x0, 0x01, 5},
|
||||||
|
{0, 0xA, 0x1, 0x8, 0x8, 0x35, 6},
|
||||||
|
{0, 0xA, 0x1, 0xA, 0x2, 0x77, 7},
|
||||||
|
{0, 0xB, 0x0, 0x0, 0x0, 0x37, 7},
|
||||||
|
{0, 0xB, 0x1, 0x1, 0x1, 0x57, 7},
|
||||||
|
{0, 0xB, 0x1, 0x1, 0x0, 0x09, 6},
|
||||||
|
{0, 0xC, 0x0, 0x0, 0x0, 0x1E, 5},
|
||||||
|
{0, 0xC, 0x1, 0xC, 0xC, 0x17, 7},
|
||||||
|
{0, 0xC, 0x1, 0xC, 0x4, 0x15, 6},
|
||||||
|
{0, 0xC, 0x1, 0xC, 0x8, 0x25, 6},
|
||||||
|
{0, 0xD, 0x0, 0x0, 0x0, 0x67, 7},
|
||||||
|
{0, 0xD, 0x1, 0x1, 0x1, 0x27, 7},
|
||||||
|
{0, 0xD, 0x1, 0x5, 0x4, 0x47, 7},
|
||||||
|
{0, 0xD, 0x1, 0xD, 0x8, 0x07, 7},
|
||||||
|
{0, 0xE, 0x0, 0x0, 0x0, 0x7B, 7},
|
||||||
|
{0, 0xE, 0x1, 0x2, 0x2, 0x4B, 7},
|
||||||
|
{0, 0xE, 0x1, 0xA, 0x8, 0x05, 6},
|
||||||
|
{0, 0xE, 0x1, 0xE, 0x4, 0x3B, 7},
|
||||||
|
{0, 0xF, 0x0, 0x0, 0x0, 0x5B, 7},
|
||||||
|
{0, 0xF, 0x1, 0x9, 0x9, 0x1B, 7},
|
||||||
|
{0, 0xF, 0x1, 0xB, 0xA, 0x6B, 7},
|
||||||
|
{0, 0xF, 0x1, 0xF, 0xC, 0x2B, 7},
|
||||||
|
{0, 0xF, 0x1, 0xF, 0x8, 0x39, 6},
|
||||||
|
{0, 0xF, 0x1, 0xE, 0x6, 0x73, 7},
|
||||||
|
{0, 0xF, 0x1, 0xE, 0x2, 0x19, 6},
|
||||||
|
{0, 0xF, 0x1, 0xF, 0x5, 0x0B, 7},
|
||||||
|
{0, 0xF, 0x1, 0xF, 0x4, 0x29, 6},
|
||||||
|
{0, 0xF, 0x1, 0xF, 0x1, 0x33, 7},
|
||||||
|
{1, 0x0, 0x0, 0x0, 0x0, 0x00, 2},
|
||||||
|
{1, 0x1, 0x0, 0x0, 0x0, 0x0E, 4},
|
||||||
|
{1, 0x1, 0x1, 0x1, 0x1, 0x1F, 7},
|
||||||
|
{1, 0x2, 0x0, 0x0, 0x0, 0x06, 4},
|
||||||
|
{1, 0x2, 0x1, 0x2, 0x2, 0x3B, 6},
|
||||||
|
{1, 0x3, 0x0, 0x0, 0x0, 0x1B, 6},
|
||||||
|
{1, 0x3, 0x1, 0x0, 0x0, 0x3D, 6},
|
||||||
|
{1, 0x4, 0x0, 0x0, 0x0, 0x0A, 4},
|
||||||
|
{1, 0x4, 0x1, 0x4, 0x4, 0x2B, 6},
|
||||||
|
{1, 0x5, 0x0, 0x0, 0x0, 0x0B, 6},
|
||||||
|
{1, 0x5, 0x1, 0x4, 0x4, 0x33, 6},
|
||||||
|
{1, 0x5, 0x1, 0x5, 0x1, 0x7F, 7},
|
||||||
|
{1, 0x6, 0x0, 0x0, 0x0, 0x13, 6},
|
||||||
|
{1, 0x6, 0x1, 0x0, 0x0, 0x23, 6},
|
||||||
|
{1, 0x7, 0x0, 0x0, 0x0, 0x3F, 7},
|
||||||
|
{1, 0x7, 0x1, 0x2, 0x2, 0x5F, 7},
|
||||||
|
{1, 0x7, 0x1, 0x2, 0x0, 0x03, 6},
|
||||||
|
{1, 0x8, 0x0, 0x0, 0x0, 0x02, 4},
|
||||||
|
{1, 0x8, 0x1, 0x8, 0x8, 0x1D, 6},
|
||||||
|
{1, 0x9, 0x0, 0x0, 0x0, 0x2D, 6},
|
||||||
|
{1, 0x9, 0x1, 0x0, 0x0, 0x0D, 6},
|
||||||
|
{1, 0xA, 0x0, 0x0, 0x0, 0x35, 6},
|
||||||
|
{1, 0xA, 0x1, 0x8, 0x8, 0x15, 6},
|
||||||
|
{1, 0xA, 0x1, 0xA, 0x2, 0x6F, 7},
|
||||||
|
{1, 0xB, 0x0, 0x0, 0x0, 0x2F, 7},
|
||||||
|
{1, 0xB, 0x1, 0x1, 0x1, 0x4F, 7},
|
||||||
|
{1, 0xB, 0x1, 0x1, 0x0, 0x11, 6},
|
||||||
|
{1, 0xC, 0x0, 0x0, 0x0, 0x01, 5},
|
||||||
|
{1, 0xC, 0x1, 0x8, 0x8, 0x25, 6},
|
||||||
|
{1, 0xC, 0x1, 0xC, 0x4, 0x05, 6},
|
||||||
|
{1, 0xD, 0x0, 0x0, 0x0, 0x0F, 7},
|
||||||
|
{1, 0xD, 0x1, 0x1, 0x1, 0x17, 7},
|
||||||
|
{1, 0xD, 0x1, 0x5, 0x4, 0x39, 6},
|
||||||
|
{1, 0xD, 0x1, 0xD, 0x8, 0x77, 7},
|
||||||
|
{1, 0xE, 0x0, 0x0, 0x0, 0x37, 7},
|
||||||
|
{1, 0xE, 0x1, 0x2, 0x2, 0x57, 7},
|
||||||
|
{1, 0xE, 0x1, 0xA, 0x8, 0x19, 6},
|
||||||
|
{1, 0xE, 0x1, 0xE, 0x4, 0x67, 7},
|
||||||
|
{1, 0xF, 0x0, 0x0, 0x0, 0x07, 7},
|
||||||
|
{1, 0xF, 0x1, 0xB, 0x8, 0x29, 6},
|
||||||
|
{1, 0xF, 0x1, 0x8, 0x8, 0x27, 7},
|
||||||
|
{1, 0xF, 0x1, 0xA, 0x2, 0x09, 6},
|
||||||
|
{1, 0xF, 0x1, 0xE, 0x4, 0x31, 6},
|
||||||
|
{1, 0xF, 0x1, 0xF, 0x1, 0x47, 7},
|
||||||
|
{2, 0x0, 0x0, 0x0, 0x0, 0x00, 2},
|
||||||
|
{2, 0x1, 0x0, 0x0, 0x0, 0x0E, 4},
|
||||||
|
{2, 0x1, 0x1, 0x1, 0x1, 0x1B, 6},
|
||||||
|
{2, 0x2, 0x0, 0x0, 0x0, 0x06, 4},
|
||||||
|
{2, 0x2, 0x1, 0x2, 0x2, 0x3F, 7},
|
||||||
|
{2, 0x3, 0x0, 0x0, 0x0, 0x2B, 6},
|
||||||
|
{2, 0x3, 0x1, 0x1, 0x1, 0x33, 6},
|
||||||
|
{2, 0x3, 0x1, 0x3, 0x2, 0x7F, 7},
|
||||||
|
{2, 0x4, 0x0, 0x0, 0x0, 0x0A, 4},
|
||||||
|
{2, 0x4, 0x1, 0x4, 0x4, 0x0B, 6},
|
||||||
|
{2, 0x5, 0x0, 0x0, 0x0, 0x01, 5},
|
||||||
|
{2, 0x5, 0x1, 0x5, 0x5, 0x2F, 7},
|
||||||
|
{2, 0x5, 0x1, 0x5, 0x1, 0x13, 6},
|
||||||
|
{2, 0x5, 0x1, 0x5, 0x4, 0x23, 6},
|
||||||
|
{2, 0x6, 0x0, 0x0, 0x0, 0x03, 6},
|
||||||
|
{2, 0x6, 0x1, 0x0, 0x0, 0x5F, 7},
|
||||||
|
{2, 0x7, 0x0, 0x0, 0x0, 0x1F, 7},
|
||||||
|
{2, 0x7, 0x1, 0x2, 0x2, 0x6F, 7},
|
||||||
|
{2, 0x7, 0x1, 0x3, 0x1, 0x11, 6},
|
||||||
|
{2, 0x7, 0x1, 0x7, 0x4, 0x37, 7},
|
||||||
|
{2, 0x8, 0x0, 0x0, 0x0, 0x02, 4},
|
||||||
|
{2, 0x8, 0x1, 0x8, 0x8, 0x4F, 7},
|
||||||
|
{2, 0x9, 0x0, 0x0, 0x0, 0x3D, 6},
|
||||||
|
{2, 0x9, 0x1, 0x0, 0x0, 0x1D, 6},
|
||||||
|
{2, 0xA, 0x0, 0x0, 0x0, 0x2D, 6},
|
||||||
|
{2, 0xA, 0x1, 0x0, 0x0, 0x0D, 6},
|
||||||
|
{2, 0xB, 0x0, 0x0, 0x0, 0x0F, 7},
|
||||||
|
{2, 0xB, 0x1, 0x2, 0x2, 0x77, 7},
|
||||||
|
{2, 0xB, 0x1, 0x2, 0x0, 0x35, 6},
|
||||||
|
{2, 0xC, 0x0, 0x0, 0x0, 0x15, 6},
|
||||||
|
{2, 0xC, 0x1, 0x4, 0x4, 0x25, 6},
|
||||||
|
{2, 0xC, 0x1, 0xC, 0x8, 0x57, 7},
|
||||||
|
{2, 0xD, 0x0, 0x0, 0x0, 0x17, 7},
|
||||||
|
{2, 0xD, 0x1, 0x8, 0x8, 0x05, 6},
|
||||||
|
{2, 0xD, 0x1, 0xC, 0x4, 0x39, 6},
|
||||||
|
{2, 0xD, 0x1, 0xD, 0x1, 0x67, 7},
|
||||||
|
{2, 0xE, 0x0, 0x0, 0x0, 0x27, 7},
|
||||||
|
{2, 0xE, 0x1, 0x2, 0x2, 0x7B, 7},
|
||||||
|
{2, 0xE, 0x1, 0x2, 0x0, 0x19, 6},
|
||||||
|
{2, 0xF, 0x0, 0x0, 0x0, 0x47, 7},
|
||||||
|
{2, 0xF, 0x1, 0xF, 0x1, 0x29, 6},
|
||||||
|
{2, 0xF, 0x1, 0x1, 0x1, 0x09, 6},
|
||||||
|
{2, 0xF, 0x1, 0x3, 0x2, 0x07, 7},
|
||||||
|
{2, 0xF, 0x1, 0x7, 0x4, 0x31, 6},
|
||||||
|
{2, 0xF, 0x1, 0xF, 0x8, 0x3B, 7},
|
||||||
|
{3, 0x0, 0x0, 0x0, 0x0, 0x00, 3},
|
||||||
|
{3, 0x1, 0x0, 0x0, 0x0, 0x04, 4},
|
||||||
|
{3, 0x1, 0x1, 0x1, 0x1, 0x3D, 6},
|
||||||
|
{3, 0x2, 0x0, 0x0, 0x0, 0x0C, 5},
|
||||||
|
{3, 0x2, 0x1, 0x2, 0x2, 0x4F, 7},
|
||||||
|
{3, 0x3, 0x0, 0x0, 0x0, 0x1D, 6},
|
||||||
|
{3, 0x3, 0x1, 0x1, 0x1, 0x05, 6},
|
||||||
|
{3, 0x3, 0x1, 0x3, 0x2, 0x7F, 7},
|
||||||
|
{3, 0x4, 0x0, 0x0, 0x0, 0x16, 5},
|
||||||
|
{3, 0x4, 0x1, 0x4, 0x4, 0x2D, 6},
|
||||||
|
{3, 0x5, 0x0, 0x0, 0x0, 0x06, 5},
|
||||||
|
{3, 0x5, 0x1, 0x5, 0x5, 0x1A, 5},
|
||||||
|
{3, 0x5, 0x1, 0x5, 0x1, 0x0D, 6},
|
||||||
|
{3, 0x5, 0x1, 0x5, 0x4, 0x35, 6},
|
||||||
|
{3, 0x6, 0x0, 0x0, 0x0, 0x3F, 7},
|
||||||
|
{3, 0x6, 0x1, 0x4, 0x4, 0x5F, 7},
|
||||||
|
{3, 0x6, 0x1, 0x6, 0x2, 0x1F, 7},
|
||||||
|
{3, 0x7, 0x0, 0x0, 0x0, 0x6F, 7},
|
||||||
|
{3, 0x7, 0x1, 0x6, 0x6, 0x2F, 7},
|
||||||
|
{3, 0x7, 0x1, 0x6, 0x4, 0x15, 6},
|
||||||
|
{3, 0x7, 0x1, 0x7, 0x3, 0x77, 7},
|
||||||
|
{3, 0x7, 0x1, 0x7, 0x1, 0x25, 6},
|
||||||
|
{3, 0x7, 0x1, 0x7, 0x2, 0x0F, 7},
|
||||||
|
{3, 0x8, 0x0, 0x0, 0x0, 0x0A, 5},
|
||||||
|
{3, 0x8, 0x1, 0x8, 0x8, 0x07, 7},
|
||||||
|
{3, 0x9, 0x0, 0x0, 0x0, 0x39, 6},
|
||||||
|
{3, 0x9, 0x1, 0x1, 0x1, 0x37, 7},
|
||||||
|
{3, 0x9, 0x1, 0x9, 0x8, 0x57, 7},
|
||||||
|
{3, 0xA, 0x0, 0x0, 0x0, 0x19, 6},
|
||||||
|
{3, 0xA, 0x1, 0x8, 0x8, 0x29, 6},
|
||||||
|
{3, 0xA, 0x1, 0xA, 0x2, 0x17, 7},
|
||||||
|
{3, 0xB, 0x0, 0x0, 0x0, 0x67, 7},
|
||||||
|
{3, 0xB, 0x1, 0xB, 0x1, 0x27, 7},
|
||||||
|
{3, 0xB, 0x1, 0x1, 0x1, 0x47, 7},
|
||||||
|
{3, 0xB, 0x1, 0x3, 0x2, 0x09, 6},
|
||||||
|
{3, 0xB, 0x1, 0xB, 0x8, 0x7B, 7},
|
||||||
|
{3, 0xC, 0x0, 0x0, 0x0, 0x31, 6},
|
||||||
|
{3, 0xC, 0x1, 0x4, 0x4, 0x11, 6},
|
||||||
|
{3, 0xC, 0x1, 0xC, 0x8, 0x3B, 7},
|
||||||
|
{3, 0xD, 0x0, 0x0, 0x0, 0x5B, 7},
|
||||||
|
{3, 0xD, 0x1, 0x9, 0x9, 0x1B, 7},
|
||||||
|
{3, 0xD, 0x1, 0xD, 0x5, 0x2B, 7},
|
||||||
|
{3, 0xD, 0x1, 0xD, 0x1, 0x21, 6},
|
||||||
|
{3, 0xD, 0x1, 0xD, 0xC, 0x6B, 7},
|
||||||
|
{3, 0xD, 0x1, 0xD, 0x4, 0x01, 6},
|
||||||
|
{3, 0xD, 0x1, 0xD, 0x8, 0x4B, 7},
|
||||||
|
{3, 0xE, 0x0, 0x0, 0x0, 0x0B, 7},
|
||||||
|
{3, 0xE, 0x1, 0xE, 0x4, 0x73, 7},
|
||||||
|
{3, 0xE, 0x1, 0x4, 0x4, 0x13, 7},
|
||||||
|
{3, 0xE, 0x1, 0xC, 0x8, 0x3E, 6},
|
||||||
|
{3, 0xE, 0x1, 0xE, 0x2, 0x33, 7},
|
||||||
|
{3, 0xF, 0x0, 0x0, 0x0, 0x53, 7},
|
||||||
|
{3, 0xF, 0x1, 0xA, 0xA, 0x0E, 6},
|
||||||
|
{3, 0xF, 0x1, 0xB, 0x9, 0x63, 7},
|
||||||
|
{3, 0xF, 0x1, 0xF, 0xC, 0x03, 7},
|
||||||
|
{3, 0xF, 0x1, 0xF, 0x8, 0x12, 5},
|
||||||
|
{3, 0xF, 0x1, 0xE, 0x6, 0x23, 7},
|
||||||
|
{3, 0xF, 0x1, 0xF, 0x5, 0x1E, 6},
|
||||||
|
{3, 0xF, 0x1, 0xF, 0x4, 0x02, 5},
|
||||||
|
{3, 0xF, 0x1, 0xF, 0x3, 0x43, 7},
|
||||||
|
{3, 0xF, 0x1, 0xF, 0x1, 0x1C, 5},
|
||||||
|
{3, 0xF, 0x1, 0xF, 0x2, 0x2E, 6},
|
||||||
|
{4, 0x0, 0x0, 0x0, 0x0, 0x00, 2},
|
||||||
|
{4, 0x1, 0x0, 0x0, 0x0, 0x0E, 4},
|
||||||
|
{4, 0x1, 0x1, 0x1, 0x1, 0x3F, 7},
|
||||||
|
{4, 0x2, 0x0, 0x0, 0x0, 0x06, 4},
|
||||||
|
{4, 0x2, 0x1, 0x2, 0x2, 0x1B, 6},
|
||||||
|
{4, 0x3, 0x0, 0x0, 0x0, 0x2B, 6},
|
||||||
|
{4, 0x3, 0x1, 0x2, 0x2, 0x3D, 6},
|
||||||
|
{4, 0x3, 0x1, 0x3, 0x1, 0x7F, 7},
|
||||||
|
{4, 0x4, 0x0, 0x0, 0x0, 0x0A, 4},
|
||||||
|
{4, 0x4, 0x1, 0x4, 0x4, 0x5F, 7},
|
||||||
|
{4, 0x5, 0x0, 0x0, 0x0, 0x0B, 6},
|
||||||
|
{4, 0x5, 0x1, 0x0, 0x0, 0x33, 6},
|
||||||
|
{4, 0x6, 0x0, 0x0, 0x0, 0x13, 6},
|
||||||
|
{4, 0x6, 0x1, 0x0, 0x0, 0x23, 6},
|
||||||
|
{4, 0x7, 0x0, 0x0, 0x0, 0x1F, 7},
|
||||||
|
{4, 0x7, 0x1, 0x4, 0x4, 0x6F, 7},
|
||||||
|
{4, 0x7, 0x1, 0x4, 0x0, 0x03, 6},
|
||||||
|
{4, 0x8, 0x0, 0x0, 0x0, 0x02, 4},
|
||||||
|
{4, 0x8, 0x1, 0x8, 0x8, 0x1D, 6},
|
||||||
|
{4, 0x9, 0x0, 0x0, 0x0, 0x11, 6},
|
||||||
|
{4, 0x9, 0x1, 0x0, 0x0, 0x77, 7},
|
||||||
|
{4, 0xA, 0x0, 0x0, 0x0, 0x01, 5},
|
||||||
|
{4, 0xA, 0x1, 0xA, 0xA, 0x2F, 7},
|
||||||
|
{4, 0xA, 0x1, 0xA, 0x2, 0x2D, 6},
|
||||||
|
{4, 0xA, 0x1, 0xA, 0x8, 0x0D, 6},
|
||||||
|
{4, 0xB, 0x0, 0x0, 0x0, 0x4F, 7},
|
||||||
|
{4, 0xB, 0x1, 0xB, 0x2, 0x0F, 7},
|
||||||
|
{4, 0xB, 0x1, 0x0, 0x0, 0x35, 6},
|
||||||
|
{4, 0xC, 0x0, 0x0, 0x0, 0x15, 6},
|
||||||
|
{4, 0xC, 0x1, 0x8, 0x8, 0x25, 6},
|
||||||
|
{4, 0xC, 0x1, 0xC, 0x4, 0x37, 7},
|
||||||
|
{4, 0xD, 0x0, 0x0, 0x0, 0x57, 7},
|
||||||
|
{4, 0xD, 0x1, 0x1, 0x1, 0x07, 7},
|
||||||
|
{4, 0xD, 0x1, 0x1, 0x0, 0x05, 6},
|
||||||
|
{4, 0xE, 0x0, 0x0, 0x0, 0x17, 7},
|
||||||
|
{4, 0xE, 0x1, 0x4, 0x4, 0x39, 6},
|
||||||
|
{4, 0xE, 0x1, 0xC, 0x8, 0x19, 6},
|
||||||
|
{4, 0xE, 0x1, 0xE, 0x2, 0x67, 7},
|
||||||
|
{4, 0xF, 0x0, 0x0, 0x0, 0x27, 7},
|
||||||
|
{4, 0xF, 0x1, 0x9, 0x9, 0x47, 7},
|
||||||
|
{4, 0xF, 0x1, 0x9, 0x1, 0x29, 6},
|
||||||
|
{4, 0xF, 0x1, 0x7, 0x6, 0x7B, 7},
|
||||||
|
{4, 0xF, 0x1, 0x7, 0x2, 0x09, 6},
|
||||||
|
{4, 0xF, 0x1, 0xB, 0x8, 0x31, 6},
|
||||||
|
{4, 0xF, 0x1, 0xF, 0x4, 0x3B, 7},
|
||||||
|
{5, 0x0, 0x0, 0x0, 0x0, 0x00, 3},
|
||||||
|
{5, 0x1, 0x0, 0x0, 0x0, 0x1A, 5},
|
||||||
|
{5, 0x1, 0x1, 0x1, 0x1, 0x7F, 7},
|
||||||
|
{5, 0x2, 0x0, 0x0, 0x0, 0x0A, 5},
|
||||||
|
{5, 0x2, 0x1, 0x2, 0x2, 0x1D, 6},
|
||||||
|
{5, 0x3, 0x0, 0x0, 0x0, 0x2D, 6},
|
||||||
|
{5, 0x3, 0x1, 0x3, 0x3, 0x5F, 7},
|
||||||
|
{5, 0x3, 0x1, 0x3, 0x2, 0x39, 6},
|
||||||
|
{5, 0x3, 0x1, 0x3, 0x1, 0x3F, 7},
|
||||||
|
{5, 0x4, 0x0, 0x0, 0x0, 0x12, 5},
|
||||||
|
{5, 0x4, 0x1, 0x4, 0x4, 0x1F, 7},
|
||||||
|
{5, 0x5, 0x0, 0x0, 0x0, 0x0D, 6},
|
||||||
|
{5, 0x5, 0x1, 0x4, 0x4, 0x35, 6},
|
||||||
|
{5, 0x5, 0x1, 0x5, 0x1, 0x6F, 7},
|
||||||
|
{5, 0x6, 0x0, 0x0, 0x0, 0x15, 6},
|
||||||
|
{5, 0x6, 0x1, 0x2, 0x2, 0x25, 6},
|
||||||
|
{5, 0x6, 0x1, 0x6, 0x4, 0x2F, 7},
|
||||||
|
{5, 0x7, 0x0, 0x0, 0x0, 0x4F, 7},
|
||||||
|
{5, 0x7, 0x1, 0x6, 0x6, 0x57, 7},
|
||||||
|
{5, 0x7, 0x1, 0x6, 0x4, 0x05, 6},
|
||||||
|
{5, 0x7, 0x1, 0x7, 0x3, 0x0F, 7},
|
||||||
|
{5, 0x7, 0x1, 0x7, 0x2, 0x77, 7},
|
||||||
|
{5, 0x7, 0x1, 0x7, 0x1, 0x37, 7},
|
||||||
|
{5, 0x8, 0x0, 0x0, 0x0, 0x02, 5},
|
||||||
|
{5, 0x8, 0x1, 0x8, 0x8, 0x19, 6},
|
||||||
|
{5, 0x9, 0x0, 0x0, 0x0, 0x26, 6},
|
||||||
|
{5, 0x9, 0x1, 0x8, 0x8, 0x17, 7},
|
||||||
|
{5, 0x9, 0x1, 0x9, 0x1, 0x67, 7},
|
||||||
|
{5, 0xA, 0x0, 0x0, 0x0, 0x1C, 5},
|
||||||
|
{5, 0xA, 0x1, 0xA, 0xA, 0x29, 6},
|
||||||
|
{5, 0xA, 0x1, 0xA, 0x2, 0x09, 6},
|
||||||
|
{5, 0xA, 0x1, 0xA, 0x8, 0x31, 6},
|
||||||
|
{5, 0xB, 0x0, 0x0, 0x0, 0x27, 7},
|
||||||
|
{5, 0xB, 0x1, 0x9, 0x9, 0x07, 7},
|
||||||
|
{5, 0xB, 0x1, 0x9, 0x8, 0x11, 6},
|
||||||
|
{5, 0xB, 0x1, 0xB, 0x3, 0x47, 7},
|
||||||
|
{5, 0xB, 0x1, 0xB, 0x2, 0x21, 6},
|
||||||
|
{5, 0xB, 0x1, 0xB, 0x1, 0x7B, 7},
|
||||||
|
{5, 0xC, 0x0, 0x0, 0x0, 0x01, 6},
|
||||||
|
{5, 0xC, 0x1, 0x8, 0x8, 0x3E, 6},
|
||||||
|
{5, 0xC, 0x1, 0xC, 0x4, 0x3B, 7},
|
||||||
|
{5, 0xD, 0x0, 0x0, 0x0, 0x5B, 7},
|
||||||
|
{5, 0xD, 0x1, 0x9, 0x9, 0x6B, 7},
|
||||||
|
{5, 0xD, 0x1, 0x9, 0x8, 0x1E, 6},
|
||||||
|
{5, 0xD, 0x1, 0xD, 0x5, 0x1B, 7},
|
||||||
|
{5, 0xD, 0x1, 0xD, 0x4, 0x2E, 6},
|
||||||
|
{5, 0xD, 0x1, 0xD, 0x1, 0x2B, 7},
|
||||||
|
{5, 0xE, 0x0, 0x0, 0x0, 0x4B, 7},
|
||||||
|
{5, 0xE, 0x1, 0x6, 0x6, 0x0B, 7},
|
||||||
|
{5, 0xE, 0x1, 0xE, 0xA, 0x33, 7},
|
||||||
|
{5, 0xE, 0x1, 0xE, 0x2, 0x0E, 6},
|
||||||
|
{5, 0xE, 0x1, 0xE, 0xC, 0x73, 7},
|
||||||
|
{5, 0xE, 0x1, 0xE, 0x8, 0x36, 6},
|
||||||
|
{5, 0xE, 0x1, 0xE, 0x4, 0x53, 7},
|
||||||
|
{5, 0xF, 0x0, 0x0, 0x0, 0x13, 7},
|
||||||
|
{5, 0xF, 0x1, 0x7, 0x7, 0x43, 7},
|
||||||
|
{5, 0xF, 0x1, 0x7, 0x6, 0x16, 6},
|
||||||
|
{5, 0xF, 0x1, 0x7, 0x5, 0x63, 7},
|
||||||
|
{5, 0xF, 0x1, 0xF, 0xC, 0x23, 7},
|
||||||
|
{5, 0xF, 0x1, 0xF, 0x4, 0x0C, 5},
|
||||||
|
{5, 0xF, 0x1, 0xD, 0x9, 0x03, 7},
|
||||||
|
{5, 0xF, 0x1, 0xF, 0xA, 0x3D, 7},
|
||||||
|
{5, 0xF, 0x1, 0xF, 0x8, 0x14, 5},
|
||||||
|
{5, 0xF, 0x1, 0xF, 0x3, 0x7D, 7},
|
||||||
|
{5, 0xF, 0x1, 0xF, 0x2, 0x04, 5},
|
||||||
|
{5, 0xF, 0x1, 0xF, 0x1, 0x06, 6},
|
||||||
|
{6, 0x0, 0x0, 0x0, 0x0, 0x00, 3},
|
||||||
|
{6, 0x1, 0x0, 0x0, 0x0, 0x04, 4},
|
||||||
|
{6, 0x1, 0x1, 0x1, 0x1, 0x03, 6},
|
||||||
|
{6, 0x2, 0x0, 0x0, 0x0, 0x0C, 5},
|
||||||
|
{6, 0x2, 0x1, 0x2, 0x2, 0x0D, 6},
|
||||||
|
{6, 0x3, 0x0, 0x0, 0x0, 0x1A, 5},
|
||||||
|
{6, 0x3, 0x1, 0x3, 0x3, 0x3D, 6},
|
||||||
|
{6, 0x3, 0x1, 0x3, 0x1, 0x1D, 6},
|
||||||
|
{6, 0x3, 0x1, 0x3, 0x2, 0x2D, 6},
|
||||||
|
{6, 0x4, 0x0, 0x0, 0x0, 0x0A, 5},
|
||||||
|
{6, 0x4, 0x1, 0x4, 0x4, 0x3F, 7},
|
||||||
|
{6, 0x5, 0x0, 0x0, 0x0, 0x35, 6},
|
||||||
|
{6, 0x5, 0x1, 0x1, 0x1, 0x15, 6},
|
||||||
|
{6, 0x5, 0x1, 0x5, 0x4, 0x7F, 7},
|
||||||
|
{6, 0x6, 0x0, 0x0, 0x0, 0x25, 6},
|
||||||
|
{6, 0x6, 0x1, 0x2, 0x2, 0x5F, 7},
|
||||||
|
{6, 0x6, 0x1, 0x6, 0x4, 0x1F, 7},
|
||||||
|
{6, 0x7, 0x0, 0x0, 0x0, 0x6F, 7},
|
||||||
|
{6, 0x7, 0x1, 0x6, 0x6, 0x4F, 7},
|
||||||
|
{6, 0x7, 0x1, 0x6, 0x4, 0x05, 6},
|
||||||
|
{6, 0x7, 0x1, 0x7, 0x3, 0x2F, 7},
|
||||||
|
{6, 0x7, 0x1, 0x7, 0x1, 0x36, 6},
|
||||||
|
{6, 0x7, 0x1, 0x7, 0x2, 0x77, 7},
|
||||||
|
{6, 0x8, 0x0, 0x0, 0x0, 0x12, 5},
|
||||||
|
{6, 0x8, 0x1, 0x8, 0x8, 0x0F, 7},
|
||||||
|
{6, 0x9, 0x0, 0x0, 0x0, 0x39, 6},
|
||||||
|
{6, 0x9, 0x1, 0x1, 0x1, 0x37, 7},
|
||||||
|
{6, 0x9, 0x1, 0x9, 0x8, 0x57, 7},
|
||||||
|
{6, 0xA, 0x0, 0x0, 0x0, 0x19, 6},
|
||||||
|
{6, 0xA, 0x1, 0x2, 0x2, 0x29, 6},
|
||||||
|
{6, 0xA, 0x1, 0xA, 0x8, 0x17, 7},
|
||||||
|
{6, 0xB, 0x0, 0x0, 0x0, 0x67, 7},
|
||||||
|
{6, 0xB, 0x1, 0x9, 0x9, 0x47, 7},
|
||||||
|
{6, 0xB, 0x1, 0x9, 0x1, 0x09, 6},
|
||||||
|
{6, 0xB, 0x1, 0xB, 0xA, 0x27, 7},
|
||||||
|
{6, 0xB, 0x1, 0xB, 0x2, 0x31, 6},
|
||||||
|
{6, 0xB, 0x1, 0xB, 0x8, 0x7B, 7},
|
||||||
|
{6, 0xC, 0x0, 0x0, 0x0, 0x11, 6},
|
||||||
|
{6, 0xC, 0x1, 0xC, 0xC, 0x07, 7},
|
||||||
|
{6, 0xC, 0x1, 0xC, 0x8, 0x21, 6},
|
||||||
|
{6, 0xC, 0x1, 0xC, 0x4, 0x3B, 7},
|
||||||
|
{6, 0xD, 0x0, 0x0, 0x0, 0x5B, 7},
|
||||||
|
{6, 0xD, 0x1, 0x5, 0x5, 0x33, 7},
|
||||||
|
{6, 0xD, 0x1, 0x5, 0x4, 0x01, 6},
|
||||||
|
{6, 0xD, 0x1, 0xC, 0x8, 0x1B, 7},
|
||||||
|
{6, 0xD, 0x1, 0xD, 0x1, 0x6B, 7},
|
||||||
|
{6, 0xE, 0x0, 0x0, 0x0, 0x2B, 7},
|
||||||
|
{6, 0xE, 0x1, 0xE, 0x2, 0x4B, 7},
|
||||||
|
{6, 0xE, 0x1, 0x2, 0x2, 0x0B, 7},
|
||||||
|
{6, 0xE, 0x1, 0xE, 0xC, 0x73, 7},
|
||||||
|
{6, 0xE, 0x1, 0xE, 0x8, 0x3E, 6},
|
||||||
|
{6, 0xE, 0x1, 0xE, 0x4, 0x53, 7},
|
||||||
|
{6, 0xF, 0x0, 0x0, 0x0, 0x13, 7},
|
||||||
|
{6, 0xF, 0x1, 0x6, 0x6, 0x1E, 6},
|
||||||
|
{6, 0xF, 0x1, 0xE, 0xA, 0x2E, 6},
|
||||||
|
{6, 0xF, 0x1, 0xF, 0x3, 0x0E, 6},
|
||||||
|
{6, 0xF, 0x1, 0xF, 0x2, 0x02, 5},
|
||||||
|
{6, 0xF, 0x1, 0xB, 0x9, 0x63, 7},
|
||||||
|
{6, 0xF, 0x1, 0xF, 0xC, 0x16, 6},
|
||||||
|
{6, 0xF, 0x1, 0xF, 0x8, 0x06, 6},
|
||||||
|
{6, 0xF, 0x1, 0xF, 0x5, 0x23, 7},
|
||||||
|
{6, 0xF, 0x1, 0xF, 0x1, 0x1C, 5},
|
||||||
|
{6, 0xF, 0x1, 0xF, 0x4, 0x26, 6},
|
||||||
|
{7, 0x0, 0x0, 0x0, 0x0, 0x12, 5},
|
||||||
|
{7, 0x1, 0x0, 0x0, 0x0, 0x05, 6},
|
||||||
|
{7, 0x1, 0x1, 0x1, 0x1, 0x7F, 7},
|
||||||
|
{7, 0x2, 0x0, 0x0, 0x0, 0x39, 6},
|
||||||
|
{7, 0x2, 0x1, 0x2, 0x2, 0x3F, 7},
|
||||||
|
{7, 0x3, 0x0, 0x0, 0x0, 0x5F, 7},
|
||||||
|
{7, 0x3, 0x1, 0x3, 0x3, 0x1F, 7},
|
||||||
|
{7, 0x3, 0x1, 0x3, 0x2, 0x6F, 7},
|
||||||
|
{7, 0x3, 0x1, 0x3, 0x1, 0x2F, 7},
|
||||||
|
{7, 0x4, 0x0, 0x0, 0x0, 0x4F, 7},
|
||||||
|
{7, 0x4, 0x1, 0x4, 0x4, 0x0F, 7},
|
||||||
|
{7, 0x5, 0x0, 0x0, 0x0, 0x57, 7},
|
||||||
|
{7, 0x5, 0x1, 0x1, 0x1, 0x19, 6},
|
||||||
|
{7, 0x5, 0x1, 0x5, 0x4, 0x77, 7},
|
||||||
|
{7, 0x6, 0x0, 0x0, 0x0, 0x37, 7},
|
||||||
|
{7, 0x6, 0x1, 0x0, 0x0, 0x29, 6},
|
||||||
|
{7, 0x7, 0x0, 0x0, 0x0, 0x17, 7},
|
||||||
|
{7, 0x7, 0x1, 0x6, 0x6, 0x67, 7},
|
||||||
|
{7, 0x7, 0x1, 0x7, 0x3, 0x27, 7},
|
||||||
|
{7, 0x7, 0x1, 0x7, 0x2, 0x47, 7},
|
||||||
|
{7, 0x7, 0x1, 0x7, 0x5, 0x1B, 7},
|
||||||
|
{7, 0x7, 0x1, 0x7, 0x1, 0x09, 6},
|
||||||
|
{7, 0x7, 0x1, 0x7, 0x4, 0x07, 7},
|
||||||
|
{7, 0x8, 0x0, 0x0, 0x0, 0x7B, 7},
|
||||||
|
{7, 0x8, 0x1, 0x8, 0x8, 0x3B, 7},
|
||||||
|
{7, 0x9, 0x0, 0x0, 0x0, 0x5B, 7},
|
||||||
|
{7, 0x9, 0x1, 0x0, 0x0, 0x31, 6},
|
||||||
|
{7, 0xA, 0x0, 0x0, 0x0, 0x53, 7},
|
||||||
|
{7, 0xA, 0x1, 0x2, 0x2, 0x11, 6},
|
||||||
|
{7, 0xA, 0x1, 0xA, 0x8, 0x6B, 7},
|
||||||
|
{7, 0xB, 0x0, 0x0, 0x0, 0x2B, 7},
|
||||||
|
{7, 0xB, 0x1, 0x9, 0x9, 0x4B, 7},
|
||||||
|
{7, 0xB, 0x1, 0xB, 0x3, 0x0B, 7},
|
||||||
|
{7, 0xB, 0x1, 0xB, 0x1, 0x73, 7},
|
||||||
|
{7, 0xB, 0x1, 0xB, 0xA, 0x33, 7},
|
||||||
|
{7, 0xB, 0x1, 0xB, 0x2, 0x21, 6},
|
||||||
|
{7, 0xB, 0x1, 0xB, 0x8, 0x13, 7},
|
||||||
|
{7, 0xC, 0x0, 0x0, 0x0, 0x63, 7},
|
||||||
|
{7, 0xC, 0x1, 0x8, 0x8, 0x23, 7},
|
||||||
|
{7, 0xC, 0x1, 0xC, 0x4, 0x43, 7},
|
||||||
|
{7, 0xD, 0x0, 0x0, 0x0, 0x03, 7},
|
||||||
|
{7, 0xD, 0x1, 0x9, 0x9, 0x7D, 7},
|
||||||
|
{7, 0xD, 0x1, 0xD, 0x5, 0x5D, 7},
|
||||||
|
{7, 0xD, 0x1, 0xD, 0x1, 0x01, 6},
|
||||||
|
{7, 0xD, 0x1, 0xD, 0xC, 0x3D, 7},
|
||||||
|
{7, 0xD, 0x1, 0xD, 0x4, 0x3E, 6},
|
||||||
|
{7, 0xD, 0x1, 0xD, 0x8, 0x1D, 7},
|
||||||
|
{7, 0xE, 0x0, 0x0, 0x0, 0x6D, 7},
|
||||||
|
{7, 0xE, 0x1, 0x6, 0x6, 0x2D, 7},
|
||||||
|
{7, 0xE, 0x1, 0xE, 0xA, 0x0D, 7},
|
||||||
|
{7, 0xE, 0x1, 0xE, 0x2, 0x1E, 6},
|
||||||
|
{7, 0xE, 0x1, 0xE, 0xC, 0x4D, 7},
|
||||||
|
{7, 0xE, 0x1, 0xE, 0x8, 0x0E, 6},
|
||||||
|
{7, 0xE, 0x1, 0xE, 0x4, 0x75, 7},
|
||||||
|
{7, 0xF, 0x0, 0x0, 0x0, 0x15, 7},
|
||||||
|
{7, 0xF, 0x1, 0xF, 0xF, 0x06, 5},
|
||||||
|
{7, 0xF, 0x1, 0xF, 0xD, 0x35, 7},
|
||||||
|
{7, 0xF, 0x1, 0xF, 0x7, 0x55, 7},
|
||||||
|
{7, 0xF, 0x1, 0xF, 0x5, 0x1A, 5},
|
||||||
|
{7, 0xF, 0x1, 0xF, 0xB, 0x25, 7},
|
||||||
|
{7, 0xF, 0x1, 0xF, 0x3, 0x0A, 5},
|
||||||
|
{7, 0xF, 0x1, 0xF, 0x9, 0x2E, 6},
|
||||||
|
{7, 0xF, 0x1, 0xF, 0x1, 0x00, 4},
|
||||||
|
{7, 0xF, 0x1, 0xF, 0xE, 0x65, 7},
|
||||||
|
{7, 0xF, 0x1, 0xF, 0x6, 0x36, 6},
|
||||||
|
{7, 0xF, 0x1, 0xF, 0xA, 0x02, 5},
|
||||||
|
{7, 0xF, 0x1, 0xF, 0x2, 0x0C, 4},
|
||||||
|
{7, 0xF, 0x1, 0xF, 0xC, 0x16, 6},
|
||||||
|
{7, 0xF, 0x1, 0xF, 0x8, 0x04, 4},
|
||||||
|
{7, 0xF, 0x1, 0xF, 0x4, 0x08, 4}
|
||||||
|
};
|
||||||
|
|
||||||
|
// nono-initial quad rows
|
||||||
|
static vlc_src_table_t tbl1[] = {
|
||||||
|
{0, 0x1, 0x0, 0x0, 0x0, 0x00, 3},
|
||||||
|
{0, 0x1, 0x1, 0x1, 0x1, 0x27, 6},
|
||||||
|
{0, 0x2, 0x0, 0x0, 0x0, 0x06, 3},
|
||||||
|
{0, 0x2, 0x1, 0x2, 0x2, 0x17, 6},
|
||||||
|
{0, 0x3, 0x0, 0x0, 0x0, 0x0D, 5},
|
||||||
|
{0, 0x3, 0x1, 0x0, 0x0, 0x3B, 6},
|
||||||
|
{0, 0x4, 0x0, 0x0, 0x0, 0x02, 3},
|
||||||
|
{0, 0x4, 0x1, 0x4, 0x4, 0x07, 6},
|
||||||
|
{0, 0x5, 0x0, 0x0, 0x0, 0x15, 5},
|
||||||
|
{0, 0x5, 0x1, 0x0, 0x0, 0x2B, 6},
|
||||||
|
{0, 0x6, 0x0, 0x0, 0x0, 0x01, 5},
|
||||||
|
{0, 0x6, 0x1, 0x0, 0x0, 0x7F, 7},
|
||||||
|
{0, 0x7, 0x0, 0x0, 0x0, 0x1F, 7},
|
||||||
|
{0, 0x7, 0x1, 0x0, 0x0, 0x1B, 6},
|
||||||
|
{0, 0x8, 0x0, 0x0, 0x0, 0x04, 3},
|
||||||
|
{0, 0x8, 0x1, 0x8, 0x8, 0x05, 5},
|
||||||
|
{0, 0x9, 0x0, 0x0, 0x0, 0x19, 5},
|
||||||
|
{0, 0x9, 0x1, 0x0, 0x0, 0x13, 6},
|
||||||
|
{0, 0xA, 0x0, 0x0, 0x0, 0x09, 5},
|
||||||
|
{0, 0xA, 0x1, 0x8, 0x8, 0x0B, 6},
|
||||||
|
{0, 0xA, 0x1, 0xA, 0x2, 0x3F, 7},
|
||||||
|
{0, 0xB, 0x0, 0x0, 0x0, 0x5F, 7},
|
||||||
|
{0, 0xB, 0x1, 0x0, 0x0, 0x33, 6},
|
||||||
|
{0, 0xC, 0x0, 0x0, 0x0, 0x11, 5},
|
||||||
|
{0, 0xC, 0x1, 0x8, 0x8, 0x23, 6},
|
||||||
|
{0, 0xC, 0x1, 0xC, 0x4, 0x6F, 7},
|
||||||
|
{0, 0xD, 0x0, 0x0, 0x0, 0x0F, 7},
|
||||||
|
{0, 0xD, 0x1, 0x0, 0x0, 0x03, 6},
|
||||||
|
{0, 0xE, 0x0, 0x0, 0x0, 0x2F, 7},
|
||||||
|
{0, 0xE, 0x1, 0x4, 0x4, 0x4F, 7},
|
||||||
|
{0, 0xE, 0x1, 0x4, 0x0, 0x3D, 6},
|
||||||
|
{0, 0xF, 0x0, 0x0, 0x0, 0x77, 7},
|
||||||
|
{0, 0xF, 0x1, 0x1, 0x1, 0x37, 7},
|
||||||
|
{0, 0xF, 0x1, 0x1, 0x0, 0x1D, 6},
|
||||||
|
{1, 0x0, 0x0, 0x0, 0x0, 0x00, 1},
|
||||||
|
{1, 0x1, 0x0, 0x0, 0x0, 0x05, 4},
|
||||||
|
{1, 0x1, 0x1, 0x1, 0x1, 0x7F, 7},
|
||||||
|
{1, 0x2, 0x0, 0x0, 0x0, 0x09, 4},
|
||||||
|
{1, 0x2, 0x1, 0x2, 0x2, 0x1F, 7},
|
||||||
|
{1, 0x3, 0x0, 0x0, 0x0, 0x1D, 5},
|
||||||
|
{1, 0x3, 0x1, 0x1, 0x1, 0x3F, 7},
|
||||||
|
{1, 0x3, 0x1, 0x3, 0x2, 0x5F, 7},
|
||||||
|
{1, 0x4, 0x0, 0x0, 0x0, 0x0D, 5},
|
||||||
|
{1, 0x4, 0x1, 0x4, 0x4, 0x37, 7},
|
||||||
|
{1, 0x5, 0x0, 0x0, 0x0, 0x03, 6},
|
||||||
|
{1, 0x5, 0x1, 0x0, 0x0, 0x6F, 7},
|
||||||
|
{1, 0x6, 0x0, 0x0, 0x0, 0x2F, 7},
|
||||||
|
{1, 0x6, 0x1, 0x0, 0x0, 0x4F, 7},
|
||||||
|
{1, 0x7, 0x0, 0x0, 0x0, 0x0F, 7},
|
||||||
|
{1, 0x7, 0x1, 0x0, 0x0, 0x77, 7},
|
||||||
|
{1, 0x8, 0x0, 0x0, 0x0, 0x01, 4},
|
||||||
|
{1, 0x8, 0x1, 0x8, 0x8, 0x17, 7},
|
||||||
|
{1, 0x9, 0x0, 0x0, 0x0, 0x0B, 6},
|
||||||
|
{1, 0x9, 0x1, 0x0, 0x0, 0x57, 7},
|
||||||
|
{1, 0xA, 0x0, 0x0, 0x0, 0x33, 6},
|
||||||
|
{1, 0xA, 0x1, 0x0, 0x0, 0x67, 7},
|
||||||
|
{1, 0xB, 0x0, 0x0, 0x0, 0x27, 7},
|
||||||
|
{1, 0xB, 0x1, 0x0, 0x0, 0x2B, 7},
|
||||||
|
{1, 0xC, 0x0, 0x0, 0x0, 0x13, 6},
|
||||||
|
{1, 0xC, 0x1, 0x0, 0x0, 0x47, 7},
|
||||||
|
{1, 0xD, 0x0, 0x0, 0x0, 0x07, 7},
|
||||||
|
{1, 0xD, 0x1, 0x0, 0x0, 0x7B, 7},
|
||||||
|
{1, 0xE, 0x0, 0x0, 0x0, 0x3B, 7},
|
||||||
|
{1, 0xE, 0x1, 0x0, 0x0, 0x5B, 7},
|
||||||
|
{1, 0xF, 0x0, 0x0, 0x0, 0x1B, 7},
|
||||||
|
{1, 0xF, 0x1, 0x4, 0x4, 0x6B, 7},
|
||||||
|
{1, 0xF, 0x1, 0x4, 0x0, 0x23, 6},
|
||||||
|
{2, 0x0, 0x0, 0x0, 0x0, 0x00, 1},
|
||||||
|
{2, 0x1, 0x0, 0x0, 0x0, 0x09, 4},
|
||||||
|
{2, 0x1, 0x1, 0x1, 0x1, 0x7F, 7},
|
||||||
|
{2, 0x2, 0x0, 0x0, 0x0, 0x01, 4},
|
||||||
|
{2, 0x2, 0x1, 0x2, 0x2, 0x23, 6},
|
||||||
|
{2, 0x3, 0x0, 0x0, 0x0, 0x3D, 6},
|
||||||
|
{2, 0x3, 0x1, 0x2, 0x2, 0x3F, 7},
|
||||||
|
{2, 0x3, 0x1, 0x3, 0x1, 0x1F, 7},
|
||||||
|
{2, 0x4, 0x0, 0x0, 0x0, 0x15, 5},
|
||||||
|
{2, 0x4, 0x1, 0x4, 0x4, 0x5F, 7},
|
||||||
|
{2, 0x5, 0x0, 0x0, 0x0, 0x03, 6},
|
||||||
|
{2, 0x5, 0x1, 0x0, 0x0, 0x6F, 7},
|
||||||
|
{2, 0x6, 0x0, 0x0, 0x0, 0x2F, 7},
|
||||||
|
{2, 0x6, 0x1, 0x0, 0x0, 0x4F, 7},
|
||||||
|
{2, 0x7, 0x0, 0x0, 0x0, 0x0F, 7},
|
||||||
|
{2, 0x7, 0x1, 0x0, 0x0, 0x17, 7},
|
||||||
|
{2, 0x8, 0x0, 0x0, 0x0, 0x05, 5},
|
||||||
|
{2, 0x8, 0x1, 0x8, 0x8, 0x77, 7},
|
||||||
|
{2, 0x9, 0x0, 0x0, 0x0, 0x37, 7},
|
||||||
|
{2, 0x9, 0x1, 0x0, 0x0, 0x57, 7},
|
||||||
|
{2, 0xA, 0x0, 0x0, 0x0, 0x1D, 6},
|
||||||
|
{2, 0xA, 0x1, 0xA, 0xA, 0x7B, 7},
|
||||||
|
{2, 0xA, 0x1, 0xA, 0x2, 0x2D, 6},
|
||||||
|
{2, 0xA, 0x1, 0xA, 0x8, 0x67, 7},
|
||||||
|
{2, 0xB, 0x0, 0x0, 0x0, 0x27, 7},
|
||||||
|
{2, 0xB, 0x1, 0xB, 0x2, 0x47, 7},
|
||||||
|
{2, 0xB, 0x1, 0x0, 0x0, 0x07, 7},
|
||||||
|
{2, 0xC, 0x0, 0x0, 0x0, 0x0D, 6},
|
||||||
|
{2, 0xC, 0x1, 0x0, 0x0, 0x3B, 7},
|
||||||
|
{2, 0xD, 0x0, 0x0, 0x0, 0x5B, 7},
|
||||||
|
{2, 0xD, 0x1, 0x0, 0x0, 0x1B, 7},
|
||||||
|
{2, 0xE, 0x0, 0x0, 0x0, 0x6B, 7},
|
||||||
|
{2, 0xE, 0x1, 0x4, 0x4, 0x2B, 7},
|
||||||
|
{2, 0xE, 0x1, 0x4, 0x0, 0x4B, 7},
|
||||||
|
{2, 0xF, 0x0, 0x0, 0x0, 0x0B, 7},
|
||||||
|
{2, 0xF, 0x1, 0x4, 0x4, 0x73, 7},
|
||||||
|
{2, 0xF, 0x1, 0x5, 0x1, 0x33, 7},
|
||||||
|
{2, 0xF, 0x1, 0x7, 0x2, 0x53, 7},
|
||||||
|
{2, 0xF, 0x1, 0xF, 0x8, 0x13, 7},
|
||||||
|
{3, 0x0, 0x0, 0x0, 0x0, 0x00, 2},
|
||||||
|
{3, 0x1, 0x0, 0x0, 0x0, 0x0A, 4},
|
||||||
|
{3, 0x1, 0x1, 0x1, 0x1, 0x0B, 6},
|
||||||
|
{3, 0x2, 0x0, 0x0, 0x0, 0x02, 4},
|
||||||
|
{3, 0x2, 0x1, 0x2, 0x2, 0x23, 6},
|
||||||
|
{3, 0x3, 0x0, 0x0, 0x0, 0x0E, 5},
|
||||||
|
{3, 0x3, 0x1, 0x3, 0x3, 0x7F, 7},
|
||||||
|
{3, 0x3, 0x1, 0x3, 0x2, 0x33, 6},
|
||||||
|
{3, 0x3, 0x1, 0x3, 0x1, 0x13, 6},
|
||||||
|
{3, 0x4, 0x0, 0x0, 0x0, 0x16, 5},
|
||||||
|
{3, 0x4, 0x1, 0x4, 0x4, 0x3F, 7},
|
||||||
|
{3, 0x5, 0x0, 0x0, 0x0, 0x03, 6},
|
||||||
|
{3, 0x5, 0x1, 0x1, 0x1, 0x3D, 6},
|
||||||
|
{3, 0x5, 0x1, 0x5, 0x4, 0x1F, 7},
|
||||||
|
{3, 0x6, 0x0, 0x0, 0x0, 0x1D, 6},
|
||||||
|
{3, 0x6, 0x1, 0x0, 0x0, 0x5F, 7},
|
||||||
|
{3, 0x7, 0x0, 0x0, 0x0, 0x2D, 6},
|
||||||
|
{3, 0x7, 0x1, 0x4, 0x4, 0x2F, 7},
|
||||||
|
{3, 0x7, 0x1, 0x5, 0x1, 0x1E, 6},
|
||||||
|
{3, 0x7, 0x1, 0x7, 0x2, 0x6F, 7},
|
||||||
|
{3, 0x8, 0x0, 0x0, 0x0, 0x06, 5},
|
||||||
|
{3, 0x8, 0x1, 0x8, 0x8, 0x4F, 7},
|
||||||
|
{3, 0x9, 0x0, 0x0, 0x0, 0x0D, 6},
|
||||||
|
{3, 0x9, 0x1, 0x0, 0x0, 0x35, 6},
|
||||||
|
{3, 0xA, 0x0, 0x0, 0x0, 0x15, 6},
|
||||||
|
{3, 0xA, 0x1, 0x2, 0x2, 0x25, 6},
|
||||||
|
{3, 0xA, 0x1, 0xA, 0x8, 0x0F, 7},
|
||||||
|
{3, 0xB, 0x0, 0x0, 0x0, 0x05, 6},
|
||||||
|
{3, 0xB, 0x1, 0x8, 0x8, 0x39, 6},
|
||||||
|
{3, 0xB, 0x1, 0xB, 0x3, 0x17, 7},
|
||||||
|
{3, 0xB, 0x1, 0xB, 0x2, 0x19, 6},
|
||||||
|
{3, 0xB, 0x1, 0xB, 0x1, 0x77, 7},
|
||||||
|
{3, 0xC, 0x0, 0x0, 0x0, 0x29, 6},
|
||||||
|
{3, 0xC, 0x1, 0x0, 0x0, 0x09, 6},
|
||||||
|
{3, 0xD, 0x0, 0x0, 0x0, 0x37, 7},
|
||||||
|
{3, 0xD, 0x1, 0x4, 0x4, 0x57, 7},
|
||||||
|
{3, 0xD, 0x1, 0x4, 0x0, 0x31, 6},
|
||||||
|
{3, 0xE, 0x0, 0x0, 0x0, 0x67, 7},
|
||||||
|
{3, 0xE, 0x1, 0x4, 0x4, 0x27, 7},
|
||||||
|
{3, 0xE, 0x1, 0xC, 0x8, 0x47, 7},
|
||||||
|
{3, 0xE, 0x1, 0xE, 0x2, 0x6B, 7},
|
||||||
|
{3, 0xF, 0x0, 0x0, 0x0, 0x11, 6},
|
||||||
|
{3, 0xF, 0x1, 0x6, 0x6, 0x07, 7},
|
||||||
|
{3, 0xF, 0x1, 0x7, 0x3, 0x7B, 7},
|
||||||
|
{3, 0xF, 0x1, 0xF, 0xA, 0x3B, 7},
|
||||||
|
{3, 0xF, 0x1, 0xF, 0x2, 0x21, 6},
|
||||||
|
{3, 0xF, 0x1, 0xF, 0x8, 0x01, 6},
|
||||||
|
{3, 0xF, 0x1, 0xA, 0x8, 0x5B, 7},
|
||||||
|
{3, 0xF, 0x1, 0xF, 0x5, 0x1B, 7},
|
||||||
|
{3, 0xF, 0x1, 0xF, 0x1, 0x3E, 6},
|
||||||
|
{3, 0xF, 0x1, 0xF, 0x4, 0x2B, 7},
|
||||||
|
{4, 0x0, 0x0, 0x0, 0x0, 0x00, 1},
|
||||||
|
{4, 0x1, 0x0, 0x0, 0x0, 0x0D, 5},
|
||||||
|
{4, 0x1, 0x1, 0x1, 0x1, 0x7F, 7},
|
||||||
|
{4, 0x2, 0x0, 0x0, 0x0, 0x15, 5},
|
||||||
|
{4, 0x2, 0x1, 0x2, 0x2, 0x3F, 7},
|
||||||
|
{4, 0x3, 0x0, 0x0, 0x0, 0x5F, 7},
|
||||||
|
{4, 0x3, 0x1, 0x0, 0x0, 0x6F, 7},
|
||||||
|
{4, 0x4, 0x0, 0x0, 0x0, 0x09, 4},
|
||||||
|
{4, 0x4, 0x1, 0x4, 0x4, 0x23, 6},
|
||||||
|
{4, 0x5, 0x0, 0x0, 0x0, 0x33, 6},
|
||||||
|
{4, 0x5, 0x1, 0x0, 0x0, 0x1F, 7},
|
||||||
|
{4, 0x6, 0x0, 0x0, 0x0, 0x13, 6},
|
||||||
|
{4, 0x6, 0x1, 0x0, 0x0, 0x2F, 7},
|
||||||
|
{4, 0x7, 0x0, 0x0, 0x0, 0x4F, 7},
|
||||||
|
{4, 0x7, 0x1, 0x0, 0x0, 0x57, 7},
|
||||||
|
{4, 0x8, 0x0, 0x0, 0x0, 0x01, 4},
|
||||||
|
{4, 0x8, 0x1, 0x8, 0x8, 0x0F, 7},
|
||||||
|
{4, 0x9, 0x0, 0x0, 0x0, 0x77, 7},
|
||||||
|
{4, 0x9, 0x1, 0x0, 0x0, 0x37, 7},
|
||||||
|
{4, 0xA, 0x0, 0x0, 0x0, 0x1D, 6},
|
||||||
|
{4, 0xA, 0x1, 0x0, 0x0, 0x17, 7},
|
||||||
|
{4, 0xB, 0x0, 0x0, 0x0, 0x67, 7},
|
||||||
|
{4, 0xB, 0x1, 0x0, 0x0, 0x6B, 7},
|
||||||
|
{4, 0xC, 0x0, 0x0, 0x0, 0x05, 5},
|
||||||
|
{4, 0xC, 0x1, 0xC, 0xC, 0x27, 7},
|
||||||
|
{4, 0xC, 0x1, 0xC, 0x8, 0x47, 7},
|
||||||
|
{4, 0xC, 0x1, 0xC, 0x4, 0x07, 7},
|
||||||
|
{4, 0xD, 0x0, 0x0, 0x0, 0x7B, 7},
|
||||||
|
{4, 0xD, 0x1, 0x0, 0x0, 0x3B, 7},
|
||||||
|
{4, 0xE, 0x0, 0x0, 0x0, 0x5B, 7},
|
||||||
|
{4, 0xE, 0x1, 0x2, 0x2, 0x1B, 7},
|
||||||
|
{4, 0xE, 0x1, 0x2, 0x0, 0x03, 6},
|
||||||
|
{4, 0xF, 0x0, 0x0, 0x0, 0x2B, 7},
|
||||||
|
{4, 0xF, 0x1, 0x1, 0x1, 0x4B, 7},
|
||||||
|
{4, 0xF, 0x1, 0x3, 0x2, 0x0B, 7},
|
||||||
|
{4, 0xF, 0x1, 0x3, 0x0, 0x3D, 6},
|
||||||
|
{5, 0x0, 0x0, 0x0, 0x0, 0x00, 2},
|
||||||
|
{5, 0x1, 0x0, 0x0, 0x0, 0x1E, 5},
|
||||||
|
{5, 0x1, 0x1, 0x1, 0x1, 0x3B, 6},
|
||||||
|
{5, 0x2, 0x0, 0x0, 0x0, 0x0A, 5},
|
||||||
|
{5, 0x2, 0x1, 0x2, 0x2, 0x3F, 7},
|
||||||
|
{5, 0x3, 0x0, 0x0, 0x0, 0x1B, 6},
|
||||||
|
{5, 0x3, 0x1, 0x0, 0x0, 0x0B, 6},
|
||||||
|
{5, 0x4, 0x0, 0x0, 0x0, 0x02, 4},
|
||||||
|
{5, 0x4, 0x1, 0x4, 0x4, 0x2B, 6},
|
||||||
|
{5, 0x5, 0x0, 0x0, 0x0, 0x0E, 5},
|
||||||
|
{5, 0x5, 0x1, 0x4, 0x4, 0x33, 6},
|
||||||
|
{5, 0x5, 0x1, 0x5, 0x1, 0x7F, 7},
|
||||||
|
{5, 0x6, 0x0, 0x0, 0x0, 0x13, 6},
|
||||||
|
{5, 0x6, 0x1, 0x0, 0x0, 0x6F, 7},
|
||||||
|
{5, 0x7, 0x0, 0x0, 0x0, 0x23, 6},
|
||||||
|
{5, 0x7, 0x1, 0x2, 0x2, 0x5F, 7},
|
||||||
|
{5, 0x7, 0x1, 0x2, 0x0, 0x15, 6},
|
||||||
|
{5, 0x8, 0x0, 0x0, 0x0, 0x16, 5},
|
||||||
|
{5, 0x8, 0x1, 0x8, 0x8, 0x03, 6},
|
||||||
|
{5, 0x9, 0x0, 0x0, 0x0, 0x3D, 6},
|
||||||
|
{5, 0x9, 0x1, 0x0, 0x0, 0x1F, 7},
|
||||||
|
{5, 0xA, 0x0, 0x0, 0x0, 0x1D, 6},
|
||||||
|
{5, 0xA, 0x1, 0x0, 0x0, 0x2D, 6},
|
||||||
|
{5, 0xB, 0x0, 0x0, 0x0, 0x0D, 6},
|
||||||
|
{5, 0xB, 0x1, 0x1, 0x1, 0x4F, 7},
|
||||||
|
{5, 0xB, 0x1, 0x1, 0x0, 0x35, 6},
|
||||||
|
{5, 0xC, 0x0, 0x0, 0x0, 0x06, 5},
|
||||||
|
{5, 0xC, 0x1, 0x4, 0x4, 0x25, 6},
|
||||||
|
{5, 0xC, 0x1, 0xC, 0x8, 0x2F, 7},
|
||||||
|
{5, 0xD, 0x0, 0x0, 0x0, 0x05, 6},
|
||||||
|
{5, 0xD, 0x1, 0x1, 0x1, 0x77, 7},
|
||||||
|
{5, 0xD, 0x1, 0x5, 0x4, 0x39, 6},
|
||||||
|
{5, 0xD, 0x1, 0xD, 0x8, 0x0F, 7},
|
||||||
|
{5, 0xE, 0x0, 0x0, 0x0, 0x19, 6},
|
||||||
|
{5, 0xE, 0x1, 0x2, 0x2, 0x57, 7},
|
||||||
|
{5, 0xE, 0x1, 0xA, 0x8, 0x01, 6},
|
||||||
|
{5, 0xE, 0x1, 0xE, 0x4, 0x37, 7},
|
||||||
|
{5, 0xF, 0x0, 0x0, 0x0, 0x1A, 5},
|
||||||
|
{5, 0xF, 0x1, 0x9, 0x9, 0x17, 7},
|
||||||
|
{5, 0xF, 0x1, 0xD, 0x5, 0x67, 7},
|
||||||
|
{5, 0xF, 0x1, 0xF, 0x3, 0x07, 7},
|
||||||
|
{5, 0xF, 0x1, 0xF, 0x1, 0x29, 6},
|
||||||
|
{5, 0xF, 0x1, 0x7, 0x6, 0x27, 7},
|
||||||
|
{5, 0xF, 0x1, 0xF, 0xC, 0x09, 6},
|
||||||
|
{5, 0xF, 0x1, 0xF, 0x4, 0x31, 6},
|
||||||
|
{5, 0xF, 0x1, 0xF, 0xA, 0x47, 7},
|
||||||
|
{5, 0xF, 0x1, 0xF, 0x8, 0x11, 6},
|
||||||
|
{5, 0xF, 0x1, 0xF, 0x2, 0x21, 6},
|
||||||
|
{6, 0x0, 0x0, 0x0, 0x0, 0x00, 3},
|
||||||
|
{6, 0x1, 0x0, 0x0, 0x0, 0x02, 4},
|
||||||
|
{6, 0x1, 0x1, 0x1, 0x1, 0x03, 6},
|
||||||
|
{6, 0x2, 0x0, 0x0, 0x0, 0x0C, 4},
|
||||||
|
{6, 0x2, 0x1, 0x2, 0x2, 0x3D, 6},
|
||||||
|
{6, 0x3, 0x0, 0x0, 0x0, 0x1D, 6},
|
||||||
|
{6, 0x3, 0x1, 0x2, 0x2, 0x0D, 6},
|
||||||
|
{6, 0x3, 0x1, 0x3, 0x1, 0x7F, 7},
|
||||||
|
{6, 0x4, 0x0, 0x0, 0x0, 0x04, 4},
|
||||||
|
{6, 0x4, 0x1, 0x4, 0x4, 0x2D, 6},
|
||||||
|
{6, 0x5, 0x0, 0x0, 0x0, 0x0A, 5},
|
||||||
|
{6, 0x5, 0x1, 0x4, 0x4, 0x35, 6},
|
||||||
|
{6, 0x5, 0x1, 0x5, 0x1, 0x2F, 7},
|
||||||
|
{6, 0x6, 0x0, 0x0, 0x0, 0x15, 6},
|
||||||
|
{6, 0x6, 0x1, 0x2, 0x2, 0x3F, 7},
|
||||||
|
{6, 0x6, 0x1, 0x6, 0x4, 0x5F, 7},
|
||||||
|
{6, 0x7, 0x0, 0x0, 0x0, 0x25, 6},
|
||||||
|
{6, 0x7, 0x1, 0x2, 0x2, 0x29, 6},
|
||||||
|
{6, 0x7, 0x1, 0x3, 0x1, 0x1F, 7},
|
||||||
|
{6, 0x7, 0x1, 0x7, 0x4, 0x6F, 7},
|
||||||
|
{6, 0x8, 0x0, 0x0, 0x0, 0x16, 5},
|
||||||
|
{6, 0x8, 0x1, 0x8, 0x8, 0x05, 6},
|
||||||
|
{6, 0x9, 0x0, 0x0, 0x0, 0x39, 6},
|
||||||
|
{6, 0x9, 0x1, 0x0, 0x0, 0x19, 6},
|
||||||
|
{6, 0xA, 0x0, 0x0, 0x0, 0x06, 5},
|
||||||
|
{6, 0xA, 0x1, 0xA, 0xA, 0x0F, 7},
|
||||||
|
{6, 0xA, 0x1, 0xA, 0x2, 0x09, 6},
|
||||||
|
{6, 0xA, 0x1, 0xA, 0x8, 0x4F, 7},
|
||||||
|
{6, 0xB, 0x0, 0x0, 0x0, 0x0E, 6},
|
||||||
|
{6, 0xB, 0x1, 0xB, 0x2, 0x77, 7},
|
||||||
|
{6, 0xB, 0x1, 0x2, 0x2, 0x37, 7},
|
||||||
|
{6, 0xB, 0x1, 0xA, 0x8, 0x57, 7},
|
||||||
|
{6, 0xB, 0x1, 0xB, 0x1, 0x47, 7},
|
||||||
|
{6, 0xC, 0x0, 0x0, 0x0, 0x1A, 5},
|
||||||
|
{6, 0xC, 0x1, 0xC, 0xC, 0x17, 7},
|
||||||
|
{6, 0xC, 0x1, 0xC, 0x8, 0x67, 7},
|
||||||
|
{6, 0xC, 0x1, 0xC, 0x4, 0x27, 7},
|
||||||
|
{6, 0xD, 0x0, 0x0, 0x0, 0x31, 6},
|
||||||
|
{6, 0xD, 0x1, 0xD, 0x4, 0x07, 7},
|
||||||
|
{6, 0xD, 0x1, 0x4, 0x4, 0x7B, 7},
|
||||||
|
{6, 0xD, 0x1, 0xC, 0x8, 0x3B, 7},
|
||||||
|
{6, 0xD, 0x1, 0xD, 0x1, 0x2B, 7},
|
||||||
|
{6, 0xE, 0x0, 0x0, 0x0, 0x11, 6},
|
||||||
|
{6, 0xE, 0x1, 0xE, 0x4, 0x5B, 7},
|
||||||
|
{6, 0xE, 0x1, 0x4, 0x4, 0x1B, 7},
|
||||||
|
{6, 0xE, 0x1, 0xE, 0xA, 0x6B, 7},
|
||||||
|
{6, 0xE, 0x1, 0xE, 0x8, 0x21, 6},
|
||||||
|
{6, 0xE, 0x1, 0xE, 0x2, 0x33, 7},
|
||||||
|
{6, 0xF, 0x0, 0x0, 0x0, 0x01, 6},
|
||||||
|
{6, 0xF, 0x1, 0x3, 0x3, 0x4B, 7},
|
||||||
|
{6, 0xF, 0x1, 0x7, 0x6, 0x0B, 7},
|
||||||
|
{6, 0xF, 0x1, 0xF, 0xA, 0x73, 7},
|
||||||
|
{6, 0xF, 0x1, 0xF, 0x2, 0x3E, 6},
|
||||||
|
{6, 0xF, 0x1, 0xB, 0x9, 0x53, 7},
|
||||||
|
{6, 0xF, 0x1, 0xF, 0xC, 0x63, 7},
|
||||||
|
{6, 0xF, 0x1, 0xF, 0x8, 0x1E, 6},
|
||||||
|
{6, 0xF, 0x1, 0xF, 0x5, 0x13, 7},
|
||||||
|
{6, 0xF, 0x1, 0xF, 0x4, 0x2E, 6},
|
||||||
|
{6, 0xF, 0x1, 0xF, 0x1, 0x23, 7},
|
||||||
|
{7, 0x0, 0x0, 0x0, 0x0, 0x04, 4},
|
||||||
|
{7, 0x1, 0x0, 0x0, 0x0, 0x33, 6},
|
||||||
|
{7, 0x1, 0x1, 0x1, 0x1, 0x13, 6},
|
||||||
|
{7, 0x2, 0x0, 0x0, 0x0, 0x23, 6},
|
||||||
|
{7, 0x2, 0x1, 0x2, 0x2, 0x7F, 7},
|
||||||
|
{7, 0x3, 0x0, 0x0, 0x0, 0x03, 6},
|
||||||
|
{7, 0x3, 0x1, 0x1, 0x1, 0x3F, 7},
|
||||||
|
{7, 0x3, 0x1, 0x3, 0x2, 0x6F, 7},
|
||||||
|
{7, 0x4, 0x0, 0x0, 0x0, 0x2D, 6},
|
||||||
|
{7, 0x4, 0x1, 0x4, 0x4, 0x5F, 7},
|
||||||
|
{7, 0x5, 0x0, 0x0, 0x0, 0x16, 5},
|
||||||
|
{7, 0x5, 0x1, 0x1, 0x1, 0x3D, 6},
|
||||||
|
{7, 0x5, 0x1, 0x5, 0x4, 0x1F, 7},
|
||||||
|
{7, 0x6, 0x0, 0x0, 0x0, 0x1D, 6},
|
||||||
|
{7, 0x6, 0x1, 0x0, 0x0, 0x77, 7},
|
||||||
|
{7, 0x7, 0x0, 0x0, 0x0, 0x06, 5},
|
||||||
|
{7, 0x7, 0x1, 0x7, 0x4, 0x2F, 7},
|
||||||
|
{7, 0x7, 0x1, 0x4, 0x4, 0x4F, 7},
|
||||||
|
{7, 0x7, 0x1, 0x7, 0x3, 0x0F, 7},
|
||||||
|
{7, 0x7, 0x1, 0x7, 0x1, 0x0D, 6},
|
||||||
|
{7, 0x7, 0x1, 0x7, 0x2, 0x57, 7},
|
||||||
|
{7, 0x8, 0x0, 0x0, 0x0, 0x35, 6},
|
||||||
|
{7, 0x8, 0x1, 0x8, 0x8, 0x37, 7},
|
||||||
|
{7, 0x9, 0x0, 0x0, 0x0, 0x15, 6},
|
||||||
|
{7, 0x9, 0x1, 0x0, 0x0, 0x27, 7},
|
||||||
|
{7, 0xA, 0x0, 0x0, 0x0, 0x25, 6},
|
||||||
|
{7, 0xA, 0x1, 0x0, 0x0, 0x29, 6},
|
||||||
|
{7, 0xB, 0x0, 0x0, 0x0, 0x1A, 5},
|
||||||
|
{7, 0xB, 0x1, 0xB, 0x1, 0x17, 7},
|
||||||
|
{7, 0xB, 0x1, 0x1, 0x1, 0x67, 7},
|
||||||
|
{7, 0xB, 0x1, 0x3, 0x2, 0x05, 6},
|
||||||
|
{7, 0xB, 0x1, 0xB, 0x8, 0x7B, 7},
|
||||||
|
{7, 0xC, 0x0, 0x0, 0x0, 0x39, 6},
|
||||||
|
{7, 0xC, 0x1, 0x0, 0x0, 0x19, 6},
|
||||||
|
{7, 0xD, 0x0, 0x0, 0x0, 0x0C, 5},
|
||||||
|
{7, 0xD, 0x1, 0xD, 0x1, 0x47, 7},
|
||||||
|
{7, 0xD, 0x1, 0x1, 0x1, 0x07, 7},
|
||||||
|
{7, 0xD, 0x1, 0x5, 0x4, 0x09, 6},
|
||||||
|
{7, 0xD, 0x1, 0xD, 0x8, 0x1B, 7},
|
||||||
|
{7, 0xE, 0x0, 0x0, 0x0, 0x31, 6},
|
||||||
|
{7, 0xE, 0x1, 0xE, 0x2, 0x3B, 7},
|
||||||
|
{7, 0xE, 0x1, 0x2, 0x2, 0x5B, 7},
|
||||||
|
{7, 0xE, 0x1, 0xA, 0x8, 0x3E, 6},
|
||||||
|
{7, 0xE, 0x1, 0xE, 0x4, 0x0B, 7},
|
||||||
|
{7, 0xF, 0x0, 0x0, 0x0, 0x00, 3},
|
||||||
|
{7, 0xF, 0x1, 0xF, 0xF, 0x6B, 7},
|
||||||
|
{7, 0xF, 0x1, 0xF, 0x7, 0x2B, 7},
|
||||||
|
{7, 0xF, 0x1, 0xF, 0xB, 0x4B, 7},
|
||||||
|
{7, 0xF, 0x1, 0xF, 0x3, 0x11, 6},
|
||||||
|
{7, 0xF, 0x1, 0x7, 0x6, 0x21, 6},
|
||||||
|
{7, 0xF, 0x1, 0xF, 0xA, 0x01, 6},
|
||||||
|
{7, 0xF, 0x1, 0xF, 0x2, 0x0A, 5},
|
||||||
|
{7, 0xF, 0x1, 0xB, 0x9, 0x1E, 6},
|
||||||
|
{7, 0xF, 0x1, 0xF, 0xC, 0x0E, 6},
|
||||||
|
{7, 0xF, 0x1, 0xF, 0x8, 0x12, 5},
|
||||||
|
{7, 0xF, 0x1, 0xF, 0x5, 0x2E, 6},
|
||||||
|
{7, 0xF, 0x1, 0xF, 0x1, 0x02, 5},
|
||||||
|
{7, 0xF, 0x1, 0xF, 0x4, 0x1C, 5}
|
||||||
|
};
|
||||||
|
|
||||||
|
//************************************************************************/
|
||||||
|
/** @defgroup vlc_decoding_tables_grp VLC decoding tables
|
||||||
|
* @{
|
||||||
|
* VLC tables to decode VLC codewords to these fields: (in order) \n
|
||||||
|
* \li \c cwd_len : 3bits -> the codeword length of the VLC codeword;
|
||||||
|
* the VLC cwd is in the LSB of bitstream \n
|
||||||
|
* \li \c u_off : 1bit -> u_offset, which is 1 if u value is not 0 \n
|
||||||
|
* \li \c rho : 4bits -> signficant samples within a quad \n
|
||||||
|
* \li \c e_1 : 4bits -> EMB e_1 \n
|
||||||
|
* \li \c e_k : 4bits -> EMB e_k \n
|
||||||
|
* \n
|
||||||
|
* The table index is 10 bits and composed of two parts: \n
|
||||||
|
* The 7 LSBs contain a codeword which might be shorter than 7 bits;
|
||||||
|
* this word is the next decoable bits in the bitstream. \n
|
||||||
|
* The 3 MSB is the context of for the codeword. \n
|
||||||
|
*/
|
||||||
|
|
||||||
|
/// @brief vlc_tbl0 contains decoding information for initial row of quads
|
||||||
|
int vlc_tbl0[1024] = { 0 };
|
||||||
|
/// @brief vlc_tbl1 contains decoding information for non-initial row of
|
||||||
|
/// quads
|
||||||
|
int vlc_tbl1[1024] = { 0 };
|
||||||
|
/// @}
|
||||||
|
|
||||||
|
//************************************************************************/
|
||||||
|
/** @ingroup vlc_decoding_tables_grp
|
||||||
|
* @brief Initializes vlc_tbl0 and vlc_tbl1 tables, from table0.h and
|
||||||
|
* table1.h
|
||||||
|
*/
|
||||||
|
OPJ_BOOL vlc_init_tables()
|
||||||
|
{
|
||||||
|
const OPJ_BOOL debug = OPJ_FALSE; //useful for checking
|
||||||
|
|
||||||
|
// number of entries in the table
|
||||||
|
size_t tbl0_size = sizeof(tbl0) / sizeof(vlc_src_table_t);
|
||||||
|
|
||||||
|
// number of entries in the table
|
||||||
|
size_t tbl1_size = sizeof(tbl1) / sizeof(vlc_src_table_t);
|
||||||
|
|
||||||
|
if (debug) {
|
||||||
|
memset(vlc_tbl0, 0, sizeof(vlc_tbl0)); //unnecessary
|
||||||
|
}
|
||||||
|
|
||||||
|
// this is to convert table entries into values for decoder look up
|
||||||
|
// There can be at most 1024 possibilites, not all of them are valid.
|
||||||
|
//
|
||||||
|
for (int i = 0; i < 1024; ++i) {
|
||||||
|
int cwd = i & 0x7F; // from i extract codeword
|
||||||
|
int c_q = i >> 7; // from i extract context
|
||||||
|
// See if this case exist in the table, if so then set the entry in
|
||||||
|
// vlc_tbl0
|
||||||
|
for (size_t j = 0; j < tbl0_size; ++j)
|
||||||
|
if (tbl0[j].c_q == c_q) // this is an and operation
|
||||||
|
if (tbl0[j].cwd == (cwd & ((1 << tbl0[j].cwd_len) - 1))) {
|
||||||
|
if (debug) {
|
||||||
|
assert(vlc_tbl0[i] == 0);
|
||||||
|
}
|
||||||
|
// Put this entry into the table
|
||||||
|
vlc_tbl0[i] = (tbl0[j].rho << 4) | (tbl0[j].u_off << 3)
|
||||||
|
| (tbl0[j].e_k << 12) | (tbl0[j].e_1 << 8) | tbl0[j].cwd_len;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (debug) {
|
||||||
|
memset(vlc_tbl1, 0, sizeof(vlc_tbl1)); //unnecessary
|
||||||
|
}
|
||||||
|
|
||||||
|
// this the same as above but for non-initial rows
|
||||||
|
for (int i = 0; i < 1024; ++i) {
|
||||||
|
int cwd = i & 0x7F; //7 bits
|
||||||
|
int c_q = i >> 7;
|
||||||
|
for (size_t j = 0; j < tbl1_size; ++j)
|
||||||
|
if (tbl1[j].c_q == c_q) // this is an and operation
|
||||||
|
if (tbl1[j].cwd == (cwd & ((1 << tbl1[j].cwd_len) - 1))) {
|
||||||
|
if (debug) {
|
||||||
|
assert(vlc_tbl1[i] == 0);
|
||||||
|
}
|
||||||
|
vlc_tbl1[i] = (tbl1[j].rho << 4) | (tbl1[j].u_off << 3)
|
||||||
|
| (tbl1[j].e_k << 12) | (tbl1[j].e_1 << 8) | tbl1[j].cwd_len;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return OPJ_TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
//************************************************************************/
|
||||||
|
/** @ingroup vlc_decoding_tables_grp
|
||||||
|
* @brief Initializes VLC tables vlc_tbl0 and vlc_tbl1
|
||||||
|
*/
|
||||||
|
OPJ_BOOL vlc_tables_initialized = OPJ_FALSE;
|
||||||
|
|
|
@ -0,0 +1,261 @@
|
||||||
|
static const OPJ_UINT16 vlc_tbl0[1024] = {
|
||||||
|
0x0023, 0x00a5, 0x0043, 0x0066, 0x0083, 0xa8ee, 0x0014, 0xd8df,
|
||||||
|
0x0023, 0x10be, 0x0043, 0xf5ff, 0x0083, 0x207e, 0x0055, 0x515f,
|
||||||
|
0x0023, 0x0035, 0x0043, 0x444e, 0x0083, 0xc4ce, 0x0014, 0xcccf,
|
||||||
|
0x0023, 0xe2fe, 0x0043, 0x99ff, 0x0083, 0x0096, 0x00c5, 0x313f,
|
||||||
|
0x0023, 0x00a5, 0x0043, 0x445e, 0x0083, 0xc8ce, 0x0014, 0x11df,
|
||||||
|
0x0023, 0xf4fe, 0x0043, 0xfcff, 0x0083, 0x009e, 0x0055, 0x0077,
|
||||||
|
0x0023, 0x0035, 0x0043, 0xf1ff, 0x0083, 0x88ae, 0x0014, 0x00b7,
|
||||||
|
0x0023, 0xf8fe, 0x0043, 0xe4ef, 0x0083, 0x888e, 0x00c5, 0x111f,
|
||||||
|
0x0023, 0x00a5, 0x0043, 0x0066, 0x0083, 0xa8ee, 0x0014, 0x54df,
|
||||||
|
0x0023, 0x10be, 0x0043, 0x22ef, 0x0083, 0x207e, 0x0055, 0x227f,
|
||||||
|
0x0023, 0x0035, 0x0043, 0x444e, 0x0083, 0xc4ce, 0x0014, 0x11bf,
|
||||||
|
0x0023, 0xe2fe, 0x0043, 0x00f7, 0x0083, 0x0096, 0x00c5, 0x223f,
|
||||||
|
0x0023, 0x00a5, 0x0043, 0x445e, 0x0083, 0xc8ce, 0x0014, 0x00d7,
|
||||||
|
0x0023, 0xf4fe, 0x0043, 0xbaff, 0x0083, 0x009e, 0x0055, 0x006f,
|
||||||
|
0x0023, 0x0035, 0x0043, 0xe6ff, 0x0083, 0x88ae, 0x0014, 0xa2af,
|
||||||
|
0x0023, 0xf8fe, 0x0043, 0x00e7, 0x0083, 0x888e, 0x00c5, 0x222f,
|
||||||
|
0x0002, 0x00c5, 0x0084, 0x207e, 0x0002, 0xc4ce, 0x0024, 0x00f7,
|
||||||
|
0x0002, 0xa2fe, 0x0044, 0x0056, 0x0002, 0x009e, 0x0014, 0x00d7,
|
||||||
|
0x0002, 0x10be, 0x0084, 0x0066, 0x0002, 0x88ae, 0x0024, 0x11df,
|
||||||
|
0x0002, 0xa8ee, 0x0044, 0x0036, 0x0002, 0x888e, 0x0014, 0x111f,
|
||||||
|
0x0002, 0x00c5, 0x0084, 0x006e, 0x0002, 0x88ce, 0x0024, 0x88ff,
|
||||||
|
0x0002, 0xb8fe, 0x0044, 0x444e, 0x0002, 0x0096, 0x0014, 0x00b7,
|
||||||
|
0x0002, 0xe4fe, 0x0084, 0x445e, 0x0002, 0x00a6, 0x0024, 0x00e7,
|
||||||
|
0x0002, 0x54de, 0x0044, 0x222e, 0x0002, 0x003e, 0x0014, 0x0077,
|
||||||
|
0x0002, 0x00c5, 0x0084, 0x207e, 0x0002, 0xc4ce, 0x0024, 0xf1ff,
|
||||||
|
0x0002, 0xa2fe, 0x0044, 0x0056, 0x0002, 0x009e, 0x0014, 0x11bf,
|
||||||
|
0x0002, 0x10be, 0x0084, 0x0066, 0x0002, 0x88ae, 0x0024, 0x22ef,
|
||||||
|
0x0002, 0xa8ee, 0x0044, 0x0036, 0x0002, 0x888e, 0x0014, 0x227f,
|
||||||
|
0x0002, 0x00c5, 0x0084, 0x006e, 0x0002, 0x88ce, 0x0024, 0xe4ef,
|
||||||
|
0x0002, 0xb8fe, 0x0044, 0x444e, 0x0002, 0x0096, 0x0014, 0xa2af,
|
||||||
|
0x0002, 0xe4fe, 0x0084, 0x445e, 0x0002, 0x00a6, 0x0024, 0xd8df,
|
||||||
|
0x0002, 0x54de, 0x0044, 0x222e, 0x0002, 0x003e, 0x0014, 0x515f,
|
||||||
|
0x0002, 0x0055, 0x0084, 0x0066, 0x0002, 0x88de, 0x0024, 0x32ff,
|
||||||
|
0x0002, 0x11fe, 0x0044, 0x444e, 0x0002, 0x00ae, 0x0014, 0x00b7,
|
||||||
|
0x0002, 0x317e, 0x0084, 0x515e, 0x0002, 0x00c6, 0x0024, 0x00d7,
|
||||||
|
0x0002, 0x20ee, 0x0044, 0x111e, 0x0002, 0x009e, 0x0014, 0x0077,
|
||||||
|
0x0002, 0x0055, 0x0084, 0x545e, 0x0002, 0x44ce, 0x0024, 0x00e7,
|
||||||
|
0x0002, 0xf1fe, 0x0044, 0x0036, 0x0002, 0x00a6, 0x0014, 0x555f,
|
||||||
|
0x0002, 0x74fe, 0x0084, 0x113e, 0x0002, 0x20be, 0x0024, 0x747f,
|
||||||
|
0x0002, 0xc4de, 0x0044, 0xf8ff, 0x0002, 0x0096, 0x0014, 0x222f,
|
||||||
|
0x0002, 0x0055, 0x0084, 0x0066, 0x0002, 0x88de, 0x0024, 0x00f7,
|
||||||
|
0x0002, 0x11fe, 0x0044, 0x444e, 0x0002, 0x00ae, 0x0014, 0x888f,
|
||||||
|
0x0002, 0x317e, 0x0084, 0x515e, 0x0002, 0x00c6, 0x0024, 0xc8cf,
|
||||||
|
0x0002, 0x20ee, 0x0044, 0x111e, 0x0002, 0x009e, 0x0014, 0x006f,
|
||||||
|
0x0002, 0x0055, 0x0084, 0x545e, 0x0002, 0x44ce, 0x0024, 0xd1df,
|
||||||
|
0x0002, 0xf1fe, 0x0044, 0x0036, 0x0002, 0x00a6, 0x0014, 0x227f,
|
||||||
|
0x0002, 0x74fe, 0x0084, 0x113e, 0x0002, 0x20be, 0x0024, 0x22bf,
|
||||||
|
0x0002, 0xc4de, 0x0044, 0x22ef, 0x0002, 0x0096, 0x0014, 0x323f,
|
||||||
|
0x0003, 0xd4de, 0xf4fd, 0xfcff, 0x0014, 0x113e, 0x0055, 0x888f,
|
||||||
|
0x0003, 0x32be, 0x0085, 0x00e7, 0x0025, 0x515e, 0xaafe, 0x727f,
|
||||||
|
0x0003, 0x44ce, 0xf8fd, 0x44ef, 0x0014, 0x647e, 0x0045, 0xa2af,
|
||||||
|
0x0003, 0x00a6, 0x555d, 0x99df, 0xf1fd, 0x0036, 0xf5fe, 0x626f,
|
||||||
|
0x0003, 0xd1de, 0xf4fd, 0xe6ff, 0x0014, 0x717e, 0x0055, 0xb1bf,
|
||||||
|
0x0003, 0x88ae, 0x0085, 0xd5df, 0x0025, 0x444e, 0xf2fe, 0x667f,
|
||||||
|
0x0003, 0x00c6, 0xf8fd, 0xe2ef, 0x0014, 0x545e, 0x0045, 0x119f,
|
||||||
|
0x0003, 0x0096, 0x555d, 0xc8cf, 0xf1fd, 0x111e, 0xc8ee, 0x0067,
|
||||||
|
0x0003, 0xd4de, 0xf4fd, 0xf3ff, 0x0014, 0x113e, 0x0055, 0x11bf,
|
||||||
|
0x0003, 0x32be, 0x0085, 0xd8df, 0x0025, 0x515e, 0xaafe, 0x222f,
|
||||||
|
0x0003, 0x44ce, 0xf8fd, 0x00f7, 0x0014, 0x647e, 0x0045, 0x989f,
|
||||||
|
0x0003, 0x00a6, 0x555d, 0x00d7, 0xf1fd, 0x0036, 0xf5fe, 0x446f,
|
||||||
|
0x0003, 0xd1de, 0xf4fd, 0xb9ff, 0x0014, 0x717e, 0x0055, 0x00b7,
|
||||||
|
0x0003, 0x88ae, 0x0085, 0xdcdf, 0x0025, 0x444e, 0xf2fe, 0x0077,
|
||||||
|
0x0003, 0x00c6, 0xf8fd, 0xe4ef, 0x0014, 0x545e, 0x0045, 0x737f,
|
||||||
|
0x0003, 0x0096, 0x555d, 0xb8bf, 0xf1fd, 0x111e, 0xc8ee, 0x323f,
|
||||||
|
0x0002, 0x00a5, 0x0084, 0x407e, 0x0002, 0x10de, 0x0024, 0x11df,
|
||||||
|
0x0002, 0x72fe, 0x0044, 0x0056, 0x0002, 0xa8ae, 0x0014, 0xb2bf,
|
||||||
|
0x0002, 0x0096, 0x0084, 0x0066, 0x0002, 0x00c6, 0x0024, 0x00e7,
|
||||||
|
0x0002, 0xc8ee, 0x0044, 0x222e, 0x0002, 0x888e, 0x0014, 0x0077,
|
||||||
|
0x0002, 0x00a5, 0x0084, 0x006e, 0x0002, 0x88ce, 0x0024, 0x00f7,
|
||||||
|
0x0002, 0x91fe, 0x0044, 0x0036, 0x0002, 0xa2ae, 0x0014, 0xaaaf,
|
||||||
|
0x0002, 0xb8fe, 0x0084, 0x005e, 0x0002, 0x00be, 0x0024, 0xc4cf,
|
||||||
|
0x0002, 0x44ee, 0x0044, 0xf4ff, 0x0002, 0x223e, 0x0014, 0x111f,
|
||||||
|
0x0002, 0x00a5, 0x0084, 0x407e, 0x0002, 0x10de, 0x0024, 0x99ff,
|
||||||
|
0x0002, 0x72fe, 0x0044, 0x0056, 0x0002, 0xa8ae, 0x0014, 0x00b7,
|
||||||
|
0x0002, 0x0096, 0x0084, 0x0066, 0x0002, 0x00c6, 0x0024, 0x00d7,
|
||||||
|
0x0002, 0xc8ee, 0x0044, 0x222e, 0x0002, 0x888e, 0x0014, 0x444f,
|
||||||
|
0x0002, 0x00a5, 0x0084, 0x006e, 0x0002, 0x88ce, 0x0024, 0xe2ef,
|
||||||
|
0x0002, 0x91fe, 0x0044, 0x0036, 0x0002, 0xa2ae, 0x0014, 0x447f,
|
||||||
|
0x0002, 0xb8fe, 0x0084, 0x005e, 0x0002, 0x00be, 0x0024, 0x009f,
|
||||||
|
0x0002, 0x44ee, 0x0044, 0x76ff, 0x0002, 0x223e, 0x0014, 0x313f,
|
||||||
|
0x0003, 0x00c6, 0x0085, 0xd9ff, 0xf2fd, 0x647e, 0xf1fe, 0x99bf,
|
||||||
|
0x0003, 0xa2ae, 0x0025, 0x66ef, 0xf4fd, 0x0056, 0xe2ee, 0x737f,
|
||||||
|
0x0003, 0x98be, 0x0045, 0x00f7, 0xf8fd, 0x0066, 0x76fe, 0x889f,
|
||||||
|
0x0003, 0x888e, 0x0015, 0xd5df, 0x00a5, 0x222e, 0x98de, 0x444f,
|
||||||
|
0x0003, 0xb2be, 0x0085, 0xfcff, 0xf2fd, 0x226e, 0x0096, 0x00b7,
|
||||||
|
0x0003, 0xaaae, 0x0025, 0xd1df, 0xf4fd, 0x0036, 0xd4de, 0x646f,
|
||||||
|
0x0003, 0xa8ae, 0x0045, 0xeaef, 0xf8fd, 0x445e, 0xe8ee, 0x717f,
|
||||||
|
0x0003, 0x323e, 0x0015, 0xc4cf, 0x00a5, 0xfaff, 0x88ce, 0x313f,
|
||||||
|
0x0003, 0x00c6, 0x0085, 0x77ff, 0xf2fd, 0x647e, 0xf1fe, 0xb3bf,
|
||||||
|
0x0003, 0xa2ae, 0x0025, 0x00e7, 0xf4fd, 0x0056, 0xe2ee, 0x0077,
|
||||||
|
0x0003, 0x98be, 0x0045, 0xe4ef, 0xf8fd, 0x0066, 0x76fe, 0x667f,
|
||||||
|
0x0003, 0x888e, 0x0015, 0x00d7, 0x00a5, 0x222e, 0x98de, 0x333f,
|
||||||
|
0x0003, 0xb2be, 0x0085, 0x75ff, 0xf2fd, 0x226e, 0x0096, 0x919f,
|
||||||
|
0x0003, 0xaaae, 0x0025, 0x99df, 0xf4fd, 0x0036, 0xd4de, 0x515f,
|
||||||
|
0x0003, 0xa8ae, 0x0045, 0xecef, 0xf8fd, 0x445e, 0xe8ee, 0x727f,
|
||||||
|
0x0003, 0x323e, 0x0015, 0xb1bf, 0x00a5, 0xf3ff, 0x88ce, 0x111f,
|
||||||
|
0x0003, 0x54de, 0xf2fd, 0x111e, 0x0014, 0x647e, 0xf8fe, 0xcccf,
|
||||||
|
0x0003, 0x91be, 0x0045, 0x22ef, 0x0025, 0x222e, 0xf3fe, 0x888f,
|
||||||
|
0x0003, 0x00c6, 0x0085, 0x00f7, 0x0014, 0x115e, 0xfcfe, 0xa8af,
|
||||||
|
0x0003, 0x00a6, 0x0035, 0xc8df, 0xf1fd, 0x313e, 0x66fe, 0x646f,
|
||||||
|
0x0003, 0xc8ce, 0xf2fd, 0xf5ff, 0x0014, 0x0066, 0xf4fe, 0xbabf,
|
||||||
|
0x0003, 0x22ae, 0x0045, 0x00e7, 0x0025, 0x323e, 0xeafe, 0x737f,
|
||||||
|
0x0003, 0xb2be, 0x0085, 0x55df, 0x0014, 0x0056, 0x717e, 0x119f,
|
||||||
|
0x0003, 0x0096, 0x0035, 0xc4cf, 0xf1fd, 0x333e, 0xe8ee, 0x444f,
|
||||||
|
0x0003, 0x54de, 0xf2fd, 0x111e, 0x0014, 0x647e, 0xf8fe, 0x99bf,
|
||||||
|
0x0003, 0x91be, 0x0045, 0xe2ef, 0x0025, 0x222e, 0xf3fe, 0x667f,
|
||||||
|
0x0003, 0x00c6, 0x0085, 0xe4ef, 0x0014, 0x115e, 0xfcfe, 0x989f,
|
||||||
|
0x0003, 0x00a6, 0x0035, 0x00d7, 0xf1fd, 0x313e, 0x66fe, 0x226f,
|
||||||
|
0x0003, 0xc8ce, 0xf2fd, 0xb9ff, 0x0014, 0x0066, 0xf4fe, 0x00b7,
|
||||||
|
0x0003, 0x22ae, 0x0045, 0xd1df, 0x0025, 0x323e, 0xeafe, 0x0077,
|
||||||
|
0x0003, 0xb2be, 0x0085, 0xecef, 0x0014, 0x0056, 0x717e, 0x727f,
|
||||||
|
0x0003, 0x0096, 0x0035, 0xb8bf, 0xf1fd, 0x333e, 0xe8ee, 0x545f,
|
||||||
|
0xf1fc, 0xd1de, 0xfafd, 0x00d7, 0xf8fc, 0x0016, 0xfffd, 0x747f,
|
||||||
|
0xf4fc, 0x717e, 0xf3fd, 0xb3bf, 0xf2fc, 0xeaef, 0xe8ee, 0x444f,
|
||||||
|
0xf1fc, 0x22ae, 0x0005, 0xb8bf, 0xf8fc, 0x00f7, 0xfcfe, 0x0077,
|
||||||
|
0xf4fc, 0x115e, 0xf5fd, 0x757f, 0xf2fc, 0xd8df, 0xe2ee, 0x333f,
|
||||||
|
0xf1fc, 0xb2be, 0xfafd, 0x88cf, 0xf8fc, 0xfbff, 0xfffd, 0x737f,
|
||||||
|
0xf4fc, 0x006e, 0xf3fd, 0x00b7, 0xf2fc, 0x66ef, 0xf9fe, 0x313f,
|
||||||
|
0xf1fc, 0x009e, 0x0005, 0xbabf, 0xf8fc, 0xfdff, 0xf6fe, 0x0067,
|
||||||
|
0xf4fc, 0x0026, 0xf5fd, 0x888f, 0xf2fc, 0xdcdf, 0xd4de, 0x222f,
|
||||||
|
0xf1fc, 0xd1de, 0xfafd, 0xc4cf, 0xf8fc, 0x0016, 0xfffd, 0x727f,
|
||||||
|
0xf4fc, 0x717e, 0xf3fd, 0x99bf, 0xf2fc, 0xecef, 0xe8ee, 0x0047,
|
||||||
|
0xf1fc, 0x22ae, 0x0005, 0x00a7, 0xf8fc, 0xf7ff, 0xfcfe, 0x0057,
|
||||||
|
0xf4fc, 0x115e, 0xf5fd, 0x0097, 0xf2fc, 0xd5df, 0xe2ee, 0x0037,
|
||||||
|
0xf1fc, 0xb2be, 0xfafd, 0x00c7, 0xf8fc, 0xfeff, 0xfffd, 0x667f,
|
||||||
|
0xf4fc, 0x006e, 0xf3fd, 0xa8af, 0xf2fc, 0x00e7, 0xf9fe, 0x323f,
|
||||||
|
0xf1fc, 0x009e, 0x0005, 0xb1bf, 0xf8fc, 0xe4ef, 0xf6fe, 0x545f,
|
||||||
|
0xf4fc, 0x0026, 0xf5fd, 0x0087, 0xf2fc, 0x99df, 0xd4de, 0x111f
|
||||||
|
};
|
||||||
|
|
||||||
|
static const OPJ_UINT16 vlc_tbl1[1024] = {
|
||||||
|
0x0013, 0x0065, 0x0043, 0x00de, 0x0083, 0x888d, 0x0023, 0x444e,
|
||||||
|
0x0013, 0x00a5, 0x0043, 0x88ae, 0x0083, 0x0035, 0x0023, 0x00d7,
|
||||||
|
0x0013, 0x00c5, 0x0043, 0x009e, 0x0083, 0x0055, 0x0023, 0x222e,
|
||||||
|
0x0013, 0x0095, 0x0043, 0x007e, 0x0083, 0x10fe, 0x0023, 0x0077,
|
||||||
|
0x0013, 0x0065, 0x0043, 0x88ce, 0x0083, 0x888d, 0x0023, 0x111e,
|
||||||
|
0x0013, 0x00a5, 0x0043, 0x005e, 0x0083, 0x0035, 0x0023, 0x00e7,
|
||||||
|
0x0013, 0x00c5, 0x0043, 0x00be, 0x0083, 0x0055, 0x0023, 0x11ff,
|
||||||
|
0x0013, 0x0095, 0x0043, 0x003e, 0x0083, 0x40ee, 0x0023, 0xa2af,
|
||||||
|
0x0013, 0x0065, 0x0043, 0x00de, 0x0083, 0x888d, 0x0023, 0x444e,
|
||||||
|
0x0013, 0x00a5, 0x0043, 0x88ae, 0x0083, 0x0035, 0x0023, 0x44ef,
|
||||||
|
0x0013, 0x00c5, 0x0043, 0x009e, 0x0083, 0x0055, 0x0023, 0x222e,
|
||||||
|
0x0013, 0x0095, 0x0043, 0x007e, 0x0083, 0x10fe, 0x0023, 0x00b7,
|
||||||
|
0x0013, 0x0065, 0x0043, 0x88ce, 0x0083, 0x888d, 0x0023, 0x111e,
|
||||||
|
0x0013, 0x00a5, 0x0043, 0x005e, 0x0083, 0x0035, 0x0023, 0xc4cf,
|
||||||
|
0x0013, 0x00c5, 0x0043, 0x00be, 0x0083, 0x0055, 0x0023, 0x00f7,
|
||||||
|
0x0013, 0x0095, 0x0043, 0x003e, 0x0083, 0x40ee, 0x0023, 0x006f,
|
||||||
|
0x0001, 0x0084, 0x0001, 0x0056, 0x0001, 0x0014, 0x0001, 0x00d7,
|
||||||
|
0x0001, 0x0024, 0x0001, 0x0096, 0x0001, 0x0045, 0x0001, 0x0077,
|
||||||
|
0x0001, 0x0084, 0x0001, 0x00c6, 0x0001, 0x0014, 0x0001, 0x888f,
|
||||||
|
0x0001, 0x0024, 0x0001, 0x00f7, 0x0001, 0x0035, 0x0001, 0x222f,
|
||||||
|
0x0001, 0x0084, 0x0001, 0x40fe, 0x0001, 0x0014, 0x0001, 0x00b7,
|
||||||
|
0x0001, 0x0024, 0x0001, 0x00bf, 0x0001, 0x0045, 0x0001, 0x0067,
|
||||||
|
0x0001, 0x0084, 0x0001, 0x00a6, 0x0001, 0x0014, 0x0001, 0x444f,
|
||||||
|
0x0001, 0x0024, 0x0001, 0x00e7, 0x0001, 0x0035, 0x0001, 0x113f,
|
||||||
|
0x0001, 0x0084, 0x0001, 0x0056, 0x0001, 0x0014, 0x0001, 0x00cf,
|
||||||
|
0x0001, 0x0024, 0x0001, 0x0096, 0x0001, 0x0045, 0x0001, 0x006f,
|
||||||
|
0x0001, 0x0084, 0x0001, 0x00c6, 0x0001, 0x0014, 0x0001, 0x009f,
|
||||||
|
0x0001, 0x0024, 0x0001, 0x00ef, 0x0001, 0x0035, 0x0001, 0x323f,
|
||||||
|
0x0001, 0x0084, 0x0001, 0x40fe, 0x0001, 0x0014, 0x0001, 0x00af,
|
||||||
|
0x0001, 0x0024, 0x0001, 0x44ff, 0x0001, 0x0045, 0x0001, 0x005f,
|
||||||
|
0x0001, 0x0084, 0x0001, 0x00a6, 0x0001, 0x0014, 0x0001, 0x007f,
|
||||||
|
0x0001, 0x0024, 0x0001, 0x00df, 0x0001, 0x0035, 0x0001, 0x111f,
|
||||||
|
0x0001, 0x0024, 0x0001, 0x0056, 0x0001, 0x0085, 0x0001, 0x00bf,
|
||||||
|
0x0001, 0x0014, 0x0001, 0x00f7, 0x0001, 0x00c6, 0x0001, 0x0077,
|
||||||
|
0x0001, 0x0024, 0x0001, 0xf8ff, 0x0001, 0x0045, 0x0001, 0x007f,
|
||||||
|
0x0001, 0x0014, 0x0001, 0x00df, 0x0001, 0x00a6, 0x0001, 0x313f,
|
||||||
|
0x0001, 0x0024, 0x0001, 0x222e, 0x0001, 0x0085, 0x0001, 0x00b7,
|
||||||
|
0x0001, 0x0014, 0x0001, 0x44ef, 0x0001, 0xa2ae, 0x0001, 0x0067,
|
||||||
|
0x0001, 0x0024, 0x0001, 0x51ff, 0x0001, 0x0045, 0x0001, 0x0097,
|
||||||
|
0x0001, 0x0014, 0x0001, 0x00cf, 0x0001, 0x0036, 0x0001, 0x223f,
|
||||||
|
0x0001, 0x0024, 0x0001, 0x0056, 0x0001, 0x0085, 0x0001, 0xb2bf,
|
||||||
|
0x0001, 0x0014, 0x0001, 0x40ef, 0x0001, 0x00c6, 0x0001, 0x006f,
|
||||||
|
0x0001, 0x0024, 0x0001, 0x72ff, 0x0001, 0x0045, 0x0001, 0x009f,
|
||||||
|
0x0001, 0x0014, 0x0001, 0x00d7, 0x0001, 0x00a6, 0x0001, 0x444f,
|
||||||
|
0x0001, 0x0024, 0x0001, 0x222e, 0x0001, 0x0085, 0x0001, 0xa8af,
|
||||||
|
0x0001, 0x0014, 0x0001, 0x00e7, 0x0001, 0xa2ae, 0x0001, 0x005f,
|
||||||
|
0x0001, 0x0024, 0x0001, 0x44ff, 0x0001, 0x0045, 0x0001, 0x888f,
|
||||||
|
0x0001, 0x0014, 0x0001, 0xaaaf, 0x0001, 0x0036, 0x0001, 0x111f,
|
||||||
|
0x0002, 0xf8fe, 0x0024, 0x0056, 0x0002, 0x00b6, 0x0085, 0x66ff,
|
||||||
|
0x0002, 0x00ce, 0x0014, 0x111e, 0x0002, 0x0096, 0x0035, 0xa8af,
|
||||||
|
0x0002, 0x00f6, 0x0024, 0x313e, 0x0002, 0x00a6, 0x0045, 0xb3bf,
|
||||||
|
0x0002, 0xb2be, 0x0014, 0xf5ff, 0x0002, 0x0066, 0x517e, 0x545f,
|
||||||
|
0x0002, 0xf2fe, 0x0024, 0x222e, 0x0002, 0x22ae, 0x0085, 0x44ef,
|
||||||
|
0x0002, 0x00c6, 0x0014, 0xf4ff, 0x0002, 0x0076, 0x0035, 0x447f,
|
||||||
|
0x0002, 0x40de, 0x0024, 0x323e, 0x0002, 0x009e, 0x0045, 0x00d7,
|
||||||
|
0x0002, 0x88be, 0x0014, 0xfaff, 0x0002, 0x115e, 0xf1fe, 0x444f,
|
||||||
|
0x0002, 0xf8fe, 0x0024, 0x0056, 0x0002, 0x00b6, 0x0085, 0xc8ef,
|
||||||
|
0x0002, 0x00ce, 0x0014, 0x111e, 0x0002, 0x0096, 0x0035, 0x888f,
|
||||||
|
0x0002, 0x00f6, 0x0024, 0x313e, 0x0002, 0x00a6, 0x0045, 0x44df,
|
||||||
|
0x0002, 0xb2be, 0x0014, 0xa8ff, 0x0002, 0x0066, 0x517e, 0x006f,
|
||||||
|
0x0002, 0xf2fe, 0x0024, 0x222e, 0x0002, 0x22ae, 0x0085, 0x00e7,
|
||||||
|
0x0002, 0x00c6, 0x0014, 0xe2ef, 0x0002, 0x0076, 0x0035, 0x727f,
|
||||||
|
0x0002, 0x40de, 0x0024, 0x323e, 0x0002, 0x009e, 0x0045, 0xb1bf,
|
||||||
|
0x0002, 0x88be, 0x0014, 0x73ff, 0x0002, 0x115e, 0xf1fe, 0x333f,
|
||||||
|
0x0001, 0x0084, 0x0001, 0x20ee, 0x0001, 0x00c5, 0x0001, 0xc4cf,
|
||||||
|
0x0001, 0x0044, 0x0001, 0x32ff, 0x0001, 0x0015, 0x0001, 0x888f,
|
||||||
|
0x0001, 0x0084, 0x0001, 0x0066, 0x0001, 0x0025, 0x0001, 0x00af,
|
||||||
|
0x0001, 0x0044, 0x0001, 0x22ef, 0x0001, 0x00a6, 0x0001, 0x005f,
|
||||||
|
0x0001, 0x0084, 0x0001, 0x444e, 0x0001, 0x00c5, 0x0001, 0xcccf,
|
||||||
|
0x0001, 0x0044, 0x0001, 0x00f7, 0x0001, 0x0015, 0x0001, 0x006f,
|
||||||
|
0x0001, 0x0084, 0x0001, 0x0056, 0x0001, 0x0025, 0x0001, 0x009f,
|
||||||
|
0x0001, 0x0044, 0x0001, 0x00df, 0x0001, 0x30fe, 0x0001, 0x222f,
|
||||||
|
0x0001, 0x0084, 0x0001, 0x20ee, 0x0001, 0x00c5, 0x0001, 0xc8cf,
|
||||||
|
0x0001, 0x0044, 0x0001, 0x11ff, 0x0001, 0x0015, 0x0001, 0x0077,
|
||||||
|
0x0001, 0x0084, 0x0001, 0x0066, 0x0001, 0x0025, 0x0001, 0x007f,
|
||||||
|
0x0001, 0x0044, 0x0001, 0x00e7, 0x0001, 0x00a6, 0x0001, 0x0037,
|
||||||
|
0x0001, 0x0084, 0x0001, 0x444e, 0x0001, 0x00c5, 0x0001, 0x00b7,
|
||||||
|
0x0001, 0x0044, 0x0001, 0x00bf, 0x0001, 0x0015, 0x0001, 0x003f,
|
||||||
|
0x0001, 0x0084, 0x0001, 0x0056, 0x0001, 0x0025, 0x0001, 0x0097,
|
||||||
|
0x0001, 0x0044, 0x0001, 0x00d7, 0x0001, 0x30fe, 0x0001, 0x111f,
|
||||||
|
0x0002, 0xa8ee, 0x0044, 0x888e, 0x0002, 0x00d6, 0x00c5, 0xf3ff,
|
||||||
|
0x0002, 0xfcfe, 0x0025, 0x003e, 0x0002, 0x00b6, 0x0055, 0xd8df,
|
||||||
|
0x0002, 0xf8fe, 0x0044, 0x0066, 0x0002, 0x207e, 0x0085, 0x99ff,
|
||||||
|
0x0002, 0x00e6, 0x00f5, 0x0036, 0x0002, 0x00a6, 0x0015, 0x009f,
|
||||||
|
0x0002, 0xf2fe, 0x0044, 0x0076, 0x0002, 0x44ce, 0x00c5, 0x76ff,
|
||||||
|
0x0002, 0xf1fe, 0x0025, 0x444e, 0x0002, 0x00ae, 0x0055, 0xc8cf,
|
||||||
|
0x0002, 0xf4fe, 0x0044, 0x445e, 0x0002, 0x10be, 0x0085, 0xe4ef,
|
||||||
|
0x0002, 0x54de, 0x00f5, 0x111e, 0x0002, 0x0096, 0x0015, 0x222f,
|
||||||
|
0x0002, 0xa8ee, 0x0044, 0x888e, 0x0002, 0x00d6, 0x00c5, 0xfaff,
|
||||||
|
0x0002, 0xfcfe, 0x0025, 0x003e, 0x0002, 0x00b6, 0x0055, 0x11bf,
|
||||||
|
0x0002, 0xf8fe, 0x0044, 0x0066, 0x0002, 0x207e, 0x0085, 0x22ef,
|
||||||
|
0x0002, 0x00e6, 0x00f5, 0x0036, 0x0002, 0x00a6, 0x0015, 0x227f,
|
||||||
|
0x0002, 0xf2fe, 0x0044, 0x0076, 0x0002, 0x44ce, 0x00c5, 0xd5ff,
|
||||||
|
0x0002, 0xf1fe, 0x0025, 0x444e, 0x0002, 0x00ae, 0x0055, 0x006f,
|
||||||
|
0x0002, 0xf4fe, 0x0044, 0x445e, 0x0002, 0x10be, 0x0085, 0x11df,
|
||||||
|
0x0002, 0x54de, 0x00f5, 0x111e, 0x0002, 0x0096, 0x0015, 0x515f,
|
||||||
|
0x0003, 0x00f6, 0x0014, 0x111e, 0x0044, 0x888e, 0x00a5, 0xd4df,
|
||||||
|
0x0003, 0xa2ae, 0x0055, 0x76ff, 0x0024, 0x223e, 0x00b6, 0xaaaf,
|
||||||
|
0x0003, 0x00e6, 0x0014, 0xf5ff, 0x0044, 0x0066, 0x0085, 0xcccf,
|
||||||
|
0x0003, 0x009e, 0x00c5, 0x44ef, 0x0024, 0x0036, 0xf8fe, 0x317f,
|
||||||
|
0x0003, 0xe8ee, 0x0014, 0xf1ff, 0x0044, 0x0076, 0x00a5, 0xc4cf,
|
||||||
|
0x0003, 0x227e, 0x0055, 0xd1df, 0x0024, 0x444e, 0xf4fe, 0x515f,
|
||||||
|
0x0003, 0x00d6, 0x0014, 0xe2ef, 0x0044, 0x445e, 0x0085, 0x22bf,
|
||||||
|
0x0003, 0x0096, 0x00c5, 0xc8df, 0x0024, 0x222e, 0xf2fe, 0x226f,
|
||||||
|
0x0003, 0x00f6, 0x0014, 0x111e, 0x0044, 0x888e, 0x00a5, 0xb1bf,
|
||||||
|
0x0003, 0xa2ae, 0x0055, 0x33ff, 0x0024, 0x223e, 0x00b6, 0xa8af,
|
||||||
|
0x0003, 0x00e6, 0x0014, 0xb9ff, 0x0044, 0x0066, 0x0085, 0xa8bf,
|
||||||
|
0x0003, 0x009e, 0x00c5, 0xe4ef, 0x0024, 0x0036, 0xf8fe, 0x646f,
|
||||||
|
0x0003, 0xe8ee, 0x0014, 0xfcff, 0x0044, 0x0076, 0x00a5, 0xc8cf,
|
||||||
|
0x0003, 0x227e, 0x0055, 0xeaef, 0x0024, 0x444e, 0xf4fe, 0x747f,
|
||||||
|
0x0003, 0x00d6, 0x0014, 0xfaff, 0x0044, 0x445e, 0x0085, 0xb2bf,
|
||||||
|
0x0003, 0x0096, 0x00c5, 0x44df, 0x0024, 0x222e, 0xf2fe, 0x313f,
|
||||||
|
0x00f3, 0xfafe, 0xf1fd, 0x0036, 0x0004, 0x32be, 0x0075, 0x11df,
|
||||||
|
0x00f3, 0x54de, 0xf2fd, 0xe4ef, 0x00d5, 0x717e, 0xfcfe, 0x737f,
|
||||||
|
0x00f3, 0xf3fe, 0xf8fd, 0x111e, 0x0004, 0x0096, 0x0055, 0xb1bf,
|
||||||
|
0x00f3, 0x00ce, 0x00b5, 0xd8df, 0xf4fd, 0x0066, 0xb9fe, 0x545f,
|
||||||
|
0x00f3, 0x76fe, 0xf1fd, 0x0026, 0x0004, 0x00a6, 0x0075, 0x009f,
|
||||||
|
0x00f3, 0x00ae, 0xf2fd, 0xf7ff, 0x00d5, 0x0046, 0xf5fe, 0x747f,
|
||||||
|
0x00f3, 0x00e6, 0xf8fd, 0x0016, 0x0004, 0x0086, 0x0055, 0x888f,
|
||||||
|
0x00f3, 0x00c6, 0x00b5, 0xe2ef, 0xf4fd, 0x115e, 0xa8ee, 0x113f,
|
||||||
|
0x00f3, 0xfafe, 0xf1fd, 0x0036, 0x0004, 0x32be, 0x0075, 0xd1df,
|
||||||
|
0x00f3, 0x54de, 0xf2fd, 0xfbff, 0x00d5, 0x717e, 0xfcfe, 0x447f,
|
||||||
|
0x00f3, 0xf3fe, 0xf8fd, 0x111e, 0x0004, 0x0096, 0x0055, 0x727f,
|
||||||
|
0x00f3, 0x00ce, 0x00b5, 0x22ef, 0xf4fd, 0x0066, 0xb9fe, 0x444f,
|
||||||
|
0x00f3, 0x76fe, 0xf1fd, 0x0026, 0x0004, 0x00a6, 0x0075, 0x11bf,
|
||||||
|
0x00f3, 0x00ae, 0xf2fd, 0xffff, 0x00d5, 0x0046, 0xf5fe, 0x323f,
|
||||||
|
0x00f3, 0x00e6, 0xf8fd, 0x0016, 0x0004, 0x0086, 0x0055, 0x006f,
|
||||||
|
0x00f3, 0x00c6, 0x00b5, 0xb8bf, 0xf4fd, 0x115e, 0xa8ee, 0x222f
|
||||||
|
};
|
|
@ -1229,6 +1229,7 @@ static OPJ_BOOL opj_t2_read_packet_header(opj_t2_t* p_t2,
|
||||||
++i;
|
++i;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
l_cblk->Mb = (OPJ_UINT32)l_band->numbps;
|
||||||
l_cblk->numbps = (OPJ_UINT32)l_band->numbps + 1 - i;
|
l_cblk->numbps = (OPJ_UINT32)l_band->numbps + 1 - i;
|
||||||
l_cblk->numlenbits = 3;
|
l_cblk->numlenbits = 3;
|
||||||
}
|
}
|
||||||
|
@ -1258,34 +1259,63 @@ static OPJ_BOOL opj_t2_read_packet_header(opj_t2_t* p_t2,
|
||||||
}
|
}
|
||||||
n = (OPJ_INT32)l_cblk->numnewpasses;
|
n = (OPJ_INT32)l_cblk->numnewpasses;
|
||||||
|
|
||||||
do {
|
if ((p_tcp->tccps[p_pi->compno].cblksty & J2K_CCP_CBLKSTY_HT) != 0)
|
||||||
OPJ_UINT32 bit_number;
|
do {
|
||||||
l_cblk->segs[l_segno].numnewpasses = (OPJ_UINT32)opj_int_min((OPJ_INT32)(
|
OPJ_UINT32 bit_number;
|
||||||
l_cblk->segs[l_segno].maxpasses - l_cblk->segs[l_segno].numpasses), n);
|
l_cblk->segs[l_segno].numnewpasses = l_segno == 0 ? 1 : (OPJ_UINT32)n;
|
||||||
bit_number = l_cblk->numlenbits + opj_uint_floorlog2(
|
bit_number = l_cblk->numlenbits + opj_uint_floorlog2(
|
||||||
l_cblk->segs[l_segno].numnewpasses);
|
l_cblk->segs[l_segno].numnewpasses);
|
||||||
if (bit_number > 32) {
|
if (bit_number > 32) {
|
||||||
opj_event_msg(p_manager, EVT_ERROR,
|
opj_event_msg(p_manager, EVT_ERROR,
|
||||||
"Invalid bit number %d in opj_t2_read_packet_header()\n",
|
"Invalid bit number %d in opj_t2_read_packet_header()\n",
|
||||||
bit_number);
|
bit_number);
|
||||||
opj_bio_destroy(l_bio);
|
|
||||||
return OPJ_FALSE;
|
|
||||||
}
|
|
||||||
l_cblk->segs[l_segno].newlen = opj_bio_read(l_bio, bit_number);
|
|
||||||
JAS_FPRINTF(stderr, "included=%d numnewpasses=%d increment=%d len=%d \n",
|
|
||||||
l_included, l_cblk->segs[l_segno].numnewpasses, l_increment,
|
|
||||||
l_cblk->segs[l_segno].newlen);
|
|
||||||
|
|
||||||
n -= (OPJ_INT32)l_cblk->segs[l_segno].numnewpasses;
|
|
||||||
if (n > 0) {
|
|
||||||
++l_segno;
|
|
||||||
|
|
||||||
if (! opj_t2_init_seg(l_cblk, l_segno, p_tcp->tccps[p_pi->compno].cblksty, 0)) {
|
|
||||||
opj_bio_destroy(l_bio);
|
opj_bio_destroy(l_bio);
|
||||||
return OPJ_FALSE;
|
return OPJ_FALSE;
|
||||||
}
|
}
|
||||||
}
|
l_cblk->segs[l_segno].newlen = opj_bio_read(l_bio, bit_number);
|
||||||
} while (n > 0);
|
JAS_FPRINTF(stderr, "included=%d numnewpasses=%d increment=%d len=%d \n",
|
||||||
|
l_included, l_cblk->segs[l_segno].numnewpasses, l_increment,
|
||||||
|
l_cblk->segs[l_segno].newlen);
|
||||||
|
|
||||||
|
n -= (OPJ_INT32)l_cblk->segs[l_segno].numnewpasses;
|
||||||
|
if (n > 0) {
|
||||||
|
++l_segno;
|
||||||
|
|
||||||
|
if (! opj_t2_init_seg(l_cblk, l_segno, p_tcp->tccps[p_pi->compno].cblksty, 0)) {
|
||||||
|
opj_bio_destroy(l_bio);
|
||||||
|
return OPJ_FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} while (n > 0);
|
||||||
|
else
|
||||||
|
do {
|
||||||
|
OPJ_UINT32 bit_number;
|
||||||
|
l_cblk->segs[l_segno].numnewpasses = (OPJ_UINT32)opj_int_min((OPJ_INT32)(
|
||||||
|
l_cblk->segs[l_segno].maxpasses - l_cblk->segs[l_segno].numpasses), n);
|
||||||
|
bit_number = l_cblk->numlenbits + opj_uint_floorlog2(
|
||||||
|
l_cblk->segs[l_segno].numnewpasses);
|
||||||
|
if (bit_number > 32) {
|
||||||
|
opj_event_msg(p_manager, EVT_ERROR,
|
||||||
|
"Invalid bit number %d in opj_t2_read_packet_header()\n",
|
||||||
|
bit_number);
|
||||||
|
opj_bio_destroy(l_bio);
|
||||||
|
return OPJ_FALSE;
|
||||||
|
}
|
||||||
|
l_cblk->segs[l_segno].newlen = opj_bio_read(l_bio, bit_number);
|
||||||
|
JAS_FPRINTF(stderr, "included=%d numnewpasses=%d increment=%d len=%d \n",
|
||||||
|
l_included, l_cblk->segs[l_segno].numnewpasses, l_increment,
|
||||||
|
l_cblk->segs[l_segno].newlen);
|
||||||
|
|
||||||
|
n -= (OPJ_INT32)l_cblk->segs[l_segno].numnewpasses;
|
||||||
|
if (n > 0) {
|
||||||
|
++l_segno;
|
||||||
|
|
||||||
|
if (! opj_t2_init_seg(l_cblk, l_segno, p_tcp->tccps[p_pi->compno].cblksty, 0)) {
|
||||||
|
opj_bio_destroy(l_bio);
|
||||||
|
return OPJ_FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} while (n > 0);
|
||||||
|
|
||||||
++l_cblk;
|
++l_cblk;
|
||||||
}
|
}
|
||||||
|
|
|
@ -122,6 +122,11 @@ typedef struct opj_tcd_cblk_dec {
|
||||||
opj_tcd_seg_data_chunk_t* chunks; /* Array of chunks */
|
opj_tcd_seg_data_chunk_t* chunks; /* Array of chunks */
|
||||||
/* position of the code-blocks : left upper corner (x0, y0) right low corner (x1,y1) */
|
/* position of the code-blocks : left upper corner (x0, y0) right low corner (x1,y1) */
|
||||||
OPJ_INT32 x0, y0, x1, y1;
|
OPJ_INT32 x0, y0, x1, y1;
|
||||||
|
/* Mb is The maximum number of bit-planes available for the representation of
|
||||||
|
coefficients in any sub-band, b, as defined in Equation (E-2). See
|
||||||
|
Section B.10.5 of the standard */
|
||||||
|
OPJ_UINT32 Mb; /* currently used only to check if HT decoding is correct */
|
||||||
|
/* numbps is Mb - P as defined in Section B.10.5 of the standard */
|
||||||
OPJ_UINT32 numbps;
|
OPJ_UINT32 numbps;
|
||||||
/* number of bits for len, for the current packet. Transitory value */
|
/* number of bits for len, for the current packet. Transitory value */
|
||||||
OPJ_UINT32 numlenbits;
|
OPJ_UINT32 numlenbits;
|
||||||
|
|
|
@ -393,3 +393,5 @@ b704ad4c0cfefffd78c20a54f5541265 dwt_interleave_h.gsr105.jp2_d_1_1_33_33_0.pgx
|
||||||
f31bcb01c771f829054cdb013575e86a issue1043.png
|
f31bcb01c771f829054cdb013575e86a issue1043.png
|
||||||
62bc654c830efddf1b23d6e208447dab tnsot_zero.png
|
62bc654c830efddf1b23d6e208447dab tnsot_zero.png
|
||||||
c34637a0f218e4074936e0c89534c5b5 tnsot_zero_missing_eoc.png
|
c34637a0f218e4074936e0c89534c5b5 tnsot_zero_missing_eoc.png
|
||||||
|
3806d8f768e8971bb948853eb4e9b108 Bretagne1_ht.j2k.png
|
||||||
|
33aeb45c59383bb4c2d3671f6431c718 Bretagne1_ht_lossy.j2k.png
|
||||||
|
|
|
@ -651,3 +651,7 @@ opj_decompress -i @INPUT_NR_PATH@/tnsot_zero.jp2 -o @TEMP_PATH@/tnsot_zero.png
|
||||||
!opj_decompress -i @INPUT_NR_PATH@/oss-fuzz2785.jp2 -o @TEMP_PATH@/oss-fuzz2785.png
|
!opj_decompress -i @INPUT_NR_PATH@/oss-fuzz2785.jp2 -o @TEMP_PATH@/oss-fuzz2785.png
|
||||||
|
|
||||||
opj_decompress -i @INPUT_NR_PATH@/tnsot_zero_missing_eoc.jp2 -o @TEMP_PATH@/tnsot_zero_missing_eoc.png
|
opj_decompress -i @INPUT_NR_PATH@/tnsot_zero_missing_eoc.jp2 -o @TEMP_PATH@/tnsot_zero_missing_eoc.png
|
||||||
|
|
||||||
|
# HTJ2K tests
|
||||||
|
opj_decompress -i @INPUT_NR_PATH@/htj2k/Bretagne1_ht.j2k -o @TEMP_PATH@/Bretagne1_ht.j2k.png
|
||||||
|
opj_decompress -i @INPUT_NR_PATH@/htj2k/Bretagne1_ht_lossy.j2k -o @TEMP_PATH@/Bretagne1_ht_lossy.j2k.png
|
||||||
|
|
|
@ -44,3 +44,4 @@ NR-DEC-kodak_2layers_lrcp.j2c-32-decode-md5
|
||||||
NR-DEC-issue135.j2k-68-decode-md5
|
NR-DEC-issue135.j2k-68-decode-md5
|
||||||
NR-DEC-db11217111510058.jp2-306-decode-md5
|
NR-DEC-db11217111510058.jp2-306-decode-md5
|
||||||
NR-DEC-tnsot_zero.jp2-307-decode-md5
|
NR-DEC-tnsot_zero.jp2-307-decode-md5
|
||||||
|
NR-DEC-Bretagne1_ht_lossy.j2k-311-decode-md5
|
||||||
|
|
|
@ -43,3 +43,4 @@ NR-DEC-issue559-eci-090-CIELab.jp2-255-decode-md5
|
||||||
NR-DEC-issue559-eci-091-CIELab.jp2-256-decode-md5
|
NR-DEC-issue559-eci-091-CIELab.jp2-256-decode-md5
|
||||||
NR-DEC-db11217111510058.jp2-306-decode-md5
|
NR-DEC-db11217111510058.jp2-306-decode-md5
|
||||||
NR-DEC-tnsot_zero.jp2-307-decode-md5
|
NR-DEC-tnsot_zero.jp2-307-decode-md5
|
||||||
|
NR-DEC-Bretagne1_ht_lossy.j2k-311-decode-md5
|
||||||
|
|
Loading…
Reference in New Issue