본문 바로가기
Computer Science(컴퓨터 과학)/영상처리

영상처리 - 동영상 처리(카메라, avi파일 출력하기 + YUV 컬러모델)

by BioLearner 2024. 12. 11.
반응형

우리가 일상적으로 접하는 동영상은 사실 여러 기술들이 결합된 결과다. 그 중 하나가 스트리밍 서비스로, 이는 연속적으로 데이터를 전송하는 방식이다.

 

처음에는 생소할 수 있지만, 이 개념이 동영상에 적용되면 우리가 보는 동영상 콘텐츠가 된다. 또한, 이 기술이 실시간 채팅에 적용되면, 우리가 사용하는 실시간 채팅 앱으로 변환돤다.

 

이번에는 동영상을 어떻게 읽고, 그 내용을 화면에 출력하는지에 대해 자세히 알아보도록 하겠다.

1. AVI(Audio Video Interface)

AVI는 여러 개의 스트림으로 구성된 동영상 파일 형식이다. 쉽게 말해, AVI 파일은 동영상을 의미하며, 반드시 하나 이상의 스트림을 포함하고, 동일한 스트림을 여러 번 포함할 수 있다는 특징이 있다. 대부분의 AVI 파일은 압축되어 저장되어, 효율적인 저장과 전송을 가능하게 한다.

 

컴퓨터에서는 이를 가능하게 하는 다양한 코딩 라이브러리가 존재한다. 대표적인 라이브러리로는 FFmpeg, OpenCV, VLC Media Player, GStreamer, VFW 등이 있으며, 이들은 동영상 파일을 읽고, 변환하고, 스트리밍하는 등 다양한 작업을 지원한다.

 

AVI 파일은 특정한 구조체를 기반으로 하며, 이 구조체는 비디오의 폭, 높이, 압축 방식을 정의한다. 영상 처리 과정에서는 각 픽셀이 BGR 순서로 저장되며, 화면 좌표 (0, 0)에서 시작하여, 픽셀을 RGB로 변환하여 화면에 출력된다.

 

2. 카메라 영상

카메라의 영상도 마찬가지다. avi파일과 같은 stream 서비스로 이것은 실시간으로 영상을 카메라를 통해서 보여주는 역활을 한다. 

 

3. YUV 컬러 모델

위와 같은 동영상 처리의 경우에는 어떤 방법으로 컬러영상을 처리할까? RGB를 통해서 할 수 있는데 대신, 더 적은 용량을 차지하는 YUV 컬러 모델을 사용한다. 

 

Y는 밝기를 의미하며 U, V는 색상을 의미한다. 이는 RGB를 보다 데이터를 축소하는 역활을 가지고 있는데 사람의 눈은 색상보다 밝기에 민감하기에 이런 방법을 선택한 것이다. 

YUV의 데이터 형식은 YUV422, YUV411가 존재한다. 

  • YUV42216비트/픽셀을 사용하며, 두 픽셀이 색상 정보(U, V)를 공유하고, 각 픽셀은 개별적으로 밝기 정보(Y)를 가진다. 즉, 두 픽셀이 색상 정보를 공유하므로 색상 정보가 절반으로 압축된다. 데이터는 일반적으로 (Y0, U0, Y1, V0, Y2, U2, Y3, V2)와 같은 형식으로 저장된다. 즉, 두 개의 Y 값에 대해 하나의 U 값과 하나의 V 값이 공유된다.
  • YUV41112비트/픽셀을 사용하며, 네 개의 픽셀이 색상 정보(U, V)를 공유하고, 각 픽셀은 개별적으로 밝기 정보(Y)를 가집니다. 이 방식에서는 색상 정보가 1/4로 압축되며, 데이터는 (U0, Y0, Y1, V0, Y2, Y3)와 같은 형식으로 저장된다. 즉, 네 개의 Y 값에 대해 하나의 U 값과 하나의 V 값이 공유된다.

반면, RGB는 각 픽셀이 24비트(8비트씩 R, G, B)로 색상 정보를 저장하므로 용량이 더 많이 차지한다.

 

반응형