KR20000023277A - 움직임 추정을 수행하지 않고 프레임 스킵핑하는 방법 - Google Patents

움직임 추정을 수행하지 않고 프레임 스킵핑하는 방법 Download PDF

Info

Publication number
KR20000023277A
KR20000023277A KR19990040209A KR19990040209A KR20000023277A KR 20000023277 A KR20000023277 A KR 20000023277A KR 19990040209 A KR19990040209 A KR 19990040209A KR 19990040209 A KR19990040209 A KR 19990040209A KR 20000023277 A KR20000023277 A KR 20000023277A
Authority
KR
South Korea
Prior art keywords
frame
distortion
index
current
video
Prior art date
Application number
KR19990040209A
Other languages
English (en)
Other versions
KR100323683B1 (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 KR20000023277A publication Critical patent/KR20000023277A/ko
Application granted granted Critical
Publication of KR100323683B1 publication Critical patent/KR100323683B1/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/65Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
    • H04N19/69Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience involving reversible variable length codes [RVLC]
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/15Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/154Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
    • 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/162User input
    • 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
    • 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/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/196Methods 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 being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • 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/196Methods 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 being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • H04N19/198Methods 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 being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including smoothing of a sequence of encoding parameters, e.g. by averaging, by choice of the maximum, minimum or median value
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/587Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • 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/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (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

기준 프레임(reference frame)과 관계된 원 왜곡 지수(raw distortion measure)(예, MAD)는 비디오 비트스트림에서 현재 영상을 위해 산출된다. 그리고 나서 원 왜곡 지수는 현재 영상에 대한 움직임 추정을 행할 필요 없이, 기준 영상(reference image)과 관계된 현재 영상에 대해 움직임 보상된 왜곡 지수(예를 들어, S)의 추정치를 산출하는데 사용된다. 또한, 움직임 보상된 왜곡 지수는 현재 영상의 인코딩 여부 및 방법을 결정하는데 사용되고, 부분적으로 상기 결정에 근거하여 비디오 영상의 시퀀스에 대한 압축된 비디오 비트스트림(compressed video bitstream)이 산출된다. 본 발명은 비디오 코더가 먼저 계산상으로 비싼 움직임 추정(motion estimation) 및 움직임 보상(motion compensation) 처리를 수행할 필요 없이 프레임 스킵 시기를 결정할 수 있도록 해 주는데, 그렇지 않을 경우 스킵되는 프레임에 대한 계산 부하(computation load)가 소모될 것이다.

Description

움직임 추정을 수행하지 않고 프레임 스킵핑하는 방법{Method for frame skipping without having to perform motion estimation}
본 발명은 비디오 영상 처리에 관한 것으로, 특히 비디오 압축시 움직임 추정을 수행할 필요없이 프레임을 스킵하는 방법에 관한 것이다.
본 출원은 변리사 등록 번호 SAR 12728PROV로서 1998년 9월 18일에 출원된 미국 가출원번호 60/100,939의 출원일자에 대한 권리를 주장한다.
일반적으로 비디오 압축 처리시, 영상은 움직임 보상된 프레임간 차를 이용하여 인코딩되는데, 상기 영상 데이터 블록들은 현재 인코딩되고 있는 영상에서의 각 블록과 기준 영상에서의 선택된 블록 사이의 픽셀간 차이에 의해 인코딩된다고 알려져 있다.
이때, 현재 영상의 특정 블록을 위해 기준 영상에서 하나의 블록을 선택하는 과정을 움직임 추정(motion estimation)이라 칭한다.
상기 움직임 추정의 목적은 현재 영상의 블록과 가장 가깝게 정합(match)되는 블록을 기준 영상에서 찾아 상기 두 블록간의 픽셀간 차이가 적도록 함에 의해, 현재 영상의 블록이 상대적으로 적은 비트수를 사용하여 압축된 비트스트림으로 인코딩될 수 있도록 하는데 있다.
통상적인 움직임 추정 알고리즘에서, 현재 영상의 블록은 기준 영상의 기 설정된 탐색 영역(search region) 내에서 크기와 모양이 같은 타 블록들과 비교된다. 상기 탐색 영역은 통상, 각 방향의 특정 픽셀 수(예를 들어, 8)에 의한 프레임간 움직임 허용과 함께 현재 영상 블록의 해당 위치를 근거로 하여 정의된다.
그리고, 각각의 비교에는 영상 데이터의 두 블록간 차이의 양을 결정하는 수학적 왜곡 지수의 계산이 포함된다. 다른 왜곡 지수들 역시 사용될 수 있겠지만, 두 블록 사이의 해당 픽셀간 차이의 절대값의 합에 해당하는 절대차의 합(sum of absolute difference ; SAD)이 하나의 통상적 왜곡 지수이다.
이때, 현재 영상 데이터의 블록에 "최적으로" 정합되는 기준 영상 데이터의 블록을 확인하는 방법들이 많이 있다. 그 중 한 방법으로 "억지(brute force)" 소모적 접근(exhaustive approach) 방법에서는, 탐색 영역에 대한 개별 가능 비교가 수행되고, 최저 왜곡값(lowest distortion value)에 의해 최적 정합이 지정된다. 다른 방법으로, 계산 부하를 줄이기 위해, 가능 비교의 부분 집합만이 수행되는 대안적 구성(alternative scheme) 즉, 로그에 기반한 구성(log-based scheme) 또는 계층 구성(layered scheme)등이 종종 실행된다.
상기 양쪽 경우에 있어서, 결과는 현재 영상 데이터의 블록에 "최적으로" 정합하는 블록으로 기준 영상 데이터 블록의 선택이다. 상기 선택된 기준 영상 데이터의 블록은 "최적 정수-픽셀 위치(best integer-pixel location)"로 언급되는데, 이는 상기 블록 및 현재 영상 데이터의 해당 블록 위치가 픽셀의 정수값 변위를 나타내는 정수인 X(수평)와 Y(수직)를 가지는 움직임 벡터(motion vector)에 의하여 나타날 수 있기 때문이다. 상기 최적 정수-픽셀 위치의 선택 과정은 풀-픽셀(full-pixel) 움직임 추정 또는 정수-픽셀(integer-pixel) 움직임 추정으로 언급된다.
이때, 전체적 인코딩 구성을 더욱 개선하기 위하여, 하프-픽셀(half-pixel) 움직임 추정이 수행될 수 있다. 상기 하프-픽셀 움직임 추정에서, 현재 영상 데이터 블록은 최적 정수-픽셀 위치 선택을 위한 정수-픽셀 움직임 추정을 수행한 후에 상기 최적 정수-픽셀 위치 주위의 다른 하프-픽셀 위치에 해당하는 기준 영상 데이터와 비교되는데, 여기서 각 하프-픽셀 위치에 대한 비교는 보간된 기준 영상 데이터에 의한다.
그리고, 상기 움직임 추정 기술의 또 다른 방법들은 다른 기술에 비하여 적은 계산을 요하기는 하지만, 상기 움직임 추정에는 모두 상당한 계산력이 요구된다.
한편, 비디오 압축 처리의 주 목적은, 비디오 영상 시퀀스를 나타내기 위해 사용되는 비트를 줄임과 동시에 그 결과인 압축된 비디오 비트스트림의 영상 품질 면에서 적절한 레벨을 재생 중에 유지하는 것이다. 그리고, 많은 비디오 압축 적용의 또 다른 목적은, 일 예로 전송 대역폭 및/또는 재생 처리 제한을 충족시키기 위하여 상대적 균일 비트 속도(uniform bit rate)를 유지하는 것이다.
이러한 비디오 압축 처리는 종종 비트 속도과 재생 품질 사이의 교환(tradeoff)을 포함한다. 교환은 통상, 압축된 비디오 비트스트림으로 인코딩되는 각 영상의 재생 품질을 선택적으로 감소시킴으로써, 원본 비디오의 영상 대 평균 비트수를 줄이는 것을 포함한다. 대신 또는 부가적으로, 상기 교환은 원본 비디오 시퀀스에서 특정 영상을 스킵함으로써 상기 원본 영상들의 부분 집합만을 상기 비디오 압축의 결과인 압축된 비디오 비트스트림으로 인코딩하는 것을 포함할 수 있다.
이와 같이 종래의 비디오 압축 알고리즘은, 예를 들어 원본 비디오 시퀀스의 영상을 한 번 걸러 하나씩 스킵하는 영상 스킵의 규칙적인 패턴을 지시한다. 또한, 비디오 인코더는 비트 속도 요구를 충족시키기 위하여 필요한 만큼, 부가적 영상을 적절히 스킵할 수 있다. 여기서, 부가적 영상을 스킵하는 결정은 움직임이 보상된 프레임간 차의 왜곡 지수(예를 들어, SAD)에 통상적으로 근거하며, 이는 움직임 추정이 특정 영상에 대하여 수행된 후에만 성립한다.
이때, 현재 프레임을 스킵하지 않도록 결정될 경우, 움직임 추정 처리를 통해 얻은 움직임 보상된 프레임간 차는 영상 데이터를 더 인코딩하는데 사용된다(예를 들어, 이산 코사인 변환(DCT) 처리, 양자화(quantization), 런-길이 인코딩(run-length encoding) 및 가변 길이 인코딩(variable-length encoding)과 같은 기술을 사용하는 정확한 비디오 압축 알고리즘에 의존함). 반면, 현재 프레임을 스킵하도록 결정될 경우에는 움직임이 보상된 프레임간 차는 더 이상 필요가 없으며, 처리는 비디오 시퀀스의 다음 영상에서 계속된다.
본 발명의 목적은 실제적으로 비디오 시퀀스의 특정 영상에 대하여 움직임 추정을 수행할 필요 없이 움직임 보상된 왜곡 지수를 추정하는 움직임 추정을 수행하지 않고 프레임 스킵핑하는 방법을 제공함에 있다.
바람직한 실시예에서, 상기 추정된 왜곡 지수는 비디오 인코딩 동안에 움직임 추정을 수행하지 않고 영상을 스킵할 것인지 여부를 결정하기 위해 사용될 수 있다. 만일, 영상을 스킵하도록 결정될 경우, 움직임 추정 처리는 생략되며, 그에 따라 비디오 압축 처리의 계산 부하가 줄어든다. 한편, 영상을 인코딩하도록 결정될 경우, 움직임 추정 처리는 다음의 압축 처리에 대한 움직임 보상된 프레임간 차를 산출하기 위해 필요한 만큼 실행될 수 있다. 상기 비디오 압축 구성에서, 움직임 추정 처리는 그 결과로써 얻어지는 프레임간 차가 해당 영상을 인코딩하기 위해 필요할 때만 실행된다.
일 실시예에 따르면, 본 발명은, (a) 기준 영상과 관계된 비디오 시퀀스에서 현재 영상에 대한 원 왜곡 지수를 산출하는 단계와, (b) 현재 영상에서 움직임 추정을 수행할 필요 없이, 상기 원 왜곡 지수를 사용하여 기준 영상과 관계된 현재 영상에 대하여 움직임 보상된 왜곡 지수의 추정치를 산출하는 단계와, (c) 움직임 보상된 왜곡 지수의 추정치에 근거하여 현재 영상의 인코딩 여부 및 방법을 결정하는 단계와, (d) 상기 단계 (c)에 근거하여 비디오 영상의 시퀀스에 대한 압축된 비디오 비트스트림을 산출하는 단계를 포함하여 이루어짐을 특징으로 하는 움직임 추정을 수행하지 않고 프레임 스킵핑하는 방법이다.
본 발명의 기타 측면, 특징 및 이점은 다음의 세부 설명, 첨부된 청구항, 그리고 첨부된 도면에 의해 명확해진다.
도 1은 본 발명의 일 실시예로, 영상에 대한 원(즉, 움직임이 보상되지 않음) 왜곡 지수를 산출하는 알고리즘의 의사 코드(pseudo code)를 보여주는 도면
도 2는 본 발명의 일 실시예로, 영상에 대해 움직임 보상된 왜곡 지수 추정 알고리즘의 의사 코드를 보여주는 도면
도 3a 내지 3e는 본 발명의 일 실시예로, 코딩할 프레임의 종류 및 코딩 방법 결정 알고리즘의 의사 코드를 보여주는 도면
본 발명의 바람직한 실시예를 첨부도면을 참조하여 상세히 설명한다.
현재 영상에 대한 원 왜곡 지수 산출
도 1은 본 발명의 일 실시예로서, 영상에 대한 원(즉, 움직임이 보상되지 않음) 왜곡 지수 산출 알고리즘의 의사코드를 보여준다. 도 1과 같은 알고리즘을 사용하여 산출된 특정 원 왜곡 지수는 평균 절대차(mean absolute difference ; MAD)이다.
이때, 도 1의 알고리즘은 각 픽셀이 단일 멀티비트 강도값(single multi-bit intensity value)으로 나타나는 그레이 스케일(gray-scale) 영상에 대한 적용으로 해석될 수 있다. 또한, 도 1의 알고리즘은 각 픽셀이 둘 이상의 다른 멀티비트 요소(예를 들면, RGB 포맷에서의 적색, 녹색 및 청색 요소 또는 YUV 포맷에서의 휘도(Y) 및 2색(U,V) 요소)로 나타나는 컬러 영상으로 쉽게 확장될 수 있다.
도 1의 알고리즘은 현재 영상의 픽셀을 서로 다른 두 유형, 즉, 기준 영상의 해당 픽셀 값과 충분히 유사한 휘도값을 가지는 타입 Ⅰ 픽셀 및, 기준 영상의 해당 픽셀 값과는 아주 다른 픽셀 값을 가지는 타입 Ⅱ 픽셀로 구분한다. 이러한 알고리즘에서, "해당" 픽셀이란 현재 영상의 픽셀과 동일 위치(즉, 같은 열과 행)를 갖는 기준 영상의 픽셀이다.
여기서, 기준 영상과 현재 영상의 해당 부분 사이에 움직임이 없을 때, 현재 영상의 그 부분에서 픽셀들은 통상 타입 Ⅰ의 특징을 가진다. 유사하게, 상대적 공간 균일 부분(즉, 픽셀들이 개략적으로 동일한 값을 가지는 부분) 사이에서 움직임이 있으면, 상기 픽셀들 역시 통상 타입 Ⅰ의 특징을 가질 것이다. 그러나, 공간적 비균일 부분 사이에서 움직임이 있으면 현재 영상의 픽셀과 기준 영상의 해당 픽셀 사이의 절대차는 상대적으로 클 것이고, 상기 현재 영상의 픽셀 대부분은 통상 타입 Ⅱ의 특징을 가질 것이다.
이때, 변수 n1 및 n2는 각각 상기 두 가지 타입의 픽셀에 대한 카운터(counter)이며, 변수 dist1 및 dist2는 각각 상기 두 가지 타입의 픽셀에 대한 중간 왜곡 지수(intermediate distortion measure)이다. 새로운 각 영상에 대하여, 상기 네 변수는 도 1의 라인 1, 2에서 0으로 초기화된다.
그리고, 현재 이미지의 각 픽셀에 대하여(라인 3), 현재 픽셀값과 기준 프레임의 해당 픽셀값 사이의 절대차(absolute difference) ad가 산출된다(라인 4). 이때, ad가 특정 임계값(threshold value) thresh보다 적으면, 현재 픽셀은 타입 Ⅰ로 결정되고 dist1와 n1은 각각 ad와 1만큼 증가한다(dist1=dist1+ad, n1=n1+1)(라인 5). 반대의 경우, 현재 픽셀은 타입 Ⅱ로 결정되고 dist2와 n2가 각각 ad와 1만큼 증가한다(dist2=dist2+ad, n2=n2+1)(라인 6). 중요 에지를 구하기 위하여, 매개변수 thresh에 대한 통상적 임계값은 약 20이다. 그리고 나서, 중간 왜곡 지수 dist1 및 dist2는 각각 라인 8, 9에서 정규화된다(dist1/n1, dist2/n2).
만일, 균일 배경(예를 들어, 균일하게 칠해진 벽) 앞에 있는 화자 머리의 화상 회의 패러다임의 경우, 사람 머리의 프레임간 상대적 움직임(예를 들어, 측면 대 측면 움직임(side-to-side motion))으로 인하여 벽의 일부는 머리에 해당하는 픽셀로 새롭게 메워지고, 이전에 머리에 의해 메워졌던 벽의 다른 부분은 새롭게 노출된다. 이와 같은 상황으로 인하여, 원 프레임간 차이에서 두 개의 서로 다른 중요 에지, 즉 머리에 의해 새롭게 메워진 배경 부분에 해당하는 에지 및, 머리에 의해 새롭게 노출된 상기 배경 부분에 해당하는 에지가 얻어진다. 상기 두 에지는 이중 영상 효과(double-image effect)로 언급된다.
한편, 라인 10에서 하기의 수학식 1에 의해 산출되는 원 왜곡 지수 MAD는, 이중 영상 효과를 위해 수정되는 평균 절대차이다.
상기 수학식 1에서, 중요 에지의 이중 카운팅을 피하기 위해, 매개변수 factor에 대한 통상적 값은 0.5이다. (dist1*n2*(1-factor) 항은 타입 Ⅱ로부터 제거된 픽셀을 타입 Ⅰ의 픽셀처럼 취급함으로써, 이중 영상 효과를 수정하여 유사 영역의 평균 왜곡 레벨이 다시 더해지도록 한다. 타입 Ⅰ 픽셀의 왜곡 dist1은 나머지(residual) 및 코딩 잡음에 대한 추정치로 간주된다. 상기 추정치는 움직임 보상으로부터 삭제될 수 없다고 추정된다. 또한, 타입 Ⅱ 픽셀은, "완벽하게" 움직임 보상된 영상과 비교할 때 대략 두 배의 영역을 점유하고, factor 항은 이를 반영하며, 명목상 0.5로 선택된다. 이때, factor 항은 변화가 허용되는데, 이는 움직임 보상이 통상 완벽하지 않기 때문이다. 또한, 채워지지 않은 영역은 움직임이 보상된다고 추정된다. 그러나, 픽셀의 분수(fraction)(n2*(1-factor))는 타입 Ⅰ 픽셀과 유사한 코딩 잡음 및 나머지를 가짐이 기대된다. 그러므로, dist1*n2*(1-factor) 항은 상기 채워지지 않은 타입 Ⅱ 픽셀의 왜곡에 대한 추정치로서 사용된다.
원 왜곡 지수로부터 추정된 움직임이 보상된 왜곡 지수 산출
도 2는 본 발명의 일 실시예로서, 영상에 대해 움직임 보상된 왜곡 지수 추정 알고리즘의 의사 코드를 보여준다. 도 2의 알고리즘을 사용하여 추정된 특정 왜곡 지수는, 움직임 보상된 평균 절대차 S이다. 도 2의 알고리즘은 상기된 도 1의 알고리즘을 사용하여 유도된 원 왜곡 지수 MAD로부터 왜곡 지수 S에 대한 추정치 Se를 도출한다. 상기 추정된 왜곡 지수 Se는, 비디오 인코딩 동안 각 영상에 대해 움직임 추정을 수행할 필요 없이 스킵할 것인지 여부를 결정하는 데 사용될 수 있다.
도 2의 알고리즘에 따라, 현재 프레임에 대한 원 왜곡 지수 MAD(I) 및 이전 프레임에 대한 원 왜곡 지수 MAD(I-1)는 하기의 수학식 2와 같이 이전 프레임에서 현재 프레임으로의 MAD 백분율 변화 지수 H를 결정하기 위하여 사용된다(라인 1). 또한, 이전 프레임에서 현재 프레임으로의 원 왜곡 지수 MAD의 변화를 특징으로 하는 다른 적절한 식들도 사용될 수 있다.
이때, 백분율 변화 H가 제 1 임계값 T1보다 적으면(H<T1)(라인 2), 현재 프레임에 대한 추정 왜곡 지수 Se(I)는 이전 프레임에 대해 실제 움직임 보상된 왜곡 지수 S(I-1)와 같다고 추정된다(Se(I)=S(I-1))(라인 3). 반대로, 백분율 변화 H가 제 2 임계값 T2보다 적으면(H<T2)(라인 4)(여기서 T2는 T1보다 크다), 현재 프레임에 대한 추정 왜곡 지수 Se(I)는 하기의 수학식 3과 같이 결정된다(라인 5).
상기 수학식 3에서 인자 k는 바람직하게 0과 1 사이에서 지정되는 특정 매개변수이다. 통상 T1 및 T2값은 각각 0.1 및 0.5이다.
한편, 상기 백분율 변화 H가 제 2 임계값 T2보다 크면(라인 6), 현재 프레임에 대한 추정 왜곡 지수 Se(I)는 하기의 수학식 4에 의해 결정된다(라인 7).
도 2의 처리를 지지하는 동기는 다음과 같다. 즉, 원 왜곡 지수 MAD(I)는 현재 프레임과 기준 프레임 사이의 움직임이 보상되지 않은 픽셀 차의 지수이다. 유사하게, 원 왜곡 지수 MAD(I-1)는 현재 프레임과 기준 프레임 사이의 원 픽셀 차의 지수이며, 현재 프레임에 대한 기준 프레임과 동일하거나 다를 수 있다. 백분율 변화 H는 두 원 왜곡 지수 MAD(I)와 MAD(I-1) 사이의 상대적 변화 지수이며, 상기 MAD(I) 및 MAD(I-1)는 그 자체로서 상기 영상들 및 해당 기준 영상들 사이의 변화 속도 지수이다.
그리고, 움직임 보상은 프레임간 왜곡 변화가 거의 또는 전혀 없을 때 영상 데이터를 아주 훌륭하게 예측한다. 상기 경우처럼 백분율 변화 H가 적을 때(예를 들어, H < T1일 때)는, 이전 프레임에 대해 실제 움직임 보상된 왜곡 지수 S(I-1)는 도 2의 라인 3에서처럼 현재 프레임에 대해 움직임 보상된 왜곡 지수 S(I)의 좋은 추정치 Se(I)가 될 수 있다.
그러나, 프레임에서 프레임으로의 왜곡이 변화할 때는(예를 들면, 형상 내 장면 변화 또는 다른 비균일 변화 중), 움직임 보상은 영상 데이터를 잘 예측하지 못할 것이다. 이와 같은 상황에서, 이전 프레임에 대해 실제 움직임 보상된 왜곡 지수 S(I-1)는 현재 프레임에 대해 실제 움직임 보상된 왜곡 지수 S(I)의 적합한 지시(indication)가 반드시 되지는 못할 것이다. 그러므로, 백분율 변화 H가 클 때(즉, H > T2일 때), 상기 수학식 4(라인 7)에서처럼 현재 프레임에 대한 원 왜곡 지수 MAD(I)로부터 현재 프레임에 대해 실제 움직임 보상된 왜곡 지수 S(I)를 추정하는 것이 보다 안전할 것이다. 이때, 인자 k를 0 내지 1사이(예를 들어, 바람직하게는 0.8)로 선택하는 것은, 움직임 보상이 통상적으로 왜곡 지수를 일부 지정된 한도로 감소시킴을 추정한다.
도 2의 라인 5(상기 수학식 3)는 백분율 변화 H가 작지도 크지도 않은 상태(예를 들면, T1 < H < T2)일 때, 상기 두 "극단적" 경우 사이의 선형 보간법(linear interpolation)을 제공한다. 이처럼, 도 2의 알고리즘은 원 왜곡 지수 MAD 및 모든 MAD값에 대하여 추정되는 움직임 보상된 왜곡 지수 Se 사이의 연속 관계 즉, 구분적 연속 함수(piecewise-linear)를 제공한다. 실험의 결과들은 도 1 및 2의 알고리즘이 실제 움직임이 보상된 왜곡 지수 S의 신뢰할 수 있는 추정치 Se를 제공함을 확증한다. 여기서 추정된 왜곡 지수 Se는 거의 항상 실제 왜곡 지수 S의 20% 내에 있으며, 보통은 10 내지 15% 내에 있다.
추정된 왜곡 지수를 사용하여 현재 이미지의 스킵 여부 결정
도 1 및 2의 알고리즘을 사용하여 산출된 추정 왜곡 지수 Se는 현재 영상의 스킵 여부, 즉 비디오 인코딩 처리 도중 현재 영상을 압축된 비디오 비트스트림으로의 인코딩을 피할 것인지 여부를 결정하는 데 사용될 수 있다. 본 발명의 일 실시예에서, 적응성(adaptive) 프레임 스킵 구성은 비디오 코더가 전송된 프레임 속도 및 기준 프레임의 품질에 대하여 제어를 유지할 수 있도록 한다. 큰 움직임(high motion)의 경우, 상기 구성은 프레임의 품질 및 프레임 속도에서 스무스한 성능 저하(graceful degradation)를 보장한다.
상기 비디오 코더는 다음 두 상태, 즉, 고정 상태(steady state) 및 천이 상태(transient state) 중 한 상태가 될 수 있다. 고정 상태에서는 특정 프레임 속도를 충족시키기 위한 모든 시도가 행해지며, 이것이 가능하지 않다면 임의의 최소 프레임 속도를 유지하려는 시도가 행해진다. 최소 프레임 속도 유지조차 불가능해질 때 상기 코더는 천이 상태로 전환되는데, 여기서 대 프레임 스킵(large frame skip)은 버퍼 레벨(buffer level)이 감소할 때까지 허용되며 그 후 다음 프레임이 전송될 수 있다. 전송의 시작에 부가하여, 천이 상태는 통상적으로 장면 변화 및 돌발적 큰 움직임 도중에 발생한다. 코더는 상대적으로 짧은 시간에 천이 상태에서 고정 상태로 이동하는 것이 바람직하다.
이때, 상기 비디오 압축 알고리즘에 따른 압축 처리를 위해 영상(image)은 다음과 같이 서로 다른 형태의 프레임으로 나타내어질 수 있다.
프레임내(Intra-frame) 압축 기술만을 사용하여 인코딩되는 인트라(I) 프레임;
이전 I 또는 P 프레임에 의한 프레임간(Inter-frame) 압축 기술을 사용하여 인코딩되며, 그 자체가 하나 이상의 다른 프레임을 인코딩하는 기준 프레임으로서 사용될 수 있는 예측(P) 프레임;
이전 및 후속 I 또는 P 프레임에 의한 양방향(bi-directional) 프레임간 압축 기술을 사용하여 인코딩되며, 다른 프레임 인코딩에는 사용될 수 없는 양방향(B) 프레임; 및
단일 오버헤드 데이터 세트를 가지는 단일 프레임으로서 인코딩되는(H. 263 비디오 압축 알고리즘에서와 같이) 두 개의 영상 -- P 프레임과 시간적으로 선행하는 B 프레임 -- 에 상응하는 PB 프레임.
본 발명의 일 실시예로, 천이 상태에서는 I 및 P 프레임만이 허용되는 반면, 고정 상태에서는 B 프레임(H. 263+, MPEG) 및 PB 프레임(H. 263) 역시 허용된다. 상기 고정 상태에서, 상기 B 프레임과 PB 프레임은 다른 두 상황에서 두 가지 목적을 위해 사용된다. 첫째로, 움직임이 클 때 B 프레임은 프레임 속도를 적정 레벨까지 증가시키기 위하여 사용된다. 둘째로 움직임이 작을 때는, B 및/또는 PB 프레임을 사용함으로써 더 높은 압축 효율의 완성이 가능해진다. 이와 같은 시스템은 기준 프레임의 속도 및 품질에 대한 제어가 요구되는 출원을 위해 설계된 것이다. 이때, 조정된 매개변수들은 프레임에 대한 속도, 프레임의 적정 왜곡 레벨 및 프레임 속도를 포함한다. 또한, B 또는 PB 프레임을 언제 인코딩할지에 대한 지능 모드(intelligent mode) 결정을 수행하고, 보증된 경우에는 지능적으로 프레임을 스킵함으로써 상기 매개변수를 유지하려는 시도가 행해진다.
상기 결정들은 프레임이 프레임 버퍼 내에서 판독될 때 측정되는 속도 및 왜곡 매개변수의 추정치에 근거하며, H. 263+ 비디오 코덱 근사항 모델 8(TMN 8, Study Group16, ITU-U, Q15-A-59 문서, Release 0, 1997년 6월) 및, MPEG와 H. 263에 대하여 사용될 수 있는 특정 속도 제어 구성에 아주 적합하다. 또한, 상기 방법은 인코딩되는 유입 프레임(incoming frame)을 위해 최소 저장량이 사용됨을 보증한다. 그리고, 더 많은 저장이 필요하지만 프레임 속도 및 기준 프레임 품질에 대한 보다 나은 제어를 유지할 수 있도록 하는 다른 방법들도 가능하다. 또한, 본 발명의 방법은 특히 움직임 추정을 위한 계산적 오버헤드(computational overhead)가 최소임을 보증한다. 만일, 부가적 계산력을 움직임 추정에 사용할 수 있다면, 알고리즘의 수행은 더욱 개선될 수 있다.
상기 방법은 움직임 보상 이후 프레임을 인코딩하기 위한 속도 및 SAD(절대차 총계)와 관련한 2차 속도 왜곡 모델에 근거한다. 상기 2차 속도 왜곡 모델은 하기의 수학식 5와 같이 나타난다.
(R-H)/Se=X1/Q+X2/(Q**2)
상기 수학식 5에서,
R : 현재 프레임을 P 프레임으로 인코딩하는 데 필요한 비트수. 통상적으로 해당 P 프레임의 양자화기(quantizer)보다 높은 양자화기를 가진 경우를 제외하고는, 동일한 모델을 B 프레임에도 적용할 수 있다.
H : 오버헤드(예를 들어, 헤더 및 움직임 정보)를 인코딩하는 데 필요한 비트수.
S : 현재 프레임에 대해 움직임이 보상된 프레임간 SAD.
Q : 이전 프레임에 대한 평균 양자화기 스텝 사이즈.
X1, X2 : 방정식 모델의 매개변수이며, 프레임 사이에서 순환적으로 갱신된다.
이때, 인코딩되지 않을 프레임에 대한 움직임 추정은 피하는 것이 바람직하므로, 움직임 추정을 수행할 필요 없이 도 1 및 2의 알고리즘을 사용하여 산출된 추정치 Se는 움직임 보상된 왜곡 지수 S를 위해 상기 수학식 5에서 사용된다. 상기 모델이 절대차 총계를 비용함수(cost function)로서 사용하여 기술되기는 했지만, 본 발명은 적절한 타 비용함수를 사용하여 실행될 수도 있다.
예를 들어, 3개 프레임 시퀀스 A, C 및 E가 있고, 여기서 시간적으로 프레임 A가 세 프레임 중 첫 번째 프레임이고 프레임 E가 마지막 프레임이라고 생각한다. 다음 논의는 PB 프레임 또는, 기준 프레임들 사이에서 많아야 하나의 B 프레임을 가지는 코딩 구성을 위한 것이다. 기준 프레임들 사이에서 하나 이상의 B 프레임을 가지는 코더에 대한 일반화는 이후 기술될 것이다. 이때, 프레임 A가 기준 프레임(즉, I 프레임 혹은 P 프레임)으로 인코딩된다고 추정할 때, 프레임 C 및 E를 어떻게 인코딩할 것인지에 대한 결정을 내려야 한다. 다음의 네 가지 선택이 가능하다.
(1) 프레임 C를 B 프레임으로, 프레임 E를 기준 프레임으로 인코딩한다.
(2) 프레임 C 및 E를 함께 PB 프레임으로 인코딩한다.
(3) 프레임 C를 기준 프레임으로 인코딩하고, 프레임 E의 인코딩 방법을 결정하기 위해 처리를 재 시작한다. 및
(4) 프레임 C를 스킵하고 프레임 E를 기준 프레임으로 인코딩한다.
만일, 가능하다면 프레임 C 및 E를 함께 PB 프레임으로 인코딩하는 것이 바람직하다. 그리고, 움직임이 크고 버퍼 점유가 그다지 높지 않을 경우 프레임 C는 기준 프레임으로 인코딩될 필요가 있는데, 이러한 경우 상기 처리는 프레임 E의 인코딩 방법을 결정하기 위해 재시작된다. 또한, 움직임이 크고 버퍼 점유가 매우 높을 때는 프레임 C가 스킵될 필요가 있는데, 이러한 경우 프레임 E가 기준 프레임으로 인코딩될 것이다. 다음의 논의는 시간 기준(time reference)이 프레임 A에 있음을 가정한다.
표기법
다음의 표기법은 본 명세서에서 이후 상세히 설명될 알고리즘에서 사용된다.
MAD : 현재 프레임에 대한 원 왜곡 지수이며, 여기서 왜곡 지수는 평균 절대차에 근거한다.
S : 현재 프레임에 대해 실제 움직임 보상된 왜곡 지수이며, 여기서 왜곡 지수는 평균 절대차에 근거한다.
Se : 현재 프레임에 대해 실제 움직임 보상된 왜곡 지수 S의 추정치이며, 여기서 왜곡 지수는 원 평균 절대차 MAD에 근거한다.
R : 현재 프레임을 인코딩하는 데 필요한 비트수이며, 추정된 왜곡 지수 Se 또는 실제 왜곡 지수 S를 사용하여 수학식 5에 따라 산출된다.
H : 현재 프레임의 나머지를 전송하기 위해 사용되는 비트를 제외한 오버헤드 비트(예를 들어, 움직임 벡터에 대하여). 이 정보가 이용 가능하지 않다면, H는 0으로 추정된다.
Rp : 일정 비트 속도(constant bit rate ; CBR)의 경우에 있어서, 하나의 픽처 간격내 채널에 대한 비트 출력.
smin : 다음 프레임을 인코딩하기 위한 최소 스킵(예를 들어, 1/평균 타깃 프레임 속도).
smax : 고정 상태의 프레임들 사이에서 허용된 최대 스킵.
skip : 이전에 인코딩된 프레임으로부터 스킵하기 위한 프레임 수에 해당하는 지시기(pointer).
Bframeskip : 잠재적 B 프레임으로 저장되는 프레임에 해당하는 지시기.
Bmax : 버퍼의 전체 크기.
B : 프레임 skip을 인코딩하기 전의 프레임 skip에서의 버퍼 점유. 일정 비트 속도 채널에 대하여 B=Bp-(Rp*skip)이고, 여기서 Bp는 이전 프레임을 인코딩한 후의 버퍼 점유이다.
또한, 상기 알고리즘은 다음과 같은 플래그(flag)를 따른다.
PCFD1: 버퍼 내에 현재 프레임을 P 프레임으로서 전송할 충분한 공간이 있는지를 나타내고, 여기서 상기 결정은 우선적으로 현재 프레임에 대하여 움직임 추정을 수행할 필요없이 이루어진다. 일 실시예로 (R(Se) + B < χ*Bmax)이면(여기서 R은 추정된 왜곡 지수 Se에 근거하여 수학식 5를 사용하여 산출됨), 버퍼에는 공간이 있으며 PCFD1는 1이다. 반대의 경우, 버퍼에는 충분한 공간이 없고 PCFD1는 0이다. χ값의 변화에 따라 제한의 밀착도(tightness)가 달라지기는 하지만, 일 실시예에서 χ는 80%이다.
PC1 : R이 움직임 추정을 수행한 후에 수학식 5를 사용하여 산출되며, 실제 왜곡 지수 S에 근거한다는 것을 제외하면 PCFD1과 유사하다.
PCFD2 : 기준 프레임과 관계된 현재 프레임의 움직임이 "큰가"를 보여주며, 여기서 상기 결정은 우선적으로 현재 프레임에 대하여 움직임 추정을 수행할 필요 없이 이루어진다. 이러한 경우, 움직임의 범위는 원 왜곡 지수 MAD에 근거한다. MAD가 특정 임계 레벨보다 크면 움직임이 크다고 하고 PCFD2는 1이다. 반대의 경우, 움직임은 크지 않으며 PCFD2는 0이다.
PC2 : 상기 결정이 움직임 추정 이후, 예를 들어 평균 움직임 벡터 범위를 특정 임계 레벨에 비교함으로써 이루어진다는 것을 제외하면, PCFD2와 유사하다.
PBCFD : 잠재적 B 프레임으로 저장된 현재 프레임 및 이전 프레임이 함께 PB 프레임으로 코딩될 수 있는지의 여부를 보여 주며, 여기서 상기 결정은 우선적으로 현재 프레임에 대하여 움직임 추정을 수행할 필요없이 이루어진다. 일 실시예에서, (R(Se) + (B 프레임을 인코딩하기 위한 비트) + B < χ*Bmax) 이면 두 프레임은 함께 PB 프레임으로 인코딩될 수 있으며 PBCFD는 1이다. 반대의 경우, 상기 두 프레임은 함께 PB 프레임으로 인코딩될 수 없으며 PBCFD는 0이다.
Pmeet : 이전에 저장된 프레임이 P 프레임으로서 전송될 수 있는지의 여부를 보여준다. 만약 전송될 수 있다면, Pmeet는 1이다.
도 3a 내지 3e는 본 발명의 일 실시예에 따른, 코딩할 프레임의 종류 및 코딩 방법 결정 알고리즘의 의사 코드를 제공한다. 상기 알고리즘은 일곱 개의 루틴(routine), 즉, 시작(START), 루프 1 내지 루프 5(LOOP 1∼LOOP 5) 및 천이(TRANSIENT) 루틴을 포함한다. 상기 시작 루틴은 기준 프레임을 코딩한 후 고정 상태 처리 동안에 요구되며, 천이 루틴은 천이 처리 동안에 요구된다. 앞서 상술한 것처럼, 고정 상태에서는 미리 정해진 특정 프레임 속도를 충족시키기 위한 모든 시도가 행해지며, 이것이 가능하지 않다면 특정 최소 프레임 속도를 유지하려는 시도가 행해진다. 최소 프레임 속도 유지조차 불가능해질 때 코더는 자동으로 천이 상태로 전환되는데, 여기서 대 프레임 스킵은 버퍼 레벨이 감소할 때까지 허용되며 그 후 다음 프레임이 전송될 수 있다. 천이 상태는 통상적으로 전송의 시작, 장면 변화 및 돌발적 큰 움직임 중에 발생한다.
시작 루틴
상기 시작 루틴의 처리는 도 3a의 라인 A1에서 현재 프레임 지시기 skip을 최소 스킵값 smin으로 초기화하면서 시작한다. 예를 들어, 일 실시예에서 최소 프레임 스킵값은 2일 수 있는데, 이는 원본 비디오 시퀀스에서 영상을 하나 걸러 하나씩 인코딩하기 위한 시도가 행해지는 코딩 구조에 해당한다. 그리고, 원 왜곡 지수 MAD는 도 1의 알고리즘을 사용하여 현재 프레임 skip에 대하여 계산된다. 또한, 원 왜곡 지수 MAD로부터 움직임이 보상된 추정 왜곡 지수 Se를 산출하기 위하여 도 2의 알고리즘을 사용한 후, 수학식 5는 상기 Se를 사용하여 R의 값을 구한다. 여기서 R은 현재 프레임을 P 프레임으로 인코딩하는데 필요한 비트수이다. 현재 프레임을 P 프레임으로 인코딩하는 것이 버퍼를 과밀하게 만들지 않으면, 플래그 PCFD1 은 1로 셋트된다(즉, 참). 반대의 경우, PCFD1은 0으로 리셋된다(즉, 거짓).
만일, PCFD1가 현재 프레임이 P 프레임으로 전송될 수 있음을 나타내는 참이면(라인 A2), 움직임 추정이 현재 프레임에 대하여 수행되고, 실제 움직임 보상된 왜곡 지수 S가 산정되며, 수학식 5에서 비트수 R의 값이 Se 대신 S를 사용하여 다시 구해지며, 플래그 PC1 및 PC2에 대한 값이 결정된다(라인 A3). 여기서, 플래그 PC1은 움직임 보상된 왜곡 지수 S에 근거하여 현재 프레임 skip을 P 프레임으로 인코딩하는데서 오는 버퍼의 영향을 나타낸다. 이때, PCFD1과 같이, PC1은 프레임 skip이 P 프레임으로 인코딩될 수 있으면 1로 셋트된다. 플래그 PC2는 움직임 추정의 결과가, 움직임(예를 들어, 프레임에 대한 평균 움직임 벡터 크기)이 특정 임계값보다 더 크다는 것을 나타내는지 여부를 나타낸다. 만약 나타낸다면, PC2는 1로 셋트된다.
만일, 버퍼 내에 프레임 skip을 P 프레임으로 인코딩할 충분한 공간이 있고(라인 A4), 추정된 움직임이 크다면(라인 A5), 현재 프레임 skip은 P 프레임으로 인코딩된 후 비디오 시퀀스에서 다음 프레임 인코딩 방법을 결정하기 위해(라인 A6) 시작 루틴의 시작으로 복귀한다. 그렇지 않을 경우, 즉 버퍼에 프레임 skip을 P 프레임으로 인코딩할 충분한 공간은 있으나(라인 A4), 추정된 움직임이 크지 않으면(라인 A5 및 A7), 플래그 Pmeet는 1로 셋트되어 버퍼에 프레임 스킵을 P 프레임으로 전송할 충분한 공간이 있다는 것과 처리가 루프 1 루틴으로 진행된다는 것을 나타낸다(라인 A8). 그렇지 않을 경우, 즉 버퍼에 프레임 skip을 P 프레임으로 인코딩할 충분한 공간이 없으면(라인 A4 및 A10), 플래그 Pmeet가 0으로 리셋된 후 루프 2 루틴으로 진행된다(라인 A11). 유사하게, 원 왜곡 지수에 근거하여 추정된 버퍼로의 영향이 현재 프레임 skip은 P 프레임으로 전송될 수 없음을 나타낸다면(라인 A2 및 A13), 플래그 Pmeet는 0으로 리셋된 후 루프 2 루틴으로 진행된다(라인 A14).
루프 1 루틴
상기 시작 루틴 부분에서 기술되었듯이, 상기 루프 1 루틴은 버퍼에 현재 프레임 skip=smin을 P 프레임으로 인코딩할 충분한 공간은 있지만 움직임이 크지 않을 때 요구된다. 이러한 환경 하에서, 프레임 smin은 (1) P 프레임을 뒤따르는 B 프레임, 또는 (2) 뒤따르는 프레임과 결합하여 PB 프레임으로 인코딩될 것이다.
특히, 상기 루프 1 루틴은 현재 프레임의 smin을 가능한 B 프레임으로 저장함으로써 시작된다(도 3a의 라인 B1). 그리고나서, 매개변수 skip은 증가되며(skip=smin+1)(라인 B2), smin + 1 에서 2*smin-1까지의 프레임이 연속적으로 체크되는데(라인 B3, B6,B7), 이는 상기 프레임 중 어떤 프레임이 P 프레임으로 인코딩될 수 있는지를 확인하기 위해서이다(라인 B4, B5). 이것은 움직임 추정을 행하지 않고 버퍼에 대한 영향 및 움직임의 크기를 추정함으로써 이루어진다(라인 B4). 만일 버퍼에 충분한 공간이 있고 움직임이 크면, 현재 프레임 skip은 P 프레임으로 인코딩된 후 비디오 시퀀스 내의 다음 프레임을 위하여 시작 루틴의 처음으로 복귀한다(라인 B5). 그리고, smin이 2일 때, skip = 3 만이 상기 "do while" 루프(라인 B3 내지 B7)에서 평가된다.
만일, 상기 조건들이 상기 프레임들 중의 어떤 것에도 충족하지 않으면, skip을 2*smin과 동일하게 설정함으로써 다음 프레임이 선택된다(라인 B8). 그리고 나서, 프레임 skip을 P 프레임으로 인코딩하는데 필요한 비트수인 R이 움직임 추정을 수행할 필요없이 추정되며, 플래그 PBCFD가 셋트된다(라인 B9). 만일, 버퍼 내에 프레임 smin 및 skip을 PB 프레임으로 인코딩할 만한 충분한 공간이 있다고 추정되면, PBCFD는 1로 셋트된다. 이러한 조건이 만족되면, 움직임 추정은 프레임 skip에 대하여 수행되며, smin 및 skip = 2*smin 프레임들은 함께 PB 프레임으로 인코딩된다(라인 B10). 그렇지 않을 경우 즉, 상기 프레임을 PB 프레임으로 인코딩할 충분한 공간이 없으면, 프레임 smin은 P 프레임으로 인코딩된다(라인 B11). 양쪽의 경우, 상기된 처리가 끝나면 시작 루틴으로 복귀한다(라인 B12).
루프 2 루틴
상기 시작 루틴 부분에서 기술되었듯이, 루프 2 루틴은 버퍼에 현재 프레임 skip=smin 을 P 프레임으로 전송할 충분한 공간이 없을 때 요구된다. 상기 상황 하에서 프레임 smin은 인코딩되지 않으며, 루프 2 루틴은 코딩될 다음 프레임을 선택하고 선택된 다음 프레임이 어떠한 방법으로 인코딩될 것인지를 결정한다.
특히, 매개변수 skip은 비디오 시퀀스에서 다음 프레임을 지시하기 위하여 smin + 1로 셋트된다(도 3b의 라인 C1). 그리고, smin + 1부터 smin + floor(smin/2) 까지의 프레임들이 연속적으로 분석되는데(라인 C2, C14, C15), 이는 상기 프레임들중 어느 것이 인코딩될 수 있는지를 확인하기 위해서이다(라인 C3 내지 C13). 여기에서 상기 "floor"은 절단 작업(truncation operation)이다. 상기 분석된 각 프레임에 대하여, 인코딩할 비트수가 원 왜곡 지수 MAD에 근거하여 계산되고, 플래그 PCFD1 및 PCFD2는 각각 버퍼 내 충분한 공간의 존재 여부 및 움직임의 대소 유무를 나타내도록 설정된다(라인 C3). 또한, 플래그 PCFD2는 실제적으로 움직임 추정을 수행하지 않고, 원 왜곡 지수 MAD를 특정 임계 레벨과 비교함으로써 설정된다. 이때, MAD가 상기 임계 레벨보다 크다면, 움직임이 큰 것으로 간주되며 PCFD2는 1로 셋트된다.
만일, 버퍼 내에 현재 프레임 skip을 P 프레임으로 인코딩할 공간이 있고 움직임이 크다면(라인 C5) 움직임 추정이 수행되며, 버퍼(PC1) 및 움직임(PC2)에 대한 영향이 실제 왜곡 지수 S를 사용하여 다시 구해진다(라인 C6). 또한, 버퍼에 여전히 공간이 충분하고(라인 C7) 움직임이 크다면(라인 C8), 현재 프레임 skip은 P 프레임으로 인코딩된 후 시작 루틴으로 복귀한다.
그렇지 않을 경우, 즉 움직임 보상된 결과가 버퍼에는 충분한 공간이 있음을 나타내지만(라인 C7) 실제 움직임은 크지 않을 때(라인 C8,C9), 현재 프레임 skip은 B 프레임으로 저장되고, 지시기 Bframeskip은 skip과 동일하게 설정되며, 플래그 Pmeet는 1로 셋트되어 프레임 skip을 P 프레임으로 전송할 충분한 공간이 버퍼에 있음을 나타낸 후 루프 3 루틴으로 진행된다(라인 C9).
한편, 움직임이 보상된 결과가 버퍼에 충분한 공간이 없음을 나타내면(라인 C7, C11), 현재 프레임 skip은 B 프레임으로 저장되고, 지시기 Bframeskip은 skip과 동일하게 설정되며, 플래그 Pmeet는 0으로 리셋되어 프레임 skip을 P 프레임으로 전송할 충분한 공간이 버퍼에 없음을 나타낸 후 루프 3 루틴으로 진행한다(라인 C11). 또한, 움직임 보상되지 않은 데이터가 버퍼 내에 충분한 공간은 있지만(라인 C4) 추정된 움직임이 크지 않음을 나타내면(라인 C5, C13), 현재 프레임 skip은 B 프레임으로 저장되고, 지시기 Bframeskip는 skip과 동일하게 설정되며, 플래그 Pmeet는 1로 셋트되어 버퍼에 프레임 skip을 P 프레임으로 전송할 충분한 공간이 있음을 나타낸 후 루프 3 루틴으로 진행된다(라인 C13).
그러나, 움직임 보상되지 않은 데이터가 버퍼 내에 충분한 공간이 없음을 나타내면(라인 C4, C14), 스킵 처리는 다음 프레임으로 계속된다(skip=skip+1)(라인 C14).
그리고, 상기 sim + 1에서 smin + floor(smin/2)까지의 프레임들 중 어떤 것도 라인 C4의 조건을 만족시키지 못한다면, 플래그 Pmeet는 0으로 리셋되어 최종 프레임 skip=smin + floor(smin/2)을 P 프레임으로 전송할 충분한 공간이 버퍼에 없음을 나타낸 후 루프 3 루틴으로 진행한다(라인 C16).
루프 3 루틴
상기 루프 2 루틴 부분에서 지적된 것처럼, 루프 3 루틴은 루프 2 루틴에서 다음에 인코딩할 프레임의 종류 및/또는 인코딩 방법을 최종적으로 결정하는 데 실패했을 경우 요구된다. 이러한 경우, 루프 3 루틴은 코딩될 다음 프레임을 선택하고 다음 프레임이 어떠한 방법으로 인코딩될 것인지를 결정하고자 한다.
특히, 매개변수 skip이 smin + floor(smin/2) + 1로 설정되고(도 3c의 라인 D1), 상기 smin + floor(smin/2) + 1에서부터 2*smin-1 까지가 연속적으로 분석되는데(라인 D2, D5, D6), 이는 상기 프레임들 중 어느 것이 인코딩될 수 있는지를 확인하기 위해서이다(라인 D3, D4). 그리고, 매개변수 skip을 smin + floor(smin/2) + 1로 초기화하는 것은 P 및 B 프레임이 주어진 B skip으로 함께 근접하게 됨을 허용하며, H. 263 PB 프레임에서 P 및 B 프레임이 밀접하게 결합되어 있을 때의 코딩 효율(coding efficiency)을 향상시킨다. 참(true) B 프레임이 있을 경우, 상기 방법은 변화될 필요가 있을 수 있다.
또한, 분석된 각 프레임에 대하여, 인코딩될 비트수 R은 원 왜곡 지수 MAD로부터 산출된 추정 왜곡 지수 Se에 근거하여 계산되고, 플래그 PCFD1 및 PCFD2는 버퍼 내 공간의 존재 여부 및 움직임의 대소 여부를 각각 나타내기 위하여 설정된다(라인 D3). 만약 상기 두 조건이 충족된다면, 현재 프레임 skip은 P 프레임으로 인코딩된 후 시작 루틴으로 복귀한다(라인 D4).
만일, smin + floor(smin/2) + 1에서 2*smin-1까지의 프레임들 중 어떤 프레임도 P 프레임으로 인코딩하지 않고 2*smin-1 프레임에 도달한다면, skip은 다음 프레임 2*smin과 동일하게 설정된다(라인 D7). 그리고 나서, 프레임 skip을 P 프레임으로 인코딩하는데 필요한 비트수인 R이 움직임 추정을 수행하지 않고 MAD로부터 추정되며, 플래그 PBCFD가 설정된다(라인 D8). 만일, 잠재적 B 프레임으로 저장된(루프 2에서) 이전 프레임 Bframeskip 및 현재 프레임 skip=2*smin을 PB 프레임으로 인코딩할 충분한 공간이 버퍼에 있다고 추정되면(라인 D9), 움직임 추정이 현재 프레임 skip에 대하여 수행되며, B 프레임으로 저장된 이전 프레임에 대해서도 이미 수행되지 않았다면 움직임 추정이 수행된다(라인 D10). 그리고 나서, 상기 프레임들은 함께 PB 프레임으로 인코딩된 후 시작 루틴으로 복귀한다(라인 D11).
그렇지 않을 경우, 즉 상기 두 프레임이 함께 PB 프레임으로 인코딩될 수 없고(라인 D9, D12), B 프레임으로 저장된(루프 2에서) 이전 프레임 Bframeskip이 P 프레임으로 전송될 수 있으면(즉, Pmeet=1), 이전 프레임 Bframeskip은 P 프레임으로 인코딩된 후 시작 루틴으로 복귀한다(라인 D12).
한편, 상기 이전 프레임이 P 프레임으로 전송될 수는 없지만(즉, Pmeet=0) (라인 D12,D13) 움직임이 보상되지 않은 데이터가 버퍼 내에 공간이 있음(즉, PCFD1=1)을 나타내고 그 움직임이 크다면(즉, PCFD2=1), 현재 프레임 skip=2*smin은 P 프레임으로 인코딩된 후 시작 루틴으로 복귀한다(라인 D13). 그렇지 않은 경우에 처리는 루프 4 루틴으로 진행한다(라인 D14).
루프 4 루틴
상기 루프 3 루틴 부분에서 지적된 것처럼, 루프 4 루틴은 루프 3 루틴에서 다음에 인코딩할 프레임 종류 및/또는 인코딩 방법을 최종적으로 결정하는 데 실패했을 경우 요구된다. 이러한 경우, 루프 4 루틴은 코딩될 다음 프레임을 선택하고 다음 프레임이 어떠한 방법으로 인코딩될 것인지를 결정하고자 한다.
특히, 매개변수 skip이 2*smin + 1로 설정되고(도 3d의 라인 E1), 상기 2*smin + 1에서부터 smax - 1까지의 프레임들이 연속적으로 분석되는데(라인 E2, E6, E7), 이는 상기 프레임들 중에 어느 프레임이 인코딩될 수 있는지를 확인하기 위해서이다(라인 E3 내지 E5). 그리고, 분석된 각 프레임에 대하여, 인코딩될 비트수 R은 추정 왜곡 지수 Se에 근거하여 계산되는데, 여기서 추정 왜곡 지수는 원 왜곡 지수 MAD에 근거하며, 플래그 PBCFD가 설정된다(라인 E3).
이때, B 프레임으로 저장된(루프 2에서) 이전 프레임 Bframeskip 및 현재 프레임 skip을 PB 프레임으로 인코딩할 충분한 공간이 버퍼에 있다고 추정되면(즉, PBCFD=1), 움직임 추정이 현재 프레임 skip에 대하여 수행되며, 필요한 경우 B 프레임으로 저장된 이전 프레임 Bframeskip에 대해서도 움직임 추정이 수행된다. 그리고 나서, 상기 프레임들은 함께 PB 프레임으로 인코딩된 후 시작 루틴으로 복귀한다(라인 E4).
그렇지 않을 경우 즉, 상기 두 프레임이 함께 PB 프레임으로 인코딩될 수 없고(즉, PBCFD=0)(라인 E4,E5), 현재 프레임 skip이 P 프레임으로 코딩되어야 한다면(즉, PCFD1=PCFD2=1), 현재 프레임은 P 프레임으로 인코딩된 후 시작 루틴으로 복귀한다(라인 E5).
한편, 2*smin + 1에서 smax-1까지의 프레임들 중 어떤 프레임도 P 프레임으로 인코딩하지 않고 smax-1 프레임에 도달한다면, 처리는 루프 5 루틴으로 진행한다(라인 E8).
루프 5 루틴
상기 루프 4 루틴 부분에서 지적된 것처럼, 루프 5 루틴은 루프 4 루틴에서 다음에 인코딩할 프레임 종류 및/또는 인코딩 방법을 최종적으로 결정하는 데 실패했을 경우 요구된다. 이러한 경우, 루프 5 루틴은 코딩될 다음 프레임을 선택하고 다음 프레임이 어떠한 방법으로 인코딩될 것인지를 결정하고자 한다.
특히, 매개변수 skip이 smax + 1로 설정되고(도 3d의 라인 F1), 상기 smax + 1에서부터 smin + smax까지의 프레임들이 연속적으로 분석되는데(라인 F2, F5, F6), 이는 상기 프레임들 중에 어느 프레임이 인코딩될 수 있는지를 확인하기 위해서이다(라인 F3,F4).
그리고, 분석된 각 프레임에 대하여, 인코딩될 비트수 R은 추정 왜곡 지수 Se에 근거하여 계산되는데, 여기서 추정 왜곡 지수는 차례로 원 왜곡 지수 MAD에 근거하며, 플래그 PBCFD가 설정된다(라인 F3). 이때, B 프레임으로 저장된(루프 2에서) 이전 프레임 Bframeskip 및 현재 프레임 skip을 PB 프레임으로 인코딩할 충분한 공간이 있다고 추정되면(즉, PBCFD=1), 움직임 추정은 현재 프레임 skip에 대하여 수행되며, 필요한 경우 B 프레임으로 저장된 이전 프레임 Bframeskip에 대해서도 움직임 추정이 수행된다. 그리고 나서, 상기 프레임들은 함께 PB 프레임으로 인코딩된 후 시작 루틴으로 복귀한다(라인 F4).
한편, smax + 1에서부터 smin + smax까지의 프레임들 중 어떤 프레임도 P 프레임으로 인코딩하지 않고 smin + smax 프레임에 도달한다면, 처리는 천이 루틴으로 진행된다(라인 F7).
천이 루틴
상기 루프 5 루틴 부분에서 기술된 것처럼, 천이 루틴은 루프 5 루틴에서 다음에 인코딩할 프레임 종류 및/또는 인코딩 방법을 최종적으로 결정하는데 실패했을 경우 요구된다. 이러한 경우 처리는 고정 상태에서 천이 상태로 바뀐다. 이때, 상기 천이 루틴은 처리가 고정 상태로 복귀할 수 있다고 결정될 때까지 P 프레임으로 인코딩할 하나 이상의 프레임을 선택한다. 또 다른 실시예에서, 천이 루틴은 적어도 몇 개의 프레임을 B 프레임으로 인코딩할 수 있다.
특히, 현재 프레임 skip에 대하여, 원 왜곡 지수 MAD 및 인코딩할 비트수 R은 추정된 왜곡 지수 Se에 근거하여 계산되며, 플래그 PCFD1이 설정된다(도 3e의 라인 G1). 이때, 버퍼에 현재 프레임 skip을 P 프레임으로 전송할 충분한 공간이 있다고 추정되면(즉, PCFD=1)(라인 G2), 움직임 추정이 현재 프레임 skip에 대하여 수행되며 현재 프레임은 P 프레임으로 인코딩된다(라인 G3).
만일, 버퍼 점유가 특정 임계 한도 B0보다 적으면, 처리는 시작 루틴의 고정 상태로 복귀한다(라인 G4). 그렇지 않은 경우, 현재 프레임 skip은 비디오 시퀀스 내의 다음 프레임을 선택하기 위해 smin으로 설정된 후 천이 루틴의 시작으로 복귀하여 다음 프레임을 처리한다(라인 G5).
한편, 현재 프레임 skip이 P 프레임으로 전송될 수 없으면(라인 G2, G7), 현재 프레임 skip이 증가한 후(skip=skip+1), 현재 프레임을 인코딩하지 않고 다음 프레임을 처리하기 위해 천이 루틴의 시작으로 복귀한다(라인 G7).
상기와 같이 기술된 본 발명은 방법 및 그 방법을 실행하는 장치의 형태로 실시될 수 있다. 또한, 본 발명은 플로피 디스크, CD-ROM, 하드 드라이브, 기타 기계로 판독 가능한 저장 매체와 같은, 유형(tangible) 매체들에서 실시되는 프로그램 코드의 형태로 실시될 수 있는데, 여기서, 상기 프로그램 코드가 컴퓨터와 같은 기계에 탑재되어 실행될 때, 그 기계는 본 발명을 실행하는 장치가 되는 것이다. 또한, 본 발명은 프로그램 코드의 형태로도 실시될 수 있는데, 예를 들어 저장 매체에 저장된 후, 기계에 탑재되어 및/또는 기계에 의해 실행되거나, 또는 전선이나 케이블을 경유하거나, 광섬유를 통하거나, 또는 전자기의 방사능을 거치거나 하는 것과 같이 어떤 전송 매체를 경유하여 전송되며 이때 프로그램 코드가 컴퓨터와 같은 기계에 탑재되어 실행되어지면 그 기계는 본 발명을 실행하는 장치가 되는 것이다. 일반적인 용도의 처리 장치(general-purpose processor)에서 실행되었을 때, 프로그램 코드 세그먼트(program code segment)는 특정 논리회로에까지 유사하게 작용하는 특수 장치를 제공하기 위하여 처리 장치와 결합한다.
이상에서와 같이 본 발명에 따른 움직임 추정을 수행하지 않고 프레임 스킵핑하는 방법에 의하면, 양자화기 스텝 변화가 한 기준 프레임에서 다음 기준 프레임까지의 특정 경계 내에서 한정될 때의 프레임 스키핑, PB 결정 및 품질 제어에 대한 완전한 접근을 제공한다. 또한, 상기 구성은 고정 상태 동작 동안에 사용자가 정의한 최소 프레임 속도를 유지하고, 고품질 및 "적정" 프레임 속도(최소 프레임 속도보다 큰 속도)에서 데이터를 전송할 수 있다. 상기 구성은 움직임 또는 복잡도의 증가가 있을 때 품질 및 프레임 속도의 스무스한 성능 저하를 제공한다. 이때, B 프레임은 프레임 속도 및 코딩된 품질 모두를 향상시키는데 사용된다. 그러나, 장면 변화 또는 움직임의 매우 빠르게 증가할 때에는, 프레임 속도과 기준 프레임의 품질 요구를 충족시키지 못할 수 있다. 이러한 상황에서, 처리는 "따라잡기(catch up)" 위해 천이 상태가 되고 새로운 고정 상태로 천천히 재진입하게 된다. 상기 구성은 최소 부가적 계산 복잡도를 요구하며 별도의 저장(입력되는 프레임을 저장하기 위한 요구되는 것 이상)은 필요하지 않다.
이상 본 발명의 본질을 설명하기 위해 기술 및 묘사된 세부 항목, 자료 및 각 부분들의 배열에 있어서의 다양한 변형들은, 다음의 청구항에 나타나 있듯이 본 발명의 원리 및 영역을 벗어남 없이 해당 분야의 전문가들에 의하여 만들어질 수 있다.

Claims (15)

  1. (a) 비디오 시퀀스에서 기준 영상과 관계된 현재 영상에 대해 원 왜곡 지수를 산출하는 단계;
    (b) 현재 영상에 대한 움직임 추정을 수행할 필요 없이, 상기 원 왜곡 지수를 사용하여 기준 영상과 관계된 현재 영상에 대해 움직임 보상된 왜곡 지수의 추정치를 산출하는 단계;
    (c) 상기 움직임 보상된 왜곡 지수 추정치에 의해 현재 영상의 인코딩 여부 및 방법을 결정하는 단계; 및
    (d) 상기 단계 (c)의 결정에 따라 비디오 영상의 시퀀스에 대해 압축된 비디오 비트스트림을 산출하는 단계를 포함하여 이루어지는 것을 특징으로 하는 비디오 영상의 시퀀스 처리 방법.
  2. 제 1 항에 있어서,
    상기 원 왜곡 지수는 현재 영상의 픽셀과 기준 영상의 해당 픽셀 사이의 절대차에 근거하는 것을 특징으로 하는 비디오 영상의 시퀀스 처리 방법.
  3. 제 1 항에 있어서, 상기 단계 (a)는
    (1) 현재 영상의 하나 이상의 상대적 저왜곡(low-distortion) 부분을 특징으로 하는 제 1 중간 왜곡지수 및, 현재 영상의 하나 이상의 상대적 고왜곡(high-distortion) 부분을 특징으로 하는 제 2 중간 왜곡지수를 산출하는 단계와,
    (2) 상기 제 1 및 제 2 중간 왜곡 지수로부터 원 왜곡 지수를 산출하는 단계를 포함하여 이루어지는 것을 특징으로 하는 비디오 영상의 시퀀스 처리 방법.
  4. 제 3 항에 있어서, 상기 단계 (2)는
    현재 영상과 기준 영상 사이의 상대적 움직임으로부터 발생하는 이중 영상 효과(double-image effect)에 대한 수정을 적용하는 것을 특징으로 하는 비디오 영상 시퀀스 처리 방법.
  5. 제 1 항에 있어서, 상기 단계 (b)는
    (1) 비디오 시퀀스의 이전 영상에서 현재 영상까지의 왜곡 변화 지수를 산출하는 단계와,
    (2) 상기 왜곡 변화지수에 의해 움직임 보상된 왜곡 지수의 추정치를 산출하는 단계를 포함하는 것을 특징으로 하는 비디오 영상 시퀀스 처리 방법.
  6. 제 5 항에 있어서,
    상기 움직임 보상된 왜곡 지수의 추정치는 연속 함수의 하나인 구분적 연속 함수(piecewise-linear)를 사용하여 산출되는 것을 특징으로 하는 비디오 영상의 시퀀스 처리 방법.
  7. 제 6 항에 있어서,
    상기 왜곡 변화지수가 제 1 임계 레벨보다 작으면, 움직임 보상된 왜곡 지수의 추정치는 이전 프레임에 대해 실제 움직임 보상된 왜곡 지수와 동일하고;
    상기 왜곡 변화지수가 제 2 임계 레벨(여기서, 제 2 임계 레벨은 제 1 임계 레벨보다 큼)보다 크면, 움직임 보상된 왜곡 지수의 추정치는 원 왜곡 지수의 분수(fraction)와 동일하며; 및
    그 외의 경우, 상기 움직임 보상된 왜곡 지수의 추정치는 이전 프레임에 대해 실제 움직임 보상된 왜곡 지수와 원 왜곡 지수의 분수값 사이의 일차 보간값(여기서, 상기 일차 보간값은 왜곡 변화 지수를 사용하여 결정됨)과 동일함을 특징으로 하는 비디오 영상의 시퀀스 처리 방법.
  8. 제 1 항에 있어서, 상기 단계 (c)는
    (1) 상기 움직임 보상된 왜곡 지수를 이용하여 해당 버퍼에 현재 영상을 P 프레임으로서 전송할 충분한 공간이 있는지를 결정하는 단계;
    (2) 현재 영상에서의 움직임이 원 왜곡 지수에 의한 특정 임계 레벨보다 큰지의 여부를 결정하는 단계; 및
    (3) 상기 단계 (1), (2)의 결과에 의하여 현재 영상의 인코딩 여부 및 방법을 결정하는 단계를 포함하는 것을 특징으로 하는 비디오 영상 시퀀스 처리 방법.
  9. 제 8 항에 있어서, 상기 단계 (1)은
    2차 방정식 속도 왜곡 모델에 의하여 현재 영상을 P 프레임으로 인코딩하는데 필요한 비트 수를 추정하는 단계를 포함하는 것을 특징으로 하는 비디오 영상의 시퀀스 처리 방법.
  10. 제 9 항에 있어서, 상기 2차 방정식 속도 왜곡 모델은 다음과 같이 제시되고,
    (R-H)/Se=X1/Q+X2/(Q**2)
    여기서,
    R은 현재 영상을 인코딩하는데 필요한 비트수이고,
    H는 현재 영상에 대한 오버헤드 데이터를 인코딩하는데 필요한 비트수이고,
    Se는 움직임 보상된 왜곡 지수의 추정치이고;
    Q는 현재 영상에 대한 평균 양자화기 스텝 사이즈이며; 및
    X1 및 X2는 2차 방정식 속도 왜곡 모델의 매개 변수인 것을 특징으로 하는 비디오 영상의 시퀀스 처리 방법.
  11. 제 1 항에 있어서, 상기 단계(c)는
    (1) 현재 영상을 스킵할 것인지,
    (2) 현재 영상을 B 프레임으로 인코딩할 것인지,
    (3) 현재 영상을 PB 프레임의 일부로 인코딩할 것인지, 또는
    (4) 현재 영상을 기준 프레임으로 인코딩할 것인지를 결정하는 단계를 포함하여 이루어지는 것을 특징으로 하는 비디오 영상의 시퀀스 처리 방법.
  12. 제 1 항에 있어서,
    처리는 고정 상태 또는 천이 상태일 수 있고,
    상기 고정 상태에서 현재 영상은 스킵되거나, P 프레임, B 프레임, 또는 PB 프레임의 일부로 인코딩되며,
    상기 천이 상태에서 현재 영상은 스킵되거나, P 프레임 또는 B 프레임으로 인코딩되는 것을 특징으로 하는 비디오 영상의 시퀀스 처리 방법.
  13. 제 12 항에 있어서,
    상기 처리는 해당 버퍼 레벨이 특정 임계 레벨보다 낮을 때는 자동적으로 천이 상태에서 고정 상태로 전환하는 것을 특징으로 하는 비디오 영상의 시퀀스 처리 방법.
  14. 제 1 항에 있어서,
    상기 원 왜곡 지수는 현재 영상의 픽셀과 기준 영상의 해당 픽셀 사이의 절대차에 근거하며,
    상기 단계 (a)는
    (1) 현재 영상의 하나 이상의 상대적 저 왜곡 부분을 특징으로 하는 제 1 중간 왜곡 지수와 현재 영상의 하나 이상의 상대적 고 왜곡 부분을 특징으로 하는 제 2 중간 왜곡 지수를 산출하는 단계; 및 (2) 현재 영상과 기준 영상 사이의 상대적 움직임으로부터 발생하는 이중 영상 효과에 대한 수정을 적용하는 동시에 제 1, 제 2 중간 왜곡 지수로부터 원 왜곡 지수를 산출하는 단계로 구성되고;
    상기 단계 (b)는
    (1) 비디오 시퀀스의 이전 영상에서 현재 영상까지의 왜곡 변화 지수를 산출하는 단계; 및 (2) 구분적 연속 함수를 사용하고 상기 왜곡 변화지수에 근거하여 움직임 보상된 왜곡 지수의 추정치를 산출하는 단계로 구성되고;
    여기서, 상기 왜곡 변화지수가 제 1 임계 레벨보다 적으면, 움직임이 보상된 왜곡 지수 추정치는 이전 프레임에 대해 실제 움직임 보상된 왜곡 지수와 동일하고;
    상기 왜곡 변화지수가 제 2차 임계 레벨(여기서, 상기 제 2 임계 레벨은 제 1 임계 레벨보다 큼)보다 크면, 상기 움직임이 보상된 왜곡 지수의 추정치는 원 왜곡 지수의 분수와 동일하고;
    그 외의 경우, 상기 움직임이 보상된 왜곡 지수의 추정치는 이전 프레임에 대해 실제 움직임이 보상된 왜곡 지수 및 원 왜곡 지수의 분수 사이의 일차 보간값(여기서, 일차 보간값은 왜곡 변화 지수를 사용하여 결정)과 동일하며;
    상기 단계 (c)는
    (1) 2차 방정식 속도 왜곡 모델에 의하여 현재 영상을 P 프레임으로 인코딩하는데 필요한 비트수를 추정함으로써, 움직임이 보상된 왜곡 지수의 추정치에 근거하여 현재 영상을 P 프레임으로 전송할 충분한 공간이 해당 버퍼에 있는지를 결정하는 단계;
    이때, 상기 2차 방정식 속도 왜곡 모델은 다음과 같이 주어지고,
    (R-H)/Se=X1/Q=X2/(Q**2)
    여기서,
    R은 현재 영상을 인코딩하는데 필요한 비트수,
    H는 현재 영상에 대한 오버헤드 데이터를 인코딩하는데 필요한 비트수,
    Se는 움직임이 보상된 왜곡 지수의 추정치,
    Q는 현재 영상의 평균 양자화기 스텝 사이즈,
    X1 및 X2는 2차 방정식 속도 왜곡 모델의 매개변수이며,
    (2) 현재 영상의 움직임이 원 왜곡 지수에 근거한 특정 임계 레벨보다 큰지의 여부를 결정하는 단계; 및
    (3) 상기 단계 (c)(1) 및 (c)(2)의 결과에 의해 현재 영상의 인코딩 여부 및 방법을 결정하는 단계를 포함하며;
    상기 단계(c)는, (1) 현재 영상을 스킵할 것인지, (2) 현재 영상을 B 프레임으로 인코딩할 것인지, (3) 현재 영상을 PB 프레임의 일부로 인코딩할 것인지, 또는 (4) 현재 영상을 기준 프레임으로 인코딩할 것인지를 결정하는 단계를 포함하며;
    처리는 고정 상태 또는 천이 상태에서 이루어질 수 있고;
    상기 고정 상태에서 현재 영상은 스킵되거나, P 프레임, B 프레임, 또는 PB 프레임의 일부로 인코딩되며;
    상기 천이 상태에서 현재 영상은 스킵되거나, P 프레임 또는 B 프레임으로 인코딩되며;
    해당 버퍼 레벨이 특정 임계 레벨 이하이면 천이 상태에서 고정 상태로 천이가 자동으로 전환됨을 특징으로 하는 비디오 영상의 시퀀스 처리 방법.
  15. 비디오 영상의 시퀀스를 처리할 수 있는 명령을 포함한 다수의 명령이 저장된 컴퓨터 판독 가능한 매체를 갖는 처리기를 이용한 비디오 영상의 시퀀스 처리 방법에 있어서,
    (1) 상기 비디오 시퀀스에서 기준 영상과 관계된 현재 영상에 대하여 원 왜곡 지수를 산출하는 단계;
    (2) 현재 영상에 대한 움직임 추정을 수행할 필요 없이, 상기 원 왜곡 지수를 사용하여 기준 영상과 관계된 현재 영상에 대해 움직임 보상된 왜곡 지수의 추정치를 산출하는 단계;
    (3) 상기 움직임 보상된 왜곡 지수 추정치에 의해 현재 영상의 인코딩 여부 및 방법을 결정하는 단계; 및
    (4) 상기 단계 (c)에 의해 비디오 영상의 시퀀스에 대한 압축된 비디오 비트스트림을 산출하는 단계를 포함하여 이루어지는 것을 특징으로 하는 비디오 영상의 시퀀스 처리 방법.
KR1019990040209A 1998-09-18 1999-09-17 움직임 추정을 수행하지 않고 프레임 스킵핑하는 방법 KR100323683B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US10093998P 1998-09-18 1998-09-18
US60/100,939 1998-09-18
US25594699A 1999-02-23 1999-02-23
US09/255,946 1999-02-23
US9/255,946 1999-02-23

Publications (2)

Publication Number Publication Date
KR20000023277A true KR20000023277A (ko) 2000-04-25
KR100323683B1 KR100323683B1 (ko) 2002-02-07

Family

ID=26797724

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990040209A KR100323683B1 (ko) 1998-09-18 1999-09-17 움직임 추정을 수행하지 않고 프레임 스킵핑하는 방법

Country Status (3)

Country Link
JP (1) JP3641172B2 (ko)
KR (1) KR100323683B1 (ko)
WO (1) WO2000018134A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100739133B1 (ko) * 2001-04-17 2007-07-13 엘지전자 주식회사 디지털 비디오 코딩시 b프레임 코딩 방법
KR100926016B1 (ko) * 2005-03-01 2009-11-11 퀄컴 인코포레이티드 로 도메인 비트 할당을 사용하는 비디오 전화통신에서의관심-영역 코딩
US8737478B2 (en) 2010-12-23 2014-05-27 Electronics And Telecommunications Research Institute Motion estimation apparatus and method

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7616690B2 (en) 2000-10-31 2009-11-10 Imec Method and apparatus for adaptive encoding framed data sequences
EP1202579A1 (en) * 2000-10-31 2002-05-02 Interuniversitair Microelektronica Centrum Vzw A method and apparatus for adaptive encoding framed data sequences
EP1204279A3 (en) * 2000-10-31 2002-05-15 Interuniversitair Microelektronica Centrum Vzw A method and apparatus for adaptive encoding framed data sequences
US6671324B2 (en) * 2001-04-16 2003-12-30 Mitsubishi Electric Research Laboratories, Inc. Estimating total average distortion in a video with variable frameskip
US8693537B2 (en) * 2005-03-01 2014-04-08 Qualcomm Incorporated Region-of-interest coding with background skipping for video telephony
US8514933B2 (en) 2005-03-01 2013-08-20 Qualcomm Incorporated Adaptive frame skipping techniques for rate controlled video encoding
US7724972B2 (en) * 2005-03-01 2010-05-25 Qualcomm Incorporated Quality metric-biased region-of-interest coding for video telephony
JP4874720B2 (ja) 2006-06-21 2012-02-15 Hoya株式会社 保持機構
CN102271269B (zh) * 2011-08-15 2014-01-08 清华大学 一种双目立体视频帧率转换方法及装置
DE102015121148A1 (de) * 2015-12-04 2017-06-08 Technische Universität München Reduzieren der Übertragungszeit von Bildern
CN110832858B (zh) * 2017-07-03 2023-10-13 Vid拓展公司 用于视频编解码的设备、方法
KR102308373B1 (ko) 2021-06-08 2021-10-06 주식회사 스누아이랩 얼굴인식을 위한 비디오 디블러링장치 및 그 장치의 구동방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2068751C (en) * 1991-05-24 1998-05-19 Tokumichi Murakami Image coding system
GB2306831B (en) * 1995-10-30 2000-05-24 Sony Uk Ltd Video data compression

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100739133B1 (ko) * 2001-04-17 2007-07-13 엘지전자 주식회사 디지털 비디오 코딩시 b프레임 코딩 방법
KR100926016B1 (ko) * 2005-03-01 2009-11-11 퀄컴 인코포레이티드 로 도메인 비트 할당을 사용하는 비디오 전화통신에서의관심-영역 코딩
US8737478B2 (en) 2010-12-23 2014-05-27 Electronics And Telecommunications Research Institute Motion estimation apparatus and method

Also Published As

Publication number Publication date
WO2000018134A1 (en) 2000-03-30
JP2000125302A (ja) 2000-04-28
KR100323683B1 (ko) 2002-02-07
JP3641172B2 (ja) 2005-04-20

Similar Documents

Publication Publication Date Title
KR100772576B1 (ko) 비디오 정보를 부호화 및 복호화하기 위한 방법, 움직임보상 비디오 부호기 및 대응하는 복호기
US6418166B1 (en) Motion estimation and block matching pattern
KR100323683B1 (ko) 움직임 추정을 수행하지 않고 프레임 스킵핑하는 방법
KR100508798B1 (ko) 쌍방향 예측 블록 예측 방법
US7224734B2 (en) Video data encoding apparatus and method for removing a continuous repeat field from the video data
US7260148B2 (en) Method for motion vector estimation
US6937656B2 (en) Method and apparatus for image coding
JP4198206B2 (ja) 動き依存予測を使用したビデオ情報の圧縮方法と装置
EP2250813B1 (en) Method and apparatus for predictive frame selection supporting enhanced efficiency and subjective quality
US20110176614A1 (en) Image processing device and method, and program
JP3755155B2 (ja) 画像符号化装置
JPH0634651A (ja) 運動ベクター検出方法および装置
JP3593929B2 (ja) 動画像符号化方法及び動画像符号化装置
US6697430B1 (en) MPEG encoder
JP4694664B2 (ja) 画像圧縮方法
JP2001251627A (ja) 符号化装置、符号化方法及びプログラムを記録した記録媒体
US7113543B2 (en) Video encoding
JP3674535B2 (ja) 動画像符号化方法および装置
JP3480067B2 (ja) 画像符号化装置及び方法
KR100978596B1 (ko) 고속 다중 참조프레임 선택 절차에 의한 움직임 추정 방법
JP2001016594A (ja) 動画像の動き補償方法
KR100390167B1 (ko) 화상 부호화방법 및 화상 부호화장치
KR0154920B1 (ko) 동영상 부호화 장치에 있어서 움직임 추정기
KR20110134404A (ko) 화상 데이터의 블록을 예측하는 방법, 이 방법을 실행하는 복호 장치 및 부호화 장치
JP3711573B2 (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: 20080102

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee