윈도우 스타일

[ 윈도우 스타일 ]

WS_BORDER

가는 선 테두리로 된 윈도를 하나 만든다.

WS_CAPTION

타이틀 바가 있는 윈도를 하나 만든다. WS_BORDER스타일을 포함한다.

WS_CHILD

자식윈도나 컨트롤을 만든다. 이 스타일을 사용하면 WS_POPUP은 사용할 수 없다.

WS_CHILDWINDOW

WS_CHILD 스타일과 같다.

WS_CLIPCHILDREN

그리기 작업이 일어날 때 컨트롤의 자식 윈도를 클리핑한다. 이 스타일은 부모 윈도를 만들 때 사용된다.

WS_CLIPSIBLINGS

그리기 작업이 일어날 때 자식 윈도와 같은 레벨의 윈도들을 클리핑한다. 스타일이 정해져 있지 않고 자식 윈도가 WM_PAINT 메시지를 받으면 동기가 윈도로 윈도가 겹쳐져 있어도 윈도우의 전체 영역이 갱신 영역에 추가된다.

WS_DISABLED

만들어 질 때부터 사용자 입력이 불가능한 상태의 윈도가 만들어 진다.

WS_DLGFRAME

대화상자에 사용되는 스타일의 테두리가 있는 윈도를 하나 만든다. 이 스타일로 만들어진 윈도는 타이틀 바를 가질 수 없다.

WS_GROUP

한 그룹의 처음 컨트롤임을 표시한다. 다음 WS_GROUP 스타일을 가진 컨트롤을 만나면 현재 그룹은 끝나고 다음 그룹이 사작된다. 보통 라디오 버튼이 그룹화되어 존재하며 한 그룹 내의 개개 항목들간은 화살표 키로 이동할 수 있다.

WS_HSCROLL

수평 스크롤 바가 있는 윈도를 만든다.

WS_ICONIC

WS_MINIMIZE와 같다.

WS_MAXIMIZE

처음부터 전체 화면으로 표시되는 윈도를 하나 만든다.

WS_MAXIMIZEBOX

전체 화면 표시 버튼이 있는 윈도를 만든다.

WS_MINIMIZE

처음부터 아이콘 표시된 윈도를 만든다.

WS_MINIMIZEBOX

아이콘 표시 버튼이 있는 윈도를 만든다.

WS_OVERLAPPED

타이틀 바와 테두리가 있는 윈도를 만든다.

WS_OVERLAPPEDWINDOW

WS_BORDER, WS_POPUP, WS_SYSMENU, WS_THICKFRAME, WS_MAXIMIZEBOX, WS_MINIMIZEBOX의 조합

WS_POPUP

팝업 윈도를 만든다. WS_CHILD는 이 스타일과 함께 쓰일 수 없다.

WS_POPUPWINDOW

WS_BORDER, WS_POPUP, WS_SYSMENU의 조합. 시스템 메뉴가 보이도록 WS_CAPTION이 지정되어야 한다.

WS_SIZEBOX

WS_THICKFRAME과 같다.

WS_SYSMENU

타이틀 바에 시스템 메뉴가 있는 윈도를 만든다.

WS_TABSTOP

탭 키 멈춤 컨트롤을 지정한다.

WS_THICKFRAME

크기 조절 경계선이 있는 윈도를 만든다.

WS_TILED

WS_OVERLAPPED와 같다.

WS_TILED_WINDOW

WS_OVERLAPPEDWINDOW와 같다.

WS_VISIBLE

처음부터 눈에 보이는 윈도를 만든다.

WS_VSCROLL

수직 스크롤 바가 있는 윈도를 만든다.

by 좋은e세상 | 2009/03/16 18:28 | WinCE | 트랙백 | 덧글(0)

블로그 전문 “이글루스”에 오신 것을 환영합니다.

블로그 전문 “이글루스”에 오신 것을 환영합니다.
새로운 보금자리, 이것저것 어색한 것이 많으시죠?
포털블로그와는 다른, 이글루스만의 기능, 이글루스의 특징을 소개해드립니다.

이글루스는 블로그전문을 지향합니다.
2004년, 첫 발을 내디딘 이글루스는 국내 최초 트래백 을 도입하여 블로그전문 서비스로 입지를 다졌습니다. 관심사를 공유할 수 있는 ‘ 밸리’와 ‘마이’, 문화체험의 새로운 경험 ‘렛츠리뷰’, 국내 최고 메신저 네이트온 연동으로 더욱 새로운 블로깅, 독보적인 블로거가 되세요!

첫째, 공감하는 글이 있다면, 트랙백핑백을 이용하세요!
기존 포털 블로그에서 사용하던 스크랩기능 대신 트랙백과 핑백을 사용해보세요~
관심사가 비슷한 블로거를 만날 수 있는 방법입니다!

둘째, 일촌, 친구, 이웃 등 오프라인 인맥 위주의 ‘친구맺기’ 기능이 필요하시면!
이글루스에서 제공하는 이글루링크를 추천해드립니다.
이글루링크를 하시면, 해당 블로거의 새글 업데이트 소식을 실시간으로 받아볼 수 있습니다.

셋째, 카테고리별 공개/비공개 설정을 지원하지 않습니다.
이글루스는 자신이 작성한 글을 더 많은 블로거들과 나눌 수 있도록 참여와 공유를 지향합니다.
카테고리별 공개/비공개 기능은 현재 마련되어 있지 않으나 추후 필요성을 검토해보도록 하겠습니다.

넷째, 도움이 필요할 땐, EBC 와 이글루스도움말 을 찾아주세요.
이글루스를 이용하시다 발견되는 버그나 오류, 그리오 요청사항은 운영자 공식블로그 EBC 를, 이글루스의 기능과 운영정책을 알고 싶으시다면 이글루스 도움말을 방문하세요!

※ 공지사항을 지우고 싶은 경우, 포스트의 ‘삭제’를 클릭하면 지워집니다.
※ 삭제 버튼은 한 번만 누르세요. 여러 번 클릭 시 다른 글이 삭제될 수도 있습니다.

by 좋은e세상 | 2009/02/19 15:40

YUVtoRGB 변환 공식

step1)



#define CLIP(x) (((x) < 0) ? 0 : (((x) > 255) ? 255 : (x)))


void Yuv2Rgb(int Y, int U, int V, int &R, int &G, int &B)
{
B = 1.164*(Y-16) + 2.018*(U-128) ;
G = 1.164*(Y-16) - 0.813*(V-128) - 0.391*(U-128) ;
R = 1.164*(Y-16) + 1.596*(V-128) ;



B = CLIP(B);
G = CLIP(G);
R = CLIP(R);
}


=> YUV, RGB 변환 공식은 아래와 같다.

B = 1.164*(Y-16) + 2.018*(U-128)
G = 1.164*(Y-16) - 0.813*(V-128) - 0.391*(U-128)
R = 1.164*(Y-16) + 1.596*(V-128)

(YUV 포멧 및 RGB 변환에 관해서는 http://www.fourcc.org/ 를 참조하라.)


위의 공식은 실제 몇몇 픽셀에서 overflow 가 발생할 것이다.

0~255의 범위를 벗어나는 값이 나온다. 이를 방지하기 위해, 0~ 255 값으로 clipping 이 필요하다.




step2)



#define CLIP(x) (((x) < 0) ? 0 : (((x) > 255) ? 255 : (x)))



void Yuv2Rgb(int Y, int U, int V, int &R, int &G, int &B)
{
B = ( 76284*(Y-16) + 132252*(U-128) ) >> 16;
G = ( 76284*(Y-16) - 53281*(V-128) - 25625*(U-128) ) >> 16 ;
R = ( 76284*(Y-16) + 104595*(V-128) ) >> 16 ;



B = CLIP(B);
G = CLIP(G);
R = CLIP(R);
}


=> YUV, RGB 변환 공식을 약간 변형하면 아래와 같다.

B = 65536*(1.164*(Y-16) + 2.018*(U-128) ) / 65536
G = 65536*(1.164*(Y-16) - 0.813*(V-128) - 0.391*(U-128) ) / 65536
R = 65536*(1.164*(Y-16) + 1.596*(V-128) ) / 65536



B = ( 76284*(Y-16) + 132252*(U-128) ) >> 16
G = ( 76284*(Y-16) - 53281*(V-128) - 25625*(U-128) ) >> 16
R = ( 76284*(Y-16) + 104595*(V-128) ) >> 16

변형된 공식을 사용함으로서, floating point 연산을 없엘 수 있다.

by 좋은e세상 | 2008/12/02 09:34 | 비디오 및 영상 자료 | 트랙백 | 덧글(0)

MPEG4 헤더 구조

MPEG Headers Quick Reference

This is a quick reference to the various headers and streams found in MPEG/DVD. For a complete description you should get a copy of ISO/IEC 13818.
This is an incomplete work-in-progress

The header

Every stream or table begins with a 32-bit start code, codes 00 through B8 are video stream start codes (fully defined in 13818-2), and codes B9-FF are stream-id's
byte 0 byte 1 byte 2 byte 3
0000 0000 0000 0000 0000 0001
Start code prefix
Stream ID
Start code used for
0x00 Picture
0x01 - 0xAF slice
0xB0 reserved
0xB1 reserved
0xB2 user data
0xB3 Sequence header
0xB4 sequence error
0xB5 extension
0xB6 reserved
0xB7 sequence end
0xB8 Group of Pictures
Stream ID used for
0xB9 Program end (terminates a program stream)
0xBA Pack header
0xBB System Header
0xBC Program Stream Map
0xBD Private stream 1
0xBE Padding stream
0xBF Private stream 2
0xC0 - 0xDF MPEG-1 or MPEG-2 audio stream
0xE0 - 0xEF MPEG-1 or MPEG-2 video stream
0xF0 ECM Stream
0xF1 EMM Stream
0xF2 ITU-T Rec. H.222.0 | ISO/IEC 13818-1 Annex A or ISO/IEC 13818-6_DSMCC_stream
0xF3 ISO/IEC_13522_stream
0xF4 ITU-T Rec. H.222.1 type A
0xF5 ITU-T Rec. H.222.1 type B
0xF6 ITU-T Rec. H.222.1 type C
0xF7 ITU-T Rec. H.222.1 type D
0xF8 ITU-T Rec. H.222.1 type E
0xF9 ancillary_stream
0xFA - 0xFE reserved
0xFF Program Stream Directory

Picture header (0100)

Variable length.
byte 4 byte 5 byte 6 byte 7
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
temperal sequence number frame type
1=I, 2=P
3=B, 4=D
VBV delay ---
additional fields appended beginning at byte 7 bit 2:
If frame type = 2 (P) or 3 (B) the following 4 bits are appended to the header:
3 2 1 0
full_pel_forward_vector forward_f_code
This field is used by MPEG-1 only, for MPEG-2 it should be set to 0 1 1 1
If frame type = 3 (B) the following 4 bits are appended to the header:
3 2 1 0
full_pel_backward_vector backward_f_code
This field is used by MPEG-1 only, for MPEG-2 it should be set to 0 1 1 1
additionally if the next bit is "1" (extra_bit_picture) it is followed by 8 bits of "extra" data (discarded by decoders). This continues until a "0" bit is encountered.

Sequence header (01B3)

Variable length.
byte 4 byte 5 byte 6 byte 7
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
horizontal size vertical size aspect ratio frame rate
byte 8 byte 9 byte 10 byte 11
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
bit rate 1 VBV buffer size constrained parameters flag load intra quantiser matrix (load non-intra quantiser matrix)
If either load quantiser matrix flag is =1, it is immediately followed by the 64 byte table (moving the "load non-intra quantiser matrix" flag, in the case of "load intra quantiser matrix")
Code Aspect Ratio Frame Rate
0 forbidden forbidden
1 1:1 24000/1001 (23.976)
2 4:3 24
3 16:9 25
4 2.21:1(not used in DVD) 30000/1001 (29.97)
5 reserved 30
6 reserved 50
7 reserved 60000/1001 (59.94)
8 reserved 60
9 reserved reserved
:
15 reserved reserved

extension header (01B5)

There are a variety of extensions, denoted by the first 4 bits.

Sequence_Extension

Fixed length.
byte 4 byte 5 byte 6 byte 7 byte 8 byte 9
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
0001 profile and level progressive_sequence chroma_format horizontal size extension vertical size extension bit rate extension 1 vbv buffer size extension low delay frame rate extension n frame rate extension d

Sequence_Display_Extension

Variable length.
byte 4 byte 5 byte 6 byte 7
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
0010 video format color description flag =0
(not present)
=1 color primaries transfer characteristics matrix coefficients
byte 5
byte 8
byte 6
byte 9
byte 7
byte 10
byte 8
byte 11
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
display horizontal size 1 display vertical size 0 0 0

Picture_Coding_Extension

Variable length.
byte 4 byte 5 byte 6
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
1000 f_code[0][0] (forward horizontal) f_code[0][1] (forward vertical) f_code[1][0] (backward horizontal) f_code[1][1] (backward vertical) intra_DC_precision picture_structure
byte 7
7 6 5 4 3 2 1 0
Top_Field_First frame_pred_frame_dct concealment_motion_vectors q_scale_type intra_vlc_format alternate_scan Repeat_First_Field chroma_420_type
byte 8 byte 9 byte 10
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
progressive_frame composite_display =0 0 0 0 0 0 0
(not present)
=1 v_axis field_sequence sub_carrier burst_amplitude sub_carrier_phase 0 0

Group Of Pictures (GOP) (01B8)

Fixed length, contains 3 flags and the time stamp for the first frame.
byte 4 byte 5 byte 6 byte 7
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
drop frame flag hour (0-23) minute (0-59) 1 second (0-59) frame (0-59) closed GOP broken GOP 0 0 0 0 0
DVD-Video home

by 좋은e세상 | 2008/11/28 15:48 | 비디오 및 영상 자료 | 트랙백 | 덧글(0)

프로세서 ID 찾기

ps -ef | grep init
grep 다음에 찾고자 하는 프로세서 이름을 입력한다.

by 좋은e세상 | 2008/10/14 19:57 | 리눅스 자료 | 트랙백 | 덧글(0)

◀ 이전 페이지다음 페이지 ▶