diff --git a/libavcodec/bfin/vp3dsp_init.c b/libavcodec/bfin/vp3dsp_init.c
index ae7ce93133fddfc2029bb9dccd9154b4e4ec70fa..be77cc42dceefe63ebed2f171b41d2a4439d4d0d 100644
--- a/libavcodec/bfin/vp3dsp_init.c
+++ b/libavcodec/bfin/vp3dsp_init.c
@@ -23,8 +23,8 @@
 
 #include "libavutil/attributes.h"
 #include "libavcodec/avcodec.h"
+#include "libavcodec/mathops.h"
 #include "libavcodec/vp3dsp.h"
-#include "libavcodec/dsputil.h"
 
 void ff_bfin_vp3_idct(int16_t *block);
 
diff --git a/libavcodec/bit_depth_template.c b/libavcodec/bit_depth_template.c
index 79bbbbba51eb04c51425c01b71830567ac0318be..27e658ba75fffc4f2a36df292eb407390703eaf0 100644
--- a/libavcodec/bit_depth_template.c
+++ b/libavcodec/bit_depth_template.c
@@ -16,6 +16,7 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "mathops.h"
 #include "rnd_avg.h"
 
 #ifndef BIT_DEPTH
diff --git a/libavcodec/cavsdsp.c b/libavcodec/cavsdsp.c
index bc905461911a077bd1014f98c353dde1848c7f6a..666dc7f03fbcf0b523c3eb4969330078ce96c001 100644
--- a/libavcodec/cavsdsp.c
+++ b/libavcodec/cavsdsp.c
@@ -23,7 +23,9 @@
  */
 
 #include <stdio.h>
+
 #include "dsputil.h"
+#include "mathops.h"
 #include "cavsdsp.h"
 #include "libavutil/common.h"
 
diff --git a/libavcodec/dsputil.h b/libavcodec/dsputil.h
index 10479f9f783a1d68e410115a252a786d1b70f6e2..b712d49ae949faf1fd7413330152811d9bfa9516 100644
--- a/libavcodec/dsputil.h
+++ b/libavcodec/dsputil.h
@@ -36,16 +36,11 @@
 /* encoding scans */
 extern const uint8_t ff_alternate_horizontal_scan[64];
 extern const uint8_t ff_alternate_vertical_scan[64];
-extern const uint8_t ff_zigzag_direct[64];
 extern const uint8_t ff_zigzag248_direct[64];
 
-/* pixel operations */
-#define MAX_NEG_CROP 1024
-
-/* temporary */
 extern uint32_t ff_square_tab[512];
-extern const uint8_t ff_crop_tab[256 + 2 * MAX_NEG_CROP];
 
+/* pixel operations */
 void ff_put_pixels8x8_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
 void ff_avg_pixels8x8_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
 void ff_put_pixels16x16_c(uint8_t *dst, uint8_t *src, ptrdiff_t stride);
diff --git a/libavcodec/imgconvert.c b/libavcodec/imgconvert.c
index 3f65c5b7ccf0a12cc10379071c7015c5e159257c..196bf5fae01c65a414568592a8f90075a1d6539e 100644
--- a/libavcodec/imgconvert.c
+++ b/libavcodec/imgconvert.c
@@ -31,9 +31,9 @@
  */
 
 #include "avcodec.h"
-#include "dsputil.h"
 #include "imgconvert.h"
 #include "internal.h"
+#include "mathops.h"
 #include "libavutil/colorspace.h"
 #include "libavutil/common.h"
 #include "libavutil/pixdesc.h"
diff --git a/libavcodec/indeo4data.h b/libavcodec/indeo4data.h
index 9b8945a2ba4bf183f5bdfdaa6bfbd7c4ab6f9ca8..8311c6881610c3feaca5f1d239cb2efc5350f088 100644
--- a/libavcodec/indeo4data.h
+++ b/libavcodec/indeo4data.h
@@ -28,8 +28,9 @@
 #define AVCODEC_INDEO4DATA_H
 
 #include <stdint.h>
-#include "dsputil.h"
+
 #include "ivi_common.h"
