KR102392888B1 - 패킷 손실 복구를 개선하기 위한 장치 및 방법 - Google Patents

패킷 손실 복구를 개선하기 위한 장치 및 방법 Download PDF

Info

Publication number
KR102392888B1
KR102392888B1 KR1020170140395A KR20170140395A KR102392888B1 KR 102392888 B1 KR102392888 B1 KR 102392888B1 KR 1020170140395 A KR1020170140395 A KR 1020170140395A KR 20170140395 A KR20170140395 A KR 20170140395A KR 102392888 B1 KR102392888 B1 KR 102392888B1
Authority
KR
South Korea
Prior art keywords
packet
recovery
lost
frame
iptv terminal
Prior art date
Application number
KR1020170140395A
Other languages
English (en)
Other versions
KR20190046510A (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 에스케이텔레콤 주식회사
Priority to KR1020170140395A priority Critical patent/KR102392888B1/ko
Publication of KR20190046510A publication Critical patent/KR20190046510A/ko
Application granted granted Critical
Publication of KR102392888B1 publication Critical patent/KR102392888B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/28Timers or timing mechanisms used in protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4343Extraction or processing of packetized elementary streams [PES]

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Environmental & Geological Engineering (AREA)
  • Databases & Information Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

패킷 손실 복구를 개선하기 위한 장치 및 방법을 개시한다.
본 실시예는 네트워크의 품질 저하 등의 패킷 손실로 인한 오디오/비디오 품질 열화를 방지하기 위하여 패킷 손실 감지 후 요청 및 재전송 기술을 적용하고 필수적으로 필요한 패킷들만을 선별하여 복구함으로써 복구 성능을 개선하고 네트워크의 부하를 감소하여 IPTV 서비스의 체감품질을 개선하도록 하는 패킷 손실 복구를 개선하기 위한 장치 및 방법을 제공한다.

Description

패킷 손실 복구를 개선하기 위한 장치 및 방법{Method and Apparatus for Improving Packet Loss Recovery}
본 실시예는 복구 유효성을 판단하여 패킷 손실 복구를 개선하기 위한 장치 및 방법에 관한 것이다.
이하에 기술되는 내용은 단순히 본 실시예와 관련되는 배경 정보만을 제공할 뿐 종래기술을 구성하는 것이 아니다.
IPTV(Internet Protocol Television) 시스템은 인터넷망을 경유하여 디스플레이 장치로 실시간 방송, VOD 서비스, 및 전자 상거래 컨텐츠 등의 서비스를 복합적으로 제공한다. 구체적으로, IPTV 시스템 내의 컨텐츠 제공장치는 오디오/비디오 데이터를 압축하여 IP(Internet Protocol)로 변환한 후 인터넷망을 경유하여 가입자 댁내 셋탑박스(STB: Set-Top Box)로 전송한다.
IPTV 전송기술인 멀티캐스트(Multicast)는 전송과정에서 UDP(User Datagram Protocol) 방식 또는 RTP(Real-Time Transport Stream) 방식을 이용하여 패킷을 전송한다. 멀티캐스트는 단 하나의 스트림을 이용하여 동일 컨텐츠를 복수 개의 셋탑박스로 동시 제공할 수 있어 트래픽 전송면에서 효율적이다. 반면, 멀티캐스트는 패킷에 대한 재전송 기능이 없어 자칫 전송과정에서 패킷 손실이 발생하는 경우 셋탑박스에서 출력되는 비디오 영상이 끊기거나 소위 모자이크 출력이 나타나는 등의 품질저하가 발생한다.
멀티캐스트 방식에서 패킷에 대한 재전송 문제를 해결하기 위해, 컨텐츠 제공장치에서 RTP 방식을 적용하여 패킷을 멀티캐스트할 때, 헤더 정보에 타임스탬프(Timestamp)와 시퀀스(Sequence) 번호를 담아 송신하면, 수신측에서 패킷의 손실을 감지하고, 패킷을 재전송 받을 수 있도록 하는 기술이 있다.
IPTV 컨텐츠를 전송하는 프로토콜인 멀티캐스트(Multicast)는 전송과정에서 패킷 손실 발생 시 재전송 기능이 없어, 패킷 손실로 인해 IPTV 시청 중 방송화면의 끊김/멈춤 현상이 발생할 수 있다. 패킷 손실에 의한 품질 열화를 방지하기 위해서 종래에는 RTP/UDP 전송프로토콜에 따라 패킷 손실을 감지하고, 손실된 패킷에 대해서 무조건 재전송 요청을 한다.
IPTV 컨텐츠를 전송하는 프로토콜로 RTP를 이용하는 경우, 헤드엔드에서 RTP를 적용하여 전송을 하고 셋탑박스의 클라이언트(Client)가 패킷 손실을 인지하고 손실(Missing) 패킷을 재요청하면, 백본망에 있는 캐쉬(Cache)가 해당 패킷을 요청한 셋탑박스에게만 유니캐스트(Unicast) 방식으로 재전송한다.
셋탑박스는 재전송된 RTP 패킷을 수신 후 RTP 헤더정보의 시퀀스(Sequnce) 번호를 활용하여 스트림을 재조합하여 정상적으로 디코딩한다.
IPTV 컨텐츠를 전송하는 프로토콜로 UDP를 이용하는 경우, RTP의 시퀀스와 같은 정보가 없지만 UDP 패킷 내에 담고 있는 TS(Transport Stream) 패킷의 구조적 특징 정보들을 이용하여 시퀀스와 같은 인덱싱 방안과 TS 패킷 손실을 감지하면 해당 손실 패킷들을 요청하고 재전송한다.
일반적인 멀티캐스트 미디어 패킷 손실을 감지하고 복구하는 시스템은 패킷 손실을 감지 후 재전송 요청 및 복구하는 과정에서 추가적인 패킷 손실이 발생을 하면 지속적으로 해당 패킷을 재요청/재전송하게 된다.
패킷을 재요청/재전송하는 과정이 여러 번 반복되면, 일정 시간이 소요되는데, IPTV의 실시간 서비스 특성상 일정 시간이 소요되어 재전송된 데이터는 과거의 데이터가 된다. 과거의 데이터는 복구하더라도 더 이상 사용하지 않고 필요없는 데이터로 취급된다. 일반적으로 디바이스에서 디지터(De-jitter) 버퍼의 크기(=시간) 이내에 손실 패킷을 복구해야만 사용이 가능하고, 기 설정된 시간이 경과된 후 복구하면 과거 데이터로 취급되어 사용하지 않게 된다. 따라서, 손실 패킷을 복구하더라도 디바이스에서 사용되지 않는 데이터에 대한 복구 성능을 개선하는 기술을 필요로 한다.
본 실시예는 네트워크의 품질 저하 등의 패킷 손실로 인한 오디오/비디오 품질 열화를 방지하기 위하여 패킷 손실 감지 후 요청 및 재전송 기술을 적용하고 필수적으로 필요한 패킷들만을 선별하여 복구함으로써 복구 성능을 개선하고 네트워크의 부하를 감소하여 IPTV 서비스의 체감품질을 개선하도록 하는 패킷 손실 복구를 개선하기 위한 장치 및 방법을 제공하는 데 목적이 있다.
본 실시예의 일 측면에 의하면, 컨텐츠 제공장치로부터 전송 스트림(Transport Stream: 이하, ‘TS’라 칭함) 패킷을 수신하는 패킷 수신부; 상기 TS 패킷의 헤더를 파싱(Parsing)하여 상기 TS 패킷의 데이터 필드를 추출하는 패킷 분석부; 상기 TS 패킷의 데이터 필드와 이전에 수신한 TS 패킷의 헤더로부터 추출된 이전 데이터 필드를 비교하여 손실 패킷의 존재 여부를 탐지하는 손실 패킷 검출부; 상기 손실 패킷의 복구가 실패하는 경우, 상기 손실 패킷에 대한 복구 유효성을 판단하는 복구 유효성 판단부; 및 상기 복구 유효성을 판단한 결과를 기반으로 상기 손실 패킷의 복구를 재요청하는 손실 패킷 요청부를 포함하는 것을 특징으로 하는 IPTV 단말기를 제공한다.
본 실시예의 다른 측면에 의하면, 컨텐츠 제공장치로부터 TS 패킷을 수신하는 과정; 상기 TS 패킷의 헤더를 파싱하여 상기 TS 패킷의 데이터 필드를 추출하는 과정; 상기 TS 패킷의 데이터 필드와 이전에 수신한 TS 패킷의 헤더로부터 추출된 이전 데이터 필드를 비교하여 손실 패킷의 존재 여부를 탐지하는 과정; 상기 손실 패킷의 복구가 실패하는 경우, 상기 손실 패킷에 대한 복구 유효성을 판단하는 과정; 및 상기 복구 유효성을 판단한 결과를 기반으로 상기 손실 패킷의 복구를 재요청하는 과정을 포함하는 것을 특징으로 하는 패킷 손실 복구를 개선하기 위한 방법을 제공한다.
이상에서 설명한 바와 같이 본 실시예에 의하면, 네트워크의 품질 저하 등의 패킷 손실로 인한 오디오/비디오 품질 열화를 방지하기 위하여 패킷 손실 감지 후 요청 및 재전송 기술을 적용하고 필수적으로 필요한 패킷들만을 선별하여 복구함으로써 복구 성능을 개선하고 네트워크의 부하를 감소하여 IPTV 서비스의 체감품질을 개선하는 효과가 있다.
본 실시예에 의하면, 손실 패킷에 대한 재전송을 요청하는 시스템에서, 참조 대상이 되는 프레임에 손상이 있는 경우, 해당 프레임을 참조하는 다른 프레임의 패킷에 손실이 발생하더라도 다음 I 프레임까지 패킷에 대한 재전송을 더이상 요청하지 않도록 하여 손실 패킷에 대한 복구 성능을 개선하는 효과가 있다.
도 1은 본 실시예에 따른 패킷 손실 복구를 개선하기 위한 IPTV 시스템을 개략적으로 나타낸 블럭 구성도이다.
도 2는 본 실시예에 따른 IPTV 단말기를 개략적으로 나타낸 블록 구성도이다.
도 3은 본 실시예에 따른 타이머를 이용한 복구성능 개선을 설명하기 위한 도면이다.
도 4는 본 실시예에 따른 I 프레임 주기를 이용한 복구 성능 개선을 설명하기 위한 도면이다.
도 5는 본 실시예에 따른 타이머를 이용한 복구성능 개선 방법을 설명하기 위한 순서도이다.
도 6은 본 실시예에 따른 I 프레임 주기 및 참조 프레임의 유효성을 이용한 복구 성능 개선 방법을 설명하기 위한 순서도이다.
이하, 본 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 실시예에 따른 패킷 손실 복구를 개선하기 위한 IPTV 시스템을 개략적으로 나타낸 블럭 구성도이다.
본 실시예에 따른 패킷 손실 복구를 개선하기 위한 IPTV(Internet Protocol Television) 시스템은 컨텐츠 제공장치(110), IPTV 단말기(120) 및 패킷 복구용 서버(130)를 포함한다. 패킷 손실 복구를 개선하기 위한 IPTV 시스템에 포함된 구성요소는 반드시 이에 한정되는 것은 아니다.
컨텐츠 제공장치(110)는 IP 네트워크를 기반으로 실시간/비실시간 영상, 음향 /데이터 서비스를 복수의 IPTV 단말기(120)로 전송한다.
컨텐츠 제공장치(110)는 영상을 전송할 때, 무압축 비디오 영상을 압축(부호화: Encoding)하여 전송 스트림(TS: Transport Stream, 이하, 'TS'라 칭함) 패킷(Packet)으로 변환한 후 IP 네트워크를 경유하여 IPTV 단말기(120)로 전송한다.
컨텐츠 제공장치(110)가 전송하는 무압축 비디오 영상은 복수의 화상(Picture)을 포함한다. 복수의 화상은 압축(부호화) 과정을 수행하여 I 프레임, B 프레임 및 P 프레임으로 변환된다. TS 패킷은 영상 신호, 음향 신호, 데이터 신호가 다중화(Multiplexing)된 신호일 수 있다. 예컨대, MPEG-2 규격의 영상 신호, 돌비 AC-3 규격 음향 신호 등이 다중화된 MPEG-2 TS가 될 수 있다. 컨텐츠 제공장치(110)는 IPTV 헤드엔드(Headend) 장치를 포함한다.
컨텐츠 제공장치(110)는 MPEG-2 표준(ISO/IEC 13818) 및 H.246/HEVC 기반의 코덱(Codec)을 이용하여 비디오 영상을 부호화한다. 컨텐츠 제공장치(110)는 우선 비디오 영상을 I 프레임, B 프레임, 및 P 프레임으로 구성된 기본 스트림(Elementary Stream: ES, 이하 'ES'라 칭함)으로 변환한다.
컨텐츠 제공장치(110)는 ES에 헤더(Header)를 추가하여 패킷화된 기본 스트림(Packetized Elementary Stream: PES, 이하 'PES'라 칭함)를 생성할 수 있다. PES 패킷은 PES 헤더와 PES 페이로드(Payload)로 구성될 수 있다. 여기서, PES 헤더는 비디오 영상 패킷에 관한 정보(예컨대, 영상 패킷 시작 지시자, 패킷 길이, 스트림 타입 등)를 포함할 수 있다. PES 페이로드는 영상을 구성하는 프레임과 연관된 영상 정보(예컨대, 화면 정보 또는 오디오 정보 등)를 포함할 수 있다.
컨텐츠 제공장치(110)는 PES 패킷에 TS 패킷 헤더를 삽입하여 TS 패킷으로 변환할 수 있다. 컨텐츠 제공장치(110)는 TS 패킷을 멀티캐스트(Multicast) 방식을 이용하여 IPTV 단말기(120) 및 패킷 복구용 서버(130)로 전송한다.
컨텐츠 제공장치(110)는 UDP(User Datagram Protocol) 방식 또는 RTP(Real-Time Transport Stream) 방식을 이용하여 TS 패킷을 멀티캐스팅할 수 있다. 이하, 본 실시예에서는 컨텐츠 제공장치(110)가 TS 패킷을 멀티캐스트 시 UDP 방식으로 전송하는 것으로 설명한다.
IPTV 단말기(120)는 컨텐츠 제공장치(110)로부터 전송된 TS 패킷을 수신하고, 수신된 TS 패킷을 역다중화(Demultiplexing) 및 복호화(Decoding)한다. IPTV 단말기(120)는 TS 패킷을 역다중화 및 복호화한 영상 신호를 디스플레이 장치(미도시)로 전송하여 비디오 영상이 출력되도록 한다. IPTV 단말기(120)는 셋탑박스(STB: Set-Top Box)인 것이 바람직하나 반드시 이에 한정되는 것은 아니다.
IPTV 단말기(120)는 컨텐츠 제공장치(110)로부터 수신한 TS 패킷의 구조적 특징을 이용하여 전송과정에서 손실된 TS 패킷 존재 여부를 탐지한다. IPTV 단말기(120)는 수신한 TS 패킷의 헤더를 파싱하여 연속 카운터(Continuity Counter) 필드를 추출하고, 추출된 연속 카운터 필드와 이전에 수신한 TS 패킷의 헤더로부터 추출된 연속 카운터 필드를 비교하여 손실된 TS 패킷의 존재 여부를 탐지한다.
IPTV 단말기(120)는 손실된 TS 패킷이 존재하는 것으로 판단되는 경우 손실된 TS 패킷에 대한 복구 요청신호를 패킷 복구용 서버(130)로 전송한다. 복구 요청신호는 손실된 TS 패킷 이전에 정상 수신된 마지막 TS 패킷을 기준으로 바로 이전에 수신된 프로그램 클럭 참조 정보(PCR: Program Clock Reference, 이하 'PCR 정보'라 칭함), 마지막 TS 패킷을 기준으로 이전 N(N≥1)번째 패킷에 대하여 기 부여된 인덱스값, 마지막 TS 패킷과 바로 이전 N개의 패킷을 포함하는 N+1개의 TS 패킷의 헤더 정보 및 손실된 TS 패킷 이후에 수신된 N+1개의 TS 패킷의 헤더 정보를 포함한다.
PCR 정보는 컨텐츠 제공장치(110)의 인코더에 설정된 시간을 샘플링(Sampling)한 값으로, 하나의 채널 예컨대, PMT(Program Map Table) 테이블에 할당된 특정 PID(Packet IDentifier)에 적용되는 시간 기준을 의미한다. PCR 정보에 포함된 PCR Time(PCR 값)은 TS 패킷 헤더에서 48 비트(Bit)의 데이터 필드로 구성되며, 33 비트의 PCR_base 및 9 비트의 PCR_extension 영역으로 구분되고, 0.1 초 내에 최소 1회 이상 전송되도록 TS 패킷의 헤더에 주기적으로 삽입된다. IPTV 단말기(120)는 복구 요청신호에 PCR 정보를 포함시켜 전송함으로써 패킷 복구용 서버(130)가 메모리 내 동일 PCR 정보가 저장된 위치를 기준으로 복구 패킷에 대한 산출 작업을 수행할 수 있도록 한다.
인덱스 값은 TS 패킷의 색인정보로서 활용되는 정보로서 TS 패킷 별로 각각 부여된다. IPTV 단말기(120)는 복구 요청신호에 특정 TS 패킷에 대한 인덱스 값을 포함시켜 전송함으로써 패킷 복구용 서버(130)가 복구 패킷의 산출을 위한 산출 시작 구간을 선정할 수 있도록 한다. IPTV 단말기(120)는 PCR 정보를 기준으로 다음 PCR 정보가 수신되기 이전까지의 모든 TS 패킷에 대하여 1부터 순차적으로 증가하는 정수 값을 부여함으로써 TS 패킷 별로 각각 인덱스 값을 지정한다.
IPTV 단말기(120)는 복구 요청신호에 PCR 정보를 포함시켜 전송함으로써 패킷 복구용 서버(130)가 메모리 내 동일 PCR 정보가 저장된 위치를 기준으로 복구 패킷에 대한 산출 작업을 수행할 수 있도록 한다.
IPTV 단말기(120)는 패킷 복구용 서버(130)로부터 복구 요청신호에 대응되는 복구 패킷을 수신하고, 이를 통해 손실된 TS 패킷을 복구한다. IPTV 단말기(120)는 두 개의 패킷 버퍼를 사용하여 각각 정상 수신된 TS 패킷 및 복구 패킷을 출력함으로써 손실된 TS 패킷을 복구한다.
본 실시예에 따른 IPTV 단말기(120)는 복구 유효성 판단을 이용한 패킷 손실 복구 성능을 개선하기 위해 타이머를 이용한 복구 유효성을 판단하거나 TS 패킷의 영상 프레임 중 I 프레임 주기를 이용한 복구 유효성을 판단한다.
IPTV 단말기(120)는 타이머를 이용한 복구 유효성을 판단하기 위해 손실 패킷의 복구가 실패하는 경우 패킷 복구용 서버(130)로 손실 패킷에 대한 재요청/재전송 시도하지만, 타이머 이내에 복구를 성공하지 못하면 손실 패킷에 대한 실패를 확정하고 복구처리를 수행하지 않는다.
IPTV 단말기(120)는 영상프레임 중 I 프레임 주기를 이용한 복구 유효성을 판단하기 위해, 복구를 실패한 손실 패킷의 현재 프레임이 I 프레임인 경우, 복구 유효성이 없다고 판단하여 다음 I 프레임의 시작전까지 손실 패킷에 대한 복구를 중단하도록 한다.
패킷 복구용 서버(130)는 패킷 전송과정에서 손실된 TS 패킷에 대한 복구 패킷을 IPTV 단말기(120)로 전송하는 역할을 수행한다.
패킷 복구용 서버(130)는 전송 과정에서 손실된 TS 패킷에 대한 재전송을 위해 컨텐츠 제공장치(110)로부터 IPTV 단말기(120)로 송신된 TS 패킷과 동일한 TS 패킷을 제공받고, 제공받은 TS 패킷을 패킷 단위로 버퍼링한다.
패킷 복구용 서버(130)는 수신된 TS 패킷에 대한 버퍼링을 수행 시 PCR 정보를 기준으로 메모리 내 TS 패킷의 위치를 기록하여 저장한다. 이후, 패킷 복구용 서버(130)는 PCR 정보를 기준으로 TS 패킷 간 그룹화를 수행하고, 동일 그룹 내 포함된 TS 패킷에 대하여 1부터 순차적으로 증가하는 정수 값을 부여함으로써 TS 패킷 별로 각각 인덱스 값을 지정한다. 패킷 복구용 서버(130)가 TS 패킷 별로 각각 인덱스 값을 지정하는 방법은 IPTV 단말기(120)가 TS 패킷 별로 각각 인덱스 값을 지정하는 방법과 동일하다.
패킷 복구용 서버(130)는 IPTV 단말기(120)로부터 손실 TS 패킷에 대한 복구 요청신호를 수신하는 경우 복구 요청신호에 대응되는 복구 패킷을 검출하고, 검출된 복구 패킷을 IPTV 단말기(120)로 송신한다.
패킷 복구용 서버(130)는 복구 요청신호에 포함된 PCR 정보를 이용하여 복구 패킷의 산출을 위한 산출 구간의 선정을 위한 1차 필터링을 수행한다. 패킷 복구용 서버(130)는 복구 요청신호에 포함된 PCR 정보에 기초하여 메모리 내 동일 PCR 정보가 저장된 위치로 이동하며, 해당 PCR 정보의 저장 위치를 기준으로 산출 구간의 선정을 위한 작업을 수행한다.
패킷 복구용 서버(130)는 1차 필터링된 산출 구간에 대응되는 대응 TS 패킷 중 복구 요청신호에 포함된 인덱스 값에 해당되는 TS 패킷을 포함한 연이은 N+1개의 TS 패킷 이후 구간을 산출 시작 구간으로 선정한다. 이때, 패킷 복구용 서버(130)는 N+1개의 TS 패킷의 헤더 정보와 복구 요청신호에 포함된 제1 헤더 정보를 비교하고, 각각의 헤더 정보가 서로 동일한 경우에 한해서 이후 구간을 산출 시작 구간으로 선정한다.
패킷 복구용 서버(130)는 대응 TS 패킷 중 복구 요청신호에 포함된 제2 헤더 정보에 매칭되는 연속된 N+1개의 TS 패킷 바로 이전 구간을 산출 종료 구간으로 선정한다.
패킷 복구용 서버(130)는 산출 시작 구간 및 산출 종료 구간 사이의 구간을 복구 패킷의 산출을 위한 최종 산출 구간으로서 선정한다. 패킷 복구용 서버(130)는 최종 선정된 산출 구간에 매칭되어 저장된 TS 패킷을 손실 TS 패킷에 대한 복구 패킷으로서 IPTV 단말기(120)로 전송한다.
도 2는 본 실시예에 따른 IPTV 단말기를 개략적으로 나타낸 블록 구성도이다.
본 실시예에 따른 IPTV 단말기(120)는 패킷 수신부(210), 패킷 분석부(220), 손실 패킷 검출부(230), 패킷 확인부(240), 복구 유효성 판단부(250), 손실 패킷 요청부(260), 복구 패킷 수신부(270) 및 패킷 복구부(280)를 포함한다. IPTV 단말기(120)에 포함된 구성요소는 반드시 이에 한정되는 것은 아니다.
IPTV 단말기(120)에 포함된 각 구성요소는 장치 내부의 소프트웨어적인 모듈 또는 하드웨어적인 모듈을 연결하는 통신 경로에 연결되어 상호 간에 유기적으로 동작할 수 있다. 이러한 구성요소는 하나 이상의 통신 버스 또는 신호선을 이용하여 통신한다.
도 2에 도시된 IPTV 단말기(120)의 각 구성요소는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 소프트웨어적인 모듈, 하드웨어적인 모듈 또는 소프트웨어와 하드웨어의 결합으로 구현될 수 있다.
패킷 수신부(210)는 컨텐츠 제공장치(110)로부터 TS 패킷을 수신한다.
패킷 분석부(220)는 TS 패킷의 헤더를 파싱(Parsing)하여 TS 패킷의 데이터 필드를 추출한다. 패킷 분석부(220)는 TS 패킷의 헤더를 파싱하여 TS 패킷의 연속 카운터(Continuity Counter) 필드를 추출한다.
손실 패킷 검출부(230)는 TS 패킷의 데이터 필드와 이전에 수신한 TS 패킷의 헤더로부터 추출된 이전 데이터 필드를 비교하여 손실 패킷의 존재 여부를 탐지한다. 손실 패킷 검출부(230)는 TS 패킷의 연속 카운터 필드와 이전에 수신한 TS 패킷의 헤더로부터 추출된 이전 연속 카운터 필드를 비교한다.
손실 패킷 검출부(230)는 연속 카운터 필드와 이전 연속 카운터 필드 간의 연속성이 유지되지 않는 경우 손실된 TS 패킷이 존재하는 것으로 판단한다.
손실 패킷 검출부(230)는 각각의 TS 패킷의 연속 카운터 필드 간 연속성이 유지되지 않는 경우 손실된 TS 패킷이 존재하는 것으로 판단한다. TS 패킷의 헤더 영역은 연속 카운터 필드를 포함하는데, 이는 컨텐츠 제공장치(110)에서 부여된 연속된 숫자(0부터 15)를 나타낸다.
따라서, 전송 과정에서 손실된 TS 패킷이 있는 경우 손실된 TS 패킷의 앞뒤 패킷들의 연속 카운터가 불연속으로 나타나게 되므로 손실 패킷 검출부(230)는 TS 패킷의 손실을 검출할 수 있다. 일반적으로 영상 스트림은 최소한 1개 이상의 비디오 스트림과 1개 이상의 오디오 스트림으로 구성되어 있다. 비디오 스트림과 오디오 스트림은 PID(Packet IDentifier) 값으로 구분된다. 손실 패킷 검출부(230)는 서로 동일한 PID 값을 갖는 TS 패킷들 간에 연속 카운터 필드의 연속성을 확인한다.
패킷 확인부(240)는 TS 패킷에 대한 I 프레임, P 프레임 또는 B 프레임 확인하여 시스템 변수에 저장한다.
패킷 확인부(240)는 TS 패킷에 대한 NAL(Network Abstraction Layer) 유닛 중 VPS(Video Parameter Set), SPS(Sequence Parameter Set), PPS(Picture Parameter Set)을 확인하여 I 프레임 확인한다.
패킷 확인부(240)는 NAL 유닛 중 슬라이스 헤더 정보를 분석하여 P 프레임 또는 B 프레임 확인한 후 현재 프레임 종류를 시스템 변수(Now_Frame)에 저장(Now_Frame = I or P or B)한다.
패킷 확인부(240)는 TS 패킷에 대한 NAL 유닛, 슬라이스 헤더 중 RPS(Reference Picture Set)와 POC(Picture Order Count) 값을 분석하여 현재 프레임이 참조해야하는 참조 프레임과의 참조관계를 시스템 버퍼에 추가하고, 새로운 I 프레임이 나오면 시스템 버퍼를 초기화한다.
복구 유효성 판단부(250)는 손실 패킷의 복구가 실패하는 경우, 손실 패킷에 대한 복구 유효성을 판단한다.
복구 유효성 판단부(250)는 복구를 실패한 손실 패킷의 현재 프레임이 I 프레임인 경우, 복구 유효성이 없다고 판단하여 다음 I 프레임의 시작전까지 손실 패킷에 대한 복구를 중단하도록 한다. 다시 말해, 복구 유효성 판단부(250)는 패킷 확인부(240)에 기 저장했던 시스템 변수(Now_Frame) 값을 조회하여 현재 프레임 정보를 확인한다.
복구 유효성 판단부(250)는 현재 프레임이 I 프레임이면, 복구 유효성이 없다고 판단하여 다음 I 프레임 시작전까지 손실 패킷에 대한 복구를 중단한다.
복구 유효성 판단부(250)는 복구를 실패한 손실 패킷의 현재 프레임이 I 프레임인 아닌 경우, 현재 프레임에 대한 참조 프레임들의 유효성 필드를 확인한다.
복구 유효성 판단부(250)는 참조 프레임의 유효성 필드에 페일(Fail)이 존재하면, 복구 유효성이 없다고 판단하여 다음 프레임 시작 전까지 손실 패킷에 대한 복구를 중단하도록 한다.
복구 유효성 판단부(250)는 참조 프레임의 유효성 필드에 페일(Fail)이 미존재하거나 손실 패킷으로 인한 시스템 버퍼 내의 정보가 분석 불가능하거나 비정상인 경우, 복구 유효성이 있다고 판단하여 손실 패킷에 대한 복구를 시도하도록 한다.
복구 유효성 판단부(250)는 타이머를 구동하여 타이머 상에 기 설정된 시간 이내에 손실 패킷에 대한 복구를 성공하지 못하면, 복구를 실패한 손실 패킷에 대한 실패를 확정하고 복구 처리를 미수행한다.
복구 유효성 판단부(250)는 패킷 복구용 서버(130)로 복구를 실패한 손실 패킷을 재요청한 후 패킷 복구용 서버로부터 손실 패킷의 재수신을 기다리는 동작을 반복한다.
복구 유효성 판단부(250)는 타이머에 기 설정된 시간 내에 만료되면, 복구를 실패한 손실 패킷에 대한 실패를 확정하고 더 이상 패킷 복구용 서버(130)로 손실 패킷을 재요청하지 않도록 한다.
손실 패킷 요청부(260)는 복구 유효성을 판단한 결과를 기반으로 손실 패킷의 복구를 재요청한다.
손실 패킷 요청부(260)는 TS 패킷에서 손실된 패킷인 손실 패킷 존재하는 것으로 판단되는 경우 해당 TS 패킷 중 손실 패킷에 대해서만 복구 요청신호를 생성하여 패킷 복구용 서버(130)로 전송한다.
복구 요청신호는 손실된 TS 패킷 이전에 정상 수신된 마지막 TS 패킷을 기준으로 바로 이전에 수신된 PCR 정보, 마지막 TS 패킷을 기준으로 이전 N(N≥1)번째 패킷에 대하여 기 부여된 인덱스값, 마지막 TS 패킷과 바로 이전 N개의 패킷을 포함하는 N+1개의 TS 패킷의 헤더 정보 및 손실된 TS 패킷 이후에 수신된 N+1개의 TS 패킷의 헤더 정보를 포함한다.
복구 패킷 수신부(270)는 패킷 복구용 서버(130)로부터 복구 요청신호에 대응되는 복구 패킷을 수신한다. 복구 패킷 수신부(270)가 패킷 복구용 서버(130)로부터 수신하는 복구 패킷에는 해당 복구 패킷에 대응되는 손실 TS 패킷에 대한 정보가 추가로 포함될 수 있다.
패킷 복구부(280)는 TS 패킷의 출력을 제어하여 손실 TS 패킷을 복구한다.
패킷 복구부(280)는 두 개의 패킷 버퍼를 사용하여 TS 패킷의 출력을 제어한다. 제1 패킷 버퍼는 정상 수신된 TS 패킷을 버퍼링하는 용도로서 이용된다. 제2 패킷 버퍼는 패킷 복구용 서버(130)로부터 수신한 복구 패킷을 버퍼링하는 용도로서 이용된다.
패킷 복구부(280)는 제1 패킷 버퍼에 버퍼링된 TS 패킷을 출력 버퍼를 이용하여 순차적으로 출력한다. 패킷 복구부(280)는 TS 패킷의 출력 중에 손실 TS 패킷의 유무를 표시하는 플래그 정보의 존재가 확인되면 제2 패킷 버퍼 내 버퍼링된 복구 패킷 중 해당 손실 TS 패킷에 대응되는 복구 패킷을 출력 버퍼를 이용하여 출력한다.
패킷 복구부(280)는 각각의 패킷 버퍼에 패킷을 버퍼링할 시 손실 TS 패킷의 복구를 위한 관련정보를 추가로 기록하여 저장한다. 손실 TS 패킷의 복구를 위한 관련정보는 손실 TS 패킷 및 이에 대응되는 복구 패킷을 식별하기 위한 식별정보일 수 있다. 식별정보는 기 부여된 시퀀스 번호일 수 있다.
도 3은 본 실시예에 따른 타이머를 이용한 복구성능 개선을 설명하기 위한 도면이다.
일반적인 IPTV 멀티캐스트 재전송 기술에서 UDP 전송방식에서는 TS 패킷 단위로 손실을 감지하고, 재전송 요청 후 재전송된 TS 패킷들을 수신하면 재조합하여 복구를 시도한다.
패킷 복구시 네트워크 품질의 영향으로 재전송 요청 또는 재전송되는 TS 패킷들이 다시 패킷 손실이 발생할 수 있다. 따라서, 전체적인 패킷 손실 복구 성능을 향상을 위해 IPTV 단말기(120)에서 복구 유효성 판단을 이용하여 패킷 손실 복구 성능을 개선한다.
도 3에 도시된 바와 같이, IPTV 단말기(120)는 타이머를 이용한 복구 유효성 판단한다. 일반적으로 IPTV 단말기(120)는 손실 패킷에 대한 복구 실패 시 패킷 복구용 서버(130)로 재요청/재전송을 시도한다.
하지만, 본 실시예에 따른 IPTV 단말기(120)는 타이머를 생성하여 타이머 내에 기 설정된 시간 이내에 손실 패킷에 대한 복구를 성공하지 못하면, 손실 패킷에 대한 실패를 확정하고 더 이상 복구 처리를 수행하지 않는다.
다시 말해, IPTV 단말기(120)는 탐지된 손실 패킷이 발생하는 경우 패킷 복구용 서버(130)로 손실 패킷을 요청한 후 패킷 복구용 서버(130)로부터 손실 패킷의 수신을 기다리는 동작을 반복하지만, 타이머에 기 설정된 시간 내에 패킷 복구용 서버(130)로부터 손실 패킷이 수신되지 않는 경우, 실패를 확정하고 더 이상 패킷 복구용 서버(130)로 손실 패킷을 요청하지 않는다. 따라서, IPTV 단말기(120)는 타이머를 이용하여 불필요한 재전송을 방지하게 된다.
도 3에 도시된 바와 같이, IPTV 단말기(120) 내의 패킷 복구 시스템은 타이머를 포함한다. IPTV 단말기(120) 내의 패킷 복구 시스템에 타이머가 미존재하면, 손실 패킷에 대한 재전송을 요청할 때 지속적인 패킷 손실이 발생하는 경우, 패킷 복구용 서버(130)로 손실 패킷에 대한 재전송 요청 및 복구 과정을 버퍼의 한도 내에서 계속 반복하게 된다.
IPTV 단말기(120) 내의 출력 버퍼(Out-Buffer) 크기 한도 내에서 복구가 완료되지 못하면 복구는 실패하고 다음 순서의 패킷들이 디지터 버퍼(De-jitter Buffer)로 전달이 된다.
전술한 바와 같이, 타이머는 손실 패킷에 대한 재전송 요청 및 복구가 유효한 시간을 체크하여 유효한 기간내에서 재전송 및 복구를 시도한다. 타이머는 유효한 시간이 만료되면 재전송 및 복구를 바로 종료하여 불필요한 시스템의 리소스와 네트워크 상의 패킷 전송을 방지한다.
컨텐츠 제공장치(110)가 IPTV 실시간 채널의 미디어를 IPTV 단말기(120)로 전송할 때, IPTV 단말기(120)는 손실 패킷을 복구하기 위해 재전송 요청 및 복구 과정에서 타이머를 이용하여 유효한 시간을 체크하고, 유효 시간이 만료되면 재전송을 중지하여 복구 성능이 향상되고 네트워크 부하가 감소하도록 한다.
IPTV 단말기(120)는 수신한 미디어 스트림의 압축을 풀기 위해서 디지터버퍼(Dejitter-Buffer)를 이용하여 일정시간 패킷들을 버퍼링한 후에 디코더에 전달을 한다. 만약, 디코더가 기 설정된 버퍼링 시간내에 패킷들을 수신하지 못하면, 디지터버퍼는 더 이상 디코더에게 패킷을 전송하지 않는다.
기 설정된 버퍼링 시간을 초과하는 경우, 디코더가 패킷을 수신하더라도 해당 패킷은 과거 데이터가 되어서 사용할 수 없게 된다. 따라서, 도 3 도시된 타이머가 버퍼링 시간을 체크하여 복구 시간이 유효할때 만 복구를 시도하여 복구 성능을 개선하도록 한다.
도 4는 본 실시예에 따른 I 프레임 주기를 이용한 복구 성능 개선을 설명하기 위한 도면이다.
도 4에 도시된 바와 같이, IPTV 단말기(120)는 영상프레임 중 I 프레임 주기를 이용하여 복구 유효성을 판단한다. IPTV 단말기(120)는 I 프레임에 해당하는 패킷이 손실된 후 복구되지 못하면, 다음 I 프레임 직전까지 디코더에서 영상 프레임들을 정상적으로 디코딩하지 못한다. 다시 말해, IPTV 단말기(120)는 I 프레임 손실 확정 시에는 다음 I 프레임 직전까지는 패킷 손실이 발생해도 복구처리를 하지 않는다.
미디어 영상은 코덱을 이용하여 압축을 하면 I 프레임, P 프레임, B 프레임들로 구성이 된다. 미디어 영상 내의 포함된 복수의 프레임 중 I 프레임은 다음 I 프레임 직전까지 모든 프레임들 복구 시 참조가 되는 가장 중요하고 많은 정보를 담고 있는 프레임이다. 만약, I 프레임이 손상되면 이후 P 프레임, B 프레임들은 정상적으로 디코딩될 수 없다.
IPTV 단말기(120)는 패킷 수신 시 I 프레임의 손상 여부를 판단하고, I 프레임의 패킷이 손실이 되면 가중치를 두어서 복구 우선순위를 높여서 복구를 시도한다. IPTV 단말기(120)는 I 프레임의 복구 시도가 실패하면, 다음 I 프레임 진적까지 패킷 손실이 발생하더라도 복구하지 않는다.
IPTV 단말기(120)는 IPTV 실시간 채널의 미디어 전송 시 패킷 손실을 복구하기 위해서 재전송 요청 및 복구과정에서 영상 이미지 프레임 중 I 프레임의 손상 여부를 판단하여 복구 우선순위를 높인다. IPTV 단말기(120)는 I 프레임에 손상이 확정되면, 다음 I 프레임 직전까지는 재전송을 중단하여 복구 성능 향상 및 네트워크 부하를 감소 시킨다.
미디어 영상을 구성하는 I 프레임, P 프레임, B 프레임 중에서 I 프레임은 다음 I 프레임 직전까지 모든 프레임들 복구 시 참조가 되는 가장 중요하고 많은 정보를 담고 있는 프레임이다. 만약, I 프레임이 손상이 되면, IPTV 단말기(120)는 이후 P 프레임, B 프레임들을 정상적으로 디코딩할 수 없다.
IPTV 단말기(120)는 패킷 수신 시 I 프레임의 손상 여부를 판단하고, I 프레임의 패킷이 손실이 되면 가중치를 두어서 복구 우선순위를 높여서 복구를 시도하고 I 프레임의 복구 유효성 체크를 인해 복구 성능을 개선한다.
도 5는 본 실시예에 따른 타이머를 이용한 복구성능 개선 방법을 설명하기 위한 순서도이다.
IPTV 단말기(120)는 컨텐츠 제공장치(110)로부터 TS 패킷을 수신한다(S610). 단계 S610에서, IPTV 단말기(120)는 TS 패킷의 타입(Type)을 확인(예컨대, RTP, TS, H.264, HEVC)한다.
IPTV 단말기(120)는 TS 패킷의 헤더를 파싱하여 TS 패킷의 데이터 필드를 추출한다. IPTV 단말기(120)는 TS 패킷의 데이터 필드와 이전에 수신한 TS 패킷의 헤더로부터 추출된 이전 데이터 필드를 비교하여 손실 패킷의 존재 여부를 탐지한다(S612).
단계 S612에서, IPTV 단말기(120)는 TS 패킷의 헤더를 파싱하여 TS 패킷의 연속 카운터(CC) 필드를 추출한다. IPTV 단말기(120)는 TS 패킷의 연속 카운터 필드(CC)와 이전에 수신한 TS 패킷의 헤더로부터 추출된 이전 연속 카운터 필드(CC)를 비교한다. IPTV 단말기(120)는 연속 카운터 필드(CC)와 이전 연속 카운터 필드(CC) 간의 연속성이 유지되지 않는 경우 손실된 TS 패킷이 존재하는 것으로 판단한다.
단계 S612에서, IPTV 단말기(120)는 TS 패킷의 패킷 손실을 검출(Detect)하기 위해서 MPEG-TS의 TS 헤더를 파싱한다. IPTV 단말기(120)는 PID(Packet IDentifier)(영상/오디오/데이터)별로 연속 카운터 필드(CC)값의 비연속성을 검사하여 손실을 검출한다.
IPTV 단말기(120)는 손실 패킷을 복구하기 위해 패킷 복구용 서버(130)로 손실 패킷을 요청한다(S614). 단계 S614에서, IPTV 단말기(120)는 손실 패킷이 검출되면, 손실 패킷만을 패킷 복구용 서버(130)로 재전송을 요청한다.
IPTV 단말기(120)는 손실 패킷을 복구하기 위해 패킷 복구용 서버(130)로부터 수신된 손실 패킷이 정상적으로 복구되었는지의 여부를 확인한다(S616).
단계 S616에서, IPTV 단말기(120)는 재전송을 요청한 손실 패킷을 수신하면 복구를 시도한다. IPTV 단말기(120)는 수신된 손실 패킷의 복구 결과 실패하면, 시스템 버퍼(Display_Order)에 해당 프레임의 유효성 필드에 페일(Fail) 값을 입력한다.
단계 S616의 확인 결과, 패킷 복구용 서버(130)로부터 수신된 손실 패킷이 정상적으로 복구되면, IPTV 단말기(120)는 복구에 성공한 손실 패킷을 반영하여 데이터를 전송 및 재생한다(S618).
단계 S616의 확인 결과, 패킷 복구용 서버(130)로부터 손실 패킷이 복구에 실패하는 경우, IPTV 단말기(120)는 타이머를 구동하여 타이머 상에 기 설정된 시간을 초과하는 지의 여부를 확인한다(S630).
단계 S630의 확인 결과, 타이머 상에 기 설정된 시간을 초과하는 경우, IPTV 단말기(120)는 복구를 실패한 손실 패킷에 대한 실패를 확정하고 복구 처리를 미수행한다(S632).
단계 S632에서, IPTV 단말기(120)는 타이머 상에 기 설정된 이내에 손실 패킷에 대한 복구를 성공하지 못하면, 복구를 실패한 손실 패킷에 대한 실패를 확정하고 복구 처리를 미수행한다.
다시 말해, IPTV 단말기(120)는 패킷 복구용 서버(130)로 복구를 실패한 손실 패킷을 재요청한 후 패킷 복구용 서버(130)로부터 손실 패킷의 재수신을 기다리는 동작을 반복하다가, 타이머에 기 설정된 시간 내에 만료되면, 복구를 실패한 손실 패킷에 대한 실패를 확정하고 더 이상 패킷 복구용 서버(130)로 손실 패킷을 재요청하지 않는다.
단계 S630의 확인 결과, 타이머 상에 기 설정된 시간 이내인 경우, IPTV 단말기(120)는 복구를 실패한 손실 패킷을 다시 복구하기 위해 패킷 복구용 서버(130)로 손실 패킷을 재요청하는 단계 S614를 다시 수행한다.
도 5에서는 단계 S610 내지 단계 S632를 순차적으로 실행하는 것으로 기재하고 있으나, 반드시 이에 한정되는 것은 아니다. 다시 말해, 도 5에 기재된 단계를 변경하여 실행하거나 하나 이상의 단계를 병렬적으로 실행하는 것으로 적용 가능할 것이므로, 도 5는 시계열적인 순서로 한정되는 것은 아니다.
전술한 바와 같이 도 5에 기재된 본 실시예에 따른 타이머를 이용한 복구성능 개선 방법은 프로그램으로 구현되고 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있다. 본 실시예에 따른 타이머를 이용한 복구성능 개선 방법을 구현하기 위한 프로그램이 기록되고 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다.
도 6은 본 실시예에 따른 I 프레임 주기 및 참조 프레임의 유효성을 이용한 복구 성능 개선 방법을 설명하기 위한 순서도이다.
IPTV 단말기(120)는 컨텐츠 제공장치(110)로부터 TS 패킷을 수신한다(S710). 단계 S710에서, IPTV 단말기(120)는 TS 패킷의 타입(Type)을 확인(예컨대, RTP, TS, H.264, HEVC)한다.
IPTV 단말기(120)는 TS 패킷의 헤더를 파싱하여 TS 패킷의 데이터 필드를 추출한다. IPTV 단말기(120)는 TS 패킷의 데이터 필드와 이전에 수신한 TS 패킷의 헤더로부터 추출된 이전 데이터 필드를 비교하여 손실 패킷의 존재 여부를 탐지한다(S712).
단계 S712에서, IPTV 단말기(120)는 TS 패킷의 헤더를 파싱하여 TS 패킷의 연속 카운터(CC) 필드를 추출한다. IPTV 단말기(120)는 TS 패킷의 연속 카운터 필드(CC)와 이전에 수신한 TS 패킷의 헤더로부터 추출된 이전 연속 카운터 필드(CC)를 비교한다. IPTV 단말기(120)는 연속 카운터 필드(CC)와 이전 연속 카운터 필드(CC) 간의 연속성이 유지되지 않는 경우 손실된 TS 패킷이 존재하는 것으로 판단한다.
단계 S712에서, IPTV 단말기(120)는 TS 패킷의 패킷 손실을 검출(Detect)하기 위해서 MPEG-TS의 TS 헤더를 파싱한다. IPTV 단말기(120)는 PID(Packet IDentifier)(영상/오디오/데이터)별로 연속 카운터 필드(CC)값의 비연속성을 검사하여 손실을 검출한다.
단계 S712의 확인 결과, 손실 패킷이 미존재할 때, IPTV 단말기(120)는 TS 패킷에 대한 NAL(Network Abstraction Layer) 유닛 중 VPS(Video Parameter Set), SPS(Sequence Parameter Set), PPS(Picture Parameter Set)을 확인하여 I 프레임 확인하고, NAL 유닛 중 슬라이스 헤더 정보를 분석하여 P 프레임 또는 B 프레임 확인한 후 현재 프레임 종류를 시스템 변수(Now_Frame)에 저장(Now_Frame = I or P or B)한다(S714).
IPTV 단말기(120)는 TS 패킷에 대한 NAL 유닛, 슬라이스 헤더 중 RPS(Reference Picture Set)와 POC(Picture Order Count) 값을 분석하여 현재 프레임이 참조해야하는 참조 프레임과의 참조관계를 시스템 버퍼에 추가하고, 새로운 I 프레임이 나오면 시스템 버퍼를 초기화한다(S716).
IPTV 단말기(120)는 손실 패킷을 복구하기 위해 패킷 복구용 서버(130)로 손실 패킷을 요청한다(S720). 단계 S720에서, IPTV 단말기(120)는 손실 패킷이 검출되면, 패킷 복구용 서버(130)로 손실 패킷만을 다시 요청한다.
IPTV 단말기(120)는 손실 패킷을 복구하기 위해 패킷 복구용 서버(130)로부터 수신된 손실 패킷이 정상적으로 복구되었는지의 여부를 확인한다(S722).
단계 S722에서, IPTV 단말기(120)는 재전송을 요청한 손실 패킷을 수신하면 복구를 시도한다. IPTV 단말기(120)는 수신된 손실 패킷의 복구 결과 실패하면, 시스템 버퍼(Display_Order)에 해당 프레임의 유효성 필드에 페일(Fail) 값을 입력한다.
단계 S722의 확인 결과, 패킷 복구용 서버(130)로부터 수신된 손실 패킷이 정상적으로 복구되면, IPTV 단말기(120)는 복구에 성공한 손실 패킷을 반영하여 데이터를 전송 및 재생한다(S724).
단계 S722의 확인 결과, 패킷 복구용 서버(130)로부터 손실 패킷이 복구에 실패하는 경우, IPTV 단말기(120)는 복구를 실패한 손실 패킷의 현재 프레임이 I 프레임인지의 여부를 확인한다(S730).
단계 S730에서, IPTV 단말기(120)는 단계 S714에서 기 저장했던 시스템 변수(Now_Frame) 값을 조회하여 현재 프레임 정보를 확인한다.
단계 S730의 확인 결과, 복구를 실패한 손실 패킷의 현재 프레임이 I 프레임인 경우, 복구 유효성이 없다고 판단하여 다음 I 프레임의 시작전까지 손실 패킷에 대한 복구를 중단하도록 한다(S732).
단계 S732에서, IPTV 단말기(120)는 현재 프레임이 I 프레임이면, 다음 I 프레임 시작전까지 손실 패킷에 대한 복구를 중단한다.
단계 S730의 확인 결과, 복구를 실패한 손실 패킷의 현재 프레임이 I 프레임인 아닌 경우, IPTV 단말기(120)는 손실 패킷에 대한 복구 유효성이 없는지의 여부를 확인한다(S740).
단계 S740에서, IPTV 단말기(120)는 단계 S716에서 기 저장한 현재 프레임에 대한 참조 프레임들의 유효성 필드를 확인하여, 참조 프레임의 유효성 필드에 페일(Fail)이 존재하면, 복구 유효성이 없다고 판단한다.
단계 S740에서, IPTV 단말기(120)는 단계 S716에서 기 저장한 참조 프레임의 유효성 필드에 페일(Fail)이 미존재하거나 손실 패킷으로 인한 시스템 버퍼 내의 정보가 분석 불가능하거나 비정상인 경우, 복구 유효성이 있다고 판단한다.
단계 S740의 확인 결과, 손실 패킷에 대한 복구 유효성이 없다고 판단하면, IPTV 단말기(120)는 다음 프레임 시작 전까지 손실 패킷에 대한 복구를 중단하도록 한다(S742).
단계 S740의 확인 결과, 손실 패킷에 대한 복구 유효성이 있다고 판단하면, IPTV 단말기(120)는 손실 패킷에 대한 복구를 시도하도록 단계 S720을 다시 수행하도록 한다.
도 6에서는 단계 S710 내지 단계 S742를 순차적으로 실행하는 것으로 기재하고 있으나, 반드시 이에 한정되는 것은 아니다. 다시 말해, 도 6에 기재된 단계를 변경하여 실행하거나 하나 이상의 단계를 병렬적으로 실행하는 것으로 적용 가능할 것이므로, 도 6은 시계열적인 순서로 한정되는 것은 아니다.
전술한 바와 같이 도 6에 기재된 본 실시예에 따른 I 프레임 주기 및 참조 프레임의 유효성을 이용한 복구 성능 개선 방법은 프로그램으로 구현되고 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있다. 본 실시예에 따른 I 프레임 주기 및 참조 프레임의 유효성을 이용한 복구 성능 개선 방법을 구현하기 위한 프로그램이 기록되고 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다.
이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
이상에서 설명한 바와 같이 본 실시예는 IPTV 서비스에서 손실을 복구하는 분야에 적용되어, 패킷 손실 감지 후 요청 및 재전송 기술을 적용하고 필수적으로 필요한 패킷들만을 선별하여 복구함으로써 복구 성능을 개선하고 네트워크의 부하를 감소하는 효과를 발생하는 유용한 발명이다.
110: 컨텐츠 제공장치 120: IPTV 단말기
130: 패킷 복구용 서버 210: 패킷 수신부
220: 패킷 분석부 230: 손실 패킷 검출부
240: 패킷 확인부 250: 복구 유효성 판단부
260: 손실 패킷 요청부 270: 복구 패킷 수신부
280: 패킷 복구부

Claims (11)

  1. 컨텐츠 제공장치로부터 전송 스트림(Transport Stream: 이하, ‘TS’라 칭함) 패킷을 수신하는 패킷 수신부;
    상기 TS 패킷의 헤더를 파싱(Parsing)하여 상기 TS 패킷의 데이터 필드를 추출하는 패킷 분석부;
    상기 TS 패킷의 데이터 필드와 이전에 수신한 TS 패킷의 헤더로부터 추출된 이전 데이터 필드를 비교하여 손실 패킷의 존재 여부를 탐지하는 손실 패킷 검출부;
    상기 손실 패킷의 복구가 실패하는 경우, 상기 손실 패킷에 대한 복구 유효성을 판단하는 복구 유효성 판단부; 및
    상기 복구 유효성을 판단한 결과를 기반으로 상기 손실 패킷의 복구를 재요청하는 손실 패킷 요청부를 포함하되,
    상기 복구 유효성 판단부는,
    복구를 실패한 상기 손실 패킷의 현재 프레임이 I 프레임인 아닌 경우, 현재 프레임에 대한 참조 프레임들의 유효성 필드를 확인하여,
    상기 참조 프레임의 유효성 필드에 페일(Fail)이 존재하면, 복구 유효성이 없다고 판단하여 다음 프레임 시작 전까지 상기 손실 패킷에 대한 복구를 중단하도록 하는 것으로 판단하는 것을 특징으로 하는 IPTV 단말기.
  2. 제 1 항에 있어서,
    상기 복구 유효성 판단부는,
    복구를 실패한 상기 손실 패킷의 현재 프레임이 I 프레임인 경우, 복구 유효성이 없다고 판단하여 다음 I 프레임의 시작전까지 상기 손실 패킷에 대한 복구를 중단하도록 하는 것을 특징으로 하는 IPTV 단말기.
  3. 삭제
  4. 제 1 항에 있어서,
    상기 복구 유효성 판단부는,
    상기 참조 프레임의 유효성 필드에 페일(Fail)이 미존재하거나 상기 손실 패킷으로 인한 시스템 버퍼 내의 정보가 분석 불가능하거나 비정상인 경우, 복구 유효성이 있다고 판단하여 상기 손실 패킷에 대한 복구를 시도하도록 하는 것을 특징으로 하는 IPTV 단말기.
  5. 제 1 항에 있어서,
    상기 TS 패킷에 대한 I 프레임, P 프레임 또는 B 프레임 확인하여 시스템 변수에 저장하는 패킷 확인부
    를 추가로 포함하는 것을 특징으로 하는 IPTV 단말기.
  6. 제 5 항에 있어서,
    상기 패킷 확인부는,
    상기 TS 패킷에 대한 NAL(Network Abstraction Layer) 유닛 중 VPS(Video Parameter Set), SPS(Sequence Parameter Set), PPS(Picture Parameter Set)을 확인하여 I 프레임 확인하고,
    상기 NAL 유닛 중 슬라이스 헤더 정보를 분석하여 P 프레임 또는 B 프레임 확인한 후 현재 프레임 종류를 시스템 변수에 저장하는 것을 특징으로 하는 IPTV 단말기.
  7. 제 6 항에 있어서,
    상기 패킷 확인부는,
    상기 TS 패킷에 대한 NAL 유닛, 슬라이스 헤더 중 RPS(Reference Picture Set)와 POC(Picture Order Count) 값을 분석하여 현재 프레임이 참조해야하는 참조 프레임과의 참조관계를 시스템 버퍼에 추가하고, 새로운 I 프레임이 나오면 상기 시스템 버퍼를 초기화하는 것을 특징으로 하는 IPTV 단말기.
  8. 제 1 항에 있어서,
    상기 패킷 분석부는 상기 TS 패킷의 헤더를 파싱하여 상기 TS 패킷의 연속 카운터(Continuity Counter) 필드를 추출하고,
    상기 손실 패킷 검출부는 상기 TS 패킷의 연속 카운터 필드와 이전에 수신한 TS 패킷의 헤더로부터 추출된 이전 연속 카운터 필드를 비교하여, 상기 연속 카운터 필드와 상기 이전 연속 카운터 필드 간의 연속성이 유지되지 않는 경우 상기 손실된 TS 패킷이 존재하는 것으로 판단하는 것을 특징으로 하는 IPTV 단말기.
  9. 제 1 항에 있어서,
    상기 복구 유효성 판단부는,
    타이머를 구동하여 상기 타이머 상에 기 설정된 시간 이내에 상기 손실 패킷에 대한 복구를 성공하지 못하면, 복구를 실패한 상기 손실 패킷에 대한 실패를 확정하고 복구 처리를 미수행하는 것을 특징으로 하는 IPTV 단말기.
  10. 제 9 항에 있어서,
    상기 복구 유효성 판단부는,
    패킷 복구용 서버(MLR: Multicast Loss Recovery)로 복구를 실패한 상기 손실 패킷을 재요청한 후 상기 패킷 복구용 서버로부터 상기 손실 패킷의 재수신을 기다리는 동작을 반복하다가, 상기 타이머에 기 설정된 시간 내에 만료되면, 복구를 실패한 상기 손실 패킷에 대한 실패를 확정하고 더 이상 상기 패킷 복구용 서버로 상기 손실 패킷을 재요청하지 않도록 하는 것을 특징으로 하는 IPTV 단말기.
  11. 컨텐츠 제공장치로부터 TS 패킷을 수신하는 과정;
    상기 TS 패킷의 헤더를 파싱하여 상기 TS 패킷의 데이터 필드를 추출하는 과정;
    상기 TS 패킷의 데이터 필드와 이전에 수신한 TS 패킷의 헤더로부터 추출된 이전 데이터 필드를 비교하여 손실 패킷의 존재 여부를 탐지하는 과정;
    상기 손실 패킷의 복구가 실패하는 경우, 상기 손실 패킷에 대한 복구 유효성을 판단하는 과정; 및
    상기 복구 유효성을 판단한 결과를 기반으로 상기 손실 패킷의 복구를 재요청하는 과정을 포함하되,
    상기 복구 유효성을 판단하는 과정은,
    복구를 실패한 상기 손실 패킷의 현재 프레임이 I 프레임인 아닌 경우, 현재 프레임에 대한 참조 프레임들의 유효성 필드를 확인하여,
    상기 참조 프레임의 유효성 필드에 페일(Fail)이 존재하면, 복구 유효성이 없다고 판단하여 다음 프레임 시작 전까지 상기 손실 패킷에 대한 복구를 중단하도록 하는 것으로 판단하는 것을 특징으로 하는 패킷 손실 복구를 개선하기 위한 방법.
KR1020170140395A 2017-10-26 2017-10-26 패킷 손실 복구를 개선하기 위한 장치 및 방법 KR102392888B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170140395A KR102392888B1 (ko) 2017-10-26 2017-10-26 패킷 손실 복구를 개선하기 위한 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170140395A KR102392888B1 (ko) 2017-10-26 2017-10-26 패킷 손실 복구를 개선하기 위한 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20190046510A KR20190046510A (ko) 2019-05-07
KR102392888B1 true KR102392888B1 (ko) 2022-04-29

Family

ID=66656609

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170140395A KR102392888B1 (ko) 2017-10-26 2017-10-26 패킷 손실 복구를 개선하기 위한 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102392888B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110730053A (zh) * 2019-09-09 2020-01-24 晶晨半导体(深圳)有限公司 一种基于ts格式和udp传输方式的网络丢包重传方法
KR20210156041A (ko) * 2020-06-17 2021-12-24 에스케이텔레콤 주식회사 캐시 서버를 이용한 패킷손실 복구장치 및 방법
KR20220124031A (ko) 2021-03-02 2022-09-13 삼성전자주식회사 영상 패킷을 송수신하는 전자 장치 및 이의 동작 방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8634413B2 (en) * 2004-12-30 2014-01-21 Microsoft Corporation Use of frame caching to improve packet loss recovery
KR102052388B1 (ko) * 2013-07-23 2019-12-05 한국전자통신연구원 Mpeg 미디어 전송 시스템 기반의 손실 패킷 재전송 요청 장치 및 방법
KR20150066335A (ko) * 2013-12-06 2015-06-16 가온미디어 주식회사 무선통신에서 패킷 손실을 줄이기 위한 방법 및 장치
KR102350570B1 (ko) * 2016-01-11 2022-01-11 에스케이텔레콤 주식회사 영상프레임의 손실을 측정하기 위한 iptv 셋탑박스 및 그 동작방법

Also Published As

Publication number Publication date
KR20190046510A (ko) 2019-05-07

Similar Documents

Publication Publication Date Title
JP6419235B2 (ja) デジタル放送システムにおけるデータを受信する装置
US8750385B2 (en) Video data loss recovery using low bit rate stream in an IPTV system
US9641588B2 (en) Packets recovery system and method
CN108809893B (zh) 一种视频质量评估方法和设备
US11363346B2 (en) Video service quality assessment method and apparatus
KR100651486B1 (ko) 네트워크를 통해 멀티미디어 컨텐츠를 전송하는 장치 및방법
US9577682B2 (en) Adaptive forward error correction (FEC) system and method
KR102392888B1 (ko) 패킷 손실 복구를 개선하기 위한 장치 및 방법
EP2622819B1 (en) Determining loss of ip packets
KR102035912B1 (ko) Ip 네트워크를 이용하여 스트림 패킷 전송 시 패킷 손실 검출 및 복구 방법 및 장치
US20150189331A1 (en) Image data communication method and image data communication device
KR101879194B1 (ko) 패킷의 손실을 복구하기 위한 장치 및 그 방법
JP2005033556A (ja) データ送信装置、データ送信方法、データ受信装置、データ受信方法
JP4791443B2 (ja) 客観品質評価方法、客観品質評価装置およびプログラム
KR102350570B1 (ko) 영상프레임의 손실을 측정하기 위한 iptv 셋탑박스 및 그 동작방법
US8875202B2 (en) Processing path signatures for processing elements in encoded video
KR101983045B1 (ko) 복합 네트워크에서 멀티미디어 데이터를 전송하기 위한 장치 및 그 방법
KR100701032B1 (ko) 네트워크 상의 동영상 데이터 전송 조절 시스템과 그 방법
KR102330416B1 (ko) 패킷 손실 탐지 방법 및 장치
JP4326211B2 (ja) 映像伝送装置および映像伝送システム
KR101855327B1 (ko) 복합 네트워크에서 멀티미디어 데이터를 전송하기 위한 장치 및 그 방법
KR20150079399A (ko) 데이터 전송 디바이스 및 그 전송 방법

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