KR100793345B1 - 음성/데이터 통합 시스템의 패킷 처리 방법 및 그 장치 - Google Patents

음성/데이터 통합 시스템의 패킷 처리 방법 및 그 장치 Download PDF

Info

Publication number
KR100793345B1
KR100793345B1 KR1020050116502A KR20050116502A KR100793345B1 KR 100793345 B1 KR100793345 B1 KR 100793345B1 KR 1020050116502 A KR1020050116502 A KR 1020050116502A KR 20050116502 A KR20050116502 A KR 20050116502A KR 100793345 B1 KR100793345 B1 KR 100793345B1
Authority
KR
South Korea
Prior art keywords
packet
storage area
sequence number
storing
voice
Prior art date
Application number
KR1020050116502A
Other languages
English (en)
Other versions
KR20070058170A (ko
Inventor
선민규
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020050116502A priority Critical patent/KR100793345B1/ko
Priority to US11/602,299 priority patent/US7881301B2/en
Priority to GB0623285A priority patent/GB2432995B/en
Publication of KR20070058170A publication Critical patent/KR20070058170A/ko
Application granted granted Critical
Publication of KR100793345B1 publication Critical patent/KR100793345B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/102Gateways
    • H04L65/1023Media gateways
    • H04L65/1026Media gateways at the edge
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/102Gateways
    • H04L65/1033Signalling gateways
    • H04L65/1036Signalling gateways at the edge
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/765Media network packet handling intermediate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M7/00Arrangements for interconnection between switching centres
    • H04M7/006Networks other than PSTN/ISDN providing telephone service, e.g. Voice over Internet Protocol (VoIP), including next generation networks with a packet-switched transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M7/00Arrangements for interconnection between switching centres
    • H04M7/006Networks other than PSTN/ISDN providing telephone service, e.g. Voice over Internet Protocol (VoIP), including next generation networks with a packet-switched transport layer
    • H04M7/0066Details of access arrangements to the networks
    • H04M7/0069Details of access arrangements to the networks comprising a residential gateway, e.g. those which provide an adapter for POTS or ISDN terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Telephonic Communication Services (AREA)

Abstract

본 발명은 패킷을 PCM(pulse code modulation) 데이터로 디코딩하는 DSP(Digital Signal Processing)와, IP 네트워크로부터 소정 시간 동안 수신되는 적어도 하나 이상의 패킷을 시퀸스 넘버 순서대로 저장 영역에 저장하고, 소정 시간이 경과되면, 시퀸스 넘버 순서대로 DSP로 전송하는 호스트 드라이버를 포함하는 음성/데이터 통합 장치를 개시함으로써, 음성/데이터 통합 장치를 통한 음성 통화의 음질을 최대한 보장하는 것이다.

Description

음성/데이터 통합 시스템의 패킷 처리 방법 및 그 장치{apparatus and method of processing packet in system for voice and data combined}
도 1은 본 발명의 바람직한 실시예에 따른 음성/데이터 통합 시스템을 설명하기 위한 블록 도면.
도 2는 본 발명의 바람직한 실시예에 따른 음성/데이터 통합 장치를 설명하기 위한 블록 도면.
도 3은 본 발명의 바람직한 실시예에 따른 호스트 드라이버를 설명하기 위한 블록 도면.
도 4는 본 발명에 적용되는 RTP 패킷의 헤더를 설명하기 위한 도면.
도 5는 본 발명의 바람직한 실시예에 따라 버퍼에 RTP 패킷을 저장하는 방식을 설명하기 위한 도면.
도 6은 본 발명의 바람직한 실시예에 따른 음성/데이터 통합 시스템의 패킷 처리 방법을 설명하기 위한 플로챠트 도면.
도 7a는 본 발명의 바람직한 실시예에 따른 패킷 로스 처리 과정을 설명하기 위한 플로챠트 도면.
도 7b는 본 발명의 바람직한 실시예에 따른 패킷 재배열 과정을 설명하기 위 한 플로챠드 도면.
도 8은 본 발명의 바람직한 실시예에 따른 음성/데이터 통합 장치의 호스트 드라이버를 적용한 시뮬레이션 결과를 나타내기 위한 도면.
<도면의 주요 부분에 대한 부호의 설명>
100 : 음성/데이터 통합 장치 110 : DSP
111 : 호스트 포트 인터페이스 112 : 인코더
113 : 디코더 120 : 호스트 드라이버
121 : IP 인터페이스 122 : 패킷 정렬부
123 : 버퍼
본 발명은 음성/데이터 통합 시스템의 패킷 처리 방법 및 그 장치에 관한 것이다.
오늘날 인터넷(internet)의 급속한 보급과 그에 따른 다양한 서비스에 대한 요구로 인해 인터넷 프로토콜(IP) 네트워크가 성능 및 서비스 측면에서 획기적으로 발달하고 있으며, 그에 따라 보다 다양한 서비스에 대한 요구가 지속적으로 증가하 고 있다.
이러한, 요구 사항 중의 하나인 IP 망을 이용한 음성의 전달은 데이터의 전송과 함께 IP망의 큰 역할로 자리 잡고 있으며, 그에 따른 다양한 음성 전송 기능에 대한 요구도 함께 요구되어지고 있다. 따라서, 디지털 전화기 및 싱글 전화기 등과 같은 단말에 의한 음성 IP(VoIP)간의 통합이 요구되었다.
따라서, 기존의 단말 및 인터넷 단말들이 IP 망을 통해 데이터 또는 음성을 교환할 수 있도록 하는 음성/데이터 통합 장치가 개시되었다.
이러한, 음성/데이터 통합 장치는 IP 망과 각 단말을 정합시키는 게이트웨이(gateway) 기능을 수행하며, IP 망으로부터 수신되는 음성 패킷을 PCM(pulse code modulation) 데이터로 변환하여(decoding) 단말로 전송하거나, 단말로부터 수신되는 PCM 데이터를 음성 패킷으로 변환하여(encoding)하여 IP 망으로 전송하는 VoIP 게이트웨이 기능을 수행한다.
또한, IP 망과 같은 네트워크에서 음성 통화의 품질을 저하시키는 인자로는 크게 패킷 로스(packte loss), 딜레이(delay), 지터(jitter) 등이 있다.
1) 패킷 로스 : 패킷이 네트워크에서 전송 중에 소실되어 음성/데이터 통합 장치에서 디코딩되지 않는 현상으로 음성 품질을 급격히 저하시킨다.
2) 딜레이 : 패킷의 입력에 비해 출력이 시간적으로 늦어지는 현상으로, 네트워크에서 패킷이 이동하는 경로에 따라 각 패킷의 딜레이가 상이해진다.
3) 지터 : 각 패킷의 딜레이 변화율이 상이해짐으로 인하여, 네트워크 장비에서 발생하는 큐잉과 밀집(congestion) 현상을 방지하기 위한 것으로, 각 네트워 크 장비는 지터 버퍼를 구비해야 하며, 지터 버퍼로 인한 전송 딜레이가 발생하게 된다.
따라서, IP 망을 통한 음성 통화의 음질을 보장하기 위해서는 지터 버퍼의 크기를 다이나믹하게 조절하는 다이나믹 지터 버퍼, 음성 패킷인 RTP 패킷을 압축하는 RTP compression, 음성 패킷을 분할하는 RTP multiframe 등과 같은 기법을 사용하고 있으나, 완전한 음질을 보장하고 있지는 않다.
또한, 기존의 음성/데이터 통합 장치에서는 제조사에서 제작되는 DSP에서만 음질 보장을 위한 알고리즘을 처리하고 있음으로, 음질 보장을 위한 알고리즘의 확장성 및 음질 보장율이 그리 크지 않다.
따라서, 본 발명은 상기와 같은 문제점을 해결하기 위하여 창안된 것으로, 기존의 DSP(Digital Signal Processing)에 내장된 알고리즘으로만 음성 패킷을 처리하는 단순한 구조를 탈피하여 보다 향상된 음질을 보장할 수 있는 음성/데이터 통합 시스템의 패킷 처리 방법 및 그 장치를 제공하는 것에 그 목적이 있다.
상기 목적을 달성하기 위한 본 발명의 일측면에 따른 음성/데이터 통합 장치는, 패킷을 PCM(pulse code modulation) 데이터로 디코딩하는 DSP(Digital Signal Processing)와, IP 네트워크로부터 소정 시간동안 수신되는 적어도 하나 이상의 패 킷을 시퀸스 넘버 순서대로 저장 영역에 저장하고, 소정 시간이 경과되면, 시퀸스 넘버 순서대로 DSP로 전송하는 호스트 드라이버를 포함한다.
본 발명에 따른 호스트 드라이버는, IP 네트워크로부터 패킷을 수신하는 인터페이스와, 각 패킷을 저장하는 다수개의 저장 영역을 가지는 버퍼와, 각 패킷을 시퀸스 넘버에 상응하는 버퍼의 저장 영역에 저장하고, 소정 시간이 경과되면, 버퍼의 저장 영역의 순서대로 패킷을 DSP로 전송하는 패킷 정렬부를 포함한다.
본 발명에 따른 패킷 정렬부는, 버퍼의 저장 영역 중 패킷을 DSP로 전송 완료한 영역을 완료 위치로 지정하고, 완료 위치의 인접 다음 저장 영역을 시작 위치로 지정한다.
본 발명에 따른 패킷 정렬부는, 패킷의 시퀸스 넘버에 상응하는 저장 위치를 시작 위치로부터 검색하여, 해당 저장 위치의 저장 영역에 패킷을 저장한다.
본 발명에 따른 패킷 정렬부는, 이전에 수신되어 제 1 저장 영역에 제 1 패킷의 시퀸스 넘버로부터 제 1 시퀸스 넘버를 파악하고, 현재 수신된 제 2 패킷의 제 2 시퀸스 넘버가 제 1 시퀸스 넘버보다 큰 경우, 제 2 시퀸스 넘버에 상응하는 제 2 저장 영역에 제 2 패킷을 저장하고, 제 1 저장 영역과 제 2 저장 영역 사이의 공백 저장 영역에 제 1 패킷을 복사하여 저장한다.
본 발명에 따른 패킷 정렬부는, 공백 저장 영역 중 복사 한계치 범위내의 공백 저장 영역에 제 1 패킷을 복사하여 저장하고, 패킷이 로스되었음을 명시하는 PLC(packet loss concealment) 플래그를 명시한다.
본 발명에 따른 패킷 정렬부는, 복사 한계치 범위외의 공백 저장 영역에 패 킷이 로스되었음을 명시하는 BFI(bad frame indication) 플래그를 명시한다.
본 발명에서 복사 한계치는, 패킷의 전송 주기 두배 크기 값에 상응하는 크기 값 또는 로스트 패킷 값 중 작은 값이다.
본 발명에서 로스트 패킷 값은, 제 1 패킷의 TimeStamp 값과, 제 2 패킷의 TimeStamp 값의 차이를 설정된 음성 코덱의 전송 주기로 나눈 값에 상응하는 크기 값이다.
본 발명에 따른 패킷 정렬부는, 제 2 시퀸스 넘버가 제 1 시퀸스 넘버보다 작은 경우, 제 2 패킷의 저장 위치가 완료 위치와 시작 위치 사이에 존재하지 않으면, 제 2 패킷을 폐기 처리한다.
본 발명에 따른 패킷 정렬부는, 저장 위치가 완료 위치와 시작 위치 사이에 존재하면, 해당 저장 위치에 제 2 패킷을 저장하고, 저장 위치에서 복사 한계치 범위내의 인접한 저장 영역에 PLC 또는 BFI 플래그가 저장되어 있으면, 제 2 패킷을 해당 저장 영역에 복사하여 저장한다.
본 발명에 따른 패킷 정렬부는, 제 2 패킷의 멀티-프레임 값만큼 수신되는 프레임을 해당 저장 영역에 반복 저장한다.
본 발명에서 멀티-프레임 값은, 음성 코덱에 따른 패킷의 페이로드 길이 정보를 제 2 패킷의 페이로드 사이즈 정보로 나눈 값이다.
본 발명에 따른 버퍼는, 순환 저장 방식을 사용하는 링 버퍼이다.
본 발명에서 패킷은, RTP(Realtime Transport Protocol) 패킷이다.
본 발명의 다른 측면에 따른 음성/데이터 통합 장치의 호스트 드라이버는, 적어도 하나 이상의 저장 영역을 가지는 버퍼와, IP 네트워크로부터 수신되는 제 1 패킷을 제 1 저장 영역에 저장하고, 제 2 패킷의 제 2 시퀸스 넘버가 제 1 패킷의 제 1 시퀸스 넘버보다 소정 크기 이상인 경우, 제 2 패킷을 제 2 시퀸스 넘버에 상응하는 제 2 저장 영역에 저장하고, 제 1 저장 영역과 제 2 저장 영역 사이의 공백 저장 영역에 제 1 패킷을 복사하여 저장하는 패킷 정렬부를 포함한다.
본 발명에 따른 음성/데이터 통합 장치의 호스트 드라이버에서 패킷 정렬부는, 제 1 저장 영역에서 복사 한계치 범위내의 공백 저장 영역에 제 1 패킷을 복사하여 저장한다.
본 발명의 또 다른 측면에 따른 음성/데이터 통합 장치의 호스트 드라이버는, 적어도 하나 이상의 저장 영역을 가지는 버퍼와, IP 네트워크로부터 수신되는 제 1 패킷을 제 1 저장 영역에 저장하고, 제 2 패킷의 시퀸스 넘버가 제 1 패킷의 시퀸스 넘버보다 작은 경우, 제 2 패킷을 시퀸스 넘버에 상응하는 제 2 저장 영역에 저장하고, 제 2 저장 영역에서 복사 한계치 범위내에 인접한 저장 영역에 패킷이 로스된 경우, 제 2 패킷을 복사하여 저장하는 패킷 정렬부를 포함한다.
본 발명에 따른 음성/데이터 통합 장치의 호스트 드라이버에서 패킷 정렬부는, 제 2 저장 영역과 제 1 저장 영역 사이에 패킷 전송이 완료된 저장 영역이 있으면, 제 2 패킷을 폐기 처리한다.
본 발명의 또 다른 측면에 따른 음성/데이터 통합 장치의 패킷 처리 방법은, IP 네트워크로부터 수신되는 제 1 패킷을 제 1 저장 영역에 저장하고, 제 1 패킷의 시퀸스 넘버로부터 제 1 시퀸스 넘버를 예측하는 단계와, 제 2 패킷의 제 2 시퀸스 넘버가 제 1 시퀸스 넘버와 동일하면, 제 2 시퀸스 넘버에 상응하는 제 2 저장 영역에 제 2 패킷을 저장하는 단계와, 제 2 시퀸스 넘버가 제 1 시퀸스 넘버보다 크면, 패킷 로스 처리 과정을 수행하는 단계와, 제 2 시퀸스 넘버가 제 1 시퀸스 넘버보다 작으면, 패킷 재배열 처리 과정을 수행하는 단계와, 설정된 소정 시간이 만기되면, 각 저장 영역에 저장된 패킷을 순차적으로 처리하는 단계를 포함한다.
본 발명에 따른 음성/데이터 통합 장치의 패킷 처리 방법에서 제 1 시퀸스 넘버는, 제 1 패킷의 시퀸스 넘버보다 한 단계 큰 시퀸스 넘버이다.
본 발명에 따른 음성/데이터 통합 장치의 패킷 처리 방법에서 각 패킷을 각 저장 영역에 저장하는 단계는, 각 저장 영역 중 패킷을 처리 완료한 저장 영역을 완료 위치로 지정하고, 완료 위치의 인접 다음 저장 영역을 시작 위치로 지정하는 단계와, 패킷의 시퀸스 넘버에 상응하는 저장 위치를 시작 위치로부터 검색하여, 해당 저장 위치의 저장 영역에 패킷을 저장하는 단계를 포함한다.
본 발명에 따른 음성/데이터 통합 장치의 패킷 처리 방법에서 패킷 로스 처리 과정을 수행하는 단계는, 제 2 시퀸스 넘버에 상응하는 제 2 저장 영역에 제 2 패킷을 저장하는 단계와, 패킷의 두배 크기 값 또는 로스트 패킷 값 중 작은 값을 복사 한계치로 선택하는 단계와, 제 1 저장 영역과 제 2 저장 영역 간의 공백 저장 영역 중 복사 한계치 범위내의 저장 영역에 제 1 패킷을 복사하여 저장하고,패킷이 로스되었음을 명시하는 PLC 플래그를 명시하는 단계와, 복사 한계치 범위 외의 공백 저장 영역에패킷이 로스되었음을 명시하는 BFI 플래그를 명시하는 단계를 포함한다.
본발명에 따른 음성/데이터 통합 장치의 패킷 처리 방법에서 로스트패킷 값은, 제 1 패킷의 TimeStamp 값과, 제 2 패킷의 TimeStamp 값의 차이를 설정된 음성 코덱의 전송 주기로 나눈 값에 상응하는 크기 값이다.
본 발명에 따른 음성/데이터 통합 장치의 패킷 처리 방법에서 패킷 재배열 과정을 수행하는 단계는, 제 2 시퀸스 넘버에 상응하는 제 2 저장 영역에 제 2 패킷을 저장하는 단계와, 제 2 저장 영역에서 복사 한계치 범위내의 인접한 저장 영역에 PLC 플래그 또는 BFI 플래그가 저장되어 있으면, 제 2 패킷을 해당 저장 영역에 복사하여 저장한다.
본 발명에 따른 음성/데이터 통합 장치의 패킷 처리 방법은, 제 2 저장 영역이 완료 위치와 시작 위치 사이에 존재하는지 않으면, 제 2 패킷을 폐기 처리하는 단계를 더 포함한다.
본 발명에 따른 음성/데이터 통합 장치의 패킷 처리 방법은, 음성 코덱에 따른 패킷의 페이로드 길이 정보를 제 2 패킷의 페이로드 사이즈 정보로 나눈 값을 멀티-프레임 값으로 산출하는 단계와, 수신되는 프레임을 멀티-프레임 값만큼 제 2 저장 영역에 반복 저장하는 단계를 더 포함한다.
본 발명의 또 다른 측면에 따른 음성/데이터 통합 장치의 패킷 처리 방법은, IP 네트워크로부터 수신되는 제 1 패킷을 제 1 저장 영역에 저장하는 단계와, 제 2 패킷의 제 2 시퀸스 넘버가 제 1 패킷의 시퀸스 넘버보다 소정 크기 이상이면, 제 1 저장 영역에서부터 각 시퀸스 넘버의 차이만큼 떨어져 있는 제 2 저장 영역에 제 2 패킷을 저장하는 단계와, 제 1 저장 영역과 제 2 저장 영역 사이의 공백 저장 영 역에 제 1 패킷을 복사하여 저장하는 단계를 포함한다.
본 발명의 또 다른 측면에 따른 음성/데이터 통합 장치의 패킷 처리 방법은, IP 네트워크로부터 수신되는 제 1 패킷을 제 1 저장 영역에 저장하는 단계와, 제 2 패킷의 제 2 시퀸스 넘버가 제 1 패킷의 제 1 시퀸스 넘버보다 작으면, 제 1 저장 영역에서부터 각 시퀸스 넘버의 차이만큼 앞선 제 2 저장 영역에 제 2 패킷을 저장하는 단계와, 제 2 저장 영역에 인접한 저장 영역에 패킷이 로스된 경우, 제 2 패킷을 복사하여 저장하는 단계를 포함한다.
이하 본 발명에 따른 음성/데이터 통합 시스템의 패킷 처리 방법 및 그 장치를 첨부한 도면을 참조하여 상세히 설명한다.
도 1은 본 발명의 바람직한 실시예에 따른 음성/데이터 통합 시스템을 설명하기 위한 블록 도면이다.
도 1을 참조하면, 본 발명에 따른 음성/데이터 통합 시스템은, 다수개의 단말(200)과, IP 네트워크와 연결과, 각 단말(200)과 연결되어, 각 단말(200)과 IP 네트워크간에 음성 패킷 및 데이터 패킷을 교환해주는 음성/데이터 통합 장치(100)를 포함한다.
음성/데이터 통합 장치(100)은 크게 데이터 패킷을 IP 네트워크와 각 단말(200)간 교환시켜주는 데이터 게이트웨이 기능과, 음성 패킷을 IP 네트워크와 각 단말(200)간 교환시켜주는 VoIP 게이트웨이 기능을 수행한다.
이하 본 발명의 상세 설명에서는 음성/데이터 통합 장치(100)에서 음성 패킷 을 처리하는 기능에 대하여 설명한다.
도 2는 본 발명의 바람직한 실시예에 따른 음성/데이터 통합 장치를 설명하기 위한 블록 도면이다.
도 2를 참조하면, 본 발명에 따른 음성/데이터 통합 장치(100)는 호스트 드라이버(120) 및 DSP(110)를 포함하고, DSP(110)는 인코더(112), 디코더(113) 및 호스트 포트 인터페이스(111)를 포함한다.
호스트 포트 인터페이스(111)는 호스트 드라이브로부터 음성 패킷인 RTP 패킷을 수신하여, 디코더(113)로 전송한다.
디코더(113)는 RTP 패킷을 PCM(pulse code modulation) 데이터로 변환하여(decoding), 해당 단말(200)로 전송한다.
그리고, 단말(200)은 사용자가 입력하는 음성 정보에 따른 PCM 데이터를 DSP(110)의 인코더(112)로 전송하고, 인코더(112)는 PCM 데이터를 변환하여(encoding), 호스트 포트 인터페이스(111)를 통해 호스트 드라이브로 전송한다.
호스트 드라이버(120)는 IP 네트워크로부터 수신되는 패킷 중 음성 패킷인 RTP 패킷을 DSP(110)로 전송한다.
그리고, 호스트 드라이버(120)는 수신되는 RTP 패킷을 순서대로 정렬시킨 후에 DSP(110)로 전송한다.
도 3은 본 발명의 바람직한 실시예에 따른 호스트 드라이버를 설명하기 위한 블록 도면이다.
도 3을 참조하면, 본 발명에 따른 호스트 드라이버(120)는 다수개의 패킷을 임시 저장할 수 있는 버퍼(123)와, 패킷 정렬부(122) 및 IP 인터페이스(121)를 포함한다.
IP 인터페이스(121)는 IP 네트워크로부터 RTP 패킷을 수신하거나, DSP(110)에서 변환(encoding)된 RTP 패킷을 IP 네트워크로 전송한다.
버퍼(123)는 순환 방식인 링 형태의 버퍼(123)를 사용하는 것이 바람직하며, IP 네트워크 또는 DSP(110)로부터 수신되는 RTP 패킷을 임시 저장한다.
패킷 정렬부(122)는 수신되는 RTP 패킷의 시퀸스(sequence) 넘버 정보를 확인하고, RTP 패킷을 시퀸스 넘버의 순서대로 배열하여 버퍼(123)에 임시 저장한다.
그리고, 패킷 정렬부(122)는 설정된 음성 코덱(예를 들어, G.711, G.729 등)에 정의되어 있는 전송 주기(10ms, 20ms) 또는 압축율에 따라 수신되는 RTP 패킷을 버퍼(123)에 임시 저장하여 배열하는 배열 시간을 결정한다.
패킷 정렬부(122)는 수신되는 RTP 패킷의 시퀸스 넘버 정보를 파악하여 해당 RTP 패킷을 임시 저장할 버퍼(123) 위치를 결정하고, 배열 시간이 만기되면, 버퍼(123)에 저장된 RTP 패킷을 순차적으로 DSP(110) 또는 IP 네트워크로 전송한다.
이하, 본 발명의 상세 설명에서는 음질에 영향을 크게 미치는 RTP 패킷은 IP 네트워크로부터 수신되는 RTP 패킷이므로, 호스트 드라이버(120)가 IP 네트워크로부터 수신되는 RTP 패킷을 처리하는 경우에 대하여 설명한다.
도 4는 본 발명에 적용되는 RTP 패킷의 헤더를 설명하기 위한 도면이다.
도 4에 도시된 바와 같이, RTP 패킷의 헤더는, RTP 버전을 명시하는 버전 필드(V), 패킷의 크기가 실제 데이터보다 작음을 명시하는 패딩 필드(P), 또 한 개의 가변 길이(variable-length) 헤더가 있음을 명시하는 확장(extension) 필드(X), 헤더 뒤에 오는 CSRC(Contributing Source) Identifier의 개수를 명시하는 CSCR 개수 필드(CC), 패킷 스트림에서 프레임의 바운더리와 같은 이벤트를 명시하는 마커 필드(M), 음성 또는 미디어의 인코딩 타입을 명시하는 페이로드 타입 필드(PT)를 포함한다.
그리고, RTP 패킷의 헤더는, RTP 패킷의 전송 순서를 명시하는 시퀸스 넘버 필드(Sequence number), RTP 패킷의 청 octet를 샘플링되는 시간을 명시하는 타임스템프 필드(timestamp) 및 지터 계산을 위해 사용되는 동기 소스 식별자 필드(SSRC)를 포함한다.
패킷 정렬부(122)는 도 4에 도시된 바와 같은 RTP 패킷의 헤더에서 시퀸스 넘버 정보를 파악하여, 해당 RTP 패킷을 저장할 버퍼(123)의 위치를 결정한다.
도 5는 본 발명의 바람직한 실시예에 따라 버퍼에 RTP 패킷을 저장하는 방식을 설명하기 위한 도면이다.
도 5a는 본 발명에 적용되는 순환 방식의 버퍼(123)를 설명의 편의상 스틱 방식의 버퍼(123)로 도시한 것으로, 버퍼(123)의 시작 위치(Bst)와 종료 위치(Be)는 실제로는 연속적으로 연결되어 있다.
그리고, Bst'는 패킷 정렬부(122)가 버퍼(123)에 저장된 RTP 패킷을 DSP(110)로 전송 완료한 완료 위치이고, Be'는 수신되는 RTP 패킷을 저장할 저장 위치(Bwr)이다.
도 5b는 패킷 정렬부(122)가 예측하고 있는 RTP 패킷의 시퀸스 넘버 정보를 도시한 것으로, 도 5b에 도시된 바와 같이, 패킷 정렬부(122)가 2 번 시퀸스 넘버를 가진 RTP 패킷을 DSP(110)로 전송한 상태에서 3 번 시퀸스 넘버를 가진 RTP 패킷을 버퍼(123)에 임시 저장하고, 4 번 시퀸스 넘버를 가진 RTP 패킷을 수신 예측하고 있는 상태이다.
그런데, 네트워크 상에서 패킷 로스 또는 부하 등과 같은 이유로, 4 번 시퀸스 넘버를 가진 RTP 패킷이 수신되지 않고, 7 번 시퀸스 넘버를 가진 RTP 패킷이 수신되는 경우, 패킷 정렬부(122)는 수신되는 7 번 시퀸스 넘버를 가진 RTP 패킷, 즉 7 번 RTP 패킷에 해당하는 저장 위치(Bwr)에 저장한다.
그리고, 패킷 정렬부(122)는 RTP 패킷이 저장되지 않은 공백 저장 영역(4,5,6,7 번째 저장 영역)을 확인하고, 공백 저장 영역의 바로 이전의 저장 영역(3번째 저장 영역)의 RTP 패킷을 복사하여 공백 저장 영역에 저장한다.
도 5c는 버퍼(123)의 공백 저장 영역에 RTP 패킷을 저장하는 것을 도시한 것으로, 4 번째 및 5 번째 저장 영역에는 3 번째 저장 영역에 저장된 RTP 패킷을 복사하여 저장하고, 해당 저장 영역에 저장되어야 할 시퀸스 넘버를 가진 패킷이 로스(loss)되었음을 명시하는 PLC(Packet Loss Concealment) 플래그를 저장한다.
이때, 패킷 정렬부(122)는 RTP 패킷의 복사 한계치를 적용하여 RTP 패킷을 공백 저장 영역에 복사하여 저장하며, 복사 한계치는 대략 RTP 패킷의 크기의 두배 정도가 된다. 즉, 음성/데이터 통합 장치(100)에 설정된 음성 코덱의 전송 주기 두배 값에 해당하는 크기 값이 복사 한계치가 된다.
이러한, 복사 한계치는 최대한의 음질을 보장하기 위한 중복되는 RTP 패킷의 개수가 3 개 정도라는 실험치에서 도출된 것이다.
그리고, 패킷 정렬부(122)는 수신 RTP 패킷의 TimeStamp 값과 이전에 수신된 RTP 패킷의 TimeStamp 값의 차이를 음성 코덱의 전송 주기로 나눈 값을 도출하여 로스 패킷 값을 확인한다. 여기서, 로스 패킷 값은 공백 저장 영역의 개수와 동일하며, 패킷 정렬부(122)는 로스 패킷 값과, RTP 패킷의 페이로드 길이 값의 두배한 결과 값 중 작은 값을 복사 한계치로 선택한다.
그리고, 패킷 정렬부(122)는 공백 저장 영역 중에서 PLC 플래그가 저장된, 즉 복사된 RTP 패킷이 저장된 영역 이외의 공백 저장 영역에는 BFI(Bad Frame Indication) 플래그를 저장하여, RTP 패킷이 저장되지 않았음을 명시한다.
한편, 도 5d는 현재 수신된 RTP 패킷의 시퀸스 넘버보다 빠른 시퀸스 넘버를 가진 RTP 패킷이 수신되는 경우를 도시한 것으로, 패킷 정렬부(122)는 7 번 RTP 패킷이 수신된 이후에 5 번 RTP 패킷이 수신되면, '5'번째 저장 영역을 저장 위치(Bwr)로 결정한다.
그리고, 패킷 정렬부(122)는 RTP 패킷이 멀티-프레임(multi-frame) 형태의 패킷으로 수신되는지 여부를 확인한다. 즉, 패킷 정렬부(122)는 음성 코덱의 종류에 따른 RTP 패킷의 페이로드의 길이 정보를 실제 페이로드의 사이즈 정보로 나눈 값을 통해 멀티-프레임 값을 확인할 수 있다.
패킷 정렬부(122)는 멀티-프레임 값만큼 반복해서 수신되는 RTP 패킷의 프레임을 5 번 저장 영역에 저장한다. 즉, 하나의 RTP 패킷이 멀티-프레임 값만큼 분할되어 수신됨으로, 멀티-프레임 값만큼 반복적으로 5 번 저장 영역에 저장한다.
그리고, 패킷 정렬부(122)는 5 번 RTP 패킷을 5 번째 저장 영역에 저장하고, 5 번째 저장 영역에 인접한 다음 저장 영역에 저장될 RTP 패킷이 정상적으로 저장되었는지 여부를 확인한다. 즉, 패킷 정렬부(122)는 5 번째 저장 영역에서부터 복사 한계치 범위내에 인접한 다음 저장 영역인 6 번째, 7 번째 저장 영역에 PLC 플래그 또는 BFI 플래그가 저장되어 있는지 여부를 확인한다.
도 5d에 도시된 실시예와 같이, 6 번째 저장 영역에 BFI 플래그가 저장되어 있음으로, 패킷 정렬부(122)는 5 번 RTP 패킷을 복사하여 6 번째 저장 영역에 저장하고, 7 번째 저장 영역에는 7 번 RTP 패킷이 정상적으로 저장되어 있음으로, 7 번째 저장 영역의 '7'번 RTP 패킷은 그대로 저장 유지한다.
즉, 패킷 정렬부(122)는 RTP 패킷의 시퀸스 넘버가 뒤바뀌어 수신되는 경우, 수신된 RTP 패킷의 저장 위치(Bwr)에 저장하고, 저장 위치(Bwr)에 인접한 다음 저장 영역 중 복사 한계치 범위내에 있는 저장 영역의 PLC 플래그 또는 BFI 플래그가 저장되어 있는지 여부를 확인하여, 저장 위치(Bwr)에 저장된 RTP 패킷을 복사하여 저장한다.
도 6은 본 발명의 바람직한 실시예에 따른 음성/데이터 통합 시스템의 패킷 처리 방법을 설명하기 위한 플로챠트 도면이다.
도 6을 참조하여, 일례에 따라 음성/데이터 통합 장치(100)가 IP 네트워크으로부터 음성 패킷을 수신하는 경우에 대하여 설명하나, 기타 IP 네트워크로 음성 패킷을 전송하는 경우도 이와 동일하게 적용할 수 있다.
음성/데이터 통합 장치(100)에서 IP 네트워크로부터 수신되는 음성 패킷인 RTP 패킷을 처리하는 호스트 드라이버(120)가 IP 네트워크로부터 음성 패킷인 RTP 패킷을 수신한다.
그리고, 호스트 드라이버(120)는 이전 수신되는 RTP 패킷의 이전 시퀸스 넘버와, 수신 예측되는 RTP 패킷의 예측 시퀸스 넘버를 파악한다(S 100).
예를 들어, 호스트 드라이버(120)는 이전 수신된 RTP 패킷의 시퀸스 넘버가 3 번이면, 예측 시퀸스 넘버는 다음 시퀸스 넘버인 4 번으로 파악한다.
그리고, 호스트 드라이버(120)는 예측 시퀸스 넘버와, 현재 수신되는 RTP 패킷의 현재 시퀸스 넘버가 동일한지 여부를 확인한다(S 110).
호스트 드라이버(120)는 예측 시퀸스 넘버와, 현재 시퀸스 넘버가 동일하면, 정상 처리 과정을 수행한다(S 120).
여기서, 정상 처리 과정은 호스트 드라이버(120)가 수신되는 RTP 패킷을 시퀸스 넘버에 해당하는 버퍼(123)의 저장 영역에 임시 저장하는 과정이다.
한편, 호스트 드라이버(120)는 예측 시퀸스 넘버보다 현재 시퀸스 넘버가 큰지 여부를 확인한다(S 130).
그리고, 호스트 드라이버(120)는 예측 시퀸스 넘버보다 큰 시퀸스 넘버를 가진 RTP 패킷이 수신되면, 패킷 로스 처리 과정을 수행한다(S 140). 즉, 호스트 드라이버(120)는 수신 예측된 RTP 패킷의 시퀸스 넘버보다 큰 RTP 패킷이 수신되면, 이전 RTP 패킷과 현재 수신된 RTP 패킷 사이의 시퀸스 넘버를 가진 RTP 패킷이 로스되었다고 판단하여 패킷 로스 과정을 수행한다.
도 7a는 본 발명의 바람직한 실시예에 따른 패킷 로스 처리 과정을 설명하기 위한 플로챠트 도면이다.
도 7a를 참조하면, 호스트 드라이버(120)는 RTP 패킷이 멀티-프레임(multi-frame) 형태로 수신되었는지 여부를 확인한다.
즉, 호스트 드라이버(120)는 음성 코덱의 종류에 따른 RTP 패킷의 페이로드의 길이 정보를 실제 수신된 RTP 패킷의 페이로드의 사이즈 정보로 나눈 값을 통해 멀티-프레임 값을 확인할 수 있다.
그리고, 호스트 드라이버(120)는 예측된 RTP 패킷이 수신되지 않았음으로, 로스된 패킷 값을 확인한다(S 141). 즉, 호스트 드라이버(120)는 이전 수신된 RTP 패킷의 TimeStamp 값과, 현재 수신된 RTP 패킷의 TimeStamp 값의 차이를 음성 코덱의 전송 주기로 나눈 값을 도출하여 로스 패킷 값을 확인한다.
이러한, 로스 패킷 값은 네트워크 상에서 로스된 RTP 패킷의 개수를 의미하며, 버퍼(123)의 공백 저장 영역의 개수와 동일하게 된다.
그리고, 호스트 드라이버(120)는 현재 수신된 RTP 패킷의 시퀸스 넘버에 상응하는 버퍼(123)의 저장 영역을 저장 위치로 선택하여, 해당 저장 영역에 RTP 패킷을 저장한다(S 142).
호스트 드라이버(120)는 현재 수신된 RTP 패킷이 저장된 저장 영역과, 이전 RTP 패킷이 저장된 저장 영역 사이에 로스 패킷 값에 상응하는 공백 저장 영역이 있음으로, 공백 저장 영역에 RTP 패킷을 복사하여 저장할 복사 한계치를 선택한다(S 143).
여기서, 호스트 드라이버(120)는 로스 패킷 값과, RTP 패킷의 페이로드 길이 값의 두배한 결과 값 중 작은 값을 복사 한계치로 선택한다.
예를 들어, 이전 수신된 RTP 패킷의 시퀸스 넘버가 3 이고, 현재 수신된 RTP 패킷의 시퀸스 넘버가 7 번인 경우, 로스 패킷 값은 3 이 되고, RTP 패킷의 페이로드 길이 값을 1 이라고 하면, 복사 한계치는 2 가 된다.
따라서, 호스트 드라이버(120)는 복사 한계치를 2 로 선택하고, 이전 RTP 패킷이 저장된 3 번째 저장 영역에서 복사 한계치 범위내에 인접한 다음 저장 영역인 4 번째 공백 저장 영역과, 5 번째 저장 영역에 3 번 RTP 패킷을 복사하여 저장하고, PLC 플래그를 저장한다(S 144). 즉, 호스트 드라이버(120)는 공백 저장 영역 중 복사 한계치 범위내에 인접한 공백 저장 영역에 현재 수신된 RTP 패킷을 복사하여 저장하고, 실제 RTP 패킷이 로스되었음을 명시한다.
그리고, 호스트 드라이버(120)는 6 번째 저장 영역에 RTP 패킷이 로스되있음을 명시하는 BFI 플래그를 저장한다(S 145).
한편, 도 6에서 호스트 드라이버(120)는 예측 시퀸스 넘버보다 작은 시퀸스를 가진 RTP 패킷이 수신되면, 패킷 재배열 과정을 수행한다(S 150).
도 7b는 본 발명의 바람직한 실시예에 따른 패킷 재배열 과정을 설명하기 위한 플로챠드 도면이다.
도 7b를 참조하면, 호스트 드라이버(120)는 RTP 패킷이 멀티-프레임(multi-frame) 형태의 패킷으로 수신되는지 여부를 확인한다.
즉, 호스트 드라이버(120)는 음성 코덱의 종류에 따른 RTP 패킷의 페이로드의 길이 정보를 실제 수신된 RTP 패킷의 페이로드의 사이즈 정보로 나눈 값을 통해 멀티-프레임 값을 확인할 수 있다(S 151).
그리고, 호스트 드라이버(120)는 수신되는 RTP 패킷을 저장할 저장 위치를 검색되는지 여부를 확인한다(S 152).
즉, 호스트 드라이버(120)는 수신된 RTP 패킷이 이미 처리 완료된 RTP 패킷인지 여부를 확인하기 위하여, 이전 RTP 패킷의 시퀸스 넘버와 현재 수신된 RTP 패킷의 시퀸스 넘버의 차이 값만큼 이전 RTP 패킷이 저장된 버퍼(123)의 저장 영역보다 앞선 저장 영역의 저장 위치로 선택한다.
호스트 드라이버(120)는 DSP(110)로 RTP 패킷이 전송 완료된 저장 영역(종료 위치)부터 이전 RTP 패킷이 저장된 저장 영역으로 차례로 저장 영역을 검색하여, 현재 RTP 패킷의 시퀸스 넘버에 상응하는 저장 위치가 있는지 여부를 확인한다.
그리고, 호스트 드라이버(120)는 종료 위치부터 이전 RTP 패킷이 저장된 저장 영역까지 저장 위치가 검색되지 않으면, 현재 RTP 패킷을 폐기 처리하고(S 153), 검색되면, 해당 저장 영역에 현재 RTP 패킷을 저장한다(S 154).
여기서, 호스트 드라이버(120)는 멀티-프레임 값만큼 반복해서 수신되는 RTP 패킷의 프레임을 저장 영역에 저장한다.
그리고, 호스트 드라이버(120)는 현재 RTP 패킷이 저장된 저장 영역에 인접한 다음 저장 영역에 PLC 플래그 또는 BFI 플래그가 저장되어 있는지 여부를 확인한다(S 155). 즉, 호스트 드라이버(120)는 현재 RTP 패킷이 저장된 저장 영역에서 인접한 다음 저장 영역에 패킷이 로스되었음이 명시되어 있는지 여부를 확인한다.
이때, 호스트 드라이버(120)는 RTP 패킷의 페이로드 길이 값의 두배한 결과 값을 복사 한계치로 선택하고, 복사 한계치 범위내에 포함되는 인접 저장 영역에 PLC 플래그 또는 BFI 플래그가 저장되어 있는지 여부를 확인한다.
일례에 따라, 현재 RTP 패킷의 시퀸스 넘버가 5 번이고, 4 번째,'5'번째 저장 영역에 3 번 RTP 패킷이 복사되어 저장되어 있고, 6 번째 저장 영역에 BFI 플래그가 저장되어 있는 경우에 대하여 설명한다.
호스트 드라이버(120)는 5 번째 저장 영역의 저장 위치로 선택하여 현재 RTP 패킷인 5 번 RTP 패킷을 저장하고(overwrite), 복사 한계치가 2 인 경우, 인접한 6 번째, 7 번째 저장 영역에 PLC 플래그 또는 BFI 플래그가 저장되어 있는지 여부를 확인한다.
그리고, 호스트 드라이버(120)는 6 번째 저장 영역에 PLC 플래그가 저장되어 있음으로, 5 번 RTP 패킷을 복사하여 저장하고(S 156), '7'번째 저장 영역에는 정상적인 7 번 RTP 패킷이 저장되어 있음으로 패킷 재배열 과정을 종료한다.
또한, 도 6에서, 호스트 드라이버(120)는 설정된 음성 코덱(예를 들어, G.711, G.729 등)에 정의되어 있는 전송 주기(10ms, 20ms) 또는 압축율에 따라 결정되는 배열 시간이 만기되었는지 여부를 확인한다(S 160).
그리고, 호스트 드라이버(120)는 배열 시간동안 수신되는 RTP 패킷을 배열한 이후에 배열 시간이 만기되면, 버퍼(123)에 저장되어 있는 RTP 패킷을 순차적으로 DSP(110)로 전송한다(S 170).
도 8은 본 발명의 바람직한 실시예에 따른 음성/데이터 통합 장치의 호스트 드라이버를 적용한 시뮬레이션 결과를 나타내기 위한 도면이다.
도 8은 ITU 표준 음성 품질 측정 알고리즘인 PESQ(Perceptual Evaluation of Speech Quality)를 적용하여, G.729a 음성 코덱을 사용하는 경우를 가정한 시뮬레이션 결과치의 MOS(Mean Opinion Score)를 계산한 것이다.
도 8a는 본 발명에 따른 RTP 패킷의 배열 기능을 가진 호스트 드라이버(120)의 경우(제 2 케이스)와, 기존의 DSP(110)만 사용하는 경우(제 1 케이스)를 순수 지터만이 인가된다고 가정했을 경우에 대한 것이다.
그리고, 도 8b는 제 1 케이스 및 제 2 케이스에 순수 지터와, 50ms 딜레이를 적용한 경우에 대한 것이고, 도 8c는 제 1 케이스 및 제 2 케이스에 순수 지터와, 50ms 딜레이 및 3%의 로스를 적용한 경우에 대한 것이고, 도 8d는 제 1 케이스 및 제 2 케이스에 순수 지터와, 3%의 로스를 적용한 경우에 대한 것이다.
상기 도 8a 내지 도 8d에서 도시된 바와 같이, RTP 패킷의 배열 기능을 가진 호스트 드라이버(120)를 사용하는 음성/데이터 통합 시스템의 음질이 기존의 음성/데이터 통합 시스템의 음질보다 월등히 향상됨을 알 수 있다.
상기한 바와 같이, 본 발명에 따르면, 음성/데이터 통합 시스템에서 수신되는 RTP 패킷을 시퀸스에 따라 배열함으로써, 패킷 로스, 딜레이 또는 지터와 같은 네트워크 부하로 인한 음질 저하를 최소화할 수 있다.
또한, 음성/데이터 통합 시스템의 호스트 드라이버가 RTP 패킷을 배열한 이후에 DSP로 순차적으로 전송함으로써, 음질을 보장하기 위한 알고리즘의 확장성이 높아질 수 있다.

