#include "luvcview/utils.h"#include "luvcview/color.h"#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <linux/types.h>#include <string.h>#include <fcntl.h>#include <wait.h>#include <time.h>#include <limits.h>#include "luvcview/huffman.h"
Go to the source code of this file.
Classes | |
| struct | comp |
| struct | dec_hufftbl |
| union | hufftblp |
| struct | in |
| struct | jpeg_decdata |
| struct | jpginfo |
| struct | scan |
Defines | |
| #define | __P(x) x |
| #define | C22 ((PREC)IFIX(2 * 0.923879532)) |
| #define | dec_huffac (dhuff + 2) |
| #define | dec_huffdc (dhuff + 0) |
| #define | DEC_REC(in, hu, r, i) |
| #define | DECBITS 10 /* seems to be the optimum */ |
| #define | FOUR_TWO_TWO 2 |
| #define | GETBITS(in, n) |
| #define | IC4 ((PREC)IFIX(1 / 0.707106781)) |
| #define | IFIX(a) ((int)((a) * (1 << ISHIFT) + .5)) |
| #define | IMULT(a, b) (((a) * (b)) >> ISHIFT) |
| #define | ISHIFT 11 |
| #define | ITOINT(a) ((a) >> ISHIFT) |
| #define | LEBI_DCL int le, bi |
| #define | LEBI_GET(in) (le = in->left, bi = in->bits) |
| #define | LEBI_PUT(in) (in->left = le, in->bits = bi) |
| #define | M_APP0 0xe0 |
| #define | M_BADHUFF -1 |
| #define | M_COM 0xfe |
| #define | M_DHT 0xc4 |
| #define | M_DQT 0xdb |
| #define | M_DRI 0xdd |
| #define | M_EOF 0x80 |
| #define | M_EOI 0xd9 |
| #define | M_RST0 0xd0 |
| #define | M_SOF0 0xc0 |
| #define | M_SOI 0xd8 |
| #define | M_SOS 0xda |
| #define | MAXCOMP 4 |
| #define | PREC int |
| #define | S22 ((PREC)IFIX(2 * 0.382683432)) |
| #define | UNGETBITS(in, n) |
Typedefs | |
| typedef void(* | ftopict )(int *out, unsigned char *pic, int width) |
Functions | |
| static void decode_mcus | __P ((struct in *, int *, int, struct scan *, int *)) |
| static int dec_readmarker | __P ((struct in *)) |
| static void dec_makehuff | __P ((struct dec_hufftbl *, int *, unsigned char *)) |
| static void setinput | __P ((struct in *, unsigned char *)) |
| static void idctqtab | __P ((unsigned char *, PREC *)) |
| static int fillbits | __P ((struct in *, int, unsigned int)) |
| static int dec_rec2 | __P ((struct in *, struct dec_hufftbl *, int *, int, int)) |
| static int | dec_checkmarker (void) |
| static void | dec_initscans (void) |
| static void | dec_makehuff (struct dec_hufftbl *hu, int *hufflen, unsigned char *huffvals) |
| static int | dec_readmarker (struct in *in) |
| static int | dec_rec2 (struct in *in, struct dec_hufftbl *hu, int *runp, int c, int i) |
| static void | decode_mcus (struct in *in, int *dct, int n, struct scan *sc, int *maxp) |
| static int | fillbits (struct in *in, int le, unsigned int bi) |
| int | get_picture (unsigned char *buf, int size) |
| int | get_pictureYV2 (unsigned char *buf, int width, int height) |
| static int | getbyte (void) |
| static void | getPictureName (char *Picture, int fmt) |
| static int | getword (void) |
| static int | huffman_init (void) |
| static void | idct (int *in, int *out, int *quant, long off, int max) |
| static void | idctqtab (unsigned char *qin, PREC *qout) |
| int | is_huffman (unsigned char *buf) |
| int | jpeg_decode (unsigned char **pic, unsigned char *buf, int *width, int *height) |
| void | Pyuv422tobgr24 (unsigned char *input_ptr, unsigned char *output_ptr, unsigned int image_width, unsigned int image_height) |
| unsigned int | Pyuv422togray8 (unsigned char *input_ptr, unsigned char *output_ptr, unsigned int image_width, unsigned int image_height) |
| unsigned int | Pyuv422torgb24 (unsigned char *input_ptr, unsigned char *output_ptr, unsigned int image_width, unsigned int image_height) |
| static int | readtables (int till, int *isDHT) |
| static void | setinput (struct in *in, unsigned char *p) |
| static void | yuv400pto422 (int *out, unsigned char *pic, int width) |
| static void | yuv420pto422 (int *out, unsigned char *pic, int width) |
| static void | yuv422pto422 (int *out, unsigned char *pic, int width) |
| static void | yuv444pto422 (int *out, unsigned char *pic, int width) |
Variables | |
| static PREC | aaidct [8] |
| static struct comp | comps [MAXCOMP] |
| static unsigned char * | datap |
| static struct dec_hufftbl | dhuff [4] |
| static struct scan | dscans [MAXCOMP] |
| static struct in | in |
| static struct jpginfo | info |
| static unsigned char | quant [4][64] |
| static unsigned char | zig [64] |
| static unsigned char | zig2 [64] |
| #define dec_huffac (dhuff + 2) |
| #define dec_huffdc (dhuff + 0) |
| #define FOUR_TWO_TWO 2 |
| typedef void(* ftopict)(int *out, unsigned char *pic, int width) |
| static void decode_mcus __P | ( | (struct in *, int *, int, struct scan *, int *) | ) | [static] |
| static int dec_readmarker __P | ( | (struct in *) | ) | [static] |
| static void dec_makehuff __P | ( | (struct dec_hufftbl *, int *, unsigned char *) | ) | [static] |
| static int dec_rec2 __P | ( | (struct in *, struct dec_hufftbl *, int *, int, int) | ) | [static] |
| static int dec_checkmarker | ( | void | ) | [static] |
| static void dec_initscans | ( | void | ) | [static] |
| static void dec_makehuff | ( | struct dec_hufftbl * | hu, |
| int * | hufflen, | ||
| unsigned char * | huffvals | ||
| ) | [static] |
| static int dec_readmarker | ( | struct in * | in | ) | [static] |
| static int dec_rec2 | ( | struct in * | in, |
| struct dec_hufftbl * | hu, | ||
| int * | runp, | ||
| int | c, | ||
| int | i | ||
| ) | [static] |
| static void decode_mcus | ( | struct in * | in, |
| int * | dct, | ||
| int | n, | ||
| struct scan * | sc, | ||
| int * | maxp | ||
| ) | [static] |
| int get_picture | ( | unsigned char * | buf, |
| int | size | ||
| ) |
| int get_pictureYV2 | ( | unsigned char * | buf, |
| int | width, | ||
| int | height | ||
| ) |
| static void getPictureName | ( | char * | Picture, |
| int | fmt | ||
| ) | [static] |
| static int huffman_init | ( | void | ) | [static] |
| static void idct | ( | int * | in, |
| int * | out, | ||
| int * | quant, | ||
| long | off, | ||
| int | max | ||
| ) | [inline, static] |
| int is_huffman | ( | unsigned char * | buf | ) |
| int jpeg_decode | ( | unsigned char ** | pic, |
| unsigned char * | buf, | ||
| int * | width, | ||
| int * | height | ||
| ) |
| void Pyuv422tobgr24 | ( | unsigned char * | input_ptr, |
| unsigned char * | output_ptr, | ||
| unsigned int | image_width, | ||
| unsigned int | image_height | ||
| ) |
| unsigned int Pyuv422togray8 | ( | unsigned char * | input_ptr, |
| unsigned char * | output_ptr, | ||
| unsigned int | image_width, | ||
| unsigned int | image_height | ||
| ) |
| unsigned int Pyuv422torgb24 | ( | unsigned char * | input_ptr, |
| unsigned char * | output_ptr, | ||
| unsigned int | image_width, | ||
| unsigned int | image_height | ||
| ) |
| static int readtables | ( | int | till, |
| int * | isDHT | ||
| ) | [static] |
| static void yuv400pto422 | ( | int * | out, |
| unsigned char * | pic, | ||
| int | width | ||
| ) | [static] |
| static void yuv420pto422 | ( | int * | out, |
| unsigned char * | pic, | ||
| int | width | ||
| ) | [static] |
| static void yuv422pto422 | ( | int * | out, |
| unsigned char * | pic, | ||
| int | width | ||
| ) | [static] |
| static void yuv444pto422 | ( | int * | out, |
| unsigned char * | pic, | ||
| int | width | ||
| ) | [static] |
struct dec_hufftbl dhuff[4] [static] |
unsigned char zig[64] [static] |
{
0, 1, 5, 6, 14, 15, 27, 28,
2, 4, 7, 13, 16, 26, 29, 42,
3, 8, 12, 17, 25, 30, 41, 43,
9, 11, 18, 24, 31, 40, 44, 53,
10, 19, 23, 32, 39, 45, 52, 54,
20, 22, 33, 38, 46, 51, 55, 60,
21, 34, 37, 47, 50, 56, 59, 61,
35, 36, 48, 49, 57, 58, 62, 63
}
unsigned char zig2[64] [static] |
{
0, 2, 3, 9, 10, 20, 21, 35,
14, 16, 25, 31, 39, 46, 50, 57,
5, 7, 12, 18, 23, 33, 37, 48,
27, 29, 41, 44, 52, 55, 59, 62,
15, 26, 30, 40, 45, 51, 56, 58,
1, 4, 8, 11, 19, 22, 34, 36,
28, 42, 43, 53, 54, 60, 61, 63,
6, 13, 17, 24, 32, 38, 47, 49
}