LCOV - code coverage report
Current view: top level - media/libvpx/libvpx/vp9/common - vp9_tile_common.c (source / functions) Hit Total Coverage
Test: output.info Lines: 0 30 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 7 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       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             : #include "vp9/common/vp9_tile_common.h"
      12             : #include "vp9/common/vp9_onyxc_int.h"
      13             : #include "vpx_dsp/vpx_dsp_common.h"
      14             : 
      15             : #define MIN_TILE_WIDTH_B64 4
      16             : #define MAX_TILE_WIDTH_B64 64
      17             : 
      18           0 : static int get_tile_offset(int idx, int mis, int log2) {
      19           0 :   const int sb_cols = mi_cols_aligned_to_sb(mis) >> MI_BLOCK_SIZE_LOG2;
      20           0 :   const int offset = ((idx * sb_cols) >> log2) << MI_BLOCK_SIZE_LOG2;
      21           0 :   return VPXMIN(offset, mis);
      22             : }
      23             : 
      24           0 : void vp9_tile_set_row(TileInfo *tile, const VP9_COMMON *cm, int row) {
      25           0 :   tile->mi_row_start = get_tile_offset(row, cm->mi_rows, cm->log2_tile_rows);
      26           0 :   tile->mi_row_end = get_tile_offset(row + 1, cm->mi_rows, cm->log2_tile_rows);
      27           0 : }
      28             : 
      29           0 : void vp9_tile_set_col(TileInfo *tile, const VP9_COMMON *cm, int col) {
      30           0 :   tile->mi_col_start = get_tile_offset(col, cm->mi_cols, cm->log2_tile_cols);
      31           0 :   tile->mi_col_end = get_tile_offset(col + 1, cm->mi_cols, cm->log2_tile_cols);
      32           0 : }
      33             : 
      34           0 : void vp9_tile_init(TileInfo *tile, const VP9_COMMON *cm, int row, int col) {
      35           0 :   vp9_tile_set_row(tile, cm, row);
      36           0 :   vp9_tile_set_col(tile, cm, col);
      37           0 : }
      38             : 
      39           0 : static int get_min_log2_tile_cols(const int sb64_cols) {
      40           0 :   int min_log2 = 0;
      41           0 :   while ((MAX_TILE_WIDTH_B64 << min_log2) < sb64_cols) ++min_log2;
      42           0 :   return min_log2;
      43             : }
      44             : 
      45           0 : static int get_max_log2_tile_cols(const int sb64_cols) {
      46           0 :   int max_log2 = 1;
      47           0 :   while ((sb64_cols >> max_log2) >= MIN_TILE_WIDTH_B64) ++max_log2;
      48           0 :   return max_log2 - 1;
      49             : }
      50             : 
      51           0 : void vp9_get_tile_n_bits(int mi_cols, int *min_log2_tile_cols,
      52             :                          int *max_log2_tile_cols) {
      53           0 :   const int sb64_cols = mi_cols_aligned_to_sb(mi_cols) >> MI_BLOCK_SIZE_LOG2;
      54           0 :   *min_log2_tile_cols = get_min_log2_tile_cols(sb64_cols);
      55           0 :   *max_log2_tile_cols = get_max_log2_tile_cols(sb64_cols);
      56           0 :   assert(*min_log2_tile_cols <= *max_log2_tile_cols);
      57           0 : }

Generated by: LCOV version 1.13