Claims (31)

  1. 음성/데이터 통합 장치에 있어서,
    패킷을 PCM(pulse code modulation) 데이터로 디코딩하는 DSP(Digital Signal Processing)와,
    IP 네트워크로부터 소정 시간동안 수신되는 적어도 하나 이상의 패킷을 시퀸스 넘버 순서대로 저장 영역에 저장하고, 상기 소정 시간이 경과되면, 상기 시퀸스 넘버 순서대로 상기 DSP로 전송하는 호스트 드라이버를 포함하는 음성/데이터 통합 장치.
  2. 제 1 항에 있어서, 상기 호스트 드라이버는,
    상기 IP 네트워크로부터 패킷을 수신하는 인터페이스와,
    상기 각 패킷을 저장하는 다수개의 저장 영역을 가지는 버퍼와,
    상기 각 패킷을 시퀸스 넘버에 상응하는 상기 버퍼의 저장 영역에 저장하고, 상기 소정 시간이 경과되면, 상기 버퍼의 저장 영역의 순서대로 상기 패킷을 상기 DSP로 전송하는 패킷 정렬부를 포함하는 음성/데이터 통합 장치.
  3. 제 2 항에 있어서, 상기 패킷 정렬부는,
    상기 버퍼의 저장 영역 중 상기 패킷을 상기 DSP로 전송 완료한 영역을 완료 위치로 지정하고, 상기 완료 위치의 인접 다음 저장 영역을 시작 위치로 지정하는 음성/데이터 통합 장치.
  4. 제 3 항에 있어서, 상기 패킷 정렬부는,
    상기 패킷의 시퀸스 넘버에 상응하는 저장 위치를 상기 시작 위치로부터 검색하여, 해당 저장 위치의 저장 영역에 상기 패킷을 저장하는 음성/데이터 통합 장치.
  5. 제 3 항에 있어서, 상기 패킷 정렬부는,
    이전에 수신되어 제 1 저장 영역에 제 1 패킷의 시퀸스 넘버로부터 제 1 시퀸스 넘버를 파악하고, 현재 수신된 제 2 패킷의 제 2 시퀸스 넘버가 상기 제 1 시퀸스 넘버보다 큰 경우, 상기 제 2 시퀸스 넘버에 상응하는 제 2 저장 영역에 상기 제 2 패킷을 저장하고, 상기 제 1 저장 영역과 상기 제 2 저장 영역 사이의 공백 저장 영역에 상기 제 1 패킷을 복사하여 저장하는 음성/데이터 통합 장치.
  6. 제 5항에 있어서, 상기 패킷 정렬부는,
    상기 공백 저장 영역 중 복사 한계치 범위내의 공백 저장 영역에 상기 제 1 패킷을 복사하여 저장하고, 패킷이 로스되었음을 명시하는 PLC(packet loss concealment) 플래그를 명시하는 음성/데이터 통합 장치.
  7. 제 6 항에 있어서, 상기 패킷 정렬부는,
    상기 복사 한계치 범위외의 공백 저장 영역에 패킷이 로스되었음을 명시하는 BFI(bad frame indication) 플래그를 명시하는 음성/데이터 통합 장치.
  8. 제 6항에 있어서, 상기 복사 한계치는,
    상기 패킷의 전송 주기 두배 크기 값에 상응하는 크기 값 또는 로스트 패킷 값 중 작은 값인 음성/데이터 통합 장치.
  9. 제 8항에 있어서, 상기 로스트 패킷 값은,
    상기 제 1 패킷의 TimeStamp 값과, 상기 제 2 패킷의 TimeStamp 값의 차이를 설정된 음성 코덱의 전송 주기로 나눈 값에 상응하는 크기 값인 음성/데이터 통합 장치.
  10. 제 6 항에 있어서, 상기 패킷 정렬부는,
    제 2 시퀸스 넘버가 상기 제 1 시퀸스 넘버보다 작은 경우, 상기 제 2 패킷의 저장 위치가 상기 완료 위치와 시작 위치 사이에 존재하지 않으면, 상기 제 2 패킷을 폐기 처리하는 음성/데이터 통합 장치.
  11. 제 10항에 있어서, 상기 패킷 정렬부는,
    상기 저장 위치가 상기 완료 위치와 시작 위치 사이에 존재하면, 해당 저장 위치에 상기 제 2 패킷을 저장하고, 상기 저장 위치에서 상기 복사 한계치 범위내의 인접한 저장 영역에 상기 PLC 또는 BFI 플래그가 저장되어 있으면, 상기 제 2 패킷을 해당 저장 영역에 복사하여 저장하는 음성/데이터 통합 장치.
  12. 제 5항에 있어서, 상기 패킷 정렬부는,
    상기 제 2 패킷의 멀티-프레임 값만큼 수신되는 프레임을 해당 저장 영역에 반복 저장하는 음성/데이터 통합 장치.
  13. 제 12항에 있어서, 상기 멀티-프레임 값은,
    음성 코덱에 따른 패킷의 페이로드 길이 정보를 상기 제 2 패킷의 페이로드 사이즈 정보로 나눈 값인 음성/데이터 통합 장치.
  14. 제 2 항에 있어서, 상기 버퍼는,
    순환 저장 방식을 사용하는 링 버퍼인 음성/데이터 통합 장치.
  15. 제 1 항에 있어서, 상기 패킷은,
    RTP(Realtime Transport Protocol) 패킷인 음성/데이터 통합 장치.
  16. 음성/데이터 통합 장치의 호스트 드라이버에 있어서,
    적어도 하나 이상의 저장 영역을 가지는 버퍼와,
    IP 네트워크로부터 수신되는 제 1 패킷을 제 1 저장 영역에 저장하고, 제 2 패킷의 제 2 시퀸스 넘버가 상기 제 1 패킷의 제 1 시퀸스 넘버보다 소정 크기 이상인 경우, 상기 제 2 패킷을 상기 제 2 시퀸스 넘버에 상응하는 제 2 저장 영역에 저장하고, 상기 제 1 저장 영역과 제 2 저장 영역 사이의 공백 저장 영역에 상기 제 1 패킷을 복사하여 저장하는 패킷 정렬부를 포함하는 음성/데이터 통합 장치의 호스트 드라이버.
  17. 제 16항에 있어서, 상기 패킷 정렬부는,
    상기 제 1 저장 영역에서 복사 한계치 범위내의 공백 저장 영역에 상기 제 1 패킷을 복사하여 저장하는 음성/데이터 통합 장치의 호스트 드라이버.
  18. 음성/데이터 통합 장치의 호스트 드라이버에 있어서,
    적어도 하나 이상의 저장 영역을 가지는 버퍼와,
    IP 네트워크로부터 수신되는 제 1 패킷을 제 1 저장 영역에 저장하고, 제 2 패킷의 시퀸스 넘버가 상기 제 1 패킷의 시퀸스 넘버보다 작은 경우, 상기 제 2 패킷을 상기 시퀸스 넘버에 상응하는 제 2 저장 영역에 저장하고, 상기 제 2 저장 영역에서 복사 한계치 범위내에 인접한 저장 영역에 패킷이 로스된 경우, 상기 제 2 패킷을 복사하여 저장하는 패킷 정렬부를 포함하는 음성/데이터 통합 장치의 호스트 드라이버.
  19. 제 18항에 있어서, 상기 패킷 정렬부는,
    상기 제 2 저장 영역과 상기 제 1 저장 영역 사이에 패킷 전송이 완료된 저장 영역이 있으면, 상기 제 2 패킷을 폐기 처리하는 음성/데이터 통합 장치의 호스 트 드라이버.
  20. 음성/데이터 통합 장치의 패킷 처리 방법에 있어서,
    IP 네트워크로부터 수신되는 제 1 패킷을 제 1 저장 영역에 저장하고, 상기 제 1 패킷의 시퀸스 넘버로부터 제 1 시퀸스 넘버를 예측하는 단계와,
    제 2 패킷의 제 2 시퀸스 넘버가 상기 제 1 시퀸스 넘버와 동일하면, 상기 제 2 시퀸스 넘버에 상응하는 제 2 저장 영역에 상기 제 2 패킷을 저장하는 단계와,
    상기 제 2 시퀸스 넘버가 상기 제 1 시퀸스 넘버보다 크면, 패킷 로스 처리 과정을 수행하는 단계와,
    상기 제 2 시퀸스 넘버가 상기 제 1 시퀸스 넘버보다 작으면, 패킷 재배열 처리 과정을 수행하는 단계와,
    설정된 소정 시간이 만기되면, 상기 각 저장 영역에 저장된 패킷을 순차적으로 처리하는 단계를 포함하는 음성/데이터 통합 장치의 패킷 처리 방법.
  21. 제 20항에 있어서, 상기 제 1 시퀸스 넘버는,
    상기 제 1 패킷의 시퀸스 넘버보다 한 단계 큰 시퀸스 넘버인 음성/데이터 통합 장치의 패킷 처리 방법.
  22. 제 20항에 있어서, 상기 각 패킷을 각 저장 영역에 저장하는 단계는,
    상기 각 저장 영역 중 상기 패킷을 처리 완료한 저장 영역을 완료 위치로 지정하고, 상기 완료 위치의 인접 다음 저장 영역을 시작 위치로 지정하는 단계와,
    상기 패킷의 시퀸스 넘버에 상응하는 저장 위치를 상기 시작 위치로부터 검색하여, 해당 저장 위치의 저장 영역에 상기 패킷을 저장하는 단계를 포함하는 음성/데이터 통합 장치의 패킷 처리 방법.
  23. 제 20항에 있어서, 상기 패킷 로스 처리 과정을 수행하는 단계는,
    상기 제 2 시퀸스 넘버에 상응하는 제 2 저장 영역에 상기 제 2 패킷을 저장하는 단계와,
    상기 패킷의 두배 크기 값 또는 로스트 패킷 값 중 작은 값을 복사 한계치로 선택하는 단계와,
    상기 제 1 저장 영역과 상기 제 2 저장 영역 간의 공백 저장 영역 중 복사 한계치 범위내의 저장 영역에 상기 제 1 패킷을 복사하여 저장하고,패킷이 로스되었음을 명시하는 PLC 플래그를 명시하는 단계와,
    상기 복사 한계치 범위 외의 공백 저장 영역에패킷이 로스되었음을 명시하는 BFI 플래그를 명시하는 단계를 포함하는 음성/데이터 통합 장치의 패킷 처리 방법.
  24. 제 23항에 있어서, 상기 로스트패킷 값은,
    상기 제 1 패킷의 TimeStamp 값과, 상기 제 2 패킷의 TimeStamp 값의 차이를 설정된 음성 코덱의 전송 주기로 나눈 값에 상응하는 크기 값인 음성/데이터 통합 장치의 패킷 처리 방법.
  25. 제 20 항에 있어서, 상기 패킷 재배열 처리 과정을 수행하는 단계는,
    상기 제 2 시퀸스 넘버에 상응하는 제 2 저장 영역에 상기 제 2 패킷을 저장하는 단계와,
    상기 제 2 저장 영역에서 복사 한계치 범위 내의 인접한 저장 영역에 PLC 플래그 또는 BFI 플래그가 저장되어 있으면, 상기 제 2 패킷을 해당 저장 영역에 복사하여 저장하는 단계를 포함하는 음성/데이터 통합 장치의 패킷 처리 방법.
  26. 제 25항에 있어서,
    상기 제 2 저장 영역이 완료 위치와 시작 위치 사이에 존재하지 않으면, 상기 제 2 패킷을 폐기 처리하는 단계를 더 포함하는 음성/데이터 통합 장치의 패킷 처리 방법.
  27. 제 25항에 있어서,
    음성 코덱에 따른 패킷의 페이로드 길이 정보를 상기 제 2 패킷의 페이로드 사이즈 정보로 나눈 값을 멀티-프레임 값으로 산출하는 단계와,
    수신되는 프레임을 상기 멀티-프레임 값만큼 상기 제 2 저장 영역에 반복 저장하는 단계를 더 포함하는 음성/데이터 통합 장치의 패킷 처리 방법.
  28. 제 20 항에 있어서, 상기 패킷은,
    RTP(Realtime Transport Protocol) 패킷인 음성/데이터 통합 장치의 패킷 처리 방법.
  29. 음성/데이터 통합 장치의 패킷 처리 방법에 있어서,
    IP 네트워크로부터 수신되는 제 1 패킷을 제 1 저장 영역에 저장하는 단계와,
    제 2 패킷의 제 2 시퀸스 넘버가 상기 제 1 패킷의 시퀸스 넘버보다 소정 크기 이상이면, 상기 제 1 저장 영역에서부터 상기 각 시퀸스 넘버의 차이만큼 떨어 져 있는 제 2 저장 영역에 상기 제 2 패킷을 저장하는 단계와,
    상기 제 1 저장 영역과 제 2 저장 영역 사이의 공백 저장 영역에 상기 제 1 패킷을 복사하여 저장하는 단계를 포함하는 음성/데이터 통합 장치의 패킷 처리 방법.
  30. 음성/데이터 통합 장치의 패킷 처리 방법에 있어서,
    IP 네트워크로부터 수신되는 제 1 패킷을 제 1 저장 영역에 저장하는 단계와,
    제 2 패킷의 제 2 시퀸스 넘버가 상기 제 1 패킷의 제 1 시퀸스 넘버보다 작으면, 상기 제 1 저장 영역에서부터 각 시퀸스 넘버의 차이만큼 앞선 제 2 저장 영역에 상기 제 2 패킷을 저장하는 단계와,
    상기 제 2 저장 영역에 인접한 저장 영역에 패킷이 로스된 경우, 상기 제 2 패킷을 복사하여 저장하는 단계를 포함하는 음성/데이터 통합 장치의 패킷 처리 방법.
  31. 제25항에 있어서,
    상기 복사 한계치는,
    상기 패킷의 전송주기 두 배 크기 값에 상응하는 주기 값 또는 로스트 패킷 값 중 작은 값인 음성/데이터 통합장치의 패킷처리방법.
