Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
VideoLAN
x264
Commits
1e393b8c
Commit
1e393b8c
authored
Aug 20, 2008
by
Loren Merritt
Browse files
remove the distinction between itex and ptex
(changes 2pass statsfile format)
parent
9ccd80fa
Changes
5
Hide whitespace changes
Inline
Side-by-side
common/common.h
View file @
1e393b8c
...
...
@@ -532,11 +532,10 @@ struct x264_t
/* Current frame stats */
struct
{
/* Headers bits (MV+Ref+MB Block Type */
int
i_hdr_bits
;
/* Texture bits (Intra/Predicted) */
int
i_itex_bits
;
int
i_ptex_bits
;
/* MV bits (MV+Ref+Block Type) */
int
i_mv_bits
;
/* Texture bits (DCT coefs) */
int
i_tex_bits
;
/* ? */
int
i_misc_bits
;
/* MB type counts */
...
...
encoder/cabac.c
View file @
1e393b8c
...
...
@@ -790,7 +790,7 @@ void x264_macroblock_write_cabac( x264_t *h, x264_cabac_t *cb )
if
(
i_mb_type
==
I_PCM
)
{
i_mb_pos_tex
=
x264_cabac_pos
(
cb
);
h
->
stat
.
frame
.
i_
hdr
_bits
+=
i_mb_pos_tex
-
i_mb_pos_start
;
h
->
stat
.
frame
.
i_
mv
_bits
+=
i_mb_pos_tex
-
i_mb_pos_start
;
memcpy
(
cb
->
p
,
h
->
mb
.
pic
.
p_fenc
[
0
],
256
);
cb
->
p
+=
256
;
...
...
@@ -811,7 +811,7 @@ void x264_macroblock_write_cabac( x264_t *h, x264_cabac_t *cb )
h
->
mc
.
copy
[
PIXEL_8x8
]
(
h
->
mb
.
pic
.
p_fdec
[
1
],
FDEC_STRIDE
,
h
->
mb
.
pic
.
p_fenc
[
1
],
FENC_STRIDE
,
8
);
h
->
mc
.
copy
[
PIXEL_8x8
]
(
h
->
mb
.
pic
.
p_fdec
[
2
],
FDEC_STRIDE
,
h
->
mb
.
pic
.
p_fenc
[
2
],
FENC_STRIDE
,
8
);
h
->
stat
.
frame
.
i_
i
tex_bits
+=
x264_cabac_pos
(
cb
)
-
i_mb_pos_tex
;
h
->
stat
.
frame
.
i_tex_bits
+=
x264_cabac_pos
(
cb
)
-
i_mb_pos_tex
;
return
;
}
#endif
...
...
@@ -963,7 +963,7 @@ void x264_macroblock_write_cabac( x264_t *h, x264_cabac_t *cb )
#ifndef RDO_SKIP_BS
i_mb_pos_tex
=
x264_cabac_pos
(
cb
);
h
->
stat
.
frame
.
i_
hdr
_bits
+=
i_mb_pos_tex
-
i_mb_pos_start
;
h
->
stat
.
frame
.
i_
mv
_bits
+=
i_mb_pos_tex
-
i_mb_pos_start
;
#endif
if
(
i_mb_type
!=
I_16x16
)
...
...
@@ -1018,10 +1018,7 @@ void x264_macroblock_write_cabac( x264_t *h, x264_cabac_t *cb )
}
#ifndef RDO_SKIP_BS
if
(
IS_INTRA
(
i_mb_type
)
)
h
->
stat
.
frame
.
i_itex_bits
+=
x264_cabac_pos
(
cb
)
-
i_mb_pos_tex
;
else
h
->
stat
.
frame
.
i_ptex_bits
+=
x264_cabac_pos
(
cb
)
-
i_mb_pos_tex
;
h
->
stat
.
frame
.
i_tex_bits
+=
x264_cabac_pos
(
cb
)
-
i_mb_pos_tex
;
#endif
}
...
...
encoder/cavlc.c
View file @
1e393b8c
...
...
@@ -344,7 +344,7 @@ void x264_macroblock_write_cavlc( x264_t *h, bs_t *s )
{
bs_write_ue
(
s
,
i_mb_i_offset
+
25
);
i_mb_pos_tex
=
bs_pos
(
s
);
h
->
stat
.
frame
.
i_
hdr
_bits
+=
i_mb_pos_tex
-
i_mb_pos_start
;
h
->
stat
.
frame
.
i_
mv
_bits
+=
i_mb_pos_tex
-
i_mb_pos_start
;
bs_align_0
(
s
);
...
...
@@ -362,7 +362,7 @@ void x264_macroblock_write_cavlc( x264_t *h, bs_t *s )
h
->
mc
.
copy
[
PIXEL_8x8
]
(
h
->
mb
.
pic
.
p_fdec
[
1
],
FDEC_STRIDE
,
h
->
mb
.
pic
.
p_fenc
[
1
],
FENC_STRIDE
,
8
);
h
->
mc
.
copy
[
PIXEL_8x8
]
(
h
->
mb
.
pic
.
p_fdec
[
2
],
FDEC_STRIDE
,
h
->
mb
.
pic
.
p_fenc
[
2
],
FENC_STRIDE
,
8
);
h
->
stat
.
frame
.
i_
i
tex_bits
+=
bs_pos
(
s
)
-
i_mb_pos_tex
;
h
->
stat
.
frame
.
i_tex_bits
+=
bs_pos
(
s
)
-
i_mb_pos_tex
;
return
;
}
#endif
...
...
@@ -612,7 +612,7 @@ void x264_macroblock_write_cavlc( x264_t *h, bs_t *s )
#ifndef RDO_SKIP_BS
i_mb_pos_tex
=
bs_pos
(
s
);
h
->
stat
.
frame
.
i_
hdr
_bits
+=
i_mb_pos_tex
-
i_mb_pos_start
;
h
->
stat
.
frame
.
i_
mv
_bits
+=
i_mb_pos_tex
-
i_mb_pos_start
;
#endif
/* Coded block patern */
...
...
@@ -666,10 +666,7 @@ void x264_macroblock_write_cavlc( x264_t *h, bs_t *s )
}
#ifndef RDO_SKIP_BS
if
(
IS_INTRA
(
i_mb_type
)
)
h
->
stat
.
frame
.
i_itex_bits
+=
bs_pos
(
s
)
-
i_mb_pos_tex
;
else
h
->
stat
.
frame
.
i_ptex_bits
+=
bs_pos
(
s
)
-
i_mb_pos_tex
;
h
->
stat
.
frame
.
i_tex_bits
+=
bs_pos
(
s
)
-
i_mb_pos_tex
;
#endif
}
...
...
encoder/encoder.c
View file @
1e393b8c
...
...
@@ -1235,9 +1235,8 @@ static void x264_slice_write( x264_t *h )
/* Compute misc bits */
h
->
stat
.
frame
.
i_misc_bits
=
bs_pos
(
&
h
->
out
.
bs
)
+
NALU_OVERHEAD
*
8
-
h
->
stat
.
frame
.
i_itex_bits
-
h
->
stat
.
frame
.
i_ptex_bits
-
h
->
stat
.
frame
.
i_hdr_bits
;
-
h
->
stat
.
frame
.
i_tex_bits
-
h
->
stat
.
frame
.
i_mv_bits
;
}
static
void
x264_thread_sync_context
(
x264_t
*
dst
,
x264_t
*
src
)
...
...
encoder/ratecontrol.c
View file @
1e393b8c
...
...
@@ -40,8 +40,7 @@ typedef struct
int
kept_as_ref
;
float
qscale
;
int
mv_bits
;
int
i_tex_bits
;
int
p_tex_bits
;
int
tex_bits
;
int
misc_bits
;
uint64_t
expected_bits
;
double
expected_vbv
;
...
...
@@ -167,7 +166,7 @@ static inline double qscale2bits(ratecontrol_entry_t *rce, double qscale)
{
if
(
qscale
<
0
.
1
)
qscale
=
0
.
1
;
return
(
rce
->
i_tex_bits
+
rce
->
p_
tex_bits
+
.
1
)
*
pow
(
rce
->
qscale
/
qscale
,
1
.
1
)
return
(
rce
->
tex_bits
+
.
1
)
*
pow
(
rce
->
qscale
/
qscale
,
1
.
1
)
+
rce
->
mv_bits
*
pow
(
X264_MAX
(
rce
->
qscale
,
1
)
/
X264_MAX
(
qscale
,
1
),
0
.
5
)
+
rce
->
misc_bits
;
}
...
...
@@ -496,8 +495,8 @@ int x264_ratecontrol_new( x264_t *h )
rce
=
&
rc
->
entry
[
frame_number
];
rce
->
direct_mode
=
0
;
e
+=
sscanf
(
p
,
" in:%*d out:%*d type:%c q:%f
itex:%d p
tex:%d mv:%d misc:%d imb:%d pmb:%d smb:%d d:%c"
,
&
pict_type
,
&
qp
,
&
rce
->
i_tex_bits
,
&
rce
->
p_
tex_bits
,
e
+=
sscanf
(
p
,
" in:%*d out:%*d type:%c q:%f tex:%d mv:%d misc:%d imb:%d pmb:%d smb:%d d:%c"
,
&
pict_type
,
&
qp
,
&
rce
->
tex_bits
,
&
rce
->
mv_bits
,
&
rce
->
misc_bits
,
&
rce
->
i_count
,
&
rce
->
p_count
,
&
rce
->
s_count
,
&
rce
->
direct_mode
);
...
...
@@ -1071,11 +1070,12 @@ void x264_ratecontrol_end( x264_t *h, int bits )
dir_avg
>
0
?
's'
:
dir_avg
<
0
?
't'
:
'-'
)
:
'-'
;
fprintf
(
rc
->
p_stat_file_out
,
"in:%d out:%d type:%c q:%.2f
itex:%d p
tex:%d mv:%d misc:%d imb:%d pmb:%d smb:%d d:%c;
\n
"
,
"in:%d out:%d type:%c q:%.2f tex:%d mv:%d misc:%d imb:%d pmb:%d smb:%d d:%c;
\n
"
,
h
->
fenc
->
i_frame
,
h
->
i_frame
,
c_type
,
rc
->
qpa_rc
,
h
->
stat
.
frame
.
i_itex_bits
,
h
->
stat
.
frame
.
i_ptex_bits
,
h
->
stat
.
frame
.
i_hdr_bits
,
h
->
stat
.
frame
.
i_misc_bits
,
h
->
stat
.
frame
.
i_tex_bits
,
h
->
stat
.
frame
.
i_mv_bits
,
h
->
stat
.
frame
.
i_misc_bits
,
h
->
stat
.
frame
.
i_mb_count_i
,
h
->
stat
.
frame
.
i_mb_count_p
,
h
->
stat
.
frame
.
i_mb_count_skip
,
...
...
@@ -1138,7 +1138,7 @@ static double get_qscale(x264_t *h, ratecontrol_entry_t *rce, double rate_factor
q
=
pow
(
rce
->
blurred_complexity
,
1
-
h
->
param
.
rc
.
f_qcompress
);
// avoid NaN's in the rc_eq
if
(
!
isfinite
(
q
)
||
rce
->
i_tex_bits
+
rce
->
p_
tex_bits
+
rce
->
mv_bits
==
0
)
if
(
!
isfinite
(
q
)
||
rce
->
tex_bits
+
rce
->
mv_bits
==
0
)
q
=
rcc
->
last_qscale
;
else
{
...
...
@@ -1190,7 +1190,7 @@ static double get_diff_limited_q(x264_t *h, ratecontrol_entry_t *rce, double q)
}
else
if
(
pict_type
==
SLICE_TYPE_P
&&
rcc
->
last_non_b_pict_type
==
SLICE_TYPE_P
&&
rce
->
i_tex_bits
+
rce
->
p_
tex_bits
==
0
)
&&
rce
->
tex_bits
==
0
)
{
q
=
last_p_q
;
}
...
...
@@ -1471,9 +1471,8 @@ static float rate_estimate_qscale( x264_t *h )
rcc
->
short_term_cplxsum
+=
rcc
->
last_satd
;
rcc
->
short_term_cplxcount
++
;
rce
.
p_
tex_bits
=
rcc
->
last_satd
;
rce
.
tex_bits
=
rcc
->
last_satd
;
rce
.
blurred_complexity
=
rcc
->
short_term_cplxsum
/
rcc
->
short_term_cplxcount
;
rce
.
i_tex_bits
=
0
;
rce
.
mv_bits
=
0
;
rce
.
p_count
=
rcc
->
nmb
;
rce
.
i_count
=
0
;
...
...
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