View on GitHub

Vistle

Distributed Data-parallel Scientific Visualization in VR

Classes | Namespaces | Typedefs | Enumerations | Functions
depthquant.h File Reference

Depth quantization for remote hybrid rendering. More...

#include "export.h"
#include <stdint.h>
#include <cstdlib>
Include dependency graph for depthquant.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  vistle::DepthQuantizeBits< Precision, BitsPerPixel, ScaleBits >
 quantized depth data for a single 4x4 pixel tile More...
 
struct  vistle::DepthQuantizeMinMaxDepth< Precision >
 min/max depth for a single 4x4 pixel tile (when storing depths and interpolation bits separately) More...
 
struct  vistle::DepthQuantize< Precision, BitsPerPixel, ScaleBits >
 quantized depth data for a single 4x4 pixel tile More...
 

Namespaces

namespace  vistle
 

Typedefs

typedef DepthQuantizeBits< 16, 4, 0 > vistle::DepthQuantizeBits16
 
typedef DepthQuantizeBits< 24, 3, 4 > vistle::DepthQuantizeBits24
 
typedef DepthQuantizeMinMaxDepth< 16 > vistle::MinMaxDepth16
 
typedef DepthQuantizeMinMaxDepth< 24 > vistle::MinMaxDepth24
 
typedef DepthQuantize< 16, 4, 0 > vistle::DepthQuantize16
 
typedef DepthQuantize< 24, 3, 4 > vistle::DepthQuantize24
 

Enumerations

enum  vistle::DepthFormat { vistle::DepthInteger , vistle::DepthFloat , vistle::DepthRGBA }
 

Functions

template<class DepthQuantize >
void vistle::setdepth (DepthQuantize &q, int idx, uint32_t value)
 set depth bits for a single pixel More...
 
template<class DepthQuantize >
uint32_t vistle::getdepth (const DepthQuantize &q, int idx)
 retrieve depth bits for a single pixel More...
 
template<class DepthQuantize >
void vistle::dq_clearbits (DepthQuantize &q)
 zero depth bits for a 4x4 tile More...
 
template<class DepthQuantize >
void vistle::dq_setbit (DepthQuantize &q, int bit, unsigned value=1)
 set a single bit in DepthQuantize struct More...
 
template<class DepthQuantize >
void vistle::dq_clearbit (DepthQuantize &q, int bit)
 clear a single bit in DepthQuantize struct More...
 
template<class DepthQuantize >
unsigned vistle::dq_getbit (const DepthQuantize &q, int bit)
 retrieve a single bit from DepthQuantize struct More...
 
template<class DepthQuantize >
void vistle::dq_setbits (DepthQuantize &q, int bit, int nbits, unsigned value, int block=1)
 set multiple bits in DepthQuantize struct More...
 
template<class DepthQuantize >
void vistle::dq_setbits (DepthQuantize &q, uint64_t bits)
 set all bits in DepthQuantize struct More...
 
template<class DepthQuantize >
unsigned vistle::dq_getbits (const DepthQuantize &q, int bit, int nbits)
 get multiple bits from DepthQuantize struct More...
 
template<class DepthQuantize >
uint64_t vistle::dq_getbits (const DepthQuantize &q)
 get all bits from DepthQuantize struct More...
 
template<DepthFormat format, int bpp>
uint32_t vistle::get_depth (const unsigned char *img, int x, int y, int w, int h)
 
template<>
uint32_t vistle::get_depth< DepthFloat, 4 > (const unsigned char *img, int x, int y, int w, int h)
 
template<>
uint32_t vistle::get_depth< DepthRGBA, 4 > (const unsigned char *img, int x, int y, int w, int h)
 
template<>
uint32_t vistle::get_depth< DepthInteger, 1 > (const unsigned char *img, int x, int y, int w, int h)
 
template<>
uint32_t vistle::get_depth< DepthInteger, 2 > (const unsigned char *img, int x, int y, int w, int h)
 
template<>
uint32_t vistle::get_depth< DepthInteger, 3 > (const unsigned char *img, int x, int y, int w, int h)
 
template<>
uint32_t vistle::get_depth< DepthInteger, 4 > (const unsigned char *img, int x, int y, int w, int h)
 
void vistle::depthquant (char *quantbuf, const char *zbuf, DepthFormat format, int depthps, int x, int y, int width, int height, int stride=-1)
 transform depth buffer into quantized values on 4x4 pixel tiles More...
 
void vistle::depthquant_planar (char *quantbufS, const char *zbufS, DepthFormat format, int depthps, int x, int y, int width, int height, int stride)
 
size_t vistle::depthquant_size (DepthFormat format, int depthps, int width, int height)
 return size required by depthquant for quantized image More...
 
void vistle::depthdequant (char *zbuf, const char *quantbuf, DepthFormat format, int depthps, int tx, int dy, int width, int height, int stride=-1)
 reverse transformation done by depthquant More...
 
void vistle::depthdequant_planar (char *zbuf, const char *quantbuf, DepthFormat format, int depthps, int dx, int dy, int width, int height, int stride)
 

Detailed Description

Depth quantization for remote hybrid rendering.

Author
Martin Aumüller aumue.nosp@m.ller.nosp@m.@hlrs.nosp@m..de
(c) 2013 HLRS

Class Documentation

◆ vistle::DepthQuantizeMinMaxDepth

struct vistle::DepthQuantizeMinMaxDepth
template<int Precision>
struct vistle::DepthQuantizeMinMaxDepth< Precision >

min/max depth for a single 4x4 pixel tile (when storing depths and interpolation bits separately)

Class Members
uint8_t depth[2][Precision/8] minimum and maximum depth data