Skip to menu

본문시작



질문하기 전에 검색하세요(Search before asking a question)


Views 1150 Votes 0 Comment 1
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print

인코딩 작업이 진행될 때 작업 흐름(workflow)은 어떻게 되는지 인포그래픽으로 정리해 보았습니다.

 

 

□ 스트림 복사와 재인코딩

스트림 복사(stream copy)란 위의 과정에서 디코딩, 필터 작업, 인코딩이 생략되어 디먹싱 후 바로 먹싱을 진행하는 것을 말합니다. 이때 해당 스트림(비디오, 오디오 등)은 압축 해제를 전혀 하지 않고 단지 컨테이너 양식만 바뀌게 되어 화질에는 전혀 영향이 없습니다.

 

재인코딩(re-encoding)은 스트림 복사의 반대 개념으로, 화질에 영향을 주는 디코딩, 필터 작업, 인코딩을 거치게 되며 코덱이 손실 코덱인 경우 반드시 원본에 비해 화질 저하가 일어나게 됩니다. 필터 작업은 디코딩(압축 해제)된 데이터를 대상으로 특정 데이터 처리 알고리듬을 적용하는 것을 말하므로 화질 손상과 직접적인 관련은 없지만, 필터 작업을 끝낸 동영상은 반드시 인코딩을 해야 하므로 이때 (손실 코덱의 경우) 화질 저하가 발생합니다.

 

□ 하드웨어 툴

하드웨어 툴은 그래픽 카드를 기반으로 GPU와 그래픽 카드의 칩들을 이용해 연산하는 툴을 말합니다. 스트림의 버퍼를 그래픽 카드의 메모리에 두고 작업하며, 그래픽 카드에 미리 설계된 알고리듬에 따라 칩이 하드웨어적으로 연산하므로 빠르게 처리가 가능합니다.

 

엔비디아 계열은 접두어 NV를 붙이거나 CUVID, CUDA와 관련이 있고, AMD 계열은 AMF 또는 UVD와 VCE라는 명칭을 가지며, 인텔 계열은 QSV의 명칭을 갖고 있습니다. 그래픽 카드 제조사가 아닌 제3자(third-party)가 제작해서 제공하는 하드웨어 툴들도 있는데, 마이크로소프트의 DXVA(DirectX Video Acceleration) 계열인 DXVA2, D3D11과 OpenCL, 리눅스에서 사용되는 VDPAU, 오픈소스인 VAAPI 등이 이에 해당됩니다.

 

위에 언급한 하드웨어 플랫폼을 바탕으로 독립적인 그룹 또는 개인 제작자가 제공하는 하드웨어 인코딩 툴들이 있는데, 대표적으로 rigaya라는 일본인 개발자가 제공하는 NVEnc, VCEEnc, QSVEnc 등이 그것입니다(rigaya의 깃헙 페이지).

 

rigaya는 최근 본인이 제공하는 엔비디아 계열 인코더에 FFmpeg에는 없는 'VPP 하드웨어 필터'들을 내장해서 제공하고 있습니다. (scale, 디인터레이스(nnedi), crop, deband, edgelevel, unsharp, denoise 등. 최근에는 제한적 기능의 '자막 입히기(subburn)'까지 추가)

 

□ 소프트웨어 툴

소프트웨어 툴은 CPU를 이용해 연산하는 툴을 말합니다. 스트림의 버퍼를 메인보드의 메모리에 두고 작업합니다. 프로그램 내부의 알고리듬으로 소프트웨어적으로 연산하므로 자유도가 높아서 복잡한 알고리듬을 구현할 수 있는 반면 처리 속도가 상대적으로 느립니다. 대신 결과물의 퀄리티는 하드웨어 툴에 비해 우수합니다.

 

□ 인코딩 속도와 관련해서 유의할 점

