mod accelerator_contracts;
mod allocation;
pub use self::accelerator_contracts::{
idct_blocks_to_signed_samples_rayon, CpuOnlyDctToWaveletStageAccelerator,
DctGridI16ToHtj2k97CodeBlockBatch, DctGridI16ToHtj2k97CodeBlockJob, DctGridToDwt53Job,
DctGridToDwt97Job, DctGridToHtj2k97CodeBlockJob, DctToWaveletStageAccelerator,
DctToWaveletStageCounterEvent, DctToWaveletStageCounters, EncodedHtJ2kCodeBlock,
Htj2k97CodeBlockOptions, IrreversibleQuantizationSubbandScales, J2kSubBandType,
PreencodedHtj2k97CodeBlock, PreencodedHtj2k97CompactBatch, PreencodedHtj2k97CompactBatchGroups,
PreencodedHtj2k97CompactCodeBlock, PreencodedHtj2k97CompactComponent,
PreencodedHtj2k97CompactImage, PreencodedHtj2k97CompactResolution,
PreencodedHtj2k97CompactSubband, PreencodedHtj2k97Component, PreencodedHtj2k97Resolution,
PreencodedHtj2k97Subband, PrequantizedHtj2k97CodeBlock, PrequantizedHtj2k97Component,
PrequantizedHtj2k97Image, PrequantizedHtj2k97Resolution, PrequantizedHtj2k97Subband,
RayonReversibleDwt53Accelerator, TranscodeStageDispatchMode,
};
#[doc(hidden)]
pub mod accelerator {
pub use crate::{
idct_blocks_to_signed_samples_rayon, CpuOnlyDctToWaveletStageAccelerator,
DctGridI16ToHtj2k97CodeBlockBatch, DctGridI16ToHtj2k97CodeBlockJob, DctGridToDwt53Job,
DctGridToDwt97Job, DctGridToHtj2k97CodeBlockJob, DctGridToReversibleDwt53Job,
DctToWaveletStageAccelerator, DctToWaveletStageCounterEvent, DctToWaveletStageCounters,
Dwt97BatchStageTimings, EncodedHtJ2kCodeBlock, Htj2k97CodeBlockOptions,
IrreversibleQuantizationSubbandScales, J2kSubBandType, PreencodedHtj2k97CodeBlock,
PreencodedHtj2k97CompactBatch, PreencodedHtj2k97CompactBatchGroups,
PreencodedHtj2k97CompactCodeBlock, PreencodedHtj2k97CompactComponent,
PreencodedHtj2k97CompactImage, PreencodedHtj2k97CompactResolution,
PreencodedHtj2k97CompactSubband, PreencodedHtj2k97Component, PreencodedHtj2k97Resolution,
PreencodedHtj2k97Subband, PrequantizedHtj2k97CodeBlock, PrequantizedHtj2k97Component,
PrequantizedHtj2k97Image, PrequantizedHtj2k97Resolution, PrequantizedHtj2k97Subband,
RayonReversibleDwt53Accelerator, ReversibleDwt53FirstLevel, TranscodeStageDispatchMode,
TranscodeStageError,
};
}
#[derive(Debug, Clone, Copy)]
pub struct DctGridToReversibleDwt53Job<'a> {
pub dequantized_blocks: &'a [[i16; 64]],
pub block_cols: usize,
pub block_rows: usize,
pub width: usize,
pub height: usize,
}
#[derive(Debug, PartialEq, Eq)]
pub struct ReversibleDwt53FirstLevel {
pub ll: Vec<i32>,
pub hl: Vec<i32>,
pub lh: Vec<i32>,
pub hh: Vec<i32>,
pub low_width: usize,
pub low_height: usize,
pub high_width: usize,
pub high_height: usize,
}
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq)]
pub struct Dwt97BatchStageTimings {
pub pack_upload_us: u128,
pub pack_upload_transfers: usize,
pub pack_upload_bytes: u64,
pub resident_dct_handoff_count: usize,
pub idct_row_lift_us: u128,
pub column_lift_us: u128,
pub resident_dwt_handoff_count: usize,
pub quantize_codeblock_us: u128,
pub ht_encode_us: u128,
pub ht_kernel_us: u128,
pub ht_status_readback_us: u128,
pub ht_status_readback_transfers: usize,
pub ht_status_readback_bytes: u64,
pub ht_compact_us: u128,
pub ht_output_readback_us: u128,
pub ht_output_readback_transfers: usize,
pub ht_output_readback_bytes: u64,
pub ht_codeblock_dispatches: usize,
pub readback_us: u128,
pub readback_transfers: usize,
pub readback_bytes: u64,
}
mod dct53_2d;
mod dct97_2d;
mod dct_grid;
#[cfg(feature = "dev-support")]
#[doc(hidden)]
pub mod dev_support;
mod htj2k97_codeblock_error;
mod htj2k97_codeblock_oracle;
#[doc(hidden)]
mod jpeg_to_htj2k;
#[doc(hidden)]
pub mod metrics;
mod pipeline_map;
mod resident;
mod reversible53;
mod transcode_stage_error;
pub use j2k::J2kProgressionOrder as EncodeProgressionOrder;
#[derive(Debug, PartialEq)]
pub struct Dwt53TwoDimensional<T> {
pub ll: Vec<T>,
pub hl: Vec<T>,
pub lh: Vec<T>,
pub hh: Vec<T>,
pub low_width: usize,
pub low_height: usize,
pub high_width: usize,
pub high_height: usize,
}
#[derive(Debug, PartialEq)]
pub struct Dwt97TwoDimensional<T> {
pub ll: Vec<T>,
pub hl: Vec<T>,
pub lh: Vec<T>,
pub hh: Vec<T>,
pub low_width: usize,
pub low_height: usize,
pub high_width: usize,
pub high_height: usize,
}
pub use dct53_2d::{dct8x8_blocks_then_dwt53_float, dct8x8_blocks_to_dwt53_float_linear};
pub use dct97_2d::dct8x8_blocks_then_dwt97_float;
pub use dct97_2d::{dct8x8_blocks_then_dwt97_float_with_scratch, Dct97GridScratch};
pub use dct_grid::{DctGridError, DctTransformError};
pub use htj2k97_codeblock_error::{Htj2k97CodeBlockAxis, Htj2k97CodeBlockOptionsError};
pub use htj2k97_codeblock_oracle::{
htj2k97_subband_delta, htj2k97_subband_total_bitplanes, validate_htj2k97_codeblock_options,
};
pub use jpeg_to_htj2k::{
jpeg_to_htj2k, jpeg_to_htj2k_batch, BatchTranscodeReport, EncodedTranscode,
EncodedTranscodeBatch, Htj2kEncodeError, Htj2kEncodeErrorKind, JpegTileBatchInput,
JpegToHtj2kCoefficientPath, JpegToHtj2kEncodeOptions, JpegToHtj2kError, JpegToHtj2kOptions,
JpegToHtj2kTranscoder, TranscodeBatchProfileRequest, TranscodeBatchProfileRow,
TranscodeComponentReport, TranscodeReport, TranscodeTimingReport,
TranscodeValidationClassification, TranscodeValidationMetrics,
JPEG_TO_HTJ2K_LOSSY_97_QUANTIZATION_SCALE,
};
pub use pipeline_map::{
TranscodePipelineMap, TranscodePipelineStageKind, TranscodePipelineStageReport,
TranscodeResidentStageRecommendation, TranscodeStageProcessor,
};
pub use resident::{
ResidentBufferRef, ResidentCodestreamBuffer, ResidentColorModel, ResidentComponentGeometry,
ResidentDctCoefficientOrder, ResidentDctGridLayout, ResidentDwtSubband, ResidentDwtSubbandKind,
ResidentDwtSubbandLayout, ResidentHandoffError, ResidentJpegDctGrid, ResidentSampleInfo,
ResidentSampling,
};
pub use transcode_stage_error::TranscodeStageError;