summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--examples/vp8_multi_resolution_encoder.c22
-rw-r--r--tools_common.c16
-rw-r--r--tools_common.h2
-rw-r--r--vpxenc.c4
-rw-r--r--vpxstats.c13
-rw-r--r--vpxstats.h2
6 files changed, 22 insertions, 37 deletions
diff --git a/examples/vp8_multi_resolution_encoder.c b/examples/vp8_multi_resolution_encoder.c
index 4c29056e5..1fef7dbb8 100644
--- a/examples/vp8_multi_resolution_encoder.c
+++ b/examples/vp8_multi_resolution_encoder.c
@@ -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_mse2psnr(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);
diff --git a/tools_common.c b/tools_common.c
index 667432027..4f2ac7401 100644
--- a/tools_common.c
+++ b/tools_common.c
@@ -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;
+ }
+}
diff --git a/tools_common.h b/tools_common.h
index b60825cef..58894def0 100644
--- a/tools_common.h
+++ b/tools_common.h
@@ -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
diff --git a/vpxenc.c b/vpxenc.c
index 8cd5a103a..c61d83e41 100644
--- a/vpxenc.c
+++ b/vpxenc.c
@@ -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_mse2psnr((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++) {
diff --git a/vpxstats.c b/vpxstats.c
index 70cea3ee7..5f88f8d35 100644
--- a/vpxstats.c
+++ b/vpxstats.c
@@ -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;
-}
diff --git a/vpxstats.h b/vpxstats.h
index 9ce9c5320..5c9ea34f7 100644
--- a/vpxstats.h
+++ b/vpxstats.h
@@ -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