며칠 전 ‘이해할 수 없는 Cafe24‘라는 글을 썼었는데, 사실 문제는 cafe24가 아니었습니다. HTTP(Hyper text transfer protocol)로 페이지를 요청하기 위해서는 다음과 같은 방법을 사용합니다.

METHOD URI VERSION

많은 옵션이 붙을 수 있지만 이정도가 페이지를 요청하기 위한 기본 쿼리라고 생각하시면 됩니다. METHOD는 ‘GET’, ‘POST’, ‘HEAD’, ‘OPTION’ 정도가 될 수 있겠고, URI는 PATH + QUERY STRING이라고 생각하시면 되겠습니다.

Read the rest of this entry »

This entry was posted by 정태영 on Wednesday, March 25th, 2009 at 12:44 AM and is taged under , , , , , , , , , , , , .

오늘(어제?) 신입생 교육 때문에 만들었던 자료인데, 개인적으로 프레젠테이션 파일에 설명을 덕지덕지 붙여놓는 걸 좋아하지 않다보니 설명 없이 보기엔 조금 허전할 지도 모르겠다.

http://mytears.org/video_compression.mov

전해져 오는 자료들도 있었지만, Information theory라던가 energy compaction 등을 보여주는 자료들이 없는 등 개인적으로 맘에 들지 않아서 새로 자료를 만들어 버렸다. 어쩌면 이 정도까지 관심있는 사람들도 없었는지 모르겠지만…

그래도 만들어놓은거 2시간만에 버려지는 건 조금 아까워서 퀵타임으로 export!

간단하게 설명하자면 아래 정도?

1. 컬러 스페이스는 여러가지가 있다. RGB는 각 채널에 정보들이 고르게 분배되어 있는데 반해 YUV(Luminance + Chrominance)의 경우 Y(Luminance)성분에 대부분의 정보가 몰려있고, UV에는 상대적으로 정보가 적기 때문에 압축하는데 사용하기가 용이하다.

그렇기 때문에 영상을 압축하는데는 흔히 YUV가 사용된다.

2. 정보량을 나타내는 단위로 Entropy라는 것이 있으며, 이는 우리가 최대로 압축할 수 있는 값이라고도할 수 있다.

엔트로피에 최대한 가깝게 압축을 하기 위한 방법으로는 Shannon-Fano coding, Huffman coding, Arithmetic coding 등이 있으며, 대체로 Shannon-Fano coding보다는 Huffman coding이, Huffman coding보다는 Arithmetic coding이 엔트로피에 더 근접한 결과를 보인다.

Huffman coding은 AAC 등에, Arithmetic coding은 jpeg2k, h.264, AAC 등에 활용되고 있다.

3. Spatial 영역에서의 데이터는 어떤 위치에 얼마나 중요한 정보가 있는지를 나타낼 수 없지만 Transform을 통해 특정 위치에 중요한 정보를 위치시키는 것이 가능하다.

얘를 들어 Fourier/Cosain transform 등을 이용할 경우 저주파 성분에 대부분의 에너지를 집중 시킬 수 있고, wavelet을 사용할 경우 LL 성분에 대부분의 에너지가 모이게 된다.

4. 사람의 눈은 저주파 부분보다 고주파 부분에 민감하므로 Fourier/Cosain transform 등을 통해 도메인을 주파수 영역으로 전환시킨 뒤 저주파 영역은 여러 레벨로 quantization을 수행하고, 고주파 영역은 적은 레벨로 quantization을 수행할 경우 정보량을 줄이면서도 실제 주관적 화질에서는 큰 차이를 보이지 않게 만들 수 있다.

5. Inter frame correlation을 이용하기 위한 방법으로 motion estimation, motion compensation 등의 기법이 있으며, motion estimation을 통해 motion vector를 구하고, 앞에서 구한 motion vector를 이용 motion compensation을 수행하면 이전 프레임을 가지고 현재 프레임과 아주 유사한 프레임을 재구성해낼 수 있고, 이를 현재 프레임에서 빼줄 경우 정보량을 매우 많이 줄일 수 있다.

6. Fourier/Cosain transform을 수행한 뒤 quantization을 수행하게 되면 고주파 영역에는 0이 나올 확률이 아주 높아진다. 그렇기 때문에 Re-ordering을 수행하여 저주파->고주파 영역으로 값들을 정렬시키게 되면 특정 주파수 이후로는 0이란 값밖에 존재하질 않게 되고, 이 0들을 전부 보내기 보다는 N.C(Not coded)란 부호를 대신 보냄으로써 압축 효율을 증가시킬 수 있다.

7. 팩시밀리나 Reorder 된 transform coefficient들을 더 효율적으로 압축하기 위한 방법으로 Run Length Coding이란게 있으며, 0000011122222 같은 값을 Run Length Coding으로 압축하게 되면 051325 (값,반복된 횟수 형식)같은 식으로 표현된다.

이런 방식은 실제 RLE(BMP 압축 포멧), 비디오 코덱 등에 활용되고 있다.

This entry was posted by 정태영 on Thursday, March 19th, 2009 at 2:07 AM and is taged under , , , , , , , .

정말 황당한 경험을 했다. 모든 페이지를 utf-8로 만들었고, .htaccess를 사용해서 기본 charset도 utf-8이라고 명시를 해줬다. ajax 로 한글을 보내고, 결과를 받아왔는데 이해할 수 없는 오류가 발생하기 시작…

처음엔 브라우져 간의 javascript 호환성 문제라고 생각을 했고, 여러가지로 테스트를 시작했다. 전제가 틀렸는데 답을 쉽게 찾을 리가 없지! 결국 세 시간 가까이 소비를 한 끝에 문제점을 찾아냈다.

Read the rest of this entry »

This entry was posted by 정태영 on Thursday, March 12th, 2009 at 1:12 AM and is taged under , , , , , , .

어제 까날옹이 egloos 에서 가볍게 트랙백을 날려주셨는데, egloos 에선 trackback 인코딩을 euc-kr 을 사용하는지 트랙백이 깨져서 와버렸네요. 혹시나 관련된 plugin 을 찾아봤지만 plugin 으로는 아직 존재하지 않는 듯 하고, 관련해서 wind-like 님이 문제를 해결한 버젼의 wp-trackback.php 파일을 배포하시더군요.

하지만 wordpress 기본 파일을 수정할 경우 업데이트를 할 때마다 다시 수정해줘야 하는 번거로움이 있기 때문에 그냥 plugin 을 작성해버렸습니다. 막상 plugin 을 작성하려고 보니 trackback_post 에 대한 action 은 글이 삽입된 이후에 실행되도록 되어 있더군요. 역시 그냥 wp-trackback.php 를 수정해서 사용해야 하는건가 하는 생각이 들었지만, 뭐 정도가 아니면 돌아가면 되는 법!! 이미 데이타베이스에 입력완료된 trackback 을 update 하도록 하는 hack 에 가까운 플러그인이 만들어져버렸습니다. -_-v

혹시나 필요한 분은 아래 url 에서 받아서 사용하시면 되겠습니다.

http://mytears.org/resour...korean_trrackback-1.0.zip

p.s) wind-like 님이 수정하신 버젼과는 다르게 ‘트랙백을 받는 경우’ 하고만 관련이 있습니다.

This entry was posted by 정태영 on Monday, September 4th, 2006 at 6:45 AM and is taged under , , , , , , , , , , .

믹시