Files
86Box/src/include/86box/vid_voodoo_dither.h
2022-02-18 19:42:21 -05:00

10296 lines
162 KiB
C

/*
* 86Box A hypervisor and IBM PC system emulator that specializes in
* running old operating systems and software designed for IBM
* PC systems and compatibles from 1981 through fairly recent
* system designs based on the PCI bus.
*
* This file is part of the 86Box distribution.
*
* Voodoo Graphics and 2 specific emulation.
*
*
*
* Authors: Sarah Walker, <http://pcem-emulator.co.uk/>
* leilei
*
* Copyright 2008-2020 Sarah Walker.
*/
#ifndef VIDEO_VOODOO_DITHER_H
# define VIDEO_VOODOO_DITHER_H
static const uint8_t dither_rb[256][4][4] =
{
{
{0, 0, 0, 0},
{0, 0, 0, 0},
{0, 0, 0, 0},
{0, 0, 0, 0},
},
{
{0, 0, 0, 0},
{0, 0, 1, 0},
{0, 0, 0, 0},
{1, 0, 0, 0},
},
{
{0, 0, 0, 0},
{1, 0, 1, 0},
{0, 0, 0, 0},
{1, 0, 1, 0},
},
{
{0, 0, 0, 1},
{1, 0, 1, 0},
{0, 1, 0, 0},
{1, 0, 1, 0},
},
{
{0, 1, 0, 1},
{1, 0, 1, 0},
{0, 1, 0, 1},
{1, 0, 1, 0},
},
{
{0, 1, 0, 1},
{1, 0, 1, 1},
{0, 1, 0, 1},
{1, 1, 1, 0},
},
{
{0, 1, 0, 1},
{1, 1, 1, 1},
{0, 1, 0, 1},
{1, 1, 1, 1},
},
{
{0, 1, 1, 1},
{1, 1, 1, 1},
{1, 1, 0, 1},
{1, 1, 1, 1},
},
{
{1, 1, 1, 1},
{1, 1, 1, 1},
{1, 1, 1, 1},
{1, 1, 1, 1},
},
{
{1, 1, 1, 1},
{1, 1, 2, 1},
{1, 1, 1, 1},
{2, 1, 1, 1},
},
{
{1, 1, 1, 1},
{2, 1, 2, 1},
{1, 1, 1, 1},
{2, 1, 2, 1},
},
{
{1, 1, 1, 2},
{2, 1, 2, 1},
{1, 2, 1, 1},
{2, 1, 2, 1},
},
{
{1, 2, 1, 2},
{2, 1, 2, 1},
{1, 2, 1, 2},
{2, 1, 2, 1},
},
{
{1, 2, 1, 2},
{2, 1, 2, 2},
{1, 2, 1, 2},
{2, 2, 2, 1},
},
{
{1, 2, 1, 2},
{2, 2, 2, 2},
{1, 2, 1, 2},
{2, 2, 2, 2},
},
{
{1, 2, 2, 2},
{2, 2, 2, 2},
{2, 2, 1, 2},
{2, 2, 2, 2},
},
{
{1, 2, 2, 2},
{2, 2, 2, 2},
{2, 2, 2, 2},
{2, 2, 2, 2},
},
{
{2, 2, 2, 2},
{2, 2, 2, 2},
{2, 2, 2, 2},
{3, 2, 2, 2},
},
{
{2, 2, 2, 2},
{2, 2, 3, 2},
{2, 2, 2, 2},
{3, 2, 3, 2},
},
{
{2, 2, 2, 2},
{3, 2, 3, 2},
{2, 3, 2, 2},
{3, 2, 3, 2},
},
{
{2, 2, 2, 3},
{3, 2, 3, 2},
{2, 3, 2, 3},
{3, 2, 3, 2},
},
{
{2, 3, 2, 3},
{3, 2, 3, 2},
{2, 3, 2, 3},
{3, 3, 3, 2},
},
{
{2, 3, 2, 3},
{3, 2, 3, 3},
{2, 3, 2, 3},
{3, 3, 3, 3},
},
{
{2, 3, 2, 3},
{3, 3, 3, 3},
{3, 3, 2, 3},
{3, 3, 3, 3},
},
{
{2, 3, 3, 3},
{3, 3, 3, 3},
{3, 3, 3, 3},
{3, 3, 3, 3},
},
{
{3, 3, 3, 3},
{3, 3, 3, 3},
{3, 3, 3, 3},
{4, 3, 3, 3},
},
{
{3, 3, 3, 3},
{3, 3, 4, 3},
{3, 3, 3, 3},
{4, 3, 4, 3},
},
{
{3, 3, 3, 3},
{4, 3, 4, 3},
{3, 4, 3, 3},
{4, 3, 4, 3},
},
{
{3, 3, 3, 4},
{4, 3, 4, 3},
{3, 4, 3, 4},
{4, 3, 4, 3},
},
{
{3, 4, 3, 4},
{4, 3, 4, 3},
{3, 4, 3, 4},
{4, 4, 4, 3},
},
{
{3, 4, 3, 4},
{4, 3, 4, 4},
{3, 4, 3, 4},
{4, 4, 4, 4},
},
{
{3, 4, 3, 4},
{4, 4, 4, 4},
{4, 4, 3, 4},
{4, 4, 4, 4},
},
{
{3, 4, 4, 4},
{4, 4, 4, 4},
{4, 4, 3, 4},
{4, 4, 4, 4},
},
{
{4, 4, 4, 4},
{4, 4, 4, 4},
{4, 4, 4, 4},
{4, 4, 4, 4},
},
{
{4, 4, 4, 4},
{4, 4, 5, 4},
{4, 4, 4, 4},
{5, 4, 4, 4},
},
{
{4, 4, 4, 4},
{5, 4, 5, 4},
{4, 4, 4, 4},
{5, 4, 5, 4},
},
{
{4, 4, 4, 5},
{5, 4, 5, 4},
{4, 5, 4, 4},
{5, 4, 5, 4},
},
{
{4, 5, 4, 5},
{5, 4, 5, 4},
{4, 5, 4, 5},
{5, 4, 5, 4},
},
{
{4, 5, 4, 5},
{5, 4, 5, 5},
{4, 5, 4, 5},
{5, 5, 5, 4},
},
{
{4, 5, 4, 5},
{5, 5, 5, 5},
{4, 5, 4, 5},
{5, 5, 5, 5},
},
{
{4, 5, 5, 5},
{5, 5, 5, 5},
{5, 5, 4, 5},
{5, 5, 5, 5},
},
{
{5, 5, 5, 5},
{5, 5, 5, 5},
{5, 5, 5, 5},
{5, 5, 5, 5},
},
{
{5, 5, 5, 5},
{5, 5, 6, 5},
{5, 5, 5, 5},
{6, 5, 5, 5},
},
{
{5, 5, 5, 5},
{6, 5, 6, 5},
{5, 5, 5, 5},
{6, 5, 6, 5},
},
{
{5, 5, 5, 6},
{6, 5, 6, 5},
{5, 6, 5, 5},
{6, 5, 6, 5},
},
{
{5, 6, 5, 6},
{6, 5, 6, 5},
{5, 6, 5, 6},
{6, 5, 6, 5},
},
{
{5, 6, 5, 6},
{6, 5, 6, 6},
{5, 6, 5, 6},
{6, 6, 6, 5},
},
{
{5, 6, 5, 6},
{6, 6, 6, 6},
{5, 6, 5, 6},
{6, 6, 6, 6},
},
{
{5, 6, 5, 6},
{6, 6, 6, 6},
{6, 6, 5, 6},
{6, 6, 6, 6},
},
{
{5, 6, 6, 6},
{6, 6, 6, 6},
{6, 6, 6, 6},
{6, 6, 6, 6},
},
{
{6, 6, 6, 6},
{6, 6, 6, 6},
{6, 6, 6, 6},
{7, 6, 6, 6},
},
{
{6, 6, 6, 6},
{6, 6, 7, 6},
{6, 6, 6, 6},
{7, 6, 7, 6},
},
{
{6, 6, 6, 6},
{7, 6, 7, 6},
{6, 7, 6, 6},
{7, 6, 7, 6},
},
{
{6, 6, 6, 7},
{7, 6, 7, 6},
{6, 7, 6, 7},
{7, 6, 7, 6},
},
{
{6, 7, 6, 7},
{7, 6, 7, 6},
{6, 7, 6, 7},
{7, 7, 7, 6},
},
{
{6, 7, 6, 7},
{7, 6, 7, 7},
{6, 7, 6, 7},
{7, 7, 7, 7},
},
{
{6, 7, 6, 7},
{7, 7, 7, 7},
{7, 7, 6, 7},
{7, 7, 7, 7},
},
{
{6, 7, 7, 7},
{7, 7, 7, 7},
{7, 7, 7, 7},
{7, 7, 7, 7},
},
{
{7, 7, 7, 7},
{7, 7, 7, 7},
{7, 7, 7, 7},
{8, 7, 7, 7},
},
{
{7, 7, 7, 7},
{7, 7, 8, 7},
{7, 7, 7, 7},
{8, 7, 8, 7},
},
{
{7, 7, 7, 7},
{8, 7, 8, 7},
{7, 8, 7, 7},
{8, 7, 8, 7},
},
{
{7, 7, 7, 8},
{8, 7, 8, 7},
{7, 8, 7, 8},
{8, 7, 8, 7},
},
{
{7, 8, 7, 8},
{8, 7, 8, 7},
{7, 8, 7, 8},
{8, 8, 8, 7},
},
{
{7, 8, 7, 8},
{8, 7, 8, 8},
{7, 8, 7, 8},
{8, 8, 8, 8},
},
{
{7, 8, 7, 8},
{8, 8, 8, 8},
{7, 8, 7, 8},
{8, 8, 8, 8},
},
{
{7, 8, 8, 8},
{8, 8, 8, 8},
{8, 8, 7, 8},
{8, 8, 8, 8},
},
{
{8, 8, 8, 8},
{8, 8, 8, 8},
{8, 8, 8, 8},
{8, 8, 8, 8},
},
{
{8, 8, 8, 8},
{8, 8, 9, 8},
{8, 8, 8, 8},
{9, 8, 8, 8},
},
{
{8, 8, 8, 8},
{9, 8, 9, 8},
{8, 8, 8, 8},
{9, 8, 9, 8},
},
{
{8, 8, 8, 9},
{9, 8, 9, 8},
{8, 9, 8, 8},
{9, 8, 9, 8},
},
{
{8, 9, 8, 9},
{9, 8, 9, 8},
{8, 9, 8, 9},
{9, 8, 9, 8},
},
{
{8, 9, 8, 9},
{9, 8, 9, 9},
{8, 9, 8, 9},
{9, 9, 9, 8},
},
{
{8, 9, 8, 9},
{9, 9, 9, 9},
{8, 9, 8, 9},
{9, 9, 9, 9},
},
{
{8, 9, 9, 9},
{9, 9, 9, 9},
{9, 9, 8, 9},
{9, 9, 9, 9},
},
{
{9, 9, 9, 9},
{9, 9, 9, 9},
{9, 9, 9, 9},
{9, 9, 9, 9},
},
{
{9, 9, 9, 9},
{9, 9, 10, 9},
{9, 9, 9, 9},
{10, 9, 9, 9},
},
{
{9, 9, 9, 9},
{10, 9, 10, 9},
{9, 9, 9, 9},
{10, 9, 10, 9},
},
{
{9, 9, 9, 10},
{10, 9, 10, 9},
{9, 10, 9, 9},
{10, 9, 10, 9},
},
{
{9, 10, 9, 10},
{10, 9, 10, 9},
{9, 10, 9, 10},
{10, 9, 10, 9},
},
{
{9, 10, 9, 10},
{10, 9, 10, 10},
{9, 10, 9, 10},
{10, 10, 10, 9},
},
{
{9, 10, 9, 10},
{10, 9, 10, 10},
{9, 10, 9, 10},
{10, 10, 10, 10},
},
{
{9, 10, 9, 10},
{10, 10, 10, 10},
{10, 10, 9, 10},
{10, 10, 10, 10},
},
{
{9, 10, 10, 10},
{10, 10, 10, 10},
{10, 10, 10, 10},
{10, 10, 10, 10},
},
{
{10, 10, 10, 10},
{10, 10, 10, 10},
{10, 10, 10, 10},
{11, 10, 10, 10},
},
{
{10, 10, 10, 10},
{10, 10, 11, 10},
{10, 10, 10, 10},
{11, 10, 11, 10},
},
{
{10, 10, 10, 10},
{11, 10, 11, 10},
{10, 11, 10, 10},
{11, 10, 11, 10},
},
{
{10, 10, 10, 11},
{11, 10, 11, 10},
{10, 11, 10, 11},
{11, 10, 11, 10},
},
{
{10, 11, 10, 11},
{11, 10, 11, 10},
{10, 11, 10, 11},
{11, 11, 11, 10},
},
{
{10, 11, 10, 11},
{11, 10, 11, 11},
{10, 11, 10, 11},
{11, 11, 11, 11},
},
{
{10, 11, 10, 11},
{11, 11, 11, 11},
{11, 11, 10, 11},
{11, 11, 11, 11},
},
{
{10, 11, 11, 11},
{11, 11, 11, 11},
{11, 11, 11, 11},
{11, 11, 11, 11},
},
{
{11, 11, 11, 11},
{11, 11, 11, 11},
{11, 11, 11, 11},
{12, 11, 11, 11},
},
{
{11, 11, 11, 11},
{11, 11, 12, 11},
{11, 11, 11, 11},
{12, 11, 12, 11},
},
{
{11, 11, 11, 11},
{12, 11, 12, 11},
{11, 12, 11, 11},
{12, 11, 12, 11},
},
{
{11, 11, 11, 12},
{12, 11, 12, 11},
{11, 12, 11, 12},
{12, 11, 12, 11},
},
{
{11, 12, 11, 12},
{12, 11, 12, 11},
{11, 12, 11, 12},
{12, 12, 12, 11},
},
{
{11, 12, 11, 12},
{12, 11, 12, 12},
{11, 12, 11, 12},
{12, 12, 12, 11},
},
{
{11, 12, 11, 12},
{12, 12, 12, 12},
{11, 12, 11, 12},
{12, 12, 12, 12},
},
{
{11, 12, 12, 12},
{12, 12, 12, 12},
{12, 12, 11, 12},
{12, 12, 12, 12},
},
{
{12, 12, 12, 12},
{12, 12, 12, 12},
{12, 12, 12, 12},
{12, 12, 12, 12},
},
{
{12, 12, 12, 12},
{12, 12, 13, 12},
{12, 12, 12, 12},
{13, 12, 12, 12},
},
{
{12, 12, 12, 12},
{13, 12, 13, 12},
{12, 12, 12, 12},
{13, 12, 13, 12},
},
{
{12, 12, 12, 13},
{13, 12, 13, 12},
{12, 13, 12, 12},
{13, 12, 13, 12},
},
{
{12, 13, 12, 13},
{13, 12, 13, 12},
{12, 13, 12, 13},
{13, 12, 13, 12},
},
{
{12, 13, 12, 13},
{13, 12, 13, 13},
{12, 13, 12, 13},
{13, 13, 13, 12},
},
{
{12, 13, 12, 13},
{13, 13, 13, 13},
{12, 13, 12, 13},
{13, 13, 13, 13},
},
{
{12, 13, 13, 13},
{13, 13, 13, 13},
{13, 13, 12, 13},
{13, 13, 13, 13},
},
{
{13, 13, 13, 13},
{13, 13, 13, 13},
{13, 13, 13, 13},
{13, 13, 13, 13},
},
{
{13, 13, 13, 13},
{13, 13, 14, 13},
{13, 13, 13, 13},
{14, 13, 13, 13},
},
{
{13, 13, 13, 13},
{14, 13, 14, 13},
{13, 13, 13, 13},
{14, 13, 14, 13},
},
{
{13, 13, 13, 14},
{14, 13, 14, 13},
{13, 14, 13, 13},
{14, 13, 14, 13},
},
{
{13, 14, 13, 14},
{14, 13, 14, 13},
{13, 14, 13, 14},
{14, 13, 14, 13},
},
{
{13, 14, 13, 14},
{14, 13, 14, 13},
{13, 14, 13, 14},
{14, 14, 14, 13},
},
{
{13, 14, 13, 14},
{14, 13, 14, 14},
{13, 14, 13, 14},
{14, 14, 14, 14},
},
{
{13, 14, 13, 14},
{14, 14, 14, 14},
{14, 14, 13, 14},
{14, 14, 14, 14},
},
{
{13, 14, 14, 14},
{14, 14, 14, 14},
{14, 14, 14, 14},
{14, 14, 14, 14},
},
{
{14, 14, 14, 14},
{14, 14, 14, 14},
{14, 14, 14, 14},
{15, 14, 14, 14},
},
{
{14, 14, 14, 14},
{14, 14, 15, 14},
{14, 14, 14, 14},
{15, 14, 15, 14},
},
{
{14, 14, 14, 14},
{15, 14, 15, 14},
{14, 15, 14, 14},
{15, 14, 15, 14},
},
{
{14, 14, 14, 15},
{15, 14, 15, 14},
{14, 15, 14, 15},
{15, 14, 15, 14},
},
{
{14, 15, 14, 15},
{15, 14, 15, 14},
{14, 15, 14, 15},
{15, 15, 15, 14},
},
{
{14, 15, 14, 15},
{15, 14, 15, 15},
{14, 15, 14, 15},
{15, 15, 15, 15},
},
{
{14, 15, 14, 15},
{15, 15, 15, 15},
{15, 15, 14, 15},
{15, 15, 15, 15},
},
{
{14, 15, 15, 15},
{15, 15, 15, 15},
{15, 15, 15, 15},
{15, 15, 15, 15},
},
{
{15, 15, 15, 15},
{15, 15, 15, 15},
{15, 15, 15, 15},
{16, 15, 15, 15},
},
{
{15, 15, 15, 15},
{15, 15, 16, 15},
{15, 15, 15, 15},
{16, 15, 16, 15},
},
{
{15, 15, 15, 15},
{16, 15, 16, 15},
{15, 16, 15, 15},
{16, 15, 16, 15},
},
{
{15, 15, 15, 16},
{16, 15, 16, 15},
{15, 16, 15, 16},
{16, 15, 16, 15},
},
{
{15, 16, 15, 16},
{16, 15, 16, 15},
{15, 16, 15, 16},
{16, 16, 16, 15},
},
{
{15, 16, 15, 16},
{16, 15, 16, 16},
{15, 16, 15, 16},
{16, 16, 16, 16},
},
{
{15, 16, 15, 16},
{16, 16, 16, 16},
{16, 16, 15, 16},
{16, 16, 16, 16},
},
{
{15, 16, 16, 16},
{16, 16, 16, 16},
{16, 16, 16, 16},
{16, 16, 16, 16},
},
{
{16, 16, 16, 16},
{16, 16, 16, 16},
{16, 16, 16, 16},
{17, 16, 16, 16},
},
{
{16, 16, 16, 16},
{16, 16, 17, 16},
{16, 16, 16, 16},
{17, 16, 17, 16},
},
{
{16, 16, 16, 16},
{17, 16, 17, 16},
{16, 17, 16, 16},
{17, 16, 17, 16},
},
{
{16, 16, 16, 17},
{17, 16, 17, 16},
{16, 17, 16, 17},
{17, 16, 17, 16},
},
{
{16, 17, 16, 17},
{17, 16, 17, 16},
{16, 17, 16, 17},
{17, 17, 17, 16},
},
{
{16, 17, 16, 17},
{17, 16, 17, 17},
{16, 17, 16, 17},
{17, 17, 17, 17},
},
{
{16, 17, 16, 17},
{17, 17, 17, 17},
{17, 17, 16, 17},
{17, 17, 17, 17},
},
{
{16, 17, 17, 17},
{17, 17, 17, 17},
{17, 17, 17, 17},
{17, 17, 17, 17},
},
{
{17, 17, 17, 17},
{17, 17, 17, 17},
{17, 17, 17, 17},
{18, 17, 17, 17},
},
{
{17, 17, 17, 17},
{17, 17, 18, 17},
{17, 17, 17, 17},
{18, 17, 18, 17},
},
{
{17, 17, 17, 17},
{18, 17, 18, 17},
{17, 18, 17, 17},
{18, 17, 18, 17},
},
{
{17, 17, 17, 18},
{18, 17, 18, 17},
{17, 18, 17, 18},
{18, 17, 18, 17},
},
{
{17, 18, 17, 18},
{18, 17, 18, 17},
{17, 18, 17, 18},
{18, 17, 18, 17},
},
{
{17, 18, 17, 18},
{18, 17, 18, 18},
{17, 18, 17, 18},
{18, 18, 18, 17},
},
{
{17, 18, 17, 18},
{18, 18, 18, 18},
{17, 18, 17, 18},
{18, 18, 18, 18},
},
{
{17, 18, 18, 18},
{18, 18, 18, 18},
{18, 18, 17, 18},
{18, 18, 18, 18},
},
{
{18, 18, 18, 18},
{18, 18, 18, 18},
{18, 18, 18, 18},
{18, 18, 18, 18},
},
{
{18, 18, 18, 18},
{18, 18, 19, 18},
{18, 18, 18, 18},
{19, 18, 18, 18},
},
{
{18, 18, 18, 18},
{19, 18, 19, 18},
{18, 18, 18, 18},
{19, 18, 19, 18},
},
{
{18, 18, 18, 19},
{19, 18, 19, 18},
{18, 19, 18, 18},
{19, 18, 19, 18},
},
{
{18, 19, 18, 19},
{19, 18, 19, 18},
{18, 19, 18, 19},
{19, 18, 19, 18},
},
{
{18, 19, 18, 19},
{19, 18, 19, 19},
{18, 19, 18, 19},
{19, 19, 19, 18},
},
{
{18, 19, 18, 19},
{19, 19, 19, 19},
{18, 19, 18, 19},
{19, 19, 19, 19},
},
{
{18, 19, 19, 19},
{19, 19, 19, 19},
{19, 19, 18, 19},
{19, 19, 19, 19},
},
{
{19, 19, 19, 19},
{19, 19, 19, 19},
{19, 19, 19, 19},
{19, 19, 19, 19},
},
{
{19, 19, 19, 19},
{19, 19, 20, 19},
{19, 19, 19, 19},
{20, 19, 19, 19},
},
{
{19, 19, 19, 19},
{20, 19, 20, 19},
{19, 19, 19, 19},
{20, 19, 20, 19},
},
{
{19, 19, 19, 20},
{20, 19, 20, 19},
{19, 20, 19, 19},
{20, 19, 20, 19},
},
{
{19, 19, 19, 20},
{20, 19, 20, 19},
{19, 20, 19, 20},
{20, 19, 20, 19},
},
{
{19, 20, 19, 20},
{20, 19, 20, 19},
{19, 20, 19, 20},
{20, 20, 20, 19},
},
{
{19, 20, 19, 20},
{20, 19, 20, 20},
{19, 20, 19, 20},
{20, 20, 20, 20},
},
{
{19, 20, 19, 20},
{20, 20, 20, 20},
{20, 20, 19, 20},
{20, 20, 20, 20},
},
{
{19, 20, 20, 20},
{20, 20, 20, 20},
{20, 20, 20, 20},
{20, 20, 20, 20},
},
{
{20, 20, 20, 20},
{20, 20, 20, 20},
{20, 20, 20, 20},
{21, 20, 20, 20},
},
{
{20, 20, 20, 20},
{20, 20, 21, 20},
{20, 20, 20, 20},
{21, 20, 21, 20},
},
{
{20, 20, 20, 20},
{21, 20, 21, 20},
{20, 21, 20, 20},
{21, 20, 21, 20},
},
{
{20, 20, 20, 21},
{21, 20, 21, 20},
{20, 21, 20, 21},
{21, 20, 21, 20},
},
{
{20, 21, 20, 21},
{21, 20, 21, 20},
{20, 21, 20, 21},
{21, 21, 21, 20},
},
{
{20, 21, 20, 21},
{21, 20, 21, 21},
{20, 21, 20, 21},
{21, 21, 21, 21},
},
{
{20, 21, 20, 21},
{21, 21, 21, 21},
{21, 21, 20, 21},
{21, 21, 21, 21},
},
{
{20, 21, 21, 21},
{21, 21, 21, 21},
{21, 21, 21, 21},
{21, 21, 21, 21},
},
{
{21, 21, 21, 21},
{21, 21, 21, 21},
{21, 21, 21, 21},
{22, 21, 21, 21},
},
{
{21, 21, 21, 21},
{21, 21, 22, 21},
{21, 21, 21, 21},
{22, 21, 22, 21},
},
{
{21, 21, 21, 21},
{22, 21, 22, 21},
{21, 22, 21, 21},
{22, 21, 22, 21},
},
{
{21, 21, 21, 22},
{22, 21, 22, 21},
{21, 22, 21, 21},
{22, 21, 22, 21},
},
{
{21, 22, 21, 22},
{22, 21, 22, 21},
{21, 22, 21, 22},
{22, 21, 22, 21},
},
{
{21, 22, 21, 22},
{22, 21, 22, 22},
{21, 22, 21, 22},
{22, 22, 22, 21},
},
{
{21, 22, 21, 22},
{22, 22, 22, 22},
{21, 22, 21, 22},
{22, 22, 22, 22},
},
{
{21, 22, 22, 22},
{22, 22, 22, 22},
{22, 22, 21, 22},
{22, 22, 22, 22},
},
{
{22, 22, 22, 22},
{22, 22, 22, 22},
{22, 22, 22, 22},
{22, 22, 22, 22},
},
{
{22, 22, 22, 22},
{22, 22, 23, 22},
{22, 22, 22, 22},
{23, 22, 22, 22},
},
{
{22, 22, 22, 22},
{23, 22, 23, 22},
{22, 22, 22, 22},
{23, 22, 23, 22},
},
{
{22, 22, 22, 23},
{23, 22, 23, 22},
{22, 23, 22, 22},
{23, 22, 23, 22},
},
{
{22, 23, 22, 23},
{23, 22, 23, 22},
{22, 23, 22, 23},
{23, 22, 23, 22},
},
{
{22, 23, 22, 23},
{23, 22, 23, 23},
{22, 23, 22, 23},
{23, 23, 23, 22},
},
{
{22, 23, 22, 23},
{23, 23, 23, 23},
{22, 23, 22, 23},
{23, 23, 23, 23},
},
{
{22, 23, 23, 23},
{23, 23, 23, 23},
{23, 23, 22, 23},
{23, 23, 23, 23},
},
{
{23, 23, 23, 23},
{23, 23, 23, 23},
{23, 23, 23, 23},
{23, 23, 23, 23},
},
{
{23, 23, 23, 23},
{23, 23, 24, 23},
{23, 23, 23, 23},
{24, 23, 23, 23},
},
{
{23, 23, 23, 23},
{24, 23, 24, 23},
{23, 23, 23, 23},
{24, 23, 24, 23},
},
{
{23, 23, 23, 23},
{24, 23, 24, 23},
{23, 24, 23, 23},
{24, 23, 24, 23},
},
{
{23, 23, 23, 24},
{24, 23, 24, 23},
{23, 24, 23, 24},
{24, 23, 24, 23},
},
{
{23, 24, 23, 24},
{24, 23, 24, 23},
{23, 24, 23, 24},
{24, 24, 24, 23},
},
{
{23, 24, 23, 24},
{24, 23, 24, 24},
{23, 24, 23, 24},
{24, 24, 24, 24},
},
{
{23, 24, 23, 24},
{24, 24, 24, 24},
{24, 24, 23, 24},
{24, 24, 24, 24},
},
{
{23, 24, 24, 24},
{24, 24, 24, 24},
{24, 24, 24, 24},
{24, 24, 24, 24},
},
{
{24, 24, 24, 24},
{24, 24, 24, 24},
{24, 24, 24, 24},
{25, 24, 24, 24},
},
{
{24, 24, 24, 24},
{24, 24, 25, 24},
{24, 24, 24, 24},
{25, 24, 25, 24},
},
{
{24, 24, 24, 24},
{25, 24, 25, 24},
{24, 25, 24, 24},
{25, 24, 25, 24},
},
{
{24, 24, 24, 25},
{25, 24, 25, 24},
{24, 25, 24, 25},
{25, 24, 25, 24},
},
{
{24, 25, 24, 25},
{25, 24, 25, 24},
{24, 25, 24, 25},
{25, 25, 25, 24},
},
{
{24, 25, 24, 25},
{25, 24, 25, 25},
{24, 25, 24, 25},
{25, 25, 25, 25},
},
{
{24, 25, 24, 25},
{25, 25, 25, 25},
{25, 25, 24, 25},
{25, 25, 25, 25},
},
{
{24, 25, 25, 25},
{25, 25, 25, 25},
{25, 25, 25, 25},
{25, 25, 25, 25},
},
{
{25, 25, 25, 25},
{25, 25, 25, 25},
{25, 25, 25, 25},
{26, 25, 25, 25},
},
{
{25, 25, 25, 25},
{25, 25, 26, 25},
{25, 25, 25, 25},
{26, 25, 26, 25},
},
{
{25, 25, 25, 25},
{26, 25, 26, 25},
{25, 25, 25, 25},
{26, 25, 26, 25},
},
{
{25, 25, 25, 26},
{26, 25, 26, 25},
{25, 26, 25, 25},
{26, 25, 26, 25},
},
{
{25, 26, 25, 26},
{26, 25, 26, 25},
{25, 26, 25, 26},
{26, 25, 26, 25},
},
{
{25, 26, 25, 26},
{26, 25, 26, 26},
{25, 26, 25, 26},
{26, 26, 26, 25},
},
{
{25, 26, 25, 26},
{26, 26, 26, 26},
{25, 26, 25, 26},
{26, 26, 26, 26},
},
{
{25, 26, 26, 26},
{26, 26, 26, 26},
{26, 26, 25, 26},
{26, 26, 26, 26},
},
{
{26, 26, 26, 26},
{26, 26, 26, 26},
{26, 26, 26, 26},
{26, 26, 26, 26},
},
{
{26, 26, 26, 26},
{26, 26, 27, 26},
{26, 26, 26, 26},
{27, 26, 26, 26},
},
{
{26, 26, 26, 26},
{27, 26, 27, 26},
{26, 26, 26, 26},
{27, 26, 27, 26},
},
{
{26, 26, 26, 27},
{27, 26, 27, 26},
{26, 27, 26, 26},
{27, 26, 27, 26},
},
{
{26, 27, 26, 27},
{27, 26, 27, 26},
{26, 27, 26, 27},
{27, 26, 27, 26},
},
{
{26, 27, 26, 27},
{27, 26, 27, 27},
{26, 27, 26, 27},
{27, 27, 27, 26},
},
{
{26, 27, 26, 27},
{27, 27, 27, 27},
{26, 27, 26, 27},
{27, 27, 27, 27},
},
{
{26, 27, 27, 27},
{27, 27, 27, 27},
{27, 27, 26, 27},
{27, 27, 27, 27},
},
{
{27, 27, 27, 27},
{27, 27, 27, 27},
{27, 27, 27, 27},
{27, 27, 27, 27},
},
{
{27, 27, 27, 27},
{27, 27, 28, 27},
{27, 27, 27, 27},
{28, 27, 27, 27},
},
{
{27, 27, 27, 27},
{27, 27, 28, 27},
{27, 27, 27, 27},
{28, 27, 28, 27},
},
{
{27, 27, 27, 27},
{28, 27, 28, 27},
{27, 28, 27, 27},
{28, 27, 28, 27},
},
{
{27, 27, 27, 28},
{28, 27, 28, 27},
{27, 28, 27, 28},
{28, 27, 28, 27},
},
{
{27, 28, 27, 28},
{28, 27, 28, 27},
{27, 28, 27, 28},
{28, 28, 28, 27},
},
{
{27, 28, 27, 28},
{28, 27, 28, 28},
{27, 28, 27, 28},
{28, 28, 28, 28},
},
{
{27, 28, 27, 28},
{28, 28, 28, 28},
{28, 28, 27, 28},
{28, 28, 28, 28},
},
{
{27, 28, 28, 28},
{28, 28, 28, 28},
{28, 28, 28, 28},
{28, 28, 28, 28},
},
{
{28, 28, 28, 28},
{28, 28, 28, 28},
{28, 28, 28, 28},
{29, 28, 28, 28},
},
{
{28, 28, 28, 28},
{28, 28, 29, 28},
{28, 28, 28, 28},
{29, 28, 29, 28},
},
{
{28, 28, 28, 28},
{29, 28, 29, 28},
{28, 29, 28, 28},
{29, 28, 29, 28},
},
{
{28, 28, 28, 29},
{29, 28, 29, 28},
{28, 29, 28, 29},
{29, 28, 29, 28},
},
{
{28, 29, 28, 29},
{29, 28, 29, 28},
{28, 29, 28, 29},
{29, 29, 29, 28},
},
{
{28, 29, 28, 29},
{29, 28, 29, 29},
{28, 29, 28, 29},
{29, 29, 29, 29},
},
{
{28, 29, 28, 29},
{29, 29, 29, 29},
{29, 29, 28, 29},
{29, 29, 29, 29},
},
{
{28, 29, 29, 29},
{29, 29, 29, 29},
{29, 29, 29, 29},
{29, 29, 29, 29},
},
{
{29, 29, 29, 29},
{29, 29, 29, 29},
{29, 29, 29, 29},
{30, 29, 29, 29},
},
{
{29, 29, 29, 29},
{29, 29, 30, 29},
{29, 29, 29, 29},
{30, 29, 29, 29},
},
{
{29, 29, 29, 29},
{30, 29, 30, 29},
{29, 29, 29, 29},
{30, 29, 30, 29},
},
{
{29, 29, 29, 30},
{30, 29, 30, 29},
{29, 30, 29, 29},
{30, 29, 30, 29},
},
{
{29, 30, 29, 30},
{30, 29, 30, 29},
{29, 30, 29, 30},
{30, 29, 30, 29},
},
{
{29, 30, 29, 30},
{30, 29, 30, 30},
{29, 30, 29, 30},
{30, 30, 30, 29},
},
{
{29, 30, 29, 30},
{30, 30, 30, 30},
{29, 30, 29, 30},
{30, 30, 30, 30},
},
{
{29, 30, 30, 30},
{30, 30, 30, 30},
{30, 30, 29, 30},
{30, 30, 30, 30},
},
{
{30, 30, 30, 30},
{30, 30, 30, 30},
{30, 30, 30, 30},
{30, 30, 30, 30},
},
{
{30, 30, 30, 30},
{30, 30, 31, 30},
{30, 30, 30, 30},
{31, 30, 30, 30},
},
{
{30, 30, 30, 30},
{31, 30, 31, 30},
{30, 30, 30, 30},
{31, 30, 31, 30},
},
{
{30, 30, 30, 31},
{31, 30, 31, 30},
{30, 31, 30, 30},
{31, 30, 31, 30},
},
{
{30, 31, 30, 31},
{31, 30, 31, 30},
{30, 31, 30, 31},
{31, 30, 31, 30},
},
{
{30, 31, 30, 31},
{31, 30, 31, 31},
{30, 31, 30, 31},
{31, 31, 31, 30},
},
{
{30, 31, 30, 31},
{31, 31, 31, 31},
{30, 31, 30, 31},
{31, 31, 31, 31},
},
{
{30, 31, 31, 31},
{31, 31, 31, 31},
{31, 31, 30, 31},
{31, 31, 31, 31},
},
{
{31, 31, 31, 31},
{31, 31, 31, 31},
{31, 31, 31, 31},
{31, 31, 31, 31},
},
};
static const uint8_t dither_g[256][4][4] =
{
{
{0, 0, 0, 0},
{0, 0, 0, 0},
{0, 0, 0, 0},
{0, 0, 0, 0},
},
{
{0, 0, 0, 0},
{1, 0, 1, 0},
{0, 0, 0, 0},
{1, 0, 1, 0},
},
{
{0, 1, 0, 1},
{1, 0, 1, 0},
{0, 1, 0, 1},
{1, 0, 1, 0},
},
{
{0, 1, 0, 1},
{1, 1, 1, 1},
{0, 1, 0, 1},
{1, 1, 1, 1},
},
{
{1, 1, 1, 1},
{1, 1, 1, 1},
{1, 1, 1, 1},
{1, 1, 1, 1},
},
{
{1, 1, 1, 1},
{2, 1, 2, 1},
{1, 1, 1, 1},
{2, 1, 2, 1},
},
{
{1, 2, 1, 2},
{2, 1, 2, 1},
{1, 2, 1, 2},
{2, 1, 2, 1},
},
{
{1, 2, 1, 2},
{2, 2, 2, 2},
{1, 2, 1, 2},
{2, 2, 2, 2},
},
{
{2, 2, 2, 2},
{2, 2, 2, 2},
{2, 2, 2, 2},
{2, 2, 2, 2},
},
{
{2, 2, 2, 2},
{3, 2, 3, 2},
{2, 2, 2, 2},
{3, 2, 3, 2},
},
{
{2, 3, 2, 3},
{3, 2, 3, 2},
{2, 3, 2, 3},
{3, 2, 3, 2},
},
{
{2, 3, 2, 3},
{3, 3, 3, 3},
{2, 3, 2, 3},
{3, 3, 3, 3},
},
{
{3, 3, 3, 3},
{3, 3, 3, 3},
{3, 3, 3, 3},
{3, 3, 3, 3},
},
{
{3, 3, 3, 3},
{4, 3, 4, 3},
{3, 3, 3, 3},
{4, 3, 4, 3},
},
{
{3, 4, 3, 4},
{4, 3, 4, 3},
{3, 4, 3, 4},
{4, 3, 4, 3},
},
{
{3, 4, 3, 4},
{4, 4, 4, 4},
{3, 4, 3, 4},
{4, 4, 4, 4},
},
{
{3, 4, 4, 4},
{4, 4, 4, 4},
{4, 4, 4, 4},
{4, 4, 4, 4},
},
{
{4, 4, 4, 4},
{4, 4, 5, 4},
{4, 4, 4, 4},
{5, 4, 5, 4},
},
{
{4, 4, 4, 5},
{5, 4, 5, 4},
{4, 5, 4, 5},
{5, 4, 5, 4},
},
{
{4, 5, 4, 5},
{5, 4, 5, 5},
{4, 5, 4, 5},
{5, 5, 5, 5},
},
{
{4, 5, 5, 5},
{5, 5, 5, 5},
{5, 5, 5, 5},
{5, 5, 5, 5},
},
{
{5, 5, 5, 5},
{5, 5, 6, 5},
{5, 5, 5, 5},
{6, 5, 6, 5},
},
{
{5, 5, 5, 6},
{6, 5, 6, 5},
{5, 6, 5, 6},
{6, 5, 6, 5},
},
{
{5, 6, 5, 6},
{6, 5, 6, 6},
{5, 6, 5, 6},
{6, 6, 6, 6},
},
{
{5, 6, 6, 6},
{6, 6, 6, 6},
{6, 6, 6, 6},
{6, 6, 6, 6},
},
{
{6, 6, 6, 6},
{6, 6, 7, 6},
{6, 6, 6, 6},
{7, 6, 7, 6},
},
{
{6, 6, 6, 7},
{7, 6, 7, 6},
{6, 7, 6, 7},
{7, 6, 7, 6},
},
{
{6, 7, 6, 7},
{7, 6, 7, 7},
{6, 7, 6, 7},
{7, 7, 7, 7},
},
{
{6, 7, 7, 7},
{7, 7, 7, 7},
{7, 7, 7, 7},
{7, 7, 7, 7},
},
{
{7, 7, 7, 7},
{7, 7, 8, 7},
{7, 7, 7, 7},
{8, 7, 8, 7},
},
{
{7, 7, 7, 8},
{8, 7, 8, 7},
{7, 8, 7, 8},
{8, 7, 8, 7},
},
{
{7, 8, 7, 8},
{8, 7, 8, 8},
{7, 8, 7, 8},
{8, 8, 8, 8},
},
{
{7, 8, 8, 8},
{8, 8, 8, 8},
{8, 8, 7, 8},
{8, 8, 8, 8},
},
{
{8, 8, 8, 8},
{8, 8, 9, 8},
{8, 8, 8, 8},
{9, 8, 8, 8},
},
{
{8, 8, 8, 9},
{9, 8, 9, 8},
{8, 9, 8, 8},
{9, 8, 9, 8},
},
{
{8, 9, 8, 9},
{9, 8, 9, 9},
{8, 9, 8, 9},
{9, 9, 9, 8},
},
{
{8, 9, 9, 9},
{9, 9, 9, 9},
{9, 9, 8, 9},
{9, 9, 9, 9},
},
{
{9, 9, 9, 9},
{9, 9, 10, 9},
{9, 9, 9, 9},
{10, 9, 9, 9},
},
{
{9, 9, 9, 10},
{10, 9, 10, 9},
{9, 10, 9, 9},
{10, 9, 10, 9},
},
{
{9, 10, 9, 10},
{10, 9, 10, 10},
{9, 10, 9, 10},
{10, 10, 10, 9},
},
{
{9, 10, 10, 10},
{10, 10, 10, 10},
{10, 10, 9, 10},
{10, 10, 10, 10},
},
{
{10, 10, 10, 10},
{10, 10, 11, 10},
{10, 10, 10, 10},
{11, 10, 10, 10},
},
{
{10, 10, 10, 11},
{11, 10, 11, 10},
{10, 11, 10, 10},
{11, 10, 11, 10},
},
{
{10, 11, 10, 11},
{11, 10, 11, 11},
{10, 11, 10, 11},
{11, 11, 11, 10},
},
{
{10, 11, 11, 11},
{11, 11, 11, 11},
{11, 11, 10, 11},
{11, 11, 11, 11},
},
{
{11, 11, 11, 11},
{11, 11, 12, 11},
{11, 11, 11, 11},
{12, 11, 11, 11},
},
{
{11, 11, 11, 12},
{12, 11, 12, 11},
{11, 12, 11, 11},
{12, 11, 12, 11},
},
{
{11, 12, 11, 12},
{12, 11, 12, 12},
{11, 12, 11, 12},
{12, 12, 12, 11},
},
{
{11, 12, 11, 12},
{12, 12, 12, 12},
{12, 12, 11, 12},
{12, 12, 12, 12},
},
{
{12, 12, 12, 12},
{12, 12, 12, 12},
{12, 12, 12, 12},
{13, 12, 12, 12},
},
{
{12, 12, 12, 12},
{13, 12, 13, 12},
{12, 13, 12, 12},
{13, 12, 13, 12},
},
{
{12, 13, 12, 13},
{13, 12, 13, 12},
{12, 13, 12, 13},
{13, 13, 13, 12},
},
{
{12, 13, 12, 13},
{13, 13, 13, 13},
{13, 13, 12, 13},
{13, 13, 13, 13},
},
{
{13, 13, 13, 13},
{13, 13, 13, 13},
{13, 13, 13, 13},
{14, 13, 13, 13},
},
{
{13, 13, 13, 13},
{14, 13, 14, 13},
{13, 14, 13, 13},
{14, 13, 14, 13},
},
{
{13, 14, 13, 14},
{14, 13, 14, 13},
{13, 14, 13, 14},
{14, 14, 14, 13},
},
{
{13, 14, 13, 14},
{14, 14, 14, 14},
{14, 14, 13, 14},
{14, 14, 14, 14},
},
{
{14, 14, 14, 14},
{14, 14, 14, 14},
{14, 14, 14, 14},
{15, 14, 14, 14},
},
{
{14, 14, 14, 14},
{15, 14, 15, 14},
{14, 15, 14, 14},
{15, 14, 15, 14},
},
{
{14, 15, 14, 15},
{15, 14, 15, 14},
{14, 15, 14, 15},
{15, 15, 15, 14},
},
{
{14, 15, 14, 15},
{15, 15, 15, 15},
{15, 15, 14, 15},
{15, 15, 15, 15},
},
{
{15, 15, 15, 15},
{15, 15, 15, 15},
{15, 15, 15, 15},
{16, 15, 15, 15},
},
{
{15, 15, 15, 15},
{16, 15, 16, 15},
{15, 16, 15, 15},
{16, 15, 16, 15},
},
{
{15, 16, 15, 16},
{16, 15, 16, 15},
{15, 16, 15, 16},
{16, 16, 16, 15},
},
{
{15, 16, 15, 16},
{16, 16, 16, 16},
{16, 16, 15, 16},
{16, 16, 16, 16},
},
{
{16, 16, 16, 16},
{16, 16, 16, 16},
{16, 16, 16, 16},
{17, 16, 16, 16},
},
{
{16, 16, 16, 16},
{17, 16, 17, 16},
{16, 17, 16, 16},
{17, 16, 17, 16},
},
{
{16, 17, 16, 17},
{17, 16, 17, 16},
{16, 17, 16, 17},
{17, 17, 17, 16},
},
{
{16, 17, 16, 17},
{17, 17, 17, 17},
{17, 17, 16, 17},
{17, 17, 17, 17},
},
{
{17, 17, 17, 17},
{17, 17, 17, 17},
{17, 17, 17, 17},
{18, 17, 17, 17},
},
{
{17, 17, 17, 17},
{18, 17, 18, 17},
{17, 18, 17, 17},
{18, 17, 18, 17},
},
{
{17, 18, 17, 18},
{18, 17, 18, 17},
{17, 18, 17, 18},
{18, 18, 18, 17},
},
{
{17, 18, 17, 18},
{18, 18, 18, 18},
{18, 18, 17, 18},
{18, 18, 18, 18},
},
{
{18, 18, 18, 18},
{18, 18, 18, 18},
{18, 18, 18, 18},
{19, 18, 18, 18},
},
{
{18, 18, 18, 18},
{19, 18, 19, 18},
{18, 19, 18, 18},
{19, 18, 19, 18},
},
{
{18, 19, 18, 19},
{19, 18, 19, 18},
{18, 19, 18, 19},
{19, 19, 19, 18},
},
{
{18, 19, 18, 19},
{19, 19, 19, 19},
{19, 19, 18, 19},
{19, 19, 19, 19},
},
{
{19, 19, 19, 19},
{19, 19, 19, 19},
{19, 19, 19, 19},
{20, 19, 19, 19},
},
{
{19, 19, 19, 19},
{20, 19, 20, 19},
{19, 20, 19, 19},
{20, 19, 20, 19},
},
{
{19, 20, 19, 20},
{20, 19, 20, 19},
{19, 20, 19, 20},
{20, 20, 20, 19},
},
{
{19, 20, 19, 20},
{20, 20, 20, 20},
{19, 20, 19, 20},
{20, 20, 20, 20},
},
{
{20, 20, 20, 20},
{20, 20, 20, 20},
{20, 20, 20, 20},
{20, 20, 20, 20},
},
{
{20, 20, 20, 20},
{21, 20, 21, 20},
{20, 20, 20, 20},
{21, 20, 21, 20},
},
{
{20, 21, 20, 21},
{21, 20, 21, 20},
{20, 21, 20, 21},
{21, 20, 21, 20},
},
{
{20, 21, 20, 21},
{21, 21, 21, 21},
{20, 21, 20, 21},
{21, 21, 21, 21},
},
{
{21, 21, 21, 21},
{21, 21, 21, 21},
{21, 21, 21, 21},
{21, 21, 21, 21},
},
{
{21, 21, 21, 21},
{22, 21, 22, 21},
{21, 21, 21, 21},
{22, 21, 22, 21},
},
{
{21, 22, 21, 22},
{22, 21, 22, 21},
{21, 22, 21, 22},
{22, 21, 22, 21},
},
{
{21, 22, 21, 22},
{22, 22, 22, 22},
{21, 22, 21, 22},
{22, 22, 22, 22},
},
{
{22, 22, 22, 22},
{22, 22, 22, 22},
{22, 22, 22, 22},
{22, 22, 22, 22},
},
{
{22, 22, 22, 22},
{23, 22, 23, 22},
{22, 22, 22, 22},
{23, 22, 23, 22},
},
{
{22, 23, 22, 23},
{23, 22, 23, 22},
{22, 23, 22, 23},
{23, 22, 23, 22},
},
{
{22, 23, 22, 23},
{23, 23, 23, 23},
{22, 23, 22, 23},
{23, 23, 23, 23},
},
{
{23, 23, 23, 23},
{23, 23, 23, 23},
{23, 23, 23, 23},
{23, 23, 23, 23},
},
{
{23, 23, 23, 23},
{24, 23, 24, 23},
{23, 23, 23, 23},
{24, 23, 24, 23},
},
{
{23, 24, 23, 24},
{24, 23, 24, 23},
{23, 24, 23, 24},
{24, 23, 24, 23},
},
{
{23, 24, 23, 24},
{24, 23, 24, 24},
{23, 24, 23, 24},
{24, 24, 24, 24},
},
{
{23, 24, 24, 24},
{24, 24, 24, 24},
{24, 24, 24, 24},
{24, 24, 24, 24},
},
{
{24, 24, 24, 24},
{24, 24, 25, 24},
{24, 24, 24, 24},
{25, 24, 25, 24},
},
{
{24, 24, 24, 25},
{25, 24, 25, 24},
{24, 25, 24, 25},
{25, 24, 25, 24},
},
{
{24, 25, 24, 25},
{25, 24, 25, 25},
{24, 25, 24, 25},
{25, 25, 25, 25},
},
{
{24, 25, 25, 25},
{25, 25, 25, 25},
{25, 25, 25, 25},
{25, 25, 25, 25},
},
{
{25, 25, 25, 25},
{25, 25, 26, 25},
{25, 25, 25, 25},
{26, 25, 26, 25},
},
{
{25, 25, 25, 26},
{26, 25, 26, 25},
{25, 26, 25, 26},
{26, 25, 26, 25},
},
{
{25, 26, 25, 26},
{26, 25, 26, 26},
{25, 26, 25, 26},
{26, 26, 26, 26},
},
{
{25, 26, 26, 26},
{26, 26, 26, 26},
{26, 26, 26, 26},
{26, 26, 26, 26},
},
{
{26, 26, 26, 26},
{26, 26, 27, 26},
{26, 26, 26, 26},
{27, 26, 27, 26},
},
{
{26, 26, 26, 27},
{27, 26, 27, 26},
{26, 27, 26, 27},
{27, 26, 27, 26},
},
{
{26, 27, 26, 27},
{27, 26, 27, 27},
{26, 27, 26, 27},
{27, 27, 27, 27},
},
{
{26, 27, 27, 27},
{27, 27, 27, 27},
{27, 27, 27, 27},
{27, 27, 27, 27},
},
{
{27, 27, 27, 27},
{27, 27, 28, 27},
{27, 27, 27, 27},
{28, 27, 28, 27},
},
{
{27, 27, 27, 28},
{28, 27, 28, 27},
{27, 28, 27, 28},
{28, 27, 28, 27},
},
{
{27, 28, 27, 28},
{28, 27, 28, 28},
{27, 28, 27, 28},
{28, 28, 28, 27},
},
{
{27, 28, 28, 28},
{28, 28, 28, 28},
{28, 28, 27, 28},
{28, 28, 28, 28},
},
{
{28, 28, 28, 28},
{28, 28, 29, 28},
{28, 28, 28, 28},
{29, 28, 28, 28},
},
{
{28, 28, 28, 29},
{29, 28, 29, 28},
{28, 29, 28, 28},
{29, 28, 29, 28},
},
{
{28, 29, 28, 29},
{29, 28, 29, 29},
{28, 29, 28, 29},
{29, 29, 29, 28},
},
{
{28, 29, 29, 29},
{29, 29, 29, 29},
{29, 29, 28, 29},
{29, 29, 29, 29},
},
{
{29, 29, 29, 29},
{29, 29, 30, 29},
{29, 29, 29, 29},
{30, 29, 29, 29},
},
{
{29, 29, 29, 30},
{30, 29, 30, 29},
{29, 30, 29, 29},
{30, 29, 30, 29},
},
{
{29, 30, 29, 30},
{30, 29, 30, 30},
{29, 30, 29, 30},
{30, 30, 30, 29},
},
{
{29, 30, 30, 30},
{30, 30, 30, 30},
{30, 30, 29, 30},
{30, 30, 30, 30},
},
{
{30, 30, 30, 30},
{30, 30, 31, 30},
{30, 30, 30, 30},
{31, 30, 30, 30},
},
{
{30, 30, 30, 31},
{31, 30, 31, 30},
{30, 31, 30, 30},
{31, 30, 31, 30},
},
{
{30, 31, 30, 31},
{31, 30, 31, 31},
{30, 31, 30, 31},
{31, 31, 31, 30},
},
{
{30, 31, 31, 31},
{31, 31, 31, 31},
{31, 31, 30, 31},
{31, 31, 31, 31},
},
{
{31, 31, 31, 31},
{31, 31, 32, 31},
{31, 31, 31, 31},
{32, 31, 31, 31},
},
{
{31, 31, 31, 32},
{32, 31, 32, 31},
{31, 32, 31, 31},
{32, 31, 32, 31},
},
{
{31, 32, 31, 32},
{32, 31, 32, 32},
{31, 32, 31, 32},
{32, 32, 32, 31},
},
{
{31, 32, 32, 32},
{32, 32, 32, 32},
{32, 32, 31, 32},
{32, 32, 32, 32},
},
{
{32, 32, 32, 32},
{32, 32, 33, 32},
{32, 32, 32, 32},
{33, 32, 32, 32},
},
{
{32, 32, 32, 33},
{33, 32, 33, 32},
{32, 33, 32, 32},
{33, 32, 33, 32},
},
{
{32, 33, 32, 33},
{33, 32, 33, 33},
{32, 33, 32, 33},
{33, 33, 33, 32},
},
{
{32, 33, 33, 33},
{33, 33, 33, 33},
{33, 33, 32, 33},
{33, 33, 33, 33},
},
{
{33, 33, 33, 33},
{33, 33, 34, 33},
{33, 33, 33, 33},
{34, 33, 33, 33},
},
{
{33, 33, 33, 34},
{34, 33, 34, 33},
{33, 34, 33, 33},
{34, 33, 34, 33},
},
{
{33, 34, 33, 34},
{34, 33, 34, 34},
{33, 34, 33, 34},
{34, 34, 34, 33},
},
{
{33, 34, 34, 34},
{34, 34, 34, 34},
{34, 34, 33, 34},
{34, 34, 34, 34},
},
{
{34, 34, 34, 34},
{34, 34, 35, 34},
{34, 34, 34, 34},
{35, 34, 34, 34},
},
{
{34, 34, 34, 35},
{35, 34, 35, 34},
{34, 35, 34, 34},
{35, 34, 35, 34},
},
{
{34, 35, 34, 35},
{35, 34, 35, 35},
{34, 35, 34, 35},
{35, 35, 35, 34},
},
{
{34, 35, 35, 35},
{35, 35, 35, 35},
{35, 35, 34, 35},
{35, 35, 35, 35},
},
{
{35, 35, 35, 35},
{35, 35, 36, 35},
{35, 35, 35, 35},
{36, 35, 35, 35},
},
{
{35, 35, 35, 36},
{36, 35, 36, 35},
{35, 36, 35, 35},
{36, 35, 36, 35},
},
{
{35, 36, 35, 36},
{36, 35, 36, 35},
{35, 36, 35, 36},
{36, 36, 36, 35},
},
{
{35, 36, 35, 36},
{36, 36, 36, 36},
{36, 36, 35, 36},
{36, 36, 36, 36},
},
{
{36, 36, 36, 36},
{36, 36, 36, 36},
{36, 36, 36, 36},
{37, 36, 36, 36},
},
{
{36, 36, 36, 36},
{37, 36, 37, 36},
{36, 37, 36, 36},
{37, 36, 37, 36},
},
{
{36, 37, 36, 37},
{37, 36, 37, 36},
{36, 37, 36, 37},
{37, 37, 37, 36},
},
{
{36, 37, 36, 37},
{37, 37, 37, 37},
{37, 37, 36, 37},
{37, 37, 37, 37},
},
{
{37, 37, 37, 37},
{37, 37, 37, 37},
{37, 37, 37, 37},
{38, 37, 37, 37},
},
{
{37, 37, 37, 37},
{38, 37, 38, 37},
{37, 38, 37, 37},
{38, 37, 38, 37},
},
{
{37, 38, 37, 38},
{38, 37, 38, 37},
{37, 38, 37, 38},
{38, 38, 38, 37},
},
{
{37, 38, 37, 38},
{38, 38, 38, 38},
{38, 38, 37, 38},
{38, 38, 38, 38},
},
{
{38, 38, 38, 38},
{38, 38, 38, 38},
{38, 38, 38, 38},
{39, 38, 38, 38},
},
{
{38, 38, 38, 38},
{39, 38, 39, 38},
{38, 39, 38, 38},
{39, 38, 39, 38},
},
{
{38, 39, 38, 39},
{39, 38, 39, 38},
{38, 39, 38, 39},
{39, 39, 39, 38},
},
{
{38, 39, 38, 39},
{39, 39, 39, 39},
{39, 39, 38, 39},
{39, 39, 39, 39},
},
{
{39, 39, 39, 39},
{39, 39, 39, 39},
{39, 39, 39, 39},
{40, 39, 39, 39},
},
{
{39, 39, 39, 39},
{40, 39, 40, 39},
{39, 40, 39, 39},
{40, 39, 40, 39},
},
{
{39, 40, 39, 40},
{40, 39, 40, 39},
{39, 40, 39, 40},
{40, 39, 40, 39},
},
{
{39, 40, 39, 40},
{40, 40, 40, 40},
{39, 40, 39, 40},
{40, 40, 40, 40},
},
{
{40, 40, 40, 40},
{40, 40, 40, 40},
{40, 40, 40, 40},
{40, 40, 40, 40},
},
{
{40, 40, 40, 40},
{41, 40, 41, 40},
{40, 40, 40, 40},
{41, 40, 41, 40},
},
{
{40, 41, 40, 41},
{41, 40, 41, 40},
{40, 41, 40, 41},
{41, 40, 41, 40},
},
{
{40, 41, 40, 41},
{41, 41, 41, 41},
{40, 41, 40, 41},
{41, 41, 41, 41},
},
{
{41, 41, 41, 41},
{41, 41, 41, 41},
{41, 41, 41, 41},
{41, 41, 41, 41},
},
{
{41, 41, 41, 41},
{42, 41, 42, 41},
{41, 41, 41, 41},
{42, 41, 42, 41},
},
{
{41, 42, 41, 42},
{42, 41, 42, 41},
{41, 42, 41, 42},
{42, 41, 42, 41},
},
{
{41, 42, 41, 42},
{42, 42, 42, 42},
{41, 42, 41, 42},
{42, 42, 42, 42},
},
{
{42, 42, 42, 42},
{42, 42, 42, 42},
{42, 42, 42, 42},
{42, 42, 42, 42},
},
{
{42, 42, 42, 42},
{43, 42, 43, 42},
{42, 42, 42, 42},
{43, 42, 43, 42},
},
{
{42, 43, 42, 43},
{43, 42, 43, 42},
{42, 43, 42, 43},
{43, 42, 43, 42},
},
{
{42, 43, 42, 43},
{43, 43, 43, 43},
{42, 43, 42, 43},
{43, 43, 43, 43},
},
{
{43, 43, 43, 43},
{43, 43, 43, 43},
{43, 43, 43, 43},
{43, 43, 43, 43},
},
{
{43, 43, 43, 43},
{44, 43, 44, 43},
{43, 43, 43, 43},
{44, 43, 44, 43},
},
{
{43, 43, 43, 44},
{44, 43, 44, 43},
{43, 44, 43, 44},
{44, 43, 44, 43},
},
{
{43, 44, 43, 44},
{44, 43, 44, 44},
{43, 44, 43, 44},
{44, 44, 44, 44},
},
{
{43, 44, 44, 44},
{44, 44, 44, 44},
{44, 44, 44, 44},
{44, 44, 44, 44},
},
{
{44, 44, 44, 44},
{44, 44, 45, 44},
{44, 44, 44, 44},
{45, 44, 45, 44},
},
{
{44, 44, 44, 45},
{45, 44, 45, 44},
{44, 45, 44, 45},
{45, 44, 45, 44},
},
{
{44, 45, 44, 45},
{45, 44, 45, 45},
{44, 45, 44, 45},
{45, 45, 45, 45},
},
{
{44, 45, 45, 45},
{45, 45, 45, 45},
{45, 45, 45, 45},
{45, 45, 45, 45},
},
{
{45, 45, 45, 45},
{45, 45, 46, 45},
{45, 45, 45, 45},
{46, 45, 46, 45},
},
{
{45, 45, 45, 46},
{46, 45, 46, 45},
{45, 46, 45, 46},
{46, 45, 46, 45},
},
{
{45, 46, 45, 46},
{46, 45, 46, 46},
{45, 46, 45, 46},
{46, 46, 46, 46},
},
{
{45, 46, 46, 46},
{46, 46, 46, 46},
{46, 46, 46, 46},
{46, 46, 46, 46},
},
{
{46, 46, 46, 46},
{46, 46, 47, 46},
{46, 46, 46, 46},
{47, 46, 47, 46},
},
{
{46, 46, 46, 47},
{47, 46, 47, 46},
{46, 47, 46, 47},
{47, 46, 47, 46},
},
{
{46, 47, 46, 47},
{47, 46, 47, 47},
{46, 47, 46, 47},
{47, 47, 47, 47},
},
{
{46, 47, 47, 47},
{47, 47, 47, 47},
{47, 47, 47, 47},
{47, 47, 47, 47},
},
{
{47, 47, 47, 47},
{47, 47, 48, 47},
{47, 47, 47, 47},
{48, 47, 48, 47},
},
{
{47, 47, 47, 48},
{48, 47, 48, 47},
{47, 48, 47, 48},
{48, 47, 48, 47},
},
{
{47, 48, 47, 48},
{48, 47, 48, 48},
{47, 48, 47, 48},
{48, 48, 48, 48},
},
{
{47, 48, 48, 48},
{48, 48, 48, 48},
{48, 48, 48, 48},
{48, 48, 48, 48},
},
{
{48, 48, 48, 48},
{48, 48, 49, 48},
{48, 48, 48, 48},
{49, 48, 49, 48},
},
{
{48, 48, 48, 49},
{49, 48, 49, 48},
{48, 49, 48, 49},
{49, 48, 49, 48},
},
{
{48, 49, 48, 49},
{49, 48, 49, 49},
{48, 49, 48, 49},
{49, 49, 49, 49},
},
{
{48, 49, 49, 49},
{49, 49, 49, 49},
{49, 49, 49, 49},
{49, 49, 49, 49},
},
{
{49, 49, 49, 49},
{49, 49, 50, 49},
{49, 49, 49, 49},
{50, 49, 50, 49},
},
{
{49, 49, 49, 50},
{50, 49, 50, 49},
{49, 50, 49, 50},
{50, 49, 50, 49},
},
{
{49, 50, 49, 50},
{50, 49, 50, 50},
{49, 50, 49, 50},
{50, 50, 50, 50},
},
{
{49, 50, 50, 50},
{50, 50, 50, 50},
{50, 50, 50, 50},
{50, 50, 50, 50},
},
{
{50, 50, 50, 50},
{50, 50, 51, 50},
{50, 50, 50, 50},
{51, 50, 51, 50},
},
{
{50, 50, 50, 51},
{51, 50, 51, 50},
{50, 51, 50, 51},
{51, 50, 51, 50},
},
{
{50, 51, 50, 51},
{51, 50, 51, 51},
{50, 51, 50, 51},
{51, 51, 51, 51},
},
{
{50, 51, 51, 51},
{51, 51, 51, 51},
{51, 51, 51, 51},
{51, 51, 51, 51},
},
{
{51, 51, 51, 51},
{51, 51, 52, 51},
{51, 51, 51, 51},
{52, 51, 52, 51},
},
{
{51, 51, 51, 52},
{52, 51, 52, 51},
{51, 52, 51, 51},
{52, 51, 52, 51},
},
{
{51, 52, 51, 52},
{52, 51, 52, 52},
{51, 52, 51, 52},
{52, 52, 52, 51},
},
{
{51, 52, 52, 52},
{52, 52, 52, 52},
{52, 52, 51, 52},
{52, 52, 52, 52},
},
{
{52, 52, 52, 52},
{52, 52, 53, 52},
{52, 52, 52, 52},
{53, 52, 52, 52},
},
{
{52, 52, 52, 53},
{53, 52, 53, 52},
{52, 53, 52, 52},
{53, 52, 53, 52},
},
{
{52, 53, 52, 53},
{53, 52, 53, 53},
{52, 53, 52, 53},
{53, 53, 53, 52},
},
{
{52, 53, 53, 53},
{53, 53, 53, 53},
{53, 53, 52, 53},
{53, 53, 53, 53},
},
{
{53, 53, 53, 53},
{53, 53, 54, 53},
{53, 53, 53, 53},
{54, 53, 53, 53},
},
{
{53, 53, 53, 54},
{54, 53, 54, 53},
{53, 54, 53, 53},
{54, 53, 54, 53},
},
{
{53, 54, 53, 54},
{54, 53, 54, 54},
{53, 54, 53, 54},
{54, 54, 54, 53},
},
{
{53, 54, 54, 54},
{54, 54, 54, 54},
{54, 54, 53, 54},
{54, 54, 54, 54},
},
{
{54, 54, 54, 54},
{54, 54, 55, 54},
{54, 54, 54, 54},
{55, 54, 54, 54},
},
{
{54, 54, 54, 55},
{55, 54, 55, 54},
{54, 55, 54, 54},
{55, 54, 55, 54},
},
{
{54, 55, 54, 55},
{55, 54, 55, 55},
{54, 55, 54, 55},
{55, 55, 55, 54},
},
{
{54, 55, 55, 55},
{55, 55, 55, 55},
{55, 55, 54, 55},
{55, 55, 55, 55},
},
{
{55, 55, 55, 55},
{55, 55, 56, 55},
{55, 55, 55, 55},
{56, 55, 55, 55},
},
{
{55, 55, 55, 55},
{56, 55, 56, 55},
{55, 56, 55, 55},
{56, 55, 56, 55},
},
{
{55, 56, 55, 56},
{56, 55, 56, 55},
{55, 56, 55, 56},
{56, 56, 56, 55},
},
{
{55, 56, 55, 56},
{56, 56, 56, 56},
{56, 56, 55, 56},
{56, 56, 56, 56},
},
{
{56, 56, 56, 56},
{56, 56, 56, 56},
{56, 56, 56, 56},
{57, 56, 56, 56},
},
{
{56, 56, 56, 56},
{57, 56, 57, 56},
{56, 57, 56, 56},
{57, 56, 57, 56},
},
{
{56, 57, 56, 57},
{57, 56, 57, 56},
{56, 57, 56, 57},
{57, 57, 57, 56},
},
{
{56, 57, 56, 57},
{57, 57, 57, 57},
{57, 57, 56, 57},
{57, 57, 57, 57},
},
{
{57, 57, 57, 57},
{57, 57, 57, 57},
{57, 57, 57, 57},
{58, 57, 57, 57},
},
{
{57, 57, 57, 57},
{58, 57, 58, 57},
{57, 58, 57, 57},
{58, 57, 58, 57},
},
{
{57, 58, 57, 58},
{58, 57, 58, 57},
{57, 58, 57, 58},
{58, 58, 58, 57},
},
{
{57, 58, 57, 58},
{58, 58, 58, 58},
{58, 58, 57, 58},
{58, 58, 58, 58},
},
{
{58, 58, 58, 58},
{58, 58, 58, 58},
{58, 58, 58, 58},
{59, 58, 58, 58},
},
{
{58, 58, 58, 58},
{59, 58, 59, 58},
{58, 59, 58, 58},
{59, 58, 59, 58},
},
{
{58, 59, 58, 59},
{59, 58, 59, 58},
{58, 59, 58, 59},
{59, 59, 59, 58},
},
{
{58, 59, 58, 59},
{59, 59, 59, 59},
{59, 59, 58, 59},
{59, 59, 59, 59},
},
{
{59, 59, 59, 59},
{59, 59, 59, 59},
{59, 59, 59, 59},
{60, 59, 59, 59},
},
{
{59, 59, 59, 59},
{60, 59, 60, 59},
{59, 59, 59, 59},
{60, 59, 60, 59},
},
{
{59, 60, 59, 60},
{60, 59, 60, 59},
{59, 60, 59, 60},
{60, 59, 60, 59},
},
{
{59, 60, 59, 60},
{60, 60, 60, 60},
{59, 60, 59, 60},
{60, 60, 60, 60},
},
{
{60, 60, 60, 60},
{60, 60, 60, 60},
{60, 60, 60, 60},
{60, 60, 60, 60},
},
{
{60, 60, 60, 60},
{61, 60, 61, 60},
{60, 60, 60, 60},
{61, 60, 61, 60},
},
{
{60, 61, 60, 61},
{61, 60, 61, 60},
{60, 61, 60, 61},
{61, 60, 61, 60},
},
{
{60, 61, 60, 61},
{61, 61, 61, 61},
{60, 61, 60, 61},
{61, 61, 61, 61},
},
{
{61, 61, 61, 61},
{61, 61, 61, 61},
{61, 61, 61, 61},
{61, 61, 61, 61},
},
{
{61, 61, 61, 61},
{62, 61, 62, 61},
{61, 61, 61, 61},
{62, 61, 62, 61},
},
{
{61, 62, 61, 62},
{62, 61, 62, 61},
{61, 62, 61, 62},
{62, 61, 62, 61},
},
{
{61, 62, 61, 62},
{62, 62, 62, 62},
{61, 62, 61, 62},
{62, 62, 62, 62},
},
{
{62, 62, 62, 62},
{62, 62, 62, 62},
{62, 62, 62, 62},
{62, 62, 62, 62},
},
{
{62, 62, 62, 62},
{63, 62, 63, 62},
{62, 62, 62, 62},
{63, 62, 63, 62},
},
{
{62, 63, 62, 63},
{63, 62, 63, 62},
{62, 63, 62, 63},
{63, 62, 63, 62},
},
{
{62, 63, 62, 63},
{63, 63, 63, 63},
{62, 63, 62, 63},
{63, 63, 63, 63},
},
{
{63, 63, 63, 63},
{63, 63, 63, 63},
{63, 63, 63, 63},
{63, 63, 63, 63},
},
};
static const uint8_t dither_rb2x2[256][2][2] =
{
{
{0, 0},
{0, 0},
},
{
{0, 0},
{1, 0},
},
{
{0, 0},
{1, 0},
},
{
{0, 1},
{1, 0},
},
{
{0, 1},
{1, 0},
},
{
{0, 1},
{1, 1},
},
{
{0, 1},
{1, 1},
},
{
{1, 1},
{1, 1},
},
{
{1, 1},
{1, 1},
},
{
{1, 1},
{2, 1},
},
{
{1, 1},
{2, 1},
},
{
{1, 2},
{2, 1},
},
{
{1, 2},
{2, 1},
},
{
{1, 2},
{2, 2},
},
{
{1, 2},
{2, 2},
},
{
{2, 2},
{2, 2},
},
{
{2, 2},
{2, 2},
},
{
{2, 2},
{2, 2},
},
{
{2, 2},
{3, 2},
},
{
{2, 2},
{3, 2},
},
{
{2, 3},
{3, 2},
},
{
{2, 3},
{3, 2},
},
{
{2, 3},
{3, 3},
},
{
{2, 3},
{3, 3},
},
{
{3, 3},
{3, 3},
},
{
{3, 3},
{3, 3},
},
{
{3, 3},
{4, 3},
},
{
{3, 3},
{4, 3},
},
{
{3, 4},
{4, 3},
},
{
{3, 4},
{4, 3},
},
{
{3, 4},
{4, 4},
},
{
{3, 4},
{4, 4},
},
{
{4, 4},
{4, 4},
},
{
{4, 4},
{4, 4},
},
{
{4, 4},
{5, 4},
},
{
{4, 4},
{5, 4},
},
{
{4, 5},
{5, 4},
},
{
{4, 5},
{5, 4},
},
{
{4, 5},
{5, 5},
},
{
{4, 5},
{5, 5},
},
{
{5, 5},
{5, 5},
},
{
{5, 5},
{5, 5},
},
{
{5, 5},
{6, 5},
},
{
{5, 5},
{6, 5},
},
{
{5, 6},
{6, 5},
},
{
{5, 6},
{6, 5},
},
{
{5, 6},
{6, 6},
},
{
{5, 6},
{6, 6},
},
{
{5, 6},
{6, 6},
},
{
{6, 6},
{6, 6},
},
{
{6, 6},
{6, 6},
},
{
{6, 6},
{7, 6},
},
{
{6, 6},
{7, 6},
},
{
{6, 7},
{7, 6},
},
{
{6, 7},
{7, 6},
},
{
{6, 7},
{7, 7},
},
{
{6, 7},
{7, 7},
},
{
{7, 7},
{7, 7},
},
{
{7, 7},
{7, 7},
},
{
{7, 7},
{8, 7},
},
{
{7, 7},
{8, 7},
},
{
{7, 8},
{8, 7},
},
{
{7, 8},
{8, 7},
},
{
{7, 8},
{8, 8},
},
{
{7, 8},
{8, 8},
},
{
{8, 8},
{8, 8},
},
{
{8, 8},
{8, 8},
},
{
{8, 8},
{9, 8},
},
{
{8, 8},
{9, 8},
},
{
{8, 9},
{9, 8},
},
{
{8, 9},
{9, 8},
},
{
{8, 9},
{9, 9},
},
{
{8, 9},
{9, 9},
},
{
{9, 9},
{9, 9},
},
{
{9, 9},
{9, 9},
},
{
{9, 9},
{10, 9},
},
{
{9, 9},
{10, 9},
},
{
{9, 10},
{10, 9},
},
{
{9, 10},
{10, 9},
},
{
{9, 10},
{10, 10},
},
{
{9, 10},
{10, 10},
},
{
{9, 10},
{10, 10},
},
{
{10, 10},
{10, 10},
},
{
{10, 10},
{10, 10},
},
{
{10, 10},
{11, 10},
},
{
{10, 10},
{11, 10},
},
{
{10, 11},
{11, 10},
},
{
{10, 11},
{11, 10},
},
{
{10, 11},
{11, 11},
},
{
{10, 11},
{11, 11},
},
{
{11, 11},
{11, 11},
},
{
{11, 11},
{11, 11},
},
{
{11, 11},
{12, 11},
},
{
{11, 11},
{12, 11},
},
{
{11, 12},
{12, 11},
},
{
{11, 12},
{12, 11},
},
{
{11, 12},
{12, 12},
},
{
{11, 12},
{12, 12},
},
{
{12, 12},
{12, 12},
},
{
{12, 12},
{12, 12},
},
{
{12, 12},
{13, 12},
},
{
{12, 12},
{13, 12},
},
{
{12, 13},
{13, 12},
},
{
{12, 13},
{13, 12},
},
{
{12, 13},
{13, 13},
},
{
{12, 13},
{13, 13},
},
{
{13, 13},
{13, 13},
},
{
{13, 13},
{13, 13},
},
{
{13, 13},
{14, 13},
},
{
{13, 13},
{14, 13},
},
{
{13, 14},
{14, 13},
},
{
{13, 14},
{14, 13},
},
{
{13, 14},
{14, 13},
},
{
{13, 14},
{14, 14},
},
{
{13, 14},
{14, 14},
},
{
{14, 14},
{14, 14},
},
{
{14, 14},
{14, 14},
},
{
{14, 14},
{15, 14},
},
{
{14, 14},
{15, 14},
},
{
{14, 15},
{15, 14},
},
{
{14, 15},
{15, 14},
},
{
{14, 15},
{15, 15},
},
{
{14, 15},
{15, 15},
},
{
{15, 15},
{15, 15},
},
{
{15, 15},
{15, 15},
},
{
{15, 15},
{16, 15},
},
{
{15, 15},
{16, 15},
},
{
{15, 16},
{16, 15},
},
{
{15, 16},
{16, 15},
},
{
{15, 16},
{16, 16},
},
{
{15, 16},
{16, 16},
},
{
{16, 16},
{16, 16},
},
{
{16, 16},
{16, 16},
},
{
{16, 16},
{17, 16},
},
{
{16, 16},
{17, 16},
},
{
{16, 17},
{17, 16},
},
{
{16, 17},
{17, 16},
},
{
{16, 17},
{17, 17},
},
{
{16, 17},
{17, 17},
},
{
{17, 17},
{17, 17},
},
{
{17, 17},
{17, 17},
},
{
{17, 17},
{18, 17},
},
{
{17, 17},
{18, 17},
},
{
{17, 18},
{18, 17},
},
{
{17, 18},
{18, 17},
},
{
{17, 18},
{18, 18},
},
{
{17, 18},
{18, 18},
},
{
{18, 18},
{18, 18},
},
{
{18, 18},
{18, 18},
},
{
{18, 18},
{19, 18},
},
{
{18, 18},
{19, 18},
},
{
{18, 19},
{19, 18},
},
{
{18, 19},
{19, 18},
},
{
{18, 19},
{19, 19},
},
{
{18, 19},
{19, 19},
},
{
{19, 19},
{19, 19},
},
{
{19, 19},
{19, 19},
},
{
{19, 19},
{20, 19},
},
{
{19, 19},
{20, 19},
},
{
{19, 20},
{20, 19},
},
{
{19, 20},
{20, 19},
},
{
{19, 20},
{20, 19},
},
{
{19, 20},
{20, 20},
},
{
{19, 20},
{20, 20},
},
{
{20, 20},
{20, 20},
},
{
{20, 20},
{20, 20},
},
{
{20, 20},
{21, 20},
},
{
{20, 20},
{21, 20},
},
{
{20, 21},
{21, 20},
},
{
{20, 21},
{21, 20},
},
{
{20, 21},
{21, 21},
},
{
{20, 21},
{21, 21},
},
{
{21, 21},
{21, 21},
},
{
{21, 21},
{21, 21},
},
{
{21, 21},
{22, 21},
},
{
{21, 21},
{22, 21},
},
{
{21, 22},
{22, 21},
},
{
{21, 22},
{22, 21},
},
{
{21, 22},
{22, 22},
},
{
{21, 22},
{22, 22},
},
{
{22, 22},
{22, 22},
},
{
{22, 22},
{22, 22},
},
{
{22, 22},
{23, 22},
},
{
{22, 22},
{23, 22},
},
{
{22, 23},
{23, 22},
},
{
{22, 23},
{23, 22},
},
{
{22, 23},
{23, 23},
},
{
{22, 23},
{23, 23},
},
{
{23, 23},
{23, 23},
},
{
{23, 23},
{23, 23},
},
{
{23, 23},
{24, 23},
},
{
{23, 23},
{24, 23},
},
{
{23, 23},
{24, 23},
},
{
{23, 24},
{24, 23},
},
{
{23, 24},
{24, 23},
},
{
{23, 24},
{24, 24},
},
{
{23, 24},
{24, 24},
},
{
{24, 24},
{24, 24},
},
{
{24, 24},
{24, 24},
},
{
{24, 24},
{25, 24},
},
{
{24, 24},
{25, 24},
},
{
{24, 25},
{25, 24},
},
{
{24, 25},
{25, 24},
},
{
{24, 25},
{25, 25},
},
{
{24, 25},
{25, 25},
},
{
{25, 25},
{25, 25},
},
{
{25, 25},
{25, 25},
},
{
{25, 25},
{26, 25},
},
{
{25, 25},
{26, 25},
},
{
{25, 26},
{26, 25},
},
{
{25, 26},
{26, 25},
},
{
{25, 26},
{26, 26},
},
{
{25, 26},
{26, 26},
},
{
{26, 26},
{26, 26},
},
{
{26, 26},
{26, 26},
},
{
{26, 26},
{27, 26},
},
{
{26, 26},
{27, 26},
},
{
{26, 27},
{27, 26},
},
{
{26, 27},
{27, 26},
},
{
{26, 27},
{27, 27},
},
{
{26, 27},
{27, 27},
},
{
{27, 27},
{27, 27},
},
{
{27, 27},
{27, 27},
},
{
{27, 27},
{28, 27},
},
{
{27, 27},
{28, 27},
},
{
{27, 27},
{28, 27},
},
{
{27, 28},
{28, 27},
},
{
{27, 28},
{28, 27},
},
{
{27, 28},
{28, 28},
},
{
{27, 28},
{28, 28},
},
{
{28, 28},
{28, 28},
},
{
{28, 28},
{28, 28},
},
{
{28, 28},
{29, 28},
},
{
{28, 28},
{29, 28},
},
{
{28, 29},
{29, 28},
},
{
{28, 29},
{29, 28},
},
{
{28, 29},
{29, 29},
},
{
{28, 29},
{29, 29},
},
{
{29, 29},
{29, 29},
},
{
{29, 29},
{29, 29},
},
{
{29, 29},
{30, 29},
},
{
{29, 29},
{30, 29},
},
{
{29, 30},
{30, 29},
},
{
{29, 30},
{30, 29},
},
{
{29, 30},
{30, 30},
},
{
{29, 30},
{30, 30},
},
{
{30, 30},
{30, 30},
},
{
{30, 30},
{30, 30},
},
{
{30, 30},
{31, 30},
},
{
{30, 30},
{31, 30},
},
{
{30, 31},
{31, 30},
},
{
{30, 31},
{31, 30},
},
{
{30, 31},
{31, 31},
},
{
{30, 31},
{31, 31},
},
{
{31, 31},
{31, 31},
},
{
{31, 31},
{31, 31},
},
};
static const uint8_t dither_g2x2[256][2][2] =
{
{
{0, 0},
{0, 0},
},
{
{0, 0},
{1, 0},
},
{
{0, 1},
{1, 0},
},
{
{0, 1},
{1, 1},
},
{
{1, 1},
{1, 1},
},
{
{1, 1},
{2, 1},
},
{
{1, 2},
{2, 1},
},
{
{1, 2},
{2, 2},
},
{
{2, 2},
{2, 2},
},
{
{2, 2},
{3, 2},
},
{
{2, 3},
{3, 2},
},
{
{2, 3},
{3, 3},
},
{
{3, 3},
{3, 3},
},
{
{3, 3},
{4, 3},
},
{
{3, 4},
{4, 3},
},
{
{3, 4},
{4, 4},
},
{
{4, 4},
{4, 4},
},
{
{4, 4},
{5, 4},
},
{
{4, 5},
{5, 4},
},
{
{4, 5},
{5, 5},
},
{
{5, 5},
{5, 5},
},
{
{5, 5},
{6, 5},
},
{
{5, 6},
{6, 5},
},
{
{5, 6},
{6, 6},
},
{
{6, 6},
{6, 6},
},
{
{6, 6},
{7, 6},
},
{
{6, 7},
{7, 6},
},
{
{6, 7},
{7, 7},
},
{
{7, 7},
{7, 7},
},
{
{7, 7},
{8, 7},
},
{
{7, 8},
{8, 7},
},
{
{7, 8},
{8, 8},
},
{
{8, 8},
{8, 8},
},
{
{8, 8},
{9, 8},
},
{
{8, 9},
{9, 8},
},
{
{8, 9},
{9, 9},
},
{
{9, 9},
{9, 9},
},
{
{9, 9},
{10, 9},
},
{
{9, 10},
{10, 9},
},
{
{9, 10},
{10, 10},
},
{
{10, 10},
{10, 10},
},
{
{10, 10},
{11, 10},
},
{
{10, 11},
{11, 10},
},
{
{10, 11},
{11, 11},
},
{
{11, 11},
{11, 11},
},
{
{11, 11},
{12, 11},
},
{
{11, 12},
{12, 11},
},
{
{11, 12},
{12, 12},
},
{
{11, 12},
{12, 12},
},
{
{12, 12},
{12, 12},
},
{
{12, 12},
{13, 12},
},
{
{12, 13},
{13, 12},
},
{
{12, 13},
{13, 13},
},
{
{13, 13},
{13, 13},
},
{
{13, 13},
{14, 13},
},
{
{13, 14},
{14, 13},
},
{
{13, 14},
{14, 14},
},
{
{14, 14},
{14, 14},
},
{
{14, 14},
{15, 14},
},
{
{14, 15},
{15, 14},
},
{
{14, 15},
{15, 15},
},
{
{15, 15},
{15, 15},
},
{
{15, 15},
{16, 15},
},
{
{15, 16},
{16, 15},
},
{
{15, 16},
{16, 16},
},
{
{16, 16},
{16, 16},
},
{
{16, 16},
{17, 16},
},
{
{16, 17},
{17, 16},
},
{
{16, 17},
{17, 17},
},
{
{17, 17},
{17, 17},
},
{
{17, 17},
{18, 17},
},
{
{17, 18},
{18, 17},
},
{
{17, 18},
{18, 18},
},
{
{18, 18},
{18, 18},
},
{
{18, 18},
{19, 18},
},
{
{18, 19},
{19, 18},
},
{
{18, 19},
{19, 19},
},
{
{19, 19},
{19, 19},
},
{
{19, 19},
{20, 19},
},
{
{19, 20},
{20, 19},
},
{
{19, 20},
{20, 20},
},
{
{20, 20},
{20, 20},
},
{
{20, 20},
{21, 20},
},
{
{20, 21},
{21, 20},
},
{
{20, 21},
{21, 21},
},
{
{21, 21},
{21, 21},
},
{
{21, 21},
{22, 21},
},
{
{21, 22},
{22, 21},
},
{
{21, 22},
{22, 22},
},
{
{22, 22},
{22, 22},
},
{
{22, 22},
{23, 22},
},
{
{22, 23},
{23, 22},
},
{
{22, 23},
{23, 23},
},
{
{23, 23},
{23, 23},
},
{
{23, 23},
{24, 23},
},
{
{23, 24},
{24, 23},
},
{
{23, 24},
{24, 24},
},
{
{24, 24},
{24, 24},
},
{
{24, 24},
{25, 24},
},
{
{24, 25},
{25, 24},
},
{
{24, 25},
{25, 25},
},
{
{25, 25},
{25, 25},
},
{
{25, 25},
{26, 25},
},
{
{25, 26},
{26, 25},
},
{
{25, 26},
{26, 26},
},
{
{26, 26},
{26, 26},
},
{
{26, 26},
{27, 26},
},
{
{26, 27},
{27, 26},
},
{
{26, 27},
{27, 27},
},
{
{27, 27},
{27, 27},
},
{
{27, 27},
{28, 27},
},
{
{27, 28},
{28, 27},
},
{
{27, 28},
{28, 28},
},
{
{28, 28},
{28, 28},
},
{
{28, 28},
{29, 28},
},
{
{28, 29},
{29, 28},
},
{
{28, 29},
{29, 29},
},
{
{29, 29},
{29, 29},
},
{
{29, 29},
{30, 29},
},
{
{29, 30},
{30, 29},
},
{
{29, 30},
{30, 30},
},
{
{30, 30},
{30, 30},
},
{
{30, 30},
{31, 30},
},
{
{30, 31},
{31, 30},
},
{
{30, 31},
{31, 31},
},
{
{31, 31},
{31, 31},
},
{
{31, 31},
{32, 31},
},
{
{31, 32},
{32, 31},
},
{
{31, 32},
{32, 32},
},
{
{32, 32},
{32, 32},
},
{
{32, 32},
{33, 32},
},
{
{32, 33},
{33, 32},
},
{
{32, 33},
{33, 33},
},
{
{33, 33},
{33, 33},
},
{
{33, 33},
{34, 33},
},
{
{33, 34},
{34, 33},
},
{
{33, 34},
{34, 34},
},
{
{34, 34},
{34, 34},
},
{
{34, 34},
{35, 34},
},
{
{34, 35},
{35, 34},
},
{
{34, 35},
{35, 35},
},
{
{35, 35},
{35, 35},
},
{
{35, 35},
{36, 35},
},
{
{35, 36},
{36, 35},
},
{
{35, 36},
{36, 35},
},
{
{35, 36},
{36, 36},
},
{
{36, 36},
{36, 36},
},
{
{36, 36},
{37, 36},
},
{
{36, 37},
{37, 36},
},
{
{36, 37},
{37, 37},
},
{
{37, 37},
{37, 37},
},
{
{37, 37},
{38, 37},
},
{
{37, 38},
{38, 37},
},
{
{37, 38},
{38, 38},
},
{
{38, 38},
{38, 38},
},
{
{38, 38},
{39, 38},
},
{
{38, 39},
{39, 38},
},
{
{38, 39},
{39, 39},
},
{
{39, 39},
{39, 39},
},
{
{39, 39},
{40, 39},
},
{
{39, 40},
{40, 39},
},
{
{39, 40},
{40, 40},
},
{
{40, 40},
{40, 40},
},
{
{40, 40},
{41, 40},
},
{
{40, 41},
{41, 40},
},
{
{40, 41},
{41, 41},
},
{
{41, 41},
{41, 41},
},
{
{41, 41},
{42, 41},
},
{
{41, 42},
{42, 41},
},
{
{41, 42},
{42, 42},
},
{
{42, 42},
{42, 42},
},
{
{42, 42},
{43, 42},
},
{
{42, 43},
{43, 42},
},
{
{42, 43},
{43, 43},
},
{
{43, 43},
{43, 43},
},
{
{43, 43},
{44, 43},
},
{
{43, 44},
{44, 43},
},
{
{43, 44},
{44, 44},
},
{
{44, 44},
{44, 44},
},
{
{44, 44},
{45, 44},
},
{
{44, 45},
{45, 44},
},
{
{44, 45},
{45, 45},
},
{
{45, 45},
{45, 45},
},
{
{45, 45},
{46, 45},
},
{
{45, 46},
{46, 45},
},
{
{45, 46},
{46, 46},
},
{
{46, 46},
{46, 46},
},
{
{46, 46},
{47, 46},
},
{
{46, 47},
{47, 46},
},
{
{46, 47},
{47, 47},
},
{
{47, 47},
{47, 47},
},
{
{47, 47},
{48, 47},
},
{
{47, 48},
{48, 47},
},
{
{47, 48},
{48, 48},
},
{
{48, 48},
{48, 48},
},
{
{48, 48},
{49, 48},
},
{
{48, 49},
{49, 48},
},
{
{48, 49},
{49, 49},
},
{
{49, 49},
{49, 49},
},
{
{49, 49},
{50, 49},
},
{
{49, 50},
{50, 49},
},
{
{49, 50},
{50, 50},
},
{
{50, 50},
{50, 50},
},
{
{50, 50},
{51, 50},
},
{
{50, 51},
{51, 50},
},
{
{50, 51},
{51, 51},
},
{
{51, 51},
{51, 51},
},
{
{51, 51},
{52, 51},
},
{
{51, 52},
{52, 51},
},
{
{51, 52},
{52, 52},
},
{
{52, 52},
{52, 52},
},
{
{52, 52},
{53, 52},
},
{
{52, 53},
{53, 52},
},
{
{52, 53},
{53, 53},
},
{
{53, 53},
{53, 53},
},
{
{53, 53},
{54, 53},
},
{
{53, 54},
{54, 53},
},
{
{53, 54},
{54, 54},
},
{
{54, 54},
{54, 54},
},
{
{54, 54},
{55, 54},
},
{
{54, 55},
{55, 54},
},
{
{54, 55},
{55, 55},
},
{
{55, 55},
{55, 55},
},
{
{55, 55},
{56, 55},
},
{
{55, 55},
{56, 55},
},
{
{55, 56},
{56, 55},
},
{
{55, 56},
{56, 56},
},
{
{56, 56},
{56, 56},
},
{
{56, 56},
{57, 56},
},
{
{56, 57},
{57, 56},
},
{
{56, 57},
{57, 57},
},
{
{57, 57},
{57, 57},
},
{
{57, 57},
{58, 57},
},
{
{57, 58},
{58, 57},
},
{
{57, 58},
{58, 58},
},
{
{58, 58},
{58, 58},
},
{
{58, 58},
{59, 58},
},
{
{58, 59},
{59, 58},
},
{
{58, 59},
{59, 59},
},
{
{59, 59},
{59, 59},
},
{
{59, 59},
{60, 59},
},
{
{59, 60},
{60, 59},
},
{
{59, 60},
{60, 60},
},
{
{60, 60},
{60, 60},
},
{
{60, 60},
{61, 60},
},
{
{60, 61},
{61, 60},
},
{
{60, 61},
{61, 61},
},
{
{61, 61},
{61, 61},
},
{
{61, 61},
{62, 61},
},
{
{61, 62},
{62, 61},
},
{
{61, 62},
{62, 62},
},
{
{62, 62},
{62, 62},
},
{
{62, 62},
{63, 62},
},
{
{62, 63},
{63, 62},
},
{
{62, 63},
{63, 63},
},
{
{63, 63},
{63, 63},
},
};
/* Dither subtraction */
static const uint8_t dithersub_rb[256][4][4] =
{
{
{0, 0, 0, 0},
{0, 0, 0, 0},
{0, 0, 0, 0},
{0, 0, 0, 0},
},
{
{0, 0, 0, 0},
{0, 0, 0, 0},
{0, 0, 0, 0},
{0, 0, 0, 0},
},
{
{0, 0, 0, 0},
{0, 0, 0, 0},
{0, 0, 0, 0},
{0, 0, 0, 0},
},
{
{0, 0, 0, 0},
{0, 0, 0, 0},
{0, 0, 0, 0},
{0, 0, 0, 0},
},
{
{9, 5, 8, 4},
{3, 7, 2, 6},
{7, 3, 8, 4},
{1, 5, 2, 6},
},
{
{10, 6, 9, 5},
{4, 8, 3, 7},
{8, 4, 9, 5},
{2, 6, 3, 7},
},
{
{11, 7, 10, 6},
{5, 9, 4, 8},
{9, 5, 10, 6},
{3, 7, 4, 8},
},
{
{12, 8, 11, 7},
{6, 10, 5, 9},
{10, 6, 11, 7},
{4, 8, 5, 9},
},
{
{13, 9, 12, 8},
{7, 11, 6, 10},
{11, 7, 12, 8},
{5, 9, 6, 10},
},
{
{14, 10, 13, 9},
{8, 12, 7, 11},
{12, 8, 13, 9},
{6, 10, 7, 11},
},
{
{15, 11, 14, 10},
{9, 13, 8, 12},
{13, 9, 14, 10},
{7, 11, 8, 12},
},
{
{16, 12, 15, 11},
{10, 14, 9, 13},
{14, 10, 15, 11},
{8, 12, 9, 13},
},
{
{17, 13, 16, 12},
{11, 15, 10, 14},
{15, 11, 16, 12},
{9, 13, 10, 14},
},
{
{18, 14, 17, 13},
{12, 16, 11, 15},
{16, 12, 17, 13},
{10, 14, 11, 15},
},
{
{19, 15, 18, 14},
{13, 17, 12, 16},
{17, 13, 18, 14},
{11, 15, 12, 16},
},
{
{20, 16, 19, 15},
{14, 18, 13, 17},
{18, 14, 19, 15},
{12, 16, 13, 17},
},
{
{21, 17, 20, 16},
{15, 19, 14, 18},
{19, 15, 20, 16},
{13, 17, 14, 18},
},
{
{22, 18, 21, 17},
{16, 20, 15, 19},
{20, 16, 21, 17},
{14, 18, 15, 19},
},
{
{23, 19, 22, 18},
{17, 21, 16, 20},
{21, 17, 22, 18},
{15, 19, 16, 20},
},
{
{24, 20, 23, 19},
{18, 22, 17, 21},
{22, 18, 23, 19},
{16, 20, 17, 21},
},
{
{25, 21, 24, 20},
{19, 23, 18, 22},
{23, 19, 24, 20},
{17, 21, 18, 22},
},
{
{26, 22, 25, 21},
{20, 24, 19, 23},
{24, 20, 25, 21},
{18, 22, 19, 23},
},
{
{27, 23, 26, 22},
{21, 25, 20, 24},
{25, 21, 26, 22},
{19, 23, 20, 24},
},
{
{28, 24, 27, 23},
{22, 26, 21, 25},
{26, 22, 27, 23},
{20, 24, 21, 25},
},
{
{29, 25, 28, 24},
{23, 27, 22, 26},
{27, 23, 28, 24},
{21, 25, 22, 26},
},
{
{30, 26, 29, 25},
{24, 28, 23, 27},
{28, 24, 29, 25},
{22, 26, 23, 27},
},
{
{31, 27, 30, 26},
{25, 29, 24, 28},
{29, 25, 30, 26},
{23, 27, 24, 28},
},
{
{32, 28, 31, 27},
{26, 30, 25, 29},
{30, 26, 31, 27},
{24, 28, 25, 29},
},
{
{33, 29, 32, 28},
{27, 31, 26, 30},
{31, 27, 32, 28},
{25, 29, 26, 30},
},
{
{34, 30, 33, 29},
{28, 32, 27, 31},
{32, 28, 33, 29},
{26, 30, 27, 31},
},
{
{35, 31, 34, 30},
{29, 33, 28, 32},
{33, 29, 34, 30},
{27, 31, 28, 32},
},
{
{36, 32, 35, 31},
{30, 34, 29, 33},
{34, 30, 35, 31},
{28, 32, 29, 33},
},
{
{37, 33, 36, 32},
{31, 35, 30, 34},
{35, 31, 36, 32},
{29, 33, 30, 34},
},
{
{38, 34, 37, 33},
{32, 36, 31, 35},
{36, 32, 37, 33},
{30, 34, 31, 35},
},
{
{39, 35, 38, 34},
{33, 37, 32, 36},
{37, 33, 38, 34},
{31, 35, 32, 36},
},
{
{40, 36, 39, 35},
{34, 38, 33, 37},
{38, 34, 39, 35},
{32, 36, 33, 37},
},
{
{41, 37, 40, 36},
{35, 39, 34, 38},
{39, 35, 40, 36},
{33, 37, 34, 38},
},
{
{42, 38, 41, 37},
{36, 40, 35, 39},
{40, 36, 41, 37},
{34, 38, 35, 39},
},
{
{43, 39, 42, 38},
{37, 41, 36, 40},
{41, 37, 42, 38},
{35, 39, 36, 40},
},
{
{44, 40, 43, 39},
{38, 42, 37, 41},
{42, 38, 43, 39},
{36, 40, 37, 41},
},
{
{45, 41, 44, 40},
{39, 43, 38, 42},
{43, 39, 44, 40},
{37, 41, 38, 42},
},
{
{46, 42, 45, 41},
{40, 44, 39, 43},
{44, 40, 45, 41},
{38, 42, 39, 43},
},
{
{47, 43, 46, 42},
{41, 45, 40, 44},
{45, 41, 46, 42},
{39, 43, 40, 44},
},
{
{48, 44, 47, 43},
{42, 46, 41, 45},
{46, 42, 47, 43},
{40, 44, 41, 45},
},
{
{49, 45, 48, 44},
{43, 47, 42, 46},
{47, 43, 48, 44},
{41, 45, 42, 46},
},
{
{50, 46, 49, 45},
{44, 48, 43, 47},
{48, 44, 49, 45},
{42, 46, 43, 47},
},
{
{51, 47, 50, 46},
{45, 49, 44, 48},
{49, 45, 50, 46},
{43, 47, 44, 48},
},
{
{52, 48, 51, 47},
{46, 50, 45, 49},
{50, 46, 51, 47},
{44, 48, 45, 49},
},
{
{53, 49, 52, 48},
{47, 51, 46, 50},
{51, 47, 52, 48},
{45, 49, 46, 50},
},
{
{54, 50, 53, 49},
{48, 52, 47, 51},
{52, 48, 53, 49},
{46, 50, 47, 51},
},
{
{55, 51, 54, 50},
{49, 53, 48, 52},
{53, 49, 54, 50},
{47, 51, 48, 52},
},
{
{56, 52, 55, 51},
{50, 54, 49, 53},
{54, 50, 55, 51},
{48, 52, 49, 53},
},
{
{57, 53, 56, 52},
{51, 55, 50, 54},
{55, 51, 56, 52},
{49, 53, 50, 54},
},
{
{58, 54, 57, 53},
{52, 56, 51, 55},
{56, 52, 57, 53},
{50, 54, 51, 55},
},
{
{59, 55, 58, 54},
{53, 57, 52, 56},
{57, 53, 58, 54},
{51, 55, 52, 56},
},
{
{60, 56, 59, 55},
{54, 58, 53, 57},
{58, 54, 59, 55},
{52, 56, 53, 57},
},
{
{61, 57, 60, 56},
{55, 59, 54, 58},
{59, 55, 60, 56},
{53, 57, 54, 58},
},
{
{62, 58, 61, 57},
{56, 60, 55, 59},
{60, 56, 61, 57},
{54, 58, 55, 59},
},
{
{63, 59, 62, 58},
{57, 61, 56, 60},
{61, 57, 62, 58},
{55, 59, 56, 60},
},
{
{64, 60, 63, 59},
{58, 62, 57, 61},
{62, 58, 63, 59},
{56, 60, 57, 61},
},
{
{65, 61, 64, 60},
{59, 63, 58, 62},
{63, 59, 64, 60},
{57, 61, 58, 62},
},
{
{66, 62, 65, 61},
{60, 64, 59, 63},
{64, 60, 65, 61},
{58, 62, 59, 63},
},
{
{67, 63, 66, 62},
{61, 65, 60, 64},
{65, 61, 66, 62},
{59, 63, 60, 64},
},
{
{68, 64, 67, 63},
{62, 66, 61, 65},
{66, 62, 67, 63},
{60, 64, 61, 65},
},
{
{69, 65, 68, 64},
{63, 67, 62, 66},
{67, 63, 68, 64},
{61, 65, 62, 66},
},
{
{70, 66, 69, 65},
{64, 68, 63, 67},
{68, 64, 69, 65},
{62, 66, 63, 67},
},
{
{71, 67, 70, 66},
{65, 69, 64, 68},
{69, 65, 70, 66},
{63, 67, 64, 68},
},
{
{72, 68, 71, 67},
{66, 70, 65, 69},
{70, 66, 71, 67},
{64, 68, 65, 69},
},
{
{73, 69, 72, 68},
{67, 71, 66, 70},
{71, 67, 72, 68},
{65, 69, 66, 70},
},
{
{74, 70, 73, 69},
{68, 72, 67, 71},
{72, 68, 73, 69},
{66, 70, 67, 71},
},
{
{75, 71, 74, 70},
{69, 73, 68, 72},
{73, 69, 74, 70},
{67, 71, 68, 72},
},
{
{76, 72, 75, 71},
{70, 74, 69, 73},
{74, 70, 75, 71},
{68, 72, 69, 73},
},
{
{77, 73, 76, 72},
{71, 75, 70, 74},
{75, 71, 76, 72},
{69, 73, 70, 74},
},
{
{78, 74, 77, 73},
{72, 76, 71, 75},
{76, 72, 77, 73},
{70, 74, 71, 75},
},
{
{79, 75, 78, 74},
{73, 77, 72, 76},
{77, 73, 78, 74},
{71, 75, 72, 76},
},
{
{80, 76, 79, 75},
{74, 78, 73, 77},
{78, 74, 79, 75},
{72, 76, 73, 77},
},
{
{81, 77, 80, 76},
{75, 79, 74, 78},
{79, 75, 80, 76},
{73, 77, 74, 78},
},
{
{82, 78, 81, 77},
{76, 80, 75, 79},
{80, 76, 81, 77},
{74, 78, 75, 79},
},
{
{83, 79, 82, 78},
{77, 81, 76, 80},
{81, 77, 82, 78},
{75, 79, 76, 80},
},
{
{84, 80, 83, 79},
{78, 82, 77, 81},
{82, 78, 83, 79},
{76, 80, 77, 81},
},
{
{85, 81, 84, 80},
{79, 83, 78, 82},
{83, 79, 84, 80},
{77, 81, 78, 82},
},
{
{86, 82, 85, 81},
{80, 84, 79, 83},
{84, 80, 85, 81},
{78, 82, 79, 83},
},
{
{87, 83, 86, 82},
{81, 85, 80, 84},
{85, 81, 86, 82},
{79, 83, 80, 84},
},
{
{88, 84, 87, 83},
{82, 86, 81, 85},
{86, 82, 87, 83},
{80, 84, 81, 85},
},
{
{89, 85, 88, 84},
{83, 87, 82, 86},
{87, 83, 88, 84},
{81, 85, 82, 86},
},
{
{90, 86, 89, 85},
{84, 88, 83, 87},
{88, 84, 89, 85},
{82, 86, 83, 87},
},
{
{91, 87, 90, 86},
{85, 89, 84, 88},
{89, 85, 90, 86},
{83, 87, 84, 88},
},
{
{92, 88, 91, 87},
{86, 90, 85, 89},
{90, 86, 91, 87},
{84, 88, 85, 89},
},
{
{93, 89, 92, 88},
{87, 91, 86, 90},
{91, 87, 92, 88},
{85, 89, 86, 90},
},
{
{94, 90, 93, 89},
{88, 92, 87, 91},
{92, 88, 93, 89},
{86, 90, 87, 91},
},
{
{95, 91, 94, 90},
{89, 93, 88, 92},
{93, 89, 94, 90},
{87, 91, 88, 92},
},
{
{96, 92, 95, 91},
{90, 94, 89, 93},
{94, 90, 95, 91},
{88, 92, 89, 93},
},
{
{97, 93, 96, 92},
{91, 95, 90, 94},
{95, 91, 96, 92},
{89, 93, 90, 94},
},
{
{98, 94, 97, 93},
{92, 96, 91, 95},
{96, 92, 97, 93},
{90, 94, 91, 95},
},
{
{99, 95, 98, 94},
{93, 97, 92, 96},
{97, 93, 98, 94},
{91, 95, 92, 96},
},
{
{100, 96, 99, 95},
{94, 98, 93, 97},
{98, 94, 99, 95},
{92, 96, 93, 97},
},
{
{101, 97, 100, 96},
{95, 99, 94, 98},
{99, 95, 100, 96},
{93, 97, 94, 98},
},
{
{102, 98, 101, 97},
{96, 100, 95, 99},
{100, 96, 101, 97},
{94, 98, 95, 99},
},
{
{103, 99, 102, 98},
{97, 101, 96, 100},
{101, 97, 102, 98},
{95, 99, 96, 100},
},
{
{104, 100, 103, 99},
{98, 102, 97, 101},
{102, 98, 103, 99},
{96, 100, 97, 101},
},
{
{105, 101, 104, 100},
{99, 103, 98, 102},
{103, 99, 104, 100},
{97, 101, 98, 102},
},
{
{106, 102, 105, 101},
{100, 104, 99, 103},
{104, 100, 105, 101},
{98, 102, 99, 103},
},
{
{107, 103, 106, 102},
{101, 105, 100, 104},
{105, 101, 106, 102},
{99, 103, 100, 104},
},
{
{108, 104, 107, 103},
{102, 106, 101, 105},
{106, 102, 107, 103},
{100, 104, 101, 105},
},
{
{109, 105, 108, 104},
{103, 107, 102, 106},
{107, 103, 108, 104},
{101, 105, 102, 106},
},
{
{110, 106, 109, 105},
{104, 108, 103, 107},
{108, 104, 109, 105},
{102, 106, 103, 107},
},
{
{111, 107, 110, 106},
{105, 109, 104, 108},
{109, 105, 110, 106},
{103, 107, 104, 108},
},
{
{112, 108, 111, 107},
{106, 110, 105, 109},
{110, 106, 111, 107},
{104, 108, 105, 109},
},
{
{113, 109, 112, 108},
{107, 111, 106, 110},
{111, 107, 112, 108},
{105, 109, 106, 110},
},
{
{114, 110, 113, 109},
{108, 112, 107, 111},
{112, 108, 113, 109},
{106, 110, 107, 111},
},
{
{115, 111, 114, 110},
{109, 113, 108, 112},
{113, 109, 114, 110},
{107, 111, 108, 112},
},
{
{116, 112, 115, 111},
{110, 114, 109, 113},
{114, 110, 115, 111},
{108, 112, 109, 113},
},
{
{117, 113, 116, 112},
{111, 115, 110, 114},
{115, 111, 116, 112},
{109, 113, 110, 114},
},
{
{118, 114, 117, 113},
{112, 116, 111, 115},
{116, 112, 117, 113},
{110, 114, 111, 115},
},
{
{119, 115, 118, 114},
{113, 117, 112, 116},
{117, 113, 118, 114},
{111, 115, 112, 116},
},
{
{120, 116, 119, 115},
{114, 118, 113, 117},
{118, 114, 119, 115},
{112, 116, 113, 117},
},
{
{121, 117, 120, 116},
{115, 119, 114, 118},
{119, 115, 120, 116},
{113, 117, 114, 118},
},
{
{122, 118, 121, 117},
{116, 120, 115, 119},
{120, 116, 121, 117},
{114, 118, 115, 119},
},
{
{123, 119, 122, 118},
{117, 121, 116, 120},
{121, 117, 122, 118},
{115, 119, 116, 120},
},
{
{124, 120, 123, 119},
{118, 122, 117, 121},
{122, 118, 123, 119},
{116, 120, 117, 121},
},
{
{125, 121, 124, 120},
{119, 123, 118, 122},
{123, 119, 124, 120},
{117, 121, 118, 122},
},
{
{126, 122, 125, 121},
{120, 124, 119, 123},
{124, 120, 125, 121},
{118, 122, 119, 123},
},
{
{127, 123, 126, 122},
{121, 125, 120, 124},
{125, 121, 126, 122},
{119, 123, 120, 124},
},
{
{128, 124, 127, 123},
{122, 126, 121, 125},
{126, 122, 127, 123},
{120, 124, 121, 125},
},
{
{129, 125, 128, 124},
{123, 127, 122, 126},
{127, 123, 128, 124},
{121, 125, 122, 126},
},
{
{130, 126, 129, 125},
{124, 128, 123, 127},
{128, 124, 129, 125},
{122, 126, 123, 127},
},
{
{131, 127, 130, 126},
{125, 129, 124, 128},
{129, 125, 130, 126},
{123, 127, 124, 128},
},
{
{132, 128, 131, 127},
{126, 130, 125, 129},
{130, 126, 131, 127},
{124, 128, 125, 129},
},
{
{133, 129, 132, 128},
{127, 131, 126, 130},
{131, 127, 132, 128},
{125, 129, 126, 130},
},
{
{134, 130, 133, 129},
{128, 132, 127, 131},
{132, 128, 133, 129},
{126, 130, 127, 131},
},
{
{135, 131, 134, 130},
{129, 133, 128, 132},
{133, 129, 134, 130},
{127, 131, 128, 132},
},
{
{136, 132, 135, 131},
{130, 134, 129, 133},
{134, 130, 135, 131},
{128, 132, 129, 133},
},
{
{137, 133, 136, 132},
{131, 135, 130, 134},
{135, 131, 136, 132},
{129, 133, 130, 134},
},
{
{138, 134, 137, 133},
{132, 136, 131, 135},
{136, 132, 137, 133},
{130, 134, 131, 135},
},
{
{139, 135, 138, 134},
{133, 137, 132, 136},
{137, 133, 138, 134},
{131, 135, 132, 136},
},
{
{140, 136, 139, 135},
{134, 138, 133, 137},
{138, 134, 139, 135},
{132, 136, 133, 137},
},
{
{141, 137, 140, 136},
{135, 139, 134, 138},
{139, 135, 140, 136},
{133, 137, 134, 138},
},
{
{142, 138, 141, 137},
{136, 140, 135, 139},
{140, 136, 141, 137},
{134, 138, 135, 139},
},
{
{143, 139, 142, 138},
{137, 141, 136, 140},
{141, 137, 142, 138},
{135, 139, 136, 140},
},
{
{144, 140, 143, 139},
{138, 142, 137, 141},
{142, 138, 143, 139},
{136, 140, 137, 141},
},
{
{145, 141, 144, 140},
{139, 143, 138, 142},
{143, 139, 144, 140},
{137, 141, 138, 142},
},
{
{146, 142, 145, 141},
{140, 144, 139, 143},
{144, 140, 145, 141},
{138, 142, 139, 143},
},
{
{147, 143, 146, 142},
{141, 145, 140, 144},
{145, 141, 146, 142},
{139, 143, 140, 144},
},
{
{148, 144, 147, 143},
{142, 146, 141, 145},
{146, 142, 147, 143},
{140, 144, 141, 145},
},
{
{149, 145, 148, 144},
{143, 147, 142, 146},
{147, 143, 148, 144},
{141, 145, 142, 146},
},
{
{150, 146, 149, 145},
{144, 148, 143, 147},
{148, 144, 149, 145},
{142, 146, 143, 147},
},
{
{151, 147, 150, 146},
{145, 149, 144, 148},
{149, 145, 150, 146},
{143, 147, 144, 148},
},
{
{152, 148, 151, 147},
{146, 150, 145, 149},
{150, 146, 151, 147},
{144, 148, 145, 149},
},
{
{153, 149, 152, 148},
{147, 151, 146, 150},
{151, 147, 152, 148},
{145, 149, 146, 150},
},
{
{154, 150, 153, 149},
{148, 152, 147, 151},
{152, 148, 153, 149},
{146, 150, 147, 151},
},
{
{155, 151, 154, 150},
{149, 153, 148, 152},
{153, 149, 154, 150},
{147, 151, 148, 152},
},
{
{156, 152, 155, 151},
{150, 154, 149, 153},
{154, 150, 155, 151},
{148, 152, 149, 153},
},
{
{157, 153, 156, 152},
{151, 155, 150, 154},
{155, 151, 156, 152},
{149, 153, 150, 154},
},
{
{158, 154, 157, 153},
{152, 156, 151, 155},
{156, 152, 157, 153},
{150, 154, 151, 155},
},
{
{159, 155, 158, 154},
{153, 157, 152, 156},
{157, 153, 158, 154},
{151, 155, 152, 156},
},
{
{160, 156, 159, 155},
{154, 158, 153, 157},
{158, 154, 159, 155},
{152, 156, 153, 157},
},
{
{161, 157, 160, 156},
{155, 159, 154, 158},
{159, 155, 160, 156},
{153, 157, 154, 158},
},
{
{162, 158, 161, 157},
{156, 160, 155, 159},
{160, 156, 161, 157},
{154, 158, 155, 159},
},
{
{163, 159, 162, 158},
{157, 161, 156, 160},
{161, 157, 162, 158},
{155, 159, 156, 160},
},
{
{164, 160, 163, 159},
{158, 162, 157, 161},
{162, 158, 163, 159},
{156, 160, 157, 161},
},
{
{165, 161, 164, 160},
{159, 163, 158, 162},
{163, 159, 164, 160},
{157, 161, 158, 162},
},
{
{166, 162, 165, 161},
{160, 164, 159, 163},
{164, 160, 165, 161},
{158, 162, 159, 163},
},
{
{167, 163, 166, 162},
{161, 165, 160, 164},
{165, 161, 166, 162},
{159, 163, 160, 164},
},
{
{168, 164, 167, 163},
{162, 166, 161, 165},
{166, 162, 167, 163},
{160, 164, 161, 165},
},
{
{169, 165, 168, 164},
{163, 167, 162, 166},
{167, 163, 168, 164},
{161, 165, 162, 166},
},
{
{170, 166, 169, 165},
{164, 168, 163, 167},
{168, 164, 169, 165},
{162, 166, 163, 167},
},
{
{171, 167, 170, 166},
{165, 169, 164, 168},
{169, 165, 170, 166},
{163, 167, 164, 168},
},
{
{172, 168, 171, 167},
{166, 170, 165, 169},
{170, 166, 171, 167},
{164, 168, 165, 169},
},
{
{173, 169, 172, 168},
{167, 171, 166, 170},
{171, 167, 172, 168},
{165, 169, 166, 170},
},
{
{174, 170, 173, 169},
{168, 172, 167, 171},
{172, 168, 173, 169},
{166, 170, 167, 171},
},
{
{175, 171, 174, 170},
{169, 173, 168, 172},
{173, 169, 174, 170},
{167, 171, 168, 172},
},
{
{176, 172, 175, 171},
{170, 174, 169, 173},
{174, 170, 175, 171},
{168, 172, 169, 173},
},
{
{177, 173, 176, 172},
{171, 175, 170, 174},
{175, 171, 176, 172},
{169, 173, 170, 174},
},
{
{178, 174, 177, 173},
{172, 176, 171, 175},
{176, 172, 177, 173},
{170, 174, 171, 175},
},
{
{179, 175, 178, 174},
{173, 177, 172, 176},
{177, 173, 178, 174},
{171, 175, 172, 176},
},
{
{180, 176, 179, 175},
{174, 178, 173, 177},
{178, 174, 179, 175},
{172, 176, 173, 177},
},
{
{181, 177, 180, 176},
{175, 179, 174, 178},
{179, 175, 180, 176},
{173, 177, 174, 178},
},
{
{182, 178, 181, 177},
{176, 180, 175, 179},
{180, 176, 181, 177},
{174, 178, 175, 179},
},
{
{183, 179, 182, 178},
{177, 181, 176, 180},
{181, 177, 182, 178},
{175, 179, 176, 180},
},
{
{184, 180, 183, 179},
{178, 182, 177, 181},
{182, 178, 183, 179},
{176, 180, 177, 181},
},
{
{185, 181, 184, 180},
{179, 183, 178, 182},
{183, 179, 184, 180},
{177, 181, 178, 182},
},
{
{186, 182, 185, 181},
{180, 184, 179, 183},
{184, 180, 185, 181},
{178, 182, 179, 183},
},
{
{187, 183, 186, 182},
{181, 185, 180, 184},
{185, 181, 186, 182},
{179, 183, 180, 184},
},
{
{188, 184, 187, 183},
{182, 186, 181, 185},
{186, 182, 187, 183},
{180, 184, 181, 185},
},
{
{189, 185, 188, 184},
{183, 187, 182, 186},
{187, 183, 188, 184},
{181, 185, 182, 186},
},
{
{190, 186, 189, 185},
{184, 188, 183, 187},
{188, 184, 189, 185},
{182, 186, 183, 187},
},
{
{191, 187, 190, 186},
{185, 189, 184, 188},
{189, 185, 190, 186},
{183, 187, 184, 188},
},
{
{192, 188, 191, 187},
{186, 190, 185, 189},
{190, 186, 191, 187},
{184, 188, 185, 189},
},
{
{193, 189, 192, 188},
{187, 191, 186, 190},
{191, 187, 192, 188},
{185, 189, 186, 190},
},
{
{194, 190, 193, 189},
{188, 192, 187, 191},
{192, 188, 193, 189},
{186, 190, 187, 191},
},
{
{195, 191, 194, 190},
{189, 193, 188, 192},
{193, 189, 194, 190},
{187, 191, 188, 192},
},
{
{196, 192, 195, 191},
{190, 194, 189, 193},
{194, 190, 195, 191},
{188, 192, 189, 193},
},
{
{197, 193, 196, 192},
{191, 195, 190, 194},
{195, 191, 196, 192},
{189, 193, 190, 194},
},
{
{198, 194, 197, 193},
{192, 196, 191, 195},
{196, 192, 197, 193},
{190, 194, 191, 195},
},
{
{199, 195, 198, 194},
{193, 197, 192, 196},
{197, 193, 198, 194},
{191, 195, 192, 196},
},
{
{200, 196, 199, 195},
{194, 198, 193, 197},
{198, 194, 199, 195},
{192, 196, 193, 197},
},
{
{201, 197, 200, 196},
{195, 199, 194, 198},
{199, 195, 200, 196},
{193, 197, 194, 198},
},
{
{202, 198, 201, 197},
{196, 200, 195, 199},
{200, 196, 201, 197},
{194, 198, 195, 199},
},
{
{203, 199, 202, 198},
{197, 201, 196, 200},
{201, 197, 202, 198},
{195, 199, 196, 200},
},
{
{204, 200, 203, 199},
{198, 202, 197, 201},
{202, 198, 203, 199},
{196, 200, 197, 201},
},
{
{205, 201, 204, 200},
{199, 203, 198, 202},
{203, 199, 204, 200},
{197, 201, 198, 202},
},
{
{206, 202, 205, 201},
{200, 204, 199, 203},
{204, 200, 205, 201},
{198, 202, 199, 203},
},
{
{207, 203, 206, 202},
{201, 205, 200, 204},
{205, 201, 206, 202},
{199, 203, 200, 204},
},
{
{208, 204, 207, 203},
{202, 206, 201, 205},
{206, 202, 207, 203},
{200, 204, 201, 205},
},
{
{209, 205, 208, 204},
{203, 207, 202, 206},
{207, 203, 208, 204},
{201, 205, 202, 206},
},
{
{210, 206, 209, 205},
{204, 208, 203, 207},
{208, 204, 209, 205},
{202, 206, 203, 207},
},
{
{211, 207, 210, 206},
{205, 209, 204, 208},
{209, 205, 210, 206},
{203, 207, 204, 208},
},
{
{212, 208, 211, 207},
{206, 210, 205, 209},
{210, 206, 211, 207},
{204, 208, 205, 209},
},
{
{213, 209, 212, 208},
{207, 211, 206, 210},
{211, 207, 212, 208},
{205, 209, 206, 210},
},
{
{214, 210, 213, 209},
{208, 212, 207, 211},
{212, 208, 213, 209},
{206, 210, 207, 211},
},
{
{215, 211, 214, 210},
{209, 213, 208, 212},
{213, 209, 214, 210},
{207, 211, 208, 212},
},
{
{216, 212, 215, 211},
{210, 214, 209, 213},
{214, 210, 215, 211},
{208, 212, 209, 213},
},
{
{217, 213, 216, 212},
{211, 215, 210, 214},
{215, 211, 216, 212},
{209, 213, 210, 214},
},
{
{218, 214, 217, 213},
{212, 216, 211, 215},
{216, 212, 217, 213},
{210, 214, 211, 215},
},
{
{219, 215, 218, 214},
{213, 217, 212, 216},
{217, 213, 218, 214},
{211, 215, 212, 216},
},
{
{220, 216, 219, 215},
{214, 218, 213, 217},
{218, 214, 219, 215},
{212, 216, 213, 217},
},
{
{221, 217, 220, 216},
{215, 219, 214, 218},
{219, 215, 220, 216},
{213, 217, 214, 218},
},
{
{222, 218, 221, 217},
{216, 220, 215, 219},
{220, 216, 221, 217},
{214, 218, 215, 219},
},
{
{223, 219, 222, 218},
{217, 221, 216, 220},
{221, 217, 222, 218},
{215, 219, 216, 220},
},
{
{224, 220, 223, 219},
{218, 222, 217, 221},
{222, 218, 223, 219},
{216, 220, 217, 221},
},
{
{225, 221, 224, 220},
{219, 223, 218, 222},
{223, 219, 224, 220},
{217, 221, 218, 222},
},
{
{226, 222, 225, 221},
{220, 224, 219, 223},
{224, 220, 225, 221},
{218, 222, 219, 223},
},
{
{227, 223, 226, 222},
{221, 225, 220, 224},
{225, 221, 226, 222},
{219, 223, 220, 224},
},
{
{228, 224, 227, 223},
{222, 226, 221, 225},
{226, 222, 227, 223},
{220, 224, 221, 225},
},
{
{229, 225, 228, 224},
{223, 227, 222, 226},
{227, 223, 228, 224},
{221, 225, 222, 226},
},
{
{230, 226, 229, 225},
{224, 228, 223, 227},
{228, 224, 229, 225},
{222, 226, 223, 227},
},
{
{231, 227, 230, 226},
{225, 229, 224, 228},
{229, 225, 230, 226},
{223, 227, 224, 228},
},
{
{232, 228, 231, 227},
{226, 230, 225, 229},
{230, 226, 231, 227},
{224, 228, 225, 229},
},
{
{233, 229, 232, 228},
{227, 231, 226, 230},
{231, 227, 232, 228},
{225, 229, 226, 230},
},
{
{234, 230, 233, 229},
{228, 232, 227, 231},
{232, 228, 233, 229},
{226, 230, 227, 231},
},
{
{235, 231, 234, 230},
{229, 233, 228, 232},
{233, 229, 234, 230},
{227, 231, 228, 232},
},
{
{236, 232, 235, 231},
{230, 234, 229, 233},
{234, 230, 235, 231},
{228, 232, 229, 233},
},
{
{237, 233, 236, 232},
{231, 235, 230, 234},
{235, 231, 236, 232},
{229, 233, 230, 234},
},
{
{238, 234, 237, 233},
{232, 236, 231, 235},
{236, 232, 237, 233},
{230, 234, 231, 235},
},
{
{239, 235, 238, 234},
{233, 237, 232, 236},
{237, 233, 238, 234},
{231, 235, 232, 236},
},
{
{240, 236, 239, 235},
{234, 238, 233, 237},
{238, 234, 239, 235},
{232, 236, 233, 237},
},
{
{241, 237, 240, 236},
{235, 239, 234, 238},
{239, 235, 240, 236},
{233, 237, 234, 238},
},
{
{242, 238, 241, 237},
{236, 240, 235, 239},
{240, 236, 241, 237},
{234, 238, 235, 239},
},
{
{243, 239, 242, 238},
{237, 241, 236, 240},
{241, 237, 242, 238},
{235, 239, 236, 240},
},
{
{244, 240, 243, 239},
{238, 242, 237, 241},
{242, 238, 243, 239},
{236, 240, 237, 241},
},
{
{245, 241, 244, 240},
{239, 243, 238, 242},
{243, 239, 244, 240},
{237, 241, 238, 242},
},
{
{246, 242, 245, 241},
{240, 244, 239, 243},
{244, 240, 245, 241},
{238, 242, 239, 243},
},
{
{247, 243, 246, 242},
{241, 245, 240, 244},
{245, 241, 246, 242},
{239, 243, 240, 244},
},
{
{248, 244, 247, 243},
{242, 246, 241, 245},
{246, 242, 247, 243},
{240, 244, 241, 245},
},
{
{249, 245, 248, 244},
{243, 247, 242, 246},
{247, 243, 248, 244},
{241, 245, 242, 246},
},
{
{250, 246, 249, 245},
{244, 248, 243, 247},
{248, 244, 249, 245},
{242, 246, 243, 247},
},
{
{251, 247, 250, 246},
{245, 249, 244, 248},
{249, 245, 250, 246},
{243, 247, 244, 248},
},
{
{252, 248, 251, 247},
{246, 250, 245, 249},
{250, 246, 251, 247},
{244, 248, 245, 249},
},
{
{253, 249, 252, 248},
{247, 251, 246, 250},
{251, 247, 252, 248},
{245, 249, 246, 250},
},
{
{254, 250, 253, 249},
{248, 252, 247, 251},
{252, 248, 253, 249},
{246, 250, 247, 251},
},
{
{255, 251, 254, 250},
{249, 253, 248, 252},
{253, 249, 254, 250},
{247, 251, 248, 252},
},
{
{255, 252, 255, 251},
{250, 254, 249, 253},
{254, 250, 255, 251},
{248, 252, 249, 253},
},
{
{255, 253, 255, 252},
{251, 255, 250, 254},
{255, 251, 255, 252},
{249, 253, 250, 254},
},
{
{255, 254, 255, 253},
{252, 255, 251, 255},
{255, 252, 255, 253},
{250, 254, 251, 255},
},
{
{255, 255, 255, 254},
{253, 255, 252, 255},
{255, 253, 255, 254},
{251, 255, 252, 255},
},
{
{255, 255, 255, 255},
{254, 255, 253, 255},
{255, 254, 255, 255},
{252, 255, 253, 255},
},
};
static const uint8_t dithersub_g[256][4][4] =
{
{
{0, 0, 0, 0},
{0, 0, 0, 0},
{0, 0, 0, 0},
{0, 0, 0, 0},
},
{
{0, 0, 0, 0},
{0, 0, 0, 0},
{0, 0, 0, 0},
{0, 0, 0, 0},
},
{
{5, 3, 4, 2},
{2, 4, 1, 3},
{4, 2, 4, 2},
{1, 3, 1, 3},
},
{
{6, 4, 5, 3},
{3, 5, 2, 4},
{5, 3, 5, 3},
{2, 4, 2, 4},
},
{
{7, 5, 6, 4},
{4, 6, 3, 5},
{6, 4, 6, 4},
{3, 5, 3, 5},
},
{
{8, 6, 7, 5},
{5, 7, 4, 6},
{7, 5, 7, 5},
{4, 6, 4, 6},
},
{
{9, 7, 8, 6},
{6, 8, 5, 7},
{8, 6, 8, 6},
{5, 7, 5, 7},
},
{
{10, 8, 9, 7},
{7, 9, 6, 8},
{9, 7, 9, 7},
{6, 8, 6, 8},
},
{
{11, 9, 10, 8},
{8, 10, 7, 9},
{10, 8, 10, 8},
{7, 9, 7, 9},
},
{
{12, 10, 11, 9},
{9, 11, 8, 10},
{11, 9, 11, 9},
{8, 10, 8, 10},
},
{
{13, 11, 12, 10},
{10, 12, 9, 11},
{12, 10, 12, 10},
{9, 11, 9, 11},
},
{
{14, 12, 13, 11},
{11, 13, 10, 12},
{13, 11, 13, 11},
{10, 12, 10, 12},
},
{
{15, 13, 14, 12},
{12, 14, 11, 13},
{14, 12, 14, 12},
{11, 13, 11, 13},
},
{
{16, 14, 15, 13},
{13, 15, 12, 14},
{15, 13, 15, 13},
{12, 14, 12, 14},
},
{
{17, 15, 16, 14},
{14, 16, 13, 15},
{16, 14, 16, 14},
{13, 15, 13, 15},
},
{
{18, 16, 17, 15},
{15, 17, 14, 16},
{17, 15, 17, 15},
{14, 16, 14, 16},
},
{
{19, 17, 18, 16},
{16, 18, 15, 17},
{18, 16, 18, 16},
{15, 17, 15, 17},
},
{
{20, 18, 19, 17},
{17, 19, 16, 18},
{19, 17, 19, 17},
{16, 18, 16, 18},
},
{
{21, 19, 20, 18},
{18, 20, 17, 19},
{20, 18, 20, 18},
{17, 19, 17, 19},
},
{
{22, 20, 21, 19},
{19, 21, 18, 20},
{21, 19, 21, 19},
{18, 20, 18, 20},
},
{
{23, 21, 22, 20},
{20, 22, 19, 21},
{22, 20, 22, 20},
{19, 21, 19, 21},
},
{
{24, 22, 23, 21},
{21, 23, 20, 22},
{23, 21, 23, 21},
{20, 22, 20, 22},
},
{
{25, 23, 24, 22},
{22, 24, 21, 23},
{24, 22, 24, 22},
{21, 23, 21, 23},
},
{
{26, 24, 25, 23},
{23, 25, 22, 24},
{25, 23, 25, 23},
{22, 24, 22, 24},
},
{
{27, 25, 26, 24},
{24, 26, 23, 25},
{26, 24, 26, 24},
{23, 25, 23, 25},
},
{
{28, 26, 27, 25},
{25, 27, 24, 26},
{27, 25, 27, 25},
{24, 26, 24, 26},
},
{
{29, 27, 28, 26},
{26, 28, 25, 27},
{28, 26, 28, 26},
{25, 27, 25, 27},
},
{
{30, 28, 29, 27},
{27, 29, 26, 28},
{29, 27, 29, 27},
{26, 28, 26, 28},
},
{
{31, 29, 30, 28},
{28, 30, 27, 29},
{30, 28, 30, 28},
{27, 29, 27, 29},
},
{
{32, 30, 31, 29},
{29, 31, 28, 30},
{31, 29, 31, 29},
{28, 30, 28, 30},
},
{
{33, 31, 32, 30},
{30, 32, 29, 31},
{32, 30, 32, 30},
{29, 31, 29, 31},
},
{
{34, 32, 33, 31},
{31, 33, 30, 32},
{33, 31, 33, 31},
{30, 32, 30, 32},
},
{
{35, 33, 34, 32},
{32, 34, 31, 33},
{34, 32, 34, 32},
{31, 33, 31, 33},
},
{
{36, 34, 35, 33},
{33, 35, 32, 34},
{35, 33, 35, 33},
{32, 34, 32, 34},
},
{
{37, 35, 36, 34},
{34, 36, 33, 35},
{36, 34, 36, 34},
{33, 35, 33, 35},
},
{
{38, 36, 37, 35},
{35, 37, 34, 36},
{37, 35, 37, 35},
{34, 36, 34, 36},
},
{
{39, 37, 38, 36},
{36, 38, 35, 37},
{38, 36, 38, 36},
{35, 37, 35, 37},
},
{
{40, 38, 39, 37},
{37, 39, 36, 38},
{39, 37, 39, 37},
{36, 38, 36, 38},
},
{
{41, 39, 40, 38},
{38, 40, 37, 39},
{40, 38, 40, 38},
{37, 39, 37, 39},
},
{
{42, 40, 41, 39},
{39, 41, 38, 40},
{41, 39, 41, 39},
{38, 40, 38, 40},
},
{
{43, 41, 42, 40},
{40, 42, 39, 41},
{42, 40, 42, 40},
{39, 41, 39, 41},
},
{
{44, 42, 43, 41},
{41, 43, 40, 42},
{43, 41, 43, 41},
{40, 42, 40, 42},
},
{
{45, 43, 44, 42},
{42, 44, 41, 43},
{44, 42, 44, 42},
{41, 43, 41, 43},
},
{
{46, 44, 45, 43},
{43, 45, 42, 44},
{45, 43, 45, 43},
{42, 44, 42, 44},
},
{
{47, 45, 46, 44},
{44, 46, 43, 45},
{46, 44, 46, 44},
{43, 45, 43, 45},
},
{
{48, 46, 47, 45},
{45, 47, 44, 46},
{47, 45, 47, 45},
{44, 46, 44, 46},
},
{
{49, 47, 48, 46},
{46, 48, 45, 47},
{48, 46, 48, 46},
{45, 47, 45, 47},
},
{
{50, 48, 49, 47},
{47, 49, 46, 48},
{49, 47, 49, 47},
{46, 48, 46, 48},
},
{
{51, 49, 50, 48},
{48, 50, 47, 49},
{50, 48, 50, 48},
{47, 49, 47, 49},
},
{
{52, 50, 51, 49},
{49, 51, 48, 50},
{51, 49, 51, 49},
{48, 50, 48, 50},
},
{
{53, 51, 52, 50},
{50, 52, 49, 51},
{52, 50, 52, 50},
{49, 51, 49, 51},
},
{
{54, 52, 53, 51},
{51, 53, 50, 52},
{53, 51, 53, 51},
{50, 52, 50, 52},
},
{
{55, 53, 54, 52},
{52, 54, 51, 53},
{54, 52, 54, 52},
{51, 53, 51, 53},
},
{
{56, 54, 55, 53},
{53, 55, 52, 54},
{55, 53, 55, 53},
{52, 54, 52, 54},
},
{
{57, 55, 56, 54},
{54, 56, 53, 55},
{56, 54, 56, 54},
{53, 55, 53, 55},
},
{
{58, 56, 57, 55},
{55, 57, 54, 56},
{57, 55, 57, 55},
{54, 56, 54, 56},
},
{
{59, 57, 58, 56},
{56, 58, 55, 57},
{58, 56, 58, 56},
{55, 57, 55, 57},
},
{
{60, 58, 59, 57},
{57, 59, 56, 58},
{59, 57, 59, 57},
{56, 58, 56, 58},
},
{
{61, 59, 60, 58},
{58, 60, 57, 59},
{60, 58, 60, 58},
{57, 59, 57, 59},
},
{
{62, 60, 61, 59},
{59, 61, 58, 60},
{61, 59, 61, 59},
{58, 60, 58, 60},
},
{
{63, 61, 62, 60},
{60, 62, 59, 61},
{62, 60, 62, 60},
{59, 61, 59, 61},
},
{
{64, 62, 63, 61},
{61, 63, 60, 62},
{63, 61, 63, 61},
{60, 62, 60, 62},
},
{
{65, 63, 64, 62},
{62, 64, 61, 63},
{64, 62, 64, 62},
{61, 63, 61, 63},
},
{
{66, 64, 65, 63},
{63, 65, 62, 64},
{65, 63, 65, 63},
{62, 64, 62, 64},
},
{
{67, 65, 66, 64},
{64, 66, 63, 65},
{66, 64, 66, 64},
{63, 65, 63, 65},
},
{
{68, 66, 67, 65},
{65, 67, 64, 66},
{67, 65, 67, 65},
{64, 66, 64, 66},
},
{
{69, 67, 68, 66},
{66, 68, 65, 67},
{68, 66, 68, 66},
{65, 67, 65, 67},
},
{
{70, 68, 69, 67},
{67, 69, 66, 68},
{69, 67, 69, 67},
{66, 68, 66, 68},
},
{
{71, 69, 70, 68},
{68, 70, 67, 69},
{70, 68, 70, 68},
{67, 69, 67, 69},
},
{
{72, 70, 71, 69},
{69, 71, 68, 70},
{71, 69, 71, 69},
{68, 70, 68, 70},
},
{
{73, 71, 72, 70},
{70, 72, 69, 71},
{72, 70, 72, 70},
{69, 71, 69, 71},
},
{
{74, 72, 73, 71},
{71, 73, 70, 72},
{73, 71, 73, 71},
{70, 72, 70, 72},
},
{
{75, 73, 74, 72},
{72, 74, 71, 73},
{74, 72, 74, 72},
{71, 73, 71, 73},
},
{
{76, 74, 75, 73},
{73, 75, 72, 74},
{75, 73, 75, 73},
{72, 74, 72, 74},
},
{
{77, 75, 76, 74},
{74, 76, 73, 75},
{76, 74, 76, 74},
{73, 75, 73, 75},
},
{
{78, 76, 77, 75},
{75, 77, 74, 76},
{77, 75, 77, 75},
{74, 76, 74, 76},
},
{
{79, 77, 78, 76},
{76, 78, 75, 77},
{78, 76, 78, 76},
{75, 77, 75, 77},
},
{
{80, 78, 79, 77},
{77, 79, 76, 78},
{79, 77, 79, 77},
{76, 78, 76, 78},
},
{
{81, 79, 80, 78},
{78, 80, 77, 79},
{80, 78, 80, 78},
{77, 79, 77, 79},
},
{
{82, 80, 81, 79},
{79, 81, 78, 80},
{81, 79, 81, 79},
{78, 80, 78, 80},
},
{
{83, 81, 82, 80},
{80, 82, 79, 81},
{82, 80, 82, 80},
{79, 81, 79, 81},
},
{
{84, 82, 83, 81},
{81, 83, 80, 82},
{83, 81, 83, 81},
{80, 82, 80, 82},
},
{
{85, 83, 84, 82},
{82, 84, 81, 83},
{84, 82, 84, 82},
{81, 83, 81, 83},
},
{
{86, 84, 85, 83},
{83, 85, 82, 84},
{85, 83, 85, 83},
{82, 84, 82, 84},
},
{
{87, 85, 86, 84},
{84, 86, 83, 85},
{86, 84, 86, 84},
{83, 85, 83, 85},
},
{
{88, 86, 87, 85},
{85, 87, 84, 86},
{87, 85, 87, 85},
{84, 86, 84, 86},
},
{
{89, 87, 88, 86},
{86, 88, 85, 87},
{88, 86, 88, 86},
{85, 87, 85, 87},
},
{
{90, 88, 89, 87},
{87, 89, 86, 88},
{89, 87, 89, 87},
{86, 88, 86, 88},
},
{
{91, 89, 90, 88},
{88, 90, 87, 89},
{90, 88, 90, 88},
{87, 89, 87, 89},
},
{
{92, 90, 91, 89},
{89, 91, 88, 90},
{91, 89, 91, 89},
{88, 90, 88, 90},
},
{
{93, 91, 92, 90},
{90, 92, 89, 91},
{92, 90, 92, 90},
{89, 91, 89, 91},
},
{
{94, 92, 93, 91},
{91, 93, 90, 92},
{93, 91, 93, 91},
{90, 92, 90, 92},
},
{
{95, 93, 94, 92},
{92, 94, 91, 93},
{94, 92, 94, 92},
{91, 93, 91, 93},
},
{
{96, 94, 95, 93},
{93, 95, 92, 94},
{95, 93, 95, 93},
{92, 94, 92, 94},
},
{
{97, 95, 96, 94},
{94, 96, 93, 95},
{96, 94, 96, 94},
{93, 95, 93, 95},
},
{
{98, 96, 97, 95},
{95, 97, 94, 96},
{97, 95, 97, 95},
{94, 96, 94, 96},
},
{
{99, 97, 98, 96},
{96, 98, 95, 97},
{98, 96, 98, 96},
{95, 97, 95, 97},
},
{
{100, 98, 99, 97},
{97, 99, 96, 98},
{99, 97, 99, 97},
{96, 98, 96, 98},
},
{
{101, 99, 100, 98},
{98, 100, 97, 99},
{100, 98, 100, 98},
{97, 99, 97, 99},
},
{
{102, 100, 101, 99},
{99, 101, 98, 100},
{101, 99, 101, 99},
{98, 100, 98, 100},
},
{
{103, 101, 102, 100},
{100, 102, 99, 101},
{102, 100, 102, 100},
{99, 101, 99, 101},
},
{
{104, 102, 103, 101},
{101, 103, 100, 102},
{103, 101, 103, 101},
{100, 102, 100, 102},
},
{
{105, 103, 104, 102},
{102, 104, 101, 103},
{104, 102, 104, 102},
{101, 103, 101, 103},
},
{
{106, 104, 105, 103},
{103, 105, 102, 104},
{105, 103, 105, 103},
{102, 104, 102, 104},
},
{
{107, 105, 106, 104},
{104, 106, 103, 105},
{106, 104, 106, 104},
{103, 105, 103, 105},
},
{
{108, 106, 107, 105},
{105, 107, 104, 106},
{107, 105, 107, 105},
{104, 106, 104, 106},
},
{
{109, 107, 108, 106},
{106, 108, 105, 107},
{108, 106, 108, 106},
{105, 107, 105, 107},
},
{
{110, 108, 109, 107},
{107, 109, 106, 108},
{109, 107, 109, 107},
{106, 108, 106, 108},
},
{
{111, 109, 110, 108},
{108, 110, 107, 109},
{110, 108, 110, 108},
{107, 109, 107, 109},
},
{
{112, 110, 111, 109},
{109, 111, 108, 110},
{111, 109, 111, 109},
{108, 110, 108, 110},
},
{
{113, 111, 112, 110},
{110, 112, 109, 111},
{112, 110, 112, 110},
{109, 111, 109, 111},
},
{
{114, 112, 113, 111},
{111, 113, 110, 112},
{113, 111, 113, 111},
{110, 112, 110, 112},
},
{
{115, 113, 114, 112},
{112, 114, 111, 113},
{114, 112, 114, 112},
{111, 113, 111, 113},
},
{
{116, 114, 115, 113},
{113, 115, 112, 114},
{115, 113, 115, 113},
{112, 114, 112, 114},
},
{
{117, 115, 116, 114},
{114, 116, 113, 115},
{116, 114, 116, 114},
{113, 115, 113, 115},
},
{
{118, 116, 117, 115},
{115, 117, 114, 116},
{117, 115, 117, 115},
{114, 116, 114, 116},
},
{
{119, 117, 118, 116},
{116, 118, 115, 117},
{118, 116, 118, 116},
{115, 117, 115, 117},
},
{
{120, 118, 119, 117},
{117, 119, 116, 118},
{119, 117, 119, 117},
{116, 118, 116, 118},
},
{
{121, 119, 120, 118},
{118, 120, 117, 119},
{120, 118, 120, 118},
{117, 119, 117, 119},
},
{
{122, 120, 121, 119},
{119, 121, 118, 120},
{121, 119, 121, 119},
{118, 120, 118, 120},
},
{
{123, 121, 122, 120},
{120, 122, 119, 121},
{122, 120, 122, 120},
{119, 121, 119, 121},
},
{
{124, 122, 123, 121},
{121, 123, 120, 122},
{123, 121, 123, 121},
{120, 122, 120, 122},
},
{
{125, 123, 124, 122},
{122, 124, 121, 123},
{124, 122, 124, 122},
{121, 123, 121, 123},
},
{
{126, 124, 125, 123},
{123, 125, 122, 124},
{125, 123, 125, 123},
{122, 124, 122, 124},
},
{
{127, 125, 126, 124},
{124, 126, 123, 125},
{126, 124, 126, 124},
{123, 125, 123, 125},
},
{
{128, 126, 127, 125},
{125, 127, 124, 126},
{127, 125, 127, 125},
{124, 126, 124, 126},
},
{
{129, 127, 128, 126},
{126, 128, 125, 127},
{128, 126, 128, 126},
{125, 127, 125, 127},
},
{
{130, 128, 129, 127},
{127, 129, 126, 128},
{129, 127, 129, 127},
{126, 128, 126, 128},
},
{
{131, 129, 130, 128},
{128, 130, 127, 129},
{130, 128, 130, 128},
{127, 129, 127, 129},
},
{
{132, 130, 131, 129},
{129, 131, 128, 130},
{131, 129, 131, 129},
{128, 130, 128, 130},
},
{
{133, 131, 132, 130},
{130, 132, 129, 131},
{132, 130, 132, 130},
{129, 131, 129, 131},
},
{
{134, 132, 133, 131},
{131, 133, 130, 132},
{133, 131, 133, 131},
{130, 132, 130, 132},
},
{
{135, 133, 134, 132},
{132, 134, 131, 133},
{134, 132, 134, 132},
{131, 133, 131, 133},
},
{
{136, 134, 135, 133},
{133, 135, 132, 134},
{135, 133, 135, 133},
{132, 134, 132, 134},
},
{
{137, 135, 136, 134},
{134, 136, 133, 135},
{136, 134, 136, 134},
{133, 135, 133, 135},
},
{
{138, 136, 137, 135},
{135, 137, 134, 136},
{137, 135, 137, 135},
{134, 136, 134, 136},
},
{
{139, 137, 138, 136},
{136, 138, 135, 137},
{138, 136, 138, 136},
{135, 137, 135, 137},
},
{
{140, 138, 139, 137},
{137, 139, 136, 138},
{139, 137, 139, 137},
{136, 138, 136, 138},
},
{
{141, 139, 140, 138},
{138, 140, 137, 139},
{140, 138, 140, 138},
{137, 139, 137, 139},
},
{
{142, 140, 141, 139},
{139, 141, 138, 140},
{141, 139, 141, 139},
{138, 140, 138, 140},
},
{
{143, 141, 142, 140},
{140, 142, 139, 141},
{142, 140, 142, 140},
{139, 141, 139, 141},
},
{
{144, 142, 143, 141},
{141, 143, 140, 142},
{143, 141, 143, 141},
{140, 142, 140, 142},
},
{
{145, 143, 144, 142},
{142, 144, 141, 143},
{144, 142, 144, 142},
{141, 143, 141, 143},
},
{
{146, 144, 145, 143},
{143, 145, 142, 144},
{145, 143, 145, 143},
{142, 144, 142, 144},
},
{
{147, 145, 146, 144},
{144, 146, 143, 145},
{146, 144, 146, 144},
{143, 145, 143, 145},
},
{
{148, 146, 147, 145},
{145, 147, 144, 146},
{147, 145, 147, 145},
{144, 146, 144, 146},
},
{
{149, 147, 148, 146},
{146, 148, 145, 147},
{148, 146, 148, 146},
{145, 147, 145, 147},
},
{
{150, 148, 149, 147},
{147, 149, 146, 148},
{149, 147, 149, 147},
{146, 148, 146, 148},
},
{
{151, 149, 150, 148},
{148, 150, 147, 149},
{150, 148, 150, 148},
{147, 149, 147, 149},
},
{
{152, 150, 151, 149},
{149, 151, 148, 150},
{151, 149, 151, 149},
{148, 150, 148, 150},
},
{
{153, 151, 152, 150},
{150, 152, 149, 151},
{152, 150, 152, 150},
{149, 151, 149, 151},
},
{
{154, 152, 153, 151},
{151, 153, 150, 152},
{153, 151, 153, 151},
{150, 152, 150, 152},
},
{
{155, 153, 154, 152},
{152, 154, 151, 153},
{154, 152, 154, 152},
{151, 153, 151, 153},
},
{
{156, 154, 155, 153},
{153, 155, 152, 154},
{155, 153, 155, 153},
{152, 154, 152, 154},
},
{
{157, 155, 156, 154},
{154, 156, 153, 155},
{156, 154, 156, 154},
{153, 155, 153, 155},
},
{
{158, 156, 157, 155},
{155, 157, 154, 156},
{157, 155, 157, 155},
{154, 156, 154, 156},
},
{
{159, 157, 158, 156},
{156, 158, 155, 157},
{158, 156, 158, 156},
{155, 157, 155, 157},
},
{
{160, 158, 159, 157},
{157, 159, 156, 158},
{159, 157, 159, 157},
{156, 158, 156, 158},
},
{
{161, 159, 160, 158},
{158, 160, 157, 159},
{160, 158, 160, 158},
{157, 159, 157, 159},
},
{
{162, 160, 161, 159},
{159, 161, 158, 160},
{161, 159, 161, 159},
{158, 160, 158, 160},
},
{
{163, 161, 162, 160},
{160, 162, 159, 161},
{162, 160, 162, 160},
{159, 161, 159, 161},
},
{
{164, 162, 163, 161},
{161, 163, 160, 162},
{163, 161, 163, 161},
{160, 162, 160, 162},
},
{
{165, 163, 164, 162},
{162, 164, 161, 163},
{164, 162, 164, 162},
{161, 163, 161, 163},
},
{
{166, 164, 165, 163},
{163, 165, 162, 164},
{165, 163, 165, 163},
{162, 164, 162, 164},
},
{
{167, 165, 166, 164},
{164, 166, 163, 165},
{166, 164, 166, 164},
{163, 165, 163, 165},
},
{
{168, 166, 167, 165},
{165, 167, 164, 166},
{167, 165, 167, 165},
{164, 166, 164, 166},
},
{
{169, 167, 168, 166},
{166, 168, 165, 167},
{168, 166, 168, 166},
{165, 167, 165, 167},
},
{
{170, 168, 169, 167},
{167, 169, 166, 168},
{169, 167, 169, 167},
{166, 168, 166, 168},
},
{
{171, 169, 170, 168},
{168, 170, 167, 169},
{170, 168, 170, 168},
{167, 169, 167, 169},
},
{
{172, 170, 171, 169},
{169, 171, 168, 170},
{171, 169, 171, 169},
{168, 170, 168, 170},
},
{
{173, 171, 172, 170},
{170, 172, 169, 171},
{172, 170, 172, 170},
{169, 171, 169, 171},
},
{
{174, 172, 173, 171},
{171, 173, 170, 172},
{173, 171, 173, 171},
{170, 172, 170, 172},
},
{
{175, 173, 174, 172},
{172, 174, 171, 173},
{174, 172, 174, 172},
{171, 173, 171, 173},
},
{
{176, 174, 175, 173},
{173, 175, 172, 174},
{175, 173, 175, 173},
{172, 174, 172, 174},
},
{
{177, 175, 176, 174},
{174, 176, 173, 175},
{176, 174, 176, 174},
{173, 175, 173, 175},
},
{
{178, 176, 177, 175},
{175, 177, 174, 176},
{177, 175, 177, 175},
{174, 176, 174, 176},
},
{
{179, 177, 178, 176},
{176, 178, 175, 177},
{178, 176, 178, 176},
{175, 177, 175, 177},
},
{
{180, 178, 179, 177},
{177, 179, 176, 178},
{179, 177, 179, 177},
{176, 178, 176, 178},
},
{
{181, 179, 180, 178},
{178, 180, 177, 179},
{180, 178, 180, 178},
{177, 179, 177, 179},
},
{
{182, 180, 181, 179},
{179, 181, 178, 180},
{181, 179, 181, 179},
{178, 180, 178, 180},
},
{
{183, 181, 182, 180},
{180, 182, 179, 181},
{182, 180, 182, 180},
{179, 181, 179, 181},
},
{
{184, 182, 183, 181},
{181, 183, 180, 182},
{183, 181, 183, 181},
{180, 182, 180, 182},
},
{
{185, 183, 184, 182},
{182, 184, 181, 183},
{184, 182, 184, 182},
{181, 183, 181, 183},
},
{
{186, 184, 185, 183},
{183, 185, 182, 184},
{185, 183, 185, 183},
{182, 184, 182, 184},
},
{
{187, 185, 186, 184},
{184, 186, 183, 185},
{186, 184, 186, 184},
{183, 185, 183, 185},
},
{
{188, 186, 187, 185},
{185, 187, 184, 186},
{187, 185, 187, 185},
{184, 186, 184, 186},
},
{
{189, 187, 188, 186},
{186, 188, 185, 187},
{188, 186, 188, 186},
{185, 187, 185, 187},
},
{
{190, 188, 189, 187},
{187, 189, 186, 188},
{189, 187, 189, 187},
{186, 188, 186, 188},
},
{
{191, 189, 190, 188},
{188, 190, 187, 189},
{190, 188, 190, 188},
{187, 189, 187, 189},
},
{
{192, 190, 191, 189},
{189, 191, 188, 190},
{191, 189, 191, 189},
{188, 190, 188, 190},
},
{
{193, 191, 192, 190},
{190, 192, 189, 191},
{192, 190, 192, 190},
{189, 191, 189, 191},
},
{
{194, 192, 193, 191},
{191, 193, 190, 192},
{193, 191, 193, 191},
{190, 192, 190, 192},
},
{
{195, 193, 194, 192},
{192, 194, 191, 193},
{194, 192, 194, 192},
{191, 193, 191, 193},
},
{
{196, 194, 195, 193},
{193, 195, 192, 194},
{195, 193, 195, 193},
{192, 194, 192, 194},
},
{
{197, 195, 196, 194},
{194, 196, 193, 195},
{196, 194, 196, 194},
{193, 195, 193, 195},
},
{
{198, 196, 197, 195},
{195, 197, 194, 196},
{197, 195, 197, 195},
{194, 196, 194, 196},
},
{
{199, 197, 198, 196},
{196, 198, 195, 197},
{198, 196, 198, 196},
{195, 197, 195, 197},
},
{
{200, 198, 199, 197},
{197, 199, 196, 198},
{199, 197, 199, 197},
{196, 198, 196, 198},
},
{
{201, 199, 200, 198},
{198, 200, 197, 199},
{200, 198, 200, 198},
{197, 199, 197, 199},
},
{
{202, 200, 201, 199},
{199, 201, 198, 200},
{201, 199, 201, 199},
{198, 200, 198, 200},
},
{
{203, 201, 202, 200},
{200, 202, 199, 201},
{202, 200, 202, 200},
{199, 201, 199, 201},
},
{
{204, 202, 203, 201},
{201, 203, 200, 202},
{203, 201, 203, 201},
{200, 202, 200, 202},
},
{
{205, 203, 204, 202},
{202, 204, 201, 203},
{204, 202, 204, 202},
{201, 203, 201, 203},
},
{
{206, 204, 205, 203},
{203, 205, 202, 204},
{205, 203, 205, 203},
{202, 204, 202, 204},
},
{
{207, 205, 206, 204},
{204, 206, 203, 205},
{206, 204, 206, 204},
{203, 205, 203, 205},
},
{
{208, 206, 207, 205},
{205, 207, 204, 206},
{207, 205, 207, 205},
{204, 206, 204, 206},
},
{
{209, 207, 208, 206},
{206, 208, 205, 207},
{208, 206, 208, 206},
{205, 207, 205, 207},
},
{
{210, 208, 209, 207},
{207, 209, 206, 208},
{209, 207, 209, 207},
{206, 208, 206, 208},
},
{
{211, 209, 210, 208},
{208, 210, 207, 209},
{210, 208, 210, 208},
{207, 209, 207, 209},
},
{
{212, 210, 211, 209},
{209, 211, 208, 210},
{211, 209, 211, 209},
{208, 210, 208, 210},
},
{
{213, 211, 212, 210},
{210, 212, 209, 211},
{212, 210, 212, 210},
{209, 211, 209, 211},
},
{
{214, 212, 213, 211},
{211, 213, 210, 212},
{213, 211, 213, 211},
{210, 212, 210, 212},
},
{
{215, 213, 214, 212},
{212, 214, 211, 213},
{214, 212, 214, 212},
{211, 213, 211, 213},
},
{
{216, 214, 215, 213},
{213, 215, 212, 214},
{215, 213, 215, 213},
{212, 214, 212, 214},
},
{
{217, 215, 216, 214},
{214, 216, 213, 215},
{216, 214, 216, 214},
{213, 215, 213, 215},
},
{
{218, 216, 217, 215},
{215, 217, 214, 216},
{217, 215, 217, 215},
{214, 216, 214, 216},
},
{
{219, 217, 218, 216},
{216, 218, 215, 217},
{218, 216, 218, 216},
{215, 217, 215, 217},
},
{
{220, 218, 219, 217},
{217, 219, 216, 218},
{219, 217, 219, 217},
{216, 218, 216, 218},
},
{
{221, 219, 220, 218},
{218, 220, 217, 219},
{220, 218, 220, 218},
{217, 219, 217, 219},
},
{
{222, 220, 221, 219},
{219, 221, 218, 220},
{221, 219, 221, 219},
{218, 220, 218, 220},
},
{
{223, 221, 222, 220},
{220, 222, 219, 221},
{222, 220, 222, 220},
{219, 221, 219, 221},
},
{
{224, 222, 223, 221},
{221, 223, 220, 222},
{223, 221, 223, 221},
{220, 222, 220, 222},
},
{
{225, 223, 224, 222},
{222, 224, 221, 223},
{224, 222, 224, 222},
{221, 223, 221, 223},
},
{
{226, 224, 225, 223},
{223, 225, 222, 224},
{225, 223, 225, 223},
{222, 224, 222, 224},
},
{
{227, 225, 226, 224},
{224, 226, 223, 225},
{226, 224, 226, 224},
{223, 225, 223, 225},
},
{
{228, 226, 227, 225},
{225, 227, 224, 226},
{227, 225, 227, 225},
{224, 226, 224, 226},
},
{
{229, 227, 228, 226},
{226, 228, 225, 227},
{228, 226, 228, 226},
{225, 227, 225, 227},
},
{
{230, 228, 229, 227},
{227, 229, 226, 228},
{229, 227, 229, 227},
{226, 228, 226, 228},
},
{
{231, 229, 230, 228},
{228, 230, 227, 229},
{230, 228, 230, 228},
{227, 229, 227, 229},
},
{
{232, 230, 231, 229},
{229, 231, 228, 230},
{231, 229, 231, 229},
{228, 230, 228, 230},
},
{
{233, 231, 232, 230},
{230, 232, 229, 231},
{232, 230, 232, 230},
{229, 231, 229, 231},
},
{
{234, 232, 233, 231},
{231, 233, 230, 232},
{233, 231, 233, 231},
{230, 232, 230, 232},
},
{
{235, 233, 234, 232},
{232, 234, 231, 233},
{234, 232, 234, 232},
{231, 233, 231, 233},
},
{
{236, 234, 235, 233},
{233, 235, 232, 234},
{235, 233, 235, 233},
{232, 234, 232, 234},
},
{
{237, 235, 236, 234},
{234, 236, 233, 235},
{236, 234, 236, 234},
{233, 235, 233, 235},
},
{
{238, 236, 237, 235},
{235, 237, 234, 236},
{237, 235, 237, 235},
{234, 236, 234, 236},
},
{
{239, 237, 238, 236},
{236, 238, 235, 237},
{238, 236, 238, 236},
{235, 237, 235, 237},
},
{
{240, 238, 239, 237},
{237, 239, 236, 238},
{239, 237, 239, 237},
{236, 238, 236, 238},
},
{
{241, 239, 240, 238},
{238, 240, 237, 239},
{240, 238, 240, 238},
{237, 239, 237, 239},
},
{
{242, 240, 241, 239},
{239, 241, 238, 240},
{241, 239, 241, 239},
{238, 240, 238, 240},
},
{
{243, 241, 242, 240},
{240, 242, 239, 241},
{242, 240, 242, 240},
{239, 241, 239, 241},
},
{
{244, 242, 243, 241},
{241, 243, 240, 242},
{243, 241, 243, 241},
{240, 242, 240, 242},
},
{
{245, 243, 244, 242},
{242, 244, 241, 243},
{244, 242, 244, 242},
{241, 243, 241, 243},
},
{
{246, 244, 245, 243},
{243, 245, 242, 244},
{245, 243, 245, 243},
{242, 244, 242, 244},
},
{
{247, 245, 246, 244},
{244, 246, 243, 245},
{246, 244, 246, 244},
{243, 245, 243, 245},
},
{
{248, 246, 247, 245},
{245, 247, 244, 246},
{247, 245, 247, 245},
{244, 246, 244, 246},
},
{
{249, 247, 248, 246},
{246, 248, 245, 247},
{248, 246, 248, 246},
{245, 247, 245, 247},
},
{
{250, 248, 249, 247},
{247, 249, 246, 248},
{249, 247, 249, 247},
{246, 248, 246, 248},
},
{
{251, 249, 250, 248},
{248, 250, 247, 249},
{250, 248, 250, 248},
{247, 249, 247, 249},
},
{
{252, 250, 251, 249},
{249, 251, 248, 250},
{251, 249, 251, 249},
{248, 250, 248, 250},
},
{
{253, 251, 252, 250},
{250, 252, 249, 251},
{252, 250, 252, 250},
{249, 251, 249, 251},
},
{
{254, 252, 253, 251},
{251, 253, 250, 252},
{253, 251, 253, 251},
{250, 252, 250, 252},
},
{
{255, 253, 254, 252},
{252, 254, 251, 253},
{254, 252, 254, 252},
{251, 253, 251, 253},
},
{
{255, 254, 255, 253},
{253, 255, 252, 254},
{255, 253, 255, 253},
{252, 254, 252, 254},
},
{
{255, 255, 255, 254},
{254, 255, 253, 255},
{255, 254, 255, 254},
{253, 255, 253, 255},
},
{
{255, 255, 255, 255},
{255, 255, 254, 255},
{255, 255, 255, 255},
{254, 255, 254, 255},
},
};
static const uint8_t dithersub_g2x2[256][2][2] =
{
{
{0, 0},
{0, 0},
},
{
{0, 0},
{0, 0},
},
{
{4, 2},
{1, 3},
},
{
{5, 3},
{2, 4},
},
{
{6, 4},
{3, 5},
},
{
{7, 5},
{4, 6},
},
{
{8, 6},
{5, 7},
},
{
{9, 7},
{6, 8},
},
{
{10, 8},
{7, 9},
},
{
{11, 9},
{8, 10},
},
{
{12, 10},
{9, 11},
},
{
{13, 11},
{10, 12},
},
{
{14, 12},
{11, 13},
},
{
{15, 13},
{12, 14},
},
{
{16, 14},
{13, 15},
},
{
{17, 15},
{14, 16},
},
{
{18, 16},
{15, 17},
},
{
{19, 17},
{16, 18},
},
{
{20, 18},
{17, 19},
},
{
{21, 19},
{18, 20},
},
{
{22, 20},
{19, 21},
},
{
{23, 21},
{20, 22},
},
{
{24, 22},
{21, 23},
},
{
{25, 23},
{22, 24},
},
{
{26, 24},
{23, 25},
},
{
{27, 25},
{24, 26},
},
{
{28, 26},
{25, 27},
},
{
{29, 27},
{26, 28},
},
{
{30, 28},
{27, 29},
},
{
{31, 29},
{28, 30},
},
{
{32, 30},
{29, 31},
},
{
{33, 31},
{30, 32},
},
{
{34, 32},
{31, 33},
},
{
{35, 33},
{32, 34},
},
{
{36, 34},
{33, 35},
},
{
{37, 35},
{34, 36},
},
{
{38, 36},
{35, 37},
},
{
{39, 37},
{36, 38},
},
{
{40, 38},
{37, 39},
},
{
{41, 39},
{38, 40},
},
{
{42, 40},
{39, 41},
},
{
{43, 41},
{40, 42},
},
{
{44, 42},
{41, 43},
},
{
{45, 43},
{42, 44},
},
{
{46, 44},
{43, 45},
},
{
{47, 45},
{44, 46},
},
{
{48, 46},
{45, 47},
},
{
{49, 47},
{46, 48},
},
{
{50, 48},
{47, 49},
},
{
{51, 49},
{48, 50},
},
{
{52, 50},
{49, 51},
},
{
{53, 51},
{50, 52},
},
{
{54, 52},
{51, 53},
},
{
{55, 53},
{52, 54},
},
{
{56, 54},
{53, 55},
},
{
{57, 55},
{54, 56},
},
{
{58, 56},
{55, 57},
},
{
{59, 57},
{56, 58},
},
{
{60, 58},
{57, 59},
},
{
{61, 59},
{58, 60},
},
{
{62, 60},
{59, 61},
},
{
{63, 61},
{60, 62},
},
{
{64, 62},
{61, 63},
},
{
{65, 63},
{62, 64},
},
{
{66, 64},
{63, 65},
},
{
{67, 65},
{64, 66},
},
{
{68, 66},
{65, 67},
},
{
{69, 67},
{66, 68},
},
{
{70, 68},
{67, 69},
},
{
{71, 69},
{68, 70},
},
{
{72, 70},
{69, 71},
},
{
{73, 71},
{70, 72},
},
{
{74, 72},
{71, 73},
},
{
{75, 73},
{72, 74},
},
{
{76, 74},
{73, 75},
},
{
{77, 75},
{74, 76},
},
{
{78, 76},
{75, 77},
},
{
{79, 77},
{76, 78},
},
{
{80, 78},
{77, 79},
},
{
{81, 79},
{78, 80},
},
{
{82, 80},
{79, 81},
},
{
{83, 81},
{80, 82},
},
{
{84, 82},
{81, 83},
},
{
{85, 83},
{82, 84},
},
{
{86, 84},
{83, 85},
},
{
{87, 85},
{84, 86},
},
{
{88, 86},
{85, 87},
},
{
{89, 87},
{86, 88},
},
{
{90, 88},
{87, 89},
},
{
{91, 89},
{88, 90},
},
{
{92, 90},
{89, 91},
},
{
{93, 91},
{90, 92},
},
{
{94, 92},
{91, 93},
},
{
{95, 93},
{92, 94},
},
{
{96, 94},
{93, 95},
},
{
{97, 95},
{94, 96},
},
{
{98, 96},
{95, 97},
},
{
{99, 97},
{96, 98},
},
{
{100, 98},
{97, 99},
},
{
{101, 99},
{98, 100},
},
{
{102, 100},
{99, 101},
},
{
{103, 101},
{100, 102},
},
{
{104, 102},
{101, 103},
},
{
{105, 103},
{102, 104},
},
{
{106, 104},
{103, 105},
},
{
{107, 105},
{104, 106},
},
{
{108, 106},
{105, 107},
},
{
{109, 107},
{106, 108},
},
{
{110, 108},
{107, 109},
},
{
{111, 109},
{108, 110},
},
{
{112, 110},
{109, 111},
},
{
{113, 111},
{110, 112},
},
{
{114, 112},
{111, 113},
},
{
{115, 113},
{112, 114},
},
{
{116, 114},
{113, 115},
},
{
{117, 115},
{114, 116},
},
{
{118, 116},
{115, 117},
},
{
{119, 117},
{116, 118},
},
{
{120, 118},
{117, 119},
},
{
{121, 119},
{118, 120},
},
{
{122, 120},
{119, 121},
},
{
{123, 121},
{120, 122},
},
{
{124, 122},
{121, 123},
},
{
{125, 123},
{122, 124},
},
{
{126, 124},
{123, 125},
},
{
{127, 125},
{124, 126},
},
{
{128, 126},
{125, 127},
},
{
{129, 127},
{126, 128},
},
{
{130, 128},
{127, 129},
},
{
{131, 129},
{128, 130},
},
{
{132, 130},
{129, 131},
},
{
{133, 131},
{130, 132},
},
{
{134, 132},
{131, 133},
},
{
{135, 133},
{132, 134},
},
{
{136, 134},
{133, 135},
},
{
{137, 135},
{134, 136},
},
{
{138, 136},
{135, 137},
},
{
{139, 137},
{136, 138},
},
{
{140, 138},
{137, 139},
},
{
{141, 139},
{138, 140},
},
{
{142, 140},
{139, 141},
},
{
{143, 141},
{140, 142},
},
{
{144, 142},
{141, 143},
},
{
{145, 143},
{142, 144},
},
{
{146, 144},
{143, 145},
},
{
{147, 145},
{144, 146},
},
{
{148, 146},
{145, 147},
},
{
{149, 147},
{146, 148},
},
{
{150, 148},
{147, 149},
},
{
{151, 149},
{148, 150},
},
{
{152, 150},
{149, 151},
},
{
{153, 151},
{150, 152},
},
{
{154, 152},
{151, 153},
},
{
{155, 153},
{152, 154},
},
{
{156, 154},
{153, 155},
},
{
{157, 155},
{154, 156},
},
{
{158, 156},
{155, 157},
},
{
{159, 157},
{156, 158},
},
{
{160, 158},
{157, 159},
},
{
{161, 159},
{158, 160},
},
{
{162, 160},
{159, 161},
},
{
{163, 161},
{160, 162},
},
{
{164, 162},
{161, 163},
},
{
{165, 163},
{162, 164},
},
{
{166, 164},
{163, 165},
},
{
{167, 165},
{164, 166},
},
{
{168, 166},
{165, 167},
},
{
{169, 167},
{166, 168},
},
{
{170, 168},
{167, 169},
},
{
{171, 169},
{168, 170},
},
{
{172, 170},
{169, 171},
},
{
{173, 171},
{170, 172},
},
{
{174, 172},
{171, 173},
},
{
{175, 173},
{172, 174},
},
{
{176, 174},
{173, 175},
},
{
{177, 175},
{174, 176},
},
{
{178, 176},
{175, 177},
},
{
{179, 177},
{176, 178},
},
{
{180, 178},
{177, 179},
},
{
{181, 179},
{178, 180},
},
{
{182, 180},
{179, 181},
},
{
{183, 181},
{180, 182},
},
{
{184, 182},
{181, 183},
},
{
{185, 183},
{182, 184},
},
{
{186, 184},
{183, 185},
},
{
{187, 185},
{184, 186},
},
{
{188, 186},
{185, 187},
},
{
{189, 187},
{186, 188},
},
{
{190, 188},
{187, 189},
},
{
{191, 189},
{188, 190},
},
{
{192, 190},
{189, 191},
},
{
{193, 191},
{190, 192},
},
{
{194, 192},
{191, 193},
},
{
{195, 193},
{192, 194},
},
{
{196, 194},
{193, 195},
},
{
{197, 195},
{194, 196},
},
{
{198, 196},
{195, 197},
},
{
{199, 197},
{196, 198},
},
{
{200, 198},
{197, 199},
},
{
{201, 199},
{198, 200},
},
{
{202, 200},
{199, 201},
},
{
{203, 201},
{200, 202},
},
{
{204, 202},
{201, 203},
},
{
{205, 203},
{202, 204},
},
{
{206, 204},
{203, 205},
},
{
{207, 205},
{204, 206},
},
{
{208, 206},
{205, 207},
},
{
{209, 207},
{206, 208},
},
{
{210, 208},
{207, 209},
},
{
{211, 209},
{208, 210},
},
{
{212, 210},
{209, 211},
},
{
{213, 211},
{210, 212},
},
{
{214, 212},
{211, 213},
},
{
{215, 213},
{212, 214},
},
{
{216, 214},
{213, 215},
},
{
{217, 215},
{214, 216},
},
{
{218, 216},
{215, 217},
},
{
{219, 217},
{216, 218},
},
{
{220, 218},
{217, 219},
},
{
{221, 219},
{218, 220},
},
{
{222, 220},
{219, 221},
},
{
{223, 221},
{220, 222},
},
{
{224, 222},
{221, 223},
},
{
{225, 223},
{222, 224},
},
{
{226, 224},
{223, 225},
},
{
{227, 225},
{224, 226},
},
{
{228, 226},
{225, 227},
},
{
{229, 227},
{226, 228},
},
{
{230, 228},
{227, 229},
},
{
{231, 229},
{228, 230},
},
{
{232, 230},
{229, 231},
},
{
{233, 231},
{230, 232},
},
{
{234, 232},
{231, 233},
},
{
{235, 233},
{232, 234},
},
{
{236, 234},
{233, 235},
},
{
{237, 235},
{234, 236},
},
{
{238, 236},
{235, 237},
},
{
{239, 237},
{236, 238},
},
{
{240, 238},
{237, 239},
},
{
{241, 239},
{238, 240},
},
{
{242, 240},
{239, 241},
},
{
{243, 241},
{240, 242},
},
{
{244, 242},
{241, 243},
},
{
{245, 243},
{242, 244},
},
{
{246, 244},
{243, 245},
},
{
{247, 245},
{244, 246},
},
{
{248, 246},
{245, 247},
},
{
{249, 247},
{246, 248},
},
{
{250, 248},
{247, 249},
},
{
{251, 249},
{248, 250},
},
{
{252, 250},
{249, 251},
},
{
{253, 251},
{250, 252},
},
{
{254, 252},
{251, 253},
},
{
{255, 253},
{252, 254},
},
{
{255, 254},
{253, 255},
},
{
{255, 255},
{254, 255},
},
};
static const uint8_t dithersub_rb2x2[256][2][2] =
{
{
{0, 0},
{0, 0},
},
{
{0, 0},
{0, 0},
},
{
{0, 0},
{0, 0},
},
{
{0, 0},
{0, 0},
},
{
{8, 4},
{2, 6},
},
{
{9, 5},
{3, 7},
},
{
{10, 6},
{4, 8},
},
{
{11, 7},
{5, 9},
},
{
{12, 8},
{6, 10},
},
{
{13, 9},
{7, 11},
},
{
{14, 10},
{8, 12},
},
{
{15, 11},
{9, 13},
},
{
{16, 12},
{10, 14},
},
{
{17, 13},
{11, 15},
},
{
{18, 14},
{12, 16},
},
{
{19, 15},
{13, 17},
},
{
{20, 16},
{14, 18},
},
{
{21, 17},
{15, 19},
},
{
{22, 18},
{16, 20},
},
{
{23, 19},
{17, 21},
},
{
{24, 20},
{18, 22},
},
{
{25, 21},
{19, 23},
},
{
{26, 22},
{20, 24},
},
{
{27, 23},
{21, 25},
},
{
{28, 24},
{22, 26},
},
{
{29, 25},
{23, 27},
},
{
{30, 26},
{24, 28},
},
{
{31, 27},
{25, 29},
},
{
{32, 28},
{26, 30},
},
{
{33, 29},
{27, 31},
},
{
{34, 30},
{28, 32},
},
{
{35, 31},
{29, 33},
},
{
{36, 32},
{30, 34},
},
{
{37, 33},
{31, 35},
},
{
{38, 34},
{32, 36},
},
{
{39, 35},
{33, 37},
},
{
{40, 36},
{34, 38},
},
{
{41, 37},
{35, 39},
},
{
{42, 38},
{36, 40},
},
{
{43, 39},
{37, 41},
},
{
{44, 40},
{38, 42},
},
{
{45, 41},
{39, 43},
},
{
{46, 42},
{40, 44},
},
{
{47, 43},
{41, 45},
},
{
{48, 44},
{42, 46},
},
{
{49, 45},
{43, 47},
},
{
{50, 46},
{44, 48},
},
{
{51, 47},
{45, 49},
},
{
{52, 48},
{46, 50},
},
{
{53, 49},
{47, 51},
},
{
{54, 50},
{48, 52},
},
{
{55, 51},
{49, 53},
},
{
{56, 52},
{50, 54},
},
{
{57, 53},
{51, 55},
},
{
{58, 54},
{52, 56},
},
{
{59, 55},
{53, 57},
},
{
{60, 56},
{54, 58},
},
{
{61, 57},
{55, 59},
},
{
{62, 58},
{56, 60},
},
{
{63, 59},
{57, 61},
},
{
{64, 60},
{58, 62},
},
{
{65, 61},
{59, 63},
},
{
{66, 62},
{60, 64},
},
{
{67, 63},
{61, 65},
},
{
{68, 64},
{62, 66},
},
{
{69, 65},
{63, 67},
},
{
{70, 66},
{64, 68},
},
{
{71, 67},
{65, 69},
},
{
{72, 68},
{66, 70},
},
{
{73, 69},
{67, 71},
},
{
{74, 70},
{68, 72},
},
{
{75, 71},
{69, 73},
},
{
{76, 72},
{70, 74},
},
{
{77, 73},
{71, 75},
},
{
{78, 74},
{72, 76},
},
{
{79, 75},
{73, 77},
},
{
{80, 76},
{74, 78},
},
{
{81, 77},
{75, 79},
},
{
{82, 78},
{76, 80},
},
{
{83, 79},
{77, 81},
},
{
{84, 80},
{78, 82},
},
{
{85, 81},
{79, 83},
},
{
{86, 82},
{80, 84},
},
{
{87, 83},
{81, 85},
},
{
{88, 84},
{82, 86},
},
{
{89, 85},
{83, 87},
},
{
{90, 86},
{84, 88},
},
{
{91, 87},
{85, 89},
},
{
{92, 88},
{86, 90},
},
{
{93, 89},
{87, 91},
},
{
{94, 90},
{88, 92},
},
{
{95, 91},
{89, 93},
},
{
{96, 92},
{90, 94},
},
{
{97, 93},
{91, 95},
},
{
{98, 94},
{92, 96},
},
{
{99, 95},
{93, 97},
},
{
{100, 96},
{94, 98},
},
{
{101, 97},
{95, 99},
},
{
{102, 98},
{96, 100},
},
{
{103, 99},
{97, 101},
},
{
{104, 100},
{98, 102},
},
{
{105, 101},
{99, 103},
},
{
{106, 102},
{100, 104},
},
{
{107, 103},
{101, 105},
},
{
{108, 104},
{102, 106},
},
{
{109, 105},
{103, 107},
},
{
{110, 106},
{104, 108},
},
{
{111, 107},
{105, 109},
},
{
{112, 108},
{106, 110},
},
{
{113, 109},
{107, 111},
},
{
{114, 110},
{108, 112},
},
{
{115, 111},
{109, 113},
},
{
{116, 112},
{110, 114},
},
{
{117, 113},
{111, 115},
},
{
{118, 114},
{112, 116},
},
{
{119, 115},
{113, 117},
},
{
{120, 116},
{114, 118},
},
{
{121, 117},
{115, 119},
},
{
{122, 118},
{116, 120},
},
{
{123, 119},
{117, 121},
},
{
{124, 120},
{118, 122},
},
{
{125, 121},
{119, 123},
},
{
{126, 122},
{120, 124},
},
{
{127, 123},
{121, 125},
},
{
{128, 124},
{122, 126},
},
{
{129, 125},
{123, 127},
},
{
{130, 126},
{124, 128},
},
{
{131, 127},
{125, 129},
},
{
{132, 128},
{126, 130},
},
{
{133, 129},
{127, 131},
},
{
{134, 130},
{128, 132},
},
{
{135, 131},
{129, 133},
},
{
{136, 132},
{130, 134},
},
{
{137, 133},
{131, 135},
},
{
{138, 134},
{132, 136},
},
{
{139, 135},
{133, 137},
},
{
{140, 136},
{134, 138},
},
{
{141, 137},
{135, 139},
},
{
{142, 138},
{136, 140},
},
{
{143, 139},
{137, 141},
},
{
{144, 140},
{138, 142},
},
{
{145, 141},
{139, 143},
},
{
{146, 142},
{140, 144},
},
{
{147, 143},
{141, 145},
},
{
{148, 144},
{142, 146},
},
{
{149, 145},
{143, 147},
},
{
{150, 146},
{144, 148},
},
{
{151, 147},
{145, 149},
},
{
{152, 148},
{146, 150},
},
{
{153, 149},
{147, 151},
},
{
{154, 150},
{148, 152},
},
{
{155, 151},
{149, 153},
},
{
{156, 152},
{150, 154},
},
{
{157, 153},
{151, 155},
},
{
{158, 154},
{152, 156},
},
{
{159, 155},
{153, 157},
},
{
{160, 156},
{154, 158},
},
{
{161, 157},
{155, 159},
},
{
{162, 158},
{156, 160},
},
{
{163, 159},
{157, 161},
},
{
{164, 160},
{158, 162},
},
{
{165, 161},
{159, 163},
},
{
{166, 162},
{160, 164},
},
{
{167, 163},
{161, 165},
},
{
{168, 164},
{162, 166},
},
{
{169, 165},
{163, 167},
},
{
{170, 166},
{164, 168},
},
{
{171, 167},
{165, 169},
},
{
{172, 168},
{166, 170},
},
{
{173, 169},
{167, 171},
},
{
{174, 170},
{168, 172},
},
{
{175, 171},
{169, 173},
},
{
{176, 172},
{170, 174},
},
{
{177, 173},
{171, 175},
},
{
{178, 174},
{172, 176},
},
{
{179, 175},
{173, 177},
},
{
{180, 176},
{174, 178},
},
{
{181, 177},
{175, 179},
},
{
{182, 178},
{176, 180},
},
{
{183, 179},
{177, 181},
},
{
{184, 180},
{178, 182},
},
{
{185, 181},
{179, 183},
},
{
{186, 182},
{180, 184},
},
{
{187, 183},
{181, 185},
},
{
{188, 184},
{182, 186},
},
{
{189, 185},
{183, 187},
},
{
{190, 186},
{184, 188},
},
{
{191, 187},
{185, 189},
},
{
{192, 188},
{186, 190},
},
{
{193, 189},
{187, 191},
},
{
{194, 190},
{188, 192},
},
{
{195, 191},
{189, 193},
},
{
{196, 192},
{190, 194},
},
{
{197, 193},
{191, 195},
},
{
{198, 194},
{192, 196},
},
{
{199, 195},
{193, 197},
},
{
{200, 196},
{194, 198},
},
{
{201, 197},
{195, 199},
},
{
{202, 198},
{196, 200},
},
{
{203, 199},
{197, 201},
},
{
{204, 200},
{198, 202},
},
{
{205, 201},
{199, 203},
},
{
{206, 202},
{200, 204},
},
{
{207, 203},
{201, 205},
},
{
{208, 204},
{202, 206},
},
{
{209, 205},
{203, 207},
},
{
{210, 206},
{204, 208},
},
{
{211, 207},
{205, 209},
},
{
{212, 208},
{206, 210},
},
{
{213, 209},
{207, 211},
},
{
{214, 210},
{208, 212},
},
{
{215, 211},
{209, 213},
},
{
{216, 212},
{210, 214},
},
{
{217, 213},
{211, 215},
},
{
{218, 214},
{212, 216},
},
{
{219, 215},
{213, 217},
},
{
{220, 216},
{214, 218},
},
{
{221, 217},
{215, 219},
},
{
{222, 218},
{216, 220},
},
{
{223, 219},
{217, 221},
},
{
{224, 220},
{218, 222},
},
{
{225, 221},
{219, 223},
},
{
{226, 222},
{220, 224},
},
{
{227, 223},
{221, 225},
},
{
{228, 224},
{222, 226},
},
{
{229, 225},
{223, 227},
},
{
{230, 226},
{224, 228},
},
{
{231, 227},
{225, 229},
},
{
{232, 228},
{226, 230},
},
{
{233, 229},
{227, 231},
},
{
{234, 230},
{228, 232},
},
{
{235, 231},
{229, 233},
},
{
{236, 232},
{230, 234},
},
{
{237, 233},
{231, 235},
},
{
{238, 234},
{232, 236},
},
{
{239, 235},
{233, 237},
},
{
{240, 236},
{234, 238},
},
{
{241, 237},
{235, 239},
},
{
{242, 238},
{236, 240},
},
{
{243, 239},
{237, 241},
},
{
{244, 240},
{238, 242},
},
{
{245, 241},
{239, 243},
},
{
{246, 242},
{240, 244},
},
{
{247, 243},
{241, 245},
},
{
{248, 244},
{242, 246},
},
{
{249, 245},
{243, 247},
},
{
{250, 246},
{244, 248},
},
{
{251, 247},
{245, 249},
},
{
{252, 248},
{246, 250},
},
{
{253, 249},
{247, 251},
},
{
{254, 250},
{248, 252},
},
{
{255, 251},
{249, 253},
},
{
{255, 252},
{250, 254},
},
{
{255, 253},
{251, 255},
},
{
{255, 254},
{252, 255},
},
{
{255, 255},
{253, 255},
},
};
#endif /* VIDEO_VOODOO_DITHER_H*/