KR20110106423A - 이전에 계산된 모션 정보를 이용하는 비디오 인코딩 - Google Patents

이전에 계산된 모션 정보를 이용하는 비디오 인코딩 Download PDF

Info

Publication number
KR20110106423A
KR20110106423A KR1020117017614A KR20117017614A KR20110106423A KR 20110106423 A KR20110106423 A KR 20110106423A KR 1020117017614 A KR1020117017614 A KR 1020117017614A KR 20117017614 A KR20117017614 A KR 20117017614A KR 20110106423 A KR20110106423 A KR 20110106423A
Authority
KR
South Korea
Prior art keywords
video
encoding
bit stream
compressed video
motion information
Prior art date
Application number
KR1020117017614A
Other languages
English (en)
Other versions
KR101644208B1 (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 KR20110106423A publication Critical patent/KR20110106423A/ko
Application granted granted Critical
Publication of KR101644208B1 publication Critical patent/KR101644208B1/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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/24Systems for the transmission of television signals using pulse code modulation
    • 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
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • 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/176Methods 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 block, e.g. a macroblock
    • 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/187Methods 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 scalable video layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/33Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the spatial domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/12Systems in which the television signal is transmitted via one channel or a plurality of parallel channels, the bandwidth of each channel being less than the bandwidth of the television signal

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Television Systems (AREA)

Abstract

비디오 인코더는 인터 프레임 코딩을 위한 이전에 계산된 모션 정보를 이용하여, 비디오 압축을 위한 더 빠른 계산 속도를 달성한다. 다중 비트 레이트 응용에서, 하나의 비트 레이트의 압축 비디오 비트 스트림의 인터 프레임 코딩을 위해 모션 추정에 의해 생성된 모션 정보가 더 낮은 비트 레이트의 비디오의 후속 인코딩으로 전달된다. 비디오 인코더는 비디오 해상도가 변경되지 않는 경우에 더 낮은 비트 레이트의 인터 프레임 코딩을 위해 이전에 계산된 모션 정보를 사용하기로 결정한다. 다중 코어 모션 정보 사전 계산은 각각의 인터 프레임의 모션 추정을 개별 CPU 코어들로 분산시킴으로써 인코딩 전에 모션 정보를 생성한다.

Description

이전에 계산된 모션 정보를 이용하는 비디오 인코딩{VIDEO ENCODING USING PREVIOUSLY CALCULATED MOTION INFORMATION}
인터넷과 같은 네트워크들을 통한 스트리밍 오디오 및 비디오의 재생에 대한 인기가 증가함에 따라, 재생 동안에 네트워크 조건들이 변하는 경우에도 클라이언트의 경험을 최대화하기 위해 서버에서 클라이언트로 전송되는 데이터를 최적화하는 것이 필요하다. 클라이언트 경험의 최적화는 비디오를 중단 없이 전송하고 재구성하면서 비디오 콘텐츠의 품질을 유지하기 위해 비디오 재생의 오디오 및 비디오 부분들을 인코딩하기 위한 품질 레벨을 선택하는 것을 포함한다.
일반적으로, 품질 레벨은 입력 스트림의 인코딩된 오디오 또는 비디오 부분들에 대해 지정된 비트 레이트에 의해 지시된다. 일반적으로, 더 높은 비트 레이트는, 오리지널 오디오 또는 비디오에 대한 더 많은 양의 정보가 인코딩되고 유지되며, 따라서 비디오 재생 동안에 오리지널 입력 오디오 또는 비디오의 더 정확한 재생이 제공될 것임을 지시한다. 이와 달리, 더 낮은 비트 레이트는, 오리지널 입력 오디오 또는 비디오에 대한 더 적은 양의 정보가 인코딩되고 유지되며, 따라서 비디오 재생 동안에 오리지널 입력 오디오 또는 비디오의 덜 정확한 재생이 제공될 것임을 지시한다.
일반적으로, 비트 레이트는 여러 팩터에 기초하여 오디오 및 비디오 각각의 인코딩에 대해 지정된다. 제1 팩터는 서버와 클라이언트 사이의 네트워크 조건이다. 더 많은 양의 데이터를 전송할 수 있는 네트워크 접속은 네트워크 접속을 통해 후속 전송될 입력 비디오에 대해 더 높은 비트 레이트가 지정될 수 있음을 지시한다. 제2 팩터는 원하는 시동 레이턴시이다. 시동 레이턴시는 수신, 처리 및 버퍼링되어야 하는 많은 양의 데이터로 인해, 최초 시동시에 비디오 재생 도구가 경험하는 지연이다. 제3 팩터는 글리칭(glitching)에 대한 허용 한계이다. 글리칭은 데이터의 누락으로 인한 비디오 재생이 중지될 때 나타난다. 대다수의 경우에는, 어떠한 양의 시동 레이턴시 또는 글리칭도 허용되지 않으며, 따라서 시동 레이턴시 및 글리칭이 최소화 또는 제거되도록 지정되는 비트 레이트를 최적화하는 것이 바람직하다.
현재 이용 가능한 상업적인 스트리밍 미디어 시스템들은 코딩 레이트 제어를 수행하기 위해 다중 비트 레이트(MBR) 코딩에 의존한다. MBR 코딩에서, 소스 비디오 콘텐츠는 상이한 코딩 레이트의 택일적 비트 스트림들로 인코딩되며, 통상적으로 서버의 동일 미디어 파일 내에 저장된다. 게다가, 이것은 콘텐츠로 하여금, 통상적으로 세그먼트들 사이의 비트 스트림 스위칭을 이용하여, 네트워크 조건들의 변화에 따라 상이한 코딩 레이트들에 대응하는 다양한 품질 레벨로 세그먼트들 또는 청크들(chunks) 내에서 스트리밍될 수 있게 한다.
비디오 인코딩에서의 모션 추정 및 보상
원하는 비디오 레이트로 압축될 비디오를 인코딩하기 위해 다양한 기술들이 개발되었다. 그러한 기술들은 (프레임을 정지 이미지로서 압축하는) 인트라프레임 압축 기술들 및 (프레임을 하나 이상의 다른 프레임으로부터 예측 또는 추정하는) 인터프레임 압축 기술들을 포함한다. 인트라프레임 압축은 종종 데이터에 대한 주파수 변환들에 이어서 유손실 또는 무손실 압축을 포함한다. 인터프레임 압축은 모션 추정을 포함할 수 있다.
모션 추정은 프레임들 사이의 모션을 추정하기 위한 프로세스이다. 비디오에 대한 모션 추정은 불량 설정 문제(ill-posed problem)라고 하는데, 그 이유는 관찰되는 장면 내의 모션이 삼차원에서 발생하지만, 비디오의 연속 프레임들은 3D 장면의 이차원 이미지 평면으로의 투영이기 때문이다. 하나의 일반적인 기술에서, 모션 추정을 이용하는 인코더는 현재 프레임 내의 픽셀들의 블록을 (기준 프레임이라고 하는) 다른 프레임 내의 검색 영역 내의 유사한 픽셀들(픽처 요소들 또는 샘플들)의 블록과 매칭시키려고 시도한다. 인코더가 기준 프레임 내의 검색 영역에서 정확한 또는 "충분히 유사한" 매치를 발견할 때, 인코더는 블록들의 위치의 변화를 (모션 벡터와 같은) 모션 데이터로서 파라미터화한다.
이와 달리, 모션 보상은 모션 데이터를 이용하여 기준 프레임들로부터 프레임들을 재구성하는 프로세스이다. 하나의 일반적인 기술에서, 인코더 또는 디코더는 현재 프레임에 대한 모션 데이터를 기준 프레임에 적용하여 예측 프레임을 생성함으로써 현재 프레임을 재구성한다. 인코더는 인트라프레임 압축(예컨대, 유손실 및 무손실 압축)에 사용된 것과 동일한 기술들을 이용하여 현재 프레임의 오리지널 버전과 예측 프레임 사이의 차이(때로는 잔차(residual)라고 함)를 압축할 수 있다. 카메라 비디오의 전체 비트 레이트는 모션 데이터의 비트 레이트에 비해 전체 비트 레이트에서 주를 이룰 수 있는 잔차들의 비트 레이트에 크게 의존한다. 잔차들이 (즉, 일부 기준들에 따라 정확한 또는 양호한 매치들을 이끌어내는 모션 추정으로 인해) 간단하거나, 유손실 압축이 잔차들의 복잡성을 크게 줄이는 경우에는 잔차들의 비트 레이트가 낮다. 한편, 복잡한 잔차들(모션 추정이 양호한 매치들을 찾지 못한 잔차들)의 비트 레이트는 잔차들의 복잡성을 줄이기 위해 적용된 유손실 압축의 정도에 따라 더 높을 수 있다.
아래의 상세한 설명은 다중 비트 레이트 및 다중 코어 응용들 등에서 이전에 계산된 모션 정보를 이용하여 비디오를 인코딩하기 위한 (방법들, 장치들 및 시스템들을 통해 구현되는) 기술들에 관한 것이다. 이러한 다양한 응용들에서, 비디오 인코더는 미처리(raw) 비디오 콘텐츠 및 이전에 계산된 모션 정보 양자를 입력으로서 취한다. 이어서, 비디오 인코더는 이전에 계산된 모션 정보에 기초하여 모션 보상을 적용함으로써 미처리 비디오 콘텐츠의 예측 프레임들을 인코딩할 수 있다. 다양한 응용들에서, 이것은 비디오 인코더가 모션 추정 및 보상을 더 효율적으로 적용할 수 있게 한다.
예시적인 다중 비트 레이트 응용에서는, 이전에 계산된 모션 정보 입력을 갖는 비디오 인코더를 이용하여, 소스 비디오를 연속적으로 더 낮은 비트 레이트들의 복수의 비트 스트림으로 인코딩한다. 연속적인 더 낮은 비트 레이트로 인코딩된 각각의 비트 스트림에 대해, 비디오 인코더는 더 높은 비트 레이트의 이전 비트 스트림에 대해 계산된 모션 정보를 그의 이전에 계산된 모션 정보 입력으로서 수신한다. 비디오 인코더는 더 높은 비트 레이트의 이전 비트 스트림에 대해 계산된 이러한 입력 모션 정보를 이용하여 더 낮은 다음 비트 레이트의 비트 스트림의 모션 보상 인코딩을 수행하는 것을 선택할 수 있다. 그러나, 비디오 인코더는 여러 인코딩 파라미터들 중에서 양자화 정도 및 비디오 해상도와 같은 인코딩 파라미터들의 다양한 조정들을 행하여 더 낮은 비트 레이트를 달성하는 것이 필요할 것이다. (여러 이유 중에서) 비디오에 대한 모션 추정은 위의 배경기술에서 설명된 바와 같은 "불량 설정 문제"이므로, 더 높은 인코딩 비트 레이트의 비디오에 대해 이전에 계산된 모션 정보는 더 낮은 비트 레이트를 달성하도록 조정된 인코딩 파라미터들로 동일한 소스 비디오를 인코딩하기에는 부정확한 것으로 입증될 수 있다. 예컨대, 주어진 예측 프레임의 블록에 대해 (더 작은 잔차를 갖는) 더 유사한 매치를 산출하는 모션 벡터는 기준 프레임이 더 낮은 비트 레이트로 인코딩될 때에 비해 기준 프레임이 더 높은 비트 레이트 인코딩 파라미터들로 인코딩될 때 달라질 수 있다. 예시적인 다중 비트 레이트 응용에서, 비디오 인코더는 더 높은 비트 레이트에 대해 계산된 입력 모션 정보를 사용할지의 여부를 다음의 연속 비트 레이트에 대한 인코딩이 비디오 해상도의 변화를 포함하는지의 여부에 따라 선택한다. 비디오 해상도가 다음 연속 비트 레이트에 대해 변경되지 않은 경우에, 비디오 인코더는 더 높은 비트 레이트에 대해 이전에 계산된 입력 모션 정보를 이용한다. 그러나, 비디오 해상도가 변하는 경우, 비디오 인코더는 그 대신에 현재 비트 레이트의 비트 스트림을 인코딩하기 위해 모션 정보를 새로 계산한다. 이러한 새로 계산된 모션 정보는 더 낮은 다음 비트 레이트의 비트 스트림에 대해 이전에 계산된 모션 정보 입력으로서 비디오 인코더로 전달된다.
예시적인 다중 코어 프로세서 응용에서, 모션 추정은 비디오 인코더에 입력되기 전에 별개의 사전 계산 단계로서 수행된다. 인트라프레임 압축이 소스 비디오의 기준 프레임들에 대해 먼저 수행된다. 이어서, 모션 추정 사전 계산이 다중 코어 컴퓨터 상의 거의 병렬적인 동작으로서 수행될 수 있다. 컴퓨터의 각각의 프로세서 코어는 그의 각각의 기준 프레임에 비해 인터프레임(예측) 인코딩을 이용하여 인코딩될 개별 프레임의 모션 추정을 계산하도록 할당된다. 이러한 방식으로 프로세서 코어들 사이에 모션 추정의 계산이 분산되는 경우, 비디오 인코더는 다중 코어 컴퓨터의 처리 능력을 더 충분히 이용할 수 있다.
본 요약은 아래의 상세한 설명에서 더 설명되는 개념들의 발췌를 간단한 형태로 소개하기 위해 제공된다. 본 요약은 청구 발명의 중요한 특징들 또는 필수적인 특징들을 식별하는 것을 의도하지 않으며, 청구 발명의 범위 결정의 보조물로서 사용되는 것도 의도하지 않는다. 본 발명의 추가적인 특징들 및 이점들은 첨부 도면들을 참조하여 진행하는 아래의 실시예들에 대한 상세한 설명으로부터 명확해질 것이다.
도 1은 미리 계산된 모션 정보 입력을 갖는 비디오 인코더의 블록도이다.
도 2는 도 1의 비디오 인코더의 일반화된 구현의 블록도이다.
도 3은 가변 비트 레이트들로 비디오의 세그먼트 스트리밍을 제공하는 비디오 스트리밍 시스템의 블록도이다.
도 4는 도 3의 비디오 스트리밍 시스템에 의한 세그먼트 스트리밍에 사용하기 위해 도 1의 비디오 인코더를 이용하여 세그먼트 비디오 스트리밍 파일을 인코딩하기 위한 비디오 인코딩 시스템의 블록도이다.
도 5는 도 4의 비디오 인코딩 시스템에 의해 수행되는 프로세스의 흐름도이다.
도 6은 도 1의 비디오 인코더에 대한 모션 정보의 사전 계산을 위해 다중 코어 프로세서들을 사용하는 비디오 인코딩 시스템의 데이터 흐름도이다.
도 7은 다양한 설명되는 실시예들을 구현할 수 있는 일반화된 운영 환경의 블록도이다.
아래의 상세한 설명은 이전에 계산된 모션 정보를 이용하여 비디오를 인코딩하기 위한 다양한 기술들 및 시스템들에 관한 것이다. 이러한 기술들은 다중 비트 레이트 스트리밍 응용 및 다중 코어 비디오 인코딩 응용과 관련하여 설명된다. 그러나, 이러한 기술들은 다른 비디오 인코딩 응용들에 더 널리 적용될 수 있다.
본 명세서에서 설명되는 다양한 기술들 및 도구들은 독립적으로 이용될 수 있다. 이러한 기술들 및 도구들 중 일부는 결합하여 이용될 수 있다. 아래에서, 다양한 기술들은 처리 동작들의 흐름도들을 참조하여 설명된다. 흐름도들에 도시되는 다양한 처리 동작들은 더 적은 동작들로 통합되거나, 더 많은 동작들로 분리될 수 있다. 간략화를 위해, 특정 흐름도에 도시된 동작들과 다른 곳에서 설명되는 동작들의 관계는 종종 도시되지 않는다. 많은 예에서, 흐름도 내의 동작들은 재배열될 수 있다.
I. 사전 계산된 모션 정보를 이용하는 비디오 인코더
도 1은 후술하는 다중 비트 레이트 및 다중 코어 응용들에서 사용될 수 있는 비디오 인코더(100)의 일례를 나타낸다. 비디오 인코더(100)는 비디오 콘텐츠의 "미처리" (비압축) 프레임들 및 또한 비디오 콘텐츠에 대한 이전에 계산된 모션 정보를 수신하기 위한 입력들(110, 120)을 갖는다. 이어서, 비디오 인코더는 비디오 콘텐츠의 기준 프레임들의 인트라프레임 코딩을 수행하고, 모션 정보를 이용하여, 비디오 콘텐츠의 예측 프레임들의 인터프레임 코딩을 수행한다. 인코딩은 윈도 미디어 비디오 포맷, SMPTE 421-M 포맷, MPEG-x 포맷(예컨대, MPEG-1, MPEG-2 또는 MPEG-4), H.26x 포맷(예컨대, H.261, H.262, H.263 또는 H.264) 또는 다른 포맷과 같은 공지된 비디오 인코딩 표준에 따라 수행될 수 있다. 그러나, 인터프레임 코딩의 경우, 비디오 인코더는 예측 프레임에 대해 그 자신의 모션 추정을 수행하지 않고 예측 프레임의 인터프레임 코딩을 위해 사전 계산된 모션 정보를 이용하기로 선택할 수 있다. 비디오 인코더는 비디오 콘텐츠를 출력(130)으로서 제공되는 압축 비트스트림으로 인코딩한다. 비디오 인코더는 그가 입력 비디오 콘텐츠의 인터프레임 압축에 사용한 모션 정보를 모션 정보 출력(140)으로서 출력할 수도 있다.
도 2는 아래에 더 충분히 설명되는 다중 비트 레이트 및 다중 코어 기술들을 구현할 수 있는 비디오 인코더(100)의 하나의 예시적인 적절한 구현을 나타내는 일반화된 블록도이다. 비디오 인코더(100)는 비디오 픽처들(프레임들)의 시퀀스를 사전 계산된 모션 정보 입력(120)과 더불어 그의 미처리 비디오 콘텐츠 입력(110)으로서 수신하고, 압축 비트 스트림(130)을 출력으로서 생성한다.
비디오 인코더(100)는 비디오 픽처들을 처리한다. "픽처"라는 용어는 일반적으로 코딩 또는 재구성된 소스 이미지 데이터를 지칭한다. 프로그레시브 비디오의 경우, 픽처는 프로그레시브 비디오 프레임이다. 인터레이스 비디오(interlaced video)의 경우, 픽처는 상황에 따라 인터레이스 비디오 프레임, 프레임의 상부 필드 또는 프레임의 하부 필드를 지칭할 수 있다.
비디오 인코더(100)는 입력 비디오의 인터코딩된 예측 픽처들 및 입력 비디오의 인트라코딩된 픽처들을 압축한다. 설명을 위해, 도 2는 인코더(100)를 통한 인트라코딩된 프레임들에 대한 경로 및 인터코딩된 예측 프레임들에 대한 경로를 도시한다. 비디오 인코더(100)의 컴포넌트들 중 다수는 인트라코딩된 콘텐츠 및 인터코딩된 예측 콘텐츠 양자를 압축하는 데 사용된다. 이러한 컴포넌트들에 의해 수행되는 정확한 동작들은 압축되는 정보의 유형에 따라 달라질 수 있다.
일반적으로, 비디오 인코더(100) 내에서, 인터코딩된 예측 프레임(픽처)은 이전에 재구성된 콘텐츠(통상적으로 기준 픽처들 또는 앵커들로서 지칭되는 하나 이상의 다른 픽처)로부터의 예측에 의해 표현된다. 예컨대, 주어진 시간의 콘텐츠는 프로그레시브 P 프레임 또는 B 프레임, 인터레이스 P 필드 또는 B 필드, 또는 인터레이스 P 프레임 또는 B 프레임으로서 인코딩된다. 비디오 인코더(100) 내에서, 예측 잔차는 예측 정보와 이에 대응하는 인트라코딩된 프레임들 사이의 차이이다.
인터 경로 상의 입력 비디오(110) 콘텐츠는 모션 정보에 기초하여 예측 픽처로서 인코딩된다. 소정 조건들이 충족되는 경우, 비디오 인코더(100)는 하나 이상의 기준 픽처들에 관한 인터 경로 비디오 픽처의 샘플들의 매크로블록들 또는 다른 세트들에 대한 모션 벡터의 세트 또는 시퀀스의 형태일 수 있는 (선택 스위치(256)로 도시된 바와 같은) 입력(120)으로부터의 미리 계산된 모션 정보를 이용한다. 일반적으로, 미리 계산된 모션 정보를 이용하기 위한 선택은 첫째, 미리 계산된 모션 정보의 가용성; 둘째, 어느 인코딩 파라미터들이 모션 정보의 이전 계산 및 비디오 콘텐츠의 현재 인코딩에 사용된 파라미터들로부터 변경되었는지 그리고 변경되었는지의 여부에 기초할 수 있다. 일례에서, 비디오 인코더는 비디오 인코더가 현재 인코딩하고 있는 것과 다른 비디오 해상도를 갖는 비디오 콘텐츠를 인코딩하기 위해 모션 정보가 계산된 경우에는 입력(130)으로부터의 이전에 계산된 모션 정보를 이용하지 않기로 결정할 것이다.
그러나, 비디오 인코더(100)는 그 대신에 모션 추정기(258)를 이용하여 인터 경로 비디오 콘텐츠(110)에 대한 새로운 모션 추정을 수행하기로 결정할 수 있다(다시 선택 스위치(256)로 표시됨). 모션 추정기(258)는 이전에 인코딩된 비디오 콘텐츠 프레임들의 재구성들을 나타내는 하나 이상의 기준 픽처들에 관한 비디오 픽처의 샘플들의 매크로블록들 또는 다른 세트들의 모션을 추정한다. 픽처 저장소(264)는 이러한 재구성된 비디오 콘텐츠(266)를 기준 픽처 또는 픽처들로서 버퍼링한다. 다수의 기준 픽처가 사용될 때, 다수의 기준 픽처는 상이한 시간 방향들 또는 동일한 시간 방향으로부터 유래할 수 있다. 모션 추정기(258)는 모션 벡터 정보와 같은 모션 정보(260)를 출력한다.
모션 보상기(262)는 모션 보상된 현재 픽처(268)를 형성할 때 (사전 계산된 모션 정보 입력으로부터인지 또는 새로운 모션 추정으로부터인지에 관계없이) 모션 벡터들을 (기준 픽처(들)로서 저장된) 소정의 재구성된 비디오 콘텐츠(266)에 적용한다. (존재할 경우) 모션 보상된 픽처(268)의 블록과 이에 대응하는 오리지널 인터 경로 비디오 픽처의 블록 사이의 차이는 블록에 대한 예측 잔차(270)이다. (예를 들어, 비디오 디코더에서의) 인터 경로 비디오 프레임의 후속 재구성 동안에, 재구성된 예측 잔차들을 모션 보상된 잔차 비디오(268)에 추가하여, 오리지널 인터 경로 비디오(256)에 더 가까운 재구성된 콘텐츠를 획득한다. 그러나, 유손실 압축에서는, 오리지널 인터 경로 비디오로부터 여전히 소정의 정보가 손실된다. 대안으로서, 모션 추정기 및 모션 보상기가 다른 유형의 모션 추정/보상을 적용한다.
주파수 변환기(280)는 공간 도메인 비디오 정보를 주파수 도메인(즉, 스펙트럼, 변환) 데이터로 변환한다. 블록 기반 비디오 콘텐츠에 대해, 주파수 변환기(280)는 샘플들 또는 예측 잔차 데이터의 블록들에 DCT, DCT의 변형 또는 다른 순방향 블록 변환을 적용하여, 주파수 변환 계수들의 블록들을 생성한다. 주파수 변환기(280)는 8x8, 8x4, 4x8, 4x4 또는 다른 크기의 주파수 변환을 적용할 수 있다.
이어서, 양자화기(282)는 변환 계수들의 블록들을 양자화한다. 양자화기(282)는 픽처별로, 매크로블록별로 또는 다른 방식으로 공간적으로 변하는 스텝 크기로 스펙트럼 데이터에 불균일한 스칼라 양자화를 적용한다. 또한, 일부 예들에서, 양자화기는 인터 계층 잔차 비디오 픽처의 컬러 채널들에 걸쳐 양자화를 변경한다. 양자화기(282)는 또한 다른 유형의 양자화, 예컨대 균일 또는 적응성 양자화를 적어도 일부 스펙트럼 데이터 계수들에 대해 적용할 수 있거나, 주파수 변환들을 이용하지 않는 인코더 시스템에서 공간 도메인 데이터를 직접 양자화한다.
재구성된 비디오 콘텐츠가 인터 경로 비디오 픽처의 후속 모션 추정/보상을 위해 필요할 때, 역양자화기(290)는 양자화된 스펙트럼 데이터 계수들에 대해 역양자화를 수행한다. 주파수 역변환기(292)는 주파수 역변환을 수행하여, (예측된 인터 경로 잔차 비디오 콘텐츠에 대한) 재구성된 예측 잔차들 또는 (인트라 경로 잔차 비디오 콘텐츠에 대한) 샘플들의 블록들을 생성한다. 잔차 비디오 콘텐츠(256)가 모션 보상 예측된 경우, 재구성된 예측 잔차들을 모션 보상된 예측기들(268)에 추가하여, 재구성된 잔차 비디오를 형성한다. 픽처 저장소(264)는 후속 모션 보상 예측에서 사용하기 위해 재구성된 잔차 비디오를 버퍼링한다.
엔트로피 코더(284)는 양자화기(282)의 출력은 물론, 소정의 부수 정보(예컨대, 양자화 파라미터 값들)를 압축한다. 대표적인 엔트로피 코딩 기술들은 산술 코딩, 미분 코딩, 후프만 코딩, 실행 길이 코딩, LZ 코딩, 사전적 코딩 및 이들의 조합을 포함한다. 엔트로피 코더(284)는 통상적으로 상이한 종류의 정보에 대해 상이한 코딩 기술들을 이용하며, 특정 코딩 기술 내에서 다수의 코딩 테이블 중에서 선택할 수 있다.
비디오 인코더(240)가 인트라 경로 비디오 콘텐츠의 인트라 압축을 수행할 때, 인코더는 이를 모션 보상 없이 인트라 코딩된 픽처로서 인트라 압축한다. 비디오(256)는 주파수 변환기(280), 양자화기(282) 및 엔트로피 코더(284)에 직접 제공되고, 인코딩된 비디오로서 출력된다. 인트라 코딩된 비디오의 재구성된 버전은 다른 인터 경로 비디오의 후속 모션 보상에 사용하기 위해 버퍼링될 수 있다.
제어기(294)는 모션 추정기(258), 주파수 변환기(280), 양자화기(282), 역양자화기(290) 및 엔트로피 코더(284)와 같은 다양한 모듈들로부터 입력들을 수신한다. 제어기(294)는 인코딩 동안에 중간 결과들을 평가하여, 예컨대 양자화 스텝 크기들을 설정하고, 레이트 왜곡 분석을 수행한다. 제어기(294)는 다른 모듈들과 연계하여, 인코딩 동안에 코딩 파라미터들을 설정 및 변경한다. 제어기(294)가 상이한 코딩 파라미터 선택들을 평가할 때, 제어기(294)는 상이한 파라미터 설정들을 평가하기 위해 소정의 단계들을 반복적으로 수행하거나, 제어기(294)는 상이한 코딩 파라미터들을 함께 평가할 수 있다. 평가될 코딩 파라미터 결정들의 트리 및 대응하는 인코딩의 타이밍은 구현에 의존한다. 일부 실시예들에서, 제어기(294)는 또한 인코딩 세션 마법사 인터페이스, 다른 인코더 애플리케이션 인터페이스, 또는 다른 소스로부터 입력을 수신하여, 특정 규칙들을 이용하여 인코딩될 비디오를 지정한다.
일부 응용들에서, 비디오 인코더(100)는 후술하는 다중 비트 레이트 응용에서 상이한 비트 레이트를 달성하기 위하여 다양한 다른 인코딩 파라미터들을 이용하여 미처리 비디오 콘텐츠를 인코딩하기 위한 사전 계산된 모션 정보로서 사용하는 것 등을 위해, (사전 계산된 모션 정보 입력(130)으로부터 또는 모션 추정기(258)로부터인지에 관계없이) 인터 경로 비디오 콘텐츠의 모션 보상에 사용된 모션 정보를 출력할 수도 있다.
II . 다중 비트 레이트 비디오 인코더
도 1 및 2에 도시된 비디오 인코더(100)는 다중 비트 레이트 비디오 스트리밍 응용들을 위한 인덱스된 파일을 생성하는 데 사용될 수 있다. 일반적으로, 인덱스된 파일은 멀티미디어 프로그램의 비디오를 다수의 스트리밍 세그먼트로 분할하고, 다양한 비트 레이트의 비디오 세그먼트들을 나타내는 다수의 압축된 비트 스트림을 포함한다.
일반적으로, 다중 비트 레이트 스트리밍을 위한 인덱스된 파일은 다양한 비트 레이트로 멀티미디어 콘텐츠를 서비스하기 위해 표준 HTTP 서버들에 의해 사용될 수 있으며, 비트 레이트 선택(레이트 제어)은 클라이언트측에서(예컨대, 클라이언트측에서만) 수행된다. 클라이언트들은 먼저 프로그램의 스트리밍 세그먼트들에 대해 이용 가능한 다양한 비트 레이트를 기술하는 인덱스 정보를 서버로부터 획득함으로써 레이트 제어를 수행할 수 있다. 인덱스 정보 및 아마도 다른 정보(예컨대, 네트워크 대역폭, 버퍼 정보 등)에 기초하여, 클라이언트는 원하는 사용자 경험(예컨대, 이용 가능한 비트 레이트들 및 현재의 네트워크 조건들에 기초하여 가능한 최상의 사용자 경험)을 제공하기 위하여 서버로부터 어떠한 비트 레이트의 스트리밍 세그먼트들을 다운로드할지를 결정할 수 있다.
(예컨대, 전통적인 HTTP 서버들이 아닌) 다른 유형의 컴퓨팅 장치들이 인덱스된 파일을 이용하여 파일들을 제공할 수 있다. 예컨대, 컴퓨팅 장치(예컨대, 퍼스널 컴퓨터, 서버 컴퓨터, 또는 특수 목적 스트리밍 미디어 서버)는 인덱스된 파일 레이아웃을 이용하여, 다양한 파일 서빙 프로토콜들(예컨대, 파일 전송 프로토콜(FTP), 하이퍼텍스트 전송 프로토콜(HTTP), 실시간 스트리밍 프로토콜(RTSP), 마이크로소프트 미디어 서비스(MMS) 등)을 이용하여 멀티미디어 콘텐츠를 서비스할 수 있다.
비트 레이트 스위칭을 지원하기 위하여, 프로그램들은 스트리밍 세그먼트들(독립 유닛들)이라고 하는 시간 청크들로 분할된다. 서버는 하나 이상의 비트 레이트의 각각의 스트리밍 세그먼트를 저장한다(예컨대, 각각의 스트리밍 세그먼트-비트 레이트 조합은 개별 스트리밍 세그먼트 인코딩이다). 각각의 스트리밍 세그먼트는 프로그램의 특정 트랙(예컨대, 영어 오디오 트랙과 같은 특정 오디오 트랙, 또는 특정 비디오 트랙)에 대한 하나 이상의 이용 가능한 비트 레이트 인코딩을 포함한다. 이어서, 클라이언트들은 각각의 스트리밍 세그먼트에 대해 이용 가능 비트 레이트들로부터(예컨대, 이용 가능한 스트리밍 세그먼트 인코딩들로부터) 어느 비트 레이트를 다운로드할지를 결정한다. 예컨대, 클라이언트는 (제1 스트리밍 세그먼트에 대한 하나 이상의 이용 가능한 스트리밍 세그먼트 인코딩들로부터의) 250Kb/sec(초당 킬로비트)로 인코딩된 비디오 트랙에 대한 제1 스트리밍 세그먼트, (제2 스트리밍 세그먼트에 대한 하나 이상의 이용 가능한 스트리밍 세그먼트 인코딩들로부터의) 500Kb/sec로 인코딩된 비디오 트랙에 대한 제2 스트리밍 세그먼트, 및 (제3 스트리밍 세그먼트에 대한 하나 이상의 이용 가능한 스트리밍 세그먼트 인코딩들로부터의) 1Mb/sec(초당 메가비트)로 인코딩된 비디오 트랙에 대한 제3 스트리밍 세그먼트를 획득할 수 있다. 각각의 스트리밍 세그먼트 인코딩은 일정한 비트 레이트(CBR) 또는 가변 비트 레이트(VBR)로 수행될 수 있다(그리고 CBR 및 VBR의 사용은 스트리밍 세그먼트 인코딩별로 혼합될 수 있다).
도 3은 인덱스된 파일 레이아웃을 이용하는 멀티미디어 콘텐츠의 세그먼트 스트리밍을 위한 시스템의 일반화된 블록도(300)를 도시한다. 도면(300)에서, 서버(310)(예컨대, 표준 HTTP 서버와 같은 서버 컴퓨터 시스템)는 멀티미디어 콘텐츠를 네트워크(330)(예컨대, 인터넷)를 통해 클라이언트(320)(예컨대, 랩탑 또는 데스크탑 컴퓨터와 같은 클라이언트 컴퓨터 시스템, 또는 PDA 또는 이동 전화와 같은 다른 유형의 컴퓨팅 장치)에 제공한다. 도면(300)에서, 서버(310)는 인덱스된 파일 내에 프로그램들을 저장한다. 클라이언트(320)는 클라이언트측 레이트 제어 소프트웨어 및/또는 하드웨어를 포함한다.
하나의 구체적인 구현 예에서, 서버(310)는 파일들을 서비스하는 능력 외에는 어떠한 특수한 스트리밍 능력도 없는 표준 HTTP 서버이다. 서버(310)는 어떠한 특수한 비트 레이트 선택 능력도 지원하지 않으므로, 클라이언트(320)는 모든 비트 레이트 선택 활동들을 수행해야 한다. 이러한 구현에서, 클라이언트(320)는 모든 비트 레이트 선택 활동들을 수행한다. 예컨대, 클라이언트(320)는 서버(310)로부터 얻은 인덱스 정보를 (단독으로 또는 클라이언트 버퍼 정보, 네트워크 대역폭 등과 같은 다른 정보와 함께) 이용하여 레이트 제어를 수행할 수 있다. 그러나, 다른 구현들에서는, 레이트 제어 기능들의 일부 또는 전부가 서버에서 이루어질 수 있다.
도 4는 다중 비트 레이트 비디오 스트리밍 시스템(300)(도 3)에서 사용하기 위해 멀티미디어 프로그램의 비디오를 다양한 비트 레이트의 비트 스트림들(410-412)의 세트로 인코딩하기 위한 사전 계산된 모션 정보를 갖는 비디오 인코더(100)(도 1)를 이용하는 다중 비트 레이트 비디오 인코딩 시스템(400)을 나타낸다. 도면에 도시된 바와 같이, 비디오 인코딩 시스템(400)은 최초의 최고 비트 레이트 스트림(410)으로부터 시작하고, 감소 비트 레이트들의 연속인 비트 스트림들(411-412)을 포함하는 비트 스트림들의 세트를 생성한다. 설명의 목적으로, 도 4는 3개의 연속 감소하는 비트 레이트의 스트림들을 생성하는 다중 비트 레이트 비디오 인코딩 시스템(400)을 도시한다. 그러나, 다중 비트 레이트 비디오 인코딩 시스템은 다양한 비트 레이트의 임의 수의 스트림을 생성하도록 설계될 수 있다는 것이 명백해야 한다.
도 5는 비트 스트림들(410-412)의 세트를 인코딩하기 위한 다중 비트 레이트 비디오 인코딩 시스템(400)에 의해 수행되는 프로세스 흐름(500)을 나타낸다. 제1 액션에서, 다중 비트 레이트 비디오 인코딩 시스템(400)은 먼저 최초의 최고 비트 레이트 스트림(410)을 인코딩한다. 최초의 최고 비트 레이트 스트림(410)에 대해, 비디오 인코딩 시스템(400)은 비디오 인코더(100)의 비디오 입력(110)에 미처리 비디오 콘텐츠를 입력한다. 이것은 비디오 콘텐츠의 최초 인코딩이므로, 일반적으로 사전 계산된 모션 정보는 이용 가능하지 않으며, 비디오 인코더의 모션 정보 입력(120)은 0이다. 이 경우, 비디오 인코더(100)의 모션 추정기(258)(도 2)는 모션 추정 프로세스를 수행하여, 최고 비트 레이트 스트림에 대한 비디오 콘텐츠의 인터프레임들의 모션 보상을 위한 모션 정보를 생성한다. 대안으로서, (후술하는 다중 코어 모션 사전 계산을 이용하여 모션 정보가 사전 계산되는 경우 등과 같이) 사전 계산된 모션 정보가 이용 가능한 경우에, 사전 계산된 모션 정보는 비디오 인코더(100)의 입력(120)에 제공된다. 이어서, 비디오 인코더는 (예를 들어, 도 2의 모션 정보 선택 스위치(256)를 통해) 인코딩 동안에 인터프레임들의 모션 보상을 위해 입력된 모션 정보를 사용하기로 결정할 수 있다.
이어서, 액션들(511-518)의 반복 루프에서, 다중 레이트 비디오 인코딩 시스템은 각각의 후속 비트 레이트 스트림(411-412)을 인코딩한다. 연속 감소하는 비트 레이트들의 이러한 후속 스트림들(411-412)에 대해, 다중 비트 레이트 비디오 인코딩 시스템(400)은 다시 비디오 인코더(100)의 입력(110)에 동일한 미처리 비디오 콘텐츠를 제공한다. 또한, 각각의 스트림(410-412)의 모션 보상에 사용된 모션 정보가 비디오 인코더(100)의 출력(140)에 제공되고, 액션 512에 지시되는 바와 같이 다음 스트림(411-412)의 비디오 인코더의 모션 정보 입력(120)으로 전달된다. 따라서, 예를 들어, 최초 스트림(410)에 대해 비디오 인코더 내의 모션 추정기(258)에 의해 계산된 모션 정보는 더 낮은 다음 비트 레이트 스트림(411)의 비디오 인코더에 의한 사용을 위해 전달된다.
이어서, 액션들 513-517에 의해 지시되는 바와 같이, 각각의 후속 비트 레이트 스트림에 대한 비디오 인코더는 (예를 들어, 모션 정보 선택 스위치(256)를 통해) 이전 스트림으로부터 그의 입력(120)으로 전달된 모션 정보를 사용할지(액션 515) 또는 새로운 모션 추정을 수행할지(액션 516)를 결정한다. 일반적으로, 사전 계산된 모션 정보를 사용할지 또는 모션 추정을 새로 수행할지에 대한 결정은 모션 정보가 원하는 인코딩 효율 및 품질로 모션 보상을 수행하기에 충분한 신뢰성을 갖지 않을 수 있는 정도로 인코딩 파라미터들이 더 낮은 다음 비트 레이트를 달성하도록 변경되는지에 기초하여 이루어진다. 다중 비트 레이트 비디오 인코딩 시스템(400)의 하나의 예시적인 구현에서, 모션 정보 선택은 비디오 해상도가 현재 스트림(411-412)에 대해 새로운 더 낮은 비트 레이트를 달성하도록 변경되는지에 기초할 수 있다. 따라서, 비디오 인코더는 액션 513에서 스트림을 인코딩하는 데 사용될 비디오 해상도를 결정한다. 판정 514에서, 모션 정보 선택 스위치(256)는 비디오 해상도가 이전 스트림의 해상도에 비해 조정될지의 여부에 기초하여 어떠한 모션 정보를 사용할지를 결정한다. 비디오 해상도가 변경 없이 유지되는 경우, 비디오 인코더는 액션 515에 의해 지시되는 바와 같이 이전 스트림의 인코딩으로부터 전달된 모션 정보를 이용하여 후속 스트림을 인코딩하기로 결정한다. 그러나, 비디오 해상도가 변경되는 경우, 비디오 인코더는 그 대신에 그의 모션 추정기(258)를 이용하여, 비디오 콘텐츠에 대한 새로운 모션 추정을 수행하며(액션 516), 기준 프레임들은 새로운 비디오 해상도로 인트라 코딩된다. 이어서, 액션 517에서, 비디오 인코더는 이 새로운 모션 정보를 이용하여 스트림을 인코딩한다. 이어서, 새로 계산된 모션 정보는 (다음 후속 스트림을 인코딩하기 위한 루프 511-518의 다음 반복 내의 액션 512에서) 더 낮은 다음 비트 레이트 스트림의 비디오 인코더로 전달될 것이다.
이러한 방식으로, 이전 비트 레이트 스트림의 인코딩 동안에 모션 추정으로부터 계산된 모션 정보가 전달되고, 다중 비트 레이트 비디오 인코딩 시스템(400)에 의해 후속하는 더 낮은 비트 레이트 스트림의 인터프레임들의 인코딩을 위해 사용될 수 있다.
III . 다중 코어 모션 계산 비디오 인코더
전술한 비디오 인코더(100)의 모션 추정기(258)와 유사하게, 통상적으로 모션 추정은 이전에 인코딩된 프레임(예컨대, 통상적으로 비디오의 이전에 인코딩된 인트라프레임)으로부터 일반적으로 (즉, 비디오 인코더에 의해 수행되는 바와 같이) 재구성되는 기준 픽처에 관하여 인터프레임 픽처 내의 샘플들의 블록들 또는 유사한 다른 세트에 대해 수행된다. 통상적으로, 모션 추정은 기준 픽처 내의 가장 유사하게 매칭되는 블록에 대한 검색을 포함한다. 즉, 모션 추정은 인터프레임 픽처의 주어진 블록에 대해 최소 잔차를 생성하는 기준 픽처 내의 블록을 찾으려고 시도하며, 주어진 인터프레임 픽처 블록과 기준 프레임의 가장 유사한 매칭 블록 사이의 공간적 변위인 (모션 벡터와 같은) 모션 정보를 산출한다. 모션 추정이 재구성된 인트라 코딩된 프레임들인 기준 프레임들을 사용하는 이유는 그러한 이전에 인코딩된 프레임들만이 인터코딩된 프레임들의 재구성에 사용하기 위해 디코더에서 동일하게 이용될 수 있기 때문이다.
아래의 섹션은 비디오 인코더(100)에 대한 사전 계산된 모션 정보 입력으로서 나중에 사용될 수 있는 미처리 비디오 콘텐츠에 대한 모션 추정 사전 계산을 수행하기 위해 다중 코어 프로세서 컴퓨터를 사용하는 기술을 설명한다. 통상의 모션 추정과 달리, 이 모션 추정 사전 계산은 비디오 콘텐츠의 (인트라프레임 코딩을 포함하는) 임의의 인코딩 전에 수행된다. 따라서, 기준 프레임들로서 사용하기 위해 재구성될 수 있는 이전에 인코딩된 프레임들은 아직 이용 가능하지 않다. 이러한 다중 코어 모션 정보 사전 계산 기술들은 재구성된 인트라코딩된 프레임 픽처들이 아니라 미처리 비디오 콘텐츠의 프레임들을 모션 추정의 기준 픽처들로서 사용한다. 비디오 인코더(100)에 의해 나중에 인코딩될 때의 양자화 및 다른 압축 손실로 인해, 기준 프레임들로서 사용되는 이러한 미처리 비디오 프레임들은 일반적으로 디코더에서 동일하게 재구성되지 못한다. 이러한 다중 코어 모션 추정 사전 계산에서는 미처리 비디오 프레임들을 기준 픽처들로서 사용하므로, 모션 정보는 재구성된 이전에 인코딩된 인트라 프레임들에 기초하는 비디오 인코딩 동안의 모션 추정만큼 정확하지 않을 수 있으며, 이는 인터프레임 인코딩을 위해 사용될 때 더 낮은 압축 효율로 이어질 수 있다.
도 6은 사전 계산된 모션 정보 입력 비디오 인코더(100)(도 1)를 이용하는 인코딩과 더불어 다중 코어 프로세서 컴퓨터 상에서의 모션 정보 사전 계산을 포함하는 비디오 인코딩 시스템(600)의 하나의 예시적인 구현을 나타낸다. 비디오 인코딩 시스템(600)은 (비디오 인코딩 전의) 사전 계산으로서 모션 추정을 수행한다.
비디오 인코딩 시스템(600)은 다중 코어 프로세서 컴퓨터(610)의 개별 CPU 코어들(620-623) 사이에 모션 추정의 계산 부하를 분산시킴으로써 성능 이익을 달성한다. 다중 코어 프로세서 컴퓨터(610)는 모션 추정을 처리하는 임의 수 "n"개의 CPU 코어를 가질 수 있다. 예를 들어, 인텔 및 다른 회사들에 의해 제조되는 현재 이용 가능한 다중 코어 컴퓨터들은 4, 8, 16, 32, 64, 심지어 더 많은 프로세서 코어들을 갖는다.
모션 추정을 위해, CPU 코어들(620-623)은 미처리 비디오 콘텐츠의 프레임들의 그룹의 개별 인터프레임 출력의 모션 추정을 각각 수행하도록 할당된다. 이러한 방식으로, 모션 추정 사전 계산은 CPU 코어들 사이의 메모리 충돌을 피한다. (도면에서 F0 내지 Fn으로 표시된) 미처리 비디오 콘텐츠의 개별 인터프레임들은 각각의 기준 프레임과 더불어 컴퓨터(610)의 개별 CPU 코어들에 제공된다. CPU 코어들은 그들 각각의 인터프레임 픽처에 대해 모션 추정을 수행하고, (인터프레임의 블록들에 대한 모션 벡터들의 세트와 같은) 모션 정보를 생성한다. 이어서, 이것은 전체 비디오 시퀀스 또는 프로그램에 대한 모션 정보를 생성하기 위해 (예를 들어, 반복마다 "n"개의 프레임의 그룹들에서) 미처리 비디오 콘텐츠의 인터프레임 픽처들의 다음 그룹에 대해 반복된다.
이어서, CPU 코어들을 이용하는 모션 추정 사전 계산에 의해 생성된 모션 정보는 미처리 비디오 콘텐츠와 함께 비디오 인코더(100)(도 1)에 입력될 수 있다. 이어서, 비디오 인코더(100)는 비디오의 인코딩을 진행하며, 이러한 인코딩은 다중 코어 모션 추정 사전 계산으로부터의 모션 정보를 이용하는 비디오 콘텐츠의 인터프레임들의 인코딩을 포함한다. 비디오 인코더(100)는 다중 코어 모션 추정 사전 계산으로부터의 모션 정보를 이용하므로, 비디오 인코더(100)는 (모션 추정기(258)에서의) 모션 추정 수행 자체를 피하여, 비디오 인코딩의 상당한 부분을 줄인다. 모션 추정은 비디오 프레임들이 인코딩됨에 따라 순차적으로 수행되는 것이 아니라, 다수의 CPU 코어 사이에서 사전 계산으로서 본질적으로 병렬로 수행되므로, 이러한 다중 코어 비디오 인코더는 훨씬 더 빠른 비디오 인코딩을 달성한다.
IV . 대표적인 컴퓨팅 환경
도 7은 설명된 실시예들, 기법들 및 기술들을 구현할 수 있는 적합한 컴퓨팅 환경(700)의 일반 예를 나타낸다. 기술은 다양한 범용 또는 특수 목적 컴퓨팅 환경들에서 구현될 수 있으므로, 컴퓨팅 환경(700)은 기술의 용도 또는 기능성의 범위에 관해 어떤 제한을 암시하고자 하는 것이 아니다. 예를 들어, 개시되는 기술은 핸드헬드 장치, 멀티프로세서 시스템, 마이크로프로세서 기반 또는 프로그램가능한 가전제품, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터 등을 포함하는 다른 컴퓨터 시스템 구성들을 이용하여 구현될 수 있다. 개시되는 기술은 통신 네트워크를 통해 연결되어 있는 원격 처리 장치들에 의해 태스크가 수행되는 분산 컴퓨팅 환경들에서도 실시될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈들은 로컬 및 원격 메모리 저장 장치 둘다에 위치할 수 있다.
도 7과 관련하여, 컴퓨팅 환경(700)은 적어도 하나의 중앙 처리 장치(710) 및 메모리(720)를 포함한다. 전술한 다중 코어 모션 정보 사전 계산을 위해, 컴퓨터는 복수의 CPU 코어를 갖는 다중 코어 CPU를 포함한다. 도 7에서, 이러한 가장 기본적인 구성(730)은 점선 내에 포함된다. 중앙 처리 장치(710)는 컴퓨터 실행가능 명령어들을 실행하며, 실제 또는 가상 프로세서일 수 있다. 다중 처리 시스템에서는, 처리 능력을 향상시키기 위하여 다수의 처리 장치가 컴퓨터 실행가능 명령어들을 실행하며, 따라서 다수의 프로세서가 동시에 실행될 수 있다. 메모리(720)는 휘발성 메모리(예컨대, 레지스터, 캐시, RAM), 비휘발성 메모리(예컨대, ROM, EEPROM, 플래시 메모리 등) 또는 이들의 소정 조합일 수 있다. 메모리(720)는 예를 들어 여기에 설명되는 기술들을 구현할 수 있는 소프트웨어(780)를 저장한다. 컴퓨팅 환경은 추가적인 특징들을 가질 수 있다. 예컨대, 컴퓨팅 환경(700)은 저장 장치(740), 하나 이상의 입력 장치(750), 하나 이상의 출력 장치(760) 및 하나 이상의 통신 접속(770)을 포함한다. 버스, 제어기 또는 네트워크와 같은 상호접속 메커니즘(도시되지 않음)이 컴퓨팅 환경(700)의 컴포넌트들을 상호접속한다. 통상적으로, 운영 체제 소프트웨어(도시되지 않음)는 컴퓨팅 환경(700)에서 실행되는 다른 소프트웨어에 대한 운영 환경을 제공하며, 컴퓨팅 환경(700)의 컴포넌트들의 활동들을 조정한다.
저장 장치(740)는 이동식 또는 비이동식일 수 있으며, 자기 디스크, 자기 테이프 또는 카세트, CD-ROM, CD-RW, DVD, 또는 정보를 저장하는 데 사용될 수 있고 컴퓨팅 환경(700) 내에서 액세스될 수 있는 임의의 기타 매체를 포함한다. 저장 장치(740)는 여기에 설명되는 기술들을 구현할 수 있는 소프트웨어(780)의 명령어들을 저장한다.
입력 장치(들)(750)는 키보드, 키패드, 마우스, 펜 또는 트랙볼과 같은 터치 입력 장치, 음성 입력 장치, 스캐닝 장치, 또는 컴퓨팅 환경(700)에 입력을 제공하는 다른 장치일 수 있다. 오디오의 경우, 입력 장치(들)(750)는 아날로그 또는 디지털 형태의 오디오 입력을 수신하는 사운드 카드 또는 유사한 장치, 또는 컴퓨팅 환경(700)에 오디오 샘플들을 제공하는 CD-ROM 판독기일 수 있다. 출력 장치(들)(760)는 디스플레이, 프린터, 스피커, CD 기록기, 또는 컴퓨팅 환경(700)으로부터 출력을 제공하는 다른 장치일 수 있다.
통신 접속(들)(770)은 통신 매체(예컨대, 접속 네트워크)를 통한 다른 컴퓨팅 엔티티와의 통신을 가능하게 한다. 통신 매체는 피변조 데이터 신호 내에서 컴퓨터 실행가능 명령어들, 압축된 그래픽 정보 또는 기타 데이터와 같은 정보를 운반한다.
컴퓨터 판독가능 매체들은 컴퓨팅 환경(700) 내에서 액세스될 수 있는 임의의 이용 가능 매체들이다. 제한이 아니라 예로서, 컴퓨팅 환경(700)에서, 컴퓨터 판독가능 매체들은 메모리(720), 저장 장치(740), 통신 매체 및 이들의 임의 조합들을 포함한다. 쉽게 이해해야 하듯이, 컴퓨터 판독가능 매체라는 용어는 피변조 데이터 신호들과 같은 전송 매체들만이 아니라, 메모리(720) 및 저장 장치(740)와 같은 데이터 저장용 매체들을 포함한다.
여기에 설명되는 임의의 방법은 그러한 방법들을 수행하는(예를 들어, 컴퓨팅 장치, 오디오 및/또는 비디오 처리 장치 또는 컴퓨터가 그러한 방법들을 수행하게 하는) 컴퓨터 실행가능 명령어들을 포함하는(예컨대, 갖거나 저장하는) 하나 이상의 컴퓨터 판독가능 매체(예컨대, 저장 장치 또는 다른 유형 매체들)를 통해 수행될 수 있다. 동작은 완전 자동, 반자동 또는 수동 개입을 필요로 할 수 있다.
상세한 설명 및 첨부 도면들에서 본 발명의 원리들을 설명하고 도시하였지만, 그러한 원리들로부터 벗어나지 않고, 다양한 실시예들의 배열 및 상세가 변경될 수 있다는 것을 인식할 것이다. 여기에 설명되는 프로그램들, 프로세스들 또는 방법들은 달리 지시되지 않은 한은 임의의 특정 유형의 컴퓨팅 환경과 관련되거나 그에 제한되지 않는다는 것을 이해해야 한다. 다양한 유형의 범용 또는 특수 컴퓨팅 환경들이 여기에 설명되는 가르침들과 함께 이용되거나, 그러한 가르침들에 따라 동작들을 수행할 수 있다. 소프트웨어로 설명된 실시예들의 요소들은 하드웨어로 구현될 수 있고, 그 반대도 마찬가지다.
본 발명의 원리들을 적용할 수 있는 많은 가능한 실시예에 비추어, 아래의 청구항들 및 이들의 균등물들의 범위 및 사상 내에 속할 수 있는 바와 같은 모든 그러한 실시예들을 본 발명으로서 청구한다.

Claims (8)

  1. 인코딩을 위해 입력된 미처리 비디오 콘텐츠(raw video content)를 다중 비트 레이트 비디오로 처리하는 방법으로서,
    점점 더 낮은 비트 레이트들의 연속인 압축 비디오 비트 스트림들(410, 411, 412)로서 인코딩하기 위해 미처리 비디오 콘텐츠(110)를 수신하는 단계;
    최고 비트 레이트로 최초 압축 비디오 비트 스트림(410)을 인코딩하는 단계(510) - 상기 최초 압축 비디오 비트 스트림의 인코딩은 상기 비디오의 인터 프레임 픽처들(inter frame pictures)의 인코딩을 위한 모션 정보를 생성함(512) -;
    상기 점점 더 낮은 비트 레이트들로 후속 압축 비디오 비트 스트림들을 인코딩하기 위해,
    이전 압축 비디오 비트 스트림의 인코딩으로부터 생성된 상기 모션 정보를 상기 후속 압축 비디오 비트 스트림의 인코딩으로 전달하는 단계;
    상기 후속 압축 비디오 비트 스트림에 대한 비디오 인코딩 파라미터들에 기초하는 조건이 충족되는지를 결정하는 단계(514);
    상기 조건이 충족되는 경우, 상기 후속 압축 비디오 비트 스트림(411, 412)을 인코딩하는 단계(515) - 상기 후속 압축 비디오 비트 스트림의 인터 프레임들은 상기 이전 압축 비디오 비트 스트림의 인코딩으로부터 전달된 상기 모션 정보를 이용하여 인코딩됨 -; 및
    상기 조건이 충족되지 않는 경우, 상기 후속 압축 비디오 비트 스트림의 재구성된 기준 프레임들에 기초하여 모션 추정을 수행하여(516) 새로운 모션 정보를 생성하고, 상기 후속 압축 비디오 비트 스트림을 인코딩하는 단계(517) - 상기 후속 압축 비디오 비트 스트림의 인터 프레임들은 상기 새로운 모션 정보를 이용하여 인코딩됨 -; 및
    상기 최초 압축 비디오 비트 스트림 및 후속 압축 비디오 비트 스트림을 포함하는 출력 다중 비트 레이트 비디오를 생성하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 조건은 상기 이전 압축 비디오 비트 스트림과 상기 후속 압축 비디오 비트 스트림 사이에서 비디오 해상도가 변경 없이 유지되는 것인 방법.
  3. 다중 코어 CPU를 갖는 컴퓨터에서 비디오를 인코딩하는 방법으로서,
    비디오의 인터 프레임 픽처들의 그룹들에 대한 모션 정보를 상기 비디오의 인코딩 이전의 모션 추정 사전 계산으로서 생성하는 단계 - 상기 모션 정보를 생성하는 단계는 그룹 내의 각각의 인터 프레임 픽처에 대해 상기 컴퓨터의 복수의 CPU 코어(620-623) 중 개별 CPU 코어 상에서 모션 추정을 수행하는 단계를 포함하고, 상기 모션 추정은 각각의 인터 프레임 픽처의 복수의 요소 세트에 대한 모션 정보를 생성함 -;
    상기 비디오를 인코딩하는 단계 - 상기 인코딩하는 단계는 상기 모션 추정 사전 계산에 의해 생성된 상기 모션 정보에 기초하여 상기 인터 프레임 픽처들을 인코딩하는 단계를 포함함 -; 및
    상기 인코딩된 비디오를 포함하는 출력 압축 비디오 비트 스트림(130)을 생성하는 단계
    를 포함하는 방법.
  4. 제3항에 있어서,
    상기 비디오를 점점 더 낮은 비트 레이트들의 하나 이상의 추가 스트림들로서 인코딩하는 단계 - 상기 추가 스트림들을 인코딩하는 단계는,
    이전 압축 비디오 비트 스트림의 인코딩으로부터 생성된 상기 모션 정보를 후속 압축 비디오 비트 스트림의 인코딩으로 전달하는 단계;
    상기 후속 압축 비디오 비트 스트림에 대한 비디오 인코딩 파라미터들에 기초하는 조건이 충족되는지를 결정하는 단계;
    상기 조건이 충족되는 경우, 상기 후속 압축 비디오 비트 스트림을 인코딩하는 단계 - 상기 후속 압축 비디오 비트 스트림의 인터 프레임들은 상기 이전 압축 비디오 비트 스트림의 인코딩으로부터 전달된 상기 모션 정보를 이용하여 인코딩됨 -; 및
    상기 조건이 충족되지 않는 경우, 상기 후속 압축 비디오 비트 스트림의 재구성된 기준 프레임들에 기초하여 모션 추정을 수행하여 새로운 모션 정보를 생성하고, 상기 후속 압축 비디오 비트 스트림을 인코딩하는 단계 - 상기 후속 압축 비디오 비트 스트림의 인터 프레임들은 상기 새로운 모션 정보를 이용하여 인코딩됨 -
    를 포함함 -; 및
    상기 최초 압축 비디오 비트 스트림 및 후속 압축 비디오 비트 스트림을 포함하는 출력 다중 비트 레이트 비디오를 생성하는 단계
    를 더 포함하는 방법.
  5. 제4항에 있어서, 상기 조건은 상기 이전 압축 비디오 비트 스트림과 상기 후속 압축 비디오 비트 스트림 사이에서 비디오 해상도가 변경 없이 유지되는 것인 방법.
  6. 다중 비트 레이트 비디오 스트리밍을 위한 압축 비디오 스트림들을 인코딩하기 위한 비디오 처리 시스템으로서,
    인코딩될 미처리 비디오 콘텐츠를 저장하기 위한 메모리(720); 및
    상기 미처리 비디오 콘텐츠를 복수의 압축 비디오 스트림으로서 인코딩하도록 프로그래밍된 컴퓨터 처리 수단(710)
    을 포함하고,
    상기 압축 비디오 스트림들의 인코딩은,
    모션 추정을 통해 상기 미처리 비디오 콘텐츠의 인터 프레임 픽처들을 인코딩하기 위한 오리지널 모션 정보를 생성하는 단계;
    상기 미처리 비디오 콘텐츠의 인터 프레임 픽처들을 인코딩하기 위한 오리지널 모션 정보를 이용하여 상기 미처리 비디오 콘텐츠로부터의 최상 품질 압축 비디오 비트 스트림(410)을 인코딩하는 단계;
    더 낮은 비트 레이트로 후속 압축 비디오 비트 스트림(411, 412)을 인코딩하기 위한 비디오 해상도를 결정하는 단계(513);
    상기 후속 압축 비디오 비트 스트림을 인코딩하기 위한 비디오 해상도가 변경되지 않을 경우, 상기 미처리 비디오 콘텐츠의 인터 프레임 픽처들을 인코딩하기 위한 오리지널 모션 정보를 다시 이용하여 상기 미처리 비디오 콘텐츠로부터의 후속 압축 비디오 비트 스트림을 인코딩하는 단계(515); 및
    그렇지 않고, 상기 후속 압축 비디오 비트 스트림을 인코딩하기 위한 비디오 해상도가 상기 최상 품질 압축 비디오 비트 스트림의 해상도로부터 크기조정된 경우, 상기 후속 압축 비디오 비트 스트림의 인트라 프레임 기준 픽처들에 대한 모션 추정을 통해 상기 미처리 비디오 콘텐츠의 인터 프레임 픽처들을 인코딩하기 위한 새로운 모션 정보를 생성하고(516), 상기 미처리 비디오 콘텐츠의 인터 프레임 픽처들을 인코딩하기 위한 새로운 모션 정보를 이용하여 상기 미처리 비디오 콘텐츠로부터의 후속 압축 비디오 비트 스트림들을 인코딩하는 단계(517)
    를 포함하는 비디오 처리 시스템.
  7. 제6항에 있어서, 상기 컴퓨터 처리 수단은 다수의 처리 코어를 갖는 다중 코어 컴퓨터 프로세서이고, 상기 오리지널 모션 정보를 생성하는 단계는 상기 미처리 비디오 콘텐츠의 인트라 프레임 픽처들의 인코딩 이전의 사전 계산으로서 상기 처리 코어들 중 개별 처리 코어 상에서 상기 미처리 비디오 콘텐츠의 인터 프레임 픽처들의 그룹 내의 각각의 인터 프레임 픽처에 대한 모션 추정을 수행하는 단계를 포함하는 비디오 처리 시스템.
  8. 제7항에 있어서,
    상기 미처리 비디오 콘텐츠의 인터 프레임 픽처들의 그룹에 대한 모션 추정을 생성하는 단계는,
    상기 다중 코어 컴퓨터 프로세서의 개별 처리 코어에 상기 그룹의 각각의 인터 프레임 픽처를 할당하는 단계; 및
    할당된 개별 처리 코어 상에서 각각의 인터 프레임 픽처에 대한 모션 추정을 수행하는 단계
    를 포함하는 비디오 처리 시스템.
KR1020117017614A 2009-01-29 2010-01-12 이전에 계산된 모션 정보를 이용하는 비디오 인코딩 KR101644208B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/362,427 2009-01-29
US12/362,427 US8311115B2 (en) 2009-01-29 2009-01-29 Video encoding using previously calculated motion information

Publications (2)

Publication Number Publication Date
KR20110106423A true KR20110106423A (ko) 2011-09-28
KR101644208B1 KR101644208B1 (ko) 2016-07-29

Family

ID=42354144

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117017614A KR101644208B1 (ko) 2009-01-29 2010-01-12 이전에 계산된 모션 정보를 이용하는 비디오 인코딩

Country Status (10)

Country Link
US (1) US8311115B2 (ko)
EP (1) EP2382785A4 (ko)
JP (1) JP5410549B2 (ko)
KR (1) KR101644208B1 (ko)
CN (1) CN102301717A (ko)
BR (1) BRPI1006846A8 (ko)
CA (1) CA2748374C (ko)
IL (1) IL213567A (ko)
MX (1) MX2011007374A (ko)
WO (1) WO2010088031A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190042234A (ko) * 2017-10-16 2019-04-24 삼성전자주식회사 영상 부호화 장치 및 인코더

Families Citing this family (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8472792B2 (en) 2003-12-08 2013-06-25 Divx, Llc Multimedia distribution system
US7519274B2 (en) 2003-12-08 2009-04-14 Divx, Inc. File format for multiple track digital data
JP5200204B2 (ja) 2006-03-14 2013-06-05 ディブエックス リミテッド ライアビリティー カンパニー 高信頼性システムを含む連合型デジタル権限管理機構
WO2009065137A1 (en) 2007-11-16 2009-05-22 Divx, Inc. Hierarchical and reduced index structures for multimedia files
US8997161B2 (en) 2008-01-02 2015-03-31 Sonic Ip, Inc. Application enhancement tracks
US20100010893A1 (en) * 2008-07-09 2010-01-14 Google Inc. Video overlay advertisement creator
US8311111B2 (en) 2008-09-11 2012-11-13 Google Inc. System and method for decoding using parallel processing
AU2010203605B2 (en) 2009-01-07 2015-05-14 Divx, Llc Singular, collective and automated creation of a media guide for online content
WO2010082904A1 (en) * 2009-01-15 2010-07-22 Agency For Science, Technology And Research Image encoding methods, image decoding methods, image encoding apparatuses, and image decoding apparatuses
US8396114B2 (en) * 2009-01-29 2013-03-12 Microsoft Corporation Multiple bit rate video encoding using variable bit rate and dynamic resolution for adaptive video streaming
US20100220786A1 (en) * 2009-02-27 2010-09-02 Hong Kong Applied Science and Technology Research Institute Company Limited Method and apparatus for multiple reference picture motion estimation
CA2782825C (en) 2009-12-04 2016-04-26 Divx, Llc Elementary bitstream cryptographic material transport systems and methods
FR2954035B1 (fr) * 2009-12-11 2012-01-20 Thales Sa Procede d'estimation de la qualite video a une resolution quelconque
US20110153984A1 (en) * 2009-12-21 2011-06-23 Andrew Wolfe Dynamic voltage change for multi-core processing
US20110299604A1 (en) * 2010-06-04 2011-12-08 Apple Inc. Method and apparatus for adaptive video sharpening
US8705616B2 (en) 2010-06-11 2014-04-22 Microsoft Corporation Parallel multiple bitrate video encoding to reduce latency and dependences between groups of pictures
WO2012016354A1 (en) * 2010-08-04 2012-02-09 Nxp B.V. Video player
CN103069797A (zh) * 2010-08-26 2013-04-24 飞思卡尔半导体公司 视频处理系统以及用于视频数据的并行处理的方法
US9247312B2 (en) 2011-01-05 2016-01-26 Sonic Ip, Inc. Systems and methods for encoding source media in matroska container files for adaptive bitrate streaming using hypertext transfer protocol
US9215466B2 (en) 2011-01-31 2015-12-15 Apple Inc. Joint frame rate and resolution adaptation
US20130021488A1 (en) * 2011-07-20 2013-01-24 Broadcom Corporation Adjusting Image Capture Device Settings
US8818171B2 (en) 2011-08-30 2014-08-26 Kourosh Soroushian Systems and methods for encoding alternative streams of video for playback on playback devices having predetermined display aspect ratios and network connection maximum data rates
US9467708B2 (en) 2011-08-30 2016-10-11 Sonic Ip, Inc. Selection of resolutions for seamless resolution switching of multimedia content
CN108989847B (zh) 2011-08-30 2021-03-09 帝威视有限公司 用于编码和流处理视频的系统和方法
US8964977B2 (en) 2011-09-01 2015-02-24 Sonic Ip, Inc. Systems and methods for saving encoded media streamed using adaptive bitrate streaming
US8909922B2 (en) 2011-09-01 2014-12-09 Sonic Ip, Inc. Systems and methods for playing back alternative streams of protected content protected using common cryptographic information
US9591318B2 (en) 2011-09-16 2017-03-07 Microsoft Technology Licensing, Llc Multi-layer encoding and decoding
US20130097220A1 (en) * 2011-10-14 2013-04-18 Bally Gaming, Inc. Streaming bitrate control and management
US9659437B2 (en) 2012-09-28 2017-05-23 Bally Gaming, Inc. System and method for cross platform persistent gaming sessions using a mobile device
US9672688B2 (en) 2011-10-14 2017-06-06 Bally Gaming, Inc. System and method for cross platform persistent gaming sessions using a mobile device
US9767642B2 (en) 2011-10-14 2017-09-19 Bally Gaming, Inc. System and method for cross platform persistent gaming sessions using a mobile device
US9100657B1 (en) 2011-12-07 2015-08-04 Google Inc. Encoding time management in parallel real-time video encoding
US8918908B2 (en) 2012-01-06 2014-12-23 Sonic Ip, Inc. Systems and methods for accessing digital content using electronic tickets and ticket tokens
US11089343B2 (en) 2012-01-11 2021-08-10 Microsoft Technology Licensing, Llc Capability advertisement, configuration and control for video coding and decoding
WO2013173721A1 (en) 2012-05-18 2013-11-21 Home Box Office, Inc. Audio-visual content delivery
US9532080B2 (en) * 2012-05-31 2016-12-27 Sonic Ip, Inc. Systems and methods for the reuse of encoding information in encoding alternative streams of video data
US9571827B2 (en) * 2012-06-08 2017-02-14 Apple Inc. Techniques for adaptive video streaming
US9197685B2 (en) 2012-06-28 2015-11-24 Sonic Ip, Inc. Systems and methods for fast video startup using trick play streams
US9143812B2 (en) 2012-06-29 2015-09-22 Sonic Ip, Inc. Adaptive streaming of multimedia
US10452715B2 (en) 2012-06-30 2019-10-22 Divx, Llc Systems and methods for compressing geotagged video
EP2875417B1 (en) 2012-07-18 2020-01-01 Verimatrix, Inc. Systems and methods for rapid content switching to provide a linear tv experience using streaming content distribution
US8914836B2 (en) 2012-09-28 2014-12-16 Sonic Ip, Inc. Systems, methods, and computer program products for load adaptive streaming
US8997254B2 (en) 2012-09-28 2015-03-31 Sonic Ip, Inc. Systems and methods for fast startup streaming of encrypted multimedia content
US9191457B2 (en) 2012-12-31 2015-11-17 Sonic Ip, Inc. Systems, methods, and media for controlling delivery of content
US9313510B2 (en) 2012-12-31 2016-04-12 Sonic Ip, Inc. Use of objective quality measures of streamed content to reduce streaming bandwidth
US9264475B2 (en) 2012-12-31 2016-02-16 Sonic Ip, Inc. Use of objective quality measures of streamed content to reduce streaming bandwidth
US20140205012A1 (en) * 2013-01-21 2014-07-24 Mediatek Inc. Method and apparatus using software engine and hardware engine collaborated with each other to achieve hybrid video encoding
KR101716071B1 (ko) 2013-02-27 2017-03-13 애플 인크. 적응적 스트리밍 기법
US9350990B2 (en) 2013-02-28 2016-05-24 Sonic Ip, Inc. Systems and methods of encoding multiple video streams with adaptive quantization for adaptive bitrate streaming
US9357210B2 (en) 2013-02-28 2016-05-31 Sonic Ip, Inc. Systems and methods of encoding multiple video streams for adaptive bitrate streaming
US10397292B2 (en) 2013-03-15 2019-08-27 Divx, Llc Systems, methods, and media for delivery of content
US9906785B2 (en) 2013-03-15 2018-02-27 Sonic Ip, Inc. Systems, methods, and media for transcoding video data according to encoding parameters indicated by received metadata
US9344517B2 (en) 2013-03-28 2016-05-17 Sonic Ip, Inc. Downloading and adaptive streaming of multimedia content to a device with cache assist
US10003792B2 (en) 2013-05-27 2018-06-19 Microsoft Technology Licensing, Llc Video encoder for images
US9094737B2 (en) 2013-05-30 2015-07-28 Sonic Ip, Inc. Network video streaming with trick play based on separate trick play files
US9247317B2 (en) 2013-05-30 2016-01-26 Sonic Ip, Inc. Content streaming with client device trick play index
US9967305B2 (en) 2013-06-28 2018-05-08 Divx, Llc Systems, methods, and media for streaming media content
US9343112B2 (en) 2013-10-31 2016-05-17 Sonic Ip, Inc. Systems and methods for supplementing content from a server
US10057590B2 (en) 2014-01-13 2018-08-21 Mediatek Inc. Method and apparatus using software engine and hardware engine collaborated with each other to achieve hybrid video encoding
JP2015173404A (ja) 2014-03-12 2015-10-01 富士通株式会社 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム
WO2015139165A1 (en) 2014-03-17 2015-09-24 Microsoft Technology Licensing, Llc Encoder-side decisions for screen content encoding
US9866878B2 (en) 2014-04-05 2018-01-09 Sonic Ip, Inc. Systems and methods for encoding and playing back video at different frame rates using enhancement layers
WO2016123792A1 (en) 2015-02-06 2016-08-11 Microsoft Technology Licensing, Llc Skipping evaluation stages during media encoding
KR102263696B1 (ko) * 2015-03-20 2021-06-10 삼성전자주식회사 무선통신 시스템에서 데이터 송수신 방법 및 장치
US20160316220A1 (en) * 2015-04-21 2016-10-27 Microsoft Technology Licensing, Llc Video encoder management strategies
US10136132B2 (en) 2015-07-21 2018-11-20 Microsoft Technology Licensing, Llc Adaptive skip or zero block detection combined with transform size decision
US10015499B1 (en) * 2015-07-30 2018-07-03 Teradici Corporation Method and apparatus for layered wavelet image compression
US9794574B2 (en) 2016-01-11 2017-10-17 Google Inc. Adaptive tile data size coding for video and image compression
US10542258B2 (en) 2016-01-25 2020-01-21 Google Llc Tile copying for video compression
US10075292B2 (en) 2016-03-30 2018-09-11 Divx, Llc Systems and methods for quick start-up of playback
EP3466051A1 (en) 2016-05-25 2019-04-10 GoPro, Inc. Three-dimensional noise reduction
US9639935B1 (en) 2016-05-25 2017-05-02 Gopro, Inc. Apparatus and methods for camera alignment model calibration
WO2017205597A1 (en) * 2016-05-25 2017-11-30 Gopro, Inc. Image signal processing-based encoding hints for motion estimation
US10148989B2 (en) 2016-06-15 2018-12-04 Divx, Llc Systems and methods for encoding video content
KR102205087B1 (ko) * 2016-06-17 2021-01-20 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 공유형 머신 러닝 데이터 구조
US10498795B2 (en) 2017-02-17 2019-12-03 Divx, Llc Systems and methods for adaptive switching between multiple content delivery networks during adaptive bitrate streaming
US10477064B2 (en) 2017-08-21 2019-11-12 Gopro, Inc. Image stitching with electronic rolling shutter correction
KR102476204B1 (ko) * 2017-10-19 2022-12-08 삼성전자주식회사 멀티 코덱 인코더 및 이를 포함하는 멀티 코덱 인코딩 시스템
US10440367B1 (en) * 2018-06-04 2019-10-08 Fubotv Inc. Systems and methods for adaptively encoding video stream

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050123058A1 (en) * 1999-04-27 2005-06-09 Greenbaum Gary S. System and method for generating multiple synchronized encoded representations of media data
US20060262844A1 (en) * 2005-05-17 2006-11-23 Douglas Chin Input filtering in a video encoder

Family Cites Families (139)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2389277A1 (fr) 1977-04-29 1978-11-24 Ibm France Procede de quantification a allocation dynamique du taux de bits disponible, et dispositif de mise en oeuvre dudit procede
FR2412987A1 (fr) 1977-12-23 1979-07-20 Ibm France Procede de compression de donnees relatives au signal vocal et dispositif mettant en oeuvre ledit procede
EP0064119B1 (fr) 1981-04-30 1985-08-28 International Business Machines Corporation Perfectionnement aux procédés de codage de la voix et dispositif de mise en oeuvre du procédé perfectionné
JPH0556275A (ja) 1990-08-30 1993-03-05 Sharp Corp 画像符号化装置及び画像復号装置
US5436665A (en) 1992-03-03 1995-07-25 Kabushiki Kaisha Toshiba Motion picture coding apparatus
EP0631444B1 (en) 1992-03-03 1998-12-23 Kabushiki Kaisha Toshiba Time-varying image encoder
JP3032088B2 (ja) 1992-03-03 2000-04-10 株式会社東芝 動画像符号化装置
DE4211945C1 (ko) 1992-04-09 1993-05-19 Institut Fuer Rundfunktechnik Gmbh, 8000 Muenchen, De
JP3508146B2 (ja) 1992-09-11 2004-03-22 ソニー株式会社 ディジタル信号符号化復号化装置、ディジタル信号符号化装置及びディジタル信号復号化装置
JP3185413B2 (ja) 1992-11-25 2001-07-09 ソニー株式会社 直交変換演算並びに逆直交変換演算方法及びその装置、ディジタル信号符号化及び/又は復号化装置
US5463424A (en) 1993-08-03 1995-10-31 Dolby Laboratories Licensing Corporation Multi-channel transmitter/receiver system providing matrix-decoding compatible signals
NL9301358A (nl) 1993-08-04 1995-03-01 Nederland Ptt Transcodeerinrichting.
US5537440A (en) 1994-01-07 1996-07-16 Motorola, Inc. Efficient transcoding device and method
US5515107A (en) 1994-03-30 1996-05-07 Sigma Designs, Incorporated Method of encoding a stream of motion picture data
US5541852A (en) 1994-04-14 1996-07-30 Motorola, Inc. Device, method and system for variable bit-rate packet video communications
US5617142A (en) 1994-11-08 1997-04-01 General Instrument Corporation Of Delaware Method and apparatus for changing the compression level of a compressed digital signal
US5623424A (en) 1995-05-08 1997-04-22 Kabushiki Kaisha Toshiba Rate-controlled digital video editing method and system which controls bit allocation of a video encoder by varying quantization levels
US5825929A (en) 1995-10-05 1998-10-20 Microsoft Corporation Transformation block optimization method
US5835495A (en) 1995-10-11 1998-11-10 Microsoft Corporation System and method for scaleable streamed audio transmission over a network
US6957350B1 (en) 1996-01-30 2005-10-18 Dolby Laboratories Licensing Corporation Encrypted and watermarked temporal and resolution layering in advanced television
US5996022A (en) 1996-06-03 1999-11-30 Webtv Networks, Inc. Transcoding data in a proxy computer prior to transmitting the audio data to a client
SE515535C2 (sv) 1996-10-25 2001-08-27 Ericsson Telefon Ab L M En transkoder
JPH10229420A (ja) 1997-02-17 1998-08-25 Matsushita Electric Ind Co Ltd 通信システム
JP3736808B2 (ja) 1997-07-25 2006-01-18 ソニー株式会社 編集装置、編集方法、再符号化装置及び再符号化方法
US6192075B1 (en) 1997-08-21 2001-02-20 Stream Machine Company Single-pass variable bit-rate control for digital video coding
EP0909094A1 (en) 1997-10-07 1999-04-14 CANAL+ Société Anonyme Multithread data processor
JPH11275592A (ja) 1998-01-22 1999-10-08 Victor Co Of Japan Ltd 動画像符号列変換装置及びその方法
US6192154B1 (en) 1998-01-26 2001-02-20 International Business Machines Corporation Two-pass encoding method of digital motion video sequences for constant-or variable bit rate
WO1999049664A1 (en) 1998-03-20 1999-09-30 Sgs-Thomson Microelectronics Asia Pacific (Pte) Ltd. Moving pictures encoding with constant overall bit rate
US6466623B1 (en) 1998-03-27 2002-10-15 Industrial Technology Research Institute Method and apparatus for motion estimation for high performance transcoding
JP4123567B2 (ja) 1998-04-30 2008-07-23 ソニー株式会社 画像信号処理装置及び方法
US6859496B1 (en) * 1998-05-29 2005-02-22 International Business Machines Corporation Adaptively encoding multiple streams of video data in parallel for multiplexing onto a constant bit rate channel
US6249288B1 (en) 1998-12-14 2001-06-19 Ati International Srl Multi thread display controller
US6434197B1 (en) 1999-01-07 2002-08-13 General Instrument Corporation Multi-functional transcoder for compressed bit streams
US6259741B1 (en) 1999-02-18 2001-07-10 General Instrument Corporation Method of architecture for converting MPEG-2 4:2:2-profile bitstreams into main-profile bitstreams
US6463414B1 (en) 1999-04-12 2002-10-08 Conexant Systems, Inc. Conference bridge processing of speech in a packet network environment
US6370502B1 (en) 1999-05-27 2002-04-09 America Online, Inc. Method and system for reduction of quantization-induced block-discontinuities and general purpose audio codec
US6426977B1 (en) 1999-06-04 2002-07-30 Atlantic Aerospace Electronics Corporation System and method for applying and removing Gaussian covering functions
DE19930879C1 (de) * 1999-07-05 2001-02-08 Siemens Ag Verfahren und Vorrichtung zur Unterdrückung von Stimulationen bei einem Magnetresonanztomographiegerät
US7315815B1 (en) 1999-09-22 2008-01-01 Microsoft Corporation LPC-harmonic vocoder with superframe structure
US6300973B1 (en) 2000-01-13 2001-10-09 Meir Feder Method and system for multimedia communication control
US6574279B1 (en) 2000-02-02 2003-06-03 Mitsubishi Electric Research Laboratories, Inc. Video transcoding using syntactic and semantic clues
US6522693B1 (en) 2000-02-23 2003-02-18 International Business Machines Corporation System and method for reencoding segments of buffer constrained video streams
US6404814B1 (en) 2000-04-28 2002-06-11 Hewlett-Packard Company Transcoding method and transcoder for transcoding a predictively-coded object-based picture signal to a predictively-coded block-based picture signal
US7206016B2 (en) 2000-05-01 2007-04-17 Polycom, Inc. Filtering artifacts from multi-threaded video
US6650705B1 (en) 2000-05-26 2003-11-18 Mitsubishi Electric Research Laboratories Inc. Method for encoding and transcoding multiple video objects with variable temporal resolution
US6647061B1 (en) 2000-06-09 2003-11-11 General Instrument Corporation Video size conversion and transcoding from MPEG-2 to MPEG-4
KR100341063B1 (ko) 2000-06-28 2002-06-20 송문섭 실시간 영상 통신을 위한 율제어 장치 및 그 방법
US20040125877A1 (en) 2000-07-17 2004-07-01 Shin-Fu Chang Method and system for indexing and content-based adaptive streaming of digital video content
US6963347B1 (en) 2000-08-04 2005-11-08 Ati International, Srl Vertex data processing with multiple threads of execution
GB2366464A (en) 2000-08-14 2002-03-06 Nokia Mobile Phones Ltd Video coding using intra and inter coding on the same data
US6934334B2 (en) 2000-10-02 2005-08-23 Kabushiki Kaisha Toshiba Method of transcoding encoded video data and apparatus which transcodes encoded video data
US7039116B1 (en) 2000-11-07 2006-05-02 Cisco Technology, Inc. Methods and apparatus for embedding and format conversion of compressed video data
US6741648B2 (en) 2000-11-10 2004-05-25 Nokia Corporation Apparatus, and associated method, for selecting an encoding rate by which to encode video frames of a video sequence
JP2002152752A (ja) 2000-11-13 2002-05-24 Sony Corp 画像情報変換装置及び方法
US7058127B2 (en) 2000-12-27 2006-06-06 International Business Machines Corporation Method and system for video transcoding
EP1413142A2 (de) * 2001-01-08 2004-04-28 Siemens Aktiengesellschaft Optimale snr-skalierbare videocodierung
US20020136298A1 (en) 2001-01-18 2002-09-26 Chandrashekhara Anantharamu System and method for adaptive streaming of predictive coded video data
JP4203707B2 (ja) 2001-01-31 2009-01-07 日本電気株式会社 事前解析を用いた動画像符号化装置、動画像符号化方法、及びそのプログラム。
US20040117427A1 (en) 2001-03-16 2004-06-17 Anystream, Inc. System and method for distributing streaming media
US20030028386A1 (en) 2001-04-02 2003-02-06 Zinser Richard L. Compressed domain universal transcoder
US6925501B2 (en) 2001-04-17 2005-08-02 General Instrument Corporation Multi-rate transcoder for digital streams
JP4038996B2 (ja) 2001-04-27 2008-01-30 松下電器産業株式会社 信号処理装置および信号処理方法
US6757648B2 (en) 2001-06-28 2004-06-29 Microsoft Corporation Techniques for quantization of spectral data in transcoding
JP4574090B2 (ja) 2001-09-21 2010-11-04 三菱電機株式会社 動画データ変換装置および動画データ変換プログラム
US6504494B1 (en) 2001-11-06 2003-01-07 Motorola, Inc. Software, method and apparatus for rate controlled image compression
US7027982B2 (en) 2001-12-14 2006-04-11 Microsoft Corporation Quality and rate control strategy for digital audio
US7319720B2 (en) 2002-01-28 2008-01-15 Microsoft Corporation Stereoscopic video
US7034897B2 (en) 2002-04-01 2006-04-25 Broadcom Corporation Method of operating a video decoding system
JP4193406B2 (ja) 2002-04-16 2008-12-10 三菱電機株式会社 映像データ変換装置および映像データ変換方法
US20030206597A1 (en) 2002-04-19 2003-11-06 Droplet Technology, Inc. System, method and computer program product for image and video transcoding
JP4275358B2 (ja) 2002-06-11 2009-06-10 株式会社日立製作所 画像情報変換装置およびビットストリーム変換機ならびに画像情報変換送信方法
KR100484148B1 (ko) 2002-07-27 2005-04-18 삼성전자주식회사 개선된 비트율 제어 방법과 그 장치
US6944224B2 (en) 2002-08-14 2005-09-13 Intervideo, Inc. Systems and methods for selecting a macroblock mode in a video encoder
US7292634B2 (en) 2002-09-24 2007-11-06 Matsushita Electric Industrial Co., Ltd. Image coding method and apparatus
WO2004030369A1 (en) 2002-09-27 2004-04-08 Videosoft, Inc. Real-time video coding/decoding
US20040136457A1 (en) 2002-10-23 2004-07-15 John Funnell Method and system for supercompression of compressed digital video
US6961377B2 (en) 2002-10-28 2005-11-01 Scopus Network Technologies Ltd. Transcoder system for compressed digital video bitstreams
US7318027B2 (en) 2003-02-06 2008-01-08 Dolby Laboratories Licensing Corporation Conversion of synthesized spectral components for encoding and low-complexity transcoding
US7142601B2 (en) 2003-04-14 2006-11-28 Mitsubishi Electric Research Laboratories, Inc. Transcoding compressed videos to reducing resolution videos
JP4196726B2 (ja) 2003-05-14 2008-12-17 ソニー株式会社 画像処理装置および画像処理方法、記録媒体、並びに、プログラム
US7391717B2 (en) 2003-06-30 2008-06-24 Microsoft Corporation Streaming of variable bit rate multimedia content
US7343291B2 (en) 2003-07-18 2008-03-11 Microsoft Corporation Multi-pass variable bitrate media encoding
US7627039B2 (en) 2003-09-05 2009-12-01 Realnetworks, Inc. Parallel video decoding
US7295612B2 (en) 2003-09-09 2007-11-13 Apple Inc. Determining the number of unidirectional and bidirectional motion compensated frames to be encoded for a video sequence and detecting scene cuts in the video sequence
US7535959B2 (en) 2003-10-16 2009-05-19 Nvidia Corporation Apparatus, system, and method for video encoder rate control
US7460990B2 (en) 2004-01-23 2008-12-02 Microsoft Corporation Efficient coding of digital media spectral data using wide-sense perceptual similarity
US7352808B2 (en) 2004-01-29 2008-04-01 International Business Machines Corporation System and method for the dynamic resolution change for video encoding
US7869503B2 (en) 2004-02-06 2011-01-11 Apple Inc. Rate and quality controller for H.264/AVC video coder and scene analyzer therefor
JP4095559B2 (ja) 2004-02-13 2008-06-04 株式会社東芝 H.264コーデックic、dvd再生装置、h.264コーデック方法
JP4072859B2 (ja) 2004-03-03 2008-04-09 Kddi株式会社 ビデオ情報再符号化装置
KR100586883B1 (ko) * 2004-03-04 2006-06-08 삼성전자주식회사 비디오 스트리밍 서비스를 위한 비디오 코딩방법, 프리디코딩방법, 비디오 디코딩방법, 및 이를 위한 장치와, 이미지 필터링방법
EP1730649A2 (en) 2004-03-05 2006-12-13 Vanu, Inc. Controlling jitter effects
EP1578131A1 (en) * 2004-03-18 2005-09-21 STMicroelectronics S.r.l. Encoding/decoding methods and systems, computer program products therefor
US20050232497A1 (en) 2004-04-15 2005-10-20 Microsoft Corporation High-fidelity transcoding
CN100592793C (zh) 2004-05-12 2010-02-24 皇家飞利浦电子股份有限公司 用于广播的可缩放视频编码
US20060002479A1 (en) 2004-06-22 2006-01-05 Fernandes Felix C A Decoder for H.264/AVC video
US20060114995A1 (en) 2004-12-01 2006-06-01 Joshua Robey Method and system for high speed video encoding using parallel encoders
US7440626B2 (en) 2004-12-02 2008-10-21 Mitsubishi Electric Research Laboratories, Inc. Image transcoding
US20060126726A1 (en) 2004-12-10 2006-06-15 Lin Teng C Digital signal processing structure for decoding multiple video standards
US20060126744A1 (en) 2004-12-10 2006-06-15 Liang Peng Two pass architecture for H.264 CABAC decoding process
JP4501676B2 (ja) * 2004-12-22 2010-07-14 日本電気株式会社 動画像圧縮符号化方法と動画像圧縮符号化装置並びにプログラム
JP2008527945A (ja) * 2005-01-19 2008-07-24 トムソン ライセンシング リアルタイム並列符号化の方法及び装置
US7694075B1 (en) 2005-03-09 2010-04-06 Globalfoundries Inc. System for enabling and disabling cache and a method thereof
CN101697591A (zh) 2005-03-10 2010-04-21 高通股份有限公司 用于多媒体处理的内容分类
US20060215754A1 (en) 2005-03-24 2006-09-28 Intel Corporation Method and apparatus for performing video decoding in a multi-thread environment
US7920633B2 (en) 2005-04-22 2011-04-05 Broadcom Corporation Method and system for parallel processing video data
US8902989B2 (en) 2005-04-27 2014-12-02 Broadcom Corporation Decoder system for decoding multi-standard encoded video
US20060245491A1 (en) 2005-04-28 2006-11-02 Mehrban Jam Method and circuit for transcoding transform data
US7974341B2 (en) 2005-05-03 2011-07-05 Qualcomm, Incorporated Rate control for multi-layer video design
JP2007036666A (ja) 2005-07-27 2007-02-08 Onkyo Corp コンテンツ配信システム、クライアント及びクライアントプログラム
US8447121B2 (en) 2005-09-14 2013-05-21 Microsoft Corporation Efficient integrated digital video transcoding
US8446954B2 (en) 2005-09-27 2013-05-21 Qualcomm Incorporated Mode selection techniques for multimedia coding
US8654848B2 (en) 2005-10-17 2014-02-18 Qualcomm Incorporated Method and apparatus for shot detection in video streaming
US7885341B2 (en) * 2005-10-21 2011-02-08 Cisco Technology, Inc. Spatial filtering for improving compression efficiency of motion compensated interframe coding
US7843995B2 (en) 2005-12-19 2010-11-30 Seiko Epson Corporation Temporal and spatial analysis of a video macroblock
US8130841B2 (en) 2005-12-29 2012-03-06 Harris Corporation Method and apparatus for compression of a video signal
US7643422B1 (en) 2006-03-24 2010-01-05 Hewlett-Packard Development Company, L.P. Dynamic trans-framing and trans-rating for interactive playback control
US9131164B2 (en) 2006-04-04 2015-09-08 Qualcomm Incorporated Preprocessor method and apparatus
US8130828B2 (en) 2006-04-07 2012-03-06 Microsoft Corporation Adjusting quantization to preserve non-zero AC coefficients
JP4182442B2 (ja) * 2006-04-27 2008-11-19 ソニー株式会社 画像データの処理装置、画像データの処理方法、画像データの処理方法のプログラム及び画像データの処理方法のプログラムを記録した記録媒体
US7773672B2 (en) 2006-05-30 2010-08-10 Freescale Semiconductor, Inc. Scalable rate control system for a video encoder
US8311102B2 (en) 2006-07-26 2012-11-13 Microsoft Corporation Bitstream switching in multiple bit-rate video streaming environments
US8265157B2 (en) 2007-02-07 2012-09-11 Lsi Corporation Motion vector refinement for MPEG-2 to H.264 video transcoding
US8571027B2 (en) 2007-04-18 2013-10-29 At&T Intellectual Property I, L.P. System and method for multi-rate video delivery using multicast stream
US20090003452A1 (en) 2007-06-29 2009-01-01 The Hong Kong University Of Science And Technology Wyner-ziv successive refinement video compression
US7756817B2 (en) 2007-07-05 2010-07-13 Yahoo! Inc. System and method for enabling parallel access to serially compressed files
US20090110060A1 (en) 2007-10-30 2009-04-30 Mauricio Cortes Method and apparatus for performing lower complexity multiple bit rate video encoding using metadata
US8121187B2 (en) 2007-12-05 2012-02-21 Alcatel Lucent Method and apparatus for performing multiple bit rate video encoding and video stream switching
US8417187B2 (en) 2008-01-07 2013-04-09 Apple Inc. Methods and apparatus for wireless device coexistence
US8165204B2 (en) 2008-02-29 2012-04-24 Michael Bronstein Resource allocation for frame-based controller
CN101534436B (zh) 2008-03-11 2011-02-02 深圳市融创天下科技发展有限公司 一种视频图像宏块级自适应码率分配方法
US20090244633A1 (en) 2008-03-31 2009-10-01 Konica Minolta Systems Laboratory, Inc. Systems and Methods for Color Data Compression
US8325800B2 (en) 2008-05-07 2012-12-04 Microsoft Corporation Encoding streaming media as a high bit rate layer, a low bit rate layer, and one or more intermediate bit rate layers
US8379851B2 (en) 2008-05-12 2013-02-19 Microsoft Corporation Optimized client side rate control and indexed file layout for streaming media
US20100086048A1 (en) * 2008-10-03 2010-04-08 Faisal Ishtiaq System and Method for Video Image Processing
US20100091888A1 (en) * 2008-10-13 2010-04-15 General Instrument Corporation Multi-Rate Encoder with GOP Alignment
CN102461171A (zh) 2009-05-01 2012-05-16 汤姆森特许公司 三维视频的参考画面列表
US9762898B2 (en) 2010-02-01 2017-09-12 Kelly Y Kishore Method and system for parallelizing video compression

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050123058A1 (en) * 1999-04-27 2005-06-09 Greenbaum Gary S. System and method for generating multiple synchronized encoded representations of media data
US20060262844A1 (en) * 2005-05-17 2006-11-23 Douglas Chin Input filtering in a video encoder

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190042234A (ko) * 2017-10-16 2019-04-24 삼성전자주식회사 영상 부호화 장치 및 인코더

Also Published As

Publication number Publication date
IL213567A0 (en) 2011-07-31
JP5410549B2 (ja) 2014-02-05
WO2010088031A2 (en) 2010-08-05
WO2010088031A3 (en) 2010-10-21
EP2382785A2 (en) 2011-11-02
CN102301717A (zh) 2011-12-28
IL213567A (en) 2015-02-26
JP2012516645A (ja) 2012-07-19
BRPI1006846A8 (pt) 2017-12-12
EP2382785A4 (en) 2012-12-26
CA2748374A1 (en) 2010-08-05
MX2011007374A (es) 2011-08-08
US20100189179A1 (en) 2010-07-29
CA2748374C (en) 2016-07-05
US8311115B2 (en) 2012-11-13
BRPI1006846A2 (pt) 2017-10-03
KR101644208B1 (ko) 2016-07-29

Similar Documents

Publication Publication Date Title
KR101644208B1 (ko) 이전에 계산된 모션 정보를 이용하는 비디오 인코딩
Djelouah et al. Neural inter-frame compression for video coding
KR101643790B1 (ko) 적응적 비디오 스트리밍용의 가변 비트 레이트 및 동적 해상도를 이용한 다중 비트 레이트 비디오 인코딩
US9071841B2 (en) Video transcoding with dynamically modifiable spatial resolution
EP2441265B1 (en) Motion based dynamic resolution multiple bit rate video encoding
US9584832B2 (en) High quality seamless playback for video decoder clients
KR20130107861A (ko) 인터 레이어 인트라 예측 방법 및 장치
CN104539948A (zh) 视频处理系统和视频处理方法
KR100843080B1 (ko) 비디오 트랜스코딩 방법 및 장치
KR20130023444A (ko) 다단계 화면간 예측을 이용한 영상 부호화/복호화 장치 및 방법
KR100575962B1 (ko) 비디오 처리 장치의 파이프 라인 동작 방법과 그에 따른비트율 제어 방법
KR20120095814A (ko) 복수 참조 영상을 이용한 영상 부복호화 방법 및 이러한 방법을 사용하는 장치
US20220345715A1 (en) Ai prediction for video compression
WO2012115434A2 (ko) 복수 참조 영상을 이용한 영상 부복호화 방법 및 이러한 방법을 사용하는 장치
KR20110074260A (ko) 고속 모션 추정 방법 및 장치, 이를 이용한 비디오 인코딩 장치
JPWO2021247169A5 (ko)

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant