KR20090119898A - 비디오 전송 중 패킷 손실의 영향 줄이기 - Google Patents

비디오 전송 중 패킷 손실의 영향 줄이기 Download PDF

Info

Publication number
KR20090119898A
KR20090119898A KR1020097018917A KR20097018917A KR20090119898A KR 20090119898 A KR20090119898 A KR 20090119898A KR 1020097018917 A KR1020097018917 A KR 1020097018917A KR 20097018917 A KR20097018917 A KR 20097018917A KR 20090119898 A KR20090119898 A KR 20090119898A
Authority
KR
South Korea
Prior art keywords
data
packet
error correction
protection
video
Prior art date
Application number
KR1020097018917A
Other languages
English (en)
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 KR20090119898A publication Critical patent/KR20090119898A/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/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0009Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the channel coding
    • 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/0056Systems characterized by the type of code used
    • H04L1/007Unequal error protection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/65Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Quality & Reliability (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

오류 정정 시스템은, 송신단에 의해 수신단으로 전송되는 비디오 데이터의 프레임에 사용될 오류 정정 보호의 레벨을 패킷 손실의 예상 효과뿐만 아니라, 프레임들 사이의 의존성에 기초한 프레임의 중요성, 프레임 크기, 패킷 손실 확률, 히스토리컬 패킷 손실 패턴, CPU 로드 및 사용가능한 네트워크 대역폭에 기초하여 결정한다. 오류 정정 시스템은 보호 패킷을 생성하기 위해 결정된 보호의 레벨을 사용한다. 수신단에서, 특정 프레임에 대해 패킷 손실이 검출되면, 수신단은 비디오 데이터와 함께 수신된 임의의 보호 패킷을 사용하여 프레임을 복구하기 위해 시도할 것이다.
패킷 손실, 비디오 프레임, 압축, 중복성

Description

비디오 전송 중 패킷 손실의 영향 줄이기{REDUCING EFFECTS OF PACKET LOSS IN VIDEO TRANSMISSIONS}
오류 정정 시스템이라 불리는, 비디오 전송 상의 패킷 손실의 영향을 감소시키기 위한 방법 및 시스템에 관한 것이다.
인터넷과 같은 컴퓨터 네트워크는 사람들이 정보를 얻는 방법을 급격하게 변화시켜 왔다. 예를 들어, 현대의 컴퓨터 네트워크는 컴퓨터 네트워크에 액세스를 가지는 사람들 사이에 정보를 전송하기 위해 이메일 통신의 사용을 지원한다. 점점, 시스템은 실시간 구성요소를 가지는 네트워크 상에서 데이터의 교환이 가능하도록 발전되고 있다. 예를 들어, 비디오 스트림은 네트워크에 의해 연결된 컴퓨터들 사이에 전송될 수 있고, 따라서 네트워크 상태는 정보가 사용자에게 어떻게 표시되느냐에 영향을 미칠 수 있다. 데이터는 컴퓨터 네트워크 상에서 패킷으로 일반적으로 전송된다. 불행히도, 컴퓨터 네트워크 상에서 전송되고 있는 하나 이상의 패킷이 그것들의 목적지에 도달하지 못한 경우 패킷 손실이 발생한다. 과도하게 사용된 네트워크, 신호 저하(signal degradation), 하드웨어 결함(faulty hardware) 등의 수많은 요인이 패킷 손실을 일으킬 수 있다. 패킷 손실이 발생하면, 성능 문제가 사용자에게 중요하게 될 수 있다. 예를 들어, 비디오 스트림의 맥락에서, 패킷 손실은 일련의 비디오 프레임에서 볼 수 있는 "아티팩트(artifact)" 또는 왜곡(distortion)을 초래할 수 있다.
네트워크 패킷 손실은 일반적이다. 이는 공용 인터넷, DSL, 케이블, WLAN, 3G 무선 및 기타 여러 유형의 네트워크 상에서 일어난다. 인터넷 상에서의 예상 패킷 손실률은 5%이며 일부 무선 네트워크는 10% 이상의 패킷 손실을 가질 수 있다. TCP(Transmission Control Protocol)와 같은 신뢰가능한 네트워크 전송 프로토콜은 전송 매체가 패킷을 드롭시키는 경우 패킷을 재전송하여 패킷 전달을 보증한다. UDP(Unreliable Datagram Protocol)와 같은 신뢰불가능한 프로토콜은 패킷 전달을 보증하지 않으며 드롭된 패킷을 재전송하지 않는다. 패킷을 재전송하는 것은 시간이 걸리며 추가의 대역폭을 소비한다. 비디오 통신의 실시간 속성으로 인해, 비디오 신호는 종종 신뢰불가능한 프로토콜을 사용하여 보내지고, 따라서 네트워크 패킷 손실로 어려움을 겪을 수 있다.
실시간 비디오 통신을 위해, 송신단(sending endpoint)은 네트워크를 통해 수신단(receiving endpoint)으로 비디오 프레임을 보내는데, 종종 초당 20에서 30 프레임 또는 그 이상을 보낸다. 프레임은 네트워크에 의해 허용되는 MTU(Maximum Transmission Unit)에 기초하여 패킷으로 나눠진다(예를 들어, 이더넷에서는 1500 바이트). 비디오의 프레임은 하나의 패킷 내에 맞도록 충분히 작을 수 있거나 많은 패킷을 요구하도록 충분히 클 수 있다. 일부 비디오 압축/복원기(compressor/decompressor)(codecs)에 있어서, 프레임에 있는 임의의 패킷이 드롭되는 경우, 손실된 데이터로 인해 수신단은 전체 프레임을 버려야만 한다.
또한, 코덱은 송신단이 네트워크를 통해 전송하는 비디오 데이터의 양을 줄이기 위해, 의존성 구조(dependency structure)를 종종 사용한다. 예를 들어, 인트라(I) 프레임이라 불리는 프레임은 그 컨텐츠에 기초하여 전체적으로 인코딩된다. 연속적인 프레임은 이전 프레임으로부터의 델타(상이한 신호; difference signal)에 기초하여 압축된다. 이러한 프레임은 종종 예측(Prediction; P) 프레임으로 불린다. 일부 코덱은 더욱더 복잡한 의존성 구조를 도입한다. 예를 들어, 이 코덱은, 보통의 P 프레임과 반대로 바로 선행하는 P 프레임 또는 I 프레임에 의존하지 않고 대신 더 이전의 SP 프레임 또는 I 프레임에 의존하는 수퍼 예측(SP-frame)이라 불리는 특별한 P 프레임을 때때로 보낼 수 있다. 이러한 SP 프레임의 컨텐츠는 일반적으로 레퍼런스 프레임과 덜 관련되고, 따라서 더 많은 비디오 데이터를 운반한다. 다른 유형의 프레임은 이전 및 다음 프레임 양자 모두로부터의 델타를 포함하는 양방향(B) 프레임이거나 그들 사이에 있다. 이러한 유형의 인터 프레임 의존성은 송신단이 네트워크를 통해 전송하는 데이터의 양을 감소시키나 의존성은 또한 네트워크 패킷 손실의 영향을 악화시킨다. 예를 들어, I 프레임이 드롭되는 경우, 수신단은 I 프레임에 의존하는 모든 다음 P 프레임에 대한 데이터를 분실할 것이고, 사용자는 다음 I 프레임이 도착할 때까지 비디오 아티팩트를 보게 될 것이다. 네트워크 패킷 손실이 1%인 경우, 10개의 패킷 I 프레임은 다음 수식에 따라 10%의 드롭될 확률을 가진다.
Figure 112009055694046-PCT00001
여기서 PI는 하나의 I 프레임을 손실할 확률이고, P는 임의의 패킷을 손실할 확률이며, N은 그 프레임에 있는 패킷의 수이다. 하나의 I 프레임이 10%의 드롭될 확률을 가지는 경우, 심지어 모든 다음 프레임이 정확하게 수신단에 도착하는 경우에도, I 프레임에 의존하는 다음 프레임은 10%의 비디오 아티팩트를 가질 확률을 가진다.
패킷 손실의 영향을 감소시키는 종래의 일 방법은 포워드 오류 정정(Forward Error Correction; FEC)이다. 포워드 오류 정정(FEC)은 데이터 전송을 위한 오류 제어 시스템으로, 송신단은 수신단이 송신단에 추가의 데이터를 요청할 필요 없이 (일정 범위 내의) 오류를 검출하고 정정할 수 있도록 그 메시지에 중복되는 데이터(redundant data)를 추가한다. 포워드 오류 정정의 장점은 데이터의 재전송을 종종 방지할 수 있다는 것으로, 따라서 실시간 비디오 데이터를 전송하는 경우와 같이 재전송이 상대적으로 비용이 비싸거나 불가능한 상황에 적용될 수 있다. 다른 FEC 알고리즘은 다른 대역폭 요구사항을 가지며, 패킷 손실에 대비하여 다른 보호의 레벨을 제공하므로, 다른 포워드 FEC 알고리즘이 다른 조건에 적절할 수 있다.
불행히도, 송신단이 어떤 FEC 알고리즘이 특정 네트워크 연결에 가장 양호한 비디오 경험(experience)을 제공할 것인지를 결정하는 것은 어렵다. 또한, 송신단은 종종 유리한 FEC 알고리즘의 효율적인 선택을 결정하는 대역폭 및 계산 리소스 제한을 가진다. 또한, 많은 송신단은 동시에 여러 상이한 수신단으로 비디오 데이 터를 전송해야 할 수도 있고, 따라서 각각의 단을 위해 수행되는 결정은 송신단에서 사용가능한 리소스의 관점에서 비용이 매우 비쌀 수 있다.
오류 정정 시스템이라 불리는, 비디오 전송 상의 패킷 손실의 영향을 감소시키기 위한 방법 및 시스템이 제공된다. 오류 정정 시스템은, 송신단(sending endpoint)에 의해 수신단(receiving endpoint)으로 전송되는 비디오 데이터의 프레임에 사용될 오류 정정 보호의 레벨을 패킷 손실의 예상 효과뿐만 아니라, 프레임들 사이의 의존성에 기초한 프레임의 중요성, 프레임 크기, 패킷 손실 확률, 히스토리컬 패킷 손실 패턴, CPU 로드 및 사용가능한 네트워크 대역폭에 기초하여 결정한다. 오류 정정 시스템은 보호 패킷을 생성하기 위해 결정된 보호의 레벨을 사용한다. 송신단은 비디오 프레임을 포함하는 패킷을 따라 보호 패킷을 수신단으로 전송한다. 수신단에서, 특정 프레임의 패킷 손실이 검출되면, 수신단은 소정의 보호 패킷에 의해 사용되는 보호 인코딩 기법에 기초하여 수신된 임의의 보호 패킷을 사용하여 프레임을 복구하기 위해 시도할 것이다.
이 요약은 이하의 상세한 설명에서 보다 상세하게 기술되는 간략화된 형태의 개념의 선택을 소개하기 위해 제공된다. 이 요약은 주장되는 청구 대상의 주요 특성이나 핵심 특성을 식별하기 위함이 아니며, 주장되는 청구 대상의 범위를 제한하는데 사용되기 위함이 아니다.
도 1은 일 실시예에서 오류 정정 시스템의 구성요소를 도시하는 블록도.
도 2A 및 2B는 일 실시예의 비디오 스트림의 예시적인 일련의 프레임을 도시하는 도면.
도 3은 일 실시예에 있어서 송신단이 수신단으로 비디오 데이터를 전송하는 일반적인 네트워킹 환경을 도시하는 도면.
도 4는 일 실시예에서 비디오 데이터를 복수의 수신단으로 보내기 위한 네트워킹 환경을 도시하는 도면.
도 5는 일 실시예의 시스템의 데이터 전송 구성요소의 프로세싱을 도시하는 도면.
도 6은 일 실시예에 있어서 복수의 수신단을 가지는 비디오 컨퍼런스 환경의 시스템의 데이터 전송 구성요소의 프로세싱을 도시하는 순서도.
오류 정정 시스템이라 불리는, 비디오 전송 상의 패킷 손실의 영향을 감소시키기 위한 방법 및 시스템이 제공된다. 오류 정정 시스템은, 송신단에 의해 수신단으로 전송되는 비디오 데이터의 프레임에 사용될 오류 정정 보호의 레벨을 패킷 손실의 예상 효과뿐만 아니라, 프레임들 사이의 의존성에 기초한 프레임의 중요성, 프레임 크기, 패킷 손실 확률, 히스토리컬 패킷 손실 패턴, CPU 로드 및 사용가능한 네트워크 대역폭에 기초하여 결정한다. 송신단은 0에서부터(보호 없음) N(0보다 큰 임의의 수)까지의 범위의 보호의 레벨을 프레임에 사용할 수 있으며, 각각의 다음 수는 더 높은 보호의 레벨을 포함한다. 일반적으로 각 다음 보호의 레벨은 더 많은 복구 데이터를 포함하며 복구 데이터를 생성하기 위해 추가의 계산 리소스 를 소비한다. 비디오 품질상의 패킷 손실의 영향을 예측하기 위한 수학적 모델이 본 명세서에 참조로 통합되는 "비디오 속성의 동적 조절(Dynamic Modification of Video Properties)"의 제목으로 2006년 10월 31일에 출원한 미국 특허 출원 번호 제11/591,297호에 기술되었다. 여러 수학적 모델을 사용하여, 오류 정정 시스템은 패킷 손실의 목표 레벨을 제공하는 보호의 레벨을 결정할 수 있다.
오류 정정 시스템은 선택된 보호의 레벨 패킷을 생성하기 위해 터보 코덱(Turbo codec) 또는 리드 솔로몬 코덱(Reed-Solomon codec)과 같은 채널 보호 코덱에 선택된 보호의 레벨을 전달한다. 송신단은 비디오 프레임을 포함하는 패킷과 함께 보호 패킷을 수신단으로 전송한다. 예를 들어, 송신단은 비디오 프레임 패킷 다음에 보호 패킷을 첨부할 수 있거나 별도의 페이로드(payload)로 다른 연결 상에 보호 패킷을 전달할 수 있다. 수신단에서 특정 프레임에 대한 패킷 손실이 검출되는 경우, 수신단은 소정의 보호 패킷에 의해 사용되는 보호 인코딩 기법에 기초하여 수신된 임의의 보호 패킷을 사용하여 프레임을 복구하기 위해 시도할 것이다. 따라서, 오류 정정 시스템은 송신단과 수신단 사이의 연결의 특성에 기초하여 적절한 보호의 레벨을 선택하는 효과적인 방법을 제공한다.
오류 정정 시스템은 수신된 패킷의 효율성의 증가를 생성한다. 예를 들어, 종래의 시스템에 있어서 서버는 300kbps의 속도로 데이터를 전송할 수 있었으나, 수많은 손실된 I 프레임으로 인해서, 사용자에 의해 인식되는 실제 수신 속도는 128kbps 비디오 속도와 동일할 수 있다. 오류 정정 시스템을 사용하여, 손실되거나 손상되어 도착한 더 많은 I 프레임이 수신단에 의해 복구된다. 따라서, 300kbps의 속도로 보내는 서버는 270kbps 또는 그 이상의 수신 속도를 생성할 수 있다(왜냐하면, 덜 중요한 프레임의 일부 패킷 손실도 있을 수 있기 때문이다). 따라서, 오류 정정 시스템을 사용하는 효율성은 훨씬 크게 된다. 이는 송신단의 대역폭 비용 감소, CPU 감소 및 수신단의 사용자의 향상된 경험으로 귀결된다.
이하의 상세한 설명은 단일 송신단 및 수신단 사이에 응용가능한 패킷 손실 감소 기술을 설명한다. 그 다음에, 단일 송신단이 여러 수신단으로 보내기 위한 데이터를 제공하는 비디오 컨퍼런싱 서버(video conferencing server)의 맥락으로 여러 기술이 기술된다. 마지막으로, 이러한 기술을 수행하는 패킷 형식이 기술된다.
단일 링크 기술
상기 기술된 바와 같이, 0에서부터(보호 없음) N(0보다 큰 임의의 수)까지 범위의 여러 가능한 보호의 레벨이 있으며, 각각의 다음 수는 더 높은 보호의 레벨을 포함한다. 본 기술 분야의 당업자는 오류 정정 시스템이 특정 보호의 레벨을 생성하기 위해, XOR 논리적 동작(exlusive-OR logical operation), 리드 솔로몬 알고리즘(Reed-Solomon algorithm), 비터비 알고리즘(Viterbi algorithm) 등과 같은 여러 상이한 유형의 오류 정정을 사용할 수 있다는 것을 알 것이다. 각 보호의 레벨은 보호 데이터를 계산하기 위해 크기 및 계산 강도 양자 모두에서 약간 더 비용이 든다. 따라서, 특정 집합의 조건에 대해 최적인 보호의 레벨을 선택하는 것이 바람직하다. 요구되는 보호의 레벨은 프레임의 크기와 패킷 손실의 히스토리컬 퍼센트에 기초하여 결정될 수 있다. 프레임의 크기가 크면, 프레임을 위해 데이터를 운반하는 적어도 하나의 패킷이 손실될 확률이 크며, 따라서 더 높은 보호의 레벨을 요구한다. 유사하게, 히스토리컬 패킷 손실의 레벨이 증가할수록, 손실된 패킷을 복구하기 위한 충분한 정보를 수신단에 제공하기 위해 더 높은 보호의 레벨이 요구된다.
일부 실시예에 있어서, 수신단은 송신단에 히스토리컬 패킷 손실의 표시(indication)를 제공한다. 비디오 데이터는 일반적으로 패킷을 ACK하지 (acknowlege)않는 신뢰불가능한 링크를 통해 보내진다. 그러나, 히스토리컬 패킷 손실을 표시하기 위해 수신단이 송신단과 주기적으로(예를 들어, 매 5초마다) 통신하는 백 채널(back channel)이 있다. 패킷 손실을 결정하는 하나의 방법은 송신단에 의해 보내지는 각각의 패킷에 일련 번호를 할당하는 것이다. 이후에, 수신단은 얼마나 많은 일련 번호가 도착하지 않았는지를 카운트함으로써 패킷 손실을 결정한다.
일부 실시예에 있어서, 오류 정정 시스템은 프레임을 똑같은 크기의 패킷으로 나누도록 시도한다. 일부 오류 정정 알고리즘에 있어서, 보호 패킷은 비디오 프레임의 가장 큰 패킷과 동일한 크기이어야 한다. 따라서, 프레임 데이터를 똑같이 패킷으로 나눔으로써, 오류 정정 시스템은 보호 패킷의 크기를 줄인다. 오류 정정 패킷은 비디오 데이터에 뒤따를 수 있으며, 보호 레벨에 기초한 품질을 가진다. 예를 들어, 오류 정정 시스템이 보호 레벨1을 사용하는 경우, 하나의 오류 정정 패킷이 비디오 데이터에 뒤따를 것이다. 오류 정정 시스템이 보호 레벨2를 사용하는 경우, 두 개의 패킷이 비디오 데이터에 뒤따르는 것 등이다. 보호 패킷의 크기를 줄이는 것은 또한 대역폭을 절약한다.
일부 실시예에 있어서, 비디오 프레임의 마지막 패킷이 다른 패킷보다 짧은 경우, 오류 정정 시스템은 마지막 패킷이 비디오 프레임의 다른 패킷과 유사한 크기를 가지도록 마지막 패킷에 패딩(padding)을 추가한다. 예를 들어, 10,000 바이트의 프레임은 7개의 1,500 바이트의 패킷으로 나뉠 수 있고, 여기서 마지막 패킷은 단지 1,000 바이트이다. 오류 정정은 마지막 패킷이 다른 패킷과 동일한 크기가 되도록 마지막 패킷에 500 바이트의 패딩을 추가할 것이다. 일부 실시예에 있어서, 대역폭을 절약하기 위해 오류 정정 시스템은 송신단에서부터 수신단으로 패딩을 전송하지 않는다. 대신, 수신단은 선행하는 패킷의 크기에 기초하거나 마지막 패킷의 헤더의 정보에 기초하여 패딩을 추가한다. 예를 들어, 수신단이 총 패킷의 크기가 1,500 바이트이여야 한다는 것을 표시하는 헤더를 가지는 1,000 바이트의 패킷을 수신하는 경우, 수신단은 500 바이트의 패딩을 추가할 것이다. 패딩 바이트는 0과 같이 사전 선택된 값을 포함할 수 있다.
일부 실시예에 있어서, 오류 정정 시스템은 보호 패킷으로 보내진 보호 데이터를 사전 계산한다. 오류 정정 계산을 수행하는 것은 비쌀 수 있고, 엔드포인트(endpoint)가 덜 바쁜 경우, 사전 계산은 시간에 대한 비용이 비싼 프로세싱을 상쇄한다. 예를 들어, 임의의 소정 프레임 크기 및 패킷 손실의 레벨에 대해, 엔드포인트는 송신단이 수신단에 연결하기 전에 사용할 적절한 보호의 레벨을 계산할 수 있다. 송신단은 보호 레벨과 패킷 손실의 예상되는 레벨 및 프레임 크기 사이의 맵핑을 포함하는 정보로부터 테이블을 구성할 수 있다. 이후에, 전송하는 동 안, 송신단은 특정 프레임 크기와 패킷 손실의 히스토리컬 레벨에 기초하여 사용할 적절한 보호의 레벨을 룩업(look up)할 수 있다. 본질적으로, 그 오류 보호 레벨은 적응가능하게 되며 시간 가변적이다.
일부 실시예에 있어서, 오류 정정 시스템은 우선적으로 I 프레임 및 SP 프레임에 보호를 사용할 수 있다. 상기 기술된 바와 같이, 송신단은 의존성 구조(dependency structure)를 사용하여 비디오 데이터를 보낼 수 있으므로, 여러 다른 프레임(예를 들어, P 프레임 및 B 프레임)은 I 프레임 및 SP 프레임에 의존한다. P 프레임이 손실되는 경우, 비디오에 아마도 어느 정도의 밀리세컨드 간격(예를 들어, 프레임 속도가 30 프레임/초인 경우 33ms 또는 프레임 속도가 15 프레임/초인경우 66ms)만이 존재하는 반면, I 프레임이 손실된 경우, 잠재적으로 1초 또는 그 이상의 비디오가 손실될 수 있다. 일부 P 프레임 및 B 프레임이 도착할 수도 있으나, 그 기간 동안, 손실된 I 프레임 없이 일관된 비디오 스트림을 유지하기 위한 충분한 정보가 없을 것이다. 실험은 사용자가 일상적인 작은 손실보다 하나의 큰 손실을 더 나쁘게 인식할 수 있다는 것을 보여주고 있다. 따라서, I 프레임 또는 SP 프레임의 손실은 수신단에서 디스플레이되는 비디오의 품질에 더 많은 중요한 영향을 미칠 것이다. I 프레임 및 SP 프레임은 또한 그들의 큰 크기로 인해 손실될 가능성이 훨씬 더 많으며, 따라서 송신단에서 수신단으로 그것들을 전송하는데 요구되는 패킷의 수가 증가한다. 따라서, 오류 정정 시스템은 I 프레임 및 SP 프레임에 대해 증가된 보호를 제공할 수 있다.
일부 실시예에 있어서, 오류 정정 시스템은 비디오 데이터의 특성에 기초하 여 보호 패킷을 추가하지 않는다. 예를 들어, 프레임 크기가 너무 작거나 원하는 비트 속도가 너무 낮은 경우, 보호 패킷을 추가하는 오버헤드가 너무 높을 수 있다. 사실, 작은 프레임 크기에 대해 보호를 추가함으로써 발생되는 증가된 패킷의 수는 패킷 손실의 가능성을 높일 수 있다. 유사하게, 원하는 비트 속도가 지나치게 느린 경우(예를 들어, 50 kbps), 데이터 스트림에 보호 패킷을 추가하는 오버헤드가 지나치게 크므로, 다른 방법의 보호(예를 들어, 패킷 재전송)가 보다 가치 있게 된다.
컨퍼런싱( conferencing )
비디오 컨퍼런싱 서버는 종종 브로드캐스팅을 위해 송신단으로부터 여러 수신단으로의 비디오 데이터를 수신한다. 예를 들어, 프리젠팅 사용자는 비디오 컨퍼런싱 서버가 여러 송신단으로 포워드하는 프리젠테이션을 줄 수 있으며, 각각의 엔드포인트는 컨퍼런스의 참여자를 나타낸다. 이러한 환경에서, 패킷 손실은 송신단 및 비디오 컨퍼런싱 서버 사이, 그리고 비디오 컨퍼런싱 서버 및 임의의 수신단 사이에서 발생할 수 있다. 스케일(scale)하도록 하기 위해서, 비디오 컨퍼런싱 서버는 종종 각각의 엔드포인트의 계산 오버헤드를 줄이도록 디자인된다. 비디오 컨퍼런싱 서버가 각각의 엔드포인트를 위해 사용하는 작은 양의 계산 오버헤드는, 서버가 수천 개의 수신단으로 데이터를 전송하는 경우 현저한 부담이 될 수 있다. 이러한 환경에서 패킷 손실을 처리하고 비디오 컨퍼런싱 서버에 의해 수행되는 프로세싱을 최적화하기 위한 추가의 기술이 이하에서 기술된다.
일부 실시예에 있어서, 오류 정정 시스템은 모든 다운링크에 대해 개별적으 로 사용하기 위한 보호의 레벨을 결정하지 않는다. 대신에 처음 계산은 각각의 다운 링크에 대해 수행될 수 있고, 모든 다운링크에 사용될 수 있는 오류 정정의 레벨을 선택하기 위해 가장 불량한 다운링크가 선택될 수 있다. 또한, 다운링크는 어떤 다운링크가 레벨1 보호가 필요하고, 어떤 다운링크가 레벨2 보호가 필요한지 등의 버킷(bucket)으로 카테고리화될 수 있다. 오류 정정 패킷은 오직 한 번만 형성되고, 정확한 수의 패킷이 각각의 다운링크에 추가된다. 예를 들어, 특정 다운링크가 보호 레벨1을 가지면, 오직 제1 오류 정정 패킷만이 그 다운링크에 추가될 것이다. 또 다른 가능한 최적화는 송신자에게 가장 불량한 경우의 다운링크를 통지하는 것이다. 이러한 예에 있어서, 가장 불량한 다운링크가 보호 레벨3이 필요한 경우, 송신자는 각각의 비디오 프레임에 세 개의 오류 정정 패킷을 전송해야 할 것이다. 이 후에, 비디오 컨퍼런스 서버는 각각의 다운링크가 요구하는 오류 정정 패킷을 포워드할 수 있다. 이렇게 함으로써, 오류 정정 패킷의 계산이 송신자로부터 덜어질 수 있고(offload), 비디오 컨버런스 서버가 낮은 보호의 레벨이 특정 데이터 링크에 대해 수용가능하다는 것을 결정하는 경우, 비디오 컨버런스 서버는 비트 스트림으로부터 오류 보호 패킷을 제거할 수 있다.
일부 실시예에 있어서, 송신단은 단계적인 보호를 사용한다. 단계적인 보호의 레벨을 사용하여, 송신단은 제1 보호 레벨을 가지는 제1 보호 패킷을 보내고, 더 높은 보호 레벨에서 하나 이상의 추가 보호 패킷을 보낸다. 패킷 손실이 발생하면, 송신단은 패킷 손실의 정도 및 손실된 패킷을 복구하기 위해 요구되는 보호의 레벨에 기초하여 사용할 보호 패킷을 선택할 수 있다. 단계화는 보호 패킷을 한번에 생성하고 필요할 때 보호 패킷을 여러 수신단에 사용함으로써 비디오 컨퍼런싱 서버에 의해 수행되는 프로세싱을 줄인다. 예를 들어, 수신단은 작은 비율의 패킷 손실을 가지는 수신단으로 하나의 보호 패킷을 보낼 수 있고, 높은 비율의 패킷 손실을 가지는 수신단으로 동일한 보호 패킷에 더해 추가의 보호 패킷을 보낼 수 있다. 높은 비율의 패킷 손실을 가지는 수신단은 보다 광범위한 오류 복구를 수행하기 위해 추가의 보호 패킷을 사용할 수 있다.
일부 실시예에 있어서, 비디오 컨퍼런싱 서버는 엔드포인트에서 수신한 가장 불량한 경우의 패킷 손실을 표시하는 패킷 손실 리포트를 송신단에 보낸다. 패킷 손실 리포트에 기초하여, 송신자는 보호의 레벨 및 엔드포인트에서 수신한 가장 불량한 경우에 기초한 보호 패킷의 수로 프레임을 보호한다. 비디오 데이터를 수신하면서, 비디오 컨퍼런싱 서버는 각각의 수신단에 의해 경험되는 히스토리컬 패킷 손실에 관한 정보에 기초하여 모든 보호 패킷을 모든 수신단으로 포워드할 수 없다. 예를 들어, 타겟 레벨의 효과적인 패킷 손실을 성취하기 위해 하나의 수신단은 단일 보호 패킷을 요구할 수 있는 방면, 다른 수신단은 두 개의 보호 패킷을 요구할 수 있다. 송신단은 두 개의 보호 패킷을 제공할 수 있고, 비디오 컨퍼런싱 서버는 제1 보호 패킷을 엔드포인트들 중 하나에 보낼 수 있는 반면, 다른 엔드포인트에는 두 개의 모든 보호 패킷을 보낼 수 있다. 이는 비디오 컨퍼런싱 서버에 의해 소비되는 대역폭 및 계산 오버헤드를 줄이면서 그들이 필요한 보호의 레벨을 두 개의 양 엔드포인트에 제공한다.
일부 실시예에 있어서, 비디오 컨퍼런싱 서버는 보호 패킷을 생성하는 부담 을 송신자와 분담한다. 예를 들어, 송신자는 제1 보호 레벨 패킷을 제공할 수 있고, 비디오 컨퍼런싱 서버는 (예를 들어, 히스토리컬 패킷 손실에 기초하여) 추가의 보호를 요구하는 수신단들을 위해 추가의 보호 레벨을 추가할 수 있다. 본 기술분야의 당업자는 송신단과 비디오 컨퍼런싱 서버 사이에 계산 오버헤드를 분담하는데 여러 다른 방법이 사용가능하다는 것을 알 것이다.
일부 실시예에 있어서, 오류 정정 시스템은 주기적으로 특정 수신단에서 사용하기 위한 보호의 레벨을 동적으로 결정한다. 예를 들어, 비디오 컨퍼런싱 서버는 각각의 수신단으로부터 패킷 손실의 주기적(예를 들어, 매 5초마다) 리포트를 수신할 수 있고, 그 리포트에 기초하여 비디오 컨퍼런싱 서버는 전송되는 데이터에 사용할 보호의 레벨을 선택할 수 있다. 특정 연결의 상태가 시간에 따라 변경될 수 있거나 보내지는 데이터의 유형(예를 들어, 프레임 크기)이 변경될 수 있으므로 다양한 보호의 레벨이 보다 효과적이다.
패킷 형식
이하의 설명은 본 명세서에서 기술되는 오류 정정을 구현하기 위한 하나의 패킷 형식을 기술한다. 일반적인 패킷은 형식 적응 헤더(format adaptation header) 및 페이로드를 포함한다. 헤더는 패킷의 페이로드를 기술하고 이 패킷이 네트워크를 통해 보내지는 다른 패킷과 어떻게 관련되는가를 기술하는 정보를 포함한다. 헤더는 패킷의 특성을 특정하는 일련의 플래그를 포함할 수 있다. 페이로드는 비디오 프레임의 비디오 데이터 및 보호 프레임의 오류 정정 데이터를 포함한다.
Figure 112009055694046-PCT00002
이러한 예시적인 패킷 형식에 있어서, 플래그 V는 패킷이 비디오 데이터 또는 보호 데이터(예를 들어, FEC)를 포함하는지를 특정한다. 비디오 패킷에서 P=0 이고, 보호 패킷에서 P=1이다. 패킷은 패킷이 특정 프레임의 데이터를 운반하는 제1(F=1) 패킷 또는 마지막(L=1) 패킷인지를 표시하는 플래그를 포함한다. 패킷은 또한 상기 기술된 바와 같이 적절한 패딩을 추가하기 위해 수신단에 의해 사용될 수 있는 마지막 패킷의 크기를 표시하는 멤버(예를 들어, H- LpktSize 및 L-LpktSize)를 포함한다. 패킷은 또한 수신단이 임의의 패킷이 손실되었는지를 결정하는데 사용될 수 있는 시퀀스 수로서 동작하는 멤버(예를 들어, H-Pkt# 및 L-Pkt#)를 포함한다. 레퍼럴 프레임 # 멤버(Referral Frame # member)는, I 프레임을 참조하는 P 프레임과 같이 디코딩하기 위해 현재 인코딩된 프레임이 의존하는 프레임을 식별한다. 패킷은 또한 일련의 복수의 보호 패킷에서 현재 패킷이 어떤 보호 패킷인지를 표시하는 보호 패킷을 위한 멤버(Offset)도 포함한다. 이 멤버는 보호 패킷도 또한 손실될 수 있기 때문에 사용되며, 보호 패킷이 (마지막 컨텐츠 패킷이 두 개의 패킷 이전이었다는 표시하는) 두 개의 오프셋으로 도착하는 경우, 수신단은 제1 보호 패킷이 손실되었다는 것을 결정할 수 있다. 일부 실시예에 있어서, 버전 정보는 레거시 클라이언트(legacy client)가 새로운 버전의 송신단 또는 비디오 컨퍼런싱 서버와 상호동작할 수 있도록 사용된다.
도면
다음의 설명은 도면을 참조하여 기술되는 실시예의 상세를 도시한다.
도 1은 일 실시예에서 오류 정정 시스템의 구성요소를 도시하는 블록도이다. 오류 정정 시스템(100)은 비디오 데이터 생성 구성요소(produce video data component; 110), 비디오 데이터 패킷화 구성요소(packetize video data component; 120), 보호 레벨 결정 구성요소(determine protection level component; 130), 오류 정정 데이터 생성 구성요소(create error correction data component; 140), 오류 정정 데이터 패킷화 구성요소(packetize error correction data component; 150), 데이터 전송 구성요소(transmit data component; 160), 데이터 수신 구성요소(receive data component; 170) 및 손실된 데이터 복구 구성요소(recover lost data component; 180)를 포함한다. 비디오 데이터 생성 구성요소(110)는, 예를 들어 비디오 입력 장치(예를 들어, 웹캠)로부터 디지털 신호를 캡처링하거나 또는 비디오 데이터를 포함하는 파일을 다시 재생함으로써 비디오 데이터를 생성한다. 비디오 데이터 패킷화 구성요소(120)는 네트워크를 통해 전송하기에 적절한 패킷으로 비디오 데이터를 나눈다. 상기 기술된 바와 같이, 패킷은 전송되는 데이터를 기술하고, 수신된 데이터에 관한 다양한 결정을 하기 위해 수신기에 의해 사용되는 헤더 정보를 포함할 수 있다. 보호 레벨 결정 구성요소(130)는 비디오 데이터 프레임 크기 및 수신단으로부터 수신된 히스토리컬 패킷 손실의 표시에 기초하여 비디오 데이터에 사용되는 적절한 보호의 레벨을 결정한다.
오류 정정 데이터 생성 구성요소(140)는 결정된 보호의 레벨 및 비디오 데이터에 기초하여 오류 정정 데이터를 생성한다. 오류 정정 데이터 패킷화 구성요소(150)는 오류 정정 데이터를 네트워크를 통해 전송하기에 적절한 패킷으로 나눈다. 오류 정정 시스템은 오류 정정 데이터를 생성하는데 사용되는 오류 정정 알고리즘에 기초하여 오류 정정 패킷 결과를 나눌 수 있다. 오류 정정 시스템은 다양한 레벨의 오류 정정을 사용하는 오류 정정 데이터 패킷을 생성하기 위해 하나 이 상의 오류 정정 알고리즘을 사용할 수 있다. 데이터 전송 구성요소(160)는 비디오 데이터 패킷 및 오류 정정 패킷을 송신단으로부터 수신단으로 전송한다. 데이터 수신 구성요소(170)는 송신단으로부터 데이터를 수신하고 임의의 패킷이 손실되었는지를 결정한다. 패킷이 손실되는 경우, 손실된 데이터 복구 구성요소(180)가 임의의 손실된 비디오 데이터 패킷을 복구하기 위해 임의의 수신된 오류 정정 패킷을 사용한다.
시스템이 구현되는 컴퓨팅 장치는 중앙 처리 장치(central processing unit), 메모리, 입력 장치(예를 들어, 키보드 및 포인팅 장치), 출력 장치(예를 들어, 디스플레이 장치) 및 저장 장치(예를 들어, 디스크 드라이브)를 포함할 수 있다. 메모리 및 저장 장치는 시스템을 구현하는 컴퓨터 실행가능 명령어로 인코딩될 수 있는 컴퓨터 판독가능 매체이며, 이는 명령어를 포함하는 컴퓨터 판독가능 매체를 의미한다. 또한, 데이터 구조 및 메시지 구조는 통신 링크 상의 신호와 같이 데이터 통신 매체를 통해 저장되거나 전송될 수 있다. 인터넷, LAN, WAN, 포인트 투 포인트 다이얼 업 연결(point to point dial up connection), 셀 폰 네트워크 등과 같은 다양한 통신 링크가 사용될 수 있다.
시스템의 실시예는 PC, 서버 컴퓨터, 휴대용 또는 랩톱 장치, 멀티프로세서 시스템, 마이크로 프로세서 기반 시스템, 프로그램가능 가전 제품, 디지털 카메라, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 상기의 시스템 또는 장치 중 임의의 것을 포함하는 분산 컴퓨팅 환경 등을 포함하는 다양한 동작 환경에서 구현될 수 있다. 컴퓨터 시스템은 휴대폰, PDA, 스마트 폰, PC, 프로그램가능 가전 제품, 디 지털 카메라, 셋톱박스, IP 웹캠 등일 수 있다.
시스템은 프로그램 모듈과 같은, 하나 이상의 컴퓨터 또는 기타 장치에 의해 실행되는 컴퓨터 실행가능 명령어의 일반적인 맥락에서 설명될 수 있다. 일반적으로, 컴퓨터 모듈은 특정 태스크를 실행하거나 특정 추상화 데이터 유형을 구현하는 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조 등을 포함한다. 일반적으로, 프로그램 모듈의 기능은 다양한 실시예에 기술된 바와 같이 결합되거나 분산될 수 있다.
도 2A 및 2B는 일 실시예의 비디오 스트림에서의 예시적인 일련의 프레임을 도시한다. 인코더는 이미지 데이터의 중복성을 줄이는 방법으로 비디오 스트림에 있는 프레임을 압축하기 위해 사용될 수 있다. 도 2A는 I 프레임(202-204), SP 프레임(206-208), P 프레임(210-216) 및 B 프레임(218-228)으로 구성되는 일련의 프레임(200)을 도시한다. I 프레임(202-204)은 독립형이고, 따라서 I 프레임은 이전 또는 다음 프레임에 대한 참조 없이 인코딩되며, 한 번의 디코딩이 완전한 이미지를 나타내는데 사용될 수 있다. 도 2A에 도시된 바와 같이, I 프레임(202-204)은 직접 또는 간접적으로 SP 프레임(206-208), P 프레임(210-216) 및 B 프레임(218-228)에 대해 예측가능한 참조로서 동작한다. SP 프레임(206-208)은 예측가능하고, 따라서 프레임은 가장 인접한 이전 I 프레임 또는 기타 SP 프레임을 참조하여 인코딩된다. 유사하게, P 프레임(210-216)은 또한 예측가능하고, 따라서 이러한 프레임은 가장 인접한 이전 I 프레임 또는 SP 프레임일 수 있는 조기 프레임(earlier frame)을 참조한다. 도 2A에 또한 도시된 바와 같이, B 프레임(218-228)은 양방향 예측으로 알려진 기술을 사용하여 인코딩되고, 따라서 이미지 데이터는 이전 및 다음 프레임을 참조하여 인코딩된다.
각각의 프레임에 있는 데이터의 양은, 가장 많은 양의 데이터를 포함하는 I 프레임(202-204), SP 프레임(206-208), P 프레임(210-216) 및 B 프레임(218-228)으로 도 2A에 시각적으로 도시되며, 각각은 연속적으로 큰 양의 압축을 제공한다. 본 명세서에서 사용된 바와 같이, "압축 모드"라는 용어는, 특정 프레임 유형(예를 들어, I 프레임, SP 프레임, P 프레임, B 프레임 등)이 네트워크 연결을 통해 전송되기 위해 인코딩되는 경우 인코더의 상태를 지칭한다. 본 기술분야의 당업자는 인코더가 다양한 프레임 유형을 생성하기 위한 다양한 압축 모드를 지원하도록 구성될 수 있다는 것을 알 것이다. 일련의 프레임(200)을 다양한 프레임 유형으로 인코딩하는 것은 전송되는 데이터의 양을 줄이는 반면, 이미지 데이터의 압축은 오류를 영속(perpetuate)시킬 수 있다. I 프레임(202)은 통신 가능하게 연결된 컴퓨터들 사이에 패킷의 집합으로 전송될 수 있다. 그러나, I 프레임(202)에 있는 임의의 패킷이 전송시 손실되는 경우, I 프레임(202)은 오류에 의해 영향 받는 유일한 프레임이 아니다. 대신, 오류는 I 프레임(202)을 직접적으로 또는 간접적으로 참조하는 다른 프레임에 잔존할 수 있다. 예를 들어, 도 2B의 시간라인(250)에 도시된 바와 같이, I 프레임(202)이 오류를 경험하는 경우(이벤트(252)), 오류는 다음 I 프레임(204)이 수신될 때까지(이벤트(254)) 잔존한다. 이러한 예에 있어서, 이벤트(252)와 이벤트(254) 사이에 수신된 프레임은, 일반적으로 비디오 아티팩트의 형태의 품질의 저하를 경험하며, 이는 프레임이 엔드포인트에 의해 정확하게 수 신되는 최근 I 프레임을 사용하여 일반적으로 디코딩되기 때문이다.
상기 제공되는 설명과 유사하게, SP 프레임과 연관된 패킷이 손실되는 경우, 오류는 다른 프레임에 잔존할 수 있다. 예를 들어, 시간라인(250)에 도시된 바와 같이, SP 프레임(206)이 패킷 손실을 경험하는 경우(이벤트(256)), 오류는 다음 I 프레임(204)이 수신될 때(이벤트(254))까지 잔존한다. I 프레임보다 SP 프레임에 더 적게 의존하기 때문에, 패킷 손실의 영향 또한 작다. P 프레임이 패킷 손실을 경험하는 경우, 오직 패킷 손실을 경험한 P 프레임을 참조하는 B 프레임 및 다른 P 프레임만이 오류에 의해 영향 받는다. 마직막으로, B 프레임이 다른 프레임 유형에 의해 참조되지 않기 때문에, B 프레임에 있는 오류는 잔존하지 않는다. 이러한 관찰은, 일부 실시예에 있어서, 오류 정정 데이터가 선택적으로 추가될 수 있고, 특히 참조 데이터 프레임에 한정될 수 있다는 사실에 동기를 부여한다.
도 3은 일 실시예에 있어서 송신단이 수신단으로 비디오 데이터를 전송하는 일반적인 네트워킹 환경을 도시한다. 네트워킹 환경(300)은, 피어 투 피어(peer-to-peer) 네트워크 연결로 통신 가능하게 연결되는 송신 컴퓨터(302) 및 수신 컴퓨터(304)를 포함한다. 이 점에 있어서, 송신 컴퓨터(302) 및 수신 컴퓨터(304)는 네트워크(306)를 통해 데이터를 전달한다. 상기 기술된 바와 같이, 송신 컴퓨터(302)는 사용자와 연관된 네트워크 엔드포인트일 수 있다. 또한, 송신 컴퓨터(302)는 수신 컴퓨터(304)로 비디오 스트림을 중계(relay)함으로써 네트워킹 환경(300)에 있는 노드로 동작할 수 있다. 본 기술분야의 당업자 등은 네트워크(306)가 LAN, 인터넷 또는 WWW로 일반적으로 알려진 글로벌 네트워크와 같은 WAN, 셀룰러 네트워크, IEEE 802.11, 블루투스 무선 네트워크 등으로 구현될 수 있다는 것을 알 것이다.
도 3에 도시된 실시예에 있어서, 비디오 스트림은 입력 장치(308)를 사용하여 애플리케이션 층(305)으로부터 송신 컴퓨터(302)로 입력된다. 입력 장치(308)는, 이에 한정되는 것은 아니나 비디오 카메라, 디지털 카메라, 휴대폰 등을 포함하는 이미지의 스트림을 캡처하는 능력이 있는 임의의 장치일 수 있다. 비디오 스트림이 송신 컴퓨터(304)로 입력되는 경우, 인코더/디코더(310)는 비디오 스트림의 프레임을 압축하기 위해 사용될 수 있다. 본 기술 분야의 당업자는 인코더/디코더(310)가 일련의 프레임 내의 이미지 데이터의 중복성을 줄이는 방법으로 비디오 압축을 수행한다는 것을 알 것이다. 비디오 비트 스트림은, 점진적으로만 서로 다른 일련의 프레임을 일반적으로 포함하기 때문에, 현저한 압축은 다른 프레임의 차이에 기초한 적어도 일부의 프레임을 인코딩함으로써 실현된다. 상기 기술된 바와 같이, 비디오 스트림에 있는 프레임은 기타 프레임 유형(예를 들어, 단방향 B 프레임 등)도 또한 사용될 수 있으나 I 프레임, P 프레임, SP 프레임 및 P프레임으로 인코딩된다. 그러나, 오류가 패킷 손실 또는 기타 비디오 저하를 야기하는 경우, 비디오 스트림을 압축된 프레임으로 인코딩하는 것은 오류를 존속시킬 수 있고 따라서 다중 프레임 상에 존속하는 비디오 아티팩트를 야기한다.
인코더/디코더(310)가 일련의 프레임 내의 이미지 데이터의 중복성을 줄임으로써 비디오 스트림을 압축하면, 네트워크 장치(312) 및 연관된 미디어 전송층(transport layer; 313) 구성요소(도시되지 않음)는 비디오 스트림을 전송한다. 비디오 데이터의 프레임은 실시간 전송 프로토콜(real-time transport protocol; RTP)에 의해 표시되는 표준에 따라 패킷화되고 전송될 수 있다. 본 기술 분야의 당업자 등은 RTP가 실시간 데이터의 전송에 사용될 수 있는 하나의 예시적인 인터넷 표준 프로토콜이라는 것을 알 것이다. 임의의 이벤트에 있어서, 비디오 스트림이 수신되는 경우, 수신 컴퓨터(304) 상의 인코더/디코더(310)는 스트림이 디코딩되서 렌더링 장치(rendering device; 314) 상에서 사용자에게 표시되도록 한다. 렌더링 장치(314)는, 이에 한정되는 것은 아니나 컴퓨터 디스플레이(예를 들어, CRT 또는 LCD 스크린), 텔레비전, 모니터, 프린터 등을 포함하는, 이미지 데이터를 나타내는 능력이 있는 임의의 장치일 수 있다.
컨트롤 층(316)은 비디오 스트림의 전송을 지원하는 애플리케이션과 같은 실시간 속성을 가지는 애플리케이션을 위한 QoS(quality of service) 지원을 제공한다. 품질 컨트롤러(318)는, 이에 한정되는 것은 아니나 패킷 손실 비율, 왕복 시간(round trip times) 등을 포함하는, 비디오 스트림과 연관된 통계를 수집함으로써 QoS 피드백(feedback)을 지원한다. 단지 예시적인 방법으로, 품질 컨트롤러(318)에 의해 수집된 데이터는, 오류 복구가 수행되는 경우 사용될 수 있는 패킷을 식별하기 위해 오류 복구 구성요소(320)에 의해 사용될 수 있다. 추가의 데이터가 이러한 목적을 위해 비디오 스트림을 교환하고 있는 엔드포인트들 사이에 주기적으로 전송될 수 있다. 컨트롤 층(316)의 구성요소는 수집된 QoS 정보에 기초하여 비디오 스트림의 속성을 변경하기 위해 사용될 수 있다.
도 4는 일 실시예에서 비디오 데이터를 복수의 수신단으로 보내기 위한 네트 워킹 환경을 도시한다. 네트워킹 환경(700)은 멀티 포인트 컨트롤 유닛(701)(예를 들어, 비디오 컨퍼런싱 서버), 송신 장치(702) 및 수신 장치(704-708)를 포함하는 복수의 비디오 컨퍼런스 엔드포인트를 포함한다. 또한, 네트워킹 환경(700)은 송신 장치(702)와 멀티 포인트 컨트롤 유닛(701) 사이의 피어 투 피어 네트워크 연결(710) 및 멀티 포인트 컨트롤 유닛(701)과 수신 장치(704-708) 사이의 복수의 다운 스트림 네트워크 연결(712-716)을 포함한다. 일반적으로 기술된 바와 같이, 멀티 포인트 컨트롤 유닛(701)은 비디오 컨퍼런스에 참여할 수 있는 장치의 능력에 관한 정보를 수집한다. 수집된 정보에 기초하여, 네트워크 엔드포인트들 사이의 비디오 스트림의 속성이 설정될 수 있다.
도 5는 일 실시예의 시스템의 데이터 전송 구성요소의 프로세싱을 도시하는 순서도이다. 블록(510)에서, 구성요소는 수신단을 위해 프레임 크기 및 히스토리컬 패킷 손실의 표시를 수신한다. 블록(520)에서, 구성요소는 수신된 프레임 크기 및 히스토리컬 패킷 손실의 표시에 기초하여 사용할 적절한 보호의 레벨을 결정하고, 결정된 보호의 레벨에 기초하여 보호 패킷을 생성한다. 블록(530)에서, 구성요소는 수신단으로 데이터 패킷을 전송한다. 블록(540)에서, 구성요소는 수신단으로 생성된 보호 패킷을 보낸다. 판단 블록(550)에서, 수신단의 데이터 수신 구성요소는 임의의 데이터 패킷이 손실되었는지를 결정한다. 데이터 패킷이 손실된 경우, 구성요소는 블록(560)에 머무르거나, 구성요소는 완료한다. 블록(560)에서, 구성요소는 중복 전송된 데이터를 사용하여 손실된 데이터 패킷을 복구하고 완료한다.
도 6은 일 실시예에서 복수의 수신단을 가지는 비디오 컨퍼런스 환경에 있어서 시스템의 데이터 전송 구성요소의 프로세싱을 도시하는 순서도이다. 블록(610)에서, 구성요소는 네트워크를 통해 전송되는 비디오 데이터를 수신한다. 블록(620)에서 구성요소는 각각의 수신단으로 비디오 데이터를 전송하기 위해 요구되는 가장 높은 보호의 레벨을 결정하고, 따라서 각각의 수신단은 임의의 손실된 비디오 데이터를 복구할 수 있다. 블록(630)에서, 구성요소는 결정된 보호의 레벨에 기초하여 데이터에 함께 보낼 보호 패킷을 생성한다. 블록(640)에서, 구성요소는 제1 수신단을 선택한다. 블록(650)에서, 구성요소는 선택된 수신단에 비디오 데이터를 전송하기 위해 요구되는 보호의 레벨을 결정하고, 따라서 선택된 수신단은 임의의 손실된 비디오 데이터를 복구할 수 있다. 결정에 기초하여, 비디오 데이터를 전송하는 경우 구성요소는 하나 이상의 생성된 보호 패킷을 포함한다. 블록(660)에서, 구성요소는 수신단으로 비디오 데이터 및 보호 패킷을 전송한다. 결정 블록(670)에서, 더 많은 수신단이 있는 경우, 구성요소는 다음 수신단을 선택하기 위해 블록(640)을 반복하거나, 구성요소는 완료한다.
결론
전술한 것으로부터, 오류 정정 시스템의 특정 실시예가 예시를 목적으로 본 명세서에서 기술되었으나, 다양한 수정이 본 발명의 사상 및 범위를 벗어나지 않고 만들어질 수 있다. 예를 들어, UDP가 오류 정정 시스템이 사용될 수 있는 프로토콜의 하나의 유형으로 기술되었으나, RTP(Real-Time Protocol) 및 RTCP(Real-Time Control Protocol)와 같은 기타 여러 프로토콜 또한 사용될 수 있다. 따라서, 본 발명은 첨부된 특허청구범위를 제외하고 한정되지 않는다.

Claims (26)

  1. 송신단(sending endpoint)과 수신단(receiving endpoint) 사이에서 데이터를 전송하는 경우의 패킷 손실(packet loss)의 영향을 줄이기 위한 컴퓨터 시스템에서의 방법으로서,
    데이터 크기 및 이전 기간 동안의 패킷 손실률의 표시를 수신하는 단계(510);
    상기 수신된 데이터 크기 및 상기 패킷 손실률의 표시에 기초하여 사용할 보호 레벨을 결정하는 단계(520);
    상기 데이터를 포함하는 하나 이상의 데이터 패킷을 상기 수신단으로 전송하는 단계(530); 및
    상기 결정된 보호 레벨에 기초하여 하나 이상의 보호 패킷을 상기 수신단으로 전송하는 단계(540)를 포함하고,
    상기 하나 이상의 보호 패킷은 상기 수신단이 손실된 데이터 패킷을 복구할 수 있는 정보를 포함하며, 따라서 데이터 패킷이 손실된 경우, 상기 수신단은 상기 송신단과의 추가의 통신 없이 상기 보호 패킷을 이용하여 상기 모든 데이터를 구할 수 있는 방법.
  2. 제1항에 있어서,
    적어도 하나의 보호 레벨은 XOR(exclusive OR) 동작을 상기 데이터에 적용하 는 방법.
  3. 제1항에 있어서,
    적어도 하나의 보호 레벨은 리드 솔로몬 알고리즘(Reed-Solomon Alogorithm)을 상기 데이터에 적용하는 방법.
  4. 제1항에 있어서,
    보호 레벨을 프레임 크기 및 패킷 손실률에 맵핑하는 테이블을 생성하는 단계를 포함하고,
    상기 사용할 보호 레벨을 결정하는 단계는 상기 테이블에서 상기 보호 레벨을 룩킹 업(looking up)하는 것을 포함하는 방법.
  5. 제1항에 있어서,
    상기 보호 패킷은 단계적인 보호 레벨을 포함하는 방법.
  6. 제1항에 있어서,
    상기 패킷 손실률을 수신하는 단계는 상기 수신단으로부터 패킷 손실 리포트를 수신하는 것을 포함하는 방법.
  7. 제1항에 있어서,
    상기 사용할 보호 레벨을 결정하는 단계는 비디오 프레임의 유형을 결정하고, 다른 프레임이 의존하는 프레임 유형에 더 높은 보호 레벨을 적용하는 것을 포함하는 방법.
  8. 제1항에 있어서,
    상기 사용할 보호 레벨을 결정하는 단계는 사전 정의된 임계값 이하의 크기를 가지거나 사전 정의된 비트레이트(bitrate) 이하의 비디오 데이터를 포함하는 데이터에 보호를 적용하지 않는 것을 포함하는 방법.
  9. 제1항에 있어서,
    상기 송신단은 복수의 수신단을 서빙(serving)하는 비디오 컨퍼런싱 서버(video conferencing server)인 방법.
  10. 네트워크 상의 비디오 컨퍼런싱 서버를 통해 송신단으로부터 수신단으로 전송되는 비디오 컨퍼런싱 데이터 상의 패킷 손실의 영향을 줄이기 위한 컴퓨터 시스템으로서,
    상기 송신단으로부터 비디오 컨퍼런스 데이터를 수신하도록 구성되는 비디오 컨퍼런스 데이터 수신 구성요소(170);
    상기 비디오 컨퍼런스 데이터에 기초하여 오류 정정 데이터를 생성하도록 구성되는 오류 정정 구성요소(140) - 상기 오류 정정 데이터는 상기 비디오 컨퍼런스 데이터의 손실된 부분을 복구하기 위한 정보를 제공하고 하나 이상의 보호 레벨에 기초하여 패킷으로 나뉨 -; 및
    상기 송신단으로부터 수신된 상기 비디오 컨퍼런스 데이터를 복수의 수신단으로 포워딩하도록 구성되는 비디오 컨퍼런스 데이터 송신 구성요소(160) - 상기 비디오 컨퍼런스 데이터 송신 구성요소는, 상기 비디오 컨퍼런스 데이터 및 상기 수신단과의 연결의 특성들에 기초하여 각각의 수신단으로 전송할 상기 오류 정정 데이터의 패킷들을 결정하고, 따라서 상기 오류 정정 데이터는 각 수신단을 위해 개별적으로 생성되지 않음 -;
    를 포함하는 컴퓨터 시스템.
  11. 제10항에 있어서,
    상기 오류 정정 구성요소는 상기 송신단으로부터 상기 오류 정정 데이터를 수신하는 컴퓨터 시스템.
  12. 제10항에 있어서,
    상기 오류 정정 구성요소는 상기 비디오 컨퍼런싱 서버에서 상기 오류 정정 데이터를 생성하는 컴퓨터 시스템.
  13. 제10항에 있어서,
    상기 송신단은 상기 오류 정정 데이터의 일부를 생성하고, 상기 비디오 컨퍼 런싱 서버는 상기 오류 정정 데이터의 다른 일부를 생성하는 컴퓨터 시스템.
  14. 제10항에 있어서,
    상기 오류 정정 구성요소는 상기 송신단으로 원하는 보호 레벨의 표시를 전송하고, 상기 송신단으로부터 상기 원하는 보호 레벨에 기초한 오류 정정 데이터를 수신하는 컴퓨터 시스템.
  15. 제10항에 있어서,
    상기 비디오 컨퍼런스 데이터 송신 구성요소는 각 수신단으로 전송할 상기 오류 정정 데이터의 패킷을 주기적으로 다시 결정하는 컴퓨터 시스템.
  16. 제10항에 있어서,
    상기 수신단으로 전송되는 패킷은 디지털 비디오 비트스트림(bitstream)의 오류 정정 데이터의 존재 및 위치에 관한 정보를 포함하는 형식 적응 헤더(format adaptation header)를 포함하는 컴퓨터 시스템.
  17. 제10항에 있어서,
    상기 오류 정정 구성요소는 상기 비디오 프레임의 유형에 기초하여 특정 비디오 프레임을 위해 오류 정정 데이터가 생성되어야 하는지를 결정하는 컴퓨터 시스템.
  18. 제10항에 있어서,
    상기 오류 정정 구성요소는 상기 네트워크의 히스토리컬 상태에 관한 통계에 기초하여 오류 정정 데이터를 생성하는 컴퓨터 시스템.
  19. 제10항에 있어서,
    적어도 하나의 수신단은 상기 비디오 컨퍼런싱 서버로부터 수신된 정보에 기초하여 하나 이상의 비유효 패킷을 복구하기 위해 오류 정정 데이터를 사용할지를 결정하는 컴퓨터 시스템.
  20. 제10항에 있어서,
    상기 비디오 컨퍼런스 데이터는 버전 정보를 포함하며, 따라서 레거시 클라이언트(legacy client)는 새로운 비디오 컨퍼런싱 서버와 상호동작할 수 있는 컴퓨터 시스템.
  21. 제10항에 있어서,
    헤더 및 페이로드를 포함하는 패킷을 형성하는 매체 전송 패킷화기(media transport packetizer)를 포함하며, 상기 헤더는 비디오 비트스트림의 다른 프레임 에 대한 현재 프레임의 임의의 의존성을 수신단에 표시하는 컴퓨터 시스템.
  22. 수신단에서 손실된 패킷을 복구하기 위해 컴퓨터 시스템을 제어하기 위한 명령어들을 포함하는 컴퓨터 판독가능 매체로서,
    하나 이상의 데이터 패킷으로 나뉘는 비디오 데이터를 송신단으로부터 수신하는 단계(540);
    하나 이상의 보호 패킷으로 나뉘는 오류 정정 데이터를 상기 송신단으로부터 수신하는 단계(540);
    상기 송신단에 의해 전송된 적어도 하나의 데이터 패킷이 상기 수신단에 의해 수신되지 않았다는 것을 결정하는 단계(550); 및
    수신되지 않은 상기 적어도 하나의 데이터 패킷을 복구하기 위해 상기 하나 이상의 보호 패킷으로부터 상기 오류 정정 데이터를 사용하는 단계(560)
    를 포함하는 컴퓨터 판독가능 매체.
  23. 제22항에 있어서,
    상기 데이터 패킷의 헤더에 있는 정보에 기초하여 데이터 패킷에 패딩(padding)을 추가하는 단계를 포함하는 컴퓨터 판독가능 매체.
  24. 제22항에 있어서,
    상기 송신단으로 패킷 손실의 표시를 주기적으로 전송하는 단계를 포함하는 컴퓨터 판독가능 매체.
  25. 제22항에 있어서,
    상기 적어도 하나의 데이터 패킷이 수신되지 않았다는 것을 결정하는 단계는 각 수신된 데이터 패킷의 일련 번호를 검출하는 것을 포함하는 컴퓨터 판독가능 매체.
  26. 제22항에 있어서,
    각 보호 패킷은 상기 보호 패킷에 있는 상기 오류 정정 데이터에 의해 제공되는 보호 레벨의 표시를 포함하는 컴퓨터 판독가능 매체.
KR1020097018917A 2007-03-14 2008-02-28 비디오 전송 중 패킷 손실의 영향 줄이기 KR20090119898A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/686,198 US7957307B2 (en) 2007-03-14 2007-03-14 Reducing effects of packet loss in video transmissions
US11/686,198 2007-03-14

Publications (1)

Publication Number Publication Date
KR20090119898A true KR20090119898A (ko) 2009-11-20

Family

ID=39759905

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097018917A KR20090119898A (ko) 2007-03-14 2008-02-28 비디오 전송 중 패킷 손실의 영향 줄이기

Country Status (7)

Country Link
US (1) US7957307B2 (ko)
EP (1) EP2132908A1 (ko)
KR (1) KR20090119898A (ko)
CN (1) CN101636983B (ko)
BR (1) BRPI0808629A2 (ko)
RU (1) RU2009134145A (ko)
WO (1) WO2008112441A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102009047737A1 (de) 2008-12-23 2010-07-01 Cheil Industries Inc., Kumi Epoxyverbindung für ein Flüssigkristallphotoausrichtungsmittel, Flüssigkristallphotoausrichtungsmittel und Flüssigkristallphotoausrichtungsfilm
WO2014104501A1 (ko) * 2012-12-28 2014-07-03 삼성에스디에스 주식회사 데이터 전송 장치 및 방법
KR101416901B1 (ko) * 2013-06-19 2014-07-08 주식회사 케이티 손실된 영상 패킷을 복구하는 방법 및 장치

Families Citing this family (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10201760B2 (en) 2002-12-10 2019-02-12 Sony Interactive Entertainment America Llc System and method for compressing video based on detected intraframe motion
US20090118019A1 (en) 2002-12-10 2009-05-07 Onlive, Inc. System for streaming databases serving real-time applications used through streaming interactive video
US9138644B2 (en) 2002-12-10 2015-09-22 Sony Computer Entertainment America Llc System and method for accelerated machine switching
US9314691B2 (en) 2002-12-10 2016-04-19 Sony Computer Entertainment America Llc System and method for compressing video frames or portions thereof based on feedback information from a client device
US8366552B2 (en) 2002-12-10 2013-02-05 Ol2, Inc. System and method for multi-stream video compression
US9061207B2 (en) 2002-12-10 2015-06-23 Sony Computer Entertainment America Llc Temporary decoder apparatus and method
US9077991B2 (en) 2002-12-10 2015-07-07 Sony Computer Entertainment America Llc System and method for utilizing forward error correction with video compression
US8526490B2 (en) 2002-12-10 2013-09-03 Ol2, Inc. System and method for video compression using feedback including data related to the successful receipt of video content
US9108107B2 (en) * 2002-12-10 2015-08-18 Sony Computer Entertainment America Llc Hosting and broadcasting virtual events using streaming interactive video
US8964830B2 (en) 2002-12-10 2015-02-24 Ol2, Inc. System and method for multi-stream video compression using multiple encoding formats
US8549574B2 (en) 2002-12-10 2013-10-01 Ol2, Inc. Method of combining linear content and interactive content compressed together as streaming interactive video
US8711923B2 (en) 2002-12-10 2014-04-29 Ol2, Inc. System and method for selecting a video encoding format based on feedback data
US9192859B2 (en) 2002-12-10 2015-11-24 Sony Computer Entertainment America Llc System and method for compressing video based on latency measurements and other feedback
US9446305B2 (en) 2002-12-10 2016-09-20 Sony Interactive Entertainment America Llc System and method for improving the graphics performance of hosted applications
US8885632B2 (en) 2006-08-02 2014-11-11 Silver Peak Systems, Inc. Communications scheduler
US7978669B2 (en) * 2007-05-09 2011-07-12 Cisco Technology, Inc. Methods and apparatus for efficient MPEG transmission over 802.11
EP2019522B1 (en) * 2007-07-23 2018-08-15 Polycom, Inc. Apparatus and method for lost packet recovery with congestion avoidance
JP4412369B2 (ja) * 2007-09-04 2010-02-10 日本電気株式会社 分散型処理システム、分散型処理方法、端末、及び、プログラム
US9168457B2 (en) 2010-09-14 2015-10-27 Sony Computer Entertainment America Llc System and method for retaining system state
US10805840B2 (en) 2008-07-03 2020-10-13 Silver Peak Systems, Inc. Data transmission via a virtual wide area network overlay
US9717021B2 (en) 2008-07-03 2017-07-25 Silver Peak Systems, Inc. Virtual network overlay
US10164861B2 (en) 2015-12-28 2018-12-25 Silver Peak Systems, Inc. Dynamic monitoring and visualization for network health characteristics
US8489954B2 (en) * 2008-08-29 2013-07-16 Ntt Docomo, Inc. Method and apparatus for reliable media transport
US8243117B2 (en) * 2008-09-26 2012-08-14 Microsoft Corporation Processing aspects of a video scene
US8804821B2 (en) * 2008-09-26 2014-08-12 Microsoft Corporation Adaptive video processing of an interactive environment
JP5086285B2 (ja) * 2009-01-22 2012-11-28 株式会社日立製作所 映像配信システム,映像配信装置,及び同期補正処理装置
WO2010099801A1 (en) * 2009-03-04 2010-09-10 Telefonaktiebolaget Lm Ericsson (Publ) Processing of multimedia data
KR101566004B1 (ko) * 2009-03-05 2015-11-06 삼성전자주식회사 엔드 포인트를 복수개로 분할 가능한 반도체 장치
FI20095273A0 (fi) * 2009-03-17 2009-03-17 On2 Technologies Finland Oy Digitaalinen videokoodaus
US8189492B2 (en) * 2009-03-18 2012-05-29 Microsoft Corporation Error recovery in an audio-video multipoint control component
EP2302845B1 (en) 2009-09-23 2012-06-20 Google, Inc. Method and device for determining a jitter buffer level
EP2405661B1 (en) 2010-07-06 2017-03-22 Google, Inc. Loss-robust video transmission using two decoders
US8630412B2 (en) 2010-08-25 2014-01-14 Motorola Mobility Llc Transport of partially encrypted media
US8477050B1 (en) 2010-09-16 2013-07-02 Google Inc. Apparatus and method for encoding using signal fragments for redundant transmission of data
US8856212B1 (en) 2011-02-08 2014-10-07 Google Inc. Web-based configurable pipeline for media processing
US8995306B2 (en) 2011-04-06 2015-03-31 Cisco Technology, Inc. Video conferencing with multipoint conferencing units and multimedia transformation units
US9014265B1 (en) 2011-12-29 2015-04-21 Google Inc. Video coding using edge detection and block partitioning for intra prediction
US8819513B2 (en) 2012-01-13 2014-08-26 Microsoft Corporation Lost real-time media packet recovery
US9179196B2 (en) * 2012-02-22 2015-11-03 Adobe Systems Incorporated Interleaved video streams
HUE063722T2 (hu) * 2012-04-25 2024-01-28 Samsung Electronics Co Ltd Eljárás adatok átvitelére multimédia átviteli rendszerben
KR101801565B1 (ko) * 2012-06-05 2017-11-27 한국전자통신연구원 통신 시스템에서 데이터 송수신 장치 및 방법
US9667756B2 (en) * 2012-06-05 2017-05-30 Electronics And Telecommunications Research Institute Apparatus and method for transmitting/receiving data in communication system
GB201210779D0 (en) 2012-06-18 2012-08-01 Microsoft Corp Correction data
CN104394485B (zh) * 2012-08-21 2017-12-15 华为技术有限公司 视频流的帧大小检测方法及装置
US9210424B1 (en) 2013-02-28 2015-12-08 Google Inc. Adaptive prediction block size in video coding
US9603039B2 (en) 2013-04-03 2017-03-21 Qualcomm Incorporated Opportunistic media patching for a communication session
US9313493B1 (en) 2013-06-27 2016-04-12 Google Inc. Advanced motion estimation
US20150195326A1 (en) * 2014-01-03 2015-07-09 Qualcomm Incorporated Detecting whether header compression is being used for a first stream based upon a delay disparity between the first stream and a second stream
US9813931B2 (en) 2014-07-29 2017-11-07 University Of Ottawa Adaptive packet preamble adjustment
US9438853B2 (en) * 2014-07-29 2016-09-06 Qualcomm Incorporated Receiver driven up-switching in video telephony
US9948496B1 (en) 2014-07-30 2018-04-17 Silver Peak Systems, Inc. Determining a transit appliance for data traffic to a software service
US9363480B2 (en) * 2014-08-20 2016-06-07 Cisco Technology, Inc. Obtaining replay of audio during a conference session
US9875344B1 (en) 2014-09-05 2018-01-23 Silver Peak Systems, Inc. Dynamic monitoring and authorization of an optimization device
CN106534760B (zh) * 2015-09-15 2020-07-28 华为技术有限公司 一种媒体流传输方法、设备及系统
US9807416B2 (en) 2015-09-21 2017-10-31 Google Inc. Low-latency two-pass video coding
US10432484B2 (en) 2016-06-13 2019-10-01 Silver Peak Systems, Inc. Aggregating select network traffic statistics
US10154317B2 (en) * 2016-07-05 2018-12-11 BoxCast, LLC System, method, and protocol for transmission of video and audio data
CN107592540B (zh) 2016-07-07 2020-02-11 腾讯科技(深圳)有限公司 一种视频数据处理方法及装置
US9967056B1 (en) 2016-08-19 2018-05-08 Silver Peak Systems, Inc. Forward packet recovery with constrained overhead
US10771394B2 (en) 2017-02-06 2020-09-08 Silver Peak Systems, Inc. Multi-level learning for classifying traffic flows on a first packet from DNS data
US11044202B2 (en) 2017-02-06 2021-06-22 Silver Peak Systems, Inc. Multi-level learning for predicting and classifying traffic flows from first packet data
US10257082B2 (en) 2017-02-06 2019-04-09 Silver Peak Systems, Inc. Multi-level learning for classifying traffic flows
US10892978B2 (en) 2017-02-06 2021-01-12 Silver Peak Systems, Inc. Multi-level learning for classifying traffic flows from first packet data
US10594661B1 (en) * 2017-06-13 2020-03-17 Parallels International Gmbh System and method for recovery of data packets transmitted over an unreliable network
US20190068678A1 (en) * 2017-08-31 2019-02-28 Whatsapp Inc. Techniques to dynamically engage an all-intra-coded mode for streaming video encoding
US11212210B2 (en) 2017-09-21 2021-12-28 Silver Peak Systems, Inc. Selective route exporting using source type
US10637721B2 (en) 2018-03-12 2020-04-28 Silver Peak Systems, Inc. Detecting path break conditions while minimizing network overhead
CN109150410B (zh) * 2018-10-30 2021-09-24 京信网络系统股份有限公司 数据传输方法和装置
US11088784B1 (en) 2020-12-24 2021-08-10 Aira Technologies, Inc. Systems and methods for utilizing dynamic codes with neural networks
US11477308B2 (en) 2020-12-28 2022-10-18 Aira Technologies, Inc. Adaptive payload extraction in wireless communications involving multi-access address packets
US11575469B2 (en) * 2020-12-28 2023-02-07 Aira Technologies, Inc. Multi-bit feedback protocol systems and methods
US11483109B2 (en) 2020-12-28 2022-10-25 Aira Technologies, Inc. Systems and methods for multi-device communication
US11368250B1 (en) 2020-12-28 2022-06-21 Aira Technologies, Inc. Adaptive payload extraction and retransmission in wireless data communications with error aggregations
US11489624B2 (en) 2021-03-09 2022-11-01 Aira Technologies, Inc. Error correction in network packets using lookup tables
US11489623B2 (en) 2021-03-15 2022-11-01 Aira Technologies, Inc. Error correction in network packets
US11496242B2 (en) 2021-03-15 2022-11-08 Aira Technologies, Inc. Fast cyclic redundancy check: utilizing linearity of cyclic redundancy check for accelerating correction of corrupted network packets

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03141752A (ja) * 1989-10-27 1991-06-17 Hitachi Ltd 画像信号伝送方法
US5608450A (en) * 1994-09-07 1997-03-04 Intel Corporation Video conferencing system with fast packet loss recovery
US5602831A (en) * 1995-03-31 1997-02-11 Seiko Communications Systems, Inc. Optimizing packet size to eliminate effects of reception nulls
US6754181B1 (en) * 1996-11-18 2004-06-22 Mci Communications Corporation System and method for a directory service supporting a hybrid communication system architecture
US6421387B1 (en) * 1998-05-15 2002-07-16 North Carolina State University Methods and systems for forward error correction based loss recovery for interactive video transmission
US6782490B2 (en) * 1999-03-17 2004-08-24 At&T Corp. Network-based service for the repair of IP multicast sessions
US6434191B1 (en) * 1999-09-30 2002-08-13 Telcordia Technologies, Inc. Adaptive layered coding for voice over wireless IP applications
US6971057B1 (en) * 2000-02-25 2005-11-29 Globespanvirata, Inc. System and method for efficient convolutional interleaving/de-interleaving
GB2360178B (en) * 2000-03-06 2004-04-14 Mitel Corp Sub-packet insertion for packet loss compensation in Voice Over IP networks
US6754843B1 (en) * 2000-06-13 2004-06-22 At&T Corp. IP backbone network reliability and performance analysis method and apparatus
US6816194B2 (en) * 2000-07-11 2004-11-09 Microsoft Corporation Systems and methods with error resilience in enhancement layer bitstream of scalable video coding
US7116641B2 (en) * 2000-11-15 2006-10-03 Lg Electronics Inc. Multicast and broadcast transmission method and apparatus of a CDMA mobile communication network
EP1211837A1 (en) * 2000-12-04 2002-06-05 Telefonaktiebolaget Lm Ericsson Unequal error protection in a packet transmission system
US6772388B2 (en) * 2000-12-06 2004-08-03 Motorola, Inc Apparatus and method for providing optimal adaptive forward error correction in data communications
US6970430B2 (en) * 2000-12-29 2005-11-29 Texas Instruments Incorporated Method to measure throughput efficiency of low speed modem relay over packet network
US7103669B2 (en) * 2001-02-16 2006-09-05 Hewlett-Packard Development Company, L.P. Video communication method and system employing multiple state encoding and path diversity
US7151749B2 (en) * 2001-06-14 2006-12-19 Microsoft Corporation Method and System for providing adaptive bandwidth control for real-time communication
BRPI0212000B1 (pt) * 2001-08-23 2017-12-12 Polycom, Inc. "system and method for processing video data"
FI20011715A (fi) * 2001-08-27 2003-02-28 Nokia Corp Koodekin toiminnallisen moodin valinta
US6724727B2 (en) * 2001-12-03 2004-04-20 Nokia Corporation Policy-based forward error correction in packet networks
US7039851B2 (en) * 2002-06-08 2006-05-02 Axiowave Networks, Inc. Method of and apparatus for correcting errors in data packet flow streams as in closed ring sequential address generators and the like without data flow stream interruption
WO2004043068A1 (en) * 2002-11-04 2004-05-21 Tandberg Telecom As Inter-network and inter-protocol video conference privacy method, apparatus, and computer program product
KR20050084284A (ko) * 2002-12-13 2005-08-26 코닌클리즈케 필립스 일렉트로닉스 엔.브이. 게이트웨이를 위한 장치, 전송 장치, 네트워크, 시스템전환 방법, 인코딩된 스트림 전송 방법 및 네트워크 제공방법
US20040240415A1 (en) * 2003-06-02 2004-12-02 Richard Lane Base station-centric method for managing bandwidth and QoS in error-prone system
US20070053445A1 (en) * 2003-09-23 2007-03-08 Koninklijke Philips Electronics, N.V. System and method for providing video content and concealment dependent error protection and scheduling algorithms
FR2861517B1 (fr) * 2003-10-23 2006-01-27 Thomson Licensing Sa Methode de reconstruction de paquets perdus et appareils implementant la methode
EP1555788A1 (en) 2004-01-15 2005-07-20 Alcatel Method for improving the quality of an encoded video bit stream transmitted over a wireless link, and corresponding receiver
US7451381B2 (en) * 2004-02-03 2008-11-11 Phonex Broadband Corporation Reliable method and system for efficiently transporting dynamic data across a network
US7539187B2 (en) * 2004-07-07 2009-05-26 Qvidium Technologies, Inc. System and method for low-latency content-sensitive forward error correction
US8634413B2 (en) * 2004-12-30 2014-01-21 Microsoft Corporation Use of frame caching to improve packet loss recovery
US7415041B2 (en) * 2004-12-31 2008-08-19 Motorola, Inc. Method and apparatus for decoding data in a wireless communication system
US20060291475A1 (en) * 2005-06-28 2006-12-28 Noam Cohen Selective forward error correction
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
US7489675B2 (en) * 2005-09-12 2009-02-10 Motorola, Inc. Method for indicating padding in a digital mobile radio system
CN1984332B (zh) * 2005-12-14 2010-05-26 财团法人工业技术研究院 数据及图像编码之方法与系统
US20090319846A1 (en) * 2006-12-30 2009-12-24 Thomson Corporation Adaptive error correction method for data transmission and devices thereof
US8605779B2 (en) * 2007-06-20 2013-12-10 Microsoft Corporation Mechanisms to conceal real time video artifacts caused by frame loss

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102009047737A1 (de) 2008-12-23 2010-07-01 Cheil Industries Inc., Kumi Epoxyverbindung für ein Flüssigkristallphotoausrichtungsmittel, Flüssigkristallphotoausrichtungsmittel und Flüssigkristallphotoausrichtungsfilm
WO2014104501A1 (ko) * 2012-12-28 2014-07-03 삼성에스디에스 주식회사 데이터 전송 장치 및 방법
KR101416901B1 (ko) * 2013-06-19 2014-07-08 주식회사 케이티 손실된 영상 패킷을 복구하는 방법 및 장치

Also Published As

Publication number Publication date
CN101636983B (zh) 2013-02-13
CN101636983A (zh) 2010-01-27
EP2132908A1 (en) 2009-12-16
WO2008112441A1 (en) 2008-09-18
RU2009134145A (ru) 2011-03-20
US7957307B2 (en) 2011-06-07
US20080225735A1 (en) 2008-09-18
BRPI0808629A2 (pt) 2014-08-05

Similar Documents

Publication Publication Date Title
US7957307B2 (en) Reducing effects of packet loss in video transmissions
RU2497304C2 (ru) Динамическая модификация свойств видео
CN107196746B (zh) 实时通信中的抗丢包方法、装置和系统
CN109729439B (zh) 实时视频传输方法
Wu et al. Enabling adaptive high-frame-rate video streaming in mobile cloud gaming applications
KR101242663B1 (ko) 패킷 송신 장치, 통신 시스템 및 컴퓨터 판독가능한 기록매체
KR100680671B1 (ko) 에러 정정용 데이터의 생성 방법 및 생성 장치와 생성 프로그램을 저장한 컴퓨터 판독가능한 기록 매체
JP2001045098A (ja) データ通信システム、データ通信装置、データ通信方法及び記憶媒体
JP5084362B2 (ja) データ送信装置、及びデータ送受信システム
US20140351638A1 (en) System and method for streaming data
WO2012006744A1 (en) A system and method for transmission of data signals over a wireless network
Wu et al. Modeling and optimization of high frame rate video transmission over wireless networks
JP6412160B2 (ja) 通信装置、通信装置システム及び通信方法
JP2010028378A (ja) 通信装置及び通信方法
JP4702443B2 (ja) 通信システム、通信方法、通信装置、およびプログラム
Soltani et al. Delay constraint error control protocol for real-time video communication
JP2014099708A (ja) 送信装置、受信装置、送信方法、及び受信方法
EP3175617A1 (en) System and method for automatic encoder adjustment based on transport data
JP2010041326A (ja) データ送信装置、データ受信装置及びデータ送受信システム
JP5523163B2 (ja) 送信装置、送信方法、プログラム
EP4024811B1 (en) Method and system for enhancing quality of experience (qoe) of video reception at receiver
Yang et al. An adaptive multi-layer low-latency transmission scheme for H. 264 based screen sharing system
JP4049378B2 (ja) 双方向画像通信システムにおけるサーバ及びその処理方法並びにプログラム
Taylor et al. Run-time allocation of buffer resources for maximizing video clip quality in a wireless last-hop system
Weyulu et al. A dynamic forward error control scheme for video streaming over wireless networks

Legal Events

Date Code Title Description
SUBM Surrender of laid-open application requested