/media/libvpx/vp8/common/debugmodes.c

http://github.com/zpao/v8monkey · C · 157 lines · 101 code · 42 blank · 14 comment · 14 complexity · a2af5c31d32362010e2368b980d77c32 MD5 · raw file

  1. /*
  2. * Copyright (c) 2010 The WebM project authors. All Rights Reserved.
  3. *
  4. * Use of this source code is governed by a BSD-style license
  5. * that can be found in the LICENSE file in the root of the source
  6. * tree. An additional intellectual property rights grant can be found
  7. * in the file PATENTS. All contributing project authors may
  8. * be found in the AUTHORS file in the root of the source tree.
  9. */
  10. #include <stdio.h>
  11. #include "blockd.h"
  12. void vp8_print_modes_and_motion_vectors(MODE_INFO *mi, int rows, int cols, int frame)
  13. {
  14. int mb_row;
  15. int mb_col;
  16. int mb_index = 0;
  17. FILE *mvs = fopen("mvs.stt", "a");
  18. /* print out the macroblock Y modes */
  19. mb_index = 0;
  20. fprintf(mvs, "Mb Modes for Frame %d\n", frame);
  21. for (mb_row = 0; mb_row < rows; mb_row++)
  22. {
  23. for (mb_col = 0; mb_col < cols; mb_col++)
  24. {
  25. fprintf(mvs, "%2d ", mi[mb_index].mbmi.mode);
  26. mb_index++;
  27. }
  28. fprintf(mvs, "\n");
  29. mb_index++;
  30. }
  31. fprintf(mvs, "\n");
  32. mb_index = 0;
  33. fprintf(mvs, "Mb mv ref for Frame %d\n", frame);
  34. for (mb_row = 0; mb_row < rows; mb_row++)
  35. {
  36. for (mb_col = 0; mb_col < cols; mb_col++)
  37. {
  38. fprintf(mvs, "%2d ", mi[mb_index].mbmi.ref_frame);
  39. mb_index++;
  40. }
  41. fprintf(mvs, "\n");
  42. mb_index++;
  43. }
  44. fprintf(mvs, "\n");
  45. /* print out the macroblock UV modes */
  46. mb_index = 0;
  47. fprintf(mvs, "UV Modes for Frame %d\n", frame);
  48. for (mb_row = 0; mb_row < rows; mb_row++)
  49. {
  50. for (mb_col = 0; mb_col < cols; mb_col++)
  51. {
  52. fprintf(mvs, "%2d ", mi[mb_index].mbmi.uv_mode);
  53. mb_index++;
  54. }
  55. mb_index++;
  56. fprintf(mvs, "\n");
  57. }
  58. fprintf(mvs, "\n");
  59. /* print out the block modes */
  60. mb_index = 0;
  61. fprintf(mvs, "Mbs for Frame %d\n", frame);
  62. {
  63. int b_row;
  64. for (b_row = 0; b_row < 4 * rows; b_row++)
  65. {
  66. int b_col;
  67. int bindex;
  68. for (b_col = 0; b_col < 4 * cols; b_col++)
  69. {
  70. mb_index = (b_row >> 2) * (cols + 1) + (b_col >> 2);
  71. bindex = (b_row & 3) * 4 + (b_col & 3);
  72. if (mi[mb_index].mbmi.mode == B_PRED)
  73. fprintf(mvs, "%2d ", mi[mb_index].bmi[bindex].as_mode);
  74. else
  75. fprintf(mvs, "xx ");
  76. }
  77. fprintf(mvs, "\n");
  78. }
  79. }
  80. fprintf(mvs, "\n");
  81. /* print out the macroblock mvs */
  82. mb_index = 0;
  83. fprintf(mvs, "MVs for Frame %d\n", frame);
  84. for (mb_row = 0; mb_row < rows; mb_row++)
  85. {
  86. for (mb_col = 0; mb_col < cols; mb_col++)
  87. {
  88. fprintf(mvs, "%5d:%-5d", mi[mb_index].mbmi.mv.as_mv.row / 2, mi[mb_index].mbmi.mv.as_mv.col / 2);
  89. mb_index++;
  90. }
  91. mb_index++;
  92. fprintf(mvs, "\n");
  93. }
  94. fprintf(mvs, "\n");
  95. /* print out the block modes */
  96. mb_index = 0;
  97. fprintf(mvs, "MVs for Frame %d\n", frame);
  98. {
  99. int b_row;
  100. for (b_row = 0; b_row < 4 * rows; b_row++)
  101. {
  102. int b_col;
  103. int bindex;
  104. for (b_col = 0; b_col < 4 * cols; b_col++)
  105. {
  106. mb_index = (b_row >> 2) * (cols + 1) + (b_col >> 2);
  107. bindex = (b_row & 3) * 4 + (b_col & 3);
  108. fprintf(mvs, "%3d:%-3d ", mi[mb_index].bmi[bindex].mv.as_mv.row, mi[mb_index].bmi[bindex].mv.as_mv.col);
  109. }
  110. fprintf(mvs, "\n");
  111. }
  112. }
  113. fprintf(mvs, "\n");
  114. fclose(mvs);
  115. }