gen_zigzag16.m 803 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. function order = gen_zigzag16(x, filename)
  2. file=fopen(filename, 'w');
  3. %Construct bands
  4. B = 3*ones(16,16);
  5. B(1:8,1:8)=0;
  6. B(1:4,9:16)=1;
  7. B(9:16,1:4)=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_zigzag16.m */\n");
  18. fprintf(file, "#include \"odintrin.h\"\n");
  19. fprintf(file, "OD_EXTERN const unsigned char od_zigzag16[%d][2] = {\n ", length(order));
  20. for k=1:length(order)
  21. fprintf(file, "{%d, %d}", mod(order(k),16), floor(order(k)/16));
  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);