• 돌아가기
  • 아래로
  • 위로
  • 목록
  • 댓글
정보

SD, HD, FHD, 4K, 8K 그리고 codec, 너네들 정체가 뭐냐?

quad quad 392

6

2

최근 몇일 간 트랜스코딩에 대한 토론 글로 게시판이 따끈따끈 했습니다.
그 글들을 보면서 몇가지 기본적인 이해, 용어의 정리 등등이 필요하다는 생각을 하게 되었습니다.
그래서 알쓸신용(알아두어도 쓸모없는 신기한 용어)을 끄적여 봅니다.

 

1. SD부터 8K까지

 

영상의 크기(해상도)는 가로와 세로의 숫자로 표기합니다. 예를들면 1920 * 1080 이렇게요.
각각의 포맷의 크기는 다음과 같습니다.

 

SD : 640 : 480(PC 모니터), 720 * 480(방송)
HD : 1280 : 720
FHD : 1920 : 1080
4K : 3840 : 2160
8K : 7680 : 4320

 

FHD의 화소수가 1920 * 1080 = 2,073,600
4K의 화소수가 3840 * 2160 = 8,294,400
8,294,400 / 2,073,600 = 4 (그래서 4K입니다^^)

 

재미있는 점은 품질은 뒤의 숫자를 이용해서 표현하고, 그냥 부를 때는 앞의 숫자를 이용합니다. 1920 * 1080은 1080i가 있고, 1080p가 있는데, 1080p는 세로 주사를 한 화면에 순차적으로(progressive) 1080 줄(line)을 그린다는 의미입니다. 그리고 보통 부를 때는 FHD라고 부르지요(K 방식으로는 2K가 되는데, 워낙에 처음부터 FHD라고 불렀기 때문에 2K 대신 FHD라고 부릅니다) 3840 * 2160은 세로로 2160개의 라인을 그리고, 가로 픽셀이 3840개입니다. 그래서 4K라고 부르지요. FHD의 4배 해상도를 가지고 있는데 앞의 숫자가 4,000에 가까워서 4K로 부르기로... 같은 방식으로 계산하면 8K는 4K영상의 4배 크기입니다. 그러면 8K는 FHD영상의 16배 크기이죠. 뒤에 나오겠지만 이 크기가 중요하며 만악(?)의 근원입니다 ㅎㅎㅎ~

 


2. 영상이 만들어지는 과정

 

영상은 물질적 실체가 없는 "신호(signal)"입니다. 신호는 그저 흘러갈 뿐이며, 신호 그 자체만으로는 저장이 안되고 따라서 전송도 안 됩니다. 그런데 우리는 어딘가에 저장된 영상을 보죠. 그건 신호가 우리가 저장하고 전송 할 수 있는 자료(data)로 바뀌었다는 뜻입니다. 이 과정을 살펴 볼 까요?

 

월요일을 제외하고는 매일 프로야구 경기를 합니다. 프로야구는 실시간으로 온 갖 매체로 전송이 됩니다. 어떤 사람은 TV로 보고, 어떤 사람은 PC로 보고, 어떤 사람은 침대에 누워 태블릿으로 보고, 어떤 사람은 이동 중에 휴대폰으로 봅니다.

 

그렇게 볼 수 있기 위해 최전방에서 고생하시는 분들은 카메라 감독님들입니다. 카메라는 눈입니다. 보이는 영상을 인식하지요. 그러나 그렇게 인식된 영상은 여전히 신호(signal)에 불과합니다. 이 신호를 저장하고 전송하기 위해서 사용되는 것이 캡쳐 보드입니다. 카메라로부터 들어오는 영상을 실시간으로 파일로 바꾸어서 저장을 하지요. 그리고 그렇게 저장이 시작되는 순간부터 차례로 읽어들여서 인코딩을 하기 시작합니다. 여기에서 codec이라는 개념이 등장합니다.

 

codec은 coder/decoder의 앞글자를 딴 용어입니다. 캡쳐 보드로 붙잡아 둔 영상을 변환하는거죠. 그냥 보내면 되지 왜 변환하냐구요? 크게 이유는 두가지이고 둘 다 만악의 근원인 크기 때문입니다. 크기가 만악의 근원이라는 말 저 위에 있죠?

첫째, 원본 동영상은 엄청나게 큽니다. 그걸 그대로 보내면 네트웍이 감당을 못 해서 모든 사람이 아무도 프로야구 중계를 보지 못하는 현상이 생깁니다. 그래서 압축과 크기를 조절하는 인코딩을 해서 보내는 것이지요.

둘째, 1바이트라도 줄여야 돈이 절약됩니다. 클라우드-CDN 서비스는 outbound traffic이 종량제거든요(그래서 오라클 클라우드의 무료 트래픽 10T가 파격적 혜택이라고 하지요). 줄이면 줄일수록 비용이 절감됩니다. 돈이면 양잿물도 마신다는 자본주의 사회에서 돈이 걸렸는데...... 

 

