KR20080031344A - 가변 비트 속도 인코딩이 가능한 비디오 인코더를 위한속도 제어 방법, 모듈, 기기 및 시스템 - Google Patents

가변 비트 속도 인코딩이 가능한 비디오 인코더를 위한속도 제어 방법, 모듈, 기기 및 시스템 Download PDF

Info

Publication number
KR20080031344A
KR20080031344A KR1020087002293A KR20087002293A KR20080031344A KR 20080031344 A KR20080031344 A KR 20080031344A KR 1020087002293 A KR1020087002293 A KR 1020087002293A KR 20087002293 A KR20087002293 A KR 20087002293A KR 20080031344 A KR20080031344 A KR 20080031344A
Authority
KR
South Korea
Prior art keywords
frame
quantization parameter
bit
program section
encoding
Prior art date
Application number
KR1020087002293A
Other languages
English (en)
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 KR20080031344A publication Critical patent/KR20080031344A/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/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/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/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/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

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)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

일반적으로, 비디오 인코딩을 위한 속도 제어의 방법론이 제공되며, 이는 방법. 기기, 컴퓨터 프로그램 및/또는 비디오 인코더에 의해 구현된다. 각 프레임에 대한 프레임 인코딩 절차가 실행되어 초기 양자화 파라미터가 현재의 프레임을 인코딩하기 위한 양자화 파라미터로 사용되기 위해 계산된다. 현재 프레임 내의 매크로블록들의 각 그룹은 그룹마다, 즉 그룹 방식으로 인코딩된다. 점수값이 현재 매크로블록들의 그룹을 매크로 인코딩한 후에 결정된다. 그 점수 값이 미리 정의된 문턱값을 초과하는 경우에는, 다음 그룹의 매크로블록들을 인코딩하기 위한 양자화 파라미터가 조절되며, 그렇지 않으면, 매크로블록 인코딩은 현재의 매크로블록들의 그룹을 인코딩하기 위해 현재 사용되는 양자화 파라미터와 함께 계속된다.

Description

