KR100964437B1 - V o I P 용 적응성 디-지터 버퍼 - Google Patents

V o I P 용 적응성 디-지터 버퍼 Download PDF

Info

Publication number
KR100964437B1
KR100964437B1 KR1020097002285A KR20097002285A KR100964437B1 KR 100964437 B1 KR100964437 B1 KR 100964437B1 KR 1020097002285 A KR1020097002285 A KR 1020097002285A KR 20097002285 A KR20097002285 A KR 20097002285A KR 100964437 B1 KR100964437 B1 KR 100964437B1
Authority
KR
South Korea
Prior art keywords
time warping
packet
jitter buffer
sample set
value
Prior art date
Application number
KR1020097002285A
Other languages
English (en)
Other versions
KR20090026818A (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 퀄컴 인코포레이티드
Publication of KR20090026818A publication Critical patent/KR20090026818A/ko
Application granted granted Critical
Publication of KR100964437B1 publication Critical patent/KR100964437B1/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
    • H04L12/00Data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/29Flow control; Congestion control using a combination of thresholds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • 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/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/752Media network packet handling adapting media to network capabilities
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/005Correction of errors induced by the transmission channel, if related to the coding algorithm
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/062Synchronisation of signals having the same nominal but fluctuating bit rates, e.g. using buffers
    • H04J3/0632Synchronisation of packets and cells, e.g. transmission of voice via a packet network, circuit emulation service [CES]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2416Real-time traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9084Reactions to storage capacity overflow
    • H04L49/9089Reactions to storage capacity overflow replacing packets in a storage arrangement, e.g. pushout
    • H04L49/9094Arrangements for simultaneous transmit and receive, e.g. simultaneous reading/writing from/to the storage element
    • 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
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Dc Digital Transmission (AREA)
  • Telephone Function (AREA)
  • Use Of Switch Circuits For Exchanges And Methods Of Control Of Multiplex Exchanges (AREA)
  • Telephonic Communication Services (AREA)
  • Time-Division Multiplex Systems (AREA)

Abstract

패킷 교환 통신을 위한 VoIP(Voice over Internet Protocol)용의 적응성(Adaptive) 디-지터(De-Jitter, 지터 제거) 버퍼가 제공된다. 상기 디-지터 버퍼 방법 및 장치는 단-대-단(End-to-end) 딜레이(Delay)의 균형을 맞추면서 언더플로우(Underflow)의 재생을 회피하는 것을 제안한다. 일 예에서, 각 통화 스퍼트의 시작 부분에서 디-지터 버퍼가 다시 연산된다. 다른 예의 경우, 통화 스퍼트 패킷은 나머지 모든 패킷의 수신 시에 압축된다.

Description

V o I P 용 적응성 디-지터 버퍼{ADAPTIVE DE-JITTER BUFFER FOR VOICE OVER IP}
특허를 위한 본 출원은 2004년 8월 30일에 제출되어 그 양수인에게 양도된 "패킷 교환형 통신을 위한 VoIP(Voice over Internet Protocol)용의 적응성 디-지터 버퍼(Adaptive De-Jitter Buffer)"라는 제목의 미국 예비특허출원 제60/606,036호에 대한 우선권을 주장한다.
본 발명은 무선 통신 시스템에 관한 것으로, 구체적으로는 패킷 교환형 통신을 위한 VoIP용 적응성 디-지터 버퍼에 관한 것이다. 본 발명은 패킷이 손실될 수 있는 어떠한 시스템에도 적용된다.
통신 시스템에서, 패킷의 단-대-단 딜레이(End-to-end Delay)란 소스(Source)에서 패킷이 발생된 시점으로부터 목적지에 전송될 때까지 걸리는 시간으로 정의된다. 패킷 교환 통신 시스템에서, 패킷이 소스로부터 목적지까지 전송되면서 생기는 딜레이(Delay, 지연)는, 채널 상태나 네트워크의 로딩(Loading)에 한정되는 것은 아니지만, 이들을 포함한 다양한 동작 조건에 따라 변할 수 있다. 채널 상태는 무선 링크의 품질을 말한다. 무선 링크의 품질을 결정하는 몇 가지 요소는 신호의 세기(Strength), 단말기의 속도 및/또는 물리적 장애이다.
단-대-단 딜레이에는, 패킷이 통과하는 다양한 소자와 네트워크에 도입되는 딜레이가 포함된다. 많은 요인들이 단-대-단 딜레이에 영향을 미친다. 단-대-단 딜레이에서 생기는 변화를 지터(Jitter)라고 한다. 지터는 패킷이 더 이상 유용하지 않게 된 이후에 패킷이 수신되도록 할 수 있다. 예컨대 음성과 같은 로우 레이턴시(Low Latency) 어플리케이션의 경우, 패킷이 너무 늦게 수신되면 그것은 수신기(Receiver)에 의해 드롭(Drop)될 수 있다. 이러한 조건들은 통신 품질의 저하를 유발한다.
패킷 교환형 시스템에서, 데이터는 패킷으로 형성되어 네트워크를 통해 라우팅된다. 각각의 패킷은 패킷 내에, 일반적으로는 헤더에 포함된 할당 주소에 기초하여 네트워크에서 목적지로 전송된다. 패킷의 단-대-단 딜레이, 즉 네트워크에서 패킷이 제 1 사용자 혹은 "전송자"로부터 제 2 사용자 혹은 "수신자"에게 이동할 때까지 걸리는 시간은, 다른 것들 중에서도, 채널 조건, 네트워크 부하, 시스템의 서비스 품질(Quality of Service) 성능 및 리소스를 경합하는 다른 플로우(Flow)들에 따라 변한다. 명확히 하기 위하여, 이하의 논의는, CDMA(Code Division-Multiple Access) 시스템, OFDMA(Orthogonal Frequency Division Multiple Access), W-CDMA(Wideband Code Division Multiple Access), GSM(Global Systems for Mobile Communications) 시스템, 802.11(A,B,G), 802.16과 같은 IEEE 표준을 지원하는 시스템 등을 포함하지만 여기에 한정되지는 않는 패킷 데이터 통신을 지원하는 확산 스펙트럼 통신 시스템을 설명하고 있다는 점에 주의한다.
무선 통신 시스템에서, 각각의 패킷은 동일한 플로우에 속하는 다른 패킷들이 겪는 딜레이와는 다른, 소스에서 목적지까지의 딜레이를 유발한다. 딜레이의 이러한 변화를 "지터"라고 한다. 지터로 인해 수신측 어플리케이션은 더 복잡해진다. 만약 수신부가 지터를 보정하지 않으면, 수신된 메세지는 패킷이 재조합되었을 때 왜곡을 겪게 된다. 어떤 시스템은 수신된 패킷으로부터 메세지를 재구축할 때에 지터를 보정한다. 그러한 시스템은 디-지터 버퍼 딜레이(De-jitter Buffer Delay)라고 부르는 대기 시간을 추가하는 디-지터 버퍼(지터 제거 버퍼)를 포함한다. 디-지터 버퍼가 고정된 큰 디-지터 버퍼 딜레이를 적용하는 경우, 패킷의 도착 시 많은 양의 지터를 조정하는 것이 가능하지만, 더 작은 딜레이를 갖는 패킷들은 더 빨리 처리되었을 수 있음에도 불구하고 역시 상기 큰 디-지터 버퍼 딜레이를 이용하여 처리되기 때문에, 이러한 방식은 효율적이지 않다. 이는, 더 작은 디-지터 버퍼 딜레이를 이용하여 얻을 수 있었던 것보다 더 큰 단-대-단 딜레이를 이들 패킷에 대하여 유발한다.
이를 방지하기 위해서, 디-지터 버퍼를 포함하는 VoIP 시스템은 패킷 딜레이의 변화에 적응하려고 시도할 수 있다. 예컨대, 디-지터 버퍼는 패킷의 도착 통계를 분석하여 패킷 딜레이에서의 변화를 검출할 수 있다. 많은 디-지터 버퍼의 구현물은 그것의 딜레이에 전혀 적응하지 못하고, 전통적으로 큰 딜레이를 갖도록 구성되어 있다. 이러한 경우, 디-지터 버퍼는 패킷에 대하여 과도한 딜레이를 부가하여, 사용자의 경험이 차선(次善)으로 되게 할 수 있다.
이하에서는 디-지터 버퍼 딜레이를 변화시켜서 패킷 딜레이 행동(Behavior)의 변화에 적응하도록 하는 적응성 디-지터 버퍼에 대해 기술한다. 이러한 디-지터 버퍼는 음성 타임 와핑(Speech Time Warping)을 이용하여 패킷의 가변적인 딜레이를 추적하는 능력을 개선한다. 이하의 논의는 주기적 데이터 전송, 로우 레이턴시 조건, 데이터의 순차적인 처리 혹은 지정된 재생 레이트(Rate)를 포함하는 통신 등의 패킷화된 통신에 적용 가능하다. 특히 이하에서는 데이터, 즉 음성(Speech)과 무음(Silence)이 소스에서 발생하고 재생을 위해 목적지에 전송되는 음성 통신에 대해 자세하게 논의한다. 원본 데이터는 패킷화되고 공지된 인코딩(Encoding) 체계를 이용하여 인코딩된다. 수신부에서 각각의 데이터 패킷에 대한 인코딩 방식이 결정된다. 음성 통신에서, 예를 들어, 음성의 인코딩 타입은 무음의 인코딩 타입과 다르다. 이로 인하여 통신 시스템에서 무음 구간을 포함하는 음성의 주기적 특성을 이용할 수 있다. 음성 통신의 경우, 데이터는 갑자기 나타나고(Bursty), 음성 내용은 반복적으로 보일 수 있다. 패킷화된 음성 전송은, 음성 통신의 참여자가 딜레이를 듣고 싶어하지 않기 때문에 로우 레이턴시 요구조건을 가지지만, 통신의 품질은 오직 제한된 딜레이에 대해서만 허용된다. 패킷화된 음성은 서로 다른 경로를 통하여 수신부에 도달하지만, 수신되자마자 패킷들은 원래의 순서대로 재컴파일된다. 따라서 수신된 패킷화된 음성은 순서대로 재생된다. 만약 공기를 통한 전송 혹은 물리 계층에서의 처리 과정 중에 패킷이 손실되었다면, 패킷은 복구되지 않지만, 수신기는 패킷의 내용이 무엇이었는지 평가하거나 추측할 수 있다. 게다가 음성 통신의 재생 비율은 미리 정해진 재생 비율 혹은 범위를 갖는다. 만약 재생이 해당 범위를 벗어나면, 수신부에서의 품질이 저하된다. 음성 통신에 대한 어플리케이션은 본 논의에 관한 어플리케이션의 일 예이다. 다른 어플리케이션에는 비디오 통신, 게임 통신, 혹은 음성 통신의 경우와 유사한 특징, 스펙 및/또는 요구조건을 가지는 기타 통신이 포함된다. 예를 들어, 비디오 통신에서는 재생 속도를 올리거나 줄여야 할 수 있다. 이와 같은 경우에 본 논의가 바람직할 수 있다. 여기서 제안되는 바와 같이, 적응성 디-지터 버퍼에 의해 수신부는 시스템의 지터 요청조건을 만족시키는 서비스의 품질을 제공할 수 있다. 적응성 디-지터 버퍼는 예를 들어 디-지터 버퍼에 저장된 데이터의 양인 타겟 디-지터 버퍼 길이(Target De-jitter Buffer Length)를, 적응성 디-지터 버퍼에서 수신된 데이터의 양과 타이밍에 적응시킨다. 또한 적응성 디-지터 버퍼는 예를 들어 적응성 디-지터 버퍼에 저장된 데이터의 측정인 디-지터 버퍼의 상태(Status) 혹은 크기를 이용하여, 언제 타임 와핑이 수신된 데이터의 처리나 재생에 유익한지를 결정한다. 예를 들어, 데이터가 적응성 디-지터 버퍼에 느린 비율로 도달하면, 적응성 디-지터 버퍼는 이 정보를 타임 와핑 장치에 제공하고, 타임 와핑 장치는 수신된 패킷을 신장(Expand)시킨다. 적응성 디-지터 버퍼에 저장된 데이터가 임계값을 초과하면, 적응성 디-지터 버퍼는 타임 와핑 장치에 경고를 하고, 타임 와핑 장치는 유입되는 데이터를 효과적으로 관리할 수 있도록 패킷을 압축(Compress)한다. 중요한 것은, 타임 와핑은 한계가 있고, 그 한계는 어플리케이션과 통신 타입에 의해 정의된다. 예를 들어, 음성 통신에서는, 타임 와핑은 음성을 압축해서는 안 되는데, 이것은 음성의 피치(Pitch)가 올라가서 듣는 사람이 통신을 이해할 수 없기 때문이다. 마찬가지로, 타임 와핑은 음성을 범위를 넘어서까지 신장해서는 안 된다. 이상적으로, 타임 와핑 범위는 듣는 사람이 불편함을 거의 느끼지 않거나 아예 느끼지 않도록 하는 것으로 정의된다.
디-지터 버퍼 딜레이를 변화시켜서 패킷 딜레이 거동의 변화에 적응하도록 하는 적응성 디-지터 버퍼는 스피치 타임 와핑을 이용하여 패킷의 가변 딜레이를 추적하는 능력을 향상시킨다.
통신 시스템
도 1은 디지털 통신 시스템(50)을 도시한 블록 다이어그램이다. 두 개의 접근 단말기(Access Terminal, ATs, 52, 58)가 기지국(Base Station, BS, 70)을 통하여 통신한다. AT(52) 내부에 있는 송신 처리 장치(Transmit Processing Unit, 64)은 음성 데이터를 인코더(60)에 송신하고, 인코더는 음성 데이터를 인코딩하고 패킷화하며, 패킷화된 데이터를 하위 계층 처리 장치(Low Layer Processing Unit, 58)로 보낸다. 전송을 위해서, 데이터를 BS(70)로 보낸다. BS(70)는 수신된 데이터를 처리하고 수신된 데이터를 AT(82)로 전송하며, 데이터는 하위 계층 처리 장치(88)에서 수신된다. 그 후에 데이터는 디-지터 버퍼(86)에 공급되고, 디-지터 버퍼에서는 지터의 충격을 나타나지 않게 하거나 감소시키기 위해서 데이터를 저장한다. 데이터는 디-지터 버퍼(86)로부터 디코더(Decoder,84)를 지나서 수신 처리 장치(Receive Processing Unit,92)로 전송된다.
AT(82)로부터의 전송을 위해, 데이터/음성은 송신 처리 장치(94)로부터 인코더(90)로 송신된다. 하위 계층 처리 장치(88)는 BS(70)로 전송하기 위한 데이터를 처리한다. AT(52)에서는 BS(70)로부터 오는 데이터의 수신을 위하여, 데이터는 하위 계층 처리 장치(58)에서 수신된다. 데이터 패킷은 그리고 나서 디-지터 버퍼(56)로 보내어지고, 요청되는 버퍼 길이 혹은 딜레이에 도달할 때까지 패킷 데이 터가 디-지터 버퍼에 저장된다. 일단 버퍼 길이 혹은 딜레이가 얻어지면, 디-지터 버퍼(56)는 데이터를 디코더(54)에 보내기 시작한다. 디코더(54)는 패킷화된 데이터를 음성 데이터 패킷으로 변환하고 패킷을 수신 처리 장치(62)로 보낸다. 현재 예에서, AT(52)의 작동은 AT(82)와 유사하다.
디- 지터 버퍼
AT에서 저장 장치(Storage) 혹은 디-지터 버퍼는, 위에서 언급한 대로, 지터의 효과를 나타나지 않게 하기 위해서 사용된다. 일례로, 적응성 디-지터 버퍼는 VoIP 통신과 같은 패킷 교환 통신에 사용된다. 디-지터 버퍼는 적응성 버퍼 메모리를 가지고 있고, 음성 타임 와핑을 이용하여 가변적인 딜레이와 지터를 추적하는 능력을 향상시킨다. 이 예에서 디-지터 버퍼의 처리는 디코더의 처리와 동등하며, 디코더에서 디-지터 버퍼는 패킷을 타임 와핑할 기회 혹은 필요성을 확인하고, 패킷을 타임 와핑할 것을 디코더에 명령한다. 디코더는 디-지터 버퍼에서 명령을 내린 것과 같이 패킷을 압축 혹은 신장함으로써 패킷을 타임 와핑한다.
도 2는 디-지터 버퍼의 실시예를 나타낸 도면이다. 입력되는 인코딩된 패킷들은 버퍼 내에 축적되고, 저장된다. 예를 들어, 버퍼가 FIFO(First In First Out) 버퍼라면, 데이터는 특정한 순서로 수신되고, 그 순서에 의해서 처리되며, 제 1 로 수신되는 데이터가 제 1 로 처리된다. 다른 예로, 디-지터 버퍼는 어느 패킷을 다음에 처리해야 하는지를 지속해서 관리하는 순서를 짠 리스트이다. 적응성 디-지터 버퍼 메모리 저장 장치일 수도 있는데, 디-지터 버퍼의 상태는 적응성 디-지터 버퍼에 저장된 데이터(혹은 패킷의 수)의 척도가 된다. 디-지터 버퍼에서 처리된 데 이터는 디-지터 버퍼로부터 디코더 혹은 다른 유틸리티(Utility)로 보내진다. 인코딩된 패킷은 음성 데이터의 고정된 양에 대응하는데, 예를 들어 8kHz의 샘플링 비율(Sampling Rate)에서는 20 msec가 음성 데이터의 160개의 샘플에 대응한다. 본 발명의 예로, 타임 와핑 기능이 있을 때 디코더에 의해 생산된 샘플의 수는 패킷이 타임 와핑 되었느냐 안되었느냐에 따라서 변하게 된다. 디-지터 버퍼가 디코더/타임 와핑에 패킷을 신장하라는 명령을 내리면, 디코더/시간 와퍼(Warper)는 160개 이상의 샘플을 만들어낸다. 반면에 디-지터 버퍼가 디코더/타임 와핑에 패킷을 압축하라는 명령을 내리면, 디코더/타임 와핑은 160개 이하의 샘플을 만들어낸다. 주목할 점은, 대체(Alternate) 시스템은 20ms로 보코딩(Vocoding)하는 것을 제외하는 것처럼, 다른 재생 방식을 가지고 있다는 점이다.
디-지터 버퍼에 도착하는 패킷들은 일정한 간격을 두고 도착하지 않는다. 그러므로 디-지터 버퍼의 설계 목표 중 하나는 들어오는 데이터의 불규칙함을 조정하는 것이다. 이 발명의 예로, 디-지터 버퍼는 타겟 디-지터 버퍼 길이를 가진다. 타겟 디-지터 버퍼 길이는 제 1 패킷의 재생을 시작하기 전에 디-지터 버퍼에서 축적된 데이터의 요청되는 양을 말한다. 다른 예로, 타겟 디-지터 버퍼 길이는 디-지터 버퍼에서 제 1 패킷이 재생되기 전에 딜레이 되는데 필요한 시간의 양을 말한다. 타겟 디-지터 버퍼 길이는 도 2에 도시되어 있다. 패킷 재생을 시작하기 전에 디-지터 버퍼에 충분한 패킷을 축적함으로써, 디-지터 버퍼는 패킷이 고갈될 가능성을 최소화하면서 일정한 간격으로 후속 패킷을 재생할 수 있다. 도 2는 디-지터 버퍼를 도시하는데, 디-지터 버퍼에 처음으로 수신되는 보코더(Vocoder) 패킷은 디-지터 버퍼로부터 나오는 출력으로 예정되어 있는 다음 패킷이다. 디-지터 버퍼는 요청되는 디-지터 버퍼 딜레이를 만족시키기 위해서 충분한 패킷을 포함한다. 이런 방식으로, 디-지터 버퍼는 패킷에 생기는 지터를 평활화하고(Smooth) 수신부의 패킷 도착 시간 변동이 나타나지 않게 한다.
도 3은 다양한 시나리오에서 전송, 수신 및 패킷의 재생 타임 라인(Timeline)을 도시한다. 제 1 패킷(PKT 1)은 시간 t0에서 전송되고 t₁에서 수신되어 재생된다. 이어지는 패킷들, PKT 2, PKT 3, PKT 4들은 PKT 1의 전송 이후에 20 ms의 간격을 두고 전송된다. 타임 와핑이 없다고 하면, 디코더는 제 1 패킷의 재생 시간부터 일정한 시간 간격(예를 들어 20 ms)을 두고 패킷을 재생한다. 예를 들어, 만약 디코더가 일정하게 20 ms 간격을 두고 패킷을 재생한다면, 처음으로 수신된 패킷은 시간 t₁에서 재생되고, 다음으로 도착하는 패킷들은 t₁부터 20 ms, 40 ms, 60 ms 후에 재생될 것이다. 도 3에 도시된 것처럼, PKT 2의 예상 재생 시간(디-지터 버퍼 딜레이가 없는 경우)은 t₂=t₁+20 ms이다. PKT 2는 예상 재생 시간 t₂ 전에 수신된다. 한편, PKT 3은 예상 재생 시간이 t₃=t₂+20 ms 이고, 그 후에 수신된다. 이러한 조건을 언더플로우(Underflow)라고 한다. 언더플로우는 재생 유틸리티가 패킷을 재생할 준비가 되어 있을 때 발생하지만, 디-지터 버퍼에는 패킷이 존재하지는 않는다. 언더플로우인 경우 전형적으로 디코더가 소거(Erasure) 작용을 하거나, 재생 품질이 저하된다.
도 3은 제 1 패킷의 재생 이전에 디-지터 버퍼가 만드는 딜레이, tdjb에 대한 제 2 시나리오를 도시한다. 이 시나리오에서 디-지터 버퍼 딜레이가 추가되어 매 20 ms 마다 재생 유틸리티에서 패킷(혹은 샘플)을 수신할 수 있게 한다. 이 시나리오에서, PKT 3이 예상 재생 시간 t₃ 이후에 수신되었다고 하더라도, 디-지터 버퍼 딜레이가 추가됨으로써 PKT 3은 PKT 2가 재생된 20 ms 후에 재생된다.
PKT 1은 t0에 전송되고, t₁에 수신되며, t₁에 재생되는 대신에, 앞에서 했던 것처럼, t₁+tdjb=t₁'에 재생된다. 재생 유틸리티는 PKT 1이 수신된 후에 미리 정해진 간격, 예를 들면 20 ms 후에 혹은 t₂'=t₁+tdjb+20=t₂+tdjb에 PKT 2를 재생하고, t₃'=t₃+tdjb에 PKT 3을 재생한다. tdjb에 의한 재생 딜레이로 인하여 제 3 패킷은 언더플로우가 발생하지 않고 재생된다. 따라서 도 3에 도시된 것처럼, 디-지터 버퍼 딜레이의 도입은 언더플로우를 감소시키고 음성 품질의 저하를 막아준다.
음성은 유음(Talkspurts, 통화 스퍼트) 구간과 무음 구간으로 구성된다. 무음 구간의 신장/압축은 음성 품질에 최소한도에서 영향을 미치거나 혹은 아예 영향을 미치지 않는다. 이로 인하여 디-지터 버퍼는 제 1 패킷의 재생을 각각의 유음에 대하여 다르게 딜레이시킬 수 있다.
도 4a와 4b는 서로 다른 유음에 대한 송신과 수신 타임 라인을 도시한다. 주목할 점은 디-지터 버퍼 딜레이의 양은 언더플로우를 막기 위해 결정된다는 점이다. 이를 "최적(Optimal) 디-지터 버퍼 딜레이"라고 한다. 최적 디-지터 버퍼 딜레이는 타겟 디-지터 버퍼 길이와 관련이 있다. 다시 말해서, 버퍼에 충분한 데이터를 저장하여 재생 유틸리티의 스펙(Specification)에 맞게 패킷이 재생되도록 타겟 디-지터 버퍼 길이가 결정된다. 최적 디-지터 버퍼 딜레이는 시스템에서 사용되는 가장 큰 단-대-단 딜레이에 의해서 결정된다. 대체방안으로(Alternately), 최적 디-지터 버퍼 딜레이는 시스템에서 사용되는 평균 딜레이에 기초할 수도 있다. 또한 최적 디-지터 버퍼 딜레이를 결정하는 다른 방법들은 주어진 기준 혹은 시스템 디자인에 따라서 구현될 수 있다. 더 나아가, 타겟 디-지터 버퍼 길이는 최적 디-지터 버퍼 딜레이에 영향을 미치도록 결정되며, 그러므로 타겟 디-지터 버퍼 길이는 수신된 패킷 비율, 패킷 에러 비율(Packet Error Rate, PER) 혹은 다른 작동 통계에 기초하여 연산된다.
도 4a와 4b는 두 가지 예에서 최적 디-지터 버퍼 딜레이를 도시한다. 도시된 대로, 순차적인 패킷의 송신과 수신 사이에 걸리는 시간간격은 시간에 따라 변화한다. PKT 3은 송신되고 수신되기까지 가장 긴 딜레이를 가지고, 이 차이는 디-지터 처리(Processing)을 위한 최적 딜레이 결정에 사용된다.
타겟 디-지터 버퍼 길이가 있는 디-지터 버퍼를 이용하여 최소한 약간의 언더플로우 상태를 피할 수 있다. 도 3을 다시 참고하면, 제 2 시나리오는 언더플로우를 제거하였다.(디코더에 패킷이 입력되려하고, 재생 유틸리티가 패킷의 재생을 준비하고 있지만, 패킷 저장 버퍼에 패킷이 존재하지 않는 경우에 발생한다.) 여기서, PKT 1의 재생 시간을 t₁이라 할 때, t₁ 다음에, 미리 정해진 간격인 20 ms 후에 PKT 2가 재생된다. PKT 3이 시간 t₃에서 재생을 예상 혹은 예측하고 있는 동안, PKT 3은 t₃가 경과 되기까지는 PKT 3은 수신되지 않는다. 다시 말해서, 재생 유틸리티는 PKT 3을 재생할 준비가 되어 있지만, 이 패킷은 저장 버퍼 내에 존재하지 않는다. PKT 3이 예상된 시간에 재생을 위해서 존재하지 않기 때문에, PKT 3은 재생될 수 없고, 그 결과 많은 양의 지터와 PKT 3에 대한 언더플로우가 발생한다. PKT 4는 PKT 4의 예상 재생 시간인 t₄에 재생된다. 주목할 점은 예상 시간 t₄가 t₃로부터 연산된다는 점이다. 각각의 패킷은 하나 이상의 음성 패킷을 포함하고 있기 때문에, 언더플로우로 인한 패킷의 손실은 음성 품질을 저하시킨다.
고려할 수 있는 또 다른 시나리오에는, 도 5에 도시된 바와 같이 "딜레이된 패킷으로 인한 언더플로우"의 실행(Run)이 포함되는데, 여기에는 패킷의 송신, 수신 및 예상되는 재생 시간이 시간에 맞추어 도시되어 있다. 이 시나리오의 경우, 각각의 패킷은 그것의 예상되는 재생 시간 보다 약간 늦게 수신된다. 예를 들어 PKT 50의 예상 재생 시간이 t0이지만, PKT 50은 t0 이후 t0'가 될 때까지 수신되지 않는다. 다음 패킷인 PKT 51이 시간 t₁에서 예정되어 있지만, t₁이후의 t₁'가 될 때까지 수신되지 않는다. 이 때문에, 딜레이된 패킷으로 인한 언더플로우, 즉 높은 비율의 "딜레이된 언더플로우" 및 그에 따른 더 높은 단-대-단 딜레이를 유발하는 언더플로우의 실행이 이루어진다.
명백하게, 재생을 대량으로 딜레이시키는 디-지터 버퍼는 언더플로우를 최소한으로 유지시키는데에 성공적일 것이다. 그러나, 그러한 디-지터 버퍼는 큰 디-지터 버퍼 딜레이를 패킷의 단-대-단 딜레이로 도입하게 된다. 큰 단-대-단 딜레이로 인하여 대화의 흐름을 유지하는 데에 어려움이 생길 수 있다. 100ms 보다 큰 딜레이는 듣는 사람으로 하여금 말하는 사람이 말을 마치지 않았다고 생각하도록 만들 수 있다. 그러므로, 이상적으로는 좋은 품질을 위해 언더플로우를 회피하는 것과 단-대-단 딜레이를 줄이는 것 양쪽을 고려한다. 문제는 한 문제를 해결하고 나면 다른 문제가 악화될 수 있다는 점에 있다. 다시 말해서, 더 작은 단-대-단 딜레이가 일반적으로 더 많은 언더플로우를 발생시키고, 그 역도 마찬가지이다. 따라서 이렇게 경합하는 목표들의 균형을 맞출 필요가 있다. 특히, 디-지터 버퍼가 단-대-단 딜레이를 감소시키는 한편, 언더플로우를 추적하여 회피할 필요성이 존재한다.
디- 지터 버퍼 타켓 길이
적응성 디-지터 버퍼의 설계 목표는, 작은 단-대-단 딜레이를 구현하면서도 그외 동시에 시스템이 음성 패킷의 특정한 "언더플로우 비율"을 타겟으로 할 수 있도록 하는 것이다. 인지되는 품질이 언더플로우 비율의 함수이기 때문에, 특정한 비율의 언더플로우를 타겟으로 하는 능력은 음성 품질의 제어를 가능하게 한다. 디-지터 버퍼에서의 패킷 언더플로우는 누락된(Missing) 패킷이 존재할 때 발생할 수 있다. 패킷은 그것이 손실되거나 딜레이될 때 누락될 수 있다. 액세스 망의 어딘가에서, 예컨대 물리적 계층이나 포워드 링크 스케줄러(Forward Link Scheduler) 상에서 손실된 패킷이 드롭되는 경우처럼 손실된 패킷이 수신기에 도달하기 이전에 드롭될 때 손실된 패킷은 언더플로우를 유발한다. 이 시나리오에서, 디-지터 버퍼 딜레이를 사용함으로써 언더플로우를 수정할 수는 없는데, 이는 패킷이 아예 디-지터 버퍼에 도달하지 않기 때문이다. 선택적으로는, 언더플로우는 딜레이된 패킷의 결과물로서 발생할 수 있고, 그 재생 시간 이후에 도착한다. 딜레이된 패킷으로 인한 언더플로우를 추적하는 것 외에, 적응성 디-지터 버퍼는 손실된 패킷으로 인한 언더플로우도 추적할 수 있다.
딜레이된 패킷으로 인한 언더플로우의 수는 언더플로우를 디-지터 버퍼 딜레이와 맞교환(Trade Off)함으로써 제어할 수 있다. 딜레이된 패킷으로 인한 언더플로우의 목표 비율을 나타내는 값을 "언더플로우 타겟"이라고 한다. 이 값은 디-지터 버퍼의 동작을 위한 목표치이며, 합리적인 범위 내에서 단-대-단 딜레이를 유지하도록 선택된다. 일 예의 경우, 1%(0.01)의 값이 "언더플로우 타겟"으로 사용될 수 있다. 다른 예에서는 0.5%(0.005)의 값을 사용할 수 있다. "언더플로우 타겟"을 구현하기 위하여, 디-지터 버퍼 딜레이를 적응시킬 수 있다.
본 발명의 일 예에서, 딜레이된 패킷으로 인한 언더플로우(이하 "딜레이된 언더플로우"라고 함) 비율의 필터링된 값은 디-지터 버퍼 딜레이를 적응시키는데 사용될 수 있다. 각 무음 구간의 끝(혹은 각 유음 구간(Talkspurt: 통화 스퍼트)의 시작)에서, 상기 디-지터 버퍼 딜레이는 도 6에 도시된 바와 같이 업데이트된다. 도 6에 도시된 바와 같이, 알고리즘은 다음과 같이 특정된다.
1) If (PERdelay < TARGET_VALUE) then
DEJITTER_DELAY=DEJITTER_DELAY-CONSTANT;
2) If (PERdelay > TARGET_VALUE&&PERdelay >= last_PERdelay) then
DEJITTER_DELAY=DEJITTER_DELAY+CONSTANT;
3) Set DEJITTER_DELAY=MAX(MIN_JITTER,DEJITTER_DELAY);
AND
4) DEJITTER_DELAY=MIN(MAX_JITTER,DEJITTER_DELAY). (1)
본 발명에서, 최초의 디-지터 버퍼 딜레이는 40 ms 와 같은 상수 값으로 정해진다. TARGET_VALUE는 "딜레이된 언더플로우"의 목표치(예컨대, 1%)이다. PERdelay는 필터의 파라미터가 TARGET_VALUE가 얻어질 수 있도록 하는 경우에 패킷의 "딜레이된 언더플로우" 비율의 필터링된 값이다. 상기 last_PERdelay는 디-지터 버퍼 딜레이의 이전 업데이트에 있어서 PERdelay의 값이다. DEJITTER_DELAY는 앞서 정의했던 바와 같이 타겟 디-지터 버퍼 길이이다. 본 예에서, CONSTANT는 20 ms 이다. MIN_JITTER와 MAX_JITTER는 디-지터 버퍼 딜레이의 최소 및 최대의 값으로서, 일 예에 따르면 이들은 각각 20ms 및 80ms로 설정된다. MIN_JITTER와 MAX_JITTER는 시스템 시뮬레이션(Simulation)에 기초하여 평가될 수 있다. 상기 값들(MIN_JITTER, MAX_JITTER, CONSTANT)은 디-지터 버퍼가 배치되는 통신 시스템에 따라 최적화될 수 있다.
상기 PERdelay는 각 무음 구간의 끝 혹은 각 통화 스퍼트의 시작에서 업데이트 될 수 있으며, PERdelay은 다음과 같이 연산된다.
Figure 112009502500128-pat00005
PER_CONSTANT는 PERdelay를 추정하기 위해 사용되는 필터를 위한 시간 상수이다. 이 상수의 값은 필터의 메모리를 결정하고, TARGET_VALUE를 만족시키도록 해야 한다. Current_PERdelay는 PERdelay의 마지막 업데이트와 현재 업데이트 사이에 관찰된 "딜레이된 언더플로우"의 비율이다.
Current_PERdelay는 딜레이된 언더플로우 패킷의 수와 PERdelay의 마지막 업데 이트와 현재 업데이트 사이에 수신된 패킷의 전체 수의 비율로 정의된다.
Figure 112010003415536-pat00048
(3)
도 6을 참고하면, 디-지터 버퍼 딜레이를 연산하고 업데이트하기 위한 본 프로세스(100)는 단계(101)에서 상기 DEJITTER_DELAY를 개시함으로써 시작한다. 단계(102)에서는 비교 단계에 의하여 PERdelay가 TARGET_VALUE와 비교된다. 만약 PERdelay가 TARGET_VALUE보다 작으면, 단계(104)에서 상기 CONSTANT 값을 DEJITTER_DELAY로부터 뺀다. 만약 단계(102)에서 PERdelay가 TARGET_VALUE보다 크고, 단계(103)에서 PERdelay가 TARGET_VALUE보다 크고 LAST_PERdelay보다 크거나 같고, 단계(102)에서 최종 PERdelay만큼 크다면, 프로세스는 결정 단계(108)로 계속된다. DEJITTER_DELAY는 단계(108)에서 DEJITTER_DELAY와 CONSTANT 값의 합으로 설정된다. 단계(103)에서부터 계속하면, 만약 PERdelay가 TARGET_VALUE보다 크지 않고 LAST_PERdelay보다 크지 않거나 같으면, 프로세스는 단계(110)으로 계속된다. 단계(104)에서부터 계속하면, 단계(110)에서 DEJITTER_DELAY는 DEJITTER_DELAY 및 MIN_JITTER의 최대값과 같게 설정된다. 프로세스는 단계(110)에서부터 단계(112)까지 계속하여, 단계(112)에서 DEJITTER_DELAY를 DEJITTER_DELAY 및 MAX_JITTER의 최소값과 같게 설정한다.
딜레이 추적
디-지터 버퍼는 (언더플로우 비율을 추적하는 대신에) 딜레이를 추적하는 모드로 들어갈 수 있다. 추적되는 딜레이는 단-대-단 딜레이 혹은 디-지터 버퍼 딜레이이다. 일 예의 경우, 디-지터 버퍼는 타겟 언더플로우 비율이 쉽게 충족될 때 "딜레이 추적" 모드로 들어간다. 이는 디-지터 버퍼가 어떤 구간의 시간 동안 타겟 언더플로우 비율보다 더 낮은 언더플로우 비율을 구현할 수 있음을 의미한다. 이러한 시간의 구간은 수백 밀리초에서 수 초 중 어느 구간일 수도 있다.
이 모드에서 디-지터 버퍼는 타겟 딜레이(Target Delay) 값(목표 지연값)을 가진다. 이는 상기하였던 언더플로우 타겟 값과 유사하다. 상술한 식 (1)은 언더플로우 비율을 타겟팅하는데 사용될 수 있으며, 유사한 방법으로 타겟 딜레이 값을 연산하는데 사용될 수 있다. 디-지터 버퍼가 타겟 딜레이 값을 목표로 하여 이 모드에 들어가는 경우, 타겟 딜레이가 유지되는 한 그 타겟 언더플로우 비율을 감소시키는 것이 가능하게 될 수 있다.
내재적인 버퍼 적응
일부 상황에서, 디코더는 아직 수신되지 않은 패킷을 재생해야 할 수 있다. 이러한 상황이 도 5에 도시되어 있는데, 여기서 PKT 50의 예상 재생 시간은 t0이지만, PKT 50은 이 시간 후에 수신된다. 마찬가지로, PKT 51은 예상 재생 시간인 t₁ 후에 수신되고, PKT 52는 예상 재생 시간인 t₂ 후에 수신되며, 나머지도 마찬가지이다. 여기서, 패킷들은 꽤 규칙적으로 도착하지만, PKT 50은 그것의 예정 재생 시간보다 조금 늦게 수신되었기 때문에, 후속의 패킷도 전부 재생 시간을 놓치게 된다는 점에 주목해야 한다. 한편, 만약 디코더가 t0에서 소실부(Erasure)를 삽입하여 PKT 50을 여전히 t₁에서 재생할 수 있다면, 패킷 전부가 재생 시간을 맞추는 것이 가능할 것이다. PKT 50 대신 소실부가 재생되고 난 이후에 PKT 50을 재생함으로써, 디-지터 버퍼 길이는 효율적으로 적응된다.
소실부 이후에 PKT 50을 재생하는 경우 불연속이 유발될 수 있는데, 이는 2005년 7월 7일에 제출되어 함께 계류 중인 "보코더에서의 위상 정합"이라는 제목의 출원번호 제11/192,231호에 개시된 위상 정합 기술을 이용함으로써 제거 가능하다는 점에도 주목한다.
도 7a에 도시된 바와 같이, PKT 3과 PKT 4 사이의 시간 간격(Gap)과 같이 패킷의 수신에는 간격이 존재할 수 있다. 패킷 도착 시의 딜레이는 각 패킷마다 다를 수 있다. 디-지터 버퍼는 딜레이를 보상하기 위한 조정(Adjustment)에 즉각적으로 반응한다. 도시된 바와 같이, PKT 1, PKT 2 및 PKT 3은 각각 시간 t₁, t₂, t₃에서 수신된다. 시간 t₄에서, PKT 4가 수신될 것으로 예상되지만, PKT 4는 아직 도착하지 않았다. 도 7a에서는 패킷들이 매 20 ms 마다 수신될 것으로 가정하고 있다. 본 도면에서, PKT 2는 PKT 1 이후 20 ms 에서 수신되고, PKT 3은 PKT 1 이후 40 ms 에서 수신된다. PKT 4는 PKT 1 이후 60 ms 에서 수신될 것으로 기대되지만, PKT 1 이후 80 ms에 이르기까지 도착하지 않는다.
도 7b에서 초기 딜레이(Initial Delay)는 수신된 첫번째 패킷, PKT 1의 재생 이전에 디-지터 버퍼에서 도입된다. 여기서 초기 딜레이는 Dinit이다. 이 경우, PKT 1은 시간 Dinit에서, PKT 2는 시간 Dinit+20 ms에서, PKT 3은 Dinit+40 ms에서 버퍼에 의해 재생될 것이다. 도 7b에서, PKT 4가 예상 시간인 Dinit+60 ms 에서 도착하는데 실패하는 경우, 디-지터 버퍼에 의하여 소실부가 재생될 수 있다. 패킷을 재생할 다음 시간에, 디-지터 버퍼는 PKT 4를 재생하려고 할 것이다. 만약 PKT 4가 여전히 도착하지 않았다면, 시간 Dinit+80 ms에서 또 다른 소실부를 송신할 수 있다. 소실부는 PKT 4가 디-지터 버퍼에 도착할 때까지 계속 재생된다. 일단 PKT 4가 디-지터 버퍼에 도착하면, PKT 4가 재생된다. PKT 4가 수신될 때까지는 어떤 다른 패킷도 재생되지 않기 때문에, 이와 같은 프로세스는 딜레이를 유발한다. 시스템이 회복할 수 없는 경우, 즉 PKT 4를 결코 수신할 수 없는 경우에, 본 시스템은 프로세스의 리셋을 적용하여, PKT 4의 재생 없이 PKT 4에 후속하는 패킷의 재생을 가능하게 할 수 있다. 상술한 시나리오에서, PKT 4가 도착하기 전 긴 구간의 시간 동안 소실부가 계속 전송될 수 있기 때문에, 상기 디-지터 버퍼의 단-대-단 딜레이가 증가할 가능성이 있다.
반면에, 도 7c에 도시된 예에서는, 만약 패킷이 도달하지 못하거나, 패킷의 수신이 딜레이될 경우에, PKT 4의 예상 재생 시간에서 소실부가 재생된다. 이는 도 7b와 관련하여 설명한 상기 시나리오와 유사한데, 여기서 본 시스템은 PKT 4를 위해 대기한다. 다음의 재생 시간에서, PKT 4가 여전히 도착하지 못하였지만 다음 패킷인 PKT 5가 도착하였다면, PKT 5가 재생된다. 추가적으로 설명하기 위하여, PKT 4의 수신이 딜레이되었고 디-지터 버퍼가 시간 Dinit+80 ms에서 PKT 4를 수신할 예정이라고 가정한다. PKT 4가 딜레이되는 경우, 소실부가 재생된다. 시간 Dinit+100 ms에서, 만약 PKT 4가 여전히 도착하지 않았다면, 또 다른 소실부를 재생하는 대신에 PKT 5가 재생된다. 이 두번째 시나리오에서는, 딜레이에 대한 조정이 즉시 이루어져서, 통신 네트워크에서의 과도한 단-대-단 딜레이가 회피된다. 재생에 앞서 버퍼에 저장된 데이터의 사이즈가 데이터의 수신에 따라 증가 및 감소하기 때문에, 이러한 프로세스를 IBA라고 할 수 있다.
도 8a의 순서도에는 내재적 버퍼 적응(IBA, Implicit Buffer Adaptation) 프로세스(200)가 도시되어 있다. 본 프로세스(200)는 출력 제어기(Output Controller, 760)에서 혹은 디-지터 버퍼 제어기(756)에서와 같은 적응성 디-지터 버퍼 내의 제어기에서 구현될 수 있다. 본 프로세스(200)는 적응성 디-지터 버퍼를 지원하는 시스템 내의 다른 부분에 존재할 수 있다. 단계(202)에서, 재생을 위한 다음 패킷을 제공하기 위한 요청이 적응성 디-지터 버퍼에서 수신된다. 다음 패킷은 순서상에서 인덱스(Index) i를 가지는 패킷, 구체적으로는 PKT[i]로서 식별된다. 단계(204)에서, 만약 IBA 모드가 인에이블된다면, 프로세스는 IBA 모드에 따라 동작하기 위하여 206까지 계속되고, 만약 IBA 모드가 디스에이블된다면 , 프로세스는 IBA 모드 없이 226까지 계속된다.
만약 PKT[i]가 단계(206)에서 수신되면, 상기 적응성 디-지터 버퍼는 단계(208)에서 재생을 위해 PKT[i]를 제공한다. IBA 모드는 단계(210)에서 디스에이블되고, 인덱스 i는 증가한다(즉, i=i+1). 나아가, 만약 PKT[i]가 단계(206)에서 수신되지 않고 단계(214)에서 PKT[i+1]이 수신된다면, 프로세스는 단계(216)까지 계속되어 PKT[i+1]을 재생한다. 단계(220)에서, IBA 모드는 디스에이블되고, 단계(218)에서 인덱스 i는 두 번 증가한다(즉, i=i+2).
만약 단계(214)에서 PKT[i]와 PKT[i+1]이 수신되지 않는다면, 단계(222)에서 제어기는 소실부의 재생을 시작하고, 단계(224)에서 인덱스 i는 증가한다. 이 예에서, IBA 모드인 경우에, 제어기는 단계(202)에서 수신된 것과 같은 다음 패킷에 대한 요청에 응답하여 2개의 패킷까지 체크한다는 점에 주목한다. 이로써 제어기가 수신된 패킷을 검색하는 패킷 윈도우(Packet Window)를 효과적으로 구현한다. 선택적인 예에서는, 본 예의 경우 패킷 시퀀스 번호가 i, i+1, i+2인 3개의 패킷을 검색하는 다른 윈도우 사이즈를 구현할 수 있다.
단계(204)로 돌아가서, 만약 IBA 모드가 인에이블되지 않으면, 프로세스는 단계(226)으로 계속되어 PKT[i]가 수신되는지 여부를 결정한다. 만약 수신되었다면, 단계(228)에서 PKT[i]가 재생을 위해 제공되고, 인덱스 i는 단계(230)에서 증가한다. 만약 PKT[i]가 단계(226)에서 수신되지 않는다면, 적응성 디-지터 버퍼는 단계(232)에서 재생을 위해 소실부를 제공한다. PKT[i]가 수신되지 않았고 그 대신 소실부가 재생되었기 때문에, IBA 모드가 인에이블된다.
도 8b는 IBA 모드와 관련된 상태(State) 다이어그램이다. 노말(Normal) 모드(242)인 경우에, 만약 적응성 디-지터 버퍼가 재생을 위해 PKT[i]를 제공한다면, 제어기는 노말 모드에 머물러 있는다. 제어기는 소실부가 재생될 때, 노말 모드(242)에서 IBA 모드(240)로 천이된다. 일단 IBA 모드(240)에서는, 제어기는 소실부의 재생 시 그대로 유지된다. 상기 제어기는 PKT[i] 혹은 PKT[i+1]의 재생 시 IBA 모드(240)에서 노말 모드(242)로 천이된다.
도 9는 도 8a 및 도 8b에 도시된 바와 같은 같은 IBA를 구현하는 디-지터 버퍼의 일 예이다. 이 도면에서, 재생 유틸리티는 디코더로부터 재생을 위한 샘플을 요청한다. 그러면 디코더는 재생 유틸리티에 의한 중단되지 않은 재생을 가능하게 하기에 충분한 패킷을 디-지터 버퍼로부터 요청한다. 이 도면에서 패킷은 음성 통신을 전달하고, 재생 유틸리티는 매 20 ms마다 샘플을 재생한다. 선택적인 시스템은 다른 구성을 통하여 디-지터 버퍼로부터 재생 유틸리티로 패킷화된 데이터를 제공할 수 있으며, 상기 패킷화된 데이터는 음성 통신 이외의 것일 수 있다.
도 9에서는 디-지터 버퍼가 패킷의 스택(Stack)으로 도시되어 있다. 이 도면에서, 디-지터 버퍼는 PKT 49를 처음으로 수신하고, 이후 PKT 50, PKT 51, PKT 52, PKT 53 등을 후속하여 수신한다. 도면에서 패킷 번호는 패킷의 순서를 나타낸다. 그러나, 패킷화된 시스템에서 패킷이 이 순서대로 수신될 것이라는 보장은 없다. 이해를 명확히 하기 위해서, 이 도면에서는 패킷이 송신되는 경우와 동일한 번호 순서로 수신되며, 이는 재생의 순서이기도 하다. 도 9에 있어서 설명을 위하여, 디-지터 버퍼에서 후속으로 수신되는 패킷들은 이전에 수신된 패킷들의 위에 스택되는데, 예를 들어 PKT 49는 PKT 50 위에 스택되고, PKT 51은 PKT 50 위에 스택되며, 나머지도 마찬가지이다. 디-지터 버퍼에서 스택의 바닥에 있는 패킷은 첫번째로 재생 유틸리티에 전송된다. 이 도면에서 타겟 디-지터 버퍼 길이는 도시되어 있지 않다는 점에 주의한다.
도 9에서, 패킷의 수신, 패킷의 예상 수신 시간 및 패킷의 재생 시간을 시간축에 대하여 그래프로 나타내었다. 업데이트된 버퍼의 상태는 패킷이 수신된 각각의 시간에 도시되어 있다. 예를 들어, PKT 49가 시간 t0에 수신되고, PKT 49의 예상 재생 시간이 t₁이라고 하자. PKT 49를 수신할 때, 버퍼의 상태는 PKT 49의 수신 시간인 t0에서 그래프의 가장 위쪽에 도시되어 있다. 디-지터 버퍼에서 수신된 각 패킷의 수신 시간은 RECEIVED에 그래프가 그려져 있다. ANTICIPATED PLAYBACK 시간은 RECEIVED 시간 바로 아래에 그래프가 그려져 있다. 재생 시간은 PLAYBACK으로 표시되어 있다.
이 예에서, 애초에 재생을 위한 다음 패킷은 PKT 49이고, PKT 49의 예상 재생 시간은 t0이다. 다음의 연속 패킷(Sequential Packet)은 예상 재생 시간이 t₁이고, 나머지도 마찬가지이다. 제 1 패킷인 PKT 49는 예상 재생 시간인 t0 이전에 수신된다. 그러므로 PKT 49는 예상대로 t0에서 재생된다. 다음 패킷인 PKT 50은 예상 재생 시간이 t₁이다. 하지만 PKT 50의 수신이 딜레이되고, 소실부가 PKT 50 대신에 소실부가 재생 유틸리티로 전송된다. PKT 50의 딜레이는 앞서 기술한대로 언더플로우를 발생시킨다. PKT 50은 예상 재생 시간인 t₁ 이후이지만, 다음 예상 재생 시간인 t₂보다는 이전에 수신된다. 일단 수신되면, PKT 50은 디-지터 버퍼에 저장된다. 그러므로 시간 t₂에서 재생할 패킷에 대한 다음 요청이 수신될 때에, 시스템은 디-지터 버퍼에서 가장 낮은 순서의 패킷을 찾게 되고; PKT 50은 시간 t₂에서 재생을 위해 재생 유틸리티에 공급된다. 주목할 점은, IBA를 사용하면, 비록 PKT 50이 예정된 재생을 위해서 제시간에 수신되지 못했다고 하더라도, PKT 50은 나중에 재생되고, 나머지 시퀀스(Sequence)가 그 지점에서부터 다시 시작한다는 점이다. 도시된 대로, 후속 패킷들, PKT 51, PKT 52 등은 추가적인 소거를 피하기 위하여 제시간에 수신 및 재생된다.
비록 IBA가 패킷의 단-대-단 딜레이를 증가시키는 것처럼 보여도, 실제로는 그렇지 않다. IBA는 더 적은 언더플로우를 발생시키기 때문에, 상기 식 (1)로부터 추정한 디-지터 버퍼 값은 작은 값으로 유지된다. 그러므로 IBA의 전체적인 영향은 전체 패킷의 평균 단-대-단 딜레이를 감소시킨다.
IBA는 유음 구간을 가진 통신 프로세스를 향상시킨다. 유음 구간(Talkspurt: 통화 스퍼트)이란 음성 통신에서 소리(Speech)가 있는 부분을 말하는데, 음성 통신은 소리 부분과 무음 구간을 포함하며, 이는 일반적인 소리 패턴과 일치한다. 소리 처리에 있어서, 보코더는 소리를 위한 패킷의 한 타입과, 무음을 위한 다른 타입을 만들어낸다. 소리 패킷은 하나의 인코딩 비율로 인코딩되고, 무음은 서로 다른 인코딩 비율로 인코딩된다. 인코딩된 패킷이 디-지터 버퍼에 수신될 때, 디-지터 버퍼는 인코딩 비율로부터 패킷의 타입을 확인한다. 디-지터 버퍼는 소리 프레임(Frame)을 유음 구간의 일부로 가정한다. 최초의 무음이 아닌 프레임은 유음 구간의 시작이다. 유음 구간은 무음 패킷이 수신되면 끝난다. 비연속적인 전송에서, 모든 무음 패킷이 전송되는 것은 아닌데, 이는 수신부가 통신의 무음 구간을 발생시키는 시뮬레이션된 노이즈(Simulated Noise)를 구현하기 때문이다. 연속적인 전송에서, 모든 무음 패킷이 전송되고, 수신된다. 일례로, 디-지터 버퍼는 수신된 패킷의 타입에 따라서 디-지터 버퍼 길이를 조정한다. 다시 말해서, 시스템은 통신의 무음 구간을 위해서 요청되는 디-지터 버퍼의 길이를 감소시키도록 결정한다. 주목할 점은 IBA 방식은 재생이 고정 비율 등과 같이 미리 정해진 타이밍 방식에 따라 이루어지는 어떠한 통신에도 적용이 가능하다는 것이다.
타임 와핑
통화 스퍼트는 일반적으로 복수의 데이터 패킷으로 구성되어 있다. 일 예에서, 통화 스퍼트의 제 1 패킷 재생은 디-지터 버퍼 딜레이와 동일한 길이만큼 딜레이될 수 있다. 디-지터 버퍼 딜레이는 다양한 방법으로 결정될 수 있다. 일 시나리오의 경우, 디-지터 버퍼 딜레이는 상기 식 (1)과 같은 알고리즘에 기초하여 연산된 디-지터 버퍼 딜레이일 수 있다. 다른 시나리오의 경우, 디-지터 버퍼 딜레이는 디-지터 버퍼 딜레이의 길이와 같은 음성 데이터를 수신하는데 걸리는 시간일 수 있다. 선택적으로, 상기 디-지터 버퍼 딜레이는 앞서 설명한 값들 중 더 작은 값으로서 선택될 수 있다. 이 예에서, 디-지터 버퍼 딜레이를 식 (1)을 사용하여 연산하면 60 ms이고, 통화 스퍼트의 제 1 패킷은 제 1 시간 ti에서 수신된다고 가정한다. 통화 스퍼트의 다음 패킷이 제 1 패킷 이후 50 ms에서 수신되는 경우, 적응성 디-지터 버퍼 데이터는 디-지터 딜레이인 60 ms와 같다. 다시 말해서, 적응성 디-지터 버퍼에서의 패킷 수신에서부터 재생까지의 시간은 60 ms이다. 주목할 점은, 적응성 디-지터 버퍼의 타겟 길이가 60 ms 딜레이를 구현하도록 설정 가능하다는 점이다. 이와 같은 연산은, 딜레이 시간을 만족하기 위하여 얼마나 많은 패킷이 저장되어야 하는지를 결정한다.
적응성 디-지터 버퍼는 버퍼로부터 데이터의 채우기(Filling)와 비우기(Emptying)를 감시하고, 해당 버퍼의 출력을 조정하여 그 버퍼를 타겟 딜레이 길이, 즉 타겟 딜레이 시간을 얻기 위한 데이터의 양에서 유지한다. 디-지터 버퍼가 통화 스퍼트의 제 1 패킷을 재생하기 위하여 전송하는 경우, Δ만큼의 딜레이가 존재하는데, 여기서 Δ=MIN(디-지터 버퍼 딜레이, 디-지터 딜레이와 동일한 음성 데이터를 수신하기 위해 걸리는 시간)이다. 통화 스퍼트의 후속 패킷들은 이전 패킷을 재생하는데 걸리는 시간에 Δ을 더한 만큼 딜레이된다. 따라서 동일한 통화 스퍼트의 후속 패킷의 디-지터 버퍼 딜레이는 일단 제 1 패킷의 디-지터 버퍼 딜레이가 정의되고 나면 내재적으로(Implicitly) 정의된다. 실제에서는, 디-지터 버퍼 딜레이의 이러한 정의는 도 10에 도시된 바와 같은 상황에 대하여 적응하기 위해 추가적인 고려사항들을 요구할 수 있다.
도 10은 통화 스퍼트에 있어서 음성 정보의 전송을 도시한다. 통화 스퍼트(유음 구간, 150)는 시간 t0에서 수신되고, 통화 스퍼트(154)는 시간 t₂에서 수신된다. 통화 스퍼트(150)와 통화 스퍼트(154) 사이에는 20 ms의 무음 구간(152)이 있다. 수신할 때에 적응성 디-지터 버퍼는 수신 데이터를 저장하고, 각각의 유음부분의 재생을 위한 딜레이를 결정한다. 이 예에서 통화 스퍼트(150)는 시간 t0에서 적응성 디-지터 버퍼에 수신되고, 여기서 적응성 디-지터 버퍼 딜레이 시간은 80 ms로 연산된다. 디-지터 버퍼 딜레이를 수신 시간에 더한 결과가 재생이다. 이런 식으로, 통화 스퍼트(150)는 재생 이전에 적응성 디-지터 버퍼에 의하여 80 ms가 딜레이된다. 통화 스퍼트(150)는 시간 t₁에서 재생이 시작되고, 여기서 t₁=t0+80 ms, 즉 통화 스퍼트(150)가 수신되고 80 ms 후이며, 시간 t₄에서 재생을 완료한다. 식 (1)과 같은 알고리즘을 사용하여 위에서처럼 타겟 디-지터 버퍼 길이를 연산하면, 통화 스퍼트(154)에 적용된 디-지터 버퍼 딜레이는 40 ms 이다. 이것이 의미하는 것은 통화 스퍼트(154)의 제 1 패킷이 시간 t₃에 재생되고, t₃는 t₃=t₂+40 ms 혹은 통화 스퍼트(154)이 수신되고 나서 40 ms 이후가 된다. 하지만 시간 t₃에서 패킷(154)을 재생하는 것은 시간 t₄에서 재생이 끝나는 통화 스퍼트(150)의 마지막 패킷을 재생하는 것과 충돌(Conflict)이 발생한다. 그러므로 패킷(154)을 위해 연산한 40 ms의 디-지터 버퍼 딜레이는 통화 스퍼트(150)의 재생을 끝마치기 위해서 충분한 시간이 아니다. 그러한 충돌을 피하고, 두 패킷이 올바르게 재생되도록 하기 위해서, 통화 스퍼트(150)의 마지막 패킷이 통화 스퍼트(154)의 제 1 패킷과의 사이에 무음 구간(Silence Period)을 두고 재생된 이후에 통화 스퍼트(154)의 제 1 패킷이 재생되어야 한다. 이 예에서 통화 스퍼트(150)와 통화 스퍼트(154)는 시간 t₃와 t₄ 사이에서 중첩된다. 그러므로 이 시나리오의 재생 방법은 바람직하지 않다. 앞에서 기술하였던 것처럼 패킷의 재생 사이에 생기는 중첩을 피하기 위해서는 이전 유음 구간의 마지막 패킷이 재생되는 시점을 탐지할 필요가 있다. 따라서 패킷의 디-지터 버퍼 딜레이를 연산할 때는 이전에 재생된 패킷의 재생 시간을 고려하여야 하고, 그렇게 함으로써 오버랩이나 충돌을 피할 수 있다.
상기 기술한 예에서, 유음 구간의 시작에서 디-지터 버퍼 딜레이를 연산하거나 업데이트 할 수 있다. 하지만, 유음 구간은 길이가 자주 바뀌고 작동 상태도 유음 구간동안 변화하기 때문에, 유음 구간의 시작에서 디-지터 버퍼 딜레이의 업데이트를 제한하는 것은 한계가 있다. 도 10의 예를 고려하면 된다. 따라서 유음 구간동안 디-지터 버퍼 딜레이를 업데이트할 필요가 있다.
주목할 점은, 타켓 딜레이 길이를 유지하기 위해서 적응성 디-지터 버퍼로부터 나오는 데이터의 유입을 제어하는 것이 바람직하다는 것이다. 이 방식에서, 만약 적응성 디-지터 버퍼가 가변 딜레이로 데이터를 수신하면, 적응성 디-지터 버퍼로부터 출력되는 데이터가 조정되어 타겟 디-지터 버퍼 길이를 만족시키기에 충분 한 데이터로 버퍼를 채우게 된다. 적응성 디-지터 버퍼가 타겟 딜레이 길이를 유지하기에 불충분한 패킷을 수신하고 있을 때 패킷을 신장하기 위하여 타임 와핑이 사용된다. 유사하게, 타임 와핑은 적응성 디-지터 버퍼가 너무 많은 패킷을 수신하거나 타겟 딜레이 길이를 넘어선 패킷을 저장하고 있을 때 패킷을 압축하기 위해서도 사용된다. 이상에서 살펴본 것처럼 적응성 디지퍼 버퍼는 디코더와 마찬가지로 패킷을 타임 와핑하는 작동을 한다.
도 11은 네트워크 요소를 통하여 통신하는 두 개의 수신장치를 포함하는 시스템의 블록 다이어그램이다. 수신장치는 AT(252)와 AT(282)이고; 도시된 대로 AT(252, 282)들은 BS(270)을 통하여 통신하도록 적응되었다. AT(252)에서 전송 처리 장치(Transmit Processing Unit, 262)은 음성 데이터를 디지털화하는 인코더(260)에 음성 데이터를 전송하고, 패킷화된 데이터를 하위 계층 처리 장치(258)에 보낸다. 그리고나서 패킷은 BS(270)로 전송된다. AT(252)가 BS(270)로부터 데이터를 전송받을 때, 데이터는 먼저 하위 계층 처리 장치(258)에서 처리되고, 하위 계층 처리 장치에서 적응성 디-지터 버퍼(256)에 데이터 패킷이 제공된다. 수신된 패킷은 타겟 디-지터 버퍼 길이가 될 때까지 적응성 디-지터 버퍼(256)에 저장된다. 일단 타겟 디-지터 버퍼 길이에 도달하면, 적응성 디-지터 버퍼(256)는 데이터를 디코더(254)로 보낸다. 도시된 예에서, 타임 와핑을 구현하기 위한 압축과 신장은 패킷화된 데이터를 음성데이터로 변환시키고 음성 데이터를 수신 처리 장치(262)로 보내는 디코더(254)에서 이루어진다. 이 발명의 다른 예에서, 시간 압축과 신장(타임 와핑)은 제어기(도시되지 않았음)에 의해 적응성 디-지터 버퍼 내에서 이루어지기도 한다. AT(282)의 작동은 AT(252)의 작동과 유사하다. AT(282)는 전송 처리 장치(294)로부터 인코더(290), 하위 계층 처리 장치(288)를 거쳐 마지막으로 BS(270)까지 이어지는 경로를 통해 데이터를 전송한다. AT(282)는 하위 계층 처리 장치(288)로부터 적응성 디-지터 버퍼(286), 디코더(284)를 거쳐 수신 처리 장치(292)까지 이어지는 경로를 통해 데이터를 수신한다. 더 자세한 프로세스가 도시되지는 않았지만, 프로세스는 음성과 같은 데이터의 재생에 영향을 미치고, 오디오 처리(Audio Processing)이나 스크린 디스플레이(Screen Display) 등에도 영향을 미친다.
식 (1)의 디-지터 버퍼 식으로 유음 구간의 시작에서 디-지터 버퍼 딜레이를 연산할 수 있다. 디-지터 버퍼 딜레이는 유음 구간에 의해 결정된 것과 같은 패킷의 특정 숫자를 나타내거나 혹은 음성 데이터와 같은 데이터의 재생에 상응하는 예상 시간을 나타낸다. 여기서 주목할 점은 디-지터 버퍼가 타겟 크기를 가지고 있고, 그에 따라서 모든 시간 시점에서 저장된 디-지터 버퍼가 예상할 수 있는 데이터의 양이 결정된다는 것이다.
채널 상태와 다른 작동 상태로 인한 패킷 딜레이의 변동은 적응성 디-지터 버퍼에서 패킷의 도착시간에 차이를 발생시킨다. 결과적으로, 적응성 디-지터 버퍼에서 데이터의 양(패킷의 수)은 연산된 디-지터 버퍼 딜레이 값, 즉 DEJITTER_DELAY 보다 작거나 커지게 된다. 예를 들어, 패킷은 인코더에서 원래 만들어질 때보다 느리거나 빠른 비율로 디-지터 버퍼에 도달한다. 패킷이 디-지터 버퍼에 예상했던 것보다 느린 비율로 도달하면, 디-지터 버퍼가 고갈되기 시작하는데 이는 입력되는 패킷이 출력되는 패킷과 같은 비율로 공급되지 못하기 때문이다. 한편, 만약 패킷이 인코더에서 발생되는 것보다 빠른 비율로 디-지터 버퍼에 도달하면, 디-지터 버퍼의 크기가 커지기 시작하는데 이는 패킷들이 들어오는 것만큼 빠르게 디-지터 버퍼에서 빠져나가지 못하기 때문이다. 전자의 상태에서는 언더플로우가 발생하고, 후자의 상황에서는 디-지터 버퍼에서 더 큰 버퍼링(Buffering) 시간때문에 생기는 높은 단-대-단 딜레이가 발생한다. 만약 패킷 데이터 시스템의 단-대-단 딜레이가 감소하면, 이 딜레이 감소를 음성 재생과 합치는 것이 바람직하기 때문에, 후자는 중요하다. 단-대-단 딜레이는 중요한 음성 품질 요소이고, 어떠한 재생 딜레이의 감소도 대화 즉, 음성 품질을 증가시키는 것으로 이해할 수 있다.
디-지터 버퍼에서 DEJITTER_DELAY와 디-지터 버퍼에 실제로 존재하는 데이터의 양 사이에 발생하는 불일치를 수정하기 위해서, 디-지터 버퍼의 일례로 타임 와핑을 이용한다. 타임 와핑은 음성 패킷의 지속시간을 신장 혹은 압축하는 것이다. 디-지터 버퍼는 적응성 디-지터 버퍼가 고갈되기 시작할 때 음성 패킷을 신장함으로써 그리고 적응성 디-지터 버퍼가 DEJITTER_DELAY보다 커질 때 음성 패킷을 압축함으로써 타임 와핑을 구현한다. 적응성 디-지터 버퍼는 패킷을 타임 와핑하는 디코더와 동등한 작동을 한다. 타임 와핑은 단-대-단 딜레이를 증가시키지 않으면서 음성 품질을 상당히 향상시킨다.
도 12는 타임 와핑을 구현하는 적응성 디-지터 버퍼의 예를 나타내는 블록 다이어그램이다. 물리적 계층 처리 장치(Physical Layer Processing Unit, 302)는 데이터를 데이터 스택(Data Stack, 304)에 제공한다. 데이터 스택(304)은 패킷을 적응성 디-지터 버퍼와 제어 장치(306)로 출력한다. FL(Forward Link) MAC(Medium Access Control) 처리 장치(300)는 디-지터 처리 장치(306)에 통화 채널 전환(Handoff) 지시를 한다. MAC 계층(Layer)은 예를 들어 공기와 같은 물리적 계층에서 데이터의 수신과 송신을 위한 프로토콜을 구현한다. MAC 계층은 보안(Security), 암호화(Encryption), 인증(Authentication) 및 연결 정보를 포함한다. IS-856을 지원하는 시스템에서, MAC 계층은 제어 채널(Control Channel), 접속 채널(Access Channel), 순방향 및 역방향 통화 채널(Forward and Reverse Traffic Channel)을 제어하는 규칙을 포함한다. 타겟 길이 추정장치(Target Length Estimator, 314)는 식 (1)에 주어진 연산방법을 이용하여 타겟 디-지터 버퍼 길이를 디-지터 버퍼에 제공한다. 타겟 길이 추정장치(314)의 입력은 패킷 도착 정보와 현재 패킷 에러 비율(Packet Error Rate, PER)을 포함한다. 주목할 점은, 대체 구성은 적응성 디-지터 버퍼 안에 타겟 길이 추정장치(314)와 제어 장치(306)를 포함한다는 것이다.
예를 들어, 적응성 디-지터 버퍼와 제어 장치(306)는 더 나아가 재생에 제공되는 데이터의 비율을 제어하는 재생 제어를 포함한다. 적응성 디-지터 버퍼와 제어 장치(306)으로부터, 패킷은 DTX 장치(Discontinuous Transmission Unit, 308)로 보내어지는데, DTX 장치(308)는 음성 데이터가 수신되지 않았을 때 디코더(310)에 배경 잡음(Background Noise) 정보를 제공한다. 주목할 점은, 적응성 디-지터 버퍼와 제어 장치(306)에 의해 제공된 패킷은 디코드 처리을 위한 준비가 되어 있으며, 이 패킷을 보코더 패킷이라고 한다. 디코더(310)는 패킷을 디코드하고 PCM(Pulse Code Modulated) 음성 샘플을 타임 와핑 장치(312)에 제공한다. 대체 예에서, 타임 와핑 장치(312)는 디코더(310) 안에 구현된다. 타임 와핑 장치(312)는 적응성 디-지터 버퍼와 제어 장치(306)로부터 타임 와핑 지시자(Indicator)를 수신한다. 타임 와핑 지시자는 제어 신호, 명령(Instruction) 신호 혹은 플래그(Flag)이다. 이 예에서, 타임 와핑 지시자는 예를 들어 압축, 신장 및 타임 와핑이 없는 상태를 가지는 다중상태(Multi-state) 지시자이다. 서로 다른 압축 레벨(Level) 그리고/혹은 신장 레벨을 위해 서로 다른 값이 존재한다. 이 예에서, 타임 와핑 지시자는 타임 와핑 장치(312)에 데이터를 신장 혹은 압축할 것을 명령한다. 타임 와핑 지시자는 신장, 압축 혹은 와핑을 하지 않음을 지시한다. 타임 와핑 지시자는 타임 와핑 장치(312)에서 제어 신호 개시 액션(Action)으로 고려된다. 타임 와핑 지시자는 어떻게 패킷을 신장 혹은 압축할 것인가를 상세히 설명하는 메세지이다. 타임 와핑 지시자는 신장 혹은 압축과 같은 어떤 액션을 취해야 할 것인지 뿐만 아니라 타임 와핑할 패킷을 식별하기도 한다. 훨씬 더 나아가, 타임 와핑 지시자는 타임 와핑 장치(312)에 옵션의 선택을 제공한다. 무음 구간 동안 DTX 모듈은 디-지터 버퍼에 의해 제공된 소실부의 스트림을, 해당 디코더가 더 정확하고 더 높은 품질의 배경 잡음을 재구성하기 위하여 사용하는 무음 프레임과 소실부의 스트림으로 변경한다. 선택적인 예에서, 타임 와핑 지시자는 타임 와핑을 켜고(Turn On) 끄기도(Turn Off) 한다. 다른 예에서, 타임 와핑 지시자는 재생을 위해 사용되는 압축과 신장의 양을 확인한다. 타임 와핑 장치(312)는 디코더로부터 나온 샘플을 수정하고 샘플을 오디오 처리(316)에 제공하며, 오디오 처리은 인터페이스, 변환(Conversion) 장치, 오디오 드라이버(Driver) 및 스피커를 포함한다.
타임 와핑 지시자가 언제 압축을 할 것인지 혹은 언제 신장을 할 것인지 확인하는 동안, 타임 와핑을 주어진 패킷에 적용하는 데 걸리는 시간을 결정할 필요가 있다. 구현에서, 타임 와핑의 양은 고정되어 있고, 거기서 패킷은 음성의 주기(Cycle) 혹은 피치(Pitch)에 따라서 타임 와핑된다.
실시예에서, 타임 와핑 지시자는 타겟 신장 혹은 타겟 압축 레벨의 비율에 따라 통신이 이루어진다. 다시 말해서, 타임 와핑 지시자는 주어진 비율에 따라 압축 혹은 신장할 것을 명령한다.
시나리오에서, 입력 데이터의 공지된 특징을 인식하는 것이 필요하다. 예를 들어, 인코더는 공지된 톤(Tone)의 데이터 혹은 길이의 명확한 특징을 예상한다. 이 상황에서는, 특정한 특징이 예상되기 때문에, 타임 와핑을 사용하여 수신된 데이터를 수정하는 것은 바람직하지 않다. 예를 들어, 인코더는 특정 톤 길이를 가지는 입력 데이터를 예상하게 된다. 하지만, 타임 와핑이 활성화(Enable, 인에이블)되면, 톤의 길이는 타임 와핑에 의해서 수정된다. 그러므로, 이 시나리오에서, 타임 와핑이 활성화되어서는 안 된다. 톤에 기초한 통신은 TTY/TDD(TeleTYpewriter/Telecommunications Device for the Deaf) 정보, 키패드 기입(Entry)을 사용한 어플리케이션 혹은 톤에 기반한 통신을 사용한 다른 어플리케이션을 포함하지만, 그에 한정되지는 않는다. 그러므로 그러한 통신에서, 톤 캐리어(Carrier) 정보의 길이와 재생시에 압축 혹은 신장같은 피치나 톤의 길이 수정은 그 정보의 손실을 가져온다. TTY, TDD 및 난청 수신자(Hearing-Impaired Recipients)에 의한 수신을 가능하게 하는 다른 어플리케이션에서, 디코더는 그러한 통신에서 디코더의 인밴드(Inband) 처리 상태를 제공한다. 이 지시(Indication)는 디-지터 버퍼에서 제공되는 타임 와핑 지시를 마스크(Mask)하는 데에 사용된다. 만약 디코더가 TTY/TDD 정보와 함께 있는 처리 패킷이라면, 타임 와핑은 불활성화 된다. 이는 두 가지 방식으로 실행된다; TTY/TDD 상태를 디-지터 버퍼 제어기에 제공하거나 혹은 TTY/TDD 상태를 타임 와핑 장치에 공급하는 것이다. 만약 디코더 TTY/TDD 상태가 디-지터 버퍼 제어기에 제공되면, 제어기는 보코더가 TTY/TDD 처리을 지시할 때 어떠한 신장 혹은 압축 지시도 하지 않는다. 만약 디코더 TTY/TDD 상태가 타임 와핑 장치에 제공되면, 이는 필터처럼 작동하고, 만약 디코더가 TTY/TDD 정보를 처리하고 있다면 타임 와핑 장치는 타임 와핑에 작용하지 않는다.
도 12에 도시된 시스템에서, 적응성 디-지터 버퍼와 제어 장치(306)는 입력 데이터 비율을 감시하여, 너무 많거나 적은 패킷이 이용가능하거나 버퍼링되었을 때 타임 와핑 지시자를 발생시킨다. 적응성 디-지터 버퍼와 제어 장치(306)는 언제 타임 와핑을 해야하는지와 어떠한 조치를 취해야 하는지를 결정한다. 도 13a는 압축과 신장 임계값을 사용하여 타임 와핑 결정을 하는 적응성 디-지터 버퍼의 예를 도시한다. 디-지터 버퍼는 불규칙한 시간 간격을 두고 수신되는 패킷들을 축적한다. 디-지터 타겟 길이 추정장치(314)는 타겟 디-지터 버퍼 길이를 발생시킨다; 그러면 타겟 디-지터 버퍼 길이는 디-지터 버퍼에 적용된다. 실제로는, 적응성 디-지터 버퍼와 제어 장치(306)가 디-지터 버퍼 길이 값을 사용하여 디-지터 버퍼의 작동에 관한 제어 결정과 재생 제어를 한다. 압축과 신장 임계치는 압축 혹은 신장이 각각 트리거(Trigger)될 때 지시를 한다. 이 임계치들은 디-지터 타겟 길이의 일부분으로 특정된다.
도 13a에 도시된대로, 타겟 디-지터 버퍼 길이는 LTarget으로 도시된다. 압축 임계치는 TCompress로 주어지고, 신장 임계치는 TExpand로 주어진다. 디-지터 버퍼 길이가 증가하여 압축 임계치인 TCompress를 넘어설 때, 디-지터 버퍼는 디코더에 패킷을 압축하라는 지시를 한다.
유사한 방식으로, 디-지터 버퍼 길이가 감소하여 신장 임계치인 TExpand 아래로 내려가면, 디-지터 버퍼는 디코더에 패킷을 신장하라는 지시를 하고, 더 느린 비율에서 효과적으로 재생된다.
신장과 압축 임계치 사이의 작용점은 단-대-단 딜레이의 과도한 증가와 함께 언더플로우를 막아준다. 그러므로 타겟 작동은 TCompress과 TExpand 사이에 있다. 예에서, 신장과 압축 임계치를 위한 값들은 각각 디-지터 버퍼의 타겟 값의 50%와 100%로 설정된다. 예에서, 타임 와핑은 디코더 내부에서 수행되지만, 대체 예에서는, 타임 와핑이 디코더 외부에서, 예를 들어 디코딩 다음 순서에 수행된다. 하지만 신호를 합성(Synthesize)하기 전에 타임 와핑하는 것이 보다 간단하다. 만약 그러한 타임 와핑 방법이 신호를 디코딩한 후에 적용되면, 신호의 피치 주기를 추정할 필요가 있다.
어떤 시나리오에서, 디-지터 버퍼 길이가 커지는 경우가 있는데, 예를 들면 W-CDMA시스템과 같은 경우이다. 타임 와핑 임계치 발생기(Generator)는 다중의 압축 및 신장 임계치를 발생시킨다. 이 임계치들은 작동 상태에 따라 연산할 수 있다. 멀티-레벨 임계치는 도 13b에 도시되어 있다. TC1은 제 1 압축 임계치, TC2는 제 2 압축 임계치 및 TC3는 제 3 압축 임계치이다. 또한 도시된대로 TE1, TE2 및 TE3은 신장 임계치의 세 가지 서로 다른 값을 나타낸다. 임계치는 타임 와핑의 비율(얼마나 많은 패킷이 타임 와핑 되었는가), 압축된 패킷, 신장된 패킷의 백분율 혹은 이 두 값의 비율에 기초하여 정해진다. 임계치의 수는 필요에 따라 변하는데, 다시 말해서 임계치가 필요에 따라 더 많아질 수도 있고 적어질 수도 있다. 임계치 각각은 서로 다른 압축 혹은 신장 비율과 관련되어 있는데, 예를 들어, 더 정밀한 입도(Granularity)를 요청하는 시스템을 위해서 더 많은 임계치가 사용되고, 덜 정확한 입도를 요청하는 시스템을 위해서는 더 적은 임계치가 사용된다. TE1, TE2 및TE3 등은 타겟 딜레이 길이의 함수이다. 임계치는 딜레이된 언더플로우를 추적함으로써 변화되고 PER과 같은 에러 통계에 기초한다.
도 14는 타임 와핑이 있는 경우와 없는 경우 패킷의 재생을 도시한다. 도 14에서, PKT 1은 시간 t₁에서 전송되고, PKT 2는 시간 t₂에서 전송되고, 나머지도 마찬가지이다. 패킷은 지시된 것처럼, PKT 1은 시간 t₂'에, PKT 2는 시간 t₂''에 수신부에 도달한다. 각각의 패킷에서, 타임 와핑을 사용하지 않은 재생 시간은 PLAYBACK WITHOUT WARPING으로 주어진다. 반대로, 타임 와핑을 사용한 재생 시간은 PLAYBACK WITH WARPING으로 주어진다. 본 예는 음성 통신과 같은 실시간 데이터에 대한 것이기 때문에, 패킷의 예상 재생 시간은 고정 시간 간격이다. 재생되는 동안 이상적으로는 각각의 패킷이 예상 재생 시간 이전에 도달한다. 만약 패킷이 예상 재생 시간보다 너무 늦게 도달하면, 재생 품질에 큰 영향을 주게 된다.
PKT 1과 PKT 2는 제 시간에 수신되고, 타임 와핑 없이 재생된다. PKT 3과 PKT 4는 둘 다 같은 시간 t₄'에 수신된다. 각각의 패킷은 예상 재생 시간, PKT 3은 시간 t₄'', PKT 4는 시간 t5' 이전에 수신되기 때문에, 두 패킷의 수신 시간이 만족된다. PKT 3과 PKT 4는 와핑없이 제 시간에 재생된다. PKT 5가 예상 재생 시간 이후인 시간 t6'에 수신될 때 문제가 발생한다. 예상 재생 시간에 PKT 5의 자리에서 소실부가 재생된다. PKT 5는 소실부의 재생이 시작된 후에 도달한다.
와핑이 없는 제 1 시나리오에서, PKT 5는 드롭되고, PKT 6은 수신되어 다음 예상 재생 시간에 재생된다. 주목할 점은, 이 시나리오에서 PKT 6은 재생을 위해 제시간에 수신된다는 점이다. 제 2 시나리오에서, 만약 PKT 5와 PKT 5 다음 패킷들이 딜레이되면, 각각의 패킷은 예상 재생 시간에 훨씬 늦게 도달하게 되고, 일련의 소실부를 발생시킨다. 이상의 두 시나리오에서, 정보가 손실되는데, 즉 제 1 시나리오에서 PKT 5가 드롭되고; 제 2 시나리오에서는 PKT 5와 그 다음의 패킷들이 손실된다.
대체로, IBA 기술을 이용하여 PKT 5를 다음 예상 재생 시간에 재생되도록 하고, 그 시점부터 다음 패킷들이 계속하여 재생된다. IBA는 데이터의 손실을 막아주지만, 일렬의 패킷을 딜레이시킨다.
타임 와핑이 없는 재생은 통신 시스템에서 전체적인 단-대-단 딜레이를 증가시킨다. 도 14에 도시된 것처럼, 패킷-상호간(Inter-packet) 딜레이는 정보의 손실을 가져오거나 혹은 재생을 딜레이시킨다.
PKT 5가 예상 재생 시간보다 늦게 도달할 때, 타임 와핑을 구현함으로써 패킷을 신장시키고 소실부를 피할 수 있다. 예를 들어 PKT 4를 신장하면 20 ms 대신에 23ms에서 재생이 이루어진다. PKT 5는 PKT 5가 수신되는 때에 재생된다. 이는 만약 소실부가 대신 전송되었다면 재생되었을 시간보다 일찍 재생된 것이다. (도 14의 IBA는 있지만 타임 와핑이 없는 재생을 위한 대체 예에서 도시된 것과 같다.) 소실부를 전송하는 대신 PKT 4를 신장하면 재생 품질의 저하가 적어진다. 그러므로 타임 와핑은 대기 시간의 감소뿐 아니라 전체적인 재생 품질도 향상시킨다. 도 14에서, PKT 5 다음의 패킷들은 타임 와핑 기술을 이용하지 않았을 때보다 타임 와핑 기술을 이용하였을 때 더 일찍 재생된다. 이 특정한 예에서, PKT 7은 타임 와핑이 사용되었을 때 시간 t9에서 재생되며, 타임 와핑을 사용하지 않았을 때보다 일찍 재생된다.
음성 송신에서 전송된 정보가 가지는 특징의 변화와 함께 변화하는 작동 상태를 고려하면서 재생 품질을 향상시키는 타임 와핑 어플리케이션이 있다. 유음과 무음 구간을 가지는 음성 특징은 변화하기 때문에, 타겟 디-지터 버퍼 딜레이 길이와 각각의 데이터 타입에 따른 압축과 신장 임계치는 서로 다르다.
도 15는 하나의 유음 구간에서 다른 유음 구간으로의 디-지터 딜레이 차이에서 발생하는 "무음 압축"과 "무음 신장"의 예를 도시한다. 도 15에서, 어두운 영역(120, 124, 128)은 수신된 정보의 유음 주기를 나타내고, 밝은 영역(122, 126)은 무음 구간을 나타낸다. 수신이 되면, 유음 구간(120)는 시간 t₁에서 시작하여 시간 t₂에서 끝난다. 수신부에 디-지터 딜레이가 도입되고, 그 로인해 유음 구간(120)의 재생이 시간 t₁'에서 시작된다. 디-지터 버퍼 딜레이는 시간 t₁'와 시간 t₁의 차이이다. 수신이 되면, 무음 구간(122)는 시간 t₂에서 시작하여 시간 t₃에서 끝난다. 무음 구간(122)는 압축되어, 시간 t₂'에서 시간 t₃'까지의 무음 구간(132)에서 재생되는데, 이는 수신된 무음 구간(122)의 원래 시간 간격보다 짧다. 유음 구간(124)는 시간 t₃에서 시작되어 소스에서 시간 t₄에 끝난다. 유음 구간(124)는 수신부에서 시간 t₃'부터 시간 t₄'까지 재생된다. 무음 구간(126, 시간 t₄에서 시간 t5까지)은 수신부에서 신장되어 무음 구간(136)에서 재생되는데, 여기에서 (t5'-t₄')가 (t5-t₄)보다 크다. 무음 구간은 디-지터 버퍼가 재생 패킷을 일찍 필요로 할 때 압축되고, 디-지터 버퍼가 패킷의 재생을 딜레이할 때 신장된다. 예에서, 무음 구간의 압축 혹은 신장은 음성 품질의 사소한 저하를 가져온다. 따라서, 적응성 디-지터 딜레이는 음성 품질의 저하 없이 달성된다. 도 15의 예에서, 적응성 디-지터 버퍼는 적응성 디-지터 버퍼에 의해서 식별되고 제어되는 무음 구간을 압축하고 신장한다.
주목할 점은, 여기서 사용된 것처럼, 타임 와핑은 수신 데이터의 도달 시간과 길이에 응하여 재생을 적응 제어하는 것이라는 점이다. 타임 와핑은 재생에서 데이터의 압축, 신장 혹은 양자를 모두 사용하여 구현된다. 예에서, 임계치는 압축을 트리거하기 위해서 사용된다. 다른 예에서, 임계치는 신장을 트리거하기 위해서 사용된다. 다른 예에서, 두 개의 트리거가 사용된다; 하나는 압축 그리고 하나는 신장을 위해서 사용된다. 또 다른 예에서는 다중의 트리거를 사용하고, 타임 와핑을 다양한 레벨로 지시하는데, 이를테면 서로 다른 비율로 빠르게 재생한다.
타임 와핑은 또한 디코더 내부에서도 수행된다. 디코더가 타임 와핑을 수행하는 기술은 2005년 5월 5일에 출원되고, "잔류 수정을 통한 보코더 내에서의 프레임 타임 와핑(Time Warping Frames Inside the Vocoder by Modifying the Residual)"으로 명명되어 공동 출원중인 미국 특허출원 제 11/123,467호에 기술되어 있다.
예에서, 타임 와핑은 음성 세그먼트(Segment)들을 "병합(Merging)"하는 방법을 포함한다. 음성 세그먼트 병합은 적어도 두 개의 연속적인 음성 세그먼트에서 음성 샘플을 비교하는 것과 관련되고, 만약 비교한 세그먼트들 사이에 상관 관계가 발견되면, 적어도 두 개의 연속적인 세그먼트들에서 하나의 세그먼트를 창조한다. 음성 병합은 음성 품질을 유지하기 위해서 이루어진다. 음성 품질 유지와 "클릭(Clicks)"과 "팝스(Pops)"를 포함하여 사용자를 위한 음성 품질을 저하시키는 소리와 같은, 가공물(Artifacts)이 출력 음성에 도입되는 것을 최소화하는 것은 병합될 세그먼트들을 신중하게 선택함으로써 달성된다. 음성 세그먼트의 선택은 세그먼트의 유사도 혹은 상관 관계에 기초한다. 음성 세그먼트의 유사도가 높을수록, 결과적인 음성 품질은 높아지고, 음성 가공물이 도입될 확률이 낮아진다.
도 16은 시간에 대한 음성 신호를 그래프로 도시한다. 수직 축은 신호의 크기를 나타내고; 수평 축은 시간을 나타낸다. 주목할 점은, 음성 신호는 특유의 패턴을 가지고 있으며, 음성 신호의 일부분이 시간에 대해 반복된다는 것이다. 예에서, 음성 신호는 시간 t₁부터 시간 t₂까지의 제 1 세그먼트를 포함하며, 제 1 세그먼트가 시간 t₂부터 t₃까지 제 2 세그먼트에도 반복된다. 그러한 세그먼트의 반복이 발견될 때, 샘플의 재생 품질에 거의 혹은 실질적으로 아무런 영향을 미치지 않으면서, 시간 t₂에서 시간 t₃까지의 경우와 같이 세그먼트 중 하나 혹은 그 이상 제거할 수 있다.
일 예에서, 아래에 주어진 바와 같은 식 (4)는 음성의 두 세그먼트 사이의 관계를 찾는데 사용될 수 있다. 상관 관계는 두 세그먼트 사이의 관계가 얼마나 강한지 나타내는 척도이다. 식 (4)에서 제공되는 절대적이고 제한된 크기의 상관계수(Correlation Factor, -1에서 1까지)를 상기 관계의 강도에 대한 측정치로서 제공하며, 여기에서 상관계수가 작은 음의 숫자이면 약한 관계를, 즉 상관 관계가 적음을, 큰 양의 숫자이면 강한 관계를, 즉 상관 관계가 크다는 것을 반영한다. 만약 식 (4)를 적용하여 "유사도가 높음"이라고 하면, 타임 와핑이 수행된다. 만약 식 (4)를 적용하여 유사도가 적다고 하면, 음성의 병합된 세그먼트에 가공물이 존재한다. 상관 관계는 다음과 같이 주어진다:
Figure 112009006880869-pat00003
식 (4)에서, x와 y는 음성의 두 세그먼트를, m은 두 세그먼트 사이의 상관 관계를 연산하는 윈도우를, d는 상관 관계의 일부분을 나타내고, i는 인덱스이다. 만약 식 (4)를 적용하였는데 가공물이 도입되지 않고 세그먼트들이 병합된다고 하면, "애드-오버랩(Add-overlap, 가산 중첩)" 기술을 사용하여 병합이 이루어진다. 애드-오버랩 기술은 비교된 세그먼트들을 결합하고, 두 개의 개별적인 음성 세그먼트로부터 하나의 음성 세그먼트를 만들어낸다. 애드-오버랩을 이용한 결합은 식 (5)와 같은 식에 기초하며, 식 (5)는 다음과 같다:
Figure 112009006880869-pat00004
결과 샘플은 PCM(Pulse Code Modulation) 샘플이다. 각각의 PCM 샘플은 비트(Bit) 길이와 PCM 샘플의 포맷(Format)을 정의하는 미리 정해진 포맷을 가진다. 예를 들어, 16비트 부호화된 숫자는 PCM 샘플을 나타내는 포맷이다. 식 (5)를 적용하여 만들어진 애드-오버랩 기술은 Segment1의 제 1 PCM 샘플과 Segment2의 마지막 PCM 샘플 사이에 부드러운 전이가 생기도록 가중치를 두는 것을 포함한다. 식 (5)에서, "RWindowSize"는 기준 윈도우에서 PCM 샘플의 수이고, "OutSegment"는 결과적으로 애드-오버랩된 세그먼트의 크기이다. "WindowSize"는 기준 윈도우 크기와 같고, "Segment"는 타겟 세그먼트의 크기와 같다. 이 변수들은 샘플링 비율, 음성의 주파수 컨텐츠(Contents) 및 품질과 연산의 복잡도(Computational Complexity) 사이의 바람직한 상보성(Tradeoff)에 의하여 결정된다.
상술된 애드-오버랩 기술은 도 17a와 17b에 도시되어 있다. 도 17a에서 도시된대로 음성 세그먼트는 160개의 PCM 샘플을 포함한다. 예에서, RWindowSize는 PCM 샘플 0∼47로 표현된다. 다시 말해서, PCM 샘플 0∼47은 기준 윈도우 크기인 WindowSize 안의 샘플 수에 해당한다. Segment는 타겟 검색 영역(Target Search Area)의 크기이고, PCM 샘플 10∼104로 표시된다. 예에서, PCM 샘플 0∼47은 샘플 10∼104와 한 번에 PCM 샘플 하나씩 비교하여, 기준 샘플과 타겟 검색 영역 사이의 가장 적절한 상관 관계를 찾는다. 최대 상관 관계를 가지는 타겟 검색 영역 내의 위치를 "오프셋(Offset)"이라고 한다. 오프셋 지점에서, RWindowSize의 크기에 대응하는 Segment의 일부분과 RWindowSize가 결합한다. PCM 샘플 104∼160에 대응하는 음성 세그먼트는 손대지 않은 채로 있게 된다.
도 17b에서, 음성 세그먼트의 제 1 RWindowSize 샘플은 음성 세그먼트의 다음 일부분과 한 번에 PCM 샘플 하나씩 비교한다. RWindowSize와 타겟 검색 영역(Segment) 내부의 샘플의 대응 길이 사이에서 최대 상관 관계를 가지는 위치를 "오프셋"이라고 한다. 오프셋의 길이는 음성 세그먼트의 시작 부분부터 RWindowSize와 Segment 사이의 가장 큰 상관 관계를 가지는 지점까지의 거리이다. 일단 최대 상관 관계를 찾고 나면, RWindowSize는 Segment의 대응하는 길이와 (오프셋 지점에서) 병합된다. 다시 말해서, 애드-오버랩은 RWindowSize를 같은 길이의 Segment 일부분에 더함으로써 수행된다. 이는 도시된 대로 오프셋 지점에서 이루어진다. 샘플의 나머지는 도시된 대로 원래의 세그먼트로부터 복제된다. 결과적인 음성 세그먼트는 원래 음성 세그먼트로부터 있는 그대로 복사된 남은 샘플을 포함하고, 도시된 것처럼 병합된 세그먼트에 덧붙여진다. 결과적인 패킷은 오프셋 길이에 의한 원래 길이보다 짧다. 이 프로세스를 음성 압축이라고 한다. 음성 세그먼트가 적게 압축될수록, 사람이 품질저하를 탐지할 확률이 낮아진다.
음성 신장은 디-지터 버퍼가 적은 수의 패킷을 포함할 때 수행된다. 만약 디-지터 버퍼가 적은 수의 패킷을 가지고 있으면, 언더플로우 확률이 증가한다. 언더플로우가 발생할 때, 디-지터 버퍼는 소실부를 디코더에 공급한다. 하지만, 이는 음성 품질의 저하를 가져온다. 그러한 음성 품질 저하를 막기 위해서, 디-지터 버퍼의 마지막 몇 개의 패킷 재생을 딜레이한다. 이는 패킷의 신장을 통해서 달성할 수 있다.
음성 신장은 음성 세그먼트의 다중 PCM 샘플을 반복하여 달성된다. 가공물 혹은 피치 저하(Flatness)를 피하기 위해 다중 PCM 샘플을 반복하는 것은 음성 시간 압축이 수행될 때보다 PCM 음성 샘플로 작업할 때 달성된다. 예를 들어, 음성 신장을 구현하는데 사용되는 PCM 샘플의 수가 음성 시간 압축에 사용되는 PCM 샘플의 수의 두 배이다. 추가적인 PCM 샘플들은 재생된 음성의 이전 패킷으로부터 얻는다.
도 18a는 음성 신장의 예를 도시하며, 거기서 각각의 패킷 혹은 음성 세그먼트는 160개의 PCM 샘플을 포함하고, "사전신장된(Pre-expanded)" 음성 세그먼트가 발생된다. 예에서, 음성의 두 세그먼트를 비교하는데; "현재" 음성 세그먼트와 "이전" 음성 세그먼트를 비교한다. 현재 음성 세그먼트의 제 1 RWindowSize PCM 샘플을 기준 샘플로 선택한다. 이 RWindowSize 샘플들은 음성의 이전 패킷의 Segment와 비교하는데, 거기서 가장 상관 관계가 큰 지점(혹은 오프셋)이 결정된다. RWindowSize PCM 샘플은 오프셋 지점에서 이전 패킷 안에 있는 Segment의 대응 크기에 애드-오버랩된다. 사전신장된 음성 세그먼트는 도 18a에 도시된 것처럼 이전 음성 세그먼트로부터 애드-오버랩된 세그먼트로 나머지 샘플을 복제하고 덧붙여서 만든다. 그러면 도 18a에 도시된 것처럼 신장 음성 세그먼트의 길이는 사전신장된 세그먼트의 길이에 현재 음성 세그먼트의 길이를 더한 것이 된다. 예에서, PCM 샘플은 음성 세그먼트의 시작부터 오프셋 된다.
다른 예에서, 현재 패킷 혹은 음성 샘플은 도 18b에 도시된 것처럼 신장된다. 기준 샘플, RWindowSize는 현재 음성 세그먼트의 시작부분에 위치한다. RWindowSize는 최대 상관 관계 지점(오프셋)에 위치할 때까지 나머지 현재 음성 패킷들과 비교한다. 기준 샘플은 현재 음성 세그먼트 내에서 최대 상관 관계를 가지는 해당 PCM 샘플들과 애드-오버랩된다. 그리고나서, 신장된 음성 세그먼트는 패킷의 시작부분에서 시작하여 오프셋 지점까지 PCM 샘플들을 복제하고, 이것에 애드-오버랩된 세그먼트를 덧붙이고, 현재 패킷으로부터 수정되지 않은 나머지 PCM 샘플들을 복사 및 덧붙여서 만든다. 신장된 음성 세그먼트의 길이는 오프셋과 원래 패킷 길이의 합과 같다.
다른 예에서 도 18c에 도시된 것처럼 음성이 신장되고, 거기서 RWindowSize는 현재 패킷 혹은 음성 세그먼트 안에 내장되며, 패킷의 시작 부분에서 발생하지 않는다. Roffset은 현재 패킷의 시작 부분에서부터 RWindowSize가 시작되는 지점까지의 거리에 해당하는 음성 세그먼트의 길이이다. RWindowSize는 최대 상관 관계 지점의 현재 패킷 안에 있는 해당 PCM 샘플의 크기에 애드-오버랩된다. 그러면, 신장된 음성 세그먼트는 원래 혹은 현재 패킷의 시작부분에서부터 오프셋까지의 PCM 샘플을 복제하고, 애드-오버랩된 세그먼트와 원래 패킷의 나머지 PCM 샘플을 덧붙여서 만든다. 결과적인 신장된 음성 세그먼트의 길이는 원래 패킷의 길이에 오프셋을 더하고 Roffset 샘플, 즉, 위에서 정의한 대로 Roffset에서 PCM 샘플의 수를 빼면 된다.
필터링된 타임 와핑 임계치
압축 혹은 신장의 결정이 오실레이션(Oscillation)되는 것을 피하기 위해서, 적응성 디-지터 버퍼에 저장된 패킷의 수가 빠르게 변할 때, 적응성 디-지터 버퍼의 상태, 즉, 적응성 디-지터 버퍼에 저장된 패킷의 수를 가늠하기 위해서 사용되는 변수가 있다고 하면, 이 예에서는 그러한 변수를 샘플링 윈도우 상에서 필터링한다. 적응성 디-지터 버퍼의 상태는 적응성 디-지터 버퍼에 저장된 패킷의 수 혹은 적응성 디-지터 버퍼에 저장된 데이터를 가늠하기 위해 사용되는 어떠한 변수라고 할 수 있다. 1xEV-DO라고도 하는 돌발 데이터 전달(Delivery)을 지원하는 시스템 IS-856에서, 순방향 링크에서는 주어진 수신기에 시분할 다중화로 패킷을 전달하고, 수신기는 한 번에 여러 개의 패킷을 수신하며, 그에 이어서 일정 시간 동안은 패킷을 수신하지 않는다. 이로 인해 수신기의 적응성 디-지터 버퍼에서 돌발 데이터가 수신된다. 수신된 데이터는 실제로 "번들링(Bundling)"이 되기 쉬운데, 번들링이란 두 개 이상의 패킷이 같은 시간에 거의 함께 도달하는 경우이다. 그러한 번들링에 의해서 패킷의 신장과 압축 사이에 동요가 쉽게 발생하고, 거기서 적응성 디-지터 버퍼는 수신된 데이터의 비율과 버퍼의 상태에 따라 타임 와핑 지시를 내린다. 예를 들어, 디-지터 버퍼의 연산된 값(딜레이 혹은 길이)이 유음 구간의 시작 부분에서 40 ms인 경우를 고려해보자. 시간이 지나면, 디-지터 버퍼의 부하는 신장 임계치 밑으로 떨어지고, 데이터 패킷을 신장하는 결정을 한다. 신장된 패킷의 재생을 한 직후에, 세 개의 패킷 번들이 도달한다; 도달하는 데이터는 디-지터 버퍼의 크기를 압축 임계치가 초과될 때까지 채운다. 이렇게 해서 패킷이 압축된다. 패킷 번들 도달된 후에 일정 시간 동안 패킷이 도달하지 않기 때문에, 디-지터 버퍼는 다시 고갈되며, 패킷이 신장된다. 신장과 압축 사이의 이러한 토글링(Toggling)으로 인해 패킷의 많은 부분이 타임 와핑된다. 이는 바람직하지 못한데, 왜냐하면 우리는 타임 와핑에 의해 신호 정보가 수정된 패킷의 비율을 작은 값으로 제한하려하기 때문이다.
번들링 효과를 약하게 함으로써 그러한 오실레이션를 피하는 예는 적응성 디-지터 버퍼의 적응 제어, 타임 와핑 및 데이터의 재생을 포함한다. 이 예에서는 언제 타임 와핑을 할 것인지 결정하기 위해 평균값을 사용한다. 평균은 그러한 연산에 사용된 변수들을 필터링해서 연산한다. 예에서, 압축과 신장 임계치는 필터링 혹은 디-지터 버퍼의 크기를 평균해서 결정한다. 주목할 점은 버퍼의 크기가 버퍼의 현재 상태라는 것이다.
버퍼 크기의 필터링 된 값을 신장 임계치와 비교하면 더 많은 수의 언더플로우가 생기는데, 왜냐하면 필터링 되지 않은 값을 사용하여 신장되어왔던 일부 패킷이 필터링 된 값을 사용하여 신장되지 않기 때문이다. 한편, 필터링 된 값을 압축 임계치와 비교하면 부정적인 영향을 최소로 혹은 사실상 아예 미치지 않고 대부분 의 오실레이션(혹은 타임 와핑 제어 사이의 토글링)을 감쇠시킨다. 그러므로, 압축과 신장 임계치는 서로 다르게 취급된다.
예에서, 적응성 디-지터 버퍼 크기의 순시(Instantaneous)값은 신장 임계치에 의해 억제된다. 반대로, 디-지터 버퍼의 필터링 된 값은 압축 임계치에 의해 억제된다. IIR(Infinite Impulse Response) 필터를 사용하여 적응성 디-지터 버퍼의 평균 크기를 결정하는 구성에서, 적응성 디-지터 버퍼는 매 60 ms 마다 한 번처럼, 주기적으로 재연산되는 필터링 된 값을 가진다. 필터 시간 상수는 번들링 통계로부터 유도되고, 이 경우 1xEV-DO Rev A을 예로 들면 60 ms이다. 번들링 통계는 순시 디-지터 버퍼 크기가 작동 중에 얼마나 오실레이트하는지와 강한 상관 관계를 가지기 때문에, 번들링 통계는 필터 시간 상수를 유도하기 위해 사용된다.
누락된 패킷에 의한 신장
지금까지 살펴본 것처럼, 적응성 디-지터 버퍼와, 적응성 디-지터 버퍼 및 수신된 데이터의 타임 와핑을 제어하는 다양한 방법은 특정한 시스템의 스펙과 작동 상태에 따라 적응된다. H-ARQ(Hybrid Automatic Repeat Request) 방식처럼, 성능을 향상시키기 위한 반복 요청 방식(Repeat Request Scheme)을 구현하는 통신 시스템에서, 그러한 반복 프로세스는 음성 패킷이 얼마나 신장되는지를 암시한다. 특히, H-ARQ는 패킷이 재정리되어(즉, 순서가 뒤바뀌어) 도달하게 한다. 도 19는 특정 길이의 디-지터 버퍼와 타겟 디-지터 버퍼 길이의 50%로 주어진 신장 임계치, TExpand를 도시한다. 재생되는 현재 패킷의 순서 번호는 20, 즉, PKT 20이다. 디-지터 버퍼는 순서 번호(Sequence Number)가 21, 23 및 24인 세 개의 패킷을 포함하며, 각각 PKT 21, PKT 23 및 PKT 24로 표시한다. 재생 유틸리티가 PKT 20을 재생한 후에 다음 패킷을 요청할 때, 디-지터 버퍼는 연산된 디-지터 버퍼 길이의 50%보다 큰 버퍼 길이를 유지하는 데 충분한 패킷을 포함하고 있기 때문에 신장 임계치는 트리거 하지 않는다. 그러므로 현재 예에서, PKT 21은 신장되지 않는다. 패킷이 순서에 따라 재생되고 그러므로 재생 유틸리티가 PKT 22보다 먼저 PKT 23을 재생하지 않기 때문에, 만약 PKT 22가 PKT 21의 재생이 끝날 때까지 도달하지 않으면 언더플로우가 발생한다. 신장 임계치가 트리거되지 않음에도 불구하고, 예에서 수신된 패킷에서 불연속이 생기고, PKT 21이 신장되어 도달할 PKT 22를 위해 더 많은 시간을 얻게 된다. 이런 식으로, PKT 21을 신장하여 누락된 패킷과 소실부를 피할 수 있다. 따라서 디-지터 버퍼 길이가 신장 임계치 TExpand를 넘어가도 패킷은 신장된다.
패킷이 신장되는 상태는 인핸스(Enhance, 강화)된다. 상기한대로, 만약 디-지터 버퍼 크기가 신장 임계치 아래이면, 패킷은 신장된다. 다른 시나리오에서, 만약 다음 연속 패킷이 디-지터 버퍼에 존재하지 않아도 패킷은 신장된다.
앞에서 언급한 대로, 디-지터 버퍼 딜레이는 유음 구간의 시작 부분에서 연산된다. 채널 상태와 부하 상태를 포함하지만 그에 한정되지는 않는 네트워크 상태는 유음 구간, 특히 긴 유음 구간에서 변하기 때문에, 예는 유음 구간동안 디-지터 버퍼 딜레이를 바꾸도록 설정되었다. 따라서 앞서 주어진 디-지터 버퍼 식은 유음 구간동안의 모든 CHANGE_JITTER_TIME에서 주기적으로 재연산된다. 대체로, 작동 상태, 부하, 무선 인터페이스 지시 혹은 다른 이벤트(Event)에서 중대한 변화와 같은 결정적인 이벤트에서는 변수가 다시 연산된다. 예를 들어, CHANGE_JITTER_TIME의 값을 0.2 sec(200ms)로 설정된다.
타임 와핑 임계치, 즉 압축 및 신장 임계치는 유음 구간 동안 값을 얼마나 바꿀 것인지에 대한 지침을 제공한다. 노말 동작이란 적응성 디-지터 버퍼의 상태가 압축 임계치와 신장 임계치 사이에 있고 적응성 디-지터 버퍼 길이 근처일 때, 수신기의 동작을 말한다. 각각의 임계치는 트리거처럼 작동한다. 임계치가 임계치에 도달하거나 혹은 넘었을 때, 적응성 디-지터 버퍼에 있는 패킷은 임계치에 따라 신장되거나 혹은 압축된다. 적응성 디-지터 버퍼의 크기는 패킷을 수신하면서 계속 신장되거나 혹은 압축된다. 적응성 디-지터 버퍼 크기의 이러한 일정한 변화는 신장과 압축 임계치가 통신을 하는 동안 계속해서 서로 접근하도록 지시한다. 일반적으로, 시스템은 안정 상태로 보는 신장과 압축 임계치 사이의 적응성 디-지터 버퍼 크기를 유지하려고 한다. 안정 상태에서 적응성 디-지터 버퍼의 크기는 변화하지 않는다; 패킷의 수신부에서 변화 그리고 적응성 디-지터 버퍼 크기의 변화는 새로운 적응성 디-지터 버퍼 딜레이가 달성될 때까지 각각 자동적으로 압축/신장 임계치를 트리거시키고 패킷을 압축/신장시킨다. 이 시나리오에서, 적응성 디-지터 버퍼 타겟 딜레이 길이는 CHANGE_JITTER_TIME에 따라서 업데이트 된다. 타임 와핑 신장/압축 임계치 둘 다에 도달한 결과로서 트리거될 때 자동적으로 디-지터 버퍼 크기가 변화하기 때문에, 실제 디-지터 버퍼의 크기를 반드시 연산할 필요는 없다. 일례로, CHANGE_JITTER_TIME의 값은 0.2 sec(200 ms)로 설정된다.
핸드오프 프리와핑
핸드오프(Handoff, 통화 채널 전환)는 일반적으로 짧은 시간 동안 커버리지(Coverage)의 손실을 수반한다. 핸드오프가 임박할 때, AT는 불량한 채널 상태와 증가하는 패킷 딜레이를 겪을 수 있다. 일 예에서는 타임 와핑을 음성 패킷에 적용하는 특별한 방식으로 핸드오프 조건을 처리한다. AT가 새로운 기지국으로의 핸드오프를 결정하자마자, 이러한 정보는 디-지터 버퍼를 제어하기 위해 사용 가능하다. 이러한 핸드오프 신호를 수신할 때, AT는 도 8b의 프리와핑 모드(244)에 도시된 것과 같이 "프리와핑(Pre-warping)" 모드로 들어간다. 이 모드에서, AT는 두 가지 조건 중 하나가 만족될 때까지 패킷을 신장한다. 제 1 조건 하에서, 디-지터 버퍼는 패킷을 계속해서 축적하고, 그 축적된 신장은 결과적으로 PRE_WARPING_EXPANSION의 디-지터 버퍼 사이즈를 만들게 된다. 다시 말해서, 패킷의 신장은 PRE_WARPING_EXPANSION이 도달될 때까지 수행된다. 선택적으로, 제 2 조건 하에서, 시간 주기인 WARPING_TIME이 만족되었다. 타이머는 핸드오프 신호 혹은 사용불능(Outage) 지시자의 수신 시에 시작하고, 이 타이머는 WARPING_TIME에서 만료한다. 일단 이들 두 가지 조건 중 하나가 만족되고 나면, AT는 프리와핑 모드를 종료한다. 프리와핑 모드 동안, End_Talkspurt 조건(후술함)이 만족되지 않으면 아무런 패킷도 압축되지 않는데, 왜냐하면 디-지터 버퍼가 일정한 간격으로 재생 유틸리티로 보낼 만큼의 충분한 패킷을 축적하려고 할 것이기 때문이다. 패킷이 일정한 간격마다, 예컨대 20 ms마다 예상되는 예에서, PRE_WARPING_EXPANSION의 값은 40 ms로 설정되고, WARPING_TIME의 값은 100 슬롯(166 ms)과 같게 설정될 수 있다.
핸드오프는 사용불능 이벤트의 단순한 일 형태일 뿐이다. 디-지터 버퍼는 통화 채널 전환 혹은 다른 타입의 사용불능을 처리하기 위한 메카니즘을 구현할 수 있다. 이를 위해 요청되는 정보는 사용불능을 처리하기 위해서 얼마나 많은 디-지터 초과분이 요청되는지(PRE_WARPING_EXPANSION)와 이러한 사용불능 회피 모드 상에서 디-지터 버퍼가 얼마나 오랫동안 계속해서 동작할 것인지(WARPING_TIME)이다.
딜레이된 언더플로우의 카운팅
상기 적응성 디-지터 버퍼 식은 딜레이된 언더플로우의 비율을 목표로하여 디자인되었기 때문에, 딜레이된 언더플로우의 숫자를 정확하게 측정하는 것이 바람직하다. 언더플로우가 발생했을 때, 언더플로우가 패킷 딜레이에 의해 발생된 것인지 혹은 네트워크 내부, 즉, 송신 경로의 어떤 지점에 드롭된 패킷에 의해 발생된 것인지 알 수 없다. 그러므로 언더플로우의 타입을 정확하게 살펴볼 필요가 있다.
일 예에서, RTP/UDP/IP를 사용한 통신의 경우 각 패킷은 RTP 순서 번호를 포함한다. 순서 번호는 패킷이 송신된 순서로 수신된 패킷을 나열할 때 사용된다. 언더플로우가 발생하는 경우에, 언더플로우를 유발하는 패킷의 RTP 순서 번호는 메모리 어레이와 같은 메모리에 저장될 수 있다. 만약 식별된 순서 번호를 가진 패킷이 나중에 도착하면, 이러한 언더플로우는 "딜레이 언더플로우"로서 여겨진다.
"딜레이된 언더플로우 비율"은 총 수신된 패킷 수에 대한 언더플로우 수의 비율이다. 언더플로우의 수와 수신된 패킷의 수는 둘 다 디-지터 버퍼 식이 업데이트될 때마다 0 으로 설정된다.
통화 스퍼트의 시작과 끝에 대한 인핸스먼트
도 20은 두 사용자 간 대화의 타임 라인을 나타내고 있다. 이 그래프에서, 수직축은 시간을 나타낸다. 각 사용자는 통화 스퍼트와 무음 구간을 전송하고, 이는 이후에 다른 사용자에 의해 수신된다. 명확하게 하기 위해서, 어두운 블록 세그먼트(411, 410)는 USER1에 대한 통화 스퍼트(음성 세그먼트)를 나타낸다. 밝은 블록 세그먼트(405)는 USER2에 대한 통화 스퍼트를 나타낸다. 타임 라인 상에서 통화 스퍼트의 외측 영역은 사용자가 말을 하지 않지만, 다른 사용자의 말을 듣거나 무음 구간을 수신하고 있을 수 있는 시간을 나타낸다. 세그먼트(400)는 USER2에서 재생된다. 일단 음성 세그먼트(400)가 USER2에서의 재생을 마치면, USER2는 말을 시작하기 전에 짧은 간격의 시간 동안 대기한다. 후속하여, USER2의 제 1 음성 세그먼트(405)의 시작은 USER1에 의해 들린다. USER1이 인지하는 대화형 RTD(Conversational Round Trip Delay)는 USER1이 말하기를 멈추는 때와 USER1이 USER2의 음성 세그먼트의 시작을 듣는 때 사이의 시간 간격이다. 대화형 RTD는 단방향 단-대-단 딜레이가 아니지만, 사용자 특정적이고 사용자의 관점에서는 중요하다. 예를 들어, 만약 대화형 RTD가 USER1에 대해 너무 크다면, USER1이 즉시 USER2의 음성 세그먼트가 재생되기를 기다리지 않고 말을 시작하게 한다. 이는 대화의 흐름을 방해하고 대화 품질 저하로서 인식된다.
USER1이 경험하는 대화형 RTD는 다른 방식으로 변경될 수 있다. 예를 들어, USER1의 음성 세그먼트의 끝(말단)이 USER2에게 재생되는 시간이 변할 수 있다. 두 번째 예로, USER2의 음성 세그먼트 시작이 USER1에게 재생되는 시간이 변한다. 주목할 점은, 오직 통화 스퍼트의 시작과 끝 부분에 대한 딜레이만이 대화에서 음성 품질에 영향을 미친다는 것이다. 설계의 목표는 통화 스퍼트의 시작과 끝에서 딜레이를 더욱 감소시키는 것이다.
일 예에서, 통화 스퍼트(유음 구간)의 시작 부분을 강화시키는 것이 목표이다. 이와 같은 강화는, 듣는 사람인 USER2가 디폴트 적응성 디-지터 버퍼 딜레이가 구현되었을 경우보다도 더 빨리 패킷을 수신하도록, USER1의 통화 스퍼트의 제 1 패킷을 조작함으로써 달성될 수 있다. 적응성 디-지터 버퍼에 적용되는 딜레이는 디폴트 적응성 디-지터 버퍼 딜레이, 연산된 값 혹은 특정 시간에 청취자가 패킷을 수신하도록 선택된 값이다. 일 예에서, 유음 구간의 제 1 패킷의 타이밍은 각각의 수신된 유음 구간의 시작 부분에서 적응성 디-지터 버퍼 딜레이를 다시 연산하는 것에 따라서 변한다. 유음 구간의 제 1 패킷에 적용된 적응성 디-지터 버퍼 딜레이가 감소할 때, 이 제 1 패킷은 청취자에게 신속하게 전송된다. 적용된 딜레이가 증가할 때, 제 1 패킷은 나중에 청취자에게 수신된다. 제 1 패킷에 대한 디폴트 디-지터 버퍼 딜레이는 연산된 디-지터 버퍼 딜레이보다 작고, 그 역도 마찬가지이다. 도시된 예에서, 각각의 유음 구간의 제 1 패킷의 디-지터 딜레이는 초 단위로 측정되는 MAX_BEGINNING_DELAY라고 하는 값에 의해서 제한된다. 이 값은 재연산된 디-지터 버퍼 딜레이 혹은 지정된 시간에 청취자가 패킷을 수신할 수 있도록 디자인된 딜레이이다. MAX_BEGINNING_DELAY 값은 실제 연산된 디-지터 버퍼 딜레이보다 작다. MAX_BEGINNING_DELAY가 연산된 디-지터 버퍼 딜레이 보다 작고 유음 구간의 제 1 패킷에 적용될 때, 유음 구간의 다음 패킷들은 자동으로 신장된다. 다음 패킷들의 자동 신장이 발생하는 이유는 디-지터 버퍼가 패킷을 재생하는 비율과 같은 비율로 패킷을 수신하지 않기 때문이다. 디-지터 버퍼가 패킷을 재생할수록, 디-지터 버퍼의 크기는 감소하고 신장 임계치에 근접한다. 일단 신장 임계치에 도달하면, 신장은 트리거되고 디-지터 버퍼가 신장 임계치를 넘어서기 위해 충분한 패킷을 수신할 때까지 유음 구간의 다음 패킷들이 신장된다. MAX_BEGINNING_DELAY 값을 구현함으로써, 다음 패킷들이 신장되는 동안 유음 구간의 제 1 패킷은 청취자에게 더 일찍 수신된다. 청취자는 최초의 패킷이 더 일찍 수신되어 만족한다. 유음 구간의 시작 부분을 인핸스먼트시키면 언더플로우의 수가 약간 증가할 가능성이 있다; 하지만, 적당한 MAX_BEGINNING_DELAY값은 이 효과를 완화한다. 예에서, MAX_BEGINNING_DELAY 값은 실제 디-지터 타겟의 분수로 연산된다; 예를 들어 MAX_BEGINNING_DELAY 값이 TARGET DE-JITTER BUFFER LENGTH의 0.7이라면 언더플로우가 미미하게 증가한다. 다른 예에서, MAX_BEGINNING_DELAY 값이 40 ms와 같은 고정된 값이어도, 앞의 예에서처럼 1xEV-DO Rev A를 지원하는 시스템에서 미미한 언더플로우의 증가를 가져온다.
유음 구간(통화 스퍼트)에서 다음 패킷의 신장은 전체 음성 품질을 저하시키지 않는다. 도 20에 도시된 대로, USER2는 USER1로부터 유음 구간의 제 1 패킷을 수신하고 시작 부분 혹은 "단방향 딜레이(One Way Delay)"는 Td1에 한정된다. 도시된 대로, 음성 세그먼트(400)는 어떠한 신장 혹은 압축 없이 USER2가 수신하지만, 음성 세그먼트(405)은 USER1이 수신할 때 압축된다.
도 21은 유음 구간 시작 부분의 인핸스먼트를 도시한 순서도이다. 가장 먼저 단계(510)에서 시스템이 무음 모드에 있는지 여부를 정한다. 무음 모드는 유음 구간 사이의 무음 구간 혹은 디-지터 버퍼에 의해 패킷이 수신되지 않는 시간에 해당한다. 만약 시스템이 무음 모드에 있지 않다면, 프로세스는 종료된다. 만약 시스템이 무음 모드에 있다면, 타겟 디-지터 길이 추정이 단계(520)에서 수행된다. 그리고나서, 시스템을 단계(530)에서 인핸스먼트시킬 것인지 여부를 결정한다. 인핸스먼트란, 예에 따라서 연산된 타겟 적응성 디-지터 길이가 주어진 값보다 커지도록 지시하는데, 이 예에서는 인핸스먼트가 MAX_BEGINNING_DELAY와 같은 인핸스먼트 요소로 주어진다; 시스템은 단계(540)에서 재생을 시작할 인핸스먼트 요소 혹은 타겟 길이의 일부분과 같은 주기 동안 대기한다. 만약 시스템이 인핸스먼트되지 않으면, 시스템은 단계(550)에서 재생을 시작할 새로운 타겟을 대기한다. 새로운 타겟 값은 연산된 타겟 디-지터 버퍼 길이 혹은 최대 디-지터 버퍼 길이와 같다.
도 22는 유음 구간 시작 부분의 인핸스먼트를 도시한다. 프로세스(580)는 유음 구간의 인식으로 시작한다고 도시되어 있다. 두 개의 시나리오를 고려할 수 있다.:i)타임 와핑 하는 경우;ii)타임 와핑을 하지 않는 경우. 이 예에서, 20 ms 길이의 음성 패킷이 사용되었다. 어떠한 길이의 음성 패킷이라도 구현된다. 여기서, 적응성 디-지터 버퍼는 패킷을 재생하기 전에 120 ms를 대기한다. 이 값은 적응 타겟 디-지터 버퍼 길이이고, 단계(582)에서 적응성 디-지터 버퍼 타겟 추정장치로부터 수신된다. 현재 예에서, 120 ms는 타임 와핑없이 각각 20ms 씩 6개의 패킷을 수신하는 것과 같다. 만약 타임 와핑이 단계(584)에서 사용되지 않았다면, 6개의 패킷이 120 ms 안에 공급된다. 제 1 시나리오에서, 그러므로 디-지터 버퍼는 6개의 패킷을 수신한 후에 패킷을 재생하기 시작한다. 이것은 딜레이 시간이 120 ms인 것과 같다. 제 2 시나리오에서, 타임 와핑을 구현한 경우에, 디-지터 버퍼는 수신된 처음 네 개의 패킷을 신장하고 4개의 패킷이 수신되면 패킷들을 재생한다. 따라서 비록 이 경우 80 ms의 디-지터 버퍼 딜레이가 예상된 120 ms의 디-지터 버퍼 딜레이보다 작다고 하더라도, 잠재 언더플로우는 처음의 몇 개 패킷을 신장함으로써 피할 수 있다. 다시 말해서, 패킷의 재생은 타임 와핑을 하지 않을 때보다 타임 와핑을 할 때 더 일찍 시작된다. 그러므로 타임 와핑은 언더플로우의 수에 영향을 미치지 않고 유음 구간 시작 부분을 인핸스먼트시키는데에 사용된다.
다른 예에서 통화 스퍼트의 끝이 강화된다. 이는 통화 스퍼트의 마지막 몇 개 패킷을 압축하여 이룰 수 있는데, 그리하여 단-대-단 딜레이를 감소시킨다. 다시 말해서, 통화 스퍼트의 끝에서 딜레이를 더 작게 만들 수 있고 제 2 사용자는 제 1 사용자로부터 더 빨리 듣게 된다. 통화 스퍼트의 말단에 대한 강화는 도 23에 도시되어 있다. 여기서 1/8 레이트 패킷(Rate Packet, 비율 패킷)은 통화 스퍼트의 끝을 지시한다. 이는 음성 데이터 송신에 사용 가능한 풀 레이트(Full Rate)(Rate 1), 하프 레이트(Half Rate)(Rate 1/2) 혹은 쿼터 레이트(Quarter Rate)(Rate 1/4) 패킷과 다르다. 다른 레이트의 패킷들도 무음 구간 동안 혹은 통화 스퍼트의 끝에서 송신용으로 사용 가능하다. 음성 통신에서 무음 지시자 패킷과 같은 1/8 레이트 패킷의 구현은 우선권 날짜가 2005년 2월 1일이고, 공동 출원한 "불연속적인 전송 방법과 배경 잡음 정보의 정확한 재생산 방법(Method for Discontinuous Transmission and Accurate Reproduction of Background Noise Information)"이라는 제목의 미국특허출원 제11/123,478호에 더 자세히 기술되어 있다.
도 23에 도시된 바와 같이, 타임 와핑 없이, 패킷 N 내지 N+4가 100ms 안에 재생된다. 통화 스퍼트의 마지막 몇 패킷을 압축함으로써, 동일한 패킷 N 내지 N+4가 100ms가 아니라 70ms 안에 재생된다. 시간 압축이 구현된 경우에 음성의 품질은 거의 혹은 실질적으로 전혀 저하되지 않을 수 있다. 통화 스퍼트의 끝에 대한 강화는 수신기가 통화 스퍼트의 끝을 확인하고 언제 그 끝 부분이 다가오는지를 예상하기 위한 지식을 가지고 있다는 점을 가정한다.
일 예에서, 음성 패킷을 RTP(Real-time Transport Protocol)를 거쳐서 전송하는 동안, "통화 스퍼트의 끝" 지시자는 각 통화 스퍼트의 최종 패킷에서 설정된다. 패킷이 재생에 제공될 때, 디-지터 버퍼의 패킷들을 "통화 스퍼트의 끝" 지시자에 대하여 체크한다. 만약 이 지시자가 패킷 중의 하나에 설정되어 있고 재생을 위해 제공되고 있는 현재의 패킷과 상기 "통화 스퍼트의 끝" 패킷 간에 누락된 시퀀스 번호가 존재하지 않는다면, 현재의 통화 스퍼트 중 미래의 패킷들 전부는 물론이고, 재생에 제공 중인 패킷도 압축된다.
다른 예에서, 시스템은 그것이 통화 스퍼트에 있고 SID(Silence Indicator Description) 비트 세트를 갖는 하나의 패킷이나 1/8 레이트 패킷이 재생 유틸리티로 전달되는 경우에 무음 구간으로 천이한다. 1/8 레이트 패킷은 그 사이즈를 체크함으로써 검출 가능하다. SID 비트는 RTP 헤더에서 전송된다. 시스템은 그것이 무음 구간에 있고 1/8 레이트도 아니고 SID 비트 세트도 갖지 않는 패킷이 재생으로 전달되는 경우에 통화 스퍼트로 천이한다. 주목할 점은, 일 예에서, 시스템이 통화 스퍼트 상태에 있는 경우 여기에 설명한 바와 같은 적응성 디-지터 버퍼링 방법이 수행될 수 있지만, 무음 구간에 있는 경우에는 무시될 수 있다.
주목할 점은, 이 방법은 늦게 도달하는 중복 패킷들은 정확하게 버린다. 만약 중복 패킷들이 도달하면, 패킷의 제 1 인스턴스(Instance)가 적절한 시간에 재 생되고 그 순서가 "딜레이 언더플로우" 후보(Candidate)를 포함하는 배열에 저장되지 않기 때문에 중복 패킷들은 단순히 버려진다.
예에서 음성 패킷을 RTP를 통해 전송하는 동안, "유음 구간 끝 부분" 지시자는 각 유음 구간의 마지막 패킷에 위치한다. 패킷이 재생에 제공될 때, 디-지터 버퍼의 패킷들을 "유음 구간 끝 부분" 지시자가 검사한다. 만약 이 지시자가 패킷 중의 하나에 위치하고 재생을 위해 현재 제공된 패킷과 "유음 구간 끝 부분" 패킷 사이에 누락된 순서 번호가 없다면, 현재 유음 구간의 모든 나중 패킷들과 마찬가지로 재생에 공급되는 패킷은 압축된다.
예에 따라서 유음 구간 끝 부분의 인핸스먼트를 도시한 순서도가 도 24에 있다. 새로운 패킷은 단계(600)에서 시작한다. 단계(605)에서, 만약 디-지터 버퍼 길이가 압축 임계치와 같거나 크면, 압축 지시가 단계(635)에서 내려지고 단계(600)에서 테일(Tail)이 새로운 패킷에 제공된다. 단계(605)에서, 만약 디-지터 버퍼 길이가 압축 임계치보다 작으면, 디-지터 버퍼 길이가 신장 임계치와 같거나 작은지 여부를 단계(610)에서 결정한다. 만약 디-지터 버퍼 길이가 신장 임계치와 같거나 작다면, 단계(615)에서 테일이 무음 구간 혹은 유음 구간의 끝 부분을 나타내는 패킷 비율과 동일한지 여부를 결정한다. 예에서, 1/8 레이트 패킷의 연속적인 열(Train)은 무음 구간 동안 혹은 유음 구간의 끝 부분에서, 예를 들어 20ms와 같은 일정한 간격으로 전송된다. 도 24에서, 만약 테일이 1/8 레이트 패킷과 동일하지 않다는 결정을 단계(615)에서 했다면, 세그먼트는 단계(620)에서 신장되고, 단계(600)에서 새로운 패킷으로 돌아간다. 단계(625)는 테일이 1/8과 동일한지 여부를 결정한다. 단계(625)에서 만약 테일이 1/8 레이트와 같다면, 압축 지시가 단계(635)에서 발생 된다. 만약 테일이 1/8 레이트와 같지 않다면, 그 경우 어떠한 타임 와핑도 없이 단계(630)에서 재생이 정상적으로 이루어진다.
타임 와핑 품질 옵티마이저
다수의 연속적인 패킷이 압축될 때(혹은 신장될 때), 이는 눈에 띄게 재생속도를 빠르게(혹은 느리게) 하고 품질 저하를 가져온다. 그러한 품질 저하는 타임 와핑된 패킷을 간격을 두고 배치하여, 예를 들어 타임 와핑되지 않은 패킷을 타임 와핑된 패킷 앞에 놓고 이들을 연속적으로 배치하는 식으로 하여 피할 수 있다.
만약 타임 와핑된 패킷을 간격을 두고 배치하는 것을 신장의 경우에 적용하면, 일부 패킷들이 신장되지 않아야 하는데 신장될 수가 있다. 이로 인해 언더플로우가 발생할 수 있는데, 패킷의 신장은 디-지터 버퍼에서 패킷이 고갈될 때 수행되기 때문이다. 그러므로, 예에서, 타임 와핑 패킷을 간격을 두고 배치하는 것은 압축된 패킷에만 적용되고, 즉, 압축가능한 다른 패킷 앞에 있는 압축되지 않은 몇 개의 패킷에 이어서 압축된 패킷이 따라나온다. 두 압축된 패킷 사이에서 압축되지 않은 그러한 패킷의 수는 전형적으로 2 혹은 3개이다.
타임 와핑을 트리거하기 위한 조건의 세트
여기서 기술한 것은 음성 패킷의 타임 와핑(신장/압축)을 트리거하기 위한 상태의 수이다. 다음은 패킷이 압축되었는지 혹은 신장 되었는지 아니면 둘 다 아닌지 여부를 결정하기 위한 일련의 규칙(의사코드(Pseudo-code) 형식)이다.
If (in PreWarping (HandoffDetected) Phase and no End of Talkspurt Detected)
and DEJITTER_TARGET+PRE_WARPING EXPANSION not reached)
Expand Packet
End If
Else
If(End of Talkspurt Detected)
Compress
End If
Else
If(Compress Threshold Triggered)
Compress
End If
Else If(Expand Threshold Triggered or Next Packet not in Queue)
Expand
End If
End If
End If
도 25는 디코더 기능과 결합된 전통적인 디-지터 버퍼의 구현물을 나타낸다. 도 25에서, 패킷들은 디-지터 버퍼에 20 ms 간격을 두고 도착할 것으로 예상된다. 이 예에서 패킷들은 불규칙한 간격, 즉, 지터를 가지고 도달한다. 디-지터 버퍼는 일단 디-지터 버퍼가 20 ms와 같은 일정한 간격으로 패킷을 전송하기 시작했을 때 디-지터 버퍼 길이가 디-지터 버퍼가 고갈되지 않을 정도에 이를 때까지 패킷을 축적한다. 요청되는 디-지터 버퍼 길이에서, 디-지터 버퍼는 20 ms의 일정한 간격으로 패킷을 재생하기 시작한다. 디코더는 이 패킷들을 일정한 간격으로 수신하고 각 패킷을 패킷 당 20 ms의 음성으로 변환한다. 다른 예에서는 다른 시간 간격을 선택한다.
이와 비교하여, 도 26은 타임 와핑을 지원하는 적응성 디-지터 버퍼의 예를 도시한다. 여기서, 패킷은 적응성 디-지터 버퍼에 불규칙한 시간 간격으로 도달한다. 하지만 이 경우, 타겟 디-지터 버퍼 길이는 훨씬 작다. 이는 만약 디-지터 버퍼가 고갈되기 시작하면 타임 와핑으로 패킷이 신장되기 때문에 적응성 디-지터 버퍼가 패킷을 채울 수 있는 시간을 주는 것이다. 만약 적응성 디-지터 버퍼가 고갈되기 시작하면 디코더는 패킷을 신장하고, 적응성 디-지터 버퍼가 너무 많은 패킷을 축적하기 시작하면 패킷을 압축한다. 음성 패킷의 불규칙한 전달은 적응성 디-지터 버퍼로부터 디코더와 타임 와핑 장치로의 입력으로 관측된다. 이 패킷들은 타임 와핑 때문에 불규칙한 간격으로 도달하고, 디코더는 각각의 패킷을 원래 패킷의 도달 시간에 따라 서로 다른 길이의 음성 패킷으로 변환한다. 예를 들어, 이 예에서, 디코더는 각 패킷을 패킷 당 15∼35 ms의 음성으로 변환한다. 패킷은 타임 와핑에 의해 더 일찍 재생되기 때문에, 요청되는 버퍼 크기는 작아지고, 결국 네트워크에서 대기 시간이 짧아진다.
도 27은 예와 일치하는 AT를 도시한 블록 다이어그램이다. 적응성 디-지터 버퍼(706), 타임 와핑 제어 장치(718), 수신 회로(Receive Circuitry, 714), 제어 처리장치(Control of Processor,722), 메모리(710), 송신 회로(712), 디코더(708), H-ARQ 제어(720), 인코더(716), 음성 처리(724), 유음 구간 ID(726) 및 오차 수정(Error Correction, 704)은 상기한 구현에서처럼 함께 결합 된다. 게다가 도 27에서는 통신 버스(Communication Bus, 702)를 경유하여 함께 결합 된다.
도 28은 패킷이 디-지터 버퍼에 의해 수신되고 결국 스피커에 의해 재생되는 예에서 패킷 처리을 도시한다. 도시된 대로, 패킷은 디-지터 버퍼에서 수신된다. 디-지터 버퍼는 패킷과 타임 와핑 정보를 디코더로부터의 패킷 요청에 따라 디코더에 전송한다. 디코더는 샘플을 출력 드라이버로부터의 요청에 따라 출력 드라이버에 전송한다.
디-지터 버퍼 안에 있는 입력 제어기는 입력 패킷을 파악하고 만약 입력 패킷에 오차가 있다면 이를 알려준다. 디-지터 버퍼는 순서 번호를 가지는 패킷을 수신한다. 예를 들어 입력 패킷이 이전 패킷의 순서 번호보다 낮은 순서 번호를 가질 때, 입력 제어기에 의해 오차가 검출된다. 도 28의 입력 제어기 안에 위치한 분류 장치(Classification Unit)는 입력 패킷을 분류한다. 분류 장치를 통해 정의된 서로 다른 카테고리는 "양호(Good) 패킷", "딜레이된 패킷" 및 "불량(Bad) 패킷" 등을 포함한다. 또한, 입력 제어 장치는 패킷들을 비교하여 이 정보를 디-지터 버퍼 제어기에 보낸다.
도 28에 도시된 디-지터 버퍼 제어기는 디-지터 버퍼의 입력과 출력 제어기로부터 양방향(Bi-directional) 입력을 수신한다. 디-지터 버퍼 제어기는 입력 제어기로부터 데이터를 수신하고, 거기서 그러한 데이터는 수신된 양호 데이터의 수, 수신된 불량 데이터의 수 등과 같은 입력 데이터의 특징을 나타낸다. 디-지터 버퍼는 이 정보를 사용해서 언제 디-지터 버퍼를 줄일지 혹은 키울지 결정하고, 그 결과 타임 와핑 제어기에 압축 혹은 신장하라는 신호를 보낸다. 디-지터 버퍼 제어 장치 내부의 PER 장치는 PER 딜레이를 연산한다. 디-지터 버퍼의 출력 제어기는 디-지터 버퍼로부터 패킷을 요청한다. 디-지터 버퍼의 출력 제어기는 또한 재생된 마지막 패킷이 무엇인지를 표시한다.
디코더는 디-지터 버퍼에 패킷 요청을 보내고 그러한 요청에 의해 디-지터 버퍼로부터 패킷을 수신한다. 디코더 내부의 타임 와핑 제어 장치는 디-지터 버퍼의 출력 제어기로부터 타임 와핑 제어 정보를 수신한다. 타임 와핑 제어 정보는 패킷이 압축되었는지, 신장되었는지 혹은 수정되지 않은 채로 있는지 여부를 표시한다. 디코더에 의해 수신된 패킷은 디코딩되고 음성 샘플로 변환된다; 출력 드라이버 내부 버퍼로부터의 요청에 의해, 샘플이 출력 드라이버로 전송된다. 출력 드라이버로부터의 샘플 요청은 디코더 내부의 출력 제어기에 의해 수신된다.
위상 정합
앞서 주목한대로, 패킷의 예상 재생 시간 이후에 패킷을 수신하면 딜레이된 패킷의 위치에서 소실부가 재생된다. 적응성 디-지터 버퍼에서 소실부 혹은 누락된 패킷의 수신으로 인해 디코딩된 음성에서 불연속이 발생한다. 적응성 디-지터 버퍼에 의해 잠재적인 불연속이 인식될 때, 적응성 디-지터 버퍼는 디코더에 위상 정합의 수행을 요청한다. 도 28에 도시된 대로, 적응성 디-지터 버퍼(750)는 출력 제어기(760)로부터 입력을 수신하는 위상 정합 제어기를 포함한다. 위상 정합 제어 정보는 디코더(762)에 위치한 위상 정합 장치로 전송된다. 예에서, 위상 정합 제어 정보는 "위상 오프셋(Phase Offset)", "런 렝스(Run Length)" 정보를 포함한다. 위상 오프셋은 디코더가 디코딩한 패킷의 수와 인코더가 인코딩한 패킷의 수 사이의 차이이다. 런 렝스는 디코더가 현재 패킷의 디코딩에 앞서 즉시 디코딩한 연속적인 소실부의 수를 말한다.
예에서, 위상 정합과 타임 와핑은 둘 다 공통 제어 코드 혹은 소프트웨어를 가진 디코더에서 구현된다. 예에서, 디코더는 파형 인터폴레이션(Waveform Interpolation)을 구현하며, 거기서:
a) 만약 타임 와핑이나 위상 정합이 사용되지 않으면, 160개의 샘플로 파형 인터폴레이션을 사용하여 보코딩한다;
b) 만약 타임 와핑이 사용되고 위상 정합이 사용되지 않으면, (160+-N* 피치 주기)개의 샘플로 디코딩한 파형 인터폴레이션을 사용하여 보코딩한다. 여기서 N은 1 혹은 2이다.
c) 만약 타임 와핑을 사용하지 않고 위상 정합이 사용되면, (160-Δ)개의 샘플로 디코딩한 파형 인터폴레이션을 사용하여 보코딩한다. 여기서 N은 위상 정합의 양이다.
d) 만약 위상 정합과 타임 와핑 모두를 사용하면, (160-Δ+-N* 피치 주기)개의 샘플로 디코딩한 파형 인터폴레이션을 사용하여 보코딩한다. 여기서 N은 위상 정합의 양이다.
출력 드라이버의 클록(Clock) 입력은 출력 드라이버 안의 버퍼에 의해 얼마나 자주 데이터가 요청되는지를 결정한다. 이는 시스템의 메인 클록이고 많은 서로 다른 방법으로 구현된다. 시스템의 기본(Dominant) 클록은 PCM 샘플의 샘플링 비율에서 유도된다. 예를 들어, 만약 협대역(Narrowband) 음성이 통신되는 경우, 시스템은 초당 8000개의 PCM 샘플을 재생한다.(8kHz) 이 클록은 시스템의 나머지를 구동한다. 하나의 접근 방법은 오디오 인터페이스(770)가 필요할 때 디코더로부터 더 많은 샘플을 요청하게 하는 것이다. 다른 접근 방법은 디코더/타임 와핑을 독립적으로 작동하게 하는 것인데, 왜냐하면 이 모듈(Module)은 얼마나 많은 PCM 샘플이 이전에 전달되었는지 알고 있고, 언제 더 많은 샘플을 다음으로 제공해야 하는지 알고 있기 때문이다.
스케줄러(Scheduler)는 디코더(762) 혹은 오디오 인터페이스 및 제어 장치(810) 내에 위치한다. 스케줄러가 오디오 인터페이스 제어 장치(810) 안에 위치할 때, 스케줄러는 수신된 PCM 샘플의 수에 기초하여 다음 패킷을 요청한다. 스케줄러가 디코더 안에 위치할 때, 스케줄러는 매 t ms마다 패킷을 요청한다. 예를 들어, 디코더 스케줄러는 적응성 디-지터 버퍼(750)로부터 매 2 ms마다 패킷을 요청한다. 만약 타임 와핑이 디코더 안에서 가능하지 않다면, 혹은 만약 타임 와핑 장치가 디코더(762) 안에 위치하고 있지 않다면, 스케줄러는 한 개의 패킷에 들어있는 정확한 샘플의 수에 대응하여 한 세트의 샘플을 오디오 인터페이스 및 제어 장치(770)에 보낸다. 예를 들어, 오디오 인터페이스 장치(770)가 매 2 ms 마다 샘플을 요청할 때, 디코더의 출력 제어기(766)는 16개의 PCM 샘플을 전송한다.(8kHz 샘 플링 비율에서, 1개의 패킷은 20ms, 음성 데이터 샘플 160개에 대응한다.) 다시 말해서, 타임 와핑 제어기가 디코더 밖에 있을 때, 디코더의 출력은 샘플 전환에 대해 정상 패킷이다. 샘플의 수를 수신되었어야 할 샘플의 수로 변환하는 오디오 인터페이스 장치(770)는 디코더가 타임 와핑을 수행하도록 한다.
다른 시나리오에서, 타임 와핑 제어기가 디코더 내에 있을 때 그리고 타임 와핑이 가능할 때, 압축 모드에서 디코더는 더 적은 샘플을 출력한다; 그리고 신장 모드에서 디코더는 더 많은 샘플을 출력한다.
도 30은 디코더에 의해 스케줄링 기능이 이루어지는 시나리오를 추가적으로 나타내고 있다. 단계(902)에서, 디코더는 디-지터 버퍼로부터 패킷을 요청한다. 단계(904)에서 패킷이 수신된다. 단계(906)에서 패킷은 "N"개의 샘플로 변환된다. "N"개의 생성된 샘플은 단계(908)에서 오디오 인터페이스 제어 장치로 전달되고, 단계(910)에서 다음의 패킷 요청이 N의 함수로서 스케줄링된다.
도 31은 오디오 인터페이스와 제어 장치에 있어서 디코더 외부에서 스케줄링하는 단계를 나타낸다. 먼저 오디오 인터페이스 장치는 단계(1002)에서 PCM 샘플의 세트를 요청한다. 요청된 PCM 샘플은 단계(1004)에서 수신되고, 단계(1006)에서 다음의 패킷 요청이 N의 함수로서 스케줄링된다.
타임 와핑 지시자는 타임 와핑 지시자가 없는 경우와 같이 적응성 디-지터 버퍼로부터의 명령 중 일부일 수 있다. 도 32는 스케줄링이 디코더의 외부, 예컨대 오디오 인터페이스 및 제어 장치에서 연산되는 타임 와핑 장치를 나타낸다. 패킷 타입, 타임 와핑 지시자 및 수행된 와핑의 양이 타임 와핑 장치에 입력된다.
도 33은 스케줄링이 디코더의 타임 와핑 장치에서 연산되는 타임 와핑 장치를 나타낸다. 타임 와핑 장치에 대한 입력에는, 패킷 타입, 타임 와핑 지시자 및 수행된 와핑의 양이 포함된다. 인에이블(Enable) 및 와핑의 양이 타임 와핑 장치의 품질 최적화 장치에 대한 입력이다. 타임 와핑 정보는 출력이다.
본 명세서는 본 발명의 특정한 예를 설명하고 있으나, 당업자는 본 발명의 사상을 벗어나지 않고도 본 발명의 변경을 고안할 수 있다. 예를 들어, 여기에서 본 교시는 회선 교환형 네트워크 소자를 참조하고 있지만, 패킷 교환형 도메인 네트워크 소자에 대해서도 마찬가지로 적용 가능하다. 또한 본 교시는 여기에서 인증 트리플릿 페어(Authentication Triplet Pair)에만 한정되는 것이 아니라 두 개의 SRES 값(하나는 종래 포맷이고, 하나는 여기에 개시된 새로운 포맷)을 포함하는 단일 트리플릿을 사용하는 경우에도 적용 가능하다.
당업자라면 정보와 신호가 다양한 기술과 기법을 사용하여 표현될 수 있다는 점을 이해할 것이다. 예컨대, 상기 설명을 통하여 참조될 수 있는 데이터, 명령, 커맨드(Command), 정보, 신호, 비트, 심볼(Symbol) 및 칩(Chip)은 전압, 전류, 전자파, 자기 필드나 입자, 광학 필드나 입자, 혹은 이들의 어떠한 조합으로도 나타낼 수 있다.
나아가, 당업자라면 여기에 개시된 예들과 관련하여 기술된 다양한 예시적인 논리 블록, 모듈, 회로, 방법 및 알고리즘들이 전자 하드웨어, 컴퓨터 소프트웨어 혹은 양자의 조합으로 구현 가능하다는 점을 이해할 것이다. 하드웨어와 소프트웨어의 이같은 호환성을 명확하게 설명하기 위하여, 다양한 예시적인 컴포넌트, 블록, 모듈, 회로, 방법 및 알고리즘을 그 기능성의 측면에서 일반적으로 상술하였다. 그러한 기능성이 하드웨어나 소프트웨어로 구현되는지 여부는, 전체 시스템 상에 부과되는 설계 한계와 특정한 어플리케이션에 따라 달라진다. 당업자는 상기 설명한 기능성을 각각의 특정한 어플리케이션에 대하여 다양한 방식으로 구현할 수 있지만, 그러한 구현을 결정하는 것이 본 발명의 범위를 벗어나는 것으로서 이해해서는 안 된다.
여기에 개시된 예와 관련하여 설명한 다양한 예시적인 논리 블록, 모듈 및 회로들은 여기서 설명한 기능을 수행하기 위해 설계된 범용 프로세서, DSP(Digital Signal Processor), ASIC(Application Specific Intergrated Circuit), FPGA(Field Programmable Gate Array)나 기타 프로그래머블 로직 디바이스(Programmable Logic Device), 이산 게이트 혹은 트랜지스터 로직, 이산 하드웨어 컴포넌트, 혹은 그 어떠한 결합을 통해서도 구현되거나 수행될 수 있다. 범용 프로세서는 마이크로프로세서일 수 있지만, 선택적으로는, 본 프로세서는 종래의 어떠한 프로세서, 제어기, 마이크로컨트롤러 혹은 상태 기계(State Machine)일 수도 있다. 프로세서는 또한 연산 장치(Computing Device), 예컨대 DSP와 마이크로프로세서의 결합, 복수의 마이크로프로세서, DSP 코어와 결합된 하나 혹은 그 이상의 마이크로프로세서, 혹은 어떠한 이같은 다른 구성의 조합으로서도 구현 가능하다.
여기서 설명한 예와 함께 기술된 본 방법이나 알고리즘은 하드웨어에서, 프로세서에 의해 수행되는 소프트웨어 모듈에서, 혹은 양자의 조합에서 직접 구현될 수 있다. 소프트웨어 모듈은, RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드디스크, 분리형 디스크, CD-ROM 혹은 공지기술에서 알려진 기타 어떠한 형태의 저장 매체에도 존재할 수 있다. 저장 매체는 프로세서와 결합될 수 있으며, 그에 따라 프로세서는 저장 매체로부터 정보의 읽고 여기에 정보를 쓰는 것이 가능하다. 선택적으로는, 본 저장 매체는 상기 프로세서에 통합될 수 있다. 상기 프로세서와 저장 매체는 ASIC에 존재할 수 있다.
개시된 예에 관한 이전의 설명은 당업자라면 누구나 본 발명을 제작하거나 사용할 수 있도록 제공되어 있다. 이들 예에 대한 다양한 변경은 당업자에게는 아주 명백한 것이며, 여기에서 정의된 포괄적인 원리들은 본 발명의 정신이나 범위를 벗어나지 않고 다른 예에 적용될 수 있다. 그러므로 본 발명은 여기에 나타낸 예에 제한되도록 의도된 것이 아니라, 여기에 개시된 원리와 새로운 특징들에 부합하는 가장 넓은 범위에 따른다.
도 1은 디-지터 버퍼를 포함하는 접속 터미널이 있는 선행 기술인 통신 시스템의 블록 다이어그램.
도 2는 선행 기술인 디-지터 버퍼를 나타내는 도면.
도 3은 "언더플로우"를 발생시키는 패킷의 송신, 수신 및 재생을 도시한 타이밍 다이어그램.
도 4a와 도 4b는 두 개의 시나리오에서 최적화된 디-지터 버퍼 길이의 계산을 도시한 타이밍 다이어그램.
도 5는 딜레이된 패킷으로부터 발생한 "언더플로우"의 실행을 도시한 타이밍 다이어그램.
도 6은 타겟 디-지터 버퍼 길이의 계산을 도시한 순서도.
도 7a는 제 1 시나리오에서 패킷의 송신을 도시한 타이밍 다이어그램.
도 7b는 디-지터 버퍼 적응 없는 패킷의 수신을 도시한 타이밍 다이어그램.
도 7c는 수신기가 패킷의 예상 시간 후에 패킷을 수신하는 디-지터 버퍼 적응을 한 경우 패킷의 수신을 도시한 타이밍 다이어그램.
도 8a는 수신기가 패킷의 예상 시간 후에 패킷을 수신하는 것을 허용하는 함축적인 버퍼 적응의 예를 도시한 순서도.
도 8b는 적응성 디-지터 버퍼를 위한 작동 모드의 상태 다이어그램.
도 9는 다른 예에 따라서 디-지터 버퍼 적응의 적용을 도시한 타이밍 다이어그램.
도 10은 디-지터 버퍼 딜레이가 데이터의 충돌을 피할 수 있을 정도로 충분하지 못한 예에 따른 유음 부분에서 음성 정보의 송신을 도시한 다이어그램.
도 11은 적응성 디-지터 버퍼를 포함하는 통신 시스템을 나타내는 블록 다이어그램.
도 12는 적응성 디-지터 버퍼와 타임 와핑 장치를 포함하는 수신기의 일부분을 도시한 블록 다이어그램.
도 13a는 압축과 신장 임계치를 포함하는 적응성 디-지터 버퍼의 예를 나타내는 도면.
도 13b는 다중 압축과 신장 임계치를 포함하는 적응성 디-지터 버퍼의 예를 나타내는 도면.
도 14는 다양한 딜레이를 가지는 패킷의 수신에서 타임 와핑을 도시한 타이밍 다이어그램.
도 15는 i)음성 조각(Segment)의 무음 부분 압축; 및 ii)음성 조각의 무음 부분 신장의 예를 도시한 타이밍 다이어그램.
도 16은 음성 신호의 일부분이 반복되는 음성 신호를 도시한 타이밍 다이어그램.
도 17a는 애드-오버랩 작동을 위한 기준 윈도우의 PCM 샘플 수(RWindowSize로 표기)가 확인되고, 타겟 혹은 바람직한 조각 크기(Segment로 표기)가 확인된 음성 조각을 도시한 다이어그램.
도 17b는 일례에 따라 음성 샘플을 압축하는 애드-오버랩 작동의 적용을 도 시한 다이어그램.
도 18a는 애드-오버랩 작동을 위한 기준 윈도우의 PCM 샘플 수(RWindowSize로 표기)가 확인되고, 타겟 혹은 바람직한 조각 크기(Segment로 표기)가 현재 음성 조각 신장에 준비하는데 확인된 다중 음성 조각을 도시한 다이어그램.
도 18b는 일례에 따라 음성 샘플을 신장하는 애드-오버랩 작동의 적용을 도시한 다이어그램.
도 18c는 대체 예에 따라 음성 샘플을 신장하는 작동의 적용을 도시한 다이어그램.
도 19는 딜레이된 패킷과 하이브리드(Hybrid) ARQ 재송신의 경우와 같이 무순서로 도달하는 패킷 및 딜레이된 패킷이 도달할 수 있도록 하는 패킷의 신장을 도시한 다이어그램.
도 20은 두 사용자 간에 대화의 타임라인을 도시한 다이어그램.
도 21은 일례에 따라서 유음 부분 시작 부분에서의 인핸스먼트를 도시한 순서도.
도 22는 대체 예에 따라서 유음 부분 시작 부분에서의 인핸스먼트를 도시한 다이어그램.
도 23은 유음 부분 끝 부분의 인핸스먼트를 도시한 다이어그램.
도 24는 일례에 따라서 유음 부분 끝 부분에서의 인핸스먼트를 도시한 순서도.
도 25는 디코더에 일정한 시간 간격으로 패킷을 전달하는 디-지터 버퍼를 포 함하는 선행 기술 디-지터 버퍼와 디코더 시스템의 작동을 도시한 다이어그램.
도 26은 디-지터 버퍼가 불규칙한 시간 간격으로 디코더에 패킷을 전달하는 예에 따라서 적응성 디-지터 버퍼와 디코더의 작동을 도시한 다이어그램.
도 27은 적응성 디-지터 버퍼와 타임 와핑 제어 장치를 포함하는 일례에 따르는 접속 터미널을 도시한 블록 다이어그램.
도 28은 적응성 디-지터 버퍼를 포함하고 일례에 따라서 패킷을 타임 와핑하도록 적응된 수신기의 일부분을 도시한 도면.
도 29는 적응성 디-지터 버퍼를 포함하고 다른 예에 따라서 패킷을 타임 와핑하도록 적응된 수신기의 대체 예를 도시한 도면.
도 30은 적응성 디-지터 버퍼를 포함하고 예에 따라서 패킷을 타임 와핑 하도록 적응된 수신기의 예에서 디코더 내부의 스케줄러의 예를 도시한 순서도.
도 31은 수신기의 일례에서 오디오 인터페이스 장치 내부의 스케줄러를 도시한 순서도.
도 32는 디코더 외부에서 스케줄링이 계산되는 타임 와핑 장치를 나타내는 도면.
도 33은 디코더의 타임 와핑 장치 내부에서 스케줄링이 계산되는 타임 와핑 장치를 나타내는 도면.

Claims (22)

  1. 타임 와핑 지시자를 수신하고, 상기 타임 와핑 지시자의 제 1 값은 제 1 압축 레벨에 대응하고 상기 타임 와핑 지시자의 제 2 값은 제 1 신장 레벨에 대응하고 상기 타임 와핑 지시자의 제 3 값은 타임 와핑 없이 처리하는 것에 대응하며 상기 타임 와핑 지시자의 제 4 값은 상기 제 1 압축 레벨 및 상기 제 1 신장 레벨과는 다른 레벨에서의 타임 와핑으로 처리하는 것에 대응하도록 멀티스테이트(Multi-State) 지시자를 포함하는 상기 타임 와핑 지시자에 응답하여, 적어도 하나의 패킷의 타임 와핑을 개시하는 타임 와핑 제어 장치;
    상기 타임 와핑 제어 장치에 결합되고, 수신된 데이터 패킷으로부터 샘플 세트를 생성하되, 상기 타임 와핑 지시자의 상기 제 1 값에 응답하여 제 1 샘플 세트를, 상기 타임 와핑 지시자의 상기 제 2 값에 응답하여 제 2 샘플 세트를, 상기 타임 와핑 지시자의 상기 제 3 값에 응답하여 제 3 샘플 세트를, 그리고 상기 타임 와핑 지시자의 상기 제 4 값에 응답하여 상기 제 1 샘플 세트 및 상기 제 2 샘플 세트와는 다른 제 4 샘플 세트를 생성하도록 구성된 디코딩 회로; 및
    상기 타임 와핑 제어 장치에 결합되며, 샘플을 출력하도록 구성된 출력 제어 장치를 구비하는 것을 특징으로 하는 장치.
  2. 제 1 항에 있어서,
    상기 타임 와핑 제어 장치에 결합되고, 수신된 패킷을 디코딩하도록 구성된 디코딩 회로; 및
    상기 디코딩 회로 및 상기 타임 와핑 제어 장치에 결합되고, 상기 타임 와핑 제어 장치에 의해 결정된대로 패킷을 출력하도록 구성된 출력 제어기를 더 구비하는 것을 특징으로 하는 장치.
  3. 제 1 항에 있어서,
    상기 타임 와핑 제어 장치는, 상기 데이터 중 적어도 2개의 세그먼트들 간 상관 관계(Correlation)를 발견하도록 구성되어 있는 것을 특징으로 하는 장치.
  4. 제 3 항에 있어서,
    상기 타임 와핑 제어 장치는, 패킷을 신장하기 위해 상기 세그먼트들에 있어서의 상기 상관 관계를 반복하고, 패킷을 압축하기 위해 상기 세그먼트들에 있어서의 상기 상관 관계를 줄이도록 구성되어 있는 것을 특징으로 하는 장치.
  5. 제 3 항에 있어서,
    상기 세그먼트들에 있어서의 상기 상관 관계는, 음성 신호의 반복되는 부분인 것을 특징으로 하는 장치.
  6. 제 1 항에 있어서,
    상기 제 1 샘플 세트는 패킷의 압축을 위해 생성되고, 상기 제 2 샘플 세트는 신장을 위해 생성되며,
    상기 제 1 샘플 세트는 상기 제 2 샘플 세트보다 작은 것을 특징으로 하는 장치.
  7. 삭제
  8. 제 1 항에 있어서,
    상기 제 3 샘플 세트는 상기 제 1 샘플 세트보다 크고 상기 제 2 샘플 세트보다 작은 것을 특징으로 하는 장치.
  9. 제 1 항에 있어서,
    상기 타임 와핑 지시자의 상기 제 4 값은 제 2 압축 레벨에 대응하고,
    상기 제 4 샘플 세트는 상기 제 1 샘플 세트보다 작은 것을 특징으로 하는 장치.
  10. 제 1 항에 있어서,
    상기 타임 와핑 지시자의 상기 제 4 값은 제 2 신장 레벨에 대응하고,
    상기 제 4 샘플 세트는 상기 제 2 샘플 세트보다 큰 것을 특징으로 하는 장치.
  11. 디코딩된 패킷의 샘플을 수신하도록 구성되고, 타임 와핑 지시자를 수신하고, 상기 타임 와핑 지시자의 제 1 값은 제 1 압축 레벨에 대응하고 상기 타임 와핑 지시자의 제 2 값은 제 1 신장 레벨에 대응하고 상기 타임 와핑 지시자의 제 3 값은 타임 와핑 없이 처리하는 것에 대응하며 상기 타임 와핑 지시자의 제 4 값은 상기 제 1 압축 레벨 및 상기 제 1 신장 레벨과는 다른 레벨에서의 타임 와핑으로 처리하는 것에 대응하도록 멀티스테이트 지시자를 포함하는 상기 타임 와핑 지시자에 응답하여, 적어도 하나의 패킷의 타임 와핑을 개시하며, 출력 샘플 세트를 생성하도록 복수의 수신된 샘플을 변환하되, 상기 수신된 샘플을, 상기 타임 와핑 지시자의 상기 제 1 값에 응답하여 제 1 샘플 세트로, 상기 타임 와핑 지시자의 상기 제 2 값에 응답하여 제 2 샘플 세트로, 상기 타임 와핑 지시자의 상기 제 3 값에 응답하여 제 3 샘플 세트로, 그리고 상기 타임 와핑 지시자의 상기 제 4 값에 응답하여 상기 제 1 샘플 세트 및 상기 제 2 샘플 세트와는 다른 제 4 샘플 세트로 변환하도록 구성된 타임 와핑 제어 장치; 및
    상기 타임 와핑 제어 장치에 결합되고, 샘플을 출력하도록 구성된 출력 제어 장치를 구비하며,
    상기 제 1 샘플 세트는 상기 제 2 샘플 세트보다 작은 것을 특징으로 하는 장치.
  12. 제 11 항에 있어서,
    상기 제 1 샘플 세트는 상기 수신된 샘플로부터 압축되고, 상기 제 2 샘플 세트는 상기 수신된 샘플로부터 신장되는 것을 특징으로 하는 장치.
  13. 제 12 항에 있어서,
    상기 타임 와핑 제어 장치는, 상기 수신된 샘플 중 적어도 2개의 세그먼트들 간 상관 관계를 발견하도록 구성되어 있는 것을 특징으로 하는 장치.
  14. 제 13 항에 있어서,
    상기 타임 와핑 제어 장치는, 패킷을 신장하기 위해 상기 세그먼트들에 있어서의 상기 상관 관계를 반복하고, 패킷을 압축하기 위해 상기 세그먼트들에 있어서의 상기 상관 관계를 줄이도록 구성되어 있는 것을 특징으로 하는 장치.
  15. 제 14 항에 있어서,
    상기 세그먼트들에 있어서의 상기 상관 관계는, 음성 신호의 반복되는 부분인 것을 특징으로 하는 장치.
  16. 제 11 항에 있어서,
    상기 제 1 샘플 세트는 패킷의 압축을 위해 생성되고, 상기 제 2 샘플 세트는 신장을 위해 생성되며,
    상기 제 1 샘플 세트는 상기 제 2 샘플 세트보다 작은 것을 특징으로 하는 장치.
  17. 삭제
  18. 제 11 항에 있어서,
    상기 제 3 샘플 세트는 상기 제 1 샘플 세트보다 크고 상기 제 2 샘플 세트보다 작은 것을 특징으로 하는 장치.
  19. 제 11 항에 있어서,
    상기 타임 와핑 지시자의 상기 제 4 값은 제 2 압축 레벨에 대응하고,
    상기 제 4 샘플 세트는 상기 제 1 샘플 세트보다 작은 것을 특징으로 하는 장치.
  20. 제 11 항에 있어서,
    상기 타임 와핑 지시자의 상기 제 4 값은 제 2 신장 레벨에 대응하고,
    상기 제 4 샘플 세트는 상기 제 2 샘플 세트보다 큰 것을 특징으로 하는 장치.
  21. 패킷화된 데이터를 처리하는 방법에 있어서,
    타임 와핑 제어 장치에서 타임 와핑 지시자를 수신하는 단계;
    상기 타임 와핑 지시자의 제 1 값은 제 1 압축 레벨에 대응하고, 상기 타임 와핑 지시자의 제 2 값은 제 1 신장 레벨에 대응하고, 상기 타임 와핑 지시자의 제 3 값은 타임 와핑 없이 처리하는 것에 대응하며, 상기 타임 와핑 지시자의 제 4 값은 상기 제 1 압축 레벨 및 상기 제 1 신장 레벨과는 다른 레벨에서의 타임 와핑으로 처리하는 것에 대응하도록 멀티스테이트 지시자를 포함하는 상기 타임 와핑 지시자에 응답하여, 상기 타임 와핑 제어 장치에서 적어도 하나의 패킷의 타임 와핑을 개시하는 단계;
    수신된 데이터 패킷으로부터 샘플 세트를 생성하는 단계로서, 상기 타임 와핑 지시자의 상기 제 1 값에 응답하여 제 1 샘플 세트를 생성하는 단계, 상기 타임 와핑 지시자의 상기 제 2 값에 응답하여 제 2 샘플 세트를 생성하는 단계, 상기 타임 와핑 지시자의 상기 제 3 값에 응답하여 제 3 샘플 세트를 생성하는 단계 및 상기 타임 와핑 지시자의 상기 제 4 값에 응답하여 상기 제 1 샘플 세트 및 상기 제 2 샘플 세트와는 다른 제 4 샘플 세트를 생성하는 단계를 포함하는 단계; 및
    상기 타임 와핑 제어 장치에 결합된 출력 제어 장치를 이용하여 상기 샘플 세트를 출력하는 단계를 포함하는 것을 특징으로 하는 방법.
  22. 프로세서에 의한 실행을 위한 명령의 세트를 저장하기 위한 컴퓨터로 판독 가능한 매체로서,
    상기 명령의 세트는, 타임 와핑 제어 장치에서 타임 와핑 지시자를 수신하고; 상기 타임 와핑 지시자의 제 1 값은 제 1 압축 레벨에 대응하고, 상기 타임 와핑 지시자의 제 2 값은 제 1 신장 레벨에 대응하고, 상기 타임 와핑 지시자의 제 3 값은 타임 와핑 없이 처리하는 것에 대응하며, 상기 타임 와핑 지시자의 제 4 값은 상기 제 1 압축 레벨 및 상기 제 1 신장 레벨과는 다른 레벨에서의 타임 와핑으로 처리하는 것에 대응하도록 멀티스테이트 지시자를 포함하는 상기 타임 와핑 지시자에 응답하여, 상기 타임 와핑 제어 장치에서 적어도 하나의 패킷의 타임 와핑을 개시하고; 수신된 데이터 패킷으로부터 샘플 세트를 생성하되, 상기 타임 와핑 지시자의 상기 제 1 값에 응답하여 제 1 샘플 세트를 생성하고, 상기 타임 와핑 지시자의 상기 제 2 값에 응답하여 제 2 샘플 세트를 생성하고, 상기 타임 와핑 지시자의 상기 제 3 값에 응답하여 제 3 샘플 세트를 생성하고, 상기 타임 와핑 지시자의 상기 제 4 값에 응답하여 상기 제 1 샘플 세트 및 상기 제 2 샘플 세트와는 다른 제 4 샘플 세트를 생성하며; 상기 샘플 세트를 출력하기 위한 것을 특징으로 하는 컴퓨터로 판독 가능한 매체.
KR1020097002285A 2004-08-30 2005-08-30 V o I P 용 적응성 디-지터 버퍼 KR100964437B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US60603604P 2004-08-30 2004-08-30
US60/606,036 2004-08-30

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020077007479A Division KR100938032B1 (ko) 2004-08-30 2005-08-30 V o I P 용 적응성 디-지터 버퍼

Publications (2)

Publication Number Publication Date
KR20090026818A KR20090026818A (ko) 2009-03-13
KR100964437B1 true KR100964437B1 (ko) 2010-06-16

Family

ID=35700421

Family Applications (4)

Application Number Title Priority Date Filing Date
KR1020077007479A KR100938032B1 (ko) 2004-08-30 2005-08-30 V o I P 용 적응성 디-지터 버퍼
KR1020097002283A KR100964436B1 (ko) 2004-08-30 2005-08-30 V o I P 용 적응성 디-지터 버퍼
KR1020097002284A KR100938034B1 (ko) 2004-08-30 2005-08-30 V o I P 용 적응성 디-지터 버퍼
KR1020097002285A KR100964437B1 (ko) 2004-08-30 2005-08-30 V o I P 용 적응성 디-지터 버퍼

Family Applications Before (3)

Application Number Title Priority Date Filing Date
KR1020077007479A KR100938032B1 (ko) 2004-08-30 2005-08-30 V o I P 용 적응성 디-지터 버퍼
KR1020097002283A KR100964436B1 (ko) 2004-08-30 2005-08-30 V o I P 용 적응성 디-지터 버퍼
KR1020097002284A KR100938034B1 (ko) 2004-08-30 2005-08-30 V o I P 용 적응성 디-지터 버퍼

