digiKam
transform.h
Go to the documentation of this file.
1 /*
2  * H.265 video codec.
3  * Copyright (c) 2013-2014 struktur AG, Dirk Farin <farin@struktur.de>
4  *
5  * This file is part of libde265.
6  *
7  * libde265 is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU Lesser General Public License as
9  * published by the Free Software Foundation, either version 3 of
10  * the License, or (at your option) any later version.
11  *
12  * libde265 is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public License
18  * along with libde265. If not, see <http://www.gnu.org/licenses/>.
19  */
20 
21 #ifndef DE265_TRANSFORM_H
22 #define DE265_TRANSFORM_H
23 
24 #include "libde265/de265.h"
25 #include "libde265/decctx.h"
26 
27 extern const int tab8_22[];
28 
29 LIBDE265_INLINE static int table8_22(int qPi)
30 {
31  if (qPi<30) return qPi;
32  if (qPi>=43) return qPi-6;
33  return tab8_22[qPi-30];
34 }
35 
36 // (8.6.1)
38  int xCUBase, int yCUBase);
39 
40 // (8.6.2)
42  int xT,int yT, // position of TU in frame (chroma adapted)
43  int x0,int y0, // position of CU in frame (chroma adapted)
44  int nT, int cIdx,
45  bool transform_skip_flag, bool intra, int rdpcmMode);
46 
47 
49  uint8_t* dst, int dstStride, int16_t* coeff,
50  int log2TbSize, int trType);
51 
53  int16_t* coeff, int coeffStride, int log2TbSize, int trType,
54  const int16_t* src, int srcStride);
55 
56 void quant_coefficients(int16_t* out_coeff,
57  const int16_t* in_coeff,
58  int log2TrSize, int qp,
59  bool intra);
60 
61 void dequant_coefficients(int16_t* out_coeff,
62  const int16_t* in_coeff,
63  int log2TrSize, int qP);
64 
65 #endif
Definition: decctx.h:54
#define LIBDE265_INLINE
Definition: de265.h:66
Definition: acceleration.h:30
void fwd_transform(acceleration_functions *acceleration, int16_t *coeff, int coeffStride, int log2TbSize, int trType, const int16_t *src, int srcStride)
void quant_coefficients(int16_t *out_coeff, const int16_t *in_coeff, int log2TrSize, int qp, bool intra)
void dequant_coefficients(int16_t *out_coeff, const int16_t *in_coeff, int log2TrSize, int qP)
void decode_quantization_parameters(thread_context *tctx, int xC, int yC, int xCUBase, int yCUBase)
void inv_transform(acceleration_functions *acceleration, uint8_t *dst, int dstStride, int16_t *coeff, int log2TbSize, int trType)
const int tab8_22[]
void scale_coefficients(thread_context *tctx, int xT, int yT, int x0, int y0, int nT, int cIdx, bool transform_skip_flag, bool intra, int rdpcmMode)