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