2018년 9월 28일 금요일

PSF 와 Interlace의 차이점

* PSF( Progressive Segmented frame ) 와 Interlace의 차이점.

앞장에서 Interlace와 Progressive의 차이점에 대한 설명을 본 사람들은 대충 Interlace의 형태에 대해서 어느정도 이제 감이 잡힐것이다.
그러면 결론적으로 Interlace와 PSF 와의 포맷자체의 차이가 있냐라고 하면,

정답은 " 없다 " 이다.

그럼 두 Format의 차이가 어디서 있냐라고 하면 원영상이 어떤 영상이냐를 가지고 말할수 있다.
Interlace 형태의 ODD, EVEN 으로 나뉘어져 있는 영상은 우리가 Data 양을 줄이거나 Video Format형태에서 만들어진 인위적인 Format이지 원래부터 Interlace 영상자체라는건 없다고 생각하면 된다.
우리가 눈으로 보고 있는 모든 영상 자체는 Progressive와 같이 위에서 아래로 다 이어져 있는 영상이고, 이걸 카메라로 찍을때도 하나의 전체적인 영상이지 처음부터 ODD,EVEN으로 나뉘어져 있는 자연의 영상은 없다는 것이다.

그럼, PSF 는 원영상이 어떤 영상이냐고 하면..

24Psf Format이라고 하면 원 영상이 24 Frame이고, 이 24Frame을 48i 로 만든 Format인것이다.
즉 하나의 Progressive 영상자체를 2개의 segment (interlace에서는 field) 로 나누어 놓은것이다.

그럼, 그림을 보면서 한번 Psf 와 Interlace 의 차이를 좀더 살펴보자.



그림 1 은 하나의 Frame 에서 홀수, 짝수 줄을 나누어서  즉 (1,3,5,...1079) , (2,4,6...1080) 줄로 나눈 영상을 홀수는 Segment A  , 짝수는 Segment B 로 나누어서 48i 형태로 보내주고 있는것이다.




그림 3은 60i 의 Interlace를 보여주고 있다.
홀수(Field 1) , 짝수(Field 2) 가 하나의 Frame에서 나온것이 아니고, 2개의 Frame에서 나온것이다.

이 차이점은 실제로 굉장히 중요한 포인트중에 하나이다.
위 2개의 영상에서는 원영상도 같고, PSF 와 Interlace 로 변환된 영상에서도 Frame 숫자만 틀리지 모든 영상 데이타 자체가 동일하게 보인다.

하지만 아래의 영상을 살펴보자.


그림 2는 매 Frame마다 White , Black 으로 바뀌는 영상에서 PSF 로 바뀐 영상을 보여주고 있다.
이 부분에 대해서는 이제 이해하는데 있어서 문제가 없을것이다.
그럼, 아래 영상을 보자.




그림 4 는 똑같이 매 Frame마다 White, Black 의 영상을 Interlace의 형태로 바뀐모습을 보여주고 있다.

여기서 중요한 포인트가 그림 3 과 그림 4를 비교해보자.
원 영상이 분명히 틀리지만 Interlace로 변환된 Data는 똑같다.

하지만 PSF 는 원영상이 틀린거에 대한 변환된 Data도 다르다는것을 보여주고 있다.

즉, PSF는 영상을 다시 Progressive 로 바꾸는 과정에서 두개의 Segment 를 합치기만 하면 원래의 동일한 영상을 복원할수 있다.
하지만 Interlace는 원영상은 분명히 틀리지만 Interlace 영상 자체를 Progressive로 바꿀때 100% 동일하게 바꾸는데 있어서 생기는 문제점이 분명 생긴다.
이러한 문제때문에 Interlace를 Progressive로 변환하는 과정이 복잡하고, 매우 어렵다는것을 어느정도 가늠하게 된다.
 
FPGA관련 정보, 영상 신호 이론, 하드웨어 관련 더 많은 정보는 하기 네이버 블로그에 있습니다. https://blog.naver.com/zaszas2345

VHDL이란 언어에 대한 소개

여기에 있는 내용은 VHDL 이란 언어에 대해서 간략히 설명을 해 놓은것이다.
시중에 많은 책들이 나와있지만 어떤 책을 사야할지 모르는 사람들은 여기에 있는 내용을 한번정도 공부하고 나면 아마 다른 책을 구입하는데 있어서 많은 도움이 될거라 생각한다.
또는 본인이 VHDL을 공부하고 싶다라고 한번쯤 마음을 먹었다면 여기의 내용을 가지고 공부를 한번정도 하기에는 부족함이 없다고 생각한다.
VHDL을 처음 접하는 사람들 위주로 설명을 해놨지만 여기에 있는 내용은 누구나 알고 있어야 하는 기본적인것이기 때문에 가벼운 마음으로 읽어보는것도 괜찮다.


여기에 있는 내용은 누구나 다운로드 해서 볼수 있지만 그 외의 용도로 사용될때는 출처를 명시하고 사전 허락을 받아야만 합니다.

다운로드 파일은 아래 네이버 블로그  FPGA관련항목 VHDL언어에  있음.
 
네이버 블로그 : https://blog.naver.com/zaszas2345

Vivado 2018.2사용법

