Artlecture Facebook

Artlecture Facebook

Artlecture Twitter

Artlecture Blog

Artlecture Post

Artlecture Band

Artlecture Main

인간의 시각 체계에서 시작한 개념 YUV | ARTLECTURE

인간의 시각 체계에서 시작한 개념 YUV

/Artist's Studio/
by 김성래

VIEW 4074


지난 글 보기: 인간의 시각 체계에서 시작한 개념 (1) RGB 


인간의 시각 체계에서 시작한 개념 (2)
- 전달은 YUV

 

이번 글에서 말할 YUV는 상대적으로 이전에 말한 RGB나 이 뒤에 말할 HSL보다는 덜 익숙한 단어일 수 있습니다.

그 외에도 색보정 작업 시에 직접 사용하는 기능과 관련이 많은 개념은 아닙니다.

 

다만, 이 개념에서 연결되는 다른 개념들이 다른 의미로 중요한데요.

자주 사용하지는 않지만 일부 고급 스킬들과 관련이 있고,

그 외에도 Chroma Sampling과 같이 색보정에 중요한 Metada와도 관련이 있는 등

알아두시면 색보정에 대한 이해가 깊어지는 데는 도움이 되는 개념입니다.

 

YUV에 대한 개념은 어려운 부분이 많아서

저 역시 현대방송통신전파공학 이라는 책을 보면서 배운 부분이 많습니다.

기술적으로 이해하지 못하는 부분이 많아서 부족한 부분이 많습니다.

더 깊이 있게 알고 싶으시다면 아래의 책을 읽어보시길 추천합니다.

http://book.naver.com/bookdb/book_detail.nhn?bid=13154907

 

 

1. YUV는 분리해서 보내는 방식.

이번에는 이야기하는 YUV는 안구에서 받은 빛의 정보를 뇌로 전달하는 과정과 비슷한 개념입니다.

뇌는 신기하게도 형태, 색채, 움직임, 깊이감 등의 정보를

각각을 담당하는 세포들에 의해 따로따로 받아들여서 동시에 처리한다고 합니다.

앞서 이야기했던 원추세포들이 밝은 곳에서 색상을 구분하는 역할을 주로 한다면

간상 세포라는 녀석은 어두운 곳에서 형태를 파악하는데 도움을 주는 것처럼 말이죠.

 

이렇게 필요한 시각 관련 정보들을 나누어서 보내는 것은 참 좋은 방식인듯합니다.

여러 개의 도로가 있어서 하나의 도로에 문제가 생겨도 다른 길로 가는 정보는 살아 있을 수 있으니까요.

만약 나눠져있지 않다면 어떤 문제가 생기면 인간의 감각 중에 70% 가까이를 차지한다는

시각 전체에 문제가 생길 확률이 높을 겁니다..

설령 색을 구분하지 못하더라도 밝기나 형태, 움직임 등을 볼 수 있기도 하는 것처럼 말이죠.

 

이렇듯 각각의 신호가 뇌로 전달되는 것처럼

영상에서도 밝기 정보와 색상 정보를 분리한 개념을 사용합니다.

조금 차이가 있다면 RGB가 안구에 있는 원추세포의 특징을 거의 그대로 모방했는데 반해

YUV는 인간의 필요에 의해서 만들어진 개념이라는 점이죠.

 

YUV는 흑백 TV와 컬러 TV의 전환기에 발명되었습니다.

맨 처음 나온 TV는 흑백 TV였기 때문에 컬러 TV가 나왔을 때 이 둘을 어떻게 호환 시킬 것이냐라는 문제가 있었는데요.

디지털 방송을 시작했을 때 미리 고지했음에도 모두가 디지털 방송을 수신할 수 있는 TV를 가지고 있지 않았기 때문에

셋톱박스를 쓰기도 하면서 한동안 혼용이 되던 시기가 있었잖아요. 그때와 비슷한 느낌이라고 보시면 됩니다.

이런 상황은 UHD 방송을 시작하는 최근에도 비슷합니다.

새로운 것이 나왔다고 기존의 것들을 완전히 갈아엎을 수가 없는 것이 현실이죠.

 

흑백에서 컬러로 넘어가면서

밝기 신호 Y만 보내던 시기에서 Y, R, G, B 신호를 모두 보내야 하는 상황이 되었습니다.

그렇다고 대역폭을 엄청 늘리기에는 부담이 너무 컸죠.

 

그래서 이것을 해결하기 위해 송출하는 신호를

