KR20100106959A - 에프이씨 인코딩 및 디코딩을 위한 방법 및 장치 - Google Patents

에프이씨 인코딩 및 디코딩을 위한 방법 및 장치 Download PDF

Info

Publication number
KR20100106959A
KR20100106959A KR1020107012114A KR20107012114A KR20100106959A KR 20100106959 A KR20100106959 A KR 20100106959A KR 1020107012114 A KR1020107012114 A KR 1020107012114A KR 20107012114 A KR20107012114 A KR 20107012114A KR 20100106959 A KR20100106959 A KR 20100106959A
Authority
KR
South Korea
Prior art keywords
data
fec
block
video
block size
Prior art date
Application number
KR1020107012114A
Other languages
English (en)
Other versions
KR101559982B1 (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 KR20100106959A publication Critical patent/KR20100106959A/ko
Application granted granted Critical
Publication of KR101559982B1 publication Critical patent/KR101559982B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/765Media network packet handling intermediate
    • 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/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0098Unequal error protection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Error Detection And Correction (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

본 발명은 데이터 소스로부터 데이터 스트림을 수신하는 단계; 상기 데이터 스트림의 제 1 블럭 크기를 갖는 각 데이터 블럭에 대하여 제 1 순방향 오류정정(FEC) 데이터를 생성하는 단계; 및 상기 데이터 스트림의 제 2 블럭 크기를 갖는 각 데이터 블럭에 대하여 제 2 순방향 오류정정(FEC) 데이터를 생성하는 단계를 포함하되, 상기 제 2 블럭 크기는 상기 제 1 블럭 크기와 상이하고, 상기 제 1 블럭 크기의 데이터 블럭은 상기 데이터 스트림을 형성하고, 상기 제 2 블럭 크기의 데이터 블럭은 상기 데이터 스트림을 형성하는 것을 특징으로 하는, 송신기에서의 순방향 오류 정정(FEC, Forward Error Correction) 인코딩을 위한 방법을 제공한다.

Description

에프이씨 인코딩 및 디코딩을 위한 방법 및 장치{Method and Apparatus for FEC Encoding and Decoding}
본 발명은 인코딩 및 디코딩 시스템과 관련되고, 더 상세하게는 상기 시스템 내 FEC 인코딩 및 디코딩을 위한 방법 및 장치에 관련된다.
아날로그 방송 통신과 같은 아날로그 비디오 통신에서, 현재 채널이 새로운 채널로 변경될 때 새로운 채널 내 비디오 정보는 즉시 볼 수 있다. 하지만, 디지털 비디오 통신에서, 비디오 콘텐츠는 통상 네트워크 대역폭을 절약하기 위하여 코딩된 방식으로 전송된다. 이러한 방식에서, 소스측 비디오 콘텐츠는 네트워크를 통해 전송되기 전에 일련의 패킷으로 인코딩되며; 목적지측에서는 수신기가 재생을 위해 그 비디오 패킷을 수신 및 디코딩한다. 또한, 패킷 손실을 보호하기 위하여 순방향 오류정정(FEC, forward error correction)과 같은 채널 코딩 스킴이 흔히 사용된다. 비디오 소스 코딩과 채널 코딩은 모두 한번에 처리되어질 데이터 블럭(a block of data)을 필요로 하며, 이에 따라 채널변경이 요청되는 경우 적어도 한 데이터 블럭에 대응하는 지연이 필요하다. 따라서, 새로운 채널로부터의 정보가 발생하기 전까지, 비디오 공백(video blanking)이 발생하는 시구간이 존재한다. 본 발명은 채널 코딩 특히 FEC에 의해 발생되는 상기 지연에 주목하며, 상기 지연 및 채널변경 시의 공백 시구간(blanking time period)을 감소시키기 위한 솔류션을 제안한다.
양호한 FEC 인코딩은 큰 블럭 크기(block size)의 비디오 정보를 필요로 하며, FEC 효율(FEC efficiency)은 FEC 인코딩의 블럭 크기(block size)에 의존한다. 블럭 크기가 커지면 커질수록 더 적은 리던던시(redundancy)와 함께 더 양호한 오류정정 성능을 얻을 수 있다. 하지만, 비디오의 제 1 프레임을 얻기 위해서는 적어도 한 블럭 크기의 비디오에 대응하는 지연이 요구되기 때문에, 큰 블럭 크기는 새로운 채널의 비디오 스트림을 위한 더 많은 초기 지연을 의미한다. 만약, 시작시 및/또는 채널 변경시의 TV 프로그램의 초기 지연이 너무 길어지면, 이는 청취자로 하여금 불편함을 느끼게 한다. 통상적으로, 고객은 단지 2-3 초의 채널 변경 시간만을 참을 수 있다. 반면, 효과적인 채널 코딩은 10초 이상의 초기 지연(버퍼링)을 요구할 수 있다.
한 프로그램 채널에서 다른 프로그램 채널로의 변경 간 공백 시간(blanking time)을 감소시키기 위하여, 종래의 방법 및 비디오 신호 프로세서가 제공된다. 상기 방법에서, 현재 채널의 비디오 정보는 메모리에서 버퍼링되고, 채널 변경 동안 상기 버퍼링된 비디오 정보를 계속 방송함으로써 상기 비디오 공백을 대체한다. 하지만, 이 방법은 실제로 채널 변경 시간을 감소시키지는 못한다. 또한, 채널 변경의 명령이 전송된 후에도 구 채널로부터의 비디오 정보가 보여질 수 있기 때문에, 사용자는 혼란을 겪을 것이고 상기 명령이 실행되었는지 여부를 알 수 없다.
채널 변경 동안의 비디오 공백을 제거하기 위하여 종래의 또 다른 방법이 제공된다. 이 방법에서는, 문자 정보, 광고 또는 전자 서비스 가이드 정보(electronic service guide information)와 같은 다양한 정보가 상기 비디오 공백을 대체하기 위하여 제공된다. 하지만, 상기 방법과 마찬가지로, 이 방법은 여전히 채널 변경 시간을 감소시키지 않으며, 사용자는 이러한 정보가 불필요하다고 느낄 수 있다.
따라서, 프로그램 시작 및/또는 채널 변경 시간을 감소시킬 뿐만 아니라 채널 변경 효율을 보장하기 위하여, 상기 종래 기술의 문제점을 극복할 수 있는 방법을 제공하는 것이 필요하다.
본 발명은 다중 레벨 FEC(forward error correction, 순방향 오류정정) 인코딩 및 디코딩을 위한 방법 및 장치와 관련된다.
본 발명은 또한 송신기에서의 FEC(forward error correction) 인코딩을 위한 일 방법과 관련되고, 그 방법은 데이터 소스로부터 데이터 스트림을 수신하는 단계; 상기 데이터 스트림을 다중 레벨의 데이터 블럭으로 구성하는 단계; 및 상기 데이터 스트림의 다중 레벨 중의 각 데이터 블럭에 대하여 FEC 데이터를 생성하는 단계를 포함하며, 각 레벨의 상기 데이터 블럭은 다른 레벨의 데이터 블럭과는 상이한 블럭 크기를 갖고 상기 데이터 스트림을 형성한다.
본 발명은 또한 송신기에서의 FEC 인코딩을 위한 일 방법과 관련되고, 그 방법은 데이터 소스로부터 데이터 스트림을 수신하는 단계; 상기 데이터 스트림의 제 1 크기를 갖는 각 데이터 블럭에 대하여 제 1 순방향 오류정정(FEC) 데이터를 생성하는 단계; 및 상기 데이터 스트림의 제 2 크기를 갖는 각 데이터 블럭에 대하여 제 2 순방향 오류정정(FEC) 데이터를 생성하는 단계를 포함하며, 상기 제 2 크기는 상기 제 1 크기와 상이하고, 상기 제 1 크기의 데이터 블럭은 상기 데이터 스트림을 형성하고, 상기 제 2 크기의 데이터 블럭은 상기 데이터 스트림을 형성한다.
본 발명은 또한 수신기에서의 FEC(forward error correction) 디코딩을 위한 일 방법과 관련되고, 그 방법은 송신기로부터 데이터 스트림과 함께 FEC 데이터를 수신하는 단계; 및 상기 데이터 스트림의 각 블럭에 대한 FEC 데이터에 의해 상기 데이터 스트림을 디코딩하는 단계를 포함하며, 상기 FEC 데이터는 상기 데이터 스트림의 제 1 및 제 2 블럭 크기를 갖는 각 데이터 블럭으로부터 생성되고, 상기 제 2 블럭 크기는 상기 제 1 블럭크기와 상이하다.
본 발명은 또한 상기 언급된 FEC 인코딩 방법을 실행하기 위한 송신기와 관련된다.
본 발명은 또한 상기 언급된 FEC 디코딩 방법을 실행하기 위한 수신기와 관련된다.
본 발명에 따르면, 종래의 문제점을 효과적으로 개선할 수 있는 방법 및 장치를 제공할 수 있다.
본 발명의 다양한 양태, 특징 및 장점은 첨부된 도면과 관련된 이하의 상세한 설명으로부터 명확해 질 것이다.
도 1은 본 발명의 일 실시예에 따른 예시적인 송신기를 나타내는 블럭도이다.
도 2는 상기 송신기에서의 2 레벨 FEC 인코딩을 나타내기 위한 도면이다.
도 3은 상기 송신기에서 다중-레벨 FEC 패킷을 생성하기 위한 일 방법을 도시한 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 예시적인 수신기를 나타내는 블럭도이다.
도 5는 상기 수신기에서의 2 레벨 FEC 디코딩을 나타내기 위한 도면이다.
도 6은 상기 수신기에서 다중-레벨 패킷 정정을 위한 일 방법을 도시한 흐름도이다.
본 발명의 다양한 예시적인 실시예에 따라, 이하 본 발명의 많은 장점/특징을 설명하기 위하여 첨부된 도면을 참조하여 기술될 것이다.
도 1은 본 발명의 일 실시예에 따른 예시적인 송신기(100)를 나타내는 블럭도이다. 송신기(100)는 비디오 스트림을 인코딩하고 그 인코딩된 비디오 스트림을 TV 수신기와 같은 비디오 수신기에 전송하는 데 사용되며; 비디오 인코더(101) 및 다중-레벨 FEC 인코더(102)를 포함한다. 비디오 인코더(101)는 비디오 소스(미도시)로부터 비디오 스트림을 수신하고, 전송을 위해 상기 비디오 스트림을 압축하기 위하여 MPEG 비디오 인코딩 또는 종래의 다른 비디오 인코딩 기술과 같은 비디오 인코딩을 수행한다. FEC 패킷을 형성하기 위하여, 다중-레벨 FEC 인코더(102)는 비디오 인코더(101)로부터 출력된 상기 코딩된 비디오 스트림에 대하여 FEC 코딩을 수행한다. 코딩된 비디오 스트림은 FEC 패킷과 함께 비디오 방송 네트워크나 IP 네트워크 등과 같은 외부 네트워크로 출력된다. 코딩된 비디오 스트림은 복수의 채널에서 전송될 수 있고, 각각의 채널은 TV 프로그램과 같은 상이한 비디오 스트림을 전송할 수 있다는 것은 널리 알려져 있다.
FEC 인코더(102)에서, 인코딩된 비디오 스트림은 상이한 블럭 크기를 갖는 복수의 레벨의 데이터 블럭을 포함하도록 구성된다. 상기 레벨은 FEC 인코더(102)에서 블럭 단위로 FEC 인코딩을 수행할 수 있도록 구성되며, 상기 인코딩된 비디오 스트림은 변화되지 않는다. 2 레벨 비디오 스트림에 대한 FEC 코딩 프로세스를 설명하기 위하여 이하 예시적인 설명이 제공된다. 도 2는 송신기(100)에서의 2 레벨 FEC 인코딩을 설명하기 위한 도면이다. 도 2에서, 두 레벨은 FEC 코딩 프로세스, 레벨 1 및 레벨 2를 수행하는 데 사용된다. 레벨 1에서, 비디오 패킷(video packets)은 블럭 크기 A(1 비디오 패킷)를 갖는 비디오 블럭을 포함하도록 구성된다. 레벨 2에서, 비디오 패킷(video packets)은 블럭 크기 4A(4 비디오 패킷)를 갖는 비디오 블럭을 포함하도록 구성된다. 즉, 데이터 스트림의 각 하나의 비디오 패킷, 블럭 크기 A를 갖는 데이터 블럭은 레벨 1에서 FEC 데이터를 얻기 위해 FEC 인코딩이 수행되고, 동시에 데이터 스트림의 각 4개의 비디오 패킷, 블럭 크기 4A를 갖는 데이터 블럭은 레벨 2에서 FEC 데이터를 얻기 위해 FEC 인코딩이 수행된다. 각각의 블럭은 복수의 비디오 패킷을 포함하고, 각 블럭 내의 비디오 패킷의 갯수는 필요에 따라 본 기술분야의 당업자에 의해 선택될 수 있다는 것은 이미 알려져 있다.
그리고, FEC 코딩이 상기 두 레벨의 각 블럭에 대하여 사용된다. 본 실시예에서 선택된 오류 정정 기능은 XOR로서, 이것은 손실된 패킷의 어느 하나라도 하나의 FEC 패킷으로 복원시키는 능력을 갖는다. FEC 패킷을 생성하기 위하여 많은 방법이 사용될 수 있고, 그 상세한 내용은 여기서는 생략된다. 본 실시예에서는, 레벨 1 내의 각 블럭에 리던던시(redundancy)로서 FEC 패킷의 8%를 인코딩하고, 레벨 2 내의 각 블럭에 리던던시로서 FEC 패킷의 16%를 인코딩한다.
FEC 코딩을 한 후, FEC 데이터 패킷은 비디오 패킷 블럭을 포함하는 비디오 스트림과 함께 외부 네트워크로 전송된다. 본 발명의 본 실시예에서, 레벨 1은 더 작은 블럭 크기를 가지는데, 이것은, 예를 들어 비디오 수신기를 시동하거나 한 채널로부터 다른 새 채널로 변경할 때와 같이 비디오 수신기에서 어떤 채널의 비디오 스트림을 수신하기 시작할 때, 비디오 수신기에서 상기 비디오 스트림을 디코딩하기 위해 먼저(firstly) 사용될 수 있다는 점을 알아야 한다. 이에 따라, 비디오 블럭 내의 얼마간의 패킷 손실은 신속히 복구될 수 있고, 비디오 수신기는 또한 예를 들어 2-3초 동안 신속히 그 비디오 스트림을 재생할 수도 있다.
또한, 레벨 2는 더 큰 블럭 크기를 가지며, 이에 따라 비디오 수신기에서 어떤 한 채널의 비디오 스트림을 수신하기 시작할 때 또는 재생하는 시간 동안에 높은 품질의 비디오 스트림이 상기 수신기에서 재생될 수 있도록, 비디오 블럭 내 더 많은 패킷 손실이 완전히 복구될 수 있다.
도 3은 송신기에서 다중-레벨 FEC 패킷을 생성하기 위한 일 방법을 도시한 흐름도이다. 단계(301)에서, 비디오 스트림의 비디오 패킷은 비디오 소스로부터 수신되어 버퍼링된다. 이러한 비디오 패킷은 비디오 인코더에 의해 코딩된 것이다. 이어서, 단계(302)에서, 비디오 스트림은 상이한 블럭 크기를 갖는 복수 레벨의 데이터 블럭을 포함하도록 구성되고, 단계(303)에서 각각의 블럭 i에 대한 블럭-관련(block-associated) FEC 패킷이 생성되며, 여기서 1<=i<N+1 이고 N은 레벨의 개수이다. 본 실시예에서는, 2 레벨 FEC 패킷이 사용되므로, N=2이고 i=1, 2이다. 즉, 레벨 1 및 2에 대한 FEC 패킷이 상기 단계에서 생성된다. 여기서, 상기 블럭-관련 FEC 패킷은 각 레벨의 각 블럭에 대한 FEC 패킷을 의미한다. FEC 패킷은 대응하는 비디오 패킷과 함께 외부 네트워크로 전송된다.
단계(304)에서, 버퍼링된 비디오 패킷의 갯수가 SN을 초과하는지 여부가 결정되는데, SN은 레벨 N의 블럭 크기를 나타내고, 본 실시예에서는 S1=A, S2=4A이다. 상기 결과가 아니오(No)이면, 본 프로세스는 비디오 패킷을 수신 및 버퍼링하기 위하여 단계(301)로 되돌아갈 것이다. 상기 결과가 예(Yes)이면, 본 프로세스는 단계(305)로 진행될 것이다. 단계(305)에서, 비디오 패킷 버퍼는 들어오는 비디오 패킷을 수신하기 위하여 비워진다. 이어서, 단계(306)에서, 비디오 스트림이 종료되는지 여부가 결정된다. 그 결과가 아니오(No)인 경우, 본 프로세스는 비디오 패킷을 수신 및 버퍼링하기 위하여 단계(301)로 되돌아갈 것이다.
도 4는 본 발명의 일 실시예에 따른 예시적인 수신기(200)를 나타내는 블럭도이다. 수신기(200)는 비디오 디코더(201), FEC 디코더(205), 비디오 버퍼(204), FEC 버퍼(202), 패킷 디스패처(packets dispatcher, 203) 및 비디오 재생기(video player, 206)를 포함한다.
패킷 디스패처(203)는 외부 네트워크로부터의 수신된 비디오 데이터를 비디오 패킷 및 FEC 패킷으로 분리한다. 수신된 비디오 스트림은 튜너(미도시)에 의해 선택될 수 있고, 이에 따라 사용자는 복수 채널 내의 다양한 TV 프로그램과 같은 상이한 채널로부터의 상이한 비디오 스트림을 재생할 수 있다. 상기 튜너 및 상기 선택은 본 발명에서는 필수적이지는 않다는 것은 당업자에게는 알려진 사실이다. 대신, 한 채널로부터의 비디오 스트림이 수신기(200)에서 수신될 수 있다.
FEC 버퍼(202)는 패킷 손실을 복구하도록 FEC 디코더(205)에 의한 디코딩을 위해 FEC 데이터 패킷을 저장한다. 비디오 버퍼(204)는 비디오 디코더(201)에 의한 디코딩을 위해 상기 비디오 패킷과 복구된 비디오 데이터를 저장한다. 디코딩된 비디오 데이터는 재생을 위해 비디오 재생기(video player, 206)로 출력된다. 비디오 디코더(201)에서의 디코딩 프로세스는 본 기술분야에서 공지되어 있으며, 그 구체적인 설명은 여기서 생략된다. FEC 버퍼(202)와 FEC 디코더(205)에서의 프로세스가 이하 상세하게 기재될 것이다.
어떤 채널의 비디오 스트림이나 FEC 패킷을 재생하기 시작하는 경우, FEC 버퍼(202)는 어떤 채널의 FEC 패킷을 축적하기 시작한다. 그 채널은 수신기를 시동할 때의 채널, 또는 어떤 채널에서 새 채널로 변경할 때의 새 채널이다. 만약 비디오 패킷 손실이 탐지되면, FEC 디코더(205)는 동일 블럭 내 수신된 비디오 패킷과 각 레벨에 대한 블럭-관련 FEC 패킷의 조합을 이용함으로써 손실된 비디오 패킷을 디코딩 및 복구하기 시작하며, 이어서 상기 복구된 비디오 패킷은 비디오 스트림을 디코딩하기 위해 비디오 디코더(201)에 제공된다. 수신기에서의 비디오 디코딩에 대하여 상기 언급된 바와 같이, 레벨 1에서의 블럭을 디코딩하기 위해 요구되는 충분한 비디오 패킷의 수는 A이고, 레벨 2에서의 블럭을 디코딩하기 위해 요구되는 충분한 비디오 패킷의 수는 4A이다. 따라서, 레벨 1에서의 블럭을 디코딩하기 위한 시간 지연은 레벨 2의 그것보다 더 짧으며, 레벨 1이 비디오 스트림을 디코딩하기 위해 먼저 사용되며, 그리고 나서 레벨 2가 비디오 스트림을 완전히 디코딩하기 위해 사용된다. 이에 따라, 시간 지연은 레벨 1을 이용함으로써 감소되며, 디코딩의 품질은 레벨 2를 이용함으로써 보장된다.
한편, 만약 2 레벨보다 더 많은 레벨이 있으면, 요구되는 성능을 구현하기 위하여, 최소 블럭 크기를 갖는 레벨이 먼저 사용되고 그리고 나서 더 큰 블럭 크기를 갖는 또 다른 레벨이 사용되며 마지막으로 최대 블럭 크기를 갖는 레벨이 사용된다.
도 5는 수신기(200)에서의 2-레벨 FEC 디코딩을 설명하기 위한 도면이다. 도 5에는, 비디오 버퍼(204) 내 얼마간의 소실 패킷(missing packets)이 도시되어 있다. 만약 소실된 패킷이 FEC의 레벨 1에 의해 복구될 수 있다면, 그 복구된 블럭은 레벨 1에서 대략 1 블럭(A 패킷(A packets)) 지연을 가지며(t1에서), 만약 그렇지 않다면 본 실시예에서 레벨 2에서 대략 1 블럭(4A 패킷) 지연이 존재하는 경우(t2에서) 그 블럭은 FEC의 레벨 2에 의해 복구될 수 있다.
도 4에서, 비디오 재생기(26)는 비디오 스트림을 재생하기 위하여 비디오 디코더(201)로부터의 디코딩된 비디오 스트림을 판독할 것이다. 비디오 패킷이 비디오 재생기(206)에 의해 판독된 후, 그것은 버퍼에서 즉시 삭제될 것이다. 레벨 2의 디코딩을 위한 충분한 패킷을 축적하기 위해서, 버퍼가 레벨 2의 블럭 크기의 충분한 갯수의 패킷을 축적할 때까지, 실시간 레이트(real-time rate)보다 더 낮은 플레이아웃 레이트(play-out rate)가 상기 비디오를 재생하는 데 사용된다. 만약 버퍼링된 패킷이 정상(실시간) 속도로 재생되면, 레벨 2 FEC 디코딩을 위해 축적되어야 할 만큼 충분하지 않은 블럭이 있을 것이다.
본 실시예에서, 재생 레이트(playback rate)가 실시간 레이트보다 더 낮은 한, 버퍼 점유도(buffer occupancy)는 계속 증가한다. 최소 버퍼링은 레벨 1에서 1 블럭(A 패킷)이며, 레벨 1에서의 FEC 패킷은 특정 양의 오류를 복구할 수 있다. 버퍼 점유도는 레벨 2에서의 1 블럭(4A 패킷)까지 증가하며, 그리고 나서 레벨 2에서 FEC 패킷에 의해 복구된 블럭은 그것이 버려지기 전까지 사용될 수 있다.
주어진 어떤 레벨(레벨 2)에 대해 요구되는 크기(4A)까지 버퍼가 채워진 후, 비디오 스트림을 재생하기 위하여 실시간 레이트(real time rate)가 회복된다. 더 낮은 속도의 재생을 위한 시구간(T)은 1) 슬로우 레이트(slow rate)와 정상 레이트(normal rate) 간의 차(delta_R), 2) 두 레벨 간의 버퍼 요건 차(buffer requirement difference)(delta_B)에 의존한다.
T = delta_B / delta_R
채널 변경 시각으로부터 실행되는 레벨 2 FEC에 대한 목표 지연(target delay) T1이 주어지면, 데이터 축적을 위해 사용되는 슬로우 레이트(R0)를 찾을 수 있다. 그 방법은 다음과 같다:
1. 정상 재생 레이트(R)가 주어지면, 레벨 1에 대한 블럭 크기는 A이고 레벨 2는 4A이다.
2. 채널 전화 시간(channel switch time) T0 = A / R.
3. 4A까지의 버퍼 축적은 T1 - T0 = delta_B / (R - R0) 를 요구한다.
4. 이에 따라, 슬로우 레이트는 R0 = R - delta_B / (T1 - T0) 이다.
시구간 T 이후, 2-레벨 FEC 인코딩이 더 좋은 품질을 얻기 위해 사용될 수 있다. 또한, 레벨 2만이 사용될 수도 있는데, 이것은 좋은 품질을 얻을 수 있고 FEC 코딩의 복잡도를 감소시킬 수 있다.
도 6은 수신기에서의 다중-레벨 패킷 정정을 위한 일 방법을 도시한 흐름도이다. 단계(601)에서, 비디오 패킷이 외부 네트워크로부터 수신되어 수신기(200)에서 버퍼링된다. 그리고 나서, 단계(602)에서, 비디오 패킷 버퍼가 FEC 디코더에 의해 소모되고, 소실된 패킷이 있다면 복구된다.
단계(603)에서, FEC 디코딩 후 비디오 패킷은 재생기(206)에서 재생된다. 단계(604)에서, 비디오 패킷 버퍼는 다음 블럭 유입 비디오 패킷에 의해 채워진다. 이어서, 단계(605)에서, 비디오 스트림이 종료되었는지 여부가 결정된다. 그 결과가 아니오(No)인 경우, 비디오 패킷을 수신 및 버퍼링하기 위해 프로세스는 단계(601)로 되돌아 간다.
단지 상술한 바와 같은 채널 코딩을 위한 기결정된 다중-레벨 FEC를 이용하는 것 대신, 재전송(ARQ) 메커니즘에 대한 요청를 적용함으로써 동적 다중-레벨 FEC 방법을 구비할 수 있다. 예를 들어, 만약 채널 품질이 좋으면, 단지 레벨 1 FEC 패킷만 전송된다. 만약 채널 품질이 더 나빠지면, 수신기는 송신기에 ARQ 요청을 보낼 수 있다. 그 경우, 수신기 측에서의 오류 정정 성능을 향상시키기 위하여 레벨 2 FEC 패킷이 송신기에 의해 보내질 수 있다.
상술한 바와 같이, 본 발명의 상기 실시예에서의 방법 및 장치에 있어, 사용자가 TV 프로그램 채널을 전환하면 새로운 TV 프로그램은 FEC의 제 1 레벨에 대응하는 짧은 지연과 함께 보여질 수 있지만, 만약 채널 조건이 충분히 양호하지 않으면 패킷 손실은 잠시동안에는 모두 복구될 수는 없다. 따라서, 비디오 품질은 몇몇 마이크로 블럭이나 손실 프레임과 동시에 나빠질 수 있지만, 시간이 경과함에 따라 제 2 레벨 FEC가 실행되는 시구간 경과 후(예를 들어, ~10초) 비디오 품질은 향상될 수 있다. 상기와 같은 적응성 패킷 오류 복구 접근법(adaptive packet loss recovery approach)은 FEC 블럭 크기 및 채널 전환 시간 간의 상충관계(trade-off)를 해결한다.
본 발명 사상에 기초한 특정 프로세스가 상기에서 기재되고 있으나, 그것은 본 발명을 제한하는 것으로 생각될 수 없다. 예를 들어, 상기 기재된 바와 같이, TV 송신기 및 수신기는 본 발명의 일 실시예를 설명하기 위하여 사용된다. 하지만, 다른 비디오 전송 및 재생 시스템도 사용될 수 있고 다른 데이터 전송 및 수신 시스템도 사용될 수 있다는 것은 본 기술분야의 당업자에게는 명백한 것이다. 따라서, 수신 시간 지연이 너무 길다고 하는 문제점을 해결하기 위해, 본 발명은, 데이터 스트림이 신속하게 디코딩되고 그 디코딩된 데이터 스트림이 요구된 품질을 가질 수 있도록, FEC 인코딩과 관련하여 어떠한 인코딩 및 디코딩 시스템에도 사용될 수 있다.
상기 언급한 내용은 단지 본 발명 사상을 설명하기 위한 것이고, 따라서 본 기술분야의 당업자라면 여기에는 명확하게 기재되어 있지 않더라도 본 발명 사상을 구체화하고 그 사상 및 범위에 속하는 많은 대안적인 장치를 고안할 수 있다는 것을 이해할 수 있을 것이다. 많은 수정이 본 실시예에 행해질 수 있고, 첨부된 청구항에 의하여 정의된 바와 같은 본 발명의 사상 및 범위를 벗어나지 않고서 다른 실시예들이 고안될 수 있다는 점을 알아야 한다.
100 : 송신기 101 : 비디오 인코더
102 : 다중-레벨 FEC 인코더 200 : 수신기
201 : 비디오 디코더 202 : FEC 버퍼
203 : 패킷 디스패처 204 : 비디오 버퍼
205 : FEC 디코더 206 : 비디오 재생기

Claims (12)

  1. 송신기에서의 순방향 오류 정정(FEC, Forward Error Correction) 인코딩을 위한 방법으로서,
    데이터 소스로부터 데이터 스트림을 수신하는 단계;
    상기 데이터 스트림의 제 1 블럭 크기를 갖는 각 데이터 블럭에 대하여 제 1 순방향 오류정정(FEC) 데이터를 생성하는 단계; 및
    상기 데이터 스트림의 제 2 블럭 크기를 갖는 각 데이터 블럭에 대하여 제 2 순방향 오류정정(FEC) 데이터를 생성하는 단계를 포함하되,
    상기 제 2 블럭 크기는 상기 제 1 블럭 크기와 상이하고, 상기 제 1 블럭 크기의 데이터 블럭은 상기 데이터 스트림을 형성하고, 상기 제 2 블럭 크기의 데이터 블럭은 상기 데이터 스트림을 형성하는, 송신기에서의 FEC 인코딩을 위한 방법.
  2. 제 1항에 있어서,
    상기 데이터 스트림과 함께 상기 FEC 데이터를 복수의 채널을 통하여 수신기에 전송하는 단계를 추가로 더 포함하는, 송신기에서의 FEC 인코딩을 위한 방법.
  3. 제 2항에 있어서,
    상기 제 1 블럭 크기는 상기 제 2 블럭 크기보다 더 작고, 상기 수신기에서 채널의 상기 데이터 스트림을 수신하기 시작할 때 상기 제 1 블럭 크기를 갖는 데이터 블럭의 상기 FEC 데이터는 상기 데이터 스트림을 디코딩하기 위해 먼저 사용될 수 있는, 송신기에서의 FEC 인코딩을 위한 방법.
  4. 제 2항 또는 제 3항에 있어서,
    상기 수신기에서 채널의 상기 데이터 스트림을 수신하기 시작할 때, 상기 제 2 블럭 크기의 데이터 블럭의 상기 FEC 데이터는 상기 데이터 스트림을 완전히 디코딩하기 위해 사용될 수 있는, 송신기에서의 FEC 인코딩을 위한 방법.
  5. 수신기에서의 순방향 오류 정정(FEC, Forward Error Correction) 디코딩을 위한 방법으로서,
    송신기로부터 데이터 스트림과 함께 FEC 데이터를 수신하는 단계; 및
    상기 데이터 스트림의 각 블럭에 대한 FEC 데이터에 의해 상기 데이터 스트림을 디코딩하는 단계를 포함하되,
    상기 FEC 데이터는 상기 데이터 스트림의 제 1 및 제 2 블럭 크기를 갖는 각 데이터 블럭으로부터 생성되고, 상기 제 1 블럭 크기의 상기 데이터 블럭은 상기 데이터 스트림을 형성하고, 상기 제 2 블럭 크기를 갖는 상기 데이터 블럭은 상기 데이터 스트림을 형성하며, 상기 제 2 블럭 크기는 상기 제 1 블럭크기와 상이한, 수신기에서의 FEC 디코딩을 위한 방법.
  6. 제 5항에 있어서,
    상기 FEC 데이터는 상기 데이터 스트림과 함께 복수의 채널을 통해 수신되는, 수신기에서의 FEC 디코딩을 위한 방법.
  7. 제 6항에 있어서,
    상기 제 1 블럭 크기는 상기 제 2 블럭 크기보다 더 작으며, 상기 디코딩하는 단계는 채널의 상기 데이터 스트림을 수신하기 시작할 때 상기 제 1 블럭 크기를 갖는 데이터 블럭을 상기 FEC 데이터에 의해 먼저 디코딩하는 단계를 포함하는, 수신기에서의 FEC 디코딩을 위한 방법.
  8. 제 6항 또는 제 7항에 있어서,
    상기 디코딩하는 단계는 채널의 상기 데이터 스트림을 수신하기 시작할 때 상기 제 2 블럭 크기를 갖는 데이터 블럭을 상기 FEC 데이터에 의해 완전히 디코딩하는 단계를 포함하는, 수신기에서의 FEC 디코딩을 위한 방법.
  9. 제 8항에 있어서,
    상기 데이터 스트림은 비디오 스트림이고, 상기 방법은 상기 FEC 데이터에 의해 디코딩된 상기 데이터 스트림을 비디오 재생기로 재생하는 단계를 더 포함하는, 수신기에서의 FEC 디코딩을 위한 방법.
  10. 제 9항에 있어서,
    상기 재생하는 단계는
    상기 비디오 스트림의 제 2 블럭 크기를 갖는 상기 데이터 블럭이 상기 FEC 데이터에 의해 버퍼링 및 디코딩될 때까지, 상기 제 1 블럭 크기를 갖는 데이터 블럭에 대한 상기 FEC 데이터에 의해 디코딩된 상기 비디오 스트림을 정상 레이트보다 더 작은 재생 레이트로 먼저 재생하는 단계; 및
    상기 FEC 데이터에 의해 디코딩된 비디오 스트림의 상기 제 2 블럭 크기의 데이터 블럭을 마지막으로 재생하는 단계를 포함하는, 수신기에서의 FEC 디코딩을 위한 방법.
  11. 제 1 항 내지 제 4항 중 어느 한 항에 따른 상기 FEC 인코딩 방법을 실행하기 위한 송신기.
  12. 제 5 항 내지 제 10항 중 어느 한 항에 따른 상기 FEC 디코딩 방법을 실행하기 위한 수신기.
