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
e8346f8c
Commit
e8346f8c
authored
Nov 19, 2013
by
Dmitry Kovalev
Committed by
Gerrit Code Review
Nov 19, 2013
Browse files
Merge "Cleaning up probability/cost functions."
parents
dd04ff50
e55d3e6d
Changes
3
Hide whitespace changes
Inline
Side-by-side
vp9/encoder/vp9_encodemv.c
View file @
e8346f8c
...
...
@@ -126,20 +126,15 @@ static void build_nmv_component_cost_table(int *mvcost,
static
int
update_mv
(
vp9_writer
*
w
,
const
unsigned
int
ct
[
2
],
vp9_prob
*
cur_p
,
vp9_prob
upd_p
)
{
const
vp9_prob
new_p
=
get_binary_prob
(
ct
[
0
],
ct
[
1
]);
vp9_prob
mod_p
=
new_p
|
1
;
const
int
cur_b
=
cost_branch256
(
ct
,
*
cur_p
);
const
int
mod_b
=
cost_branch256
(
ct
,
mod_p
);
const
int
cost
=
7
*
256
+
(
vp9_cost_one
(
upd_p
)
-
vp9_cost_zero
(
upd_p
));
if
(
cur_b
-
mod_b
>
cost
)
{
*
cur_p
=
mod_p
;
vp9_write
(
w
,
1
,
upd_p
);
vp9_write_literal
(
w
,
mod_p
>>
1
,
7
);
return
1
;
}
else
{
vp9_write
(
w
,
0
,
upd_p
);
return
0
;
const
vp9_prob
new_p
=
get_binary_prob
(
ct
[
0
],
ct
[
1
])
|
1
;
const
int
update
=
cost_branch256
(
ct
,
*
cur_p
)
+
vp9_cost_zero
(
upd_p
)
>
cost_branch256
(
ct
,
new_p
)
+
vp9_cost_one
(
upd_p
)
+
7
*
256
;
vp9_write
(
w
,
update
,
upd_p
);
if
(
update
)
{
*
cur_p
=
new_p
;
vp9_write_literal
(
w
,
new_p
>>
1
,
7
);
}
return
update
;
}
static
void
counts_to_nmv_context
(
...
...
vp9/encoder/vp9_subexp.c
View file @
e8346f8c
...
...
@@ -14,7 +14,6 @@
#include
"vp9/encoder/vp9_boolhuff.h"
#include
"vp9/encoder/vp9_treewriter.h"
#define vp9_cost_upd ((int)(vp9_cost_one(upd) - vp9_cost_zero(upd)) >> 8)
#define vp9_cost_upd256 ((int)(vp9_cost_one(upd) - vp9_cost_zero(upd)))
static
int
update_bits
[
255
];
...
...
vp9/encoder/vp9_treewriter.h
View file @
e8346f8c
...
...
@@ -19,31 +19,20 @@
#include
"vp9/encoder/vp9_boolhuff.h"
/* for now */
#define vp9_write_prob(w, v) vp9_write_literal((w), (v), 8)
/* Approximate length of an encoded bool in 256ths of a bit at given prob */
#define vp9_cost_zero(x) (vp9_prob_cost[x])
#define vp9_cost_one(x) vp9_cost_zero(vp9_complement(x))
#define vp9_cost_bit(x, b) vp9_cost_zero((b) ? vp9_complement(x) : (x))
#define vp9_cost_zero(prob) (vp9_prob_cost[prob])
/* VP8BC version is scaled by 2^20 rather than 2^8; see bool_coder.h */
#define vp9_cost_one(prob) vp9_cost_zero(vp9_complement(prob))
#define vp9_cost_bit(prob, bit) vp9_cost_zero((bit) ? vp9_complement(prob) \
: (prob))
/* Both of these return bits, not scaled bits. */
static
INLINE
unsigned
int
cost_branch256
(
const
unsigned
int
ct
[
2
],
vp9_prob
p
)
{
return
ct
[
0
]
*
vp9_cost_zero
(
p
)
+
ct
[
1
]
*
vp9_cost_one
(
p
);
}
static
INLINE
unsigned
int
cost_branch
(
const
unsigned
int
ct
[
2
],
vp9_prob
p
)
{
return
cost_branch256
(
ct
,
p
)
>>
8
;
}
static
INLINE
void
treed_write
(
vp9_writer
*
w
,
vp9_tree
tree
,
const
vp9_prob
*
probs
,
int
bits
,
int
len
)
{
...
...
Write
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!
Cancel
Please
register
or
sign in
to comment