Country Status (17)

Country Link
US (4) US7817677B2 (ko)
EP (4) EP2204796B1 (ko)
JP (4) JP2008512062A (ko)
KR (4) KR100938032B1 (ko)
CN (5) CN101873267B (ko)
AT (1) ATE488838T1 (ko)
BR (1) BRPI0514801B1 (ko)
CA (4) CA2691959C (ko)
DE (1) DE602005024825D1 (ko)
DK (1) DK2200024T3 (ko)
ES (2) ES2405750T3 (ko)
MX (1) MX2007002483A (ko)
MY (1) MY149811A (ko)
PL (2) PL2200024T3 (ko)
PT (1) PT2200024E (ko)
TW (1) TWI454101B (ko)
WO (1) WO2006026635A2 (ko)

Families Citing this family (163)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8017791B2 (en) * 2003-03-28 2011-09-13 Wayne State University Tri-substituted 2-benzhydryl-5-benzylamino-tetrahydro-pyran-4-ol and 6-benzhydryl-4-benzylamino-tetrahydro-pyran-3-ol analogues, and novel, 3,6-disubstituted pyran derivatives
ATE488838T1 (de) * 2004-08-30 2010-12-15 Qualcomm Inc Verfahren und vorrichtung für einen adaptiven de- jitter-puffer
US7674096B2 (en) * 2004-09-22 2010-03-09 Sundheim Gregroy S Portable, rotary vane vacuum pump with removable oil reservoir cartridge
US8085678B2 (en) * 2004-10-13 2011-12-27 Qualcomm Incorporated Media (voice) playback (de-jitter) buffer adjustments based on air interface
US7672742B2 (en) * 2005-02-16 2010-03-02 Adaptec, Inc. Method and system for reducing audio latency
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
US8355907B2 (en) * 2005-03-11 2013-01-15 Qualcomm Incorporated Method and apparatus for phase matching frames in vocoders
US7746847B2 (en) * 2005-09-20 2010-06-29 Intel Corporation Jitter buffer management in a packet-based network
US8102878B2 (en) * 2005-09-29 2012-01-24 Qualcomm Incorporated Video packet shaping for video telephony
US8411662B1 (en) 2005-10-04 2013-04-02 Pico Mobile Networks, Inc. Beacon based proximity services
US8257177B1 (en) 2005-10-04 2012-09-04 PICO Mobile Networks, Inc Proximity based games for mobile communication devices
US8406309B2 (en) * 2005-10-21 2013-03-26 Qualcomm Incorporated Video rate adaptation to reverse link conditions
US8548048B2 (en) * 2005-10-27 2013-10-01 Qualcomm Incorporated Video source rate control for video telephony
US8514711B2 (en) * 2005-10-21 2013-08-20 Qualcomm Incorporated Reverse link lower layer assisted video error control
US8842555B2 (en) * 2005-10-21 2014-09-23 Qualcomm Incorporated Methods and systems for adaptive encoding of real-time information in packet-switched wireless communication systems
JP4640824B2 (ja) * 2006-01-30 2011-03-02 富士通株式会社 通信環境の測定方法、受信装置、及びコンピュータプログラム
JP4573780B2 (ja) * 2006-02-02 2010-11-04 富士通株式会社 パケット記録再生装置
US20070201656A1 (en) * 2006-02-07 2007-08-30 Nokia Corporation Time-scaling an audio signal
US8832540B2 (en) 2006-02-07 2014-09-09 Nokia Corporation Controlling a time-scaling of an audio signal
US20070186146A1 (en) * 2006-02-07 2007-08-09 Nokia Corporation Time-scaling an audio signal
JP4983054B2 (ja) * 2006-03-10 2012-07-25 富士通株式会社 サーバ装置及び同装置におけるバッファ制御方法
US20070294087A1 (en) * 2006-05-05 2007-12-20 Nokia Corporation Synthesizing comfort noise
US20070263672A1 (en) * 2006-05-09 2007-11-15 Nokia Corporation Adaptive jitter management control in decoder
JP2008005392A (ja) * 2006-06-26 2008-01-10 Kddi Corp 通信端末装置およびバッファ制御方法
US8005094B2 (en) * 2006-06-30 2011-08-23 Agere Systems Inc. Method and apparatus for circuit emulation services over cell and packet networks
US8619623B2 (en) * 2006-08-08 2013-12-31 Marvell World Trade Ltd. Ad-hoc simple configuration
KR101040160B1 (ko) * 2006-08-15 2011-06-09 브로드콤 코포레이션 패킷 손실 후의 제한되고 제어된 디코딩
CN101375330B (zh) * 2006-08-15 2012-02-08 美国博通公司 丢包后解码音频信号的时间扭曲的方法
US7680099B2 (en) * 2006-08-22 2010-03-16 Nokia Corporation Jitter buffer adjustment
US7573907B2 (en) * 2006-08-22 2009-08-11 Nokia Corporation Discontinuous transmission of speech signals
US8239190B2 (en) * 2006-08-22 2012-08-07 Qualcomm Incorporated Time-warping frames of wideband vocoder
DE602006005360D1 (de) * 2006-08-24 2009-04-09 Ntt Docomo Inc Verfahren und Vorrichtung für nahtloses Handover
US7796626B2 (en) * 2006-09-26 2010-09-14 Nokia Corporation Supporting a decoding of frames
KR101347404B1 (ko) * 2006-10-05 2014-01-02 엘지전자 주식회사 무선통신 시스템에서 음성 패킷의 전송 방법
US9135951B2 (en) * 2006-10-10 2015-09-15 Qualcomm Incorporated System and method for dynamic audio buffer management
US8274945B2 (en) * 2006-10-16 2012-09-25 Qualcomm Incorporated Method and apparatus for time-warping packets at the sender side
US8233456B1 (en) 2006-10-16 2012-07-31 Marvell International Ltd. Power save mechanisms for dynamic ad-hoc networks
US8732315B2 (en) 2006-10-16 2014-05-20 Marvell International Ltd. Automatic ad-hoc network creation and coalescing using WiFi protected setup
US8855275B2 (en) * 2006-10-18 2014-10-07 Sony Online Entertainment Llc System and method for regulating overlapping media messages
US9308455B1 (en) 2006-10-25 2016-04-12 Marvell International Ltd. System and method for gaming in an ad-hoc network
US8817740B2 (en) * 2006-10-31 2014-08-26 Motorola Mobility Llc Methods and devices of a queue controller for dual mode bidirectional audio communication
US8792945B2 (en) * 2006-10-31 2014-07-29 Motorola Mobility Llc Methods and devices for dual mode bidirectional audio communication
US8279884B1 (en) 2006-11-21 2012-10-02 Pico Mobile Networks, Inc. Integrated adaptive jitter buffer
US7961756B1 (en) 2006-11-21 2011-06-14 Picomobile Networks, Inc. Integrated multimedia system
US7978699B1 (en) 2006-11-21 2011-07-12 Picomobile Networks, Inc. Protocol compression with synchronized sequence numbers
US7889686B1 (en) 2006-11-21 2011-02-15 Picomobile Networks, Inc. Seamless switching of media streams between different networks
US7970384B1 (en) 2006-11-21 2011-06-28 Picomobile Networks, Inc. Active phone book enhancements
CN101548500A (zh) * 2006-12-06 2009-09-30 艾利森电话股份有限公司 抖动缓冲器控制
US8111720B2 (en) * 2007-01-09 2012-02-07 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus to indicate maximum scheduling delay for jitter buffer implementations
KR101370478B1 (ko) * 2007-01-10 2014-03-06 퀄컴 인코포레이티드 멀티미디어 전화 통신을 위한 컨텐트- 및 링크-의존 코딩 적응 구조
US7983309B2 (en) * 2007-01-19 2011-07-19 Nokia Corporation Buffering time determination
JP5140684B2 (ja) * 2007-02-12 2013-02-06 ドルビー ラボラトリーズ ライセンシング コーポレイション 高齢又は聴覚障害聴取者のための非スピーチオーディオに対するスピーチオーディオの改善された比率
BRPI0807703B1 (pt) 2007-02-26 2020-09-24 Dolby Laboratories Licensing Corporation Método para aperfeiçoar a fala em áudio de entretenimento e meio de armazenamento não-transitório legível por computador
GB0705329D0 (en) 2007-03-20 2007-04-25 Skype Ltd Method of transmitting data in a communication system
DE602007004358D1 (de) * 2007-06-13 2010-03-04 Ntt Docomo Inc Verfahren und Vorrichtung zur Durchführung einer nahtlosen Weiterleitung einer mobilen Vorrichtung
US8918051B1 (en) 2007-06-18 2014-12-23 Marvell International Ltd. Method and apparatus for performing a handoff of a data communication session from one network to another network
US8628420B2 (en) * 2007-07-03 2014-01-14 Marvell World Trade Ltd. Location aware ad-hoc gaming
US8401865B2 (en) * 2007-07-18 2013-03-19 Nokia Corporation Flexible parameter update in audio/speech coded signals
US20090028300A1 (en) * 2007-07-25 2009-01-29 Mclaughlin Tom Network communication systems including video phones
US8340121B2 (en) * 2007-08-22 2012-12-25 Qualcomm Incorporated Method and apparatus for transmission of circuit switched voice over packet switched networks
EP2191664A4 (en) * 2007-08-24 2012-10-24 Alcatel Lucent RESOURCE PROGRAMMING METHOD, NETWORK ELEMENT, AND USER EQUIPMENT
KR101418354B1 (ko) * 2007-10-23 2014-07-10 삼성전자주식회사 음성 통신 시스템에서 플레이아웃 스케줄링 방법 및 장치
KR101152854B1 (ko) * 2007-12-27 2012-06-12 교세라 가부시키가이샤 무선통신장치
US8797850B2 (en) * 2008-01-10 2014-08-05 Qualcomm Incorporated System and method to adapt to network congestion
JP5153891B2 (ja) * 2008-01-25 2013-02-27 テレフオンアクチーボラゲット エル エム エリクソン(パブル) ネットワーク・ノードのための簡易な適応ジッタ・バッファリング・アルゴリズム
JP5079870B2 (ja) * 2008-02-27 2012-11-21 京セラ株式会社 無線通信装置
US8649353B2 (en) * 2008-03-04 2014-02-11 Interdigital Patent Holdings, Inc. Method and apparatus for accessing a random access channel by selectively using dedicated or contention-based preambles during handover
US8873543B2 (en) * 2008-03-07 2014-10-28 Arcsoft (Shanghai) Technology Company, Ltd. Implementing a high quality VOIP device
US8406715B2 (en) * 2008-03-27 2013-03-26 Panasonic Automotive Systems of America, division of Panasonic Corporation of North America Method and apparatus for dynamically adapting FM tuner sensitivity to a local environment for a single-tuner system
CN101304557B (zh) * 2008-04-25 2012-09-05 华为技术有限公司 一种分组传输控制方法及装置
EP2289065B1 (en) * 2008-06-10 2011-12-07 Dolby Laboratories Licensing Corporation Concealing audio artifacts
US8055292B1 (en) * 2008-06-12 2011-11-08 Sprint Spectrum L.P. Method and system for power level adjustment of forward channels
US8488661B2 (en) * 2008-06-13 2013-07-16 Verizon Patent And Licensing Inc. Systems and methods for data streaming
US8670573B2 (en) * 2008-07-07 2014-03-11 Robert Bosch Gmbh Low latency ultra wideband communications headset and operating method therefor
WO2010024350A1 (ja) * 2008-08-28 2010-03-04 京セラ株式会社 無線端末及び通信端末
US20100202302A1 (en) * 2008-09-21 2010-08-12 Research In Motion Limited System and method for reserving and signaling hybrid automatic repeat request identifiers
US8479214B2 (en) * 2008-09-30 2013-07-02 Microsoft Corporation Hardware throughput saturation detection
US8245229B2 (en) * 2008-09-30 2012-08-14 Microsoft Corporation Temporal batching of I/O jobs
US8346995B2 (en) 2008-09-30 2013-01-01 Microsoft Corporation Balancing usage of hardware devices among clients
US7920475B2 (en) * 2008-12-15 2011-04-05 Verizon Patent And Licensing Inc. System and method for adaptive removal of delay jitter effect and low end-to-end delay
EP2211335A1 (en) * 2009-01-21 2010-07-28 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus, method and computer program for obtaining a parameter describing a variation of a signal characteristic of a signal
US8611337B2 (en) * 2009-03-31 2013-12-17 Adobe Systems Incorporated Adaptive subscriber buffering policy with persistent delay detection for live audio streams
US9137719B2 (en) * 2009-10-27 2015-09-15 Clearwire Ip Holdings Llc Multi-frequency real-time data stream handoff
BR112012015452B1 (pt) * 2009-12-24 2020-12-15 Telecom Italia S.P.A Método para programar transmissão de fluxos de dados de um nó para um receptor em uma rede de comunicação, nó de comunicação, e, memória legível por computador
US9380401B1 (en) 2010-02-03 2016-06-28 Marvell International Ltd. Signaling schemes allowing discovery of network devices capable of operating in multiple network modes
WO2011127059A1 (en) * 2010-04-05 2011-10-13 Huawei Technologies Co., Ltd. Method for dynamic migration of a process or services from one control plane processor to another
US8532804B2 (en) * 2010-06-18 2013-09-10 Microsoft Corporation Predictive resampler scheduler algorithm
US8744367B2 (en) 2010-08-31 2014-06-03 At&T Intellectual Property I, L.P. Tail optimization protocol for cellular radio resource allocation
KR101399604B1 (ko) * 2010-09-30 2014-05-28 한국전자통신연구원 지터버퍼 조정장치, 전자장치 및 그 방법
US8527627B2 (en) 2010-12-14 2013-09-03 At&T Intellectual Property I, L.P. Intelligent mobility application profiling with respect to identified communication bursts
KR20120108564A (ko) * 2011-03-24 2012-10-05 삼성전자주식회사 데이터 처리 시스템 및 그 동작 방법
US9177570B2 (en) * 2011-04-15 2015-11-03 St-Ericsson Sa Time scaling of audio frames to adapt audio processing to communications network timing
US9264872B2 (en) 2011-06-20 2016-02-16 At&T Intellectual Property I, L.P. Controlling traffic transmissions to manage cellular radio resource utilization
US9220066B2 (en) * 2011-06-20 2015-12-22 At&T Intellectual Property I, L.P. Bundling data transfers and employing tail optimization protocol to manage cellular radio resource utilization
US8797874B2 (en) 2011-09-09 2014-08-05 Futurewei Technologies, Inc. Apparatus and system for packet routing and forwarding in an interior network
GB2520866B (en) 2011-10-25 2016-05-18 Skype Ltd Jitter buffer
CN103325385B (zh) * 2012-03-23 2018-01-26 杜比实验室特许公司 语音通信方法和设备、操作抖动缓冲器的方法和设备
EP2672393A1 (en) * 2012-06-04 2013-12-11 Dialog Semiconductor B.V. Circuit and methods to use an audio interface to program a device within an audio stream
TWI511500B (zh) * 2012-09-07 2015-12-01 Apple Inc 用於具有不同條件之網路之適應型抖動緩衝區管理
US10356143B2 (en) 2012-10-10 2019-07-16 Samsung Electronics Co., Ltd. Method and apparatus for media data delivery control
CN102970133B (zh) * 2012-11-12 2015-10-14 安徽量子通信技术有限公司 量子网络的语音传输方法和语音终端
KR20140067512A (ko) * 2012-11-26 2014-06-05 삼성전자주식회사 신호 처리 장치 및 그 신호 처리 방법
CN103888381A (zh) 2012-12-20 2014-06-25 杜比实验室特许公司 用于控制抖动缓冲器的装置和方法
US9526037B2 (en) * 2013-02-04 2016-12-20 Apple Inc. SRVCC handover indication for remote party to voice call
US9420475B2 (en) * 2013-02-08 2016-08-16 Intel Deutschland Gmbh Radio communication devices and methods for controlling a radio communication device
US9565139B2 (en) 2013-03-15 2017-02-07 Comcast Cable Communications, Llc Remote latency adjustment
US9107159B2 (en) * 2013-06-07 2015-08-11 Apple Inc. Enhancing jitter buffer performance through radio level feedback
CN105474313B (zh) 2013-06-21 2019-09-06 弗劳恩霍夫应用研究促进协会 时间缩放器、音频解码器、方法和计算机可读存储介质
KR101953613B1 (ko) * 2013-06-21 2019-03-04 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 지터 버퍼 제어부, 오디오 디코더, 방법 및 컴퓨터 프로그램
CN103474083B (zh) * 2013-09-18 2015-11-18 中国人民解放军电子工程学院 基于正交正弦脉冲序列定位标签的语音时间规整方法
GB201318653D0 (en) * 2013-10-22 2013-12-04 Microsoft Corp Adapting a jitter buffer
US9525641B1 (en) * 2014-01-24 2016-12-20 Google Inc. Facilitating buffer wait time determination based on device- or entity-related conditions
US9338259B2 (en) 2014-02-05 2016-05-10 Sergio Ammirata User defined protocol for zero-added-jitter and error free transmission of layer-2 datagrams across lossy packet-switched network links
KR102163269B1 (ko) * 2014-03-04 2020-10-08 삼성전자주식회사 브이오아이피 프레임 전송 방법 및 장치
US20160142840A1 (en) * 2014-03-14 2016-05-19 Qualcomm Incorporated Features and optimizations for personal communication device based public addressing system
US10129800B2 (en) 2014-03-26 2018-11-13 Telefonaktiebolaget Lm Ericsson (Publ) Methods and equipment for management of playback buffers
CN105207955B (zh) * 2014-06-30 2019-02-05 华为技术有限公司 数据帧的处理方法和装置
US9712287B2 (en) * 2014-07-31 2017-07-18 Qualcomm Incorporated System and method of redundancy based packet transmission error recovery
KR102509179B1 (ko) * 2014-10-02 2023-03-13 자코티 브바 저-대기시간 멀티미디어 스트리밍 환경의 문제 패턴 취급 방법
KR101600284B1 (ko) 2014-10-17 2016-03-07 주식회사 이노와이어리스 영상 품질 측정 방법
CN104410587A (zh) * 2014-11-13 2015-03-11 京信通信系统(中国)有限公司 一种接收缓冲区容量控制方法及装置
US9998386B2 (en) * 2015-05-21 2018-06-12 At&T Mobility Ii Llc Facilitation of adaptive dejitter buffer
US9826445B2 (en) 2015-05-21 2017-11-21 At&T Mobility Ii Llc Facilitation of adaptive dejitter buffer between mobile devices
US9788026B2 (en) * 2015-08-25 2017-10-10 Imagine Communications Corp. Converting adaptive bitrate chunks to a streaming format
US10412453B2 (en) * 2015-10-13 2019-09-10 Futurewei Technologies, Inc. Probability weighted DASH based video streaming over an information-centric network
US10204635B1 (en) * 2015-12-01 2019-02-12 Marvell International Ltd. Device and method for processing media samples
US20170187635A1 (en) * 2015-12-28 2017-06-29 Qualcomm Incorporated System and method of jitter buffer management
KR102419595B1 (ko) 2016-01-07 2022-07-11 삼성전자주식회사 재생 지연 조절 방법 및 이를 적용한 전자 장치
CN106656649B (zh) * 2016-09-14 2021-01-01 腾讯科技(深圳)有限公司 一种实时通话过程中基于测速的通道切换方法、客户端与服务器
CN107945807B (zh) * 2016-10-12 2021-04-13 厦门雅迅网络股份有限公司 基于静音游程的语音识别方法及其系统
JP6919261B2 (ja) 2017-03-24 2021-08-18 ヤマハ株式会社 音データ処理装置、音データ処理方法及びプログラム
US10454811B2 (en) 2017-04-07 2019-10-22 Qualcomm Incorporated Apparatus and method for de-jitter buffer delay adjustment
US10978096B2 (en) * 2017-04-25 2021-04-13 Qualcomm Incorporated Optimized uplink operation for voice over long-term evolution (VoLte) and voice over new radio (VoNR) listen or silent periods
US10998002B2 (en) * 2017-05-31 2021-05-04 Nxp B.V. Audio time stretching
US10616123B2 (en) * 2017-07-07 2020-04-07 Qualcomm Incorporated Apparatus and method for adaptive de-jitter buffer
US10313416B2 (en) * 2017-07-21 2019-06-04 Nxp B.V. Dynamic latency control
US20190102223A1 (en) * 2017-09-29 2019-04-04 Niall Power System, Apparatus And Method For Real-Time Activated Scheduling In A Queue Management Device
US11456962B2 (en) * 2018-05-16 2022-09-27 Telefonaktiebolaget Lm Ericsson (Publ) Delay-aware resource sharing
US10616304B2 (en) * 2018-05-30 2020-04-07 Qualcomm Incorporated Audio dejittering using delay standard deviation
US11240176B2 (en) 2018-08-21 2022-02-01 At&T Intellectual Property I, L.P. Time-spaced messaging for facilitating network communications
US10659112B1 (en) 2018-11-05 2020-05-19 XCOM Labs, Inc. User equipment assisted multiple-input multiple-output downlink configuration
US10756860B2 (en) 2018-11-05 2020-08-25 XCOM Labs, Inc. Distributed multiple-input multiple-output downlink configuration
US10432272B1 (en) 2018-11-05 2019-10-01 XCOM Labs, Inc. Variable multiple-input multiple-output downlink user equipment
US10812216B2 (en) 2018-11-05 2020-10-20 XCOM Labs, Inc. Cooperative multiple-input multiple-output downlink scheduling
CN113383505B (zh) * 2018-11-19 2024-10-18 诺基亚技术有限公司 用于tsn集成的去抖动缓冲器能力的信令
CN113169764A (zh) 2018-11-27 2021-07-23 艾斯康实验室公司 非相干协作式多输入多输出通信
US11765094B2 (en) * 2018-12-12 2023-09-19 Telefonaktiebolaget Lm Ericsson (Publ) Communication system with de-jitter buffer for reducing jitter
US11063645B2 (en) 2018-12-18 2021-07-13 XCOM Labs, Inc. Methods of wirelessly communicating with a group of devices
US10756795B2 (en) 2018-12-18 2020-08-25 XCOM Labs, Inc. User equipment with cellular link and peer-to-peer link
US11330649B2 (en) 2019-01-25 2022-05-10 XCOM Labs, Inc. Methods and systems of multi-link peer-to-peer communications
US10756767B1 (en) 2019-02-05 2020-08-25 XCOM Labs, Inc. User equipment for wirelessly communicating cellular signal with another user equipment
US10896021B2 (en) 2019-02-26 2021-01-19 Nvidia Corporation Dynamically preventing audio underrun using machine learning
JPWO2020217605A1 (ko) * 2019-04-23 2020-10-29
US10735057B1 (en) 2019-04-29 2020-08-04 XCOM Labs, Inc. Uplink user equipment selection
US10686502B1 (en) 2019-04-29 2020-06-16 XCOM Labs, Inc. Downlink user equipment selection
US11411778B2 (en) 2019-07-12 2022-08-09 XCOM Labs, Inc. Time-division duplex multiple input multiple output calibration
US11411779B2 (en) 2020-03-31 2022-08-09 XCOM Labs, Inc. Reference signal channel estimation
US12088499B2 (en) 2020-04-15 2024-09-10 Virewirx, Inc. System and method for reducing data packet processing false alarms
US11889128B2 (en) 2021-01-05 2024-01-30 Qualcomm Incorporated Call audio playback speed adjustment
CN116918337A (zh) * 2021-03-04 2023-10-20 华为技术有限公司 数据处理方法和设备
US20240089210A1 (en) * 2021-03-30 2024-03-14 Qualcomm Incorporated Dejitter target delay value based on silence descriptors
DE102021117762B3 (de) * 2021-07-09 2022-08-18 Dfs Deutsche Flugsicherung Gmbh Verfahren zur Jitter-Kompensation bei einem Empfangen von Sprachinhalt über IP basierte Netzwerke und Empfänger hierfür sowie Verfahren und Vorrichtung zum Senden und Empfangen von Sprachinhalt mit Jitter-Kompensation
MX2024010315A (es) * 2022-02-28 2024-08-28 Arris Entpr Llc Metodo de medicion del rendimiento de la retencion de tiempo en un sistema r-phy.

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040120309A1 (en) 2001-04-24 2004-06-24 Antti Kurittu Methods for changing the size of a jitter buffer and for time alignment, communications system, receiving end, and transcoder

