00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #include "izz.h"
00012 #include <stdio.h>
00013
00014 const int IZZ::zigzag[64] =
00015 {
00016 0, 1, 8, 16, 9, 2, 3, 10,
00017 17, 24, 32, 25, 18, 11, 4, 5,
00018 12, 19, 26, 33, 40, 48, 41, 34,
00019 27, 20, 13, 6, 7, 14, 21, 28,
00020 35, 42, 49, 56, 57, 50, 43, 36,
00021 29, 22, 15, 23, 30, 37, 44, 51,
00022 58, 59, 52, 45, 38, 31, 39, 46,
00023 53, 60, 61, 54, 47, 55, 62, 63
00024 };
00025
00026 IZZ::IZZ(
00027 const Id& n,
00028 In<VYApixel>& Cin,
00029 Out<VYApixel>& Cout)
00030 :
00031 Process(n),
00032 CinP( id("CinP"), Cin),
00033 CoutP( id("CoutP"), Cout)
00034 {
00035 }
00036
00037 void IZZ::main()
00038 {
00039 VYApixel Cin[64];
00040 VYApixel Cout[64];
00041
00042 while (true)
00043 {
00044 read(CinP, Cin, 64);
00045 for (unsigned int i=0; i<64; i++)
00046 {
00047 Cout[zigzag[i]] = Cin[i];
00048 }
00049 write(CoutP, Cout, 64);
00050 }
00051 }