Skip to main content

j2k_types/
lib.rs

1// j2k-coverage: shared-accelerator-host
2//! Shared JPEG 2000 and HTJ2K codec contracts for j2k.
3//!
4//! Stable codec value types are grouped by transform, Tier-1, packetization,
5//! and prepared-plan ownership. The crate's dispatch contracts form the
6//! explicit low-level integration surface for encode-stage accelerators.
7
8#![no_std]
9#![forbid(unsafe_code)]
10#![forbid(missing_docs)]
11extern crate alloc;
12
13mod decode_payload;
14pub use decode_payload::{
15    HtCodeBlockPayloadRanges, J2kClassicCodeBlockPayload, J2kCodestreamRange,
16};
17
18mod decode_plan;
19pub use decode_plan::{
20    DecodePlanAllocationError, HtOwnedCodeBlockBatchJob, HtOwnedSubBandPlan, J2kDirectBandId,
21    J2kDirectColorPlan, J2kDirectGrayscalePlan, J2kDirectGrayscaleStep, J2kDirectIdwtStep,
22    J2kDirectRgbaPlan, J2kDirectStoreStep, J2kOwnedCodeBlockBatchJob, J2kOwnedSubBandPlan, J2kRect,
23    J2kReferencedClassicPlan, J2kReferencedHtj2kPlan, J2kReferencedImageGeometry,
24    J2kReferencedPayloadRecordSpan, J2kReferencedTileGeometry, J2kReferencedTilePlan,
25    J2kWaveletTransform, DEFAULT_MAX_CODEC_BYTES, DEFAULT_MAX_DECODE_BYTES,
26};
27
28mod dispatch;
29pub use dispatch::{
30    CpuOnlyJ2kEncodeStageAccelerator, J2kDeinterleaveMctToF32Job, J2kDeinterleaveToF32Job,
31    J2kEncodeContext, J2kEncodeDispatchReport, J2kEncodeStageAccelerator, J2kEncodeStageError,
32    J2kEncodeStageErrorKind, J2kEncodeStageResult, J2kHtj2kTileEncodeJob,
33};
34
35#[doc(hidden)]
36pub mod encode_geometry;
37
38/// Sort packet descriptors in the requested progression order.
39pub fn sort_packet_descriptors_for_progression(
40    descriptors: &mut [J2kPacketizationPacketDescriptor],
41    progression_order: J2kPacketizationProgressionOrder,
42) {
43    encode_geometry::sort_packet_descriptors_for_progression(descriptors, progression_order);
44}
45
46mod limits;
47#[doc(hidden)]
48pub use limits::{MAX_JPEG2000_PART1_COMPONENTS, MAX_JPEG2000_PART1_SAMPLE_BIT_DEPTH};
49mod move_only;
50
51mod packetization;
52pub use packetization::{
53    J2kPacketizationBlockCodingMode, J2kPacketizationCodeBlock, J2kPacketizationEncodeJob,
54    J2kPacketizationPacketDescriptor, J2kPacketizationProgressionOrder, J2kPacketizationResolution,
55    J2kPacketizationSubband,
56};
57
58mod prepared_plan;
59pub use prepared_plan::{
60    PrecomputedHtj2k53Component, PrecomputedHtj2k53Image, PrecomputedHtj2k97Component,
61    PrecomputedHtj2k97Image, PreencodedHtj2k97CodeBlock, PreencodedHtj2k97CompactCodeBlock,
62    PreencodedHtj2k97CompactComponent, PreencodedHtj2k97CompactImage,
63    PreencodedHtj2k97CompactResolution, PreencodedHtj2k97CompactSubband,
64    PreencodedHtj2k97Component, PreencodedHtj2k97Image, PreencodedHtj2k97Resolution,
65    PreencodedHtj2k97Subband, PrequantizedHtj2k97CodeBlock, PrequantizedHtj2k97Component,
66    PrequantizedHtj2k97Image, PrequantizedHtj2k97Resolution, PrequantizedHtj2k97Subband,
67};
68
69mod resident;
70#[doc(hidden)]
71pub use resident::{
72    J2kResidentEncodeInput, J2kResidentEncodeInputError, J2kResidentHtj2kTileEncodeJob,
73};
74mod tier1;
75pub use tier1::{
76    EncodedHtJ2kCodeBlock, EncodedJ2kCodeBlock, J2kCodeBlockSegment, J2kCodeBlockStyle,
77    J2kHtCodeBlockEncodeJob, J2kHtSubbandEncodeJob, J2kSubBandType, J2kTier1CodeBlockEncodeJob,
78};
79
80mod transform;
81pub use transform::{
82    IrreversibleQuantizationStep, IrreversibleQuantizationSubbandScales, J2kForwardDwt53Job,
83    J2kForwardDwt53Level, J2kForwardDwt53Output, J2kForwardDwt97Job, J2kForwardDwt97Level,
84    J2kForwardDwt97Output, J2kForwardIctJob, J2kForwardRctJob, J2kQuantizeSubbandJob,
85};