45#include "../utils/utils.hpp"
46#include "../utils/parameters.hpp"
54extern const Parameters*
p_;
110 void setAxis(
size_t normalAxis,
size_t tangentAxis,
size_t bitangentAxis,
bool projectionMode) {
140 throw std::runtime_error(
"ViewId (" + std::to_string(patchPpi) +
") not allowed... exiting");
146 std::stringstream str;
153 str <<
", minU=" <<
posU_;
154 str <<
", minV=" <<
posV_;
155 str <<
", minD=" <<
posD_;
156 str <<
", sizeD=" <<
sizeD_;
214 std::vector<std::shared_ptr<Frame>>
frames;
231 const std::string gofIdStr =
zeroPad(
static_cast<int>(
gofId), 3);
232 const std::string nbFramesStr =
zeroPad(
static_cast<int>(
nbFrames), 3);
234 const std::string widthStr = std::to_string(param->
mapWidth);
235 const std::string heightStr = std::to_string(
mapHeightGOF);
265 }
catch (
const std::exception& e) {
266 throw std::runtime_error(
267 "\n# Catch an exception while completing the file base names :\n# " + std::string(e.what()) +
298void setParameter(
const std::string& parameterName,
const std::string& parameterValue);
void stopEncoder()
Insure a proper end of the encoder execution.
Definition uvgvpcc.cpp:598
void initializeEncoder()
Create the context of the uvgVPCCenc encoder. Parse the input parameters and verify if the given conf...
Definition uvgvpcc.cpp:466
void setParameter(const std::string ¶meterName, const std::string ¶meterValue)
The only way to modify the exposed uvgVPCCenc parameters is by calling this function.
Definition uvgvpcc.cpp:481
void emptyFrameQueue()
This function is called when all frames to be processed have been sent to the encoder....
Definition uvgvpcc.cpp:583
void encodeFrame(std::shared_ptr< Frame > &frame, v3c_unit_stream *output)
Entry point of the uvgVPCCenc library. Take as input a frame. Create all the jobs for processing this...
Definition uvgvpcc.cpp:496
std::string zeroPad(size_t value, size_t width)
Definition utils.hpp:102
constexpr size_t INVALID_PATCH_INDEX
Definition utils.hpp:55
const Parameters * p_
Definition uvgvpcc.cpp:447
const size_t g_infinitenumber
Definition utils.hpp:52
Bitstream writing miscellaneous.
Definition uvgvpcc.hpp:280
std::unique_ptr< char[]> data
Definition uvgvpcc.hpp:282
v3c_chunk(size_t len, std::unique_ptr< char[]> data)
Definition uvgvpcc.hpp:286
size_t len
Definition uvgvpcc.hpp:281
std::vector< size_t > v3c_unit_sizes
Definition uvgvpcc.hpp:283
Definition uvgvpcc.hpp:290
std::queue< v3c_chunk > v3c_chunks
Definition uvgvpcc.hpp:292
std::counting_semaphore available_chunks
Definition uvgvpcc.hpp:293
std::mutex io_mutex
Definition uvgvpcc.hpp:294
size_t v3c_unit_size_precision_bytes
Definition uvgvpcc.hpp:291
Definition uvgvpcc.hpp:173
size_t mapHeight
Definition uvgvpcc.hpp:188
std::string pointCloudPath
Definition uvgvpcc.hpp:179
std::vector< uint8_t > attributeMapL2
Definition uvgvpcc.hpp:199
std::vector< size_t > patchPartition
Definition uvgvpcc.hpp:186
size_t pointCount
Definition uvgvpcc.hpp:181
std::weak_ptr< GOF > gof
Definition uvgvpcc.hpp:176
std::vector< uint8_t > geometryMapL2
Definition uvgvpcc.hpp:196
std::vector< uint8_t > occupancyMap
Definition uvgvpcc.hpp:192
Frame(const size_t &frameId, const size_t &frameNumber, const std::string &pointCloudPath)
Definition uvgvpcc.hpp:201
std::shared_ptr< std::counting_semaphore< UINT16_MAX > > conccurentFrameSem
Definition uvgvpcc.hpp:177
std::vector< uint8_t > geometryMapL1
Definition uvgvpcc.hpp:195
std::vector< uint8_t > attributeMapL1
Definition uvgvpcc.hpp:198
std::vector< Vector3< uint8_t > > pointsAttribute
Definition uvgvpcc.hpp:183
~Frame()
Definition uvgvpcc.hpp:203
std::vector< Patch > patchList
Definition uvgvpcc.hpp:185
size_t mapHeightDS
Definition uvgvpcc.hpp:189
size_t frameNumber
Definition uvgvpcc.hpp:175
std::vector< Vector3< typeGeometryInput > > pointsGeometry
Definition uvgvpcc.hpp:182
void printInfo() const
Definition uvgvpcc.cpp:450
size_t frameId
Definition uvgvpcc.hpp:174
std::vector< uint8_t > occupancyMapDS
Definition uvgvpcc.hpp:193
Definition uvgvpcc.hpp:213
std::vector< std::shared_ptr< Frame > > frames
Definition uvgvpcc.hpp:214
size_t mapHeightGOF
Definition uvgvpcc.hpp:218
std::string baseNameGeometry
Definition uvgvpcc.hpp:223
std::string baseNameAttribute
Definition uvgvpcc.hpp:224
std::vector< uint8_t > bitstreamAttribute
Definition uvgvpcc.hpp:228
std::vector< uint8_t > bitstreamGeometry
Definition uvgvpcc.hpp:227
size_t nbFrames
Definition uvgvpcc.hpp:215
size_t mapHeightDSGOF
Definition uvgvpcc.hpp:219
std::string baseNameOccupancy
Definition uvgvpcc.hpp:221
void completeFileBaseNames(const Parameters *param)
Definition uvgvpcc.hpp:230
std::string baseNameOccupancyDS
Definition uvgvpcc.hpp:222
size_t gofId
Definition uvgvpcc.hpp:216
std::vector< uint8_t > bitstreamOccupancy
Definition uvgvpcc.hpp:226
Definition parameters.hpp:48
std::string basenameGeometryFiles
Definition parameters.hpp:137
size_t mapWidth
Definition parameters.hpp:120
std::string basenameOccupancyDSFiles
Definition parameters.hpp:136
size_t occupancyMapDSResolution
Definition parameters.hpp:148
std::string basenameAttributeFiles
Definition parameters.hpp:138
std::string basenameOccupancyFiles
Definition parameters.hpp:135
Definition uvgvpcc.hpp:57
size_t posU_
Definition uvgvpcc.hpp:65
bool isLinkToAMegaPatch
Definition uvgvpcc.hpp:107
bool axisSwap_
Definition uvgvpcc.hpp:84
size_t widthInPixel_
Definition uvgvpcc.hpp:75
size_t patchIndex_
Definition uvgvpcc.hpp:58
size_t area_
Definition uvgvpcc.hpp:95
std::string toString() const
Definition uvgvpcc.hpp:145
size_t sizeD_
Definition uvgvpcc.hpp:71
std::vector< typeGeometryInput > depthL2_
Definition uvgvpcc.hpp:87
size_t heightInOccBlk_
Definition uvgvpcc.hpp:79
void setPatchPpi(size_t patchPpi)
Definition uvgvpcc.hpp:117
bool projectionMode_
Definition uvgvpcc.hpp:69
size_t omDSPosY_
Definition uvgvpcc.hpp:82
size_t posD_
Definition uvgvpcc.hpp:67
size_t bestMatchIdx
Definition uvgvpcc.hpp:102
size_t bitangentAxis_
Definition uvgvpcc.hpp:63
size_t normalAxis_
Definition uvgvpcc.hpp:61
std::vector< size_t > depthPCidxL2_
Definition uvgvpcc.hpp:91
size_t referencePatchId_
Definition uvgvpcc.hpp:97
std::vector< typeGeometryInput > depthL1_
Definition uvgvpcc.hpp:86
bool isMatched_
Definition uvgvpcc.hpp:106
size_t heightInPixel_
Definition uvgvpcc.hpp:76
std::vector< size_t > depthPCidxL1_
Definition uvgvpcc.hpp:90
size_t tangentAxis_
Definition uvgvpcc.hpp:62
size_t posV_
Definition uvgvpcc.hpp:66
std::vector< uint8_t > patchOccupancyMap_
Definition uvgvpcc.hpp:73
size_t unionPatchReferenceIdx
Definition uvgvpcc.hpp:108
size_t widthInOccBlk_
Definition uvgvpcc.hpp:78
void setAxis(size_t normalAxis, size_t tangentAxis, size_t bitangentAxis, bool projectionMode)
Definition uvgvpcc.hpp:110
size_t omDSPosX_
Definition uvgvpcc.hpp:81
size_t patchPpi_
Definition uvgvpcc.hpp:59