다시 야구 중계로 돌아가면, 카메라가 인식한 영상을 캡쳐 보드가 붙잡아서 파일로 남기는 순간, 컴퓨터들의 CPU가 바빠집니다. 아직 우리나라는 프로야구 중계는 4K 중계가 없죠? 그러면 최소한 FHD, HD, SD 세개의 인코딩이 실시간으로 돌아갑니다. 원본 하나에 3개의 영상이 실시간으로 만들어지는 것이지요. 좀 더 성의있게 하자면, 안드로이드용으로 3개, 아이폰용으로 3개, 합 6개의 프로야구 중계를 실시간으로 만들어서 보는 사람이 무엇으로 보고 있느냐(TV? PC? 태블릿? 휴대폰?)에 따라 그에 맞는 화면을 뿌려주는 것입니다.

 

아니! 영상은 하나인데 그걸 보는 기기에 맞추어 6가지로 만든다고?

엄청 비효율적으로 보이죠? 맞습니다 비효율적입니다. 그래도 엄청나게 큰 파일을 모든 기기에 다 뿌리는 것 보다는 효율적입니다. CPU와 HDD는 갈구면 되지만 네트웍은 "증설"을 해야되거든요. 그리고 그 증설은 방송국에서 할 수 있는 것도 아니구요.

그리고 그게 방송국 입장에서는 더 효율적입니다. 넷플릭스 같은 OTT 서비스도 마찬가지구요. 위에 설명했지만, 휴대폰에 엄청 난 크기의 파일을 전송해 보았자 화질 더 좋게 보여 고객들에게 칭찬 받는 것도 아닌데, 큰 파일 전송해서 outbound traffic 요금만 비싸게 낼 이유가 없는 것이지요.

그래서 욕먹지 않을 정도의 화질을 만들 되 크기는 미친듯이 죽을때까지 줄여댑니다. 그게 다 돈이니까요.

 


3. 받아서 보는 쪽에서 일어나는 일

 

그럼 프로야구를 보는 휴대폰에서는 무슨 일이 일어날까요?
실시간으로 들어오는 영상을 디코딩해서 보여줍니다. 이때 codec은 쌍을 이룹니다. 방송사에서 H.264로 인코딩했다면 나의 휴대폰에서도 H.264로 디코딩해서 보는 것이지요. 내 휴대폰에 H.264 코덱이 없다면? 그럼 프로 야구 중계 못 보는거지요. 마치 친구가 zip을 해서 파일을 보냈을 때 내가 unzip을 가지고 있지 않으면 풀 수 없는 것과 마찬가지입니다. 그리고, 그래서 H.264로 인코딩해서 보내는 것입니다. H.264가 안 되는 기기는 거의 없거든요.

영상을 처리하는 장비는 어떤 장비이든 스펙에 어떤 영상을 처리 할 수 있는지 적어 놓았습니다. 여러분이 가지고 계신 갤럭시나 아이폰이나 스펙에 보면 어떤 코덱을 지원하는지 다 적혀있습니다. 시놀로지 나스도 다 적혀있습니다.

 


4. 영상은 codec 놀음

 

야구는 투수 놀음이라고 하지요. 영상은 코덱 놀음입니다. 코덱은 앞에서도 말씀드렸지만, 압축을 하면서 크기를 인코딩합니다. 바이너리 파일의 압축에 비해서 영상의 압축은 까다롭습니다. 거칠게 압축을 하면 화질이 떨어지기 때문에 화질 저하없이 압축을 하는 것이 관건입니다. 압축율을 높이면 화질이 떨어지고, 화질을 유지하면 압축율이 딸어지는 역상관 관계가 있기 때문입니다. 그래서 온 갖 기술들이 등장하지요. 예를들면 화면의 검은색 부분은 이러나 저러나 검은색이므로 쎄게 압축해 버리고 색이 화려한 부분은 경계를 부드럽게 하고 등등... 그러면서 압축율은 높이면서 화질은 유지하는 방법을 찾다보니, 그리고 소비자들이 요구하는 동영상의 크기가 점점 커지다 보니(HD에서 FHD로, FHD에서 4K로...) 더 효율적인 압축 방법을 고안해야 되고 그래서 새로운 알고리즘을 적용한 새로운 코덱들이 나오는 것이지요.


아무리 좋은 영상이라도 내가 가진 기기에 그 코덱이 없다면 그 영상은 못 봅니다. 지금은 모르겠습니다만 한 때 갤럭시에 Divx 파일은 재생이 안되었습니다. 이유는? 이제 아시죠? 코덱이 없었거든요.

 


5. 시놀(헤놀)에서 코덱의 의미

 

