Q&A

  • 코덱제작에 관해서 질문을 드립니다...
코덱이란것을 만들려면 어떻해야할까요...

실제 코덱은 메모리에서 어떤식으로 자료를 저장하고 전달해서
데이터를 특정확장자의 파일로 저장시켜주는지 방법을 알고싶
습니다...(일반 압축파일처럼 빈공간을 없앤다는 정도 말구요...^^)


어떤 소스코드를 보면 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 도요...^^ 죄송...
2  COMMENTS
  • Profile
    박서규 2002.06.17 18:36
    코덱의 제작이란 알고리즘의 싸움이라고 주장하고 싶군요... 동의하시죠??

    우리가 싶게 쓰는 모든 압축(영상, 음성)코덱이 결국은 우리의 눈과 귀의 한계

    를 교묘히 속이려는 알고리즘이라는 놈의 행위죠..

    현재 압축코덱에 대한 책은 음성보다는 영상쪽으로 mpeg을 위주로 몇권 나와

    있는게 전부이며 소스가 오픈되어 있는것은 실제로 상용으로 쓸때 많은 손을

    거쳐야하는게 현실입니다.  저의 경우 한때 영상에 미쳐서 함 맹글어 보았는데

    그리 쉬운일은 아니었슴다.  파스칼소스가 없는것도 그렇고 접근 방식에 문제

    가 많았죠.  소스를 분석하는것도 중요하지만 기본적인 수학과 압축의 근본적

    적인 개념에 대해 접근하는것이 더 편하더군요.  그리고 실제로 님께서 말씀

    하신 컨버터의 경우 많은 방법을 쓰게 됩니다.  큰파일을 몽땅 메모리로 올려

    놓고 쓰면 좋지만 결국 한계가 있어서 하드를 못살게 굴게 되죠.  결국은

    일정 구간을 읽어서 구간별로 압축을 하게되죠.  마치 Mpeg에서 GOP(Group

    Of Picture)가 있듯이 구간을 읽어서 압축, 저장하게 되면 그렇게 많은 메모리

    가 필요없게 되죠.  물론 메모리에 올려 놓고 하다보면 속도는 빠르겠지만

    동영상같은 경우는 당근 무리겠죠.  




  • Profile
    박상윤 2002.06.17 13:12
    안녕하세여...
    멀티미디어 쪽을 어느정도 이해하고 계신가요.??
    아직 구조를 파악하시지못한것 같은데...

    보통 비디오는 프레임이라는 기본구조를 가지고 있지여...
    아마도 이미지 한장 이라고 생각하시면 돼구여...

    오디오도 이와  WaveForm .. 구조를 가지고있지요...
    따라서 오디오는 비디오는 압축을 하거나 ...
    푸는 과정은 거의 비슷합니다....

    이 기본구조를 가지고 압축을 하고..풀어줍니다.
    님이 말씀하신데로  메모리를 잡구하는 것은 아니지여...

    이제 코덱마다 틀린것은 압축하는 방식의 차이입니다.
    결국 내부의 알고리즘의 차이이지여....
    표준 포맷들이 있기는 하지만...
    꼭 거기에 따라갈 필요는 없습니다...
    필요하다면...현제 환경에 맞도록 바꾸어 버릴수도 있습니다.

    코덱은  Encoding 과 Decoding으로 나누어지며.
    보통 Encoding 팔구 Decoding은 무료로 나누어 주지여..

    mp3코덱을 만져보고 계신것 같은 것같은데...
    일단 코딩을 보시는 것보다는 알고리즘을 이해하시는 것이
    면저일것 같습니다. mpeg layer 3 일단 mpeg를 해보시고
    건너가시는 것이 나을 듯합니다..

    국내에서 코덱을 직접 만들어 본사람들은 거의 없다고 알고 있습니다.
    있다고 하더라도 자신의 노하우를 공개 할지는 ???

    암튼 그냥 코팅을 보고 계심..더시간이 많이걸릴듯 합니다.
    그럼 조금이라도 도움이 되셧기를

    • 이성윤
    • 2002.06.17 21:01
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 머슴
      2002.06.17 22:36
      StrToDate함수는   DateSeparator 변수가 지정하는 구분문자(보통 슬래시 기호)에 의해 ...
    • 김문식
    • 2002.06.17 20:46
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김문식
      2002.06.17 20:51
      requestLive 속성을 true로 한다음 다시 그 컴퍼넌트의 active를 false -> true로 하면 되네요.
    • 정병선
    • 2002.06.17 20:32
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 조용호
      2002.07.10 18:41
        idHTTP.Post(LogUrl,LogData,OutData);   logurl 은 값을 넘길 url  &n...
    • 최용일
      2002.06.17 22:11
      안녕하세요. 최용일입니다. 검색해보시면 많이 나와 있는데.... 프로젝트에 있는 *.dsk파일 지우시고...
    • 김원섭
    • 2002.06.17 19:54
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2002.06.17 22:22
      안녕하세요. 최용일입니다. 코딩을 안봐서 확실하진 않지만 스트림에서 읽을때나 저장할때 파일의 위치...
    • 김원섭
      2002.06.17 22:43
      procedure TF_dk_create.pic_find; var BStream : TStream; AJ : TJPegImage; AB : TBitmap; Da...
    • 최용일
      2002.06.18 03:03
      안녕하세요. 최용일입니다. 이건 음~~~ 마지막 else부분에 헤더가 JPEG도 아니고 BMP도 아닌데 JPEG...
    • 김원섭
      2002.06.18 09:26
    • 최상호
    • 2002.06.17 19:52
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최창욱
      2002.06.17 20:38
      질문이 너무 추상적이네요.. Login창을 만들되... 프로그램이 SDI기반인가 MDI기반인가에 따라서도 ...
    • 뇌아파
    • 2002.06.17 19:49
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2002.06.17 22:26
      안녕하세요. 최용일입니다. 구조체 변수의 멤버를 참조하세요... var     R: T...
    • 이호성
    • 2002.06.17 19:25
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 윤도상
    • 2002.06.17 19:12
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 김대훈
    • 2002.06.17 18:27
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 김경록
      2002.06.17 19:09
      음.. 여기 관리자분이 질무이나 답변을 할때에...   꼭 [질문] 또는 [답변]을 쓰길 권고하고 ...
    • 김대훈
      2002.06.17 23:21
      먼저 답변주신것 감사합니다 다음에 글을 올릴땐 님의 충고대로 말머리를 꼭달지요.. 홀~ 답하신글 ...
    • 김경록
      2002.06.18 04:21
      결론부터 말씀 드리면, Library에 경로가 등록되어 있고, Component에 등록되어 있다면, 실행화일에 모...
    • 이현철
      2002.06.18 00:06
      질문하신 내용이 좀 이해가 안가네요..  ㅡㅡ; 서버쪽에서 파일을 임시 디렉토리에 저장하는데 ...
    • 홍작새
    • 2002.06.17 11:47
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김경록
      2002.06.17 18:58
      정규 표현식이란 뭐를 말씀하시는지.. 어떤건지 알수가 없네여.. 특정 식을 처리할 일이 생기셨다는건...
    • 김종균
    • 2002.06.17 06:33
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 김경록
      2002.06.17 19:13
      테이블을 두개를 만들었어여    고객         ...
    • 김종균
      2002.06.17 19:41
      학교에서 델파이를 배우는데 매력이 느껴져서 독학으로 공부하거든여... DB를 배운게 군대가기전이라 제대...
    • 이재식
      2002.06.17 10:55
      안녕하세요. 코딩이전에 설계가 먼저 선행되어야 합니다. 설계는 하시고자 하는 의도를 전혀 반영하고 ...
    • 이재식
      2002.06.17 10:40
      안녕하세요 패러독스의 필드타입에 Graphic이라는 타입이 있어서 각종 그림파일을 저장할수 있는데요, ...
    • 모범생
    • 2002.06.17 03:02
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 박서규
      2002.06.17 18:36
      코덱의 제작이란 알고리즘의 싸움이라고 주장하고 싶군요... 동의하시죠?? 우리가 싶게 쓰는 모든 압축(...
    • 박상윤
      2002.06.17 13:12
      안녕하세여... 멀티미디어 쪽을 어느정도 이해하고 계신가요.?? 아직 구조를 파악하시지못한것 같은데......
    • 손인호
    • 2002.06.17 02:43
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 박상윤
      2002.06.18 13:54
      제가보기에는 ..VCL을 쓰셨다면 힘들듯.. 컴포넌트도 보이느것이 있고 안보이는것이 잇지여. VCL화면에 ...
    • TestMan
      2002.06.30 03:17
      메모장 형식이 아니고 워드패드형식으로 저장되어서 그렇슴다. 메모장에서는 포함된 글자(줄바꿈 포함)만 ...
    • 이민수
      2002.06.17 05:31
      얼마전에 보니까 터보파워의 SysTools라는 제품에 바코드가 포함되어 있던데 Maxi코드인가 하여튼 처음 보...
    • 유가람
      2002.06.17 07:13
      님께서 말씀하신것은 사용하지 못했읍니다. 님께서 말씀하신 자료를 어디서 찾을수 있는지요? 이...