summaryrefslogtreecommitdiff
path: root/libavcodec/vc1.h
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-04-24 20:40:12 +0200
committerMartin Storsjö <martin@martin.st>2013-05-28 13:55:55 +0300
commit28243b0d35b47bbf9abbd454fc444a6e0a9e7b71 (patch)
treeb0be4ace4fa24868f42bf9da6e7566854e93f4a1 /libavcodec/vc1.h
parent93b1281264b87961f53c3e9c134cc2727ecd91ed (diff)
vc1dec: Redesign the intensity compensation
Use the intensity-compensated reference frame for subsequent fields/B-frames. Since we currently don't change the reference frame we have to maintain lookup tables for intensity compensation in the following dependent frames. Signed-off-by: Martin Storsjö <martin@martin.st>
Diffstat (limited to 'libavcodec/vc1.h')
-rw-r--r--libavcodec/vc1.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/libavcodec/vc1.h b/libavcodec/vc1.h
index 9d7743a9fd..8439203f88 100644
--- a/libavcodec/vc1.h
+++ b/libavcodec/vc1.h
@@ -298,8 +298,11 @@ typedef struct VC1Context{
int dmb_is_raw; ///< direct mb plane is raw
int fmb_is_raw; ///< forward mb plane is raw
int skip_is_raw; ///< skip mb plane is not coded
- uint8_t luty[256], lutuv[256]; ///< lookup tables used for intensity compensation
- int use_ic; ///< use intensity compensation in B-frames
+ uint8_t last_luty[2][256], last_lutuv[2][256]; ///< lookup tables used for intensity compensation
+ uint8_t aux_luty[2][256], aux_lutuv[2][256]; ///< lookup tables used for intensity compensation
+ uint8_t next_luty[2][256], next_lutuv[2][256]; ///< lookup tables used for intensity compensation
+ uint8_t (*curr_luty)[256] ,(*curr_lutuv)[256];
+ int last_use_ic, curr_use_ic, next_use_ic, aux_use_ic;
int rnd; ///< rounding control
/** Frame decoding info for S/M profiles only */
@@ -342,7 +345,6 @@ typedef struct VC1Context{
int intcomp;
uint8_t lumscale2; ///< for interlaced field P picture
uint8_t lumshift2;
- uint8_t luty2[256], lutuv2[256]; // lookup tables used for intensity compensation
VLC* mbmode_vlc;
VLC* imv_vlc;
VLC* twomvbp_vlc;