코덱이란것을 만들려면 어떻해야할까요...
실제 코덱은 메모리에서 어떤식으로 자료를 저장하고 전달해서
데이터를 특정확장자의 파일로 저장시켜주는지 방법을 알고싶
습니다...(일반 압축파일처럼 빈공간을 없앤다는 정도 말구요...^^)
어떤 소스코드를 보면 WAVE 파일 크기가 80MB 할때
특정 메모리 구역을 파일 크기만큼 즉, 80MB를 얻어서
mp3 로 컨버터 시키는 구조를 가지고 있더군요...
메모리가 적은 컴터에서는 어떻게 쓰라는건지..??
그래서 저도 생각해봤었습니다. 메모리의 일정구역을
잡아둔채 1메가만 잡아두고 1메가 만큼만 컨버터시킨 후
하드에 저장하는 식으로 80MB까지 반복하면 될거 같다는
생각을 했습니다.
프로그래밍은 무식한방법으로 했지만, 그 사람은 코덱이란
놈을 알고 그랜건지도 모르겠습니다...
코덱이 이런식으로 만들어져 있나??
이건 제 개인적인 생각입니다...초짜라서 ^^ 별생각 다하죠...
문제는 그렇게 생각은 해봤지 실제로 코덱이란놈을 어떻게 만들지를
모르겠더군요...만들려니 막막하기만 하구요...
GSM~~.pas 쏘스를 구해서 한번 봤는데..
GSMWaveFmtEx[0] := $31;
GSMWaveFmtEx[1] := $00;
GSMWaveFmtEx[2] := $01;
GSMWaveFmtEx[3] := $00;
GSMWaveFmtEx[4] := $40;
GSMWaveFmtEx[5] := $1F;
GSMWaveFmtEx[6] := $00;
GSMWaveFmtEx[7] := $00;
(엄청복잡하더라구요...asm 도 이용하고...)
이런식으로 $31 등등 이상한 수가 많이 적혀있었습니다...
이게 무슨뜻인지도 궁금하구요...
간단한 포맷방식등...ACM, PCM 이런놈들이 어떻게 갑자기
mp3 가 되는지 그 내부를 아시는 분이 있다면 좀 가르쳐 주십시믄..
대단히 감사하겠습니다...
아~$31 도요...^^ 죄송...
우리가 싶게 쓰는 모든 압축(영상, 음성)코덱이 결국은 우리의 눈과 귀의 한계
를 교묘히 속이려는 알고리즘이라는 놈의 행위죠..
현재 압축코덱에 대한 책은 음성보다는 영상쪽으로 mpeg을 위주로 몇권 나와
있는게 전부이며 소스가 오픈되어 있는것은 실제로 상용으로 쓸때 많은 손을
거쳐야하는게 현실입니다. 저의 경우 한때 영상에 미쳐서 함 맹글어 보았는데
그리 쉬운일은 아니었슴다. 파스칼소스가 없는것도 그렇고 접근 방식에 문제
가 많았죠. 소스를 분석하는것도 중요하지만 기본적인 수학과 압축의 근본적
적인 개념에 대해 접근하는것이 더 편하더군요. 그리고 실제로 님께서 말씀
하신 컨버터의 경우 많은 방법을 쓰게 됩니다. 큰파일을 몽땅 메모리로 올려
놓고 쓰면 좋지만 결국 한계가 있어서 하드를 못살게 굴게 되죠. 결국은
일정 구간을 읽어서 구간별로 압축을 하게되죠. 마치 Mpeg에서 GOP(Group
Of Picture)가 있듯이 구간을 읽어서 압축, 저장하게 되면 그렇게 많은 메모리
가 필요없게 되죠. 물론 메모리에 올려 놓고 하다보면 속도는 빠르겠지만
동영상같은 경우는 당근 무리겠죠.