그동안 Altera와 Quartus만 사용을 해오다 요즘 Xilinx를 공부하면서 Vivado 2018.2 툴을 사용하고 있다. Vivado툴을 사용하면서 기본적으로 설치부터 프로젝트 만들기등을 문서로 작업을 해보았다.
단순 툴적인 부분에 있어서 기본적인 내용때문에 처음 접근이 대체로 어려운데 여기있는 문서정도면
본인이 프로젝트를 만들고 사용하는데는 크게 불편함이 없을듯 하고 그 외의 기능들은 나도 지속
사용하면서 업데이트 하도록 하겠다.


현재는 총 5개의 파일이 있다.


1. VIVADO 설치 방법.
2. VIVADO 프로젝트 만들기.
3. Bit파일과 MCS파일 만들고 다운로드 하기.
4. PLL IP만들기.
5. RAM IP만들기.


위 순서대로 보는게 좋고, 문서만 보는것보다는 실제 Vivado 툴을 실행해서 같이 보면서 하면 좋다.


이외 기능이나 DDR IP만들기등은 본인도 공부하면서 준비가 되면 올릴수 있도록 하겠다.

여기에 있는 내용은 누구나 다운로드 해서 볼수 있지만 그 외의 용도로 사용될때는 출처를 명시하고 사전 허락을 받아야만 합니다.
 
다운로드 파일은 아래 네이버 블로그  FPGA관련항목 VIVADO사용법에 있음.
 
네이버 블로그 : https://blog.naver.com/zaszas2345

Quartus 사용법.

여기에 있는 내용은 QuartusII 9.1 을 가지고 간단한 프로젝트를 만들어서 컴파일하고, 시뮬레이션, 다운로드까지 하는 부분과 Quartus의 몇가지 기능들을 나누어서 문서로 만들어 놓았다.
QuartusII 를 처음 접하는 사람들위주로 프로젝트를 처음부터 만들고 다운로드하는 과정을 Step별로 해놓았기 때문에 따라하다보면 크게 어렵지 않게 프로젝트를 만들수 있을것이라고 생각한다.
아주 기본적인 부분에 대한 설명이고, 실제로 사용하는데 있어서 꼭 필요한 부분만을 설명했다.
실제로 본인이 업무를 할때 하는 방법대로 해놓았기 때문에 사람마다 프로젝트를 만드는데 있어서 약간의 차이가 있기때문에 여기에 있는 기본을 토대로 자기 스타일대로 일을 하면 된다.

현재는 총 6개의 파일이 있다.
그 중에 5번에 해당되는 내용은 Quartus가 버젼이 올라가면서 10.0 이 넘어가는 버젼부터 자체 시뮬레이션 기능이 빠졌기때문에 QuartusII 11 버젼과 ModelSim(모델심)을 이용하여 시뮬레이션하는 방법에 대해서 설명해 놓았다.

1. Quartus II 9.1 compiler.pdf
2. Quartus II 9.1 시뮬레이션.pdf
3. Quartus II 다운로드.pdf

위 내용은 서로 이어지는 부분이기때문에 순서대로 보는것이 좋다.

그외 Quartus의 기능들에 대해서는 문서를 따로 하나씩 만들어서 올릴예정이다.

4. QuartusII 에서 VHDL파일 옮기고 컴파일하기.pdf
5. QuartusII 11 & ModelSim(모델심)으로 시뮬레이션. zip
(설명 17에서 경로 설정이 ModelSim 이 아니고, ModelSim-Altera입니다. 설명 19 처럼 하면 됨.)
6. VHDL과 Verilog 언어 같이 사용하기.pdf

7. Quartus12.1 Programmer User Manual
 (Quartus Tool에서 POF, JIC, SOF 파일등 다운로드만 사용할때는 Quartus 다운로드
  전용 설치파일만 설치해서 사용하면 편리하다.)

여기에 있는 내용은 누구나 다운로드 해서 볼수 있지만 그 외의 용도로 사용될때는 출처를 명시하고 사전 허락을 받아야만 합니다.
 
다운로드 파일은 아래 네이버 블로그  FPGA관련항목 Quartus 사용법에 있음.
네이버 블로그 : https://blog.naver.com/zaszas2345

HD-SDI 영상 캡쳐보드

이번에 소개할 보드는


HD-SDI 신호 In/Out과 , Altera FPGA CycloneIV, DDR 메모리를 이용하여 영상 캡쳐를 할수 있는
보드이다.
예전 SDI영상 신호를 받아 USB3.0으로 전송하는 보드를 이용하여 구현을 해보았다.



영상 캡쳐보드는 말 그대로 현재 보고 있는 영상 신호를 특정 KEY나 이벤트를 받아서 메모리에 저장하는것이다.
동영상을 저장하는것은 아니고 캡쳐하고자 하는 현재 이미지만 저장이 가능하고 총 4Frame까지 저장을할수 있다.


사용자가 원하는 상태에 따라서 1Frame씩 저장하고, 그 Frame을 보여주거나 2Frame을 저장하고
2Frame을 동시에 보여주거나, 4Frame을 저장하고 4Frame을 동시에 보여줄수 있다.



위 그림은 기본적인 보드 블럭도이다.  SDI영상 입력, DDR, 영상 출력으로 구성되어있다.



만약 캡쳐된 영상이 위 영상과 같이 총 4개의 영상이 있다면 아래와 같이 4개나 2개 또는 1개 이미지
영상을 선택해서 볼수 있다.



아래 이미지는 실제로 4번의 영상 캡쳐를 하여 캡쳐된 4개의 영상을 한번에 보여주고 있는 이미지이다.



FPGA관련 정보, 영상 신호 이론, 하드웨어 관련 더 많은 정보는 하기 네이버 블로그에 있습니다. https://blog.naver.com/zaszas2345

Push On/Off Controller

이번 보드는 우리가 단순하게 Push 스위치(SW)만 가지고 어떤 On/Off 기능이나 전원 On/Off 또는 High, Low 값을 주고자 할때 유용하게 사용할수 있는 칩을 가지고 만들어 보았다.



위에 보이는 조그마한 8PIN 칩이 외부 스위치를 받아 동작하는 칩이다.




보통 전원 On/Off , High/Low값을 주고자 할때 몇가지 방법이 있는데 조그마한 MCU를 사용하여 프로그램으로 동작시키거나, 기계식 접점을 이용하여 On/Off시키는 방법들이 있다.


그러나 사용환경이나 상태에 따라서 위 방법을 쓰기 애매할때 전원만 인가하고 PushButton 스위치를 달아 사용할수 있는 Linear사의 LTC2955 칩을 사용하여 구현하였다.


LTC2955는 Max 36V 까지 전원입력을 받고, ESD 에 강하며 몇가지 저항이나 캐피시터를 이용하여 OFF 스위치 눌르는 시간이나 초기값 설정등을 할수 있어 유용하다.


2가지 LTC2955-1 , -2  타입이 있는데 한가지는 High/Low를 인가하여 DC/DC Converter등을 컨트롤하기위한 것이고, 또한가지는 FET를 주로 컨트롤할때 사용한다.


내가 사용한 칩은 LTC2955-1 을 이용하여 LED를 동작시키고, High 전류값이 작기때문에 Buffer를 이용하여 TR,FET를 추가하여 메인전원을 인가하는 용도로 활용하여 사용하였다.


아래는 LED를 On/Off 하는 회로이다. High값 전류값이 작기때문에 만약 NPN TR을 이용할경우 Buffer를 추가하여야 한다.



FPGA관련 정보, 영상 신호 이론, 하드웨어 관련 더 많은 정보는 하기 네이버 블로그에 있습니다. https://blog.naver.com/zaszas2345

CVBS 패턴기

이번 보드는 지금은 거의 사용이 중단된 NTSC 패턴제너레이터이다.


Composite Patten , CVBS Patten, 컴포지트 패턴기 모두 동일한 말인데 여기서 NTSC 패턴이라고 이야기 한것은 컴포지트는 NTSC, PAL(유럽사용) 2가지 포맷이 있는데  PAL은 지원을 안하기 때문이다.


하지만 흔히 NTSC라고 하면 국내에서는 NTSC만 사용을 하기 때문에 컴포지트(CVBS, Composite)라고도 하고 주로 미주, 아시아, 한국에서 사용하는 SD급의 ANALOG신호이다.


신호의 형태는 케이블 신호를 하나로 휘도 와 칼라를 모두 볼수 있다.


NTSC에 대한 개념은 "영상신호에 대해서" => CVBS 란을 보면 좀더 자세하게 설명이
되어있다.


 

보드의 형태는 매우 간단하고, 전원과 BNC 출력단자 하나이다.


바로위에 보이는 KEY 버튼을 누를때마다 BNC단자로 컴포지트(NTSC) 패턴이 바뀌면서 출력이 되고,
7개의 CVBS Patten이 로테이션 형태로 출력이 된다.


아래는 출력되는 패턴을 보여주고 있다.




왼쪽부터 75% Color Bar 를 보여주고, Color Grey, Freq , 100% White, RED, GREEN, BLUE를 보여주고 있다.

FPGA관련 정보, 영상 신호 이론, 하드웨어 관련 더 많은 정보는 하기 네이버 블로그에 있습니다. https://blog.naver.com/zaszas2345

SDI & CVBS - VectorScope 계측기


이번 보드는 가장 최근에 작업한 비디오 계측기능을 구현한 보드이다.
비디오 CVBS(NTSC,PAL)와 같은 영상이나 HD-SDI 와 같은 비디오 영상계측기
의 경우 고가이거나 현재는 구하기 힘든 제품들이 많아서 계측기능중에
웨이브폼(Waveform), 벡터스코프(Vectorscope)를 볼수 있는 보드를 만들어봤다. 
 

보드에 대해서 간단히 소개를 하면 아래와 같다.


1. 입력은 CVBS 와 HD-SDI 신호를 받는다.
2. DC +12V입력을 받아서 FPGA로 패널 영상을 만들어서 7인치 패널을 동작시킨다.
3. 7인치 패널에 Display하는 영상에 CVBS , HD-SDI 의 웨이브폼(Waveform) 과 벡터스코프(Vectorscope) 영상을 구현한다.
4. 패널은 1024 x 600 해상도의 AUO패널을 사용하였고, Waveform - Vectorscope는 512 x 512 해상도로 구현하여 패널 정중앙에 Display해준다.
5. FPGA구현 프로그램을 2개로 구현해서 CVBS또는 HD-SDI로만 결정해서 볼수 있다.


보드의 블럭도를 살펴보겠다.



위 블럭도에서 보는바와 같이 SDI신호는 FPGA의 SERDES블럭을 이용하여
동작을 시켰고, CVBS(컴포지트)경우는 CVBS to TTL을 만들어줄수 있는
Decoder를 따로 사용하여 Y/C 20bit로 데이타를 받아서 처리하였다.



 위 사진은 실제 블럭도에 해당하는 보드사진이다.

위 사진은 보드와 패널을 결합하였을때를 보여주는 사진이다.
AUO 7인치 패널로 연결되는 LVDS쪽 연결이 FPC 케이블로 되어있어서
연결하기가 쉽지않게 되어있다.



아래 사진들은 CVBS와 HD-SDI 입력을 넣었을때 실제로 동작하는
WaveForm, Vector 를 보여주고 있다.
1) CVBS NTSC 입력을 넣고 Vectorscope동작.


2) HD-SDI 입력시 WaveForm동작.


3) HD-SDI 입력시 VectorScope동작.

FPGA관련 정보, 영상 신호 이론, 하드웨어 관련 더 많은 정보는 하기 네이버 블로그에 있습니다. https://blog.naver.com/zaszas2345




HD-SDI 란?

1.    HD-SDI (Serial digital interface) Standard


SDI 영상신호는 BNC동축케이블을 이용하여 영상정보와,Audio data,다양한 digital 정보를 하나의 선으로 전송할수 있는 신호이다.
미국영화,텔레비전 기술인협회인 SMPTE라는곳에서 여러 전문가들이 모여 국제조직, 영화,텔레비전 기술에 관한 각종 국제 권장 기준을 만들고, 여기서 SDI 라는 영상신호에 대한 규격에 대해서 기준을 만들어 놓았기 때문에 전세계적으로 이 협회의 SMPTE라는 규격을 따르게 되어있다.
여기서는 어떤 규격이나 기준을 만들게 되면 SMPTE292M, SMPTE159M 형태의 협회이름과 뒤에 숫자를 붙여 만들게 되고, 보통 숫자가 높을수록 최근에 만든 규격이 된다.
기존 SDI영상신호는 SD디지털방송,HD디지털방송,영화산업쪽에서 주로 사용하던 영상신호였지만 현재는 장거리전송과 고해상도를 케이블하나로 데이터 손실없이 보낼수있는 장점을 가지고, CCTV,의료용내시경카메라,큰 비행기내에서 주로 HD영상을 전송하는데 많이 사용되고 있고, 그 범위는 점차 특수시장에서 사용하던 것을 민수용 시장으로 점차 넓혀가고 있다.
이러한 SDI에 대해서 어떤 종류의 SDI영상들이 있고, 각각에 대한 신호는 어떠한 형태로 존재하는지에 대해서 한번 살펴보기로 하겠다.
 
SDI는 시리얼로 디지털신호를 보낸다는 정의이고, 실제 해상도와 Video Format에 따라서 여러 SDI 신호들이 있다.

표1-1


1-1을 보면 해상도와 bitrates에 따라서 몇가지 SMPTE 규격으로 나뉜다. 각각에 대해서 간략히 설명을 하면 다음과 같다.

SMPTE259M - 기존 Analog 형태의 CVBS,S-Video,Component, YPbPr, YUV에서 지원하던 NTSC,PAL형태의 720x480i, 720x576i의 Video Signal 을 Digital로 바꾸어 놓은 신호이다.


SMPTE344M - 기존 Analog형태의 DVD플레이어등에서 주로 출력으로 나오는 비디오 형태인 Component, YPbPr에서 지원하던 720x480P, 720x576P의 Video Signal 을 Digital로 바꾸어 놓은

신호이다.

SMPTE292M - 기존 Analog형태의 Component, YPbPr에서 지원하던 HD(1280x720,1920x1080)해상도를 Digital로 바꾸어 놓은 신호이다.


SMPTE372M -  SMPTE292M을 두개를 사용하여 Dual Link HD-SDI라고도 한다.

SMPTE292M에서 최대로 지원할수 있는 Bitrate는 1.485Gbit/s인데, 더 높은 Bitrate를 지원하기 위해서 만들어진 신호이다.
그렇다고 해서 해상도 자체가 더 올라가는 것은 아니고, 해상도는 같지만 기존 YCbCr 4:2:2형태의 신호를 YCbCr 4:4:4형태로 데이터 양을 좀더 많이 보냄으로 인해서 영상의 퀄리티를 좀더 높이는 형식이다. 그리고, 3D 영상을 만들때도 Reft, Right영상을 각각 보낼수 있게 하기 위해서도 필요하다.

SMPTE424M -  SMPTE372M에서 Dual Link로 보내던 HD-SDI신호를 Single Link로 보내는 방식이다. 1.485Gbit/s의 두배인 2.970Gbit/s를 동축케이블 하나로 보낼수 있게 된것이고, 실제 지원하는 Format은 372M이나 424M이나 동일하게 지원할 수가 있고, 다만 케이블을 하나로 전송하느냐 두개로 전송하느냐의 차이이다.

