제임스딘딘의
Tech & Life

수행 프로젝트 이력/참여자주도형 정보공유 시스템 [2011.12~2012.02] 13

G.711 코덱 정보 및 소스 (Encoding & Decoding)

G.711 코덱정보 (인코딩 & 디코딩) 참조 : http://en.wikipedia.org/wiki/G.711 G.711 음성에 있어서의 ITU 표준 / H.323환경에서 음성전달 전송방식의 기본 오디오 코덱 표준안이다. G.711은 64Kbps에서 3KHz의 전화급 오디오 품질을 제공하기 위하여 PCM 오디오 엔코딩과 미국, 유럽에서 주로 이용하는 U-law 또는 A-law 방식을 사용한다. 펄스코드변조 (Pulse Code Modulation, PCM) 방식은 샘플들을 미국 방식인U-law 또는 유럽 방식인 A-law 양자화 방식을 이용하여 한정된 재구성 세트 중의 하나로 양자화를 시켜주는 파형 코딩 방식이다. G.711 표준은 전화 대화 코딩을 위한 표준 방식으로 8Bit PCM을 정의하고 있다...

자료조사(9) - RTP Packet Payload Type

본 포스팅은 이번 프로젝트에서 사용하는 RTP 패킷에 대한 자료조사 덧붙임이다. RTP 패킷의 헤더에는 데이터 형식을 지정하는 PT(Payload Type) 필드가 있다. 8비트가 할당되므로 0~255 까지의 숫자로 표현된다. 이번 프로젝트에서는 PCMA ( G.711 코덱 ) 형식의 음성 데이터를 주고 받는데, 해당 PT 번호는 8번이다. 아래는 몇가지의 PT번호를 나타내는 표이며 출처에 표기한 사이트에서 발췌하였다. 출처 : http://www.packetizer.com/in/q9.html The information in this article applies to: H.323, H.225.0, H.245, RTP (RFC 3550) If there is a static payload type def..

자료조사(8) - RTP (real Time Procotol)

RTP(Real Time Protocol) >> RFC 3550 ☛ 개요 RTP는 오디오, 비디오 및 시뮬레이션 데이터와 같은 실시간 데이터를 멀티캐스트 또는 유니캐스트 네트웍을 이용해서 전송하는 응용 서비스에 알맞은 단말-대-단말 네트웍 전송 기능을 제공한다. RTP는 자원 예약을 수행하지 않으며, 따라서 적시 전달, 순차 전달과 같은 서비스 품질도 보장하지 않는다. RTP 데이터 전송 기능은 제어 프로토콜에 의해 확장되는데, RTCP라 불리우는 이 제어 프로토콜은 데이터의 전달 상황을 감시하며, 최소한의 제어 기능과 매체 식별 기능을 제공한다. RTP와 RTCP는 하위의 전송 및 네트웍 계층에 무관하게 설계되었다. RTP는 별개의 독립 계층으로 구현되기 보다는 특정 응용에서 요구되는 정보를 제공하여 ..

자료조사(7) - RTP/RTCP 프로토콜 (실시간 통신 프로토콜)

RTP/RTCP * 관련문서 : RFC 1889, RTP - A Transport Protocol for Real-time Applications IETF AVT WG에서 작성한 인터넷 표준이다. RFC 1889는 실시간 응용 데이터 전송을 위한 트랜스포트 프로토콜인 RTP와 제어 정보를 전달하는 RTCP로 구성된다. RTP (Real-time Transport Protocol) RTP는 멀티캐스트 또는 유니캐스트상에서 음성, 화상, 또는 모의 데이터와 같은 실시간 데이터를 전송하는 응용에 적합한 단대 단 트랜스포트 기능을 제공한다. 그러나 RTP는 자원 예약에 대한 내용은 다루지는 않으며, 특히 적시 데이터 전송 (timely delivery), QoS 보장, 뒤바뀐 순서의 전송 방지와 같은 기능을 제..

자료조사(6) - H.323 프로토콜 의 구조

H.323 프로토콜을 구성하고 있는 여러 가지 관련 프로토콜의 구조에 대해 알아봅니다. < 그림1 > 은 H.323 프로토콜과 다른 프로토콜과의 관련성을 보여주고 있습니다. H.323 프로토콜은 비디오와 보이스를 둘다 지원합니다. (참고로 MGCP 는 보이스만 지원합니다.) 위 처럼 H.323 에서 비디오 장비를 위한 코덱 으로는 H.261 과 H.263 이 정의 되어 있고 보이스를 위한 코덱 으로는 G. 시리즈의 코덱들이 있습니다. 여러분들이 잘 아시는 MPEG4 비디오 코덱이 H.263 코덱 입니다. 어쨌든 이러한 코덱들을 이용하는 미디어 스트림들은 RTP/RTCP 프로토콜을 이용하고 이것들은 UDP 프로토콜 기반에서 동작 합니다. 지금은 RTP 와 RTCP 프로토콜은 미디어 스트림이 전송될 때 사용..

