'Windows Mobile 6.0'에 해당되는 글 1건

Posted on 2008/06/09 18:45
Filed Under Embedded/최적화 및 팁

DNS server, DNS service  

출처 : 하이엔트 PDA (네이버 카페)

1. 그렇다면 우리 hx4700 은 VGA 라면서 왜 처음 키면 해상도가 qVGA(320 * 240) 인가?

운영체제로 사용되고 있는 Windows Mobile 의 각종 버젼에서 지원하는 기본 해상도도 qVGA 밖에는 지원하지 않고 있습니다.

(WM5 가 나와도 이는 크게 달라지지 않을 것이라 생각합니다.)

따라서 기기 자체의 성능(하드웨어 적인 성능)은 VGA 를 지원하지만, 소프트웨어(O/S)가 그를 따라가지 못하고 있기 때문에 기본적으로 VGA 를 지원한다고 하더라도 부가적인 소프트웨어를 설치하지 않고서는 VGA 의 해상도를 사용하지 못하는 것입니다.

물론 HP Asset View 를 보면 해상도는 480 * 640 이라고 나옵니다.

하지만, 더블 픽셀링이라는 방법을 사용해서 각종 아이콘의 크기를 키워놓았기 때문에 우리가 생각하는 VGA 를 사용하지 못하는 것입니다.

(HP 에 전화를 해도 해상도는 480 * 640 이라고 주장합니다. )

그리고 또한, Microsoft 의 Pocket PC 인증이라는 것이 있는 것으로 알고 있습니다.

Microsoft Pocket PC 의 인증이라는 절차를 거친 이후에야 Windows Mobile 혹은 Pocket PC 라는 이름을 붙일 수가 있는데,

이 인증을 받기 위한 조건중의 하나가 qVGA 해상도라고 알고 있습니다.

-------------------------------------------------------------------------------------------------


1. hx4700은 HW 적으로만 VGA이고 SW적으로는 QVGA인가?

아닙니다. hx4700은 HW 나 SW 적으로 모두 VGA 입니다. 흔히 생각하실 수 있는 잘못된 점 중에 하나가 hx4700의 초기 화면은 QVGA라고 생각하신다는 것입니다. 즉, HW적으로는 VGA를 지원하지만 SW적으로 지원을 안하기 때문에 Pixel doubling을 사용하여 VGA화면에 QVGA를 표시하신다고 생각하십니다.
하지만, 실제로 hx4700의 초기 화면은 VGA입니다. QVGA의 pixel doubling이 아닙니다. 쉽게 구분할 수 있는 방법은 여러분들도 체험하셨겠지만, hx4700의 아이콘들이나 시작 메뉴를 보시면 입자가 아주 곱습니다. QVGA의 pixel doubling을  보신 분들은 아시겠지만, 글자나 이미지가 뭉게집니다. 만약 hx4700이 QVGA pixel doubling을 사용한다면 초기 화면 자체도 깔끔하기 나오지 않고 뭉게질 수 밖에 없습니다.

MS가 VGA를 지원하기 위해 사용한 방법이 있습니다. 바로 dpi 개념입니다. 이것은 dpi는 dot/inch 로서 1인치에 표시될 수 있는 점의 개수 입니다. 저희가 보통 사용하고 있는 PC나 PDA 모두 96dpi를 사용합니다.
PC에서 확인을 하실 수있는 방법은 바탕화면에서 오른쪽 마우스 클릭 -> 속성 -> 세팅 -> 고급 -> 일반 에 가보시면 나타납니다. MS에서 초기에 범한 실수 중의 하나가 PocketPC의 해상도를 QVGA로 고정시킨 데에 있습니다. VGA 기기들이 나오자 지원에 한계를 느끼기 시작한 MS에서 기발한 방법을 생각해 내었는데, 그게 바로 dpi를 변환 시키는 것입니다. 현재 96dpi로 되어 있는 것을 192dpi로 바꾸게 되면 해상도를 4배(가로 2배*세로 2배, 즉 QVGA->VGA)로  하는 것이 가능하다는 것입니다.
흔히들 말하면 일반 모드에서 레지스트리 에디트로 확인을 해보시면 이 사실을 알 수 있습니다.
hx4700의 레지스트리를 열어서 HKEY_LOCAL_MACHINE\Drivers\Display\GPE 에 들어가 보시면 LogicalPixelsX 와 LogicalPixelsY 값이 있습니다. 이 값이 모두 십진수 192 (16진수 C0)로 되어 있습니다.
이것이 무엇을 의미하는가 하면 기존의 96dpi의 QVGA를 192dpi로 바꾸면 VGA가 될 수 있는 것입니다. 같은 선상에 찍히는 dot의 수가 두배로 늘어나기 때문이죠.
위의 레지스트리의 LogicalPixelsX와 LogicalPixelsY를 96으로 바꾸신 다음 리셋을 해보시면, 재밌는 현상을 보실 수 있습니다. 흔히 우리가 말하면 Real VGA의 화면을 보실 수 있습니다.


2. MS가 96dpi VGA를 지원하지 않고 굳이 192dpi를 사용한 이유가 무엇일까?

다들 아시겠지만, Windows Mobile OS는 Windows CE의 customized 버전입니다. Windows CE는 범용 OS 이기 때문에, MS는 Windows CE에 여러가지 제약을 가함으로써 Windows Mobile OS를 만들어 내었습니다.
그 제약들은
1) 시작 메뉴의 크기
2) 메뉴 바의 크기
3) 해상도
4) 기타 등등
을 포함하고 있습니다. 여기서 96dpi VGA를 지원하게 되면 어떤 현상이 발생할까요? 바로 우리가 보는 Real VGA 형태의 모양이 나오게 됩니다. 즉 시작메뉴의 위아래 두께가 1/2로 줍니다.(예를 들면 시작 메뉴의 크기를 100 으로 주었을 때 320 길이에서의 100과 640 길이에서의 100은 그 비율이 다르죠) 마찬가지로 여러가지 부분에 있어서 모양 새가 바뀌어 지게 됩니다.
이는 MS가 원하는 바가 아닌 것으로 보입니다. MS는 Windows Mobile 용 어플리케이션들이 모든 PDA에서 동일한 인터페이스를 갖기를 원하는 것 같습니다. 따라서 기존의 레이아웃을 유지한 채로 VGA를 지원하기 위해서 dpi를 두배 높임으로써 이를 해결한 것입니다.

3. 특정 어플리케이션이 왜 pixel doubling 을 한 것(글자나 그림이 뭉게짐)으로 보일까?
어플리케이션이 VGA를 지원한다 함은 192dpi를 지원한다는 것입니다. 따라서 어플리케이션을 개발할 때도 이에 대한 처리를 해주어야 합니다.
만약 그냥 어플리케이션을 개발하게 된다면 자동적으로 96dpi로 인식을 하게 됩니다. Windows Mobile OS에서는 화면 자체가 192dpi로 되어 있을 경우 96dpi용으로 개발된 어플리케이션에 대해서 pixel doubling을 통해 표현하도록 강제하고 있습니다. 따라서 예전에 개발되어 192dpi에 대한 처리가 안되어 있는 어플리케이션들은 pixel doubling으로 뭉게지게 나타나는 것이죠.
최근에 나온 어플리케이션들은 이에 대한 처리를 모두 하고 있습니다. 따라서 화면에 pixel doubling을 사용하지 않고도 제대로 나오게 되는 거죠.
Pocket IE를 사용하시는 분들은 아시겠지만 Windows Mobile 2003 SE에 들어 있는 Pocket IE는 이미지를 처리할 때 192dpi로 처리를 하지 않고 무조건 96dpi로 처리를 합니다. 따라서 pixel doubling을 사용하기 때문에 그림이 뭉게집니다.

4. forceHires 나 adobe acrobat reader patch의 원리
forceHires를 보면 여러분들께서 일반 VGA 모드에서 Real VGA모드를 지원하게 바꾼다고 생각하시는데요. 사실은 그게 아닙니다. 사실은 이전에 개발되어 VGA를 지원하지 않는 프로그램의 실행파일에 VGA를 지원하는 루틴을 추가하는 방식입니다. 그렇게 함으로써 VGA를 지원하지 않는 어플리케이션을 VGA를 지원하는 어플리케이션 처럼 바꾸는 거죠. 다들 써보셔서 알겠지만, forceHires가 모든 어플리케이션에 성공적으로 적용되지는 않습니다. 어떤 어플리케이션은 화면의 1/4로 축소되서 나오기도 하고 그러죠. 그 이유는 VGA를 지원하는 루틴을 사용하게 되면 어플리케이션에서는 좌표값을 640*480을 기준으로 사용할 수 있습니다. 하지만 몇몇 어플리케이션은 기존의 QVGA용의 화면 크기인 320*240을 기준으로 좌표값을 잡아서 프로그램이 되어 있기 때문에 화면의 1/4만 나오게 되는 것입니다. 이에 대해 MS 측에서도 화면의 넓이나 높이를 특정 값(320,240) 으로 고정시켜 사용하지 말고 시스템 함수를 콜해서 얻어와서 사용하라고 권고하고 있습니다. 자료실에 보시는 acrobat reader VGA 패치의 경우 기존의 실행파일을 추출하여 거기에다 VGA 지원 루틴을 추가한 것 뿐 입니다. adobe reader의 경우 프로그램을 만들 때 화면의 넓이와 높이를 고정 값으로 사용하지 않고 시스템에서 얻어오는 방식을 사용했기 때문에 이 VGA 루틴이 추가되더라도 제대로 작동을 하는 것입니다.

5. Real VGA의 작동 원리
Real VGA라고 하는 부분은 사실 아주 간단한 변경으로 가능한 부분입니다. 즉 위에서 설명 드렸던 레지스트리의 LogicalPixelsX와 LogicalPixelsY 값을 96으로 바꾸기만 하면 되는 것이죠. 문제는 hx4700이 192dpi 전용으로 나온 모델이기 때문에 96dpi를 사용하는 리소스(아이콘, 등등)이 없습니다. 또한 입력기 역시 192dpi를 기준으로 제작이 되었기 때문에 96dpi 모드로 바꿀 경우에 입력기 상에서도 문제가 발생합니다. 제가 테스트 해본 바로는 입력기에 문제가 발생하게 되면 탐색기나 Pocket IE의 동작에도 이상이 생기게 됩니다. SE_VGA와 같은 프로그램이 하는 일은 위에서 설명드린 레지스트리를 변경하는 부분 이외에도 96dpi를 지원하는 리소스들을 hx4700에 설치를 해주는 것입니다. 따라서 96dpi인 Real VGA 모드 상에서도 아이콘과 같은 부분이 깨지지 않고 나오게 되는 것이죠. Windows Mobile에서 기본으로 제공하는 Today Plugin 중에 배터리,메모리 정보가 나오는 패널이 있는데, Real VGA 상에서 그 패널을 보면 아이콘이 크게 나와서 깨져 보이는 경우가 있습니다. 이는 SE_VGA에서 그 패널용 리소스를 설치하지 않았기 때문에 그런 현상이 발생하는 것입니다.
하지만,Windows Mobile OS 자체가 화면의 넓이와 높이를 시스템에서 얻어오는 방식으로 되어 있기 때문에, 96dpi로 바뀌더라도 화면이 1/4만 나오거나 하지는 않고 죽 늘어난 형태로 보여주게 되는 것입니다.
Real VGA 상에서 Pocket IE를 사용하면 그림들이 뭉게지지 않고 잘 나옵니다. 그 이유가 뭘까요? 이것은 당연한 결과 입니다. 왜냐면 Real VGA가 화면의 dpi를 96dpi로 바꾸었기 때문에, 내부적으로 96dpi로 이미지를 처리하는 Pocket IE가 pixel doubling을 사용하지 않기 때문이죠.

결론
1. hx4700은 H/W, S/W 적으로 모두 VGA를 지원합니다.
2. hx4700의 VGA 지원 방식은 dpi를 두배로 늘리는 방식입니다.(96dpi->192dpi)
3. Real VGA는 192dpi로 되어 있는 것을 강제로 96dpi로 바꾸고, 96dpi 용 리소스 파일을 추가하는 프로그램입니다.
4. forceHires 프로그램은 192dpi를 지원하지 않는 어플리케이션들에 192dpi를 지원하도록 하는 루틴을 추가하는 프로그램입니다.
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2008/06/09 18:45 2008/06/09 18:45

About

by CoCo

Notice

Counter

· Total
: 827760
· Today
: 131
· Yesterday
: 136