SMPTE292M이 나오고, 3G인 424M이 나오기까지 시간이 조금 걸리는 과도기 기간에 SMPTE372M이 나온것이다.
그렇기 때문에 실제로는 SMPTE424M이 있다면 굳이 SMPTE372M은 있을 이유가 없지만,기존에  나온 장비들간의 호환성 문제로 인해서 앞으로도 사용을 해야 한다.


다음은 위에서 언급된 Bps에 대해서 잠시 설명을 하면 다음과 같다.

Bitrate = H(total size) * V(total size) * Data Bit *  Frame Rate(1초동안) 를 해주면 된다.

SD-SDI : NTSC - 858*525*20bit*29.97F = 269,999,730
                PAL    - 864*625*20bit*25F = 270,000,000 = 270Mbit/s

HD-SDI : 2200*1125*20bit*29.97F = 1,483,515,000
                2200*1125*20bit*30F = 1,485,000,000  = 1.485Gbit/s

위에 있는 계산식을 보면 실제로 1초동안 보낼수 있는 Data의 bit양을 가지고, 270Mbit/s,
1.485Gbit/s 로 표시하는 것을 알수 있다.




2.    SDI(Serial digital interface)가 만들어지는과정.
 
우리가 사용하고 있는 SD-SDI,HD-SDI 는 비디오 영상의 시리얼로 전송하는 규격이고,
제로 SDI신호를 출력하거나 받아서 처리하는부분은 Serial이 아니게 된다.
 
아래는 SMPTE259M이 어떤 형태로 전송되는지를 보여준다.



그림1-1


위 그림 1-1 27Mhz CLK에 동기화된 10bit Video Data SDI 인코더를 거쳐 SMPTE259M형태로 전송이 되고, 다시 SDI 디코더로 받아 10Bit Data로 변화는 과정을 보여주고 있다. 이를 보면 SDI자체는 신호를 다른곳으로 전송시키기 위한 하나의 규격이고, 실제 이를 처리하는 보드쪽에서 Serial to Parallel 로 변환된 디지털 값을 가지고 처리를 하게 된다. 그렇기 때문에 SDI를 사용한다고 해서 모든 처리가 SDI형태로 처리가 되는 것이 아니라 입력과, 출력쪽만 SDI형태이고, 나머지는 모두 일반 Digital Parallel 데이터를 가지고 사용하는것이다.
 
그리고, 기존의 Analog 신호에서 Digital로 바뀌는 형태를 보면 아래 그림과 같다.

그림1-2

그림 1-2을 보면 Analog Video에서 Active 시작점을 Digital 에서는 SAV라고 명시하고
Active영역이 끝나는 시점을 EAV라고 명시해놓았다.
그리고, SAV EAV의 표시는 3FF 000 000 XYZ 로 구분을 지어놓았기 때문에 실제로 Active영역에서는 어떠한 Video Data 값도 3FF 000 을 가질수가 없다.
여기에 대한 설명은 블로그 메뉴의 방송,영상 용어에서 Luminance(밝기),Chrominance(색차) 에 대한 설명을 참고하면 된다.
 
 
3.    SDI(Serial digital interface) Data형태
 
SDI는 비디오 Data에 대해서 RGB,YCbCr형태를 가지고 있다. 이 외에 YCbCrA,GBRA,XYZ형태의 Data도 있지만 이 부분은 보편적으로 사용하고 있는부분은 아니기 때문에 설명하지 않겠다.
 
SDI에대한 Data형태를 보면 다음과 같다.

표1-2

위에서 보면 SD-SDI, HD-SDI 는 오직 YCbCr(4:2:2) 형태의 Data Format만 지원하고, Dual Link, 3G SDI로 가면서 YCbCr(4:4:4),RGB(4:4:4) 가 지원되는 것을 알수있다.
4:2:2에서 4:4:4로 가게 되면 Y(밝기)에 대한 것은 변화가 없고, 오직 C (색상) 에 대한것만 변화가 생긴다. 원래 처음부터는 RGB 4:4:4라는 영상을 가지고 있다고 생각하면 되고, 이를 데이터양을 줄여서 좀더 편하게 보내기 위해서 4:2:2방식이 생겨난것이다. 그런데, Y에 대한 값을 빼주다 보니 우리의 눈에 민감하게 눈에 띄지만 Color값을 빼주는거에 대해서는 우리눈에 그리 크게 문제가 되지 않아서 Color에 대한 값을 빼주게 된것이다.
하지만 이 4:2:2는 전송을 할 때 4:2:2방식이 되는것이고, 이 영상 데이터가 우리눈에 보여질때는 다시 4:4:4방식으로 변화시킨다음 보여지게 된다.
이때 없어진 데이터를 다시 복원했을 때 기존에 사라졌던 값과 그리 많이 차이가 나지 않으면서 우리 눈에 그리 크게 거슬리지 않게 보이게 되는것이다.



여기서 이야기하는 4:4:44:2:2의 관계를 한번 살펴보기로 하자.

그림1-3

그림1-3에서 맨위에 있는 RGB 4:4:4 가 가장 맨처음에 있는 원신호형태가 된다.
여기서 RGBYCbCr형태로 바꾼 것이 YCbCr 4:4:4형태이고 여기서 Cb,Cr을 한번씩 빼주면서 데이타 한 line을 없애준 것이 4:2:2가 된것이다. 여기서 RGB,YCbCr 4:4:4Dual-Link 3G Single Link에서 지원이 되는 포맷이고, YCbCr 4:2:21.5G HD-SDI, 270Mbps SD-SDI에서 지원되는 포멧이다.


 위 수식은 RGB DataYCbCr로 변환해줄때의 변환식이다. 영상 데이터가 HD하고 SD하고 변환할 때 수식값이 틀리게 된다.
 
 


4.    SDI(Serial digital interface)Format

 
표1-3

표1-4

위에서 보여주고 있는 표1-3과1-4는 SMPTE292M (1920x1080,1280x720) 비디오 Format에 대한 종류를 보여주고 있다.
위에 있는 Format모두 똑 같은 Bitrate 1.5Gbps/s 를 가지고 있는데, 어떻게 해서 그렇게 나오는지를  위에서 설명한 Bitrate 계산하는법을 참고하면 되겠다.


표1-5

표1-6

위 표1-5와 표1-6SMPTE에 따른 Data FormatLevelB에 따라서 만들어질수 있는 Format을 차트로 보여주고 있다.
 
여기까지 SDI에 대한 설명을 마치기로 하겠다.
 
FPGA관련 정보, 영상 신호 이론, 하드웨어 관련 더 많은 정보는 하기 네이버 블로그에 있습니다. https://blog.naver.com/zaszas2345

Video 영상 신호에 대해서..

* 비디오 영상신호 개념

오늘날 우리가 보고있는 영상정보는 수많은 곳에서 목격이 되고있다. 예전에는 가정에서 흑백 TV만을 보던 시절에서 어느날 PC와 연결해서 볼수 있는 모니터를 이용해 PC환경을 볼수 있는것부터 해서 길거리를 가다보면 큰 LED 전광판을 통한 수많은 광고매체 지금은 지하철에서 흔히 목격되고 있는 대형모니터를 통한 길안내 시스템 편의점에서도 볼수 있는 광고용 모니터, DVD 영화, 캠코더 등 많은 모니터와 Display장비를 통해서 수많은 영상정보를 보고 있는데, 이러한 영상신호에 대한 간단한 개념과 용어적인 정리를 잡기로 해보자.
 
먼저 영상자체가 우리눈에 보이기까지 살펴보자.


그림1-1

그림1-1 은 자연의 RGB색의 공간을 카메라로 촬영하여 중간에 NTSC,PAL 과 같은 신호로 변환하여 마지막에는 RGB 모니터를 통하여 우리눈에 보여지는 과정을 보여주고있다.



그림1-2

그림1-2 는 자연의 RGB색의 공간을 카메라로 촬영하여 중간에 SDI(Serial Digital Interface)라는 Digital Signal로 변환하여 마지막에는 RGB모니터롤 통하여 우리눈에 보여지는 과정을 보여주고 있다.
 
이 과정에서 살펴보면 자연의 색공간은 RGB Analog신호로 표현이 되어지고, Analog공간을 카메라로 담아 중간단계에 Digital 이나 Analog로 전송할 수가 있다. 그리고, 마지막에는 다시 Analog CRT 모니터로 그 동안 보아왔다. 하지만 요즘은 PDP,LCD,LED Panel을 통해서 마지막에 우리눈에 보여지는 모니터 자체가 Digital로 바뀌게 되었고, 색의 표현력은 Analog보다 떨어지기는 하지만 많은 기술이 발전하면서 이제 어느정도 CRT모니터의 색표현까지 근접해있는 것은 사실이다.
그리고, 이 중간단계의 영상정보를 전송하는 과정에서 여러 Video신호들이 생겨지게 되었다.
우리가 보고 있는 자연의 공간을 전송하기 위해서 만들어진 CVBS, S-Video, YPbPr, RGB, SD-SDI, HD-SDI Video 영상신호부터 해서, PC기반으로 인위적으로 만들어진 Grapic 영상신호를 전송하기 위한 DVI,VGA,Display Port 신호, 게임이나 영화 컨텍츠를 DVD에 저장하여 Player에서 Play하여 모니터로 전송하기 위한 HDMI 신호들이 다양하게 만들어진것이다.



그림1-3


그림 1-3을 보면 Analog 자연의 공간을 카메라로 촬영하여 중간단계에 SDI로 전송하는 과정을 블록으로 보여주고 있다. 여기서 마지막단에 보면 D/A 를 거쳐 Analog RGB CRT로 보던 것을 현재는 거의 대부분이 Analog로 변환없이 중간단계로 전송되어온 Data자체를 가지고 Digital monitol로 보고있는것이다.
 
여기서 Analog신호와 Digital신호가 어떻게 구분되어 있는지를 살펴보자.
 
* Analog 신호의 종류
 
CVBS     : 밝기를 나타내는 휘도신호와 색을 나타내는 색차신호가 합쳐진 신호이다.
보통 동축케이블이나 RCA케이블을 이용하여 단일 케이블로 전송한다.
 
