Skip to content

Commit 031cb3b

Browse files
committed
Replace iterators in codecs/avif/yuv.rs
1 parent 71bf867 commit 031cb3b

File tree

1 file changed

+16
-18
lines changed

1 file changed

+16
-18
lines changed

src/codecs/avif/yuv.rs

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -367,7 +367,7 @@ where
367367

368368
// All branches on generic const will be optimized out.
369369
for (y_src, rgb) in y_iter.zip(rgb_iter) {
370-
let rgb_chunks = rgb.chunks_exact_mut(CHANNELS);
370+
let rgb_chunks = rgb.as_chunks_mut::<CHANNELS>().0.iter_mut();
371371

372372
for (y_src, rgb_dst) in y_src.iter().zip(rgb_chunks) {
373373
let r = *y_src;
@@ -403,7 +403,7 @@ where
403403

404404
// All branches on generic const will be optimized out.
405405
for (y_src, rgb) in y_iter.zip(rgb_iter) {
406-
let rgb_chunks = rgb.chunks_exact_mut(CHANNELS);
406+
let rgb_chunks = rgb.as_chunks_mut::<CHANNELS>().0.iter_mut();
407407

408408
for (y_src, rgb_dst) in y_src.iter().zip(rgb_chunks) {
409409
let y_value = (y_src.as_() - bias_y) * y_coef;
@@ -567,9 +567,11 @@ fn process_halved_chroma_row_cbcr<
567567

568568
let bias_y = range.bias_y as i32;
569569
let bias_uv = range.bias_uv as i32;
570-
let y_iter = y_plane.chunks_exact(2);
571-
let rgb_chunks = rgba.chunks_exact_mut(CHANNELS * 2);
572-
for (((y_src, &u_src), &v_src), rgb_dst) in y_iter.zip(u_plane).zip(v_plane).zip(rgb_chunks) {
570+
let (y_iter, y_left) = y_plane.as_chunks::<2>();
571+
let mut rgb_chunks = rgba.chunks_exact_mut(CHANNELS * 2);
572+
for (((y_src, &u_src), &v_src), rgb_dst) in
573+
y_iter.iter().zip(u_plane).zip(v_plane).zip(&mut rgb_chunks)
574+
{
573575
let y_value0: i32 = y_src[0].as_() - bias_y;
574576
let cb_value: i32 = u_src.as_() - bias_uv;
575577
let cr_value: i32 = v_src.as_() - bias_uv;
@@ -599,11 +601,11 @@ fn process_halved_chroma_row_cbcr<
599601

600602
// Process remainder if width is odd.
601603
if image.width & 1 != 0 {
602-
let y_left = y_plane.chunks_exact(2).remainder();
603-
let rgb_chunks = rgba
604-
.chunks_exact_mut(CHANNELS * 2)
604+
let rgb_chunks = rgb_chunks
605605
.into_remainder()
606-
.chunks_exact_mut(CHANNELS);
606+
.as_chunks_mut::<CHANNELS>()
607+
.0
608+
.iter_mut();
607609
let u_iter = u_plane.iter().rev();
608610
let v_iter = v_plane.iter().rev();
609611

@@ -615,11 +617,7 @@ fn process_halved_chroma_row_cbcr<
615617
let cr_value = v_src.as_() - bias_uv;
616618

617619
ycbcr_execute::<V, PRECISION, CHANNELS, BIT_DEPTH>(
618-
rgb_dst.try_into().unwrap(),
619-
y_value,
620-
cb_value,
621-
cr_value,
622-
transform,
620+
rgb_dst, y_value, cb_value, cr_value, transform,
623621
);
624622
}
625623
}
@@ -1098,7 +1096,7 @@ where
10981096

10991097
// All branches on generic const will be optimized out.
11001098
for (((y_src, u_src), v_src), rgb) in y_iter.zip(u_iter).zip(v_iter).zip(rgb_iter) {
1101-
let rgb_chunks = rgb.chunks_exact_mut(CHANNELS);
1099+
let rgb_chunks = rgb.as_chunks_mut::<CHANNELS>().0.iter_mut();
11021100

11031101
for (((y_src, u_src), v_src), rgb_dst) in y_src.iter().zip(u_src).zip(v_src).zip(rgb_chunks)
11041102
{
@@ -1107,7 +1105,7 @@ where
11071105
let cr_value = v_src.as_() - bias_uv;
11081106

11091107
ycbcr_execute::<V, PRECISION, CHANNELS, BIT_DEPTH>(
1110-
rgb_dst.try_into().unwrap(),
1108+
rgb_dst,
11111109
y_value,
11121110
cb_value,
11131111
cr_value,
@@ -1240,7 +1238,7 @@ where
12401238
let y_bias = range.bias_y as i32;
12411239

12421240
for (((y_src, u_src), v_src), rgb) in y_iter.zip(u_iter).zip(v_iter).zip(rgb_iter) {
1243-
let rgb_chunks = rgb.chunks_exact_mut(CHANNELS);
1241+
let rgb_chunks = rgb.as_chunks_mut::<CHANNELS>().0.iter_mut();
12441242

12451243
for (((&y_src, &u_src), &v_src), rgb_dst) in
12461244
y_src.iter().zip(u_src).zip(v_src).zip(rgb_chunks)
@@ -1259,7 +1257,7 @@ where
12591257
}
12601258
YuvIntensityRange::Pc => {
12611259
for (((y_src, u_src), v_src), rgb) in y_iter.zip(u_iter).zip(v_iter).zip(rgb_iter) {
1262-
let rgb_chunks = rgb.chunks_exact_mut(CHANNELS);
1260+
let rgb_chunks = rgb.as_chunks_mut::<CHANNELS>().0.iter_mut();
12631261

12641262
for (((&y_src, &u_src), &v_src), rgb_dst) in
12651263
y_src.iter().zip(u_src).zip(v_src).zip(rgb_chunks)

0 commit comments

Comments
 (0)