承接昨天写的《JPEG软解码实现介绍》,今天介绍其使用方法和一些细节说明。

1.仓库下已经包含了几个jpeg文件,以方便直接校验。

2.使用命令分为两种模式。

一种是直接解码为yuv文件,另外一种是解码的同时还dump所指定mcu位置的各阶段值。

3.需要特别交代一点的是,不需指定输出文件。

内部默认设置为输入文件名后再跟stride_w/h和yuv格式信息,如输入文件为animal_park.jpg,输出文件内部自动设置为animal_park_992_720_yuv420.yuv。

另外补充一点,输出文件名的992_720并不一定是真的宽高,是经过对齐后的值(stride)。

提供给播放器crop信息,可以根据实际的宽高进行部分显示,否则图像的底部和右侧会出现多余的图像。

文件名后补充该值的目的是为了方便yuvplayer工具显示,因为必须要指定宽和高的信息。

4.向什么值对齐要视采样因子而定。

A.如果是yuv444(y分量水平和垂直采样因子都是1),那么宽高都是8对齐;

B.如果是yuv420的(y分量水平和垂直采样因子都为2),那么宽和高都是16对齐;

C.如果是矩形的mcu采样,像8x16(y的h_factor/v_factor分别为1和2)的,宽向8对齐,高向16对齐,另外一种是16x8的,分别向16和8对齐。

5.使用示范。

模式1下,实例命令为:./JpegDecoder animal_park.jpg

其结果信息显示为:

