New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 867613 link

Starred by 6 users

Issue metadata

Status: Fixed
Owner:
Closed: Dec 18
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Task

Blocked on:
issue aomedia:999
issue aomedia:1255



Sign in to add a comment

Enable AomVideoDecoder optimizations.

Project Member Reported by dalecur...@chromium.org, Jul 25

Issue description

Specifically zero copy and OffloadingVideoDecoder.
- Zero copy requires AOM team to fix 8 bit output for 8 bit content. 
- Offloading needs some testing to see if it's worthwhile for the SD content that will be dominant in the early AV1 days.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Aug 30

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2170e0b30605823c7595a4e61f0118af2e21fad2

commit 2170e0b30605823c7595a4e61f0118af2e21fad2
Author: Dale Curtis <dalecurtis@chromium.org>
Date: Thu Aug 30 20:23:47 2018

Remove packing and update TODO comments with more detail.

8-bit YUV is no longer stored in 16-bit components with recent
libaom builds. So we don't need this hack anymore.

I've also cleaned up some TODOs and code structure.

BUG= 867613 
TEST=unittests still pass.

Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I7093240e4475ff4367e5f49681c0172e7ad11152
Reviewed-on: https://chromium-review.googlesource.com/1178938
Reviewed-by: Tom Finegan <tomfinegan@chromium.org>
Commit-Queue: Dale Curtis <dalecurtis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#587736}
[modify] https://crrev.com/2170e0b30605823c7595a4e61f0118af2e21fad2/media/filters/aom_video_decoder.cc

Blockedon: aomedia:1255
So at least with the 1080p media that YouTube produced, there isn't any performance increase by enabling offloading and zero-copy. I suspect this is because the YT produced media doesn't use tiles so multi-threading can't be used.
Project Member

Comment 4 by bugdroid1@chromium.org, Nov 2

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4ae6290e05c21cc177c320672f2b89f5fd9b599f

commit 4ae6290e05c21cc177c320672f2b89f5fd9b599f
Author: Wan-Teh Chang <wtc@google.com>
Date: Fri Nov 02 17:59:50 2018

Roll src/third_party/libaom/source/libaom/ 8f2210a2e..351711076 (74 commits)

https://aomedia.googlesource.com/aom.git/+log/8f2210a2e54a..35171107616f

$ git log 8f2210a2e..351711076 --date=short --no-merges --format='%ad %ae %s'
2018-10-31 johann.koenig INTERNAL_STATS: move ssim_opt_x86_64
2018-10-29 yunqingwang Use 8-tap interp filter in temporal filtering
2018-10-29 wtc Re-enable the NotEnoughBuffers and NoRelease tests.
2018-10-31 urvang av1_highbd_dr_prediction_z2_c: Add an assertion.
2018-10-30 sarahparker Solve a 2x2 system for optical flow computation
2018-10-31 sachin.kumargarg Fix issue in AV1HighBDJNTCOMPAVGUPSAMPLEDTest
2018-10-30 sarahparker Add function to compute matrices for DISflow system
2018-10-22 sarahparker Add x and y gradients to image pyramid
2018-10-30 bruno.berthier Fix build with -DCONFIG_WEBM_IO=0 -DCONFIG_LOWBITDEPTH=0
2018-10-29 david.turner Remove CONFIG_INTEGERIZE_SGR build flag
2018-10-29 david.turner Fix issues with SIMD horver_correlation_full
2018-10-22 debargha Enhance selective_ref_frame for use in speed 0
2018-10-23 wenyao.liu reduce memory usage in PICK__MODE_CONTEXT
2018-10-26 sarahparker Add macro to determine type of global motion computation
2018-10-24 ravi.chaudhary Fix issues in ARNR filtering
2018-10-26 wtc Propagate img->fb_priv when film grain enabled.
2018-10-27 wtc Fix the ExtFBMD5Match test.
2018-10-26 yunqingwang Remove rst_end_stripe in struct AV1Common
2018-10-26 johannkoenig change CONFIG_SHARP_SETTINGS description
2018-10-26 debargha Revert horver calculation to C version temporarily
(...)

Created with:
  roll-dep src/third_party/libaom/source/libaom
R=tomfinegan@chromium.org,johannkoenig@google.com,jzern@chromium.org

