~ubuntu-branches/ubuntu/vivid/gstreamer-vaapi/vivid

« back to all changes in this revision

Viewing changes to ext/libvpx/upstream/vp9/common/vp9_seg_common.h

  • Committer: Package Import Robot
  • Author(s): Vincent Cheng
  • Date: 2014-08-06 23:56:00 UTC
  • mfrom: (0.1.4 sid) (1.1.3)
  • Revision ID: package-import@ubuntu.com-20140806235600-fg1kcmiu67k315q5
Tags: 0.5.9-2
* Remove spurious build-deps: libva-drm1, libavcodec-dev. (Closes: #757283)
* Drop Build-Depends-Indep and build docs unconditionally on all archs.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 *  Copyright (c) 2012 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
#ifndef VP9_COMMON_VP9_SEG_COMMON_H_
 
12
#define VP9_COMMON_VP9_SEG_COMMON_H_
 
13
 
 
14
#include "vp9/common/vp9_treecoder.h"
 
15
 
 
16
#define SEGMENT_DELTADATA   0
 
17
#define SEGMENT_ABSDATA     1
 
18
 
 
19
#define MAX_SEGMENTS     8
 
20
#define SEG_TREE_PROBS   (MAX_SEGMENTS-1)
 
21
 
 
22
#define PREDICTION_PROBS 3
 
23
 
 
24
// Segment level features.
 
25
typedef enum {
 
26
  SEG_LVL_ALT_Q = 0,               // Use alternate Quantizer ....
 
27
  SEG_LVL_ALT_LF = 1,              // Use alternate loop filter value...
 
28
  SEG_LVL_REF_FRAME = 2,           // Optional Segment reference frame
 
29
  SEG_LVL_SKIP = 3,                // Optional Segment (0,0) + skip mode
 
30
  SEG_LVL_MAX = 4                  // Number of features supported
 
31
} SEG_LVL_FEATURES;
 
32
 
 
33
 
 
34
struct segmentation {
 
35
  uint8_t enabled;
 
36
  uint8_t update_map;
 
37
  uint8_t update_data;
 
38
  uint8_t abs_delta;
 
39
  uint8_t temporal_update;
 
40
 
 
41
  vp9_prob tree_probs[SEG_TREE_PROBS];
 
42
  vp9_prob pred_probs[PREDICTION_PROBS];
 
43
 
 
44
  int16_t feature_data[MAX_SEGMENTS][SEG_LVL_MAX];
 
45
  unsigned int feature_mask[MAX_SEGMENTS];
 
46
};
 
47
 
 
48
int vp9_segfeature_active(const struct segmentation *seg,
 
49
                          int segment_id,
 
50
                          SEG_LVL_FEATURES feature_id);
 
51
 
 
52
void vp9_clearall_segfeatures(struct segmentation *seg);
 
53
 
 
54
void vp9_enable_segfeature(struct segmentation *seg,
 
55
                           int segment_id,
 
56
                           SEG_LVL_FEATURES feature_id);
 
57
 
 
58
void vp9_disable_segfeature(struct segmentation *seg,
 
59
                            int segment_id,
 
60
                            SEG_LVL_FEATURES feature_id);
 
61
 
 
62
int vp9_seg_feature_data_max(SEG_LVL_FEATURES feature_id);
 
63
 
 
64
int vp9_is_segfeature_signed(SEG_LVL_FEATURES feature_id);
 
65
 
 
66
void vp9_clear_segdata(struct segmentation *seg,
 
67
                       int segment_id,
 
68
                       SEG_LVL_FEATURES feature_id);
 
69
 
 
70
void vp9_set_segdata(struct segmentation *seg,
 
71
                     int segment_id,
 
72
                     SEG_LVL_FEATURES feature_id,
 
73
                     int seg_data);
 
74
 
 
75
int vp9_get_segdata(const struct segmentation *seg,
 
76
                    int segment_id,
 
77
                    SEG_LVL_FEATURES feature_id);
 
78
 
 
79
extern const vp9_tree_index vp9_segment_tree[TREE_SIZE(MAX_SEGMENTS)];
 
80
 
 
81
#endif  // VP9_COMMON_VP9_SEG_COMMON_H_
 
82