OpenJPH: /build/openjph/src/OpenJPH/src/core/coding/ojph_block_encoder.h Source File

OpenJPH Open-source implementation of JPEG2000 Part-15

Loading...
Searching...
No Matches
ojph_block_encoder.h
Go to the documentation of this file.
1//***************************************************************************/
2// This software is released under the 2-Clause BSD license, included
3// below.
4//
5// Copyright (c) 2019, Aous Naman
6// Copyright (c) 2019, Kakadu Software Pty Ltd, Australia
7// Copyright (c) 2019, The University of New South Wales, Australia
8//
9// Redistribution and use in source and binary forms, with or without
10// modification, are permitted provided that the following conditions are
11// met:
12//
13// 1. Redistributions of source code must retain the above copyright
14// notice, this list of conditions and the following disclaimer.
15//
16// 2. Redistributions in binary form must reproduce the above copyright
17// notice, this list of conditions and the following disclaimer in the
18// documentation and/or other materials provided with the distribution.
19//
20// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
21// IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
22// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
23// PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24// HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
26// TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
27// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
28// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
29// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
30// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31//***************************************************************************/
32// This file is part of the OpenJPH software implementation.
33// File: ojph_block_encoder.h
34// Author: Aous Naman
35// Date: 17 September 2019
36//***************************************************************************/
37
38
39#ifndef OJPH_BLOCK_ENCODER_H
40#define OJPH_BLOCK_ENCODER_H
41
42#include "ojph_defs.h"
43
44namespace ojph {
45
47 // defined elsewhere
48 class mem_elastic_allocator;
49 struct coded_lists;
50
51 namespace local {
52
54 void
55 ojph_encode_codeblock32(ui32* buf, ui32 missing_msbs, ui32 num_passes,
56 ui32 width, ui32 height, ui32 stride,
57 ui32* lengths,
58 ojph::mem_elastic_allocator *elastic,
59 ojph::coded_lists *& coded);
60
61 void
62 ojph_encode_codeblock64(ui64* buf, ui32 missing_msbs, ui32 num_passes,
63 ui32 width, ui32 height, ui32 stride,
64 ui32* lengths,
65 ojph::mem_elastic_allocator *elastic,
66 ojph::coded_lists *& coded);
67
68 void
69 ojph_encode_codeblock_avx2(ui32* buf, ui32 missing_msbs,
70 ui32 num_passes, ui32 width, ui32 height,
71 ui32 stride, ui32* lengths,
72 ojph::mem_elastic_allocator* elastic,
73 ojph::coded_lists*& coded);
74
75 void
76 ojph_encode_codeblock_avx512(ui32* buf, ui32 missing_msbs,
77 ui32 num_passes, ui32 width, ui32 height,
78 ui32 stride, ui32* lengths,
79 ojph::mem_elastic_allocator *elastic,
80 ojph::coded_lists *& coded);
81
82 bool initialize_block_encoder_tables();
83 bool initialize_block_encoder_tables_avx2();
84 bool initialize_block_encoder_tables_avx512();
85 }
86}
87
88#endif // !OJPH_BLOCK_ENCODER_H
ojph::mem_elastic_allocator
Definition ojph_mem.h:217
ojph::local
Definition ojph_bitbuffer_read.h:52
ojph::local::initialize_block_encoder_tables_avx512
bool initialize_block_encoder_tables_avx512()
ojph::local::ojph_encode_codeblock32
void ojph_encode_codeblock32(ui32 *buf, ui32 missing_msbs, ui32 num_passes, ui32 width, ui32 height, ui32 stride, ui32 *lengths, ojph::mem_elastic_allocator *elastic, ojph::coded_lists *&coded)
Definition ojph_block_encoder.cpp:542
ojph::local::ojph_encode_codeblock64
void ojph_encode_codeblock64(ui64 *buf, ui32 missing_msbs, ui32 num_passes, ui32 width, ui32 height, ui32 stride, ui32 *lengths, ojph::mem_elastic_allocator *elastic, ojph::coded_lists *&coded)
Definition ojph_block_encoder.cpp:1026
ojph::local::ojph_encode_codeblock_avx2
void ojph_encode_codeblock_avx2(ui32 *buf, ui32 missing_msbs, ui32 num_passes, ui32 width, ui32 height, ui32 stride, ui32 *lengths, ojph::mem_elastic_allocator *elastic, ojph::coded_lists *&coded)
ojph::local::initialize_block_encoder_tables
bool initialize_block_encoder_tables()
Definition ojph_block_encoder.cpp:260
ojph::local::initialize_block_encoder_tables_avx2
bool initialize_block_encoder_tables_avx2()
ojph::local::ojph_encode_codeblock_avx512
void ojph_encode_codeblock_avx512(ui32 *buf, ui32 missing_msbs, ui32 num_passes, ui32 width, ui32 height, ui32 stride, ui32 *lengths, ojph::mem_elastic_allocator *elastic, ojph::coded_lists *&coded)
ojph
Definition ojph_img_io.h:52
ojph::ui64
uint64_t ui64
Definition ojph_defs.h:56
ojph::ui32
uint32_t ui32
Definition ojph_defs.h:54
ojph_defs.h
ojph::coded_lists
Definition ojph_mem.h:201