KR20170040218A - 리던던시 기반의 패킷 송신 에러 복구 시스템 및 방법 - Google Patents

리던던시 기반의 패킷 송신 에러 복구 시스템 및 방법 Download PDF

Info

Publication number
KR20170040218A
KR20170040218A KR1020177002625A KR20177002625A KR20170040218A KR 20170040218 A KR20170040218 A KR 20170040218A KR 1020177002625 A KR1020177002625 A KR 1020177002625A KR 20177002625 A KR20177002625 A KR 20177002625A KR 20170040218 A KR20170040218 A KR 20170040218A
Authority
KR
South Korea
Prior art keywords
buffer
packet
packets
determining
count
Prior art date
Application number
KR1020177002625A
Other languages
English (en)
Other versions
KR101960200B1 (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 KR20170040218A publication Critical patent/KR20170040218A/ko
Application granted granted Critical
Publication of KR101960200B1 publication Critical patent/KR101960200B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/08Arrangements for detecting or preventing errors in the information received by repeating transmission, e.g. Verdan system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0078Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
    • H04L1/0079Formats for control data
    • H04L1/008Formats for control data where the control data relates to payload of a different packet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1835Buffer management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1812Hybrid protocols; Hybrid automatic repeat request [HARQ]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Telephonic Communication Services (AREA)

Abstract

디바이스는 수신기, 버퍼, 송신기, 및 분석기를 포함한다. 수신기는 패킷들의 시퀀스의 적어도 서브세트에 대응하는 복수의 패킷들을 수신하도록 구성된다. 복수의 패킷들의 제 1 패킷의 에러 정정 데이터는 복수의 패킷들의 제 2 패킷의 부분 카피를 포함한다. 분석기는, 시퀀스의 특정 패킷이 버퍼로부터 누락되는지, 그리고 특정 패킷의 부분 카피가 버퍼에 저장되는지 여부를 결정하도록 구성된다. 분석기는 또한, 버퍼가 특정 패킷을 저장하지 않고 버퍼가 특정 패킷의 부분 카피를 저장하지 않는다고 결정하는 것에 적어도 부분적으로 기초하여 재송신 메시지를 제 2 디바이스로 송신기를 통해 전송하도록 구성된다.

Description

리던던시 기반의 패킷 송신 에러 복구 시스템 및 방법{SYSTEM AND METHOD OF REDUNDANCY BASED PACKET TRANSMISSION ERROR RECOVERY}
관련 출원에 대한 교차 참조
본 출원은, 발명의 명칭이 모두 "SYSTEM AND METHOD OF REDUNDANCY BASED PACKET TRANSMISSION ERROR RECOVERY"인, 2014년 7월 31일에 출원된 미국 특허 가출원 일련 번호 62/031,675 및 2015년 7월 25일에 출원된 미국 특허 출원 일련 번호 14/809,085 를 우선권 주장하며, 이 내용들은 그 전체가 본원에 참조로써 포함된다.
분야
본 개시물은 일반적으로 리던던시 기반의 패킷 송신 에러 복구에 관한 것이다.
관련 기술의 설명
기술의 진보는 보다 소형이고 보다 강력한 컴퓨팅 디바이스들을 발생시켰다. 예를 들어, 소형이고, 경량이며, 사용자들에 의해 쉽게 운반되는 휴대용 무선 전화기들, 개인 정보 단말기 (personal digital assistant; PDA) 들, 및 페이징 디바이스들과 같은, 무선 컴퓨팅 디바이스들을 포함하는, 다양한 휴대용 퍼스널 컴퓨팅 디바이스들이 현재 존재한다. 더 구체적으로는, 셀룰러 전화기들 및 인터넷 프로토콜 (Internet Protocol; IP) 전화기들과 같은 휴대용 무선 전화기들은 무선 네트워크들을 통해 보이스 및 데이터 패킷들을 통신할 수 있다. 게다가, 많은 이러한 무선 전화기들은 내부에 포함되는 다른 타입들의 디바이스들을 포함한다. 예를 들어, 무선 전화기는 또한 디지털 스틸 카메라, 디지털 비디오 카메라, 디지털 레코더, 및 오디오 파일 플레이어를 포함할 수 있다. 또한, 이러한 무선 전화기들은 인터넷에 액세스하는데 이용될 수 있는 웹 브라우저 애플리케이션과 같은 소프트웨어 애플리케이션들을 포함하여 실행가능한 명령들을 프로세싱할 수 있다. 이와 같이, 이들 무선 전화기들은 상당한 컴퓨팅 기능들을 포함할 수 있다.
디지털 기술들에 의한 보이스의 송신은, 특히 장거리 및 디지털 라디오 전화 애플리케이션들에서 널리퍼져 있다. 재구성된 스피치의 인지된 품질을 유지하면서 채널에 걸쳐 전송될 수 있는 적어도 정보량을 결정함에 있어서 관심이 있을 수 있다. 스피치가 샘플링 및 디지트화하는 것에 의해 송신되는 경우, 아날로그 전화의 스피치 품질을 달성하기 위해 64 kbps (kilobits per second) 정도의 데이터 레이트가 사용될 수도 있다. 수신기에서의 코딩, 송신 및 재합성으로 이어지는 스피치 분석의 이용을 통해, 데이터 레이트의 상당한 감소가 달성될 수도 있다.
스피치 압축을 위한 디바이스들은 다양한 분야의 텔레통신에서 용도를 찾을 수 있다. 예시적인 분야는 무선 통신이다. 무선 통신 분야는 예를 들어, 코드리스 전화방식들, 페이징, 무선 로컬 루프들, 무선 전화 방식들, 이를 테면 셀룰라 및 퍼스널 통신 서비스 (PCS) 전화 시스템들, 모바일 인터넷 프로토콜 (IP) 전화방식, 및 위성 통신 시스템들을 포함한 많은 애플리케이션들을 갖는다. 특정 애플리캐이션은 모바일 가입자들을 위한 무선 전화방식이다.
여러 OTA (over-the-air) 인터페이스들은 예를 들어, 주파수 분할 다중 액세스 (FDMA; frequency division multiple access), 시분할 다중 액세스 (TDMA; time division multiple access), 코드 분할 다중 액세스 (CDMA; code division multiple access), 및 시분할 동기식 CDMA (TD-SCDMA; time division-synchronous CDMA) 을 포함한 무선 통신 시스템들에 대해 개발되어 왔다. 이와 연계하여, 예를 들어, AMPS (Advanced Mobile Phone Service), GSM (Global System for Mobile Communications), 및 IS-95 (Interim Standard 95) 를 포함한 여러 국내 및 국제 표준들이 확립되어 왔다. 예시적인 무선 전화방식 통신 시스템은 코드 분할 다중 액세스 (CDMA) 시스템이다. IS-95 표준 및 그 파생안들, IS-95A, ANSI J-STD-008, 및 IS-95B (여기에서는 총괄적으로 IS-95 라고 지칭된다) 는 셀룰라 또는 PCS 전화방식 통신 시스템들을 위한 CDMA OTA 인터페이스의 사용을 구체화하는 TIA (Telecommunication Industry Association) 및 다른 잘 알려진 표준들 바디들에 의해 반포되었다.
IS-95 표준은 후속하여 "3G" 시스템들, 이를 테면, cdma2000 및 WCDMA로 진화하였고, 이들은 보다 많은 용량들 및 고속의 패킷 데이터 서비스들을 제공한다. 2개의 cdma2000 변형물들이, TIA 에 의해 발행된 도큐먼트들 IS-2000 (cdma2000 1xRTT) 및 IS-856 (cdma2000 1xEV-DO) 에 의해 제시된다. cdma2000 1xRTT 통신 시스템은 153 kbps 의 피크 데이터 레이트를 제공하는 한편, cdma2000 1xEV-DO 통신 시스템은 38.4 kbps 내지 2.4 Mbps 범위에 있는 데이터 레이트들의 세트를 정의한다. WCDMA 표준은 "3GPP" (3rd Generation Partnership Project), 도큐먼트 넘버들. 3G TS 25.211, 3G TS 25.212, 3G TS 25.213, 및 3G TS 25.214 에서 구체화된다. IMT-Advanced (International Mobile Telecommunications Advanced) 사양은 "4G" 표준들을 기술한다. IMT-Advanced 사양은 (예를 들어, 기차와 자동차들로부터) 높은 이동성 통신을 위하여 초당 100 메가비트 (Mbit/s) 에서 4G 서비스에 대한 피크 데이터 레이트를 설정하며 (예를 들어, 보행자들 및 정지된 사용자들로부터) 낮은 이동성 통신을 위하여 초당 1 기가비트 (Gbit/s) 를 설정한다.
인간의 스피치 생성의 모델에 관련된 파라미터들을 추출함으로써 스피치를 압축하는 기술들을 채용하는 디바이스들을 스피치 코더들이라 지칭한다. 스피치 코더들은 인코더 및 디코더를 포함할 수도 있다. 인코더는 인커밍 스피치 신호를 시간 블록들 또는 분석 프레임들로 분할한다. 시간 단위의 각각의 세그먼트 (또는 "프레임") 의 지속기간은, 신호의 스펙트럼 엔벨로프가 상대적으로 정지 상태인 것으로 예상될 수도 있을 정도로 충분히 짧도록 선택될 수도 있다. 예를 들어, 특정 애플리케이션에 대해 적절한 것으로 보여지는 샘플링 레이트 또는 임의의 프레임 길이가 이용될 수도 있지만, 예를 들어, 하나의 프레임 길이는 8 킬로헤르츠 (kHz) 의 샘플링 레이트에서 160 개의 샘플들에 대응하는 20 밀리초이다.
인코더는 인커밍 스피치 프레임을 분석하여 특정 관련 파라미터들을 분석하고, 그 후 파라미터들을 이진 표현으로, 예를 들어, 비트들의 세트 또는 이진 데이터 패킷으로 양자화한다. 데이터 패킷들은 통신 채널 (즉, 유선 및/또는 무선 네트워크 접속) 을 통하여 수신기 및 디코더로 송신된다. 디코더는 데이터 패킷들을 프로세싱하고, 프로세싱된 데이터 패킷들을 양자화 해제하여 파라미터들을 생성하고, 그리고 양자화 해제된 파라미터들을 이용하여 스피치 프레임들을 재합성한다.
스피치 코더의 기능은 스피치에 내재된 자연 리던던시들을 제거함으로써, 디지털화된 스피치 신호를 로우 비트 레이트 신호로 압축하는 것이다. 디지털 압축은 비트들의 세트로 파라미터들을 표현하기 위해 파라미터들의 세트로 입력 스피치 프레임을 표현하고 양자화를 채용함으로써 달성될 수도 있다. 입력 스피치 프레임이 비트들의 수 (Ni) 를 갖고, 스피치 코더에 의해 생성된 데이터 패킷이 비트들의 수 (No) 를 가지면, 스피치 코더에 의해 실현되는 압축 팩터는 Cr = Ni/No 이다. 목표 압축 팩터를 달성하면서 디코딩된 스피치의 높은 보이스 품질을 유지하는 것이 도전과제이다. 스피치 코더의 성능은 (1) 위에 설명된 분석 및 합성 프로세스의 조합 또는 스피치 모델이 얼마나 잘 수행하는지, 및 (2) 프레임 당 No 비트들의 목표 비트 레이트에서 파라미터 양자화 프로세스가 얼마나 잘 수행되는지에 의존한다. 이로써, 스피치 모델의 목표는 각각의 프레임에 대한 파라미터들의 작은 세트로 스피치 신호의 에센스 또는 목표 보이스 품질을 캡쳐하는 것이다.
스피치 코더들은 일반적으로, 스피치 신호를 설명하기 위해 파라미터들의 세트 (벡터들을 포함) 를 이용한다. 파라미터들의 양호한 세트는 이상적으로 인지적으로 정확한 스피치 신호의 복구을 위한 낮은 시스템 대역폭을 제공한다. 피치, 신호 파워, 스펙트럼 엔벨로프 (또는 포먼트들), 진폭 및 위상 스펙트럼은 스피치 코딩 파라미터들의 예들이다.
스피치 코더들은 시간-도메인 코더들로서 구현될 수도 있으며, 이 시간-도메인 코더들은 한번에 스피치의 작은 세그먼트들 (예를 들어, 5 밀리초 (ms) 서브프레임들) 을 인코딩하기 위해 높은 시간 분해능 프로세싱을 채용함으로써 시간 도메인 스피치 파형을 캡쳐하려 시도한다. 각각의 서브프레임에 대해, 코드북 스페이스로부터 대표되는 고정밀도는 탐색 알고리즘에 의해 구해진다. 대안으로, 스피치 코더들은 파라미터들의 세트로 입력 스피치 프레임 (분석) 의 단기 스피치 스펙트럼을 캡쳐하고 스펙트럼 파라미터들로부터 스피치 파형을 재생성하도록 대응하는 합성 프로세스를 채용하려 시도하는 주파수 도메인 코더들로 구현될 수도 있다. 파라미터 양자화기는 알려진 양자화 기술들에 따라 코드 벡터들의 저장된 표현으로 이들 파라미터들을 표현함으로써 파라미터들을 보존한다.
하나의 시간 도메인 스피치 코더가 CELP (Code Excited Linear Predictive) 코더이다. CELP 코더에서, 스피치 신호에서의 단기 상관성들, 또는 리던던시들은 단기 포먼트 필터의 계수들을 구하는 선형 예측 (LP; linear prediction) 분석에 의해 제거된다. 단기 예측 필터를 인커밍 스피치 프레임에 적용하는 것은 LP 잔차 신호를 생성하며, 이 신호는 추가로 장기 예측 필터 파라미터들 및 후속 확률적 코드북으로 모델링 및 양자화된다. 따라서, CELP 코딩은 시간 도메인 스피치 파형을 LP 단기 필터 계수들을 인코딩하고 LP 잔차를 인코딩하는 별도의 작업들로 나누어진다. 시간 도메인 코딩은 고정된 레이트에서 (즉, 각각의 프레임에 대해 비트들의 동일한 수 (No) 를 이용하여) 또는 (상이한 비트 레이트들이 상이한 유형들의 프레임 컨텐츠들에 이용되는) 가변 레이트에서 수행될 수도 있다. 가변 레이트 코더는 목표 품질을 얻는데 적합한 레벨로 코덱 파라미터들을 인코딩하는데 필요한 비트들의 양을 이용하려 시도한다.
시간 도메인 코더들, 이를 테면, CELP 코더는 시간 도메인 스피치 파형의 정확도를 보전하기 위해 프레임 당 비트들의 높은 수 (No) 에 의존할 수도 있다. 이러한 코더들은 프레임 당 비트들의 수 (No) 가 비교적 크다고 (예를 들어, 8 kbps 이상) 가정하면 우수한 스피치 품질을 전달할 수도 있다. 낮은 비트 레이트들 (예를 들어, 4 kbps 이하) 에서, 시간 도메인 코더들은 이용가능한 비트들의 제한된 수로 인하여 높은 품질 및 견고한 성능을 유지하는 것에 실패할 수도 있다. 낮은 비트 레이트들에서, 제한된 코드북 공간은 더 높은 레이트의 상업적 애플리케이션들에 배치되는 시간 도메인 코더들의 파형 매칭 능력을 클립한다. 따라서, 시간에 걸친 개선에도 불구하고, 낮은 비트 레이트들에서 동작하는 많은 CELP 코딩 시스템들은 잡음으로서 특징화되는 인식하기에 충분한 왜곡을 겪는다.
낮은 비트 레이트들에서의 CELP 코더들에 대한 대안은 CELP 코더와 유사한 원리 하에서 동작하는 NELP ("Noise Excited Linear Predictive") 이다. NELP 코더들은 코드북 보다는, 스피치를 모델링하는데 필터링된 의사 랜덤 잡음 신호를 이용한다. NELP 가, 코딩된 스피치에 대해 보다 간략한 모델을 이용하기 때문에, NELP 는 CELP 보다 더 낮은 비트 레이트를 실현한다. NELP 는 무성음 스피치 또는 묵음을 압축 또는 표현하는데 이용될 수도 있다.
2.4 kbps 정도의 레이트에서 동작하는 코딩 시스템들은 일반적으로 본래 파라미터적이다. 즉, 이러한 코딩 시스템들은 규칙적 간격들에서 스피치 신호의 스펙트럼 엔벨로프 (또는 포먼트들) 및 피치 주기를 기술하는 파라미터들을 송신함으로써 동작한다. 이들의 이른바 파라미터적 코더들의 예시가 LP 보코더이다.
LP 보코더들은 유성 스피치 신호를 피치 주기 당 단일 펄스로 모델링한다. 이 기본 기술은 다른 무엇보다도, 스펙트럼 엔벨로프에 대한 송신 정보를 포함하도록 증강될 수도 있다. LP 보코더들이 적절한 성능을 일반적으로 제공하고 있지만, 이들은 버즈로서 특징화되는 인식적으로 상당한 왜곡을 도입할 수 있다.
최근에, 파형 코더들 및 파라미터 코더들 양쪽 모두의 하이브리들인 코더들이 출현되었다. 이들의 이른바 하이브리드 코더들의 예시는 PWI (prototype-waveform interpolation) 스피치 코딩 시스템이다. PWI 코딩 시스템은 또한 PPP (prototype pitch period) 스피치 코더로서 알려져 있을 수도 있다. PWI 코딩 시스템은 유성 스피치를 코딩하기 위한 효율적인 방법을 제공한다. PWI 의 기본 개념은 프로토타입 파형들 사이를 보간함으로써, 고정된 간격들에서 대표 피치 사이클 (프로토타입 파형) 을 추출하고 이 기술을 송신하고, 그리고 스피치 신호를 복구하는 것이다. PWI 방법은 LP 잔차 신호 또는 스피치 신호 중 어느 것에서 동작할 수도 있다.
무선 전화기와 같은 전자 디바이스는 네트워크를 통해 데이터를 전송 및 수신할 수 있다. 예를 들어, 오디오 데이터는 회선 교환 네트워크 (예를 들어, PSTN (public switched telephone network), GSM (Global System for Mobile Communications) 네트워크 등) 또는 패킷 교환 네트워크 (예를 들어, VoIP (Voice over Internet Protocol) 네트워크, VoLTE (Voice over Long Term Evolution) 네트워크 등) 를 통해 전송 및 수신될 수 있다. 패킷 교환 네트워크에서 오디오 패킷은 소스 디바이스에서 목적지 디바이스로 개별적으로 라우팅될 수도 있다. 네트워크 상태로 인해, 오디오 패킷이 잘못된 순서로 도착할 수도 있다. 목적지 디바이스는 수신된 패킷을 디-지터 (de-jitter) 버퍼에 저장할 수 있고, 수신된 패킷이 순서가 잘못되면 수신된 패킷을 재정렬할 수도 있다.
목적지 디바이스는 수신된 패킷들에 기초하여 데이터를 재구성할 수도 있다. 소스 디바이스에 의해 전송된 특정 패킷은 목적지 디바이스에 의해 수신되지 않거나 또는 에러를 가지고 수신될 수도 있다. 목적지 디바이스는 특정 패킷과 관련된 데이터의 전부 또는 일부를 복구할 수 없을 수도 있다. 목적지 디바이스는 불완전한 패킷들에 기초하여 데이터를 재구성할 수도 있다. 불완전한 패킷을 기반으로 재구성된 데이터는, 사용자 환경에 악영향을 미칠 수 있는 저하된 품질을 가질 수도 있다. 대안으로, 목적지 디바이스는 특정 패킷을 재송신하도록 소스 디바이스에 요청할 수 있고, 재송신된 패킷을 수신하기 위해 대기하는 동안 데이터를 재구성하는 것을 지연시킬 수 있다. 재송신을 요구하고 재송신된 패킷에 기초하여 데이터를 재구성하는 것과 관련된 지연은 사용자에게 인지될 수 있고 부정적인 사용자 경험을 초래할 수 있다.
요약
특정 양태에서, 디바이스는 수신기, 버퍼, 송신기, 및 프로세서를 포함한다. 수신기는 복수의 패킷들을 수신하도록 구성된다. 복수의 패킷들은 패킷들의 시퀀스의 적어도 서브세트에 대응한다. 복수의 패킷들은 에러 정정 데이터를 포함한다. 복수의 패킷들의 제 1 패킷의 에러 정정 데이터는 복수의 패킷들의 제 2 패킷의 부분 카피를 포함한다. 버퍼는 복수의 패킷들을 저장하도록 구성된다. 분석기는, 패킷의 시퀀스의 특정 패킷이 버퍼로부터 누락되는지, 그리고 특정 패킷의 부분 카피가 또 다른 패킷에서의 에러 정정 데이터로서 버퍼에 저장되는지 여부를 결정하도록 구성된다. 분석기는 또한, 버퍼가 특정 패킷을 저장하지 않고 버퍼가 특정 패킷의 부분 카피를 저장하지 않는다고 결정하는 것에 적어도 부분적으로 기초하여 재송신 메시지를 제 2 디바이스로 송신기를 통해 전송하도록 구성된다.
또 다른 특정 양태에서, 통신 방법은 디바이스에서 복수의 패킷들을 수신하는 것을 포함하고, 복수의 패킷들은 패킷들의 시퀀스의 적어도 서브세트에 대응한다. 복수의 패킷들은 에러 정정 데이터를 포함한다. 복수의 패킷들의 제 1 패킷의 에러 정정 데이터는 복수의 패킷들의 제 2 패킷의 부분 카피를 포함한다. 방법은 또한, 패킷들의 시퀀스의 특정 패킷이 버퍼로부터 누락되는지 여부를 디바이스에서 결정하는 것을 포함한다. 방법은, 특정 패킷의 부분 카피가 또 다른 패킷에서의 에러 정정 데이터로서 버퍼에 저장되는지 여부를 디바이스에서 결정하는 것을 더 포함한다. 방법은 또한, 버퍼가 특정 패킷을 저장하지 않고 버퍼가 특정 패킷의 부분 카피를 저장하지 않는다고 결정하는 것에 적어도 부분적으로 기초하여 재송신 메시지를 디바이스로부터 제 2 디바이스로 전송하는 것을 포함한다.
또 다른 특정 양태에서, 컴퓨터 판독가능 저장 디바이스는, 프로세서에 의해 실행시, 프로세서로 하여금 복수의 패킷들을 수신하는 것을 포함하는 동작들을 수행하도록 하는 명령들을 저장한다. 복수의 패킷들은 패킷들의 시퀀스의 적어도 서브세트에 대응한다. 복수의 패킷들은 에러 정정 데이터를 포함한다. 복수의 패킷들의 제 1 패킷의 에러 정정 데이터는 복수의 패킷들의 제 2 패킷의 부분 카피를 포함한다. 동작들은 또한, 패킷들의 시퀀스의 특정 패킷이 버퍼로부터 누락되는지 여부를 결정하는 것을 포함한다. 동작들은, 특정 패킷의 부분 카피가 또 다른 패킷에서의 에러 정정 데이터로서 버퍼에 저장되는지 여부를 결정하는 것을 더 포함한다. 동작들은 또한, 버퍼가 특정 패킷을 저장하지 않고 버퍼가 특정 패킷의 부분 카피를 저장하지 않는다고 결정하는 것에 적어도 부분적으로 기초하여 재송신 메시지를 디바이스로 전송하는 것을 포함한다.
본 개시물의 다른 양태들, 이점들 및 피처들은 다음 섹션들: 도면의 간단한 설명, 상세한 설명, 및 청구항들을 포함하는 출원의 검토 후에 명백해질 것이다.
도 1 은 리던던시 기반의 패킷 송신 에러 복구를 수행하도록 동작가능한 시스템의 특정 예시적인 양태의 블록도이고;
도 2 는 리던던시 기반의 패킷 송신 에러 복구 방법의 특정 양태의 다이어그램이고;
도 3 은 리던던시 기반의 패킷 송신 에러 복구 방법의 또 다른 특정 양태의 다이어그램이고;
도 4 는 리던던시 기반의 패킷 송신 에러 복구 방법의 또 다른 특정 양태의 다이어그램이고 도 3의 302에 대응할 수 있고;
도 5 는 리던던시 기반의 패킷 송신 에러 복구를 수행하도록 동작가능한 시스템의 또 다른 특정 양태의 다이어그램이고;
도 6 은 리던던시 기반의 패킷 송신 에러 복구의 특정 방법을 예시하는 흐름도이고;
도 7 은 리던던시 기반의 패킷 송신 에러 복구의 또 다른 특정 방법을 예시하는 흐름도이고;
도 8 은 리던던시 기반의 패킷 송신 에러 복구의 또 다른 특정 방법을 예시하는 흐름도이고;
도 9 는 리던던시 기반의 패킷 송신 에러 복구를 수행하도록 동작가능한 디바이스의 특정 예시적인 양태의 블록도이다.
본원에 설명된 원리들은, 예를 들어, 헤드셋, 핸드셋, 다른 오디오 디바이스, 또는 리던던시 기반의 패킷 송신 에러 복구를 수행하도록 구성되는 디바이스의 컴포넌트에 적용될 수 있다. 문맥에 의해 명백하게 한정되지 않는 한, 용어 "신호"는 와이어, 버스 또는 다른 송신 매체 상에 표현된 메모리 위치 (또는 메모리 위치의 세트) 의 상태를 포함하여, 그 통상적인 의미 중 어떤 것을 나타내기 위해 사용된다. 문맥에 의해 명백하게 한정되지 않으면, 용어 "발생시키는"은 컴퓨팅하는 또는 생성시키는 등의 임의의 보통 의미를 나타내도록 여기에서 사용된다. 문맥에 의해 명백하게 한정되지 않으면, 용어 "계산하는"은 복수의 값으로부터 컴퓨팅하는, 평가하는, 평활화하는 및/또는 선택하는 등의 임의의 보통 의미를 나타내도록 여기에서 사용된다. 문맥에 의해 명백하게 한정되지 않으면, 용어 "획득하는"은 계산하는, 유도하는, (예를 들어, 다른 컴포넌트, 블록 또는 디바이스로부터) 수신하는, 및/또는 (예를 들어, 저장 엘리먼트들의 어레이로부터) 탐색하는 등의 임의의 보통 의미를 나타내도록 사용된다.
문맥에 의해 명백하게 한정되지 않으면, 용어 "제조하는"은 계산하는, 생성하는, 및/또는 제공하는 등의 임의의 보통 의미를 나타내도록 사용된다. 문맥에 의해 명백하게 한정되지 않으면, 용어 "제공하는"은 계산하는, 생성하는, 및/또는 제조하는 등의 임의의 보통 의미를 나타내도록 사용된다. 문맥에 의해 명백하게 한정되지 않으면, 용어 "커플링되는"은 직접 또는 간접의 전기적 또는 물리적 연결을 나타내도록 사용된다. 연결이 간접인 경우, "커플링되는" 구조들 사이에 다른 블록들 또는 컴포넌트들이 존재할 수도 있다는 것이 당업자에 의해 잘 이해된다.
용어 "구성"은 특정 문맥에 의해 나타내지는 바와 같이 방법, 장치/디바이스, 및/또는 시스템을 참조하여 사용될 수도 있다. 용어 "포함하는"이 본 설명 및 청구범위에서 사용되는 경우에, 이것은 다른 엘리먼트들 또는 동작들을 배제하지 않는다. 용어 "기초하는" ("A 가 B 에 기초하는"에서와 같이) 은 케이스들 (i) "적어도 기초하는" (예를 들어, "A 는 적어도 B 에 기초한다"), 및 특정한 문맥에서 적합하면, (ii) "와 동일하다" (예를 들어, "A 는 B 와 동일하다") 를 포함하는 임의의 보통 의미를 나타내도록 사용된다. A가 B에 기초한다는 것이 적어도 기초하여를 포함하는 케이스 (i)에서, 이것은 A가 B에 커플링된다는 구성을 포함할 수도 있다. 유사하게는, 용어 "응답하는"은 "적어도 응답하는"을 포함하는 임의의 보통 의미를 나타내도록 사용된다. 용어 "적어도 하나"는 "하나 이상"을 포함하는 임의의 보통 의미를 나타내도록 사용된다. 용어 "적어도 둘"는 "둘 이상"을 포함하는 임의의 보통 의미를 나타내도록 사용된다.
용어 "장치" 및 "디바이스"는, 특정 문맥에 의해 다르게 나타내지 않는한 일반적으로 및 상호교환가능하게 사용된다. 다르게 나타내지 않으면, 특정한 특징을 갖는 장치의 동작의 임의의 개시물이 유사한 특징을 갖는 방법을 개시하도록 또한 명백하게 의도되고 (그 반대의 경우도 마찬가지), 특정한 구성에 따른 장치의 동작의 임의의 개시물이 유사한 구성에 따른 방법을 개시하도록 또한 명백하게 의도된다 (그 반대의 경우도 마찬가지). 용어 "방법", "프로세스", "절차", 및 "기법" 은 특정한 문맥에 의해 다르게 나타내지 않으면 일반적으로 및 상호교환가능하게 사용된다. 용어 "엘리먼트" 및 모듈" 은 더 큰 구성의 일부를 나타내기 위해 통상적으로 사용된다. 용어 "패킷"은 하나 이상의 프레임들에 대응할 수도 있다. 문서의 일부의 레퍼런스에 의한 임의의 통합이 또한, 그 일부 내에서 참조되는 용어들 또는 변수들의 정의들을 통합하는 것으로 이해되어야 하고, 여기서, 이러한 정의들은 통합된 부분에서 참조되는 임의의 도면들 뿐만 아니라 문서에서 어디에서나 나타난다.
본원에서 사용된 바와 같이, 용어 "통신 디바이스"는 무선 통신 네트워크를 통한 보이스 및/또는 데이터 통신에 사용될 수도 있는 전자 디바이스를 지칭한다. 통신 디바이스들의 예들은 핸드폰들, 개인 정보 단말기들 (PDA들), 휴대용 디바이스들, 헤드셋들, 무선 모뎀들, 랩탑 컴퓨터들, 퍼스널 컴퓨터들 등을 포함한다.
도 1을 참조하면, 리던던시 기반의 에러 복구를 수행하도록 동작가능한 시스템의 특정 예시적인 양태가 개시되며 일반적으로 100으로 지정된다. 시스템 (100) 은 네트워크 (190) 를 통해 하나 이상의 다른 디바이스들 (예를 들어, 소스 디바이스 (104)) 와 통신하는 목적지 디바이스 (102) 를 포함할 수 있다. 소스 디바이스 (104) 는 마이크로폰 (146) 을 포함할 수 있거나 또는 마이크로폰 (146) 에 커플링될 수 있다. 목적지 디바이스 (102) 는 스피커 (142) 를 포함하거나 스피커 (142) 에 커플링될 수 있다. 목적지 디바이스 (102) 는 메모리 (176) 에 커플링되거나 또는 메모리 (176) 와 통신하는 분석기 (122) 를 포함할 수도 있다. 목적지 디바이스 (102) 는 수신기 (124), 송신기 (192), 버퍼 (126), 스피치 디코더 (156), 또는 이들의 조합을 포함할 수도 있다. 메모리 (176) 는 분석 데이터 (120) 를 저장하도록 구성될 수 있다. 분석 데이터 (120) 는 검색된 부분 카피들의 카운트 (106), 손실된 패킷들의 카운트 (114), 재송신 카운트 (154), 품질 메트릭 (128), 증분 임계치 (136), 감분 임계치 (138), 증분량 (140), 감분량 (150), 결과 값 (118), 에러 복구 파라미터 (108), 또는 이들의 조합을 포함할 수도 있다. 에러 복구 파라미터 (108) 는 버퍼 깊이 (110), 재송신 임계치 (112) 또는 양자 모두를 포함할 수도 있다.
목적지 디바이스 (102) 는 도 1에 예시된 것보다 작거나 많은 컴포넌트들을 포함할 수 있다. 예를 들어, 목적지 디바이스 (102) 는 하나 이상의 프로세서들, 하나 이상의 메모리 유닛들, 또는 양자 모두를 포함할 수도 있다. 목적지 디바이스 (102) 는 네트워크형 또는 분산형 컴퓨팅 시스템을 포함할 수도 있다. 예를 들어, 메모리 (176) 는 네트워크형 또는 분산형 메모리일 수도 있다. 특정 예시적인 양태에서, 목적지 디바이스 (102) 는 통신 디바이스, 디코더, 스마트 폰, 셀룰러 폰, 이동 통신 디바이스, 랩톱 컴퓨터, 컴퓨터, 태블릿, 개인 정보 단말기 (PDA), 셋톱 박스, 비디오 플레이어, 엔터테인먼트 유닛, 디스플레이 디바이스, 텔레비전, 게임 콘솔, 뮤직 플레이어, 라디오, 디지털 비디오 플레이어, 디지털 비디오 디스크 (DVD) 플레이어, 튜너, 카메라, 내비게이션 디바이스 또는 이들의 조합을 포함할 수 있다. 이러한 디바이스들은 사용자 인터페이스 (예를 들어, 터치 스크린, 음성 인식 기능 또는 다른 사용자 인터페이스 기능) 를 포함할 수 있다.
동작 동안, 제 1 사용자 (152) 는 제 2 사용자 (194) 와 음성 호출을 할 수 있다. 제 1 사용자 (152) 는 목적지 디바이스 (102) 를 사용할 수 있고 제 2 사용자 (194) 는 음성 호출을 위해 소스 디바이스 (104) 를 사용할 수 있다. 음성 호출 동안, 제 2 사용자 (194) 는 소스 디바이스 (104) 와 관련된 마이크로폰 (146) 에 말할 수 있다. 입력 스피치 신호 (130) 는 제 2 사용자 (194) 가 말하는 단어의 일부분, 단어 또는 다수의 단어들에 대응할 수 있다. 예를 들어, 입력 스피치 신호 (130) 는 제 1 데이터 (164) 및 제 2 데이터 (166) 를 포함할 수 있다. 소스 디바이스 (104) 는 마이크로폰 (146) 을 통해 제 2 사용자 (194) 로부터 입력 스피치 신호 (130) 를 수신할 수도 있다. 특정 양태에서, 마이크로폰 (146) 은 오디오 신호를 캡처할 수 있고 아날로그 투 디지털 변환기 (ADC) 는 캡처된 오디오 신호를 아날로그 파형으로부터 디지털 오디오 샘플들로 구성된 디지털 파형으로 변환할 수도 있다. 디지털 오디오 샘플들은 디지털 신호 프로세서에 의해 프로세싱될 수도 있다. 이득 조절기는 오디오 신호 (예를 들어, 아날로그 파형 또는 디지털 파형) 의 진폭 레벨을 증가 또는 감소시킴으로써 (예를 들어, 아날로그 파형 또는 디지털 파형의) 이득을 조절할 수 있다. 이득 조절기는 아날로그 또는 디지털 도메인에서 동작할 수 있다. 예를 들어, 이득 조절기는 디지털 도메인에서 동작할 수 있으며, 아날로그 투 디지털 변환기에 의해 생성된 디지털 오디오 샘플들을 조절할 수 있다. 이득 조절 이후, 에코 소거기는 마이크로폰 (146) 에 입력되는 스피커의 출력에 의해 생성될 수도 있는 에코를 감소시킬 수도 있다. 디지털 오디오 샘플들은 보코더 (음성 인코더-디코더) 에 의해 "압축"될 수 있다. 에코 소거기의 출력은 보코더 전처리 블록들, 예컨대 필터들, 잡음 프로세서들, 레이트 변환기들 등에 커플링될 수 있다. 보코더의 인코더는 디지털 오디오 샘플들을 압축하여 일련의 패킷들 (예를 들어, 제 1 패킷 (132) 및 제 2 패킷 (134)) 을 형성할 수 있다. 패킷들의 시퀀스 각각은 디지털 오디오 샘플들의 압축된 비트의 표현을 포함할 수도 있다. 예를 들어, 제 1 패킷 (132) 은 제 2 패킷 (134) 보다 패킷들의 시퀀스에서 더 빠를 수 있다. 예시하기 위해, 제 1 패킷 (132) 은 특정 오디오 프레임 (예를 들어, 오디오 프레임 N) 에 대응하는 제 1 데이터 (164) 를 포함할 수 있고 제 2 패킷 (134) 은 후속 오디오 프레임 (예를 들어, 오디오 프레임 N+2) 에 대응하는 제 2 데이터 (166) 를 포함할 수 있다.
특정 양태에서, 후속 패킷 (예를 들어, 제 2 패킷 (134)) 은 이전 오디오 프레임 (예를 들어, 오디오 프레임 N) 을 재구성하는데 사용될 수 있는 여분의 데이터 (예를 들어, 제 1 패킷 (132) 의 부분 카피) 를 또한 포함할 수도 있다. 예를 들어, 제 2 패킷 (134) 은 제 1 데이터 (164) 의 적어도 일부분에 대응하는 제 1 부분 카피 (174) 를 포함할 수 있다. 특정 양태에서, 여분의 데이터 (예를 들어, 제 1 부분 카피 (174)) 는 "임계" 스피치 프레임에 대응할 수 있다. 예를 들어, 임계 스피치 프레임의 손실은 목적지 디바이스 (102) 에서 생성된 프로세싱된 스피치 신호의 오디오 품질에서 사용자-인지가능한 저하를 유발할 수 있다.
특정 양태에서, 소스 디바이스 (104) 및 목적지 디바이스 (102) 는 일정한 비트 레이트 (예를 들어, 13.2 킬로비트/초 (kbps)) 채널상에서 동작할 수 있다. 이 양태에서, 1차 데이터 (예를 들어, 제 2 데이터 (166)) 에 대응하는 1차 프레임 비트 레이트는 여분의 데이터 (예를 들어, 제 1 부분 카피 (174)) 를 수용하기 위해 (예를 들어, 9.6 kbps로) 감소될 수 있다. 예를 들어, 일정한 비트 레이트의 나머지 비트 레이트 (예를 들어, 3.6 kbps) 는 여분의 데이터에 대응할 수도 있다. 특정 양태에서, 1 차 프레임 비트 레이트의 감소는 입력 스피치 신호 (130) 의 특성에 따라 소스 디바이스 (104) 에서 수행되어 전체 스피치 품질에 대한 영향을 감소시킬 수 있다.
패킷들의 시퀀스 (예를 들어, 패킷들 (132 및 134)) 는 소스 디바이스 (104) 의 프로세서와 공유될 수 있는 메모리에 저장될 수 있다. 프로세서는 디지털 신호 프로세서와 통신하는 제어 프로세서일 수도 있다.
소스 디바이스 (104) 는 네트워크 (190) 를 통해 목적지 디바이스 (102) 로 패킷들의 시퀀스 (예를 들어, 제 1 패킷 (132), 제 2 패킷 (134), 또는 양자 모두) 를 송신할 수도 있다. 예를 들어, 소스 디바이스 (104) 는 송수신기를 포함할 수도 있다. 송수신기는 패킷들의 시퀀스의 일부 형태를 변조할 수 있다 (예를 들어, 다른 정보가 패킷들 (132 및 134) 에 첨부될 수 있음). 송수신기는 변조된 정보를 안테나를 통해 무선으로 전송할 수도 있다.
목적지 디바이스 (102) 의 분석기 (122) 는 패킷들의 시퀀스의 하나 이상의 패킷들 (예를 들어, 제 1 패킷 (132), 제 2 패킷 (134) 또는 양자 모두) 을 수신할 수 있다. 예를 들어, 목적지 디바이스 (102) 의 안테나는 제 1 패킷 (132), 제 2 패킷 (134) 또는 양자 모두를 포함하는 인입 패킷들의 일부 형태를 수신할 수 있다. 제 1 패킷 (132), 제 2 패킷 (134) 또는 양자 모두는 목적지 디바이스 (102) 에서 보코더의 디코더에 의해 "비압축 (uncompressed)" 될 수 있다. 비압축된 파형은 재구성된 오디오 샘플들로서 참조될 수도 있다. 재구성된 오디오 샘플들은 보코더 포스트 프로세싱 블록들에 의해 포스트 프로세싱될 수 있고, 에코 소거기는 재구성된 오디오 샘플들에 기초하여 에코를 제거할 수 있다. 명료함을 위해, 보코더 및 보코더 포스트 프로세싱 블록들의 디코더는 보코더 디코더 모듈로 지칭될 수 있다. 일부 구성에서, 에코 소거기의 출력은 분석기 (122) 에 의해 프로세싱될 수 있다. 대안으로, 다른 구성에서, 보코더 디코더 모듈의 출력은 분석기 (122) 에 의해 프로세싱될 수 있다.
분석기 (122) 는 목적지 디바이스 (102) 에 의해 수신된 패킷들 (예를 들어, 제 1 패킷 (132), 제 2 패킷 (134) 또는 양자 모두) 을 버퍼 (126) (예를 들어, 디-지터 버퍼) 에 저장할 수 있다. 특정 양태에서, 패킷들은 목적지 디바이스 (102) 에서 잘못된 순서로 수신될 수 있다. 분석기 (122) 는 패킷들이 잘못된 순서인 경우 버퍼 (126) 내의 하나 이상의 패킷을 재배열할 수 있다. 소스 디바이스 (104) 에 의해 전송된 패킷들의 시퀀스 중 하나 이상의 패킷들은 목적지 디바이스 (102) 에 의해 수신되지 않을 수 있거나, 또는 에러를 가지고 수신될 수도 있다. 예를 들어, 패킷 (예를 들어, 제 1 패킷 (132)) 은 패킷 손실로 인해 수신되지 않을 수도 있거나, 또는 네트워크 상태로 인해, 수신기 (124) 에 의해 부분 수신될 수도 있다.
분석기 (122) 는 패킷들의 시퀀스의 특정 패킷이 버퍼 (126) 로부터 누락되는지 여부를 결정할 수도 있다. 예를 들어, 버퍼 (126) 내의 각각의 패킷은 시퀀스 번호를 포함할 수도 있다. 분석기 (122) 는 분석 데이터 (120) 내의 카운터 (예를 들어, 다음 시퀀스 번호) 를 유지할 수도 있다. 예를 들어, 다음 시퀀스 번호는 시작 값 (예를 들어, 0) 을 가질 수도 있다. 분석기 (122) 는 특정 입력 신호 (예를 들어, 입력 스피치 신호 (130)) 에 대응하는 각각의 패킷을 프로세싱한 후 다음의 시퀀스 번호를 업데이트 (예를 들어, 1씩 증분) 할 수 있다. 분석기 (122) 는 특정 입력 신호 (예를 들어, 입력 스피치 신호 (130)) 에 대응하는 마지막 패킷을 프로세싱한 후 다음의 시퀀스 번호를 시작 값으로 재설정할 수 있다.
분석기 (122) 는 버퍼 (126) 가 다음 시퀀스 번호를 갖는 다음 패킷 (예를 들어, 제 1 패킷 (132)) 을 포함하는 것으로 결정할 수도 있다. 분석기 (122) 는 적어도 다음 패킷 (예를 들어, 제 1 패킷 (132)) 에 기초하여 프로세싱된 스피치 신호를 생성할 수도 있다. 특정 양태에서, 분석기 (122) 는 제 1 패킷 (132) 을 스피치 디코더 (156) 에 제공하고 스피치 디코더 (156) 는 프로세싱된 스피치 신호를 생성할 수도 있다. 분석기 (122) (또는 스피치 디코더 (156)) 는 제 1 패킷 (132) 및 제 2 패킷 (134) 에 기초하여 프로세싱된 스피치 신호를 생성할 수도 있다. 프로세싱된 스피치 신호는 제 1 패킷 (132) 의 제 1 데이터 (164) 및 제 2 패킷 (134) 의 제 2 데이터 (166) 에 대응할 수도 있다. 분석기 (122) (또는 스피치 디코더 (156)) 는 프로세싱된 스피치 신호를 스피커 (142) 를 통해 제 1 사용자 (152) 로 출력할 수도 있다. 분석기 (122) 는 다음 시퀀스 번호를 업데이트 (예를 들어, 증분 또는 재설정) 할 수도 있다.
분석기 (122) 는 소스 디바이스 (104) 에 의해 전송된 패킷들의 시퀀스의 특정 패킷 (제 1 패킷 (132)) 이 버퍼 (126) 로부터 누락되는지 여부를 결정할 수도 있다. 예를 들어, 분석기 (122) 는 버퍼 (126) 가 다음 시퀀스 번호를 갖는 다음 패킷 (예를 들어, 제 1 패킷 (132)) 을 저장하지 않는다고 결정하는 것에 기초하여 제 1 패킷 (132) 이 누락된다고 결정할 수도 있다. 예시하기 위해, 분석기 (122) 는 다음 시퀀스 번호에 대응하는 패킷 (예를 들어, 제 1 패킷 (132)) 이 버퍼 (126) 에서 발견되지 않는다고 결정하는 것에 응답하여 제 1 패킷 (132) 이 누락된다고 결정할 수도 있다. 분석기 (122) 는, 버퍼 (126) 에 저장된 다른 패킷 (예를 들어, 제 2 패킷 (134)) 의 에러 정정 데이터로서 제 1 패킷 (132) 의 부분 카피가 버퍼 (126) 에 저장되는지 여부를 결정할 수도 있다. 예를 들어, 각 패킷의 헤더 내의 하나 이상의 필드는 패킷이 에러 정정 데이터를 포함하고 해당 패킷을 나타낼 수 있는지 여부를 나타낼 수도 있다. 분석기 (122) 는 버퍼 (126) 에 저장된 하나 이상의 패킷들 (예를 들어, 제 2 패킷 (134)) 의 특정 필드를 조사할 수 있다. 예를 들어, 버퍼 (126) 는 제 2 패킷 (134) 을 저장할 수도 있다. 제 2 패킷 (134) 의 헤더 내의 특정 필드는, 제 2 패킷 (134) 이 제 1 패킷 (132) 에 대응하는 에러 정정 데이터를 포함한다고 나타낼 수도 있다. 예를 들어, 특정 필드는 제 1 패킷 (132) 의 시퀀스 번호를 나타낼 수도 있다. 분석기 (122) 는, 제 2 패킷 (134) 의 특정 필드가 제 1 패킷 (132) 의 시퀀스 번호를 나타내는 것으로 결정하는 것에 기초하여, 제 1 패킷 (132) 의 부분 카피가 버퍼 (126) 에 저장된다고 결정할 수 있다. 분석기 (122) 는, 제 1 패킷 (132) 이 버퍼 (126) 로부터 누락되고, 그리고 버퍼 (126) 가 제 1 패킷 (132) 의 부분 카피를 저장한다고 결정하는 것에 응답하여 검색된 부분 카피들의 카운트 (106) 를 업데이트할 수도 있다.
분석기 (122) 는 적어도 다음 패킷 (예를 들어, 제 2 패킷 (134)) 에 기초하여 프로세싱된 스피치 신호 (116) 를 생성할 수도 있다. 예를 들어, 분석기 (122) 는 제 1 부분 카피 (174) 및 제 2 데이터 (166) 에 기초하여 프로세싱된 스피치 신호 (116) 를 생성할 수도 있다. 제 1 부분 카피 (174) 는 제 1 패킷 (132) 의 제 1 데이터 (164) 의 적어도 일부분을 포함할 수도 있다. 특정 양태에서, 제 1 데이터 (164) 는 제 1 스피치 프레임의 제 1 스피치 파라미터들에 대응할 수 있다. 제 1 부분 카피 (174) 는 제 1 스피치 파라미터들을 포함할 수 있다. 특정 양태에서, 제 2 데이터 (166) 는 제 2 스피치 프레임의 제 2 스피치 파라미터들에 대응할 수 있고, 제 1 부분 카피 (174) 는 제 1 스피치 파라미터들 및 제 2 스피치 파라미터들 간의 차이에 대응할 수 있다. 이 양태에서, 분석기 (122) 는 제 2 스피치 파라미터들과 제 1 부분 카피 (174) 의 합에 기초하여 제 1 스피치 파라미터들을 생성할 수도 있다.
분석기 (122) 는 제 1 스피치 파라미터들에 기초하여 프로세싱된 스피치 신호 (116) 를 생성할 수도 있다. 제 2 패킷 (134) 에 에러 정정 데이터로서 제 1 부분 카피 (174) 를 갖는 것은, 특정 스피치 프레임에 대응하는 제 1 패킷 (132) 이 버퍼 (126) 로부터 누락된 경우라도 특정 스피치의 제 1 스피치 파라미터들에 기초하여 프로세싱된 스피치 신호 (116) 의 생성을 가능하게 할 수 있음을 이해할 것이다.
특정 양태에서, 분석기 (122) 는 스피치 디코더 (156) 에 제 1 부분 카피 (174), 제 2 패킷 (134) 또는 제 1 스피치 파라미터들을 제공할 수 있고, 스피치 디코더 (156) 는 프로세싱된 스피치 신호 (116) 를 생성할 수 있다. 분석기 (122) (또는 스피치 디코더 (156)) 는 프로세싱된 스피치 신호 (116) 를 스피커 (142) 를 통해 제 1 사용자 (152) 로 출력할 수도 있다. 분석기 (122) 는 다음 시퀀스 번호를 업데이트 (예를 들어, 증분 또는 재설정) 할 수도 있다. 프로세싱된 스피치 신호 (116) 는 제 2 데이터 (166) 에만 기초하여 생성된 프로세싱된 스피치 신호보다 더 양호한 오디오 품질을 가질 수 있다. 예를 들어, 제 1 부분 카피 (174) 및 제 2 데이터 (166) 에 기초하여 생성된 프로세싱된 스피치 신호 (116) 는, 제 1 데이터 (164) (또는 제 1 부분 카피 (174)) 에 기초하지 않고 제 2 데이터 (166) 에 기초하여 생성된 프로세싱된 스피치 신호보다 사용자 지각가능한 아티팩트를 덜 가질 수도 있다.
특정 양태에서, 분석기 (122) 는 제 1 패킷 (132) 및 제 2 패킷 (134) 이 버퍼 (126) 로부터 누락된다고 결정할 수도 있다. 예를 들어, 분석기 (122) 는 제 1 패킷 (132) 이 버퍼 (126) 로부터 누락된다고 결정할 수 있고, 버퍼 (126) 가 다른 패킷에 에러 정정 데이터로서 제 1 패킷 (132) 의 부분 카피를 저장하지 않는다고 결정할 수 있다. 예시하기 위해, 분석기 (122) 는, 제 1 패킷 (132) 의 시퀀스 번호가 버퍼 (126) 에 저장되는 입력 스피치 신호 (130) 에 대응하는 패킷들 중 임의의 패킷의 특정 필드에 의해 표시되지 않는다고 결정할 수도 있다. 분석기 (122) 는, 제 1 패킷 (132) 및 제 2 패킷 (134) 이 버퍼 (126) 로부터 누락된다고 결정하는 것에 기초하여 손실된 패킷들의 카운트 (114) 를 업데이트할 수도 있다. 특정 양태에서, 분석기 (122) 는, 제 1 패킷 (132) 이 버퍼 (126) 로부터 누락되고, 그리고 버퍼 (126) 가 제 1 패킷 (132) 의 부분 카피를 포함하는 패킷 (예를 들어, 제 2 패킷 (134)) 을 저장하지 않는다는 것을 반영하기 위해 손실된 패킷들의 카운트 (114) 를 업데이트 (예를 들어, 1씩 증분) 할 수도 있다. 분석기 (122) 는 다음 시퀀스 번호를 업데이트 (예를 들어, 증분 또는 재설정) 할 수도 있다.
분석기 (122) 는 도 2 및 도 3을 참조하여 기재된 바와 같이, 손실된 패킷들의 카운트 (114), 검색된 부분 카피들의 카운트 (106) 또는 양자 모두에 기초하여 에러 복구 파라미터 (108) 를 조절할 수 있다. 예를 들어, 분석기 (122) 는 손실된 패킷들의 카운트 (114), 검색된 부분 카피들의 카운트 (106) 또는 양자 모두에 기초하여 결과 값 (118) 을 결정할 수 있다. 특정 양태에서, 결과 값 (118) 은 손실된 패킷들의 카운트 (114) 및 검색된 부분 카피들의 카운트 (106) 의 가중된 합일 수 있다. 특정 양태에서, 분석기 (122) 는 손실된 패킷들의 카운트 (114) (예를 들어, 1의 가중치를 가짐) 와 가중치 (weighted value) 의 합에 기초하여 결과 값 (118) 을 결정할 수 있다. 분석기 (122) 는 검색된 부분 카피들의 카운트 (106) 에 품질 메트릭 (128) 을 곱함으로써 가중치를 결정할 수 있다. 품질 메트릭 (128) 은 디폴트 값, 사용자 제공 값, 또는 양자 모두일 수 있다. 품질 메트릭 (128) 은 검색된 부분 카피들의 카운트 (106) 에 할당된 가중치 (예를 들어, 0보다 크거나 같고 1보다 작거나 같음) 에 대응할 수 있다.
특정 양태에서, 품질 메트릭 (128) 은 검색된 부분 카피들의 품질의 측정치일 수도 있다. 예시하기 위해, 검색된 부분 카피들의 품질의 측정치가 높은 경우, 품질 메트릭 (128) 은 보다 낮은 가중치에 대응할 수 있다. 분석기 (122) 는 검색된 부분 카피 (예를 들어, 제 1 부분 카피 (174)) 에 대응하는 데이터 (예를 들어, 스피치 파라미터) 와 이전의 오디오 프레임에 대응하는 이전 패킷으로부터 검색된 이전 데이터 (예를 들어, 이전 스피치 파라미터들) 간의 차이에 기초하여 품질의 측정치를 결정할 수 있다. 예를 들어, 분석기 (122) 는 스피치 파라미터들과 특정 임계치를 만족시키는 이전 스피치 파라미터들 간의 차이에 기초하여 품질의 측정치를 결정할 수 있다. 검색된 부분 카피 (예를 들어, 제 1 부분 카피 (174)) 가 충분히 다른 파라미터들에 대응한다면, 검색된 부분 카피 (예를 들어, 제 1 부분 카피 (174)) 에 기초하여 프로세싱된 스피치 신호 (116) 를 생성하는 것은, 대응하는 1차 패킷 (예를 들어, 제 1 패킷 (132)) 이 버퍼 (126) 에 저장되지 않는 경우, 프로세싱된 스피치 신호 (116) 의 오디오 품질을 상당히 개선시킬 수 있다. 분석기 (122) 는, 검색된 부분 카피 (예를 들어, 제 1 부분 카피 (174)) 가 이전 패킷과는 충분히 다른 파라미터들에 대응하는 경우 보다 높은 품질의 측정치를 결정할 수도 있다.
특정 양태에서, 검색된 부분 카피들의 카운트 (106) 에는 손실된 패킷들의 카운트 (114) 보다 낮은 가중치가 할당될 수 있다. 검색된 부분 카피들의 카운트에 더 낮은 가중치를 할당하는 것으로, 부분 리던던시가 에러 복구 파라미터의 조절시 대응하는 누락 패킷들의 영향을 감소시킬 수 있다. 부분 리던던시를 갖는 것은, 리던던시가 없는 경우에 비해 더 작은 버퍼의 사용, 더 적은 재송신 요청들 또는 양자 모두를 가능하게 할 수 있음을 이해할 것이다.
분석기 (122) 는 결과 값 (118) 에 기초하여 에러 복구 파라미터 (108) (예를 들어, 버퍼 깊이 (110), 재송신 임계치 (112) 또는 양자 모두) 를 조절할 수 있다. 예를 들어, 분석기 (122) 는 도 2 및 도 3을 참조하여 기재된 바와 같이, 결과 값 (118) 이 증분 임계치 (136) 를 만족시킨다는 결정에 응답하여 증분량 (140) 에 기초하여 에러 복구 파라미터 (108) 를 증분시킬 수 있다. 특정 양태에서, 결과 값 (118) 은 프로세싱된 스피치 신호들의 오디오 품질에서의 인지가능한 열화를 초래할 수 있는 높은 패킷 손실의 조건들 동안 증분 임계치 (136) 를 만족시킬 수 있다. 분석기 (122) 는 버퍼 깊이 (110) 를 증분시켜 손실된 패킷의 부분 카피가 다른 패킷의 에러 보정 데이터로서 버퍼에 존재할 가능성을 증가시킬 수 있다. 분석기 (122) 는 재송신 임계치 (112) 를 증분시켜, 손실된 패킷들의 재송신을 요청하기 위한 더 많은 재송신 메시지들 (예를 들어, 재송신 메시지 (144)) 를 목적지 디바이스 (102) 가 소스 디바이스 (104) 로 전송할 수 있게 한다. 목적지 디바이스 (102) 는 재송신된 패킷들에 기초하여 프로세싱된 스피치 신호를 생성할 수 있고 프로세싱된 스피치 신호들의 오디오 품질이 향상될 수 있다.
또 다른 예로서, 분석기 (122) 는 도 2 및 도 3을 참조하여 기재된 바와 같이, 결과 값 (118) 이 감분 임계치 (138) 를 만족시킨다는 결정에 응답하여 감분량 (150) 에 기초하여 에러 복구 파라미터 (108) 를 감분시킬 수 있다. 특정 양태에서, 결과 값 (118) 은 낮은 패킷 손실의 조건들 동안 감분 임계치 (138) 를 만족시킬 수 있다. 분석기 (122) 는 버퍼 깊이 (110) 를 감분시켜 버퍼 (126) 에 의한 메모리 사용을 감소시킬 수 있다. 분석기 (122) 는 재송신 임계치 (112) 를 감분시켜, 손실된 패킷들의 재송신을 요청하기 위해 목적지 디바이스 (102) 에 의해 전송된 재송신 메시지들 (예를 들어, 재송신 메시지 (144)) 의 수를 감소시킬 수 있다. 재송신 메시지가 적으면 재송신 메시지를 전송하고 패킷을 재송신하는 것과 관련된 대역폭 사용이 결과적으로 감소될 수 있다.
특정 양태에서, 에러 복구 파라미터 (108) 는 최대값, 최소값, 또는 양자 모두를 가질 수 있다. 이 양태에서, 분석기 (122) 는 최소값 및 최대값에 의해 한정된 범위 내에서 에러 복구 파라미터 (108) 를 조절할 수 있다.
증분 임계치 (136), 감분 임계치 (138), 증분량 (140) 및 감분량 (150) 중 하나 이상은 각각의 에러 복구 파라미터에 대해 별개의 값 또는 동일한 값을 가질 수 있다. 예를 들어, 버퍼 깊이 (110) 에 대응하는 증분 임계치 (136), 감분 임계치 (138), 증분량 (140) 및 감분량 (150) 중 하나 이상은 재송신 임계치 (112) 에 대응하는 증분 임계치 (136), 감분 임계치 (138), 증분량 (140) 및 감분량 (150) 과 별개일 수 있다.
증분 임계치 (136), 감분 임계치 (138), 증분량 (140), 감분량 (150), 또는 이들의 조합은 디폴드 값들일 수 있다. 특정 양태에서, 분석기 (122) 는 증분량 (140), 감분량 (150), 또는 양자 모두를 동적으로 결정할 수 있다. 예를 들어, 분석기 (122) 는 결과 값 (118) 과 증분 임계치 (136) 사이의 차이에 기초하여 증분량 (140) 을 결정할 수 있다. 또 다른 예로서, 분석기 (122) 는 결과 값 (118) 과 감분 임계치 (138) 사이의 차이에 기초하여 감분량 (150) 을 결정할 수 있다.
특정 양태에서, 분석기 (122) 는 결과 값 (118) 에 기초하여 에러 복구 파라미터 (108) 의 조절량을 결정할 수 있고, 이후에 조절량에 기초하여 에러 복구 파라미터 (108) 를 조절하는 것을 지연시킬 수 있다. 예를 들어, 분석기 (122) 는 제 1 수 (예를 들어, 10) 의 패킷들에 기초하여 조절량을 반복적으로 결정할 수 있고 제 1 수의 패킷들을 프로세싱한 후에 에러 복구 파라미터 (108) 를 조절할 수 있다. 또 다른 예로서, 목적지 디바이스 (102) 는 소스 디바이스 (104) 로부터 버스트로 패킷들을 수신할 수 있다. 예를 들어, 제 2 사용자 (194) 는 말하는 것 사이에 일시 정지할 수 있고 패킷들의 각각의 버스트는 일시 정지들 사이의 제 2 사용자 (194) 의 스피치에 대응할 수 있다. 분석기 (122) 는 일시 정지 동안의 조절량에 기초하여 에러 복구 파라미터 (108) 를 조절하여, 패킷들의 다음 버스트가 조절된 에러 복구 파라미터 (108) 에 기초하여 프로세싱될 수 있도록 하고, 그리고 에러 복구 파라미터 (108) 의 조절이 사용자에게 인지되지 않을 수 있도록 한다.
특정 양태에서, 분석기 (122) 는 재송신 카운트 (154), 재송신 임계치 (112), 또는 양자 모두에 기초하여 특정 패킷 (예를 들어, 제 1 패킷 (132)) 의 재송신을 요청할 수 있다. 예를 들어, 분석기 (122) 는, 재송신 카운트 (154) 가 재송신 임계치 (112) 를 만족하고 제 1 패킷 (132) 이 버퍼 (126) 로부터 누락된다고 결정하는 것에 기초하여 송신기 (192) 를 통해 재송신 메시지 (144) 를 소스 디바이스 (104) 로 전송할 수도 있다. 재송신 메시지 (144) 는 제 1 패킷 (132) 의 재송신을 요청할 수도 있다.
재송신 카운트 (154) 는 디폴트 기초 값을 가질 수도 있다. 분석기 (122) 는 재송신 메시지 (144) 를 전송하는 것에 기초하여 재송신 카운트 (154) (예를 들어, 증분) 를 업데이트할 수 있다. 특정 양태에서, 재송신 카운트 (154) 는 특정 시간 주기와 관련될 수 있다. 예를 들어, 재송신 카운트 (154) 는 특정 시간 주기 (예를 들어, 이전의 5 분) 동안 분석기 (122) 에 의해 전송된 재송신 메시지의 수를 나타낼 수 있다.
소스 디바이스 (104) 는 재송신 메시지 (144) 를 수신하는 것에 응답하여 제 1 패킷 (132) 을 재송신할 수도 있다. 이 양태에서, 분석기 (122) 는 재송신된 제 1 패킷 (132) 을 수신하고 재송신된 제 1 패킷 (132) 으로부터 적어도 제 1 데이터 (164) 에 기초하여 프로세싱된 스피치 신호를 생성할 수 있다. 예를 들어, 분석기 (122) 는, 버퍼 (126) 가 제 1 패킷 (134) 을 저장하는 것에 응답하여, 재송신된제 1 패킷 (132) 으로부터의 제 1 데이터 (164) 및 제 2 패킷 (134) 으로부터의 제 2 데이터 (166) 에 기초하여 프로세싱된 스피치 신호를 생성할 수 있다. 특정 양태에서, 재송신 메시지 (144) 를 전송하고 재송신된 제 1 패킷 (132) 을 수신하는 것과 관련된 라운드 트립 지연 (예를 들어, 8 밀리초 (ms) 내지 16 ms) 이 있을 수 있다. 예를 들어, 소스 디바이스 (104) 와 목적지 디바이스 (102) 사이의 하이브리드 자동 반복 요청 (HARQ) 인스턴스의 최대 수 (예를 들어, 8) 가 있을 수 있다. 소스 디바이스 (104) 는 제 1 HARQ 인스턴스 동안 제 1 패킷 (132) 을 전송할 수도 있다. 목적지 디바이스 (102) 는 제 2 HARQ 인스턴스 동안 재송신 메시지 (144) 를 전송할 수 있다. 소스 디바이스 (104) 는 제 3 HARQ 인스턴스 동안 재송신된 제 1 패킷 (132) 을 전송할 수도 있다. 라운드 트립 지연 (예를 들어, 8 ms 내지 16 ms) 은 제 1 HARQ 인스턴스와 제 3 HARQ 인스턴스 사이의 시간차에 대응할 수 있다
특정 구현예에서, 송신 타임라인은 서브프레임들의 유닛들로 구획될 수도 있다. 각각의 서브프레임은 미리결정된 시간 지속기간, 예를 들어 1 밀리초 (ms) 를 커버할 수 있다. 소스 디바이스 (104) 는 목적지 디바이스 (102) 로 전송하기 위한 데이터를 가질 수 있고 데이터 심볼들을 얻기 위해 선택된 전송 포맷에 따라 제 1 패킷 (132) 을 프로세싱할 수도 있다. 전송 포맷은 레이트, 패킷 포맷, 변조 및 코딩 스킴 (modulation and coding scheme; MCS) 등에 대응할 수 있다. 소스 디바이스 (104) 는 제어 정보 뿐만 아니라 제 1 패킷 (132) 의 제 1 송신도 서브프레임 t에서 목적지 디바이스 (102) 로 전송할 수 있다. 제어 정보는 선택된 전송 포맷, 데이터 송신에 사용되는 무선 리소스 등을 나타낼 수 있다. 목적지 디바이스 (102) 는 선택된 전송 포맷에 따라 제 1 송신을 수신하고 프로세싱할 수 있다. 목적지 디바이스 (102) 가 제 1 패킷 (132) 을 성공적으로 디코딩할 수 없는 경우 (예를 들어, 에러가 발생하거나 제 1 패킷 (132) 이 예상될 때 수신되지 않는 경우), 목적지 디바이스 (102) 는 서브프레임 t+Δ에서 부정 확인응답 (NAK) 을 전송할 수 있다.
NAK는 재송신 요청으로서 동작한다. 이에 따라, 소스 디바이스 (104) 는 NAK를 수신하고 서브 프레임 t+M에서 제 1 패킷 (132) 의 제 2 송신을 전송할 수 있다. 목적지 디바이스 (102) 는 다시 제 1 패킷 (132) 의 디코딩을 시도할 수 있다. 에러가 발생하면, 목적지 디바이스 (102) 는 (예를 들어, 서브 프레임 t+M+Δ에서) 또 다른 NAK를 전송할 수 있다. 서브 프레임 t에서의 초기 송신 이후의 제 1 패킷 (132) 의 각각의 송신은 HARQ 송신으로 지칭될 수 있고 제 1 패킷 (132) 에 대한 상이한 리던던시 정보 (예를 들어, 데이터 심볼들의 상이한 세트) 를 포함할 수 있다.
시스템 (100) 은 동기식 HARQ 및/또는 비동기식 HARQ를 지원할 수 있다. 동기식 HARQ의 경우, 패킷 (예를 들어, 제 1 패킷 (132)) 의 송신들은 송신기 (예를 들어, 소스 디바이스 (104)) 및 수신기 (예를 들어, 목적지 디바이스 (102)) 에 의해 선험적으로 알려진 서브 프레임들에서 전송될 수 있다. 비동기식 HARQ의 경우, 패킷 (예를 들어, 제 1 패킷 (132)) 의 송신은 스케쥴링되어 하나 이상의 서브 프레임들에서 전송될 수 있다. 특정 구현예에서, 시스템 (100) 은 HARQ, 자동 반복 요청 (ARQ), 다른 재송신 프로토콜, 또는 이들의 조합을 지원할 수 있다.
특정 양태에서, 분석기 (122) 는, 재송신 카운트 (154) 가 재송신 임계치 (112) 를 만족시키지 못하거나, 특정 패킷 (예를 들어, 제 1 패킷 (132)) 이 버퍼 (126) 에 저장되거나, 특정 패킷 (예를 들어, 제 1 패킷 (132)) 의 부분 카피 (예를 들어, 제 1 부분 카피 (174) 가 버퍼 (126) 에 저장되거나, 또는 이들을 조합한 것에 기초하여, 특정 패킷 (예를 들어, 제 1 패킷 (132)) 의 재송신의 요청을 억제할 수 있다. 재송신된 제 1 패킷 (132) 에 기초하여 프로세싱된 스피치 신호 (116) 를 생성하는 것은 결과적으로 프로세싱된 스피치 신호 (116) 가 보다 양호한 오디오 품질을 갖게 할 수 있는 한편, 제 1 부분 카피 (174) 에 기초하여 프로세싱된 스피치 신호 (116) 를 생성하는 것은 결과적으로 프로세싱된 스피치 신호 (116) 가 재송신된 제 1 패킷 (132) 의 요청 및 수신과 연관된 라운드 트립 지연 (예를 들어, 8 ms 내지 16 ms) 없이 생성되게 할 수 있다.
특정 양태에서, 분석기 (122) 는 버퍼 깊이 (110) 에 기초하여 패킷을 드롭할 수 있다. 예를 들어, 분석기 (122) 는 버퍼 (126) 에 저장된 패킷들의 수 (또는 전체 크기) 가 버퍼 깊이 (110) 를 만족하는지 여부를 결정할 수 있다. 분석기 (122) 는, 후속 패킷의 수신에 응답하여, 후속 패킷을 버퍼 (126) 에 저장하는 것을 억제할 수 있거나 또는 버퍼 (126) 로부터 하나 이상의 다른 패킷을 제거할 수 있다. 예를 들어, 분석기 (122) 는 가장 긴 지속기간 동안 버퍼 (126) 에 있었던 패킷을 제거할 수 있거나, 또 다른 패킷에 대응하는 에러 정정 데이터를 포함하지 않는 패킷을 제거할 수 있거나, 또는 양자 모두를 할 수 있다.
이로써, 시스템 (100) 은 손실된 패킷의 재송신없이 손실된 패킷의 데이터의 부분 복구를 가능하게 할 수 있다. 예를 들어, 분석기 (122) 는, 제 1 패킷 (132) 이 버퍼 (126) 에 저장되지 않는다고 결정하는 것에 응답하여 제 2 패킷 (134) 으로부터 제 1 부분 카피 (174) 를 복구할 수 있다. 또 다른 특별한 이점은 검색된 부분 카피들의 카운트, 손실된 패킷들의 카운트 또는 양자 모두에 기초하여 에러 복구 파라미터를 동적으로 조절하는 것이다. 예를 들어, 분석기 (122) 는 검색된 부분 카피들의 카운트 (106), 손실된 패킷들의 카운트 (114), 또는 양자 모두에 기초하여 에러 복구 파라미터 (108) 를 동적으로 조절할 수 있다. 따라서, 에러 복구 파라미터 (108) 는 네트워크 상태, 수신된 패킷들의 리던던시 정도, 또는 양자 모두에 응답할 수 있다.
도 2를 참조하면, 리던던시 기반의 패킷 송신 에러 복구 방법의 특정 예시적인 양태의 흐름도가 도시되어 있고 일반적으로 200으로 지정되어 있다. 특정 양태에서, 방법 (200) 은 도 1의 분석기 (122) 에 의해 수행될 수 있다. 도 2는 손실된 패킷들의 카운트 (114), 검색된 부분 카피들의 카운트 (106) 또는 양자 모두에 기초한, 도 1의 버퍼 깊이 (110) 의 조절을 예시한다. 예를 들어, 버퍼 깊이 (110) 의 조절은 손실 패킷들의 카운트 (114) (p) 의 함수, 검색된 부분 카피들의 카운트 (106) (q) 의 함수, 또는 손실 패킷들의 카운트 (114) (p) 와 검색된 부분 카피들의 카운트 (106) (q) 의 함수일 수 있다.
방법 (200) 은 202에서 시간 N에서 인코딩된 스피치 프레임 R(N)을 수신기에 의해 수신하는 것을 포함한다. 예를 들어, 도 1의 수신기 (124) 는, 도 1을 참조하여 기재된 바와 같이, 입력 스피치 신호 (130) 의 특정 오디오 프레임에 대응하는 특정 패킷을 수신할 수 있다.
방법 (200) 은 또한 204에서 다음 스피치 프레임 R(N-D) 이 디-지터 버퍼에서 이용가능한지 여부를 결정하는 것을 포함한다. 예를 들어, 분석기 (122) 는, 도 1을 참조하여 기재된 바와 같이, 다음 패킷이 버퍼 (126) 에 저장되는지 여부를 결정할 수도 있다. 다음 패킷은 다음 시퀀스 번호를 가질 수 있다. 특정 양태에서, 분석기 (122) 는 이전에 프로세싱된 패킷의 시퀀스 번호를 증분시킴으로써 다음 시퀀스 번호를 결정할 수도 있다. 대안의 양태에서, 분석기 (122) 는 가장 최근에 수신된 패킷 (예를 들어, N) 의 시퀀스 번호와 버퍼 깊이 (110) (예를 들어, D) 사이의 차이에 기초하여 다음 시퀀스 번호를 결정할 수 있다. 이 양태에서, 버퍼 깊이 (110) 는 버퍼 (126) 에 저장될 패킷들의 최대 수를 나타낼 수 있다. 분석기 (122) 는, 다음 시퀀스 번호에 대응하는 다음 패킷 (예를 들어, 제 1 패킷 (132)) 이 버퍼 (126) 에 저장되는지 여부를 결정할 수 있다.
방법 (200) 은, 204에서 다음 스피치 프레임 R(N-D)이 디-지터 버퍼에서 이용가능하다고 결정하는 것에 응답하여, 206에서 다음 스피치 프레임 R(N-D)를 스피치 디코더에 제공하는 것을 더 포함한다. 예를 들어, 분석기 (122) 는, 도 1을 참조하여 기재된 바와 같이, 다음 패킷 (예를 들어, 제 1 패킷 (132)) 이 버퍼 (126) 에 저장된다고 결정하는 것에 응답하여, 제 1 패킷 (132) 을 스피치 디코더 (156) 에 제공할 수 있다.
방법 (200) 은 또한, 204에서 다음 스피치 프레임 R(N-D)이 디-지터 버퍼에서 이용불가능하다고 결정하는 것에 응답하여, 208에서 다음 스피치 프레임 R(N-D)의 부분 카피가 디-지터 버퍼에서 이용가능한지 여부를 결정하는 것을 포함한다. 예를 들어, 도 1의 분석기 (122) 는, 도 1을 참조하여 기재된 바와 같이, 제 1 패킷 (132) 이 버퍼 (126) 에 저장되어 있지 않다고 결정하는 것에 응답하여, 제 1 패킷 (132) 의 부분 카피가 버퍼 (126) 에 저장되어 있는지 여부를 결정할 수 있다. 예시하기 위해, 분석기 (122) 는 제 1 부분 카피 (174) 를 갖는 제 2 패킷 (134) 이 버퍼 (126) 에 저장되는지를 결정할 수 있다.
방법 (200) 은, 208에서 다음 스피치 프레임 R(N-D)의 부분 카피가 디-지터 버퍼에서 이용가능하다고 결정하는 것에 응답하여, 206에서 다음 스피치 프레임 R(N-D)를 스피치 디코더에 제공하는 것, 및 210에서 M개의 이전의 프레임들 동안 검색되었던 부분 카피들의 수 (q) 를 결정하는 것을 더 포함한다. 예를 들어, 도 1의 분석기 (122) 는, 제 2 패킷 (134) 이 버퍼 (126) 에 포함되고 제 2 패킷 (134) 이 제 1 패킷 (132) 의 제 1 부분 카피 (174) 를 포함한다고 결정하는 것에 응답하여, 제 2 패킷 (134) 을 스피치 디코더 (156) 에 제공할 수 있다. 특정 양태에서, 분석기 (122) 는 제 1 부분 카피 (174) 를 스피치 디코더 (156) 에 제공할 수 있다. 분석기 (122) 는 또한, 도 1을 참조하여 기재된 바와 같이, 검색된 부분 카피들의 카운트 (106) 를 업데이트할 수 있다. 예를 들어, 검색된 부분 카피들의 카운트 (106) 는 프레임들의 특정 수, 특정 시간 기간, 또는 양자 모두에 대응할 수 있다. 프레임들의 특정 수 (M) 는 디폴트 값에 해당할 수 있다. 특정 양태에서, 프레임들의 특정 수 (M) 는 분석기 (122) 에 의해 또는 사용자 (예를 들어, 제 1 사용자 (152)) 에 의해 선택될 수 있다. 특정 양태에서, 프레임들의 특정 수 (M) 는 적응형일 수 있다. 예를 들어, 분석기 (122) 는 시간에 따라 프레임들의 특정 수 (M) 를 업데이트할 수 있다. 특정 양태에서, 분석기 (122) 는 버퍼 깊이 (110) 가 특정 시간 기간 (예를 들어, 5분) 동안 조절된 횟수에 기초하여 프레임들의 특정 수 (M) 를 업데이트할 수 있다. 예를 들어, 분석기 (122) 는 특정 시간주기 동안 버퍼 깊이 (110) 가 조절된 횟수가 조절 임계치를 만족시킨다고 결정하는 것에 응답하여 프레임들의 특정 수 (M) 를 업데이트 (예를 들어, 증가 또는 감소) 할 수 있다.
특정 양태에서, 검색된 부분 카피들의 카운트 (106) 는 가장 최근에 프로세싱된 패킷들의 특정 수 (M) 로부터 검색된 부분 카피들의 수를 나타낼 수 있다. 예를 들어, 분석기 (122) 에 의해 가장 최근에 프로세싱된 패킷들의 특정 수 (예를 들어, 10) 중에서, 분석기 (122) 는 패킷들의 제 1 수 (예를 들어, 7) 를 성공적으로 수신했었을 수도 있고, 분석기 (122) 는 분석기 (122) 에 의해 성공적으로 수신되지 않았던 패킷들의 제 2 수 (예를 들어, 2) 에 대해 검색된 부분 카피들을 가졌을 수도 있고, 그리고 부분 카피들은 분석기 (122) 에 의해 성공적으로 수신되지 않았던 패킷들의 나머지 수 (예를 들어, 1) 에 대해 이용가능하지 않았을 수도 있다. 이 예에서, 검색된 부분 카피들의 카운트 (106) 는 가장 최근에 프로세싱된 패킷의 특정 수 (예를 들어, 10) 중에서 제 2 수 (예를 들어, 2) 에 대해 부분 카피들이 검색되었음을 나타낼 수 있다.
대안의 양태에서, 검색된 부분 카피들의 카운트 (106) 는 특정 시간 기간 (예를 들어, 이전의 5 분) 동안 검색된 부분 카피들의 수를 나타낼 수도 있다. 예를 들어, 분석기 (122) 는 특정 시간 주기 (예를 들면, 이전의 5 분) 동안 패킷들의 특정 수 (예를 들어, 20) 를 수신할 수 있다. 패킷들의 특정 수 (예를 들어, 20) 중에서, 분석기 (122) 는 패킷들의 제 1 수 (예를 들어, 12) 를 성공적으로 수신했었을 수도 있고, 분석기 (122) 는 분석기 (122) 에 의해 성공적으로 수신되지 않았던 패킷들의 제 2 수 (예를 들어, 6) 에 대해 검색된 부분 카피들을 가졌을 수도 있고, 그리고 부분 카피들은 분석기 (122) 에 의해 성공적으로 수신되지 않았던 패킷들의 나머지 수 (예를 들어, 2) 에 대해 이용가능하지 않았을 수도 있다. 이 예에서, 검색된 부분 카피들의 카운트 (106) 는, 부분 카피들이 특정 시간 기간 (예를 들어, 이전의 5 분) 동안 분석기 (122) 에 의해 수신된 패킷들의 제 2 수 (예를 들어, 6) 에 대해 검색되었음을 나타낼 수 있다. 방법 (200) 은 214로 진행할 수도 있다.
방법 (200) 은 또한, 208에서 다음 스피치 프레임 R(N-D)의 부분 카피가 디-지터 버퍼에서 이용불가능하다고 결정하는 것에 응답하여, 212에서 M개의 이전 프레임들 동안 손실된 패킷들의 수 (p) 를 결정하는 것을 포함한다. 예를 들어, 도 1의 분석기 (122) 는, 도 1을 참조하여 기재된 바와 같이, 제 2 패킷 (134) 이 버퍼 (126) 에 저장되어 있지 않다고 결정하는 것에 응답하여, 손실 패킷들의 카운트 (114) 를 업데이트할 수 있다. 예시하기 위해, 분석기 (122) 는, 제 1 패킷 (132) 의 부분 카피 (예를 들어, 제 1 부분 카피 (174)) 가 패킷에 포함되어 있다는 것을 나타내는 패킷 (예를 들어, 제 2 패킷 (134)) 을 버퍼 (126) 가 저장하지 않는다고 결정할 수 있다.
방법 (200) 은 214에서 M개의 이전 프레임들 동안 손실된 패킷들의 수 (p) 와 M개의 이전 프레임들 동안 검색되된 부분 카피들의 수 (q) 에 기초하여 결과 값 (r) 을 결정하는 것을 더 포함한다. 예를 들어, 도 1의 분석기 (122) 는, 도 1을 참조하여 기재된 바와 같이, 손실 패킷들의 카운트 (114) (p), 검색된 부분 카피들의 카운트 (106) (q), 또는 양자 모두에 기초하여 결과 값 (118) (r) 을 결정할 수도 있다. 도 2에 예시된 예에서, r = f(p, q) 이다. 결과 값 (118) (r) 은 손실 패킷들의 카운트 (114) (p) 의 함수, 검색된 부분 카피들의 카운트 (106) (q) 의 함수, 또는 손실 패킷들의 카운트 (114) (p) 와 검색된 부분 카피들의 카운트 (106) (q) 의 함수일 수 있다. 예를 들어, 결과 값 (118) 은 손실된 패킷들의 카운트 (114) 및 검색된 부분 카피들의 카운트 (106) 의 가중된 합일 수 있다.
방법 (200) 은 또한 216에서 결과 값이 증분 임계치 (T1) 보다 큰지를 결정하는 것을 포함한다. 예를 들어, 도 1의 분석기 (122) 는, 도 1을 참조하여 기재된 바와 같이, 결과 값 (118) 이 증분 임계치 (136) 를 만족시키는지 (예를 들어, 초과하는지) 여부를 결정할 수 있다.
방법 (200) 은, 216에서 결과 값 (r) 이 증분 임계치 (T1) 보다 크다고 결정하는 것에 응답하여, 222에서 다음 토크 스퍼트에 대한 디-지터 버퍼의 깊이 (Dold) 와 증분량 (Δn1) 의 합에 기초하여 깊이 값 (Dnew) 을 결정하는 것을 더 포함한다. 예를 들어, 도 1의 분석기 (122) 는, 도 1을 참조하여 기재된 바와 같이, 결과 값 (118) 이 증분 임계치 (136) 를 만족한다고 (예를 들어, 증분 임계치 (136) 보다 크다고) 결정하는 것에 응답하여, 증분량 (140) 과 버퍼 깊이 (100) (예를 들어, Dold) 의 합에 기초하여 조절량 (예를 들어, Dnew) 을 결정할 수 있다. 방법 (200) 은 224로 진행할 수도 있다.
방법 (200) 은 또한, 216에서 결과 값 (r) 이 증분 임계치 (T1) 이하라고 결정하는 것에 응답하여, 220에서 결과 값 (r) 이 감분 임계치 (T2) 미만인지 여부를 결정하는 것을 포함한다. 예를 들어, 도 1의 분석기 (122) 는, 도 1을 참조하여 기재된 바와 같이, 결과 값 (118) 이 증분 임계치 (136) 를 만족하지 못한다고 (예를 들어, 증분 임계치 (136) 미만이라고) 결정하는 것에 응답하여, 결과 값 (118) 이 감분 임계치 (138) 를 만족하는지 (예를 들어, 감분 임계치 (138) 미만인지) 여부를 결정할 수 있다.
방법 (200) 은, 220에서 결과 값 (r) 이 감분 임계치 (T2) 보다 작다고 결정하는 것에 응답하여, 222에서 다음 토크 스퍼트에 대한 디-지터 버퍼의 깊이 (Dold) 와 증분량 (Δn2) 사이의 차이에 기초하여 깊이 값 (Dnew) 을 감소시키는 것을 더 포함한다. 예를 들어, 도 1의 분석기 (122) 는, 도 1을 참조하여 기재된 바와 같이, 결과 값 (118) 이 증분 임계치 (138) 를 만족한다고 (예를 들어, 증분 임계치 (138) 보다 작다고) 결정하는 것에 응답하여, 감분량 (150) 과 버퍼 깊이 (110) (예를 들어, Dold) 사이의 차이에 기초하여 조절량 (예를 들어, Dnew) 을 결정할 수 있다.
방법 (200) 은 또한 224에서 디-지터 버퍼의 깊이를 깊이 값 (Dnew) 으로 조절하는 것을 포함한다. 예를 들어, 도 1의 분석기 (122) 는, 도 1을 참조하여 기재된 바와 같이, 조절량 (예를 들어, Dnew) 에 기초하여 버퍼 깊이 (110) 를 조절할 수 있다. 방법 (200) 은 202로 진행할 수도 있다.
방법 (200) 은 또한, 220에서 결과 값 (r) 이 감분 임계치보다 크거나 같다고 결정하는 것에 응답하여, 202에서 후속 패킷을 수신하는 것을 포함한다. 예를 들어, 도 1의 분석기 (122) 는, 결과 값 (118) 이 증분 임계치 (136) 및 감분 임계치 (138) 를 만족하지 못한다고 결정하는 것에 응답하여 버퍼 깊이 (110) 를 조절하는 것을 억제할 수 있다.
버퍼 깊이 (110) (예를 들어, D) 는 제 1 깊이 값 (예를 들어, Dold) 을 가질 수 있다. 예를 들어, D = Dold 이다. 분석기 (122) 는 제 1 깊이 값 (예를 들어, Dold) 에 적어도 부분적으로 기초하여 제 2 깊이 값 (예를 들어, Dnew) 을 결정할 수 있다. 분석기 (122) 는 제 2 깊이 값 (예를 들어, Dnew) 에 기초하여 버퍼 깊이 (110) (예를 들어, D) 를 조절할 수 있다. 예를 들어, 버퍼 깊이 (110) 의 조절에 후속하여 D = Dnew이다.
방법 (200) 은 손실된 패킷의 카운트, 검색된 부분 카피들의 카운트, 또는 양자 모두에 기초하여 디-지터 버퍼의 깊이의 동적인 조절을 가능하게 할 수 있다. 버퍼 깊이는 네트워크 상태에 따라 응답할 수 있다. 높은 패킷 손실, 데이터 리던던시의 결여 또는 양자 모두의 조건 동안, 버퍼 깊이가 증가되어 목적지 디바이스에서 드롭된 패킷을 감소시키거나, 디-지터 버퍼에서 손실된 패킷들의 부분 카피들을 발견할 가능성을 증가시키거나, 또는 양자 모두를 할 수 있다. 대안으로, 낮은 패킷 손실, 높은 수준의 데이터 리던던시 또는 양자 모두의 조건들 동안, 버퍼 깊이가 감소되어 디-지터 버퍼에 의한 메모리 사용을 감소시킬 수 있다.
도 3을 참조하면, 리던던시 기반의 패킷 송신 에러 복구 방법의 특정 예시적인 양태가 개시되어 있고 일반적으로 300으로 지정되어 있다. 특정 양태에서, 방법 (300) 은 도 1의 분석기 (122) 에 의해 수행될 수 있다.
도 3은 손실된 패킷들의 카운트 (114), 검색된 부분 카피들의 카운트 (106) 또는 양자 모두에 기초한, 도 1의 재송신 임계치 (112) 의 조절을 예시한다. 방법 (300) 은 도 2의 방법 (200) 의 202, 204, 206, 208, 210, 212, 214, 216, 및 220을 포함한다.
방법 (300) 은 또한 208에서 다음 스피치 프레임 R(N-D)의 부분 카피가 디-지터 버퍼에서 이용불가능하다고 결정하는 것에 응답하여, 302에서 재송신 분석을 수행하는 것을 포함한다. 예를 들어, 도 1의 분석기 (122) 는, 도 4를 참조하여 기재된 바와 같이, 제 1 패킷 (132) 의 부분 카피가 다른 패킷에 포함됨을 나타내는 또 다른 패킷도 제 1 패킷 (132) 도 버퍼 (126) 가 저장하지 않는다고 결정하는 것에 응답하여 재송신 분석을 수행할 수 있다.
방법 (300) 은, 216에서 결과 값 (r) 이 증분 임계치 (T1) 보다 크다고 결정하는 것에 응답하여, 304에서 증분량 (Δn1) 과 재송신 임계치 (RTold) 의 합에 기초하여 재송신 값 (RTnew) 을 결정하는 것을 더 포함한다. 예를 들어, 도 1의 분석기 (122) 는, 도 1을 참조하여 기재된 바와 같이, 결과 값 (118) 이 증분 임계치 (136) 를 만족한다고 (예를 들어, 증분 임계치 (136) 보다 크다고) 결정하는 것에 응답하여, 증분량 (140) 과 재송신 임계치 (112) (예를 들어, RTold) 의 합에 기초하여 조절량 (예를 들어, RTnew) 을 결정할 수 있다. 방법 (300) 은 308로 진행할 수도 있다.
방법 (300) 은 또한, 220에서 결과 값 (r) 이 감분 임계치 (T2) 보다 작다고 결정하는 것에 응답하여, 306에서 감분량 (Δn2) 과 재송신 임계치 (RTold) 사이의 차이에 기초하여 재송신 값 (RTnew) 을 감소시키는 것을 포함한다. 예를 들어, 도 1의 분석기 (122) 는, 도 1을 참조하여 기재된 바와 같이, 결과 값 (118) 이 감분 임계치 (138) 를 만족한다고 (예를 들어, 감분 임계치 (138) 보다 작다고) 결정하는 것에 응답하여, 감분량 (150) 과 재송신 임계치 (112) (예를 들어, RTold) 사이의 차이에 기초하여 조절량 (예를 들어, RTnew) 을 결정할 수 있다.
방법 (300) 은 또한 308에서 재송신 값을 재송신 값 (RTnew) 으로 조절하는 것을 포함한다. 예를 들어, 도 1의 분석기 (122) 는, 도 1을 참조하여 기재된 바와 같이, 조절량 (예를 들어, RTnew) 에 기초하여 재송신 임계치 (112) 를 조절할 수 있다. 방법 (300) 은 202로 진행할 수도 있다.
재송신 임계치 (112) (예를 들어, RT) 는 제 1 재송신 임계 값 (예를 들어, RTold) 을 가질 수 있다. 예를 들어, RT = RTold 이다. 분석기 (122) 는 제 1 재송신 임계값 (예를 들어, RTold) 에 적어도 부분적으로 기초하여 제 2 재송신 값 (예를 들어, RTnew) 을 결정할 수 있다. 분석기 (122) 는 제 2 재송신 임계값 (예를 들어, RTnew) 에 기초하여 재송신 임계치 (112) (예를 들어, RT) 를 조절할 수 있다. 예를 들어, 재송신 임계치 (112) 의 조절에 후속하여 RT = RTnew이다. 특정 양태에서, 도 3의 증분 임계치 (T1) 는 도 2의 증분 임계치 (T1) 와 상이할 수도 있다. 대안의 양태에서, 도 3의 증분 임계치 (T1) 는 도 2의 증분 임계치 (T1) 와 동일할 수도 있다. 특정 양태에서, 도 3의 감분 임계치 (T2) 는 도 2의 감분 임계치 (T2) 와 상이할 수도 있다. 대안의 양태에서, 도 3의 감분 임계치 (T2) 는 도 2의 감분 임계치 (T2) 와 동일할 수도 있다.
방법 (300) 은 손실된 패킷들의 카운트, 검색된 부분 카피들의 카운트, 또는 양자 모두에 기초하여 재송신 임계치의 동적 조절을 가능하게 할 수 있다. 재송신 임계치는 네트워크 상태에 따라 응답할 수 있다. 높은 패킷 손실, 데이터 리던던시의 결여 또는 양자 모두의 조건 동안, 재송신 임계치는 증가되어 목적지 디바이스가 더 많은 재송신 요청을 전송가능하게 할 수 있다. 대안으로, 낮은 패킷 손실, 높은 정도의 데이터 리던던시 또는 양자 모두의 조건들 동안, 재송신 임계치가 감소되어 재송신 네트워크 트래픽을 감소시키거나, 프로세싱된 스피치 신호를 생성하는데 있어서의 지연을 감소시키거나, 또는 양자 모두를 할 수 있다.
도 4를 참조하면, 리던던시 기반의 패킷 송신 에러 복구 방법의 특정 예시적인 양태가 개시되어 있고 일반적으로 400으로 지정되어 있다. 특정 양태에서, 방법 (400) 은 도 1의 분석기 (122) 에 의해 수행될 수 있다. 특정 양태에서, 방법 (400) 은 도 3의 302에 대응할 수도 있다.
방법 (400) 은 402에서 재송신 카운트가 재송신 임계치 (RT) 보다 작은지 여부를 결정하는 것을 포함한다. 예를 들어, 도 1의 분석기 (122) 는, 도 1을 참조하여 기재된 바와 같이, 재송신 카운트 (154) 가 재송신 임계치 (112) 를 만족하는지 (예를 들어, 재송신 임계치 (112) 보다 작은지) 여부를 결정할 수 있다.
방법 (400) 은 또한, 402에서 재송신 카운트가 재송신 임계치 (RT) 보다 작다고 결정하는 것에 응답하여, 404에서 재송신 메시지를 전송하고, 406에서 재송신 카운트를 증분시키는 것을 포함한다. 예를 들어, 도 1의 분석기 (122) 는, 도 1을 참조하여 기재된 바와 같이, 재송신 카운트 (154) 가 재송신 임계치 (112) 를 만족한다고 (예를 들어, 재송신 임계치 (112) 보다 작다고) 결정하는 것에 응답하여, 재송신 메시지 (144) 를 전송할 수 있고 재송신 카운트 (154) 를 업데이트 (예를 들어, 증분) 할 수 있다.
방법 (400) 은, 402에서 재송신 카운트가 재송신 임계치 (RT) 보다 크거나 같다고 결정하는 것에 응답하여, 408에서 재송신 메시지를 전송하는 것을 억제하는 것을 더 포함한다. 예를 들어, 분석기 (122) 는, 도 1을 참조하여 기재된 바와 같이, 재송신 카운트 (154) 가 재송신 임계치 (112) 를 만족하지 못한다고 (예를 들어, 재송신 임계치 (112) 보다 크거나 같다고) 결정하는 것에 응답하여, 재송신 메시지 (예를 들어, 재송신 메시지 (144)) 를 전송하는 것을 억제할 수 있다.
이로써 방법 (400) 은 목적지 디바이스가 동적으로 조절된 재송신 임계치에 기초하여 재송신 요청들을 전송가능하게 할 수 있다. 목적지 디바이스에 의해 전송된 다수의 재송신 요청들 및 소스 디바이스에 의해 재송신된 패킷들의 수는 네트워크 상태에 응답할 수 있다. 높은 패킷 손실, 데이터 리던던시의 결여 또는 양자 모두의 조건 동안, 재송신 임계치는 증가되어 목적지 디바이스가 프로세싱된 스피치 신호의 에러를 감소시키기 위해 재송신된 패킷의 수를 증가시키기 위한 더 많은 재송신 요청을 전송가능하게 할 수 있다. 대안으로, 낮은 패킷 손실, 높은 정도의 데이터 리던던시 또는 양자 모두의 조건들 동안, 재송신 임계치는 재송신된 패킷들의 수를 감소시키기 위해 감소되어 결과적으로 재송신 네트워크 트래픽의 감소, 프로세싱된 스피치 신호를 생성하는 것과 관련된 지연의 감소, 또는 양자 모두를 초래할 수 있다.
도 5를 참조하여, 리던던시 기반의 에러 복구를 수행하도록 동작가능한 시스템의 특정 예시적인 양태가 개시되며 일반적으로 500으로 지정된다. 시스템 (500) 은, 본 명세서에 설명된 바와 같이, 에러 복구 파라미터 (108) 가 버퍼 지연 (512) 을 포함할 수 있다는 점에서 도 1의 시스템과 상이할 수 있다.
패킷들의 시퀀스는 입력 스피치 신호 (130) 에 대응할 수 있다. 패킷들의 시퀀스의 각 패킷은 도 1을 참조하여 기재된 바와 같이 시퀀스 번호를 포함할 수 있다. 예를 들어, 제 1 패킷 (132) 은 제 1 시퀀스 번호 (예를 들어, 제 1 세대 타임스탬프) 를 포함할 수 있고 제 2 패킷 (134) 은 제 2 시퀀스 번호 (예를 들어, 제 2 세대 타임스탬프) 를 포함할 수 있다. 제 1 세대 타임스탬프는 제 1 패킷 (132) 이 소스 디바이스 (104) 에 의해 생성되는 제 1 시간을 나타낼 수 있고, 제 2 생성 타임스탬프는 제 2 패킷 (134) 이 소스 디바이스 (104) 에 의해 생성되는 제 2 시간을 나타낼 수 있다. 제 1 부분 카피 (174) 는 제 1 시퀀스 번호 (예를 들어, 제 1 세대 타임스탬프) 를 포함할 수 있다.
목적지 디바이스 (102) 에 의해 수신되는 각각의 패킷은 수신기 (124), 분석기 (122) 또는 목적지 디바이스 (102) 의 다른 구성요소에 의해 수신 타임스탬프를 할당받을 수 있다. 예를 들어, 제 2 패킷 (134) 은 제 2 수신 타임스탬프를 할당받을 수 있다. 분석기 (122) 는 제 2 수신 타임스탬프에 기초하여 제 1 수신 타임스탬프를 결정할 수 있고 제 1 수신 타임스탬프를 제 1 부분 카피 (174) 에 할당할 수 있다. 제 1 수신 타임스탬프는 제 2 수신 타임스탬프와 동일하거나 별개일 수 있다. 예를 들어, 제 1 수신 타임스탬프는 제 2 수신 타임스탬프에 의해 나타낸 제 2 수신 시간보다 빠른 제 1 수신 시간을 나타낼 수 있다. 이 예에서, 제 1 수신 시간은, 제 1 패킷 (132) 이 적시에 수신되었을 추정 시간에 대응할 수 있다. 예시하기 위해, 제 1 패킷 (132) 이 지연되거나 손실되지 않은 경우, 제 1 수신 시간은 제 1 패킷 (132) 의 추정된 수신 시간에 대응할 수 있다.
분석기 (122) 는, 본원에 기재된 바와 같이, 패킷과 관련된 수신 타임스탬프, 버퍼 지연 (512), 버퍼 타임라인 (504), 및 최종 재생된 패킷 (506) 에 기초하여 패킷을 프로세싱할 수 있다. 버퍼 지연 (512) 은 패킷이 버퍼 (126) 에 저장될 임계 시간에 대응할 수 있다. 예를 들어, 버퍼 지연 (512) 은 제 1 임계 시간 (예를 들어, 5 밀리초) 을 나타낼 수 있다. 패킷은 제 1 수신 시간 (예를 들어, 1:00:00.000 PM) 에 수신될 수 있다. 제 1 수신 시간을 나타내는 수신 타임스탬프가 패킷과 관련될 수 있다. 제 2 시간 (예를 들어, 1:00:00.005 PM) 은 수신 타임스탬프에 의해 표시된 제 1 수신 시간과 버퍼 지연 (512) 의 합에 대응할 수 있다. 패킷은 제 2 시간에서 또는 제 2 시간에 후속하여 프로세싱될 수 있다.
버퍼 타임라인 (504) 은 프로세싱될 다음 패킷을 나타낼 수 있다. 예를 들어, 버퍼 타임라인 (504) 은, 버퍼 (126) 로부터 가장 최근에 프로세싱되었거나 삭제가 가장 최근에 재생된 특정 패킷의 시퀀스 번호를 나타낼 수 있다. 예시하기 위해, 분석기 (122) 는 버퍼 타임라인 (504) 을 업데이트하여, 버퍼 (126) 로부터 패킷을 프로세싱하거나, 버퍼 (126) 로부터 패킷의 부분 카피를 프로세싱하거나, 또는 패킷에 대응하는 삭제를 재생하는 것에 응답하여 패킷의 제 1 시퀀스 번호를 나타낼 수 있다. 이 예에서, 분석기 (122) 는 버퍼 타임라인 (504) 에 의해 나타낸 시퀀스 번호 (예를 들어, 제 1 시퀀스 번호) 에 기초하여 프로세싱될 다음 패킷의 다음 시퀀스 번호를 결정할 수 있다.
최종 재생된 패킷 (506) 은, 버퍼 (126) 로부터 가장 최근에 프로세싱된 특정 패킷을 나타낼 수 있다. 버퍼 (126) 로부터 특정 패킷을 프로세싱하는 것은 버퍼 (126) 로부터 특정 패킷을 프로세싱하거나 버퍼 (126) 로부터 특정 패킷의 부분 카피를 프로세싱하는 것을 포함할 수 있다. 분석기 (122) 는, 버퍼 (126) 로부터 패킷을 프로세싱하거나 또는 버퍼 (126) 로부터 패킷의 부분 카피를 프로세싱하는 것에 응답하여 패킷의 제 1 시퀀스 번호를 나타내기 위해 최종 재생된 패킷 (506) 을 업데이트할 수 있다.
분석기 (122) 는, 최종 재생된 패킷 (506) 이 분석기 (122) 에 의해 버퍼 (126) 로부터 가장 최근에 프로세싱된 이전의 패킷을 나타낸다고 결정할 수 있다. 분석기 (122) 는, 특정 패킷 (예를 들어, 제 1 패킷 (132)) 이 패킷들의 시퀀스에서의 이전 패킷에 후속한다고 결정할 수 있다. 분석기 (122) 는, 버퍼 타임라인 (504) 에 의해 나타낸 프로세싱될 다음 패킷이 패킷들의 시퀀스에서의 제 1 패킷 (132) 과 동일하거나 후속하는지 여부를 결정할 수 있다. 분석기 (122) 는, 대략 제 1 재생 시간 (502) 에, 버퍼 타임라인 (504) 에 의해 나타낸 프로세싱될 다음 패킷이 패킷들의 시퀀스에서의 제 1 패킷 (132) 보다 앞서 있다고고 결정하는 것에 응답하여 삭제를 재생할 수 있다.
분석기 (122) 는 삭제를 재생하는 것에 후속하여 버퍼 타임라인 (504) 을 업데이트할 수 있다. 예를 들어, 버퍼 타임라인 (504) 은, 소거가 재생되기 이전에, 제 1 특정 패킷이 프로세싱될 다음 패킷임을 나타낼 수 있다. 분석기 (122) 는, 소거를 재생하는 것에 후속하여, 제 2 특정 패킷이 프로세싱될 다음 패킷임을 표시하도록 버퍼 타임라인 (504) 을 업데이트할 수 있다. 제 2 특정 패킷은 패킷들의 시퀀스에서 제 1 특정 패킷 다음에 있을 수 있다.
대안으로, 분석기 (122) 는, 버퍼 타임라인 (504) 에 의해 나타낸 프로세싱될 다음 패킷이 패킷들의 시퀀스에서의 제 1 패킷 (132) 과 동일하거나 후속한다고 결정하는 것에 응답하여, 버퍼 (126) 가 제 1 패킷 (132) (또는 제 1 부분 카피 (174)) 을 생성하는지 여부를 결정할 수 있다. 분석기 (122) 는, 버퍼 (126) 가 제 1 부분 카피 (174) 를 저장한다고 결정하는 것에 응답하여, 제 1 부분 카피 (174) 가 제 1 수신 시간을 나타내는 제 1 수신 타임스탬프와 관련된다고 결정할 수 있다. 분석기 (122) 는, 대략 제 1 재생 시간 (502) 에서, 제 1 시간이 제 1 수신 시간과 버퍼 지연 (512) 의 합보다 크거나 같다고 결정하는 것에 응답하여 버퍼 (126) 로부터 제 1 부분 카피 (174) 를 프로세싱할 수 있다. 버퍼 지연 (512) 은 패킷이 버퍼 (126) 에 저장될 임계 시간에 대응할 수 있다. 특정 구현예에서, 분석기 (122) 는 제 1 부분 카피 (174) 가 임계치 시간에 대해 버퍼 (126) 에 저장되었는지 여부와 무관하게 제 1 부분 카피 (174) 를 프로세싱할 수 있다. 이 구현예에서, 제 1 수신 시간은 제 2 수신 시간보다 빠를 수 있다. 예를 들어, 제 1 패킷 (132) 이 적시에 수신되었다면, 제 1 수신 시간은 제 1 패킷 (132) 의 예상 수신 시간에 대응할 수 있다. 분석기 (122) 는, 제 1 패킷 (132) 이 적시에 수신되었다면 적어도 임계 시간 동안 제 1 패킷 (132) 이 버퍼 (126) 에 저장되었을 것이라고 결정하는 것에 응답하여 대략 제 1 재생 시간에 제 1 부분 카피 (174) 를 프로세싱할 수 있다. 버퍼 지연 (512) 은 디폴트 값을 포함할 수 있거나, 제 1 사용자 (152) 로부터의 사용자 입력에 기초할 수 있거나, 또는 양자 모두일 수 있다. 분석기 (122) 는 본원에 설명된 바와 같이 버퍼 지연 (512) 을 조절할 수 있다. 분석기 (122) 는, 버퍼 (126) 로부터 제 1 부분 카피 (174) 를 프로세싱하는 것에 후속하여, 제 1 패킷 (132) 을 나타내기 위해 최종 재생된 패킷 (508) 을 업데이트할 수 있고 제 2 특정 패킷 (예를 들어, 제 2 패킷 (134)) 을 프로세싱될 다음 패킷으로 나타내기 위해 버퍼 타임라인 (504) 을 업데이트할 수 있다. 제 2 특정 패킷 (예를 들어, 제 2 패킷 (134)) 은 패킷들의 시퀀스에서 제 1 패킷 (132) 다음에 있을 수 있다.
특정 구현예에서, 분석기 (122) 는, 제 1 패킷 (132) 및 제 1 부분 카피 (174) 가 버퍼 (126) 로부터 누락되어 있다고 결정하는 것에 응답하여, 제 1 패킷 (132) 에 대해 수행된 것과 유사한 분석을 제 2 특정 패킷 (예를 들어, 제 2 패킷 (134)) 에 대해 수행할 수 있다. 예를 들어, 분석기 (122) 는, 버퍼 타임라인 (504) 에 의해 나타낸 프로세싱될 다음 패킷이 패킷들의 시퀀스에서 제 2 특정 패킷 이전에 있다는 것을 결정하는 것에 응답하여 삭제를 플레이할 수 있고, 소거를 플레이한 후에 버퍼 타임라인 (504) 을 업데이트할 수 있다. 대안으로, 분석기 (122) 는, 대략 제 1 재생 시간 (502) 에서, 버퍼 타임라인 (504) 에 의해 나타낸 프로세싱될 다음 패킷이 제 2 특정 패킷과 동일하거나 이에 후속하고, 제 2 특정 패킷 또는 제 2 특정 패킷의 부분 카피가 버퍼 (126) 에 저장되고, 그리고 제 1 재생 시간 (502) 이 버퍼 지연 (512) 과 제 2 특정 패킷과 관련된 특정 수신 시간의 합보다 크거나 같다고 결정하는 것에 응답하여 버퍼 (126) 로부터 제 2 특정 패킷을 프로세싱할 수 있다.
목적지 디바이스 (102) 는 전화 통화 중에 패킷들의 시퀀스 (예를 들어, 제 1 패킷 (132), 제 2 패킷 (134) 또는 양자 모두) 를 수신할 수 있다. 제 1 패킷 (132), 제 2 패킷 (134) 또는 양자 모두는 스피치 데이터를 포함할 수 있다. 분석기 (122) 는, 본원에 기재된 바와 같이, 토크 스퍼트의 시작시 또는 전화 통화 중 토크 스퍼트의 종료시에 버퍼 지연 (512) 을 결정하거나 업데이트할 수 있다. 토크 스퍼트는, 배경 잡음이 들릴 수 있는 묵음 간격들 사이의 연속적인 스피치 세그먼트에 대응할 수 있다. 예를 들어, 제 1 토크 스퍼트는 제 1 사용자 (152) 의 스피치에 대응할 수 있고, 제 2 토크 스퍼트는 제 2 사용자 (154) 의 스피치에 대응할 수 있다. 제 1 토크 스퍼트 및 제 2 토크 스퍼트는 무음 또는 배경 소음의 기간에 의해 분리될 수 있다.
분석기 (122) 는 이전의 지연 손실율 (552) 을 결정할 수 있다. 이전의 지연 손실율 (552) 은 제 1 업데이트 시간에서의 버퍼 지연 (512) 의 이전 조절 동안 결정된 지연 손실율에 대응할 수 있다. 분석기 (122) 는 지연 손실 패킷들의 카운트 (510) 를 유지할 수 있다. 지연 손실 패킷들의 카운트 (510) 는 대응하는 재생 시간에서 버퍼 (126) 로부터의 패킷들의 부분 카피들의 프로세싱에 후속하여 수신되는 패킷들의 수를 나타낼 수 있다. 대응하는 재생 시간은 제 1 업데이트 시간에 후속될 수 있다. 예를 들어, 분석기 (122) 는, 제 1 업데이트 시간에 후속하여, 제 1 패킷 (132) 과 관련된 제 1 재생 시간에 버퍼 (126) 로부터 제 1 부분 카피 (174) 를 프로세싱할 수 있다. 분석기 (122) 는 제 1 시간이 하나 이상의 조건들이 만족된다고 결정하는 것에 기초하여 제 1 재생 시간에 대응한다고 결정할 수 있다. 예를 들어, 제 1 시간에서, 버퍼 타임라인 (504) 에 의해 나타낸 바와 같이 최종 재생된 패킷 (506) 이 제 1 패킷 (132) 보다 이전에 존재하고 제 1 패킷 (132) 이 프로세싱될 다음 패킷보다 이전에 또는 동일하게 존재하는 경우, 제 1 시간은 제 1 재생 시간에 대응할 수 있다. 제 1 시간이 제 1 패킷 (132) 과 관련된 수신 시간 (예를 들어, 제 1 부분 카피 (174) 의 제 1 수신 시간) 과 버퍼 지연 (512) 의 합보다 크거나 같은 경우, 제 1 시간은 제 1 재생 시간에 대응할 수 있다. 제 1 패킷 (132) 이 제 1 시간에서 선행 조건들을 만족시키는 패킷들의 시퀀스에서 가장 빠른 패킷인 경우, 제 1 시간은 제 1 재생 시간에 대응할 수 있다. 분석기 (122) 는, 제 1 부분 카피 (174) 를 프로세싱한 후에 제 1 패킷 (132) 을 수신한 것에 응답하여 지연 손실 패킷들 (510) 의 카운트를 업데이트 (예를 들어, 증분) 할 수 있다.
분석기 (122) 는 수신된 패킷들의 카운트 (514) 를 유지할 수 있다. 예를 들어, 분석기 (122) 는 제 1 업데이트 시간에 후속하여 수신된 패킷들의 카운트 (514) 를 재설정할 수 있다. 분석기 (122) 는, 패킷 (예를 들어, 제 2 패킷 (134)) 의 수신에 응답하여 수신된 패킷들의 카운트 (514) 를 업데이트 (예를 들어, 1씩 증분) 할 수 있다. 분석기 (122) 는 지연 손실 패킷들의 카운트 (510) 및 수신된 패킷들의 카운트 (514) 에 기초하여 제 2 지연 손실율 (554) 을 결정할 수 있다. 예를 들어, 제 2 지연 손실율 (554) 은 지연 손실 패킷들의 카운트 (510) 및 수신된 패킷들의 카운트 (514) 의 측정치 (예를 들어, 비율) 에 대응할 수 있다. 예시하기 위해, 제 2 지연 손실율 (554) 은 특정 시간 간격 동안 지연 손실 패킷들 (예를 들어, 패킷들의 부분 카피들의 프로세싱에 후속하여 쉰되는 패킷들) 의 평균 수를 나타낼 수 있다. 제 2 지연 손실율 (554) 은 특정 시간 간격 동안 네트워크 지터를 나타낼 수 있다. 이전의 지연 손실율 (552) 과 제 2 지연 손실율 (554) 사이의 차이는 수신된 패킷들의 지연의 변화를 나타낼 수 있다. 이전의 지연 손실율 (552) 과 제 2 지연 손실율 (554) 사이의 차이는 지연 손실 패킷들의 평균 개수가 증가하는지 또는 감소하는지 여부를 나타낼 수 있다.
분석기 (122) 는 이전의 지연 손실율 (552) 및 제 2 지연 손실율 (554) 에 기초하여 지연 손실율 (556) 을 결정할 수 있다. 예를 들어, 지연 손실율 (556) 은 이전의 지연 손실율 (552) 과 제 2 지연 손실율 (554) 의 가중 합에 대응할 수 있다. 분석기 (122) 는 이전의 지연 손실율 (552) 에 제 1 가중치 (예컨대, 0.75) 를 할당하고 제 2 지연 손실율 (554) 에 제 2 가중치 (예컨대, 0.25) 를 할당할 수 있다. 제 1 가중치는 제 2 가중치와 동일하거나 별개일 수 있다. 특정 구현예에서, 제 1 가중치는 제 2 가중치보다 높을 수 있다. 이전의 지연 손실율 (552) 과 제 2 지연 손실율 (554) 의 가중 합에 기초하여 지연 손실율 (556) 을 결정하는 것은 일시적인 네트워크 상태에 기초하여 지연 손실율 (556) 의 발진을 감소시킬 수 있다. 예를 들어, 패킷들의 번들링은 다수의 패킷들 (예를 들어, 3) 이 동일한 시간에 도착하게 하고, 이후의 간격 동안 패킷들이 도달하지 않게 할 수 있다. 제 1 시간에 결정된 제 2 지연 손실율 (554) 은 다수의 패킷들이 수신되는 동안의 구간에 대응할 수 있고 제 2 시간에 결정된 제 2 지연 손실율 (554) 은 어떠한 패킷 도착이 없는 구간에 대응할 수 있기 때문에, 제 2 지연 손실율 (554) 은 제 1 시간에서 제 2 시간까지 변동할 수 있다. 이전의 지연 손실율 (552) 과 제 2 지연 손실율 (554) 의 가중 합에 기초하여 지연 손실율 (556) 을 결정하는 것은 지연 손실율 (556) 에 대한 패킷 번들링의 효과를 감소시킬 수 있다.
분석기 (122) 는, 지연 손실율 (556) 이 목표 지연 손실율 (528) (예를 들어, 0.01) 을 만족시키지 못한다는 (예를 들어, 미만이라는) 결정에 응답하여 감분량 (516) (예를 들어, 20 밀리초) 만큼 버퍼 지연 (512) 을 감소시킬 수 있다. 예를 들어, 목표 지연 손실율 (528) 은 수신된 패킷들에 대한 지연 손실 패킷들의 제 1 퍼센트 (예를 들어, 1 퍼센트) 에 대응할 수 있다. 분석기 (122) 는, 지연 손실율 (556) 이 목표 지연 손실율 (528) 을 만족하거나 (예를 들어, 초과하거나), 지연 손실율 (556) 이 이전의 지연 손실율 (552) 보다 크거나 동일하거나, 또는 양자 모두라는 것을 결정하는 것에 응답하여 증분량 (518) (예를 들어, 20 밀리초) 만큼 버퍼 지연 (512) 을 증가시킬 수 있다. 감분량 (516), 증분량 (518), 목표 지연 손실 속도 (528), 또는 이들의 조합은 디폴트 값을 포함할 수 있거나, 제 1 사용자 (152) 로부터의 사용자 입력에 기초한 것일 수 있거나, 또는 양자 모두일 수 있다. 감분량 (516) 은 증분량 (518) 과 동일하거나 별개일 수 있다.
분석기 (122) 는, 버퍼 지연 (512) 을 버퍼 지연 (512) 과 지연 하한값 (538) (예를 들어, 20 밀리초) 중 최대값으로 설정할 수 있다. 예를 들어, 분석기 (122) 는, 버퍼 지연 (512) 이 지연 하한값 (538) 보다 낮다는 결정에 응답하여 버퍼 지연 (512) 을 지연 하한값 (538) 으로 설정할 수 있다. 분석기 (122) 는, 버퍼 지연 (512) 을 버퍼 지연 (512) 과 지연 상한값 (536) (예를 들어, 80 밀리초) 중 최소값으로 설정할 수 있다. 예를 들어, 분석기 (122) 는, 버퍼 지연 (512) 이 지연 상한값 (536) 을 초과한다는 결정에 응답하여 버퍼 지연 (512) 을 지연 상한값 (536) 으로 설정할 수 있다. 지연 하한값 (538), 지연 상한값 (536), 또는 양자 모두가 디폴트 값들이거나, 제 1 사용자 (152) 로부터의 사용자 입력에 기초할 수 있거나, 또는 양자 모두일 수 있다.
따라서, 시스템 (500) 은, 지연된 패킷들이 대응하는 재생 시간 이전에 수신될 가능성이 있도록 긴 버퍼 지연을 갖는 것과 패킷들의 시퀀스와 관련된 종단간 지연을 감소시키는 짧은 버퍼 지연을 갖는 것 사이의 발란스를 제공할 수도 있다.
도 6을 참조하면, 리던던시 기반의 패킷 송신 에러 복구 방법의 특정 예시적인 양태의 흐름도가 도시되어 있고 일반적으로 600으로 지정되어 있다. 특정 양태에서, 방법 (600) 은 도 1의 분석기 (122) 에 의해 실행될 수 있다.
방법 (600) 은 602에서 패킷들의 시퀀스의 특정 패킷이 버퍼로부터 누락되는지 여부를 결정하는 것을 포함한다. 예를 들어, 도 1의 분석기 (122) 는, 도 1을 참조하여 기재된 바와 같이, 패킷들의 시퀀스의 특정 패킷 (예를 들어, 제 1 패킷 (132)) 이 버퍼 (126) 로부터 누락되는지 여부를 결정할 수 있다.
또한, 방법 (600) 은, 602에서 특정 패킷이 버퍼로부터 누락되지 않았다고 결정하는 것에 응답하여, 604에서 특정 패킷을 스피치 디코더로 전송하는 것을 포함한다. 예를 들어, 도 1의 분석기 (122) 는, 도 1을 참조하여 기재된 바와 같이, 제 1 패킷 (132) 이 버퍼 (126) 로부터 누락되지 않았다고 결정하는 것에 응답하여 제 1 패킷 (132) 을 스피치 디코더 (156) 에 전송할 수 있다.
방법 (600) 은, 602에서 특정 패킷이 버퍼로부터 누락된다고 결정하는 것에 응답하여, 606에서 특정 패킷의 부분 카피가 또 다른 패킷에서의 에러 정정 데이터로서 버퍼에 저장되는지 여부를 결정하는 것을 더 포함한다. 예를 들어, 도 1의 분석기 (122) 는, 도 1을 참조하여 기재된 바와 같이, 제 1 패킷 (132) 이 버퍼 (126) 로부터 누락된다고 결정하는 것에 응답하여, 제 1 패킷 (132) 의 부분 카피 (예를 들어, 제 1 부분 카피 (174)) 가 다른 패킷 (예를 들어, 제 2 패킷 (134)) 의 에러 보정 데이터로서 버퍼에 저장되는지 여부를 결정할 수 있다.
방법 (600) 은, 606에서 부분 카피가 버퍼에 저장된다고 결정하는 것에 응답하여, 608에서 검색된 부분 카피들의 카운트를 업데이트하는 것을 포함한다. 방법 (600) 은 610으로 진행할 수도 있다. 예를 들어, 도 1의 분석기 (122) 는, 도 1을 참조하여 기재된 바와 같이, 제 1 부분 카피 (174) 를 포함하는 제 2 패킷 (134) 이 버퍼 (126) 에 저장된다고 결정하는 것에 응답하여, 검색된 부분 카피들 카운트 (106) 의 카운트를 업데이트할 수 있다.
방법 (600) 은, 606에서 부분 카피가 버퍼에 저장되지 않는다고 결정하는 것에 응답하여, 612에서 손실된 패킷들의 카운트를 업데이트하는 것을 더 포함한다. 예를 들어, 도 1의 분석기 (122) 는, 도 1을 참조하여 기재된 바와 같이, 제 1 부분 카피 (174) 를 포함하는 제 2 패킷 (134) 이 버퍼 (126) 에 저장되지 않는다고 결정하는 것에 응답하여, 손실된 패킷들의 카운트 (114) 를 업데이트할 수 있다.
방법 (600) 은 또한 610에서 검색된 부분 카피들의 카운트, 손실된 패킷들의 카운트, 또는 양자 모두에 기초하여 에러 복구 파라미터를 조절하는 것을 포함한다. 예를 들어, 도 1의 분석기 (122) 는 검색된 부분 카피들의 카운트 (106), 손실된 패킷들의 카운트 (114), 또는 양자 모두에 기초하여 에러 복구 파라미터 (108) 를 조절할 수 있다.
방법 (600) 은 614에서 재송신 카운트가 재송신 임계치보다 작은지 여부를 결정하는 것을 더 포함한다. 예를 들어, 도 1의 분석기 (122) 는, 도 1 및 도 4를 참조하여 기재된 바와 같이, 재송신 카운트 (154) 가 재송신 임계치 (112) 를 만족하는지 (예를 들어, 재송신 임계치 (112) 보다 작은지) 여부를 결정할 수 있다.
방법 (600) 은 또한, 614에서 재송신 카운트가 재송신 임계치보다 작다고 결정하는 것에 응답하여, 616에서 재송신 메시지를 소스 디바이스로 전송하고, 618에서 재송신 카운트를 업데이트하는 것을 포함한다. 예를 들어, 도 1의 분석기 (122) 는, 도 1을 참조하여 기재된 바와 같이, 재송신 카운트 (154) 가 재송신 임계치 (112) 를 만족한다고 (예를 들어, 재송신 임계치 (112) 보다 작다고) 결정하는 것에 응답하여, 재송신 메시지 (144) 를 소스 디바이스 (104) 로 전송하고 재송신 카운트 (154) 를 업데이트할 수 있다. 재송신 요청은 특정 패킷의 재송신을 요청할 수 있다.
방법 (600) 은, 614에서 재송신 카운트가 재송신 임계치보다 크거나 같다고 결정하는 것에 응답하여, 620에서 재송신 메시지를 소스 디바이스로 전송하는 것을 억제하는 것을 포함한다. 예를 들어, 도 1의 분석기 (122) 는, 도 1을 참조하여 기재된 바와 같이, 재송신 카운트 (154) 가 재송신 임계치 (112) 를 만족하지 못한다고 (예를 들어, 재송신 임계치 (112) 보다 크거나 같다고) 결정하는 것에 응답하여, 재송신 메시지 (144) 를 소스 디바이스 (104) 로 전송하는 것을 억제할 수 있다.
이로써 방법 (600) 은 손실 패킷들의 카운트, 검색된 부분 카피들의 카운트, 또는 양자 모두에 기초하여 에러 복구 파라미터의 동적 조절을 가능하게 할 수 있다.
도 6의 방법 (600) 은 필드 프로그램가능 게이트 어레이 (FPGA) 디바이스, 주문형 집적 회로 (ASIC), 중앙 프로세싱 유닛 (CPU) 과 같은 프로세싱 유닛, 디지털 신호 프로세서 (DSP), 제어기, 다른 하드웨어 디바이스, 펌웨어 디바이스, 또는 이들의 임의의 조합에 의해 구현될 수도 있다. 예로서, 도 6의 방법 (600) 은 도 9와 관련하여 기재된 바와 같이 명령들을 실행하는 프로세서에 의해 수행될 수 있다.
도 7을 참조하면, 리던던시 기반의 패킷 송신 에러 복구 방법의 특정 예시적인 양태의 흐름도가 도시되어 있고 일반적으로 700으로 지정되어 있다. 특정 양태에서, 방법 (700) 은 도 1의 분석기 (122) 에 의해 실행될 수 있다. 특정 양태에서, 방법 (700) 은 도 6의 610에 대응할 수도 있다.
방법 (700) 은 702에서 검색된 부분 카피들의 카운트에 품질 메트릭을 곱함으로써 가중치를 생성하는 것을 포함한다. 예를 들어, 도 1의 분석기 (122) 는, 도 1을 참조하여 기재된 바와 같이, 검색된 부분 카피들의 카운트 (106) 에 품질 메트릭 (128) 을 곱함으로써 가중치를 생성할 수 있다.
방법 (700) 은 704에서 손실된 패킷들의 카운트와 가중치를 합산함으로써 결과 값을 생성하는 것을 포함한다. 예를 들어, 도 1의 분석기 (122) 는, 도 1을 참조하여 기재된 바와 같이, 손실 패킷들의 카운트 (114) 와 가중치를 합산함으로써 결과 값 (118) 을 생성할 수 있다.
방법 (700) 은 706에서 결과 값이 증분 임계치보다 큰지를 결정하는 것을 더 포함한다. 예를 들어, 도 1의 분석기 (122) 는 결과 값 (118) 이 증분 임계치 (136) 를 만족시키는지 (예를 들어, 초과하는지) 여부를 결정할 수 있다.
방법 (700) 은 또한, 706에서 결과 값이 증분 임계치보다 크다고 결정하는 것에 응답하여, 708에서 결과 값과 증분 임계치 사이의 차이에 기초하여 증분량을 결정하는 것을 포함한다. 예를 들어, 도 1의 분석기 (122) 는, 결과 값 (118) 이 증분 임계치 (136) 를 만족한다고 (예를 들어, 증분 임계치 (136) 보다 크다고) 결정하는 것에 응답하여, 결과 값 (118) 과 증분 임계치 (136) 사이의 차이에 기초하여 증분량 (140) 을 결정할 수 있다.
방법 (700) 은 710에서 증분량에 기초하여 에러 복구 파라미터를 조절하는 것을 더 포함한다. 예를 들어, 도 1의 분석기 (122) 는, 도 1을 참조하여 기재된 바와 같이, 증분량 (140) 에 기초하여 에러 복구 파라미터 (108) 를 조절할 수 있다.
방법 (700) 은 또한, 706에서 결과 값이 증분 임계치 이하라고 결정하는 것에 응답하여, 712에서 결과 값이 감분 임계치 미만인지 여부를 결정하는 것을 포함한다. 예를 들어, 도 1의 분석기 (122) 는, 도 1을 참조하여 기재된 바와 같이, 결과 값 (118) 이 증분 임계치 (136) 를 만족하지 못한다고 (예를 들어, 증분 임계치 (136) 미만이라고) 결정하는 것에 응답하여, 결과 값 (118) 이 감분 임계치 (138) 를 만족하는지 (예를 들어, 감분 임계치 (138) 미만인지) 여부를 결정할 수 있다.
방법 (700) 은, 712에서 결과 값이 감분 임계치보다 크거나 같다고 결정하는 것에 응답하여, 714에서 에러 복구 파라미터를 조절하는 것을 억제하는 것을 더 포함한다. 예를 들어, 도 1의 분석기 (122) 는, 도 1을 참조하여 기재된 바와 같이, 결과 값 (118) 이 감분 임계치 (138) 를 만족하지 못한다고 (예를 들어, 감분 임계치 (138) 보다 크거나 같다고) 결정하는 것에 응답하여, 에러 복구 파라미터 (108) 를 조절하는 것을 억제할 수 있다.
방법 (700) 은 또한, 712에서 결과 값이 감분 임계치보다 작다고 결정하는 것에 응답하여, 716에서 결과 값과 감분 임계치 사이의 차이에 기초하여 감분량을 결정하는 것을 포함한다. 예를 들어, 도 1의 분석기 (122) 는, 결과 값 (118) 이 감분 임계치 (138) 를 만족한다고 (예를 들어, 감분 임계치 (136) 보다 작다고) 결정하는 것에 응답하여, 결과 값 (118) 과 감분 임계치 (138) 사이의 차이에 기초하여 감분량 (150) 을 결정할 수 있다.
방법 (700) 은 718에서 감분량에 기초하여 에러 복구 파라미터를 조절하는 것을 더 포함한다. 예를 들어, 도 1의 분석기 (122) 는, 도 1을 참조하여 기재된 바와 같이, 감분량 (150) 에 기초하여 에러 복구 파라미터 (108) 를 조절할 수 있다.
이로써 방법 (700) 은 손실 패킷들의 카운트, 검색된 부분 카피들의 카운트, 또는 양자 모두에 기초하여 에러 복구 파라미터의 동적 조절을 가능하게 할 수 있다.
도 7의 방법 (700) 은 필드 프로그램가능 게이트 어레이 (FPGA) 디바이스, 주문형 집적 회로 (ASIC), 중앙 프로세싱 유닛 (CPU) 과 같은 프로세싱 유닛, 디지털 신호 프로세서 (DSP), 제어기, 다른 하드웨어 디바이스, 펌웨어 디바이스, 또는 이들의 임의의 조합에 의해 구현될 수도 있다. 예로서, 도 7의 방법 (700) 은 도 9와 관련하여 기재된 바와 같이 명령들을 실행하는 프로세서에 의해 수행될 수 있다.
도 8을 참조하면, 리던던시 기반의 패킷 송신 에러 복구 방법의 특정 예시적인 양태의 흐름도가 도시되어 있고 일반적으로 800으로 지정되어 있다. 특정 양태에서, 방법 (800) 은 도 1 및 도 5의 분석기 (122) 에 의해 실행될 수 있다.
방법 (800) 은 802에서 제 1 업데이트 시간에 에러 복구 파라미터의 이전의 조절에 대응하는 제 1 지연 손실율을 결정하는 것을 포함한다. 예를 들어, 분석기 (122) 는 도 5를 참조하여 기재된 바와 같이 이전의 지연 손실율 (552) 을 결정할 수 있다. 이전의 지연 손실율 (552) 은 제 1 업데이트 시간에서의 에러 복구 파라미터 (108) (예를 들어, 버퍼 지연 (512)) 의 이전의 조절에 대응할 수 있다.
방법 (800) 은 또한 804에서 복수의 패킷들의 특정 패킷들에 대응하는 제 2 지연 손실율을 결정하는 것을 포함한다. 예를 들어, 분석기 (122) 는 도 5를 참조하여 기재된 바와 같이 제 2 지연 손실율 (554) 을 결정할 수 있다. 제 2 지연 손실율 (554) 은 입력 스피치 신호 (130) 와 관련된 복수의 패킷들의 특정 패킷들에 대응할 수 있다. 특정 패킷들은 제 1 업데이트 시간에 후속하는 재생 시간을 가질 수 있다.
방법 (800) 은 806에서 제 1 지연 손실율과 제 2 지연 손실율의 가중 합에 기초하여 지연 손실율을 결정하는 것을 더 포함한다. 예를 들어, 분석기 (122) 는, 도 5를 참조하여 기재된 바와 같이, 이전의 지연 손실율 (552) 과 제 2 지연 손실율 (554) 의 가중 합에 기초하여 지연 손실율 (556) 을 결정할 수 있다.
방법 (800) 은 또한 810에서 지연 손실율이 목표 손실율보다 더 낮은지 여부를 결정하는 것을 포함한다. 예를 들어, 분석기 (122) 는 도 5를 참조하여 기재된 바와 같이 지연 손실율 (556) 이 목표 지연 손실율 (528) 보다 낮은지 여부를 결정할 수 있다.
방법 (800) 은, 810에서 지연 손실율이 목표 손실율보다 낮다고 결정하는 것에 응답하여, 812에서 감분량만큼 버퍼 지연을 감분시키는 것을 더 포함한다. 예를 들어, 분석기 (122) 는, 도 5를 참조하여 기재된 바와 같이, 지연 손실율 (556) 이 목표 지연 손실율 (528) 보다 낮다고 결정하는 것에 응답하여, 버퍼 지연 (512) 을 감분량 (516) 만큼 감소시킬 수 있다. 방법 (800) 은 818로 진행할 수도 있다.
방법 (800) 은 또한, 지연 손실율이 목표 지연 손실율보다 크거나 같다고 결정하는 것에 응답하여, 지연 손실율이 목표 지연 손실율보다 큰지의 여부 및 지연 손실율이 제 1 지연 손실율보다 큰지의 여부를 결정하는 것을 포함한다. 예를 들어, 분석기 (122) 는, 도 5를 참조하여 기재된 바와 같이, 지연 손실율 (556) 이 목표 지연 손실율 (528) 보다 크거나 같다고 결정하는 것에 응답하여, 지연 손실율 (556) 이 목표 지연 손실율 (528) 보다 큰지의 여부 및 지연 손실율 (556) 이 이전의 지연 손실율 (552) 보다 큰지의 여부를 결정할 수 있다. 방법 (800) 은, 814에서 지연 손실율이 목표 지연 손실율과 같거나 또는 지연 손실율이 제 1 지연 손실율보다 작거나 같다고 결정하는 것에 응답하여, 818로 진행할 수 있다.
방법 (800) 은, 814에서 지연 손실율이 목표 지연 손실율보다 크고 지연 손실율이 제 1 지연 손실율보다 크다고 결정하는 것에 응답하여, 816에서 버퍼 지연을 증분량만큼 증분시키는 것을 더 포함한다. 예를 들어, 분석기 (122) 는, 도 5를 참조하여 기재된 바와 같이, 지연 손실율 (556) 이 목표 지연 손실율 (528) 보다 크고 지연 손실율 (556) 이 이전의 지연 손실율 (552) 보다 크다고 결정하는 것에 응답하여, 버퍼 지연 (512) 을 증분량 (518) 만큼 증가시킬 수 있다. 특정 구현예에서, 분석기 (122) 는, 지연 손실율 (556) 이 목표 지연 손실율 (528) 보다 크다고 결정하는 것에 응답하여, 버퍼 지연 (512) 을 증분량 (518) 만큼 증가시킬 수 있다.
방법 (800) 은 또한 818에서 버퍼 지연을 지연 하한값과 버퍼 지연 중 최대값으로 설정하는 것을 포함한다. 예를 들어, 분석기 (122) 는, 도 5를 참조하여 기재된 바와 같이, 버퍼 지연 (512) 을 지연 하한값 (538) 과 버퍼 지연 (512) 중 최대값으로 설정할 수 있다.
방법 (800) 은 820에서 버퍼 지연을 지연 상한값과 버퍼 지연 중 최소값으로 설정하는 것을 더 포함한다. 예를 들어, 분석기 (122) 는, 도 5를 참조하여 기재된 바와 같이, 버퍼 지연 (512) 을 지연 상한값 (536) 과 버퍼 지연 (512) 중 최소값으로 설정할 수 있다.
이로써 방법 (800) 은 지연 손실율 및 목표 지연 손실율에 기초하여 에러 복구 파라미터 (예를 들어, 버퍼 지연) 의 동적 조절을 가능하게 할 수 있다. 지연 손실율은 수신된 패킷들의 수에 대한 지연 손실 패킷들의 수에 대응할 수 있다. 지연 손실 패킷들은 대응하는 재생 시간들에서 패킷들의 부분 카피들의 프로세싱에 후속하여 수신되는 패킷들을 포함할 수 있다. 지연 손실율 및 목표 지연 손실율에 기초한 버퍼 지연의 동적 조절은, 지연된 패킷들이 대응하는 재생 시간 이전에 수신될 가능성이 있도록 긴 버퍼 지연을 갖는 것과 패킷들의 시퀀스와 관련된 종단간 지연을 감소시키는 짧은 버퍼 지연을 갖는 것 사이의 발란스를 제공할 수도 있다.
도 8의 방법 (800) 은 필드 프로그램가능 게이트 어레이 (FPGA) 디바이스, 주문형 집적 회로 (ASIC), 중앙 프로세싱 유닛 (CPU) 과 같은 프로세싱 유닛, 디지털 신호 프로세서 (DSP), 제어기, 다른 하드웨어 디바이스, 펌웨어 디바이스, 또는 이들의 임의의 조합에 의해 구현될 수도 있다. 예로서, 도 8의 방법 (800) 은 도 9와 관련하여 기재된 바와 같이 명령들을 실행하는 프로세서에 의해 수행될 수 있다.
도 9를 참조하면, 디바이스 (예를 들어, 무선 통신 디바이스) 의 특정 예시적인 양태의 블록도가 도시되며 일반적으로 900으로 지정된다. 다양한 양태들에서, 디바이스 (900) 는 도 9에 예시된 것보다 작거나 많은 컴포넌트들을 가질 수 있다. 예시적인 양태에서, 디바이스 (900) 는 도 1의 소스 디바이스 (104), 목적지 디바이스 (102), 또는 양자 모두에 대응할 수도 있다. 예시적인 양태에서, 디바이스 (900) 는 도 1-도 8을 참조하여 기재된 하나 이상의 동작들을 수행할 수 있다.
특정 양태에서, 디바이스 (900) 는 프로세서 (906) (예를 들어, 중앙 프로세싱 유닛 (CPU)) 를 포함한다. 디바이스 (900) 는 하나 이상의 추가 프로세서들 (910) (예를 들어, 하나 이상의 디지털 신호 프로세서들 (DSPs)) 을 포함할 수 있다. 프로세서들 (980) 은 스피치 및 음악 코더-디코더 (CODEC) (908) 및 에코 소거기 (912) 를 포함할 수도 있다. 스피치 및 음악 코덱 (908) 은 보코더 인코더 (936), 보코더 디코더 (938), 또는 양자 모두를 포함할 수도 있다.
디바이스 (900) 는 메모리 (176) 및 CODEC (934) 을 포함할 수도 있다. 메모리 (176) 는 분석 데이터 (120) 를 포함할 수도 있다. 디바이스 (900) 는 송수신기 (950) 를 통해 안테나 (942) 에 커플링된 무선 제어기 (940) 를 포함할 수도 있다. 특정 양태에서, 송수신기 (950) 는 도 1의 수신기 (124), 송신기 (192), 또는 양자 모두를 포함할 수도 있다.
디바이스 (900) 는 디스플레이 제어기 (926) 에 커플링된 디스플레이 (928) 를 포함할 수도 있다. 도 1의 스피커 (142), 마이크로폰 (946), 또는 양자 모두는 CODEC (934) 에 커플링될 수도 있다. CODEC (934) 은 디지털 투 아날로그 변환기 (902) 및 아날로그 투 디지털 변환기 (904) 를 포함할 수도 있다. 예시된 양태에서, 마이크로폰 (946) 은 도 1의 마이크로폰 (146) 에 대응할 수도 있다. 특정 양태에서, CODEC (934) 은 마이크로폰 (946) 으로부터 아날로그 신호들을 수신하고, 아날로그 투 디지털 변환기 (904) 를 이용하여 아날로그 신호들을 디지털 신호들로 변환하고, 그리고 디지털 신호들을 스피치 및 음악 코덱 (908) 에 제공할 수도 있다. 스피치 및 음악 코덱 (908) 은 디지털 신호들을 프로세싱할 수도 있다. 특정 양태에서, 스피치 및 음악 코덱 (908) 은 CODEC (934) 에 디지털 신호들을 제공할 수도 있다. CODEC (934) 은 디지털 투 아날로그 변환기 (902) 를 이용하여 디지털 신호들을 아날로그 신호들로 변환하고, 그리고 아날로그 신호들을 스피커 (142) 에 제공할 수도 있다.
디바이스 (900) 는 분석기 (122), 버퍼 (126), 스피치 디코더 (156), 또는 이들의 조합을 포함할 수도 있다. 특정 양태에서, 분석기 (122), 스피치 디코더 (156), 또는 양자 모두는 프로세서 (906), 프로세서들 (910), CODEC (934), 스피치 및 음악 코덱 (908), 또는 이들의 조합에 포함될 수도 있다. 특정 양태에서, 분석기 (122), 스피치 디코더 (156), 또는 양자 모두는 보코더 인코더 (936), 보코더 디코더 (938), 또는 양자 모두에 포함될 수도 있다. 특정 구현예에서, 스피치 디코더 (156) 는 보코더 인코더 (938) 와 기능적으로 동일할 수도 있다. 스피치 디코더 (156) 는 프로세서들 (910) (예를 들어, DSP들) 외부의 전용 하드웨어 회로에 대응할 수도 있다.
분석기 (122), 버퍼 (126), 스피치 디코더 (156), 또는 이들의 조합은 본원에 기재된 리던던시 기반의 에러 복구 기술의 하드웨어 양태를 구현하는데 사용될 수 있다. 대안으로, 또는 부가하여, 소프트웨어 양태 (또는 조합된 소프트웨어/하드웨어 양태) 가 구현될 수 있다. 예를 들어, 메모리 (176) 는 프로세서들 (910) 또는 디바이스 (900) 의 다른 프로세싱 유닛 (예를 들어, 프로세서 (906), CODEC (934) 또는 양자 모두) 에 의해 실행가능한 명령들 (956) 을 포함할 수 있다. 명령들 (956) 은 분석기 (122), 스피치 디코더 (156), 또는 양자 모두에 대응할 수 있다.
특정 양태에서, 디바이스 (900) 는 시스템-인-패키지 또는 시스템-온-칩 디바이스 (922) 에 포함될 수도 있다. 특정 양태에서, 분석기 (122), 버퍼 (126), 스피치 디코더 (156), 메모리 (176), 프로세서 (906), 프로세서들 (910), 디스플레이 제어기 (926), CODEC (934) 및 무선 제어기 (940) 는 시스템-인-패키지 또는 시스템-온 칩-디바이스 (922) 에 포함된다. 특정 양태에서, 입력 디바이스 (930) 및 전원 공급부 (944) 는 시스템-온 칩-디바이스 (922) 에 커플링된다. 더욱이, 특정 양태에서, 도 9에 예시된 바와 같이, 디스플레이 (928), 입력 디바이스 (930), 스피커 (142), 마이크로폰 (946), 안테나 (942), 및 전원 공급부 (944) 는 시스템-온-칩 디바이스 (922) 의 외부에 있다. 특정 양태에서, 디스플레이 (928), 입력 디바이스 (930), 스피커 (142), 마이크로폰 (946), 안테나 (942), 및 전원 공급부 (944) 각각은, 인터페이스 또는 제어기와 같은, 시스템-온-칩 디바이스 (922) 의 컴포넌트에 커플링될 수 있다.
디바이스 (900) 는 모바일 통신 디바이스, 스마트 폰, 셀룰러 폰, 랩탑 컴퓨터, 컴퓨터, 태블릿, 개인 정보 단말기, 디스플레이 디바이스, 텔레비전, 게이밍 콘솔, 뮤직 플레이어, 라디오, 디지털 비디오 플레이어, 디지털 비디오 디스크 (DVD) 플레이어, 튜너, 카메라, 내비게이션 디바이스, 또는 이들의 임의의 조합을 포함할 수도 있다.
예시적인 양태에서, 프로세서들 (910) 은 도 1-도 8을 참조하여 설명된 방법들 또는 동작들의 전부 또는 일부를 수행하도록 동작가능할 수도 있다. 예를 들어, 마이크로폰 (946) 은 사용자 스피치 신호에 대응하는 오디오 신호를 캡처할 수 있다. ADC (904) 는 캡처된 오디오 신호를 아날로그 파형으로부터 디지털 오디오 샘플들로 구성된 디지털 파형으로 변환할 수도 있다. 프로세서들 (910) 은 디지털 오디오 샘플들을 프로세싱할 수도 있다. 이득 조절기는 디지털 오디오 샘플들을 조절할 수도 있다. 에코 소거기 (912) 는, 마이크로폰 (946) 에 입력되는 스피커 (142) 의 출력에 의해 생성될 수도 있는 임의의 에코를 감소시킬 수도 있다.
보코더 인코더 (936) 는 프로세싱된 스피치 신호에 대응하는 디지털 오디오 샘플들을 압축할 수 있고 패킷들의 시퀀스 (예를 들어, 디지털 오디오 샘플들의 압축된 비트들의 표시) 를 형성할 수도 있다. 패킷들의 시퀀스는 메모리 (176) 에 저장될 수도 있다. 시퀀스의 하나 이상의 패킷들은 시퀀스의 다른 패킷들의 부분 카피들에 대응하는 에러 정정 데이터를 포함할 수도 있다. 송수신기 (950) 는 시퀀스의 각각의 패킷의 일부 형태를 변조할 수 있고 (예를 들어, 패킷에 다른 정보가 부가될 수 있음) 안테나 (942) 를 통해 변조된 데이터를 송신할 수 있다.
추가 예로서, 안테나 (942) 는 네트워크를 통해 다른 디바이스에 의해 전송된 패킷들의 시퀀스에 대응하는 인입 패킷들을 수신할 수도 있다. 수신된 패킷들은 사용자 스피치 신호에 대응할 수도 있다. 분석기 (122) 는 인입 패킷들을 버퍼 (126) (예를 들어, 디-지터 버퍼) 에 저장할 수 있다. 분석기 (122) 는, 프로세싱될 다음의 패킷이 버퍼 (126) 에 저장되는지 여부를 결정할 수도 있다.
다음 패킷이 버퍼 (126) 에 저장된다고 결정하는 것에 응답하여, 분석기 (122) 는 다음 패킷을 보코더 디코더 (938) 에 제공할 수도 있다. 예를 들어, 보코더 디코더 (938) 는 다음 패킷을 비압축할 수도 있다. 다음 패킷이 버퍼 (126) 에 저장되지 않는다고 결정하는 것에 응답하여, 분석기 (122) 는 다음 패킷의 부분 카피가 또 다른 패킷에서의 에러 보정 데이터로서 버퍼 (126) 에 저장되는지 여부를 결정할 수 있다. 부분 카피가 다른 패킷의 버퍼 (126) 에 저장된다고 결정하는 것에 응답하여, 분석기 (122) 는 부분 카피 또는 다른 패킷을 보코더 디코더 (938) 에 제공할 수 있고 도 1의 검색된 부분 카피들의 카운트 (106) 를 업데이트할 수 있다. 보코더 디코더 (938) 는 부분 카피를 비압축할 수도 있다.
비압축된 파형은 재구성된 오디오 샘플들로서 참조될 수도 있다. 에코 소거기 (912) 는 재구성된 오디오 샘플들로부터 에코를 제거할 수도 있다. 스피치 디코더 (156) 는 재구성된 오디오 샘플들에 기초하여 프로세싱된 스피치 신호를 생성할 수도 있다. 이득 조절기는 프로세싱된 스피치 신호를 증폭 또는 억제할 수 있다. DAC (902) 는 프로세싱된 스피치 신호를 디지털 파형으로부터 아날로그 파형으로 변환할 수 있고 변환된 신호를 스피커 (142) 에 제공할 수도 있다.
다음 패킷도 다음 패킷의 부분 카피도 버퍼 (126) 에 저장되지 않는다고 결정하는 것에 응답하여, 분석기 (122) 는 도 1의 손실된 패킷들의 카운트 (114) 를 업데이트할 수 있다. 분석기 (122) 는 검색된 부분 카피들의 카운트 (106), 손실된 패킷들의 카운트 (114), 또는 양자 모두에 기초하여 에러 복구 파라미터를 조절할 수 있다.
기재된 양태들과 함께, 장치는 복수의 패킷들을 수신하기 위한 수단을 포함할 수 있다. 복수의 패킷들은 적어도 패킷들의 시퀀스의 서브세트에 대응할 수 있다. 복수의 패킷들은 에러 정정 데이터를 포함할 수 있다. 복수의 패킷들의 제 1 패킷의 에러 정정 데이터는 복수의 패킷들의 제 2 패킷의 부분 카피를 포함할 수 있다. 예를 들어, 복수의 패킷을 수신하는 수단은 도 1의 수신기 (124), 송수신기 (950), 또는 양자 모두를 포함할 수 있다.
장치는 또한 에러 복구를 위한 수단을 포함할 수 있다. 에러 복구 수단은, 패킷 시퀀스의 특정 패킷이 버퍼로부터 누락되는지 여부를 결정하고, 특정 패킷의 부분 카피가 또 다른 패킷에서의 에러 정정 데이터로서 버퍼에 저장되어 있는지 여부를 결정하고, 그리고 버퍼가 특정 패킷을 저장하지 않고 버퍼가 특정 패킷의 부분 카피를 저장하지 않는다고 결정하는 것에 적어도 부분적으로 기초하여 재송신 메시지를 제 2 디바이스로 전송하도록 구성될 수 있다.
특정 패킷이 버퍼로부터 누락되는지 및 특정 패킷의 부분 카피가 버퍼에 저장되어 있는지 여부에 적어도 부분적으로 기초하여 값을 결정하고, 그리고 그 값에 적어도 부분적으로 기초하여 에러 복구 파라미터를 조절하도록 구성될 수 있다. 예를 들어, 에러 복구 수단은 분석기 (122), 프로세서 (906), 프로세서 (910), CODEC (934), 또는 이들의 조합을 포함할 수 있다.
당업자라면, 본원에서 개시된 양태들과 연계하여 설명된 다양한 예시적인 논리 블록들, 구성들, 모듈들, 회로들, 및 알고리즘 단계들이 전자 하드웨어, 프로세서에 의해 실행가능한 컴퓨터 소프트웨어, 또는 양자 모두의 조합으로서 구현될 수도 있음을 더 알 수 있을 것이다. 다양한 예시적인 컴포넌트들, 블록들, 구성들, 모듈들, 회로들, 및 단계들은 이들의 기능성의 관점에서 일반적으로 상술되었다. 이러한 기능이 하드웨어 또는 프로세서 실행가능한 명령들로 구현되는지 여부는 특정 애플리케이션 및 전체 시스템에 부과되는 설계 제약들에 달려 있다. 당업자들은 각각의 특정 애플리케이션을 위해 다양한 방식들로 설명된 기능을 구현할 수도 있으며, 그러한 구현 결정들이 본 개시물의 범위로부터 벗어나게 하는 것으로 해석되어서는 안된다.
본 명세서에 개시된 양태들과 관련되어 설명된 방법 또는 알고리즘의 단계들은 하드웨어로, 프로세서에 의해 실행되는 소프트웨어 모듈로, 또는 이들 둘의 조합으로 직접 구현될 수도 있다. 소프트웨어 모듈은 랜덤 액세스 메모리 (random access memory; RAM), 플래시 메모리, 판독 전용 메모리 (read-only memory; ROM), 프로그램가능 판독 전용 메모리 (programmable read-only memory; PROM), 삭제가능한 프로그램가능 판독 전용 메모리 (erasable programmable read-only memory; EPROM), 전기적으로 삭제가능한 프로그램가능 판독 전용 메모리, 레지스터들, 하드 디스크, 이동식 디스크, 컴팩트 디스크 판독 전용 메모리 (compact disc read-only memory; CD-ROM), 또는 공지된 임의의 다른 형태의 비일시적 저장 매체 내에 상주할 수도 있다. 예시적인 저장 매체는 프로세서에 커플링되어, 프로세가 저장 매체로부터 정보를 판독하거나 저장 매체에 정보를 기록할 수 있다. 대안으로, 저장 매체는 프로세서와 일체형일 수도 있다. 프로세서 및 저장 매체는 주문형 집적 회로 (ASIC) 내에 상주할 수도 있다. ASIC는 컴퓨팅 디바이스 또는 사용자 단말기에 상주할 수도 있다. 대안으로, 프로세서 및 저장 매체는 컴퓨팅 디바이스 또는 사용자 단말기에서 개별 컴포넌트들로서 상주할 수도 있다.
개시된 양태들의 이전 설명은 당업자가 개시된 예들을 제조하거나 이용하는 것을 가능하게 하도록 제공된다. 이들 양태들에 대한 다양한 수정들은 당업자들에게 쉽게 명백할 것이며, 본 명세서에 정의된 원리들은 본 개시물의 범위로부터 벗어남이 없이 다른 예들에 적용될 수도 있다. 따라서, 본 개시물은 본원에 나타낸 양태들로 제한되도록 의도된 것이 아니며, 다음의 청구항들에 의해 정의된 바와 같은 원리들 및 신규한 피처들과 일치하는 가능한 가장 넓은 범위를 따르도록 하기 위한 것이다.

Claims (30)

  1. 디바이스로서,
    복수의 패킷들을 수신하도록 구성된 수신기로서, 상기 복수의 패킷들은 패킷들의 시퀀스의 서브세트에 적어도 대응하고, 상기 복수의 패킷들은 에러 정정 데이터를 포함하고, 그리고 상기 복수의 패킷들의 제 1 패킷의 상기 에러 정정 데이터는 상기 복수의 패킷들의 제 2 패킷의 부분 카피를 포함하는, 상기 수신기;
    상기 복수의 패킷들을 저장하도록 구성된 버퍼;
    송신기; 및
    분석기를 포함하고,
    상기 분석기는;
    상기 패킷들의 시퀀스의 특정 패킷이 상기 버퍼로부터 누락되는지 여부를 결정하고;
    상기 특정 패킷의 부분 카피가 또 다른 패킷에서의 에러 정정 데이터로서 상기 버퍼에 저장되는지 여부를 결정하고;
    상기 버퍼가 상기 특정 패킷을 저장하지 않고 상기 버퍼가 상기 특정 패킷의 부분 카피를 저장하지 않는다고 결정하는 것에 적어도 부분적으로 기초하여 재송신 메시지를 제 2 디바이스로, 상기 송신기를 통해, 전송하도록 구성되는, 디바이스.
  2. 제 1 항에 있어서,
    상기 재송신 메시지는 상기 특정 패킷의 재송신을 요청하는, 디바이스.
  3. 제 1 항에 있어서,
    상기 수신기 및 상기 송신기는 송수신기에 포함되는, 디바이스.
  4. 제 1 항에 있어서,
    상기 재송신 메시지는, 상기 버퍼가 상기 특정 패킷을 저장하지 않고, 상기 버퍼가 상기 특정 패킷의 부분 카피를 저장하지 않고, 그리고 재송신 카운트가 재송신 임계치를 만족한다고 결정하는 것에 응답하여 상기 제 2 디바이스로 전송되며, 그리고
    상기 분석기는 또한 상기 재송신 메시지를 상기 제 2 디바이스로 전송하는 것에 후속하여 상기 제송신 카운트를 업데이트하도록 구성되는, 디바이스.
  5. 제 4 항에 있어서,
    상기 분석기는 또한, 상기 특정 패킷이 상기 버퍼로부터 누락되는지 및 상기 특정 패킷의 부분 카피가 상기 버퍼에 저장되는지 여부를 결정하는 것에 기초하여 상기 재송신 임계치를 업데이트하도록 구성되는, 디바이스.
  6. 제 4 항에 있어서,
    상기 분석기는 또한:
    상기 특정 패킷이 상기 버퍼로부터 누락되고, 상기 특정 패킷의 부분 카피가 상기 버퍼에 저장된다고 결정하는 것에 응답하여 검색된 부분 카피들의 카운트를 업데이트하고; 그리고
    상기 검색된 부분 카피들의 카운트에 적어도 부분적으로 기초하여 상기 재송신 임계치를 업데이트하도록 구성되는, 디바이스.
  7. 제 6 항에 있어서,
    상기 분석기는 또한, 상기 버퍼가 상기 특정 패킷을 저장하지 않고 상기 특정 패킷의 부분 카피를 저장하지 않는다는 결정에 응답하여 손실된 패킷들의 카운트를 업데이트하도록 구성되며, 그리고 상기 재송신 임계치는 상기 손실된 패킷들의 카운트에 적어도 부분적으로 기초하여 업데이트되는, 디바이스.
  8. 제 7 항에 있어서,
    상기 분석기는 또한 상기 검색된 부분 카피들의 카운트 및 상기 손실된 패킷들의 카운트에 기초하여 결과 값을 결정하도록 구성되고, 그리고 상기 재송신 임계치는 상기 결과 값이 증분 임계치를 만족한다고 결정하는 것에 응답하여 증분량만큼 증가되는, 디바이스.
  9. 제 7 항에 있어서,
    상기 분석기는 또한 상기 검색된 부분 카피들의 카운트 및 상기 손실된 패킷들의 카운트에 기초하여 결과 값을 결정하도록 구성되고, 그리고 상기 재송신 임계치는 상기 결과 값이 감분 임계치를 만족한다고 결정하는 것에 응답하여 감분량만큼 감소되는, 디바이스.
  10. 제 7 항에 있어서,
    상기 분석기는 또한:
    상기 검색된 부분 카피들의 카운트에 품질 메트릭을 곱함으로써 가중치를 생성하고; 그리고
    상기 손실된 패킷들의 카운트와 상기 가중치의 합산에 기초하여 결과 값을 결정하도록 구성되고,
    상기 재송신 임계치는 상기 결과 값이 임계치를 만족하는지 여부를 결정하는 것에 기초하여 업데이트되는, 디바이스.
  11. 통신 방법으로서,
    디바이스에서 복수의 패킷들을 수신하는 단계로서,
    상기 복수의 패킷들은 패킷들의 시퀀스의 서브세트에 적어도 대응하고,
    상기 복수의 패킷들은 에러 정정 데이터를 포함하며, 그리고
    상기 복수의 패킷들의 제 1 패킷의 에러 정정 데이터는 상기 복수의 패킷들의 제 2 패킷의 부분 카피를 포함하는, 상기 수신하는 단계;
    상기 패킷들의 시퀀스의 특정 패킷이 버퍼로부터 누락되는지 여부를, 상기 디바이스에서, 결정하는 단계;
    상기 특정 패킷의 부분 카피가 또 다른 패킷에서의 에러 정정 데이터로서 상기 버퍼에 저장되는지 여부를, 상기 디바이스에서, 결정하는 단계; 및
    상기 버퍼가 상기 특정 패킷을 저장하지 않고 상기 버퍼가 상기 특정 패킷의 부분 카피를 저장하지 않는다고 결정하는 것에 적어도 부분적으로 기초하여 재송신 메시지를 상기 디바이스로부터 제 2 디바이스로 전송하는 단계를 포함하는, 통신 방법.
  12. 제 11 항에 있어서,
    상기 재송신 메시지는, 상기 버퍼가 상기 특정 패킷을 저장하지 않고, 상기 버퍼가 상기 특정 패킷의 부분 카피를 저장하지 않고, 그리고 재송신 카운트가 재송신 임계치를 만족한다고 결정하는 것에 응답하여 상기 디바이스로부터 상기 제 2 디바이스로 전송되는, 통신 방법.
  13. 제 12 항에 있어서,
    상기 재송신 메시지를 상기 제 2 디바이스로 전송하는 단계에 후속하여 상기 재송신 카운트를, 상기 디바이스에서, 업데이트하는 단계; 및
    상기 특정 패킷이 상기 버퍼로부터 누락되는지 및 상기 특정 패킷의 부분 카피가 상기 버퍼에 저장되는지 여부를 결정하는 것에 기초하여 상기 재송신 임계치를, 상기 디바이스에서, 업데이트하는 단계를 더 포함하는, 통신 방법.
  14. 제 12 항에 있어서,
    상기 특정 패킷이 상기 버퍼로부터 누락되고, 상기 특정 패킷의 부분 카피가 상기 버퍼에 저장된다고 결정하는 것에 응답하여 검색된 부분 카피들의 카운트를, 상기 디바이스에서, 업데이트하는 단계;
    상기 버퍼가 상기 특정 패킷을 저장하지 않고 상기 특정 패킷의 부분 카피를 저장하지 않는다고 결정하는 것에 응답하여 손실된 패킷들의 카운트를, 상기 디바이스에서, 업데이트하는 단계; 및
    상기 검색된 부분 카피들의 카운트 및 상기 손실된 패킷들의 카운트에 기초하여 상기 재송신 임계치를 업데이트하는 단계를 더 포함하는, 통신 방법.
  15. 제 14 항에 있어서,
    상기 검색된 부분 카피들의 카운트에 품질 메트릭을 곱함으로써 가중치를 결정하는 단계; 및
    상기 손실된 패킷들의 카운트와 상기 가중치의 합산에 기초하여 결과 값을 결정하는 단계를 더 포함하고,
    상기 재송신 임계치는, 상기 결과 값이 증분 임계치를 만족한다고 결정하는 것에 응답하여 증분량만큼 증가되는, 통신 방법.
  16. 제 15 항에 있어서,
    상기 결과 값과 상기 증분 임계치 사이의 차이에 기초하여 증분량을 결정하는 단계를 더 포함하는, 통신 방법.
  17. 제 14 항에 있어서,
    상기 검색된 부분 카피들의 카운트에 품질 메트릭을 곱함으로써 가중치를 결정하는 단계; 및
    상기 손실된 패킷들의 카운트와 상기 가중치의 합산에 기초하여 결과 값을 결정하는 단계를 더 포함하고,
    상기 재송신 임계치는, 상기 결과 값이 감분 임계치를 만족한다고 결정하는 것에 응답하여 감분량만큼 감소되는, 통신 방법.
  18. 제 17 항에 있어서,
    상기 결과 값과 상기 감분 임계치 사이의 차이에 기초하여 감분량을 결정하는 단계를 더 포함하는, 통신 방법.
  19. 명령들을 저장하는 컴퓨터 판독가능 저장 디바이스로서,
    상기 명령들은 프로세서에 의해 실행되는 경우, 상기 프로세서로 하여금:
    복수의 패킷들을 수신하는 것으로서,
    상기 복수의 패킷들은 패킷들의 시퀀스의 서브세트에 적어도 대응하고,
    상기 복수의 패킷들은 에러 정정 데이터를 포함하며, 그리고
    상기 복수의 패킷들의 제 1 패킷의 에러 정정 데이터는 상기 복수의 패킷들의 제 2 패킷의 부분 카피를 포함하는, 상기 수신하는 것;
    상기 패킷들의 시퀀스의 특정 패킷이 버퍼로부터 누락되는지 여부를 결정하는 것;
    상기 특정 패킷의 부분 카피가 또 다른 패킷에서의 에러 정정 데이터로서 상기 버퍼에 저장되는지 여부를 결정하는 것; 및
    상기 버퍼가 상기 특정 패킷을 저장하지 않고 상기 버퍼가 상기 특정 패킷의 부분 카피를 저장하지 않는다고 결정하는 것에 적어도 부분적으로 기초하여 재송신 메시지를 디바이스로 전송하는 것을 포함하는 동작들을 수행하게 하는, 컴퓨터 판독가능 저장 디바이스.
  20. 제 19 항에 있어서,
    상기 동작들은, 상기 버퍼가 상기 특정 패킷을 저장하거나, 상기 버퍼가 상기 특정 패킷의 부분 카피를 저장하거나, 재송신 카운트가 재송신 임계치를 만족하지 못하거나, 또는 이들을 조합하거나 하는 것에 응답하여 상기 디바이스로 상기 재송신 메시지를 전송하는 것을 억제하는 것을 더 포함하는, 컴퓨터 판독가능 저장 디바이스.
  21. 제 19 항에 있어서,
    상기 재송신 메시지는, 상기 버퍼가 상기 특정 패킷을 저장하지 않고, 상기 버퍼가 상기 특정 패킷의 부분 카피를 저장하지 않고, 그리고 재송신 카운트가 재송신 임계치를 만족한다고 결정하는 것에 응답하여 상기 디바이스로 전송되는, 컴퓨터 판독가능 저장 디바이스.
  22. 제 21 항에 있어서,
    상기 동작들은, 상기 특정 패킷이 상기 버퍼로부터 누락되는지 및 상기 특정 패킷의 부분 카피가 상기 버퍼에 저장되는지 여부를 결정하는 것에 기초하여 상기 재송신 임계치를 업데이트하는 것을 더 포함하고, 그리고 상기 특정 패킷은 스피치 데이터를 포함하는, 컴퓨터 판독가능 저장 디바이스.
  23. 제 21 항에 있어서,
    상기 동작들은:
    상기 특정 패킷이 상기 버퍼로부터 누락되고, 상기 특정 패킷의 부분 카피가 상기 버퍼에 저장된다고 결정하는 것에 응답하여 검색된 부분 카피들의 카운트를 업데이트하는 것; 및
    상기 버퍼가 상기 특정 패킷을 저장하지 않고 상기 특정 패킷의 부분 카피를 저장하지 않는다고 결정하는 것에 응답하여 손실된 패킷들의 카운트를 업데이트하는 것; 및
    상기 검색된 부분 카피들의 카운트 및 상기 손실된 패킷들의 카운트에 기초하여 상기 재송신 임계치를 업데이트하는 것을 더 포함하는, 컴퓨터 판독가능 저장 디바이스.
  24. 제 23 항에 있어서,
    상기 동작들은:
    상기 검색된 부분 카피들의 카운트에 품질 메트릭을 곱함으로써 가중치를 결정하는 것; 및
    상기 손실된 패킷들의 카운트와 상기 가중치의 합산에 기초하여 결과 값을 결정하는 것을 더 포함하고,
    상기 재송신 임계치는 상기 결과 값에 기초하여 업데이트되는, 컴퓨터 판독가능 저장 디바이스.
  25. 제 21 항에 있어서,
    상기 동작들은:
    상기 특정 패킷이 상기 버퍼로부터 누락되는지 및 상기 특정 패킷의 부분 카피가 상기 버퍼에 저장되는지 여부에 기초하여 결과 값을 결정하는 것; 및
    상기 결과 값이 증분 임계치를 만족한다고 결정하는 것에 응답하여,
    상기 결과 값과 증분 임계치 사이의 차이에 기초하여 증분량을 결정하는 것과,
    상기 증분량에 기초하여 상기 재송신 임계치를 증가시키는 것을 더 포함하는, 컴퓨터 판독가능 저장 디바이스.
  26. 제 21 항에 있어서,
    상기 동작들은:
    상기 특정 패킷이 상기 버퍼로부터 누락되는지 및 상기 특정 패킷의 부분 카피가 상기 버퍼에 저장되는지 여부에 기초하여 결과 값을 결정하는 것; 및
    결과 값이 감분 임계치를 만족한다고 결정하는 것에 응답하여, 감분량에 기초하여 상기 재송신 임계치를 감소시키는 것을 더 포함하는, 컴퓨터 판독가능 저장 디바이스.
  27. 제 26 항에 있어서,
    상기 동작들은 상기 결과 값과 상기 감분 임계치 사이의 차이에 기초하여 상기 감분량을 결정하는 것을 더 포함하는, 컴퓨터 판독가능 저장 디바이스.
  28. 제 19 항에 있어서,
    상기 제 2 패킷은 상기 제 1 패킷보다 패킷들의 시퀀스에서 더 빠른, 컴퓨터 판독가능 저장 디바이스.
  29. 장치로서,
    복수의 패킷들을 수신하는 수단으로서, 상기 복수의 패킷들은 패킷들의 시퀀스의 서브세트에 적어도 대응하고, 상기 복수의 패킷들은 에러 정정 데이터를 포함하고, 그리고 상기 복수의 패킷들의 제 1 패킷의 상기 에러 정정 데이터는 상기 복수의 패킷들의 제 2 패킷의 부분 카피를 포함하는, 상기 수신하는 수단; 및
    에러 복구를 위한 수단을 포함하고,
    상기 에러 복구를 위한 수단은:
    상기 패킷들의 시퀀스의 특정 패킷이 버퍼로부터 누락되는지 여부를 결정하고;
    상기 특정 패킷의 부분 카피가 또 다른 패킷에서의 에러 정정 데이터로서 상기 버퍼에 저장되는지 여부를 결정하고; 그리고
    상기 버퍼가 상기 특정 패킷을 저장하지 않고 상기 버퍼가 상기 특정 패킷의 부분 카피를 저장하지 않는다고 결정하는 것에 적어도 부분적으로 기초하여 재송신 메시지를 제 2 디바이스로 전송하도록 구성되는, 장치.
  30. 제 29 항에 있어서,
    상기 수신하는 수단 및 상기 에러 복구를 위한 수단은 디코더, 셋탑 박스, 뮤직 플레이어, 비디오 플레이어, 엔터테인먼트 유닛, 내비게이션 디바이스, 통신 디바이스, 개인 정보 단말기 (PDA), 또는 컴퓨터에 통합되는, 장치.
KR1020177002625A 2014-07-31 2015-07-27 리던던시 기반의 패킷 송신 에러 복구 시스템 및 방법 KR101960200B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462031675P 2014-07-31 2014-07-31
US62/031,675 2014-07-31
US14/809,098 2015-07-24
US14/809,098 US9762355B2 (en) 2014-07-31 2015-07-24 System and method of redundancy based packet transmission error recovery
PCT/US2015/042314 WO2016018833A1 (en) 2014-07-31 2015-07-27 System and method of redundancy based packet transmission error recovery

Publications (2)

Publication Number Publication Date
KR20170040218A true KR20170040218A (ko) 2017-04-12
KR101960200B1 KR101960200B1 (ko) 2019-03-19

Family

ID=55181151

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020177002625A KR101960200B1 (ko) 2014-07-31 2015-07-27 리던던시 기반의 패킷 송신 에러 복구 시스템 및 방법
KR1020177002624A KR101937600B1 (ko) 2014-07-31 2015-07-27 리던던시 기반의 패킷 송신 에러 복구 시스템 및 방법

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020177002624A KR101937600B1 (ko) 2014-07-31 2015-07-27 리던던시 기반의 패킷 송신 에러 복구 시스템 및 방법

Country Status (8)

Country Link
US (2) US9712287B2 (ko)
EP (2) EP3175564B1 (ko)
JP (2) JP6416376B2 (ko)
KR (2) KR101960200B1 (ko)
CN (2) CN106664161B (ko)
CA (2) CA2953635C (ko)
ES (1) ES2836220T3 (ko)
WO (2) WO2016018834A1 (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105723643B (zh) * 2013-11-12 2020-12-08 Oppo广东移动通信有限公司 用于处理网络中的盲传输(重传)的设备和方法
US9680507B2 (en) 2014-07-22 2017-06-13 Qualcomm Incorporated Offset selection for error correction data
US9712287B2 (en) 2014-07-31 2017-07-18 Qualcomm Incorporated System and method of redundancy based packet transmission error recovery
WO2016026130A1 (en) * 2014-08-22 2016-02-25 The Board Of Regents Of The Nevada System Of Higher Education On Behalf Of The University Of Nevada, Las Vegas Sodium anti-perovskite solid electrolyte compositions
US9762468B2 (en) * 2015-03-09 2017-09-12 Landis+Gyr Innovations, Inc. Method for dynamically adjusting packet transmission timing
WO2016179382A1 (en) * 2015-05-07 2016-11-10 Dolby Laboratories Licensing Corporation Voice quality monitoring system
US9928844B2 (en) * 2015-10-30 2018-03-27 Intel Corporation Method and system of audio quality and latency adjustment for audio processing by using audio feedback
CN107302488B (zh) * 2016-04-14 2021-07-09 创新先进技术有限公司 虚拟物品的分配方法、系统及服务器
CN107547921A (zh) * 2016-06-29 2018-01-05 中兴通讯股份有限公司 视频播放方法、装置及系统
US9967306B1 (en) * 2016-09-08 2018-05-08 Sprint Spectrum L.P. Prioritized transmission of redundancy data for packetized voice communication
KR102214440B1 (ko) 2016-10-07 2021-02-09 삼성전자주식회사 통화 기능을 수행하는 단말 장치 및 방법
CN109964496B (zh) * 2017-01-22 2021-12-03 上海朗帛通信技术有限公司 一种无线通信中的方法和装置
US10860449B2 (en) * 2017-03-31 2020-12-08 Intel Corporation Adjustable retimer buffer
CN107241166A (zh) * 2017-06-12 2017-10-10 京信通信系统(中国)有限公司 一种长期演进上的语音Volte数据保障方法和设备
JP2019068296A (ja) 2017-10-02 2019-04-25 キヤノン株式会社 情報処理装置及びその制御方法、並びにコンピュータプログラム
KR102391799B1 (ko) * 2017-10-19 2022-04-29 삼성전자주식회사 유니캐스트 기반 멀티미디어 서비스 방법 및 장치
CN110782906B (zh) * 2018-07-30 2022-08-05 南京中感微电子有限公司 音频数据恢复方法、装置及蓝牙设备
WO2020097871A1 (zh) * 2018-11-15 2020-05-22 深圳市欢太科技有限公司 数据传输方法及相关产品
US10785306B1 (en) * 2019-07-11 2020-09-22 Alibaba Group Holding Limited Data transmission and network interface controller

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005110013A (ja) * 2003-09-30 2005-04-21 Toshiba Corp 受信装置、受信方法および受信プログラム
JP2010531576A (ja) * 2007-06-27 2010-09-24 インテル コーポレイション 選択的なハイブリッドarq
US20130185062A1 (en) * 2012-01-12 2013-07-18 Qualcomm Incorporated Systems, methods, apparatus, and computer-readable media for criticality threshold control

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6167438A (en) * 1997-05-22 2000-12-26 Trustees Of Boston University Method and system for distributed caching, prefetching and replication
CA2262894C (en) * 1997-06-19 2004-08-03 Kabushiki Kaisha Toshiba Information data multiplexing transmission system, multiplexer and demultiplexer used therefor, and error correcting encoder and decoder
US6788651B1 (en) * 1999-04-21 2004-09-07 Mindspeed Technologies, Inc. Methods and apparatus for data communications on packet networks
KR100424654B1 (ko) * 1999-08-02 2004-03-24 삼성전자주식회사 이동 통신시스템에서 라디오링크프로토콜에 따른 데이터 재전송 장치 및 방법
JP3880497B2 (ja) * 2002-09-27 2007-02-14 Necインフロンティア株式会社 Lan通信システム
JP4154213B2 (ja) * 2002-11-01 2008-09-24 富士通株式会社 パケット処理装置
US20060007943A1 (en) * 2004-07-07 2006-01-12 Fellman Ronald D Method and system for providing site independent real-time multimedia transport over packet-switched networks
MX2007002483A (es) * 2004-08-30 2007-05-11 Qualcomm Inc Memoria intermedia sin oscilacion adaptiva para voz sobre ip.
US7965639B2 (en) * 2005-03-14 2011-06-21 Sharp Laboratories Of America, Inc. Dynamic adaptation of MAC-layer retransmission value
TW200742332A (en) * 2006-03-21 2007-11-01 Interdigital Tech Corp Method and system for implementing hybrid automatic repeat request
US20080101355A1 (en) 2006-10-31 2008-05-01 Nokia Corporation Transmission scheme dependent control of a frame buffer
EP2176980B1 (en) * 2007-07-30 2016-06-01 Marvell Israel (M.I.S.L) LTD. Rate matching for a wireless communications system
US8555149B2 (en) 2008-03-26 2013-10-08 Ikanos Communications, Inc. Systems and methods for protecting DSL systems against impulse noise
US8352252B2 (en) * 2009-06-04 2013-01-08 Qualcomm Incorporated Systems and methods for preventing the loss of information within a speech frame
US8429479B2 (en) 2009-09-16 2013-04-23 Intel Corporation Method and system to increase the throughput of a hybrid automatic repeat request (HARQ) protocol
US8392810B2 (en) * 2010-01-25 2013-03-05 Qualcomm Incorporated Majority vote error correction
WO2011111234A1 (ja) 2010-03-12 2011-09-15 富士通株式会社 受信機、受信方法及び無線通信システム
US8943393B1 (en) * 2011-12-02 2015-01-27 Altera Corporation Distributed burst error protection
US20130262952A1 (en) 2012-03-30 2013-10-03 Broadcom Corporation Memory architecture for turbo decoder
GB2505656B (en) * 2012-09-05 2015-06-24 Nvidia Corp Error recovery
US9712287B2 (en) 2014-07-31 2017-07-18 Qualcomm Incorporated System and method of redundancy based packet transmission error recovery

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005110013A (ja) * 2003-09-30 2005-04-21 Toshiba Corp 受信装置、受信方法および受信プログラム
JP2010531576A (ja) * 2007-06-27 2010-09-24 インテル コーポレイション 選択的なハイブリッドarq
US20130185062A1 (en) * 2012-01-12 2013-07-18 Qualcomm Incorporated Systems, methods, apparatus, and computer-readable media for criticality threshold control

Also Published As

Publication number Publication date
CA2953635C (en) 2018-10-30
WO2016018833A1 (en) 2016-02-04
JP2017528958A (ja) 2017-09-28
US20160036560A1 (en) 2016-02-04
KR101937600B1 (ko) 2019-01-10
EP3175567B1 (en) 2022-05-18
CN106664161A (zh) 2017-05-10
EP3175567A1 (en) 2017-06-07
ES2836220T3 (es) 2021-06-24
BR112017000791A2 (pt) 2017-11-14
US20160036564A1 (en) 2016-02-04
US9712287B2 (en) 2017-07-18
CA2953635A1 (en) 2016-02-04
WO2016018834A1 (en) 2016-02-04
BR112017001088A2 (pt) 2017-11-21
EP3175564A1 (en) 2017-06-07
CA2953604C (en) 2018-11-13
CN106537831B (zh) 2019-11-01
JP6416376B2 (ja) 2018-10-31
JP6337197B2 (ja) 2018-06-06
JP2017528957A (ja) 2017-09-28
CN106537831A (zh) 2017-03-22
KR101960200B1 (ko) 2019-03-19
CN106664161B (zh) 2018-09-28
EP3175564B1 (en) 2020-09-09
KR20170039161A (ko) 2017-04-10
US9762355B2 (en) 2017-09-12
CA2953604A1 (en) 2016-02-04

Similar Documents

Publication Publication Date Title
KR101937600B1 (ko) 리던던시 기반의 패킷 송신 에러 복구 시스템 및 방법
US9047863B2 (en) Systems, methods, apparatus, and computer-readable media for criticality threshold control
JP6779280B2 (ja) ハイバンド目標信号制御
JP4071631B2 (ja) 音声の非活動中に音声伝送システム間の相互運用性のための方法および装置
US20170187635A1 (en) System and method of jitter buffer management
TWI630602B (zh) 在頻寬轉換週期期間之信號再使用
KR20060131851A (ko) 통신 장치 및 신호 부호화/복호화 방법
KR20160096119A (ko) 대역폭 확장 모드 선택
CN106465082B (zh) 编解码器反转检测
BR112017001088B1 (pt) Dispositivo e método de recuperação de erro de transmissão de pacote com base em redundância
BR112017000791B1 (pt) Sistema e método de recuperação de erro de transmissão de pacote com base em redundância
KR20050027272A (ko) 스피치 프레임들의 에러 경감을 위한 스피치 통신 유닛 및방법

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant