Mercurial > libavcodec.hg
annotate bfin/config_bfin.h @ 11352:6e0af2cfdcfe libavcodec
Do MC and IDCT in coding (hilbert) order
This increases the slice size to 64 pixels, due to having to decode an
entire chroma superblock row per slice.
This can be up to 6% slower depending on clip and CPU, but is necessary
for future optimizations that gain significantly more than was lost.
author | conrad |
---|---|
date | Wed, 03 Mar 2010 23:27:40 +0000 |
parents | 8327c5b4df9b |
children |
rev | line source |
---|---|
4765
85298e8c55c4
bfin dsputils, basic pixel operations sads, diffs, motion compensation
diego
parents:
diff
changeset
|
1 /* |
85298e8c55c4
bfin dsputils, basic pixel operations sads, diffs, motion compensation
diego
parents:
diff
changeset
|
2 * Copyright (C) 2007 Marc Hoffman <marc.hoffman@analog.com> |
85298e8c55c4
bfin dsputils, basic pixel operations sads, diffs, motion compensation
diego
parents:
diff
changeset
|
3 * |
85298e8c55c4
bfin dsputils, basic pixel operations sads, diffs, motion compensation
diego
parents:
diff
changeset
|
4 * This file is part of FFmpeg. |
85298e8c55c4
bfin dsputils, basic pixel operations sads, diffs, motion compensation
diego
parents:
diff
changeset
|
5 * |
85298e8c55c4
bfin dsputils, basic pixel operations sads, diffs, motion compensation
diego
parents:
diff
changeset
|
6 * FFmpeg is free software; you can redistribute it and/or |
85298e8c55c4
bfin dsputils, basic pixel operations sads, diffs, motion compensation
diego
parents:
diff
changeset
|
7 * modify it under the terms of the GNU Lesser General Public |
85298e8c55c4
bfin dsputils, basic pixel operations sads, diffs, motion compensation
diego
parents:
diff
changeset
|
8 * License as published by the Free Software Foundation; either |
85298e8c55c4
bfin dsputils, basic pixel operations sads, diffs, motion compensation
diego
parents:
diff
changeset
|
9 * version 2.1 of the License, or (at your option) any later version. |
85298e8c55c4
bfin dsputils, basic pixel operations sads, diffs, motion compensation
diego
parents:
diff
changeset
|
10 * |
85298e8c55c4
bfin dsputils, basic pixel operations sads, diffs, motion compensation
diego
parents:
diff
changeset
|
11 * FFmpeg is distributed in the hope that it will be useful, |
85298e8c55c4
bfin dsputils, basic pixel operations sads, diffs, motion compensation
diego
parents:
diff
changeset
|
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
85298e8c55c4
bfin dsputils, basic pixel operations sads, diffs, motion compensation
diego
parents:
diff
changeset
|
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
85298e8c55c4
bfin dsputils, basic pixel operations sads, diffs, motion compensation
diego
parents:
diff
changeset
|
14 * Lesser General Public License for more details. |
85298e8c55c4
bfin dsputils, basic pixel operations sads, diffs, motion compensation
diego
parents:
diff
changeset
|
15 * |
85298e8c55c4
bfin dsputils, basic pixel operations sads, diffs, motion compensation
diego
parents:
diff
changeset
|
16 * You should have received a copy of the GNU Lesser General Public |
85298e8c55c4
bfin dsputils, basic pixel operations sads, diffs, motion compensation
diego
parents:
diff
changeset
|
17 * License along with FFmpeg; if not, write to the Free Software |
85298e8c55c4
bfin dsputils, basic pixel operations sads, diffs, motion compensation
diego
parents:
diff
changeset
|
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
85298e8c55c4
bfin dsputils, basic pixel operations sads, diffs, motion compensation
diego
parents:
diff
changeset
|
19 */ |
85298e8c55c4
bfin dsputils, basic pixel operations sads, diffs, motion compensation
diego
parents:
diff
changeset
|
20 /* |
85298e8c55c4
bfin dsputils, basic pixel operations sads, diffs, motion compensation
diego
parents:
diff
changeset
|
21 low level assembler interface wrapper |
85298e8c55c4
bfin dsputils, basic pixel operations sads, diffs, motion compensation
diego
parents:
diff
changeset
|
22 |
85298e8c55c4
bfin dsputils, basic pixel operations sads, diffs, motion compensation
diego
parents:
diff
changeset
|
23 DEFUN(put_pixels_clamped,mL1, |
85298e8c55c4
bfin dsputils, basic pixel operations sads, diffs, motion compensation
diego
parents:
diff
changeset
|
24 (DCTELEM *block, uint8_t *dest, int line_size)): |
85298e8c55c4
bfin dsputils, basic pixel operations sads, diffs, motion compensation
diego
parents:
diff
changeset
|
25 |
85298e8c55c4
bfin dsputils, basic pixel operations sads, diffs, motion compensation
diego
parents:
diff
changeset
|
26 body |
85298e8c55c4
bfin dsputils, basic pixel operations sads, diffs, motion compensation
diego
parents:
diff
changeset
|
27 |
85298e8c55c4
bfin dsputils, basic pixel operations sads, diffs, motion compensation
diego
parents:
diff
changeset
|
28 rts; |
85298e8c55c4
bfin dsputils, basic pixel operations sads, diffs, motion compensation
diego
parents:
diff
changeset
|
29 */ |
5828 | 30 |
7760 | 31 #ifndef AVCODEC_BFIN_CONFIG_BFIN_H |
32 #define AVCODEC_BFIN_CONFIG_BFIN_H | |
5828 | 33 |
11063 | 34 #include "config.h" |
35 | |
4765
85298e8c55c4
bfin dsputils, basic pixel operations sads, diffs, motion compensation
diego
parents:
diff
changeset
|
36 #ifndef DEFUN |
85298e8c55c4
bfin dsputils, basic pixel operations sads, diffs, motion compensation
diego
parents:
diff
changeset
|
37 |
6362
78aa57eba353
FLAT objects cannot have multiple sections, so using the L1 attributes breaks
diego
parents:
5828
diff
changeset
|
38 #define mL3 .text |
4765
85298e8c55c4
bfin dsputils, basic pixel operations sads, diffs, motion compensation
diego
parents:
diff
changeset
|
39 #ifndef mL1 |
11063 | 40 #if defined(__FDPIC__) && CONFIG_SRAM |
4765
85298e8c55c4
bfin dsputils, basic pixel operations sads, diffs, motion compensation
diego
parents:
diff
changeset
|
41 #define mL1 .l1.text |
6362
78aa57eba353
FLAT objects cannot have multiple sections, so using the L1 attributes breaks
diego
parents:
5828
diff
changeset
|
42 #else |
78aa57eba353
FLAT objects cannot have multiple sections, so using the L1 attributes breaks
diego
parents:
5828
diff
changeset
|
43 #define mL1 mL3 |
4765
85298e8c55c4
bfin dsputils, basic pixel operations sads, diffs, motion compensation
diego
parents:
diff
changeset
|
44 #endif |
6362
78aa57eba353
FLAT objects cannot have multiple sections, so using the L1 attributes breaks
diego
parents:
5828
diff
changeset
|
45 #endif |
4765
85298e8c55c4
bfin dsputils, basic pixel operations sads, diffs, motion compensation
diego
parents:
diff
changeset
|
46 |
85298e8c55c4
bfin dsputils, basic pixel operations sads, diffs, motion compensation
diego
parents:
diff
changeset
|
47 #define DEFUN(fname,where,interface) \ |
85298e8c55c4
bfin dsputils, basic pixel operations sads, diffs, motion compensation
diego
parents:
diff
changeset
|
48 .section where; \ |
85298e8c55c4
bfin dsputils, basic pixel operations sads, diffs, motion compensation
diego
parents:
diff
changeset
|
49 .global _ff_bfin_ ## fname ; \ |
5001 | 50 .type _ff_bfin_ ## fname, STT_FUNC; \ |
4765
85298e8c55c4
bfin dsputils, basic pixel operations sads, diffs, motion compensation
diego
parents:
diff
changeset
|
51 .align 8; \ |
85298e8c55c4
bfin dsputils, basic pixel operations sads, diffs, motion compensation
diego
parents:
diff
changeset
|
52 _ff_bfin_ ## fname |
85298e8c55c4
bfin dsputils, basic pixel operations sads, diffs, motion compensation
diego
parents:
diff
changeset
|
53 |
5001 | 54 #define DEFUN_END(fname) \ |
55 .size _ff_bfin_ ## fname, . - _ff_bfin_ ## fname | |
56 | |
6362
78aa57eba353
FLAT objects cannot have multiple sections, so using the L1 attributes breaks
diego
parents:
5828
diff
changeset
|
57 #ifdef __FDPIC__ |
78aa57eba353
FLAT objects cannot have multiple sections, so using the L1 attributes breaks
diego
parents:
5828
diff
changeset
|
58 #define RELOC(reg,got,obj) reg = [got + obj@GOT17M4] |
78aa57eba353
FLAT objects cannot have multiple sections, so using the L1 attributes breaks
diego
parents:
5828
diff
changeset
|
59 #else |
78aa57eba353
FLAT objects cannot have multiple sections, so using the L1 attributes breaks
diego
parents:
5828
diff
changeset
|
60 #define RELOC(reg,got,obj) reg.L = obj; reg.H = obj |
78aa57eba353
FLAT objects cannot have multiple sections, so using the L1 attributes breaks
diego
parents:
5828
diff
changeset
|
61 #endif |
5001 | 62 |
4765
85298e8c55c4
bfin dsputils, basic pixel operations sads, diffs, motion compensation
diego
parents:
diff
changeset
|
63 #endif |
85298e8c55c4
bfin dsputils, basic pixel operations sads, diffs, motion compensation
diego
parents:
diff
changeset
|
64 |
7760 | 65 #endif /* AVCODEC_BFIN_CONFIG_BFIN_H */ |