밝기 신호(정확한 용어는 휘도 신호입니다만 이해를 돕기 위해 밝기 신호라는 단어를 썼습니다.)

색상 신호(이 역시 색상 채널 간의 차이를 축으로 하는 개념이라 색차 신호라고 해야 정확합니다.)

나누어서 보내는 방식을 만들었는데 이것이 YUV 방식입니다.

흑백 TV는 밝기 신호 Y만을 수신하고

컬러 TV는 밝기 신호 Y에 색차 신호인 UV까지 수신하는 방식으로 호환성 문제를 해결한 거죠.

여기서 기억해야 할 점은 밝기가 Y고 색차신호가 UV라는 것이 아니라

 

밝기와 색 두 가지 요소를 분리해서 전송한다는 개념입니다.


 

2. 헷갈리는 사촌들.

YUV를 이해하기 어렵게 만드는 요인 중 하나는 비슷하면서 조금씩 다른 개념들이 많다는 점입니다.

 


출처 - http://blog.naver.com/ljm9270/140164840845

소주처럼 비슷한 느낌 중에 그래도 뭔가 다르긴 한데 뭐가 다른지 말해봐! 이러면 또 어렵죠.

 

저만 어렵나 했더니 영어 위키에도 이런 문장이 있습니다.


'The scope of the terms YUV, YUV, YCbCr, YPbPr, etc.,

is sometimes ambiguous and overlapping.'

모호하고 겹친다...


 

실제로 이 단어들의 사촌 단어(?)들을 보자면...

디지털 인코딩에서 사용하는 YCbCr 현재는 이렇게 말하는 것이 더 정확합니다. 개념적으로 이해하기도 좋고요.

아날로그 시스템에서 사용하는 YPbPr

NTSC 방식을 사용하던 곳에서는 YIQ

그 외에도 Y'UV, Y'IQ, YDbDr 등등

앞에 Y 말고는 서로 다른 글자를 돌려 막기 하는 듯한 단어들이 마구마구 쏟아져 나옵니다.

 

저 차이들을 공학적으로 접근해서 이해하는 것 역시 색보정 작업을 하는데 크게 도움이 될 것 같진 않습니다.

그래도 나는 저 차이들이 궁금해!라고 생각하신다면 아래 책을 읽어보시면 좋을 듯합니다.

http://book.naver.com/bookdb/book_detail.nhn?bid=13154907

 

저 헷갈리는 사촌들 간에서 그래도 알아야 하는 한 가지가 있는데요.

현재 실제로 우리가 디지털에서 사용하는 것은 YCbCr이고 YUV와는 기술적인 차이가 있는 단어이지만

둘 사이에는 유사성이 많은 데다가 그동안 YUV라는 단어가 많이 사용되어왔기 때문에

요즘의 YUVYCbCr은 개념적으로는 혼용해서 쓰이는 단어라고 생각하시면 되겠습니다.

(디지털 영상을 많이 접하게 되기 때문에 그냥 YUV라고 하면 YCbCr이라고 들으셔도 어지간하면 맞습니다.)

 

그래도 혹시 궁금하실 분이 계실까 봐 간단히 말하자면 YUV는 유럽 등지에서 사용하는 PAL 방식에서 쓰인 방식입니다만

NTSC에 비해서 먼저 정립이 되었기 때문에 일종의 대표성을 가지게 되었던 것으로 보입니다.

NTSC에서 쓰는 YIQ 방식에 대해서는 아래서 간략하게 설명을 드리겠습니다.

 

 

3. YUVRGB의 관계.

밝기와 색을 분리했다는 개념은 알겠다고 치고 그럼 어떤 식으로 분리했다는 거야?라는 궁금함이 생깁니다.

이렇게 분리된 요소들을 각각 채널(Channel)이라고 부르는데요.

Y Channel, U Channel, V Channel 이런 식으로요.

(보통 Y ChannelUV Channel 이런 식으로 많이 사용합니다. UV Channel을 나누지 않는 경우가 많습니다.)

 

포토샵을 써보신 분들은 RGB Channel이라는 단어가 익숙하실 겁니다.

RGB 각각의 색상에 해당하는 부분들만 보여주는 개념이죠.

 

RGB에서도 사용한 소스를 예시로 들어보겠습니다.

 

왼쪽 위의 원본 영상을

왼쪽 아래의 Red Channel, 오른쪽 위의 Green Channel, 오른쪽 아래의 Blue Channel로 나누어놓은 것입니다.

