     struct gpujpeg_segment* d_segment,
     int comp_count,
     int segment_count, 
-    uint8_t* d_data_compressed,
-    struct gpujpeg_table_huffman_decoder* d_table_y_dc,
-    struct gpujpeg_table_huffman_decoder* d_table_y_ac,
-    struct gpujpeg_table_huffman_decoder* d_table_cbcr_dc,
-    struct gpujpeg_table_huffman_decoder* d_table_cbcr_ac
+    uint8_t* d_data_compressed
 ) {
     int segment_index = blockIdx.x * THREADS_PER_TBLOCK + threadIdx.x;
     if ( segment_index >= segment_count )

    __shared__ uint4 s_byte_all[2 * THREADS_PER_TBLOCK]; // 32 bytes per thread
    uint4 * const s_byte = s_byte_all + 2 * threadIdx.x;
    
    // Last DC coefficient values
    int dc[GPUJPEG_MAX_COMPONENT_COUNT];
    for ( int comp = 0; comp < GPUJPEG_MAX_COMPONENT_COUNT; comp++ )
        dc[comp] = 0;

/** Number of code bits to be checked first (with high chance for the code to fit into this number of bits). */
#define QUICK_CHECK_BITS 10
#define QUICK_TABLE_ITEMS (4 * (1 << QUICK_CHECK_BITS))
// TODO: try to tweak QUICK table size and memory space

/** Table with same format as the full table, except that all-zero-entry means that the full table should be consulted. */
__device__ uint16_t gpujpeg_huffman_gpu_decoder_tables_quick[QUICK_TABLE_ITEMS];
