Home | History | Annotate | Download | only in common
      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 
     11 
     12 #include <stdio.h>
     13 #include "blockd.h"
     14 
     15 
     16 void vp8_print_modes_and_motion_vectors(MODE_INFO *mi, int rows, int cols, int frame)
     17 {
     18 
     19     int mb_row;
     20     int mb_col;
     21     int mb_index = 0;
     22     FILE *mvs = fopen("mvs.stt", "a");
     23 
     24     /* print out the macroblock Y modes */
     25     mb_index = 0;
     26     fprintf(mvs, "Mb Modes for Frame %d\n", frame);
     27 
     28     for (mb_row = 0; mb_row < rows; mb_row++)
     29     {
     30         for (mb_col = 0; mb_col < cols; mb_col++)
     31         {
     32 
     33             fprintf(mvs, "%2d ", mi[mb_index].mbmi.mode);
     34 
     35             mb_index++;
     36         }
     37 
     38         fprintf(mvs, "\n");
     39         mb_index++;
     40     }
     41 
     42     fprintf(mvs, "\n");
     43 
     44     mb_index = 0;
     45     fprintf(mvs, "Mb mv ref for Frame %d\n", frame);
     46 
     47     for (mb_row = 0; mb_row < rows; mb_row++)
     48     {
     49         for (mb_col = 0; mb_col < cols; mb_col++)
     50         {
     51 
     52             fprintf(mvs, "%2d ", mi[mb_index].mbmi.ref_frame);
     53 
     54             mb_index++;
     55         }
     56 
     57         fprintf(mvs, "\n");
     58         mb_index++;
     59     }
     60 
     61     fprintf(mvs, "\n");
     62 
     63     /* print out the macroblock UV modes */
     64     mb_index = 0;
     65     fprintf(mvs, "UV Modes for Frame %d\n", frame);
     66 
     67     for (mb_row = 0; mb_row < rows; mb_row++)
     68     {
     69         for (mb_col = 0; mb_col < cols; mb_col++)
     70         {
     71 
     72             fprintf(mvs, "%2d ", mi[mb_index].mbmi.uv_mode);
     73 
     74             mb_index++;
     75         }
     76 
     77         mb_index++;
     78         fprintf(mvs, "\n");
     79     }
     80 
     81     fprintf(mvs, "\n");
     82 
     83     /* print out the block modes */
     84     mb_index = 0;
     85     fprintf(mvs, "Mbs for Frame %d\n", frame);
     86     {
     87         int b_row;
     88 
     89         for (b_row = 0; b_row < 4 * rows; b_row++)
     90         {
     91             int b_col;
     92             int bindex;
     93 
     94             for (b_col = 0; b_col < 4 * cols; b_col++)
     95             {
     96                 mb_index = (b_row >> 2) * (cols + 1) + (b_col >> 2);
     97                 bindex = (b_row & 3) * 4 + (b_col & 3);
     98 
     99                 if (mi[mb_index].mbmi.mode == B_PRED)
    100                     fprintf(mvs, "%2d ", mi[mb_index].bmi[bindex].mode);
    101                 else
    102                     fprintf(mvs, "xx ");
    103 
    104             }
    105 
    106             fprintf(mvs, "\n");
    107         }
    108     }
    109     fprintf(mvs, "\n");
    110 
    111     /* print out the macroblock mvs */
    112     mb_index = 0;
    113     fprintf(mvs, "MVs for Frame %d\n", frame);
    114 
    115     for (mb_row = 0; mb_row < rows; mb_row++)
    116     {
    117         for (mb_col = 0; mb_col < cols; mb_col++)
    118         {
    119             fprintf(mvs, "%5d:%-5d", mi[mb_index].mbmi.mv.as_mv.row / 2, mi[mb_index].mbmi.mv.as_mv.col / 2);
    120 
    121             mb_index++;
    122         }
    123 
    124         mb_index++;
    125         fprintf(mvs, "\n");
    126     }
    127 
    128     fprintf(mvs, "\n");
    129 
    130 
    131     /* print out the block modes */
    132     mb_index = 0;
    133     fprintf(mvs, "MVs for Frame %d\n", frame);
    134     {
    135         int b_row;
    136 
    137         for (b_row = 0; b_row < 4 * rows; b_row++)
    138         {
    139             int b_col;
    140             int bindex;
    141 
    142             for (b_col = 0; b_col < 4 * cols; b_col++)
    143             {
    144                 mb_index = (b_row >> 2) * (cols + 1) + (b_col >> 2);
    145                 bindex = (b_row & 3) * 4 + (b_col & 3);
    146                 fprintf(mvs, "%3d:%-3d ", mi[mb_index].bmi[bindex].mv.as_mv.row, mi[mb_index].bmi[bindex].mv.as_mv.col);
    147 
    148             }
    149 
    150             fprintf(mvs, "\n");
    151         }
    152     }
    153     fprintf(mvs, "\n");
    154 
    155 
    156     fclose(mvs);
    157 }
    158