이미지는 각각의 색을 가지는 여러 픽셀들이 모여서 이루어 진 것이다. 이런 픽셀들의 색을 나타내는 방식은 여러 가지가 있을 수 있다. 예를 들어, RGB 처럼 빨간색, 녹색, 파란색의 섞인 정도를 통해 색을 표현할 수도 있고, 밝기, 명도, 채도 등의 다른 방식으로도 역시나 가능하다. YUV도 역시 이런 방식들 중의 하나로, 색 정보와 밝기 정보를 세 가지 채널에 구분해 한 픽셀의 색을 나타내는 방식이다.
이 그림에서 처음의 이미지가 우리가 보는 이미지다. 그리고 두번째 이미지는 이미지의 Y채널 값이다. 여기서 볼 수 있듯이, Y 채널 값만 갖고 있다 하더라도 흑백의 이미지를 얻는 데는 문제가 없다. 세번째와 네번째 이미지는 U, V채널 값을 나타낸다. 이런 세 채널의 값들이 합쳐져서 처음 이미지와 같은 사진을 얻을 수 있다.
그렇다면, U와 V 채널의 값들은 어떻게 동작하는 것일까? 아래 그림을 보자. (http://en.wikipedia.org/wiki/YUV)
RGB와는 달리 U와 V 채널이 각각의 색을 지정해주지는 않는다. U, V가 동시에 작용을 해서 한 색을 지정해주는 방식이다. 어떻게 동작하는지를 알아보려면 Google의 문을 두드리기 바란다. 이 포스트는 단지 YUV에 대한 전체적인 개념만 보여줄 뿐이다. 한가지 언급하고 넘어갈 점은, U채널은 푸른색을, V채널은 붉은 색과 관련이 있다고 한다.
인터넷을 검색하다보니, RGB와 YUV 간에 변환 해주는 공식들이 많이 있다. 맞는 정보인지는 잘 모르겠으나, 확실한 것은 YUV와 RGB는 단지 색을 나타내는 다른 방식으로 서로 변환이 가능하다는 것이다.
위키피디아에서 검색해보니, YUV에 관련해서 Y'UV, YUV, YCbCr, YPbPr 등등 많이 있었다. 거기에 나와있는 바로는, YUV, Y'UV는 텔레비전에서 아날로그 데이타를 인코딩하는 것을 지칭하고, 나머지들은 디지털 데이타를 인코딩하는 것을 칭한다고 하나, 요즘에 컴퓨터와 관련해서 쓰이는 YUV는 YCbCr을 칭한다고 나와있다. 더 디테일한 것은 인터넷 바다로~
위키피디아에서 YUV의 역사에 관한 한가지 재미있는 점을 발견했다. 과거 흑백티비 시절에 사람들이 컬러티비를 보기 위해 YUV를 개발했다고 한다. 하지만 그 당시에 쓰였던 흑백티비와의 호완성 문제로 기존의 흑백 인프라를 이용하여 컬러 정보도 같이 전송하기 위한 방법으로 흑백의 정보를 나타내는 Y채널에 색깔의 정보를 나타내는 U, V채널을 덧붙여 전송하는 방식을 채택했다. 이로써, 기존의 흑백티비는 여전히 Y채널 정보만을 처리해 출력해주고, 컬러티비는 U, V채널 정보도 같이 처리해 동시에 두가지 방식의 텔레비전이 공존할 수 있게 된다.
이런 방식의 한가지 장점은 밝기 정보와 컬러 정보를 분리할 수 있다는 점이다. 사람의 눈은 컬러보다는 밝기에 훨씬 민감하다. 그러므로, 대역폭을 줄이기 위해, 밝기 정보는 그대로 두고 컬러 정보를 최대한 줄여 화질의 손상이 크게 눈에 띄지 않은 채 대역폭을 줄일 수 있게 되는 것이다. 그러므로, 위키피디아에서 얘기하기를, YUV는 절대적인 color space가 아니고 단지 RGB 데이터를 인코딩하는 한 방식이라고 얘기한다.
이러한 이유로, Y채널 정보는 이미지 크기만큼이 필요하고, U, V채널 정보는 2x2 pixels를 한 색으로 나타내는 방식으로 이미지 크기의 1/4만큼의 정보가 필요한 것이다. 아래 그림은 YUV 한 프레임이 어떤 방법으로 stream에 표현되는 지를 보여준다. (http://en.wikipedia.org/wiki/YUV)
이 경우에, 이미지 사이즈는 6x4 이다. 우선, Y채널 값들이 나열되고 그 뒤를 따라 U, V채널의 정보가 뒤따르는 것을 볼 수 있다. 그러므로, Y채널의 시작은 0번째이고, U는 24번째, 그리고 V는 30번째가 된다. 다시말해, 이 한 프레임을 나타내기 위해서, 총 36바이트가 필요한 셈이다.
* YUV 와 RGV 간의 변환식 (http://en.wikipedia.org/wiki/YUV)
YUV에서는 색깔의 정보를 밝기와 칼라로 구분한다. Y채널 (luma component) 은 색의 명암을 나타내고, U와 V 채널 (chrominance components) 두 가지가 동시에 색을 결정한다. 그러므로 Y채널의 정보만을 가지고 있다 하더라도, 흑백 이미지를 구현할 수 있다. 어찌보면, 이것이 YUV의 한 장점이 될 수 있다.
아래의 그림을 보면 이해하는 데 훨씬 도움이 될 것이다. (http://en.wikipedia.org/wiki/YUV)
이 그림에서 처음의 이미지가 우리가 보는 이미지다. 그리고 두번째 이미지는 이미지의 Y채널 값이다. 여기서 볼 수 있듯이, Y 채널 값만 갖고 있다 하더라도 흑백의 이미지를 얻는 데는 문제가 없다. 세번째와 네번째 이미지는 U, V채널 값을 나타낸다. 이런 세 채널의 값들이 합쳐져서 처음 이미지와 같은 사진을 얻을 수 있다.
그렇다면, U와 V 채널의 값들은 어떻게 동작하는 것일까? 아래 그림을 보자. (http://en.wikipedia.org/wiki/YUV)
RGB와는 달리 U와 V 채널이 각각의 색을 지정해주지는 않는다. U, V가 동시에 작용을 해서 한 색을 지정해주는 방식이다. 어떻게 동작하는지를 알아보려면 Google의 문을 두드리기 바란다. 이 포스트는 단지 YUV에 대한 전체적인 개념만 보여줄 뿐이다. 한가지 언급하고 넘어갈 점은, U채널은 푸른색을, V채널은 붉은 색과 관련이 있다고 한다.
인터넷을 검색하다보니, RGB와 YUV 간에 변환 해주는 공식들이 많이 있다. 맞는 정보인지는 잘 모르겠으나, 확실한 것은 YUV와 RGB는 단지 색을 나타내는 다른 방식으로 서로 변환이 가능하다는 것이다.
위키피디아에서 검색해보니, YUV에 관련해서 Y'UV, YUV, YCbCr, YPbPr 등등 많이 있었다. 거기에 나와있는 바로는, YUV, Y'UV는 텔레비전에서 아날로그 데이타를 인코딩하는 것을 지칭하고, 나머지들은 디지털 데이타를 인코딩하는 것을 칭한다고 하나, 요즘에 컴퓨터와 관련해서 쓰이는 YUV는 YCbCr을 칭한다고 나와있다. 더 디테일한 것은 인터넷 바다로~
위키피디아에서 YUV의 역사에 관한 한가지 재미있는 점을 발견했다. 과거 흑백티비 시절에 사람들이 컬러티비를 보기 위해 YUV를 개발했다고 한다. 하지만 그 당시에 쓰였던 흑백티비와의 호완성 문제로 기존의 흑백 인프라를 이용하여 컬러 정보도 같이 전송하기 위한 방법으로 흑백의 정보를 나타내는 Y채널에 색깔의 정보를 나타내는 U, V채널을 덧붙여 전송하는 방식을 채택했다. 이로써, 기존의 흑백티비는 여전히 Y채널 정보만을 처리해 출력해주고, 컬러티비는 U, V채널 정보도 같이 처리해 동시에 두가지 방식의 텔레비전이 공존할 수 있게 된다.
이런 방식의 한가지 장점은 밝기 정보와 컬러 정보를 분리할 수 있다는 점이다. 사람의 눈은 컬러보다는 밝기에 훨씬 민감하다. 그러므로, 대역폭을 줄이기 위해, 밝기 정보는 그대로 두고 컬러 정보를 최대한 줄여 화질의 손상이 크게 눈에 띄지 않은 채 대역폭을 줄일 수 있게 되는 것이다. 그러므로, 위키피디아에서 얘기하기를, YUV는 절대적인 color space가 아니고 단지 RGB 데이터를 인코딩하는 한 방식이라고 얘기한다.
이러한 이유로, Y채널 정보는 이미지 크기만큼이 필요하고, U, V채널 정보는 2x2 pixels를 한 색으로 나타내는 방식으로 이미지 크기의 1/4만큼의 정보가 필요한 것이다. 아래 그림은 YUV 한 프레임이 어떤 방법으로 stream에 표현되는 지를 보여준다. (http://en.wikipedia.org/wiki/YUV)
이 경우에, 이미지 사이즈는 6x4 이다. 우선, Y채널 값들이 나열되고 그 뒤를 따라 U, V채널의 정보가 뒤따르는 것을 볼 수 있다. 그러므로, Y채널의 시작은 0번째이고, U는 24번째, 그리고 V는 30번째가 된다. 다시말해, 이 한 프레임을 나타내기 위해서, 총 36바이트가 필요한 셈이다.
* YUV 와 RGV 간의 변환식 (http://en.wikipedia.org/wiki/YUV)
댓글