uvgVPCCenc 1.1.0
uvgVPCCenc is an open-source real-time V-PCC encoder library written in C++ from scratch.
Loading...
Searching...
No Matches
fileExport.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 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 the Tampere University or 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 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
22 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
23 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
24 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
25 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
26 * INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
27 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION HOWEVER CAUSED AND ON
28 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 * INCLUDING NEGLIGENCE OR OTHERWISE ARISING IN ANY WAY OUT OF THE USE OF THIS
31 ****************************************************************************/
32
34
35#include <memory>
36#include <vector>
37
38#include "utils/utils.hpp"
39#include "uvgvpcc/uvgvpcc.hpp"
40
41using namespace uvgvpcc_enc;
42
43namespace FileExport {
44
46
47// Patch generation
48void exportPointCloudNormalComputation(const std::shared_ptr<Frame>& frame, const std::vector<Vector3<typeGeometryInput>>& pointsGeometry,
49 std::vector<Vector3<double>>& normals);
50void exportPointCloudNormalOrientation(const std::shared_ptr<Frame>& frame, const std::vector<Vector3<typeGeometryInput>>& pointsGeometry,
51 std::vector<Vector3<double>>& normals);
52void exportPointCloudInitialSegmentation(const std::shared_ptr<Frame>& frame, const std::vector<Vector3<typeGeometryInput>>& pointsGeometry,
53 const std::vector<size_t>& pointsPPIs);
54void exportPointCloudRefineSegmentation(const std::shared_ptr<Frame>& frame, const std::vector<Vector3<typeGeometryInput>>& pointsGeometry,
55 const std::vector<size_t>& pointsPPIs);
56void exportPointCloudPatchSegmentation(const std::shared_ptr<Frame>& frame);
57
58// Map generation
59void exportImageOccupancy(const std::shared_ptr<Frame>& frame);
60void exportImageOccupancyDS(const std::shared_ptr<Frame>& frame);
61void exportImageAttribute(const std::shared_ptr<Frame>& frame);
62void exportImageGeometry(const std::shared_ptr<Frame>& frame);
63void exportImageAttributeBgFill(const std::shared_ptr<Frame>& frame);
64void exportImageGeometryBgFill(const std::shared_ptr<Frame>& frame);
65void exportImageAttributeYUV(const std::shared_ptr<Frame>& frame);
66
67// Map encoding
68void exportOccupancyBitstream(const std::shared_ptr<uvgvpcc_enc::GOF>& gof, const std::vector<uint8_t>& bitstream,
69 const std::string& codecExtension);
70void exportAttributeBitstream(const std::shared_ptr<uvgvpcc_enc::GOF>& gof, const std::vector<uint8_t>& bitstream,
71 const std::string& codecExtension);
72void exportGeometryBitstream(const std::shared_ptr<uvgvpcc_enc::GOF>& gof, const std::vector<uint8_t>& bitstream,
73 const std::string& codecExtension);
74
75} // namespace FileExport
Definition utils.hpp:56
Definition fileExport.cpp:213
void cleanIntermediateFiles()
Definition fileExport.cpp:215
void exportImageGeometryBgFill(const std::shared_ptr< Frame > &frame)
Definition fileExport.cpp:439
void exportAttributeBitstream(const std::shared_ptr< uvgvpcc_enc::GOF > &gof, const std::vector< uint8_t > &bitstream, const std::string &codecExtension)
Definition fileExport.cpp:472
void exportPointCloudPatchSegmentation(const std::shared_ptr< Frame > &frame)
Definition fileExport.cpp:306
void exportGeometryBitstream(const std::shared_ptr< uvgvpcc_enc::GOF > &gof, const std::vector< uint8_t > &bitstream, const std::string &codecExtension)
Definition fileExport.cpp:480
void exportImageAttributeYUV(const std::shared_ptr< Frame > &frame)
Definition fileExport.cpp:451
void exportPointCloudNormalOrientation(const std::shared_ptr< Frame > &frame, const std::vector< Vector3< typeGeometryInput > > &pointsGeometry, std::vector< Vector3< double > > &normals)
Definition fileExport.cpp:259
void exportPointCloudNormalComputation(const std::shared_ptr< Frame > &frame, const std::vector< Vector3< typeGeometryInput > > &pointsGeometry, std::vector< Vector3< double > > &normals)
Definition fileExport.cpp:242
void exportImageAttributeBgFill(const std::shared_ptr< Frame > &frame)
Definition fileExport.cpp:427
void exportOccupancyBitstream(const std::shared_ptr< uvgvpcc_enc::GOF > &gof, const std::vector< uint8_t > &bitstream, const std::string &codecExtension)
Definition fileExport.cpp:463
void exportImageOccupancy(const std::shared_ptr< Frame > &frame)
Definition fileExport.cpp:348
void exportPointCloudRefineSegmentation(const std::shared_ptr< Frame > &frame, const std::vector< Vector3< typeGeometryInput > > &pointsGeometry, const std::vector< size_t > &pointsPPIs)
Definition fileExport.cpp:291
void exportPointCloudInitialSegmentation(const std::shared_ptr< Frame > &frame, const std::vector< Vector3< typeGeometryInput > > &pointsGeometry, const std::vector< size_t > &pointsPPIs)
Definition fileExport.cpp:276
void exportImageGeometry(const std::shared_ptr< Frame > &frame)
Definition fileExport.cpp:416
void exportImageOccupancyDS(const std::shared_ptr< Frame > &frame)
Definition fileExport.cpp:375
void exportImageAttribute(const std::shared_ptr< Frame > &frame)
Definition fileExport.cpp:405
Definition log.hpp:48