webp

package
v1.7.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 26, 2024 License: BSD-3-Clause Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
const (
	B_DC_PRED  = 0 // 4x4 modes
	B_TM_PRED  = 1
	B_VE_PRED  = 2
	B_HE_PRED  = 3
	B_RD_PRED  = 4
	B_VR_PRED  = 5
	B_LD_PRED  = 6
	B_VL_PRED  = 7
	B_HD_PRED  = 8
	B_HU_PRED  = 9
	NUM_BMODES = 10 // = 10

	// Luma16 or UV modes
	DC_PRED        = 0
	V_PRED         = 2
	H_PRED         = 3
	TM_PRED        = 1
	B_PRED         = 10 // refined I4x4 mode
	NUM_PRED_MODES = 4

	// special modes
	B_DC_PRED_NOTOP     = 4
	B_DC_PRED_NOLEFT    = 5
	B_DC_PRED_NOTOPLEFT = 6
	NUM_B_DC_MODES      = 7
)

intra prediction modes

View Source
const (
	MB_FEATURE_TREE_PROBS = 3
	NUM_MB_SEGMENTS       = 4
	NUM_REF_LF_DELTAS     = 4
	NUM_MODE_LF_DELTAS    = 4 // I4x4, ZERO, *, SPLIT
	MAX_NUM_PARTITIONS    = 8
	// Probabilities
	NUM_TYPES  = 4 // 0: i16-AC,  1: i16-DC,  2:chroma-AC,  3:i4-AC
	NUM_BANDS  = 8
	NUM_CTX    = 3
	NUM_PROBAS = 11
)
View Source
const (
	READ_DATA = 0
	READ_HDR  = 1
	READ_DIM  = 2
)
View Source
const (
	WEBP_FILTER_NONE       = 0
	WEBP_FILTER_HORIZONTAL = 1
	WEBP_FILTER_VERTICAL   = 2
	WEBP_FILTER_GRADIENT   = 3
	WEBP_FILTER_LAST       = 4 // end marker
	WEBP_FILTER_BEST       = 5 // meta-types
	WEBP_FILTER_FAST       = 6
)
View Source
const (
	YUV_FIX  = 16 // fixed-point precision for RGB->YUV
	YUV_HALF = 32768

	YUV_FIX2  = 6 // fixed-point precision for YUV->RGB
	YUV_MASK2 = 16383
)
View Source
const (
	MAX_LF_LEVELS      = 64 // Maximum loop filter level
	MAX_VARIABLE_LEVEL = 67 // last (inclusive) level with variable cost
	MAX_LEVEL          = 2047
)
View Source
const (
	RD_OPT_NONE        = 0 // no rd-opt
	RD_OPT_BASIC       = 1 // basic scoring (no trellis)
	RD_OPT_TRELLIS     = 2 // perform trellis-quant on the final decision only
	RD_OPT_TRELLIS_ALL = 3
)
View Source
const (
	NOT_OK = 0 // object is unusable
	OK     = 1 // ready to work
	WORK   = 2
)

State of the worker thread object

View Source
const (
	MODE_RGB       = 0
	MODE_RGBA      = 1
	MODE_BGR       = 2
	MODE_BGRA      = 3
	MODE_ARGB      = 4
	MODE_RGBA_4444 = 5
	MODE_RGB_565   = 6
	// RGB-premultiplied transparent modes (alpha value is preserved)
	MODE_rgbA      = 7
	MODE_bgrA      = 8
	MODE_Argb      = 9
	MODE_rgbA_4444 = 10
	// YUV modes must come after RGB ones.
	MODE_YUV  = 11
	MODE_YUVA = 12 // yuv 4:2:0
	MODE_LAST = 13
)
View Source
const (
	VP8_STATUS_OK                  = 0
	VP8_STATUS_OUT_OF_MEMORY       = 1
	VP8_STATUS_INVALID_PARAM       = 2
	VP8_STATUS_BITSTREAM_ERROR     = 3
	VP8_STATUS_UNSUPPORTED_FEATURE = 4
	VP8_STATUS_SUSPENDED           = 5
	VP8_STATUS_USER_ABORT          = 6
	VP8_STATUS_NOT_ENOUGH_DATA     = 7
)
View Source
const (
	WEBP_PRESET_DEFAULT = 0 // default preset.
	WEBP_PRESET_PICTURE = 1 // digital picture, like portrait, inner shot
	WEBP_PRESET_PHOTO   = 2 // outdoor photograph, with natural lighting
	WEBP_PRESET_DRAWING = 3 // hand or line drawing, with high-contrast details
	WEBP_PRESET_ICON    = 4 // small-sized colorful images
	WEBP_PRESET_TEXT    = 5
)

Enumerate some predefined settings for WebPConfig, depending on the type of source picture. These presets are used when calling WebPConfigPreset().

View Source
const (
	// chroma sampling
	WEBP_YUV420        = 0 // 4:2:0
	WEBP_YUV420A       = 4 // alpha channel variant
	WEBP_CSP_UV_MASK   = 3 // bit-mask to get the UV sampling factors
	WEBP_CSP_ALPHA_BIT = 4
)

Color spaces.

View Source
const (
	VP8_ENC_OK                            = 0
	VP8_ENC_ERROR_OUT_OF_MEMORY           = 1  // memory error allocating objects
	VP8_ENC_ERROR_BITSTREAM_OUT_OF_MEMORY = 2  // memory error while flushing bits
	VP8_ENC_ERROR_NULL_PARAMETER          = 3  // a pointer parameter is NULL
	VP8_ENC_ERROR_INVALID_CONFIGURATION   = 4  // configuration is invalid
	VP8_ENC_ERROR_BAD_DIMENSION           = 5  // picture has invalid width/height
	VP8_ENC_ERROR_PARTITION0_OVERFLOW     = 6  // partition is bigger than 512k
	VP8_ENC_ERROR_PARTITION_OVERFLOW      = 7  // partition is bigger than 16M
	VP8_ENC_ERROR_BAD_WRITE               = 8  // error while flushing bytes
	VP8_ENC_ERROR_FILE_TOO_BIG            = 9  // file is bigger than 4G
	VP8_ENC_ERROR_USER_ABORT              = 10 // abort request by user
	VP8_ENC_ERROR_LAST                    = 11
)

Encoding error conditions.

View Source
const (
	WEBP_HINT_DEFAULT = 0 // default preset.
	WEBP_HINT_PICTURE = 1 // digital picture, like portrait, inner shot
	WEBP_HINT_PHOTO   = 2 // outdoor photograph, with natural lighting
	WEBP_HINT_GRAPH   = 3 // Discrete tone image (graph, map-tile etc).
	WEBP_HINT_LAST    = 4
)

Image characteristics hint for the underlying encoder.

View Source
const (
	PREDICTOR_TRANSFORM      = 0
	CROSS_COLOR_TRANSFORM    = 1
	SUBTRACT_GREEN           = 2
	COLOR_INDEXING_TRANSFORM = 3
)

to be read is a transform. in a bitstream.

View Source
const (
	ANIMATION_FLAG = 2
	XMP_FLAG       = 4
	EXIF_FLAG      = 8
	ALPHA_FLAG     = 16
	ICCP_FLAG      = 32

	ALL_VALID_FLAGS = 62
)

VP8X Feature Flags.

View Source
const (
	WEBP_MUX_DISPOSE_NONE       = 0 // Do not dispose.
	WEBP_MUX_DISPOSE_BACKGROUND = 1
)

Dispose method (animation only). Indicates how the area used by the current frame is to be treated before rendering the next frame on the canvas.

View Source
const (
	WEBP_MUX_BLEND    = 0 // Blend.
	WEBP_MUX_NO_BLEND = 1
)

Blend operation (animation only). Indicates how transparent pixels of the current frame are blended with those of the previous canvas.

View Source
const (
	FP_NAN       = 0
	FP_INFINITE  = 1
	FP_ZERO      = 2
	FP_SUBNORMAL = 3
	FP_NORMAL    = 4
)

All floating-point numbers can be put in one of these categories.

View Source
const (
	STATE_WEBP_HEADER = 0 // All the data before that of the VP8/VP8L chunk.
	STATE_VP8_HEADER  = 1 // The VP8 Frame header (within the VP8 chunk).
	STATE_VP8_PARTS0  = 2
	STATE_VP8_DATA    = 3
	STATE_VP8L_HEADER = 4
	STATE_VP8L_DATA   = 5
	STATE_DONE        = 6
	STATE_ERROR       = 7
)

Decoding states. State normally flows as: WEBP_HEADER->VP8_HEADER->VP8_PARTS0->VP8_DATA->DONE for a lossy image, and WEBP_HEADER->VP8L_HEADER->VP8L_DATA->DONE for a lossless image. If there is any error the decoder goes into state ERROR.

View Source
const (
	MEM_MODE_NONE   = 0
	MEM_MODE_APPEND = 1
	MEM_MODE_MAP    = 2
)

Operating state for the MemBuffer

View Source
const (
	TYPE_I16_AC   = 0
	TYPE_I16_DC   = 1
	TYPE_CHROMA_A = 2
	TYPE_I4_AC    = 3
)

Coefficient type.

View Source
const (
	GREEN = 0
	RED   = 1
	BLUE  = 2
	ALPHA = 3
	DIST  = 4
)

-----------------------------------------------------------------------------

Five Huffman codes are used at each meta code:
1. green + length prefix codes + color cache codes,
2. alpha,
3. red,
4. blue, and,
5. distance prefix codes.

Variables

View Source
var CAPI = map[string]struct{}{}/* 521 elements not displayed */
View Source
var CoeffsProba0 = [4][8][3][11]uint8{{
	{{uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
		{uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
		{uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
	},
	{{uint8(253), uint8(136), uint8(254), uint8(255), uint8(228), uint8(219), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
		{uint8(189), uint8(129), uint8(242), uint8(255), uint8(227), uint8(213), uint8(255), uint8(219), uint8(128), uint8(128), uint8(128)},
		{uint8(106), uint8(126), uint8(227), uint8(252), uint8(214), uint8(209), uint8(255), uint8(255), uint8(128), uint8(128), uint8(128)},
	},
	{{uint8(1), uint8(98), uint8(248), uint8(255), uint8(236), uint8(226), uint8(255), uint8(255), uint8(128), uint8(128), uint8(128)},
		{uint8(181), uint8(133), uint8(238), uint8(254), uint8(221), uint8(234), uint8(255), uint8(154), uint8(128), uint8(128), uint8(128)},
		{uint8(78), uint8(134), uint8(202), uint8(247), uint8(198), uint8(180), uint8(255), uint8(219), uint8(128), uint8(128), uint8(128)},
	},
	{{uint8(1), uint8(185), uint8(249), uint8(255), uint8(243), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
		{uint8(184), uint8(150), uint8(247), uint8(255), uint8(236), uint8(224), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
		{uint8(77), uint8(110), uint8(216), uint8(255), uint8(236), uint8(230), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
	},
	{{uint8(1), uint8(101), uint8(251), uint8(255), uint8(241), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
		{uint8(170), uint8(139), uint8(241), uint8(252), uint8(236), uint8(209), uint8(255), uint8(255), uint8(128), uint8(128), uint8(128)},
		{uint8(37), uint8(116), uint8(196), uint8(243), uint8(228), uint8(255), uint8(255), uint8(255), uint8(128), uint8(128), uint8(128)},
	},
	{{uint8(1), uint8(204), uint8(254), uint8(255), uint8(245), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
		{uint8(207), uint8(160), uint8(250), uint8(255), uint8(238), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
		{uint8(102), uint8(103), uint8(231), uint8(255), uint8(211), uint8(171), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
	},
	{{uint8(1), uint8(152), uint8(252), uint8(255), uint8(240), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
		{uint8(177), uint8(135), uint8(243), uint8(255), uint8(234), uint8(225), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
		{uint8(80), uint8(129), uint8(211), uint8(255), uint8(194), uint8(224), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
	},
	{{uint8(1), uint8(1), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
		{uint8(246), uint8(1), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
		{uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
	},
},
	{
		{{uint8(198), uint8(35), uint8(237), uint8(223), uint8(193), uint8(187), uint8(162), uint8(160), uint8(145), uint8(155), uint8(62)},
			{uint8(131), uint8(45), uint8(198), uint8(221), uint8(172), uint8(176), uint8(220), uint8(157), uint8(252), uint8(221), uint8(1)},
			{uint8(68), uint8(47), uint8(146), uint8(208), uint8(149), uint8(167), uint8(221), uint8(162), uint8(255), uint8(223), uint8(128)},
		},
		{{uint8(1), uint8(149), uint8(241), uint8(255), uint8(221), uint8(224), uint8(255), uint8(255), uint8(128), uint8(128), uint8(128)},
			{uint8(184), uint8(141), uint8(234), uint8(253), uint8(222), uint8(220), uint8(255), uint8(199), uint8(128), uint8(128), uint8(128)},
			{uint8(81), uint8(99), uint8(181), uint8(242), uint8(176), uint8(190), uint8(249), uint8(202), uint8(255), uint8(255), uint8(128)},
		},
		{{uint8(1), uint8(129), uint8(232), uint8(253), uint8(214), uint8(197), uint8(242), uint8(196), uint8(255), uint8(255), uint8(128)},
			{uint8(99), uint8(121), uint8(210), uint8(250), uint8(201), uint8(198), uint8(255), uint8(202), uint8(128), uint8(128), uint8(128)},
			{uint8(23), uint8(91), uint8(163), uint8(242), uint8(170), uint8(187), uint8(247), uint8(210), uint8(255), uint8(255), uint8(128)},
		},
		{{uint8(1), uint8(200), uint8(246), uint8(255), uint8(234), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
			{uint8(109), uint8(178), uint8(241), uint8(255), uint8(231), uint8(245), uint8(255), uint8(255), uint8(128), uint8(128), uint8(128)},
			{uint8(44), uint8(130), uint8(201), uint8(253), uint8(205), uint8(192), uint8(255), uint8(255), uint8(128), uint8(128), uint8(128)},
		},
		{{uint8(1), uint8(132), uint8(239), uint8(251), uint8(219), uint8(209), uint8(255), uint8(165), uint8(128), uint8(128), uint8(128)},
			{uint8(94), uint8(136), uint8(225), uint8(251), uint8(218), uint8(190), uint8(255), uint8(255), uint8(128), uint8(128), uint8(128)},
			{uint8(22), uint8(100), uint8(174), uint8(245), uint8(186), uint8(161), uint8(255), uint8(199), uint8(128), uint8(128), uint8(128)},
		},
		{{uint8(1), uint8(182), uint8(249), uint8(255), uint8(232), uint8(235), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
			{uint8(124), uint8(143), uint8(241), uint8(255), uint8(227), uint8(234), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
			{uint8(35), uint8(77), uint8(181), uint8(251), uint8(193), uint8(211), uint8(255), uint8(205), uint8(128), uint8(128), uint8(128)},
		},
		{{uint8(1), uint8(157), uint8(247), uint8(255), uint8(236), uint8(231), uint8(255), uint8(255), uint8(128), uint8(128), uint8(128)},
			{uint8(121), uint8(141), uint8(235), uint8(255), uint8(225), uint8(227), uint8(255), uint8(255), uint8(128), uint8(128), uint8(128)},
			{uint8(45), uint8(99), uint8(188), uint8(251), uint8(195), uint8(217), uint8(255), uint8(224), uint8(128), uint8(128), uint8(128)},
		},
		{{uint8(1), uint8(1), uint8(251), uint8(255), uint8(213), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
			{uint8(203), uint8(1), uint8(248), uint8(255), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
			{uint8(137), uint8(1), uint8(177), uint8(255), uint8(224), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
		},
	},
	{
		{{uint8(253), uint8(9), uint8(248), uint8(251), uint8(207), uint8(208), uint8(255), uint8(192), uint8(128), uint8(128), uint8(128)},
			{uint8(175), uint8(13), uint8(224), uint8(243), uint8(193), uint8(185), uint8(249), uint8(198), uint8(255), uint8(255), uint8(128)},
			{uint8(73), uint8(17), uint8(171), uint8(221), uint8(161), uint8(179), uint8(236), uint8(167), uint8(255), uint8(234), uint8(128)},
		},
		{{uint8(1), uint8(95), uint8(247), uint8(253), uint8(212), uint8(183), uint8(255), uint8(255), uint8(128), uint8(128), uint8(128)},
			{uint8(239), uint8(90), uint8(244), uint8(250), uint8(211), uint8(209), uint8(255), uint8(255), uint8(128), uint8(128), uint8(128)},
			{uint8(155), uint8(77), uint8(195), uint8(248), uint8(188), uint8(195), uint8(255), uint8(255), uint8(128), uint8(128), uint8(128)},
		},
		{{uint8(1), uint8(24), uint8(239), uint8(251), uint8(218), uint8(219), uint8(255), uint8(205), uint8(128), uint8(128), uint8(128)},
			{uint8(201), uint8(51), uint8(219), uint8(255), uint8(196), uint8(186), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
			{uint8(69), uint8(46), uint8(190), uint8(239), uint8(201), uint8(218), uint8(255), uint8(228), uint8(128), uint8(128), uint8(128)},
		},
		{{uint8(1), uint8(191), uint8(251), uint8(255), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
			{uint8(223), uint8(165), uint8(249), uint8(255), uint8(213), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
			{uint8(141), uint8(124), uint8(248), uint8(255), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
		},
		{{uint8(1), uint8(16), uint8(248), uint8(255), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
			{uint8(190), uint8(36), uint8(230), uint8(255), uint8(236), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
			{uint8(149), uint8(1), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
		},
		{{uint8(1), uint8(226), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
			{uint8(247), uint8(192), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
			{uint8(240), uint8(128), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
		},
		{{uint8(1), uint8(134), uint8(252), uint8(255), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
			{uint8(213), uint8(62), uint8(250), uint8(255), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
			{uint8(55), uint8(93), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
		},
		{{uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
			{uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
			{uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
		},
	},
	{
		{{uint8(202), uint8(24), uint8(213), uint8(235), uint8(186), uint8(191), uint8(220), uint8(160), uint8(240), uint8(175), uint8(255)},
			{uint8(126), uint8(38), uint8(182), uint8(232), uint8(169), uint8(184), uint8(228), uint8(174), uint8(255), uint8(187), uint8(128)},
			{uint8(61), uint8(46), uint8(138), uint8(219), uint8(151), uint8(178), uint8(240), uint8(170), uint8(255), uint8(216), uint8(128)},
		},
		{{uint8(1), uint8(112), uint8(230), uint8(250), uint8(199), uint8(191), uint8(247), uint8(159), uint8(255), uint8(255), uint8(128)},
			{uint8(166), uint8(109), uint8(228), uint8(252), uint8(211), uint8(215), uint8(255), uint8(174), uint8(128), uint8(128), uint8(128)},
			{uint8(39), uint8(77), uint8(162), uint8(232), uint8(172), uint8(180), uint8(245), uint8(178), uint8(255), uint8(255), uint8(128)},
		},
		{{uint8(1), uint8(52), uint8(220), uint8(246), uint8(198), uint8(199), uint8(249), uint8(220), uint8(255), uint8(255), uint8(128)},
			{uint8(124), uint8(74), uint8(191), uint8(243), uint8(183), uint8(193), uint8(250), uint8(221), uint8(255), uint8(255), uint8(128)},
			{uint8(24), uint8(71), uint8(130), uint8(219), uint8(154), uint8(170), uint8(243), uint8(182), uint8(255), uint8(255), uint8(128)},
		},
		{{uint8(1), uint8(182), uint8(225), uint8(249), uint8(219), uint8(240), uint8(255), uint8(224), uint8(128), uint8(128), uint8(128)},
			{uint8(149), uint8(150), uint8(226), uint8(252), uint8(216), uint8(205), uint8(255), uint8(171), uint8(128), uint8(128), uint8(128)},
			{uint8(28), uint8(108), uint8(170), uint8(242), uint8(183), uint8(194), uint8(254), uint8(223), uint8(255), uint8(255), uint8(128)},
		},
		{{uint8(1), uint8(81), uint8(230), uint8(252), uint8(204), uint8(203), uint8(255), uint8(192), uint8(128), uint8(128), uint8(128)},
			{uint8(123), uint8(102), uint8(209), uint8(247), uint8(188), uint8(196), uint8(255), uint8(233), uint8(128), uint8(128), uint8(128)},
			{uint8(20), uint8(95), uint8(153), uint8(243), uint8(164), uint8(173), uint8(255), uint8(203), uint8(128), uint8(128), uint8(128)},
		},
		{{uint8(1), uint8(222), uint8(248), uint8(255), uint8(216), uint8(213), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
			{uint8(168), uint8(175), uint8(246), uint8(252), uint8(235), uint8(205), uint8(255), uint8(255), uint8(128), uint8(128), uint8(128)},
			{uint8(47), uint8(116), uint8(215), uint8(255), uint8(211), uint8(212), uint8(255), uint8(255), uint8(128), uint8(128), uint8(128)},
		},
		{{uint8(1), uint8(121), uint8(236), uint8(253), uint8(212), uint8(214), uint8(255), uint8(255), uint8(128), uint8(128), uint8(128)},
			{uint8(141), uint8(84), uint8(213), uint8(252), uint8(201), uint8(202), uint8(255), uint8(219), uint8(128), uint8(128), uint8(128)},
			{uint8(42), uint8(80), uint8(160), uint8(240), uint8(162), uint8(185), uint8(255), uint8(205), uint8(128), uint8(128), uint8(128)},
		},
		{{uint8(1), uint8(1), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
			{uint8(244), uint8(1), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
			{uint8(238), uint8(1), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
		},
	},

} /* tree_dec.c:45:3 */

Paragraph 13.5

View Source
var CoeffsUpdateProba = [4][8][3][11]uint8{{
	{{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
	},
	{{uint8(176), uint8(246), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		{uint8(223), uint8(241), uint8(252), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		{uint8(249), uint8(253), uint8(253), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
	},
	{{uint8(255), uint8(244), uint8(252), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		{uint8(234), uint8(254), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		{uint8(253), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
	},
	{{uint8(255), uint8(246), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		{uint8(239), uint8(253), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		{uint8(254), uint8(255), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
	},
	{{uint8(255), uint8(248), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		{uint8(251), uint8(255), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
	},
	{{uint8(255), uint8(253), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		{uint8(251), uint8(254), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		{uint8(254), uint8(255), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
	},
	{{uint8(255), uint8(254), uint8(253), uint8(255), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		{uint8(250), uint8(255), uint8(254), uint8(255), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		{uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
	},
	{{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
	},
},
	{
		{{uint8(217), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(225), uint8(252), uint8(241), uint8(253), uint8(255), uint8(255), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(234), uint8(250), uint8(241), uint8(250), uint8(253), uint8(255), uint8(253), uint8(254), uint8(255), uint8(255), uint8(255)},
		},
		{{uint8(255), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(223), uint8(254), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(238), uint8(253), uint8(254), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		},
		{{uint8(255), uint8(248), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(249), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		},
		{{uint8(255), uint8(253), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(247), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		},
		{{uint8(255), uint8(253), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(252), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		},
		{{uint8(255), uint8(254), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(253), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		},
		{{uint8(255), uint8(254), uint8(253), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(250), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		},
		{{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		},
	},
	{
		{{uint8(186), uint8(251), uint8(250), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(234), uint8(251), uint8(244), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(251), uint8(251), uint8(243), uint8(253), uint8(254), uint8(255), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255)},
		},
		{{uint8(255), uint8(253), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(236), uint8(253), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(251), uint8(253), uint8(253), uint8(254), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		},
		{{uint8(255), uint8(254), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(254), uint8(254), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		},
		{{uint8(255), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(254), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		},
		{{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		},
		{{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		},
		{{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		},
		{{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		},
	},
	{
		{{uint8(248), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(250), uint8(254), uint8(252), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(248), uint8(254), uint8(249), uint8(253), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		},
		{{uint8(255), uint8(253), uint8(253), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(246), uint8(253), uint8(253), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(252), uint8(254), uint8(251), uint8(254), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		},
		{{uint8(255), uint8(254), uint8(252), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(248), uint8(254), uint8(253), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(253), uint8(255), uint8(254), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		},
		{{uint8(255), uint8(251), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(245), uint8(251), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(253), uint8(253), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		},
		{{uint8(255), uint8(251), uint8(253), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(252), uint8(253), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(255), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		},
		{{uint8(255), uint8(252), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(249), uint8(255), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(255), uint8(255), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		},
		{{uint8(255), uint8(255), uint8(253), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(250), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		},
		{{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		},
	},

} /* tree_dec.c:372:5 */
View Source
var GetCoeffs uintptr = uintptr(0) /* vp8_dec.c:35:31 */
View Source
var InitGammaTablesS_body_last_cpuinfo_used uintptr = 0 /* picture_csp_enc.c:185:1 */
View Source
var InitGammaTables_body_last_cpuinfo_used uintptr = 0 /* picture_csp_enc.c:93:1 */
View Source
var InitGetCoeffs_body_last_cpuinfo_used uintptr = 0 /* vp8_dec.c:497:1 */
View Source
var VP8AccumulateSSE uintptr /* ssim.c:137:22: */
View Source
var VP8Cat3 = [3]uint8{uint8(173), uint8(148), uint8(140)} /* frame_enc.c:88:15 */
View Source
var VP8Cat4 = [4]uint8{uint8(176), uint8(155), uint8(140), uint8(135)} /* frame_enc.c:89:15 */
View Source
var VP8Cat5 = [5]uint8{uint8(180), uint8(157), uint8(141), uint8(134), uint8(130)} /* frame_enc.c:90:15 */
View Source
var VP8Cat6 = [11]uint8{uint8(254), uint8(254), uint8(243), uint8(230), uint8(196), uint8(177), uint8(153), uint8(140), uint8(133), uint8(130), uint8(129)} /* frame_enc.c:91:15 */
View Source
var VP8CoeffsProba0 = [4][8][3][11]uint8{{
	{{uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
		{uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
		{uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
	},
	{{uint8(253), uint8(136), uint8(254), uint8(255), uint8(228), uint8(219), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
		{uint8(189), uint8(129), uint8(242), uint8(255), uint8(227), uint8(213), uint8(255), uint8(219), uint8(128), uint8(128), uint8(128)},
		{uint8(106), uint8(126), uint8(227), uint8(252), uint8(214), uint8(209), uint8(255), uint8(255), uint8(128), uint8(128), uint8(128)},
	},
	{{uint8(1), uint8(98), uint8(248), uint8(255), uint8(236), uint8(226), uint8(255), uint8(255), uint8(128), uint8(128), uint8(128)},
		{uint8(181), uint8(133), uint8(238), uint8(254), uint8(221), uint8(234), uint8(255), uint8(154), uint8(128), uint8(128), uint8(128)},
		{uint8(78), uint8(134), uint8(202), uint8(247), uint8(198), uint8(180), uint8(255), uint8(219), uint8(128), uint8(128), uint8(128)},
	},
	{{uint8(1), uint8(185), uint8(249), uint8(255), uint8(243), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
		{uint8(184), uint8(150), uint8(247), uint8(255), uint8(236), uint8(224), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
		{uint8(77), uint8(110), uint8(216), uint8(255), uint8(236), uint8(230), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
	},
	{{uint8(1), uint8(101), uint8(251), uint8(255), uint8(241), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
		{uint8(170), uint8(139), uint8(241), uint8(252), uint8(236), uint8(209), uint8(255), uint8(255), uint8(128), uint8(128), uint8(128)},
		{uint8(37), uint8(116), uint8(196), uint8(243), uint8(228), uint8(255), uint8(255), uint8(255), uint8(128), uint8(128), uint8(128)},
	},
	{{uint8(1), uint8(204), uint8(254), uint8(255), uint8(245), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
		{uint8(207), uint8(160), uint8(250), uint8(255), uint8(238), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
		{uint8(102), uint8(103), uint8(231), uint8(255), uint8(211), uint8(171), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
	},
	{{uint8(1), uint8(152), uint8(252), uint8(255), uint8(240), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
		{uint8(177), uint8(135), uint8(243), uint8(255), uint8(234), uint8(225), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
		{uint8(80), uint8(129), uint8(211), uint8(255), uint8(194), uint8(224), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
	},
	{{uint8(1), uint8(1), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
		{uint8(246), uint8(1), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
		{uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
	},
},
	{
		{{uint8(198), uint8(35), uint8(237), uint8(223), uint8(193), uint8(187), uint8(162), uint8(160), uint8(145), uint8(155), uint8(62)},
			{uint8(131), uint8(45), uint8(198), uint8(221), uint8(172), uint8(176), uint8(220), uint8(157), uint8(252), uint8(221), uint8(1)},
			{uint8(68), uint8(47), uint8(146), uint8(208), uint8(149), uint8(167), uint8(221), uint8(162), uint8(255), uint8(223), uint8(128)},
		},
		{{uint8(1), uint8(149), uint8(241), uint8(255), uint8(221), uint8(224), uint8(255), uint8(255), uint8(128), uint8(128), uint8(128)},
			{uint8(184), uint8(141), uint8(234), uint8(253), uint8(222), uint8(220), uint8(255), uint8(199), uint8(128), uint8(128), uint8(128)},
			{uint8(81), uint8(99), uint8(181), uint8(242), uint8(176), uint8(190), uint8(249), uint8(202), uint8(255), uint8(255), uint8(128)},
		},
		{{uint8(1), uint8(129), uint8(232), uint8(253), uint8(214), uint8(197), uint8(242), uint8(196), uint8(255), uint8(255), uint8(128)},
			{uint8(99), uint8(121), uint8(210), uint8(250), uint8(201), uint8(198), uint8(255), uint8(202), uint8(128), uint8(128), uint8(128)},
			{uint8(23), uint8(91), uint8(163), uint8(242), uint8(170), uint8(187), uint8(247), uint8(210), uint8(255), uint8(255), uint8(128)},
		},
		{{uint8(1), uint8(200), uint8(246), uint8(255), uint8(234), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
			{uint8(109), uint8(178), uint8(241), uint8(255), uint8(231), uint8(245), uint8(255), uint8(255), uint8(128), uint8(128), uint8(128)},
			{uint8(44), uint8(130), uint8(201), uint8(253), uint8(205), uint8(192), uint8(255), uint8(255), uint8(128), uint8(128), uint8(128)},
		},
		{{uint8(1), uint8(132), uint8(239), uint8(251), uint8(219), uint8(209), uint8(255), uint8(165), uint8(128), uint8(128), uint8(128)},
			{uint8(94), uint8(136), uint8(225), uint8(251), uint8(218), uint8(190), uint8(255), uint8(255), uint8(128), uint8(128), uint8(128)},
			{uint8(22), uint8(100), uint8(174), uint8(245), uint8(186), uint8(161), uint8(255), uint8(199), uint8(128), uint8(128), uint8(128)},
		},
		{{uint8(1), uint8(182), uint8(249), uint8(255), uint8(232), uint8(235), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
			{uint8(124), uint8(143), uint8(241), uint8(255), uint8(227), uint8(234), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
			{uint8(35), uint8(77), uint8(181), uint8(251), uint8(193), uint8(211), uint8(255), uint8(205), uint8(128), uint8(128), uint8(128)},
		},
		{{uint8(1), uint8(157), uint8(247), uint8(255), uint8(236), uint8(231), uint8(255), uint8(255), uint8(128), uint8(128), uint8(128)},
			{uint8(121), uint8(141), uint8(235), uint8(255), uint8(225), uint8(227), uint8(255), uint8(255), uint8(128), uint8(128), uint8(128)},
			{uint8(45), uint8(99), uint8(188), uint8(251), uint8(195), uint8(217), uint8(255), uint8(224), uint8(128), uint8(128), uint8(128)},
		},
		{{uint8(1), uint8(1), uint8(251), uint8(255), uint8(213), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
			{uint8(203), uint8(1), uint8(248), uint8(255), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
			{uint8(137), uint8(1), uint8(177), uint8(255), uint8(224), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
		},
	},
	{
		{{uint8(253), uint8(9), uint8(248), uint8(251), uint8(207), uint8(208), uint8(255), uint8(192), uint8(128), uint8(128), uint8(128)},
			{uint8(175), uint8(13), uint8(224), uint8(243), uint8(193), uint8(185), uint8(249), uint8(198), uint8(255), uint8(255), uint8(128)},
			{uint8(73), uint8(17), uint8(171), uint8(221), uint8(161), uint8(179), uint8(236), uint8(167), uint8(255), uint8(234), uint8(128)},
		},
		{{uint8(1), uint8(95), uint8(247), uint8(253), uint8(212), uint8(183), uint8(255), uint8(255), uint8(128), uint8(128), uint8(128)},
			{uint8(239), uint8(90), uint8(244), uint8(250), uint8(211), uint8(209), uint8(255), uint8(255), uint8(128), uint8(128), uint8(128)},
			{uint8(155), uint8(77), uint8(195), uint8(248), uint8(188), uint8(195), uint8(255), uint8(255), uint8(128), uint8(128), uint8(128)},
		},
		{{uint8(1), uint8(24), uint8(239), uint8(251), uint8(218), uint8(219), uint8(255), uint8(205), uint8(128), uint8(128), uint8(128)},
			{uint8(201), uint8(51), uint8(219), uint8(255), uint8(196), uint8(186), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
			{uint8(69), uint8(46), uint8(190), uint8(239), uint8(201), uint8(218), uint8(255), uint8(228), uint8(128), uint8(128), uint8(128)},
		},
		{{uint8(1), uint8(191), uint8(251), uint8(255), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
			{uint8(223), uint8(165), uint8(249), uint8(255), uint8(213), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
			{uint8(141), uint8(124), uint8(248), uint8(255), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
		},
		{{uint8(1), uint8(16), uint8(248), uint8(255), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
			{uint8(190), uint8(36), uint8(230), uint8(255), uint8(236), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
			{uint8(149), uint8(1), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
		},
		{{uint8(1), uint8(226), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
			{uint8(247), uint8(192), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
			{uint8(240), uint8(128), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
		},
		{{uint8(1), uint8(134), uint8(252), uint8(255), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
			{uint8(213), uint8(62), uint8(250), uint8(255), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
			{uint8(55), uint8(93), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
		},
		{{uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
			{uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
			{uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
		},
	},
	{
		{{uint8(202), uint8(24), uint8(213), uint8(235), uint8(186), uint8(191), uint8(220), uint8(160), uint8(240), uint8(175), uint8(255)},
			{uint8(126), uint8(38), uint8(182), uint8(232), uint8(169), uint8(184), uint8(228), uint8(174), uint8(255), uint8(187), uint8(128)},
			{uint8(61), uint8(46), uint8(138), uint8(219), uint8(151), uint8(178), uint8(240), uint8(170), uint8(255), uint8(216), uint8(128)},
		},
		{{uint8(1), uint8(112), uint8(230), uint8(250), uint8(199), uint8(191), uint8(247), uint8(159), uint8(255), uint8(255), uint8(128)},
			{uint8(166), uint8(109), uint8(228), uint8(252), uint8(211), uint8(215), uint8(255), uint8(174), uint8(128), uint8(128), uint8(128)},
			{uint8(39), uint8(77), uint8(162), uint8(232), uint8(172), uint8(180), uint8(245), uint8(178), uint8(255), uint8(255), uint8(128)},
		},
		{{uint8(1), uint8(52), uint8(220), uint8(246), uint8(198), uint8(199), uint8(249), uint8(220), uint8(255), uint8(255), uint8(128)},
			{uint8(124), uint8(74), uint8(191), uint8(243), uint8(183), uint8(193), uint8(250), uint8(221), uint8(255), uint8(255), uint8(128)},
			{uint8(24), uint8(71), uint8(130), uint8(219), uint8(154), uint8(170), uint8(243), uint8(182), uint8(255), uint8(255), uint8(128)},
		},
		{{uint8(1), uint8(182), uint8(225), uint8(249), uint8(219), uint8(240), uint8(255), uint8(224), uint8(128), uint8(128), uint8(128)},
			{uint8(149), uint8(150), uint8(226), uint8(252), uint8(216), uint8(205), uint8(255), uint8(171), uint8(128), uint8(128), uint8(128)},
			{uint8(28), uint8(108), uint8(170), uint8(242), uint8(183), uint8(194), uint8(254), uint8(223), uint8(255), uint8(255), uint8(128)},
		},
		{{uint8(1), uint8(81), uint8(230), uint8(252), uint8(204), uint8(203), uint8(255), uint8(192), uint8(128), uint8(128), uint8(128)},
			{uint8(123), uint8(102), uint8(209), uint8(247), uint8(188), uint8(196), uint8(255), uint8(233), uint8(128), uint8(128), uint8(128)},
			{uint8(20), uint8(95), uint8(153), uint8(243), uint8(164), uint8(173), uint8(255), uint8(203), uint8(128), uint8(128), uint8(128)},
		},
		{{uint8(1), uint8(222), uint8(248), uint8(255), uint8(216), uint8(213), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
			{uint8(168), uint8(175), uint8(246), uint8(252), uint8(235), uint8(205), uint8(255), uint8(255), uint8(128), uint8(128), uint8(128)},
			{uint8(47), uint8(116), uint8(215), uint8(255), uint8(211), uint8(212), uint8(255), uint8(255), uint8(128), uint8(128), uint8(128)},
		},
		{{uint8(1), uint8(121), uint8(236), uint8(253), uint8(212), uint8(214), uint8(255), uint8(255), uint8(128), uint8(128), uint8(128)},
			{uint8(141), uint8(84), uint8(213), uint8(252), uint8(201), uint8(202), uint8(255), uint8(219), uint8(128), uint8(128), uint8(128)},
			{uint8(42), uint8(80), uint8(160), uint8(240), uint8(162), uint8(185), uint8(255), uint8(205), uint8(128), uint8(128), uint8(128)},
		},
		{{uint8(1), uint8(1), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
			{uint8(244), uint8(1), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
			{uint8(238), uint8(1), uint8(255), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128), uint8(128)},
		},
	},

} /* tree_enc.c:21:3 */

Paragraph 13.5

View Source
var VP8CoeffsUpdateProba = [4][8][3][11]uint8{{
	{{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
	},
	{{uint8(176), uint8(246), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		{uint8(223), uint8(241), uint8(252), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		{uint8(249), uint8(253), uint8(253), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
	},
	{{uint8(255), uint8(244), uint8(252), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		{uint8(234), uint8(254), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		{uint8(253), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
	},
	{{uint8(255), uint8(246), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		{uint8(239), uint8(253), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		{uint8(254), uint8(255), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
	},
	{{uint8(255), uint8(248), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		{uint8(251), uint8(255), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
	},
	{{uint8(255), uint8(253), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		{uint8(251), uint8(254), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		{uint8(254), uint8(255), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
	},
	{{uint8(255), uint8(254), uint8(253), uint8(255), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		{uint8(250), uint8(255), uint8(254), uint8(255), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		{uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
	},
	{{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
	},
},
	{
		{{uint8(217), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(225), uint8(252), uint8(241), uint8(253), uint8(255), uint8(255), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(234), uint8(250), uint8(241), uint8(250), uint8(253), uint8(255), uint8(253), uint8(254), uint8(255), uint8(255), uint8(255)},
		},
		{{uint8(255), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(223), uint8(254), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(238), uint8(253), uint8(254), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		},
		{{uint8(255), uint8(248), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(249), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		},
		{{uint8(255), uint8(253), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(247), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		},
		{{uint8(255), uint8(253), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(252), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		},
		{{uint8(255), uint8(254), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(253), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		},
		{{uint8(255), uint8(254), uint8(253), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(250), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		},
		{{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		},
	},
	{
		{{uint8(186), uint8(251), uint8(250), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(234), uint8(251), uint8(244), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(251), uint8(251), uint8(243), uint8(253), uint8(254), uint8(255), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255)},
		},
		{{uint8(255), uint8(253), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(236), uint8(253), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(251), uint8(253), uint8(253), uint8(254), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		},
		{{uint8(255), uint8(254), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(254), uint8(254), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		},
		{{uint8(255), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(254), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		},
		{{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		},
		{{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		},
		{{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		},
		{{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		},
	},
	{
		{{uint8(248), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(250), uint8(254), uint8(252), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(248), uint8(254), uint8(249), uint8(253), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		},
		{{uint8(255), uint8(253), uint8(253), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(246), uint8(253), uint8(253), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(252), uint8(254), uint8(251), uint8(254), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		},
		{{uint8(255), uint8(254), uint8(252), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(248), uint8(254), uint8(253), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(253), uint8(255), uint8(254), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		},
		{{uint8(255), uint8(251), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(245), uint8(251), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(253), uint8(253), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		},
		{{uint8(255), uint8(251), uint8(253), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(252), uint8(253), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(255), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		},
		{{uint8(255), uint8(252), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(249), uint8(255), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(255), uint8(255), uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		},
		{{uint8(255), uint8(255), uint8(253), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(250), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		},
		{{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(254), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
			{uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255), uint8(255)},
		},
	},

} /* tree_enc.c:350:5 */
View Source
var VP8CollectHistogram uintptr /* enc.c:714:11: */

Speed-critical function pointers. We have to initialize them to the default implementations within VP8EncDspInit().

View Source
var VP8Copy16x8 uintptr /* enc.c:733:14: */
View Source
var VP8Copy4x4 uintptr /* enc.c:732:14: */
View Source
var VP8DitherCombine8x8 uintptr /* dec.c:734:6: */
View Source
var VP8DspInit_body_last_cpuinfo_used uintptr = 0 /* dec.c:744:1 */
View Source
var VP8DspScan = [24]int32{

	0 + 0*32, 4 + 0*32, 8 + 0*32, 12 + 0*32,
	0 + 4*32, 4 + 4*32, 8 + 4*32, 12 + 4*32,
	0 + 8*32, 4 + 8*32, 8 + 8*32, 12 + 8*32,
	0 + 12*32, 4 + 12*32, 8 + 12*32, 12 + 12*32,

	0 + 0*32, 4 + 0*32, 0 + 4*32, 4 + 4*32,
	8 + 0*32, 12 + 0*32, 8 + 4*32, 12 + 4*32,

} /* enc.c:34:11 */
View Source
var VP8EncBands = [17]uint8{
	uint8(0), uint8(1), uint8(2), uint8(3), uint8(6), uint8(4), uint8(5), uint8(6), uint8(6), uint8(6), uint8(6), uint8(6), uint8(6), uint8(6), uint8(6), uint8(7),
	uint8(0),

} /* cost.c:314:15 */
View Source
var VP8EncDspCostInit_body_last_cpuinfo_used uintptr = 0 /* cost.c:382:1 */
View Source
var VP8EncDspInit_body_last_cpuinfo_used uintptr = 0 /* enc.c:742:1 */
View Source
var VP8EncPredChroma8 uintptr /* enc.c:721:15: */
View Source
var VP8EncPredLuma16 uintptr /* enc.c:720:15: */
View Source
var VP8EncPredLuma4 uintptr /* enc.c:719:16: */
View Source
var VP8EncQuantize2Blocks uintptr /* enc.c:730:20: */
View Source
var VP8EncQuantizeBlock uintptr /* enc.c:729:18: */
View Source
var VP8EncQuantizeBlockWHT uintptr /* enc.c:731:21: */
View Source
var VP8EntropyCost = [256]uint16{} /* cost.c:18:16 *//* 256 elements not displayed */
View Source
var VP8FTransform uintptr /* enc.c:716:9: */
View Source
var VP8FTransform2 uintptr /* enc.c:717:9: */
View Source
var VP8FTransformWHT uintptr /* enc.c:718:8: */
View Source
var VP8FiltersInit_body_last_cpuinfo_used uintptr = 0 /* filters.c:241:1 */
View Source
var VP8FixedCostsI16 = [4]uint16{uint16(663), uint16(919), uint16(872), uint16(919)} /* cost_enc.c:99:16 */

note: these values include the fixed VP8BitCost(1, 145) mode selection cost.

View Source
var VP8FixedCostsI4 = [10][10][10]uint16{{
	{uint16(40), uint16(1151), uint16(1723), uint16(1874), uint16(2103), uint16(2019), uint16(1628), uint16(1777), uint16(2226), uint16(2137)},
	{uint16(192), uint16(469), uint16(1296), uint16(1308), uint16(1849), uint16(1794), uint16(1781), uint16(1703), uint16(1713), uint16(1522)},
	{uint16(142), uint16(910), uint16(762), uint16(1684), uint16(1849), uint16(1576), uint16(1460), uint16(1305), uint16(1801), uint16(1657)},
	{uint16(559), uint16(641), uint16(1370), uint16(421), uint16(1182), uint16(1569), uint16(1612), uint16(1725), uint16(863), uint16(1007)},
	{uint16(299), uint16(1059), uint16(1256), uint16(1108), uint16(636), uint16(1068), uint16(1581), uint16(1883), uint16(869), uint16(1142)},
	{uint16(277), uint16(1111), uint16(707), uint16(1362), uint16(1089), uint16(672), uint16(1603), uint16(1541), uint16(1545), uint16(1291)},
	{uint16(214), uint16(781), uint16(1609), uint16(1303), uint16(1632), uint16(2229), uint16(726), uint16(1560), uint16(1713), uint16(918)},
	{uint16(152), uint16(1037), uint16(1046), uint16(1759), uint16(1983), uint16(2174), uint16(1358), uint16(742), uint16(1740), uint16(1390)},
	{uint16(512), uint16(1046), uint16(1420), uint16(753), uint16(752), uint16(1297), uint16(1486), uint16(1613), uint16(460), uint16(1207)},
	{uint16(424), uint16(827), uint16(1362), uint16(719), uint16(1462), uint16(1202), uint16(1199), uint16(1476), uint16(1199), uint16(538)}},
	{{uint16(240), uint16(402), uint16(1134), uint16(1491), uint16(1659), uint16(1505), uint16(1517), uint16(1555), uint16(1979), uint16(2099)},
		{uint16(467), uint16(242), uint16(960), uint16(1232), uint16(1714), uint16(1620), uint16(1834), uint16(1570), uint16(1676), uint16(1391)},
		{uint16(500), uint16(455), uint16(463), uint16(1507), uint16(1699), uint16(1282), uint16(1564), uint16(982), uint16(2114), uint16(2114)},
		{uint16(672), uint16(643), uint16(1372), uint16(331), uint16(1589), uint16(1667), uint16(1453), uint16(1938), uint16(996), uint16(876)},
		{uint16(458), uint16(783), uint16(1037), uint16(911), uint16(738), uint16(968), uint16(1165), uint16(1518), uint16(859), uint16(1033)},
		{uint16(504), uint16(815), uint16(504), uint16(1139), uint16(1219), uint16(719), uint16(1506), uint16(1085), uint16(1268), uint16(1268)},
		{uint16(333), uint16(630), uint16(1445), uint16(1239), uint16(1883), uint16(3672), uint16(799), uint16(1548), uint16(1865), uint16(598)},
		{uint16(399), uint16(644), uint16(746), uint16(1342), uint16(1856), uint16(1350), uint16(1493), uint16(613), uint16(1855), uint16(1015)},
		{uint16(622), uint16(749), uint16(1205), uint16(608), uint16(1066), uint16(1408), uint16(1290), uint16(1406), uint16(546), uint16(971)},
		{uint16(500), uint16(753), uint16(1041), uint16(668), uint16(1230), uint16(1617), uint16(1297), uint16(1425), uint16(1383), uint16(523)}},
	{{uint16(394), uint16(553), uint16(523), uint16(1502), uint16(1536), uint16(981), uint16(1608), uint16(1142), uint16(1666), uint16(2181)},
		{uint16(655), uint16(430), uint16(375), uint16(1411), uint16(1861), uint16(1220), uint16(1677), uint16(1135), uint16(1978), uint16(1553)},
		{uint16(690), uint16(640), uint16(245), uint16(1954), uint16(2070), uint16(1194), uint16(1528), uint16(982), uint16(1972), uint16(2232)},
		{uint16(559), uint16(834), uint16(741), uint16(867), uint16(1131), uint16(980), uint16(1225), uint16(852), uint16(1092), uint16(784)},
		{uint16(690), uint16(875), uint16(516), uint16(959), uint16(673), uint16(894), uint16(1056), uint16(1190), uint16(1528), uint16(1126)},
		{uint16(740), uint16(951), uint16(384), uint16(1277), uint16(1177), uint16(492), uint16(1579), uint16(1155), uint16(1846), uint16(1513)},
		{uint16(323), uint16(775), uint16(1062), uint16(1776), uint16(3062), uint16(1274), uint16(813), uint16(1188), uint16(1372), uint16(655)},
		{uint16(488), uint16(971), uint16(484), uint16(1767), uint16(1515), uint16(1775), uint16(1115), uint16(503), uint16(1539), uint16(1461)},
		{uint16(740), uint16(1006), uint16(998), uint16(709), uint16(851), uint16(1230), uint16(1337), uint16(788), uint16(741), uint16(721)},
		{uint16(522), uint16(1073), uint16(573), uint16(1045), uint16(1346), uint16(887), uint16(1046), uint16(1146), uint16(1203), uint16(697)}},
	{{uint16(105), uint16(864), uint16(1442), uint16(1009), uint16(1934), uint16(1840), uint16(1519), uint16(1920), uint16(1673), uint16(1579)},
		{uint16(534), uint16(305), uint16(1193), uint16(683), uint16(1388), uint16(2164), uint16(1802), uint16(1894), uint16(1264), uint16(1170)},
		{uint16(305), uint16(518), uint16(877), uint16(1108), uint16(1426), uint16(3215), uint16(1425), uint16(1064), uint16(1320), uint16(1242)},
		{uint16(683), uint16(732), uint16(1927), uint16(257), uint16(1493), uint16(2048), uint16(1858), uint16(1552), uint16(1055), uint16(947)},
		{uint16(394), uint16(814), uint16(1024), uint16(660), uint16(959), uint16(1556), uint16(1282), uint16(1289), uint16(893), uint16(1047)},
		{uint16(528), uint16(615), uint16(996), uint16(940), uint16(1201), uint16(635), uint16(1094), uint16(2515), uint16(803), uint16(1358)},
		{uint16(347), uint16(614), uint16(1609), uint16(1187), uint16(3133), uint16(1345), uint16(1007), uint16(1339), uint16(1017), uint16(667)},
		{uint16(218), uint16(740), uint16(878), uint16(1605), uint16(3650), uint16(3650), uint16(1345), uint16(758), uint16(1357), uint16(1617)},
		{uint16(672), uint16(750), uint16(1541), uint16(558), uint16(1257), uint16(1599), uint16(1870), uint16(2135), uint16(402), uint16(1087)},
		{uint16(592), uint16(684), uint16(1161), uint16(430), uint16(1092), uint16(1497), uint16(1475), uint16(1489), uint16(1095), uint16(822)}},
	{{uint16(228), uint16(1056), uint16(1059), uint16(1368), uint16(752), uint16(982), uint16(1512), uint16(1518), uint16(987), uint16(1782)},
		{uint16(494), uint16(514), uint16(818), uint16(942), uint16(965), uint16(892), uint16(1610), uint16(1356), uint16(1048), uint16(1363)},
		{uint16(512), uint16(648), uint16(591), uint16(1042), uint16(761), uint16(991), uint16(1196), uint16(1454), uint16(1309), uint16(1463)},
		{uint16(683), uint16(749), uint16(1043), uint16(676), uint16(841), uint16(1396), uint16(1133), uint16(1138), uint16(654), uint16(939)},
		{uint16(622), uint16(1101), uint16(1126), uint16(994), uint16(361), uint16(1077), uint16(1203), uint16(1318), uint16(877), uint16(1219)},
		{uint16(631), uint16(1068), uint16(857), uint16(1650), uint16(651), uint16(477), uint16(1650), uint16(1419), uint16(828), uint16(1170)},
		{uint16(555), uint16(727), uint16(1068), uint16(1335), uint16(3127), uint16(1339), uint16(820), uint16(1331), uint16(1077), uint16(429)},
		{uint16(504), uint16(879), uint16(624), uint16(1398), uint16(889), uint16(889), uint16(1392), uint16(808), uint16(891), uint16(1406)},
		{uint16(683), uint16(1602), uint16(1289), uint16(977), uint16(578), uint16(983), uint16(1280), uint16(1708), uint16(406), uint16(1122)},
		{uint16(399), uint16(865), uint16(1433), uint16(1070), uint16(1072), uint16(764), uint16(968), uint16(1477), uint16(1223), uint16(678)}},
	{{uint16(333), uint16(760), uint16(935), uint16(1638), uint16(1010), uint16(529), uint16(1646), uint16(1410), uint16(1472), uint16(2219)},
		{uint16(512), uint16(494), uint16(750), uint16(1160), uint16(1215), uint16(610), uint16(1870), uint16(1868), uint16(1628), uint16(1169)},
		{uint16(572), uint16(646), uint16(492), uint16(1934), uint16(1208), uint16(603), uint16(1580), uint16(1099), uint16(1398), uint16(1995)},
		{uint16(786), uint16(789), uint16(942), uint16(581), uint16(1018), uint16(951), uint16(1599), uint16(1207), uint16(731), uint16(768)},
		{uint16(690), uint16(1015), uint16(672), uint16(1078), uint16(582), uint16(504), uint16(1693), uint16(1438), uint16(1108), uint16(2897)},
		{uint16(768), uint16(1267), uint16(571), uint16(2005), uint16(1243), uint16(244), uint16(2881), uint16(1380), uint16(1786), uint16(1453)},
		{uint16(452), uint16(899), uint16(1293), uint16(903), uint16(1311), uint16(3100), uint16(465), uint16(1311), uint16(1319), uint16(813)},
		{uint16(394), uint16(927), uint16(942), uint16(1103), uint16(1358), uint16(1104), uint16(946), uint16(593), uint16(1363), uint16(1109)},
		{uint16(559), uint16(1005), uint16(1007), uint16(1016), uint16(658), uint16(1173), uint16(1021), uint16(1164), uint16(623), uint16(1028)},
		{uint16(564), uint16(796), uint16(632), uint16(1005), uint16(1014), uint16(863), uint16(2316), uint16(1268), uint16(938), uint16(764)}},
	{{uint16(266), uint16(606), uint16(1098), uint16(1228), uint16(1497), uint16(1243), uint16(948), uint16(1030), uint16(1734), uint16(1461)},
		{uint16(366), uint16(585), uint16(901), uint16(1060), uint16(1407), uint16(1247), uint16(876), uint16(1134), uint16(1620), uint16(1054)},
		{uint16(452), uint16(565), uint16(542), uint16(1729), uint16(1479), uint16(1479), uint16(1016), uint16(886), uint16(2938), uint16(1150)},
		{uint16(555), uint16(1088), uint16(1533), uint16(950), uint16(1354), uint16(895), uint16(834), uint16(1019), uint16(1021), uint16(496)},
		{uint16(704), uint16(815), uint16(1193), uint16(971), uint16(973), uint16(640), uint16(1217), uint16(2214), uint16(832), uint16(578)},
		{uint16(672), uint16(1245), uint16(579), uint16(871), uint16(875), uint16(774), uint16(872), uint16(1273), uint16(1027), uint16(949)},
		{uint16(296), uint16(1134), uint16(2050), uint16(1784), uint16(1636), uint16(3425), uint16(442), uint16(1550), uint16(2076), uint16(722)},
		{uint16(342), uint16(982), uint16(1259), uint16(1846), uint16(1848), uint16(1848), uint16(622), uint16(568), uint16(1847), uint16(1052)},
		{uint16(555), uint16(1064), uint16(1304), uint16(828), uint16(746), uint16(1343), uint16(1075), uint16(1329), uint16(1078), uint16(494)},
		{uint16(288), uint16(1167), uint16(1285), uint16(1174), uint16(1639), uint16(1639), uint16(833), uint16(2254), uint16(1304), uint16(509)}},
	{{uint16(342), uint16(719), uint16(767), uint16(1866), uint16(1757), uint16(1270), uint16(1246), uint16(550), uint16(1746), uint16(2151)},
		{uint16(483), uint16(653), uint16(694), uint16(1509), uint16(1459), uint16(1410), uint16(1218), uint16(507), uint16(1914), uint16(1266)},
		{uint16(488), uint16(757), uint16(447), uint16(2979), uint16(1813), uint16(1268), uint16(1654), uint16(539), uint16(1849), uint16(2109)},
		{uint16(522), uint16(1097), uint16(1085), uint16(851), uint16(1365), uint16(1111), uint16(851), uint16(901), uint16(961), uint16(605)},
		{uint16(709), uint16(716), uint16(841), uint16(728), uint16(736), uint16(945), uint16(941), uint16(862), uint16(2845), uint16(1057)},
		{uint16(512), uint16(1323), uint16(500), uint16(1336), uint16(1083), uint16(681), uint16(1342), uint16(717), uint16(1604), uint16(1350)},
		{uint16(452), uint16(1155), uint16(1372), uint16(1900), uint16(1501), uint16(3290), uint16(311), uint16(944), uint16(1919), uint16(922)},
		{uint16(403), uint16(1520), uint16(977), uint16(2132), uint16(1733), uint16(3522), uint16(1076), uint16(276), uint16(3335), uint16(1547)},
		{uint16(559), uint16(1374), uint16(1101), uint16(615), uint16(673), uint16(2462), uint16(974), uint16(795), uint16(984), uint16(984)},
		{uint16(547), uint16(1122), uint16(1062), uint16(812), uint16(1410), uint16(951), uint16(1140), uint16(622), uint16(1268), uint16(651)}},
	{{uint16(165), uint16(982), uint16(1235), uint16(938), uint16(1334), uint16(1366), uint16(1659), uint16(1578), uint16(964), uint16(1612)},
		{uint16(592), uint16(422), uint16(925), uint16(847), uint16(1139), uint16(1112), uint16(1387), uint16(2036), uint16(861), uint16(1041)},
		{uint16(403), uint16(837), uint16(732), uint16(770), uint16(941), uint16(1658), uint16(1250), uint16(809), uint16(1407), uint16(1407)},
		{uint16(896), uint16(874), uint16(1071), uint16(381), uint16(1568), uint16(1722), uint16(1437), uint16(2192), uint16(480), uint16(1035)},
		{uint16(640), uint16(1098), uint16(1012), uint16(1032), uint16(684), uint16(1382), uint16(1581), uint16(2106), uint16(416), uint16(865)},
		{uint16(559), uint16(1005), uint16(819), uint16(914), uint16(710), uint16(770), uint16(1418), uint16(920), uint16(838), uint16(1435)},
		{uint16(415), uint16(1258), uint16(1245), uint16(870), uint16(1278), uint16(3067), uint16(770), uint16(1021), uint16(1287), uint16(522)},
		{uint16(406), uint16(990), uint16(601), uint16(1009), uint16(1265), uint16(1265), uint16(1267), uint16(759), uint16(1017), uint16(1277)},
		{uint16(968), uint16(1182), uint16(1329), uint16(788), uint16(1032), uint16(1292), uint16(1705), uint16(1714), uint16(203), uint16(1403)},
		{uint16(732), uint16(877), uint16(1279), uint16(471), uint16(901), uint16(1161), uint16(1545), uint16(1294), uint16(755), uint16(755)}},
	{{uint16(111), uint16(931), uint16(1378), uint16(1185), uint16(1933), uint16(1648), uint16(1148), uint16(1714), uint16(1873), uint16(1307)},
		{uint16(406), uint16(414), uint16(1030), uint16(1023), uint16(1910), uint16(1404), uint16(1313), uint16(1647), uint16(1509), uint16(793)},
		{uint16(342), uint16(640), uint16(575), uint16(1088), uint16(1241), uint16(1349), uint16(1161), uint16(1350), uint16(1756), uint16(1502)},
		{uint16(559), uint16(766), uint16(1185), uint16(357), uint16(1682), uint16(1428), uint16(1329), uint16(1897), uint16(1219), uint16(802)},
		{uint16(473), uint16(909), uint16(1164), uint16(771), uint16(719), uint16(2508), uint16(1427), uint16(1432), uint16(722), uint16(782)},
		{uint16(342), uint16(892), uint16(785), uint16(1145), uint16(1150), uint16(794), uint16(1296), uint16(1550), uint16(973), uint16(1057)},
		{uint16(208), uint16(1036), uint16(1326), uint16(1343), uint16(1606), uint16(3395), uint16(815), uint16(1455), uint16(1618), uint16(712)},
		{uint16(228), uint16(928), uint16(890), uint16(1046), uint16(3499), uint16(1711), uint16(994), uint16(829), uint16(1720), uint16(1318)},
		{uint16(768), uint16(724), uint16(1058), uint16(636), uint16(991), uint16(1075), uint16(1319), uint16(1324), uint16(616), uint16(825)},

		{uint16(305), uint16(1167), uint16(1358), uint16(899), uint16(1587), uint16(1587), uint16(987), uint16(1988), uint16(1332), uint16(501)}}} /* cost_enc.c:100:16 */
View Source
var VP8FixedCostsUV = [4]uint16{uint16(302), uint16(984), uint16(439), uint16(642)} /* cost_enc.c:97:16 */

These are the fixed probabilities (in the coding trees) turned into bit-cost by calling VP8BitCost().

View Source
var VP8GetCPUInfo uintptr = 0 /* cpu.c:176:12 */
View Source
var VP8GetResidualCost uintptr /* cost.c:374:24: */
View Source
var VP8HFilter16 uintptr /* dec.c:722:19: */
View Source
var VP8HFilter16i uintptr /* dec.c:726:19: */
View Source
var VP8HFilter8 uintptr /* dec.c:724:21: */
View Source
var VP8HFilter8i uintptr /* dec.c:728:21: */
View Source
var VP8I16ModeOffsets = [4]uint16{uint16(0 * 16 * 32), uint16(0*16*32 + 16), uint16(1 * 16 * 32), uint16(1*16*32 + 16)} /* quant_enc.c:461:16 */

Must be ordered using {DC_PRED, TM_PRED, V_PRED, H_PRED} as index

View Source
var VP8I4ModeOffsets = [10]uint16{
	uint16(3*16*32 + 0), uint16(3*16*32 + 0 + 4), uint16(3*16*32 + 0 + 8), uint16(3*16*32 + 0 + 12), uint16(3*16*32 + 0 + 16), uint16(3*16*32 + 0 + 20), uint16(3*16*32 + 0 + 24), uint16(3*16*32 + 0 + 28), uint16(3*16*32 + 4*32), uint16(3*16*32 + 4*32 + 4),

} /* quant_enc.c:465:16 */

Must be indexed using {B_DC_PRED -> B_HU_PRED} as index

View Source
var VP8ITransform uintptr /* enc.c:715:9: */
View Source
var VP8LAddGreenToBlueAndRed uintptr /* lossless.c:573:30: */
View Source
var VP8LAddVector uintptr /* lossless_enc.c:785:19: */
View Source
var VP8LAddVectorEq uintptr /* lossless_enc.c:786:21: */
View Source
var VP8LBundleColorMap uintptr /* lossless_enc.c:789:24: */
View Source
var VP8LCollectColorBlueTransforms uintptr /* lossless_enc.c:772:36: */
View Source
var VP8LCollectColorRedTransforms uintptr /* lossless_enc.c:773:35: */
View Source
var VP8LCombinedShannonEntropy uintptr /* lossless_enc.c:780:32: */
View Source
var VP8LConvertBGRAToBGR uintptr /* lossless.c:586:17: */
View Source
var VP8LConvertBGRAToRGB uintptr /* lossless.c:582:17: */
View Source
var VP8LConvertBGRAToRGB565 uintptr /* lossless.c:585:17: */
View Source
var VP8LConvertBGRAToRGBA uintptr /* lossless.c:583:17: */
View Source
var VP8LConvertBGRAToRGBA4444 uintptr /* lossless.c:584:17: */
View Source
var VP8LDspInit_body_last_cpuinfo_used uintptr = 0 /* lossless.c:616:1 */
View Source
var VP8LEncDspInit_body_last_cpuinfo_used uintptr = 0 /* lossless_enc.c:801:1 */
View Source
var VP8LExtraCost uintptr /* lossless_enc.c:778:14: */
View Source
var VP8LExtraCostCombined uintptr /* lossless_enc.c:779:22: */
View Source
var VP8LFastLog2Slow uintptr /* lossless_enc.c:775:22: */
View Source
var VP8LFastSLog2Slow uintptr /* lossless_enc.c:776:22: */
View Source
var VP8LGetCombinedEntropyUnrefined uintptr /* lossless_enc.c:783:37: */
View Source
var VP8LGetEntropyUnrefined uintptr /* lossless_enc.c:782:29: */
View Source
var VP8LMapColor32b uintptr /* lossless.c:588:17: */
View Source
var VP8LMapColor8b uintptr /* lossless.c:589:18: */
View Source
var VP8LPredictors [16]uintptr /* lossless.c:575:19: */
View Source
var VP8LPredictorsAdd [16]uintptr /* lossless.c:574:25: */
View Source
var VP8LPredictorsAdd_C [16]uintptr /* lossless.c:578:25: */

exposed plain-C implementations

View Source
var VP8LPredictorsSub [16]uintptr /* lossless_enc.c:791:25: */
View Source
var VP8LPredictorsSub_C [16]uintptr /* lossless_enc.c:792:25: */
View Source
var VP8LSubtractGreenFromBlueAndRed uintptr /* lossless_enc.c:768:30: */
View Source
var VP8LTransformColor uintptr /* lossless_enc.c:770:24: */
View Source
var VP8LTransformColorInverse uintptr /* lossless.c:580:31: */
View Source
var VP8LVectorMismatch uintptr /* lossless_enc.c:788:24: */
View Source
var VP8LevelCodes = [67][2]uint16{
	{uint16(0x001), uint16(0x000)}, {uint16(0x007), uint16(0x001)}, {uint16(0x00f), uint16(0x005)},
	{uint16(0x00f), uint16(0x00d)}, {uint16(0x033), uint16(0x003)}, {uint16(0x033), uint16(0x003)}, {uint16(0x033), uint16(0x023)},
	{uint16(0x033), uint16(0x023)}, {uint16(0x033), uint16(0x023)}, {uint16(0x033), uint16(0x023)}, {uint16(0x0d3), uint16(0x013)},
	{uint16(0x0d3), uint16(0x013)}, {uint16(0x0d3), uint16(0x013)}, {uint16(0x0d3), uint16(0x013)}, {uint16(0x0d3), uint16(0x013)},
	{uint16(0x0d3), uint16(0x013)}, {uint16(0x0d3), uint16(0x013)}, {uint16(0x0d3), uint16(0x013)}, {uint16(0x0d3), uint16(0x093)},
	{uint16(0x0d3), uint16(0x093)}, {uint16(0x0d3), uint16(0x093)}, {uint16(0x0d3), uint16(0x093)}, {uint16(0x0d3), uint16(0x093)},
	{uint16(0x0d3), uint16(0x093)}, {uint16(0x0d3), uint16(0x093)}, {uint16(0x0d3), uint16(0x093)}, {uint16(0x0d3), uint16(0x093)},
	{uint16(0x0d3), uint16(0x093)}, {uint16(0x0d3), uint16(0x093)}, {uint16(0x0d3), uint16(0x093)}, {uint16(0x0d3), uint16(0x093)},
	{uint16(0x0d3), uint16(0x093)}, {uint16(0x0d3), uint16(0x093)}, {uint16(0x0d3), uint16(0x093)}, {uint16(0x153), uint16(0x053)},
	{uint16(0x153), uint16(0x053)}, {uint16(0x153), uint16(0x053)}, {uint16(0x153), uint16(0x053)}, {uint16(0x153), uint16(0x053)},
	{uint16(0x153), uint16(0x053)}, {uint16(0x153), uint16(0x053)}, {uint16(0x153), uint16(0x053)}, {uint16(0x153), uint16(0x053)},
	{uint16(0x153), uint16(0x053)}, {uint16(0x153), uint16(0x053)}, {uint16(0x153), uint16(0x053)}, {uint16(0x153), uint16(0x053)},
	{uint16(0x153), uint16(0x053)}, {uint16(0x153), uint16(0x053)}, {uint16(0x153), uint16(0x053)}, {uint16(0x153), uint16(0x053)},
	{uint16(0x153), uint16(0x053)}, {uint16(0x153), uint16(0x053)}, {uint16(0x153), uint16(0x053)}, {uint16(0x153), uint16(0x053)},
	{uint16(0x153), uint16(0x053)}, {uint16(0x153), uint16(0x053)}, {uint16(0x153), uint16(0x053)}, {uint16(0x153), uint16(0x053)},
	{uint16(0x153), uint16(0x053)}, {uint16(0x153), uint16(0x053)}, {uint16(0x153), uint16(0x053)}, {uint16(0x153), uint16(0x053)},
	{uint16(0x153), uint16(0x053)}, {uint16(0x153), uint16(0x053)}, {uint16(0x153), uint16(0x053)}, {uint16(0x153), uint16(0x153)},

} /* cost_enc.c:22:16 */

For each given level, the following table gives the pattern of contexts to use for coding it (in [][0]) as well as the bit value to use for each context (in [][1]).

View Source
var VP8LevelFixedCosts = [2048]uint16{} /* cost.c:52:16 *//* 2048 elements not displayed */

fixed costs for coding levels, deduce from the coding tree. This is only the part that doesn't depend on the probability state.

View Source
var VP8Mean16x4 uintptr /* enc.c:728:15: */
View Source
var VP8PredChroma8 [7]uintptr /* dec.c:477:13: */
View Source
var VP8PredLuma16 [7]uintptr /* dec.c:247:13: */
View Source
var VP8PredLuma4 [10]uintptr /* dec.c:416:13: */
View Source
var VP8SSE16x16 uintptr /* enc.c:722:11: */
View Source
var VP8SSE16x8 uintptr /* enc.c:724:11: */
View Source
var VP8SSE4x4 uintptr /* enc.c:725:11: */
View Source
var VP8SSE8x8 uintptr /* enc.c:723:11: */
View Source
var VP8SSIMDspInit_body_last_cpuinfo_used uintptr = 0 /* ssim.c:142:1 */
View Source
var VP8SSIMGet uintptr /* ssim.c:133:16: */
View Source
var VP8SSIMGetClipped uintptr /* ssim.c:134:23: */
View Source
var VP8Scan = [16]uint16{
	uint16(0 + 0*32), uint16(4 + 0*32), uint16(8 + 0*32), uint16(12 + 0*32),
	uint16(0 + 4*32), uint16(4 + 4*32), uint16(8 + 4*32), uint16(12 + 4*32),
	uint16(0 + 8*32), uint16(4 + 8*32), uint16(8 + 8*32), uint16(12 + 8*32),
	uint16(0 + 12*32), uint16(4 + 12*32), uint16(8 + 12*32), uint16(12 + 12*32),

} /* quant_enc.c:496:16 */
View Source
var VP8ScanUV = [8]uint16{
	uint16(0 + 0*32), uint16(4 + 0*32), uint16(0 + 4*32), uint16(4 + 4*32),
	uint16(8 + 0*32), uint16(12 + 0*32), uint16(8 + 4*32), uint16(12 + 4*32),

} /* quant_enc.c:503:23 */
View Source
var VP8SetResidualCoeffs uintptr /* cost.c:375:26: */
View Source
var VP8SimpleHFilter16 uintptr /* dec.c:730:21: */
View Source
var VP8SimpleHFilter16i uintptr /* dec.c:732:21: */
View Source
var VP8SimpleVFilter16 uintptr /* dec.c:729:21: */
View Source
var VP8SimpleVFilter16i uintptr /* dec.c:731:21: */
View Source
var VP8TDisto16x16 uintptr /* enc.c:727:12: */
View Source
var VP8TDisto4x4 uintptr /* enc.c:726:12: */
View Source
var VP8TopLeftI4 = [16]uint8{
	uint8(17), uint8(21), uint8(25), uint8(29),
	uint8(13), uint8(17), uint8(21), uint8(25),
	uint8(9), uint8(13), uint8(17), uint8(21),
	uint8(5), uint8(9), uint8(13), uint8(17),

} /* iterator_enc.c:396:22 */

Array to record the position of the top sample to pass to the prediction functions in dsp.c.

View Source
var VP8Transform uintptr /* dec.c:715:13: */
View Source
var VP8TransformAC3 uintptr /* dec.c:716:12: */
View Source
var VP8TransformDC uintptr /* dec.c:718:12: */
View Source
var VP8TransformDCUV uintptr /* dec.c:719:12: */
View Source
var VP8TransformUV uintptr /* dec.c:717:12: */
View Source
var VP8TransformWHT uintptr /* dec.c:165:6: */
View Source
var VP8UVModeOffsets = [4]uint16{uint16(2 * 16 * 32), uint16(2*16*32 + 1*16), uint16(2*16*32 + 8*32), uint16(2*16*32 + 8*32 + 1*16)} /* quant_enc.c:462:16 */
View Source
var VP8VFilter16 uintptr /* dec.c:721:19: */
View Source
var VP8VFilter16i uintptr /* dec.c:725:19: */
View Source
var VP8VFilter8 uintptr /* dec.c:723:21: */
View Source
var VP8VFilter8i uintptr /* dec.c:727:21: */
View Source
var VP8kabs0 uintptr = 0 /* dec_clip_tables.c:348:14 */
View Source
var VP8kclip1 uintptr = 0 /* dec_clip_tables.c:347:14 */
View Source
var VP8ksclip1 uintptr = 0 /* dec_clip_tables.c:345:13 */
View Source
var VP8ksclip2 uintptr = 0 /* dec_clip_tables.c:346:13 */
View Source
var WebPAlphaReplace uintptr /* alpha_processing.c:423:6: */
View Source
var WebPApplyAlphaMultiply uintptr /* alpha_processing.c:402:6: */
View Source
var WebPApplyAlphaMultiply4444 uintptr /* alpha_processing.c:403:6: */
View Source
var WebPConvertARGBToUV uintptr /* yuv.c:247:6: */
View Source
var WebPConvertARGBToY uintptr /* yuv.c:246:6: */
View Source
var WebPConvertBGR24ToY uintptr /* yuv.c:242:6: */
View Source
var WebPConvertRGB24ToY uintptr /* yuv.c:241:6: */
View Source
var WebPConvertRGBA32ToUV uintptr /* yuv.c:243:6: */
View Source
var WebPDispatchAlpha uintptr /* alpha_processing.c:404:5: */
View Source
var WebPDispatchAlphaToGreen uintptr /* alpha_processing.c:406:6: */
View Source
var WebPExtractAlpha uintptr /* alpha_processing.c:408:5: */
View Source
var WebPExtractGreen uintptr /* alpha_processing.c:410:6: */
View Source
var WebPFilters [4]uintptr /* filters.c:233:16: */
View Source
var WebPHasAlpha32b uintptr /* alpha_processing.c:422:5: */
View Source
var WebPHasAlpha8b uintptr /* alpha_processing.c:421:5: */
View Source
var WebPInitAlphaProcessing_body_last_cpuinfo_used uintptr = 0 /* alpha_processing.c:433:1 */
View Source
var WebPInitConvertARGBToYUV_body_last_cpuinfo_used uintptr = 0 /* yuv.c:263:1 */
View Source
var WebPInitSamplers_body_last_cpuinfo_used uintptr = 0 /* yuv.c:78:1 */
View Source
var WebPInitUpsamplers_body_last_cpuinfo_used uintptr = 0 /* upsampling.c:263:1 */
View Source
var WebPInitYUV444Converters_body_last_cpuinfo_used uintptr = 0 /* upsampling.c:222:1 */
View Source
var WebPMultARGBRow uintptr /* alpha_processing.c:181:6: */
View Source
var WebPMultRow uintptr /* alpha_processing.c:182:6: */
View Source
var WebPPackRGB uintptr /* alpha_processing.c:416:6: */
View Source
var WebPRescalerDspInit_body_last_cpuinfo_used uintptr = 0 /* rescaler.c:206:1 */
View Source
var WebPRescalerExportRowExpand uintptr /* rescaler.c:197:27: */
View Source
var WebPRescalerExportRowShrink uintptr /* rescaler.c:198:27: */
View Source
var WebPRescalerImportRowExpand uintptr /* rescaler.c:194:27: */
View Source
var WebPRescalerImportRowShrink uintptr /* rescaler.c:195:27: */
View Source
var WebPSamplers [13]uintptr /* yuv.c:71:20: */
View Source
var WebPSharpYUVFilterRow uintptr /* yuv.c:254:6: */
View Source
var WebPSharpYUVUpdateRGB uintptr /* yuv.c:252:6: */
View Source
var WebPSharpYUVUpdateY uintptr /* yuv.c:250:10: */
View Source
var WebPUnfilters [4]uintptr /* filters.c:234:18: */
View Source
var WebPUpsamplers [13]uintptr /* upsampling.c:25:26: */

Fancy upsampling functions to convert YUV to RGB

View Source
var WebPYUV444Converters [13]uintptr /* upsampling.c:216:21: */

Functions

func ALPHDecode

func ALPHDecode(tls *libc.TLS, dec uintptr, row int32, num_rows int32) int32

Decodes, unfilters and dequantizes *at least* 'num_rows' rows of alpha starting from row number 'row'. It assumes that rows up to (row - 1) have already been decoded. Returns false in case of bitstream error.

func ALPHDelete

func ALPHDelete(tls *libc.TLS, dec uintptr)

Clears and deallocates an alpha decoder instance.

func ALPHInit

func ALPHInit(tls *libc.TLS, dec uintptr, data uintptr, data_size uint64, src_io uintptr, output uintptr) int32

Initialize alpha decoding by parsing the alpha header and decoding the image header for alpha data stored using lossless compression. Returns false in case of error in alpha header (data too short, invalid compression method or filter, error in lossless header data etc).

func ALPHNew

func ALPHNew(tls *libc.TLS) uintptr

Allocates a new alpha decoder instance.

func AccumulateHCode

func AccumulateHCode(tls *libc.TLS, hcode HuffmanCode, shift int32, huff uintptr) int32

func AccumulateLSIM

func AccumulateLSIM(tls *libc.TLS, src uintptr, src_stride int32, ref uintptr, ref_stride int32, w int32, h int32) float64

func AccumulateRGB

func AccumulateRGB(tls *libc.TLS, r_ptr uintptr, g_ptr uintptr, b_ptr uintptr, step int32, rgb_stride int32, dst uintptr, width int32)

func AccumulateRGBA

func AccumulateRGBA(tls *libc.TLS, r_ptr uintptr, g_ptr uintptr, b_ptr uintptr, a_ptr uintptr, rgb_stride int32, dst uintptr, width int32)

func AccumulateSSE

func AccumulateSSE(tls *libc.TLS, src uintptr, src_stride int32, ref uintptr, ref_stride int32, w int32, h int32) float64

func AccumulateSSE_C

func AccumulateSSE_C(tls *libc.TLS, src1 uintptr, src2 uintptr, len int32) uint32

func AccumulateSSIM

func AccumulateSSIM(tls *libc.TLS, src uintptr, src_stride int32, ref uintptr, ref_stride int32, w int32, h int32) float64

func AddConstantToken

func AddConstantToken(tls *libc.TLS, b uintptr, bit uint32, proba uint32)

func AddGreenToBlueAndRed

func AddGreenToBlueAndRed(tls *libc.TLS, argb uint32) uint32

func AddScore

func AddScore(tls *libc.TLS, dst uintptr, src uintptr)

func AddSingle

func AddSingle(tls *libc.TLS, p uint32, a uintptr, r uintptr, g uintptr, b uintptr)

func AddSingleLiteral

func AddSingleLiteral(tls *libc.TLS, pixel uint32, use_color_cache int32, hashers uintptr, refs uintptr)

func AddSingleLiteralWithCostModel

func AddSingleLiteralWithCostModel(tls *libc.TLS, argb uintptr, hashers uintptr, cost_model uintptr, idx int32, use_color_cache int32, prev_cost float32, cost uintptr, dist_array uintptr)

func AddSingleSubGreen

func AddSingleSubGreen(tls *libc.TLS, p int32, r uintptr, b uintptr)

func AddSubtractComponentFull

func AddSubtractComponentFull(tls *libc.TLS, a int32, b int32, c int32) int32

func AddSubtractComponentHalf

func AddSubtractComponentHalf(tls *libc.TLS, a int32, b int32) int32

func AddToken

func AddToken(tls *libc.TLS, b uintptr, bit uint32, proba_idx uint32, stats uintptr) uint32

func AddVectorEq_C

func AddVectorEq_C(tls *libc.TLS, a uintptr, out uintptr, size int32)

func AddVector_C

func AddVector_C(tls *libc.TLS, a uintptr, b uintptr, out uintptr, size int32)

func AdjustAndCheckRectangle

func AdjustAndCheckRectangle(tls *libc.TLS, pic uintptr, left uintptr, top uintptr, width int32, height int32) int32

Adjust top-left corner and verify that the sub-rectangle is valid.

func AllocateAlphaPlane

func AllocateAlphaPlane(tls *libc.TLS, dec uintptr, io uintptr) int32

func AllocateAndInitRescaler

func AllocateAndInitRescaler(tls *libc.TLS, dec uintptr, io uintptr) int32

func AllocateBuffer

func AllocateBuffer(tls *libc.TLS, buffer uintptr) uint32

func AllocateInternalBuffers32b

func AllocateInternalBuffers32b(tls *libc.TLS, dec uintptr, final_width int32) int32

------------------------------------------------------------------------------ Allocate internal buffers dec->pixels_ and dec->argb_cache_.

func AllocateInternalBuffers8b

func AllocateInternalBuffers8b(tls *libc.TLS, dec uintptr) int32

func AllocateMemory

func AllocateMemory(tls *libc.TLS, dec uintptr) int32

func AllocateTransformBuffer

func AllocateTransformBuffer(tls *libc.TLS, enc uintptr, width int32, height int32) uint32

Allocates the memory for argb (W x H) buffer, 2 rows of context for prediction and transform data. Flags influencing the memory allocated:

enc->transform_bits_
enc->use_predict_, enc->use_cross_color_

func AlphaApplyFilter

func AlphaApplyFilter(tls *libc.TLS, alph_dec uintptr, first_row int32, last_row int32, out uintptr, stride int32)

func AlphaMultiplyARGB

func AlphaMultiplyARGB(tls *libc.TLS, pic uintptr, inverse int32)

func AlphaMultiplyY

func AlphaMultiplyY(tls *libc.TLS, pic uintptr, inverse int32)

func AlphaReplace_C

func AlphaReplace_C(tls *libc.TLS, src uintptr, length int32, color uint32)

func AnalyzeEntropy

func AnalyzeEntropy(tls *libc.TLS, argb uintptr, width int32, height int32, argb_stride int32, use_palette int32, palette_size int32, transform_bits int32, min_entropy_ix uintptr, red_and_blue_always_zero uintptr) int32

func AppendToMemBuffer

func AppendToMemBuffer(tls *libc.TLS, idec uintptr, data uintptr, data_size uint64) int32

Appends data to the end of MemBuffer->buf_. It expands the allocated memory size if required and also updates VP8BitReader's if new memory is allocated.

func ApplyAlphaMultiply4444_C

func ApplyAlphaMultiply4444_C(tls *libc.TLS, rgba4444 uintptr, w int32, h int32, stride int32, rg_byte_pos int32)

func ApplyAlphaMultiply_16b_C

func ApplyAlphaMultiply_16b_C(tls *libc.TLS, rgba4444 uintptr, w int32, h int32, stride int32)

func ApplyAlphaMultiply_C

func ApplyAlphaMultiply_C(tls *libc.TLS, rgba uintptr, alpha_first int32, w int32, h int32, stride int32)

func ApplyCrossColorFilter

func ApplyCrossColorFilter(tls *libc.TLS, enc uintptr, width int32, height int32, quality int32, low_effort int32, bw uintptr) uint32

func ApplyFilter

func ApplyFilter(tls *libc.TLS, p uintptr)

emit one filtered output row

func ApplyFiltersAndEncode

func ApplyFiltersAndEncode(tls *libc.TLS, alpha uintptr, width int32, height int32, data_size uint64, method int32, filter int32, reduce_levels int32, effort_level int32, output uintptr, output_size uintptr, stats uintptr) int32

func ApplyInverseTransforms

func ApplyInverseTransforms(tls *libc.TLS, dec uintptr, start_row int32, num_rows int32, rows uintptr)

func ApplyPalette

func ApplyPalette(tls *libc.TLS, src uintptr, src_stride uint32, dst uintptr, dst_stride uint32, palette uintptr, palette_size int32, width int32, height int32, xbits int32) uint32

Remap argb values in src[] to packed palettes entries in dst[] using 'row' as a temporary buffer of size 'width'. We assume that all src[] values have a corresponding entry in the palette. Note: src[] can be the same as dst[]

func ApplyPaletteHash0

func ApplyPaletteHash0(tls *libc.TLS, color uint32) uint32

func ApplyPaletteHash1

func ApplyPaletteHash1(tls *libc.TLS, color uint32) uint32

func ApplyPaletteHash2

func ApplyPaletteHash2(tls *libc.TLS, color uint32) uint32

func ApplyPredictFilter

func ApplyPredictFilter(tls *libc.TLS, enc uintptr, width int32, height int32, quality int32, low_effort int32, used_subtract_green int32, bw uintptr) uint32

func ApplySubtractGreen

func ApplySubtractGreen(tls *libc.TLS, enc uintptr, width int32, height int32, bw uintptr)

func AssignSegments

func AssignSegments(tls *libc.TLS, enc uintptr, alphas uintptr)

func Average2

func Average2(tls *libc.TLS, a0 uint32, a1 uint32) uint32

func Average3

func Average3(tls *libc.TLS, a0 uint32, a1 uint32, a2 uint32) uint32

func Average4

func Average4(tls *libc.TLS, a0 uint32, a1 uint32, a2 uint32, a3 uint32) uint32

func BSwap32

func BSwap32(tls *libc.TLS, x uint32) uint32

func BSwap64

func BSwap64(tls *libc.TLS, x uint64) uint64

func BackwardReferences2DLocality

func BackwardReferences2DLocality(tls *libc.TLS, xsize int32, refs uintptr)

func BackwardReferencesHashChainDistanceOnly

func BackwardReferencesHashChainDistanceOnly(tls *libc.TLS, xsize int32, ysize int32, argb uintptr, cache_bits int32, hash_chain uintptr, refs uintptr, dist_array uintptr) int32

func BackwardReferencesHashChainFollowChosenPath

func BackwardReferencesHashChainFollowChosenPath(tls *libc.TLS, argb uintptr, cache_bits int32, chosen_path uintptr, chosen_path_size int32, hash_chain uintptr, refs uintptr) int32

func BackwardReferencesLz77

func BackwardReferencesLz77(tls *libc.TLS, xsize int32, ysize int32, argb uintptr, cache_bits int32, hash_chain uintptr, refs uintptr) int32

func BackwardReferencesLz77Box

func BackwardReferencesLz77Box(tls *libc.TLS, xsize int32, ysize int32, argb uintptr, cache_bits int32, hash_chain_best uintptr, hash_chain uintptr, refs uintptr) int32

Compute an LZ77 by forcing matches to happen within a given distance cost. We therefore limit the algorithm to the lowest 32 values in the PlaneCode definition.

func BackwardReferencesRle

func BackwardReferencesRle(tls *libc.TLS, xsize int32, ysize int32, argb uintptr, cache_bits int32, refs uintptr) int32

func BackwardRefsClone

func BackwardRefsClone(tls *libc.TLS, from uintptr, to uintptr) int32

Return 1 on success, 0 on error.

func BackwardRefsNewBlock

func BackwardRefsNewBlock(tls *libc.TLS, refs uintptr) uintptr

Create a new block, either from the free list or allocated

func BackwardRefsSwap

func BackwardRefsSwap(tls *libc.TLS, refs1 uintptr, refs2 uintptr)

Swaps the content of two VP8LBackwardRefs.

func BackwardRefsWithLocalCache

func BackwardRefsWithLocalCache(tls *libc.TLS, argb uintptr, cache_bits int32, refs uintptr) int32

Update (in-place) backward references for specified cache_bits.

func BitWriterResize

func BitWriterResize(tls *libc.TLS, bw uintptr, extra_size uint64) int32

func BitsEntropyRefine

func BitsEntropyRefine(tls *libc.TLS, entropy uintptr) float64

func BitsLog2Floor

func BitsLog2Floor(tls *libc.TLS, n uint32) int32

use GNU builtins where available. Returns (int)floor(log2(n)). n must be > 0.

func BranchCost

func BranchCost(tls *libc.TLS, nb int32, total int32, proba int32) int32

Cost of coding 'nb' 1's and 'total-nb' 0's using 'proba' probability.

func BuildHuffmanTable

func BuildHuffmanTable(tls *libc.TLS, root_table uintptr, root_bits int32, code_lengths uintptr, code_lengths_size int32, sorted uintptr) int32

sorted[code_lengths_size] is a pre-allocated array for sorting symbols by code length.

func BuildPackedTable

func BuildPackedTable(tls *libc.TLS, htree_group uintptr)

func CalcSkipProba

func CalcSkipProba(tls *libc.TLS, nb uint64, total uint64) int32

func CalcTokenProba

func CalcTokenProba(tls *libc.TLS, nb int32, total int32) int32

Collect statistics and deduce probabilities for next coding pass. Return the total bit-cost for coding the probability updates.

func CalculateBestCacheSize

func CalculateBestCacheSize(tls *libc.TLS, argb uintptr, quality int32, refs uintptr, best_cache_bits uintptr) int32

Evaluate optimal cache bits for the local color cache. The input *best_cache_bits sets the maximum cache bits to use (passing 0 implies disabling the local color cache). The local color cache is also disabled for the lower (<= 25) quality. Returns 0 in case of memory error.

func ChangeState

func ChangeState(tls *libc.TLS, idec uintptr, new_state uint32, consumed_bytes uint64)

func CheckDecBuffer

func CheckDecBuffer(tls *libc.TLS, buffer uintptr) uint32

func CheckLambdaValue

func CheckLambdaValue(tls *libc.TLS, v uintptr)

func CheckMemBufferMode

func CheckMemBufferMode(tls *libc.TLS, mem uintptr, expected uint32) int32

func CheckMode

func CheckMode(tls *libc.TLS, mb_x int32, mb_y int32, mode int32) int32

func CheckNonOpaque

func CheckNonOpaque(tls *libc.TLS, alpha uintptr, width int32, height int32, x_step int32, y_step int32) int32

Returns true if alpha[] has non-0xff values.

func CheckSizeArgumentsOverflow

func CheckSizeArgumentsOverflow(tls *libc.TLS, nmemb uint64, size uint64) int32

Returns 0 in case of overflow of nmemb * size.

func CheckSizeOverflow

func CheckSizeOverflow(tls *libc.TLS, size uint64) int32

func CheckSlowModel

func CheckSlowModel(tls *libc.TLS, info int32) int32

helper function for run-time detection of slow SSSE3 platforms

func Clamp

func Clamp(tls *libc.TLS, v float32, min float32, max float32) float32

func ClampedAddSubtractFull

func ClampedAddSubtractFull(tls *libc.TLS, c0 uint32, c1 uint32, c2 uint32) uint32

func ClampedAddSubtractHalf

func ClampedAddSubtractHalf(tls *libc.TLS, c0 uint32, c1 uint32, c2 uint32) uint32

func CleanupParams

func CleanupParams(tls *libc.TLS, p uintptr)

func ClearHuffmanTreeIfOnlyOneSymbol

func ClearHuffmanTreeIfOnlyOneSymbol(tls *libc.TLS, huffman_code uintptr)

func ClearMemBuffer

func ClearMemBuffer(tls *libc.TLS, mem uintptr)

func ClearMetadata

func ClearMetadata(tls *libc.TLS, hdr uintptr)

func ClearTransform

func ClearTransform(tls *libc.TLS, transform uintptr)

func ClearTransformBuffer

func ClearTransformBuffer(tls *libc.TLS, enc uintptr)

func Clip255

func Clip255(tls *libc.TLS, a uint32) uint32

func ClosestDiscretizedArgb

func ClosestDiscretizedArgb(tls *libc.TLS, a uint32, bits int32) uint32

Applies FindClosestDiscretized to all channels of pixel.

func CoOccurrenceBuild

func CoOccurrenceBuild(tls *libc.TLS, pic uintptr, palette uintptr, num_colors uint32, cooccurrence uintptr) uint32

Builds the cooccurrence matrix

func CoOccurrenceFindMax

func CoOccurrenceFindMax(tls *libc.TLS, cooccurrence uintptr, num_colors uint32, c1 uintptr, c2 uintptr)

Finds the biggest cooccurrence in the matrix.

func CodeRepeatedValues

func CodeRepeatedValues(tls *libc.TLS, repetitions int32, tokens uintptr, value int32, prev_value int32) uintptr

func CodeRepeatedZeros

func CodeRepeatedZeros(tls *libc.TLS, repetitions int32, tokens uintptr) uintptr

func CodeResiduals

func CodeResiduals(tls *libc.TLS, bw uintptr, it uintptr, rd uintptr)

func CollectHistogram_C

func CollectHistogram_C(tls *libc.TLS, ref uintptr, pred uintptr, start_block int32, end_block int32, histo uintptr)

func ColorCodeToMultipliers

func ColorCodeToMultipliers(tls *libc.TLS, color_code uint32, m uintptr)

func ColorCodeToMultipliers1

func ColorCodeToMultipliers1(tls *libc.TLS, color_code uint32, m uintptr)

func ColorIndexInverseTransform_C

func ColorIndexInverseTransform_C(tls *libc.TLS, transform uintptr, y_start int32, y_end int32, src uintptr, dst uintptr)

func ColorSpaceInverseTransform_C

func ColorSpaceInverseTransform_C(tls *libc.TLS, transform uintptr, y_start int32, y_end int32, src uintptr, dst uintptr)

Color space inverse transform.

func ColorTransformDelta

func ColorTransformDelta(tls *libc.TLS, color_pred int8, color int8) int32

func ColorTransformDelta1

func ColorTransformDelta1(tls *libc.TLS, color_pred int8, color int8) int32

func CombinedShannonEntropy_C

func CombinedShannonEntropy_C(tls *libc.TLS, X uintptr, Y uintptr) float32

Compute the combined Shanon's entropy for distribution {X} and {X+Y}

func CompareHuffmanTrees

func CompareHuffmanTrees(tls *libc.TLS, ptr1 uintptr, ptr2 uintptr) int32

A comparer function for two Huffman trees: sorts first by 'total count' (more comes first), and then by 'value' (more comes first).

func CompressAlphaJob

func CompressAlphaJob(tls *libc.TLS, arg1 uintptr, unused uintptr) int32

func ComputeNextQ

func ComputeNextQ(tls *libc.TLS, s uintptr) float32

func ConnectIntervals

func ConnectIntervals(tls *libc.TLS, manager uintptr, prev uintptr, next uintptr)

Given two intervals, make 'prev' be the previous one of 'next' in 'manager'.

func ConvertARGBToY_C

func ConvertARGBToY_C(tls *libc.TLS, argb uintptr, y uintptr, width int32)

func ConvertBGR24ToY_C

func ConvertBGR24ToY_C(tls *libc.TLS, bgr uintptr, y uintptr, width int32)

func ConvertBitDepthsToSymbols

func ConvertBitDepthsToSymbols(tls *libc.TLS, tree uintptr)

Get the actual bit values for a tree of bit depths.

func ConvertPopulationCountTableToBitEstimates

func ConvertPopulationCountTableToBitEstimates(tls *libc.TLS, num_symbols int32, population_counts uintptr, output uintptr)

func ConvertRGB24ToY_C

func ConvertRGB24ToY_C(tls *libc.TLS, rgb uintptr, y uintptr, width int32)

func ConvertRGBToU

func ConvertRGBToU(tls *libc.TLS, r int32, g int32, b int32) uint8

func ConvertRGBToV

func ConvertRGBToV(tls *libc.TLS, r int32, g int32, b int32) uint8

func ConvertRGBToY

func ConvertRGBToY(tls *libc.TLS, r int32, g int32, b int32) uint8

func ConvertRowToY

func ConvertRowToY(tls *libc.TLS, r_ptr uintptr, g_ptr uintptr, b_ptr uintptr, step int32, dst_y uintptr, width int32, rg uintptr)

func ConvertRowsToUV

func ConvertRowsToUV(tls *libc.TLS, rgb uintptr, dst_u uintptr, dst_v uintptr, width int32, rg uintptr)

func ConvertToYUVA

func ConvertToYUVA(tls *libc.TLS, src uintptr, width int32, y_pos int32, output uintptr)

func ConvertWRGBToYUV

func ConvertWRGBToYUV(tls *libc.TLS, best_y uintptr, best_uv uintptr, picture uintptr) int32

func Copy

func Copy(tls *libc.TLS, src uintptr, dst uintptr, w int32, h int32)

func Copy16x8_C

func Copy16x8_C(tls *libc.TLS, src uintptr, dst uintptr)

func Copy32b

func Copy32b(tls *libc.TLS, dst uintptr, src uintptr)

func Copy4x4_C

func Copy4x4_C(tls *libc.TLS, src uintptr, dst uintptr)

func CopyBlock32b

func CopyBlock32b(tls *libc.TLS, dst uintptr, dist int32, length int32)

func CopyBlock8b

func CopyBlock8b(tls *libc.TLS, dst uintptr, dist int32, length int32)

func CopyImageWithPrediction

func CopyImageWithPrediction(tls *libc.TLS, width int32, height int32, bits int32, modes uintptr, argb_scratch uintptr, argb uintptr, low_effort int32, max_quantization int32, exact int32, used_subtract_green int32)

Converts pixels of the image to residuals with respect to predictions. If max_quantization > 1, applies near lossless processing, quantizing residuals to multiples of quantization levels up to max_quantization (the actual quantization level depends on smoothness near the given pixel).

func CopyOrSwap

func CopyOrSwap(tls *libc.TLS, src uintptr, num_pixels int32, dst uintptr, swap_on_big_endian int32)

func CopyParts0Data

func CopyParts0Data(tls *libc.TLS, idec uintptr) uint32

Partition #0

func CopyScore

func CopyScore(tls *libc.TLS, dst uintptr, src uintptr)

func CopySmallPattern32b

func CopySmallPattern32b(tls *libc.TLS, src uintptr, dst uintptr, length int32, pattern uint64)

copy pattern of 1 or 2 uint32_t's

func CopySmallPattern8b

func CopySmallPattern8b(tls *libc.TLS, src uintptr, dst uintptr, length int32, pattern uint32)

copy 1, 2 or 4-bytes pattern

func CopyTileWithColorTransform

func CopyTileWithColorTransform(tls *libc.TLS, xsize int32, ysize int32, tile_x int32, tile_y int32, max_tile_size int32, color_transform VP8LMultipliers, argb uintptr)

func CorrectDCValues

func CorrectDCValues(tls *libc.TLS, it uintptr, mtx uintptr, tmp uintptr, rd uintptr)

func CostIntervalAddToFreeList

func CostIntervalAddToFreeList(tls *libc.TLS, manager uintptr, interval uintptr)

func CostIntervalIsInFreeList

func CostIntervalIsInFreeList(tls *libc.TLS, manager uintptr, interval uintptr) int32

func CostManagerClear

func CostManagerClear(tls *libc.TLS, manager uintptr)

func CostManagerInit

func CostManagerInit(tls *libc.TLS, manager uintptr, dist_array uintptr, pix_count int32, cost_model uintptr) int32

func CostManagerInitFreeList

func CostManagerInitFreeList(tls *libc.TLS, manager uintptr)

func CostModelBuild

func CostModelBuild(tls *libc.TLS, m uintptr, xsize int32, cache_bits int32, refs uintptr) int32

func CountLevels

func CountLevels(tls *libc.TLS, p uintptr)

func CustomPut

func CustomPut(tls *libc.TLS, io uintptr) int32

func CustomSetup

func CustomSetup(tls *libc.TLS, io uintptr) int32

func CustomTeardown

func CustomTeardown(tls *libc.TLS, io uintptr)

func DC16NoLeft_C

func DC16NoLeft_C(tls *libc.TLS, dst uintptr)

func DC16NoTopLeft_C

func DC16NoTopLeft_C(tls *libc.TLS, dst uintptr)

func DC16NoTop_C

func DC16NoTop_C(tls *libc.TLS, dst uintptr)

func DC16_C

func DC16_C(tls *libc.TLS, dst uintptr)

func DC4

func DC4(tls *libc.TLS, dst uintptr, top uintptr)

func DC4_C

func DC4_C(tls *libc.TLS, dst uintptr)

func DC8uvNoLeft_C

func DC8uvNoLeft_C(tls *libc.TLS, dst uintptr)

func DC8uvNoTopLeft_C

func DC8uvNoTopLeft_C(tls *libc.TLS, dst uintptr)

func DC8uvNoTop_C

func DC8uvNoTop_C(tls *libc.TLS, dst uintptr)

func DC8uv_C

func DC8uv_C(tls *libc.TLS, dst uintptr)

func DCMode

func DCMode(tls *libc.TLS, dst uintptr, left uintptr, top uintptr, size int32, round int32, shift int32)

func Decode

func Decode(tls *libc.TLS, mode uint32, data uintptr, data_size uint64, width uintptr, height uintptr, keep_info uintptr) uintptr

func DecodeAlphaData

func DecodeAlphaData(tls *libc.TLS, dec uintptr, data uintptr, width int32, height int32, last_row int32) int32

func DecodeImageData

func DecodeImageData(tls *libc.TLS, dec uintptr, data uintptr, width int32, height int32, last_row int32, process_func uintptr) int32

func DecodeImageStream

func DecodeImageStream(tls *libc.TLS, xsize int32, ysize int32, is_level0 int32, dec uintptr, decoded_data uintptr) int32

func DecodeImpl added in v1.1.0

func DecodeImpl(buf []byte) (image.Image, error)

func DecodeInto

func DecodeInto(tls *libc.TLS, data uintptr, data_size uint64, params uintptr) uint32

Main flow

func DecodeIntoRGBABuffer

func DecodeIntoRGBABuffer(tls *libc.TLS, colorspace uint32, data uintptr, data_size uint64, rgba uintptr, stride int32, size uint64) uintptr

Helpers

func DecodePartition0

func DecodePartition0(tls *libc.TLS, idec uintptr) uint32

func DecodeRemaining

func DecodeRemaining(tls *libc.TLS, idec uintptr) uint32

Remaining partitions

func DecodeVP8FrameHeader

func DecodeVP8FrameHeader(tls *libc.TLS, idec uintptr) uint32

func DecodeVP8LData

func DecodeVP8LData(tls *libc.TLS, idec uintptr) uint32

func DecodeVP8LHeader

func DecodeVP8LHeader(tls *libc.TLS, idec uintptr) uint32

func DecodeWebPHeaders

func DecodeWebPHeaders(tls *libc.TLS, idec uintptr) uint32

Headers

func DefaultFeatures

func DefaultFeatures(tls *libc.TLS, features uintptr)

func DefaultMBInfo

func DefaultMBInfo(tls *libc.TLS, mb uintptr)

func DeleteIntervalList

func DeleteIntervalList(tls *libc.TLS, manager uintptr, interval uintptr)

func DeleteVP8Encoder

func DeleteVP8Encoder(tls *libc.TLS, enc uintptr) int32

func DispatchAlphaToGreen_C

func DispatchAlphaToGreen_C(tls *libc.TLS, alpha uintptr, alpha_stride int32, width int32, height int32, dst uintptr, dst_stride int32)

func DispatchAlpha_C

func DispatchAlpha_C(tls *libc.TLS, alpha uintptr, alpha_stride int32, width int32, height int32, dst uintptr, dst_stride int32) int32

func Disto16x16_C

func Disto16x16_C(tls *libc.TLS, a uintptr, b uintptr, w uintptr) int32

func Disto4x4_C

func Disto4x4_C(tls *libc.TLS, a uintptr, b uintptr, w uintptr) int32

func Dither8x8

func Dither8x8(tls *libc.TLS, rg uintptr, dst uintptr, bps int32, amp int32)

Convert to range: [-2,2] for dither=50, [-4,4] for dither=100

func DitherCombine8x8_C

func DitherCombine8x8_C(tls *libc.TLS, dither uintptr, dst uintptr, dst_stride int32)

func DitherRow

func DitherRow(tls *libc.TLS, dec uintptr)

func DoFilter

func DoFilter(tls *libc.TLS, dec uintptr, mb_x int32, mb_y int32)

func DoFilter1

func DoFilter1(tls *libc.TLS, it uintptr, level int32)

func DoFilter2_C

func DoFilter2_C(tls *libc.TLS, p uintptr, step int32)

4 pixels in, 2 pixels out

func DoFilter4_C

func DoFilter4_C(tls *libc.TLS, p uintptr, step int32)

4 pixels in, 4 pixels out

func DoFilter6_C

func DoFilter6_C(tls *libc.TLS, p uintptr, step int32)

6 pixels in, 6 pixels out

func DoGradientFilter_C

func DoGradientFilter_C(tls *libc.TLS, in uintptr, width int32, height int32, stride int32, row int32, num_rows int32, inverse int32, out uintptr)

func DoHorizontalFilter_C

func DoHorizontalFilter_C(tls *libc.TLS, in uintptr, width int32, height int32, stride int32, row int32, num_rows int32, inverse int32, out uintptr)

func DoRemap

func DoRemap(tls *libc.TLS, idec uintptr, offset int64)

func DoSegmentsJob

func DoSegmentsJob(tls *libc.TLS, arg1 uintptr, arg2 uintptr) int32

main work call

func DoTransform

func DoTransform(tls *libc.TLS, bits uint32, src uintptr, dst uintptr)

func DoUVTransform

func DoUVTransform(tls *libc.TLS, bits uint32, src uintptr, dst uintptr)

func DoVerticalFilter_C

func DoVerticalFilter_C(tls *libc.TLS, in uintptr, width int32, height int32, stride int32, row int32, num_rows int32, inverse int32, out uintptr)

func DominantCostRangeInit

func DominantCostRangeInit(tls *libc.TLS, c uintptr)

func DummyWriter

func DummyWriter(tls *libc.TLS, data uintptr, data_size uint64, picture uintptr) int32

func EmitAlphaRGB

func EmitAlphaRGB(tls *libc.TLS, io uintptr, p uintptr, expected_num_lines_out int32) int32

func EmitAlphaRGBA4444

func EmitAlphaRGBA4444(tls *libc.TLS, io uintptr, p uintptr, expected_num_lines_out int32) int32

func EmitAlphaYUV

func EmitAlphaYUV(tls *libc.TLS, io uintptr, p uintptr, expected_num_lines_out int32) int32

func EmitFancyRGB

func EmitFancyRGB(tls *libc.TLS, io uintptr, p uintptr) int32

func EmitPartitionsSize

func EmitPartitionsSize(tls *libc.TLS, enc uintptr, pic uintptr) int32

Partition sizes

func EmitRescaledAlphaRGB

func EmitRescaledAlphaRGB(tls *libc.TLS, io uintptr, p uintptr, expected_num_out_lines int32) int32

func EmitRescaledAlphaYUV

func EmitRescaledAlphaYUV(tls *libc.TLS, io uintptr, p uintptr, expected_num_lines_out int32) int32

func EmitRescaledRGB

func EmitRescaledRGB(tls *libc.TLS, io uintptr, p uintptr) int32

func EmitRescaledRowsRGBA

func EmitRescaledRowsRGBA(tls *libc.TLS, dec uintptr, in uintptr, in_stride int32, mb_h int32, out uintptr, out_stride int32) int32

Emit scaled rows.

func EmitRescaledRowsYUVA

func EmitRescaledRowsYUVA(tls *libc.TLS, dec uintptr, in uintptr, in_stride int32, mb_h int32) int32

func EmitRescaledYUV

func EmitRescaledYUV(tls *libc.TLS, io uintptr, p uintptr) int32

func EmitRows

func EmitRows(tls *libc.TLS, colorspace uint32, row_in uintptr, in_stride int32, mb_w int32, mb_h int32, out uintptr, out_stride int32) int32

Emit rows without any scaling.

func EmitRowsYUVA

func EmitRowsYUVA(tls *libc.TLS, dec uintptr, in uintptr, in_stride int32, mb_w int32, num_rows int32) int32

func EmitSampledRGB

func EmitSampledRGB(tls *libc.TLS, io uintptr, p uintptr) int32

Point-sampling U/V sampler.

func EmitYUV

func EmitYUV(tls *libc.TLS, io uintptr, p uintptr) int32

func Encode

func Encode(tls *libc.TLS, rgba uintptr, width int32, height int32, stride int32, import1 uintptr, quality_factor float32, lossless int32, output uintptr) uint64

func EncodeAlpha

func EncodeAlpha(tls *libc.TLS, enc uintptr, quality int32, method int32, filter int32, effort_level int32, output uintptr, output_size uintptr) int32

func EncodeAlphaInternal

func EncodeAlphaInternal(tls *libc.TLS, data uintptr, width int32, height int32, method int32, filter int32, reduce_levels int32, effort_level int32, tmp_alpha uintptr, result uintptr) int32

This function always returns an initialized 'bw' object, even upon error.

func EncodeImageInternal

func EncodeImageInternal(tls *libc.TLS, bw uintptr, argb uintptr, hash_chain uintptr, refs_array uintptr, width int32, height int32, quality int32, low_effort int32, use_cache int32, config uintptr, cache_bits uintptr, histogram_bits int32, init_byte_position uint64, hdr_size uintptr, data_size uintptr) uint32

func EncodeImageNoHuffman

func EncodeImageNoHuffman(tls *libc.TLS, bw uintptr, argb uintptr, hash_chain uintptr, refs_array uintptr, width int32, height int32, quality int32, low_effort int32) uint32

Special case of EncodeImageInternal() for cache-bits=0, histo_bits=31

func EncodeImpl

func EncodeImpl(w io.Writer, m *image.NRGBA, quality float32) error

func EncodeLossless

func EncodeLossless(tls *libc.TLS, data uintptr, width int32, height int32, effort_level int32, use_quality_100 int32, bw uintptr, stats uintptr) int32

func EncodePalette

func EncodePalette(tls *libc.TLS, bw uintptr, low_effort int32, enc uintptr) uint32

Save palette_[] to bitstream.

func EncodeStreamHook

func EncodeStreamHook(tls *libc.TLS, input uintptr, data2 uintptr) int32

func EncoderAnalyze

func EncoderAnalyze(tls *libc.TLS, enc uintptr, crunch_configs uintptr, crunch_configs_size uintptr, red_and_blue_always_zero uintptr) int32

func EncoderInit

func EncoderInit(tls *libc.TLS, enc uintptr) int32

func End

func End(tls *libc.TLS, worker uintptr)

func ErrorStatusLossless

func ErrorStatusLossless(tls *libc.TLS, idec uintptr, status uint32) uint32

func Execute

func Execute(tls *libc.TLS, worker uintptr)

func ExpandColorMap

func ExpandColorMap(tls *libc.TLS, num_colors int32, transform uintptr) int32

For security reason, we need to remap the color map to span the total possible bundled values, and not just the num_colors.

func ExpandMatrix

func ExpandMatrix(tls *libc.TLS, m uintptr, type1 int32) int32

Returns the average quantizer

func Export

func Export(tls *libc.TLS, rescaler uintptr, colorspace uint32, rgba_stride int32, rgba uintptr) int32

We have special "export" function since we need to convert from BGRA

func ExportAlpha

func ExportAlpha(tls *libc.TLS, p uintptr, y_pos int32, max_lines_out int32) int32

func ExportAlphaRGBA4444

func ExportAlphaRGBA4444(tls *libc.TLS, p uintptr, y_pos int32, max_lines_out int32) int32

func ExportBlock

func ExportBlock(tls *libc.TLS, src uintptr, dst uintptr, dst_stride int32, w int32, h int32)

func ExportRGB

func ExportRGB(tls *libc.TLS, p uintptr, y_pos int32) int32

func ExportYUVA

func ExportYUVA(tls *libc.TLS, dec uintptr, y_pos int32) int32

func ExtraCostCombined_C

func ExtraCostCombined_C(tls *libc.TLS, X uintptr, Y uintptr, length int32) float64

func ExtraCost_C

func ExtraCost_C(tls *libc.TLS, population uintptr, length int32) float64

func ExtractAlphaRows

func ExtractAlphaRows(tls *libc.TLS, dec uintptr, last_row int32)

Special row-processing that only stores the alpha data.

func ExtractAlpha_C

func ExtractAlpha_C(tls *libc.TLS, argb uintptr, argb_stride int32, width int32, height int32, alpha uintptr, alpha_stride int32) int32

func ExtractGreen_C

func ExtractGreen_C(tls *libc.TLS, argb uintptr, alpha uintptr, size int32)

func ExtractPalettedAlphaRows

func ExtractPalettedAlphaRows(tls *libc.TLS, dec uintptr, last_row int32)

func FTransform2_C

func FTransform2_C(tls *libc.TLS, src uintptr, ref uintptr, out uintptr)

func FTransformWHT_C

func FTransformWHT_C(tls *libc.TLS, in uintptr, out uintptr)

func FTransform_C

func FTransform_C(tls *libc.TLS, src uintptr, ref uintptr, out uintptr)

func FastLog2Slow_C

func FastLog2Slow_C(tls *libc.TLS, v uint32) float32

func FastMBAnalyze

func FastMBAnalyze(tls *libc.TLS, it uintptr) int32

func FastSLog2Slow_C

func FastSLog2Slow_C(tls *libc.TLS, v uint32) float32

func Fill

func Fill(tls *libc.TLS, dst uintptr, value int32, size int32)

func FillAlphaPlane

func FillAlphaPlane(tls *libc.TLS, dst uintptr, w int32, h int32, stride int32)

func Filter2

func Filter2(tls *libc.TLS, A int32, B int32, W0 int32) uint16

func FilterLoop24_C

func FilterLoop24_C(tls *libc.TLS, p uintptr, hstride int32, vstride int32, size int32, thresh int32, ithresh int32, hev_thresh int32)

func FilterLoop26_C

func FilterLoop26_C(tls *libc.TLS, p uintptr, hstride int32, vstride int32, size int32, thresh int32, ithresh int32, hev_thresh int32)

func FilterRow

func FilterRow(tls *libc.TLS, dec uintptr)

Filter the decoded macroblock row (if needed)

func FinalAlphaValue

func FinalAlphaValue(tls *libc.TLS, alpha int32) int32

func FinalHuffmanCost

func FinalHuffmanCost(tls *libc.TLS, stats uintptr) float64

Finalize the Huffman cost based on streak numbers and length type (<3 or >=3)

func FinalizePSNR

func FinalizePSNR(tls *libc.TLS, enc uintptr)

func FinalizeSkipProba

func FinalizeSkipProba(tls *libc.TLS, enc uintptr) int32

Returns the bit-cost for coding the skip probability.

func FinalizeTokenProbas

func FinalizeTokenProbas(tls *libc.TLS, proba uintptr) int32

func FindClosestDiscretized

func FindClosestDiscretized(tls *libc.TLS, a uint32, bits int32) uint32

Quantizes the value up or down to a multiple of 1<<bits (or to 255), choosing the closer one, resolving ties using bankers' rounding.

func FindMatchLength

func FindMatchLength(tls *libc.TLS, array1 uintptr, array2 uintptr, best_len_match int32, max_limit int32) int32

Returns the exact index where array1 and array2 are different. For an index inferior or equal to best_len_match, the return value just has to be strictly inferior to best_len_match. The current behavior is to return 0 if this index is best_len_match, and the index itself otherwise. If no two elements are the same, it returns max_limit.

func FinishDecoding

func FinishDecoding(tls *libc.TLS, idec uintptr) uint32

To be called last.

func FinishRow

func FinishRow(tls *libc.TLS, arg1 uintptr, arg2 uintptr) int32

Finalize and transmit a complete row. Return false in case of user-abort.

func Flatten

func Flatten(tls *libc.TLS, ptr uintptr, v int32, stride int32, size int32)

func FlattenARGB

func FlattenARGB(tls *libc.TLS, ptr uintptr, v uint32, stride int32, size int32)

func Flush

func Flush(tls *libc.TLS, bw uintptr)

func GammaToLinear

func GammaToLinear(tls *libc.TLS, v uint8) uint32

func GammaToLinearS

func GammaToLinearS(tls *libc.TLS, v int32) uint32

return value has a fixed-point precision of GAMMA_TO_LINEAR_BITS

func GenerateOptimalTree

func GenerateOptimalTree(tls *libc.TLS, histogram uintptr, histogram_size int32, tree uintptr, tree_depth_limit int32, bit_depths uintptr)

Create an optimal Huffman tree.

(data,length): population counts. tree_limit: maximum bit depth (inclusive) of the codes. bit_depths[]: how many bits are used for the symbol.

Returns 0 when an error has occurred.

The catch here is that the tree cannot be arbitrarily deep

count_limit is the value that is to be faked as the minimum value and this minimum value is raised until the tree matches the maximum length requirement.

This algorithm is not of excellent performance for very long data blocks, especially when population counts are longer than 2**tree_limit, but we are not planning to use this with extremely long blocks.

See https://en.wikipedia.org/wiki/Huffman_coding

func GeneratePartition0

func GeneratePartition0(tls *libc.TLS, enc uintptr) int32

func GetAlpha

func GetAlpha(tls *libc.TLS, histo uintptr) int32

func GetAlphaSourceRow

func GetAlphaSourceRow(tls *libc.TLS, io uintptr, alpha uintptr, num_rows uintptr) int32

func GetBackwardReferences

func GetBackwardReferences(tls *libc.TLS, width int32, height int32, argb uintptr, quality int32, lz77_types_to_try int32, cache_bits_max int32, do_no_cache int32, hash_chain uintptr, refs uintptr, cache_bits_best uintptr) int32

func GetBackwardReferencesLowEffort

func GetBackwardReferencesLowEffort(tls *libc.TLS, width int32, height int32, argb uintptr, cache_bits uintptr, hash_chain uintptr, refs_lz77 uintptr) uintptr

func GetBestGreenRedToBlue

func GetBestGreenRedToBlue(tls *libc.TLS, argb uintptr, stride int32, tile_width int32, tile_height int32, prev_x VP8LMultipliers, prev_y VP8LMultipliers, quality int32, accumulated_blue_histo uintptr, best_tx uintptr)

func GetBestGreenToRed

func GetBestGreenToRed(tls *libc.TLS, argb uintptr, stride int32, tile_width int32, tile_height int32, prev_x VP8LMultipliers, prev_y VP8LMultipliers, quality int32, accumulated_red_histo uintptr, best_tx uintptr)

func GetBestPredictorForTile

func GetBestPredictorForTile(tls *libc.TLS, width int32, height int32, tile_x int32, tile_y int32, bits int32, accumulated uintptr, argb_scratch uintptr, argb uintptr, max_quantization int32, exact int32, used_subtract_green int32, modes uintptr) int32

Returns best predictor and updates the accumulated histogram. If max_quantization > 1, assumes that near lossless processing will be applied, quantizing residuals to multiples of quantization levels up to max_quantization (the actual quantization level depends on smoothness near the given pixel).

func GetBinIdForEntropy

func GetBinIdForEntropy(tls *libc.TLS, min float64, max float64, val float64) int32

func GetCPUInfo

func GetCPUInfo(tls *libc.TLS, cpu_info uintptr, info_type int32)

apple/darwin gcc-4.0.1 defines __PIC__, but not __pic__ with -fPIC.

func GetCacheCost

func GetCacheCost(tls *libc.TLS, m uintptr, idx uint32) float64

func GetCoeffsAlt

func GetCoeffsAlt(tls *libc.TLS, br uintptr, prob uintptr, ctx int32, dq uintptr, n int32, out uintptr) int32

This version of GetCoeffs() uses VP8GetBitAlt() which is an alternate version of VP8GetBitAlt() targeting specific platforms.

func GetCoeffsFast

func GetCoeffsFast(tls *libc.TLS, br uintptr, prob uintptr, ctx int32, dq uintptr, n int32, out uintptr) int32

Returns the position of the last non-zero coeff plus one

func GetCombineCostFactor

func GetCombineCostFactor(tls *libc.TLS, histo_size int32, quality int32) float64

func GetCombinedEntropy

func GetCombinedEntropy(tls *libc.TLS, X uintptr, Y uintptr, length int32, is_X_used int32, is_Y_used int32, trivial_at_end int32) float64

trivial_at_end is 1 if the two histograms only have one element that is non-zero: both the zero-th one, or both the last one.

func GetCombinedEntropyUnrefined_C

func GetCombinedEntropyUnrefined_C(tls *libc.TLS, X uintptr, Y uintptr, length int32, bit_entropy uintptr, stats uintptr)

func GetCombinedHistogramEntropy

func GetCombinedHistogramEntropy(tls *libc.TLS, a uintptr, b uintptr, cost_threshold float64, cost uintptr) int32

func GetCopyDistance

func GetCopyDistance(tls *libc.TLS, distance_symbol int32, br uintptr) int32

func GetCopyLength

func GetCopyLength(tls *libc.TLS, length_symbol int32, br uintptr) int32

func GetCostModeI4

func GetCostModeI4(tls *libc.TLS, it uintptr, modes uintptr) uintptr

return the cost array corresponding to the surrounding prediction modes.

func GetDistanceCost

func GetDistanceCost(tls *libc.TLS, m uintptr, distance uint32) float64

func GetEntropyUnrefinedHelper

func GetEntropyUnrefinedHelper(tls *libc.TLS, val uint32, i int32, val_prev uintptr, i_prev uintptr, bit_entropy uintptr, stats uintptr)

func GetEntropyUnrefined_C

func GetEntropyUnrefined_C(tls *libc.TLS, X uintptr, length int32, bit_entropy uintptr, stats uintptr)

func GetFeatures

func GetFeatures(tls *libc.TLS, data uintptr, data_size uint64, features uintptr) uint32

func GetFilterMap

func GetFilterMap(tls *libc.TLS, alpha uintptr, width int32, height int32, filter int32, effort_level int32) uint32

Given the input 'filter' option, return an OR'd bit-set of filters to try.

func GetHistoBinIndex

func GetHistoBinIndex(tls *libc.TLS, h uintptr, c uintptr, low_effort int32) int32

func GetHistoBits

func GetHistoBits(tls *libc.TLS, method int32, use_palette int32, width int32, height int32) int32

func GetHtreeGroupForPos

func GetHtreeGroupForPos(tls *libc.TLS, hdr uintptr, x int32, y int32) uintptr

func GetHuffBitLengthsAndCodes

func GetHuffBitLengthsAndCodes(tls *libc.TLS, histogram_image uintptr, huffman_codes uintptr) int32

Returns false in case of memory error.

func GetILevel

func GetILevel(tls *libc.TLS, sharpness int32, level int32) int32

func GetLE16

func GetLE16(tls *libc.TLS, data uintptr) int32

Read 16, 24 or 32 bits stored in little-endian order.

func GetLE24

func GetLE24(tls *libc.TLS, data uintptr) int32

func GetLE32

func GetLE32(tls *libc.TLS, data uintptr) uint32

func GetLengthCost

func GetLengthCost(tls *libc.TLS, m uintptr, length uint32) float64

func GetLiteralCost

func GetLiteralCost(tls *libc.TLS, m uintptr, v uint32) float64

func GetLogSSIM

func GetLogSSIM(tls *libc.TLS, v float64, size float64) float64

func GetMBSSIM

func GetMBSSIM(tls *libc.TLS, yuv1 uintptr, yuv2 uintptr) float64

func GetMax

func GetMax(tls *libc.TLS, a int32, b int32) int32

func GetMaxItersForQuality

func GetMaxItersForQuality(tls *libc.TLS, quality int32) int32

Returns the maximum number of hash chain lookups to do for a given compression quality. Return value in range [8, 86].

func GetMetaIndex

func GetMetaIndex(tls *libc.TLS, image uintptr, xsize int32, bits int32, x int32, y int32) int32

func GetMin

func GetMin(tls *libc.TLS, a int32, b int32) int32

Mostly used to reduce code size + readability

func GetNextKey

func GetNextKey(tls *libc.TLS, key uint32, len int32) uint32

Returns reverse(reverse(key, len) + 1, len), where reverse(key, len) is the bit-wise reversal of the len least significant bits of key.

func GetNumColors

func GetNumColors(tls *libc.TLS, data uintptr, width int32, height int32, stride int32) int32

func GetOutputBuffer

func GetOutputBuffer(tls *libc.TLS, idec uintptr) uintptr

func GetPSNR

func GetPSNR(tls *libc.TLS, mse uint64, size uint64) float64

func GetPSNR1

func GetPSNR1(tls *libc.TLS, v float64, size float64) float64

func GetPSNR2

func GetPSNR2(tls *libc.TLS, err uint64, size uint64) float64

func GetPixPairHash64

func GetPixPairHash64(tls *libc.TLS, argb uintptr) uint32

func GetPredictionCostCrossColorBlue

func GetPredictionCostCrossColorBlue(tls *libc.TLS, argb uintptr, stride int32, tile_width int32, tile_height int32, prev_x VP8LMultipliers, prev_y VP8LMultipliers, green_to_blue int32, red_to_blue int32, accumulated_blue_histo uintptr) float32

func GetPredictionCostCrossColorRed

func GetPredictionCostCrossColorRed(tls *libc.TLS, argb uintptr, stride int32, tile_width int32, tile_height int32, prev_x VP8LMultipliers, prev_y VP8LMultipliers, green_to_red int32, accumulated_red_histo uintptr) float32

func GetProba

func GetProba(tls *libc.TLS, a int32, b int32) int32

func GetResidual

func GetResidual(tls *libc.TLS, width int32, height int32, upper_row uintptr, current_row uintptr, max_diffs uintptr, mode int32, x_start int32, x_end int32, y int32, max_quantization int32, exact int32, used_subtract_green int32, out uintptr)

Stores the difference between the pixel and its prediction in "out". In case of a lossy encoding, updates the source image to avoid propagating the deviation further to pixels which depend on the current pixel for their predictions.

func GetResidualCost_C

func GetResidualCost_C(tls *libc.TLS, ctx0 int32, res uintptr) int32

func GetSSE

func GetSSE(tls *libc.TLS, a uintptr, b uintptr, w int32, h int32) int32

func GetScale

func GetScale(tls *libc.TLS, a uint32, inverse int32) uint32

func GetTransformBits

func GetTransformBits(tls *libc.TLS, method int32, histo_bits int32) int32

func GetWindowSizeForHashChain

func GetWindowSizeForHashChain(tls *libc.TLS, quality int32, xsize int32) int32

func GradientFilter_C

func GradientFilter_C(tls *libc.TLS, data uintptr, width int32, height int32, stride int32, filtered_data uintptr)

func GradientPredictor

func GradientPredictor(tls *libc.TLS, a uint8, b uint8, c uint8) int32

func GradientPredictor_C

func GradientPredictor_C(tls *libc.TLS, a uint8, b uint8, c uint8) int32

func GradientUnfilter_C

func GradientUnfilter_C(tls *libc.TLS, prev uintptr, in uintptr, out uintptr, width int32)

func HD4

func HD4(tls *libc.TLS, dst uintptr, top uintptr)

func HD4_C

func HD4_C(tls *libc.TLS, dst uintptr)

func HE16_C

func HE16_C(tls *libc.TLS, dst uintptr)

func HE4

func HE4(tls *libc.TLS, dst uintptr, top uintptr)

func HE4_C

func HE4_C(tls *libc.TLS, dst uintptr)

func HE8uv_C

func HE8uv_C(tls *libc.TLS, dst uintptr)

func HFilter

func HFilter(tls *libc.TLS, p uintptr)

horizontal accumulation. We use mirror replication of missing pixels, as it's a little easier to implement (surprisingly).

func HFilter16_C

func HFilter16_C(tls *libc.TLS, p uintptr, stride int32, thresh int32, ithresh int32, hev_thresh int32)

func HFilter16i_C

func HFilter16i_C(tls *libc.TLS, p uintptr, stride int32, thresh int32, ithresh int32, hev_thresh int32)

func HFilter8_C

func HFilter8_C(tls *libc.TLS, u uintptr, v uintptr, stride int32, thresh int32, ithresh int32, hev_thresh int32)

func HFilter8i_C

func HFilter8i_C(tls *libc.TLS, u uintptr, v uintptr, stride int32, thresh int32, ithresh int32, hev_thresh int32)

func HU4

func HU4(tls *libc.TLS, dst uintptr, top uintptr)

func HU4_C

func HU4_C(tls *libc.TLS, dst uintptr)

func HasAlpha32b_C

func HasAlpha32b_C(tls *libc.TLS, src uintptr, length int32) int32

func HasAlpha8b_C

func HasAlpha8b_C(tls *libc.TLS, src uintptr, length int32) int32

func HashPix

func HashPix(tls *libc.TLS, pix uint32) uint32

func Hev

func Hev(tls *libc.TLS, p uintptr, step int32, thresh int32) int32

func HistoQueueClear

func HistoQueueClear(tls *libc.TLS, histo_queue uintptr)

func HistoQueueInit

func HistoQueueInit(tls *libc.TLS, histo_queue uintptr, max_size int32) int32

func HistoQueuePopPair

func HistoQueuePopPair(tls *libc.TLS, histo_queue uintptr, pair uintptr)

Pop a specific pair in the queue by replacing it with the last one and shrinking the queue.

func HistoQueuePush

func HistoQueuePush(tls *libc.TLS, histo_queue uintptr, histograms uintptr, idx1 int32, idx2 int32, threshold float64) float64

Create a pair from indices "idx1" and "idx2" provided its cost is inferior to "threshold", a negative entropy. It returns the cost of the pair, or 0. if it superior to threshold.

func HistoQueueUpdateHead

func HistoQueueUpdateHead(tls *libc.TLS, histo_queue uintptr, pair uintptr)

Check whether a pair in the queue should be updated as head or not.

func HistoQueueUpdatePair

func HistoQueueUpdatePair(tls *libc.TLS, h1 uintptr, h2 uintptr, threshold float64, pair uintptr)

Update the cost diff and combo of a pair of histograms. This needs to be called when the the histograms have been merged with a third one.

func HistogramAdd

func HistogramAdd(tls *libc.TLS, a uintptr, b uintptr, out uintptr)

func HistogramAddEval

func HistogramAddEval(tls *libc.TLS, a uintptr, b uintptr, out uintptr, cost_threshold float64) float64

Performs out = a + b, computing the cost C(a+b) - C(a) - C(b) while comparing to the threshold value 'cost_threshold'. The score returned is

Score = C(a+b) - C(a) - C(b), where C(a) + C(b) is known and fixed.

Since the previous score passed is 'cost_threshold', we only need to compare the partial cost against 'cost_threshold + C(a) + C(b)' to possibly bail-out early.

func HistogramAddThresh

func HistogramAddThresh(tls *libc.TLS, a uintptr, b uintptr, cost_threshold float64) float64

Same as HistogramAddEval(), except that the resulting histogram is not stored. Only the cost C(a+b) - C(a) is evaluated. We omit the term C(b) which is constant over all the evaluations.

func HistogramAnalyzeEntropyBin

func HistogramAnalyzeEntropyBin(tls *libc.TLS, image_histo uintptr, bin_map uintptr, low_effort int32)

Partition histograms to different entropy bins for three dominant (literal, red and blue) symbol costs and compute the histogram aggregate bit_cost.

func HistogramBuild

func HistogramBuild(tls *libc.TLS, xsize int32, histo_bits int32, backward_refs uintptr, image_histo uintptr)

Construct the histograms from backward references.

func HistogramClear

func HistogramClear(tls *libc.TLS, p uintptr)

func HistogramCombineEntropyBin

func HistogramCombineEntropyBin(tls *libc.TLS, image_histo uintptr, num_used uintptr, clusters uintptr, cluster_mappings uintptr, cur_combo uintptr, bin_map uintptr, num_bins int32, combine_cost_factor float64, low_effort int32)

Merges some histograms with same bin_id together if it's advantageous. Sets the remaining histograms to NULL.

func HistogramCombineGreedy

func HistogramCombineGreedy(tls *libc.TLS, image_histo uintptr, num_used uintptr) int32

Combines histograms by continuously choosing the one with the highest cost reduction.

func HistogramCombineStochastic

func HistogramCombineStochastic(tls *libc.TLS, image_histo uintptr, num_used uintptr, min_cluster_size int32, do_greedy uintptr) int32

func HistogramCopy

func HistogramCopy(tls *libc.TLS, src uintptr, dst uintptr)

func HistogramCopyAndAnalyze

func HistogramCopyAndAnalyze(tls *libc.TLS, orig_histo uintptr, image_histo uintptr, num_used uintptr, histogram_symbols uintptr)

func HistogramRemap

func HistogramRemap(tls *libc.TLS, in uintptr, out uintptr, symbols uintptr)

Find the best 'out' histogram for each of the 'in' histograms. At call-time, 'out' contains the histograms of the clusters. Note: we assume that out[]->bit_cost_ is already up-to-date.

func HistogramSetRemoveHistogram

func HistogramSetRemoveHistogram(tls *libc.TLS, set uintptr, i int32, num_used uintptr)

Removes the histogram 'i' from 'set' by setting it to NULL.

func HistogramSetResetPointers

func HistogramSetResetPointers(tls *libc.TLS, set uintptr, cache_bits int32)

Resets the pointers of the histograms to point to the bit buffer in the set.

func HistogramSetTotalSize

func HistogramSetTotalSize(tls *libc.TLS, size int32, cache_bits int32) uint64

Returns the total size of the VP8LHistogramSet.

func HistogramSwap

func HistogramSwap(tls *libc.TLS, A uintptr, B uintptr)

Swap two histogram pointers.

func HorizontalFilter_C

func HorizontalFilter_C(tls *libc.TLS, data uintptr, width int32, height int32, stride int32, filtered_data uintptr)

func HorizontalPred

func HorizontalPred(tls *libc.TLS, dst uintptr, left uintptr, size int32)

func HorizontalUnfilter_C

func HorizontalUnfilter_C(tls *libc.TLS, prev uintptr, in uintptr, out uintptr, width int32)

func IDecCheckStatus

func IDecCheckStatus(tls *libc.TLS, idec uintptr) uint32

func IDecError

func IDecError(tls *libc.TLS, idec uintptr, error uint32) uint32

func IDecode

func IDecode(tls *libc.TLS, idec uintptr) uint32

Main decoding loop

func ITransformOne

func ITransformOne(tls *libc.TLS, ref uintptr, in uintptr, dst uintptr)

func ITransform_C

func ITransform_C(tls *libc.TLS, ref uintptr, in uintptr, dst uintptr, do_two int32)

func Import

func Import(tls *libc.TLS, picture uintptr, rgb uintptr, rgb_stride int32, step int32, swap_rb int32, import_alpha int32) int32

func ImportBlock

func ImportBlock(tls *libc.TLS, src uintptr, src_stride int32, dst uintptr, w int32, h int32, size int32)

func ImportLine

func ImportLine(tls *libc.TLS, src uintptr, src_stride int32, dst uintptr, len int32, total_len int32)

func ImportOneRow

func ImportOneRow(tls *libc.TLS, r_ptr uintptr, g_ptr uintptr, b_ptr uintptr, step int32, pic_width int32, dst uintptr)

func ImportYUVAFromRGBA

func ImportYUVAFromRGBA(tls *libc.TLS, r_ptr uintptr, g_ptr uintptr, b_ptr uintptr, a_ptr uintptr, step int32, rgb_stride int32, dithering float32, use_iterative_conversion int32, picture uintptr) int32

func Init

func Init(tls *libc.TLS, worker uintptr)

func InitCorrectionLUT

func InitCorrectionLUT(tls *libc.TLS, lut uintptr, min_dist int32)

func InitFilterTrial

func InitFilterTrial(tls *libc.TLS, score uintptr)

func InitGammaTables

func InitGammaTables(tls *libc.TLS)

func InitGammaTablesS

func InitGammaTablesS(tls *libc.TLS)

func InitGammaTablesS_body

func InitGammaTablesS_body(tls *libc.TLS)

func InitGammaTables_body

func InitGammaTables_body(tls *libc.TLS)

func InitGetCoeffs

func InitGetCoeffs(tls *libc.TLS)

func InitGetCoeffs_body

func InitGetCoeffs_body(tls *libc.TLS)

func InitHistogram

func InitHistogram(tls *libc.TLS, histo uintptr)

func InitIo

func InitIo(tls *libc.TLS, dec uintptr, io uintptr)

func InitLeft

func InitLeft(tls *libc.TLS, it uintptr)

func InitMemBuffer

func InitMemBuffer(tls *libc.TLS, mem uintptr)

func InitMetadata

func InitMetadata(tls *libc.TLS, hdr uintptr)

func InitParams

func InitParams(tls *libc.TLS, data uintptr, width int32, height int32, stride int32, radius int32, p uintptr) int32

Initialize all params.

func InitPassStats

func InitPassStats(tls *libc.TLS, enc uintptr, s uintptr) int32

func InitRGBRescaler

func InitRGBRescaler(tls *libc.TLS, io uintptr, p uintptr) int32

func InitScore

func InitScore(tls *libc.TLS, rd uintptr)

Init/Copy the common fields in score.

func InitSegmentJob

func InitSegmentJob(tls *libc.TLS, enc uintptr, job uintptr, start_row int32, end_row int32)

initialize the job struct with some tasks to perform

func InitTables

func InitTables(tls *libc.TLS)

func InitThreadContext

func InitThreadContext(tls *libc.TLS, dec uintptr) int32

Initialize multi/single-thread worker

func InitTop

func InitTop(tls *libc.TLS, it uintptr)

func InitVP8Encoder

func InitVP8Encoder(tls *libc.TLS, config uintptr, picture uintptr) uintptr

func InitYUVRescaler

func InitYUVRescaler(tls *libc.TLS, io uintptr, p uintptr) int32

func InitialHuffmanCost

func InitialHuffmanCost(tls *libc.TLS) float64

func InsertInterval

func InsertInterval(tls *libc.TLS, manager uintptr, interval_in uintptr, cost float32, position int32, start int32, end int32)

Insert an interval in the list contained in the manager by starting at interval_in as a hint. The intervals are sorted by start_ value.

func Interpolate

func Interpolate(tls *libc.TLS, v int32) int32

func InterpolateTwoRows

func InterpolateTwoRows(tls *libc.TLS, best_y uintptr, prev_uv uintptr, cur_uv uintptr, next_uv uintptr, w int32, out1 uintptr, out2 uintptr)

func Intra16Preds_C

func Intra16Preds_C(tls *libc.TLS, dst uintptr, left uintptr, top uintptr)

func Intra4Preds_C

func Intra4Preds_C(tls *libc.TLS, dst uintptr, top uintptr)

Left samples are top[-5 .. -2], top_left is top[-1], top are located at top[0..3], and top right is top[4..7]

func IntraChromaPreds_C

func IntraChromaPreds_C(tls *libc.TLS, dst uintptr, left uintptr, top uintptr)

func Is8bOptimizable

func Is8bOptimizable(tls *libc.TLS, hdr uintptr) int32

Row-processing for the special case when alpha data contains only one transform (color indexing), and trivial non-green literals.

func IsFlatSource16

func IsFlatSource16(tls *libc.TLS, src uintptr) int32

func IsFlat_C

func IsFlat_C(tls *libc.TLS, levels uintptr, num_blocks int32, thresh int32) int32

func IsNear

func IsNear(tls *libc.TLS, a uint32, b uint32, limit int32) int32

Checks if distance between corresponding channel values of pixels a and b is within the given limit.

func IsSmooth

func IsSmooth(tls *libc.TLS, prev_row uintptr, curr_row uintptr, next_row uintptr, ix int32, limit int32) int32

func IsTransparentARGBArea

func IsTransparentARGBArea(tls *libc.TLS, ptr uintptr, stride int32, size int32) int32

func IsVP8XNeeded

func IsVP8XNeeded(tls *libc.TLS, enc uintptr) int32

func IsValidColorspace

func IsValidColorspace(tls *libc.TLS, webp_csp_mode int32) int32

Check that webp_csp_mode is within the bounds of WEBP_CSP_MODE. Convert to an integer to handle both the unsigned/signed enum cases without the need for casting to remove type limit warnings.

func LD4

func LD4(tls *libc.TLS, dst uintptr, top uintptr)

func LD4_C

func LD4_C(tls *libc.TLS, dst uintptr)

func Launch

func Launch(tls *libc.TLS, worker uintptr)

func LinearToGamma

func LinearToGamma(tls *libc.TLS, base_value uint32, shift int32) int32

Convert a linear value 'v' to YUV_FIX+2 fixed-point precision U/V value, suitable for RGBToU/V calls.

func LinearToGammaS

func LinearToGammaS(tls *libc.TLS, value uint32) uint32

func LinearToGammaWeighted

func LinearToGammaWeighted(tls *libc.TLS, src uintptr, a_ptr uintptr, total_a uint32, step int32, rgb_stride int32) int32

func MBAnalyze

func MBAnalyze(tls *libc.TLS, it uintptr, alphas uintptr, alpha uintptr, uv_alpha uintptr)

func MBAnalyzeBestIntra16Mode

func MBAnalyzeBestIntra16Mode(tls *libc.TLS, it uintptr) int32

func MBAnalyzeBestUVMode

func MBAnalyzeBestUVMode(tls *libc.TLS, it uintptr) int32

func MakeARGB32

func MakeARGB32(tls *libc.TLS, a int32, r int32, g int32, b int32) uint32

func MakeARGB321

func MakeARGB321(tls *libc.TLS, r int32, g int32, b int32) uint32

func MakeInputImageCopy

func MakeInputImageCopy(tls *libc.TLS, enc uintptr) uint32

func MapARGB_C

func MapARGB_C(tls *libc.TLS, src uintptr, color_map uintptr, dst uintptr, y_start int32, y_end int32, width int32)

func MapAlpha_C

func MapAlpha_C(tls *libc.TLS, src uintptr, color_map uintptr, dst uintptr, y_start int32, y_end int32, width int32)

func MapConfigToTools

func MapConfigToTools(tls *libc.TLS, enc uintptr)

func MapImageFromPalette

func MapImageFromPalette(tls *libc.TLS, enc uintptr, in_place int32) uint32

Note: Expects "enc->palette_" to be set properly.

func MaxDiffAroundPixel

func MaxDiffAroundPixel(tls *libc.TLS, current uint32, up uint32, down uint32, left uint32, right uint32) int32

func MaxDiffBetweenPixels

func MaxDiffBetweenPixels(tls *libc.TLS, p1 uint32, p2 uint32) int32

func MaxDiffsForRow

func MaxDiffsForRow(tls *libc.TLS, width int32, stride int32, argb uintptr, max_diffs uintptr, used_subtract_green int32)

func MaxFindCopyLength

func MaxFindCopyLength(tls *libc.TLS, len int32) int32

func Mean16x4_C

func Mean16x4_C(tls *libc.TLS, ref uintptr, dc uintptr)

func MemDataSize

func MemDataSize(tls *libc.TLS, mem uintptr) uint64

func MergeJobs

func MergeJobs(tls *libc.TLS, src uintptr, dst uintptr)

func MinSize

func MinSize(tls *libc.TLS, a int32, b int32) int32

func Mult

func Mult(tls *libc.TLS, x uint8, mult uint32) uint32

func MultHi

func MultHi(tls *libc.TLS, v int32, coeff int32) int32

func MultipliersClear

func MultipliersClear(tls *libc.TLS, m uintptr)

func MultipliersToColorCode

func MultipliersToColorCode(tls *libc.TLS, m uintptr) uint32

func MyRand

func MyRand(tls *libc.TLS, seed uintptr) uint32

Implement a Lehmer random number generator with a multiplicative constant of 48271 and a modulo constant of 2^31 - 1.

func NearLossless

func NearLossless(tls *libc.TLS, xsize int32, ysize int32, argb_src uintptr, stride int32, limit_bits int32, copy_buffer uintptr, argb_dst uintptr)

Adjusts pixel values of image with given maximum error.

func NearLossless1

func NearLossless1(tls *libc.TLS, value uint32, predict uint32, max_quantization int32, max_diff int32, used_subtract_green int32) uint32

Quantize every component of the difference between the actual pixel value and its prediction to a multiple of a quantization (a power of 2, not larger than max_quantization which is a power of 2, smaller than max_diff). Take care if value and predict have undergone subtract green, which means that red and blue are represented as offsets from green.

func NearLosslessComponent

func NearLosslessComponent(tls *libc.TLS, value uint8, predict uint8, boundary uint8, quantization int32) uint8

Quantize the difference between the actual component value and its prediction to a multiple of quantization, working modulo 256, taking care not to cross a boundary (inclusive upper limit).

func NearLosslessDiff

func NearLosslessDiff(tls *libc.TLS, a uint8, b uint8) uint8

func NeedCompressedAlpha

func NeedCompressedAlpha(tls *libc.TLS, idec uintptr) int32

Check if we need to preserve the compressed alpha data, as it may not have been decoded yet.

func NeedsFilter2_C

func NeedsFilter2_C(tls *libc.TLS, p uintptr, step int32, t int32, it int32) int32

func NeedsFilter_C

func NeedsFilter_C(tls *libc.TLS, p uintptr, step int32, t int32) int32

func NewDecoder

func NewDecoder(tls *libc.TLS, output_buffer uintptr, features uintptr) uintptr

func NextTableBitSize

func NextTableBitSize(tls *libc.TLS, count uintptr, len int32, root_bits int32) int32

Returns the table width of the next 2nd level table. count is the histogram of bit lengths for the remaining symbols, len is the code length of the next processed symbol

func NzCodeBits

func NzCodeBits(tls *libc.TLS, nz_coeffs uint32, nz int32, dc_nz int32) uint32

func OneStatPass

func OneStatPass(tls *libc.TLS, enc uintptr, rd_opt uint32, nb_mbs int32, percent_delta int32, s uintptr) uint64

func OptimizeHistogramSymbols

func OptimizeHistogramSymbols(tls *libc.TLS, set uintptr, cluster_mappings uintptr, num_clusters int32, cluster_mappings_tmp uintptr, symbols uintptr)

Given a HistogramSet 'set', the mapping of clusters 'cluster_mapping' and the current assignment of the cells in 'symbols', merge the clusters and assign the smallest possible clusters values.

func OptimizeHuffmanForRle

func OptimizeHuffmanForRle(tls *libc.TLS, length int32, good_for_rle uintptr, counts uintptr)

Change the population counts in a way that the consequent Huffman tree compression, especially its RLE-part, give smaller output.

func PackRGB_C

func PackRGB_C(tls *libc.TLS, r uintptr, g uintptr, b uintptr, len int32, step int32, out uintptr)

func PairComparison

func PairComparison(tls *libc.TLS, idx1 uintptr, idx2 uintptr) int32

Perform histogram aggregation using a stochastic approach. 'do_greedy' is set to 1 if a greedy approach needs to be performed afterwards, 0 otherwise.

func PaletteColorDistance

func PaletteColorDistance(tls *libc.TLS, col1 uint32, col2 uint32) uint32

Computes a value that is related to the entropy created by the palette entry diff.

Note that the last & 0xff is a no-operation in the next statement, but removed by most compilers and is here only for regularity of the code.

func PaletteCompareColorsForQsort

func PaletteCompareColorsForQsort(tls *libc.TLS, p1 uintptr, p2 uintptr) int32

func PaletteComponentDistance

func PaletteComponentDistance(tls *libc.TLS, v uint32) uint32

func PaletteHasNonMonotonousDeltas

func PaletteHasNonMonotonousDeltas(tls *libc.TLS, palette uintptr, num_colors int32) int32

The palette has been sorted by alpha. This function checks if the other components of the palette have a monotonic development with regards to position in the palette. If all have monotonic development, there is no benefit to re-organize them greedily. A monotonic development would be spotted in green-only situations (like lossy alpha) or gray-scale images.

func PaletteSortMinimizeDeltas

func PaletteSortMinimizeDeltas(tls *libc.TLS, palette_sorted uintptr, num_colors int32, palette uintptr)

func PaletteSortModifiedZeng

func PaletteSortModifiedZeng(tls *libc.TLS, pic uintptr, palette_sorted uintptr, num_colors uint32, palette uintptr) uint32

Implements the modified Zeng method from "A Survey on Palette Reordering Methods for Improving the Compression of Color-Indexed Images" by Armando J. Pinho and Antonio J. R. Neves.

func ParseFilterHeader

func ParseFilterHeader(tls *libc.TLS, br uintptr, dec uintptr) int32

Paragraph 9.4

func ParseFrame

func ParseFrame(tls *libc.TLS, dec uintptr, io uintptr) int32

func ParseHeadersInternal

func ParseHeadersInternal(tls *libc.TLS, data uintptr, data_size uint64, width uintptr, height uintptr, has_alpha uintptr, has_animation uintptr, format uintptr, headers uintptr) uint32

Fetch '*width', '*height', '*has_alpha' and fill out 'headers' based on 'data'. All the output parameters may be NULL. If 'headers' is NULL only the minimal amount will be read to fetch the remaining parameters. If 'headers' is non-NULL this function will attempt to locate both alpha data (with or without a VP8X chunk) and the bitstream chunk (VP8/VP8L). Note: The following chunk sequences (before the raw VP8/VP8L data) are considered valid by this function: RIFF + VP8(L) RIFF + VP8X + (optional chunks) + VP8(L) ALPH + VP8 <-- Not a valid WebP format: only allowed for internal purpose. VP8(L) <-- Not a valid WebP format: only allowed for internal purpose.

func ParseIntraMode

func ParseIntraMode(tls *libc.TLS, br uintptr, dec uintptr, mb_x int32)

func ParseOptionalChunks

func ParseOptionalChunks(tls *libc.TLS, data uintptr, data_size uintptr, riff_size uint64, alpha_data uintptr, alpha_size uintptr) uint32

Skips to the next VP8/VP8L chunk header in the data given the size of the RIFF chunk 'riff_size'. Returns VP8_STATUS_BITSTREAM_ERROR if any invalid chunk size is encountered,

VP8_STATUS_NOT_ENOUGH_DATA in case of insufficient data, and
VP8_STATUS_OK otherwise.

If an alpha chunk is found, *alpha_data and *alpha_size are set appropriately.

func ParsePartitions

func ParsePartitions(tls *libc.TLS, dec uintptr, buf uintptr, size uint64) uint32

Paragraph 9.5 This function returns VP8_STATUS_SUSPENDED if we don't have all the necessary data in 'buf'. This case is not necessarily an error (for incremental decoding). Still, no bitreader is ever initialized to make it possible to read unavailable memory. If we don't even have the partitions' sizes, than VP8_STATUS_NOT_ENOUGH_DATA is returned, and this is an unrecoverable error. If the partitions were positioned ok, VP8_STATUS_OK is returned.

func ParseRIFF

func ParseRIFF(tls *libc.TLS, data uintptr, data_size uintptr, have_all_data int32, riff_size uintptr) uint32

Validates the RIFF container (if detected) and skips over it. If a RIFF container is detected, returns:

VP8_STATUS_BITSTREAM_ERROR for invalid header,
VP8_STATUS_NOT_ENOUGH_DATA for truncated data if have_all_data is true,

and VP8_STATUS_OK otherwise. In case there are not enough bytes (partial RIFF container), return 0 for *riff_size. Else return the RIFF size extracted from the header.

func ParseResiduals

func ParseResiduals(tls *libc.TLS, dec uintptr, mb uintptr, token_br uintptr) int32

func ParseSegmentHeader

func ParseSegmentHeader(tls *libc.TLS, br uintptr, hdr uintptr, proba uintptr) int32

Paragraph 9.3

func ParseVP8Header

func ParseVP8Header(tls *libc.TLS, data_ptr uintptr, data_size uintptr, have_all_data int32, riff_size uint64, chunk_size uintptr, is_lossless uintptr) uint32

Validates the VP8/VP8L Header ("VP8 nnnn" or "VP8L nnnn") and skips over it. Returns VP8_STATUS_BITSTREAM_ERROR for invalid (chunk larger than

riff_size) VP8/VP8L header,
VP8_STATUS_NOT_ENOUGH_DATA in case of insufficient data, and
VP8_STATUS_OK otherwise.

If a VP8/VP8L chunk is found, *chunk_size is set to the total number of bytes extracted from the VP8/VP8L chunk header. The flag '*is_lossless' is set to 1 in case of VP8L chunk / raw VP8L data.

func ParseVP8X

func ParseVP8X(tls *libc.TLS, data uintptr, data_size uintptr, found_vp8x uintptr, width_ptr uintptr, height_ptr uintptr, flags_ptr uintptr) uint32

Validates the VP8X header and skips over it. Returns VP8_STATUS_BITSTREAM_ERROR for invalid VP8X header,

VP8_STATUS_NOT_ENOUGH_DATA in case of insufficient data, and
VP8_STATUS_OK otherwise.

If a VP8X chunk is found, found_vp8x is set to true and *width_ptr, *height_ptr and *flags_ptr are set to the corresponding values extracted from the VP8X chunk.

func PickBestIntra16

func PickBestIntra16(tls *libc.TLS, it uintptr, rd uintptr)

func PickBestIntra4

func PickBestIntra4(tls *libc.TLS, it uintptr, rd uintptr) int32

func PickBestUV

func PickBestUV(tls *libc.TLS, it uintptr, rd uintptr)

func PictureARGBToYUVA

func PictureARGBToYUVA(tls *libc.TLS, picture uintptr, colorspace uint32, dithering float32, use_iterative_conversion int32) int32

func PictureGrabSpecs

func PictureGrabSpecs(tls *libc.TLS, src uintptr, dst uintptr)

Grab the 'specs' (writer, *opaque, width, height...) from 'src' and copy them into 'dst'. Mark 'dst' as not owning any memory.

func PixOrCopyCacheIdx

func PixOrCopyCacheIdx(tls *libc.TLS, p uintptr) uint32

func PixOrCopyDistance

func PixOrCopyDistance(tls *libc.TLS, p uintptr) uint32

func PixOrCopyIsCacheIdx

func PixOrCopyIsCacheIdx(tls *libc.TLS, p uintptr) int32

func PixOrCopyIsCopy

func PixOrCopyIsCopy(tls *libc.TLS, p uintptr) int32

func PixOrCopyIsLiteral

func PixOrCopyIsLiteral(tls *libc.TLS, p uintptr) int32

func PixOrCopyLength

func PixOrCopyLength(tls *libc.TLS, p uintptr) uint32

func PixOrCopyLiteral

func PixOrCopyLiteral(tls *libc.TLS, p uintptr, component int32) uint32

func PlaneCodeToDistance

func PlaneCodeToDistance(tls *libc.TLS, xsize int32, plane_code int32) int32

func PopInterval

func PopInterval(tls *libc.TLS, manager uintptr, interval uintptr)

Pop an interval in the manager.

func PopulationCost

func PopulationCost(tls *libc.TLS, population uintptr, length int32, trivial_sym uintptr, is_used uintptr) float64

Get the symbol entropy for the distribution 'population'. Set 'trivial_sym', if there's only one symbol present in the distribution.

func PositionOrphanInterval

func PositionOrphanInterval(tls *libc.TLS, manager uintptr, current uintptr, previous uintptr)

Given a current orphan interval and its previous interval, before it was orphaned (which can be NULL), set it at the right place in the list of intervals using the start_ ordering and the previous interval as a hint.

func PostLoopFinalize

func PostLoopFinalize(tls *libc.TLS, it uintptr, ok int32) int32

func PreLoopInitialize

func PreLoopInitialize(tls *libc.TLS, enc uintptr) int32

func PrecomputeFilterStrengths

func PrecomputeFilterStrengths(tls *libc.TLS, dec uintptr)

func PredictBatch

func PredictBatch(tls *libc.TLS, mode int32, x_start int32, y int32, num_pixels int32, current uintptr, upper uintptr, out uintptr)

func PredictLine_C

func PredictLine_C(tls *libc.TLS, src uintptr, pred uintptr, dst uintptr, length int32, inverse int32)

func PredictionCostCrossColor

func PredictionCostCrossColor(tls *libc.TLS, accumulated uintptr, counts uintptr) float32

func PredictionCostSpatial

func PredictionCostSpatial(tls *libc.TLS, counts uintptr, weight_0 int32, exp_val float64) float32

func PredictionCostSpatialHistogram

func PredictionCostSpatialHistogram(tls *libc.TLS, accumulated uintptr, tile uintptr) float32

func PredictorAdd0_C

func PredictorAdd0_C(tls *libc.TLS, in uintptr, upper uintptr, num_pixels int32, out uintptr)

func PredictorAdd10_C

func PredictorAdd10_C(tls *libc.TLS, in uintptr, upper uintptr, num_pixels int32, out uintptr)

func PredictorAdd11_C

func PredictorAdd11_C(tls *libc.TLS, in uintptr, upper uintptr, num_pixels int32, out uintptr)

func PredictorAdd12_C

func PredictorAdd12_C(tls *libc.TLS, in uintptr, upper uintptr, num_pixels int32, out uintptr)

func PredictorAdd13_C

func PredictorAdd13_C(tls *libc.TLS, in uintptr, upper uintptr, num_pixels int32, out uintptr)

func PredictorAdd1_C

func PredictorAdd1_C(tls *libc.TLS, in uintptr, upper uintptr, num_pixels int32, out uintptr)

func PredictorAdd2_C

func PredictorAdd2_C(tls *libc.TLS, in uintptr, upper uintptr, num_pixels int32, out uintptr)

func PredictorAdd3_C

func PredictorAdd3_C(tls *libc.TLS, in uintptr, upper uintptr, num_pixels int32, out uintptr)

func PredictorAdd4_C

func PredictorAdd4_C(tls *libc.TLS, in uintptr, upper uintptr, num_pixels int32, out uintptr)

func PredictorAdd5_C

func PredictorAdd5_C(tls *libc.TLS, in uintptr, upper uintptr, num_pixels int32, out uintptr)

func PredictorAdd6_C

func PredictorAdd6_C(tls *libc.TLS, in uintptr, upper uintptr, num_pixels int32, out uintptr)

func PredictorAdd7_C

func PredictorAdd7_C(tls *libc.TLS, in uintptr, upper uintptr, num_pixels int32, out uintptr)

func PredictorAdd8_C

func PredictorAdd8_C(tls *libc.TLS, in uintptr, upper uintptr, num_pixels int32, out uintptr)

func PredictorAdd9_C

func PredictorAdd9_C(tls *libc.TLS, in uintptr, upper uintptr, num_pixels int32, out uintptr)

func PredictorInverseTransform_C

func PredictorInverseTransform_C(tls *libc.TLS, transform uintptr, y_start int32, y_end int32, in uintptr, out uintptr)

Inverse prediction.

func PredictorSub0_C

func PredictorSub0_C(tls *libc.TLS, in uintptr, upper uintptr, num_pixels int32, out uintptr)

func PredictorSub10_C

func PredictorSub10_C(tls *libc.TLS, in uintptr, upper uintptr, num_pixels int32, out uintptr)

func PredictorSub11_C

func PredictorSub11_C(tls *libc.TLS, in uintptr, upper uintptr, num_pixels int32, out uintptr)

func PredictorSub12_C

func PredictorSub12_C(tls *libc.TLS, in uintptr, upper uintptr, num_pixels int32, out uintptr)

func PredictorSub13_C

func PredictorSub13_C(tls *libc.TLS, in uintptr, upper uintptr, num_pixels int32, out uintptr)

func PredictorSub1_C

func PredictorSub1_C(tls *libc.TLS, in uintptr, upper uintptr, num_pixels int32, out uintptr)

func PredictorSub2_C

func PredictorSub2_C(tls *libc.TLS, in uintptr, upper uintptr, num_pixels int32, out uintptr)

func PredictorSub3_C

func PredictorSub3_C(tls *libc.TLS, in uintptr, upper uintptr, num_pixels int32, out uintptr)

func PredictorSub4_C

func PredictorSub4_C(tls *libc.TLS, in uintptr, upper uintptr, num_pixels int32, out uintptr)

func PredictorSub5_C

func PredictorSub5_C(tls *libc.TLS, in uintptr, upper uintptr, num_pixels int32, out uintptr)

func PredictorSub6_C

func PredictorSub6_C(tls *libc.TLS, in uintptr, upper uintptr, num_pixels int32, out uintptr)

func PredictorSub7_C

func PredictorSub7_C(tls *libc.TLS, in uintptr, upper uintptr, num_pixels int32, out uintptr)

func PredictorSub8_C

func PredictorSub8_C(tls *libc.TLS, in uintptr, upper uintptr, num_pixels int32, out uintptr)

func PredictorSub9_C

func PredictorSub9_C(tls *libc.TLS, in uintptr, upper uintptr, num_pixels int32, out uintptr)

func PrepareMapToPalette

func PrepareMapToPalette(tls *libc.TLS, palette uintptr, num_colors uint32, sorted uintptr, idx_map uintptr)

Sort palette in increasing order and prepare an inverse mapping array.

func PreprocessARGB

func PreprocessARGB(tls *libc.TLS, r_ptr uintptr, g_ptr uintptr, b_ptr uintptr, step int32, rgb_stride int32, picture uintptr) int32

func ProcessRows

func ProcessRows(tls *libc.TLS, dec uintptr, row int32)

Processes (transforms, scales & color-converts) the rows decoded after the last call.

func PushInterval

func PushInterval(tls *libc.TLS, manager uintptr, distance_cost float64, position int32, len int32)

Given a new cost interval defined by its start at position, its length value and distance_cost, add its contributions to the previous intervals and costs. If handling the interval or one of its subintervals becomes to heavy, its contribution is added to the costs right away.

func Put16

func Put16(tls *libc.TLS, v int32, dst uintptr)

func Put8x8uv

func Put8x8uv(tls *libc.TLS, value uint8, dst uintptr)

helper for chroma-DC predictions

func PutAlphaChunk

func PutAlphaChunk(tls *libc.TLS, enc uintptr) uint32

func PutCoeffs

func PutCoeffs(tls *libc.TLS, bw uintptr, ctx int32, res uintptr) int32

func PutFilterHeader

func PutFilterHeader(tls *libc.TLS, bw uintptr, hdr uintptr)

Filtering parameters header

func PutI16Mode

func PutI16Mode(tls *libc.TLS, bw uintptr, mode int32)

func PutI4Mode

func PutI4Mode(tls *libc.TLS, bw uintptr, mode int32, prob uintptr) int32

func PutLE16

func PutLE16(tls *libc.TLS, data uintptr, val int32)

Store 16, 24 or 32 bits in little-endian order.

func PutLE24

func PutLE24(tls *libc.TLS, data uintptr, val int32)

func PutLE32

func PutLE32(tls *libc.TLS, data uintptr, val uint32)

func PutPaddingByte

func PutPaddingByte(tls *libc.TLS, pic uintptr) int32

func PutQuant

func PutQuant(tls *libc.TLS, bw uintptr, enc uintptr)

Nominal quantization parameters

func PutRIFFHeader

func PutRIFFHeader(tls *libc.TLS, enc uintptr, riff_size uint64) uint32

func PutSegment

func PutSegment(tls *libc.TLS, bw uintptr, s int32, p uintptr)

func PutSegmentHeader

func PutSegmentHeader(tls *libc.TLS, bw uintptr, enc uintptr)

Segmentation header

func PutUVMode

func PutUVMode(tls *libc.TLS, bw uintptr, uv_mode int32)

func PutVP8FrameHeader

func PutVP8FrameHeader(tls *libc.TLS, pic uintptr, profile int32, size0 uint64) uint32

func PutVP8Header

func PutVP8Header(tls *libc.TLS, pic uintptr, vp8_size uint64) uint32

func PutVP8XHeader

func PutVP8XHeader(tls *libc.TLS, enc uintptr) uint32

func PutWebPHeaders

func PutWebPHeaders(tls *libc.TLS, enc uintptr, size0 uint64, vp8_size uint64, riff_size uint64) int32

WebP Headers.

func QUANTDIV

func QUANTDIV(tls *libc.TLS, n uint32, iQ uint32, B uint32) int32

Fun fact: this is the _only_ line where we're actually being lossy and discarding bits.

func QualityToCompression

func QualityToCompression(tls *libc.TLS, c float64) float64

We want to emulate jpeg-like behaviour where the expected "good" quality is around q=75. Internally, our "good" middle is around c=50. So we map accordingly using linear piece-wise function

func QualityToJPEGCompression

func QualityToJPEGCompression(tls *libc.TLS, c float64, alpha float64) float64

func Quantize2Blocks_C

func Quantize2Blocks_C(tls *libc.TLS, in uintptr, out uintptr, mtx uintptr) int32

func QuantizeBlock_C

func QuantizeBlock_C(tls *libc.TLS, in uintptr, out uintptr, mtx uintptr) int32

Simple quantization

func QuantizeLevels

func QuantizeLevels(tls *libc.TLS, data uintptr, width int32, height int32, num_levels int32, sse uintptr) int32

func QuantizeSingle

func QuantizeSingle(tls *libc.TLS, v uintptr, mtx uintptr) int32

Quantize as usual, but also compute and return the quantization error. Error is already divided by DSHIFT.

func RD4

func RD4(tls *libc.TLS, dst uintptr, top uintptr)

func RD4_C

func RD4_C(tls *libc.TLS, dst uintptr)

func RDScoreTrellis

func RDScoreTrellis(tls *libc.TLS, lambda int32, rate int64, distortion int64) int64

func RGBToGray

func RGBToGray(tls *libc.TLS, r int32, g int32, b int32) int32

func RGBToU

func RGBToU(tls *libc.TLS, r int32, g int32, b int32, rg uintptr) int32

func RGBToV

func RGBToV(tls *libc.TLS, r int32, g int32, b int32, rg uintptr) int32

func RGBToY

func RGBToY(tls *libc.TLS, r int32, g int32, b int32, rg uintptr) int32

func ReadHuffmanCode

func ReadHuffmanCode(tls *libc.TLS, alphabet_size int32, dec uintptr, code_lengths uintptr, table uintptr) int32

'code_lengths' is pre-allocated temporary buffer, used for creating Huffman tree.

func ReadHuffmanCodeLengths

func ReadHuffmanCodeLengths(tls *libc.TLS, dec uintptr, code_length_code_lengths uintptr, num_symbols int32, code_lengths uintptr) int32

func ReadHuffmanCodes

func ReadHuffmanCodes(tls *libc.TLS, dec uintptr, xsize int32, ysize int32, color_cache_bits int32, allow_recursion int32) int32

func ReadImageInfo

func ReadImageInfo(tls *libc.TLS, br uintptr, width uintptr, height uintptr, has_alpha uintptr) int32

func ReadPackedSymbols

func ReadPackedSymbols(tls *libc.TLS, group uintptr, br uintptr, dst uintptr) int32

Reads packed symbol depending on GREEN channel

func ReadSymbol

func ReadSymbol(tls *libc.TLS, table uintptr, br uintptr) int32

------------------------------------------------------------------------------ Decodes the next Huffman code from bit-stream. FillBitWindow(br) needs to be called at minimum every second call to ReadSymbol, in order to pre-fetch enough bits.

func ReadTransform

func ReadTransform(tls *libc.TLS, xsize uintptr, ysize uintptr, dec uintptr) int32

func ReconstructIntra16

func ReconstructIntra16(tls *libc.TLS, it uintptr, rd uintptr, yuv_out uintptr, mode int32) int32

func ReconstructIntra4

func ReconstructIntra4(tls *libc.TLS, it uintptr, levels uintptr, src uintptr, yuv_out uintptr, mode int32) int32

func ReconstructRow

func ReconstructRow(tls *libc.TLS, dec uintptr, ctx uintptr)

func ReconstructUV

func ReconstructUV(tls *libc.TLS, it uintptr, rd uintptr, yuv_out uintptr, mode int32) int32

func RecordResiduals

func RecordResiduals(tls *libc.TLS, it uintptr, rd uintptr)

Same as CodeResiduals, but doesn't actually write anything. Instead, it just records the event distribution.

func RecordTokens

func RecordTokens(tls *libc.TLS, it uintptr, rd uintptr, tokens uintptr) int32

func RefineUsingDistortion

func RefineUsingDistortion(tls *libc.TLS, it uintptr, try_both_modes int32, refine_uv_mode int32, rd uintptr)

Refine intra16/intra4 sub-modes based on distortion only (not rate).

func RemapMemBuffer

func RemapMemBuffer(tls *libc.TLS, idec uintptr, data uintptr, data_size uint64) int32

func RemoveEmptyHistograms

func RemoveEmptyHistograms(tls *libc.TLS, image_histo uintptr)

func ReplicateValue

func ReplicateValue(tls *libc.TLS, table uintptr, step int32, end int32, code HuffmanCode)

Stores code in table[0], table[step], table[2*step], ..., table[end]. Assumes that end is an integer multiple of step.

func Rescale

func Rescale(tls *libc.TLS, src uintptr, src_stride int32, new_lines int32, wrk uintptr) int32

func RescalePlane

func RescalePlane(tls *libc.TLS, src uintptr, src_width int32, src_height int32, src_stride int32, dst uintptr, dst_width int32, dst_height int32, dst_stride int32, work uintptr, num_channels int32) int32

func Reset

func Reset(tls *libc.TLS, worker uintptr) int32

func ResetAfterSkip

func ResetAfterSkip(tls *libc.TLS, it uintptr)

func ResetAllMBInfo

func ResetAllMBInfo(tls *libc.TLS, enc uintptr)

func ResetBoundaryPredictions

func ResetBoundaryPredictions(tls *libc.TLS, enc uintptr)

func ResetFilterHeader

func ResetFilterHeader(tls *libc.TLS, enc uintptr)

func ResetSSE

func ResetSSE(tls *libc.TLS, enc uintptr)

func ResetSegmentHeader

func ResetSegmentHeader(tls *libc.TLS, hdr uintptr)

func ResetSegmentHeader1

func ResetSegmentHeader1(tls *libc.TLS, enc uintptr)

func ResetSegments

func ResetSegments(tls *libc.TLS, enc uintptr)

func ResetSideInfo

func ResetSideInfo(tls *libc.TLS, it uintptr)

func ResetStats

func ResetStats(tls *libc.TLS, enc uintptr)

func ResetTokenStats

func ResetTokenStats(tls *libc.TLS, enc uintptr)

func RestoreContext

func RestoreContext(tls *libc.TLS, context uintptr, dec uintptr, token_br uintptr)

func RestoreState

func RestoreState(tls *libc.TLS, dec uintptr)

func ReverseBits

func ReverseBits(tls *libc.TLS, num_bits int32, bits uint32) uint32

func Rotate8b

func Rotate8b(tls *libc.TLS, V uint32) uint32

cyclic rotation of pattern word

func SSE16x16_C

func SSE16x16_C(tls *libc.TLS, a uintptr, b uintptr) int32

func SSE16x8_C

func SSE16x8_C(tls *libc.TLS, a uintptr, b uintptr) int32

func SSE4x4_C

func SSE4x4_C(tls *libc.TLS, a uintptr, b uintptr) int32

func SSE8x8_C

func SSE8x8_C(tls *libc.TLS, a uintptr, b uintptr) int32

func SSIMCalculation

func SSIMCalculation(tls *libc.TLS, stats uintptr, N uint32) float64

func SSIMGetClipped_C

func SSIMGetClipped_C(tls *libc.TLS, src1 uintptr, stride1 int32, src2 uintptr, stride2 int32, xo int32, yo int32, W int32, H int32) float64

func SSIMGet_C

func SSIMGet_C(tls *libc.TLS, src1 uintptr, stride1 int32, src2 uintptr, stride2 int32) float64

func SaveContext

func SaveContext(tls *libc.TLS, dec uintptr, token_br uintptr, context uintptr)

func SaveState

func SaveState(tls *libc.TLS, dec uintptr, last_pixel int32)

func ScaleDown

func ScaleDown(tls *libc.TLS, a int32, b int32, c int32, d int32) uint32

func SearchColorGreedy

func SearchColorGreedy(tls *libc.TLS, palette uintptr, palette_size int32, color uint32) uint32

func SearchColorNoIdx

func SearchColorNoIdx(tls *libc.TLS, sorted uintptr, color uint32, num_colors int32) int32

func SegmentsAreEquivalent

func SegmentsAreEquivalent(tls *libc.TLS, S1 uintptr, S2 uintptr) int32

func Select

func Select(tls *libc.TLS, a uint32, b uint32, c uint32) uint32

func SetBitDepths

func SetBitDepths(tls *libc.TLS, tree uintptr, pool uintptr, bit_depths uintptr, level int32)

func SetCropWindow

func SetCropWindow(tls *libc.TLS, io uintptr, y_start int32, y_end int32, in_data uintptr, pixel_stride int32) int32

Sets io->mb_y, io->mb_h & io->mb_w according to start row, end row and crop options. Also updates the input data pointer, so that it points to the start of the cropped window. Note that pixels are in ARGB format even if 'in_data' is uint8_t*. Returns true if the crop window is not empty.

func SetLoopParams

func SetLoopParams(tls *libc.TLS, enc uintptr, q float32)

func SetOk

func SetOk(tls *libc.TLS, dec uintptr)

func SetRDScore

func SetRDScore(tls *libc.TLS, lambda int32, rd uintptr)

func SetResidualCoeffs_C

func SetResidualCoeffs_C(tls *libc.TLS, coeffs uintptr, res uintptr)

func SetSegmentAlphas

func SetSegmentAlphas(tls *libc.TLS, enc uintptr, centers uintptr, mid int32)

func SetSegmentProbas

func SetSegmentProbas(tls *libc.TLS, enc uintptr)

func SetupFilterStrength

func SetupFilterStrength(tls *libc.TLS, enc uintptr)

func SetupMatrices

func SetupMatrices(tls *libc.TLS, enc uintptr)

func SharpYUVFilterRow_C

func SharpYUVFilterRow_C(tls *libc.TLS, A uintptr, B uintptr, len int32, best_y uintptr, out uintptr)

func SharpYUVUpdateRGB_C

func SharpYUVUpdateRGB_C(tls *libc.TLS, ref uintptr, src uintptr, dst uintptr, len int32)

func SharpYUVUpdateY_C

func SharpYUVUpdateY_C(tls *libc.TLS, ref uintptr, src uintptr, dst uintptr, len int32) uint64

func ShiftBytes

func ShiftBytes(tls *libc.TLS, br uintptr)

If not at EOS, reload up to VP8L_LBITS byte-by-byte

func SimpleHFilter16_C

func SimpleHFilter16_C(tls *libc.TLS, p uintptr, stride int32, thresh int32)

func SimpleHFilter16i_C

func SimpleHFilter16i_C(tls *libc.TLS, p uintptr, stride int32, thresh int32)

func SimpleQuantize

func SimpleQuantize(tls *libc.TLS, it uintptr, rd uintptr)

func SimpleVFilter16_C

func SimpleVFilter16_C(tls *libc.TLS, p uintptr, stride int32, thresh int32)

func SimpleVFilter16i_C

func SimpleVFilter16i_C(tls *libc.TLS, p uintptr, stride int32, thresh int32)

func SimplifySegments

func SimplifySegments(tls *libc.TLS, enc uintptr)

func SmoothSegmentMap

func SmoothSegmentMap(tls *libc.TLS, enc uintptr)

func SmoothenBlock

func SmoothenBlock(tls *libc.TLS, a_ptr uintptr, a_stride int32, y_ptr uintptr, y_stride int32, width int32, height int32) int32

Smoothen the luma components of transparent pixels. Return true if the whole block is transparent.

func SnapTopLeftPosition

func SnapTopLeftPosition(tls *libc.TLS, pic uintptr, left uintptr, top uintptr)

Adjust top-left corner to chroma sample position.

func StatLoop

func StatLoop(tls *libc.TLS, enc uintptr) int32

func StoreDiffusionErrors

func StoreDiffusionErrors(tls *libc.TLS, it uintptr, rd uintptr)

func StoreFullHuffmanCode

func StoreFullHuffmanCode(tls *libc.TLS, bw uintptr, huff_tree uintptr, tokens uintptr, tree uintptr)

'huff_tree' and 'tokens' are pre-alloacted buffers.

func StoreGray

func StoreGray(tls *libc.TLS, rgb uintptr, y uintptr, w int32)

func StoreHuffmanCode

func StoreHuffmanCode(tls *libc.TLS, bw uintptr, huff_tree uintptr, tokens uintptr, huffman_code uintptr)

'huff_tree' and 'tokens' are pre-alloacted buffers.

func StoreHuffmanTreeOfHuffmanTreeToBitMask

func StoreHuffmanTreeOfHuffmanTreeToBitMask(tls *libc.TLS, bw uintptr, code_length_bitdepth uintptr)

func StoreHuffmanTreeToBitMask

func StoreHuffmanTreeToBitMask(tls *libc.TLS, bw uintptr, tokens uintptr, num_tokens int32, huffman_code uintptr)

func StoreImageToBitMask

func StoreImageToBitMask(tls *libc.TLS, bw uintptr, width int32, histo_bits int32, refs uintptr, histogram_symbols uintptr, huffman_codes uintptr) uint32

func StoreMaxDelta

func StoreMaxDelta(tls *libc.TLS, dqm uintptr, DCs uintptr)

func StoreSSE

func StoreSSE(tls *libc.TLS, it uintptr)

func StoreSideInfo

func StoreSideInfo(tls *libc.TLS, it uintptr)

func StoreStats

func StoreStats(tls *libc.TLS, enc uintptr)

func Sub3

func Sub3(tls *libc.TLS, a int32, b int32, c int32) int32

func SwapColor

func SwapColor(tls *libc.TLS, col1 uintptr, col2 uintptr)

func SwapModeScore

func SwapModeScore(tls *libc.TLS, a uintptr, b uintptr)

func SwapOut

func SwapOut(tls *libc.TLS, it uintptr)

func SwapPtr

func SwapPtr(tls *libc.TLS, a uintptr, b uintptr)

func Sync

func Sync(tls *libc.TLS, worker uintptr) int32

func TBufferNewPage

func TBufferNewPage(tls *libc.TLS, b uintptr) int32

func TM16_C

func TM16_C(tls *libc.TLS, dst uintptr)

func TM4

func TM4(tls *libc.TLS, dst uintptr, top uintptr)

func TM4_C

func TM4_C(tls *libc.TLS, dst uintptr)

func TM8uv_C

func TM8uv_C(tls *libc.TLS, dst uintptr)

func TTransform

func TTransform(tls *libc.TLS, in uintptr, w uintptr) int32

Hadamard transform Returns the weighted sum of the absolute value of transformed coefficients. w[] contains a row-major 4 by 4 symmetric matrix.

func TraceBackwards

func TraceBackwards(tls *libc.TLS, dist_array uintptr, dist_array_size int32, chosen_path uintptr, chosen_path_size uintptr)

We pack the path at the end of *dist_array and return a pointer to this part of the array. Example: dist_array = [1x2xx3x2] => packed [1x2x1232], chosen_path = [1232]

func TransformAC3_C

func TransformAC3_C(tls *libc.TLS, in uintptr, dst uintptr)

Simplified transform when only in[0], in[1] and in[4] are non-zero

func TransformColorBlue

func TransformColorBlue(tls *libc.TLS, green_to_blue uint8, red_to_blue uint8, argb uint32) uint8

func TransformColorRed

func TransformColorRed(tls *libc.TLS, green_to_red uint8, argb uint32) uint8

func TransformDCUV_C

func TransformDCUV_C(tls *libc.TLS, in uintptr, dst uintptr)

func TransformDC_C

func TransformDC_C(tls *libc.TLS, in uintptr, dst uintptr)

func TransformOne_C

func TransformOne_C(tls *libc.TLS, in uintptr, dst uintptr)

func TransformTwo_C

func TransformTwo_C(tls *libc.TLS, in uintptr, dst uintptr, do_two int32)

func TransformUV_C

func TransformUV_C(tls *libc.TLS, in uintptr, dst uintptr)

func TransformWHT_C

func TransformWHT_C(tls *libc.TLS, in uintptr, out uintptr)

func TrellisQuantizeBlock

func TrellisQuantizeBlock(tls *libc.TLS, enc uintptr, in uintptr, out uintptr, ctx0 int32, coeff_type int32, mtx uintptr, lambda int32) int32

func TrueMotion

func TrueMotion(tls *libc.TLS, dst uintptr, size int32)

func TrueMotion1

func TrueMotion1(tls *libc.TLS, dst uintptr, left uintptr, top uintptr, size int32)

func U32ToS8

func U32ToS8(tls *libc.TLS, v uint32) int8

func UpLift

func UpLift(tls *libc.TLS, a uint8) uint16

func UpdateChroma

func UpdateChroma(tls *libc.TLS, src1 uintptr, src2 uintptr, dst uintptr, uv_w int32)

func UpdateCost

func UpdateCost(tls *libc.TLS, manager uintptr, i int32, position int32, cost float32)

Given the cost and the position that define an interval, update the cost at pixel 'i' if it is smaller than the previously computed value.

func UpdateCostAtIndex

func UpdateCostAtIndex(tls *libc.TLS, manager uintptr, i int32, do_clean_intervals int32)

Update the cost at index i by going over all the stored intervals that overlap with i. If 'do_clean_intervals' is set to something different than 0, intervals that end before 'i' will be popped.

func UpdateCostPerInterval

func UpdateCostPerInterval(tls *libc.TLS, manager uintptr, start int32, end int32, position int32, cost float32)

Given the cost and the position that define an interval, update the cost for all the pixels between 'start' and 'end' excluded.

func UpdateDecoder

func UpdateDecoder(tls *libc.TLS, dec uintptr, width int32, height int32)

func UpdateDominantCostRange

func UpdateDominantCostRange(tls *libc.TLS, h uintptr, c uintptr)

func UpdateHisto

func UpdateHisto(tls *libc.TLS, histo_argb uintptr, argb uint32)

func UpdateHistogramCost

func UpdateHistogramCost(tls *libc.TLS, h uintptr)

func UpdateW

func UpdateW(tls *libc.TLS, src uintptr, dst uintptr, w int32)

func UpsampleArgbLinePair_C

func UpsampleArgbLinePair_C(tls *libc.TLS, top_y uintptr, bottom_y uintptr, top_u uintptr, top_v uintptr, cur_u uintptr, cur_v uintptr, top_dst uintptr, bottom_dst uintptr, len int32)

func UpsampleBgrLinePair_C

func UpsampleBgrLinePair_C(tls *libc.TLS, top_y uintptr, bottom_y uintptr, top_u uintptr, top_v uintptr, cur_u uintptr, cur_v uintptr, top_dst uintptr, bottom_dst uintptr, len int32)

func UpsampleBgraLinePair_C

func UpsampleBgraLinePair_C(tls *libc.TLS, top_y uintptr, bottom_y uintptr, top_u uintptr, top_v uintptr, cur_u uintptr, cur_v uintptr, top_dst uintptr, bottom_dst uintptr, len int32)

func UpsampleRgb565LinePair_C

func UpsampleRgb565LinePair_C(tls *libc.TLS, top_y uintptr, bottom_y uintptr, top_u uintptr, top_v uintptr, cur_u uintptr, cur_v uintptr, top_dst uintptr, bottom_dst uintptr, len int32)

func UpsampleRgbLinePair_C

func UpsampleRgbLinePair_C(tls *libc.TLS, top_y uintptr, bottom_y uintptr, top_u uintptr, top_v uintptr, cur_u uintptr, cur_v uintptr, top_dst uintptr, bottom_dst uintptr, len int32)

func UpsampleRgba4444LinePair_C

func UpsampleRgba4444LinePair_C(tls *libc.TLS, top_y uintptr, bottom_y uintptr, top_u uintptr, top_v uintptr, cur_u uintptr, cur_v uintptr, top_dst uintptr, bottom_dst uintptr, len int32)

func UpsampleRgbaLinePair_C

func UpsampleRgbaLinePair_C(tls *libc.TLS, top_y uintptr, bottom_y uintptr, top_u uintptr, top_v uintptr, cur_u uintptr, cur_v uintptr, top_dst uintptr, bottom_dst uintptr, len int32)

All variants implemented.

func VE16_C

func VE16_C(tls *libc.TLS, dst uintptr)

func VE4

func VE4(tls *libc.TLS, dst uintptr, top uintptr)

func VE4_C

func VE4_C(tls *libc.TLS, dst uintptr)

func VE8uv_C

func VE8uv_C(tls *libc.TLS, dst uintptr)

func VFilter

func VFilter(tls *libc.TLS, p uintptr)

vertical accumulation

func VFilter16_C

func VFilter16_C(tls *libc.TLS, p uintptr, stride int32, thresh int32, ithresh int32, hev_thresh int32)

on macroblock edges

func VFilter16i_C

func VFilter16i_C(tls *libc.TLS, p uintptr, stride int32, thresh int32, ithresh int32, hev_thresh int32)

on three inner edges

func VFilter8_C

func VFilter8_C(tls *libc.TLS, u uintptr, v uintptr, stride int32, thresh int32, ithresh int32, hev_thresh int32)

8-pixels wide variant, for chroma filtering

func VFilter8i_C

func VFilter8i_C(tls *libc.TLS, u uintptr, v uintptr, stride int32, thresh int32, ithresh int32, hev_thresh int32)

func VL4

func VL4(tls *libc.TLS, dst uintptr, top uintptr)

func VL4_C

func VL4_C(tls *libc.TLS, dst uintptr)

func VP8AdjustFilterStrength

func VP8AdjustFilterStrength(tls *libc.TLS, it uintptr)

func VP8ApplyNearLossless

func VP8ApplyNearLossless(tls *libc.TLS, picture uintptr, quality int32, argb_dst uintptr) int32

func VP8BitCost

func VP8BitCost(tls *libc.TLS, bit int32, proba uint8) int32

Cost of coding one event with probability 'proba'.

func VP8BitReaderSetBuffer

func VP8BitReaderSetBuffer(tls *libc.TLS, br uintptr, start uintptr, size uint64)

func VP8BitWriterAppend

func VP8BitWriterAppend(tls *libc.TLS, bw uintptr, data uintptr, size uint64) int32

func VP8BitWriterBuf

func VP8BitWriterBuf(tls *libc.TLS, bw uintptr) uintptr

Returns a pointer to the internal buffer.

func VP8BitWriterFinish

func VP8BitWriterFinish(tls *libc.TLS, bw uintptr) uintptr

func VP8BitWriterInit

func VP8BitWriterInit(tls *libc.TLS, bw uintptr, expected_size uint64) int32

func VP8BitWriterPos

func VP8BitWriterPos(tls *libc.TLS, bw uintptr) uint64

return approximate write position (in bits)

func VP8BitWriterSize

func VP8BitWriterSize(tls *libc.TLS, bw uintptr) uint64

Returns the size of the internal buffer.

func VP8BitWriterWipeOut

func VP8BitWriterWipeOut(tls *libc.TLS, bw uintptr)

func VP8CalculateLevelCosts

func VP8CalculateLevelCosts(tls *libc.TLS, proba uintptr)

func VP8CheckSignature

func VP8CheckSignature(tls *libc.TLS, data uintptr, data_size uint64) int32

func VP8Clear

func VP8Clear(tls *libc.TLS, dec uintptr)

func VP8Clip8

func VP8Clip8(tls *libc.TLS, v int32) int32

func VP8ClipUV

func VP8ClipUV(tls *libc.TLS, uv int32, rounding int32) int32

Stub functions that can be called with various rounding values:

func VP8CodeIntraModes

func VP8CodeIntraModes(tls *libc.TLS, enc uintptr)

func VP8Decimate

func VP8Decimate(tls *libc.TLS, it uintptr, rd uintptr, rd_opt uint32) int32

func VP8Decode

func VP8Decode(tls *libc.TLS, dec uintptr, io uintptr) int32

Main entry point

func VP8DecodeMB

func VP8DecodeMB(tls *libc.TLS, dec uintptr, token_br uintptr) int32

func VP8DecompressAlphaRows

func VP8DecompressAlphaRows(tls *libc.TLS, dec uintptr, io uintptr, row int32, num_rows int32) uintptr

func VP8DefaultProbas

func VP8DefaultProbas(tls *libc.TLS, enc uintptr)

func VP8Delete

func VP8Delete(tls *libc.TLS, dec uintptr)

func VP8DspInit

func VP8DspInit(tls *libc.TLS)

func VP8DspInitMIPS32

func VP8DspInitMIPS32(tls *libc.TLS)

func VP8DspInitMIPSdspR2

func VP8DspInitMIPSdspR2(tls *libc.TLS)

func VP8DspInitMSA

func VP8DspInitMSA(tls *libc.TLS)

func VP8DspInitNEON

func VP8DspInitNEON(tls *libc.TLS)

func VP8DspInitSSE2

func VP8DspInitSSE2(tls *libc.TLS)

func VP8DspInitSSE41

func VP8DspInitSSE41(tls *libc.TLS)

func VP8DspInit_body

func VP8DspInit_body(tls *libc.TLS)

func VP8EmitTokens

func VP8EmitTokens(tls *libc.TLS, b uintptr, bw uintptr, probas uintptr, final_pass int32) int32

func VP8EncAnalyze

func VP8EncAnalyze(tls *libc.TLS, enc uintptr) int32

main entry point

func VP8EncDeleteAlpha

func VP8EncDeleteAlpha(tls *libc.TLS, enc uintptr) int32

func VP8EncDspCostInit

func VP8EncDspCostInit(tls *libc.TLS)

func VP8EncDspCostInitMIPS32

func VP8EncDspCostInitMIPS32(tls *libc.TLS)

func VP8EncDspCostInitMIPSdspR2

func VP8EncDspCostInitMIPSdspR2(tls *libc.TLS)

func VP8EncDspCostInitNEON

func VP8EncDspCostInitNEON(tls *libc.TLS)

func VP8EncDspCostInitSSE2

func VP8EncDspCostInitSSE2(tls *libc.TLS)

func VP8EncDspCostInit_body

func VP8EncDspCostInit_body(tls *libc.TLS)

func VP8EncDspInit

func VP8EncDspInit(tls *libc.TLS)

func VP8EncDspInitMIPS32

func VP8EncDspInitMIPS32(tls *libc.TLS)

func VP8EncDspInitMIPSdspR2

func VP8EncDspInitMIPSdspR2(tls *libc.TLS)

func VP8EncDspInitMSA

func VP8EncDspInitMSA(tls *libc.TLS)

func VP8EncDspInitNEON

func VP8EncDspInitNEON(tls *libc.TLS)

func VP8EncDspInitSSE2

func VP8EncDspInitSSE2(tls *libc.TLS)

func VP8EncDspInitSSE41

func VP8EncDspInitSSE41(tls *libc.TLS)

func VP8EncDspInit_body

func VP8EncDspInit_body(tls *libc.TLS)

func VP8EncFinishAlpha

func VP8EncFinishAlpha(tls *libc.TLS, enc uintptr) int32

func VP8EncFreeBitWriters

func VP8EncFreeBitWriters(tls *libc.TLS, enc uintptr)

func VP8EncInitAlpha

func VP8EncInitAlpha(tls *libc.TLS, enc uintptr)

func VP8EncLoop

func VP8EncLoop(tls *libc.TLS, enc uintptr) int32

func VP8EncStartAlpha

func VP8EncStartAlpha(tls *libc.TLS, enc uintptr) int32

func VP8EncTokenLoop

func VP8EncTokenLoop(tls *libc.TLS, enc uintptr) int32

func VP8EncWrite

func VP8EncWrite(tls *libc.TLS, enc uintptr) int32

func VP8EnterCritical

func VP8EnterCritical(tls *libc.TLS, dec uintptr, io uintptr) uint32

func VP8EstimateTokenSize

func VP8EstimateTokenSize(tls *libc.TLS, b uintptr, probas uintptr) uint64

Size estimation

func VP8ExitCritical

func VP8ExitCritical(tls *libc.TLS, dec uintptr, io uintptr) int32

func VP8FilterStrengthFromDelta

func VP8FilterStrengthFromDelta(tls *libc.TLS, sharpness int32, delta int32) int32

func VP8FiltersInit

func VP8FiltersInit(tls *libc.TLS)

func VP8FiltersInitMIPSdspR2

func VP8FiltersInitMIPSdspR2(tls *libc.TLS)

func VP8FiltersInitMSA

func VP8FiltersInitMSA(tls *libc.TLS)

func VP8FiltersInitNEON

func VP8FiltersInitNEON(tls *libc.TLS)

func VP8FiltersInitSSE2

func VP8FiltersInitSSE2(tls *libc.TLS)

func VP8FiltersInit_body

func VP8FiltersInit_body(tls *libc.TLS)

func VP8GetARGBIndex

func VP8GetARGBIndex(tls *libc.TLS, idx uint32) uint32

color mapping related functions.

func VP8GetARGBValue

func VP8GetARGBValue(tls *libc.TLS, val uint32) uint32

func VP8GetAlphaIndex

func VP8GetAlphaIndex(tls *libc.TLS, idx uint8) uint8

func VP8GetAlphaValue

func VP8GetAlphaValue(tls *libc.TLS, val uint32) uint8

func VP8GetBit

func VP8GetBit(tls *libc.TLS, br uintptr, prob int32) int32

Read a bit with proba 'prob'. Speed-critical function!

func VP8GetBitAlt

func VP8GetBitAlt(tls *libc.TLS, br uintptr, prob int32) int32

func VP8GetCostLuma16

func VP8GetCostLuma16(tls *libc.TLS, it uintptr, rd uintptr) int32

func VP8GetCostLuma4

func VP8GetCostLuma4(tls *libc.TLS, it uintptr, levels uintptr) int32

func VP8GetCostUV

func VP8GetCostUV(tls *libc.TLS, it uintptr, rd uintptr) int32

func VP8GetHeaders

func VP8GetHeaders(tls *libc.TLS, dec uintptr, io uintptr) int32

Topmost call

func VP8GetInfo

func VP8GetInfo(tls *libc.TLS, data uintptr, data_size uint64, chunk_size uint64, width uintptr, height uintptr) int32

func VP8GetSigned

func VP8GetSigned(tls *libc.TLS, br uintptr, v int32) int32

simplified version of VP8GetBit() for prob=0x80 (note shift is always 1 here)

func VP8GetSignedValue

func VP8GetSignedValue(tls *libc.TLS, br uintptr, bits int32) int32

func VP8GetThreadMethod

func VP8GetThreadMethod(tls *libc.TLS, options uintptr, headers uintptr, width int32, height int32) int32

func VP8GetValue

func VP8GetValue(tls *libc.TLS, br uintptr, bits int32) uint32

func VP8InitBitReader

func VP8InitBitReader(tls *libc.TLS, br uintptr, start uintptr, size uint64)

func VP8InitClipTables

func VP8InitClipTables(tls *libc.TLS)

func VP8InitDithering

func VP8InitDithering(tls *libc.TLS, options uintptr, dec uintptr)

func VP8InitFilter

func VP8InitFilter(tls *libc.TLS, it uintptr)

func VP8InitFrame

func VP8InitFrame(tls *libc.TLS, dec uintptr, io uintptr) int32

func VP8InitIo

func VP8InitIo(tls *libc.TLS, io uintptr) int32

Must be called to make sure 'io' is initialized properly. Returns false in case of version mismatch. Upon such failure, no other decoding function should be called (VP8Decode, VP8GetHeaders, ...)

func VP8InitIoInternal

func VP8InitIoInternal(tls *libc.TLS, io uintptr, version int32) int32

func VP8InitRandom

func VP8InitRandom(tls *libc.TLS, rg uintptr, dithering float32)

func VP8InitResidual

func VP8InitResidual(tls *libc.TLS, first int32, coeff_type int32, enc uintptr, res uintptr)

func VP8InitScanline

func VP8InitScanline(tls *libc.TLS, dec uintptr)

func VP8IteratorBytesToNz

func VP8IteratorBytesToNz(tls *libc.TLS, it uintptr)

func VP8IteratorExport

func VP8IteratorExport(tls *libc.TLS, it uintptr)

func VP8IteratorImport

func VP8IteratorImport(tls *libc.TLS, it uintptr, tmp_32 uintptr)

func VP8IteratorInit

func VP8IteratorInit(tls *libc.TLS, enc uintptr, it uintptr)

func VP8IteratorIsDone

func VP8IteratorIsDone(tls *libc.TLS, it uintptr) int32

func VP8IteratorNext

func VP8IteratorNext(tls *libc.TLS, it uintptr) int32

func VP8IteratorNzToBytes

func VP8IteratorNzToBytes(tls *libc.TLS, it uintptr)

func VP8IteratorProgress

func VP8IteratorProgress(tls *libc.TLS, it uintptr, delta int32) int32

func VP8IteratorReset

func VP8IteratorReset(tls *libc.TLS, it uintptr)

func VP8IteratorRotateI4

func VP8IteratorRotateI4(tls *libc.TLS, it uintptr, yuv_out uintptr) int32

func VP8IteratorSaveBoundary

func VP8IteratorSaveBoundary(tls *libc.TLS, it uintptr)

func VP8IteratorSetCountDown

func VP8IteratorSetCountDown(tls *libc.TLS, it uintptr, count_down int32)

func VP8IteratorSetRow

func VP8IteratorSetRow(tls *libc.TLS, it uintptr, y int32)

func VP8IteratorStartI4

func VP8IteratorStartI4(tls *libc.TLS, it uintptr)

func VP8LAddGreenToBlueAndRed_C

func VP8LAddGreenToBlueAndRed_C(tls *libc.TLS, src uintptr, num_pixels int32, dst uintptr)

Add green to blue and red channels (i.e. perform the inverse transform of 'subtract green').

func VP8LAddPixels

func VP8LAddPixels(tls *libc.TLS, a uint32, b uint32) uint32

Sum of each component, mod 256.

func VP8LAllocateHistogram

func VP8LAllocateHistogram(tls *libc.TLS, cache_bits int32) uintptr

func VP8LAllocateHistogramSet

func VP8LAllocateHistogramSet(tls *libc.TLS, size int32, cache_bits int32) uintptr

func VP8LBackwardReferencesTraceBackwards

func VP8LBackwardReferencesTraceBackwards(tls *libc.TLS, xsize int32, ysize int32, argb uintptr, cache_bits int32, hash_chain uintptr, refs_src uintptr, refs_dst uintptr) int32

func VP8LBackwardRefsClear

func VP8LBackwardRefsClear(tls *libc.TLS, refs uintptr)

func VP8LBackwardRefsCursorAdd

func VP8LBackwardRefsCursorAdd(tls *libc.TLS, refs uintptr, v PixOrCopy)

func VP8LBackwardRefsInit

func VP8LBackwardRefsInit(tls *libc.TLS, refs uintptr, block_size int32)

func VP8LBitEntropyInit

func VP8LBitEntropyInit(tls *libc.TLS, entropy uintptr)

func VP8LBitReaderSetBuffer

func VP8LBitReaderSetBuffer(tls *libc.TLS, br uintptr, buf uintptr, len uint64)

func VP8LBitWriterClone

func VP8LBitWriterClone(tls *libc.TLS, src uintptr, dst uintptr) int32

func VP8LBitWriterFinish

func VP8LBitWriterFinish(tls *libc.TLS, bw uintptr) uintptr

func VP8LBitWriterInit

func VP8LBitWriterInit(tls *libc.TLS, bw uintptr, expected_size uint64) int32

func VP8LBitWriterNumBytes

func VP8LBitWriterNumBytes(tls *libc.TLS, bw uintptr) uint64

func VP8LBitWriterReset

func VP8LBitWriterReset(tls *libc.TLS, bw_init uintptr, bw uintptr)

func VP8LBitWriterResize

func VP8LBitWriterResize(tls *libc.TLS, bw uintptr, extra_size uint64) int32

Returns 1 on success.

func VP8LBitWriterSwap

func VP8LBitWriterSwap(tls *libc.TLS, src uintptr, dst uintptr)

func VP8LBitWriterWipeOut

func VP8LBitWriterWipeOut(tls *libc.TLS, bw uintptr)

func VP8LBitsEntropy

func VP8LBitsEntropy(tls *libc.TLS, array uintptr, n int32) float64

func VP8LBitsEntropyUnrefined

func VP8LBitsEntropyUnrefined(tls *libc.TLS, array uintptr, n int32, entropy uintptr)

func VP8LBuildHuffmanTable

func VP8LBuildHuffmanTable(tls *libc.TLS, root_table uintptr, root_bits int32, code_lengths uintptr, code_lengths_size int32) int32

Maximum code_lengths_size is 2328 (reached for 11-bit color_cache_bits). More commonly, the value is around ~280. Cut-off value for switching between heap and stack allocation.

func VP8LBundleColorMap_C

func VP8LBundleColorMap_C(tls *libc.TLS, row uintptr, width int32, xbits int32, dst uintptr)

Bundles multiple (1, 2, 4 or 8) pixels into a single pixel.

func VP8LCheckSignature

func VP8LCheckSignature(tls *libc.TLS, data uintptr, size uint64) int32

func VP8LClear

func VP8LClear(tls *libc.TLS, dec uintptr)

func VP8LClearBackwardRefs

func VP8LClearBackwardRefs(tls *libc.TLS, refs uintptr)

func VP8LCollectColorBlueTransforms_C

func VP8LCollectColorBlueTransforms_C(tls *libc.TLS, argb uintptr, stride int32, tile_width int32, tile_height int32, green_to_blue int32, red_to_blue int32, histo uintptr)

func VP8LCollectColorRedTransforms_C

func VP8LCollectColorRedTransforms_C(tls *libc.TLS, argb uintptr, stride int32, tile_width int32, tile_height int32, green_to_red int32, histo uintptr)

func VP8LColorCacheClear

func VP8LColorCacheClear(tls *libc.TLS, color_cache uintptr)

func VP8LColorCacheContains

func VP8LColorCacheContains(tls *libc.TLS, cc uintptr, argb uint32) int32

Return the key if cc contains argb, and -1 otherwise.

func VP8LColorCacheCopy

func VP8LColorCacheCopy(tls *libc.TLS, src uintptr, dst uintptr)

func VP8LColorCacheGetIndex

func VP8LColorCacheGetIndex(tls *libc.TLS, cc uintptr, argb uint32) int32

func VP8LColorCacheInit

func VP8LColorCacheInit(tls *libc.TLS, color_cache uintptr, hash_bits int32) int32

func VP8LColorCacheInsert

func VP8LColorCacheInsert(tls *libc.TLS, cc uintptr, argb uint32)

func VP8LColorCacheLookup

func VP8LColorCacheLookup(tls *libc.TLS, cc uintptr, key uint32) uint32

func VP8LColorCacheSet

func VP8LColorCacheSet(tls *libc.TLS, cc uintptr, key uint32, argb uint32)

func VP8LColorIndexInverseTransformAlpha

func VP8LColorIndexInverseTransformAlpha(tls *libc.TLS, transform uintptr, y_start int32, y_end int32, src uintptr, dst uintptr)

func VP8LColorSpaceTransform

func VP8LColorSpaceTransform(tls *libc.TLS, width int32, height int32, bits int32, quality int32, argb uintptr, image uintptr)

func VP8LConvertBGRAToBGR_C

func VP8LConvertBGRAToBGR_C(tls *libc.TLS, src uintptr, num_pixels int32, dst uintptr)

func VP8LConvertBGRAToRGB565_C

func VP8LConvertBGRAToRGB565_C(tls *libc.TLS, src uintptr, num_pixels int32, dst uintptr)

func VP8LConvertBGRAToRGBA4444_C

func VP8LConvertBGRAToRGBA4444_C(tls *libc.TLS, src uintptr, num_pixels int32, dst uintptr)

func VP8LConvertBGRAToRGBA_C

func VP8LConvertBGRAToRGBA_C(tls *libc.TLS, src uintptr, num_pixels int32, dst uintptr)

func VP8LConvertBGRAToRGB_C

func VP8LConvertBGRAToRGB_C(tls *libc.TLS, src uintptr, num_pixels int32, dst uintptr)

func VP8LConvertFromBGRA

func VP8LConvertFromBGRA(tls *libc.TLS, in_data uintptr, num_pixels int32, out_colorspace uint32, rgba uintptr)

func VP8LCreateCompressedHuffmanTree

func VP8LCreateCompressedHuffmanTree(tls *libc.TLS, tree uintptr, tokens uintptr, max_tokens int32) int32

func VP8LCreateHuffmanTree

func VP8LCreateHuffmanTree(tls *libc.TLS, histogram uintptr, tree_depth_limit int32, buf_rle uintptr, huff_tree uintptr, huff_code uintptr)

func VP8LDecodeAlphaHeader

func VP8LDecodeAlphaHeader(tls *libc.TLS, alph_dec uintptr, data uintptr, data_size uint64) int32

func VP8LDecodeAlphaImageStream

func VP8LDecodeAlphaImageStream(tls *libc.TLS, alph_dec uintptr, last_row int32) int32

func VP8LDecodeHeader

func VP8LDecodeHeader(tls *libc.TLS, dec uintptr, io uintptr) int32

func VP8LDecodeImage

func VP8LDecodeImage(tls *libc.TLS, dec uintptr) int32

func VP8LDelete

func VP8LDelete(tls *libc.TLS, dec uintptr)

func VP8LDistanceToPlaneCode

func VP8LDistanceToPlaneCode(tls *libc.TLS, xsize int32, dist int32) int32

func VP8LDoFillBitWindow

func VP8LDoFillBitWindow(tls *libc.TLS, br uintptr)

func VP8LDspInit

func VP8LDspInit(tls *libc.TLS)

func VP8LDspInitMIPSdspR2

func VP8LDspInitMIPSdspR2(tls *libc.TLS)

func VP8LDspInitMSA

func VP8LDspInitMSA(tls *libc.TLS)

func VP8LDspInitNEON

func VP8LDspInitNEON(tls *libc.TLS)

func VP8LDspInitSSE2

func VP8LDspInitSSE2(tls *libc.TLS)

func VP8LDspInitSSE41

func VP8LDspInitSSE41(tls *libc.TLS)

func VP8LDspInit_body

func VP8LDspInit_body(tls *libc.TLS)

func VP8LEncDspInit

func VP8LEncDspInit(tls *libc.TLS)

func VP8LEncDspInitMIPS32

func VP8LEncDspInitMIPS32(tls *libc.TLS)

func VP8LEncDspInitMIPSdspR2

func VP8LEncDspInitMIPSdspR2(tls *libc.TLS)

func VP8LEncDspInitMSA

func VP8LEncDspInitMSA(tls *libc.TLS)

func VP8LEncDspInitNEON

func VP8LEncDspInitNEON(tls *libc.TLS)

func VP8LEncDspInitSSE2

func VP8LEncDspInitSSE2(tls *libc.TLS)

func VP8LEncDspInitSSE41

func VP8LEncDspInitSSE41(tls *libc.TLS)

func VP8LEncDspInit_body

func VP8LEncDspInit_body(tls *libc.TLS)

func VP8LEncodeImage

func VP8LEncodeImage(tls *libc.TLS, config uintptr, picture uintptr) int32

func VP8LEncodeStream

func VP8LEncodeStream(tls *libc.TLS, config uintptr, picture uintptr, bw_main uintptr, use_cache int32) uint32

func VP8LEncoderDelete

func VP8LEncoderDelete(tls *libc.TLS, enc uintptr)

func VP8LEncoderNew

func VP8LEncoderNew(tls *libc.TLS, config uintptr, picture uintptr) uintptr

func VP8LFastLog2

func VP8LFastLog2(tls *libc.TLS, v uint32) float32

func VP8LFastSLog2

func VP8LFastSLog2(tls *libc.TLS, v uint32) float32

Fast calculation of v * log2(v) for integer input.

func VP8LFillBitWindow

func VP8LFillBitWindow(tls *libc.TLS, br uintptr)

func VP8LFreeHistogram

func VP8LFreeHistogram(tls *libc.TLS, histo uintptr)

func VP8LFreeHistogramSet

func VP8LFreeHistogramSet(tls *libc.TLS, histo uintptr)

func VP8LGetBackwardReferences

func VP8LGetBackwardReferences(tls *libc.TLS, width int32, height int32, argb uintptr, quality int32, low_effort int32, lz77_types_to_try int32, cache_bits_max int32, do_no_cache int32, hash_chain uintptr, refs uintptr, cache_bits_best uintptr) uint32

func VP8LGetHistoImageSymbols

func VP8LGetHistoImageSymbols(tls *libc.TLS, xsize int32, ysize int32, refs uintptr, quality int32, low_effort int32, histogram_bits int32, cache_bits int32, image_histo uintptr, tmp_histo uintptr, histogram_symbols uintptr) int32

func VP8LGetHistogramSize

func VP8LGetHistogramSize(tls *libc.TLS, cache_bits int32) int32

func VP8LGetInfo

func VP8LGetInfo(tls *libc.TLS, data uintptr, data_size uint64, width uintptr, height uintptr, has_alpha uintptr) int32

func VP8LHashChainClear

func VP8LHashChainClear(tls *libc.TLS, p uintptr)

func VP8LHashChainFill

func VP8LHashChainFill(tls *libc.TLS, p uintptr, quality int32, argb uintptr, xsize int32, ysize int32, low_effort int32) int32

func VP8LHashChainFindCopy

func VP8LHashChainFindCopy(tls *libc.TLS, p uintptr, base_position int32, offset_ptr uintptr, length_ptr uintptr)

func VP8LHashChainFindLength

func VP8LHashChainFindLength(tls *libc.TLS, p uintptr, base_position int32) int32

func VP8LHashChainFindOffset

func VP8LHashChainFindOffset(tls *libc.TLS, p uintptr, base_position int32) int32

func VP8LHashChainInit

func VP8LHashChainInit(tls *libc.TLS, p uintptr, size int32) int32

func VP8LHashPix

func VP8LHashPix(tls *libc.TLS, argb uint32, shift int32) int32

func VP8LHistogramAdd

func VP8LHistogramAdd(tls *libc.TLS, a uintptr, b uintptr, out uintptr)

func VP8LHistogramAddSinglePixOrCopy

func VP8LHistogramAddSinglePixOrCopy(tls *libc.TLS, histo uintptr, v uintptr, distance_modifier uintptr, distance_modifier_arg0 int32)

func VP8LHistogramCreate

func VP8LHistogramCreate(tls *libc.TLS, p uintptr, refs uintptr, palette_code_bits int32)

func VP8LHistogramEstimateBits

func VP8LHistogramEstimateBits(tls *libc.TLS, p uintptr) float64

Estimates the Entropy + Huffman + other block overhead size cost.

func VP8LHistogramInit

func VP8LHistogramInit(tls *libc.TLS, p uintptr, palette_code_bits int32, init_arrays int32)

func VP8LHistogramNumCodes

func VP8LHistogramNumCodes(tls *libc.TLS, palette_code_bits int32) int32

func VP8LHistogramSetClear

func VP8LHistogramSetClear(tls *libc.TLS, set uintptr)

func VP8LHistogramStoreRefs

func VP8LHistogramStoreRefs(tls *libc.TLS, refs uintptr, histo uintptr)

func VP8LHtreeGroupsFree

func VP8LHtreeGroupsFree(tls *libc.TLS, htree_groups uintptr)

func VP8LHtreeGroupsNew

func VP8LHtreeGroupsNew(tls *libc.TLS, num_htree_groups int32) uintptr

func VP8LInitBitReader

func VP8LInitBitReader(tls *libc.TLS, br uintptr, start uintptr, length uint64)

func VP8LInverseTransform

func VP8LInverseTransform(tls *libc.TLS, transform uintptr, row_start int32, row_end int32, in uintptr, out uintptr)

func VP8LIsEndOfStream

func VP8LIsEndOfStream(tls *libc.TLS, br uintptr) int32

Returns true if there was an attempt at reading bit past the end of the buffer. Doesn't set br->eos_ flag.

func VP8LNearLosslessBits

func VP8LNearLosslessBits(tls *libc.TLS, near_lossless_quality int32) int32

Converts near lossless quality into max number of bits shaved off.

func VP8LNew

func VP8LNew(tls *libc.TLS) uintptr

func VP8LPredictor0_C

func VP8LPredictor0_C(tls *libc.TLS, left uintptr, top uintptr) uint32

func VP8LPredictor10_C

func VP8LPredictor10_C(tls *libc.TLS, left uintptr, top uintptr) uint32

func VP8LPredictor11_C

func VP8LPredictor11_C(tls *libc.TLS, left uintptr, top uintptr) uint32

func VP8LPredictor12_C

func VP8LPredictor12_C(tls *libc.TLS, left uintptr, top uintptr) uint32

func VP8LPredictor13_C

func VP8LPredictor13_C(tls *libc.TLS, left uintptr, top uintptr) uint32

func VP8LPredictor1_C

func VP8LPredictor1_C(tls *libc.TLS, left uintptr, top uintptr) uint32

func VP8LPredictor2_C

func VP8LPredictor2_C(tls *libc.TLS, left uintptr, top uintptr) uint32

func VP8LPredictor3_C

func VP8LPredictor3_C(tls *libc.TLS, left uintptr, top uintptr) uint32

func VP8LPredictor4_C

func VP8LPredictor4_C(tls *libc.TLS, left uintptr, top uintptr) uint32

func VP8LPredictor5_C

func VP8LPredictor5_C(tls *libc.TLS, left uintptr, top uintptr) uint32

func VP8LPredictor6_C

func VP8LPredictor6_C(tls *libc.TLS, left uintptr, top uintptr) uint32

func VP8LPredictor7_C

func VP8LPredictor7_C(tls *libc.TLS, left uintptr, top uintptr) uint32

func VP8LPredictor8_C

func VP8LPredictor8_C(tls *libc.TLS, left uintptr, top uintptr) uint32

func VP8LPredictor9_C

func VP8LPredictor9_C(tls *libc.TLS, left uintptr, top uintptr) uint32

func VP8LPrefetchBits

func VP8LPrefetchBits(tls *libc.TLS, br uintptr) uint32

Return the prefetched bits, so they can be looked up.

func VP8LPrefixEncode

func VP8LPrefixEncode(tls *libc.TLS, distance int32, code uintptr, extra_bits uintptr, extra_bits_value uintptr)

func VP8LPrefixEncodeBits

func VP8LPrefixEncodeBits(tls *libc.TLS, distance int32, code uintptr, extra_bits uintptr)

func VP8LPrefixEncodeBitsNoLUT

func VP8LPrefixEncodeBitsNoLUT(tls *libc.TLS, distance int32, code uintptr, extra_bits uintptr)

Splitting of distance and length codes into prefixes and extra bits. The prefixes are encoded with an entropy code while the extra bits are stored just as normal bits.

func VP8LPrefixEncodeNoLUT

func VP8LPrefixEncodeNoLUT(tls *libc.TLS, distance int32, code uintptr, extra_bits uintptr, extra_bits_value uintptr)

func VP8LPutBits

func VP8LPutBits(tls *libc.TLS, bw uintptr, bits uint32, n_bits int32)

This function writes bits into bytes in increasing addresses (little endian), and within a byte least-significant-bit first. This function can write up to 32 bits in one go, but VP8LBitReader can only read 24 bits max (VP8L_MAX_NUM_BIT_READ). VP8LBitWriter's error_ flag is set in case of memory allocation error.

func VP8LPutBitsFlushBits

func VP8LPutBitsFlushBits(tls *libc.TLS, bw uintptr)

func VP8LPutBitsInternal

func VP8LPutBitsInternal(tls *libc.TLS, bw uintptr, bits uint32, n_bits int32)

func VP8LReadBits

func VP8LReadBits(tls *libc.TLS, br uintptr, n_bits int32) uint32

func VP8LRefsCursorNext

func VP8LRefsCursorNext(tls *libc.TLS, c uintptr)

Move to next position, or NULL. Should not be called if !VP8LRefsCursorOk().

func VP8LRefsCursorNextBlock

func VP8LRefsCursorNextBlock(tls *libc.TLS, c uintptr)

func VP8LRefsCursorOk

func VP8LRefsCursorOk(tls *libc.TLS, c uintptr) int32

Returns true if cursor is pointing at a valid position.

func VP8LResidualImage

func VP8LResidualImage(tls *libc.TLS, width int32, height int32, bits int32, low_effort int32, argb uintptr, argb_scratch uintptr, image uintptr, near_lossless_quality int32, exact int32, used_subtract_green int32)

Finds the best predictor for each tile, and converts the image to residuals with respect to predictions. If near_lossless_quality < 100, applies near lossless processing, shaving off more bits of residuals for lower qualities.

func VP8LSetBitPos

func VP8LSetBitPos(tls *libc.TLS, br uintptr, val int32)

For jumping over a number of bits in the bit stream when accessed with VP8LPrefetchBits and VP8LFillBitWindow. This function does *not* set br->eos_, since it's speed-critical. Use with extreme care!

func VP8LSetEndOfStream

func VP8LSetEndOfStream(tls *libc.TLS, br uintptr)

func VP8LSubPixels

func VP8LSubPixels(tls *libc.TLS, a uint32, b uint32) uint32

Difference of each component, mod 256.

func VP8LSubSampleSize

func VP8LSubSampleSize(tls *libc.TLS, size uint32, sampling_bits uint32) uint32

Computes sampled size of 'size' when sampling using 'sampling bits'.

func VP8LSubtractGreenFromBlueAndRed_C

func VP8LSubtractGreenFromBlueAndRed_C(tls *libc.TLS, argb_data uintptr, num_pixels int32)

func VP8LTransformColorInverse_C

func VP8LTransformColorInverse_C(tls *libc.TLS, m uintptr, src uintptr, num_pixels int32, dst uintptr)

func VP8LTransformColor_C

func VP8LTransformColor_C(tls *libc.TLS, m uintptr, data uintptr, num_pixels int32)

func VP8LevelCost

func VP8LevelCost(tls *libc.TLS, table uintptr, level int32) int32

func VP8LoadFinalBytes

func VP8LoadFinalBytes(tls *libc.TLS, br uintptr)

func VP8LoadNewBytes

func VP8LoadNewBytes(tls *libc.TLS, br uintptr)

makes sure br->value_ has at least BITS bits worth of data

func VP8MakeChroma8Preds

func VP8MakeChroma8Preds(tls *libc.TLS, it uintptr)

func VP8MakeIntra4Preds

func VP8MakeIntra4Preds(tls *libc.TLS, it uintptr)

func VP8MakeLuma16Preds

func VP8MakeLuma16Preds(tls *libc.TLS, it uintptr)

func VP8New

func VP8New(tls *libc.TLS) uintptr

func VP8ParseIntraModeRow

func VP8ParseIntraModeRow(tls *libc.TLS, br uintptr, dec uintptr) int32

func VP8ParseProba

func VP8ParseProba(tls *libc.TLS, br uintptr, dec uintptr)

func VP8ParseQuant

func VP8ParseQuant(tls *libc.TLS, dec uintptr)

func VP8ProcessRow

func VP8ProcessRow(tls *libc.TLS, dec uintptr, io uintptr) int32

func VP8PutBit

func VP8PutBit(tls *libc.TLS, bw uintptr, bit int32, prob int32) int32

func VP8PutBitUniform

func VP8PutBitUniform(tls *libc.TLS, bw uintptr, bit int32) int32

func VP8PutBits

func VP8PutBits(tls *libc.TLS, bw uintptr, value uint32, nb_bits int32)

func VP8PutSignedBits

func VP8PutSignedBits(tls *libc.TLS, bw uintptr, value int32, nb_bits int32)

func VP8RGBToU

func VP8RGBToU(tls *libc.TLS, r int32, g int32, b int32, rounding int32) int32

func VP8RGBToV

func VP8RGBToV(tls *libc.TLS, r int32, g int32, b int32, rounding int32) int32

func VP8RGBToY

func VP8RGBToY(tls *libc.TLS, r int32, g int32, b int32, rounding int32) int32

func VP8RandomBits

func VP8RandomBits(tls *libc.TLS, rg uintptr, num_bits int32) int32

func VP8RandomBits2

func VP8RandomBits2(tls *libc.TLS, rg uintptr, num_bits int32, amp int32) int32

Returns a centered pseudo-random number with 'num_bits' amplitude. (uses D.Knuth's Difference-based random generator). 'amp' is in VP8_RANDOM_DITHER_FIX fixed-point precision.

func VP8RecordCoeffTokens

func VP8RecordCoeffTokens(tls *libc.TLS, ctx int32, res uintptr, tokens uintptr) int32

func VP8RecordCoeffs

func VP8RecordCoeffs(tls *libc.TLS, ctx int32, res uintptr) int32

Simulate block coding, but only record statistics. Note: no need to record the fixed probas.

func VP8RecordStats

func VP8RecordStats(tls *libc.TLS, bit int32, stats uintptr) int32

Record proba context used.

func VP8RemapBitReader

func VP8RemapBitReader(tls *libc.TLS, br uintptr, offset int64)

func VP8ResetProba

func VP8ResetProba(tls *libc.TLS, proba uintptr)

func VP8SSIMDspInit

func VP8SSIMDspInit(tls *libc.TLS)

func VP8SSIMDspInitSSE2

func VP8SSIMDspInitSSE2(tls *libc.TLS)

func VP8SSIMDspInit_body

func VP8SSIMDspInit_body(tls *libc.TLS)

func VP8SSIMFromStats

func VP8SSIMFromStats(tls *libc.TLS, stats uintptr) float64

func VP8SSIMFromStatsClipped

func VP8SSIMFromStatsClipped(tls *libc.TLS, stats uintptr) float64

func VP8SetError

func VP8SetError(tls *libc.TLS, dec uintptr, error uint32, msg uintptr) int32

func VP8SetHistogramData

func VP8SetHistogramData(tls *libc.TLS, distribution uintptr, histo uintptr)

general-purpose util function

func VP8SetIntra16Mode

func VP8SetIntra16Mode(tls *libc.TLS, it uintptr, mode int32)

func VP8SetIntra4Mode

func VP8SetIntra4Mode(tls *libc.TLS, it uintptr, modes uintptr)

func VP8SetIntraUVMode

func VP8SetIntraUVMode(tls *libc.TLS, it uintptr, mode int32)

func VP8SetSegment

func VP8SetSegment(tls *libc.TLS, it uintptr, segment int32)

func VP8SetSegmentParams

func VP8SetSegmentParams(tls *libc.TLS, enc uintptr, quality float32)

func VP8SetSkip

func VP8SetSkip(tls *libc.TLS, it uintptr, skip int32)

func VP8Status

func VP8Status(tls *libc.TLS, dec uintptr) uint32

func VP8StatusMessage

func VP8StatusMessage(tls *libc.TLS, dec uintptr) uintptr

func VP8StoreFilterStats

func VP8StoreFilterStats(tls *libc.TLS, it uintptr)

func VP8TBufferClear

func VP8TBufferClear(tls *libc.TLS, b uintptr)

func VP8TBufferInit

func VP8TBufferInit(tls *libc.TLS, b uintptr, page_size int32)

func VP8WriteProbas

func VP8WriteProbas(tls *libc.TLS, bw uintptr, probas uintptr)

func VP8YUVToB

func VP8YUVToB(tls *libc.TLS, y int32, u int32) int32

func VP8YUVToG

func VP8YUVToG(tls *libc.TLS, y int32, u int32, v int32) int32

func VP8YUVToR

func VP8YUVToR(tls *libc.TLS, y int32, v int32) int32

func VP8YuvToArgb

func VP8YuvToArgb(tls *libc.TLS, y uint8, u uint8, v uint8, argb uintptr)

func VP8YuvToBgr

func VP8YuvToBgr(tls *libc.TLS, y int32, u int32, v int32, bgr uintptr)

func VP8YuvToBgra

func VP8YuvToBgra(tls *libc.TLS, y uint8, u uint8, v uint8, bgra uintptr)

func VP8YuvToRgb

func VP8YuvToRgb(tls *libc.TLS, y int32, u int32, v int32, rgb uintptr)

func VP8YuvToRgb565

func VP8YuvToRgb565(tls *libc.TLS, y int32, u int32, v int32, rgb uintptr)

func VP8YuvToRgba

func VP8YuvToRgba(tls *libc.TLS, y uint8, u uint8, v uint8, rgba uintptr)

func VP8YuvToRgba4444

func VP8YuvToRgba4444(tls *libc.TLS, y int32, u int32, v int32, argb uintptr)

func VR4

func VR4(tls *libc.TLS, dst uintptr, top uintptr)

func VR4_C

func VR4_C(tls *libc.TLS, dst uintptr)

func ValuesShouldBeCollapsedToStrideAverage

func ValuesShouldBeCollapsedToStrideAverage(tls *libc.TLS, a int32, b int32) int32

Heuristics for selecting the stride ranges to collapse.

func VariableLevelCost

func VariableLevelCost(tls *libc.TLS, level int32, probas uintptr) int32

func VectorMismatch_C

func VectorMismatch_C(tls *libc.TLS, array1 uintptr, array2 uintptr, length int32) int32

func VerticalFilter_C

func VerticalFilter_C(tls *libc.TLS, data uintptr, width int32, height int32, stride int32, filtered_data uintptr)

func VerticalPred

func VerticalPred(tls *libc.TLS, dst uintptr, top uintptr, size int32)

func VerticalUnfilter_C

func VerticalUnfilter_C(tls *libc.TLS, prev uintptr, in uintptr, out uintptr, width int32)

func WebPAllocateDecBuffer

func WebPAllocateDecBuffer(tls *libc.TLS, width int32, height int32, options uintptr, buffer uintptr) uint32

func WebPAvoidSlowMemory

func WebPAvoidSlowMemory(tls *libc.TLS, output uintptr, features uintptr) int32

func WebPBlendAlpha

func WebPBlendAlpha(tls *libc.TLS, pic uintptr, background_rgb uint32)

func WebPCheckCropDimensions

func WebPCheckCropDimensions(tls *libc.TLS, image_width int32, image_height int32, x int32, y int32, w int32, h int32) int32

func WebPCleanupTransparentArea

func WebPCleanupTransparentArea(tls *libc.TLS, pic uintptr)

func WebPConfigInit

func WebPConfigInit(tls *libc.TLS, config uintptr) int32

Should always be called, to initialize a fresh WebPConfig structure before modification. Returns false in case of version mismatch. WebPConfigInit() must have succeeded before using the 'config' object. Note that the default values are lossless=0 and quality=75.

func WebPConfigInitInternal

func WebPConfigInitInternal(tls *libc.TLS, config uintptr, preset uint32, quality float32, version int32) int32

func WebPConfigLosslessPreset

func WebPConfigLosslessPreset(tls *libc.TLS, config uintptr, level int32) int32

func WebPConfigPreset

func WebPConfigPreset(tls *libc.TLS, config uintptr, preset uint32, quality float32) int32

This function will initialize the configuration according to a predefined set of parameters (referred to by 'preset') and a given quality factor. This function can be called as a replacement to WebPConfigInit(). Will return false in case of error.

func WebPConvertARGBToUV_C

func WebPConvertARGBToUV_C(tls *libc.TLS, argb uintptr, u uintptr, v uintptr, src_width int32, do_store int32)

func WebPConvertRGBA32ToUV_C

func WebPConvertRGBA32ToUV_C(tls *libc.TLS, rgb uintptr, u uintptr, v uintptr, width int32)

func WebPCopyDecBuffer

func WebPCopyDecBuffer(tls *libc.TLS, src uintptr, dst uintptr)

func WebPCopyDecBufferPixels

func WebPCopyDecBufferPixels(tls *libc.TLS, src_buf uintptr, dst_buf uintptr) uint32

func WebPCopyPixels

func WebPCopyPixels(tls *libc.TLS, src uintptr, dst uintptr)

func WebPCopyPlane

func WebPCopyPlane(tls *libc.TLS, src uintptr, src_stride int32, dst uintptr, dst_stride int32, width int32, height int32)

func WebPDataInit

func WebPDataInit(tls *libc.TLS, webp_data uintptr)

Initializes the contents of the 'webp_data' object with default values.

func WebPDeallocateAlphaMemory

func WebPDeallocateAlphaMemory(tls *libc.TLS, dec uintptr)

func WebPDecode

func WebPDecode(tls *libc.TLS, data uintptr, data_size uint64, config uintptr) uint32

func WebPDecodeARGB

func WebPDecodeARGB(tls *libc.TLS, data uintptr, data_size uint64, width uintptr, height uintptr) uintptr

func WebPDecodeARGBInto

func WebPDecodeARGBInto(tls *libc.TLS, data uintptr, data_size uint64, output uintptr, size uint64, stride int32) uintptr

func WebPDecodeBGR

func WebPDecodeBGR(tls *libc.TLS, data uintptr, data_size uint64, width uintptr, height uintptr) uintptr

func WebPDecodeBGRA

func WebPDecodeBGRA(tls *libc.TLS, data uintptr, data_size uint64, width uintptr, height uintptr) uintptr

func WebPDecodeBGRAInto

func WebPDecodeBGRAInto(tls *libc.TLS, data uintptr, data_size uint64, output uintptr, size uint64, stride int32) uintptr

func WebPDecodeBGRInto

func WebPDecodeBGRInto(tls *libc.TLS, data uintptr, data_size uint64, output uintptr, size uint64, stride int32) uintptr

func WebPDecodeRGB

func WebPDecodeRGB(tls *libc.TLS, data uintptr, data_size uint64, width uintptr, height uintptr) uintptr

func WebPDecodeRGBA

func WebPDecodeRGBA(tls *libc.TLS, data uintptr, data_size uint64, width uintptr, height uintptr) uintptr

func WebPDecodeRGBAInto

func WebPDecodeRGBAInto(tls *libc.TLS, data uintptr, data_size uint64, output uintptr, size uint64, stride int32) uintptr

func WebPDecodeRGBInto

func WebPDecodeRGBInto(tls *libc.TLS, data uintptr, data_size uint64, output uintptr, size uint64, stride int32) uintptr

func WebPDecodeYUV

func WebPDecodeYUV(tls *libc.TLS, data uintptr, data_size uint64, width uintptr, height uintptr, u uintptr, v uintptr, stride uintptr, uv_stride uintptr) uintptr

func WebPDecodeYUVInto

func WebPDecodeYUVInto(tls *libc.TLS, data uintptr, data_size uint64, luma uintptr, luma_size uint64, luma_stride int32, u uintptr, u_size uint64, u_stride int32, v uintptr, v_size uint64, v_stride int32) uintptr

func WebPDequantizeLevels

func WebPDequantizeLevels(tls *libc.TLS, data uintptr, width int32, height int32, stride int32, strength int32) int32

func WebPEncode

func WebPEncode(tls *libc.TLS, config uintptr, pic uintptr) int32

func WebPEncodeBGR

func WebPEncodeBGR(tls *libc.TLS, in uintptr, w int32, h int32, bps int32, q float32, out uintptr) uint64

func WebPEncodeBGRA

func WebPEncodeBGRA(tls *libc.TLS, in uintptr, w int32, h int32, bps int32, q float32, out uintptr) uint64

func WebPEncodeLosslessBGR

func WebPEncodeLosslessBGR(tls *libc.TLS, in uintptr, w int32, h int32, bps int32, out uintptr) uint64

func WebPEncodeLosslessBGRA

func WebPEncodeLosslessBGRA(tls *libc.TLS, in uintptr, w int32, h int32, bps int32, out uintptr) uint64

func WebPEncodeLosslessRGB

func WebPEncodeLosslessRGB(tls *libc.TLS, in uintptr, w int32, h int32, bps int32, out uintptr) uint64

func WebPEncodeLosslessRGBA

func WebPEncodeLosslessRGBA(tls *libc.TLS, in uintptr, w int32, h int32, bps int32, out uintptr) uint64

func WebPEncodeRGB

func WebPEncodeRGB(tls *libc.TLS, in uintptr, w int32, h int32, bps int32, q float32, out uintptr) uint64

func WebPEncodeRGBA

func WebPEncodeRGBA(tls *libc.TLS, in uintptr, w int32, h int32, bps int32, q float32, out uintptr) uint64

func WebPEncodingSetError

func WebPEncodingSetError(tls *libc.TLS, pic uintptr, error uint32) int32

func WebPEstimateBestFilter

func WebPEstimateBestFilter(tls *libc.TLS, data uintptr, width int32, height int32, stride int32) uint32

func WebPFlipBuffer

func WebPFlipBuffer(tls *libc.TLS, buffer uintptr) uint32

func WebPFree

func WebPFree(tls *libc.TLS, ptr uintptr)

func WebPFreeDecBuffer

func WebPFreeDecBuffer(tls *libc.TLS, buffer uintptr)

func WebPGetColorPalette

func WebPGetColorPalette(tls *libc.TLS, pic uintptr, palette uintptr) int32

func WebPGetDecoderVersion

func WebPGetDecoderVersion(tls *libc.TLS) int32

func WebPGetEncoderVersion

func WebPGetEncoderVersion(tls *libc.TLS) int32

func WebPGetFeatures

func WebPGetFeatures(tls *libc.TLS, data uintptr, data_size uint64, features uintptr) uint32

Retrieve features from the bitstream. The *features structure is filled with information gathered from the bitstream. Returns VP8_STATUS_OK when the features are successfully retrieved. Returns VP8_STATUS_NOT_ENOUGH_DATA when more data is needed to retrieve the features from headers. Returns error in other cases. Note: The following chunk sequences (before the raw VP8/VP8L data) are considered valid by this function: RIFF + VP8(L) RIFF + VP8X + (optional chunks) + VP8(L) ALPH + VP8 <-- Not a valid WebP format: only allowed for internal purpose. VP8(L) <-- Not a valid WebP format: only allowed for internal purpose.

func WebPGetFeaturesInternal

func WebPGetFeaturesInternal(tls *libc.TLS, data uintptr, data_size uint64, features uintptr, version int32) uint32

func WebPGetInfo

func WebPGetInfo(tls *libc.TLS, data uintptr, data_size uint64, width uintptr, height uintptr) int32

func WebPGetLinePairConverter

func WebPGetLinePairConverter(tls *libc.TLS, alpha_is_last int32) uintptr

func WebPGetWorkerInterface

func WebPGetWorkerInterface(tls *libc.TLS) uintptr

func WebPGrabDecBuffer

func WebPGrabDecBuffer(tls *libc.TLS, src uintptr, dst uintptr)

Copy and transfer ownership from src to dst (beware of parameter order!)

func WebPIAppend

func WebPIAppend(tls *libc.TLS, idec uintptr, data uintptr, data_size uint64) uint32

func WebPIDecGetRGB

func WebPIDecGetRGB(tls *libc.TLS, idec uintptr, last_y uintptr, width uintptr, height uintptr, stride uintptr) uintptr

func WebPIDecGetYUVA

func WebPIDecGetYUVA(tls *libc.TLS, idec uintptr, last_y uintptr, u uintptr, v uintptr, a uintptr, width uintptr, height uintptr, stride uintptr, uv_stride uintptr, a_stride uintptr) uintptr

func WebPIDecode

func WebPIDecode(tls *libc.TLS, data uintptr, data_size uint64, config uintptr) uintptr

func WebPIDecodedArea

func WebPIDecodedArea(tls *libc.TLS, idec uintptr, left uintptr, top uintptr, width uintptr, height uintptr) uintptr

func WebPIDelete

func WebPIDelete(tls *libc.TLS, idec uintptr)

func WebPINewDecoder

func WebPINewDecoder(tls *libc.TLS, output_buffer uintptr) uintptr

func WebPINewRGB

func WebPINewRGB(tls *libc.TLS, csp uint32, output_buffer uintptr, output_buffer_size uint64, output_stride int32) uintptr

func WebPINewYUV

func WebPINewYUV(tls *libc.TLS, luma uintptr, luma_size uint64, luma_stride int32, u uintptr, u_size uint64, u_stride int32, v uintptr, v_size uint64, v_stride int32) uintptr

func WebPINewYUVA

func WebPINewYUVA(tls *libc.TLS, luma uintptr, luma_size uint64, luma_stride int32, u uintptr, u_size uint64, u_stride int32, v uintptr, v_size uint64, v_stride int32, a uintptr, a_size uint64, a_stride int32) uintptr

func WebPISetIOHooks

func WebPISetIOHooks(tls *libc.TLS, idec uintptr, put uintptr, setup uintptr, teardown uintptr, user_data uintptr) int32

func WebPIUpdate

func WebPIUpdate(tls *libc.TLS, idec uintptr, data uintptr, data_size uint64) uint32

func WebPInitAlphaProcessing

func WebPInitAlphaProcessing(tls *libc.TLS)

func WebPInitAlphaProcessingMIPSdspR2

func WebPInitAlphaProcessingMIPSdspR2(tls *libc.TLS)

func WebPInitAlphaProcessingNEON

func WebPInitAlphaProcessingNEON(tls *libc.TLS)

func WebPInitAlphaProcessingSSE2

func WebPInitAlphaProcessingSSE2(tls *libc.TLS)

func WebPInitAlphaProcessingSSE41

func WebPInitAlphaProcessingSSE41(tls *libc.TLS)

func WebPInitAlphaProcessing_body

func WebPInitAlphaProcessing_body(tls *libc.TLS)

func WebPInitConvertARGBToYUV

func WebPInitConvertARGBToYUV(tls *libc.TLS)

func WebPInitConvertARGBToYUVNEON

func WebPInitConvertARGBToYUVNEON(tls *libc.TLS)

func WebPInitConvertARGBToYUVSSE2

func WebPInitConvertARGBToYUVSSE2(tls *libc.TLS)

func WebPInitConvertARGBToYUVSSE41

func WebPInitConvertARGBToYUVSSE41(tls *libc.TLS)

func WebPInitConvertARGBToYUV_body

func WebPInitConvertARGBToYUV_body(tls *libc.TLS)

func WebPInitCustomIo

func WebPInitCustomIo(tls *libc.TLS, params uintptr, io uintptr)

func WebPInitDecBuffer

func WebPInitDecBuffer(tls *libc.TLS, buffer uintptr) int32

Initialize the structure as empty. Must be called before any other use. Returns false in case of version mismatch

func WebPInitDecBufferInternal

func WebPInitDecBufferInternal(tls *libc.TLS, buffer uintptr, version int32) int32

func WebPInitDecoderConfigInternal

func WebPInitDecoderConfigInternal(tls *libc.TLS, config uintptr, version int32) int32

func WebPInitSamplers

func WebPInitSamplers(tls *libc.TLS)

func WebPInitSamplersMIPS32

func WebPInitSamplersMIPS32(tls *libc.TLS)

func WebPInitSamplersMIPSdspR2

func WebPInitSamplersMIPSdspR2(tls *libc.TLS)

func WebPInitSamplersSSE2

func WebPInitSamplersSSE2(tls *libc.TLS)

func WebPInitSamplersSSE41

func WebPInitSamplersSSE41(tls *libc.TLS)

func WebPInitSamplers_body

func WebPInitSamplers_body(tls *libc.TLS)

func WebPInitSharpYUVNEON

func WebPInitSharpYUVNEON(tls *libc.TLS)

func WebPInitSharpYUVSSE2

func WebPInitSharpYUVSSE2(tls *libc.TLS)

func WebPInitUpsamplers

func WebPInitUpsamplers(tls *libc.TLS)

func WebPInitUpsamplersMIPSdspR2

func WebPInitUpsamplersMIPSdspR2(tls *libc.TLS)

func WebPInitUpsamplersMSA

func WebPInitUpsamplersMSA(tls *libc.TLS)

func WebPInitUpsamplersNEON

func WebPInitUpsamplersNEON(tls *libc.TLS)

func WebPInitUpsamplersSSE2

func WebPInitUpsamplersSSE2(tls *libc.TLS)

func WebPInitUpsamplersSSE41

func WebPInitUpsamplersSSE41(tls *libc.TLS)

func WebPInitUpsamplers_body

func WebPInitUpsamplers_body(tls *libc.TLS)

func WebPInitYUV444Converters

func WebPInitYUV444Converters(tls *libc.TLS)

func WebPInitYUV444ConvertersMIPSdspR2

func WebPInitYUV444ConvertersMIPSdspR2(tls *libc.TLS)

func WebPInitYUV444ConvertersSSE2

func WebPInitYUV444ConvertersSSE2(tls *libc.TLS)

func WebPInitYUV444ConvertersSSE41

func WebPInitYUV444ConvertersSSE41(tls *libc.TLS)

func WebPInitYUV444Converters_body

func WebPInitYUV444Converters_body(tls *libc.TLS)

func WebPIoInitFromOptions

func WebPIoInitFromOptions(tls *libc.TLS, options uintptr, io uintptr, src_colorspace uint32) int32

func WebPIsAlphaMode

func WebPIsAlphaMode(tls *libc.TLS, mode uint32) int32

func WebPIsPremultipliedMode

func WebPIsPremultipliedMode(tls *libc.TLS, mode uint32) int32

Some useful macros:

func WebPIsRGBMode

func WebPIsRGBMode(tls *libc.TLS, mode uint32) int32

func WebPMalloc

func WebPMalloc(tls *libc.TLS, size uint64) uintptr

func WebPMemToUint32

func WebPMemToUint32(tls *libc.TLS, ptr uintptr) uint32

memcpy() is the safe way of moving potentially unaligned 32b memory.

func WebPMemoryWrite

func WebPMemoryWrite(tls *libc.TLS, data uintptr, data_size uint64, picture uintptr) int32

func WebPMemoryWriterClear

func WebPMemoryWriterClear(tls *libc.TLS, writer uintptr)

func WebPMemoryWriterInit

func WebPMemoryWriterInit(tls *libc.TLS, writer uintptr)

func WebPMultARGBRow_C

func WebPMultARGBRow_C(tls *libc.TLS, ptr uintptr, width int32, inverse int32)

func WebPMultARGBRows

func WebPMultARGBRows(tls *libc.TLS, ptr uintptr, stride int32, width int32, num_rows int32, inverse int32)

func WebPMultRow_C

func WebPMultRow_C(tls *libc.TLS, ptr uintptr, alpha uintptr, width int32, inverse int32)

func WebPMultRows

func WebPMultRows(tls *libc.TLS, ptr uintptr, stride int32, alpha uintptr, alpha_stride int32, width int32, num_rows int32, inverse int32)

func WebPParseHeaders

func WebPParseHeaders(tls *libc.TLS, headers uintptr) uint32

func WebPPictureARGBToYUVA

func WebPPictureARGBToYUVA(tls *libc.TLS, picture uintptr, colorspace uint32) int32

func WebPPictureARGBToYUVADithered

func WebPPictureARGBToYUVADithered(tls *libc.TLS, picture uintptr, colorspace uint32, dithering float32) int32

func WebPPictureAlloc

func WebPPictureAlloc(tls *libc.TLS, picture uintptr) int32

func WebPPictureAllocARGB

func WebPPictureAllocARGB(tls *libc.TLS, picture uintptr, width int32, height int32) int32

func WebPPictureAllocYUVA

func WebPPictureAllocYUVA(tls *libc.TLS, picture uintptr, width int32, height int32) int32

func WebPPictureCopy

func WebPPictureCopy(tls *libc.TLS, src uintptr, dst uintptr) int32

func WebPPictureCrop

func WebPPictureCrop(tls *libc.TLS, pic uintptr, left int32, top int32, width int32, height int32) int32

func WebPPictureDistortion

func WebPPictureDistortion(tls *libc.TLS, src uintptr, ref uintptr, type1 int32, results uintptr) int32

func WebPPictureFree

func WebPPictureFree(tls *libc.TLS, picture uintptr)

func WebPPictureHasTransparency

func WebPPictureHasTransparency(tls *libc.TLS, picture uintptr) int32

Checking for the presence of non-opaque alpha.

func WebPPictureImportBGR

func WebPPictureImportBGR(tls *libc.TLS, picture uintptr, rgb uintptr, rgb_stride int32) int32

func WebPPictureImportBGRA

func WebPPictureImportBGRA(tls *libc.TLS, picture uintptr, rgba uintptr, rgba_stride int32) int32

func WebPPictureImportBGRX

func WebPPictureImportBGRX(tls *libc.TLS, picture uintptr, rgba uintptr, rgba_stride int32) int32

func WebPPictureImportRGB

func WebPPictureImportRGB(tls *libc.TLS, picture uintptr, rgb uintptr, rgb_stride int32) int32

func WebPPictureImportRGBA

func WebPPictureImportRGBA(tls *libc.TLS, picture uintptr, rgba uintptr, rgba_stride int32) int32

func WebPPictureImportRGBX

func WebPPictureImportRGBX(tls *libc.TLS, picture uintptr, rgba uintptr, rgba_stride int32) int32

func WebPPictureInit

func WebPPictureInit(tls *libc.TLS, picture uintptr) int32

Should always be called, to initialize the structure. Returns false in case of version mismatch. WebPPictureInit() must have succeeded before using the 'picture' object. Note that, by default, use_argb is false and colorspace is WEBP_YUV420.

func WebPPictureInitInternal

func WebPPictureInitInternal(tls *libc.TLS, picture uintptr, version int32) int32

func WebPPictureIsView

func WebPPictureIsView(tls *libc.TLS, picture uintptr) int32

func WebPPictureRescale

func WebPPictureRescale(tls *libc.TLS, pic uintptr, width int32, height int32) int32

func WebPPictureResetBufferARGB

func WebPPictureResetBufferARGB(tls *libc.TLS, picture uintptr)

func WebPPictureResetBufferYUVA

func WebPPictureResetBufferYUVA(tls *libc.TLS, picture uintptr)

func WebPPictureResetBuffers

func WebPPictureResetBuffers(tls *libc.TLS, picture uintptr)

func WebPPictureSharpARGBToYUVA

func WebPPictureSharpARGBToYUVA(tls *libc.TLS, picture uintptr) int32

func WebPPictureSmartARGBToYUVA

func WebPPictureSmartARGBToYUVA(tls *libc.TLS, picture uintptr) int32

for backward compatibility

func WebPPictureView

func WebPPictureView(tls *libc.TLS, src uintptr, left int32, top int32, width int32, height int32, dst uintptr) int32

func WebPPictureYUVAToARGB

func WebPPictureYUVAToARGB(tls *libc.TLS, picture uintptr) int32

func WebPPlaneDistortion

func WebPPlaneDistortion(tls *libc.TLS, src uintptr, src_stride uint64, ref uintptr, ref_stride uint64, width int32, height int32, x_step uint64, type1 int32, distortion uintptr, result uintptr) int32

func WebPReplaceTransparentPixels

func WebPReplaceTransparentPixels(tls *libc.TLS, pic uintptr, color uint32)

func WebPReportProgress

func WebPReportProgress(tls *libc.TLS, pic uintptr, percent int32, percent_store uintptr) int32

func WebPRescaleNeededLines

func WebPRescaleNeededLines(tls *libc.TLS, rescaler uintptr, max_num_lines int32) int32

func WebPRescalerDspInit

func WebPRescalerDspInit(tls *libc.TLS)

func WebPRescalerDspInitMIPS32

func WebPRescalerDspInitMIPS32(tls *libc.TLS)

func WebPRescalerDspInitMIPSdspR2

func WebPRescalerDspInitMIPSdspR2(tls *libc.TLS)

func WebPRescalerDspInitMSA

func WebPRescalerDspInitMSA(tls *libc.TLS)

func WebPRescalerDspInitNEON

func WebPRescalerDspInitNEON(tls *libc.TLS)

func WebPRescalerDspInitSSE2

func WebPRescalerDspInitSSE2(tls *libc.TLS)

func WebPRescalerDspInit_body

func WebPRescalerDspInit_body(tls *libc.TLS)

func WebPRescalerExport

func WebPRescalerExport(tls *libc.TLS, rescaler uintptr) int32

func WebPRescalerExportRow

func WebPRescalerExportRow(tls *libc.TLS, wrk uintptr)

func WebPRescalerExportRowExpand_C

func WebPRescalerExportRowExpand_C(tls *libc.TLS, wrk uintptr)

func WebPRescalerExportRowShrink_C

func WebPRescalerExportRowShrink_C(tls *libc.TLS, wrk uintptr)

func WebPRescalerGetScaledDimensions

func WebPRescalerGetScaledDimensions(tls *libc.TLS, src_width int32, src_height int32, scaled_width uintptr, scaled_height uintptr) int32

func WebPRescalerHasPendingOutput

func WebPRescalerHasPendingOutput(tls *libc.TLS, rescaler uintptr) int32

Return true if there are pending output rows ready.

func WebPRescalerImport

func WebPRescalerImport(tls *libc.TLS, rescaler uintptr, num_lines int32, src uintptr, src_stride int32) int32

func WebPRescalerImportRow

func WebPRescalerImportRow(tls *libc.TLS, wrk uintptr, src uintptr)

func WebPRescalerImportRowExpand_C

func WebPRescalerImportRowExpand_C(tls *libc.TLS, wrk uintptr, src uintptr)

func WebPRescalerImportRowShrink_C

func WebPRescalerImportRowShrink_C(tls *libc.TLS, wrk uintptr, src uintptr)

func WebPRescalerInit

func WebPRescalerInit(tls *libc.TLS, rescaler uintptr, src_width int32, src_height int32, dst uintptr, dst_width int32, dst_height int32, dst_stride int32, num_channels int32, work uintptr) int32

func WebPRescalerOutputDone

func WebPRescalerOutputDone(tls *libc.TLS, rescaler uintptr) int32

Return true if output is finished

func WebPResetDecParams

func WebPResetDecParams(tls *libc.TLS, params uintptr)

func WebPSafeCalloc

func WebPSafeCalloc(tls *libc.TLS, nmemb uint64, size uint64) uintptr

func WebPSafeFree

func WebPSafeFree(tls *libc.TLS, ptr uintptr)

func WebPSafeMalloc

func WebPSafeMalloc(tls *libc.TLS, nmemb uint64, size uint64) uintptr

func WebPSamplerProcessPlane

func WebPSamplerProcessPlane(tls *libc.TLS, y uintptr, y_stride int32, u uintptr, v uintptr, uv_stride int32, dst uintptr, dst_stride int32, width int32, height int32, func1 uintptr)

Main call for processing a plane with a WebPSamplerRowFunc function:

func WebPSetWorkerInterface

func WebPSetWorkerInterface(tls *libc.TLS, winterface uintptr) int32

func WebPUint32ToMem

func WebPUint32ToMem(tls *libc.TLS, ptr uintptr, val uint32)

func WebPValidateConfig

func WebPValidateConfig(tls *libc.TLS, config uintptr) int32

func WebPYuv444ToArgb_C

func WebPYuv444ToArgb_C(tls *libc.TLS, y uintptr, u uintptr, v uintptr, dst uintptr, len int32)

func WebPYuv444ToBgr_C

func WebPYuv444ToBgr_C(tls *libc.TLS, y uintptr, u uintptr, v uintptr, dst uintptr, len int32)

func WebPYuv444ToBgra_C

func WebPYuv444ToBgra_C(tls *libc.TLS, y uintptr, u uintptr, v uintptr, dst uintptr, len int32)

func WebPYuv444ToRgb565_C

func WebPYuv444ToRgb565_C(tls *libc.TLS, y uintptr, u uintptr, v uintptr, dst uintptr, len int32)

func WebPYuv444ToRgb_C

func WebPYuv444ToRgb_C(tls *libc.TLS, y uintptr, u uintptr, v uintptr, dst uintptr, len int32)

func WebPYuv444ToRgba4444_C

func WebPYuv444ToRgba4444_C(tls *libc.TLS, y uintptr, u uintptr, v uintptr, dst uintptr, len int32)

func WebPYuv444ToRgba_C

func WebPYuv444ToRgba_C(tls *libc.TLS, y uintptr, u uintptr, v uintptr, dst uintptr, len int32)

func WriteHuffmanCode

func WriteHuffmanCode(tls *libc.TLS, bw uintptr, code uintptr, code_index int32)

func WriteHuffmanCodeWithExtraBits

func WriteHuffmanCodeWithExtraBits(tls *libc.TLS, bw uintptr, code uintptr, code_index int32, bits int32, n_bits int32)

func WriteImage

func WriteImage(tls *libc.TLS, pic uintptr, bw uintptr, coded_size uintptr) uint32

func WriteImageSize

func WriteImageSize(tls *libc.TLS, pic uintptr, bw uintptr) int32

func WriteRealAlphaAndVersion

func WriteRealAlphaAndVersion(tls *libc.TLS, bw uintptr, has_alpha int32) int32

func WriteRiffHeader

func WriteRiffHeader(tls *libc.TLS, pic uintptr, riff_size uint64, vp8l_size uint64) uint32

func YuvToArgbRow

func YuvToArgbRow(tls *libc.TLS, y uintptr, u uintptr, v uintptr, dst uintptr, len int32)

func YuvToBgrRow

func YuvToBgrRow(tls *libc.TLS, y uintptr, u uintptr, v uintptr, dst uintptr, len int32)

func YuvToBgraRow

func YuvToBgraRow(tls *libc.TLS, y uintptr, u uintptr, v uintptr, dst uintptr, len int32)

func YuvToRgb565Row

func YuvToRgb565Row(tls *libc.TLS, y uintptr, u uintptr, v uintptr, dst uintptr, len int32)

func YuvToRgbRow

func YuvToRgbRow(tls *libc.TLS, y uintptr, u uintptr, v uintptr, dst uintptr, len int32)

All variants implemented.

func YuvToRgba4444Row

func YuvToRgba4444Row(tls *libc.TLS, y uintptr, u uintptr, v uintptr, dst uintptr, len int32)

func YuvToRgbaRow

func YuvToRgbaRow(tls *libc.TLS, y uintptr, u uintptr, v uintptr, dst uintptr, len int32)

Types

type ALPHDecoder

type ALPHDecoder = ALPHDecoder1 /* alphai_dec.h:26:28 */

type ALPHDecoder1

type ALPHDecoder1 = struct {
	// contains filtered or unexported fields

} /* vp8_dec.h:123:9 */

type AccumulateFunc

type AccumulateFunc = uintptr /* picture_psnr_enc.c:25:16 */

type CPUFeature

type CPUFeature = uint32 /* dsp.h:262:3 */

type CostArray

type CostArray = [3][68]uint16 /* vp8i_enc.h:132:18 */

type CostArrayMap

type CostArrayMap = [16][3]uintptr /* vp8i_enc.h:134:23 */

type CostArrayPtr

type CostArrayPtr = uintptr /* vp8i_enc.h:133:23 */ // for easy casting

type CostCacheInterval

type CostCacheInterval = struct {
	// contains filtered or unexported fields

} /* backward_references_cost_enc.c:178:3 */

The GetLengthCost(cost_model, k) are cached in a CostCacheInterval.

type CostInterval

type CostInterval = CostInterval1 /* backward_references_cost_enc.c:163:29 */

To perform backward reference every pixel at index index_ is considered and the cost for the MAX_LENGTH following pixels computed. Those following pixels at index index_ + k (k from 0 to MAX_LENGTH) have a cost of:

cost_ = distance cost at index + GetLengthCost(cost_model, k)

and the minimum value is kept. GetLengthCost(cost_model, k) is cached in an array of size MAX_LENGTH. Instead of performing MAX_LENGTH comparisons per pixel, we keep track of the minimal values using intervals of constant cost. An interval is defined by the index_ of the pixel that generated it and is only useful in a range of indices from start_ to end_ (exclusive), i.e. it contains the minimum value for pixels between start_ and end_. Intervals are stored in a linked list and ordered by start_. When a new interval has a better value, old intervals are split or removed. There are therefore no overlapping intervals.

type CostInterval1

type CostInterval1 = struct {
	// contains filtered or unexported fields

} /* backward_references_cost_enc.c:163:9 */

To perform backward reference every pixel at index index_ is considered and the cost for the MAX_LENGTH following pixels computed. Those following pixels at index index_ + k (k from 0 to MAX_LENGTH) have a cost of:

cost_ = distance cost at index + GetLengthCost(cost_model, k)

and the minimum value is kept. GetLengthCost(cost_model, k) is cached in an array of size MAX_LENGTH. Instead of performing MAX_LENGTH comparisons per pixel, we keep track of the minimal values using intervals of constant cost. An interval is defined by the index_ of the pixel that generated it and is only useful in a range of indices from start_ to end_ (exclusive), i.e. it contains the minimum value for pixels between start_ and end_. Intervals are stored in a linked list and ordered by start_. When a new interval has a better value, old intervals are split or removed. There are therefore no overlapping intervals.

type CostManager

type CostManager = struct {
	// contains filtered or unexported fields

} /* backward_references_cost_enc.c:200:3 */

This structure is in charge of managing intervals and costs. It caches the different CostCacheInterval, caches the different GetLengthCost(cost_model, k) in cost_cache_ and the CostInterval's (whose count_ is limited by COST_CACHE_INTERVAL_SIZE_MAX).

type CostModel

type CostModel = struct {
	// contains filtered or unexported fields

} /* backward_references_cost_enc.c:38:3 */

type CrunchConfig

type CrunchConfig = struct {
	// contains filtered or unexported fields

} /* vp8l_enc.c:560:3 */

type CrunchSubConfig

type CrunchSubConfig = struct {
	// contains filtered or unexported fields

} /* vp8l_enc.c:554:3 */

Set of parameters to be used in each iteration of the cruncher.

type DError

type DError = [2][2]int8 /* vp8i_enc.h:207:16 */

type DecState

type DecState = uint32 /* idec_dec.c:44:3 */

Decoding states. State normally flows as: WEBP_HEADER->VP8_HEADER->VP8_PARTS0->VP8_DATA->DONE for a lossy image, and WEBP_HEADER->VP8L_HEADER->VP8L_DATA->DONE for a lossless image. If there is any error the decoder goes into state ERROR.

type DominantCostRange

type DominantCostRange = struct {
	// contains filtered or unexported fields

} /* histogram_enc.c:485:3 */

The structure to keep track of cost range for the three dominant entropy symbols. TODO(skal): Evaluate if float can be used here instead of double for representing the entropy costs.

type EntropyIx

type EntropyIx = uint32 /* vp8l_enc.c:334:3 */

These five modes are evaluated and their respective entropy is computed.

type FilterTrial

type FilterTrial = struct {
	// contains filtered or unexported fields

} /* alpha_enc.c:106:3 */

Small struct to hold the result of a filter mode compression attempt.

type GetCoeffsFunc

type GetCoeffsFunc = uintptr /* vp8_dec.c:32:13 */

type HTreeGroup

type HTreeGroup = HTreeGroup1 /* huffman_utils.h:56:27 */

Huffman table group. Includes special handling for the following cases:

  • is_trivial_literal: one common literal base for RED/BLUE/ALPHA (not GREEN)
  • is_trivial_code: only 1 code (no bit is read from bitstream)
  • use_packed_table: few enough literal symbols, so all the bit codes can fit into a small look-up table packed_table[]

The common literal base, if applicable, is stored in 'literal_arb'.

type HTreeGroup1

type HTreeGroup1 = struct {
	// contains filtered or unexported fields

} /* huffman_utils.h:56:9 */

Huffman table group. Includes special handling for the following cases:

  • is_trivial_literal: one common literal base for RED/BLUE/ALPHA (not GREEN)
  • is_trivial_code: only 1 code (no bit is read from bitstream)
  • use_packed_table: few enough literal symbols, so all the bit codes can fit into a small look-up table packed_table[]

The common literal base, if applicable, is stored in 'literal_arb'.

type HistoIx

type HistoIx = uint32 /* vp8l_enc.c:358:3 */

type HistoQueue

type HistoQueue = struct {
	// contains filtered or unexported fields

} /* histogram_enc.c:742:3 */

type HistogramPair

type HistogramPair = struct {
	// contains filtered or unexported fields

} /* histogram_enc.c:736:3 */

Pair of histograms. Negative idx1 value means that pair is out-of-date.

type HuffIndex

type HuffIndex = uint32 /* vp8l_dec.c:47:3 */

-----------------------------------------------------------------------------

Five Huffman codes are used at each meta code:
1. green + length prefix codes + color cache codes,
2. alpha,
3. red,
4. blue, and,
5. distance prefix codes.

type HuffmanCode

type HuffmanCode = struct {
	// contains filtered or unexported fields

} /* huffman_utils.h:36:3 */

Huffman lookup table entry

type HuffmanCode32

type HuffmanCode32 = struct {
	// contains filtered or unexported fields

} /* huffman_utils.h:44:3 */

long version for holding 32b values

type HuffmanTree

type HuffmanTree = struct {
	// contains filtered or unexported fields

} /* huffman_encode_utils.h:42:3 */

Struct to represent the Huffman tree.

type HuffmanTreeCode

type HuffmanTreeCode = struct {
	// contains filtered or unexported fields

} /* huffman_encode_utils.h:34:3 */

Struct to represent the tree codes (depth and bits array).

type HuffmanTreeToken

type HuffmanTreeToken = struct {
	// contains filtered or unexported fields

} /* huffman_encode_utils.h:27:3 */

Struct for holding the tree header in coded form.

type Importer

type Importer = uintptr /* picture_enc.c:230:13 */

type LFStats

type LFStats = [4][64]float64 /* vp8i_enc.h:135:16 */ // filter stats

type MBContext

type MBContext = struct {
	// contains filtered or unexported fields

} /* idec_dec.c:86:3 */

MB context to restore in case VP8DecodeMB() fails

type MemBuffer

type MemBuffer = struct {
	// contains filtered or unexported fields

} /* idec_dec.c:63:3 */

storage for partition #0 and partial data (in a rolling fashion)

type MemBufferMode

type MemBufferMode = uint32 /* idec_dec.c:51:3 */

Operating state for the MemBuffer

type Node

type Node = struct {
	// contains filtered or unexported fields

} /* quant_enc.c:562:3 */

Trellis node

type OutputAlphaFunc

type OutputAlphaFunc = uintptr /* webpi_dec.h:29:13 */

type OutputFunc

type OutputFunc = uintptr /* webpi_dec.h:28:13 */

type OutputRowFunc

type OutputRowFunc = uintptr /* webpi_dec.h:31:13 */

type PaletteSorting

type PaletteSorting = uint32 /* vp8l_enc.c:341:3 */

type PassStats

type PassStats = struct {
	// contains filtered or unexported fields

} /* frame_enc.c:46:3 */

type PixOrCopy

type PixOrCopy = struct {
	// contains filtered or unexported fields

} /* backward_references_enc.h:44:3 */

func PixOrCopyCreateCacheIdx

func PixOrCopyCreateCacheIdx(tls *libc.TLS, idx int32) PixOrCopy

func PixOrCopyCreateCopy

func PixOrCopyCreateCopy(tls *libc.TLS, distance uint32, len uint16) PixOrCopy

func PixOrCopyCreateLiteral

func PixOrCopyCreateLiteral(tls *libc.TLS, argb uint32) PixOrCopy

type PixOrCopyBlock

type PixOrCopyBlock = PixOrCopyBlock1 /* backward_references_enc.h:167:31 */

type PixOrCopyBlock1

type PixOrCopyBlock1 = struct {
	// contains filtered or unexported fields

} /* backward_references_enc.h:167:9 */

type ProbaArray

type ProbaArray = [3][11]uint8 /* vp8i_enc.h:130:17 */

type ProcessRowsFunc

type ProcessRowsFunc = uintptr /* vp8l_dec.c:759:14 */

type ScoreState

type ScoreState = struct {
	// contains filtered or unexported fields

} /* quant_enc.c:568:3 */

Score state

type SegmentJob

type SegmentJob = struct {
	// contains filtered or unexported fields

} /* analysis_enc.c:374:3 */

struct used to collect job result

type SmoothParams

type SmoothParams = struct {
	// contains filtered or unexported fields

} /* quant_levels_dec_utils.c:70:3 */

type StatsArray

type StatsArray = [3][11]uint32 /* vp8i_enc.h:131:17 */

type StreamEncodeContext

type StreamEncodeContext = struct {
	// contains filtered or unexported fields

} /* vp8l_enc.c:1717:3 */

type Sum

type Sum = struct {
	// contains filtered or unexported fields

} /* vp8l_enc.c:232:1 */

type VP8AccumulateSSEFunc

type VP8AccumulateSSEFunc = uintptr /* dsp.h:404:18 */

type VP8BandProbas

type VP8BandProbas = struct {
	// contains filtered or unexported fields

} /* vp8i_dec.h:100:3 */

type VP8BitReader

type VP8BitReader = VP8BitReader1 /* bit_reader_utils.h:91:29 */

type VP8BitReader1

type VP8BitReader1 = struct {
	// contains filtered or unexported fields

} /* vp8_dec.h:123:9 */

type VP8BitWriter

type VP8BitWriter = VP8BitWriter1 /* bit_writer_utils.h:26:29 */

type VP8BitWriter1

type VP8BitWriter1 = struct {
	// contains filtered or unexported fields

} /* bit_writer_utils.h:26:9 */

type VP8BlockCopy

type VP8BlockCopy = uintptr /* dsp.h:312:14 */

type VP8CHisto

type VP8CHisto = uintptr /* dsp.h:340:14 */

type VP8CPUInfo

type VP8CPUInfo = uintptr /* dsp.h:264:13 */

returns true if the CPU supports the feature.

type VP8ChromaFilterFunc

type VP8ChromaFilterFunc = uintptr /* dsp.h:450:14 */

type VP8DecIdct

type VP8DecIdct = uintptr /* dsp.h:415:14 */

type VP8DecIdct2

type VP8DecIdct2 = uintptr /* dsp.h:417:14 */

when doing two transforms, coeffs is actually int16_t[2][16].

type VP8Decoder

type VP8Decoder = VP8Decoder1 /* vp8_dec.h:123:27 */

Main decoding object. This is an opaque structure.

type VP8Decoder1

type VP8Decoder1 = struct {
	// contains filtered or unexported fields

} /* vp8_dec.h:123:9 */

Main decoding object. This is an opaque structure.

type VP8DistoStats

type VP8DistoStats = struct {
	// contains filtered or unexported fields

} /* dsp.h:380:3 */

struct for accumulating statistical moments

type VP8EncFilterHeader

type VP8EncFilterHeader = struct {
	// contains filtered or unexported fields

} /* vp8i_enc.h:167:3 */

Filter parameters. Not actually used in the code (we don't perform the in-loop filtering), but filled from user's config

type VP8EncIterator

type VP8EncIterator = struct {
	// contains filtered or unexported fields

} /* vp8i_enc.h:265:3 */

Iterator structure to iterate through macroblocks, pointing to the right neighbouring data (samples, predictions, contexts, ...)

type VP8EncProba

type VP8EncProba = struct {
	// contains filtered or unexported fields

} /* vp8i_enc.h:158:3 */

Struct collecting all frame-persistent probabilities.

type VP8EncSegmentHeader

type VP8EncSegmentHeader = struct {
	// contains filtered or unexported fields

} /* vp8i_enc.h:145:3 */

segment features

type VP8Encoder

type VP8Encoder = VP8Encoder1 /* vp8i_enc.h:137:27 */

type VP8Encoder1

type VP8Encoder1 = struct {
	// contains filtered or unexported fields

} /* vp8i_enc.h:137:9 */

type VP8FInfo

type VP8FInfo = struct {
	// contains filtered or unexported fields

} /* vp8i_dec.h:128:3 */

type VP8Fdct

type VP8Fdct = uintptr /* dsp.h:284:14 */

type VP8FilterHeader

type VP8FilterHeader = struct {
	// contains filtered or unexported fields

} /* vp8i_dec.h:118:3 */

Filter parameters

type VP8FrameHeader

type VP8FrameHeader = struct {
	// contains filtered or unexported fields

} /* vp8i_dec.h:75:3 */

type VP8GetResidualCostFunc

type VP8GetResidualCostFunc = uintptr /* dsp.h:365:13 */

Cost calculation function.

type VP8Histogram

type VP8Histogram = struct {
	// contains filtered or unexported fields

} /* dsp.h:339:3 */

Collect histogram for susceptibility calculation.

type VP8Idct

type VP8Idct = uintptr /* dsp.h:282:14 */

Transforms VP8Idct: Does one of two inverse transforms. If do_two is set, the transforms

will be done for (ref, in, dst) and (ref + 4, in + 16, dst + 4).

type VP8Intra4Preds

type VP8Intra4Preds = uintptr /* dsp.h:294:14 */

type VP8IntraPreds

type VP8IntraPreds = uintptr /* dsp.h:292:14 */

Predictions *dst is the destination block. *top and *left can be NULL.

type VP8Io

type VP8Io = VP8Io1 /* vp8_dec.h:42:22 */

Input / Output

type VP8Io1

type VP8Io1 = struct {
	// contains filtered or unexported fields

} /* vp8_dec.h:42:9 */

Input / Output

type VP8IoPutHook

type VP8IoPutHook = uintptr /* vp8_dec.h:43:13 */

type VP8IoSetupHook

type VP8IoSetupHook = uintptr /* vp8_dec.h:44:13 */

type VP8IoTeardownHook

type VP8IoTeardownHook = uintptr /* vp8_dec.h:45:14 */

type VP8LAddVectorEqFunc

type VP8LAddVectorEqFunc = uintptr /* lossless.h:230:14 */

type VP8LAddVectorFunc

type VP8LAddVectorFunc = uintptr /* lossless.h:227:14 */

type VP8LBackwardRefs

type VP8LBackwardRefs = VP8LBackwardRefs1 /* backward_references_enc.h:168:33 */

forward declaration

type VP8LBackwardRefs1

type VP8LBackwardRefs1 = struct {
	// contains filtered or unexported fields

} /* backward_references_enc.h:168:9 */

forward declaration

type VP8LBitEntropy

type VP8LBitEntropy = struct {
	// contains filtered or unexported fields

} /* lossless.h:206:3 */

type VP8LBitReader

type VP8LBitReader = struct {
	// contains filtered or unexported fields

} /* bit_reader_utils.h:147:3 */

type VP8LBitWriter

type VP8LBitWriter = struct {
	// contains filtered or unexported fields

} /* bit_writer_utils.h:101:3 */

type VP8LBundleColorMapFunc

type VP8LBundleColorMapFunc = uintptr /* lossless.h:244:14 */

type VP8LCollectColorBlueTransformsFunc

type VP8LCollectColorBlueTransformsFunc = uintptr /* lossless.h:155:14 */

type VP8LCollectColorRedTransformsFunc

type VP8LCollectColorRedTransformsFunc = uintptr /* lossless.h:161:14 */

type VP8LColorCache

type VP8LColorCache = struct {
	// contains filtered or unexported fields

} /* color_cache_utils.h:32:3 */

Main color cache struct.

type VP8LCombinedShannonEntropyFunc

type VP8LCombinedShannonEntropyFunc = uintptr /* lossless.h:188:15 */

type VP8LConvertFunc

type VP8LConvertFunc = uintptr /* lossless.h:98:14 */

Color space conversion.

type VP8LCostCombinedFunc

type VP8LCostCombinedFunc = uintptr /* lossless.h:186:16 */

type VP8LCostFunc

type VP8LCostFunc = uintptr /* lossless.h:185:16 */

type VP8LDecodeState

type VP8LDecodeState = uint32 /* vp8li_dec.h:32:3 */

type VP8LDecoder

type VP8LDecoder = VP8LDecoder1 /* vp8li_dec.h:57:28 */

type VP8LDecoder1

type VP8LDecoder1 = struct {
	// contains filtered or unexported fields

} /* vp8_dec.h:123:9 */

type VP8LEncoder

type VP8LEncoder = struct {
	// contains filtered or unexported fields

} /* vp8li_enc.h:79:3 */

type VP8LEncoderARGBContent

type VP8LEncoderARGBContent = uint32 /* vp8li_enc.h:44:3 */

type VP8LFastLog2SlowFunc

type VP8LFastLog2SlowFunc = uintptr /* lossless_common.h:80:15 */

type VP8LGetCombinedEntropyUnrefinedFunc

type VP8LGetCombinedEntropyUnrefinedFunc = uintptr /* lossless.h:213:14 */

Get the combined symbol bit entropy and Huffman cost stats for the distributions 'X' and 'Y'. Those results can then be refined according to codec specific heuristics.

type VP8LGetEntropyUnrefinedFunc

type VP8LGetEntropyUnrefinedFunc = uintptr /* lossless.h:219:14 */

Get the entropy for the distribution 'X'.

type VP8LHashChain

type VP8LHashChain = VP8LHashChain1 /* backward_references_enc.h:122:30 */

type VP8LHashChain1

type VP8LHashChain1 = struct {
	// contains filtered or unexported fields

} /* backward_references_enc.h:122:9 */

type VP8LHistogram

type VP8LHistogram = struct {
	// contains filtered or unexported fields

} /* histogram_enc.h:48:3 */

A simple container for histograms of data.

type VP8LHistogramSet

type VP8LHistogramSet = struct {
	// contains filtered or unexported fields

} /* histogram_enc.h:56:3 */

Collection of histograms with fixed capacity, allocated as one big memory chunk. Can be destroyed by calling WebPSafeFree().

type VP8LImageTransformType

type VP8LImageTransformType = uint32 /* format_constants.h:60:3 */

to be read is a transform. in a bitstream.

type VP8LMapARGBFunc

type VP8LMapARGBFunc = uintptr /* lossless.h:110:14 */

type VP8LMapAlphaFunc

type VP8LMapAlphaFunc = uintptr /* lossless.h:114:14 */

type VP8LMetadata

type VP8LMetadata = struct {
	// contains filtered or unexported fields

} /* vp8li_dec.h:55:3 */

type VP8LMultipliers

type VP8LMultipliers = struct {
	// contains filtered or unexported fields

} /* lossless.h:81:3 */

func GetBestColorTransformForTile

func GetBestColorTransformForTile(tls *libc.TLS, tile_x int32, tile_y int32, bits int32, prev_x VP8LMultipliers, prev_y VP8LMultipliers, quality int32, xsize int32, ysize int32, accumulated_red_histo uintptr, accumulated_blue_histo uintptr, argb uintptr) VP8LMultipliers

type VP8LPredictorAddSubFunc

type VP8LPredictorAddSubFunc = uintptr /* lossless.h:65:14 */

These Add/Sub function expects upper[-1] and out[-1] to be readable.

type VP8LPredictorFunc

type VP8LPredictorFunc = uintptr /* lossless.h:31:18 */

type VP8LPrefixCode

type VP8LPrefixCode = struct {
	// contains filtered or unexported fields

} /* lossless_common.h:121:3 */

type VP8LProcessDecBlueAndRedFunc

type VP8LProcessDecBlueAndRedFunc = uintptr /* lossless.h:71:14 */

type VP8LProcessEncBlueAndRedFunc

type VP8LProcessEncBlueAndRedFunc = uintptr /* lossless.h:150:14 */

type VP8LRefsCursor

type VP8LRefsCursor = struct {
	// contains filtered or unexported fields

} /* backward_references_enc.h:193:3 */

Cursor for iterating on references content

func VP8LRefsCursorInit

func VP8LRefsCursorInit(tls *libc.TLS, refs uintptr) VP8LRefsCursor

type VP8LStreaks

type VP8LStreaks = struct {
	// contains filtered or unexported fields

} /* lossless.h:198:3 */

type VP8LTransform

type VP8LTransform = VP8LTransform1 /* vp8li_dec.h:34:30 */

type VP8LTransform1

type VP8LTransform1 = struct {
	// contains filtered or unexported fields

} /* vp8_dec.h:123:9 */

type VP8LTransformColorFunc

type VP8LTransformColorFunc = uintptr /* lossless.h:152:14 */

type VP8LTransformColorInverseFunc

type VP8LTransformColorInverseFunc = uintptr /* lossless.h:82:14 */

type VP8LVectorMismatchFunc

type VP8LVectorMismatchFunc = uintptr /* lossless.h:239:13 */

type VP8LumaFilterFunc

type VP8LumaFilterFunc = uintptr /* dsp.h:448:14 */

regular filter (on both macroblock edges and inner edges)

type VP8MB

type VP8MB = struct {
	// contains filtered or unexported fields

} /* vp8i_dec.h:133:3 */

type VP8MBData

type VP8MBData = struct {
	// contains filtered or unexported fields

} /* vp8i_dec.h:162:3 */

Data needed to reconstruct a macroblock

type VP8MBInfo

type VP8MBInfo = struct {
	// contains filtered or unexported fields

} /* vp8i_enc.h:179:3 */

type VP8Matrix

type VP8Matrix = VP8Matrix1 /* vp8i_enc.h:187:3 */

type VP8Matrix1

type VP8Matrix1 = struct {
	// contains filtered or unexported fields

} /* dsp.h:316:1 */

Quantization

type VP8MeanMetric

type VP8MeanMetric = uintptr /* dsp.h:309:14 */

Compute the average (DC) of four 4x4 blocks. Each sub-4x4 block #i sum is stored in dc[i].

type VP8Metric

type VP8Metric = uintptr /* dsp.h:299:13 */

type VP8ModeScore

type VP8ModeScore = struct {
	D  int64
	SD int64
	H  int64
	R  int64
	// contains filtered or unexported fields

} /* vp8i_enc.h:222:3 */

Handy transient struct to accumulate score and info during RD-optimization and mode evaluation.

type VP8PictureHeader

type VP8PictureHeader = struct {
	// contains filtered or unexported fields

} /* vp8i_dec.h:84:3 */

type VP8PredFunc

type VP8PredFunc = uintptr /* dsp.h:427:14 */

*dst is the destination block, with stride BPS. Boundary samples are assumed accessible when needed.

type VP8Proba

type VP8Proba = struct {
	// contains filtered or unexported fields

} /* vp8i_dec.h:108:3 */

Struct collecting all frame-persistent probabilities.

type VP8ProbaArray

type VP8ProbaArray = [11]uint8 /* vp8i_dec.h:96:17 */

probas associated to one of the contexts

type VP8QuantMatrix

type VP8QuantMatrix = struct {
	// contains filtered or unexported fields

} /* vp8i_dec.h:142:3 */

type VP8Quantize2Blocks

type VP8Quantize2Blocks = uintptr /* dsp.h:320:13 */

Same as VP8QuantizeBlock, but quantizes two consecutive blocks.

type VP8QuantizeBlock

type VP8QuantizeBlock = uintptr /* dsp.h:317:13 */

forward declaration

type VP8QuantizeBlockWHT

type VP8QuantizeBlockWHT = uintptr /* dsp.h:327:13 */

specific to 2nd transform:

type VP8RDLevel

type VP8RDLevel = uint32 /* vp8i_enc.h:47:3 */

type VP8Random

type VP8Random = struct {
	// contains filtered or unexported fields

} /* random_utils.h:31:3 */

type VP8Residual

type VP8Residual = VP8Residual1 /* cost_enc.h:27:28 */

On-the-fly info about the current set of residuals. Handy to avoid passing zillions of params.

type VP8Residual1

type VP8Residual1 = struct {
	// contains filtered or unexported fields

} /* dsp.h:359:1 */

type VP8SSIMGetClippedFunc

type VP8SSIMGetClippedFunc = uintptr /* dsp.h:388:16 */ // plane dimension

type VP8SSIMGetFunc

type VP8SSIMGetFunc = uintptr /* dsp.h:396:16 */ // with clipping

This version is called with the guarantee that you can load 8 bytes and 8 rows at offset src1 and src2

type VP8SegmentHeader

type VP8SegmentHeader = struct {
	// contains filtered or unexported fields

} /* vp8i_dec.h:93:3 */

segment features

type VP8SegmentInfo

type VP8SegmentInfo = struct {
	// contains filtered or unexported fields

} /* vp8i_enc.h:205:3 */

type VP8SetResidualCoeffsFunc

type VP8SetResidualCoeffsFunc = uintptr /* dsp.h:360:14 */

type VP8SimpleFilterFunc

type VP8SimpleFilterFunc = uintptr /* dsp.h:441:14 */

simple filter (only for luma)

type VP8StatusCode

type VP8StatusCode = uint32 /* decode.h:243:3 */

type VP8TBuffer

type VP8TBuffer = struct {
	// contains filtered or unexported fields

} /* vp8i_enc.h:321:3 */

type VP8ThreadContext

type VP8ThreadContext = struct {
	// contains filtered or unexported fields

} /* vp8i_dec.h:172:3 */

Persistent information needed by the parallel processing

type VP8Tokens

type VP8Tokens = VP8Tokens1 /* vp8i_enc.h:310:26 */

type VP8Tokens1

type VP8Tokens1 = struct {
	// contains filtered or unexported fields

} /* vp8i_enc.h:310:9 */

type VP8TopSamples

type VP8TopSamples = struct {
	// contains filtered or unexported fields

} /* vp8i_dec.h:177:3 */

Saved top samples, per macroblock. Fits into a cache-line.

type VP8WHT

type VP8WHT = uintptr /* dsp.h:285:14 */

type VP8WMetric

type VP8WMetric = uintptr /* dsp.h:301:13 */

type WEBP_CSP_MODE

type WEBP_CSP_MODE = uint32 /* decode.h:162:3 */

type WEBP_FILTER_TYPE

type WEBP_FILTER_TYPE = uint32 /* dsp.h:704:3 */

type WebPAuxStats

type WebPAuxStats = WebPAuxStats1 /* encode.h:33:29 */

main structure for I/O

type WebPAuxStats1

type WebPAuxStats1 = struct {
	PSNR [5]float32
	// contains filtered or unexported fields

} /* encode.h:32:9 */

type WebPBitstreamFeatures

type WebPBitstreamFeatures = WebPBitstreamFeatures1 /* decode.h:33:38 */

type WebPBitstreamFeatures1

type WebPBitstreamFeatures1 = struct {
	// contains filtered or unexported fields

} /* decode.h:33:9 */

type WebPConfig

type WebPConfig = WebPConfig1 /* encode.h:31:27 */

Note: forward declaring enumerations is not allowed in (strict) C and C++, the types are left here for reference. typedef enum WebPImageHint WebPImageHint; typedef enum WebPEncCSP WebPEncCSP; typedef enum WebPPreset WebPPreset; typedef enum WebPEncodingError WebPEncodingError;

type WebPConfig1

type WebPConfig1 = struct {
	// contains filtered or unexported fields

} /* encode.h:31:9 */

Note: forward declaring enumerations is not allowed in (strict) C and C++, the types are left here for reference. typedef enum WebPImageHint WebPImageHint; typedef enum WebPEncCSP WebPEncCSP; typedef enum WebPPreset WebPPreset; typedef enum WebPEncodingError WebPEncodingError;

type WebPData

type WebPData = WebPData1 /* mux_types.h:29:25 */

Note: forward declaring enumerations is not allowed in (strict) C and C++, the types are left here for reference. typedef enum WebPFeatureFlags WebPFeatureFlags; typedef enum WebPMuxAnimDispose WebPMuxAnimDispose; typedef enum WebPMuxAnimBlend WebPMuxAnimBlend;

type WebPData1

type WebPData1 = struct {
	// contains filtered or unexported fields

} /* mux_types.h:29:9 */

Note: forward declaring enumerations is not allowed in (strict) C and C++, the types are left here for reference. typedef enum WebPFeatureFlags WebPFeatureFlags; typedef enum WebPMuxAnimDispose WebPMuxAnimDispose; typedef enum WebPMuxAnimBlend WebPMuxAnimBlend;

type WebPDecBuffer

type WebPDecBuffer = WebPDecBuffer1 /* decode.h:31:30 */

type WebPDecBuffer1

type WebPDecBuffer1 = struct {
	// contains filtered or unexported fields

} /* decode.h:31:9 */

type WebPDecParams

type WebPDecParams = WebPDecParams1 /* webpi_dec.h:27:30 */

type WebPDecParams1

type WebPDecParams1 = struct {
	// contains filtered or unexported fields

} /* webpi_dec.h:27:9 */

type WebPDecoderConfig

type WebPDecoderConfig = WebPDecoderConfig1 /* decode.h:35:34 */

type WebPDecoderConfig1

type WebPDecoderConfig1 = struct {
	// contains filtered or unexported fields

} /* decode.h:35:9 */

type WebPDecoderOptions

type WebPDecoderOptions = WebPDecoderOptions1 /* decode.h:34:35 */

type WebPDecoderOptions1

type WebPDecoderOptions1 = struct {
	// contains filtered or unexported fields

} /* decode.h:34:9 */

type WebPEncCSP

type WebPEncCSP = uint32 /* encode.h:273:3 */

Color spaces.

type WebPEncodingError

type WebPEncodingError = uint32 /* encode.h:289:3 */

Encoding error conditions.

type WebPFeatureFlags

type WebPFeatureFlags = uint32 /* mux_types.h:40:3 */

VP8X Feature Flags.

type WebPFilterFunc

type WebPFilterFunc = uintptr /* dsp.h:706:14 */

type WebPHeaderStructure

type WebPHeaderStructure = struct {
	// contains filtered or unexported fields

} /* webpi_dec.h:67:3 */

Structure storing a description of the RIFF headers.

type WebPIDecoder

type WebPIDecoder = WebPIDecoder1 /* decode.h:32:29 */

type WebPIDecoder1

type WebPIDecoder1 = struct {
	// contains filtered or unexported fields

} /* decode.h:32:9 */

type WebPImageHint

type WebPImageHint = uint32 /* encode.h:92:3 */

Image characteristics hint for the underlying encoder.

type WebPMemoryWriter

type WebPMemoryWriter = WebPMemoryWriter1 /* encode.h:34:33 */

type WebPMemoryWriter1

type WebPMemoryWriter1 = struct {
	// contains filtered or unexported fields

} /* encode.h:34:9 */

type WebPMuxAnimBlend

type WebPMuxAnimBlend = uint32 /* mux_types.h:54:3 */

Blend operation (animation only). Indicates how transparent pixels of the current frame are blended with those of the previous canvas.

type WebPMuxAnimDispose

type WebPMuxAnimDispose = uint32 /* mux_types.h:47:3 */

Dispose method (animation only). Indicates how the area used by the current frame is to be treated before rendering the next frame on the canvas.

type WebPPicture

type WebPPicture = WebPPicture1 /* encode.h:32:28 */ // main structure for I/O

type WebPPicture1

type WebPPicture1 = struct {
	// contains filtered or unexported fields

} /* encode.h:32:9 */

type WebPPreset

type WebPPreset = uint32 /* encode.h:164:3 */

Enumerate some predefined settings for WebPConfig, depending on the type of source picture. These presets are used when calling WebPConfigPreset().

type WebPProgressHook

type WebPProgressHook = uintptr /* encode.h:264:13 */

Progress hook, called from time to time to report progress. It can return false to request an abort of the encoding process, or true otherwise if everything is OK.

type WebPRGBABuffer

type WebPRGBABuffer = WebPRGBABuffer1 /* decode.h:29:31 */

Note: forward declaring enumerations is not allowed in (strict) C and C++, the types are left here for reference. typedef enum VP8StatusCode VP8StatusCode; typedef enum WEBP_CSP_MODE WEBP_CSP_MODE;

type WebPRGBABuffer1

type WebPRGBABuffer1 = struct {
	// contains filtered or unexported fields

} /* decode.h:29:9 */

Note: forward declaring enumerations is not allowed in (strict) C and C++, the types are left here for reference. typedef enum VP8StatusCode VP8StatusCode; typedef enum WEBP_CSP_MODE WEBP_CSP_MODE;

type WebPRescaler

type WebPRescaler = WebPRescaler1 /* rescaler_utils.h:30:29 */

type for side-buffer

type WebPRescaler1

type WebPRescaler1 = struct {
	// contains filtered or unexported fields

} /* rescaler_utils.h:30:9 */

type WebPRescalerExportRowFunc

type WebPRescalerExportRowFunc = uintptr /* dsp.h:583:14 */

Export one row (starting at x_out position) from rescaler. 'Expand' corresponds to the wrk->y_expand case. Otherwise 'Shrink' is to be used

type WebPRescalerImportRowFunc

type WebPRescalerImportRowFunc = uintptr /* dsp.h:574:14 */

Import a row of data and save its contribution in the rescaler. 'channel' denotes the channel number to be imported. 'Expand' corresponds to the wrk->x_expand case. Otherwise, 'Shrink' is to be used.

type WebPSamplerRowFunc

type WebPSamplerRowFunc = uintptr /* dsp.h:497:14 */

Per-row point-sampling methods.

type WebPUnfilterFunc

type WebPUnfilterFunc = uintptr /* dsp.h:710:14 */

In-place un-filtering. Warning! 'prev_line' pointer can be equal to 'cur_line' or 'preds'.

type WebPUpsampleLinePairFunc

type WebPUpsampleLinePairFunc = uintptr /* dsp.h:483:14 */

Convert a pair of y/u/v lines together to the output rgb/a colorspace. bottom_y can be NULL if only one line of output is needed (at top/bottom).

type WebPWorker

type WebPWorker = struct {
	// contains filtered or unexported fields

} /* thread_utils.h:46:3 */

Synchronization object used to launch job in the worker thread

type WebPWorkerHook

type WebPWorkerHook = uintptr /* thread_utils.h:36:13 */

Function to be called by the worker thread. Takes two opaque pointers as arguments (data1 and data2), and should return false in case of error.

type WebPWorkerInterface

type WebPWorkerInterface = struct {
	Init    uintptr
	Reset   uintptr
	Sync    uintptr
	Launch  uintptr
	Execute uintptr
	End     uintptr

} /* thread_utils.h:71:3 */

The interface for all thread-worker related functions. All these functions must be implemented.

type WebPWorkerStatus

type WebPWorkerStatus = uint32 /* thread_utils.h:32:3 */

State of the worker thread object

type WebPWriterFunction

type WebPWriterFunction = uintptr /* encode.h:237:13 */

Signature for output function. Should return true if writing was successful. data/data_size is the segment of data to write, and 'picture' is for reference (and so one can make use of picture->custom_ptr).

type WebPYUV444Converter

type WebPYUV444Converter = uintptr /* dsp.h:515:14 */

YUV444->RGB converters

type WebPYUVABuffer

type WebPYUVABuffer = WebPYUVABuffer1 /* decode.h:30:31 */

type WebPYUVABuffer1

type WebPYUVABuffer1 = struct {
	// contains filtered or unexported fields

} /* decode.h:30:9 */

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL