資料介紹
軟件簡介
NVIDIA Image Scaling SDK 為跨平臺支持提供了單一的空間縮放和銳化算法。縮放算法使用 6-tap?縮放過濾器,結合了 4 個方向縮放和自適應銳化過濾器,可創建平滑的圖像和銳利的邊緣。此外,SDK 提供了最先進的自適應方向銳化算法,用于不需要縮放的應用程序。
色彩空間和范圍
NVIDIA Image Scaling?著色器可以處理存儲為 LDR 或 HDR 的顏色紋理,但有以下限制:
-
LDR
- 顏色值的范圍必須在 [0, 1] 范圍內
- 應用色調映射和 OETF(伽馬校正)后,輸入顏色紋理必須處于顯示參考顏色空間中
-
HDR PQ
- 顏色值的范圍必須在 [0, 1] 范圍內
- 在應用了 Rec.2020 PQ OETF 的色調映射后,輸入顏色紋理必須在顯示參考顏色空間中
-
HDR 線性
- 推薦的顏色值范圍是 [0, 12.5],其中亮度值(根據 BT.709)1.0 映射到 80nits(sRGB 峰值)的亮度值,12.5 映射到 1000nits
- 輸入顏色紋理可能具有線性和場景參考或線性和顯示參考(色調映射后)的亮度值
資源狀態、緩沖區和采樣器:
調用 NVIDIA Image Scaling SDK 著色器的游戲或應用程序必須確保紋理處于正確狀態。
- 輸入顏色紋理必須處于像素著色器讀取狀態。DirectX 中的著色器資源視圖 (SRV)
- 輸出紋理必須處于讀/寫狀態。DirectX 中的無序訪問視圖 (UAV)
- NVScaler 的系數紋理必須處于讀取狀態。DirectX 中的著色器資源視圖 (SRV)
- 配置變量必須作為常量緩沖區傳遞。DirectX 中的常量緩沖區視圖 (CBV)
- ……
最佳著色器設置
為了在當前和未來的硬件上獲得 NvScaler 和 NvSharpen 的最佳性能,建議使用以下 API 來獲取 NIS_BLOCK_WIDTH、NIS_BLOCK_HEIGHT 和 NIS_THREAD_GROUP_SIZE 的值。
enum class NISGPUArchitecture : uint32_t
{
NVIDIA_Generic = 0,
AMD_Generic = 1,
Intel_Generic = 2
};
struct NISOptimizer
{
bool isUpscaling;
NISGPUArchitecture gpuArch;
NISOptimizer(bool isUpscaling = true,
NISGPUArchitecture gpuArch = NISGPUArchitecture::NVIDIA_Generic);
uint32_t GetOptimalBlockWidth();
uint32_t GetOptimalBlockHeight();
uint32_t GetOptimalThreadGroupSize();
};
HDR 著色器設置
使用以下枚舉值設置 NIS_HDR_MODE
enum class NISHDRMode : uint32_t
{
None = 0,
Linear = 1,
PQ = 2
};
NVScaler 的集成
編譯 NIS_Main.hlsl 著色器
NIS_SCALER 應該設置為 1,并且 isUscaling 應該作為 true 傳遞。
NISOptimizer opt(true, NISGPUArchitecture::NVIDIA_Generic);
uint32_t blockWidth = opt.GetOptimalBlockWidth();
uint32_t blockHeight = opt.GetOptimalBlockHeight();
uint32_t threadGroupSize = opt.GetOptimalThreadGroupSize();
Defines defines;
defines.add("NIS_SCALER", true);
defines.add("NIS_HDR_MODE", hdrMode);
defines.add("NIS_BLOCK_WIDTH", blockWidth);
defines.add("NIS_BLOCK_HEIGHT", blockHeight);
defines.add("NIS_THREAD_GROUP_SIZE", threadGroupSize);
NVScalerCS = CompileComputeShader(device, "NIS_Main.hlsl”, &defines);
創建 NVIDIA Image Scaling SDK 配置常量緩沖區
struct NISConfig
{
float kDetectRatio;
float kDetectThres;
float kMinContrastRatio;
float kRatioNorm;
...
};
NISConfig config;
createConstBuffer(&config, &csBuffer);
為縮放器和 USM 相位系數創建 SRV 紋理
const int rowPitch = kFilterSize * 4;
const int imageSize = rowPitch * kPhaseCount;
createTexture2D(kFilterSize / 4, kPhaseCount, DXGI_FORMAT_R32G32B32A32_FLOAT, D3D11_USAGE_DEFAULT, coef_scaler, rowPitch, imageSize, &scalerTex);
createTexture2D(kFilterSize / 4, kPhaseCount, DXGI_FORMAT_R32G32B32A32_FLOAT, D3D11_USAGE_DEFAULT, coef_usm, rowPitch, imageSize, &usmTex);
createSRV(scalerTex.Get(), DXGI_FORMAT_R32G32B32A32_FLOAT, &scalerSRV);
createSRV(usmTex.Get(), DXGI_FORMAT_R32G32B32A32_FLOAT, &usmSRV);
創建采樣器
createLinearClampSampler(&linearClampSampler);
更新 NVIDIA Image Scaling SDK NVScaler 配置和常量緩沖區
使用以下 API 調用更新 NVIDIA Image Scaling SDK 配置
void NVScalerUpdateConfig(NISConfig& config,
float sharpness,
uint32_t inputViewportOriginX, uint32_t inputViewportOriginY,
uint32_t inputViewportWidth, uint32_t inputViewportHeight,
uint32_t inputTextureWidth, uint32_t inputTextureHeight,
uint32_t outputViewportOriginX, uint32_t outputViewportOriginY,
uint32_t outputViewportWidth, uint32_t outputViewportHeight,
uint32_t outputTextureWidth, uint32_t outputTextureHeight,
NISHDRMode hdrMode = NISHDRMode::None
);
每當輸入大小、清晰度或比例發生變化時更新常量緩沖區
NVScalerUpdateConfig(m_config, sharpness,
0, 0, inputWidth, inputHeight, inputWidth, inputHeight,
0, 0, outputWidth, outputHeight, outputWidth, outputHeight,
NISHDRMode::None);
updateConstBuffer(&config, csBuffer.Get());
構造
$> cd samples
$> mkdir build
$> cd build
$> cmake ..
- 如何使用FPGA實現圖像縮放算法的研究設計 29次下載
- 如何使用FPGA實現數字X線圖像的實時縮放模塊 4次下載
- 如何使用FPGA實現高分辨實時監控圖像縮放的設計 7次下載
- 使用FPGA實現視頻圖像縮放顯示的設計論文說明 6次下載
- image圖像處理的PHP庫資料免費下載 10次下載
- 移動終端的視頻圖像定點與縮放系統 1次下載
- 圖像內容感知縮放的檢測方法研究 1次下載
- 一種新穎的圖像縮放算法進行FPGA硬件實現 2次下載
- 基于FPGA的高分辨實時監控圖像縮放設計 5次下載
- 基于FPGA的數字X線圖像的實時縮放模塊 9次下載
- FPGA實現的視頻圖像縮放顯示 29次下載
- 基于FPGA實現固定倍率的圖像縮放
- 圖像處理中的插值和縮放研究 38次下載
- 圖像壓縮Image Optimizer漢化綠色版下載 0次下載
- 基于CCD圖像的自動定位滅火系統的開發
- 英偉達超級計算機Eos揭秘 372次閱讀
- CMOS Image sensor的基礎知識 4294次閱讀
- 英偉達:AI計算的領導者與市場前景展望 682次閱讀
- 傳英偉達針對中國開發三款芯片 511次閱讀
- 什么是圖像分割?圖像分割的體系結構和方法 4505次閱讀
- 大模型訓練,英偉達Turing、Ampere和Hopper算力分析 1622次閱讀
- 使用HLS封裝的縮放IP來實現視頻圖像縮放功能 1934次閱讀
- 圖庫四種常見操作的HarmonyOS圖像編解碼開發 1852次閱讀
- 基于FPGA技術實現圖像增強數據的仿真實驗分析 2179次閱讀
- 英偉達研究團隊的公布的“AI神筆”嗎? 2812次閱讀
- 探析數字圖像處理常用的方法 5091次閱讀
- 2018英偉達自動駕駛安全報告你了解多少報告全部內容在這里 4721次閱讀
- 如何利用FPGA硬件實現固定倍率的圖像縮放? 4452次閱讀
- 基于FPGA的視頻圖像縮放與疊加融合技術的設計方案及實現 4526次閱讀
- NVIDIA與西門子為醫療成像帶來逼真的3D技術 1139次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多