Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
A
aom-rav1e
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Xiph.Org
aom-rav1e
Commits
a782d639
Commit
a782d639
authored
11 years ago
by
Joshua Litt
Committed by
Gerrit Code Review
11 years ago
Browse files
Options
Downloads
Patches
Plain Diff
Decoder performance test added to unit tests
Change-Id: Id578a5fe2039631cefd82dc2ef98cc62683194c3
parent
a7c42097
No related branches found
Branches containing commit
No related tags found
No related merge requests found
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
configure
+3
-0
3 additions, 0 deletions
configure
test/decode_perf_test.cc
+105
-0
105 additions, 0 deletions
test/decode_perf_test.cc
test/test-data.sha1
+17
-0
17 additions, 0 deletions
test/test-data.sha1
test/test.mk
+44
-0
44 additions, 0 deletions
test/test.mk
with
169 additions
and
0 deletions
configure
+
3
−
0
View file @
a782d639
...
...
@@ -24,6 +24,7 @@ Advanced options:
${
toggle_examples
}
examples
${
toggle_docs
}
documentation
${
toggle_unit_tests
}
unit tests
${
toggle_decode_perf_tests
}
build decoder perf tests with unit tests
--libc=PATH path to alternate libc
--as={yasm|nasm|auto} use specified assembler [auto, yasm preferred]
--sdk-path=PATH path to root of sdk (android builds only)
...
...
@@ -302,6 +303,7 @@ CONFIG_LIST="
postproc_visualizer
os_support
unit_tests
decode_perf_tests
multi_res_encoding
temporal_denoising
experimental
...
...
@@ -355,6 +357,7 @@ CMDLINE_SELECT="
small
postproc_visualizer
unit_tests
decode_perf_tests
multi_res_encoding
temporal_denoising
experimental
...
...
This diff is collapsed.
Click to expand it.
test/decode_perf_test.cc
0 → 100644
+
105
−
0
View file @
a782d639
/*
* Copyright (c) 2013 The WebM project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#include
"test/codec_factory.h"
#include
"test/decode_test_driver.h"
#include
"test/ivf_video_source.h"
#include
"test/md5_helper.h"
#include
"test/util.h"
#include
"test/webm_video_source.h"
#include
"vpx_ports/vpx_timer.h"
#include
"./vpx_version.h"
using
std
::
tr1
::
make_tuple
;
namespace
{
#define VIDEO_NAME 0
#define THREADS 1
const
double
kUsecsInSec
=
1000000.0
;
/*
DecodePerfTest takes a tuple of filename + number of threads to decode with
*/
typedef
std
::
tr1
::
tuple
<
const
char
*
const
,
unsigned
>
decode_perf_param_t
;
const
decode_perf_param_t
kVP9DecodePerfVectors
[]
=
{
make_tuple
(
"vp90-2-bbb_426x240_tile_1x1_180kbps.webm"
,
1
),
make_tuple
(
"vp90-2-bbb_640x360_tile_1x2_337kbps.webm"
,
2
),
make_tuple
(
"vp90-2-bbb_854x480_tile_1x2_651kbps.webm"
,
2
),
make_tuple
(
"vp90-2-bbb_1280x720_tile_1x4_1310kbps.webm"
,
4
),
make_tuple
(
"vp90-2-bbb_1920x1080_tile_1x1_2581kbps.webm"
,
1
),
make_tuple
(
"vp90-2-bbb_1920x1080_tile_1x4_2586kbps.webm"
,
4
),
make_tuple
(
"vp90-2-bbb_1920x1080_tile_1x4_fpm_2304kbps.webm"
,
4
),
make_tuple
(
"vp90-2-sintel_426x182_tile_1x1_171kbps.webm"
,
1
),
make_tuple
(
"vp90-2-sintel_640x272_tile_1x2_318kbps.webm"
,
2
),
make_tuple
(
"vp90-2-sintel_854x364_tile_1x2_621kbps.webm"
,
2
),
make_tuple
(
"vp90-2-sintel_1280x546_tile_1x4_1257kbps.webm"
,
4
),
make_tuple
(
"vp90-2-sintel_1920x818_tile_1x4_fpm_2279kbps.webm"
,
4
),
make_tuple
(
"vp90-2-tos_426x178_tile_1x1_181kbps.webm"
,
1
),
make_tuple
(
"vp90-2-tos_640x266_tile_1x2_336kbps.webm"
,
2
),
make_tuple
(
"vp90-2-tos_854x356_tile_1x2_656kbps.webm"
,
2
),
make_tuple
(
"vp90-2-tos_1280x534_tile_1x4_1306kbps.webm"
,
4
),
make_tuple
(
"vp90-2-tos_1920x800_tile_1x4_fpm_2335kbps.webm"
,
4
),
};
/*
In order to reflect real world performance as much as possible, Perf tests
*DO NOT* do any correctness checks. Please run them alongside correctness
tests to ensure proper codec integrity. Furthermore, in this test we
deliberately limit the amount of system calls we make to avoid OS
preemption.
TODO(joshualitt) create a more detailed perf measurement test to collect
power/temp/min max frame decode times/etc
*/
class
DecodePerfTest
:
public
::
testing
::
TestWithParam
<
decode_perf_param_t
>
{
};
TEST_P
(
DecodePerfTest
,
PerfTest
)
{
const
char
*
const
video_name
=
GET_PARAM
(
VIDEO_NAME
);
const
unsigned
threads
=
GET_PARAM
(
THREADS
);
libvpx_test
::
WebMVideoSource
video
(
video_name
);
video
.
Init
();
vpx_codec_dec_cfg_t
cfg
=
{
0
};
cfg
.
threads
=
threads
;
libvpx_test
::
VP9Decoder
decoder
(
cfg
,
0
);
vpx_usec_timer
t
;
vpx_usec_timer_start
(
&
t
);
for
(
video
.
Begin
();
video
.
cxdata
()
!=
NULL
;
video
.
Next
())
{
decoder
.
DecodeFrame
(
video
.
cxdata
(),
video
.
frame_size
());
}
vpx_usec_timer_mark
(
&
t
);
const
double
elapsed_secs
=
double
(
vpx_usec_timer_elapsed
(
&
t
))
/
kUsecsInSec
;
const
unsigned
frames
=
video
.
frame_number
();
const
double
fps
=
double
(
frames
)
/
elapsed_secs
;
printf
(
"{
\n
"
);
printf
(
"
\t\"
version
\"
:
\"
%s
\"
,
\n
"
,
VERSION_STRING_NOSP
);
printf
(
"
\t\"
videoName
\"
:
\"
%s
\"
,
\n
"
,
video_name
);
printf
(
"
\t\"
threadCount
\"
: %u,
\n
"
,
threads
);
printf
(
"
\t\"
decodeTimeSecs
\"
: %f,
\n
"
,
elapsed_secs
);
printf
(
"
\t\"
totalFrames
\"
: %u,
\n
"
,
frames
);
printf
(
"
\t\"
framesPerSecond
\"
: %f
\n
"
,
fps
);
printf
(
"}
\n
"
);
}
INSTANTIATE_TEST_CASE_P
(
VP9
,
DecodePerfTest
,
::
testing
::
ValuesIn
(
kVP9DecodePerfVectors
));
}
// namespace
This diff is collapsed.
Click to expand it.
test/test-data.sha1
+
17
−
0
View file @
a782d639
...
...
@@ -542,3 +542,20 @@ c9b237dfcc01c1b414fbcaa481d014a906ef7998 vp90-2-08-tile_1x4.webm.md5
ae7451810247fd13975cc257aa0301ff17102255 vp90-2-08-tile-4x4.webm.md5
2ec6e15422ac7a61af072dc5f27fcaf1942ce116 vp90-2-08-tile-4x1.webm
0094f5ee5e46345017c30e0aa4835b550212d853 vp90-2-08-tile-4x1.webm.md5
8cdd435d89029987ee196896e21520e5f879f04d vp90-2-bbb_1280x720_tile_1x4_1310kbps.webm
091b373aa2ecb59aa5c647affd5bcafcc7547364 vp90-2-bbb_1920x1080_tile_1x1_2581kbps.webm
87ee28032b0963a44b73a850fcc816a6dc83efbb vp90-2-bbb_1920x1080_tile_1x4_2586kbps.webm
c6ce25c4bfd4bdfc2932b70428e3dfe11210ec4f vp90-2-bbb_1920x1080_tile_1x4_fpm_2304kbps.webm
2064bdb22aa71c2691e0469fb62e8087a43f08f8 vp90-2-bbb_426x240_tile_1x1_180kbps.webm
8080eda22694910162f0996e8a962612f381a57f vp90-2-bbb_640x360_tile_1x2_337kbps.webm
a484b335c27ea189c0f0d77babea4a510ce12d50 vp90-2-bbb_854x480_tile_1x2_651kbps.webm
3eacf1f006250be4cc5c92a7ef146e385ee62653 vp90-2-sintel_1280x546_tile_1x4_1257kbps.webm
217f089a16447490823127b36ce0d945522accfd vp90-2-sintel_1920x818_tile_1x4_fpm_2279kbps.webm
eedb3c641e60dacbe082491a16df529a5c9187df vp90-2-sintel_426x182_tile_1x1_171kbps.webm
cb7e4955af183dff33bcba0c837f0922ab066400 vp90-2-sintel_640x272_tile_1x2_318kbps.webm
48613f9380e2580002f8a09d6e412ea4e89a52b9 vp90-2-sintel_854x364_tile_1x2_621kbps.webm
990a91f24dd284562d21d714ae773dff5452cad8 vp90-2-tos_1280x534_tile_1x4_1306kbps.webm
b6dd558c90bca466b4bcbd03b3371648186465a7 vp90-2-tos_1920x800_tile_1x4_fpm_2335kbps.webm
1a9c2914ba932a38f0a143efc1ad0e318e78888b vp90-2-tos_426x178_tile_1x1_181kbps.webm
a3d2b09f24debad4747a1b3066f572be4273bced vp90-2-tos_640x266_tile_1x2_336kbps.webm
c64b03b5c090e6888cb39685c31f00a6b79fa45c vp90-2-tos_854x356_tile_1x2_656kbps.webm
This diff is collapsed.
Click to expand it.
test/test.mk
+
44
−
0
View file @
a782d639
...
...
@@ -44,6 +44,10 @@ LIBVPX_TEST_SRCS-$(CONFIG_DECODERS) += $(NESTEGG_SRCS)
LIBVPX_TEST_SRCS-$(CONFIG_DECODERS)
+=
webm_video_source.h
LIBVPX_TEST_SRCS-$(CONFIG_DECODERS)
+=
test_vector_test.cc
# Currently we only support decoder perf tests for vp9
ifeq
($(CONFIG_DECODE_PERF_TESTS)$(CONFIG_VP9_DECODER), yesyes)
LIBVPX_TEST_SRCS-yes
+=
decode_perf_test.cc
endif
##
## WHITE BOX TESTS
...
...
@@ -652,3 +656,43 @@ LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-2-08-tile-4x1.webm
LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER)
+=
vp90-2-08-tile-4x1.webm.md5
LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER)
+=
vp91-2-04-yv444.webm
LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER)
+=
vp91-2-04-yv444.webm.md5
ifeq
($(CONFIG_DECODE_PERF_TESTS),yes)
# BBB VP9 streams
LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER)
+=
\
vp90-2-bbb_426x240_tile_1x1_180kbps.webm
LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER)
+=
\
vp90-2-bbb_640x360_tile_1x2_337kbps.webm
LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER)
+=
\
vp90-2-bbb_854x480_tile_1x2_651kbps.webm
LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER)
+=
\
vp90-2-bbb_1280x720_tile_1x4_1310kbps.webm
LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER)
+=
\
vp90-2-bbb_1920x1080_tile_1x1_2581kbps.webm
LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER)
+=
\
vp90-2-bbb_1920x1080_tile_1x4_2586kbps.webm
LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER)
+=
\
vp90-2-bbb_1920x1080_tile_1x4_fpm_2304kbps.webm
#Sintel VP9 streams
LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER)
+=
\
vp90-2-sintel_426x182_tile_1x1_171kbps.webm
LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER)
+=
\
vp90-2-sintel_640x272_tile_1x2_318kbps.webm
LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER)
+=
\
vp90-2-sintel_854x364_tile_1x2_621kbps.webm
LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER)
+=
\
vp90-2-sintel_1280x546_tile_1x4_1257kbps.webm
LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER)
+=
\
vp90-2-sintel_1920x818_tile_1x4_fpm_2279kbps.webm
# TOS VP9 streams
LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER)
+=
\
vp90-2-tos_426x178_tile_1x1_181kbps.webm
LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER)
+=
\
vp90-2-tos_640x266_tile_1x2_336kbps.webm
LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER)
+=
\
vp90-2-tos_854x356_tile_1x2_656kbps.webm
LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER)
+=
\
vp90-2-tos_1280x534_tile_1x4_1306kbps.webm
LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER)
+=
\
vp90-2-tos_1920x800_tile_1x4_fpm_2335kbps.webm
endif
# CONFIG_DECODE_PERF_TESTS
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
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