KR20120100851A - 패킷 손실 복구를 개선하기 위한 프레임 캐싱의 이용 - Google Patents

패킷 손실 복구를 개선하기 위한 프레임 캐싱의 이용 Download PDF

Info

Publication number
KR20120100851A
KR20120100851A KR1020120078971A KR20120078971A KR20120100851A KR 20120100851 A KR20120100851 A KR 20120100851A KR 1020120078971 A KR1020120078971 A KR 1020120078971A KR 20120078971 A KR20120078971 A KR 20120078971A KR 20120100851 A KR20120100851 A KR 20120100851A
Authority
KR
South Korea
Prior art keywords
frame
decoder
frames
cache
encoder
Prior art date
Application number
KR1020120078971A
Other languages
English (en)
Other versions
KR101344207B1 (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 KR20120100851A publication Critical patent/KR20120100851A/ko
Application granted granted Critical
Publication of KR101344207B1 publication Critical patent/KR101344207B1/ko

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/164Feedback from the receiver or from the transmission channel
    • H04N19/166Feedback from the receiver or from the transmission channel concerning the amount of transmission errors, e.g. bit error rate [BER]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/188Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a video data packet, e.g. a network abstraction layer [NAL] unit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5603Access techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Radar Systems Or Details Thereof (AREA)

Abstract

패킷 손실 복구 향상을 위하여 프레임 캐싱을 이용하는 다양한 신규 및 불명한 장치 및 방법이 개시된다. 개시된 실시예들중 하나는 인코더 및 그 대응하는 디코더 내에서 주기적이고 동기화된 프레임 캐싱을 이용하는 방법이다. 디코더가 패킷 손실을 발견하는 경우, 그 후에 인코더 및 디코더 모두에 저장되어 있는 공유 프레임들중 하나에 기초하여 프레임을 생성하는 인코더에 통지한다. 디코더가 이 생성된 프레임을 수신하는 경우 그것을 그 로컬 캐시된 프레임을 이용하여 디코드할 수 있다.

Description

패킷 손실 복구를 개선하기 위한 프레임 캐싱의 이용{USE OF FRAME CACHING TO IMPROVE PACKET LOSS RECOVERY}
저작권 승인
본 발명 문서의 개시의 일부는 저작권 보호를 받는 내용을 포함한다. 저작권 소유자는 특허 및 상표청 특허 파일 또는 기록에서 나타나는 바와 같이, 특허의 개시중 어느 하나에 의한 팩시밀리 재생에 대하여는 반대가 없지만, 그 이외에는 모든 저작권은 보유한다.
본 발명은 일반적으로 비디오, 이미지 및 다른 디지털 미디어 컨텐츠에 대한 디지털 인코딩, 디코딩 및 프로세싱을 위한 기술에 관한 것이다. 본 발명은 특히 프레임 캐싱(frame caching)에 의하여 패킷 손실 복구를 개선하는 것에 관한 것이다.
디지털 비디오는 많은 양의 저장 및 송신 용량을 소모한다. 전형적인 미가공(raw) 디지털 비디오 시퀀스는 초당 15 또는 30 프레임을 포함한다. 각각의 프레임은 수만 또는 수십만의 픽셀(펠(pels)로도 호칭함)을 포함할 수 있다. 각각의 픽셀은 픽쳐의 작은 요소를 나타낸다. 미가공 형태에서, 컴퓨터는 통상적으로 전체 24비트인 세 개의 샘플들의 한 세트로서 하나의 픽셀을 나타낸다. 예를 들면, 하나의 픽셀은 픽셀의 그레이 스케일 성분을 정의하는 하나의 8 비트 루미넌스(luminance) 샘플(루마(luma) 샘플로도 호칭함) 및 픽셀의 컬러 성분을 정의하는 두개의 8 비트 크로미넌스(chrominance) 샘플 값들(크로마(chroma) 샘플로도 호칭함)을 포함할 수 있다. 따라서, 전형적인 미가공 디지털 비디오 시퀀스의 초당 비트수, 또는 비트레이트(bitrate)는 초당 5백만 비트 또는 그 이상일 수 있다.
많은 컴퓨터들 및 컴퓨터 네트워크들은 미가공 디지털 비디오를 프로세스하기 위한 리소스들이 부족하다. 이러한 이유로, 엔지니어들은 디지털 비디오의 비트레이트를 감소하기 위하여 압축(코딩 또는 인코딩으로도 호칭함)을 이용한다. 압축은 비디오를 더 낮은 비트레이트 형태로 변환함으로써 비디오를 저장하고 송신하는 비용을 감소시킨다. 압축해제(decompression)(디코딩으로도 호칭함)는 압축된 형태로부터 오리지날 비디오의 버전을 재구성한다. "코덱"은 인코더/디코더 시스템이다. 압축은 무손실일 수 있으며, 이 경우 비디오의 품질은 손상되지 않지만, 비트레이트의 감소는 비디오 데이터의 변화도(variability)의 고유의 양(엔트로피로도 호칭함)에 의하여 제한된다. 또는, 압축은 손실이 있을 수 있으며, 이 경우 비디오의 품질은 손상되지만, 비트레이트의 달성 가능한 감소는 더욱 극적이다. 손실이 있는(lossy) 압축은 종종 무손실 압축과 함께 이용된다 - 손실 있는 압축이 정보의 근사화를 구축하고 무손실 압축 기술들은 상기 근사화를 나타내기 위하여 적용되는 시스템 설계에서.
일반적으로, 비디오 압축 기술은 "인트라픽쳐(intrapicture)" 압축 및 "인터픽쳐(interpicture)" 압축을 포함하며, 이 경우 하나의 픽쳐는 예를 들면, 순차 스캐닝된 비디오 프레임, 인터레이스된 비디오 프레임(비디오 필드들에 대하여 교호하는(alternating) 라인을 가짐), 또는 인터레이스된 비디오 필드이다. 일반적으로, 비디오 시퀀스들은 주어진 하나의 프레임 내에, 그리고 시퀀셜 프레임들 사이에 상당한 양의 리던던시를 포함한다. 예를 들면, 인간의 눈은 일반적으로는 연속적인 비디오 프레임들에서 다른 유사한 배경들에서의 근소한 차이들을 알지 못한다. 압축은 송신되는 비트스트림 내의 리던던트 자료(redundant material)의 특정한 부분을 제거하고, 그 후 그들을 픽쳐가 압축해제되는 경우에 다시 수신단에서 부가함으로써 이 리던던시들을 이용한다. 비디오 프레임들로부터 추출되는 두개의 공통 리던던시들은 공간적 및 시간적이다. 공간적 리던던시들은 단일의 프레임 내에서 인접하는 픽셀들 사이에서 발생한다. 인트라프레임, 또는 I-프레임으로 알려진, 공간적 리던던시들을 이용하여 압축되는 프레임들은 프레임 자체 내에서 이미지를 재구성하는데 필요한 정보를 모두 포함한다 - 그들은 자기포함된다(self-contained). P-프레임 및 B-프레임과 같은, 시간적(temporal) 리던던시들을 이용하는 프레임들은 다른 프레임들로부터의 정보가 디코드되는 것을 요구한다. P-프레임들(예측 인코드된 프레임들)은 인코드되며, 이전의 I- 및/또는 P-프레임들로부터의 정보를 이용하여 디코드되어야 한다. B-프레임들(양방향으로 예측 인코드된 프레임들)은 이전의 및 후속하는 I- 및 P- 프레임들 모두로부터의 정보를 이용하여 인코드된다. 모션 추정(motion estimation)은 기준 프레임으로서 알려진 이전에 인코드된 이미지로부터 생성된 모션 예측 이미지와 함께 고유의 성분(matter)을 인코딩함으로써 계속되는 비디오 프레임들(인터프레임들)에서 시간적 리던던시를 제거한다. 기준 프레임이 손실되면, 그 다음의 예측 프레임들이 해독될 수 없다 - 송신 에러는 계속되는 프레임들로 전파함.
연속하는(progressive) 프레임들의 경우, 인트라픽쳐 압축 기술들은 개별 프레임들(통상적으로 I-프레임 또는 키 프레임으로 호칭함)을 압축하고, 인터픽쳐 압축 기술들은 이전의 및/또는 다음의 프레임들(통상적으로 기준 또는 앵커 프레임들로 호칭함)에 대하여 프레임들(통상적으로 예측 프레임, P-프레임, 또는 B-프레임으로 호칭함)을 압축한다. I-프레임(자기 포함됨) 및 P-프레임(일반적으로 이전 프레임을 의미함)은 스스로 기준 프레임이 될 수 있는 한편, 이전 및 다음의 프레임들 모두를 의미하는 B-프레임들은 통상적으로는 스스로 기준으로서 이용될 수 없다.
결과적인 비디오가 디스플레이되기 전에 데이터가 압축해제되는 경우, 디코더는 통상적으로 압축 동작의 역(inverse)을 수행한다. 예를 들면, 디코더는 데이터를 압축해제하는 동안 엔트로피 디코딩(entropy decoding), 역양자화(inverse quantization), 및 역변환을 수행할 수 있다. 모션 보상이 이용되는 경우, 디코더(및 인코더)는 하나 이상의 이전에 재구성된 프레임들(이제는 기준 프레임들로서 이용됨)로부터 하나의 프레임을 재구성하고, 상기 새로 재구성된 프레임은 그 후 후속하는 프레임들에 대한 모션 보상을 위한 기준 프레임으로서 이용될 수 있다.
네트워크를 통하여 송신된 패킷들은 손실이 있는 경향이 있다 - 패킷들이 드롭됨. 이러한 손실은 랜덤 및 예측불가로 발생한다. 더욱이, 비디오 압축 스트림 데이터는 지연에 매우 민감하며, 패킷들은 그들이 송신된 것과 동일한 순서로 리어셈블될 필요가 있으므로, 너무 많이 지연된 패킷들은 급변하는(jumpy), 인터럽트된 신호를 야기시킨다. 송신 지연 문제는 또한 새로운 I-프레임을 재송신하는 경우에 발생할 수 있으며, 새로운 프레임은 손실된 기준 프레임을 손상시킨 동일한 문제들 모두에 대하여 민감하다. 더욱이, 손실이 많은 코딩 스킴에서, 압축은 저장 및 송신을 위한 타겟 비트레이트(bit-rate)를 만족하도록 설계된다. 높은 압축은 재구성된 이미지의 품질을 저하시킴으로써 성취된다. 따라서, 드롭된 또는 지연된 패킷들에 의하여 야기된 임의의 여분의 손실은 허용 가능한 레이트보다 낮게 이미지를 저하시킬 수 있다.
패킷 손실에 대처하는 능력은 실시간 비디오 코덱(RTC)이 잡음성 네트워크-손실에 민감함-에서 잘 동작하는데 중요하다. 기존의 비디오 코덱의 대부분은 기준 프레임이 손실되는 경우 새로운 I-프레임을 요청함으로써 패킷 손실에 대처한다. 다른 것들은 슬라이스 기반(slice-based) 코딩을 이용하며, 이것은 시그널링 오버헤드(signaling overhead)를 더한다. 도 1은 새로운 I-프레임 요청에 의한 전통적인 패킷 손실 복구를 도시한다.
이 종래의 방법에서, I-프레임(104)은 디코더(102)에서 수신된다. 그 후 그것은 후속하는 종속 P-프레임(106)을 해석/재구성하는데 이용된다. 충분한 패킷들이 부적절하게 수신되거나 손실되므로, 다음의 종속 프레임, P-프레임(108)은 손상된다. 후속하는 P-프레임(110) 및 임의의 후속하는 프레임은 더 이상 재구성될 수 없다. 목적지(destination) 노드에서(여기에서는 디코더(102)에 의하여 표시됨) I-프레임 요청이 생성되며 소스 노드(여기에서는 인코더(114)에 의하여 표시됨)에 송신된다. 각각의 후속하는 P-프레임 또는 B-프레임은 새로운 I-프레임(112)이 수신될 때까지 재구성될 수 없다. 소스 노드(114)가 요청을 수신하면, 새로운 I-프레임(112)을 어셈블하며 그것을 통신 채널을 이용하여 목적지 노드(102)에 송신한다. 새로운 I-프레임(112)을 수신한 후 목적 채널은 후속하는 P-프레임들을 성공적으로 디코드할 수 있다. 그러나, 이것은 초기 요청을 송신하는데 필요한 시간, 더하기 I-프레임을 인코드하는 시간, 더하기 I-프레임을 목적지 노드(102)에 송신하는 시간에 해당하는 지연(116)을 야기시킨다. 더욱이, 송신기와 수신기는 물리적으로 매우 먼 거리만큼 이격될 수 있으며, 롱 트립은 비디오의 품질의 대응하는 저하를 갖는 상당한 래그 시간(lag-time)을 생성한다.
다른 종래의 방법에서는, I-프레임(104, 112)은 규칙적인 간격으로 송신된다. 손상(corruption) 또는 지연으로 인하여 I-프레임(112)이 손실되는 경우, 디코더는 다음의 I-프레임이 수신될 때까지 대기하며, 후속하는 P-프레임(110, 108, 106)을 부정확하게 디코딩한다.
따라서, 손실이 있는 패킷 기반의 네트워크를 통하여 압축된 비디오를 송신하기 위한 향상된 방법 및 시스템에 대한 필요가 존재한다.
발명의 개요
여기에 개시된 비디오 코덱은 인코더에서의 프레임 캐시 및 디코더에서의 대응하는 프레임 캐시를 포함하며, 그 각각은 동기하여 동작할 수 있다. 디코더 캐시에서의 프레임은 디코더에서의 프레임을 해석하는 것을 돕는데 이용된다. 해석될 프레임은 인코더 캐시에 저장된 동일한 프레임의 카피를 이용하여 생성되었을 수 있다.
시스템 구현이 또한 제공된다. 그것은 데이터 패킷을 프레임으로 인코드하는 인코더, 및 프레임 또는 프레임의 일부를 저장할 수 있는 인코더 캐시를 포함한다. 그것은 프레임 또는 그 일부를 저장할 수도 있는, 디코더 캐시를 구비하는, 디코더를 더 포함한다. 디코더는 패킷 손실을 검출하도록 동작 가능하다. 일부 실시예들에서, 그러한 손실이 검출되는 경우, 인코더는 인코더 캐시에 저장된 프레임을 이용하여 프레임을 인코드하며, 그것은 그 후에 디코더 캐시에 저장된 프레임을 이용하여 디코더에서 디코드된다.
캐싱 메커니즘은 다음의 주요 특징을 제공한다:
a) 패킷 손실 복구 동안 더욱 효율적인 대역폭 이용, 및
b) 슬라이스 기반 코딩과 연관된 시그널링 오버헤드 제거.
본 발명의 추가적인 특징 및 장점은 첨부도면들을 참조하여 진행하는 실시예들에 대한 다음의 상세한 설명으로부터 명백해질 것이다.
도 1은 프레임 레벨 패킷 손실 복구의 종래 도면.
도 2는 여기에 개시된 프레임 캐싱을 이용하는 비디오의 블럭도.
도 3은 여기에 개시된 프레임 캐싱을 이용하는 비디오 디코더의 블럭도.
도 4는 프레임 캐싱을 이용하는 패킷 손실로부터의 복구를 위한 예시적인 방법의 흐름도.
도 5a는 프레임을 캐싱하는 인코더 및 동일한 프레임을 캐싱하는 디코더의 프레임 레벨 도면.
도 5b는 디코더에 도달하는 손상된 P-프레임의 프레임 레벨 도면.
도 5c는 P-프레임을 해석하기 위하여 캐시된 프레임을 이용하는 디코더를 설명하는 프레임 레벨 도면.
도 5d는 피드백 채널을 통한 패킷 손실의 리포팅의 블럭도.
도 6은 비디오 인코더/디코더 캐싱을 구현하는 적절한 방법의 흐름도.
도 7은 도 2 및 3의 비디오 인코더/디코더를 위한 적절한 컴퓨팅 환경의 블럭도.
이하의 설명은 비디오 인코더 및 비디오 디코더 모두에서 프레임 캐시의 구현을 위한 것이며, 이것은 적절한 패킷 손실 복구 및 효율적인 대역폭 이용의 효과적인 결합을 제공하도록 설계된다. 프레임 캐시의 예시적인 응용은 이미지 또는 비디오 인코더 및 디코더에 있다. 따라서, 프레임 캐시는 일반화된 이미지 또는 비디오 인코더 및 디코더에 관하여 기술되지만, 대안적으로, 이하에서 기술된 본 예시적인 장치로부터 세부적으로 다를 수 있는 다양한 다른 이미지 및 비디오 코덱들의 인코더 및 디코더에 통합될 수 있다.
1. 일반화된 비디오 인코더 및 디코더
도 2는 일반화된 비디오 인코더(200)의 블럭도이고 도 3은 일반화된 비디오 디코더(300)의 블럭도이며, 여기에서 프레임 캐시들은 통합될 수 있다.
인코더 및 디코더 내의 모듈들 사이에서 도시된 관계들은 인코더 및 디코더에서의 정보의 주요 흐름을 나타내며, 다른 관계들은 간략성을 위하여 도시되지 않는다. 특히, 도 2 및 3은 통상적으로 비디오 시퀀스, 프레임, 매크로블럭, 블럭, 등을 위하여 이용된 인코더 세팅, 모드, 테이블, 등을 나타내는 사이드 정보를 도시하지 않는 것이 보통이다. 그러한 사이드 정보는, 전형적으로는 사이드 정보의 엔트로피 인코딩 후에, 출력 비트 스트림 내에서 송신된다. 출력 비트 스트림의 포맷은 윈도우즈 미디어 비디오 포맷 또는 다른 포맷일 수 있다.
원하는 압축의 실시 및 유형에 따라, 인코더(200) 또는 디코더(300)의 모듈들은 추가되고, 생략되고, 복수의 모듈들로 스플릿되고, 다른 모듈들과 결합되고, 및/또는 동일한 모듈들로 대체될 수 있다. 대안의 실시예에서, 상이한 모듈 및/또는 모듈의 다른 구성들을 갖는 인코더 또는 디코더들은 하나 이상의 원하는 기술들을 수행한다.
A. 비디오 인코더
도 2는 일반적인 비디오 인코더 시스템(200)의 블럭도이다.
인코더 시스템(200)은 현재 프레임(205)을 포함하는 비디오 프레임의 시퀀스를 수신하고, 출력으로서 압축된 비디오 정보(295)를 생성한다. 비디오 인코더의 특별한 실시예들은 통상적으로 일반화된 인코더(200)의 변형 또는 보충된 버전을 이용한다.
인코더 시스템(200)은 예측된 프레임 및 키 프레임을 압축한다. 프리젠테이션을 위하여, 도 2는 인코더 시스템(200)을 통한 키 프레임의 경로 및 포워드 예측(forward-predicted) 프레임들의 경로를 도시한다. 인코더 시스템(200)의 다수의 구성요소들은 키 프레임 및 예측 프레임 모두를 압축하는데 이용된다. 그 구성요소들에 의하여 수행된 정확한 동작들은 압축되는 정보의 유형에 따라 가변할 수 있다.
예측 프레임[P-프레임, B-프레임(양방향 예측), 또는 인터코드된(inter-coded) 프레임일 수 있음]은 하나 이상의 다른 프레임들로부터의 예측(또는 차이)의 관점에서 표현된다. 예측 잔존물은 예측된 것과 오리지날 프레임 사이의 차이이다. 반대로, 키 프레임[I-프레임, 또는 인트라코드된(intra-coded) 프레임으로도 호칭함]은 다른 프레임에 대한 참조 없이 압축된다.
현재 프레임(205)이 포워드 예측된 프레임이라면, 모션 추정기(210)는, 프레임 저장장치(220)에 버퍼된 재구성된 이전의 프레임인, 기준 프레임(225)에 대하여 현재 프레임(205)의 픽셀들의 다른 세트 또는 매크로 블럭들의 모션을 추정한다. 대안의 실시예에서, 기준 프레임은 더 나중의 프레임일 수 있으며 현재 프레임은 양방향으로 예측될 수 있다. 모션 추정기(210)는 사이드 정보로서 모션벡터와 같은 모션 정보(215)를 출력한다. 모션 보상기(230)는 모션 정보(215)를 재구성된 이전의 프레임(225)으로 인가하여 모션 보상된 현재 프레임(235)을 형성한다. 예측은 거의 완벽할 수 없지만, 모션 보상된 현재 프레임(235)과 오리지날 현재 프레임(205) 사이의 차이가 예측 잔존물(245)이다. 또는, 모션 추정기(210) 및 모션 보상기(230)는 모션 추정/보상의 다른 유형을 적용한다.
주파수 변환기(frequency transformer, 260)는 공간 도메인 비디오 정보를 주파수 도메인(즉, 스펙트럴) 데이터로 변환한다. 블럭 기반 비디오 프레임의 경우, 주파수 변환기(260)는 이산 코사인 변환["DCT"]과 유사한 속성을 갖는 다음의 부분들에서 기술된 변환을 적용한다. 일부 실시예에서, 주파수 변환기(260)는 키 프레임들에 대한 공간 예측 잔존물의 블럭들에 주파수 변환을 적용한다. 주파수 변환기(260)는 8x8, 8x4, 4x8, 또는 다른 사이즈 주파수 변환을 적용할 수 있다.
양자화기(270)는 그 후 스펙트럴 데이터 계수의 블럭을 양자화한다. 양자화기(270)는 한 프레임씩(frame-by-frame)을 기초로 또는 다른 기초로 변화하는 스텝사이즈를 갖는 스펙트럴 데이터로의 균일한 스칼라 양자화를 적용한다. 대안적으로 양자화기(270)는 스펙트럴 데이터 계수에 다른 유형의 양자화(예를 들면, 비균일, 벡터, 또는 비적응 양자화)를 적용하거나, 주파수 변환을 이용하지 않는 인코더 시스템의 공간 도메인 데이터를 직접 양자화한다. 적응 양자화(adaptive quantization) 이외에, 인코더(200)는 프레임 드롭핑, 적응 필터링, 또는 레이트 제어(rate control)를 위한 다른 기술들을 이용할 수 있다.
후속하는 모션 추정/보상을 위하여 재구성된 현재 프레임이 필요한 경우, 역양자화기(inverse quantizer, 276)는 양자화된 스펙트럴 데이터 계수들에 대하여 역양자화를 수행한다. 역주파수 변환기(266)는 그 후 주파수 변환기(260)의 동작의 역을 수행하여, 재구성된 예측 잔존물(예측된 프레임에 대하여) 또는 재구성된 키 프레임을 생성한다. 현재 프레임(205)이 키 프레임이었다면, 재구성된 키 프레임은 재구성된 현재 프레임(도시하지 않음)으로서 간주된다. 현재 프레임(205)이 예측된 프레임이었다면, 재구성된 예측 잔존물은 모션 보상된 현재 프레임(235)에 부가되어 재구성된 현재 프레임을 형성한다. 프레임 저장장치(220)는 다음 프레임을 예측하는데 이용하기 위하여 재구성된 현재 프레임을 버퍼한다. 일부 실시예들에서, 인코더(200)는 재구성된 프레임에 디블럭킹 필터(deblocking filter)를 적용하여 프레임의 블럭들에서의 불연속을 적응적으로 완화시킨다.
엔트로피 코더(280)는 어떤 사이드 정보(예를 들면, 모션 정보(215), 양자화 스텝 사이즈)뿐만 아니라, 양자화기(270)의 출력을 압축한다. 전형적인 엔트로피 코딩 기술들은 산술 코딩, 미분 코딩(differential coding), 후프만 코딩(Huffman coding), 런 길이 코딩(run length coding), LZ 코딩, 딕셔너리 코딩, 및 그 조합들을 포함한다. 엔트로피 코더(280)는 통상적으로 상이한 종류의 정보(예를 들면, DC 계수(coefficients), AC 계수, 등)에 대하여 상이한 코딩 기술들을 이용하며, 특정한 코딩 기술 내의 복수의 코드 테이블들 가운데 선택할 수 있다.
엔트로피 코더(280)는 버퍼(290)에 압축된 비디오 정보(295)를 넣는다. 버퍼 레벨 표시자(buffer level indicator)는 비트레이트 적응 모듈로 다시 공급된다. 압축된 비디오 정보(295)는 일정한 또는 비교적 일정한 비트레이트에서 버퍼(290)로부터 비워지며 그 비트레이트에서 후속하는 스트리밍을 위해 저장된다. 대안적으로, 인코더 시스템(200)은 압축 직후에 압축된 비디오 정보(295)를 스트림한다.
버퍼(290) 이전 또는 이후에, 압축된 비디오 정보(295)는 네트워크를 통한 송신을 위하여 채널 코드될 수 있다. 채널 코딩은 에러 검출 및 정정 데이터를 압축된 비디오 정보(295)에 적용할 수 있다.
B. 비디오 디코더
도 3은 일반적인 비디오 디코더 시스템(300)의 블럭도이다. 디코더 시스템(300)은 비디오 프레임의 압축된 시퀀스를 위한 정보(395)를 수신하고, 재구성된 프레임(305)을 포함하여, 출력을 생성한다. 비디오 디코더의 특정한 실시예들은 통상적으로 일반화된 디코더(300)의 변형 또는 보충된 버전을 이용한다.
디코더 시스템(300)은 예측된 프레임 및 키 프레임을 압축해제한다. 프리젠테이션을 위하여, 도 3은 디코더 시스템(300)을 통한 키 프레임들의 경로 및 포워드 예측된 프레임들의 경로를 도시한다. 디코더 시스템(300)의 다수의 구성요소들은 키 프레임 및 예측 프레임 모두를 압축하는데 이용된다. 그 구성요소들에 의하여 수행된 정확한 동작들은 압축되는 정보의 유형에 따라 가변할 수 있다.
버퍼(390)는 압축된 비디오 시퀀스에 대한 정보(395)를 수신하고 수신된 정보를 엔트로피 디코더(380)가 이용 가능하게 한다. 버퍼(390)는 통상적으로 시간에 대하여 매우 일정한 레이트에서 상기 정보를 수신하고, 대역폭 또는 송신에서의 단기 변화를 완화하기 위한 지터 버퍼를 포함한다. 버퍼(390)는 플레이백 버퍼 및 다른 버퍼를 또한 포함할 수 있다. 또는, 버퍼(390)는 변화하는 레이트에서 정보를 수신한다. 압축된 비디오 정보(395)는, 버퍼(390)에 도달하기 전이나, 버퍼(390)를 떠난 후, 또는 모두의 경우에 에러 검출 및 정정에 대하여 디코드되고 프로세스될 수 있다.
엔트로피 디코더(380)는 엔트로피 코드된 양자화된 데이터뿐만 아니라 엔트로피 코드된 사이드 정보(예를 들면, 모션 정보, 양자화 스텝 사이즈)를 디코드하며, 통상적으로 인코더(200)에서 수행된 엔트로피 인코딩의 역을 적용한다. 엔트로피 디코딩 기술들은 산술 디코딩, 미분 디코딩, 후프만 디코딩, 런 길이 디코딩, LZ 디코딩, 딕셔너리 디코딩, 및 그 조합들을 포함한다. 엔트로피 디코더(380)는 자주 상이한 종류의 정보(예를 들면, DC 계수(coefficients), AC 계수, 상이한 종류의 사이드 정보)에 대한 상이한 디코딩 기술들을 이용하고, 특정한 디코딩 기술 내에서 복수의 코드 테이블 가운데 선택할 수 있다.
재구성되는 프레임(305)이 포워드 예측된 프레임이면, 모션 보상기(330)는 기준 프레임(325)에 모션 정보(315)를 적용하여 재구성되는 프레임(305)의 예측(335)을 형성한다. 예를 들면, 모션 보상기(330)는 매크로 블럭 모션 벡터를 이용하여 기준 프레임(325)에서 매크로 블럭을 찾는다. 프레임 버퍼(320)는 기준 프레임으로서 이용하기 위하여 이전에 재구성된 프레임들을 저장한다. 대안적으로, 모션 보상기는 모션 보상의 다른 유형을 적용한다. 모션 보상기(330)에 의한 예측은 거의 완벽하지 않아서, 디코더(300)는 또한 예측 잔존물(345)을 재구성한다.
디코더(300)가 후속하는 모션 보상을 위하여 재구성된 프레임을 필요로 하는 경우, 프레임 저장 장치(320)는 다음 프레임을 예측하는데 이용하기 위하여 재구성된 프레임(305)을 버퍼한다. 일부 실시예에서, 인코더(200)는 재구성된 프레임(305)에 디블럭킹 필터를 적용하여 프레임의 블럭에서의 불연속을 적응적으로 완화한다.
역양자화기(370)는 엔트로피 디코드된 데이터를 역양자화한다. 일반적으로, 역양자화기(370)는 한 프레임씩을 기초로 또는 다른 기초로 변화하는 스텝 사이즈를 갖는 엔트로피 디코드된 데이터로의 균일한, 스칼라 역양자화를 적용한다. 대안적으로, 역양자화기(370)는 데이터에, 예를 들면, 비균일, 벡터, 또는 비적응 양자화와 같은 다른 종류의 역양자화를 적용하거나, 역주파수 변환을 이용하지 않는 디코더 시스템에서의 공간 도메인 데이터를 직접 역양자화한다.
역주파수 변환기(360)는 양자화된, 주파수 도메인 데이터를 공간 도메인 비디오 정보로 변환한다. 블럭 기반의 비디오 프레임들에 대하여, 역주파수 변환기(360)는 이하의 부분에서 기술된 역변환을 적용한다. 일부 실시예들에서, 역주파수 변환기(360)는 키 프레임들에 대한 공간 예측 잔존물들(spatial prediction residuals)의 블럭에 역주파수 변환을 적용한다. 역주파수 변환기(360)는 8x8, 8x4, 4x8, 또는 다른 사이즈 역주파수 변환을 적용할 수 있다.
C. 프레임 캐싱
여기에 기술된 비디오 코덱 아키텍쳐 내에서 프레임 캐싱을 이용하는 구현에서, 기준 프레임들은 인코더 및 디코더 모두에서 순차적으로 캐시되는 것이 바람직하다. 기준 프레임이 손실되는 경우, 후속하는 종속 프레임들은 디코더에서 캐시된 적절한 기준 프레임을 이용하여 디코드될 수 있다. 이것은 다음의 장점을 발생시킨다:
A) 더욱 효율적인 대역폭 이용: 종래기술 방법은 I-프레임이 생성되어 인코더로 송신되는 것을 요구한다. 본 방법은 프레임의 특별한 유형(SP-프레임)이 디코더로 송신되고, 그 후 필요할 때까지 캐시되는 것을 고려한다. SP-프레임은 일반적으로 동일 품질의 I-프레임보다 더 적은 비트로 코드될 수 있으므로, 동등한 I-프레임을 이용하여 더 적은 대역폭을 이용할 수 있다.
B) 더 빠른 에러 복구: 바람직하게는 패킷 손실이 발생할 때 SP-프레임은 이미 디코더에서 캐시되며, 이것은 스트림 내의 다음 P-프레임이 래그 시간이 거의 없이 해석되는 것을 허용한다.
2. 예시적인 방법의 개요
기술된 실시예들은 디코더에서 프레임을 캐싱하고, 그 후 상기 캐시된 프레임들을 이용하여, 손상되거나 손실된 기준 프레임들에 따르는 P-프레임 및 B-프레임을 재구성하기 위한 기술들 및 툴들을 포함한다. 캐시는 비디오 디코더(300)(도 3)의 일부, 비디오 인코더(200)(도 2)의 일부, 또는 바람직하게는, 모두로서 통합될 수 있다. 디코더에 의하여 패킷 손실이 검출되는 경우, 인코더(300)에 메시지를 송신하고, 그 후 공유된 캐시된 프레임들중 하나에 기초하여 새로운 기준 프레임을 생성한다. 생성된 기준 프레임은 그 후 디코더에 송신된다. 캐시된 프레임은 디코더에서 이용되어 다른 기준 프레임이 디코더에 도달할 때까지 상기 생성된 프레임 및 후속하는 종속 프레임들을 디코드한다. 여기에 기술된 흐름도 요소들은 오직 예시적인 것이며, 다른 흐름도 요소들이 상기 설명된 기술들에 따라서 이용될 수 있다. 더욱이, 흐름도 요소들은 상이한 순서로 발생할 수 있거나, 또는 특정한 프로세스 블럭들은 설명된 기술 및 툴에 따라 스킵될 수 있다.
상기 설명된 기술들 및 툴들은 서로 또는 다른 기술 및 툴과 결합하여 이용될 수 있거나, 독립적으로 이용될 수 있다.
도 4를 참조하면, 흐름도(400)는 여기에 기술된 방법들의 개요를 도시한다. 프로세스 블럭 402에서, 네트워크를 통하여 송신될 비디오 신호의 일부가 패킷에 할당된다. 프로세스 블럭 404에서, 인코더는 패킷의 일부 이상을 프레임으로 인코드한다. 이 프레임들은 I-프레임 및 P-프레임과 같은 기준 프레임들(325)로 구성될 수 있고, 또한 임의의 다른 프레임 유형들에 대하여 기준으로서 이용되지 않는 B-프레임으로 구성될 수있다. 스킵 프레임과 같은, 프레임의 다른 유형들이 또한 프레임으로 인코드될 수 있다. 옵션적인 프로세스 블럭 406에서, 일반적으로는 기준 프레임인 프레임이 인코더에서 캐시될 수 있다. 프레임이 캐시되면, 그 프레임 헤더에 유형 "캐시된 프레임"(CF)이 할당된다. 다른 프레임들과 함께, 캐시된 프레임은 그 후 프로세스 블럭 408에서 디코더에 송신된다. 프레임이 디코더에 있으면, 프로세스 블럭 410 에서 디코더 캐시에 캐시된다. 전형적인 캐시된 프레임 유형들은 P-프레임 및 I-프레임이다.
후속하는 기준 프레임이 손실되면, 그 후 상기 캐시된 프레임은, 프로세스 블럭 412에서 도시된 바와 같이, 다음의 종속 프레임을 압축해제하는데 이용될 수 있다. 흐름도(400)는 오직 일 실시예만을 도시하는 것이며 어떤 식으로든 제한으로서 해석되어서는 안된다. 예를 들면, 결정 블럭 406에서 인코더와 연관된 캐시는 옵션적이다. 방법(400)은 도 2 및 3에서 도시된 바와 같이 비디오 코덱에서 구현될 수 있으며, 이것은 소프트웨어, 하드웨어, 또는 그 조합으로 구현될 수 있다.
3. 캐싱 프레임을 위한 예시적인 방법
도 5a 내지 5d는 잡음성 네트워크에서 비디오 코덱의 최적의 성능을 가능하게 하는 캐싱 프레임들의 예시적인 방법을 도시한다. 도 5d를 참조하여, 일 실시예에서, 프레임들은 인코더(502D)로부터 디코더(506D)로, RTP(real time transport protocol)(508D)와 같은, 메인 채널을 통하여 송신된다. 인터넷은 종종 패킷을 손실하거나, 부적절하게 패킷을 전달한다. 패킷들은 또한 랜덤한 시간의 양에 의하여 지연될 수 있으며, 이것은 또한 그들을 사용 불능으로 만들 수 있다. 패킷 손실 이벤트는 디코더(506D)에 의하여 검출되며 디코더로부터 인코더(502D)로 피드백 채널을 통하여 시그널된다. 메시지를 정확히 재구성하기 위하여, 일부 실시예들에서는, RTP(508D) 헤더는 수신기가 패킷을 정확하게 재정렬하고 손실되는 패킷의 수를 결정하는 것을 허용하는 시퀀스 번호 및 정보를 포함한다. RTP(508D)는 데이터 전달을 모니터하는데 이용될 수 있는 피드백 채널을 제공하는데 이용되는 제어 프로토콜(RTPC)(504D)에 의하여 증대된다. 각각의 데이터 패킷은 시퀀스 번호를 가지며, 이것은 통상적으로 각각의 후속하는 데이터 패킷에 대하여 하나씩 증분된다. 일 실시예에서, 시퀀스 번호가 수신되지 않는 경우 디코더(506D)에 의하여 패킷 손실이 검출된다. 디코더(506D)가 손실된 패킷을 발견하면, 피드백 채널(504D)을 통하여 어느 패킷(또는 패킷들)이 손실되었는지를 인코더(502D)에 알리는 메시지를 송신한다. 일부 실시예들에서는, 손실된 초기 패킷에 관한 정보만 제공된다. 다른 실시예들에서, 드롭된 패킷의 수, 또는 손실된 특정 패킷들의 리스트와 같은 추가적인 정보가 또한 제공된다. 패킷 손실의 위치는 바람직하게는 리포팅 윈도우의 최초 패킷 손실의 시간 스탬프를 이용하여 송신된다. 이 정보는 인코더(502D)가 어느 캐시된 기준을 이용할 것인지를 결정하는 것을 가능하게 한다.
도 5a를 참조하여, 인코더(502A)는 프레임 캐시(504A)에 프레임들을 주기적으로 캐시한다. 어느 프레임을 캐시하는지, 얼마나 자주 캐싱이 발생하여야 하는지, 및 한 번에 캐시될 수 있어야 하는 프레임의 수는 매우 실시예 종속적이다. 일부 실시예들에서, 캐시된 프레임들은 기준 프레임, 즉 P-프레임 및 I-프레임이다. 다른 프레임 유형이 또한 캐시될 수 있다. 캐시된 프레임(506A)(또는 그 카피)이 또한 디코더(512A)에 송신된다. 인코더 캐시(504A)에 또한 저장되는 그런 프레임은 프레임 유형 CF(캐시된 프레임)에 대하여 그 헤더에 정의된다. 일부 실시예들에서, 이 헤더는 이 특정한 프레임은 나중의 사용을 위하여 디코더 캐시(510A)에 캐시되어야 하는 것을 디코더(512A)에 알림으로써 인코더(502A) 및 디코더(512A)의 동기화를 허용한다. 아래의 표 1은 캐시된 프레임(CF) 유형을 포함하여, 프레임 유형 코드들의 실시예를 도시한다.
프레임 유형 코드
프레임 유형 코드 워드(바이너리)
I 110
P 0
B 10
BI 1110
SKIP 11111
SP 111100
CF 111101
유형 CF(508A)의 프레임이 디코더(512A)에 도달하는 경우, 디코더 프레임 캐시(510A)에 저장된다. 디코더(512A)에서 유형 CF의 각각의 프레임을 저장하는 것은 인코더 및 디코더 프레임 캐시들(504A 및 510A)을 동기화하는 한 방법이다. 그러나, 이 프레임 캐시들을 동기화하는 다른 방법들도 고려된다.
패킷 손실(502B)이 디코더(504B)에서 검출되는 경우, 피드백 채널(504D)을 이용하여 다시 인코더(502A)로 리포트된다. 이 리포트는, 바람직하게는, 인코더(502A)가 참조하는 정확한 캐시된 프레임(504A)을 선택하도록 하는 시간 스탬프 정보를 포함한다. 다른 실시예에서는 최종 캐시된 프레임이 이용된다. 캐시된 프레임이 선택되면(504C), 다음의 프레임(506C), 바람직하게는 P-프레임을 인코드하기 위하여 인코더(502C)에 의하여 이용되지만, I- 프레임 및 다른 프레임 유형들도 인코드될 수 있다. 캐시된 프레임(506C)을 이용하여 인코드된 이 프레임은 "수퍼-P" 프레임(SP-프레임)으로 알려져 있으며 그 헤더에 있는 것으로서 시그널된다. SP-프레임에 대한 예시적인 프레임 유형 워드는 상기 표 1에 도시된다.
디코더(512C)가 SP-프레임(508C)을 수신하는 경우, 그것을 로컬 캐시된 프레임(510C)을 이용하여 압축해제된 프레임(U-프레임)(514C)으로 디코드한다. 이 방법을 이용하여, 디코더(512C)에서의 복구 시간은 패킷 손실 이벤트와 SP-프레임의 도달 사이의 간격이다. 이 생성된 SP-프레임(508C)이 송신 동안 손실되면, 디코더(512C)는 새로운 기준 프레임(일반적으로 유형 P, SP, 또는 I)이 도달할 때까지 패킷 손실 리포트를 계속 송신할 것이다. 패킷 손실로부터의 실제 복구 시간은 주로 패킷 손실 리포팅 간격의 펑션(function)이다.
일부 실시에서, 인코더(502A)는 프레임(504A)을 캐시하고 캐시된 프레임(506A)의 카피를 디코더로 주기적으로 송신한다. 송신되는 캐시된 프레임들 사이의 시간의 길이는 매우 실시 종속적(implementation-dependent)이다. 일부 실시들은 균등한 간격에서 프레임을 캐시할 수 있다. 다른 실시들은 스스로가 네트워크 속도 또는 네트워크가 경험하고 있는 손실의 양과 같은 시스템 변수들에 의존하는 간격들에서 프레임을 캐시할 수 있다.
4. 예시적인 시스템 구현
도 6은 디코더- 및 인코더-기반 프레임 캐싱을 실시하기 위하여 이용될 수 있는 비디오 시스템(600)의 다른 예시적인 구현을 도시한다. 본 발명은 다양한 일반적- 또는 특수-목적 비디오 시스템에서 실시될 수 있으므로, 비디오 시스템(600)은 본 발명의 기능 또는 사용의 범위에 대한 어떠한 제한을 제시하는 것은 아니다.
비디오 시스템은 하나 이상의 인코더(602)를 포함한다. 이 인코더는 인코더 캐시(604)를 더 포함한다. 상기 실시예에서, 캐시는 인코더(602) 내에 존재하지만, 다른 실시예들에서는 비디오 시스템 내부 이외에 존재할 수 있다. 인코더 캐시(604)는 비디오 프레임(606)의 하나 이상의 부분들을 저장하도록 인에이블된다. 제한이 아닌 제안으로, 프레임의 이 부분들은 다수의 블럭, 매크로 블럭, 다수의 슬라이스, 전체 프레임, 프레임의 그룹, 또는 당업자가 생각할 수 있는 프레임의 임의의 다른 분할로 구성될 수 있다. 인코더 캐시(604)는 오직 하나의 프레임 부분만을 캐시할 수 있거나, 두개의 부분, 또는 주어진 실시에 바람직할 수 있는 임의의 수의 부분들을 캐시할 수 있다. 비디오 시스템(600)은 또한 디코더(608)를 포함한다. 인코더(602)와 유사하게, 디코더(608)는 디코더 캐시(610)를 포함하며, 이것은 비디오 프레임(612)의 하나 이상의 부분들을 저장하는데 이용된다. 이 비디오 프레임 부분들은 하나 이상의 블럭, 매크로 블럭, 슬라이스를 포함할 수 있거나, 전체 프레임, 프레임의 그룹, 또는 당업자가 생각할 수 있는 프레임의 다른 분할을 포함할 수 있다. 디코더 캐시(610)는 하나의 프레임 부분, 두개의 프레임 부분, 또는 임의의 다른 수의 프레임 부분들을 저장하도록 셋업될 수 있다.
비디오 시스템(600)은 또한 동기화기(synchronizer, 614)를 포함하며, 이것은 인코더 캐시(604) 및 디코더 캐시(610)가 실질적으로 유사한 정보를 포함하는 것을 확실히 하기 위하여 이용된다. 전술된 바와 같이, 동기화기는, 특정한 프레임 또는 프레임의 일부가 캐시되는 것을 디코더(608)에 알리는, 인코더(602)에 의하여 인가된, 특정 프레임들 또는 프레임들의 일부에 부가된 고유 프레임 헤더를 포함할 수 있다. 예를 들면, 프레임이 인코더 캐시(604)에 저장되고 또한 디코더(608)에 송신될 수 있다. 그 프레임은 그 카피가 인코더 캐시(604)에 저장된 것을 알리는 특유의 CF(Cached Frame) 헤더를 가질 수 있다. 디코더(608)가 패킷 손실 또는 프레임을 디코딩하는 것을 어렵게 또는 불가능하게 만드는 다른 손상을 검출하는 경우, 인코더 캐시(604)에 저장된 프레임으로부터 인코더(602)에 의하여 인코드되는 후속 프레임은 이 프레임이 디코더 캐시(610)의 프레임으로부터 디코드될 수 있는 것을 알리도록 마크될 수 있다. 일부 실시들은 디코더 캐시(610)에 저장된 복수의 프레임들을 가질 수 있으며, 그러한 경우, 헤더는 또한 어느 캐시된 프레임이 이용되어야 하는지를 결정하기 위하여 충분한 다른 정보를 옵션으로 포함할 수 있다. 동기화의 다른 방법들이 또한 고찰된다. 송신기(616)는 인코더(602)로부터 디코더(608)로 프레임들을 송신한다.
5. 컴퓨팅 환경
전술된 프레임 캐싱의 실시는, 다른 예들 가운데, 컴퓨터, 이미지 및 비디오 리코딩, 송신 및 수신 장치, 포터블 비디오 플레이어 비디오 컨퍼런싱, 웹 비디오 스트리밍 애플리케이션, 등을 포함하는, 이미지 및 비디오 신호 프로세싱이 수행되는 다양한 장치들 중 어느 하나에서 수행될 수 있다. 이미지 및 비디오 코딩 기술들은, 도 7에 도시된 바와 같이, 컴퓨터 또는 다른 컴퓨터 환경에서 실행하는 이미지 및 비디오 프로세싱 소프트웨어(CPU, 또는 전용 그래픽 프로세서, 비디오 카드 등에서 실행)에서 뿐만 아니라, 하드웨어 회로(예를 들면, ASIC, FPGA, 등의 회로에서)에서 실시될 수 있다.
도 7은 전술된 프레임 캐싱이 실시될 수 있는 적절한 컴퓨팅 환경(700)의 일반화된 예를 도시한다. 본 발명은 다양한 일반적- 또는 특수한- 목적의 컴퓨팅 환경에서 실시될 수 있으므로, 컴퓨팅 환경(700)은 본 발명의 이용 또는 기능의 범위에 대하여 제한을 하려는 것이 아니다.
컴퓨팅 환경(700)은 하나 이상의 프로세싱 유니트(710) 및 메모리(720)를 포함한다. 이 가장 기본적인 구성(730)은 점선 내에 포함된다. 프로세싱 유니트(710)는 컴퓨터 실행 가능 명령을 실행하며 실제 또는 가상 프로세서일 수 있다. 멀티 프로세싱 시스템에서, 멀티플 프로세싱 유니트는 컴퓨터 실행가능 명령을 이용하여 프로세싱 파워를 증가시킨다. 메모리(720)는 휘발성 메모리(예를 들면, 레지스터, 캐시, RAM, 등), 비휘발성 메모리(예를 들면, ROM, EEPROM, 플래시 메모리, 등), 또는 둘의 어떤 조합일 수 있다. 메모리(720)는 전술된 인코더/디코더 캐싱을 실시하는 소프트웨어(780)를 저장한다.
컴퓨팅 환경은 추가적인 특징을 가질 수 있다. 예를 들면, 컴퓨팅 환경(700)은 저장장치(740), 하나 이상의 입력장치(750), 하나 이상의 출력장치(760), 및 하나 이상의 통신 접속(770)을 포함한다. 버스, 제어기, 또는 네트워크 상호접속과 같은 상호접속 메커니즘(도시하지 않음)은 컴퓨팅 환경(700)의 구성요소들을 상호접속한다. 통상적으로, 오퍼레이팅 시스템 소프트웨어(도시하지 않음)는 컴퓨팅 환경(700)에서 실행하는 다른 소프트웨어를 위한 오퍼레이팅 환경을 제공하며, 컴퓨팅 환경(700)의 구성요소들의 액티비티(activities)를 조정한다.
저장장치(740)는 분리성 또는 비분리성일 수 있으며, 자기 디스크, 자기 테이프 또는 카세트, CD-ROM, CD-RW, DVD, 또는 정보를 저장하는데 이용될 수 있고 컴퓨팅 환경(700) 내에서 액세스될 수 있는 임의의 다른 매체를 포함한다. 저장장치(740)는 인코더/디코더 캐싱 스킴을 실시하는 소프트웨어(780)를 위한 명령들을 저장한다.
입력장치(들)(750)는 키보드, 마우스, 펜, 또는 트랙볼, 음성 입력장치, 스캐닝 장치, 또는 컴퓨팅 환경(700)에 입력을 제공하는 다른 장치일 수 있다. 오디오의 경우, 입력장치(들)(750)는 사운드 카드 또는 아날로그 또는 디지털 형태로 오디오 입력을 받는 유사한 장치, 또는 컴퓨팅 환경(700)에 오디오 샘플들을 제공하는 CD-ROM 리더일 수 있다. 출력장치(들)(760)는 디스플레이, 프린터, 스피커, CD-라이터, 또는 컴퓨팅 환경(700)으로부터 출력을 제공하는 다른 장치일 수 있다.
통신접속(들)(770)은 통신매체를 통한 다른 컴퓨팅 엔티티로의 통신을 가능하게 한다. 통신매체는 컴퓨터 실행가능한 명령, 압축된 오디오 또는 비디오 정보, 또는 변조된 데이터 신호의 다른 데이터와 같은 정보를 운반한다. 변조된 데이터 신호는 신호에 정보를 인코드하는 것과 같은 방식으로 설정 또는 변경된 하나 이상의 그 특성을 갖는 신호이다. 제한이 아닌, 예로서, 통신매체는 전기적, 광학적, RF, 적외선, 음향, 또는 다른 캐리어로 실시된 유선 또는 무선 기술들을 포함한다.
여기에서의 인코더/디코더 프레임 캐싱 기술은 컴퓨터 판독가능 매체의 일반적인 관점에서 기술될 수 있다. 컴퓨터 판독가능 매체는 컴퓨팅 환경(700) 내에서 액세스될 수 있는 임의의 이용 가능한 매체이다. 제한이 아닌, 예로서, 컴퓨팅 환경(700)으로, 컴퓨터 판독가능 매체는 메모리(720), 저장장치(740), 통신매체, 및 그 임의의 조합을 포함한다.
여기에서의 인코더/디코더 프레임 캐싱은, 프로그램 모듈에 포함된 것들과 같은, 타겟 실제 또는 가상의 프로세서의 컴퓨팅 환경에서 실행되는 컴퓨터 실행가능 명령들의 일반적인 관점에서 기술될 수 있다. 일반적으로, 프로그램 모듈은, 특정한 태스크를 수행하거나 특정한 추상 데이터형을 실행하는 루틴, 프로그램, 라이브러리, 오브젝트, 클래스, 구성요소, 데이터 구조 등을 포함한다. 프로그램 모듈의 기능은 다양한 실시에서 원하는 바대로 프로그램 모듈들 사이에서 결합 또는 분리될 수 있다. 프로그램 모듈에 대한 컴퓨터 실행가능 명령들은 로컬 또는 분산 컴퓨팅 환경 내에서 실행될 수 있다.
프리젠테이션을 위하여, 상세한 설명은 "결정하다", "송신하다", "인코드하다", "디코드하다", 및, "적용(인가)하다"와 같은 용어들을 이용하여 컴퓨팅 환경에서의 컴퓨터 오퍼레이션들을 기술한다. 이 용어들은 컴퓨터에 의하여 수행되는 오퍼레이션에 대한 하이 레벨 추상화(high level abstraction)이며, 인간에 의해 수행되는 행위와 혼동되어서는 안된다. 이 용어들에 대응하는 실제 컴퓨터 오퍼레이션들은 실시에 따라 다르다.
본 발명의 원리가 적용될 수 있는 많은 가능한 실시예들의 관점에서, 상기 상세한 실시예들은 단지 예시인 것이 인식되어야 하며 본 발명의 범위를 제한하는 것으로 간주되어서는 안된다. 오히려, 우리는 우리의 발명으로서 다음의 청구범위 및 그 균등물의 범위 및 사상 내에 포함될 수 있는 모든 실시예들을 청구한다.

Claims (27)

  1. 비디오 디코더를 구현하는 컴퓨팅 시스템에서 비디오 시퀀스의 복수의 프레임(plural frames of a video sequence)을 디코딩하는 방법으로서,
    상기 복수의 프레임 중 제1 프레임에 대한 인코딩된 데이터 - 상기 제1 프레임에 대한 인코딩된 데이터는 상기 제1 프레임에 대한 프레임 헤더를 포함함 - 를 이용하여 상기 제1 프레임을 디코딩하는 단계;
    제1 기준 프레임으로서 이용하기 위하여, 비디오 인코더의 인코더측 프레임 캐시(a encoder-side frame cache)의 제1 부분에 상응하는 디코더측 프레임 캐시(a decoder-side frame cache)의 제1 부분에 상기 제1 프레임 - 상기 제1 프레임에 대한 상기 프레임 헤더는 상기 제1 프레임이 상기 디코더측 프레임 캐시의 제1 부분에 저장되어야 함을 나타내는 정보를 포함함 - 을 저장하는 단계;
    상기 복수의 프레임 중 제2 프레임 - 상기 제2 프레임은 상기 비디오 시퀀스 내에서 상기 제1 프레임에 후속함 - 에 대한 인코딩된 데이터를 이용하여 상기 제2 프레임을 디코딩하는 단계;
    제2 기준 프레임으로서 이용하기 위하여, 상기 디코더측 프레임 캐시의 제1 부분과는 다른 상기 디코더측 프레임 캐시의 제2 부분에 상기 제2 프레임을 저장하는 단계;
    상기 복수의 프레임 중 하나에 대한 인코딩된 데이터의 손실을 검출하는 단계;
    손실 검출 신호(a loss detection signal)를 송신하는 단계; 및
    새로운 프레임에 대한 인코딩된 데이터 - 상기 새로운 프레임에 대한 인코딩된 데이터는, 상기 비디오 인코더의 상기 인코더측 프레임 캐시의 제1 부분에 저장된 상기 제1 기준 프레임과 관련된 상기 새로운 프레임을 인코딩하는 동안에, 상기 손실 검출 신호에 응답하여, 상기 비디오 인코더에서 생성된 것임 - 및 상기 디코더측 프레임 캐시의 제1 부분에 저장된 상기 제1 기준 프레임을 이용하여 상기 새로운 프레임을 디코딩하는 단계를 포함하는
    방법.
  2. 제1항에 있어서,
    상기 복수의 프레임 중 제3 프레임에 대한 인코딩된 데이터의 손실이 있는 - 상기 제3 프레임은 상기 비디오 인코더의 상기 인코더측 프레임 캐시의 제2 부분에 저장된 상기 제2 기준 프레임에 관련하여 인코딩된 것임 -
    방법.
  3. 제1항에 있어서,
    상기 새로운 프레임을 디코딩하는 단계는,
    상기 인코딩된 데이터 내의 인코딩된 변환 계수 및 인코딩된 사이드 정보를 산술 디코딩(arithmetic decoding)하는 단계;
    역양자화된 변환 계수를 생성하기 위하여 상기 변환 계수를 역양자화(inverse quantizing)하는 단계;
    잔여 값을(residual values)를 생성하기 위하여 상기 역양자화된 변환 계수를 역주파수 변환(inverse frequency transforming)하는 단계;
    모션 보상된 예측 값(motion-compensated predictioin values)을 생성하기 위하여 모션 정보 및 상기 디코더측 프레임 캐시의 제1 부분에 저장된 상기 제1 기준 프레임을 이용하여 모션 보상(motion compensation)을 수행하는 단계;
    상기 모션 보상된 예측 값을 상기 잔여 값과 결합하는 단계; 및
    디블럭 필터링(deblock filtering)을 수행하는 단계를 포함하는
    방법.
  4. 제1항에 있어서,
    상기 디코더측 프레임 캐시의 제1 부분의 상기 제1 기준 프레임은, 상기 디코더측 프레임 캐시의 제1 부분에 상기 복수의 프레임 중 어떤 프레임이 저장될 것인지를 나타내는 프레임 헤더의 정보에 따라 업데이터 되며, 상기 디코더측 프레임 캐시의 제2 부분의 상기 제2 기준 프레임은 상기 복수의 프레임 중 다음 프레임(a next frame)을 디코딩하는데에 이용하기 위하여 상기 복수의 프레임 중 현재 프레임을 저장하도록 업데이트 되는
    방법.
  5. 제1항에 있어서,
    상기 인코딩된 데이터는 리얼타임 전송 프로토콜 채널(a real-time transport protocol channel)을 통하여 수신되고, 상기 손실 검출 신호는 리얼타임 제어 프로토콜 채널(a real-time control protocol channel)을 통하여 송신되는
    방법.
  6. 제1항에 있어서,
    상기 복수의 프레임 중 하나에 대한 인코딩된 데이터의 손실을 검출하는 단계는, 상기 인코딩된 데이터의 패킷 손실 또는 오염으로 인한 복수의 패킷에 대한 시퀀스 번호에서의 공백(a gap)을 발견하는 단계를 포함하는
    방법.
  7. 제1항에 있어서,
    상기 새로운 프레임에 대한 인코딩된 데이터를 수신할 때까지 손실 검출 신호 송신을 반복하는 단계를 더 포함하는
    방법.
  8. 비디오 인코더를 구현하는 컴퓨팅 시스템에서 비디오 시퀀스의 복수의 프레임을 인코딩하는 방법으로서,
    상기 복수의 프레임 중 제1 프레임 대한 인코딩된 데이터 - 상기 제1 프레임에 대한 인코딩된 데이터는 상기 제1 프레임에 대한 프레임 헤더를 포함함 - 를 생성하기 위하여 상기 제1 프레임을 인코딩하는 단계;
    제1 기준 프레임으로서 이용하기 위하여, 비디오 디코더의 디코더측 프레임 캐시의 제1 부분에 상응하는 인코더측 프레임 캐시의 제1 부분에 상기 제1 프레임 - 상기 제1 프레임에 대한 상기 프레임 헤더는 상기 제1 프레임이 상기 디코더측 프레임 캐시의 제1 부분에 저장되어야 함을 나타내는 정보를 포함함 - 을 저장하는 단계;
    상기 복수의 프레임 중 제2 프레임 - 상기 제2 프레임은 상기 비디오 시퀀스 내에서 상기 제1 프레임에 후속함 - 에 대한 인코딩된 데이터를 생성하기 위하여 상기 제2 프레임을 인코딩하는 단계;
    제2 기준 프레임으로서 이용하기 위하여, 상기 인코더측 프레임 캐시의 상기 제1 부분과는 다른 상기 인코더측 프레임 캐시의 제2 부분에 상기 제2 프레임을 저장하는 단계;
    상기 복수의 프레임 중 하나에 대한 인코딩된 데이터의 손실을 나타내는 손실 검출 신호를 수신하는 단계; 및
    상기 손실 검출 신호에 응답하여, 새로운 프레임에 대한 인코딩된 데이터를 생성하기 위하여 상기 인코더측 프레임 캐시의 제1 부분에 저장된 상기 제1 기준 프레임에 관련된 상기 새로운 프레임 - 상기 새로운 프레임은 상기 새로운 프레임에 대한 인코딩된 데이터 및 상기 디코더측 프레임 캐시의 제1 부분에 저장된 상기 제1 기준 프레임을 이용하여 상기 비디오 디코더에 의하여 디코딩될 수 있음 - 을 인코딩하는 단계를 포함하는
    방법.
  9. 제8항에 있어서,
    상기 복수의 프레임 중 제3 프레임에 대한 인코딩된 데이터의 손실이 있는 - 상기 제3 프레임은 상기 비디오 인코더의 상기 인코더측 프레임 캐시의 제2 부분에 저장된 상기 제2 기준 프레임에 관련하여 인코딩된 것임 -
    방법.
  10. 제8항에 있어서,
    상기 새로운 프레임을 인코딩하는 단계는,
    모션 보상된 예측 값을 생성하기 위하여 모션 정보 및 상기 인코더측 프레임 캐시의 제1 부분에 저장된 상기 제1 기준 프레임을 이용하여 모션 보상을 수행하는 단계;
    상기 모션 보상된 예측 값을 이용하여 잔여 값을 결정하는 단계;
    변환 계수를 생성하기 위하여 상기 잔여 값을 주파수 변환하는 단계;
    양자화된 변환 계수를 생성하기 위하여 상기 변환 계수를 양자화하는 단계; 및
    상기 양자화된 변환 계수 및 사이드 정보를 산술 코딩(arithmetic coding)하는 단계를 포함하는
    방법.
  11. 제8항에 있어서,
    상기 인코더측 프레임 캐시의 제1 부분의 상기 제1 기준 프레임은, 상기 디코더측 프레임 캐시의 제1 부분에 상기 복수의 프레임 중 어떤 프레임이 저장될 것인지를 나타내는 프레임 헤더의 정보에 따라 업데이터 되며, 상기 인코더측 프레임 캐시의 제2 부분의 상기 제2 기준 프레임은 상기 복수의 프레임 중 다음 프레임을 인코딩하는데에 이용하기 위하여 상기 복수의 프레임 중 현재 프레임을 저장하도록 업데이트 되는
    방법.
  12. 제8항에 있어서,
    상기 인코딩된 데이터는 리얼타임 전송 프로토콜 채널을 통하여 송신되고, 상기 손실 검출 신호는 리얼타임 제어 프로토콜 채널을 통하여 수신신되는
    방법.
  13. 제8항에 있어서,
    상기 비디오 디코더의 상기 디코더측 프레임 캐시의 제1 부분에 대응하는 상기 인코더측 프레임 캐시의 제1 부분에 저장된 상기 제1 기준 프레임을 업데이트하기 위한 간격(an interval)을 설정하는 단계를 더 포함하는
    방법.
  14. 제13항에 있어서,
    상기 간격은 정규의 주기적인 간격인
    방법.
  15. 제13항에 있어서,
    상기 간격은 네트워크 속도 및 손실 히스토리 중 하나 이상에 적어도 부분적으로 의존하는
    방법.
  16. 제1항 또는 제8항에 있어서,
    상기 제1 프레임은 키 프레임(a key frame)에 대한 이전 기준 프레임(an eariler reference frame)에 관련하여 인코딩된 예측된 프레임(a predicted frame)이고, 상기 제2 프레임은 상기 제1 기준 프레임에 관련하여 인코딩된 예측된 프레임이며, 상기 새로운 프레임은 상기 제1 기준 프레임에 관련하여 인코딩된 예측된 프레임인
    방법.
  17. 제1항 또는 제8항에 있어서,
    상기 제2 프레임에 대한 인코딩된 데이터는 상기 제2 프레임에 대한 프레임 헤더를 포함하고, 상기 제2 프레임에 대한 프레임 헤더는 상기 제2 프레임이 상기 디코더측 프레임 캐시의 제2 부분에 저장되어야 함을 나타내는 정보를 포함하고, 상기 제2 프레임이 상기 디코더측 프레임 캐시의 제2 부분에 저장되어야 함을 나타내는 상기 정보는 프레임 타입의 파트(part of frame type)로서 상기 제2 프레임에 대한 프레임 헤더 내에 시그널링되는
    방법.
  18. 제1항 또는 제8항에 있어서,
    상기 손실 검출 신호는 인코딩된 데이터 손실에 영향을 받는 패킷의 타임 스탬프 및 시퀀스 번호를 포함하는
    방법.
  19. 제1항 또는 제8항에 있어서,
    상기 손실 검출 신호는 인코딩된 데이터 손실에 영향을 받는 패킷의 리스트를 포함하는
    방법.
  20. 제1항 또는 제8항에 있어서,
    상기 손실 검출 신호는 인코딩된 데이터 손실에 영향을 받는 하나 이상의 슬라이스(one or more slices)를 식별하는
    방법.
  21. 제1항 또는 제8항에 있어서,
    상기 손실 검출 신호는, 상기 비디오 디코더에 저장된 다수의 기준 프레임 중에 어느 저장된 기준 프레임을 이용할지를 결정하기 위하여 상기 비디오 디코더에 의하여 이용될 수 있는 정보를 포함하고, 상기 새로운 프레임에 대한 인코딩된 데이터는 상기 새로운 프레임에 대한 프레임 헤더를 포함하고, 상기 새로운 프레임에 대한 프레임 헤더는 상기 새로운 프레임을 디코딩함에 있어서 상기 제1 기준 프레임을 이용하도록 지시하는 정보를 포함하는
    방법.
  22. 컴퓨터 실행가능 명령어를 저장하는 하나 이상의 컴퓨터 판독가능 매체로서,
    상기 실행가능 명령어는 컴퓨터 시스템으로 하여금 제1항 내지 제21항 중 어느 한 항의 방법을 수행하게 하는
    하나 이상의 컴퓨터 판독가능 매체.
  23. 비디오 디코더를 구현하는 컴퓨터 시스템으로서, 상기 컴퓨터 시스템은 프로세서와 메모리를 포함하고, 상기 비디오 디코더는,
    비디오 시퀀스의 복수의 프레임에 대한 인코딩된 데이터를 저장하는 지터 버퍼(a jitter buffer);
    상기 복수의 프레임을 디코딩하는 수단;
    제1 기준 프레임을 저장하기 위한 디코더측 프레임 캐시의 제1 부분 - 상기 디코더측 프레임 캐시의 제1 부분은 비디오 인코더의 인코더측 프레임 캐시의 제1 부분에 대응하고, 상기 디코더측 프레임 캐시의 제1 부분에 저장된 상기 제1 기준 프레임은, 상기 디코딩 후에 상기 복수의 프레임 중 어느 프레임이 상기 디코더측 프레임 캐시의 제1 부분에 캐싱되어야 하는지를 나타내는, 상기 복수의 프레임에 대한 프레임 헤더 내의 정보에 따라 업데이트 됨 -;
    제2 기준 프레임을 저장하기 위한 상기 디코더측 프레임 캐시의 제2 부분 - 상기 디코더측 프레임 캐시의 제2 부분은 상기 디코더측 프레임 캐시의 제1 부분과는 상이하고, 상기 디코더측 프레임 캐시의 제2 부분에 저장된 상기 제2 기준 프레임은, 상기 복수의 프레임 중 다음 프레임을 디코딩하는데 이용하기 위하여, 상기 디코딩 후에 상기 복수의 프레임 중 현재 프레임을 저장하도록 업데이트 됨 -;
    상기 복수의 프레임 중 주어진 프레임 - 상기 주어진 프레임은 상기 제2 기준 프레임에 관련하여 인코딩된 것임 - 의 디코딩에 영향을 미치는 상기 인코딩된 데이터에 대한 손실을 검출하는 수단;
    손실 검출 신호를 송신하는 수단; 및
    상기 디코더측 프레임 캐시의 제1 부분에 저장된 상기 제1 기준 프레임을 이용하여 새로운 프레임 - 상기 새로운 프레임은, 상기 손실 검출 신호에 응답하여, 상기 비디오 인코더의 상기 인코더측 프레임 캐시의 제1 부분에 저장된 상기 제1 기준 프레임에 관련하여 상기 비디오 인코더에 의하여 인코딩됨 - 을 디코딩하도록 구성되는 디코딩 수단을 포함하는
    컴퓨터 시스템.
  24. 제23항에 있어서,
    상기 비디오 디코더는 상기 프로세서에서 실행가능한 소프트웨어, 필드 프로그래머블 게이트 어레이(field-programmable gate array; FPGA) 또는 주문형 집적회로(application-specific integrated circuit; ASIC)로 적어도 부분적으로 구현될 수 있는
    컴퓨터 시스템.
  25. 제23항에 있어서,
    상기 손실을 검출하는 수단은, 상기 인코딩된 데이터의 패킷 손실 또는 오염으로 인한 패킷에 대한 시퀀스 번호에서의 공백(a gap)을 발견하도록 구성되는
    컴퓨터 시스템.
  26. 비디오 인코더를 구현하는 컴퓨터 시스템으로서, 상기 컴퓨터 시스템은 프로세서와 메모리를 포함하고, 상기 비디오 인코더는,
    비디오 시퀀스의 복수의 프레임을 인코딩하는 수단;
    제1 기준 프레임을 저장하기 위한 인코더측 프레임 캐시의 제1 부분 - 상기 인코더측 프레임 캐시의 제1 부분은 비디오 디코더의 디코더측 프레임 캐시의 제1 부분에 대응하고, 상기 인코더측 프레임 캐시의 제1 부분에 저장된 상기 제1 기준 프레임은, 상기 디코딩 후에 상기 복수의 프레임 중 어느 프레임이 상기 디코더측 프레임 캐시의 제1 부분에 캐싱되어야 하는지를 나타내는, 상기 복수의 프레임에 대한 프레임 헤더 내의 정보에 따라 업데이트 됨 -;
    제2 기준 프레임을 저장하기 위한 상기 인코더측 프레임 캐시의 제2 부분 - 상기 인코더측 프레임 캐시의 제2 부분은 상기 인코더측 프레임 캐시의 제1 부분과는 상이하고, 상기 인코더측 프레임 캐시의 제2 부분에 저장된 상기 제2 기준 프레임은, 상기 복수의 프레임 중 다음 프레임을 인코딩하는데 이용하기 위하여, 인코딩 후에 상기 복수의 프레임 중 현재 프레임을 저장하도록 업데이트 됨 -;
    상기 복수의 프레임 중 주어진 프레임 - 상기 주어진 프레임은 상기 제2 기준 프레임에 관련하여 인코딩된 것임 - 의 디코딩에 영향을 미치는 인코딩된 데이터 손실을 나타내는 손실 검출 신호를 수신하는 수단; 및
    상기 손실 검출 신호에 응답하여, 상기 디코더측 프레임 캐시의 제1 부분에 저장된 상기 제1 기준 프레임에 관련하여 새로운 프레임 - 상기 새로운 프레임은, 상기 디코더측 프레임 캐시의 제1 부분에 저장된 상기 제1 기준 프레임 및 상기 새로운 프레임에 대한 인코딩된 데이터를 이용하여 상기 비디오 디코더에 의하여 디코딩될 수 있음 - 을 인코딩하도록 구성되는 인코딩 수단을 포함하는
    컴퓨터 시스템.
  27. 제23항 또는 제26항에 있어서,
    상기 손실 검출 신호는, 상기 비디오 인코더에 캐싱된 저장된 다수의 기준 프레임 중에 어느 기준 프레임을 이용할지를 결정하기 위하여 상기 비디오 인코더에 의하여 이용될 수 있는 정보를 포함하고, 상기 새로운 프레임에 대한 인코딩된 데이터는 상기 새로운 프레임에 대한 프레임 헤더를 포함하고, 상기 새로운 프레임에 대한 프레임 헤더는 상기 새로운 프레임을 디코딩함에 있어서 상기 다수의 기준 프레임 중 이용할 기준 프레임을 지시하는 정보를 포함하는
    컴퓨터 시스템.