Bug:  aomedia:1255 
Bug:  867613 
Change-Id: I1dd800038d5ec8e80b4eefc851173d1ca8427e1c
Reviewed-on: https://chromium-review.googlesource.com/c/1313765
Reviewed-by: Johann Koenig <johannkoenig@google.com>
Commit-Queue: Wan-Teh Chang <wtc@google.com>
Cr-Commit-Position: refs/heads/master@{#604979}
[modify] https://crrev.com/4ae6290e05c21cc177c320672f2b89f5fd9b599f/DEPS
[modify] https://crrev.com/4ae6290e05c21cc177c320672f2b89f5fd9b599f/third_party/libaom/README.chromium
[modify] https://crrev.com/4ae6290e05c21cc177c320672f2b89f5fd9b599f/third_party/libaom/libaom_srcs.gni
[modify] https://crrev.com/4ae6290e05c21cc177c320672f2b89f5fd9b599f/third_party/libaom/source/config/config/aom_version.h
[modify] https://crrev.com/4ae6290e05c21cc177c320672f2b89f5fd9b599f/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_config.asm
[modify] https://crrev.com/4ae6290e05c21cc177c320672f2b89f5fd9b599f/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_config.h
[modify] https://crrev.com/4ae6290e05c21cc177c320672f2b89f5fd9b599f/third_party/libaom/source/config/linux/arm-neon/config/aom_config.asm
[modify] https://crrev.com/4ae6290e05c21cc177c320672f2b89f5fd9b599f/third_party/libaom/source/config/linux/arm-neon/config/aom_config.h
[modify] https://crrev.com/4ae6290e05c21cc177c320672f2b89f5fd9b599f/third_party/libaom/source/config/linux/arm/config/aom_config.asm
[modify] https://crrev.com/4ae6290e05c21cc177c320672f2b89f5fd9b599f/third_party/libaom/source/config/linux/arm/config/aom_config.h
[modify] https://crrev.com/4ae6290e05c21cc177c320672f2b89f5fd9b599f/third_party/libaom/source/config/linux/arm64/config/aom_config.asm
[modify] https://crrev.com/4ae6290e05c21cc177c320672f2b89f5fd9b599f/third_party/libaom/source/config/linux/arm64/config/aom_config.h
[modify] https://crrev.com/4ae6290e05c21cc177c320672f2b89f5fd9b599f/third_party/libaom/source/config/linux/generic/config/aom_config.asm
[modify] https://crrev.com/4ae6290e05c21cc177c320672f2b89f5fd9b599f/third_party/libaom/source/config/linux/generic/config/aom_config.h
[modify] https://crrev.com/4ae6290e05c21cc177c320672f2b89f5fd9b599f/third_party/libaom/source/config/linux/ia32/config/aom_config.asm
[modify] https://crrev.com/4ae6290e05c21cc177c320672f2b89f5fd9b599f/third_party/libaom/source/config/linux/ia32/config/aom_config.h
[modify] https://crrev.com/4ae6290e05c21cc177c320672f2b89f5fd9b599f/third_party/libaom/source/config/linux/ia32/config/aom_dsp_rtcd.h
[modify] https://crrev.com/4ae6290e05c21cc177c320672f2b89f5fd9b599f/third_party/libaom/source/config/linux/x64/config/aom_config.asm
[modify] https://crrev.com/4ae6290e05c21cc177c320672f2b89f5fd9b599f/third_party/libaom/source/config/linux/x64/config/aom_config.h
[modify] https://crrev.com/4ae6290e05c21cc177c320672f2b89f5fd9b599f/third_party/libaom/source/config/linux/x64/config/aom_dsp_rtcd.h
[modify] https://crrev.com/4ae6290e05c21cc177c320672f2b89f5fd9b599f/third_party/libaom/source/config/win/ia32/config/aom_config.asm
[modify] https://crrev.com/4ae6290e05c21cc177c320672f2b89f5fd9b599f/third_party/libaom/source/config/win/ia32/config/aom_config.h
[modify] https://crrev.com/4ae6290e05c21cc177c320672f2b89f5fd9b599f/third_party/libaom/source/config/win/ia32/config/aom_dsp_rtcd.h
[modify] https://crrev.com/4ae6290e05c21cc177c320672f2b89f5fd9b599f/third_party/libaom/source/config/win/x64/config/aom_config.asm
[modify] https://crrev.com/4ae6290e05c21cc177c320672f2b89f5fd9b599f/third_party/libaom/source/config/win/x64/config/aom_config.h
[modify] https://crrev.com/4ae6290e05c21cc177c320672f2b89f5fd9b599f/third_party/libaom/source/config/win/x64/config/aom_dsp_rtcd.h

Project Member

Comment 5 by bugdroid1@chromium.org, Nov 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/68a3b425ac9cc520cefb62a2adf673c8b94d8bb6

commit 68a3b425ac9cc520cefb62a2adf673c8b94d8bb6
Author: Dale Curtis <dalecurtis@chromium.org>
Date: Sat Nov 03 02:01:51 2018

Switch AomVideoDecoder to zero copy now that libaom fixes are in.

libaom has fixed all the framebuffer issues, so we should now be
able to use these. All tests pass and YouTube videos look good.
Seems only a minor memory savings ~2mb on a 480p clip.

This also resolves an issue with clipping of 64-bit timestamps
passed in as a void* (which might be 32-bit on some platforms).

BUG= 867613 , 900302 
TEST=existing tests all still pass.

Change-Id: I83af8ecd867e13741f27f5225316b62f31981562
Reviewed-on: https://chromium-review.googlesource.com/c/1316408
Commit-Queue: Dale Curtis <dalecurtis@chromium.org>
Reviewed-by: Thomas Guilbert <tguilbert@chromium.org>
Cr-Commit-Position: refs/heads/master@{#605129}
[modify] https://crrev.com/68a3b425ac9cc520cefb62a2adf673c8b94d8bb6/media/filters/aom_video_decoder.cc
[modify] https://crrev.com/68a3b425ac9cc520cefb62a2adf673c8b94d8bb6/media/filters/aom_video_decoder.h

Zero copy is fixed. Offloading doesn't seem to help yet, so haven't enabled it.
Status: Fixed (was: Assigned)
Offloading hasn't yielded improvements in local benchmarks yet, so marking this as fixed and we can reevaluate that later.

Sign in to add a comment