FFmpeg
libavcodec
vc2enc_dwt.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2016 Open Broadcast Systems Ltd.
3
* Author 2016 Rostislav Pehlivanov <atomnuker@gmail.com>
4
*
5
* This file is part of FFmpeg.
6
*
7
* FFmpeg is free software; you can redistribute it and/or
8
* modify it under the terms of the GNU Lesser General Public
9
* License as published by the Free Software Foundation; either
10
* version 2.1 of the License, or (at your option) any later version.
11
*
12
* FFmpeg 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 GNU
15
* Lesser General Public License for more details.
16
*
17
* You should have received a copy of the GNU Lesser General Public
18
* License along with FFmpeg; if not, write to the Free Software
19
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
*/
21
22
#ifndef AVCODEC_VC2ENC_DWT_H
23
#define AVCODEC_VC2ENC_DWT_H
24
25
#include <stddef.h>
26
#include <stdint.h>
27
28
typedef
int32_t
dwtcoef
;
29
30
enum
VC2TransformType
{
31
VC2_TRANSFORM_9_7
= 0,
/* Deslauriers-Dubuc (9,7) */
32
VC2_TRANSFORM_5_3
= 1,
/* LeGall (5,3) */
33
VC2_TRANSFORM_13_7
= 2,
/* Deslauriers-Dubuc (13,7) */
34
VC2_TRANSFORM_HAAR
= 3,
/* Haar without shift */
35
VC2_TRANSFORM_HAAR_S
= 4,
/* Haar with 1 shift/lvl */
36
VC2_TRANSFORM_FIDEL
= 5,
/* Fidelity filter */
37
VC2_TRANSFORM_9_7_I
= 6,
/* Daubechies (9,7) */
38
39
VC2_TRANSFORMS_NB
40
};
41
42
typedef
struct
VC2TransformContext
{
43
dwtcoef
*
buffer
;
44
int
padding
;
45
void (*
vc2_subband_dwt
[
VC2_TRANSFORMS_NB
])(
struct
VC2TransformContext
*t,
46
dwtcoef
*
data
, ptrdiff_t
stride
,
47
int
width
,
int
height
);
48
}
VC2TransformContext
;
49
50
int
ff_vc2enc_init_transforms
(
VC2TransformContext
*t,
int
p_stride,
int
p_height,
51
int
slice_w,
int
slice_h);
52
void
ff_vc2enc_free_transforms
(
VC2TransformContext
*t);
53
54
#endif
/* AVCODEC_VC2ENC_DWT_H */
VC2TransformContext::padding
int padding
Definition:
vc2enc_dwt.h:44
stride
int stride
Definition:
mace.c:144
VC2_TRANSFORM_9_7
@ VC2_TRANSFORM_9_7
Definition:
vc2enc_dwt.h:31
dwtcoef
int32_t dwtcoef
Definition:
vc2enc_dwt.h:28
data
const char data[16]
Definition:
mxf.c:143
VC2TransformContext::vc2_subband_dwt
void(* vc2_subband_dwt[VC2_TRANSFORMS_NB])(struct VC2TransformContext *t, dwtcoef *data, ptrdiff_t stride, int width, int height)
Definition:
vc2enc_dwt.h:45
VC2_TRANSFORMS_NB
@ VC2_TRANSFORMS_NB
Definition:
vc2enc_dwt.h:39
VC2_TRANSFORM_13_7
@ VC2_TRANSFORM_13_7
Definition:
vc2enc_dwt.h:33
width
#define width
ff_vc2enc_init_transforms
int ff_vc2enc_init_transforms(VC2TransformContext *t, int p_stride, int p_height, int slice_w, int slice_h)
Definition:
vc2enc_dwt.c:258
VC2_TRANSFORM_FIDEL
@ VC2_TRANSFORM_FIDEL
Definition:
vc2enc_dwt.h:36
VC2TransformContext
Definition:
vc2enc_dwt.h:42
VC2TransformType
VC2TransformType
Definition:
vc2enc_dwt.h:30
height
#define height
VC2TransformContext::buffer
dwtcoef * buffer
Definition:
vc2enc_dwt.h:43
ff_vc2enc_free_transforms
void ff_vc2enc_free_transforms(VC2TransformContext *t)
Definition:
vc2enc_dwt.c:277
VC2_TRANSFORM_HAAR
@ VC2_TRANSFORM_HAAR
Definition:
vc2enc_dwt.h:34
int32_t
int32_t
Definition:
audioconvert.c:56
VC2_TRANSFORM_HAAR_S
@ VC2_TRANSFORM_HAAR_S
Definition:
vc2enc_dwt.h:35
VC2_TRANSFORM_5_3
@ VC2_TRANSFORM_5_3
Definition:
vc2enc_dwt.h:32
VC2_TRANSFORM_9_7_I
@ VC2_TRANSFORM_9_7_I
Definition:
vc2enc_dwt.h:37
Generated on Wed Aug 24 2022 21:37:58 for FFmpeg by
1.8.17