2010년 6월 18일 금요일

비디오 신호 전송 인터페이스

임베디드 시스템에서 많이 사용하는 비디오 신호 전송 인터페이스 방법을 정리하였다.

Parallel RGB:
RGB 각각 m bit씩 3 x m 개의 데이터 라인과 hsync. vsync. 라인등을 사용한 가장 기본적인 비디오 신호 전송 방법. 기기에 내장된 LCD모듈로 영상을 전송하기 위하여 임베디드 시스템에서 가장 일반적으로 사용하는 IF.

LVDS(Low Voltage difference Signaling):
고속 데이터 전송을 위해 꼬인 구리선으로 차신호를 보내는 방법으로 일반 데이터 전송(firewire등) 뿐만 아니라 비디오 데이터 전송에 사용된다. Parallel RGB보다 훨씬 적은 수의 라인으로 구성되므로 디스플레이 패널이 기기 외부에 있을때 많이 사용됨. 이름의 LV(Low Voltage)는 5V나 3.3V 가 아닌 1.5V를 사용하기 때문에 붙은 것임. 이름에서 알 수 있듯이 차신호를 보냄으로써 노이즈에 강하다.

디지털 테스트 시스템을 위한 LVDS 이해하기
노트북PC와 TV까지 '포스트 LVDS' 도입 물결
(영어버젼:http://blog.naver.com/jkhan012?Redirect=Log&logNo=150084746813)

TMDS(Transition Minimized Differential Signaling):
DVI와 HDMI에서 사용되는 고속 시리얼 데이터 전송 기술. LVDS와 유사한 기술로 RGB 채널별로 한개의 twisted-pair를 사용하여 차신호를 보낸다.  DVI나 HDMI 모두 TMDS를 사용.
http://en.wikipedia.org/wiki/Transition_Minimized_Differential_Signaling

TSI(Transport Stream Interface):
MPEG 비디오 데이터를 전송하기 위해 사용되는 인터페이스.
TDAT, TCLK, TSYN,TVAL 4라인으로 구성됨.

PinName : Description  : Master : Slave
---------------------------------------------
TDAT       Data          Output   Input
TCLK       Clock         Output   Input

TVAL       Data Valid    Output   Input

TSYN       Packet Sync.  Output   Input



참고자료:
디지털 시대의 비디오 신호조작기술
Analog 비디오 신호를 Digital Parallel RGB로 바꾸어주는 IC
Digital Parallel RGB를 LVDS로 바꾸어주는 IC

2010년 6월 16일 수요일

안드로이드에서 C만으로 프로그램 개발하기

많은 분들이 이미 고민해 주시고 해결책을 찾아 주셔서 관련 사이트를 링크만 한다.

먼저 일반적인 NDK를 사용하여 C사용하는 방법...
Being a Developer -
- Android NDK를 이용한 C/C++ 안드로이트 프로그래밍 Hello JNI


이제, Java없이 C로 실행파일까지 만들어 버리는 방법을 살펴 보자.

오가네 - 어느 프로그래머의 책 읽기
- 안드로이드(Android) NDK로 실행 파일 만드는 법
- 안드로이드(Android)NDK 실행파일 프로젝트 예제
- android-gcc

博而不精
- 윈도우에서 c로 안드로이드 어플 개발하기

기본적으로 NDK를 사용하여 C 실행 파일 생성 및 실행이 가능하지만, 만일 안드로이드가 지원하는 ARM 플래폼이 아니거나 NDK이외의 gcc 컴파일러 사용이 필요할 경우 이것도 불가능하지 않다.  해당 내용은 "Java와 C를 이용한 프로 안드로이드 게임 개발"에 서 찾아볼 수 있다.