KR20170082901A - 재생 지연 조절 방법 및 이를 적용한 전자 장치 - Google Patents
재생 지연 조절 방법 및 이를 적용한 전자 장치 Download PDFInfo
- Publication number
- KR20170082901A KR20170082901A KR1020160002193A KR20160002193A KR20170082901A KR 20170082901 A KR20170082901 A KR 20170082901A KR 1020160002193 A KR1020160002193 A KR 1020160002193A KR 20160002193 A KR20160002193 A KR 20160002193A KR 20170082901 A KR20170082901 A KR 20170082901A
- Authority
- KR
- South Korea
- Prior art keywords
- delay
- current frame
- value
- network
- estimating
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
- H04L43/0858—One way delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W56/00—Synchronisation arrangements
- H04W56/004—Synchronisation arrangements compensating for timing error of reception due to propagation delay
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/062—Synchronisation of signals having the same nominal but fluctuating bit rates, e.g. using buffers
- H04J3/0632—Synchronisation of packets and cells, e.g. transmission of voice via a packet network, circuit emulation service [CES]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
- H04L43/0829—Packet loss
- H04L43/0835—One way packet loss
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
- H04L43/0847—Transmission error
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/28—Flow control; Congestion control in relation to timing considerations
- H04L47/283—Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/10—Architectures or entities
- H04L65/1059—End-user terminal functionalities specially adapted for real-time communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/14—Systems for two-way working
- H04N7/15—Conference systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5638—Services, e.g. multimedia, GOS, QOS
- H04L2012/5646—Cell characteristics, e.g. loss, delay, jitter, sequence integrity
- H04L2012/5649—Cell delay or jitter
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
- H04L43/087—Jitter
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2416—Real-time traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Environmental & Geological Engineering (AREA)
- Multimedia (AREA)
- Computer Hardware Design (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
전자 장치 및 이의 재생 지연 조절방법이 제공된다. 본 전자 장치는 이미 재생된 패킷들의 네트워크 상태 정보를 이용하여 현재 프레임의 초기 목표재생 지연을 추정하며, 재생되지 않은 패킷들의 실제 지연정보를 바탕으로 추정된 초기 목표재생 지연을 업데이트하여 현재 프레임의 최종 목표재생 지연을 추정하는 목표재생지연 추정부 및 최종 목표재생 지연을 바탕으로 현재 프레임의 재생 지연을 조절하기 위한 적응화 방식을 판단하는 적응 제어부를 포함한다.
Description
본 발명은 재생 지연 조절 방법 및 이를 적용한 전자 장치에 관한 것으로, 더욱 상세하게는, 고음질의 오디오를 제공하면서 재생 지연을 조절할 수 있는 재생 지연 조절 방법 및 이를 적용한 전자 장치에 관한 것이다.
패킷 네트워크 기반의 통신 시스템에서는 패킷이 네트워크 상태 또는 오디오 처리 과정에 의해 지연을 가지고 전송되거나 손실되는 경우가 발생하여 신뢰하기 어렵고 안정적이지 못하다. 이를 보완하기 위하여, 전송되는 패킷이 허용치 이상으로 지연되거나 손실될 경우 재전송을 요청하는 능동적인 오류 조정 기능을 제공하고 있으나, 이로 인해 추가적인 지연이 발생하여 실시간 대화를 지원해야 하는 통화 서비스에는 적용이 어렵다.
이에 패킷 지연 및/또는 패킷 손실을 줄이면서 수신된 패킷의 흐름을 일정하게 유지함으로써, 음성 디코더가 지속적으로 음성신호를 출력할 수 있도록 하는 많은 방식들이 개발되어왔다. 이러한 방식들 중 네트워크 특성이 시간에 따라 변화하는 환경에서 가장 효율적인 방식으로는 시간 축 변환(Time Scale Modification, 이하 TSM라 함) 처리를 이용해서 묵음 구간뿐만 아니라 음성 구간에서도 재생 지연을 조절할 수 있는 지터 버퍼 관리(Jitter Buffer Management, 이하 JBM라 약함) 방식을 들 수 있다. 이러한 JBM 방식에서 다양한 네트워크 상황에 맞게 재생 지연을 감소시키거나 패킷 에러를 보상할 필요성이 상당히 대두되고 있다.
본 개시의 목적은 고음질의 오디오를 제공하면서 지터 버퍼부 혹은 TSM 적응부를 통해 재생 지연을 조절하기 위한 재생 지연 조절방법 및 이를 적용한 전자 장치를 제공함에 있다.
상기 목적을 달성하기 위한 본 개시의 일 실시예에 따른, 전자 장치의 재생 지연 조절방법은, 이미 재생된 패킷들의 네트워크 상태 정보를 이용하여 현재 프레임의 초기 목표재생 지연을 추정하는 단계; 재생되지 않은 패킷들의 실제 지연정보를 바탕으로 상기 추정된 초기 목표재생 지연을 업데이트하여 상기 현재 프레임의 최종 목표재생 지연을 추정하는 단계; 및 상기 최종 목표재생 지연을 바탕으로 상기 현재 프레임의 재생 지연을 조절하기 위한 적응화 방식을 판단하는 단계;를 포함한다.
그리고, 이미 재생된 패킷들의 네트워크 상태 정보를 이용하여 네트워크 파라미터를 산출하는 단계;를 더 포함하며, 상기 초기 목표재생 지연을 추정하는 단계는, 상기 네트워크 파라미터를 이용하여 초기 목표재생 지연을 추정하기 위한 추정 함수를 획득하는 단계;를 포함할 수 있다.
또한, 네트워크 상태에 따라 목표재생 지연을 추정하기 위해 사용되는 어레이의 개수를 조절하는 단계;를 포함하며, 상기 네트워크 파라미터를 산출하는 단계는, 상기 조절된 어레이의 개수에 대한 정보 및 상기 이미 재생된 패킷들의 네트워크 상태 정보를 바탕으로 네트워크 파라미터를 산출할 수 있다.
그리고, 상기 최종 목표재생 지연을 추정하는 단계는, 상기 추정 함수를 이용하여 획득한 상기 현재 프레임의 초기 목표재생 지연값과 재생되지 않은 패킷의 실제 전송 지연값의 차이를 구하여 에러값을 산출하는 단계; 네트워크 통계를 바탕으로 지연 수정값(Delay modifier)를 산출하는 단계; 및 상기 초기 추정 함수, 상기 에러값 및 상기 지연 수정값을 바탕으로 최종 목표재생 지연정보를 추정하기 위한 최종 추정함수를 획득하는 단계;를 포함할 수 있다.
또한, 상기 네트워크 상태 정보는 상기 에러값에 의해 업데이트될 수 있다.
그리고, 상기 현재 프레임의 지연 손실(Late loss) 정보를 판단하는 단계;를 더 포함하고, 상기 판단하는 단계는, 상기 최종 추정 함수를 통해 도출된 현재 프레임의 재생 지연추정값, 이전 프레임의 재생 지연값, 상기 지연 손실 정보를 바탕으로 적응화 방식을 판단할 수 있다.
또한, 상기 적응화 방식은. 현재 프레임을 제거하는 적응화 방식, 현재 프레임을 디코딩하여 TSM을 줄이는 적응화 방식, 현재 프레임을 디코딩하여 TSM을 늘리는 적응화 방식 및 제로 프레임을 삽입하는 적응화 방식 중 하나일 수 있다.
그리고, 상기 전자 장치는, 음성 통화를 수행하는 서비스의 유형에 따라 음질 최대화 모드 또는 지연 최소화 모드 중 하나로 구동하여 목표재생 지연을 추정할 수 있다.
한편, 상기 목적을 달성하기 위한 본 개시의 일 실시예에 따른, 전자 장치는, 이미 재생된 패킷들의 네트워크 상태 정보를 이용하여 현재 프레임의 초기 목표재생 지연을 추정하며, 재생되지 않은 패킷들의 실제 지연정보를 바탕으로 상기 추정된 초기 목표재생 지연을 업데이트하여 상기 현재 프레임의 최종 목표재생 지연을 추정하는 목표재생지연 추정부; 및 상기 최종 목표재생 지연을 바탕으로 상기 현재 프레임의 재생 지연을 조절하기 위한 적응화 방식을 판단하는 적응 제어부;를 포함한다.
그리고, 상기 전자 장치는, 이미 재생된 패킷들의 네트워크 상태 정보를 이용하여 네트워크 파라미터를 산출하는 파라미터 산출부;를 더 포함하며, 상기 목표재생지연 추정부는, 상기 네트워크 파라미터를 이용하여 초기 목표재생 지연을 추정하기 위한 추정 함수를 획득할 수 있다.
또한, 상기 파라미터 산출부는, 네트워크 상태에 따라 목표재생 지연을 추정하기 위해 사용되는 어레이의 개수를 조절하며, 상기 조절된 어레이의 개수에 대한 정보 및 상기 이미 재생된 패킷들의 네트워크 상태 정보를 바탕으로 네트워크 파라미터를 산출할 수 있다.
그리고, 상기 목표재생지연 추정부는, 상기 추정 함수를 이용하여 획득한 상기 현재 프레임의 초기 목표재생 지연값과 재생되지 않은 패킷의 실제 전송 지연값의 차이를 구하여 에러값을 산출하며, 네트워크 통계를 바탕으로 지연 수정값(Delay modifier)를 산출하고, 상기 초기 추정 함수, 상기 에러값 및 상기 지연 수정값을 바탕으로 최종 목표재생 지연정보를 추정하기 위한 최종 추정함수를 획득할 수 있다.
또한, 상기 네트워크 상태 정보는 상기 에러값에 의해 업데이트될 수 있다.
그리고, 상기 현재 프레임의 지연 손실(Late loss) 정보를 판단하는 지연 손실 판단부;를 더 포함하고, 상기 적응 제어부는, 상기 최종 추정 함수를 통해 도출된 현재 프레임의 재생 지연추정값, 이전 프레임의 재생 지연값, 상기 지연 손실 정보를 바탕으로 적응화 방식을 판단할 수 있다.
또한, 상기 적응화 방식은. 현재 프레임을 제거하는 적응화 방식, 현재 프레임을 디코딩하여 TSM을 줄이는 적응화 방식, 현재 프레임을 디코딩하여 TSM을 늘리는 적응화 방식 및 제로 프레임을 삽입하는 적응화 방식 중 하나일 수 있다.
그리고, 상기 전자 장치는, 음성 통화를 수행하는 서비스의 유형에 따라 음질 최대화 모드 또는 지연 최소화 모드 중 하나로 구동하여 목표재생 지연을 추정할 수 있다.
한편, 상기 목적을 달성하기 위한 본 개시의 일 실시예에 따른, 전자 장치의 재생 지연 조절방법을 수행하기 위한 프로그램이 저장된 비일시적인 컴퓨터 판독 가능한 기록매체는, 이미 재생된 패킷들의 네트워크 상태 정보를 이용하여 현재 프레임의 초기 목표재생 지연을 추정하는 단계; 재생되지 않은 패킷들의 실제 지연정보를 바탕으로 상기 추정된 초기 목표재생 지연을 업데이트하여 상기 현재 프레임의 최종 목표재생 지연을 추정하는 단계; 및 상기 최종 목표재생 지연을 바탕으로 상기 현재 프레임의 재생 지연을 조절하기 위한 적응화 방식을 판단하는 단계;를 포함하는 프로그램을 저장한다.
한편, 상기 목적을 달성하기 위한 본 개시의 일 실시예에 따른, 전자 장치의 재생 지연 조절방법은, 통신 서비스 및 코딩 모드 중 하나를 바탕으로 전자 장치의 모드를 지연 최소화 모드 및 음질 최대화 모드 중 하나로 설정하는 단계; 상기 설정된 모드에 따라 현재 프레임의 목표재생 지연을 추정하는 단계; 및 상기 추정된 목표재생 지연을 바탕으로 상기 현재 프레임의 재생 지연을 조절하기 위한 적응화 방식을 판단하는 단계;를 포함한다.
상술한 바와 같은 본 발명의 다양한 실시예에 의해, 고음질을 제공하면서, 다양한 네트워크 상황에 맞게 재생 지연을 감소시키거나 패킷 에러를 보상할 수 있다.
도 1a은 일 실시예에 따른 재생 지연 조절 기능을 갖는 통신 시스템의 구성을 나타낸 블록도,
도 1b는 일 실시예에 따른 재생 지연 조절기능을 갖는 통신 시스템의 음성 신호 전송을 설명하기 위한 도면,
도 2a는 일 실시예에 따른 전자 장치의 구성을 간략히 나타내는 블록도,
도 2b는 일 실시예에 따른 재생되지 않은 패킷의 정보를 이용하는 실시예를 설명하기 위한 도면,
도 2c는 일 실시예에 따른 전자 장치의 패킷 처리 과정을 설명하기 위한 흐름도,
도 3은 일 실시예에 따른 재생 지연 조절기능을 갖는 전자 장치의 구성을 상세히 나타내는 블록도,
도 4는 일 실시예에 따른 전자 장치의 목표재생 지연을 추정하여 적응화 방식을 판단하기 위한 실시예를 설명하기 위한 흐름도,
도 5는 일 실시예에 따른 네트워크 상태 정보에 따라 재생 지연 추정에 사용되는 어레이 개수의 변경을 위한 행오버(hangover) 계산 방법을 설명하기 위한 흐름도,
도 6은 일 실시예에 따른 목표재생 지연의 범위와 실제 네트워크 지연값의 차이값을 구하는 방법의 예를 나타낸 흐름도,
도 7은 일 실시예에 따른 지연 손실을 판단하기 위한 방법을 설명하기 위한 흐름도,
도 8은 일 실시예에 따른 추정된 목표재생 지연에 따른 적응화 방식을 판단하기 위한 흐름도,
도 9a는 도 7에 나타나 있는 지연 손실 결정 방법에서 사용하는 일반적인 딜레이 버퍼 업데이트 방식의 예를 도시한 도면,
도 9b는 도 9a의 일반적인 방식보다 저복잡도를 제공하는 링 딜레이(ring delay) 버퍼 업데이트 방식의 예를 도시한 도면,
도 10 및 도 11은 일 실시예에 따른 전자 장치의 구성을 나타내는 블록도이고,
도 12는 전자 장치의 재생 지연 조절 방법을 설명하기 위한 흐름도이다.
도 1b는 일 실시예에 따른 재생 지연 조절기능을 갖는 통신 시스템의 음성 신호 전송을 설명하기 위한 도면,
도 2a는 일 실시예에 따른 전자 장치의 구성을 간략히 나타내는 블록도,
도 2b는 일 실시예에 따른 재생되지 않은 패킷의 정보를 이용하는 실시예를 설명하기 위한 도면,
도 2c는 일 실시예에 따른 전자 장치의 패킷 처리 과정을 설명하기 위한 흐름도,
도 3은 일 실시예에 따른 재생 지연 조절기능을 갖는 전자 장치의 구성을 상세히 나타내는 블록도,
도 4는 일 실시예에 따른 전자 장치의 목표재생 지연을 추정하여 적응화 방식을 판단하기 위한 실시예를 설명하기 위한 흐름도,
도 5는 일 실시예에 따른 네트워크 상태 정보에 따라 재생 지연 추정에 사용되는 어레이 개수의 변경을 위한 행오버(hangover) 계산 방법을 설명하기 위한 흐름도,
도 6은 일 실시예에 따른 목표재생 지연의 범위와 실제 네트워크 지연값의 차이값을 구하는 방법의 예를 나타낸 흐름도,
도 7은 일 실시예에 따른 지연 손실을 판단하기 위한 방법을 설명하기 위한 흐름도,
도 8은 일 실시예에 따른 추정된 목표재생 지연에 따른 적응화 방식을 판단하기 위한 흐름도,
도 9a는 도 7에 나타나 있는 지연 손실 결정 방법에서 사용하는 일반적인 딜레이 버퍼 업데이트 방식의 예를 도시한 도면,
도 9b는 도 9a의 일반적인 방식보다 저복잡도를 제공하는 링 딜레이(ring delay) 버퍼 업데이트 방식의 예를 도시한 도면,
도 10 및 도 11은 일 실시예에 따른 전자 장치의 구성을 나타내는 블록도이고,
도 12는 전자 장치의 재생 지연 조절 방법을 설명하기 위한 흐름도이다.
본 개시는 다양한 변환을 가할 수 있고 여러가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 구체적으로 설명하고자 한다. 그러나 이는 특정한 실시 형태에 대해 한정하려는 것이 아니며, 기술적 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해될 수 있다. 실시예들을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들이 용어들에 의해 한정되는 것은 아니다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
본 개시에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 한정하려는 의도가 아니다. 본 개시에서 사용한 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나 이는 당 분야에 종사하는 기술자의 의도, 판례, 또는 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 실시예의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 개시에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
이하, 실시예들을 첨부 도면을 참조하여 상세히 설명하기로 한다.
도 1a은 일 실시예에 따른 재생 지연(playout delay) 조절 기능을 갖는 통신 시스템(1)의 구성을 나타낸 도면이다. 도 1a에 도시된 바와 같이, 통신 시스템(1)은 송신단(Tx)의 전자 장치(10) 및 수신단(Rx)의 전자 장치(20)를 포함한다. 이때, 전자 장치(10,20)는 스마트 폰과 같은 휴대 단말일 수 있으나, 이는 일 실시예에 불과할 뿐, PDA, 태블릿 PC, 노트북 PC, 데스크탑 PC, 스마트 TV와 같은 다양한 전자 장치로 구현될 수 있다.
우선, 송신단의 전자 장치(10)는 수신단의 전자 장치(20)에 전화 통화를 요청할 수 있다. 송신단의 전자 장치(10)는 시그널링 패스(signaling path)를 통해 통화 조건을 교섭하고, 미디어 패스(media path)를 통해 실제 부호화된 데이터가 전송될 수 있다.
특히, 전화 통화를 수행하는 동안 송신단의 전자 장치(10)는 마이크(11)를 통해 수신한 사용자의 음성 신호를 A/D 변환 과정 이후 버퍼(13)에 저장하여 프레임 단위로 처리할 수 있다. 그리고, 송신단의 전자 장치(10)는 전처리 과정(Pre-processing)(13)을 수행하여 마이크(11)를 통해 입력된 음성 신호의 음질 향상 과정을 수행할 수 있다. 예를 들어, 송신단의 전자 장치(10)는 EC(Echo Canceller), NS(Noise suppression), Gain Control 등의 모듈을 이용하여 통화의 질의 높이기 위해 음질 향상 과정을 수행할 수 있다. 그리고, 송신단의 전자 장치(10)는 인코더(예를 들어, 3GPP EVS/AMR-NB/AMR-WB 등)(14)를 이용하여 음성 신호를 압축하여 비트 스트림을 생성하고, 비트스트림을 모뎀(15)을 거쳐 패킷화하여 네트워크로 전송할 수 있다. 도 1에서 패킷 단위로 통신하는 서비스는 VoLTE 서비스에서의 예를 나타낸 것이다.
수신단의 전자 장치(20)는 모뎀(21)을 통해 전송받을 패킷을 지터 버퍼(22)에 저장할 수 있다. 그리고, 수신단의 전자 장치(20)는 지터버퍼 관리(JBM: Jitter Buffer Management)를 통해 각각의 전송된 패킷의 전송지연에 따라 발생하는 지터를 없애고 원활한 음성 디코딩이 가능하도록 할 수 있다. 그리고, 수신단의 전자 장치(20)는 지터가 없어져서 균일화된 패킷을 디코더(예를 들어, 3GPP EVS/AMR-NB/AMR-WB 등)(23)에서 복호화하고, 복호화된 신호를 후처리(Post-processing) 과정(24)를 수행하여 음질향상과정을 수행할 수 있다. 그리고, 수신단의 전자 장치(20)는 음질 향상된 음성 신호를 D/A 변환을 거쳐 리시버 또는 스피커(25)를 통해 출력할 수 있다.
도 1b는 일 실시예에 따른 재생 지연 조절기능을 갖는 통신 시스템의 음성 신호 전송을 설명하기 위한 시퀀스도이다. 도 1b에 도시된 통신 시스템(1)은 패킷 기반의 통신 시스템에서 사용되는 JBM 알고리즘을 이용할 수 있다.
송신단의 전자 장치(10)는 마이크(11)를 통해 음성 신호를 수신한다(110). 이때, 송신단의 전자 장치(10)는 수신된 음성 신호를 20ms 단위의 오디오 프레임으로 구성할 수 있다.
송신단의 전자 장치(10)는 전처리 과정을 통해 음성 신호의 음질을 향상시키며, 오디오 프레임의 인코딩을 수행한다(120). 이때, 송신단의 전자 장치(20)는 오디오 프레임을 수신단의 전자 장치(20)로 전송하기 위해, RTP 패킷화할 수 있다.
송신단의 전자 장치(10)는 RTP(Real-time Transport Protocol) 패킷을 수신단의 전자 장치(20)로 전송한다(130). 이때, 수신단의 전자 장치(20)는 매 20ms마다 RTP 패킷을 수신할 수 있다.
수신단의 전자 장치(20)는 수신된 RTP 패킷을 지터 버퍼에 저장한다(140). 이때, 수신단의 전자 장치(20)는 수신된 RTP 패킷으로부터 프레임을 분리하여 버퍼에 저장할 수 있다.
수신단의 전자 장치(20)는 수신된 현재 프레임의 목표재생 지연을 추정하고(150), 추정된 현재 프레임의 목표재생 지연값을 바탕으로 적응화 방식을 판단한다(160). 이에 대해서는 추후에 상세히 설명하기로 한다.
수신단의 전자 장치(20)는 판단된 적응화 방식에 따라 오디오 프레임을 디코딩하여 TSM(Time Scale Modification)을 적용한다(170).
수신단의 전자 장치(20)는 처리된 음성 신호를 출력한다(180).
도 2a는 일 실시예에 따른 재생되지 않은 패킷의 정보를 이용하는 실시예를 설명하기 위한 도면이다. 본 발명에서는 수신된 패킷을 두 개의 집합으로 분리한다. 구체적으로, 전자 장치(20)는 현 시점을 기준으로 이미 재생된 패킷과 아직 재생되지 않은 패킷을 이용하여 현재 프레임의 목표재생 지연을 추정한다. 특히, 이미 재생된 패킷의 네트워크 상태 정보를 이용하여 초기 추정 함수를 도출한 다음, 초기 추정 함수를 통해 도출된 현재 프레임의 추정값과 아직 재생되지 않은 패킷에 해당하는 실제 전송 지연값을 비교하여 에러값을 도출하고, 에러값을 피드백 받아 추정함수를 업데이트하여 최종 추정 함수를 획득할 수 있다. 이 경우, 현재 프레임의 재생 지연값이 실제값에 더욱 가까운 값으로 예측되어 지연 추정의 정확도가 높아질 수 있다. 이에 의해, 미래 프레임에 대한 전송 지연을 정확히 추정하게 되면, 버퍼 관리를 더욱 효율적으로 수행할 수 있으며, 이를 통해 패킷 관리 지연을 최소화할 수 있다.
도 2b는 일 실시예에 따른 전자 장치(20)의 구성을 간략히 나타내는 블록도이다. 도 2b에 도시된 바와 같이, 전자 장치(20)는 목표재생 지연 추정부(210) 및 적응 제어부(220)를 포함한다.
목표재생 지연 추정부(210)는 이미 재생된 패킷들의 네트워크 상태 정보를 이용하여 현재 프레임의 초기 목표재생 지연을 추정하며, 재생되지 않은 패킷들의 실제 지연정보를 바탕으로 추정된 초기 목표재생 지연을 업데이트하여 현재 프레임의 최종 목표재생 지연을 추정한다.
구체적으로, 목표재생 지연 추정부(210)는 이미 재생된 패킷들의 네트워크 상태 정보를 이용하여 산출된 네트워크 파라미터를 이용하여 초기 추정 함수를 획득할 수 있다. 이때, 네트워크 파라미터는 목표재생 지연을 추정하기 위해 사용되는 어레이의 개수 및 이미 재생된 패킷들의 네트워크 지연값을 바탕으로 산출되며, 목표재생 지연을 추정하기 위해 사용되는 어레이의 개수는 네트워크의 상태에 따라 조절될 수 있다.
그리고, 목표재생 지연 추정부(210)는 초기 추정 함수를 이용하여 획득한 현재 프레임의 초기 목표재생 지연값과 재생되지 않은 패킷의 실제 전송 지연값의 차이를 통해 에러값을 산출할 수 있다. 그리고, 목표재생 지연 추정부(210)는 네트워크 통계 및 설정된 모드 정보 등을 바탕으로 지연 수정값(Delay modifier)를 산출할 수 있다. 그리고, 목표재생 지연 추정부(210)는 초기 추정 함수, 에러값 및 지연 수정값을 바탕으로 최종 목표재생 지연정보를 추정하기 위한 최종 추정함수를 획득하고, 최종 추정함수를 통해 현재 프레임의 목표재생 지연값을 획득할 수 있다. 이때, 이미 재생된 패킷들의 네트워크 상태 정보는 에러값에 의해 업데이트될 수 있다.
적응 제어부(210)는 최종 목표재생 지연 정보를 바탕으로 현재 프레임의 재생 지연을 조절하기 위한 적응화 방식을 판단할 수 있다. 이때, 적응 제어부(210)는 현재 프레임의 목표재생 지연값, 이전 프레임의 재생 지연값, 지연 손실 정보 및 한 프레임당 샘플의 개수를 이용하여 적응화 방식을 판단할 수 있다. 적응화 방식으로는 현재 프레임을 제거하는 적응화 방식, 현재 프레임을 디코딩하여 TSM을 줄이는 적응화 방식, 현재 프레임을 디코딩하여 TSM을 늘리는 적응화 방식 및 제로 프레임을 삽입하는 적응화 방식 중 하나일 수 있다.
도 2c는 일 실시예에 따른 전자 장치(200)의 패킷 처리 과정을 설명하기 위한 흐름도이다.
전자 장치(200)는 지터 버퍼에 샘플이 가득찼는지 여부를 판단한다(201).
지터 버퍼에 샘플이 가득차지 않은 상태에서, 전자 장치(200)는 오디오 신호의 재생 시간을 추정한다(202).
전자 장치(200)는 이미 재생된 패킷들의 네트워크 지연 정보 및 재생되지 않은 패킷의 네트워크 지연 정보를 바탕으로 목표재생 지연을 추정한다(203).
전자 장치(200)는 추정된 목표재생 지연을 바탕으로 손실 지연 여부를 결정한다(204).
전자 장치(200)는 결정된 손실 지연 정보를 바탕으로 현재 프레임의 재생 지연을 조절하기 위한 적응화 방식을 결정한다(310). 적응화 방식으로는, 프레임 삽입(Insert)/삭제(Delete), TSM의 확장(Stretching)/수축(shrinking), 지연 유지(no action)을 포함할 수 있다.
전자 장치(200)는 적응화 방식에 따라 디-지터 버퍼링(de-jitter buffering)을 수행한다(206). 구체적으로, 적응화 방식이 프레임 삽입으로 결정된 경우, 전자 장치(200)는 현재 프레임에 제로 프레임을 삽입하여 지연을 증가시킬 수 있다. 이때, 제로 프레임은 노 데이터 프레임으로 처리될 수 있다. 적응화 방식이 프레임 삭제로 결정된 경우, 전자 장치(200)는 현재 프레임을 삭제시키는 작업을 수행한다.현재 프레임이 삭제된 경우, 전자 장치(200)는 프레임의 디코딩 과정을 거치지 않고, 다음 프레임에 대해 203 블록을 수행할 수 있다.
디-지터 버퍼링 이후 전자 장치(200)는 현재 프레임에 사용된 코덱에 따라 현재 프레임에 대한 디코딩을 수행한다(207).
디코딩 후 적응화 방식이 TSM의 확장 또는 수축으로 판단된 경우, 전자 장치(200)는 TSM 조절을 수행한다(208). 즉, 전자 장치(200)는 TSM 모듈을 통해 현재 프레임의 재생 속도를 줄이거나 늘리는 방식으로 현재 프레임을 처리할 수 있다.
전자 장치(200)는 사이즈가 조절된 현재 프레임에 해당하는 샘플 단위의 오디오 데이터에 대해 리시버 출력을 위한 버퍼링을 수행한다(209).
지터 버퍼에 샘플이 가득찬 경우, 전자 장치(200)는 음성 신호를 재생하기 위해 오디오 데이터를 리시버로 전송한다(211).
전자 장치(200)는 한 프레임에 대응되는 시간을 기다린 후(212) 다시 버퍼에 샘플이 가득찼는지 여부를 확인한다(201).
도 3은 일 실시예에 따른 재생 지연 조절기능을 갖는 전자 장치의 구성을 상세히 나타내는 블록도이다. 도 3에 도시된 바와 같이, 전자 장치(200)는 패킷 분리부(310), 파라미터 산출부(320), 목표재생 지연 추정부(330), 지연 손실 판단부(340), 적응 제어부(350), 지터 버퍼부(360), 오디오 복호화부(370), TSM 적용부(380) 및 수신 버퍼부(390)를 포함한다. 한편, 도 3의 기능은 기본적으로 3GPP TS 26.448을 따른다.
도 3을 참조하면, 패킷 분리부(310)는 전송채널 혹은 모뎀을 통하여 수신되는 패킷 스트림을 분석하고, 패킷에 임베디드된 프레임들과 네트워크 지연값을 추정하기 위한 메타 데이터를 추출할 수 있다. 추출된 프레임들은 지터 버퍼부(360)로 제공될 수 있다. 일 예로, 패킷은 RTP(Real-time Transport Protocol) 페이로드 포맷을 갖는 RTP 패킷일 수 있다. 일 예로, 프레임은 EVS(Enhanced Voice Service) 코덱에 의해 부호화된 프레임일 수 있다. 한편, 전자 장치(200)가 비트스트림을 수신하는 경우, 패킷 분리부(310)는 옵션으로 구비될 수 있다.
패킷 분리부(310)는 수신되는 RTP 패킷에 존재하는 프레임마다 미디어 타임스탬프를 산출하고 할당할 수 있다. RTP 패킷은 RTP 헤더와 RTP 페이로드를 포함할 수 있다. RTP 헤더에서 지터 버퍼부(360)와 관련된 데이터 필드는 RTP 타임스탬프와 RTP 시퀀스 넘버를 들 수 있다. 일 실시예로, 패킷 분리부(310)에서 추출되는 각 프레임의 데이터 구조는 페이로드 사이즈를 포함하는 프레임 페이로드 데이터, 해당 프레임을 포함하는 RTP 패킷의 도착 타임스탬프, 패킷의 RTP 타임스탬프로부터 도출되는 RTP 타임스케일 단위의 미디어 타임스탬프, RTP 페이로드 포맷 명세에 정의된 RTP 타임스케일, SID(Silence Insertion Descriptor) 플래그 및 부분 복사 플래그를 포함할 수 있다. 지터 버퍼부(360)를 오디오 코덱과 독립적으로 운용하기 위해서는, SID 플래그가 지터 버퍼부(360)로 제공될 필요가 있다. 일 예로, EVS, AMR 및 AMR-WB 코덱의 경우, SID 플래그는 프레임 페이로드 데이터의 사이즈로부터 결정될 수 있다.
이하에서는 도 4 내지 도 8을 참조하여, 파라미터 결정부(320), 목표재생 지연 추정부(330), 지연 손실 판단부(340), 적응 제어부(350)가 현재 프레임의 목표재생 지연을 추정하여 현재 프레임에 대한 적응화 방식을 결정하는 방법에 대해 설명하기로 한다.
파라미터 결정부(320)는 현재 프레임의 목표재생 지연을 추정하기 위한 추정 함수를 획득하기 위해, 네트워크 파라미터를 획득한다.
구체적으로, 파라미터 결정부(320)는 목표재생 지연을 추정하기 위한 어레이 개수(L)를 결정한다(도 4의 410). 일반적인 지연에 대비해 선형 예측 에러가 4% 미만인 경우, 어레이의 개수는 최소값(예를 들어, 60)으로 설정될 수 있다. 만일 에러값이 4% 이상인 경우, 최대값에 도달할 때까지 어레이의 개수를 1씩 증가시킨다. 이때, 어레이 개수의 과도한 변동을 막기 위해 행오버(Hangover) 알고리즘을 이용할 수 있다.
도 5는 일 실시예에 따른 네트워크 상태 정보에 따라 재생 지연 추정에 사용되는 어레이 개수의 변경을 위한 행오버(hangover) 계산 방법을 설명하기 위한 흐름도이다.
우선, 파라미터 산출부(320)는 프레임에 대해 일반적인 지연에 대비한 선형 예측 에러값(Di)를 산출한다(510). 여기서, B 0 와 B 3 계산 방법은 아래에 설명하기로 한다. 그리고, 파라미터 산출부(320)는 64개의 이전 프레임 중 선형 예측 에러값(Di)이 4% 미만인 프레임의 개수를 산출한다(520). 그리고, 64개의 이전 프레임이 모두 4%미만이면(530-Y), 파라미터 산출부(320)는 재생 지연 추정에 이용되는 어레이의 개수(L)를 60개로 정하고(540), 64개의 이전 프레임 중 하나라도 4%이상이면(530-N), 파라미터 산출부(320)는 재생 지연 추정에 이용되는 어레이(L)의 개수를 하나씩 늘린다(550). 그리고, 파라미터 산출부(320)는 산출된 L값과 Lmax(예를 들어, 500) 중 작은 값을 재생 지연 추정에 이용되는 어레이의 개수로 결정한다(560)
즉, 파라미터 산출부(320)는 네트워크 상태가 불안정하면 재생 지연 추정에 이용되는 어레이 개수를 증가시키고, 안정적인 네트워크에서는 재생 지연 추정에 이용되는 어레이 개수를 감소시킬 수 있다.
그리고, 파라미터 산출부(320)는 결정된 어레이 개수 및 수신되어 이미 재생된 패킷들의 네트워크 상태 정보를 이용하여 네트워크 파라미터를 산출한다(도 4 의 420).
구체적으로, 파라미터 산출부(320)는 수신된 RTP 패킷들을 이용하여 네트워크의 상태 분석을 위한 네트워크 파라메터들을 결정한다. 이러한 파라메터를 결정하기 위한 가장 중요한 정보는 네트워크의 지연값(d i )이다. 이 값은 전송된 패킷의 헤더정보를 분석하여 확인할 수 있으며, 한가지 계산의 예로는 sending time과 receiving time stamp와의 차이값을 이용하여 산출될 수 있다. 지연 값은 ms 단위로 구해진다. 지터 버퍼부(360)는 가장 최근에 전송된 Lmax개의 지연값을 저장한다. 그래서 실제 계산은 L개의 엔트리들을 이용하여 계산된다 ().
특히, 파라미터 산출부(320)는 아래와 같은 네트워크 파라미터를 산출할 수 있다.
목표재생 지연 추정부(330)는 산출된 파라미터를 이용하여 목표재생 지연을 추정하기 위한 초기 추정 함수(tPDi))를 획득한다(도 4의 430).
목표재생 지연 추정부(330)는 초기 목표재생 기연 계산을 위한 함수를 획득한 후, 현재 프레임의 실제 전송된 네트워크 지연값을 바탕으로 에러값(Ei)을 산출한다(도 4의 440). 이때, 에러값(Ei)은 초기 추정 함수를 통해 추정된 현재 프레임의 재생 시연값과 아직 재생되지 않은 현재 프레임의 네트워크 전송 지연값의 차이를 통해 산출될 수 있다.
도 6은 일 실시예에 따른 에러값(Ei)을 구하는 방법의 예를 나타낸 흐름도이다.
우선, 목표재생 지연 추정부(330)는 초기 추정 함수를 통해 추정된 현재 프레임의 목표재생 지연값(tPDi)과 이전 프레임의 목표재생 지연값(tPDi-1)을 비교한다(610).
현재 프레임의 목표재생 지연값(tPDi)이 이전 프레임의 목표재생 지연값(tPDi-1)보다 큰 경우(610-Y), 목표재생 지연 추정부(330)는 현재 프레임의 목표재생 지연값(tPDi)과 현재 실제 프레임의 네트워크 지연값(di)을 비교한다(620,630).
현재 프레임의 목표재생 지연값(tPDi)이 현재 프레임의 실제 네트워크 지연값(di)보다 작은 경우(620-Y), 목표재생 지연 추정부(330)는 현재 프레임의 실제 네트워크 지연값(di)과 현재 프레임의 목표재생 지연값(tPDi)의 차이값을 에러값(Ei)으로 산출한다(670).
현재 프레임의 목표재생 지연값(tPDi)이 현재 프레임의 실제 네트워크 지연값(di)보다 작은 경우(630-Y), 목표재생 지연 추정부(330)는 이전 프레임의 목표재생 지연값(tPDi-1)과 현재 프레임의 실제 네트워크 지연값(di)을 비교한다(640).
이전 프레임의 목표재생 지연값(tPDi-1)이 현재 프레임의 실제 네트워크 지연값(di)보다 작은 경우(640-Y), 목표재생 지연 추정부(330)는 현재 프레임의 실제 네트워크 지연값(di)과 현재 프레임의 목표재생 지연값(tPDi)의 차이값을 에러값(Ei)으로 산출한다(670).
이전 프레임의 목표재생 지연값(tPDi-1)이 현재 프레임의 실제 네트워크 지연값(di)보다 크거나 같은 경우(640-N), 목표재생 지연 추정부(330)는 이전 프레임의 목표재생 지연값(tPDi-1)과 현재 프레임의 목표재생 지연값(tPDi)의 차이값을 에러값(Ei)으로 산출한다(680).
현재 프레임의 목표재생 지연값(tPDi)이 이전 프레임의 목표재생 지연값(tPDi-1)보다 작은 경우(610-N), 목표재생 지연 추정부(330)는 이전 이전 프레임의 목표재생 지연값(tPDi-1)과 현재 프레임의 실제 네트워크 지연값(di)을 비교한다(650).
이전 프레임의 목표재생 지연값(tPDi-1)이 현재 프레임의 실제 네트워크 지연값(di)보다 작은 경우(650-Y), 목표재생 지연 추정부(330)는 현재 프레임의 실제 네트워크 지연값(di)과 현재 프레임의 목표재생 지연값(tPDi)의 차이값을 에러값(Ei)으로 산출한다(670).
이전 프레임의 목표재생 지연값(tPDi-1)이 현재 프레임의 실제 네트워크 지연값(di)보다 크거나 같은 경우(650-N), 목표재생 지연 추정부(330)는 이전 프레임의 목표재생 지연값(tPDi-1)과 현재 프레임의 목표재생 지연값(tPDi)의 차이값을 에러값(Ei)으로 산출한다(680).
또한, 현재 프레임의 실제 네트워크 지연값(di)과 현재 프레임의 목표재생 지연값(tPDi)이 같은 경우(630-N,660-N), 목표재생 지연 추정부(330)는 에러값(Ei)을 0으로 산출한다(690)
즉, 목표재생 지연 추정부(330)는 재생되지 않은 현재 프레임의 실제 전송된 네트워크 지연값을 고려하여 추정 함수를 업데이트할 수 있다. 에러값을 고려하여 추정 함수를 업데이트함으로써, 목표재생 지연의 변동(fluctuation)을 최소화할 수 있다.
그리고, 이 에러값은 다음 프레임에서도 보상이 되도록 입력 데이터((네트워크 지연값,di)를 업데이트할 수 있다.
목표재생 지연 추정부(330)는 네트워크 통계 또는 현재 모드 등과 같은 다양한 요소를 바탕으로 지연 수정값(delay modifier Mi)을 산출한다(도 4의 450).
구체적으로, 목표재생 지연 추정부(330)는 각각의 모든 패킷에 대한 네트워크 지연이 필요하지 않으므로, 전송된 패킷의 네트워크 지연의 상한값들을 다음과 같이 구간(interval) 단위별로 결정할 수 있다.
여기서, K는 분석을 위한 구간의 크기이며, 길이는 50이다. 이 LMj값들은 패킷의 네트워크 지연의 행태를 나타낸다. 다음으로 계수(stcfi)를 다음과 같이 구한다.
그리고, 산출된 계수(stcfi)는 0~1 사이로 아래와 같이, 정규화될 수 있다.
이 계수는 최대 분석 길이인 Lmax에 곱해지는 값으로 사용된다.
이러한 계수들을 이용하여 아래의 파라미터를 다시 구한다.
여기서, l 은 기설정된 세 개의 값(100,300,500)을 가질 수 있다.
누적 스위치 조건(Cumulative switching conditions )(h)은 three-sigma condition을 판단하기 위하여 평균값과 분산값을 이용하여 계산될 수 있다.
여기서, c1은 지연 쉬프트(delay shift)를 판단하는 상수이다.
현재 재생지연 보다 큰 값인 지연값(d i )을 갖는 패킷들의 누적 개수(Cumulative number)(e)는 다음과 같이 정의된다.
여기서, vl 은 지연 쉬프트(delay shift)를 판단하는 상수이다.
최종적으로 지연 수정값은 다음과 같이 결정된다.
여기서, mode는 HQ(High Quality) 모드 및 LD(Low Delay) 모드에 따른 스케일링 계수이다.
그리고, 목표재생 지연 추정부(330)는 에러값, 지연 수정값을 바탕으로 초기 추정 함수을 업데이트하여 아래와 같이, 현재 프레임의 목표재생 지연을 추정하기 위한 최종 추정 함수를 획득할 수 있다.
지연 손실 판단부(340)는 현재 프레임의 현재 프레임의 지연 손실(Late loss) 정보를 판단한다(도 4의 470)
이에 대해서는 도 7을 참조하여 설명하기로 한다.
우선, 지연 손실 판단부(340)는 현재 전송된 패킷에서 구할 수 있는 타임 스탬프값을 확인하여 프레임의 순서가 바꼈는지 여부를 판단한다(710).
순서가 바뀌지 않았다면(710-N), 지연 손실 판단부(340)는 지연 손실의 허락된 퍼센티지를 확인하여 기설정된 값 내에 있는지 여부를 판단한다(720). 구체적으로, 허락된 퍼센티지(allowed percentage)는 아래의 식을 통해 산출할 수 있다.
여기서 nLL은 지연 손실 프레임의 숫자를 의미한다.
지연 손실의 허락된 퍼센티지가 기설정된 값 이내에 있지 않다면(720-N), 지연 손실 판단부(340)는 프레임의 정상 디코딩을 수행한다(740).
지연 손실의 허락된 퍼센티지가 기설정된 값 이내 라면(720-Y), 지연 손실 판단부(340)는 이전에 2개 이상의 프레임이 사라졌는지 확인한다(730).
2개 이상의 프레임이 사라진 경우가 아니라면(730-N), 지연 손실 판단부(340)는 프레임의 정상 디코딩을 수행한다(740).
2개 이상의 프레임이 사라진 경우(730-Y), 지연 손실 판단부(340)는 지연 손실에 대한 통계를 업데이트하고(750), 프레임을 드랍(drop)한다(760).
또한, 프레임의 순서가 바뀐 경우 역시(710-Y), 지연 손실 판단부(340)는 지연 손실에 대한 통계를 업데이트하고(750), 프레임을 드랍(drop)한다(760).
이 방식은 목표재생 지연의 제어에 의해 지연 손실을 허락한다. 예를 들어 네트워크 지연의 변동이 중요하지 않고 재생 지연을 유지할 수 있다고 고려한다. 이런 경우 다음 알고리즘에 의해 결정한다. 지연 손실 확률 (wLL)은 다음 식에 의해 결정된다.
여기서 sys_ms는 ms 단위의 system time이고, rtpTSi는 i번째 패킷의 time stamp를 의미한다.
이때, 네트워크 손실로 인해 최소 두 개의 패킷이 사라졌을 때, 지연 손실에 대한 판단을 지연 손실 확률에 기초하여 결정한다. 이에 따라 버스트 손실(burst loss)가 발생한 이후 첫 번째 프레임을 받을 때, 목표재생 지연(tPDi)의 즉각적인 지연 증가 대신에 기존과 동일한 지연을 유지할 수 있다.
적응 제어부(350)는 적응화 제어 로직을 통해 적응화 방식을 결정한다(도 4의 480). 특히, 적응 제어부(350)는 목표재생 지연 추정부(330)에 의해 산출된 현재 프레임의 목표재생 지연 추정값(), 지연 손실 판단부(340)에 의해 결정된 지연 손실 확률(wLL), 한 프레임당 샘플의 개수(N), 이전 프레임의 재생 지연값(PDi-1)을 이용하여 현재 프레임의 재생 지연을 조절하기 위한 적응화 방식을 판단할 수 있다.
여기서, N은 코덱에서 사용된 프레임의 크기를 나타내며, EVS 코덱의 경우, 20ms가 될 수 있다.
이하에서는 도 8을 참조하여 적응화 방식을 판단하는 구체적인 방법에 대해 설명하기로 한다.
우선, 적응 제어부(350)는 현재 프레임의 목표재생 지연 추정값과 이전 프레임의 재생 지연값을 비교한다(810,820).
현재 프레임의 목표재생 지연 추정값이 이전 프레임의 재생 지연값보다 작은 경우(810-N,820-Y), 적응 제어부(350)는 현재 프레임의 목표재생 지연 추정값을 이전 프레임의 재생 지연값과 한 프레임당 샘플의 개수의 차이와 비교하고, 지연 손실 확률을 판단한다(840).
현재 프레임의 목표재생 지연 추정값dl 이전 프레임의 재생 지연값과 한 프레임당 샘플의 개수의 차이값보다 작고, 지연 손실 확률이 1이면(840-Y), 적응 제어부(350)는 현재 프레임에 대한 적응화 방식을 프레임 삭제라는 적응화 방식으로 판단한다(850). 그렇지 않으면(840-N), 적응 제어부(350)는 현재 프레임에 대한 적응화 방식을 TSM 수축이라는 적응화 방식으로 판단한다(860).
또한, 현재 프레임의 목표재생 지연 추정값이 이전 프레임의 재생 지연값보다 큰 경우(810-Y), 적응 제어부(350)는 현재 프레임의 목표재생 지연 추정값을 이전 프레임의 재생 지연값과 한 프레임당 샘플의 개수의 합과 비교한다(830).
현재 프레임의 목표재생 지연 추정값이 이전 프레임의 재생 지연값과 한 프레임당 샘플의 개수의 합보다 작거나 같은 경우(830-N), 적응 제어부(350)는 현재 프레임에 대한 적응화 방식을 TSM 확장이라는 적응화 방식으로 판단한다(870).
현재 프레임의 목표재생 지연 추정값이 이전 프레임의 재생 지연값과 한 프레임당 샘플의 개수의 합보다 큰 경우(830-Y), 적응 제어부(350)는 현재 프레임에 대한 적응화 방식을 영 프레임 삽입이라는 적응화 방식으로 판단한다(880).
상술한 바와 같은 적응화 방식을 통해, 전자 장치(200)는 고음질을 제공하면서, 다양한 네트워크 상황에 맞게 재생 지연을 감소시키거나 패킷 에러를 보상할 수 있다.
또한, 적응 제어부(350)는 도 4의 440에서 산출한 에러값(Ei)을 바탕으로 네트워크 지연값(Dj)을 업데이트할 수 있다.
여기서 s는 HQ (High Quality) 모드나 LD (Low Delay) 모드에 따라 다른 값을 갖는 scale 값이다. 그리고 j 는 전체 이전 네트워크 지연의 엔트리를 구분하기 위해 사용된다. 버퍼가 업데이트 되고 나면 다음프레임에서 에러가 보상된다.
다시 도 3에 대해 설명하면, 지터 버퍼부(360)는 패킷 분리부(310)에서 추출된 프레임들을 복호화 및 재생을 위하여 저장할 수 있다. 저장되는 프레임들에 대응하여 각 통계치가 갱신될 수 있다. 지터 버퍼부(360)에 저장된 프레임들은 바로 오디오 복호화부(370)로 제공되지 않고, 대신 네트워크 지터를 스무딩시키기 위하여 프레임 기반 적응화가 수행될 수 있다. 프레임 기반 적응화의 예로는 영 프레임을 삽입하거나, 지터 버퍼부(330)에 저장된 프레임을 제거하거나, 컴포트 노이즈 프레임을 추가하거나 제거할 수 있다.
RTP 패킷은 네트워크 지터 즉 시변지연과 함께 네트워크상에서 전송되고, 리오더링되거나 손실 혹은 복제될 수 있다. 지터 버퍼부(360)는 네트워크로부터 수신되는 RTP 패킷에 포함된 프레임들을 저장하고, 정확한 순서로 오디오 복호화부(370)로 제공할 수 있다. 지터 버퍼부(360)는 고정된 용량을 갖는 링버퍼 구조를 가질 수 있다. 특정한 환경에서 과도한 지연 및 메모리 사용을 방지하기 위하여, 지터 버퍼부(360)는 초기화시 프레임 길이가 20 ms인 경우, 3초분의 액티브 오디오 데이터 즉, 150 엔트리까지 저장하는 용량으로 할당될 수 있다. 오버플로우시, 가장 오래된 프레임이 지터 버퍼부(360)에서 제거될 수 있다. 지터 버퍼부(360)의 깊이는 다이나믹하며, 적응 제어부(350)에 의해 제어될 수 있다.
오디오 복호화부(370)는 지터 버퍼부(360)로부터 제공되는 프레임들을 PCM 데이터로 복호화할 수 있다. 일예로, 오디오 복호화부(370)는 EVS 코덱을 사용하여 프레임을 복호화할 수 있다.
TSM 적용부(380)는 오디오 복호화부(370)에서 복호화된 신호 즉, PCM 데이터에 대하여 재생지연을 변경하기 위하여 신호 기반 적응화를 수행할 수 있다. TSM 적용부(380)는 적응 제어부(350)에서 결정된 적응화 방식에 대응하여, 오디오 복호화부(370)에서 복호화된 신호의 시간 축소(time shrinking) 혹은 시간 확장(time stretching)을 위한 TSM을 수행할 수 있다. TSM 적용부(380)는 재생지연을 증가시키기 위하여 부가적인 샘플들을 생성하거나, 재생지연을 감소시키기 위하여 오디오 복호화부(370)에서 복호화된 신호로부터 샘플들을 제거할 수 있다.
수신 버퍼부(390)는 TSM 적용부(380)로부터 제공되는 PCM 데이터를 일시적으로 저장하고, 고정된 프레임 사이즈로 출력할 수 있다. 수신 버퍼부(390)는 PCM 데이터를 위한 FIFO 큐로 이루어진다. 신호 기반 적응화가 행해진 경우, TSM 적용부(390)는 고정된 길이, 예를 들면 20 ms 의 프레임을 생성하지 않기 때문에, 수신 버퍼부(390)를 사용하여 고정된 길이의 PCM 데이터가 출력되도록 한다.
한편, 본 발명의 일 실시예에 따르면, 상술한 현재 프레임의 재생 지연을 조절하기 위한 알고리즘에서 복잡도를 감소시키기 위하여, 아래와 같은 방법을 이용할 수 있다.
첫 번째는 도 7에서 설명한 지연 손실 산출 방식에서 복잡도 감소를 위한 내용이다. 도 9a는 도 7에 나타나 있는 지연 손실에서 사용하는 일반적인 지연 버퍼 업데이트 방식의 예를 나타낸다. 일반적인 지연 버퍼 업데이트는 전체 버퍼 크기(Lmax)를 유지하면서 새로운 delay di가 입력되면, 도 9a와 같이 전체 버퍼의 내용을 모두 하나씩 앞으로 쉬프트 시킨 후에 새로운 값을 추가한다.
그러나, 도 9b는 도 9a의 일반적인 방식보다 저복잡도를 제공하는 링 딜레이 버퍼 업데이트 방식의 예를 나타낸다. 저복잡도 링 딜레이 버퍼 업데이트 방식은 특정 위치 S에 새로운 지연값 di를 위치하도록 한 다음 S값은 위치에 대한 카운터가 되도록 한다. 이 카운터의 범위는 [0,…, Lmax -1]이 되며, 다음 패킷에 대해서는 S=(S+1)modLmax가 된다. 이 과정에서 새로운 값이 항상 맨 끝에 위치하지 않게 되지만 전체 계산량은 낮출 수 있다.
두 번째로는 링 지연 버퍼의 최대값과 최소값을 구할 때 joint calculation 방식을 사용한다. 보통 최대값과 최소값을 전체 Lmax의 어레이에 대해서 구하게 되면 데이터를 읽어오는 복잡도가 최대값, 최소값 각각에 대해서 적용되지만, 두 값을 동시에 구하게 되면 읽어오는 횟수를 절반으로 줄일 수 있다.
세 번째는 선형 추정 에러 계산 알고리즘의 최적화이다. 선형 추정 에러 계산을 위해 Li로 이루어진 집합을 구하는데 그 값은 모두 직선상에 위치한다.
그리고, 선형 추정 값 (Li)과 실제 데이터에 대한 에러값을 계산해야 하는데 이 과정에서 많은 복잡도가 필요하였다. 복잡도 감소를 위해서 아래와 같이 출발점(L0)과 델타 값을 계산한다.
다음 값을 구하기 위해서는 아래와 같이 단지 더하기 연산만 하면 된다.
네 번째는 매번 다른 l값에 대한 평균(Ml)과 분산(Dl)값의 joint calculation이다. 특정 크기의 집합에 대해서 평균과 분산을 저복잡도로 구하기 위해서는 사용한 값을 재활용하는 것이 중요하다. 먼저 아래와 같이 두 값을 구한다.
그 다음으로 l1 = i에 도달하면 평균과 분산의 계산이 가능해진다.
만일 l2 > l1 인 조건하에서 다음 평균과 분산을 구할 때는 이미 계산한 CumAvgi과 CumAvg2i를 재 활용할 수 있다.
다섯 번째로는 포인터 상호교환에 의해 대체되는 버퍼 복사이다. 전체 버퍼 복사대신에 포인터를 상호교환하여 복사에 드는 복잡도를 최소화할 수 있다.
도 10 및 도 11은 일 실시예에 따른 전자 장치의 구성을 나타내는 블록도이다. 도 10을 참조하면, 통신부(1020)는 외부로부터 제공되는 부호화된 비트스트림과 오디오 신호 중 적어도 하나를 수신하거나 복호화 모듈(1030)의 복호화결과 얻어지는 복원된 오디오 신호와 부호화결과 얻어지는 오디오 비트스트림 중 적어도 하나를 송신할 수 있다.
통신부(1020)는 무선 인터넷, 무선 인트라넷, 무선 전화망, 무선 랜(LAN), 와이파이(Wi-Fi), 와이파이 다이렉트(WFD, Wi-Fi Direct), 3G(Generation), 4G(4 Generation), 블루투스(Bluetooth), 적외선 통신(IrDA, Infrared Data Association), RFID(Radio Frequency Identification), UWB(Ultra WideBand), 지그비(Zigbee), NFC(Near Field Communication)와 같은 무선 네트워크 또는 유선 전화망, 유선 인터넷과 같은 유선 네트워크를 통해 외부의 멀티미디어 기기 혹은 서버와 데이터를 송수신할 수 있도록 구성된다.
복호화 모듈(1030)은 통신부(1020)를 통하여 제공되는 패킷 혹은 비트스트림을 수신하고, 복호화를 수행함에 있어서 전술한 실시예에 따른 재생지연 조절처리를 수행할 수 있다.
저장부(1040)는 복호화 모듈(1030)에서 생성되는 복원된 오디오신호를 저장할 수 있다. 한편, 저장부(1040)는 전자 장치(200)의 운용에 필요한 다양한 프로그램을 저장할 수 있다.
스피커(1010)는 복호화 모듈(1030)에서 생성되는 복원된 오디오신호를 외부로 출력할 수 있다.
도 11에 도시된 전자 장치(200)는 통신부(1130), 부호화모듈(1120)과 복호화모듈(1150)을 포함할 수 있다. 또한, 부호화 결과 얻어지는 오디오 비트스트림 혹은 복호화 결과 얻어지는 복원된 오디오신호의 용도에 따라서, 오디오 비트스트림 혹은 복원된 오디오신호를 저장하는 저장부(1140)을 더 포함할 수 있다. 또한, 전자 장치(200)는 마이크로폰(1110) 혹은 스피커(1160)를 더 포함할 수 있다. 여기서, 부호화모듈(1120)과 복호화모듈(1150)은 전자 장치(200)에 구비되는 다른 구성요소(미도시)와 함께 일체화되어 적어도 하나 이상의 프로세서(미도시)로 구현될 수 있다. 도 11에 도시된 구성요소들 중 일부는 도 10에 도시된 전자 장치(200)의 구성요소와 중복되므로, 그 상세한 설명은 생략하기로 한다.
통신부(1130)는 외부로부터 제공되는 오디오와 부호화된 비트스트림 중 적어도 하나를 수신하거나, 복원된 오디오와 부호화모듈(1120)의 부호화결과 얻어지는 오디오 비트스트림 중 적어도 하나를 송신할 수 있다.
부호화모듈(1120)은 다양한 코덱을 내장하여 오디오 혹은 스피치 신호에 대한 부호화를 수행하여 비트스트림 혹은 패킷을 생성할 수 있다.
복호화모듈(1150)은 부호화모듈(1120)에 대응되거나 독립적으로 구현될 수 있다. 복호화모듈(1150)은 통신부(1130)를 통하여 제공되는 패킷 혹은 비트스트림을 수신하고, 복호화를 수행함에 있어서 전술한 실시예에 따른 재생지연 조절처리를 적용할 수 있다.
저장부(1140)는 전자 장치(200)의 운용에 필요한 다양한 프로그램을 저장할 수 있다.
마이크로폰(1110)은 사용자 혹은 외부의 오디오신호를 부호화모듈(1120)로 제공할 수 있다.
스피커(1160)는 복호화 모듈(1150)에 의해 복호화된 음성 신호를 출력한다.
도 12는 본 발명의 일 실시예에 따른, 전자 장치(200)의 재생 지연 조절방법을 설명하기 위한 흐름도이다.
우선, 전자 장치(200)는 이미 재생된 패킷의 네트워크 정보를 ld용하여 현재 프레임의 초기 목표재생 지연을 추정한다(S1210).
그리고, 전자 장치(200)는 재생되지 않은 패킷의 실제 지연 정보를 바탕으로 초기 목표재생 지연을 업데이트하여 현재 프레임의 최종 목표재생 지연을 추정한다(S1220).
그리고, 전자 장치(200)는 최종 목표재생 지연을 바탕으로 적응화 방식을 판단한다(S1230).
상술한 바와 같은 본 발명의 실시예에 의해, 고음질을 제공하면서, 다양한 네트워크 상황에 맞게 재생 지연을 감소시키거나 패킷 에러를 보상할 수 있다.
한편, 본 발명의 일 실시예에 따르면, 전자 장치(200)는 통신 서비스 및 코딩 모드 중 하나를 바탕으로 전자 장치의 모드를 지연 최소화 모드 및 음질 최대화 모드 중 하나로 설정할 수 있다. 그리고, 전자 장치(200)는 설정된 모드에 따라 현재 프레임의 목표재생 지연을 추정할 수 있다. 즉, 목표재생 지연을 추정하기 위한 함수를 산출할 때, 설정된 모드에 따라 지연 수정값(Mi)을 획득할 수 있다. 그리고, 전자 장치(200)는 추정된 목표재생 지연을 바탕으로 현재 프레임의 재생 지연을 조절하기 위한 적응화 방식을 판단할 수 있다.
우선, 전자 장치(200)는 전자 장치(200)가 사용하는 통신 서비스의 유형에 따라 “지연 최소화(LD) 모드” 및 “음질 최대화(HQ) 모드” 중 하나로 설정할 수 있다. 이때, 통신 서비스의 종류로는 LTE 네트워크를 사용하는 VoLTE, 또는 Wi-Fi 네트워크를 사용하는 VoWi-Fi가 가능하다.
구체적으로, VoLTE는 End-to-end delay에 대한 표준 요구사항이 있으므로 이를 따르기 위해 “지연 최소화(LD)” 기능이 우선시하여 사용이 가능하며, VoWi-Fi는 End-to-end delay에 대해 VoLTE보다 관대하므로 약간의 지연을 손해보면서 “음질 최대화(HQ)”기능을 우선시 하여 사용이 가능하다. 그리고, 전자 장치(200)는 VoWi-Fi에서 VoLTE로 핸드오버가 발생할 때에 모드 역시 자동으로 변경할 수 있다.이러한 모드 설정은 전자 장치(200)에서 확인 가능한 access network을 고려한 통신 서비스 정보(VoLTE/VoWi-Fi)에 따라 자동으로 최적화 옵션을 적용한다.
특히 VoWi-Fi에서 VoLTE방향으로 또는 VoLTE에서 VoWi-Fi방향의 ePDG(Evolved Packet Data Gateway) 핸드오버 기능을 이용하여 VoLTE에서 VoWi-Fi로 모드 전환이 이루어지는 경우, 전자 장치(200)는 JBM 기능도 VoLTE를 위한 “자연 최소화” 모드에서 VoWi-Fi를 위한 “음질 최대화”모드로 자동 전환하여 각 어플리케이션에 최적인 상태로 고음질 서비스를 제공할 수 있다.
다음은 코덱의 모드에 따라 최적화 옵션을 결정하는 방식을 나타낸다. 아래 표 1은 모드를 설정하는 측면에서 위에서 언급한 두 가지 모드에 “음질 최대화를 지향하는 EVS 표준 모드”을 추가해 총 3개의 모드을 선택적으로 사용하는 방식의 예를 나타낸다.
구분 |
코딩 모드 | ||
primary mode | channel aware mode | ||
통신 서비스 |
VoLTE | -지연 최소화 모드 -일반 휴대폰 통화용도, 사용빈도 높음. |
- 음질 최대화 모드 (EVS 표준) - 재난망 등 패킷에러 가능성이 높은 특정 경우 사용 |
VoWi-Fi/VoIP (인터넷) |
- 음질 최대화 모드 -mVoIP, WebRTC 등 인터넷 용도 |
위에서 언급한 통신 서비스에 더해서 코딩 모드를 위 표와 같이 분리하여 각 조건에 따라 최적의 모드를 적용하는 예이다. 본 예에서 코딩 모드는 3GPP EVS를 예로 들었으며, EVS에는 일반적인 Primary mode 외에서 Channel aware mode가 존재한다. 그래서 Primary mode 에서는 네트워크 서비스에 따라 “delay 최소화” 또는 “음질 최대화”를 사용하며 channel aware mode에서는 음질 최대화를 지향하는 표준 EVS JBM 모드를 사용한다.
전자 장치(200)에는 전화, 모바일 폰 등을 포함하는 음성통신 전용단말, TV, MP3 플레이어 등을 포함하는 방송 혹은 음악 전용장치, 혹은 음성통신 전용단말과 방송 혹은 음악 전용장치의 융합 단말장치, 텔레컨퍼런싱 혹은 인터랙션 시스템의 사용자 단말이 포함될 수 있으나, 이에 한정되는 것은 아니다. 또한, 전자 장치(200)는 클라이언트, 서버 혹은 클라이언트와 서버 사이에 배치되는 변환기로서 사용될 수 있다.
한편, 전자 장치(200)가 예를 들어 모바일 폰인 경우, 도시되지 않았지만 키패드 등과 같은 유저 입력부, 유저 인터페이스 혹은 모바일 폰에서 처리되는 정보를 디스플레이하는 디스플레이부, 모바일 폰의 전반적인 기능을 제어하는 프로세서를 더 포함할 수 있다. 또한, 모바일 폰은 촬상 기능을 갖는 카메라부와 모바일 폰에서 필요로 하는 기능을 수행하는 적어도 하나 이상의 구성요소를 더 포함할 수 있다.
한편, 전자 장치(200)가 예를 들어 TV인 경우, 도시되지 않았지만 키패드 등과 같은 유저 입력부, 수신된 방송정보를 디스플레이하는 디스플레이부, TV의 전반적인 기능을 제어하는 프로세서를 더 포함할 수 있다. 또한, TV는 TV에서 필요로 하는 기능을 수행하는 적어도 하나 이상의 구성요소를 더 포함할 수 있다.
상기 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 또한, 상술한 본 발명의 실시예들에서 사용될 수 있는 데이터 구조, 프로그램 명령, 혹은 데이터 파일은 컴퓨터로 읽을 수 있는 기록매체에 다양한 수단을 통하여 기록될 수 있다. 컴퓨터로 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 저장 장치를 포함할 수 있다. 컴퓨터로 읽을 수 있는 기록매체의 예로는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함될 수 있다. 또한, 컴퓨터로 읽을 수 있는 기록매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 전송 매체일 수도 있다. 프로그램 명령의 예로는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다.
이상과 같이 본 발명의 일실시예는 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명의 일실시예는 상기 설명된 실시예에 한정되는 것은 아니며, 이는 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명의 스코프는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 이의 균등 또는 등가적 변형 모두는 본 발명 기술적 사상의 범주에 속한다고 할 것이다.
Claims (18)
- 전자 장치의 재생 지연 조절방법에 있어서,
이미 재생된 패킷들의 네트워크 상태 정보를 이용하여 현재 프레임의 초기 목표재생 지연을 추정하는 단계;
재생되지 않은 패킷의 실제 지연정보를 바탕으로 상기 추정된 초기 목표재생 지연을 업데이트하여 상기 현재 프레임의 최종 목표재생 지연을 추정하는 단계; 및
상기 최종 목표재생 지연을 바탕으로 상기 현재 프레임의 재생 지연을 조절하기 위한 적응화 방식을 판단하는 단계;를 포함하는 재생 지연 조절방법. - 제1항에 있어서,
이미 재생된 패킷들의 네트워크 상태 정보를 이용하여 네트워크 파라미터를 산출하는 단계;를 더 포함하며,
상기 초기 목표재생 지연을 추정하는 단계는,
상기 네트워크 파라미터를 이용하여 초기 목표재생 지연을 추정하기 위한 추정 함수를 획득하는 단계;를 포함하는 것을 특징으로 하는 재생 지연 조절방법. - 제2항에 있어서,
네트워크 상태에 따라 목표재생 지연을 추정하기 위해 사용되는 어레이의 개수를 조절하는 단계;를 포함하며,
상기 네트워크 파라미터를 산출하는 단계는,
상기 조절된 어레이의 개수에 대한 정보 및 상기 이미 재생된 패킷들의 네트워크 상태 정보를 바탕으로 네트워크 파라미터를 산출하는 것을 특징으로 하는 재생 지연 조절방법. - 제2항에 있어서,
상기 최종 목표재생 지연을 추정하는 단계는,
상기 추정 함수를 이용하여 획득한 상기 현재 프레임의 초기 목표재생 지연값과 재생되지 않은 패킷의 실제 전송 지연값의 차이를 구하여 에러값을 산출하는 단계;
네트워크 통계를 바탕으로 지연 수정값(Delay modifier)를 산출하는 단계; 및
상기 초기 추정 함수, 상기 에러값 및 상기 지연 수정값을 바탕으로 최종 목표재생 지연정보를 추정하기 위한 최종 추정함수를 획득하는 단계;를 포함하는 재생 지연 조절 방법. - 제4항에 있어서,
상기 네트워크 상태 정보는 상기 에러값에 의해 업데이트되는 것을 특징으로 하는 재생 지연 조절방법. - 제4항에 있어서,
상기 현재 프레임의 지연 손실(Late loss) 정보를 판단하는 단계;를 더 포함하고,
상기 판단하는 단계는,
상기 최종 추정 함수를 통해 도출된 현재 프레임의 재생 지연추정값, 이전 프레임의 재생 지연값, 상기 지연 손실 정보를 바탕으로 적응화 방식을 판단하는 것을 특징으로 하는 재생 지연 조절방법. - 제6항에 있어서,
상기 적응화 방식은.
현재 프레임을 제거하는 적응화 방식, 현재 프레임을 디코딩하여 TSM을 줄이는 적응화 방식, 현재 프레임을 디코딩하여 TSM을 늘리는 적응화 방식 및 제로 프레임을 삽입하는 적응화 방식 중 하나인 것을 특징으로 하는 재생 지연 조절방법. - 제1항에 있어서,
상기 전자 장치는,
음성 통화를 수행하는 서비스의 유형에 따라 음질 최대화 모드 또는 지연 최소화 모드 중 하나로 구동하여 목표재생 지연을 추정하는 것을 특징으로 하는 재생 지연 조절방법. - 전자 장치에 있어서,
이미 재생된 패킷들의 네트워크 상태 정보를 이용하여 현재 프레임의 초기 목표재생 지연을 추정하며, 재생되지 않은 패킷들의 실제 지연정보를 바탕으로 상기 추정된 초기 목표재생 지연을 업데이트하여 상기 현재 프레임의 최종 목표재생 지연을 추정하는 목표재생지연 추정부; 및
상기 최종 목표재생 지연을 바탕으로 상기 현재 프레임의 재생 지연을 조절하기 위한 적응화 방식을 판단하는 적응 제어부;를 포함하는 전자 장치. - 제9항에 있어서,
상기 전자 장치는,
이미 재생된 패킷들의 네트워크 상태 정보를 이용하여 네트워크 파라미터를 산출하는 파라미터 산출부;를 더 포함하며,
상기 목표재생지연 추정부는,
상기 네트워크 파라미터를 이용하여 초기 목표재생 지연을 추정하기 위한 추정 함수를 획득하는 것을 특징으로 하는 전자 장치. - 제10항에 있어서,
상기 파라미터 산출부는,
네트워크 상태에 따라 목표재생 지연을 추정하기 위해 사용되는 어레이의 개수를 조절하며,
상기 조절된 어레이의 개수에 대한 정보 및 상기 이미 재생된 패킷들의 네트워크 상태 정보를 바탕으로 네트워크 파라미터를 산출하는 것을 특징으로 하는 전자 장치. - 제10항에 있어서,
상기 목표재생지연 추정부는,
상기 추정 함수를 이용하여 획득한 상기 현재 프레임의 초기 목표재생 지연값과 재생되지 않은 패킷의 실제 전송 지연값의 차이를 구하여 에러값을 산출하며,
네트워크 통계를 바탕으로 지연 수정값(Delay modifier)를 산출하고,
상기 초기 추정 함수, 상기 에러값 및 상기 지연 수정값을 바탕으로 최종 목표재생 지연정보를 추정하기 위한 최종 추정함수를 획득하는 것을 특징으로 하는 전자 장치. - 제12항에 있어서,
상기 네트워크 상태 정보는 상기 에러값에 의해 업데이트되는 것을 특징으로 하는 전자 장치. - 제13항에 있어서,
상기 현재 프레임의 지연 손실(Late loss) 정보를 판단하는 지연 손실 판단부;를 더 포함하고,
상기 적응 제어부는,
상기 최종 추정 함수를 통해 도출된 현재 프레임의 재생 지연추정값, 이전 프레임의 재생 지연값, 상기 지연 손실 정보를 바탕으로 적응화 방식을 판단하는 것을 특징으로 하는 전자 장치. - 제14항에 있어서,
상기 적응화 방식은.
현재 프레임을 제거하는 적응화 방식, 현재 프레임을 디코딩하여 TSM을 줄이는 적응화 방식, 현재 프레임을 디코딩하여 TSM을 늘리는 적응화 방식 및 제로 프레임을 삽입하는 적응화 방식 중 하나인 것을 특징으로 하는 전자 장치. - 제9항에 있어서,
상기 전자 장치는,
음성 통화를 수행하는 서비스의 유형에 따라 음질 최대화 모드 또는 지연 최소화 모드 중 하나로 구동하여 목표재생 지연을 추정하는 것을 특징으로 하는 전자 장치. - 전자 장치의 재생 지연 조절방법을 수행하기 위한 프로그램이 저장된 비일시적인 컴퓨터 판독 가능한 기록매체에 있어서,
이미 재생된 패킷들의 네트워크 상태 정보를 이용하여 현재 프레임의 초기 목표재생 지연을 추정하는 단계;
재생되지 않은 패킷들의 실제 지연정보를 바탕으로 상기 추정된 초기 목표재생 지연을 업데이트하여 상기 현재 프레임의 최종 목표재생 지연을 추정하는 단계; 및
상기 최종 목표재생 지연을 바탕으로 상기 현재 프레임의 재생 지연을 조절하기 위한 적응화 방식을 판단하는 단계;를 포함하는 프로그램을 저장하는 비일시적인 컴퓨터 판독 가능한 기록매체. - 전자 장치의 재생 지연 조절방법에 있어서,
통신 서비스 및 코딩 모드 중 하나를 바탕으로 전자 장치의 모드를 지연 최소화 모드 및 음질 최대화 모드 중 하나로 설정하는 단계;
상기 설정된 모드에 따라 현재 프레임의 목표재생 지연을 추정하는 단계; 및
상기 추정된 목표재생 지연을 바탕으로 상기 현재 프레임의 재생 지연을 조절하기 위한 적응화 방식을 판단하는 단계;를 포함하는 재생 지연 조절방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160002193A KR102419595B1 (ko) | 2016-01-07 | 2016-01-07 | 재생 지연 조절 방법 및 이를 적용한 전자 장치 |
US15/393,437 US10135707B2 (en) | 2016-01-07 | 2016-12-29 | Playout delay adjustment method and electronic apparatus thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160002193A KR102419595B1 (ko) | 2016-01-07 | 2016-01-07 | 재생 지연 조절 방법 및 이를 적용한 전자 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170082901A true KR20170082901A (ko) | 2017-07-17 |
KR102419595B1 KR102419595B1 (ko) | 2022-07-11 |
Family
ID=59275125
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160002193A KR102419595B1 (ko) | 2016-01-07 | 2016-01-07 | 재생 지연 조절 방법 및 이를 적용한 전자 장치 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10135707B2 (ko) |
KR (1) | KR102419595B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210066735A (ko) * | 2019-11-28 | 2021-06-07 | 울산과학기술원 | 실시간 데이터 스트리밍 수신 장치 및 방법, 실시간 데이터 데이터 스트리밍 송수신 시스템, 컴퓨터 판독 가능한 기록 매체 및 컴퓨터 프로그램 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10454811B2 (en) * | 2017-04-07 | 2019-10-22 | Qualcomm Incorporated | Apparatus and method for de-jitter buffer delay adjustment |
CN107241166A (zh) * | 2017-06-12 | 2017-10-10 | 京信通信***(中国)有限公司 | 一种长期演进上的语音Volte数据保障方法和设备 |
US10616123B2 (en) * | 2017-07-07 | 2020-04-07 | Qualcomm Incorporated | Apparatus and method for adaptive de-jitter buffer |
CN109302471A (zh) * | 2018-09-26 | 2019-02-01 | 四川长虹电器股份有限公司 | 一种智能家居场景控制***及方法 |
WO2020122782A1 (en) * | 2018-12-12 | 2020-06-18 | Telefonaktiebolaget Lm Ericsson (Publ) | Communication system with de-jitter buffer for reducing jitter |
CN113382081B (zh) * | 2021-06-28 | 2023-04-07 | 阿波罗智联(北京)科技有限公司 | 时延估计调整方法、装置、设备以及存储介质 |
CN114025233B (zh) * | 2021-10-27 | 2023-07-14 | 网易(杭州)网络有限公司 | 数据处理方法及装置、电子设备、存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030112758A1 (en) * | 2001-12-03 | 2003-06-19 | Pang Jon Laurent | Methods and systems for managing variable delays in packet transmission |
US20040057381A1 (en) * | 2002-09-24 | 2004-03-25 | Kuo-Kun Tseng | Codec aware adaptive playout method and playout device |
US6735192B1 (en) * | 1999-09-29 | 2004-05-11 | Lucent Technologies Inc. | Method and apparatus for dynamically varying a packet delay in a packet network based on a log-normal delay distribution |
KR100787314B1 (ko) * | 2007-02-22 | 2007-12-21 | 광주과학기술원 | 미디어내 동기화를 위한 적응형 미디어 재생 방법 및 장치 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2152609C (en) * | 1993-11-19 | 2000-12-12 | Richard B. Kline | Method for adaptive smoothing delay for packet voice applications |
US7246057B1 (en) | 2000-05-31 | 2007-07-17 | Telefonaktiebolaget Lm Ericsson (Publ) | System for handling variations in the reception of a speech signal consisting of packets |
US7079486B2 (en) | 2002-02-13 | 2006-07-18 | Agere Systems Inc. | Adaptive threshold based jitter buffer management for packetized data |
EP1754327A2 (en) | 2004-03-16 | 2007-02-21 | Snowshore Networks, Inc. | Jitter buffer management |
EP2189978A1 (en) | 2004-08-30 | 2010-05-26 | QUALCOMM Incorporated | Adaptive De-Jitter Buffer for voice over IP |
US7674096B2 (en) | 2004-09-22 | 2010-03-09 | Sundheim Gregroy S | Portable, rotary vane vacuum pump with removable oil reservoir cartridge |
US8085678B2 (en) | 2004-10-13 | 2011-12-27 | Qualcomm Incorporated | Media (voice) playback (de-jitter) buffer adjustments based on air interface |
US7599399B1 (en) | 2005-04-27 | 2009-10-06 | Sprint Communications Company L.P. | Jitter buffer management |
US7733893B2 (en) | 2007-06-29 | 2010-06-08 | Global Ip Solutions (Gips) Ab | Method and receiver for determining a jitter buffer level |
US7852882B2 (en) | 2008-01-24 | 2010-12-14 | Broadcom Corporation | Jitter buffer adaptation based on audio content |
KR101605687B1 (ko) | 2010-04-12 | 2016-03-23 | 삼성전자주식회사 | 이동통신 시스템에서 단말의 버퍼 데이터 지연 추정 방법 및 장치 |
KR101331079B1 (ko) | 2011-12-26 | 2013-11-19 | 연세대학교 산학협력단 | 능동적 버퍼 제어 방법 및 장치 그리고 재생기 변경 방법 및 장치 |
-
2016
- 2016-01-07 KR KR1020160002193A patent/KR102419595B1/ko active IP Right Grant
- 2016-12-29 US US15/393,437 patent/US10135707B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6735192B1 (en) * | 1999-09-29 | 2004-05-11 | Lucent Technologies Inc. | Method and apparatus for dynamically varying a packet delay in a packet network based on a log-normal delay distribution |
US20030112758A1 (en) * | 2001-12-03 | 2003-06-19 | Pang Jon Laurent | Methods and systems for managing variable delays in packet transmission |
US20040057381A1 (en) * | 2002-09-24 | 2004-03-25 | Kuo-Kun Tseng | Codec aware adaptive playout method and playout device |
KR100787314B1 (ko) * | 2007-02-22 | 2007-12-21 | 광주과학기술원 | 미디어내 동기화를 위한 적응형 미디어 재생 방법 및 장치 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210066735A (ko) * | 2019-11-28 | 2021-06-07 | 울산과학기술원 | 실시간 데이터 스트리밍 수신 장치 및 방법, 실시간 데이터 데이터 스트리밍 송수신 시스템, 컴퓨터 판독 가능한 기록 매체 및 컴퓨터 프로그램 |
Also Published As
Publication number | Publication date |
---|---|
US10135707B2 (en) | 2018-11-20 |
KR102419595B1 (ko) | 2022-07-11 |
US20170201443A1 (en) | 2017-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102419595B1 (ko) | 재생 지연 조절 방법 및 이를 적용한 전자 장치 | |
US10885921B2 (en) | Multi-stream audio coding | |
EP3692524B1 (en) | Multi-stream audio coding | |
JP4504429B2 (ja) | 端末間のボイスオーバインターネットプロトコルのメディアの待ち時間を管理する方法および装置 | |
US7319703B2 (en) | Method and apparatus for reducing synchronization delay in packet-based voice terminals by resynchronizing during talk spurts | |
US11380338B2 (en) | Signal processing methods and apparatuses for enhancing sound quality | |
US20150348546A1 (en) | Audio processing apparatus and audio processing method | |
US8194706B2 (en) | Method of transmitting data in a communication system | |
JPWO2006009087A1 (ja) | ストリームデータ受信再生装置およびストリームデータ受信再生方法 | |
KR20180096625A (ko) | 프레임간 시간 시프트 변동들에 대한 채널 조정 | |
US20130155924A1 (en) | Coded-domain echo control | |
US11394655B2 (en) | Transmission unit, transmission method, reception unit, reception method, and program | |
KR102422794B1 (ko) | 재생지연 조절 방법 및 장치와 시간축 변형방법 및 장치 | |
US9437203B2 (en) | Error concealment for speech decoder |
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 |