KR1020107012114A 2007-11-07 2008-11-04 에프이씨 인코딩 및 디코딩을 위한 방법 및 장치 KR101559982B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP07301530A EP2058968A1 (en) 2007-11-07 2007-11-07 Method and apparatus for FEC encoding and decoding
EP07301530.7 2007-11-07

Publications (2)

Publication Number Publication Date
KR20100106959A true KR20100106959A (ko) 2010-10-04
KR101559982B1 KR101559982B1 (ko) 2015-10-13

Family

ID=39295648

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107012114A KR101559982B1 (ko) 2007-11-07 2008-11-04 에프이씨 인코딩 및 디코딩을 위한 방법 및 장치

Country Status (7)

Country Link
US (1) US8832519B2 (ko)
EP (2) EP2058968A1 (ko)
JP (1) JP5553764B2 (ko)
KR (1) KR101559982B1 (ko)
CN (1) CN101855855B (ko)
BR (1) BRPI0820492A2 (ko)
WO (1) WO2009059955A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10097861B2 (en) 2013-01-18 2018-10-09 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Forward error correction using source blocks with symbols from at least two datastreams with synchronized start symbol identifiers among the datastreams
KR20180133823A (ko) * 2011-06-11 2018-12-17 삼성전자주식회사 방송 및 통신 시스템에서 패킷 송수신 장치 및 방법

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2058968A1 (en) * 2007-11-07 2009-05-13 Thomson Licensing Method and apparatus for FEC encoding and decoding
CN102143367B (zh) * 2010-01-30 2013-01-30 华为技术有限公司 一种纠错校验方法、设备和系统
JP5397700B2 (ja) * 2010-04-09 2014-01-22 ソニー株式会社 情報処理装置および方法
US8539319B2 (en) * 2011-01-28 2013-09-17 Cisco Technology, Inc. Providing capacity optimized streaming data with forward error correction
US8769369B2 (en) 2011-07-08 2014-07-01 Samsung Electronics Co., Ltd. Method for generating forward error correction packet in multimedia system and method and apparatus for transmitting and receiving forward error correction packet
EP2815529B1 (en) 2012-02-17 2019-12-11 Samsung Electronics Co., Ltd. Data packet transmission/reception apparatus and method
GB201210779D0 (en) * 2012-06-18 2012-08-01 Microsoft Corp Correction data
US10075266B2 (en) * 2013-10-09 2018-09-11 Qualcomm Incorporated Data transmission scheme with unequal code block sizes
US9680685B2 (en) * 2014-05-08 2017-06-13 Spb Tv Ag System and method for managing video content feeds
GB2593644B (en) * 2018-11-14 2023-09-06 Skywave Networks Llc Communication system and method of using variable-length messages
IL282469B2 (en) 2021-04-20 2024-10-01 Maris Tech Ltd Network media streaming with error correction redundancy

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7327761B2 (en) * 2000-02-03 2008-02-05 Bandwiz Inc. Data streaming
US7095782B1 (en) * 2000-03-01 2006-08-22 Koninklijke Philips Electronics N.V. Method and apparatus for streaming scalable video
US6798838B1 (en) * 2000-03-02 2004-09-28 Koninklijke Philips Electronics N.V. System and method for improving video transmission over a wireless network
JP2003152752A (ja) * 2001-08-29 2003-05-23 Matsushita Electric Ind Co Ltd データ送受信方法
US7274661B2 (en) * 2001-09-17 2007-09-25 Altera Corporation Flow control method for quality streaming of audio/video/media over packet networks
US20030076858A1 (en) * 2001-10-19 2003-04-24 Sharp Laboratories Of America, Inc. Multi-layer data transmission system
US20060164987A1 (en) * 2002-07-18 2006-07-27 Carles Ruiz Floriach Adaptive dropping of prioritized transmission packets
DE10353793B4 (de) * 2003-11-13 2012-12-06 Deutsche Telekom Ag Verfahren zur Verbesserung der Wiedergabequalität bei paketorientierter Übertragung von Audio-/Video-Daten
US7222285B2 (en) * 2004-03-17 2007-05-22 Microsoft Corporation Layered multiple description coding
JP2005277701A (ja) * 2004-03-24 2005-10-06 Hitachi Ltd 動画データの伝送方法、伝送システム、配信装置及び受信装置
JP2005323171A (ja) * 2004-05-10 2005-11-17 Sumitomo Electric Ind Ltd 送信装置、誤り訂正装置、ネットワーク接続装置およびパケット中継方法
US8291448B2 (en) 2004-09-15 2012-10-16 Nokia Corporation Providing zapping streams to broadcast receivers
JP4532505B2 (ja) * 2004-12-09 2010-08-25 三菱電機株式会社 データ送信装置、データ受信装置、およびデータ配信システム
JP2006229463A (ja) * 2005-02-16 2006-08-31 Daiichikosho Co Ltd 高能率符号化された時系列情報をリアルタイム・ストリーミング送信し受信再生する装置
JP4089708B2 (ja) * 2005-06-20 2008-05-28 住友電気工業株式会社 出力方法及び出力装置
US7617436B2 (en) * 2005-08-02 2009-11-10 Nokia Corporation Method, device, and system for forward channel error recovery in video sequence transmission over packet-based network
US7397400B2 (en) * 2005-12-02 2008-07-08 Viasat, Inc. Variable length data encapsulation and encoding
JP2007281868A (ja) * 2006-04-06 2007-10-25 Nippon Hoso Kyokai <Nhk> 送信装置及び受信装置
US7895497B2 (en) * 2006-06-26 2011-02-22 Samsung Electronics Co., Ltd. Apparatus and method using reduced memory for channel decoding in a software-defined radio system
US8006160B2 (en) * 2006-06-29 2011-08-23 Digital Fountain, Inc. Efficient encoding and decoding methods for representing schedules and processing forward error correction codes
EP2058968A1 (en) * 2007-11-07 2009-05-13 Thomson Licensing Method and apparatus for FEC encoding and decoding

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180133823A (ko) * 2011-06-11 2018-12-17 삼성전자주식회사 방송 및 통신 시스템에서 패킷 송수신 장치 및 방법
US10097861B2 (en) 2013-01-18 2018-10-09 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Forward error correction using source blocks with symbols from at least two datastreams with synchronized start symbol identifiers among the datastreams

