The VP3/4/5/6 reference decoders all use three IDCT versions: one for the DC-only case, another for blocks with more than 10 coefficients, and an optimised one for blocks with up to 10 AC coefficents. VP6 relies on the sparse 10 coefficient version, and without it, IDCT drift occurs. Fixes: https://trac.ffmpeg.org/ticket/1282
Unified · Split
| @@ -252,6 +252,7 @@ static int vp5_parse_coeff(VP56Context *s) · 251 unmodified lines | |||
| 252 | for (i=coeff_idx; i<=ctx_last; i++) | 252 | for (i=coeff_idx; i<=ctx_last; i++) |
| 253 | s->coeff_ctx[ff_vp56_b6to4[b]][i] = 5; | 253 | s->coeff_ctx[ff_vp56_b6to4[b]][i] = 5; |
| 254 | s->above_blocks[s->above_block_idx[b]].not_null_dc = s->coeff_ctx[ff_vp56_b6to4[b]][0]; | 254 | s->above_blocks[s->above_block_idx[b]].not_null_dc = s->coeff_ctx[ff_vp56_b6to4[b]][0]; |
| 255 | s->idct_selector[b] = 63; | ||
| 255 | } | 256 | } |
| 256 | return 0; | 257 | return 0; |
| 257 | } | 258 | } |
| @@ -406,6 +406,24 @@ static void vp56_mc(VP56Context *s, int b, int plane, uint8_t *src, · 405 unmodified lines | |||
| 406 | } | 406 | } |
| 407 | } | 407 | } |
| 408 | 408 | ||
| 409 | static void vp56_idct_put(VP56Context *s, uint8_t * dest, ptrdiff_t stride, int16_t *block, int selector) | ||
| 410 | { | ||
| 411 | if (selector > 10 || selector == 1) | ||
| 412 | s->vp3dsp.idct_put(dest, stride, block); | ||
| 413 | else | ||
| 414 | ff_vp3dsp_idct10_put(dest, stride, block); | ||
| 415 | } | ||
| 416 | |||
| 417 | static void vp56_idct_add(VP56Context *s, uint8_t * dest, ptrdiff_t stride, int16_t *block, int selector) | ||
| 418 | { | ||
| 419 | if (selector > 10) | ||
| 420 | s->vp3dsp.idct_add(dest, stride, block); | ||
| 421 | else if (selector > 1) | ||
| 422 | ff_vp3dsp_idct10_add(dest, stride, block); | ||
| 423 | else | ||
| 424 | s->vp3dsp.idct_dc_add(dest, stride, block); | ||
| 425 | } | ||
| 426 | |||
| 409 | static av_always_inline void vp56_render_mb(VP56Context *s, int row, int col, int is_alpha, VP56mb mb_type) | 427 | static av_always_inline void vp56_render_mb(VP56Context *s, int row, int col, int is_alpha, VP56mb mb_type) |
| 410 | { | 428 | { |
| 411 | int b, ab, b_max, plane, off; | 429 | int b, ab, b_max, plane, off; |
| @@ -426,8 +444,8 @@ static av_always_inline void vp56_render_mb(VP56Context *s, int row, int col, in · 14 unmodified lines | |||
| 426 | case VP56_MB_INTRA: | 444 | case VP56_MB_INTRA: |
| 427 | for (b=0; b<b_max; b++) { | 445 | for (b=0; b<b_max; b++) { |
| 428 | plane = ff_vp56_b2p[b+ab]; | 446 | plane = ff_vp56_b2p[b+ab]; |
| 429 | s->vp3dsp.idct_put(frame_current->data[plane] + s->block_offset[b], | 447 | vp56_idct_put(s, frame_current->data[plane] + s->block_offset[b], |
| 430 | s->stride[plane], s->block_coeff[b]); | 448 | s->stride[plane], s->block_coeff[b], s->idct_selector[b]); |
| 431 | } | 449 | } |
| 432 | break; | 450 | break; |
| 433 | 451 | ||
| @@ -439,8 +457,8 @@ static av_always_inline void vp56_render_mb(VP56Context *s, int row, int col, in · 5 unmodified lines | |||
| 439 | s->hdsp.put_pixels_tab[1][0](frame_current->data[plane] + off, | 457 | s->hdsp.put_pixels_tab[1][0](frame_current->data[plane] + off, |
| 440 | frame_ref->data[plane] + off, | 458 | frame_ref->data[plane] + off, |
| 441 | s->stride[plane], 8); | 459 | s->stride[plane], 8); |
| 442 | s->vp3dsp.idct_add(frame_current->data[plane] + off, | 460 | vp56_idct_add(s, frame_current->data[plane] + off, |
| 443 | s->stride[plane], s->block_coeff[b]); | 461 | s->stride[plane], s->block_coeff[b], s->idct_selector[b]); |
| 444 | } | 462 | } |
| 445 | break; | 463 | break; |
| 446 | 464 | ||
| @@ -457,8 +475,8 @@ static av_always_inline void vp56_render_mb(VP56Context *s, int row, int col, in · 10 unmodified lines | |||
| 457 | plane = ff_vp56_b2p[b+ab]; | 475 | plane = ff_vp56_b2p[b+ab]; |
| 458 | vp56_mc(s, b, plane, frame_ref->data[plane], s->stride[plane], | 476 | vp56_mc(s, b, plane, frame_ref->data[plane], s->stride[plane], |
| 459 | 16*col+x_off, 16*row+y_off); | 477 | 16*col+x_off, 16*row+y_off); |
| 460 | s->vp3dsp.idct_add(frame_current->data[plane] + s->block_offset[b], | 478 | vp56_idct_add(s, frame_current->data[plane] + s->block_offset[b], |
| 461 | s->stride[plane], s->block_coeff[b]); | 479 | s->stride[plane], s->block_coeff[b], s->idct_selector[b]); |
| 462 | } | 480 | } |
| 463 | break; | 481 | break; |
| 464 | } | 482 | } |
| @@ -105,6 +105,7 @@ typedef struct VP56Macroblock { · 104 unmodified lines | |||
| 105 | typedef struct VP56Model { | 105 | typedef struct VP56Model { |
| 106 | uint8_t coeff_reorder[64]; /* used in vp6 only */ | 106 | uint8_t coeff_reorder[64]; /* used in vp6 only */ |
| 107 | uint8_t coeff_index_to_pos[64]; /* used in vp6 only */ | 107 | uint8_t coeff_index_to_pos[64]; /* used in vp6 only */ |
| 108 | uint8_t coeff_index_to_idct_selector[64]; /* used in vp6 only */ | ||
| 108 | uint8_t vector_sig[2]; /* delta sign */ | 109 | uint8_t vector_sig[2]; /* delta sign */ |
| 109 | uint8_t vector_dct[2]; /* delta coding types */ | 110 | uint8_t vector_dct[2]; /* delta coding types */ |
| 110 | uint8_t vector_pdi[2][2]; /* predefined delta init */ | 111 | uint8_t vector_pdi[2][2]; /* predefined delta init */ |
| @@ -157,6 +158,7 @@ struct vp56_context { · 46 unmodified lines | |||
| 157 | VP56mb mb_type; | 158 | VP56mb mb_type; |
| 158 | VP56Macroblock *macroblocks; | 159 | VP56Macroblock *macroblocks; |
| 159 | DECLARE_ALIGNED(16, int16_t, block_coeff)[6][64]; | 160 | DECLARE_ALIGNED(16, int16_t, block_coeff)[6][64]; |
| 161 | int idct_selector[6]; | ||
| 160 | 162 | ||
| 161 | /* motion vectors */ | 163 | /* motion vectors */ |
| 162 | VP56mv mv[6]; /* vectors for each block in MB */ | 164 | VP56mv mv[6]; /* vectors for each block in MB */ |
| @@ -194,6 +194,18 @@ static void vp6_coeff_order_table_init(VP56Context *s) · 193 unmodified lines | |||
| 194 | for (pos=1; pos<64; pos++) | 194 | for (pos=1; pos<64; pos++) |
| 195 | if (s->modelp->coeff_reorder[pos] == i) | 195 | if (s->modelp->coeff_reorder[pos] == i) |
| 196 | s->modelp->coeff_index_to_pos[idx++] = pos; | 196 | s->modelp->coeff_index_to_pos[idx++] = pos; |
| 197 | |||
| 198 | for (idx = 0; idx < 64; idx++) { | ||
| 199 | int max = 0; | ||
| 200 | for (i = 0; i <= idx; i++) { | ||
| 201 | int v = s->modelp->coeff_index_to_pos[i]; | ||
| 202 | if (v > max) | ||
| 203 | max = v; | ||
| 204 | } | ||
| 205 | if (s->sub_version > 6) | ||
| 206 | max++; | ||
| 207 | s->modelp->coeff_index_to_idct_selector[idx] = max; | ||
| 208 | } | ||
| 197 | } | 209 | } |
| 198 | 210 | ||
| 199 | static void vp6_default_models_init(VP56Context *s) | 211 | static void vp6_default_models_init(VP56Context *s) |
| @@ -446,6 +458,7 @@ static int vp6_parse_coeff_huffman(VP56Context *s) · 246 unmodified lines | |||
| 446 | cg = FFMIN(vp6_coeff_groups[coeff_idx], 3); | 458 | cg = FFMIN(vp6_coeff_groups[coeff_idx], 3); |
| 447 | vlc_coeff = &s->ract_vlc[pt][ct][cg]; | 459 | vlc_coeff = &s->ract_vlc[pt][ct][cg]; |
| 448 | } | 460 | } |
| 461 | s->idct_selector[b] = model->coeff_index_to_idct_selector[FFMIN(coeff_idx, 63)]; | ||
| 449 | } | 462 | } |
| 450 | return 0; | 463 | return 0; |
| 451 | } | 464 | } |
| @@ -527,6 +540,7 @@ static int vp6_parse_coeff(VP56Context *s) · 75 unmodified lines | |||
| 527 | 540 | ||
| 528 | s->left_block[ff_vp56_b6to4[b]].not_null_dc = | 541 | s->left_block[ff_vp56_b6to4[b]].not_null_dc = |
| 529 | s->above_blocks[s->above_block_idx[b]].not_null_dc = !!s->block_coeff[b][0]; | 542 | s->above_blocks[s->above_block_idx[b]].not_null_dc = !!s->block_coeff[b][0]; |
| 543 | s->idct_selector[b] = model->coeff_index_to_idct_selector[FFMIN(coeff_idx, 63)]; | ||
| 530 | } | 544 | } |
| 531 | return 0; | 545 | return 0; |
| 532 | } | 546 | } |
| @@ -4,95 +4,95 @@ · 3 unmodified lines | |||
| 4 | #dimensions 0: 300x180 | 4 | #dimensions 0: 300x180 |
| 5 | #sar 0: 0/1 | 5 | #sar 0: 0/1 |
| 6 | 0, 0, 0, 1, 135000, 0x9dceed6d | 6 | 0, 0, 0, 1, 135000, 0x9dceed6d |
| 7 | 0, 1, 1, 1, 135000, 0x47e5778d | 7 | 0, 1, 1, 1, 135000, 0x1fc377a4 |
| 8 | 0, 2, 2, 1, 135000, 0x5de36599 | 8 | 0, 2, 2, 1, 135000, 0x0b4465d4 |
| 9 | 0, 3, 3, 1, 135000, 0x540d8079 | 9 | 0, 3, 3, 1, 135000, 0x136b8062 |
| 10 | 0, 4, 4, 1, 135000, 0xba9ea534 | 10 | 0, 4, 4, 1, 135000, 0x4691a55c |
| 11 | 0, 5, 5, 1, 135000, 0xa75088f8 | 11 | 0, 5, 5, 1, 135000, 0x55bb8a19 |
| 12 | 0, 6, 6, 1, 135000, 0x7d867559 | 12 | 0, 6, 6, 1, 135000, 0xdbf67651 |
| 13 | 0, 7, 7, 1, 135000, 0xcc678fee | 13 | 0, 7, 7, 1, 135000, 0x6fb19113 |
| 14 | 0, 8, 8, 1, 135000, 0x79c590b9 | 14 | 0, 8, 8, 1, 135000, 0x3edc9227 |
| 15 | 0, 9, 9, 1, 135000, 0x87789918 | 15 | 0, 9, 9, 1, 135000, 0x53b39aff |
| 16 | 0, 10, 10, 1, 135000, 0xaa939213 | 16 | 0, 10, 10, 1, 135000, 0x699e94b0 |
| 17 | 0, 11, 11, 1, 135000, 0x3912916d | 17 | 0, 11, 11, 1, 135000, 0xeedd9388 |
| 18 | 0, 12, 12, 1, 135000, 0x41305d0b | 18 | 0, 12, 12, 1, 135000, 0x14055f96 |
| 19 | 0, 13, 13, 1, 135000, 0x2686b5dd | 19 | 0, 13, 13, 1, 135000, 0x71fbb5fd |
| 20 | 0, 14, 14, 1, 135000, 0xa69ae422 | 20 | 0, 14, 14, 1, 135000, 0x6fb4e491 |
| 21 | 0, 15, 15, 1, 135000, 0x998a3478 | 21 | 0, 15, 15, 1, 135000, 0x35ca3482 |
| 22 | 0, 16, 16, 1, 135000, 0x5842768d | 22 | 0, 16, 16, 1, 135000, 0x0c2a7530 |
| 23 | 0, 17, 17, 1, 135000, 0xf6a85b16 | 23 | 0, 17, 17, 1, 135000, 0x422c5581 |
| 24 | 0, 18, 18, 1, 135000, 0x7a5b2708 | 24 | 0, 18, 18, 1, 135000, 0x19eb2155 |
| 25 | 0, 19, 19, 1, 135000, 0x8b2abb63 | 25 | 0, 19, 19, 1, 135000, 0x07e1b114 |
| 26 | 0, 20, 20, 1, 135000, 0x7dc8468b | 26 | 0, 20, 20, 1, 135000, 0xa10f3f81 |
| 27 | 0, 21, 21, 1, 135000, 0x04d85001 | 27 | 0, 21, 21, 1, 135000, 0x75684dcd |
| 28 | 0, 22, 22, 1, 135000, 0x83e3c647 | 28 | 0, 22, 22, 1, 135000, 0x1721c337 |
| 29 | 0, 23, 23, 1, 135000, 0xcddd687e | 29 | 0, 23, 23, 1, 135000, 0x3897667d |
| 30 | 0, 24, 24, 1, 135000, 0x818e785e | 30 | 0, 24, 24, 1, 135000, 0x1232769e |
| 31 | 0, 25, 25, 1, 135000, 0x3a915080 | 31 | 0, 25, 25, 1, 135000, 0xec975059 |
| 32 | 0, 26, 26, 1, 135000, 0x953d603d | 32 | 0, 26, 26, 1, 135000, 0xb2a46123 |
| 33 | 0, 27, 27, 1, 135000, 0x79005ebf | 33 | 0, 27, 27, 1, 135000, 0x052c5f72 |
| 34 | 0, 28, 28, 1, 135000, 0x80afec75 | 34 | 0, 28, 28, 1, 135000, 0x3087eb2f |
| 35 | 0, 29, 29, 1, 135000, 0xfc8e376b | 35 | 0, 29, 29, 1, 135000, 0xd1e0373a |
| 36 | 0, 30, 30, 1, 135000, 0xf957b7ef | 36 | 0, 30, 30, 1, 135000, 0x64dab704 |
| 37 | 0, 31, 31, 1, 135000, 0xe878da44 | 37 | 0, 31, 31, 1, 135000, 0xa44dd89e |
| 38 | 0, 32, 32, 1, 135000, 0xe68ecca3 | 38 | 0, 32, 32, 1, 135000, 0x380ecae9 |
| 39 | 0, 33, 33, 1, 135000, 0x1a2cc7d3 | 39 | 0, 33, 33, 1, 135000, 0x8c6fc4ab |
| 40 | 0, 34, 34, 1, 135000, 0x4f346a69 | 40 | 0, 34, 34, 1, 135000, 0x02096903 |
| 41 | 0, 35, 35, 1, 135000, 0x7a0cf4ac | 41 | 0, 35, 35, 1, 135000, 0x11edf432 |
| 42 | 0, 36, 36, 1, 135000, 0x6d4eee7a | 42 | 0, 36, 36, 1, 135000, 0x3585ee5f |
| 43 | 0, 37, 37, 1, 135000, 0xf0688cbd | 43 | 0, 37, 37, 1, 135000, 0xe1338c40 |
| 44 | 0, 38, 38, 1, 135000, 0xca4abbbc | 44 | 0, 38, 38, 1, 135000, 0x5edfbd0c |
| 45 | 0, 39, 39, 1, 135000, 0x87669519 | 45 | 0, 39, 39, 1, 135000, 0x9420965c |
| 46 | 0, 40, 40, 1, 135000, 0xd090e9d7 | 46 | 0, 40, 40, 1, 135000, 0x0caceb17 |
| 47 | 0, 41, 41, 1, 135000, 0xd7f536c1 | 47 | 0, 41, 41, 1, 135000, 0x3fdc36c3 |
| 48 | 0, 42, 42, 1, 135000, 0x353ede54 | 48 | 0, 42, 42, 1, 135000, 0x8a24df14 |
| 49 | 0, 43, 43, 1, 135000, 0xbc8f5358 | 49 | 0, 43, 43, 1, 135000, 0x5dc057b0 |
| 50 | 0, 44, 44, 1, 135000, 0xb52cd59a | 50 | 0, 44, 44, 1, 135000, 0xdc5eda65 |
| 51 | 0, 45, 45, 1, 135000, 0x0b882eba | 51 | 0, 45, 45, 1, 135000, 0x60433612 |
| 52 | 0, 46, 46, 1, 135000, 0xc544cd54 | 52 | 0, 46, 46, 1, 135000, 0x6a91d6c9 |
| 53 | 0, 47, 47, 1, 135000, 0x31ca7e73 | 53 | 0, 47, 47, 1, 135000, 0x53598734 |
| 54 | 0, 48, 48, 1, 135000, 0xb1569ce9 | 54 | 0, 48, 48, 1, 135000, 0xb1569ce9 |
| 55 | 0, 49, 49, 1, 135000, 0x8bf4394f | 55 | 0, 49, 49, 1, 135000, 0xf5e83a33 |
| 56 | 0, 50, 50, 1, 135000, 0xf413812a | 56 | 0, 50, 50, 1, 135000, 0xebe18275 |
| 57 | 0, 51, 51, 1, 135000, 0xf2fa90ab | 57 | 0, 51, 51, 1, 135000, 0x98af9447 |
| 58 | 0, 52, 52, 1, 135000, 0xdcd8b265 | 58 | 0, 52, 52, 1, 135000, 0x3f03b765 |
| 59 | 0, 53, 53, 1, 135000, 0xa89cdba1 | 59 | 0, 53, 53, 1, 135000, 0x7423e0b8 |
| 60 | 0, 54, 54, 1, 135000, 0x212b59a5 | 60 | 0, 54, 54, 1, 135000, 0x6c1b5faa |
| 61 | 0, 55, 55, 1, 135000, 0x10c589c3 | 61 | 0, 55, 55, 1, 135000, 0xebf98d52 |
| 62 | 0, 56, 56, 1, 135000, 0x432ab5b4 | 62 | 0, 56, 56, 1, 135000, 0xf3dfb8b6 |
| 63 | 0, 57, 57, 1, 135000, 0x85a9634a | 63 | 0, 57, 57, 1, 135000, 0x85a9634a |
| 64 | 0, 58, 58, 1, 135000, 0x10db5b87 | 64 | 0, 58, 58, 1, 135000, 0x4d425bb5 |
| 65 | 0, 59, 59, 1, 135000, 0x583145d9 | 65 | 0, 59, 59, 1, 135000, 0xfb7945ee |
| 66 | 0, 60, 60, 1, 135000, 0x7d3a33bd | 66 | 0, 60, 60, 1, 135000, 0x593534c1 |
| 67 | 0, 61, 61, 1, 135000, 0xcf592423 | 67 | 0, 61, 61, 1, 135000, 0xe3fa2517 |
| 68 | 0, 62, 62, 1, 135000, 0xb59728e5 | 68 | 0, 62, 62, 1, 135000, 0x893629e3 |
| 69 | 0, 63, 63, 1, 135000, 0x1eeca660 | 69 | 0, 63, 63, 1, 135000, 0xdc3ca6ad |
| 70 | 0, 64, 64, 1, 135000, 0xff7bcc34 | 70 | 0, 64, 64, 1, 135000, 0x16b1ce27 |
| 71 | 0, 65, 65, 1, 135000, 0x0ef8f271 | 71 | 0, 65, 65, 1, 135000, 0x8296f478 |
| 72 | 0, 66, 66, 1, 135000, 0x8c9ca8ee | 72 | 0, 66, 66, 1, 135000, 0x9e9baaa3 |
| 73 | 0, 67, 67, 1, 135000, 0x8a7ece34 | 73 | 0, 67, 67, 1, 135000, 0x994ecd4a |
| 74 | 0, 68, 68, 1, 135000, 0x7d4c3b5d | 74 | 0, 68, 68, 1, 135000, 0x40f83b3c |
| 75 | 0, 69, 69, 1, 135000, 0x99118f21 | 75 | 0, 69, 69, 1, 135000, 0x0de38f90 |
| 76 | 0, 70, 70, 1, 135000, 0xd97fe7e2 | 76 | 0, 70, 70, 1, 135000, 0x5455ea6c |
| 77 | 0, 71, 71, 1, 135000, 0xf93842f1 | 77 | 0, 71, 71, 1, 135000, 0x053e41e8 |
| 78 | 0, 72, 72, 1, 135000, 0x35c912e8 | 78 | 0, 72, 72, 1, 135000, 0x0fee1281 |
| 79 | 0, 73, 73, 1, 135000, 0x14e59e97 | 79 | 0, 73, 73, 1, 135000, 0xa0c9a434 |
| 80 | 0, 74, 74, 1, 135000, 0x8e4c19aa | 80 | 0, 74, 74, 1, 135000, 0x8e4c19aa |
| 81 | 0, 75, 75, 1, 135000, 0x4adfbc53 | 81 | 0, 75, 75, 1, 135000, 0x34bebc00 |
| 82 | 0, 76, 76, 1, 135000, 0x0613adde | 82 | 0, 76, 76, 1, 135000, 0x6670ad6f |
| 83 | 0, 77, 77, 1, 135000, 0x8db264ab | 83 | 0, 77, 77, 1, 135000, 0xdbba63fc |
| 84 | 0, 78, 78, 1, 135000, 0x3948b619 | 84 | 0, 78, 78, 1, 135000, 0xe34fb839 |
| 85 | 0, 79, 79, 1, 135000, 0x843d7c02 | 85 | 0, 79, 79, 1, 135000, 0xa3ce7eb1 |
| 86 | 0, 80, 80, 1, 135000, 0x534fea34 | 86 | 0, 80, 80, 1, 135000, 0xdec7ed7d |
| 87 | 0, 81, 81, 1, 135000, 0xdb7041bf | 87 | 0, 81, 81, 1, 135000, 0xdb7041bf |
| 88 | 0, 82, 82, 1, 135000, 0xd0ce1cce | 88 | 0, 82, 82, 1, 135000, 0x2b1d1dc1 |
| 89 | 0, 83, 83, 1, 135000, 0x3c008335 | 89 | 0, 83, 83, 1, 135000, 0xaaa384c1 |
| 90 | 0, 84, 84, 1, 135000, 0xb699208f | 90 | 0, 84, 84, 1, 135000, 0x37f42217 |
| 91 | 0, 85, 85, 1, 135000, 0xe07da3ca | 91 | 0, 85, 85, 1, 135000, 0x928ba4da |
| 92 | 0, 86, 86, 1, 135000, 0x26331f41 | 92 | 0, 86, 86, 1, 135000, 0x2b681f41 |
| 93 | 0, 87, 87, 1, 135000, 0x4e19fe83 | 93 | 0, 87, 87, 1, 135000, 0xcbe1ff84 |
| 94 | 0, 88, 88, 1, 135000, 0xaa9a9e45 | 94 | 0, 88, 88, 1, 135000, 0x47949f24 |
| 95 | 0, 89, 89, 1, 135000, 0x336b7ed0 | 95 | 0, 89, 89, 1, 135000, 0x368b7fe5 |
| 96 | 0, 90, 90, 1, 135000, 0xc9bf7611 | 96 | 0, 90, 90, 1, 135000, 0x1cf4773b |
| 97 | 0, 91, 91, 1, 135000, 0x14c33a35 | 97 | 0, 91, 91, 1, 135000, 0x14c33a35 |
| 98 | 0, 92, 92, 1, 135000, 0xdc08470e | 98 | 0, 92, 92, 1, 135000, 0xdc08470e |
| @@ -4,95 +4,95 @@ · 3 unmodified lines | |||
| 4 | #dimensions 0: 300x180 | 4 | #dimensions 0: 300x180 |
| 5 | #sar 0: 0/1 | 5 | #sar 0: 0/1 |
| 6 | 0, 0, 0, 1, 81000, 0xcb92962d | 6 | 0, 0, 0, 1, 81000, 0xcb92962d |
| 7 | 0, 1, 1, 1, 81000, 0xae381904 | 7 | 0, 1, 1, 1, 81000, 0x8fef1925 |
| 8 | 0, 2, 2, 1, 81000, 0x1fcc0c75 | 8 | 0, 2, 2, 1, 81000, 0xf0350cb6 |
| 9 | 0, 3, 3, 1, 81000, 0x023f0c21 | 9 | 0, 3, 3, 1, 81000, 0xa70a0c52 |
| 10 | 0, 4, 4, 1, 81000, 0xad691402 | 10 | 0, 4, 4, 1, 81000, 0x21ef1490 |
| 11 | 0, 5, 5, 1, 81000, 0x42390be0 | 11 | 0, 5, 5, 1, 81000, 0x98bc0c96 |
| 12 | 0, 6, 6, 1, 81000, 0xc1c10a4e | 12 | 0, 6, 6, 1, 81000, 0x92380b27 |
| 13 | 0, 7, 7, 1, 81000, 0x9c0315ac | 13 | 0, 7, 7, 1, 81000, 0xbba216cd |
| 14 | 0, 8, 8, 1, 81000, 0xc2a315a7 | 14 | 0, 8, 8, 1, 81000, 0x92a8172b |
| 15 | 0, 9, 9, 1, 81000, 0x3a631392 | 15 | 0, 9, 9, 1, 81000, 0xfbc21592 |
| 16 | 0, 10, 10, 1, 81000, 0x11591414 | 16 | 0, 10, 10, 1, 81000, 0xdad416a1 |
| 17 | 0, 11, 11, 1, 81000, 0x1a551125 | 17 | 0, 11, 11, 1, 81000, 0xec4d13aa |
| 18 | 0, 12, 12, 1, 81000, 0x2e1efa4f | 18 | 0, 12, 12, 1, 81000, 0xaf36fcff |
| 19 | 0, 13, 13, 1, 81000, 0x4aa3f016 | 19 | 0, 13, 13, 1, 81000, 0xb4fcf056 |
| 20 | 0, 14, 14, 1, 81000, 0x74c029d8 | 20 | 0, 14, 14, 1, 81000, 0xe3782a3f |
| 21 | 0, 15, 15, 1, 81000, 0xdee9a98b | 21 | 0, 15, 15, 1, 81000, 0x714daa0b |
| 22 | 0, 16, 16, 1, 81000, 0xdf3502d5 | 22 | 0, 16, 16, 1, 81000, 0xe2770382 |
| 23 | 0, 17, 17, 1, 81000, 0x4653536b | 23 | 0, 17, 17, 1, 81000, 0x553253ff |
| 24 | 0, 18, 18, 1, 81000, 0x7f658c75 | 24 | 0, 18, 18, 1, 81000, 0x928d8c46 |
| 25 | 0, 19, 19, 1, 81000, 0xab18ff13 | 25 | 0, 19, 19, 1, 81000, 0x06c8fe82 |
| 26 | 0, 20, 20, 1, 81000, 0xac2b8f3b | 26 | 0, 20, 20, 1, 81000, 0xb8198f5a |
| 27 | 0, 21, 21, 1, 81000, 0xd61ff094 | 27 | 0, 21, 21, 1, 81000, 0x0029f118 |
| 28 | 0, 22, 22, 1, 81000, 0x425bfc2b | 28 | 0, 22, 22, 1, 81000, 0x6fe7fc6f |
| 29 | 0, 23, 23, 1, 81000, 0x6be7ecd3 | 29 | 0, 23, 23, 1, 81000, 0x9165edde |
| 30 | 0, 24, 24, 1, 81000, 0x0b0ee65b | 30 | 0, 24, 24, 1, 81000, 0xe76ae791 |
| 31 | 0, 25, 25, 1, 81000, 0x3c6f146b | 31 | 0, 25, 25, 1, 81000, 0xa4dd145a |
| 32 | 0, 26, 26, 1, 81000, 0x27c4e9c8 | 32 | 0, 26, 26, 1, 81000, 0x2d7de9d8 |
| 33 | 0, 27, 27, 1, 81000, 0x174022c4 | 33 | 0, 27, 27, 1, 81000, 0xe102228b |
| 34 | 0, 28, 28, 1, 81000, 0x3320fe81 | 34 | 0, 28, 28, 1, 81000, 0xc57ffe0e |
| 35 | 0, 29, 29, 1, 81000, 0x7a3c342e | 35 | 0, 29, 29, 1, 81000, 0x324434cb |
| 36 | 0, 30, 30, 1, 81000, 0x448b4346 | 36 | 0, 30, 30, 1, 81000, 0xedc0433e |
| 37 | 0, 31, 31, 1, 81000, 0xd285b23d | 37 | 0, 31, 31, 1, 81000, 0xd42bb18a |
| 38 | 0, 32, 32, 1, 81000, 0x852ed590 | 38 | 0, 32, 32, 1, 81000, 0xedb3d561 |
| 39 | 0, 33, 33, 1, 81000, 0xc9d3df17 | 39 | 0, 33, 33, 1, 81000, 0x5244de92 |
| 40 | 0, 34, 34, 1, 81000, 0x4d23727b | 40 | 0, 34, 34, 1, 81000, 0x0bb27280 |
| 41 | 0, 35, 35, 1, 81000, 0x1fae66cd | 41 | 0, 35, 35, 1, 81000, 0xc6116736 |
| 42 | 0, 36, 36, 1, 81000, 0x384d54ab | 42 | 0, 36, 36, 1, 81000, 0x42f154e2 |
| 43 | 0, 37, 37, 1, 81000, 0x2fee6ba3 | 43 | 0, 37, 37, 1, 81000, 0xffbd6bf9 |
| 44 | 0, 38, 38, 1, 81000, 0xd7ad6f59 | 44 | 0, 38, 38, 1, 81000, 0x813170d0 |
| 45 | 0, 39, 39, 1, 81000, 0xaf5e3e76 | 45 | 0, 39, 39, 1, 81000, 0x430c4040 |
| 46 | 0, 40, 40, 1, 81000, 0x10fceda4 | 46 | 0, 40, 40, 1, 81000, 0x56d1eecb |
| 47 | 0, 41, 41, 1, 81000, 0xb26df92b | 47 | 0, 41, 41, 1, 81000, 0xaa4afa12 |
| 48 | 0, 42, 42, 1, 81000, 0xd6676e08 | 48 | 0, 42, 42, 1, 81000, 0x2c3d6fb8 |
| 49 | 0, 43, 43, 1, 81000, 0xff6b1b95 | 49 | 0, 43, 43, 1, 81000, 0xfedf1e3e |
| 50 | 0, 44, 44, 1, 81000, 0x6196d598 | 50 | 0, 44, 44, 1, 81000, 0xf538d893 |
| 51 | 0, 45, 45, 1, 81000, 0x833ebf1b | 51 | 0, 45, 45, 1, 81000, 0xcc81c3b5 |
| 52 | 0, 46, 46, 1, 81000, 0x7b085af1 | 52 | 0, 46, 46, 1, 81000, 0x59b95fbc |
| 53 | 0, 47, 47, 1, 81000, 0xe8f583b4 | 53 | 0, 47, 47, 1, 81000, 0xb4da87a0 |
| 54 | 0, 48, 48, 1, 81000, 0x3426d5e4 | 54 | 0, 48, 48, 1, 81000, 0x3426d5e4 |
| 55 | 0, 49, 49, 1, 81000, 0x214069ed | 55 | 0, 49, 49, 1, 81000, 0x8d066aae |
| 56 | 0, 50, 50, 1, 81000, 0x7dbdfd3f | 56 | 0, 50, 50, 1, 81000, 0x09effe79 |
| 57 | 0, 51, 51, 1, 81000, 0xf19b3f45 | 57 | 0, 51, 51, 1, 81000, 0xecc540ae |
| 58 | 0, 52, 52, 1, 81000, 0x0f05c7e2 | 58 | 0, 52, 52, 1, 81000, 0x845dc90c |
| 59 | 0, 53, 53, 1, 81000, 0xba94e323 | 59 | 0, 53, 53, 1, 81000, 0x9c2fe4d2 |
| 60 | 0, 54, 54, 1, 81000, 0x0de7b0c2 | 60 | 0, 54, 54, 1, 81000, 0x8887b277 |
| 61 | 0, 55, 55, 1, 81000, 0xfcf93c55 | 61 | 0, 55, 55, 1, 81000, 0x3bdc3ca9 |
| 62 | 0, 56, 56, 1, 81000, 0x8a8dbd55 | 62 | 0, 56, 56, 1, 81000, 0x094fbe27 |
| 63 | 0, 57, 57, 1, 81000, 0xddf22b97 | 63 | 0, 57, 57, 1, 81000, 0xddf22b97 |
| 64 | 0, 58, 58, 1, 81000, 0x49a830ff | 64 | 0, 58, 58, 1, 81000, 0x31b23156 |
| 65 | 0, 59, 59, 1, 81000, 0x82ab2a4b | 65 | 0, 59, 59, 1, 81000, 0xf5bf2ad8 |
| 66 | 0, 60, 60, 1, 81000, 0xd23420e5 | 66 | 0, 60, 60, 1, 81000, 0x4a9321c4 |
| 67 | 0, 61, 61, 1, 81000, 0x7c1017d1 | 67 | 0, 61, 61, 1, 81000, 0xdd1b18ca |
| 68 | 0, 62, 62, 1, 81000, 0x9aa61b38 | 68 | 0, 62, 62, 1, 81000, 0x4ece1cdd |
| 69 | 0, 63, 63, 1, 81000, 0x2a724a18 | 69 | 0, 63, 63, 1, 81000, 0x6a9a4b53 |
| 70 | 0, 64, 64, 1, 81000, 0xc18055f2 | 70 | 0, 64, 64, 1, 81000, 0x6624578b |
| 71 | 0, 65, 65, 1, 81000, 0xecba3855 | 71 | 0, 65, 65, 1, 81000, 0x89273a0f |
| 72 | 0, 66, 66, 1, 81000, 0x0eed6b0f | 72 | 0, 66, 66, 1, 81000, 0x9eb56c4c |
| 73 | 0, 67, 67, 1, 81000, 0x4be73816 | 73 | 0, 67, 67, 1, 81000, 0xe60238f5 |
| 74 | 0, 68, 68, 1, 81000, 0xa681214e | 74 | 0, 68, 68, 1, 81000, 0xbc4c228a |
| 75 | 0, 69, 69, 1, 81000, 0x4958f83d | 75 | 0, 69, 69, 1, 81000, 0x3feefa08 |
| 76 | 0, 70, 70, 1, 81000, 0xca0f0d61 | 76 | 0, 70, 70, 1, 81000, 0x0d620f37 |
| 77 | 0, 71, 71, 1, 81000, 0x3c453de1 | 77 | 0, 71, 71, 1, 81000, 0x93693fc8 |
| 78 | 0, 72, 72, 1, 81000, 0xff60360a | 78 | 0, 72, 72, 1, 81000, 0xfc4b3848 |
| 79 | 0, 73, 73, 1, 81000, 0xdcef0949 | 79 | 0, 73, 73, 1, 81000, 0xd9950bfb |
| 80 | 0, 74, 74, 1, 81000, 0xe5e3732d | 80 | 0, 74, 74, 1, 81000, 0xe5e3732d |
| 81 | 0, 75, 75, 1, 81000, 0x39747fd4 | 81 | 0, 75, 75, 1, 81000, 0x53517fd2 |
| 82 | 0, 76, 76, 1, 81000, 0x6bec70e6 | 82 | 0, 76, 76, 1, 81000, 0xb57c70b0 |
| 83 | 0, 77, 77, 1, 81000, 0x7026a8c0 | 83 | 0, 77, 77, 1, 81000, 0x378ea87c |
| 84 | 0, 78, 78, 1, 81000, 0x92de5b61 | 84 | 0, 78, 78, 1, 81000, 0xfd2b5b58 |
| 85 | 0, 79, 79, 1, 81000, 0x3f00507f | 85 | 0, 79, 79, 1, 81000, 0x66d45077 |
| 86 | 0, 80, 80, 1, 81000, 0x5620c377 | 86 | 0, 80, 80, 1, 81000, 0x6e07c3f8 |
| 87 | 0, 81, 81, 1, 81000, 0x39f5ed38 | 87 | 0, 81, 81, 1, 81000, 0x39f5ed38 |
| 88 | 0, 82, 82, 1, 81000, 0x6ee35d67 | 88 | 0, 82, 82, 1, 81000, 0x55b05da7 |
| 89 | 0, 83, 83, 1, 81000, 0x4f99a409 | 89 | 0, 83, 83, 1, 81000, 0x7f78a42c |
| 90 | 0, 84, 84, 1, 81000, 0x0a05b6ea | 90 | 0, 84, 84, 1, 81000, 0x5139b79c |
| 91 | 0, 85, 85, 1, 81000, 0xd6c442d9 | 91 | 0, 85, 85, 1, 81000, 0x4054437d |
| 92 | 0, 86, 86, 1, 81000, 0x0bb3d2f0 | 92 | 0, 86, 86, 1, 81000, 0x0f9dd327 |
| 93 | 0, 87, 87, 1, 81000, 0x6891c5b1 | 93 | 0, 87, 87, 1, 81000, 0xa885c60e |
| 94 | 0, 88, 88, 1, 81000, 0xf16ba9be | 94 | 0, 88, 88, 1, 81000, 0x37abaa72 |
| 95 | 0, 89, 89, 1, 81000, 0xba53528e | 95 | 0, 89, 89, 1, 81000, 0xdab25345 |
| 96 | 0, 90, 90, 1, 81000, 0xc847de49 | 96 | 0, 90, 90, 1, 81000, 0xbdf4df9d |
| 97 | 0, 91, 91, 1, 81000, 0xc5b2e2b0 | 97 | 0, 91, 91, 1, 81000, 0xc5b2e2b0 |
| 98 | 0, 92, 92, 1, 81000, 0xb0b497ff | 98 | 0, 92, 92, 1, 81000, 0xb0b497ff |