KR100919074B1 - 매개 방정식을 이용한 비디오 인코딩을 위한 레이트 제어 - Google Patents

매개 방정식을 이용한 비디오 인코딩을 위한 레이트 제어

Info

Publication number
KR100919074B1
KR100919074B1 KR1020077014656A KR20077014656A KR100919074B1 KR 100919074 B1 KR100919074 B1 KR 100919074B1 KR 1020077014656 A KR1020077014656 A KR 1020077014656A KR 20077014656 A KR20077014656 A KR 20077014656A KR 100919074 B1 KR100919074 B1 KR 100919074B1
Authority
KR
South Korea
Prior art keywords
video
defines
parameter
expected
encoding
Prior art date
Application number
KR1020077014656A
Other languages
English (en)
Other versions
KR20070086710A (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 KR20070086710A publication Critical patent/KR20070086710A/ko
Application granted granted Critical
Publication of KR100919074B1 publication Critical patent/KR100919074B1/ko

Links

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/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/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/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/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

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

본 명세서는 비디오 인코딩을 향상시킬 수 있는 레이트 제어(rate control) 기술들을 설명한다. 제시된 레이트 제어 기술들은 프레임 당 인코딩되는 비트 수와 로(rho, ρ)로 지칭되는, 양자화 이후의 비디오 블록들의 영이-아닌(non-zero) 계수들의 수 사이의 관계를 활용한다. ρ의 값은 일반적으로 비디오 인코딩에 이용되는 비트들의 개수에 비례한다. 본 개시사항은 레이트 제어 비디오 인코딩을 이루기 위해 ρ와 양자화 파라미터(QP)간의 관계를 이용한다. 더 상세하게는, 본 개시사항은 매개 방정식(parametric equation)을 이용하여 예상도는 ρ의 값을 QP에 매핑(map)한다.

Description

매개 방정식을 이용한 비디오 인코딩을 위한 레이트 제어{RATE CONTROL TECHNIQUES FOR VIDEO ENCODING USING PARAMETRIC EQUATIONS}
본 출원은 2004년 11월 29일에 출원된 미국 가출원 특허 번호 60/631,835의 이익을 향유한다.
본 명세서는 디지털 비디오 프로세싱과, 더 상세하게는, 비디오 시퀀스(sequence)들의 레이트(rate) 제어 인코딩에 관련된다.
디지털 비디오 기능들은 디지털 텔레비전, 디지털 직접 방송 시스템, 무선 통신 장치, 개인 휴대 정보 단말(PDA), 랩톱 컴퓨터, 데스크톱 컴퓨터, 디지털 카메라, 디지털 기록 장치, 셀룰러 또는 위성 무선 전화 등을 포함하는, 광범위한 장치들에 삽입될 수 있다. 디지털 비디오 장치들은 완전 동영상 시퀀스(full motion video sequence)들을 생성, 수정, 전송, 저장, 기록 및 재생하는데 있어서 전통적인 아날로그 비디오 시스템들에 비하여 상당한 진보를 제공할 수 있다.
다수의 다양한 비디오 인코딩 표준들이 디지털 비디오 시퀀스들을 인코딩하기 위해 설정되어 있다. 예를 들어, Moving Picture Experts Group(MPEG)은 MPEG-1, MPEG-2 및 MPEG-3를 포함하는 다수의 표준들을 개발하였다. 다른 표준들은 국제 전기 통신 연합(ITU) H.263 표준, 캘리포니아 Cupertino의 Apple Computer에 의해 개발된 QuickTimeTM 기술, Redmond, Washington의 Microsoft Corporation에 의해 개발된 Video for WindowsTM, Intel corporation에 의해 개발된 IndeoTM, Washington Seattle의 RealNetworks Inc.의 RealVideoTM, 그리고 SuperMac, Inc.에 의해 개발된 CinepakTM을 포함한다. 게다가, ITU H.264 표준 및 다수의 전유(proprietary) 표준들을 포함하여, 새로운 표준들이 계속하여 나타나고 발전된다.
많은 비디오 인코딩 표준들은 압축된 방법으로 데이터를 인코딩 함으로써 비디오 시퀀스들의 향상된 전송 레이트(rate)들을 가능하게 한다. 압축은 비디오 프레임들의 효율적인 전송을 위해 전송되는데 필요한 전체 데이터량을 감소시킬 수 있다. 대부분의 비디오 인코딩 표준들은, 예를 들어, 압축없이 이뤄질 수 있는 것보다 더 좁은 대역폭을 통해 비디오 및 이미지 전송을 용이하게 하도록 설계된 그래픽 및 비디오 압축 기술들을 활용한다. 상기 MPEG 표준들과 ITU H.263 및 ITU H.264 표준들은, 예컨대, 연속적인 비디오 프레임들 사이의 유사점을 이용하여(일시적인 또는 프레임-간 상관(correlation)으로 칭함) 프레임-간(inter-frame) 압축을 제공하는 비디오 인코딩 기술들을 지원한다. 그러한 프레임-간 압축은 일반적으로 모션 추정(motion estimation) 및 모션 보상 인코딩(motion compensation encoding) 기술들을 통해 이뤄진다. 또한, 일부 비디오 인코딩 기술들은 프레임들 내부의 유사점들을 이용하여(공간(spatial) 또는 프레임-내 상관(intra-frame correlation)으로 칭함), 비디오 프레임들을 추가로 압축할 수 있다.
다수의 레이트 제어(rate control) 기술들이 비디오 인코딩을 위해 개발되어 있다. 레이트 제어 기술들은 비디오 시퀀스들의 실시간 전송을 용이하게 하기 위해 특히 중요하지만, 비-실시간 인코딩 설정에서도 이용될 수 있다. 레이트 제어를 위해, 상기 인코딩 기술들은 동적으로 프레임 당 인코딩되는 비트(bit)들의 수를 조정한다. 특히, 레이트 제어는 비디오 시퀀스가 특정 레이트에서 효율적으로 인코딩되어서, 할당된 대역폭을 통해 전송될 수 있도록 하기 위해 프레임 당 인코딩되는 비트 수를 제한할 수 있다. 상기 인코딩 기술들이 비디오 시퀀스의 장면 전환들에 응하지 않는다면, 비디오 시퀀스의 실시간 전송에 대한 비트 레이트는 상기 장면들이 변화함에 따라 현저하게 변할 수 있다. 그러므로, 일정한 비트 레이트를 실질적으로 한정하기 위해, 프레임 당 비트수는 상기 인코딩 동안 동적으로 조정된다.
레이트 제어 인코딩을 달성하는 한가지 방법은 비디오 인코딩 프로세스 동안 이용되는 양자화 파라미터(quantization parameter, QP)의 조정을 허용하는 것이다. 상기 QP는 비디오 인코딩 동안 일어나는 양자화를 정의하고, 초당 인코딩되는 비트들의 수에 직접적으로 영향을 준다. 상기 QP가 증가함에 따라, 데이터가 더 적게 보존되며 비디오 인코딩의 품질은 악화될 수 있다. 상기 QP가 감소함에 따라, 데이터가 더 많이 보존되며 비디오 인코딩의 품질이 향상된다. 그러나, 상기 QP가 너무 작으면, 초당 인코딩되는 비트수가 할당된 대역폭을 초과할 수 있고, 제한된 대역폭 내에서 프레임들을 전송하는 능력을 손상시킬 수 있다. 동적인 방법으로 상기 QP를 선택함으로써, 비디오 프레임들의 전송을 위한 비트 레이트가 충분히 일정해질 수 있다. 상기 비트 레이트의 작은 편차는 어떠한 비디오 애플리케이션들의 경우 매우 요망된다.
도 1은 소스(source) 디지털 비디오 장치가 인코딩된 비디오 데이터의 시퀀스를 수신 디지털 비디오 장치로 전송하는 예시적인 시스템을 나타내는 블록 다이어그램이다.
도 2는 본 명세서의 일 실시예에 따른 디지털 비디오 장치의 예시적인 블록 다이어그램이다.
도 3은 매개 방정식을 이용하여 양자화 파라미터들(QP들)에 대한 예상 ρ값을 매핑하는 프레임-수준 레이트 제어를 위한 기술을 나타내는 순서도이다.
도 4는 매개 방정식을 이용하여 양자화 파라미터들(QP들)에 대한 예상 ρ값을 매핑하는 블록-수준 레이트 제어를 위한 기술을 나타내는 순서도이다.
도 5는 프레임 수준으로 조정된 매개 방정식을 이용하는 블록-수준 레이트 제어를 위한 기술을 나타내는 순서도이다.
본 명세서는 비디오 인코딩을 개선할 수 있는 레이트 제어 기술들을 설명한다. 특히, 기술된 레이트 제어 기술들은 프레임 당 인코딩 비트수와 양자화 이후 비디오 블록들의 영이-아닌(non-zero) 계수들의 수 사이의 관계들을 이용한다. 상기 프레임들의 비디오 블록들의 영이-아닌 계수들의 수는 로(ρ)로 칭한다. ρ의 값은 일반적으로 비디오 인코딩 프로세스에 이용되는 비트들의 수에 비례한다. 본 명세서는 레이트 제어 비디오 인코딩을 이루기 위해 ρ와 양자화 파라미터(QP) 간의 관계를 이용한다. 더 상세하게는, 본 명세서는 매개 방정식을 활용하여 QP에 대해 예상되는 ρ의 값을 매핑(map)한다. 상기 매개 방정식은 다음의 형태일 수 있으며:
ρ= nc×e - f( qp ) ,
여기서 e는 오일러(Euler) 수(상수 2.71828182845904523536028747135...)를 나타내고, ρ는 양자화 후 프레임들의 비디오 블록들의 영-아닌 계수들의 예상되는 개수를 나타내고, nc는 고려중인 유닛의 계수들의 개수를 나타내고(예컨대, 프레임 또는 비디오 블록 내의 계수들의 개수), f( qp )는 양자화 파라미터의 매개 함수(parametric function)이다. 예를 들어, f( qp)는 단순한 다항식 또는 지수함수를 포함할 수 있다. 일부의 경우, 값 2 또는 가능한 임의의 다른 상수 (k)와 같이, 다른 상수들을 오일러 수(e) 자리에 이용할 수 있다.
상기 레이트 제어 비디오 인코딩 중에, 상기 매개 방정식은 f( qp )를 정의하는 프로그램 가능한 변수들에 기초하여 초기화될 수 있다. 그리고 나서 ρ의 실제 값(실제 ρ)이 선택된 상기 QP 값들에 대해 계산될 수 있다. 이후에 f( qp )를 정의하는 상기 프로그램가능한 변수들을 조정하여 상기 예상되는 ρ QP 간의 관계를 더 잘 근사화할 수 있다. 상술한 기술들은 비디오 블록 수준 레이트 제어(예컨대, 매크로블록 수준(macroblock level)), 또는 프레임 수준 레이트 제어에 적용될 수 있다. 우선적인 일 구현으로, 비디오 블록 수준 제어가 적용되지만, 상기 매개 방정식의 변수들은 프레임 수준에서 조정된다.
일 실시예로, 본 명세서는 비디오 시퀀스를 저장하는 메모리, 그리고 양자화 파라미터들(QP들)에 대한 양자화 후의 영-아닌 계수들의 예상 개수(예상 ρ들)를 매핑하는 매개 방정식을 이용하여 비디오 시퀀스의 레이트 제어 비디오 인코딩을 위한 양자화 파라미터(QP)를 선택하는 인코더(encoder)를 포함하는 비디오 인코딩 장치를 제시한다.
다른 실시예로, 본 명세서는 양자화 파라미터들 (QP들)에 대한 양자화 후의 영-아닌 계수들의 예상 개수(예상 ρ들)를 매핑하는 매개 방정식을 이용하여 양자화 파라미터(QP)를 선택하는 단계, 그리고 상기 선택된 QP를 이용하여 하나 이상의 비디오 블록들을 인코딩하는 단계를 포함하는 레이트 제어 비디오 인코딩 방법을 제시한다.
여기 기술된 다양한 기술들은 하드웨어, 소프트웨어, 펌웨어 또는 그들의 임의의 조합인 디지털 비디오 장치에서 구현될 수 있다. 소프트웨어로 구현된다면, 상기 소프트웨어는 디지털 신호 처리기(DSP)와 같은, 프로그램가능한 처리기에서 실행될 수 있다. 그러한 경우, 상기 기술들을 실행하는 소프트웨어는 초기에 컴퓨터로 읽을 수 있는 매체에 저장되고 디지털 비디오 장치에서의 효율적인 레이트 제어 인코딩을 위해 프로그램가능 처리기에 로드(load)되어 실행될 수 있다.
다양한 실시예들에 대해 추가적인 상세내용들은 첨부된 도면들 및 이하의 실시예에 제시된다. 다른 특징, 목적 및 이점들은 실시예와 도면들, 그리고 청구의 범위들을 통해 명확해질 것이다.
본 명세서는 비디오 인코딩을 개선하는데 이용가능한 레이트 제어 기술들을 제시한다. 상기 기술들은 MPEG-4 표준, ITU H.263 표준, ITU H.264 표준, 또는 다른 표준들과 같은, 임의의 다양한 비디오 인코딩 표준들과 함께 이용될 수 있다. 상기 기술은 프레임 당 인코딩 되는 비트의 수(인코딩 레이트), 그리고 양자화 이후 프레임들의 비디오 블록들의 영이-아닌 계수들의 수 사이의 관계를 활용한다. 양자화 후의 프레임들의 비디오 블록들의 영이-아닌 계수들의 수는 로(ρ)로 칭한다. ρ의 값은 일반적으로 비디오 인코딩에 이용되는 양자화 파라미터(QP)에 비례한다. 따라서, 본 명세서는 레이트 제어 비디오 인코딩을 위해 ρQP 간의 관계를 이용하는 기술을 제시한다.
더 상세하게는, 본 명세서에 제시되는 상기 기술은 매개 방정식을 활용하여 양자화 파라미터(QP)에 대해 ρ의 예상되는 값을 매핑(map)한다. ρ는 일반적으로 인코딩 레이트에 비례하므로, 요구되는 ρ가 정의될 수 있고 요구되는 인코딩 레이트를 달성하는 바람직한 QP를 선택하도록 이용될 수 있다. 상기 매개 방정식은 초기화될 수 있지만, 그 후 비디오 인코딩 동안에 조정되어 상기 매개 방정식에 의해 정의된 예상 ρ가 선택된 QP로부터 산출되는 실제 ρ를 더 잘 근사화 하게 한다. 이러한 방법으로, 상기 매개 방정식은 비디오 인코딩 동안에 동적으로 조정되어 선택된 QP들이 더 정확하게 실제 ρ들에 매핑되어, 요구되는 인코딩 레이트를 더 정확히 달성하게 한다.
상기 예상 ρ를 정의하는데 이용되는 매개 방정식은 다음의 형태이며:
ρ=nc×e - f( qp ) ,
여기서 e는 오일러(Euler) 수(상수 2.71828182845904523536028747135...)를 나타내고, ρ는 양자화 후 프레임들의 비디오 블록들의 영-아닌 계수들의 예상되는 개수를 나타내고, nc는 고려중인 유닛의 계수들의 개수를 나타내고(예컨대, 프레임 또는 비디오 블록 내의 계수들의 수), f( qp )는 양자화 파라미터의 매개 함수(parametric function)이다. 예를 들어, f( qp)는 단순한 다항식 또는 지수함수를 포함할 수 있다. 일부의 경우, e의 값은, 2, 또는 더 일반적으로, 다른 상수 (k)와 같은 다른 상수들로 대체될 수 있다. 임의의 경우에, 유용한 f( qp)의 예들은 다음을 포함한다:
f( qp) = α×qp,
f( qp) =α×qp +β,
f( qp)=α×qp 2 +β×qp + δ,
또는 지수함수:
f( qp)= α×qp β .
이러한 예들에서, qp는 양자화 파라미터(또한 여기서 QP로도 칭함)를 나타낸다.
상기 변수 α, βδ는 상기 레이트 제어 기술들 동안에 조정되어 상기 매개 방정식에서 ρqp간의 관계를 더 잘 근사화할 수 있는 프로그램가능한 파라미터들을 포함한다. 특히, 인코딩 프로세스 동안, 상기 프로그램가능 파라미터들이 조정되어 예상 ρ가 다른 QP들에 대한 실제 ρ에 충분히 대응한다. 본 명세서의 상기 기술들에 의해 이용될 수 있는 수많은 매개 방정식의 예들이 여기 기술되었을지라도, 다른 많은 매개 방정식들 또한 유용할 수 있다.
도 1은 소스 장치(12)가 인코딩된 비디오 데이터 시퀀스를 통신 링크(15)를 통해 수신 장치(14)로 전송하는 예시적인 시스템(10)을 나타내는 블록 다이어그램이다. 소스 장치(12) 및 수신 장치(14)는 모두 디지털 비디오 장치들이다. 특히, 소스 장치(12)는 MPEG-4 표준, ITU H.263 표준, ITU H.264 표준, 또는 레이트 제어 비디오 인코딩을 이용할 수 있는 임의의 다양한 다른 표준들과 같은 비디오 표준들에 따라 비디오 데이터를 인코딩한다. 시스템(10)의 장치들(12, 14) 중 하나 또는 모두는, 비디오 인코딩 프로세스를 개선하기 위해, 이하에서 더 상세히 기술하는 바와 같이, 레이트 제어 기술들을 구현한다. 그러한 레이트 제어 기술들은 무선 통신 링크와 같이, 제한된 대역폭 통신 링크(15)를 통해 비디오 시퀀스들의 실시간 전송에 특히 유용하다.
통신 링크(15)는 무선 링크, 물리적 전송선, 광섬유, 근거리 정보 통신망, 광역 통신망, 또는 인터넷과 같은 글로벌 네트워크같은 패킷 기반 네트워크, 공중 전화망(PSTN), 또는 데이터를 전송할 수 있는 임의의 다른 통신 링크를 포함한다. 따라서, 통신 링크(15)는 비디오 데이터를 소스 장치(12)로부터 수신 장치(14)로 전송하기 위한, 임의의 적절한 통신 매체, 또는 아마도 상이한 네트워크들과 링크들의 집합을 나타낸다. 그러나, 전술한 바와 같이, 통신 링크(15)는 제한된 대역폭을 가질 수 있어서, 링크(15)를 통한 비디오 시퀀스들의 실시간 전송을 위해 레이트 제어가 매우 중요하게 된다. 상기 제한된 대역폭은 통신 링크(15) 상에서의 물리적 제약, 또는 통신 링크(15)의 제공자에 의해 부과되는 서비스 품질(quality-of-service, QoS) 제한들 때문일 수 있다.
소스 장치(12)는 비디오 데이터를 인코딩하고 전송할 수 있는 임의의 디지털 비디오 장치를 포함할 수 있다. 소스 장치(12)는 디지털 비디오 시퀀스들을 저장하는 비디오 메모리(16), 상기 시퀀스들을 인코딩하는 비디오 인코더(18), 그리고 상기 인코딩된 시퀀스들을 통신 링크(15)를 통해 소스 장치(14)로 전송하는 송신기(20)를 포함할 수 있다. 비디오 인코더(18)는, 예를 들어, 여기 기술된 바와 같이, 다양한 하드웨어, 소프트웨어 또는 펌웨어, 또는 비디오 인코딩 기술들을 제어하기 위하여 프로그램가능 소프트웨어 모듈들을 실행하는 하나 이상의 디지털 신호 처리기(DSP)들을 포함할 수 있다. 관련된 메모리 및 로직 회로가 상기 비디오 인코딩 기술들을 제어하는데 있어서 상기 DSP를 지원하기 위해 제공될 수 있다.
소스 장치(12)는 또한 비디오 카메라와 같은, 비디오 캡춰(capture) 장치(23)를 포함하여 비디오 시퀀스들을 캡춰하고 상기 캡춰된 시퀀스들을 메모리(16)에 저장할 수 있다. 특히, 비디오 캡춰 장치(23)는 전하 결합 소자(charge coupled device, CCD), 전하 주입 소자(charge injection device), 광 다이오드(photodiode) 어레이(array), 상보성 금속 산화막 반도체(CMOS) 소자, 또는 비디오 이미지들이나 디지털 비디오 시퀀스들을 캡춰할 수 있는 임의의 다른 감광성 장치를 포함할 수 있다.
추가적인 예들로써, 비디오 캡춰 장치(23)는 텔레비전, 비디오 카세트 레코더, 캠코더, 또는 다른 비디오 장치들로부터의 아날로그 비디오 데이터를 디지털 비디오 데이터로 변환하는 비디오 변환기(video converter)를 포함할 수 있다. 일부 실시예에서, 소스 장치(12)는 통신 링크(15)를 통해 실시간 비디오 시퀀스들을 전송하도록 구성될 수 있다. 그러한 경우, 수신 장치(14)는 상기 실시간 비디오 시퀀스들을 수신하고 상기 비디오 시퀀스들을 사용자에게 디스플레이할 수 있다. 대안적으로, 소스 장치(12)는 수신 장치(14)로 보내지는 비디오 시퀀스들을 비디오 데이터 파일들로써, 즉 비 실시간으로 캡춰하고 인코딩할 수 있다. 따라서, 소스 장치(12) 및 수신 장치(14)는, 예를 들어 이동 무선망에서, 비디오 통신, 비디오 클립 재생, 비디오 메일(mail), 또는 비디오 컨퍼런스와 같은 애플리케이션들을 지원할 수 있다. 장치들(12 및 14)은 도 1에 구체적으로 도시되지 않은 다양한 다른 구성요소들을 포함할 수 있다.
수신 장치(14)는 비디오 데이터를 수신하고 디코딩(decode)할 수 있는 임의의 디지털 비디오 장치의 형태를 취할 수 있다. 예를 들어, 수신 장치(14)는, 예컨대 중간(intermediate) 링크, 라우터, 기타 네트워크 장비 등을 통해 송신기(20)로부터 인코딩된 디지털 비디오 시퀀스들을 수신하는 수신기(22)를 포함할 수 있다. 수신 장치(14)는 또한 상기 시퀀스들을 디코딩하기 위한 비디오 디코더(24), 그리고 상기 시퀀스들을 사용자에게 디스플레이하는 표시 장치(26)를 포함할 수 있다. 그러나, 일부 실시예에서, 수신 장치(14)는 집적된 표시 장치(14)를 포함하지 않을 수 있다. 그러한 경우, 수신 장치(14)는 상기 수신된 비디오 데이터를 디코딩하여 개별 표시 장치, 예컨대 텔레비전 또는 모니터를 구동하는 수신기로서 기능할 수 있다.
소스 장치(12) 및 수신 장치(14)에 관한 예시적인 장치들은 컴퓨터 네트워크 상에 위치한 서버, 워크스테이션 또는 다른 데스크톱 컴퓨팅 장치들, 그리고 랩톱 컴퓨터 또는 개인 휴대 정보 단말(PDA)들과 같은 이동 컴퓨팅 장치들을 포함한다. 다른 예시들로 디지털 텔레비전 방송 위성 및 디지털 텔레비전, 디지털 카메라, 디지털 비디오 카메라 또는 다른 디지털 레코딩 장치들, 비디오 기능을 구비한 이동 전화와 같은 디지털 비디오 전화, 비디오 기능을 구비한 직접 양방향 통신 장치들, 기타 무선 비디오 장치 등과 같은 수신 장치들을 포함한다.
일부의 경우, 소스 장치(12) 및 수신 장치(14) 각각은 디지털 비디오 데이터를 인코딩 및 디코딩하기 위한 인코더/디코더(CODEC)를 포함한다. 특히, 소스 장치(12) 및 수신 장치(14) 모두는 메모리와 디스플레이 뿐만 아니라 송신기 및 수신기를 포함할 수 있다. 후술된 인코딩 기술들 다수가 인코더를 포함하는 디지털 비디오 장치의 관점에서 기술된다. 그러나, 상기 인코더는 CODEC의 일부를 형성할 수 있다는 점을 고려하여야 한다. 그러한 경우, 상기 CODEC은 하드웨어, 소프트웨어, 펌웨어, DSP, 마이크로프로세서, 주문형 반도체(ASIC), 필드 프로그래머블 게이트 어레이(field programmable gate array, FPGA), 이산 하드웨어 컴포넌트, 또는 이들의 다양한 조합 내에서 구현될 수 있다.
소스 장치(12) 내부의 비디오 인코더(18)는 비디오 데이터를 인코딩하기 위해 비디오 프레임들의 시퀀스 내부의 픽셀들의 블록들 상에서 동작한다. 예를 들어, 비디오 인코더(18)는 전송될 비디오 프레임이 픽셀들의 블록들(비디오 블록으로 칭함)로 분할되는 모션 추정(motion estimation) 및 모션 보상(motion compensation) 기술들을 실행할 수 있다. 예시 목적의, 상기 비디오 블록들은 임의의 크기의 블록들을 포함할 수 있으며, 주어진 비디오 시퀀스 내에서도 다를 수 있다. 예를 들어 ITU H.264 표준은 16 x 16 비디오 블록, 16 x 8 비디오 블록, 8 x 16 비디오 블록, 8 x 8 비디오 블록, 8 x 4 비디오 블록, 4 x 8 비디오 블록 및 4 x 4 비디오 블록들을 지원한다. 비디오 인코딩에서 더 작은 비디오 블록들을 이용하는 것은 인코딩에 있어서 더 나은 해상도를 가져올 수 있으며, 특히 더 높은 수준의 디테일(detail)을 포함하는 비디오 프레임의 자리에 이용될 수 있다. 게다가, 비디오 인코더(18)는 4 x 4 비디오 블록들 상에서 동작하고, 필요하다면, 상기 4 x 4 비디오 블록들로부터 더 큰 비디오 블록들을 복원하도록 설계될 수 있다. MPEG-4와 같은 표준들에 대해, 상기 비디오 블록들은 16 x 16 비디오 블록들을 포함할 수 있으며, 종종 "매크로블록(macroblock)"으로 지칭된다.
비디오 블록의 각 픽셀(pixel)은 색도(chromaticity) 및 광도(luminosity)의 값으로 색채(color)와 명암도(intensity)와 같은 픽셀의 시각적 특성들을 정의하는 다양한 n-비트 값들, 예컨대 8 비트로 표현될 수 있다. 각 픽셀은 색도 및 광도 모두에 대해 하나 이상의 8-비트 값들을 가질 수 있다. 그러나, 본 명세서의 상기 기술들은 상기 픽셀들의 포맷에 제한되는 것은 아니며, 더 간단한 적은-비트 픽셀 포맷들 또는 더 복잡한 큰-비트 픽셀 포맷들로 확장될 수 있다. 상기 픽셀들은 다른 색 좌표 시스템(color coordinate system)들에 따라 정의될 수도 있다. 게다가, 상기 비디오 블록들은 픽셀 값들로써 표현되는 상기 비디오 블록들의 이산 코사인 변환(discrete cosine transform, DCT)을 따라, DCT 계수들에 의해 표현될 수 있다. 대안적으로, 상기 비디오 블록들은 상기 픽셀 값들의 웨이브릿 변환(wavelet transform)을 따라, 영이-아닌(non-zero) 웨이브릿 값들로써 표현될 수 있다. 한마디로, 여기 기술된 레이트 제어 기술들은 다양한 인코딩 표준들, 픽셀 포맷들, 그리고 비디오 블록 크기와 형태들에 적용될 수 있다. 상기 선택된 양자화 파라미터(QP)는 특정한 비디오 프레임의 인코딩에서 발생될 영이-아닌 계수들의 수를 정의하고 제한한다.
상기 레이트 제어 기술들은 비디오 인코딩 프로세스 동안에 실행될 수 있으며, 그러한 인코딩 동안 적응되거나 조정될 수 있다. 비디오 프레임을 인코딩하기 위해, 상기 비디오 프레임의 각 비디오 블록들에 대해서, 소스 장치(12)의 비디오 인코더(18)는 유사한 비디오 블록(예측 비디오 블록(prediction video block)으로 칭함)을 식별하기 위해 이미 송신된 하나 이상의 선행하는 비디오 프레임들(또는 이후의 비디오 프레임들)에 대해 메모리(16)에 저장된 비디오 블록들을 검색함으로써 모션 추정을 수행할 수 있다. 일부의 경우, 상기 예측 비디오 블록(prediction video block)은 상기 선행 또는 이후의 비디오 프레임으로부터 "최상의 예측"을 포함할 수 있지만, 본 명세는 그러한 점에 한정되지는 않는다. 비디오 인코더(18)는 모션 보상(motion compensation)을 수행하여 인코딩 될 현재 비디오 블록과 상기 최상의 예측 사이의 차이를 나타내는 차분 블록(difference block)을 생성한다. 모션 보상은 보통 모션 벡터(motion vector)를 이용하여 최상 예측 비디오 블록을 인출(fetch)하여, 입력 블록으로부터 최상 예측을 차감하여 차분 블록을 발생시키는 동작을 칭한다. 상기 레이트 제어 기술들은 비디오 인코딩 프로세스 동안 인코딩된 비디오 블록들을 양자화하는데 이용되는 양자화 파라미터(QP)를 정의한다. 여기 기술된 바와 같이, 본 명세는 비디오 블록-수준 또는 프레임 수준의 레이트 제어 인코딩을 위해 이용되는 상기 QP들을 정의하기 위해 매개 방정식의 이용을 고려한다.
상기 모션 보상 프로세스가 상기 차분 블록을 생성한 후, 일련의 추가적인 인코딩 단계들이 일반적으로 상기 차분 블록을 인코딩하기 위해 수행된다. 이러한 추가적인 인코딩 단계들은 이용 중인 인코딩 표준에 좌우될 수 있다. 예를 들어, MPEG-4 호환 인코더들에서, 상기 추가적인 인코딩 단계들은 스칼라 양자화(scalar quantization), 래스터-대-지그재그 리오더링(raster-to-zigzag reordering), 런-렝스 인코딩(run-length encoding), 허프만(Huffman) 인코딩에 이은 8x8 이산 코사인 변환을 포함할 수 있다. 그러나, 일부의 경우, 웨이브릿 변환들, 또는 상기 비디오 블록들의 다른 변환들을 DCT 변환 대신 이용할 수 있다. 양자화 후의 영이-아닌 계수들의 수는 최고의 관심사인데, 이 값이 주어진 블록 또는 프레임을 인코딩하는데 필요한 비트들의 수에 영향을 미치기 때문이다.
인코딩 되고 나면, 상기 인코딩된 차분 블록은 비디오 블록을 상기 인코딩을 위해 이용되었던 이전 프레임(또는 이후 프레임)과 식별하는 모션 벡터와 함께 전송될 수 있다. 이러한 방법으로, 각 프레임을 독립적인 그림으로 인코딩하는 대신, 비디오 인코더(18)는 인접 프레임들 사이의 차분(difference)을 인코딩한다. 그러한 기술들은 비디오 시퀀스의 각 프레임을 정확하게 나타내는데 필요한 데이터량을 현저히 감소시킬 수 있다.
상기 모션 벡터는 인코딩 되고 있는 비디오 블록의 좌-상단 코너(upper-left hand corner)에 대한 픽셀 위치를 정의할 수 있지만, 모션 벡터들에 대한 다른 포맷들도 이용될 수 있다. 어떠한 경우에도, 모션 벡터들을 이용하여 비디오 블록들을 인코딩 함으로써, 비디오 데이터 스트림(stream)들을 전송하기 위한 요구 대역폭이 현저히 감소될 수 있다.
일부의 경우, 비디오 인코더(18)는 인터 프레임(inter frame) 인코딩과 함께, 인트라 프레임(intra frame) 인코딩을 지원할 수 있다. 인트라-프레임 인코딩은 프레임들 내의 유사점들을 활용(공간(spatial) 또는 인트라-프레임 상관(correlation)으로 칭함)을 활용하여 상기 비디오 프레임들을 추가로 압축한다. 인트라-프레임 압축은 일반적으로, 이산 코사인 변환(DCT) 인코딩과 같은, 스틸 이미지들을 압축하기 위한 텍스처 인코딩(texture encoding)에 기초한다. 인트라-프레임 압축은 종종 인터-프레임 압축과 함께 이용된다.
수신 장치(14)의 수신기(22)는 모션 벡터 형태의 인코딩된 비디오 데이터 및 인코딩 중인 비디오 블록과 모션 추정에 이용되는 최상 예측(best prediction) 사이의 인코딩된 차분(difference)들을 나타내는 인코딩된 차분 블록들을 수신할 수 있다. 그러나, 일부의 경우, 모션 벡터들을 전송하기 보다는, 상기 모션 벡터들과 이전에 계산된 모션 벡터 예측자(motion vector predictor, MVP) 간의 차이가 전송된다. 어떠한 경우에도, 디코더(24)는 디스플레이 장치(26)를 통해 사용자에게 디스플레이 하기 위한 비디오 시퀀스들을 발생시키기 위해 비디오 디코딩을 수행할 수 있다. 수신 장치(14)의 상기 디코더(24)는 또한 인코더/디코더(CODEC)으로서 구현될 수 있다. 그러한 경우, 소스 장치(12) 및 수신 장치(14) 모두 디지털 비디오 시퀀스들을 인코딩, 전송, 수신 및 디코딩할 수 있다.
본 명세서에 따라, 비디오 인코더(18)는 레이트 제어 인코딩을 이루기 위해 동적인 방법으로 비디오 인코딩을 위한 양자화 파라미터(QP)들을 선택한다. 상기 QP는 상기 비디오 블록들이 인코딩되면서 생성된 비트들의 수를 정의한다. 따라서, 상기 선택된 QP들은 초당 인코딩되는 비트들의 수에 직접적으로 영향을 미친다. 상기 QP가 증가할수록, 더 적은 데이터가 보존되며 비디오 인코딩의 품질은 악화될 수 있다. 상기 QP가 감소할수록, 더 많은 데이터가 보존되며 상기 비디오 인코딩의 품질은 향상된다. 그러나, 상기 QP가 너무 작으면, 초당 인코딩되는 비트 수는 할당된 대역폭을 초과하여, 제한된 대역폭 내에서 프레임들을 전송할 능력을 손상시킬 수 있다. 동적인 방법으로 상기 QP를 선택함으로써, 비디오 프레임들의 전송을 위한 비트율이 충분히 일정해질 수 있다.
더 상세하게는, 비디오 인코더(18)는 로(ρ)의 값들을 비디오 인코딩에 이용되는 상기 양자화 파라미터(QP)들로 매핑하기 위해 매개 방정식에 기초하여 상기 QP들을 선택한다. 다시 말해, 상기 양(ρ)은 양자화 후 비디오 블록들의 영이-아닌 계수들의 수를 나타내며, 일반적으로 비디오 인코딩에 이용되는 비트들의 수에 비례한다. 따라서, 비디오 인코더(18)는 레이트 제어 비디오 인코딩을 얻기 위해 ρQP간의 관계를 이용한다. ρ가 상기 비트-율(bit-rate)에 거의 선형적으로 관계될수록, 상기 ρ-QP 매개 방정식을 이용하여 효과적인 레이트 제어 비디오 인코딩을 달성하는 QP들을 선택할 수 있다.
상기 매개 방정식이 초기화될 수 있지만, 그 후에 비디오 인코딩 동안 조정되어 상기 매개 방정식에 의해 정의되는 예측된 ρ가 선택된 QP들로부터 얻어지는 실제 ρ를 더 잘 근사화하게 된다. 상기 매개 방정식에 대한 그러한 조정들은 각 비디오 블록, 또는 각 프레임과 함께 발생할 수 있다. 바람직한 일 실시예로, 비디오 블록 수준 레이트 제어가 적용되지만, 상기 매개 방정식의 변수들은 프레임 수준에서 조정된다.
도 2는 소스 장치(12)에 대응할 수 있는 장치(30)의 예시적인 블록 다이어그램이다. 일반적으로, 장치(30)는 여기 기술된 것과 같은 레이트 제어 인코딩 기술들을 수행할 수 있는 디지털 비디오 장치를 포함한다. 장치(30)는 MPEG-4, ITU H.263, ITU H.264, 또는 여기 기술된 상기 레이트 제어 기술들이 도움이 될 수 있는 다른 비디오 인코딩 표준들에 따를 수 있다.
도 2에 도시된 바와 같이, 장치(30)는 비디오 시퀀스들을 인코딩하는 비디오 인코딩 장치(32), 그리고 인코딩 전후에 상기 비디오 시퀀스들을 저장하는 비디오 메모리(34)를 포함한다. 장치(30)는 또한 상기 인코딩된 시퀀스들을 다른 장치로 전송하는 송신기(36), 그리고 비디오 카메라와 같이, 가능하게는 비디오 시퀀스들을 캡춰(capture)하고 메모리(34)에 캡춰된 시퀀스들을 저장하는 비디오 캡춰 장치(38)를 포함할 수 있다. 장치(30)의 다양한 구성요소들은 통신 버스(35)를 통해 통신적으로 접속될 수 있다. 인트라-프레임 인코더 구성요소들과 같은, 다양한 다른 구성요소들, 다양한 필터들, 또는 다른 구성요소들 또한 장치(30)에 포함될 수 있지만, 간소화를 위해 특별히 도시하지는 않았다.
일반적으로 비디오 메모리(34)는 상대적으로 큰 메모리 공간을 포함한다. 예를 들어, 비디오 메모리(34)는 다이나믹 램(dynamic random access memory, DRAM), 또는 플래시(FLASH) 메모리를 포함할 수 있다. 다른 예시들로, 비디오 메모리(34)는 비-휘발성 메모리 또는 임의의 다른 데이터 저장 장치를 포함할 수 있다.
비디오 인코딩 장치(32)는 하드웨어, 소프트웨어, 펌웨어, 및/또는 처리기(processor)들이나 디지털 신호 처리기(DSP)들의 조합을 포함하는, 이동 무선전화용 칩셋(chip set)을 포함할 수 있다. 비디오 인코딩 장치(32)는 일반적으로 국부 기억장치(37)에 연결된 비디오 인코더(28)를 포함한다. 국부 기억장치(37)는 비디오 메모리(34)에 비하여 더 작고 더 빠른 메모리 공간을 포함할 수 있다. 예를 들어, 국부 기억장치(37)는 동기식 램(synchronous random access memory, SRAM)을 포함할 수 있다. 국부 기억장치(37)는 처리기-집중(processor-intensive) 인코딩 프로세스 동안 데이터에 대한 매우 빠른 액세스를 제공하기 위해 비디오 인코딩 장치(32)의 다른 소자들에 집적된 "온-칩(on-chip)" 메모리를 포함할 수 있다. 특정 비디오 프레임의 인코딩 동안, 인코딩 될 현재 비디오 블록은 비디오 메모리(34)로부터 국부 기억장치(37)로 로드(load) 될 수 있다. 최상 예측을 위치시키는데 이용되는 검색 공간(search space) 또한 비디오 메모리(34)로부터 국부 기억장치(37)로 로드될 수 있다. 그러나, 다른 메모리들은 여기 기술된 상기 기술들을 실행하는데 불필요하다. 달리 말하면, 비디오 인코더(28)는 온-칩 또는 오프-칩(off-chip) 메모리에 액세스하여 상기 비디오 블록들과 상기 검색 공간을 획득할 수 있다.
상기 검색 공간은 하나 이상의 선행하는 비디오 프레임들(또는 이후의 프레임들)의 픽셀들의 서브셋(subset)을 포함할 수 있다. 선택된 서브셋은 인코딩될 현재 비디오 블록과 근접하게 일치하는 최상 예측의 식별(identification)을 위해 가능성 있는 위치로서 미리 식별될 수 있다. 또한, 상기 검색 공간은, 상이한 검색 단계들이 이용된다면, 모션 추정의 진행에 따라 변경할 수 있다. 그러한 경우, 검색 공간은 상기 검색 공간의 크기의 면에서 단계적으로 더 작아질 수 있으며, 이를 통해 이후의 검색들은 이전 검색들보다 더 큰 해상도에서 수행된다.
국부 기억장치(37)는 인코딩될 현재 비디오 블록 및 검색 공간으로써 로드되며, 인터-프레임 인코딩에 이용되는 하나 이상의 비디오 프레임들 일부 또는 모두를 포함할 수 있다. 모션 추정기(40)는 최상 예측을 식별하기 위해 현재 비디오 블록을 상기 검색 공간 내의 다양한 비디오 블록들과 비교한다. 그러나, 일부의 경우, 상기 인코딩에 대한 적절한 조합(match)이, 특별히 모든 가능한 후보들을 체크하지 않고, 더 빨리 식별될 수 있다. 그러한 경우, 상기 적절한 조합은 비록 효율적인 비디오 인코딩에 적합하기는 하나, 실제로 "최상' 예측이 아닐 수 있다. 일반적으로, 문구 "예측 비디오 블록(prediction video block)"은 적절한 조합을 칭하며, 이는 최상 예측일 수 있다.
모션 추정기(40)는 인코딩될 현재 비디오 블록과 메모리(37)의 검색 공간의 후보 비디오 블록들 간의 비교를 수행한다. 일부의 경우, 후보 비디오 블록들은 분할 내삽(fractional interpolation)을 위해 발생된 비-정수(non-integer) 픽셀 값들을 포함할 수 있다. 예를 들어, 모션 추정기(40)는 상기 후보 비디오 블록에 대한 차분치(difference value)를 정의하기 위해 차분 절대치의 합(sum of absolute difference, SAD) 기술, 차분 제곱치의 합(sum of squared difference, SSD) 기술, 또는 다른 비교 기술들을 수행할 수 있다. 일반적으로 더 낮은 차분치는 후보 비디오 블록이 더 잘 일치(match)하며, 따라서 더 큰 차분치들을 가져오는 다른 후보 비디오 블록들보다 모션 추정 인코딩에 이용하는데 더 나은 후보임을 나타낸다.
결국, 모션 추정기는 "최상 예측"을 식별하며, 이는 인코딩될 비디오 블록에 가장 근접하게 일치하는 후보 비디오 블록이다. 그러나, 많은 경우에, 적절한 조합은 상기 최상 예측 이전에 위치할 수 있으며, 그러한 경우에는, 상기 적절한 조합이 상기 인코딩에 이용될 수 있음을 유의하여야 한다. 다시 말해, 예측 비디오 블록은 적합한 조합을 칭하며, 이는 최상 예측일 수 있다.
모션 추정기(40)에 의해 비디오 블록에 대하여 최상 예측이 식별되면, 모션 보상기(42)는 현재 비디오 블록과 최상 예측 간의 차분을 나타내는 차분 블록을 생성한다. 차분 블록 인코더(difference block encoder)(44)는 추가로 상기 차분 블록을 인코딩하여 상기 차분 블록을 압축하고, 상기 인코딩된 차분 블록은 다른 장치로의 전송을 위해, 모션 벡터(또는 모션 벡터와 모션 벡터 예측자 사이의 차이)를 따라 전송되어 상기 검색 공간으로부터 어느 후보 비디오 블록이 인코딩에 이용되었는지를 식별할 수 있다. 간소화를 위해, 모션 보상 후에 인코딩을 수행하는데 이용되는 추가적인 컴포넌트들은 차분 블록 인코더(44)로 일반화되며, 특정 컴포넌트들은 지원되는 특정 표준에 따라 달라질 것이다. 달리 말하면, 차분 블록 인코더(44)는 차분 블록 상에서 하나 이상의 종래의 인코딩 기술들을 수행할 수 있으며, 이는 여기서 기술한 바와 같이 발생된다.
상기 인코딩 프로세스 동안, 레이트 제어는 특정 시퀀스를 인코딩하는데 이용되는 비트 수가 송신기(36)와 관련된 통신 채널의 대역폭 제한을 초과하지 않도록 보장한다. 그러한 레이트 제어를 수행하기 위해, 비디오 인코더(28)는 레이트 제어 유닛(46)을 포함한다. 레이트 제어 유닛(46)은 프레임 당 인코딩되는 비트수와 양자화 이후 비디오 블록들의 영이-아닌 계수들의 수 사이의 관계를 활용한다. 양자화 이후 비디오 블록들의 영이-아닌 계수들의 수를 나타내는, ρ의 값은 일반적으로 프레임 당 인코딩되는 비트의 수(및 일정한 프레임 레이트에서 초당 인코딩되는 비트 수)에 비례한다. 따라서, 레이트 제어 유닛(46)은 레이트 제어 비디오 인코딩을 달성하기 위해 ρQP사이의 관계를 이용한다.
더 상세하게는, 레이트 제어 유닛(46)은 ρ의 값들을 다른 QP들에 매핑하는 매개 방정식을 적용한다. 그리고 나서 QP들은 비디오 인코딩을 위해 요구되는 레이트들에 대응하는 ρ의 값들에 대해 선택될 수 있다. 상기 인코딩 프로세스 동안, 상기 매개 방정식이 갱신되어 ρQP간의 실제 관계를 더 잘 반영할 수 있다. 달리 말하면, 상기 매개 방정식은 초기화될 수 있지만, 그 후 비디오 인코딩 동안 조정되어 상기 매개 방정식에 의해 정의된 예측된 ρ가 선택된 QP로부터 유래한 실제 ρ를 더 잘 근사화하게 한다. 상기 매개 방정식에 대한 그러한 조정들은 각 비디오 블록, 또는 각 프레임에서 일어날 수 있다. 바람직한 일 실시예로, 비디오 블록 수준 레이트 제어가 적용되지만, 상기 매개 방정식의 변수들은 프레임 수준에서 조정된다.
상기 예측 ρ를 정의하기 위해 레이트 제어 유닛(46)에 의해 이용된 매개 방정식은 다음의 형태를 취할 수 있으며:
ρ=nc×e - f( qp ) ,
여기서 e는 흔히 오일러(Euler) 수(상수 2.71828182845904523536028747135...)로 지칭되는 수학적 상수를 나타내고, ρ는 양자화 후 프레임들의 비디오 블록들의 영-아닌 계수들의 예상되는 개수를 나타내고, nc는 고려중인 유닛의 계수들의 개수를 나타내고(예컨대, 프레임 또는 비디오 블록의 계수들의 수), 그리고 f( qp )는 양자화 파라미터의 매개 함수(parametric function)이다. 예를 들어, f( qp)는 단순한 다항식 또는 지수함수를 포함할 수 있다. 일부의 경우, e의 값은, 2, 또는 유사한, 다른 상수로 대체될 수 있다.
다시금, 유용한 f( qp)의 예들은 다음을 포함한다:
f( qp) = α×qp,
f( qp) =α×qp +β,
f( qp)=α×qp 2 +β×qp + δ,
또는 지수함수:
f( qp)= α×qp β .
이러한 예들에서, qp는 양자화 파라미터(또한 여기서 QP로도 칭함)를 나타낸다.
상기 변수 α, βδ는 상기 레이트 제어 기술들 동안에 조정되어 ρqp간의 관계를 더 잘 근사화할 수 있게 하는 프로그램가능한 파라미터들을 포함한다. 특히, 상기 인코딩 프로세스 동안, 상기 프로그램가능 파라미터들이 조정되어 예상 ρ가 다른 QP들에 대한 실제 ρ에 충분히 대응한다.
다른 예시로서, 레이트 제어 유닛(46)에 의해 이용되는 상기 매개 방정식은 실질적으로:
ρ = nc×2- α × qp - β ,
에 대응하며, 여기서 ρ는 상기 예측되는 ρ들, nc는 고려중인 유닛의 계수들의 수를 나타내고 상기 예측되는 ρ들의 최대값을 정의하며 αβ는 상기 조정가능한 파라미터들을 포함한다. 본 매개 방정식은 MPEG-4 및 H.263 레이트 제어에 특히 유용할 수 있다. 이 경우, 등식 ρ=nc×e - f( qp ) 의 상기 오일러 수 (e)가 상기 곡선의 정확도에 어떤 심각한 불이익을 초래하지 않고 상기 구현을 더 효율적으로 만들기 위해 상수 2로 대체된다.
또한, MPEG-4 및 H.263 레이트 제어를 위해, f(qp) =α×qp +βf(qp)에 대한 다른 후보들에 우선하여 이용될 수 있는데, 이는 상기 곡선의 정확도와 방정식 구현의 복잡성 사이의 절충을 나타낸다. 지수함수, 제 2-차 다항식, 그리고 제 1-차 다항식들과 같은, 상기 매개 방정식 군의 다른 구성요소의 정확도는 다양한 시뮬레이션으로 비교되었다. 지수 곡선이 가장 정확한 것으로 알려져 있을지라도, 다른 방정식들에 비하여 가장 고차의 복잡성을 가지는 것으로도 알려져 있다. 상기 정확도의 면에서 제 1-차 매개 방정식 f(qp) =α×qp +β, 그리고 제 2-차 방정식 간의 차이는 대수롭지 않다. 그러나, 상기 제 2-차 방정식이 3개의 미지수를 가지며 구현하기에 더 복잡한 반면, 상기 제 1-차 방정식은 단지 2개의 미지수를 가지며 또한 덜 복잡하다.
일부 구현들에서, ρ-QP 테이블이 이미 비디오 인코더에 의해 생성되는 중이라면, 상기 ρ-QP 테이블이 본 명세의 기술들에 의해 활용될 수 있다. 예를 들어, 레이트 제어 유닛(48)이 두 미지수들, αβ를 풀어야 할 필요가 있다면, 두 포인트에서 ρ-QP 테이블을 샘플링(sample)할 수 있다(그러한 테이블이 이미 이용가능한 경우). 제 1 포인트는 QP를 포함할 수 있으며 제 2 포인트는 근사적으로 2×QP일 수 있다. 상기 레이트 제어 기술의 이러한 변동에 대한 예외는 QP>25 인 경우들일 수 있는데, 예를 들어 MPEG-4 및 H.263에 대해서, 그러한 경우, 단지 하나의 포인트가 샘플링되고 β는 영(zero)으로 설정될 수 있다. 레이트 제어 유닛(48)은 또한 상기 제 2 샘플에서의 테이블 값 또는 두 샘플들에서의 테이블 값들이 영일 때와 같이, 다른 예외적인 경우들을 처리할 수도 있다. 상기 두 미지수들, αβ에 대한 갱신은 매 프레임마다 수행될 수 있지만, 다양한 구현들에서 갱신들이 더 자주 또는 덜 자주 실행될 수 있다.
그러나, ρ-QP 테이블은 여기 기술된 상기 레이트 제어 기술들을 구현하는데 요구되지는 않는다. 이용가능하다면, 예를 들어 종래에 ρ-QP 테이블을 이용하였던 기존의 인코더에서, 상기 ρ-QP 테이블이 여전히 이용되어 상기 매개 방정식의 조정가능한 파라미터들의 선택을 신속하게 할 수 있다. 그러나, 상기 조정가능 파라미터들은 그러한 테이블 없이 용이하게 결정될 수 있다.
사실, 종래의 레이트 제어 기술들과 여기 기술된 상기 파라메트릭 레이트 제어 기술들 간의 한가지 중요한 차이는 최상의 qp값을 위해 ρ-QP 룩업 테이블(lookup table, LUT)을 생성하고 검색하는 대신, 양자화 파라미터 qp의 값이 다음과 같은 매개 방정식을 이용하여 계산될 수 있다는 점이다:
qp=(-2log2(ρ/nc)-β)/α,
여기서 ρ는 예상되는 ρ들을 정의하며, nc는 고려중인 유닛의 계수들의 수(예를 들어, 프레임 내의 계수들의 수)를 나타내고 상기 예상 ρ들의 최대값을 한정하며 αβ는 조정가능한 파라미터들을 포함한다. 다시 말해, 인코딩 프로세스 동안, 상기 프로그램가능 파라미터들이 조정되어 상기 예상되는 ρ가 실질적으로 상이한 QP들에 대한 실제 ρ에 대응한다. 만일 ρ-QP 테이블이 이미 이용가능하다면, 이를 이용하여 상기 프로그램가능 파라미터들을 조정할 수 있지만, ρ-QP 테이블이 이용가능하지 않다면, 상기 조정가능 파라미터들은 특정한 QP들로부터 유래하는 실제 ρ들을 정의하는 특정 샘플 포인트들에 기초하여 선택될 수 있다.
f(qp)에 대한 지수 함수를 이용하는 점에 숨겨진 직관(intuition)은, 제 1 및 제 2차 다항 함수를 이용하는 점에 내재된 직관이 각각 라플라스(Laplacian)- 또는 가우스-분포에 유사한 곡선을 이용하는 것에 대응하는 반면, 일반화 가우스 분포(generalized Gaussian distribution)의 절반에 대한 ρ-QP 곡선의 유사성에 기초한다.
도 3은 매개 방정식을 이용하여 ρ의 예측 값들을 양자화 파라미터(QP)들에 매핑하는 프레임-수준 레이트 제어를 위한 기술을 나타내는 순서도이다. 도 3에 도시된 바와 같이, 비디오 인코더(28)의 레이트 제어 유닛(46)은 매개 방정식을 이용하여 프레임에 대한 QP를 결정한다(단계(301)). 초기에, 상기 매개 방정식은 초기화된 값들로 프로그래밍 될 수 있으며, 이로써 상기 매개 방정식은 예상되는 ρ의 값들을 QP들에 매핑한다. 그리고 나서 레이트 제어 유닛(46)은 상기 비디오 블록을 인코딩한다(단계(302)). 상기 프레임이 인코딩될 비디오 블록들을 더 포함하고 있다면(단계(303)의 아니오 분기), 레이트 제어 유닛(46)은 상기 프레임에 대한 양자화 파라미터를 이용하여 다른 비디오 블록들을 인코딩한다(단계(302)).
상기 프레임의 마지막에 도달하면(단계(303)의 예 분기), 다음 프레임이 인코딩을 위해 국부 기억장치(37)에 로드된다(단계(304)). 여기서, 레이트 제어 유닛(46)은 매개 방정식을 갱신한다(단계(305)). 특히, 레이트 제어 유닛(46)은 이전 프레임의 비디오 블록에 대해 선택된 QP로부터 유래한 ρ의 실제 값들을 결정할 수 있으며, 이는 상기 매개 방정식에 의해 상기 선택된 QP들에 매핑되었던 상기 예상 ρ들과는 약간 다를 수 있다. 이러한 방법으로, 이후의 프레임은 더 정확한 매개 방정식을 이용하여 인코딩될 것이다.
매개 방정식을 갱신(단계(305))한 뒤에, 상기 프로세스는 이후의 임의의 프레임들에 대해 반복된다(단계(306)의 예 분기). 이 경우, QP는 갱신된 상기 매개 방정식을 이용하여 다음 프레임에 대해 결정된다(단계(301)). 이 프로세스는 비디오 시퀀스의 모든 프레임들에 대해 반복되어 상기 시퀀스의 프레임-수준 레이트 제어 비디오 인코딩을 달성할 수 있다. 또한, 필요하다면, 예컨대 본 프로세스가 시작할 때, 상기 초기화된 방정식을 이용하여 실제로 비디오 블록들을 인코딩하지 않고 상기 매개 방정식을 더 정확하게 정의하기 위해, 본 프로세스는 주어진 비디오 프레임에 대해 다수의 패스(pass)를 생성할 수 있다. 그러나, 대부분의 경우, 상기 매개 방정식은 몇 프레임들 이후에 신속히 수렴하여 프레임 당 복수의 인코딩이 패스할 필요가 없게 한다.
도 4는 예상되는 ρ의 값들을 양자화 파라미터(QP)들로 매핑하기 위해 매개 방정식을 이용하는 비디오 블록-수준 레이트 제어를 위한 기술을 나타내는 순서도이다. 도 4에 도시된 바와 같이, 비디오 인코더(28)의 레이트 제어 유닛(46)은 매개 방정식을 이용하여 비디오 블록에 대한 QP를 결정한다(단계(401)). 처음에, 상기 매개 방정식은 초기화된 값으로 프로그램되어, 상기 매개 방정식이 ρ의 예상치들을 QP들로 매핑할 수 있다. 그리고 나서 레이트 제어 유닛(46)은 상기 비디오 블록을 인코딩하고(단계(402)), 상기 매개 방정식을 갱신한다(단계(403)). 특히, 레이트 제어 유닛(46)은 프레임의 하나 이상의 이전 비디오 블록들에 대하여 상기 선택된 QP들로부터 유래한 ρ의 실제값들을 결정할 수 있는데, 이는 상기 매개 방정식에 의해 상기 선택된 QP들로 매핑되었던 상기 예상 ρ들과는 약간 다를 수 있다. 이러한 방법으로, 이후의 비디오 블록들은 더 정확한 매개 방정식을 이용하여 인코딩될 것이다.
상기 프레임이 인코딩될 비디오 블록들을 더 포함한다면(단계(404)의 아니오 분기), 레이트 제어 유닛(46)은 상기 갱신된 매개 방정식에 의해 결정된 상기 양자화 파라미터들을 이용하여 다른 비디오 블록들을 인코딩한다(단계(402)). 본 프로세스는 프레임의 모든 비디오 블록들에 대해 반복되어 상기 시퀀스의 비디오 블록-수준 레이트 제어 비디오 인코딩을 달성할 수 있다. 도 3의 프로세스와 같이, 도 4의 프로세스는 이 경우, 특정 비디오 블록에 대해, 예를 들어 상기 프로세스가 시작될 때, 상기 초기화된 방정식을 이용하여 실제로 비디오 블록들을 인코딩하지 않고 상기 매개 방정식을 더 정확하게 정의하기 위해, 복수의 인코딩을 패스하도록 조정될 수 있다. 그러나, 대부분의 경우, 상기 매개 방정식은 몇몇 비디오 블록들 이후에 신속히 수렴되어 비디오 블록당 복수의 패스들이 필요하지 않게 될 것이다.
상기 프레임의 끝에 도달하면(단계(404)의 예 분기), 다음 프레임이 인코딩을 위해 국부 기억장치(37)에 로드된다(단계(405)). 여기서, 레이트 제어 유닛(46)은 이후의 임의의 프레임들에 대해 상기 프로세스를 반복한다(단계(406)의 예 분기). 다음 프레임에 대해, 가장 최근에 갱신된 매개 방정식을 이용하여 QP가 결정된다(단계(401)).
도 5는 프레임 수준에서 조정되는 매개 방정식을 이용하여 비디오 블록-수준 레이트 제어를 위한 기술을 나타내는 순서도이다. 예시 및 도시 목적으로써, 도 5는 매개 방정식 ρ=nc×e - f( qp ) 으로 프로그램된 레이트 제어 유닛(46)에 대하여 기술될 것이며, 여기서 e는 오일러 수를 나타내고, ρ는 양자화 이후 상기 프레임들의 비디오 블록들의 영이-아닌 계수들의 예상 개수를 나타내고, nc는 비디오 블록의 계수들의 개수를 나타내며, f( qp )f( qp) =α×qp +β에 의해 주어지는 양자화 파라미터의 매개 함수(parametric function)이며, 여기서 qp는 양자화 파라미터이고 αβ는 상기 매개 방정식의 조정가능한 파라미터들을 정의한다. 물론, 상기 정의된 방정식들 또는 다른 매개 방정식 중 하나와 같이, 다른 많은 매개 방정식들이 대안으로 이용될 수 있다.
도 5에 도시한 바와 같이, 레이트 제어는 초기화된다(단계(501)). 이러한 초기화는 αβ의 본래 값들을 정의하며 장치(30)의 제조 및 시험 중의 시뮬레이션에 의해 결정된 αβ의 평균치들에 기초할 수 있다. 상기 레이트 제어 인코딩 프로세스를 시작하기 위해, 프레임이 비디오 메모리(34)로부터 국부 기억장치(37)로 로딩된다(단계(502)). 레이트 제어 유닛은 상기 매개 방정식을 이용한 비디오 블록의 인코딩을 위해 QP를 결정한다(단계(503)). 그리고 나서 레이트 제어 유닛(46)은 상기 결정된 QP를 이용하여 비디오 블록을 인코딩한다(단계(504)). 상기 프레임이 인코딩될 비디오 블록들을 더 포함한다면(단계(505)의 아니오 분기), 레이트 제어 유닛(46)은 상기 매개 방정식을 이용하여 상기 비디오 블록들 각각에 대해 각각의 QP들을 결정하고 상기 각각의 QP들을 이용하여 비디오 블록들을 인코딩한다. 이러한 점에서, 상기 QP들은 비디오 블록 수준에서 결정되지만, 상기 QP들을 정의하는 매개 방정식은 특정 프레임에 대해 변하지 않는다.
상기 프레임의 끝에 도달하면(단계(505)의 예 분기), 레이트 제어 유닛은 상기 매개 방정식의 조정가능 파라미터들(αβ)을 갱신한다. 특히, 레이트 제어 유닛(46)은 이전 프레임의 비디오 블록에 대해 선택된 QP로부터 유래한 ρ의 실제 값들을 결정할 수 있으며, 이는 상기 매개 방정식에 의해 선택된 QP들로 매핑되었던 예상 ρ들과는 약간 다를 수 있다. 레이트 제어 유닛(46)은 새로운 αβ값들을 선택하여 ρ의 실제 값들이 상기 매개 방정식에 의해 QP의 값들로 더 정확히 매핑되도록 할 수 있다. 이러한 방법으로, 이후의 프레임은 ρQP간의 실제 관계를 더 잘 반영하는 더 정확한 매개 방정식을 이용하여 인코딩될 것이다.
상기 매개 방정식의 파라미터들을 갱신한 후(단계(506)), 본 프로세스는 비디오 시퀀스의 임의의 이후 프레임들에 대해 반복된다(단계(507)의 예 분기). 이 경우, 다음 프레임은 국부 기억장치(37)로 로드되고(단계(502)), 레이트 제어 유닛(46)은 매개 방정식을 이용하여 상기 비디오 블록들 각각에 대한 각각의 QP들을 결정하며(단계(503)) 상기 각각의 QP들을 이용하여 상기 비디오 블록들을 인코딩한다(단계(504)).
본 프로세스는 비디오 시퀀스의 모든 프레임들에 대해 반복되어, 각 프레임에 대한 매개 방정식 조정으로써, 상기 시퀀스의 비디오 블록-수준 레이트 제어 비디오 인코딩을 달성할 수 있다. 또한, 본 프로세스는, 예를 들어 상기 프로세스가 시작될 때, 실제로 초기화된 방정식을 이용하여 비디오 블록들을 인코딩하지 않고 상기 시퀀스의 처음 몇 프레임들에 대한 매개 방정식을 더 잘 정의하기 위해 특정 비디오 프레임에 대해 다수회 패스할 수 있다. 이는 추가적인 계산 부담으로써, 상기 레이트 제어의 정확도를 향상시킬 수 있다. 그러나, 대부분의 경우, 상기 매개 방정식은 몇개의 프레임들이 인코딩 된 이후 상기 ρ-QP 관계의 정확한 표현으로 신속히 수렴할 것이다. 그러므로, 프레임 당 다수회 패스에 대한 필요성은 보통 생기지 않을 수 있다.
다양한 실시예들이 기술되었다. 특히, 양자화 파라미터 QP와 영이-아닌 계수들의 수인 ρ간의 매핑을 나타내는 매개 방정식을 이용하는 다양한 레이트 제어 기술들이 제시되었다. 일부 유용한 매개 방정식들의 유용한 목록이 정확하게 이러한 관계를 나타낼 수 있는 것으로 확인되어 있다. 상기 기술들이 인코딩된 비디오 블록들을 정의하는 양자화된 DCT 계수들의 수를 제한하도록 동작할 수 있지만, 웨이브릿 변환 계수(wavelet transformed coefficient)들과 같은, 다른 종류의 계수들이 대안적으로 이용될 수 있다. 또한, 여기 기술된 상기 기술들은 P-프레임들(예측되는 프레임들(Predicted Frames))에 대해서만 적용될 수 있거나, 또는 I-프레임들(인트라-프레임들(Intra-Frames))과 P-프레임들 모두에 적용될 수 있다. 예를 들어, H.263, MPEG-4 및 H.264와 같은 많은 인코딩 표준들이 그러한 I-프레임들과 P-프레임들을 이용한다. 그러한 경우, 여기 기술된 상기 기술들은 P-프레임들에 대해서만 적용되거나, 또는 I-프레임들 및 P-프레임들 모두에 적용될 수 있다.
여기 기술된 상기 파라메트릭 레이트 제어는 프레임-수준 레이트 제어, 또는 비디오 블록-수준 레이트 제어를 제공하는 융통성을 가진다. 바람직한 실시예로, 비디오 블록 수준 레이트 제어가 매개 방정식에 대한 프레임-수준 갱신들과 함께 이용된다. 또한, 상기 비디오 블록-수준 레이트 제어 기술들은 두 QP 오프셋들(또는 그 이상)을 설정하여, 허용가능한 변동량을 교대로 결정하도록 구성될 수 있다. 일반적으로, 상기 오프셋들에 대해 더 높은 값들이, 비디오 품질을 더 희생하여, 더 낮은 수준의 변동을 보장한다. 시뮬레이션들을 통해 여기 기술된 상기 레이트 제어 기술들로써, 거의 동일 수준의 비디오 품질을 유지하면서 변동이 현저히 감소될 수 있다는 점이 제시되어 있다. 또한, 매개 방정식을 이용하여 각 비디오 블록에 대한 qp를 계산하는 것이 더 정확하고 ρ-QP 테이블을 생성하고 그리고/또는 검색하는 것보다 계산상 더 효율적일 수 있다.
여기 기술된 상기 기술들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수 있다. 소프트웨어로 구현된다면, 상기 기술들은 비디오 시퀀스들을 인코딩하는 장치 내에서 실행될 때, 상기 언급한 하나 이상의 방법들을 수행하는 프로그램 코드를 포함하는, 컴퓨터로 읽을 수 있는 매체를 가리킬 수 있다. 그러한 경우, 상기 컴퓨터로 읽을 수 있는 매체는 동기식 동적 램(synchronous dynamic random access memory, SDRAM)과 같은 램(RAM), 읽기용 기억 장치(read-only memory, ROM), 비휘발성 램(non-volatile random access memory, NVRAM), 전기적 소거 및 프로그램가능 읽기 전용 기억장치(EEPROM), 플래시 메모리(FLASH memory) 등을 포함할 수 있다.
상기 프로그램 코드는 컴퓨터로 읽을 수 있는 명령(instruction)들의 형태로 메모리에 저장될 수 있다. 그 경우, DSP와 같은 처리기(processor)는 여기 기술된 하나 이상의 상기 기술들을 수행하기 위해 메모리에 저장된 명령들을 실행할 수 있다. 일부의 경우, 상기 기술들은 DSP에 의해 실행되어 다양한 하드웨어 소자들이 상기 인코딩 프로세스를 가속하게 할 수 있다. 다른 경우에, 비디오 인코더는 마이크로프로세서(microprocessor), 하나 이상의 주문형 반도체(ASIC)들, 하나 이상의 필드 프로그래머블 게이트 어레이(FPGA)들, 또는 다른 하드웨어-소프트웨어 조합으로서 구현될 수 있다. 이러한 그리고 다른 실시예들은 이하의 청구의 범위에 포함된다.

Claims (33)

  1. 비디오 시퀀스(sequence)를 저장하는 메모리; 및
    양자화 이후 영이-아닌(non-zero) 계수들의 예상 개수들(예상 ρ들)을 양자화 파라미터(quantization parameter, QP)들로 매핑(map)하는 매개 방정식을 이용하여, 상기 비디오 시퀀스의 레이트 제어 비디오 인코딩(rate controlled video encoding)을 위한 양자화 파라미터(QP)를 선택하는 인코더를 포함하며,
    상기 매개 방정식은:
    ρ=nc×e - f(qp) 에 대응하며,
    여기서 e는 오일러 수(Euler's number)를 나타내고, ρ는 상기 예상 ρ들을 정의하고, nc는 고려중인 유닛(unit)의 계수들의 개수를 나타내고 상기 예상 ρ들의 최대값을 한정하며, f(qp)는 상기 양자화 파라미터(QP)의 매개 함수(parametric function)인,
    비디오 인코딩 장치.
  2. 제 1 항에 있어서,
    상기 인코더는 상기 비디오 시퀀스의 상이한 각각의 프레임들에 대해 각각의 QP들을 선택하고 상기 상이한 각각의 프레임들에 대해 상기 각각의 QP들을 이용하여 상기 비디오 시퀀스의 프레임-수준 레이트 제어 비디오 인코딩을 수행하는 비디오 인코딩 장치.
  3. 제 1 항에 있어서,
    상기 인코더는 상기 비디오 시퀀스의 비디오 프레임들의 상이한 각각의 비디오 블록들에 대해 각각의 QP들을 선택하고, 상기 상이한 각각의 비디오 블록들에 대한 상기 각각의 QP들을 이용하여 상기 비디오 시퀀스의 비디오 블록-수준 레이트 제어 비디오 인코딩을 수행하는, 비디오 인코딩 장치.
  4. 제 1 항에 있어서,
    상기 매개 방정식은 하나 이상의 조정가능한 파라미터들을 포함하며, 상기 인코더는 하나 이상의 선택된 QP들로부터 유래하는 양자화 이후의 영이-아닌 계수들의 하나 이상의 실제 개수들(실제 ρ들)을 결정하고 상기 예상 ρ들이 상기 실제 ρ들에 대응하도록 상기 매개 방정식의 조정가능한 파라미터들을 조정하는, 비디오 인코딩 장치.
  5. 삭제
  6. 제 1 항에 있어서,
    f(qp)는 다항 함수(polynomial function) 및 지수 함수(exponential function) 중 하나를 포함하는 비디오 인코딩 장치.
  7. 제 1 항에 있어서,
    f(qp)는:
    f(qp)=α×qp에 대응하는 제 1 차 다항 함수를 포함하고,
    여기서 qp는 상기 양자화 파라미터(QP)에 대응하며, α는 제 1 차 조정가능 파라미터를 정의하는, 비디오 인코딩 장치.
  8. 제 1 항에 있어서,
    f(qp)는:
    f(qp)= α×qp +β에 대응하는 제 2 차 다항 함수를 포함하고,
    여기서 qp는 상기 양자화 파라미터(QP)에 대응하고, α는 제 1 차 조정가능 파라미터를 정의하며, β는 제 2 차 조정가능 파라미터를 정의하는, 비디오 인코딩 장치.
  9. 제 1 항에 있어서,
    f(qp)는:
    f(qp)=α×qp 2 +β×qp + δ 에 대응하는 제 2 차 다항함수를 포함하며,
    여기서 qp는 상기 양자화 파라미터(QP)에 대응하고, α는 제 1 차 조정가능 파라미터를 정의하고, β는 제 2 차 조정가능 파라미터를 정의하며, δ는 제 3 차 조정가능 파라미터를 정의하는, 비디오 인코딩 장치.
  10. 제 1 항에 있어서,
    f(qp)는:
    f(qp)= α×qpβ 에 대응하는 지수 함수를 포함하며,
    여기서 qp는 상기 양자화 파라미터(QP)에 대응하며, αβ는 상기 조정가능 파라미터들을 정의하는, 비디오 인코딩 장치.
  11. 제 4 항에 있어서,
    상기 매개 방정식은:
    ρ = nc×2- α × qp - β 에 대응하고,
    여기서 ρ는 상기 예측되는 ρ들을 정의하고, nc는 고려중인 유닛의 계수들의 수를 나타내고 상기 예측되는 ρ들의 최대값을 한정하며, αβ는 상기 조정가능한 파라미터들을 포함하는, 비디오 인코딩 장치.
  12. 양자화 이후의 영이-아닌 계수들의 예상 개수들(예상 ρ들)을 양자화 파라미터(QP)들로 매핑하는 매개 방정식을 이용하여 양자화 파라미터(QP)를 선택하는 단계; 및
    상기 선택된 QP를 이용하여 하나 이상의 비디오 블록들을 인코딩하는 단계를 포함하며,
    상기 매개 방정식은:
    ρ=nc×e - f(qp) 에 대응하며,
    여기서 e는 오일러 수(Euler's number)를 나타내고, ρ는 상기 예상 ρ들을 정의하고, nc는 고려중인 유닛의 계수들의 개수를 나타내고 상기 예상 ρ들의 최대값을 한정하며 f(qp)는 상기 양자화 파라미터(QP)의 매개 함수(parametric function)인,
    레이트 제어 비디오 인코딩 방법.
  13. 제 12 항에 있어서,
    비디오 시퀀스의 프레임-수준 레이트 제어 비디오 인코딩을 위해 상기 비디오 시퀀스의 상이한 비디오 프레임들에 이용되는 상이한 QP들을 선택하는 단계를 더 포함하는, 레이트 제어 비디오 인코딩 방법.
  14. 제 12 항에 있어서,
    비디오 시퀀스의 비디오 블록-수준 레이트 제어 비디오 인코딩을 위해 프레임들의 상이한 비디오 블록들에 이용되는 상이한 QP들을 선택하는 단계를 더 포함하는, 레이트 제어 비디오 인코딩 방법.
  15. 제 12 항에 있어서,
    상기 매개 방정식은 하나 이상의 조정가능 파라미터들을 포함하며, 상기 방법은:
    하나 이상의 선택된 QP들로부터 유래하는, 양자화 이후의 영이-아닌 계수들의 하나 이상의 실제 개수(실제 ρ들)들을 결정하는 단계; 및
    상기 예상된 ρ들이 상기 실제 ρ들에 대응하도록 상기 매개 방정식의 상기 조정가능 파라미터들을 조정하는 단계를 더 포함하는 레이트 제어 비디오 인코딩 방법.
  16. 제 15 항에 있어서,
    상기 매개 방정식은
    ρ=nc×e - f(qp) 에 대응하며,
    여기서 e는 오일러 수(Euler's number)를 나타내고, ρ는 상기 예상 ρ들을 정의하고, nc는 고려중인 유닛의 계수들의 개수를 나타내고 상기 예상 ρ들의 최대값을 한정하며, f(qp)는 상기 양자화 파라미터(QP)의 매개 함수(parametric function)인, 레이트 제어 비디오 인코딩 방법.
  17. 제 16 항에 있어서,
    f(qp)는 다항 함수 및 지수 함수 중 하나를 포함하는, 레이트 제어 비디오 인코딩 방법.
  18. 제 16 항에 있어서,
    f(qp)는:
    f(qp)=α×qp에 대응하는 제 1 차 다항 함수를 포함하고,
    여기서 qp는 상기 양자화 파라미터(QP)에 대응하며, α는 제 1 차 조정가능 파라미터를 정의하는, 레이트 제어 비디오 인코딩 방법.
  19. 제 16 항에 있어서,
    f(qp)는:
    f(qp)= α×qp +β에 대응하는 제 2 차 다항 함수를 포함하고,
    여기서 qp는 상기 양자화 파라미터(QP)에 대응하고, α는 제 1 차 조정가능 파라미터를 정의하며, β는 제 2 차 조정가능 파라미터를 정의하는, 레이트 제어 비디오 인코딩 방법.
  20. 제 16 항에 있어서,
    f(qp)는:
    f(qp)=α×qp 2 +β×qp + δ 에 대응하는 제 2 차 다항함수를 포함하며,
    여기서 qp는 상기 양자화 파라미터(QP)에 대응하고, α는 제 1 차 조정가능 파라미터를 정의하고, β는 제 2 차 조정가능 파라미터를 정의하며, δ는 제 3 차 조정가능 파라미터를 정의하는, 레이트 제어 비디오 인코딩 방법.
  21. 제 16 항에 있어서,
    f(qp)는:
    f(qp)= α×qpβ 에 대응하는 지수 함수를 포함하며,
    여기서 qp는 상기 양자화 파라미터(QP)에 대응하며, αβ는 상기 조정가능 파라미터들을 정의하는, 레이트 제어 비디오 인코딩 방법.
  22. 제 15 항에 있어서,
    상기 매개 방정식은:
    ρ = nc×2- α × qp - β 에 대응하고,
    여기서 ρ는 상기 예측되는 ρ들을 정의하고, nc는 고려중인 유닛의 계수들의 개수를 나타내고 상기 예측되는 ρ들의 최대값을 한정하며, αβ는 상기 조정가능한 파라미터들을 포함하는, 레이트 제어 비디오 인코딩 방법.
  23. 실행될 때 프로그램가능 처리기(programmable processor)로 하여금:
    양자화 이후의 영이-아닌 계수들의 예상 개수들(예상 ρ들)을 양자화 파라미터(QP)들에 매핑하는 매개 방정식을 이용하여 양자화 파라미터를 선택하고; 그리고
    상기 선택된 QP를 이용하여 하나 이상의 비디오 블록들을 인코딩하게하는 프로그램 코드(program code)를 포함하며,
    상기 매개 방정식은:
    ρ=nc×e - f(qp) 에 대응하며,
    여기서 e는 오일러 수(Euler's number)를 나타내고, ρ는 상기 예상 ρ들을 정의하고, nc는 고려중인 유닛의 계수들의 개수를 나타내고 상기 예상 ρ들의 최대값을 한정하며 f(qp)는 상기 양자화 파라미터(QP)의 매개 함수(parametric function)인,
    컴퓨터로 읽을 수 있는 매체.
  24. 제 23 항에 있어서,
    상기 매체는 상기 프로그램가능 처리기로 하여금 비디오 시퀀스의 프레임-수준 레이트 제어 비디오 인코딩을 위해 상기 비디오 시퀀스의 상이한 비디오 프레임들에 이용되는 상이한 QP들을 선택하게 하는 명령(instruction)들을 더 포함하는, 컴퓨터로 읽을 수 있는 매체.
  25. 제 23 항에 있어서,
    상기 매체는 상기 프로그램가능 처리기로 하여금 비디오 시퀀스의 비디오 블록-수준 레이트 제어 비디오 인코딩을 위해 비디오 프레임들의 상이한 비디오 블록들에 이용되는 상이한 QP들을 선택하게 하는 명령(instruction)들을 더 포함하는, 컴퓨터로 읽을 수 있는 매체.
  26. 제 23 항에 있어서,
    상기 매개 방정식은 하나 이상의 조정가능 파라미터들을 포함하며, 상기 매체는 상기 프로그램가능 처리기로 하여금:
    하나 이상의 선택된 QP들로부터 유래한, 양자화 이후의 영이-아닌 계수들의 하나 이상의 실제 개수들(실제 ρ들)을 결정하고: 그리고
    상기 예상된 ρ들이 상기 실제 ρ들에 대응하도록 상기 매개 방정식의 상기 조정가능 파라미터들을 조정하게 하는 명령들을 더 포함하는, 컴퓨터로 읽을 수 있는 매체.
  27. 제 26 항에 있어서,
    상기 매개 방정식은
    ρ=nc×e - f(qp) 에 대응하며,
    여기서 e는 오일러 수(Euler's number)를 나타내고, ρ는 상기 예상 ρ들을 정의하고, nc는 고려중인 유닛의 계수들의 개수를 나타내고 상기 예상 ρ들의 최대값을 한정하며, f(qp)는 상기 양자화 파라미터(QP)의 매개 함수(parametric function)인, 컴퓨터로 읽을 수 있는 매체.
  28. 제 27 항에 있어서,
    f( qp )는 다항 함수(polynomial function) 및 지수 함수(exponential function) 중 하나를 포함하는, 컴퓨터로 읽을 수 있는 매체.
  29. 제 27 항에 있어서,
    f(qp)는:
    f(qp)=α×qp에 대응하는 제 1 차 다항 함수를 포함하고,
    여기서 qp는 상기 양자화 파라미터(QP)에 대응하며, α는 제 1 차 조정가능 파라미터를 정의하는, 컴퓨터로 읽을 수 있는 매체.
  30. 제 27 항에 있어서,
    f(qp)는:
    f(qp)= α×qp +β에 대응하는 제 2 차 다항 함수를 포함하고,
    여기서 qp는 상기 양자화 파라미터(QP)에 대응하고, α는 제 1 차 조정가능 파라미터를 정의하며, β는 제 2 차 조정가능 파라미터를 정의하는, 컴퓨터로 읽을 수 있는 매체.
  31. 제 27 항에 있어서,
    f(qp)는:
    f(qp)=α×qp 2 +β×qp + δ 에 대응하는 제 2 차 다항함수를 포함하며,
    여기서 qp는 상기 양자화 파라미터(QP)에 대응하고, α는 제 1 차 조정가능 파라미터를 정의하고, β는 제 2 차 조정가능 파라미터를 정의하며, δ는 제 3 차 조정가능 파라미터를 정의하는, 컴퓨터로 읽을 수 있는 매체.
  32. 제 27 항에 있어서,
    f(qp)는:
    f(qp)= α×qpβ 에 대응하는 지수 함수를 포함하며,
    여기서 qp는 상기 양자화 파라미터(QP)에 대응하며, αβ는 상기 조정가능 파라미터들을 정의하는, 컴퓨터로 읽을 수 있는 매체.
  33. 제 26 항에 있어서,
    상기 매개 방정식은:
    ρ = nc×2- α × qp - β 에 대응하고,
    여기서 ρ는 상기 예측되는 ρ들을 정의하고, nc는 고려중인 유닛의 계수들의 수를 나타내고 상기 예측되는 ρ들의 최대값을 한정하며, αβ는 상기 조정가능한 파라미터들을 포함하는, 컴퓨터로 읽을 수 있는 매체.
KR1020077014656A 2004-11-29 2005-11-22 매개 방정식을 이용한 비디오 인코딩을 위한 레이트 제어 KR100919074B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US63183504P 2004-11-29 2004-11-29
US60/631,835 2004-11-29
US11/077,697 2005-03-10
US11/077,697 US8340172B2 (en) 2004-11-29 2005-03-10 Rate control techniques for video encoding using parametric equations

Publications (2)

Publication Number Publication Date
KR20070086710A KR20070086710A (ko) 2007-08-27
KR100919074B1 true KR100919074B1 (ko) 2009-09-28

Family

ID=35906608

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077014656A KR100919074B1 (ko) 2004-11-29 2005-11-22 매개 방정식을 이용한 비디오 인코딩을 위한 레이트 제어

Country Status (6)

Country Link
US (1) US8340172B2 (ko)
EP (1) EP1817916A1 (ko)
JP (1) JP2008522500A (ko)
KR (1) KR100919074B1 (ko)
TW (1) TW200629908A (ko)
WO (1) WO2006058113A1 (ko)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9781433B2 (en) * 2005-01-26 2017-10-03 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems, methods, and apparatus for real-time video encoding
US8055783B2 (en) * 2005-08-22 2011-11-08 Utc Fire & Security Americas Corporation, Inc. Systems and methods for media stream processing
GB0522036D0 (en) * 2005-10-28 2005-12-07 Univ Hong Kong Science & Techn Effective rate control for video encoding and transcoding
US8250618B2 (en) 2006-09-18 2012-08-21 Elemental Technologies, Inc. Real-time network adaptive digital video encoding/decoding
US8184715B1 (en) 2007-08-09 2012-05-22 Elemental Technologies, Inc. Method for efficiently executing video encoding operations on stream processor architectures
US8121197B2 (en) 2007-11-13 2012-02-21 Elemental Technologies, Inc. Video encoding and decoding using parallel processors
TWI405467B (zh) * 2009-11-25 2013-08-11 Novatek Microelectronics Corp 影像壓縮的位元速率控制電路與方法
US20110255594A1 (en) * 2010-04-15 2011-10-20 Soyeb Nagori Rate Control in Video Coding
US20120057629A1 (en) 2010-09-02 2012-03-08 Fang Shi Rho-domain Metrics
US8965139B2 (en) 2010-09-29 2015-02-24 Panasonic Intellectual Property Corporation Of America Image decoding method, image coding method, image decoding apparatus, image coding apparatus and integrated circuit for generating a code stream with a hierarchical code structure
JP5855570B2 (ja) 2010-09-30 2016-02-09 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 画像復号方法、画像符号化方法、画像復号装置、画像符号化装置、プログラムおよび集積回路
US9749630B2 (en) * 2010-09-30 2017-08-29 Sun Patent Trust Image decoding method, image coding method, image decoding apparatus, image coding apparatus, program, and integrated circuit
JP5923745B2 (ja) * 2011-02-25 2016-05-25 パナソニックIpマネジメント株式会社 送信装置
US9247266B2 (en) * 2011-04-18 2016-01-26 Texas Instruments Incorporated Temporal motion data candidate derivation in video coding
WO2013006386A1 (en) 2011-07-01 2013-01-10 General Instrument Corporation Motion vector prediction design simplification
US9185428B2 (en) 2011-11-04 2015-11-10 Google Technology Holdings LLC Motion vector scaling for non-uniform motion vector grid
KR20130050403A (ko) * 2011-11-07 2013-05-16 오수미 인터 모드에서의 복원 블록 생성 방법
US8908767B1 (en) 2012-02-09 2014-12-09 Google Inc. Temporal motion vector prediction
US20130208795A1 (en) * 2012-02-09 2013-08-15 Google Inc. Encoding motion vectors for video compression
US9172970B1 (en) 2012-05-29 2015-10-27 Google Inc. Inter frame candidate selection for a video encoder
US11317101B2 (en) 2012-06-12 2022-04-26 Google Inc. Inter frame candidate selection for a video encoder
FR2996093A1 (fr) * 2012-09-27 2014-03-28 France Telecom Procede de codage et decodage d'images, dispositifs de codage et decodage et programmes d'ordinateur correspondants
US9485515B2 (en) 2013-08-23 2016-11-01 Google Inc. Video coding using reference motion vectors
US9503746B2 (en) 2012-10-08 2016-11-22 Google Inc. Determine reference motion vectors
US9313493B1 (en) 2013-06-27 2016-04-12 Google Inc. Advanced motion estimation
US10091504B2 (en) 2015-01-08 2018-10-02 Microsoft Technology Licensing, Llc Variations of rho-domain rate control
US10531134B2 (en) 2017-11-10 2020-01-07 Akamai Technologies, Inc. Determining a time budget for transcoding of video

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030083916A (ko) * 2002-04-23 2003-11-01 베르텐씨엔씨 주식회사 양자화계수를 결정하는 방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6633609B1 (en) * 1996-12-24 2003-10-14 Intel Corporation Method and apparatus for bit rate control in a digital video environment for arbitrary bandwidth
KR100341063B1 (ko) * 2000-06-28 2002-06-20 송문섭 실시간 영상 통신을 위한 율제어 장치 및 그 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030083916A (ko) * 2002-04-23 2003-11-01 베르텐씨엔씨 주식회사 양자화계수를 결정하는 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
IEEE TRANS. ON CSVT, Vol. 12 No. 11, 2002.11.30., IEEE, ZHIHAI HE et al., "A LINEAR SOURCE MODEL AND A UNIFIED RATE CONTROL ALGORITHM FOR DCT VIDEO CODING", pages. 970-982*

Also Published As

Publication number Publication date
US8340172B2 (en) 2012-12-25
WO2006058113A1 (en) 2006-06-01
JP2008522500A (ja) 2008-06-26
KR20070086710A (ko) 2007-08-27
US20060114989A1 (en) 2006-06-01
TW200629908A (en) 2006-08-16
EP1817916A1 (en) 2007-08-15

Similar Documents

Publication Publication Date Title
KR100919074B1 (ko) 매개 방정식을 이용한 비디오 인코딩을 위한 레이트 제어
KR101185146B1 (ko) 비디오 인코딩을 위한 효율적인 제어 기술들
EP1797722B1 (en) Adaptive overlapped block matching for accurate motion compensation
US6414992B1 (en) Optimal encoding of motion compensated video
EP1862011B1 (en) Adaptive frame skipping techniques for rate controlled video encoding
US10284849B2 (en) Quantization parameter (QP) calculation for display stream compression (DSC) based on complexity measure
EP1653744A1 (en) Non-integer pixel sharing for video encoding
JP6464192B2 (ja) ディスプレイストリーム圧縮(dsc)のための平坦度検出のためのシステムおよび方法
US20100166075A1 (en) Method and apparatus for coding video image
US20110051807A1 (en) Method and apparatus for rate control accuracy in video encoding
KR20180122354A (ko) 디스플레이 스트림 압축에서의 양자화 파라미터들의 적응적 계산을 위한 장치 및 방법들
CN111726628A (zh) 用于在显示流压缩(dsc)中固定点近似的系统和方法
US10356428B2 (en) Quantization parameter (QP) update classification for display stream compression (DSC)
CN101112101A (zh) 使用参数方程式进行视频编码的速率控制技术
US20040233984A1 (en) Apparatus for variable bit rate control in video compression and target bit allocator thereof
US20130170565A1 (en) Motion Estimation Complexity Reduction
KR20010104058A (ko) 동영상 부호화기의 부호화 모드에 따른 적응적 양자화기

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
LAPS Lapse due to unpaid annual fee