gen_zigzag8.m 738 B

12345678910111213141516171819202122232425262728293031323334353637
  1. function order = gen_zigzag8(x, filename)
  2. file=fopen(filename, 'w');
  3. %Construct bands
  4. B = 3*ones(8,8);
  5. B(1:4,1:4)=0;
  6. B(1:2,5:8)=1;
  7. B(5:8,1:2)=2;
  8. #imagesc(B);
  9. order=[];
  10. for k=1:3
  11. mask = B==k;
  12. [dummy,ind]=sort(-x.*mask'(:));
  13. order = [order;ind(1:sum(sum(mask)))];
  14. end
  15. %start indexing at 0
  16. order = order-1;
  17. fprintf(file, "/* This file is automatically generated. */\n");
  18. fprintf(file, "const unsigned char od_zigzag8[%d][2] = {\n ", length(order));
  19. for k=1:length(order)
  20. fprintf(file, "{%d, %d}", mod(order(k),8), floor(order(k)/8));
  21. if (k!=length(order))
  22. fprintf(file, ",");
  23. end
  24. if (mod(k,4)==0)
  25. fprintf(file, "\n ");
  26. else
  27. fprintf(file, " ");
  28. end
  29. end
  30. fprintf(file, "};\n");
  31. fclose(file);