pub trait J2kEncodeStageAccelerator {
Show 16 methods
// Provided methods
fn dispatch_report(&self) -> J2kEncodeDispatchReport { ... }
fn encode_deinterleave(
&mut self,
_job: J2kDeinterleaveToF32Job<'_>,
) -> Result<Option<Vec<Vec<f32>>>, &'static str> { ... }
fn encode_forward_rct(
&mut self,
_job: J2kForwardRctJob<'_>,
) -> Result<bool, &'static str> { ... }
fn encode_forward_ict(
&mut self,
_job: J2kForwardIctJob<'_>,
) -> Result<bool, &'static str> { ... }
fn encode_forward_dwt53(
&mut self,
_job: J2kForwardDwt53Job<'_>,
) -> Result<Option<J2kForwardDwt53Output>, &'static str> { ... }
fn encode_forward_dwt97(
&mut self,
_job: J2kForwardDwt97Job<'_>,
) -> Result<Option<J2kForwardDwt97Output>, &'static str> { ... }
fn encode_quantize_subband(
&mut self,
_job: J2kQuantizeSubbandJob<'_>,
) -> Result<Option<Vec<i32>>, &'static str> { ... }
fn encode_tier1_code_block(
&mut self,
_job: J2kTier1CodeBlockEncodeJob<'_>,
) -> Result<Option<EncodedJ2kCodeBlock>, &'static str> { ... }
fn encode_tier1_code_blocks(
&mut self,
_jobs: &[J2kTier1CodeBlockEncodeJob<'_>],
) -> Result<Option<Vec<EncodedJ2kCodeBlock>>, &'static str> { ... }
fn encode_ht_code_block(
&mut self,
_job: J2kHtCodeBlockEncodeJob<'_>,
) -> Result<Option<EncodedHtJ2kCodeBlock>, &'static str> { ... }
fn encode_ht_code_blocks(
&mut self,
_jobs: &[J2kHtCodeBlockEncodeJob<'_>],
) -> Result<Option<Vec<EncodedHtJ2kCodeBlock>>, &'static str> { ... }
fn encode_ht_subband(
&mut self,
_job: J2kHtSubbandEncodeJob<'_>,
) -> Result<Option<Vec<EncodedHtJ2kCodeBlock>>, &'static str> { ... }
fn encode_htj2k_tile(
&mut self,
_job: J2kHtj2kTileEncodeJob<'_>,
) -> Result<Option<Vec<u8>>, &'static str> { ... }
fn prefer_parallel_cpu_code_block_fallback(&self) -> bool { ... }
fn prefer_parallel_cpu_tile_encode(&self) -> bool { ... }
fn encode_packetization(
&mut self,
_job: J2kPacketizationEncodeJob<'_>,
) -> Result<Option<Vec<u8>>, &'static str> { ... }
}Expand description
Adapter JPEG 2000 encode-stage accelerator for backend experimentation.
Provided Methods§
Sourcefn dispatch_report(&self) -> J2kEncodeDispatchReport
fn dispatch_report(&self) -> J2kEncodeDispatchReport
Report cumulative backend dispatches completed by this accelerator.
Sourcefn encode_deinterleave(
&mut self,
_job: J2kDeinterleaveToF32Job<'_>,
) -> Result<Option<Vec<Vec<f32>>>, &'static str>
fn encode_deinterleave( &mut self, _job: J2kDeinterleaveToF32Job<'_>, ) -> Result<Option<Vec<Vec<f32>>>, &'static str>
Optionally deinterleave interleaved pixel bytes into f32 component planes.
Return Ok(Some(components)) with one plane per component. Return
Ok(None) to use the CPU fallback.
Sourcefn encode_forward_rct(
&mut self,
_job: J2kForwardRctJob<'_>,
) -> Result<bool, &'static str>
fn encode_forward_rct( &mut self, _job: J2kForwardRctJob<'_>, ) -> Result<bool, &'static str>
Optionally apply forward RCT in place.
Return Ok(true) after writing transformed planes. Return Ok(false)
to use the CPU fallback.
Sourcefn encode_forward_ict(
&mut self,
_job: J2kForwardIctJob<'_>,
) -> Result<bool, &'static str>
fn encode_forward_ict( &mut self, _job: J2kForwardIctJob<'_>, ) -> Result<bool, &'static str>
Optionally apply forward ICT in place.
Return Ok(true) after writing transformed planes. Return Ok(false)
to use the CPU fallback.
Sourcefn encode_forward_dwt53(
&mut self,
_job: J2kForwardDwt53Job<'_>,
) -> Result<Option<J2kForwardDwt53Output>, &'static str>
fn encode_forward_dwt53( &mut self, _job: J2kForwardDwt53Job<'_>, ) -> Result<Option<J2kForwardDwt53Output>, &'static str>
Optionally run a forward reversible 5/3 DWT.
Return Ok(Some(output)) with all subbands populated. Return
Ok(None) to use the CPU fallback.
Sourcefn encode_forward_dwt97(
&mut self,
_job: J2kForwardDwt97Job<'_>,
) -> Result<Option<J2kForwardDwt97Output>, &'static str>
fn encode_forward_dwt97( &mut self, _job: J2kForwardDwt97Job<'_>, ) -> Result<Option<J2kForwardDwt97Output>, &'static str>
Optionally run a forward irreversible 9/7 DWT.
Return Ok(Some(output)) with all subbands populated. Return
Ok(None) to use the CPU fallback.
Sourcefn encode_quantize_subband(
&mut self,
_job: J2kQuantizeSubbandJob<'_>,
) -> Result<Option<Vec<i32>>, &'static str>
fn encode_quantize_subband( &mut self, _job: J2kQuantizeSubbandJob<'_>, ) -> Result<Option<Vec<i32>>, &'static str>
Optionally quantize one sub-band.
Return Ok(Some(coefficients)) with one quantized coefficient for each
input coefficient. Return Ok(None) to use the CPU fallback.
Sourcefn encode_tier1_code_block(
&mut self,
_job: J2kTier1CodeBlockEncodeJob<'_>,
) -> Result<Option<EncodedJ2kCodeBlock>, &'static str>
fn encode_tier1_code_block( &mut self, _job: J2kTier1CodeBlockEncodeJob<'_>, ) -> Result<Option<EncodedJ2kCodeBlock>, &'static str>
Optionally encode one classic Tier-1 code-block.
Return Ok(Some(output)) with encoded bytes and pass metadata. Return
Ok(None) to use the CPU fallback.
Sourcefn encode_tier1_code_blocks(
&mut self,
_jobs: &[J2kTier1CodeBlockEncodeJob<'_>],
) -> Result<Option<Vec<EncodedJ2kCodeBlock>>, &'static str>
fn encode_tier1_code_blocks( &mut self, _jobs: &[J2kTier1CodeBlockEncodeJob<'_>], ) -> Result<Option<Vec<EncodedJ2kCodeBlock>>, &'static str>
Optionally encode multiple classic Tier-1 code-blocks in one backend dispatch.
Return Ok(Some(outputs)) with one encoded output per input job. Return
Ok(None) to use the per-block hook or CPU fallback.
Sourcefn encode_ht_code_block(
&mut self,
_job: J2kHtCodeBlockEncodeJob<'_>,
) -> Result<Option<EncodedHtJ2kCodeBlock>, &'static str>
fn encode_ht_code_block( &mut self, _job: J2kHtCodeBlockEncodeJob<'_>, ) -> Result<Option<EncodedHtJ2kCodeBlock>, &'static str>
Optionally encode one HTJ2K code-block.
Return Ok(Some(output)) with encoded bytes and pass metadata. Return
Ok(None) to use the CPU fallback.
Sourcefn encode_ht_code_blocks(
&mut self,
_jobs: &[J2kHtCodeBlockEncodeJob<'_>],
) -> Result<Option<Vec<EncodedHtJ2kCodeBlock>>, &'static str>
fn encode_ht_code_blocks( &mut self, _jobs: &[J2kHtCodeBlockEncodeJob<'_>], ) -> Result<Option<Vec<EncodedHtJ2kCodeBlock>>, &'static str>
Optionally encode multiple HTJ2K code-blocks in one backend dispatch.
Return Ok(Some(outputs)) with one encoded output per input job. Return
Ok(None) to use the per-block hook or CPU fallback.
Sourcefn encode_ht_subband(
&mut self,
_job: J2kHtSubbandEncodeJob<'_>,
) -> Result<Option<Vec<EncodedHtJ2kCodeBlock>>, &'static str>
fn encode_ht_subband( &mut self, _job: J2kHtSubbandEncodeJob<'_>, ) -> Result<Option<Vec<EncodedHtJ2kCodeBlock>>, &'static str>
Optionally quantize and encode one HTJ2K cleanup-only sub-band.
Return Ok(Some(outputs)) with one encoded output per code block in
raster code-block order. Return Ok(None) to use the separate
quantization and code-block hooks or CPU fallback.
Sourcefn encode_htj2k_tile(
&mut self,
_job: J2kHtj2kTileEncodeJob<'_>,
) -> Result<Option<Vec<u8>>, &'static str>
fn encode_htj2k_tile( &mut self, _job: J2kHtj2kTileEncodeJob<'_>, ) -> Result<Option<Vec<u8>>, &'static str>
Optionally encode the complete HTJ2K tile packet body.
Return Ok(Some(bytes)) with the complete tile bitstream body. CPU
marker/header writing remains outside this hook. Return Ok(None) to
use the normal staged encode pipeline.
Sourcefn prefer_parallel_cpu_code_block_fallback(&self) -> bool
fn prefer_parallel_cpu_code_block_fallback(&self) -> bool
Return whether native CPU code-block fallback should use internal rayon parallelism.
External accelerators keep serial per-block fallback so their hooks still observe every fallback block after a declined batch hook.
Sourcefn prefer_parallel_cpu_tile_encode(&self) -> bool
fn prefer_parallel_cpu_tile_encode(&self) -> bool
Return whether whole-tile CPU-only batch encode may be parallelized by callers.
This is narrower than Self::prefer_parallel_cpu_code_block_fallback:
callers must only bypass the supplied accelerator when it is known to
have no observable hooks.
Sourcefn encode_packetization(
&mut self,
_job: J2kPacketizationEncodeJob<'_>,
) -> Result<Option<Vec<u8>>, &'static str>
fn encode_packetization( &mut self, _job: J2kPacketizationEncodeJob<'_>, ) -> Result<Option<Vec<u8>>, &'static str>
Optionally packetize prepared packet contributions.
Return Ok(Some(bytes)) with the complete tile bitstream. Return
Ok(None) to use the CPU fallback.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".