From d5bea251fd0f48e773c213d58aaeef7e8e60657c Mon Sep 17 00:00:00 2001 From: Remi Bettan Date: Tue, 2 Aug 2022 09:57:59 +0300 Subject: [PATCH 1/6] adding support for y16i - no testing available yet --- include/librealsense2/h/rs_sensor.h | 1 + src/ds5/ds5-device.cpp | 9 +++++++ src/proc/CMakeLists.txt | 2 ++ src/proc/y16i-to-y16y16.cpp | 39 +++++++++++++++++++++++++++++ src/proc/y16i-to-y16y16.h | 22 ++++++++++++++++ src/to-string.cpp | 1 + wrappers/nodejs/src/addon.cpp | 1 + 7 files changed, 75 insertions(+) create mode 100644 src/proc/y16i-to-y16y16.cpp create mode 100644 src/proc/y16i-to-y16y16.h diff --git a/include/librealsense2/h/rs_sensor.h b/include/librealsense2/h/rs_sensor.h index 315b9577ff..fede746a9b 100644 --- a/include/librealsense2/h/rs_sensor.h +++ b/include/librealsense2/h/rs_sensor.h @@ -89,6 +89,7 @@ typedef enum rs2_format RS2_FORMAT_Z16H , /**< Variable-length Huffman-compressed 16-bit depth values. */ RS2_FORMAT_FG , /**< 16-bit per-pixel frame grabber format. */ RS2_FORMAT_Y411 , /**< 12-bit per-pixel. */ + RS2_FORMAT_Y16I , /**< 12-bit per pixel interleaved. 12-bit left, 12-bit right. */ RS2_FORMAT_COUNT /**< Number of enumeration values. Not a valid input: intended to be used in for-loops. */ } rs2_format; const char* rs2_format_to_string(rs2_format format); diff --git a/src/ds5/ds5-device.cpp b/src/ds5/ds5-device.cpp index be1c6c0010..3f37964ef1 100644 --- a/src/ds5/ds5-device.cpp +++ b/src/ds5/ds5-device.cpp @@ -29,6 +29,7 @@ #include "proc/temporal-filter.h" #include "proc/y8i-to-y8y8.h" #include "proc/y12i-to-y16y16.h" +#include "proc/y16i-to-y16y16.h" #include "proc/color-formats-converter.h" #include "proc/syncer-processing-block.h" #include "proc/hole-filling-filter.h" @@ -59,6 +60,7 @@ namespace librealsense {rs_fourcc('W','1','0',' '), RS2_FORMAT_W10}, {rs_fourcc('Y','1','6',' '), RS2_FORMAT_Y16}, {rs_fourcc('Y','1','2','I'), RS2_FORMAT_Y12I}, + {rs_fourcc('Y','1','6','I'), RS2_FORMAT_Y16I}, {rs_fourcc('Z','1','6',' '), RS2_FORMAT_Z16}, {rs_fourcc('Z','1','6','H'), RS2_FORMAT_Z16H}, {rs_fourcc('R','G','B','2'), RS2_FORMAT_BGR8}, @@ -75,6 +77,7 @@ namespace librealsense {rs_fourcc('W','1','0',' '), RS2_STREAM_INFRARED}, {rs_fourcc('Y','1','6',' '), RS2_STREAM_INFRARED}, {rs_fourcc('Y','1','2','I'), RS2_STREAM_INFRARED}, + {rs_fourcc('Y','1','6','I'), RS2_STREAM_INFRARED}, {rs_fourcc('R','G','B','2'), RS2_STREAM_INFRARED}, {rs_fourcc('Z','1','6',' '), RS2_STREAM_DEPTH}, {rs_fourcc('Z','1','6','H'), RS2_STREAM_DEPTH}, @@ -855,6 +858,12 @@ namespace librealsense []() {return std::make_shared(); } ); + depth_sensor.register_processing_block( + { RS2_FORMAT_Y16I }, + { {RS2_FORMAT_Y16, RS2_STREAM_INFRARED, 1}, {RS2_FORMAT_Y16, RS2_STREAM_INFRARED, 2} }, + []() {return std::make_shared(); } + ); + pid_hex_str = hexify(_pid); if ((_pid == RS416_PID || _pid == RS416_RGB_PID) && _fw_version >= firmware_version("5.12.0.1")) diff --git a/src/proc/CMakeLists.txt b/src/proc/CMakeLists.txt index db3d41e571..455ca37030 100644 --- a/src/proc/CMakeLists.txt +++ b/src/proc/CMakeLists.txt @@ -26,6 +26,7 @@ target_sources(${LRS_TARGET} "${CMAKE_CURRENT_LIST_DIR}/disparity-transform.cpp" "${CMAKE_CURRENT_LIST_DIR}/y8i-to-y8y8.cpp" "${CMAKE_CURRENT_LIST_DIR}/y12i-to-y16y16.cpp" + "${CMAKE_CURRENT_LIST_DIR}/y16i-to-y16y16.cpp" "${CMAKE_CURRENT_LIST_DIR}/identity-processing-block.cpp" "${CMAKE_CURRENT_LIST_DIR}/threshold.cpp" "${CMAKE_CURRENT_LIST_DIR}/rates-printer.cpp" @@ -55,6 +56,7 @@ target_sources(${LRS_TARGET} "${CMAKE_CURRENT_LIST_DIR}/disparity-transform.h" "${CMAKE_CURRENT_LIST_DIR}/y8i-to-y8y8.h" "${CMAKE_CURRENT_LIST_DIR}/y12i-to-y16y16.h" + "${CMAKE_CURRENT_LIST_DIR}/y16i-to-y16y16.h" "${CMAKE_CURRENT_LIST_DIR}/identity-processing-block.h" "${CMAKE_CURRENT_LIST_DIR}/threshold.h" "${CMAKE_CURRENT_LIST_DIR}/rates-printer.h" diff --git a/src/proc/y16i-to-y16y16.cpp b/src/proc/y16i-to-y16y16.cpp new file mode 100644 index 0000000000..2e333da69a --- /dev/null +++ b/src/proc/y16i-to-y16y16.cpp @@ -0,0 +1,39 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2022 Intel Corporation. All Rights Reserved. + +#include "y16i-to-y16y16.h" +#include "stream.h" +// CUDA TODO +//#ifdef RS2_USE_CUDA +//#include "cuda/cuda-conversion.cuh" +//#endif + +namespace librealsense +{ + struct y16i_pixel { uint8_t rl : 8, rh : 4, ll : 8, lh : 4; int l() const { return lh << 8 | ll; } int r() const { return rh << 8 | rl; } }; + void unpack_y16_y16_from_y16i_10(byte* const dest[], const byte* source, int width, int height, int actual_size) + { + auto count = width * height; +// CUDA TODO +//#ifdef RS2_USE_CUDA +// rscuda::split_frame_y16_y16_from_y12i_cuda(dest, count, reinterpret_cast(source)); +//#else + split_frame(dest, count, reinterpret_cast(source), + [](const y16i_pixel& p) -> uint16_t { return p.l() << 6 | p.l() >> 4; }, // We want to convert 10-bit data to 16-bit data + [](const y16i_pixel& p) -> uint16_t { return p.r() << 6 | p.r() >> 4; }); // Multiply by 64 1/16 to efficiently approximate 65535/1023 +//#endif + } + + y16i_to_y16y16::y16i_to_y16y16(int left_idx, int right_idx) + : y16i_to_y16y16("Y16I to Y16L Y16R Transform", left_idx, right_idx) {} + + y16i_to_y16y16::y16i_to_y16y16(const char* name, int left_idx, int right_idx) + : interleaved_functional_processing_block(name, RS2_FORMAT_Y16I, RS2_FORMAT_Y16, RS2_STREAM_INFRARED, RS2_EXTENSION_VIDEO_FRAME, 1, + RS2_FORMAT_Y16, RS2_STREAM_INFRARED, RS2_EXTENSION_VIDEO_FRAME, 2) + {} + + void y16i_to_y16y16::process_function(byte* const dest[], const byte* source, int width, int height, int actual_size, int input_size) + { + unpack_y16_y16_from_y16i_10(dest, source, width, height, actual_size); + } +} diff --git a/src/proc/y16i-to-y16y16.h b/src/proc/y16i-to-y16y16.h new file mode 100644 index 0000000000..639d3dccd2 --- /dev/null +++ b/src/proc/y16i-to-y16y16.h @@ -0,0 +1,22 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2022 Intel Corporation. All Rights Reserved. + +#pragma once + +#include "synthetic-stream.h" +#include "option.h" +#include "image.h" + +namespace librealsense +{ + class y16i_to_y16y16 : public interleaved_functional_processing_block + { + public: + y16i_to_y16y16(int left_idx = 1, int right_idx = 2); + + protected: + y16i_to_y16y16(const char* name, int left_idx, int right_idx); + void process_function(byte* const dest[], const byte* source, int width, int height, int actual_size, int input_size) override; + }; +} + diff --git a/src/to-string.cpp b/src/to-string.cpp index 8ba38f3a84..537688c63e 100644 --- a/src/to-string.cpp +++ b/src/to-string.cpp @@ -417,6 +417,7 @@ const char * get_string( rs2_format value ) CASE( Z16H ) CASE( FG ) CASE( Y411 ) + CASE( Y16I ) default: assert( ! is_valid( value ) ); return UNKNOWN_VALUE; diff --git a/wrappers/nodejs/src/addon.cpp b/wrappers/nodejs/src/addon.cpp index 33cfbf1943..f218aa6738 100644 --- a/wrappers/nodejs/src/addon.cpp +++ b/wrappers/nodejs/src/addon.cpp @@ -4703,6 +4703,7 @@ void InitModule(v8::Local exports) { _FORCE_SET_ENUM(RS2_FORMAT_Z16H); _FORCE_SET_ENUM(RS2_FORMAT_FG); _FORCE_SET_ENUM(RS2_FORMAT_Y411); + _FORCE_SET_ENUM(RS2_FORMAT_Y16I); _FORCE_SET_ENUM(RS2_FORMAT_COUNT); // rs2_frame_metadata_value From 84a2a39685b020c545ee88ef4c64aa575cfee3fb Mon Sep 17 00:00:00 2001 From: Remi Bettan Date: Wed, 3 Aug 2022 09:48:07 +0300 Subject: [PATCH 2/6] updating csharp and android wrappers --- .../java/com/intel/realsense/librealsense/StreamFormat.java | 1 + wrappers/csharp/Intel.RealSense/Types/Enums/Format.cs | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/wrappers/android/librealsense/src/main/java/com/intel/realsense/librealsense/StreamFormat.java b/wrappers/android/librealsense/src/main/java/com/intel/realsense/librealsense/StreamFormat.java index 866061c1fe..5cc4314d1d 100644 --- a/wrappers/android/librealsense/src/main/java/com/intel/realsense/librealsense/StreamFormat.java +++ b/wrappers/android/librealsense/src/main/java/com/intel/realsense/librealsense/StreamFormat.java @@ -32,6 +32,7 @@ public enum StreamFormat { Z16H(28), FG(29), Y411(30); + Y16I(31); private final int mValue; private StreamFormat(int value) { mValue = value; } diff --git a/wrappers/csharp/Intel.RealSense/Types/Enums/Format.cs b/wrappers/csharp/Intel.RealSense/Types/Enums/Format.cs index 0087b8d045..843744b032 100644 --- a/wrappers/csharp/Intel.RealSense/Types/Enums/Format.cs +++ b/wrappers/csharp/Intel.RealSense/Types/Enums/Format.cs @@ -99,6 +99,9 @@ public enum Format FG = 29, /// 12-bit per-pixel. 4 pixel data stream taking 6 bytes. - Y411 = 30 + Y411 = 30, + + /// 12-bit per pixel interleaved. 12-bit left, 12-bit right. Each pixel is stored in a 24-bit word in little-endian order. + Y16i = 31 } } From 27ff20e95d1536e648b3eee0eef43fc6f24af96f Mon Sep 17 00:00:00 2001 From: Remi Bettan Date: Wed, 3 Aug 2022 10:02:15 +0300 Subject: [PATCH 3/6] code review minor changes --- src/proc/y16i-to-y16y16.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/proc/y16i-to-y16y16.cpp b/src/proc/y16i-to-y16y16.cpp index 2e333da69a..778105999f 100644 --- a/src/proc/y16i-to-y16y16.cpp +++ b/src/proc/y16i-to-y16y16.cpp @@ -11,16 +11,16 @@ namespace librealsense { struct y16i_pixel { uint8_t rl : 8, rh : 4, ll : 8, lh : 4; int l() const { return lh << 8 | ll; } int r() const { return rh << 8 | rl; } }; - void unpack_y16_y16_from_y16i_10(byte* const dest[], const byte* source, int width, int height, int actual_size) + void unpack_y16_y16_from_y16i(byte* const dest[], const byte* source, int width, int height, int actual_size) { auto count = width * height; // CUDA TODO //#ifdef RS2_USE_CUDA -// rscuda::split_frame_y16_y16_from_y12i_cuda(dest, count, reinterpret_cast(source)); +// rscuda::split_frame_y16_y16_from_y16i_cuda(dest, count, reinterpret_cast(source)); //#else split_frame(dest, count, reinterpret_cast(source), - [](const y16i_pixel& p) -> uint16_t { return p.l() << 6 | p.l() >> 4; }, // We want to convert 10-bit data to 16-bit data - [](const y16i_pixel& p) -> uint16_t { return p.r() << 6 | p.r() >> 4; }); // Multiply by 64 1/16 to efficiently approximate 65535/1023 + [](const y16i_pixel& p) -> uint16_t { return static_cast(p.l()); }, + [](const y16i_pixel& p) -> uint16_t { return static_cast(p.r()); }); //#endif } @@ -34,6 +34,6 @@ namespace librealsense void y16i_to_y16y16::process_function(byte* const dest[], const byte* source, int width, int height, int actual_size, int input_size) { - unpack_y16_y16_from_y16i_10(dest, source, width, height, actual_size); + unpack_y16_y16_from_y16i(dest, source, width, height, actual_size); } } From 6483fa46926395f2e00df80aac4bd55b53d71dc5 Mon Sep 17 00:00:00 2001 From: Remi Bettan Date: Sun, 28 Aug 2022 15:06:22 +0300 Subject: [PATCH 4/6] correct typo --- .../java/com/intel/realsense/librealsense/StreamFormat.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wrappers/android/librealsense/src/main/java/com/intel/realsense/librealsense/StreamFormat.java b/wrappers/android/librealsense/src/main/java/com/intel/realsense/librealsense/StreamFormat.java index 5cc4314d1d..ca781ecc0b 100644 --- a/wrappers/android/librealsense/src/main/java/com/intel/realsense/librealsense/StreamFormat.java +++ b/wrappers/android/librealsense/src/main/java/com/intel/realsense/librealsense/StreamFormat.java @@ -31,7 +31,7 @@ public enum StreamFormat { W10(27), Z16H(28), FG(29), - Y411(30); + Y411(30), Y16I(31); private final int mValue; From 1f17d4168febeb4879ce670769267b6661bc843f Mon Sep 17 00:00:00 2001 From: Remi Bettan Date: Wed, 31 Aug 2022 13:02:58 +0300 Subject: [PATCH 5/6] y16i parsing corrected, bpp for y16i added --- src/image.cpp | 1 + src/proc/y16i-to-y16y16.cpp | 9 ++++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/image.cpp b/src/image.cpp index 670110388d..f59470d4e4 100644 --- a/src/image.cpp +++ b/src/image.cpp @@ -51,6 +51,7 @@ namespace librealsense case RS2_FORMAT_Z16H: return 16; case RS2_FORMAT_FG: return 16; case RS2_FORMAT_Y411: return 12; + case RS2_FORMAT_Y16I: return 32; default: assert(false); return 0; } } diff --git a/src/proc/y16i-to-y16y16.cpp b/src/proc/y16i-to-y16y16.cpp index 778105999f..214fce3ea2 100644 --- a/src/proc/y16i-to-y16y16.cpp +++ b/src/proc/y16i-to-y16y16.cpp @@ -10,7 +10,10 @@ namespace librealsense { - struct y16i_pixel { uint8_t rl : 8, rh : 4, ll : 8, lh : 4; int l() const { return lh << 8 | ll; } int r() const { return rh << 8 | rl; } }; + struct y16i_pixel { uint16_t left : 16, right : 16; + // left and right data are shifted 6 times so that the MSB 10 bit will hold the data + uint16_t l() const { return left << 6; } + uint16_t r() const { return right << 6; } }; void unpack_y16_y16_from_y16i(byte* const dest[], const byte* source, int width, int height, int actual_size) { auto count = width * height; @@ -19,8 +22,8 @@ namespace librealsense // rscuda::split_frame_y16_y16_from_y16i_cuda(dest, count, reinterpret_cast(source)); //#else split_frame(dest, count, reinterpret_cast(source), - [](const y16i_pixel& p) -> uint16_t { return static_cast(p.l()); }, - [](const y16i_pixel& p) -> uint16_t { return static_cast(p.r()); }); + [](const y16i_pixel& p) -> uint16_t { return (p.l()); }, + [](const y16i_pixel& p) -> uint16_t { return (p.r()); }); //#endif } From 138e379004f7f8a6b68fb9b9a1d71f2fb4866efb Mon Sep 17 00:00:00 2001 From: Remi Bettan Date: Thu, 1 Sep 2022 16:16:14 +0300 Subject: [PATCH 6/6] change class from y16i_to_y16y16 to y16i_to_y10msby10msb --- src/ds5/ds5-device.cpp | 4 ++-- src/proc/CMakeLists.txt | 4 ++-- ...i-to-y16y16.cpp => y16i-to-y10msby10msb.cpp} | 17 +++++++++-------- ...{y16i-to-y16y16.h => y16i-to-y10msby10msb.h} | 6 +++--- .../Intel.RealSense/Types/Enums/Format.cs | 2 +- 5 files changed, 17 insertions(+), 16 deletions(-) rename src/proc/{y16i-to-y16y16.cpp => y16i-to-y10msby10msb.cpp} (56%) rename src/proc/{y16i-to-y16y16.h => y16i-to-y10msby10msb.h} (64%) diff --git a/src/ds5/ds5-device.cpp b/src/ds5/ds5-device.cpp index 3f37964ef1..7ad24c4bd3 100644 --- a/src/ds5/ds5-device.cpp +++ b/src/ds5/ds5-device.cpp @@ -29,7 +29,7 @@ #include "proc/temporal-filter.h" #include "proc/y8i-to-y8y8.h" #include "proc/y12i-to-y16y16.h" -#include "proc/y16i-to-y16y16.h" +#include "proc/y16i-to-y10msby10msb.h" #include "proc/color-formats-converter.h" #include "proc/syncer-processing-block.h" #include "proc/hole-filling-filter.h" @@ -861,7 +861,7 @@ namespace librealsense depth_sensor.register_processing_block( { RS2_FORMAT_Y16I }, { {RS2_FORMAT_Y16, RS2_STREAM_INFRARED, 1}, {RS2_FORMAT_Y16, RS2_STREAM_INFRARED, 2} }, - []() {return std::make_shared(); } + []() {return std::make_shared(); } ); pid_hex_str = hexify(_pid); diff --git a/src/proc/CMakeLists.txt b/src/proc/CMakeLists.txt index 455ca37030..f381e2af83 100644 --- a/src/proc/CMakeLists.txt +++ b/src/proc/CMakeLists.txt @@ -26,7 +26,7 @@ target_sources(${LRS_TARGET} "${CMAKE_CURRENT_LIST_DIR}/disparity-transform.cpp" "${CMAKE_CURRENT_LIST_DIR}/y8i-to-y8y8.cpp" "${CMAKE_CURRENT_LIST_DIR}/y12i-to-y16y16.cpp" - "${CMAKE_CURRENT_LIST_DIR}/y16i-to-y16y16.cpp" + "${CMAKE_CURRENT_LIST_DIR}/y16i-to-y10msby10msb.cpp" "${CMAKE_CURRENT_LIST_DIR}/identity-processing-block.cpp" "${CMAKE_CURRENT_LIST_DIR}/threshold.cpp" "${CMAKE_CURRENT_LIST_DIR}/rates-printer.cpp" @@ -56,7 +56,7 @@ target_sources(${LRS_TARGET} "${CMAKE_CURRENT_LIST_DIR}/disparity-transform.h" "${CMAKE_CURRENT_LIST_DIR}/y8i-to-y8y8.h" "${CMAKE_CURRENT_LIST_DIR}/y12i-to-y16y16.h" - "${CMAKE_CURRENT_LIST_DIR}/y16i-to-y16y16.h" + "${CMAKE_CURRENT_LIST_DIR}/y16i-to-y10msby10msb.h" "${CMAKE_CURRENT_LIST_DIR}/identity-processing-block.h" "${CMAKE_CURRENT_LIST_DIR}/threshold.h" "${CMAKE_CURRENT_LIST_DIR}/rates-printer.h" diff --git a/src/proc/y16i-to-y16y16.cpp b/src/proc/y16i-to-y10msby10msb.cpp similarity index 56% rename from src/proc/y16i-to-y16y16.cpp rename to src/proc/y16i-to-y10msby10msb.cpp index 214fce3ea2..aad596e124 100644 --- a/src/proc/y16i-to-y16y16.cpp +++ b/src/proc/y16i-to-y10msby10msb.cpp @@ -1,7 +1,7 @@ // License: Apache 2.0. See LICENSE file in root directory. // Copyright(c) 2022 Intel Corporation. All Rights Reserved. -#include "y16i-to-y16y16.h" +#include "y16i-to-y10msby10msb.h" #include "stream.h" // CUDA TODO //#ifdef RS2_USE_CUDA @@ -12,14 +12,15 @@ namespace librealsense { struct y16i_pixel { uint16_t left : 16, right : 16; // left and right data are shifted 6 times so that the MSB 10 bit will hold the data + // data should be in MSB because OpenGL then uses the MSB byte uint16_t l() const { return left << 6; } uint16_t r() const { return right << 6; } }; - void unpack_y16_y16_from_y16i(byte* const dest[], const byte* source, int width, int height, int actual_size) + void unpack_y10msb_y10msb_from_y16i(byte* const dest[], const byte* source, int width, int height, int actual_size) { auto count = width * height; // CUDA TODO //#ifdef RS2_USE_CUDA -// rscuda::split_frame_y16_y16_from_y16i_cuda(dest, count, reinterpret_cast(source)); +// rscuda::split_frame_y10msb_y10msb_from_y16i_cuda(dest, count, reinterpret_cast(source)); //#else split_frame(dest, count, reinterpret_cast(source), [](const y16i_pixel& p) -> uint16_t { return (p.l()); }, @@ -27,16 +28,16 @@ namespace librealsense //#endif } - y16i_to_y16y16::y16i_to_y16y16(int left_idx, int right_idx) - : y16i_to_y16y16("Y16I to Y16L Y16R Transform", left_idx, right_idx) {} + y16i_to_y10msby10msb::y16i_to_y10msby10msb(int left_idx, int right_idx) + : y16i_to_y10msby10msb("Y16I to Y10msbL Y10msbR Transform", left_idx, right_idx) {} - y16i_to_y16y16::y16i_to_y16y16(const char* name, int left_idx, int right_idx) + y16i_to_y10msby10msb::y16i_to_y10msby10msb(const char* name, int left_idx, int right_idx) : interleaved_functional_processing_block(name, RS2_FORMAT_Y16I, RS2_FORMAT_Y16, RS2_STREAM_INFRARED, RS2_EXTENSION_VIDEO_FRAME, 1, RS2_FORMAT_Y16, RS2_STREAM_INFRARED, RS2_EXTENSION_VIDEO_FRAME, 2) {} - void y16i_to_y16y16::process_function(byte* const dest[], const byte* source, int width, int height, int actual_size, int input_size) + void y16i_to_y10msby10msb::process_function(byte* const dest[], const byte* source, int width, int height, int actual_size, int input_size) { - unpack_y16_y16_from_y16i(dest, source, width, height, actual_size); + unpack_y10msb_y10msb_from_y16i(dest, source, width, height, actual_size); } } diff --git a/src/proc/y16i-to-y16y16.h b/src/proc/y16i-to-y10msby10msb.h similarity index 64% rename from src/proc/y16i-to-y16y16.h rename to src/proc/y16i-to-y10msby10msb.h index 639d3dccd2..86a6f1eabc 100644 --- a/src/proc/y16i-to-y16y16.h +++ b/src/proc/y16i-to-y10msby10msb.h @@ -9,13 +9,13 @@ namespace librealsense { - class y16i_to_y16y16 : public interleaved_functional_processing_block + class y16i_to_y10msby10msb : public interleaved_functional_processing_block { public: - y16i_to_y16y16(int left_idx = 1, int right_idx = 2); + y16i_to_y10msby10msb(int left_idx = 1, int right_idx = 2); protected: - y16i_to_y16y16(const char* name, int left_idx, int right_idx); + y16i_to_y10msby10msb(const char* name, int left_idx, int right_idx); void process_function(byte* const dest[], const byte* source, int width, int height, int actual_size, int input_size) override; }; } diff --git a/wrappers/csharp/Intel.RealSense/Types/Enums/Format.cs b/wrappers/csharp/Intel.RealSense/Types/Enums/Format.cs index 843744b032..283c098207 100644 --- a/wrappers/csharp/Intel.RealSense/Types/Enums/Format.cs +++ b/wrappers/csharp/Intel.RealSense/Types/Enums/Format.cs @@ -101,7 +101,7 @@ public enum Format /// 12-bit per-pixel. 4 pixel data stream taking 6 bytes. Y411 = 30, - /// 12-bit per pixel interleaved. 12-bit left, 12-bit right. Each pixel is stored in a 24-bit word in little-endian order. + /// 16-bit per pixel interleaved. 16-bit left, 16-bit right. Each pixel is stored in a 32-bit word in little-endian order. Y16i = 31 } }