OLD | NEW |
1 /* | 1 /* |
2 * DSP functions for Indeo Video Interactive codecs (Indeo4 and Indeo5) | 2 * DSP functions for Indeo Video Interactive codecs (Indeo4 and Indeo5) |
3 * | 3 * |
4 * Copyright (c) 2009 Maxim Poliakovski | 4 * Copyright (c) 2009 Maxim Poliakovski |
5 * | 5 * |
6 * This file is part of FFmpeg. | 6 * This file is part of FFmpeg. |
7 * | 7 * |
8 * FFmpeg is free software; you can redistribute it and/or | 8 * FFmpeg is free software; you can redistribute it and/or |
9 * modify it under the terms of the GNU Lesser General Public | 9 * modify it under the terms of the GNU Lesser General Public |
10 * License as published by the Free Software Foundation; either | 10 * License as published by the Free Software Foundation; either |
(...skipping 20 matching lines...) Expand all Loading... |
31 #include "ivi_common.h" | 31 #include "ivi_common.h" |
32 #include "ivi_dsp.h" | 32 #include "ivi_dsp.h" |
33 | 33 |
34 void ff_ivi_recompose53(const IVIPlaneDesc *plane, uint8_t *dst, | 34 void ff_ivi_recompose53(const IVIPlaneDesc *plane, uint8_t *dst, |
35 const int dst_pitch, const int num_bands) | 35 const int dst_pitch, const int num_bands) |
36 { | 36 { |
37 int x, y, indx; | 37 int x, y, indx; |
38 int32_t p0, p1, p2, p3, tmp0, tmp1, tmp2; | 38 int32_t p0, p1, p2, p3, tmp0, tmp1, tmp2; |
39 int32_t b0_1, b0_2, b1_1, b1_2, b1_3, b2_1, b2_2, b2_3, b2_4, b2_5,
b2_6; | 39 int32_t b0_1, b0_2, b1_1, b1_2, b1_3, b2_1, b2_2, b2_3, b2_4, b2_5,
b2_6; |
40 int32_t b3_1, b3_2, b3_3, b3_4, b3_5, b3_6, b3_7, b3_8, b3_9; | 40 int32_t b3_1, b3_2, b3_3, b3_4, b3_5, b3_6, b3_7, b3_8, b3_9; |
41 uint32_t pitch, back_pitch; | 41 int32_t pitch, back_pitch; |
42 const IDWTELEM *b0_ptr, *b1_ptr, *b2_ptr, *b3_ptr; | 42 const IDWTELEM *b0_ptr, *b1_ptr, *b2_ptr, *b3_ptr; |
43 | 43 |
44 /* all bands should have the same pitch */ | 44 /* all bands should have the same pitch */ |
45 pitch = plane->bands[0].pitch; | 45 pitch = plane->bands[0].pitch; |
46 | 46 |
47 /* pixels at the position "y-1" will be set to pixels at the "y" for the 1st
iteration */ | 47 /* pixels at the position "y-1" will be set to pixels at the "y" for the 1st
iteration */ |
48 back_pitch = 0; | 48 back_pitch = 0; |
49 | 49 |
50 /* get pointers to the wavelet bands */ | 50 /* get pointers to the wavelet bands */ |
51 b0_ptr = plane->bands[0].buf; | 51 b0_ptr = plane->bands[0].buf; |
(...skipping 405 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
457 } \ | 457 } \ |
458 } \ | 458 } \ |
459 | 459 |
460 #define OP_PUT(a, b) (a) = (b) | 460 #define OP_PUT(a, b) (a) = (b) |
461 #define OP_ADD(a, b) (a) += (b) | 461 #define OP_ADD(a, b) (a) += (b) |
462 | 462 |
463 IVI_MC_TEMPLATE(8, _no_delta, OP_PUT); | 463 IVI_MC_TEMPLATE(8, _no_delta, OP_PUT); |
464 IVI_MC_TEMPLATE(8, _delta, OP_ADD); | 464 IVI_MC_TEMPLATE(8, _delta, OP_ADD); |
465 IVI_MC_TEMPLATE(4, _no_delta, OP_PUT); | 465 IVI_MC_TEMPLATE(4, _no_delta, OP_PUT); |
466 IVI_MC_TEMPLATE(4, _delta, OP_ADD); | 466 IVI_MC_TEMPLATE(4, _delta, OP_ADD); |
OLD | NEW |