From ef5b1b5a7ee2d4bce47382e74fe4c88d207c641a Mon Sep 17 00:00:00 2001 From: Juanjo Date: Thu, 2 May 2002 04:39:45 +0000 Subject: - Advanced Intra Coding (AIC) support for H.263+ encoder, just DC by now. - Bug fix H.263+ AIC tables. - Warning fixes. Originally committed as revision 431 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/h263data.h | 93 +++++++++++++++++++++++++++++++++------------------ 1 file changed, 60 insertions(+), 33 deletions(-) (limited to 'libavcodec/h263data.h') diff --git a/libavcodec/h263data.h b/libavcodec/h263data.h index a129fd6bf5..c4342ffd37 100644 --- a/libavcodec/h263data.h +++ b/libavcodec/h263data.h @@ -125,45 +125,73 @@ static RLTable rl_inter = { inter_level, }; -/* table used for Advanced INTRA Coding, just RUN and LEVEL change */ -const INT8 inter_level_aic[102] = { - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 3, 2, 1, 2, 2, 4, 5, - 6, 7, 3, 2, 3, 4, 5, 2, - 3, 4, 2, 3, 1, 2, 25, 1, - 2, 24, 8, 2, 7, 4, 6, 1, - 9, 23, 2, 3, 1, 10, 12, 11, - 18, 17, 16, 15, 14, 13, 20, 19, - 22, 21, 1, 1, 1, 1, 1, 1, - 1, 2, 1, 1, 1, 3, 1, 1, - 1, 1, 1, 1, 1, 4, 1, 1, - 1, 1, 2, 2, 6, 5, 2, 2, - 3, 7, 3, 4, 9, 8, 1, 1, - 1, 2, 2, 2, 3, 10, +const UINT16 intra_vlc_aic[103][2] = { +{ 0x2, 2 }, { 0x6, 3 }, { 0xe, 4 }, { 0xc, 5 }, +{ 0xd, 5 }, { 0x10, 6 }, { 0x11, 6 }, { 0x12, 6 }, +{ 0x16, 7 }, { 0x1b, 8 }, { 0x20, 9 }, { 0x21, 9 }, +{ 0x1a, 9 }, { 0x1b, 9 }, { 0x1c, 9 }, { 0x1d, 9 }, +{ 0x1e, 9 }, { 0x1f, 9 }, { 0x23, 11 }, { 0x22, 11 }, +{ 0x57, 12 }, { 0x56, 12 }, { 0x55, 12 }, { 0x54, 12 }, +{ 0x53, 12 }, { 0xf, 4 }, { 0x14, 6 }, { 0x14, 7 }, +{ 0x1e, 8 }, { 0xf, 10 }, { 0x21, 11 }, { 0x50, 12 }, +{ 0xb, 5 }, { 0x15, 7 }, { 0xe, 10 }, { 0x9, 10 }, +{ 0x15, 6 }, { 0x1d, 8 }, { 0xd, 10 }, { 0x51, 12 }, +{ 0x13, 6 }, { 0x23, 9 }, { 0x7, 11 }, { 0x17, 7 }, +{ 0x22, 9 }, { 0x52, 12 }, { 0x1c, 8 }, { 0xc, 10 }, +{ 0x1f, 8 }, { 0xb, 10 }, { 0x25, 9 }, { 0xa, 10 }, +{ 0x24, 9 }, { 0x6, 11 }, { 0x21, 10 }, { 0x20, 10 }, +{ 0x8, 10 }, { 0x20, 11 }, { 0x7, 4 }, { 0xc, 6 }, +{ 0x10, 7 }, { 0x13, 8 }, { 0x11, 9 }, { 0x12, 9 }, +{ 0x4, 10 }, { 0x27, 11 }, { 0x26, 11 }, { 0x5f, 12 }, +{ 0xf, 6 }, { 0x13, 9 }, { 0x5, 10 }, { 0x25, 11 }, +{ 0xe, 6 }, { 0x14, 9 }, { 0x24, 11 }, { 0xd, 6 }, +{ 0x6, 10 }, { 0x5e, 12 }, { 0x11, 7 }, { 0x7, 10 }, +{ 0x13, 7 }, { 0x5d, 12 }, { 0x12, 7 }, { 0x5c, 12 }, +{ 0x14, 8 }, { 0x5b, 12 }, { 0x15, 8 }, { 0x1a, 8 }, +{ 0x19, 8 }, { 0x18, 8 }, { 0x17, 8 }, { 0x16, 8 }, +{ 0x19, 9 }, { 0x15, 9 }, { 0x16, 9 }, { 0x18, 9 }, +{ 0x17, 9 }, { 0x4, 11 }, { 0x5, 11 }, { 0x58, 12 }, +{ 0x59, 12 }, { 0x5a, 12 }, { 0x3, 7 }, }; -const INT8 inter_run_aic[102] = { - 0, 1, 3, 5, 7, 8, 9, 10, - 11, 4, 9, 13, 0, 1, 1, 1, - 1, 1, 0, 3, 2, 3, 0, 4, - 3, 0, 5, 5, 2, 6, 0, 4, - 7, 0, 0, 8, 0, 2, 0, 12, - 0, 0, 2, 1, 6, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 14, 20, 1, 19, 2, - 3, 0, 5, 6, 4, 0, 9, 10, - 11, 12, 13, 8, 7, 0, 17, 18, - 16, 15, 2, 1, 0, 0, 4, 3, - 1, 0, 2, 1, 0, 0, 21, 22, - 23, 7, 6, 5, 3, 0, +const INT8 intra_run_aic[102] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 3, 3, 3, 3, + 4, 4, 4, 5, 5, 5, 6, 6, + 7, 7, 8, 8, 9, 9, 10, 11, +12, 13, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 1, 1, 1, + 2, 2, 2, 3, 3, 3, 4, 4, + 5, 5, 6, 6, 7, 7, 8, 9, +10, 11, 12, 13, 14, 15, 16, 17, +18, 19, 20, 21, 22, 23, +}; + +const INT8 intra_level_aic[102] = { + 1, 2, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 14, 15, 16, +17, 18, 19, 20, 21, 22, 23, 24, +25, 1, 2, 3, 4, 5, 6, 7, + 1, 2, 3, 4, 1, 2, 3, 4, + 1, 2, 3, 1, 2, 3, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 1, + 1, 1, 1, 2, 3, 4, 5, 6, + 7, 8, 9, 10, 1, 2, 3, 4, + 1, 2, 3, 1, 2, 3, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, }; static RLTable rl_intra_aic = { 102, 58, - inter_vlc, - inter_run_aic, - inter_level_aic, + intra_vlc_aic, + intra_run_aic, + intra_level_aic, }; static const UINT16 h263_format[8][2] = { @@ -174,4 +202,3 @@ static const UINT16 h263_format[8][2] = { { 704, 576 }, { 1408, 1152 }, }; - -- cgit v1.2.3