Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2017
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.36 KB | None | 0 0
  1. --- jpeg-9b/jchuff.c 2013-10-26 08:20:14.000000000 +0900
  2. +++ jpeg-9b.new/jchuff.c 2017-01-23 03:05:04.864200000 +0900
  3. @@ -917,7 +919,27 @@
  4. register int nbits;
  5. register int r, k;
  6. int Se = state->cinfo->lim_Se;
  7. - const int * natural_order = state->cinfo->natural_order;
  8. +
  9. + /* This code overrides natural_order with collapsed_order */
  10. + /* const int * natural_order = state->cinfo->natural_order; */
  11. + int i, j, swp;
  12. + const int order_table_size = state->cinfo->block_size * state->cinfo->block_size;
  13. + int* natural_order = (int*)jpeg_get_small((j_common_ptr)state->cinfo, sizeof(int) * order_table_size);
  14. +
  15. + if (natural_order == NULL) {
  16. + jpeg_mem_term((j_common_ptr)state->cinfo);
  17. + ERREXIT1(state->cinfo,JERR_OUT_OF_MEMORY, 0);
  18. + }
  19. + for (i = 0; i < order_table_size; i++) {
  20. + natural_order[i] = i;
  21. + }
  22. +
  23. + for (i = order_table_size - 1; i > 1; i--) {
  24. + j = (int)(((double)random() / ((double)RAND_MAX + 1)) * order_table_size);
  25. + swp = natural_order[j];
  26. + natural_order[j] = natural_order[i];
  27. + natural_order[i] = swp;
  28. + }
  29.  
  30. /* Encode the DC coefficient difference per section F.1.2.1 */
  31.  
  32. @@ -1001,6 +1023,9 @@
  33. if (! emit_bits_s(state, actbl->ehufco[0], actbl->ehufsi[0]))
  34. return FALSE;
  35.  
  36. + /* free order table */
  37. + jpeg_free_small((j_common_ptr)state->cinfo, natural_order, sizeof(int) * order_table_size);
  38. +
  39. return TRUE;
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement