KR101744654B1 - 모션 기반 동적 해상도 다중 비트 레이트 비디오 인코딩 - Google Patents

모션 기반 동적 해상도 다중 비트 레이트 비디오 인코딩 Download PDF

Info

Publication number
KR101744654B1
KR101744654B1 KR1020117029696A KR20117029696A KR101744654B1 KR 101744654 B1 KR101744654 B1 KR 101744654B1 KR 1020117029696 A KR1020117029696 A KR 1020117029696A KR 20117029696 A KR20117029696 A KR 20117029696A KR 101744654 B1 KR101744654 B1 KR 101744654B1
Authority
KR
South Korea
Prior art keywords
video
resolution
motion
motion vector
quantization step
Prior art date
Application number
KR1020117029696A
Other languages
English (en)
Other versions
KR20120036309A (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 KR20120036309A publication Critical patent/KR20120036309A/ko
Application granted granted Critical
Publication of KR101744654B1 publication Critical patent/KR101744654B1/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/587Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence
    • 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/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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/142Detection of scene cut or scene change
    • 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/146Data rate or code amount at the encoder output
    • H04N19/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
    • 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/177Methods 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 group of pictures [GOP]
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • H04N19/194Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive involving only two passes
    • 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
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/57Motion estimation characterised by a search window with variable size or shape
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/164Feedback from the receiver or from the transmission channel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Abstract

비디오 인코딩 시스템은 인코딩 해상도가 적어도 부분적으로 모션 복잡도에 기반해 가변될 수 있게 하는 접근법을 이용해 다중 비트 레이트 비디오 스트리밍하도록 비디오 스트림을 인코딩한다. 비디오 인코딩 시스템은 다중 비트 레이트 스트리밍의 보다 나은 시각적 경험을 달성하기 위해 비디오 복잡도에 따라 가변되는 다중 비트 레이트 비디오 스트림들의 세그먼트들의 인코딩 해상도를 동적으로 결정한다. 해상도 결정시, 모션 복잡도는 따로따로 고려되거나 공간적 복잡도와 함께 고려될 수 있다.

Description

모션 기반 동적 해상도 다중 비트 레이트 비디오 인코딩{MOTION BASED DYNAMIC RESOLUTION MULTIPLE BIT RATE VIDEO ENCODING}
인터넷과 같은 네트워크를 통해 스트리밍되는 오디오 및 비디오를 재생하는 것에 대한 인기가 증가함에 따라, 재생 중의 네트워크 상태가 일관되지 못하더라도 클라이언트의 경험이 극대화되도록 서버로부터 클라이언트까지 전달되는 데이터를 최적화할 필요가 있다. 클라이언트의 경험을 최적화하는 것은 비디오 콘텐츠의 품질을 보전하면서 비디오가 간섭없이 전송 및 재구성될 수 있도록 비디오 재생의 오디오 및 비디오 부분을 인코딩할 품질 수준을 선택하는 일을 수반한다.
품질 수준은 일반적으로 입력 스트림의 인코딩된 오디오나 비디오 부분에 대해 특정된 비트 레이트(bit rate)에 의해 지시된다. 높은 비트 레이트는 일반적으로 오리지널 오디오나 비디오에 대해 보다 많은 정보량이 인코딩되고 유지된다는 것을 나타내므로, 비디오 재생 중에 오리지널 입력 오디오나 비디오에 대한 보다 정확한 재생이 이뤄질 것이다. 반대로, 낮은 비트 레이트는 오리지널 오디오나 비디오에 대해 보다 적은 정보가 인코딩되고 유지된다는 것을 나타내므로, 비디오 재생 중에 오리지널 입력 오디오나 비디오에 대해 보다 덜 정확한 재생이 이뤄질 것이다.
일반적으로 비트 레이트는 몇 가지 요인에 기초하여 오디오 및 비디오 각각의 인코딩에 대해 특정된다. 첫 번째 요인은 서버와 클라이언트 사이의 네트워크 상태이다. 많은 양의 데이터를 전송할 수 있는 네트워크 접속은 네트워크 접속을 통해 후속적으로 전송되는 입력 비디오에 대해 보다 높은 비트 레이트가 특정될 수 있다는 것을 나타낸다. 두 번째 요인은 원하는 시동 대기시간(start-up latency)이다. 시동 대기시간은 비디오 재생 툴이 최초 시동시 수신, 처리 및 버퍼링되어야 할 많은 데이터량으로 인해 경험하는 지연이다. 세 번째 요인은 글리칭(glitching)에 대한 내성이다. 글리칭은 데이터 누락으로 인해 비디오 재생이 멈춰야 하는 때이다. 대부분의 경우 어떤 정도의 시동 지연이나 글리칭은 허용될 수 없고, 따라서 시동 지연시간 및 글리칭이 최소화되거나 제거되도록 특정되는 비트 레이트를 최적화하는 것이 요망될 수 있다.
현재 이용가능한 상업적 스트리밍 미디어 시스템들은 코딩 레이트 제어를 수행하기 위해 멀티 비트 레이트(MBR(multi bit rate)) 코딩에 의존한다. MBR 코딩에서는 소스 비디오 콘텐츠가 다른 코딩 레이트에서 대안적 비트 스트림들로 인코딩되고 통상적으로 서버에 있는 동일한 미디어 파일에 저장된다. 그런 다음 그것은 콘텐츠가 변화하는 네트워크 조건에 따라 상이한 코딩 레이트에 해당하는 가변하는 품질 수준으로 세그먼트나 청크(chunks) 단위로, 통상적으로 세그먼트들 사이의 비트 스트림 스위칭을 이용해 스트리밍될 수 있게 한다.
현재 이용 가능한 다중 비트 레이트 비디오 스트리밍 시스템들은 각각의 양자택일적 비디오 스트림을 인코딩하는데 일관된 비트 레이트 방식을 사용한다. 그러나, 통상적인 비디오는 일반적으로 광범위한 시각적 복잡도를 가진 장면을 포함할 것이다. 그러나 일관된 비트 레이트 방식은 상이한 품질을 가진 비디오 세그먼트들을 효율적으로 인코딩할 수가 없다. 일관된 비트 레이트 방식은 낮은 복잡도의 비디오 세그먼트들을 인코딩하는데 너무 많은 비트들을 불필요하게 소모하고, 반대로 높은 복잡도의 장면들에는 너무 적은 비트들이 할당된다. 결국, 양자택일적 스트림들을 인코딩함에 있어 일관된 비트 레이트 방식은 바람직하지 않으며 일관되지 못한 인터넷 스트리밍의 비디오 품질을 파생시킨다.
현재 이용가능한 다중 비트 레이트의 비디오 스트리밍 시스템들 역시 최종 디스플레이 해상도가 정해져야 한다는 추가 요건을 가진다. 고정된 디스플레이 해상도를 유지함으로써, 글리치 없는 비디오 표현을 획득하도록 다중 비트 레이트의 비디오 스트림들이 모두 디코딩되고 그러한 동일한 최종 해상도로 스케일링될 수 있다. 고정된 디스플레이 해상도를 이용해, 다양한 택일적 비디오 스트림들은 초당 수 메가비트(megabits)에서 초당 수 킬로비트(kilobits)까지 광범위한 비트 레이트를 가질 수 있다. 한 가지 문제는 적절한 비디오 해상도를 각각의 비디오 스트림 비트 레이트에 매치해야 하는 것이다. 현재 이용 가능한 다중 비트 레이트의 비디오 스트리밍 시스템들은 미리 규정된 인코딩 해상도를 사용하며, 그것은 다시 비디오 장면들의 가변하는 복잡도(가령, 세부사항 및/또는 모션)에 별로 잘 맞지 않을 수 있다.
이하의 상세한 설명은 일반적으로 보다 높은 품질의 비디오를 얻기 위해 각각의 비트 레이트를 가지고 이용가능한 비트들을 보다 효과적으로 사용할 수 있도록 된 모션 기반 동적 해상도 다중 비트 레이트의 비디오 인코딩 기술(방법, 장치 및 시스템으로 구현됨)에 관한 것이다.
여기에 기술되는 한 가지 기법에 따르면, 모션 기반 동적 해상도 다중 비트 레이트의 비디오 인코더는 인코딩된 비디오의 비디오 해상도를 동적으로 가변시킨다. 비디오 인코더는 해상도 사이즈 조정(resize) 결정시 (가령, GOP(group of pictures) 단위로) 비디오 콘텐츠의 모션 복잡도를 고려한다. 적은(느린) 모션을 가진 비디오 콘텐츠에는 높은 해상도가 선택되고, 많은(빠른) 모션을 가진 비디오 콘텐츠에는 낮은 해상도가 선택된다. 모션 복잡도는 비디오 인코딩 중에 모션 벡터들(가령, 모션 벡터 크기)를 해석함으로써 결정된다.
여기에 기술되는 다른 기법에 따르면, 모션 기반 동적 해상도 다중 비트 레이트의 비디오 인코더는 모션 복잡도 및 텍스처 복잡도에 기반하여 인코딩된 비디오의 비디오 해상도를 동적으로 가변시킨다. 다중 비트 레이트의 비디오 인코더는 낮은 텍스처 복잡도 및 낮은 모션 복잡도를 가진 픽처 그룹에 대해 높은 비디오 해상도를 선택하는 반면, 높은 텍스처 복잡도 및 높은 모션 복잡도를 가진 픽처 그룹에는 낮은 해상도가 할당된다. 이러한 동적 해상도 방식은 다중 비트 레이트의 비디오 인코더가 주어진 비트 레이트에 대해 일반적으로 더 나은 비디오 품질을 획득할 수 있게 한다.
각각의 비트 레이트에 대해 비디오 인코더는 더 나은 시각적 품질을 달성하기 위해 장면(한 개 이상의 픽처 그룹을 포함할 수 있음)의 비디오 콘텐츠에 기반하여 해상도를 동적으로 결정한다.
이 요약은 이하의 상세한 설명에 자세히 기술되는 엄선된 개념들을 간략한 형식으로 소개하기 위해 제공된다. 이 요약은 청구된 주제의 주요 특징이나 필수적 특징을 확인하도록 의도되거나 청구된 주제의 범위의 판단을 돕는 것으로서 사용되도록 의도된 것이 아니다. 본 발명의 추가적 특징 및 이점은 첨부된 도면을 참조하여 전개되는 실시예들에 대한 이하의 상세한 설명으로부터 보다 잘 알수 있을 것이다.
도 1은 세그먼트화된 비디오 스트리밍을 가변 비트 레이트로 제공하는 비디오 스트리밍 시스템의 블록도이다.
도 2는 도 1의 비디오 스트리밍 시스템에 대해 스트림들을 가변 비트 레이트로 인코딩하는 비디오 인코더의 일반화된 구현예의 블록도이다.
도 3은 도 1의 시스템에 의해 스트리밍하기 위해 도 2의 비디오 인코더를 사용하여 비디오를 인코딩하도록 가변 비트 레이트 방식 및 동적 해상도 방식을 적용한 다중 비트 레이트 비디오 인코딩 시스템의 프로세스 흐름도이다.
도 4는 동적 해상도 선택에 대한 세 포인트(three point) 샘플링 접근법에 사용될 전형적 스트림의 해상도, 양자화 스텝 사이즈 및 코딩 사이즈 사이의 관계에 대한 그래프이다.
도 5는 다중 비트 레이트의 비디오 인코딩 시스템에 의해 동적 해상도 결정을 하기 위한 프로세스 흐름도이다.
도 6은는 다중 비트 레이트의 비디오 인코딩 시스템에 의해 모션 복잡도 해상도 결정을 하기 위한 프로세스 흐름도이다.
도 7은 전형적인 모션 재조정 스케일 맵을 묘사한다.
도 8은 모션 기반 동적 해상도를 이용하여 다중 비트 레이트 비디오 인코딩 시스템에 의해 인코딩되는 비디오 세그먼트들의 시각적 표현이다.
도 9는 기술되는 다양한 실시예들이 구현될 수 있는 일반화된 동작 환경의 블록도이다.
이하의 상세한 설명은 스트리밍할 비디오 스트림들을 다중 비트 레이트로 생성하기 위해 모션 기반 동적 해상도를 이용하여 비디오 인코딩하기 위한 다양한 기법 및 시스템에 관한 것이다. 기법들이 다중 비트 레이트 스트리밍 애플리케이션에 대한 적용과 관련해 기술되지만, 그 기법들은 다른 비디오 인코딩 애플리케이션들에 보다 광범위하게 적용될 수 있다.
여기에 기술된 다양한 기법 및 툴들은 독자적으로 사용될 수 있다. 기법 및 툴들 중 일부는 결합하여 사용될 수 있다. 이하에서 다양한 기법들이 프로세싱 동작들의 흐름도를 참조해 기술된다. 흐름도에 도시된 다양한 프로세싱 동작들은 더 적은 동작들로 통합되거나 더 많은 동작들로 나눠질 수 있다. 단순성을 위해, 특정 흐름도에 도시된 동작들과 다른 곳에 기술된 동작들과의 관계는 보통 도시되지 않는다. 여러 경우들에서 흐름도의 동작들은 순서가 재정렬될 수 있다.
I. 다중 비트 레이트의 비디오 스트리밍
도 1은 인덱싱된 비디오 스트림 파일에 포함된 멀티미디어 콘텐츠의 세그먼트화된 스트리밍을 위한 시스템(100)의 일반화된 블록도를 묘사한다. 인덱싱된 파일은 일반적으로 멀티미디어 프로그램의 비디오를 여러 스트리밍 세그먼트들로 분할하고, 그 비디오 세그먼트들을 다양한 비트 레이트로 표현하는 여러 압축 비트 스트림을 포함한다. MBR 비디오 스트림들은 각각의 코딩 스트림들로서 서술되나, 다른 대안적 구현예들은 MBR 비디오 스트림들의 일부나 전부가 다중 코딩 계층을 가진 한 개의 압축 코딩된 비디오 스트림으로서 인코딩되게 할 수도 있다. 시스템(100)에서, 서버(110)(가령, 표준 HTTP 서버 같은 서버 컴퓨터 시스템)는 네트워크(130)(가령, 인터넷)를 통해 클라이언트(120)(가령, 랩탑이나 데스크탑 컴퓨터, 또는 PDA나 모바일 전화기 같은 다른 타입의 컴퓨팅 장치같은 클라이언트 컴퓨터 시스템)로 멀티미디어 콘텐츠를 제공한다. 시스템(100)에서 서버(110)는 인덱싱 파일 안에 프로그램들을 저장한다. 클라이언트(120)는 클라이언트 측 레이트 제어 소프트웨어 및/또는 하드웨어를 포함한다.
하나의 특정한 전형적 구현예에서, 서버(110)는 파일들을 제공하는 기능 외에 다른 특수화된 스트리밍 사양이 없는 표준 HTTP 서버이다. 서버(110)가 어떤 특수화된 비트 레이트 선택 사양도 지원하지 않기 때문에, 클라이언트(120)는 모든 비트 레이트 선택 활동을 수행해야 한다. 이 구현예에서 클라이언트(120)는 모든 비트 레이트 선택 활동을 수행한다. 예를 들어, 클라이언트(120)는 서로(110)로부터 얻은 인덱스 정보를(가령, 단독으로나 클라이언트 버퍼 정보, 네트워크 대역폭 등과 같은 다른 정보와 합하여) 사용해 레이트 제어를 수행할 수 있다. 그러나, 다른 구현예들에서 레이트 제어 기능들의 일부나 전부가 서버에서 일어날 수 있다.
일반적으로, 클라이언트 측(가령, 오로지 클라이언트 측)에서 수행되는 비트 레이트 선택(레이트 제어)을 이용하여 다중 비트 레이트의 멀티미디어 콘텐츠를 제공하기 위해, 다중 비트 레이트 스트리밍을 위한 인덱싱 파일이 표준 HTTP 서버들에 의해 사용될 수 있다. 클라이언트들은 프로그램의 세그먼트들을 스트리밍하는데 사용 가능한 다양한 비트 레이트들을 기술하는 인덱스 정보를 서버로부터 먼저 획득함으로써 레이트 제어를 수행할 수 있다. 인덱스 정보 및 가능한 다른 정보(가령, 네트워크 대역폭, 버퍼 정보 등)에 기초하여, 클라이언트는 요망되는 사용자 경험(가령, 가능한 최선의 사용자 경험은 이용 가능한 비트 레이트 및 현재의 네트워크 조건에 기초함)을 제공하기 위해 서버로부터 어떤 비트 레이트의 스트리밍 세그먼트들을 다운로드할지를 결정할 수 있다.
다른 유형의 컴퓨팅 장치들(가령, 전통적 HTTP 서버들 이외의 장치들)이 인덱싱 파일을 이용해 파일들을 제공할 수 있다. 예를 들어 컴퓨팅 장치(가령, 퍼스널 컴퓨터, 서버 컴퓨터, 또는 특수 목적의 스트리밍 미디어 서버)는 다양한 파일 서빙 프로토콜들(가령, FTP(File Transfer Protocol), HTTP(Hypertext Transfer Protocol), RTSP(Real Time Streaming Protocol), MMS(Microsoft Media Services) 등)을 이용해 멀티미디어 콘텐츠를 제공하기 위해 인덱싱 파일 레이아웃을 사용할 수 있다.
비트 레이트 스위칭을 지원하기 위해 프로그램들이 스트리밍 세그먼트(자기 충족형 유닛들)라 불리는 시간적 청크(chunk)들로 분할된다. 서버는 한 개 이상의 비트 레이트의 각각의 스트리밍 세그먼트를 저장한다(가령, 각각의 스트리밍 세그먼트-비트 레이트 조합이 각각의 스트리밍 세그먼트 인코딩이다). 각각의 스트리밍 세그먼트는 프로그램의 특정 트랙(가령, 영어 오디오 트랙 같은 특정 오디오 트랙이나 특정 비디오 트랙)에 대해 한 개 이상의 이용 가능한 비트 레이트 인코딩들을 포함한다. 이때 클라이언트는 이용 가능한 비트 레이트들에서(가령, 이용 가능한 스트리밍 세그먼트 인코딩들에서) 어느 비트 레이트를 각각의 스트리밍 세그먼트에 대해 다운로드할지를 결정한다. 예를 들어, 클라이언트는 한 비디오 트랙에 대해 250Kb/sec(초당 킬로 비트)로 인코딩되는 제1스트리밍 세그먼트(제1스트리밍 세그먼트에 대한 한 개 이상의 이용가능한 스트리밍 세그먼트 인코딩들로부터), 상기 비디오 트랙에 대해 500Kb/sec로 인코딩되는 제2스트리밍 세그먼트(제2스트리밍 세그먼트에 대한 한 개 이상의 이용가능한 스트리밍 세그먼트 인코딩들로부터), 및 상기 비디오 트랙에 대해 1Mb/sec(초당 메가 비트)로 인코딩되는 제3스트리밍 세그먼트(제3스트리밍 세그먼트에 대한 한 개 이상의 이용가능한 스트리밍 세그먼트 인코딩들로부터)를 획득할 수 있다. 예시된 스트리밍 시스템(100)에서, 인덱싱 파일 안에 포함된 각각의 스트리밍 세그먼트는 이하에 기술되는 것과 같이 비디오 인코더에 의해 가변 비트 레이트(VBR(variable bit rate)) 및 가변 해상도로 인코딩된다.
II . 비디오 인코더 개요
도 2는 다중 비트 레이트의 비디오 스트리밍을 위해 비디오를 인코딩하는데 사용될 수 있는 비디오 인코더(200)의 한 예를 묘사한다. 비디오 인코더(200)는 비디오 콘텐츠의 "미가공(raw)"(미압축) 프레임들 및 비디오 콘텐츠에 대해 앞서 산출된 모션 정보 역시 수신하는 입력부들(210, 220)을 가진다. 비디오 인코더는 여기서 비디오 콘텐츠의 기준 프레임들의 인트라 프레임(intra-frame) 코딩을 수행하고, 비디오 콘텐츠의 예측 프레임들의 인터 프레임(inter-frame) 코딩을 수행하기 위해 모션 정보를 활용한다. 인코딩은 윈도우즈 미디어 비디오 포맷, SMPTE 421-M format, MPEG-x format(가령, MPEG-I, MPEG-2, 또는 MPEG-4), H.26x 포맷(가령, H.261, H.262, H.263, 또는 H.264), 또는 다른 포맷 같은 알려진 비디오 인코딩 표준에 따라 수행될 수 있다. 그러나, 인터 프레임 코딩의 경우, 비디오 인코더는 예측 프레임에 대해 자체 모션 추정을 수행하기 보다, 예측 프레임의 인터 프레임 코딩을 위해 미리 산출된 모션 정보를 사용하도록 선택할 수 있다. 비디오 인코더는 비디오 콘텐츠를 출력(230)으로서 제공되는 압축 비트스트림으로 인코딩한다. 비디오 인코더는 (다중 비트 레이트 비디오 스트리밍을 위한 낮은 비트 레이트 비디오 스트림 인코딩을 위한 것 같은) 모션 정보 출력(240)으로서 입력 비디오 콘텐츠의 인터 프레임 압축에 사용되는 모션 정보를 출력한다.
도 2는 다중 비트 레이트 비디오 스트리밍 시스템(100)의 가변 비트 레이트 및 가변 해상도 인코딩을 이용해 다중 비트 레이트 비디오 스트림들을 생성하기 위한 비디오 인코더(200)의 한 적절한 전형적 구현예를 보인 일반화된 블록도이다. 비디오 인코더(200)는 미가공 비디오 콘텐츠 입력(210)으로서 비디오 픽처들(프레임들)의 시퀀스를 수신하고 출력으로서 압축 비트 스트림(230)을 생성한다.
비디오 인코더(200)는 비디오 픽처들을 처리한다. "픽처"라는 용어는 일반적으로 소스인 코딩되거나 재구성된 이미지 데이터를 의미한다. 프로그레시브(progressive) 비디오에 있어서, 픽처는 프로그레시브 비디오 프레임이다. 인터레이스드(interlaced) 비디오에 있어서, 픽처는 맥락에 따라, 인터레이스드 프레임, 프레임의 최상위 필드, 또는 프레임의 최하위 필드를 의미할 수 있다.
비디오 인코더(200)는 입력 비디오의 인터 코딩 예측 픽처들과 입력 비디오의 인트라 코딩 픽처들을 압축한다. 표현의 목적으로 도 2는 인코더(200)를 통해 인트라 코딩 프레임들의 경로 및 인터 코딩 예측 프레임들의 경로를 도시한다. 비디오 인코더(200)의 구성요소들 중 다수가 인트라 코딩 콘텐츠 및 인터 코딩 예측 콘텐츠 둘 모두를 압축하는데 사용된다. 그러한 구성요소들에 의해 수행되는 정확한 동작은 압축되는 정보의 유형에 따라 달라질 수 있다.
일반적으로, 비디오 인코더(200) 안에서, (픽처로서) 인터 코딩 예측 프레임은 (통상적으로 기준 픽처들 또는 앵커(anchor)들이라 칭하는 한 개 이상의 다른 픽처들로서) 앞서 재구성된 콘텐츠로부터의 예측에 기초하여 표현된다. 예를 들어, 소정 시점의 콘텐츠는 프로그레시브 P-프레임 또는 B-프레임, 인터레이스드 P-필드 또는 B 필드, 또는 인터레이스드 P 프레임이나 B-프레임으로서 인코딩된다. 비디오 인코더(200) 안에서 예측 잔차(residual)는 예측 정보 및 대응하는 인트라 코딩 프레임들 사이의 차이이다.
인터 경로(inter-path) 상의 입력 비디오(110) 콘텐츠는 모션 정보에 기반하여 예측 픽처로서 인코딩된다. 소정 조건이 만족되면, 비디오 인코더(100)는 (선택 스위치(256)에 의해 예시된 바와 같이) 입력(120)으로부터 미리 산출된 모션 정보를 사용하며, 그 정보는 한 개 이상의 기준 픽처들에 대한 인터 경로 비디오 픽처의 매크로블록들이나 다른 샘플 집합들의 모션 벡터의 집합이나 시퀀스의 형태로 되어 있을 수 있다. 일반적으로, 미리 산출된 모션 정보를 사용하는 선택은 첫째, 미리 산출된 모션 정보의 가용성; 및 둘째, 비디오 콘텐츠의 현재의 인코딩을 위해 사용되는 모션 정보 및 파라미터의 이전의 산출결과로부터 인코딩 파라미터들이 변경되었는지 여부 및 어떤 인코딩 파라미터들이 변경되었는지에 기반할 수 있다. 일 예에서, 비디오 인코더가 현재 인코딩하고 있는 비디오 해상도와 다른 비디오 해상도를 가진 비디오 콘텐츠를 인코딩하는데 모션 정보가 산출되었다면 비디오 인코더는 입력(130)으로부터 앞서 산출된 모션 정보를 사용하지 않도록 선택할 것이다.
그러나, 비디오 인코더(100)는 대신 모션 추정기(258)를 이용해 인터 경로 비디오 콘텐츠(110)에 대해 새 모션 추정을 수행하도록 선택할 수 있다(선택 스위치(256)에 의해 예시됨). 모션 추정기(258)는 앞서 인코딩된 비디오 콘텐츠 프레임들의 재구성을 표현하는 한 개 이상의 기준 픽처들에 대한 비디오 픽처의 매크로블록들이나 다른 샘플 집합들의 모션을 추정한다. 픽처 저장부(264)는 그러한 재구성 비디오 콘텐츠(266)를 기준 픽처 또는 픽처들로서 버퍼링한다. 여러 기준 픽처들이 사용될 때, 여러 기준 픽처들은 다른 시간의 방향들이나 동일한 시간의 방향으로부터 나올 수 있다. 모션 추정기(258)는 모션 벡터 정보 같은 모션 정보(260)를 출력한다.
모션 보상기(262)는 모션 보상된 현재의 픽처(268)를 형성할 때 소정의 재구성 비디오 콘텐츠(266)(기준 픽처(들)로서 저장됨)에 모션 벡터들을 적용한다. 모션 보상된 픽처(268)의 블록 및 상응하는 오리지널 인터 경로 비디오 픽처의 블록 사이의 차이(있다면)는 그 블록에 대한 예측 잔차(270)다. 나중의 (가령, 비디오 디코더에서) 인터 경로 비디오 프레임의 재구성 중에, 오리지널 인터 경로 비디오(256)에 보다 가까운 재구성 콘텐츠를 얻기 위해 재구성된 예측 잔차들이 모션 보상된 잔차 비디오(268)에 추가된다. 그러나, 손실을 가진 압축시, 일부 정보는 계속해서 오리지널 인터 경로 비디오로부터 누락된다. 모션 추정기 및 모션 보상기가 대안적으로 다른 유형의 모션 추정/보상을 적용한다.
주파수 변환기(280)는 공간 도메인 비디오 정보를 주파수 도메인(즉, 스펙트럼 변환) 데이터로 변환한다. 블록 기반 비디오 콘텐츠에 대해 주파수 변환기(280)는 DCT, DCT의 변형, 또는 다른 포워드 블록 변환을 샘플들이나 예측 잔차 데이터의 샘플들에 적용하여, 주파수 변환 계수들의 블록들을 생성한다. 주파수 변환기(280)는 8x8, 8x4, 4x8, 4x4 또는 다른 사이즈의 주파수 변환을 적용할 수 있다.
그런 다음 양자화기(282)가 변환 계수들의 블록을 양자화한다. 양자화기(282)는 픽처 단위, 매크로블록 단위, 또는 다른 단위 별로 공간적으로 가변하는 스텝 사이즈를 갖는 일정하지 않은 스칼라 양자화를 스펙트럼 데이터에 적용한다. 또한, 어떤 경우 양자화기는 인터 계층 잔차 비디오 픽처의 컬러 채널들에 걸친 양자화를 가변한다. 양자화기(282)는 또한 다른 유형의 양자화, 예컨대, 적어도 일부 스펙트럼 데이터 계수들에 대해 일정하거나 적응적인 양자화를 적용할 수도 있고, 아니면 주파수 변환을 이용하지 않는 인코더 시스템에서 공간 도메인 데이터를 바로 양자화한다.
인터 경로 비디오 픽처의 후속 모션 추정/보상을 위해 재구성된 비디오 콘텐츠가 필요될 때, 역양자화기(290)가 양자화된 스펙트럼 데이터 계수들에 대해 역양자화를 수행한다. 역 주파수 변환기(292)는 역 주파수 변환을 수행하여, (예측된 인터 경로 잔차 비디오 콘텐츠에 대해) 재구성된 예측 잔차들의 블록들이나 샘플들을 생성한다. 잔차 비디오 콘텐츠(256)가 모션 보상 예측되었으면, 재구성되는 잔차 비디오를 형성하기 위해 모션 보상된 예측기들(268)로 재구성된 예측 잔차들이 추가된다. 픽처 저장부(264)는 후속 모션 보상 예측을 위해 재구성된 잔차 비디오를 버퍼링한다.
엔트로피 코더(284)가 양자화기(282)의 출력뿐 아니라 소정 사이드 정보9가령, 양자화 파라미터 값들)를 압축한다. 통상적인 엔트로피 코딩 기법들은 산술적 코딩, 차동 코딩, 허프만(Huffman) 코딩, 런(run) 길이 코딩, LZ 코딩, 딕셔너리(dictionary) 코딩, 및 이들의 조합을 포함한다. 엔트로피 코더(284)는 통상적으로 다른 종류의 정보에 대해 다른 코딩 기법들을 사용하며, 특정 코딩 기법 안의 여러 코드 테이블들 사이에서 선택을 할 수 있다.
비디오 인코더(240)가 인트라 경로 비디오 콘텐츠의 인트라 압축(intra-compression)을 수행할 때, 인코더는 모션 보상 없이 그것을 인트라 코딩 픽처로서 인트라 압축한다. 비디오(256)는 주파수 변환기(280), 양자화기(282) 및 엔트로피 코더(284)로 바로 제공되고 인코딩 비디오로서 출력된다. 재구성된 버전의 인트라 코딩 비디오는 다른 인터 경로 비디오의 후속 모션 보상에 사용되기 위해 버퍼링될 수 있다.
제어기(294)는 모션 추정기(258), 주파수 변환기(280), 양자화기(282), 역양자화기(290) 및 엔트로피 코더(284) 같은 다양한 모듈들로부터 입력을 수신한다. 제어기(294)는 인코딩 중에 예컨대 양자화 스텝 사이즈를 설정하고 레이트 왜곡 분석을 수행하는 도중에 중간 결과들을 평가한다. 제어기(294)는 인코딩 중에 코딩 파라미터들을 세팅하고 변경하기 위해 다른 모듈들과 함께 작동한다. 제어기(294)가 다른 코딩 파라미터 선택을 평가할 때, 제어기(294)는 다른 파라미터 설정을 평가하기 위해 소정 단계들을 반복적으로 수행할 수 있으며, 아니면 제어기(294)가 다른 코딩 파라미터들을 공동으로 평가할 수 있다. 평가될 코딩 파라미터 결정 트리 및 해당 인코딩의 타이밍은 구현예에 좌우된다. 일부 실시예에서, 제어기(294)는 특정 규칙을 사용해 인코딩될 비디오를 지정하기 위해 인코딩 세션 마법사(wizard) 인터페이스, 다른 인코더 애플리케이션 인터페이스, 또는 다른 소스로부터도 입력을 수신한다.
III . MBR 스트림의 가변 비트 레이트 인코딩
다중 비트 레이트 비디오 스트리밍 시스템(100)(도 1)에 있어서, 다중 비트 레이트 비디오 인코딩 시스템은 계속해서 감소하는 전체적 비트 레이트를 가진 압축된 비디오 스트림들의 집합으로서 입력 비디오를 각각 인코딩한다. 여기에서는 각각의 개별 MBR 비디오 스트림들을 인코딩하는 것이 기술되지만, MBR 비디오 스트리밍 시스템 및 인코딩 시스템의 다른 대안적 구현예는 MBR 비디오 스트림들 중 한 개 이상을 다중 분리가능 코딩 계층들을 가진 압축 비트스트림으로서 인코딩할 수 있다. 다중 비트 레이트 비디오 인코딩 시스템은 비디오 인코더(200)(도 2)를 구동하여 이 섹션 및 이하의 섹션에서 기술되는 가변 비트 레이트 및 모션 기반 동작 해상도 접근법을 구현하는 다중 비트 레이트 인코딩 프로세스(도 3에 도시됨)에 따라 가변하는 인코딩 파라미터들을 사용해 입력 비디오를 인코딩하게 하는 MBR 인코딩 엔진(미도시)을 포함한다. MBR 인코딩 엔진은 스트림의 개수 및 이하에서 언급되는 다른 파라미터들 같은 MBR 비디오 스트림 인코딩을 위한 파라미터들을 설정하기 위해 사용자 입력을 수신하는 사용자 인터페이스 또는 콘솔(또는 대안적으로 콜러(caller) 애플리케이션으로부터의 입력 같은 것을 수신할 애플리케이션 프로그래밍 인터페이스)을 제공할 수 있다.
현재 이용가능한 다른 다중 비트 레이트 비디오 스트리밍 시스템들(다중 비디오 스트림을 인코딩하기 위해 일정한 비트 레이트 접근법을 사용하는 시스템)과 대조적으로, 다중 비트 레이트 비디오 스트림 시스템(100)을 위한 MBR 인코딩 시스템은 각각의 비디오 스트림에 대해 일정하거나 일관된 품질을 제공하는 것을 목적으로 한다. 최상위의 MBR 비디오 스트림(일반적으로 최고 전체 비트 레이트(overall bit rate)를 가짐)에 대해, 비디오 인코더(200)는 특정 평균 비트 레이트를 만족하면서 특정 피크 비트 레이트에 속하도록 구속된 가변 비트 레이트로 비디오 스트림을 인코딩한다. 최하위 MBR 비디오 스트림(일반적으로 해당 집합에서 최저 비트 레이트를 가짐)에 대해, 비디오 인코더는 일정한 청크 레이트 접근법을 이용한다. 다중 비트 레이트 비디오 스트리밍 시스템과 관련하여, 청크(chunk)라는 용어는 비디오 스트림이 세그먼트화되는 픽처 그룹(GOP)을 나타내며, 비디오 스트리밍 시스템이 비디오 스트림들 사이에서 개별 세그먼트들의 재생을 스위칭할 수 있는 세분화 수준을 규정한다. 일정한 청크 레이트 접근법은 비디오 스트리밍 시스템이 스트리밍의 예측가능성을 보장할 수 있게 하는데, 이는 최저의 비트 레이트나 품질의 비디오 스트림이 스트리밍될 때 클라이언트가 최소한의 비디오 연속 재생 품질을 유지하도록 일정한 레이트에서 픽처들의 청크량을 수신할 것이라는 점에서 그러하다.
최저 및 최고 전체 비트 레이트 스트림들 사이에서, 비디오 인코더는 일정한 비디오 품질을 유지하는 것을 목적으로 하는 피크 비트 레이트 및 평균 비트 레이트의 구속조건 안에서 역시 코딩의 가변 비트 레이트를 이용하여, 한 개 이상의 중간 비디오 스트림들을 인코딩한다. 중간 비디오 스트림들의 피크 및 평균 비트 레이트 구속조건은 비례, 로그함수, 또는 감소하는 방식으로 점진적으로 감소되도록 특정될 수 있다. 예를 들어, 중간 스트림의 평균 비트 레이트는 최고 비트 레이트 비디오 스트림의 평균 비트 레이트 구속조건의 3/4, 1/2 1/4로 비례적으로 감소될 수 있다. 이렇게 하여 비디오 스트리밍 시스템(100)은 순간적 시작 및 보장된 낮고 일정한 청크 레이트로부터 최고 품질의 가변 레이트 비트 스트림까지 신속한 비디오 스위칭을 제공할 수 있다. 피크 및 평균 비트 레이트 뿐 아니라 일정한 청크 레이트는 사용자에 의해 설정될 수 있는 인코딩 파라미터들이다. 이 파라미터들은 사용자에 의해 명시적으로 설정되거나, 사용자에 의해 입력된 보다 많은 일반화된 파라미터들에 기반하여 MBR 인코딩 시스템 엔진에 의해 산출될 수 있다. 예를 들어 MBR 인코딩 엔진은 사용자(또는 콜러 애플리케이션)가 간단히 최소 및 최대 타깃 비트 레이트들 및 비디오 스트림이나 계층의 개수를 특정하는 자동 모드를 가질 수 있다. 이 자동 모드에서 엔진은 일관된 로그함수적이거나 다른 분산 공간 안에서 모든 중간 비트 레이트 구속조건들(피크 및 평균)을 산출한다.
이제 도 3을 참조하면, MBR 인코딩 시스템은 투 패스(two pass) 인코딩 접근법을 이용하는 프로세스(300)를 이용해 MBR 비디오 스트림들의 집합을 인코딩한다. 이 프로세스는 분석 패스 및 인코딩 패스를 포함한다. 분석 패스의 목적은 인코딩 설정사항 뿐 아니라 입력 비디오 소스 자료 자체에 기초하여 비디오 콘텐츠의 장면 복잡도(공간 및/또는 모션 복잡도)를 찾는 것이다. 이 정보가 분석 패스 중에 추출되면, 이어지는 인코딩 패스가 MBR 비디오 스트림들의 집합을 생성한다.
MBR 인코딩 프로세스(300)는 초기화 단계(310)로부터 시작된다. 이 단계에서, MBR 인코딩 프로세스는 사용자 입력으로부터 인코딩을 하기 위해, 무엇보다 여러 MBR 비디오 스트림, 그 스트림들에 대한 피크 및 평균 비트 레이트 구속조건, 및 최저 품질 MBR 비디오 스트림의 일정한 청크 레이트, 모션 검색 범위 파라미터들 및 세그먼트 파라미터들을 포함하는 파라미터들을 결정한다.
MBR 인코딩 프로세스(300)의 분석 패스는 동작들(311-314)을 포함한다. 분석 패스에서, MBR 인코딩 엔진이 프레임별 입력 소스 비디오를 분석한다. 분석은 장면 변화 검출, 장면 변화 경계들 사이의 비디오 시퀀스를 픽처 그룹 세그먼트들로 세그먼트화, 그리고 비디오 프레임 복잡도 측정(가령, 공간 및/또는 모션 복잡도)을 포함하는 여러 다양한 작업들을 포함한다. 장면 변화 검출에 기초해, MBR 인코딩 엔진이 비디오 중에 장면 변화가 일어나는 경계들을 마크한다. 비디오 시퀀스의 마크된 경계들(시퀀스 마크-인(mark-in) 및 마크-아웃(mark-out) 위치들) 사이에서, MBR 인코딩 프로세스(300)는 사용자가 특정한 구속조건(장면 내에서 특정된 평균 GOP 길이 및 최대 허용 GOP 길이 같은 조건) 안에서 비디오 시퀀스가 분할될 픽처 그룹 세그먼트들의 총 개수를 결정하고 각각의 픽처 그룹의 경계들을 세팅한다. GOP 경계가 정의되면, 각각의 GOP 내 프레임들의 총 개수가 MBR 인코딩 엔진에 의해 산출된다. MBR 인코딩 엔진은 다음 섹션에 기술되는 가변 해상도 인코딩에 사용되는 각각의 픽처 그룹의 프레임 당 세 개의 텍스처 측정치들의 집합을 산출한다. 이 세 개의 텍스처 측정치들은 프레임 글로벌 텍스터, 프레임 수평 텍스처 및 프레임 수직 텍스처 특정치를 포함한다. MBR 인코딩 엔진은 또한 다음 섹션에 기술되는 가변 해상도 인코딩에 사용되는 각각의 픽처 그룹의 프레임 당 모션 벡터들의 크기의 메디안 값을 산출한다. 특정 구현예에서, 모션 벡터의 크기는 모션 벡터의 x 및 y 성분의 절대값들의 합이다. 또한, 특정 구현예에서 메디안 값은 GOP 내 각각의 예측(가령, P 및/또는 B) 프레임에 대해 산출된다.
MBR 엔진은 동작 314에서 나타낸 것과 같이, 이 분석 패스 결과들(장면 및 GOP 경계들, 텍스처 측정치들, 및 모션 벡터 측정치들)을 로그 파일 안에 기록한다. 특정 구현예에서, MBR 엔진은 GOP 마다 평균 메디안 모션 벡터 값을 산출하고(GOP의 프레임들의 메디안 모션 벡터 크기 값들로부터), 그 평균 메디안 모션 벡터 값을 로그 파일에 저장한다.
인코딩 패스(동작 315-324)에 있어서, MBR 엔진은 비디오 인코더(200)(도 2)를 이용하여 MBR 비디오 스트림들을 인코딩하기 위해 분석 패스의 결과를 적용한다. MBR 엔진은 비디오 인코더(200)가 각각의 세그먼트를 인코딩하여 (동작 317) 모든 MBR 스트림들에 대해 인코딩하게(동작 318) 한다. MBR 비디오 스트림의 각각의 세그먼트에 대해, MBR 인코딩 엔진은 어떤 평균 비트 레이트의 특정 타깃을 맞추기 위한 시도로서 비디오 인코더(200)의 인코딩 파라미터들을 제어한다. 소스 비디오 콘텐츠가 타깃 비트 레이트에서 인코딩하기에 너무 복잡하면, MBR 인코딩 엔진은 보다 나은 시각적 품질을 얻기 위해 양자화 스텝 사이즈를 증가시키기 시작한다. 최상 혹은 최고 품질의 비디오 스트림은 사용자 특정 MBR 인코딩 파라미터들을 만족시키는 최대 피크 비트 레이트 구속조건 하에서 인코딩된다. 최하위 또는 최저 품질의 비디오 스트림에 대해, MBR 엔진은 스트리밍된 비디오의 클라이언트 측 예측가능성을 보장하도록 돕는 일정한 청크 레이트를 충족시키기 위한 비디오 스트림의 인코딩을 도출하도록 비디오 인코더를 제어한다. 중간 비디오 스트림들에 대해, MBR 엔진은 비디오 인코더가 인코딩 파라미터들을 가지고 소스 비디오를 인코딩하여 각자의 중간 스트림에 대한 최대 피크 및 평균 비트 레이트 구속조건 안에 들어오는 가변 비트 레이트의 비디오 스트림을 생성하도록 한다.
인코딩 패스의 결과로서, MBR 엔진은 비디오 인코더를 이용해 생성된 MBR 스트림들의 집합의 압축 비디오 비트 스트림들 및 로그 파일을 출력한다. 이러한 MBR 인코딩 프롯세스(300)의 가변 비트 레이트 접근법을 사용하여, MBR 엔진은 각 GOP에 대해 최상위에서 최하위 품질의 스트림까지 고르게 감소하는 MBR 비디오 스트림들의 집합을 생성한다. 이러한 MBR 비디오 스트림들의 집합을 이용해 MBR 시스템(100)(도 1)은 이용 가능한 접속 대역폭에 따른 비디오 시퀀스의 요망되는 일정하거나 일관된 시각적 품질을 전달할 수 있다.
IV . MBR 스트림의 가변 해상도 인코딩
MBR 인코딩 엔진은 또한 MBR 비디오 스트림들 각각에 대해 인코딩의 해상도를 동적으로 가변하는 기법을 적용한다. MBR 비디오 스트림들의 최상부에서 최하부까지 걸쳐있는 각각의 비디오 스트림에 대해, MBR 인코딩 엔진은 보다 나은 시각적 품질을 도출하기 위해 각 비디오 GOP를 인코딩할 해상도를 동적으로 결정한다. 각각의 비디오 스트림에 대해, MBR 인코딩 엔진은 낮은 공간적 복잡도의 GOP(또는 세그먼트)에는 보다 높은 해상도를 할당하는 한편, 보다 공간적으로 복잡한 GOP(또는 세그먼트)에는 보다 낮은 인코딩 해상도가 할당된다. 공간적 복잡도에 더하거나 그 대신에, 해상도를 동적으로 가변할 때 모션 복잡도가 고려될 수 있다. 구체적으로 말하면, 해상도는 상당한 모션을 가진 GOP(또는 세그먼트)에 대해서는 낮아질 수 있다.
고속 모션 장면들을 가진 비디오 콘텐츠를 인코딩하는 것이 비디오 인코더에 대한 도전이 될 수 있다. 예를 들어, 어떤 상황에서는 모션 검색 범위를 결정하는 데 있어서의 한계 및/또는 휴리스틱스로 인해 모션 추정 루틴이 빠른 모션 장면들을 추적하지 못할 수 있다. 모션 검색 범위가 너무 작으면(또는 조기에 존재하면), 모션 추정 루틴은 부정확한 모션 벡터들을 생성할 수 있다. 그러면 부정확한 모션 벡터들이 큰 에러 신호를 생성한다. 타깃 비트 레이트를 만족하기 위해, 인코더는 양자화 파라미터를 증가시킨으로써 큰 에러 신호를 보상할 수 있다. 최종 결과는 높은 블로킹 효과(blockiness)를 가진 프레임이다. 한편, 모션 검색 범위가 너무 크면, 모션 추정 루틴은 높은 백분율의 인코딩 시간을 소비할 수 있다. 이것은 이득(gain)이 거의 없는 긴 인코딩으로 귀착된다(빠른 모션 장면은 보통 스크린 상에서 흐릿하게 지나가기 때문이다). 또, 부정확한 모션 벡터들은 객체들의 두서없는 모션으로 이끌 수 있다. 그 객체에 속하는 매크로블록들에는 일관되지 않은 모션 벡터들이 할당될 수 있다. 이것은 끊김없이 무작위적 방향으로 움직이는 동일 객체의 블록들을 가진 프레임으로 귀결된다.
MBR 인코딩 엔진은 레이트 제어 메커니즘을 튜닝하기 위해 비디오 콘텐츠의 모션 복잡도를 적극 활용할 수 있다. 이러한 접근법은 MBR 인코딩 엔진이 모션이 있는 장면들의 해상도를 재조정할 수 있게 한다. 예를 들어, 비디오 콘텐츠의 모션 복잡도는 비디오 픽처들의(가령, P 및/또는 B 픽처들 같은 예측 픽처들의) 모션 벡터들의 크기의 메디안 값을 계산함으로써 결정될 수 있다. 그런 다음 세그먼트나 GOP 내 픽처들(가령, 프레임들)에 대해 그 메디안을 평균낼 수 있다(예컨대, GOP 내 모든 P 프레임들에 대해 평균낼 수 있다). 평균 메디안은 세그먼트나 GOP 내 모션량의 함수이며, 여기서 높은 평균 메디안은 세그먼트나 GOP에서 빠르게 인식되는 모션을 의미한다.
모션 보상의 정확도는 부분적으로 모션 검색 범위에 좌우되며, 이때 넓은 검색 범위는 보다 정확한 모션 벡터들의 집합을 제공한다. SMPTE 421-M 비디오 코덱을 사용하는 MBR 인코딩 엔진의 특정 구현예에서, 적응적 모션 검색 범위가 사용된다. 적응적 모션 검색 범위는 프레임별로 바뀌고, 콘텐츠 내 모션량에 따라 0에서 3까지 조정된다. 다른 대안으로서, 모션 검색 범위가 고정 값(가령, 사용자 설정가능 옵션)으로 세팅될 수도 있다. SMPTE 421-M 코덱을 사용하는 인코딩 엔진의 특정 구현예에서, 경험적으로 2보다 큰 모션 검색 범위가 구해져서, 인코딩된 비디오 콘텐츠가 상당한(가령, 적거나 모션이 아예 없는 것부터 고속 모션까지 비디오 콘텐츠에 존재하는 모션의 범위를 결정하기 충분한) 모션을 포함하는지 여부를 나타낼 수 있는 모션 벡터들을 가져온다.
상당한 모션을 가진 비디오 콘텐츠에 대해, 해상도를 줄이는 것은 많은 인코딩 효율성/개선점을 제공할 수 있다. 예를 들어, 줄어든 해상도는 모션 검색 범위를 줄이고, 모션 추정 루틴이 정확한 모션 벡터를 찾을 가능성을 늘리므로, 줄어든 해상도는 개선된 인코딩 속도를 가져온다. 또, 보다 정확한 모션 벡터들은 보다 적은 에러 신호를 만들어서 인코딩된 비디오 스트림 안에서 보다 적은 블로킹 효과 및 보다 작은 양자화 파라미터를 가져온다. 마지막으로, 보다 정확한 모션 벡터들은 같은 객체에 속하는 공간적으로 인접한 블록들이 일관된 방식으로 움직이도록 한다.
도 8은 모션 기반 동적 해상도 인코딩을 이용하여 다중 비트 레이트 비디오 인코딩 시스템에 의해 인코딩되는 비디오 세그먼트들의 시각적 표현을 묘사한다. 이 시각적 표현(800) 안에는 세 개의 GOP들이 세 개의 상이한 비트 레이트(비트 레이트 1은 높은 비트 레이트를 나타내고 비트 레이트 3은 낮은 비트 레이트를 나타냄)로 인코딩되는 두 가지 상황이 묘사된다. GOP 1은 느린 모션 비디오 콘텐츠를 나타내고, GOP 2는 중간 모션 비디오 콘텐츠를 나타내고, GOP 3은 빠른 모션 비디오 콘텐츠를 나타낸다.
810에서, 세 개의 GOP들은 동적 해상도 없이 인코딩된다(즉, 이들은 모두 같은 해상도로 인코딩된다).
820에서, 세 개의 GOP들은 적어도 부분적으로 모션 기반 동적 해상도를 이용하여, 세 개의 서로 다른 비트 레이트로 인코딩된다. 820에서 알 수 있는 바와 같이, 느린 모션 GOP(GOP 1)은 세 개의 모든 비트 레이트들에 대해 한 가지 해상도로 인코딩된다(다른 대안으로서 어떤 상황에서는 최저 비트 레이트 인코딩이 감소된 해상도일 수 있다). 비트 레이트 1의 중간 모션 GOP(GOP 2)는 GOP 1의 비트 레이트 1과 같은 해상도로 인코딩되고, 비트 레이트 2와 비트 레이트 3는 보다 낮은(감소된) 해상도로 인코딩된다. 마찬가지로, 비트 레이트 1의 빠른 모션 GOP(GOP 3)는 (GOP 1 및 2의 비트 레이트 1과) 같은 해상도로 인코딩되고, 비트 레이트 2와 비트 레이트 3는 훨씬 더 낮은(좀 더 감소된) 해상도로 인코딩된다. 시각적 표현(800)에서 각각의 GOP 인코딩의 상대적 해상도는 대응하는 박스의 크기에 의해 반영된다.
특정 인코딩 상황 및/또는 특정 비디오 콘텐츠에 따라, 시각적 표현(800)에 묘사된 것보다 많거나 적은 해상도 재조정이 수행될 수 있다.
전형적 구현예에서, MBR 인코딩 엔진은 비디오의 장면 경계들에서 각각의 GOP의 해상도를 동적으로 재조정하는 결정을 적용한다. 이것은 비디오 장면 중에 비디오 해상도를 재조정하는 일이 일으킬 수 있는 어떤 바람직하지 못한 시각적 효과가 나타나는 것을 막는다. 예를 들어, "말하는 머리"를 피처링하는 장면에서, 장면 중에 비디오 해상도를 가변하는 것은 해당 장면 내 상세한 에지들과 피처들이 해상도 변화에 따라 예리해지거나 부드러워지는 것과 같이 현저한 갑작스러운 돌출(popping)과 맥동(pulsing)을 일으킬 수 있다. 그에 따라, MBR 인코딩 엔진은 장면 내 해당 GOP나 GOP들에 대해(가령, 상술한 분석 단계에서 식별된 장면 변화 경계 다음에 나오는 최초 GOP에 대해) 이하에 기술되는 프로세스를 수행한다.
동적 해상도 인코딩의 한 전형적 구현예에서, MBR 인코딩 엔진은 동적 해상도를 결정하기 위해 쓰리 포인트(three-point) 샘플링 접근법을 사용한다. 각각의 샘플링 포인트는 세 가지 서로 다른 비디오 해상도 및 양자화 스텝 사이즈의 쌍들을 이용하여 GOP를 인코딩하는 것으로부터 나온 결과를 (실제 인코딩된 비트 레이트나 사이즈를 통해) 나타낸다. 이러한 세 개의 샘플링 포인트 결과들을 사용해, MBR 엔진은 해상도, 양자화 스텝 사이즈 및 코딩 사이즈 사이의 관계 모델을 만들고, 이 관계는 도 4에서 그래프로 예시된다. 이렇게 동적으로 추출된 비디오 시퀀스의 모델로부터, MBR 인코딩 엔진은 이제 MBR 비디오 스트림들의 각각의 타깃 비트 레이트에 대한 해상도를 결정할 수 있다. 다른 대안적 구현예들에서, MBR 인코딩 엔진은 이 모델을 만들기 위해 더 많은 샘플링 포인트들을 이용할 수 있다. 그러나, 세 개의 샘플링 포인트 접근법은 인코딩 스피드 목적에 가장 실용적인 것으로 남으면서 모델을 만들기 충분한 것으로 인식된다.
도 5는 각각의 비디오 스트림의 GOP에 대한 동적 해상도를 결정하기 위해 MBR 비디오 인코딩 엔진에 의해 수행되는 프로세스(500)를 예시한다. 이 프로세스(500)는 인코딩 결과들의 세 샘플 포인트들을 획득하는 것(510 동작)에서 시작한다. MBR 인코딩 엔진은 해상도 및 양자화 스텝 사이즈에 대한 세 개의 파라미터 조합을 사용해 세그먼트나 GOP를 인코딩하도록 비디오 인코더(200)를 제어한다. 초기 샘플 해상도는 비디오에 대해 요망되는 디스플레이 해상도에 기초해 선택될 수 있다. 초기 샘플 양자화 스텝 사이즈는 비디오 인코더에 의해 사용되는 특정 코덱 표준에 따라 선택될 수 있다. 예를 들어, SMPTE 421-M 비디오 코덱의 경우, 초기 샘플 양자화 스텝 사이즈는 4로 선택될 수 있다. 비디오 인코더가 H.264 표준을 사용하는 경우, 적절한 초기 샘플 양자화 스텝 사이즈는 28일 수 있다. 그러나, 다른 초기 샘플 양자화 스텝 사이즈 및 해상도가 대신 선택될 수도 있다.
예시된 모델에서, MBR 비디오 인코딩 엔진은 초기 샘플 해상도 및 양자화 스텝 사이즈 파라미터 쌍(R, Qp) 뿐 아니라 초기 샘플 해상도의 1/4(즉, (R/4, Qp)) 및 초기 샘플 양자화 스텝 사이즈의 두 배(즉, (R, Qp*2))에서 인코딩을 수행한다. 다른 대안으로서, 1/2 해상도, 네 배의 양자화 스텝 사이즈 등과 같은 샘플 포인트들에 대한 다른 파라미터 쌍들이 사용될 수 있다. MBR 비디오 인코딩 엔진은 해상도 및 양자화 스텝 사이즈 파라미터의 세 개 쌍들을 사용해 비디오 스트림의 GOP를 인코딩한 것에서 비롯된 인코딩된 비트 사이즈들(S1, S2, 및 S3)을 따른다.
다음 동작(511)에서, MBR 엔진은 두 개의 선형 모델을 설정하는데, 한 모델은 양자화 스텝 사이즈 및 인코딩된 사이즈 사이의 관계(도 4의 다이어그램에서 GraphQpS로 표식됨)에 대한 것이고, 한 모델은 해상도 및 인코딩된 사이즈 사이의 관계(GraphRS)에 대한 것이다. 양자화 스텝 사이즈 및 인코딩된 사이즈 사이의 관계는 해상도가 일정하게 유지되는 동안 양자화 스텝 사이즈가 가변되는 두 개의 샘플 포인트들로부터 비롯된 인코딩된 사이즈들에 의해 결정되고, 반대로 해상도와 인코딩된 사이즈 사이의 관계는 양자화 스텝 사이즈가 일정하게 유지되는 동안 해상도를 가변시키는 두 개의 샘플 포인트들로부터 결정된다.
동작 512에서, MBR 엔진은 원하는 비트 레이트에 해당하는 인코딩된 사이즈를 낳는 양자화 스텝 사이즈를 찾기 위해 양자화 스텝 사이즈에 대한 인코딩된 사이즈의 관계를 이용한다. 이것은 비디오 스트림의 GOP에 대한 타깃 비트 레이트를 양산할 풀 샘플링 해상도 R에서 모델링된 결과 양자화 스텝 사이즈(Qp'로 표식됨)이다.
MBR 엔진은 이제 모델링된 결과 양자화 스텝 사이즈를 경험적으로 결정된 문턱치(광범위한 비디오 콘텐츠에 대한 비디오 텍스처를 측정하는 실험으로부터 결정됨)를 비교한다. 모델링된 결과 양자화 스텝 사이즈가 문턱치보다 작으면, MBR 엔진은 풀 샘플 해상도 및 모델링된 결과 양자화 스텝 사이즈, 즉 동작 514에서 (R, Qp')를 이용하기로 결정한다.
더 구체적으로 말하면, MBR 엔진은 입력 비디오 콘텐츠에 대한 (위에서 논의된) 분석 단계 중에 이뤄진 프레임 당 텍스처 측정치들에 기반하여 적절한 양자화 스텝 문턱치를 결정한다. MBR 엔진은 GOP의 모든 프레임들에 대한 프레임 텍스처 측정치들을 평균함으로써 GOP에 대한 텍스처 측정치들을 산출한다. 이것은 GOP 글로벌 텍스처, GOP 평균 텍스처 및 GOP 수직 텍스처 측정치들을 도출한다. 이들 중 GOP 글로벌 텍스처 측정치는 비디오 해상도를 언제 재조정할지를 제어하는 양자화 스텝 사이즈 문턱치를 결정한다. 광범위한 비디오 콘텐츠(스포츠, 텔레비전, 영화 등을 포함)에 걸친 실험적 결과들로부터, 12(SMPTE 421M 표준을 이용한 비디오 인코딩용)에 해당하는 Qp의 양자화 스텝 사이즈 문턱치가 통상적 GOP 글로벌 텍스처 측정치를 갖는 비디오에 적합하다고 판단되었다. 즉, 모델링된 결과 양자화 스텝 사이즈 Qp'가 12를 넘으면, MBR 인코더는 보다 낮은 Qp에서 인코딩하기 위해 보다 낮은 비디오 해상도로 재조정해야 한다. 그러나 전형적 구현예에서, MBR 인코더는 비디오에 대한 전체 글로벌 텍스처 측정에 따라 재조정할 양자화 스텝 사이즈 문턱치를 추가 가변할 수 있다. MBR 인코더는 재조정을 위한 글로벌 텍스처 및 양자화 스텝 사이즈 사이의 선형 관계를 설정하였다. 낮은 전체 글로벌 텍스처를 가진 비디오에 대해, 보다 낮은 양자화 스텝 사이즈 문턱치가 기대된다. 이것은 MBR 인코더가 많은 완만한 영역들을 가진 비디오 콘텐츠의 비디오 해상도를 축소 재조정하는데 보다 적극적이 되게 할 수 있다. 반면에, 높은 글로벌 텍스처를 가진 비디오에 대해, MBR 인코더는 재조정을 위해 보다 높은 양자화 스텝 사이즈를 기대한다. 그러한 보다 높은 문턱치는 MBR 인코더가 많은 디테일을 가진 프레임들의 비디오 해상도를 축소 재조정함에 있어 좀 더 주의하도록 함으로서, 그 프레임들의 세부 영역들의 완만화를 피하도록 한다. 다른 대안적 구현예들에서, 양자화 스텝 사이즈 문턱치는 가령 다른 비디오 인코딩 표준을 이용해 사용하거나, 비디오 해상도를 재조정할 때 원하는 정도의 적극성/조심성을 획득하기 위한 다른 양자화 스텝 사이즈들에서 설정될 수 있다.
한편, 동작 515에서, 모델링된 결과(상기 512에서 결정된 모델링된 결과 양자화 스텝 사이즈 Qp')가 비디오 텍스처에 의해 규정된 문턱치보다 큰 경우, MBR 엔진은 대신 인코딩된 사이즈 및 해상도(GraphRS) 사이의 관계를 이용하여 비디오 스트림의 타깃 비트 레이트에 해당하는 인코딩된 사이즈를 낳는 모델링된 결과 해상도(R')를 찾도록 한다. 특정 구현예에서, 동작 515의 결과는 GraphRS로부터 정해진 텍스처 스케일 인자이다. 전형적 텍스처 스케일 인자는 0.8*R로의 해상도 감소를 나타내는 0.8이다(여기서 1.0은 풀 해상도 R이다).
또한, 516에서 모델링된 결과가 비디오 텍스처에 의해 규정된 문턱치(상기 동작 515)보다 큰 경우, 모션 복잡도가 또한 해상도 재조정 계산시에 고려된다. 일반적으로, 빠른 모션을 가진 비디오 콘텐츠에 대해(통상적으로 흐릿함), 해상도는 품질에 크게 영향을 주지 않으면서 추가로 감축될 수 있다. 특정 구현예에서, 모션 복잡도 산출은 도 6에 묘사된 것과 같이 수행된다.
도 6은는 다중 비트 레이트의 비디오 인코딩 시스템에 의해 모션 기반 해상도 결정을 하기 위한 프로세스 흐름도이다. 610에서, 평균 메디안 모션 벡터 값(가령, GOP 당 평균 메디안 모션 벡터 값으로 도 3과 관련해 위에서 논의된 바와 같이 산출됨)이 모션 재조정 문턱치 "N"(평균 메디안 모션 벡터 문턱치)와 비교된다. 일부 구현예들에서, 평균 메디안 모션 벡터 값과 문턱치는 정규화 값(가령, 0에서 1)이다. 예를 들어, 평균 메디안 모션 벡터 값은 비디오 해상도 및 모션 검색 범위에 기초해 선형적으로 정규화될 수 있다. 특정 구현예에서, 문턱치 N은 일련의 대표적 비디오 클립들을 검사하고, 작은(또는 중요하지 않은) 모션을 가진 클립들과 낮거나 높은 모션을 가진 클립들 사이를 구별하기 위해 문턱치를 선택함으로써 결정된다.
620에서, 평균 메디안 모션 벡터 값이 모션 문턱치보다 크면, 모션 재조정 스케일 값이 정해진다. 특정 구현예에서, 모션 재조정 스케일 값은 모션 재조정 스케일 매핑 함수를 이용해 결정된다. 전형적인 모션 재조정 스케일 맵(700)이 도 7에 묘사된다. 도 7에서, 스케일 맵(700)의 x 축은 정규화된(0에서 1까지) 평균 메디안 모션 벡터 값(비디오 해상도 및 모션 검색 범위에 기초해 선형적으로 정규화됨)을 나타내고, y 축은 모션 재조정 스케일 값(0에서 1로 정규화됨)을 나타낸다. 도 7에 묘사된 모션 재조정 스케일 매핑 함수는 두 부분(two-piece)의 선형 함수이다. 0인 정규화된 평균 메디안 모션 벡터 값부터 문턱치 N까지, 비디오 세그먼트 또는 GOP는 중요하지 않은 모션(또는 해상도 감소를 정당화할 만큼 충분하지 않은 모션)을 가진다고 간주된다. 문턱치 N부터 그 위(1.0 값까지)의 정규화된 평균 메디안 모션 벡터 값에 대해, 해상도의 재조정을 나타내는 모션 재조정 스케일 값이 적용된다. 예를 들어, 스케일 맵(700)을 이용할 때, 약 0.9의 평균 메디안 모션 벡터 값은 약 0.6의 모션 재조정 스케일 값을 가리킨다. 이산적 선형 모션 재조정 스케일 매핑 대신, 다른 함수들(가령, 보다 많은 세그먼트들을 가진 이산적 선형 함수, 비선형 함수, 또는 다른 유형의 비디오 콘텐츠를 위한 다른 함수들)이 사용될 수 있다.
특정 구현예에서, 스케일 맵은 다섯 개의 세그먼트를 가진 선형 함수이며, 여기서 최초의 세그먼트는 0의 정규화된 평균 메디안 모션 벡터 값에서 문턱치 N 까지의 모션 없는 세그먼트가 된다. 특정 구현예에서, 다섯 부분의 선형 함수가 일련의 대표적 비디오 클립들의 최적 재조정을 결정함으로써 얻어진다. 예를 들어, 그 클립들은 블로킹 효과 대 스무딩(smoothing)(또는 블러링(blurring))에 대해 서로 다른 해상도로 보여진다. 특정 구현예에서, 살짝 블러링된 픽처들이 블로킹 효과가 있는 픽처들보다 선호된다. 가변하는 모션 클립들에서 블록 효과가 적거나 아예 없는 최상의 해상도가 선택된다.
630에서, 텍스처 스케일 인자(상기 동작 515로부터 나옴)를 모션 재조정 스케일 값을 통해 조정함으로써 최종 재조정 스케일 값이 산출된다. 특정 구현예에서, 최종 재조정 스케일 값을 결정하기 위해 텍스처 스케일 인자가 모션 재조정 스케일 인자와 곱해진다. 예를 들어, 텍스처 스케일 인자는 0.8이고 모션 재조정 스케일 값은 0.6이면(가령, 정규화된 평균 메디안 MV 값이 0.9였던 모션 재조정 스케일 맵(700)으로부터 결정됨), 최종 재조정 스케일 값은 0.8 * 0.6 = 0.48(오리지널 해상도로서 약 1/2 픽셀 영역)이 될 것이다.
한편, 640에서 평균 메디안 MV 값이 모션 문턱치보다 크지 않다면, 모션 재조정 값이 적용되지 않으며, 텍스처 스케일 인자가 모션 복잡도의 보상 없이 적용된다.
다른 대안으로서, 최종 재조정 스케일 값은 다른 방식으로 산출될 수도 있다. 예를 들어 최종 재조정 스케일 값은 텍스처 스케일 인자 및 모션 재조정 스케일 값의 최소값을 취함으로써 산출될 수 있다.
일부 인코딩 상황에서, 해상도의 과스케일링을 방지하는 것이 바람직할 수 있다. 특정 구현예에서, 모션 복잡도 산출에 의해 수행되는 스케일랑 양을 제한하기 위해 바닥 값이 사용된다. 예를 들어 모션 재조정 스케일 값이 제한되거나, 재조정 픽셀 해상도가 제한될 수 있다. 바닥 값은 텍스처 스케일 인자 및/또는 모션 재조정 스케일 값에 독립적으로 적용될 수 있다. 또, 최소의 최종 재조정 해상도 역시 적용될 수 있다(가령, 수직 및/또는 수평으로 64 픽셀의 최소 재조정 해상도).
도 5로 돌아가면, MBR 엔진은 해상도를 일관되게(즉, 동일한 수평 및 수직 해상도 스케일링), 또는 일관되지 않게 재조정하기로 결정할 수 있다. 특정 구현예에서, GOP 평균 수평 및 수직 텍스처 측정치들이 사용되어 비디오 해상도를 각 방향으로 얼마나 많이 재조정할 것인지를 제어한다. MBR 엔진은 GOP 수평 및 수직 텍스처 측정치들의 비율을 산출한다. 해상도 재조정이 결정되고(동작 515 및 516), MBR 엔진이 최종 재조정 스케일 값을 산출했으면, MBR 엔진은 이제 GOP 수평 및 수직 텍스처 측정 비율에 기반하여 재조정 양을 수직 및 수평 방향으로 어떻게 분포시킬 것인가를 결정한다. 특히, 수평 및 수직 텍스처 측정치들 사이에 큰 모순이나 차이가 존재하면(즉, 비율이 1이 아니면), MBR 엔진은 보다 높은 디테일 방향에 적용되는 것 보다 더 많은 재조정을 보다 낮은 디테일 방향으로 적용하도록 재조정을 분포시킨다. 예를 들어, 비율이 2일 때, MBR 엔진은 수평 방향보다 수직 방향으로 두 배를 재조정할 것이다. 그와 달리, GOP에 대한 수평 및 수직 텍스처 측정치들 사이의 차이가 적으면(비율이 거의 1이면), MBR 엔진은 그 방향들 사이에서 해상도를 균등하게 재조정한다.
MBR 엔진은 동작 517에서 이제 양자화 스텝 사이즈 및 인코딩된 사이즈(GraphQpS) 사이의 관계 및 해상도와 인코딩된 사이즈(GraphRS) 사이의 관계 뿐 아니라 각자의 비디오 스트림의 타깃 비트 레이트를 이용하여 특정 타깃 비트 레이트에 대한 해상도 및 양자화 스텝 사이즈 사이의 관계(도 4의 좌측 상부에 보여진 GraphQpR)를 설정한다.
동작 518에서, MBR은 동작 516에서 결정된 모델링된 결과 해상도 R'에 대한 양자화 스텝 사이즈(Qp')의 모델링된 결과를 찾기 위해 동작 517에서 설정된 관계(GraphQpR)를 이용한다. MBR 엔진은 이제 모델링된 결과 양자화 스텝 사이즈 및 해상도(R', Qp')에서 이 비디오 스트림의 그 GOP를 인코딩하기로 결정한다.
특정 구현예에서, 최종 재조정 스케일 값은 하위 계층의 최종 재조정 스케일 값을 조정하는데 사용된다. 구체적으로, 최종 재조정 스케일 값이 최상위 계층(최상의 비트 레이트 스트림)에 대해 산출된다. 그런 다음, 다음으로 낮은 계층(다음으로 낮은 비트 레이트 스트림)에 대한 최종 재조정 스케일 값이 산출될 때, 그 값은 최상위 계층의 최종 재조정 스케일 값과 곱해지는 등 동작이 이어진다. 예를 들어, 최상위 계층 GOP 최종 재조정 스케일 값이 0.9이고 다음으로 낮은 계층 GOP 최종 재조정 스케일 값이 0.8이면, 다음으로 낮은 계층 GOP 최종 재조정 스케일 값은 0.9 * 0.8 = 0.72로 조정될 것이다. 다음으로 0.72 값은 다음으로 낮은 계층에 대한 곱셈자로서 사용될 것이고, 최하위 계층이 산출될 때까지 이런 식으로 게속 이어진다. 일부 구현예들에서, 텍스처 스케일 값은 각 계층마다 산출되지만, 모션 스케일 값은 모든 계층들에 대해 한 번만 산출되고 사용된다.
다른 대안으로서, 최종 재조정 스케일 값이 각 계층마다 독자적으로 산출될 수도 있다.
이러한 동적 해상도 접근법의 사용을 통해, MBR 엔진 시스템은 보다 많은 시각적 세부사항을 보유하는 덜 복잡한 비디오 및/또는 보다 느린 모션 세그먼트들에 더 큰 인코딩 해상도를 할당할 수 있다. 한편, 더 복잡하고/거나 더 빠른 모션 비디오 세그먼트들(또는 GOP들)에는 시각적 인공물(artifacts)을 줄이는 적은 해상도가 할당된다. 이러한 접근법은 다중 비트 레이트 스트리밍에 대해 보다 나은 시각적 경험을 제공한다고 알려져 있다.
V. 대표적 컴퓨팅 환경
도 9는 기술된 실시예, 기법, 및 기술들이 구현될 수 있는 알맞은 컴퓨팅 환경(900)의 일반화된 예를 도시한다. 기술이 다양한 범용 혹은 특수용 컴퓨팅 환경에서 구현될 수 있으므로, 이 컴퓨팅 환경(900)이 기술의 사용 범위나 기능에 관한 어떤 한계를 제시하는 것으로 의도된 것은 아니다. 예를 들어, 개시된 기술은 프로세싱 유닛, 메모리, 및 여기에 기술된 비디오 코딩 기술을 구현하는 컴퓨터 실행가능 명령들을 저장하는 저장부를 포함하는 컴퓨팅 장치(가령, 컴퓨터, 핸드헬드 장치, 모바일 장치, PDA 등)을 사용해 구현될 수 있다. 개시된 기술은 핸드헬드 장치, 멀티프로세서 시스템, 마이크로프로세서 기반 혹은 프로그래머블 가전기기, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터 등을 포함하는 다른 컴퓨터 시스템 구성들을 이용해 구현될 수도 있다. 개시된 기술은 또한, 작업들이 통신 네트워크를 통해 링크되는 원격 프로세싱 장치들에 의해 수행되는 분산형 컴퓨팅 환경 안에서 실시될 수 있다. 분산형 컴퓨팅 환경에서 프로그램 모듈들은 로컬 및/또는 원격 컴퓨터 저장 장치들 모두에서 위치될 수 있다.
도 9를 참조할 때, 컴퓨팅 환경(900)은 적어도 한 개의 중앙 프로세싱 유닛(910) 및 메모리(920)를 포함한다. 위에서 논의된 멀티 코어 모션 정보의 사전 산출을 위해 컴퓨터는 복수의 CPU 코어를 가진 멀티 코어 CPU를 포함한다. 도 9에서 이러한 가장 기본적인 구성(930)은 점선 안에 포함된다. 중앙 프로세싱 유닛(910)은 컴퓨터 실행가능 명령들을 실행하며 실제 혹은 가상의 프로세서일 수 있다. 멀티 프로세싱 시스템에서, 멀티 프로세싱 유닛들은 프로세싱 능력을 높이기 위해 컴퓨터 실행가능 명령들을 실행하고 그에 따라 다중 프로세서들이 동시에 실행될 수 있다. 메모리(920)는 휘발성 메모리(가령, 레지스터, 캐시, RAM), 비휘발성 메모리(가령, ROM, EEPROM, 플래시 메모리 등), 또는 그 둘의 어떤 조합일 수 있다. 메모리(920)는 예컨대 여기에 기술된 기술들을 구현할 수 있는 소프트웨어(980)를 저장한다. 컴퓨팅 환경은 추가적 특징을 가질 수 있다. 예를 들어, 컴퓨팅 환경(900)은 스토리지(940), 한 개 이상의 입력 장치들(950), 한 개 이상의 출력 장치들(960), 및 한 개 이상의 통신 연결부들(970)을 포함한다. 버스, 제어기, 또는 네트워크 같은 상호연결 메커니즘(미도시)이 컴퓨팅 환경(900)의 구성요소들을 상호 연결한다. 통상적으로, 운영체계 소프트웨어(미도시)가 컴퓨팅 환경(900)에서 실행되는 다른 소프트웨어의 운영 환경을 제공하고, 컴퓨팅 환경(900)의 구성요소들의 활동들을 조정한다.
스토리지(940)는 착탈형 또는 비착탈형일 수 있고, 정보를 저장하는데 사용될 수 있고 컴퓨팅 환경(900) 안에서 액세스될 수 있는 마그네틱 디스크, 마그네틱 테이프 또는 카세트, CD-ROM, CD-RW, DVD, 또는 어떤 다른 매체를 포함한다. 스토리지(940)는 여기에 기술된 기술들을 구현할 수 있는 소프트웨어(980)의 명령어들을 저장한다.
입력 장치(들)(950)는 키보드, 키패드, 마우스, 펜, 또는 트랙볼 같은 터치 입력 장치, 음성 입력 장치, 스캐닝 장치, 또는 컴퓨팅 환경(900)에 입력을 제공하는 다른 장치일 수 있다. 오디오에 있어서, 입력 장치(들)(950)은 아날로그나 디지털 형식의 오디오 입력을 수용하는 사운드 카드나 그와 유사한 장치이거나, 컴퓨팅 환경(900)에 오디오 샘플들을 제공하는 CD-ROM 판독기일 수 있다. 출력 장치(들)(960)은 디스플레이, 프린터, 스피커, CD-라이터, 또는 컴퓨팅 환경(900)으로부터 출력을 제공하는 다른 장치일 수 있다.
통신 접속부(들)(970)은 통신 매체(가령 접속 네트워크)를 통해 다른 컴퓨팅 개체와 통신을 가능하게 한다. 통신 매체는 컴퓨터 실행가능 명령어, 압축된 그래픽 정보, 또는 변조된 데이터 신호로 된 다른 데이터 같은 정보를 전달한다.
컴퓨터 판독가능 매체는 컴퓨팅 환경(900) 안에서 액세스될 수 있는 어떤 이용 가능한 매체이다. 한정하는 것이 아닌 예로서, 컴퓨팅 환경(900)에서 컴퓨터 판독가능 매체는 메모리(920) 및/또는 스토리지(940)를 포함한다. 당연히 이해할 수 있다시피, 컴퓨터 판독가능 저장 매체라는 용어는 메모리(920) 및 스토리지(940) 같이 데이터 저장을 위한 매체를 포함하며 변조된 데이터 신호 같은 전송 매체는 포함하지 않는다.
여기에 기술된 방법들 중 어느 하나는 그러한 방법을 수행(가령, 컴퓨팅 장치, 오디오 및/또는 비디오 프로세싱 장치, 또는 컴퓨터가 수행할 수 있게)하기 위한 컴퓨터 실행가능 명령어들을 포함하는(가령, 가지거나 저장하는) 한 개 이상의 컴퓨터 판독가능 매체(가령, 스토리지 또는 다른 유형 매체)를 통해 수행될 수 있다. 동작은 완전히 자동적이거나, 반자동적이거나, 수동적 개입을 수반할 수 있다.
상세한 설명 및 첨부된 도면에 우리의 쇄신사항에 대한 원리들이 기술되고 도시되었지만, 그러한 원리들에서 벗어나지 않고 여러 실시예들의 배열 및 세부사항에 있어 수정이 이뤄질 수 있다는 것을 알 수 있을 것이다. 여기에 기술된 프로그램, 프로세스 또는 방법들은 다르게 지시되지 않는 한 어떤 특정한 유형의 컴퓨팅 환경과도 관련되거나 국한되지 않는다는 것을 알아야 한다. 다양한 유형의 범용 또는 특수용 컴퓨팅 환경은 여기 기술된 가르침에 따른 동작들을 수행하거나 그 동작들과 함께 사용될 수 있다. 소프트웨어를 통해 보여진 실시예들의 구성요소들은 하드웨어를 통해 구현될 수 있고, 그 반대의 경우 역시 성립한다.
본 발명의 원리가 적용될 수 있는 많은 가능한 실시예들을 고려하여, 이하의 청구범위 및 그 균등물의 범위 및 개념 안에 들어올 수 있는 모든 실시예들을 본 발명으로서 청구한다.

Claims (20)

  1. 프로세싱 유닛 및 메모리를 포함하는 컴퓨팅 장치를 이용하여, 다중 비트 레이트 비디오 스트리밍을 위해서 세그먼트화된 압축 비디오 스트림을 모션 기반 동적 해상도 인코딩하도록 입력 비디오를 처리하는 방법에 있어서,
    상기 컴퓨팅 장치를 이용하여,
    입력 비디오 콘텐트를 하나 이상의 세그먼트들로 인코딩하는 단계로서, 각 세그먼트는 하나 이상의 픽처 그룹들(groups of pictures)을 포함하는 것인 상기 인코딩하는 단계
    를 포함하고,
    상기 인코딩하는 단계는,
    상기 하나 이상의 픽처 그룹들 중 한 픽처 그룹에 대해, 가변하는 해상도 및 양자화 스텝 사이즈에 대한 적어도 세 개의 인코딩 샘플들을 획득하는 단계;
    상기 적어도 세 개의 인코딩 샘플들에 기초하여, 상기 픽처 그룹에 대한 해상도, 양자화 스텝 사이즈 및 결과적인 인코딩된 사이즈를 관련시키는 모델을 설정하는 단계;
    상기 픽처 그룹들에 대한 평균 메디안(median) 모션 벡터 값을 계산하는 단계;
    적어도 부분적으로, 상기 평균 메디안 모션 벡터 값, 모션 문턱치, 및 상기 모델에 기반하여 비디오 해상도 및 양자화 스텝 사이즈를 결정하는 단계; 및
    상기 결정된 비디오 해상도 및 양자화 스텝 사이즈를 사용하여 상기 픽처 그룹을 인코딩하는 단계를 포함하고,
    상기 픽처 그룹들에 대한 평균 메디안 모션 벡터 값을 계산하는 단계는, 하나 이상의 메디안 모션 벡터 값들을 계산하는 단계를 포함하고, 상기 하나 이상의 메디안 모션 벡터 값들 각각은 상기 픽처 그룹들 내의 픽처들의 모션 벡터 크기(magnitude)들의 메디안이고, 상기 평균 메디안 모션 벡터 값은 상기 계산된 메디안 모션 벡터 값들의 평균인 것인,
    를 포함하는 것인 입력 비디오 처리 방법.
  2. 제1항에 있어서,
    상기 픽처 그룹 내 각각의 P 픽처에 대해, 상기 P 픽처의 모션 벡터들로부터 모션 벡터 크기들의 메디안 값을 계산하는 단계
    를 더 포함하고,
    상기 평균 메디안 모션 벡터 값은, 상기 픽처 그룹 내 P 픽처들 각각에 대한 상기 메디안 값들의 평균인 것인 입력 비디오 처리 방법.
  3. 제1항에 있어서,
    상기 비디오 해상도 및 양자화 스텝 사이즈를 결정하는 단계는,
    상기 평균 메디안 모션 벡터 값을 상기 모션 문턱치와 비교하는 단계;
    상기 평균 메디안 모션 벡터 값이 상기 모션 문턱치를 초과할 때, 상기 픽처 그룹의 해상도를 재조정(resizing)하기 위하여 모션 재조정 스케일 값을 결정하는 단계; 및
    상기 비디오 해상도 및 양자화 스텝 사이즈를 결정하는데 상기 모션 재조정 스케일 값을 이용하는 단계
    를 포함하는 것인 입력 비디오 처리 방법.
  4. 제3항에 있어서,
    상기 모션 재조정 스케일 값은, 구분적(piecewise) 선형 모션 재조정 스케일 매핑 함수를 이용하여 결정되는 것인 입력 비디오 처리 방법.
  5. 제1항에 있어서,
    상기 비디오 해상도 및 양자화 스텝 사이즈를 결정하는 단계는,
    상기 평균 메디안 모션 벡터 값을 상기 모션 문턱치와 비교하는 단계;
    상기 비교가, 상기 평균 메디안 모션 벡터 값이 상기 모션 문턱치보다 크다는 것을 나타내는 경우, 모션 복잡도에 기반하여 상기 픽처 그룹의 해상도를 감소시키도록 결정하는 단계; 및
    그렇지 않으면, 상기 모션 복잡도에 기반하여 상기 픽처 그룹의 해상도를 감소시키지 않도록 결정하는 단계
    를 포함하는 것인 입력 비디오 처리 방법.
  6. 제1항에 있어서,
    상기 비디오 해상도 및 양자화 스텝 사이즈를 결정하는 단계는 또한, 상기 픽처 그룹에 수행되는 텍스처 측정에 기반하는 것인 입력 비디오 처리 방법.
  7. 제1항에 있어서,
    상기 픽처 그룹에 텍스처 측정을 수행하는 단계;
    상기 텍스처 측정에 기반하여 해상도를 재조정하기 위한 양자화 문턱치를 결정하는 단계;
    상기 픽처 그룹에 대해 요망되는 비트 레이트에 대응하는 인코딩된 사이즈를 산출하는 양자화 스텝 사이즈를 결정하는 단계;
    상기 결정된 양자화 스텝 사이즈를 해상도 재조정을 위한 상기 양자화 문턱치와 비교하는 단계; 및
    상기 비교가 해상도 재조정을 나타내면, 상기 픽처 그룹에 대한 텍스처 스케일 인자를 계산하는 단계
    를 더 포함하고,
    상기 비디오 해상도 및 양자화 스텝 사이즈를 결정하는 단계는 또한, 상기 텍스처 스케일 인자에 기반하는 것인 입력 비디오 처리 방법.
  8. 제7항에 있어서,
    상기 평균 메디안 모션 벡터 값을 상기 모션 문턱치와 비교하는 단계; 및
    상기 평균 메디안 모션 벡터 값의 상기 모션 문턱치와의 비교에 기반하여, 모션 재조정 스케일 값을 결정하는 단계
    를 더 포함하고,
    상기 비디오 해상도를 결정하는 단계는, 상기 모션 재조정 스케일 값에 상기 텍스처 스케일 인자를 곱하는 단계를 포함하는 것인 입력 비디오 처리 방법.
  9. 프로세싱 유닛 및 메모리를 포함하는 컴퓨팅 장치를 이용하여, 다중 비트 레이트 비디오 스트리밍을 위해서 세그먼트화된 압축 비디오 스트림을 모션 기반 동적 해상도 인코딩하도록 입력 비디오를 처리하는 방법에 있어서,
    상기 컴퓨팅 장치를 이용하여,
    입력 비디오 콘텐트를 세그먼트들로 인코딩하는 단계로서, 각 세그먼트는, 최상 비디오 스트림에서 최하 비디오 스트림까지의 비디오 품질의 범위를 갖는 복수의 압축 비디오 스트림들로서 하나 이상의 픽처 그룹들을 포함하는 것인 상기 인코딩하는 단계
    를 포함하고,
    상기 인코딩하는 단계는,
    인코딩되는 비디오 스트림의 픽처 그룹에 대해, 가변하는 해상도 및 양자화 스텝 사이즈에 대하여 적어도 세 개의 인코딩 샘플들을 획득하는 단계;
    상기 적어도 세 개의 인코딩 샘플들에 기초하여, 상기 픽처 그룹에 대한 해상도, 양자화 스텝 사이즈 및 결과적인 인코딩된 사이즈를 관련시키는 모델을 설정하는 단계;
    상기 픽처 그룹에 텍스처 복잡도 측정을 수행하는 단계;
    상기 픽처 그룹에 모션 복잡도 측정을 수행하는 단계;
    적어도 부분적으로, 상기 텍스처 복잡도 측정에 기반하여 해상도를 재조정하기 위한 양자화 문턱치를 결정하는 단계;
    적어도 부분적으로, 상기 모델, 상기 재조정을 위한 양자화 문턱치, 상기 모션 복잡도 측정, 및 모션 재조정 문턱치에 기반하여, 상기 픽처 그룹을 인코딩하기 위하여 비디오 해상도 및 양자화 스텝 사이즈를 동적으로 결정하는 단계; 및
    상기 동적으로 결정된 비디오 해상도 및 양자화 스텝 사이즈를 사용하여 상기 픽처 그룹을 인코딩하는 단계
    를 포함하는 것인 입력 비디오 처리 방법.
  10. 제 9 항에 있어서,
    상기 입력 비디오 콘텐트에서 장면 변화(scene changes)를 검출하는 단계
    를 더 포함하고,
    상기 비디오 해상도를 동적으로 결정하는 단계는, 픽쳐 그룹들 간의 장면 변화 경계들에 동적 비디오 해상도 변경들을 적용하는 단계를 포함하는 것인 입력 비디오 처리 방법.
  11. 제9항에 있어서,
    상기 모델을 설정하는 단계는,
    상기 픽처 그룹의 상기 적어도 세 개의 인코딩 샘플들 중 적어도 두 개의 인코딩 샘플들에 기반하여 주어진 비디오 해상도에 대한 인코딩된 사이즈에 대한 양자화 스텝 사이즈의 관계를 위한 선형 모델을 설정하는 단계로서, 상기 인코딩된 사이즈는, 상기 주어진 비디오 해상도 및 가변하는 양자화 스텝 사이즈에서 샘플링되는 것인 입력 비디오 처리 방법.
  12. 제11항에 있어서,
    상기 픽처 그룹에 상기 모션 복잡도 측정을 수행하는 단계는, 픽쳐 그룹들에 대한 평균 메디안 모션 벡터 값을 계산하는 단계를 포함하고, 상기 픽처 그룹들에 대한 평균 메디안 모션 벡터 값을 계산하는 단계는, 하나 이상의 메디안 모션 벡터 값들을 계산하는 단계를 포함하고, 상기 하나 이상의 메디안 모션 벡터 값들 각각은 상기 픽처 그룹들 내의 픽처들의 모션 벡터 크기(magnitude)들의 메디안이고, 상기 평균 메디안 모션 벡터 값은 상기 계산된 메디안 모션 벡터 값들의 평균이고, 상기 비디오 해상도를 동적으로 결정하는 단계는,
    상기 주어진 비디오 해상도에 대한 인코딩된 사이즈에 양자화 스텝 사이즈를 관련시키는 상기 설정된 선형 모델에 따라 상기 주어진 비디오 해상도에서 인코딩할 때, 상기 픽처 그룹에 대해 요망되는 비트 레이트에 대응하는 인코딩된 사이즈를 산출하는 양자화 스텝 사이즈를 결정하는 단계;
    상기 결정된 양자화 스텝 사이즈를 해상도 재조정을 위한 상기 양자화 문턱치와 비교하는 단계;
    상기 비교가 해상도 재조정을 나타내지 않는 경우, 상기 주어진 비디오 해상도 및 결정된 양자화 스텝 사이즈를 사용하여 상기 픽처 그룹을 인코딩하도록 결정하는 단계; 및
    그렇지 않으면,
    상기 평균 메디안 모션 벡터 값이 상기 모션 재조정 문턱치보다 큰 경우, 텍스처 복잡도 스케일링 값 및 모션 복잡도 스케일링 값에 기반하여 상기 픽처 그룹을 인코딩하기 위한 상기 비디오 해상도를 재조정하도록 결정하는 단계; 및
    그렇지 않으면, 상기 텍스처 복잡도 스케일링 값에만 기반하여 상기 픽처 그룹을 인코딩하기 위한 상기 비디오 해상도를 재조정하도록 결정하는 단계
    를 포함하는 것인 입력 비디오 처리 방법.
  13. 제12항에 있어서,
    상기 모델을 설정하는 단계는,
    상기 픽처 그룹의 상기 적어도 세 개의 인코딩 샘플들 중 적어도 두 개의 인코딩 샘플들에 기반하여 주어진 양자화 스텝 사이즈에 대한 인코딩된 사이즈에 대한 비디오 해상도의 관계를 위한 선형 모델을 설정하는 단계를 더 포함하며, 상기 인코딩된 사이즈는, 상기 양자화 스텝 사이즈 및 가변하는 비디오 해상도에서 샘플링되는 것인 입력 비디오 처리 방법.
  14. 제13항에 있어서,
    상기 비디오 해상도를 동적으로 결정하는 단계는,
    상기 픽처 그룹을 인코딩하기 위한 상기 비디오 해상도가 재조정되어야 하는 경우, 상기 주어진 양자화 스텝 사이즈에 대한 인코딩된 사이즈에 비디오 해상도를 관련시키는 상기 설정된 선형 모델에 따라, 상기 픽처 그룹에 대해 요망되는 비트 레이트에 대응하는 인코딩된 사이즈를 산출하는 재조정된 비디오 해상도를 결정하는 단계
    를 더 포함하는 것인 입력 비디오 처리 방법.
  15. 제14항에 있어서,
    상기 픽처 그룹을 인코딩하기 위한 상기 비디오 해상도가 재조정되어야 하는 경우, 상기 양자화 스텝 사이즈를 동적으로 결정하는 단계는,
    상기 적어도 세 개의 인코딩 샘플들에 기반하여 상기 픽처 그룹에 대해 요망되는 비트 레이트에서 양자화 스텝 사이즈를 해상도에 관련시키는 선형 모델을 설정하는 단계; 및
    양자화 스텝 사이즈를 해상도에 관련시키는 상기 선형 모델에 따라, 상기 재조정된 비디오 해상도에 대한 상기 양자화 스텝 사이즈를 결정하는 단계
    를 포함하는 것인 입력 비디오 처리 방법.
  16. 제9항에 있어서,
    상기 픽처 그룹에 상기 모션 복잡도 측정을 수행하는 단계는,
    상기 픽처 그룹 내 각각의 P 픽처에 대해, 상기 P 픽처의 모션 벡터들로부터 모션 벡터 크기들의 메디안 값을 계산하는 단계; 및
    상기 픽처 그룹 내 P 픽처들 각각에 대해 상기 메디안 값들을 평균화함으로써 평균 메디안 모션 벡터 값을 계산하는 단계
    를 포함하는 것인 입력 비디오 처리 방법.
  17. 다중 비트 레이트 비디오 스트리밍을 위한 세그먼트화된 압축 비디오 스트림들의 모션 기반 동적 해상도 인코딩을 위한 비디오 프로세싱 시스템에 있어서,
    인코딩되는 미가공(raw) 비디오 콘텐트를 저장하기 위한 메모리; 및
    가변 비트 레이트 및 모션 기반 동적 해상도 접근법을 이용하여 상기 미가공 비디오 콘텐트를, 복수의 압축 비디오 스트림들로서 픽처 그룹들을 포함하는 세그먼트들로 인코딩하기 위한 컴퓨터 프로세싱 수단
    을 포함하고,
    상기 컴퓨터 프로세싱 수단에 의한 상기 인코딩은,
    하나 이상의 픽처 그룹들 중 한 픽처 그룹에 대해, 가변 해상도 및 양자화 스텝 사이즈에 대한 적어도 세 개의 인코딩 샘플들을 획득하는 단계;
    상기 적어도 세 개의 인코딩 샘플들에 기초하여, 상기 픽처 그룹에 대한 해상도, 양자화 스텝 사이즈 및 결과적인 인코딩된 사이즈를 관련시키는 모델을 설정하는 단계;
    상기 픽처 그룹들의 평균 메디안 모션 벡터 값을 계산하는 단계;
    적어도 부분적으로, 상기 평균 메디안 모션 벡터 값, 모션 문턱치, 및 상기 모델에 기반하여 비디오 해상도 및 양자화 스텝 사이즈를 결정하는 단계; 및
    상기 결정된 비디오 해상도 및 양자화 스텝 사이즈를 사용하여 상기 픽처 그룹을 인코딩하는 단계를 포함하고,
    상기 픽처 그룹들에 대한 평균 메디안 모션 벡터 값을 계산하는 단계는, 하나 이상의 메디안 모션 벡터 값들을 계산하는 단계를 포함하고, 상기 하나 이상의 메디안 모션 벡터 값들 각각은 상기 픽처 그룹들 내의 픽처들의 모션 벡터 크기(magnitude)들의 메디안이고, 상기 평균 메디안 모션 벡터 값은 상기 계산된 메디안 모션 벡터 값들의 평균인 것인, 비디오 프로세싱 시스템.
  18. 제17항에 있어서,
    상기 픽처 그룹 내 각각의 P 픽처에 대해, 상기 P 픽처의 모션 벡터들로부터 모션 벡터 크기들의 메디안 값을 계산하는 단계
    를 더 포함하고,
    상기 평균 메디안 모션 벡터 값은 상기 픽처 그룹 내 상기 P 픽처들 각각에 대한 상기 메디안 값들의 평균인 것인 비디오 프로세싱 시스템.
  19. 제17항에 있어서,
    상기 비디오 해상도 및 양자화 스텝 사이즈를 결정하는 단계는,
    상기 평균 메디안 모션 벡터 값을 상기 모션 문턱치와 비교하는 단계;
    상기 평균 메디안 모션 벡터 값이 상기 모션 문턱치를 초과할 때, 상기 픽처 그룹의 해상도 재조정을 위하여 모션 재조정 스케일 값을 결정하는 단계; 및
    상기 비디오 해상도 및 양자화 스텝 사이즈를 결정하는데 상기 모션 재조정 스케일 값을 이용하는 단계
    를 포함하는 것인 비디오 프로세싱 시스템.
  20. 제17항에 있어서,
    상기 비디오 해상도 및 양자화 스텝 사이즈를 결정하는 단계는,
    상기 평균 메디안 모션 벡터 값을 상기 모션 문턱치와 비교하는 단계;
    상기 비교가, 상기 평균 메디안 모션 벡터 값이 상기 모션 문턱치보다 크다는 것을 나타내는 경우, 모션 복잡도에 기반하여 상기 픽처 그룹의 해상도를 감소시키도록 결정하는 단계; 및
    그렇지 않은 경우, 상기 모션 복잡도에 기반하여 상기 픽처 그룹의 해상도를 감소시키지 않도록 결정하는 단계
    를 포함하는 것인 비디오 프로세싱 시스템.
KR1020117029696A 2009-06-12 2010-06-09 모션 기반 동적 해상도 다중 비트 레이트 비디오 인코딩 KR101744654B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/483,577 2009-06-12
US12/483,577 US8270473B2 (en) 2009-06-12 2009-06-12 Motion based dynamic resolution multiple bit rate video encoding
PCT/US2010/037889 WO2010144521A2 (en) 2009-06-12 2010-06-09 Motion based dynamic resolution multiple bit rate video encoding

Publications (2)

Publication Number Publication Date
KR20120036309A KR20120036309A (ko) 2012-04-17
KR101744654B1 true KR101744654B1 (ko) 2017-06-09

Family

ID=43306431

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117029696A KR101744654B1 (ko) 2009-06-12 2010-06-09 모션 기반 동적 해상도 다중 비트 레이트 비디오 인코딩

Country Status (6)

Country Link
US (1) US8270473B2 (ko)
EP (1) EP2441265B1 (ko)
JP (1) JP5643300B2 (ko)
KR (1) KR101744654B1 (ko)
CN (1) CN102461169B (ko)
WO (1) WO2010144521A2 (ko)

Families Citing this family (102)

* 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
US7515710B2 (en) 2006-03-14 2009-04-07 Divx, Inc. Federated digital rights management scheme including trusted systems
CN101861583B (zh) 2007-11-16 2014-06-04 索尼克Ip股份有限公司 用于多媒体文件的分级及简化索引结构
US8997161B2 (en) 2008-01-02 2015-03-31 Sonic Ip, Inc. Application enhancement tracks
CA2749170C (en) 2009-01-07 2016-06-21 Divx, Inc. Singular, collective and automated creation of a media guide for online content
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
WO2010111261A1 (en) * 2009-03-23 2010-09-30 Azuki Systems, Inc. Method and system for efficient streaming video dynamic rate adaptation
WO2011068668A1 (en) 2009-12-04 2011-06-09 Divx, Llc Elementary bitstream cryptographic material transport systems and methods
US8705616B2 (en) 2010-06-11 2014-04-22 Microsoft Corporation Parallel multiple bitrate video encoding to reduce latency and dependences between groups of pictures
US20120069895A1 (en) * 2010-09-17 2012-03-22 David Frederique Blum High Quality Video Encoder
US8997160B2 (en) * 2010-12-06 2015-03-31 Netflix, Inc. Variable bit video streams for adaptive streaming
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
WO2012103326A2 (en) * 2011-01-28 2012-08-02 Eye IO, LLC Adaptive bit rate control based on scenes
AU2012211249B2 (en) 2011-01-28 2016-10-20 Eye IO, LLC Encoding of video stream based on scene type
US9665646B1 (en) * 2011-04-13 2017-05-30 Flash Networks, Ltd Method and system for providing bit rate adaptaion to video files having metadata
US9578354B2 (en) * 2011-04-18 2017-02-21 Verizon Patent And Licensing Inc. Decoupled slicing and encoding of media content
GB2492329B (en) 2011-06-24 2018-02-28 Skype Video coding
GB2492330B (en) 2011-06-24 2017-10-18 Skype Rate-Distortion Optimization with Encoding Mode Selection
GB2492163B (en) 2011-06-24 2018-05-02 Skype Video coding
US9319453B2 (en) * 2011-07-15 2016-04-19 Shmuel Ur User-controlled download duration time
GB2493777A (en) 2011-08-19 2013-02-20 Skype Image encoding mode selection based on error propagation distortion map
US9467708B2 (en) 2011-08-30 2016-10-11 Sonic Ip, Inc. Selection of resolutions for seamless resolution switching of multimedia content
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
WO2013033458A2 (en) 2011-08-30 2013-03-07 Divx, Llc Systems and methods for encoding and streaming video encoded using a plurality of maximum bitrate levels
US9578336B2 (en) 2011-08-31 2017-02-21 Texas Instruments Incorporated Hybrid video and graphics system with automatic content detection process, and other circuits, processes, and systems
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
GB2495469B (en) 2011-09-02 2017-12-13 Skype Video coding
GB2495468B (en) 2011-09-02 2017-12-13 Skype Video coding
GB2495467B (en) * 2011-09-02 2017-12-13 Skype Video coding
WO2013037069A1 (en) * 2011-09-15 2013-03-21 Libre Communications Inc. Method, apparatus and computer program product for video compression
US9591318B2 (en) 2011-09-16 2017-03-07 Microsoft Technology Licensing, Llc Multi-layer encoding and decoding
US10085023B2 (en) * 2011-10-05 2018-09-25 Texas Instruments Incorporated Systems and methods for quantization of video content
US8885702B2 (en) 2011-10-17 2014-11-11 Google Inc. Rate-distortion-complexity optimization of video encoding guided by video description length
US8934538B2 (en) * 2011-10-17 2015-01-13 Google Inc. Rate-distortion-complexity optimization of video encoding
JP5988577B2 (ja) * 2011-12-28 2016-09-07 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム
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
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
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
US9294531B2 (en) * 2012-07-12 2016-03-22 Futurewei Technologies, Inc. Signaling and processing content with variable bitrates for adaptive streaming
WO2014015110A1 (en) 2012-07-18 2014-01-23 Verimatrix, Inc. Systems and methods for rapid content switching to provide a linear tv experience using streaming content distribution
JP2015530807A (ja) * 2012-08-27 2015-10-15 トムソン ライセンシングThomson Licensing ビデオ品質評価のためにコンテンツ複雑性を推定する方法および装置
US9560392B2 (en) 2012-09-07 2017-01-31 Google Inc. Dynamic bit rate encoding
US8997254B2 (en) 2012-09-28 2015-03-31 Sonic Ip, Inc. Systems and methods for fast startup streaming of encrypted multimedia content
US8914836B2 (en) 2012-09-28 2014-12-16 Sonic Ip, Inc. Systems, methods, and computer program products for load adaptive streaming
US9967302B2 (en) * 2012-11-14 2018-05-08 Samsung Electronics Co., Ltd. Method and system for complexity adaptive streaming
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
CN103914805A (zh) * 2013-01-04 2014-07-09 贝伦企业股份有限公司 指纹图像降阶处理装置及方法
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
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
US10397292B2 (en) 2013-03-15 2019-08-27 Divx, Llc Systems, methods, and media for delivery of content
US10110647B2 (en) * 2013-03-28 2018-10-23 Qualcomm Incorporated Method and apparatus for altering bandwidth consumption
US9344517B2 (en) 2013-03-28 2016-05-17 Sonic Ip, Inc. Downloading and adaptive streaming of multimedia content to a device with cache assist
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
KR102085270B1 (ko) * 2013-08-12 2020-03-05 삼성전자 주식회사 가장 작은 왜곡 값을 갖는 해상도를 선택하는 이미지 처리 방법과 상기 방법을 수행하는 장치들
EP3860130A1 (en) * 2013-08-16 2021-08-04 bitmovin GmbH Apparatus and method for constant quality optimization for adaptive streaming
EP3043560A4 (en) * 2013-09-06 2017-03-01 Mitsubishi Electric Corporation Video encoding device, video transcoding device, video encoding method, video transcoding method and video stream transmission system
CN104519239A (zh) * 2013-09-29 2015-04-15 诺基亚公司 用于视频防抖的方法和装置
GB201318658D0 (en) 2013-10-22 2013-12-04 Microsoft Corp Controlling resolution of encoded video
US9609338B2 (en) 2013-10-25 2017-03-28 Microsoft Technology Licensing, Llc Layered video encoding and decoding
US9343112B2 (en) 2013-10-31 2016-05-17 Sonic Ip, Inc. Systems and methods for supplementing content from a server
US20150172680A1 (en) * 2013-12-16 2015-06-18 Arris Enterprises, Inc. Producing an Output Need Parameter for an Encoder
US20150189222A1 (en) * 2013-12-30 2015-07-02 Google Inc. Content-adaptive chunking for distributed transcoding
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
US10313675B1 (en) 2015-01-30 2019-06-04 Google Llc Adaptive multi-pass video encoder control
US10271112B2 (en) * 2015-03-26 2019-04-23 Carnegie Mellon University System and method for dynamic adaptive video streaming using model predictive control
KR102391680B1 (ko) * 2015-06-15 2022-04-28 엘지전자 주식회사 프레임 간 변화량을 이용한 가변 해상도 처리 장치 및 그 제어 방법
US10332534B2 (en) 2016-01-07 2019-06-25 Microsoft Technology Licensing, Llc Encoding an audio stream
US10356406B2 (en) * 2016-01-19 2019-07-16 Google Llc Real-time video encoder rate control using dynamic resolution switching
US10334224B2 (en) * 2016-02-19 2019-06-25 Alcacruz Inc. Systems and method for GPU based virtual reality video streaming server
US10075292B2 (en) 2016-03-30 2018-09-11 Divx, Llc Systems and methods for quick start-up of playback
CN105959700B (zh) * 2016-05-31 2020-04-14 腾讯科技(深圳)有限公司 视频图像编码的方法、装置、存储介质和终端设备
US10148989B2 (en) 2016-06-15 2018-12-04 Divx, Llc Systems and methods for encoding video content
US20180063549A1 (en) * 2016-08-24 2018-03-01 Ati Technologies Ulc System and method for dynamically changing resolution based on content
JP7279939B2 (ja) 2016-09-21 2023-05-23 カカドゥ アール アンド ディー ピーティーワイ リミテッド ビデオ及びマルチビュー・イマジェリーの圧縮及びアップサンプリングのためのベース固定モデル及び推論
US10362241B2 (en) 2016-12-30 2019-07-23 Microsoft Technology Licensing, Llc Video stream delimiter for combined frame
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
US10601946B2 (en) * 2017-02-23 2020-03-24 The Directv Group, Inc. Edge cache segment prefetching
WO2018216929A1 (en) 2017-05-25 2018-11-29 Samsung Electronics Co., Ltd. Methods and systems for saving data while streaming video
CN109151470B (zh) 2017-06-28 2021-03-16 腾讯科技(深圳)有限公司 编码分辨率控制方法及终端
KR102383117B1 (ko) * 2017-07-21 2022-04-06 삼성전자주식회사 디스플레이 장치, 디스플레이 방법 및 디스플레이 시스템
CN108391127B (zh) 2018-04-27 2021-08-10 腾讯科技(深圳)有限公司 视频编码方法、装置、存储介质及设备
CN110166781B (zh) * 2018-06-22 2022-09-13 腾讯科技(深圳)有限公司 一种视频编码方法、装置、可读介质和电子设备
US10863179B1 (en) * 2018-09-05 2020-12-08 Amazon Technologies, Inc. Overlapped rate control for high-quality segmented video encoding
KR102411644B1 (ko) * 2018-11-26 2022-06-22 구글 엘엘씨 안전 및 크로스 디바이스에 일관된 비디오 압축
CN110139113B (zh) * 2019-04-30 2021-05-14 腾讯科技(深圳)有限公司 视频资源的传输参数分发方法及装置
CN110636312B (zh) * 2019-09-27 2023-10-24 腾讯科技(深圳)有限公司 视频编解码方法和装置及存储介质
CN110677721B (zh) * 2019-09-27 2022-09-13 腾讯科技(深圳)有限公司 视频编解码方法和装置及存储介质
CN110572654B (zh) * 2019-09-27 2024-03-15 腾讯科技(深圳)有限公司 视频编码、解码方法和装置、存储介质及电子装置
CN110677653B (zh) 2019-09-27 2024-01-09 腾讯科技(深圳)有限公司 视频编解码方法和装置及存储介质
CN111263243B (zh) * 2020-02-17 2022-03-22 网易(杭州)网络有限公司 视频编码方法、装置、计算机可读介质及电子设备
US11445200B2 (en) * 2020-05-12 2022-09-13 Alibaba Group Holding Limited Method and system for processing video content
US11803237B2 (en) 2020-11-14 2023-10-31 Facense Ltd. Controlling an eye tracking camera according to eye movement velocity

Family Cites Families (135)

* 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 画像符号化装置及び画像復号装置
WO1993018618A1 (en) * 1992-03-03 1993-09-16 Kabushiki Kaisha Toshiba Time-varying image encoder
US5436665A (en) * 1992-03-03 1995-07-25 Kabushiki Kaisha Toshiba Motion picture coding apparatus
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.
JPH0795566A (ja) * 1993-09-21 1995-04-07 Nippon Telegr & Teleph Corp <Ntt> 画像符号化方法および装置
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
JPH08102940A (ja) * 1994-09-29 1996-04-16 Sanyo Electric Co Ltd 動画像処理装置及び方法
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
JPH0998427A (ja) * 1995-09-29 1997-04-08 Toshiba Corp 動画像符号化装置
US5796855A (en) * 1995-10-05 1998-08-18 Microsoft Corporation Polygon block matching 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
JP3317327B2 (ja) * 1996-02-07 2002-08-26 日本電信電話株式会社 動画像符号化方法および装置
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 通信システム
EP0923243B1 (en) * 1997-07-25 2010-09-15 Sony Corporation Editing device, editing method, splicing device, splicing method, encoding device, and encoding method
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
JPH11234668A (ja) * 1998-02-13 1999-08-27 Sony Corp 映像符号化装置
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
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
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 株式会社日立製作所 画像情報変換装置およびビットストリーム変換機ならびに画像情報変換送信方法
CA2491522C (en) * 2002-07-01 2014-12-09 E G Technology Inc. Efficient compression and transport of video over a network
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
AU2003290536A1 (en) * 2002-10-23 2004-05-13 Divxnetworks, Inc. 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 삼성전자주식회사 비디오 스트리밍 서비스를 위한 비디오 코딩방법, 프리디코딩방법, 비디오 디코딩방법, 및 이를 위한 장치와, 이미지 필터링방법
WO2005086709A2 (en) 2004-03-05 2005-09-22 Vanu, Inc. Controlling jitter effects
US20050232497A1 (en) 2004-04-15 2005-10-20 Microsoft Corporation High-fidelity transcoding
EP1762098A1 (en) * 2004-05-12 2007-03-14 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
BRPI0606627A2 (pt) * 2005-01-19 2009-07-07 Thomson Licensing método e aparelho para codificação paralela em tempo real
US7694075B1 (en) * 2005-03-09 2010-04-06 Globalfoundries Inc. System for enabling and disabling cache and a method thereof
WO2006099082A2 (en) * 2005-03-10 2006-09-21 Qualcomm Incorporated Content adaptive multimedia processing
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
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
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
WO2010126613A2 (en) * 2009-05-01 2010-11-04 Thomson Licensing Inter-layer dependency information for 3dv
US9762898B2 (en) * 2010-02-01 2017-09-12 Kelly Y Kishore Method and system for parallelizing video compression

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
E. C. Reed, et al. Optimal multidimensional bit-rate control for video communication. IEEE Trans. on Image Procssing. Aug. 2002, Vol.11, No.8, pp.873-885

Also Published As

Publication number Publication date
CN102461169B (zh) 2014-10-01
CN102461169A (zh) 2012-05-16
WO2010144521A2 (en) 2010-12-16
JP2012529865A (ja) 2012-11-22
US20100316126A1 (en) 2010-12-16
WO2010144521A3 (en) 2011-03-03
EP2441265A4 (en) 2012-07-04
KR20120036309A (ko) 2012-04-17
US8270473B2 (en) 2012-09-18
EP2441265B1 (en) 2013-07-24
JP5643300B2 (ja) 2014-12-17
EP2441265A2 (en) 2012-04-18

Similar Documents

Publication Publication Date Title
KR101744654B1 (ko) 모션 기반 동적 해상도 다중 비트 레이트 비디오 인코딩
KR101643790B1 (ko) 적응적 비디오 스트리밍용의 가변 비트 레이트 및 동적 해상도를 이용한 다중 비트 레이트 비디오 인코딩
KR101644208B1 (ko) 이전에 계산된 모션 정보를 이용하는 비디오 인코딩
US9071841B2 (en) Video transcoding with dynamically modifiable spatial resolution
CN108769693B (zh) 质量感知视频优化中的宏块级自适应量化
JP2010541386A (ja) ビデオ圧縮技法及びビデオ伝達技法
US20150163484A1 (en) Variable bitrate encoding for multiple video streams
RU2587412C2 (ru) Управление скоростью передачи видео на основе гистограммы коэффициентов преобразования
KR102525584B1 (ko) 공간 계층 레이트 할당
JP4273385B2 (ja) 符号化装置および符号化方法、プログラム、並びに記録媒体
Overmeire et al. Constant quality video coding using video content analysis

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
GRNT Written decision to grant