Q&A

  • 화상채팅에서 화상은 어떤 식으로
안녕하세요.....

화상통신에서 화상을 어떤 형식으로 전송을 하는지에 대해서 알고 싶습니다. 알고 계시는 부분은 주저 하지 마시고 답변 부탁드립니다. .....

2  COMMENTS
  • Profile
    박서규 2001.01.05 18:42
    조대승 wrote:

    > 안녕하세요.....

    > 화상통신에서 화상을 어떤 형식으로 전송을 하는지에 대해서 알고 싶습니다. 알고 계시는 부분은 주저 하지 마시고 답변 부탁드립니다. .....



    가장 간단한 방법부터 소트하여 설명합니다.



    첫번째, JPEG로 압축하여 날린다...

    가장 흔한 방법입니다. 일반적으로 160 * 120의 경우 약 3K를 왔다 갔다합니다.

    그런데 델파이에 있는 JPEG 클래스의 경우 속도의 한계가 있기때문에 감안을 하셔서 쓰셔야겠죠.. 이 프래임의 경우 MPEG의 Intra형식입니다.



    두번째, 비교하여 틀린블럭만 날린다.

    약간 진보되는군요... 화상데이터를 일정한 크기로 자릅니다.

    가장 일반적으로 16*16, 8*8로 나누어서 틀린블럭을 추출해냅니다.

    그런데 문제는 어떻게 비교하느냐죠.. 우리가 입력받는 값은 RGB인데

    개개의 픽셀을 R,G,B의 값을 비교하는건 말도 안되구요..

    RGB -> YCrCb로 변환을 시킵니다. YCrCb는 RGB를 밝기와 색채성분으로 나눈건데요..

    일반적으로 영상을 비교할때 Y(루미넌스:밝기)의 비교로 이루어집니다.

    즉, 이전화상과 현재화상의 YCrCb구조를 가지고 있다가 블럭단위로

    비교를 해서 일정 임계치를 넘으면 요건 보내야되는 블럭으로 간주하고 엔코딩을

    하면 됩니다. 물론 이 블럭을 어떻게 엔코딩하는가는 개발자의 주관이죠..

    위의 Jpeg클래스를 이용하시려면 송신할 블럭을 BMP의 구조로 만들어서

    JPEG로 날린후 복원하면 되구요..

    아님, 압축 코덱을 만드셔야하는데, 괴로운 작업입니다.

    참고로, 표준압축 코덱에 필요한 함수로는



    DCT : 이산여현변환(주파수영역변환시 필요)

    ME,MC : 움직임 추정, 보상

    기타등등....



    셋째, 틀린블럭의 움직임 추정을 통한 Motion Vector값을 보낸다...

    점점, 진보되어가는군요...

    이것은 일정한 블럭의 일정범위(-15..15)를 탐색하여 가장 잘 매치가 잘되는 블럭을

    찾는 겁니다. 그래서 이 블럭과 현재블럭의 차분값을 DCT, 양자화하여 보내면 됩니다.

    만약 움직임추정이 싫으시면, Motion Vector를 0으로 하고 현재블러과 이전블럭의

    차분값을 보내는것과 현재블럭을 인트라로 보내는경우를 비교하여 작은 쪽을 선택하면

    됩니다.



    도움이 되셨는지요...

  • Profile
    2001.01.05 02:06
    아는 사람이 화상회의 시스템 만들고 있는데여..



    걍.. 피씨 카메라에서 받은 이미지를 압축해서 날린다고 하네여..



    물론 압축 방법이야 만드는 방법에 따라 달라질테고..



    피씨카메라에서 이미지 얻는 것은 vfw.h(Video for windows) API 쓰면 된다고 하는데..



    안해본거라 자세히는 모르겠습니다. ^^;;