S-Video : CVBS에서 밝기와 색에 대한 신호를 분리하여 밝기에 대한 색은 Y 로 색깔에
  대한 색은 C 로 구분하여 Y/C 두개의 영상을 단일 케이블안에 2가닥의 케이블
  을 삽입하여 S-Video케이블로 전송한다.
 
YPbPr  : S-Video에서 색차신호 C PbPr 두개의 영상신호로 나누어놓은것이라 생각하면
             된다.
             Pb는 파랑과 밝기신호의 차 Pb = 0.564(B-Y)
             Pr은 레드와 밝기신호의 차 Pr = 0.714(R-Y) 를 나타내고, RCA잭이나 동축 케이
             3개를 가지고 전송한다.
       
YUV  :   주로 PAL , SECAM 이라는 유럽향 영상신호 규격에서 사용하는 색표현법이다.
YPbPr 과 마찬가지이고, 색에 대한 표현값만 Pb,Pr 과 약간 차이가 있다.
U는 파랑과 밝기신호의 차 Pb = 0.493(B-Y)
             V는 레드와 밝기신호의 차 Pr = 0.877(R-Y) 로 나타낸다.
 
RGB   :  영상신호 자체를 RGB 삼원색을 가지고 자연의 색을 표현하는 방식이고, 가장 기본이
             되는 색 표현법이다.
             YPbPr,YUV와 마찬가지로 동축케이블,RCA 3개를 가지고 전송한다.
 
VGA   : 주로 PC 그래픽카드 출력으로 PC Grapic 영상을 보고자 만들어졌다.
            구성은 RGB H,V 라고 5개의 신호로 구성되어있다.
 
* Digital 신호의 종류
 
SD-SDI  : CVBS,S-Video로 사용되던 해상도의 Analog영상신호가 Digital로 바뀐 영상신
호이다.
 
HD-SDI  : YPbPr,RGB 에서 사용되던 HD Analog영상신호가 Digital로 바뀐신호이다.
 
DVI        : VGA로 사용되던 그래픽 신호가 Digital로 바뀐신호이다.
 
HDMI     : DVD영화나 게임 Player가 출력으로 내보내주는 영상신호이다. Digital 컨텐츠
                 장비가 나오고 나서 나온 영상 신호이다.
 
Display Port : DVI에서 좀더 고해상도의 영상과 좀더 폭넓은 DATA를 전송하기 위해서
                       나온 주로 그래픽카드출력용으로 나온 영상 신호이다.
 
여기까지 영상신호에 대해서 간략히 알아봤고, 좀더 자세한 부분은 각각의 영상신호를 설명하는 부분에서 설명하기로 하겠다.
 
 
FPGA관련 정보, 영상 신호 이론, 하드웨어 관련 더 많은 정보는 하기 네이버 블로그에 있습니다. https://blog.naver.com/zaszas2345

CVBS란?

1. CVBS(Composite) Standard
 
CVBS는 컴포지트,Composite 모두 동일한 말이고, 밝기를 나타내는 휘도 신호와 Color
나타내는 색차신호가 합쳐진 Analog 신호를 말한다.
Video Signal 인터페이스는 BNC 케이블이나 RCA 케이블을 이용하여 케이블 하나로
연결을 시켜준다.
지금은 HD Digital Video를 방송에서 사용하지만 불과 몇년전까지만 하더라도 30년
넘게 우리 나라에서 사용해왔던 방송신호와 여러 영상장비에서 나오는 신호가 바로
 CVBS였다.
 
이 장에서는 CVBS에 대한 몇가지 Format과 CVBS신호에 대한 개념 정리를 하고자
한다.
 
 
표 1-1

위에 있는 표1-1은 현재 CVBS에 대한 여러 Format을 나열을 해놓았다.
지금은 16:9 의 화면 비율을 가진 1920x1080 HD영상신호를 사용하지만 CVBS는 4:3 비율을 갖는 720x480(NTSC),720x576(PAL) 영상을 사용한다.
실제로는 컨텐츠에 따라서 Active 영역이 720x480,720x486 형태로 조금씩 차이가 있다. 그리고, 원 영상이 720x480 이지만 우리눈에 모니터를 이용해서 볼때는 모니터에서 양쪽,위아래 영상을 많이 잘라서 보여준다. 그래서, 4:3비율로 보여지게끔 보여준다.

표1-1에 있는 각각의 Format은 나라마다 사용하는 Format이 다르고, 거기에 따른 미세한 차이가 있다.  나라마다 사용하는 Format에 대해서 알아보면..

한국 , 미국 : NTSC-M
일본          : NTSC-J
유럽          : PAL-B.D.G.H.I (그냥 PAL이라고 하면 이 Format을 이야기한다.)
브라질       : PAL-M
파라과이,우루과이,아르헨티나 : PAL-N
프랑스       : SECAM

으로 대표적으로 나눌수가 있다.

우리가 흔히 TV영상 신호에서 볼수 있는 Color Bar에 대한 컴포지트 영상 신호를 한번 확인해보면 아래와 같다.



                                                                 그림 1-1

