2023년 12월 22일 금요일

[GIF] 고프로 HEVC 와 H.264의 "가변 비트 레이트"에 대한 오해?

 HEVC(H.265)촬영은, H.264보다 용량이 적은 것은 확실히 맞습니다.
(기기마다 50%까지 차이가 날 수도(아이폰) 있으며, 고프로는 1/3정도 줄어들더군요)

동일 환경일 때 h264와 화질 차이를 모르겠다고 하지만, 동일 화질이라면 용량이 작아 네트워크 전송시 이득도 크기에 h.264의 대안으로 떠 오른 포맷(코덱)입니다.
(주 : h265는 동일 조건(고 해상도 / 저 비트레이트)일 때, h264 대비 화질 및 용량 효율이 좋아집니다)

==

이것은 방문자도 직접 실험해볼 수 있는데, 가지고 있는 AVC1 영상이나 인터넷 방송을 OBS를 통해 HEVC 코덱으로 녹화를 해보면 비트레이트가 작음에도 화질이 유지됨을 확인할 수 있습니다.
(예 : 2천5백kbps(2000k) 비트레이트임에도 h264 대비 화질 손상이 없고 용량도 적습니다)

==

그리고, 그 작은 용량의 효율성 중 하나가 바로 적절한 "가변 비트레이트 변화폭"일 것입니다.
(아이폰 시네마틱(HEVC)로 찍어보면, 비트레이트 가변 폭이 넓다는 것을 쉽게 확인 가능하죠)

고프로도 동일 조건 (대상)에서, H.264의 가변 폭은 적거나 미미한 정도로 비트레이트가 고정?되는 반면에, HEVC 는 동일 조건(대상)에서, 가변 폭이 넓고 전체 용량에 변화가 커집니다.

게시물에서 설명할 실험에서, 동일 조건(대상)에 H.264가 6만에서 7만정도에서 1만정도 비 트레이트의 가변이 발생한다면, HEVC는  최대 2만에서 5만까지의 2~3만의 비트레이트 가변이 발생하더군요.

살펴 보시죠.
(
주 : 게시물 내 2M 반복 GIF파일이 2개 있으니, 스마트폰 사용자는 데이터 소모에 주의 바랍니다)


h.264와 HEVC 조합이 기본값일 것입니다.

고프로는 해상도와 프레임에 따라, 코덱을 자동 선택하기 때문에 이런 형식을 가지고 있습니다.

호환성은 좋고 비트레이트 가변 폭이 적으나, 단점은 용량이 큽니다.


위와 달리, 모든 조합(해상도와 프레임)에 hevc 로 고정합니다.

편하지만, "인코딩 / 디코딩 환경(H/W사양)"이 좋지 않거나 편집시 비트 레이트 변화가 싫으면 선택하기 애매합니다.

장점은, 용량이 줄어들지만 비트레이트 변화 폭이 커집니다.
(비트 레이트 변화가 큰 것이 왜 장점?)

==

*주 : HEVC를 선택하든, H.264를 선택하든 표면적 차이는 "화질의 차이보다 용량과 호환성의 차이"라고 볼 수 있습니다.
(화질 논쟁에 큰 의미가 없다는 것이죠)

*주 : 네트워크 전송에 대한 문제라면, 무조건 h.265가 화질이 좋습니다.
(저는 네트워크 전송이 아닌, 영상의 인코딩 / 디코딩에 관한 이야기를 하고 있습니다)

물론, 호환성과 환경의 문제가 없다면 264보다 265가 여러모로 유리한 기술입니다.
(그리고, 265보다 AV1이 낫겠죠)

환경 : 하드웨어 지원 / 네트워크 지원 / 소프트웨어 지원


==

그럼, 진짜로 그런지 확인해 봐야겠죠?


H.264 선택  촬영 후, 파일 비트레이트 확인.


H.265 선택 촬영 후, 파일 비트레이트 확인.

"아이폰 HEVC 촬영에 비해, 고프로 HEVC는 용량 감소폭이 크지는 않네요"

==

그럼 용량은 확인했고, 비트 레이트가 어떨까요?


H.264

20초간 반복 GIF 파일로 비트레이트 변화를 볼 수 있습니다.

평균적으로 7만에서 8만 사이에 변화 폭만 감지할 수 있었습니다.


