gen_zigzag32.m 805 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. function order = gen_zigzag32(x, filename)
  2. file=fopen(filename, 'w');
  3. %Construct bands
  4. B = 3*ones(32,32);
  5. B(1:16,1:16)=0;
  6. B(1:8,17:32)=1;
  7. B(17:32,1:8)=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 generated by gen_zigzag32.m */\n");
  18. fprintf(file, "#include \"odintrin.h\"\n");
  19. fprintf(file, "OD_EXTERN const unsigned char OD_ZIGZAG32[%d][2] = {\n", length(order));
  20. for k=1:length(order)
  21. fprintf(file, "{ %d, %d }", mod(order(k),32), floor(order(k)/32));
  22. if (k!=length(order))
  23. fprintf(file, ",");
  24. end
  25. if (mod(k,4)==0)
  26. fprintf(file, "\n");
  27. else
  28. fprintf(file, " ");
  29. end
  30. end
  31. fprintf(file, "};\n");
  32. fclose(file);