|
CPU와 GPU, SpursEngine 3가지 조건의 트랜스코딩 성능
이번 테스트는 CPU와 GPU, SpursEngine의 트랜스코딩을 모두 지원하는 TMPGEnc 4.0 Xpress를 통해 과연 이들 중 어떤 것을 사용하였을 때 가장 효율적인 트랜스코딩이 가능한지를 살펴보았다.
다운/ 업스케일링, 해상도 유지 트랜스코딩 결과
|
트랜스코딩 결과 : 1920 x 1080 (MPEG-2) to 352 x 240 (H.264)
|
|
구분 |
원본 영상
|
트랜스코딩 이후
|
CUDA On/ Spurs Engine On / Filter Off |
T2_1080.mpg (1분59초, 464MB), 1920 x 1080/ 29.97fps, Dolby AC3, 2Ch, 48000Hz, 256Kbps, 1Audio
|
T2_1080.mp4 (1분59초, 42MB), 352 x 240/ 29.96fps, AAC, 2Ch, 48000Hz, 576Kbps, 1Audio
|
CUDA Off/ Spurs Engine On / Filter Off |
T2_1080.mp4 (1분59초, 42MB), 352 x 240/ 29.96fps, AAC, 2Ch, 48000Hz, 576Kbps, 1Audio
|
CUDA On/ Spurs Engine Off / Filter Off |
T2_1080.mp4 (1분59초, 58MB), 352 x 240/ 29.96fps, AAC, 2Ch, 48000Hz, 122Kbps, 1Audio
|
CUDA Off/ Spurs Engine Off / Filter Off |
T2_1080.mp4 (1분59초, 58MB), 352 x 240/ 29.96fps, AAC, 2Ch, 48000Hz, 122Kbps, 1Audio
|
|
트랜스코딩 : 720 x 480 (MPEG-2) to 1920 x 1080 (H.264), Super Resolution과 필터 3개
|
CUDA On/ Spurs Engine On / Filter 3개 On |
Dust of Glory.mpg (3분19초, 224MB), 720 x 480/ 29.97fps, 10000Kbps, MPEG Audio Layer 3, 2Ch, 48000Hz, 128Kbps, 1Audio
|
Dust of Glory.mp4 (3분19초, 214MB), 1920 x 1080/ 29.97fps, AAC, 2Ch, 48000Hz, 576Kbps, 1Audio
|
|
CUDA Off/ Spurs Engine On / Filter 3개 On
|
Dust of Glory.mp4 (3분19초, 215MB), 720 x 480/ 29.97fps, AAC, 2Ch, 48000Hz, 576Kbps, 1Audio
|
|
CUDA On/ Spurs Engine Off / Filter 3개 On
|
Dust of Glory.mpg (3분19초, 240MB), 720 x 480/ 29.96fps, AAC, 2Ch, 48000Hz, 125Kbps, 1Audio
|
|
CUDA Off/ Spurs Engine Off / Filter 3개 On
|
Dust of Glory.mp4 (3분19초, 240MB), 1920 x 1080/ 29.96fps, AAC 2Ch, 48000Hz, 125Kbps, 1Audio
|
| 트랜스코딩 결과 : 1920 x 1080 (MPEG-2) to 1920 x 1080 (H.264) |
CUDA On/ Spurs Engine On / Filter Off |
T2_1080.mpg (1분59초, 464MB), 1920 x 1080/ 29.97fps, Dolby AC3, 2Ch, 48000Hz, 256Kbps, 1Audio
|
T2_1080.mp4 (1분59초, 125MB), 1920 x 1080/ 29.96fps, AAC, 2Ch, 48000Hz, 576Kbps, 1Audio
|
CUDA Off/ Spurs Engine On / Filter Off |
T2_1080.mp4 (1분59초, 125MB), 1920 x 1080/ 29.96fps, AAC, 2Ch, 48000Hz, 576Kbps, 1Audio
|
CUDA On/ Spurs Engine Off / Filter Off |
T2_1080.mp4 (1분59초, 143MB), 1920 x 1080/ 29.96fps, AAC, 2Ch, 48000Hz, 122Kbps, 1Audio
|
CUDA Off/ Spurs Engine Off / Filter Off |
T2_1080.mp4 (1분59초, 143MB), 1920 x 1080/ 29.96fps, AAC, 2Ch, 48000Hz, 122Kbps, 1Audio
|
다운스케일과 업스케일링 (필터 3개와 Super Resolution), 해상도 유지 트랜스코딩 (재인코딩)시 영상의 비트레이트는 10000Kbps를 공통적으로 유지하고 H.264로 변환환을 마친 결과 SpursEngine 사용시 더 적은 용량의 결과물이 만들어지는데 이는 사용하는 압축 알고리즘 등에 따른 차이로 해석할 수 있다. 오디오 비트레이트 결과물 역시 최대한 비슷한 설정을 적용한 결과다.
1920 x 1080 MPEG-2에서 352 x 240 H.264 다운스케일링은 Profile & Level을 Baseline@ 2.1로 적용하였고 720 x 480 MPEG-2에서 1920 x 1080 H.264 업스케일링에서는 Main@4.1을 적용하였다.
다운스케일링 : 1920 x 1080 to 352 x 240
가장 먼저 테스트를 진행한 결과는 고해상도에서 저해상도로 트랜스코딩을 진행하였을 때의 결과로 GPGPU 기술을 지원하는 Badaboom의 결과도 함께 비교하였다. 테스트 결과 GPGPU를 이용하는 Badaboom은 TMPGEnc 4.0 Xpress와 비슷한 조건에서 빠른 트랜스코딩 진행 및 낮은 CPU 점유율을 제공했다.
TMPGEnc 4.0 Xpress 내에서는 CPU/ GPU (CUDA)/ SpursEngine를 개별로 이용한 경우와 CUDA + SpursEngine을 동시에 활용하였을 때의 결과 역시 비교했으며, SpursEngine 단독으로 트랜스코딩 진행시 가장 빠른 시간에 작업을 완료하고 CPU, CUDA + SpursEngine, CUDA 순으로 작업시간을 완료했다. CPU 점유율은 CUDA + SpursEngine 조합이 Badaboom과 동일한 17%, SpursEngine 단독은 27%로 2번째, CUDA가 3번째, CPU가 가장 높은 48%를 기록했다.
고해상도에서 저해상도로 트랜스코딩이 진행되는 다운스케일링의 결과는 휴대용 기기들에 맞추어 트랜스코딩하는 것으로 CUDA가 최적화된 Badaboom이나 CPU를 이용하는 것이 오히려 트랜스코딩 전용 가속기를 사용하는 것보다 유리함을 말해주며, TMPGEnc 4.0 Xpress에서는 트랜스코딩 전용 가속기인 WinFast PxVC1100과 CPU가 조합될 때 가장 빠른 처리 성능을 제공했다. CPU 점유율은 오히려 CUDA와 SpursEngine가 조합될 때 가장 낮았다. SpursEngine과 CUDA가 조합될 때 처리 성능이 늘어나는데 이는 서로의 처리 과정에서 지연시간 발생으로 인한 문제로 보여진다.
해상도 유지 : 1920 x 1080 (MPEG-2) to 1920 x 1080 (H.264)
고해상도를 유지하면서 코덱만 변환되는 트랜스코딩의 결과는 SpursEngine과 CPU 조합시 CUDA와 CPU, CPU 단독 처리와 비교하여 낮은 CPU 점유율 및 빠른 처리 속도를 보여주고 있다. SpursEngine와 CUDA 조합의 경우 앞서의 다운스케일링과 같이 각 장치들의 처리 과정에서의 지연시간으로 인해 실제 변환시간은 오히려 더 느려졌다. CPU 점유율은 여전히 SpursEngine과 CPU 조합에서 가장 낮았으며, CPU 단독이 CUDA와 CPU 조합보다 CPU 점유율이 조금 더 낮았다.
업스케일링 : 720 x 480 to 1920 x 1080 (Super Resolution), 필터 3종
두 번째 테스트는 저해상도에서 고해상도로 트랜스코딩을 진행하는 것으로 업스케일링 상황이다. 이번 테스트는 TMPGEnc 4.0 Xpress에서만 진행되었으며, Video Noise Reduction, Smart Sharpness, Gaussian Blur의 3가지 필터를 추가로 적용하고 Super Resolution을 추가로 체크한 후 진행한 결과다.
테스트 결과는 다운스케일링 결과와 거의 흡사한 모습을 보여주고 있는데 SpursEngine + CUDA 조합은 가장 낮은 CPU 점유율 및 빠른 처리 시간을 보여주었고 SpursEngine, CUDA, CPU 순으로 처리 시간에 차이를 보였다. CPU 점유율은 CUDA 적용시 CPU보다 2% 가량 높았다. 처리 시간으로 볼 때 SpursEngine과 CPU 조합은 CPU 단독으로만 처리하였을 때보다 542초 (약 9분)의 차이를 보였으며, CUDA + CPU 조합의 180초 (3분)보다도 6분 가량 빠른 처리 속도를 보였다. 업스케일링시 SpursEngine에서 지원하는 Super Resolution을 체크할 경우 체크하지 않을 경우보다 더 빠른 처리 속도를 제공했다.
해상도 유지 및 다운스케일링의 경우와 달리 SpursEngine과 CUDA 조합에서 가장 빠른 처리 속도를 유지했는데 이는 앞서의 테스트들과 달리 처리해야할 데이터가 늘어날 경우 이들 간의 지연 문제보다 2개의 장치를 이용한 가속의 이득이 더 크기 때문이다.
다운스케일링과 해상도 유지 트랜스코딩시 소비전력
다운스케일링과 해상도 유지 조건에서의 트랜스코딩 시간 및 CPU 사용률, 소비전력은 페넘2 X4 810 (2.6GHz)로 교체 후 테스트를 진행했다. 소비전력은 전체 시스템의 결과를 비교했다.
트랜스코딩 결과 휴대기기 변환에 자주 사용되는 다운스케일링 환경에서 CUDA를 이용한 Badaboom이 빠른 처리 속도와 낮은 CPU 점유율을 보여주었고 소비전력은 CPU 단독보다 2W 정도 높았다. SpursEngine은 CPU와 CUDA 조합보다 약 7W 가량 높았으며, SpursEngine과 CUDA 조합은 가장 높은 193W의 소비전력을 보여주고 있다. SpursEngine은 CUDA와 CPU로 조합되는 경우와 소비전력 차이는 크지 않고 빠른 처리속도를 제공한다.
업스케일링 환경에 필터 3종을 적용한 결과는 단순한 트랜스코딩보다 처리 성능이 더 요구되는데 이 결과에서는 오히려 CUDA와 CPU 조합보다 SpursEngine과 CPU 조합에서 더 빠른 처리 성능과 더불어 낮은 CPU 점유율을 보여주고 있다. SpursEngine과 CUDA 조합은 낮은 CPU 점유율과 빠른 처리 속도를 보여준 대신 2개의 하드웨어와 CPU처리가 더해져 가장 높은 소비전력을 제공한다. CPU 단독의 경우 처리 속도는 가장 느리지만, 소비전력은 가장 낮았다.
WinFast PxVC1100은 Cell 기반의 SpursEngine SE1000을 내장하여 CPU와 조합될 때 CPU와 CUDA, CPU 단독의 경우보다 전반적으로 낮은 CPU 점유율과 처리 성능을 보여줘 트랜스코딩 전용 가속기의 필요성을 말해줬으며, CPU + CUDA 조합 (GPGPU 기술을 지원하는 GPU)은 전용 트랜스코딩 가속기가 없을 경우 특히, 휴대기기에 맞게 트랜스코딩을 진행할 때 가장 현실적인 대안이될 수 있다. 트랜스코딩 전용 가속기의 경우 오히려 다운스케일링과 같은 높은 처리 속도가 필요치 않을 경우 큰 혜택을 보기 어렵다.
|