H.265

20초간 반복 GIF 파일로 비트레이트 변화를 볼 수 있습니다.

평균적으로 2만에서 6만 가까이 변화 폭이 넓다는 것을 감지할 수 있었습니다.

==

다시 확인해 봅시다.


AVC1 최소 비트레이트 변화입니다.

대상이 무엇이든, 평균 7만 근처에서 오락 가락 합니다.


AVC1 최대 비트레이트 변화입니다.

대상이 무엇이든, 오차 범위의 8만 근처까지 가는 것을 볼 수 있었습니다.


hevc 최소 비트레이트 변화입니다.

대상에 따라, 2만 6천까지 내려가죠?


hevc 최대 비트레이트 변화입니다.

대상에 따라, 6만 4천까지 올라갑니다.






[정리]






HEVC는 가변 비트 레이트 방식을 포함한다.

H.264는 고정 비트 레이트 방식이다.

*주 : 각 포맷 세부사항, VBR과 CBR의 선택은 별개의 문제입니다.

*주 : 기기마다 코덱마다 세부 옵션에 따라 달라 질 수 있지만, 적어도 HEVC는 가변 비트레이트와 비슷한 속성이다.
(아이폰 / 고프로 모두 확인)


고프로12는 HEVC만 지원하게 변경된 것도, 해상도 대비 늘어나는 용량을 감당할 수 없기 때문일지 모릅니다.





[잡담]





위 그림처럼, 고프로 12가 HEVC 코덱 포맷 하나로 강제 되는 것 같습니다.

만약, 그렇다면 가변 비트레이트 변화에 대한 오해일 수 있습니다.

말하자면, 소비자가 선택할 수 없는 옵션인 것이죠.

==

앞으로 H.264 사용이 줄어들 것으로 봅니다.
(최근, 망사용료 문제도 결국 과도한 비트레이트에 의한 문제 또한 포함되니까요)

"아니, 통신 3사 담함은 인터넷 방송을 넘어 이제 it 산업 전반의 걸림돌이 되었다니까"


과거에는 좋았지만, H.265 또한 앞으로는 AV1 코덱으로 옮겨갈 것입니다.
(현재 HEVC 포맷으로의 전환도 매우 느리다)

네트워크 대역폭 감소와 최소 화질이 유지되는 이득이 크기 때문입니다.
(공급자 및 소비자)

==

차기 AV1 코덱 : 

지포스 : 디코딩(시청자)은 2050 이상이면 문제 없으며, 인코딩(제공자)은 4060이상이어야 AV1 스트림 제공 및 영상 제작이 가능하다.

단, 인텔ARC 그래픽 카드는 A380(20만원) 수준에도 모든 코덱(ALL) 인코딩/디코딩을 지원한다.

==

*주 : H265 포맷(코덱)은 지포스1060 이상이면 디코딩을 지원합니다.
(단, 인코딩은 제품에 따라 지원하지 않을 수 있다)

링크 : 지포스 비디오 인코딩 및 디코딩 GPU 지원 목록


하지만, 내PC 하드웨어와 소프트웨어는 자동으로 업그레이드 되지 않는다...


최근, 버티다 버티다 돈 쓰기 싫었지만, 도저히 버벅거려 최소 조건에 턱걸이 한 GTX1650을 구입했다.

링크 : H.264 / 265 최소 인코딩 디코딩 지원 GTX1630, 1650 (인텔ARC A380)사이에서 GTX1650 선택기.

다시 생각해보면 (조금만 더 보태서...) '3050이 더 나았을 것인데' 라는 생각도 하지만, 내 지갑은 ...가난하다.

==

저는 최근 모든 기기의 재생 인코더 모두 H.265로 전환 중입니다.
(마치 과거 mpeg 에서 H.264로 전환 하였듯이, H.264에서 H.265로 전환 중이죠)

선택할 수 있다면, H.265가 좋을 것입니다.
(그것이 가변폭이 있더라도 화질의 영향은 없으며, H.264보다 효율성이 낫다는 결론인 것이죠)



블로그 전용 / 유튜브 링크 일부 공개 영상입니다.

댓글 없음:

댓글 쓰기

소중한 의견, 가급적 빠른 답변을 드리겠습니다.