KR101012600B1 - 화상을 기반으로 한 룩어헤드 윈도우를 이용한 레이트컨트롤 - Google Patents

화상을 기반으로 한 룩어헤드 윈도우를 이용한 레이트컨트롤 Download PDF

Info

Publication number
KR101012600B1
KR101012600B1 KR1020057010394A KR20057010394A KR101012600B1 KR 101012600 B1 KR101012600 B1 KR 101012600B1 KR 1020057010394 A KR1020057010394 A KR 1020057010394A KR 20057010394 A KR20057010394 A KR 20057010394A KR 101012600 B1 KR101012600 B1 KR 101012600B1
Authority
KR
South Korea
Prior art keywords
frame
encoding
complexity
value
algorithm
Prior art date
Application number
KR1020057010394A
Other languages
English (en)
Other versions
KR20050085451A (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 KR20050085451A publication Critical patent/KR20050085451A/ko
Application granted granted Critical
Publication of KR101012600B1 publication Critical patent/KR101012600B1/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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/115Selection of the code volume for a coding unit prior to coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • 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/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/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/177Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a group of pictures [GOP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

비압축 디지탈 비디오 스트림의 프레임을 인코딩하는 방법은 프레임의 복잡도의 제1 값을 측정하고 프레임의 화상 타입을 지정하기 위해 비압축 디지탈 비디오 스트림의 프레임을 제1 알고리즘(MPEG2)으로 분석하는 단계와, 제1 측정 값을 파라미터로 사용하여 프레임의 복잡도의 제2 값을 추정하는 단계를 포함한다. 그 프레임은 그리고나서 프레임의 복잡도의 제2 값 및 제1 프레임의 화상 타입을 파라미터로 채용하여 별개의 제2 알고리즘(H.264)으로 인코딩된다.
듀얼-패스 압축 인코딩, 트랜스코더, 슬라이딩 윈도우, 프레임 복잡도, MPEG4

Description

화상을 기반으로 한 룩어헤드 윈도우를 이용한 레이트 컨트롤{RATE CONTROL WITH PICTURE-BASED LOOKAHEAD WINDOW}
본 발명은 전반적으로 비디오 신호의 압축 부호화에 관한 것으로, 보다 구체적으로는 듀얼-패스 압축 인코딩/트랜스코딩(dual-pass compression encoding/transcoding)용의 화상 기반 룩어헤드 윈도우를 이용한 레이트 컨트롤에 관한 것이다.
디지탈 비디오 압축을 위한 국제적 표준 중의 2가지 표준으로 MPEG2(H.262) 및 H.264(MPEG4 part 10)가 알려져 있다. 본 발명이 적용될 수도 있는 H.261, MPEG1 및 H.263 등의 몇몇 다른 표준이 존재하지만, 본 발명의 실시예에 대한 다음의 설명이 주로 MPEG2 및 H.264를 참조하므로 다른 표준에 대해서는 설명하지 않을 것이다.
비압축 비디오 스트림은 연속적인 일련의 화상 또는 프레임으로서 설명될 수 있다. 개개의 프레임은 특정 순간의 시각에서 특정한 셋팅을 묘사한다. 장면(scene)은 연속적인 순간의 동일한 셋팅을 묘사하는 일련의 프레임이다. 장면의 두번째 프레임은 첫번째 프레임과 동일한 셋팅을 시간적으로 다소 경과하여 보여준다. MPEG 표준은 시간적 인코딩으로써 알려져 있는 인코딩을 이용하여 정보의 이 러한 반복의 이점을 취한다. MPEG2와 같은 MPEG 비디오 압축 표준에 따르면, 인코더는 비디오 스트림을 관련 화상의 세트로 분할하며, 이러한 화상의 세트는 화상군(GOP : Groups of Pictures)으로 알려져 있다. GOP 내의 각각의 프레임은 인코더에 의해 인트라 프레임, 예측 프레임 또는 양방향 프레임으로써 구분된다. 인트라 프레임(I 타입 프레임)은 그 프레임 내로부터의 정보만을 이용하여 인코딩된다. 프레임을 압축하기 위해 시간적 인코딩이 사용되지 않는다. 예측 프레임(P 타입 프레임)은 그 프레임 내로부터의 정보를 이용하여 인코딩되며, 그 앞쪽의 I 프레임 또는 P 프레임을 시간적 압축을 위한 기준 프레임으로써 이용한다. I 및 P 프레임은 앵커 프레임(anchor frame)으로 지칭된다. 양방향 프레임(B 타입 프레임)은 그 프레임 내로부터의 정보를 이용하여 인코딩되며, 또한 적어도 하나의 이전의 앵커 프레임 및 적어도 하나의 다음의 앵커 프레임으로부터의 정보를 이용할 수 있다. GOP 내에서, I 프레임은 일반적으로 가장 복잡한 프레임이고 P 프레임이 후속되며, B 프레임은 통상적으로 가장 적은 정도의 복잡도를 갖는다.
종래의 MPEG2 장치에서, 각각의 GOP(본 명세서에서 표준 GOP로 지칭됨)는 15개의 화상 또는 프레임 주기(N)를 가지며, GOP 내에서 최초의 화상이 되는 오직 하나의 I 타입 화상만을 포함한다. 제4, 제7, 제10 및 제13 화상은 P 타입 화상이며, 나머지 화상은 B 타입 화상이다. 그러므로, 각각의 표준 GOP는 각각이 3개의 화상으로 된 5개의 서브-그룹으로 구성된다. 각각의 서브-그룹은 앵커 화상 및 2개의 B 타입 화상으로 이루어진다. 이 경우에는 3인 앵커 화상간의 간격은 GOP의 인트라-피리어드(M)로써 알려져 있다. 그러므로, 표준 GOP는 표시 순서에 있어서 다음과 같이 나타날 것이다:
I B B P B B P B B P B B P B B
이 종래의 MPEG2 장치에서, 표준 GOP는 폐쇄형이 된다. 즉, 표준 GOP는 그 GOP 외부의 프레임에 기초하여 어떠한 예측도 이루어지지 않는다.
비디오 프레임은 프레임을 일련의 매크로-블록(MB)으로 이루어지도록 형성함으로써 MPEG 표준에서 추가로 세부분할된다. 매크로-블록은 16×16 휘도 픽셀을 표현하는 화소의 영역을 디스플레이하는 데 요구된 모든 정보를 포함한다.
MPEG2 및 H.264는 유효 비트 스트림의 신택스와, 디코더가 이러한 비트 스트림을 비압축 디지탈 비디오인 의도된 출력에 이르도록 해석(interpret)하는 방식을 특정한다. 그러나, MPEG 표준은 인코더를 특정하지 못한다. 인코더는 MPEG 호환 디코더에 입력될 때 요구 출력을 발생할 비트 스트림을 출력할 수 있는 임의의 장치, 즉 하드웨어 또는 소프트웨어로써 정의된다.
인코더의 대표적인 어플리케이션에서, 비압축 비디오 신호가 인코더에 입력되고, 적용 가능한 압축 표준에 따라 인코딩되며, 새로이 인코딩된 신호가 인코더로부터 출력되고, 디코더에 의해 수신되며, 시청을 위해 디코딩된다. 데이타가 디코더에 의해 수신되는 속도의 변동에 대처하기 위해, 디코더는 인코딩된 데이타를 수신하고 그 데이타를 디코딩 프로세스에 제공하는 버퍼를 포함할 수도 있을 것이다. 인코더는 디코더가 인코딩된 신호를 지속적으로 디코딩하여 디코딩된 신호를 전송하는 속도로 인코딩된 신호가 출력되는 것을 보장하여야 한다. 인코더가 신호를 너무 저속으로 전송한다면, 디코더가 인코더로부터의 데이타를 대기하여야 하기 때문에 디코더에 의해 전송된 데이타에 있어서 갭이 존재하게 될 것이다. 인코더가 너무 고속으로 신호를 전송한다면, 디코더는 동작 상태를 유지할 수 없을 것이므로, 디코더에서의 버퍼 오버플로우 및 수용 불가능한 정보 손실이 초래될 것이다. 인코더의 전송 속도를 관리하는 프로세스는 레이트 컨트롤로 알려져 있다. 인코더는 가상 버퍼의 사용에 의해 디코더 버퍼를 충만하게 하는 방침을 유지한다.
레이트 컨트롤의 가장 단순한 방법은 인코딩될 비디오 신호의 각각의 화상 또는 프레임에 일정수의 비트를 할당하는 것이다. 그러나, 실제로 푸른 하늘의 화상과 같은 단순한 프레임이 복잡한 프레임(수평선 넘어의 구름낀 일출의 화상)보다 인코딩하는데 더 적은 비트를 요구할 때에도 비디오 스트림 내의 모든 화상을 인코딩하기 위해 사용된 비트의 수가 가장 복잡한 프레임을 수용할 수 있도록 충분히 커야만 하기 때문에, 이 방법은 효율적이지 못하다. 화상을 인코딩하기 전에 화상의 복잡도를 측정함으로써, 인코더는 화상을 인코딩하기 위해 얼마나 많은 비트가 사용되어야 하는지에 관해 더 우수한 결정을 할 수 있게 된다. 이 방법은 인코더가 추후에 인코딩될 프레임의 복잡도에 대한 지식을 갖는다면 추가로 향상될 수 있다. 청명한 하늘을 보는 것을 시작으로 하여 일몰을 보는 것으로 화면이 바뀌는 비디오 스트림을 고려해보면, 초기 프레임은 낮은 측정치의 복잡도를 가져 상대적으로 적은 수의 비트를 이용하여 인코딩될 것이다. 그러나, 더 후자의 프레임들은 더 많은 복잡한 정보를 포함하고 있어 인코딩을 위해 더 큰 수의 비트를 필요로 할 것이다. 인코더가 초기의 단순한 비디오 프레임에 얼마나 많은 비트를 할당하여야 하는지를 결정하면서 머지 않아 더 복잡한 프레임을 인코딩하는데 더 큰 수의 비트 를 할당할 필요가 있을 것이라는 점을 알게 된다면, 인코더는 단순한 프레임을 인코딩하는데 사용된 비트의 수를 추가로 감소시켜, 하위의 디코더를 오버플로우시키는 리스크를 방지 또는 경감시킬 것이다.
화상을 인코딩하는데 사용된 비트의 수를 제어하는 또다른 효율적인 방법은 프레임 내의 각각의 매크로-블록(MB)에 대해 양자화 단계 크기를 동적으로 수정하는 것이다. 일반적으로 균일한 색상 및 명암도의 매크로-블록에 대해, 작은 수의 가능한 화소값만이 필요하여, 이 매크로 블록을 묘사하는데 더 적은 비트가 요구될 것이다. 매우 다양한 색상 및 명암도값을 포함하고 있는 매크로-블록에 대해서는 인코더가 더 넓은 범위의 화소값을 묘사할 것이기 때문에 그 역도 성립한다. 이러한 방식에 따르면, 각각의 매크로-블록은 양자화 단계 크기를 수정하기 위해 사용되는 양자화 스케일 팩터(Mquant)가 지정된다.
MPEG2 표준의 개발 동안, 비트-스트림 신택스(bit-stream syntax), 디코더 디자인 및 표준의 다른 특징을 테스트하기 위한 범용적인 레이트 컨트롤 및 양자화 방법을 고안하는 것이 필요하게 되었다. 이 방법은 Test Model로써 알려져 있으며, 이 모델은 MPEG2의 개발이 지속됨에 따라 발전하였다. 최종 버전인 5차 버전의 모델(TM-5)은 MPEG2 표준의 확정으로 발생되었다. TM-5는 3개의 주요 단계, 즉 (a) 목표 비트 할당, (b) 레이트 컨트롤 및 (c) 적응형 양자화로 나누어진다.
a) 목표 비트 할당
전술된 바와 같이, 인코딩을 위해 어떤 화상에 할당된 비트의 양은 다른 화상에 대한 그 화상의 복잡도를 함수로 한다. 특정의 GOP에 대하여, 복잡도 가중 계수가 각각의 화상 타입에 대해 지정된다(I, P 및 B 타입 화상에 대해 각각 XI2, XP2 및 XB2). XI2, XP2 및 XB2는 I, P, B 화상에 대한 복잡도 측정치를 나타내며, 다음과 같이 계산될 것이다:
XI2 = SI2QI2
XP2 = SP2QP2
XB2 = SB2QB2
여기서, SI2, SP2 및 SB2는 각각의 화상에 대한 비트의 수이며, QI2, QP2 및 QB2는 각각의 화상 내의 모든 매크로-블록에 대한 평균 양자화 파라미터이다(아래를 참조).
TM-5에서, 화상에 대한 비트 할당은 GOP에 할당된 비트 공간 중의 얼마가 남아 있는지와, 인코딩되는 화상의 타입과, 동일 타입의 최근 인코딩된 화상의 복잡도 통계치에 기초하여 정해진다. 목표 비트 할당은 그 프레임을 인코딩하는데 필요할 것으로 TM-5가 예상하는 비트의 수이다.
b) 레이트 컨트롤
목표 비트 할당(Btar)과 화상을 인코딩하는데 요구된 실제 비트수(Bact)간에 차이가 존재한다면, TM-5의 가상 버퍼를 덜 채우거나 더 채울 위험이 있다. 가상 버퍼는 화상이 인코딩되고 있는 동안 MB×MB 기반으로 디코더의 버퍼의 충만도를 추적한다. j번째 매크로-블록을 제외한 모든 매크로-블록을 인코딩하는 것은 총목 표비트의 특정의 일부분을 사용하여야만 한다. 이 일부분은 Btar에 이미 인코딩된 매크로-블록의 수 j-1을 곱하고 이것을 다시 화상 내의 매크로-블록의 총수 MB_cnt 로 나눈 것과 동일하다. j번째 매크로-블록을 제외한 최대의 인코딩에 의해 실제 발생된 비트의 수는 B(j-1)와 동일하다. 목표 비트수와 생성된 비트수간의 델타는 각각의 매크로-블록이 인코딩된 후의 가상 버퍼의 충만도에 있어서의 변화 dj를 나타내며, j 번째 매크로-블록을 인코딩하기 전에 계산된다.
dj = d0 + B(j-1) - Btar*(j-1)/MB_cnt
여기서, d0는 현재 화상의 개시점에서의 가상 버퍼의 충만도와 동일하다.
가상 버퍼가 오버플로우하기 시작한다면, 양자화 단계 크기가 증가하여 후속 매크로-블록에 대해 더 적은 비트 산출량을 야기한다. 유사하게, 가상 버퍼가 언더필(underfill)하기 시작한다면, 양자화 단계 크기가 감소되어 후속 매크로-블록에 대해 더 큰 비트 산출량을 야기한다. 가상 버퍼 충만도에 대한 이러한 측정은 매크로-블록의 기준 양자화 번호(Qj)를 생성하기 위해 사용된다.
c) 적응형 양자화
매크로-블록 양자화 단계 크기는 공간적 활동도(actj)를 함소로 하여 추가로 변조된다. 매크로-블록은 4개의 8×8 서브-블록으로 분할되며, 각각의 서브-블록에 대해 공간적 활동도가 측정된다. 4개의 측정치 중의 최소의 것이 이전에 인코딩된 화상의 평균 공간적 활동도(avg_act)에 대하여 정규화된다(N_actj). 매크로- 블록의 화질이 그 매크로-블록의 최고의 가시적 왜곡의 서브-블록보다 더 우수하지 않기 때문에 최소의 공간적 활동도 측정치가 사용된다.
N_actj = (2*actj + avg_act)/(actj + 2*avg_act)
매크로-블록의 정규화된 공간적 활동도와 그 매크로-블록의 기준 양자화 파라미터의 곱은 매크로-블록의 양자화 스케일 팩터(Mquantj)를 제공한다.
Mquantj = Qj*N_actj
일반적으로, 보다 신규의 압축 표준에 의해 권장된 인코딩 알고리즘이 보다 효율적이기는 하지만, 이들 알고리즘은 보편적으로 구현하기가 더욱 복잡하다. 중앙 처리 장치(CPU)와 디지탈 신호 처리(DSP) 칩의 컴퓨터 처리 속도의 고속 성장으로, 더더욱 정교한 알고리즘의 장치가 실제적으로 실현 가능하게 되었다. 보다 신규의 표준에 기초하여 구성된 비디오 인코더/디코더(코덱)는 비트-레이트, 해상도 등의 스펙이 중첩하는 어플리케이션에서 더 구형의 표준에 기초하여 구성된 비디오 인코더/디코더를 실질적으로 대체한다. 구형의 비디오 코덱을 신형의 코덱으로 대체하는 것이 비용이 많이 들기 때문에 이러한 대체 절차는 오랜 기간의 시간이 소요된다. 구형 코덱의 사용이 지속되는 또다른 이유는 다수의 비디오 스트림이 이미 구형 알고리즘으로 압축되어 있어 아마도 구형 코덱에 의해 압축해제되는 것이 더 용이할 것이기 때문이다. 그러나, 높은 코딩 효율이 요망되는 곳에서, 구형 코덱과 신형 코덱의 혼합 사용이 높아지고 있다. 일부 어플리케이션에서, 구형 코덱으로 압축된 비디오 스트림을 구형 코덱이 동일 비디오 화질에 대해 달성할 수 있 는 것보다 더 낮은 신규 비트-레이트로 재전송하는 것이 바람직하다. 따라서, 더 높은 압축 효율을 획득하기 위해서는 혼합된 코덱(구형 디코더와 신형 인코더)을 갖는 트랜스코더가 사용된다. 한가지 우수한 예는 MPEG2 압축 비디오 스트림을 H.264 압축 비디오 스트림으로 변환하는 트랜스코더이다.
디지탈 압축 산업에서는 룩어헤드 윈도우를 이용한 듀얼-패스 인코딩이 싱글-패스 인코딩보다 더 높은 코딩 효율을 제공하는 것으로 인정된다. 더욱 정교한 압축 기술들의 통합에 대해, 싱글-패스 인코딩 조차도 비용이 많이 들며, 듀얼-패스 인코딩의 비용은 싱글-패스 인코딩의 비용보다 훨씬 더 높다. 듀얼-패스 아키텍쳐에서 인코딩/트랜스코딩을 위해 2개의 정교한 코덱을 사용하는 것은 구형 기술 코덱에 비해 거의 1오더 정도의 크기만큼 인코더/트랜스코더의 비용을 상승시킨다.
따라서, 혼합된 코덱을 사용하는 인코더/트랜스코더에서 최소의 비용으로 더 높은 코딩 효율을 달성하는 성능이 요망된다.
본 발명의 제1 특징에 따르면, 각각의 프레임이 한 레벨의 복잡도를 갖는 비압축 디지탈 비디오 스트림의 프레임을 인코딩하는 방법이 제공되며, 상기 인코딩 방법은 비압축 디지탈 비디오 스트림의 제1 프레임의 복잡도의 제1 값을 측정하고 제1 프레임의 화상 타입을 지정하기 위해 비압축 디지탈 비디오 스트림의 제1 프레임을 제1 알고리즘으로 분석하는 단계와; 제1 측정값을 파라미터로 사용하여 제1 프레임의 복잡도의 제2 값을 추정하는 단계와; 제1 프레임의 복잡도의 제2 값 및 제1 프레임의 화상 타입을 파라미터로 채용하여 별개의 제2 알고리즘으로 제1 프레임을 인코딩하는 단계를 포함한다.
본 발명의 제2 특징에 따르면, 각각의 프레임이 제1 인코딩 알고리즘에 따라 인코딩되고 복잡도의 레벨을 갖는 압축 디지탈 비디오 스트림의 프레임을 트랜스코딩하는 방법이 제공되며, 상기 트랜스코딩 방법은 제1 프레임의 디코딩된 버전을 발생하고, 제1 프레임의 복잡도의 제1 값을 측정하고, 제1 프레임의 화상 타입을 결정하기 위해, 압축 디지탈 비디오 스트림의 제1 프레임을 제1 디코딩 알고리즘으로 디코딩하는 단계와; 제1 값을 파라미터로 사용하여 제1 프레임의 복잡도의 제2 값을 추정하는 단계와; 제1 프레임의 복잡도의 제2 값 및 제1 프레임의 화상 타입을 파라미터로 채용하여 제1 프레임의 디코딩된 버전을 별개의 제2 인코딩 알고리즘으로 인코딩하는 단계를 포함한다.
본 발명의 제3 특징에 따르면, 각각의 프레임이 그 프레임과 관련된 복수의 특징을 갖는 프레임의 연속체로 구성된 비압축 디지탈 비디오 입력 스트림을 인코딩하는 장치가 제공되며, 상기 인코딩 장치는 비압축 디지탈 비디오 입력 스트림의 프레임의 연속체를 수신하며, 입력 스트림의 프레임의 복수의 특징에 대한 측정값을 획득하고 그 프레임에 화상 타입을 지정하기 위해 제1 방법를 채용하는 추출 수단과; 입력 스트림의 프레임의 연속체를 수신하며, 입력 스트림의 프레임에 관하여 지연 형태로 프레임을 출력하는 지연 수단과; 지연 수단 내의 프레임의 측정값 및 화상 타입을 저장하는 값 저장 수단과; 상기 지연 수단으로부터 프레임을 수신하여 그 프레임을 인코딩하며, 프레임의 인코딩된 버전의 크기를 조정하기 위해 값 저장 수단에 저장된 측정값에 응답하는 인코딩 수단을 구비한다.
본 발명의 제4 특징에 따르면, 각각의 인코딩 프레임이 그 프레임과 관련된 복수의 특징을 갖는 인코딩 프레임의 연속체로 구성된 압축 디지탈 비디오 입력 스트림을 트랜스코딩하는 장치가 제공되며, 상기 트랜스코딩 장치는 압축 디지탈 비디오 입력 스트림의 인코딩 프레임의 연속체를 수신하며, 디코딩 프레임의 연속체와 디코딩 프레임의 복수의 특징에 대한 측정값을 획득하고 디코딩 프레임에 대한 화상 타입을 지정하기 위해 제1 방법를 채용하는 디코딩 수단과; 입력 스트림의 디코딩 프레임의 연속체를 수신하며, 입력 스트림의 인코딩 프레임에 관하여 디코딩 프레임을 지연 형태로 출력하는 지연 수단과; 지연 수단 내의 디코딩 프레임의 측정값 및 화상 타입을 저장하는 값 저장 수단과; 상기 지연 수단으로부터 디코딩 프레임을 수신하여 그 프레임을 인코딩하며, 프레임의 인코딩된 버전의 크기를 조정하기 위해 값 저장 수단에 저장된 측정값에 응답하는 인코딩 수단을 구비한다.
본 발명의 실시예는 듀얼-패스 압축 비디오 아키텍쳐에서 혼합 코덱을 갖는 인코더/트랜스코더에 화상 기반 룩어헤드를 이용한 레이트 컨트롤을 제공한다. 입력 비디오 신호가 압축 비디오 신호인 트랜스코더에서, 압축 비디오 신호로부터 통계치를 생성하기 위해 단순한 압축 디코더를 사용함으로써 통계치가 추출되며, 입력 비디오 신호가 비압축 비디오 신호인 인코더에서, 비압축 비디오 신호로부터 통계치를 생성하기 위해 단순한 압축 인코더를 사용함으로써 통계치가 추출된다. 현재 화상의 복잡도를 예측하기 위해 슬라이딩 "패스트" 윈도우(a sliding "past" window)에서 이전의 화상에 기초하여 현재의 화상에 대해 변환 계수(trans-factor)가 계산되며, 이 변환-계수는 단순한 압축 표준에 대한 전체적인 복잡도 측정치 대 정교한 압축 표준에 대한 전체적인 복잡도 측정치의 비율이 된다. 그리고나서, 현재 화상에 대한 비트는 룩어헤드 또는 "미래" 윈도우에서의 미래 화상의 복잡도에 기초하여 할당된다. 미래 화상이 인코딩하기가 용이하지 않다면, 현재 화상에 대해 더 적은 비트가 할당되며, 그 반대의 경우에는 더 많은 비트가 할당된다. 이것은 장면 전환에 대해 효율적이다. 룩어헤드 윈도우가 미래 화상, 즉 정교한 압축 표준에 따라 아직 압축되지 않은 화상의 통계치를 고려하기 때문에, 더욱 합리적인 비트 할당 및 더 우수한 화질이 달성된다. 정교한 압축 표준에 따라 현재 화상을 인코딩한 후, 과거 및 룩어헤드 윈도우가 1 화상씩 시프트될 때, 즉 인코딩된 화상이 과거 윈도우 내로 이동하여 룩어헤드 윈도우에서 벗어나고 이 룩어헤드 윈도우 내에 신규 화상이 로드될 때, 인코딩된 화상에 대한 실제 비트, 화상 복잡도 및 변환-계수가 업데이트된다.
본 발명의 목적, 장점 및 다른 신규의 특징은 첨부된 청구의 범위 및 도면을 참조한 다음의 상세한 설명으로부터 더욱 명백해질 것이다.
도 1은 본 발명에 따른 화상 기반 룩어헤드 윈도우를 이용하여 레이트 컨트롤을 실시하는 듀얼-패스 인코더/트랜스코더 아키텍쳐의 블록도이다.
도 2는 본 발명에 따른 레이트 컨트롤 알고리즘의 흐름도이다.
도 3은 본 발명에 다른 가상 슬라이딩 윈도우의 개념도이다.
도 1은 MPEG2와 같은 단순한 압축 표준에 따라 압축된 압축 비디오 스트림을 수신 및 디코딩하여 비압축 비디오 신호 및 관련 통계치를 발생하는 단순한 압축 디코더(12)를 갖는 인코더/트랜스코더를 예시한다. 이와 달리, 단순한 압축 인코더(14)는 비압축 비디오 신호를 수신하여 관련 통계치를 발생한다. 통계치는 하술된 레이트 컨트롤 알고리즘에 의한 처리를 위해 룩어헤드 윈도우 모듈(18)에 입력되는 한편, 둘 중의 한 구성(트랜스코더 또는 인코더)에서의 비압축 비디오 신호는 저장 및 지연 모듈(16)에 입력된다. 저장 및 지연 모듈은 비압축 비디오 신호 스트림을 수신, 지연 및 출력하는 버퍼 메모리이다. 룩어헤드 윈도우 모듈은 예를 들어 화상에 대한 비트의 수, 화상 타입 및 화상에 대한 모든 매크로-블록에 걸친 평균 양자화 단계 크기 등의 저장 및 지연 모듈(16) 내의 각각의 화상에 대한 통계치를 포함하고 있다. 룩어헤드 윈도우 모듈(18)은 정교한 인코딩 처리를 위한 레이트 컨트롤을 결정함에 있어서 H.264 인코더와 같은 정교한 압축 인코더(24)에 의한 사용을 위해 통계치로부터 비트 할당 데이타를 발생한다. 저장 및 지연 모듈은 비트 할당 데이타를 발생하기 위해 룩어헤드 윈도우 모듈(18)에 대해 요구된 시간을 보상한다.
저장 및 지연 모듈(16)로부터의 지연된 비압축 비디오 스트림은 필터링된 비압축 비디오 스트림을 발생하기 위해 적응형 프리필터(20)에 입력된다. 필터로는 비압축 비디오 스트림에 의해 표현된 이미지 내의 높은 공간 주파수를 감쇄시켜 비압축 비디오 스트림을 "부드럽게 하도록(blur)" 작용하는 저역 통과 필터가 가능하며, 이로써 비압축 비디오 스트림이 압축하기에 용이하게 된다. 즉, 비압축 비디오 스트림이 덜 복잡하게 되어 압축을 위해 더 적은 수의 비트를 필요로 하게 된 다. 필터링의 세기는 그 이상의 공간 주파수 성분이 감쇄되는 임계치 또는 차단 주파수와 높은 공간 주파수가 감쇄되는 정도에 좌우될 것이다.
저장 및 지연 모듈(16)로부터의 지연된 비압축 비디오 스트림과 필터링된 비압축 비디오 스트림 양자는 스트림 중의 하나를 선택하는 스위치(22)에 입력된다. 스위치(22)로부터의 선택된 비압축 비디오 스트림과 룩어헤드 윈도우 모듈(18)로부터의 비트 할당 데이타는 정교한 압축 인코더(24)에 입력되어 H.264와 같은 정교한 압축 비디오 표준에 따른 압축 비디오 스트림을 발생한다. 정교한 압축 인코더(24) 또한 적응형 프리필터(20) 및 스위치(22)에 제어 신호를 제공하며, 이 제어 신호는 필터링의 "세기"와 어느 비디오 스트림이 인코딩될지를 결정한다. 필터링의 세기는 상이한 필터링 레벨로써 실시되거나 또는 연속적인 필터링 레벨로써 실시될 수도 있을 것이다. 적응형 프리필터(20)는 필터링된 비압축 비디오 스트림이 정교한 압축 인코더(24)에 의한 인코딩을 위해 선택되지 않을 때에는 오프로 전환되거나 또는 최소의 필터링을 위해 낮은 세기로 설정될 수도 있을 것이다.
입력단에 정교한 인코더/디코더 대신에 단순한 인코더/디코더(12, 14)를 사용함으로써, 실시 비용이 싱글-패스의 정교한 코덱의 비용에 근접할 정도로 감소된다. 그러나, 룩어헤드 윈도우 모듈(18)에서의 화상에 대한 복잡도 추정(estimation)에 관한 정보는 정교한 압축 인코더(24)를 위한 요구된 정보와 정확하게 일치하지는 않는다. 예를 들어, P-타입 화상은 그 화상의 대응하는 원본 화상이 조명 오프/온/오프 전환 시간 동안에 레코딩되었다면 단순한(MPEG2) 압축 인코딩에서의 움직임 보상을 위해 높은 비트-레이트를 필요로 한다. 한편, 이 P-타입 화상은 정교한(H.264) 인코더에 대해서는 단순 화상이 될 것이다. 이러한 결함에도 불구하고, 단순 압축 표준과 정교한 압축 표준 모두에 기초하여 화상 복잡도 추정의 상관이 이루어질 수 있다. 대부분의 경우, 단순 압축 표준에 대하여 상대적으로 복잡한/단순한 화상 또는 화상군(GOP)은 정교한 압축 인코더(24)에 대해서도 상대적으로 복잡/단순하게 된다. 복잡도 통계치는 허용 가능한 오차가 있기는 하지만 화상과 매크로-블록(MB) 중에서의 중요한 관계를 여전히 나타내준다. 따라서, 싱글-패스의 정교한 코딩에 비해, 의사 듀얼-패스의 정교한 코딩은 약간의 더 높은 실시 비용만으로 비디오 코딩 효율에서 우월성을 갖는다.
화상 복잡도의 통계치는 다음을 위해 사용된다:
- 2차 패스 인코딩(second pass encoding) 이전의 현재 화상에 대한 매크로-블록의 비트-레이트 목표의 추정 및 양자화 단계 크기의 선택, 및
- 2차 패스 인코딩 이전의, 현재 화상을 포함하는 현재 GOP에 대한 적응형 프리필터(20)의 세기의 제어.
압축 인코더(24)에 제공된 비트 할당을 계산할 수 있는 통계치의 볼륨이 크면 클수록, 인코더/트랜스코더의 비디오 화질 성능이 더 우수해진다. 따라서, 저장 및 지연 모듈(16)은 복수의 비압축 이미지를 저장한다. 비압축 비디오 스트림의 각각의 이미지는 궁극적으로는 정교한 압축 인코더(24)에 의해 I, P 또는 B 타입 화상으로 인코딩될 것이다. 제공된 비압축 이미지가 인코딩될 화상의 타입(I, P 또는 B)은 룩어헤드 윈도우 모듈(18)에 제공된 통계치에 기초한다. 따라서, 모듈(16)에 저장된 이미지가 인코딩되지 않더라도, 이들 이미지를 I, P 또는 B 타입 화상으로 참조하는 것이 용이해질 것이다. 모듈(16)에 의해 저장된 이미지의 수는 메모리의 크기 및 허용된 최대 지연량에 의해 제한된다. 입력 비디오 신호의 적어도 2개의 GOP에 대응하는 저장 길이가 요구된다. 본 명세서의 용도에서 저장 및 지연 모듈은 각각 15개의 화상의 표준 GOP를 포함하도록 설계된다.
룩어헤드 윈도우 모듈(18)은 화상 타입(I, P 또는 B), 화상 크기(바이트 단위) 및 화상 레벨에서의 평균 양자화 단계 크기를 포함하는 수신된 통계치에 기초하여 인코딩되고 있는 현재 화상에 대한 비트-레이트 목표를 설정한다.
인코딩의 장면에서의 화상 복잡도는 2개의 상이한 압축 표준에 대해 동일하지 않다. P-타입 화상은 복잡하게 될 것이며, 그 화상의 대응하는 원본 화상이 플래시 조명 오프/온/오프 전환 동안에 레코딩되었다면 MPEG2 인코딩에서의 움직임 보상을 위해 높은 비트-레이트를 필요로 한다. 한편, 이 P-타입 화상은 움직임 예측을 위한 최대 6개의 참조 화상 중에서 하나를 선택할 수 있는 H.264 인코더에 대해 단순 화상이 될 것이며, 참조 화상 중의 하나가 전술된 바와 같이 이 P-타입 화상과 강하게 상관될 것이다.
비트-레이트 목표를 설정하는 것 외에도, 룩어헤드 윈도우 모듈(18)에 의해 획득된 화상 복잡도의 통계치는 저역 통과 필터링의 세기를 제어하기 위해 적응형 프리필터(20)에 대한 제어 신호를 생성하기 위해 사용될 수도 있을 것이다. 현재 화상이 인코딩을 위해 더 많은 비트-레이트를 필요로 하는 어려운 화상이라는 것으로 레이트 컨트롤 정보가 나타낸다면, 적응형 프리필터(20)의 세기가 증가되어 화상이 강하게 저역 통과 필터링된다. 즉, 화상이 인코딩하기에 더 부드럽고 용이하 게 된다. 정교한 압축 인코더(24)는 스위치(22)를 채용하여, 정교한 압축 인코더(24)의 레이트 컨트롤 정보 및 가상 버퍼 충만도에 기초하여 저장 및 지연 모듈(16)로부터의 지연된 비압축 비디오 신호 출력 또는 적응형 프리필터(20)에 의한 필터링된 비디오 신호 출력 중의 하나를 선택한다. 예를 들어, 가상 버퍼가 충만 상태에 접근하고 있고 레이트 정보가 인코딩을 위한 현재 화상이 가상 버퍼에서 이용 가능한 것보다 더 많은 비트를 요구하는 것으로 나타낸다면, 가상 버퍼가 오버플로우하지 않고 필터링된 비압축 비디오가 인코딩되는 비디오 신호가 되도록, 프리 필터링의 양이 증가된다. 가상 버퍼 오버플로우의 위험이 없다면, 현재 화상은 약하게 필터링되거나 또는 전혀 필터링되지 않는다. 후자의 상황에서, 저장 및 지연 모듈(16)로부터의 비압축 비디오 신호는 인코딩을 위한 입력으로써 사용된다. 그러나, GOP 내의 비압축 비디오 신호와 필터링된 비압축 비디오 신호간의 필터 세기 및/또는 스위칭을 빈번하고 급작스럽게 변경하는 것은 P 및 B 화상에 대한 움직임 보상 잔여 신호를 야기할 것이다. 이것은 GOP 내에서 프리필터(20)를 완만하게 제어함으로써 방지된다. 화상이 필터링된다면, 이 화상을 참조 화상으로 이용하는 임의의 다른 화상 또한 적어도 동일한 필터 세기로 필터링되어야 한다.
예시를 위해 사용된 레이트 컨트롤 알고리즘은 Test Model 5(TM5) 스펙에 기초한다. TM5는 각각의 화상에 대해 목표 비트를 할당하기 위해 복잡도 측정치를 취하고, 그리고나서 가상 버퍼의 충만도에 기초하여 각각의 매크로-블록에 대한 양자화 파라미터를 설정한다. 트랜스코더 구성에서, 입력 비디오 신호에 대한 정보의 전부, 특히 입력 콘텐츠의 복잡도에 대한 통계치가 디코더(12)를 경유하여 인코 딩된 압축 비디오 스트림으로부터 이용 가능하다. 인코더 구성에서, 입력 비디오 신호에 대한 모든 정보, 특히 입력 콘텐츠의 복잡도에 대한 통계치가 단순한 인코더(14)를 경유하여 비압축 비디오 스트림으로부터 이용 가능하다. 레이트 컨트롤 알고리즘은 다음의 2가지 파트를 포함한다:
1. 복잡도 예측을 위해 "과거" 통계치를 취함.
2. 비트 할당을 위해 "미래" 통계치를 취함.
프로세스 양자는 적응형이며, 과거 슬라이딩 윈도우 및 미래 슬라이딩 윈도우는 각각의 화상이 인코딩된 후 통계치를 업데이트하기 위해 유지된다. 과거 슬라이딩 윈도우는 룩어헤드 윈도우(18)에 위치되고 미래 슬라이딩 윈도우는 정교한 압축 인코더(24)에 위치된다는 점에 유의하기 바란다. GOP에 관련하여 증분하는 슬라이딩 윈도우를 사용하는 이전의 어플리케이션과는 달리, 본 발명의 슬라이딩 윈도우는 화상 기반형이며, 각각의 화상을 인코딩한 후에 전방으로 이동한다.
레이트 컨트롤 알고리즘은 4가지의 단계, 즉 (a) 통계치 추출, (b) 복잡도 예측, (c) 비트 할당 및 (d) 통계치 업데이트를 갖는다.
(a) 통계치 추출
MPEG2 가변 비트-레이트(VBR) 스트림에서 H.264 일정 비트-레이트(CBR) 스트림으로 트랜스코딩하거나 또는 비압축 비디오 스트림을 H.264 CBR 스트림으로 인코딩할 때, 다음의 정보가 수집된다:
1. 각각의 화상에 대한 평균 양자화 파라미터(양자화 단계 크기).
2. 각각의 화상에 대한 출력 비트.
3. 각각의 화상에 대한 화상 타입(I, P, B).
1항과 2항은 입력 비디오의 복잡도의 계산을 위해 사용되는 한편, 3항은 정교한 압축 인코더(24)에 의해 사용되는 화상 타입을 기록한다.
(b) 복잡도 예측
복잡도 예측은 이전의 단순한/정교한(MPEG2/H.264) 복잡도 비율로부터 현재 화상의 복잡도와 현재 화상의 입력 복잡도를 예측한다. TM5에서, 현재 화상의 복잡도는 동일 타입의 이전의 화상의 복잡도에 의해 예측된다. 본 발명의 일실시예에서, 현재 화상의 복잡도는 과거 윈도우에서의 동일 타입의 모든 화상의 복잡도에 기초하여 예측된다. 그러나, 통계치가 단순 인코딩 포맷에 기초하기 때문에, 2개의 표준의 정교함간의 차이 및/또는 2개의 비트-레이트를 고려하기 위해 본 명세서에서 변환-계수로 지칭되는 스케일링 계수의 형태로 이루어지는 알고리즘에 대한 조정이 도입된다. 변환-계수는 이전의 단순한/정교한 비율의 평균치로써 계산되며, 각각의 화상의 인코딩 후에 업데이트된다. 상이한 화상 타입의 상이한 성질 때문에, 변환-계수는 각각의 화상 타입에 대해 독립적으로 계산된다.
복잡도 예측 알고리즘은 다음의 2가지 단계를 갖는다:
1. 이전의 변환-계수를 평균화함으로써 현재 화상에 대한 현재 변환-계수를 계산
인코딩/트랜스코딩될 비디오 시퀀스의 개시시에, 각각 3가지의 화상 타입(I, P, B)에 대응하는 변환-계수에 대한 3가지의 초기값이 존재한다. 과거 슬라이딩 윈도우에 걸친 평균 변환-계수는 일반적으로 단지 하나의 화상만의 변환-계수보다 더 우수하며, 정교한 인코더(24)에 의해 이미 인코딩되고 과거 윈도우 내에 존재하는 화상을 고려한다.
GOP는 I 타입 화상을 포함하는 NI, P 타입 화상을 포함하는 NP 및 B 타입 화상을 포함하는 NB로써 기술될 수 있다. 표준 GOP에 대해서는 전술된 바와 같이 다음과 같다:
N = 15
M = 3
NI = 1
NP = (N/M) - NI = (15/3) - 1 = 4
NB = N - NI - NP = 15 - 1 - 4 = 10
저장 및 지연 모듈(16)은 W개의 GOP를 포함한다. 이 부분의 설명을 위해, 모듈(16)은 2개의 표준 GOP를 저장하도록 설계되는 것으로 가정할 것이다. WI, WP 및 WB는 저장 및 지연 모듈(16)에서 각각 I, P 및 B 타입 화상의 총수를 나타낸다.
WI = WNI = 2*(1) = 2
WP = W(NP) = 2*(4) = 8
WB = W(NB) = 2*(10) = 20
비압축 비디오 스트림 내의 화상의 변환-계수 Tcur는 동일 타입(I, P 또는 B) 의 이전 Wtype 화상의 변환-계수를 평균화함으로써 계산되며, 평균화되는 이전 변환-계수의 수는 저장 및 지연 모듈(16)에서의 그 타입의 화상의 총수(WI, WP, WB)와 동일하게 된다.
TIcur = (1/WIi=j·WI+1·>jTI(j) = (1/2)Σi=j·1·>jTI(j)
TPcur = (1/WPi=j·WP+1·>jTP(j) = (1/8)Σi=j·7·>jTP(j)
TBcur = (1/WBi=j·WB+1·>jTP(j) = (1/20)Σi=j·19·>jTB(j)
여기서, j는 현재 화상의 화상 번호이다.
전술된 바와 같이 2개의 표준 GOP를 포함하는 저장 및 지연 모듈(16)에 대하여, 각각 I, P 또는 B 타입 화상에 대해 2개, 8개 또는 12개의 이전 변환-계수가 평균화된다.
2. 현재 화상의 복잡도를 예측
I 및 P 타입 화상에 대해, 단순한 복잡도 계수를 적합하게 크기 조정하기 위해 현재 화상의 정교한 또는 MPEG4 복잡도(XI4, XP4 또는 XB4)는 업데이트된 변환-계수(Tcur)를 이용하여 화상의 단순한 또는 MPEG2 복잡도로부터 예측된다. B 타입 화상에 대한 변환-계수는 상이한 화상 타입에 대한 상이한 화질 요건을 고려하기 위해 가중 계수(KB4)에 의해 추가로 조정된다. 이 가중 계수는 실험적으로 결정되며, 현재 GOP의 I 타입 단순 복잡도와 GOP의 B 타입 화상의 평균 단순 복잡도의 비율의 함수이다.
XI4 = XI2/TIcur
XP4 = XP2/TPcur
XB4 = XB2/(TBcur*KB4)
KB4는 우수하게 예측된 시퀀스, 즉 고속 움직임이 없는 시퀀스에 대해서는 더 크며, 고속 움직임을 갖는 시퀀스에 대해서는 더 작다. KB4는 비율 XI/XB에 따라 각각의 GOP를 인코딩한 후에 적응형으로 설정되며, 여기서 XI 및 XB는 현재 GOP 내의 모든 I 및 B 화상의 평균 단순 복잡도이다.
KB4에 대해 실험적으로 결정된 값
XI/XB KB4
> 5.0 1.35
2.0 - 5.0 1.2
< 2.0 1.1
원칙적으로, P 타입 화상에 대한 정교한 복잡도 XP4 또한 가중 계수(KB4)에 의해 조정될 수 있지만, 이것은 실질적으로 필요없는 것으로 판명되었다.
c) 비트 할당
비트 할당은 GOP-계층(GOP-layer) 및 화상-계층에 기초하여 될 수도 있다. 화상-계층은 GOP 경계를 깨뜨리며, GOP-계층보다 더 우수하게 수행한다. 이것은 비디오 신호에서의 장면 변경에 대해 실질적으로 효과적이다. 비트 할당은 다음의 2가지 단계를 갖는다.
1. 현재(kth) 화상에 대해 목표 비트를 할당
슬라이딩 룩어헤드 윈도우에서 현재 참조된 모든 화상에 대한 비트 단위의 목표 크기(TW)가 윈도우 내의 화상의 수, 초당 비트 단위의 일정 비트 레이트(R) 및 초당 화상 단위의 화상 레이트(F)에 기초하여 계산된다.
TW = WF(R/F)
그리고나서, 슬라이딩 룩어헤드 윈도우 내의 모든 화상의 복잡도 계수에 대한 현재 화상의 복잡도 계수의 비율만큼 TW를 승산함으로써 k번째 화상에 대해 할당될 비트의 목표 수(B4_tar(k))가 계산된다.
B4_tar(k) = TW*(X4(k)/Σi=0·>WF·1X4(k+i))
이 계산은 현재 화상에 대해 사용되어야 하는 목표 크기(TW)의 비율을 본질적으로 동일시한다. 복합 인코딩 알고리즘에 의해 인코딩될 때의 현재 화상의 크기는 단순 압축 알고리즘에 의해 인코딩될 때의 현재 화상의 크기(B2(k))보다 더 크게 되도록 허용되지 않는다. 그러므로, 압축될 때의 현재 화상의 크기는 B2(k)로 규제된다. B4_tar(k)가 B2(k)를 초과한다면, k번째 화상에 대하여 목표로 되는 비트의 수는 여전히 B4_tar(k)이다. 그러나, 더 적은 수 B2(k)가 인코딩이 실제로 발생할 때에 사용된 비트의 상한치가 될 것으로 이미 알려져 있다. 그리고나서, 여분의 비트를 고려하기 위해 목표 윈도우 크기가 수정된다.
TW(k+1) = TW(k) + B4_tar(k) - B2(k)
2. 적응형 양자화 및 인코딩(TM5)
MBj를 인코딩하기 전에, I, P, B에 대해 독립적으로 가상 버퍼의 충만도가 계산된다:
dj = d0 + Bj-1 - (T*(j-1))/MB_cnt
여기서, Bj는 j를 포함하여 화상 내의 모든 MB를 최대한으로 인코딩함으로써 발생된 비트의 수이며, MB_cnt는 화상 내의 MB의 수이며, T는 화상당의 일정 비트 레이트(CBR)이며, d0는 가상 버퍼의 초기 충만도이며, dj는 MBj에서의 가상 버퍼의 충만도이다. 그리고나서, MBj에 대해 기준 양자화 파라미터 Qj가 계산된다:
Qj = dj*51/r
여기서, 리액션 파라미터 r은 다음과 같다:
r = 2*R/F
적응형 양자화(Adaptive Quantization):
4개의 휘도 화상-구성 서브블록(four luminance picture-organized sub-block)(n=1...4) 및 4개의 휘도 필드-구성 서브블록(n=5...8)으로부터의 MBj에 대한 공간적 활동도가 원래의 화소값을 이용하여 계산된다:
actj = 1 + min(vblk1, vblk2,...,vblk8)
여기서,
vblkn = (1/64)*Σk=1·>64(PknㆍP_meann)2
P_meann = (1/64)*Σk=1·>64Pkn
여기서, P는 화소 그레이 레벨이다.
그리고나서, actj를 정규화한다:
N_actj = ((2*actj) + avg_act)/(actj + (2*avg_act))
여기서, avg_act는 인코딩될 최종 화상에 대한 actj의 평균값이다.
그리고나서, mquantj를 다음과 같이 조정한다:
mquantj = Qj*N_actj
mquantj의 최종값은 [1...51] 범위로 잘려지며(clip), 양자화를 위해 사용된다. 델타 QP는 H.264 기호론에 의해 정의된 바와 같이 [-26, 26]으로 잘려져야 한다. 그리고나서, 하나의 매크로-블록을 mquantj으로 인코딩하고, 현재 화상의 모든 매크로-블록이 인코딩될 때까지 이 단계를 반복한다.
(d) 방금 인코딩된 화상에 대한 화상 복잡도 및 변환-계수를 업데이트
방금 인코딩된 화상에 대한 화상 복잡도 및 변환-계수가 업데이트되며, 미래 화상과의 사용을 위해 슬라이딩 과거 윈도우에 저장된다.
1. 변환-계수는 대응하는 단순 압축 표준 화상의 "전체적인 복잡도 측정치"와 정교한 압축 표준 화상의 "전체적인 복잡도 측정치"의 비율로써 정의된다.
TI[current_picture_SN] = XI2/XI4
TP[current_picture_SN] = XP2/XP4
TB[current_picture_SN] = XB2/XB4
여기서, XI4, XP4 및 XB4는 출력된 정교한 압축 표준(H.264) 스트림의 I, P, B 화상에 대한 복잡도 측정치를 나타내고:
XI4 = SI4QI4
XP4 = SP4QP4
XB4 = SB4QB4
SI4, SP4, SB4, QI4, QP4 및 QB4는 단순 압축 표준(MPEG2) 하에서의 해당하는 양의 정의에 대응한다.
2. 화상의 비트 목표(B4_tar)가 룩어헤드 윈도우의 목표 크기의 함수이기 때문에, k번째 화상의 실제 인코딩된 크기 S(k)와 평균 인코딩된 화상 크기 R/F간의 어떠한 차이를 고려하기 위해 k번째 화상이 인코딩된 후 (k+1)번째 화상에 대해 룩어헤드 윈도우의 목표 크기 TW를 조정하며, 여기서 R은 일정 비트 레이트이고, F는 프레임 레이트이다.
TW(k+1) = TW(k) + R/F - S(k)
이러한 조정은 적절한 레벨의 가상 버퍼 충만도를 유지하기 위해 행해지며, TW(k+1)를 (k+1)번째 화상에 대한 비트 목표를 계산하기 위한 룩어헤드 윈도우의 더욱 합리적인 목표 크기로 만든다. 입력 시퀀스가 무한히 길지 않다면, 시퀀스의 종료점에서, 룩어헤드 윈도우 크기 WF 및 목표 크기 TW 양자는 감소한다. 각각의 화상을 인코딩한 후, 변환-계수 TI, TP 또는 TB가 업데이트되며, 미래 슬라이딩 윈도우 내의 예측된 복잡도값 전부가 마찬가지로 업데이트된다.
도 3에 예시된 바와 같이, 인코딩하기 위해 현재 화상에 대한 복잡도를 결정함에 있어서 사용될 변환-계수는 과거 윈도우 내의 동일한 화상 타입에 대한 변환-계수의 평균에 기초하는 한편, 현재 화상에 대한 비트 할당은 룩어헤드 윈도우 내의 화상의 전체적인 복잡도에 기초한다. 각각의 화상이 인코딩된 후, 실제적인 정교한 표준 복잡도가 결정되어 과거 윈도우에 입력되는 한편, 가장 오래된 복잡도가 외부로 시프트된다. 인코딩될 다음 화상이 현재 화상이 될 때 윈도우에 대한 새로운 복잡도를 결정하기 위해 새로운 화상의 통계치가 룩어헤드 윈도우에 로딩된다.
이와 같이, 본 발명은 단순한 압축 표준을 이용하여 비디오 신호에 대한 통계치를 추출하고, 비압축 비디오 신호에 대해 저역 통과 프리필터를 제어하기 위해 추출된 통계치와 가상 버퍼를 이용하고, 단순한 압축 발생 표준 화상에 대한 전체적인 복잡도 측정치와 정교한 압축 발생 표준 화상에 대한 전체적인 복잡도 측정치 의 비율인 변환-계수를 이용하여 화상대 화상을 기초로 한 슬라이딩 윈도우로 필터링된 또는 필터링되지 않은 비압축 비디오 신호를 인코딩하고, 각각의 화상에 대한 변환-계수 및 슬라이딩 윈도우를 업데이트함으로써, 단순한 압축 표준에서 정교한 압축 표준으로의 트랜스코딩/인코딩을 간략화하기 위해 화상 기반 슬라이딩 윈도우를 이용하여 레이트 컨트롤을 제공한다.
본 발명이 개시된 특정의 실시예로 제한되지 않고, 첨부된 청구의 범위 및 그것의 등가물에 정의된 바와 같은 본 발명의 기술사상으로부터 일탈함이 없이 변형이 이루어질 수 있을 것이라는 점을 이해할 수 있을 것이다. 문맥이 달리 나타내고 있지 않다면, 구성요소의 예의 수에 대한 한 청구항에서의 언급은 그것이 한 예에 대한 언급이던 하나 이상의 예에 대한 언급이던 적어도 기재된 수의 구성요소의 예를 필요로 하지만, 장치 또는 방법이 기재된 것보다 더 많은 그 구성요소의 예를 갖는 청구의 범위의 사상으로부터 배제하려는 의도는 아니다.

Claims (41)

  1. 각각의 프레임이 복잡도의 레벨을 갖는 비압축 디지탈 비디오 스트림의 프레임을 인코딩하는 방법에 있어서,
    상기 비압축 디지탈 비디오 스트림의 제1 프레임의 복잡도의 제1 값을 측정하고 제1 프레임의 화상 타입을 지정하기 위해 상기 제1 프레임을 제1 알고리즘으로 분석하는 단계와;
    상기 제1 프레임의 복잡도의 제1 값을 파라미터로 사용하여 상기 제1 프레임의 복잡도의 제2 값을 추정하는 단계와;
    상기 제1 프레임의 복잡도의 제2 값 및 상기 제1 프레임의 화상 타입을 파라미터로 채용하여 상기 제1 알고리즘과는 다른 제2 알고리즘으로 상기 제1 프레임을 인코딩하는 단계
    를 포함하는 것을 특징으로 하는 인코딩 방법.
  2. 제1항에 있어서,
    상기 제2 알고리즘에 따라 인코딩되는 때에 상기 제1 프레임의 복잡도의 제3 값을 측정하기 위해 상기 제1 프레임을 분석하는 단계와;
    상기 제1 프레임의 화상 타입 및 복잡도 비율을 저장하는 단계
    를 추가로 포함하는 것을 특징으로 하는 인코딩 방법.
  3. 제2항에 있어서,
    상기 인코딩 방법은,
    상기 제2 알고리즘으로 상기 제1 프레임을 인코딩하는 단계 전에,
    과거 프레임의 인코딩된 버전을 상기 제2 알고리즘으로 생성하는 단계와;
    미래 프레임의 복잡도의 값을 추정하는 단계
    를 추가로 포함하며,
    상기 제2 알고리즘으로 상기 제1 프레임을 인코딩하는 단계는,
    과거 프레임의 크기 및 미래 프레임의 복잡도의 추정값을 파라미터로 사용하여 상기 제1 프레임의 목표 크기를 결정하는 단계와;
    상기 제1 프레임의 목표 크기를 파라미터로 채용하여 상기 제1 프레임을 상기 제2 알고리즘으로 인코딩하는 단계를 포함하는 것을 특징으로 하는 인코딩 방법.
  4. 제3항에 있어서,
    상기 제2 알고리즘으로 상기 제1 프레임을 인코딩하는 단계에 의해 상기 제1 프레임의 인코딩된 버전이 생성되며, 상기 제1 프레임의 목표 크기를 결정하는 단계는 상기 제1 프레임의 인코딩된 버전의 크기를 예측하는 단계를 포함하는 것을 특징으로 하는 인코딩 방법.
  5. 제4항에 있어서,
    상기 제1 프레임의 복잡도 비율은 상기 제1 프레임의 복잡도의 제1 값을 상기 제1 프레임의 복잡도의 제3 값으로 제산함으로써 계산되는 것을 특징으로 하는 인코딩 방법.
  6. 제5항에 있어서,
    상기 제1 프레임 뒤에 상기 비압축 디지탈 비디오 스트림의 복수의 프레임이 이어지고,
    상기 인코딩 방법은,
    상기 비압축 디지탈 비디오 스트림의 복수의 프레임의 각각의 프레임의 복잡도의 제1 값을 측정하고 상기 각각의 프레임의 화상 타입을 지정하기 위해, 상기 비압축 디지탈 비디오 스트림의 복수의 프레임의 각각의 프레임을 상기 제1 알고리즘으로 분석하는 단계와;
    상기 각각의 프레임의 복잡도의 제1 값을 파라미터로 사용하여 상기 각각의 프레임의 복잡도의 제2 값을 추정하는 단계와;
    상기 각각의 프레임의 복잡도의 제2 값 및 상기 각각의 프레임의 화상 타입을 파라미터로 채용하여 상기 각각의 프레임을 상기 제2 알고리즘으로 인코딩하는 단계
    를 추가로 포함하는 것을 특징으로 하는 인코딩 방법.
  7. 제6항에 있어서,
    상기 제2 알고리즘에 따라 인코딩되는 때에 상기 각각의 프레임에 대한 복잡도의 제3 값을 측정하기 위해 상기 각각의 프레임을 분석하는 단계와;
    상기 각각의 프레임에 대한 화상 타입 및 복잡도 비율을 저장하는 단계
    를 추가로 포함하는 것을 특징으로 하는 인코딩 방법.
  8. 제7항에 있어서,
    상기 복수의 프레임 뒤에 제2 프레임이 이어지고,
    상기 인코딩 방법은,
    상기 제2 프레임의 복잡도의 제1 값을 측정하고 상기 제2 프레임의 화상 타입을 지정하기 위해 상기 제2 프레임을 상기 제1 알고리즘으로 분석하는 단계와;
    상기 제2 프레임의 복잡도의 제1 값을 파라미터로 사용하여 상기 제2 프레임의 복잡도의 제2 값을 추정하는 단계와;
    상기 제2 프레임의 복잡도의 제2 값 및 상기 제2 프레임의 화상 타입을 파라미터로 채용하여 상기 제2 프레임을 상기 제2 알고리즘으로 인코딩하는 단계
    를 추가로 포함하는 것을 특징으로 하는 인코딩 방법.
  9. 제8항에 있어서,
    상기 제2 프레임의 복잡도의 제1 값을 변환 계수로 제산함으로써 상기 제2 프레임의 복잡도의 제2 값을 추정하는 것을 특징으로 하는 인코딩 방법.
  10. 제9항에 있어서,
    상기 복수의 프레임의 서브세트와 관련된 저장된 복잡도 비율을 평균화함으로써 상기 제2 프레임의 변환 계수를 계산하며,
    상기 복수의 프레임의 서브세트는 상기 제2 알고리즘에 의해 인코딩되었고, 또 상기 제2 프레임과 동일한 화상 타입을 갖는 프레임인 것을 특징으로 하는 인코딩 방법.
  11. 제10항에 있어서,
    상기 제2 알고리즘에 따라 인코딩되는 때에 상기 제2 프레임의 복잡도의 제3 값을 측정하기 위해 상기 제2 프레임을 분석하는 단계와;
    상기 제2 프레임의 화상 타입 및 복잡도 비율을 저장하는 단계
    를 추가로 포함하는 것을 특징으로 하는 인코딩 방법.
  12. 제1항에 있어서,
    상기 제1 프레임의 복잡도의 제2 값을 추정하는 단계는, 상기 제1 프레임의 복잡도의 제1 값을 상기 제1 프레임의 화상 타입에 기초한 디폴트값으로 제산하는 단계를 포함하는 것을 특징으로 하는 인코딩 방법.
  13. 제1항에 있어서,
    상기 제1 프레임의 필터링되지 않은 버전을 수신하는 단계와;
    상기 제1 프레임을 상기 제2 알고리즘으로 인코딩하기 전에 상기 제1 프레임의 필터링된 버전을 생성하는 단계와;
    상기 제2 알고리즘에 의한 인코딩을 위해 상기 제1 프레임의 필터링되지 않은 버전 또는 필터링된 버전 중의 하나를 선택하는 단계
    를 추가로 포함하는 것을 특징으로 하는 인코딩 방법.
  14. 압축 디지탈 비디오 스트림의 프레임들을 트랜스코딩하는 트랜스코딩 방법에 있어서,
    상기 압축 디지탈 비디오 스트림의 프레임들의 각각의 프레임이 제1 인코딩 알고리즘에 따라 인코딩되고 또 복잡도의 레벨을 가지며,
    상기 트랜스코딩 방법은,
    상기 제1 프레임의 디코딩된 버전을 생성하고, 상기 제1 프레임의 복잡도의 제1 값을 측정하고, 상기 제1 프레임의 화상 타입을 결정하기 위해, 상기 압축 디지탈 비디오 스트림의 상기 제1 프레임을 제1 디코딩 알고리즘으로 디코딩하는 단계와;
    상기 제1 프레임의 복잡도의 제1 값을 파라미터로 사용하여 상기 제1 프레임의 복잡도의 제2 값을 추정하는 단계와;
    상기 제1 프레임의 복잡도의 제2 값 및 상기 제1 프레임의 화상 타입을 파라미터로 채용하여 상기 제1 프레임의 디코딩된 버전을 상기 제1 인코딩 알고리즘과는 다른 제2 인코딩 알고리즘으로 인코딩하는 단계를 구비하는 것을 특징으로 하는 트랜스코딩 방법.
  15. 제14항에 있어서,
    상기 제2 인코딩 알고리즘에 의해 인코딩되는 때에 상기 제1 프레임의 복잡도의 제3 값을 측정하기 위해 상기 제1 프레임의 디코딩된 버전을 분석하는 단계와;
    상기 제1 프레임의 화상 타입 및 복잡도 비율을 저장하는 단계를 추가로 포함하는 것을 특징으로 하는 트랜스코딩 방법.
  16. 제15항에 있어서,
    상기 제1 프레임의 디코딩된 버전을 상기 제2 인코딩 알고리즘으로 인코딩하기 전에,
    과거 프레임의 인코딩된 버전을 상기 제2 인코딩 알고리즘으로 생성하는 단계와;
    미래 프레임의 복잡도의 값을 추정하는 단계
    를 추가로 포함하며,
    상기 제1 프레임의 디코딩된 버전을 상기 제2 인코딩 알고리즘으로 인코딩하는 단계는,
    상기 과거 프레임의 크기 및 상기 미래 프레임의 복잡도의 제2 값을 파라미터로 사용하여 상기 제1 프레임의 디코딩된 버전의 목표 크기를 결정하는 단계와;
    상기 제1 프레임의 디코딩된 버전의 목표 크기를 파라미터로 채용하여 상기 제1 프레임의 디코딩된 버전을 상기 제2 인코딩 알고리즘으로 인코딩하는 단계를 포함하는 것을 특징으로 하는 트랜스코딩 방법.
  17. 제16항에 있어서,
    상기 제1 프레임을 상기 제2 인코딩 알고리즘으로 인코딩하는 단계에 의해 상기 제1 프레임의 인코딩된 버전이 생성되고, 상기 제1 프레임의 디코딩된 버전의 목표 크기를 결정하는 단계는 상기 제1 프레임의 인코딩된 버전의 크기를 예측하는 단계를 포함하는 것을 특징으로 하는 트랜스코딩 방법.
  18. 제17항에 있어서,
    상기 제1 프레임의 복잡도 비율은 상기 제1 프레임의 복잡도의 제1 값을 상기 제1 프레임의 복잡도의 제3 값으로 제산함으로써 계산되는 것을 특징으로 하는 트랜스코딩 방법.
  19. 제18항에 있어서,
    상기 제1 프레임 뒤에 상기 압축 디지탈 비디오 스트림의 복수의 프레임이 이어지고,
    상기 트랜스코딩 방법은,
    상기 압축 디지탈 비디오 스트림의 복수의 프레임의 각각의 프레임의 디코딩된 버전을 생성하고, 상기 각각의 프레임의 복잡도의 제1 값을 측정하고 상기 각각의 프레임의 화상 타입을 결정하기 위해, 상기 각각의 프레임을 제1 알고리즘으로 분석하는 단계와;
    상기 각각의 프레임의 복잡도의 제1 값을 파라미터로 사용하여 상기 각각의 프레임의 복잡도의 제2 값을 추정하는 단계와;
    상기 각각의 프레임의 제2 값 및 상기 각각의 프레임의 화상 타입을 파라미터로 채용하여 상기 각각의 프레임의 디코딩된 버전을 상기 제2 인코딩 알고리즘으로 인코딩하는 단계
    를 추가로 포함하는 것을 특징으로 하는 트랜스코딩 방법.
  20. 제19항에 있어서,
    상기 제2 인코딩 알고리즘으로 인코딩되는 때 상기 각각의 프레임의 복잡도의 제3 값을 측정하기 위해 상기 각각의 프레임의 디코딩된 버전을 분석하는 단계와;
    상기 각각의 프레임의 화상 타입 및 복잡도 비율을 저장하는 단계
    를 추가로 포함하는 것을 특징으로 하는 트랜스코딩 방법.
  21. 제20항에 있어서,
    상기 복수의 프레임 뒤에 제2 프레임이 이어지고,
    상기 트랜스코딩 방법은,
    상기 제2 프레임의 디코딩된 버전을 생성하고, 상기 제2 프레임의 복잡도의 제1 값을 측정하고 상기 제2 프레임의 화상 타입을 결정하기 위해, 상기 제2 프레임을 상기 제1 알고리즘으로 분석하는 단계와;
    상기 제2 프레임의 복잡도의 제1 값을 파라미터로 사용하여 상기 제2 프레임의 복잡도의 제2 값을 추정하는 단계와;
    상기 제2 프레임의 복잡도의 제2 값 및 상기 제2 프레임의 화상 타입을 파라미터로 채용하여 상기 제2 프레임의 디코딩된 버전을 상기 제2 인코딩 알고리즘으로 인코딩하는 단계
    를 추가로 포함하는 것을 특징으로 하는 트랜스코딩 방법.
  22. 제21항에 있어서,
    상기 제2 프레임의 복잡도의 제1 값을 변환 계수로 제산함으로써 상기 제2 프레임의 복잡도의 제2 값을 추정하는 것을 특징으로 하는 트랜스코딩 방법.
  23. 제22항에 있어서,
    상기 복수의 프레임의 서브세트와 관련된 저장된 복잡도 비율을 평균화함으로써 상기 제2 프레임의 변환 계수를 계산하고,
    상기 복수의 프레임의 서브세트는 상기 제2 인코딩 알고리즘에 의해 인코딩되었고 또 상기 제2 프레임과 동일한 화상 타입을 갖는 프레임인 것을 특징으로 하는 트랜스코딩 방법.
  24. 제23항에 있어서,
    상기 제2 인코딩 알고리즘에 따라 인코딩되는 때에 상기 제2 프레임의 복잡도의 제3 값을 측정하기 위해 상기 제2 프레임의 디코딩된 버전을 분석하는 단계와;
    상기 제2 프레임의 화상 타입 및 복잡도 비율을 저장하는 단계
    를 추가로 포함하는 것을 특징으로 하는 트랜스코딩 방법.
  25. 제14항에 있어서,
    상기 제1 프레임의 복잡도의 제2 값을 추정하는 단계는 상기 제1 프레임의 복잡도의 제1 값을 상기 제1 프레임의 화상 타입에 기초한 디폴트값으로 제산하는 단계를 포함하는 것을 특징으로 하는 트랜스코딩 방법.
  26. 제14항에 있어서,
    상기 제1 프레임의 디코딩된 버전을 상기 제2 인코딩 알고리즘으로 인코딩하기 전에, 상기 제1 프레임의 필터링되지 않은 비압축 버전으로부터 상기 제1 프레임의 필터링된 버전을 생성하는 단계와;
    상기 제2 인코딩 알고리즘에 의한 인코딩을 위해 상기 제1 프레임의 필터링되지 않은 버전 또는 필터링된 버전 중의 하나를 선택하는 단계를 추가로 포함하는 것을 특징으로 하는 트랜스코딩 방법.
  27. 각각의 프레임이 그 프레임과 관련된 복수의 특징을 갖는 프레임들의 연속체로 구성된 비압축 디지탈 비디오 입력 스트림을 인코딩하는 장치에 있어서,
    상기 비압축 디지탈 비디오 입력 스트림의 프레임들의 연속체를 수신하며, 제1 방법을 사용하여 상기 비압축 디지탈 비디오 입력 스트림의 프레임의 복수의 특징에 대한 측정값을 획득하고 그 프레임에 화상 타입을 지정하는 추출 수단과;
    상기 비압축 디지탈 비디오 입력 스트림의 프레임들의 연속체를 수신하며, 상기 비압축 디지탈 비디오 입력 스트림의 프레임들을 지연시켜서 상기 프레임들을 출력하는 지연 수단과;
    상기 지연 수단 내의 프레임의 측정값 및 화상 타입을 저장하는 값 저장 수단과;
    상기 지연 수단으로부터 프레임을 수신하여 그 프레임을 인코딩하며, 상기 값 저장 수단에 저장된 측정값에 응답하여 상기 프레임의 인코딩된 버전의 크기를 조정하는 인코딩 수단
    을 포함하는 것을 특징으로 하는 인코딩 장치.
  28. 제27항에 있어서,
    상기 값 저장 수단은 상기 프레임의 제1 특징의 측정값을 처리하여 상기 프레임의 제2 특징의 추정값을 구하는 수단을 포함하는 것을 특징으로 하는 인코딩 장치.
  29. 제28항에 있어서,
    상기 인코딩 수단은 상기 프레임과 관련된 화상 타입, 특징의 측정값 및 특징의 추정값을 수신하며, 상기 프레임의 인코딩된 버전을 생성하기 위해 상기 화상 타입, 상기 측정값 및 상기 추정값을 사용하는 것을 특징으로 하는 인코딩 장치.
  30. 제29항에 있어서,
    상기 값 저장 수단은 상기 지연 수단 내의 프레임의 인코딩된 버전의 크기의 예측된 값을 결정할 것이며, 상기 인코딩 수단은 상기 예측된 값에 응답하여 상기 지연 수단으로부터 수신된 프레임의 인코딩된 버전의 크기를 조정하는 것을 특징으로 하는 인코딩 장치.
  31. 제30항에 있어서,
    상기 인코딩 수단은, 프레임의 복잡도의 값을 측정하는 수단, 상기 측정된 복잡도의 값을 저장하는 수단, 및 프레임의 인코딩된 버전의 크기를 저장하는 수단을 포함하는 것을 특징으로 하는 인코딩 장치.
  32. 제31항에 있어서,
    상기 지연 수단으로부터 필터링되지 않은 프레임을 수신하여 필터링된 프레임을 생성하는 필터링 수단과;
    상기 지연 수단으로부터 필터링되지 않은 프레임을 수신하고, 상기 필터링 수단으로부터 필터링된 프레임을 수신하고, 상기 필터링되지 않은 프레임 및 상기 필터링된 프레임 중의 하나를 상기 인코딩 수단에 선택적으로 전송하는 스위칭 수단
    을 추가로 포함하는 것을 특징으로 하는 인코딩 장치.
  33. 제32항에 있어서,
    상기 스위칭 수단은 상기 인코딩 수단에 응답하여 상기 인코딩 수단에의 전송을 위해 필터링되지 않은 프레임 또는 필터링된 프레임을 선택하는 것을 특징으로 하는 인코딩 장치.
  34. 제27항에 있어서,
    상기 추출 수단은 제1 인코딩 방법에 의해 프레임을 인코딩하는 인코딩 수단을 포함하며, 상기 지연 수단으로부터 프레임을 수신하는 상기 인코딩 수단은 상기 제1 인코딩 방법과는 다른 제2 인코딩 방법에 의해 프레임을 인코딩하는 것을 특징으로 하는 인코딩 장치.
  35. 각각의 인코딩된 프레임이 그 프레임과 관련된 복수의 특징을 갖는 인코딩된 프레임들의 연속체로 구성된 압축 디지탈 비디오 입력 스트림을 트랜스코딩하는 트랜스코딩 장치에 있어서,
    상기 압축 디지탈 비디오 입력 스트림의 인코딩된 프레임들의 연속체를 수신하며, 제1 방법을 사용하여, 디코딩된 프레임들의 연속체를 획득하고 또 디코딩된 프레임의 복수의 특징에 대한 측정값을 획득하며 디코딩 프레임에 대한 화상 타입을 지정하는 디코딩 수단과;
    상기 압축 디지탈 비디오 입력 스트림의 디코딩된 프레임들의 연속체를 수신하며, 상기 압축 디지탈 비디오 입력 스트림의 상기 디코딩된 프레임들을 상기 압축 디지탈 비디오 입력 스트림의 인코딩된 프레임들보다 지연되도록 하여 출력하는 지연 수단과;
    상기 지연 수단 내의 디코딩된 프레임의 측정값 및 화상 타입을 저장하는 값 저장 수단과;
    상기 지연 수단으로부터 디코딩된 프레임을 수신하여 그 디코딩된 프레임을 인코딩하며, 상기 값 저장 수단에 저장된 측정값에 응답하여 상기 디코딩된 프레임의 인코딩된 버전의 크기를 조정하는 인코딩 수단
    을 포함하는 것을 특징으로 하는 트랜스코딩 장치.
  36. 제35항에 있어서,
    상기 값 저장 수단은 디코딩된 프레임의 제1 특징의 측정값을 처리하여 디코딩된 프레임의 제2 특징에 대한 추정값을 구하는 수단을 포함하는 것을 특징으로 하는 트랜스코딩 장치.
  37. 제36항에 있어서,
    상기 인코딩 수단은 상기 디코딩된 프레임과 관련된 화상 타입, 특징의 측정값 및 특징의 추정값을 수신하며, 상기 화상 타입, 상기 측정값 및 상기 추정값을 사용하여 상기 디코딩된 프레임의 인코딩된 버전을 생성하는 것을 특징으로 하는 트랜스코딩 장치.
  38. 제37항에 있어서,
    상기 값 저장 수단은 지연 수단 내의 디코딩 프레임의 인코딩된 버전의 크기의 예측된 값을 결정할 것이며, 상기 인코딩 수단은 예측된 값에 응답하여 상기 지연 수단으로부터 수신된 디코딩 프레임의 인코딩된 버전의 크기를 조정하는 것을 특징으로 하는 트랜스코딩 장치.
  39. 제38항에 있어서,
    상기 인코딩 수단은, 디코딩된 프레임의 복잡도의 값을 측정하는 수단, 측정된 복잡도의 값을 저장하는 수단, 및 디코딩된 프레임의 인코딩된 버전의 크기를 저장하는 수단을 포함하는 것을 특징으로 하는 트랜스코딩 장치.
  40. 제35항에 있어서,
    상기 지연 수단으로부터 필터링되지 않은 디코딩 프레임을 수신하여 필터링된 프레임을 생성하는 필터링 수단과;
    상기 지연 수단으로부터 필터링되지 않은 프레임을 수신하고, 상기 필터링 수단으로부터 필터링된 프레임을 수신하고, 상기 필터링되지 않은 디코딩 프레임 및 상기 필터링된 프레임 중의 하나를 상기 인코딩 수단에 선택적으로 전송하는 스위칭 수단
    을 추가로 포함하는 것을 특징으로 하는 트랜스코딩 장치.
  41. 제40항에 있어서,
    상기 스위칭 수단은 상기 인코딩 수단에 응답하여 상기 인코딩 수단에의 전송을 위해 필터링되지 않은 디코딩 프레임 또는 필터링된 프레임을 선택하는 것을 특징으로 하는 트랜스코딩 장치.
KR1020057010394A 2002-12-10 2003-12-09 화상을 기반으로 한 룩어헤드 윈도우를 이용한 레이트컨트롤 KR101012600B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/316,483 2002-12-10
US10/316,483 US7099389B1 (en) 2002-12-10 2002-12-10 Rate control with picture-based lookahead window

Publications (2)

Publication Number Publication Date
KR20050085451A KR20050085451A (ko) 2005-08-29
KR101012600B1 true KR101012600B1 (ko) 2011-02-10

Family

ID=32505954

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057010394A KR101012600B1 (ko) 2002-12-10 2003-12-09 화상을 기반으로 한 룩어헤드 윈도우를 이용한 레이트컨트롤

Country Status (9)

Country Link
US (1) US7099389B1 (ko)
EP (1) EP1588557A4 (ko)
JP (1) JP4434959B2 (ko)
KR (1) KR101012600B1 (ko)
CN (1) CN1726709B (ko)
AU (1) AU2003296418B2 (ko)
CA (1) CA2507503C (ko)
NZ (1) NZ540501A (ko)
WO (1) WO2004054158A2 (ko)

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8054880B2 (en) * 2004-12-10 2011-11-08 Tut Systems, Inc. Parallel rate control for digital video encoder with multi-processor architecture and picture-based look-ahead window
FR2851111B1 (fr) * 2003-02-10 2005-07-22 Nextream France Dispositif de codage d'un flux de donnees video
BRPI0411757A (pt) * 2003-06-26 2006-09-19 Thomson Licensing controle de taxa de vìdeo multipasse para casar restrições de canal de janela deslizante
US10554985B2 (en) 2003-07-18 2020-02-04 Microsoft Technology Licensing, Llc DC coefficient signaling at small quantization step sizes
US7738554B2 (en) 2003-07-18 2010-06-15 Microsoft Corporation DC coefficient signaling at small quantization step sizes
US7602851B2 (en) * 2003-07-18 2009-10-13 Microsoft Corporation Intelligent differential quantization of video coding
US8218624B2 (en) 2003-07-18 2012-07-10 Microsoft Corporation Fractional quantization step sizes for high bit rates
US7330509B2 (en) * 2003-09-12 2008-02-12 International Business Machines Corporation Method for video transcoding with adaptive frame rate control
US7263126B2 (en) * 2003-09-15 2007-08-28 Sharp Laboratories Of America, Inc. System and method for transcoding with adaptive bit rate control
US7535959B2 (en) * 2003-10-16 2009-05-19 Nvidia Corporation Apparatus, system, and method for video encoder rate control
US7580461B2 (en) * 2004-02-27 2009-08-25 Microsoft Corporation Barbell lifting for wavelet coding
JP2005294977A (ja) * 2004-03-31 2005-10-20 Ulead Systems Inc スライドウィンドウ(slidingwindow)を用いた2パスビデオエンコーディング方法とシステム
US7801383B2 (en) 2004-05-15 2010-09-21 Microsoft Corporation Embedded scalar quantizers with arbitrary dead-zone ratios
WO2006093306A1 (ja) * 2005-03-03 2006-09-08 Pioneer Corporation 画像符号化方式変換装置及び方法
US8422546B2 (en) 2005-05-25 2013-04-16 Microsoft Corporation Adaptive video encoding using a perceptual model
US8625914B2 (en) 2013-02-04 2014-01-07 Sony Corporation Image processing system, image processing method and program
JP4784188B2 (ja) * 2005-07-25 2011-10-05 ソニー株式会社 画像処理装置、画像処理方法およびプログラム
US8009963B2 (en) * 2006-01-26 2011-08-30 Qualcomm Incorporated Adaptive filtering to enhance video bit-rate control performance
US7903733B2 (en) 2006-01-26 2011-03-08 Qualcomm Incorporated Adaptive filtering to enhance video encoder performance
US7974340B2 (en) 2006-04-07 2011-07-05 Microsoft Corporation Adaptive B-picture quantization control
US8503536B2 (en) 2006-04-07 2013-08-06 Microsoft Corporation Quantization adjustments for DC shift artifacts
US7995649B2 (en) 2006-04-07 2011-08-09 Microsoft Corporation Quantization adjustment based on texture level
US8130828B2 (en) 2006-04-07 2012-03-06 Microsoft Corporation Adjusting quantization to preserve non-zero AC coefficients
US8059721B2 (en) 2006-04-07 2011-11-15 Microsoft Corporation Estimating sample-domain distortion in the transform domain with rounding compensation
US8711925B2 (en) 2006-05-05 2014-04-29 Microsoft Corporation Flexible quantization
US9332274B2 (en) * 2006-07-07 2016-05-03 Microsoft Technology Licensing, Llc Spatially scalable video coding
KR100837410B1 (ko) 2006-11-30 2008-06-12 삼성전자주식회사 주관적인 무손실 이미지 데이터 압축 방법 및 장치
US8411734B2 (en) 2007-02-06 2013-04-02 Microsoft Corporation Scalable multi-thread video decoding
US8238424B2 (en) 2007-02-09 2012-08-07 Microsoft Corporation Complexity-based adaptive preprocessing for multiple-pass video compression
US20080198932A1 (en) * 2007-02-21 2008-08-21 Nucore Technology Inc. Complexity-based rate control using adaptive prefilter
JP2008206060A (ja) * 2007-02-22 2008-09-04 Sony Corp 記録装置および方法、並びにプログラム
US8498335B2 (en) 2007-03-26 2013-07-30 Microsoft Corporation Adaptive deadzone size adjustment in quantization
US8243797B2 (en) 2007-03-30 2012-08-14 Microsoft Corporation Regions of interest for quality adjustments
US8442337B2 (en) 2007-04-18 2013-05-14 Microsoft Corporation Encoding adjustments for animation content
US8331438B2 (en) 2007-06-05 2012-12-11 Microsoft Corporation Adaptive selection of picture-level quantization parameters for predicted video pictures
US9648325B2 (en) * 2007-06-30 2017-05-09 Microsoft Technology Licensing, Llc Video decoding implementations for a graphics processing unit
US8189933B2 (en) 2008-03-31 2012-05-29 Microsoft Corporation Classifying and controlling encoding quality for textured, dark smooth and smooth video content
US8897359B2 (en) 2008-06-03 2014-11-25 Microsoft Corporation Adaptive quantization for enhancement layer video coding
WO2009157827A1 (en) * 2008-06-25 2009-12-30 Telefonaktiebolaget L M Ericsson (Publ) Row evaluation rate control
US9407925B2 (en) * 2008-10-30 2016-08-02 Vixs Systems, Inc. Video transcoding system with quality readjustment based on high scene cost detection and method for use therewith
JP2010187337A (ja) * 2009-02-13 2010-08-26 Toshiba Corp 動画像変換装置及び動画像変換方法
JP4746691B2 (ja) * 2009-07-02 2011-08-10 株式会社東芝 動画像符号化装置および動画像符号化方法
US20120249869A1 (en) * 2009-12-14 2012-10-04 Thomson Licensing Statmux method for broadcasting
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
US20110310955A1 (en) * 2010-06-22 2011-12-22 Lei Zhang Method and system for repetition based adaptive video compression
US8885729B2 (en) 2010-12-13 2014-11-11 Microsoft Corporation Low-latency video decoding
US9706214B2 (en) 2010-12-24 2017-07-11 Microsoft Technology Licensing, Llc Image and video decoding implementations
CN103493481A (zh) * 2011-01-28 2014-01-01 艾艾欧有限公司 基于场景的适应性比特率控制
AU2012209231B2 (en) 2011-01-28 2016-09-22 Eye IO, LLC Color conversion based on an hvs model
MX2013008755A (es) 2011-01-28 2014-01-31 Eye Io Llc Codificacion de secuencias de video basada en el tipo de escena.
US10298939B2 (en) * 2011-06-22 2019-05-21 Qualcomm Incorporated Quantization in video coding
HRP20231180T1 (hr) 2011-06-30 2024-01-05 Microsoft Technology Licensing, Llc Smanjenje latencije u kodiranju i dekodiranju videozapisa
US8731067B2 (en) 2011-08-31 2014-05-20 Microsoft Corporation Memory management for video decoding
US9819949B2 (en) 2011-12-16 2017-11-14 Microsoft Technology Licensing, Llc Hardware-accelerated decoding of scalable video bitstreams
US9094684B2 (en) 2011-12-19 2015-07-28 Google Technology Holdings LLC Method for dual pass rate control video encoding
WO2013106482A1 (en) * 2012-01-09 2013-07-18 Huawei Technologies Co., Ltd. Quantization matrix (qm) coding based on weighted prediction
US9183261B2 (en) 2012-12-28 2015-11-10 Shutterstock, Inc. Lexicon based systems and methods for intelligent media search
US9183215B2 (en) 2012-12-29 2015-11-10 Shutterstock, Inc. Mosaic display systems and methods for intelligent media search
WO2014146055A2 (en) * 2013-03-15 2014-09-18 Ning Lu Encoding of video data
US20150381979A1 (en) * 2014-06-25 2015-12-31 Arris Enterprises, Inc. Method for using a decoder or look-ahead encoder to control an adaptive pre-filter
US9860535B2 (en) * 2015-05-20 2018-01-02 Integrated Device Technology, Inc. Method for time-dependent visual quality encoding for broadcast services
KR20170017573A (ko) * 2015-08-07 2017-02-15 삼성전자주식회사 영상 데이터 처리 방법 및 이를 지원하는 전자 장치
KR101998303B1 (ko) * 2015-12-08 2019-10-01 네이버 주식회사 타임머신 기능을 위한 슬라이딩 윈도우 관리 방법 및 시스템
CN113796073A (zh) * 2019-03-11 2021-12-14 瑞典爱立信有限公司 涉及基于gop的时间过滤的视频译码
CN110753242B (zh) * 2019-11-01 2021-10-12 深圳市梦网视讯有限公司 一种转码片源帧层量化参数调整方法和系统
CN116347080B (zh) * 2023-03-27 2023-10-31 苏州利博特信息科技有限公司 基于下采样处理的智能算法应用系统及方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5343247A (en) * 1991-08-02 1994-08-30 U.S. Philips Corporation Filter circuit for preprocessing a video signal to be coded
BE1007808A3 (nl) * 1993-11-30 1995-10-24 Philips Electronics Nv Inrichting voor het coderen van een videosignaal.
AU703049B2 (en) * 1995-02-15 1999-03-11 Koninklijke Philips Electronics N.V. Method and device for transcoding video signals
JP3356004B2 (ja) * 1997-05-30 2002-12-09 日本ビクター株式会社 可変レート符号化装置及び方法
US6181742B1 (en) * 1998-01-26 2001-01-30 International Business Machines Corporation Single pass target allocation for video encoding
DE69815720T2 (de) * 1998-01-26 2004-05-13 Stmicroelectronics Asia Pacific Pte Ltd. Kodierung von bewegten bildern mit variabler bitrate in einem durchgang
US6310915B1 (en) * 1998-11-20 2001-10-30 Harmonic Inc. Video transcoder with bitstream look ahead for rate control and statistical multiplexing
KR100601615B1 (ko) * 1999-08-20 2006-07-14 삼성전자주식회사 네트워크 대역폭에 적응적인 영상 압축 장치
KR100433516B1 (ko) * 2000-12-08 2004-05-31 삼성전자주식회사 트랜스코딩 방법
US7058127B2 (en) * 2000-12-27 2006-06-06 International Business Machines Corporation Method and system for video transcoding
US6961376B2 (en) * 2002-06-25 2005-11-01 General Instrument Corporation Methods and apparatus for rate control during dual pass encoding

Also Published As

Publication number Publication date
WO2004054158A3 (en) 2004-12-16
US7099389B1 (en) 2006-08-29
JP2006509444A (ja) 2006-03-16
CN1726709A (zh) 2006-01-25
EP1588557A4 (en) 2009-07-15
WO2004054158A2 (en) 2004-06-24
KR20050085451A (ko) 2005-08-29
AU2003296418A1 (en) 2004-06-30
CA2507503C (en) 2011-06-28
EP1588557A2 (en) 2005-10-26
NZ540501A (en) 2006-06-30
JP4434959B2 (ja) 2010-03-17
CN1726709B (zh) 2010-09-29
AU2003296418B2 (en) 2008-10-23
CA2507503A1 (en) 2004-06-24

Similar Documents

Publication Publication Date Title
KR101012600B1 (ko) 화상을 기반으로 한 룩어헤드 윈도우를 이용한 레이트컨트롤
KR100926199B1 (ko) 레이트 제어 비디오 인코딩을 위한 적응형 프레임 스킵 기술
JP5180294B2 (ja) ビデオ符号化において、フレームの複雑さ、バッファレベル、およびイントラフレームの位置を利用するバッファベースのレート制御
US7170938B1 (en) Rate control method for video transcoding
US6023296A (en) Apparatus and method for object based rate control in a coding system
EP1012778B1 (en) Apparatus and method for macroblock based rate control in a coding system
US8396311B2 (en) Image encoding apparatus, image encoding method, and image encoding program
US20070025441A1 (en) Method, module, device and system for rate control provision for video encoders capable of variable bit rate encoding
US20070263720A1 (en) System and method of adaptive rate control for a video encoder
US8948242B2 (en) Encoding device and method and multimedia apparatus including the encoding device
US9560361B2 (en) Adaptive single-field/dual-field video encoding
CN108702513B (zh) 用于在显示流压缩中量化参数的适应性计算的设备及方法
JP5649296B2 (ja) 画像符号化装置
US20060209951A1 (en) Method and system for quantization in a video encoder
KR20010104058A (ko) 동영상 부호화기의 부호화 모드에 따른 적응적 양자화기
JP2000134617A (ja) 画像符号化装置
JPH1075443A (ja) 映像データ圧縮装置およびその方法
JP2002152735A (ja) 画像再符号化装置
JP2001148855A (ja) 画像情報変換装置及び画像情報変換方法
JP2002094954A (ja) 統計多重システム、統計多重制御装置、統計多重制御方法および統計多重制御における数式決定方法

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
FPAY Annual fee payment

Payment date: 20131227

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150108

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160112

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170118

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180110

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190111

Year of fee payment: 9