KR1020120078971A 2004-12-30 2012-07-19 패킷 손실 복구를 개선하기 위한 프레임 캐싱의 이용 KR101344207B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/027,294 2004-12-30
US11/027,294 US8634413B2 (en) 2004-12-30 2004-12-30 Use of frame caching to improve packet loss recovery

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020110047061A Division KR101213906B1 (ko) 2004-12-30 2011-05-18 패킷 손실 복구를 개선하기 위한 프레임 캐싱의 이용

Publications (2)

Publication Number Publication Date
KR20120100851A true KR20120100851A (ko) 2012-09-12
KR101344207B1 KR101344207B1 (ko) 2013-12-20

Family

ID=35789232

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020050112878A KR101114129B1 (ko) 2004-12-30 2005-11-24 패킷 손실 복구를 개선하기 위한 프레임 캐싱의 이용
KR1020110047061A KR101213906B1 (ko) 2004-12-30 2011-05-18 패킷 손실 복구를 개선하기 위한 프레임 캐싱의 이용
KR1020120078971A KR101344207B1 (ko) 2004-12-30 2012-07-19 패킷 손실 복구를 개선하기 위한 프레임 캐싱의 이용

Family Applications Before (2)

Application Number Title Priority Date Filing Date
KR1020050112878A KR101114129B1 (ko) 2004-12-30 2005-11-24 패킷 손실 복구를 개선하기 위한 프레임 캐싱의 이용
KR1020110047061A KR101213906B1 (ko) 2004-12-30 2011-05-18 패킷 손실 복구를 개선하기 위한 프레임 캐싱의 이용