Also Published As

Publication number Publication date
BRPI0820492A2 (pt) 2015-06-16
CN101855855A (zh) 2010-10-06
US20110099449A1 (en) 2011-04-28
JP5553764B2 (ja) 2014-07-16
KR101559982B1 (ko) 2015-10-13
EP2215757A1 (en) 2010-08-11
WO2009059955A1 (en) 2009-05-14
CN101855855B (zh) 2014-07-30
JP2011503947A (ja) 2011-01-27
US8832519B2 (en) 2014-09-09
EP2058968A1 (en) 2009-05-13

Similar Documents

Publication Publication Date Title
KR101559982B1 (ko) 에프이씨 인코딩 및 디코딩을 위한 방법 및 장치
JP4690280B2 (ja) メディアデータをストリーミングする方法、システム及びクライアント装置
US7586924B2 (en) Apparatus and method for coding an information signal into a data stream, converting the data stream and decoding the data stream
JP5133567B2 (ja) コーデック変更方法及び装置
EP2011332B1 (en) Method for reducing channel change times in a digital video apparatus
CN101316357B (zh) 一种频道切换的方法和终端
KR101217430B1 (ko) 고속 채널 변경
JP2007104085A (ja) 通信回線を用いるデジタル放送方法およびその装置
JP4668913B2 (ja) 誤り訂正によるデジタルテレビジョンの伝送
KR20100136999A (ko) 시간 확장성을 이용하는 스태거캐스팅
CN102130886A (zh) 网络视频流媒体系统及传输处理方法、发送端和接收端
CN1781295A (zh) 节目的冗余传输
CN101695134B (zh) 一种弱信号环境下提高终端播放性能的终端、系统及方法
JP2011530907A (ja) チャネル切替のためのメディアストリームの分離
JP4491918B2 (ja) データ配信装置及び方法、データ配信システム
KR20080052043A (ko) Av 데이터 스트리밍 방법 및 장치
WO2010014239A2 (en) Staggercasting with hierarchical coding information
KR101738357B1 (ko) 디지털 방송에서 동일 채널에서의 화면 단절 방지 장치 및 방법
KR100822132B1 (ko) 디지털 멀티미디어 방송 장치의 방송 재생 방법
EP2076042A1 (en) Apparatus and method for transmitting a digital stream

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
LAPS Lapse due to unpaid annual fee