Family Cites Families (142)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US152152A (en) * 1874-06-16 Improvement in bob-sleds
US179474A (en) * 1876-07-04 Improvement in the manufacture of gas for illuminating and heating
US185186A (en) * 1876-12-12 Improvement in mail-bag fastenings
US243846A (en) * 1881-07-05 David buick
US89003A (en) * 1869-04-20 Improved railway-carriage wheel
US16711A (en) * 1857-03-03 Pen and pencil holder
US742026A (en) * 1903-07-09 1903-10-20 Isaac Pendleton Henthorn Embryotractor.
JPS5643800A (en) 1979-09-19 1981-04-22 Fujitsu Ltd Multilayer printed board
JPS57158247A (en) 1981-03-24 1982-09-30 Tokuyama Soda Co Ltd Flame retardant polyolefin composition
JPS57159038A (en) 1981-03-25 1982-10-01 Fujitsu Ltd Forming method for v-shaped isolation region
JPS57158247U (ko) * 1981-03-30 1982-10-05
JPS59153346A (ja) * 1983-02-21 1984-09-01 Nec Corp 音声符号化・復号化装置
JPS61156949A (ja) * 1984-12-27 1986-07-16 Matsushita Electric Ind Co Ltd 音声パケツト通信方式
JPS61158949A (ja) 1985-01-07 1986-07-18 Toyo Gosei Kogyo Kk 2−(4′−アミルベンゾイル)安息香酸混合物の製造方法
JPH0650888B2 (ja) * 1985-09-20 1994-06-29 日本電信電話株式会社 音声パケツト通信方式
JPS637297A (ja) 1986-06-24 1988-01-13 辻 賢二 横ミシン刄固定具
BE1000415A7 (nl) 1987-03-18 1988-11-22 Bell Telephone Mfg Asynchroon op basis van tijdsverdeling werkend communicatiesysteem.
JPS6429141A (en) 1987-07-24 1989-01-31 Nec Corp Packet exchange system
JPH01113744A (ja) 1987-10-27 1989-05-02 Ritsutai Shiyashinzou Kk 立体写真像製作方法およびその装置
JP2760810B2 (ja) 1988-09-19 1998-06-04 株式会社日立製作所 音声パケット処理方法
SE462277B (sv) 1988-10-05 1990-05-28 Vme Ind Sweden Ab Hydrauliskt styrsystem
JPH02288441A (ja) * 1989-04-28 1990-11-28 Oki Electric Ind Co Ltd 音声パケット受信回路
GB2243793B (en) * 1990-05-09 1993-08-18 Pall Corp Filter assemblies
JPH04113744A (ja) * 1990-09-04 1992-04-15 Fujitsu Ltd 可変速度パケット伝送方式
DE69128772T2 (de) 1990-09-19 1998-08-06 Philips Electronics N.V., Eindhoven System mit einem aufzeichnungsträger und einer wiedergabevorrichtung
JP2846443B2 (ja) 1990-10-09 1999-01-13 三菱電機株式会社 パケット組立分解装置
JPH04331529A (ja) * 1991-05-07 1992-11-19 Fujitsu Ltd ゆらぎ吸収バッファの制御装置
EP0588932B1 (en) 1991-06-11 2001-11-14 QUALCOMM Incorporated Variable rate vocoder
US5283811A (en) * 1991-09-03 1994-02-01 General Electric Company Decision feedback equalization for digital cellular radio
US5371853A (en) 1991-10-28 1994-12-06 University Of Maryland At College Park Method and system for CELP speech coding and codebook for use therewith
JPH06152648A (ja) * 1992-11-09 1994-05-31 Mitsubishi Electric Corp データ・パケット通信方法
US5317604A (en) 1992-12-30 1994-05-31 Gte Government Systems Corporation Isochronous interface method
JP3186315B2 (ja) 1993-02-27 2001-07-11 ソニー株式会社 信号圧縮装置、信号伸張装置、信号送信装置、信号受信装置及び信号送受信装置
US5490479A (en) * 1993-05-10 1996-02-13 Shalev; Matti Method and a product resulting from the use of the method for elevating feed storage bins
US5440582A (en) 1993-05-28 1995-08-08 Motorola, Inc. Method and apparatus for determining signal usability
US5640368A (en) * 1993-07-26 1997-06-17 Exxon Production Research Company Migration velocity analysis using limited-aperture and monte carlo migration
US5440562A (en) 1993-12-27 1995-08-08 Motorola, Inc. Communication through a channel having a variable propagation delay
US5784532A (en) 1994-02-16 1998-07-21 Qualcomm Incorporated Application specific integrated circuit (ASIC) for performing rapid speech compression in a mobile telephone system
JP3713715B2 (ja) * 1994-08-12 2005-11-09 ソニー株式会社 ビデオ信号編集装置
NL9401696A (nl) 1994-10-14 1996-05-01 Nederland Ptt Bufferuitleesbesturing van ATM ontvanger.
US5602959A (en) * 1994-12-05 1997-02-11 Motorola, Inc. Method and apparatus for characterization and reconstruction of speech excitation waveforms
US5699478A (en) 1995-03-10 1997-12-16 Lucent Technologies Inc. Frame erasure compensation technique
US5929921A (en) 1995-03-16 1999-07-27 Matsushita Electric Industrial Co., Ltd. Video and audio signal multiplex sending apparatus, receiving apparatus and transmitting apparatus
JP3286110B2 (ja) 1995-03-16 2002-05-27 松下電器産業株式会社 音声パケット補間装置
KR0164827B1 (ko) * 1995-03-31 1999-03-20 김광호 프로그램 가이드신호 수신기
WO1997010586A1 (en) 1995-09-14 1997-03-20 Ericsson Inc. System for adaptively filtering audio signals to enhance speech intelligibility in noisy environmental conditions
JPH09127995A (ja) 1995-10-26 1997-05-16 Sony Corp 信号復号化方法及び信号復号化装置
US5640388A (en) * 1995-12-21 1997-06-17 Scientific-Atlanta, Inc. Method and apparatus for removing jitter and correcting timestamps in a packet stream
JPH09261613A (ja) 1996-03-26 1997-10-03 Mitsubishi Electric Corp データ受信再生装置
US5866187A (en) * 1996-08-28 1999-02-02 Bunge Foods Corporation Baking formulation containing pelletized shortening
KR0185858B1 (ko) * 1996-08-31 1999-05-15 대우전자주식회사 에이티엠망에서의 이디디를 이용한 스톱-앤-고우 큐 서비스방법
US5940479A (en) 1996-10-01 1999-08-17 Northern Telecom Limited System and method for transmitting aural information between a computer and telephone equipment
JPH10190735A (ja) * 1996-12-27 1998-07-21 Secom Co Ltd 通話システム
JPH10313315A (ja) 1997-05-12 1998-11-24 Mitsubishi Electric Corp 音声セルゆらぎ吸収装置
US6073092A (en) * 1997-06-26 2000-06-06 Telogy Networks, Inc. Method for speech coding based on a code excited linear prediction (CELP) model
JP3075246B2 (ja) * 1998-01-26 2000-08-14 日本電気株式会社 音声パケット送受信方法および装置
US6240386B1 (en) 1998-08-24 2001-05-29 Conexant Systems, Inc. Speech codec employing noise classification for noise compensation
US6259677B1 (en) 1998-09-30 2001-07-10 Cisco Technology, Inc. Clock synchronization and dynamic jitter management for voice over IP and real-time data
US6370125B1 (en) * 1998-10-08 2002-04-09 Adtran, Inc. Dynamic delay compensation for packet-based voice network
JP2000124947A (ja) 1998-10-13 2000-04-28 Oki Electric Ind Co Ltd 音声パケット受信装置及び方法
WO2000024144A1 (en) * 1998-10-21 2000-04-27 Tiernan Communications, Inc. Method and apparatus for de-jittering asynchronous data transfer delay
US6473399B1 (en) 1998-11-30 2002-10-29 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for determining an optimum timeout under varying data rates in an RLC wireless system which uses a PDU counter
US6456964B2 (en) 1998-12-21 2002-09-24 Qualcomm, Incorporated Encoding of periodic speech using prototype waveforms
US6922669B2 (en) 1998-12-29 2005-07-26 Koninklijke Philips Electronics N.V. Knowledge-based strategies applied to N-best lists in automatic speech recognition systems
US6311154B1 (en) * 1998-12-30 2001-10-30 Nokia Mobile Phones Limited Adaptive windows for analysis-by-synthesis CELP-type speech coding
US6452950B1 (en) * 1999-01-14 2002-09-17 Telefonaktiebolaget Lm Ericsson (Publ) Adaptive jitter buffering
US20020101885A1 (en) * 1999-03-15 2002-08-01 Vladimir Pogrebinsky Jitter buffer and methods for control of same
US7117156B1 (en) * 1999-04-19 2006-10-03 At&T Corp. Method and apparatus for performing packet loss or frame erasure concealment
WO2000063883A1 (en) 1999-04-19 2000-10-26 At & T Corp. Method and apparatus for performing packet loss or frame erasure concealment
JP2000307654A (ja) 1999-04-23 2000-11-02 Canon Inc 音声パケット伝送システム
GB9911737D0 (en) 1999-05-21 1999-07-21 Philips Electronics Nv Audio signal time scale modification
JP4218186B2 (ja) 1999-05-25 2009-02-04 パナソニック株式会社 音声伝送装置
US6785230B1 (en) * 1999-05-25 2004-08-31 Matsushita Electric Industrial Co., Ltd. Audio transmission apparatus
JP3506960B2 (ja) * 1999-08-03 2004-03-15 シャープ株式会社 パケット処理装置及びパケット処理プログラムを記録した記憶媒体
JP4895418B2 (ja) 1999-08-24 2012-03-14 ソニー株式会社 音声再生方法および音声再生装置
EP1221694B1 (en) 1999-09-14 2006-07-19 Fujitsu Limited Voice encoder/decoder
US6377931B1 (en) 1999-09-28 2002-04-23 Mindspeed Technologies Speech manipulation for continuous speech playback over a packet network
US6859460B1 (en) * 1999-10-22 2005-02-22 Cisco Technology, Inc. System and method for providing multimedia jitter buffer adjustment for packet-switched networks
US6665317B1 (en) * 1999-10-29 2003-12-16 Array Telecom Corporation Method, system, and computer program product for managing jitter
US6496794B1 (en) 1999-11-22 2002-12-17 Motorola, Inc. Method and apparatus for seamless multi-rate speech coding
US6693921B1 (en) 1999-11-30 2004-02-17 Mindspeed Technologies, Inc. System for use of packet statistics in de-jitter delay adaption in a packet network
US6366880B1 (en) 1999-11-30 2002-04-02 Motorola, Inc. Method and apparatus for suppressing acoustic background noise in a communication system by equaliztion of pre-and post-comb-filtered subband spectral energies
WO2001060093A1 (en) * 2000-02-08 2001-08-16 Opuswave Networks, Inc. Method and system for integrating pbx features in a wireless network
JP3841256B2 (ja) * 2000-02-15 2006-11-01 三菱電機株式会社 通信システム及び通信方法及び送信端末
GB2360178B (en) 2000-03-06 2004-04-14 Mitel Corp Sub-packet insertion for packet loss compensation in Voice Over IP networks
US6813274B1 (en) 2000-03-21 2004-11-02 Cisco Technology, Inc. Network switch and method for data switching using a crossbar switch fabric with output port groups operating concurrently and independently
EP1275225B1 (en) 2000-04-03 2007-12-26 Ericsson Inc. Method and apparatus for efficient handover in packet data communication system
US6763375B1 (en) * 2000-04-11 2004-07-13 International Business Machines Corporation Method for defining and controlling the overall behavior of a network processor device
US6584438B1 (en) 2000-04-24 2003-06-24 Qualcomm Incorporated Frame erasure compensation method in a variable rate speech coder
EP1796083B1 (en) 2000-04-24 2009-01-07 Qualcomm Incorporated Method and apparatus for predictively quantizing voiced speech
US7246057B1 (en) 2000-05-31 2007-07-17 Telefonaktiebolaget Lm Ericsson (Publ) System for handling variations in the reception of a speech signal consisting of packets
EP1182875A3 (en) * 2000-07-06 2003-11-26 Matsushita Electric Industrial Co., Ltd. Streaming method and corresponding system
CN1119890C (zh) * 2000-09-30 2003-08-27 华为技术有限公司 一种ip语音数据包的抗丢包处理方法
JP4110734B2 (ja) 2000-11-27 2008-07-02 沖電気工業株式会社 音声パケット通信の品質制御装置
US7155518B2 (en) 2001-01-08 2006-12-26 Interactive People Unplugged Ab Extranet workgroup formation across multiple mobile virtual private networks
JP2002223247A (ja) * 2001-01-25 2002-08-09 Matsushita Electric Ind Co Ltd リアルタイム音声再生装置
US20020133334A1 (en) 2001-02-02 2002-09-19 Geert Coorman Time scale modification of digitally sampled waveforms in the time domain
US20040204935A1 (en) 2001-02-21 2004-10-14 Krishnasamy Anandakumar Adaptive voice playout in VOP
US7005511B2 (en) 2001-02-26 2006-02-28 The Regents Of The University Of California Fluorescent protein variants and methods for making same
US7212517B2 (en) * 2001-04-09 2007-05-01 Lucent Technologies Inc. Method and apparatus for jitter and frame erasure correction in packetized voice communication systems
JP3644404B2 (ja) * 2001-04-27 2005-04-27 三菱電機株式会社 光加入者線端局装置及びaponシステム及びセル遅延ゆらぎ抑制方法
US7006511B2 (en) 2001-07-17 2006-02-28 Avaya Technology Corp. Dynamic jitter buffering for voice-over-IP and other packet-based communication systems
US7266127B2 (en) 2002-02-08 2007-09-04 Lucent Technologies Inc. Method and system to compensate for the effects of packet delays on speech quality in a Voice-over IP system
US7079486B2 (en) 2002-02-13 2006-07-18 Agere Systems Inc. Adaptive threshold based jitter buffer management for packetized data
US7158572B2 (en) 2002-02-14 2007-01-02 Tellabs Operations, Inc. Audio enhancement communication techniques
US7126957B1 (en) 2002-03-07 2006-10-24 Utstarcom, Inc. Media flow method for transferring real-time data between asynchronous and synchronous networks
US7263109B2 (en) * 2002-03-11 2007-08-28 Conexant, Inc. Clock skew compensation for a jitter buffer
US6944540B2 (en) * 2002-03-28 2005-09-13 Motorola, Inc. Time determination in satellite positioning system receivers and methods therefor
US20030187663A1 (en) 2002-03-28 2003-10-02 Truman Michael Mead Broadband frequency translation for high frequency regeneration
JP3761486B2 (ja) 2002-03-29 2006-03-29 Necインフロンティア株式会社 無線lanシステム、主装置およびプログラム
US20050228648A1 (en) * 2002-04-22 2005-10-13 Ari Heikkinen Method and device for obtaining parameters for parametric speech coding of frames
US7496086B2 (en) * 2002-04-30 2009-02-24 Alcatel-Lucent Usa Inc. Techniques for jitter buffer delay management
US7280510B2 (en) 2002-05-21 2007-10-09 Nortel Networks Limited Controlling reverse channel activity in a wireless communications system
WO2003107591A1 (en) 2002-06-14 2003-12-24 Nokia Corporation Enhanced error concealment for spatial audio
US20040001494A1 (en) * 2002-07-01 2004-01-01 Zarlink Semiconductor V.N. Inc Architecture for obtaining playback time from a packet sequence number in AAL2 SSCS voice
US7336678B2 (en) * 2002-07-31 2008-02-26 Intel Corporation State-based jitter buffer and method of operation
US8520519B2 (en) 2002-09-20 2013-08-27 Broadcom Corporation External jitter buffer in a packet voice system
JP3796240B2 (ja) * 2002-09-30 2006-07-12 三洋電機株式会社 ネットワーク電話機および音声復号化装置
JP4146708B2 (ja) 2002-10-31 2008-09-10 京セラ株式会社 通信システム、無線通信端末、データ配信装置及び通信方法
US6996626B1 (en) * 2002-12-03 2006-02-07 Crystalvoice Communications Continuous bandwidth assessment and feedback for voice-over-internet-protocol (VoIP) comparing packet's voice duration and arrival rate
KR100517237B1 (ko) 2002-12-09 2005-09-27 한국전자통신연구원 직교 주파수 분할 다중화 무선 통신 시스템에서의채널품질 추정과 링크적응 방법 및 그 장치
US7525918B2 (en) * 2003-01-21 2009-04-28 Broadcom Corporation Using RTCP statistics for media system control
US7394833B2 (en) * 2003-02-11 2008-07-01 Nokia Corporation Method and apparatus for reducing synchronization delay in packet switched voice terminals using speech decoder modification
JP2004266724A (ja) * 2003-03-04 2004-09-24 Matsushita Electric Ind Co Ltd リアルタイム音声用バッファ制御装置
JP3825007B2 (ja) * 2003-03-11 2006-09-20 沖電気工業株式会社 ジッタバッファの制御方法
JP4034217B2 (ja) 2003-03-20 2008-01-16 クボタ松下電工外装株式会社 出隅部材とこれを用いた出隅納め構造
US7551671B2 (en) 2003-04-16 2009-06-23 General Dynamics Decision Systems, Inc. System and method for transmission of video signals using multiple channels
JP2005057504A (ja) * 2003-08-05 2005-03-03 Matsushita Electric Ind Co Ltd データ通信装置及びデータ通信方法
CA2536358C (en) * 2003-08-15 2011-09-27 Research In Motion Uk Limited Apparatus, and an associated method, for preserving service quality levels during hand-off in a radio communication system
US7596488B2 (en) * 2003-09-15 2009-09-29 Microsoft Corporation System and method for real-time jitter control and packet-loss concealment in an audio signal
US7505764B2 (en) 2003-10-28 2009-03-17 Motorola, Inc. Method for retransmitting a speech packet
US7272400B1 (en) * 2003-12-19 2007-09-18 Core Mobility, Inc. Load balancing between users of a wireless base station
US7424026B2 (en) * 2004-04-28 2008-09-09 Nokia Corporation Method and apparatus providing continuous adaptive control of voice packet buffer at receiver terminal
JP4076981B2 (ja) 2004-08-09 2008-04-16 Kddi株式会社 通信端末装置およびバッファ制御方法
ATE488838T1 (de) 2004-08-30 2010-12-15 Qualcomm Inc Verfahren und vorrichtung für einen adaptiven de- jitter-puffer
US8085678B2 (en) * 2004-10-13 2011-12-27 Qualcomm Incorporated Media (voice) playback (de-jitter) buffer adjustments based on air interface
SG124307A1 (en) 2005-01-20 2006-08-30 St Microelectronics Asia Method and system for lost packet concealment in high quality audio streaming applications
US8102872B2 (en) 2005-02-01 2012-01-24 Qualcomm Incorporated Method for discontinuous transmission and accurate reproduction of background noise information
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
US8355907B2 (en) 2005-03-11 2013-01-15 Qualcomm Incorporated Method and apparatus for phase matching frames in vocoders
US8155965B2 (en) 2005-03-11 2012-04-10 Qualcomm Incorporated Time warping frames inside the vocoder by modifying the residual
BRPI0607646B1 (pt) 2005-04-01 2021-05-25 Qualcomm Incorporated Método e equipamento para encodificação por divisão de banda de sinais de fala

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040120309A1 (en) 2001-04-24 2004-06-24 Antti Kurittu Methods for changing the size of a jitter buffer and for time alignment, communications system, receiving end, and transcoder

