1. 서론
현대의 실시간 렌더링 환경에서는 4K 이상의 초고해상도 텍스처와 물리 기반 렌더링(Physically Based Rendering, PBR)을 위한 복잡한 머티리얼(material) 표현에 대한 수요가 지속적으로 증가하고 있다. 이러한 텍스처 데이터 용량의 급증은 GPU 메모리 용량에 큰 부담을 줄 뿐만 아니라, 데이터를 처리하는 메모리 대역폭에 심각한 부하를 주어 전체 렌더링 파이프라인의 주요 병목 현상으로 작용할 가능성이 있다.
위 문제를 해결하기 위해 지난 수십여 년간 블록 기반의 텍스처 압축 방식이 널리 활용되어 왔다. 이는 텍스처 이미지를 4x4 픽셀과 같은 고정된 크기의 블록 단위로 압축하는 기법들로, 데스크탑에서는 마이크로소프트의 BC(Block Compression) 포맷[33]이, 모바일에서는 ETC1/2[34,35], ASTC[36], PVRTC[37]와 같은 포맷이 표준으로 자리잡아 왔다. 텍스처 압축은 일반적인 JPEG과 같은 이미지 압축과 유사한 손실 압축 기법이지만, 임의의 텍스처 좌표에 즉시 접근 가능한 랜덤 액세스(random access)를 지원해야 하고, GPU 내 하드웨어 디코더를 통해 실시간으로 압축 해제가 가능하다는 특징을 지닌다. 또한 ASTC를 제외한 대부분의 표준 텍스처 압축 포맷은 제한된 수의 고정 비트레이트만 제공한다.
이러한 고정 압축률은 화질과 압축률 간 트레이드오프를 적절히 조절하지 못한다는 단점을 지닌다. 화질 측면에서는, 고주파 디테일이 집중된 영역에서 정보가 손실되거나 색상 변화가 급격한 영역에서 블록 간의 경계면이 시각적으로 부각되는 ‘블록 아티팩트 (block artifacts)’ 현상이 유발될 수 있다. 다른 한편으로, 유사한 색상이 반복되는 영역이 많은 이미지에서는 JPEG과 같은 표준 이미지 압축에 비해 불필요하게 많은 정보를 유지하여 낮은 압축 효율로 이어질 수 있다. 또한, 앞서 언급한 표준 텍스처 압축 포맷들은 모두 텍스처 당 채널 수를 1-4개로 제한하기 때문에, 알베도(albedo), 노멀(normal), 스페큘러(specular), 거칠기(roughness) 등 여러 채널로 구성된 PBR 머티리얼을 압축할 경우 텍스처 맵들 간의 유사성을 적절히 활용하지 못하는 한계를 지니며, 이는 낮은 압축 효율 또는 화질 저하로 이어질 수 있다.
최근 딥러닝 기술이 발전하면서 위에서 언급한 한계를 극복할 새로운 대안으로 신경망 기반 텍스처 압축 기법들이 새롭게 제안되고 있다. 그 중 가장 대표적인 기법은 엔비디아의 NTC (Neural Texture Compression) [1]로, 텍스처 데이터를 픽셀 배열이 아닌 MLP(multi-layer perceptron) 신경망의 가중치(weight)로 표현하는 기법이다. 이 방법은 밉맵(mipmap)과 멀티 채널 텍스처들을 함께 압축 가능하고, 가변 압축률을 지원하며, 기존 신경망 기반 이미지 압축 기법들과 달리 랜덤 액세스를 지원한다. 실험 결과, PBR 머티리얼을 NTC로 압축 시 낮은 비트레이트(bit rate)에서도 원본에 가까운 디테일을 복원할 수 있는 가능성을 제시하였다. 또한 엔비디아는 NTC를 개발자들이 프로젝트에 바로 적용할 수 있도록 SDK[3] 또한 함께 공개하고 있다.
이러한 기술적 진보와 SDK의 편의성 개선에도 불구하고, 실제 상용 게임 개발 환경에 NTC를 도입하기 위해서는 여전히 해소되지 않은 실무적 의문점들이 존재한다. 관련 논문[1], 발표 자료[2], SDK 문서[3]는 주로 기술의 구조적 우수성과 최신 하드웨어에서의 성능 검증에 집중하고 있어, 다양한 GPU 환경과 레거시 시스템이 공존하는 실제 개발 환경에서 활용할 수 있는 구체적인 운용 가이드라인은 충분히 제시하지 못하고 있기 때문이다. 이에 본 연구는 NTC SDK를 기반으로, 실무 도입 시 발생하는 불확실성을 해소하기 위해 다음과 같은 세 가지 핵심 요소를 검증한다.
첫째, MLP 모델의 복잡도에 따른 화질과 디코딩 성능의 트레이드 오프(trade-off)를 정량적으로 규명한다. 기존 표준 텍스처 코덱과 달리 NTC는 하드웨어 디코딩이 불가하므로, NTC로 압축된 텍스처를 사용하면 추론을 위한 디코딩 오버헤드가 런타임 시 추가될 수밖에 없다. NTC SDK는 MLP 레이어 구성 및 파라미터 규모를 조절할 수 있는 기능을 제공하지만, 이것이 저사양 GPU에서 어느 정도의 성능 이득을 주는지, 혹은 화질 저하의 임계점이 어디인지에 대한 정량적 기준은 부재하다. 본 연구는 신경망의 레이어 깊이와 파라미터 수가 압축 품질과 추론 속도에 미치는 영향을 분석하여, 하드웨어 가속 지원 유무 및 시스템 사양에 따른 최적의 네트워크 구성 가이드라인을 제시한다.
둘째, 텍스처 채널 복잡도에 따른 압축 효율 변화를 분석한다. 선행 NTC 연구[1]는 다중 채널 PBR 머티리얼의 채널 간 상관관계 학습이 높은 압축 효율로 이어질 수 있음을 입증하였으나, 소수의 채널만을 사용하는 일반적인 환경에서의 효율성은 자세히 검증하지 않았다. 이에 따라 본 연구에서는 이러한 저채널 텍스처 환경에서, 즉 학습할 수 있는 상관관계 정보가 제한된 상황에서도 NTC가 여전히 기존 압축 방식 대비 유효한 화질 우위를 점하는지 실험적으로 검증한다.
셋째, 하드웨어 호환성 확보를 위한 'NTC-to-BCn 트랜스코딩'의 화질 효율성과 실무적 타당성을 검증한다. 앞서 언급한 런타임 단계에서 수행되는 추론은 프레임 레이트 저하를 유발할 수 있으며, 이러한 특성은 연산 성능이 떨어지는 레거시 시스템에서의 NTC 사용을 특히 어렵게 만든다. 이에 따라 NTC SDK [3]는 런타임이 아닌 애플리케이션 로딩 시 사용할 수 있는, NTC를 BCn과 같은 표준 코덱으로 트랜스코딩하는 기능을 제공한다. 이 기법을 적용하면 VRAM 사용량 증가를 감수하는 대신 런타임 오버헤드가 제거되므로 호환성 문제 해결에 도움이 된다. 하지만 이와 같이 트랜스코딩 단계를 추가하게 되면 이중 압축 손실(generation loss)로 인한 추가적인 화질 저하가 발생할 수 있으며, 앱 로딩 시 트랜스코딩 연산 시간이 추가된다. 선행 연구[2]에서는 이러한 성능 및 품질과 관련하여 실험 평균 결과 수치를 제시했으나, 본 연구에서는 PSNR 및 FLIP[31]의 두 가지 메트릭을 통해 트랜스코딩 결과물의 화질을 각 텍스처별로 보다 정밀하게 측정한다. 또한 이를 통해 트랜스코딩으로 인한 이중 압축 손실과, NTC의 압축률 설정으로 인한 화질 저하 두 가지를 함께 분석한다. 이러한 분석 결과는 향후 단순한 호환성 확보를 넘어 실제 상용 엔진에서의 NTC 적용 가능성을 판단하는 데 도움이 될 것이다.
2. 관련 연구
실시간 렌더링 파이프라인에서 텍스처 메모리 대역폭은 성능을 결정짓는 주요 병목 구간 중 하나이다. 이를 해결하기 위해 지난 수십 년간 블록 기반 텍스처 압축이 표준으로 자리잡아 왔다. 그 중 마이크로소프트의 BC, 에릭슨의 ETC, ARM의 ASTC, 이매지네이션 테크놀러지의 PVRTC와 같은 코덱들은 이미지를 일정 크기의 작은 블록으로 나누고, 각 블록을 고정된 비트레이트로 압축하여 GPU 하드웨어에서 랜덤 액세스(random access)가 가능하도록 설계되었다. 초기의 BC1(DXT1, S3TC[4])은 블록당 두 개의 대표 색상을 저장하고 이를 보간하여 픽셀을 표현하는 단순한 방식을 사용했으나, 현대의 렌더링은 더 높은 품질을 요구함에 따라 이후 BC7, ETC2, ASTC와 같은 고품질 포맷이 등장했다. 이러한 포맷들은 다양한 모드와 블록 내 다중 파티션을 지원하여 색상 손실을 최소화하고 높은 압축 품질을 제공하는 데 초점을 두고 있다.
각 GPU 내에는 위 표준 코덱들 중 적어도 하나 이상에 대한 디코더가 존재하여 텍스처 매핑 시 실시간 디코딩을 지원한다. 디코더가 이와 같이 하드웨어상에 이미 구현되어 있는 것과 달리, 인코딩은 소프트웨어로 수행된다. 따라서 어떤 인코딩 알고리즘을 사용하느냐에 따라 압축된 결과의 품질과 인코딩 속도 간에 매우 큰 차이가 발생할 수 있다. 이러한 측면에서 텍스처 압축 분야의 많은 기존 연구들은 품질을 최대한 유지하면서도 인코딩 속도를 증가시켜 소프트웨어 개발성을 향상시키는 데 집중해 왔다. 그 예로는 BC7 인코딩을 위한 FasTC[5], SegTC[6], bc7enc[7], bc7e[8], QuickBC7[39], ETC 인코딩을 위한 etcpak[9], etc2comp[10], QuickETC2[11,38], QuickETC2-HQ[12], H-ETC[13], PVRTC 인코딩에 사용되는 Intensity Dilation 기법[14], ASTC 인코딩을 위한 astcenc[15], TexNN[16] 등이 있다. 이러한 고속 인코더는 대용량 텍스처를 포함하는 소프트웨어 개발 시간 절감에 도움이 될 뿐 아니라, 일부 실시간 텍스처 압축이 필요한 시나리오(3D 재구축, 텍스처 스트리밍, 실시간 절차적 텍스처 생성 등)에서도 유용하게 사용 가능하다.
ASTC는 128-bit 블록 구조를 기반으로 다양한 블록 footprint(예: 4×4~12×12)를 선택할 수 있어, 여러 수준의 가변 비트레이트 압축을 지원한다. 이에 따라 ASTC에서는 최적의 블록 크기 설정을 위한 몇 가지 연구들이 추가적으로 수행되었다. Griffin과 Olano[17], Lavoué 등[18]은 PBR 머티리얼에서 각 텍스처별 블록 크기를 마스킹(masking) 효과를 고려하여 다르게 지정해야 함을 주장하였고, Nah[19][20]는 타겟 PSNR 수치에 따라 블록 크기를 다르게 설정 가능한 기법을 제안하였다.
마지막 연구 주제는 이미 압축된 텍스처를 재압축하여 압축률을 향상시키는 초압축(supercompression)이다. Strom 등[21]은 ETC2로 이미 압축된 텍스처를 손실 없이 재압축하여 압축률을 더욱 향상시켰다. 이후 더 높은 압축률을 위해 별도의 코덱으로 사전 압축한 뒤, CPU (Crunch[22], Basis Universal[23]) 또는 GPU (GST[24]) 기반 방식을 통해 표준 코덱으로 트랜스코딩하는 손실 초압축 기법들이 제안되었다. 이와 같은 초압축 기법은 VRAM 사용량에는 영향을 주지 않지만, 스토리지 사용량과 다운로드 시 네트워크 대역폭을 줄이는 데 효과적이다. 다만 앱 로딩 시 디코딩 또는 트랜스코딩을 위한 추가 오버헤드가 발생한다.
위와 같이 기존 텍스처 압축 연구들이 주로 표준 코덱들(BCn, ETC, PVRTC, ASTC)의 사용성 향상에 초점을 맞춘 반면, 엔비디아의 NTC는 신경망 기반의 완전히 새로운 코덱을 제안하는 연구이다. 최근 딥러닝 기술의 발전은 JPEG나 AVIF를 뛰어넘는 신경망 기반 이미지 압축 기술들[25][26]의 등장으로 이어져 왔다. 하지만 이러한 기법들은 텍스처 압축에 직접 적용하기는 어려웠는데, 그 이유는 전체 이미지를 한 번에 복원하거나 엔트로피 코딩을 사용함으로써 텍스처 매핑에 필수적인 랜덤 액세스가 불가능하였기 때문이다. 이와 달리 NTC는 기존 신경망 이미지 압축 기법들과 달리 실시간 렌더링에 적합한 구조로 제안되어, 기존 텍스처 압축 기법들의 압축률 한계를 극복하는 데 초점을 두고 있다.
NTC의 핵심 개념 중 하나는 머티리얼별 과적합으로, 특정 머티리얼의 전체 텍스처 맵들을 하나의 작은 신경망(MLP)에 학습시켜, 신경망 자체가 압축된 데이터 역할을 수행하도록 한다. 데이터는 특징 피라미드(feature pyramid) 형태로 저장되며, 렌더링 시 셰이더 내부에서 필요한 픽셀 위치의 특징(feature)을 읽어와 MLP를 통해 실시간으로 압축을 해제한다. 이 방식은 신경망이 텍스처 채널 간의 잠재적 상관관계를 학습하여 데이터의 중복을 근본적으로 제거함으로써, 기존 블록 압축 방식 대비 메모리 점유율을 대폭 절감하면서도 시각적으로 훨씬 정교하고 고밀도의 디테일을 표현하는 탁월한 압축 효율을 보여준다. 즉, NTC는 단순한 압축을 넘어, 고해상도 디테일을 저용량으로 실시간 렌더링할 수 있는 새로운 패러다임을 제시하였다.
NVIDIA에서 NTC를 발표한 이후, NVIDIA를 포함한 주요 하드웨어 제조사 및 게임 개발사에서는 신경망 기반 압축 기술을 기존 렌더링 파이프라인에 통합하거나 하드웨어 가속을 통해 실용성을 높이는 방향으로 연구를 확장하고 있다. 우선, NVIDIA는 SDK[3] 발표와 함께 SDK 상에 구현된 NTC의 개선사항을 Vulkanised[2]에서 발표하였다. 이는 고해상도 특징 맵에서의 선형 가중치 사용, 텍스처 채널의 정규화, 활성화 함수의 범위 제한 등을 통해 품질 향상이 이루어졌고, [19][20]과 유사하게 타겟 PSNR 수치 입력이 가능해졌으며, 협동 벡터(cooperative vectors)를 통한 추론 속도의 개선과 CUDA 최적화를 통한 압축 속도 향상, 타 표준 코덱으로의 트랜스코딩 지원 등 다양한 기능 추가 및 성능 향상이 이루어졌다.
AMD에서는 기존 하드웨어와의 호환성을 극대화하려는 연구인 Neural Texture Block Compression (NTBC)[27]을 발표하였다. 이는 셰이더나 하드웨어 구조를 변경하지 않고도 압축 효율을 높이는 데 초점을 맞추고 있다. 이 연구는 신경망을 이용해 압축된 데이터를 표준 블록 압축(BC) 포맷으로 변환하는 최적의 매핑을 학습하며, 이를 통해 NTC트랜스코딩과 마찬가지로 런타임 오버헤드 없이 저장 공간을 절약할 수 있다.
Ubisoft는 신경망의 특징 벡터를 기존 GPU가 지원하는 BC6H와 같은 압축 포맷에 저장하는 방식을 도입하였다[28]. 이를 통해 하드웨어의 텍스처 페치(texture fetch) 및 필터링 기능을 그대로 활용하면서, 셰이더 내부의 경량 디코더를 통해 실시간으로 고해상도 머티리얼을 복원하는 기법을 입증하였다.
하드웨어 레벨에서의 가속을 통한 렌더링 성능 최적화 연구도 활발하다. Intel은 Intel Xe Matrix Extensions(XMX)를 활용하여 신경망 압축의 디코딩 비용을 줄이는 TSNC[29](Texture Set Neural Compression)를 발표하였다. 이 논문의 저자들은 Ubisoft와 달리 BC1 포맷을 사용하고, 협동 벡터를 이용한 하드웨어 가속 기법을 통해 고품질의 신경망 텍스처 압축을 비등방성 필터링(anisotropic filtering)과 함께 실시간 성능으로 구현할 수 있음을 보였다.
마지막으로, Qualcomm은 모바일 및 엣지 디바이스 환경을 고려하여 랜덤 액세스가 가능한 비대칭 오토인코더(asymmetric auto-encoder) 프레임워크를 제안하였다[30]. 이들은 인코더에 컨볼루션 계층을 사용하여 압축 효율을 높이는 한편, 디코더는 병렬 렌더링에 적합하도록 설계하여 기존 방식 대비 우수한 압축률과 화질을 달성하였다.
이와 같이 산업계에서는 단순히 신경망을 적용하는 것을 넘어 여러 가지 측면에서 기술을 고도화하고 있다. 이는 기존 하드웨어 포맷과의 호환성 확보 및 전용 연산 유닛을 통한 디코딩 가속, 새로운 네트워크 구조를 통한 품질 향상 등을 포함한다.
3. 실험 환경 및 방법
NTC는 BCn과 같은 기존의 블록 압축 방식들과 달리, 텍스처 데이터를 신경망의 가중치와 학습된 특징 피라미드 형태로 저장하는 혁신적인 방식을 취한다. 본 연구의 실험에 앞서, NTC의 핵심 작동 원리를 Figure 1을 통해 살펴보면 다음과 같다.
NTC 구조는 기능적으로 크게 데이터 표현을 담당하는 '특징 피라미드(feature pyramid)'와 복원을 담당하는 '신경망 디코더(MLP decoder)' 두 부분으로 구성된다. 첫째, 텍스처 데이터를 효율적으로 저장하기 위한 특징 피라미드 구조를 살펴보면 다음과 같다. Figure 1의 a)와 같이 원본 텍스처는 밉맵과 유사한 계층적 구조를 가진 특징 격자(feature grid)로 변환된다. 일반적인 텍스처가 픽셀마다 RGB 값을 저장하는 것과 달리, NTC는 각 격자점(grid cell)에 압축된 고차원 특징 벡터(feature vector)를 저장한다. 이 과정에서 b) 단계인 '양자화 시뮬레이션(simulated quantization)'이 수행되는데, 이는 추후 데이터를 압축(양자화)하여 저장할 때 발생하는 정보 손실에 대해 신경망이 강건함을 갖게 하여, 화질 저하를 최소화하면서도 원본을 효과적으로 복원할 수 있도록 훈련하는 핵심 과정이다. 이후 렌더링 시 c) 단계에서 보듯이, 텍스처 좌표에 인접한 특징 벡터들을 샘플링하고 이를 셰이더 내부에서 선형 보간(linear interpolation)하여 해당 위치의 대표 특징값을 추출한다. 이러한 소프트웨어적 필터링 방식은 기존 하드웨어 필터링을 모사하여 병렬 연산에 최적화된 랜덤 액세스를 지원한다.
둘째, 추출된 특징을 시각 정보로 변환하는 MLP 디코더 구조이다. 상기 과정에서 추출된 특징 벡터는 d) 단계의 MLP로 전달된다. 이 MLP는 입력받은 특징 정보를 연산하여 최종적으로 e)와 같은 고품질 텍스처 값을 실시간으로 추론한다. 즉, NTC에서 압축은 시각적 정보를 특징 피라미드 형태로 변환하여 저장하는 과정이며, 학습(training)을 통해 이를 복원하는 MLP가 최적화된다.
특히 본 연구에서 주목하는 부분은 d) network 단계의 MLP 구조이다. 이 신경망의 은닉층(hidden layer) 깊이는 텍스처의 복원 품질과 연산 속도를 결정짓는 가장 중요한 하이퍼파라미터(hyperparameter)이다. 레이어가 깊어질수록 더 정교한 복원이 가능하지만 연산 비용이 증가하는 트레이드오프가 발생하며, 본 연구는 이를 실험적으로 검증하여 최적의 구성을 찾고자 한다.
본 연구는 NTC의 실무적 효용성을 검증하기 위해 네트워크 구조 최적화, 압축 품질 비교 우위 검증, 그리고 하드웨어 호환성을 위한 트랜스코딩 효율성의 세 가지 차원에서 체계적인 실험을 수행한다.
NTC 디코더의 핵심인 MLP의 구조적 복잡도는 추론 연산 비용과 직결되는 핵심 변수이다. 본 실험에서는 먼저, 실시간 렌더링 환경에서의 실무적 효율성을 검증하기 위해 NTC SDK에서 제공하는 세 가지 아키텍처 프리셋(Small, Medium, Large)에서 화질과 성능 간의 균형점을 규명한다. 기본값인 Medium과 비교하여 Small은 더 적은 레이어 수를, Large는 더 많은 레이어 수를 의미한다.
이 실험의 목표는 모델의 복잡도가 Small에서 Large로 증대됨에 따라 발생하는 학습 시간 및 추론 지연의 증가폭과 그에 상응하는 화질 개선폭의 상관관계를 정량적으로 분석하는 데 있다. 이를 통해 제한된 연산 자원내에서 가장 높은 효율을 보이는 '최적 성능 구간'을 식별하고, 하드웨어 사양에 따른 적정 모델 선정 가이드라인을 도출한다.
비교의 공정성을 위해 모든 모델의 학습 스텝 수는 100k steps로 고정하였다. 또한 표면 거칠기, 패턴의 규칙성, 그리고 주파수 특성이 서로 다른 6종의 머티리얼 세트(Table 1)를 벤치마크로 사용하여 평가의 객관성을 확보하고자 하였다. 앞의 5개 세트는 NTC 논문의 실험에 사용된 머티리얼 중 일부로, 전체 실험 머티리얼 가운데 온라인에 공개되어 활용 가능한 5종을 선정하였다. 아울러 8K 해상도에서의 실험을 보강하기 위해 ambientCG의 Rock064를 추가로 사용하였다. 화질 비교를 위해서는 NTC SDK에서 제공하는 PSNR(Peak Signal-to-Noise Ratio)을 사용하였으며, 압축률 설정에는 기본값인 2.06 BPP를 적용하였다.
NTC 논문[1] 실험 결과에 따르면 채널 수가 높은 머티리얼에서 더 높은 압축 효율이 관찰되었다. 이는 고채널 PBR 텍스처 압축에 유리한 특성으로 해석된다. 하지만 2D 환경이나 캐주얼 게임, 웹 등에서는 PBR 텍스처가 아닌 컬러 텍스처 맵만 사용하거나, 부가적으로 노멀 맵 정도만 사용하는 경우도 빈번하다. 이와 같은 일반적인 저채널 머티리얼 압축 시에도 NTC가 산업 표준 중 하나인 BC7 대비 제공하는 이점에 대해서는 선행 연구에서 명확한 결과를 제시하지 않았다.
이에 따라, 본 실험에서는 BC7과 동일하게 NTC의 단일 텍스처 맵 당 픽셀당 비트 수(bits per pixel, bpp)를 8bpp로 설정하였다. 또한 일반적인 diffuse map만 사용한 경우(8bpp)와 normal map을 함께 사용하는 경우(전체 16bpp)에 대해서, 화질이 어떻게 달라지는지 확인한다. 이 실험에서는 서로 다른 코덱을 비교하는 것이기 때문에, 전통적인 PSNR에 더해 지각적 화질 평가를 위한 FLIP 알고리즘[31]을 도입하였다. 이를 통해 수치적으로 드러나지 않는 경계면의 아티팩트나 고주파 영역의 블러링 현상을 시각화하여, 인간 시각 시스템 관점에서의 실질적 우위를 평가하고자 한다.
하드웨어 호환성 또는 런타임 오버헤드 감소를 위해 NTC 데이터를 BC7으로 변환할 경우, 이에 따라 필연적으로 발생하는 화질 저하를 실험한다. 이는 NTC에서 높은 압축률을 설정할시에 생기는 화질 저하와, 트랜스코딩으로 생기는 2차 화질 저하로 구분된다. 이 실험을 위해서는 첫번째 실험과 마찬가지로 원본 텍스처를 기본 압축률(머티리얼당 2.06 BPP)로 NTC 형태로 압축한 후, 이를 컬러/노멀은 BC7(텍스처당 8 BPP)으로, 단일채널 텍스처는 BC4(텍스처당 4 BPP)로 변환하였다. 결과 분석시에는 NTC와 BC7 트랜스코딩 후의 PSNR 및 FLIP 변화값을 살펴봄으로써 이중 압축 손실량이 얼마나 되는지 확인하고, 또한 컬러 및 노멀의 경우 앞서 BC7 형태로 인코딩했을 때와 화질 차이가 얼마나 나는지 살펴보고자 한다.
4. 실험 결과 및 분석
본 장에서는 앞서 설계한 세 가지 실험 시나리오를 바탕으로 NTC SDK의 성능을 정량적으로 분석하고, 실무 파이프라인 적용 시의 실효성을 검증한다. 본 연구의 모든 성능 평가는 NTC의 협동 벡터 하드웨어 가속을 지원하는 GPU 환경(NVIDIA GeForce RTX 3080)에서 수행되었다. 텍스처의 인코딩 및 디코딩 속도(ms) 측정은 Windows 환경에서NVIDIA NTC SDK 0.8을 활용하여 진행하였고, 디코딩 시에는Vulkan 백엔드를 사용하여 협동 벡터 사용 여부에 따른 결과를 각각 측정하였다. 비교 대상으로 사용한BC7 압축을 위해서 Rock064에서는 bc7e[8]의 최고 품질 옵션(u6)을, 나머지 머티리얼 세트에서는 NVTT3[32]의 Production 모드를 이용하였다.
NTC SDK는 사용자의 하드웨어 환경과 요구 품질에 맞춰 네트워크의 용량을 조절할 수 있도록 다양한 모델 프리셋(preset)을 제공한다. 본 절에서는 세 가지 다른 모델 크기(Small, Medium, Large)와 서로 다른 해상도(2K 대 8K)의 6개 텍스처를 이용하여 이러한 요인들이 실시간 추론 속도와 화질에 미치는 영향을 확인하였으며, 그 결과는 Table 2와 같다. 이 결과가 의미하는 바는 다음과 같다.
첫째, 모델 크기에 따른 확연한 성능 트레이드 오프가 확인되었다. 2K 해상도 텍스처 그룹(PavingStones, MetalPlates, Tiles)의 경우, Small 모델은 협동 벡터 미사용 시 3ms 내외, 협동 벡터 사용 시1.2ms 내외의 매우 빠른 디코딩 속도를 기록하여 실시간 렌더링이 가능한 성능을 보였다. 이를 Medium 모델로 교체할 경우 PSNR은 평균 약 +1.1dB 상승하여 화질 개선 효과가 있었으나, 디코딩 및 인코딩 비용 또한 증가하는 경향을 보였다. 반면, 2K와 8K 해상도 모두, Medium 모델과 Large 모델 간에는 유의미한 화질 차이는 관찰되지 않았으나 인코딩과 디코딩 시간은 늘어났다. 다만 협동 벡터 사용 시 디코딩 오버헤드 차이는 미사용 시 대비 다소 감소하였다.
위 실험 결과에 따르면, 일반적인 환경에서는 Medium 모델을 통해 화질과 성능 간의 균형을 확보하고, 성능 제약이 있거나 초고해상도 텍스처를 사용하는 환경에서는 Small 모델을 사용하는 전략이 유효하다고 판단된다. Large 모델과 같이 단순히 레이어 수와 파라미터 수를 증가시키는 것만으로는 화질 향상에 제약이 있으므로, 전용 하드웨어 디코더 설계시에도 이와 같은 단순한 접근 방식은 배제할 필요가 있다.
텍스처 해상도 증가에 따른 오버헤드 분석 결과, 8K급 초고해상도 텍스처들의 디코딩 소요 시간은 협동 벡터 미사용 시 50 ms 내외, 협동 벡터 사용 시 18 ms 수준으로 측정되었다. 이는 2K 텍스처(4~6 MB) 대비 8K 텍스처(46 MB)의 데이터량이 약 10배 이상 증가함에 따라 디코딩 연산 부하 역시 크게 증가했음을 의미한다. 일반적인 실시간 렌더링 환경에서 60 FPS에 도달하기 위한 프레임 시간이 16.6 ms이하임을 감안할 때, 텍스처 디코딩에만 50 ms 이상을 소모하는 것은 치명적인 성능 저하를 야기한다. 협동 벡터를 사용하면 디코딩 오버헤드가 약 1/2.5~1/3 수준으로 감소하므로, 신경망 기반 텍스처 압축을 실시간 렌더링에 활용하기 위해서는 AI 가속 유닛과 협동 벡터를 지원하는 GPU 및 API 환경이 사실상 필수적이다. 하지만 여전히 단일 머티리얼에 18 ms 수준의 디코딩 시간이 필요하다는 것은, 다수의 초고해상도 NTC 텍스처 사용이 심각한 프레임 레이트 저하로 이어질 수 있다는 것을 의미한다. 따라서 현재의 NTC 알고리즘을 실무 애플리케이션에 적용하기 위해서는 여전히 디코딩 오버헤드를 줄이기 위한 추가 최적화가 필요하다.
3.2.2절에서 언급한 것과 같이, 본 절에서는 일반적인 환경에서 컬러 및 노멀 맵만 압축할 때에도 NTC가 기존 BC7 대비 이점이 있는지 확인한다. 이는 신경망이 학습할 수 있는 상관관계 정보가 제한된 상황에서 기존 블록 압축 방식과 같은 압축률을 설정했을 때에도 NTC가 화질 우위를 점한다면 비 PBR 텍스처에서도 유용함을 입증하기 때문이다.
Table 3에 기재된 단일 맵 실험 결과는 컬러 맵만을 단독으로 8 BPP로 압축한 것으로, 6종 중 5종의 텍스처에서 NTC가 BC7 대비 높은 PSNR을 기록하여 수치적 우위를 점하였다. 하지만 지각적 오차(FLIP) 측면에서는 MetalPlates를 제외하고 대등하거나 다소 높은 수치를 보였다. 참고로 FLIP은 수치가 낮을수록 원본과의 차이가 적음을 나타낸다. NTC가 BC7 대비 열위에 있는 Terrazzo018는 압축 아티팩트 자체가 적어 높은 PSNR과 낮은 FLIP 수치를 나타내는 경우로, 수치상의 차이와 달리 시각적인 차이는 거의 없다.
다음으로, Table 4에 컬러 맵에 기하학적 정보인 노멀 맵을 추가하여 채널 복잡도를 증가시킨 환경에서의 실험 결과를 기재하였다. 데이터의 차원이 단일 채널에서 복합 채널로 확장되고 할당되는 용량도 8 BPP에서 16 BPP로 늘어나자, 앞선 결과와는 달리 NTC의 화질적 우위가 도드라지는 경우가 노멀 맵을 중심으로 나타났다. NTC는 표면 굴곡이 복잡한 자연물 텍스처인 Wood063, PavingStones, Rock064의 노멀 맵에서 7~8dB 더 높은 PSNR 수치를 기록하였고, PavingStones와 MetalPlates, Rock064의 노멀 맵에서 FLIP 값이 각각 0.0082, 0.0029, 0.0027만큼 감소하였다. 이는 NTC가 BC7 대비 표면의 미세한 요철과 질감을 시각적으로 보다 정교하게 보존하였음을 의미한다. Figure 2는 PavingStones의 노멀 맵을 동일 압축률에서 BC7 및 NTC로 각각 압축했을 때의 결과를 비교하는데, 이를 보면 NTC가 원본 이미지의 방향 벡터값을 좀 더 잘 보존한다. Figure 3의 색반전된FLIP 맵을 보면 특히 움푹 들어간 부분에서 NTC의 FLIP 오차값이 더 작은 것을 확인 가능하다. 또한 컬러 맵에서도 기존 8 BPP 환경과 비교하여 Tiles135D를 제외한 모든 머티리얼에서 PSNR 및 FLIP 수치 모두 향상된 결과를 나타냈다. 이는 컬러와 노멀 정보를 독립적인 데이터로 처리하는 기존 BC7 방식과 달리, NTC 모델은 두 채널 간의 구조적 상관관계를 효과적으로 학습하기 때문에 색상 변화와 표면 굴곡이 일치하는 영역의 디테일을 성공적으로 복원 가능함을 보여준다.
위 결과는 PBR 환경이 아닌 컬러와 노멀 맵만 사용하는 일반적인 렌더링 환경에서도 NTC가 기존 블록 압축 방식 대비 품질 측면에서 일부 이점을 가질 수 있음을 추가적으로 의미한다. 아울러 이 결과는 텍스처 데이터의 채널이 늘어나고 복잡도가 높아질수록 신경망 기반 압축(NTC)의 효율성이 증대된다는 선행 연구[1]의 결과와도 일치한다.
GPU 내 하드웨어 NTC 디코더가 탑재되기 전까지는 NTC를 고효율 배포 포맷으로 사용하고 런타임에 기존 GPU 가속 포맷(BC7등)으로 변환하는 트랜스코딩 방식을 사용할 수 있다. 이 과정은 손실 압축된 데이터를 다시 손실 압축하는 이중 압축 과정을 거치므로, 필연적으로 이중 압축 손실이 발생한다. 선행 연구[2]에서는 트랜스코딩 후 PSNR 차이가 BC1은 -0.3dB인 반면 BC5와 BC7은 각각 +0.055dB와 -0.055dB의 미미한 수준으로 보고하였다.
본 절에서는 6개 실험 데이터세트에 대하여 NTC 압축 후BC7(컬러 맵 및 노멀 맵) 또는 BC4(나머지 1채널 텍스처)로 트랜스코딩한 결과를 서술한다. Table 5에 따르면, 대체로 트랜스코딩 전후 PSNR 차이는 선행 연구와 유사하게 큰 차이가 없었으나, FLIP은 소폭이지만 대부분 증가하는 경향을 나타냈다. 또한 일부 노멀 맵에서는 상대적으로 큰 차이로 PSNR값이 감소(Wood063 1.16dB)하거나 FLIP값이 유의미하게 증가(PavingStones 0.036, Tiles135D 0.032)한 것으로 나타나, 노멀 맵의 경우 트랜스코딩 이후 화질 확인이 필요할 것으로 보인다. 참고로 이는 SDK상에서 트랜스코딩 속도를 높이기 위해 제공되는 --optimizeBC 옵션을 사용하지 않은 결과로, 해당 옵션을 사용하게 되면 화질 저하가 더욱 많이 일어날 수 있다.
또 한가지 중요한 점은, 트랜스코딩 사용 시 스토리지 오버헤드는 NTC와 같지만 GPU의 VRAM 사용량은 타겟 코덱과 동일해진다는 점이다. BC7은 BC1 대비 압축률이 낮지만 (RGB 기준 BC7은 BC1 대비 2배의 용량 필요) 알파 채널 압축과 화질 측면에서 큰 이점이 있어서 사용되는데, 트랜스코딩 후의 BC7 화질은 NTC 압축 시의 화질에 따라 크게 좌우되므로 BC7으로 압축되었음에도 낮은 화질이 관측될 수 있다. 실제로 Table 4의 처음부터 BC7로 압축한 결과와 Table 5의 NTC에서 BC7으로 트랜스코딩한 결과를 비교하면, PSNR 수치는 최고 13.7dB (PavingStones), FLIP 수치는 3.8배(동일 머티리얼)까지 나는 것을 확인할 수 있다. 이는 BC7에서 고화질 압축이라는 이점을 크게 퇴색시킨 결과이다. 다만 단일 채널의 변위(displacement), 차폐(occlusion), 거칠기(roughness) 맵의 결과는 PSNR 40dB 전후인 경우가 종종 나타나 다중채널 맵들과 비교시 대체로 화질 저하가 적은 것으로 나타났다.
결론적으로 BC4나 BC7과 같은 고품질 압축 코덱으로 NTC로 압축된 데이터를 트랜스코딩하고자 한다면, NTC의 압축률을 적당한 수준으로 설정하여 스토리지 오버헤드와 압축 품질간에 적절한 트레이드 오프를 결정해야 한다. 특히 단일 채널 맵보다는 다중 채널 맵에서 예상하지 못했던 압축 아티팩트가 발생하지 않았는지 꼼꼼히 확인할 필요가 있다.
5. 결론
본 연구에서는 NVIDIA NTC SDK를 활용하여 신경망 기반 텍스처 압축 기술의 실무적 효용성을 검증하였다. 구체적으로, 먼저 모델 복잡도에 따른 화질 및 성능 차이를 비교하였고, 둘째로 저채널 텍스처 환경에서의 화질을 산업 표준인 BC7과 비교하였으며, 마지막으로 트랜스코딩 시 텍스처별 압축 품질을 측정하였다.
위 실험을 통해 도출된 핵심 결론과 향후 연구 방향은 다음과 같다. 먼저, 현재의 소프트웨어 디코딩 방식은 해상도가 증가할수록 협동 벡터 사용이 필수적이다. 그러나 8K 초고해상도 환경에서는 이를 사용하더라도 여전히 디코딩 병목이 발생할 수 있으므로, 전용 하드웨어의 도입 또는 알고리즘 개선을 통한 추가 디코딩 성능 향상이 필요하다.
둘째, NTC 논문[1]에서 채널 수가 적은 경우 품질 향상이 제한적일 수 있다는 한계가 제시된 바 있으나, 본 연구에서는 컬러 맵과 노멀 맵과 같은 일반적인 텍스처 환경에서도 NTC가 BC7 대비 노멀 맵 압축에서 화질 이점을 보이는 것을 확인하였다. 따라서 디코딩 성능 문제가 해결된다면, 일반적인 그래픽 파이프라인에서도 화질 개선 또는 압축률 향상을 위해 BC7 대신 NTC를 사용하는 것이 실용적일 수 있다.
셋째, 디코딩 오버헤드를 제거하기 위해 트랜스코딩을 사용할 경우 노멀 맵에서 일부 추가적인 화질 저하가 발생할 수 있으므로 주의가 필요하다. 또한 이 경우 NTC의 압축률 설정에 따라 타겟 코덱과 동일한 VRAM을 사용하면서도 화질 저하가 발생할 수 있으므로, 머티리얼 특성에 맞는 적절한 압축률 설정이 요구된다.
향후 연구로는 앞서 언급한 디코딩 성능 개선이 과제로 제시된다. 또한 일부 화질 저하의 원인 분석을 통해 기존 네트워크 구조의 개선 방안을 모색할 필요가 있다. 아울러 이러한 분석 과정에서 비등방성 필터링을 지원하는 타 신경망 기반 코덱들(예: TSNC)[29]과 실제 렌더링 화면에서의 화질을 비교한다면, 본 NTC의 장단점을 보다 면밀히 분석할 수 있을 것이다.