비디오 용량은어떻게 결정될까? Part.1

비디오 용량은 어떻게 결정될까?

비디오를 촬영하고 저장하는 것은 많은 단계들을 필요로 합니다.

현실세계에 존재하는 모든 데이터들은 아날로그입니다.

우리가 비디오로 촬영하게 되는 대상인 사람이며, 자연물이며, 동물이며, 이런 모든 것들은 아날로그 데이터로 이루어져 있습니다.

그런데 이러한 아날로그 데이터를 저장하기 위해서는 많은 데이터를 필요로 합니다.

그래서 이것을 디지털 데이터로 변환해서 처리하는 것이 훨씬 더 작업하기 편리하고 데이터 용량도 줄 일수 있게 됩니다.


글의 순서


1. 현실세계의 데이터를 디지털 데이터로 변환하기


먼저 아날로그 데이터를 디지털 데이터로 변환하는 방법에 대해서 간략하게 설명해 보겠습니다.



아날로그 데이터

위의 그림과 같이 웨이브 파형의 아날로그 데이터가 있습니다.



디지털 데이터

이것을 디지털 데이터로 변환하려면 이렇게 변화하는 지점마다 점을 찍어서 그 값이 디지털 데이터로 저장되면 됩니다.


이러한 과정을 ‘아날로그 to 디지털 변환’,즉, ‘ADC(Analog to Digital Converter)’라고 합니다.

이 반대는 디지털 to 아날로그 변환’, 즉, ‘DAC(Digital to Analog Converter)’가 되는 겁니다.


이 두가지는 모두 중요합니다.

아무리 디지털로 잘 저장된 데이터라고 해도 우리가 직접 눈으로 보고 귀로 듣기 위해서는 아날로그 데이터로 다시 변환을 해야만 합니다.

우리는 사람이라 컴퓨터가 아니기 때문에 디지털 데이터를 눈으로 볼 수 없기 때문입니다.


아날로그 데이터 웨이브 파형의 점들을 얼마나 세밀하게 찍는가에 따라 정교함은 달라지게 될 것입니다.

점을 듬성듬성 찍으면 데이터 용량은 줄어들겠지만, 이렇게 만들어진 데이터 신호는 원본과는 많은 차이가 나게 될 것입니다.

반대로 점을 아주 빽빽하게 찍는다면 용량은 커지겠지만, 원본과는 다름없는 높은 퀄리티의 디지털 신호를 얻을 수 있을 것입니다.


2. 8bit란? 10bit란?


이와 같이 보통 비디오 신호를 아날로그 데이터에서 디지털 데이터로 변환할 때  8bit 변환, 10bit 변환을 사용하게 됩니다.


8bit 변환이란

8bit Color

영상신호는 R, G, B 로 이루어져 있습니다. 즉, 빨간색, 파란색, 초록색의 조합으로 이루어져 있습니다.

이 각각의 색깔(R, G, B)을 28 즉, 256단계로 표현하는 것을 의미합니다.


10bit 변환이란

10bit Color

8bit와 마찬가지로 각각의 색깔을 210 즉, 1024단계의 색상으로 표현하는 것을 의미합니다.


다시 말해,  8bit는

8bit 컬러 샘플링

빨간색도 0~255까지의, 총 256개의 값 중에 하나를 선택하는 것이고,

초록색도 0~255까지의 값 중에 하나를 선택하는 것이고,

파란색도 0~255까지의 값 중에 하나를 취하게 되는 것입니다.

이를 ‘8비트 컬러 샘플링이라고 합니다.

정리하면 RGB 픽셀 하나당 8bit씩 사용함을 의미합니다.


3. 비디오 용량 계산하기


1920 x 1080의 해상도를 갖는 Full HD/8bit 영상을 기준으로 데이터 용량 계산법을 설명드리겠습니다.


이것을 단순히 가로 팍셀, 세로 픽셀을 곱하면

1920x1080

1920 x 1080 = 2,073,600(픽셀)

의 값을 갖습니다.


그런데 하나의 픽셀마다 R,G,B 값이 들어가 있습니다.

그리고 R, G, B 각각은 8bit로 이루어져 있습니다.

Full HD 해상도에서 200만개의 픽셀중에 있는 R(레드) 하나값만 떼어서 표시를 하면 256개의 단계를 표시 할 수 있게 됩니다.

이것이 바로 8bit가 표현할 수 있는 데이터의 양입니다.

즉, 1920 x 1080 = 2,073,600(픽셀)에 8bit를 곱하면

2,073,600(픽셀) x 8(bit) = 16,588,800(bit)

의 값을 갖습니다.

Red 채널

다시 말해, 16,588,800(bit)는 16,588,800개의 R(레드)값이 Full HD 이미지 한장이 들어가 있는 것 입니다.


그런데 영상은 R, G, B의 세가지 색깔로 구성돼 있습니다.

RGB

여기서 곱하기 3을하면

16,588,800(bit) x 3 = 49,766,400(bit)

의 값을 가지게 됩니다.

이 49,766,400(bit)가 이미지 한 장을 구성하기 위한 데이터 용량입니다.


그런데 동영상은 이런 이미지 한 장이 초당 수십 장씩 바뀌는 것을 의미합니다.

FPS(Frame Per Second)가 그 단위를 의미합니다.

보통 인터넷 영상 즉, 스트리밍은 초당 30개의 이미지를 사용합니다.

영화의 경우는 초당 24개의 이미지를 사용합니다.

방송의 경우는 초당 60개의 이미지를 사용합니다.

여기서 우리는 1초에 필요한 데이터 양을 구할 수 있습니다.

초당 30장의 이미지를 갖는 영상을 기준으로 설명드리면 앞에서 계산한 값(49,766,400bit)에 곱하기 30을 하여

FPS

49,766,400(bit) x 30(Frame) = 1,492,992,000(bit)

의 값을 갖게 됩니다.


이 값을 우리가 기가비트 단위로 변경하면 대략

데이터 전송 속도

*데이터 전송 속도 계산기 https://www.google.com/searchq=bit+%EA%B3%84%EC%82%B0%EA%B8%B0&rlz=1C1ASUM_enKR1053KR1053&oq=bit+%EA%B3%84%EC%82%B0%EA%B8%B0&aqs=chrome..69i57.464468384j0j15&sourceid=chrome&ie=UTF-8

1.5Gbps

가 됩니다.


정리하면 1초에 약 1.5Gbs가 있어야 초당 30장의 프레임을 갖는 Full HD 영상을 전송할 수 잇는 대역폭이 나오게 되는 겁니다

우리가 이 영상을 1시간을 레코딩한다고 가정하면

1.5(Gbps) x 3600() = 5400(Gbps)

대략 5.4TB

의 용량을 갖게 됩니다.


이제까지의 과정을 최종 정리하면

1920 x 1080 x 8(bit) x 3(RGB 채널) x 30(Frame) x 3600(초) = 5.4TB

이것이 바로 압축되지 않은 1시간 짜리 Full HD/8bit 비디오의 데이터 용량입니다.


이렇게 큰 데이터 용량은 저장하기도 힘들뿐더러 전송하기도 힘들고, 편집하거나 다루기가 굉장히 까다롭다는 결론을 얻을 수 있습니다.

그래서 우리는 이것을 압축해서 사용해야 할 것입니다.

압축하는 방법과 과정은 다음글에 이어나가도록 하겠습니다.

Leave a Comment