헤놀도 마찬가지입니다. 영상을 처리하려면 코덱이 있어야 합니다. "영상이 안 나온다"라는 글을 자주 보는데, 코덱의 문제가 대부분이지요.

 

case1
자~ 헤놀에 H.264 / FHD 크기로 인코딩된 파일이 있습니다. 이걸 TV에서 볼 떄는 TV에 H.264 코덱이 있으면 됩니다. 정확하게는 TV에서 동영상을 보여주는 프로그램이 H.264 코덱을 가지고 있으면 되죠. TV는 1920 * 1080으로 FHD를 지원하니 크기 변환을 할 필요도 없이 그냥 TV로 보내면 됩니다.

 

그런데 이 파일을 휴대폰으로 본다면, FHD파일을 그대로 받아서 그대로 보면 됩니다. 휴대폰에 H.264 코덱이 있으니까요. 이 방식이 다이렉트 플레이입니다. 영상을 보는데 아무 문제가 없습니다. 그런데 휴대폰 화면이 작으니까 헤놀이 이걸 SD급으로 바꾸어서 보내준다면 전송되는 파일의 크기가 작아져서 빨리 전송이 되고 (만약 와이파이가 아니라면) 데이터 사용량도 절약 할 수 있겠죠? 이럴 때는 헤놀이 파일의 크기를 줄여서 보내게 되는데 그게 바로 트랜스코딩입니다.

 

그런데 위의 두 경우에 있어서 어떠한 경우가 되었건 영상을 보는 것 그 자체는 문제가 없죠? 헤놀이 트랜스코딩이 되건 안되건 영상을 볼 수 있습니다.

 

case2
이번에는 헤놀에 HEVC로 압축된 영상이 있습니다. HEVC로 압축을 해도 워낙에 고화질이라 크기가 10G 정도 됩니다. 근데 이게 헤놀이라 HEVC 코덱이 없네요 (저의 다른 글에서 썻다시피 DSM 7.1부터는 HEVC 코덱은 정품 인증하고 로그인해서 설치해야 합니다) 
헤놀은 코덱이 없어서 HEVC 파일을 그냥 일반 파일 전송하듯이 다이렉트로 보내는 수 밖에 없습니다. 그런데 다행이 받아서 보는 휴대폰의 플레이어에 HEVC 코덱이 있네요. 그럼 영상을 볼 수 있습니다. 다만 이때 문제는 10G가 전송된다는 것이지요. 만약 헤놀에 HEVC 코덱이 있었다면 휴대폰 크기에 맞추어서 1G로 줄여서(트랜스코딩 해서) 보내 주거나 매우 호환성이 높은 H.264로 트랜스코딩해서 보내 줄 수 있었겠지요.

 

그런데 만약에 헤놀에도 HEVC코덱이 없고 받아서 보는 쪽에(TV나 휴대폰에)도 HEVC 코덱이 없다면? 그러면 영상 못 봅니다. zip을 보냈는데 unzip이 없으니까요. 그런데 이 경우에는 문제 해결이 쉽습니다. 헤놀은 그깟 HEVC 코덱 설치하는 것을 대단히 어렵게 만들어 놓았지만, TV나 휴대폰에서는 HEVC 코덱이 들어있는 플레이어로 영상을 플레이 하면 되므로 HEVC 코덱이 들어있는 플레이어 앱을 설치하면 되는거죠. 


따라서 이 경우에도 동영상을 보는데 문제가 없습니다. 다만, 동영상의 크기가 너무 클 경우에는 네트웍이 감당을 못 해서 한 장면 도착하고 다음 장면 도착이 안 되어 가끔 모래시계가 뱅뱅 돌 수는 있겠지요.


그래서 비디오 스테이션의 오프라인 트랜스코딩의 비디오프로파일 항목에 보면 높음, 중간, 낮음을 선택 할 수 있게 되어 있는데, 이것들이 H.264에서 정의해 놓은 프로파일 중 high, main, baseline에 해당하는 것입니다. 화질 중시 압축이냐, 크기 중시 압축이냐 정도로만 이해하면 되겠네요. main은 그 중간 절충이고요.

어쨌든 이 경우도 헤놀이 트랜스코딩이 되건 안 되건 동영상 시청에는 문제가 없습니다.


어떤 케이스건 동영상 시청은 가능합니다.
어떤가요?
화정큐삼님께서 트랜스코딩은 필수가 아닌 선택이다라는 말이 왜 그런지 이해가 되시나요?
또 헤놀이 트랜스코딩을 하면 효과가 있는 경우가 어떤 경우인지도 이해가 되시나요?

신고공유스크랩
2
2등
DarkAcid 2022.08.31. 04:44

