diff --git a/CHANGELOG.md b/CHANGELOG.md index c63c34c9b..29dd164ff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,39 @@ +- Automatic tone mapping (#998), HyperHDR v21 +- Add Ubuntu 24.10 and Fedora 41 (#1001), HyperHDR v21 +- Add support for "unicam image" RPi HDMI capture card and UYVY format (#889), HyperHDR v21 +- Breaking change: remove LUT from installer and create it dynamically (#994), HyperHDR v21 +- Fix macOS 15 dark theme menu icons (#988), HyperHDR v21 +- Add P010 HDR10 video format support (2024-11-24) (#968), HyperHDR v21 +- DirectX multi-monitor support (#966), HyperHDR v21 +- macOS 15 sequoia: migrate to ScreenCaptureKit (#984), HyperHDR v21 +- Add Skydimo "support" (#985), HyperHDR v21 +- New LUT calibration based on mp4 test videos (part I) (#896), HyperHDR v21 +- feat: updated rpi_ws281x submodule, thanks @andreasvikke (#974), HyperHDR v21 +- DX grabber: stick to user specified device selection (#961), HyperHDR v21 +- Fix LED colors adjustments by configuration name (#956), HyperHDR v21 +- Add autoresume feature for the macOS software grabber (#879), HyperHDR v21 +- Add NV12 image format support for flatbuffers (#920), HyperHDR v21 +- Update language file's Thanks @AstaRom (#883, #923, #998), HyperHDR v21 +- Update flatbuffers to v24.3.25 (#875), HyperHDR v21 +- Add cache_cleaner for Github Action (#910), HyperHDR v21 +- New build.sh script for the HyperHDR build process (#904), HyperHDR v21 +- Remove Alsa libs from CMake recipe, HyperHDR v21 +- Remove more unnecessary libraries from installers, HyperHDR v21 +- Remove libasound from installers, HyperHDR v21 +- Fix restoring calibration settings (#874), HyperHDR v21 +- Reorganize HyperHDR libs (#887), HyperHDR v21 +- Fix macOS image alignment (#838), HyperHDR v21 +- Remove hyperhdr-remote app. Reason: #856, HyperHDR v21 +- Refactoring of the FlatBuffers client and server (#880), HyperHDR v21 +- Remove mbedtls. Use OpenSSL (#877), HyperHDR v21 +- Removal of QT SQL. Migrate to the SQLite library. (#872), HyperHDR v21 +- New smoothing option for sound effects, fix ArchLinux installer, refactoring of the smoothing module and music effects (#871), HyperHDR v21 +- Removal of QT D-Bus, switch to sdbus-cpp (#864), HyperHDR v21 +- Dependency reductions: removal of heavy QT Gui lib (#861), HyperHDR v21 +- Fix DirectX capturing after new Systray changes, HyperHDR v21 +- New independed systray. Dependency reductions thanks to removal of QWidget (#852), HyperHDR v21 +- Fix: lut calibration for grabberless builds (#840), HyperHDR v21 +- Fix: close LED device on correct Thread (#803), HyperHDR v21 - Fedora uses xz as the package name, not xz-utils #771 Thanks @hsmalley (v20 beta2 🆕) - Fix LUT loading bug to reduce memory usage by 96MB #766 (v20 beta2 🆕) - Fix background music effect #761 (v20 beta2 🆕) diff --git a/README.md b/README.md index 4cdad1245..a9feebb46 100644 --- a/README.md +++ b/README.md @@ -17,14 +17,15 @@ Open source ambient lighting implementation for television and music sets based * Support for USB grabbers under Linux, Windows 10, macOS * Pipewire/Portal hardware-accelerated screen capturer for Linux/Wayland * DirectX screen grabber with pixel and vertex shader processing acceleration for Windows 10/11 -* DirectX screen grabber supports native Windows HDR modes like DXGI_FORMAT_R16G16B16A16_FLOAT +* DirectX screen grabber supports native Windows HDR modes like DXGI_FORMAT_R16G16B16A16_FLOAT and multi-monitor ( :new: HyperHDR v21) * Dynamic video cache buffers. Now Rpi can process even 1080p120 NV12 stream without any size decimation * Built-in audio visualization effects using **spectrum analysis** * MQTT support for IoT * Entertainment API v2: per-channel support for Philips Gradient Strip and others -* Automatic LUT calibration detects grabber model specific properties for the best quality of HDR/SDR +* Automatic LUT calibration detects grabber model specific properties for the best quality of HDR/SDR using MP4 test files ( :new: HyperHDR v21) * Optimized multi-instances. You can use for example your TV LED strip and multiple WLED or Philips Hue light sources. * Built-in latency benchmark for USB grabbers +* support for high-quality P010 video format ( :new: HyperHDR v21) * easy LED strip geometry editing process, automatic or manual with mouse and context menu per single LED * Automatic signal detection with smart learning capability for USB grabbers * SK6812 RGBW: advanced calibration of the white color channel for [HyperSerialEsp8266](https://github.com/awawa-dev/HyperSerialEsp8266), [HyperSerialESP32](https://github.com/awawa-dev/HyperSerialESP32), [HyperSPI](https://github.com/awawa-dev/HyperSPI), [HyperSerialPico](https://github.com/awawa-dev/HyperSerialPico) diff --git a/cmake/packages.cmake b/cmake/packages.cmake index 50245b436..dab93146c 100644 --- a/cmake/packages.cmake +++ b/cmake/packages.cmake @@ -151,7 +151,7 @@ endif() # OSX dmg generator if ( APPLE ) SET ( CPACK_GENERATOR "DragNDrop") - SET ( CPACK_DMG_FORMAT "UDBZ" ) + SET ( CPACK_DMG_FORMAT "ULMO" ) unset(CPACK_PACKAGE_ICON) set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/cmake/osx/Hyperhdr.icns") diff --git a/include/base/AutomaticToneMapping.h b/include/base/AutomaticToneMapping.h new file mode 100644 index 000000000..f435ca3d5 --- /dev/null +++ b/include/base/AutomaticToneMapping.h @@ -0,0 +1,83 @@ +/* AutomaticToneMapping.h +* +* MIT License +* +* Copyright (c) 2020-2024 awawa-dev +* +* Project homesite: https://github.com/awawa-dev/HyperHDR +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in all +* copies or substantial portions of the Software. + +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. + */ + +#pragma once + +#ifndef PCH_ENABLED +#endif + +#include + +class AutomaticToneMapping +{ +public: + struct ToneMappingThresholds; + + AutomaticToneMapping(); + + AutomaticToneMapping* prepare(); + void finilize(); + void setConfig(bool enabled, const ToneMappingThresholds& newConfig, int timeInSec, int timeToDisableInMSec); + void setToneMapping(bool enabled); + + constexpr uint8_t checkY(uint8_t y) + { + if (y > _running.y) _running.y = y; + return y; + } + + constexpr uint8_t checkU(uint8_t u) + { + if (u > _running.u) _running.u = u; + return u; + } + + constexpr uint8_t checkV(uint8_t v) + { + if (v > _running.v) _running.v = v; + return v; + } + + struct ToneMappingThresholds { + uint8_t y; + uint8_t u; + uint8_t v; + }; + +private: + bool _enabled; + int _timeInSec; + int _timeToDisableInMSec; + + ToneMappingThresholds _config, _running; + + bool _modeSDR; + long _startedTime; + long _endingTime; + Logger* _log; + +}; diff --git a/include/base/Grabber.h b/include/base/Grabber.h index d7e854871..0a69e8eca 100644 --- a/include/base/Grabber.h +++ b/include/base/Grabber.h @@ -20,6 +20,7 @@ #include #include #include +#include #include #if defined(_WIN32) || defined(WIN32) @@ -125,6 +126,9 @@ class Grabber : public DetectionAutomatic, public DetectionManual, protected Lut QString getConfigurationPath(); + void setAutomaticToneMappingConfig(bool enabled, const AutomaticToneMapping::ToneMappingThresholds& newConfig, int timeInSec, int timeToDisableInMSec); + void setAutoToneMappingCurrentStateEnabled(bool enabled); + struct DevicePropertiesItem { int x, y, fps, fps_a, fps_b, input; @@ -272,6 +276,7 @@ public slots: bool _signalDetectionEnabled; bool _signalAutoDetectionEnabled; QSemaphore _synchro; + AutomaticToneMapping _automaticToneMapping; }; bool sortDevicePropertiesItem(const Grabber::DevicePropertiesItem& v1, const Grabber::DevicePropertiesItem& v2); diff --git a/include/grabber/linux/v4l2/V4L2Worker.h b/include/grabber/linux/v4l2/V4L2Worker.h index 6fe4c2e7d..c2967a56d 100644 --- a/include/grabber/linux/v4l2/V4L2Worker.h +++ b/include/grabber/linux/v4l2/V4L2Worker.h @@ -10,6 +10,7 @@ #include #include #include +#include #include @@ -32,7 +33,7 @@ class V4L2Worker : public QThread unsigned __cropBottom, unsigned __cropRight, quint64 __currentFrame, qint64 __frameBegin, int __hdrToneMappingEnabled, uint8_t* __lutBuffer, - bool __qframe, bool __directAccess, QString __deviceName); + bool __qframe, bool __directAccess, QString __deviceName, AutomaticToneMapping* __automaticToneMapping); void startOnThisThread(); void run() override; @@ -76,6 +77,7 @@ class V4L2Worker : public QThread bool _qframe; bool _directAccess; QString _deviceName; + AutomaticToneMapping* _automaticToneMapping; }; class V4L2WorkerManager : public QObject diff --git a/include/grabber/osx/AVF/AVFWorker.h b/include/grabber/osx/AVF/AVFWorker.h index 2479f2397..a9525878d 100644 --- a/include/grabber/osx/AVF/AVFWorker.h +++ b/include/grabber/osx/AVF/AVFWorker.h @@ -17,6 +17,7 @@ #include #include #include +#include @@ -38,7 +39,7 @@ class AVFWorker : public QThread unsigned __cropBottom, unsigned __cropRight, quint64 __currentFrame, qint64 __frameBegin, int __hdrToneMappingEnabled, uint8_t* __lutBuffer, bool __qframe, - bool __directAccess, QString __deviceName); + bool __directAccess, QString __deviceName, AutomaticToneMapping* __automaticToneMapping); void startOnThisThread(); void run() override; @@ -78,6 +79,7 @@ class AVFWorker : public QThread bool _qframe; bool _directAccess; QString _deviceName; + AutomaticToneMapping* _automaticToneMapping; }; class AVFWorkerManager : public QObject diff --git a/include/grabber/windows/MF/MFWorker.h b/include/grabber/windows/MF/MFWorker.h index 666636ed9..0fd3e63c5 100644 --- a/include/grabber/windows/MF/MFWorker.h +++ b/include/grabber/windows/MF/MFWorker.h @@ -7,6 +7,7 @@ #include #include #include +#include #include @@ -27,7 +28,7 @@ class MFWorker : public QThread unsigned __cropBottom, unsigned __cropRight, quint64 __currentFrame, qint64 __frameBegin, int __hdrToneMappingEnabled, uint8_t* __lutBuffer, bool __qframe, - bool __directAccess, QString __deviceName); + bool __directAccess, QString __deviceName, AutomaticToneMapping* __automaticToneMapping); void startOnThisThread(); void run() override; @@ -69,6 +70,7 @@ class MFWorker : public QThread bool _qframe; bool _directAccess; QString _deviceName; + AutomaticToneMapping* _automaticToneMapping; }; class MFWorkerManager : public QObject diff --git a/include/lut-calibrator/BestResult.h b/include/lut-calibrator/BestResult.h index b615944f7..c67c5a62f 100644 --- a/include/lut-calibrator/BestResult.h +++ b/include/lut-calibrator/BestResult.h @@ -80,6 +80,7 @@ struct BestResult double upYLimit = 0; double downYLimit = 0; double yShift = 0; + byte3 yuvRange = {}; bool isSourceP010 = false; } signal; @@ -124,6 +125,7 @@ struct BestResult out << "bestResult.signal.yShift = " << std::to_string(signal.yShift) << ";" << std::endl; out << "bestResult.signal.isSourceP010 = " << std::to_string(signal.isSourceP010) << ";" << std::endl; out << "bestResult.minError = " << std::to_string(std::round(minError * 100.0) / 30000.0) << ";" << std::endl; + out << "bestResult.signal.yuvRange = byte3{ " << std::to_string(signal.yuvRange[0]) << ", " << std::to_string(signal.yuvRange[1]) << ", " << std::to_string(signal.yuvRange[2]) << "};" << std::endl; out << "*/" << std::endl; } }; diff --git a/include/lut-calibrator/BoardUtils.h b/include/lut-calibrator/BoardUtils.h index 9a36427dc..b3ab7ec13 100644 --- a/include/lut-calibrator/BoardUtils.h +++ b/include/lut-calibrator/BoardUtils.h @@ -84,6 +84,7 @@ namespace BoardUtils double _yShift = 0; double _downYLimit = 0; double _upYLimit = 0; + byte3 _rangeYUV = {}; public: CapturedColors() = default; @@ -96,7 +97,7 @@ namespace BoardUtils bool areAllCaptured(); void finilizeBoard(); static void correctYRange(double3& yuv, double yRange, double upYLimit, double downYLimit, double yShift); - void getSignalParams(double& yRange, double& upYLimit, double& downYLimit, double& yShift); + void getSignalParams(double& yRange, double& upYLimit, double& downYLimit, double& yShift, byte3& rangeYUV); void setCaptured(int index); void setRange(YuvConverter::COLOR_RANGE range); YuvConverter::COLOR_RANGE getRange() const; diff --git a/include/utils/FrameDecoder.h b/include/utils/FrameDecoder.h index 21a594e33..679f850e4 100644 --- a/include/utils/FrameDecoder.h +++ b/include/utils/FrameDecoder.h @@ -4,6 +4,7 @@ #include #include #include +#include // some stuff for HDR tone mapping #define LUT_INDEX(y,u,v) ((y + (u<<8) + (v<<16))*3) @@ -24,7 +25,7 @@ class FrameDecoder static void processQImage( const uint8_t* data, const uint8_t* dataUV, int width, int height, int lineLength, - const PixelFormat pixelFormat, const uint8_t* lutBuffer, Image& outputImage, bool toneMapping = true); + const PixelFormat pixelFormat, const uint8_t* lutBuffer, Image& outputImage, bool toneMapping = true, AutomaticToneMapping* automaticToneMapping = nullptr); static void processSystemImageBGRA(Image& image, int targetSizeX, int targetSizeY, int startX, int startY, diff --git a/include/utils/settings.h b/include/utils/settings.h index 6858ab3b3..904a9daf4 100644 --- a/include/utils/settings.h +++ b/include/utils/settings.h @@ -33,6 +33,7 @@ namespace settings { RAWUDPSERVER, PROTOSERVER, MQTT, + AUTOTONEMAPPING, INVALID }; @@ -65,6 +66,7 @@ namespace settings { case type::RAWUDPSERVER: return "rawUdpServer"; case type::PROTOSERVER: return "protoServer"; case type::MQTT: return "mqtt"; + case type::AUTOTONEMAPPING: return "automaticToneMapping"; default: return "invalid"; } } @@ -96,6 +98,7 @@ namespace settings { else if (type == "rawUdpServer") return type::RAWUDPSERVER; else if (type == "protoServer") return type::PROTOSERVER; else if (type == "mqtt") return type::MQTT; + else if (type == "automaticToneMapping") return type::AUTOTONEMAPPING; else return type::INVALID; } } diff --git a/sources/base/AutomaticToneMapping.cpp b/sources/base/AutomaticToneMapping.cpp new file mode 100644 index 000000000..7152233eb --- /dev/null +++ b/sources/base/AutomaticToneMapping.cpp @@ -0,0 +1,137 @@ +/* AutomaticToneMapping.cpp +* +* MIT License +* +* Copyright (c) 2020-2024 awawa-dev +* +* Project homesite: https://github.com/awawa-dev/HyperHDR +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in all +* copies or substantial portions of the Software. + +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. + */ + +#ifndef PCH_ENABLED +#endif + +#include +#include +#include + +#define DEFAULT_GRACEFUL_TIMEOUT 10 + +AutomaticToneMapping::AutomaticToneMapping() : + _enabled(false), + _timeInSec(30), + _timeToDisableInMSec(500), + _config{}, + _running{}, + _modeSDR(true), + _startedTime(0), + _endingTime(0), + _log(Logger::getInstance(QString("AUTOTONEMAPPING"))) +{ +} + +AutomaticToneMapping* AutomaticToneMapping::prepare() +{ + if (_enabled) + { + return this; + } + else + { + return nullptr; + } +} + +void AutomaticToneMapping::finilize() +{ + if (_enabled) + { + bool triggered = (_config.y != _running.y || _config.u != _running.u || _config.v != _running.v); + + if (triggered && !_modeSDR) + { + auto now = InternalClock::now(); + if (_endingTime == 0 || _endingTime > now) + { + _endingTime = now; + } + else if (_endingTime + _timeToDisableInMSec <= now) + { + QString message = "Tone mapping OFF triggered by: "; + if (_config.y != _running.y) + message += QString(" Y threshold (%1), ").arg(_running.y); + if (_config.u != _running.u) + message += QString(" U threshold (%1), ").arg(_running.u); + if (_config.v != _running.v) + message += QString(" V threshold (%1), ").arg(_running.v); + Info(_log, "%s after %i ms", QSTRING_CSTR(message), now - _endingTime); + + + _modeSDR = true; + GlobalSignals::getInstance()->SignalRequestComponent(hyperhdr::Components::COMP_HDR, -1, false); + } + } + else if (!triggered && _modeSDR) + { + auto now = InternalClock::now() / 1000; + if (_startedTime == 0 || _startedTime > now) + { + _startedTime = now; + } + else if (_startedTime + _timeInSec <= now) + { + _modeSDR = false; + Info(_log, "Tone mapping ON triggered after %i sec", now - _startedTime); + GlobalSignals::getInstance()->SignalRequestComponent(hyperhdr::Components::COMP_HDR, -1, true); + } + } + + if (!triggered) + { + _endingTime = 0; + } + else + { + _startedTime = 0; + } + + _running = _config; + } +} + +void AutomaticToneMapping::setConfig(bool enabled, const ToneMappingThresholds& newConfig, int timeInSec, int timeToDisableInMSec) +{ + _enabled = enabled; + _config = newConfig; + _timeInSec = timeInSec; + _timeToDisableInMSec = timeToDisableInMSec; + _running = _config; + Info(_log, "Enabled: %s, time to enable: %is, time to disable: %ims, thresholds: { %i, %i, %i}", (enabled) ? "yes" : "no", _timeInSec, _timeToDisableInMSec, _config.y, _config.u, _config.v); +} + +void AutomaticToneMapping::setToneMapping(bool enabled) +{ + Info(_log, "Tone mapping is currently: %s", (enabled) ? "enabled" : "disabled"); + _modeSDR = !enabled; + _startedTime = 0; + _endingTime = 0; +} + + diff --git a/sources/base/Grabber.cpp b/sources/base/Grabber.cpp index 7e54ff3fd..d25dfa0b8 100644 --- a/sources/base/Grabber.cpp +++ b/sources/base/Grabber.cpp @@ -966,3 +966,18 @@ void Grabber::signalSetLutHandler(MemoryBuffer* lut) else Error(_log, "Could not set LUT: current size = %i, incoming size = %i", _lut.size(), (lut != nullptr) ? lut->size() : 0); } + +void Grabber::setAutomaticToneMappingConfig(bool enabled, const AutomaticToneMapping::ToneMappingThresholds& newConfig, int timeInSec, int timeToDisableInMSec) +{ + _automaticToneMapping.setConfig(enabled, newConfig, timeInSec, timeToDisableInMSec); + if (_automaticToneMapping.prepare() && !_qframe) + Error(_log, "Automatic tone mapping requires 'Quarter of frame' mode enabled"); + if (_automaticToneMapping.prepare() && (_enc != PixelFormat::YUYV && _enc != PixelFormat::NV12 && _enc != PixelFormat::P010 )) + Warning(_log, "Automatic tone mapping requires YUYV/NV12/P010 video format"); + +} + +void Grabber::setAutoToneMappingCurrentStateEnabled(bool enabled) +{ + _automaticToneMapping.setToneMapping(enabled); +} diff --git a/sources/base/GrabberWrapper.cpp b/sources/base/GrabberWrapper.cpp index c6cbba6cb..29bbcf966 100644 --- a/sources/base/GrabberWrapper.cpp +++ b/sources/base/GrabberWrapper.cpp @@ -344,6 +344,7 @@ void GrabberWrapper::setHdrToneMappingEnabled(int mode) if (_grabber != NULL) { _grabber->setHdrToneMappingEnabled(mode); + _grabber->setAutoToneMappingCurrentStateEnabled(mode); } } @@ -579,6 +580,19 @@ void GrabberWrapper::handleSettingsUpdate(settings::type type, const QJsonDocume emit SignalVideoStreamChanged(currentDevice, currentVideoMode); } + + if (type == settings::type::AUTOTONEMAPPING && _grabber != nullptr) + { + const QJsonObject& obj = config.object(); + auto enabled = obj["enable"].toBool(false); + AutomaticToneMapping::ToneMappingThresholds t; + t.y = obj["tone_mapping_y_threshold"].toInt(155); + t.u = obj["tone_mapping_u_threshold"].toInt(175); + t.v = obj["tone_mapping_v_threshold"].toInt(160); + auto timeToEnableInSec = obj["time_to_tone_mapping"].toInt(30); + auto timeToDisableInMSec = obj["time_to_disable_tone_mapping"].toInt(500); + _grabber->setAutomaticToneMappingConfig(enabled, t, timeToEnableInSec, timeToDisableInMSec); + } } QString GrabberWrapper::getVideoCurrentModeResolution() diff --git a/sources/base/hyperhdr.schema.json b/sources/base/hyperhdr.schema.json index 09e455396..eb48d61d9 100644 --- a/sources/base/hyperhdr.schema.json +++ b/sources/base/hyperhdr.schema.json @@ -102,6 +102,10 @@ "mqtt": { "$ref": "schema-mqtt.json" + }, + "automaticToneMapping" : + { + "$ref": "schema-automaticToneMapping.json" } }, "additionalProperties" : false diff --git a/sources/base/resource.qrc b/sources/base/resource.qrc index 71197887a..0d4d028f6 100644 --- a/sources/base/resource.qrc +++ b/sources/base/resource.qrc @@ -26,5 +26,6 @@ schema/schema-videoDetection.json schema/schema-network.json schema/schema-mqtt.json + schema/schema-automaticToneMapping.json diff --git a/sources/base/schema/schema-automaticToneMapping.json b/sources/base/schema/schema-automaticToneMapping.json new file mode 100644 index 000000000..7cf2780d6 --- /dev/null +++ b/sources/base/schema/schema-automaticToneMapping.json @@ -0,0 +1,104 @@ +{ + "type" : "object", + "title" : "edt_automatic_tone_mapping_title", + "properties" : + { + "enable" : + { + "type" : "boolean", + "format": "checkbox", + "title" : "edt_conf_general_enable_title", + "default" : false, + "required" : true, + "propertyOrder" : 1 + }, + "tone_mapping_y_threshold" : + { + "type" : "integer", + "format": "stepper", + "step" : 1, + "title" : "edt_automatic_tone_mapping_y_threshold_title", + "minimum" : 150, + "maximum" : 255, + "default" : 180, + "required" : true, + "options": { + "dependencies": { + "enable": true + } + }, + "propertyOrder" : 2 + }, + "tone_mapping_u_threshold" : + { + "type" : "integer", + "format": "stepper", + "step" : 1, + "title" : "edt_automatic_tone_mapping_u_threshold_title", + "minimum" : 165, + "maximum" : 255, + "default" : 175, + "required" : true, + "options": { + "dependencies": { + "enable": true + } + }, + "propertyOrder" : 3 + }, + "tone_mapping_v_threshold" : + { + "type" : "integer", + "format": "stepper", + "step" : 1, + "title" : "edt_automatic_tone_mapping_v_threshold_title", + "minimum" : 155, + "maximum" : 255, + "default" : 160, + "required" : true, + "options": { + "dependencies": { + "enable": true + } + }, + "propertyOrder" : 4 + }, + "time_to_tone_mapping" : + { + "type" : "integer", + "format": "stepper", + "step" : 5, + "title" : "edt_automatic_tone_mapping_time_title", + "minimum" : 5, + "maximum": 600, + "default" : 30, + "append" : "edt_append_s", + "required" : true, + "options": { + "dependencies": { + "enable": true + } + }, + "propertyOrder" : 5 + }, + "time_to_disable_tone_mapping" : + { + "type" : "integer", + "format": "stepper", + "step" : 100, + "title" : "edt_automatic_tone_mapping_disable_time_title", + "minimum" : 0, + "maximum": 5000, + "default" : 500, + "append" : "edt_append_ms", + "required" : true, + "options": { + "dependencies": { + "enable": true + } + }, + "propertyOrder" : 6 + } + }, + "additionalProperties" : false +} diff --git a/sources/db/SettingsTable.cpp b/sources/db/SettingsTable.cpp index f54d2254e..1c772cf46 100644 --- a/sources/db/SettingsTable.cpp +++ b/sources/db/SettingsTable.cpp @@ -122,7 +122,7 @@ bool SettingsTable::isSettingGlobal(const QString& type) const << settings::typeToString(settings::type::VIDEOGRABBER) << settings::typeToString(settings::type::SYSTEMGRABBER) << settings::typeToString(settings::type::LOGGER) << settings::typeToString(settings::type::GENERAL) << settings::typeToString(settings::type::SNDEFFECT) << settings::typeToString(settings::type::VIDEODETECTION) - << settings::typeToString(settings::type::MQTT) + << settings::typeToString(settings::type::MQTT) << settings::typeToString(settings::type::AUTOTONEMAPPING) // legacy << "grabberV4L2"; diff --git a/sources/flatbuffers/server/FlatBuffersServer.cpp b/sources/flatbuffers/server/FlatBuffersServer.cpp index c58523d7d..a0c88da0a 100644 --- a/sources/flatbuffers/server/FlatBuffersServer.cpp +++ b/sources/flatbuffers/server/FlatBuffersServer.cpp @@ -348,6 +348,12 @@ void FlatBuffersServer::handlerImageReceived(int priority, FlatBuffersParser::Fl Image image(flatImage->width, flatImage->height); memmove(image.rawMem(), flatImage->firstPlane.data, flatImage->size); + if (_hdrToneMappingEnabled && !_lutBufferInit) + { + emit GlobalSignals::getInstance()->SignalLutRequest(); + Error(_log, "The LUT file is not loaded. A new LUT was requested. It usually takes less than a minute"); + } + if (getHdrToneMappingEnabled()) FrameDecoder::applyLUT((uint8_t*)image.rawMem(), image.width(), image.height(), _lut.data(), getHdrToneMappingEnabled()); @@ -369,7 +375,8 @@ void FlatBuffersServer::handlerImageReceived(int priority, FlatBuffersParser::Fl if (!_lutBufferInit) { - Error(_log, "The LUT file is not loaded"); + emit GlobalSignals::getInstance()->SignalLutRequest(); + Error(_log, "The LUT file is not loaded. A new LUT was requested. It usually takes less than a minute"); } else if (flatImage->size != ((flatImage->width * flatImage->height * 3) / 2) || flatImage->size == 0) { diff --git a/sources/grabber/linux/v4l2/V4L2Grabber.cpp b/sources/grabber/linux/v4l2/V4L2Grabber.cpp index 7d9acf613..64a24532a 100644 --- a/sources/grabber/linux/v4l2/V4L2Grabber.cpp +++ b/sources/grabber/linux/v4l2/V4L2Grabber.cpp @@ -1277,7 +1277,7 @@ bool V4L2Grabber::process_image(v4l2_buffer* buf, const void* frameImageBuffer, (uint8_t*)frameImageBuffer, size, _actualWidth, _actualHeight, _lineLength, _cropLeft, _cropTop, _cropBottom, _cropRight, processFrameIndex, InternalClock::nowPrecise(), _hdrToneMappingEnabled, - (_lutBufferInit) ? _lut.data() : nullptr, _qframe, directAccess, _deviceName); + (_lutBufferInit) ? _lut.data() : nullptr, _qframe, directAccess, _deviceName, _automaticToneMapping.prepare()); if (_V4L2WorkerManager.workersCount > 1) _V4L2WorkerManager.workers[i]->start(); diff --git a/sources/grabber/linux/v4l2/V4L2Worker.cpp b/sources/grabber/linux/v4l2/V4L2Worker.cpp index 3584c139b..45ef96aab 100644 --- a/sources/grabber/linux/v4l2/V4L2Worker.cpp +++ b/sources/grabber/linux/v4l2/V4L2Worker.cpp @@ -139,7 +139,8 @@ V4L2Worker::V4L2Worker() : _frameBegin(0), _hdrToneMappingEnabled(0), _lutBuffer(nullptr), - _qframe(false) + _qframe(false), + _automaticToneMapping(nullptr) { } @@ -154,7 +155,7 @@ void V4L2Worker::setup(unsigned int __workerIndex, v4l2_buffer* __v4l2Buf, Pixel uint8_t* __sharedData, int __size, int __width, int __height, int __lineLength, uint __cropLeft, uint __cropTop, uint __cropBottom, uint __cropRight, quint64 __currentFrame, qint64 __frameBegin, - int __hdrToneMappingEnabled, uint8_t* __lutBuffer, bool __qframe, bool __directAccess, QString __deviceName) + int __hdrToneMappingEnabled, uint8_t* __lutBuffer, bool __qframe, bool __directAccess, QString __deviceName, AutomaticToneMapping* __automaticToneMapping) { _workerIndex = __workerIndex; memcpy(&_v4l2Buf, __v4l2Buf, sizeof(v4l2_buffer)); @@ -175,6 +176,7 @@ void V4L2Worker::setup(unsigned int __workerIndex, v4l2_buffer* __v4l2Buf, Pixel _qframe = __qframe; _directAccess = __directAccess; _deviceName = __deviceName; + _automaticToneMapping = __automaticToneMapping; } v4l2_buffer* V4L2Worker::GetV4L2Buffer() @@ -201,7 +203,7 @@ void V4L2Worker::runMe() { Image image(_width >> 1, _height >> 1); FrameDecoder::processQImage( - _sharedData, nullptr, _width, _height, _lineLength, _pixelFormat, _lutBuffer, image, _hdrToneMappingEnabled); + _sharedData, nullptr, _width, _height, _lineLength, _pixelFormat, _lutBuffer, image, _hdrToneMappingEnabled, _automaticToneMapping); image.setBufferCacheSize(); if (!_directAccess) diff --git a/sources/grabber/osx/AVF/AVFGrabber.mm b/sources/grabber/osx/AVF/AVFGrabber.mm index d9d2248d2..2c52a8e02 100644 --- a/sources/grabber/osx/AVF/AVFGrabber.mm +++ b/sources/grabber/osx/AVF/AVFGrabber.mm @@ -839,7 +839,7 @@ - (void)captureOutput:(AVCaptureOutput *)output didOutputSampleBuffer:(CMSampleB (uint8_t*)frameImageBuffer, size, _actualWidth, _actualHeight, _lineLength, _cropLeft, _cropTop, _cropBottom, _cropRight, processFrameIndex, InternalClock::nowPrecise(), _hdrToneMappingEnabled, - (_lutBufferInit) ? _lut.data() : nullptr, _qframe, directAccess, _deviceName); + (_lutBufferInit) ? _lut.data() : nullptr, _qframe, directAccess, _deviceName, _automaticToneMapping.prepare()); if (_AVFWorkerManager.workersCount > 1) _AVFWorkerManager.workers[i]->start(); diff --git a/sources/grabber/osx/AVF/AVFWorker.cpp b/sources/grabber/osx/AVF/AVFWorker.cpp index 2d1438b73..afdc38088 100644 --- a/sources/grabber/osx/AVF/AVFWorker.cpp +++ b/sources/grabber/osx/AVF/AVFWorker.cpp @@ -141,7 +141,8 @@ AVFWorker::AVFWorker() : _frameBegin(0), _hdrToneMappingEnabled(0), _lutBuffer(nullptr), - _qframe(false) + _qframe(false), + _automaticToneMapping(nullptr) { } @@ -154,7 +155,7 @@ void AVFWorker::setup(unsigned int __workerIndex, PixelFormat __pixelFormat, uint8_t* __sharedData, int __size, int __width, int __height, int __lineLength, uint __cropLeft, uint __cropTop, uint __cropBottom, uint __cropRight, quint64 __currentFrame, qint64 __frameBegin, - int __hdrToneMappingEnabled, uint8_t* __lutBuffer, bool __qframe, bool __directAccess, QString __deviceName) + int __hdrToneMappingEnabled, uint8_t* __lutBuffer, bool __qframe, bool __directAccess, QString __deviceName, AutomaticToneMapping* __automaticToneMapping) { _workerIndex = __workerIndex; _lineLength = __lineLength; @@ -173,6 +174,7 @@ void AVFWorker::setup(unsigned int __workerIndex, PixelFormat __pixelFormat, _qframe = __qframe; _directAccess = __directAccess; _deviceName = __deviceName; + _automaticToneMapping = __automaticToneMapping; _localBuffer.resize((size_t)__size + 1); @@ -193,7 +195,7 @@ void AVFWorker::runMe() { Image image(_width >> 1, _height >> 1); FrameDecoder::processQImage( - _localBuffer.data(), nullptr, _width, _height, _lineLength, _pixelFormat, _lutBuffer, image); + _localBuffer.data(), nullptr, _width, _height, _lineLength, _pixelFormat, _lutBuffer, image, _hdrToneMappingEnabled, _automaticToneMapping); image.setBufferCacheSize(); if (!_directAccess) diff --git a/sources/grabber/windows/MF/MFGrabber.cpp b/sources/grabber/windows/MF/MFGrabber.cpp index b6f6f8ea2..2e5c33275 100644 --- a/sources/grabber/windows/MF/MFGrabber.cpp +++ b/sources/grabber/windows/MF/MFGrabber.cpp @@ -1034,7 +1034,7 @@ bool MFGrabber::process_image(const void* frameImageBuffer, int size) (uint8_t*)frameImageBuffer, size, _actualWidth, _actualHeight, _lineLength, _cropLeft, _cropTop, _cropBottom, _cropRight, processFrameIndex, InternalClock::nowPrecise(), _hdrToneMappingEnabled, - (_lutBufferInit) ? _lut.data() : nullptr, _qframe, directAccess, _deviceName); + (_lutBufferInit) ? _lut.data() : nullptr, _qframe, directAccess, _deviceName, _automaticToneMapping.prepare()); if (_MFWorkerManager.workersCount > 1) _MFWorkerManager.workers[i]->start(); diff --git a/sources/grabber/windows/MF/MFWorker.cpp b/sources/grabber/windows/MF/MFWorker.cpp index abd453011..426d769b1 100644 --- a/sources/grabber/windows/MF/MFWorker.cpp +++ b/sources/grabber/windows/MF/MFWorker.cpp @@ -140,7 +140,8 @@ MFWorker::MFWorker() : _hdrToneMappingEnabled(0), _lutBuffer(nullptr), _qframe(false), - _directAccess(false) + _directAccess(false), + _automaticToneMapping(nullptr) { } @@ -155,7 +156,7 @@ void MFWorker::setup(unsigned int __workerIndex, PixelFormat __pixelFormat, uint8_t* __sharedData, int __size, int __width, int __height, int __lineLength, uint __cropLeft, uint __cropTop, uint __cropBottom, uint __cropRight, quint64 __currentFrame, qint64 __frameBegin, - int __hdrToneMappingEnabled, uint8_t* __lutBuffer, bool __qframe, bool __directAccess, QString __deviceName) + int __hdrToneMappingEnabled, uint8_t* __lutBuffer, bool __qframe, bool __directAccess, QString __deviceName, AutomaticToneMapping* __automaticToneMapping) { _workerIndex = __workerIndex; _lineLength = __lineLength; @@ -174,6 +175,7 @@ void MFWorker::setup(unsigned int __workerIndex, PixelFormat __pixelFormat, _qframe = __qframe; _directAccess = __directAccess; _deviceName = __deviceName; + _automaticToneMapping = __automaticToneMapping; _localBuffer.resize((size_t)__size + 1); @@ -199,7 +201,7 @@ void MFWorker::runMe() { Image image(_width >> 1, _height >> 1); FrameDecoder::processQImage( - _localBuffer.data(), nullptr, _width, _height, _lineLength, _pixelFormat, _lutBuffer, image, _hdrToneMappingEnabled); + _localBuffer.data(), nullptr, _width, _height, _lineLength, _pixelFormat, _lutBuffer, image, _hdrToneMappingEnabled, _automaticToneMapping); image.setBufferCacheSize(); if (!_directAccess) diff --git a/sources/hyperhdr/HyperHdrDaemon.cpp b/sources/hyperhdr/HyperHdrDaemon.cpp index 541451e6a..7cebeca08 100644 --- a/sources/hyperhdr/HyperHdrDaemon.cpp +++ b/sources/hyperhdr/HyperHdrDaemon.cpp @@ -423,6 +423,7 @@ template void HyperHdrDaemon::createVideoGrabberHelper(QJsonDocument config, QString deviceName, QString rootPath) { auto videoDetection = getSetting(settings::type::VIDEODETECTION); + auto autoToneMapping = getSetting(settings::type::AUTOTONEMAPPING); _videoGrabber = std::shared_ptr( new GrabberHelper(), @@ -436,7 +437,7 @@ void HyperHdrDaemon::createVideoGrabberHelper(QJsonDocument config, QString devi _videoGrabber->moveToThread(_videoGrabberThread); connect(_videoGrabberThread, &QThread::started, _videoGrabber.get(), &GrabberHelper::SignalCreateGrabber); connect(_videoGrabberThread, &QThread::finished, _videoGrabber.get(), &GrabberHelper::deleteLater); - connect(_videoGrabber.get(), &GrabberHelper::SignalCreateGrabber, _videoGrabber.get(), [this, videoDetection, config, deviceName, rootPath]() { + connect(_videoGrabber.get(), &GrabberHelper::SignalCreateGrabber, _videoGrabber.get(), [this, videoDetection, config, autoToneMapping, deviceName, rootPath]() { _videoGrabber->linker.release(1); auto videoGrabberInstance = new T(deviceName, rootPath); _videoGrabber->setGrabber(videoGrabberInstance); @@ -450,6 +451,7 @@ void HyperHdrDaemon::createVideoGrabberHelper(QJsonDocument config, QString devi #endif videoGrabberInstance->GrabberWrapper::handleSettingsUpdate(settings::type::VIDEOGRABBER, config); videoGrabberInstance->GrabberWrapper::handleSettingsUpdate(settings::type::VIDEODETECTION, videoDetection); + videoGrabberInstance->GrabberWrapper::handleSettingsUpdate(settings::type::AUTOTONEMAPPING, autoToneMapping); _videoGrabber->linker.release(1); }); diff --git a/sources/lut-calibrator/BoardUtils.cpp b/sources/lut-calibrator/BoardUtils.cpp index 31a8a89e5..28b9dd7ca 100644 --- a/sources/lut-calibrator/BoardUtils.cpp +++ b/sources/lut-calibrator/BoardUtils.cpp @@ -443,6 +443,13 @@ namespace BoardUtils for (int b = 0; b < SCREEN_COLOR_DIMENSION; b++) { all[r][g][b].setCoords(byte3(r, g, b)); + + if (all[r][g][b].Y() > _rangeYUV.x) + _rangeYUV.x = all[r][g][b].Y(); + if (all[r][g][b].U() > _rangeYUV.y) + _rangeYUV.y = all[r][g][b].U(); + if (all[r][g][b].V() > _rangeYUV.z) + _rangeYUV.z = all[r][g][b].V(); } } @@ -451,12 +458,13 @@ namespace BoardUtils yuv.x = ((yuv.x - downYLimit) / (upYLimit - downYLimit)) * yRange + yShift; } - void CapturedColors::getSignalParams(double& yRange, double& upYLimit, double& downYLimit, double& yShift) + void CapturedColors::getSignalParams(double& yRange, double& upYLimit, double& downYLimit, double& yShift, byte3& rangeYUV) { yRange = _yRange; upYLimit = _upYLimit; downYLimit = _downYLimit; yShift = _yShift; + rangeYUV = _rangeYUV; } void CapturedColors::setCaptured(int index) diff --git a/sources/lut-calibrator/LutCalibrator.cpp b/sources/lut-calibrator/LutCalibrator.cpp index e56057fb1..6e80516b2 100644 --- a/sources/lut-calibrator/LutCalibrator.cpp +++ b/sources/lut-calibrator/LutCalibrator.cpp @@ -1125,7 +1125,7 @@ void LutCalibrator::fineTune(bool precise) // set startup parameters (signal) bestResult->signal.range = _capturedColors->getRange(); - _capturedColors->getSignalParams(bestResult->signal.yRange, bestResult->signal.upYLimit, bestResult->signal.downYLimit, bestResult->signal.yShift); + _capturedColors->getSignalParams(bestResult->signal.yRange, bestResult->signal.upYLimit, bestResult->signal.downYLimit, bestResult->signal.yShift, bestResult->signal.yuvRange); if (bestResult->signal.isSourceP010) { @@ -1136,6 +1136,16 @@ void LutCalibrator::fineTune(bool precise) double down = bestResult->signal.downYLimit; unpackP010(&down, nullptr, nullptr); bestResult->signal.downYLimit = down; + + double3 yuvrange = static_cast(bestResult->signal.yuvRange); + yuvrange.x /= 255.0; + yuvrange.y = (yuvrange.y - 128.0) / 128.0; + yuvrange.z = (yuvrange.z - 128.0) / 128.0; + unpackP010(yuvrange); + yuvrange.x *= 255.0; + yuvrange.y = yuvrange.y * 128.0 + 128.0; + yuvrange.z = yuvrange.z * 128.0 + 128.0; + bestResult->signal.yuvRange = static_cast(yuvrange); } if (bestResult->signal.range == YuvConverter::COLOR_RANGE::LIMITED) @@ -1842,7 +1852,7 @@ void LutCalibrator::CreateDefaultLut(QString filepath) bestResult.signal.downYLimit = 0.062745; bestResult.signal.yShift = 0.062745; bestResult.signal.isSourceP010 = 0; - bestResult.minError = 212.883333; + bestResult.minError = 212; auto worker = new DefaultLutCreatorWorker(bestResult, filepath); QThreadPool::globalInstance()->start(worker); diff --git a/sources/utils/FrameDecoder.cpp b/sources/utils/FrameDecoder.cpp index 818185da9..5b053e461 100644 --- a/sources/utils/FrameDecoder.cpp +++ b/sources/utils/FrameDecoder.cpp @@ -492,7 +492,7 @@ void FrameDecoder::processImage( void FrameDecoder::processQImage( const uint8_t* data, const uint8_t* dataUV, int width, int height, int lineLength, - const PixelFormat pixelFormat, const uint8_t* lutBuffer, Image& outputImage, bool toneMapping) + const PixelFormat pixelFormat, const uint8_t* lutBuffer, Image& outputImage, bool toneMapping, AutomaticToneMapping* automaticToneMapping) { uint32_t ind_lutd; uint8_t buffer[8]; @@ -524,7 +524,7 @@ void FrameDecoder::processQImage( int destLineSize = outputImage.width() * 3; - if (pixelFormat == PixelFormat::YUYV) + if (pixelFormat == PixelFormat::YUYV && automaticToneMapping == nullptr) { for (int yDest = 0, ySource = 0; yDest < outputHeight; ySource += 2, ++yDest) { @@ -545,6 +545,28 @@ void FrameDecoder::processQImage( } return; } + if (pixelFormat == PixelFormat::YUYV && automaticToneMapping != nullptr) + { + for (int yDest = 0, ySource = 0; yDest < outputHeight; ySource += 2, ++yDest) + { + uint8_t* currentDest = destMemory + ((uint64_t)destLineSize) * yDest; + uint8_t* endDest = currentDest + destLineSize; + uint8_t* currentSource = (uint8_t*)data + (((uint64_t)lineLength * ySource)); + + while (currentDest < endDest) + { + *((uint32_t*)&buffer) = *((uint32_t*)currentSource); + + ind_lutd = LUT_INDEX((automaticToneMapping->checkY(buffer[0])), (automaticToneMapping->checkU(buffer[1])), (automaticToneMapping->checkV(buffer[3]))); + + *((uint32_t*)currentDest) = *((uint32_t*)(&lutBuffer[ind_lutd])); + currentDest += 3; + currentSource += 4; + } + } + automaticToneMapping->finilize(); + return; + } if (pixelFormat == PixelFormat::UYVY) { @@ -662,7 +684,7 @@ void FrameDecoder::processQImage( return; } - if (pixelFormat == PixelFormat::P010) + if (pixelFormat == PixelFormat::P010 && automaticToneMapping == nullptr) { uint16_t p010[2] = {}; @@ -713,8 +735,65 @@ void FrameDecoder::processQImage( } return; } + if (pixelFormat == PixelFormat::P010 && automaticToneMapping != nullptr) + { + uint16_t p010[2] = {}; - if (pixelFormat == PixelFormat::NV12) + if (!FrameDecoderUtils::initialized) + { + initP010(); + } + + uint8_t* deltaUV = (dataUV != nullptr) ? (uint8_t*)dataUV : (uint8_t*)data + lineLength * height; + for (int yDest = 0, ySource = 0; yDest < outputHeight; ySource += 2, ++yDest) + { + uint8_t* currentDest = destMemory + ((uint64_t)destLineSize) * yDest; + uint8_t* endDest = currentDest + destLineSize; + uint8_t* currentSource = (uint8_t*)data + (((uint64_t)lineLength * ySource)); + uint8_t* currentSourceU = deltaUV + (((uint64_t)ySource / 2) * lineLength); + + while (currentDest < endDest) + { + memcpy(((uint16_t*)&p010), ((uint16_t*)currentSource), 2); + if (toneMapping) + { + automaticToneMapping->checkY(p010[0] >> 8); + + buffer[0] = lutP010_y[p010[0] >> 6]; + } + else + { + buffer[0] = automaticToneMapping->checkY(p010[0] >> 8); + } + currentSource += 4; + memcpy(((uint32_t*)&p010), ((uint32_t*)currentSourceU), 4); + if (toneMapping) + { + automaticToneMapping->checkU(p010[0] >> 8); + automaticToneMapping->checkV(p010[1] >> 8); + + buffer[2] = lutP010_uv[p010[0] >> 6]; + buffer[3] = lutP010_uv[p010[1] >> 6]; + } + else + { + buffer[2] = automaticToneMapping->checkU(p010[0] >> 8); + buffer[3] = automaticToneMapping->checkV(p010[1] >> 8); + } + + currentSourceU += 4; + + ind_lutd = LUT_INDEX(buffer[0], buffer[2], buffer[3]); + + *((uint32_t*)currentDest) = *((uint32_t*)(&lutBuffer[ind_lutd])); + currentDest += 3; + } + } + automaticToneMapping->finilize(); + return; + } + + if (pixelFormat == PixelFormat::NV12 && automaticToneMapping == nullptr) { uint8_t* deltaUV = (dataUV != nullptr) ? (uint8_t*)dataUV : (uint8_t*)data + lineLength * height; for (int yDest = 0, ySource = 0; yDest < outputHeight; ySource += 2, ++yDest) @@ -739,6 +818,32 @@ void FrameDecoder::processQImage( } return; } + if (pixelFormat == PixelFormat::NV12 && automaticToneMapping != nullptr) + { + uint8_t* deltaUV = (dataUV != nullptr) ? (uint8_t*)dataUV : (uint8_t*)data + lineLength * height; + for (int yDest = 0, ySource = 0; yDest < outputHeight; ySource += 2, ++yDest) + { + uint8_t* currentDest = destMemory + ((uint64_t)destLineSize) * yDest; + uint8_t* endDest = currentDest + destLineSize; + uint8_t* currentSource = (uint8_t*)data + (((uint64_t)lineLength * ySource)); + uint8_t* currentSourceU = deltaUV + (((uint64_t)ySource / 2) * lineLength); + + while (currentDest < endDest) + { + *((uint8_t*)&buffer) = *((uint8_t*)currentSource); + currentSource += 2; + *((uint16_t*)&(buffer[2])) = *((uint16_t*)currentSourceU); + currentSourceU += 2; + + ind_lutd = LUT_INDEX((automaticToneMapping->checkY(buffer[0])), (automaticToneMapping->checkU(buffer[2])), (automaticToneMapping->checkV(buffer[3]))); + + *((uint32_t*)currentDest) = *((uint32_t*)(&lutBuffer[ind_lutd])); + currentDest += 3; + } + } + automaticToneMapping->finilize(); + return; + } } diff --git a/www/i18n/cs.json b/www/i18n/cs.json index ec6e2da24..04551ea29 100644 --- a/www/i18n/cs.json +++ b/www/i18n/cs.json @@ -1251,5 +1251,17 @@ "flatbuffers_nv12_quarter_of_frame_title": "Čtvrtina rámu pro NV12", "flatbuffers_nv12_quarter_of_frame_expl": "Kodek NV12 obsahuje čtyřikrát více informací o jasu než o barvě. Tato možnost umožňuje snížit zatížení procesoru snížením výšky a šířky snímku videa o 2, aniž by došlo ke ztrátě informací o barvách.", "chk_lchCorrection": "Korekce barev LCH", - "grabber_calibration_expl": "Tento nástroj vám umožňuje vytvořit novou kalibrovanou HDR LUT pro váš grabber (nebo externí zdroj flatbufferů) co nejblíže skutečným vstupním barvám.
Potřebujete zdroj videa HDR10, který dokáže zobrazit tuto webovou stránku, například: Windows 10 s povoleným HDR ve vlastnostech grafického ovladače.
Během kalibrace může obrazovka blikat. Tento proces obvykle trvá přibližně několik minut na počítači Intel 7 Windows (v závislosti na zdrojích hostitelského procesoru a snímkové rychlosti zachycování videa).
Výpočty jsou velmi intenzivní a zatěžují vaše zařízení Můžete deaktivovat korekci barev LCH, abyste trochu snížili zátěž
Postup můžete sledovat v protokolech HyperHDR pomocí prohlížeče z jiného zařízení.


1 Pokud je vše správně připojeno, měla by se tato stránka zobrazit na televizní obrazovce (jako obsah HDR) a živý náhled v HyperHDR (snímáno grabberem).
2 Absolutní minimální rozlišení snímání je 1280x720 (toto ověříme). Doporučeno je 1920x1080 YUV/NV12. Poměr stran 1920/1080 musí být zachován.
3 Pokud je povolen, musíte ve vlastnostech grabberu deaktivovat 'Režim čtvrtiny snímku'.
4 Vy musí nastavit formát videa grabberu na MJPEG/YUV/NV12/P010.
5 Před spuštěním procesu přepněte svůj WWW prohlížeč do režimu celé obrazovky (klávesa F11, ověříme to) .
6 Pokud provádíte kalibraci pomocí Windows 11, vypněte funkce, jako je „Noční světlo“, „Automatická správa barev pro aplikace“ a „Automatické HDR“. Neměňte vyvážení barev v ovladači grafiky. Výstup GFX by měl podporovat např. 10 nebo 12 bit RGB v plném rozsahu PC.

Po dokončení kalibrace bude v domovském adresáři uživatele HyperHDR vytvořen nový soubor tabulky LUT (lut_lin_tables.3d) a je okamžitě připraven použít, když pouze povolíte mapování tónů HDR. Podrobnosti naleznete v protokolech HyperHDR." + "grabber_calibration_expl": "Tento nástroj vám umožňuje vytvořit novou kalibrovanou HDR LUT pro váš grabber (nebo externí zdroj flatbufferů) co nejblíže skutečným vstupním barvám.
Potřebujete zdroj videa HDR10, který dokáže zobrazit tuto webovou stránku, například: Windows 10 s povoleným HDR ve vlastnostech grafického ovladače.
Během kalibrace může obrazovka blikat. Tento proces obvykle trvá přibližně několik minut na počítači Intel 7 Windows (v závislosti na zdrojích hostitelského procesoru a snímkové rychlosti zachycování videa).
Výpočty jsou velmi intenzivní a zatěžují vaše zařízení Můžete deaktivovat korekci barev LCH, abyste trochu snížili zátěž
Postup můžete sledovat v protokolech HyperHDR pomocí prohlížeče z jiného zařízení.


1 Pokud je vše správně připojeno, měla by se tato stránka zobrazit na televizní obrazovce (jako obsah HDR) a živý náhled v HyperHDR (snímáno grabberem).
2 Absolutní minimální rozlišení snímání je 1280x720 (toto ověříme). Doporučeno je 1920x1080 YUV/NV12. Poměr stran 1920/1080 musí být zachován.
3 Pokud je povolen, musíte ve vlastnostech grabberu deaktivovat 'Režim čtvrtiny snímku'.
4 Vy musí nastavit formát videa grabberu na MJPEG/YUV/NV12/P010.
5 Před spuštěním procesu přepněte svůj WWW prohlížeč do režimu celé obrazovky (klávesa F11, ověříme to) .
6 Pokud provádíte kalibraci pomocí Windows 11, vypněte funkce, jako je „Noční světlo“, „Automatická správa barev pro aplikace“ a „Automatické HDR“. Neměňte vyvážení barev v ovladači grafiky. Výstup GFX by měl podporovat např. 10 nebo 12 bit RGB v plném rozsahu PC.

Po dokončení kalibrace bude v domovském adresáři uživatele HyperHDR vytvořen nový soubor tabulky LUT (lut_lin_tables.3d) a je okamžitě připraven použít, když pouze povolíte mapování tónů HDR. Podrobnosti naleznete v protokolech HyperHDR.", + "edt_automatic_tone_mapping_title": "Automatické mapování tónů", + "edt_automatic_tone_mapping_enable_explain": "Automatické ovládání mapování tónů je k dispozici pouze pro video formáty 'YUV/NV12/P010' s 'Čtvrtina snímku' režim povolen. Nakonfigurujte je prosím v nastavení USB grabberu.
Komponenta automaticky povolí mapování tónů, pokud signál po určitou dobu nepřekročí nastavené prahové úrovně, a po jejich překročení je okamžitě deaktivuje.
Později pak můžete zkontrolovat, jaká byla hodnota, která překročila jakýkoli z prahů, což ve skutečnosti způsobilo, že mapování tónů bylo v protokolech HyperHDR zakázáno. A pak případně upravit konfiguraci, pokud generuje falešné události deaktivace mapování tónů (příliš nízký práh) nebo generuje zbytečné povolení mapování tónů v tmavých scénách SDR (příliš vysoký práh).", + "edt_automatic_tone_mapping_y_threshold_title": "Práh jasu (Y)", + "edt_automatic_tone_mapping_y_threshold_expl": "Úroveň jasu, která odděluje hrubý tmavý materiál HDR od signálu SDR.", + "edt_automatic_tone_mapping_u_threshold_title": "Práh modré sytosti (U)", + "edt_automatic_tone_mapping_u_threshold_expl": "Úroveň modré sytosti, která odděluje surový světlý materiál HDR od signálu SDR.", + "edt_automatic_tone_mapping_v_threshold_title": "Práh červené sytosti (V)", + "edt_automatic_tone_mapping_v_threshold_expl": "Úroveň červené sytosti, která odděluje surový světlý materiál HDR od signálu SDR.", + "edt_automatic_tone_mapping_time_title": "Je čas zapnout mapování tónů", + "edt_automatic_tone_mapping_time_expl": "Čas pro zapnutí mapování tónů, pokud signál nepřekročí nakonfigurované prahové úrovně.", + "edt_automatic_tone_mapping_disable_time_title": "Je čas vypnout mapování tónů", + "edt_automatic_tone_mapping_disable_time_expl": "V ideálním světě by tato hodnota měla být nula, protože mapování tónů by mělo být zakázáno ihned po překročení jednoho z prahů. Stává se to ale například: při spouštění nebo přepínání rozlišení může grabber generovat nevyžádané snímky, které mohou mapování tónů zbytečně zakázat." } diff --git a/www/i18n/de.json b/www/i18n/de.json index 6c8f7c1b7..b8b74f7b2 100644 --- a/www/i18n/de.json +++ b/www/i18n/de.json @@ -1251,5 +1251,17 @@ "flatbuffers_nv12_quarter_of_frame_title": "Viertel des Frames für NV12", "flatbuffers_nv12_quarter_of_frame_expl": "Der NV12-Codec enthält viermal mehr Informationen über Helligkeit als über Farbe. Mit dieser Option können Sie die CPU-Last reduzieren, indem Sie die Höhe und Breite des Video-Frames um 2 reduzieren, ohne Farbinformationen zu verlieren.", "chk_lchCorrection": "LCH-Farbkorrektur", - "grabber_calibration_expl": "Mit diesem Tool können Sie eine neue kalibrierte HDR-LUT für Ihren Grabber (oder eine externe Flatbuffer-Quelle) erstellen, die den tatsächlichen Eingabefarben so nahe wie möglich kommt.
Sie benötigen eine HDR10-Videoquelle, die diese Webseite anzeigen kann, zum Beispiel: Windows 10 mit aktiviertem HDR in den Eigenschaften des Grafiktreibers.
Der Bildschirm kann während der Kalibrierung flimmern. Der Vorgang dauert auf einem Intel 7 Windows-PC normalerweise einige Minuten (abhängig von den CPU-Ressourcen des Hosts und der Bildrate der Videoaufnahme).
Die Berechnungen sind sehr intensiv und belasten Ihre Ausrüstung Sie können die LCH-Farbkorrektur deaktivieren, um die Belastung etwas zu reduzieren.
Sie können den Fortschritt in den HyperHDR-Protokollen mit dem Browser eines anderen Geräts überwachen.


1 Wenn alles richtig angeschlossen ist, sollte diese Seite auf dem Fernsehbildschirm angezeigt werden (als HDR-Inhalt) und eine Live-Vorschau in HyperHDR (aufgenommen vom Grabber).
2 Die absolute Mindestauflösung für die Aufnahme beträgt 1280 x 720 (wir werden dies überprüfen). Empfohlen wird 1920 x 1080 YUV/NV12. Das Seitenverhältnis 1920/1080 muss beibehalten werden.
3 Sie müssen den „Viertelbildmodus“ in den Grabber-Eigenschaften deaktivieren, falls er aktiviert ist.
4 Sie müssen das Videoformat des Grabbers auf MJPEG/YUV/NV12/P010 einstellen.
5 Bevor Sie den Vorgang ausführen, schalten Sie Ihren WWW-Browser bitte in den Vollbildmodus (Taste F11, wir werden dies überprüfen).
6 Wenn Sie mit Windows 11 kalibrieren, deaktivieren Sie Funktionen wie „Nachtlicht“, „Farbe für Apps automatisch verwalten“ und „Auto-HDR“. Ändern Sie den Farbabgleich im Grafiktreiber nicht. Die GFX-Ausgabe sollte z. B. unterstützen. 10 oder 12 Bit RGB im vollen PC-Bereich.

Nach Abschluss der Kalibrierung wird Ihre neue LUT-Tabellendatei (lut_lin_tables.3d) im HyperHDR-Stammverzeichnis des Benutzers erstellt und ist sofort einsatzbereit, wenn Sie einfach das HDR-Tonemapping aktivieren. Weitere Informationen finden Sie in den HyperHDR-Protokollen." + "grabber_calibration_expl": "Mit diesem Tool können Sie eine neue kalibrierte HDR-LUT für Ihren Grabber (oder eine externe Flatbuffer-Quelle) erstellen, die den tatsächlichen Eingabefarben so nahe wie möglich kommt.
Sie benötigen eine HDR10-Videoquelle, die diese Webseite anzeigen kann, zum Beispiel: Windows 10 mit aktiviertem HDR in den Eigenschaften des Grafiktreibers.
Der Bildschirm kann während der Kalibrierung flimmern. Der Vorgang dauert auf einem Intel 7 Windows-PC normalerweise einige Minuten (abhängig von den CPU-Ressourcen des Hosts und der Bildrate der Videoaufnahme).
Die Berechnungen sind sehr intensiv und belasten Ihre Ausrüstung Sie können die LCH-Farbkorrektur deaktivieren, um die Belastung etwas zu reduzieren.
Sie können den Fortschritt in den HyperHDR-Protokollen mit dem Browser eines anderen Geräts überwachen.


1 Wenn alles richtig angeschlossen ist, sollte diese Seite auf dem Fernsehbildschirm angezeigt werden (als HDR-Inhalt) und eine Live-Vorschau in HyperHDR (aufgenommen vom Grabber).
2 Die absolute Mindestauflösung für die Aufnahme beträgt 1280 x 720 (wir werden dies überprüfen). Empfohlen wird 1920 x 1080 YUV/NV12. Das Seitenverhältnis 1920/1080 muss beibehalten werden.
3 Sie müssen den „Viertelbildmodus“ in den Grabber-Eigenschaften deaktivieren, falls er aktiviert ist.
4 Sie müssen das Videoformat des Grabbers auf MJPEG/YUV/NV12/P010 einstellen.
5 Bevor Sie den Vorgang ausführen, schalten Sie Ihren WWW-Browser bitte in den Vollbildmodus (Taste F11, wir werden dies überprüfen).
6 Wenn Sie mit Windows 11 kalibrieren, deaktivieren Sie Funktionen wie „Nachtlicht“, „Farbe für Apps automatisch verwalten“ und „Auto-HDR“. Ändern Sie den Farbabgleich im Grafiktreiber nicht. Die GFX-Ausgabe sollte z. B. unterstützen. 10 oder 12 Bit RGB im vollen PC-Bereich.

Nach Abschluss der Kalibrierung wird Ihre neue LUT-Tabellendatei (lut_lin_tables.3d) im HyperHDR-Stammverzeichnis des Benutzers erstellt und ist sofort einsatzbereit, wenn Sie einfach das HDR-Tonemapping aktivieren. Weitere Informationen finden Sie in den HyperHDR-Protokollen.", + "edt_automatic_tone_mapping_title": "Automatisches Tone Mapping", + "edt_automatic_tone_mapping_enable_explain": "Die automatische Tone Mapping-Steuerung ist nur für 'YUV/NV12/P010'-Videoformate mit aktiviertem 'Viertelbild'-Modus verfügbar. Bitte konfigurieren Sie sie in den USB-Grabber-Einstellungen.
Die Komponente aktiviert das Tone Mapping automatisch, wenn das Signal die konfigurierten Schwellenwerte für einen bestimmten Zeitraum nicht überschreitet, und deaktiviert es sofort nach Überschreiten.
Später können Sie dann überprüfen, welcher Wert einen der Schwellenwerte überschritten hat, wodurch das Tone Mapping in den HyperHDR-Protokollen tatsächlich deaktiviert wurde. Und dann können Sie die Konfiguration möglicherweise anpassen, wenn sie falsche Ereignisse zur Deaktivierung des Tone Mappings generiert (Schwellenwert zu niedrig) oder unnötiges Aktivieren des Tone Mappings in dunklen SDR-Szenen generiert (Schwellenwert zu hoch).", + "edt_automatic_tone_mapping_y_threshold_title": "Helligkeitsschwelle (Y)", + "edt_automatic_tone_mapping_y_threshold_expl": "Der Helligkeitspegel, der dunkles HDR-Rohmaterial vom SDR-Signal trennt.", + "edt_automatic_tone_mapping_u_threshold_title": "Blauer Chroma-Schwellenwert (U)", + "edt_automatic_tone_mapping_u_threshold_expl": "Blauer Chroma-Pegel, der blasses HDR-Rohmaterial vom SDR-Signal trennt.", + "edt_automatic_tone_mapping_v_threshold_title": "Roter Chroma-Schwellenwert (V)", + "edt_automatic_tone_mapping_v_threshold_expl": "Roter Chroma-Pegel, der blasses HDR-Rohmaterial vom SDR-Signal trennt.", + "edt_automatic_tone_mapping_time_title": "Zeit zum Einschalten des Tone Mappings", + "edt_automatic_tone_mapping_time_expl": "Zeit zum Einschalten des Tone Mappings, wenn das Signal die konfigurierten Schwellenwerte nicht überschreitet.", + "edt_automatic_tone_mapping_disable_time_title": "Zeit, das Tone Mapping auszuschalten", + "edt_automatic_tone_mapping_disable_time_expl": "In einer idealen Welt sollte dieser Wert Null sein, da das Tone Mapping sofort nach dem Überschreiten eines der Schwellenwerte deaktiviert werden sollte. Aber es passiert beispielsweise: Beim Starten oder Umschalten der Auflösung kann der Grabber Junk-Frames generieren, wodurch das Tone Mapping unnötig deaktiviert werden kann." } diff --git a/www/i18n/en.json b/www/i18n/en.json index 7e7f2030a..da484516a 100644 --- a/www/i18n/en.json +++ b/www/i18n/en.json @@ -1251,5 +1251,17 @@ "flatbuffers_nv12_quarter_of_frame_title": "Quarter of frame for NV12", "flatbuffers_nv12_quarter_of_frame_expl": "The NV12 codec contains four times more information about brightness than about color. This option allows you to reduce CPU load by reducing the height and width of the video frame by 2 without losing color information.", "chk_lchCorrection": "LCH color correction", - "grabber_calibration_expl": "This tool allows you to create a new calibrated HDR LUT for your grabber (or external flatbuffers source) as close to the actual input colors as possible.
You need an HDR10 video source that can display this web page, for example: Windows 10 with HDR enabled in the properties of the graphics driver.
The screen may flicker during calibration. The process typically takes about few minutes on a Intel 7 Windows PC (depending on the host CPU resources and the video capturing framerate).
The calculations are very intensive and put a strain on your equipment You can disable LCH color correction to reduce the load a bit
You can monitor the progress in HyperHDR logs using the browser from other device.


1 If everything is properly connected, this page should be displayed on the TV screen (as HDR content) and live preview in HyperHDR (captured by the grabber).
2 Absolute minimum capturing resolution is 1280x720 (we will verify this). Recommended is 1920x1080 YUV/NV12. Aspect 1920/1080 must be preserved.
3 You must disable 'Quarter of frame mode' in your grabber properties if it's enabled.
4 You must set the grabber's video format to MJPEG/YUV/NV12/P010.
5 Before you run the process please put your WWW browser in the full-screen mode (F11 key, we will verify this).
6 If you are calibrating using Windows 11, turn off features such as 'Night light', 'Automatic manage color for apps' and 'Auto-HDR'. Do not change the color balance in the graphics driver. The GFX output should support e.g. 10 or 12 bit RGB in full PC range.

After completing the calibration, your new LUT table file (lut_lin_tables.3d) will be created in the user's HyperHDR home directory and is immediately ready to use when you just enable HDR tone mapping. Please verify HyperHDR logs for details." + "grabber_calibration_expl": "This tool allows you to create a new calibrated HDR LUT for your grabber (or external flatbuffers source) as close to the actual input colors as possible.
You need an HDR10 video source that can display this web page, for example: Windows 10 with HDR enabled in the properties of the graphics driver.
The screen may flicker during calibration. The process typically takes about few minutes on a Intel 7 Windows PC (depending on the host CPU resources and the video capturing framerate).
The calculations are very intensive and put a strain on your equipment You can disable LCH color correction to reduce the load a bit
You can monitor the progress in HyperHDR logs using the browser from other device.


1 If everything is properly connected, this page should be displayed on the TV screen (as HDR content) and live preview in HyperHDR (captured by the grabber).
2 Absolute minimum capturing resolution is 1280x720 (we will verify this). Recommended is 1920x1080 YUV/NV12. Aspect 1920/1080 must be preserved.
3 You must disable 'Quarter of frame mode' in your grabber properties if it's enabled.
4 You must set the grabber's video format to MJPEG/YUV/NV12/P010.
5 Before you run the process please put your WWW browser in the full-screen mode (F11 key, we will verify this).
6 If you are calibrating using Windows 11, turn off features such as 'Night light', 'Automatic manage color for apps' and 'Auto-HDR'. Do not change the color balance in the graphics driver. The GFX output should support e.g. 10 or 12 bit RGB in full PC range.

After completing the calibration, your new LUT table file (lut_lin_tables.3d) will be created in the user's HyperHDR home directory and is immediately ready to use when you just enable HDR tone mapping. Please verify HyperHDR logs for details.", + "edt_automatic_tone_mapping_title": "Automatic tone mapping", + "edt_automatic_tone_mapping_enable_explain": "Automatic tone mapping control is only available for 'YUV/NV12/P010' video formats with 'Quarter of frame' mode enabled. Please configure them in the USB grabber settings.
The component will automatically enable tone mapping if the signal does not exceed the configured threshold levels for a certain period of time, and will disable it immediately after exceeding them.
Then later you can check what was the value that exceeded any of the thresholds, which actually caused tone mapping to be disabled in HyperHDR logs. And then possibly adjust the configuration if it generates false events of tone mapping disabling (threshold too low) or generates unnecessary tone mapping enabling in dark SDR scenes (threshold too high).", + "edt_automatic_tone_mapping_y_threshold_title": "Brightness threshold (Y)", + "edt_automatic_tone_mapping_y_threshold_expl": "The brightness level that separates raw dark HDR material from the SDR signal.", + "edt_automatic_tone_mapping_u_threshold_title": "Blue chroma threshold (U)", + "edt_automatic_tone_mapping_u_threshold_expl": "Blue chroma level that separates raw pale HDR material from the SDR signal.", + "edt_automatic_tone_mapping_v_threshold_title": "Red chroma threshold (V)", + "edt_automatic_tone_mapping_v_threshold_expl": "Red chroma level that separates raw pale HDR material from the SDR signal.", + "edt_automatic_tone_mapping_time_title": "Time to turn on tone mapping", + "edt_automatic_tone_mapping_time_expl": "Time to turn on tone mapping if the signal does not exceed the configured threshold levels.", + "edt_automatic_tone_mapping_disable_time_title": "Time to turn off tone mapping", + "edt_automatic_tone_mapping_disable_time_expl": "In an ideal world this value should be zero, because tone mapping should be disabled immediately after crossing one of the thresholds. But it happens, for example: when starting or switching resolution, the grabber can generate junk frames, which can disable tone mapping unnecessarily." } diff --git a/www/i18n/es.json b/www/i18n/es.json index a2f6846fb..32b111776 100644 --- a/www/i18n/es.json +++ b/www/i18n/es.json @@ -1251,5 +1251,17 @@ "flatbuffers_nv12_quarter_of_frame_title": "Cuarto de fotograma para NV12", "flatbuffers_nv12_quarter_of_frame_expl": "El códec NV12 contiene cuatro veces más información sobre el brillo que sobre el color. Esta opción le permite reducir la carga de la CPU al reducir la altura y el ancho del fotograma de vídeo en 2 sin perder información de color.", "chk_lchCorrection": "Corrección de color LCH", - "grabber_calibration_expl": "Esta herramienta le permite crear una nueva LUT HDR calibrada para su capturador (o fuente de búfer plano externo) lo más cercana posible a los colores de entrada reales.
Necesita una fuente de video HDR10 que pueda mostrar esta página web, por ejemplo: Windows 10 con HDR habilitado en las propiedades del controlador de gráficos.
La pantalla puede parpadear durante la calibración. El proceso suele tardar unos minutos en una PC con Windows Intel 7 (según los recursos de la CPU del host y la velocidad de cuadros de captura de video).
Los cálculos son muy intensivos y suponen una carga para su equipo Puede desactivar la corrección de color LCH para reducir un poco la carga
Puede monitorear el progreso en los registros de HyperHDR usando el navegador desde otro dispositivo.


1 Si todo está conectado correctamente, esta página debería mostrarse en la pantalla del televisor (como contenido HDR) y en la vista previa en vivo en HyperHDR (capturada por el capturador).
2 La resolución mínima absoluta de captura es 1280x720 (lo verificaremos). La recomendada es 1920x1080 YUV/NV12. Se debe conservar el aspecto 1920/1080.
3 Debe desactivar el 'Modo de cuarto de cuadro' en las propiedades de su capturador si está habilitado.
4 Debe configurar el formato de video del capturador en MJPEG/YUV/NV12/P010.
5 Antes de ejecutar el proceso, coloque su navegador WWW en modo de pantalla completa (tecla F11, lo verificaremos).
6 Si está calibrando con Windows 11, desactive funciones como 'Luz nocturna', 'Administración automática de color para aplicaciones' y 'HDR automático'. No cambie el balance de color en el controlador de gráficos. La salida GFX debe admitir, por ejemplo, RGB de 10 o 12 bits en rango completo de PC.

Después de completar la calibración, se creará el nuevo archivo de tabla LUT (lut_lin_tables.3d) en el directorio de inicio de HyperHDR del usuario y estará listo para usar inmediatamente cuando habilite el mapeo de tonos HDR. Verifique los registros de HyperHDR para obtener más detalles." + "grabber_calibration_expl": "Esta herramienta le permite crear una nueva LUT HDR calibrada para su capturador (o fuente de búfer plano externo) lo más cercana posible a los colores de entrada reales.
Necesita una fuente de video HDR10 que pueda mostrar esta página web, por ejemplo: Windows 10 con HDR habilitado en las propiedades del controlador de gráficos.
La pantalla puede parpadear durante la calibración. El proceso suele tardar unos minutos en una PC con Windows Intel 7 (según los recursos de la CPU del host y la velocidad de cuadros de captura de video).
Los cálculos son muy intensivos y suponen una carga para su equipo Puede desactivar la corrección de color LCH para reducir un poco la carga
Puede monitorear el progreso en los registros de HyperHDR usando el navegador desde otro dispositivo.


1 Si todo está conectado correctamente, esta página debería mostrarse en la pantalla del televisor (como contenido HDR) y en la vista previa en vivo en HyperHDR (capturada por el capturador).
2 La resolución mínima absoluta de captura es 1280x720 (lo verificaremos). La recomendada es 1920x1080 YUV/NV12. Se debe conservar el aspecto 1920/1080.
3 Debe desactivar el 'Modo de cuarto de cuadro' en las propiedades de su capturador si está habilitado.
4 Debe configurar el formato de video del capturador en MJPEG/YUV/NV12/P010.
5 Antes de ejecutar el proceso, coloque su navegador WWW en modo de pantalla completa (tecla F11, lo verificaremos).
6 Si está calibrando con Windows 11, desactive funciones como 'Luz nocturna', 'Administración automática de color para aplicaciones' y 'HDR automático'. No cambie el balance de color en el controlador de gráficos. La salida GFX debe admitir, por ejemplo, RGB de 10 o 12 bits en rango completo de PC.

Después de completar la calibración, se creará el nuevo archivo de tabla LUT (lut_lin_tables.3d) en el directorio de inicio de HyperHDR del usuario y estará listo para usar inmediatamente cuando habilite el mapeo de tonos HDR. Verifique los registros de HyperHDR para obtener más detalles.", + "edt_automatic_tone_mapping_title": "Mapeo automático de tonos", + "edt_automatic_tone_mapping_enable_explain": "El control automático de mapeo de tonos solo está disponible para formatos de video 'YUV/NV12/P010' con el modo 'Cuarto de cuadro' habilitado. Configúrelos en la configuración del capturador USB.
El componente habilitará automáticamente el mapeo de tonos si la señal no excede los niveles de umbral configurados durante un período de tiempo determinado y lo deshabilitará inmediatamente después de excederlos.
Luego, más adelante, puede verificar cuál fue el valor que superó cualquiera de los umbrales, lo que realmente provocó que el mapeo de tonos se deshabilitara en los registros de HyperHDR. Y luego, posiblemente, ajuste la configuración si genera eventos falsos de deshabilitación del mapeo de tonos (umbral demasiado bajo) o genera una habilitación innecesaria del mapeo de tonos en escenas SDR oscuras (umbral demasiado alto).", + "edt_automatic_tone_mapping_y_threshold_title": "Umbral de brillo (Y)", + "edt_automatic_tone_mapping_y_threshold_expl": "El nivel de brillo que separa el material HDR oscuro sin procesar de la señal SDR.", + "edt_automatic_tone_mapping_u_threshold_title": "Umbral de croma azul (U)", + "edt_automatic_tone_mapping_u_threshold_expl": "Nivel de croma azul que separa el material HDR pálido sin procesar de la señal SDR.", + "edt_automatic_tone_mapping_v_threshold_title": "Umbral de croma rojo (V)", + "edt_automatic_tone_mapping_v_threshold_expl": "Nivel de croma rojo que separa el material HDR pálido sin procesar de la señal SDR.", + "edt_automatic_tone_mapping_time_title": "Tiempo para activar el mapeo de tonos", + "edt_automatic_tone_mapping_time_expl": "Tiempo para activar el mapeo de tonos si la señal no excede los niveles de umbral configurados.", + "edt_automatic_tone_mapping_disable_time_title": "Momento para desactivar el mapeo de tonos", + "edt_automatic_tone_mapping_disable_time_expl": "En un mundo ideal, este valor debería ser cero, porque el mapeo de tonos debería deshabilitarse inmediatamente después de cruzar uno de los umbrales. Pero sucede, por ejemplo: al iniciar o cambiar la resolución, el capturador puede generar fotogramas basura, lo que puede deshabilitar el mapeo de tonos innecesariamente." } diff --git a/www/i18n/fr.json b/www/i18n/fr.json index 826cd8d10..65b7127b2 100644 --- a/www/i18n/fr.json +++ b/www/i18n/fr.json @@ -1251,5 +1251,17 @@ "flatbuffers_nv12_quarter_of_frame_title": "Quart de trame pour NV12", "flatbuffers_nv12_quarter_of_frame_expl": "Le codec NV12 contient quatre fois plus d'informations sur la luminosité que sur la couleur. Cette option vous permet de réduire la charge du processeur en réduisant la hauteur et la largeur de la trame vidéo de 2 sans perdre d'informations de couleur.", "chk_lchCorrection": "Correction des couleurs LCH", - "grabber_calibration_expl": "Cet outil vous permet de créer une nouvelle LUT HDR calibrée pour votre grabber (ou source flatbuffers externe) aussi proche que possible des couleurs d'entrée réelles.
Vous avez besoin d'une source vidéo HDR10 qui peut afficher cette page Web, par exemple : Windows 10 avec HDR activé dans les propriétés du pilote graphique.
L'écran peut scintiller pendant l'étalonnage. Le processus prend généralement quelques minutes sur un PC Windows Intel 7 (en fonction des ressources du processeur hôte et de la fréquence d'images de capture vidéo).
Les calculs sont très intensifs et mettent à rude épreuve votre équipement Vous pouvez désactiver la correction des couleurs LCH pour réduire un peu la charge
Vous pouvez surveiller la progression dans les journaux HyperHDR à l'aide du navigateur d'un autre appareil.


1 Si tout est correctement connecté, cette page doit s'afficher sur l'écran du téléviseur (en tant que contenu HDR) et un aperçu en direct dans HyperHDR (capturé par le grabber).
2 La résolution de capture minimale absolue est de 1280x720 (nous vérifierons cela). La résolution recommandée est 1920x1080 YUV/NV12. Français L'aspect 1920/1080 doit être préservé.
3 Vous devez désactiver le « Mode quart de trame » dans les propriétés de votre carte d'acquisition s'il est activé.
4 Vous devez définir le format vidéo de la carte d'acquisition sur MJPEG/YUV/NV12/P010.
5 Avant d'exécuter le processus, veuillez mettre votre navigateur Web en mode plein écran (touche F11, nous vérifierons cela).
6 Si vous effectuez l'étalonnage à l'aide de Windows 11, désactivez des fonctionnalités telles que « Veilleuse », « Gestion automatique des couleurs pour les applications » et « Auto-HDR ». Ne modifiez pas la balance des couleurs dans le pilote graphique. La sortie GFX doit prendre en charge par exemple 10 ou 12 bits RVB dans toute la gamme PC.

Une fois l'étalonnage terminé, votre nouveau fichier de table LUT (lut_lin_tables.3d) sera créé dans le répertoire personnel HyperHDR de l'utilisateur et sera immédiatement prêt à être utilisé lorsque vous activez simplement le mappage de tons HDR. Veuillez vérifier les journaux HyperHDR pour plus de détails." + "grabber_calibration_expl": "Cet outil vous permet de créer une nouvelle LUT HDR calibrée pour votre grabber (ou source flatbuffers externe) aussi proche que possible des couleurs d'entrée réelles.
Vous avez besoin d'une source vidéo HDR10 qui peut afficher cette page Web, par exemple : Windows 10 avec HDR activé dans les propriétés du pilote graphique.
L'écran peut scintiller pendant l'étalonnage. Le processus prend généralement quelques minutes sur un PC Windows Intel 7 (en fonction des ressources du processeur hôte et de la fréquence d'images de capture vidéo).
Les calculs sont très intensifs et mettent à rude épreuve votre équipement Vous pouvez désactiver la correction des couleurs LCH pour réduire un peu la charge
Vous pouvez surveiller la progression dans les journaux HyperHDR à l'aide du navigateur d'un autre appareil.


1 Si tout est correctement connecté, cette page doit s'afficher sur l'écran du téléviseur (en tant que contenu HDR) et un aperçu en direct dans HyperHDR (capturé par le grabber).
2 La résolution de capture minimale absolue est de 1280x720 (nous vérifierons cela). La résolution recommandée est 1920x1080 YUV/NV12. Français L'aspect 1920/1080 doit être préservé.
3 Vous devez désactiver le « Mode quart de trame » dans les propriétés de votre carte d'acquisition s'il est activé.
4 Vous devez définir le format vidéo de la carte d'acquisition sur MJPEG/YUV/NV12/P010.
5 Avant d'exécuter le processus, veuillez mettre votre navigateur Web en mode plein écran (touche F11, nous vérifierons cela).
6 Si vous effectuez l'étalonnage à l'aide de Windows 11, désactivez des fonctionnalités telles que « Veilleuse », « Gestion automatique des couleurs pour les applications » et « Auto-HDR ». Ne modifiez pas la balance des couleurs dans le pilote graphique. La sortie GFX doit prendre en charge par exemple 10 ou 12 bits RVB dans toute la gamme PC.

Une fois l'étalonnage terminé, votre nouveau fichier de table LUT (lut_lin_tables.3d) sera créé dans le répertoire personnel HyperHDR de l'utilisateur et sera immédiatement prêt à être utilisé lorsque vous activez simplement le mappage de tons HDR. Veuillez vérifier les journaux HyperHDR pour plus de détails.", + "edt_automatic_tone_mapping_title": "Mappage automatique des tons", + "edt_automatic_tone_mapping_enable_explain": "Le contrôle du mappage automatique des tons n'est disponible que pour les formats vidéo YUV/NV12/P010' avec le mode 'Quarter of frame' activé. Veuillez les configurer dans les paramètres du grabber USB.
Le composant activera automatiquement le mappage des tons si le signal ne dépasse pas les niveaux de seuil configurés pendant une certaine période de temps, et le désactivera immédiatement après les avoir dépassés.
Vous pouvez ensuite vérifier quelle est la valeur qui a dépassé l'un des seuils, ce qui a effectivement provoqué la désactivation du tone mapping dans les journaux HyperHDR. Et éventuellement ajuster la configuration si elle génère de faux événements de désactivation du tone mapping (seuil trop bas) ou génère une activation inutile du tone mapping dans les scènes SDR sombres (seuil trop élevé).", + "edt_automatic_tone_mapping_y_threshold_title": "Seuil de luminosité (Y)", + "edt_automatic_tone_mapping_y_threshold_expl": "Le niveau de luminosité qui sépare le matériel HDR brut foncé du signal SDR.", + "edt_automatic_tone_mapping_u_threshold_title": "Seuil de chrominance bleue (U)", + "edt_automatic_tone_mapping_u_threshold_expl": "Niveau de chrominance bleue qui sépare le matériel HDR brut pâle du signal SDR.", + "edt_automatic_tone_mapping_v_threshold_title": "Seuil de chrominance rouge (V)", + "edt_automatic_tone_mapping_v_threshold_expl": "Niveau de chrominance rouge qui sépare le matériel HDR brut pâle du signal SDR.", + "edt_automatic_tone_mapping_time_title": "Il est temps d'activer le mappage des tons", + "edt_automatic_tone_mapping_time_expl": "Il est temps d'activer le mappage des tons si le signal ne dépasse pas les niveaux de seuil configurés.", + "edt_automatic_tone_mapping_disable_time_title": "Il est temps de désactiver le tone mapping", + "edt_automatic_tone_mapping_disable_time_expl": "Dans un monde idéal, cette valeur devrait être nulle, car le tone mapping devrait être désactivé immédiatement après avoir dépassé l'un des seuils. Mais cela arrive, par exemple : lors du démarrage ou du changement de résolution, le grabber peut générer des trames indésirables, ce qui peut désactiver le tone mapping inutilement." } diff --git a/www/i18n/it.json b/www/i18n/it.json index 5af51c948..c66579973 100644 --- a/www/i18n/it.json +++ b/www/i18n/it.json @@ -1251,5 +1251,17 @@ "flatbuffers_nv12_quarter_of_frame_title": "Quarto di frame per NV12", "flatbuffers_nv12_quarter_of_frame_expl": "Il codec NV12 contiene quattro volte più informazioni sulla luminosità che sul colore. Questa opzione consente di ridurre il carico della CPU riducendo di 2 l'altezza e la larghezza del frame video senza perdere informazioni sul colore.", "chk_lchCorrection": "Correzione colore LCH", - "grabber_calibration_expl": "Questo strumento consente di creare una nuova LUT HDR calibrata per il grabber (o sorgente flatbuffer esterna) il più vicino possibile ai colori di input effettivi.
È necessaria una sorgente video HDR10 in grado di visualizzare questa pagina Web, ad esempio: Windows 10 con HDR abilitato nelle proprietà del driver grafico.
Lo schermo potrebbe sfarfallare durante la calibrazione. Il processo richiede in genere pochi minuti su un PC Windows Intel 7 (a seconda delle risorse della CPU host e del frame rate di acquisizione video).
I calcoli sono molto intensivi e mettono a dura prova la tua attrezzatura Puoi disattivare la correzione del colore LCH per ridurre un po' il carico
Puoi monitorare i progressi nei registri HyperHDR utilizzando il browser da un altro dispositivo.


1 Se tutto è collegato correttamente, questa pagina dovrebbe essere visualizzata sullo schermo della TV (come contenuto HDR) e in anteprima live in HyperHDR (acquisita dal grabber).
2 La risoluzione di acquisizione minima assoluta è 1280x720 (verificheremo). Consigliata è 1920x1080 YUV/NV12. L'aspetto 1920/1080 deve essere mantenuto.
3 Devi disattivare la 'modalità quarto di fotogramma' nelle proprietà del grabber se è abilitata.
4 Devi impostare il formato video del grabber su MJPEG/YUV/NV12/P010.
5 Prima di eseguire il processo, imposta il tuo browser WWW in modalità a schermo intero (tasto F11, verificheremo).
6 Se stai eseguendo la calibrazione tramite Windows 11, disattiva funzionalità come 'Luce notturna', 'Gestione automatica del colore per le app' e 'HDR automatico'. Non modificare il bilanciamento del colore nel driver grafico. L'output GFX dovrebbe supportare, ad esempio, RGB a 10 o 12 bit nell'intera gamma PC.

Dopo aver completato la calibrazione, il tuo nuovo file tabella LUT (lut_lin_tables.3d) verrà creato nella directory home HyperHDR dell'utente e sarà immediatamente pronto per l'uso non appena abiliti la mappatura dei toni HDR. Per i dettagli, verifica i log HyperHDR." + "grabber_calibration_expl": "Questo strumento consente di creare una nuova LUT HDR calibrata per il grabber (o sorgente flatbuffer esterna) il più vicino possibile ai colori di input effettivi.
È necessaria una sorgente video HDR10 in grado di visualizzare questa pagina Web, ad esempio: Windows 10 con HDR abilitato nelle proprietà del driver grafico.
Lo schermo potrebbe sfarfallare durante la calibrazione. Il processo richiede in genere pochi minuti su un PC Windows Intel 7 (a seconda delle risorse della CPU host e del frame rate di acquisizione video).
I calcoli sono molto intensivi e mettono a dura prova la tua attrezzatura Puoi disattivare la correzione del colore LCH per ridurre un po' il carico
Puoi monitorare i progressi nei registri HyperHDR utilizzando il browser da un altro dispositivo.


1 Se tutto è collegato correttamente, questa pagina dovrebbe essere visualizzata sullo schermo della TV (come contenuto HDR) e in anteprima live in HyperHDR (acquisita dal grabber).
2 La risoluzione di acquisizione minima assoluta è 1280x720 (verificheremo). Consigliata è 1920x1080 YUV/NV12. L'aspetto 1920/1080 deve essere mantenuto.
3 Devi disattivare la 'modalità quarto di fotogramma' nelle proprietà del grabber se è abilitata.
4 Devi impostare il formato video del grabber su MJPEG/YUV/NV12/P010.
5 Prima di eseguire il processo, imposta il tuo browser WWW in modalità a schermo intero (tasto F11, verificheremo).
6 Se stai eseguendo la calibrazione tramite Windows 11, disattiva funzionalità come 'Luce notturna', 'Gestione automatica del colore per le app' e 'HDR automatico'. Non modificare il bilanciamento del colore nel driver grafico. L'output GFX dovrebbe supportare, ad esempio, RGB a 10 o 12 bit nell'intera gamma PC.

Dopo aver completato la calibrazione, il tuo nuovo file tabella LUT (lut_lin_tables.3d) verrà creato nella directory home HyperHDR dell'utente e sarà immediatamente pronto per l'uso non appena abiliti la mappatura dei toni HDR. Per i dettagli, verifica i log HyperHDR.", + "edt_automatic_tone_mapping_title": "Tone mapping automatico", + "edt_automatic_tone_mapping_enable_explain": "Il controllo automatico del tone mapping è disponibile solo per i formati video 'YUV/NV12/P010' con modalità 'Quarter of frame' abilitata. Si prega di configurarli nelle impostazioni del grabber USB.
Il componente abiliterà automaticamente il tone mapping se il segnale non supera i livelli di soglia configurati per un determinato periodo di tempo e lo disabiliterà immediatamente dopo averli superati.
In seguito puoi controllare qual era il valore che ha superato una qualsiasi delle soglie, che in realtà ha causato la disattivazione del tone mapping nei log HyperHDR. E quindi eventualmente regolare la configurazione se genera falsi eventi di disattivazione del tone mapping (soglia troppo bassa) o genera un'attivazione non necessaria del tone mapping nelle scene SDR scure (soglia troppo alta).", + "edt_automatic_tone_mapping_y_threshold_title": "Soglia di luminosità (Y)", + "edt_automatic_tone_mapping_y_threshold_expl": "Il livello di luminosità che separa il materiale HDR scuro grezzo dal segnale SDR.", + "edt_automatic_tone_mapping_u_threshold_title": "Soglia di crominanza blu (U)", + "edt_automatic_tone_mapping_u_threshold_expl": "Livello di crominanza blu che separa il materiale HDR pallido grezzo dal segnale SDR.", + "edt_automatic_tone_mapping_v_threshold_title": "Soglia di crominanza rossa (V)", + "edt_automatic_tone_mapping_v_threshold_expl": "Livello di crominanza rossa che separa il materiale HDR pallido grezzo dal segnale SDR.", + "edt_automatic_tone_mapping_time_title": "È il momento di attivare il tone mapping", + "edt_automatic_tone_mapping_time_expl": "È il momento di attivare il tone mapping se il segnale non supera i livelli di soglia configurati.", + "edt_automatic_tone_mapping_disable_time_title": "È il momento di disattivare il tone mapping", + "edt_automatic_tone_mapping_disable_time_expl": "In un mondo ideale questo valore dovrebbe essere zero, perché il tone mapping dovrebbe essere disattivato immediatamente dopo aver superato una delle soglie. Ma succede, ad esempio: quando si avvia o si cambia risoluzione, il grabber può generare fotogrammi spazzatura, che possono disattivare inutilmente il tone mapping." } diff --git a/www/i18n/nl.json b/www/i18n/nl.json index d1feae3a5..d844ac7bd 100644 --- a/www/i18n/nl.json +++ b/www/i18n/nl.json @@ -1251,5 +1251,17 @@ "flatbuffers_nv12_quarter_of_frame_title": "Kwart frame voor NV12", "flatbuffers_nv12_quarter_of_frame_expl": "De NV12-codec bevat vier keer meer informatie over helderheid dan over kleur. Met deze optie kunt u de CPU-belasting verminderen door de hoogte en breedte van het videoframe met 2 te verminderen zonder kleurinformatie te verliezen.", "chk_lchCorrection": "LCH-kleurcorrectie", - "grabber_calibration_expl": "Met deze tool kunt u een nieuwe gekalibreerde HDR LUT voor uw grabber (of externe flatbuffers-bron) maken die zo dicht mogelijk bij de werkelijke invoerkleuren ligt.
U hebt een HDR10-videobron nodig die deze webpagina kan weergeven, bijvoorbeeld: Windows 10 met HDR ingeschakeld in de eigenschappen van de grafische driver.
Het scherm kan flikkeren tijdens de kalibratie. Het proces duurt normaal gesproken een paar minuten op een Intel 7 Windows-pc (afhankelijk van de CPU-bronnen van de host en de framerate van de video-opname).
De berekeningen zijn erg intensief en belasten uw apparatuur. U kunt LCH-kleurcorrectie uitschakelen om de belasting iets te verminderen.
U kunt de voortgang in HyperHDR-logs volgen met de browser van een ander apparaat.


1 Als alles correct is aangesloten, zou deze pagina op het tv-scherm moeten worden weergegeven (als HDR-inhoud) en een live preview in HyperHDR (vastgelegd door de grabber).
2 De minimale opnameresolutie is 1280x720 (we zullen dit verifiëren). Aanbevolen is 1920x1080 YUV/NV12. Aspect 1920/1080 moet behouden blijven.
3 U moet 'Quarter of frame mode' uitschakelen in uw grabber-eigenschappen als deze is ingeschakeld.
4 U moet het videoformaat van de grabber instellen op MJPEG/YUV/NV12/P010.
5 Voordat u het proces uitvoert, zet u uw WWW-browser in de modus voor volledig scherm (F11-toets, wij zullen dit verifiëren).
6 Als u kalibreert met Windows 11, schakelt u functies uit zoals 'Nachtlampje', 'Automatisch kleurbeheer voor apps' en 'Auto-HDR'. Wijzig de kleurbalans in de grafische driver niet. De GFX-uitvoer moet bijvoorbeeld ondersteunen: 10 of 12 bit RGB in volledig PC-bereik.

Na het voltooien van de kalibratie wordt uw nieuwe LUT-tabelbestand (lut_lin_tables.3d) gemaakt in de HyperHDR-homedirectory van de gebruiker en is het direct klaar voor gebruik wanneer u HDR-toonmapping inschakelt. Controleer de HyperHDR-logs voor meer informatie." + "grabber_calibration_expl": "Met deze tool kunt u een nieuwe gekalibreerde HDR LUT voor uw grabber (of externe flatbuffers-bron) maken die zo dicht mogelijk bij de werkelijke invoerkleuren ligt.
U hebt een HDR10-videobron nodig die deze webpagina kan weergeven, bijvoorbeeld: Windows 10 met HDR ingeschakeld in de eigenschappen van de grafische driver.
Het scherm kan flikkeren tijdens de kalibratie. Het proces duurt normaal gesproken een paar minuten op een Intel 7 Windows-pc (afhankelijk van de CPU-bronnen van de host en de framerate van de video-opname).
De berekeningen zijn erg intensief en belasten uw apparatuur. U kunt LCH-kleurcorrectie uitschakelen om de belasting iets te verminderen.
U kunt de voortgang in HyperHDR-logs volgen met de browser van een ander apparaat.


1 Als alles correct is aangesloten, zou deze pagina op het tv-scherm moeten worden weergegeven (als HDR-inhoud) en een live preview in HyperHDR (vastgelegd door de grabber).
2 De minimale opnameresolutie is 1280x720 (we zullen dit verifiëren). Aanbevolen is 1920x1080 YUV/NV12. Aspect 1920/1080 moet behouden blijven.
3 U moet 'Quarter of frame mode' uitschakelen in uw grabber-eigenschappen als deze is ingeschakeld.
4 U moet het videoformaat van de grabber instellen op MJPEG/YUV/NV12/P010.
5 Voordat u het proces uitvoert, zet u uw WWW-browser in de modus voor volledig scherm (F11-toets, wij zullen dit verifiëren).
6 Als u kalibreert met Windows 11, schakelt u functies uit zoals 'Nachtlampje', 'Automatisch kleurbeheer voor apps' en 'Auto-HDR'. Wijzig de kleurbalans in de grafische driver niet. De GFX-uitvoer moet bijvoorbeeld ondersteunen: 10 of 12 bit RGB in volledig PC-bereik.

Na het voltooien van de kalibratie wordt uw nieuwe LUT-tabelbestand (lut_lin_tables.3d) gemaakt in de HyperHDR-homedirectory van de gebruiker en is het direct klaar voor gebruik wanneer u HDR-toonmapping inschakelt. Controleer de HyperHDR-logs voor meer informatie.", + "edt_automatic_tone_mapping_title": "Automatische toonmapping", + "edt_automatic_tone_mapping_enable_explain": "Automatische toonmapping-regeling is alleen beschikbaar voor 'YUV/NV12/P010'-videoformaten met 'Kwart frame'-modus ingeschakeld. Configureer deze in de USB-grabberinstellingen.
Het onderdeel schakelt toonmapping automatisch in als het signaal de geconfigureerde drempelwaarden gedurende een bepaalde periode niet overschrijdt, en schakelt deze onmiddellijk uit nadat deze zijn overschreden.
Later kunt u controleren welke waarde een van de drempels overschreed, waardoor tone mapping daadwerkelijk werd uitgeschakeld in HyperHDR-logs. En pas dan eventueel de configuratie aan als deze valse gebeurtenissen genereert van tone mapping uitschakelen (drempel te laag) of onnodige tone mapping inschakelen genereert in donkere SDR-scènes (drempel te hoog).", + "edt_automatic_tone_mapping_y_threshold_title": "Helderheidsdrempel (Y)", + "edt_automatic_tone_mapping_y_threshold_expl": "Het helderheidsniveau dat ruw donker HDR-materiaal scheidt van het SDR-signaal.", + "edt_automatic_tone_mapping_u_threshold_title": "Blauwe chroma-drempel (U)", + "edt_automatic_tone_mapping_u_threshold_expl": "Blauwe chroma-niveau dat ruw licht HDR-materiaal scheidt van het SDR-signaal.", + "edt_automatic_tone_mapping_v_threshold_title": "Rode chroma-drempel (V)", + "edt_automatic_tone_mapping_v_threshold_expl": "Rode chroma-niveau dat ruw licht HDR-materiaal scheidt van het SDR-signaal.", + "edt_automatic_tone_mapping_time_title": "Tijd om toonmapping in te schakelen", + "edt_automatic_tone_mapping_time_expl": "Tijd om toonmapping in te schakelen als het signaal de geconfigureerde drempelwaarden niet overschrijdt.", + "edt_automatic_tone_mapping_disable_time_title": "Tijd om tone mapping uit te schakelen", + "edt_automatic_tone_mapping_disable_time_expl": "In een ideale wereld zou deze waarde nul moeten zijn, omdat tone mapping onmiddellijk na het overschrijden van een van de drempels zou moeten worden uitgeschakeld. Maar het gebeurt bijvoorbeeld: bij het starten of wisselen van resolutie kan de grabber ongewenste frames genereren, waardoor tone mapping onnodig kan worden uitgeschakeld." } diff --git a/www/i18n/pl.json b/www/i18n/pl.json index 9c7288406..ed8879809 100644 --- a/www/i18n/pl.json +++ b/www/i18n/pl.json @@ -1251,5 +1251,17 @@ "flatbuffers_nv12_quarter_of_frame_title": "Ćwiartka klatki dla NV12", "flatbuffers_nv12_quarter_of_frame_expl": "Kodek NV12 zawiera cztery razy więcej informacji o jasności niż o kolorze. Ta opcja pozwala zmniejszyć obciążenie procesora poprzez zmniejszenie wysokości i szerokości klatki wideo o 2 bez utraty informacji o kolorze.", "chk_lchCorrection": "Korekcja kolorów LCH", - "grabber_calibration_expl": "To narzędzie pozwala utworzyć nową skalibrowaną tabelę HDR LUT dla programu grabber (lub zewnętrznego źródła buforów płaskich) tak blisko rzeczywistych kolorów wejściowych, jak to możliwe.
Potrzebne jest źródło wideo HDR10, które może wyświetlić tę stronę internetową, na przykład: Windows 10 z włączoną funkcją HDR we właściwościach sterownika graficznego.
Podczas kalibracji ekran może migotać. Proces ten trwa zazwyczaj kilka minut na komputerze z systemem Windows i procesorem Intel 7 (w zależności od zasobów procesora hosta i liczby klatek na sekundę przechwytywania wideo).
Obliczenia są bardzo intensywne i obciążają Twój sprzęt Możesz wyłączyć korekcję kolorów LCH, aby nieco zmniejszyć obciążenie
Możesz monitorować postęp w dziennikach HyperHDR za pomocą przeglądarki z innego urządzenia.


1 Jeśli wszystko jest prawidłowo podłączone, ta strona powinna zostać wyświetlona na ekranie telewizora (jako zawartość HDR) i podgląd na żywo w HyperHDR (przechwytywany przez grabber).
2 Absolutnie minimalna rozdzielczość przechwytywania to 1280x720 (zweryfikujemy to). Zalecana to 1920x1080 YUV/NV12. Należy zachować proporcje 1920/1080.
3 Należy wyłączyć „Tryb ćwiartki klatki” we właściwościach programu grabber, jeśli jest włączony.
4 Należy ustawić format wideo programu grabber na MJPEG/YUV/NV12/P010.
5 Przed uruchomieniem procesu należy przełączyć przeglądarkę WWW w tryb pełnoekranowy (klawisz F11, zweryfikujemy to).
6 Jeśli kalibrujesz za pomocą systemu Windows 11, wyłącz funkcje takie jak „Światło nocne”, „Automatyczne zarządzanie kolorami dla aplikacji” i „Auto-HDR”. Nie zmieniaj balansu kolorów w sterowniku graficznym. Wyjście GFX powinno obsługiwać np. 10 lub 12 bitów RGB w pełnym zakresie PC.

Po zakończeniu kalibracji nowy plik tabeli LUT (lut_lin_tables.3d) zostanie utworzony w katalogu domowym HyperHDR użytkownika i będzie natychmiast gotowy do użycia, gdy tylko włączysz mapowanie tonów HDR. Sprawdź dzienniki HyperHDR, aby uzyskać szczegółowe informacje." + "grabber_calibration_expl": "To narzędzie pozwala utworzyć nową skalibrowaną tabelę HDR LUT dla programu grabber (lub zewnętrznego źródła buforów płaskich) tak blisko rzeczywistych kolorów wejściowych, jak to możliwe.
Potrzebne jest źródło wideo HDR10, które może wyświetlić tę stronę internetową, na przykład: Windows 10 z włączoną funkcją HDR we właściwościach sterownika graficznego.
Podczas kalibracji ekran może migotać. Proces ten trwa zazwyczaj kilka minut na komputerze z systemem Windows i procesorem Intel 7 (w zależności od zasobów procesora hosta i liczby klatek na sekundę przechwytywania wideo).
Obliczenia są bardzo intensywne i obciążają Twój sprzęt Możesz wyłączyć korekcję kolorów LCH, aby nieco zmniejszyć obciążenie
Możesz monitorować postęp w dziennikach HyperHDR za pomocą przeglądarki z innego urządzenia.


1 Jeśli wszystko jest prawidłowo podłączone, ta strona powinna zostać wyświetlona na ekranie telewizora (jako zawartość HDR) i podgląd na żywo w HyperHDR (przechwytywany przez grabber).
2 Absolutnie minimalna rozdzielczość przechwytywania to 1280x720 (zweryfikujemy to). Zalecana to 1920x1080 YUV/NV12. Należy zachować proporcje 1920/1080.
3 Należy wyłączyć „Tryb ćwiartki klatki” we właściwościach programu grabber, jeśli jest włączony.
4 Należy ustawić format wideo programu grabber na MJPEG/YUV/NV12/P010.
5 Przed uruchomieniem procesu należy przełączyć przeglądarkę WWW w tryb pełnoekranowy (klawisz F11, zweryfikujemy to).
6 Jeśli kalibrujesz za pomocą systemu Windows 11, wyłącz funkcje takie jak „Światło nocne”, „Automatyczne zarządzanie kolorami dla aplikacji” i „Auto-HDR”. Nie zmieniaj balansu kolorów w sterowniku graficznym. Wyjście GFX powinno obsługiwać np. 10 lub 12 bitów RGB w pełnym zakresie PC.

Po zakończeniu kalibracji nowy plik tabeli LUT (lut_lin_tables.3d) zostanie utworzony w katalogu domowym HyperHDR użytkownika i będzie natychmiast gotowy do użycia, gdy tylko włączysz mapowanie tonów HDR. Sprawdź dzienniki HyperHDR, aby uzyskać szczegółowe informacje.", + "edt_automatic_tone_mapping_title": "Automatyczne mapowanie tonów", + "edt_automatic_tone_mapping_enable_explain": "Automatyczne sterowanie mapowaniem tonów jest dostępne tylko dla formatów wideo 'YUV/NV12/P010' z włączonym trybem 'Ćwiartka klatki'. Skonfiguruj je w ustawieniach przechwytywania USB.
Komponent automatycznie włączy mapowanie tonów, jeśli sygnał nie przekroczy skonfigurowanych poziomów progowych przez określony czas i wyłączy je natychmiast po ich przekroczeniu.
Następnie możesz sprawdzić, jaka wartość przekroczyła którykolwiek z progów, co faktycznie spowodowało wyłączenie mapowania tonów w dziennikach HyperHDR. A następnie ewentualnie dostosować konfigurację, jeśli generuje ona fałszywe zdarzenia wyłączenia mapowania tonów (próg zbyt niski) lub generuje niepotrzebne włączenie mapowania tonów w ciemnych scenach SDR (próg zbyt wysoki).", + "edt_automatic_tone_mapping_y_threshold_title": "Próg jasności (Y)", + "edt_automatic_tone_mapping_y_threshold_expl": "Poziom jasności, który oddziela surowy, ciemny materiał HDR od sygnału SDR.", + "edt_automatic_tone_mapping_u_threshold_title": "Próg niebieskiej chrominancji (U)", + "edt_automatic_tone_mapping_u_threshold_expl": "Poziom niebieskiej chrominancji, który oddziela surowy, blady materiał HDR od sygnału SDR.", + "edt_automatic_tone_mapping_v_threshold_title": "Próg czerwonej chrominancji (V)", + "edt_automatic_tone_mapping_v_threshold_expl": "Poziom czerwonej chrominancji, który oddziela surowy, blady materiał HDR od sygnału SDR.", + "edt_automatic_tone_mapping_time_title": "Czas włączyć mapowanie tonów", + "edt_automatic_tone_mapping_time_expl": "Czas włączyć mapowanie tonów, jeśli sygnał nie przekracza skonfigurowanych poziomów progowych.", + "edt_automatic_tone_mapping_disable_time_title": "Czas wyłączyć mapowanie tonów", + "edt_automatic_tone_mapping_disable_time_expl": "W idealnym świecie ta wartość powinna wynosić zero, ponieważ mapowanie tonów powinno być wyłączone natychmiast po przekroczeniu jednego z progów. Ale tak się dzieje na przykład: podczas uruchamiania lub zmiany rozdzielczości grabber może generować niepotrzebne klatki, które mogą niepotrzebnie wyłączyć mapowanie tonów." } diff --git a/www/i18n/ro.json b/www/i18n/ro.json index 08992666f..0adce10fd 100644 --- a/www/i18n/ro.json +++ b/www/i18n/ro.json @@ -1251,5 +1251,17 @@ "flatbuffers_nv12_quarter_of_frame_title": "Sfert de cadru pentru NV12", "flatbuffers_nv12_quarter_of_frame_expl": "Codecul NV12 conține de patru ori mai multe informații despre luminozitate decât despre culoare. Această opțiune vă permite să reduceți încărcarea procesorului prin reducerea înălțimii și lățimii cadrului video cu 2 fără a pierde informațiile de culoare.", "chk_lchCorrection": "Corecția culorii LCH", - "grabber_calibration_expl": "Acest instrument vă permite să creați o nouă LUT HDR calibrată pentru dispozitivul dvs. de captare (sau sursa externă a tamponului plat) cât mai aproape de culorile reale de intrare.
Aveți nevoie de o sursă video HDR10 care să poată afișa această pagină web, de exemplu: Windows 10 cu HDR activat în proprietățile driverului grafic.
Ecranul poate pâlpâi în timpul calibrării. Procesul durează de obicei aproximativ câteva minute pe un computer cu Windows 7 Intel (în funcție de resursele procesorului gazdă și de frecvența cadrelor de captare video).
Calculele sunt foarte intense și pun în dificultate echipamentul dvs. Puteți dezactiva corecția culorii LCH pentru a reduce sarcina puțin
Puteți monitoriza progresul în jurnalele HyperHDR utilizând browserul de pe alt dispozitiv.


1 Dacă totul este conectat corect, această pagină ar trebui să să fie afișate pe ecranul televizorului (ca conținut HDR) și previzualizare live în HyperHDR (capturată de grabber).
2 Rezoluția minimă absolută de captură este 1280x720 (vom verifica acest lucru). Recomandat este 1920x1080 YUV/NV12. Aspectul 1920/1080 trebuie păstrat.
3 Trebuie să dezactivați „Modul sfert de cadru” în proprietățile dispozitivului de capturare, dacă este activat.
4 Dvs. trebuie să setați formatul video al grabber-ului la MJPEG/YUV/NV12/P010.
5 Înainte de a rula procesul, vă rugăm să puneți browserul dvs. WWW în modul ecran complet (Tasta F11, vom verifica acest lucru).
6 Dacă calibrați folosind Windows 11, dezactivați funcții precum „Lumină de noapte”, „Gestionați automat culoarea pentru aplicații” și „Auto-HDR”. Nu modificați echilibrul de culoare în driverul grafic. Ieșirea GFX ar trebui să accepte de ex. RGB de 10 sau 12 biți în gama completă a PC-ului.

După finalizarea calibrării, noul fișier tabel LUT (lut_lin_tables.3d) va fi creat în directorul principal HyperHDR al utilizatorului și este imediat gata de utilizat atunci când doar activați maparea tonurilor HDR. Verificați jurnalele HyperHDR pentru detalii." + "grabber_calibration_expl": "Acest instrument vă permite să creați o nouă LUT HDR calibrată pentru dispozitivul dvs. de captare (sau sursa externă a tamponului plat) cât mai aproape de culorile reale de intrare.
Aveți nevoie de o sursă video HDR10 care să poată afișa această pagină web, de exemplu: Windows 10 cu HDR activat în proprietățile driverului grafic.
Ecranul poate pâlpâi în timpul calibrării. Procesul durează de obicei aproximativ câteva minute pe un computer cu Windows 7 Intel (în funcție de resursele procesorului gazdă și de frecvența cadrelor de captare video).
Calculele sunt foarte intense și pun în dificultate echipamentul dvs. Puteți dezactiva corecția culorii LCH pentru a reduce sarcina puțin
Puteți monitoriza progresul în jurnalele HyperHDR utilizând browserul de pe alt dispozitiv.


1 Dacă totul este conectat corect, această pagină ar trebui să să fie afișate pe ecranul televizorului (ca conținut HDR) și previzualizare live în HyperHDR (capturată de grabber).
2 Rezoluția minimă absolută de captură este 1280x720 (vom verifica acest lucru). Recomandat este 1920x1080 YUV/NV12. Aspectul 1920/1080 trebuie păstrat.
3 Trebuie să dezactivați „Modul sfert de cadru” în proprietățile dispozitivului de capturare, dacă este activat.
4 Dvs. trebuie să setați formatul video al grabber-ului la MJPEG/YUV/NV12/P010.
5 Înainte de a rula procesul, vă rugăm să puneți browserul dvs. WWW în modul ecran complet (Tasta F11, vom verifica acest lucru).
6 Dacă calibrați folosind Windows 11, dezactivați funcții precum „Lumină de noapte”, „Gestionați automat culoarea pentru aplicații” și „Auto-HDR”. Nu modificați echilibrul de culoare în driverul grafic. Ieșirea GFX ar trebui să accepte de ex. RGB de 10 sau 12 biți în gama completă a PC-ului.

După finalizarea calibrării, noul fișier tabel LUT (lut_lin_tables.3d) va fi creat în directorul principal HyperHDR al utilizatorului și este imediat gata de utilizat atunci când doar activați maparea tonurilor HDR. Verificați jurnalele HyperHDR pentru detalii.", + "edt_automatic_tone_mapping_title": "Maparea automată a tonurilor", + "edt_automatic_tone_mapping_enable_explain": "Controlul automat al maparii tonurilor este disponibil numai pentru formatele video 'YUV/NV12/P010' cu 'Sfert de cadru'< Modul /span> activat. Vă rugăm să le configurați în setările USB grabber.
Componenta va activa automat maparea tonurilor dacă semnalul nu depășește nivelurile de prag configurate pentru o anumită perioadă de timp și o va dezactiva imediat după ce le depășește.
Apoi, mai târziu, puteți verifica care a fost valoarea care a depășit oricare dintre praguri, ceea ce a făcut ca maparea tonurilor să fie dezactivată în jurnalele HyperHDR. Și apoi, eventual, ajustați configurația dacă generează evenimente false de dezactivare a mapării tonurilor (pragul prea scăzut) sau generează activarea cartografierii tonului inutil în scenele întunecate SDR (pragul prea mare).", + "edt_automatic_tone_mapping_y_threshold_title": "Pragul de luminozitate (Y)", + "edt_automatic_tone_mapping_y_threshold_expl": "Nivelul de luminozitate care separă materialul HDR întunecat brut de semnalul SDR.", + "edt_automatic_tone_mapping_u_threshold_title": "Pragul cromatic albastru (U)", + "edt_automatic_tone_mapping_u_threshold_expl": "Nivelul cromatic al albastrului care separă materialul HDR palid brut de semnalul SDR.", + "edt_automatic_tone_mapping_v_threshold_title": "Pragul cromatic roșu (V)", + "edt_automatic_tone_mapping_v_threshold_expl": "Nivelul cromatic roșu care separă materialul HDR palid brut de semnalul SDR.", + "edt_automatic_tone_mapping_time_title": "Este timpul să activați maparea tonurilor", + "edt_automatic_tone_mapping_time_expl": "Este timpul să activați maparea tonurilor dacă semnalul nu depășește nivelurile de prag configurate.", + "edt_automatic_tone_mapping_disable_time_title": "Este timpul să dezactivați maparea tonurilor", + "edt_automatic_tone_mapping_disable_time_expl": "Într-o lume ideală, această valoare ar trebui să fie zero, deoarece maparea tonurilor ar trebui să fie dezactivată imediat după trecerea unuia dintre praguri. Dar se întâmplă, de exemplu: atunci când pornește sau schimbă rezoluția, grabber-ul poate genera cadre nedorite, care pot dezactiva în mod inutil maparea tonurilor." } diff --git a/www/i18n/ru.json b/www/i18n/ru.json index b47c430b0..e8eb191ab 100644 --- a/www/i18n/ru.json +++ b/www/i18n/ru.json @@ -1251,5 +1251,17 @@ "flatbuffers_nv12_quarter_of_frame_title": "Четверть кадра для NV12", "flatbuffers_nv12_quarter_of_frame_expl": "Кодек NV12 содержит в четыре раза больше информации о яркости, чем о цвете. Эта опция позволяет снизить нагрузку на ЦП, уменьшив высоту и ширину видеокадра на 2 без потери цветовой информации.", "chk_lchCorrection": "Коррекция цвета LCH", - "grabber_calibration_expl": "Этот инструмент позволяет вам создать новую калиброванную HDR LUT для вашего устройства захвата (или внешнего источника flatbuffers), максимально приближенную к фактическим входным цветам.
Вам потребуется источник видео HDR10, который может отображать эту веб-страницу, например: Windows 10 с включенным HDR в свойствах графического драйвера.
Во время калибровки экран может мерцать. Обычно этот процесс занимает около нескольких минут на ПК с ОС Intel 7 Windows (в зависимости от ресурсов центрального процессора и частоты кадров видеозахвата).
Вычисления очень интенсивны и создают нагрузку на ваше оборудование Вы можете отключить коррекцию цвета LCH, чтобы немного снизить нагрузку
Вы можете следить за ходом выполнения в журналах HyperHDR с помощью браузера с другого устройства.


1 Если все подключено правильно, эта страница должна отображаться на экране телевизора (как HDR-контент) и в режиме предварительного просмотра в HyperHDR (захваченном устройством захвата).
2 Абсолютное минимальное разрешение захвата составляет 1280x720 (мы это проверим). Рекомендуемое — 1920x1080 YUV/NV12. Соотношение сторон 1920/1080 должно быть сохранено.
3 Вам необходимо отключить 'Режим четверти кадра' в свойствах вашего устройства захвата, если он включен.
4 Вам необходимо установить формат видео устройства захвата на MJPEG/YUV/NV12/P010.
5 Перед запуском процесса переведите ваш веб-браузер в полноэкранный режим (клавиша F11, мы это проверим).
6 Если вы выполняете калибровку с помощью Windows 11, отключите такие функции, как 'Ночной свет', 'Автоматическое управление цветом для приложений' и 'Авто-HDR'. Не изменяйте цветовой баланс в графическом драйвере. Выход GFX должен поддерживать, например, 10 или 12 бит RGB в полном диапазоне ПК.

После завершения калибровки ваш новый файл таблицы LUT (lut_lin_tables.3d) будет создан в домашнем каталоге HyperHDR пользователя и сразу готов к использованию, как только вы включите отображение тонов HDR. Пожалуйста, проверьте журналы HyperHDR для получения подробной информации." + "grabber_calibration_expl": "Этот инструмент позволяет вам создать новую калиброванную HDR LUT для вашего устройства захвата (или внешнего источника flatbuffers), максимально приближенную к фактическим входным цветам.
Вам потребуется источник видео HDR10, который может отображать эту веб-страницу, например: Windows 10 с включенным HDR в свойствах графического драйвера.
Во время калибровки экран может мерцать. Обычно этот процесс занимает около нескольких минут на ПК с ОС Intel 7 Windows (в зависимости от ресурсов центрального процессора и частоты кадров видеозахвата).
Вычисления очень интенсивны и создают нагрузку на ваше оборудование Вы можете отключить коррекцию цвета LCH, чтобы немного снизить нагрузку
Вы можете следить за ходом выполнения в журналах HyperHDR с помощью браузера с другого устройства.


1 Если все подключено правильно, эта страница должна отображаться на экране телевизора (как HDR-контент) и в режиме предварительного просмотра в HyperHDR (захваченном устройством захвата).
2 Абсолютное минимальное разрешение захвата составляет 1280x720 (мы это проверим). Рекомендуемое — 1920x1080 YUV/NV12. Соотношение сторон 1920/1080 должно быть сохранено.
3 Вам необходимо отключить 'Режим четверти кадра' в свойствах вашего устройства захвата, если он включен.
4 Вам необходимо установить формат видео устройства захвата на MJPEG/YUV/NV12/P010.
5 Перед запуском процесса переведите ваш веб-браузер в полноэкранный режим (клавиша F11, мы это проверим).
6 Если вы выполняете калибровку с помощью Windows 11, отключите такие функции, как 'Ночной свет', 'Автоматическое управление цветом для приложений' и 'Авто-HDR'. Не изменяйте цветовой баланс в графическом драйвере. Выход GFX должен поддерживать, например, 10 или 12 бит RGB в полном диапазоне ПК.

После завершения калибровки ваш новый файл таблицы LUT (lut_lin_tables.3d) будет создан в домашнем каталоге HyperHDR пользователя и сразу готов к использованию, как только вы включите отображение тонов HDR. Пожалуйста, проверьте журналы HyperHDR для получения подробной информации.", + "edt_automatic_tone_mapping_title": "Автоматическая тональная компрессия", + "edt_automatic_tone_mapping_enable_explain": "Автоматическое управление тональной компрессией доступно только для видеоформатов 'YUV/NV12/P010' с включенным режимом 'Четверть кадра'. Настройте их в настройках USB-граббера.
Компонент автоматически включит тональную компрессию, если сигнал не превысит настроенные пороговые уровни в течение определенного периода времени, и отключит ее сразу после их превышения.
Затем позже вы можете проверить, какое значение превысило любой из порогов, что фактически привело к отключению тональной компрессии в журналах HyperHDR. И затем, возможно, скорректировать конфигурацию, если она генерирует ложные события отключения тональной компрессии (слишком низкий порог) или генерирует ненужное включение тональной компрессии в темных сценах SDR (слишком высокий порог).", + "edt_automatic_tone_mapping_y_threshold_title": "Порог яркости (Y)", + "edt_automatic_tone_mapping_y_threshold_expl": "Уровень яркости, который отделяет сырой темный материал HDR от сигнала SDR.", + "edt_automatic_tone_mapping_u_threshold_title": "Порог синей цветности (U)", + "edt_automatic_tone_mapping_u_threshold_expl": "Уровень синей цветности, который отделяет сырой бледный материал HDR от сигнала SDR.", + "edt_automatic_tone_mapping_v_threshold_title": "Порог красной цветности (V)", + "edt_automatic_tone_mapping_v_threshold_expl": "Уровень красной цветности, который отделяет сырой бледный материал HDR от сигнала SDR.", + "edt_automatic_tone_mapping_time_title": "Время включения тональной компрессии", + "edt_automatic_tone_mapping_time_expl": "Время включения тональной компрессии, если сигнал не превысит настроенные пороговые уровни.", + "edt_automatic_tone_mapping_disable_time_title": "Время отключения тональной компрессии", + "edt_automatic_tone_mapping_disable_time_expl": "В идеальном мире это значение должно быть равно нулю, потому что тональную компрессию следует отключать сразу после пересечения одного из порогов. Но это случается, например: при запуске или переключении разрешения граббер может генерировать ненужные кадры, которые могут отключить тональную компрессию без необходимости." } diff --git a/www/i18n/sv.json b/www/i18n/sv.json index 5c438a567..e1d34f8f5 100644 --- a/www/i18n/sv.json +++ b/www/i18n/sv.json @@ -1251,5 +1251,17 @@ "flatbuffers_nv12_quarter_of_frame_title": "Fjärdedel av ram för NV12", "flatbuffers_nv12_quarter_of_frame_expl": "NV12 codec innehåller fyra gånger mer information om ljusstyrka än om färg. Detta alternativ låter dig minska CPU-belastningen genom att minska höjden och bredden på videoramen med 2 utan att förlora färginformation.", "chk_lchCorrection": "LCH färgkorrigering", - "grabber_calibration_expl": "Med det här verktyget kan du skapa en ny kalibrerad HDR LUT för din grabber (eller extern flatbuffertkälla) så nära de faktiska ingångsfärgerna som möjligt.
Du behöver en HDR10-videokälla som kan visa den här webbsidan, till exempel: Windows 10 med HDR aktiverat i egenskaperna för grafikdrivrutinen.
Skärmen kan flimra under kalibrering. Processen tar vanligtvis cirka några minuter på en Intel 7 Windows-dator (beroende på värd-CPU-resurserna och videoinspelningshastigheten).
Beräkningarna är mycket intensiva och belastar din utrustning Du kan inaktivera LCH-färgkorrigering för att minska ladda lite
Du kan övervaka förloppet i HyperHDR-loggar med hjälp av webbläsaren från en annan enhet.


1 Om allt är korrekt anslutet, denna sida ska visas på TV-skärmen (som HDR-innehåll) och liveförhandsvisning i HyperHDR (fångad av griparen).
2 Den absoluta lägsta inspelningsupplösningen är 1280x720 (vi kommer att verifiera detta). Rekommenderad är 1920x1080 YUV/NV12. Aspekt 1920/1080 måste bevaras.
3 Du måste inaktivera 'Quarter of frame mode' i dina grabberegenskaper om det är aktiverat.
4 måste ställa in grabberns videoformat till MJPEG/YUV/NV12/P010.
5 Innan du kör processen, ställ din WWW-webbläsare i helskärmsläge (F11-tangent, vi kommer att verifiera detta).
6 Om du kalibrerar med Windows 11, stäng av funktioner som 'Nattljus', 'Automatisk hantering av färg för appar' och 'Auto-HDR'. Ändra inte färgbalansen i grafikdrivrutinen. GFX-utgången ska stödja t.ex. 10 eller 12 bitars RGB i hela PC-intervallet.

När kalibreringen har slutförts skapas din nya LUT-tabellfil (lut_lin_tables.3d) i användarens HyperHDR-hemkatalog och är omedelbart klar att använda när du bara aktiverar HDR-tonmappning. Vänligen verifiera HyperHDR-loggarna för detaljer." + "grabber_calibration_expl": "Med det här verktyget kan du skapa en ny kalibrerad HDR LUT för din grabber (eller extern flatbuffertkälla) så nära de faktiska ingångsfärgerna som möjligt.
Du behöver en HDR10-videokälla som kan visa den här webbsidan, till exempel: Windows 10 med HDR aktiverat i egenskaperna för grafikdrivrutinen.
Skärmen kan flimra under kalibrering. Processen tar vanligtvis cirka några minuter på en Intel 7 Windows-dator (beroende på värd-CPU-resurserna och videoinspelningshastigheten).
Beräkningarna är mycket intensiva och belastar din utrustning Du kan inaktivera LCH-färgkorrigering för att minska ladda lite
Du kan övervaka förloppet i HyperHDR-loggar med hjälp av webbläsaren från en annan enhet.


1 Om allt är korrekt anslutet, denna sida ska visas på TV-skärmen (som HDR-innehåll) och liveförhandsvisning i HyperHDR (fångad av griparen).
2 Den absoluta lägsta inspelningsupplösningen är 1280x720 (vi kommer att verifiera detta). Rekommenderad är 1920x1080 YUV/NV12. Aspekt 1920/1080 måste bevaras.
3 Du måste inaktivera 'Quarter of frame mode' i dina grabberegenskaper om det är aktiverat.
4 måste ställa in grabberns videoformat till MJPEG/YUV/NV12/P010.
5 Innan du kör processen, ställ din WWW-webbläsare i helskärmsläge (F11-tangent, vi kommer att verifiera detta).
6 Om du kalibrerar med Windows 11, stäng av funktioner som 'Nattljus', 'Automatisk hantering av färg för appar' och 'Auto-HDR'. Ändra inte färgbalansen i grafikdrivrutinen. GFX-utgången ska stödja t.ex. 10 eller 12 bitars RGB i hela PC-intervallet.

När kalibreringen har slutförts skapas din nya LUT-tabellfil (lut_lin_tables.3d) i användarens HyperHDR-hemkatalog och är omedelbart klar att använda när du bara aktiverar HDR-tonmappning. Vänligen verifiera HyperHDR-loggarna för detaljer.", + "edt_automatic_tone_mapping_title": "Automatisk tonmappning", + "edt_automatic_tone_mapping_enable_explain": "Automatisk tonmappningskontroll är endast tillgänglig för videoformat 'YUV/NV12/P010' med 'Quarter of frame'-läge aktiverat. Vänligen konfigurera dem i USB-grabber-inställningarna.
Komponenten kommer automatiskt att aktivera tonmappning om signalen inte överskrider de konfigurerade tröskelnivåerna under en viss tidsperiod, och kommer att inaktivera den omedelbart efter att de överskridits.
Sedan kan du senare kontrollera vad som var värdet som överskred någon av tröskelvärdena, vilket faktiskt gjorde att tonmappning inaktiverades i HyperHDR-loggar. Och sedan eventuellt justera konfigurationen om den genererar falska händelser med inaktivering av tonmappning (tröskelvärdet för lågt) eller genererar onödig tonmappningsaktivering i mörka SDR-scener (tröskelvärdet för högt).", + "edt_automatic_tone_mapping_y_threshold_title": "Tröskel för ljusstyrka (Y)", + "edt_automatic_tone_mapping_y_threshold_expl": "Ljusstyrkan som skiljer rått mörkt HDR-material från SDR-signalen.", + "edt_automatic_tone_mapping_u_threshold_title": "Blåttröskelvärde (U)", + "edt_automatic_tone_mapping_u_threshold_expl": "Blå färgnivå som separerar rå blekt HDR-material från SDR-signalen.", + "edt_automatic_tone_mapping_v_threshold_title": "Röd kromatröskel (V)", + "edt_automatic_tone_mapping_v_threshold_expl": "Röd chroma-nivå som separerar rå blekt HDR-material från SDR-signalen.", + "edt_automatic_tone_mapping_time_title": "Dags att slå på tonmapping", + "edt_automatic_tone_mapping_time_expl": "Dags att aktivera tonmappning om signalen inte överskrider de konfigurerade tröskelnivåerna.", + "edt_automatic_tone_mapping_disable_time_title": "Dags att stänga av tonmapping", + "edt_automatic_tone_mapping_disable_time_expl": "I en ideal värld bör detta värde vara noll, eftersom tonmappning bör inaktiveras omedelbart efter att ha passerat ett av tröskelvärdena. Men det händer till exempel: när man startar eller byter upplösning kan grabbern generera skräpramar, vilket kan inaktivera tonmappning i onödan." } diff --git a/www/i18n/tr.json b/www/i18n/tr.json index 1182fe0e9..0c3c9b8dd 100644 --- a/www/i18n/tr.json +++ b/www/i18n/tr.json @@ -1251,5 +1251,17 @@ "flatbuffers_nv12_quarter_of_frame_title": "NV12 için karenin dörtte biri", "flatbuffers_nv12_quarter_of_frame_expl": "NV12 kodeği, renk hakkında olduğundan dört kat daha fazla parlaklık bilgisi içerir. Bu seçenek, renk bilgilerini kaybetmeden video karesinin yüksekliğini ve genişliğini 2 azaltarak CPU yükünü azaltmanıza olanak tanır.", "chk_lchCorrection": "LCH renk düzeltmesi", - "grabber_calibration_expl": "Bu araç, gerçek giriş renklerine mümkün olduğunca yakın bir şekilde yakalayıcınız (veya harici düz arabellek kaynağı) için yeni bir kalibre edilmiş HDR LUT oluşturmanıza olanak tanır.
Bu web sayfasını görüntüleyebilen bir HDR10 video kaynağına ihtiyacınız var, örneğin: Grafik sürücüsünün özelliklerinde HDR etkinleştirilmiş Windows 10.
Kalibrasyon sırasında ekran titreyebilir. İşlem genellikle Intel 7 Windows PC'de birkaç dakika sürer (ana bilgisayar CPU kaynaklarına ve video yakalama kare hızına bağlı olarak).
Hesaplamalar oldukça yoğun ve ekipmanınıza yük bindirir Yükü biraz azaltmak için LCH renk düzeltmesini devre dışı bırakabilirsiniz
Başka bir cihazdan tarayıcıyı kullanarak HyperHDR günlüklerindeki ilerlemeyi izleyebilirsiniz.


1 Her şey düzgün bir şekilde bağlanmışsa, bu sayfa TV ekranında (HDR içeriği olarak) ve HyperHDR'de canlı önizleme (yakalayıcı tarafından yakalanmış) olarak görüntülenmelidir.
2 Mutlak minimum yakalama çözünürlüğü 1280x720'dir (bunu doğrulayacağız). Önerilen çözünürlük 1920x1080 YUV/NV12'dir. Görünüm 1920/1080 korunmalıdır.
3 Etkinse, yakalayıcı özelliklerinizde 'Çeyrek kare modu'nu devre dışı bırakmalısınız.
4 Yakalayıcının video biçimini MJPEG/YUV/NV12/P010 olarak ayarlamalısınız.
5 İşlemi çalıştırmadan önce lütfen WWW tarayıcınızı tam ekran moduna getirin (F11 tuşu, bunu doğrulayacağız).
6 Windows 11 kullanarak kalibre ediyorsanız, 'Gece ışığı', 'Uygulamalar için rengi otomatik yönet' ve 'Otomatik HDR' gibi özellikleri kapatın. Grafik sürücüsündeki renk dengesini değiştirmeyin. GFX çıkışı örneğin şunları desteklemelidir: Tam PC aralığında 10 veya 12 bit RGB.

Kalibrasyon tamamlandıktan sonra, yeni LUT tablo dosyanız (lut_lin_tables.3d) kullanıcının HyperHDR ana dizininde oluşturulacak ve HDR ton eşlemesini etkinleştirdiğinizde hemen kullanıma hazır olacaktır. Ayrıntılar için lütfen HyperHDR günlüklerini doğrulayın." + "grabber_calibration_expl": "Bu araç, gerçek giriş renklerine mümkün olduğunca yakın bir şekilde yakalayıcınız (veya harici düz arabellek kaynağı) için yeni bir kalibre edilmiş HDR LUT oluşturmanıza olanak tanır.
Bu web sayfasını görüntüleyebilen bir HDR10 video kaynağına ihtiyacınız var, örneğin: Grafik sürücüsünün özelliklerinde HDR etkinleştirilmiş Windows 10.
Kalibrasyon sırasında ekran titreyebilir. İşlem genellikle Intel 7 Windows PC'de birkaç dakika sürer (ana bilgisayar CPU kaynaklarına ve video yakalama kare hızına bağlı olarak).
Hesaplamalar oldukça yoğun ve ekipmanınıza yük bindirir Yükü biraz azaltmak için LCH renk düzeltmesini devre dışı bırakabilirsiniz
Başka bir cihazdan tarayıcıyı kullanarak HyperHDR günlüklerindeki ilerlemeyi izleyebilirsiniz.


1 Her şey düzgün bir şekilde bağlanmışsa, bu sayfa TV ekranında (HDR içeriği olarak) ve HyperHDR'de canlı önizleme (yakalayıcı tarafından yakalanmış) olarak görüntülenmelidir.
2 Mutlak minimum yakalama çözünürlüğü 1280x720'dir (bunu doğrulayacağız). Önerilen çözünürlük 1920x1080 YUV/NV12'dir. Görünüm 1920/1080 korunmalıdır.
3 Etkinse, yakalayıcı özelliklerinizde 'Çeyrek kare modu'nu devre dışı bırakmalısınız.
4 Yakalayıcının video biçimini MJPEG/YUV/NV12/P010 olarak ayarlamalısınız.
5 İşlemi çalıştırmadan önce lütfen WWW tarayıcınızı tam ekran moduna getirin (F11 tuşu, bunu doğrulayacağız).
6 Windows 11 kullanarak kalibre ediyorsanız, 'Gece ışığı', 'Uygulamalar için rengi otomatik yönet' ve 'Otomatik HDR' gibi özellikleri kapatın. Grafik sürücüsündeki renk dengesini değiştirmeyin. GFX çıkışı örneğin şunları desteklemelidir: Tam PC aralığında 10 veya 12 bit RGB.

Kalibrasyon tamamlandıktan sonra, yeni LUT tablo dosyanız (lut_lin_tables.3d) kullanıcının HyperHDR ana dizininde oluşturulacak ve HDR ton eşlemesini etkinleştirdiğinizde hemen kullanıma hazır olacaktır. Ayrıntılar için lütfen HyperHDR günlüklerini doğrulayın.", + "edt_automatic_tone_mapping_title": "Otomatik ton eşleme", + "edt_automatic_tone_mapping_enable_explain": "Otomatik ton eşleme denetimi yalnızca 'Çeyrek kare' modu etkinleştirilmiş 'YUV/NV12/P010' video formatları için kullanılabilir. Lütfen bunları USB yakalayıcı ayarlarında yapılandırın.
Bileşen, sinyal belirli bir süre boyunca yapılandırılmış eşik seviyelerini aşmazsa ton eşlemesini otomatik olarak etkinleştirir ve aştıktan hemen sonra devre dışı bırakır.
Daha sonra HyperHDR günlüklerinde ton eşlemesinin devre dışı bırakılmasına neden olan eşik değerlerinden herhangi birini aşan değerin ne olduğunu kontrol edebilirsiniz. Ve daha sonra ton eşlemesinin devre dışı bırakılması (eşik değeri çok düşük) veya karanlık SDR sahnelerinde gereksiz ton eşlemesinin etkinleştirilmesi (eşik değeri çok yüksek) gibi yanlış olaylar üretirse yapılandırmayı ayarlayın.", + "edt_automatic_tone_mapping_y_threshold_title": "Parlaklık eşiği (Y)", + "edt_automatic_tone_mapping_y_threshold_expl": "Ham koyu HDR malzemeyi SDR sinyalinden ayıran parlaklık seviyesi.", + "edt_automatic_tone_mapping_u_threshold_title": "Mavi renk eşiği (U)", + "edt_automatic_tone_mapping_u_threshold_expl": "Ham soluk HDR malzemeyi SDR sinyalinden ayıran mavi renk seviyesi.", + "edt_automatic_tone_mapping_v_threshold_title": "Kırmızı renk eşiği (V)", + "edt_automatic_tone_mapping_v_threshold_expl": "Ham soluk HDR malzemeyi SDR sinyalinden ayıran kırmızı renk seviyesi.", + "edt_automatic_tone_mapping_time_title": "Ton eşlemesini açma zamanı", + "edt_automatic_tone_mapping_time_expl": "Sinyal yapılandırılmış eşik seviyelerini aşmazsa ton eşlemesini açma zamanı.", + "edt_automatic_tone_mapping_disable_time_title": "Ton eşlemeyi kapatma zamanı", + "edt_automatic_tone_mapping_disable_time_expl": "İdeal bir dünyada bu değer sıfır olmalıdır, çünkü ton eşlemesi eşik değerlerinden birini geçtikten hemen sonra devre dışı bırakılmalıdır. Ancak bu olur, örneğin: çözünürlüğü başlatırken veya değiştirirken, yakalayıcı gereksiz kareler üretebilir ve bu da ton eşlemeyi gereksiz yere devre dışı bırakabilir." } diff --git a/www/i18n/vi.json b/www/i18n/vi.json index 9ea95f507..49cfa1243 100644 --- a/www/i18n/vi.json +++ b/www/i18n/vi.json @@ -1251,5 +1251,17 @@ "flatbuffers_nv12_quarter_of_frame_title": "Một phần tư khung hình cho NV12", "flatbuffers_nv12_quarter_of_frame_expl": "Bộ giải mã NV12 chứa thông tin về độ sáng nhiều gấp bốn lần so với thông tin về màu sắc. Tùy chọn này cho phép bạn giảm tải CPU bằng cách giảm chiều cao và chiều rộng của khung hình video đi 2 mà không làm mất thông tin màu.", "chk_lchCorrection": "Hiệu chỉnh màu LCH", - "grabber_calibration_expl": "Công cụ này cho phép bạn tạo LUT HDR hiệu chuẩn mới cho bộ thu (hoặc nguồn flatbuffer bên ngoài) của bạn càng gần với màu đầu vào thực tế càng tốt.
Bạn cần nguồn video HDR10 có thể hiển thị trang web này, ví dụ: Windows 10 có bật HDR trong thuộc tính của trình điều khiển đồ họa.
Màn hình có thể nhấp nháy trong quá trình hiệu chuẩn. Quá trình này thường mất khoảng vài phút trên PC chạy Windows Intel 7 (tùy thuộc vào tài nguyên CPU máy chủ và tốc độ khung hình ghi video).
Các phép tính rất chuyên sâu và gây áp lực lên thiết bị của bạn Bạn có thể tắt hiệu chỉnh màu LCH để giảm tải một chút
Bạn có thể theo dõi tiến trình trong nhật ký HyperHDR bằng trình duyệt từ thiết bị khác.


1 Nếu mọi thứ được kết nối đúng cách, trang này sẽ được hiển thị trên màn hình TV (dưới dạng nội dung HDR) và bản xem trước trực tiếp trong HyperHDR (được chụp bằng trình thu).
2 Độ phân giải chụp tối thiểu tuyệt đối là 1280x720 (chúng tôi sẽ xác minh điều này). Độ phân giải khuyến nghị là 1920x1080 YUV/NV12. Phải giữ nguyên tỷ lệ 1920/1080.
3 Bạn phải tắt 'Chế độ một phần tư khung hình' trong thuộc tính grabber của mình nếu chế độ này được bật.
4 Bạn phải đặt định dạng video của grabber thành MJPEG/YUV/NV12/P010.
5 Trước khi chạy quy trình, vui lòng đặt trình duyệt WWW của bạn ở chế độ toàn màn hình (phím F11, chúng tôi sẽ xác minh điều này).
6 Nếu bạn đang hiệu chỉnh bằng Windows 11, hãy tắt các tính năng như 'Ánh sáng ban đêm', 'Tự động quản lý màu cho ứng dụng' và 'HDR tự động'. Không thay đổi cân bằng màu trong trình điều khiển đồ họa. Đầu ra GFX phải hỗ trợ ví dụ. RGB 10 hoặc 12 bit trong phạm vi PC đầy đủ.

Sau khi hoàn tất hiệu chuẩn, tệp bảng LUT mới của bạn (lut_lin_tables.3d) sẽ được tạo trong thư mục gốc HyperHDR của người dùng và sẵn sàng sử dụng ngay khi bạn chỉ cần bật ánh xạ tông màu HDR. Vui lòng xác minh nhật ký HyperHDR để biết chi tiết." + "grabber_calibration_expl": "Công cụ này cho phép bạn tạo LUT HDR hiệu chuẩn mới cho bộ thu (hoặc nguồn flatbuffer bên ngoài) của bạn càng gần với màu đầu vào thực tế càng tốt.
Bạn cần nguồn video HDR10 có thể hiển thị trang web này, ví dụ: Windows 10 có bật HDR trong thuộc tính của trình điều khiển đồ họa.
Màn hình có thể nhấp nháy trong quá trình hiệu chuẩn. Quá trình này thường mất khoảng vài phút trên PC chạy Windows Intel 7 (tùy thuộc vào tài nguyên CPU máy chủ và tốc độ khung hình ghi video).
Các phép tính rất chuyên sâu và gây áp lực lên thiết bị của bạn Bạn có thể tắt hiệu chỉnh màu LCH để giảm tải một chút
Bạn có thể theo dõi tiến trình trong nhật ký HyperHDR bằng trình duyệt từ thiết bị khác.


1 Nếu mọi thứ được kết nối đúng cách, trang này sẽ được hiển thị trên màn hình TV (dưới dạng nội dung HDR) và bản xem trước trực tiếp trong HyperHDR (được chụp bằng trình thu).
2 Độ phân giải chụp tối thiểu tuyệt đối là 1280x720 (chúng tôi sẽ xác minh điều này). Độ phân giải khuyến nghị là 1920x1080 YUV/NV12. Phải giữ nguyên tỷ lệ 1920/1080.
3 Bạn phải tắt 'Chế độ một phần tư khung hình' trong thuộc tính grabber của mình nếu chế độ này được bật.
4 Bạn phải đặt định dạng video của grabber thành MJPEG/YUV/NV12/P010.
5 Trước khi chạy quy trình, vui lòng đặt trình duyệt WWW của bạn ở chế độ toàn màn hình (phím F11, chúng tôi sẽ xác minh điều này).
6 Nếu bạn đang hiệu chỉnh bằng Windows 11, hãy tắt các tính năng như 'Ánh sáng ban đêm', 'Tự động quản lý màu cho ứng dụng' và 'HDR tự động'. Không thay đổi cân bằng màu trong trình điều khiển đồ họa. Đầu ra GFX phải hỗ trợ ví dụ. RGB 10 hoặc 12 bit trong phạm vi PC đầy đủ.

Sau khi hoàn tất hiệu chuẩn, tệp bảng LUT mới của bạn (lut_lin_tables.3d) sẽ được tạo trong thư mục gốc HyperHDR của người dùng và sẵn sàng sử dụng ngay khi bạn chỉ cần bật ánh xạ tông màu HDR. Vui lòng xác minh nhật ký HyperHDR để biết chi tiết.", + "edt_automatic_tone_mapping_title": "Ánh xạ tông màu tự động", + "edt_automatic_tone_mapping_enable_explain": "Điều khiển ánh xạ tông màu tự động chỉ khả dụng cho các định dạng video 'YUV/NV12/P010' có bật chế độ 'Một phần tư khung hình'. Vui lòng định cấu hình chúng trong cài đặt USB grabber.
Thành phần sẽ tự động bật ánh xạ tông màu nếu tín hiệu không vượt quá ngưỡng ngưỡng đã định cấu hình trong một khoảng thời gian nhất định và sẽ tắt ngay sau khi vượt quá ngưỡng ngưỡng đó.
Sau đó, bạn có thể kiểm tra giá trị nào vượt quá ngưỡng nào, thực sự khiến ánh xạ tông màu bị vô hiệu hóa trong nhật ký HyperHDR. Sau đó, có thể điều chỉnh cấu hình nếu nó tạo ra các sự kiện sai về việc vô hiệu hóa ánh xạ tông màu (ngưỡng quá thấp) hoặc tạo ra ánh xạ tông màu không cần thiết được kích hoạt trong các cảnh SDR tối (ngưỡng quá cao).", + "edt_automatic_tone_mapping_y_threshold_title": "Ngưỡng độ sáng (Y)", + "edt_automatic_tone_mapping_y_threshold_expl": "Mức độ sáng tách vật liệu HDR tối thô khỏi tín hiệu SDR.", + "edt_automatic_tone_mapping_u_threshold_title": "Ngưỡng sắc độ xanh (U)", + "edt_automatic_tone_mapping_u_threshold_expl": "Mức sắc độ xanh tách vật liệu HDR nhạt thô khỏi tín hiệu SDR.", + "edt_automatic_tone_mapping_v_threshold_title": "Ngưỡng sắc độ đỏ (V)", + "edt_automatic_tone_mapping_v_threshold_expl": "Mức sắc độ đỏ tách vật liệu HDR nhạt thô khỏi tín hiệu SDR.", + "edt_automatic_tone_mapping_time_title": "Thời gian bật ánh xạ tông màu", + "edt_automatic_tone_mapping_time_expl": "Thời gian bật ánh xạ tông màu nếu tín hiệu không vượt quá ngưỡng ngưỡng đã định cấu hình.", + "edt_automatic_tone_mapping_disable_time_title": "Đã đến lúc tắt ánh xạ tông màu", + "edt_automatic_tone_mapping_disable_time_expl": "Trong thế giới lý tưởng, giá trị này phải bằng không, vì ánh xạ tông màu phải bị vô hiệu hóa ngay sau khi vượt qua một trong các ngưỡng. Nhưng điều này xảy ra, ví dụ: khi bắt đầu hoặc chuyển đổi độ phân giải, trình thu thập có thể tạo ra các khung rác, có thể vô hiệu hóa ánh xạ tông màu một cách không cần thiết." } diff --git a/www/i18n/zh-CN.json b/www/i18n/zh-CN.json index 7664ffcb0..67101f439 100644 --- a/www/i18n/zh-CN.json +++ b/www/i18n/zh-CN.json @@ -1251,5 +1251,17 @@ "flatbuffers_nv12_quarter_of_frame_title": "NV12 的四分之一帧", "flatbuffers_nv12_quarter_of_frame_expl": "NV12 编解码器包含的亮度信息是颜色信息的四倍。此选项允许您通过将视频帧的高度和宽度减少 2 来减少 CPU 负载,而不会丢失颜色信息。", "chk_lchCorrection": "LCH 色彩校正", - "grabber_calibration_expl": "此工具可让您为抓取器(或外部 flatbuffers 源)创建一个新的校准 HDR LUT,使其尽可能接近实际输入颜色。
您需要一个可以显示此网页的 HDR10 视频源,例如:在图形驱动程序的属性中启用 HDR 的 Windows 10。
校准期间屏幕可能会闪烁。在 Intel 7 Windows PC 上,该过程通常需要几分钟(取决于主机 CPU 资源和视频捕获帧速率)。
计算非常密集,会给您的设备带来压力 您可以禁用 LCH 颜色校正以稍微减轻负载
您可以使用其他设备上的浏览器监控 HyperHDR 日志中的进度。


1 如果一切都正确连接,此页面应显示在电视屏幕上(作为 HDR 内容)并在 HyperHDR 中实时预览(由抓取器捕获)。
2 绝对最小捕获分辨率为 1280x720(我们将验证这一点)。推荐使用 1920x1080 YUV/NV12。必须保留 1920/1080 的宽高比。
3 如果已启用“四分之一帧模式”,则必须在抓取器属性中将其禁用。
4 您必须将抓取器的视频格式设置为 MJPEG/YUV/NV12/P010。
5 在运行该过程之前,请将您的 WWW 浏览器置于全屏模式(F11 键,我们将验证这一点)。
6 如果您使用 Windows 11 进行校准,请关闭“夜灯”、“自动管理应用颜色”和“自动 HDR”等功能。请勿更改图形驱动程序中的色彩平衡。GFX 输出应支持例如全 PC 范围内的 10 位或 12 位 RGB。

完成校准后,您的新 LUT 表文件 (lut_lin_tables.3d) 将在用户的 HyperHDR 主目录中创建,并且只要您启用 HDR 色调映射即可立即使用。请检查 HyperHDR 日志以了解详细信息。" + "grabber_calibration_expl": "此工具可让您为抓取器(或外部 flatbuffers 源)创建一个新的校准 HDR LUT,使其尽可能接近实际输入颜色。
您需要一个可以显示此网页的 HDR10 视频源,例如:在图形驱动程序的属性中启用 HDR 的 Windows 10。
校准期间屏幕可能会闪烁。在 Intel 7 Windows PC 上,该过程通常需要几分钟(取决于主机 CPU 资源和视频捕获帧速率)。
计算非常密集,会给您的设备带来压力 您可以禁用 LCH 颜色校正以稍微减轻负载
您可以使用其他设备上的浏览器监控 HyperHDR 日志中的进度。


1 如果一切都正确连接,此页面应显示在电视屏幕上(作为 HDR 内容)并在 HyperHDR 中实时预览(由抓取器捕获)。
2 绝对最小捕获分辨率为 1280x720(我们将验证这一点)。推荐使用 1920x1080 YUV/NV12。必须保留 1920/1080 的宽高比。
3 如果已启用“四分之一帧模式”,则必须在抓取器属性中将其禁用。
4 您必须将抓取器的视频格式设置为 MJPEG/YUV/NV12/P010。
5 在运行该过程之前,请将您的 WWW 浏览器置于全屏模式(F11 键,我们将验证这一点)。
6 如果您使用 Windows 11 进行校准,请关闭“夜灯”、“自动管理应用颜色”和“自动 HDR”等功能。请勿更改图形驱动程序中的色彩平衡。GFX 输出应支持例如全 PC 范围内的 10 位或 12 位 RGB。

完成校准后,您的新 LUT 表文件 (lut_lin_tables.3d) 将在用户的 HyperHDR 主目录中创建,并且只要您启用 HDR 色调映射即可立即使用。请检查 HyperHDR 日志以了解详细信息。", + "edt_automatic_tone_mapping_title": "自动色调映射", + "edt_automatic_tone_mapping_enable_explain": "自动色调映射控制仅适用于启用了 'YUV/NV12/P010' 模式的视频格式。请在 USB 抓取器设置中配置它们。
如果信号在一定时间内未超过配置的阈值水平,则组件将自动启用色调映射,并在超过阈值后立即禁用它。
然后,您可以稍后检查哪个值超过了任何阈值,这实际上导致 HyperHDR 日志中的色调映射被禁用。然后,如果它生成了色调映射禁用的错误事件(阈值太低)或在黑暗的 SDR 场景中生成了不必要的色调映射启用(阈值太高),则可能需要调整配置。", + "edt_automatic_tone_mapping_y_threshold_title": "亮度阈值 (Y)", + "edt_automatic_tone_mapping_y_threshold_expl": "将原始深色 HDR 材料与 SDR 信号分开的亮度级别。", + "edt_automatic_tone_mapping_u_threshold_title": "蓝色色度阈值 (U)", + "edt_automatic_tone_mapping_u_threshold_expl": "将原始浅色 HDR 材料与 SDR 信号分开的蓝色色度级别。", + "edt_automatic_tone_mapping_v_threshold_title": "红色色度阈值 (V)", + "edt_automatic_tone_mapping_v_threshold_expl": "将原始浅色 HDR 材料与 SDR 信号分开的红色色度级别。", + "edt_automatic_tone_mapping_time_title": "打开色调映射的时间", + "edt_automatic_tone_mapping_time_expl": "如果信号未超过配置的阈值水平,则打开色调映射的时间。", + "edt_automatic_tone_mapping_disable_time_title": "关闭色调映射的时间", + "edt_automatic_tone_mapping_disable_time_expl": "在理想情况下,此值应为零,因为色调映射应在超过其中一个阈值后立即禁用。但它确实发生了,例如:在启动或切换分辨率时,抓取器可能会生成垃圾帧,从而不必要地禁用色调映射。" } diff --git a/www/js/processing.js b/www/js/processing.js index 9ac47a4fe..cf8141840 100644 --- a/www/js/processing.js +++ b/www/js/processing.js @@ -49,6 +49,10 @@ $(document).ready( function() { //blackborder $('#conf_cont').append(createOptPanel('', $.i18n("edt_conf_bb_heading_title"), 'editor_container_blackborder', 'btn_submit_blackborder')); $('#conf_cont').append(createHelpTable(window.schema.blackborderdetector.properties, $.i18n("edt_conf_bb_heading_title"))); + + //automatic tone mapping + $('#conf_cont').append(createOptPanel('', $.i18n("edt_automatic_tone_mapping_title"), 'editor_container_automatic_tone_mapping', 'btn_submit_automatic_tone_mapping')); + $('#conf_cont').append(createHelpTable(window.schema.automaticToneMapping.properties, $.i18n("edt_automatic_tone_mapping_title"))); } //color @@ -103,6 +107,19 @@ $(document).ready( function() { $('#btn_submit_blackborder').off().on('click',function() { requestWriteConfig(editor_blackborder.getValue()); }); + + //tone mapping + editor_automatic_tone_mapping = createJsonEditor('editor_container_automatic_tone_mapping', { + automaticToneMapping: window.schema.automaticToneMapping + }, true, true, undefined, false); + + editor_automatic_tone_mapping.on('change',function() { + editor_automatic_tone_mapping.validate().length ? $('#btn_submit_automatic_tone_mapping').attr('disabled', true) : $('#btn_submit_automatic_tone_mapping').attr('disabled', false); + }); + + $('#btn_submit_automatic_tone_mapping').off().on('click',function() { + requestWriteConfig(editor_automatic_tone_mapping.getValue()); + }); //create introduction if(window.showOptHelp) @@ -110,6 +127,7 @@ $(document).ready( function() { createHint("intro", $.i18n('conf_colors_color_intro'), "editor_container_color"); createHint("intro", $.i18n('conf_colors_smoothing_intro'), "editor_container_smoothing"); createHint("intro", $.i18n('conf_colors_blackborder_intro'), "editor_container_blackborder"); + createHint("intro", $.i18n('edt_automatic_tone_mapping_enable_explain'), "editor_container_automatic_tone_mapping"); } removeOverlay();