Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Xiph.Org
aom-rav1e
Commits
bfebe7e9
Commit
bfebe7e9
authored
Aug 27, 2013
by
Dmitry Kovalev
Committed by
Gerrit Code Review
Aug 27, 2013
Browse files
Merge "Renaming BLOCK_SIZE_TYPE to BLOCK_SIZE in the common/decoder."
parents
78e670fc
45870619
Changes
14
Hide whitespace changes
Inline
Side-by-side
test/vp9_subtract_test.cc
View file @
bfebe7e9
...
...
@@ -39,8 +39,8 @@ TEST_P(VP9SubtractBlockTest, SimpleSubtract) {
ACMRandom
rnd
(
ACMRandom
::
DeterministicSeed
());
// FIXME(rbultje) split in its own file
for
(
BLOCK_SIZE
_TYPE
bsize
=
BLOCK_4X4
;
bsize
<
BLOCK_SIZES
;
bsize
=
static_cast
<
BLOCK_SIZE
_TYPE
>
(
static_cast
<
int
>
(
bsize
)
+
1
))
{
for
(
BLOCK_SIZE
bsize
=
BLOCK_4X4
;
bsize
<
BLOCK_SIZES
;
bsize
=
static_cast
<
BLOCK_SIZE
>
(
static_cast
<
int
>
(
bsize
)
+
1
))
{
const
int
block_width
=
4
<<
b_width_log2
(
bsize
);
const
int
block_height
=
4
<<
b_height_log2
(
bsize
);
int16_t
*
diff
=
reinterpret_cast
<
int16_t
*>
(
...
...
vp9/common/vp9_blockd.h
View file @
bfebe7e9
...
...
@@ -115,18 +115,18 @@ typedef enum {
MAX_REF_FRAMES
=
4
}
MV_REFERENCE_FRAME
;
static
INLINE
int
b_width_log2
(
BLOCK_SIZE
_TYPE
sb_type
)
{
static
INLINE
int
b_width_log2
(
BLOCK_SIZE
sb_type
)
{
return
b_width_log2_lookup
[
sb_type
];
}
static
INLINE
int
b_height_log2
(
BLOCK_SIZE
_TYPE
sb_type
)
{
static
INLINE
int
b_height_log2
(
BLOCK_SIZE
sb_type
)
{
return
b_height_log2_lookup
[
sb_type
];
}
static
INLINE
int
mi_width_log2
(
BLOCK_SIZE
_TYPE
sb_type
)
{
static
INLINE
int
mi_width_log2
(
BLOCK_SIZE
sb_type
)
{
return
mi_width_log2_lookup
[
sb_type
];
}
static
INLINE
int
mi_height_log2
(
BLOCK_SIZE
_TYPE
sb_type
)
{
static
INLINE
int
mi_height_log2
(
BLOCK_SIZE
sb_type
)
{
return
mi_height_log2_lookup
[
sb_type
];
}
...
...
@@ -153,7 +153,7 @@ typedef struct {
INTERPOLATIONFILTERTYPE
interp_filter
;
BLOCK_SIZE
_TYPE
sb_type
;
BLOCK_SIZE
sb_type
;
}
MB_MODE_INFO
;
typedef
struct
{
...
...
@@ -245,7 +245,7 @@ typedef struct macroblockd {
}
MACROBLOCKD
;
static
INLINE
unsigned
char
*
get_sb_index
(
MACROBLOCKD
*
xd
,
BLOCK_SIZE
_TYPE
subsize
)
{
static
INLINE
unsigned
char
*
get_sb_index
(
MACROBLOCKD
*
xd
,
BLOCK_SIZE
subsize
)
{
switch
(
subsize
)
{
case
BLOCK_64X64
:
case
BLOCK_64X32
:
...
...
@@ -270,9 +270,8 @@ static INLINE unsigned char *get_sb_index(MACROBLOCKD *xd, BLOCK_SIZE_TYPE subsi
}
}
static
INLINE
void
update_partition_context
(
MACROBLOCKD
*
xd
,
BLOCK_SIZE_TYPE
sb_type
,
BLOCK_SIZE_TYPE
sb_size
)
{
static
INLINE
void
update_partition_context
(
MACROBLOCKD
*
xd
,
BLOCK_SIZE
sb_type
,
BLOCK_SIZE
sb_size
)
{
const
int
bsl
=
b_width_log2
(
sb_size
),
bs
=
(
1
<<
bsl
)
/
2
;
const
int
bwl
=
b_width_log2
(
sb_type
);
const
int
bhl
=
b_height_log2
(
sb_type
);
...
...
@@ -290,8 +289,7 @@ static INLINE void update_partition_context(MACROBLOCKD *xd,
vpx_memset
(
xd
->
left_seg_context
,
pcvalue
[
bhl
==
bsl
],
bs
);
}
static
INLINE
int
partition_plane_context
(
MACROBLOCKD
*
xd
,
BLOCK_SIZE_TYPE
sb_type
)
{
static
INLINE
int
partition_plane_context
(
MACROBLOCKD
*
xd
,
BLOCK_SIZE
sb_type
)
{
int
bsl
=
mi_width_log2
(
sb_type
),
bs
=
1
<<
bsl
;
int
above
=
0
,
left
=
0
,
i
;
int
boffset
=
mi_width_log2
(
BLOCK_64X64
)
-
bsl
;
...
...
@@ -311,9 +309,8 @@ static INLINE int partition_plane_context(MACROBLOCKD *xd,
return
(
left
*
2
+
above
)
+
bsl
*
PARTITION_PLOFFSET
;
}
static
BLOCK_SIZE_TYPE
get_subsize
(
BLOCK_SIZE_TYPE
bsize
,
PARTITION_TYPE
partition
)
{
const
BLOCK_SIZE_TYPE
subsize
=
subsize_lookup
[
partition
][
bsize
];
static
BLOCK_SIZE
get_subsize
(
BLOCK_SIZE
bsize
,
PARTITION_TYPE
partition
)
{
const
BLOCK_SIZE
subsize
=
subsize_lookup
[
partition
][
bsize
];
assert
(
subsize
<
BLOCK_SIZES
);
return
subsize
;
}
...
...
@@ -366,31 +363,30 @@ static INLINE TX_SIZE get_uv_tx_size(const MB_MODE_INFO *mbmi) {
return
MIN
(
mbmi
->
txfm_size
,
max_uv_txsize_lookup
[
mbmi
->
sb_type
]);
}
static
BLOCK_SIZE_TYPE
get_plane_block_size
(
BLOCK_SIZE_TYPE
bsize
,
const
struct
macroblockd_plane
*
pd
)
{
BLOCK_SIZE_TYPE
bs
=
ss_size_lookup
[
bsize
]
[
pd
->
subsampling_x
][
pd
->
subsampling_y
];
static
BLOCK_SIZE
get_plane_block_size
(
BLOCK_SIZE
bsize
,
const
struct
macroblockd_plane
*
pd
)
{
BLOCK_SIZE
bs
=
ss_size_lookup
[
bsize
][
pd
->
subsampling_x
][
pd
->
subsampling_y
];
assert
(
bs
<
BLOCK_SIZES
);
return
bs
;
}
static
INLINE
int
plane_block_width
(
BLOCK_SIZE
_TYPE
bsize
,
static
INLINE
int
plane_block_width
(
BLOCK_SIZE
bsize
,
const
struct
macroblockd_plane
*
plane
)
{
return
4
<<
(
b_width_log2
(
bsize
)
-
plane
->
subsampling_x
);
}
static
INLINE
int
plane_block_height
(
BLOCK_SIZE
_TYPE
bsize
,
static
INLINE
int
plane_block_height
(
BLOCK_SIZE
bsize
,
const
struct
macroblockd_plane
*
plane
)
{
return
4
<<
(
b_height_log2
(
bsize
)
-
plane
->
subsampling_y
);
}
typedef
void
(
*
foreach_transformed_block_visitor
)(
int
plane
,
int
block
,
BLOCK_SIZE
_TYPE
plane_bsize
,
BLOCK_SIZE
plane_bsize
,
TX_SIZE
tx_size
,
void
*
arg
);
static
INLINE
void
foreach_transformed_block_in_plane
(
const
MACROBLOCKD
*
const
xd
,
BLOCK_SIZE
_TYPE
bsize
,
int
plane
,
const
MACROBLOCKD
*
const
xd
,
BLOCK_SIZE
bsize
,
int
plane
,
foreach_transformed_block_visitor
visit
,
void
*
arg
)
{
const
struct
macroblockd_plane
*
const
pd
=
&
xd
->
plane
[
plane
];
const
MB_MODE_INFO
*
mbmi
=
&
xd
->
mode_info_context
->
mbmi
;
...
...
@@ -399,7 +395,7 @@ static INLINE void foreach_transformed_block_in_plane(
// transform size varies per plane, look it up in a common way.
const
TX_SIZE
tx_size
=
plane
?
get_uv_tx_size
(
mbmi
)
:
mbmi
->
txfm_size
;
const
BLOCK_SIZE
_TYPE
plane_bsize
=
get_plane_block_size
(
bsize
,
pd
);
const
BLOCK_SIZE
plane_bsize
=
get_plane_block_size
(
bsize
,
pd
);
const
int
num_4x4_w
=
num_4x4_blocks_wide_lookup
[
plane_bsize
];
const
int
num_4x4_h
=
num_4x4_blocks_high_lookup
[
plane_bsize
];
const
int
step
=
1
<<
(
tx_size
<<
1
);
...
...
@@ -440,7 +436,7 @@ static INLINE void foreach_transformed_block_in_plane(
}
static
INLINE
void
foreach_transformed_block
(
const
MACROBLOCKD
*
const
xd
,
BLOCK_SIZE
_TYPE
bsize
,
const
MACROBLOCKD
*
const
xd
,
BLOCK_SIZE
bsize
,
foreach_transformed_block_visitor
visit
,
void
*
arg
)
{
int
plane
;
...
...
@@ -449,7 +445,7 @@ static INLINE void foreach_transformed_block(
}
static
INLINE
void
foreach_transformed_block_uv
(
const
MACROBLOCKD
*
const
xd
,
BLOCK_SIZE
_TYPE
bsize
,
const
MACROBLOCKD
*
const
xd
,
BLOCK_SIZE
bsize
,
foreach_transformed_block_visitor
visit
,
void
*
arg
)
{
int
plane
;
...
...
@@ -457,25 +453,25 @@ static INLINE void foreach_transformed_block_uv(
foreach_transformed_block_in_plane
(
xd
,
bsize
,
plane
,
visit
,
arg
);
}
static
int
raster_block_offset
(
BLOCK_SIZE
_TYPE
plane_bsize
,
static
int
raster_block_offset
(
BLOCK_SIZE
plane_bsize
,
int
raster_block
,
int
stride
)
{
const
int
bw
=
b_width_log2
(
plane_bsize
);
const
int
y
=
4
*
(
raster_block
>>
bw
);
const
int
x
=
4
*
(
raster_block
&
((
1
<<
bw
)
-
1
));
return
y
*
stride
+
x
;
}
static
int16_t
*
raster_block_offset_int16
(
BLOCK_SIZE
_TYPE
plane_bsize
,
static
int16_t
*
raster_block_offset_int16
(
BLOCK_SIZE
plane_bsize
,
int
raster_block
,
int16_t
*
base
)
{
const
int
stride
=
4
<<
b_width_log2
(
plane_bsize
);
return
base
+
raster_block_offset
(
plane_bsize
,
raster_block
,
stride
);
}
static
uint8_t
*
raster_block_offset_uint8
(
BLOCK_SIZE
_TYPE
plane_bsize
,
static
uint8_t
*
raster_block_offset_uint8
(
BLOCK_SIZE
plane_bsize
,
int
raster_block
,
uint8_t
*
base
,
int
stride
)
{
return
base
+
raster_block_offset
(
plane_bsize
,
raster_block
,
stride
);
}
static
int
txfrm_block_to_raster_block
(
BLOCK_SIZE
_TYPE
plane_bsize
,
static
int
txfrm_block_to_raster_block
(
BLOCK_SIZE
plane_bsize
,
TX_SIZE
tx_size
,
int
block
)
{
const
int
bwl
=
b_width_log2
(
plane_bsize
);
const
int
tx_cols_log2
=
bwl
-
tx_size
;
...
...
@@ -486,7 +482,7 @@ static int txfrm_block_to_raster_block(BLOCK_SIZE_TYPE plane_bsize,
return
x
+
(
y
<<
bwl
);
}
static
void
txfrm_block_to_raster_xy
(
BLOCK_SIZE
_TYPE
plane_bsize
,
static
void
txfrm_block_to_raster_xy
(
BLOCK_SIZE
plane_bsize
,
TX_SIZE
tx_size
,
int
block
,
int
*
x
,
int
*
y
)
{
const
int
bwl
=
b_width_log2
(
plane_bsize
);
...
...
@@ -497,7 +493,7 @@ static void txfrm_block_to_raster_xy(BLOCK_SIZE_TYPE plane_bsize,
*
y
=
(
raster_mb
>>
tx_cols_log2
)
<<
tx_size
;
}
static
void
extend_for_intra
(
MACROBLOCKD
*
const
xd
,
BLOCK_SIZE
_TYPE
plane_bsize
,
static
void
extend_for_intra
(
MACROBLOCKD
*
const
xd
,
BLOCK_SIZE
plane_bsize
,
int
plane
,
int
block
,
TX_SIZE
tx_size
)
{
struct
macroblockd_plane
*
const
pd
=
&
xd
->
plane
[
plane
];
uint8_t
*
const
buf
=
pd
->
dst
.
buf
;
...
...
@@ -536,7 +532,7 @@ static void extend_for_intra(MACROBLOCKD* const xd, BLOCK_SIZE_TYPE plane_bsize,
}
static
void
set_contexts_on_border
(
MACROBLOCKD
*
xd
,
struct
macroblockd_plane
*
pd
,
BLOCK_SIZE
_TYPE
plane_bsize
,
BLOCK_SIZE
plane_bsize
,
int
tx_size_in_blocks
,
int
has_eob
,
int
aoff
,
int
loff
,
ENTROPY_CONTEXT
*
A
,
ENTROPY_CONTEXT
*
L
)
{
...
...
@@ -573,7 +569,7 @@ static void set_contexts_on_border(MACROBLOCKD *xd,
}
static
void
set_contexts
(
MACROBLOCKD
*
xd
,
struct
macroblockd_plane
*
pd
,
BLOCK_SIZE
_TYPE
plane_bsize
,
TX_SIZE
tx_size
,
BLOCK_SIZE
plane_bsize
,
TX_SIZE
tx_size
,
int
has_eob
,
int
aoff
,
int
loff
)
{
ENTROPY_CONTEXT
*
const
A
=
pd
->
above_context
+
aoff
;
ENTROPY_CONTEXT
*
const
L
=
pd
->
left_context
+
loff
;
...
...
vp9/common/vp9_common_data.c
View file @
bfebe7e9
...
...
@@ -74,7 +74,7 @@ const PARTITION_TYPE partition_lookup[][BLOCK_SIZES] = {
}
};
const
BLOCK_SIZE
_TYPE
subsize_lookup
[
PARTITION_TYPES
][
BLOCK_SIZES
]
=
{
const
BLOCK_SIZE
subsize_lookup
[
PARTITION_TYPES
][
BLOCK_SIZES
]
=
{
{
// PARTITION_NONE
BLOCK_4X4
,
BLOCK_4X8
,
BLOCK_8X4
,
BLOCK_8X8
,
BLOCK_8X16
,
BLOCK_16X8
,
...
...
@@ -115,7 +115,7 @@ const TX_SIZE max_uv_txsize_lookup[BLOCK_SIZES] = {
TX_16X16
,
TX_16X16
,
TX_16X16
,
TX_32X32
};
const
BLOCK_SIZE
_TYPE
ss_size_lookup
[
BLOCK_SIZES
][
2
][
2
]
=
{
const
BLOCK_SIZE
ss_size_lookup
[
BLOCK_SIZES
][
2
][
2
]
=
{
// ss_x == 0 ss_x == 0 ss_x == 1 ss_x == 1
// ss_y == 0 ss_y == 1 ss_y == 0 ss_y == 1
{{
BLOCK_4X4
,
BLOCK_INVALID
},
{
BLOCK_INVALID
,
BLOCK_INVALID
}},
...
...
vp9/common/vp9_common_data.h
View file @
bfebe7e9
...
...
@@ -24,9 +24,9 @@ extern const int num_4x4_blocks_wide_lookup[BLOCK_SIZES];
extern
const
int
size_group_lookup
[
BLOCK_SIZES
];
extern
const
int
num_pels_log2_lookup
[
BLOCK_SIZES
];
extern
const
PARTITION_TYPE
partition_lookup
[][
BLOCK_SIZES
];
extern
const
BLOCK_SIZE
_TYPE
subsize_lookup
[
PARTITION_TYPES
][
BLOCK_SIZES
];
extern
const
BLOCK_SIZE
subsize_lookup
[
PARTITION_TYPES
][
BLOCK_SIZES
];
extern
const
TX_SIZE
max_txsize_lookup
[
BLOCK_SIZES
];
extern
const
TX_SIZE
max_uv_txsize_lookup
[
BLOCK_SIZES
];
extern
const
BLOCK_SIZE
_TYPE
ss_size_lookup
[
BLOCK_SIZES
][
2
][
2
];
extern
const
BLOCK_SIZE
ss_size_lookup
[
BLOCK_SIZES
][
2
][
2
];
#endif // VP9_COMMON_VP9_COMMON_DATA_H
vp9/common/vp9_entropy.h
View file @
bfebe7e9
...
...
@@ -156,11 +156,11 @@ extern DECLARE_ALIGNED(16, int16_t,
void
vp9_coef_tree_initialize
(
void
);
void
vp9_adapt_coef_probs
(
struct
VP9Common
*
);
static
INLINE
void
reset_skip_context
(
MACROBLOCKD
*
xd
,
BLOCK_SIZE
_TYPE
bsize
)
{
static
INLINE
void
reset_skip_context
(
MACROBLOCKD
*
xd
,
BLOCK_SIZE
bsize
)
{
int
i
;
for
(
i
=
0
;
i
<
MAX_MB_PLANE
;
i
++
)
{
struct
macroblockd_plane
*
const
pd
=
&
xd
->
plane
[
i
];
const
BLOCK_SIZE
_TYPE
plane_bsize
=
get_plane_block_size
(
bsize
,
pd
);
const
BLOCK_SIZE
plane_bsize
=
get_plane_block_size
(
bsize
,
pd
);
vpx_memset
(
pd
->
above_context
,
0
,
sizeof
(
ENTROPY_CONTEXT
)
*
num_4x4_blocks_wide_lookup
[
plane_bsize
]);
vpx_memset
(
pd
->
left_context
,
0
,
sizeof
(
ENTROPY_CONTEXT
)
*
...
...
vp9/common/vp9_enums.h
View file @
bfebe7e9
...
...
@@ -22,7 +22,7 @@
#define MI_MASK (MI_BLOCK_SIZE - 1)
typedef
enum
BLOCK_SIZE
_TYPE
{
typedef
enum
BLOCK_SIZE
{
BLOCK_4X4
,
BLOCK_4X8
,
BLOCK_8X4
,
...
...
@@ -38,7 +38,9 @@ typedef enum BLOCK_SIZE_TYPE {
BLOCK_64X64
,
BLOCK_SIZES
,
BLOCK_INVALID
=
BLOCK_SIZES
}
BLOCK_SIZE_TYPE
;
}
BLOCK_SIZE
;
typedef
BLOCK_SIZE
BLOCK_SIZE_TYPE
;
typedef
enum
PARTITION_TYPE
{
PARTITION_NONE
,
...
...
vp9/common/vp9_pred_common.c
View file @
bfebe7e9
...
...
@@ -383,7 +383,7 @@ unsigned char vp9_get_pred_context_tx_size(const MACROBLOCKD *xd) {
return
above_context
+
left_context
>
max_tx_size
;
}
void
vp9_set_pred_flag_seg_id
(
VP9_COMMON
*
cm
,
BLOCK_SIZE
_TYPE
bsize
,
void
vp9_set_pred_flag_seg_id
(
VP9_COMMON
*
cm
,
BLOCK_SIZE
bsize
,
int
mi_row
,
int
mi_col
,
uint8_t
pred_flag
)
{
MODE_INFO
*
mi
=
&
cm
->
mi
[
mi_row
*
cm
->
mode_info_stride
+
mi_col
];
const
int
bw
=
1
<<
mi_width_log2
(
bsize
);
...
...
@@ -397,7 +397,7 @@ void vp9_set_pred_flag_seg_id(VP9_COMMON *cm, BLOCK_SIZE_TYPE bsize,
mi
[
y
*
cm
->
mode_info_stride
+
x
].
mbmi
.
seg_id_predicted
=
pred_flag
;
}
void
vp9_set_pred_flag_mbskip
(
VP9_COMMON
*
cm
,
BLOCK_SIZE
_TYPE
bsize
,
void
vp9_set_pred_flag_mbskip
(
VP9_COMMON
*
cm
,
BLOCK_SIZE
bsize
,
int
mi_row
,
int
mi_col
,
uint8_t
pred_flag
)
{
MODE_INFO
*
mi
=
&
cm
->
mi
[
mi_row
*
cm
->
mode_info_stride
+
mi_col
];
const
int
bw
=
1
<<
mi_width_log2
(
bsize
);
...
...
@@ -412,7 +412,7 @@ void vp9_set_pred_flag_mbskip(VP9_COMMON *cm, BLOCK_SIZE_TYPE bsize,
}
int
vp9_get_segment_id
(
VP9_COMMON
*
cm
,
const
uint8_t
*
segment_ids
,
BLOCK_SIZE
_TYPE
bsize
,
int
mi_row
,
int
mi_col
)
{
BLOCK_SIZE
bsize
,
int
mi_row
,
int
mi_col
)
{
const
int
mi_offset
=
mi_row
*
cm
->
mi_cols
+
mi_col
;
const
int
bw
=
1
<<
mi_width_log2
(
bsize
);
const
int
bh
=
1
<<
mi_height_log2
(
bsize
);
...
...
vp9/common/vp9_pred_common.h
View file @
bfebe7e9
...
...
@@ -15,7 +15,7 @@
#include
"vp9/common/vp9_onyxc_int.h"
int
vp9_get_segment_id
(
VP9_COMMON
*
cm
,
const
uint8_t
*
segment_ids
,
BLOCK_SIZE
_TYPE
bsize
,
int
mi_row
,
int
mi_col
);
BLOCK_SIZE
bsize
,
int
mi_row
,
int
mi_col
);
static
INLINE
int
vp9_get_pred_context_seg_id
(
const
MACROBLOCKD
*
xd
)
{
...
...
@@ -32,7 +32,7 @@ static INLINE vp9_prob vp9_get_pred_prob_seg_id(struct segmentation *seg,
return
seg
->
pred_probs
[
vp9_get_pred_context_seg_id
(
xd
)];
}
void
vp9_set_pred_flag_seg_id
(
VP9_COMMON
*
cm
,
BLOCK_SIZE
_TYPE
bsize
,
void
vp9_set_pred_flag_seg_id
(
VP9_COMMON
*
cm
,
BLOCK_SIZE
bsize
,
int
mi_row
,
int
mi_col
,
uint8_t
pred_flag
);
static
INLINE
int
vp9_get_pred_context_mbskip
(
const
MACROBLOCKD
*
xd
)
{
...
...
@@ -53,7 +53,7 @@ static INLINE unsigned char vp9_get_pred_flag_mbskip(const MACROBLOCKD *xd) {
return
xd
->
mode_info_context
->
mbmi
.
skip_coeff
;
}
void
vp9_set_pred_flag_mbskip
(
VP9_COMMON
*
cm
,
BLOCK_SIZE
_TYPE
bsize
,
void
vp9_set_pred_flag_mbskip
(
VP9_COMMON
*
cm
,
BLOCK_SIZE
bsize
,
int
mi_row
,
int
mi_col
,
uint8_t
pred_flag
);
unsigned
char
vp9_get_pred_context_switchable_interp
(
const
MACROBLOCKD
*
xd
);
...
...
@@ -103,7 +103,7 @@ static INLINE vp9_prob vp9_get_pred_prob_single_ref_p2(const VP9_COMMON *cm,
unsigned
char
vp9_get_pred_context_tx_size
(
const
MACROBLOCKD
*
xd
);
static
const
vp9_prob
*
get_tx_probs
(
BLOCK_SIZE
_TYPE
bsize
,
uint8_t
context
,
static
const
vp9_prob
*
get_tx_probs
(
BLOCK_SIZE
bsize
,
uint8_t
context
,
const
struct
tx_probs
*
tx_probs
)
{
if
(
bsize
<
BLOCK_16X16
)
return
tx_probs
->
p8x8
[
context
];
...
...
@@ -115,12 +115,12 @@ static const vp9_prob *get_tx_probs(BLOCK_SIZE_TYPE bsize, uint8_t context,
static
const
vp9_prob
*
get_tx_probs2
(
const
MACROBLOCKD
*
xd
,
const
struct
tx_probs
*
tx_probs
)
{
const
BLOCK_SIZE
_TYPE
bsize
=
xd
->
mode_info_context
->
mbmi
.
sb_type
;
const
BLOCK_SIZE
bsize
=
xd
->
mode_info_context
->
mbmi
.
sb_type
;
const
int
context
=
vp9_get_pred_context_tx_size
(
xd
);
return
get_tx_probs
(
bsize
,
context
,
tx_probs
);
}
static
void
update_tx_counts
(
BLOCK_SIZE
_TYPE
bsize
,
uint8_t
context
,
static
void
update_tx_counts
(
BLOCK_SIZE
bsize
,
uint8_t
context
,
TX_SIZE
tx_size
,
struct
tx_counts
*
tx_counts
)
{
if
(
bsize
>=
BLOCK_32X32
)
tx_counts
->
p32x32
[
context
][
tx_size
]
++
;
...
...
vp9/common/vp9_reconinter.c
View file @
bfebe7e9
...
...
@@ -117,8 +117,7 @@ struct build_inter_predictors_args {
int
x
,
y
;
};
static
void
build_inter_predictors
(
int
plane
,
int
block
,
BLOCK_SIZE_TYPE
bsize
,
static
void
build_inter_predictors
(
int
plane
,
int
block
,
BLOCK_SIZE
bsize
,
int
pred_w
,
int
pred_h
,
void
*
argv
)
{
const
struct
build_inter_predictors_args
*
const
arg
=
argv
;
...
...
@@ -174,14 +173,14 @@ static void build_inter_predictors(int plane, int block,
}
// TODO(jkoleszar): In principle, pred_w, pred_h are unnecessary, as we could
// calculate the subsampled BLOCK_SIZE
_TYPE
, but that type isn't defined for
// calculate the subsampled BLOCK_SIZE, but that type isn't defined for
// sizes smaller than 16x16 yet.
typedef
void
(
*
foreach_predicted_block_visitor
)(
int
plane
,
int
block
,
BLOCK_SIZE
_TYPE
bsize
,
BLOCK_SIZE
bsize
,
int
pred_w
,
int
pred_h
,
void
*
arg
);
static
INLINE
void
foreach_predicted_block_in_plane
(
const
MACROBLOCKD
*
const
xd
,
BLOCK_SIZE
_TYPE
bsize
,
int
plane
,
const
MACROBLOCKD
*
const
xd
,
BLOCK_SIZE
bsize
,
int
plane
,
foreach_predicted_block_visitor
visit
,
void
*
arg
)
{
int
i
,
x
,
y
;
...
...
@@ -216,8 +215,7 @@ static INLINE void foreach_predicted_block_in_plane(
}
}
static
void
build_inter_predictors_for_planes
(
MACROBLOCKD
*
xd
,
BLOCK_SIZE_TYPE
bsize
,
static
void
build_inter_predictors_for_planes
(
MACROBLOCKD
*
xd
,
BLOCK_SIZE
bsize
,
int
mi_row
,
int
mi_col
,
int
plane_from
,
int
plane_to
)
{
int
plane
;
...
...
@@ -231,16 +229,16 @@ static void build_inter_predictors_for_planes(MACROBLOCKD *xd,
}
void
vp9_build_inter_predictors_sby
(
MACROBLOCKD
*
xd
,
int
mi_row
,
int
mi_col
,
BLOCK_SIZE
_TYPE
bsize
)
{
BLOCK_SIZE
bsize
)
{
build_inter_predictors_for_planes
(
xd
,
bsize
,
mi_row
,
mi_col
,
0
,
0
);
}
void
vp9_build_inter_predictors_sbuv
(
MACROBLOCKD
*
xd
,
int
mi_row
,
int
mi_col
,
BLOCK_SIZE
_TYPE
bsize
)
{
BLOCK_SIZE
bsize
)
{
build_inter_predictors_for_planes
(
xd
,
bsize
,
mi_row
,
mi_col
,
1
,
MAX_MB_PLANE
-
1
);
}
void
vp9_build_inter_predictors_sb
(
MACROBLOCKD
*
xd
,
int
mi_row
,
int
mi_col
,
BLOCK_SIZE
_TYPE
bsize
)
{
BLOCK_SIZE
bsize
)
{
build_inter_predictors_for_planes
(
xd
,
bsize
,
mi_row
,
mi_col
,
0
,
MAX_MB_PLANE
-
1
);
}
...
...
vp9/common/vp9_reconinter.h
View file @
bfebe7e9
...
...
@@ -15,19 +15,14 @@
#include
"vp9/common/vp9_onyxc_int.h"
struct
subpix_fn_table
;
void
vp9_build_inter_predictors_sby
(
MACROBLOCKD
*
xd
,
int
mb_row
,
int
mb_col
,
BLOCK_SIZE_TYPE
bsize
);
void
vp9_build_inter_predictors_sbuv
(
MACROBLOCKD
*
xd
,
int
mb_row
,
int
mb_col
,
BLOCK_SIZE_TYPE
bsize
);
void
vp9_build_inter_predictors_sb
(
MACROBLOCKD
*
mb
,
int
mb_row
,
int
mb_col
,
BLOCK_SIZE_TYPE
bsize
);
void
vp9_build_inter_predictors_sby
(
MACROBLOCKD
*
xd
,
int
mi_row
,
int
mi_col
,
BLOCK_SIZE
bsize
);
void
vp9_build_inter_predictors_sbuv
(
MACROBLOCKD
*
xd
,
int
mi_row
,
int
mi_col
,
BLOCK_SIZE
bsize
);
void
vp9_build_inter_predictors_sb
(
MACROBLOCKD
*
xd
,
int
mi_row
,
int
mi_col
,
BLOCK_SIZE
bsize
);
void
vp9_setup_interp_filters
(
MACROBLOCKD
*
xd
,
INTERPOLATIONFILTERTYPE
filter
,
...
...
vp9/decoder/vp9_decodemv.c
View file @
bfebe7e9
...
...
@@ -43,7 +43,7 @@ static int read_segment_id(vp9_reader *r, const struct segmentation *seg) {
}
static
TX_SIZE
read_selected_tx_size
(
VP9_COMMON
*
cm
,
MACROBLOCKD
*
xd
,
BLOCK_SIZE
_TYPE
bsize
,
vp9_reader
*
r
)
{
BLOCK_SIZE
bsize
,
vp9_reader
*
r
)
{
const
uint8_t
context
=
vp9_get_pred_context_tx_size
(
xd
);
const
vp9_prob
*
tx_probs
=
get_tx_probs
(
bsize
,
context
,
&
cm
->
fc
.
tx_probs
);
TX_SIZE
tx_size
=
vp9_read
(
r
,
tx_probs
[
0
]);
...
...
@@ -58,7 +58,7 @@ static TX_SIZE read_selected_tx_size(VP9_COMMON *cm, MACROBLOCKD *xd,
}
static
TX_SIZE
read_tx_size
(
VP9D_COMP
*
pbi
,
TX_MODE
tx_mode
,
BLOCK_SIZE
_TYPE
bsize
,
int
allow_select
,
BLOCK_SIZE
bsize
,
int
allow_select
,
vp9_reader
*
r
)
{
VP9_COMMON
*
const
cm
=
&
pbi
->
common
;
MACROBLOCKD
*
const
xd
=
&
pbi
->
mb
;
...
...
@@ -75,7 +75,7 @@ static TX_SIZE read_tx_size(VP9D_COMP *pbi, TX_MODE tx_mode,
return
TX_4X4
;
}
static
void
set_segment_id
(
VP9_COMMON
*
cm
,
BLOCK_SIZE
_TYPE
bsize
,
static
void
set_segment_id
(
VP9_COMMON
*
cm
,
BLOCK_SIZE
bsize
,
int
mi_row
,
int
mi_col
,
int
segment_id
)
{
const
int
mi_offset
=
mi_row
*
cm
->
mi_cols
+
mi_col
;
const
int
bw
=
1
<<
mi_width_log2
(
bsize
);
...
...
@@ -95,7 +95,7 @@ static int read_intra_segment_id(VP9D_COMP *pbi, int mi_row, int mi_col,
vp9_reader
*
r
)
{
MACROBLOCKD
*
const
xd
=
&
pbi
->
mb
;
struct
segmentation
*
const
seg
=
&
pbi
->
common
.
seg
;
const
BLOCK_SIZE
_TYPE
bsize
=
xd
->
mode_info_context
->
mbmi
.
sb_type
;
const
BLOCK_SIZE
bsize
=
xd
->
mode_info_context
->
mbmi
.
sb_type
;
int
segment_id
;
if
(
!
seg
->
enabled
)
...
...
@@ -114,7 +114,7 @@ static int read_inter_segment_id(VP9D_COMP *pbi, int mi_row, int mi_col,
VP9_COMMON
*
const
cm
=
&
pbi
->
common
;
MACROBLOCKD
*
const
xd
=
&
pbi
->
mb
;
struct
segmentation
*
const
seg
=
&
cm
->
seg
;
const
BLOCK_SIZE
_TYPE
bsize
=
xd
->
mode_info_context
->
mbmi
.
sb_type
;
const
BLOCK_SIZE
bsize
=
xd
->
mode_info_context
->
mbmi
.
sb_type
;
int
pred_segment_id
,
segment_id
;
if
(
!
seg
->
enabled
)
...
...
@@ -155,7 +155,7 @@ static void read_intra_frame_mode_info(VP9D_COMP *pbi, MODE_INFO *m,
VP9_COMMON
*
const
cm
=
&
pbi
->
common
;
MACROBLOCKD
*
const
xd
=
&
pbi
->
mb
;
MB_MODE_INFO
*
const
mbmi
=
&
m
->
mbmi
;
const
BLOCK_SIZE
_TYPE
bsize
=
mbmi
->
sb_type
;
const
BLOCK_SIZE
bsize
=
mbmi
->
sb_type
;
const
int
mis
=
cm
->
mode_info_stride
;
mbmi
->
segment_id
=
read_intra_segment_id
(
pbi
,
mi_row
,
mi_col
,
r
);
...
...
@@ -381,7 +381,7 @@ static void read_intra_block_mode_info(VP9D_COMP *pbi, MODE_INFO *mi,
vp9_reader
*
r
)
{
VP9_COMMON
*
const
cm
=
&
pbi
->
common
;
MB_MODE_INFO
*
const
mbmi
=
&
mi
->
mbmi
;
const
BLOCK_SIZE
_TYPE
bsize
=
mi
->
mbmi
.
sb_type
;
const
BLOCK_SIZE
bsize
=
mi
->
mbmi
.
sb_type
;
mbmi
->
ref_frame
[
0
]
=
INTRA_FRAME
;
mbmi
->
ref_frame
[
1
]
=
NONE
;
...
...
@@ -439,7 +439,7 @@ static void read_inter_block_mode_info(VP9D_COMP *pbi, MODE_INFO *mi,
MB_MODE_INFO
*
const
mbmi
=
&
mi
->
mbmi
;
int_mv
*
const
mv0
=
&
mbmi
->
mv
[
0
];
int_mv
*
const
mv1
=
&
mbmi
->
mv
[
1
];
const
BLOCK_SIZE
_TYPE
bsize
=
mbmi
->
sb_type
;
const
BLOCK_SIZE
bsize
=
mbmi
->
sb_type
;
const
int
allow_hp
=
xd
->
allow_high_precision_mv
;
int_mv
nearest
,
nearby
,
best_mv
;
...
...
@@ -668,7 +668,7 @@ void vp9_read_mode_info(VP9D_COMP* pbi, int mi_row, int mi_col, vp9_reader *r) {
VP9_COMMON
*
const
cm
=
&
pbi
->
common
;
MACROBLOCKD
*
const
xd
=
&
pbi
->
mb
;
MODE_INFO
*
mi
=
xd
->
mode_info_context
;
const
BLOCK_SIZE
_TYPE
bsize
=
mi
->
mbmi
.
sb_type
;
const
BLOCK_SIZE
bsize
=
mi
->
mbmi
.
sb_type
;
const
int
bw
=
1
<<
mi_width_log2
(
bsize
);
const
int
bh
=
1
<<
mi_height_log2
(
bsize
);
const
int
y_mis
=
MIN
(
bh
,
cm
->
mi_rows
-
mi_row
);
...
...
vp9/decoder/vp9_decodframe.c
View file @
bfebe7e9
...
...
@@ -87,7 +87,7 @@ static void init_dequantizer(VP9_COMMON *cm, MACROBLOCKD *xd) {
xd
->
plane
[
i
].
dequant
=
cm
->
uv_dequant
[
xd
->
q_index
];
}
static
void
decode_block
(
int
plane
,
int
block
,
BLOCK_SIZE
_TYPE
plane_bsize
,
static
void
decode_block
(
int
plane
,
int
block
,
BLOCK_SIZE
plane_bsize
,
TX_SIZE
tx_size
,
void
*
arg
)
{
MACROBLOCKD
*
const
xd
=
arg
;
struct
macroblockd_plane
*
const
pd
=
&
xd
->
plane
[
plane
];
...
...
@@ -123,8 +123,7 @@ static void decode_block(int plane, int block, BLOCK_SIZE_TYPE plane_bsize,
}
}
static
void
decode_block_intra
(
int
plane
,
int
block
,
BLOCK_SIZE_TYPE
plane_bsize
,
static
void
decode_block_intra
(
int
plane
,
int
block
,
BLOCK_SIZE
plane_bsize
,
TX_SIZE
tx_size
,
void
*
arg
)
{
MACROBLOCKD
*
const
xd
=
arg
;
struct
macroblockd_plane
*
const
pd
=
&
xd
->
plane
[
plane
];
...
...
@@ -158,7 +157,7 @@ static void decode_block_intra(int plane, int block,
decode_block
(
plane
,
block
,
plane_bsize
,
tx_size
,
arg
);
}
static
int
decode_tokens
(
VP9D_COMP
*
pbi
,
BLOCK_SIZE
_TYPE
bsize
,
vp9_reader
*
r
)
{
static
int
decode_tokens
(
VP9D_COMP
*
pbi
,
BLOCK_SIZE
bsize
,
vp9_reader
*
r
)
{
MACROBLOCKD
*
const
xd
=
&
pbi
->
mb
;
if
(
xd
->
mode_info_context
->
mbmi
.
skip_coeff
)
{
...
...
@@ -173,7 +172,7 @@ static int decode_tokens(VP9D_COMP *pbi, BLOCK_SIZE_TYPE bsize, vp9_reader *r) {
}
}
static
void
set_offsets
(
VP9D_COMP
*
pbi
,
BLOCK_SIZE
_TYPE
bsize
,
static
void
set_offsets
(
VP9D_COMP
*
pbi
,
BLOCK_SIZE
bsize
,
int
mi_row
,
int
mi_col
)
{
VP9_COMMON
*
const
cm
=
&
pbi
->
common
;
MACROBLOCKD
*
const
xd
=
&
pbi
->
mb
;
...
...
@@ -215,7 +214,7 @@ static void set_ref(VP9D_COMP *pbi, int i, int mi_row, int mi_col) {
}
static
void
decode_modes_b
(
VP9D_COMP
*
pbi
,
int
mi_row
,
int
mi_col
,
vp9_reader
*
r
,
BLOCK_SIZE
_TYPE
bsize
)
{
vp9_reader
*
r
,
BLOCK_SIZE
bsize
)
{
VP9_COMMON
*
const
cm
=
&
pbi
->
common
;
MACROBLOCKD
*
const
xd
=
&
pbi
->
mb
;
const
int
less8x8
=
bsize
<
BLOCK_8X8
;
...
...
@@ -265,12 +264,12 @@ static void decode_modes_b(VP9D_COMP *pbi, int mi_row, int mi_col,
}
static
void
decode_modes_sb
(
VP9D_COMP
*
pbi
,
int
mi_row
,
int
mi_col
,
vp9_reader
*
r
,
BLOCK_SIZE
_TYPE
bsize
)
{
vp9_reader
*
r
,
BLOCK_SIZE
bsize
)
{
VP9_COMMON
*
const
pc
=
&
pbi
->
common
;
MACROBLOCKD
*
const
xd
=
&
pbi
->
mb
;
const
int
bs
=
(
1
<<
mi_width_log2
(
bsize
))
/
2
;
PARTITION_TYPE
partition
=
PARTITION_NONE
;
BLOCK_SIZE
_TYPE
subsize
;
BLOCK_SIZE
subsize
;
if
(
mi_row
>=
pc
->
mi_rows
||
mi_col
>=
pc
->
mi_cols
)
return
;
...
...
vp9/decoder/vp9_detokenize.c
View file @
bfebe7e9
...
...
@@ -249,7 +249,7 @@ struct decode_block_args {
int
*
eobtotal
;
};
static
void
decode_block
(
int
plane
,
int
block
,
BLOCK_SIZE
_TYPE
plane_bsize
,
static
void
decode_block
(
int
plane
,
int
block
,
BLOCK_SIZE
plane_bsize
,
TX_SIZE
tx_size
,
void
*
argv
)
{
const
struct
decode_block_args
*
const
arg
=
argv
;
...
...
@@ -275,7 +275,7 @@ static void decode_block(int plane, int block, BLOCK_SIZE_TYPE plane_bsize,
*
arg
->
eobtotal
+=
eob
;
}
int
vp9_decode_tokens
(
VP9D_COMP
*
pbi
,
vp9_reader
*
r
,
BLOCK_SIZE
_TYPE
bsize
)
{
int
vp9_decode_tokens
(
VP9D_COMP
*
pbi
,
vp9_reader
*
r
,
BLOCK_SIZE
bsize
)
{
int
eobtotal
=
0
;
struct
decode_block_args
args
=
{
pbi
,
r
,
&
eobtotal
};
foreach_transformed_block
(
&
pbi
->
mb
,
bsize
,
decode_block
,
&
args
);
...
...
vp9/decoder/vp9_detokenize.h
View file @
bfebe7e9
...
...
@@ -15,6 +15,6 @@
#include
"vp9/decoder/vp9_onyxd_int.h"
#include
"vp9/decoder/vp9_dboolhuff.h"
int
vp9_decode_tokens
(
VP9D_COMP
*
pbi
,
vp9_reader
*
r
,
BLOCK_SIZE
_TYPE
bsize
);
int
vp9_decode_tokens
(
VP9D_COMP
*
pbi
,
vp9_reader
*
r
,
BLOCK_SIZE
bsize
);