(비디오 오디오 둘다) 부가로 설명을 하자면 모니터나 TV에서는 RGB를 기본으로 밝기를 조절해서 해당 영상의 프레임(사진)을 보여줍니다. 역시 이런 정보들 역시 0과1로 나타냅니다. 이렇게 디지털 정보로 표현을 하자면 영상의 화소 하나당 RGB를 따로 나타내줘야하기 때문에 3bit의 정보가 필요합니다. 1080p의 경우 200만화소가 필요하니 30프레임일 경우 1초당 180mb가 필요하죠 (당연히 오디오 덕분에 180mbps는 정말 최소한의 용량입니다).이런 데이터들을 무지 크기때문에 여러가지 알고리즘으로 이런 데이터들을 압축하고 때로는 지우며 용량을 줄입니다. 이러한 여러가지 알고리즘이 여러분들이 아시는 코덱입니다. 가끔 여러분의 컴퓨터에서 코덱이 없어서 영상을 실행하지 못한 경험이 있으실겁니다. 간단히 Zip파일로 예제를 들자면 알집에서 쓰는 분할압축은 알집이 깔려있지 않으면 제대로 압축이 해제가 안되듯이 동영상도 대항하는 알고리즘 (압축방식)이 없이 재생이 불가능한거죠.

이렇게 비디오를 압축하는 용어를 인코딩 그리고 압축된 파일에서 정보를 읽어 해당 정보를 모니터로 보여주는것을 디코딩이라고 합니다. 여기서 트랜스코딩이란! 이미 압축이되어있는 영상을 다른 알고리즘을 이용하여 재포장하는 프로세스를 말합니다. 대부분 PLEX에서 이야기하는 방식은 트랜스코딩을 이야기합니다. 트랜스코딩이 필요한 경우는 2가지입니다. 디코딩하는 기기에서 해당 코덱을 지원을 하지 않던가, 초당 전송 속도에 제한이있어서 압축율이 더 큰 코덱을 사용하던가. 이러한 제한이 없다면 당연히 direct play로 보는게 제일 좋은 화질로 영상을 즐기는 방법입니다.

이제 개인적인 이야기를 하자면......안드로이드에서는 AAC를 지원을 안합니다. 즉 제 핸드폰에서 AAC오디오 형식을 가진 영상을 플레이하면......소리가...안나옵니다. 저는 이러한 제한 때문에 어쩔 수 없이 트랜스코딩을 사용합니다. 대부분의 경우 오디오만 따로 트랜스코딩을.....안하더라구요ㅠㅠ 그래서 1060 3gb를 플랙스 머신에 달아줬습니다.

 

P.S Quad님께서 정리를 잘해주셔서 저도 따로 남겨봅니다

댓글 쓰기 권한이 없습니다. 로그인

취소 댓글 등록

cmt alert

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

삭제하시겠습니까?


목록

공유

facebooktwitterpinterestbandkakao story
번호 분류 제목 글쓴이 날짜 조회 추천
공지 정보 DSM 7.2v) Mshell로 헤놀로지 부트로더 빌드하기. 62 달소 23.05.29.01:57 24713 +24
공지 정보 DSM 7.2v) ARPL-i18n(rr)으로 헤놀로지 부트로더 빌드하기. 72 달소 23.05.23.23:58 26268 +23
후기 asustor에서 나온 nas에 dsm 올렸습니다... 4 링츠링링 1일 전18:45 289 +2
질문 Wireguard 관련해서 질문 드립니다! 2 리준 2일 전12:25 158 +1
가이드 bitwarden 라이센스적용하기. 6 블랙앤해적 4일 전20:01 408 +2
5096 질문
normal
툭툭이 11시간 전14:32 58 0
5095 질문
normal
zip 12시간 전13:40 46 0
5094 질문
normal
jinsol2 15시간 전11:13 340 0
5093 질문
normal
M-M-M 17시간 전09:15 53 0
5092 후기
image
링츠링링 1일 전18:45 289 +2
5091 질문
normal
nadomola 1일 전17:30 89 0
5090 질문
normal
Venzamin 1일 전11:40 166 0
5089 잡담
normal
서맹 1일 전09:42 400 0
5088 질문
image
초보나스 1일 전03:44 130 0
5087 질문
image
Noil 2일 전23:22 81 0
5086 질문
image
서브어린이 2일 전20:16 77 0
5085 질문
image
서브어린이 2일 전17:50 110 0
5084 질문
image
리준 2일 전12:25 158 +1
5083 질문
image
인터찹 3일 전16:22 349 0
5082 질문
normal
지나가는_문과생 3일 전16:16 108 0
5081 질문
image
yholics 3일 전12:39 146 0
5080 질문
normal
서브어린이 3일 전09:11 186 0
5079 질문
image
사쿨쨩 4일 전23:14 107 0
5078 가이드
normal
블랙앤해적 4일 전20:01 408 +2
5077 잡담
image
초보나스 4일 전12:21 202 0