Country Status (9)

Country Link
US (4) US8634413B2 (ko)
EP (2) EP2247111A1 (ko)
JP (3) JP5047497B2 (ko)
KR (3) KR101114129B1 (ko)
CN (2) CN102158713B (ko)
AT (1) ATE473599T1 (ko)
DE (1) DE602005022158D1 (ko)
ES (1) ES2348730T3 (ko)
HK (1) HK1159386A1 (ko)

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6499060B1 (en) 1999-03-12 2002-12-24 Microsoft Corporation Media coding for loss recovery with remotely predicted data units
US9061207B2 (en) * 2002-12-10 2015-06-23 Sony Computer Entertainment America Llc Temporary decoder apparatus and method
US9227139B2 (en) 2002-12-10 2016-01-05 Sony Computer Entertainment America Llc Virtualization system and method for hosting applications
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
US8366552B2 (en) 2002-12-10 2013-02-05 Ol2, Inc. System and method for multi-stream video compression
US9077991B2 (en) 2002-12-10 2015-07-07 Sony Computer Entertainment America Llc System and method for utilizing forward error correction with video compression
US8964830B2 (en) * 2002-12-10 2015-02-24 Ol2, Inc. System and method for multi-stream video compression using multiple encoding formats
US8711923B2 (en) 2002-12-10 2014-04-29 Ol2, Inc. System and method for selecting a video encoding format based on feedback data
US20100166056A1 (en) * 2002-12-10 2010-07-01 Steve Perlman System and method for encoding video using a selected tile and tile rotation pattern
US9108107B2 (en) 2002-12-10 2015-08-18 Sony Computer Entertainment America Llc Hosting and broadcasting virtual events using 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
US20090118019A1 (en) 2002-12-10 2009-05-07 Onlive, Inc. System for streaming databases serving real-time applications used through streaming interactive video
US9446305B2 (en) 2002-12-10 2016-09-20 Sony Interactive Entertainment America Llc System and method for improving the graphics performance of hosted applications
US8979655B2 (en) 2002-12-10 2015-03-17 Ol2, Inc. System and method for securely hosting applications
US10201760B2 (en) 2002-12-10 2019-02-12 Sony Interactive Entertainment America Llc System and method for compressing video based on detected intraframe motion
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
US8549574B2 (en) * 2002-12-10 2013-10-01 Ol2, Inc. Method of combining linear content and interactive content compressed together as streaming interactive video
US8634413B2 (en) 2004-12-30 2014-01-21 Microsoft Corporation Use of frame caching to improve packet loss recovery
CN100459717C (zh) * 2005-04-20 2009-02-04 华为技术有限公司 基于h.264的压缩视频传输误码消除方法
US20090190652A1 (en) * 2005-10-06 2009-07-30 Yong-Hwa Kim System and method for controlling transmission of moving image data over network
US20070107011A1 (en) * 2005-11-10 2007-05-10 Zhi Li System and method for differentiated service levels in an internet protocol television network
US7716551B2 (en) 2005-12-07 2010-05-11 Microsoft Corporation Feedback and frame synchronization between media encoders and decoders
CN101087438A (zh) * 2006-06-06 2007-12-12 安捷伦科技有限公司 计算无参考视频质量评估的分组丢失度量的系统和方法
CA2660278C (en) 2006-08-17 2016-03-29 Telefonaktiebolaget L M Ericsson (Publ) Error recovery for rich media
US20100146139A1 (en) * 2006-09-29 2010-06-10 Avinity Systems B.V. Method for streaming parallel user sessions, system and computer software
US7957307B2 (en) * 2007-03-14 2011-06-07 Microsoft Corporation Reducing effects of packet loss in video transmissions
KR101487771B1 (ko) * 2007-08-10 2015-01-30 삼성전자주식회사 이동통신 시스템에서 영상 정보를 복구하기 위한 방법 및장치
US9168457B2 (en) 2010-09-14 2015-10-27 Sony Computer Entertainment America Llc System and method for retaining system state
US8406296B2 (en) * 2008-04-07 2013-03-26 Qualcomm Incorporated Video refresh adaptation algorithms responsive to error feedback
US8385404B2 (en) * 2008-09-11 2013-02-26 Google Inc. System and method for video encoding using constructed reference frame
CN102414745B (zh) * 2009-05-22 2014-07-30 松下电器产业株式会社 编码装置、解码装置及编码、解码方法
US20110249729A1 (en) * 2010-04-07 2011-10-13 Apple Inc. Error resilient hierarchical long term reference frames
US8731152B2 (en) * 2010-06-18 2014-05-20 Microsoft Corporation Reducing use of periodic key frames in video conferencing
CN102223539A (zh) * 2011-06-24 2011-10-19 武汉长江通信产业集团股份有限公司 图像编码丢帧花屏的处理方法
GB2495468B (en) 2011-09-02 2017-12-13 Skype Video coding
GB2495469B (en) 2011-09-02 2017-12-13 Skype Video coding
GB2495467B (en) * 2011-09-02 2017-12-13 Skype Video coding
US9203755B1 (en) * 2011-09-27 2015-12-01 Cisco Technology, Inc. Error message monitoring in a network environment
US9160687B2 (en) * 2012-02-15 2015-10-13 Massachusetts Institute Of Technology Method and apparatus for performing finite memory network coding in an arbitrary network
US20130223524A1 (en) * 2012-02-29 2013-08-29 Microsoft Corporation Dynamic insertion of synchronization predicted video frames
CN102611894B (zh) * 2012-03-02 2015-01-07 华为技术有限公司 检测视频传输丢包的方法、装置和系统
KR101358886B1 (ko) 2012-04-12 2014-02-06 고려대학교 산학협력단 송신장치 및 수신장치, 송신장치의 동작 방법
CN103389879B (zh) * 2012-05-10 2016-08-17 慧荣科技股份有限公司 电子装置以及由电子装置传送数据至显示设备的方法
WO2014092597A1 (en) * 2012-12-14 2014-06-19 Intel Corporation Protecting against packet loss during transmission of video information
CN103051434A (zh) * 2012-12-20 2013-04-17 中兴通讯股份有限公司 数据的解压缩、解压缩处理方法及装置
US9407923B2 (en) * 2013-05-20 2016-08-02 Gamefly Israel Ltd. Overconing lost IP packets in streaming video in IP networks
FR3024582A1 (fr) * 2014-07-29 2016-02-05 Orange Gestion de la perte de trame dans un contexte de transition fd/lpd
US10462477B2 (en) 2015-02-25 2019-10-29 Cinova Media Partial evaluator system and method
US10595025B2 (en) 2015-09-08 2020-03-17 Microsoft Technology Licensing, Llc Video coding
US10313685B2 (en) 2015-09-08 2019-06-04 Microsoft Technology Licensing, Llc Video coding
WO2017066346A1 (en) * 2015-10-12 2017-04-20 Cinova Media Method and apparatus for optimizing video streaming for virtual reality
US10460700B1 (en) 2015-10-12 2019-10-29 Cinova Media Method and apparatus for improving quality of experience and bandwidth in virtual reality streaming systems
US10516891B2 (en) * 2015-11-20 2019-12-24 Intel Corporation Method and system of reference frame caching for video coding
US10841621B2 (en) * 2017-03-01 2020-11-17 Wyse Technology L.L.C. Fault recovery of video bitstream in remote sessions
CN116456097A (zh) * 2017-04-28 2023-07-18 苹果公司 视频流水线
US10944971B1 (en) 2017-05-22 2021-03-09 Cinova Media Method and apparatus for frame accurate field of view switching for virtual reality
US10291936B2 (en) 2017-08-15 2019-05-14 Electronic Arts Inc. Overcoming lost or corrupted slices in video streaming
KR102392888B1 (ko) * 2017-10-26 2022-04-29 에스케이텔레콤 주식회사 패킷 손실 복구를 개선하기 위한 장치 및 방법
US10567781B2 (en) * 2018-05-01 2020-02-18 Agora Lab, Inc. Progressive I-slice reference for packet loss resilient video coding
CN112740631A (zh) * 2018-07-20 2021-04-30 诺基亚技术有限公司 通过接收算法中的参数的更新来在通信系统中学习
CN109714558A (zh) * 2018-11-28 2019-05-03 视联动力信息技术股份有限公司 一种基于视联网的通信连接检测方法及系统
CN109862400B (zh) * 2019-02-18 2021-08-31 苏州长风航空电子有限公司 一种流媒体传输方法、装置及其系统
CN110636333A (zh) * 2019-08-19 2019-12-31 西安万像电子科技有限公司 丢帧处理方法及装置
CN110602507A (zh) * 2019-08-19 2019-12-20 西安万像电子科技有限公司 丢帧处理方法、设备及系统
CN113132807B (zh) * 2019-12-30 2023-04-07 成都鼎桥通信技术有限公司 基于视频的关键帧请求方法、装置、设备及存储介质
WO2023140954A1 (en) * 2022-01-21 2023-07-27 Qualcomm Incorporated Reference signal security
CN117295207B (zh) * 2023-11-24 2024-03-01 深圳市千岩科技有限公司 氛围灯设备及其指令传输、应用方法和相应的装置、介质