KR1020050116502A 2005-12-01 2005-12-01 음성/데이터 통합 시스템의 패킷 처리 방법 및 그 장치 KR100793345B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020050116502A KR100793345B1 (ko) 2005-12-01 2005-12-01 음성/데이터 통합 시스템의 패킷 처리 방법 및 그 장치
US11/602,299 US7881301B2 (en) 2005-12-01 2006-11-21 Apparatus and method for processing packet in voice and data integration system
GB0623285A GB2432995B (en) 2005-12-01 2006-11-22 Apparatus and method for processing packet in voice and data integration system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050116502A KR100793345B1 (ko) 2005-12-01 2005-12-01 음성/데이터 통합 시스템의 패킷 처리 방법 및 그 장치

Publications (2)

Publication Number Publication Date
KR20070058170A KR20070058170A (ko) 2007-06-08
KR100793345B1 true KR100793345B1 (ko) 2008-01-11

Family

ID=37636317

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050116502A KR100793345B1 (ko) 2005-12-01 2005-12-01 음성/데이터 통합 시스템의 패킷 처리 방법 및 그 장치

Country Status (3)

Country Link
US (1) US7881301B2 (ko)
KR (1) KR100793345B1 (ko)
GB (1) GB2432995B (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7715404B2 (en) * 2007-11-15 2010-05-11 Lockheed Martin Corporation Method and apparatus for controlling a voice over internet protocol (VoIP) decoder with an adaptive jitter buffer
US8385338B2 (en) * 2009-04-24 2013-02-26 Futurewei Technologies, Inc. Implementation to avoid the acknowledgement-implosion in a multicast group
WO2012044234A1 (en) * 2010-09-29 2012-04-05 Telefonaktiebolaget L M Ericsson (Publ) Determining loss of ip packets
US8831001B2 (en) * 2012-06-24 2014-09-09 Audiocodes Ltd. Device, system, and method of voice-over-IP communication
US9565139B2 (en) * 2013-03-15 2017-02-07 Comcast Cable Communications, Llc Remote latency adjustment
US10742564B2 (en) 2018-09-16 2020-08-11 Audiocodes Ltd. Device, system, and method of RTP packet transmission and analysis of voice-over-IP communications
KR102313282B1 (ko) * 2020-09-10 2021-10-14 엘아이지넥스원 주식회사 패킷 기반 무선 음성 통화의 생존성을 향상하는 디바이스 및 방법
CN113392605B (zh) * 2021-03-22 2023-06-13 江苏华创微系统有限公司 一种适用于高性能dsp核时序收敛的精细化物理设计方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040041640A (ko) * 2001-09-29 2004-05-17 콸콤 인코포레이티드 데이터 스루풋을 개선시키는 방법 및 시스템

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6785261B1 (en) * 1999-05-28 2004-08-31 3Com Corporation Method and system for forward error correction with different frame sizes
KR100315669B1 (ko) 1999-06-12 2001-11-30 윤종용 인터넷 텔레포니 게이트웨이에서 음성 패킷의 우선 순위 제어에의한 서비스 품질 향상 방법
US6975629B2 (en) * 2000-03-22 2005-12-13 Texas Instruments Incorporated Processing packets based on deadline intervals
US6832261B1 (en) * 2001-02-04 2004-12-14 Cisco Technology, Inc. Method and apparatus for distributed resequencing and reassembly of subdivided packets
US20020172229A1 (en) * 2001-03-16 2002-11-21 Kenetec, Inc. Method and apparatus for transporting a synchronous or plesiochronous signal over a packet network
US6741603B2 (en) * 2001-07-09 2004-05-25 Overture Networks, Inc. Use of a circular buffer to assure in-order delivery of packets
US7260085B2 (en) * 2002-03-21 2007-08-21 Acme Packet, Inc. System and method for determining a destination for an internet protocol packet
GB2392062A (en) 2002-05-24 2004-02-18 Zarlink Semiconductor Ltd Method of organising data packets in a buffer
US7336678B2 (en) * 2002-07-31 2008-02-26 Intel Corporation State-based jitter buffer and method of operation
US7333476B2 (en) 2002-12-23 2008-02-19 Broadcom Corporation System and method for operating a packet voice far-end echo cancellation system
US7269172B2 (en) * 2003-01-07 2007-09-11 Sun Microsystems, Inc. Method and device for managing transmit buffers
US20050237998A1 (en) * 2003-02-03 2005-10-27 Kozo Okuda Audio decoding apparatus and network telephone set
US20050166135A1 (en) * 2004-01-05 2005-07-28 Burke David G. Apparatus, system and method for synchronized playback of data transmitted over an asynchronous network
US7382733B2 (en) * 2004-02-12 2008-06-03 International Business Machines Corporation Method for handling reordered data packets
US7499452B2 (en) * 2004-12-28 2009-03-03 International Business Machines Corporation Self-healing link sequence counts within a circular buffer
US20060187970A1 (en) 2005-02-22 2006-08-24 Minkyu Lee Method and apparatus for handling network jitter in a Voice-over IP communications network using a virtual jitter buffer and time scale modification
US7548539B2 (en) * 2005-03-08 2009-06-16 Audiocodes, Inc. Method and apparatus for Voice-over-IP call recording

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040041640A (ko) * 2001-09-29 2004-05-17 콸콤 인코포레이티드 데이터 스루풋을 개선시키는 방법 및 시스템

Also Published As

Publication number Publication date
US7881301B2 (en) 2011-02-01
GB2432995B (en) 2008-05-21
US20070127466A1 (en) 2007-06-07
KR20070058170A (ko) 2007-06-08
GB2432995A (en) 2007-06-06
GB0623285D0 (en) 2007-01-03

Similar Documents

Publication Publication Date Title
KR100793345B1 (ko) 음성/데이터 통합 시스템의 패킷 처리 방법 및 그 장치
US10651976B2 (en) Method and apparatus for removing jitter in audio data transmission
KR101722719B1 (ko) 역방향의 강력한 헤더 압축 수신기
JP5410601B2 (ja) パケット交換網における遅延の監視
US7450601B2 (en) Method and communication apparatus for controlling a jitter buffer
US7920492B1 (en) Devices, softwares and methods for redundantly encoding a data stream for network transmission with adjustable redundant-coding delay
WO2012141486A2 (en) Frame erasure concealment for a multi-rate speech and audio codec
KR100789902B1 (ko) 다중 프레임을 갖는 브이오아이피 패킷 처리 장치 및 그방법
KR20050110551A (ko) 패킷 망을 이용하여 음성 서비스를 제공하는이동통신시스템에서 음성 패킷 데이터를 효율적으로처리하는 장치 및 방법
EP1929800A2 (en) Restructuring data packets to improve voice quality at low bandwidth conditions in wireless networks
WO2011108964A1 (en) Source code adaption based on communication link quality and source coding delay.
WO2001063774A1 (en) Partial redundancy encoding of speech
US9973402B2 (en) Transmission device, receiving device, and relay device
JP5018776B2 (ja) 通信装置および方法
JP2008259094A (ja) 無線lan電話通信方法及びシステム
JP4454255B2 (ja) 音声/fax通信システム、音声/fax受信装置および揺らぎ吸収バッファ量制御方法
JP5038951B2 (ja) 音声パケット通信方法および音声パケット通信装置
JP2005229378A (ja) 中継装置及びその制御方法
JP2005252429A (ja) Ipパケット化装置
US8711695B2 (en) Transmitter and receiver for streaming media including packet padding
GÁL et al. Effect of WiFi systems on multimedia applications

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
G170 Re-publication after modification of scope of protection [patent]
FPAY Annual fee payment

Payment date: 20101230

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee