Fixed squared artefacts on image when converting to AVIF

OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/rav1e?expand=0&rev=31
This commit is contained in:
Andreas Schneider 2021-07-09 06:13:59 +00:00 committed by Git OBS Bridge
parent 283919181d
commit eaf8ddf9dc
3 changed files with 51 additions and 0 deletions

View File

@ -0,0 +1,42 @@
From f553646d70fba8e265d436103a73520eb7adec8c Mon Sep 17 00:00:00 2001
From: David Michael Barr <b@rr-dav.id.au>
Date: Thu, 8 Jul 2021 13:39:59 +0900
Subject: [PATCH] Initialise residual when less than the transform width is
visible
The input stride for forward transforms did not match the output
stride of residual computation in this case. Extend the residual
stride to the transform width and zero the non-visible portion.
Fixes #2662. Fixes #2757.
---
src/encoder.rs | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/src/encoder.rs b/src/encoder.rs
index 564d78d7e..1ccf8c831 100644
--- a/src/encoder.rs
+++ b/src/encoder.rs
@@ -1209,12 +1209,20 @@ pub fn encode_tx_block<T: Pixel, W: Writer>(
residual,
&ts.input_tile.planes[p].subregion(area),
&rec.subregion(area),
- visible_tx_w,
+ tx_size.width(),
visible_tx_h,
);
+ if visible_tx_w < tx_size.width() {
+ for row in residual.chunks_mut(tx_size.width()).take(visible_tx_h) {
+ for a in &mut row[visible_tx_w..] {
+ *a = 0;
+ }
+ }
+ }
}
- let visible_area = visible_tx_w * visible_tx_h;
- for a in residual[visible_area..].iter_mut() {
+ let initialized_area =
+ if visible_tx_w == 0 { 0 } else { tx_size.width() * visible_tx_h };
+ for a in residual[initialized_area..].iter_mut() {
*a = 0;
}

View File

@ -1,3 +1,9 @@
-------------------------------------------------------------------
Fri Jul 9 06:11:11 UTC 2021 - Andreas Schneider <asn@cryptomilk.org>
- Fixed squared artefacts on image when converting to AVIF
* Added f553646d70fba8e265d436103a73520eb7adec8c.patch
-------------------------------------------------------------------
Wed Jun 2 07:19:00 UTC 2021 - Andreas Schneider <asn@cryptomilk.org>

View File

@ -31,6 +31,9 @@ Source1: vendor.tar.xz
Source98: README.suse-maint
Source99: baselibs.conf
#
# Fix squared artefacts on image when converting to AVIF
Patch0: https://github.com/xiph/rav1e/commit/f553646d70fba8e265d436103a73520eb7adec8c.patch
#
BuildRequires: cargo-c
BuildRequires: nasm
BuildRequires: rust-packaging