Family Cites Families (194)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5130595A (ja) 1974-09-10 1976-03-15 Mitsubishi Heavy Ind Ltd Ozonhatsuseisochi
JPS6030394A (ja) 1983-07-28 1985-02-15 Mitsubishi Chem Ind Ltd 感熱転写記録用チアジアゾ−ル系色素
JPS6078298A (ja) 1983-10-02 1985-05-02 小山 金一 矢羽根用鳥羽加工自動装置
US4838685A (en) * 1987-04-03 1989-06-13 Massachusetts Institute Of Technology Methods and apparatus for motion estimation in motion picture processing
FR2624997B1 (fr) * 1987-12-16 1990-06-01 France Etat Procede d'estimation multi predictif du mouvement des points d'une image electronique
JP2521145B2 (ja) 1989-02-20 1996-07-31 日本ビクター株式会社 動き補償予測符号化復号化方式
DE3943880B4 (de) 1989-04-17 2008-07-17 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Digitales Codierverfahren
GB9001468D0 (en) 1990-01-23 1990-03-21 Sarnoff David Res Center Computing multiple motions within an image region
JP2569219B2 (ja) * 1990-01-31 1997-01-08 富士通株式会社 動画像予測方式
NL9000424A (nl) 1990-02-22 1991-09-16 Philips Nv Overdrachtsysteem voor gedigitaliseerde televisiebeelden.
US5150209A (en) 1990-05-11 1992-09-22 Picturetel Corporation Hierarchical entropy coded lattice threshold quantization encoding method and apparatus for image and video compression
CA2335403C (en) * 1990-06-05 2002-03-19 Koninklijke Philips Electronics N.V. Optical readable disc storing full-motion video scene
US5093720A (en) * 1990-08-20 1992-03-03 General Instrument Corporation Motion compensation for interlaced digital television signals
JP3173508B2 (ja) 1990-10-01 2001-06-04 株式会社日立製作所 動画像復号化方法、及び、動画像復号化装置
US5175618A (en) 1990-10-31 1992-12-29 Victor Company Of Japan, Ltd. Compression method for interlace moving image signals
USRE35093E (en) 1990-12-03 1995-11-21 The Trustees Of Columbia University In The City Of New York Systems and methods for coding even fields of interlaced video sequences
US5428693A (en) 1991-04-12 1995-06-27 Mitsubishi Denki Kabushiki Kaisha Motion compensation predicting coding method and apparatus
AU660020B2 (en) * 1991-05-24 1995-06-08 British Broadcasting Corporation, The Video image processing
AU657510B2 (en) 1991-05-24 1995-03-16 Apple Inc. Improved image encoding/decoding method and apparatus
US5986713A (en) 1991-05-31 1999-11-16 Kabushiki Kaisha Toshiba Video coding apparatus using inter-field prediction
US5317397A (en) * 1991-05-31 1994-05-31 Kabushiki Kaisha Toshiba Predictive coding using spatial-temporal filtering and plural motion vectors
US5467136A (en) 1991-05-31 1995-11-14 Kabushiki Kaisha Toshiba Video decoder for determining a motion vector from a scaled vector and a difference vector
US5784107A (en) * 1991-06-17 1998-07-21 Matsushita Electric Industrial Co., Ltd. Method and apparatus for picture coding and method and apparatus for picture decoding
JP2699703B2 (ja) * 1991-07-31 1998-01-19 松下電器産業株式会社 動き補償予測方法とそれを用いた画像信号符号化方法
JP3115651B2 (ja) * 1991-08-29 2000-12-11 シャープ株式会社 画像符号化装置
JP2586260B2 (ja) * 1991-10-22 1997-02-26 三菱電機株式会社 適応的ブロッキング画像符号化装置
US5227878A (en) * 1991-11-15 1993-07-13 At&T Bell Laboratories Adaptive coding and decoding of frames and fields of video
US5255090A (en) 1991-11-19 1993-10-19 Scientific-Atlanta, Inc. Progressive transmission of vector quantized data
US7006881B1 (en) * 1991-12-23 2006-02-28 Steven Hoffberg Media recording device with remote graphic user interface
US6400996B1 (en) 1999-02-01 2002-06-04 Steven M. Hoffberg Adaptive pattern recognition based control system and method
US5293229A (en) 1992-03-27 1994-03-08 Matsushita Electric Corporation Of America Apparatus and method for processing groups of fields in a video data compression system
GB2266023B (en) 1992-03-31 1995-09-06 Sony Broadcast & Communication Motion dependent video signal processing
JP2899478B2 (ja) 1992-06-25 1999-06-02 松下電器産業株式会社 画像符号化方法及び画像符号化装置
US6226327B1 (en) 1992-06-29 2001-05-01 Sony Corporation Video coding method and apparatus which select between frame-based and field-based predictive modes
JP3201079B2 (ja) 1992-07-03 2001-08-20 ケイディーディーアイ株式会社 インターレース動画像信号の動き補償予測方法、符号化方法及び装置
US5412435A (en) * 1992-07-03 1995-05-02 Kokusai Denshin Denwa Kabushiki Kaisha Interlaced video signal motion compensation prediction system
GB9215102D0 (en) 1992-07-16 1992-08-26 Philips Electronics Uk Ltd Tracking moving objects
JP3358835B2 (ja) * 1992-12-14 2002-12-24 ソニー株式会社 画像符号化方法及び装置
US5737022A (en) 1993-02-26 1998-04-07 Kabushiki Kaisha Toshiba Motion picture error concealment using simplified motion compensation
US5592228A (en) 1993-03-04 1997-01-07 Kabushiki Kaisha Toshiba Video encoder using global motion estimation and polygonal patch motion estimation
US5376968A (en) 1993-03-11 1994-12-27 General Instrument Corporation Adaptive compression of digital video data using different modes such as PCM and DPCM
JP3679426B2 (ja) 1993-03-15 2005-08-03 マサチューセッツ・インスティチュート・オブ・テクノロジー 画像データを符号化して夫々がコヒーレントな動きの領域を表わす複数の層とそれら層に付随する動きパラメータとにするシステム
EP0651574B1 (en) 1993-03-24 2001-08-22 Sony Corporation Method and apparatus for coding/decoding motion vector, and method and apparatus for coding/decoding image signal
EP0625853B1 (en) 1993-05-21 1999-03-03 Nippon Telegraph And Telephone Corporation Moving image encoder and decoder
US5477272A (en) 1993-07-22 1995-12-19 Gte Laboratories Incorporated Variable-block size multi-resolution motion estimation scheme for pyramid coding
US5493513A (en) 1993-11-24 1996-02-20 Intel Corporation Process, apparatus and system for encoding video signals using motion estimation
US5539663A (en) * 1993-11-24 1996-07-23 Intel Corporation Process, apparatus and system for encoding and decoding video signals using temporal filtering
JPH07202820A (ja) * 1993-12-28 1995-08-04 Matsushita Electric Ind Co Ltd ビットレート制御システム
KR970003799B1 (ko) * 1993-12-29 1997-03-21 양승택 영상 프레임차를 이용한 영상신호 전송장치
US5592226A (en) * 1994-01-26 1997-01-07 Btg Usa Inc. Method and apparatus for video data compression using temporally adaptive motion interpolation
US5541594A (en) * 1994-03-28 1996-07-30 Utah State University Foundation Fixed quality source coder with fixed threshold
US5579183A (en) 1994-04-08 1996-11-26 U.S. Philips Corporation Recording and reproducing an MPEG information signal on/from a record carrier
US5594504A (en) * 1994-07-06 1997-01-14 Lucent Technologies Inc. Predictive video coding using a motion vector updating routine
JP2970417B2 (ja) 1994-08-22 1999-11-02 日本電気株式会社 動画像符号化方式
KR100287211B1 (ko) * 1994-08-30 2001-04-16 윤종용 양방향 움직임 추정방법 및 장치
JP3474005B2 (ja) 1994-10-13 2003-12-08 沖電気工業株式会社 動画像符号化方法及び動画像復号方法
JPH08223577A (ja) * 1994-12-12 1996-08-30 Sony Corp 動画像符号化方法及び装置、並びに動画像復号方法及び装置
JP3534465B2 (ja) 1994-12-28 2004-06-07 パイオニア株式会社 サブバンド符号化方法
US5619281A (en) * 1994-12-30 1997-04-08 Daewoo Electronics Co., Ltd Method and apparatus for detecting motion vectors in a frame decimating video encoder
JP3518700B2 (ja) * 1995-01-25 2004-04-12 ソニー株式会社 デイジタル信号復号装置
DE69619002T2 (de) * 1995-03-10 2002-11-21 Toshiba Kawasaki Kk Bildkodierungs-/-dekodierungsvorrichtung
US6104754A (en) * 1995-03-15 2000-08-15 Kabushiki Kaisha Toshiba Moving picture coding and/or decoding systems, and variable-length coding and/or decoding system
KR0181027B1 (ko) 1995-03-20 1999-05-01 배순훈 화소 단위 움직임 추정을 이용하는 영상처리 시스템
KR0171143B1 (ko) 1995-03-20 1999-03-20 배순훈 육각그리드에서의 삼각구조 형성 장치
KR0171118B1 (ko) * 1995-03-20 1999-03-20 배순훈 비디오신호 부호화 장치
US5621660A (en) * 1995-04-18 1997-04-15 Sun Microsystems, Inc. Software-based encoder for a software-implemented end-to-end scalable video delivery system
US5903313A (en) * 1995-04-18 1999-05-11 Advanced Micro Devices, Inc. Method and apparatus for adaptively performing motion compensation in a video processing apparatus
KR0181063B1 (ko) * 1995-04-29 1999-05-01 배순훈 특징점을 이용한 움직임 보상에서의 그리드 형성방법 및 장치
KR0171154B1 (ko) * 1995-04-29 1999-03-20 배순훈 특징점 기반 움직임 추정을 이용하여 비디오 신호를 부호화하는 방법 및 장치
US5835149A (en) 1995-06-06 1998-11-10 Intel Corporation Bit allocation in a coded video sequence
US5731850A (en) * 1995-06-07 1998-03-24 Maturi; Gregory V. Hybrid hierarchial/full-search MPEG encoder motion estimation
US5852664A (en) 1995-07-10 1998-12-22 Intel Corporation Decode access control for encoded multimedia signals
US7512698B1 (en) * 1995-07-14 2009-03-31 Broadband Royalty Corporation Dynamic quality adjustment based on changing streaming constraints
JP2795223B2 (ja) * 1995-07-18 1998-09-10 日本電気株式会社 画像信号の符号化方法
US5668608A (en) 1995-07-26 1997-09-16 Daewoo Electronics Co., Ltd. Motion vector estimation method and apparatus for use in an image signal encoding system
WO1997005746A2 (en) 1995-08-02 1997-02-13 Philips Electronics N.V. Method and system for coding an image sequence, corresponding coded signal and storage medium, and method and system for decoding such a coded signal
KR0178229B1 (ko) * 1995-08-08 1999-05-01 배순훈 특징점에 근거한 화소단위 움직임 추정을 이용한 영상 처리 장치
JPH0974566A (ja) * 1995-09-04 1997-03-18 Sony Corp 圧縮符号化装置及び圧縮符号化データの記録装置
JP3068002B2 (ja) * 1995-09-18 2000-07-24 沖電気工業株式会社 画像符号化装置、画像復号化装置及び画像伝送システム
MX9801212A (es) * 1995-09-29 1998-04-30 Matsushita Electric Ind Co Ltd Metodo y dispositivo para grabar y reproducir una corriente de bits intercalada sobre y desde un medio.
US5970173A (en) * 1995-10-05 1999-10-19 Microsoft Corporation Image compression and affine transformation for image motion compensation
JPH09107547A (ja) 1995-10-09 1997-04-22 Hitachi Ltd 既圧縮動画データ量削減装置および既圧縮動画データ量削減システムならびに既圧縮動画データ量削減方法
JP3788823B2 (ja) 1995-10-27 2006-06-21 株式会社東芝 動画像符号化装置および動画像復号化装置
GB2306831B (en) * 1995-10-30 2000-05-24 Sony Uk Ltd Video data compression
US5748121A (en) * 1995-12-06 1998-05-05 Intel Corporation Generation of huffman tables for signal encoding
US5861919A (en) * 1995-12-18 1999-01-19 Divicom Dynamic rate optimization for an ensemble of video encoders
JPH09182083A (ja) 1995-12-27 1997-07-11 Matsushita Electric Ind Co Ltd ビデオ画像符号化方法及び復号化方法とその装置
US5692063A (en) 1996-01-19 1997-11-25 Microsoft Corporation Method and system for unrestricted motion estimation for video
US5982438A (en) 1996-03-22 1999-11-09 Microsoft Corporation Overlapped motion compensation for object coding
US6101276A (en) * 1996-06-21 2000-08-08 Compaq Computer Corporation Method and apparatus for performing two pass quality video compression through pipelining and buffer management
US6011864A (en) 1996-07-03 2000-01-04 Apple Computer, Inc. Digital image coding system having self-adjusting selection criteria for selecting a transform function
JPH1079949A (ja) * 1996-09-04 1998-03-24 Oki Electric Ind Co Ltd 画像符号化装置、画像復号化装置及び画像伝送システム
US5867230A (en) * 1996-09-06 1999-02-02 Motorola Inc. System, device, and method for streaming a multimedia file encoded at a variable bitrate
JP3263807B2 (ja) 1996-09-09 2002-03-11 ソニー株式会社 画像符号化装置および画像符号化方法
US6614847B1 (en) 1996-10-25 2003-09-02 Texas Instruments Incorporated Content-based video compression
US5905542A (en) * 1996-12-04 1999-05-18 C-Cube Microsystems, Inc. Simplified dual prime video motion estimation
EP0945023B1 (en) 1996-12-10 2002-09-18 BRITISH TELECOMMUNICATIONS public limited company Video coding
US6535558B1 (en) 1997-01-24 2003-03-18 Sony Corporation Picture signal encoding method and apparatus, picture signal decoding method and apparatus and recording medium
US6243497B1 (en) * 1997-02-12 2001-06-05 Sarnoff Corporation Apparatus and method for optimizing the rate control in a coding system
CN1217852A (zh) 1997-02-13 1999-05-26 三菱电机株式会社 动态图象预测方式
DE69840082D1 (de) 1997-02-14 2008-11-13 Nippon Telegraph & Telephone Prädikatives Dekodierungsverfahren von Videodaten
US5910827A (en) * 1997-02-26 1999-06-08 Kwan; Katherine W. Video signal decoding arrangement and method for improved error concealment
US5991447A (en) 1997-03-07 1999-11-23 General Instrument Corporation Prediction and coding of bi-directionally predicted video object planes for interlaced digital video
US6005980A (en) * 1997-03-07 1999-12-21 General Instrument Corporation Motion estimation and compensation of video object planes for interlaced digital video
US6304607B1 (en) 1997-03-18 2001-10-16 Texas Instruments Incorporated Error resilient video coding using reversible variable length codes (RVLCS)
EP0868085B2 (en) * 1997-03-26 2006-09-27 Matsushita Electric Industrial Co., Ltd. Image decoding apparatus
US6404813B1 (en) * 1997-03-27 2002-06-11 At&T Corp. Bidirectionally predicted pictures or video object planes for efficient and flexible video coding
IL167288A (en) * 1997-04-01 2012-03-29 Sony Corp Image encryption device, image encryption method, image decryption device, image decryption method, and appropriate medium
MY129665A (en) * 1997-04-09 2007-04-30 Matsushita Electric Ind Co Ltd Image predictive decoding method, image predictive decoding apparatus, image predictive coding method, image predictive coding apparatus, and data storage media
JPH10290391A (ja) * 1997-04-14 1998-10-27 Sony Corp 画像処理装置および画像処理方法、並びに記録媒体
JP3604864B2 (ja) * 1997-04-25 2004-12-22 シャープ株式会社 動画像符号化装置
US6057884A (en) * 1997-06-05 2000-05-02 General Instrument Corporation Temporal and spatial scaleable coding for video object planes
US5880784A (en) * 1997-06-17 1999-03-09 Intel Corporation Method and apparatus for adaptively switching on and off advanced prediction mode in an H.263 video coder
US5870148A (en) * 1997-06-17 1999-02-09 Intel Corporation Method and apparatus for adaptively enabling and disabling PB frames in an H.263 video coder
JP3045108B2 (ja) * 1997-06-30 2000-05-29 日本電気株式会社 テレビ電話装置
US6359929B1 (en) 1997-07-04 2002-03-19 Matsushita Electric Industrial Co., Ltd. Image predictive decoding method, image predictive decoding apparatus, image predictive coding apparatus, and data storage medium
US6282240B1 (en) 1997-09-03 2001-08-28 Oki Electric Industry Co., Ltd. Picture coder, picture decoder, and transmission system
US6807231B1 (en) 1997-09-12 2004-10-19 8×8, Inc. Multi-hypothesis motion-compensated video image predictor
US6249318B1 (en) * 1997-09-12 2001-06-19 8×8, Inc. Video coding/decoding arrangement and method therefor
US5933195A (en) 1997-09-26 1999-08-03 Sarnoff Corporation Method and apparatus memory requirements for storing reference frames in a video decoder
US6057832A (en) * 1997-12-02 2000-05-02 V Soft Ltd. Method and apparatus for video-on-demand with fast play capability
US5946043A (en) * 1997-12-31 1999-08-31 Microsoft Corporation Video coding using adaptive coding of block parameters for coded/uncoded blocks
JP3186685B2 (ja) 1998-01-12 2001-07-11 松下電器産業株式会社 動き補償予測方法
EP0935396A3 (en) 1998-02-09 2004-08-11 Matsushita Electric Industrial Co., Ltd. Video coding method and apparatus
JP3130512B2 (ja) * 1998-03-02 2001-01-31 日本電信電話株式会社 画像通信方法、画像通信システム、および、画像通信プログラムを記録した記録媒体
US6408029B1 (en) * 1998-04-02 2002-06-18 Intel Corporation Method and apparatus for simplifying real-time data encoding
US5991464A (en) 1998-04-03 1999-11-23 Odyssey Technologies Method and system for adaptive video image resolution enhancement
US6122321A (en) 1998-05-12 2000-09-19 Hitachi America, Ltd. Methods and apparatus for reducing the complexity of inverse quantization operations
US6104757A (en) * 1998-05-15 2000-08-15 North Carolina State University System and method of error control for interactive low-bit rate video transmission
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
US6289054B1 (en) * 1998-05-15 2001-09-11 North Carolina University Method and systems for dynamic hybrid packet loss recovery for video transmission over lossy packet-based network
US6029126A (en) * 1998-06-30 2000-02-22 Microsoft Corporation Scalable audio coder and decoder
JP3085289B2 (ja) 1998-09-03 2000-09-04 株式会社日立製作所 動画像符号化方法、及び、動画像符号化装置
US6415326B1 (en) * 1998-09-15 2002-07-02 Microsoft Corporation Timeline correlation between multiple timeline-altered media streams
US6629318B1 (en) * 1998-11-18 2003-09-30 Koninklijke Philips Electronics N.V. Decoder buffer for streaming video receiver and method of operation
US7046910B2 (en) * 1998-11-20 2006-05-16 General Instrument Corporation Methods and apparatus for transcoding progressive I-slice refreshed MPEG data streams to enable trick play mode features on a television appliance
US6418166B1 (en) * 1998-11-30 2002-07-09 Microsoft Corporation Motion estimation and block matching pattern
DE69938094T2 (de) * 1998-11-30 2009-02-05 Matsushita Electric Industries Co. Ltd., Kadoma Paketwiederübertragungskontrolle mit Prioritätsinformationen
US6563953B2 (en) * 1998-11-30 2003-05-13 Microsoft Corporation Predictive image compression using a single variable length code for both the luminance and chrominance blocks for each macroblock
WO2000054512A1 (en) * 1999-03-05 2000-09-14 Kabushiki Kaisha Toshiba Method and apparatus for coding moving picture image
US6499060B1 (en) * 1999-03-12 2002-12-24 Microsoft Corporation Media coding for loss recovery with remotely predicted data units
JP2001148853A (ja) 1999-03-12 2001-05-29 Toshiba Corp 動画像符号化装置および復号化装置
US6625215B1 (en) 1999-06-07 2003-09-23 Lucent Technologies Inc. Methods and apparatus for context-based inter/intra coding mode selection
US6441754B1 (en) * 1999-08-17 2002-08-27 General Instrument Corporation Apparatus and methods for transcoder-based adaptive quantization
JP4597453B2 (ja) 1999-11-10 2010-12-15 トムソン ライセンシング 書き換え可能なメディアでのコマーシャルスキップ機能及びチャプター描写機能
US6400990B1 (en) * 2000-02-18 2002-06-04 Pacesetter, Inc. Patient activated telemetry control unit using bidirectional asymmetric dual-mode telemetry link to communicate with an implanted device
JP2002010265A (ja) 2000-06-20 2002-01-11 Sony Corp 送信装置およびその方法と受信装置およびその方法
JP3348080B1 (ja) * 2000-07-07 2002-11-20 松下電器産業株式会社 データ送信装置とデータ受信装置及びデータ送受信方法
EP1336306A2 (en) * 2000-11-23 2003-08-20 Koninklijke Philips Electronics N.V. Video coding method
JP3917363B2 (ja) 2000-12-12 2007-05-23 株式会社東芝 画像復号化装置及び画像復号化方法
US6920175B2 (en) * 2001-01-03 2005-07-19 Nokia Corporation Video coding architecture and methods for using same
US6765963B2 (en) * 2001-01-03 2004-07-20 Nokia Corporation Video decoder architecture and method for using same
US6907460B2 (en) * 2001-01-18 2005-06-14 Koninklijke Philips Electronics N.V. Method for efficient retransmission timeout estimation in NACK-based protocols
US7230919B2 (en) * 2001-02-07 2007-06-12 Siemens Communications, Inc. Quality-of-service monitor for voice-over-Internet-protocol calls
US6700932B2 (en) 2001-03-06 2004-03-02 Sony Corporation MPEG video editing-cut and paste
US6996838B2 (en) 2001-06-12 2006-02-07 Scientific Atlanta, Inc. System and method for media processing with adaptive resource access priority assignment
US7012893B2 (en) * 2001-06-12 2006-03-14 Smartpackets, Inc. Adaptive control of data packet size in networks
JP2003032689A (ja) * 2001-07-18 2003-01-31 Sharp Corp 画像符号化装置、画像復号化装置及び動画像伝送システム
US7542482B2 (en) 2001-08-16 2009-06-02 Qualcomm Incorporated Method and apparatus for message segmentation in a wireless communication system
US7218635B2 (en) 2001-08-31 2007-05-15 Stmicroelectronics, Inc. Apparatus and method for indexing MPEG video data to perform special mode playback in a digital video recorder and indexed signal associated therewith
DE10218541A1 (de) 2001-09-14 2003-04-24 Siemens Ag Verfahren zur Videocodierung und Computerprogrammprodukt
JP2003152544A (ja) 2001-11-12 2003-05-23 Sony Corp データ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラム
US6980596B2 (en) * 2001-11-27 2005-12-27 General Instrument Corporation Macroblock level adaptive frame/field coding for digital video content
JP3912091B2 (ja) * 2001-12-04 2007-05-09 ソニー株式会社 データ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラム
CN101448162B (zh) * 2001-12-17 2013-01-02 微软公司 处理视频图像的方法
JP3923898B2 (ja) 2002-01-18 2007-06-06 株式会社東芝 画像符号化方法及び装置
JP2004007379A (ja) * 2002-04-10 2004-01-08 Toshiba Corp 動画像符号化方法及び動画像復号化方法
WO2003063505A1 (en) * 2002-01-23 2003-07-31 Nokia Corporation Grouping of image frames in video coding
JP4081745B2 (ja) 2002-03-07 2008-04-30 ソニー株式会社 復号装置および復号方法、学習装置および学習方法、並びにプログラムおよび記録媒体
KR100434384B1 (ko) * 2002-03-21 2004-06-04 엘지전자 주식회사 선택적 흐름제어를 통한 데이터 신뢰성 보장장치 및 방법
JP3821740B2 (ja) * 2002-03-22 2006-09-13 Necインフロンティア株式会社 音声データ送受信装置
KR100508798B1 (ko) 2002-04-09 2005-08-19 엘지전자 주식회사 쌍방향 예측 블록 예측 방법
KR100865034B1 (ko) * 2002-07-18 2008-10-23 엘지전자 주식회사 모션 벡터 예측 방법
KR100506864B1 (ko) * 2002-10-04 2005-08-05 엘지전자 주식회사 모션벡터 결정방법
JP2004215201A (ja) * 2003-01-09 2004-07-29 Sony Corp 情報処理装置および情報処理方法、データ通信システム、記録媒体、並びにプログラム
JP2004254195A (ja) 2003-02-21 2004-09-09 Matsushita Electric Ind Co Ltd 動画像符号化装置及び動画像符号化方法並びに動画像伝送システム及び動画像符号化プログラム
US7827458B1 (en) * 2003-03-03 2010-11-02 Apple Inc. Packet loss error recovery
US8824553B2 (en) 2003-05-12 2014-09-02 Google Inc. Video compression method
WO2005027910A1 (en) 2003-08-25 2005-03-31 Dana-Farber Cancer Institute Inc. Method of treating mixed lineage leukemia gene-rearranged acute lymphoblastic leukemias
US7577198B2 (en) 2003-09-07 2009-08-18 Microsoft Corporation Number of reference fields for an interlaced forward-predicted field
US7924921B2 (en) * 2003-09-07 2011-04-12 Microsoft Corporation Signaling coding and display options in entry point headers
US7142537B2 (en) * 2003-12-18 2006-11-28 Motorola, Inc. Interface call signaling protocol
KR20050061762A (ko) * 2003-12-18 2005-06-23 학교법인 대양학원 부호화 모드 결정방법, 움직임 추정방법 및 부호화 장치
US7889792B2 (en) * 2003-12-24 2011-02-15 Apple Inc. Method and system for video encoding using a variable number of B frames
US7643480B2 (en) * 2004-01-22 2010-01-05 Hain-Ching Liu Method and system for reliably and efficiently transporting data over a network
US7746927B1 (en) * 2004-03-26 2010-06-29 Apple Inc. Robust single-pass variable bit rate encoding
US8085846B2 (en) * 2004-08-24 2011-12-27 Thomson Licensing Method and apparatus for decoding hybrid intra-inter coded blocks
JP4405875B2 (ja) * 2004-08-25 2010-01-27 富士通株式会社 エラー訂正用データの生成方法及び生成装置並びに生成プログラム及び同プログラムを格納したコンピュータ読み取り可能な記録媒体
US7302159B2 (en) * 2004-11-12 2007-11-27 Pelco Apparatus and method of storing video data
US7609895B2 (en) 2004-11-16 2009-10-27 Pegasus Imaging Corporation Methods and apparatus for performing MQ-decoding operations
US8634413B2 (en) 2004-12-30 2014-01-21 Microsoft Corporation Use of frame caching to improve packet loss recovery
JP5130595B2 (ja) 2006-12-01 2013-01-30 ライオン株式会社 台所用液体洗浄剤組成物
JP6030394B2 (ja) 2012-09-26 2016-11-24 住友電工プリントサーキット株式会社 プリント配線板
JP6078298B2 (ja) 2012-11-01 2017-02-08 武蔵エンジニアリング株式会社 位置補正機能を有する作業装置および作業方法