$ ./JpegDecoder animal_park.jpg
MiniJpegDecoder begin to decode file[animal_park.jpg]...
[animal_park.jpg] input_file size = 38689 Bytes
jpeg file begin!
(parseApp0 : 109), App0 offset:0x4
(parseDQT : 118), DQT offset:0x16
Quantization table for color_id(0):
10 11 12 14 12 10 16 14
13 14 18 17 16 19 24 40
26 24 22 22 24 49 35 37
29 40 58 51 61 60 57 51
56 55 64 72 92 78 64 68
87 69 55 56 80 109 81 87
95 98 103 104 103 62 77 113
121 112 100 120 92 101 103 99
---------------------------------------------------------------------------------------------
(parseDQT : 118), DQT offset:0x5b
Quantization table for color_id(1):
10 18 18 24 21 24 47 26
26 47 99 66 56 66 99 99
99 99 99 99 99 99 99 99
99 99 99 99 99 99 99 99
99 99 99 99 99 99 99 99
99 99 99 99 99 99 99 99
99 99 99 99 99 99 99 99
99 99 99 99 99 99 99 99
---------------------------------------------------------------------------------------------
(parseSOF : 247), SOF offset:0xa0
pic resolution => (992 x 720)
sampling_factor=> comp_id:[1], qt_id:[0], factor:(2 x 2)
sampling_factor=> comp_id:[2], qt_id:[1], factor:(1 x 1)
sampling_factor=> comp_id:[3], qt_id:[1], factor:(1 x 1)
(parseDHT : 148), DHT offset:0xb3
table id: [0][0]--[DC0], dump more detail info...
CodeCntOfNBits: 0 2 3 1 1 1 0 0 0 0 0 0 0 0 0 0
total code cnt: 8
ValidCodeWidth: 2 2 3 3 3 4 5 6
-----------------huffman table: [0][0]---------------------
[SequenceNum] (CodeWidth, Code) -> CodeVal
[ 0] ( 2, 0) -> 0x1
[ 1] ( 2, 0x1) -> 0
[ 2] ( 3, 0x4) -> 0x2
[ 3] ( 3, 0x5) -> 0x4
[ 4] ( 3, 0x6) -> 0x3
[ 5] ( 4, 0xe) -> 0x5
[ 6] ( 5, 0x1e) -> 0x6
[ 7] ( 6, 0x3e) -> 0x7
---------------------------------------------------------------------------------------------
(parseDHT : 148), DHT offset:0xd0
table id: [1][0]--[AC0], dump more detail info...
CodeCntOfNBits: 0 2 1 3 3 2 5 2 4 4 4 5 5 1 1 0
total code cnt: 42
ValidCodeWidth: 2 2 3 4 4 4 5 5 5 6 6 7 7 7 7 7 8 8 9 9 9 9 10 10 10 10 11 11 11 11 12 12 12 12 12 13 13 13 13 13 14 15
-----------------huffman table: [1][0]---------------------
[SequenceNum] (CodeWidth, Code) -> CodeVal
[ 0] ( 2, 0) -> 0x1
[ 1] ( 2, 0x1) -> 0
[ 2] ( 3, 0x4) -> 0x2
[ 3] ( 4, 0xa) -> 0x11
[ 4] ( 4, 0xb) -> 0x3
[ 5] ( 4, 0xc) -> 0x21
[ 6] ( 5, 0x1a) -> 0x4
[ 7] ( 5, 0x1b) -> 0x31
[ 8] ( 5, 0x1c) -> 0x41
[ 9] ( 6, 0x3a) -> 0x12
[ 10] ( 6, 0x3b) -> 0x51
[ 11] ( 7, 0x78) -> 0x5
[ 12] ( 7, 0x79) -> 0x61
[ 13] ( 7, 0x7a) -> 0x71
[ 14] ( 7, 0x7b) -> 0x22
[ 15] ( 7, 0x7c) -> 0x13
[ 16] ( 8, 0xfa) -> 0x32
[ 17] ( 8, 0xfb) -> 0x81
[ 18] ( 9, 0x1f8) -> 0x23
[ 19] ( 9, 0x1f9) -> 0x14
[ 20] ( 9, 0x1fa) -> 0x52
[ 21] ( 9, 0x1fb) -> 0x42
[ 22] ( 10, 0x3f8) -> 0x72
[ 23] ( 10, 0x3f9) -> 0x33
[ 24] ( 10, 0x3fa) -> 0x34
[ 25] ( 10, 0x3fb) -> 0x91
[ 26] ( 11, 0x7f8) -> 0x15
[ 27] ( 11, 0x7f9) -> 0x24
[ 28] ( 11, 0x7fa) -> 0xa1
[ 29] ( 11, 0x7fb) -> 0x62
[ 30] ( 12, 0xff8) -> 0xb1
[ 31] ( 12, 0xff9) -> 0x35
[ 32] ( 12, 0xffa) -> 0x82
[ 33] ( 12, 0xffb) -> 0x43
[ 34] ( 12, 0xffc) -> 0x6
[ 35] ( 13, 0x1ffa) -> 0x53
[ 36] ( 13, 0x1ffb) -> 0x25
[ 37] ( 13, 0x1ffc) -> 0xd1
[ 38] ( 13, 0x1ffd) -> 0xc1
[ 39] ( 13, 0x1ffe) -> 0x92
[ 40] ( 14, 0x3ffe) -> 0xa2
[ 41] ( 15, 0x7ffe) -> 0x54
---------------------------------------------------------------------------------------------
(parseDHT : 148), DHT offset:0x10f
table id: [0][1]--[DC1], dump more detail info...
CodeCntOfNBits: 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0
total code cnt: 5
ValidCodeWidth: 1 2 3 4 5
-----------------huffman table: [0][1]---------------------
[SequenceNum] (CodeWidth, Code) -> CodeVal
[ 0] ( 1, 0) -> 0
[ 1] ( 2, 0x2) -> 0x1
[ 2] ( 3, 0x6) -> 0x2
[ 3] ( 4, 0xe) -> 0x3
[ 4] ( 5, 0x1e) -> 0x4
---------------------------------------------------------------------------------------------
(parseDHT : 148), DHT offset:0x129
table id: [1][1]--[AC1], dump more detail info...
CodeCntOfNBits: 1 1 1 0 3 1 1 1 0 0 0 0 0 0 0 0
total code cnt: 9
ValidCodeWidth: 1 2 3 5 5 5 6 7 8
-----------------huffman table: [1][1]---------------------
[SequenceNum] (CodeWidth, Code) -> CodeVal
[ 0] ( 1, 0) -> 0
[ 1] ( 2, 0x2) -> 0x1
[ 2] ( 3, 0x6) -> 0x11
[ 3] ( 5, 0x1c) -> 0x31
[ 4] ( 5, 0x1d) -> 0x2
[ 5] ( 5, 0x1e) -> 0x21
[ 6] ( 6, 0x3e) -> 0x12
[ 7] ( 7, 0x7e) -> 0x41
[ 8] ( 8, 0xfe) -> 0x51
---------------------------------------------------------------------------------------------
(parseSOS : 293), SOS offset:0x147
color_id[1] use DC_table[0], AC_table[0]
color_id[2] use DC_table[1], AC_table[1]
color_id[3] use DC_table[1], AC_table[1]
only support baseline profile! should pass for most cases!
entropy begin! offset[0x153]
mcu_row_cnt:45, mcu_col_cnt:62
row/col_stride:(992 x 720), w/h:(992 x 720)
entropy end! offset[0x95cb], left_bits[2], cur_data[0x2b], last_two_bytes:[0xff 0xd9] should be EOI:[0xFF 0xD9]
jpeg entropy time duration: [95335] us
output_file:[animal_park_992_720_yuv420.yuv]
MiniJpegDecoder finish decoding file[animal_park.jpg]!

模式2下,实例命令为:./JpegDecoder animal_park.jpg mcu 6 6

$ ./JpegDecoder animal_park.jpg mcu 6 6
MiniJpegDecoder begin to decode file[animal_park.jpg] and dump mcu(6,6)...
[animal_park.jpg] input_file size = 38689 Bytes
jpeg file begin!
(parseApp0 : 109), App0 offset:0x4
(parseDQT : 118), DQT offset:0x16
Quantization table for color_id(0):
10 11 12 14 12 10 16 14
13 14 18 17 16 19 24 40
26 24 22 22 24 49 35 37
29 40 58 51 61 60 57 51
56 55 64 72 92 78 64 68
87 69 55 56 80 109 81 87
95 98 103 104 103 62 77 113
121 112 100 120 92 101 103 99
---------------------------------------------------------------------------------------------
(parseDQT : 118), DQT offset:0x5b
Quantization table for color_id(1):
10 18 18 24 21 24 47 26
26 47 99 66 56 66 99 99
99 99 99 99 99 99 99 99
99 99 99 99 99 99 99 99
99 99 99 99 99 99 99 99
99 99 99 99 99 99 99 99
99 99 99 99 99 99 99 99
99 99 99 99 99 99 99 99
---------------------------------------------------------------------------------------------
(parseSOF : 247), SOF offset:0xa0
pic resolution => (992 x 720)
sampling_factor=> comp_id:[1], qt_id:[0], factor:(2 x 2)
sampling_factor=> comp_id:[2], qt_id:[1], factor:(1 x 1)
sampling_factor=> comp_id:[3], qt_id:[1], factor:(1 x 1)
(parseDHT : 148), DHT offset:0xb3
table id: [0][0]--[DC0], dump more detail info...
CodeCntOfNBits: 0 2 3 1 1 1 0 0 0 0 0 0 0 0 0 0
total code cnt: 8
ValidCodeWidth: 2 2 3 3 3 4 5 6
-----------------huffman table: [0][0]---------------------
[SequenceNum] (CodeWidth, Code) -> CodeVal
[ 0] ( 2, 0) -> 0x1
[ 1] ( 2, 0x1) -> 0
[ 2] ( 3, 0x4) -> 0x2
[ 3] ( 3, 0x5) -> 0x4
[ 4] ( 3, 0x6) -> 0x3
[ 5] ( 4, 0xe) -> 0x5
[ 6] ( 5, 0x1e) -> 0x6
[ 7] ( 6, 0x3e) -> 0x7
---------------------------------------------------------------------------------------------
(parseDHT : 148), DHT offset:0xd0
table id: [1][0]--[AC0], dump more detail info...
CodeCntOfNBits: 0 2 1 3 3 2 5 2 4 4 4 5 5 1 1 0
total code cnt: 42
ValidCodeWidth: 2 2 3 4 4 4 5 5 5 6 6 7 7 7 7 7 8 8 9 9 9 9 10 10 10 10 11 11 11 11 12 12 12 12 12 13 13 13 13 13 14 15
-----------------huffman table: [1][0]---------------------
[SequenceNum] (CodeWidth, Code) -> CodeVal
[ 0] ( 2, 0) -> 0x1
[ 1] ( 2, 0x1) -> 0
[ 2] ( 3, 0x4) -> 0x2
[ 3] ( 4, 0xa) -> 0x11
[ 4] ( 4, 0xb) -> 0x3
[ 5] ( 4, 0xc) -> 0x21
[ 6] ( 5, 0x1a) -> 0x4
[ 7] ( 5, 0x1b) -> 0x31
[ 8] ( 5, 0x1c) -> 0x41
[ 9] ( 6, 0x3a) -> 0x12
[ 10] ( 6, 0x3b) -> 0x51
[ 11] ( 7, 0x78) -> 0x5
[ 12] ( 7, 0x79) -> 0x61
[ 13] ( 7, 0x7a) -> 0x71
[ 14] ( 7, 0x7b) -> 0x22
[ 15] ( 7, 0x7c) -> 0x13
[ 16] ( 8, 0xfa) -> 0x32
[ 17] ( 8, 0xfb) -> 0x81
[ 18] ( 9, 0x1f8) -> 0x23
[ 19] ( 9, 0x1f9) -> 0x14
[ 20] ( 9, 0x1fa) -> 0x52
[ 21] ( 9, 0x1fb) -> 0x42
[ 22] ( 10, 0x3f8) -> 0x72
[ 23] ( 10, 0x3f9) -> 0x33
[ 24] ( 10, 0x3fa) -> 0x34
[ 25] ( 10, 0x3fb) -> 0x91
[ 26] ( 11, 0x7f8) -> 0x15
[ 27] ( 11, 0x7f9) -> 0x24
[ 28] ( 11, 0x7fa) -> 0xa1
[ 29] ( 11, 0x7fb) -> 0x62
[ 30] ( 12, 0xff8) -> 0xb1
[ 31] ( 12, 0xff9) -> 0x35
[ 32] ( 12, 0xffa) -> 0x82
[ 33] ( 12, 0xffb) -> 0x43
[ 34] ( 12, 0xffc) -> 0x6
[ 35] ( 13, 0x1ffa) -> 0x53
[ 36] ( 13, 0x1ffb) -> 0x25
[ 37] ( 13, 0x1ffc) -> 0xd1
[ 38] ( 13, 0x1ffd) -> 0xc1
[ 39] ( 13, 0x1ffe) -> 0x92
[ 40] ( 14, 0x3ffe) -> 0xa2
[ 41] ( 15, 0x7ffe) -> 0x54
---------------------------------------------------------------------------------------------
(parseDHT : 148), DHT offset:0x10f
table id: [0][1]--[DC1], dump more detail info...
CodeCntOfNBits: 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0
total code cnt: 5
ValidCodeWidth: 1 2 3 4 5
-----------------huffman table: [0][1]---------------------
[SequenceNum] (CodeWidth, Code) -> CodeVal
[ 0] ( 1, 0) -> 0
[ 1] ( 2, 0x2) -> 0x1
[ 2] ( 3, 0x6) -> 0x2
[ 3] ( 4, 0xe) -> 0x3
[ 4] ( 5, 0x1e) -> 0x4
---------------------------------------------------------------------------------------------
(parseDHT : 148), DHT offset:0x129
table id: [1][1]--[AC1], dump more detail info...
CodeCntOfNBits: 1 1 1 0 3 1 1 1 0 0 0 0 0 0 0 0
total code cnt: 9
ValidCodeWidth: 1 2 3 5 5 5 6 7 8
-----------------huffman table: [1][1]---------------------
[SequenceNum] (CodeWidth, Code) -> CodeVal
[ 0] ( 1, 0) -> 0
[ 1] ( 2, 0x2) -> 0x1
[ 2] ( 3, 0x6) -> 0x11
[ 3] ( 5, 0x1c) -> 0x31
[ 4] ( 5, 0x1d) -> 0x2
[ 5] ( 5, 0x1e) -> 0x21
[ 6] ( 6, 0x3e) -> 0x12
[ 7] ( 7, 0x7e) -> 0x41
[ 8] ( 8, 0xfe) -> 0x51
---------------------------------------------------------------------------------------------
(parseSOS : 293), SOS offset:0x147
color_id[1] use DC_table[0], AC_table[0]
color_id[2] use DC_table[1], AC_table[1]
color_id[3] use DC_table[1], AC_table[1]
only support baseline profile! should pass for most cases!
entropy begin! offset[0x153]
mcu_row_cnt:45, mcu_col_cnt:62
row/col_stride:(992 x 720), w/h:(992 x 720)
------------------block(6,6)----------------------
--------Y[0]--------
----after huffman decode, color[0]----
-75 1 0 0 0 1 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 ----after dequantization----
-750 11 0 0 0 10 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 ----after rezigzag----
-750 11 10 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 ----after idct2----
-90.2340 -91.4814 -93.3706 -95.0288 -95.7872 -95.5317 -94.7152 -94.0489
-90.2340 -91.4814 -93.3706 -95.0288 -95.7872 -95.5317 -94.7152 -94.0489
-90.2340 -91.4814 -93.3706 -95.0288 -95.7872 -95.5317 -94.7152 -94.0489
-90.2340 -91.4814 -93.3706 -95.0288 -95.7872 -95.5317 -94.7152 -94.0489
-90.2340 -91.4814 -93.3706 -95.0288 -95.7872 -95.5317 -94.7152 -94.0489
-90.2340 -91.4814 -93.3706 -95.0288 -95.7872 -95.5317 -94.7152 -94.0489
-90.2340 -91.4814 -93.3706 -95.0288 -95.7872 -95.5317 -94.7152 -94.0489
-90.2340 -91.4814 -93.3706 -95.0288 -95.7872 -95.5317 -94.7152 -94.0489 ----after ileveloffset----
37.7660 36.5186 34.6294 32.9712 32.2128 32.4683 33.2848 33.9511
37.7660 36.5186 34.6294 32.9712 32.2128 32.4683 33.2848 33.9511
37.7660 36.5186 34.6294 32.9712 32.2128 32.4683 33.2848 33.9511
37.7660 36.5186 34.6294 32.9712 32.2128 32.4683 33.2848 33.9511
37.7660 36.5186 34.6294 32.9712 32.2128 32.4683 33.2848 33.9511
37.7660 36.5186 34.6294 32.9712 32.2128 32.4683 33.2848 33.9511
37.7660 36.5186 34.6294 32.9712 32.2128 32.4683 33.2848 33.9511
37.7660 36.5186 34.6294 32.9712 32.2128 32.4683 33.2848 33.9511 --------Y[1]--------
----after huffman decode, color[0]----
-76 -1 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 ----after dequantization----
-760 -11 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 ----after rezigzag----
-760 -11 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 ----after idct2----
-96.9325 -96.6420 -96.1056 -95.4043 -94.6458 -93.9445 -93.4081 -93.1176
-96.9325 -96.6420 -96.1056 -95.4043 -94.6458 -93.9445 -93.4081 -93.1176
-96.9325 -96.6420 -96.1056 -95.4043 -94.6458 -93.9445 -93.4081 -93.1176
-96.9325 -96.6420 -96.1056 -95.4043 -94.6458 -93.9445 -93.4081 -93.1176
-96.9325 -96.6420 -96.1056 -95.4043 -94.6458 -93.9445 -93.4081 -93.1176
-96.9325 -96.6420 -96.1056 -95.4043 -94.6458 -93.9445 -93.4081 -93.1176
-96.9325 -96.6420 -96.1056 -95.4043 -94.6458 -93.9445 -93.4081 -93.1176
-96.9325 -96.6420 -96.1056 -95.4043 -94.6458 -93.9445 -93.4081 -93.1176 ----after ileveloffset----
31.0675 31.3580 31.8944 32.5957 33.3542 34.0555 34.5919 34.8824
31.0675 31.3580 31.8944 32.5957 33.3542 34.0555 34.5919 34.8824
31.0675 31.3580 31.8944 32.5957 33.3542 34.0555 34.5919 34.8824
31.0675 31.3580 31.8944 32.5957 33.3542 34.0555 34.5919 34.8824
31.0675 31.3580 31.8944 32.5957 33.3542 34.0555 34.5919 34.8824
31.0675 31.3580 31.8944 32.5957 33.3542 34.0555 34.5919 34.8824
31.0675 31.3580 31.8944 32.5957 33.3542 34.0555 34.5919 34.8824
31.0675 31.3580 31.8944 32.5957 33.3542 34.0555 34.5919 34.8824 --------Y[2]--------
----after huffman decode, color[0]----
-77 0 0 0 0 1 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 ----after dequantization----
-770 0 0 0 0 10 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 ----after rezigzag----
-770 0 10 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 ----after idct2----
-94.6421 -95.5989 -96.9518 -97.9087 -97.9087 -96.9518 -95.5989 -94.6421
-94.6421 -95.5989 -96.9518 -97.9087 -97.9087 -96.9518 -95.5989 -94.6421
-94.6421 -95.5989 -96.9518 -97.9087 -97.9087 -96.9518 -95.5989 -94.6421
-94.6421 -95.5989 -96.9518 -97.9087 -97.9087 -96.9518 -95.5989 -94.6421
-94.6421 -95.5989 -96.9518 -97.9087 -97.9087 -96.9518 -95.5989 -94.6421
-94.6421 -95.5989 -96.9518 -97.9087 -97.9087 -96.9518 -95.5989 -94.6421
-94.6421 -95.5989 -96.9518 -97.9087 -97.9087 -96.9518 -95.5989 -94.6421
-94.6421 -95.5989 -96.9518 -97.9087 -97.9087 -96.9518 -95.5989 -94.6421 ----after ileveloffset----
33.3579 32.4011 31.0482 30.0913 30.0913 31.0482 32.4011 33.3579
33.3579 32.4011 31.0482 30.0913 30.0913 31.0482 32.4011 33.3579
33.3579 32.4011 31.0482 30.0913 30.0913 31.0482 32.4011 33.3579
33.3579 32.4011 31.0482 30.0913 30.0913 31.0482 32.4011 33.3579
33.3579 32.4011 31.0482 30.0913 30.0913 31.0482 32.4011 33.3579
33.3579 32.4011 31.0482 30.0913 30.0913 31.0482 32.4011 33.3579
33.3579 32.4011 31.0482 30.0913 30.0913 31.0482 32.4011 33.3579
33.3579 32.4011 31.0482 30.0913 30.0913 31.0482 32.4011 33.3579 --------Y[3]--------
----after huffman decode, color[0]----
-73 -1 -1 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 ----after dequantization----
-730 -11 -12 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 ----after rezigzag----
-730 -11 0 0 0 0 0 0
-12 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 ----after idct2----
-95.2624 -94.9718 -94.4354 -93.7342 -92.9757 -92.2744 -91.7380 -91.4475
-94.9454 -94.6549 -94.1185 -93.4172 -92.6587 -91.9574 -91.4211 -91.1305
-94.3603 -94.0697 -93.5333 -92.8320 -92.0736 -91.3723 -90.8359 -90.5453
-93.5952 -93.3047 -92.7683 -92.0670 -91.3085 -90.6072 -90.0709 -89.7803
-92.7678 -92.4772 -91.9409 -91.2396 -90.4811 -89.7798 -89.2434 -88.9529
-92.0028 -91.7122 -91.1758 -90.4745 -89.7161 -89.0148 -88.4784 -88.1878
-91.4176 -91.1271 -90.5907 -89.8894 -89.1309 -88.4296 -87.8932 -87.6027
-91.1007 -90.8101 -90.2737 -89.5724 -88.8140 -88.1127 -87.5763 -87.2857 ----after ileveloffset----
32.7376 33.0282 33.5646 34.2658 35.0243 35.7256 36.2620 36.5525
33.0546 33.3451 33.8815 34.5828 35.3413 36.0426 36.5789 36.8695
33.6397 33.9303 34.4667 35.1680 35.9264 36.6277 37.1641 37.4547
34.4048 34.6953 35.2317 35.9330 36.6915 37.3928 37.9291 38.2197
35.2322 35.5228 36.0591 36.7604 37.5189 38.2202 38.7566 39.0471
35.9972 36.2878 36.8242 37.5255 38.2839 38.9852 39.5216 39.8122
36.5824 36.8729 37.4093 38.1106 38.8691 39.5704 40.1068 40.3973
36.8993 37.1899 37.7263 38.4276 39.1860 39.8873 40.4237 40.7143 --------Cb--------
----after huffman decode, color[1]----
2 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 ----after dequantization----
20 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 ----after rezigzag----
20 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 ----after idct2----
2.5007 2.5007 2.5007 2.5007 2.5007 2.5007 2.5007 2.5007
2.5007 2.5007 2.5007 2.5007 2.5007 2.5007 2.5007 2.5007
2.5007 2.5007 2.5007 2.5007 2.5007 2.5007 2.5007 2.5007
2.5007 2.5007 2.5007 2.5007 2.5007 2.5007 2.5007 2.5007
2.5007 2.5007 2.5007 2.5007 2.5007 2.5007 2.5007 2.5007
2.5007 2.5007 2.5007 2.5007 2.5007 2.5007 2.5007 2.5007
2.5007 2.5007 2.5007 2.5007 2.5007 2.5007 2.5007 2.5007
2.5007 2.5007 2.5007 2.5007 2.5007 2.5007 2.5007 2.5007 ----after ileveloffset----
130.5007 130.5007 130.5007 130.5007 130.5007 130.5007 130.5007 130.5007
130.5007 130.5007 130.5007 130.5007 130.5007 130.5007 130.5007 130.5007
130.5007 130.5007 130.5007 130.5007 130.5007 130.5007 130.5007 130.5007
130.5007 130.5007 130.5007 130.5007 130.5007 130.5007 130.5007 130.5007
130.5007 130.5007 130.5007 130.5007 130.5007 130.5007 130.5007 130.5007
130.5007 130.5007 130.5007 130.5007 130.5007 130.5007 130.5007 130.5007
130.5007 130.5007 130.5007 130.5007 130.5007 130.5007 130.5007 130.5007
130.5007 130.5007 130.5007 130.5007 130.5007 130.5007 130.5007 130.5007 --------Cr--------
----after huffman decode, color[1]----
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 ----after dequantization----
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 ----after rezigzag----
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 ----after idct2----
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 ----after ileveloffset----
128.0000 128.0000 128.0000 128.0000 128.0000 128.0000 128.0000 128.0000
128.0000 128.0000 128.0000 128.0000 128.0000 128.0000 128.0000 128.0000
128.0000 128.0000 128.0000 128.0000 128.0000 128.0000 128.0000 128.0000
128.0000 128.0000 128.0000 128.0000 128.0000 128.0000 128.0000 128.0000
128.0000 128.0000 128.0000 128.0000 128.0000 128.0000 128.0000 128.0000
128.0000 128.0000 128.0000 128.0000 128.0000 128.0000 128.0000 128.0000
128.0000 128.0000 128.0000 128.0000 128.0000 128.0000 128.0000 128.0000
128.0000 128.0000 128.0000 128.0000 128.0000 128.0000 128.0000 128.0000 entropy end! offset[0x95cb], left_bits[2], cur_data[0x2b], last_two_bytes:[0xff 0xd9] should be EOI:[0xFF 0xD9]
jpeg entropy time duration: [104847] us
output_file:[animal_park_992_720_yuv420.yuv]
MiniJpegDecoder finish decoding file[animal_park.jpg]!

  

