Transfer from an Ager Digital, use MATLAB to implement Zig-ZAG scan in MPEG. I feel a bit of research value, and the method of implementing is also very clever. Below gives a method provided by the MPEG:
=== Function B = Zigzag (a)% This is based on the MPEG source code provided by UNIVERSITY OF CALIFORNIA. % Copyright (C) 1995 The Regents of The University of California.
[N, M] = Size (a); if (n ~ = 8 & m ~ = 8) Error ('Input Array IS Not 8-BY-8'); END
% Set Up Array for Fast Conversion from Row / Column Coordinates TO% Zig Zag ORDER. The subscript begins from zero because it is zigzag = [0, 1, 8, 16, 9, 2, 3, from MPEG C code. , 10, ... 17, 24, 32, 25, 18, 11, 4, 5, ... 12, 19, 26, 33, 40, 48, 41, 34, ... 27, 20, 13, 6, 7, 14, 21, 28, ... 35, 42, 49, 56, 57, 50, 43, 36, ... 29, 22, 15, 23, 30, 37, 44, 51, .. 58, 59, 52, 46, 38, 31, 39, 46, ... 53, 60, 61, 54, 47, 55, 62, 63];
Zigzag = zigzag 1;%