Also Published As

Publication number Publication date
JP5047497B2 (ja) 2012-10-10
JP2012253831A (ja) 2012-12-20
US8634413B2 (en) 2014-01-21
CN102158713B (zh) 2013-09-04
KR101213906B1 (ko) 2012-12-18
US20060146830A1 (en) 2006-07-06
CN102158713A (zh) 2011-08-17
EP1677547A1 (en) 2006-07-05
DE602005022158D1 (de) 2010-08-19
US20160366445A1 (en) 2016-12-15
CN1816150B (zh) 2011-07-06
JP2012090329A (ja) 2012-05-10
CN1816150A (zh) 2006-08-09
US9313501B2 (en) 2016-04-12
KR101344207B1 (ko) 2013-12-20
EP2247111A1 (en) 2010-11-03
ES2348730T3 (es) 2010-12-13
KR20060079085A (ko) 2006-07-05
JP5620448B2 (ja) 2014-11-05
JP5687183B2 (ja) 2015-03-18
KR101114129B1 (ko) 2012-02-20
HK1159386A1 (en) 2012-07-27
JP2006191599A (ja) 2006-07-20
US9866871B2 (en) 2018-01-09
KR20110079579A (ko) 2011-07-07
US10341688B2 (en) 2019-07-02
US20130010861A1 (en) 2013-01-10
EP1677547B1 (en) 2010-07-07
ATE473599T1 (de) 2010-07-15
US20140133583A1 (en) 2014-05-15

Similar Documents

Publication Publication Date Title
KR101344207B1 (ko) 패킷 손실 복구를 개선하기 위한 프레임 캐싱의 이용
JP3923898B2 (ja) 画像符号化方法及び装置
JP5280003B2 (ja) 映像コーデックにおけるスライス層
US9584832B2 (en) High quality seamless playback for video decoder clients
KR101122898B1 (ko) 비디오 스트림 내의 유효 진입점 시그널링
US20160021397A1 (en) Method for protecting a video frame sequence against packet loss
KR20040068257A (ko) 스킵 매크로블록 코딩
US7577200B2 (en) Extended range variable length coding/decoding of differential motion vector information
US20050265444A1 (en) Moving image encoding/decoding apparatus and method
US6804299B2 (en) Methods and systems for reducing requantization-originated generational error in predictive video streams using motion compensation
JP2009246489A (ja) 映像信号切替装置
US8358694B2 (en) Effective error concealment in real-world transmission environment
JP2006345166A (ja) 画像圧縮処理装置

Legal Events

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

Payment date: 20161123

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20171117

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20181115

Year of fee payment: 6