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
3bb2ae5c
Commit
3bb2ae5c
authored
Feb 27, 2014
by
Dmitry Kovalev
Committed by
Gerrit Code Review
Feb 27, 2014
Browse files
Merge "Adding sse_to_psnr function to tools_common.{h, c}."
parents
acefe86e
2dad0e12
Changes
6
Hide whitespace changes
Inline
Side-by-side
examples/vp8_multi_resolution_encoder.c
View file @
3bb2ae5c
...
...
@@ -18,11 +18,12 @@
#include
<stdlib.h>
#include
<stdarg.h>
#include
<string.h>
#include
"
math.h
"
#include
<
math.h
>
#define VPX_CODEC_DISABLE_COMPAT 1
#include
"vpx/vpx_encoder.h"
#include
"vpx/vp8cx.h"
#include
"vpx_ports/mem_ops.h"
#include
"./tools_common.h"
#define interface (vpx_codec_vp8_cx())
#define fourcc 0x30385056
...
...
@@ -44,21 +45,6 @@
#include
"third_party/libyuv/include/libyuv/scale.h"
#include
"third_party/libyuv/include/libyuv/cpu_id.h"
static
double
vp8_mse2psnr
(
double
Samples
,
double
Peak
,
double
Mse
)
{
double
psnr
;
if
((
double
)
Mse
>
0
.
0
)
psnr
=
10
.
0
*
log10
(
Peak
*
Peak
*
Samples
/
Mse
);
else
psnr
=
60
;
// Limit to prevent / 0
if
(
psnr
>
60
)
psnr
=
60
;
return
psnr
;
}
static
void
die
(
const
char
*
fmt
,
...)
{
va_list
ap
;
...
...
@@ -454,8 +440,8 @@ int main(int argc, char **argv)
if
(
(
show_psnr
)
&&
(
psnr_count
[
i
]
>
0
)
)
{
int
j
;
double
ovpsnr
=
vp8_mse2
psnr
(
psnr_samples_total
[
i
],
255
.
0
,
psnr_sse_total
[
i
]);
double
ovpsnr
=
sse_to_
psnr
(
psnr_samples_total
[
i
],
255
.
0
,
psnr_sse_total
[
i
]);
fprintf
(
stderr
,
"
\n
ENC%d PSNR (Overall/Avg/Y/U/V)"
,
i
);
...
...
tools_common.c
View file @
3bb2ae5c
...
...
@@ -8,13 +8,14 @@
* be found in the AUTHORS file in the root of the source tree.
*/
#include
"tools_common.h"
#include
<math.h>
#include
<stdarg.h>
#include
<stdio.h>
#include
<stdlib.h>
#include
<string.h>
#include
"./tools_common.h"
#if CONFIG_VP8_ENCODER || CONFIG_VP9_ENCODER
#include
"vpx/vp8cx.h"
#endif
...
...
@@ -253,3 +254,14 @@ int vpx_img_read(vpx_image_t *img, FILE *file) {
return
1
;
}
// TODO(dkovalev) change sse_to_psnr signature: double -> int64_t
double
sse_to_psnr
(
double
samples
,
double
peak
,
double
sse
)
{
static
const
double
kMaxPSNR
=
100
.
0
;
if
(
sse
>
0
.
0
)
{
const
double
psnr
=
10
.
0
*
log10
(
samples
*
peak
*
peak
/
sse
);
return
psnr
>
kMaxPSNR
?
kMaxPSNR
:
psnr
;
}
else
{
return
kMaxPSNR
;
}
}
tools_common.h
View file @
3bb2ae5c
...
...
@@ -142,6 +142,8 @@ int vpx_img_plane_height(const vpx_image_t *img, int plane);
void
vpx_img_write
(
const
vpx_image_t
*
img
,
FILE
*
file
);
int
vpx_img_read
(
vpx_image_t
*
img
,
FILE
*
file
);
double
sse_to_psnr
(
double
samples
,
double
peak
,
double
mse
);
#ifdef __cplusplus
}
/* extern "C" */
#endif
...
...
vpxenc.c
View file @
3bb2ae5c
...
...
@@ -1399,8 +1399,8 @@ static void show_psnr(struct stream_state *stream) {
return
;
fprintf
(
stderr
,
"Stream %d PSNR (Overall/Avg/Y/U/V)"
,
stream
->
index
);
ovpsnr
=
vp8_mse2
psnr
((
double
)
stream
->
psnr_samples_total
,
255
.
0
,
(
double
)
stream
->
psnr_sse_total
);
ovpsnr
=
sse_to_
psnr
((
double
)
stream
->
psnr_samples_total
,
255
.
0
,
(
double
)
stream
->
psnr_sse_total
);
fprintf
(
stderr
,
" %.3f"
,
ovpsnr
);
for
(
i
=
0
;
i
<
4
;
i
++
)
{
...
...
vpxstats.c
View file @
3bb2ae5c
...
...
@@ -120,16 +120,3 @@ void stats_write(stats_io_t *stats, const void *pkt, size_t len) {
vpx_fixed_buf_t
stats_get
(
stats_io_t
*
stats
)
{
return
stats
->
buf
;
}
double
vp8_mse2psnr
(
double
samples
,
double
peak
,
double
mse
)
{
const
int
kMaxPSNR
=
100
;
double
psnr
=
kMaxPSNR
;
if
(
mse
>
0
.
0
)
psnr
=
10
.
0
*
log10
(
peak
*
peak
*
samples
/
mse
);
if
(
psnr
>
kMaxPSNR
)
psnr
=
kMaxPSNR
;
return
psnr
;
}
vpxstats.h
View file @
3bb2ae5c
...
...
@@ -36,8 +36,6 @@ void stats_close(stats_io_t *stats, int last_pass);
void
stats_write
(
stats_io_t
*
stats
,
const
void
*
pkt
,
size_t
len
);
vpx_fixed_buf_t
stats_get
(
stats_io_t
*
stats
);
double
vp8_mse2psnr
(
double
samples
,
double
peak
,
double
mse
);
#ifdef __cplusplus
}
// extern "C"
#endif
...
...
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