가변 비트 속도 인코딩이 가능한 비디오 인코더를 위한 속도 제어 방법, 모듈, 기기 및 시스템{Method, module, device and system for rate control provision for video encoders capable of variable bit rate encoding}
본 발명은 비디오 인코더를 위한 속도(rate) 제어기에 관련된 것이다. 특히, 본 발명은 압축된 비디오 비트 스트림들을 생성할 수 있는 비디오 인코더에 대한 것이며, 그 비디오 인코더는 지정된 비트 속도 편차 내의 미리 정의된 목적 비트 속도에 따르도록 구성 가능하다.
대부분의 실제의 비디오 전송 기술들은 평균 비트 속도 및 비트 속도 변이의 면에서 제한을 고수하기 위해 인코드딩된/압축된 비디오 스트림을 필요로 한다. 현재의 모든 비디오 압축 표준들 (비디오 코덱들)은 표준으로 또는 정보를 주는 버퍼 모델을 포함하며, 쉽게 제어되는 비트 스트림을 구성하기 위해 비디오 인코더의 버퍼 모델의 속도 제어 방법이 충족될 필요가 있다.
3GPP (3rd Generation Partnership Project)는 모든 생산되는 비디오 인코더에 대해 어떤 최소의 품질 레벨을 요구하는 것으로 계속 간주된다. 3GPP 단말 기반의 비디오 인코더에 대한 속도 제어 방법들은 주기와 메모리 소모의 면에서 정당하게 가벼울 것과 3GPP 단말 기반의 인코더 (예를 들면, 레코딩, 스트리밍 서비스 및 대화형 응용)의 상이한 응용들의 압박을 잘 처리할 수 있도록 하기 위해 버퍼링의 필요성의 면에서의 융통성, 그리고 사용자의 경험을 개선시킬 고품질을 필요로 한다. 가장 중요하게는, 그런 비디오 인코더들은, 쉽게 제어되는 비트 스트림을 보장하고 그래서 상호 운용성을 보장하기 위해, 표준에 의해서 항상 그런 버퍼링의 필요를 충족시킬 필요가 있다. 대화형(conversational) 응용을 위해, 말단 대 말단 지연 요구는 매우 낮으며 이는 속도 제어 방법이 매우 빈틈없이 버퍼 레벨에서 동작해야만 한다는 것을 의미한다.
비록 단지 30개의 알려진 상이한 속도 제어 방법이 있지만, 그 방법들 중의 어느 것도 상기에서 언급된 요구 조건, 즉, 가벼울 것, 본질적으로 싱글 패스일 것, 응용의 면에서 융통성이 있고, 3GPP (예를 들면, H.263 baseline, H. 246, MPEG-4 part 2 simple profile, 그리고 AVC baseline 표준들)에 관련된 비디오 코딩 표준들의 버퍼링 방법을 준수하는 것을 보장하기에 충분하게 정밀할 것이라는 조건들을 모두 충족하지 않는다.
본 발명은 압축된 비디오 인코더들을 위한 속도 제어기를 제공함으로써 상기에 언급된 문제들을 다룬다. 본 발명의 제어기는 현재의 비디오-코딩 표준들에서 지정된 버퍼링 방법들에 따르도록 구성될 수 있다. 특히, 본 발명은 더 빈틈이 없는 버퍼 레벨에서 (예를 들면 1초 미만) 비디오의 비트 속도를 제어하는 문제를 해결한다.
본 발명의 첫 번째 모습에 따라 비디오 인코더를 위한 속도 제어 방법이 제공된다. 하나의 프레임 인코딩 프로세스가 각 프레임에 대해 실행되어, 현재의 프레임을 인코딩하기 위한 양자화 파라미터로서 사용하기 위해 초기 양자화 파라미터가 계산된다. 현재 프레임 내의 매크로블록들의 각 그룹은 그룹단위, 즉 그룹 방식(group-wise)으로 인코딩된다. 매크로블록들의 현재 그룹을 매크로블록 인코딩한 후에 득점값이 결정된다. 상기 득점값이 미리 정의된 문턱값을 초과하는 경우, 매크로블록들의 다음 그룹을 인코딩하기 위한 양자화 파라미터를 조절되며, 초과하지 않는다면, 현재의 매크로블록들의 그룹을 인코딩하기 위해서 현재 사용되는 양자화 파라미터와 함께 매크로블록 인코딩이 계속된다.
본 발명의 일 실시예에 따르면, 상기 득점값은 현재 프레임, 인코딩 시에 현재 매크로블록을 인코딩하기 위해 필요한 비트들의 개수를 예측하는 비트 예측 개수 및 매크로블록 인덱스에 대한 하나 이상의 가림(envelope)값들을 포함하는 그룹으로부터 적어도 하나를 기반으로 결정된다.
본 발명의 일 실시예에 따르면, 상기 비트 예측 개수는 현재 프레임의 이전 매크로블록들의 하나 이상 및/또는 하나 이상의 이전 프레임의 이전 매크로블록들의 하나 이상을 인코딩하기 위해 생성되는 비트들의 개수를 기반으로 결정된다.
본 발명의 일 실시예에 따르면, 비트 가림값들이 현재 프레임에 대해 결정된다. 상기 비트 가림값들은 적어도 상한 및 하한을 포함하며, 버퍼 모델에 따라 결정되고 그리고 바람직하게는 비디오 비트 속도(rate), 현재 프레임의 목적 비트수 및 비디오 프레임 속도를 포함하는 그룹으로부터 적어도 하나의 값에 기반한다. 상기 득점값은 비트 예측 개수, 가림값들 및 비트 예측의 비신뢰성을 설명하는 미리 정의된 함수를 기반으로 결정되며, 상기 미리 정의된 함수는 상기 매크로블록 인덱스의 함수이다. 상기 미리 정의된 함수는 바람직하게는 룩업 테이블의 기저에 구현 가능한 포물선 함수이다.
본 발명의 일 실시예에 따르면, 상기 양자화 파라미터를 조절하는 것은 적어도 하나의 오프셋 값에 의해 상기 양자화 파라미터를 차감하는 것을 포함한다. 상기 적어도 하나의 오프셋 값은 비트들의 가림값 및/또는 상기 결정된 비트 예측 개수에 의존한다.
본 발명의 일 실시예에 따르면, 양자화 파라미터를 조절하는 것은 상기 점수값에 의존하여 실행된다.
본 발명의 일 실시예에 따르면, 프레임 인코딩 이전에 적어도 하나의 속도 제어 관련된 파라미터가 초기화된다. 상기 적어도 하나의 속도 제어 관련된 파라미터는 비트 속도와 버퍼 크기로 이루어진 그룹으로부터 선택된다.
본 발명의 일 실시예에 따르면, 최근의 양자화 파라미터 조절이 발생했던 이후에 인코드된 복수의 매크로블록들이 결정된다. 매크로블록의 개수가 미리 정의된 문턱값을 초과하는 경우에는 상기 양자화 파라미터를 조절하는 것이 허용된다. 그렇지 않으면 그 양자화 파라미터는 유지된다.
본 발명의 일 실시예에 따르면, 필요하면, 갱신된 초기 양자화 파라미터를 현재 프레임을 위해 결정하고 프레임 인코딩 프로세스는 그 갱신된 초기 양자화 파라미터를 기반으로 반복된다.
본 발명의 일 실시예에 따르면, 현재의 프레임이 P 프레임인지 또는 이상적인 데이터 표현 프레임인지가 결정된다.
본 발명의 일 실시예에 따르면, 상기 현재의 프레임이 P 프레임이면, 상기 비트 예측 개수는 하나 이상의 이전 프레임들의 비트 분포로부터 결정된다.
본 발명의 일 실시예에 따르면, 상기 현재의 프레임이 이상적인 데이터 표현 프레임이면, 상기 비트 예측 개수는 이전의 프레임에서 생성된 비트들의 개수로부터 결정된다.
본 발명의 일 실시예에 따르면, 상기 현재 프레임이 P 프레임이면, 상기 초기 양자화 파라미터는, 짧은 윈도우 및 긴 윈도우 양자화 파라미터들에 대한 값들을 계산하고; 상기 짧은 윈도우 및 긴 윈도우 양자화 파라미터들을 기반으로 상기 초기 양자화 파라미터를 계산하고; 그리고 프레임의 초기 양자화 파라미터에 대한 값을 잘라내어 계산된다.
본 발명의 일 실시예에 따르면, 상기 현재 프레임이 이상적인 데이터 표현 프레임이면, 상기 초기 양자화 파라미터는 다음의 결정에 따라서 계산된다. 버퍼 모델에 따른 버퍼 가용성 검사가 성공적이면, 이전의 P 프레임의 양자화 파라미터를 초기 양자화 파라미터로서 채택된다. 상기 버퍼 가용성 검사가 실패하면, 하나 이상의 이전 프레임들에 대해 생성된 비트들의 개수로부터의 초기 양자화 파라미터와 하나 이상의 이전 프레임들을 인코딩하기 위해 사용된 양자화 파라미터들로부터 외삽(extrapolate)된다. 상기 외삽은 바람직하게는 하나 또는 그 이상의 파라미터들을 구비한 회귀(regression) 함수를 기반으로 계산된다. 상기 외삽이 신뢰성 있지 않다면, 하나 이상의 이전의 이상적인 데이터 표현 프레임들의 하나 이상의 양자화 파라미터들로부터 초기 양자화 파라미터가 결정된다.
본원 발명의 두 번째 모습에 따르면, 비디오 인코더에 대한 속도 제어를 제공하기 위한 컴퓨터 프로그램 생성물이 제공되며, 그 프로그램 생성물은 각 프레임에 대해 프레임 인코딩 프로세스를 실행하는 프로그램/코드 섹션을 포함한다. 현재의 프레임을 인코딩하기 위한 양자화 파라미터로서 사용하기 위해 초기 양자화 파라미터를 결정하도록 한 프로그램/코드 섹션이 구성된다. 현재 프레임 내의 매크로블록들의 그룹을 그룹 단위로, 즉, 그룹 방식으로 인코딩하도록 한 프로그램/코드 섹션이 구성된다. 그러므로, 매크로블록들의 그룹에 대한 매크로블록 인코딩 프로그램/코드 섹션은 매크로블록들의 현재 그룹을 인코딩한 후에 득점값을 결정하도록 구성된다. 상기 득점값이 미리 정의된 문턱값을 초과하면 매크로블록들의 다음 그룹을 인코딩하기 위한 양자화 파라미터를 조절하도록 한 프로그램/코드 섹션이 구성된다. 초과하지 않는다면, 현재 정당한 양자화 파라미터와 함께 매크로블록 인코딩을 계속하도록 한 프로그램/코드 섹션이 구성된다.
본 발명의 일 실시예에 따르면, 상기 득점값은 현재 프레임, 인코딩 시에 현재 매크로블록을 인코딩하기 위해 필요한 비트들의 개수를 예측하는 비트 예측 개수 및 매크로블록 인덱스에 대한 하나 이상의 가림(envelope)값들을 포함하는 그룹으로부터 적어도 하나를 기반으로 결정된다.
본 발명의 일 실시예에 따르면, 상기 비트 예측 개수는 현재 프레임의 이전 매크로블록들의 하나 이상 및/또는 하나 이상의 이전 프레임의 이전 매크로블록들의 하나 이상을 인코딩하기 위해 생성되는 비트들의 개수를 기반으로 결정된다.
본 발명의 일 실시예에 따르면, 비트 가림값들이 현재 프레임에 대해 결정하기 위한 프로그램/코드 섹션이 제공된다. 상기 비트 가림값들은 적어도 상한 및 하한을 포함하며, 버퍼 모델에 따라 결정되고 그리고 바람직하게는 비디오 비트 속도(rate), 현재 프레임의 목적 비트수 및 비디오 프레임 속도를 포함하는 그룹으로부터 적어도 하나의 값에 기반한다. 비트 예측 개수, 가림값들 및 비트 예측의 비신뢰성을 설명하는 미리 정의된 함수를 기반으로 상기 득점값을 결정하는 프로그램/코드 섹션이 제공된다. 상기 미리 정의된 함수는 상기 매크로블록 인덱스의 함수이며, 바람직하게는 룩업 테이블의 기저에 구현 가능한 포물선 함수이다.
본 발명의 일 실시예에 따르면, 상기 양자화 파라미터를 조절하는 프로그램/코드 섹션은 적어도 하나의 오프셋 값에 의해 상기 양자화 파라미터를 차감하는 프로그램/코드 섹션이 제공된다. 상기 적어도 하나의 오프셋 값은 바람직하게는 비트들의 가림값 및/또는 상기 결정된 비트 예측 개수에 의존한다.
본 발명의 일 실시예에 따르면, 상기 양자화 파라미터를 조절하는 프로그램/코드 섹션은 상기 점수값에 의존하여 상기 양자화 파라미터를 결정하도록 구성된다.
본 발명의 일 실시예에 따르면, 적어도 하나의 속도 제어 관련된 파라미터를 초기화시키는 프로그램/코드 섹션을 포함한다. 상기 적어도 하나의 속도 제어 관련된 파라미터는 비트 속도와 버퍼 크기로 이루어진 그룹으로부터 선택된다.
본 발명의 일 실시예에 따르면, 최근의 양자화 파라미터 조절이 발생했던 이후에 인코드된 복수의 매크로블록들을 결정하기 위한 프로그램/코드 섹션이 제공되다. 매크로블록의 개수가 미리 정의된 문턱값을 초과하는 경우에는 상기 양자화 파라미터 조절이 가능해진다.
본 발명의 일 실시예에 따르면, 필요하면, 갱신된 초기 양자화 파라미터를 현재 프레임을 위해 결정하고 인코딩 프로세스를 반복하는 프로그램/코드 섹션이 포함된다.
본 발명의 일 실시예에 따르면, 현재의 프레임이 P 프레임인지 또는 이상적인 데이터 표현 프레임인지를 결정하는 프로그램/코드 섹션이 더 제공된다.
본 발명의 일 실시예에 따르면, 상기 현재의 프레임이 P 프레임이면, 상기 비트 예측 개수는 하나 이상의 이전 프레임들의 비트 분포로부터 결정된다.
본 발명의 일 실시예에 따르면, 상기 현재의 프레임이 이상적인 데이터 표현 프레임이면, 상기 비트 예측 개수는 이전의 프레임에서 생성된 비트들의 개수로부터 결정된다.
본 발명의 일 실시예에 따르면, 상기 현재 프레임이 P 프레임이면, 상기 초기 양자화 파라미터는, 짧은 윈도우 및 긴 윈도우 양자화 파라미터들에 대한 값들을 계산하는 프로그램/코드 섹션; 상기 짧은 윈도우 및 긴 윈도우 양자화 파라미터들을 기반으로 상기 초기 양자화 파라미터를 계산하는 프로그램/코드 섹션; 및 프레임의 초기 양자화 파라미터에 대한 값을 잘라내는 프로그램/코드 섹션;에 의해 결정된다.
본 발명의 일 실시예에 따르면, 상기 현재 프레임이 이상적인 데이터 표현 프레임이면, 상기 초기 양자화 파라미터를 위한 프로그램/코드 섹션은 다음의 프로그램/코드 섹션의 하나 이상을 포함한다. 버퍼 모델에 따른 버퍼 가용성 검사가 성공적이면, 이전의 P 프레임의 양자화 파라미터를 초기 양자화 파라미터로서 채택하는 프로그램/코드 섹션이 제공된다. 상기 버퍼 가용성 검사가 실패하면, 하나 이상의 이전 프레임들에 대해 생성된 비트들의 개수로부터의 초기 양자화 파라미터와 하나 이상의 이전 프레임들을 인코딩하기 위해 사용된 양자화 파라미터들을 외삽하는(extrapolate) 프로그램/코드 섹션이 또한 제공된다. 상기 외삽이 신뢰성 있지 않다면, 하나 이상의 이전의 이상적인 데이터 표현 프레임들의 하나 이상의 양자화 파라미터들로부터 초기 양자화 파라미터를 결정하는 프로그램/코드 섹션이 마지막으로 제공된다.
본원 발명의 세 번째 모습에 따르면, 최소 하나의 프로세서 또는 프로세싱 유닛 및 메모리 유닛을 포함하는 전자 기기가 제공된다.
그 메모리 유닛은 그 프로세서에 작동적으로(operatively) 연결되고 비디오 인코더를 위한 속도 제어를 제공하기 위한 컴퓨터 프로그램 생성물을 포함한다. 현재의 프레임을 인코딩하기 위한 양자화 파라미터로서 사용하기 위해 초기 양자화 파라미터를 결정하도록 한 프로그램/코드 섹션이 구성된다. 현재 프레임 내의 매크로블록들의 그룹을 그룹 단위로, 즉, 그룹 방식으로 인코딩하도록 한 프로그램/코드 섹션이 구성된다. 그러므로, 매크로블록들의 그룹에 대한 매크로블록 인코딩 프로그램/코드 섹션은 매크로블록들의 현재 그룹을 인코딩한 후에 득점값을 결정하도록 구성된다. 상기 득점값이 미리 정의된 문턱값을 초과하면 매크로블록들의 다음 그룹을 인코딩하기 위한 양자화 파라미터를 조절하도록 한 프로그램/코드 섹션이 구성된다. 초과하지 않는다면, 현재 정당한 양자화 파라미터와 함께 매크로블록 인코딩을 계속하도록 한 프로그램/코드 섹션이 구성된다.
본 발명의 일 실시예에 따르면, 상기 득점값은 현재 프레임, 인코딩 시에 현재 매크로블록을 인코딩하기 위해 필요한 비트들의 개수를 예측하는 비트 예측 개수 및 매크로블록 인덱스에 대한 하나 이상의 가림(envelope)값들을 포함하는 그룹으로부터 적어도 하나를 기반으로 결정된다.
본 발명의 일 실시예에 따르면, 상기 비트 예측 개수는 현재 프레임의 이전 매크로블록들의 하나 이상 및/또는 하나 이상의 이전 프레임의 이전 매크로블록들의 하나 이상을 인코딩하기 위해 생성되는 비트들의 개수를 기반으로 결정된다.
본 발명의 일 실시예에 따르면, 비트 가림값들이 현재 프레임에 대해 결정하기 위한 프로그램/코드 섹션이 제공된다. 상기 비트 가림값들은 적어도 상한 및 하한을 포함하며, 버퍼 모델에 따라 결정되고 그리고 바람직하게는 비디오 비트 속도(rate), 현재 프레임의 목적 비트수 및 비디오 프레임 속도를 포함하는 그룹으로부터 적어도 하나의 값에 기반한다. 비트 예측 개수, 가림값들 및 비트 예측의 비신뢰성을 설명하는 미리 정의된 함수를 기반으로 상기 득점값을 결정하는 프로그램/코드 섹션이 제공된다. 상기 미리 정의된 함수는 상기 매크로블록 인덱스의 함수이며, 바람직하게는 룩업 테이블의 기저에 구현 가능한 포물선 함수이다.
본 발명의 일 실시예에 따르면, 상기 양자화 파라미터를 조절하는 프로그램/코드 섹션은 적어도 하나의 오프셋 값에 의해 상기 양자화 파라미터를 차감하는 프로그램/코드 섹션을 포함한다. 상기 적어도 하나의 오프셋 값은 바람직하게는 비트들의 가림값 및/또는 상기 결정된 비트 예측 개수에 의존한다.
본 발명의 일 실시예에 따르면, 상기 양자화 파라미터를 조절하는 프로그램/코드 섹션은 상기 점수값에 의존하여 상기 양자화 파라미터를 결정하도록 구성된다.
본 발명의 일 실시예에 따르면, 적어도 하나의 속도 제어 관련된 파라미터를 초기화시키는 프로그램/코드 섹션이 제공된다. 상기 적어도 하나의 속도 제어 관련된 파라미터는 비트 속도와 버퍼 크기로 이루어진 그룹으로부터 선택된다.
본 발명의 일 실시예에 따르면, 최근의 양자화 파라미터 조절이 발생했던 이후에 인코드된 복수의 매크로블록들을 결정하기 위한 프로그램/코드 섹션이 제공되다. 매크로블록의 개수가 미리 정의된 문턱값을 초과하는 경우에는 상기 양자화 파라미터 조절이 가능해진다.
본 발명의 일 실시예에 따르면, 필요하면, 갱신된 초기 양자화 파라미터를 현재 프레임을 위해 결정하고 인코딩 프로세스를 반복하는 프로그램/코드 섹션이 포함된다.
본 발명의 일 실시예에 따르면, 현재의 프레임이 P 프레임인지 또는 이상적인 데이터 표현 프레임인지를 결정하는 프로그램/코드 섹션이 더 제공된다.
본 발명의 일 실시예에 따르면, 상기 현재의 프레임이 P 프레임이면, 상기 비트 예측 개수는 하나 이상의 이전 프레임들의 비트 분포로부터 결정된다.
본 발명의 일 실시예에 따르면, 상기 현재의 프레임이 이상적인 데이터 표현 프레임이면, 상기 비트 예측 개수는 이전의 프레임에서 생성된 비트들의 개수로부터 결정된다.
본 발명의 일 실시예에 따르면, 상기 현재 프레임이 P 프레임이면, 상기 초기 양자화 파라미터는, 짧은 윈도우 및 긴 윈도우 양자화 파라미터들에 대한 값들을 계산하는 프로그램/코드 섹션; 상기 짧은 윈도우 및 긴 윈도우 양자화 파라미터들을 기반으로 상기 초기 양자화 파라미터를 계산하는 프로그램/코드 섹션; 및 프레임의 초기 양자화 파라미터에 대한 값을 잘라내는 프로그램/코드 섹션;에 의해 결정된다.
본 발명의 일 실시예에 따르면, 상기 현재 프레임이 이상적인 데이터 표현 프레임이면, 상기 초기 양자화 파라미터를 위한 프로그램/코드 섹션은 다음의 프로그램/코드 섹션의 하나 이상을 포함한다. 버퍼 모델에 따른 버퍼 가용성 검사가 성공적이면, 이전의 P 프레임의 양자화 파라미터를 초기 양자화 파라미터로서 채택하는 프로그램/코드 섹션이 제공된다. 상기 버퍼 가용성 검사가 실패하면, 하나 이상의 이전 프레임들에 대해 생성된 비트들의 개수로부터의 초기 양자화 파라미터와 하나 이상의 이전 프레임들을 인코딩하기 위해 사용된 양자화 파라미터들을 외삽하는(extrapolate) 프로그램/코드 섹션이 또한 제공된다. 상기 외삽이 신뢰성 있지 않다면, 하나 이상의 이전의 이상적인 데이터 표현 프레임들의 하나 이상의 양자화 파라미터들로부터 초기 양자화 파라미터를 결정하는 프로그램/코드 섹션이 마지막으로 제공된다.
본 발명의 네 번째 모습에 따르면, 속도 제어 모듈을 구비하여 실행 가능한 비디오 인코더가 제공된다. 비디오 인코더에 의해 포함되는 초기 프레임 QP 계산기는, 현재의 프레임을 인코딩하기 위한 양자화 파라미터로서 사용하기 위해 초기 양자화 파라미터를 결정하기 위해 구성된다. 상기 비디오 인코더는 현재 프레임 내의 매크로블록들의 그룹에 대한 매크로블록 인코딩하도록 또한 구성된다. 상기 비디오 인코더에 의해 포함된 QP 조절기는 현재 프레임의 매크로블록들의 현재 그룹이 인코딩된 후에 득점값을 결정하도록 구성된다. 상기 QP 조절기는 상기 득점값이 미리 정의된 문턱값을 초과하면 매크로블록들의 다음 그룹을 인코딩하기 위한 양자화 파라미터를 조절하고, 초과하지 않는다면, 현재 정당한 양자화 파라미터와 함께 매크로블록 인코딩을 계속하도록 적용된다.
본 발명의 일 실시예에 따르면, 상기 QP 조절기는 현재 프레임, 인코딩 시에 현재 매크로블록을 인코딩하기 위해 필요한 비트들의 개수를 예측하는 비트 예측 개수 및 매크로블록 인덱스에 대한 하나 이상의 가림(envelope)값들을 포함하는 그룹으로부터 적어도 하나를 기반으로 상기 득점값을 결정하도록 구성된다.
본 발명의 일 실시예에 따르면, 상기 비디오 인코더에 의해 포함되는 비트 예측기는 현재 프레임의 이전 매크로블록들의 하나 이상 및/또는 하나 이상의 이전 프레임의 이전 매크로블록들의 하나 이상을 인코딩하기 위해 생성되는 비트들의 개수를 기반으로 상기 비트 예측 개수를 결정하도록 구성된다.
본 발명의 일 실시예에 따르면, 상기 비디오 인코에에 의해 포함되는 비트 가림(envelope) 계산기는 현재 프레임의 비트 가림값들을 결정하도록 구성된다. 비트 가림값들은 적어도 상한 및 하한을 포함하며, 상기 가림값들은 버퍼 모델에 따라 결정되거나 그리고/또는 비디오 비트 속도(rate), 현재 프레임의 목적 비트수 및 비디오 프레임 속도를 포함하는 그룹으로부터 적어도 하나의 값에 기반한다. QP 조절기는 비트 예측 개수, 가림값들 및 비트 예측의 비신뢰성을 설명하는 미리 정의된 함수를 기반으로 상기 득점값을 결정하도록 구성되며, 상기 미리 정의된 함수는 상기 매크로블록 인덱스의 함수이다. 상기 미리 정의된 함수는 바람직하게는 룩업 테이블의 기저에 구현 가능한 포물선 함수이다.
본 발명의 일 실시예에 따르면, 상기 QP 조절기는 적어도 하나의 오프셋 값에 의해 상기 양자화 파라미터를 차감하도록 구성된다. 상기 적어도 하나의 오프셋 값은 비트들의 가림값 및/또는 상기 결정된 비트 예측 개수에 의존한다.
본 발명의 일 실시예에 따르면, 상기 QP 조절기는 상기 점수값에 의존하여 상기 양자화 파라미터를 조절하도록 구성된다.
본 발명의 일 실시예에 따르면, 적어도 하나의 속도 제어 관련된 파라미터가 제공되며, 상기 적어도 하나의 속도 제어 관련된 파라미터는 비트 속도와 버퍼 크기로 이루어진 그룹으로부터 선택된다.
본 발명의 일 실시예에 따르면, 상기 QP 조절기는 최근의 양자화 파라미터 조절이 발생했던 이후에 인코드된 복수의 매크로블록들을 결정하도록 구성된다. 매크로블록의 개수가 미리 정의된 문턱값을 초과하는 경우에는 상기 양자화 파라미터를 조절하는 것이 가능해진다.
본 발명의 일 실시예에 따르면, 상기 초기 프레임 QP 계산기는, 필요하면, 갱신된 초기 양자화 파라미터를 현재 프레임을 위해 결정하고 인코딩 프로세스를 반복하도록 구성된다.
본 발명의 일 실시예에 따르면, 현재의 프레임이 P 프레임인지 또는 이상적인 데이터 표현 프레임인지가 결정된다.
본 발명의 일 실시예에 따르면, 상기 현재의 프레임이 P 프레임이면, 상기 비트 예측기는 하나 이상의 이전 프레임들의 비트 분포로부터 상기 비트 예측 개수를 결정하도록 구성된다.
본 발명의 일 실시예에 따르면, 상기 현재의 프레임이 이상적인 데이터 표현 프레임이면, 상기 비트 예측기는 이전의 프레임에서 생성된 비트들의 개수로부터 상기 비트 예측 개수를 결정하도록 구성된다.
본 발명의 일 실시예에 따르면, 상기 현재 프레임이 P 프레임이면, 상기 초기 프레임 QP 계산기는, 짧은 윈도우 및 긴 윈도우 양자화 파라미터들에 대한 값들을 계산하고; 상기 짧은 윈도우 및 긴 윈도우 양자화 파라미터들을 기반으로 상기 초기 양자화 파라미터를 계산하고; 그리고/또는 프레임의 초기 양자화 파라미터에 대한 값을 잘라내도록 구성된다.
본 발명의 일 실시예에 따르면, 상기 현재 프레임이 이상적인 데이터 표현 프레임이면, 상기 초기 프레임 QP 계산기는 다음의 결정을 하도록 구성된다. 버퍼 모델에 따른 버퍼 가용성 검사가 성공적이면, 초기 프레임 QP 계산기는 이전의 P 프레임의 양자화 파라미터를 초기 양자화 파라미터로서 채택한다. 상기 버퍼 가용성 검사가 실패하면, 초기 프레임 QP 계산기는 하나 이상의 이전 프레임들에 대해 생성된 비트들의 개수로부터의 초기 양자화 파라미터와 하나 이상의 이전 프레임들을 인코딩하기 위해 사용된 양자화 파라미터들을 외삽(extrapolate)하도록 구성된다. 상기 외삽은 바람직하게는 하나 또는 그 이상의 파라미터들을 구비한 회귀(regression) 함수를 기반으로 계산된다. 상기 외삽이 신뢰성 있지 않다면, 초기 프레임 QP 계산기는 하나 이상의 이전의 이상적인 데이터 표현 프레임들의 하나 이상의 양자화 파라미터들로부터 초기 양자화 파라미터를 결정하도록 구성된다.
일반적으로, 본 발명은 대화형과 같은 작게 지연되는 응용에서 동작하도록 유리하게 구성된 속도 제어 방법에 관련된다. 그러므로, 본 발명의 일 실시예에 따른 속도 제어 방법은 빈틈이 없는 버퍼 규칙을 달성할 수 있으며, 이는, 프레임들이 변하는 인코딩 복잡도를 가지고 있더라도, 프레임들을 인코딩할 때에 대략 같은 수의 비트들이 생성된다는 것을 의미한다. 그러므로, 제안된 속도 제어기로부터 귀결되는 품질의 변이는 더 높은 버퍼 레벨에서 동작하는 VBR (variable bit rate) 계열의 속도 제어기들로부터 귀결되는 것보다 더 높을 것이다. 그러나 본 발명의 일 실시예에 따른 알고리즘의 복잡도는 메모리 및/또는 프로세싱 능력의 제한을 가진 기기에서의 구현을 가능하게 하는 낮은 레벨을 유지한다. 예를 들면, 매크로블록 레벨 속도 왜곡 모델을 이용하는 것은 증가된 복잡도의 대가를 지불하고 성능을 개선시킬 수 있을 것이다. 또한, 본 발명의 일 실시예에 따른 알고리즘은 매크로블록 레벨 또는 프레임 레벨의 어디에서도 룩 어헤드(look-ahead)를 실행하지 않는다. 그러므로, 매우 증가된 복잡도를 가지는 어떤 CBR(constant bit rate) 알고리즘은 증가된 성능을 가질 수 있을 것이다. 그럼에도 불구하고, 본 발명은 속도 제어 방법을 제공하며, 이는 인코딩과 재생산 및 계산의 복잡도 상에 만들어진 요구들 간의 균형을 고려한 해결책을 제시한다.
본 발명의 이와 같은 그리고 다른 목적들, 이점 및 특징들이 그 동작의 조직과 방법과 더불어서 첨부된 도면과 연결할 때 다음의 상세한 설명으로부터 명백하게 될 것이며, 도면에서 이하에서 설명되는 여러 가지 도면을 통해 동일한 요소들을 동일한 참조번호를 가진다. 본 발명의 바람직한 실시예가 다음의 도면을 참조하여 설명될 것이다.
도 1a는 본 발명의 일 실시예에 따른 일반적인 프로세싱 시스템을 개략적으로 도시한 블록도이다.
도 1b는 본 발명의 일 실시예에 따른 추가적인 프로세싱 시스템을 개략적으로 도시한 블록도이다.
도 2는 본 발명의 일 실시예에 따른 비디오 인코더의 요소를 대략적으로 도시한 것이다.
도 3은 본 발명의 일 실시예에 따른 비디오 인코더의 속도 제어기를 운영하는 동작 시퀀스를 도시한 흐름도이다.
도 4는 본 발명에 일 실시예에 따른 비디오 인코더의 속도 조절기의 요소를 대략적으로 도시한 것이다.
본 발명의 한 모습에 따른 특징과 이점이 도면과 동반하여 뒤따르는 상세한 설명으로부터 명백해질 것이다. 도면을 통해서 동일한 요소들은 동일한 참조 번호로 지시된다는 것을 유의해야 한다.
도 1a 및 1b를 참조하여, 본 발명의 일 실시예에 따른 프로세싱 시스템(100)의 구조적인 요소들이 개략적으로 도시된다.
도 1a의 블록도는 프로세싱 시스템(100)의 주요 구조적인 요소들을 나타내며, 이 프로세싱 시스템(100)은 본 발명에서 채택 가능한 어떤 종류의 프로세싱 시스템 또는 프로세싱 기기들을 예시적으로 나타낸다. 프로세싱 시스템(100)은 어떤 범용 컴퓨터 시스템을 나타낼 수도 있을 것이다. 본 발명은 어떤 특정된 시스템으로 제한되지 않는다는 것이 이해되어야 한다.
일반화된 실시예에서 도시된 프로세싱 시스템(100)은 메모리(120)에 연결된 프로세싱 유닛(CPU)(110)을 기반으로 한다. RAM(random access memory) 또는 ROM(read-only memory)을 포함하는 메모리는 문자열 데이터 및/또는, 프로세싱 시스템(100)과 동작 가능한 하나 또는 그 이상의 애플리케이션들을 위해 제공된다. 하나 또는 그 이상의 애플리케이션들은 그 프로세싱 시스템과 그의 추가적인 하드웨어 요소들(일부만 도시되었음)을 운영하기 위해 필요한 하나 또는 그 이상의 운영체제 시스템과 디바이스 드라이버는 물론이고 특히 그 프로세싱 시스템 상에서 실행되기 위한 사용자 애플리케이션 소프트웨어를 포함한다.
상기 프로세싱 시스템은, 예를 들면, 키보드, 키패드, 마우스, 디스플레이 및 하드 디스크 드라이브, 테입 드라이브, 플로피 디스크, 컴팩트 디스크 드라이브 및 DVD(digital versatile disk) 드라이브를 포함하여 그에 제한되지는 않는 저장 기기들을 포함하는 복수의 입출력 기기들(도시되지 않음)에 연결될 수 있다.
하나 또는 그 이상의 범용 입출력 (I/O) 인터페이스(180)는 상기 프로세싱 시스템에 의해 포함될 수 있으며, 이는, 바람직하게는 어떤 패킷 교환 데이터 통신 네트워크인 다른 데이터 통신 네트워크(170)를 경유한 데이터 통신을 가능하게 한다. 하나 또는 그 이상의 입출력 (I/O) 인터페이스(180)는 네트워크 인터페이스로 제한되는 것이 아니라 입출력(I/O) 인터페이스(180)는 데이터 교환을 위한 적절한 어떤 인터페이스도 포함할 수 있다는 것이 이해되어야 한다.
더 나아가, 프로세싱 시스템(100)은 비디오 인코더(200)를 포함하며, 이는 비디오 입력 신호를 수신하기 위한 범용의 비디오 소스(220)에 연결된다. 비디오 소스(200)는 비디오 카메라, 캠코더, 비디오 녹화기, (예를 들면, DVB-T/S/C (digital video broadcasting - terrestrial / satellite / cable) 신호들 및/또는 아날로그 TV 방송 신호들 (예를 들면 PAL (Phase Alternation Line) 부호화된 TV RF 신호들, NTSC (National Television System Committee) 부호화된 TV RF 신호들, 및/또는 SECAM (Systeme Electronique Couleur Avec Memoire) 부호화된 TV RF 신호들을 포함하는) 디지털 TV 방송 신호와 같은 무선 주파수 텔레비전 방송 신호를 수신할 수 있는 비디오 신호 수신기, 디지털 카메라, 스캐너 등을 포함하는 이미징 기기 및 아날로그 및/또는 디지털 비디오 녹화기를 포함할 수 있으며, 그것들로 제한되지는 않는다.
비디오 입력 소스(220)는 프로세싱 시스템(100)에 의해 포함된 비디오 인코더(220)로 인코드된 (디지털) 비트스트림을 생성하기 위해 비디오 인코더(220)로 비디오 입력 신호들을 제공한다. 마찬가지로, 비디오 영상들의 시퀀스들이 하나 또는 그 이상의 인코드된 (디지털) 비디오 비트스트림을 생성하는 비디오 인코 더(220)에 공급되는, 다른 저장 기기 또는 이미징 기기로부터 수신된다. 그 결과인 비디오 비트 스트림은 바람직하게는 어떤 입출력 인터페이스(180)를 경유하여, 인코드된 비디오 비트스트림으로부터의 비디오 시퀀스를 재생할 수 있는 기기 또는 시스템으로 전달된다.
프로세싱 시스템(100)의 더 상세한 실시예가 도 1b를 참조하여 설명될 것이며 비디오 인코더(200)의 일 실시예는 도 2를 참조하여 상세하게 설명될 것이다. 특히, 도 1b에 도시된 실시예는 상기에서 일반적으로 설명된 입출력 인터페이스들의 실시예들도 포함한다.
도 1b의 블록도는 휴대용 프로세싱 시스템(100)의 원칙적인 구조적 요소들을 도시하며, 이 휴대용 프로세싱 시스템은 본 발명에 채택될 수 있는 프로세싱 시스템 또는 기기의 어떤 종류라도 예시적으로 표현할 것이다. 본 발명은 도시된 휴대용 프로세싱 시스템(100)이나 다른 어떤 특정한 종류의 프로세싱 시스템 또는 기기에도 제한되지 않는다는 것이 이해되어야 한다.
도시된 프로세싱 시스템(100)은 셀룰러 통신이 가능한 휴대용 사용자 단말로서 예시적으로 수행된다. 특히, 프로세싱 시스템(100)은, CPU (central processing unit) 및 모바일 프로세싱 유닛(MPU)(110) 각각, 데이터 및 애플리케이션 저장(120), 무선 주파수 안테나 (윤곽 표시됨)를 구비한 셀룰러 무선 주파수 인터페이스 (I/F) (183) 셀룰러 통신 수단 및 가입자 식별 모듈 (SIM)(184)을 포함하는 셀룰러 통신 수단, 전형적인 오디오 입출력 (I/O) 수단 (140) (전형적으로 마이크 및 확성기), 키 입력 제어기(Ctrl)(130)를 포함하는 키, 키 패드 및/또는 키보드 및 디스플레이 제어기(Ctrl)(150)를 구비한 디스플레이, (근거리) 무선 데이터 인터페이스(I/F)(181) 및 범용 데이터 인터페이스(I/F)(182)를 포함하는 프로세서 기반의 또는 마이크로 제어기 기반의 시스템으로서 구체화된다. 더 나아가. 프로세싱 시스템(100)은, 하나 또는 그 이상의 비디오 코덱에 따라 압축된 디지털 비디오 시퀀스 (및 예를 들면 또한 디지털 영상)를 얻기 위해 비디오 입력 신호들을 인코딩/압축할 수 있으며 비디오 입력 신호를 제공하는 이미지 캡쳐 모듈(220)과 특히 동작 가능한, 비디오 인코더 모듈(200)을 포함하고, 그리고 압축된 디지털 비디오 시퀀스 (및 예를 들면 또한 디지털 영상)를 하나 또는 그 이상의 비디오 코덱에 따라서 인코딩하는 것이 가능한 비디오 디코더 모듈(210)을 포함한다.
프로세싱 시스템(100)은, 그 프로세싱 시스템(100)의 사용자들에게 그 시스템의 사용을 제공함으로써 프로세싱 시스템(100)의 기능, 특성 및 기능성을 제어하는, 운영 체재 또는 기본 제어 애플리케이션 상에서 전형적으로 중앙 프로세싱 유닛 (CPU)/ 모바일 프로세싱 유닛(MPU) (110)에 의해 제어된다. 디스플레이와 디스플레이 제어기(Ctrl)(150)는 프로세싱 유닛 (CPU/MPU)(110)에 의해 전형적으로 제어되며 사용자가 프로세싱 시스템(100)의 기능, 특성 및 기능성을 사용할 수 있게 하는 (그래픽) 사용자 인터페이스(UI)를 특별히 포함하는 정보를 사용자에게 제공한다. 키패드 및 키패드 제어기(Ctrl)(30)는 사용자에가 정보를 입력하는 것을 가능하게 하도록 제공된다. 그 정보는 전통적으로 키패드를 경유하여 키패드 제어기(Ctrl)에 의해 프로세싱 유닛(CPU/MPU)(110)으로 입력되며, 프로세싱 유닛(CPU/MPU)(110)은 입력 정보에 따라 명령을 받고 그리고/또는 제어될 수 있을 것 이다. 오디오 입출력 (I/O) 수단(140)은 오디오 신호를 재생하는 스피커 및 오디오 신호를 기록하는 마이크를 최소한 포함한다. 프로세싱 유닛(CPU/MPU)(110)은 오디오 데이터를 오디오 출력 신호로의 변환 및 오디오 입력 신호를 오디오 데이터로의 변환을 제어할 수 있으며, 그 경우 예를 들면 그 오디오 데이터는 전송 및 저장을 위해 적절한 형식을 가진다. 디지털 오디오 신호를 오디오 신호로의 오디오 신호 변환 및 그 반대 과정은 전통적으로, 예를 들면 디지털 신호 프로세서(DSP, 도시되지 않음)를 기반으로 구현되는 디지털에서 아날로그로 그리고 아날로그에서 디지털로의 변환 회로에 의해 지원된다.
도 1b에 도시된 특정한 실시예에 따른 프로세싱 시스템(100)은 무선 주파수 안테나(미도시)에 연결된 셀룰러 인터페이스(I/F)(183)를 포함하며 가입자 식별 모듈(SIM)(184)과 같이 동작할 수 있다. 셀룰러 인터페이스(I/F)(183)는 셀룰러 안테나로부터 신호를 수신하고, 그 신호를 디코드하며 그 신호들을 복조하며 또한 그 신호들을 기저 대역 주파수로 주파수 감소시키기 위해 셀룰러 트랜시버로서 구성된다. 셀룰러 인터페이스(I/F) (183)는, 가입자 식별 모듈(SIM)(184)과 결합하여 PLMN(public land mobile network)의 RAN(radio access network)의 대응 기지국(BS)과의 셀룰러 통신 기능을 공급하는, 공중 무선(over-the-air) 인터페이스를 제공한다.
그러므로 셀룰러 인터페이스(I/F)(183)의 출력은 프로세싱 유닛(CPU/MPU)(110)에 의한 추가적인 프로세싱을 필요로 하는 데이터의 스트림으로 구성된다. 셀룰러 트랜시버로서 구성된 셀룰러 인터페이스(I/F)(183)는 프로세싱 유닛(CPU/MPU)(110)으로부터의, 공중 무선 인터페이스를 경유하여 RAN(radio access network)의 기지국(BS)으로 전송되는, 데이터를 수신하도록 또한 적응된다. 그러므로, 셀룰러 인터페이스(I/F)(183)는 그 데이터를 인코드하고 변조하고 업 컨버트(up convert)하여, 공중 무선 전송을 위해 이용되는, 무선 주파수의 신호를 이루도록 한다. 그러면 프로세싱 시스템(100)의 안테나(도시되지 않음)는 그 결과인 무선 주파수 신호들을 PLMN(public land mobile network)의 RAN(radio access network)의 대응하는 기지국(BS)으로 전송한다. 셀룰러 인터페이스(I/F)(183)는 바람직하게는, GPRS (General Packet Radio Service) 및/또는 EDGE (Enhanced Data for GSM Evolution), UMTS (Universal Mobile Telecommunications System) 및/또는 셀룰러 전화통신 표준을 위한 어떤 유사한 또는 관련된 표준을 위해 가능해진 GSM (Global System for Mobile Communications)과 같은 2세대 디지털 셀룰러 네트워크를 지원한다.
무선 데이터 인터페이스(I/F)(181)는 예시적으로 도시된 것이며, 예시적인 프로세싱 시스템(100) 내에서 구현된 상기 설명된 셀룰러 인터페이스(I/F)(183)로서 또는 그에 추가하여 제공되는, 하나 또는 그 이상의 무선 네트워크 인터페이스들을 나타내는 것으로 이해되어야 한다. 수많은 무선 네트워크 통신 표준이 오늘날 이용 가능하다. 예를 들면, 프로세싱 시스템(100)은 IEEE 802.xx 표준, Wi-Fi 표준, Bluetooth 표준(1.0, 1.1, 1.2, 2.0 ER), (무선 개인 영역 네트워크(WPANs)를 위한) ZigBee , IRDA (infra-red Data Access ), 다른 현재 이용 가능한 표준 및/또는 UWB (Ultra-Wideband)와 같은 어떤 미래의 무선 데이터 통신 표준에 따라 동 작하는 하나 또는 그 이상의 무선 네트워크 인터페이스를 포함할 수 있을 것이다.
더 나아가, 범용 데이터 인터페이스(I/F)(182)는 예시적으로 도시된 것이며 예시적인 프로세싱 시스템(100) 내에서 구현된 특정 네트워크 인터페이스를 특히 포함하는 하나 또는 그 이상의 데이터 인터페이스로서 이해되어야 한다. 그런 네트워크 인터페이스는 Ethernet LAN (Local Area Network), PSTN (Public Switched Telephone Network), DSL (Digital Subscriber Line), 및/또는 다른 현재 이용 가능한 그리고 미래의 표준과 같은 유선 기반의 네트워크들을 지원할 수 있을 것이다. 범용 데이터 인터페이스 (I/F)(182)는 독점적인 직렬/병령 인터페이스, USB(universal serial bus) 인터페이스, (IEEE 1394/1394a/1394b 등의 표준에 따른) 파이어와이어 인터페이스, ATAPI (Advanced Technology Attachment Packet Interface)를 따르는 버스, MMC (MultiMediaCard) 인터페이스, SD (SecureData) 카드 인터페이스, 플레이 카드 인터페이스 등을 포함하는 어떤 데이터 인터페이스도 포함하는 어떤 데이터 인터페이스를 나타낼 수도 있을 것이다.
도 1b에 도시된 요소들과 모듈들은 프로세싱 시스템(100) 내에서 별도의, 개별적인 모듈들 또는 그들 간의 어떤 조합으로서 통합될 수 있을 것이다. 바람직하게는, 프로세싱 시스템(100) 내의 하나 또는 그 이상의 요소들과 모듈들은 SoC(system of a chip)을 구성하는 프로세싱 유닛(CPU/MPU)과 함께 통합될 수 있을 것이다. SoC는 디지털, 아날로그, 혼합된 신호 그리고, 또한 무선 주파수 기능들을 포함할 수 있을 것이다. 전형적인 응용은 크기와 전력 소모 제한에 특히 압박을 받는 내장형 시스템 및 휴대용 시스템의 영역에 있다. 그런 전형적인 SoC는 상이한 작업들을 실행하는 수많은 집적된 회로로 구성된다. 이들은 하나 또는 그 이상의 마이크로프로세서 (CPU/MPU), 메모리 (RAM: random access memory, ROM: read-only memory), 하나 또는 그 이상의 UARTs (universal asynchronous receiver-transmitter), 하나 또는 그 이상의 직렬/병렬/네트워크 포트들, DMA (direct memory access) 제어기 칩, GPU (graphic processing unit), DSP (digital signal processor) 등을 포함할 수 있을 것이다. 반도체 기술에서의 최근의 개선은 VLSI (Very-Large-Scale Integration) 집적 회로들이 복잡성의 면에서 성장하도록 하여, 단일의 칩 내에 모든 요소들을 통합하는 것을 가능하게 한다.
비디오 인코더는 비디오 입력 신호를 수신하고 그 신호의 디지털 비디오 시퀀스를 인코드하며, 그 결과는 저장되고, 어떤 데이터 통신 인터페이스를 경유하여 전송되며 그리고/또는 비디오 디코더(210)에 의해 재생될 수 있다. 비디오 인코더(200)는 어떤 비디오 코덱과 함께 동작할 수 있다. 비디오 입력 신호는 프로세싱 시스템(100)의 이미지 캡쳐 모듈(221)에 의해 제공될 수 있을 것이다. 이미지 캡쳐 모듈(221)은 구현되거나 또는 프로세싱 시스템(100)에 분리되어 연결될 수 있을 것이다. 비디오 인코더(200)의 예시적인 구현은 도 2를 참조하여 이하에서 설명될 것이다.
이미지 캡쳐 모듈(221)은 바람직하게는 이미지 기록을 위한 센서이다. 그런 이미지 캡쳐 모듈(221)은 전형적으로 링크된 또는 연결된 캐패시터의 열을 포함하는 집적 회로(IC)로 구성된다. 외부의 회로 제어 하에, 각 캐패시터는 자신의 전기적인 전하를 자신에게 이웃한 이웃이나 다른 것에게 전달한다. 링크된 또는 연결된 캐패시터들의 열을 포함하는 그런 집적 회로는 CCD (charge-coupled device) 기술 분야의 통상의 지식을 가진 당업자에게는 잘 알려진 것이다. 다른 이미지 캡쳐 기술들도 역시 사용될 수 있을 것이다.
비디오 인코더(210)는 디지털적으로 인코드/압축된 비디오 비트스트림/시퀀스를 수신하도록 적응되며, 그 비디오 비트스트림/시퀀스는 바람직하게는 셀룰러 인터페이스(183), 무선 인터페이스(I/F)(181), 패킷 기반의 데이터 통신 네트워크를 통한 프로세싱 시스템(100)의 어떤 다른 데이터 인터페이스를 경유해서 또는 프로세싱 시스템(100)에 연결된 데이터 저장소로부터 수신되는 복수의 비디오 데이터 패킷들로 분할된다. 비디오 디코더(210)는 어떤 비디오 코덱들과 같이 동작 가능하다. 비디오 데이터 패킷들은 상기 비디오 디코더에 의해 디코드되고 바람직하게는 디스플레이 제어기와 디스플레이(150)를 경유해서 프로세싱 시스템(100)의 사용자에게로 출력되어 디스플레이 된다. 비디오 디코더(210)의 기능과 구현에 대한 상세한 것들은 본 발명의 범위를 벗어나는 것이다.
휴대용 프로세싱 시스템들 또는 기기들의 전형적인 대안은 PDA (personal digital assistant), 휴대용 컴퓨터, 노트북, 소위 스마트 폰(하나 또는 그 이상의 정교하고 복잡한 애플리케이션들을 실행하는 것을 허용하는 개선된 계산 및 저장 능력을 갖춘 셀룰러 전화기)이며, 이 기기들은 패킷 교환 데이터 네트워크를 경유하여 전형적으로 데이터 통신을 가능하게 하는 하나 또는 그 이상의 네트워크 인터페이스들을 장착한다. 멀티미디어 콘텐츠를 인코딩하는 것을 포함하는 멀티미디어 콘텐츠 처리를 할 수 있는 그와 같은 전형적인 마이크로-프로세서 기반의 기기들을 구현하는 것은 본 기술 분야에서는 잘 알려진 것이다.
본 기술 분야에서의 당업자는 본 발명이 본 발명의 발명을 나타내는 개념을 실행할 수 있는, 프로세싱이 가능한 기기의 단지 하나만을 나타내는, 어떤 특정의 휴대용 프로세싱 가능 기기로 한정되는 것이 아니라는 것을 알 것이다. 그 발명의 개념이 상기에 설명된 것과 같은 휴대용 기기, 개인용 컴퓨터 (PC), 소비자 전자 (CE) 기기, 서버 등을 포함하는 어떤 프로세싱 가능 기기 상에서 구현될 수 있는 비디오 인코더(200)의 유리한 구현에 관련이 있다는 것이 이해되어야 한다.
도 2는 본 발명에 따른 비디오 인코더의 기본적인 블록도를 개략적으로 도시한 것이다. 도 2에 도시된 비디오 인코더는 H.264 표준에 따른 비디오 인코딩에 사용되는 것과 같은 시간적 그리고 공간적인 비디오 인코딩을 채택하는 복합 디코더를 도시한다. 본 발명은 어떤 특정한 비디오 인코딩 표준이나 코덱으로 한정되는 것이 아니라는 것에 주목해야 한다. 본 기술 분야의 통상의 지식을 가진 자는 본 발명의 일 실시예에 따른 개념이 MPEG x 및 X.26x 표준을 포함하는 어떤 다른 비디오 인코딩에 적합하지만 그런 표준으로 한정되는 것은 아니라는 것을 인식할 것이다. MPEG x라고 하는 것은 특히 MPEG 1, MPEG 2, MPEG 4 및 그것들의 어떤 특정한 모습과 레벨들과 어떤 미래에 개발될 것들을 포함하는 것으로 이해되어야 한다. H.26x라는 것은 특히 H.261, H.234, H.264 과 어떤 미래에 개발될 것을 포함하는 것으로 이해되어야 한다.
비디오 시퀀스의 첫 번째 프레임 또는 랜덤 액세스 포인트는 그 첫 번째 프레임 내에 포함된 것 외에 어떤 다른 정보를 사용하지 않고 보통 코드화된다. 이런 유형의 코딩은 "인트라(Intra)" 코딩이라고 나타내지며, 즉, 그 첫 번째 프레임은 전형적으로 "인트라" 코드화된 것이다. 그 비디오 시퀀스의 나머지 영상들 또는 그 비디오 시퀀스의 랜덤 액세스 포인트들 간의 영상들은 "인터(Inter)" 코딩을 사용하여 전형적으로 코드화된다. "인터" 코딩은 다른 이전에 디코드된 영상들로부터의 예측(특히 동작 보상 예측)을 채택한다. "인터" 예측 또는 동작 예측을 위한 인코딩 프로세스는 동작 데이터를 선택하고, 참조 영상을 포함시키며, 그리고 블록의 모든 샘플들에 적용되는 공간적인 변위를 기반으로 한다. 측면 정보로서 전송된 동작 데이터는 인코더 및 디코더에 의해 사용되어 "인터" 예측 신호를 동시에 제공하게 한다. 비디오 인코더(200)는, 비디오 디코더(210)와 같은 비디오 디코더에 의해 재생될 때에 높은 이미지 품질을 유지하면서, 바람직하게는 이미지 코딩 효율을 최대화시키기 위해 예측된 이미지 프레임들 (즉, P 프레임들 및/또는 B 프레임들을 포함하는 "인터" 프레임들) 사이에 끼어 들어 혼합된 참조 이미지 프레임들(즉, "인트라" 또는 I-프레임들) 의 열을 생성한다.
"인터" 인코딩 모드를 참조하면, 버퍼(310)로부터 현재의 프레임 수신기를 취하고, 비디오 인코더는, 차이 (difference) 프레임을 계산하기 위해, 인트라 프레임 예측 유닛(423) 또는 동작 보상 유닛(424)의 어느 하나에 의해 제공되는 참조 프레임 내에서 최선의 블록을 선택하며, 그 차이 프레임에는 변환기, 크기 조절기 및 양자화기에 의해 실행되는 변환, 크기 조절 및 양자화의 처리가 가해진다. 이런 유닛들은 통합된 변환, 크기 조절 및 양자화 유닛(410)으로서 제한하지 않는 방식으로 개략적으로 도시된다. 그러면, 그 결과인 양자화된 변환 계수들은 엔트로피 코딩 유닛(440)에 의해 엔트로피 코드화되어 압축된 비디오 비트스트림의 결과가 되며, 이는 결국에는 출력되기 위해 버퍼(320) 내에 임시로 저장된다. 다른 말로 하면, 원래의 블록과 예측된 블록 간의 차이인, ("인터" 또는 "인트라") 예측의 나머지는 변환되고 크기 조절되고 양자화되여 엔트로피 코드화된다. 이제 완전히 인코드된 비디오 비트 스트림은 메모리로 전달되어 필요한 미디어에 기록되거나 또는 하나 또는 그 이상의 원하는 수신기로 전송된다.
엔트로피 코딩 프로세스는 압축 프로세스를 나타내며, 이는 더 짧은 코드 단어들을 더 높은 발생 확률을 가진 심볼들에 할당하고 더 긴 코드 단어들은 더 낮은 발생 확률들을 가진 심볼들에 할당한다. 다른 엔트로피 인코딩 메카니즘을 비디오 인코딩과 함께 적용할 수 있다. 예를 들어 H.264 비디오 인코딩 표준을 참조하면, CAVLC (Context Adaptive Variable Length Coding )이 사용되고, 그리고, 예를 들어 주요 프로파일(Main profile) 방송 콘텐츠를 참조하면, 더욱 더 효과적인 CABAC (Context Adaptive Binary Arithmetic Coding)이 사용된다. 원칙적으로, 각 블록을 위해서 사용되는 가변 길이 코딩(VLD) 룩업 테이블을 선택하기 위해 엔트로피 인코딩 기술들이 발생의 빈도수와 이웃한 블록들에서의 0 아닌 계수들의 크기의 이점을 가진다.
예측된 "인트라" 프레임들은 양자화 작업(여기에서 양자화된 변환 계수는 변환, 크기 조절 및 양자화 유닛(410)에 의해 출력된다)의 결과를 취함으로써 그리고 탈양자화 (de-quantization), (재) 크기 조절 및 역변환을 적용함으로써 재구성된다. 그 결과인 재구성된 또는 재현된 프레임은 "인트라" 프레임 예측 유닛(423), 비 블로킹(de-blocking) 필터(421) 및/또는 추가의 (특정의) 프로세싱 유닛(도시되지 않음)에 인가된다.
변환 및 역변환 작업은 일반적으로는 전단사적인(bijective) 변환 알고리즘을 기반으로 하며, 그 알고리즘은 특히 4x4 샘플/픽셀 서브 블록들에 대한 H.264 비디오 인코딩 표준 그리고 16x16 샘플/픽셀 서브 블록들에 대한 MPEG x 비디오 인코딩 표준과 함께 동작하는 이산 코사인 변환(DCT)과 함께 동작 가능한 정밀 또는 분리 가능한 정수 변환을 포함한다. 이산 코사인 변환 (DCT)은 라운딩(rounding)을 필요로 하고 라운딩 오차를 내포하며, 이는 특히 역 이산 코사인 변환(DCT)에 대하여 고려할 수 있다. 정밀 또는 분리 가능한 정수 변환은 정수 계산 때문에 정확한 역변환을 가능하게 한다.
적용된 변화 알고리즘으로부터의 결과인 변환 계수는, 다른 비디오 인코딩 표준들, 특히 MPEG x 비디오 인코딩 표준에서의 일정한 증가 및 더 작은 스텝 크기들이라기 보다는 차라리, 예를 들면 H.264 비디오 인코딩 표준을 참조하여 미리 결정된 속도로 증가되는 52개의 상이한 스텝 크기들의 하나를 전형적으로 구비하는 스칼라 양자화 알고리즘을 사용하여 양자화 된다. 다시 H.264 비디오 인코딩 표준의 예를 참조하면, 서브 블록 내의 양자화 변환 계수들은 그 서브 블록들 내의 휘도 및 색차(chrominance) 공간적인 값들의 상이한 주파수들에 대응하며, 그 서브 블록에 대한 휘도 또는 색차의 평균 DC 값을 나타내는 상단 왼쪽 구석 내의 계수와 함께 시작한다. 0이 아닌 것을 나타내는 남아있는 계수들, 휘도 및 색차의 상승하는 주파수 값들은 지그재그 방식으로 전형적으로 배열된다.
"인트라" 예측은 주어진 비디오 이미지 프레임 내의 공간적인 예측을 사용하는 것을 기반으로 한다. 초기에, 비디오 이미지 프레임은 매크로블록이라고 불리는 더 작은 많은 블록들로 분할된다. 전형적인 16x16 샘플/픽셀 매크로블록들은 휘도 (Y) 및 색차 성분들 (Cb, Cr)로 샘플링된다.
하나의 I-프레임 (인트라 영상 참조 프레임)에 대해, 영상 내의 공간적인 여분들만이 다른 프레임들과의 시간적인 관계를 참조하지 않고 인코드 된다. 이는 인코드된 I-프레임들이 크기에 있어서 전형적으로 크고, 다른 (P 그리고 B "인터" 예측적인) 프레임들을 인코딩하기 위해 참조로서 사용되기에 적합하다는 것을 의미한다. 휘도 및 색차를 인트라-예측 코딩하는 것은 관심있는 영역의 매크로블록들을 예측하기 위해 (전형적으로는 위와 왼쪽에) 인접한 블록들의 값을 사용한다. 그러면 예측된 블록과 실제의 블록 간의 차이가 인코드되며, 각 인코드된 매크로블록을 나타내기 위해 남아있는 비트는 거의 없는 결과를 초래한다. 예를 들면, H.264 비디오 인코딩 표준은 4x4 픽셀 휘도 블록을 예측하는 9개의 모드, 하나의 DC 예측 모드 및 8개의 방향 모드를 지원한다.
인터-예측은 비디오 시퀀스들 내의 연속적인 프레임들 간의 시간적인 잉여(redundancy)들을 이용하기 위해 동작 추정 및 동작 보상을 기반으로 한다. 동작 보상 유닛(430)과 함께 실시 가능한 동작 보상은 사분의 일 픽셀 정밀도 또는 이분의 일 픽셀 정밀도와 같은 미리 정해진 정밀도를 가진 동작 벡터들로 귀결되고, 그 동작 벡터들을 기반으로, 동작 보상 유닛(424)과 함께 실시 가능한 동작 보상은 예를 들면 16 x 16, 16 x 8, 8 x 8, 8 x 4, 4 x 8, 그리고 4 x 4 샘플/픽셀을 포함하 는 매크로블록들의 블록 크기들에 대한 동작 보상을 제공할 수 있다.
사용되는 비디오 인코딩 표준에 따라, 인터 영상 인코딩은, 하나 또는 그 이상의 참조 ("인터") P-프레임이 이전에 인코드된 프레임들에 참조되며, 특히 시퀀스의 처음에서의 ("인트라") I-프레임에 그렇다는 것에, 기반할 수 있다. 하나의 ("인터") B-프레임은 이전에 인코드된 프레임과 미래의 프레임들에 참조된다.
동작 보상 루프 내에서의 비 블로킹 필터(421)는 품질 면에서 개선된 원래 영상의 재생을 생성하기 위해 블록과 서브 블록 가장자리를 따라서 있는 수직 및 수평의 가공물을 줄이도록 실행 가능하다.
동작 보상 루프
비디오 인코더(200)에 의해 인코드되어 그 결과인 비디오 출력 비트 스트림으로 출력되는 비디오 입력 신호는 비디오 인코더로 공급되기 전에 전 처리(pre-processed) 유닛(300)에 의해 사전 처리될 수 있을 것이다. 전형적으로, 비디오 입력 신호는 프레임 방식 또는 영상 방식으로 비디오 인코더 입력으로 공급되며, 이때에 비디오 시퀀스의 한 영상은 하나의 프레임 또는 필드가 될 수 있다. 이전에서 언급된 것과 같이, 각 영상은 각각이 미리 정의된 고정된 크기를 가지는 매크로블록들로 분할된다. 각 매크로블록은 그 영상의 직사각형의 영역을 커버한다. 바람직하게는, 전형적인 매크로블록들은 휘도 성분으로 16x16 샘플/픽셀의 영역을 가지며 두 색차 성분들의 각각은 8x8 샘플/픽셀의 영역을 가진다.
전형적인 비디오 코딩 기술들은 표현을 위해 YCbCr 색 공간을 사용하며, 이 때에 Y는 휘도 성분이고, Cb는 청색 차이 성분 또는 첫 번째 색차 성분이며 그리고 Cr은 적색 차이 성분 또는 두 번째 색차 성분이다. HVS(Human Visual System)으로의 연구는 인간의 눈은 휘도의 변화에 대해서 가장 민감하고, 색차에서의 변화에 대해서는 덜 민감하다는 것을 보여주었다. 그러므로, YCbCr 색 공간을 사용하는 것은 인간 눈의 이재학(chrematistics)을 고려하는 바람직한 방법을 나타낸다. 필요하다면, 전처리 유닛(300)은 RGB (red, green, blue 성분) 색 공간으로부터의 비디오 입력 신호를 YCbCr 색 공간으로 변환하는 것을 허용한다.
일반적으로, 비디오 인코더(200)와 같은 비디오 인코더들을 위한 속도 조절 메카니즘은 결과로 되는 비트 스트림의 목적 비트 속도를 얻기 위해 인코더 파라미터들을 동적으로 조절하는 것을 허용한다. 속도 조절 메카니즘은 영상들의 각 그룹, 개별 프레임 및/또는 비디오 시퀀스 내의 서브 프레임에 한 묶음의 비트들을 할당한다. MPEG x 및 H.264 비디오 인코딩 표준들에 따르는 비디오 인코딩 방법들과 같이 블록 기반의 혼합 비디오 인코딩 방법들은 원래 손실이 많은 비디오 인코딩 메카니즘이다. 압축은 비트 스트림들로부터 진짜 잉여 정보를 삭제해서 것만이 아니라 최소한으로 인식할 수 있도록 의도된 방법으로 품질을 줄이는 타협을 통해서 달성된다.
특히, 양자화 파라미터 QP가 인코드된 프레임들 내의 공간적인 상세한 것을 조절하기 위해 제공된다. 양자화 파라미터 QP가 매우 작을 때에, 그 상세한 것 모두의 대부분은 보유된다. 양자화 파라미터 QP가 증가됨에 따라, 그 상세한 것의 몇몇은 주합되어(aggregated) 왜곡에 있어서의 일부 증가에서 그리고 재생에 있어서의 품질의 일부 손실에서 비트 레이트는 떨어진다. 이것은 비디오 인코더(200)와 같은 비디오 인코더 출력 비트 스트림의 증가하는 비트 속도에 따라 비디오 비트 스트림의 재생의 품질은 증가하고 재생의 관찰자에 의해 인지되는 왜곡은 줄어든다는 것을 의미한다.
간단한 접근 방법이 두 가지 주요 입력, 즉, 압축되지 않은 비디오 입력 신호 및 양자화 파라미터 QP에 대한 (미리 정의된) 값을 제공할 수 있을 것이다. 소스 비디오 입력 신호에 대한 처리가 진행되면, 재생에 있어서의 아주 일정한 품질의 압축된 비디오가 얻어질 수 있으나, 비트 속도는 극적으로 변하게 될 수 있을 것이다. 프레임의 복잡도는 실제의 비디오 입력 신호에 있어서 계속적으로 변하기 때문에, 양자화 파라미터 QP의 어떤 값이 특정되어야 하는가는 명확하지 않다.
실제로, 디코더 버퍼 크기에 의해 그리고 비디오가 더 거의 일정한 목적 비트 속도에서 인코드되도록 압박하는 네트워크 대역폭에 의해 부과되는 강제가 있다. 이것은 양자화 파라미터 QP가, 전형적으로 비디오 입력 신호인, 소스 신호의 복잡도의 결정 또는 추정에 기반하여 동적으로 변해야 한다는 것을 의미한다. 이것은 각 프레임 또는 영상들의 그룹(GDP)이 적절한 비트 할당을 얻는 것을 의미한다. 양자화 파라미터 QP를 입력으로서 지정하는 것 보다는, 요청된 비트 속도가 그 대신에 지정되어야 한다. 즉, 폐쇄 루프 속도 제어가 유리하다. 영상의 그룹(GOP) 개념은 MPEG 및 H.264 표준들을 포함하는 전형적인 비디오 인코딩 표준들로부터 물려받은 것이며 다음의 I-영상/프레임까지 모든 P 및 B-영상/프레임이 뒤따르는 I-영상/프레임에 관련된다는 것을 유의해야 한다. 예를 들면, 전형적인 MPEG GOP 구조는 IBBPBBPBBI 일 수 있을 것이다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 속도 제어 메카니즘이 도시된다. 더 상세하게, 도 3은 본 발명의 일 실시예에 따른 속도 제어 메카니즘의 동작시퀀스를 도시한 흐름도를 보여준다.
그 동작 시퀀스는 다음 원칙의 동작들로 나누어질 수 있다:
초기 프레임 양자화 파라미터 QP 계산;
그 프레임에 대한 비트-가림 계산; 및
매크로블록 그룹을 인코딩한 후에 양자화 파라미터 QP 조절.
우선, 원칙적인 동작들이 본 발명의 일 실시예를 참조하여 설명될 것이다.
초기 프레임 양자화 파라미터 QP 계산
("인트라") IDR-프레임들(이상적인 데이터 표시 프레임)의 속도 왜곡(RD) 특성이 ("인터") P 및 B-프레임들의 속도 왜곡 특성와 매우 다르기 때문에, 그런 유형의 프레임들에 대한 초기 QP를 계산하기 위해 상이한 방법들이 채택된다. 본 발명의 기술분야의 당업자는 IDR-프레임은 디코딩 과정에서 "리셋"을 일으키는 I (또는 SI) 슬라이스 유형들을 구비한 슬라이스들만을 포함하는 코드화된 프레임을 언급한다는 것을 이해할 것이다. IDR-프레임을 디코딩한 후에 디코딩 순서에서의 모든 코드화된 영상들은 IDR-프레임 이전에 디코드된 어떤 영상으로부터의 인터 예측없이도 디코드될 수 있다. 상기에서 정의된 I-프레임은 그런 IDR-프레임이다. 전형적으로, 엔트로피 인코더는, 매크로블록들의 정수의 매크로블록 데이터를 포함하는 비트 스트링인 슬라이스들을 출력하고 그리고 슬라이스 내의 첫 번째 매크로블록, 초기 양자화 파라미터 및 유사한 것의 공간적인 주소를 포함하는 슬라이스 헤더의 정보를 출력한다.
인터 프레임들에 대한 초기 프레임 양자화 파라미터 계산
("인터") P 및 B-프레임들에 대한 초기 프레임 양자화 파라미터 QP 계산을 참조하여, 그 프레임의 비트들의 목적 개수는 다음의 식을 이용해서 계산된다.
Figure 112008007039562-PCT00001
이때에, R target (i)는 i번째 프레임의 목적 개수이다;
R video 는 비디오 비트 속도이다;
f 는 비디오 시퀀스의 프레임 속도이다;
Δ error 는 i번째 프레임을 코딩할 때까지 사용되는 비트들의 개수와 이전의 모든 프레임들이 R video /f 의 이상적인 속도로 코드화되었다면 사용되었을 비트들의 개수 간의 차이이다;
W 는 비트 조절 윈도우 길이이다; 그리고
num _ frames I는 비디오 프레임들의 총 개수이다.
프레임에 대한 비트들의 목적 개수가 수학식 1에 의해 계산된 후에, 다음의 2차 방정식으로부터의 짧은 윈도우 양자화 파라미터 QP SW 와 긴 윈도우 양자화 파라미터 QP LW 인 두 개의 양자화 파라미터들이 얻어질 수 있다.
Figure 112008007039562-PCT00002
Figure 112008007039562-PCT00003
이때에
R tex (i-1) 는 이전의 프레임을 코딩하는데 사용된 텍스쳐 비트들의 개수이다;
R header (i-1) 는 이전의 프레밍을 코딩하는데 사용된 헤더 비트들의 개수이다;
SW _ size 는 짧은 윈도우 속도 왜곡 모델의 크기이다;
LW _ size 는 긴 윈도우 속도 왜곡 모델의 크기이다;
MAD avg (x) 는 윈도우 크기에 걸쳐서 계산된 이전 프레임의 대표 평균 차이(mean average difference; MAD)의 평균값이다; 그리고
(a 1 , SW , a 2 , SW ) and (a 1 , LW , a 2 , LW ): 는 각각 짧은 윈도우와 긴 윈도우의 속도 왜곡 모델 파라미터이다.
예시적인 구현을 위해, 짧은 윈도우 양자화 파라미터 QP SW 및 긴 윈도우 양자화 파라미터 QP LW 에서의 변경은 2와 같도록 제한될 수 있을 것이며, QP SW 는 매 프레임마다 갱신되는 반면, QP LW 는 매 5개 프레임들마다 계산될 수 있을 것이다.
다음에 버퍼 가득참(fullness) 비율
Figure 112008007039562-PCT00004
는 다음과 같이 정의된다.
Figure 112008007039562-PCT00005
이때에,
B fullness (i) 은 프레임 i를 코딩하는 시각에서 버퍼를 차지하는 용량이다;
B size 는 버퍼의 크기이다; 그리고
n 은 프레임 I를 인코딩하기 전에 발생된 건너뛴 연속적인 프레임의 개수이다.
버퍼 가득참 비율
Figure 112008007039562-PCT00006
과 두 양자화 파라미터 QP SW QP LW 를 사용하고, ("인터") P 또는 B-프레임에 대한 초기 양자화 파라미터 QP가 다음의 구분적-선형(piecewise-linear) 함수를 사용하여 계산될 수 있다.
Figure 112008007039562-PCT00007
수학식 4는 버퍼 가득참 비율
Figure 112008007039562-PCT00008
에 따른 동작의 특정한 세가지 영역을 정의한다. 이 영역들은 버퍼 가득참 비율
Figure 112008007039562-PCT00009
< 0.05 이고 0.95 ≤
Figure 112008007039562-PCT00010
인 매우 임계적인 영역, 0.05 ≤
Figure 112008007039562-PCT00011
< 0.35 그리고 0.65 ≤
Figure 112008007039562-PCT00012
< 0.95 인 버퍼 가득참 비율에 대해 덜 임계적인 영역 그리고 0.35 ≤
Figure 112008007039562-PCT00013
< 0.65 인 임계적이지 않은 영역이다.
가득참 비율에 대해 임계적이지 않은 영역(0.35 ≤
Figure 112008007039562-PCT00014
< 0.65 인 경우)에 대해, P 또는 B-프레임에 대한 초기 양자화 파라미터 QP는 버퍼 가득참이 원하는 레벨일 때 일정한 품질의 비디오를 뒷받침하는 양자화 파라미터 QP LW 와 동일하다.
매우 임계적인 영역들(버퍼 가득참 비율
Figure 112008007039562-PCT00015
< 0.05 이고 0.95 ≤
Figure 112008007039562-PCT00016
)에 대해, P 또는 B- 프레임에 대한 초기 양자화 파라미터 QP는 버퍼 오버플로우와 언더플로우를 피하기 위해 버퍼 가득참에 따라 이전의 프레임의 평균 양자화 파라미터 QP로부터 파괴적으로 변경된다.
나머지 영역 (특히 버퍼 가득참 비율이 0.05 ≤
Figure 112008007039562-PCT00017
< 0.35 그리고 0.65 ≤
Figure 112008007039562-PCT00018
< 0.95일 때)에 대해, 양자화 파라미터 QP는 다음의 수학식 5를 사용하여 계산된다.
Figure 112008007039562-PCT00019
The QP weighted 는 양자화 파라미터들 QP SW QP LW 의 가중치 적용된 평균이다. 양자화 파라미터들 QP SW QP LW 의 대응하는 가중치는 버퍼 가득참 비율
Figure 112008007039562-PCT00020
에 의존한다. 버퍼가 닫혀서 오버 플로우 또는 언더플로우가 되면, 양자화 파라미터 QP SW 는 일정한 비트 속도 비디오를 지원하는 더 큰 가중치를 가지게 되고, 그 반면 양자화 파라미터 QP LW 는 버퍼 가득참 비율
Figure 112008007039562-PCT00021
이 일정한 품질 비디오를 지원하는 임계가 아닐 때에 더 큰 가중치를 가질 것이다.
지연이 작은 애플리케이션에 대하여, 속도 제어기가 버퍼 오버플로우 때문에 프레임을 건너뛰도록 반응하는 것이 유리하며, 그러므로 프레임 i를 인코딩하기 전에 발생된 연속적인 프레임 건너뜀들의 개수에 따라 QP weighted (i) 가 더 조절된다.
인트라 프레임들에 대해 초기 프레임 양자화 파라미터 QP 를 계산
IDR-프레임이 비디오 시퀀스에서 첫 번째 프레임이면, 그 알고리즘은 예를 들면, 사용자에 의해 또는 미리 정의되어 제공되는 초기 양자화 파라미터 QP를 사용한다. 초기 양자화 파라미터 QP가 제공되지 않으면, 알고리즘은 ISO/IEC (International Organization for Standardization / International Electrotechnical Commission) MPEG & ITU-T (Telecommunication Standardization Sector of the International Telecommunication Union)의 JVT (Joint Video Team)의 문서 JVT-H014 "Adaptive Rate Control with HRD Consideration"에 개시된 것과 동일한 방법을 사용하여 주어진 (미리 정의된) 비트 속도에서 초기 양자화 파라미터 QP를 추정한다; 그 문서는 여기에서 참조로서 병합되어야 한다.
결과인 비트들의 개수가 오버플로우가 되면, 첫 번째 ("인트라") IDR-프레임은 더 큰 양자화 파라미터 QP를 사용하여 다시 인코드될 수 있을 것이다.
다음의 IDR-프레임에 대해, 버퍼 가용성이 검사된다. i 번째 IDR-프레임에 대해 버퍼 내에서 이용 가능한 비트들의 개수 B avail (i)는 다음과 같이 주어진다.
Figure 112008007039562-PCT00022
비트들의 개수 B avail (i) 가 미리 정의된 문턱값보다 더 크면, 양자화 파라미터 QP는 이전의 ("인터") P 또는 B-프레임의 양자화 파라미터 QP를 이용하여 계산된다. 그렇지 않으면, 다음의 식이 ("인트라") IDR-프레임들에 대한 양자화 파라미터 QP를 계산하는 것으로 가정된다.
Figure 112008007039562-PCT00023
이때에, N bits , IDR 은 ("인트라") IDR-프레임에 대해 생성된 비트들의 개수이며; 그리고
QP IDR 는 ("인트라") IDR 영상에 대해 사용된 양자화 파라미터 QP이다.
지나간 L 개의 IDR-프레임들을 인코딩한 결과는 두 어레이, 즉 ("인트라") IDR-프레임들 N bits , IDR 에 대해 생성된 최근 L 개의 비트들을 포함하는 첫 번째 어레이 N bits , IDR [...] 및 ("인트라") IDR 영상 QP IDR 에 대해 사용된 최근 L 개의 양자화 파라미터 QP를 포함하는 두 번째 어레이 QP IDR [...] 내에서 보관된다. 이전의 인코딩 결과를 사용하여 모델 파라미터 a, b는 선형 회귀로부터 얻어질 수 있다. a가 0 보다 더 큰 것으로 밝혀지면,
N bits , IDR [...] 어레이 및 QP IDR [...] 어레이 내의 마지막 샘플들은 제거되고 선형 회귀가 다시 실행된다. 그러면, 상기에서 설명된 그 모델이 양자화 파라미터 QP를 계산하는데 신뢰될 수 있는가의 여부가 검사된다. 그 모델은 다음과 같은 경우에 신뢰할 수 있다.
L > 2; 그리고
N bits , IDR , min < B avail < N bits , IDR , max .
이때에, N bits , IDR , min N bits , IDR , max 는 각각 N bits , IDR [...] 어레이 내의 최대 및 최소 요소이다.
모델이 신뢰할 수 있는 경우, QP IDR (i) 가 수학식 6을 사용하고 그리고 다음의 두 식을 사용하여 생략되어서 계산된다.
Figure 112008007039562-PCT00024
; 그리고,
Figure 112008007039562-PCT00025
QP IDR (i-1)는 마지막 IDR-프레임의 양자화 파라미터 QP이다.
L 이 2보다 더 작기 때문에 그 모델이 신뢰성이 있지 않을 경우에는, QP IDR (i)는 다음의 방법으로 계산된다.
Figure 112008007039562-PCT00026
그 모델이 다른 이유로 인해 신뢰성이 없는 경우에는, QP IDR (i)는 다음과 같이 계산된다.
Figure 112008007039562-PCT00027
이때에,
Figure 112008007039562-PCT00028
,
Figure 112008007039562-PCT00029
이다.
비트 가림 계산 ( Bit - envelope Calculation )
비트 가림(bit-envelope)은 upper _ limit, lower _ limit, 그리고 centerBit 를 포함하는 세 변수들로 구성된다. 변수 upper _ limit, lower _ limit 는 각각 허용된 비트들의 최대 및 최소 개수를 정의하며, 변수 centerBit 는 프레임에 대한 원하는 비트들의 개수를 정의한다.
고품질 ("인트라" IDR-프레임을 가지는 것은 비디오 시퀀스의 전반적인 품질을 증가시킨다는 것이 발견되었다. 그러므로, 많은 수의 비트들이 바람직하게 ("인트라") IDR-프레임을 위해 할당된다. IDR-프레임 i에 대한 upper _ limit 변수의 값은 다음과 같이 발견된다.
Figure 112008007039562-PCT00030
이때에, 변수 upper _ limit(i) 에서
Figure 112008007039562-PCT00031
를 넘는 것과
Figure 112008007039562-PCT00032
의 아래는 잘리며, I_P_ RATIO는 미리 정의된 상수 값이다. 이는, 다음의 식으로 나타내는 것을 의미한다.
Figure 112008007039562-PCT00033
그리고
Figure 112008007039562-PCT00034
.
("인트라") IDR-프레임에 대한 변수 lower _ limit 의 값은
Figure 112008007039562-PCT00035
upper_limit 에서 빼서 얻어지며; 그래서, IDR-프레임에 대한 변수 의 값은 다음 과 같이 발견된다.
Figure 112008007039562-PCT00036
변수 centerBit 는 ("인트라") IDR-프레임들에 대해서는 사용되지 않는다는 것을 유의해야 한다.
("인터") P 또는 B-프레임들에 대해, 다음의 식들이 비트 가림을 계산하기 위해 사용된다.
Figure 112008007039562-PCT00037
[수학식 7-1]
Figure 112008007039562-PCT00038
[수학식 7-2]
이때에, K 와 J 는 미리 정의된 상수 값들이며 그들의 값은 바람직하게는 경험적으로 찾아진다.
마지막으로, 변수 upper _ limit(i), lower _ limit(i), 및 centerBit(i) 은 프레임에 대해 생성된 비트들의 개수가 비트 가림 범위 내에 떨어지는 경우에 버퍼 오버 플로우 또는 언더 플로우가 발생하지 않는 것을 확실하게 하기 위해 버퍼 가득참 B fullness 에 따라서 더 잘려진다.
매크로블록 ( MB ) - 레벨 양자화 파라미터 QP 제어
지연이 작은 애플케이션들에 대해, 프레임 레벨의 속도 제어는 버퍼를 엄격 하게 제어하기에는 충분한 제어를 제공하지 않으며, 그러므로 MB-레벨의 제어가 필요하다. 이 알고리즘에 두 가지 주요한 부분들이 도입된다. 첫 번째 부분은 프레임에 대해 생성될 비트들의 수를 예측하는 소위 비트-예측기(Bit-Predictor)이다. 두 번째 부분은 양자화 파라미터 QP가 변경되어야 하는가의 여부와 이어지는 매크로블록들(MBs)에 대한 양자화 파라미터 QP의 새로운 값이 무엇이 되어야 하는가를 결정하는 소위 QP-조절기(QP-Adjuster)이다.
비트 예측기 ( Bit - Predictor )
비트 예측기의 목표는 프레임을 인코딩하는 것이 완료되기 전에 프레임 (프레임 i)에 대해 생성될 비트들의 개수를 예측하는 것이다. mbcurr 는 현재 인코드되고 있는 매크로블록 개수를 언급하는 것이고, mblast 는 양자화 파라미터 QP의 마지막 조절이 발생한 매크로블록 개수를 언급하는 것이며, 는 한 프레임 내의 매크로블록들의 총 개수이다. 이전의 프레임이 ("인터") P 또는 B-프레임이면, 예측을 위해 이전 프레임의 비트 분포를 이용할 수 있다. N([mb last - mb addr ], i-1)의 표기가 mblast 부터 mbaddr 까지의 매크로블록 위치에서 프레임 i-1 내에서 생성된 비트들의 개수를 나타내는 것이라고 가정하면, 그 표기는 다음의 식과 같이 써질 수 있다.
Figure 112008007039562-PCT00039
번호 mb curr 의 매크로블록을 인코딩하는 시각에서의 현재의 프레임에 대한 예측은 N pred (i, mb curr )로 나타내지며 다음과 같이 주어진다.
Figure 112008007039562-PCT00040
이전의 프레임이 ("인트라") IDR-프레임이거나 또는 N([0 - mb addr ], i-1)이 0 과 같은 경우, 그러면 이전의 프레임에서 생성된 비트들 예측으로서 사용된다.
양자화 파라미터 QP -조절기
QP-조절기의 목적은 프레임에 대해서 생성된 비트들을 그 비트 가림 내에서 유지하기 위하여 매크로블록 레벨에서 양자화 파라미터 QP를 조절하는 것이다. 양자화 파라미터 QP를 크게 갱신하기 않기 위해 그리고 비트 스트림 내의 많은 비트들이 갱신된 양자화 파라미터 QP에 신호하지 않도록, 조절 주파수는 UpdateThreshold 변수를 사용하여 제한된다. UpdateThreshold 변수는 현재의 매크로블록 개수 mb curr 에 좌우된다. 현재의 매크로블록 개수와 최근 매크로블록 개수 간의 차이(mb curr - mb last )가 UpdateThreshold 보다 크면, 몇 가지 파라미터들에 기반한 점수 또는 점수 값이 계산된다.
점수 QP score 는 다음의 식을 이용하여 계산된다.
Figure 112008007039562-PCT00041
이때에, δ 는 (미리 정의된) 상수값이고, f(mb curr ) 는 시작하는 매크로블록들에서의 비트 예측의 불신뢰를 설명하는 함수이다.
함수 f(mb curr )는 룩업 테이블을 사용하여 구현되며, 그 값들은 다음과 같이 주어진다.
Figure 112008007039562-PCT00042
계산된 점수가 미리 정의된 문턱값보다 크면, 새로운 양자화 파라미터 QP가 계산되어 다음의 매크로블록을 위해 사용된다. 그 점수가 미리 정의된 문턱값보다 작은 것으로 나타나면 양자화 파라미터 QP는 변경되지 않고 남는다.
다음의 매크로블록들에 대한 양자화 파라미터 QP에 대해, 갱신된 양자화 파라미터 QP updated 는 다음의 식을 이용해서 계산된다.
Figure 112008007039562-PCT00043
이때에, Δ1, Δ2, Δ3, and Δ4 는 (미리 정의된) 상수 값이고, 그 값들은 (Δ1, Δ2, Δ3, Δ4 ) =(2, 1, 1, 2)일 수 있으나, 그들의 값들은 그에 한정되지 않는다는 것이 이해되어야 한다. 특히, 다른 애플리케이션 시나리오들은 더 나은 결과를 얻기 위해 다른 값들을 필요로 할 수 있을 것이다. 대안으로, 갱산된 양자화 파라미터 QP updated 는 상기에서 정의된 점수 QP score 를 기반으로 또는 그 점수에 의존하여 계산될 수 있을 것이다.
본 발명은 본 발명의 상기에 제시된 실시예로 한정되지 않으며, 이는 예시를 위해서 단지 하나의 구현을 나타낸 것이다. 특히, 수학식 1에서 비트 조절 윈도우 길이 W는 W=1로 선택될 수도 있을 것이지만, 그 값으로 본 발명이 제한되는 것은 아니다. 더 나아가, ("인터") P 또는 B-프레임들에 대한 초기 양자화 파라미터는 상기에서 상세하게 제시된 것과 다른 방법을 사용하여 계산될 수 있다. 수학식 6을 참조하면, 다른 모델이 ("인트라") IDR-프레임들에 대해 사용될 수 있을 것이다. 수학식 7-1과 수학식 7-2에 관하여, 미리 정의된 상수들 K와 J는 각각 K=2, J=3로 할당될 수 있을 것이지만, 그 값으로 제한되지는 않는다. 그럼에도 불구하고 미리 정의된 상수 K 및 J 의 값은 상이한 값들을 가질 수 있을 것이다. 그리고, 본 발명의 실시예는 상기에서 설명된 비트-예측기의 구현으로 제한되는 것이 아니라 제시된 실시예들과 상이한 방법으로 구현될 수 있다. 본 기술 분야의 통상의 지식을 가진 자들은 또한 두 개의 양자화 파라미터 QP가 얻어질 수 있는 것이며, 즉, 짧은 윈도우 양자화 파라미터 QP SW 와 긴 윈도우 양자화 파라미터 QP LW 는 특정한 한도 또 는 상기에서 설명된 계산의 구간으로 제한되는 것이 아니라는 것을 또한 인식할 것이다. 특히, QP LW 를 계산하는 구간은 다를 수 있다. 수학식 8을 참조하면, 점수 QP score 는 제시된 모델 외에 다른 모델을 사용하여 계산될 수 있으며, 그 제시된 모델은 설명의 방법을 위한 하나의 실시예를 나타냈을 뿐이다. 더 나아가, 시작하는 매크로블록들에서 비트 예측의 비신뢰성을 설명하는 함수인, 함수 f(mb curr )는 상기에서 제시된 룩업 테이블로 한정되는 것이 아니라는 것으로 이해되어야 한다. 예를 들면, 함수 f(mb curr )는 룩업 테이블을 기반으로 하여 구현된 포물선 함수이다.
이제. 본 발명의 일 실시예에 따라 동작하는 시퀀스를 기반으로 하는 전반적인 비트 속도 제어 동작이 도 3을 참조하여 설명될 것이다.
S100 동작에서, 비디오 입력 신호를 인코딩하고 비디오 입력 신호를 인코딩한 것으로부터의 결과인 출력 비트 스트림의 비트 속도를 제어하는 것이 시작한다.
S110 동작에서, 속도 제어에 필요한 속도 제어 파라미터들이 초기화된다. 초기화를 필요로 하는 속도 제어 파라미터들은, 비디오 비트 속도 R video , 프레임 속도 f, 조절 윈도우 길이 W, 짧은 윈도우 속도 왜곡 모델의 윈도우 크기 SW _ size, 긴 윈도우 속도 왜곡 모델의 윈도우 크기 LW _ size, QP LW 갱신 반복 속도, 속도 왜곡 모델 파라미터들 (a 1 , SW , a 2 , SW ) and (a 1 , LW , a 2 , LW ), (초기) 버퍼 가득참 B fullness , 버퍼 크기 B size , ("인터") P 또는 B-프레임들에 대한 비트-가림 계산을 위한 상수들 KJ, 비트 예측의 비신뢰성을 설명하는 f(mbcurr)를 위한 룩업 테이블을 포함하는 파 라미터들의 그룹으로부터 적어도 하나를 특별히 포함하지만, 그에 제한되지는 않는다.
다음의 동작 S120에서, 초기 양자화 파라미터 QP가 계산된다. 일 실시예는 ("인터") P 또는 B-프레임들에 대한 초기 프레임 양자화 파라미터 QP를 계산하는 것을 허용하고 ("인트라") IDR-프레임을 위한 초기 프레임 양자화 파라미터 QP는 상기에서 상세하게 각각 설명되었다.
초기 프레임 양자화 파라미터 QP를 공급하면, 현재 프레임의 인코딩이 S130 동자에서 시작된다. 그 프레임의 매크로블록들의 첫 번째 그룹이 S150에서 인코드되고 S160에서는 하나 또는 그 이상의 추가의 매크로블록들의 그룹이 그 프레임 내에 존재하는가의 여부가 검사된다. 최소 하나 이상의 매크로블록의 그룹이 있는 경우, 양자화 파라미터 QP는 S140 동작에서 다음의 매크로블록들의 그룹을 위해 조절된다. 양자화 파라미터 QP를 조절하는 것은 설명의 한 방법으로 일 실시예를 기반으로 하여 상기에서 상세하게 설명되었다.
매크로블록의 마지막 그룹이 인코드된 경우에, 동작하는 시퀀스는 S170의 동작으로 계속되며, 그 곳에서 현재 인코드된 프레임이 다시 인코딩할 것을 요청하는가의 여부가 검사된다. 재 인코딩은 양자화 파라미터 QP를 조절하는 것이 성공적이지 않고 결과인 인코드된 비디오 스트림의 비트 속도가 수용할 수 없는 경우, 예를 들면 결과인 비트 레이트가 문턱값 위이거나 문턱값보다 낮은 경우에 요청된다. 재 인코딩이 요청되는 경우, 동작하는 시퀀스는 S180 동작에서 갱신된 초기 프레임 양자화 파라미터 QP를 계산하는 것과 같이 계속하며 S130의 동작으로 돌아가서, 현재 프레임의 인코딩이 다시 시작된다.
그렇지 않으면, 즉, 프레임에 대한 인코딩이 성공적인 경우에, 비디오 인코딩이 성공했는가의 여부가 최종적으로 검사된다. 마지막 프레임이 인코드된 경우에, 비디오 입력 신호의 인코딩과 출력 비트 스트림의 비트 속도를 제어하는 것이 S200의 동작에서 종료한다. 인코딩할 수 있는 프레임들이 여전히 있는 경우에는, 그 동작하는 시퀀스는 S110의 동작으로 돌아가서, 연속되는 다음의 프레임과 함께 처리과정을 반복한다.
도 4를 참조하면, 본 발명의 일 실시예에 따른 상기에 설명된 동작 시퀀스를 실행하기 위해 구성된 속도 제어기의 요소들을 도시한 블록도가 제시된다.
속도 제어기는 초기 양자화 파라미터 QP 계산기(510), 비트 가림 계산기(530), 비트 예측기(520) 및 QP-조절기(540)를 포함한다.
QP-초기화기 또는 초기 양자화 파라미터 QP 계산기(510)는 초기 양자화 파라미터 QP를 제공하기 위해 구성된다. 양자화 파라미터 QP는 비디오 시퀀스의 인코딩이 시작하면 초기화되어야 한다. 양자화 파라미터 QP의 초기 값은 바람직하게는 수동의 입력에 의해 제공될 수 있을 것이며, 추정과 계산 각각을 기반으로 제공될 수도 있을 것이다. 추정 또는 계산은 요청된 비트 속도 또는 인코드된 비트 스트림의 원하는 목적 비트 속도, 비트 스트림에 의해 운반된 인코드된 비디오 시퀀스의 프레임 속도 및 버퍼 모델을 포함하는 하나 이상의 파라미터들 및/또는 제한들의 최소 하나 이상을 포함하는 미리 정의된 하나 또는 그 이상의 파라미터들 및 제한들에 근거하여 얻어질 수 있다.
어떤 전형적인 쉽게 제어되는 비디오 디코더에는 비디오 시퀀스의 들어오는 데이터의 속도와 도착 시각에서의 변이를 균형잡는 것을 가능하게 하는 버퍼 저장소가 장착된다. 그러므로, 그 비디오 인코더는 디코더의 제한을 만족시키는 비디오 비트스트림을, 특히 그 제한이 버퍼 저장소에 관한 것인 경우에, 인코드 해야만 한다. 소위 가상 버퍼 모델은 비디오 디코더 버퍼 저장소의 가득참(fullness)을 예측하기 위해 적용할 수 있다. 가상 버퍼의 가득참에서의 변화는 일반적으로, 비트 스트림에 요구되는 비트 속도보다 더 작은 속도의, 비디오 시퀀스의 비트 스트림으로 인코드되는 전체 비트들 간의 차이이다. 원칙적으로, 버퍼의 가득참은 밑으로는, 0과 같은 용량의, 최소 버퍼 용량으로 그리고 위로는 최대 버퍼 용량에 의해 제한된다. 속도 제어 메카니즘은 버퍼 용량과 초기 버퍼 가득참을 위한, 그 비디오 디코더와 조화되는, 적절한 값으로 제공되어야 한다.
본 발명의 일 실시예에 따른, "인터"-프레임들 및 "인트라"-프레임들을 위한 상이한 초기 QP 계산 메카니즘이 상기에서 예를 들어 설명되었다.
"인터"-프레임을 위한 초기 QP 계산 메카니즘은, 짧은 윈도우 속도 왜곡 모델에 따라 결정된 (짧은 윈도우) 양자화 파라미터 QP SW 그리고 긴 윈도우 속도 왜곡모델에 따라 그리고 가상 버퍼 모델에 따라 결정되는 버퍼 가득참 비율
Figure 112008007039562-PCT00044
에 의존하여 결정되는 (긴 윈도우) 양자화 파라미터 QP LW 를 포함하는 두 가지의 양자화 파라미터들을 기반으로 초기 양자화 파라미터 QP initial 를 얻기에 적합하다. 짧은 윈도 우와 긴 윈도우 각각의 정의는, 각각의 짧은 그리고 긴 양자화 파라미터 QP SW , QP LW 를 계산하기 위한 특정한 (미리 정의된) 반복 구간에 각각 관련된다. 더 상세하게는, 초기 양자화 파라미터 QP initial 는, 이전의 많은 프레임들 그리고 미리 정의된 (양 또는 음인) 양자화 파라미터 오프셋, 짧은 그리고 긴 윈도우 양자화 파라미터들 QP SW , QP LW 의 가중치 부여된 평균 또는 긴 양자화 파라미터 QP LW 의 어느 하나로부터 얻을 수 있다.
버퍼 가득참 비율
Figure 112008007039562-PCT00045
은 현재의 프레임을 인코딩하는 시각에서의 버퍼를 차지함, 버퍼 크기, 비디오 비트 속도, 프레임 비트 속도 및 현재의 프레임을 인코딩하기 전에 발생된 연속적인 프레임 건너뜀의 개수를 포함하는 그룹으로부터의 적어도 하나의 파라미터에 대한 함수이다.
"인트라"-프레임을 위한 초기 QP 계산 메카니즘은 선형적인 회귀 및 미리 정의된 상수들을 기반으로 하여 초기 양자화 파라미터 QP IDR 을 얻기에 적합하다. 선형 회귀는 L 개의 비트들 N bits , IDR [...] 로부터 계산되며, 그 비트들은 마지막 L 개의 영상/프레임 및 이 마지막 L 개의 영상/프레임을 인코딩 하기 위해 정의되는 L 개의 양자화 파라미터들 QP IDR [...] 인코딩하기 위해 생성된다.
선형 회귀가 적합하지 않은 경우, 양자화 파라미터 QP IDR 는 최소값, 최대값 또는 하나 또는 그 이상의 미리 정의된 오프셋 값들(예를 들면, -1, ±0 그리고 +1)에 의한 하나 또는 그 이상의 마지막 양자화 파라미터 QP IDR 오프셋으로부터 얻어질 수 있다. 최소 및/또는 최대값들은 미리 정의된 값(들)일 수 있으며, 또는 이전의 많은 영상/프레임을 인코딩하기 위해 정의된 양자화 파라미터 QP IDR [...]를 선택하는 것으로부터 결정될 수 있을 것이다.
본 발명의 일 실시예에 따라, 상기에서 예를 들어 설명된 비트 가림 계산은 비트 가림 계산기(530)를 구비하여 실시 가능하다. 비트 가림 계산기(530)는 코드화될 프레임을 위한 비트 가림(envelope) 값들을 결정하도록 구성된다. 가림 값들은 최소한 상한 (upper _ limit) 및 하한 (lower _ limit)을 포함하며, 이는 비디오 인코딩에 의해 생성되도록 허용된 비트들의 최대 및 최소 개수를 정의한다. 추가로 중앙 (center) 값 (centerBit)은 비디오 인코등에 의해 얻어지는 프레임에 대한 비트의 원하는 개수를 정의한다. 일반적으로, 비트 가림 계산은 디코딩 동안에 디코더 내에서 이용 가능한 비트들을 개수를 가장하는(simulate) 버퍼 모델을 기반으로 하지만, 그에게로 제한되지는 않는다. 추가로, 비디오 비트 속도 (R video ), 목적 비디오 비트 속도 (R target ) 및/또는 비디오 프레임(f)이 고려될 수 있을 것이다.
본 발명의 일 실시예에 따르면, 상기에서 예를 들어 설명된 비트-예측은 비트 예측기(520)를 구비하여 실시 가능하다. 비트 예측기(520)는 프레임을 인코딩하는 것이 완료되기 전에 프레임과 그의 매크로블록들에 대해 생성될 비트들의 개수(N pred )를 예측하도록 구성된다. 그러므로, 비트 예측기는, 현재 프레임의 하나 또 는 그 이상의 이전 매크로블록들을 위해, 하나 또는 그 이상의 이전 프레임들을 위해 그리고/또는 이전 프레임들의 하나 또는 그 이상의 매크로블록들을 위해 생성된, 비트들의 개수를 기반으로 프레임 그리고 그의 매크로블록들에 대해 생성될 비트들의 개수를 예측하도록 적응된다. 일반적으로, ("인터") P 또는 B-프레임들에 대해. 현재 및 이전의 프레임들의 비트 분포로부터 비트들의 개수에 대한 예측이 얻어진다. ("인트라") IDR-프레임들에 대해, 이전의 프레임에서 생성되었던 비트들의 개수가 사용된다.
본 발명의 일 실시예에 따르면, 상기에서 예를 들어 설명된 QP-조절은 QP-조절기(540)를 구비하여 실시 가능하다. QP 조절기(540)는 매크로블록 레벨에서 양자화 파라미터 QP를 조절하도록 구성된다. 조절 이전에, 조절 과정의 발생을 원하는 속도로 제한하기 위해 조절 주파수에 관련된 갱신 문턱값이 검사된다. 비트 가림 값들 및 프레임과 그의 매크로블록들에 대한 예측된 비트들의 개수에 의존하는 점수 값을 기반으로, 현재 사용되는 양자화 파라미터 QP를 갱신하는가 혹은 아닌가에 대한 것이 결정된다. 그 점수 값이 미리 정의된 문턱값을 초과하는 경우에, 현재 사용되는 양자화 파라미터 QP가 조절된다. 그 조절은 바람직하게는 하나 또는 그 이상의 오프셋 값들을 기반으로 실행되며, 그 오프셋 값들은 가림 값들 (upper_limit, lower _ limit, centerBit) 및 예측된 비트들의 개수(N pred )에 의존하는 미리 정의된 값들을 갖는다. 예를 들면, 그 오프셋 값들은 가림 값들 (upper_limit, lower _ limit, centerBit) 및 예측된 비트들의 개수(N pred ) 간의 관계 에 의존하여 2, 1, -1 그리고 -2가 될 수 있을 것이다.
본 발명은 동작들의 일반적인 문맥으로 설명되었으며, 그 동작들은 코드 섹션 및 프로그램 코드와 같은 컴퓨터로 실행 가능한 명령어들을 포함하여 네트워크 환경에서 컴퓨터들에 의해 실행되는 프로그램 생성물에 의한 실시예로 구현될 수 있을 것이다. 일반적으로, 프로그램 모듈들은 특정한 태스크를 실행하거나 또는 특정한 추상적인 데이터 유형을 구현하는 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조 등을 포함한다. 데이터 구조와 연관되어 컴퓨터로 실행 가능한 명령어들 및 프로그램 모듈들은 여기에서 개시된 방법들의 동작을 실행시키기 위한 프로그램 코드의 예를 나타낸다. 그런 실행 가능한 명령어들의 특정 시퀀스 또는 연관된 데이터 구조들은 그런 단계들에서 설명된 기능들을 구현하기 위해 상응하는 행동들의 예를 나타낸다.
본 발명의 소프트웨어적인 구현은 다양한 데이터베이스 검색 동작, 상관 연산, 비교 연산 및 결정 연산을 달성하기 위한 로직 및 다른 로직에 기반한 규칙을 구비한 표준의 프로그래밍 기술들과 함께 달성될 수 있다. 명세서 및 청구항들에서 사용된 "컴포넌트" 및 "모듈"의 단어들은 소프트웨어 코드 및/또는 하드웨어 구현 및/또는 수동 입력을 수신하기 위한 장비의 줄들의 하나 또는 그 이상을 사용하여 구현하는 것을 망라하도록 의도된 것에도 유의해야 한다.
본 발명의 일 실시예에 대한 전술한 설명은 예시와 설명의 목적으로 제시된 것이다. 그것은 총망라하거나 본 발명을 개시된 정밀한 모습으로 한정하려는 의도가 아니며, 수정과 변형을 하는 것이 상기에서의 교시를 참조하여 가능하며, 본 발 명을 실행하는 것으로부터 얻어질 수도 있을 것이다. 실시예들은 본 발명의 원칙을 설명하고 그것의 실제적인 응용이 본 기술분야의 통상의 지식을 가진 자가 본 발명을 다양한 실시예에서 그리고 숙고하여 특정한 용도에 맞도록 다양한 변형을 하여 이용하는 것을 가능하게 하기 위해 선택되고 묘사된 것이다. 본 발명의 사상과 범위로부터 벗어나지 않는 모든 그와 같은 변경, 변형, 개조 및 다른 사용들과 응용은 본 발명에 의해 커버되는 것으로 간주된다.

Claims (56)

  1. 비디오 인코더에 대한 속도 제어 방법으로서,
    각 프레임에 대해 프레임 인코딩 프로세스를 실행하는 단계;를 포함하며,
    상기 프레임 인코딩 프로세스를 실행하는 단계는,
    현재의 프레임을 인코딩하기 위한 양자화 파라미터로서 사용하기 위해 초기 양자화 파라미터를 결정하는 단계; 및
    현재 프레임 내의 매크로블록들의 그룹을 인코딩하는 단계;를 포함하며,
    매크로블록들의 그룹에 대한 상기 매크로블록 인코딩 프로세스는,
    매크로블록들의 현재 그룹을 인코딩한 후에 득점값을 결정하는 단계;
    상기 득점값이 미리 정의된 문턱값을 초과하면 매크로블록들의 다음 그룹을 인코딩하기 위한 양자화 파라미터를 조절하는 단계; 및
    초과하지 않는다면, 현재 정당한 양자화 파라미터와 함께 매크로블록 인코딩을 계속하는 단계;를 포함하는, 비디오 인코더 속도 제어 방법.
  2. 제 1항에 있어서,
    상기 득점값은 현재 프레임, 인코딩 시에 현재 매크로블록을 인코딩하기 위해 필요한 비트들의 개수를 예측하는 비트 예측 개수 및 매크로블록 인덱스에 대한 하나 이상의 가림(envelope)값들을 포함하는 그룹으로부터 적어도 하나를 기반으로 결정되는, 비디오 인코더 속도 제어 방법.
  3. 제1항에 있어서,
    상기 비트 예측 개수는 현재 프레임의 이전 매크로블록들의 하나 이상 및/또는 하나 이상의 이전 프레임의 이전 매크로블록들의 하나 이상을 인코딩하기 위해 생성되는 비트들의 개수를 기반으로 결정되는, 비디오 인코더 속도 제어 방법.
  4. 제2항에 있어서,
    현재 프레임의 비트 가림값들을 결정하는 단계로서, 비트 가림값들은 적어도 상한 및 하한을 포함하며, 상기 가림값들은 버퍼 모델에 따라 결정되거나 그리고/또는 비디오 비트 속도(rate), 현재 프레임의 목적 비트수 및 비디오 프레임 속도를 포함하는 그룹으로부터 적어도 하나의 값에 기반하는, 비트 가림값 결정 단계; 및
    비트 예측 개수, 가림값들 및 비트 예측의 비신뢰성을 설명하는 미리 정의된 함수를 기반으로 상기 득점값을 결정하는 단계로서,
    상기 미리 정의된 함수는 상기 매크로블록 인덱스의 함수이며, 상기 미리 정의된 함수는 바람직하게는 룩업 테이블의 기저에 구현 가능한 포물선 함수인, 득점값 결정 단계;를 포함하는, 비디오 인코더 속도 제어 방법.
  5. 제1항에 있어서,
    상기 양자화 파라미터를 조절하는 단계는 적어도 하나의 오프셋 값에 의해 상기 양자화 파라미터를 차감하는 것을 포함하며, 상기 적어도 하나의 오프셋 값은 비트들의 가림값 및/또는 상기 결정된 비트 예측 개수에 의존하는, 비디오 인코더 속도 제어 방법.
  6. 제1항에 있어서,
    상기 양자화 파라미터를 조절하는 단계는 상기 점수값에 의존하여 실행되는, 비디오 인코더 속도 제어 방법.
  7. 제1항에 있어서,
    적어도 하나의 속도 제어 관련된 파라미터를 초기화시키는 단계;를 포함하며, 상기 적어도 하나의 속도 제어 관련된 파라미터는 비트 속도와 버퍼 크기로 이루어진 그룹으로부터 선택되는, 비디오 인코더 속도 제어 방법.
  8. 제1항에 있어서,
    최근의 양자화 파라미터 조절이 발생했던 이후에 인코드된 복수의 매크로블록들을 결정하는 단계; 및
    매크로블록의 개수가 미리 정의된 문턱값을 초과하는 경우에는 상기 양자화 파라미터를 조절하는 것을 허용하는 단계;를 포함하는, 비디오 인코더 속도 제어 방법.
  9. 제1항에 있어서,
    필요하면, 갱신된 초기 양자화 파라미터를 현재 프레임을 위해 결정하고 인코딩 프로세스를 반복하는 것을 포함하는, 비디오 인코더 속도 제어 방법.
  10. 제1항에 있어서,
    현재의 프레임이 P 프레임인지 또는 이상적인 데이터 표현 프레임인지를 결정하는 단계를 더 포함하는, 비디오 인코더 속도 제어 방법.
  11. 제10항에 있어서,
    상기 현재의 프레임이 P 프레임이면, 상기 비트 예측 개수는 하나 이상의 이전 프레임들의 비트 분포로부터 결정되는, 비디오 인코더 속도 제어 방법.
  12. 제10항에 있어서,
    상기 현재의 프레임이 이상적인 데이터 표현 프레임이면, 상기 비트 예측 개수는 이전의 프레임에서 생성된 비트들의 개수로부터 결정되는, 비디오 인코더 속도 제어 방법.
  13. 제10항에 있어서,
    상기 현재 프레임이 P 프레임이면, 상기 초기 양자화 파라미터는,
    짧은 윈도우 및 긴 윈도우 양자화 파라미터들에 대한 값들을 계산하고;
    상기 짧은 윈도우 및 긴 윈도우 양자화 파라미터들을 기반으로 상기 초기 양자화 파라미터를 계산하고; 그리고/또는
    프레임의 초기 양자화 파라미터에 대한 값을 잘라내어; 계산되는, 비디오 인코더 속도 제어 방법.
  14. 제10항에 있어서,
    상기 현재 프레임이 이상적인 데이터 표현 프레임이면, 상기 초기 양자화 파라미터는,
    버퍼 모델에 따른 버퍼 가용성 검사가 성공적이면, 이전의 P 프레임의 양자화 파라미터를 초기 양자화 파라미터로서 채택하고;
    상기 버퍼 가용성 검사가 실패하면, 하나 이상의 이전 프레임들에 대해 생성된 비트들의 개수로부터의 초기 양자화 파라미터와 하나 이상의 이전 프레임들을 인코딩하기 위해 사용된 양자화 파라미터들을 외삽하고(extrapolate); 그리고/또는
    상기 외삽이 신뢰성 있지 않다면, 하나 이상의 이전의 이상적인 데이터 표현 프레임들의 하나 이상의 양자화 파라미터들로부터 초기 양자화 파라미터를 결정하여; 계산되는, 비디오 인코더 속도 제어 방법.
  15. 비디오 인코더에 대한 속도 제어를 제공하기 위한 컴퓨터 프로그램 생성물로서,
    각 프레임에 대해 프레임 인코딩 프로세스를 실행하는 프로그램 섹션;를 포함하며,
    상기 프로그램 섹션은,
    현재의 프레임을 인코딩하기 위한 양자화 파라미터로서 사용하기 위해 초기 양자화 파라미터를 결정하는 프로그램 섹션; 및
    현재 프레임 내의 매크로블록들의 그룹을 인코딩하는 프로그램 섹션;을 포함하며,
    매크로블록들의 그룹에 대한 상기 매크로블록 인코딩 프로그램 섹션은,
    매크로블록들의 현재 그룹을 인코딩한 후에 득점값을 결정하는 프로그램 섹션;
    상기 득점값이 미리 정의된 문턱값을 초과하면 매크로블록들의 다음 그룹을 인코딩하기 위한 양자화 파라미터를 조절하는 프로그램 섹션; 및
    초과하지 않는다면, 현재 정당한 양자화 파라미터와 함께 매크로블록 인코딩을 계속하는 프로그램 섹션;을 포함하는, 컴퓨터 프로그램 생성물.
  16. 제15항에 있어서,
    상기 득점값은 현재 프레임, 인코딩 시에 현재 매크로블록을 인코딩하기 위해 필요한 비트들의 개수를 예측하는 비트 예측 개수 및 매크로블록 인덱스에 대한 하나 이상의 가림(envelope)값들을 포함하는 그룹으로부터 적어도 하나를 기반으로 결정되는, 컴퓨터 프로그램 생성물.
  17. 제15항에 있어서,
    상기 비트 예측 개수는 현재 프레임의 이전 매크로블록들의 하나 이상 및/또는 하나 이상의 이전 프레임의 이전 매크로블록들의 하나 이상을 인코딩하기 위해 생성되는 비트들의 개수를 기반으로 결정되는, 컴퓨터 프로그램 생성물.
  18. 제16항에 있어서,
    현재 프레임의 비트 가림값들을 결정하는 프로그램 섹션으로서, 비트 가림값들은 적어도 상한 및 하한을 포함하며, 상기 가림값들은 버퍼 모델에 따라 결정되거나 그리고/또는 비디오 비트 속도(rate), 현재 프레임의 목적 비트수 및 비디오 프레임 속도를 포함하는 그룹으로부터 적어도 하나의 값에 기반하는, 비트 가림값 결정 프로그램 섹션; 및
    비트 예측 개수, 가림값들 및 비트 예측의 비신뢰성을 설명하는 미리 정의된 함수를 기반으로 상기 득점값을 결정하는 프로그램 섹션으로서,
    상기 미리 정의된 함수는 상기 매크로블록 인덱스의 함수이며, 상기 미리 정의된 함수는 바람직하게는 룩업 테이블의 기저에 구현 가능한 포물선 함수인, 득점값 결정 프로그램 섹션;을 포함하는, 컴퓨터 프로그램 생성물.
  19. 제15항에 있어서,
    상기 양자화 파라미터를 조절하는 프로그램 섹션은 적어도 하나의 오프셋 값 에 의해 상기 양자화 파라미터를 차감하는 프로그램 섹션을 포함하며, 상기 적어도 하나의 오프셋 값은 비트들의 가림값 및/또는 상기 결정된 비트 예측 개수에 의존하는, 컴퓨터 프로그램 생성물.
  20. 제15항에 있어서,
    상기 양자화 파라미터를 조절하는 프로그램 섹션은 상기 점수값에 의존하여 상기 양자화 파라미터를 결정하도록 구성된, 컴퓨터 프로그램 생성물.
  21. 제15항에 있어서,
    적어도 하나의 속도 제어 관련된 파라미터를 초기화시키는 프로그램 섹션;을 포함하며, 상기 적어도 하나의 속도 제어 관련된 파라미터는 비트 속도와 버퍼 크기로 이루어진 그룹으로부터 선택되는, 컴퓨터 프로그램 생성물.
  22. 제15항에 있어서,
    최근의 양자화 파라미터 조절이 발생했던 이후에 인코드된 복수의 매크로블록들을 결정하고; 그리고
    매크로블록의 개수가 미리 정의된 문턱값을 초과하는 경우에는 상기 양자화 파라미터를 조절하는 것을 허용하는 프로그램 섹션을 포함하는, 컴퓨터 프로그램 생성물.
  23. 제15항에 있어서,
    필요하면, 갱신된 초기 양자화 파라미터를 현재 프레임을 위해 결정하고 인코딩 프로세스를 반복하는 프로그램 섹션을 포함하는, 컴퓨터 프로그램 생성물.
  24. 제15항에 있어서,
    현재의 프레임이 P 프레임인지 또는 이상적인 데이터 표현 프레임인지를 결정하는 프로그램 섹션을 더 포함하는, 컴퓨터 프로그램 생성물.
  25. 제23항에 있어서,
    상기 현재의 프레임이 P 프레임이면, 상기 비트 예측 개수는 하나 이상의 이전 프레임들의 비트 분포로부터 결정되는, 컴퓨터 프로그램 생성물.
  26. 제23항에 있어서,
    상기 현재의 프레임이 이상적인 데이터 표현 프레임이면, 상기 비트 예측 개수는 이전의 프레임에서 생성된 비트들의 개수로부터 결정되는, 컴퓨터 프로그램 생성물.
  27. 제23항에 있어서,
    상기 현재 프레임이 P 프레임이면, 상기 초기 양자화 파라미터는,
    짧은 윈도우 및 긴 윈도우 양자화 파라미터들에 대한 값들을 계산하는 프로 그램 섹션;
    상기 짧은 윈도우 및 긴 윈도우 양자화 파라미터들을 기반으로 상기 초기 양자화 파라미터를 계산하는 프로그램 섹션; 및
    프레임의 초기 양자화 파라미터에 대한 값을 잘라내는 프로그램 섹션;에 의해 계산되는, 컴퓨터 프로그램 생성물.
  28. 제23항에 있어서,
    상기 현재 프레임이 이상적인 데이터 표현 프레임이면, 상기 초기 양자화 파라미터를 위한 프로그램 섹션은,
    버퍼 모델에 따른 버퍼 가용성 검사가 성공적이면, 이전의 P 프레임의 양자화 파라미터를 초기 양자화 파라미터로서 채택하는 프로그램 섹션;
    상기 버퍼 가용성 검사가 실패하면, 하나 이상의 이전 프레임들에 대해 생성된 비트들의 개수로부터의 초기 양자화 파라미터와 하나 이상의 이전 프레임들을 인코딩하기 위해 사용된 양자화 파라미터들을 외삽하는(extrapolate) 프로그램 섹션 ; 및
    상기 외삽이 신뢰성 있지 않다면, 하나 이상의 이전의 이상적인 데이터 표현 프레임들의 하나 이상의 양자화 파라미터들로부터 초기 양자화 파라미터를 결정하는 프로그램 섹션;을 포함하는, 컴퓨터 프로그램 생성물.
  29. 전자 기기로서,
    프로세서; 및
    상기 프로세서에 작동적으로 연결되고 비디오 인코더를 위한 속도 제어를 제공하기 위한 컴퓨터 프로그램 생성물을 포함하는 메모리 유닛;을 포함하며,
    각 프레임에 대해 프레임 인코딩 프로세스를 실행하는 프로그램 섹션;를 포함하며,
    상기 프로그램 섹션은,
    현재의 프레임을 인코딩하기 위한 양자화 파라미터로서 사용하기 위해 초기 양자화 파라미터를 결정하는 프로그램 섹션; 및
    현재 프레임 내의 매크로블록들의 그룹을 인코딩하는 프로그램 섹션;을 포함하며,
    매크로블록들의 그룹에 대한 상기 매크로블록 인코딩 프로그램 섹션은,
    매크로블록들의 현재 그룹을 인코딩한 후에 득점값을 결정하는 프로그램 섹션;
    상기 득점값이 미리 정의된 문턱값을 초과하면 매크로블록들의 다음 그룹을 인코딩하기 위한 양자화 파라미터를 조절하는 프로그램 섹션; 및
    초과하지 않는다면, 현재 정당한 양자화 파라미터와 함께 매크로블록 인코딩을 계속하는 프로그램 섹션;을 포함하는, 전자 기기.
  30. 제 29항에 있어서,
    상기 득점값은 현재 프레임, 인코딩 시에 현재 매크로블록을 인코딩하기 위 해 필요한 비트들의 개수를 예측하는 비트 예측 개수 및 매크로블록 인덱스에 대한 하나 이상의 가림(envelope)값들을 포함하는 그룹으로부터 적어도 하나를 기반으로 결정되는, 전자 기기.
  31. 제29항에 있어서,
    상기 비트 예측 개수는 현재 프레임의 이전 매크로블록들의 하나 이상 및/또는 하나 이상의 이전 프레임의 이전 매크로블록들의 하나 이상을 인코딩하기 위해 생성되는 비트들의 개수를 기반으로 결정되는, 전자 기기.
  32. 제30항에 있어서,
    현재 프레임의 비트 가림값들을 결정하는 프로그램 섹션으로서, 비트 가림값들은 적어도 상한 및 하한을 포함하며, 상기 가림값들은 버퍼 모델에 따라 결정되거나 그리고/또는 비디오 비트 속도(rate), 현재 프레임의 목적 비트수 및 비디오 프레임 속도를 포함하는 그룹으로부터 적어도 하나의 값에 기반하는, 비트 가림값 결정 프로그램 섹션; 및
    비트 예측 개수, 가림값들 및 비트 예측의 비신뢰성을 설명하는 미리 정의된 함수를 기반으로 상기 득점값을 결정하는 프로그램 섹션으로서,
    상기 미리 정의된 함수는 상기 매크로블록 인덱스의 함수이며, 상기 미리 정의된 함수는 바람직하게는 룩업 테이블의 기저에 구현 가능한 포물선 함수인, 득점값 결정 프로그램 섹션;을 포함하는, 전자 기기.
  33. 제29항에 있어서,
    상기 양자화 파라미터를 조절하는 프로그램 섹션은 적어도 하나의 오프셋 값에 의해 상기 양자화 파라미터를 차감하는 프로그램 섹션을 포함하며, 상기 적어도 하나의 오프셋 값은 비트들의 가림값 및/또는 상기 결정된 비트 예측 개수에 의존하는, 전자 기기.
  34. 제29항에 있어서,
    상기 양자화 파라미터를 조절하는 프로그램 섹션은 상기 점수값에 의존하여 상기 양자화 파라미터를 결정하도록 구성된, 전자 기기.
  35. 제29항에 있어서,
    적어도 하나의 속도 제어 관련된 파라미터를 초기화시키는 프로그램 섹션;을 포함하며, 상기 적어도 하나의 속도 제어 관련된 파라미터는 비트 속도와 버퍼 크기로 이루어진 그룹으로부터 선택되는, 전자 기기.
  36. 제29항에 있어서,
    최근의 양자화 파라미터 조절이 발생했던 이후에 인코드된 복수의 매크로블록들을 결정하고; 그리고
    매크로블록의 개수가 미리 정의된 문턱값을 초과하는 경우에는 상기 양자화 파라미터를 조절하는 것을 허용하는 프로그램 섹션을 포함하는, 전자 기기.
  37. 제29항에 있어서,
    필요하면, 갱신된 초기 양자화 파라미터를 현재 프레임을 위해 결정하고 인코딩 프로세스를 반복하는 프로그램 섹션을 포함하는, 전자 기기.
  38. 제29항에 있어서,
    현재의 프레임이 P 프레임인지 또는 이상적인 데이터 표현 프레임인지를 결정하는 프로그램 섹션을 더 포함하는, 전자 기기.
  39. 제38항에 있어서,
    상기 현재의 프레임이 P 프레임이면, 상기 비트 예측 개수는 하나 이상의 이전 프레임들의 비트 분포로부터 결정되는, 전자 기기.
  40. 제38항에 있어서,
    상기 현재의 프레임이 이상적인 데이터 표현 프레임이면, 상기 비트 예측 개수는 이전의 프레임에서 생성된 비트들의 개수로부터 결정되는, 전자 기기.
  41. 제38항에 있어서,
    상기 현재 프레임이 P 프레임이면, 상기 초기 양자화 파라미터는,
    짧은 윈도우 및 긴 윈도우 양자화 파라미터들에 대한 값들을 계산하는 프로그램 섹션;
    상기 짧은 윈도우 및 긴 윈도우 양자화 파라미터들을 기반으로 상기 초기 양자화 파라미터를 계산하는 프로그램 섹션; 및
    프레임의 초기 양자화 파라미터에 대한 값을 잘라내는 프로그램 섹션;에 의해 계산되는, 전자 기기.
  42. 제38항에 있어서,
    상기 현재 프레임이 이상적인 데이터 표현 프레임이면, 상기 초기 양자화 파라미터를 위한 프로그램 섹션은,
    버퍼 모델에 따른 버퍼 가용성 검사가 성공적이면, 이전의 P 프레임의 양자화 파라미터를 초기 양자화 파라미터로서 채택하는 프로그램 섹션;
    상기 버퍼 가용성 검사가 실패하면, 하나 이상의 이전 프레임들에 대해 생성된 비트들의 개수로부터의 초기 양자화 파라미터와 하나 이상의 이전 프레임들을 인코딩하기 위해 사용된 양자화 파라미터들을 외삽하는(extrapolate) 프로그램 섹션 ; 및
    상기 외삽이 신뢰성 있지 않다면, 하나 이상의 이전의 이상적인 데이터 표현 프레임들의 하나 이상의 양자화 파라미터들로부터 초기 양자화 파라미터를 결정하는 프로그램 섹션;을 포함하는, 전자 기기.
  43. 속도 제어 모듈을 구비하여 실행 가능한 비디오 인코더로서,
    상기 비디오 인코더는 각 프레임에 대해 프레임 인코딩을 실행하도록 구성되어,
    현재의 프레임을 인코딩하기 위한 양자화 파라미터로서 사용하기 위해 초기 양자화 파라미터를 결정하기 위해 구성된 초기 프레임 QP 계산기;를 포함하고,
    상기 비디오 인코더는 현재 프레임 내의 매크로블록들의 그룹에 대한 매크로블록 인코딩하도록 구성되어,
    현재 프레임의 매크로블록들의 현재 그룹이 인코딩된 후에 득점값을 결정하도록 구성된 QP 조절기로서, 상기 QP 조절기는 상기 득점값이 미리 정의된 문턱값을 초과하면 매크로블록들의 다음 그룹을 인코딩하기 위한 양자화 파라미터를 조절하고, 초과하지 않는다면, 현재 정당한 양자화 파라미터와 함께 매크로블록 인코딩을 계속하도록 적용되는, QP 조절기;를 포함하는, 비디오 인코더.
  44. 제43항에 있어서,
    상기 QP 조절기는 현재 프레임, 인코딩 시에 현재 매크로블록을 인코딩하기 위해 필요한 비트들의 개수를 예측하는 비트 예측 개수 및 매크로블록 인덱스에 대한 하나 이상의 가림(envelope)값들을 포함하는 그룹으로부터 적어도 하나를 기반으로 상기 득점값을 결정하도록 구성된, 비디오 인코더.
  45. 제43항에 있어서,
    현재 프레임의 이전 매크로블록들의 하나 이상 및/또는 하나 이상의 이전 프레임의 이전 매크로블록들의 하나 이상을 인코딩하기 위해 생성되는 비트들의 개수를 기반으로 상기 비트 예측 개수를 결정하도록 구성된 비트 예측기를 포함하는, 비디오 인코더.
  46. 제44항에 있어서,
    현재 프레임의 비트 가림값들을 결정하도록 구성된 비트 가림(envelope) 계산기로서, 비트 가림값들은 적어도 상한 및 하한을 포함하며, 상기 가림값들은 버퍼 모델에 따라 결정되거나 그리고/또는 비디오 비트 속도(rate), 현재 프레임의 목적 비트수 및 비디오 프레임 속도를 포함하는 그룹으로부터 적어도 하나의 값에 기반하는, 비트 가림 계산기; 및
    비트 예측 개수, 가림값들 및 비트 예측의 비신뢰성을 설명하는 미리 정의된 함수를 기반으로 상기 득점값을 결정하도록 구성된 QP 조절기로서, 상기 미리 정의된 함수는 상기 매크로블록 인덱스의 함수이며, 상기 미리 정의된 함수는 바람직하게는 룩업 테이블의 기저에 구현 가능한 포물선 함수인, QP 조절기;를 포함하는, 비디오 인코더.
  47. 제43항에 있어서,
    상기 QP 조절기는 적어도 하나의 오프셋 값에 의해 상기 양자화 파라미터를 차감하도록 구성되며, 상기 적어도 하나의 오프셋 값은 비트들의 가림값 및/또는 상기 결정된 비트 예측 개수에 의존하는, 비디오 인코더.
  48. 제43항에 있어서,
    상기 QP 조절기는 상기 점수값에 의존하여 상기 양자화 파라미터를 조절하도록 구성된, 비디오 인코더.
  49. 제43항에 있어서,
    적어도 하나의 속도 제어 관련된 파라미터를 포함하며, 상기 적어도 하나의 속도 제어 관련된 파라미터는 비트 속도와 버퍼 크기로 이루어진 그룹으로부터 선택되는, 비디오 인코더.
  50. 제43항에 있어서,
    상기 QP 조절기는
    최근의 양자화 파라미터 조절이 발생했던 이후에 인코드된 복수의 매크로블록들을 결정하고, 매크로블록의 개수가 미리 정의된 문턱값을 초과하는 경우에는 상기 양자화 파라미터를 조절하는 것을 허용하도록 구성된, 비디오 인코더.
  51. 제43항에 있어서,
    상기 초기 프레임 QP 계산기는, 필요하면, 갱신된 초기 양자화 파라미터를 현재 프레임을 위해 결정하고 인코딩 프로세스를 반복하도록 구성된, 비디오 인코 더.
  52. 제43항에 있어서,
    현재의 프레임이 P 프레임인지 또는 이상적인 데이터 표현 프레임인지를 결정하는 것을 더 포함하는, 비디오 인코더.
  53. 제52항에 있어서,
    상기 현재의 프레임이 P 프레임이면, 상기 비트 예측기는 하나 이상의 이전 프레임들의 비트 분포로부터 상기 비트 예측 개수를 결정하도록 구성된, 비디오 인코더.
  54. 제52항에 있어서,
    상기 현재의 프레임이 이상적인 데이터 표현 프레임이면, 상기 비트 예측기는 이전의 프레임에서 생성된 비트들의 개수로부터 상기 비트 예측 개수를 결정하도록 구성된, 비디오 인코더.
  55. 제52항에 있어서,
    상기 현재 프레임이 P 프레임이면, 상기 초기 프레임 QP 계산기는,
    짧은 윈도우 및 긴 윈도우 양자화 파라미터들에 대한 값들을 계산하고;
    상기 짧은 윈도우 및 긴 윈도우 양자화 파라미터들을 기반으로 상기 초기 양 자화 파라미터를 계산하고; 그리고/또는
    프레임의 초기 양자화 파라미터에 대한 값을 잘라내도록 구성되는, 비디오 인코더.
  56. 제52항에 있어서,
    상기 현재 프레임이 이상적인 데이터 표현 프레임이면, 상기 초기 프레임 QP 계산기는,
    버퍼 모델에 따른 버퍼 가용성 검사가 성공적이면, 이전의 P 프레임의 양자화 파라미터를 초기 양자화 파라미터로서 채택하고;
    상기 버퍼 가용성 검사가 실패하면, 하나 이상의 이전 프레임들에 대해 생성된 비트들의 개수로부터의 초기 양자화 파라미터와 하나 이상의 이전 프레임들을 인코딩하기 위해 사용된 양자화 파라미터들을 외삽하고(extrapolate); 그리고/또는
    상기 외삽이 신뢰성 있지 않다면, 하나 이상의 이전의 이상적인 데이터 표현 프레임들의 하나 이상의 양자화 파라미터들로부터 초기 양자화 파라미터를 결정하도록 구성된, 비디오 인코더.
KR1020087002293A 2005-07-28 2006-07-07 가변 비트 속도 인코딩이 가능한 비디오 인코더를 위한속도 제어 방법, 모듈, 기기 및 시스템 KR20080031344A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/194,068 2005-07-28
US11/194,068 US20070025441A1 (en) 2005-07-28 2005-07-28 Method, module, device and system for rate control provision for video encoders capable of variable bit rate encoding

Publications (1)

Publication Number Publication Date
KR20080031344A true KR20080031344A (ko) 2008-04-08

Family

ID=37683016

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087002293A KR20080031344A (ko) 2005-07-28 2006-07-07 가변 비트 속도 인코딩이 가능한 비디오 인코더를 위한속도 제어 방법, 모듈, 기기 및 시스템

Country Status (5)

Country Link
US (1) US20070025441A1 (ko)
EP (1) EP1908291A1 (ko)
KR (1) KR20080031344A (ko)
CN (1) CN101233757A (ko)
WO (1) WO2007012928A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013115572A1 (ko) * 2012-01-30 2013-08-08 삼성전자 주식회사 계층적 데이터 단위의 양자화 파라메터 예측을 포함하는 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치

Families Citing this family (91)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7460629B2 (en) * 2001-06-29 2008-12-02 Agere Systems Inc. Method and apparatus for frame-based buffer control in a communication system
KR101150332B1 (ko) * 2004-10-21 2012-06-08 삼성전자주식회사 양자화계수 선택빈도수가 통계적으로 반영된 테이블을이용한 영상부호화 제어장치 및 방법
US7672524B2 (en) * 2006-03-02 2010-03-02 Mitsubishi Electric Research Laboratories, Inc. Quality control for image transcoding
US8165202B1 (en) * 2006-03-31 2012-04-24 Texas Instruments Incorporated Video compression rate
US8711925B2 (en) 2006-05-05 2014-04-29 Microsoft Corporation Flexible quantization
US7656326B2 (en) * 2006-06-08 2010-02-02 Via Technologies, Inc. Decoding of context adaptive binary arithmetic codes in computational core of programmable graphics processing unit
JP4584871B2 (ja) * 2006-06-09 2010-11-24 パナソニック株式会社 画像符号化記録装置および画像符号化記録方法
JP4928176B2 (ja) * 2006-06-27 2012-05-09 キヤノン株式会社 映像符号化装置及び映像符号化方法
KR101329860B1 (ko) * 2006-09-28 2013-11-14 톰슨 라이센싱 효과적인 레이트 제어 및 비디오 인코딩 품질의 향상을 위한 ρ-도메인 프레임 레벨 비트 할당 방법
US8767834B2 (en) * 2007-03-09 2014-07-01 Sharp Laboratories Of America, Inc. Methods and systems for scalable-to-non-scalable bit-stream rewriting
US8861591B2 (en) * 2007-05-11 2014-10-14 Advanced Micro Devices, Inc. Software video encoder with GPU acceleration
US8233527B2 (en) * 2007-05-11 2012-07-31 Advanced Micro Devices, Inc. Software video transcoder with GPU acceleration
US20090016631A1 (en) * 2007-07-10 2009-01-15 Texas Instruments Incorporated Video Coding Rate Control
JP5330672B2 (ja) * 2007-10-29 2013-10-30 パナソニック株式会社 映像符号化装置及び映像符号化方法
US9872066B2 (en) * 2007-12-18 2018-01-16 Ibiquity Digital Corporation Method for streaming through a data service over a radio link subsystem
US10193655B2 (en) * 2008-01-15 2019-01-29 Futurewei Technologies, Inc. Method and apparatus for scheduling multimedia streams over a wireless broadcast channel
WO2009091548A1 (en) * 2008-01-17 2009-07-23 Thomson Licensing Method and apparatus for rate control accuracy in video encoding
US8005102B2 (en) * 2008-03-31 2011-08-23 Futurewei Technologies, Inc. System and method for scheduling variable bit rate (VBR) streams in a wireless communications system
US8923385B2 (en) * 2008-05-01 2014-12-30 Nvidia Corporation Rewind-enabled hardware encoder
US8897359B2 (en) * 2008-06-03 2014-11-25 Microsoft Corporation Adaptive quantization for enhancement layer video coding
US8311111B2 (en) 2008-09-11 2012-11-13 Google Inc. System and method for decoding using parallel processing
US9110849B2 (en) * 2009-04-15 2015-08-18 Qualcomm Incorporated Computing even-sized discrete cosine transforms
US8762441B2 (en) * 2009-06-05 2014-06-24 Qualcomm Incorporated 4X4 transform for media coding
US9069713B2 (en) * 2009-06-05 2015-06-30 Qualcomm Incorporated 4X4 transform for media coding
US8451904B2 (en) 2009-06-24 2013-05-28 Qualcomm Incorporated 8-point transform for media data coding
US9075757B2 (en) * 2009-06-24 2015-07-07 Qualcomm Incorporated 16-point transform for media data coding
US9081733B2 (en) * 2009-06-24 2015-07-14 Qualcomm Incorporated 16-point transform for media data coding
US9118898B2 (en) * 2009-06-24 2015-08-25 Qualcomm Incorporated 8-point transform for media data coding
US20110255594A1 (en) * 2010-04-15 2011-10-20 Soyeb Nagori Rate Control in Video Coding
CN102238381B (zh) * 2010-04-29 2013-06-19 晨星软件研发(深圳)有限公司 加速游程长度编码的影像编码方法与影像编码装置
CA2798008C (en) 2010-05-06 2015-10-20 Nippon Telegraph And Telephone Corporation Method for controlling video encoding if a decoder underflow condition is detected
EP2568705B1 (en) * 2010-05-07 2018-09-26 Nippon Telegraph And Telephone Corporation Moving image encoding control method, moving image encoding apparatus and moving image encoding program
BR112012028576A2 (pt) * 2010-05-12 2016-08-02 Nippon Telegraph & Telephone método de controle de codificação de vídeo, aparelho de codificação de vídeo, e programa de codificação de vídeo
US20110310961A1 (en) * 2010-06-17 2011-12-22 Microsoft Corporation Video rate control based on transform-coefficients histogram
CN101895788B (zh) * 2010-07-21 2013-07-03 深圳市融创天下科技股份有限公司 一种视频编码性能客观评价方法及系统
WO2012050832A1 (en) 2010-09-28 2012-04-19 Google Inc. Systems and methods utilizing efficient video compression techniques for providing static image data
KR20130054408A (ko) 2010-10-05 2013-05-24 제너럴 인스트루먼트 코포레이션 지그재그 스캔에 의한 적응적 컨텍스트 모델 선택을 이용하는 코딩 및 디코딩
US9532059B2 (en) 2010-10-05 2016-12-27 Google Technology Holdings LLC Method and apparatus for spatial scalability for video coding
US9824066B2 (en) 2011-01-10 2017-11-21 Qualcomm Incorporated 32-point transform for media data coding
US20120183064A1 (en) 2011-01-14 2012-07-19 Sony Corporation Codeword assignment for intra chroma mode signaling for hevc
CN103404140B (zh) 2011-01-19 2017-06-13 瑞典爱立信有限公司 指示比特流子集的方法和设备
US9215466B2 (en) * 2011-01-31 2015-12-15 Apple Inc. Joint frame rate and resolution adaptation
CN106534872B (zh) 2011-03-11 2019-05-17 索尼公司 图像处理装置和方法
US8938001B1 (en) 2011-04-05 2015-01-20 Google Inc. Apparatus and method for coding using combinations
US8989256B2 (en) 2011-05-25 2015-03-24 Google Inc. Method and apparatus for using segmentation-based coding of prediction information
US8891616B1 (en) 2011-07-27 2014-11-18 Google Inc. Method and apparatus for entropy encoding based on encoding cost
WO2013030833A1 (en) 2011-08-29 2013-03-07 I.C.V.T. Ltd. Controlling a video content system
KR20130050407A (ko) * 2011-11-07 2013-05-16 오수미 인터 모드에서의 움직임 정보 생성 방법
KR20130050406A (ko) * 2011-11-07 2013-05-16 오수미 머지 모드에서의 움직임 정보 생성 방법
US9247257B1 (en) 2011-11-30 2016-01-26 Google Inc. Segmentation based entropy encoding and decoding
US9100657B1 (en) 2011-12-07 2015-08-04 Google Inc. Encoding time management in parallel real-time video encoding
JP2013150173A (ja) * 2012-01-19 2013-08-01 Sony Corp 画像処理装置および方法
CN103460701B (zh) 2012-01-20 2017-06-09 索尼公司 有效度图编码的复杂度降低
US9094681B1 (en) 2012-02-28 2015-07-28 Google Inc. Adaptive segmentation
US11039138B1 (en) 2012-03-08 2021-06-15 Google Llc Adaptive coding of prediction modes using probability distributions
US9781447B1 (en) 2012-06-21 2017-10-03 Google Inc. Correlation based inter-plane prediction encoding and decoding
US9774856B1 (en) 2012-07-02 2017-09-26 Google Inc. Adaptive stochastic entropy coding
US9332276B1 (en) 2012-08-09 2016-05-03 Google Inc. Variable-sized super block based direct prediction mode
US9167268B1 (en) 2012-08-09 2015-10-20 Google Inc. Second-order orthogonal spatial intra prediction
US9344742B2 (en) 2012-08-10 2016-05-17 Google Inc. Transform-domain intra prediction
US9380298B1 (en) 2012-08-10 2016-06-28 Google Inc. Object-based intra-prediction
US9369732B2 (en) 2012-10-08 2016-06-14 Google Inc. Lossless intra-prediction video coding
US9628790B1 (en) 2013-01-03 2017-04-18 Google Inc. Adaptive composite intra prediction for image and video compression
US9509998B1 (en) 2013-04-04 2016-11-29 Google Inc. Conditional predictive multi-symbol run-length coding
US20140321533A1 (en) * 2013-04-29 2014-10-30 Ati Technologies Ulc Single-path variable bit rate video compression
GB201308073D0 (en) * 2013-05-03 2013-06-12 Imagination Tech Ltd Encoding an image
US11425395B2 (en) 2013-08-20 2022-08-23 Google Llc Encoding and decoding using tiling
US9392288B2 (en) 2013-10-17 2016-07-12 Google Inc. Video coding using scatter-based scan tables
US9179151B2 (en) 2013-10-18 2015-11-03 Google Inc. Spatial proximity context entropy coding
JP6272690B2 (ja) * 2013-12-26 2018-01-31 日東電工株式会社 両面セパレータ付き封止用シート、及び、半導体装置の製造方法
US10171807B2 (en) * 2015-01-29 2019-01-01 Arris Enterprises Llc Picture-level QP rate control for HEVC encoding
US10313675B1 (en) 2015-01-30 2019-06-04 Google Llc Adaptive multi-pass video encoder control
US10148961B2 (en) * 2015-05-29 2018-12-04 Qualcomm Incorporated Arithmetic coder with multiple window sizes
US20170034538A1 (en) * 2015-07-27 2017-02-02 Sony Computer Entertainment Inc. Encode/Decode Strategy for Mitigating Irregular Stream Decoding Time
GB2543492B (en) * 2015-10-16 2021-11-10 Digital Barriers Services Ltd Data Compression
US9794574B2 (en) 2016-01-11 2017-10-17 Google Inc. Adaptive tile data size coding for video and image compression
US10542258B2 (en) 2016-01-25 2020-01-21 Google Llc Tile copying for video compression
CN109479136A (zh) * 2016-08-04 2019-03-15 深圳市大疆创新科技有限公司 用于比特率控制的系统和方法
CN107846590B (zh) * 2016-09-19 2020-09-08 阿里巴巴集团控股有限公司 一种视频编码的方法和视频编码器
CN108391131B (zh) * 2018-04-16 2019-09-10 西安万像电子科技有限公司 图像帧编码方法及装置
KR20200065367A (ko) * 2018-11-30 2020-06-09 삼성전자주식회사 이미지 처리 장치 및 프레임 버퍼 컴프레서
CN113994689A (zh) * 2019-03-20 2022-01-28 威诺瓦国际有限公司 信号增强编码中的残差滤波
CN111566584A (zh) * 2019-06-28 2020-08-21 深圳市大疆创新科技有限公司 一种图像处理的方法、装置和无人机
CN113473136B (zh) * 2020-03-30 2024-02-09 炬芯科技股份有限公司 视频编码器及其码率控制装置
CN111669594B (zh) * 2020-06-23 2022-12-02 浙江大华技术股份有限公司 一种视频编码方法、装置及计算机可读存储介质
CN111787322B (zh) * 2020-08-04 2022-05-13 北京百度网讯科技有限公司 视频编码的方法、装置、电子设备及计算机可读存储介质
CN112203096A (zh) * 2020-09-30 2021-01-08 北京金山云网络技术有限公司 视频编码方法、装置、计算机设备和存储介质
CN112203094B (zh) * 2020-11-16 2024-05-14 北京世纪好未来教育科技有限公司 编码方法、装置、电子设备及存储介质
CN112492305B (zh) * 2020-11-18 2022-02-11 腾讯科技(深圳)有限公司 一种数据处理方法、装置及计算机可读存储介质
CN112272299A (zh) * 2020-11-27 2021-01-26 广州市网星信息技术有限公司 一种视频编码的方法、装置、设备和存储介质
CN117676142A (zh) * 2022-09-08 2024-03-08 华为技术有限公司 图像编解码方法、装置、编码器、解码器和系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2337392B (en) * 1997-12-08 2002-04-17 Sony Corp Coding device and method
US6563549B1 (en) * 1998-04-03 2003-05-13 Sarnoff Corporation Method and apparatus for adaptively encoding an information stream
US6259733B1 (en) * 1998-06-16 2001-07-10 General Instrument Corporation Pre-processing of bit rate allocation in a multi-channel video encoder
US6912255B2 (en) * 2002-05-30 2005-06-28 Mobixell Netwoks Inc. Bit rate control through selective modification of DCT coefficients
EP1372113B1 (en) * 2002-06-11 2005-10-19 STMicroelectronics S.r.l. Variable bit rate video encoding method and device
US7336720B2 (en) * 2002-09-27 2008-02-26 Vanguard Software Solutions, Inc. Real-time video coding/decoding
US9071840B2 (en) * 2004-01-30 2015-06-30 Thomson Licensing Encoder with adaptive rate control for H.264

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013115572A1 (ko) * 2012-01-30 2013-08-08 삼성전자 주식회사 계층적 데이터 단위의 양자화 파라메터 예측을 포함하는 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
AU2013215773B2 (en) * 2012-01-30 2015-10-29 Samsung Electronics Co., Ltd. Method and apparatus for hierarchical data unit-based video encoding and decoding comprising quantization parameter prediction
US9538192B2 (en) 2012-01-30 2017-01-03 Samsung Electronics Co., Ltd. Method and apparatus for hierarchical data unit-based video encoding and decoding comprising quantization parameter prediction
US9544603B2 (en) 2012-01-30 2017-01-10 Samsung Electronics Co., Ltd. Method and apparatus for hierarchical data unit-based video encoding and decoding comprising quantization parameter prediction
US9544604B2 (en) 2012-01-30 2017-01-10 Samsung Electronics Co., Ltd. Method and apparatus for hierarchical data unit-based video encoding and decoding comprising quantization parameter prediction
US9549185B2 (en) 2012-01-30 2017-01-17 Samsung Electronics Co., Ltd. Method and apparatus for hierarchical data unit-based video encoding and decoding comprising quantization parameter prediction
US9693061B2 (en) 2012-01-30 2017-06-27 Samsung Electronics Co., Ltd. Method and apparatus for hierarchical data unit-based video encoding and decoding comprising quantization parameter prediction
US10045025B2 (en) 2012-01-30 2018-08-07 Samsung Electronics Co., Ltd. Method and apparatus for hierarchical data unit-based video encoding and decoding comprising quantization parameter prediction
AU2018204377B2 (en) * 2012-01-30 2018-12-13 Samsung Electronics Co., Ltd. Method and apparatus for hierarchical data unit-based video encoding and decoding comprising quantization parameter prediction

Also Published As

Publication number Publication date
US20070025441A1 (en) 2007-02-01
WO2007012928A1 (en) 2007-02-01
CN101233757A (zh) 2008-07-30
EP1908291A1 (en) 2008-04-09

Similar Documents

Publication Publication Date Title
KR20080031344A (ko) 가변 비트 속도 인코딩이 가능한 비디오 인코더를 위한속도 제어 방법, 모듈, 기기 및 시스템
RU2498523C2 (ru) Быстрое принятие решения о дельте параметра квантования макроблока
KR101012600B1 (ko) 화상을 기반으로 한 룩어헤드 윈도우를 이용한 레이트컨트롤
CN107409219B (zh) 译码视频信息的方法、设备、装置和计算机可读存储媒体
US10284849B2 (en) Quantization parameter (QP) calculation for display stream compression (DSC) based on complexity measure
JP6449329B2 (ja) ディスプレイストリーム圧縮(dsc)において量子化パラメータ(qp)を選択するためのシステムおよび方法
JP6453360B2 (ja) ディスプレイストリーム圧縮(dsc)のためのラグランジュパラメータ計算のためのシステムおよび方法
US10271056B2 (en) Encoding apparatus, encoding method and program
CN102986211A (zh) 视频编码中的速率控制
JP2017516392A (ja) ディスプレイストリーム圧縮(dsc)のためにブロック予測モードでコーディングするためのシステムおよび方法
GB2492330A (en) Rate-distortion optimisation (RDO) with optimal encoding mode selection
KR20170136526A (ko) 디스플레이 스트림 압축을 위한 복잡한 영역 검출
JP2019512970A (ja) ディスプレイストリーム圧縮における量子化パラメータの適応計算のための装置および方法
JP2018515015A (ja) ディスプレイストリーム圧縮(dsc)のための量子化パラメータ(qp)更新分類
US10171807B2 (en) Picture-level QP rate control for HEVC encoding
CN113286145B (zh) 视频编码方法、装置和电子设备
US9843816B2 (en) System and method for coding in pattern mode for display stream compression (DSC)
US20060209951A1 (en) Method and system for quantization in a video encoder
US20130077674A1 (en) Method and apparatus for encoding moving picture
JP2018525901A (ja) ディスプレイストリーム圧縮における変換モード用ブロックサイズの変更
US7813569B2 (en) MPEG video decoding method and MPEG video decoder using results from analysis of motion-vector data and DCT coefficients
KR20010104058A (ko) 동영상 부호화기의 부호화 모드에 따른 적응적 양자화기
JP2008042943A (ja) 画像圧縮符号化装置及び方法、プログラム、並びに記録媒体

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application