KR20090026818A - 인터넷 프로토콜을 통한 음성통화용 적응성 디-지터 버퍼 - Google Patents

인터넷 프로토콜을 통한 음성통화용 적응성 디-지터 버퍼 Download PDF

Info

Publication number
KR20090026818A
KR20090026818A KR1020097002285A KR20097002285A KR20090026818A KR 20090026818 A KR20090026818 A KR 20090026818A KR 1020097002285 A KR1020097002285 A KR 1020097002285A KR 20097002285 A KR20097002285 A KR 20097002285A KR 20090026818 A KR20090026818 A KR 20090026818A
Authority
KR
South Korea
Prior art keywords
packet
time warping
samples
jitter buffer
time
Prior art date
Application number
KR1020097002285A
Other languages
English (en)
Other versions
KR100964437B1 (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
    • 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
    • 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
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • 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/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/752Media network packet handling adapting media to network capabilities
    • 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
    • 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
    • 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
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Audiology, Speech & Language Pathology (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)
  • Telephonic Communication Services (AREA)
  • Use Of Switch Circuits For Exchanges And Methods Of Control Of Multiplex Exchanges (AREA)
  • Time-Division Multiplex Systems (AREA)

Abstract

패킷 교환 통신을 위한 인터넷 프로토콜을 통한 음성 통화용 적응성 디-지터 버퍼(VoIP). 상술된 디-지터 방법과 장치는 단-대-단 딜레이의 균형을 맞추면서 언더플로우의 재생을 막는다. 예를 들어, 각 유음 부분의 시작 부분에서 디-지터 버퍼가 재계산된다. 다른 예로서, 유음 부분 패킷은 모든 나머지 패킷이 수신되면 압축된다.

Description

인터넷 프로토콜을 통한 음성통화용 적응성 디-지터 버퍼{ADAPTIVE DE-JITTER BUFFER FOR VOICE OVER IP}
본 발명은 2004년 8월 30일에 출원되고 "패킷 교환 통신을 위한 인터넷 프로토콜을 통한 음성 통화용 적응성 디-지터 버퍼(Adaptive De-Jitter Buffer For Voice Over IP for Packet Switched Communications)"라고 명명된 미국 특허 출원 제 60/606,036호에 대한 우선권을 주장한다.
본 발명은 무선 통신 시스템과 관련된 것이며, 특히 인터넷 프로토콜을 통한 음성 통화용(VoIP) 적응성 디-지터 버퍼와 관련이 있다. 이 발명은 패킷이 손실될 수 있는 어떠한 시스템에도 적용된다.
통신 시스템에서, 패킷의 단-대-단 딜레이(End-to-end Delay)란 소스(Source)에서 패킷이 발생된 시점으로부터 목적지에 전송될 때까지 걸리는 시간으로 정의된다. 패킷 교환 통신 시스템에서, 패킷이 소스로부터 목적지까지 전송되면서 생기는 딜레이는, 채널 상태나 네트워크의 로딩(Loading)에 한정되는 것은 아니지만, 이들을 포함한 여러 가지 작동 상태에 따라서 변화된다. 채널 상태는 무선 링크(Link)의 품질을 말한다. 무선 링크의 품질을 결정하는 몇 가지 요소는 신호의 세기(Strength), 단말기(Mobile)의 속도 및/혹은 물리적인 방해물이다.
단-대-단 딜레이는 패킷이 통과하는 다양한 요소들과 네트워크에 도입된 딜레이를 포함한다. 많은 요인들이 단-대-단 딜레이에 영향을 미친다. 단-대-단 딜레이에서 생기는 변화를 지터(Jitter)라고 한다. 지터로 인하여 패킷이 더 이상 유용하지 않은 후에 수신될 수 있다. 예를 들어, 음성과 같은 낮은 대기 시간 애플리케이션(Application)에 있어서, 만약 패킷이 너무 늦게 수신되면, 패킷은 수신부에 의해서 드롭(Drop)된다. 이러한 상태로 인하여 통신 품질의 성능이 저하된다.
패킷 교환 시스템에서, 데이터는 패킷을 형성하고, 네트워크를 통해 라우팅(Route)된다. 각각의 패킷은 패킷 내부, 전형적으로 헤더(Header)에 포함되어 있는 할당 주소에 기초하여 네트워크에 있는 목적지로 전송된다. 패킷의 단-대-단 딜레이, 즉 네트워크에서 제 1 사용자 혹은 "전송자"로부터 제 2사용자 혹은 "수신자"에게 이동할 때까지 패킷이 걸리는 시간은 채널 상태, 네트워크 부하, 시스템의 서비스 품질(Quality of Service) 성능 및 특히 리소스(Resource)를 경합하는 다른 플로우들에 의해서 변화한다. 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 표준을 지원하는 시스템에 한정되지 않지만, 이들을 포함하는 패킷 데이터 통신을 지원하는 스펙트럼 확산 통신 시스템(Spread-spectrum Communication System)에 대해 기술할 차후의 논의를 명확하기 하기 위해 이들을 주목해야 한다.
무선 통신 시스템에서, 각각의 패킷은 동일한 플로우에 속해 있는 다른 패킷들이 경험하는 딜레이와는 다른, 소스에서 목적지까지의 딜레이를 발생시킨다. 딜레이의 이러한 변화를 "지터"라고 한다. 지터로 인해 수신부의 애플리케이션은 더 복잡해진다. 만약 수신부가 지터를 수정하지 않으면, 수신된 메세지는 패킷이 재조합되었을 때 왜곡으로 인해 어려움을 겪게 된다. 어떤 시스템은 수신된 패킷으로부 터 메세지를 복구할 때에 지터를 수정한다. 그러한 시스템은 디-지터 버퍼 딜레이(De-jitter Buffer Delay)라고 부르는 대기 시간을 추가하는 디-지터 버퍼를 포함한다. 디-지터 버퍼가 고정된 큰 디-지터 버퍼 딜레이를 사용할 때에는, 디-지터 버퍼는 도착 패킷의 많은 지터 양을 조정할 수 있다. 하지만 더 작은 딜레이를 가진 패킷이 일찍 처리될 수 있었음에도 불구하고, 큰 디-지터 버퍼 딜레이를 사용하여 더 작은 딜레이를 가지는 패킷을 처리하였기 때문에 이러한 방법은 효율적이지 않다. 이로 인하여 더 작은 딜레이를 가지는 패킷에 대한 단-대-단 딜레이가 더 작은 디-지터 버퍼 딜레이를 사용하여 얻을 수 있는 것보다 커지게 된다.
이를 방지하기 위해서, 디-지터 버퍼를 포함하는 VoIP 시스템은 패킷 딜레이의 변화에 적응하려고(Adapt) 시도할 수 있다. 예를 들어, 디-지터 버퍼는 패킷의 도착 통계를 분석하여 패킷 딜레이의 변화를 탐지한다. 많은 디-지터 버퍼 구현은 디-지터 버퍼 딜레이의 변화에 전혀 적응하지 못하고, 줄잡아 큰 딜레이를 갖도록 구성된다. 이 경우에, 디-지터 버퍼는 과도한 딜레이를 패킷에 추가하여 사용자에게 차선책을 제시한다.
이하에서는 디-지터 버퍼 딜레이를 변화시켜서 패킷 딜레이 거동의 변화에 적응하도록 하는 적응성 디-지터 버퍼에 대해 기술한다. 이 디-지터 버퍼는 스피치 타임 와핑(Speech Time Warping)을 이용하여 패킷의 가변 딜레이를 추적하는 능력을 향상시킨다. 이하의 논의는 주기적 데이터 전송, 낮은 대기 시간(Low Latency) 조건, 순차적인 데이터 처리 혹은 지정된 재생 비율과 같은 패킷화된 통신에 적용 된다. 특히 이하에서는 데이터 혹은 음성(Speech)과 무음(Silence)이 소스에서 발생하고 재생을 위해 목적지에 전송되는 음성(Voice) 통신에 대해 자세히 논의한다. 원래 데이터는 패킷화되고 공지된 인코딩(Encoding) 방식(Scheme)을 사용하여 인코딩된다. 수신부에서 각각의 데이터 패킷에 대해 인코딩 방식이 결정된다. 음성 통신에서, 예를 들어, 음성의 인코딩 유형은 무음의 인코딩 유형과 다르다. 이로 인하여 통신 시스템에서 무음 부분을 포함하는 주기적인 음성의 특성을 이용할 수 있다. 음성 통신에서, 데이터는 갑자기 나타나고, 음성 내용은 반복적으로 나타나기도 한다. 패킷화된 음성 전송은 음성 통신의 참여자가 딜레이를 듣고 싶어하지 않기 때문에 낮은 대기 시간 조건을 가지지만, 통신의 품질을 위해 오직 제한된 딜레이만 가질 수 있다. 패킷화된 음성은 서로 다른 경로를 통하여 수신부에 도달하지만, 수신되자마자 패킷들은 원래의 순서대로 재컴파일(Recompile)된다. 따라서 수신된 패킷화된 음성은 순서대로 재생된다. 만약 공기를 통한 전송 혹은 물리 계층에서의 처리 과정 중에 패킷이 손실되었다면, 패킷은 복구되지 않지만, 수신기는 패킷의 내용이 무엇이었는지 추정하거나 추측할 수 있다. 게다가 음성 통신의 재생 비율은 미리 정해진 재생 비율이거나 범위이다. 만약 재생이 범위를 벗어나면, 수신부에서의 품질이 떨어지게 된다. 음성 통신에 대한 애플리케이션은 현재 논의되는 애플리케이션의 예이다. 다른 애플리케이션에는 비디오 통신, 게임 통신, 혹은 음성 통신의 특징, 규격 그리고/혹은 요청조건과 유사한 특징, 규격 그리고/혹은 요청조건을 갖춘 다른 통신이 포함된다. 예를 들어, 비디오 통신에서는 재생 속도를 빠르게 하거나 느리게 할 필요가 있다. 현재 논의하는 내용은 그러한 경우에 유 용하게 사용될 수 있다. 본 명세서에서 제시되었던 대로, 적응성 디-지터 버퍼에 의해 수신부는 시스템의 지터 요청조건을 만족시키는 서비스의 품질을 제공할 수 있다. 적응성 디-지터 버퍼는 예를 들어 디-지터 버퍼에 저장된 데이터의 양인 타겟 디-지터 버퍼 길이(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)과 관련된 것인데, 도 5에는 패킷의 송신, 수신 및 예상 재생 시간이 시간에 맞게 도시되어 있다. 이 시나리오에서, 각각의 패킷은 예상 재생 시간 보다 약간 늦게 수신된다. 예를 들어 PKT 50의 예상 재생 시간이 t0이지만, PKT 50은 t0 이후의 t0'가 될 때까지 수신되지 않는다. 다음 패킷인 PKT 51이 시간 t₁에서 예정되어 있지만, t₁ 이후의 t₁'가 될 때까지 수신되지 않는다. 이렇게 하여 딜레이된 패킷에 기인한 언더플로우, 즉 "딜레이된 언더플로우"의 많은 부분으로 이끌리게 되는 언더플로우의 실행과 상위 단-대-단 딜레이가 생기게 된다.
명백하게, 많은 양의 재생을 딜레이시키는 디-지터 버퍼는 언더플로우를 최소한으로 유지시키는데에 성공적이다. 하지만, 그러한 디-지터 버퍼는 큰 디-지터 버퍼 딜레이를 패킷의 단-대-단 딜레이로 도입한다. 큰 단-대-단 딜레이로 인하여 대화의 흐름을 유지하는 데에 어려움이 생긴다. 100 ms 보다 큰 딜레이는 듣는 사람으로 하여금 말하는 사람이 말을 마치지 않았다고 생각하도록 만든다. 그러므로 좋은 품질을 위해서는 이상적으로 언더플로우를 피하면서 단-대-단 딜레이를 줄이 는 것이 모두 고려되어야 한다. 문제는 한 문제를 해결하고 나면 다른 문제가 악화된다는 데에 있다. 다시 말해서, 더 작은 단-대-단 딜레이는 일반적으로 더 많은 언더플로우를 발생시키고, 그 역도 마찬가지이다. 따라서 이러한 상충하는 목표들의 균형을 맞출 필요가 있다. 특히, 디-지터 버퍼가 단-대-단 딜레이를 감소시키면서, 언더플로우를 추적하고 피해갈 필요성이 있다.
디- 지터 버퍼 타켓 길이
적응성 디-지터 버퍼의 디자인 목표는 시스템이 음성 패킷의 특정 "언더플로우 비율"를 타겟으로 하도록 하는 동시에, 작은 단-대-단 딜레이를 가지도록 하는 것이다. 인지가능한 품질이 언더플로우 비율의 함수이기 때문에, 특정 비율의 언더플로우를 타겟으로 하는 능력은 음성 품질을 제어할 수 있도록 한다. 디-지터 버퍼에서의 패킷 언더플로우는 패킷이 누락될(Missing) 때 발생한다. 패킷은 그것이 손실되거나 딜레이될 때 누락된다. 손실된 패킷은 패킷이 접속망(Access Network)내부의 어느 곳에 드롭된 때, 예를 들어 물리 계층 혹은 포워드 링크 스케줄러(Forward Link Scheduler)처럼 패킷이 수신부에 도달하기 전에 드롭될 때 언더플로우를 발생시킨다. 이 시나리오에서, 언더플로우는 디-지터 버퍼 딜레이를 사용하여 수정될 수 없는데, 이는 패킷이 절대 디-지터 버퍼에 도달하지 않기 때문이다. 대신에, 언더플로우는 딜레이된 패킷의 결과로서 발생할 수 있고, 패킷의 재생 시간 후에 도달한다. 딜레이된 패킷때문에 생긴 언더플로우를 추적하는 것 외에, 적응성 디-지터 버퍼는 또한 손실된 패킷때문에 생긴 언더플로우도 추적한다.
딜레이된 패킷으로 인한 언더플로우의 수는 언더플로우를 디-지터 버퍼 딜레 이와 교환(Trade Off)함으로써 제어할 수 있다. 딜레이된 패킷으로 인한 언더플로우의 타겟 비율을 나타내는 값을 "언더플로우 타겟"이라고 한다. 이 값은 디-지터 버퍼의 작동을 위한 타겟 값이며, 합리적인 한계 내에서 단-대-단 딜레이를 유지하기 위해 선택된다. 일례로, 1%(0.01)의 값이 "언더플로우 타겟"으로 사용된다. 다른 예로, 0.5%(0.05)의 값이 사용될 수도 있다. "언더플로우 타겟"을 얻기 위해서, 디-지터 버퍼 딜레이가 적응(Adapt)된다.
본 발명의 예에서, 딜레이된 패킷으로 인한 언더플로우 비율의 필터링된 값(이하 "딜레이된 언더플로우"라고 한다.)은 디-지터 버퍼 딜레이를 적응시키는 데에 사용된다. 각각의 무음 부분의 끝 부분(혹은 각각의 유음 부분의 시작 부분)에서, 디-지터 버퍼 딜레이는 도 6에 도시된 것처럼 업데이트(Update) 된다. 도 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는 디-지터 버퍼 딜레이의 최소값과 최대값이며; 예를 들어 각각 20 ms 와 80 ms 로 정해진다. MIN_JITTER와 MAX_JITTER는 시스템 시뮬레이션(Simulation)에 기초하여 추정한다. 이 값들(MIN_JITTER, MAX_JITTER, CONSTANT)은 디-지터 버퍼가 배치된 통신 시스템에 따라 최적화된다.
PERdelay는 각각의 무음 부분의 끝부분 혹은 각각의 유음 부분의 시작 부분에서 업데이트 되며, PERdelay의 계산은 다음의 식을 따른다.
Figure 112009006880869-PAT00001
PER_CONSTANT는 PERdelay를 추정하기 위해 사용되는 필터를 위한 시간 상수이다. 이 상수의 값은 필터의 메모리를 결정하고, TARGET_VALUE를 만족시키도록 해야한다. Current_PERdelay는 PERdelay의 마지막 업데이트와 현재 업데이트 사이에 관찰된 "딜레이된 언더플로우"의 비율이다.
Current_PERdelay는 딜레이된 언더플로우 패킷의 수와 PERdelay의 마지막 업데 이트와 현재 업데이트 사이에 수신된 패킷의 전체 수의 비율로 정의된다.
Figure 112009006880869-PAT00002
도 6을 참고하면, DEJITTER_DELAY를 개시시키는 단계(101)에서 디-지터 버퍼 딜레이를 계산하고 업데이트하는 프로세스(100)가 시작된다. 단계(102)에서는 PERdelay와 TARGET_VALUE를 비교한다. 만약 PERdelay가 TARGET_VALUE보다 작으면, CONSTANT 값이 단계(104)에서 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)부터 계속하면, DEJITTER_DELAY는 단계(110)에서 MIN_JITTER와 DEJITTER_DELAY 중에 큰 값으로 정해진다. 단계(110)에서부터 프로세스를 단계(112)까지 계속하면, 단계(112)에서 DEJITTER_DELAY는 MAX_JITTER와 DEJITTER_DELAY 중에 작은 값으로 정해진다.
추적 딜레이( Tracking Delay )
디-지터 버퍼는 (언더플로우 비율을 추적하는 대신) 딜레이를 추적하는 모드 로 들어갈 수 있다. 추적된 딜레이는 단-대-단 딜레이 혹은 디-지터 버퍼 딜레이이다. 일례로, 디-지터 버퍼는 타겟 언더플로우 비율이 쉽게 충족될 때, "추적 딜레이" 모드로 들어간다. 이것이 의미하는 바는 디-지터 버퍼가 어떠한 시간 주기동안에 타겟 언더플로우 비율보다 낮은 언더플로우 비율을 가질 수 있다는 것이다. 이 시간 주기는 수백 ms에서 몇 초까지 어느 구간이나 될 수 있다.
이 모드에서 디-지터 버퍼는 타겟 딜레이 값을 가진다. 이는 상기하였던 언더플로우 타겟 값과 유사하다. 위에서 언급한 방정식 (1)은 언더플로우 비율을 타겟팅하는데 사용되거나 유사한 방법으로 타겟 딜레이 값을 계산하는데 사용된다. 디-지터 버퍼가 타겟 딜레이 값을 타겟으로 하는 이 모드로 들어갈 때, 이 모드는 타겟 딜레이가 유지되는 한 디-지터 버퍼의 타겟 언더플로우 비율을 감소시킨다.
함축적 버퍼 적응( Implicit Buffer Adaptation )
일부 상황에서는, 디코더가 아직 수신되지 않은 패킷을 재생해야 한다. 이러한 상황이 도 5에 도시되어 있는데, PKT 50의 예상 재생 시간이 t0이고, PKT 50은 이 시간 후에 수신된다. 유사하게, PKT 51은 예상 재생 시간인 t₁ 후에 수신되고, PKT 52는 예상 재생 시간인 t₂ 후에 수신되며, 나머지도 마찬가지이다. 여기서 주목할 점은 패킷들이 꽤 규칙적으로 도달한다는 것이지만, PKT 50은 예정 재생 시간보다 약간 늦게 재생되기 때문에, 모든 그 다음의 패킷들이 자신의 재생 시간을 놓치게 된다. 한편, 만약 디코더가 t0에 소거부분을 삽입할 수 있다면, 여전히 PKT 50은 t₁에서 재생되고, 모든 패킷들이 자신의 재생 시간을 맞출 수 있게 된다. PKT 50의 장소에 있는 소거부분이 재생된 후에 PKT 50을 재생함으로써, 디-지터 버퍼 길이는 효율적으로 적응된다.
주목해야 할 점은, PKT 50의 소거부분 이후에 PKT 50의 재생이 불연속을 일으킨다는 것인데, 이 불연속은 2005년 7월 7일에 공동출원되어, 출원중인 "보코더에서의 위상 매칭(Phase Matching In Vocoders)"이라고 명명된 미국출원 제 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 후가 될 때까지 PKT 4는 도달하지 않는다.
도 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를 절대 수신할 수 없을 때, 시스템은 프로세스를 리셋(Reset)하고, PKT 4의 재생을 하지 않고 PKT 4 다음의 패킷을 재생하게 된다. 상기한 시나리오에서, PKT 4가 도달하기 전에 긴 시간 주기 동안 계속해서 소거부분이 수신되기 때문에, 디-지터 버퍼의 단-대-단 딜레이는 증가할 가능성이 있다.
반면에, 도 7c에 도시된 예에서는, 만약 패킷이 도달하지 못하거나, 패킷의 수신이 딜레이될 경우에, 소거부분이 PKT 4의 예상 재생 시간에 재생된다. 이는 시스템 이 PKT 4를 기다리는 도 7b와 관련하여 기술된 시나리오와 유사하다. 다음 차례의 재생 시간에, PKT 4가 여전히 도달하지 못하였지만, 다음 패킷인 PKT 5가 도달하였다면, PKT 5가 재생된다. 더 자세히 살펴보기 위해서, PKT 4의 수신이 딜레이 되었고 디-지터 버퍼가 시간 Dinit+80 ms에 PKT 4를 수신할 것이라고 가정하자. PKT 4가 딜레이될 때, 소거부분이 재생된다. 시간 Dinit+100 ms에서, 만약 PKT 4가 여전히 도달하지 않았다면, 또 다른 소거부분을 재생하는 대신, PKT 5가 재생된다. 이 제 2 시나리오에서는, 딜레이의 조정이 즉시 이루어지고 통신 네트워크에서 과 도한 단-대-단 딜레이를 피할 수 있다. 이 프로세스를 IBA라고 부르는데, 이는 재생에 우선하여 버퍼에 저장된 데이터의 크기가 데이터의 수신에 따라 증가하거나 감소하기 때문이다.
도 8a에는 함축적 버퍼 적응(IBA) 프로세스(200)가 순서도로 도시되어 있다. 프로세스(200)는 출력 제어기(Output Controller, 760) 혹은 디-지터 버퍼 제어기(756)와 같은 적응성 디-지터 버퍼 내부에 있는 제어기 안에서 구현된다. 프로세스(200)는 적응성 디-지터 버퍼를 지원하는 시스템 내부의 다른 부분에도 존재한다. 단계(202)에서, 적응성 디-지터 버퍼에서 재생을 위해 다음 패킷을 공급해 달라는 요청(Request)이 수신된다. 다음 패킷은 순서상에서 인덱스(Index) i를 가지는 패킷으로 식별되는데, 정확히는 PKT[i]로 표시한다. 단계(204)에서, 만약 IBA 모드가 가능하다면, 프로세스는 IBA 모드에 따라 프로세스(206)까지 계속된다; 그리고 만약 IBA 모드가 가능하지 않다면 , 프로세스는 IBA 모드 없이 프로세스(226)까지 계속된다.
만약 PKT[i]가 단계(206)에서 수신되면, 적응성 디-지터 버퍼는 단계(208)에서 재생을 위해 PKT[i]를 제공한다. IBA 모드는 단계(210)에서 비활성화 되고, 인덱스 i는 증가(Increment)한다. (즉, i=i+1) 나아가, 만약 PKT[i]가 단계(206)에서 수신되지 않았다면, 만약 PKT[i+1]이 단계(214)에서 수신되었다면, 프로세스는 PKT[i+1]을 재생하기 위해 단계(216)까지 계속된다. IBA 모드는 단계(218)에서 비활성화 되고, 인덱스 i는 단계(220)에서 두 번 증가한다.(즉, i=i+2)
만약, 단계(214)에서, PKT[i]와 PKT[i+1]이 수신되지 않았으면, 단계(222)에 서 제어기는 소거부분의 재생을 시작하고; 인덱스 i는 단계(224)에서 증가한다. 이 예에서 주목할 점은, 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 모드와 관련된 상태 다이어그램이다. 정상(Normal) 모드(242)에, 만약 적응성 디-지터 버퍼가 재생을 위해 PKT[i]를 공급하면, 제어기는 정상 모드에 머물러 있는다. 제어기는 소거부분이 재생될 때, 정상 모드(242)에서 IBA 모드(240)로의 전이(Transition)된다. 일단, IBA 모드(240)에서, 제어기는 소거부분을 재생하며 IBA 모드에 머물러 있는다. 제어기는 PKT[i] 혹은 PKT[i+1]이 재생될 때, IBA 모드(240)에서 정상 모드(242)로의 전이된다.
도 9는 도 8a와 8b에 도시된 것과 같은 IBA를 구현하는 디-지터 버퍼의 예를 도시한다. 이 도면에서, 재생 유틸리티는 디코더로부터 재생을 위한 샘플을 요청한 다. 그러면 디코더는 재생 유틸리티가 연속 재생할 수 있을 정도의 충분한 패킷을 디-지터 버퍼로부터 요청한다. 이 도면에서 패킷은 음성 통신을 수행하는 것이고, 재생 유틸리티는 매 20 ms마다 샘플을 재생한다. 대체 시스템은 다른 구성(Configuration)을 통하여 패킷화된 데이터를 디-지터 버퍼로부터 재생 유틸리티에 공급하고, 패킷화된 데이터는 음성 통신과 별개이다.
도 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이다. 다음 순서 패킷은 예상 재생 시간이 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는 유음 부분을 가진 통신 프로세스를 향상시킨다. 유음 부분이란 음성 통신에서 소리(Speech)가 있는 부분을 말하는데, 음성 통신은 소리 부분과 무음 부분을 포함하며, 이는 일반적인 소리 패턴과 일치한다. 소리 처리에 있어서, 보코더는 소리를 위한 패킷의 한 유형과, 무음을 위한 다른 유형을 만들어낸다. 소리 패킷은 하나의 인코딩 비율로 인코딩되고, 무음은 서로 다른 인코딩 비율로 인코딩된다. 인코딩된 패킷이 디-지터 버퍼에 수신될 때, 디-지터 버퍼는 인코딩 비율로부터 패킷의 유형을 확인한다. 디-지터 버퍼는 소리 프레임(Frame)을 유음 부분의 일부로 가정한다. 최초의 무음이 아닌 프레임은 유음 부분의 시작이다. 유음 부분은 무음 패킷이 수신되면 끝난다. 비연속적인 전송에서, 모든 무음 패킷이 전송되는 것은 아닌데, 이는 수신부가 통신의 무음 부분을 발생시키는 모의 노이즈(Simulated Noise)를 구현하기 때문이다. 연속적인 전송에서, 모든 무음 패킷이 전송되고, 수신된다. 일례로, 디-지터 버퍼는 수신된 패킷의 유형에 따라서 디-지터 버퍼 길이를 조정한다. 다시 말해서, 시스템은 통신의 무음 부분을 위해서 요청되는 디-지터 버퍼의 길이를 감소시키도록 결정한다. 주목할 점은 IBA 방식은 재생이 고정 비율 등과 같이 미리 정해진 타이밍 방식에 따라 이루어지는 어떠한 통신에도 적용이 가능하다는 것이다.
타임 와핑
유음 부분은 일반적으로 다중의(Multiple) 데이터 패킷으로 구성되어 있다. 일례로, 유음 부분의 제 1 패킷 재생은 디-지터 버퍼 딜레이와 동일한 길이만큼 딜레이된다. 디-지터 버퍼 딜레이는 여러가지 방식에 의해 결정된다. 시나리오에서, 디-지터 버퍼 딜레이는 상기 방정식 (1)과 같은 알고리즘에 기초하여 계산될 수 있다. 다른 시나리오에서는, 디-지터 버퍼 딜레이가 그것의 길이와 같은 음성 데이터를 수신하는 데 걸리는 시간이다. 이상의 시나리오 대신에, 디-지터 버퍼 딜레이가 앞서 언급한 값들 중에서 작은 값으로 선택될 수도 있다. 이 예에서, 디-지터 버퍼 딜레이를 방정식 (1)을 사용하여 계산하면 60 ms이고, 유음 부분의 제 1 패킷은 제 1 시간 ti에서 수신된다고 가정하자. 유음 부분의 다음 패킷이 제 1 패킷으로부터 50 ms 후에 수신될 때, 적응성 디-지터 버퍼 데이터는 디-지터 딜레이인 60 ms와 같다. 다시 말해서, 적응성 디-지터 버퍼에서 패킷의 수신으로부터 재생까지 걸리는 시간이 60 ms이다. 주목할 점은, 적응성 디-지터 버퍼의 타겟 길이가 60 ms 의 딜레이가 되도록 설정된다는 것이다. 그러한 계산을 통해 얼마나 많은 패킷이 딜레이 시간을 만족시키기 위하여 저장되는지를 결정한다.
적응성 디-지터 버퍼는 버퍼로부터 데이터의 채우기(Filling)와 비우기(Emptying)를 감시하고, 타겟 딜레이 길이에서의 버퍼, 즉, 타겟 딜레이 시간을 만족시키기 위한 데이터의 양을 유지하기 위해 버퍼의 출력을 조정한다. 디-지터 버퍼가 유음 부분의 제 1 패킷을 재생장치로 보내면, Δ만큼의 딜레이가 생기고, Δ=MIN이다.(디-지터 버퍼 딜레이, 디-지터 버퍼 딜레이와 동일한 음성 데이터를 수신하는 데에 걸리는 시간.) 유음 부분의 다음 패킷들은 이전 패킷을 재생하는데 걸린 시간을 Δ에 더한 만큼 딜레이된다. 따라서 동일한 유음 부분의 다음 패킷에 대한 디-지터 버퍼 딜레이는 일단 제 1 패킷의 디-지터 버퍼 딜레이가 정의되면 함축적으로 정의된다. 실제로는, 디-지터 버퍼 딜레이의 이러한 정의는 도 10에 도시된 것과 같은 상황을 수용하기(Accommodate) 위해서 추가적으로 고려해야 할 것들이 있다.
도 10은 유음 부분에서 음성 정보의 전송을 도시한다. 유음부분(150)은 시간 t0에서 수신되고, 유음부분(154)은 시간 t₂에서 수신된다. 유음부분(150)과 유음부분(154) 사이에는 20 ms의 무음부분(152)이 있다. 수신할 때에 적응성 디-지터 버퍼는 수신 데이터를 저장하고, 각각의 유음부분의 재생을 위한 딜레이를 결정한다. 이 예에서 유음부분(150)은 적응성 디-지터 버퍼에서 시간 t0에 수신되고, 적응성 디-지터 버퍼 딜레이 시간은 80 ms로 계산된다. 디-지터 버퍼 딜레이를 수신 시간에 더하여 그 결과 재생시간이 된다. 이런 식으로, 유음부분(150)은 재생 이전에 적응성 디-지터 버퍼에 의하여 80 ms가 딜레이된다. 유음 부분(150)은 시간 t₁에 재생이 시작되고, 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 패킷과의 사이에 무음 부분을 두고 재생된 이후에 유음 부분(154)의 제 1 패킷이 재생되어야 한다. 이 예에서 유음 부분(150)과 유음 부분(154)는 시간 t₃와 t₄ 사이에서 오버랩(Overlap)된다. 그러므로 이 시나리오의 재생 방법은 바람직하지 않다. 앞에서 기술하였던 것처럼 패킷의 재생 사이에 생기는 오버랩을 피하기 위해서는 이전 유음 부분의 마지막 패킷이 재생되는 시점을 탐지할 필요가 있다. 따라서 패킷의 디-지터 버퍼 딜레이를 계산할 때는 이전에 재생된 패킷의 재생 시간을 고려하여야 하고, 그렇게 함으로써 오버랩이나 충돌을 피할 수 있다.
상기 기술한 예에서, 유음 부분의 시작에서 디-지터 버퍼 딜레이를 계산하거나 업데이트 할 수 있다. 하지만, 유음 부분은 길이가 자주 바뀌고 작동 상태도 유음 부분동안 변화하기 때문에, 유음 부분의 시작에서 디-지터 버퍼 딜레이의 업데이트를 제한하는 것은 한계가 있다. 도 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)이다. 이 예에서, 타임 와핑 지시자는 예를 들어 압축, 신장 및 타임 와핑이 없는 상태를 가지는 다상태(Multistate) 지시자이다. 서로 다른 압축 레벨(Level) 그리고/혹은 신장 레벨을 위해 서로 다른 값이 존재한다. 이 예에서, 타임 와핑 지시자는 타임 와핑 장치(312)에 데이터를 신장 혹은 압축할 것을 명령한다. 타임 와핑 지시자는 신장, 압축 혹은 와핑을 하지 않음을 지시(Indicate)한다. 타임 와핑 지시자는 타임 와핑 장치(312)에서 제어 신호 개시 액션(Action)으로 고려된다. 타임 와핑 지시자는 어떻게 패킷을 신장 혹은 압축할 것인가를 상세히 설명하는 메세지이다. 타임 와핑 지시자는 신장 혹은 압축과 같은 어떤 액션을 취해야 할 것인지 뿐만 아니라 타임 와핑할 패킷을 식별하기도 한다. 훨씬 더 나아가, 타임 와핑 지시자는 타임 와핑 장치(312)에 옵션의 선택을 제공한다. 무음 구간동안 DTX 모듈(Module)은 디-지터 버퍼에서 제공되는 소거부분의 스트림(Stream)을 디코더를 사용하여 더 정확하고 높은 품질의 배경 잡음을 재구성한 소거 부분의 스트림과 무음 부분 프레임으로 수정한다. 대체 예에서, 타임 와핑 지시자는 타임 와핑을 켜고(Turn On) 끄기도(Turn Off) 한다. 다른 예에서, 타임 와핑 지시자는 재생을 위해 사용되는 압축과 신장의 양을 확인한다. 타임 와핑 장치(312)는 디코더로부터 나온 샘플을 수정하고 샘플을 오디오 처리(316)에 제공하며, 오디오 처리은 인터페이스, 변환(Conversion) 장치, 오디오 드라이버(Driver) 및 스피커를 포함한다.
타임 와핑 지시자가 언제 압축을 할 것인지 혹은 언제 신장을 할 것인지 확인하는 동안, 타임 와핑을 주어진 패킷에 적용하는 데 걸리는 시간을 결정할 필요가 있다. 구현에서, 타임 와핑의 양은 고정되어 있고, 거기서 패킷은 음성의 주기(Cycle) 혹은 피치(Pitch)에 따라서 타임 와핑된다.
실시예에서, 타임 와핑 지시자는 타겟 신장 혹은 타겟 압축 레벨의 백분율에 따라 통신이 이루어진다. 다시 말해서, 타임 와핑 지시자는 주어진 백분율에 따라 압축 혹은 신장할 것을 명령한다.
시나리오에서, 입력 데이터의 공지된 특징을 인식하는 것이 필요하다. 예를 들어, 인코더는 공지된 톤(Tone)의 데이터 혹은 길이의 명확한 특징을 예상한다. 이 상황에서는, 특정한 특징이 예상되기 때문에, 타임 와핑을 사용하여 수신된 데이터를 수정하는 것은 바람직하지 않다. 예를 들어, 인코더는 특정 톤 길이를 가지는 입력 데이터를 예상하게 된다. 하지만, 타임 와핑이 활성화되면, 톤의 길이는 타임 와핑에 의해서 수정된다. 그러므로, 이 시나리오에서, 타임 와핑이 활성화되어서는 안 된다. 톤에 기초한 통신은 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호에 기술되어 있다.
예에서, 타임 와핑은 음성 조각들을 "병합(Merging)"하는 방법을 포함한다. 음성 조각 병합은 적어도 두 개의 연속적인 음성 조각에서 음성 샘플을 비교하는 것과 관련되고, 만약 비교한 조각들 사이에 상관관계가 발견되면, 적어도 두 개의 연속적인 조각들에서 하나의 조각을 창조한다. 음성 병합은 음성 품질을 유지하기 위해서 이루어진다. 음성 품질 유지와 "클릭(Clicks)"과 "팝스(Pops)"를 포함하여 사용자를 위한 음성 품질을 저하시키는 소리와 같은, 가공물(Artifacts)이 출력 음성에 도입되는 것을 최소화하는 것은 병합될 조각들을 신중하게 선택함으로써 달성된다. 음성 조각의 선택은 조각의 유사도 혹은 상관관계에 기초한다. 음성 조각의 유사도가 높을수록, 결과적인 음성 품질은 높아지고, 음성 가공물이 도입될 확률이 낮아진다.
도 16은 시간에 대한 음성 신호를 그래프로 도시한다. 수직 축은 신호의 크기를 나타내고; 수평 축은 시간을 나타낸다. 주목할 점은, 음성 신호는 특유의 패턴을 가지고 있으며, 음성 신호의 일부분이 시간에 대해 반복된다는 것이다. 예에서, 음성 신호는 시간 t₁부터 시간 t₂까지의 제 1 조각을 포함하며, 제 1 조각이 시간 t₂부터 t₃까지 제 2 조각에도 반복된다. 그러한 조각의 반복이 발견될 때, 샘플의 재생 품질에 극히 적게 혹은 실질적으로 영향을 미치지 않으면서, 시간 t₂에서 시간 t₃의 조각과 같은 조각을, 하나 혹은 그 이상 제거할 수 있다.
예에서, 이하에서 주어질 방정식 (4)는 음성의 두 조각 사이의 관계를 찾는데 사용된다. 상관관계는 두 조각 사이의 관계가 얼마나 강한지 나타내는 척도이다. 방정식 (4)에서 제공되는 절대적이고 유계인(Bounded) 상관계수(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)로 설정된다.
타임 와핑 임계치, 즉 압축 및 신장 임계치는 유음 부분 동안 값을 얼마나 바꿀 것인지에 대한 지침을 제공한다. 정상(Normal) 작동이란 적응성 디-지터 버퍼의 상태가 압축 임계치와 신장 임계치 사이에 있고 적응성 디-지터 버퍼 길이 근처일 때, 수신기의 작동을 말한다. 각각의 임계치는 트리거처럼 작동한다. 임계치가 임계치에 도달하거나 혹은 넘었을 때, 적응성 디-지터 버퍼에 있는 패킷은 임계치에 따라 신장되거나 혹은 압축된다. 적응성 디-지터 버퍼의 크기는 패킷을 수신하면서 계속 신장되거나 혹은 압축된다. 적응성 디-지터 버퍼 크기의 이러한 일정한 변화는 신장과 압축 임계치가 통신을 하는 동안 계속해서 서로 접근하도록 지시한다. 일반적으로, 시스템은 안정 상태로 보는 신장과 압축 임계치 사이의 적응성 디-지터 버퍼 크기를 유지하려고 한다. 안정 상태에서 적응성 디-지터 버퍼의 크기는 변화하지 않는다; 패킷의 수신부에서 변화 그리고 적응성 디-지터 버퍼 크기의 변화는 새로운 적응성 디-지터 버퍼 딜레이가 달성될 때까지 각각 자동적으로 압축/신장 임계치를 트리거시키고 패킷을 압축/신장시킨다. 이 시나리오에서, 적응성 디-지터 버퍼 타겟 딜레이 길이는 CHANGE_JITTER_TIME에 따라서 업데이트 된다. 타임 와핑 신장/압축 임계치 둘 다에 도달한 결과로서 트리거될 때 자동적으로 디-지터 버퍼 크기가 변화하기 때문에, 실제 디-지터 버퍼의 크기를 반드시 계산할 필요는 없다. 일례로, CHANGE_JITTER_TIME의 값은 0.2 sec(200 ms)로 설정된다.
통화 채널 전환 프리와핑( Pre - Warping )
통화 채널 전환은 전형적으로 짧은 시간에 대해 적용범위의 손실을 수반한다. 통화 채널 전환이 급박할 때, AT는 채널 상태가 나빠지고 패킷 딜레이가 증가한다. 타임 와핑을 음성 패킷에 적용하는 특별한 경우의 통화 채널 전환 상태를 예로 들어보자. AT가 새로운 기지국으로 통화 채널 전환을 결정하자마자, 이 정보는 디-지터 버퍼를 제어하기 위해 사용된다. 이 통화 채널 전환 신호를 수신하면, AT는 도 8b의 프리와핑 모드(244)에 도시된 것과 같이, "프리와핑" 모드로 들어간다. 이 모드에서, 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) 이다.
딜레이된 언더플로우 세기( Counting Delayed Underflow )
상기한 적응성 디-지터 버퍼 방정식은 딜레이된 언더플로우의 백분율을 목표로하여 디자인되었기 때문에, 딜레이된 언더플로우의 숫자를 정확하게 측정하는 것이 바람직하다. 언더플로우가 발생했을 때, 언더플로우가 패킷 딜레이에 의해 발생된 것인지 혹은 네트워크 내부, 즉, 송신 경로의 어떤 지점에 드롭된 패킷에 의해 발생된 것인지 알 수 없다. 그러므로 언더플로우의 유형을 정확하게 살펴볼 필요가 있다.
예에서, RTP/UDP/IP를 사용한 통신을 위해, 각각의 패킷은 RTP 순서 번호를 포함한다. 순서 번호는 패킷이 송신된 순서에서 수신된 패킷을 나열할 때 사용된다. 언더플로우가 발생했을 때, 언더플로우를 발생시킨 패킷의 RTP 순서 번호는 메모리 배열(Memory Array)에서와 같이 메모리에 저장된다. 만약 식별된 순서 번호를 가진 패킷이 늦게 도달하면, 이 언더플로우는 "딜레이 언더플로우"로 간주 된다.
"딜레이된 언더플로우 비율"은 언더플로우의 수와 전체 수신된 패킷 수의 비율이다. 언더플로우의 수와 수신된 패킷의 수는 둘 다 디-지터 버퍼 방정식이 업드에트 될 때마다 0(Zero)으로 설정된다.
유음 부분의 시작과 끝 부분에 대한 인핸스먼트( Enhancement )
도 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에게 재생되는 시간이 변하게 된다. 제 2 예로, USER2의 음성 조각 시작 부분이 USER1에게 재생되는 시간이 변하게 된다. 주목할 점은, 오직 유음 부분의 시작과 끝 부분의 딜레이만이 대화에서 음성 품질에 영향을 미친다는 것이다. 디자인 목표는 유음 부분의 시작과 끝 부분에서 딜레이를 더 감소시키는 것이다.
예에서, 목표는 유음 부분의 시작 부분을 인핸스먼트시키는 것이다. 이 향상는 청취자(Listener)와 같은 USER1의 유음 부분의 제 1 패킷을 조작하여 만들 수 있고, USER2는 만약 디폴트(Default) 적응성 디-지터 버퍼 딜레이가 구현되면 패킷을 더 일찍 수신한다. 적응성 디-지터 버퍼에 적용되는 딜레이는 디폴트 적응성 디-지터 버퍼 딜레이, 계산된 값 혹은 특정 시간에 청취자가 패킷을 수신하도록 선택된 값이다. 예에서, 유음 부분의 제 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 비율 패킷은 유음 부분 끝 부분을 지시한다. 이는 풀(Full) 비율(Rate 1), 하프(Half) 비율(Rate 1/2) 혹은 쿼터(Quarter) 비율(Rate 1/4) 패킷과 다르고, 음성 데이터 송신에 사용된다. 다른 비율 패킷들 또한 무음 부분 혹은 유음 부분의 끝 부분에서 송신에 사용된다. 음성 통신에서 무음 지시자 패킷과 같은 1/8 비율 패킷의 구현은 우선권 날짜가 2005년 2월 1일이고, 공동 출원한 미국 특허 출원 제 11/123,478호, "불연속적인 전송 방법과 배경 잡음 정보의 정확한 재생산 방법(Method for Discontinuous Transmission and Accurate Reproduction of Background Noise Information)"에 더 자세히 기술되어 있다.
도 23에 도시된 대로, 타임 와핑을 하지 않으면, 패킷 N에서 N+4는 100 ms 안에 재생된다. 유음 부분의 마지막 몇 패킷을 압축함으로써, 동일한 패킷 N에서 N+4가 100 ms 대신 70 ms 안에 재생된다. 시간 압축을 했을 때 음성 품질은 극히 적게 혹은 실질적으로 아예 저하되지 않는다. 유음 부분 끝 부분의 인핸스먼트는 수신기가 유음 부분 끝 부분을 확인하고 언제 끝 부분이 다가오는지 예상하기 위한 지식을 가지고 있다는 것을 가정한다.
예에서, 음성 패킷을 RTP(Real-time Transport Protocol)를 통해 전송하는 동안, "유음 부분 끝 부분" 지시자는 각 유음 부분 마지막 패킷에 위치한다. 패킷이 재생에 제공될 때, 디-지터 버퍼의 패킷들은 "유음 부분 끝 부분" 지시자에 의해 검사된다. 만약 이 지시자가 패킷 중의 하나에 위치하고 재생을 위해 현재 제공된 패킷과 "유음 부분 끝 부분" 패킷 사이에 누락된 순서 번호가 없다면, 현재 유음 부분의 모든 나중 패킷들과 마찬가지로 재생에 공급되는 패킷은 압축된다.
다른 예에서, 시스템이 유음 부분에 있다면, 시스템은 무음 부분로 전이되고 1/8 비율 패킷 혹은 SID(Silence Indicator Description) 비트(Bit)가 위치하는 패킷 중의 하나는 재생 유틸리티로 전송된다. 1/8 비율 패킷은 크기를 검사하여 탐지해낸다. SID 비트는 RTP 헤더(Header)에서 전송된다. 만약 시스템이 무음 부분에 있다면, 시스템은 유음 부분으로 전이되고 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 딜레이를 계산한다. 디-지터 버퍼의 출력 제어기는 디-지터 버퍼로부터 패킷을 요청한다. 디-지터 버퍼의 출력 제어기는 또한 재생된 마지막 패킷이 무엇인지를 표시한다.
디코더는 디-지터 버퍼에 패킷 요청을 보내고 그러한 요청에 의해 디-지터 버퍼로부터 패킷을 수신한다. 디코더 내부의 타임 와핑 제어 장치는 디-지터 버퍼의 출력 제어기로부터 타임 와핑 제어 정보를 수신한다. 타임 와핑 제어 정보는 패킷이 압축되었는지, 신장되었는지 혹은 수정되지 않은 채로 있는지 여부를 표시한다. 디코더에 의해 수신된 패킷은 디코딩되고 음성 샘플로 변환된다; 출력 드라이버 내부 버퍼로부터의 요청에 의해, 샘플이 출력 드라이버로 전송된다. 출력 드라이버로부터의 샘플 요청은 디코더 내부의 출력 제어기에 의해 수신된다.
위상 정합( Phase Matching )
앞서 주목한대로, 패킷의 예상 재생 시간 이후에 패킷을 수신하면 딜레이된 패킷의 위치에서 소거부분이 재생된다. 적응성 디-지터 버퍼에서 소거 부분 혹은 누락된 패킷의 수신으로 인해 디코딩된 음성에서 불연속이 발생한다. 적응성 디-지터 버퍼에 의해 잠재적인 불연속이 인식될 때, 적응성 디-지터 버퍼는 디코더에 위상 정합의 수행을 요청한다. 도 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)이 타임 와핑 장치의 품질 최적화 장치에 대한 입력이다. 타임 와핑 정보가 출력이 된다.
본 명세서는 본 발명의 특정한 예를 상세히 기술하였지만, 당업자는 본 발명의 사상을 벗어나지 않고도 본 발명의 다양한 변형을 고안할 수 있다. 예를 들어, 이 출원의 개시내용들은 회선 교환(Circuit-switched)에 관한 것이지만 동일하게 패킷 교환(Packet-switched) 도메인 네트웨크 요소에도 적용된다. 또한 이 출원의 개시내용들은 인증 트리플릿(Triplet) 쌍에만 한정되지 않고 또한 두 개의 SRES 값(하나는 종래 포맷이고 하나는 이 출원에 공개된 새로운 포맷이다.)을 포함하는 단일 트리플릿을 사용하는 경우에도 적용된다.
당업자는 정보와 신호가 다양한 기술과 기법을 사용하여 표현될 수 있다는 것을 이해해야한다. 예를 들어, 상기 기술을 통해 언급된 데이터, 명령, 커맨드(Command), 정보, 신호, 비트, 심볼(Symbol) 및 칩(Chip)은 전압, 전류, 전자파, 자기장 혹은 자기 입자, 광학 필드(Field) 혹은 입자, 혹은 이들의 어떠한 결합으로도 나타낼 수 있다.
당업자는 더 나아가 이 출원에서 공개된 예들과 관련하여 기술된 다양한 도시된 논리 블록, 모듈, 회로, 방법 및 알고리즘들은 전자 하드웨어, 컴퓨터 소프트웨어 혹은 양자의 결합으로 구현된다는 것을 이해해야 한다. 하드웨어와 소프트웨 어의 이 호환성을 명확하게 도시하기 위해서, 블록, 모듈, 회로, 방법 및 알고리즘과 같은 다양한 도면 구성요소는 일반적으로 기능의 견지에서 기술된다. 그러한 기능이 특정한 애플리케이션 혹은 디자인 제한에 의존한 하드웨어 혹은 소프트웨어로 구현되는지 여부는 전체 시스템에 제한을 가한다. 당업자는 기술된 기능들을 각각의 애플리케이션을 다양한 방법으로 구현하겠지만, 그러한 구현 결정은 본 발명의 견지에서 벗어나는 것으로 해석되지는 않는다.
이 출원에서 공개된 예들과 관련하여 기술되어 있는 다양한 도시된 논리 블록, 모듈 및 회로들은 이 출원에 기술된 기능들을 수행하기 위해 디자인된 범용 프로세서, DSP(Digital Signal Processor), ASIC(Application Specific Intergrated Circuit), FPGA(Field Programmable Gate Array) 혹은 다른 프로그램 가능한 로직 디바이스(Programmable Logic Device), 이산 게이트 혹은 트랜지스터 로직, 이산 하드웨어 구성요소, 혹은 이상의 어떠한 결합을 통해 구현되거나 수행된다.범용 프로세서는 마이크로프로세서이지만, 그 대신, 어떠한 종래 프로세서, 제어기, 마이크로제어기 혹은 상태 기계(State Machine)가 될 수도 있다. 프로세서는 또한 연산 장치(Computing Device), 예를 들어 DSP와 마이크로프로세서의 결합, 다수의 마이크로프로세서, 하나 혹은 그 이상의 마이크로프로세서와 DSP 코어(Core)와의 결합, 혹은 다른 그러한 구성들의 결합으로 구현된다.
이 출원에서 공개된 예들과 관련하여 기술된 방법 혹은 알고리즘은 하드웨어 에서, 프로세서에 의해 수행되는 소프트웨어 모듈에서, 혹은 양자의 결합에서 직접 구현된다. RAM 메모리, 플래시(Flash) 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드디스크, 분리성 디스크(Removable Disk), 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 값에 응답하여 샘플의 제 2 집합을 발생시키도록 추가적으로 구성된 상기 디코딩 회로; 및
    상기 타임 와핑 제어 장치에 결합되어, 샘플을 출력시키도록 구성되어 있는 출력 제어 장치를 포함하는 장치.
  2. 제 1 항에 있어서,
    상기 타임 와핑 장치에 결합되어 있고 수신된 패킷을 디코딩하도록 구성되어 있는 디코딩 회로; 및
    상기 디코더와 상기 타임 와핑 제어 장치에 결합되어 있고, 상기 타임 와핑 제어 장치에 의해 결정된 패킷을 출력하도록 구성된 출력 제어기를 추가적으로 포함하는 장치.
  3. 제 2 항에 있어서,
    상기 타임 와핑 제어 장치는 패킷 내용에서 대략적인 리던던시(Redundancy)를 발견하도록 구성된 장치.
  4. 제 3 항에 있어서,
    상기 타임 와핑 제어 장치는 패킷을 신장하기 위해 리던던시를 반복하고 패킷을 압축하기 위해 리던던시를 감소시키도록 구성된 장치.
  5. 제 4 항에 있어서,
    상기 리던던시는 음성 신호의 반복되는 부분인 장치.
  6. 제 5 항에 있어서,
    샘플의 상기 제 1 집합은 패킷의 압축을 위해 발생되고, 샘플의 상기 제 2 집합은 신장을 위해 발생되며, 샘플의 상기 제 2 집합은 신장을 위해 발생되며, 상기 샘플의 제 1 집합은 상기 샘플의 제 2 집합보다 작은 장치.
  7. 제 6 항에 있어서,
    상기 타임 와핑 지시자는 제 1 값이 압축에 대응하고, 제 2 값은 신장에 대응하고, 제 3 값은 타임 와핑 없는 처리에 대응하는 다중 상태 지시자인 장치.
  8. 제 7 항에 있어서,
    상기 디코딩 회로는 상기 타임 와핑 지시자의 제 3 값에 응답하여, 샘플의 상기 제 1 집합보다 크고 샘플의 상기 제 2 집합보다 작은 샘플의 제 3 집합을 발생시키는 장치.
  9. 제 8 항에 있어서,
    상기 타임 와핑 지시자의 제 4 값은 제 2 압축 레벨에 대응하고, 상기 디코딩 회로는 상기 제 4 값의 수신에 응답하여 샘플의 상기 제 1 집합보다 작은 샘플의 제 4 집합을 발생시키는 장치.
  10. 제 9 항에 있어서,
    상기 타임 와핑 지시자의 제 5 값은 제 2 압축 레벨에 대응하고, 상기 디코딩 회로는 상기 제 5 값의 수신에 응답하여 샘플의 상기 제 2 집합보다 큰 샘플의 제 5 집합을 발생시키는 장치.
  11. 디코딩된 패킷 샘플을 수신하도록 구성된 타임 와핑 제어 장치로서,
    타임 와핑 지시자를 수신하고 상기 타임 와핑 지시자에 응답하여 적어도 한 개 패킷의 타임 와핑을 개시하도록 적응되며, 다수의 수신된 샘플을 변환하여 출력 샘플의 집합을 발생하도록 구성되고, 또한 수신된 샘플을 상기 타임 와핑 지시자의 제 1 값에 응답하여 출력 샘플의 제 1 집합으로 변환시키고 상기 타임 와핑 지시자 의 제 2 값에 응답하여 샘플의 제 2 집합으로 변환시키도록 구성된 상기 타임 와핑 제어 장치를 포함하며, 출력 샘플의 상기 제 1 집합이 샘플의 상기 제 2 집합보다 작은 장치.
  12. 제 11 항에 있어서,
    출력 샘플의 상기 제 1 집합이 상기 수신된 샘플로부터 압축되고 샘플의 상기 제 2 집합은 상기 수신된 샘플로부터 신장되는 장치.
  13. 제 12 항에 있어서,
    상기 타임 와핑 장치는 패킷 내용에서 대략적인 리던던시(Redundancy)를 발견하도록 구성된 장치.
  14. 제 13 항에 있어서,
    상기 타임 와핑 장치는 패킷을 신장하기 위해 리던던시를 반복하고 패킷을 압축하기 위해 리던던시를 감소시키도록 구성된 장치.
  15. 제 14 항에 있어서,
    상기 리던던시는 음성 신호의 반복되는 부분인 장치.
  16. 제 15 항에 있어서,
    샘플의 상기 제 1 집합은 패킷의 압축을 위해 발생되고, 샘플의 상기 제 2 집합은 신장을 위해 발생되며, 샘플의 상기 제 1 집합은 샘플의 상기 제 2 집합보다 작은 장치.
  17. 제 16 항에 있어서,
    상기 타임 와핑 지시자는 제 1 값이 압축에 대응하고, 제 2 값은 신장에 대응하고, 제 3 값은 타임 와핑 없는 처리에 대응하는 다중 상태 지시자인 장치.
  18. 제 17 항에 있어서,
    상기 디코딩 회로는 상기 타임 와핑 지시자의 제 3 값에 응답하여, 샘플의 상기 제 1 집합보다 크고 샘플의 상기 제 2 집합보다 작은 샘플의 제 3 집합을 발생시키는 장치
  19. 제 18 항에 있어서,
    상기 타임 와핑 지시자의 제 4 값은 제 2 압축 레벨에 대응하고, 상기 디코딩 회로는 상기 제 4 값의 수신에 응답하여 샘플의 상기 제 1 집합보다 작은 샘플의 제 4 집합을 발생시키는 장치.
  20. 제 19 항에 있어서,
    상기 타임 와핑 지시자의 제 5 값은 제 2 압축 레벨에 대응하고, 상기 디코 딩 회로는 상기 제 5 값의 수신에 응답하여 샘플의 상기 제 2 집합보다 큰 샘플의 제 5 집합을 발생시키는 장치.
  21. 패킷화된 데이터를 처리하는 방법에 있어서,
    타임 와핑 지시자를 수신하는 단계;
    상기 타임 와핑 지시자에 응답하여 적어도 한 개 패킷의 타임 와핑을 개시하는 단계;
    수신된 데이터 패킷으로부터 샘플의 집합을 발생시키는 단계로서, 상기 타임 와핑 지시자의 제 1 값에 응답하여 샘플의 제 1 집합을 발생시키는 단계와 상기 타임 와핑 지시자의 제 2 값에 응답하여 샘플의 제 2 집합을 발생시키는 단계를 포함하는 단계; 및
    상기 샘플의 집합을 출력하는 단계를 포함하는 것을 특징으로 하는 패킷화된 데이터를 처리하는 방법.
  22. 타임 와핑 지시자를 수신하기 위한 제 1 루틴;
    상기 타임 와핑 지시자에 응답하여 적어도 한 개 패킷의 타임 와핑을 개시하기 위한 제 2 루틴;
    수신된 데이터 패킷으로부터 샘플의 집합을 발생시키기 위한 제 3 루틴으로서, 상기 타임 와핑 지시자의 제 1 값에 응답하여 샘플의 제 1 집합을 발생시키기 위한 제 4 루틴과 상기 타임 와핑 지시자의 제 2 값에 응답하여 샘플의 제 2 집합 을 발생시키기 위한 제 5 루틴을 포함하는 상기 제 3 루틴; 및
    상기 샘플의 집합을 출력시키기 위한 제 6 루틴을 포함하는 명령의 집합을 저장하기 위한 컴퓨터-판독가능 매체.
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 true KR20090026818A (ko) 2009-03-13
KR100964437B1 KR100964437B1 (ko) 2010-06-16

Family

ID=35700421

Family Applications (4)

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

Family Applications After (3)

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

Country Status (17)

Country Link
US (4) US7830900B2 (ko)
EP (4) EP1787290B1 (ko)
JP (4) JP2008512062A (ko)
KR (4) KR100964437B1 (ko)
CN (5) CN101867522A (ko)
AT (1) ATE488838T1 (ko)
BR (1) BRPI0514801B1 (ko)
CA (4) CA2691589A1 (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 (160)

* 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
DE602005024825D1 (de) * 2004-08-30 2010-12-30 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
US8257177B1 (en) 2005-10-04 2012-09-04 PICO Mobile Networks, Inc Proximity based games for mobile communication devices
US8411662B1 (en) 2005-10-04 2013-04-02 Pico Mobile Networks, Inc. Beacon based proximity services
US8406309B2 (en) * 2005-10-21 2013-03-26 Qualcomm Incorporated Video rate adaptation to reverse link conditions
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
US8514711B2 (en) * 2005-10-21 2013-08-20 Qualcomm Incorporated Reverse link lower layer assisted video error control
US8548048B2 (en) * 2005-10-27 2013-10-01 Qualcomm Incorporated Video source rate control for video telephony
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
US20070186146A1 (en) * 2006-02-07 2007-08-09 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
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
US20080046233A1 (en) * 2006-08-15 2008-02-21 Broadcom Corporation Packet Loss Concealment for Sub-band Predictive Coding Based on Extrapolation of Full-band Audio Waveform
CN101366079B (zh) * 2006-08-15 2012-02-15 美国博通公司 用于子带预测编码的基于全带音频波形外插的包丢失隐藏
US8239190B2 (en) * 2006-08-22 2012-08-07 Qualcomm Incorporated Time-warping frames of wideband vocoder
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
EP1892917B1 (en) * 2006-08-24 2009-02-25 NTT DoCoMo, Inc. Method and apparatus for seamless 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
US7978699B1 (en) 2006-11-21 2011-07-12 Picomobile Networks, Inc. Protocol compression with synchronized sequence numbers
US7970384B1 (en) 2006-11-21 2011-06-28 Picomobile Networks, Inc. Active phone book enhancements
US7889686B1 (en) 2006-11-21 2011-02-15 Picomobile Networks, Inc. Seamless switching of media streams between different networks
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
JP5295120B2 (ja) * 2006-12-06 2013-09-18 テレフオンアクチーボラゲット エル エム エリクソン(パブル) ジッタバッファ制御
US8111720B2 (en) * 2007-01-09 2012-02-07 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus to indicate maximum scheduling delay for jitter buffer implementations
CN101578842B (zh) * 2007-01-10 2014-03-05 高通股份有限公司 用于多媒体电话的依赖于内容和链路的编码自适应
US7983309B2 (en) * 2007-01-19 2011-07-19 Nokia Corporation Buffering time determination
WO2008100503A2 (en) * 2007-02-12 2008-08-21 Dolby Laboratories Licensing Corporation Improved ratio of speech to non-speech audio such as for elderly or hearing-impaired listeners
CN101647059B (zh) 2007-02-26 2012-09-05 杜比实验室特许公司 增强娱乐音频中的语音的方法和设备
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
WO2009006585A1 (en) * 2007-07-03 2009-01-08 Marvell Semiconductor, Inc. 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
US20110110312A1 (en) * 2007-08-24 2011-05-12 Yan Zhao Method for scheduling resource, network element and user equipment
KR101418354B1 (ko) * 2007-10-23 2014-07-10 삼성전자주식회사 음성 통신 시스템에서 플레이아웃 스케줄링 방법 및 장치
WO2009084689A1 (ja) * 2007-12-27 2009-07-09 Kyocera Corporation 無線通信装置
US8797850B2 (en) * 2008-01-10 2014-08-05 Qualcomm Incorporated System and method to adapt to network congestion
BRPI0821979B1 (pt) * 2008-01-25 2020-10-13 Telefonaktiebolaget Lm Ericsson (Publ) método em um nó de rede compreendendo uma área de armazenamento temporário de oscilação adaptativa para dinamicamente ajustar um retardo de área de armazenamento temporário, e, nó de rede
WO2009107588A1 (ja) * 2008-02-27 2009-09-03 京セラ株式会社 無線通信装置
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 华为技术有限公司 一种分组传输控制方法及装置
WO2009152124A1 (en) * 2008-06-10 2009-12-17 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
JP5064564B2 (ja) * 2008-08-28 2012-10-31 京セラ株式会社 無線端末及び通信端末
US20100202302A1 (en) * 2008-09-21 2010-08-12 Research In Motion Limited System and method for reserving and signaling hybrid automatic repeat request identifiers
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
US8479214B2 (en) * 2008-09-30 2013-07-02 Microsoft Corporation Hardware throughput saturation detection
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
EP2517419B1 (en) * 2009-12-24 2016-05-25 Telecom Italia S.p.A. A method of scheduling transmission in a communication network, corresponding communication node and computer program product
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
WO2011127060A1 (en) * 2010-04-05 2011-10-13 Huawei Technologies Co., Ltd. Method for dynamic on demand startup of a process or resource
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
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
US9264872B2 (en) 2011-06-20 2016-02-16 At&T Intellectual Property I, L.P. Controlling traffic transmissions 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
BR112015032174B1 (pt) 2013-06-21 2021-02-23 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V escalador de tempo, descodificador de áudio, método e um programa de computador utilizando um controle de qualidade
MX352748B (es) 2013-06-21 2017-12-06 Fraunhofer Ges Forschung Control de búfer de variabilidad, decodificador de audio, método y programa de computadora.
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
CN105940714B (zh) * 2014-03-26 2019-11-01 瑞典爱立信有限公司 用于回放缓存的管理的方法和设备
CN105207955B (zh) * 2014-06-30 2019-02-05 华为技术有限公司 数据帧的处理方法和装置
US9762355B2 (en) * 2014-07-31 2017-09-12 Qualcomm Incorporated System and method of redundancy based packet transmission error recovery
WO2016050916A1 (en) * 2014-10-02 2016-04-07 Jacoti Bvba Method to handle problematic patterns in a low latency multimedia streaming environment
KR101600284B1 (ko) 2014-10-17 2016-03-07 주식회사 이노와이어리스 영상 품질 측정 방법
CN104410587A (zh) * 2014-11-13 2015-03-11 京信通信系统(中国)有限公司 一种接收缓冲区容量控制方法及装置
US9826445B2 (en) 2015-05-21 2017-11-21 At&T Mobility Ii Llc Facilitation of adaptive dejitter buffer between mobile devices
US9998386B2 (en) 2015-05-21 2018-06-12 At&T Mobility Ii Llc Facilitation of adaptive dejitter buffer
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
EP3794783A1 (en) * 2018-05-16 2021-03-24 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
US10812216B2 (en) 2018-11-05 2020-10-20 XCOM Labs, Inc. Cooperative multiple-input multiple-output downlink scheduling
US10432272B1 (en) 2018-11-05 2019-10-01 XCOM Labs, Inc. Variable multiple-input multiple-output downlink user equipment
KR20210087089A (ko) 2018-11-27 2021-07-09 엑스콤 랩스 인코퍼레이티드 넌-코히어런트 협력 다중 입출력 통신
US11765094B2 (en) * 2018-12-12 2023-09-19 Telefonaktiebolaget Lm Ericsson (Publ) Communication system with de-jitter buffer for reducing jitter
US10756795B2 (en) 2018-12-18 2020-08-25 XCOM Labs, Inc. User equipment with cellular link and peer-to-peer link
US11063645B2 (en) 2018-12-18 2021-07-13 XCOM Labs, Inc. Methods of wirelessly communicating with a group of devices
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
CN113711624B (zh) * 2019-04-23 2024-06-07 株式会社索思未来 声音处理装置
US10686502B1 (en) 2019-04-29 2020-06-16 XCOM Labs, Inc. Downlink user equipment selection
US10735057B1 (en) 2019-04-29 2020-08-04 XCOM Labs, Inc. Uplink 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
US11889128B2 (en) 2021-01-05 2024-01-30 Qualcomm Incorporated Call audio playback speed adjustment
EP4294023A4 (en) * 2021-03-04 2024-04-10 Huawei Tech Co Ltd DATA PROCESSING METHOD AND DEVICE
WO2022212968A1 (en) * 2021-03-30 2022-10-06 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

Family Cites Families (143)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US185186A (en) * 1876-12-12 Improvement in mail-bag fastenings
US152152A (en) * 1874-06-16 Improvement in bob-sleds
US16711A (en) * 1857-03-03 Pen and pencil holder
US89003A (en) * 1869-04-20 Improved railway-carriage wheel
US243846A (en) * 1881-07-05 David buick
US179474A (en) * 1876-07-04 Improvement in the manufacture of gas for illuminating and heating
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 可変速度パケット伝送方式
CN1031540C (zh) 1990-09-19 1996-04-10 菲利浦光灯制造公司 记录载体、主数据和控制文件的记录方法和装置及读出装置
JP2846443B2 (ja) 1990-10-09 1999-01-13 三菱電機株式会社 パケット組立分解装置
JPH04331529A (ja) * 1991-05-07 1992-11-19 Fujitsu Ltd ゆらぎ吸収バッファの制御装置
ES2225321T3 (es) 1991-06-11 2005-03-16 Qualcomm Incorporated Aparaato y procedimiento para el enmascaramiento de errores en tramas de datos.
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 김광호 프로그램 가이드신호 수신기
EE03456B1 (et) 1995-09-14 2001-06-15 Ericsson Inc. Helisignaalide adaptiivse filtreerimise süsteem kõneselguse parendamiseks mürarikkas keskkonnas
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 音声パケット受信装置及び方法
AU6519399A (en) 1998-10-21 2000-05-08 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
WO2000063885A1 (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
EP1254574A1 (en) 2000-02-08 2002-11-06 Siemens AG 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
WO2001076162A1 (en) 2000-04-03 2001-10-11 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
BR0110253A (pt) 2000-04-24 2006-02-07 Qualcomm Inc Método, codificador de fala, elemento de infra-estrutura e unidade de assinante configurados para quantizar informações sobre um parâmetro de fala; bem como, método e codificador de fala configurado para quantizar informações sobre um parâmetro de fase de fala
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
ATE422744T1 (de) * 2001-04-24 2009-02-15 Nokia Corp Verfahren zum ändern der grösse eines zitterpuffers und zur zeitausrichtung, kommunikationssystem, empfängerseite und transcoder
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
US20030187663A1 (en) 2002-03-28 2003-10-02 Truman Michael Mead Broadband frequency translation for high frequency regeneration
US6944540B2 (en) * 2002-03-28 2005-09-13 Motorola, Inc. Time determination in satellite positioning system receivers and methods therefor
JP3761486B2 (ja) 2002-03-29 2006-03-29 Necインフロンティア株式会社 無線lanシステム、主装置およびプログラム
WO2003090209A1 (en) 2002-04-22 2003-10-30 Nokia Corporation 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 データ通信装置及びデータ通信方法
ATE409999T1 (de) 2003-08-15 2008-10-15 Research In Motion Ltd Vorrichtung und assoziiertes verfahren zum erhalten von dienstqualitätsniveaus während der weiterreichung in einem funkkommunikationssystem
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株式会社 通信端末装置およびバッファ制御方法
DE602005024825D1 (de) * 2004-08-30 2010-12-30 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
US8155965B2 (en) * 2005-03-11 2012-04-10 Qualcomm Incorporated Time warping frames inside the vocoder by modifying the residual
US8355907B2 (en) 2005-03-11 2013-01-15 Qualcomm Incorporated Method and apparatus for phase matching frames in vocoders
BRPI0608269B8 (pt) * 2005-04-01 2019-09-03 Qualcomm Inc método e aparelho para quantização vetorial de uma representação de envelope espectral

Also Published As

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

Similar Documents

Publication Publication Date Title
KR100964436B1 (ko) V o I P 용 적응성 디-지터 버퍼
US8937963B1 (en) Integrated adaptive jitter buffer
JP4146489B2 (ja) 音声パケット再生方法、音声パケット再生装置、音声パケット再生プログラム、記録媒体
KR101002405B1 (ko) 오디오 신호의 타임-스케일링 제어
JP2008139661A (ja) 音声信号受信装置、それに使用される音声パケット消失補償方法、その方法を実施するプログラム、及びそのプログラムを記録した記録媒体
JPH09270756A (ja) 音声パケット再生方法とその装置

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