KR101651027B1 - 콘텐츠 적응적 고정밀 매크로블록 레이트 제어 - Google Patents

콘텐츠 적응적 고정밀 매크로블록 레이트 제어 Download PDF

Info

Publication number
KR101651027B1
KR101651027B1 KR1020147017519A KR20147017519A KR101651027B1 KR 101651027 B1 KR101651027 B1 KR 101651027B1 KR 1020147017519 A KR1020147017519 A KR 1020147017519A KR 20147017519 A KR20147017519 A KR 20147017519A KR 101651027 B1 KR101651027 B1 KR 101651027B1
Authority
KR
South Korea
Prior art keywords
macroblock
macroblock bit
bitstream
budgets
bit
Prior art date
Application number
KR1020147017519A
Other languages
English (en)
Other versions
KR20140109902A (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 KR20140109902A publication Critical patent/KR20140109902A/ko
Application granted granted Critical
Publication of KR101651027B1 publication Critical patent/KR101651027B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • 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/115Selection of the code volume for a coding unit prior to coding
    • 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/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/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/167Position within a video image, e.g. region of interest [ROI]
    • 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/18Methods 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 set of transform coefficients
    • 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/184Methods 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 bits, e.g. of the compressed video stream
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

방법들 및 시스템들은, 매크로블록 비트 버짓들의 세트를 비디오 신호와 연관된 비트스트림에 대해 할당하기 위한 하드웨어 로직을 갖는 장치를 포함할 수도 있다. 그 하드웨어 로직은 또한, 단일 패스 인코드 구성에 있어서의 매크로블록 비트 버짓들의 세트에 기초하여 비트스트림의 프레임 사이즈를 제어할 수 있다. 일 예에 있어서, 하드웨어 로직은 매크로블록 비트 버짓들의 세트에 따라 비트스트림의 하나 이상의 양자화 파라미터들을 조정한다.

Description

콘텐츠 적응적 고정밀 매크로블록 레이트 제어{CONTENT ADAPTIVE HIGH PRECISION MACROBLOCK RATE CONTROL}
종래의 레이트 제어 알고리즘들은, 비디오 비트스트림의 프레임 및/또는 화상 레벨에서 양자화 파라미터(QP) 조정들을 수행하기 위해 하드웨어 로직을 사용함으로써 타켓팅된 비디오 비트 레이트들을 달성하도록 설계될 수도 있다. 장면 변화 또는 콘텐츠 스위치가 존재할 경우, 장면 변화와 연관된 콘텐츠 복잡도 시프트들로 인해, 압축된 비디오 비트 레이트에 있어서의 급등(surge) 또는 강하가 조우될 수 있다. 일 접근법은 제2 인코딩 패스에서 비디오 프레임을 재-인코딩하기 위해 새로운 QP를 사용하는 것일 수도 있지만, 그러한 솔루션은, 비디오 컨퍼런싱과 같은 실시간 어플리케이션들에 대해 수용불가능할 수도 있는 지연을 생성할 수 있다.
본 발명의 실시예들의 다양한 이점들은 다음의 명세서 및 첨부된 청구항들을 판독함으로써 그리고 다음의 도면을 참조함으로써 당업자에게 명백하게 될 것이다.
도 1은 일 실시예에 따른 비디오 신호들을 인코딩하는 방법의 일 예의 플로우차트이다.
도 2는 일 실시예에 따른 매크로블록 비트 버짓들의 세트의 일 예의 플롯이다.
도 3은 일 실시예에 따른 매크로블록 비트 버짓들의 세트를 구현하기 위한 영역들을 사용하는 방법의 일 예의 플로우차트이다.
도 4는 일 실시예에 따른 컴퓨팅 플랫폼의 일 예의 블록 다이어그램이다.
도 5는 일 실시예에 따른 네비게이션 제어기를 갖는 시스템의 일 예의 블록 다이어그램이다.
도 6은 일 실시예에 따른 소형 폼팩터를 갖는 시스템의 일 예의 블록 다이어그램이다.
실시예들은, 매크로블록 비트 버짓들의 세트가 비디오 신호와 연관된 비트스트림에 대해 할당되는 컴퓨터 구현 방법을 포함할 수도 있다. 그 방법은 또한, 단일 패스 인코드 구성에 있어서의 매크로블록 비트 버짓들의 세트에 기초하여 비트스트림의 프레임 사이즈를 제어하는 것을 제공할 수 있다.
실시예들은 또한, 매크로블록 비트 버짓들의 세트를 비디오 신호와 연관된 비트스트림에 대해 할당하기 위한 하드웨어 로직을 갖는 장치를 포함할 수도 있다. 그 하드웨어 로직은 또한, 단일 패스 인코드 구성에 있어서의 매크로블록 비트 버짓들의 세트에 기초하여 비트스트림의 프레임 사이즈를 제어할 수 있다.
부가적으로, 실시예들은, 매크로블록 비트 버짓들의 세트를 비디오 신호와 연관된 비트스트림에 대해 할당하기 위한 하드웨어 로직을 갖는 그래픽스 프로세서를 가지는 시스템을 포함할 수도 있다. 그 하드웨어 로직은 또한, 단일 패스 인코드 구성에 있어서의 매크로블록 비트 버짓들의 세트에 기초하여 비트스트림의 프레임 사이즈를 제어할 수도 있다. 일 예에 있어서, 그 시스템은 또한 그래픽스 프로세서에 커플링된 하드 드라이브를 포함한다.
다른 실시형태들은, 매크로블록 복잡도가 매크로블록 픽셀 분산, 총 고주파수 크기, 잔여 에러, 및 이전에 코딩된 비트수 중 적어도 하나에 기초하여 비디오 신호와 연관된 비트스트림에 대해 결정되는 컴퓨터 구현 방법을 포함할 수도 있다. 그 방법은 또한 정적 위치, 비트스트림의 콘텐츠, 및 외부의 동적 입력 중 적어도 하나에 기초하여 비트스트림에 대한 중요도 영역을 결정하는 것을 제공할 수 있다. 매크로블록 비트 버짓들의 세트는 매크로블록 복잡도 및 중요도 영역에 기초하여 비트스트림에 대해 할당될 수도 있다. 그 방법은 매크로블록 사이즈 추정치를 생성하여 비트스트림에 대한 러닝 비트 합(running bit sum)을 결정하는 것을 포함할 수도 있으며, 여기서, 러닝 비트 합과 매크로블록 비트 버짓들의 세트 간의 비교가 수행될 수 있다. 부가적으로, 그 방법은 그 비교에 기초하여 업데이트 폴리시를 선택하는 것, 및 단일 패스 인코드 구성에 있어서의 선택된 업데이트 폴리시에 기초하여 비트스트림의 프레임 사이즈를 제어하는 것을 제공할 수도 있다.
이제, 도 1로 돌아가면, 비디오 신호들을 인코딩(예를 들어, 압축)하는 방법(10)이 도시된다. 방법(10)은, 예를 들어, 주문형 집적회로(ASIC), 상보형 금속 산화물 반도체(CMOS) 또는 트랜지스터-트랜지스터 로직(TTL) 기술, 또는 이들의 임의의 조합과 같은 회로 기술을 사용하여 매우 다양한 컴퓨팅 시스템들의 고정된 기능 하드웨어로 구현될 수도 있다. 도시된 프로세싱 블록(12)은 매크로블록 비트 버짓들의 세트를 비디오 신호와 연관된 비트스트림에 대해 할당하는 것을 제공한다. 더 상세히 논의될 바와 같이, 매크로블록 비트 버짓들의 세트는 단일 패스 인코드 구성에 있어서 매크로블록 복잡도 정보, 중요도 영역 정보 등등에 기초하여 할당될 수 있다. 더욱이, 매크로블록 비트 버짓들의 세트는, 매크로블록 레벨에서 인코딩된 비트스트림의 프레임 사이즈를 추적 및 제어하는데 사용될 수 있는 하나 이상의 버짓들을 포함할 수도 있다. 특히, 블록(14)에서, 비트스트림의 프레임 사이즈가 단일 패스 인코드 구성에 있어서의 매크로블록 비트 버짓들의 세트에 기초하여 제어될 수도 있다.
도 2는, 비디오 비트 스트림에 대응하는 러닝 비트 합(18)에 대한 매크로블록 비트 버짓들의 세트(16)(16a-16e)를 구현하는 것에 대한 일 접근법을 도시한다. 러닝 비트 합(18)은 비디오 컨퍼런싱 콘텐츠와 같은 실시간 콘텐츠를 포함하는 비디오 신호에 대한 인코딩/압축된 비트들의 누산 수치를 나타낼 수도 있다. 도시된 예에 있어서, 비트 버짓들(16)은 매크로블록들의 프로세싱된 수가 증가함에 따라 증가하며, 여기서, 타겟 매크로블록 비트 버짓(16a)은 시간에 걸쳐 버짓되는 인코딩된 비트들의 타겟 수를 나타낸다. 부가적으로, 최대 매크로블록 비트 버짓(16b)은 시간에 걸쳐 버짓되는 인코딩된 비트들의 최대수를 나타낼 수도 있으며, 최소 매크로블록 비트 버짓(16c)은 시간에 걸쳐 버짓되는 인코딩된 비트들의 최소수를 나타낼 수도 있다. 도시된 예에 있어서, 매크로블록 비트 버짓들의 세트(16)는 또한, 타겟 매크로블록 비트 버짓(16a)과 최대 매크로블록 비트 버짓(16b) 간의 상위 평균(16d)뿐만 아니라 타겟 매크로블록 비트 버짓(16a)과 최소 매크로블록 비트 버짓(16c) 간의 하위 평균(16e)을 포함한다. 다른 매크로블록 비트 버짓들이 환경들에 의존하여 사용될 수도 있다.
더 상세히 논의될 바와 같이, 매크로블록 비트 버짓들의 세트(16)는, 비트스트림에 대한 업데이트 폴리시를 선택하는데 사용될 수 있는 하나 이상의 영역들(20, 22, 24)을 정의할 수도 있다. 선택된 업데이트 폴리시는, 예를 들어, 하나 이상의 양자화 파라미터(QP) 조정들, 이산 코사인 변환(DCT) 계수 조정들 등을 포함할 수도 있다. 일반적으로, DCT 계수들은 비디오 신호가 주파수 도메인에서 모니터링, 분석 및 제어될 수 있게 할 수도 있으며, 여기서, 비디오 인코딩 시스템의 QP는 DCT 계수들을 스텝들의 유한 세트와 연관시키는 스텝 사이즈를 확립할 수 있다. 따라서, QP의 큰 값들은, 공간 변환을 대략적으로 근사화하여 대부분의 신호가 단지 몇몇 계수들에 의해 캡처될 수 있는 상대적으로 큰 스텝들을 나타낼 수도 있다. 한편, QP의 작은 값들은 더 많은 비트들을 소모하지만 공간 주파수 스펙트럼을 더 정확하게 근사화할 수 있다.
도시된 예에 있어서, 영역들(20)은 타겟 매크로블록 비트 버짓(16a)에 가장 가까이에 위치되고, 영역들(24)은 타겟 매크로블록 비트 버짓(16a)으로부터 가장 멀리 떨어져 위치되며, 영역들(22)은 각각의 영역들(20 및 24) 사이에 배치된다. 따라서, 러닝 비트 합(18)이 영역들(20)로부터 영역들(22)로 천이하면, 업데이트 폴리시는 매크로블록 단위로 프레임 사이즈의 성장을 억제하기 위해 선택된다. 예를 들어, 그러한 천이에 대한 응답은 QP를 일부 소량만큼 간단히 증가하는 것일 수도 있다.
유사하게, 러닝 비트 합(18)이 영역들(22)로부터 영역들(24)로 천이하면, 훨씬 더 적극적인 업데이트 폴리시가 선택될 수 있다(예를 들어, "패닉" 모드). 예를 들어, 그러한 천이에 대한 응답은 QP를 최대값으로 설정하는 것 또는 제로 주파수(예를 들어, DC)항들을 제외한 모든 변환 계수들을 제로-아웃하는 것일 수도 있다. 주파수 계수들을 클램핑하는 것(예를 들어, 긴 코드들을 회피하기 위해 고주파수 계수들을 특정 범위 내로 제한하는 것) 및 (예를 들어, 고정된 수의 비-제로/AC 계수들이 충족된 이후) 고주파수 계수들을 제로-아웃하는 것과 같은 다른 데이터 감소 기술들이 사용될 수도 있다. 실제로, 극단적인 경우, 모든 주파수(예를 들어, AC) 계수들이 제로-아웃되어 오직 DC 계수들만이 남겨질 수도 있다. 그러한 접근법은 매크로블록을, 비트스트림을 인코딩하기 위해 상대적으로 적은 수의 비트들을 요구하는 플랫 평균값으로 대체할 수도 있다.
한편, 러닝 비트 합(18)이 영역들(24)로부터 영역들(22)을 통해 영역들(20)로 천이함에 따라, 더 많은 비트들을 허용하는 업데이트 폴리시들이 점진적으로 선택되고 비트스트림에 적용될 수도 있다. 따라서, 그러한 천이들에 응답하여, 전술한 데이터 감소 기술들이 중단될 수 있고/있거나 QP가 감소될 수도 있다.
동작 이론 개관
일 예에 있어서, 비트 패킹 모듈은 패킹된 각각의 매크로블록에 대한 사이즈(예를 들어, 바이트) 추정치를 생성할 수도 있다. 부가적으로, 사용자는 매크로블록 당 타겟 및 최대 사이즈를 명시할 수 있으며, 여기서, 이들 신호들(예를 들어, 실제, 타겟, 최대)의 러닝 합은, QP 조정들이 필요할 경우를 식별하는데 사용되는 "커브들"을 생성할 수도 있다(도 2 참조). 3개 이상의 커브들이, 타겟 및 최대 신호들로부터 양자화 레이트 제어 모듈에 의해 대칭적으로 생성될 수도 있다(예를 들어, upper_midpt, lower_midpt, sum_min). 타겟 및 최대 신호들의 값들은 사용자에 의해 명시될 수 있으며, 이들 커브들의 형상을 지시할 수도 있다.
예를 들어, sum_actual과 sum_target 간의 차이(예를 들어, "bytediff")는 타겟 사이즈와 실제 사이즈 간의 에러의 마진을 식별할 수도 있다. 현재의 bytediff와 이전에 계산된 bytediff 간의 차이는 시간에 걸친 이러한 마진에서의 변화 레이트를 나타낼 수 있으며, 여기서, 이 레이트의 부호는, 정정이 적절한 방향으로(예를 들어, bytediff = 0을 향해) 추이를 나타내고 있는지를 식별하는데 사용될 수도 있다.
QPmod
각각의 매크로블록은 요청된 QP(매크로블록들에 걸쳐 변하거나 일정하게 남겨질 수 있음)를 가질 수도 있다. 변경 파라미터(예를 들어, "QPmod")가 요청된 QP에 부가될 수 있으며, 여기서 QPmod는, 타겟이 언더(under)-예측되었을 경우에는 포지티브이고 타겟이 오버(over)-예측될 경우에는 네거티브일 것이다. 더욱이, QPmod는, 내부 카운터들(예를 들어, "오버" 및 "언더")이 트립핑 포인트들(예를 들어, "증대(grow)" 및 "감소(shrink)")에 도달될 경우에 증분 또는 감분될 수도 있다. 프로세싱된 각각의 MB에 대해 그리고 값 sum_actual이 어느 영역에 떨어지는지에 기초하여, 다양한 양의 포인트들이 어느 하나의 카운터에 부가될 수도 있다. 오버 카운터가 증대 포인트를 초과하면 QPmod가 증분될 수 있지만, 언더 카운터가 감소 포인트를 초과하면 QPmod는 감분될 수도 있다.
동일 방향에서의 반복된 변화들의 효과를 둔화시키기 위해, 그 방향에 대한 저항의 증가 및 상보적 방향에 대한 저항의 감소가 구현될 수도 있다(예를 들어, "증대_저항" 및 "감소_저항"). 이러한 저항은 증대 포인트 또는 감소 포인트에 부가될 수 있으며, 이는 그후 그 방향에서의 다음 정정을 트립핑하기 위해 더 많은 포인트들을 요구한다.
부가적으로, 사용자는, QPmod가 변경될 수 있는 양을 제한하는 가드-밴드들을 명시할 수 있다. 예를 들어, QPmod는 "QPmax_pos_mod"와 "-QPmax_neg_mod_abs" 사이로 제약될 수 있다.
트리거링
일 예에 있어서, 레이트 제어 모듈은, 트리거링될 경우에만 QPmod를 변경하기 시작한다. 따라서, 트리거링의 3개 레벨들이 존재할 수도 있다: 즉, "올웨이즈(always)", "젠틀(gentle)" 및 "루스(loose)". 올웨이즈 레벨은, 파라미터 "sum_actual"가 영역들(20)에 도달하면 RC가 활성화할 것임을 의미할 수 있다. 젠틀 레벨은, sum_actual이 영역들(22)에 도달하면 레이트 제어를 트리거링할 수도 있다. 부가적으로, 루스 레벨은, sum_actual이 영역들(24)에 도달할 경우에 레이트 제어를 트리거링하길 대기할 수 있다.
레이트 제어 모듈은, sum_actual이 일련의 매크로블록들에 걸쳐 sum_target을 추적하기 시작할 때 비활성화할 수도 있다(예를 들어, 트리거링 = 거짓(false)). 구체적으로, bytediff에 대한 변화 레이트의 부호가 매크로블록들의 윈도우에 걸쳐 모니터링될 수 있다. 그 윈도우에 걸친 이들 부호들의 합이 허용오차값 내일 경우(예를 들어, '안정적'으로 지칭됨), 트리거링은 거짓으로 리셋될 수도 있다.
패닉
인에이블될 경우, 패닉 모드는, sum_actual이 영역들(24)에 도달할 때마다 발생할 수 있고, sum_actual이 영역들(20)에 도달할 때까지 그렇게 남겨질 수도 있다. 패닉할 경우, 모든 매크로블록들은, 51과 같은 값으로 클램핑되는 QP = MB(n).QP + QPmax_pos_mod로 양자화될 수 있다.
사용자 제어들
상당한 양의 유연성이 사용자로 하여금 다양한 핵심 파라미터들을 정의하게 함으로써 달성될 수 있다. 예를 들어, 매크로블록 단위 레벨에서, 타겟 및 최대 값들이 명시될 수도 있으며, sum_actual이 비교될 커브들의 다양한 형상들을 생성할 수 있다.
더욱이, 슬라이스 마다, 사용자는 트리거를 디스에이블하는데 요구된 허용오차 및 트리거링 감도를 명시할 수 있다. 부가적으로, 사용자는 패닉 검출을 인에이블할 수 있다.
영역들(20, 22, 24) 각각에 할당된 포인트 값들은, 다른 것들 중에서, 오버 및 언더 예측들에 대한 비대칭 제어를 허용하기 위해 사용자에게 노출될 수도 있다. 부가적으로, 사용자는, 정정이 야기될 때에 적용되는 저항 값들을 따라 증대 포인트 및 감소 포인트의 초기 값들을 명시할 수 있다. QPmod에 대한 최대 및 최소값들이 또한 사용자에게 노출될 수도 있다.
이제, 도 3으로 돌아가면, 매크로블록 비트 버짓들의 세트를 구현하기 위한 영역들을 사용하는 방법(26)이 도시된다. 방법(26)은, 예를 들어, ASIC, CMOS 또는 TTL 기술, 또는 이들의 임의의 조합과 같은 회로 기술을 사용하여 매우 다양한 컴퓨팅 시스템들의 고정된 기능 하드웨어로 구현될 수도 있다. 도시된 프로세싱 블록(28)은 현재의 매크로블록을 인코딩하는데 요구된 비트들의 수를 추정하는 것을 제공하며, 여기서, 그 추정은 매크로블록의 복잡도, 매크로블록이 중요도 영역의 부분인지 여부 등을 고려할 수도 있다. 예를 들어, 매크로블록 복잡도 결정은 픽셀 분산(pixel variance), (예를 들어, DCT 계수들 중에서의) 총 고주파수 크기, 잔여 에러, 이전에 코딩된 비트수 등에 기초할 수도 있다. 잔여 에러가 예를 들어 SAD(절대 차의 합) 또는 MSE(평균 제곱 에러)를 사용하여 미리정의되면, 통계치들에 기초하여, 상관 함수가 다음과 같이 생성될 수도 있다.
k번째 MB에 대해,
Figure 112014059562118-pct00001
더욱이, 중요도 영역 결정은 정적 위치(예를 들어, 디스플레이의 중심), 비트스트림의 콘텐츠(예를 들어, 사람 얼굴들, 이동 물체들 등), 외부의 동적 입력들(예를 들어, 실시간 시선 추적 디바이스들에 의해 제공된 데이터) 등에 기초할 수 있다. 이와 관련하여, 매크로블록 중요도의 가중 함수가 0과 1 사이의 분수 가중치로서 할당될 수 있다.
k번째 MB에 대해,
Figure 112014059562118-pct00002
이미 언급된 바와 같이, 블록(30)에서, 매크로블록 비트 버짓들의 현재 세트가 버짓들의 이전의 합들에 부가될 수도 있다. 따라서, 이미 논의된 바와 같이 매크로블록 비트 버짓들의 세트를 획득하기 위해, 블록(30)에서, 현재의 매크로블록에 대한 타겟 비트 버짓이 이전의 타겟 비트 버짓들의 합에 부가될 수도 있고, 현재의 매크로블록에 대한 최대 비트 버짓이 이전의 최대 비트 버짓들의 합에 부가될 수도 있는 등등이다. 도시된 블록(32)은 총 추정된 프레임 사이즈(예를 들어, 러닝 비트 합)를 획득하기 위해, 현재의 매크로블록을 인코딩하는데 요구되는 추정된 수의 비트들을 총 실제 프레임 사이즈에 부가하는 것을 제공한다. 동일 과정이 최대, 최소 및 다른 비트 버짓들에 대해 반복될 수도 있다. 그 후, 블록(34)에서, 총 추정된 프레임 사이즈가 매크로블록 비트 버짓들의 세트와 비교될 수도 있으며, 여기서, 그 비교는 이미 논의된 영역들(20, 22, 24)(도 2)과 같은 버짓 영역의 식별을 가능케 할 수 있다.
블록(36)에서, 현재의 영역이 이전 영역과 상이하다고 판정되면, 블록(38)은 블록(40)에서 카운터를 증가시키기 전에 카운터를 리셋할 수도 있다. 현재의 영역이 이전 영역과 동일하면, 블록(40)에서의 카운터 증가는, 카운터를 리셋하지 않고도 수행될 수 있다. 이와 관련하여, 카운터는 QP 및/또는 DCT 계수 조정들이 너무 이르게 되는 것을 방지하는데 사용될 수도 있다. 따라서, 블록(42)에서 카운터가 미리정의된 임계치를 초과하였다고 판정된 경우에만, 도시된 방법(26)은 블록들(44)에서 영역 특정 QP 업데이트들을 수행한다. 그러한 히스테리시스 기능은 시스템 성능을 현저히 개선시킬 수도 있다. 매크로블록 비트스트림은 블록(46)에서 패킹될 수도 있으며, 여기서, 패킹된 비트스트림은 실제 프레임 사이즈를 결정하는데 사용될 수도 있다.
이제, 도 4로 돌아가면, 플랫폼(56)이 도시되고, 여기서, 플랫폼(56)은 랩탑, 모바일 인터넷 디바이스(MID), 개인용 디지털 보조기(PDA), 미디어 플레이어, 이미징 디바이스 등과 같은 모바일 플랫폼, 스마트폰, 스마트 태블릿 등과 같은 임의의 스마트 디바이스, 또는 이들의 임의의 조합일 수도 있다. 플랫폼(56)은 또한, 개인용 컴퓨터(PC), 서버, 워크스테이션, 스마트 TV 등과 같은 고정된 플랫폼일 수도 있다. 도시된 플랫폼(56)은 시스템 메모리(60)로의 액세스를 제공하는 집적된 메모리 제어기(iMC)(62)를 갖는 중앙 프로세싱 유닛(CPU, 예를 들어, 메인 프로세서)(58)을 포함하고, 시스템 메모리(60)는, 예를 들어, 더블 데이터 레이트(DDR) 동기식 동적 RAM(SDRAM, 예를 들어, 2008년 4월, DDR3 SDRAM JEDEC 표준 JESD79-3C) 모듈들을 포함할 수 있다. 시스템 메모리(60)의 모듈들은, 예를 들어, 싱글 인라인 메모리 모듈(SIMM), 듀얼 인라인 메모리 모듈(DIMM), 소형 아웃라인 DIMM(SODIMM) 등에 통합될 수도 있다. CPU(58)는 또한 하나 이상의 드라이버들(64) 및/또는 프로세서 코어들(도시 안됨)을 가질 수도 있으며, 여기서, 각각의 코어는 페치 유닛들, 명령 디코더들, 레벨 1(L1) 캐시, 실행 유닛들 등으로 완전히 기능적일 수도 있다. CPU(58)는, 플랫폼(56)에서의 컴포넌트들 각각을 상호접속시키는 프론트 사이드 버스 또는 포인트-투-포인트 패브릭을 통해, 노스브리지로서 또한 공지된 iMC(62)의 오프칩 변이물과 선택적으로 통신할 수 있다. CPU(58)는 또한 마이크로소프트 윈도우즈, 리눅스, 또는 맥(매킨토시) OS와 같은 오퍼레이팅 시스템(OS)(66)을 실행할 수도 있다.
도시된 CPU(58)는 허브 버스를 통해, 사우스브리지로서 또한 공지된 플랫폼 제어기 허브(PCH)(68)와 통신한다. iMC(62)/CPU(58) 및 PCH(68)는 종종 칩셋으로 지칭된다. CPU(58)는 또한 PCH(68)를 통과하여 네트워크 포트(도시 안됨)를 통해 네트워크(도시 안됨)에 동작가능하게 접속될 수도 있다. 디스플레이(70)(예를 들어, 터치 스크린, LCD, LED 디스플레이)는 또한, 사용자로 하여금 플랫폼(56)으로부터의 이미지들 및/또는 비디오를 시청하게 하기 위해 PCH(68)와 통신할 수 있다. 도시된 PCH(58)는 또한 저장부에 커플링되며, 이 저장부는 하드 드라이브(76), ROM, 광학 디스크, 플래시 메모리(도시 안됨) 등을 포함할 수도 있다.
도시된 플랫폼(56)은 또한, 전용 그래픽스 메모리(80)에 커플링된 전용 그래픽스 프로세싱 유닛(GPU)(78)을 포함한다. 전용 그래픽스 메모리(80)는, 예를 들어, GDDR (그래픽스 DDR) 또는 DDR SDRAM 모듈, 또는 그래픽스 렌더링을 지원하기에 적절한 임의의 다른 메모리 기술을 포함할 수 있다. GPU(78) 및 그래픽스 메모리(80)는 그래픽스/비디오 카드 상에 인스톨될 수도 있으며, 여기서, GPU(78)는 PCI 익스프레스 그래픽스(PEG, 예를 들어, 주변기기 컴포넌트들 상호접속/PCI 익스프레스 x16 그래픽스 150W-ATX 규격 1.0, PCI 특별 관심 그룹) 버스, 또는 가속화된 그래픽스 포트(예를 들어, 2002년 9월, AGP V3.0 인터페이스 규격) 버스와 같은 그래픽스 버스를 통해 CPU(58)와 통신할 수 있다. 그래픽스 카드는 시스템 마더보드 상에, 그 마더보드 상의 별도의 카드로서 구성된 메인 CPU(58) 다이 안으로 등에 통합될 수도 있다. GPU(78)는 또한 하나 이상의 드라이버들(82)을 실행할 수도 있고, 명령들 및 다른 데이터를 저장하기 위한 내부 캐시(84)를 포함할 수도 있다.
도시된 GPU(78)는 매크로블록 비트 버짓들의 세트를 비디오 신호와 연관된 비트스트림에 대해 할당하고, 단일 패스 인코드 구성에 있어서의 매크로블록 비트 버짓들의 세트에 기초하여 비트스트림의 프레임 사이즈를 제어하도록 구성된 하드웨어 로직(86)을 포함한다. 일 예에 있어서, 하드웨어 로직(86)은 매크로블록 비트 버짓들의 세트에 따라 비트스트림의 더 많은 양자화 파라미터들 중 하나를 조정한다.
도 5는 시스템(700)의 일 실시예를 도시한 것이다. 실시예들에 있어서, 시스템(700)은 미디어 시스템일 수도 있지만, 시스템(700)은 이러한 맥락으로 한정되지 않는다. 예를 들어, 시스템(700)은 개인용 컴퓨터(PC), 랩탑 컴퓨터, 울트라-랩탑 컴퓨터, 태블릿, 터치 패드, 휴대용 컴퓨터, 핸드헬드 컴퓨터, 팜탑 컴퓨터, 개인용 디지털 보조기(PDA), 셀룰러 전화기, 결합 셀룰러 전화기/PDA, 텔레비전, 스마트 디바이스(예를 들어, 스마트폰, 스마트 태블릿 또는 스마트 텔레비전), 모바일 인터넷 디바이스(MID), 메시징 디바이스, 데이터 통신 디바이스 등에 통합될 수도 있다.
실시예들에 있어서, 시스템(700)은 디스플레이(720)에 커플링된 플랫폼(702)을 포함한다. 플랫폼(702)은 콘텐츠 서비스 디바이스(들)(730) 또는 콘텐츠 전달 디바이스(들)(740) 또는 다른 유사한 콘텐츠 소스들과 같은 콘텐츠 디바이스로부터 콘텐츠를 수신할 수도 있다. 하나 이상의 네비게이션 피처들을 포함하는 네비게이션 제어기(750)는, 예를 들어, 플랫폼(702) 및/또는 디스플레이(720)와 인터페이싱하는데 사용될 수도 있다. 이들 컴포넌트들 각각은 하기에 더 상세히 설명된다.
실시예들에 있어서, 플랫폼(702)은 칩셋(705), 프로세서(710), 메모리(712), 저장부(714), 그래픽스 서브시스템(715), 어플리케이션들(716) 및/또는 라디오(718)의 임의의 조합을 포함할 수도 있다. 칩셋(705)은 프로세서(710), 메모리(712), 저장부(714), 그래픽스 서브시스템(715), 어플리케이션들(716) 및/또는 라디오(718) 간의 상호통신을 제공할 수도 있다. 예를 들어, 칩셋(705)은, 저장부(714)와의 상호통신을 제공하는 것이 가능한 저장 어댑터(도시 안됨)를 포함할 수도 있다.
프로세서(710)는 복합 명령 세트 컴퓨터(CISC) 또는 축소 명령 세트 컴퓨터(RISC) 프로세서들, x86 명령 세트 양립가능 프로세서들, 멀티-코어, 또는 임의의 다른 마이크로프로세서 또는 중앙 프로세싱 유닛(CPU)으로서 구현될 수도 있다. 실시예들에 있어서, 프로세서(710)는 듀얼-코어 프로세서(들), 듀얼-코어 모바일 프로세서(들) 등을 포함할 수도 있다.
메모리(712)는 랜덤 액세스 메모리 (RAM), 동적 랜덤 액세스 메모리(DRAM), 또는 정적 RAM(SRAM)과 같지만 이에 한정되지 않는 휘발성 메모리 디바이스로서 구현될 수도 있다.
저장부(714)는 자기 디스크 드라이브, 광학 디스크 드라이브, 테이프 드라이브, 내부 저장 디바이스, 부착형 저장 디바이스, 플래시 메모리, 배터리 백업형 SDRAM(동기식 DRAM), 및/또는 네트워크 액세스가능 저장 디바이스와 같지만 이에 한정되지 않는 비-휘발성 저장 디바이스로서 구현될 수도 있다. 실시예들에 있어서, 저장부(714)는, 예를 들어, 다중의 하드 드라이브들이 포함될 경우 귀중한 디지털 미디어에 대한 저장 성능 개선된 보호를 증가시키기 위한 기술을 포함할 수도 있다.
그래픽스 서브시스템(715)은 디스플레이를 위한 스틸 또는 비디오와 같은 이미지들의 프로세싱을 수행할 수도 있다. 그래픽스 서브시스템(715)은, 예를 들어, 그래픽스 프로세싱 유닛(GPU) 또는 비주얼 프로세싱 유닛(VPU)일 수도 있다. 아날로그 또는 디지털 인터페이스는 그래픽스 서브시스템(715)과 디스플레이(720)를 통신가능하게 커플링시키도록 사용될 수도 있다. 예를 들어, 인터페이스는 고선명 멀티미디어 인터페이스, 디스플레이포트, 무선 HDMI, 및/또는 무선 HD 컴플라이언트 기술들 중 임의의 기술일 수도 있다. 그래픽스 서브시스템(715)은 프로세서(710) 또는 칩셋(705)에 통합될 수 있다. 그래픽스 서브시스템(715)은, 칩셋(705)에 통신가능하게 커플링된 자립형 카드일 수 있다.
본 명세서에서 설명된 그래픽스 및/또는 비디오 프로세싱 기술들은 다양한 하드웨어 아키텍처들로 구현될 수도 있다. 예를 들어, 그래픽스 및/또는 비디오 기능이 칩셋 내에 통합될 수도 있다. 대안적으로, 별도의 그래픽스 및/또는 비디오 프로세서가 사용될 수도 있다. 또 다른 실시예로서, 그래픽스 및/또는 비디오 기능들은, 멀티-코어 프로세서를 포함한 범용 프로세서에 의해 구현될 수도 있다. 추가 실시예에 있어서, 그 기능들은 소비자 전자 디바이스로 구현될 수도 있다.
라디오(718)는, 다양한 적절한 무선 통신 기술들을 사용하여 신호들을 송신 및 수신하는 것이 가능한 하나 이상의 라디오들을 포함할 수도 있다. 그러한 기술들은 하나 이상의 무선 네트워크들을 통한 통신과 관련될 수도 있다. 예시적인 무선 네트워크들은 무선 로컬 영역 네트워크들(WLANs), 무선 개인 영역 네트워크들(WPANs), 무선 대도심 영역 네트워크들(WMANs), 셀룰러 네트워크들, 및 위성 네트워크들을 포함한다(하지만 이에 한정되지 않음). 그러한 네트워크들을 통한 통신에 있어서, 라디오(718)는 임의의 버전에 있어서의 하나 이상의 적용가능 표준들에 따라 동작할 수도 있다.
실시예들에 있어서, 디스플레이(720)는 임의의 텔레비전 타입 모니터 또는 디스플레이를 포함할 수도 있다. 디스플레이(720)는, 예를 들어, 컴퓨터 디스플레이 스크린, 터치 스크린 디스플레이, 비디오 모니터, 텔레비전형 디바이스, 및/또는 텔레비전을 포함할 수도 있다. 디스플레이(720)는 디지털 및/또는 아날로그일 수도 있다. 실시예들에 있어서, 디스플레이(720)는 홀로그래픽 디스플레이일 수도 있다. 또한, 디스플레이(720)는, 비주얼 프로젝션을 수신할 수도 있는 투명 표면일 수도 있다. 그러한 프로젝션들은 다양한 형태들의 정보, 이미지들, 및/또는 오브젝트들을 전달할 수도 있다. 예를 들어, 그러한 프로젝션들은 모바일 증강 현실(MAR) 어플리케이션에 대한 비주얼 오버레이일 수도 있다. 하나 이상의 소프트웨어 어플리케이션들(716)의 제어 하에서, 플랫폼(702)은 사용자 인터페이스(722)를 디스플레이(720) 상에 디스플레이할 수도 있다.
실시예들에 있어서, 콘텐츠 서비스 디바이스(들)(730)는 임의의 국가적, 국제적 및/또는 독립적 서비스에 의해 호스팅될 수도 있고, 따라서, 예를 들어, 인터넷을 통해 플랫폼(702)에 액세스가능할 수도 있다. 콘텐츠 서비스 디바이스(들)(730)는 플랫폼(702) 및/또는 디스플레이(720)에 커플링될 수도 있다. 플랫폼(702) 및/또는 콘텐츠 서비스 디바이스(들)(730)는, 미디어 정보를 네트워크(760)로 및 네트워크(760)로부터 통신(예를 들어, 전송 및/또는 수신)하기 위해 네트워크(760)에 커플링될 수도 있다. 콘텐츠 전달 디바이스(들)(740)가 또한 플랫폼(702) 및/또는 디스플레이(720)에 커플링될 수도 있다.
실시예들에 있어서, 콘텐츠 서비스 디바이스(들)(730)는 디지털 정보 및/또는 콘텐츠를 전달하는 것이 가능한 케이블 텔레비전 박스, 개인용 컴퓨터, 네트워크, 전화기, 인터넷 인에이블드 디바이스들 또는 어플라이언스, 및 네트워크(760)를 통해 또는 직접, 콘텐츠 제공자들과 플랫폼(702) 및/디스플레이(720) 사이에서 콘텐츠를 단방향으로 또는 양방향으로 통신하는 것이 가능한 임의의 다른 유사한 디바이스를 포함할 수도 있다. 콘텐츠는 네트워크(760)를 통해, 시스템(700) 내 컴포넌트들 중 임의의 하나 및 콘텐츠 제공자로 및 그로부터 단방향으로 및/또는 양방향으로 통신될 수도 있음이 인식될 것이다. 콘텐츠의 예들은, 예를 들어, 비디오, 음악, 의료 및 게이밍 정보 등을 포함한 임의의 미디어 정보를 포함할 수도 있다.
콘텐츠 서비스 디바이스(들)(730)는 미디어 정보, 디지털 정보, 및/또는 다른 콘텐츠를 포함하여 케이블 텔레비전 프로그래밍과 같은 콘텐츠를 수신한다. 콘텐츠 제공자들의 예들은 임의의 케이블 또는 위성 텔레비전 또는 라디오 또는 인터넷 콘텐츠 제공자들을 포함할 수도 있다. 제공된 예들은 본 발명의 실시예들을 한정하도록 의도되지 않는다.
실시예들에 있어서, 플랫폼(702)은 하나 이상의 네비게이션 피처들을 갖는 네비게이션 제어기(750)로부터 제어 신호들을 수신할 수도 있다. 제어기(750)의 네비게이션 피처들은, 예를 들어, 사용자 인터페이스(722)와 상호작용하는데 사용될 수도 있다. 실시예들에 있어서, 네비게이션 제어기(750)는, 사용자로 하여금 공간(예를 들어, 연속 및 다차원) 데이터를 컴퓨터에 입력하게 하는 컴퓨터 하드웨어 컴포넌트(구체적으로, 휴먼 인터페이스 디바이스)일 수도 있는 포인팅 디바이스일 수도 있다. 그래픽 사용자 인터페이스들(GUI), 및 텔레비전들 그리고 모니터들과 같은 다수의 시스템들은 사용자로 하여금 물리적 제스처들을 사용하여 컴퓨터 또는 텔레비전에 대한 데이터를 제어 및 제공하게 한다.
제어기(750)의 네비게이션 피처들의 움직임들은 디스플레이 상에 디스플레이되는 포인터, 커서, 포커스 링, 또는 다른 비주얼 표시자들의 움직임에 의해 디스플레이(예를 들어, 디스플레이(720)) 상에서 에코될 수도 있다. 예를 들어, 소프트웨어 어플리케이션들(716)의 제어 하에서, 네비게이션 제어기(750) 상에 위치된 네비게이션 피처들은, 예를 들어, 사용자 인터페이스(722) 상에 디스플레이되는 가상 네비게이션 피처들에 매핑될 수도 있다. 실시예들에 있어서, 제어기(750)는 별도의 컴포넌트가 아니라 플랫폼(702) 및/또는 디스플레이(720)에 통합될 수도 있다. 하지만, 실시예들은 본 명세서에서 도시되거나 설명된 엘리먼트들 또는 맥락으로 한정되지 않는다.
실시예들에 있어서, 드라이버들(도시 안됨)은 사용자들로 하여금, 예를 들어, 인에이블될 경우 초기 부팅-업 이후 버튼의 터치로 텔레비전과 같은 플랫폼(702)을 즉시 턴온 및 턴오프할 수 있게 하는 기술을 포함할 수도 있다. 프로그램 로직은 플랫폼(702)으로 하여금 그 플랫폼이 턴 "오프"된 경우 미디어 어댑터들 또는 다른 콘텐츠 서비스 디바이스(들)(730) 또는 콘텐츠 전달 디바이스(들)(740)로 콘텐츠를 스트리밍하게 할 수도 있다. 부가적으로, 칩셋(705)은, 예를 들어, 5.1 서라운드 사운드 오디오 및/또는 고선명 7.1 서라운드 사운드 오디오를 위한 하드웨어 및/또는 소프트웨어 서포트를 포함할 수도 있다. 드라이버들은 통합된 그래픽스 플랫폼들을 위한 그래픽스 드라이버를 포함할 수도 있다. 실시예들에 있어서, 그래픽스 드라이버는 주변기기 컴포넌트 상호접속(PCI) 익스프레스 그래픽스 카드를 포함할 수도 있다.
다양한 실시예들에 있어서, 시스템(700)에 도시된 컴포넌트들 중 임의의 하나 이상의 컴포넌트들은 통합될 수도 있다. 예를 들어, 플랫폼(702)과 콘텐츠 서비스 디바이스(들)(730)가 통합될 수도 있거나, 또는 플랫폼(702)과 콘텐츠 전달 디바이스(들)(740)가 통합될 수도 있거나, 또는, 예를 들어, 플랫폼(702), 콘텐츠 서비스 디바이스(들)(730), 및 콘텐츠 전달 디바이스(들)(740)가 통합될 수도 있다. 다양한 실시예들에 있어서, 플랫폼(702)과 디스플레이(720)가 통합된 유닛일 수도 있다. 디스플레이(720)와 콘텐츠 서비스 디바이스(들)(730)가 통합될 수도 있거나, 또는, 예를 들어, 디스플레이(720)와 콘텐츠 전달 디바이스(들)(740)가 통합될 수도 있다. 이들 예들은 본 발명을 한정하도록 의도되지 않는다.
다양한 실시예들에 있어서, 시스템(700)은 무선 시스템, 유선 시스템, 또는 이들 양자의 조합으로서 구현될 수도 있다. 무선 시스템으로서 구현될 경우, 시스템(700)은 하나 이상의 안테나들, 송신기들, 수신기들, 트랜시버들, 증폭기들, 필터들, 제어 로직 등과 같이, 무선 공유 매체를 통해 통신하는데 적절한 컴포넌트들 및 인터페이스들을 포함할 수도 있다. 무선 공유 매체의 예는, RF 스펙트럼 등과 같은 무선 스펙트럼의 부분들을 포함할 수도 있다. 유선 시스템으로서 구현될 경우, 시스템(700)은 입력/출력(I/O) 어댑터들, I/O 어댑터를 대응하는 유선 통신 매체와 접속시키기 위한 물리적 커넥터들, 네트워크 인터페이스 카드(NIC), 디스크 제어기, 비디오 제어기, 오디오 제어기 등과 같이, 유선 통신 매체를 통해 통신하는데 적절한 컴포넌트들 및 인터페이스들을 포함할 수도 있다. 유선 통신 매체의 예들은 와이어, 케이블, 금속 리드들, 인쇄 회로 보드(PCB), 백플레인, 스위치 패브릭, 반도체 재료, 꼬임쌍선, 동축 케이블, 광섬유 등을 포함할 수도 있다.
플랫폼(702)은 하나 이상의 논리 또는 물리 채널들을 확립하여 정보를 통신할 수도 있다. 그 정보는 미디어 정보 및 제어 정보를 포함할 수도 있다. 미디어 정보는, 사용자를 위해 의도된 콘텐츠를 나타내는 임의의 데이터를 지칭할 수도 있다. 콘텐츠의 예들은, 예를 들어, 음성 대화, 비디오 컨퍼런스, 스트리밍 비디오, 전자 메일("이메일") 메시지, 음성 메일 메시지, 알파뉴메릭 심볼들, 그래픽스, 이미지, 비디오, 텍스트 등으로부터의 데이터를 포함할 수도 있다. 음성 대화로부터의 데이터는, 예를 들어, 스피치 정보, 무음 주기들, 백그라운드 잡음, 편안한 잡음, 톤들 등일 수도 있다. 제어 정보는, 자동화 시스템을 위해 의도된 커맨드들, 명령들 또는 제어 워드들을 나타내는 임의의 데이터를 지칭할 수도 있다. 예를 들어, 제어 정보는, 시스템을 통해 미디어 정보를 라우팅하거나 또는 미디어 정보를 미리결정된 방식으로 프로세싱하도록 노드에게 명령하는데 사용될 수도 있다. 하지만, 실시예들은 도 5에서 도시되거나 설명된 엘리먼트들 또는 맥락으로 한정되지 않는다.
상기 설명된 바와 같이, 시스템(700)은 가변 물리적 스타일들 또는 폼팩터들로 구현될 수도 있다. 도 6은 시스템(700)이 구현될 수도 있는 소형 폼팩터 디바이스(800)의 실시예들을 도시한 것이다. 실시예들에 있어서, 예를 들어, 디바이스(800)는 무선 능력들을 갖는 모바일 컴퓨팅 디바이스로서 구현될 수도 있다. 모바일 컴퓨팅 디바이스는, 예를 들어, 하나 이상의 배터리들과 같은 모바일 전력 소스 또는 공급부 및 프로세싱 시스템을 갖는 임의의 디바이스를 지칭할 수도 있다.
상기 설명된 바와 같이, 모바일 컴퓨팅 디바이스의 예들은 개인용 컴퓨터(PC), 랩탑 컴퓨터, 울트라-랩탑 컴퓨터, 태블릿, 터치 패드, 휴대용 컴퓨터, 핸드헬드 컴퓨터, 팜탑 컴퓨터, 개인용 디지털 보조기(PDA), 셀룰러 전화기, 결합 셀룰러 전화기/PDA, 텔레비전, 스마트 디바이스(예를 들어, 스마트폰, 스마트 태블릿 또는 스마트 텔레비전), 모바일 인터넷 디바이스(MID), 메시징 디바이스, 데이터 통신 디바이스 등을 포함할 수도 있다.
모바일 컴퓨팅 디바이스의 예들은 또한, 손목 컴퓨터, 손가락 컴퓨터, 링 컴퓨터, 안경 컴퓨터, 벨트-클립 컴퓨터, 완장형 컴퓨터, 신발 컴퓨터들, 의복 컴퓨터들, 및 다른 착용가능한 컴퓨터들과 같이 사람에 의해 착용되도록 배열되는 컴퓨터들을 포함할 수도 있다. 실시예들에 있어서, 예를 들어, 모바일 컴퓨팅 디바이스는, 음성 통신 및/또는 데이터 통신뿐 아니라 컴퓨터 어플리케이션들을 실행하는 것이 가능한 스마트폰으로서 구현될 수도 있다. 일부 실시예들이 예에 의해 스마트폰으로서 구현된 모바일 컴퓨팅 디바이스로 설명될 수도 있지만, 물론 다른 무선 모바일 컴퓨팅 디바이스들을 사용하여 다른 실시예들이 구현될 수도 있음이 인식될 수도 있다. 실시예들은 이러한 맥락으로 한정되지 않는다.
도 6에 도시된 바와 같이, 디바이스(800)는 하우징(802), 디스플레이(804), 입력/출력(I/O) 디바이스(806), 및 안테나(808)를 포함할 수도 있다. 디바이스(800)는 또한 네비게이션 피처들(812)을 포함할 수도 있다. 디스플레이(804)는, 모바일 컴퓨팅 디바이스에 적절한 정보를 디스플레이하는 임의의 적절한 디스플레이 유닛을 포함할 수도 있다. I/O 디바이스(806)는, 모바일 컴퓨팅 디바이스에 정보를 입력하는 임의의 적절한 I/O 디바이스를 포함할 수도 있다. I/O 디바이스(806)에 대한 예들은 알파뉴메릭 키보드, 뉴메릭 키패드, 터치 패드, 입력 키들, 버튼들, 스위치들, 록커 스위치들, 마이크로폰들, 스피커들, 음성 인식 디바이스 및 소프트웨어 등을 포함할 수도 있다. 정보는 또한 마이크로폰에 의해 디바이스(800)에 입력될 수도 있다. 그러한 정보는 음성 인식 디바이스에 의해 디지털화될 수도 있다. 실시예들은 이러한 맥락으로 한정되지 않는다.
다양한 실시예들이 하드웨어 엘리먼트들, 소프트웨어 엘리먼트들, 또는 이들 양자의 조합을 사용하여 구현될 수도 있다. 하드웨어 엘리먼트들의 예들은 프로세서들, 마이크로프로세서들, 회로들, 회로 엘리먼트들(예를 들어, 트랜지스터들, 저항기들, 커패시터들, 인덕터들 등), 집적 회로들, 주문형 집적회로들(ASIC), 프로그래머블 로직 디바이스들(PLD), 디지털 신호 프로세서들(DSP), 필드 프로그래머블 게이트 어레이(FPGA), 로직 게이트들, 레지스터들, 반도체 디바이스, 칩들, 마이크로칩들, 칩셋들 등을 포함할 수도 있다. 소프트웨어의 예들은 소프트웨어 컴포넌트들, 프로그램들, 어플리케이션들, 컴퓨터 프로그램들, 어플리케이션 프로그램들, 시스템 프로그램들, 머신 프로그램들, 오퍼레이팅 시스템 소프트웨어, 미들웨어, 펌웨어, 소프트웨어 모듈들, 루틴들, 서브루틴들, 함수들, 방법들, 절차들, 소프트웨어 인터페이스들, 어플리케이션 프로그램 인터페이스들(API), 명령 세트들, 컴퓨팅 코드, 컴퓨터 코드, 코드 세그먼트들, 컴퓨터 코드 세그먼트들, 워드들, 값들, 심볼들, 또는 이들의 임의의 조합을 포함할 수도 있다. 실시예가 하드웨어 엘리먼트들을 이용하여 구현될지 및/또는 소프트웨어 엘리먼트들을 이용하여 구현될지를 결정하는 것은 원하는 계산 레이트, 전력 레벨들, 열 허용오차들, 프로세싱 사이클 버짓, 입력 데이터 레이트들, 출력 데이터 레이트들, 메모리 리소스들, 데이터 버스 스피드들, 및 다른 설계 또는 성능 제약들과 같은 임의의 수의 팩터들에 따라 변할 수도 있다.
적어도 하나의 실시예의 하나 이상의 양태들은, 머신에 의해 판독될 경우 머신으로 하여금 본 명세서에서 설명된 기술들을 수행하기 위한 로직을 제조하게 하는 프로세서 내 다양한 로직을 나타내는 머신 판독가능 매체 상에 저장된 대표적인 명령들에 의해 구현될 수도 있다. "IP 코어들"로서 공지된 그러한 표현들은 유형의 머신 판독가능 매체 상에 저장되고 다양한 고객들 또는 제조 설비들에 공급되어, 로직 또는 프로세서를 실제로 제조하는 제조 머신들로 로딩할 수도 있다.
본 발명의 실시예들은 모든 타입들의 반도체 집적회로("IC") 칩들과의 사용을 위해 적용가능하다. 이들 IC 칩들의 예들은 프로세서들, 제어기들, 칩셋 컴포넌트들, 프로그래머블 로직 어레이들(PLAs), 메모리 칩들, 네트워크 칩들 등을 포함하지만 이에 한정되지 않는다. 부가적으로, 도면들 중 일부에 있어서, 신호 컨덕터 라인들은 라인들로 표현된다. 일부는 더 많은 성분 신호 경로들을 나타내기 위해 상이할 수도 있고, 성분 신호 경로들의 수를 나타내기 위해 번호 라벨을 가질 수도 있으며/있거나, 주요 정보 플로우 방향을 나타내기 위해 하나 이상의 단부들에서 화살표들을 가질 수도 있다. 하지만, 이는 한정하는 방식으로 해석되지 않아야 한다. 대신, 그러한 부가된 상세는, 회로의 더 용이한 이해를 촉진하기 위해 하나 이상의 예시적인 실시예들과 관련하여 사용될 수도 있다. 부가적인 정보를 갖든 갖지 않든 임의의 표현된 신호 라인들은 다중의 방향들에서 이동할 수도 있는 하나 이상의 신호들을 실제로 포함할 수도 있으며, 임의의 적절한 타입의 신호 방식 - 예를 들어, 상이한 쌍들로 구현된 디지털 또는 아날로그 라인들, 광섬유 라인들, 및/또는 단일 단부 라인들 - 로 구현될 수도 있다.
예시적인 사이즈들/모델들/값들/범위들이 제공되었을 수도 있지만, 본 발명의 실시예들은 그에 한정되지 않는다. 제조 기술들(예를 들어, 포토리소그래피)이 시간에 걸쳐 성숙함에 따라, 더 작은 사이즈의 디바이스들이 제조될 수 있음이 예상된다. 부가적으로, IC 칩들 및 다른 컴포넌트들로의 널리 공지된 전력/그라운드 접속들은, 예시 및 논의의 단순화를 위해 그리고 본 발명의 실시예들의 특정 양태들을 불명료하게 하지 않도록, 도면들 내에서 도시될 수도 있거나 도시되지 않을 수도 있다. 추가로, 배열들은 본 발명의 실시예들을 불명료하게 하는 것을 회피하기 위하여 블록 다이어그램 형태로 도시될 수도 있으며, 또한 그러한 블록 다이어그램 배열들의 구현에 관한 세부사항들은 실시예가 구현되는 플랫폼에 고도로 의존한다는 사실, 즉, 그러한 세부사항들은 당업자의 이해의 범위 내에 있어야 한다는 사실의 관점에서 도시될 수도 있다. 특정 상세들(예를 들어, 회로들)이 본 발명의 예시적인 실시예들을 설명하기 위해 기재되는 경우, 본 발명의 실시예들은 이들 특정 상세들없이 또는 그 변형으로 실시될 수 있음이 당업자에게 자명해야 한다. 따라서, 그 설명은 한정적인 것 대신 예시적인 것으로서 간주되어야 한다.
일부 실시예들은, 예를 들어, 머신에 의해 실행될 경우, 머신으로 하여금 방법 및/또는 동작들을 실시예들에 따라 수행하게 할 수도 있는 명령 또는 명령들의 세트를 저장할 수도 있는 머신 또는 유형의 컴퓨터 판독가능 매체 또는 물품을 사용하여 구현될 수도 있다. 그러한 머신은, 예를 들어, 임의의 적절한 프로세싱 플랫폼, 컴퓨팅 플랫폼, 컴퓨팅 디바이스, 프로세싱 디바이스, 컴퓨팅 시스템, 프로세싱 시스템, 컴퓨터, 프로세서 등을 포함할 수도 있으며, 하드웨어 및/또는 소프트웨어의 임의의 적절한 조합을 사용하여 구현될 수도 있다. 머신 판독가능 매체 또는 물품은, 예를 들어, 임의의 적절한 타입의 메모리 유닛, 메모리 디바이스, 메모리 물품, 메모리 매체, 저장 디바이스, 저장 물품, 저장 매체 및/또는 저장 유닛, 예를 들어, 메모리, 착탈가능 또는 착탈불가능 매체, 소거가능 또는 소거불가능 매체, 기록가능 또는 재-기록가능 매체, 디지털 또는 아날로그 매체, 하드 디스크, 플로피 디스크, 컴팩트 디스크 판독 전용 메모리(CD-ROM), 컴팩트 디스크 기록가능물(CD-R), 컴팩트 디스크 재기록가능물(CD-RW), 광학 디스크, 자기 매체, 광자기 매체, 착탈가능 메모리 카드 또는 디스크들, 다양한 타입들의 디지털 다기능 디스크(DVD), 테이프, 카세트 등을 포함할 수도 있다. 명령들은, 임의의 적절한 고레벨, 저레벨, 객체 지향, 비주얼, 컴파일링된 및/또는 해석된 프로그래밍 언어를 사용하여 구현되는 소스 코드, 컴파일링된 코드, 해석된 코드, 실행가능 코드, 정적 코드, 동적 코드, 암호화된 코드 등과 같은 임의의 적절한 타입의 코드를 포함할 수도 있다.
특별히 달리 언급되지 않는다면, "프로세싱하는 것", "산출하는 것", "계산하는 것", "결정하는 것" 등과 같은 용어들은 컴퓨터 혹은 컴퓨팅 시스템, 또는 유사한 전자적 컴퓨팅 디바이스의 액션 및/또는 프로세스들을 지칭함이 인식될 수도 있으며, 이 컴퓨터 혹은 컴퓨팅 시스템, 또는 유사한 전자적 컴퓨팅 디바이스는 컴퓨팅 시스템의 레지스터들 및/또는 메모리들 내의 물리량들(예를 들어, 전자적)로서 표현된 데이터를 컴퓨팅 시스템의 메모리들, 레지스터들 또는 다른 그러한 정보 저장, 전송 또는 디스플레이 디바이스들 내의 물리량들로서 유사하게 표현된 다른 데이터로 조작 및/또는 변환한다. 실시예들은 이러한 맥락으로 한정되지 않는다.
용어 "커플링된"은 당해 컴포넌트들 간의 임의의 타입의 관계 - 직접 또는 간접 관계 - 를 지칭하도록 본 명세서에서 사용될 수도 있으며, 전기, 기계, 유체, 광학, 전자기, 전자기계 또는 다른 접속들에 적용할 수도 있다. 부가적으로, 용어들 "제1", "제2" 등은 오직 논의를 용이하게 하기 위해서만 본 명세서에서 사용되며, 달리 나타내지지 않으면, 어떠한 특정 시간적 또는 연대기적인 현저성도 갖지 않을 수도 있다.
당업자는, 본 발명의 실시예들의 넓은 기술들이 다양한 형태들로 구현될 수 있음을 전술한 설명으로부터 인식할 것이다. 따라서, 본 발명의 실시예들이 그 특정 예들과 관련하여 설명되었지만, 도면들, 명세서 및 다음의 청구항들의 학습 시에 다른 변형예들이 당업자에게 자명하게 될 것이기 때문에, 본 발명의 실시예들의 진정한 범위는 그렇게 한정되지 않아야 한다.

Claims (29)

  1. 매크로블록 픽셀 분산, 총 고주파수 크기, 잔여 에러, 및 이전에 코딩된 비트수 중 적어도 하나에 기초하여 비디오 신호와 연관된 비트스트림에 대한 매크로블록 복잡도를 결정하는 단계;
    정적 위치, 상기 비트스트림의 콘텐츠, 및 외부의 동적 입력 중 적어도 하나에 기초하여 상기 비트스트림에 대한 중요도 영역을 결정하는 단계;
    상기 매크로블록 복잡도 및 상기 중요도 영역에 기초하여 상기 비트스트림에 대해 매크로블록 비트 버짓들의 세트를 할당하는 단계;
    매크로블록 사이즈 추정치를 생성하여 상기 비트스트림에 대한 러닝 비트 합(running bit sum)을 결정하는 단계;
    상기 러닝 비트 합과 상기 매크로블록 비트 버짓들의 세트 간의 비교를 수행하는 단계;
    상기 비교에 기초하여 업데이트 폴리시를 선택하는 단계; 및
    단일 패스 인코드 구성에 있어서의 상기 선택된 업데이트 폴리시에 기초하여 상기 비트스트림의 프레임 사이즈를 제어하는 단계
    를 포함하는, 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 매크로블록 비트 버짓들의 세트는 타겟 매크로블록 비트 버짓, 최소 매크로블록 비트 버짓, 및 최대 매크로블록 비트 버짓을 포함하는, 컴퓨터 구현 방법.
  3. 제2항에 있어서,
    상기 매크로블록 비트 버짓들의 세트는 상기 타겟 매크로블록 비트 버짓과 상기 최대 매크로블록 비트 버짓 간의 상위 평균, 및 상기 타겟 매크로블록 비트 버짓과 상기 최소 매크로블록 비트 버짓 간의 하위 평균을 더 포함하는, 컴퓨터 구현 방법.
  4. 제1항에 있어서,
    상기 선택된 업데이트 폴리시는 양자화 파라미터 조정 및 이산 코사인 변환 계수 조정 중 적어도 하나를 포함하는, 컴퓨터 구현 방법.
  5. 매크로블록 비트 버짓들의 세트를 비디오 신호와 연관된 비트스트림에 대해 할당하고, 단일 패스 인코드 구성에 있어서의 상기 매크로블록 비트 버짓들의 세트에 기초하여 상기 비트스트림의 프레임 사이즈를 제어하고, 상기 비트스트림에 대한 러닝 비트 합을 결정하고, 상기 러닝 비트 합과 상기 매크로블록 비트 버짓들의 세트 간의 비교를 수행하고, 상기 비교에 기초하여 업데이트 폴리시를 선택하기 위한 하드웨어 로직
    을 포함하고, 상기 비트스트림의 상기 프레임 사이즈는 상기 선택된 업데이트 폴리시에 기초하여 제어되는 것인, 장치.
  6. 삭제
  7. 제5항에 있어서,
    상기 선택된 업데이트 폴리시는 양자화 파라미터 조정 및 이산 코사인 변환 계수 조정 중 적어도 하나를 포함하는 것인, 장치.
  8. 제7항에 있어서,
    상기 하드웨어 로직은 매크로블록 사이즈 추정치를 생성하기 위한 것인, 장치.
  9. 제5항에 있어서,
    상기 매크로블록 비트 버짓들의 세트는 타겟 매크로블록 비트 버짓, 최소 매크로블록 비트 버짓, 및 최대 매크로블록 비트 버짓을 포함하는 것인, 장치.
  10. 매크로블록 비트 버짓들의 세트를 비디오 신호와 연관된 비트스트림에 대해 할당하고 - 상기 매크로블록 비트 버짓들의 세트는 타겟 매크로블록 비트 버짓, 최소 매크로블록 비트 버짓, 최대 매크로블록 비트 버짓, 상기 타겟 매크로블록 비트 버짓과 상기 최대 매크로블록 비트 버짓 간의 상위 평균, 및 상기 타겟 매크로블록 비트 버짓과 상기 최소 매크로블록 비트 버짓 간의 하위 평균을 포함함 -, 단일 패스 인코드 구성에 있어서의 상기 매크로블록 비트 버짓들의 세트에 기초하여 상기 비트스트림의 프레임 사이즈를 제어하기 위한 하드웨어 로직
    을 포함하는 장치.
  11. 매크로블록 픽셀 분산, 총 고주파수 크기, 잔여 에러, 및 이전에 코딩된 비트수 중 적어도 하나에 기초하여 비트스트림에 대한 매크로블록 복잡도를 결정하고, 매크로블록 비트 버짓들의 세트를 비디오 신호와 연관된 상기 비트스트림에 대해 할당하고 - 상기 매크로블록 비트 버짓들의 세트는 상기 매크로블록 복잡도에 기초하여 할당됨 -, 단일 패스 인코드 구성에 있어서의 상기 매크로블록 비트 버짓들의 세트에 기초하여 상기 비트스트림의 프레임 사이즈를 제어하기 위한 하드웨어 로직
    을 포함하는 장치.
  12. 정적 위치, 비트스트림의 콘텐츠, 및 외부의 동적 입력 중 적어도 하나에 기초하여 상기 비트스트림에 대한 중요도 영역을 결정하고, 매크로블록 비트 버짓들의 세트를 비디오 신호와 연관된 상기 비트스트림에 대해 할당하고 - 상기 매크로블록 비트 버짓들의 세트는 상기 중요도 영역에 기초하여 할당됨 -, 단일 패스 인코드 구성에 있어서의 상기 매크로블록 비트 버짓들의 세트에 기초하여 상기 비트스트림의 프레임 사이즈를 제어하기 위한 하드웨어 로직
    을 포함하는 장치.
  13. 매크로블록 비트 버짓들의 세트를 비디오 신호와 연관된 비트스트림에 대해 할당하고, 단일 패스 인코드 구성에 있어서의 상기 매크로블록 비트 버짓들의 세트에 기초하여 상기 비트스트림의 프레임 사이즈를 제어하고, 상기 비트스트림에 대한 러닝 비트 합을 결정하고, 상기 러닝 비트 합과 상기 매크로블록 비트 버짓들의 세트 간의 비교를 수행하고, 상기 비교에 기초하여 업데이트 폴리시를 선택하기 위한 하드웨어 로직을 포함하는 그래픽스 프로세서 - 상기 비트스트림의 프레임 사이즈는 상기 선택된 업데이트 폴리시에 기초하여 제어됨 -; 및
    상기 그래픽스 프로세서에 커플링된 하드 드라이브
    를 포함하는, 시스템.
  14. 삭제
  15. 제13항에 있어서,
    상기 선택된 업데이트 폴리시는 양자화 파라미터 조정 및 이산 코사인 변환 계수 조정 중 적어도 하나를 포함하는 것인, 시스템.
  16. 제13항에 있어서,
    상기 하드웨어 로직은 매크로블록 사이즈 추정치를 생성하기 위한 것인, 시스템.
  17. 제13항에 있어서,
    상기 매크로블록 비트 버짓들의 세트는 타겟 매크로블록 비트 버짓, 최소 매크로블록 비트 버짓, 및 최대 매크로블록 비트 버짓을 포함하는 것인, 시스템.
  18. 매크로블록 비트 버짓들의 세트를 비디오 신호와 연관된 비트스트림에 대해 할당하고 - 상기 매크로블록 비트 버짓들의 세트는 타겟 매크로블록 비트 버짓, 최소 매크로블록 비트 버짓, 및 최대 매크로블록 비트 버짓, 상기 타겟 매크로블록 비트 버짓과 상기 최대 매크로블록 비트 버짓 간의 상위 평균, 및 상기 타겟 매크로블록 비트 버짓과 상기 최소 매크로블록 비트 버짓 간의 하위 평균을 포함함 -, 단일 패스 인코드 구성에 있어서의 상기 매크로블록 비트 버짓들의 세트에 기초하여 상기 비트스트림의 프레임 사이즈를 제어하기 위한 하드웨어 로직을 포함하는 그래픽스 프로세서; 및
    상기 그래픽스 프로세서에 커플링된 하드 드라이브
    를 포함하는, 시스템.
  19. 매크로블록 픽셀 분산, 총 고주파수 크기, 잔여 에러, 및 이전에 코딩된 비트수 중 적어도 하나에 기초하여 비트스트림에 대한 매크로블록 복잡도를 결정하고, 매크로블록 비트 버짓들의 세트를 비디오 신호와 연관된 상기 비트스트림에 대해 할당하고 - 상기 매크로블록 비트 버짓들의 세트는 상기 매크로블록 복잡도에 기초하여 할당됨 -, 단일 패스 인코드 구성에 있어서의 상기 매크로블록 비트 버짓들의 세트에 기초하여 상기 비트스트림의 프레임 사이즈를 제어하기 위한 하드웨어 로직을 포함하는 그래픽스 프로세서; 및
    상기 그래픽스 프로세서에 커플링된 하드 드라이브
    를 포함하는, 시스템.
  20. 정적 위치, 비트스트림의 콘텐츠, 및 외부의 동적 입력 중 적어도 하나에 기초하여 상기 비트스트림에 대한 중요도 영역을 결정하고, 매크로블록 비트 버짓들의 세트를 비디오 신호와 연관된 상기 비트스트림에 대해 할당하고 - 상기 매크로블록 비트 버짓들의 세트는 상기 중요도 영역에 기초하여 할당됨 -, 단일 패스 인코드 구성에 있어서의 상기 매크로블록 비트 버짓들의 세트에 기초하여 상기 비트스트림의 프레임 사이즈를 제어하기 위한 하드웨어 로직을 포함하는 그래픽스 프로세서; 및
    상기 그래픽스 프로세서에 커플링된 하드 드라이브
    를 포함하는, 시스템.
  21. 매크로블록 비트 버짓들의 세트를 비디오 신호와 연관된 비트스트림에 대해 할당하는 단계;
    단일 패스 인코드 구성에 있어서의 상기 매크로블록 비트 버짓들의 세트에 기초하여 상기 비트스트림의 프레임 사이즈를 제어하는 단계;
    상기 비트스트림에 대한 러닝 비트 합을 결정하는 단계;
    상기 러닝 비트 합과 상기 매크로블록 비트 버짓들의 세트 간의 비교를 수행하는 단계; 및
    상기 비교에 기초하여 업데이트 폴리시를 선택하는 단계 - 상기 비트스트림의 프레임 사이즈는 상기 선택된 업데이트 폴리시에 기초하여 제어됨 -
    를 포함하는, 컴퓨터 구현 방법.
  22. 삭제
  23. 제21항에 있어서,
    상기 선택된 업데이트 폴리시는 양자화 파라미터 조정 및 이산 코사인 변환 계수 조정 중 적어도 하나를 포함하는, 컴퓨터 구현 방법.
  24. 제21항에 있어서,
    상기 러닝 비트 합을 결정하는 단계는 매크로블록 사이즈 추정치를 생성하는 단계를 포함하는, 컴퓨터 구현 방법.
  25. 제21항에 있어서,
    상기 매크로블록 비트 버짓들의 세트는 타겟 매크로블록 비트 버짓, 최소 매크로블록 비트 버짓, 및 최대 매크로블록 비트 버짓을 포함하는, 컴퓨터 구현 방법.
  26. 매크로블록 비트 버짓들의 세트를 비디오 신호와 연관된 비트스트림에 대해 할당하는 단계 - 상기 매크로블록 비트 버짓들의 세트는 타겟 매크로블록 비트 버짓, 최소 매크로블록 비트 버짓, 최대 매크로블록 비트 버짓, 상기 타겟 매크로블록 비트 버짓과 상기 최대 매크로블록 비트 버짓 간의 상위 평균, 및 상기 타겟 매크로블록 비트 버짓과 상기 최소 매크로블록 비트 버짓 간의 하위 평균을 포함함 -; 및
    단일 패스 인코드 구성에 있어서의 상기 매크로블록 비트 버짓들의 세트에 기초하여 상기 비트스트림의 프레임 사이즈를 제어하는 단계
    를 포함하는, 컴퓨터 구현 방법.
  27. 매크로블록 픽셀 분산, 총 고주파수 크기, 잔여 에러, 및 이전에 코딩된 비트수 중 적어도 하나에 기초하여 비트스트림에 대한 매크로블록 복잡도를 결정하는 단계;
    매크로블록 비트 버짓들의 세트를 비디오 신호와 연관된 상기 비트스트림에 대해 할당하는 단계 - 상기 매크로블록 비트 버짓들의 세트는 상기 매크로블록 복잡도에 기초하여 할당됨 -; 및
    단일 패스 인코드 구성에 있어서의 상기 매크로블록 비트 버짓들의 세트에 기초하여 상기 비트스트림의 프레임 사이즈를 제어하는 단계
    를 포함하는, 컴퓨터 구현 방법.
  28. 정적 위치, 비트스트림의 콘텐츠, 및 외부의 동적 입력 중 적어도 하나에 기초하여 상기 비트스트림에 대한 중요도 영역을 결정하는 단계;
    매크로블록 비트 버짓들의 세트를 비디오 신호와 연관된 상기 비트스트림에 대해 할당하는 단계 - 상기 매크로블록 비트 버짓들의 세트는 상기 중요도 영역에 기초하여 할당됨 -; 및
    단일 패스 인코드 구성에 있어서의 상기 매크로블록 비트 버짓들의 세트에 기초하여 상기 비트스트림의 프레임 사이즈를 제어하는 단계
    를 포함하는, 컴퓨터 구현 방법.
  29. 제21항에 있어서,
    하드웨어 로직이, 상기 매크로블록 비트 버짓들의 세트를 할당하고 상기 프레임 사이즈를 제어하기 위해 사용되는, 컴퓨터 구현 방법.
KR1020147017519A 2011-12-23 2011-12-23 콘텐츠 적응적 고정밀 매크로블록 레이트 제어 KR101651027B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/067161 WO2013095627A1 (en) 2011-12-23 2011-12-23 Content adaptive high precision macroblock rate control

Publications (2)

Publication Number Publication Date
KR20140109902A KR20140109902A (ko) 2014-09-16
KR101651027B1 true KR101651027B1 (ko) 2016-08-24

Family

ID=48669265

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147017519A KR101651027B1 (ko) 2011-12-23 2011-12-23 콘텐츠 적응적 고정밀 매크로블록 레이트 제어

Country Status (6)

Country Link
US (1) US9497241B2 (ko)
EP (1) EP2795899A4 (ko)
KR (1) KR101651027B1 (ko)
CN (1) CN104012090B (ko)
TW (1) TWI634788B (ko)
WO (1) WO2013095627A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101651027B1 (ko) 2011-12-23 2016-08-24 인텔 코포레이션 콘텐츠 적응적 고정밀 매크로블록 레이트 제어
TWI538480B (zh) * 2014-05-27 2016-06-11 敦泰電子股份有限公司 藉由偵測鄰近像素複雜度來動態調整壓縮參數的影像壓縮系統
US10284849B2 (en) 2015-04-13 2019-05-07 Qualcomm Incorporated Quantization parameter (QP) calculation for display stream compression (DSC) based on complexity measure
US10356428B2 (en) 2015-04-13 2019-07-16 Qualcomm Incorporated Quantization parameter (QP) update classification for display stream compression (DSC)
US11575896B2 (en) * 2019-12-16 2023-02-07 Panasonic Intellectual Property Corporation Of America Encoder, decoder, encoding method, and decoding method

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010541386A (ja) 2007-09-28 2010-12-24 ドルビー・ラボラトリーズ・ライセンシング・コーポレーション ビデオ圧縮技法及びビデオ伝達技法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1051853B1 (en) * 1998-01-26 2003-06-18 STMicroelectronics Asia Pacific Pte Ltd. One-pass variable bit rate moving pictures encoding
US6298090B1 (en) * 1998-06-04 2001-10-02 U.S. Philips Corporation System for detecting redundant images in a video sequence by comparing two predetermined threshold values
US6542549B1 (en) * 1998-10-13 2003-04-01 Matsushita Electric Industrial Co., Ltd. Method and model for regulating the computational and memory requirements of a compressed bitstream in a video decoder
US6570922B1 (en) 1998-11-24 2003-05-27 General Instrument Corporation Rate control for an MPEG transcoder without a priori knowledge of picture type
US6694060B2 (en) * 2000-12-21 2004-02-17 General Instrument Corporation Frame bit-size allocation for seamlessly spliced, variable-encoding-rate, compressed digital video signals
US20020122482A1 (en) 2001-01-03 2002-09-05 Kim Hyun Mun Method of performing video encoding rate control using bit budget
SG140441A1 (en) * 2003-03-17 2008-03-28 St Microelectronics Asia Decoder and method of decoding using pseudo two pass decoding and one pass encoding
CN1263308C (zh) 2003-06-13 2006-07-05 矽统科技股份有限公司 具有重要区域的图像的压缩率的控制方法
US7697608B2 (en) * 2004-02-03 2010-04-13 Sony Corporation Scalable MPEG video/macro block rate control
KR100988402B1 (ko) 2004-06-27 2010-10-18 애플 인크. 멀티-패스 비디오 인코딩 방법
US7724972B2 (en) 2005-03-01 2010-05-25 Qualcomm Incorporated Quality metric-biased region-of-interest coding for video telephony
US7848409B2 (en) 2005-05-02 2010-12-07 Qualcomm Incorporated Macroblock level bit allocation
US8879857B2 (en) * 2005-09-27 2014-11-04 Qualcomm Incorporated Redundant data encoding methods and device
US7595743B1 (en) * 2005-10-26 2009-09-29 Lsi Corporation System and method for reducing storage requirements for content adaptive binary arithmetic coding
US8379733B2 (en) 2006-09-26 2013-02-19 Qualcomm Incorporated Efficient video packetization methods for packet-switched video telephony applications
WO2008042259A2 (en) * 2006-09-28 2008-04-10 Thomson Licensing Method for rho-domain frame level bit allocation for effective rate control and enhanced video coding quality
US8929448B2 (en) * 2006-12-22 2015-01-06 Sony Corporation Inter sub-mode decision process in a transcoding operation
US9215467B2 (en) 2008-11-17 2015-12-15 Checkvideo Llc Analytics-modulated coding of surveillance video
US20100166060A1 (en) * 2008-12-31 2010-07-01 Texas Instruments Incorporated Video transcoder rate control
US8594177B2 (en) * 2010-08-31 2013-11-26 Arm Limited Reducing reference frame data store bandwidth requirements in video decoders
KR101651027B1 (ko) 2011-12-23 2016-08-24 인텔 코포레이션 콘텐츠 적응적 고정밀 매크로블록 레이트 제어

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010541386A (ja) 2007-09-28 2010-12-24 ドルビー・ラボラトリーズ・ライセンシング・コーポレーション ビデオ圧縮技法及びビデオ伝達技法

Also Published As

Publication number Publication date
TW201347544A (zh) 2013-11-16
TWI634788B (zh) 2018-09-01
EP2795899A1 (en) 2014-10-29
WO2013095627A1 (en) 2013-06-27
CN104012090B (zh) 2018-01-26
EP2795899A4 (en) 2016-01-27
CN104012090A (zh) 2014-08-27
US20150039779A1 (en) 2015-02-05
US9497241B2 (en) 2016-11-15
KR20140109902A (ko) 2014-09-16

Similar Documents

Publication Publication Date Title
US9661329B2 (en) Constant quality video coding
KR101717915B1 (ko) 동적 생성 그래픽 자원들에 대한 압축 기술들
JP6109956B2 (ja) ビデオコンテンツを前処理するエンコーダハードウェアの活用
US9549188B2 (en) Golden frame selection in video coding
CN106664412B (zh) 包括目标比特率的视频编码速率控制和质量控制
CN112584149A (zh) 用于视频编码的内容自适应降噪的方法和系统
US20140177959A1 (en) Decompression of block compressed images
KR101651027B1 (ko) 콘텐츠 적응적 고정밀 매크로블록 레이트 제어
US9681133B2 (en) Two bins per clock CABAC decoding
US9514715B2 (en) Graphics voltage reduction for load line optimization
WO2013101153A1 (en) Playback of video content based on frame-level ratings
EP2889875B1 (en) Adaptive depth offset compression
US20130208786A1 (en) Content Adaptive Video Processing
JP6005292B2 (ja) ビデオ符号化及び復号のためのヒストグラム分割ベースのローカル適応フィルタ
JP6379408B2 (ja) ビデオ符号化及び復号のためのヒストグラム分割ベースのローカル適応フィルタ
BR112016029992B1 (pt) Seleção de frame dourado em codificação de vídeo

Legal Events

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