diff options
Diffstat (limited to 'ffmpeg/libavcodec/xface.h')
| -rw-r--r-- | ffmpeg/libavcodec/xface.h | 95 |
1 files changed, 0 insertions, 95 deletions
diff --git a/ffmpeg/libavcodec/xface.h b/ffmpeg/libavcodec/xface.h deleted file mode 100644 index cd59ba0..0000000 --- a/ffmpeg/libavcodec/xface.h +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Copyright (c) 1990 James Ashton - Sydney University - * Copyright (c) 2012 Stefano Sabatini - * - * This file is part of FFmpeg. - * - * FFmpeg is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * FFmpeg is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with FFmpeg; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -/** - * @file - * X-Face common definitions. - */ - -#include <stdint.h> - -/* define the face size - 48x48x1 */ -#define XFACE_WIDTH 48 -#define XFACE_HEIGHT 48 -#define XFACE_PIXELS (XFACE_WIDTH * XFACE_HEIGHT) - -/* compressed output uses the full range of printable characters. - * In ASCII these are in a contiguous block so we just need to know - * the first and last. The total number of printables is needed too. */ -#define XFACE_FIRST_PRINT '!' -#define XFACE_LAST_PRINT '~' -#define XFACE_PRINTS (XFACE_LAST_PRINT - XFACE_FIRST_PRINT + 1) - -/* - * Image is encoded as a big integer, using characters from '~' to - * '!', for a total of 92 symbols. In order to express 48x48=2304 - * bits, we need a total of 354 digits, as given by: - * ceil(lg_92(2^2304)) = 354 - */ -#define XFACE_MAX_DIGITS 354 - -#define XFACE_BITSPERWORD 8 -#define XFACE_WORDCARRY (1 << XFACE_BITSPERWORD) -#define XFACE_WORDMASK (XFACE_WORDCARRY - 1) - -#define XFACE_MAX_WORDS ((XFACE_PIXELS * 2 + XFACE_BITSPERWORD - 1) / XFACE_BITSPERWORD) - -/* Portable, very large unsigned integer arithmetic is needed. - * Implementation uses arrays of WORDs. */ -typedef struct { - int nb_words; - uint8_t words[XFACE_MAX_WORDS]; -} BigInt; - -/** - * Add a to b storing the result in b. - */ -void ff_big_add(BigInt *b, uint8_t a); - -/** - * Divide b by a storing the result in b and the remainder in the word - * pointed to by r. - */ -void ff_big_div(BigInt *b, uint8_t a, uint8_t *r); - -/** - * Multiply a by b storing the result in b. - */ -void ff_big_mul(BigInt *b, uint8_t a); - -/* Each face is encoded using 9 octrees of 16x16 each. Each level of the - * trees has varying probabilities of being white, grey or black. - * The table below is based on sampling many faces */ -enum XFaceColor { XFACE_COLOR_BLACK = 0, XFACE_COLOR_GREY, XFACE_COLOR_WHITE }; - -/* Data of varying probabilities are encoded by a value in the range 0 - 255. - * The probability of the data determines the range of possible encodings. - * Offset gives the first possible encoding of the range. */ -typedef struct { - int range; - int offset; -} ProbRange; - -extern const ProbRange ff_xface_probranges_per_level[4][3]; - -extern const ProbRange ff_xface_probranges_2x2[16]; - -void ff_xface_generate_face(uint8_t *dst, uint8_t * const src); |