자료조사(5) - 구글 토크 개발자 문서 (음성채팅 App)

Google 토크 개발자 문서 We've provided the following documentation specifically for developers: 우리는 특별히 개발자를위한 다음과 같은 문서를 제공합니다 : Google Talk and Open Communications : answers some basic questions about the protocol and codecs used by Google Talk, as well as future goals and federation. Google 토크 및 개방형 통신이 : 답변 프로토콜과 Google 토크뿐만 아니라, 미래의 목표와 연맹에서 사용되는 코덱에 대한 몇 가지 기본적인 질문. libjingle : an open-source C++..

자료조사(4) - VOIP 두번째

개요전화 산업은 가장 널리 퍼져 있는 기술입니다. 일반적인 전화기만큼이나 사람들에게 편안하고 친숙한 기술은 없습니다. 많은 기업체들이 사용자들에게서 그런 편안함과 친숙함을 빼앗지 않으면서도 음성(voice) 관련 비용을 줄일 수 있는 새로운 방법을 찾고 있습니다. 그러한 비용 절감은 데이터 네트워크와 음성(voice) 네트워크의 통합을 촉진시키고 있습니다. 데이터 네트워크와 음성(voice) 네트워크가 점점 더 많이 통합됨에 따라, 음성(voice) 네트워크의 품질과 신뢰도가 영향을 받지 않게 하려면 주의 깊게 설계하고 기획해야 합니다. 본 설명서에서는 패킷 텔레포니, 좀더 구체적으로 말하면 voice over IP를 가능하게 하는 여러 가지 기술에 대해 설명합니다. 설계와 관련된 문제들을 설명하고, v..

자료조사(3) - VOIP

VOIP(Voice Over IP)라는 것은 용어 해석그대로 IP를 통하여 사람의 보이스를 전달하는 것 환경 구성 - 리눅스 머신 (HUINS PXA255보드에서 작동하는 커널2.4x버젼) - HP의 PDA 역할 - HUINS PXA255보드는 PDA끼리의 연결을 위한 중앙서버역할 - PDA는 VOIP를 위한 클라이언트 즉 단말기의 역할 설명 PDA자체의 CPU가 성능이 그리 좋지는 않다. 초창기에 OGG인코딩을 스트리밍하여 전송양을 줄여보려 했으나, 이는 오히려 인코딩/디코딩시에 시간이 더욱 소모되어 저사양의 PDA에서는 오히려 해가 될거라 판단했다. 그래서 RAW정보 자체를 그대로 전송하기로 결정하였다. 제한조건은 다음과 같다. VOIP상에서 홀펀칭(STUN이라고도 불리운다.) 을 구현하려 했으나 실..

자료조사(2) - 안드로이드의 오디오를 녹음하는 세 가지 방법

1. Mediarecorder API문서: http://developer.android.com/reference/android/media/MediaRecorder.html 사용법: http://developer.android.com/guide/topics/media/index.html Mediarecorder는 그 이름을 보면 알 수 있듯이, media를 record한다. audio는 마이크를 통해 녹음하여 sdcard에 그 파일을 저장한다. 녹음된 audio의 포맷은 MPEG4, RAW AMR, 3GP가 있다. 1) 사용이 쉽다 2) 오디오를 압축된 포맷으로 녹음한다. 3) 전화 소리를 녹음할 수 있다 (수신, 송신 측 모두) 4) 음성 인식을 녹음을 할 수 있다. 1) 오디오 버퍼에 접근할 수 없다...

이번 과제 컨셉을 구현하기 위한 자료조사 (1)

1. 안드로이드에서 PC로 음성을 실시간 전송? - 폰의 마이크로부터 음성 데이터를 얻음 - 음성 데이터를 오디오코덱으로 인코딩 - 서버와 소켓통신.(UDP) 방화벽이 있을 경우 어떻게 통신하는지 예외 처리 - 압축한 데이터를 패킷(RTP)으로 나누어 보낸다 - 받은 패킷을 디코딩/재생 - 소실 될 수 있는 데이터에 대해 Jitter 보정을 2. 안드로이드 SDK의 AudioRecord를 사용하여 일정 시간마다 PCM데이터를 획득하는 방법 :: 단서 :: - "AudioRecordInstance.read()라는 함수로 PCM데이터를 획득 할 수 있다. " - * 그런데, while문 돌려서 계속해서 read를 호출하니 일정한 FrameSize 만큼 계속 획득이 되긴 하나, 획득하는 시간이 일정하지 않다...

1 2