MiniJpegDecoder使用介绍的更多相关文章

  1. jpeg软解码实现介绍

    我的月经贴博客该更新了!!!已经有许多博文需要补了! 去年开始的jpeg解码项目,中间停止更新了大半年时间,上个月想起这事还没完工,就又做了更多兼容性和性能上的改进,目前终于接近尾声了.有需要参考的可 ...

  2. CSS3 background-image背景图片相关介绍

    这里将会介绍如何通过background-image设置背景图片,以及背景图片的平铺.拉伸.偏移.设置大小等操作. 1. 背景图片样式分类 CSS中设置元素背景图片及其背景图片样式的属性主要以下几个: ...

  3. MySQL高级知识- MySQL的架构介绍

    [TOC] 1.MySQL 简介 概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而 ...

  4. Windows Server 2012 NIC Teaming介绍及注意事项

    Windows Server 2012 NIC Teaming介绍及注意事项 转载自:http://www.it165.net/os/html/201303/4799.html Windows Ser ...

  5. Linux下服务器端开发流程及相关工具介绍(C++)

    去年刚毕业来公司后,做为新人,发现很多东西都没有文档,各种工具和地址都是口口相传的,而且很多时候都是不知道有哪些工具可以使用,所以当时就想把自己接触到的这些东西记录下来,为后来者提供参考,相当于一个路 ...

  6. JavaScript var关键字、变量的状态、异常处理、命名规范等介绍

    本篇主要介绍var关键字.变量的undefined和null状态.异常处理.命名规范. 目录 1. var 关键字:介绍var关键字的使用. 2. 变量的状态:介绍变量的未定义.已定义未赋值.已定义已 ...

  7. HTML DOM 介绍

    本篇主要介绍DOM内容.DOM 节点.节点属性以及获取HTML元素的方法. 目录 1. 介绍 DOM:介绍DOM,以及对DOM分类和功能的说明. 2. DOM 节点:介绍DOM节点分类和节点层次. 3 ...

  8. HTML 事件(一) 事件的介绍

    本篇主要介绍HTML中的事件知识:事件相关术语.DOM事件规范.事件对象. 其他事件文章 1. HTML 事件(一) 事件的介绍 2. HTML 事件(二) 事件的注册与注销 3. HTML 事件(三 ...

  9. HTML5 介绍

    本篇主要介绍HTML5规范的内容和页面上的架构变动. 目录 1. HTML5介绍 1.1 介绍 1.2 内容 1.3 浏览器支持情况 2. 创建HTML5页面 2.1 <!DOCTYPE> ...

随机推荐

  1. Docker 安装及配置镜像加速

    Docker 版本 随着 Docker 的飞速发展,企业级功能的上线,更好的服务意味着需要支付一定的费用,目前 Docker 被分为两个版本: community-edition 社区版 enterp ...

  2. 如何运用excel或spss等软件统计大量纸质问卷?

      在用纸质问卷进行数据收集时,总是避不开一个问题,就是如何把数据快速准确的进行统计分析.这里提供一个方法,包括以下几个步骤: 一.录入数据 二.上传数据 三.分析数据  一.录入数据 首先把纸质问卷 ...

  3. 3、Entity Framework Core 3.1入门教程-设定字段属性

    本文章是根据 微软MVP solenovex(杨旭)老师的视频教程编写而来,再加上自己的一些理解. 视频教程地址:https://www.bilibili.com/video/BV1xa4y1v7rR ...

  4. 安装oracleXE快捷版(二)

    -bash-3.2$ 是oracle用户下的提示符 [root@localhost ~]# 是root用户下的提示符 #用root去修改oracle用户的密码123456[root@localhost ...

  5. Selenium多浏览器处理

    当我们在执行自动化测试过程中,往往会针对不同的浏览器做兼容性测试,那么我们在代码中,可以针对执行命令传过来的参数,选择对应的浏览器来执行测试用例 代码如下: 在终端中执行命令如上图红框中所示: bro ...

  6. [HGAME] Week1 Web WriteUp

    一 .Cosmos的博客 打开题目之后,首页直接给了我们提示: 版本管理工具常用的有git和svn两种,这里提示了GitHub,考虑Git信息泄露,先访问/.git/目录考虑用Githack获取泄露信 ...

  7. 详解 LeetCode_007_整数反转(Java 实现)

    目录 LeetCode_007_整数反转 题目描述 总体分析 解决方案 小结 LeetCode_007_整数反转 题目描述 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示 ...

  8. 矩阵LU分解的MATLAB与C++实现

    一:矩阵LU分解 矩阵的LU分解目的是将一个非奇异矩阵\(A\)分解成\(A=LU\)的形式,其中\(L\)是一个主对角线为\(1\)的下三角矩阵:\(U\)是一个上三角矩阵. 比如\(A= \beg ...

  9. Python爬取NBA虎扑球员数据

    虎扑是一个认真而有趣的社区,每天有众多JRs在虎扑分享自己对篮球.足球.游戏电竞.运动装备.影视.汽车.数码.情感等一切人和事的见解,热闹.真实.有温度. 受害者地址 https://nba.hupu ...

  10. Unity3D与iOS的交互

    1. 关于Unity3D Unity3D(以下简称U3D)是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏.建筑可视化.实时三维动画等类型互动内容的多平台的综合型游戏开 ...