uvgVPCCenc
1.2.0
uvgVPCCenc is an open-source real-time V-PCC encoder library written in C++ from scratch.
Loading...
Searching...
No Matches
src
libuvgvpccenc
bitstreamGeneration
atlas_context.hpp
Go to the documentation of this file.
1
/*****************************************************************************
2
* This file is part of uvgVPCCenc V-PCC encoder.
3
*
4
* Copyright (c) 2024-present, Tampere University, ITU/ISO/IEC, project contributors
5
* All rights reserved.
6
*
7
* Redistribution and use in source and binary forms, with or without modification,
8
* are permitted (subject to the limitations in the disclaimer below) provided that the following conditions are met:
9
*
10
* * Redistributions of source code must retain the above copyright notice, this
11
* list of conditions and the following disclaimer.
12
*
13
* * Redistributions in binary form must reproduce the above copyright notice, this
14
* list of conditions and the following disclaimer in the documentation and/or
15
* other materials provided with the distribution.
16
*
17
* * Neither the name of Tampere University, ITU/ISO/IEC nor the names of its
18
* contributors may be used to endorse or promote products derived from
19
* this software without specific prior written permission.
20
*
21
* NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS LICENSE.
22
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
23
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
24
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
25
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
26
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
27
* INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
28
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION HOWEVER CAUSED AND ON
29
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31
* INCLUDING NEGLIGENCE OR OTHERWISE ARISING IN ANY WAY OUT OF THE USE OF THIS
32
****************************************************************************/
33
34
#pragma once
35
37
38
#include "utils/parameters.hpp"
39
#include "
utils/types.hpp
"
40
#include "
v3cbitstream.hpp
"
41
42
/* Atlas context is used to hold the atlas data (inside V3C_AD unit) of a single GOF */
43
class
atlas_context
:
public
uvgv3cbitstream::AtlasContext
{
44
public
:
45
/* Fill data structures with encoded data from gofUVG and sequence parameters from p_ */
46
void
initialize_atlas_context
(
const
std::shared_ptr<uvgvpcc_enc::GOF>& gofUVG);
47
48
private
:
49
// -------------- Functions to fill data structure values --------------
50
static
uvgv3cbitstream::atlas_sequence_parameter_set
create_atlas_sequence_parameter_set(
const
std::shared_ptr<uvgvpcc_enc::GOF>& gofUVG);
51
uvgv3cbitstream::atlas_frame_parameter_set
create_atlas_frame_parameter_set();
52
uvgv3cbitstream::atlas_frame_tile_information
create_atlas_frame_tile_information()
const
;
53
uvgv3cbitstream::atlas_tile_header
create_atlas_tile_header(
size_t
frameIndex,
size_t
tileIndex)
const
;
54
uvgv3cbitstream::atlas_tile_data_unit
create_atlas_tile_data_unit(
const
std::shared_ptr<uvgvpcc_enc::FrameContext>& frameUVG,
55
uvgv3cbitstream::atlas_tile_header
& ath)
const
;
56
uvgv3cbitstream::atlas_tile_layer_rbsp
create_atlas_tile_layer_rbsp(
size_t
frameIndex,
size_t
tileIndex,
57
const
std::shared_ptr<uvgvpcc_enc::FrameContext>& frameUVG);
58
};
atlas_context
Definition
atlas_context.hpp:43
atlas_context::initialize_atlas_context
void initialize_atlas_context(const std::shared_ptr< uvgvpcc_enc::GOF > &gofUVG)
Definition
atlas_context.cpp:208
uvgv3cbitstream::AtlasContext
Definition
atlas.hpp:163
uvgv3cbitstream::atlas_frame_parameter_set
Definition
atlas.hpp:112
uvgv3cbitstream::atlas_frame_tile_information
Definition
atlas.hpp:91
uvgv3cbitstream::atlas_sequence_parameter_set
Definition
atlas.hpp:127
uvgv3cbitstream::atlas_tile_data_unit
Definition
atlas.hpp:82
uvgv3cbitstream::atlas_tile_header
Definition
atlas.hpp:27
uvgv3cbitstream::atlas_tile_layer_rbsp
Definition
atlas.hpp:86
types.hpp
v3cbitstream.hpp
Generated by
1.9.8