Also Published As

Publication number Publication date
ATE488838T1 (de) 2010-12-15
CN101873266A (zh) 2010-10-27
US7817677B2 (en) 2010-10-19
CN101873267A (zh) 2010-10-27
MX2007002483A (es) 2007-05-11
DK2200024T3 (da) 2013-07-01
CN101867522A (zh) 2010-10-20
CA2578737C (en) 2010-09-21
KR20070065876A (ko) 2007-06-25
WO2006026635A3 (en) 2006-06-22
EP1787290B1 (en) 2010-11-17
TW200629816A (en) 2006-08-16
EP2204796B1 (en) 2017-07-12
JP2010136346A (ja) 2010-06-17
KR20090026818A (ko) 2009-03-13
KR100938034B1 (ko) 2010-01-21
CN101048813A (zh) 2007-10-03
US20060050743A1 (en) 2006-03-09
WO2006026635A2 (en) 2006-03-09
CN101873266B (zh) 2015-11-25
US7830900B2 (en) 2010-11-09
BRPI0514801A (pt) 2008-06-24
PL2200024T3 (pl) 2013-08-30
CA2691762A1 (en) 2006-03-09
PL1787290T3 (pl) 2011-04-29
JP5389729B2 (ja) 2014-01-15
TWI454101B (zh) 2014-09-21
EP2189978A1 (en) 2010-05-26
BRPI0514801B1 (pt) 2019-06-18
US8331385B2 (en) 2012-12-11
JP5591897B2 (ja) 2014-09-17
JP2013031222A (ja) 2013-02-07
KR20090028641A (ko) 2009-03-18
JP2008512062A (ja) 2008-04-17
ES2355039T3 (es) 2011-03-22
CA2578737A1 (en) 2006-03-09
KR20090028640A (ko) 2009-03-18
US20060045138A1 (en) 2006-03-02
EP2204796A1 (en) 2010-07-07
CA2691959A1 (en) 2006-03-09
CA2691959C (en) 2013-07-30
EP1787290A2 (en) 2007-05-23
CA2691589A1 (en) 2006-03-09
KR100938032B1 (ko) 2010-01-21
EP2200024B1 (en) 2013-03-27
KR100964436B1 (ko) 2010-06-16
CA2691762C (en) 2012-04-03
EP2200024A1 (en) 2010-06-23
CN102779517A (zh) 2012-11-14
JP2010226744A (ja) 2010-10-07
ES2405750T3 (es) 2013-06-03
PT2200024E (pt) 2013-07-08
JP4933605B2 (ja) 2012-05-16
US20060056383A1 (en) 2006-03-16
US7826441B2 (en) 2010-11-02
MY149811A (en) 2013-10-14
DE602005024825D1 (de) 2010-12-30
CN101873267B (zh) 2012-10-24
US20060045139A1 (en) 2006-03-02
CN101048813B (zh) 2012-08-29

Similar Documents

Publication Publication Date Title
KR100964437B1 (ko) V o I P 용 적응성 디-지터 버퍼
US8937963B1 (en) Integrated adaptive jitter buffer
US20080267224A1 (en) Method and apparatus for modifying playback timing of talkspurts within a sentence without affecting intelligibility
CA2584818A1 (en) Method and apparatus for managing end-to-end voice over internet protocol media latency

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130531

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140529

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160330

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170330

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180329

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20190327

Year of fee payment: 10