JuicyPixels-3.3.9: Picture loading/serialization (in png, jpeg, bitmap, gif, tga, tiff and radiance)

Safe Haskell | Safe-Inferred
Language | Haskell2010

Codec.Picture.Jpg.Internal.DefaultTable

Description

Module used by the jpeg decoder internally, shouldn't be used in user code.

Synopsis

- data DctComponent
  - = DcComponent
  - | AcComponent
- data HuffmanTree
  - = Branch HuffmanTree HuffmanTree
  - | Leaf Word8
  - | Empty
- type HuffmanTable = [[Word8]]
- type HuffmanPackedTree = Vector Word16
- type MacroBlock a = Vector a
- type QuantificationTable = MacroBlock Int16
- type HuffmanWriterCode = Vector (Word8, Word16)
- scaleQuantisationMatrix :: Int -> QuantificationTable -> QuantificationTable
- makeMacroBlock :: Storable a => [a] -> MacroBlock a
- makeInverseTable :: HuffmanTree -> HuffmanWriterCode
- buildHuffmanTree :: [[Word8]] -> HuffmanTree
- packHuffmanTree :: HuffmanTree -> HuffmanPackedTree
- huffmanPackedDecode :: HuffmanPackedTree -> BoolReader s Word8
- defaultChromaQuantizationTable :: QuantificationTable
- defaultLumaQuantizationTable :: QuantificationTable
- defaultAcChromaHuffmanTree :: HuffmanTree
- defaultAcChromaHuffmanTable :: HuffmanTable
- defaultAcLumaHuffmanTree :: HuffmanTree
- defaultAcLumaHuffmanTable :: HuffmanTable
- defaultDcChromaHuffmanTree :: HuffmanTree
- defaultDcChromaHuffmanTable :: HuffmanTable
- defaultDcLumaHuffmanTree :: HuffmanTree
- defaultDcLumaHuffmanTable :: HuffmanTable

# Documentation

data DctComponent Source #

Enumeration used to search in the tables for different components.

Constructors

DcComponent |
AcComponent |

#### Instances

Instances details

Generic DctComponent Source # |
Instance details Defined in Codec.Picture.Jpg.Internal.DefaultTable Associated Types type Rep DctComponent :: Type -> Type Source # Methods from :: DctComponent -> Rep DctComponent x Source # to :: Rep DctComponent x -> DctComponent Source #
Show DctComponent Source # |
Instance details Defined in Codec.Picture.Jpg.Internal.DefaultTable Methods showsPrec :: Int -> DctComponent -> ShowS Source # show :: DctComponent -> String Source # showList :: [DctComponent] -> ShowS Source #
NFData DctComponent Source # |
Instance details Defined in Codec.Picture.Jpg.Internal.DefaultTable Methods rnf :: DctComponent -> () Source #
Eq DctComponent Source # |
Instance details Defined in Codec.Picture.Jpg.Internal.DefaultTable Methods (==) :: DctComponent -> DctComponent -> Bool Source # (/=) :: DctComponent -> DctComponent -> Bool Source #
type Rep DctComponent Source # |
Instance details Defined in Codec.Picture.Jpg.Internal.DefaultTable type Rep DctComponent = D1 ('MetaData "DctComponent" "Codec.Picture.Jpg.Internal.DefaultTable" "JuicyPixels-3.3.9-JPz5fUHifnsHVAcPzmiOBY" 'False) (C1 ('MetaCons "DcComponent" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "AcComponent" 'PrefixI 'False) (U1 :: Type -> Type))

data HuffmanTree Source #

Tree storing the code used for huffman encoding.

Constructors

Branch HuffmanTree HuffmanTree | If bit is 0 take the first subtree, if 1, the right.
Leaf Word8 | We should output the value
Empty | no value present

#### Instances

Instances details

Show HuffmanTree Source # |
Instance details Defined in Codec.Picture.Jpg.Internal.DefaultTable Methods showsPrec :: Int -> HuffmanTree -> ShowS Source # show :: HuffmanTree -> String Source # showList :: [HuffmanTree] -> ShowS Source #
Eq HuffmanTree Source # |
Instance details Defined in Codec.Picture.Jpg.Internal.DefaultTable Methods (==) :: HuffmanTree -> HuffmanTree -> Bool Source # (/=) :: HuffmanTree -> HuffmanTree -> Bool Source #

type HuffmanTable = [[Word8]] Source #

type HuffmanPackedTree = Vector Word16 Source #

type MacroBlock a = Vector a Source #

Represent a compact array of 8 * 8 values. The size is not guarenteed by type system, but if makeMacroBlock is used, everything should be fine size-wise

type QuantificationTable = MacroBlock Int16 Source #

type HuffmanWriterCode = Vector (Word8, Word16) Source #

scaleQuantisationMatrix :: Int -> QuantificationTable -> QuantificationTable Source #

makeMacroBlock :: Storable a => [a] -> MacroBlock a Source #

Helper function to create pure macro block of the good size.

makeInverseTable :: HuffmanTree -> HuffmanWriterCode Source #

buildHuffmanTree :: [[Word8]] -> HuffmanTree Source #

Transform parsed coefficients from the jpeg header to a tree which can be used to decode data.

packHuffmanTree :: HuffmanTree -> HuffmanPackedTree Source #

huffmanPackedDecode :: HuffmanPackedTree -> BoolReader s Word8 Source #

defaultChromaQuantizationTable :: QuantificationTable Source #

defaultLumaQuantizationTable :: QuantificationTable Source #

defaultAcChromaHuffmanTree :: HuffmanTree Source #

defaultAcChromaHuffmanTable :: HuffmanTable Source #

defaultAcLumaHuffmanTree :: HuffmanTree Source #

defaultAcLumaHuffmanTable :: HuffmanTable Source #

From the Table K.5 of ITU-81 (p154)

defaultDcChromaHuffmanTree :: HuffmanTree Source #

defaultDcChromaHuffmanTable :: HuffmanTable Source #

From the Table K.4 of ITU-81 (p153)

defaultDcLumaHuffmanTree :: HuffmanTree Source #

defaultDcLumaHuffmanTable :: HuffmanTable Source #

From the Table K.3 of ITU-81 (p153)