/src/libvpx/vp8/common/invtrans.h
Line | Count | Source |
1 | | /* |
2 | | * Copyright (c) 2010 The WebM project authors. All Rights Reserved. |
3 | | * |
4 | | * Use of this source code is governed by a BSD-style license |
5 | | * that can be found in the LICENSE file in the root of the source |
6 | | * tree. An additional intellectual property rights grant can be found |
7 | | * in the file PATENTS. All contributing project authors may |
8 | | * be found in the AUTHORS file in the root of the source tree. |
9 | | */ |
10 | | |
11 | | #ifndef VPX_VP8_COMMON_INVTRANS_H_ |
12 | | #define VPX_VP8_COMMON_INVTRANS_H_ |
13 | | |
14 | | #include "./vpx_config.h" |
15 | | #include "vp8_rtcd.h" |
16 | | #include "blockd.h" |
17 | | #include "onyxc_int.h" |
18 | | |
19 | | #if CONFIG_MULTITHREAD |
20 | | #include "vpx_mem/vpx_mem.h" |
21 | | #endif |
22 | | |
23 | | #ifdef __cplusplus |
24 | | extern "C" { |
25 | | #endif |
26 | | |
27 | 1.25M | static void eob_adjust(char *eobs, short *diff) { |
28 | | /* eob adjust.... the idct can only skip if both the dc and eob are zero */ |
29 | 1.25M | int js; |
30 | 21.2M | for (js = 0; js < 16; ++js) { |
31 | 20.0M | if ((eobs[js] == 0) && (diff[0] != 0)) eobs[js]++; |
32 | 20.0M | diff += 16; |
33 | 20.0M | } |
34 | 1.25M | } Line | Count | Source | 27 | 1.25M | static void eob_adjust(char *eobs, short *diff) { | 28 | | /* eob adjust.... the idct can only skip if both the dc and eob are zero */ | 29 | 1.25M | int js; | 30 | 21.2M | for (js = 0; js < 16; ++js) { | 31 | 20.0M | if ((eobs[js] == 0) && (diff[0] != 0)) eobs[js]++; | 32 | 20.0M | diff += 16; | 33 | 20.0M | } | 34 | 1.25M | } |
Unexecuted instantiation: encodeintra.c:eob_adjust Unexecuted instantiation: encodemb.c:eob_adjust |
35 | | |
36 | 1.36M | static INLINE void vp8_inverse_transform_mby(MACROBLOCKD *xd) { |
37 | 1.36M | short *DQC = xd->dequant_y1; |
38 | | |
39 | 1.36M | if (xd->mode_info_context->mbmi.mode != SPLITMV) { |
40 | | /* do 2nd order transform on the dc block */ |
41 | 1.25M | if (xd->eobs[24] > 1) { |
42 | 447k | vp8_short_inv_walsh4x4(&xd->block[24].dqcoeff[0], xd->qcoeff); |
43 | 804k | } else { |
44 | 804k | vp8_short_inv_walsh4x4_1(&xd->block[24].dqcoeff[0], xd->qcoeff); |
45 | 804k | } |
46 | 1.25M | eob_adjust(xd->eobs, xd->qcoeff); |
47 | | |
48 | 1.25M | DQC = xd->dequant_y1_dc; |
49 | 1.25M | } |
50 | 1.36M | vp8_dequant_idct_add_y_block(xd->qcoeff, DQC, xd->dst.y_buffer, |
51 | 1.36M | xd->dst.y_stride, xd->eobs); |
52 | 1.36M | } encodeframe.c:vp8_inverse_transform_mby Line | Count | Source | 36 | 1.36M | static INLINE void vp8_inverse_transform_mby(MACROBLOCKD *xd) { | 37 | 1.36M | short *DQC = xd->dequant_y1; | 38 | | | 39 | 1.36M | if (xd->mode_info_context->mbmi.mode != SPLITMV) { | 40 | | /* do 2nd order transform on the dc block */ | 41 | 1.25M | if (xd->eobs[24] > 1) { | 42 | 447k | vp8_short_inv_walsh4x4(&xd->block[24].dqcoeff[0], xd->qcoeff); | 43 | 804k | } else { | 44 | 804k | vp8_short_inv_walsh4x4_1(&xd->block[24].dqcoeff[0], xd->qcoeff); | 45 | 804k | } | 46 | 1.25M | eob_adjust(xd->eobs, xd->qcoeff); | 47 | | | 48 | 1.25M | DQC = xd->dequant_y1_dc; | 49 | 1.25M | } | 50 | 1.36M | vp8_dequant_idct_add_y_block(xd->qcoeff, DQC, xd->dst.y_buffer, | 51 | 1.36M | xd->dst.y_stride, xd->eobs); | 52 | 1.36M | } |
Unexecuted instantiation: encodeintra.c:vp8_inverse_transform_mby Unexecuted instantiation: encodemb.c:vp8_inverse_transform_mby |
53 | | #ifdef __cplusplus |
54 | | } // extern "C" |
55 | | #endif |
56 | | |
57 | | #endif // VPX_VP8_COMMON_INVTRANS_H_ |