def jpeg.block.decode
gralha-jpeg-decode@0.1.0.1 · jpeg.bend:400
import gralha-jpeg-decode@0.1.0.1/jpeg.bend as Jpeg
import Base
import gralha-text-scan@0.1.0.1/scan.bend as U
400def jpeg.block.decode(+component: JPEGComponent, +tables: List<&2, JPEGHuff>, offset: U32, +stream: JPEGStream) -> JPEGBlock:
401 JPEGComponent{id, h, v, quant, dc, ac, predictor, bw, bh, coefficients, samples} = component
402 JPEGStream{data, position, word, count, JPEGSpectral{start, end, high, low, eob}, valid} = stream
403 +base = offset
404 U.branch(JPEGBlock, U32.is_eq(start, 0) && U32.is_eq(end, 63),
405 _ => jpeg.block.ac(1, jpeg.huff.find(tables, ac, True{}), base, jpeg.block.dc(jpeg.huff.read(jpeg.huff.find(tables, dc, False{}), stream), coefficients, predictor, base)),
406 _ => jpeg.progressive.decode(component, tables, base, stream))