KR20120128672A - 서브 밴드 코딩 디코더에서 손실 패킷들의 은닉 - Google Patents

서브 밴드 코딩 디코더에서 손실 패킷들의 은닉 Download PDF

Info

Publication number
KR20120128672A
KR20120128672A KR1020127023674A KR20127023674A KR20120128672A KR 20120128672 A KR20120128672 A KR 20120128672A KR 1020127023674 A KR1020127023674 A KR 1020127023674A KR 20127023674 A KR20127023674 A KR 20127023674A KR 20120128672 A KR20120128672 A KR 20120128672A
Authority
KR
South Korea
Prior art keywords
samples
packet
pitch period
electronic device
lost
Prior art date
Application number
KR1020127023674A
Other languages
English (en)
Other versions
KR101422379B1 (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 KR20120128672A publication Critical patent/KR20120128672A/ko
Application granted granted Critical
Publication of KR101422379B1 publication Critical patent/KR101422379B1/ko

Links

Images

Classifications

    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephone Function (AREA)

Abstract

서브 밴드 코딩 (SBC) 디코더에서 손실 패킷을 재구성하는 전자 디바이스가 기술된다. 전자 디바이스는 메모리에 저장된 프로세서 및 명령들을 포함한다. 전자 디바이스는 손실 패킷을 검출하고, 합성 필터 뱅크의 제로-입력 응답을 획득하고, 어림 피치 추정치를 획득한다. 또한, 전자 디바이스는 제로-입력 응답 및 어림 피치 추정치에 기초하여, 정밀 피치 추정치를 획득한다. 전자 디바이스는 그 정밀 피치 추정치에 기초하여 최종 피치 기간을 선택하고, 그 최종 피치 기간으로부터의 샘플들을 손실 패킷에 대해 사용한다.

Description

서브 밴드 코딩 디코더에서 손실 패킷들의 은닉{CONCEALING LOST PACKETS IN A SUB-BAND CODING DECODER}
본 출원은 발명의 명칭이 "An Efficient Packet Loss Concealment (PLC) Scheme in SBC Decoder for Wideband Speech Communications over BlueTooth" 으로, 2010년 2월 11일자로 출원된 미국 가특허 출원번호 제 61/303,560 호, 및 발명의 명칭이 "An Efficient Packet Loss Concealment (PLC) Scheme in a Subband Coding Decoder for Wide-Band Speech Communications"으로, 2010년 4월 14일자로 출원된 미국 가특허 출원번호 제 61/324,228 호에 관한 것으로, 이에 대해 우선권을 주장한다.
본 개시물은 일반적으로 전자 디바이스들에 관한 것이다. 보다 구체적으로 말하면, 본 개시물은 서브 밴드 코딩 (Sub-Band Coding; SBC) 디코더에서 손실 패킷들을 은닉하는 것에 관한 것이다.
최근 수십 년 동안, 전자 디바이스들의 사용이 보편화되었다. 특히, 전자 기술에서의 진보는 점차 복잡하고 유용한 전자 디바이스들의 비용을 절감시켰다. 비용 절감 및 소비자 요구는 실질적으로 현대 사회에서 도처에 존재할 정도로 전자 디바이스들의 사용을 만연시켰다. 전자 디바이스들의 사용이 확장됨에 따라, 전자 디바이스들의 새로운 그리고 향상된 피처들 (features) 에 대한 요구가 일어나고 있다. 보다 구체적으로 말하면, 기능들을 더 빨리, 더 효율적으로 수행하거나 또는 더 높은 품질을 가진 전자 디바이스들이 종종 추구되고 있다.
많은 전자 디바이스들은 예컨대, 음악 또는 보이스 데이터와 같은, 오디오 또는 사운드 정보와 함께 사용된다. 이 오디오 또는 사운드 정보는 전자 디바이스로 하여금 사운드들을 재생하도록 할 수 있다. 일부 전자 디바이스들은 다른 전자 디바이스들과 통신한다. 예를 들어, 전자 디바이스의 한 종류는 무선 통신 디바이스, 예컨대 셀룰러 폰이다. 일부 무선 통신 디바이스들 또는 다른 전자 디바이스들은 오디오 또는 사운드 정보를 수신할 수 있다. 예를 들어, 무선 통신 디바이스는 또 다른 전자 디바이스로부터 보이스 정보를 수신할 수도 있다.
예를 들어, 전자 디바이스가 오디오 또는 사운드 정보를 수신하고 있을 때, 일부 오디오 또는 사운드 정보가 손실될지도 모른다. 예컨대, 무선 통신 디바이스는 폰 콜 동안 보이스 정보 또는 데이터의 하나 이상의 패킷들을 손실할지도 모른다. 손실된 오디오 또는 사운드 정보는 열화된 사용자 경험을 초래할 수 있다. 이 설명으로부터 알 수 있는 바와 같이, 손실된 오디오 또는 사운드 정보를 처리하는 향상된 시스템들 및 방법들이 유익할 수도 있다.
서브 밴드 코딩 (SBC) 디코더에서 손실 패킷을 재구성하기 위한 전자 디바이스가 개시된다. 이 전자 디바이스는 프로세서, 및 메모리에 저장된 명령들을 포함한다. 전자 디바이스는 손실 패킷을 검출하고 합성 필터 뱅크의 제로-입력 응답을 획득한다. 또한, 전자 디바이스는 어림 피치 추정치 (coarse pitch estimate) 를 획득하고, 제로-입력 응답 및 어림 피치 추정치에 기초하여 정밀 피치 추정치 (fine pitch estimate) 를 획득한다. 또한, 전자 디바이스는 정밀 피치 추정치에 기초하여 최종 피치 기간을 선택하고 그 최종 피치 기간으로부터의 샘플들을 그 손실 패킷에 대해 사용한다.
어림 피치 추정치는 서브 밴드 샘플들의 자기상관들을 계산함으로써 획득될 수도 있다. 서브 밴드 샘플들은 합성되지 않을 수도 있다. 또한, 전자 디바이스는 최종 피치 기간으로부터의 샘플들의 적어도 일부를 제로-입력 응답과 중첩-합산할 수도 있다. 정밀 피치 추정치는 이전에 디코딩된 샘플들과의 제로-입력 응답의 상관들을 계산함으로써 획득된다.
전자 디바이스는 추가로 추가적인 손실 패킷을 검출할 수도 있으며 최종 피치 기간으로부터의 샘플들을 그 추가적인 손실 패킷에 대해 사용할 수도 있다. 또한, 전자 디바이스는 최종 피치 기간으로부터의 샘플들을 페이딩할 수도 있다. 또한, 전자 디바이스는 최종 피치 기간으로부터의 샘플들을 복수의 추가적인 손실 패킷들에 대해 사용할 수도 있다.
또한, 전자 디바이스는 정확히 디코딩된 패킷 또는 프레임을 검출할 수도 있으며, 최종 피치 기간으로부터의 샘플들을 바람직하지 않은 샘플들의 범위에 대해 사용할 수도 있으며 최종 피치 기간으로부터의 샘플들을 전환 샘플들 (transition samples) 과 중첩-합산할 수도 있다. 최종 피치 기간으로부터의 샘플들을 손실 패킷에 대해 사용하는 것은 샘플들을 손실 패킷에 복사하는 것을 포함할 수도 있다.
SBC 디코더가 광대역 음성 신호들을 디코딩하는데 사용될 수도 있다. 전자 디바이스는 무선 통신 디바이스일 수도 있다. 무선 통신 디바이스는 블루투스 디바이스일 수도 있다. SBC 디코더에 의해, 실행가능한 (viable) 패킷을 디코딩하는 것과 비교하여, 손실 패킷을 재구성하는데 어떤 추가적인 지연도 사용되지 않을 수도 있다.
또한, 서브 밴드 코딩 (SBC) 디코더에서 손실 패킷을 재구성하는 방법이 개시된다. 본 방법은 손실 패킷을 검출하는 단계 및 전자 디바이스 상에서 합성 필터 뱅크의 제로-입력 응답을 획득하는 단계를 포함한다. 또한, 본 방법은 어림 피치 추정치를 획득하는 단계 및 제로-입력 응답 및 어림 피치 추정치에 기초하여 정밀 피치 추정치를 획득하는 단계를 포함한다. 또한, 본 방법은 정밀 피치 추정치에 기초하여 최종 피치 기간을 선택하는 단계 및 그 최종 피치 기간으로부터의 샘플들을 손실 패킷에 대해 사용하는 단계를 포함한다.
또한, 서브 밴드 코딩 (SBC) 디코더에서 손실 패킷을 재구성하는 컴퓨터 프로그램 제품이 개시된다. 컴퓨터 프로그램 제품은 명령들을 갖는 비일시적 유형의 컴퓨터 판독가능 매체를 포함한다. 이 명령들은, 전자 디바이스로 하여금 손실 패킷을 검출하고 합성 필터 뱅크의 제로-입력 응답을 획득하도록 하는 코드를 포함한다. 또한, 이 명령들은, 전자 디바이스로 하여금 어림 피치 추정치를 획득하고 제로-입력 응답 및 어림 피치 추정치에 기초하여 정밀 피치 추정치를 획득하도록 하는 코드를 포함한다. 또한, 이 명령들은, 전자 디바이스로 하여금 정밀 피치 추정치에 기초하여 최종 피치 기간을 선택하고 그 최종 피치 기간으로부터의 샘플들을 손실 패킷에 대해 사용하도록 하는 코드를 포함한다.
또한, 서브 밴드 코딩 (SBC) 디코더에서 손실 패킷을 재구성하는 장치가 개시된다. 이 장치는 손실 패킷을 검출하는 수단 및 합성 필터 뱅크의 제로-입력 응답을 획득하는 수단을 포함한다. 또한, 이 장치는 어림 피치 추정치를 획득하는 수단 및 제로-입력 응답 및 어림 피치 추정치에 기초하여 정밀 피치 추정치를 획득하는 수단을 포함한다. 이 장치는 정밀 피치 추정치에 기초하여 최종 피치 기간을 선택하는 수단 및 최종 피치 기간으로부터의 샘플들을 손실 패킷에 대해 사용하는 수단을 포함한다.
도 1 은 패킷 손실 은닉 (Packet Loss Concealment; PLC) 또는 손실 패킷 재구성을 위한 시스템들 및 방법들이 구현될 수도 있는 전자 디바이스의 일 구성을 도시하는 블록도이다.
도 2 은 패킷 손실 은닉 (PLC) 또는 손실 패킷 재구성을 위한 시스템들 및 방법들이 구현될 수도 있는 무선 통신 디바이스의 일 구성을 도시하는 블록도이다.
도 3 은 패킷 손실 은닉 (PLC) 또는 손실 패킷 재구성을 위한 시스템들 및 방법들이 구현될 수도 있는 무선 통신 디바이스의 또 다른 구성을 도시하는 블록도이다.
도 4 는 서브 밴드 코딩 (SBC) 디코더에서 손실 패킷들을 은닉하거나 또는 재구성하는 방법의 일 구성을 도시하는 흐름도이다.
도 5 는 서브 밴드 코딩 (SBC) 디코더에서 손실 패킷들을 은닉하거나 또는 재구성하는 여러 모듈들의 일 구성을 도시하는 블록도이다.
도 6 은 서브 밴드 코딩 (SBC) 디코더에서 손실 패킷들을 은닉하거나 또는 재구성하는 방법의 보다 구체적인 구성을 도시하는 흐름도이다.
도 7a 는 손실 또는 분실 패킷 검출을 도시한다. 전자 디바이스 (102) 는 SBC 인코딩된 오디오 (예컨대, 보이스 또는 음성) 을 수신 및/또는 디코딩할 수도 있다.
도 7b 는 제로-입력 응답의 생성을 도시한다.
도 7c 는 어림 피치 추정치 또는 기간의 결정을 도시한다.
도 7d 는 정밀 피치 추정치 또는 최종 피치 기간의 결정을 도시한다.
도 7e 는 최종 피치 기간을 손실 패킷에 대해 사용하고, 제로-입력 응답을 그 최종 피치 기간으로부터의 샘플들과 중첩-합산하는 것을 도시한다.
도 7f 는 은닉된 (concealed) 또는 재구성된 패킷 또는 프레임을 도시한다.
도 8 은 서브 밴드 코딩 (SBC) 디코더에서 손실 패킷들을 은닉하거나 또는 재구성하는 여러 모듈들의 일 구성을 도시하는 블록도이다.
도 9 는 서브 밴드 코딩 (SBC) 디코더에서 손실 패킷들을 은닉하거나 또는 재구성하는 방법의 또 다른 구성을 도시하는 흐름도이다.
도 10a 는 추가적인 손실 패킷의 검출을 도시하는 다이어그램이다.
도 10b 는 추가적인 손실 패킷 또는 프레임을 은닉하거나 또는 재구성하기 위해 최종 피치 기간으로부터의 샘플들을 사용하는 것을 도시하는 다이어그램이다.
도 10c 는 은닉된 패킷 또는 프레임에서 샘플들을 페이딩하는 것을 도시하는 다이어그램이다.
도 11 은 서브 밴드 코딩 (SBC) 디코더에서 손실 패킷들을 은닉하거나 또는 재구성하는데 사용될 수도 있는 여러 모듈들의 일 구성을 도시하는 블록도이다.
도 12 는 서브 밴드 코딩 (SBC) 디코더에서 손실 패킷들을 은닉하거나 또는 재구성하는 방법의 일 구성을 도시하는 흐름도이다.
도 13a 는 정확히 디코딩된 패킷 또는 프레임의 제로-상태 응답을 도시하는 다이어그램이다.
도 13b 는 최종 피치 기간으로부터의 샘플들을 정확히 디코딩된 패킷 또는 프레임의 제로-상태 응답에 대해 사용하는 것을 도시하는 다이어그램이다.
도 14 는 프레임 중첩 (frame overlap) 의 일 예를 도시하는 다이어그램이다.
도 15 는 서브 밴드 코딩 (SBC) 디코더에서 손실 패킷들을 은닉하거나 또는 재구성하는데 사용될 수도 있는 여러 모듈들의 일 구성을 도시하는 블록도이다.
도 16 은 전자 디바이스에서 사용될 수도 있는 다양한 컴포넌트들을 도시한다.
도 17 은 무선 통신 디바이스 내에 포함될 수도 있는 일부 컴포넌트들을 도시한다.
도 18 은 기지국 내에 포함될 수도 있는 일부 컴포넌트들을 도시한다.
여기서 사용하는, 용어 "기지국" 은 일반적으로 통신 네트워크에 액세스를 제공할 수 있는 통신 디바이스를 나타낸다. 통신 네트워크들의 예들은 전화 네트워크 (예컨대, "지상 통신선 (land-line)" 네트워크, 예컨대 공중 교환 전화 네트워크 (PSTN) 또는 셀룰러 폰 네트워크), 인터넷, 근거리 네트워크 (LAN), 광역 네트워크 (WAN), 거대도시 네트워크 (MAN) 등을 포함하지만, 이에 한정되지 않는다. 기지국의 예들은 예를 들어, 셀룰러 전화 기지국들 또는 노드들, 액세스 포인트들, 무선 게이트웨이들 및/또는 무선 라우터들을 포함한다. 기지국은 소정 산업 표준들, 예컨대 IEEE (Institute of Electrical and Electronics Engineers) 802.11a, 802.11b, 802.11g, 802.11n, 802.11ac (예컨대, Wireless Fidelity 또는 "Wi-Fi") 표준들에 따라서 동작할 수도 있다. 기지국이 따를 수도 있는 표준들의 다른 예들은 IEEE 802.16 (예컨대, Worldwide Interoperability for Microwave Access 또는 "WiMAX"), 3세대 파트너쉽 프로젝트 (3GPP), 3GPP 롱 텀 에볼루션 (LTE) 및 기타 등등 (예컨대, 이때, 기지국은 NodeB, eNB (evolved NodeB) 등으로 지칭될 수 있다) 을 포함할 수도 있다. 본 명세서에서 개시한 시스템들 및 방법들의 일부가 하나 이상의 표준들의 관점에서 설명될 수도 있지만, 시스템들 및 방법들이 많은 시스템들 및/또는 표준들에 적용될 수도 있기 때문에, 이것은 본 개시물의 범위를 한정하지 않아야 한다.
여기서 사용하는, 용어 "무선 통신 디바이스" 는 일반적으로 기지국 또는 다른 전자 디바이스와 무선으로 통신할 수도 있는 전자 디바이스 (예컨대, 액세스 단말, 클라이언트 디바이스, 클라이언트 국 등) 를 나타낸다. 무선 통신 디바이스는 모바일 디바이스, 이동국, 가입자국, 사용자 장비 (UE), 원격국, 액세스 단말, 모바일 단말, 단말, 사용자 단말, 가입자 유닛 등으로서 택일적으로 지칭될 수도 있다. 무선 통신 디바이스들의 예들은 랩탑 또는 데스크탑 컴퓨터들, 셀룰러 폰들, 스마트 폰들, 무선 모뎀들, e-리더들, 태블릿 디바이스들, 게이밍 시스템들 등을 포함한다. 무선 통신 디바이스들은 기지국들과 관련하여 위에서 설명한 바와 같은 하나 이상의 산업 표준들에 따라서 동작할 수도 있다. 따라서, 일반 용어 "무선 통신 디바이스" 는 산업 표준들에 따른 다양한 전문용어로 설명되는 무선 통신 디바이스들 (예컨대, 액세스 단말, 사용자 장비 (UE), 원격 단말 등) 을 포함할 수도 있다.
과거 수년에 걸쳐서, 소비자 전자 산업들에서는, 블루투스 (BT) 를 통해서 광대역 (WB) 음성 통신들을 할 수 있는 기법들에 대해 강한 요구가 있었다. 이 요구에 대한 응답으로서, BT 표준 단체는 BT 의 WB 음성 또는 보이스 애플리케이션들용 필수 (mandatory) 코덱으로서 서브 밴드 코딩 (SBC) 을 선택하였다. SBC 는 프레임-기반의 코덱으로, 이때 입력 신호는 프레임으로 단편화되며 프레임에서의 시간 샘플들은 분석 필터들에 의해 데시메이트된 (decimated) 서브 밴드 샘플들로 변환된다. 각각의 주파수 대역에서의 서브 밴드 샘플들은 적응적으로 (adaptively) 양자화되며, 그 후 양자화기 인덱스들 (quantizer indexes) 이 양자화기 스텝 사이즈들과 함께, SBC 디코더로 송신된다. SBC 디코더에서, 서브 밴드 샘플들이 역 양자화기들에 의해 재구성되며 합성 필터들에 의해 시간 영역 신호로 다시 변환된다.
BT 를 통한 협대역 (NB) 음성용의 CVSD (Continuously Variable Slope Delta Modulation) 코덱과는 달리, SBC 디코더는 비트 에러들에 의해 오류가 생긴 패킷들에 대해서 손상된 오디오를 귀찮게 발생하는 경향이 있기 때문에, 송신 비트 에러들에 민감한 것으로 알려져 있다. 이런 열화를 피하기 위해, 오류가 생긴 패킷들은 제거되어, 패킷 손실 은닉 (PLC) 또는 손실 패킷 재구성을 사용한 우수한 추정치로 대체될 수도 있다.
예컨대, 무음 삽입, 패킷 반복, 피치 분석 및 선형 예측- (LP) 기반의 PLC 에 기초한 파형 치환 (substitution) 등과 같은 많은 PLC 기법들이 SBC 디코더에 포함될 수 있다. 이들 중에서, G.711 NB 음성 코덱용으로 개발된 PLC 가, 적당한 지연 및 계산 복잡성을 가진 우수한 오디오 품질을 일으키는 그의 능력으로 인해, BT 표준 단체에 의해 비용-효과적인 솔루션으로서 권장되고 있다.
보이스 또는 음성 신호 (예컨대, 광대역 보이스 또는 음성 정보) 가 전자 디바이스들 (예컨대, 블루투스 송신기 및 수신기) 사이에 송신될 때, 하나 이상의 패킷들이 손실될 수도 있다. 패킷의 손실은 원하지 않는 신호 왜곡 및 아티팩트들 (artifacts) 을 초래할 수도 있다. 보이스 또는 음성 신호의 패킷이 손실되는 경우, 수신된 데이터에 기초하여 또 다른 패킷이 성공적으로 수신될 때까지 손실 패킷을 재구성하는데 패킷 손실 은닉 (PLC) 또는 손실 패킷 재구성이 사용됨으로써, 원하지 않는 신호 왜곡 및 아티팩트들을 감소시킬 수도 있다. 그러나, 전통적인 PLC 방식은 상당한 프로세싱 및 메모리 리소스들을 필요로 할 수도 있다. 게다가, (협대역과는 반대로) 광대역 음성 신호에 PLC 방식이 적용될 때 추가적인 프로세싱 및 메모리 리소스들이 요구될 수도 있다.
PLC 가 사용되지 않는 경우, SBC 인코더에 의해 인코딩된 광대역 음성 비트 스트림이 SBC 디코더에 의해 수신될 수도 있다. 비트 스트림 파서는 역 양자화기에의 입력을 위해 그 비트 스트림을 파싱하여 포맷할 수도 있다. 역 양자화기는 합성 필터 뱅크에의 입력을 위해 서브 밴드 샘플들을 재구성한다. 합성 필터 뱅크는 재구성된 서브 밴드 샘플들을 시간 영역 (예컨대, 펄스부호 변조된 (PCM)) 샘플들로 변환한다. 시간 도메인 샘플들은 SBC 디코더에 의해 디코딩된 광대역 음성을 포함할 수도 있다. 패킷이 PLC 없이 부정확하게 수신되거나 또는 손실되면, 예를 들어, 디코딩된 광대역 음성에서 원하지 않는 왜곡이 위에서 설명한 바와 같이 일어날 수도 있다.
이하, 이해를 위해서, 하나의 전통적인 PLC 방식의 설명이 제공된다. G.711 는 전통적인 PLC 전기통신 표준화 부문 (ITU-T) 표준이다. G.711 디코더를 위한 PLC 는 본질적으로, 마지막 가용 샘플들에 가장 유사한, 정확하게 수신된 이전 샘플들에서 단편 (fragment) 을 탐색함으로써 손실 음성 프레임을 추정한다. 그 후, 디코더는 이 단편을 이전 (정확하게 수신된) 프레임과 후속 (정확하게 수신된) 프레임 사이에 삽입한다.
10 밀리초 (msec) 프레임의 패킷이 정확하게 수신될 때, 디코딩된 프레임들이 최대 피치 길이의 2 배 보다 더 큰 길이의 이력 버퍼에 저장된다. 패킷이 손실되면, 피치 분석 블록에서 최종 피치 기간이 결정된다. 먼저, 최대 피치 길이와 동일한 길이의 블록 (x) 가 이력 버퍼 내의 가장 최근의 샘플들로부터 취해지며, 이때 최대 피치 길이는 120 으로 설정된다. 또한, 동일 길이의 또 다른 블록 (y0) 이 이력 버퍼에서 최소 시간 지연으로 취해진다. 이들 2 개의 블록들 (x 및 y0) 에 대해, 정규화된 상관이 계산되어 지역 변수 R(0) 에 저장된다. 다음으로, 제 2 블록 (y1) 이 한 샘플 만큼 증가된 시간 지연으로 이력 버퍼에서 샘플들을 취함으로써, 획득된다. 2 개의 블록들 (x 및 y1) 을 사용하여, 정규화된 상관 R(1) 이 계산된다. 시간 지연이 최대 피치 길이까지 증가될 때까지 이들 동작들이 반복된다. 최종 피치 기간이 그 정규화된 상관을 최대화하는 시간 지연 (time lag) 으로서 결정된다.
요약하면, G.711 PLC 는 첫 번째로, 이력 버퍼 내의 샘플 블록들과 최근의 블록 사이의 상관들을 계산한다. 두 번째로, 상관이 최대화되는 최종 피치 기간을 결정한다. 세 번째로, 최종 피치 기간을 손실 프레임에 복사한다. 네 번째로, 수신된 샘플과 은닉된 샘플 사이의 부드러운 전환을 위해 테일 (tail) 중첩 합산 (OLA) 을 수행한다. 다섯 번째로, 은닉된 샘플들과 후속 프레임 사이의 끊김없는 (seamless) 전환을 위해 헤드 (head) OLA 를 수행한다.
피치 분석은 상당량의 산술 연산들을 필요로 함을 알 수 있으며, 이는 10 msec 프레임의 G.711 디코딩의 계산 복잡성을 초과할 수도 있다. 계산 부담을 감소시키기 위해, PLC 표준은 피치 분석을 어림 추정 및 그것의 정제 (refinement) 의 방법으로 수행하는 알고리즘을 채용한다. 데시메이트된 샘플들에 대한 상관들을 하프 레이트 (half rate) 에서 계산함으로써 최종 피치 기간의 어림 추정치가 획득된다. 이 어림 추정치로부터, 정제를 위한 3 개의 후보들 (어림 추정치 및 그것의 2 개의 이웃들) 이, 각각의 후보에 대해, 마지막 2 개의 피치 기간들에서의 블록들 사이의 정규화된 상관들을 계산하고 그 상관을 최대화하는 후보를 선택함으로써, 비교된다.
일단 최종 피치 기간이 피치 분석에서 결정되면, 이력 버퍼 내의 최종 피치 기간이 손실 프레임에 복사된다. 최종 피치 기간으로부터의 샘플들에 더해, 프레임 경계에서의 파형 불연속성을 방지하기 위해서, 최종 피치 기간 직전의 3.75 msec 샘플 블록이 또한 복사되어, 이력 버퍼에서의 가장 최근의 세그먼트와 중첩-합산 (OLA) 된다. 이 테일 OLA 프로세스로부터, (출력 버퍼로 이미 출력된) 이전 프레임에서의 샘플들의 마지막 3.75 msec 이 현재의 프레임의 은닉에서 변경됨을 알 수 있다. 따라서, 디코딩된 또는 은닉된 프레임들이 출력 버퍼로 출력될 때, 그 프레임의 샘플들은 3.75 msec 블록에 대한 잠재적인 변경을 가능하도록 하기 위해 3.75 msec 만큼 지연될 수도 있다. 따라서, 은닉된 프레임에서의 처음 6.25 msec 샘플들이 이전 프레임에서의 마지막 3.75 msec 만큼 선행하며, 마지막으로, 10 msec 의 연결 (concatenated) 프레임이 출력 버퍼로 인출된다.
우수한 패킷이 패킷들의 손실 후에 수신될 때, 디코딩된 프레임이 이전에 은닉된 프레임의 직후에 삽입된다. 그러나, 프레임 경계에서 파형 불연속성이 존재할 수도 있다. 끊김없는 전환을 보장하기 위해, 3.75 msec 의 샘플 블록이 이전 피치 기간으로부터 반복되며, 디코딩된 프레임에서 처음 3.75 msec 블록과 중첩-합산된다. 이 디코딩된 프레임의 변경 후, 3.75 msec 만큼 지연된 10 msec 블록이 출력 버퍼로 출력된다.
일반적으로, 서브 밴드 코딩 (SBC) 디코더는 수신된 서브 밴드 샘플들로부터 시간 도메인 신호들을 재구성한다. 단일 SBC 패킷의 손실은 그 프레임에서의 서브 밴드 샘플들의 손실을 의미한다. 따라서, 손실된 서브 밴드 샘플들을 추정하는 SBC 디코더에 대해서는 PLC 방식을 설계하는 것이 바람직할 수도 있다. 그러나, 이 경우, 이력 버퍼에서의 신호들이 크게 데시메이트된 (decimated) 서브 밴드 샘플들이기 때문에, 이 작업이 어려울 수도 있다. 대신, G.711 PLC 가 그의 장점들로 인해, SBC 디코더에 포함될 수도 있다. 그러나, 이 접근방법에서는, SBC 디코더에의 PLC 의 포함이 G.711 디코더에서와 같이 수월하지 않을 수도 있다.
구체적으로 설명하면, 단일 SBC 패킷이 손실될 때, 그 손실 패킷에서의 서브 밴드 샘플들이 손실된 것으로 간주될 수 있다. 따라서, 패킷 또는 프레임의 디코딩이 생략될 수도 있으며, 패킷 또는 프레임이 은닉될 수도 있다. 이들 프로세스들 동안, 합성 필터 메모리가 업데이트되지 않을 수도 있다. 이것은 심지어 후속 패킷이 정확하게 수신되더라도, 후속 프레임의 재구성 동안 심한 왜곡을 일으킬 수도 있다. 즉, 단일 패킷의 손실은 2 개의 프레임들에 걸쳐서 파형 왜곡을 초래할 수도 있다. 따라서, 출력 오디오에서의 더 많은 손상이 불가피할 수도 있기 때문에, 하나 보다 많은 SBC 프레임 사이즈의 음성 샘플들이 PLC 에 의해 은닉될 수도 있다.
은닉된 오디오의 품질 문제 이외에도, G.711 PLC 를 포함시키는 것은 본질적으로 3.75 밀리초 (msec) 지연을 필요로 하며, 이것은 지연-민감한 블루투스 (BT) 애플리케이션들에 바람직하지 않다. 게다가, 알고리즘적인 복잡성이 협대역 (NB) 음성에 대한 G.711 PLC 의 복잡성에 비해 상당히 증가될 수도 있기 때문에, PLC 에 의해 요구되는 계산들이 또한 관심사이다. 구체적으로, 상관 계산에 사용되는 샘플 블록들의 길이가 광대역 (WB) 음성 PLC 의 경우에 2 배가 될 수도 있기 때문에, 산술 연산들의 수가 4 배 만큼 증가될 것이다. 그 결과, PLC 를 수행하기 위한 계산들이 단일 프레임의 SBC 디코딩에 요구되는 계산들을 휠씬 초과하게 될 것이다. 어림 추정 및 그것의 정제를 통한 최적의 피치 지연을 발견하기 위해 효율적인 기법이 채용될 수 있되더라도, 이 계산 부담은 쉽게 덜지 못할 수도 있다.
G.711 PLC 의 성능 제한사항들을 해소하기 위해, 본 명세서에서 개시한 시스템들 및 방법들은 SBC 디코딩 구조 내에의 효율적인 G.711 PLC 의 포함을 가능하게 할 수도 있다. 본 명세서에서 개시한 시스템들 및 방법들은, 왜곡된 샘플들을 은닉하는데 있어 그리고 피치 분석을 수행하는데 있어, SBC 디코더에서 모든 가용 정보를 활용할 수도 있다.
G.711 PLC 와 유사하게, 정확하게 수신된 패킷들이 디코딩되어, 이력 버퍼에 저장될 수도 있다. 또한, 시간 도메인 샘플들에 더해, 디코딩된 다수의 제 1 서브 밴드 샘플들이 (예를 들어, 더 작은 사이즈의) 서브 밴드 버퍼에 저장될 수도 있다.
SBC 패킷이 손실될 때, 손실 프레임에서의 손실된 서브 밴드 샘플들은 제로 (zero) 로 추정될 수도 있다. 서브 밴드 샘플들이 제로로 설정되면, 하나 이상의 합성 필터들이 제로-입력 응답을 출력할 수도 있다. 제로-입력 응답을 합성하는 동안 합성 필터 상태들이 제로로 재설정될 수도 있기 때문에, 패킷이 정확하게 수신될 때의 다음 프레임 재구성이 제로-상태 응답일 수도 있다. 일 예에서, 후속 프레임에서의 제로-상태 응답이 손실 프레임에서의 제로-입력 응답에 뒤이을 수도 있다. 예를 들어, 제 1 패킷이 손실될 때, 디코더는 제로-입력 응답을 출력할 것이다. 그 후, 제 2 프레임이 정확하게 수신될 수도 있다. 오직 하나의 패킷이 손실되는 경우에도 2 개의 프레임들 양자에 걸쳐서 파형 왜곡이 관찰될 수도 있다.
따라서, 단일 패킷의 손실이 2 개의 프레임들에 걸쳐서 파형 왜곡을 일으킬 수도 있지만, 손실 프레임에서의 제로-입력 응답의 처음 수 밀리초 (msec) 및 다음 프레임에서의 마지막 수 msec 가 원래의 신호에 가깝게 재구성될 수도 있다. 따라서, 2 개의 부분들 사이에서의 샘플들이 G.711 PLC 를 통해서 추정될 수도 있다. 추정된 샘플들이 이웃하는 샘플들과의 테일 및 헤드 (tail and head) OLAs 를 통해서 삽입될 수도 있다. SBC 디코더에서의 합성 필터 (synthesis filter) 의 제로-입력 및 제로-상태 응답들을 활용함으로써, G.711 PLC 에 의해 본질적으로 요구되는 3.75 msec 지연이 방지될 수도 있다.
또한, 모든 가용 정보를 전부 사용하는 접근방법이 피치 분석에 적용될 수도 있다. 손실 및 다음 프레임들에서의 왜곡된 샘플들을 은닉하기 위해, 이전 프레임이 G.711 PLC 에서 효율적으로 사용되는 바와 같이 어림 추정 및 그것의 정제를 사용하여 유사하게 탐색될 수도 있다. 그러나, 어림 추정치는 저장된 서브 밴드 샘플들의 정규화된 상관들 (예컨대, 자기상관들) 을 계산하여 달리 획득될 수도 있다. 8-배 데시메이트된 서브 밴드 샘플들에 대해 상관들이 계산되기 때문에, 예를 들어, 계산 횟수 및 메모리 사용의 관점에서 상당한 감소가 달성될 수도 있다. 예를 들어, 최대 허용 피치 지연이 WB 음성에 대해 240 개의 샘플들로서 정의될 때, 상관 계산이 240 개의 샘플들의 2 개의 블록들에 대해 수행될 수도 있으며, 이력 버퍼는 적어도 2*240 샘플들을 저장할 수도 있다. 그러나, 본 명세서에서 개시한 시스템들 및 방법들에 따른 서브 밴드 샘플들을 사용하여, 최대 허용 피치 지연이 또한 30 개의 샘플들에 대해 8-배 데시메이트될 수도 있다. 30 개의 샘플들의 2 개의 블록들에 대해 상관들이 계산될 수 있으며, 따라서 단지 2*30 샘플들만이 서브 밴드 버퍼에 저장될 필요가 있을 수도 있다.
그 후, 어림 추정치가 이력 버퍼에서의 시간 도메인 샘플들을 사용하여 정제될 수도 있다. G.711 PLC 에서, 정제는 각각의 정제 후보에 대해 마지막 2 개의 피치 기간들에서 블록들 사이의 정규화된 상관들을 계산함으로써 수행된다. 이를 위해서, 2 배 최대 피치 지연의 시간 도메인 샘플들이 이력 버퍼에 저장될 필요가 있을 수도 있다. 메모리 사용에 대한 이런 부담을 덜기 위해, 본 명세서에서 개시한 시스템들 및 방법들은, 절반 만큼 (예를 들어, 최대 피치 지연까지) 이력 버퍼 사이즈의 감소를 가능하게 하는 피치 정제를 위해, 효율적인 방식을 채용한다. 예를 들어, 본 명세서에서 개시한 시스템들 및 방법들은 손실 프레임의 제로-입력 응답에서 샘플들 (예컨대, 펄스코드 변조된 (PCM) 샘플들) 의 처음 수 msec 를 사용하고 그것을 상관 계산에서 제 1 인수 (argument) 로서 사용할 수도 있다. 제 2 인수는 각각의 피치 정제 후보에 대해 이력 버퍼에서의 1-피치-지연된 샘플들일 수도 있다. 이들 2 개의 짧은 블록들을 사용하여, 상관이 효율적으로 계산될 수도 있다. 이 상관들은, 상관들을 최대화하는 피치 지연을 피치 분석의 최종 출력으로서 선택하는데 사용될 수도 있다. 이 접근방법은, 손실 프레임에서의 제로-입력 응답의 처음 수 msec 가 원래의 신호에 가깝게 재구성될 수도 있고 피치 지연 만큼 떨어진 2 개의 짧은 블록들 사이의 상관들이 정확한 정제 결과들을 야기시킬 수도 있다는 관찰로부터 정당성을 찾을 수도 있다.
복잡성 감소에의 또 다른 기여는 단지 처음 수개의 서브 밴드 샘플들 (제로들로 설정됨) 을 합성 필터들에 공급하여 제로-입력 응답의 처음 수 msec 를 계산함으로써, 이루어질 수도 있다. 최소의 계산들 및 메모리 사용을 위해 본 명세서에서 개시한 시스템들 및 방법들을 적용함으로써, 피치 분석에 의해 요구되는 계산 횟수 및 메모리 사용이 상당히 감소될 수도 있다. 따라서, PLC 의 알고리즘적인 복잡성이 통상의 SBC 디코딩의 복잡성과 유사하게 유지될 수도 있다.
최종 피치 기간으로 식별되는 샘플들이 반복될 수도 있으며, 최종 피치 기간의 반복되는 피치 기간들 또는 샘플들이 손실 프레임에 복사될 수도 있다. 수신된 프레임과 은닉된 프레임 사이의 부드러운 전환 (transition) 을 위해, OLA 가 제로-입력 응답의 처음 수 msec 과 이력 버퍼에서의 1-피치-지연된 샘플들 사이에 수행될 수도 있다. 은닉된 또는 재구성된 블록 (예컨대, 패킷 또는 프레임) 이 G.711 PLC 에서 일어나는 여분의 지연 없이, 디코더 출력 버퍼로 출력될 수도 있다. 다음의 우수한 패킷이 디코더에서 수신될 때까지 최종 피치 기간이 페이드-인 신호 감쇠와 함께 반복될 수도 있다.
디코더에 우수한 패킷이 다시 공급될 때, 디코딩된 서브 밴드 샘플들이 하나 이상의 합성 필터들에 적용될 수도 있다. 그러나, 이 경우, 제로로 재설정되어 있는 필터 상태들로 인해 제로-상태 응답을 출력할 수도 있다. 따라서, 예를 들어, 처음 5 msec 에 걸친 제로-상태 응답이 이전 프레임으로부터 계속된 최종 피치 기간으로 대체될 수도 있다. 최종 피치 기간이 제로-상태 응답에서 대응하는 부분 (fraction) 과의 헤드 OLA 를 위해 조금 더 많은 msec 에 걸쳐서 다시 계속될 수도 있다. 이러한 방법으로, 은닉된 프레임으로부터 디코딩된 프레임으로 끊김없는 전환이 달성될 수도 있다. 채워진 프레임은 디코딩된 프레임과 은닉된 프레임 사이의 OLAs 를 위해 달리 요구되는 여분의 지연 없이, 디코더 출력 버퍼로 전해질 수도 있다.
SBC 디코더에서 PLC 에 대해 본 명세서에서 개시한 시스템들 및 방법들은 은닉된 프레임과 디코딩된 프레임 사이의 끊김없는 전환을 위해 SBC 합성 필터들의 제로-입력 및 제로-상태 응답들을 사용할 수도 있다. 또한, 본 명세서에서 개시한 시스템들 및 방법들은 감소된 또는 최소의 계산들 및 메모리 사용으로 피치 분석의 효율적인 실현을 가능하게 할 수도 있다. 일반적으로, 본 명세서에서 개시한 시스템들 및 방법들은 G.711 PLC 와의 사용에 한정되지 않으며, SBC 디코더에 임의의 PLC 를 포함시키는 작업에 적용될 수도 있다. 예를 들어, 오디오 품질이 다른 설계 제한 사항들보다 더 우선시되는 일부 애플리케이션들에서는, LP 분석 및 피치 분석을 통해서 손실 프레임을 추정하는 선형 예측-기반의 (LP-기반의) PLC 가 채용될 수도 있다. PLC 포함 시에, 은닉된 프레임과 디코딩된 프레임 사이의 끊김없는 전환을 위해, SBC 합성 필터들의 제로-입력 및 제로-상태 응답들을 사용하여, 은닉된 프레임이 그의 이웃하는 프레임들에 끊김없이 삽입될 수도 있다. 게다가, LP-기반의 PLC 에서의 피치 분석이, 본 명세서에서 개시한 시스템들 및 방법들에 따른, 감소된 계산들 및 메모리 사용에 의한 피치 분석의 효율적인 실현을 사용함으로써 효율적으로 수행될 수도 있다.
이 패킷 손실 은닉 (PLC) 방식의 일부 유익한 양태들은 특히 서브 밴드 샘플 버퍼에서의 자기-상관된 서브 밴드 샘플들을 사용한 어림 추정치들의 계산 및 제로-입력 응답 샘플들의 사용을 포함한다. 이 접근방법은 PLC 방식의 계산 복잡성 뿐만 아니라 메모리 사용을 감소시킬 수도 있다. 게다가, 이 접근방법은, 다른 접근방법들에서 일어나는 지연들이 본 명세서에서 개시한 시스템들 및 방법들에 따른 PLC 에서는 일어나지 않기 때문에, 유익할 수도 있다.
따라서, 패킷 손실 은닉 (PLC) 또는 손실 패킷 재구성을 위한 향상된 시스템들 및 방법들은 손실 패킷들의 효율적인 재구성을 가능하게 할 수도 있다. 이들 향상된 시스템들 및 방법들은 서브 밴드 코딩된 광대역 (및/또는 협대역) 음성 신호에 적용될 수도 있다. 본 명세서에서 개시한 시스템들 및 방법들은 계산 복잡성 및 메모리 사용을 감소시킬 수도 있다.
이하, 다양한 구성들이 도면들을 참조하여 설명되며, 이때 유사한 참조부호들은 기능적으로 유사한 엘리먼트들을 나타낼 수도 있다. 도면들에 도시되고 여기에 일반적으로 설명되는 바와 같은 시스템들 및 방법들은 다양한 다른 구성들로 배열 및 설계될 수 있다. 따라서, 도면들에 나타낸 바와 같은, 여러 구성들의 다음의 보다 상세한 설명은 청구한 것으로 범위를 한정하려는 것이 아니라, 단지 그 시스템들 및 방법들을 나타낸다.
도 1 은 패킷 손실 은닉 (PLC) 또는 손실 패킷 재구성을 위한 시스템들 및 방법들이 구현될 수도 있는 전자 디바이스 (102) 의 일 구성을 도시하는 블록도이다. 전자 디바이스 (102) 의 예들은 무선 통신 디바이스들, 예컨대 셀룰러 폰들, 스마트 폰들, 랩탑 컴퓨터들, 개인 휴대정보 단말들 (PDAs), e-리더들, 게이밍 시스템들, 무선 모뎀들 등을 포함한다. 전자 디바이스 (102) 의 다른 예들은 데스크탑 컴퓨터들, 전화들, 리코딩 디바이스들 등을 포함한다. 전자 디바이스 (102) 는 서브 밴드 코딩 (SBC) 디코더 (104), 하나 이상의 스피커들 (114) 및/또는 메모리 (116) 를 포함할 수도 있다. 본 명세서에서 개시한 시스템들 및 방법들에 따르면, SBC 디코더 (104) 는 패킷 손실 검출기 (106), 역 양자화기 (108), 합성 필터 뱅크 (110) 및/또는 PLC / 손실 패킷 재구성 모듈 (112) 을 포함할 수도 있다.
패킷 손실 검출기 (106) 는 오디오, 보이스 또는 음성 정보가 정확하게 수신되고/되거나 디코딩되지 않을 때를 결정할 수도 있다. 일 구성에서, 전자 디바이스 (102) 는 또 다른 전자 디바이스로부터 (예컨대, 유선 또는 무선 링크를 사용하여) 보이스 또는 음성 정보를 수신할 수도 있다. 또 다른 구성에서, 전자 디바이스 (102) 는 메모리 (116) (예컨대, RAM, 하드 드라이브 등) 로부터 보이스 또는 음성 정보를 취출할 수도 있다. 패킷 손실 검출기 (106) 는 (예를 들어, 보이스 또는 음성 정보의) 패킷이 손실되었다고 에러 검출 코딩, 예컨대 CRC (Cyclic Redundancy Check) 를 사용하여 결정할 수도 있다. 패킷 손실 검출기 (106) 는 패킷이 손실되었다는 것을 다른 방법으로 결정할 수도 있다. 예를 들어, 예상된 보이스 또는 음성 정보가 특정의 시간 기간 내에 도달하지 않거나 또는 전자 디바이스 (102) 가 수신된 보이스 또는 음성 정보를 적절하게 디코딩할 수 없으면, 패킷 손실 검출기 (106) 는 패킷이 손실되었다고 결정할 수도 있다. 역 양자화기 (108) 는 보이스 또는 음성 신호의 서브 밴드 샘플들을 재구성할 수도 있다. 합성 필터 뱅크 (110) 는 하나 이상의 합성 필터들을 포함할 수도 있으며, 재구성된 서브 밴드 샘플들을 시간 도메인 (오디오) 샘플들로 변환할 수도 있다.
패킷 손실 은닉 (PLC) 또는 손실 패킷 재구성 모듈 (112) 은 손실 패킷들을 은닉하거나 또는 재구성할 수도 있다. 보다 구체적으로 말하면, PLC 또는 손실 패킷 재구성 모듈 (112) 은 정밀 피치 추정치를 획득하기 위해 합성 필터 뱅크 (110) 의 제로-입력 응답 및 (예를 들어, 서브 밴드 샘플들을 사용하여 획득된) 어림 피치 추정치를 사용할 수도 있다. 정밀 피치 추정치가 최종 피치 기간을 선택하는데 사용될 수도 있다. 최종 피치 기간으로부터의 샘플들이 손실 패킷의 프레임에 복사되거나 또는 삽입될 수도 있다. 따라서, 손실 패킷이 "은닉되거나 (concealed)" 또는 재구성될 수도 있다. 일 구성에서, "재구성된" 패킷 또는 샘플들 (예컨대, 손실 패킷이 점유했을 프레임에서의 샘플들) 은 하나 이상의 스피커들 (114) 을 사용하여 음향적으로 (acoustically) 출력될 수도 있다. 또 다른 구성에서, "재구성된" 패킷 또는 샘플들은 메모리 (116) 에 저장될 수도 있다. 또 다른 구성에서, "재구성된" 패킷 또는 샘플들은 또 다른 전자 디바이스로 송신될 수도 있다.
예를 들어, 패킷이 손실될 때, PLC / 손실 패킷 재구성 모듈 (112) 은 손실 패킷 또는 프레임을 최종 피치 기간으로부터의 샘플들로 대체하거나 또는 채울 수도 있다. 최종 피치 기간은 선행 프레임 또는 패킷으로부터의 일련의 샘플들을 포함할 수도 있다. 최종 피치 기간으로부터의 샘플들은 손실 또는 분실 패킷 또는 프레임에 복사, 삽입 및/또는 병합될 수도 있다. 따라서, 이것은 선행 프레임으로부터의 피치를 계속할 수도 있다. 따라서, 손실 또는 분실 패킷 또는 프레임에 배치된 샘플들은 (음향 신호로서 출력될 때) 선행 프레임과 유사하게 들릴 수 있으므로, 원하지 않는 왜곡들을 피할 수도 있다. 본 명세서에서 사용할 때, 용어들 "재구성하는", "재구성한다", "은닉 (concealment)", "은닉한다 (conceal)" 및 다른 변형들이 손실 패킷으로부터가 아닌 다른 샘플들과의 손실 패킷의 대체 (또는, 손실 패킷이 점유했을 프레임에서의 배치) 를 나타낼 수도 있음에 유의해야 한다. 따라서, 손실 패킷을 재구성하는 것은, 패킷 손실을 전자 디바이스 (102) 의 사용자에게 더 적게 알게 하려는 시도일 수도 있다.
도 2 는 패킷 손실 은닉 (PLC) 또는 손실 패킷 재구성을 위한 시스템들 및 방법들이 구현될 수도 있는 무선 통신 디바이스 (202) 의 일 구성을 도시하는 블록도이다. 무선 통신 디바이스 A (202) 는 하나 이상의 안테나들 (218), 하나 이상의 스피커들 (214), 메모리 (216) 및/또는 SBC 디코더 (204) 를 포함할 수도 있으며, SBC 디코더 (204) 는 PLC 또는 손실 패킷 재구성 모듈 (212) 을 포함할 수도 있다. 무선 통신 디바이스 B (222) 는 SBC 인코더 (224) 및/또는 하나 이상의 안테나들 (220) 을 포함할 수도 있다. 무선 통신 디바이스 A (202) 및 무선 통신 디바이스 B (222) 는 그들 각각의 안테나들 (218, 220) 을 사용하여 서로 통신할 수도 있다.
무선 통신 디바이스 B (222) 는 오디오 (예컨대, 보이스 또는 음성) 신호를 인코딩하기 위해 SBC 인코더 (224) 를 사용할 수도 있다. 예를 들어, 무선 통신 디바이스 B (222) 는 오디오 신호 (예컨대, 사용자의 보이스 또는 음성) 를 캡쳐하기 위한 마이크로폰 (미도시) 을 포함할 수도 있다. 무선 통신 디바이스 B (222) 는 그 오디오 신호를 SBC 인코더 (224) 를 사용하여 인코딩할 수도 있다. SBC 인코딩된 신호는 무선 통신 디바이스 A (202) 로 하나 이상의 안테나들 (220) 을 사용하여 송신될 수도 있다. 무선 통신 디바이스 A (202) 는 SBC 인코딩된 신호를 하나 이상의 안테나들 (218) 을 사용하여 수신할 수도 있다. 그 후, 무선 통신 디바이스 A (202) 는 SBC 인코딩된 신호를 SBC 디코더 (204) 를 사용하여 디코딩할 수도 있다. SBC 인코딩된 신호의 임의의 패킷들이 손실되거나 또는 분실되면, 무선 통신 디바이스 A (202) 는 손실 패킷 대신 다른 샘플들 (예컨대, "재구성된" 패킷) 을 은닉하거나 또는 배치하기 위해 PLC / 손실 패킷 재구성 모듈 (212) 을 사용할 수도 있다. SBC 디코딩된 오디오 신호는 하나 이상의 스피커들 (214) 을 사용하여 음향적으로 출력될 수도 있으며, 메모리 (216) 에 저장될 수도 있으며, 그리고/또는 또 다른 전자 디바이스 또는 무선 통신 디바이스로 송신될 수도 있다.
일 구성에서, 예를 들어, 무선 통신 디바이스 B (222) 는 블루투스 헤드셋이며 무선 통신 디바이스 A (202) 는 셀룰러 폰이다. 사용자는 전화 콜에 대한 그의 보이스 또는 음성을 캡쳐하기 위해 무선 통신 디바이스 B (222) (예컨대, 블루투스 헤드셋) 를 사용할 수도 있다. 사용자의 보이스 또는 음성은 마이크로폰에 의해 캡쳐되어 SBC 인코더 (224) 를 사용하여 인코딩된다. 예를 들어, 캡쳐된/인코딩된 음성은 광대역 음성 또는 협대역 음성일 수도 있다. SBC 인코딩된 오디오 (예컨대, 보이스, 음성) 신호는 안테나 (220) 를 사용하여 송신된 후, 안테나 (218) 를 사용하여 무선 통신 디바이스 A (202) (예컨대, 셀룰러 폰) 에 의해 수신된다. 무선 통신 디바이스 A (202) 는 SBC 인코딩된 신호를 디코딩하기 위해 SBC 디코더 (204) 를 사용한다. 패킷이 손실되거나 또는 분실되면, 무선 통신 디바이스 A (202) 는 이전 프레임으로부터의 샘플들을 손실 또는 분실 패킷의 프레임에 배치하기 위해 PLC / 손실 패킷 재구성 모듈 (212) 을 사용한다. 결과의 SBC 디코딩된 신호는 오디오 신호 (예컨대, 하나 이상의 "은닉된" 패킷들을 갖는 광대역 또는 협대역 오디오 신호) 이다. 이 예에서, 무선 통신 디바이스 A (202) (예컨대, 셀룰러 폰) 는 오디오 신호를 포맷하여 (예컨대, 에러 검출/정정 코딩을 추가하고, 변조하는 등), 그것을 또 다른 전자 디바이스 (예컨대, 셀룰러 폰, 지상 통신선 전화 등) 로 송신할 수도 있다. 추가적으로 또는 대안으로, 오디오 신호는 메모리 (216) 에 저장될 수도 있고/있거나 하나 이상의 스피커들 (214) 을 사용하여 음향적으로 출력될 수도 있다.
도 3 은 패킷 손실 은닉 (PLC) 또는 손실 패킷 재구성을 위한 시스템들 및 방법들이 구현될 수도 있는 무선 통신 디바이스 (302) 의 또 다른 구성을 도시하는 블록도이다. 무선 통신 디바이스 (302) 는 하나 이상의 안테나들 (318), 하나 이상의 스피커들 (314), 메모리 (316) 및/또는 SBC 디코더 (304) 를 포함할 수도 있으며, SBC 디코더 (304) 는 PLC / 손실 패킷 재구성 모듈 (312) 을 포함할 수도 있다. 기지국 (328) 은 하나 이상의 안테나들 (326) 을 사용하여 무선 통신 디바이스 (302) 와 통신할 수도 있다.
위에서 설명한 바와 같이, 무선 통신 디바이스 (302) 의 일 예는 셀룰러 폰이다. 예를 들어, 무선 통신 디바이스 (302) (예컨대, 셀룰러 폰) 가 블루투스 헤드셋 (예컨대, 도 2 의 무선 통신 디바이스 B (222)) 으로부터 SBC 인코딩된 오디오 신호를 수신하였다고 가정한다. 또한, SBC 인코딩된 오디오 신호의 하나 이상의 패킷들이 손실되었다고 (예컨대, 정확하게 수신되거나 또는 디코딩되지 않았다고) 가정한다. 무선 통신 디바이스 (302) 는 수신된 SBC 인코딩된 오디오 신호를 SBC 디코더 (304) 를 사용하여 디코딩한다. 또한, 무선 통신 디바이스 (302) 는 손실 패킷(들) 을 PLC / 손실 패킷 재구성 모듈 (312) 을 사용하여 은닉하거나 또는 대체한다. 결과의 신호는 또 다른 프레임 또는 패킷으로부터의 샘플들로 대체된 하나 이상의 손실 패킷들을 가진 디코딩된 오디오 신호 또는 샘플들이다. 그 후, 이 디코딩된 오디오 신호는 송신을 위해 포맷될 수도 있다 (예컨대, 에러 정정/검출 코딩이 추가되고, 변조될 수 있는 등). 그 후, 이 포맷된 오디오 신호는 하나 이상의 안테나들 (318) 을 사용하여 송신되어, 하나 이상의 안테나들 (326) 을 사용하여 기지국 (328) 에 의해 수신될 수도 있다. 그 후, 기지국 (328) 은 그 오디오 신호를 또 다른 전자 디바이스로 중계할 수도 있다. 예를 들어, 기지국 (328) 은 오디오 신호를 전화, 컴퓨팅 디바이스 (예컨대, 데스크탑/랩탑 컴퓨터) 또는 셀룰러 폰으로 공중 교환 전화 네트워크 (PSTN) 또는 인터넷을 사용하여 (예를 들어, VoIP (Voice over Internet Protocol) 을 통해서) 전송할 수도 있다. 그 후, 오디오 신호는 전자 디바이스 (예컨대, 전화, 컴퓨팅 디바이스, 셀룰러 폰 등) 로 출력될 수도 있다. 추가적으로 또는 대안으로, 무선 통신 디바이스 (302) 는 디코딩된 오디오 신호를 메모리 (316) 에 저장하고/하거나 그 디코딩된 오디오 신호를 하나 이상의 스피커들 (314) 을 사용하여 출력할 수도 있다.
도 4 는 서브 밴드 코딩 (SBC) 디코더에서 손실 패킷들을 은닉하거나 또는 재구성하는 방법 (400) 의 일 구성을 도시하는 흐름도이다. 예를 들어, 도 4 는 어떻게 패킷 손실 은닉 (PLC) 또는 손실 패킷 재구성 모듈 (112) 이 3 개의 PLC 케이스들 (cases) 사이에 스위칭할 수 있는지를 도시한다. 일반적으로, PLC 케이스 I 은 SBC 인코딩된 오디오의 패킷 또는 프레임이 정확하게 디코딩된 후, 손실된 또는 부정확히 디코딩된 패킷이 뒤따르는 경우를 나타낼 수도 있다. PLC 케이스 II 는 손실 또는 부정확히 디코딩된 패킷에 뒤이어 추가적인 손실 또는 부정확히 디코딩된 패킷이 따르는 경우를 나타낼 수도 있다. PLC 케이스 III 은 손실 또는 부정확히 디코딩된 패킷에 뒤이어 정확히 디코딩된 패킷이 따르는 경우를 나타낼 수도 있다.
(예컨대, SBC 디코더 (104) 및 PLC / 손실 패킷 재구성 모듈 (112) 을 가진) 전자 디바이스 (102) 는 SBC 인코딩된 오디오 신호 (예컨대, 수신된 광대역 음성 비트 스트림) 를 디코딩하기 시작할 수도 있다 (402). 전자 디바이스 (102) 는 패킷이 손실되었는지 여부 (예컨대, 수신되어, 부정확하게 디코딩되지 않았는지 등) 를 결정할 수도 있다 (404). 전자 디바이스 (102) 가 패킷이 손실되지 않았다고 결정하면 (404), 전자 디바이스 (102) 는 손실 패킷이 검출되거나 또는 결정될 때까지 (404) SBC 인코딩된 오디오 신호 (예컨대, 수신된 광대역 음성 비트 스트림) 를 계속 디코딩할 수도 있다. 전자 디바이스 (102) 가 패킷이 손실되었다고 결정하면 (404), 전자 디바이스 (102) 는 PLC 케이스 I 을 수행할 수도 있다 (406). PLC 케이스 I 을 수행할 때에 (406), 전자 디바이스 (102) 는 최종 피치 기간을 결정할 수도 있다. 최종 피치 기간은 정확히 디코딩된 패킷으로부터의 다수의 샘플들일 수도 있다. 전자 디바이스 (102) 는 최종 피치 기간으로부터의 하나 이상의 샘플들을 손실 패킷 또는 프레임에 배치하거나 또는 복사할 수도 있다. PLC 케이스 I 을 수행하는 것 (406) 에 관한 보다 세부 사항이 아래에 주어진다.
전자 디바이스 (102) 는 (예를 들어, 일단 PLC 케이스 I 이 수행되면 (406)) 추가적인 손실 패킷이 있는지 여부를 결정할 수도 있다. 전자 디바이스 (102) 가 추가적인 손실 패킷이 없다고 결정하면 (408), 전자 디바이스 (102) 는 PLC 케이스 III 을 수행할 수도 있다 (414). PLC 케이스 III 을 수행할 때에 (414), 전자 디바이스 (102) 는 최종 피치 기간으로부터의 하나 이상의 샘플들을 정확히 디코딩된 패킷 또는 프레임 또는 디코딩된 패킷 또는 프레임의 일 부분에 배치하거나 또는 복사할 수도 있다. 이것은 예를 들어, 정확히 디코딩된 패킷으로부터 우수한 또는 바람직한 샘플들로 전환하기 위해, 행해질 수도 있다. PLC 케이스 III 을 수행하는 것 (414) 에 관한 세부 사항들이 아래에 주어진다. 전자 디바이스 (102) (예컨대, SBC 디코더 (104)) 는 SBC 인코딩된 오디오 신호 (예컨대, 비트 스트림) 에서 손실 패킷이 있는지 여부를 결정하기 위해 (404) 되돌아 갈 수도 있다. 이것이 행해진 후, 예를 들어, PLC 케이스 III 의 실행 (414) 이 뒤따를 수도 있다.
전자 디바이스 (102) 가 (예를 들어, PLC 케이스 I 을 수행한 (406) 후에) 추가적인 손실 패킷이 있다고 결정하면 (408), 전자 디바이스 (102) (예컨대, SBC 디코더 (104)) 는 PLC 케이스 II 를 수행할 수도 있다 (410). PLC 케이스 II 를 수행할 때에 (410), 전자 디바이스 (102) 는 (최초에 결정된) 최종 피치 기간으로부터의 샘플들을 추가적인 손실 패킷 또는 프레임에 배치하거나 복사할 수도 있다. 이것은 손실 패킷 또는 프레임을 채우는 것이 요구되는 바에 따라서 반복적으로 행해질 수도 있다. 또한, 전자 디바이스 (102) 는 추가적인 손실 패킷(들) 또는 프레임(들) 에서 그 배치되거나 또는 복사된 샘플들을 페이딩할 수도 있다 (예컨대, 볼륨 또는 진폭을 점진적으로 감소시킬 수 있다). 전자 디바이스 (102) 는 추가적인 손실 패킷이 있는지 여부를 결정할 수도 있다 (412). 추가적인 손실 패킷이 있으면, 전자 디바이스 (102) 는 최종 피치 기간으로부터의 샘플들을 추가적인 손실 패킷들 또는 프레임들에 배치하거나 또는 복사함으로써, 그리고/또는 샘플들을 계속 페이딩함으로써, PLC 케이스 II 를 다시 수행할 수도 있다 (410). 전자 디바이스 (102) 가 추가적인 손실 패킷이 없다고 (예컨대, 실행가능한 패킷이 수신되었다고) 결정하면 (412), 전자 디바이스 (102) 는 PLC 케이스 III 을 수행하고 (414), (예를 들어, PLC 케이스 III 을 수행한 (414) 후에) 손실 패킷이 있는지 여부를 결정 (404) 하기 위해 되돌아 갈 수도 있다.
도 5 는 서브 밴드 코딩 (SBC) 디코더에서 손실 패킷들을 은닉하거나 또는 재구성하는 여러 모듈들의 일 구성을 도시하는 블록도이다. SBC 인코더에 의해 인코딩된 음성 비트 스트림 (예컨대, 광대역 음성 비트 스트림) (530) 은 비트 스트림 파서 (532) 로 입력될 수도 있다. 비트 스트림 파서 (532) 는 비트 스트림을 파싱할 수도 있으며 다음에 오는 디코더에 비트 에러 검출 및 데이터 재구성에 관한 정보를 제공할 수도 있다. 그 파싱된 (parsed) 비트 스트림은 패킷 손실 검출기 (506) 로 입력될 수도 있다. 패킷 손실 검출기 (506) 는 오디오, 보이스 또는 음성 정보가 정확하게 수신되고/되거나 디코딩되지 않은 때를 결정할 수도 있다. 패킷 손실 검출기 (506) 는 (예를 들어, 보이스 또는 음성 정보의) 패킷이 손실되었다는 것을 에러 검출 코딩, 예컨대 CRC (Cyclic Redundancy Check) 을 사용하여 결정할 수도 있다. 패킷 손실 검출기 (506) 는 패킷이 손실되었다는 것을 다른 방법으로 결정할 수도 있다. 예를 들어, 예상된 보이스 또는 음성 정보가 특정의 시간 기간 내에 도달하지 않으면, 또는 전자 디바이스 (102) 가 수신된 보이스 또는 음성 정보를 적절하게 디코딩할 수 없으면, 패킷 손실 검출기 (506) 는 패킷이 손실되었다고 결정할 수도 있다.
패킷 손실 검출기 (506) 는 SBC 디코더 (104) 가 어떻게 동작할 수 있는지를 결정하는데 사용될 수도 있다. 예를 들어, 패킷 손실 검출기 (506) 가 임의의 손실 패킷들을 검출하지 못하면, SBC 디코더 (104) 는 SBC 디코더 (104) 에 의해 디코딩된 음성 (544) (예컨대, 음성 샘플들) 을 생성하기 위해 역 양자화기 (508) (편의상, 도 5 에 "IQ" 로 약기함) 및 합성 필터 뱅크 (510) (편의상, 도 5 에 "SFB" 로 약기함) 를 직접 사용함으로써, 동작할 수도 있다. 역 양자화기 (508) 는 보이스 또는 음성 신호의 서브 밴드 샘플들을 재구성할 수도 있다. 재구성된 서브 밴드 샘플들은 서브 밴드 샘플 버퍼 (534) 에 입력되거나 저장될 수도 있다. 합성 필터 뱅크 (510) 는 재구성된 서브 밴드 샘플들을 SBC 디코더 (104) 에 의해 디코딩된 음성 (544) 의 시간 도메인 샘플들로 변환할 수도 있다. 또한, 이들 음성 샘플들 (544) 은 이력 버퍼 (536) 에 저장될 수도 있다. 예를 들어, 이력 버퍼 (536) 는 펄스 코드 변조된 (PCM) 음성 샘플들을 포함할 수도 있다.
패킷 손실 검출기 (506) 가 정확히 디코딩된 패킷에 뒤따르는 손실 패킷을 검출하면, 전자 디바이스 (102) 는 PLC 케이스 I (538) 로 스위칭하고/하거나 수행할 수도 있다. 즉, PLC 케이스 I (538) 은 적어도 하나의 패킷이 정확하게 디코딩된 후, 손실 또는 분실 패킷이 뒤따르는 경우에 수행될 수도 있다. PLC 케이스 I (538) 은 (0, x) 로 표시될 수도 있으며, 여기서 0 은 정확히 디코딩된 패킷 또는 프레임을 나타내며, x 는 분실 또는 손실 패킷을 나타낸다. PLC 케이스 II (540) 는 패킷 손실 검출기 (506) 가 분실 또는 손실 패킷에 뒤따르는 추가적인 분실 또는 손실 패킷 (예컨대, (x, x)) 을 검출할 때에 수행될 수도 있다. PLC 케이스 III (542) 은 패킷 손실 검출기 (506) 가 분실 또는 손실 패킷에 뒤이어서 정확히 디코딩된 패킷 (예컨대, (x, 0)) 이 검출될 때에 수행될 수도 있다. PLC 케이스 I (538), PLC 케이스 II (540) 또는 PLC 케이스 III (542) 에 따라서 동작할 때에, 전자 디바이스 (102) 는 SBC 디코더 (104) 에 의해 디코딩된 음성 (544) (예컨대, 광대역 음성) 샘플들을 일부 패킷 은닉 또는 재구성을 사용하여 생성할 수도 있다. PLC 케이스 I (538), PLC 케이스 II (540) 및 PLC 케이스 III (542) 에 관한 보다 구체적인 사항이 아래에 주어진다.
도 6 은 서브 밴드 코딩 (SBC) 디코더에서 손실 패킷들을 은닉하거나 또는 재구성하는 방법 (600) 의 보다 구체적인 구성을 도시하는 흐름도이다. 보다 구체적으로 말하면, 도 6 은 예를 들어, PLC 케이스 I 을 수행하는 것 (406) 에 관한 보다 자세한 사항을 도시한다. 전자 디바이스 (102) 는 합성 필터 뱅크의 제로-입력 응답을 획득한다 (602). 예를 들어, 전자 디바이스 (102) (예컨대, 패킷 손실 검출기 (106)) 가 정확히 디코딩된 패킷에 뒤따르는 분실 또는 손실 패킷을 검출할 때, 전자 디바이스 (102) 는 제로들 (예컨대, 제로의 샘플들) 을 합성 필터 뱅크 (110) 로 입력할 수도 있다. 합성 필터 뱅크 (110) 는 제로-입력 응답을 출력할 수도 있으며, 이 제로-입력 응답은 이전 프레임으로부터의 일부 잔여 데이터를 반영할 수도 있다. 제로-입력 응답 (예컨대, 유용한 제로-입력 응답의 샘플들의 수) 이 손실 패킷 또는 프레임의 일 부분을 점유할 수도 있다.
전자 디바이스 (102) 는 이전 프레임 (예컨대, 이전 프레임에 의해 점유되는 시간의 범위) 에 대응하는 서브 밴드 샘플들의 자기상관들을 계산함으로써 어림 피치 추정치를 획득할 수도 있다 (604). 예를 들어, 전자 디바이스 (102) 는 서브 밴드 샘플 버퍼 (534) 로부터의 서브 밴드 샘플들의 범위의 자기상관들을 계산할 수도 있다. 일 구성에서 (그리고 도 5 에 도시된 바와 같이), 사용된 서브 밴드 샘플들은 역 양자화기 (508) 에 의해 출력되었을 수도 있다. 이 구성에서, 합성 전의 (예컨대, 합성 필터 뱅크 (510) 에 의해 합성되기 전의) 서브 밴드 샘플들이 자기상관들을 계산하는데 바로 사용될 수도 있다.
전자 디바이스 (102) 는 이전 프레임으로부터의 출력 샘플들과의 제로-입력 응답의 상관들 (예컨대, 정규화된 상관들) 을 계산함으로써 적어도 하나의 정밀 피치 추정치를 획득할 수도 있다 (606). 적어도 하나의 정밀 피치 추정치는 적어도 하나의 어림 피치 추정치에 기초할 수도 있다. 예를 들어, 전자 디바이스 (102) (예컨대, SBC 디코더 (104)) 는 어림 피치 추정치 근처 (또는, 어림 피치 추정치에 대응하는 이력 버퍼 (536) 에서의 샘플 근처) 범위에서, 이력 버퍼 (536) 로부터의 음성 샘플들과 제로-입력 응답 샘플들의 상관들을 계산할 수도 있다. 최대 상관은 정밀 피치 추정치를 나타내거나 또는 정밀 피치 추정치에 대응할 수도 있다. 예를 들어, 최대 상관에 대응하는 이력 버퍼 (536) 에서의 샘플이 정밀 피치 추정치로서 선택될 수도 있다.
전자 디바이스 (102) 는 정밀 피치 추정치에 기초하여 최종 피치 기간을 선택할 수도 있다 (608). 예를 들어, 최종 피치 기간은 정밀 피치 추정치로부터 (예를 들어, 이력 버퍼 (536) 에서) 그 프레임의 끝 (end) 까지의 샘플들로서 선택될 수도 있다 (608). 전자 디바이스 (102) 는 최종 피치 기간으로부터의 샘플들을 그 손실 패킷용으로 출력할 수도 있다 (610). 예를 들어, 전자 디바이스 (102) 는 (예를 들어, 이력 버퍼 (536) 에서의) 최종 피치 기간으로부터의 샘플들을 손실 패킷 또는 프레임에 복사하거나 또는 배치할 수도 있다. 반복된 최종 피치 기간들이 손실 패킷 또는 프레임을 채우는데 사용될 수도 있다. 예를 들어, 손실 패킷 또는 프레임이 채워질 때까지, 이력 버퍼 (536) 에서의 최종 피치 기간으로부터의 샘플들이 손실 패킷 또는 프레임에 반복적으로 복사되거나 또는 배치될 수도 있다. 전자 디바이스 (102) 는 제로-입력 응답 샘플들 (예컨대, 다수의 제로-입력 응답 샘플들 또는 유용한 제로-입력 응답 샘플들) 을 손실 패킷 또는 프레임에서의 최종 피치 기간 샘플들과 중첩-합산할 수도 있다 (612). 예를 들어, 손실 패킷 또는 프레임 (예컨대, 손실 패킷 또는 프레임의 시작) 을 점유하는 다수의 제로-입력 응답 샘플들이 다수의 최종 피치 기간 샘플들과 중첩-합산될 수도 있다 (612).
도 7a 내지 도 7f 는 서브 밴드 코딩 디코더에서 손실 패킷들을 은닉하거나 또는 재구성하는 것과 관련한 보다 자세한 사항들을 도시하는 다이어그램들이다. 보다 구체적으로 말하면, 도 7a 내지 도 7f 는 예를 들어, PLC 케이스 I 에 따라서 수행될 수도 있는 동작들을 도시한다.
도 7a 는 손실 또는 분실 패킷 검출을 도시한다. 전자 디바이스 (102) 는 SBC 인코딩된 오디오 (예컨대, 보이스 또는 음성) 를 수신 및/또는 디코딩할 수도 있다. 예를 들어, SBC 디코더 (104) 는 디코딩된 음성 샘플들을 생성하기 위해 SBC 인코딩된 음성을 디코딩할 수도 있다. 이들 디코딩된 음성 샘플들은 예를 들어, PCM 샘플들일 수도 있다. 디코딩된 음성 샘플들은 이력 버퍼 (746a) 에 저장될 수도 있다. 전자 디바이스 (102) 는 손실 패킷 (748a) 을 검출할 수도 있다 (750). 예를 들어, 패킷이 정확하게 수신 및/또는 디코딩되지 않으면, 손실 패킷 (748a) 이 검출될 수도 있다.
도 7b 는 제로-입력 응답 (752b) 의 생성을 도시한다. 손실 패킷 (748b) 이 검출될 때 (750), 전자 디바이스 (102) 는 다수의 제로-입력 응답 샘플들 (752b) 을 획득하기 위해서 합성 필터 뱅크 (110) 에 다수의 제로들을 삽입할 수도 있다. 합성 필터 뱅크 (110) 에 제로들을 삽입하는 것은 조기에 디코딩된 오디오 (예컨대, 보이스 또는 음성) 샘플들을 잔여분으로서 반영하는 제로-입력 응답 샘플들 (752b) 을 생성할 수도 있으며, 그 제로-입력 응답 샘플들은 이력 버퍼 (746b) 에 저장될 수도 있다. 본 명세서에서 개시한 시스템들 및 방법들에 따르면, 이력 버퍼 (746) 는 최대 허용 피치 지연의 길이 (전통적인 이력 버퍼 길이 보다 더 짧을 수도 있음 (예컨대, 전통적인 이력 버퍼 길이의 절반)) 를 가질 수도 있다. 최대 허용 피치 지연의 길이는 최대 음성 및/또는 보이스 파장에 대응할 수도 있다.
도 7c 는 어림 피치 추정치 또는 기간 (756c) 의 결정을 도시한다. 특히, 도 7c 는 이력 버퍼 (746c), 다수의 제로-입력 응답 샘플들 (752c), 손실 패킷 (748c), 서브 밴드 버퍼 (754c) 및 어림 피치 추정치 (756c) 를 도시한다. 서브 밴드 버퍼 (754c) 는 다수의 서브 밴드 샘플들을 저장할 수도 있다. 서브 밴드 샘플들은 (예컨대, 합성 필터 뱅크 (110) 에 의해) 합성되지 않은 서브 밴드 샘플들일 수도 있다. 전자 디바이스 (102) 는 어림 피치 추정치 (t0, 756c) 를 획득하기 위해 서브 밴드 버퍼에서의 샘플들의 자기상관을 계산할 수도 있다. 어림 피치 추정치 (t0, 756c) 는 계산된 자기상관들의 범위 내에서 최대 자기상관 값에 대응하는 샘플 또는 시간 인스턴트 (time instant) 일 수도 있다. 계산된 자기상관들의 범위는 최대 허용 피치 지연에 대응할 수도 있다. 도 7c 에 도시된 바와 같이, 어림 피치 추정치 (t0, 756c) 는 이력 버퍼 (746c) 에서의 샘플 수 (number) 또는 특정의 시간에 대응할 수도 있다.
도 7d 는 정밀 피치 추정치 및/또는 최종 피치 기간의 결정을 도시한다. 특히, 도 7d 는 이력 버퍼 (746d-e), 다수의 제로-입력 응답 샘플들 (752d-e), 손실 패킷 (748d-e), 어림 피치 추정치 (756d) 및 최종 피치 기간 (t0', 758a) 을 나타내는 정밀 피치 추정치를 도시한다. 제로-입력 응답 샘플들 (752d) 과 이력 버퍼 (746d) 에서의 샘플들의 상관들은 전자 디바이스 (102) 에 의해 어림 피치 추정치 (756d) 근처의 ±m 샘플들의 범위에서 계산될 수도 있다. 샘플들의 범위는 예를 들어, 어림 피치 추정치 샘플과 이웃하는 후보들 사이일 수도 있다 (예를 들어, t0 - m 과 t0 + m 로 표시됨). 예를 들어, m 은 서브 밴드 샘플 당 이력 버퍼 샘플들의 개수일 수도 있다. 이 범위에서의 최대 상관은 이력 버퍼 (746e) 에서의 최종 피치 기간 (t0', 758a) 을 나타낸다. 예를 들어, 최종 피치 기간 (758a) 은 정밀 피치 추정치로부터 패킷 또는 프레임의 끝까지의 샘플들을 포함할 수도 있다.
도 7e 는 손실 패킷 (748f-g) 에 대해 최종 피치 기간 (758b-c) 을 사용하는 것과, 제로-입력 응답 (752e) 을 최종 피치 기간 (760a-b) 에서의 샘플들과 "테일 (tail)" 중첩-합산하는 것을 도시한다. 특히, 도 7e 는 이력 버퍼 (746f-g), 정밀 피치 추정치에 의해 표시되는 최종 피치 기간 (758b-c), 최종 피치 기간 (760a-b) 의 다수의 샘플들 또는 복사본, 제로-입력 응답 (752e), 손실 패킷 (748f-g) 및 최종 피치 기간 (762a) 의 다수의 샘플들 또는 복사본과의 중첩-합산된 제로-입력 응답 샘플들을 도시한다. 전자 디바이스 (102) 는 최종 피치 기간 (758b) 에서의 샘플들을 사용할 수도 있으며, 최종 피치 기간 (758b) 에서의 샘플들은 최종 피치 기간 (760a) 의 복사본일 수도 있다. 최종 피치 기간 샘플들 (760a) 은 손실 패킷 (748f) 대신에 대체되거나 또는 사용될 수도 있다. 예를 들어, 최종 피치 기간 샘플들 (760a) 은 제로-입력 응답 샘플들 (752e) 에 중첩-합산될 수도 있다. 이것은 다수의 중첩-합산된 샘플들 (762a) 및 중첩-합산되지 않은 최종 피치 기간 샘플들 (760b) 의 나머지 부분을 초래할 수도 있다.
도 7f 는 은닉된 또는 재구성된 패킷 또는 프레임 (766) 을 도시한다. 특히, 도 7f 는 이력 버퍼 (746h), 최종 피치 기간 (758d), 다수의 중첩-합산된 제로-입력 응답 및 최종 피치 기간 샘플들 (762b), 중첩-합산되지 않은 최종 피치 기간 샘플들의 나머지 부분 (760c), 반복되는 최종 피치 기간 (764f) 및 은닉된 또는 재구성된 패킷 (또는 예를 들어, 프레임) (766) 을 도시한다. 손실 패킷 (748) 의 일 부분이 채워지지 않으면, 전자 디바이스 (102) 는, 손실 패킷 (748) 이 완전히 채워질 때까지, 반복되는 최종 피치 기간들 (764f) 을 삽입할 수도 있다. 이들 동작들은 은닉된 패킷 (766) (또는 예를 들어, 프레임) 을 초래할 수도 있다. 정밀 피치 추정치들 또는 최종 피치 기간들이 손실 패킷 내에 균일하게 맞춰지는 것으로 본 명세서에서 종종 도시되지만, 이것은 모든 구성들 또는 경우들에서 반드시 사실이 아닐 수도 있음에 유의해야 한다. 예를 들어, 최종 피치 기간은 손실 패킷 (또는 예를 들어, 프레임) 사이에 (또는, 손실 패킷과 정확하게 수신된 패킷 사이에) 중첩할 수도 있다. 게다가, 일 구성에서, 정밀 피치 추정치들 또는 최종 피치 기간들은 인접 피치 기간 및/또는 중첩 피치 기간 사이의 불연속성들을 감소시키기 위해 페이드-아웃/인 접근방법을 사용할 수도 있다.
도 8 은 서브 밴드 코딩 (SBC) 디코더에서 손실 패킷들을 은닉하거나 또는 재구성하는 여러 모듈들의 일 구성을 도시하는 블록도이다. 보다 구체적으로 말하면, 도 8 은 정확하게 수신된 및/또는 디코딩된 패킷에 이어서, 손실 또는 분실 패킷이 뒤따를 때 (예컨대, PLC 케이스 I) 사용될 수도 있는 모듈들의 일 구성을 도시한다. 특히, 도 8 은 합성 필터 뱅크 (편의상, 도 8 에, "SFB" 로 도시됨) 모듈 (810), 어림 추정 모듈 (868), 제 1 반복 기간 모듈 (870), 서브 밴드 버퍼 업데이트 모듈 (872), 정제 모듈 (874), 제 2 반복 피치 기간 모듈 (878), 중첩-합산 모듈 (880) 및 이력 버퍼 업데이트 모듈 (882) 을 도시한다. 도 8 에 도시된 모듈들은 하드웨어, 소프트웨어 또는 양자의 조합으로 구현될 수도 있다.
정확히 디코딩된 패킷에 이어서, 검출된 손실 또는 분실 패킷이 뒤따르는 경우에 (예컨대, PLC 케이스 I), 전자 디바이스 (102) 는 제로-입력 (886) 을 합성 필터 뱅크 모듈 (810) 에 제공할 수도 있다. 예를 들어, 제로-입력 (886) 은 다수의 제로 샘플들을 포함할 수도 있다. 합성 필터 뱅크 (810) 는 제로-입력 응답 샘플들 (888) 을 생성하기 위해 제로-입력 (886) 을 사용할 수도 있다. 제로-입력 응답 샘플들 (888) 은 손실 패킷 또는 프레임의 일부 또는 모두를 점유하는 다수의 제로-입력 응답 샘플들 (888) 을 포함할 수도 있다. 일 구성에서, 합성 필터 뱅크 (810) 에 입력된 제로들의 수는 패킷 또는 프레임에서의 샘플들 보다 더 작을 수도 있다. 예를 들어, 24 개의 제로들이 합성 필터 뱅크 (810) 에 삽입될 수도 있다. 예컨대, 제로-입력 (886) 은 매트릭스 X(k, m) 를 포함할 수도 있으며, 여기서 1 ≤ k ≤ 8 및 1 ≤ m ≤ 3 에 대해 X(k, m) = 0 이다. 따라서, 합성 필터 뱅크 (810) 는 24 개의 제로-입력 응답 샘플들 (888) 을 출력할 수도 있다.
전자 디바이스 (102) 는 어림 추정 (868) 을 수행하기 위해 다수의 서브 밴드 샘플들 (890) 을 사용할 수도 있다. 예를 들어, 서브 밴드 샘플들 (890) 은 서브 밴드 버퍼에 저장되는 합성 필터 뱅크 (810) 를 통과하지 않은 서브 밴드 (예컨대, 데시메이트된 서브 밴드) 샘플들일 수도 있다. 추가적으로 또는 대안으로, 서브 밴드 샘플들은 서브 밴드 버퍼로부터의 다수의 "제 1" 서브 밴드 샘플들일 수도 있다. 즉, 서브 밴드 샘플들은 제 1 서브 밴드 버퍼로부터의 샘플들일 수도 있다. 어림 추정 모듈 (868) 은 어림 피치 추정치를 결정하기 위해 서브 밴드 샘플들 (890) 을 사용할 수도 있다. 예를 들어, 어림 추정 모듈 (868) 은 서브 밴드 버퍼로부터의 다수의 서브 밴드 샘플들 (890) 에 걸쳐서 자기상관들을 계산할 수도 있다. 최대 자기상관 값은 어림 피치 추정치를 나타낼 수도 있다. 어림 피치 추정치는 최대 자기상관의 샘플 또는 시간 인스턴트를 나타낼 수도 있다. 이러한 방법으로 어림 피치 추정치를 획득하는 것은 예를 들어, 최종 피치 기간을 결정하는데 요구되는 계산 횟수를 감소시킬 수도 있다.
정제 모듈 (874) 은 (예를 들어, 이력 버퍼에서의) 정밀 피치 추정치 및/또는 최종 피치 기간을 결정하기 위해 제로-입력 응답 샘플들 (888), 어림 추정 모듈 (868) 로부터의 어림 추정치 및 다수의 이력 버퍼 샘플들 (876) 을 사용할 수도 있다. 예를 들어, 정제 모듈 (874) 은 제로-입력 응답 샘플들 (888) 과 이력 버퍼 샘플들 (876) 의 (정규화된) 상관들을 (예를 들어, 다수의 "후보들"에 대한) 어림 피치 추정치 근처의 범위에서 계산할 수도 있다. 이것은 "정제" 로 간주될 수도 있으며 정밀 피치 추정치를 이력 버퍼에 제공할 수도 있다. 정밀 피치 추정치는 그 계산된 범위에서 제로-입력 응답 샘플들 (888) 과 이력 버퍼 샘플들 (876) 의 최대 상관에 대응할 수도 있다. 최종 피치 기간은 정밀 피치 추정치에 기초하여 선택될 수도 있다. 최종 피치 기간은 이력 버퍼로부터의 다수의 샘플들을 포함할 수도 있다. 예를 들어, 최종 피치 기간은 정밀 피치 추정치로부터 이력 버퍼에서의 프레임 또는 패킷의 끝까지의 이력 버퍼 샘플들 (876) 의 각각을 포함할 수도 있다. 따라서, 최종 피치 기간은 정밀 피치 추정치에 기초하여 선택될 수도 있다.
제 2 반복 피치 기간 모듈 (878) 은 손실 패킷 또는 프레임에서의 최종 피치 기간을 반복할 수도 있다. 예를 들어, 제 2 반복 피치 기간 모듈 (878) 은 이력 버퍼에서의 최종 피치 기간으로부터의 샘플들을 손실 패킷 또는 프레임에 복사하거나 또는 배치할 수도 있다. 예컨대, 제 2 반복 피치 기간 모듈 (878) 은 손실 샘플 은닉 뿐만 아니라 이력 버퍼 업데이트를 위해서, 이력 버퍼에서의 샘플들을 반복할 수도 있다. 최종 피치 기간은 손실 패킷 또는 프레임을 채우는데 필요로 하는 바에 따라서 반복될 수도 있다. 중첩-합산 모듈 (880) 은 다수의 최종 피치 기간 샘플들을 손실 패킷 또는 프레임에서의 제로-입력 응답 샘플들과 중첩-합산할 수도 있다. 이것은 은닉된 패킷 또는 프레임 (884) 을 생성할 수도 있다. 그 후, 이력 버퍼는 이력 버퍼 업데이트 모듈 (882) 에 의해 업데이트될 수도 있다. 제 1 반복 피치 기간 모듈 (870) 은 이전 프레임에 대응하는 서브 밴드 버퍼에서의 서브 밴드 샘플들을 반복할 수도 있다. 따라서, 서브 밴드 버퍼는 S-버퍼 업데이트 모듈 (872) 에 의해 업데이트될 수도 있다. 예를 들어, 제 1 반복 피치 기간 모듈 (870) 은 오직 제 1 서브 밴드에 대해 서브 밴드 버퍼에서의 서브 밴드 샘플들을 반복할 수도 있다.
도 9 는 서브 밴드 코딩 (SBC) 디코더에서 손실 패킷들을 은닉하거나 또는 재구성하는 방법 (900) 의 또 다른 구성을 도시하는 흐름도이다. 보다 구체적으로 말하면, 도 9 는 손실 패킷에 뒤이어서 추가적인 손실 패킷이 검출되는 경우 (예컨대, PLC 케이스 II) 를 도시한다. 전자 디바이스 (102) 는 추가적인 손실 패킷을 검출할 수도 있다 (902). 예를 들어, 패킷 손실 검출기 (106) 는 이전 손실 패킷에 뒤이어서, 후속 손실 패킷을 검출할 수도 있다. 전자 디바이스 (102) 는 그 추가적인 손실 패킷에 대해 최종 피치 기간으로부터의 출력 샘플들을 사용할 수도 있다 (904). 예를 들어, 전자 디바이스 (102) 는 (예를 들어, 제 1 손실 패킷에 대해서 결정된) 최종 피치 기간으로부터 출력 샘플들을 그 추가적인 손실 패킷 또는 프레임에 복사하거나 또는 배치할 수도 있다. 최종 피치 기간으로부터의 반복되는 최종 피치 기간들 또는 샘플들이 손실 패킷 또는 프레임을 채우는데 필요로 하는 바에 따라서 사용될 수도 있다. 전자 디바이스 (102) 는 그 추가적인 손실 패킷용으로 사용되는 최종 피치 기간으로부터의 출력 샘플들을 페이딩할 수도 있다 (906). 예를 들어, 전자 디바이스 (102) 는 손실 패킷 또는 프레임에 대해 사용된 최종 피치 기간으로부터의 샘플들의 크기 또는 진폭을 감소시킬 수도 있다.
도 10a 내지 도 10c 는 추가적인 손실 패킷에 대한 손실 패킷 은닉 또는 재구성을 도시하는 다이어그램들이다. 도 10a 내지 도 10c 는 예를 들어, PLC 케이스 II 를 도시한다.
도 10a 는 추가적인 손실 패킷의 검출을 도시하는 다이어그램이다. 예를 들어, 패킷 손실 검출기 (106) 는 추가적인 손실 패킷 (1098) 을 검출할 수도 있다 (1050). 예컨대, 전자 디바이스 (102) 는 은닉된 또는 재구성된 패킷 또는 프레임 (1092a) 을 이전 손실 패킷에 대해 생성하였을 수도 있다. 은닉된 또는 재구성된 패킷 또는 프레임 (1092a) 에 뒤이어서, 전자 디바이스 (102) 는 추가적인 손실 패킷 (1098) 을 검출할 수도 있다 (1050).
도 10b 는 추가적인 손실 패킷 또는 프레임 (1098) 을 은닉하거나 또는 재구성하기 위해 최종 피치 기간으로부터의 샘플들을 사용하는 것을 도시하는 다이어그램이다. 예를 들어, 전자 디바이스 (102) 는 (은닉된 패킷 또는 프레임 (1092b) 을 생성하는데 사용되었을 수도 있는) 이력 버퍼에서의 최종 피치 기간 (1058) 을 이전에 결정하였을 수도 있다. 전자 디바이스 (102) 는 최종 피치 기간 (1058) 에서의 샘플들을 추가적인 손실 패킷에 대해 사용할 수도 있다 (1094). 예를 들어, 전자 디바이스 (102) 는 최종 피치 기간 (1058) 에서의 샘플들을 추가적인 손실 패킷 (1098) 에 복사하거나 또는 배치할 수도 있다. 반복되는 최종 피치 기간들 (1058) 또는 최종 피치 기간 (1058) 에서의 반복되는 샘플들이, 추가적인 손실 패킷 또는 프레임 (1098) 을 채우기 위해서 필요로 하는 바에 따라서, 추가적인 손실 패킷 또는 프레임 (1098) 에 복사되거나 배치될 수도 있다.
도 10c 는 은닉된 패킷 또는 프레임 (1092d) 에서의 샘플들을 페이딩하는 것 (1096) 을 도시하는 다이어그램이다. 전자 디바이스는 은닉된 패킷 또는 프레임 (1092d) 의 샘플들을 페이딩할 수도 있다 (1096). 여기서 사용하는, 용어 "페이드 (fade)" 는 일련의 샘플들의 크기 또는 진폭을 점진적으로 감소시키는 것을 나타낼 수도 있다. 일 구성에서, 예를 들어, 전자 디바이스 (102) 는 이전 은닉된 패킷 또는 프레임 (1092c) 에 뒤따르는 후속 은닉된 패킷 또는 프레임 (1092d) 에서의 샘플들을 페이딩할 수도 있다 (1096). 다른 구성들에서, 페이딩하는 것 (1096) 은 제 1 은닉된 패킷 또는 프레임 (1092c) 에서, 또는 그 후의 은닉된 패킷들 또는 프레임들 (1092) (예컨대, 제 3 은닉된 패킷 또는 프레임 등) 에서 시작될 수도 있다.
도 11 은 서브 밴드 코딩 (SBC) 디코더에서 손실 패킷들을 은닉하거나 또는 재구성하는데 사용될 수도 있는 여러 모듈들의 일 구성을 도시하는 블록도이다. 예를 들어, 도 11 은 추가적인 손실 패킷이 이전 손실 패킷에 뒤따르는 경우 (예컨대, PLC 케이스 II) 에 사용될 수도 있는 모듈들을 도시한다. 도 11 에 도시된 모듈들은 하드웨어, 소프트웨어 또는 양자의 조합으로 구현될 수도 있다. 특히, 도 11 은 반복 피치 기간 모듈 (1103), 서브 밴드 버퍼 업데이트 모듈 (도 11 에 편의상, "S-버퍼 업데이트" 로 도시됨) (1105), 페이드 모듈 (1107) 및 이력 버퍼 업데이트 모듈 (1109) 을 도시한다.
반복 피치 기간 모듈 (1103) 은 제 1 손실 패킷 (1101) 에 대해 결정된 최종 피치 기간 또는 피치 분석을 사용할 수도 있다. 예를 들어, 반복 피치 기간 모듈 (1103) 은 최종 피치 기간으로부터의 샘플들을 추가적인 손실 패킷 또는 프레임에 반복 (예컨대, 복사 또는 배치) 할 수도 있다. 최종 피치 기간으로부터의 반복되는 피치 기간들 또는 샘플들은 추가적인 손실 패킷 또는 프레임을 채우는데 필요로 하는 바에 따라서, 추가적인 손실 패킷 또는 프레임에 복사되거나 또는 배치될 수도 있다. 서브 밴드 버퍼는 S-버퍼 업데이트 모듈 (1105) 에 의해 업데이트될 수도 있다. 예를 들어, 이전 패킷 또는 프레임 샘플들에 대응하는 서브 밴드 버퍼에서의 서브 밴드 샘플들이 반복될 수도 있다. 이것은 위에서 설명한 바와 같이 제 1 서브 밴드에 대해 행해질 수도 있다.
페이드-아웃 모듈 (1107) 은 추가적인 손실 패킷 또는 프레임에서의 최종 피치 기간 샘플들의 크기 또는 진폭을 점진적으로 감소시키기 위해 사용될 수도 있다. 이것은 은닉된 또는 재구성된 패킷 또는 프레임 (1184) 을 생성할 수도 있다. 이력 버퍼는 이력 버퍼 업데이트 모듈 (1109) 에 의해 (예를 들어, 반복되는 최종 피치 기간 샘플들로) 업데이트될 수도 있다. 일 구성에서, 페이드-아웃 (fade-out) 은 크기 또는 진폭이 예를 들어, 0 에 도달할 때까지, 추가적인 손실 패킷들 또는 프레임들에 추가로 계속될 수도 있다. 페이드-아웃이 최종 오디오 신호에서 이상한 아티팩트들을 생성하는 것을 회피하기 위해서 사용될 수도 있다. 예를 들어, 패킷/프레임 은닉의 기간이 더 길어짐에 따라서, 분실 패킷들 또는 프레임들을 은닉하는데 사용되는 합성된 신호가 실제 신호로부터 빗나갈 수도 있다. 따라서, (예컨대, 심지어 분리시에 자연스럽게 들리는 합성된 신호도 너무 오랫동안 지속되면 이상하게 들릴 수 있기 때문에) 이상하게 들리는 아티팩트들을 생성하는 것을 피하는데, 페이드-아웃 또는 감쇠가 사용될 수도 있다. 일 구성에서, 제 1 은닉된 패킷 또는 프레임은 페이드-아웃 또는 감쇠를 사용하지 않을 수도 있다. 그러나, 합성된 신호의 선형 감쇠는 제 2 은닉된 패킷 또는 프레임의 처음 부분에서 (예컨대, 20% 프레임 당 감쇠율로) 시작할 수도 있다. 이 예시적인 구성에서, 합성된 신호는 여러 은닉된 패킷들 또는 프레임들 이후에 제로 까지 감쇠될 수도 있다.
도 12 는 서브 밴드 코딩 (SBC) 디코더에서 손실 패킷들을 은닉하거나 또는 재구성하는 방법 (1200) 의 일 구성을 도시하는 흐름도이다. 보다 구체적으로 말하면, 도 12 는 정확하게 수신된 및/또는 디코딩된 패킷이 손실 패킷 또는 프레임에 뒤따르는 경우 (예컨대, PLC 케이스 III) 를 도시한다. 예를 들어, 도 12 에 도시된 방법 (1200) 은 은닉된 또는 재구성된 패킷 또는 프레임이 뒤따르는 정확히 디코딩된 패킷 또는 프레임에 대해 사용될 수도 있다.
전자 디바이스 (102) 는 정확히 디코딩된 패킷 또는 프레임을 검출할 수도 있다 (1202). 예를 들어, 전자 디바이스 (102) 는 손실 패킷을 표시하는 패킷 손실 검출기 (106) 없이 패킷 또는 프레임을 수신하거나 및/또는 디코딩할 수도 있다. 전자 디바이스 (102) 는 최종 피치 기간으로부터의 샘플들을 바람직하지 않은 샘플들 범위에 대해 사용할 수도 있다 (1204). 예를 들어, 제로들이 합성 필터 뱅크 (110) 에 미리 입력되어 있을 수도 있기 때문에, 합성 필터 뱅크 (110) 는 실행가능한 또는 "우수한" 데이터가 입력될 때에 제로-상태 응답을 나타낼 수도 있다. 이것은 정확히 디코딩된 패킷 또는 프레임의 처음에서 바람직하지 않은 샘플들의 수 또는 범위를 초래할 수도 있다. 따라서, 전자 디바이스 (102) 는 최종 피치 기간으로부터의 샘플들을 바람직하지 않은 샘플들 범위에 사용할 수도 있다 (예컨대, 복사 또는 배치할 수도 있다). 예를 들어, (예를 들어, 제 1 손실 패킷에 대해, 이전에 결정된) 최종 피치 기간으로부터의 다수의 샘플들이, 그 정확히 디코딩된 패킷 또는 프레임에서 바람직하지 않은 샘플들의 범위에 있는 샘플들을 대체할 수도 있다. 전자 디바이스 (102) 는 최종 피치 기간 또는 최종 피치 기간으로부터의 샘플들을 다수의 전환 샘플들과 중첩-합산할 수도 있다 (1206). 예를 들어, 전환 샘플들은 바람직하지 않은 샘플들과 바람직한 디코딩된 샘플들 사이의 다수의 샘플들일 수도 있다.
도 13a 및 도 13b 는 정확히 디코딩된 패킷 또는 프레임이 손실 패킷 또는 프레임에 뒤따르는 경우를 도시하는 다이어그램들이다. 예를 들어, 도 13a 및 도 13b 는 PLC 케이스 III 을 도시한다.
도 13a 는 정확히 디코딩된 패킷 또는 프레임 (1311a) 의 제로-상태 응답을 도시하는 다이어그램이다. 예를 들어, 전자 디바이스 (102) 는 하나 이상의 은닉된 또는 재구성된 패킷들 또는 프레임들 (1392a) 을 하나 이상의 손실 패킷들 또는 프레임들에 대해 생성하였을 수도 있다. 위에서 설명한 바와 같이, 전자 디바이스 (102) 는 손실 패킷 또는 프레임에 대해 제로-입력 응답을 생성하기 위해 합성 필터 뱅크 (110) 에 제로들을 입력할 수도 있다. 그 결과, 실행가능한 또는 우수한 패킷 또는 프레임이 디코딩될 때, 합성 필터 뱅크 (110) 는 정확히 디코딩된 패킷 또는 프레임 (1311a) 의 제로-상태 응답을 나타낼 수도 있다. 따라서, 정확히 디코딩된 패킷 또는 프레임은 다수의 바람직하지 않은 샘플들 (1313a), 다수의 전환 샘플들 (1315a) 및 다수의 바람직한 또는 우수한 샘플들 (1317a) 을 포함할 수도 있다. 제로-상태 응답의 처음은 감소된 (예컨대, 하프 (half)) 정보로 구성될 수도 있다. 따라서, 그의 파형은 왜곡된 것 처럼 보일 수도 있으며 디코더 또는 은닉 출력에 대해 사용되지 않을 수도 있다. 이들 샘플들은 바람직하지 않은 샘플들 (1313a) 일 수도 있다. 합성 필터 뱅크 (110) 가 더 많은 서브 밴드 샘플들을 획득함에 따라, 필터 메모리는 알맞은 또는 바람직한 출력으로 서서히 업데이트된다. 즉, 합성 필터 뱅크 (110) 는 출력하는 알맞은 또는 바람직한 샘플들 (1317a) 에 더 가까워짐에 따라, 전환 샘플들 (1315a) 을 출력한다. 궁극적으로 합성 필터 뱅크 (110) 는 알맞은 출력 또는 바람직한 샘플들 (1317a) 을 출력한다. 따라서, 3 개의 영역들이 합성 필터 메모리의 길이에 따라서 경험적으로, 그리고 파형 재구성을 관찰함으로써, 관찰되거나 및/또는 결정될 수도 있다.
도 13b 는 최종 피치 기간 (1358) 에서의 샘플들을 정확히 디코딩된 패킷 또는 프레임 (1311b) 의 제로-상태 응답에 사용하는 것을 도시하는 다이어그램이다. 전자 디바이스 (102) 는 최종 피치 기간 (1358) 샘플들을 정확히 디코딩된 패킷 또는 프레임 (1311b) 의 제로-상태 응답에 사용할 수도 있다 (1321). 전자 디바이스 (102) 는 예를 들어, 은닉된 패킷 또는 프레임 (1392b) 을 생성하기 위해, 제 1 손실 패킷에 대해 최종 피치 기간 (1358) 을 미리 결정하였을 수도 있다. 일 구성에서, 최종 피치 기간 (1358) 에서의 다수의 샘플들이 다수의 바람직하지 않은 샘플들 (1313a) 을 대체하기 위해 (또는, 대신에 배치하기 위해) 사용될 수도 있다 (1321). 바람직하지 않은 샘플들 (1313a) 은 예를 들어, 정확히 디코딩된 패킷 또는 프레임 (1311b) 의 제로-상태 응답의 처음 부분에 있을 수도 있다. 또한, 전자 디바이스 (102) 는 중첩-합산된 샘플들 (1319) 을 생성하기 위해 다수의 최종 피치 기간 (1358) 샘플들을 전환 샘플들 (1315a) 과 중첩-합산할 수도 있다 (1323). 이들 중첩-합산된 샘플들 (1319) 은 전환 범위 내에 있을 수도 있다. 바람직한 또는 우수한 샘플들 (1317b) 이 그 정확히 디코딩된 패킷 또는 프레임 (1311b) 의 나머지를 채울 수도 있다.
도 14 는 프레임 중첩 (1425) 의 일 예를 도시하는 다이어그램이다. 도 14 에 도시된 프레임 중첩 (1425) 의 예가 도 13 의 상황에서 제공된다. 그러나, 프레임 중첩 (1425) 이 또한 도 10 의 상황에서 일어날 수도 있다. 예를 들어, 반복되는 피치 기간이 패킷 또는 프레임 경계와 중첩할 수도 있다 (1425). 이것이 일어날 때, 이전 (예컨대, 은닉된 또는 재구성) 패킷 또는 프레임 (1492) 에서 반복되는 피치 기간 (1427) 으로부터의 남아 있는 샘플들이 후속 패킷 또는 프레임의 처음 부분 (예컨대, 제로-상태 응답 패킷/프레임 (1411) 또는 추가적인 손실 패킷/프레임 (1098)) 에 포함될 수도 있다. 도 14 에 나타낸 예에서, 은닉된 패킷 또는 프레임 (1492) 으로부터의 반복되는 피치 기간 (1427) 에 남아 있는 일부 샘플들이 정확히 디코딩된 패킷 또는 프레임 (1411) 의 제로-상태 응답의 "바람직하지 않은 샘플들" (1413) 부분 내에 삽입될 수도 있다. 그 후, 이들 남아 있는 샘플들에 뒤이어서, 추가적인 반복되는 피치 기간 샘플들이 도 13 과 관련하여 위에서 설명한 바와 같이 삽입되어 전환 샘플들 (1415) 과 중첩될 수도 있다. 이 예에서, 바람직한 또는 우수한 샘플들 (1417) 이 정확히 디코딩된 패킷 또는 프레임 (1411) 의 제로-상태 응답의 나머지를 채울 수도 있다.
도 15 는 서브 밴드 코딩 (SBC) 디코더에서 손실 패킷들을 은닉하거나 또는 재구성하는데 사용될 수도 있는 여러 모듈들의 일 구성을 도시하는 블록도이다. 예를 들어, 도 15 는 실행가능한 또는 우수한 패킷이 수신되거나 디코딩된 후, 손실 패킷 또는 프레임이 뒤따르는 경우 (예컨대, PLC 케이스 III) 를 도시한다. 손실 패킷 또는 프레임은 전자 디바이스 (102) 에 의해 은닉되거나 또는 재구성되었을 수도 있다. 특히, 도 15 는 역 양자화기 (1508) (편의상, 도 15 에 "IQ" 로 도시됨), 서브 밴드 버퍼 업데이트 모듈 (1531) (편의상, 도 15 에 "S-버퍼 업데이트" 로 도시됨), 합성 필터 뱅크 (1510) (편의상, 도 15 에 "SFB" 로 도시됨), 중첩-합산 모듈 (1535), 반복 피치 기간 모듈 (1539) 및 이력 버퍼 업데이트 모듈 (1541) 을 도시한다.
역 양자화기 (1508) 는 서브 밴드 샘플들을 생성하기 위해서 파싱된 비트 스트림 (1529) 을 사용할 수도 있다. 서브 밴드 샘플들은 서브 밴드 버퍼를 업데이트하기 위해 서브 밴드 버퍼 업데이트 모듈 (1531) 에 의해 사용될 수도 있다. 또한, 서브 밴드 샘플들은 합성 필터 뱅크 (1510) 에 입력될 수도 있다. 일 구성에서, 120 개의 서브 밴드 샘플들이 합성 필터 뱅크 (1510) 에, 매트릭스 형태 X(k, m) 로 입력되며, 여기서, 1 ≤ k ≤ 8 및 1 ≤ m ≤ 15 이다. 위에서 설명한 바와 같이, 제 1 손실 패킷이 검출될 때 제로들이 합성 필터 뱅크 (1510) 에 입력될 수도 있다. 그 결과, 실행가능한 또는 "우수한" 서브 밴드 샘플들이 합성 필터 뱅크 (1510) 에 입력될 때, 합성 필터 뱅크 (1510) 는 제로-상태 응답 (1533) 을 생성할 수도 있다. 위에서 설명한 바와 같이, 제로-상태 응답 (1533) 의 다수의 초기 샘플들은 다수의 전환 샘플들과 다수의 바람직한 또는 우수한 샘플들이 차례로 뒤따르는 바람직하지 않은 샘플들일 수도 있다.
반복 피치 기간 모듈 (1539) 은 제 1 손실 패킷 (1501) 에 대해 결정된 최종 피치 기간으로부터의 이전 피치 분석 또는 샘플들을, 제로-상태 응답 (1533) 패킷 또는 프레임에 대해 사용할 수도 있다. 예를 들어, 전자 디바이스 (102) 는 바람직하지 않은 샘플들을 최종 피치 기간 (1501) 에서의 샘플들과 대체할 수도 있다. 또한, 전자 디바이스 (102) 는 다수의 최종 피치 기간 샘플들 (1501) 을 다수의 전환 샘플들과 중첩-합산하기 위해 중첩-합산 모듈 (1535) 을 사용할 수도 있다. 이것은 은닉된 패킷 또는 프레임 (1537) 을 생성할 수도 있다. 이 경우, 은닉된 패킷 또는 프레임 (1537) 은 손실 패킷 또는 프레임이 아니고, 실행가능한 패킷 또는 프레임의 은닉된 제로-상태 응답일 수도 있다. 예를 들어, 제로-상태 응답 (1533) 에서의 바람직하지 않은 샘플들 및/또는 전환 샘플들이 은닉되거나 또는 재구성될 수도 있다. 이력 버퍼를 업데이트하기 위해, 최종 은닉된 패킷 또는 프레임 (1537) 이 이력 버퍼 업데이트 모듈 (1541) 에 의해 사용될 수도 있다.
도 16 은 전자 디바이스 (1602) 에서 사용될 수도 있는 다양한 컴포넌트들을 도시한다. 도시된 컴포넌트들은 동일 물리적 구조 내에 또는 별개의 하우징들 또는 구조들에 위치될 수도 있다. 도 1 과 관련하여 설명한 전자 디바이스 (102) 는 전자 디바이스 (1602) 와 유사하게 구성될 수도 있다. 전자 디바이스 (1602) 는 프로세서 (1649) 를 포함한다. 프로세서 (1649) 는 범용 단일- 또는 멀티-칩 마이크로프로세서 (예컨대, ARM), 특수목적 마이크로프로세서 (예컨대, 디지털 신호 프로세서 (DSP)), 마이크로제어기, 프로그래밍가능한 게이트 어레이 등일 수도 있다. 프로세서 (1649) 는 중앙 처리 유닛 (CPU) 으로 지칭될 수도 있다. 단지 단일 프로세서 (1649) 만이 도 16 의 전자 디바이스 (1602) 에 나타내지만, 대안적인 구성에서, 프로세서들 (예컨대, ARM 과 DSP) 의 조합이 사용될 수 있다.
또한, 전자 디바이스 (1602) 는 프로세서 (1649) 와 전자 통신하는 메모리 (1643) 를 포함한다. 즉, 프로세서 (1649) 는 메모리 (1643) 로부터 정보를 읽거나 및/또는 메모리 (1643) 에 정보를 기록할 수도 있다. 메모리 (1643) 는 전자 정보를 저장할 수 있는 임의의 전자 컴포넌트일 수도 있다. 메모리 (1643) 는 랜덤 액세스 메모리 (RAM), 판독-전용 메모리 (ROM), 자기 디스크 저장 매체들, 광 저장 매체들, RAM 내의 플래시 메모리 디바이스들, 프로세서에 포함된 온-보드 메모리, 프로그래밍가능한 판독-전용 메모리 (PROM), 소거가능하고 프로그래밍가능한 판독-전용 메모리 (EPROM), 전기적으로 소거가능한 PROM (EEPROM), 레지스터들, 및 이들의 조합들을 포함한 기타 등등일 수도 있다.
데이터 (1647a) 및 명령들 (1645a) 은 메모리 (1643) 에 저장될 수도 있다. 명령들 (1645a) 은 하나 이상의 프로그램들, 루틴들, 서브-루틴들, 기능들, 프로시져들, 코드 등을 포함할 수도 있다. 명령들 (1645a) 은 단일 컴퓨터 판독가능 작업 명령 또는 많은 컴퓨터 판독가능 작업 명령들을 포함할 수도 있다. 명령들 (1645a) 은 위에서 설명한 방법들 (400, 600, 900, 1200) 을 구현하기 위해 프로세서 (1649) 에 의해 실행될 수도 있다. 명령들 (1645a) 을 실행하는 것은 메모리 (1643) 에 저장된 데이터 (1647a) 의 사용을 수반할 수도 있다. 도 16 은 프로세서 (1649) 에 로드되어지는 일부 명령들 (1645b) 및 데이터 (1647b) 를 나타낸다.
또한, 전자 디바이스 (1602) 는 다른 전자 디바이스들과 통신하기 위한 하나 이상의 통신 인터페이스들 (1651) 을 포함할 수도 있다. 통신 인터페이스들 (1651) 은 유선 통신 기술, 무선 통신 기술, 또는 양자에 기초할 수도 있다. 통신 인터페이스들 (1651) 의 상이한 유형들의 예들은 직렬 포트, 병렬 포트, 범용 직렬 버스 (USB), 이더넷 어댑터, IEEE 1394 버스 인터페이스, 소형 컴퓨터 시스템 인터페이스 (SCSI) 버스 인터페이스, 적외선 (IR) 통신 포트, 블루투스 무선 통신 어댑터 및 기타 등등을 포함한다.
또한, 전자 디바이스 (1602) 는 하나 이상의 입력 디바이스들 (1653) 및 하나 이상의 출력 디바이스들 (1655) 을 포함할 수도 있다. 입력 디바이스들 (1653) 의 상이한 종류들의 예들은 키보드, 마우스, 마이크로폰, 원격 제어 디바이스, 버튼, 죠이스틱, 트랙볼, 터치패드, 라이트펜 등을 포함한다. 출력 디바이스들 (1655) 의 상이한 종류들의 예들은 스피커, 프린터 등을 포함한다. 전자 디바이스 (1602) 에 일반적으로 포함될 수도 있는 출력 디바이스의 하나의 특정 유형이 디스플레이 디바이스 (1657) 이다. 본 명세서에서 개시한 구성들과 함께 사용되는 디스플레이 디바이스들 (1657) 은 임의의 적당한 이미지 투사 기술, 예컨대 음극선관 (CRT), 액정 디스플레이 (LCD), 발광 다이오드 (LED), 가스 플라즈마, 전계발광, 또는 기타 등등을 사용할 수도 있다. 또한, 디스플레이 제어기 (1659) 가 메모리 (1643) 에 저장된 데이터를 디스플레이 디바이스 (1657) 에 나타낸 텍스트, 그래픽들 및/또는 동영상들로 (적당한 경우) 변환하기 위해 제공될 수도 있다.
전자 디바이스 (1602) 의 다양한 컴포넌트들은 하나 이상의 버스들에 의해 함께 커플링될 수도 있으며, 그 버스들은 전력 버스, 제어 신호 버스, 상태 신호 버스, 데이터 버스 등을 포함할 수도 있다. 간결성을 위해서, 다양한 버스들이 도 16 에 버스 시스템 (1661) 으로서 도시되어 있다. 도 16 이 전자 디바이스 (1602) 의 단지 하나의 가능한 구성을 도시하는 것에 유의해야 한다. 다양한 다른 아키텍쳐들 및 컴포넌트들이 사용될 수도 있다.
도 17 은 무선 통신 디바이스 (1702) 내에 포함될 수도 있는 일부 컴포넌트들을 도시한다. 앞에서 설명한 무선 통신 디바이스들 (202, 222, 302) 은 도 17 에 나타낸 무선 통신 디바이스 (1702) 와 유사하게 구성될 수도 있다. 무선 통신 디바이스 (1702) 는 프로세서 (1749) 를 포함한다. 프로세서 (1749) 는 범용 단일- 또는 멀티-칩 마이크로프로세서 (예컨대, ARM), 특수목적 마이크로프로세서 (예컨대, 디지털 신호 프로세서 (DSP)), 마이크로제어기, 프로그래밍가능한 게이트 어레이 등일 수도 있다. 프로세서 (1749) 는 중앙 처리 유닛 (CPU) 으로 지칭될 수도 있다. 단지 단일 프로세서 (1749) 만이 도 17의 무선 통신 디바이스 (1702) 에 나타내지만, 대안적인 구성에서, 프로세서들 (예컨대, ARM 과 DSP) 의 조합이 사용될 수 있다.
또한, 무선 통신 디바이스 (1702) 는 프로세서 (1749) 와 전자 통신하는 메모리 (1743) 를 포함한다 (즉, 프로세서 (1749) 는 메모리 (1743) 로부터 정보를 판독하거나 또는 메모리 (1743) 에 정보를 기록할 수 있다). 메모리 (1743) 는 전자 정보를 저장할 수 있는 임의의 전자 컴포넌트일 수도 있다. 메모리 (1743) 는 랜덤 액세스 메모리 (RAM), 판독-전용 메모리 (ROM), 자기 디스크 저장 매체들, 광 저장 매체들, RAM 내의 플래시 메모리 디바이스들, 프로세서에 포함된 온-보드 메모리, 프로그래밍가능한 판독-전용 메모리 (PROM), 소거가능하고 프로그래밍가능한 판독-전용 메모리 (EPROM), 전기적으로 소거가능한 PROM (EEPROM), 레지스터들, 및 이들의 조합들을 포함한 기타 등등일 수도 있다.
데이터 (1747a) 및 명령들 (1745a) 은 메모리 (1743) 에 저장될 수도 있다. 명령들 (1745a) 은 하나 이상의 프로그램들, 루틴들, 서브-루틴들, 기능들, 프로시져들 등을 포함할 수도 있다. 명령들 (1745a) 은 단일 컴퓨터 판독가능 작업 명령 또는 많은 컴퓨터 판독가능 작업 명령들을 포함할 수도 있다. 명령들 (1745a) 은 위에서 설명한 방법들 (400, 600, 900, 1200) 을 구현하기 위해 프로세서 (1749) 에 의해 실행될 수도 있다. 명령들 (1745a) 을 실행하는 것은 메모리 (1743) 에 저장된 데이터 (1747a) 의 사용을 수반할 수도 있다. 도 17 은 프로세서 (1749) 에 로드되어지는 일부 명령들 (1745b) 및 데이터 (1747b) 을 나타낸다.
또한, 무선 통신 디바이스 (1702) 는, 무선 통신 디바이스 (1702) 와 원격 로케이션 (예컨대, 기지국 또는 다른 무선 통신 디바이스) 사이에 신호들의 송신 및 수신을 가능하게 하기 위해, 송신기 (1767) 및 수신기 (1769) 를 포함할 수도 있다. 송신기 (1767) 및 수신기 (1769) 는 트랜시버 (1765) 로 총칭될 수도 있다. 안테나 (1763) 는 트랜시버 (1765) 에 전기적으로 커플링될 수도 있다. 또한, 무선 통신 디바이스 (1702) 는 다수의 송신기들, 다수의 수신기들, 다수의 트랜시버들 및/또는 다수의 안테나 (미도시) 를 포함할 수도 있다.
무선 통신 디바이스 (1702) 의 다양한 컴포넌트들은 하나 이상의 버스들에 의해 함께 커플링될 수도 있으며, 그 버스들은 전력 버스, 제어 신호 버스, 상태 신호 버스, 데이터 버스 등을 포함할 수도 있다. 간결성을 위해서, 다양한 버스들이 도 17 에 버스 시스템 (1761) 으로서 도시되어 있다.
도 18 은 기지국 (1828) 내에 포함될 수도 있는 일부 컴포넌트들을 도시한다. 앞에서 설명한 기지국 (328) 은 도 18 에 나타낸 기지국 (1828) 과 유사하게 구성될 수도 있다. 기지국 (1828) 은 프로세서 (1885) 를 포함한다. 프로세서 (1885) 는 범용 단일- 또는 멀티-칩 마이크로프로세서 (예컨대, ARM), 특수목적 마이크로프로세서 (예컨대, 디지털 신호 프로세서 (DSP)), 마이크로제어기, 프로그래밍가능한 게이트 어레이 등일 수도 있다. 프로세서 (1885) 는 중앙 처리 유닛 (CPU) 으로 지칭될 수도 있다. 단지 단일 프로세서 (1885) 만이 도 18 의 기지국 (1828) 에 나타내지만, 대안적인 구성에서, 프로세서들 (예컨대, ARM 과 DSP) 의 조합이 사용될 수 있다.
또한, 기지국 (1828) 은 프로세서 (1885) 와 전자 통신하는 메모리 (1871) 를 포함한다 (즉, 프로세서 (1885) 는 메모리 (1871) 로부터 정보를 판독하거나 및/또는 메모리 (1871) 에 정보를 기록할 수 있다). 메모리 (1871) 는 전자 정보를 저장할 수 있는 임의의 전자 컴포넌트일 수도 있다. 메모리 (1871) 는 랜덤 액세스 메모리 (RAM), 판독-전용 메모리 (ROM), 자기 디스크 저장 매체들, 광 저장 매체들, RAM 내의 플래시 메모리 디바이스들, 프로세서 내에 포함된 온-보드 메모리, 프로그래밍가능한 판독-전용 메모리 (PROM), 소거가능하고 프로그래밍가능한 판독-전용 메모리 (EPROM), 전기적으로 소거가능한 PROM (EEPROM), 레지스터들, 및 이들의 조합들을 포함한 기타 등등일 수도 있다.
데이터 (1873a) 및 명령들 (1875a) 은 메모리 (1871) 에 저장될 수도 있다. 명령들 (1875a) 은 하나 이상의 프로그램들, 루틴들, 서브-루틴들, 기능들, 프로시져들 등을 포함할 수도 있다. 명령들 (1875a) 은 단일 컴퓨터 판독가능 작업 명령 또는 많은 컴퓨터 판독가능 작업 명령들 (statements) 을 포함할 수도 있다. 명령들 (1875a) 은 프로세서 (1885) 에 의해 실행될 수도 있다. 명령들 (1875a) 을 실행하는 것은 메모리 (1871) 에 저장된 데이터 (1873a) 의 사용을 수반할 수도 있다. 도 18 은 프로세서 (1885) 에 로드되어지는 일부 명령들 (1875b) 및 데이터 (1873b) 을 나타낸다.
또한, 기지국 (1828) 은 기지국 (1828) 과 원격 로케이션 (예컨대, 무선 통신 디바이스) 사이에 신호들의 송신 및 수신을 가능하게 하기 위해, 송신기 (1881) 및 수신기 (1883) 를 포함할 수도 있다. 송신기 (1881) 및 수신기 (1883) 는 트랜시버 (1879) 로 총칭될 수도 있다. 안테나 (1877) 는 트랜시버 (1879) 에 전기적으로 커플링될 수도 있다. 또한, 기지국 (1828) 은 다수의 송신기들, 다수의 수신기들, 다수의 트랜시버들 및/또는 다수의 안테나 (미도시) 를 포함할 수도 있다.
기지국 (1828) 의 다양한 컴포넌트들은 하나 이상의 버스들에 의해 함께 커플링될 수도 있으며, 그 버스들은 전력 버스, 제어 신호 버스, 상태 신호 버스, 데이터 버스 등을 포함할 수도 있다. 간결성을 위해서, 다양한 버스들이 도 18 에 버스 시스템 (1887) 으로서 도시되어 있다.
위의 설명에서는, 참조부호들이 종종 다양한 용어들과 관련하여 사용되었다. 참조부호와 관련하여 용어가 사용되는 경우, 이것은 도면들 중 하나 이상의 도면에 나타낸 특정의 엘리먼트를 지칭하려는 것일 수도 있다. 참조부호 없이 용어가 사용되는 경우, 이것은 임의의 특정의 도면에 한정하지 않고, 그 용어를 일반적으로 지칭하려는 것일 수도 있다.
용어 "결정하는 (determining)" 은 광범위한 액션들을 포괄하며, 따라서 "결정하는" 은 연산하고 (calculating), 계산하고 (computing), 프로세싱하고, 유도하고, 조사하고, 탐색하고 (예컨대, 테이블, 데이터베이스 또는 또 다른 데이터 구조에서 탐색하고), 확인하는 기타 등등을 포함할 수도 있다. 또한, "결정하는" 은 수신하고 (예컨대, 정보를 수신하고), 액세스하는 (예컨대, 메모리 내의 데이터에 액세스하는) 기타 등등을 포함할 수 있다. 또한, "결정하는" 은 결정하고 (resolving), 선택하고, 택하고 (choosing), 정하는 (establishing) 기타 등등을 포함할 수 있다.
어구 "기초하는 (based on)" 은 달리 명시적으로 규정하지 않는 한, "오직 기초하는 (based only on)" 것을 의미하지 않는다. 즉, 어구 "기초하는" 은 "오직 기초하는 (based only on)" 과 "적어도 기초하는 (based at least on)" 양자를 표현한다.
본 명세서에서 설명한 기능들은 하나 이상의 명령들로 프로세서-판독가능 또는 컴퓨터 판독가능 매체 상에 저장될 수도 있다. 용어 "컴퓨터 판독가능 매체" 는 컴퓨터 또는 프로세서에 의해 액세스될 수 있는 임의의 가용 매체를 지칭한다. 일 예로서, 이에 한정하지 않고, 이런 매체는 RAM, ROM, EEPROM, 플래시 메모리, CD-ROM 또는 다른 광 디스크 스토리지, 자기 디스크 저장 또는 다른 자기 저장 디바이스들, 또는 원하는 프로그램 코드를 컴퓨터에 의해 액세스될 수 있는 명령들 또는 데이터 구조들의 형태로 저장하는데 사용될 수 있는 임의의 다른 매체를 포함할 수도 있다. 디스크 (disk) 및 디스크 (disc) 는, 여기서 사용할 때, 콤팩트 디스크 (CD), 레이저 디스크, 광디스크, 디지털 다기능 디스크 (DVD), 플로피 디스크 및 블루-레이® 디스크를 포함하며, 여기서, 디스크 (disc) 는 레이저로 데이터를 광학적으로 재생하지만, 디스크 (disk) 는 데이터를 자기적으로 보통 재생한다. 컴퓨터 판독가능 매체가 유형이고 비일시적인 것에 유의해야 한다. 용어 "컴퓨터 프로그램 제품" 은 컴퓨팅 디바이스 또는 프로세서에 의해 실행되거나, 프로세싱되거나 또는 계산될 수도 있는 코드 또는 명령들 (예컨대, "프로그램") 과 조합하는, 컴퓨팅 디바이스 또는 프로세서를 지칭한다. 여기서 사용하는, 용어 "코드" 는 컴퓨팅 디바이스 또는 프로세서에 의해 실행될 수 있는 소프트웨어, 명령들, 코드 또는 데이터를 지칭할 수도 있다.
또한, 소프트웨어 또는 명령들은 송신 매체를 통해서 송신될 수도 있다. 예컨대, 소프트웨어가 동축 케이블, 광섬유 케이블, 이중 권선, 디지털 가입자 회선 (DSL) 또는 무선 기술들, 예컨대 적외선, 무선 및 마이크로파를 사용하여, 웹 사이트, 서버 또는 다른 원격 소스로부터 송신되는 경우, 동축 케이블, 광섬유 케이블, 이중 권선, DSL, 또는 적외선, 무선 및 마이크로파와 같은 무선 기술이 그 매체의 정의에 포함된다.
본 명세서에서 방법들은 설명한 방법을 달성하기 위한 하나 이상의 단계들 또는 액션들을 포함한다. 방법 단계들 및/또는 액션들은 발명의 범위로부터 일탈함이 없이 서로 교환될 수도 있다. 즉, 설명되는 방법의 적합한 동작에 단계들 또는 액션들의 특정의 순서가 요구되지 않는 한, 특정의 단계들 및/또는 액션들의 순서 및/또는 사용은 청구범위로부터 일탈함이 없이 변경될 수도 있다.
청구항들은 위에서 예시한 정확한 구성 및 컴포넌트들에 한정되지 않는 것으로 이해되어야 한다. 본 명세서에서 설명한 시스템들, 방법들, 및 장치의 배열, 동작 및 세부 사항들에 있어, 청구범위로부터 일탈함이 없이, 다양한 변경들, 변화들 및 변형들이 이루어질 수도 있다.

Claims (36)

  1. 서브 밴드 코딩 (Sub-Band Coding; SBC) 디코더에서 손실 패킷을 재구성하는 전자 디바이스로서,
    프로세서;
    상기 프로세서와 전자 통신하는 메모리; 및
    상기 메모리에 저장된 명령들을 포함하고,
    상기 명령들은,
    손실 패킷을 검출하고;
    합성 필터 뱅크의 제로-입력 응답을 획득하고;
    어림 (coarse) 피치 추정치를 획득하고;
    상기 제로-입력 응답 및 상기 어림 피치 추정치에 기초하여 정밀 (fine) 피치 추정치를 획득하고;
    상기 정밀 피치 추정치에 기초하여 최종 피치 기간을 선택하며;
    상기 최종 피치 기간으로부터의 샘플들을 상기 손실 패킷에 대해 사용하도록 실행할 수 있는, 손실 패킷을 재구성하는 전자 디바이스.
  2. 제 1 항에 있어서,
    상기 어림 피치 추정치는 서브 밴드 샘플들의 자기상관들을 계산함으로써 획득되는, 손실 패킷을 재구성하는 전자 디바이스.
  3. 제 2 항에 있어서,
    상기 서브 밴드 샘플들은 합성되지 않은, 손실 패킷을 재구성하는 전자 디바이스.
  4. 제 1 항에 있어서,
    상기 명령들은 또한, 상기 최종 피치 기간으로부터의 상기 샘플들의 적어도 일부를 상기 제로-입력 응답과 중첩-합산하도록 실행할 수 있는, 손실 패킷을 재구성하는 전자 디바이스.
  5. 제 1 항에 있어서,
    상기 정밀 피치 추정치는 이전에 디코딩된 샘플들과의 상기 제로-입력 응답의 상관들을 계산함으로써 획득되는, 손실 패킷을 재구성하는 전자 디바이스.
  6. 제 1 항에 있어서,
    상기 명령들은 또한,
    추가적인 손실 패킷을 검출하며;
    상기 최종 피치 기간으로부터의 상기 샘플들을 상기 추가적인 손실 패킷에 대해 사용하도록 실행할 수 있는, 손실 패킷을 재구성하는 전자 디바이스.
  7. 제 6 항에 있어서,
    상기 명령들은 또한, 상기 최종 피치 기간으로부터의 상기 샘플들을 페이딩하도록 실행할 수 있는, 손실 패킷을 재구성하는 전자 디바이스.
  8. 제 6 항에 있어서,
    상기 명령들은 또한, 상기 최종 피치 기간으로부터의 샘플들을 복수의 추가적인 손실 패킷들에 대해 사용하도록 실행할 수 있는, 손실 패킷을 재구성하는 전자 디바이스.
  9. 제 1 항에 있어서,
    상기 명령들은 또한,
    정확히 디코딩된 패킷 또는 프레임을 검출하고;
    상기 최종 피치 기간으로부터의 샘플들을 바람직하지 않은 샘플들의 범위에 대해 사용하며;
    상기 최종 피치 기간으로부터의 샘플들을 전환 샘플들과 중첩-합산하도록 실행할 수 있는, 손실 패킷을 재구성하는 전자 디바이스.
  10. 제 1 항에 있어서,
    상기 최종 피치 기간으로부터의 상기 샘플들을 상기 손실 패킷에 대해 사용하는 것은, 상기 샘플들을 상기 손실 패킷에 복사하는 것을 포함하는, 손실 패킷을 재구성하는 전자 디바이스.
  11. 제 1 항에 있어서,
    상기 SBC 디코더는 광대역 음성 신호들을 디코딩하는데 사용되는, 손실 패킷을 재구성하는 전자 디바이스.
  12. 제 1 항에 있어서,
    상기 전자 디바이스는 무선 통신 디바이스인, 손실 패킷을 재구성하는 전자 디바이스.
  13. 제 12 항에 있어서,
    상기 무선 통신 디바이스는 블루투스 디바이스인, 손실 패킷을 재구성하는 전자 디바이스.
  14. 제 1 항에 있어서,
    상기 SBC 디코더에 의해 실행가능한 패킷을 디코딩하는 것에 비해 상기 손실 패킷을 재구성하는데 어떤 추가적인 지연도 사용되지 않는, 손실 패킷을 재구성하는 전자 디바이스.
  15. 서브 밴드 코딩 (Sub-Band Coding; SBC) 디코더에서 손실 패킷을 재구성하는 방법으로서,
    손실 패킷을 검출하는 단계;
    전자 디바이스 상에서, 합성 필터 뱅크의 제로-입력 응답을 획득하는 단계;
    어림 (coarse) 피치 추정치를 획득하는 단계;
    상기 전자 디바이스 상에서, 상기 제로-입력 응답 및 상기 어림 피치 추정치에 기초하여 정밀 (fine) 피치 추정치를 획득하는 단계;
    상기 정밀 피치 추정치에 기초하여 최종 피치 기간을 선택하는 단계; 및
    상기 최종 피치 기간으로부터의 샘플들을 상기 손실 패킷에 대해 사용하는 단계를 포함하는, 손실 패킷을 재구성하는 방법.
  16. 제 15 항에 있어서,
    상기 어림 피치 추정치는 서브 밴드 샘플들의 자기상관들을 계산함으로써 획득되는, 손실 패킷을 재구성하는 방법.
  17. 제 16 항에 있어서,
    상기 서브 밴드 샘플들은 합성되지 않은, 손실 패킷을 재구성하는 방법.
  18. 제 15 항에 있어서,
    상기 최종 피치 기간으로부터의 상기 샘플들의 적어도 일부를 상기 제로-입력 응답과 중첩-합산하는 단계를 더 포함하는, 손실 패킷을 재구성하는 방법.
  19. 제 15 항에 있어서,
    상기 정밀 피치 추정치는 이전에 디코딩된 샘플들과의 상기 제로-입력 응답의 상관들을 계산함으로써 획득되는, 손실 패킷을 재구성하는 방법.
  20. 제 15 항에 있어서,
    추가적인 손실 패킷을 검출하는 단계; 및
    상기 최종 피치 기간으로부터의 샘플들을 상기 추가적인 손실 패킷에 대해 사용하는 단계를 더 포함하는, 손실 패킷을 재구성하는 방법.
  21. 제 20 항에 있어서,
    상기 최종 피치 기간으로부터의 상기 샘플들을 페이딩하는 단계를 더 포함하는, 손실 패킷을 재구성하는 방법.
  22. 제 20 항에 있어서,
    상기 최종 피치 기간으로부터의 샘플들을 복수의 추가적인 손실 패킷들에 대해 사용하는 단계를 더 포함하는, 손실 패킷을 재구성하는 방법.
  23. 제 15 항에 있어서,
    정확히 디코딩된 패킷 또는 프레임을 검출하는 단계;
    상기 최종 피치 기간으로부터의 샘플들을 바람직하지 않은 샘플들의 범위에 대해 사용하는 단계; 및
    상기 최종 피치 기간으로부터의 샘플들을 전환 샘플들과 중첩-합산하는 단계를 더 포함하는, 손실 패킷을 재구성하는 방법.
  24. 제 15 항에 있어서,
    상기 최종 피치 기간으로부터의 상기 샘플들을 상기 손실 패킷에 대해 사용하는 단계는, 상기 샘플들을 상기 손실 패킷에 복사하는 단계를 포함하는, 손실 패킷을 재구성하는 방법.
  25. 제 15 항에 있어서,
    상기 SBC 디코더는 광대역 음성 신호들을 디코딩하는데 사용되는, 손실 패킷을 재구성하는 방법.
  26. 제 15 항에 있어서,
    상기 전자 디바이스는 무선 통신 디바이스인, 손실 패킷을 재구성하는 방법.
  27. 제 26 항에 있어서,
    상기 무선 통신 디바이스는 블루투스 디바이스인, 손실 패킷을 재구성하는 방법.
  28. 제 15 항에 있어서,
    상기 SBC 디코더에 의해 실행가능한 패킷을 디코딩하는 것에 비해 상기 손실 패킷을 재구성하는데 어떤 추가적인 지연도 사용되지 않는, 손실 패킷을 재구성하는 방법.
  29. 명령들을 갖는 비일시적 유형의 컴퓨터 판독가능 매체를 포함하는, 서브 밴드 코딩 (Sub-Band Coding; SBC) 디코더에서 손실 패킷을 재구성하는 컴퓨터 프로그램 제품으로서,
    상기 명령들은,
    전자 디바이스로 하여금 손실 패킷을 검출하도록 하는 코드;
    상기 전자 디바이스로 하여금 합성 필터 뱅크의 제로-입력 응답을 획득하도록 하는 코드;
    상기 전자 디바이스로 하여금 어림 (coarse) 피치 추정치를 획득하도록 하는 코드;
    상기 전자 디바이스로 하여금 상기 제로-입력 응답 및 상기 어림 피치 추정치에 기초하여 정밀 (fine) 피치 추정치를 획득하도록 하는 코드;
    상기 전자 디바이스로 하여금 상기 정밀 피치 추정치에 기초하여 최종 피치 기간을 선택하도록 하는 코드; 및
    상기 전자 디바이스로 하여금 상기 최종 피치 기간으로부터의 샘플들을 상기 손실 패킷에 대해 사용하도록 하는 코드를 포함하는, 비일시적 유형의 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품.
  30. 제 29 항에 있어서,
    상기 어림 피치 추정치는 서브 밴드 샘플들의 자기상관들을 계산함으로써 획득되는, 비일시적 유형의 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품.
  31. 제 29 항에 있어서,
    상기 명령들은,
    상기 전자 디바이스로 하여금 추가적인 손실 패킷을 검출하도록 하는 코드; 및
    상기 전자 디바이스로 하여금 상기 최종 피치 기간으로부터의 샘플들을 상기 추가적인 손실 패킷에 대해 사용하도록 하는 코드를 더 포함하는, 비일시적 유형의 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품.
  32. 제 29 항에 있어서,
    상기 명령들은,
    상기 전자 디바이스로 하여금 정확히 디코딩된 패킷 또는 프레임을 검출하도록 하는 코드;
    상기 전자 디바이스로 하여금 상기 최종 피치 기간으로부터의 샘플들을 바람직하지 않은 샘플들의 범위에 대해 사용하도록 하는 코드; 및
    상기 전자 디바이스로 하여금 상기 최종 피치 기간으로부터의 샘플들을 전환 샘플들과 중첩-합산하도록 하는 코드를 더 포함하는, 비일시적 유형의 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품.
  33. 서브 밴드 코딩 (Sub-Band Coding; SBC) 디코더에서 손실 패킷을 재구성하는 장치로서,
    손실 패킷을 검출하는 수단;
    합성 필터 뱅크의 제로-입력 응답을 획득하는 수단;
    어림 (coarse) 피치 추정치를 획득하는 수단;
    상기 제로-입력 응답 및 상기 어림 피치 추정치에 기초하여 정밀 (fine) 피치 추정치를 획득하는 수단;
    상기 정밀 피치 추정치에 기초하여 최종 피치 기간을 선택하는 수단; 및
    상기 최종 피치 기간으로부터의 샘플들을 상기 손실 패킷에 대해 사용하는 수단을 포함하는, 손실 패킷을 재구성하는 장치.
  34. 제 33 항에 있어서,
    상기 어림 피치 추정치는 서브 밴드 샘플들의 자기상관들을 계산함으로써 획득되는, 손실 패킷을 재구성하는 장치.
  35. 제 33 항에 있어서,
    추가적인 손실 패킷을 검출하는 수단; 및
    상기 최종 피치 기간으로부터의 샘플들을 상기 추가적인 손실 패킷에 대해 사용하는 수단을 더 포함하는, 손실 패킷을 재구성하는 장치.
  36. 제 33 항에 있어서,
    정확히 디코딩된 패킷 또는 프레임을 검출하는 수단;
    상기 최종 피치 기간으로부터의 샘플들을 바람직하지 않은 샘플들의 범위에 대해 사용하는 수단; 및
    상기 최종 피치 기간으로부터의 샘플들을 전환 샘플들과 중첩-합산하는 수단을 더 포함하는, 손실 패킷을 재구성하는 장치.
KR1020127023674A 2010-02-11 2011-02-10 서브 밴드 코딩 디코더에서 손실 패킷들의 은닉 KR101422379B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US30356010P 2010-02-11 2010-02-11
US61/303,560 2010-02-11
US32422810P 2010-04-14 2010-04-14
US61/324,228 2010-04-14
US13/014,572 2011-01-26
US13/014,572 US20110196673A1 (en) 2010-02-11 2011-01-26 Concealing lost packets in a sub-band coding decoder
PCT/US2011/024383 WO2011100456A1 (en) 2010-02-11 2011-02-10 Concealing lost packets in a sub-band coding decoder

Publications (2)

Publication Number Publication Date
KR20120128672A true KR20120128672A (ko) 2012-11-27
KR101422379B1 KR101422379B1 (ko) 2014-07-22

Family

ID=44354398

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127023674A KR101422379B1 (ko) 2010-02-11 2011-02-10 서브 밴드 코딩 디코더에서 손실 패킷들의 은닉

Country Status (7)

Country Link
US (1) US20110196673A1 (ko)
EP (1) EP2534655B1 (ko)
JP (1) JP5479617B2 (ko)
KR (1) KR101422379B1 (ko)
CN (1) CN102754150B (ko)
TW (1) TW201207839A (ko)
WO (1) WO2011100456A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101452635B1 (ko) * 2013-06-03 2014-10-22 충북대학교 산학협력단 Lms 예측기를 이용한 패킷 손실 은닉 방법 및 이를 기록한 기록매체

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8706479B2 (en) * 2008-11-14 2014-04-22 Broadcom Corporation Packet loss concealment for sub-band codecs
EP3174295B1 (en) 2012-04-13 2018-12-12 GE Video Compression, LLC Low delay picture coding
CN115442626A (zh) 2012-06-29 2022-12-06 Ge视频压缩有限责任公司 视频数据流、编码器、编码视频内容的方法以及解码器
CN103714821A (zh) 2012-09-28 2014-04-09 杜比实验室特许公司 基于位置的混合域数据包丢失隐藏
US9325544B2 (en) * 2012-10-31 2016-04-26 Csr Technology Inc. Packet-loss concealment for a degraded frame using replacement data from a non-degraded frame
CN103971691B (zh) * 2013-01-29 2017-09-29 鸿富锦精密工业(深圳)有限公司 语音信号处理系统及方法
FR3001593A1 (fr) * 2013-01-31 2014-08-01 France Telecom Correction perfectionnee de perte de trame au decodage d'un signal.
US9196256B2 (en) * 2013-02-07 2015-11-24 Mediatek Inc. Data processing method that selectively performs error correction operation in response to determination based on characteristic of packets corresponding to same set of speech data, and associated data processing apparatus
US9437203B2 (en) * 2013-03-07 2016-09-06 QoSound, Inc. Error concealment for speech decoder
US9437211B1 (en) * 2013-11-18 2016-09-06 QoSound, Inc. Adaptive delay for enhanced speech processing
CN108011686B (zh) * 2016-10-31 2020-07-14 腾讯科技(深圳)有限公司 信息编码帧丢失恢复方法和装置
WO2019091576A1 (en) 2017-11-10 2019-05-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio encoders, audio decoders, methods and computer programs adapting an encoding and decoding of least significant bits
EP3483880A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Temporal noise shaping
EP3483882A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Controlling bandwidth in encoders and/or decoders
WO2019091573A1 (en) 2017-11-10 2019-05-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for encoding and decoding an audio signal using downsampling or interpolation of scale parameters
EP3483886A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Selecting pitch lag
EP3483878A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio decoder supporting a set of different loss concealment tools
EP3483879A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Analysis/synthesis windowing function for modulated lapped transformation
EP3483884A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Signal filtering
EP3483883A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio coding and decoding with selective postfiltering
EP3553777B1 (en) * 2018-04-09 2022-07-20 Dolby Laboratories Licensing Corporation Low-complexity packet loss concealment for transcoded audio signals
CN110400569B (zh) * 2018-04-24 2022-01-11 广州安凯微电子股份有限公司 蓝牙音频修复方法及终端设备
WO2020169754A1 (en) * 2019-02-21 2020-08-27 Telefonaktiebolaget Lm Ericsson (Publ) Methods for phase ecu f0 interpolation split and related controller
CN112133317B (zh) * 2020-09-21 2021-08-10 易兆微电子(杭州)股份有限公司 一种基于sbc的低传输比特率高质量语音编解码方法

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5003604A (en) * 1988-03-14 1991-03-26 Fujitsu Limited Voice coding apparatus
DE69233502T2 (de) * 1991-06-11 2006-02-23 Qualcomm, Inc., San Diego Vocoder mit veränderlicher Bitrate
US5615298A (en) * 1994-03-14 1997-03-25 Lucent Technologies Inc. Excitation signal synthesis during frame erasure or packet loss
JPH1097295A (ja) * 1996-09-24 1998-04-14 Nippon Telegr & Teleph Corp <Ntt> 音響信号符号化方法及び復号化方法
JPH10149199A (ja) * 1996-11-19 1998-06-02 Sony Corp 音声符号化方法、音声復号化方法、音声符号化装置、音声復号化装置、電話装置、ピッチ変換方法及び媒体
US7117156B1 (en) * 1999-04-19 2006-10-03 At&T Corp. Method and apparatus for performing packet loss or frame erasure concealment
US7092881B1 (en) * 1999-07-26 2006-08-15 Lucent Technologies Inc. Parametric speech codec for representing synthetic speech in the presence of background noise
JP4269203B2 (ja) * 2000-02-04 2009-05-27 ソニー株式会社 データ処理システム、データ処理装置、データ処理方法、プログラム及び再生装置
CA2388439A1 (en) * 2002-05-31 2003-11-30 Voiceage Corporation A method and device for efficient frame erasure concealment in linear predictive based speech codecs
JP2004120619A (ja) * 2002-09-27 2004-04-15 Kddi Corp オーディオ情報復号装置
JP2004239930A (ja) * 2003-02-03 2004-08-26 Iwatsu Electric Co Ltd パケット損失補償におけるピッチ検出方法と装置
JP3977784B2 (ja) * 2003-07-22 2007-09-19 日本電信電話株式会社 リアルタイムパケット処理装置及びその方法
JP2005107283A (ja) * 2003-09-30 2005-04-21 Tadashi Aoki VoIP音声通信におけるパケット損失隠蔽方法、装置およびプログラム
JP2005202262A (ja) * 2004-01-19 2005-07-28 Matsushita Electric Ind Co Ltd 音声信号符号化方法、音声信号復号化方法、送信機、受信機、及びワイヤレスマイクシステム
JP4744438B2 (ja) * 2004-03-05 2011-08-10 パナソニック株式会社 エラー隠蔽装置およびエラー隠蔽方法
JP4320033B2 (ja) * 2004-05-11 2009-08-26 日本電信電話株式会社 音声パケット送信方法、音声パケット送信装置、および音声パケット送信プログラムとそれを記録した記録媒体
US7590047B2 (en) * 2005-02-14 2009-09-15 Texas Instruments Incorporated Memory optimization packet loss concealment in a voice over packet network
US8255207B2 (en) * 2005-12-28 2012-08-28 Voiceage Corporation Method and device for efficient frame erasure concealment in speech codecs
US8280728B2 (en) * 2006-08-11 2012-10-02 Broadcom Corporation Packet loss concealment for a sub-band predictive coder based on extrapolation of excitation waveform
WO2008022181A2 (en) * 2006-08-15 2008-02-21 Broadcom Corporation Updating of decoder states after packet loss concealment
US8386246B2 (en) * 2007-06-27 2013-02-26 Broadcom Corporation Low-complexity frame erasure concealment
CN101437009B (zh) * 2007-11-15 2011-02-02 华为技术有限公司 丢包隐藏的方法及其系统
US8706479B2 (en) * 2008-11-14 2014-04-22 Broadcom Corporation Packet loss concealment for sub-band codecs
US8214201B2 (en) * 2008-11-19 2012-07-03 Cambridge Silicon Radio Limited Pitch range refinement
US20100185441A1 (en) * 2009-01-21 2010-07-22 Cambridge Silicon Radio Limited Error Concealment
US8185384B2 (en) * 2009-04-21 2012-05-22 Cambridge Silicon Radio Limited Signal pitch period estimation
US9076439B2 (en) * 2009-10-23 2015-07-07 Broadcom Corporation Bit error management and mitigation for sub-band coding

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101452635B1 (ko) * 2013-06-03 2014-10-22 충북대학교 산학협력단 Lms 예측기를 이용한 패킷 손실 은닉 방법 및 이를 기록한 기록매체

Also Published As

Publication number Publication date
CN102754150B (zh) 2014-03-19
JP2013519920A (ja) 2013-05-30
KR101422379B1 (ko) 2014-07-22
CN102754150A (zh) 2012-10-24
JP5479617B2 (ja) 2014-04-23
US20110196673A1 (en) 2011-08-11
EP2534655B1 (en) 2014-01-22
EP2534655A1 (en) 2012-12-19
TW201207839A (en) 2012-02-16
WO2011100456A1 (en) 2011-08-18

Similar Documents

Publication Publication Date Title
KR101422379B1 (ko) 서브 밴드 코딩 디코더에서 손실 패킷들의 은닉
JP6768886B2 (ja) 冗長フレーム情報を通信するシステムおよび方法
JP6151405B2 (ja) クリティカリティ閾値制御のためのシステム、方法、装置、およびコンピュータ可読媒体
JP6077011B2 (ja) 冗長フレーム符号化および復号のためのデバイス
EP2438592B1 (en) Method, apparatus and computer program product for reconstructing an erased speech frame
JP6692948B2 (ja) 異なるサンプリングレートを有するフレーム間の移行による音声信号の線形予測符号化および復号のための方法、符号器および復号器
JP5797780B2 (ja) ウォーターマーク入り信号を適応的に符号化し復号するためのデバイス
JP6373873B2 (ja) 線形予測コーディングにおける適応型フォルマントシャープニングのためのシステム、方法、装置、及びコンピュータによって読み取り可能な媒体
KR20180094905A (ko) 다수의 오디오 신호들의 인코딩
JP2010518442A (ja) エラーフレームのパラメータ更新方法及び装置
US8862465B2 (en) Determining pitch cycle energy and scaling an excitation signal
CN113826161A (zh) 用于检测待编解码的声音信号中的起音以及对检测到的起音进行编解码的方法和设备

Legal Events

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

Payment date: 20170629

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee