[FFmpeg-devel] [PATCH] Move rl_rvlc_intra and rl_rvlc_inter to mpeg4videodec.c.

Diego Elio Pettenò flameeyes
Sun Feb 6 16:15:12 CET 2011


This does not make any huge difference, but it changes slightly the
configuration of libavcodec:

     exec      data    rodata     relro       bss  overhead     total     filename
  2702494     80598   2884616     38536   3943520     37555   9687319     libavcodec.so.52.old
  2702622     80582   2884568     38536   3943520     37515   9687343     libavcodec.so.52

Overhead is reduced simply because the two symbols are no longer in the
symbol table (.dynsym) and their names are no longer in the string table
(.dynstr). I'm not really sure about the changes in exec; data is probably
reduced by removing them from the PLT.
---
 libavcodec/mpeg4data.h     |  209 --------------------------------------------
 libavcodec/mpeg4video.h    |    4 -
 libavcodec/mpeg4videodec.c |  209 ++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 209 insertions(+), 213 deletions(-)

diff --git a/libavcodec/mpeg4data.h b/libavcodec/mpeg4data.h
index 1f4e578..2bb0ad9 100644
--- a/libavcodec/mpeg4data.h
+++ b/libavcodec/mpeg4data.h
@@ -114,215 +114,6 @@ RLTable ff_mpeg4_rl_intra = {
     ff_mpeg4_intra_level,
 };
 
-/* Note this is identical to the intra rvlc except that it is reordered. */
-static const uint16_t inter_rvlc[170][2]={
-{0x0006,  3},{0x0001,  4},{0x0004,  5},{0x001C,  7},
-{0x003C,  8},{0x003D,  8},{0x007C,  9},{0x00FC, 10},
-{0x00FD, 10},{0x01FC, 11},{0x01FD, 11},{0x03FC, 12},
-{0x07FC, 13},{0x07FD, 13},{0x0BFC, 13},{0x0BFD, 13},
-{0x0FFC, 14},{0x0FFD, 14},{0x1FFC, 15},{0x0007,  3},
-{0x000C,  6},{0x005C,  8},{0x007D,  9},{0x017C, 10},
-{0x02FC, 11},{0x03FD, 12},{0x0DFC, 13},{0x17FC, 14},
-{0x17FD, 14},{0x000A,  4},{0x001D,  7},{0x00BC,  9},
-{0x02FD, 11},{0x05FC, 12},{0x1BFC, 14},{0x1BFD, 14},
-{0x0005,  5},{0x005D,  8},{0x017D, 10},{0x05FD, 12},
-{0x0DFD, 13},{0x1DFC, 14},{0x1FFD, 15},{0x0008,  5},
-{0x006C,  8},{0x037C, 11},{0x0EFC, 13},{0x2FFC, 15},
-{0x0009,  5},{0x00BD,  9},{0x037D, 11},{0x0EFD, 13},
-{0x000D,  6},{0x01BC, 10},{0x06FC, 12},{0x1DFD, 14},
-{0x0014,  6},{0x01BD, 10},{0x06FD, 12},{0x2FFD, 15},
-{0x0015,  6},{0x01DC, 10},{0x0F7C, 13},{0x002C,  7},
-{0x01DD, 10},{0x1EFC, 14},{0x002D,  7},{0x03BC, 11},
-{0x0034,  7},{0x077C, 12},{0x006D,  8},{0x0F7D, 13},
-{0x0074,  8},{0x1EFD, 14},{0x0075,  8},{0x1F7C, 14},
-{0x00DC,  9},{0x1F7D, 14},{0x00DD,  9},{0x1FBC, 14},
-{0x00EC,  9},{0x37FC, 15},{0x01EC, 10},{0x01ED, 10},
-{0x01F4, 10},{0x03BD, 11},{0x03DC, 11},{0x03DD, 11},
-{0x03EC, 11},{0x03ED, 11},{0x03F4, 11},{0x077D, 12},
-{0x07BC, 12},{0x07BD, 12},{0x0FBC, 13},{0x0FBD, 13},
-{0x0FDC, 13},{0x0FDD, 13},{0x1FBD, 14},{0x1FDC, 14},
-{0x1FDD, 14},{0x37FD, 15},{0x3BFC, 15},
-{0x000B,  4},{0x0078,  8},{0x03F5, 11},{0x0FEC, 13},
-{0x1FEC, 14},{0x0012,  5},{0x00ED,  9},{0x07DC, 12},
-{0x1FED, 14},{0x3BFD, 15},{0x0013,  5},{0x03F8, 11},
-{0x3DFC, 15},{0x0018,  6},{0x07DD, 12},{0x0019,  6},
-{0x07EC, 12},{0x0022,  6},{0x0FED, 13},{0x0023,  6},
-{0x0FF4, 13},{0x0035,  7},{0x0FF5, 13},{0x0038,  7},
-{0x0FF8, 13},{0x0039,  7},{0x0FF9, 13},{0x0042,  7},
-{0x1FF4, 14},{0x0043,  7},{0x1FF5, 14},{0x0079,  8},
-{0x1FF8, 14},{0x0082,  8},{0x3DFD, 15},{0x0083,  8},
-{0x00F4,  9},{0x00F5,  9},{0x00F8,  9},{0x00F9,  9},
-{0x0102,  9},{0x0103,  9},{0x01F5, 10},{0x01F8, 10},
-{0x01F9, 10},{0x0202, 10},{0x0203, 10},{0x03F9, 11},
-{0x0402, 11},{0x0403, 11},{0x07ED, 12},{0x07F4, 12},
-{0x07F5, 12},{0x07F8, 12},{0x07F9, 12},{0x0802, 12},
-{0x0803, 12},{0x1002, 13},{0x1003, 13},{0x1FF9, 14},
-{0x2002, 14},{0x2003, 14},{0x3EFC, 15},{0x3EFD, 15},
-{0x3F7C, 15},{0x3F7D, 15},{0x0000, 4}
-};
-
-static const int8_t inter_rvlc_run[169]={
- 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,  1,  1,  1,  2,  2,  2,
- 2,  2,  2,  2,  3,  3,  3,  3,
- 3,  3,  3,  4,  4,  4,  4,  4,
- 5,  5,  5,  5,  6,  6,  6,  6,
- 7,  7,  7,  7,  8,  8,  8,  9,
- 9,  9, 10, 10, 11, 11, 12, 12,
-13, 13, 14, 14, 15, 15, 16, 16,
-17, 17, 18, 19, 20, 21, 22, 23,
-24, 25, 26, 27, 28, 29, 30, 31,
-32, 33, 34, 35, 36, 37, 38,
- 0,  0,  0,  0,  0,  1,  1,  1,
- 1,  1,  2,  2,  2,  3,  3,  4,
- 4,  5,  5,  6,  6,  7,  7,  8,
- 8,  9,  9, 10, 10, 11, 11, 12,
-12, 13, 13, 14, 15, 16, 17, 18,
-19, 20, 21, 22, 23, 24, 25, 26,
-27, 28, 29, 30, 31, 32, 33, 34,
-35, 36, 37, 38, 39, 40, 41, 42,
-43, 44,
-};
-
-static const int8_t inter_rvlc_level[169]={
- 1,  2,  3,  4,  5,  6,  7,  8,
- 9, 10, 11, 12, 13, 14, 15, 16,
-17, 18, 19,  1,  2,  3,  4,  5,
- 6,  7,  8,  9, 10,  1,  2,  3,
- 4,  5,  6,  7,  1,  2,  3,  4,
- 5,  6,  7,  1,  2,  3,  4,  5,
- 1,  2,  3,  4,  1,  2,  3,  4,
- 1,  2,  3,  4,  1,  2,  3,  1,
- 2,  3,  1,  2,  1,  2,  1,  2,
- 1,  2,  1,  2,  1,  2,  1,  2,
- 1,  2,  1,  1,  1,  1,  1,  1,
- 1,  1,  1,  1,  1,  1,  1,  1,
- 1,  1,  1,  1,  1,  1,  1,
- 1,  2,  3,  4,  5,  1,  2,  3,
- 4,  5,  1,  2,  3,  1,  2,  1,
- 2,  1,  2,  1,  2,  1,  2,  1,
- 2,  1,  2,  1,  2,  1,  2,  1,
- 2,  1,  2,  1,  1,  1,  1,  1,
- 1,  1,  1,  1,  1,  1,  1,  1,
- 1,  1,  1,  1,  1,  1,  1,  1,
- 1,  1,  1,  1,  1,  1,  1,  1,
- 1,  1,
-};
-
-RLTable rvlc_rl_inter = {
-    169,
-    103,
-    inter_rvlc,
-    inter_rvlc_run,
-    inter_rvlc_level,
-};
-
-static const uint16_t intra_rvlc[170][2]={
-{0x0006,  3},{0x0007,  3},{0x000A,  4},{0x0009,  5},
-{0x0014,  6},{0x0015,  6},{0x0034,  7},{0x0074,  8},
-{0x0075,  8},{0x00DD,  9},{0x00EC,  9},{0x01EC, 10},
-{0x01ED, 10},{0x01F4, 10},{0x03EC, 11},{0x03ED, 11},
-{0x03F4, 11},{0x077D, 12},{0x07BC, 12},{0x0FBD, 13},
-{0x0FDC, 13},{0x07BD, 12},{0x0FDD, 13},{0x1FBD, 14},
-{0x1FDC, 14},{0x1FDD, 14},{0x1FFC, 15},{0x0001,  4},
-{0x0008,  5},{0x002D,  7},{0x006C,  8},{0x006D,  8},
-{0x00DC,  9},{0x01DD, 10},{0x03DC, 11},{0x03DD, 11},
-{0x077C, 12},{0x0FBC, 13},{0x1F7D, 14},{0x1FBC, 14},
-{0x0004,  5},{0x002C,  7},{0x00BC,  9},{0x01DC, 10},
-{0x03BC, 11},{0x03BD, 11},{0x0EFD, 13},{0x0F7C, 13},
-{0x0F7D, 13},{0x1EFD, 14},{0x1F7C, 14},{0x0005,  5},
-{0x005C,  8},{0x00BD,  9},{0x037D, 11},{0x06FC, 12},
-{0x0EFC, 13},{0x1DFD, 14},{0x1EFC, 14},{0x1FFD, 15},
-{0x000C,  6},{0x005D,  8},{0x01BD, 10},{0x03FD, 12},
-{0x06FD, 12},{0x1BFD, 14},{0x000D,  6},{0x007D,  9},
-{0x02FC, 11},{0x05FC, 12},{0x1BFC, 14},{0x1DFC, 14},
-{0x001C,  7},{0x017C, 10},{0x02FD, 11},{0x05FD, 12},
-{0x2FFC, 15},{0x001D,  7},{0x017D, 10},{0x037C, 11},
-{0x0DFD, 13},{0x2FFD, 15},{0x003C,  8},{0x01BC, 10},
-{0x0BFD, 13},{0x17FD, 14},{0x003D,  8},{0x01FD, 11},
-{0x0DFC, 13},{0x37FC, 15},{0x007C,  9},{0x03FC, 12},
-{0x00FC, 10},{0x0BFC, 13},{0x00FD, 10},{0x37FD, 15},
-{0x01FC, 11},{0x07FC, 13},{0x07FD, 13},{0x0FFC, 14},
-{0x0FFD, 14},{0x17FC, 14},{0x3BFC, 15},
-{0x000B,  4},{0x0078,  8},{0x03F5, 11},{0x0FEC, 13},
-{0x1FEC, 14},{0x0012,  5},{0x00ED,  9},{0x07DC, 12},
-{0x1FED, 14},{0x3BFD, 15},{0x0013,  5},{0x03F8, 11},
-{0x3DFC, 15},{0x0018,  6},{0x07DD, 12},{0x0019,  6},
-{0x07EC, 12},{0x0022,  6},{0x0FED, 13},{0x0023,  6},
-{0x0FF4, 13},{0x0035,  7},{0x0FF5, 13},{0x0038,  7},
-{0x0FF8, 13},{0x0039,  7},{0x0FF9, 13},{0x0042,  7},
-{0x1FF4, 14},{0x0043,  7},{0x1FF5, 14},{0x0079,  8},
-{0x1FF8, 14},{0x0082,  8},{0x3DFD, 15},{0x0083,  8},
-{0x00F4,  9},{0x00F5,  9},{0x00F8,  9},{0x00F9,  9},
-{0x0102,  9},{0x0103,  9},{0x01F5, 10},{0x01F8, 10},
-{0x01F9, 10},{0x0202, 10},{0x0203, 10},{0x03F9, 11},
-{0x0402, 11},{0x0403, 11},{0x07ED, 12},{0x07F4, 12},
-{0x07F5, 12},{0x07F8, 12},{0x07F9, 12},{0x0802, 12},
-{0x0803, 12},{0x1002, 13},{0x1003, 13},{0x1FF9, 14},
-{0x2002, 14},{0x2003, 14},{0x3EFC, 15},{0x3EFD, 15},
-{0x3F7C, 15},{0x3F7D, 15},{0x0000,  4}
-};
-
-static const int8_t intra_rvlc_run[169]={
- 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,  0,  0,  1,  1,  1,  1,  1,
- 1,  1,  1,  1,  1,  1,  1,  1,
- 2,  2,  2,  2,  2,  2,  2,  2,
- 2,  2,  2,  3,  3,  3,  3,  3,
- 3,  3,  3,  3,  4,  4,  4,  4,
- 4,  4,  5,  5,  5,  5,  5,  5,
- 6,  6,  6,  6,  6,  7,  7,  7,
- 7,  7,  8,  8,  8,  8,  9,  9,
- 9,  9, 10, 10, 11, 11, 12, 12,
-13, 14, 15, 16, 17, 18, 19,
- 0,  0,  0,  0,  0,  1,  1,  1,
- 1,  1,  2,  2,  2,  3,  3,  4,
- 4,  5,  5,  6,  6,  7,  7,  8,
- 8,  9,  9, 10, 10, 11, 11, 12,
-12, 13, 13, 14, 15, 16, 17, 18,
-19, 20, 21, 22, 23, 24, 25, 26,
-27, 28, 29, 30, 31, 32, 33, 34,
-35, 36, 37, 38, 39, 40, 41, 42,
-43, 44,
-};
-
-static const int8_t intra_rvlc_level[169]={
- 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, 26, 27,  1,  2,  3,  4,  5,
- 6,  7,  8,  9, 10, 11, 12, 13,
- 1,  2,  3,  4,  5,  6,  7,  8,
- 9, 10, 11,  1,  2,  3,  4,  5,
- 6,  7,  8,  9,  1,  2,  3,  4,
- 5,  6,  1,  2,  3,  4,  5,  6,
- 1,  2,  3,  4,  5,  1,  2,  3,
- 4,  5,  1,  2,  3,  4,  1,  2,
- 3,  4,  1,  2,  1,  2,  1,  2,
- 1,  1,  1,  1,  1,  1,  1,
- 1,  2,  3,  4,  5,  1,  2,  3,
- 4,  5,  1,  2,  3,  1,  2,  1,
- 2,  1,  2,  1,  2,  1,  2,  1,
- 2,  1,  2,  1,  2,  1,  2,  1,
- 2,  1,  2,  1,  1,  1,  1,  1,
- 1,  1,  1,  1,  1,  1,  1,  1,
- 1,  1,  1,  1,  1,  1,  1,  1,
- 1,  1,  1,  1,  1,  1,  1,  1,
- 1,  1,
-};
-
-RLTable rvlc_rl_intra = {
-    169,
-    103,
-    intra_rvlc,
-    intra_rvlc_run,
-    intra_rvlc_level,
-};
-
 const uint16_t sprite_trajectory_tab[15][2] = {
  {0x00, 2}, {0x02, 3},  {0x03, 3},  {0x04, 3}, {0x05, 3}, {0x06, 3},
  {0x0E, 4}, {0x1E, 5},  {0x3E, 6},  {0x7E, 7}, {0xFE, 8},
diff --git a/libavcodec/mpeg4video.h b/libavcodec/mpeg4video.h
index 96db366..b7dd9ba 100644
--- a/libavcodec/mpeg4video.h
+++ b/libavcodec/mpeg4video.h
@@ -65,10 +65,6 @@ extern const uint8_t ff_mpeg4_DCtab_chrom[13][2];
 extern const uint16_t ff_mpeg4_intra_vlc[103][2];
 extern RLTable ff_mpeg4_rl_intra;
 
-/* Note this is identical to the intra rvlc except that it is reordered. */
-extern RLTable rvlc_rl_inter;
-extern RLTable rvlc_rl_intra;
-
 extern const uint16_t sprite_trajectory_tab[15][2];
 extern const uint8_t mb_type_b_tab[4][2];
 
diff --git a/libavcodec/mpeg4videodec.c b/libavcodec/mpeg4videodec.c
index 5303da3..965fd7f 100644
--- a/libavcodec/mpeg4videodec.c
+++ b/libavcodec/mpeg4videodec.c
@@ -44,6 +44,215 @@ static const int mb_type_b_map[4]= {
     MB_TYPE_L0 | MB_TYPE_16x16,
 };
 
+/* Note this is identical to the intra rvlc except that it is reordered. */
+static const uint16_t inter_rvlc[170][2]={
+{0x0006,  3},{0x0001,  4},{0x0004,  5},{0x001C,  7},
+{0x003C,  8},{0x003D,  8},{0x007C,  9},{0x00FC, 10},
+{0x00FD, 10},{0x01FC, 11},{0x01FD, 11},{0x03FC, 12},
+{0x07FC, 13},{0x07FD, 13},{0x0BFC, 13},{0x0BFD, 13},
+{0x0FFC, 14},{0x0FFD, 14},{0x1FFC, 15},{0x0007,  3},
+{0x000C,  6},{0x005C,  8},{0x007D,  9},{0x017C, 10},
+{0x02FC, 11},{0x03FD, 12},{0x0DFC, 13},{0x17FC, 14},
+{0x17FD, 14},{0x000A,  4},{0x001D,  7},{0x00BC,  9},
+{0x02FD, 11},{0x05FC, 12},{0x1BFC, 14},{0x1BFD, 14},
+{0x0005,  5},{0x005D,  8},{0x017D, 10},{0x05FD, 12},
+{0x0DFD, 13},{0x1DFC, 14},{0x1FFD, 15},{0x0008,  5},
+{0x006C,  8},{0x037C, 11},{0x0EFC, 13},{0x2FFC, 15},
+{0x0009,  5},{0x00BD,  9},{0x037D, 11},{0x0EFD, 13},
+{0x000D,  6},{0x01BC, 10},{0x06FC, 12},{0x1DFD, 14},
+{0x0014,  6},{0x01BD, 10},{0x06FD, 12},{0x2FFD, 15},
+{0x0015,  6},{0x01DC, 10},{0x0F7C, 13},{0x002C,  7},
+{0x01DD, 10},{0x1EFC, 14},{0x002D,  7},{0x03BC, 11},
+{0x0034,  7},{0x077C, 12},{0x006D,  8},{0x0F7D, 13},
+{0x0074,  8},{0x1EFD, 14},{0x0075,  8},{0x1F7C, 14},
+{0x00DC,  9},{0x1F7D, 14},{0x00DD,  9},{0x1FBC, 14},
+{0x00EC,  9},{0x37FC, 15},{0x01EC, 10},{0x01ED, 10},
+{0x01F4, 10},{0x03BD, 11},{0x03DC, 11},{0x03DD, 11},
+{0x03EC, 11},{0x03ED, 11},{0x03F4, 11},{0x077D, 12},
+{0x07BC, 12},{0x07BD, 12},{0x0FBC, 13},{0x0FBD, 13},
+{0x0FDC, 13},{0x0FDD, 13},{0x1FBD, 14},{0x1FDC, 14},
+{0x1FDD, 14},{0x37FD, 15},{0x3BFC, 15},
+{0x000B,  4},{0x0078,  8},{0x03F5, 11},{0x0FEC, 13},
+{0x1FEC, 14},{0x0012,  5},{0x00ED,  9},{0x07DC, 12},
+{0x1FED, 14},{0x3BFD, 15},{0x0013,  5},{0x03F8, 11},
+{0x3DFC, 15},{0x0018,  6},{0x07DD, 12},{0x0019,  6},
+{0x07EC, 12},{0x0022,  6},{0x0FED, 13},{0x0023,  6},
+{0x0FF4, 13},{0x0035,  7},{0x0FF5, 13},{0x0038,  7},
+{0x0FF8, 13},{0x0039,  7},{0x0FF9, 13},{0x0042,  7},
+{0x1FF4, 14},{0x0043,  7},{0x1FF5, 14},{0x0079,  8},
+{0x1FF8, 14},{0x0082,  8},{0x3DFD, 15},{0x0083,  8},
+{0x00F4,  9},{0x00F5,  9},{0x00F8,  9},{0x00F9,  9},
+{0x0102,  9},{0x0103,  9},{0x01F5, 10},{0x01F8, 10},
+{0x01F9, 10},{0x0202, 10},{0x0203, 10},{0x03F9, 11},
+{0x0402, 11},{0x0403, 11},{0x07ED, 12},{0x07F4, 12},
+{0x07F5, 12},{0x07F8, 12},{0x07F9, 12},{0x0802, 12},
+{0x0803, 12},{0x1002, 13},{0x1003, 13},{0x1FF9, 14},
+{0x2002, 14},{0x2003, 14},{0x3EFC, 15},{0x3EFD, 15},
+{0x3F7C, 15},{0x3F7D, 15},{0x0000, 4}
+};
+
+static const int8_t inter_rvlc_run[169]={
+ 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,  1,  1,  1,  2,  2,  2,
+ 2,  2,  2,  2,  3,  3,  3,  3,
+ 3,  3,  3,  4,  4,  4,  4,  4,
+ 5,  5,  5,  5,  6,  6,  6,  6,
+ 7,  7,  7,  7,  8,  8,  8,  9,
+ 9,  9, 10, 10, 11, 11, 12, 12,
+13, 13, 14, 14, 15, 15, 16, 16,
+17, 17, 18, 19, 20, 21, 22, 23,
+24, 25, 26, 27, 28, 29, 30, 31,
+32, 33, 34, 35, 36, 37, 38,
+ 0,  0,  0,  0,  0,  1,  1,  1,
+ 1,  1,  2,  2,  2,  3,  3,  4,
+ 4,  5,  5,  6,  6,  7,  7,  8,
+ 8,  9,  9, 10, 10, 11, 11, 12,
+12, 13, 13, 14, 15, 16, 17, 18,
+19, 20, 21, 22, 23, 24, 25, 26,
+27, 28, 29, 30, 31, 32, 33, 34,
+35, 36, 37, 38, 39, 40, 41, 42,
+43, 44,
+};
+
+static const int8_t inter_rvlc_level[169]={
+ 1,  2,  3,  4,  5,  6,  7,  8,
+ 9, 10, 11, 12, 13, 14, 15, 16,
+17, 18, 19,  1,  2,  3,  4,  5,
+ 6,  7,  8,  9, 10,  1,  2,  3,
+ 4,  5,  6,  7,  1,  2,  3,  4,
+ 5,  6,  7,  1,  2,  3,  4,  5,
+ 1,  2,  3,  4,  1,  2,  3,  4,
+ 1,  2,  3,  4,  1,  2,  3,  1,
+ 2,  3,  1,  2,  1,  2,  1,  2,
+ 1,  2,  1,  2,  1,  2,  1,  2,
+ 1,  2,  1,  1,  1,  1,  1,  1,
+ 1,  1,  1,  1,  1,  1,  1,  1,
+ 1,  1,  1,  1,  1,  1,  1,
+ 1,  2,  3,  4,  5,  1,  2,  3,
+ 4,  5,  1,  2,  3,  1,  2,  1,
+ 2,  1,  2,  1,  2,  1,  2,  1,
+ 2,  1,  2,  1,  2,  1,  2,  1,
+ 2,  1,  2,  1,  1,  1,  1,  1,
+ 1,  1,  1,  1,  1,  1,  1,  1,
+ 1,  1,  1,  1,  1,  1,  1,  1,
+ 1,  1,  1,  1,  1,  1,  1,  1,
+ 1,  1,
+};
+
+static RLTable rvlc_rl_inter = {
+    169,
+    103,
+    inter_rvlc,
+    inter_rvlc_run,
+    inter_rvlc_level,
+};
+
+static const uint16_t intra_rvlc[170][2]={
+{0x0006,  3},{0x0007,  3},{0x000A,  4},{0x0009,  5},
+{0x0014,  6},{0x0015,  6},{0x0034,  7},{0x0074,  8},
+{0x0075,  8},{0x00DD,  9},{0x00EC,  9},{0x01EC, 10},
+{0x01ED, 10},{0x01F4, 10},{0x03EC, 11},{0x03ED, 11},
+{0x03F4, 11},{0x077D, 12},{0x07BC, 12},{0x0FBD, 13},
+{0x0FDC, 13},{0x07BD, 12},{0x0FDD, 13},{0x1FBD, 14},
+{0x1FDC, 14},{0x1FDD, 14},{0x1FFC, 15},{0x0001,  4},
+{0x0008,  5},{0x002D,  7},{0x006C,  8},{0x006D,  8},
+{0x00DC,  9},{0x01DD, 10},{0x03DC, 11},{0x03DD, 11},
+{0x077C, 12},{0x0FBC, 13},{0x1F7D, 14},{0x1FBC, 14},
+{0x0004,  5},{0x002C,  7},{0x00BC,  9},{0x01DC, 10},
+{0x03BC, 11},{0x03BD, 11},{0x0EFD, 13},{0x0F7C, 13},
+{0x0F7D, 13},{0x1EFD, 14},{0x1F7C, 14},{0x0005,  5},
+{0x005C,  8},{0x00BD,  9},{0x037D, 11},{0x06FC, 12},
+{0x0EFC, 13},{0x1DFD, 14},{0x1EFC, 14},{0x1FFD, 15},
+{0x000C,  6},{0x005D,  8},{0x01BD, 10},{0x03FD, 12},
+{0x06FD, 12},{0x1BFD, 14},{0x000D,  6},{0x007D,  9},
+{0x02FC, 11},{0x05FC, 12},{0x1BFC, 14},{0x1DFC, 14},
+{0x001C,  7},{0x017C, 10},{0x02FD, 11},{0x05FD, 12},
+{0x2FFC, 15},{0x001D,  7},{0x017D, 10},{0x037C, 11},
+{0x0DFD, 13},{0x2FFD, 15},{0x003C,  8},{0x01BC, 10},
+{0x0BFD, 13},{0x17FD, 14},{0x003D,  8},{0x01FD, 11},
+{0x0DFC, 13},{0x37FC, 15},{0x007C,  9},{0x03FC, 12},
+{0x00FC, 10},{0x0BFC, 13},{0x00FD, 10},{0x37FD, 15},
+{0x01FC, 11},{0x07FC, 13},{0x07FD, 13},{0x0FFC, 14},
+{0x0FFD, 14},{0x17FC, 14},{0x3BFC, 15},
+{0x000B,  4},{0x0078,  8},{0x03F5, 11},{0x0FEC, 13},
+{0x1FEC, 14},{0x0012,  5},{0x00ED,  9},{0x07DC, 12},
+{0x1FED, 14},{0x3BFD, 15},{0x0013,  5},{0x03F8, 11},
+{0x3DFC, 15},{0x0018,  6},{0x07DD, 12},{0x0019,  6},
+{0x07EC, 12},{0x0022,  6},{0x0FED, 13},{0x0023,  6},
+{0x0FF4, 13},{0x0035,  7},{0x0FF5, 13},{0x0038,  7},
+{0x0FF8, 13},{0x0039,  7},{0x0FF9, 13},{0x0042,  7},
+{0x1FF4, 14},{0x0043,  7},{0x1FF5, 14},{0x0079,  8},
+{0x1FF8, 14},{0x0082,  8},{0x3DFD, 15},{0x0083,  8},
+{0x00F4,  9},{0x00F5,  9},{0x00F8,  9},{0x00F9,  9},
+{0x0102,  9},{0x0103,  9},{0x01F5, 10},{0x01F8, 10},
+{0x01F9, 10},{0x0202, 10},{0x0203, 10},{0x03F9, 11},
+{0x0402, 11},{0x0403, 11},{0x07ED, 12},{0x07F4, 12},
+{0x07F5, 12},{0x07F8, 12},{0x07F9, 12},{0x0802, 12},
+{0x0803, 12},{0x1002, 13},{0x1003, 13},{0x1FF9, 14},
+{0x2002, 14},{0x2003, 14},{0x3EFC, 15},{0x3EFD, 15},
+{0x3F7C, 15},{0x3F7D, 15},{0x0000,  4}
+};
+
+static const int8_t intra_rvlc_run[169]={
+ 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,  0,  0,  1,  1,  1,  1,  1,
+ 1,  1,  1,  1,  1,  1,  1,  1,
+ 2,  2,  2,  2,  2,  2,  2,  2,
+ 2,  2,  2,  3,  3,  3,  3,  3,
+ 3,  3,  3,  3,  4,  4,  4,  4,
+ 4,  4,  5,  5,  5,  5,  5,  5,
+ 6,  6,  6,  6,  6,  7,  7,  7,
+ 7,  7,  8,  8,  8,  8,  9,  9,
+ 9,  9, 10, 10, 11, 11, 12, 12,
+13, 14, 15, 16, 17, 18, 19,
+ 0,  0,  0,  0,  0,  1,  1,  1,
+ 1,  1,  2,  2,  2,  3,  3,  4,
+ 4,  5,  5,  6,  6,  7,  7,  8,
+ 8,  9,  9, 10, 10, 11, 11, 12,
+12, 13, 13, 14, 15, 16, 17, 18,
+19, 20, 21, 22, 23, 24, 25, 26,
+27, 28, 29, 30, 31, 32, 33, 34,
+35, 36, 37, 38, 39, 40, 41, 42,
+43, 44,
+};
+
+static const int8_t intra_rvlc_level[169]={
+ 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, 26, 27,  1,  2,  3,  4,  5,
+ 6,  7,  8,  9, 10, 11, 12, 13,
+ 1,  2,  3,  4,  5,  6,  7,  8,
+ 9, 10, 11,  1,  2,  3,  4,  5,
+ 6,  7,  8,  9,  1,  2,  3,  4,
+ 5,  6,  1,  2,  3,  4,  5,  6,
+ 1,  2,  3,  4,  5,  1,  2,  3,
+ 4,  5,  1,  2,  3,  4,  1,  2,
+ 3,  4,  1,  2,  1,  2,  1,  2,
+ 1,  1,  1,  1,  1,  1,  1,
+ 1,  2,  3,  4,  5,  1,  2,  3,
+ 4,  5,  1,  2,  3,  1,  2,  1,
+ 2,  1,  2,  1,  2,  1,  2,  1,
+ 2,  1,  2,  1,  2,  1,  2,  1,
+ 2,  1,  2,  1,  1,  1,  1,  1,
+ 1,  1,  1,  1,  1,  1,  1,  1,
+ 1,  1,  1,  1,  1,  1,  1,  1,
+ 1,  1,  1,  1,  1,  1,  1,  1,
+ 1,  1,
+};
+
+static RLTable rvlc_rl_intra = {
+    169,
+    103,
+    intra_rvlc,
+    intra_rvlc_run,
+    intra_rvlc_level,
+};
+
 /**
  * predicts the ac.
  * @param n block index (0-3 are luma, 4-5 are chroma)
-- 
1.7.4




More information about the ffmpeg-devel mailing list