(컴퓨터는 색맹이기 때문에 실제로 각 채널은 색이 없는 흑백의 이미지입니다만 이해를 돕기 위해 각 색상이 입혀져있습니다.)



이렇게 나눈 것처럼

1개의 밝기 신호와 2개의 색차신호 3개의 채널로 나누어 놓은 것입니다.

그림으로 표현하자면 아래와 같습니다.



오른쪽 위의 Y 오른쪽 아래의 Cb 왼쪽 아래의 Cr인데요.

(위에서 이야기 한 것처럼 UCb이고 VCr이라고 생각하시는 것이 편합니다.

아래서 설명하겠지만 개념적으로 접근하기에는 Cb, Cr과 같은 단어가 더 좋은데요. 이유는 아래서 설명하겠습니다.

U, V가 더 널리 알려져 있어서 일종의 대명사처럼 됐다고 보시면 될 것 같습니다.)

 

밝기 정보만 있는 Y 값에 대해서는 이해하기 어렵지 않을 테니

조금 더 자세하게 들어가서 CbCr과 같은 색차신호에 대해서 이야기해보겠습니다.

 

위키에서 색차를 검색해보면 디지털 시스템의 색차라는 항목에

'임의의 색과 그 색과 같은 휘도를 가진 기준색과의 측색적인 차다.'

라는 말이 있습니다.

 

우리말이지만 진짜 뭔 말인지 잘 이해가 안 갑니다...

조금 더 풀어서 이야기해보겠습니다.

 

우리는 RGB 세 가지 색을 이용해서 밝기를 만드는 방식을 알고 있습니다.

이렇게 만들어진 휘도신호만을 보내는 것이 흑백 TV였죠.

앞서 잠시 말했듯이 컬러 TV가 나왔어도 흑백 TV와의 호환성을 위해서 휘도신호는 보내야 했습니다.

그 상태에서 나머지 R, G, B 신호를 또 보내기에는 큰 대역폭이 필요해지는 건데요.

Y 값이 R, G, B의 조합으로 만들어지는 것을 생각해봤을 때

세 가지 중에 두 가지만 알면 나머지 값은 Y 신호에서 계산을 해낼 수 있기 때문에

두 개의 신호만 추가로 보내면 어떨까 하는 생각을 하게 됩니다.



이런 식으로 만든 신호.

B-Y, R-Y 신호들을 색차신호라고 합니다.

색차신호 Chrominace의 약자 C를 붙여서 각각 B-YCb, R-YCr 이라고 부르죠.

(왜 개념적으로 접근할 때 U, V 보다 Cb, Cr이 좋다고 했는지 아시겠죠?)

Green 색차신호를 사용하지 않는 이유는 사람의 눈이 Green에 가장 민감하기 때문에

많은 부분을 차지하는 부분을 빼는 것이 신호 대 잡음비가 나쁘기 때문이라고 합니다.

 


이렇게 만든 신호를 조금 더 효율적으로 보내기 위해서 직교 변조라는 신호 변환 방식을 사용하는데요.

신호라는 것이 결국 파동이기 때문에 주기적으로 반복하는 성질이 있고

이 반복하는 진행을 회전하는 원운동에 대응시켜서 나타낸 것을 위상이라고 하는데요.

이 위상차가 90의 차이가 나는 경우 같은 주파수에서 겹치지 않는 2개의 신호를 보낼 수 있기 때문에

훨씬 더 효율적으로 신호를 보낼 수 있다고 합니다.



출처 - http://www.open.edu/openlearn/science-maths-technology/exploring-communications-technology/content-section-1.7

 


이런 개념에서 사람의 눈이 GreenMagenta 축에서의 변화보다

Orange, Cyan 축의 변화에 더 민감하다는 개념을 이용해서 축의 방향을 효율적으로 튼 것이 YIQ이고

NTSC 방식에서 사용하던 것이죠. 이 개념은 Vectorscope 글에서도 잠시 이야기할 겁니다.

https://blog.naver.com/team_csr/221110162622

 

 

조금 더 쉽게 생각해보기 위해서 색공간이라는 이야기로 돌려서 이야기해볼까 합니다.

색을 표현할 수 있는 범위를 이야기할 때 색공간이라는 단어를 쓰는데요.

색은 일반적으로 2차원의 평면에 있다기보단 3차원의 공간에 존재합니다.

지난번에 보여드린 RGB 모형처럼요.

