changeset 11772:4a178e0051d6 libavcodec

moves indeo5 scan patterns into ivi_common.c so those can be shared by indeo4.
author maxim
date Wed, 26 May 2010 13:25:16 +0000
parents 3c0dffc64d86
children 9c35a3dbea9b
files indeo5.c indeo5data.h ivi_common.c ivi_common.h
diffstat 4 files changed, 42 insertions(+), 27 deletions(-) [+]
line wrap: on
line diff
--- a/indeo5.c	Wed May 26 10:38:48 2010 +0000
+++ b/indeo5.c	Wed May 26 13:25:16 2010 +0000
@@ -185,25 +185,25 @@
             case 1:
                 band->inv_transform = ff_ivi_row_slant8;
                 band->dc_transform  = ff_ivi_dc_row_slant;
-                band->scan          = ivi5_scans8x8[0];
+                band->scan          = ivi_vertical_scan_8x8;
                 break;
 
             case 2:
                 band->inv_transform = ff_ivi_col_slant8;
                 band->dc_transform  = ff_ivi_dc_col_slant;
-                band->scan          = ivi5_scans8x8[1];
+                band->scan          = ivi_horizontal_scan_8x8;
                 break;
 
             case 3:
                 band->inv_transform = ff_ivi_put_pixels_8x8;
                 band->dc_transform  = ff_ivi_put_dc_pixel_8x8;
-                band->scan          = ivi5_scans8x8[1];
+                band->scan          = ivi_horizontal_scan_8x8;
                 break;
 
             case 4:
                 band->inv_transform = ff_ivi_inverse_slant_4x4;
                 band->dc_transform  = ff_ivi_dc_slant_2d;
-                band->scan          = ivi5_scan4x4;
+                band->scan          = ivi_direct_scan_4x4;
                 break;
             }
 
--- a/indeo5data.h	Wed May 26 10:38:48 2010 +0000
+++ b/indeo5data.h	Wed May 26 13:25:16 2010 +0000
@@ -37,29 +37,6 @@
     176,  60, 20, 15, 22, 18,   0,   0,  0,  0,  0,  0
 };
 
-/**
- *  Indeo5 8x8 scan (zigzag) patterns
- */
-static const uint8_t ivi5_scans8x8[2][64] = {
-    {0,  8, 16, 24, 32, 40, 48, 56,  1,  9, 17, 25, 33, 41, 49, 57,
-     2, 10, 18, 26, 34, 42, 50, 58,  3, 11, 19, 27, 35, 43, 51, 59,
-     4, 12, 20, 28, 36, 44, 52, 60,  5, 13, 21, 29, 37, 45, 53, 61,
-     6, 14, 22, 30, 38, 46, 54, 62,  7, 15, 23, 31, 39, 47, 55, 63
-    },
-    {0,  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, 28, 29, 30, 31,
-    32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
-    48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63
-    }
-};
-
-/**
- *  Indeo5 4x4 scan (zigzag) pattern
- */
-static const uint8_t ivi5_scan4x4[16] = {
-    0, 1, 4, 8, 5, 2, 3, 6, 9, 12, 13, 10, 7, 11, 14, 15
-};
-
 
 /**
  *  Indeo5 dequantization matrixes consist of two tables: base table
--- a/ivi_common.c	Wed May 26 10:38:48 2010 +0000
+++ b/ivi_common.c	Wed May 26 13:25:16 2010 +0000
@@ -643,6 +643,36 @@
 
 
 /**
+ *  Scan patterns shared between indeo4 and indeo5
+ */
+const uint8_t ivi_vertical_scan_8x8[64] = {
+    0,  8, 16, 24, 32, 40, 48, 56,
+    1,  9, 17, 25, 33, 41, 49, 57,
+    2, 10, 18, 26, 34, 42, 50, 58,
+    3, 11, 19, 27, 35, 43, 51, 59,
+    4, 12, 20, 28, 36, 44, 52, 60,
+    5, 13, 21, 29, 37, 45, 53, 61,
+    6, 14, 22, 30, 38, 46, 54, 62,
+    7, 15, 23, 31, 39, 47, 55, 63
+};
+
+const uint8_t ivi_horizontal_scan_8x8[64] = {
+     0,  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, 28, 29, 30, 31,
+    32, 33, 34, 35, 36, 37, 38, 39,
+    40, 41, 42, 43, 44, 45, 46, 47,
+    48, 49, 50, 51, 52, 53, 54, 55,
+    56, 57, 58, 59, 60, 61, 62, 63
+};
+
+const uint8_t ivi_direct_scan_4x4[16] = {
+    0, 1, 4, 8, 5, 2, 3, 6, 9, 12, 13, 10, 7, 11, 14, 15
+};
+
+
+/**
  *  Run-value (RLE) tables.
  */
 const RVMapDesc ff_ivi_rvmap_tabs[9] = {
--- a/ivi_common.h	Wed May 26 10:38:48 2010 +0000
+++ b/ivi_common.h	Wed May 26 13:25:16 2010 +0000
@@ -68,6 +68,14 @@
 
 
 /**
+ *  Common scan patterns (defined in ivi_common.c)
+ */
+extern const uint8_t ivi_vertical_scan_8x8[64];
+extern const uint8_t ivi_horizontal_scan_8x8[64];
+extern const uint8_t ivi_direct_scan_4x4[16];
+
+
+/**
  *  run-value (RLE) table descriptor
  */
 typedef struct {