Skip to content
GitLab
Menu
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
21be5ca0
Commit
21be5ca0
authored
Mar 20, 2014
by
Marco Paniconi
Browse files
Some code cleanup for cyclic refresh.
Change-Id: I0e4e2462ee27640f9bf4091431241ede6fc97267
parent
8e9c9f11
Changes
2
Hide whitespace changes
Inline
Side-by-side
vp9/encoder/vp9_craq.h
View file @
21be5ca0
...
...
@@ -12,26 +12,45 @@
#ifndef VP9_ENCODER_VP9_CRAQ_H_
#define VP9_ENCODER_VP9_CRAQ_H_
#include
"vp9/
encoder/vp9_onyx_int
.h"
#include
"vp9/
common/vp9_blockd
.h"
#ifdef __cplusplus
extern
"C"
{
#endif
// Check if we should turn off cyclic refresh based on bitrate condition.
static
int
apply_cyclic_refresh_bitrate
(
VP9_COMP
*
const
cpi
);
typedef
struct
{
// Target percentage of blocks per frame that are cyclicly refreshed.
int
max_mbs_perframe
;
// Maximum q-delta as percentage of base q.
int
max_qdelta_perc
;
// Block size below which we don't apply cyclic refresh.
BLOCK_SIZE
min_block_size
;
// Macroblock starting index (unit of 8x8) for cycling through the frame.
int
mb_index
;
// Controls how long a block will need to wait to be refreshed again.
int
time_for_refresh
;
// Actual number of blocks that were applied delta-q (segment 1).
int
num_seg_blocks
;
// Actual encoding bits for segment 1.
int
actual_seg_bits
;
// RD mult. parameters for segment 1.
int
rdmult
;
// Cyclic refresh map.
signed
char
*
map
;
// Projected rate and distortion for the current superblock.
int64_t
projected_rate_sb
;
int64_t
projected_dist_sb
;
// Thresholds applied to projected rate/distortion of the superblock.
int64_t
thresh_rate_sb
;
int64_t
thresh_dist_sb
;
}
CYCLIC_REFRESH
;
// Check if this coding block, of size bsize, should be considered for refresh
// (lower-qp coding).
static
int
candidate_refresh_aq
(
VP9_COMP
*
const
cpi
,
MODE_INFO
*
const
mi
,
int
bsize
,
int
use_rd
);
struct
VP9_COMP
;
// Prior to coding a given prediction block, of size bsize at (mi_row, mi_col),
// check if we should reset the segment_id, and update the cyclic_refresh map
// and segmentation map.
void
vp9_update_segment_aq
(
VP9_COMP
*
const
cpi
,
void
vp9_update_segment_aq
(
struct
VP9_COMP
*
const
cpi
,
MODE_INFO
*
const
mi
,
int
mi_row
,
int
mi_col
,
...
...
@@ -39,7 +58,7 @@ void vp9_update_segment_aq(VP9_COMP *const cpi,
int
use_rd
);
// Setup cyclic background refresh: set delta q and segmentation map.
void
vp9_setup_cyclic_refresh_aq
(
VP9_COMP
*
const
cpi
);
void
vp9_setup_cyclic_refresh_aq
(
struct
VP9_COMP
*
const
cpi
);
#ifdef __cplusplus
}
// extern "C"
...
...
vp9/encoder/vp9_onyx_int.h
View file @
21be5ca0
...
...
@@ -23,6 +23,7 @@
#include
"vp9/common/vp9_entropymode.h"
#include
"vp9/common/vp9_onyxc_int.h"
#include
"vp9/encoder/vp9_craq.h"
#include
"vp9/encoder/vp9_encodemb.h"
#include
"vp9/encoder/vp9_firstpass.h"
#include
"vp9/encoder/vp9_lookahead.h"
...
...
@@ -430,32 +431,6 @@ typedef enum {
USAGE_CONSTANT_QUALITY
=
3
,
}
END_USAGE
;
typedef
struct
{
// Target percentage of blocks per frame that are cyclicly refreshed.
int
max_mbs_perframe
;
// Maximum q-delta as percentage of base q.
int
max_qdelta_perc
;
// Block size below which we don't apply cyclic refresh.
BLOCK_SIZE
min_block_size
;
// Macroblock starting index (unit of 8x8) for cycling through the frame.
int
mb_index
;
// Controls how long a block will need to wait to be refreshed again.
int
time_for_refresh
;
// Actual number of blocks that were applied delta-q (segment 1).
int
num_seg_blocks
;
// Actual encoding bits for segment 1.
int
actual_seg_bits
;
// RD mult. parameters for segment 1.
int
rdmult
;
// Cyclic refresh map.
signed
char
*
map
;
// Projected rate and distortion for the current superblock.
int64_t
projected_rate_sb
;
int64_t
projected_dist_sb
;
// Thresholds applied to projected rate/distortion of the superblock.
int64_t
thresh_rate_sb
;
int64_t
thresh_dist_sb
;
}
CYCLIC_REFRESH
;
typedef
enum
{
// Good Quality Fast Encoding. The encoder balances quality with the
// amount of time it takes to encode the output. (speed setting
...
...
Write
Preview
Supports
Markdown
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