+#include "mathops.h"
 
 /**
  *  standard picture dimensions
diff --git a/libavcodec/mathops.h b/libavcodec/mathops.h
index 0489a602c3c39838c114164461384c067b776b0b..7af13e19e016918a6d6516b8b62b2f513f6e2b50 100644
--- a/libavcodec/mathops.h
+++ b/libavcodec/mathops.h
@@ -27,9 +27,13 @@
 #include "libavutil/common.h"
 #include "config.h"
 
+#define MAX_NEG_CROP 1024
+
 extern const uint32_t ff_inverse[257];
 extern const uint8_t  ff_reverse[256];
 extern const uint8_t ff_sqrt_tab[256];
+extern const uint8_t ff_crop_tab[256 + 2 * MAX_NEG_CROP];
+extern const uint8_t ff_zigzag_direct[64];
 
 #if   ARCH_ARM
 #   include "arm/mathops.h"
diff --git a/libavcodec/mathtables.c b/libavcodec/mathtables.c
index 0f09041752b7655904b8a363b86a055477fe5d81..47695bc34310508b1ef87c933a5fa79f158f978f 100644
--- a/libavcodec/mathtables.c
+++ b/libavcodec/mathtables.c
@@ -18,6 +18,8 @@
 
 #include <stdint.h>
 
+#include "mathops.h"
+
 /* a*inverse[b]>>32 == a/b for all 0<=a<=16909558 && 2<=b<=256
  * for a>16909558, is an overestimate by less than 1 part in 1<<24 */
 const uint32_t ff_inverse[257]={
@@ -89,7 +91,7 @@ const uint8_t ff_reverse[256] = {
 #define times4(x) x, x, x, x
 #define times256(x) times4(times4(times4(times4(times4(x)))))
 
-const uint8_t ff_crop_tab[256 + 2 * 1024] = {
+const uint8_t ff_crop_tab[256 + 2 * MAX_NEG_CROP] = {
 times256(0x00),
 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
diff --git a/libavcodec/mss3.c b/libavcodec/mss3.c
index c5e29a3205877f82e43fdf05454650efa7965cb9..9a0b1fb3e88181331ff8eb457a5a46f3c97110c5 100644
--- a/libavcodec/mss3.c
+++ b/libavcodec/mss3.c
@@ -26,8 +26,8 @@
 
 #include "avcodec.h"
 #include "bytestream.h"
-#include "dsputil.h"
 #include "internal.h"
+#include "mathops.h"
 #include "mss34dsp.h"
 
 #define HEADER_SIZE 27
diff --git a/libavcodec/pgssubdec.c b/libavcodec/pgssubdec.c
index 9b8e9194b235ca092859cdb2a1ccf7296731b262..4f175a347ff1aa0644f450a359c9e5cd3fb8040d 100644
--- a/libavcodec/pgssubdec.c
+++ b/libavcodec/pgssubdec.c
@@ -25,9 +25,9 @@
  */
 
 #include "avcodec.h"
-#include "dsputil.h"
 #include "bytestream.h"
 #include "internal.h"
+#include "mathops.h"
 
 #include "libavutil/colorspace.h"
 #include "libavutil/imgutils.h"
diff --git a/libavcodec/rv30dsp.c b/libavcodec/rv30dsp.c
index bae39bdf477507fd0f1f9649b243f2f80fef06ea..92234ed4262f68cefd526d32d26098ce64b8127f 100644
--- a/libavcodec/rv30dsp.c
+++ b/libavcodec/rv30dsp.c
@@ -27,6 +27,7 @@
 #include "avcodec.h"
 #include "h264chroma.h"
 #include "h264qpel.h"
+#include "mathops.h"
 #include "rv34dsp.h"
 
 #define RV30_LOWPASS(OPNAME, OP) \
diff --git a/libavcodec/rv40dsp.c b/libavcodec/rv40dsp.c
index 169ecad4ab36bd916fcdd4265df754c80a4d9588..122d14dc3af3cccaa8530f27f85c66f5d6cc72f3 100644
--- a/libavcodec/rv40dsp.c
+++ b/libavcodec/rv40dsp.c
@@ -26,6 +26,7 @@
 
 #include "avcodec.h"
 #include "h264qpel.h"
+#include "mathops.h"
 #include "rv34dsp.h"
 #include "libavutil/common.h"
 
diff --git a/libavcodec/vp3.c b/libavcodec/vp3.c
index a45f2dba0f9b567f646602f96f5a39e9bb3d92b8..dba286c3bbef05dc42dcd0a8204fc087466aa3d5 100644
--- a/libavcodec/vp3.c
+++ b/libavcodec/vp3.c
@@ -36,9 +36,9 @@
 #include "libavutil/imgutils.h"
 #include "avcodec.h"
 #include "internal.h"
-#include "dsputil.h"
 #include "get_bits.h"
 #include "hpeldsp.h"
+#include "mathops.h"
 #include "videodsp.h"
 #include "vp3data.h"
 #include "vp3dsp.h"
diff --git a/libavcodec/vp8dsp.c b/libavcodec/vp8dsp.c
index 92190927ae8b3f6e8ffddf235c69faee74acf8c1..ad7c60309c934496aae685045e00f49132843f43 100644
--- a/libavcodec/vp8dsp.c
+++ b/libavcodec/vp8dsp.c
@@ -24,7 +24,7 @@
  * VP8 compatible video decoder
  */
 
-#include "dsputil.h"
+#include "mathops.h"
 #include "vp8dsp.h"
 #include "libavutil/common.h"