그림 1-1 을 보면 왼쪽에는 Color-Bar 영상화면을 오른쪽에는 실제 Signal 파형을 보여주고 있다. 오른쪽에 있는 Signal 파형이 케이블을 통해서 장비에 연결이 되고 우리눈에 보여지는것이다. 오른쪽 그림은 우리눈에 보여지는 화면의 한 Line을 보여주고있다.

그림 1-1 의 파형구간을 한번 살펴보면 총 3단계의 구간으로 나눌수가 있다.

a (blank 영역) : 우리 눈에 보여지는 화면 영상은 왼쪽에서 오른쪽으로 한 라인씩
위 그림 1.1의  오른쪽 신호가 지속적으로 들어오는데 한 Line의 영상신호와 다음 Line의
영상  신호의 구간을 나누어서 표시해준다. 이 부분을 우리는 Sync 라는 말로도
표현한다.

b (SC 영역) :     컴포지트 영상에서는 색차신호와 휘도신호가 같이 들어오는데, 색차신호의 색
                        을 나타낼때 이 영역에 있는 Subcarrier Frequency와 Color에 해당하는 신호
                        간의 위상차로 Color Data를 뽑아낸다. 이 때 필요한 Subcarrier 가 있는 영역
                        이다.

c (active영역) : 화면을 볼때 우리 눈에 보이는 영상 Data가 이 구간에 존재한다.


2. Subcarrier에 대해서

Subcarrier는 표 1-1에 있는것과 같이 각 Format에 따라서 주파수가 조금씩 차이가 있다.
이 Subcarrier에 대해서 좀더 살펴보면...




                                           그림 1-2

그림 1-2는 NTSC-M의 subcarrier영역을 확대해놓은 것이 아래그림이다.
이 확대된 파형과 Color의 위상차를 가지고, 우리가 모니터상에서 보여지는 Color Data가 만들어진다. 만약 Color Data가 없다면 굳이 subcarrier자체가 필요하진 않다.
즉, 예전 흑백 TV시절에서는 Color가 존재하지 않았기 때문에 subcarrier가 필요가 없었다.
이 subcarrier의 주파수를 subcarrier frequency 4.43Mhz, 3.576Mhz 라고 이야기 한다.
우리가 가끔 Hue의 값을 이야기하는데 여기서의 이 Hue 는 실제로 subcarrier와 Color의 위상차를 바꿔주면서 Color값을 바꿔주는것을 말한다.




                           그림 1-3

그림 1-3은 그림 1-2에서 Color Data를 뺀 신호라고 생각하면 된다.
예전 흑백 TV시절이나 칼라와 휘도신호가 나뉘어진 S-Video에서 Y신호가 여기에 해당이 된다.
이 파형을 보면 신호의 높낮이로 화면의 밝기만을 나타낼수 있고, Color 영상은 존재하지 않는것을 알수 있다.


 

3. NTSC-M , NTSC-J 의 차이와 IRE 에 대해서

한국과 미국에서 사용하는 CVBS방식은 NTSC-M 의 방식을 사용하고 있고, 일본은 자기네 나라에서만 사용하는 NTSC-J 의 방식을 사용하고 있다.
두가지 방식의 차이는 딱 하나만 틀린데, 바로 Black Level이 틀리다.
예를들어 Digital 값을 0~255 까지라고 한다면 제일 낮은 Black을 0이라고 한다면 우리나라는 실제로는 16에 해당되는 Black을 제일 낮은 Black으로 보고, 일본은 0 으로 본다.

 NTSC에서의 블랙 Level을  NTSC-M : 7.5 IRE (black 16)  
                                          NTSC-J : 0 IRE (black 0)  라고 이야기 한다.


이 차이를 파형을 보면 좀더 이해가 빠르다.




                                                              그림 1-4

위 그림 1-4를 보면 동일한 패턴일때의 파형에서 빨간색 동그라미 쳐진곳을 보면
NTSC-J 보다 NTSC-M 이 조금 더 높게 보인다.
즉, 한국과 미국에서 사용하는 CVBS신호의 Black Level 이 일본에서 사용하는 NTSC-J 보다
높은것을 알수 있다.

아래 파형을 보면 좀더 정확한데..


                                                              그림 1-5

그림 1-5를 보면 동일한 Black 화면의 파형을 보여주고 있지만 NTSC-M 이 7.5 IRE 만큼 높은것이 명확히 보인다.
근데, 여기서 IRE 라는 말에 대해서 살펴보면 Analog 신호에서 표시해주는 파형의 높낮이를 말한다. Digital 에서는 1,2,3,...128 형태의 단위로 표시하지만 Analog CVBS에서는 IRE라는 범위를 가지고 말을 한다.




                                    그림 1-6

위 그림 1-6을 보면 0 IRE ~ 100 IRE 까지 신호의 Min~Max를 표시해놓은것을 알수 있다.
그리고, 밑으로의 Sync는 -40IRE 까지를 나타낸다.

PAL은 0 IRE 를 사용하고, NTSC와는 아래와 같은 차이가 있다.

NTSC : 720 x 480 , 59.94Hz(Frame Rate)
PAL   : 720 x 576 , 50Hz(Frame Rate)
 



FPGA관련 정보, 영상 신호 이론, 하드웨어 관련 더 많은 정보는 하기 네이버 블로그에 있습니다. https://blog.naver.com/zaszas2345