인코딩을 할 때는 하드웨어 툴과 소프트웨어 툴 간의 자료 교환으로 인한 병목 현상을 염두에 두어야 합니다. CPU(메인보드)와 GPU(그래픽 카드) 간의 자료 교환을 위한 버스 속도의 한계로 인해 자료 교환 횟수가 많을수록 작업 속도는 저하됩니다.

 

예를 들어 하드웨어 인코더소프트웨어 필터를 사용할 경우, '하드웨어 디코딩(GPU) 소프트웨어 필터(CPU) 하드웨어 인코딩(GPU)'의 작업 흐름(하드웨어 디코딩 활성화, 2번의 자료 교환)은 '소프트웨어 디코딩(CPU) 소프트웨어 필터(CPU) 하드웨어 인코딩(GPU)'의 작업 흐름(하드웨어 디코딩 비활성화, 1번의 자료 교환)보다 속도가 느립니다.

 

물론 이때 필터를 하드웨어 필터만으로 사용한다면 (인코딩되는 영상의 화질과는 무관하게) 작업 속도가 월등히 향상됩니다.

 

FFmpeg(와 FFmpeg 기반의 샤나인코더)의 경우 라이센스(LGPL) 문제 때문에 배포되는 모든 필터가 소프트웨어 필터이니만큼 해상도 변경 같은 필터 작업을 할 때는 하드웨어 인코딩을 하더라도 디코딩은 하드웨어 디코딩을 비활성화함으로써 인코딩 속도를 높일 수 있습니다.

 

Facebook Twitter Pinterest Kakao

List of Articles
No. Subject Author Date Views Votes
Notice 사용 팁 게시판 이용 안내 Rina 2020.03.18 1672 0
56 기초 용어 정리 (샤나인코더 기준) file JKyle 2020.06.01 1242 0
55 오디오 채널 중 원하는 부분만 선택해서 인코딩하기 file JKyle 2020.05.22 1047 0
54 다중 오디오 동영상 인코딩하기 1 file JKyle 2020.03.17 2148 2
53 HEVC 코덱 설정->튜닝 옵션별 각 화질 비교 3 file 바봉이 2020.02.05 6032 0
52 H264(AMF), HEVC(AMF) 옵션 도움말 1 JKyle 2020.02.03 2866 0
51 H264(NVENC), HEVC(NVENC) 옵션 도움말 1 JKyle 2020.02.03 2705 0
50 필터 적용 사례: 로고/워터마크 제거 1 JKyle 2020.01.31 2510 1
49 HDR 영상과 10비트 영상 JKyle 2020.01.29 1663 1
48 색공간과 Bit Depth 3 JKyle 2020.01.28 725 1
47 샤나인코더 영상 사이즈 변경 옵션을 통한 FFmpeg 필터의 기초 이해 JKyle 2020.01.27 1881 1
46 샤나인코더의 H264 설정과 FFmpeg의 x264 설정 이해 8 JKyle 2020.01.27 3331 1
45 FFmpeg 명령어 구조와 샤나인코더 작동 방식 이해 JKyle 2020.01.26 957 0
44 [인포그래픽] 인코딩 작업 흐름과 자막 작업 1 JKyle 2020.01.25 774 0
» [인포그래픽] 인코딩 작업의 흐름도 1 JKyle 2020.01.25 1150 0
42 [필독] 비디오 코덱과 기본 용어 (H.264, HEVC) 1 JKyle 2020.01.25 2987 1
41 샤나인코더로 움짤 만들기 file JKyle 2019.09.08 2343 0
40 기록 보기에서 Consider increasing the value for the 'analyzeduration' and 'probesize' options 내용이 있을 때 해결법 4 Rina 2019.09.04 1043 1
39 SRT SMI 자막 인코딩 이용시 한글 깨짐 자막변환 방법 file 나그네3 2019.03.14 5726 1
38 webm VP9 멀티스레드 활성화하는 방법, 속도 향상시키는 방법 마소리스 2018.09.25 3291 0
Board Pagination Prev 1 2 3 Next
/ 3