출처 - http://www.odelama.com/photo/Developing-a-RAW-Photo-by-hand/

 

 

모형을 보면 RGB 세 개의 축의 대각선으로 밝기 축이 생기는 것을 보실 수 있습니다.

저렇게 생긴 색 공간에서 밝기 축을 고정시켜버린 상태에서 나머지 색을 모두 표현하려면 어떻게 해야 할까요?

저 밝기 축에 수직으로 교차하는 평면을 만들면 되는 겁니다. 그 평면은 서로 직교하는 두 개의 축으로 구성되고요.

그림으로 표현하자면 이렇습니다.


출처 - https://en.wikipedia.org/wiki/YCbCr

 

그림에서 보시는 것과 같이 육면체의 RGB 색공간을 대각선으로 기울여서 새로운 좌표 기준을 만들어 버린 건데요.

위와 아래의 그림이 기준이 되는 축이 다를 뿐 굉장히 비슷하죠?

그렇습니다. 저 두 개의 색공간은 서로 상호 변환이 가능한 색공간입니다.

(물론 저기서 사용한 YCbCr은 자체적으로 존재하는 것이 아닌 애당초 RGB를 인코딩하는 방식의 하나라 당연히 호환이 되어야 하는 것이 맞습니다만

개념적으로 RGBYUV가 상호 변환이 가능한 호환성을 가지는 색공간이라는 이야기를 하고 싶어서 끼워 넣었습니다.)

 

뱅글뱅글 돌고 있는 YCbCr 색공간에 보이는

색차의 축을 표현하는 CbCr br이 바로 BlueBRedR이라는 것도 보일 겁니다.

맨 위 제목에 올라온 그림이 바로 U(Cb)V(Cr)의 축을 보여주는 그림입니다.

돌고 있는 저 색공간을 CbCr 축으로 잘라내면 아래와 같은 모양이 나올 것 같죠?


출처 - https://en.wikipedia.org/wiki/YUV

 

다시 보니 두 사진의 공통점이 꽤 있네요.

우측 상단에 있는 Green ChannelY Channel은 밝기를 주로 담당하고

하단의 좌측과 우측은 각각 RedBlue와 관련이 있는 그림이었습니다.



 

 

4. 어디에 써먹냐 이걸...

이 글은 유독 저도 쓰면서 힘든 글입니다.

그럼에도 밝기와 색차 두 가지를 분리했던 덕분에 할 수 있는 것들이 많이 생겼습니다.

 

색 정보를 포함하지 않은 밝기 정보인 Luminance

색에 대한 정보 Chrominance

밝기 정보와 색차정보의 분리.

그리고 색상 정보보다 밝기 정보에 민감한

인간의 시지각적인 특성을 이용한 영상처리 방식이 존재하는데요.

 

이런 숫자들 보신 적 있으신가요?

4:2:2, 4:2:0, 4:4:4

바로 Chroma Subsampling에 사용되는 개념입니다.

색보정할 때 Bit Depth와 함께 상당히 신경을 많이 쓰게 되는 Metadata입니다.

 

자세한 개념은 Chroma Subsampling 글에서 보실 수 있습니다.

https://blog.naver.com/team_csr/221026964900

 

 

앞에서 색보정시에 일반적으로 사용하지 않는다고 했었죠.

저도 이 개념을 색보정할 때 많이 사용하는 것은 아닙니다만

Chroma Blur와 같이 일종의 숨김 맛 같은 기능을 쓸 수 있기 때문에

상황에 따라서 의외로 쓸모가 많아질 수도 있습니다.

그 외에 YUV를 이용해서 하는 몇 가지 노하우가 있는데요.

기회가 되는대로 한번 써보겠습니다.

 

 

제가 사용하는 소스의 출처는 제가 촬영하고 작업한 영상 외에 각 카메라 홈페이지에서

제공하는 Sample Footage입니다.

http://www.red.com/sample-r3d-files

http://www.arri.com/camera/alexa/learn/alexa_sample_footage/

https://www.blackmagicdesign.com/kr

블랙매직 디자인 사의 영상은 카메라 출시했을 때 홈페이지에 올라왔던 소스인데 지금은 안 올라와 있네요.



All images/words © the artist(s) and organization(s)

☆Donation: https://www.paypal.com/paypalme2/artlecture

김성래_영상제작자

네이버 블로그 : https://blog.naver.com/team_csr

네이버 포스트 : http://post.naver.com/team_csr

카카오 브런치 : https://brunch.co.kr/@ahisfy