KR101644208B1 - 이전에 계산된 모션 정보를 이용하는 비디오 인코딩 - Google Patents
이전에 계산된 모션 정보를 이용하는 비디오 인코딩 Download PDFInfo
- Publication number
- KR101644208B1 KR101644208B1 KR1020117017614A KR20117017614A KR101644208B1 KR 101644208 B1 KR101644208 B1 KR 101644208B1 KR 1020117017614 A KR1020117017614 A KR 1020117017614A KR 20117017614 A KR20117017614 A KR 20117017614A KR 101644208 B1 KR101644208 B1 KR 101644208B1
- Authority
- KR
- South Korea
- Prior art keywords
- encoding
- video
- motion information
- compressed video
- video bitstream
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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/436—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/24—Systems for the transmission of television signals using pulse code modulation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/187—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
- H04N19/33—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the spatial domain
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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/43—Hardware specially adapted for motion estimation or compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/12—Systems 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
인터넷과 같은 네트워크들을 통한 스트리밍 오디오 및 비디오의 재생에 대한 인기가 증가함에 따라, 재생 동안에 네트워크 조건들이 변하는 경우에도 클라이언트의 경험을 최대화하기 위해 서버에서 클라이언트로 전송되는 데이터를 최적화하는 것이 필요하다. 클라이언트 경험의 최적화는 비디오를 중단 없이 전송하고 재구성하면서 비디오 콘텐츠의 품질을 유지하기 위해 비디오 재생의 오디오 및 비디오 부분들을 인코딩하기 위한 품질 레벨을 선택하는 것을 포함한다.
일반적으로, 품질 레벨은 입력 스트림의 인코딩된 오디오 또는 비디오 부분들에 대해 지정된 비트 레이트에 의해 지시된다. 일반적으로, 더 높은 비트 레이트는, 오리지널 오디오 또는 비디오에 대한 더 많은 양의 정보가 인코딩되고 유지되며, 따라서 비디오 재생 동안에 오리지널 입력 오디오 또는 비디오의 더 정확한 재생이 제공될 것임을 지시한다. 이와 달리, 더 낮은 비트 레이트는, 오리지널 입력 오디오 또는 비디오에 대한 더 적은 양의 정보가 인코딩되고 유지되며, 따라서 비디오 재생 동안에 오리지널 입력 오디오 또는 비디오의 덜 정확한 재생이 제공될 것임을 지시한다.
일반적으로, 비트 레이트는 여러 팩터에 기초하여 오디오 및 비디오 각각의 인코딩에 대해 지정된다. 제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은 다양한 설명되는 실시예들을 구현할 수 있는 일반화된 운영 환경의 블록도이다.
도 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)
- 다중 비트 레이트 비디오로 인코딩하기 위한 미처리 비디오 콘텐츠(raw video content) 입력을 처리하는 방법에 있어서,
점점 더 낮은 비트 레이트들의 연속인(at a succession of progressively lower bit rates) 압축 비디오 비트 스트림들로서 인코딩하기 위한 미처리 비디오 콘텐츠를 수신하는 단계와;
최고 비트 레이트로 최초 압축 비디오 비트 스트림을 인코딩하는 단계로서, 상기 인코딩 단계는 상기 비디오의 인터 프레임 픽처들(inter frame pictures)의 인코딩을 위한 모션 정보를 생성하는 것인, 상기 최초 압축 비디오 비트 스트림 인코딩 단계와;
후속 압축 비디오 비트 스트림들을 상기 점점 더 낮은 비트 레이트들로 인코딩하기 위해,
이전 압축 비디오 비트 스트림의 인코딩으로부터 생성된 상기 모션 정보를 상기 후속 압축 비디오 비트 스트림의 인코딩으로 전달하는 단계와,
상기 후속 압축 비디오 비트 스트림에 대한 비디오 인코딩 파라미터들에 기초하는 조건이 충족되는지 여부를 결정하는 단계와,
상기 조건이 충족되면, 상기 후속 압축 비디오 비트 스트림을 인코딩 - 상기 후속 압축 비디오 비트 스트림의 인터 프레임들은, 상기 이전 압축 비디오 비트 스트림의 인코딩으로부터 전달된 상기 모션 정보를 이용하여 인코딩됨 - 하는 단계와,
상기 조건이 충족되지 않으면, 상기 후속 압축 비디오 비트 스트림의 재구성된 기준 프레임들에 기초하여 모션 추정을 수행함으로써 새로운 모션 정보를 생성하고, 상기 후속 압축 비디오 비트 스트림을 인코딩 - 상기 후속 압축 비디오 비트 스트림의 인터 프레임들은, 상기 새로운 모션 정보를 이용하여 인코딩됨 - 하는 단계와;
상기 최초 압축 비디오 비트 스트림과 상기 후속 압축 비디오 비트 스트림을 포함하는 출력 다중 비트 레이트 비디오를 생성하는 단계를 포함하는,
다중 비트 레이트 비디오로 인코딩하기 위한 미처리 비디오 콘텐츠 입력을 처리하는 방법. - 제1항에 있어서, 상기 조건은 상기 이전 압축 비디오 비트 스트림과 상기 후속 압축 비디오 비트 스트림 사이에서 비디오 해상도가 변경 없이 유지된다는 것인, 다중 비트 레이트 비디오로 인코딩하기 위해 미처리 비디오 콘텐츠 입력을 처리하는 방법.
- 다중 코어 CPU를 갖는 컴퓨터 상에서 비디오를 인코딩하는 방법에 있어서,
비디오를 인코딩하기 전에, 상기 비디오의 모션 추정 사전 계산(motion estimation pre-calculation)으로서 상기 비디오의 인터 프레임 픽처들의 그룹들에 대한 모션 정보를 생성하는 단계로서, 상기 모션 정보 생성은, 그룹 내의 각각의 인터 프레임 픽처에 대해 상기 컴퓨터의 복수의 CPU 코어들 중 개별 CPU 코어 상에서 모션 추정을 수행하는 것을 포함하고, 상기 모션 추정은 각각의 인터 프레임 픽처의 요소들의 복수의 세트들에 대한 모션 정보를 생성하는 것인, 상기 모션 정보 생성 단계와;
상기 비디오를 인코딩하는 단계로서, 상기 인코딩은 상기 모션 추정 사전 계산에 의해 생성된 상기 모션 정보에 기초하여 상기 인터 프레임 픽처들을 인코딩하는 것을 포함하는 것인, 상기 비디오 인코딩 단계와;
상기 인코딩된 비디오를 포함하는 출력 압축 비디오 비트 스트림을 생성하는 단계
를 포함하는 비디오 인코딩 방법. - 제3항에 있어서,
상기 비디오를 점점 더 낮은 비트 레이트들의 하나 이상의 추가 스트림들로서 인코딩하는 단계와;
최초 압축 비디오 비트 스트림 및 후속 압축 비디오 비트 스트림을 포함하는 출력 다중 비트 레이트 비디오를 생성하는 단계를 더 포함하며,
상기 추가 스트림들을 인코딩하는 단계는,
이전 압축 비디오 비트 스트림의 인코딩으로부터 생성된 상기 모션 정보를 후속 압축 비디오 비트 스트림의 인코딩으로 전달하는 단계와,
상기 후속 압축 비디오 비트 스트림에 대한 비디오 인코딩 파라미터들에 기초하는 조건이 충족되는지 여부를 결정하는 단계와,
상기 조건이 충족되면, 상기 후속 압축 비디오 비트 스트림을 인코딩 - 상기 후속 압축 비디오 비트 스트림의 인터 프레임들은, 상기 이전 압축 비디오 비트 스트림의 인코딩으로부터 전달된 상기 모션 정보를 이용하여 인코딩됨 - 하는 단계와,
상기 조건이 충족되지 않으면, 상기 후속 압축 비디오 비트 스트림의 재구성된 기준 프레임들에 기초하여 모션 추정을 수행함으로써 새로운 모션 정보를 생성하고, 상기 후속 압축 비디오 비트 스트림을 인코딩 - 상기 후속 압축 비디오 비트 스트림의 인터 프레임들은, 상기 새로운 모션 정보를 이용하여 인코딩됨 - 하는 단계를 포함하는 것인,
비디오 인코딩 방법. - 제4항에 있어서, 상기 조건은 상기 이전 압축 비디오 비트 스트림과 상기 후속 압축 비디오 비트 스트림 사이에서 비디오 해상도가 변경 없이 유지된다는 것인 비디오 인코딩 방법.
- 다중 비트 레이트 비디오 스트리밍을 위한 압축 비디오 스트림들을 인코딩하기 위한 비디오 처리 시스템으로서,
인코딩될 미처리 비디오 콘텐츠를 저장하기 위한 메모리와,
상기 미처리 비디오 콘텐츠를 복수의 압축 비디오 스트림들로서 인코딩하도록 프로그래밍된 컴퓨터 처리 수단
을 포함하고,
상기 압축 비디오 스트림들의 인코딩은,
모션 추정을 통해 상기 미처리 비디오 콘텐츠의 인터 프레임 픽처들을 인코딩하기 위한 오리지널 모션 정보를 생성하고,
상기 미처리 비디오 콘텐츠의 인터 프레임 픽처들을 인코딩하기 위한 오리지널 모션 정보를 이용하여 상기 미처리 비디오 콘텐츠로부터의 최상 품질 압축 비디오 비트 스트림을 인코딩하고,
더 낮은 비트 레이트로 후속 압축 비디오 비트 스트림을 인코딩하기 위하여 비디오 해상도를 결정하고,
상기 후속 압축 비디오 비트 스트림을 인코딩하기 위한 비디오 해상도가 변경되지 않으면, 상기 미처리 비디오 콘텐츠의 인터 프레임 픽처들을 인코딩하기 위한 오리지널 모션 정보를 다시 이용하여 상기 미처리 비디오 콘텐츠로부터의 후속 압축 비디오 비트 스트림을 인코딩하며,
그렇지 않고, 상기 후속 압축 비디오 비트 스트림을 인코딩하기 위한 비디오 해상도가 상기 최상 품질 압축 비디오 비트 스트림의 해상도로부터 리사이징(resize)되면, 그 후 상기 후속 압축 비디오 비트 스트림의 인트라 프레임 기준 픽처들에 대한 모션 추정을 통해 상기 미처리 비디오 콘텐츠의 인터 프레임 픽처들을 인코딩하기 위한 새로운 모션 정보를 생성하고, 상기 미처리 비디오 콘텐츠의 인터 프레임 픽처들을 인코딩하기 위한 새로운 모션 정보를 이용하여 상기 미처리 비디오 콘텐츠로부터의 후속 압축 비디오 비트 스트림들을 인코딩하는 것
을 포함하는 것인 비디오 처리 시스템. - 제6항에 있어서, 상기 컴퓨터 처리 수단은 다수의 처리 코어들을 갖는 다중 코어 컴퓨터 프로세서이고, 상기 오리지널 모션 정보를 생성하는 것은, 상기 미처리 비디오 콘텐츠의 인트라 프레임 픽처들의 인코딩 이전의 사전 계산으로서, 상기 처리 코어들 중 개별 처리 코어 상에서 상기 미처리 비디오 콘텐츠의 인터 프레임 픽처들의 그룹 내의 각각의 인터 프레임 픽처에 대한 모션 추정을 수행하는 것을 포함하는 것인 비디오 처리 시스템.
- 제7항에 있어서,
상기 미처리 비디오 콘텐츠의 인터 프레임 픽처들의 그룹에 대한 모션 추정을 수행하는 것은,
상기 다중 코어 컴퓨터 프로세서의 개별 처리 코어에 상기 그룹의 각각의 인터 프레임 픽처를 할당(assign)하고,
그 할당된 개별 처리 코어 상에서 각각의 인터 프레임 픽처에 대한 모션 추정을 수행하는 것
을 포함하는 것인 비디오 처리 시스템.
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 KR20110106423A (ko) | 2011-09-28 |
KR101644208B1 true 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) |
Families Citing this family (80)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7519274B2 (en) | 2003-12-08 | 2009-04-14 | Divx, Inc. | File format for multiple track digital data |
US8472792B2 (en) | 2003-12-08 | 2013-06-25 | Divx, Llc | Multimedia distribution system |
US7515710B2 (en) | 2006-03-14 | 2009-04-07 | Divx, Inc. | Federated digital rights management scheme including trusted systems |
KR20100106327A (ko) | 2007-11-16 | 2010-10-01 | 디브이엑스, 인크. | 멀티미디어 파일을 위한 계층적 및 감소된 인덱스 구조 |
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 |
WO2010080911A1 (en) | 2009-01-07 | 2010-07-15 | Divx, Inc. | Singular, collective and automated creation of a media guide for online content |
SG173007A1 (en) * | 2009-01-15 | 2011-08-29 | Agency Science Tech & Res | 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 |
WO2011068668A1 (en) | 2009-12-04 | 2011-06-09 | 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 |
US20130148717A1 (en) * | 2010-08-26 | 2013-06-13 | Freescale Semiconductor, Inc. | Video processing system and method for parallel processing of video data |
US8914534B2 (en) | 2011-01-05 | 2014-12-16 | Sonic Ip, Inc. | Systems and methods for adaptive bitrate streaming of media stored in matroska container files 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 |
US9955195B2 (en) | 2011-08-30 | 2018-04-24 | Divx, Llc | Systems and methods for encoding and streaming video encoded using a plurality of maximum bitrate levels |
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 |
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 |
US8964977B2 (en) | 2011-09-01 | 2015-02-24 | Sonic Ip, Inc. | Systems and methods for saving encoded media streamed using adaptive bitrate streaming |
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 |
US9767642B2 (en) | 2011-10-14 | 2017-09-19 | Bally Gaming, Inc. | System and method for cross platform persistent gaming sessions using a mobile device |
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 |
US9100657B1 (en) | 2011-12-07 | 2015-08-04 | Google Inc. | Encoding time management in parallel real-time video encoding |
US20130179199A1 (en) | 2012-01-06 | 2013-07-11 | Rovi Corp. | Systems and methods for granting access to 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 |
US9313510B2 (en) | 2012-12-31 | 2016-04-12 | Sonic Ip, Inc. | Use of objective quality measures of streamed content to reduce streaming bandwidth |
US9191457B2 (en) | 2012-12-31 | 2015-11-17 | Sonic Ip, Inc. | Systems, methods, and media for controlling delivery of content |
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 |
US9992499B2 (en) | 2013-02-27 | 2018-06-05 | Apple Inc. | Adaptive streaming techniques |
US9357210B2 (en) | 2013-02-28 | 2016-05-31 | Sonic Ip, Inc. | Systems and methods of encoding multiple video streams for adaptive bitrate streaming |
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 |
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 |
WO2014190468A1 (en) | 2013-05-27 | 2014-12-04 | Microsoft Corporation | Video encoder for images |
US9247317B2 (en) | 2013-05-30 | 2016-01-26 | Sonic Ip, Inc. | Content streaming with client device trick play index |
US9094737B2 (en) | 2013-05-30 | 2015-07-28 | Sonic Ip, Inc. | Network video streaming with trick play based on separate trick play files |
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 | 富士通株式会社 | 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム |
EP3120556B1 (en) | 2014-03-17 | 2021-01-13 | 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 |
CN106416254B (zh) | 2015-02-06 | 2019-08-02 | 微软技术许可有限责任公司 | 在媒体编码期间跳过评估阶段 |
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 |
US9639935B1 (en) | 2016-05-25 | 2017-05-02 | Gopro, Inc. | Apparatus and methods for camera alignment model calibration |
EP3466051A1 (en) | 2016-05-25 | 2019-04-10 | GoPro, Inc. | Three-dimensional noise reduction |
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 |
EP3436929A4 (en) | 2016-06-17 | 2019-10-16 | Hewlett-Packard Development Company, L.P. | COMMON MACHINE LEARNING STRUCTURE |
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 |
KR102347598B1 (ko) * | 2017-10-16 | 2022-01-05 | 삼성전자주식회사 | 영상 부호화 장치 및 인코더 |
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)
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)
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 |
JP3032088B2 (ja) | 1992-03-03 | 2000-04-10 | 株式会社東芝 | 動画像符号化装置 |
DE69322769T2 (de) | 1992-03-03 | 1999-07-22 | Kabushiki Kaisha Toshiba, Kawasaki, Kanagawa | Koder für zeitveränderliche bilder |
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 |
US6026182A (en) | 1995-10-05 | 2000-02-15 | Microsoft Corporation | Feature segmentation |
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 | 通信システム |
KR100555164B1 (ko) | 1997-07-25 | 2006-03-03 | 소니 가부시끼 가이샤 | 편집 장치, 편집 방법, 재부호화 장치, 재부호화 방법, 스플라이싱 장치 및 스플라이싱 방법 |
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 |
EP1074148B1 (en) | 1998-03-20 | 2003-05-28 | STMicroelectronics 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 |
WO2002054774A2 (de) * | 2001-01-08 | 2002-07-11 | 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 |
US7336720B2 (en) | 2002-09-27 | 2008-02-26 | Vanguard Software Solutions, 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 | 삼성전자주식회사 | 비디오 스트리밍 서비스를 위한 비디오 코딩방법, 프리디코딩방법, 비디오 디코딩방법, 및 이를 위한 장치와, 이미지 필터링방법 |
BRPI0508489A (pt) | 2004-03-05 | 2007-07-31 | Vanu Inc | efeitos de instabilidade de controle |
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 |
WO2005109895A1 (en) | 2004-05-12 | 2005-11-17 | Koninklijke Philips Electronics N.V. | Scalable video coding for broadcasting |
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 | 日本電気株式会社 | 動画像圧縮符号化方法と動画像圧縮符号化装置並びにプログラム |
US9219917B2 (en) | 2005-01-19 | 2015-12-22 | Thomson Licensing | Method and apparatus for real time parallel encoding |
US7694075B1 (en) | 2005-03-09 | 2010-04-06 | Globalfoundries Inc. | System for enabling and disabling cache and a method thereof |
AR052601A1 (es) | 2005-03-10 | 2007-03-21 | Qualcomm Inc | Clasificacion de contenido para procesamiento de multimedia |
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 |
US20120050475A1 (en) | 2009-05-01 | 2012-03-01 | Dong Tian | Reference picture lists for 3dv |
US9762898B2 (en) | 2010-02-01 | 2017-09-12 | Kelly Y Kishore | Method and system for parallelizing video compression |
-
2009
- 2009-01-29 US US12/362,427 patent/US8311115B2/en not_active Expired - Fee Related
-
2010
- 2010-01-12 MX MX2011007374A patent/MX2011007374A/es active IP Right Grant
- 2010-01-12 KR KR1020117017614A patent/KR101644208B1/ko active IP Right Grant
- 2010-01-12 JP JP2011548015A patent/JP5410549B2/ja not_active Expired - Fee Related
- 2010-01-12 CA CA2748374A patent/CA2748374C/en active Active
- 2010-01-12 EP EP10736180A patent/EP2382785A4/en not_active Ceased
- 2010-01-12 CN CN2010800062949A patent/CN102301717A/zh active Pending
- 2010-01-12 WO PCT/US2010/020789 patent/WO2010088031A2/en active Application Filing
- 2010-01-12 BR BRPI1006846A patent/BRPI1006846A8/pt not_active Application Discontinuation
-
2011
- 2011-06-15 IL IL213567A patent/IL213567A/en active IP Right Grant
Patent Citations (2)
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 |
Also Published As
Publication number | Publication date |
---|---|
CN102301717A (zh) | 2011-12-28 |
IL213567A0 (en) | 2011-07-31 |
EP2382785A4 (en) | 2012-12-26 |
JP2012516645A (ja) | 2012-07-19 |
WO2010088031A3 (en) | 2010-10-21 |
MX2011007374A (es) | 2011-08-08 |
KR20110106423A (ko) | 2011-09-28 |
CA2748374C (en) | 2016-07-05 |
US8311115B2 (en) | 2012-11-13 |
WO2010088031A2 (en) | 2010-08-05 |
CA2748374A1 (en) | 2010-08-05 |
IL213567A (en) | 2015-02-26 |
BRPI1006846A8 (pt) | 2017-12-12 |
BRPI1006846A2 (pt) | 2017-10-03 |
US20100189179A1 (en) | 2010-07-29 |
EP2382785A2 (en) | 2011-11-02 |
JP5410549B2 (ja) | 2014-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101644208B1 (ko) | 이전에 계산된 모션 정보를 이용하는 비디오 인코딩 | |
US9071841B2 (en) | Video transcoding with dynamically modifiable spatial resolution | |
KR101643790B1 (ko) | 적응적 비디오 스트리밍용의 가변 비트 레이트 및 동적 해상도를 이용한 다중 비트 레이트 비디오 인코딩 | |
JP5643300B2 (ja) | モーションベースの動的解像度マルチビットレートの動画符号化 | |
US20060233250A1 (en) | Method and apparatus for encoding and decoding video signals in intra-base-layer prediction mode by selectively applying intra-coding | |
US9584832B2 (en) | High quality seamless playback for video decoder clients | |
US20200322613A1 (en) | Rate Control for Video Splicing Applications | |
US20110211637A1 (en) | Method and system for compressing digital video streams | |
KR100843080B1 (ko) | 비디오 트랜스코딩 방법 및 장치 | |
CN104539948A (zh) | 视频处理系统和视频处理方法 | |
Wei et al. | Recent advances in rate control: From optimization to implementation and beyond | |
KR20130023444A (ko) | 다단계 화면간 예측을 이용한 영상 부호화/복호화 장치 및 방법 | |
KR20210022117A (ko) | 공간 계층 레이트 할당 | |
US20220345715A1 (en) | Ai prediction for video compression | |
CN114788182B (zh) | 用于实现时间滤波的方法、系统和计算机可读介质 | |
KR20050070984A (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 |