Lines Matching refs:td
200 int uncompressed_size, EXRThreadData *td)
204 if (uncompress(td->tmp, &dest_len, src, compressed_size) != Z_OK ||
210 s->dsp.predictor(td->tmp, uncompressed_size);
211 s->dsp.reorder_pixels(td->uncompressed_data, td->tmp, uncompressed_size);
259 int uncompressed_size, EXRThreadData *td)
261 rle(td->tmp, src, compressed_size, uncompressed_size);
265 ctx->dsp.predictor(td->tmp, uncompressed_size);
266 ctx->dsp.reorder_pixels(td->uncompressed_data, td->tmp, uncompressed_size);
369 EXRThreadData *td, int im, int iM)
373 td->run_sym = -1;
375 td->he[j].sym = i;
376 td->he[j].len = td->freq[i] & 63;
377 td->he[j].code = td->freq[i] >> 6;
378 if (td->he[j].len > 32) {
382 if (td->he[j].len > 0)
385 td->run_sym = i;
389 td->run_sym = 0;
391 td->run_sym = 65535;
393 if (td->run_sym == -1) {
398 td->he[j].sym = td->run_sym;
399 td->he[j].len = td->freq[iM] & 63;
400 if (td->he[j].len > 32) {
404 td->he[j].code = td->freq[iM] >> 6;
407 ff_free_vlc(&td->vlc);
408 return ff_init_vlc_sparse(&td->vlc, 12, j,
409 &td->he[0].len, sizeof(td->he[0]), sizeof(td->he[0].len),
410 &td->he[0].code, sizeof(td->he[0]), sizeof(td->he[0].code),
411 &td->he[0].sym, sizeof(td->he[0]), sizeof(td->he[0].sym), 0);
444 EXRThreadData *td,
462 if (!td->freq)
463 td->freq = av_malloc_array(HUF_ENCSIZE, sizeof(*td->freq));
464 if (!td->he)
465 td->he = av_calloc(HUF_ENCSIZE, sizeof(*td->he));
466 if (!td->freq || !td->he) {
471 memset(td->freq, 0, sizeof(*td->freq) * HUF_ENCSIZE);
472 if ((ret = huf_unpack_enc_table(gb, im, iM, td->freq)) < 0)
480 if ((ret = huf_build_dec_table(s, td, im, iM)) < 0)
482 return huf_decode(&td->vlc, gb, nBits, td->run_sym, dst_size, dst);
592 int dsize, EXRThreadData *td)
597 uint16_t *tmp = (uint16_t *)td->tmp;
605 if (!td->bitmap)
606 td->bitmap = av_malloc(BITMAP_SIZE);
607 if (!td->lut)
608 td->lut = av_malloc(1 << 17);
609 if (!td->bitmap || !td->lut) {
610 av_freep(&td->bitmap);
611 av_freep(&td->lut);
622 memset(td->bitmap, 0, FFMIN(min_non_zero, BITMAP_SIZE));
624 bytestream2_get_buffer(&gb, td->bitmap + min_non_zero,
626 memset(td->bitmap + max_non_zero + 1, 0, BITMAP_SIZE - max_non_zero - 1);
628 maxval = reverse_lut(td->bitmap, td->lut);
631 ret = huf_uncompress(s, td, &gb, tmp, dsize / sizeof(uint16_t));
645 wav_decode(ptr + j, td->xsize, pixel_half_size, td->ysize,
646 td->xsize * pixel_half_size, maxval);
647 ptr += td->xsize * td->ysize * pixel_half_size;
650 apply_lut(td->lut, tmp, dsize / sizeof(uint16_t));
652 out = (uint16_t *)td->uncompressed_data;
653 for (i = 0; i < td->ysize; i++) {
662 in = tmp + tmp_offset * td->xsize * td->ysize + i * td->xsize * pixel_half_size;
666 s->bbdsp.bswap16_buf(out, in, td->xsize * pixel_half_size);
668 memcpy(out, in, td->xsize * 2 * pixel_half_size);
670 out += td->xsize * pixel_half_size;
679 EXRThreadData *td)
682 const uint8_t *in = td->tmp;
688 expected_len += (td->xsize * td->ysize * 3);/* PRX 24 store float in 24 bit instead of 32 */
690 expected_len += (td->xsize * td->ysize * 2);
692 expected_len += (td->xsize * td->ysize * 4);
698 if (uncompress(td->tmp, &dest_len, src, compressed_size) != Z_OK) {
704 out = td->uncompressed_data;
705 for (i = 0; i < td->ysize; i++)
714 ptr[1] = ptr[0] + td->xsize;
715 ptr[2] = ptr[1] + td->xsize;
716 in = ptr[2] + td->xsize;
718 for (j = 0; j < td->xsize; ++j) {
728 ptr[1] = ptr[0] + td->xsize;
729 in = ptr[1] + td->xsize;
730 for (j = 0; j < td->xsize; j++) {
813 int uncompressed_size, EXRThreadData *td) {
823 nb_b44_block_w = td->xsize / 4;
824 if ((td->xsize % 4) != 0)
827 nb_b44_block_h = td->ysize / 4;
828 if ((td->ysize % 4) != 0)
858 for (y = index_tl_y; y < FFMIN(index_tl_y + 4, td->ysize); y++) {
859 for (x = index_tl_x; x < FFMIN(index_tl_x + 4, td->xsize); x++) {
860 index_out = target_channel_offset * td->xsize + y * td->channel_line_size + 2 * x;
862 td->uncompressed_data[index_out] = tmp_buffer[index_tmp] & 0xff;
863 td->uncompressed_data[index_out + 1] = tmp_buffer[index_tmp] >> 8;
870 if (stay_to_uncompress < td->ysize * td->xsize * 4) {
875 for (y = 0; y < td->ysize; y++) {
876 index_out = target_channel_offset * td->xsize + y * td->channel_line_size;
877 memcpy(&td->uncompressed_data[index_out], sr, td->xsize * 4);
878 sr += td->xsize * 4;
882 stay_to_uncompress -= td->ysize * td->xsize * 4;
990 int uncompressed_size, EXRThreadData *td)
995 const int dc_w = td->xsize >> 3;
996 const int dc_h = td->ysize >> 3;
1040 if (ac_count > 3LL * td->xsize * s->scan_lines_per_block)
1045 av_fast_padded_malloc(&td->ac_data, &td->ac_size, dest_len);
1046 if (!td->ac_data)
1051 ret = huf_uncompress(s, td, &agb, (int16_t *)td->ac_data, ac_count);
1056 if (uncompress(td->ac_data, &dest_len, agb.buffer, ac_size) != Z_OK ||
1076 av_fast_padded_malloc(&td->dc_data, &td->dc_size, FFALIGN(dest_len, 64) * 2);
1077 if (!td->dc_data)
1080 if (uncompress(td->dc_data + FFALIGN(dest_len, 64), &dest_len, agb.buffer, dc_size) != Z_OK ||
1084 s->dsp.predictor(td->dc_data + FFALIGN(dest_len, 64), dest_len);
1085 s->dsp.reorder_pixels(td->dc_data, td->dc_data + FFALIGN(dest_len, 64), dest_len);
1093 av_fast_padded_malloc(&td->rle_data, &td->rle_size, rle_usize);
1094 if (!td->rle_data)
1097 av_fast_padded_malloc(&td->rle_raw_data, &td->rle_raw_size, rle_raw_size);
1098 if (!td->rle_raw_data)
1101 if (uncompress(td->rle_data, &dest_len, gb.buffer, rle_csize) != Z_OK ||
1105 ret = rle(td->rle_raw_data, td->rle_data, rle_usize, rle_raw_size);
1111 bytestream2_init(&agb, td->ac_data, ac_count * 2);
1113 for (int y = 0; y < td->ysize; y += 8) {
1114 for (int x = 0; x < td->xsize; x += 8) {
1115 memset(td->block, 0, sizeof(td->block));
1118 float *block = td->block[j];
1120 uint16_t *dc = (uint16_t *)td->dc_data;
1134 float *bo = ((float *)td->uncompressed_data) +
1135 y * td->xsize * s->nb_channels + td->xsize * (o + 0) + x;
1136 float *go = ((float *)td->uncompressed_data) +
1137 y * td->xsize * s->nb_channels + td->xsize * (o + 1) + x;
1138 float *ro = ((float *)td->uncompressed_data) +
1139 y * td->xsize * s->nb_channels + td->xsize * (o + 2) + x;
1140 float *yb = td->block[0];
1141 float *ub = td->block[1];
1142 float *vb = td->block[2];
1155 bo += td->xsize * s->nb_channels;
1156 go += td->xsize * s->nb_channels;
1157 ro += td->xsize * s->nb_channels;
1166 for (int y = 0; y < td->ysize && td->rle_raw_data; y++) {
1167 uint32_t *ao = ((uint32_t *)td->uncompressed_data) + y * td->xsize * s->nb_channels;
1168 uint8_t *ai0 = td->rle_raw_data + y * td->xsize;
1169 uint8_t *ai1 = td->rle_raw_data + y * td->xsize + rle_raw_size / 2;
1171 for (int x = 0; x < td->xsize; x++) {
1186 EXRThreadData *td = &s->thread_data[threadnr];
1241 td->ysize = FFMIN(s->tile_attr.ySize, s->ydelta - tile_y * s->tile_attr.ySize);
1242 td->xsize = FFMIN(s->tile_attr.xSize, s->xdelta - tile_x * s->tile_attr.xSize);
1244 if (td->xsize * (uint64_t)s->current_channel_offset > INT_MAX ||
1245 av_image_check_size2(td->xsize, td->ysize, s->avctx->max_pixels, AV_PIX_FMT_NONE, 0, s->avctx) < 0)
1248 td->channel_line_size = td->xsize * s->current_channel_offset;/* uncompress size of one line */
1249 uncompressed_size = td->channel_line_size * (uint64_t)td->ysize;/* uncompress size of the block */
1266 td->ysize = FFMIN(s->scan_lines_per_block, s->ymax - line + 1); /* s->ydelta - line ?? */
1267 td->xsize = s->xdelta;
1269 if (td->xsize * (uint64_t)s->current_channel_offset > INT_MAX ||
1270 av_image_check_size2(td->xsize, td->ysize, s->avctx->max_pixels, AV_PIX_FMT_NONE, 0, s->avctx) < 0)
1273 td->channel_line_size = td->xsize * s->current_channel_offset;/* uncompress size of one line */
1274 uncompressed_size = td->channel_line_size * (uint64_t)td->ysize;/* uncompress size of the block */
1285 window_xmax = FFMIN(avctx->width, FFMAX(0, s->xmin + col + td->xsize));
1287 window_ymax = FFMIN(avctx->height, FFMAX(0, line + td->ysize));
1305 if(col + td->xsize == s->xdelta) {
1314 if (data_size < uncompressed_size || s->is_tile) { /* td->tmp is use for tile reorganization */
1315 av_fast_padded_malloc(&td->tmp, &td->tmp_size, uncompressed_size);
1316 if (!td->tmp)
1321 av_fast_padded_malloc(&td->uncompressed_data,
1322 &td->uncompressed_size, uncompressed_size + 64);/* Force 64 padding for AVX2 reorder_pixels dst */
1324 if (!td->uncompressed_data)
1331 ret = zip_uncompress(s, src, data_size, uncompressed_size, td);
1334 ret = piz_uncompress(s, src, data_size, uncompressed_size, td);
1337 ret = pxr24_uncompress(s, src, data_size, uncompressed_size, td);
1340 ret = rle_uncompress(s, src, data_size, uncompressed_size, td);
1344 ret = b44_uncompress(s, src, data_size, uncompressed_size, td);
1348 ret = dwa_uncompress(s, src, data_size, uncompressed_size, td);
1355 src = td->uncompressed_data;
1361 data_window_offset = (data_yoffset * td->channel_line_size) + data_xoffset;
1364 channel_buffer[0] = src + (td->xsize * s->channel_offsets[0]) + data_window_offset;
1365 channel_buffer[1] = src + (td->xsize * s->channel_offsets[1]) + data_window_offset;
1366 channel_buffer[2] = src + (td->xsize * s->channel_offsets[2]) + data_window_offset;
1369 channel_buffer[0] = src + (td->xsize * s->channel_offsets[1]) + data_window_offset;
1373 channel_buffer[3] = src + (td->xsize * s->channel_offsets[3]) + data_window_offset;
1441 channel_buffer[c] += td->channel_line_size;
1480 channel_buffer[0] += td->channel_line_size;
1481 channel_buffer[1] += td->channel_line_size;
1482 channel_buffer[2] += td->channel_line_size;
1484 channel_buffer[3] += td->channel_line_size;
2278 EXRThreadData *td = &s->thread_data[i];
2279 av_freep(&td->uncompressed_data);
2280 av_freep(&td->tmp);
2281 av_freep(&td->bitmap);
2282 av_freep(&td->lut);
2283 av_freep(&td->he);
2284 av_freep(&td->freq);
2285 av_freep(&td->ac_data);
2286 av_freep(&td->dc_data);
2287 av_freep(&td->rle_data);
2288 av_freep(&td->rle_raw_data);
2289 ff_free_vlc(&td->vlc);