프로그램 사용/libjpeg2009. 5. 15. 20:40
Subject: [21] What if I need more than 8-bit precision?

Baseline JPEG stores images with 8 bits per color sample, in other words

24 bits per pixel for RGB images
,
8 bits/pixel for grayscale,
32 bits/pixel for CMYK, etc.

There is an extension that stores 12 bits/sample for applications that need higher accuracy.
Medical images, for example, are often 12-bit grayscale.  The 12-bit extension is not very widely supported,
however.  One package that does support it is the free IJG source code (see part 2, item 15).

For lossless JPEG, the standard permits any data precision between 2 and 16 bits per sample,
but high-precision lossless JPEG is even less widely supported than high-precision lossy JPEG.
The Stanford PVRG codec (see part 2, item 15) reportedly supports up to 16 bits/sample for lossless JPEG.

[링크 : http://www.faqs.org/faqs/jpeg-faq/part1/]




struct jpeg_decompress_struct {
  JDIMENSION image_width;    /* nominal image width (from SOF marker) */
  JDIMENSION image_height;    /* nominal image height */
  int num_components;        /* # of color components in JPEG image */
  J_COLOR_SPACE out_color_space; /* colorspace for output */
  UINT16 X_density;        /* Horizontal pixel density */
  UINT16 Y_density;        /* Vertical pixel density */
};

typedef enum {
    JCS_UNKNOWN,        /* error/unspecified */
    JCS_GRAYSCALE,        /* monochrome */
    JCS_RGB,        /* red/green/blue */
    JCS_YCbCr,        /* Y/Cb/Cr (also known as YUV) */
    JCS_CMYK,        /* C/M/Y/K */
    JCS_YCCK        /* Y/Cb/Cr/K */
} J_COLOR_SPACE;

순서는 조금 뒤바뀌지만, 윈도우에서 출력되는 데이터는 위의 6개로 거의 표기가 가능하다.
Posted by 구차니
Programming/C Win32 MFC2009. 5. 15. 19:37
cinfo.output_gamma [930841904] <- int 형으로 출력
cinfo.output_gamma [1.000000]   <- double 형으로 출력


libjpeg 사용하다 디버그 문장을 제대로 안골라서 발생한 오류 -ㅁ-
Posted by 구차니
Programming/C Win32 MFC2009. 5. 15. 19:21
Before


void main()
{
int test = 13;
printf("\ntest [%ld:0x%lX]",test,test);
}

After
#define debug_print(name) printf("\n%s [%ld:0x%lX]",#name,name,name);
void main()
{
int test = 13;
debug_print(test);
}

#define debug_print(name) printf("\n%s [%ld:0x%lX]",#name,name,name);
전처리기에서 #name은 name의 내용을 문자열로 치환해주는 역활을 한다.

다른 용법은 아래 참고, ## 라는 용법도 있는데 두개를 하나로 붙여 준다.
[참고 : http://cafe.naver.com/devctrl/1921]
Posted by 구차니
개소리 왈왈2009. 5. 15. 11:55
선생도 아니고 스승의 날이다.
단순하게 나이 먹었다고 우러러보는 先生도 아니라
자신을 가르쳐 인도하는 사람이다.


나를 가르쳐 주는 사람은 나보다 나이 많은 사람이 대부분이지만,
깨달음만 얻을수 있다면 지나가는 개도 스승이 될수 있고,
칠척동자도 스승이 될 수 있다.



어느샌가 부터, 지성의 상아탑에서
골수까지 뽑아내서 소를 팔아야 겨우 다니는
현금의 우골탑으로 변질되고, 스승이 아닌 교사로 전락해 버린 지금
진짜 나에게 스승이 있는지 한번은 돌이켜 봐야 하지 않을까..
Posted by 구차니
쌍무지개 뜨는 화창한 초여름날에(시기상으로는 봄날이 맞겠지만 -ㅁ-)
예비군훈련을 받는구나~~~

라는 꿍시렁 속에 조교 일병에게 써먹었다.
쌍무지개도 뜬 화창한 봄날에 찌질하게 군생활이구나~ ㅋㅋㅋ

조교 일병은 곧 조교 이병에게 가서
ㅋㅋㅋ 쌍무지개도 뜬 화창한 봄날에 찌질하게 이등병이네~ ㅋㅋ



'개소리 왈왈 > 사진과 수다' 카테고리의 다른 글

파스도 상하나?  (4) 2009.09.07
일단 가을 하늘  (10) 2009.08.09
왕푸징(왕부정) 거리 지표  (0) 2009.05.10
3박 4일 중국 가족여행  (8) 2009.05.05
쿨러야 한판 붙자 ㅡㅡ^  (0) 2009.04.29
Posted by 구차니
개소리 왈왈2009. 5. 14. 19:06
이용약관 개정과 관련하여 문의사항은 싸이월드 헬프데스크로 접수해 주시기 바라며
개정약관에 동의하지 않을 경우, 개정 공지일인 2009년 5월 12일부터 6월 14일까지
거부의사를 표시할 수 있습니다. 만약 해당 기간 내에 거부의사를 표시하지 않으면
본 개정약관에 동의하신 것으로 간주됩니다.



그런데.. 동의하지 않고 거부의사를 표시할 수 있다고 하는데 표시만 하면 땡?
사용자 입장에서는 거부의사 안하면 동의하신것으로 간주하는게 편하긴 하지만

거부의사를 표시할 수 있다고 해서 기존 약관으로 돌아 갈 수 있는건지
어떠한 내용도 없이, 헬프데스크에 거부하셈~ 라고 하는 이 내용은 도대체 어떻게 받아 들여야 하는걸까?


[링크 : http://www.cyworld.com/main2/notice/view.asp?seq=2159&page=1&]

'개소리 왈왈' 카테고리의 다른 글

주저리 주저리  (2) 2009.05.16
스승의 날 - 스승이 있습니까?  (2) 2009.05.15
내일은 예비군 훈련!  (8) 2009.05.13
여행을 위해 타인이 짊어질 무게는 얼마나 될까?  (2) 2009.05.13
우분투 사용?  (0) 2009.05.11
Posted by 구차니
개소리 왈왈2009. 5. 13. 22:35
8시간짜리였나 -ㅁ-
아.. 8시간 또 머하고 삐대나 ㅠ.ㅠ



사족 : 9시 까지 가야 해서 평소보다 한시간 일찍 일어 나야 하는 부담감 ㅠ.ㅠ
Posted by 구차니
개소리 왈왈2009. 5. 13. 17:35

제목이 너무 거창할지도 모르겠지만,
문득 이런 생각이 들었다.

'모든 세상 사람들이 여행을 떠나면 어떻게 될까?'

여행을 간다는 것은, 다른 말로 일을 하지 않는다는 것이고,
즉, 여행은 타인의 일을 바탕으로 이루어 질 수 있다는 사실이다.

Posted by 구차니
Linux2009. 5. 13. 11:26
configure를 하려는데 저런 뜬금없는 에러가 발생을 했다. (libjpeg 빌드 관련)
한번 검색을 해보니 CR/LF 문제로 인해서

dos2unix를 유틸리티로 CR/LF 변환을 해주어야 한다고 한다.

[링크 : http://www.snort.org/docs/faq/1Q05/node124.html]

$ dos2unix --help
dos2unix Copyright (c) 1994-1995 Benjamin Lin
         Copyright (c) 1998      Bernd Johannes Wuebben (Version 3.0)
         Copyright (c) 1998      Christian Wurll (Version 3.1)
Usage: dos2unix [-hkqV] [-c convmode] [-o file ...] [-n infile outfile ...]
 -h --help        give this help
 -k --keepdate    keep output file date
 -q --quiet       quiet mode, suppress all warnings
                  always on in stdin->stdout mode
 -V --version     display version number
 -c --convmode    conversion mode
 convmode         ASCII, 7bit, ISO, Mac, default to ASCII
 -l --newline     add additional newline in all but Mac convmode
 -o --oldfile     write to old file
 file ...         files to convert in old file mode
 -n --newfile     write to new file
 infile           original file in new file mode
 outfile          output file in new file mode

Posted by 구차니
분류가 모호한 글2009. 5. 13. 01:27
사람마다 다르겠지만, 나의 경우에 있어 가장 어려운 것은 아마도

버릴지, 가질지, 혹은 언제 버릴지?

라는 것이다.
지금 작성하던 부분을 계속 잡고 늘어 져서 끝까지 고칠 것인지,
아니면 그것을 버리고 새로 작성할 것인지,
그리고 그것을 어떻게 재사용을 할 것인지, 이러한 부분들이 가장 어렵고 힘들다.

간단하게 대답하자면, 결국은 선택의 문제이지만,
글쎄.. 잡고 있었던 시간 만큼 쉽게 놓지 못하는건 미련에 아쉬움이고
이를 떨쳐내고 더욱 빠르게 원하는 시간내에 새로 만들수 있음에도 불구하고
그 아쉬움에 묶여 있는 것은, '무'로 돌릴 용기가 없기 때문이다.


물론 '무'는 아무것도 없는 것이 아니다.
그 문제를 해결하려 하면서 습득한 정보들로 인해서 아주 조금이라도 늘었으니 말이다.

그래도 그러한 무형의 증가보다
눈에 보이는 코드의 길이가 0으로 된다는 것은 쉽지 않은 결정이다.






나의 개발 방법은 다음과 같다.

1. 최소한의 입력과 출력을 정한다.
   - 함수는 black box로 입력과 출력을 가지고, 내부 작동은 타인이 모르도록 한다
   - 객체지향개념으로 봐도 무관하려나?

2. 사용가능한 이미 제작된 함수가 있는지 살펴보라
   - 내가 만드는게 빠르다고 생각될지 몰라도,
     디버깅에 필요한 시간을 따지면 이미 작성된 안정된 소스를 사용하는것이 유리하다
   - 그렇다고 그 함수가 너무 복잡하다면 차라리 자체 제작을 해서 최적화 시키는것이 낫다.

3. 원본 데이터는 되도록이면 손상시키지 않는다.
   - 요즘 시스템은 거의 대부분 메모리가 남아 돈다. 굳이 메모리를 아끼기 위해 cpu를 쓸필요는 없다.
   - 원본 데이터는 말그대로 원본이므로 원본을 유지해준다. 함수에서는 내부적으로 사본을 만들어 조작한다.

4. 함수가 커지면 함수를 조각내서 그것을 감싸는 함수를 만든다.
   - refactoring이라고 하던가?
   - 단일 기능을 가지는 함수들을 조합해서 더욱 큰 기능을 구현해 낼수 있고 이는 유닉스의 'simple is beautiful' 철학이다.

5. 주석을 남긴다. 하지만 그렇다고 남발하지 말 것.
   - 주석이 있으면 나중에 보기는 편하지만, 솔찍히 주석으로 보는것 보다는 너무 복잡하지 않다면 코드가 더 이해가 잘된다.
   - 주석을 위한 주석보다는 정말 이해하기 힘든부분에만 주석을 남긴다.
   - 주석을 남길정도가 된다면 함수로 분리를 한다. 함수 이름을 기능으로 나타내는게 더 알아 보기 쉽고 재사용에 유리하다

6. 주석을 남기고 싶다면 차라리 별도 문서로 작성하라.
   - 주석을 남겨야 할 정도로 복잡하다면 이미 주석으로 남기기에는 2% 부족하다.
   - 이러한 부분은 차라리 독립된 문서로 ppt나 doc 혹은 pdf로 별도 문서로 작성한다. (다음 사람을 위해)

'분류가 모호한 글' 카테고리의 다른 글

tarball  (0) 2009.07.30
cal / J(줄) 환산  (0) 2009.05.28
탈리도마증후근과 돼지독감  (0) 2009.04.29
확장자 sgm  (2) 2009.04.03
mp3 ID3 tag  (0) 2009.04.02
Posted by 구차니