Skip to content

Commit 156cc72

Browse files
rom1vtdaede
authored andcommitted
Parallelize tile encoding
Use par_iter_mut() from Rayon to call encode_tile() for each tile context in parallel.
1 parent 036c421 commit 156cc72

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

src/encoder.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ use crate::header::*;
3333
use arg_enum_proc_macro::ArgEnum;
3434
use bitstream_io::{BitWriter, BigEndian};
3535
use bincode::{serialize, deserialize};
36+
use rayon::iter::*;
3637
use std;
3738
use std::{fmt, io, mem};
3839
use std::io::Write;
@@ -2100,7 +2101,7 @@ fn encode_tile_group<T: Pixel>(fi: &FrameInvariants<T>, fs: &mut FrameState<T>)
21002101
.tile_iter_mut(fs, &mut blocks)
21012102
.zip(cdfs.iter_mut())
21022103
.collect::<Vec<_>>()
2103-
.iter_mut()
2104+
.par_iter_mut()
21042105
.map(|(ref mut ctx, cdf)| encode_tile(fi, &mut ctx.ts, cdf, &mut ctx.tb))
21052106
.collect::<Vec<_>>();
21062107

0 commit comments

Comments
 (0)