         printf("\n");
     }*/
     
-    // Save block from shared memory to global memory
-    for ( int i = 0; i < 16; i++ ) {
-        ((double*)data_output)[i] = ((double*)s_data_output)[16 * threadIdx.x + i];
-    }
-
     return 0;
 }
 

            //    s: ac value
            s = gpujpeg_huffman_gpu_decoder_value_from_category(s, r);

            s_data_output[data_output_start + gpujpeg_huffman_gpu_decoder_order_natural[k]] = s;
        } else {
            // s = 0, means ac value is 0 ? Only if r = 15.  
            //means all the left ac are zero

gpujpeg_huffman_gpu_decoder_decode_block(int & get_bits, int & get_buff, int & dc, uint8_t* & data, int & data_size, int16_t* data_output, 
    struct gpujpeg_table_huffman_decoder* table_dc, struct gpujpeg_table_huffman_decoder* table_ac)
{
    // Section F.2.2.1: decode the DC coefficient difference
    // get dc category number, s
    int s = gpujpeg_huffman_gpu_decoder_get_category(get_bits, get_buff, data, data_size, table_dc);
