처음 구매했을 때는 꽤 삽질이 있었지만, 이후 대단히 만족했던 MainConcept의 HEVC 인코더가 2.0으로 업데이트 됐다. 재빠르게 업데이트한 뒤에 릴리즈 노트를 읽어보니 뭔가 변화가 있었다. 일단 MainConcept의 SDK 버전이 12.x에서 13.1로 업데이트 되었다. 이 부분은 13.x의 업데이트 내역이 공개되어있지 않아 그러려니 하지만, 뭐가 달라져도 달라졌겠지... 중요한 것은 인자가 하나 바뀌었다는 것이다. 그래서 똑같이 바꾼 뒤에 인코딩을 해보니... 실패했다... 또 다시 시작이다 싶어서 다양한 테스트를 돌려보고, 오류 리포트를 준비하고 있었다. 그러다 뭔가 쌔한 느낌에 인코딩 확장자를 mkv에서 mp4로 바꿔보니 아무 문제 없이 잘 인코딩된다. 결론은 HEVC Encoder P..
ffmpeg은 그야말로 만능 비디오/오디오 처리 도구다. 수많은 프로젝트들이 ffmpeg을 사용해서 만들어졌으며, 소스가 공개되어 다양한 커스텀 버전도 존재한다. 오히려 너무 기능이 방대해서 오히려 불편을 겪을 때가 있을 정도다. 예를 들면, MainConcept의 HEVC 인코더는 ffmpeg 플러그인 형태로 배포 되는데, 이게 순정품(?)과 꽤 차이가 있다. 커스텀 버전의 ffmpeg을 사용해야만 인코딩을 할 수 있는데, 이게 순정품(?)의 기능 중 없는 게 있다. AVS 입력이 완벽하지 않기도 하고, 정확히 어떤 모듈까지 사용됐는지 일일이 찾기도 번거롭다. 이런 경우는 누구의 잘못도 아니지만, 여튼 사용하는 입장에서 불편한 건 사실이다. 이럴 때 손쉽게 쓸 수 있는 방법은 ffmpeg 두 버전 간에..
구매한지 3개월만에 드디어 정상동작을 확인한 MainConcept HEVC 인코더를 테스트해봤다. 테스트는 이전에 했던 테스트들과 동일한 조건에서 수행하여 결과물의 품질을 비교했으며... 이전에 데모버전의 테스트를 위해 만든 인코더의 기능을 좀 보강해서 진행했다. MC의 인코딩을 위해선 따로 컴파일한 FFmpeg이 필요한데, 이 버전이 일부 avs는 잘 읽지 못하는 문제가 발견됐다. 이를 위해 아예 FFmpeg을 직접 컴파일할 수도 있었지만, 귀차니즘으로 그냥 FFmpeg들을 파이프로 연결하도록 보강. 1. color range x264/x265는 기본적으로 full range를 사용하지 않고 limited range(16-235)로 인코딩한다. 동일선상에 놓고 비교하기 위해 limited range 옵..
처음 MainConcept HEVC 인코더를 구매했던 것이 2월 15일이었으니, 무려 3개월의 시간이 흘렀다. 그동안 원격접속으로도 원인을 추적하고, 새 버전을 두 번 다운받았지만, 제대로 실행되지 않는 문제는 여전했다. 그러다 드디어 3개월만에 모든 문제를 수정했다는 메일을 받았다. 마음을 가다듬고 기존의 모든 플러그인을 죄다 제거한 뒤에 PC를 리부팅하고 다시 설치를 시작했다. 설치 과정에서 나오는 PC 보호 경고 메시지는 반갑기까지 하다. 먼저 확인해본 것은 인증 모듈이 잘 동작하는지 여부. Error: 0이 드디어 표시됨으로써 인증 관련 문제가 없다는 점을 확인했다. 바야흐로 테스트 인코딩... 잘 된다. 이제부터 본격 인코딩 효율이나 동작속도 등을 테스트할 예정.
제품을 구매하고, 한달 넘게 기다리고 있는데, 드디어 반가운 메일이 왔다. 플러그인의 새 버전을 다운받으라고 하는 것 기쁜 마음으로 다운로드 링크를 클릭하니 반가운 글자들이 보인다. 그런데, 이게 뭥미? User name, Password? 아무리 생각해도 계정 같은 걸 만들었던 기억이 없는데... 그래도 혹시나 몰라 예의를 갖춰 메일로 물어봤다. 그러자 돌아온 기계가 쓴 거라 해도 믿을 것 같는 답장. 1. 구매했을 때 받은 메일 봐 2. 그리고 지난 버전 다운받는 링크 알랴줌 혹시나 내가 뭔갈 놓쳤나 싶어 바로 그 메일을 뒤져봤지만, 당연히 계정 정보 같은 건 없다. MainConcept 쪽의 시스템은, 다운링크는 주되, 별도의 인증 프로그램으로 인증받는 구조이다. 메일로 설명하니 드디어 뭔가를 보내..
한달 전쯤 MainConcept 사의 HEVC 인코더를 구매하는 것을 검토했었다. 언제 나올지도 알 수 없고, 인코더 성능을 확신할 수도 없는 Big Navi보다 이 쪽이 더 현실적인 선택이기 때문이었다. 테스트 결과는 상당히 만족스러웠다. 인코딩 속도는 HW 인코더와 x264의 중간 정도였는데, 화질은 x265에 상당히 근접하는 수준을 달성했다. 그리하여 Big Navi를 포기하고, MainConcept HEVC 인코더를 구매한 뒤, 당근을 통해 RTX2070으로 업그레이드했다. 송장(Invoice)을 받고 자세히 읽어보니 회사가 다름 아닌 독일 아헨에 위치해있다. 이렇게 반가울데가! 하지만, 언제나 현실은 냉혹한 것... 정식 버전으로 업그레이드를 하고 나니 인코딩이 되지 않는다[..........]..
엔비디아의 GeForce30 시리즈에 탑재된 NVENC는 20 시리즈의 그것과 동일하다. 하지만, AMD의 Big Navi에 탑재된 VCN은 기존 버전에 비해 향상되었다고 해서 기대하고 있었다. 그런데, 글카의 가격을 생각했을 때 이 업글이 합리적인지 다시 한번 판단해보기로 했다. 대안으로 고민해본 대상은 MainConcept의 HEVC 인코더 FFmpeg 플러그인. MainConcept 사는 SDK, FFmpeg 플러그인 등등 다양한 방식의 인코더를 판매한다. 가장 중요한 기능은 QSV나 NVENC를 활용한 SW+HW 하이브리드 인코딩. 이 중 나에게 딱 맞는 놈은 FFmpeg 플러그인이다. 적절한지 여부를 판단하는 방식은 언제나와 동일하다. 영상 하나를 다양하게 인코딩해본 뒤 SSIM을 계산해보는 것..
nvidia에서 '20년 중순에 출시한 RTX 30 시리즈는 엄청난 성능에도 불구하고 비디오 인코더는 변화가 없었다. 심지어 가격이 이전 모델인 20과 유사한 수준이라 구매욕을 자극했지만, NVENC가 동일해서 구매하지 않았다. 이후 경쟁사인 AMD에서 출시한 RX 6000 시리즈는 이전 모델에 비해 비디오 인코더(VCN)가 업데이트 되었다. 4K에서 fps가 증가한 것 외엔 정보를 찾기 어렵고, MSU의 HW 인코딩 테스트에선 AMD 제품이 대상에서 빠져있다. 그렇지만, 그간의 행보로 보아 추가적인 향상이 있을 것으로 기대된다. 하지만, 현재 출시된 RX 6800 등은 너무 비싸서 엄두가 나지 않고 루머가 돌고 있는 RX 6700을 기다리고 있다. 올해 CES에서 발표할 것이란 얘기도 있고, 3월 말에..
지난 포스팅에서 언급했듯이, 비디오 인코딩 품질 비교 기준, FFmpeg/nvenc 옵션 등이 수정됐다. 이에 따라 변경된 기준들을 정확히 반영할 수 있는 옵션값을 다시 찾아야 했다. 이전 테스트와 같은 소스에서 테스트를 다시 한 번 진행해봤다. 큰 틀에서의 기준은 이전과 동일하다. FFmpeg의 가이드에서 얘기하는 무손실 조건 등에 가장 근접한 옵션을 찾는 것. The range of the CRF scale is 0–51, where 0 is lossless, 23 is the default, and 51 is worst quality possible. A lower value generally leads to higher quality, and a subjectively sane range is 1..
GeForce 16 및 20 계열에는 튜링 코어와 함께 7세대 NVENC가 적용되어있다. 7세대는 6세대 NVENC에 비해 눈에 띄는 성능 향상을 자랑했었다. HEVC HW 인코딩이 드디어 x264를 능가(x265가 아니고...)하는 성능을 보여준 것이다. 7세대 NVENC는 훌륭한 인코더임은 분명하지만, 여전히 성능이 향상될 여지가 있다. x265와 비교 결과를 보면, HEVC의 성능을 완벽하게 발휘할 수준의 인코더는 되지 못한 것이다. GeForce 30 시리즈가 나올 때 내심 기대했던 것이 NVENC의 업데이트였다. 7세대 향상폭의 절반만 구현해도 어마어마한 결과를 보여줄 거라 생각했기 때문이다. 특별한 기능이 추가되지 않더라도, 알고리즘 개선으로 효율이 높아질 수도 있고... 하지만, 발표 결과를..
이번에 ASUS의 D712DA-AU071 모델을 구매하게 되었다. 옵션은 최대한 올려서 NVME SSD는 512GB로 하고, HDD 1TB를 추가하고, 메모리도 12GB 추가했다. 요즘 핫한 라이젠 프로세서를 장착한 모델로, 전체적인 성능은 높고, 가격은 적절한 편이라 가성비는 상당히 높다. 일단 외관은 은색 케이스로 깔끔한 편이다. 요즘 노트북이 으레 그러하듯이, ASUS 로고만 박혀있다. 하단은 아래와 같다. 고무 받침은, 상단에는 길게 배치되어 있고, 하단은 조그마한 2개가 배치되어있다. 통풍구의 크기는 작은 편이지만, 발열이 큰 편이 아니라 무리는 없는 것 같다. 이 제품의 장점 중 하나는 풀 사이즈 키보드. 숫자 키패드가 달려있어 '작고 아름다운' 노트북들에 비해 훨씬 좋은 입력 환경을 제공한다..
지난 추가 시험 이후 GTX1660을 를 새로 장만했다. 또, 지인이 라이젠 3400G를 구매해서 AMD의 HW 인코더인 AMF도 추가적인 테스트를 할 수 있게 되었다. 한편으로는 ffmpeg에서 AMD의 AMF 등 HW 인코더를 지원하는 부분이 안정화되고 있다. 그래서 아예 제대로 테스트 해보기로 했다. 이번에도 테스트 소스는 이전과 동일한 sintel. 공식적으로는 GTX1050Ti의 후계자는 GTX1650이다. 그런데, 자료들을 뒤져보니 코어만 튜링이고 nvenc는 1050Ti와 동일하며, 새로운 nvenc 코어는 1660부터 적용되었다. 일단 전통의(?) H.264 인코딩 결과. 당연하게도(?) x264의 용량 대비 품질이 제일 높고, 인텔 퀵싱크 비디오(이하 qsv)가 이와 거의 동일한 수준이다..
이전 글(소소한 업그레이드 실시)에서 얘기했듯이 새로운 NAS와 새로운 PC 환경을 구축했다. 지난 포스팅(ffmpeg용 H.264/HEVC 인코더 품질/성능 비교)들에서 진행한 시험의 추가시험을 간단하게 진행했다. 1. AMD PC 환경에서의 비디오 하드웨어 인코딩은 사실상 인텔 qsv와 엔비디아 nvenc 외엔 다른 대안이 없다. 그런데, 이 판에서 왕년에 잘 나가던 AMD는 현재 어떤 상태인지 확인해보기로 했다. 그런데, 이번에 지른 라이젠 5 2600에는 그래픽 코어가 포함되어 있지 않다. 마침 주변에 라이젠 5 2400G가 있어 예전 테스트와 유사한 테스트를 해볼 수 있었다. ffmpeg -i sintel.mkv -c:v h264_amf -profile main -quality quality -..
2. 4K 가. H.264 4K 역시 1080P와 동일하게 FFmpeg 가이드에 언급된 x264의 CRF를 기준으로 처리하기로 했다. 기준으로 삼은 x264의 CRF는 역시 이전과 동일하게 17, 23, 25. 마찬가지로 열심히 반복해서 확인해보니 x264는 4K 소스에 대해 각각 49.77, 46.23, 45.09의 PSNR이 도출됐다. 다시 말하면, 4K 영상에 대해서 Q 값은 PSNR이 49 이상이면 거의 무손실, 46 정도면 충분히 양호하며 45 이상이면 사용할만한 품질로 이해할 수 있다는 것. 엔비디아의 솔루션인 nvenc로 인코딩한 결과는 아래와 같다. H.264 역시 x264에 비해 유사한 품질에 대해 대략 20% 정도 큰 파일을 생성해준다. 그리고, 여기서도 preset에 무관하게 결과 파..
1. 1080p 가. H.264 FFmpeg의 가이드에 따르면 x264로 인코딩하는 경우 CRF(Constant Rate Factor)가 17~18일 때 무손실에 가깝다고 한다. 또한, 충분히 양호한 품질을 원하면 CRF을 23으로 하면 되며, 사용할만한 범위는 17~28 이내라고 한다. 그렇다면 이 값들로 동영상을 인코딩 시의 PSNR을 확인하면 다른 인코더에 적용할만한 CRF(또는 이에 준하는 값)을 역셈할 수 있다. 그래서 돌렸다. 열심히 반복해서. 우선 확인해야 할 지점은 x264가 가이드에서 얘기한 Q(CRF)로 인코딩시 어떤 정도의 PSNR을 보여주는지 하는 점이다. 샘플 영상 기준으로 볼 때, PSNR이 48dB 이상이면 무손실로 봐도 무방할 것 같다. 기본값인 Q=23으로 인코딩 시에는 4..
2018/02/04 - ffmpeg을 이용한 HW 비디오 인코딩 테스트 결과 0. 들어가기에 앞서 동영상 포맷의 사실상 표준이 H.264에서 HEVC로 이동하려 하지만, 한편으론 여전히 더 대중적인 쪽은 H.264이다. 온라인 방송용 앱이나 동영상 인코더들은 이 포맷들로 영상을 인코딩하는데, 어떤 것이 최선인지 궁금해졌다. 손쉽게(?) 구할 수 있는 S/W 기반 인코더인 x264/x265와 인텔 quicksync(이하 qsv), nvidia의 nvenc를 활용하여 다양한 조건에서 영상을 인코딩해보고 성능을 비교해보고 싶어졌다. 1. 테스트 영상 Durian Project로 만들어진 단편 애니메이션 Sintel의 일부를 사용하여 테스트를 진행했다. 다섯 가지 해상도의 포맷으로 공개했는데, 이 중 BluRa..
2017/11/05 - 가장 빠른 iDevice용 동영상 변환기 iTrans v15.1 공개 ffmpeg으로 동영상을 인코딩할 때는 기본적으로 SW만을 사용한다.HW 인코딩을 자동으로 사용하는 줄 알았는데, 확인해보니 역시 그럴 리가 없없다… ffmpeg에서 HW 인코딩을 하는 방법에 대해선 ffmpeg 홈페이지를 뒤지면 많은 정보를 확인할 수 있다. 윈도우 용 ffmpeg 빌드의 대표주자인 Zeranoe 님 빌드에선 NVENC, Direct 3D 11, Direct 3D 9, 인텔 QSV 등을 지원한다. C:\bluenlive>ffmpeg -hwaccels ffmpeg version 3.4.1 Copyright (c) 2000-2017 the FFmpeg developers built with gcc ..
2017년 9월 20일 iOS 11이 공식적으로 공개되면서 HEVC 사용을 준비했고, 여러 가지 경험을 통해 다소의 장벽들을 확인하게 됐다.앞으로 상황은 바뀔 것이고, 문제는 해결되겠지만, 현재 기록해둘만한 것으로 판단되는 내용들을 정리해본다. 1. 압축률은 높고 화질은 좋은가? 이건 말할 필요가 없을 수준.앞의 포스팅들에서 확인했듯이 품질 대비 용량은 강력하다. 2. hev1? hvc1? HEVC 동영상에 적용할 수 있는 FourCC는 HEVC, hev1, hvc1 등등이 있다.이 중 ffmpeg에서 x265로 인코딩하면 hev1이 사용된다. 그런데, 이렇게 생성한 동영상은 iOS에 들어갈 수 없다.오로지 iOS는 FourCC가 hvc1인 경우에만 사용 가능하다. 즉, 아래와 같이 명시해야 한다. ff..
2017/10/01 - H.264 vs HEVC 변환 추가시험 결과 이전 포스트 이후 그 결과를 사용해서 H.264(CRF=23) 및 HEVC(CRF=24)로 인코딩 해본 결과 화질이 좀 이상하다는 것을 느꼈다.H.264 CRF의 기본값인 23으로 인코딩했을 때 지글거림이 살짝 눈에 띈 것이다. 이에 따라 절반 정도의 크기에 유사한 화질을 보여준 HEVC CRF=24 역시 권장값으로 쓰는 것도 한번 더 생각해보게 됐다. 이제 2-passes 인코딩은 별 의미가 없다는 것으로 판단하고, CRF 값을 좀 더 세분화해서 테스트를 해봤다. H.264 CRF=23을 기준으로 봤을 때, HEVC에서 CRF=24를 권장으로 하기엔 뭔가 좀 아쉬운 면이 있다.HEVC에서 CRF=22를 적용하면 H.264 CRF=23에..
2017/09/30 - H.264 vs HEVC 변환 시험 결과 이전 포스트에서 했던 H.264과 HEVC 변환 시험의 결과에서 뭔가 부족한 느낌이 있어 조금 더 시험해봤다.애초에 목표가 HEVC가 괜찮은 방식인지 확인하는 것과 적절한 HEVC의 목표치가 무엇인지 확인하는 것인데, 목표치를 성급하게 결론낸 것. HEVC에 대해서 CRF를 22, 28 외에도 24, 25로 설정한 뒤에 같은 측정을 해봤다. 요지는 HEVC에서 CRF를 24 또는 25 중 어떤 값으로 설정하는 것이 더 합리적인가를 보는 것… 우선 MPEG2 클립에 대한 테스트 결과는 아래와 같다.24로 설정했을 땐 H.264(CRF=23)에 비해 절반 정도의 파일 크기에 PSNR은 0.5 정도밖에 차이 나지 않는다.25로 설정했을 땐 조금 ..
iOS 11이 9월 20일에 공식적으로 공개됨으로써 이제 아이폰에서 공식적으로 HEVC를 지원하게 되었다.이에 따라 이 포맷이 과연 알려진 것만큼의 높은 압축효율을 보여주는지, 인코딩 시간은 어느 정도 소요되는지 확인해보고 싶어졌다. 테스트 항목은 대략 이 정도로 제한했다. - 소스 비디오: MPEG2 BluRay, H.264 영화, H.264 애니메이션 각 2분 이내- 1 패스(CRF 지정)와 2 패스(비트레이트 지정) 모두 수행- 원본과의 PSNR 비교 1 패스 CRF는 ffmpeg에 적용되는 x264/x265의 기본값들을 적용했고, 비트레이트는 적절하게 3가지 값을 적용했다. MPEG2 클립을 변환한 결과는 아래와 같다.우선 눈에 띄는 것은 1 패스와 2 패스 간에 유의미한 경향상 차이는 보이지 않..