Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
aom-rav1e
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Xiph.Org
aom-rav1e
Commits
1a3641d9
Commit
1a3641d9
authored
Aug 15, 2013
by
Paul Wilkins
Committed by
Gerrit Code Review
Aug 15, 2013
Browse files
Options
Browse Files
Download
Plain Diff
Merge "Renaming in MB_MODE_INFO"
parents
adfc54a4
26fead7e
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
57 additions
and
57 deletions
+57
-57
vp9/common/vp9_alloccommon.c
vp9/common/vp9_alloccommon.c
+1
-1
vp9/common/vp9_blockd.h
vp9/common/vp9_blockd.h
+8
-8
vp9/common/vp9_debugmodes.c
vp9/common/vp9_debugmodes.c
+1
-1
vp9/common/vp9_loopfilter.c
vp9/common/vp9_loopfilter.c
+1
-1
vp9/common/vp9_mvref_common.c
vp9/common/vp9_mvref_common.c
+1
-1
vp9/common/vp9_postproc.c
vp9/common/vp9_postproc.c
+1
-1
vp9/common/vp9_pred_common.c
vp9/common/vp9_pred_common.c
+17
-17
vp9/common/vp9_pred_common.h
vp9/common/vp9_pred_common.h
+3
-3
vp9/decoder/vp9_decodemv.c
vp9/decoder/vp9_decodemv.c
+4
-4
vp9/decoder/vp9_decodframe.c
vp9/decoder/vp9_decodframe.c
+2
-2
vp9/encoder/vp9_bitstream.c
vp9/encoder/vp9_bitstream.c
+4
-4
vp9/encoder/vp9_encodeframe.c
vp9/encoder/vp9_encodeframe.c
+8
-8
vp9/encoder/vp9_rdopt.c
vp9/encoder/vp9_rdopt.c
+4
-4
vp9/encoder/vp9_tokenize.c
vp9/encoder/vp9_tokenize.c
+2
-2
No files found.
vp9/common/vp9_alloccommon.c
View file @
1a3641d9
...
...
@@ -38,7 +38,7 @@ void vp9_update_mode_info_in_image(VP9_COMMON *cm, MODE_INFO *mi) {
for
(
i
=
0
;
i
<
cm
->
mi_rows
;
i
++
)
{
MODE_INFO
*
ptr
=
mi
;
for
(
j
=
0
;
j
<
cm
->
mi_cols
;
j
++
)
{
ptr
->
mbmi
.
mb_
in_image
=
1
;
ptr
->
mbmi
.
in_image
=
1
;
ptr
++
;
// Next element in the row
}
...
...
vp9/common/vp9_blockd.h
View file @
1a3641d9
...
...
@@ -130,26 +130,26 @@ static INLINE int mi_height_log2(BLOCK_SIZE_TYPE sb_type) {
return
mi_height_log2_lookup
[
sb_type
];
}
// This structure now relates to 8x8 block regions.
typedef
struct
{
MB_PREDICTION_MODE
mode
,
uv_mode
;
MV_REFERENCE_FRAME
ref_frame
[
2
];
TX_SIZE
txfm_size
;
int_mv
mv
[
2
];
// for each reference frame used
int_mv
mv
[
2
];
// for each reference frame used
int_mv
ref_mvs
[
MAX_REF_FRAMES
][
MAX_MV_REF_CANDIDATES
];
int_mv
best_mv
,
best_second_mv
;
uint8_t
m
b_m
ode_context
[
MAX_REF_FRAMES
];
uint8_t
mode_context
[
MAX_REF_FRAMES
];
unsigned
char
mb_skip_coeff
;
/* does this mb has coefficients at all, 1=no coefficients, 0=need decode tokens */
unsigned
char
segment_id
;
// Segment id for current frame
unsigned
char
skip_coeff
;
// 0=need to decode coeffs, 1=no coefficients
unsigned
char
segment_id
;
// Segment id for this block.
// Flags used for prediction status of various bit-stream signals
unsigned
char
seg_id_predicted
;
// Indicates if the mb is part of the image (1) vs border (0)
// This can be useful in determining whether the MB provides
// a valid predictor
unsigned
char
mb_in_image
;
// Indicates if the block is part of the image (1) vs border (0)
// This can be useful in determining whether it provides a valid predictor
unsigned
char
in_image
;
INTERPOLATIONFILTERTYPE
interp_filter
;
...
...
vp9/common/vp9_debugmodes.c
View file @
1a3641d9
...
...
@@ -57,7 +57,7 @@ void vp9_print_modes_and_motion_vectors(VP9_COMMON *cm, char *file) {
print_mi_data
(
cm
,
mvs
,
"Partitions:"
,
offsetof
(
MB_MODE_INFO
,
sb_type
));
print_mi_data
(
cm
,
mvs
,
"Modes:"
,
offsetof
(
MB_MODE_INFO
,
mode
));
print_mi_data
(
cm
,
mvs
,
"Skips:"
,
offsetof
(
MB_MODE_INFO
,
mb_
skip_coeff
));
print_mi_data
(
cm
,
mvs
,
"Skips:"
,
offsetof
(
MB_MODE_INFO
,
skip_coeff
));
print_mi_data
(
cm
,
mvs
,
"Ref frame:"
,
offsetof
(
MB_MODE_INFO
,
ref_frame
[
0
]));
print_mi_data
(
cm
,
mvs
,
"Transform:"
,
offsetof
(
MB_MODE_INFO
,
txfm_size
));
print_mi_data
(
cm
,
mvs
,
"UV Modes:"
,
offsetof
(
MB_MODE_INFO
,
uv_mode
));
...
...
vp9/common/vp9_loopfilter.c
View file @
1a3641d9
...
...
@@ -263,7 +263,7 @@ static void filter_block_plane(VP9_COMMON *const cm,
// Determine the vertical edges that need filtering
for
(
c
=
0
;
c
<
MI_BLOCK_SIZE
&&
mi_col
+
c
<
cm
->
mi_cols
;
c
+=
col_step
)
{
const
int
skip_this
=
mi
[
c
].
mbmi
.
mb_
skip_coeff
const
int
skip_this
=
mi
[
c
].
mbmi
.
skip_coeff
&&
is_inter_block
(
&
mi
[
c
].
mbmi
);
// left edge of current unit is block/partition edge -> no skip
const
int
block_edge_left
=
b_width_log2
(
mi
[
c
].
mbmi
.
sb_type
)
?
...
...
vp9/common/vp9_mvref_common.c
View file @
1a3641d9
...
...
@@ -281,7 +281,7 @@ void vp9_find_mv_refs_idx(VP9_COMMON *cm, MACROBLOCKD *xd, MODE_INFO *here,
Done:
mbmi
->
m
b_m
ode_context
[
ref_frame
]
=
counter_to_context
[
context_counter
];
mbmi
->
mode_context
[
ref_frame
]
=
counter_to_context
[
context_counter
];
// Clamp vectors
for
(
idx
=
0
;
idx
<
MAX_MV_REF_CANDIDATES
;
++
idx
)
...
...
vp9/common/vp9_postproc.c
View file @
1a3641d9
...
...
@@ -737,7 +737,7 @@ int vp9_post_proc_frame(struct VP9Common *oci,
char zz[4];
int dc_diff = !(mi[mb_index].mbmi.mode != I4X4_PRED &&
mi[mb_index].mbmi.mode != SPLITMV &&
mi[mb_index].mbmi.
mb_
skip_coeff);
mi[mb_index].mbmi.skip_coeff);
if (oci->frame_type == KEY_FRAME)
sprintf(zz, "a");
...
...
vp9/common/vp9_pred_common.c
View file @
1a3641d9
...
...
@@ -21,8 +21,8 @@ unsigned char vp9_get_pred_context_switchable_interp(const MACROBLOCKD *xd) {
const
MODE_INFO
*
const
mi
=
xd
->
mode_info_context
;
const
MB_MODE_INFO
*
const
above_mbmi
=
&
mi
[
-
xd
->
mode_info_stride
].
mbmi
;
const
MB_MODE_INFO
*
const
left_mbmi
=
&
mi
[
-
1
].
mbmi
;
const
int
left_in_image
=
xd
->
left_available
&&
left_mbmi
->
mb_
in_image
;
const
int
above_in_image
=
xd
->
up_available
&&
above_mbmi
->
mb_
in_image
;
const
int
left_in_image
=
xd
->
left_available
&&
left_mbmi
->
in_image
;
const
int
above_in_image
=
xd
->
up_available
&&
above_mbmi
->
in_image
;
// Note:
// The mode info data structure has a one element border above and to the
// left of the entries correpsonding to real macroblocks.
...
...
@@ -56,8 +56,8 @@ unsigned char vp9_get_pred_context_intra_inter(const MACROBLOCKD *xd) {
const
MODE_INFO
*
const
mi
=
xd
->
mode_info_context
;
const
MB_MODE_INFO
*
const
above_mbmi
=
&
mi
[
-
xd
->
mode_info_stride
].
mbmi
;
const
MB_MODE_INFO
*
const
left_mbmi
=
&
mi
[
-
1
].
mbmi
;
const
int
left_in_image
=
xd
->
left_available
&&
left_mbmi
->
mb_
in_image
;
const
int
above_in_image
=
xd
->
up_available
&&
above_mbmi
->
mb_
in_image
;
const
int
left_in_image
=
xd
->
left_available
&&
left_mbmi
->
in_image
;
const
int
above_in_image
=
xd
->
up_available
&&
above_mbmi
->
in_image
;
const
int
left_intra
=
!
is_inter_block
(
left_mbmi
);
const
int
above_intra
=
!
is_inter_block
(
above_mbmi
);
...
...
@@ -83,8 +83,8 @@ unsigned char vp9_get_pred_context_comp_inter_inter(const VP9_COMMON *cm,
const
MODE_INFO
*
const
mi
=
xd
->
mode_info_context
;
const
MB_MODE_INFO
*
const
above_mbmi
=
&
mi
[
-
cm
->
mode_info_stride
].
mbmi
;
const
MB_MODE_INFO
*
const
left_mbmi
=
&
mi
[
-
1
].
mbmi
;
const
int
left_in_image
=
xd
->
left_available
&&
left_mbmi
->
mb_
in_image
;
const
int
above_in_image
=
xd
->
up_available
&&
above_mbmi
->
mb_
in_image
;
const
int
left_in_image
=
xd
->
left_available
&&
left_mbmi
->
in_image
;
const
int
above_in_image
=
xd
->
up_available
&&
above_mbmi
->
in_image
;
// Note:
// The mode info data structure has a one element border above and to the
// left of the entries correpsonding to real macroblocks.
...
...
@@ -128,8 +128,8 @@ unsigned char vp9_get_pred_context_comp_ref_p(const VP9_COMMON *cm,
const
MODE_INFO
*
const
mi
=
xd
->
mode_info_context
;
const
MB_MODE_INFO
*
const
above_mbmi
=
&
mi
[
-
cm
->
mode_info_stride
].
mbmi
;
const
MB_MODE_INFO
*
const
left_mbmi
=
&
mi
[
-
1
].
mbmi
;
const
int
left_in_image
=
xd
->
left_available
&&
left_mbmi
->
mb_
in_image
;
const
int
above_in_image
=
xd
->
up_available
&&
above_mbmi
->
mb_
in_image
;
const
int
left_in_image
=
xd
->
left_available
&&
left_mbmi
->
in_image
;
const
int
above_in_image
=
xd
->
up_available
&&
above_mbmi
->
in_image
;
const
int
left_intra
=
!
is_inter_block
(
left_mbmi
);
const
int
above_intra
=
!
is_inter_block
(
above_mbmi
);
...
...
@@ -206,8 +206,8 @@ unsigned char vp9_get_pred_context_single_ref_p1(const MACROBLOCKD *xd) {
const
MODE_INFO
*
const
mi
=
xd
->
mode_info_context
;
const
MB_MODE_INFO
*
const
above_mbmi
=
&
mi
[
-
xd
->
mode_info_stride
].
mbmi
;
const
MB_MODE_INFO
*
const
left_mbmi
=
&
mi
[
-
1
].
mbmi
;
const
int
left_in_image
=
xd
->
left_available
&&
left_mbmi
->
mb_
in_image
;
const
int
above_in_image
=
xd
->
up_available
&&
above_mbmi
->
mb_
in_image
;
const
int
left_in_image
=
xd
->
left_available
&&
left_mbmi
->
in_image
;
const
int
above_in_image
=
xd
->
up_available
&&
above_mbmi
->
in_image
;
const
int
left_intra
=
!
is_inter_block
(
left_mbmi
);
const
int
above_intra
=
!
is_inter_block
(
above_mbmi
);
...
...
@@ -271,8 +271,8 @@ unsigned char vp9_get_pred_context_single_ref_p2(const MACROBLOCKD *xd) {
const
MODE_INFO
*
const
mi
=
xd
->
mode_info_context
;
const
MB_MODE_INFO
*
const
above_mbmi
=
&
mi
[
-
xd
->
mode_info_stride
].
mbmi
;
const
MB_MODE_INFO
*
const
left_mbmi
=
&
mi
[
-
1
].
mbmi
;
const
int
left_in_image
=
xd
->
left_available
&&
left_mbmi
->
mb_
in_image
;
const
int
above_in_image
=
xd
->
up_available
&&
above_mbmi
->
mb_
in_image
;
const
int
left_in_image
=
xd
->
left_available
&&
left_mbmi
->
in_image
;
const
int
above_in_image
=
xd
->
up_available
&&
above_mbmi
->
in_image
;
const
int
left_intra
=
!
is_inter_block
(
left_mbmi
);
const
int
above_intra
=
!
is_inter_block
(
above_mbmi
);
...
...
@@ -361,18 +361,18 @@ unsigned char vp9_get_pred_context_tx_size(const MACROBLOCKD *xd) {
const
MODE_INFO
*
const
mi
=
xd
->
mode_info_context
;
const
MB_MODE_INFO
*
const
above_mbmi
=
&
mi
[
-
xd
->
mode_info_stride
].
mbmi
;
const
MB_MODE_INFO
*
const
left_mbmi
=
&
mi
[
-
1
].
mbmi
;
const
int
left_in_image
=
xd
->
left_available
&&
left_mbmi
->
mb_
in_image
;
const
int
above_in_image
=
xd
->
up_available
&&
above_mbmi
->
mb_
in_image
;
const
int
left_in_image
=
xd
->
left_available
&&
left_mbmi
->
in_image
;
const
int
above_in_image
=
xd
->
up_available
&&
above_mbmi
->
in_image
;
const
int
max_tx_size
=
max_txsize_lookup
[
mi
->
mbmi
.
sb_type
];
int
above_context
=
max_tx_size
;
int
left_context
=
max_tx_size
;
if
(
above_in_image
)
above_context
=
above_mbmi
->
mb_
skip_coeff
?
max_tx_size
above_context
=
above_mbmi
->
skip_coeff
?
max_tx_size
:
above_mbmi
->
txfm_size
;
if
(
left_in_image
)
left_context
=
left_mbmi
->
mb_
skip_coeff
?
max_tx_size
left_context
=
left_mbmi
->
skip_coeff
?
max_tx_size
:
left_mbmi
->
txfm_size
;
if
(
!
left_in_image
)
...
...
@@ -409,7 +409,7 @@ void vp9_set_pred_flag_mbskip(VP9_COMMON *cm, BLOCK_SIZE_TYPE bsize,
for
(
y
=
0
;
y
<
ymis
;
y
++
)
for
(
x
=
0
;
x
<
xmis
;
x
++
)
mi
[
y
*
cm
->
mode_info_stride
+
x
].
mbmi
.
mb_
skip_coeff
=
pred_flag
;
mi
[
y
*
cm
->
mode_info_stride
+
x
].
mbmi
.
skip_coeff
=
pred_flag
;
}
int
vp9_get_segment_id
(
VP9_COMMON
*
cm
,
const
uint8_t
*
segment_ids
,
...
...
vp9/common/vp9_pred_common.h
View file @
1a3641d9
...
...
@@ -39,8 +39,8 @@ static INLINE int vp9_get_pred_context_mbskip(const MACROBLOCKD *xd) {
const
MB_MODE_INFO
*
const
above_mbmi
=
&
mi
[
-
xd
->
mode_info_stride
].
mbmi
;
const
MB_MODE_INFO
*
const
left_mbmi
=
&
mi
[
-
1
].
mbmi
;
return
above_mbmi
->
mb_
skip_coeff
+
(
xd
->
left_available
?
left_mbmi
->
mb_
skip_coeff
:
0
);
return
above_mbmi
->
skip_coeff
+
(
xd
->
left_available
?
left_mbmi
->
skip_coeff
:
0
);
}
static
INLINE
vp9_prob
vp9_get_pred_prob_mbskip
(
const
VP9_COMMON
*
cm
,
...
...
@@ -49,7 +49,7 @@ static INLINE vp9_prob vp9_get_pred_prob_mbskip(const VP9_COMMON *cm,
}
static
INLINE
unsigned
char
vp9_get_pred_flag_mbskip
(
const
MACROBLOCKD
*
xd
)
{
return
xd
->
mode_info_context
->
mbmi
.
mb_
skip_coeff
;
return
xd
->
mode_info_context
->
mbmi
.
skip_coeff
;
}
void
vp9_set_pred_flag_mbskip
(
VP9_COMMON
*
cm
,
BLOCK_SIZE_TYPE
bsize
,
...
...
vp9/decoder/vp9_decodemv.c
View file @
1a3641d9
...
...
@@ -159,7 +159,7 @@ static void read_intra_frame_mode_info(VP9D_COMP *pbi, MODE_INFO *m,
const
int
mis
=
cm
->
mode_info_stride
;
mbmi
->
segment_id
=
read_intra_segment_id
(
pbi
,
mi_row
,
mi_col
,
r
);
mbmi
->
mb_
skip_coeff
=
read_skip_coeff
(
pbi
,
mbmi
->
segment_id
,
r
);
mbmi
->
skip_coeff
=
read_skip_coeff
(
pbi
,
mbmi
->
segment_id
,
r
);
mbmi
->
txfm_size
=
read_tx_size
(
pbi
,
cm
->
tx_mode
,
bsize
,
1
,
r
);
mbmi
->
ref_frame
[
0
]
=
INTRA_FRAME
;
mbmi
->
ref_frame
[
1
]
=
NONE
;
...
...
@@ -457,7 +457,7 @@ static void read_inter_block_mode_info(VP9D_COMP *pbi, MODE_INFO *mi,
ref0
,
mbmi
->
ref_mvs
[
ref0
],
cm
->
ref_frame_sign_bias
,
mi_row
,
mi_col
);
inter_mode_ctx
=
mbmi
->
m
b_m
ode_context
[
ref0
];
inter_mode_ctx
=
mbmi
->
mode_context
[
ref0
];
if
(
vp9_segfeature_active
(
&
xd
->
seg
,
mbmi
->
segment_id
,
SEG_LVL_SKIP
))
mbmi
->
mode
=
ZEROMV
;
...
...
@@ -598,10 +598,10 @@ static void read_inter_frame_mode_info(VP9D_COMP *pbi, MODE_INFO *mi,
mbmi
->
mv
[
0
].
as_int
=
0
;
mbmi
->
mv
[
1
].
as_int
=
0
;
mbmi
->
segment_id
=
read_inter_segment_id
(
pbi
,
mi_row
,
mi_col
,
r
);
mbmi
->
mb_
skip_coeff
=
read_skip_coeff
(
pbi
,
mbmi
->
segment_id
,
r
);
mbmi
->
skip_coeff
=
read_skip_coeff
(
pbi
,
mbmi
->
segment_id
,
r
);
inter_block
=
read_is_inter_block
(
pbi
,
mbmi
->
segment_id
,
r
);
mbmi
->
txfm_size
=
read_tx_size
(
pbi
,
cm
->
tx_mode
,
mbmi
->
sb_type
,
!
mbmi
->
mb_
skip_coeff
||
!
inter_block
,
r
);
!
mbmi
->
skip_coeff
||
!
inter_block
,
r
);
if
(
inter_block
)
read_inter_block_mode_info
(
pbi
,
mi
,
mi_row
,
mi_col
,
r
);
...
...
vp9/decoder/vp9_decodframe.c
View file @
1a3641d9
...
...
@@ -160,7 +160,7 @@ static void decode_block_intra(int plane, int block, BLOCK_SIZE_TYPE bsize,
dst
,
pd
->
dst
.
stride
);
// Early exit if there are no coefficients
if
(
mi
->
mbmi
.
mb_
skip_coeff
)
if
(
mi
->
mbmi
.
skip_coeff
)
return
;
decode_block
(
plane
,
block
,
bsize
,
ss_txfrm_size
,
arg
);
...
...
@@ -169,7 +169,7 @@ static void decode_block_intra(int plane, int block, BLOCK_SIZE_TYPE bsize,
static
int
decode_tokens
(
VP9D_COMP
*
pbi
,
BLOCK_SIZE_TYPE
bsize
,
vp9_reader
*
r
)
{
MACROBLOCKD
*
const
xd
=
&
pbi
->
mb
;
if
(
xd
->
mode_info_context
->
mbmi
.
mb_
skip_coeff
)
{
if
(
xd
->
mode_info_context
->
mbmi
.
skip_coeff
)
{
reset_skip_context
(
xd
,
bsize
);
return
-
1
;
}
else
{
...
...
vp9/encoder/vp9_bitstream.c
View file @
1a3641d9
...
...
@@ -216,7 +216,7 @@ static int write_skip_coeff(const VP9_COMP *cpi, int segment_id, MODE_INFO *m,
if
(
vp9_segfeature_active
(
&
xd
->
seg
,
segment_id
,
SEG_LVL_SKIP
))
{
return
1
;
}
else
{
const
int
skip_coeff
=
m
->
mbmi
.
mb_
skip_coeff
;
const
int
skip_coeff
=
m
->
mbmi
.
skip_coeff
;
vp9_write
(
w
,
skip_coeff
,
vp9_get_pred_prob_mbskip
(
&
cpi
->
common
,
xd
));
return
skip_coeff
;
}
...
...
@@ -462,7 +462,7 @@ static void pack_inter_mode_mvs(VP9_COMP *cpi, MODE_INFO *m, vp9_writer *bc) {
}
else
{
vp9_prob
*
mv_ref_p
;
encode_ref_frame
(
cpi
,
bc
);
mv_ref_p
=
cpi
->
common
.
fc
.
inter_mode_probs
[
mi
->
m
b_m
ode_context
[
rf
]];
mv_ref_p
=
cpi
->
common
.
fc
.
inter_mode_probs
[
mi
->
mode_context
[
rf
]];
#ifdef ENTROPY_STATS
active_section
=
3
;
...
...
@@ -472,7 +472,7 @@ static void pack_inter_mode_mvs(VP9_COMP *cpi, MODE_INFO *m, vp9_writer *bc) {
if
(
!
vp9_segfeature_active
(
seg
,
segment_id
,
SEG_LVL_SKIP
))
{
if
(
bsize
>=
BLOCK_8X8
)
{
write_sb_mv_ref
(
bc
,
mode
,
mv_ref_p
);
++
pc
->
counts
.
inter_mode
[
mi
->
m
b_m
ode_context
[
rf
]]
++
pc
->
counts
.
inter_mode
[
mi
->
mode_context
[
rf
]]
[
inter_mode_offset
(
mode
)];
}
}
...
...
@@ -499,7 +499,7 @@ static void pack_inter_mode_mvs(VP9_COMP *cpi, MODE_INFO *m, vp9_writer *bc) {
blockmode
=
x
->
partition_info
->
bmi
[
j
].
mode
;
blockmv
=
m
->
bmi
[
j
].
as_mv
[
0
];
write_sb_mv_ref
(
bc
,
blockmode
,
mv_ref_p
);
++
pc
->
counts
.
inter_mode
[
mi
->
m
b_m
ode_context
[
rf
]]
++
pc
->
counts
.
inter_mode
[
mi
->
mode_context
[
rf
]]
[
inter_mode_offset
(
blockmode
)];
if
(
blockmode
==
NEWMV
)
{
...
...
vp9/encoder/vp9_encodeframe.c
View file @
1a3641d9
...
...
@@ -1467,8 +1467,8 @@ static void rd_auto_partition_range(VP9_COMP *cpi,
const
MODE_INFO
*
const
mi
=
xd
->
mode_info_context
;
const
MB_MODE_INFO
*
const
above_mbmi
=
&
mi
[
-
xd
->
mode_info_stride
].
mbmi
;
const
MB_MODE_INFO
*
const
left_mbmi
=
&
mi
[
-
1
].
mbmi
;
const
int
left_in_image
=
xd
->
left_available
&&
left_mbmi
->
mb_
in_image
;
const
int
above_in_image
=
xd
->
up_available
&&
above_mbmi
->
mb_
in_image
;
const
int
left_in_image
=
xd
->
left_available
&&
left_mbmi
->
in_image
;
const
int
above_in_image
=
xd
->
up_available
&&
above_mbmi
->
in_image
;
// Frequency check
if
(
cpi
->
sf
.
auto_min_max_partition_count
<=
0
)
{
...
...
@@ -2180,7 +2180,7 @@ static int get_skip_flag(MODE_INFO *mi, int mis, int ymbs, int xmbs) {
for
(
y
=
0
;
y
<
ymbs
;
y
++
)
{
for
(
x
=
0
;
x
<
xmbs
;
x
++
)
{
if
(
!
mi
[
y
*
mis
+
x
].
mbmi
.
mb_
skip_coeff
)
if
(
!
mi
[
y
*
mis
+
x
].
mbmi
.
skip_coeff
)
return
0
;
}
}
...
...
@@ -2624,10 +2624,10 @@ static void encode_superblock(VP9_COMP *cpi, TOKENEXTRA **t, int output_enabled,
vp9_encode_sb
(
cm
,
x
,
MAX
(
bsize
,
BLOCK_8X8
));
vp9_tokenize_sb
(
cpi
,
t
,
!
output_enabled
,
MAX
(
bsize
,
BLOCK_8X8
));
}
else
{
int
mb_skip_context
=
xd
->
left_available
?
(
mi
-
1
)
->
mbmi
.
mb_
skip_coeff
:
0
;
mb_skip_context
+=
(
mi
-
mis
)
->
mbmi
.
mb_
skip_coeff
;
int
mb_skip_context
=
xd
->
left_available
?
(
mi
-
1
)
->
mbmi
.
skip_coeff
:
0
;
mb_skip_context
+=
(
mi
-
mis
)
->
mbmi
.
skip_coeff
;
mbmi
->
mb_
skip_coeff
=
1
;
mbmi
->
skip_coeff
=
1
;
if
(
output_enabled
)
cm
->
counts
.
mbskip
[
mb_skip_context
][
1
]
++
;
reset_skip_context
(
xd
,
MAX
(
bsize
,
BLOCK_8X8
));
...
...
@@ -2635,13 +2635,13 @@ static void encode_superblock(VP9_COMP *cpi, TOKENEXTRA **t, int output_enabled,
// copy skip flag on all mb_mode_info contexts in this SB
// if this was a skip at this txfm size
vp9_set_pred_flag_mbskip
(
cm
,
bsize
,
mi_row
,
mi_col
,
mi
->
mbmi
.
mb_
skip_coeff
);
vp9_set_pred_flag_mbskip
(
cm
,
bsize
,
mi_row
,
mi_col
,
mi
->
mbmi
.
skip_coeff
);
if
(
output_enabled
)
{
if
(
cm
->
tx_mode
==
TX_MODE_SELECT
&&
mbmi
->
sb_type
>=
BLOCK_8X8
&&
!
(
is_inter_block
(
mbmi
)
&&
(
mbmi
->
mb_
skip_coeff
||
(
mbmi
->
skip_coeff
||
vp9_segfeature_active
(
&
xd
->
seg
,
segment_id
,
SEG_LVL_SKIP
))))
{
const
uint8_t
context
=
vp9_get_pred_context_tx_size
(
xd
);
update_tx_counts
(
bsize
,
context
,
mbmi
->
txfm_size
,
&
cm
->
counts
.
tx
);
...
...
vp9/encoder/vp9_rdopt.c
View file @
1a3641d9
...
...
@@ -1558,7 +1558,7 @@ static int labels2mode(MACROBLOCK *x, int i,
}
cost
=
cost_mv_ref
(
cpi
,
this_mode
,
mbmi
->
m
b_m
ode_context
[
mbmi
->
ref_frame
[
0
]]);
mbmi
->
mode_context
[
mbmi
->
ref_frame
[
0
]]);
mic
->
bmi
[
i
].
as_mv
[
0
].
as_int
=
this_mv
->
as_int
;
if
(
mbmi
->
ref_frame
[
1
]
>
0
)
...
...
@@ -1791,7 +1791,7 @@ static void rd_check_segment_txsize(VP9_COMP *cpi, MACROBLOCK *x,
frame_mv
[
this_mode
][
mbmi
->
ref_frame
[
0
]].
as_int
==
0
&&
(
mbmi
->
ref_frame
[
1
]
<=
0
||
frame_mv
[
this_mode
][
mbmi
->
ref_frame
[
1
]].
as_int
==
0
))
{
int
rfc
=
mbmi
->
m
b_m
ode_context
[
mbmi
->
ref_frame
[
0
]];
int
rfc
=
mbmi
->
mode_context
[
mbmi
->
ref_frame
[
0
]];
int
c1
=
cost_mv_ref
(
cpi
,
NEARMV
,
rfc
);
int
c2
=
cost_mv_ref
(
cpi
,
NEARESTMV
,
rfc
);
int
c3
=
cost_mv_ref
(
cpi
,
ZEROMV
,
rfc
);
...
...
@@ -2747,7 +2747,7 @@ static int64_t handle_inter_mode(VP9_COMP *cpi, MACROBLOCK *x,
frame_mv
[
refs
[
0
]].
as_int
==
0
&&
!
vp9_segfeature_active
(
&
xd
->
seg
,
mbmi
->
segment_id
,
SEG_LVL_SKIP
)
&&
(
num_refs
==
1
||
frame_mv
[
refs
[
1
]].
as_int
==
0
))
{
int
rfc
=
mbmi
->
m
b_m
ode_context
[
mbmi
->
ref_frame
[
0
]];
int
rfc
=
mbmi
->
mode_context
[
mbmi
->
ref_frame
[
0
]];
int
c1
=
cost_mv_ref
(
cpi
,
NEARMV
,
rfc
);
int
c2
=
cost_mv_ref
(
cpi
,
NEARESTMV
,
rfc
);
int
c3
=
cost_mv_ref
(
cpi
,
ZEROMV
,
rfc
);
...
...
@@ -2804,7 +2804,7 @@ static int64_t handle_inter_mode(VP9_COMP *cpi, MACROBLOCK *x,
* words if you present them in that order, the second one is always known
* if the first is known */
*
rate2
+=
cost_mv_ref
(
cpi
,
this_mode
,
mbmi
->
m
b_m
ode_context
[
mbmi
->
ref_frame
[
0
]]);
mbmi
->
mode_context
[
mbmi
->
ref_frame
[
0
]]);
if
(
!
(
*
mode_excluded
))
{
if
(
is_comp_pred
)
{
...
...
vp9/encoder/vp9_tokenize.c
View file @
1a3641d9
...
...
@@ -278,8 +278,8 @@ void vp9_tokenize_sb(VP9_COMP *cpi, TOKENEXTRA **t, int dry_run,
SEG_LVL_SKIP
);
struct
tokenize_b_args
arg
=
{
cpi
,
xd
,
t
,
mbmi
->
txfm_size
};
mbmi
->
mb_
skip_coeff
=
vp9_sb_is_skippable
(
xd
,
bsize
);
if
(
mbmi
->
mb_
skip_coeff
)
{
mbmi
->
skip_coeff
=
vp9_sb_is_skippable
(
xd
,
bsize
);
if
(
mbmi
->
skip_coeff
)
{
if
(
!
dry_run
)
cm
->
counts
.
mbskip
[
mb_skip_context
][
1
]
+=
skip_inc
;
reset_skip_context
(
xd
,
bsize
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment