Skip to content
GitLab
Explore
Projects
Groups
Topics
Snippets
Projects
Groups
Topics
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
BC
public
external
libvpx
Commits
1976dd61
Commit
1976dd61
authored
11 years ago
by
Dmitry Kovalev
Browse files
Options
Download
Patches
Plain Diff
Moving twopass_rc and FIRSTPASS_STATS to vp9_firstpass.h.
Change-Id: I5c942ee1a04eb0d7f2ae7ba8ea8ce47e666550c5
parent
a1cfcc0a
v1.14.0-linphone
1.4.X
feature/update_to_v1.9.0-linphone
feature/uwp_nuget
frame_parallel
highbitdepth
indianrunnerduck
javanwhistlingduck
khakicampbell
linphone
linphone-android
linphone-old
longtailedduck
m49-2623
m52-2743
m54-2840
m56-2924
m66-3359
m68-3440
mandarinduck
nextgen
nextgenv2
playground
sandbox/Jingning/experimental
sandbox/Jingning/transcode
sandbox/Jingning/vpx
sandbox/aconverse@google.com/ansbench
sandbox/hkuang/frame_parallel
sandbox/hkuang@google.com/decode
sandbox/jimbankoski@google.com/proposed-aom
sandbox/jingning@google.com/decoder_test_suite
sandbox/jingning@google.com/experimental
sandbox/jzern@google.com/test
sandbox/wangch@google.com/vp9
sandbox/yaowu@google.com/mergeaom
v1.12.0-linphone
v1.6.1_linphone
v1.7.0-linphone
v1.9.0-linphone
v1.9.0
v1.9.0-rc1
v1.8.2
v1.8.1
v1.8.0
v1.7.0
v1.6.1
v1.6.0
v1.5.0
v1.4.0
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
vp9/encoder/vp9_firstpass.h
+72
-8
vp9/encoder/vp9_firstpass.h
vp9/encoder/vp9_lookahead.c
+3
-0
vp9/encoder/vp9_lookahead.c
vp9/encoder/vp9_onyx_int.h
+2
-62
vp9/encoder/vp9_onyx_int.h
with
77 additions
and
70 deletions
vp9/encoder/vp9_firstpass.h
+
72
−
8
View file @
1976dd61
...
...
@@ -10,20 +10,84 @@
#ifndef VP9_ENCODER_VP9_FIRSTPASS_H_
#define VP9_ENCODER_VP9_FIRSTPASS_H_
#include
"vp9/encoder/vp9_onyx_int.h"
#ifdef __cplusplus
extern
"C"
{
#endif
void
vp9_init_first_pass
(
VP9_COMP
*
cpi
);
void
vp9_rc_get_first_pass_params
(
VP9_COMP
*
cpi
);
void
vp9_first_pass
(
VP9_COMP
*
cpi
);
void
vp9_end_first_pass
(
VP9_COMP
*
cpi
);
typedef
struct
{
double
frame
;
double
intra_error
;
double
coded_error
;
double
sr_coded_error
;
double
ssim_weighted_pred_err
;
double
pcnt_inter
;
double
pcnt_motion
;
double
pcnt_second_ref
;
double
pcnt_neutral
;
double
MVr
;
double
mvr_abs
;
double
MVc
;
double
mvc_abs
;
double
MVrv
;
double
MVcv
;
double
mv_in_out_count
;
double
new_mv_count
;
double
duration
;
double
count
;
}
FIRSTPASS_STATS
;
void
vp9_init_second_pass
(
VP9_COMP
*
cpi
);
void
vp9_rc_get_second_pass_params
(
VP9_COMP
*
cpi
);
void
vp9_end_second_pass
(
VP9_COMP
*
cpi
);
struct
twopass_rc
{
unsigned
int
section_intra_rating
;
unsigned
int
next_iiratio
;
unsigned
int
this_iiratio
;
FIRSTPASS_STATS
total_stats
;
FIRSTPASS_STATS
this_frame_stats
;
FIRSTPASS_STATS
*
stats_in
,
*
stats_in_end
,
*
stats_in_start
;
FIRSTPASS_STATS
total_left_stats
;
int
first_pass_done
;
int64_t
bits_left
;
int64_t
clip_bits_total
;
double
avg_iiratio
;
double
modified_error_min
;
double
modified_error_max
;
double
modified_error_total
;
double
modified_error_left
;
double
kf_intra_err_min
;
double
gf_intra_err_min
;
int
static_scene_max_gf_interval
;
int
kf_bits
;
// Remaining error from uncoded frames in a gf group. Two pass use only
int64_t
gf_group_error_left
;
// Projected total bits available for a key frame group of frames
int64_t
kf_group_bits
;
// Error score of frames still to be coded in kf group
int64_t
kf_group_error_left
;
// Projected Bits available for a group of frames including 1 GF or ARF
int64_t
gf_group_bits
;
// Bits for the golden frame or ARF - 2 pass only
int
gf_bits
;
int
alt_extra_bits
;
int
sr_update_lag
;
int
kf_zeromotion_pct
;
int
gf_zeromotion_pct
;
};
struct
VP9_COMP
;
void
vp9_init_first_pass
(
struct
VP9_COMP
*
cpi
);
void
vp9_rc_get_first_pass_params
(
struct
VP9_COMP
*
cpi
);
void
vp9_first_pass
(
struct
VP9_COMP
*
cpi
);
void
vp9_end_first_pass
(
struct
VP9_COMP
*
cpi
);
void
vp9_init_second_pass
(
struct
VP9_COMP
*
cpi
);
void
vp9_rc_get_second_pass_params
(
struct
VP9_COMP
*
cpi
);
void
vp9_end_second_pass
(
struct
VP9_COMP
*
cpi
);
// Post encode update of the rate control parameters for 2-pass
void
vp9_twopass_postencode_update
(
struct
VP9_COMP
*
cpi
,
...
...
This diff is collapsed.
Click to expand it.
vp9/encoder/vp9_lookahead.c
+
3
−
0
View file @
1976dd61
...
...
@@ -11,9 +11,12 @@
#include
<stdlib.h>
#include
"./vpx_config.h"
#include
"vp9/common/vp9_common.h"
#include
"vp9/encoder/vp9_extend.h"
#include
"vp9/encoder/vp9_lookahead.h"
#include
"vp9/encoder/vp9_onyx_int.h"
struct
lookahead_ctx
{
unsigned
int
max_sz
;
/* Absolute size of the queue */
...
...
This diff is collapsed.
Click to expand it.
vp9/encoder/vp9_onyx_int.h
+
2
−
62
View file @
1976dd61
...
...
@@ -23,6 +23,7 @@
#include
"vp9/common/vp9_onyxc_int.h"
#include
"vp9/encoder/vp9_encodemb.h"
#include
"vp9/encoder/vp9_firstpass.h"
#include
"vp9/encoder/vp9_lookahead.h"
#include
"vp9/encoder/vp9_mbgraph.h"
#include
"vp9/encoder/vp9_mcomp.h"
...
...
@@ -78,28 +79,6 @@ typedef struct {
FRAME_CONTEXT
fc
;
}
CODING_CONTEXT
;
typedef
struct
{
double
frame
;
double
intra_error
;
double
coded_error
;
double
sr_coded_error
;
double
ssim_weighted_pred_err
;
double
pcnt_inter
;
double
pcnt_motion
;
double
pcnt_second_ref
;
double
pcnt_neutral
;
double
MVr
;
double
mvr_abs
;
double
MVc
;
double
mvc_abs
;
double
MVrv
;
double
MVcv
;
double
mv_in_out_count
;
double
new_mv_count
;
double
duration
;
double
count
;
}
FIRSTPASS_STATS
;
// This enumerator type needs to be kept aligned with the mode order in
// const MODE_DEFINITION vp9_mode_order[MAX_MODES] used in the rd code.
typedef
enum
{
...
...
@@ -573,46 +552,7 @@ typedef struct VP9_COMP {
uint64_t
time_pick_lpf
;
uint64_t
time_encode_sb_row
;
struct
twopass_rc
{
unsigned
int
section_intra_rating
;
unsigned
int
next_iiratio
;
unsigned
int
this_iiratio
;
FIRSTPASS_STATS
total_stats
;
FIRSTPASS_STATS
this_frame_stats
;
FIRSTPASS_STATS
*
stats_in
,
*
stats_in_end
,
*
stats_in_start
;
FIRSTPASS_STATS
total_left_stats
;
int
first_pass_done
;
int64_t
bits_left
;
int64_t
clip_bits_total
;
double
avg_iiratio
;
double
modified_error_min
;
double
modified_error_max
;
double
modified_error_total
;
double
modified_error_left
;
double
kf_intra_err_min
;
double
gf_intra_err_min
;
int
static_scene_max_gf_interval
;
int
kf_bits
;
// Remaining error from uncoded frames in a gf group. Two pass use only
int64_t
gf_group_error_left
;
// Projected total bits available for a key frame group of frames
int64_t
kf_group_bits
;
// Error score of frames still to be coded in kf group
int64_t
kf_group_error_left
;
// Projected Bits available for a group of frames including 1 GF or ARF
int64_t
gf_group_bits
;
// Bits for the golden frame or ARF - 2 pass only
int
gf_bits
;
int
alt_extra_bits
;
int
sr_update_lag
;
int
kf_zeromotion_pct
;
int
gf_zeromotion_pct
;
}
twopass
;
struct
twopass_rc
twopass
;
YV12_BUFFER_CONFIG
alt_ref_buffer
;
YV12_BUFFER_CONFIG
*
frames
[
MAX_LAG_BUFFERS
];
...
...
This diff is collapsed.
Click to expand it.
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment
Menu
Explore
Projects
Groups
Topics
Snippets