Mercurial > libavcodec.hg
annotate a64enc.h @ 12510:ef2f2db5b7be libavcodec
Unroll loop in h264_idct_add8_sse2(). This means we can inline scan8[] in the
code directly also and remove loop setup. 20% faster in function, 0.8% overall.
See "[PATCH] unroll loop in h264_idct_add8_sse2()" thread on ML.
| author | rbultje |
|---|---|
| date | Fri, 24 Sep 2010 14:05:45 +0000 |
| parents | 7cf900245fce |
| children |
| rev | line source |
|---|---|
|
12401
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
1 /* |
|
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
2 * a64 video encoder - basic headers |
|
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
3 * Copyright (c) 2009 Tobias Bindhammer |
|
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
4 * |
|
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
5 * This file is part of FFmpeg. |
|
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
6 * |
|
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
7 * FFmpeg is free software; you can redistribute it and/or |
|
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
8 * modify it under the terms of the GNU Lesser General Public |
|
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
9 * License as published by the Free Software Foundation; either |
|
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
10 * version 2.1 of the License, or (at your option) any later version. |
|
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
11 * |
|
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
12 * FFmpeg is distributed in the hope that it will be useful, |
|
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
15 * Lesser General Public License for more details. |
|
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
16 * |
|
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
17 * You should have received a copy of the GNU Lesser General Public |
|
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
18 * License along with FFmpeg; if not, write to the Free Software |
|
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
|
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
20 */ |
|
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
21 |
|
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
22 /** |
|
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
23 * @file |
|
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
24 * a64 video encoder - basic headers |
|
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
25 */ |
|
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
26 |
|
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
27 #ifndef AVCODEC_A64ENC_H |
|
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
28 #define AVCODEC_A64ENC_H |
|
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
29 |
|
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
30 #include "libavutil/lfg.h" |
|
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
31 #include "avcodec.h" |
|
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
32 |
|
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
33 #define C64XRES 320 |
|
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
34 #define C64YRES 200 |
|
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
35 |
|
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
36 typedef struct A64Context { |
|
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
37 /* general variables */ |
|
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
38 AVFrame picture; |
|
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
39 |
|
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
40 /* variables for multicolor modes */ |
|
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
41 AVLFG randctx; |
|
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
42 int mc_lifetime; |
|
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
43 int mc_use_5col; |
|
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
44 int mc_frame_counter; |
|
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
45 int *mc_meta_charset; |
|
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
46 int *mc_charmap; |
|
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
47 int *mc_best_cb; |
|
12409
91db982aaaad
fixed some return values and deprecated CODEC_TYPE_VIDEO.
bindhammer
parents:
12401
diff
changeset
|
48 int mc_luma_vals[5]; |
|
12410
7cf900245fce
added interlacing option and compression option for colorram (lut)
bindhammer
parents:
12409
diff
changeset
|
49 uint8_t *mc_charset; |
|
7cf900245fce
added interlacing option and compression option for colorram (lut)
bindhammer
parents:
12409
diff
changeset
|
50 uint8_t *mc_colram; |
|
12401
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
51 } A64Context; |
|
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
52 |
|
f25a00f68cfa
Initial version of the a64 (multicolor charset) codec
bindhammer
parents:
diff
changeset
|
53 #endif /* AVCODEC_A64ENC_H */ |
