KR101062646B1 - 선택적 비디오 프레임 레이트 상향 변환 - Google Patents

선택적 비디오 프레임 레이트 상향 변환 Download PDF

Info

Publication number
KR101062646B1
KR101062646B1 KR1020087027837A KR20087027837A KR101062646B1 KR 101062646 B1 KR101062646 B1 KR 101062646B1 KR 1020087027837 A KR1020087027837 A KR 1020087027837A KR 20087027837 A KR20087027837 A KR 20087027837A KR 101062646 B1 KR101062646 B1 KR 101062646B1
Authority
KR
South Korea
Prior art keywords
threshold
video frame
frame
motion activity
frame rate
Prior art date
Application number
KR1020087027837A
Other languages
English (en)
Other versions
KR20090007437A (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 KR20090007437A publication Critical patent/KR20090007437A/ko
Application granted granted Critical
Publication of KR101062646B1 publication Critical patent/KR101062646B1/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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/01Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level
    • H04N7/0127Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level by changing the field or frame frequency of the incoming video signal, e.g. frame rate converter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/01Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level
    • H04N7/0135Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level involving interpolation processes
    • H04N7/0137Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level involving interpolation processes dependent on presence/absence of motion, e.g. of motion zones

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Television Systems (AREA)

Abstract

본원은, 비디오 디코더에서 선택적 비디오 프레임 레이트 상향 변환 (FRUC) 을 위한 기술들에 관한 것이다. 비디오 디코더는 하나 이상의 적응적인 기준에 기초하여, FRUC를 선택적으로 인에이블 또는 디스에이블한다. FRUC가 공간 아티팩트들을 도입할 것 같은지를 표시하기 위해 적응적인 기준이 선택될 수도 있다. 적응적인 기준은, 움직임 활동 임계치, 모드 판정 임계치, 또는 이들 양자 모두를 포함할 수도 있다. 기준은 고정되기 보다는 적응적이다. 기준이, 프레임이 과도한 움직임 또는 새로운 컨텐츠를 포함한다고 표시할 때, 디코더는 FRUC를 디스에이블한다.
움직임 벡터, 디코더, 임계치, 프레임

Description

선택적 비디오 프레임 레이트 상향 변환{SELECTIVE VIDEO FRAME RATE UPCONVERSION}
본원은, 본원에 내용 전부가 참고로서 병합되는, 2006년 4월 13일 출원된 미국 가출원 제 60/792,147 호의 이익을 주장한다.
기술 분야
본원은 디지털 비디오 인코딩 및 디코딩에 관한 것으로, 특히 비디오 프레임 레이트 상향 변환을 위한 기술에 관한 것이다.
배경
다수의 상이한 비디오 인코딩 표준이 디지털 비디오 시퀀스들을 인코딩하기 위해 확립되어 왔다. 예컨대, MPEG (Moving Picture Experts Group) 는 MPEG-1, MPEG-2 및 MPEG-4를 포함하는 다수의 표준을 개발하였다. 다른 예로는, ITU (International Telecommunication Union)-T H.263 표준, 및 이머징 (emerging) ITU-T H.264 표준 및 그 카운터파트 (counterpart), ISO/IEC MPEG-4,파트 10, 즉 AVC (Advanced Video Coding) 를 포함한다. 이들 비디오 인코딩 표준들은, 압축 방식으로 데이터를 인코딩함으로써 비디오 시퀀스들의 개선된 송신 효율을 지원한다.
압축은, 송신될 필요가 있는 데이터의 전체량을 감소시킨다. 전형적인 디지털 비디오 인코딩 기술은, 시간 또는 인터-프레임 상관 (inter-frame correlation) 이라 지칭되는 연속하는 비디오 프레임들 간의 유사성을 이용하는 인터-프레임 압축을 제공한다. 인터-프레임 압축 기술은, 비디오 프레임들의 픽셀 기반 표현들을 움직임 표현들로 변환함으로써 프레임들에 걸친 데이터 리던던시를 활용한다. 인터-프레임 기술을 사용하여 인코딩된 프레임은, P ("예측 (predictive)") 프레임 또는 B ("양방향 (bi-directional)") 프레임이라 지칭된다. 다른 프레임들은 공간 압축을 사용하여 인트라-코딩 (intra-coding) 된다.
낮은 대역폭 요건을 충족시키기 위해, 몇몇 비디오 애플리케이션은 프레임 스킵 (frame skipping) 을 사용하여, 감소된 프레임 레이트로 비디오를 인코딩한다. 불행히도, 낮은 프레임 레이트 비디오는 움직임 저키니스 (jerkiness) 의 형태의 아티팩트들을 생성할 수 있다. 스킵된 프레임들의 컨텐츠를 근사화하기 위해서, 그리고 실제로 더 부드러운 움직임의 인지를 제공하기 위하여, 실제 프레임 레이트를 상향 변환하기 위해, 디코더 측에서 프레임 보간 또는 외삽이 채용될 수도 있다. 프레임 보간 또는 외삽은 프레임 레이트 상향 변환 (Frame Rate Up Conversion; FRUC) 을 지원하기 위해 사용될 수도 있다. FRUC가 스킵된 프레임들을 보간 또는 외삽함으로써 시간 품질 (temporal quality) 을 향상시킬 수도 있지만, 몇몇 프레임들의 보간 또는 외삽은, 비디오 시퀀스의 시각 품질 (visual quality) 을 손상시키는 바람직하지 않은 공간 아티팩트들을 도입할 수도 있다.
요약
본원은, 비디오 디코더에서 FRUC를 선택적으로 인에이블 (enable) 및 디스에 이블 (disable) 하기 위한 기술들에 관한 것이다. 본원에 따르면, 비디오 디코더는, 하나 이상의 적응적인 기준에 기초하여, FRUC를 선택적으로 인에이블 및 디스에이블한다. 적응적인 기준은, 특정한 프레임의 보간 또는 외삽이 상당한 공간 아티팩트들을 도입할 것 같은지를 표시하기 위해 선택될 수도 있다. 프레임 보간 또는 외삽 기술들은, 비디오 시퀀스의 시간 품질을 향상시키기 위해, FRUC 기법의 일부로서 사용될 수도 있다. FRUC가 디스에이블될 때, 디코더는 프레임 반복, 즉 스킵된 프레임 대신에 이전 프레임의 반복을 적용할 수도 있다.
FRUC의 선택적인 인에이블에 대한 적응적인 기준은, 움직임 활동 임계치, 모드 (mode) 판정 임계치, 또는 이들 양자 모두를 포함할 수도 있다. 각각의 경우에, 관련 기준은 고정되기 보다는 적응적이다. 특히, 기준은, 스킵된 프레임에 근접한 하나 이상의 프레임들의 컨텐츠에 적응적일 수도 있다. 이전 프레임의 컨텐츠가 과도한 움직임 또는 새로운 컨텐츠를 표시할 때, 비디오 디코더는 FRUC를 일시적으로 디스에이블한다. 따라서, 적응적인 기준에 기초하여, 비디오 디코더는 FRUC 또는 프레임 반복 중 어느 하나를 선택한다.
일 실시형태에서, 본원은, 하나 이상의 기준에 기초하여, 비디오 디코더에서 비디오 프레임 레이트 상향 변환을 선택적으로 인에이블 및 디스에이블하는 단계; 및 스킵된 프레임에 근접한 적어도 하나의 이전 비디오 프레임의 하나 이상의 특성들에 기초하여 기준을 적응시키는 단계를 포함하는 방법을 제공한다.
다른 실시형태에서, 본원은, 프레임 레이트 상향 변환 모듈; 및 하나 이상의 기준에 기초하여, 프레임 레이트 상향 변환 모듈을 선택적으로 인에이블 및 디스에 이블하고, 스킵된 프레임에 근접한 적어도 하나의 이전 비디오 프레임의 하나 이상의 특성들에 기초하여 기준을 적응시키는 제어 모듈을 포함하는 비디오 디코더를 제공한다.
본원에서 설명된 기술들은, 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현되는 경우에, 소프트웨어는 디지털 신호 프로세서 (DSP) 와 같은 프로세서에서 실행될 수도 있다. 기술들을 실행하는 소프트웨어는, 초기에 컴퓨터 판독가능 매체에 저장될 수도 있고, 프로세서에서 로딩되고 실행될 수도 있다. 따라서, 본원은, 프로세서로 하여금 적응적인 비디오 프레임 보간을 위한 기술들을 수행하도록 하는 명령들을 포함하는 컴퓨터 판독가능 매체를 또한 고려한다.
본 발명의 하나 이상의 실시형태들의 세부 사항은 첨부된 도면들 및 이하의 상세한 설명에서 설명된다. 본 발명의 다른 특징, 목적, 및 이점은 상세한 설명 및 도면들, 그리고 청구 범위로부터 명백하게 될 것이다.
도면의 간단한 설명
도 1은 본원에 따른 선택적 FRUC 기술을 채용하도록 구성된 비디오 인코딩 및 디코딩 시스템을 예시하는 블록도이다.
도 2는 비디오 디코더에서 FRUC 기술을 지원하기 위한, 스킵된 프레임의 보간을 위한 간단한 기술의 예를 예시하는 도면이다.
도 3은 도 1의 비디오 디코더를 더 상세히 예시하는 블록도이다.
도 4는 도 3의 FRUC 실패 예측 (FFP) 모듈을 더 상세히 예시하는 블록도이 다.
도 5는 비디오 디코더가 FRUC를 인에이블할지 또는 디스에이블할지를 적응적으로 결정하는 예시적인 기술을 예시하는 흐름도이다.
도 6은 비디오 디코더가 FRUC를 인에이블할지 또는 디스에이블할지를 적응적으로 결정하는 다른 예시적인 기술을 예시하는 흐름도이다.
도 7a 내지 도 7d는 이전 프레임의 매크로블록들 (MB) 의 예시적인 분포들 및 연관된 움직임 벡터 (MV) 히스토그램들을 예시하는 그래프이다.
도 8a는 매크로블록들 (MB) 로 분할된 비디오 프레임을 예시한다.
도 8b는 움직임 활동의 분석에서 사용하기 위한, 도 8a의 비디오 프레임 내의 MB들의 각각에 할당된 코딩 비트들의 수를 표시하는 맵이다.
도 9는 움직임 활동의 분석에서 사용하기 위한, 비디오 프레임 내의 근사 연속적인 오브젝트 사이즈의 결정을 예시하는 맵이다.
상세한 설명
도 1은 하나 이상의 적응적인 기준에 기초하여, FRUC가 선택적으로 인에이블 또는 디스에이블되는 선택적 FRUC 기술을 채용하도록 구성된 비디오 인코딩 및 디코딩 시스템 (10) 을 예시하는 블록도이다. 도 1에 도시된 바와 같이, 시스템 (10) 은 송신 채널 (15) 에 접속된 비디오 인코더 (12) 및 비디오 디코더 (14) 를 포함한다. 송신 채널 (15) 은 비트스트림 내에서 프레임들을 운반할 수 있는 유선 또는 무선 매체일 수도 있다. 채널 (15) 은 양방향 또는 단방향 비디오 송신을 지원할 수도 있다.
시스템 (10) 은 비디오 전화, 비디오 스트리밍, 또는 비디오 브로드캐스팅을 위해 구성될 수도 있다. 따라서, 역 인코딩 (reciprocal encoding), 디코딩, 다중화 (MUX), 및 역다중화 (DEMUX) 컴포넌트들이 채널 (15) 의 반대 종단에 제공될 수도 있다. 몇몇 실시형태들에서, 인코더 (12) 및 디코더 (14) 는, 소위 무선 비디오 전화기 또는 카메라 전화기와 같은, 비디오 스트리밍, 비디오 브로드캐스트 수신, 및/또는 비디오 전화에 대해 갖춰진 무선 이동 단말기와 같은 비디오 통신 디바이스들 내에서 실시될 수도 있다.
시스템 (10) 은, 새션 개시 프로토콜 (SIP), ITU-T H.323 표준, ITU-T H.324 표준, 또는 다른 표준들에 따라 비디오 전화를 지원할 수도 있다. 비디오 인코더 (12) 는, MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264, 또는 MPEG-4,파트 10과 같은 비디오 압축 표준에 따라 인코딩된 비디오 데이터를 생성한다. 도 1에는 도시되어 있지 않지만, 비디오 인코더 (12) 및 비디오 디코더 (14) 는 각각 오디오 인코더 및 디코더와 통합될 수도 있으며, 데이터 스트림의 오디오부 및 비디오부 양자 모두를 처리하기 위한 적절한 하드웨어 및 소프트웨어 컴포넌트들을 포함한다.
인코더 (12) 는, 인트라 프레임들 (I 프레임들), 예측 프레임들 (P 프레임들), 및 양방향 예측 프레임들 (B 프레임들) 을 포함할 수도 있는 비디오 프레임들 (16) 을 인코딩한다. I 프레임들은, 공간 코딩 기술들을 사용하여 모든 비디오 정보를 완전하게 인코딩하는 프레임들이다. 인코딩된 프레임들은, 프레임을 형성하는 일련의 비디오 블록들을 나타내는 정보를 포함할 수도 있다. 종종 매크 로블록 (MB) 이라 지칭되는 비디오 블록들은, 예컨대 휘도 (Y), 색차 레드 (Cr), 및 색차 블루 (Cb) 색 채널들로 픽셀 값들을 정의하는 코딩 비트들을 포함한다.
인코더 (12) 는, 송신 채널 (15) 을 통해 송신되는 데이터의 프레임 레이트를 감소시키기 위해 프레임 스킵을 구현할 수도 있다. 특히, 인코더 (12) 는, 예컨대 선택된 프레임들을 코딩하지 않거나 또는 선택된 코딩된 프레임들을 송신하지 않음으로써, 선택된 프레임들을 의도적으로 스킵하도록 구성될 수도 있다. 프레임 스킵은, 인코더 (12) 로 하여금 채널 (15) 의 감소된 송신 레이트 요건에 순응하도록 허용한다. 프레임들은, 교번하는 프레임들 또는 매 n번째 프레임에서 스킵이 발생하도록 고정된 레이트로 스킵될 수도 있다. 다른 방법으로, 프레임들은, 예컨대 지능형 (intelligent) 프레임 스킵 기준에 기초하여, 변화하는 레이트로 스킵될 수도 있다. 어느 경우에도, 유효 프레임 레이트를 증가시키고 따라서 시간 품질을 개선하기 위해, 디코더 (14) 는, 비디오 프레임 보간 또는 외삽 중 어느 하나를 사용하여, 스킵된 프레임들 중 적어도 일부를 근사화하기 위해 FRUC 프로세스를 수행한다. FRUC 프로세스가 비디오 프레임 외삽을 채용할 수도 있지만, 예시의 목적을 위해 본원에서는 일반적으로 비디오 프레임 보간이 설명될 것이다.
FRUC는, 스킵된 프레임들을 대체하기 위해 디코더 (14) 에 의해 사용될 수도 있다. 또한, 몇몇 구현들에서, FRUC는 송신 동안 드롭되거나 또는 손실된 프레임들을 위해 사용될 수도 있다. 본원에서, 인코더 (12) 에 의해 스킵된 프레임들, 및 송신 동안 드롭되거나 또는 손실된 프레임들은 스킵된 프레임들이라 일반적 으로 지칭될 것이다. FRUC 프로세스가 스킵된 프레임들을 보간 또는 외삽함으로써 시간 품질을 향상시킬 수도 있지만, 그러한 기술들은 비디오 시퀀스의 주관적 (subjective) 시각 품질을 손상시키는 바람직하지 않은 공간 아티팩트들을 도입할 수도 있다. 본원에 따른 디코더 (14) 는, FRUC의 선택적인 적용을 위한 기술을 스킵된 비디오 프레임들에 적용한다. 본원에 따르면, 디코더 (14) 는, FRUC가 상당한 공간 아티팩트들을 도입할 것 같은지를 표시하는 하나 이상의 적응적인 기준에 기초하여, FRUC를 선택적으로 인에이블 및 디스에이블한다.
일반적으로, FRUC의 선택적인 인에이블 및 디스에이블을 위해 디코더 (14) 에 의해 적용되는 적응적인 기준은, 움직임 활동 임계치, 모드 (mode) 판정 임계치, 또는 이들 양자 모두를 포함할 수도 있다. 각각의 경우에, 관련 기준은 적응적이고, 스킵된 프레임에 근접한, 예컨대 보간될 프레임에 근접한, 하나 이상의 프레임들의 컨텐츠에 적응한다. 예컨대, 이전 프레임의 컨텐츠가 과도한 움직임 또는 새로운 컨텐츠를 포함한다고 기준이 표시할 때, 디코더 (14) 는 FRUC를 일시적으로 디스에이블한다. 기준이 더 적은 움직임 활동을 표시할 때, 디코더 (14) 는 FRUC를 인에이블한다.
FRUC가 디스에이블될 때, 디코더 (14) 는, 프레임 반복, 즉 스킵된 프레임 대신에 이전 프레임의 반복을 활성화한다. 이러한 경우에, 디코더 (14) 는, 예컨대 보간으로 인해 FRUC에 의해 도입될 수 있는 바람직하지 않은 공간 아티팩트들을 회피한다. 그러나, 프레임 반복은, 비디오의 인지되는 시간 품질을 감소시킨다. 따라서, 적응적인 기준은, 프레임 보간 (또는 외삽), 또는 프레임 반복 중 어느 하나를 선택적으로 적용함으로써, 디코더 (14) 로 하여금 공간 품질에 대한 시간 품질의 균형을 맞추도록 허용한다.
도 1의 예에서, 비디오 인코더 (12) 는, 비디오 정보의 인입 프레임들 F1, F2, F3을 프로세싱하도록 구성된 프레임 프로세싱 유닛 (20) 을 포함한다. 프레임 프로세싱 유닛 (20) 은, 인입 프레임들 F1 및 F3을 상술된 I, P, 또는 B 프레임들 (16) 중 하나로서 인코딩한다. F2는 스킵될 프레임을 표현한다. 비디오 인코더 (12) 는, 송신 채널 (15) 을 통해, 프로세싱된 프레임들 F1 및 F3을 포함하고 스킵된 프레임 F2는 포함하지 않은 프레임들 (16) 을 비디오 디코더 (14) 에 송신한다. 통상적으로, 인코더 (12) 는, IBBPBBPBBPBBI와 같은 소정의 시퀀스로 이들 프레임들을 송신하고, 여기서 I, B, 및 P는 각각 I 프레임들, B 프레임들, 및 P 프레임들을 지칭한다.
프레임들 F1, F2, F3은, 다수의 프레임들을 포함하는 비디오 시퀀스 내의 3개의 프레임들을 표현하고, 2개의 송신된 프레임들 사이에 있는 스킵된 프레임 F2 (F1, F2, F3) 의 보간을 나타내기 위해 사용된다. 몇몇 실시형태들에서, 다수의 프레임들이 스킵될 수도 있고, 이 경우에, 2개의 송신된 프레임들 사이에 있는 하나보다 많은 프레임이 보간을 요구할 수도 있다. 예시를 용이하게 하기 위해, 본원은, 단일 프레임 F2가 스킵되고 선택적으로 보간되는 경우의 예를 참조할 것이 다.
비디오 디코더 (14) 는 송신 채널 (15) 을 통해 순차적으로 송신된 프레임들 (16) 을 수신한다. 비디오 디코더 (14) 는, 예컨대 MPEG-1, MPEG-2, MPEG-4, H.263, H.264, MPEG-4,파트 10 표준 중 하나에 따라, 수신된 프레임들 (16) (F1 및 F3) 의 각각을 디코딩하기 위해, 표준 디코딩 기술들을 적용할 수도 있다. 본원에 따라, 디코더 (14) 는, 스킵된 프레임 F2를 선택적으로 보간하기 위해 프레임들 (16) 에 적용되는 선택적 FRUC 모듈 (24) 을 더 포함한다. 다시 말하자면, FRUC 프로세스가 프레임 외삽을 채용할 수도 있지만, 예의 목적을 위해 본원에서는 프레임 보간이 설명될 것이다.
선택적 FRUC 모듈 (24) 은 비디오 시퀀스 내의 연속하는 프레임들을 수신한다. 보간될 각각의 스킵된 프레임 (F2) 에 대하여, 이전 프레임 (F1) 및 현재 프레임 (F3) 이 존재한다. 보간될 프레임은 이전 프레임과 현재 프레임 사이에 있다. 움직임 보상 보간 (Motion-Compensated Interpolation; MCI), 선형 보간, 겹선형 (bilinear) 보간, 겹삼차 (bicubic) 보간, 스플라인 (spline) 보간, 최근접 (nearest neighbor) 보간 등과 같은 임의의 다양한 기술들에 의해 수행될 수도 있다. 선택적 FRUC 모듈 (24) 은, 적응적인 움직임 활동 임계치, 적응적인 모드 판정 임계치, 또는 양자 모두와 같은 적응적인 기준을 사용하여, 수신된 프레임들이 과도한 움직임의 양 또는 새로운 컨텐츠를 표시하는지를 결정한다.
이전 프레임 F1 및 현재 프레임 F3이 과도한 움직임 또는 새로운 컨텐츠를 표시하는 경우에, 스킵된 프레임 F2는 보간에 대해 불량한 후보로 고려된다. 특히, 과도한 움직임 활동 또는 새로운 컨텐츠는, 보간이 바람직하지 않은 공간 아티팩트들을 산출할 실질적인 가능성을 표시한다. 바람직하지 않은 공간 아티팩트들의 가능성 있는 산출은, FRUC를 위한 보간의 적용이 바람직하지 않은 결과를 산출할 것이라는 점에서 FRUC 실패라 지칭될 수도 있다. 따라서, 선택적 FRUC 모듈 (24) 은, 보간을 인에이블할지 또는 디스에이블할지를 결정하는데 FRUC 실패 예측 (FFP) 에 의존한다.
선택적 FRUC 모듈 (24) 은, 움직임 활동 임계치, 모드 판정 임계치, 또는 양자 모두에 기초하여 FRUC 실패를 예측한다. 특히, 그러한 임계치들은 고정된 것이 아니다. 대신, 임계치들은 프레임 시퀀스의 코스에 걸쳐 비디오 프레임 컨텐츠에 동적으로 적응된다. 이전 프레임으로부터의 정보에 기초하여, FRUC 실패가 예측될 때, 선택적 FRUC 모듈 (24) 은 보간을 디스에이블한다. 보간이 디스에이블될 때, 디코더 (14) 는, 이전 프레임과 현재 프레임 사이에 프레임을 보간하는 대신에, 단순히 이전 프레임을 반복할 수도 있다. 이러한 경우에, 디코더 (14) 는 스킵된 프레임 대신에 이전 프레임의 중복 버전을 사용한다.
선택적 FRUC는, 보간된 프레임이 현저한 공간 아티팩트들을 산출할 가능성을 감소시킨다. 반대로, 선택적 FRUC는, 스킵된 프레임의 보간이 허용 가능한 시각 결과들을 산출할 것 같을 때, 이전 프레임의 반복을 회피한다. 따라서, 임 의의 결정 또는 경험적인 결정에 기초한 고정된 임계치에 의존하는 기술들과 달리, 본원에서 설명된 기술들은, 강인하고 컨텐츠 기반인 선택적인 기술을 제공함으로써, 보간될 때, 디코더 (14) 가 공간 아티팩트들의 높은 가능성을 갖는 프레임들을 반복할 수도 있다.
도 2는 비디오 디코더 (14) 에서 FRUC 기술을 지원하기 위한, 스킵된 프레임의 보간을 위한 간단한 기술의 예를 예시하는 도면이다. 일반적으로, 이전 프레임 F1과 현재 프레임 F3 사이의 스킵된 프레임 F2 내의 MB를 보간하기 위해, 비디오 디코더 (14) 는, 프레임 F1 내의 MB (25) 와 프레임 F3 내의 대응하는 블록 (27) 사이를 연장하는 벡터 v13에 의존할 수도 있다. 프레임 F1 및 프레임 F3은 각각, 보간이 필요한 스킵된 프레임 F2에 시간적으로 (t-1) 선행하고 (t+1) 후행하는 프레임들이다. 일반적으로, 움직임 벡터들 v13/2 및 -v13/2를 산출하고, 스킵된 프레임 F2 내의 대응하는 MB (29) 를 식별하기 위해, 벡터 v13은 2개로 분할된다 (1:2 프레임 레이트 변환에 대한 경우). 1:N 변환에 대하여, 움직임 벡터들은 적절히 스케일링될 것이다.
도 3은 도 1의 비디오 디코더 (14) 를 더 상세히 예시하는 블록도이다. 도 3에 도시된 바와 같이, 비디오 디코더 (14) 는 선택적 FRUC 모듈 (24) 을 포함한다. 선택적 FRUC 모듈 (24) 은 FRUC 실패 예측 (FFP) 모듈 (26) 및 FRUC 모듈 (28) 을 포함한다. 도 2의 예에서, FFP 모듈 (26) 은 FRUC 모듈 (28) 을 위 한 제어 모듈을 형성하고, 움직임 활동 분석 모듈 (30) 및 인트라-매크로블록 (MB) 분석 모듈 (32) 을 포함한다. 다른 실시형태들에서, FFP 모듈 (26) 은 움직임 활동 분석 모듈 (30) 만을 포함하거나, 인트라-MB 분석 모듈 (32) 만을 포함하거나, 또는 움직임 활동 분석 모듈 (30) 및 인트라-MB 분석 모듈 (32) 양자 모두를 포함할 수도 있다.
움직임 활동 분석 모듈 (30) 은, 이전 프레임과 현재 프레임 사이의 스킵된 프레임 F2가 보간되어야 하는지를 결정하기 위해, 현재 프레임 F3 및 이전 프레임 F1에 대한 움직임 활동 정보를 분석한다. 인트라 MB 분석 모듈 (32) 은, 스킵된 프레임이 보간되어야 하는지를 결정하기 위해, 모드 판정 임계치에 관련된, 현재 프레임 내의 인트라-코딩된 MB 비트들을 분석한다. FFP 모듈 (26) 은, 예컨대 보간 또는 외삽에 의한 FRUC 프로세스를 사용하여 재현되는 대신 반복되어야 하는 프레임들을 식별하기 위해, 움직임 활동 분석 모듈 (30) 및 인트라-MB 분석 모듈 (32) 을 독립적으로 또는 조합하여 이용할 수도 있다. FRUC 모듈 (28) 은, FRUC 모듈을 위한 제어 모듈로서 기능하는 FFP 모듈 (26) 에 응답하여, 선택적인 인에이블 또는 디스에이블에 영향을 받는 FRUC 프로세스를 지원하기 위해 종래의 보간 기술을 적용할 수도 있다.
FFP 모듈 (26) 은, 과도한 움직임 또는 새로운 컨텐츠를 표시하는 움직임 활동 임계치를 적응적으로 결정하기 위해, 움직임 활동 분석 모듈 (30) 을 채용한다. 새로운 컨텐츠는, 일련의 비디오 프레임들에 걸쳐 비디오 장면에 신속하게 진입 하거나 또는 비디오 장면에서 신속하게 사라지는 새로운 오브젝트를 지칭할 수도 있다. 움직임 활동 분석 모듈 (30) 은, 프레임들의 시퀀스 내의 이전 비디오 프레임을 수신 및 분석하고, 움직임 활동값을 생성한다. 몇몇 실시형태들에서, 움직임 활동값은 움직임 벡터 히스토그램으로부터 획득된 움직임 벡터값일 수도 있다. 이전 비디오 프레임은, 스킵된 프레임 직전에 선행하는 프레임일 수도 있고, 또는 스킵된 프레임에 근접한 하나 이상의 이전 프레임들일 수도 있다. 움직임 벡터 히스토그램은, 이전 비디오 프레임 내의 MB들 사이의 움직임 벡터들의 분포를 표시하며, 예컨대 프레임 내의 모든 MB들에 걸친 애버리지 (average) 또는 평균 (mean) 움직임 벡터값에 의해 이전 비디오 프레임 내의 컨텐츠의 움직임 활동을 특징화하기 위해 사용될 수도 있다.
이전 프레임, 또는 움직임 벡터들이 이용 가능한 가장 근접한 지난 프레임에 대한 움직임 벡터 히스토그램을 사용하여, 움직임 활동 분석 모듈 (30) 은 움직임 활동 임계치를 적응적으로 조정한다. 움직임 활동 임계치는 히스토그램의 전체 범위로부터 선택될 수 있다. 예컨대, 움직임 활동 분석 모듈 (30) 은, 움직임 활동 임계치를 이전 프레임에 대한 애버리지 또는 평균 움직임 벡터와 차이값의 합으로서 확립할 수도 있다. 이러한 방식으로, 움직임 활동 임계치는, 각각의 새로운 프레임이 수신됨에 따라 적응적으로 업데이트된다. 특히, 움직임 활동 분석 모듈 (30) 은 비디오 시퀀스 내의 추가 프레임들을 수신함에 따라, 새로운 "이전" 프레임을 수신하고, 그 프레임에 대한 애버리지 움직임 벡터에 기초하여, 움직임 활동 임계치를 업데이트한다. 따라서, 비디오 시퀀스가 진행함에 따라, 스 킵된 프레임의 보간은 스킵된 프레임과 연관된 새로운 이전 프레임과 현재 프레임의 함수이다.
일반적으로, 움직임 활동 분석 모듈 (30) 은, 매크로블록들 (MB) 이라 지칭될 수도 있는, 복수의 비디오 블록들을 나타내는 정보를 이전 프레임이 포함할 것을 요구하고, 여기서 각각의 MB는 움직임 벡터 정보를 포함한다. 따라서, 통상적으로, 움직임 활동 분석 모듈 (30) 은 비디오 시퀀스의 P 프레임들을 위해 사용될 수도 있다. 일반적으로, P 프레임들은, 연관된 움직임 벡터들을 갖는, 인터-코딩된 MB들의 프리도미넌스 (predominance) 를 포함한다. 움직임 활동 분석 모듈 (30) 은, 이용 가능한 움직임 벡터 정보로부터, 움직임 벡터 히스토그램을 계산한다. 이 예에서, 움직임 활동 분석 모듈 (30) 은, 움직임 벡터 히스토그램에 기초하여, 움직임 활동 임계치를 적응적으로 결정한다.
움직임 활동 분석 모듈 (30) 은, FRUC가 인에이블되어야 하는지, 따라서 프레임이 보간되어야 하는지를 결정하기 위해, 현재 비디오 프레임에 대한 움직임 벡터 정보를 현재 "이전" 프레임에 기초하여 조정된 움직임 활동 임계치와 비교한다. 현재 프레임에 대한 예컨대 애버리지 움직임 벡터와 같은 움직임 활동 정보가 움직임 활동 임계치를 초과하여, 과도한 움직임 또는 새로운 컨텐츠를 표시하는 경우에, FFP 모듈 (26) 은 FRUC 모듈 (28) 에 의한 보간을 디스에이블한다. 이러한 경우에, 디코더 (14) 는 이전 프레임을 반복한다. 다른 방법으로, 움직임 활동 정보가 움직임 활동 임계치를 초과하지 않는 경우에, FFP 모듈 (26) 은 보간을 적용하기 위해 FRUC 모듈 (28) 을 인에이블한다.
몇몇 실시형태들에서, 움직임 활동 분석 모듈 (30) 은, 비디오 프레임의 X (수평) 방향과 Y (수직) 방향 양자 모두에서 움직임 벡터 정보를 분석하기 위해 동작할 수도 있다. 현재 프레임의 X 방향의 애버리지 움직임 벡터값이 X 방향에 대한 적응적인 움직임 활동 임계치를 초과하는 경우에, FFP 모듈 (26) 은 보간을 디스에이블한다. 마찬가지로, 현재 프레임의 Y 방향의 애버리지 움직임 벡터값이 Y 방향에 대한 적응적인 움직임 활동 임계치를 초과하는 경우에, FFP 모듈 (26) 은 보간을 디스에이블한다. 다른 방법으로서, 벡터 크기와 방향 양자 모두를 평가하기 위해 각도 정보가 사용될 수도 있다. 또한, 더 진보한 적응적인 임계치 전략이 사용될 수 있다. 예컨대, 움직임 벡터 히스토그램을 포뮬레이트 (formulate) 하기 위해 슬라이딩 MB 윈도우 (sliding MB windows) 가 사용될 수도 있다.
다른 방법으로, 또는 추가로, FFP 모듈 (26) 은, 프레임이 보간되어야 하는지를 적응적으로 결정하기 위해, 인트라 MB 분석 모듈 (32) 을 채용할 수도 있다. 인트라 MB 분석 모듈 (32) 은 현재 프레임의 모드 판정 정보를 사용한다. 인트라 MB들은, 움직임 추정이 실패할 때, 또는 MB를 인터 코딩하는 것보다 MB를 인트라 코딩하는 것이 더 경제적일 때 (즉, 더 적은 코딩 비트) 사용된다. 양자 모두의 경우에서, 프레임 내의 인트라 MB들의 존재가 상당한 새로운 컨텐츠 또는 움직임을 표시한다고 추정하는 것이 합당하다. 일반적으로, 인트라 MB 분석 모듈 (32) 은, 스킵된 프레임이 보간되어야 하는지를 결정하기 위해, 현재 프레임 내의 인트라 MB들의 수를 적응적인 모드 판정 임계치와 비교한다. 모드 판정 임계치는 2개의 상이한 기술 중 하나 또는 양자 모두를 사용하여 결정될 수 있고, 이는 이후 설명될 것이다.
하나의 기술에 따르면, 인트라 MB 분석 모듈 (32) 은, 비트스트림 레벨에서 현재 프레임 내의 인트라 MB 카운트에 따라 모드 판정 임계치를 적응적으로 조정한다. 특히, 인트라 MB 분석 모듈 (32) 은, 이전 프레임에 대한 평균값으로부터 일 표준 편차를 상회하는 MB 비트들의 수를 갖는, 이전 프레임 내의 MB들을 카운트하기 위해, 프레임들의 시퀀스의 이전 프레임을 수신 및 분석한다. 다른 MB들과 비교하여, MB가 일 표준 편차를 상회하는 MB 비트들의 수를 갖는 경우에, MB의 인트라-코딩 또는 높은 움직임이 추측될 수 있다. 일반적으로, 이전 프레임 내의 인트라-코딩된 MB들의 수는 이전 프레임 내의 움직임 또는 변화의 정도를 표시한다. 또한, MB 비트들의 높은 수는 이전 프레임으로부터의 더 큰 변화의 영역을 의미한다.
이러한 MB 정보로부터, 인트라 MB 분석 모듈 (32) 은 모드 판정 임계치를 적응적으로 결정한다. 특히, 인트라 MB 분석 모듈 (32) 은, 이전 프레임 내의 인트라 MB들로서 카운트된 MB들의 수와 차이값의 합으로서 모드 판정 임계치를 확립할 수도 있다. 현재 프레임 내의 인트라 MB들의 수가 모드 판정 임계치보다 더 높은 경우에, 이전 프레임과 현재 프레임 사이에 실질적인 움직임 또는 변화가 존재한 것이다. 이러한 경우에, FFP 모듈 (26) 은 FRUC 모듈 (28) 을 디스에이블하고, 비디오 디코더 (14) 는 스킵된 프레임을 보간하는 대신에 이전 프레임을 반복한다. 특히, 인트라 MB 비트들의 분석은, 비트스트림 레벨 정보를 사용하여 모드 판정 임계치가 획득되도록 허용한다.
다른 방법으로, 또는 추가로, 인트라 MB 분석 모듈 (32) 은, 이전 프레임 내의 근사 연속적인 오브젝트 (contiguous object) 사이즈를 추정함으로써, 인트라 MB 카운트에 대한 모드 판정 임계치를 사용할 수도 있다. 이러한 접근법은, 이전에 디코딩된 프레임의 인텐시티 (intensity) 정보에 의존하고, 그 프레임 내의 도미넌트 (dominant) 오브젝트의 사이즈를 예측한다. 따라서, 모드 판정 임계치는 프레임 내의 연속적인 오브젝트 사이즈, 프레임 내의 인트라 MB들의 수, 또는 양자 모두에 기초할 수도 있다. 인텐시티 정보를 사용하여, 인트라 MB 분석 모듈 (32) 은 이전 프레임 내의 도미넌트 오브젝트에 의해 커버된 MB들의 수를 추정하고, 모드 판정 임계치를 그 추정치와 동일하게 또는 그 추정치 플러스 차이값으로 설정한다. 특히, 인텐시티 정보는, 연속적인 오브젝트를 표시하는, 인텐시티들의 실질적으로 공통인 범위를 공유하는 MB들을 식별하기 위해 사용된다.
스킵된 프레임의 보간이 인에이블되어야 하는지 또는 디스에이블되어야 하는지를 결정하기 위해, 현재 프레임 내의 연속적인 인트라 MB들의 수가 모드 판정 임계치와 비교될 수도 있다. 현재 프레임 내의 인트라 MB 카운트가 그 모드 판정 임계치, 즉 이전 프레임 내의 도미넌트 오브젝트에 의해 커버된 MB들의 추정된 수를 초과하는 경우에, 오브젝트가 실질적으로 이동하였거나 또는 새로운 오브젝트들이 도입되었으리라 여겨진다. 이러한 경우에, FFP 모듈 (26) 은 FRUC 모듈 (28) 을 디스에이블한다. 이러한 방식으로, FFP 모듈 (26) 은 제어 모듈로서 역할하여, 장면에서의 갑작스러운 움직임 또는 새로운 오브젝트의 도입 중 어느 하 나로 인한 인트라 MB들의 과도한 수를 포함하는 프레임들에 대해 FRUC를 디스에이블한다.
상술된 2개의 상이한 모드 판정 임계치 기술들, 즉 인트라 MB 카운트 및 연속적인 오브젝트 사이즈는, 보간을 선택적으로 인에이블 및 디스에이블하기 위해, 단독으로 또는 서로 조합하여 사용될 수도 있다. 마찬가지로, 상술된 움직임 임계치 기술은 단독으로 또는 하나 또는 양자의 모드 판정 임계치 기술들과 조합하여 사용될 수도 있다. 모드 판정 임계치 기술들에 대하여, 적응적인 임계치는, 이전 프레임에서 인트라 코딩된 것으로서 식별된 MB들의 수의 함수이다. 움직임 활동 임계치 기술에 대하여, 적응적인 임계치는, 이전 프레임 내의 움직임 벡터 정보의 함수이다. 각각의 경우에서, 적응적인 임계치의 사용은, 시간 및 공간 품질 양자 모두를 증진시키기 위해, 프레임 보간과 프레임 반복 중 더 효과적인 적용을 지원한다. 움직임 활동 임계치 및 모드 판정 임계치의 결정 및 사용의 추가적인 설명이 도 4를 참조하여 뒤따른다.
도 4는 도 2의 FFP 모듈 (26) 을 더 상세히 예시하는 블록도이다. 도 4에 도시된 바와 같이, FFP 모듈 (26) 의 움직임 활동 분석 모듈 (30) 은 이전 프레임 (34A) 및 현재 프레임 (34B) 을 프로세싱한다. 또한, FFP 모듈 (26) 의 인트라 MB 분석 모듈 (32) 은 이전 프레임 (34A) 및 현재 프레임 (34B) 을 프로세싱한다. 이전 프레임 (34A) 및 현재 프레임 (34B) 은, 비디오 인코더 (12) 에 의해 인코딩되어 송신 채널 (15) 을 통해 비디오 디코더 (14) 에 송신되었던, 도 1 및 도 2에서 F1 및 F3으로 각각 나타낸 프레임들을 각각 포함할 수도 있다. 이하 설명되는 동작들은, FFP 모듈 (26) 이 프레임 (34A 및 34B) 을 수신한 후에 진행할 수도 있고, 이들 동작들을 지원하는 명령들을 실행할 수 있는 프로세서에 의해 수행될 수도 있다.
프레임들 (34A 및 34B) 을 수신할 시, 움직임 활동 분석 모듈 (30) 은, 이하 도 7b 및 도 7d에 더 상세히 도시된, 움직임 벡터 (MV) 히스토그램들 (38) ("MV 히스토그램들 (38)") 을 계산하기 위해, 이전 프레임 (34A) 을 분석할 수도 있다. 특히, 움직임 활동 분석 모듈 (30) 은, MV 히스토그램들을 산출하기 위해, 이전 프레임 (34A) 내의 각각의 MB를 분석하고, 각각의 MV들을 컴파일링함으로써, MV 히스토그램들 (38) 을 결정한다. MV 히스토그램들 (38) 로부터, 움직임 활동 분석 모듈 (30) 은 다양한 방식들 중 하나로, 움직임 벡터 (MV) 임계치 (40A) ("MV_prev 임계치 (40A)") 를 적응적으로 결정한다.
몇몇 실시형태들에서, 움직임 활동 분석 모듈 (30) 은, MV 히스토그램들 (38) 로부터 평균 또는 애버리지 움직임 벡터를 결정하고, MV_prev 임계치 (40A) 를 그 평균 또는 애버리지 움직임 벡터 플러스 차이값으로 설정한다. 다른 실시형태들에서, 움직임 활동 분석 모듈 (30) 은, MV 히스토그램들 (38) 을 계산하기 위한 슬라이딩 MB 윈도우를 사용하는 더 진보한 전략을 채용하고, 따라서 이들 진보한 전략들을 사용하여 계산된 값에 따라 MV_prev 임계치 (40A) 를 설정한다. 각각의 경우에, MV_prev 임계치 (40A) 의 값은, 비디오 시퀀스가 진행됨에 따라, 각각의 새로운 "이전" 프레임에 적응적이다.
MV_prev 임계치 (40A) 를 적응적으로 결정한 후에, 움직임 활동 분석 모듈 (30) 은, MV_prev가 평균 또는 애버리지 움직임 벡터로 설정되었다고 가정하여, 애버리지 움직임 벡터 (MVavg) 를 결정하기 위해 현재 프레임 (34B) 을 분석한다. 특히, 움직임 활동 분석 모듈 (30) 은, 현재 프레임 (34B) 의 MB들에 대한 MV들을 표시하는 현재 프레임 (34B) 에 의해 운반된 정보로부터 MVavg (42) 를 결정한다. 움직임 활동 분석 모듈 (30) 은 MVavg (42) 를 MV_prev 임계치 (40A) 와 비교한다.
MVavg (42) 가 MV_prev 임계치 (40A) 를 상회하는 경우에, 이는 이전 프레임 (34A) 에 대한 현재 프레임 (34B) 의 움직임 활동의 상당한 변화로 인한 것일 수 있다. 따라서, 이전 프레임 (34A) 과 현재 프레임 (34B) 간의 보간은 바람직하지 않은 공간 아티팩트들을 초래할 수 있고, 최적의 전략은 FRUC보다는 프레임 반복일 것이다. 이러한 경우에, 움직임 활동 분석 모듈 (30) 은, FRUC 모듈 (28) 이 스킵된 프레임을 보간 또는 외삽하기 위해 종래의 FRUC 기술들을 수행하지 않아야 하고, 대신에 이전 프레임 (34A) 을 반복해야함을 FFP 모듈 (26) 에 표시한다.
또한, 프레임들 (34A 및 34B) 을 수신할 시, 인트라 MB 분석 모듈 (32) 은, 이전 인트라 MB 카운트 임계치 (N_prev) (40B) 를 결정하기 위해 이전 프레임 (34A) 을 분석할 수도 있다. 특히, 인트라 MB 분석 모듈 (32) 은, 이전 프레임 내의 모든 MB들에 대한 평균으로부터 일 표준 편차를 상회하는 코딩 비트들의 수를 갖는 MB들의 수에 기초하여, 이전 프레임에 대한 인트라 MB 카운트 임계치를 생성 할 수도 있다. 따라서, 이전 MB 카운트 임계치 (40B) 는, 이전 프레임 내의 움직임 활동의 정도와 관련이 있는, 이전 프레임 내의 인트라-코딩된 MB들의 추정된 수의 표시를 제공한다. 이전 MB 카운트 임계치 (N_prev) 는, 이전 프레임에 대한 평균으로부터 일 표준 편차를 상회하는 비트들을 갖는 MB들의 수와 동일하거나, 또는 그 수 플러스 차이값과 동일할 수도 있다.
이전 MB 카운트 임계치 (40B) 를 적응적으로 결정한 후에, 인트라 MB 분석 모듈 (32) 은, 인트라 MB 카운트 (Nintra) (44), 즉 현재 프레임 내의 인트라-코딩된 MB들의 수를 결정하기 위해 현재 프레임 (34B) 을 분석한다. 특히, 인트라 MB 분석 모듈 (32) 은, 실질적으로, 이전 프레임에 대한 이전 MB 카운트 임계치 (40B) 의 결정에 관한 상술된 방식으로, 현재 프레임에 대한 인트라 MB 카운트 (44) 를 결정할 수도 있다. 다음으로, 인트라 MB 분석 모듈 (32) 은, 이전 프레임에 대한 이전 인트라 MB 카운트 임계치 (40B) 를 현재 프레임에 대한 인트라 MB 카운트 (44) 와 비교한다. 현재 프레임 내의 인트라 MB들의 수, 즉 인트라 MB 카운트 (44) 가 이전 MB 카운트 임계치 N_prev (40B) 를 초과하는 경우에, 이전 프레임 (34A) 으로부터 현재 프레임 (34B) 으로 상당한 변화가 존재한 것이다. 이러한 경우에, 인트라 MB 분석 모듈 (32) 은, FRUC 모듈 (28) 이 스킵된 프레임을 보간하지 않도록, FRUC 모듈 (28) 을 디스에이블한다. 대신, 디코더 (14) 는 스킵된 프레임 대신에 이전 프레임 (34A) 을 반복한다.
인트라 MB 카운트 기술과 함께, 또는 다른 방법으로서, 인트라 MB 분석 모듈 (32) 은, 이전 프레임 및 현재 프레임 내의 연속적인 오브젝트 사이즈 임계치 (Contig_th) (40C) 의 추정에 기초하여, 모드 판정 임계치를 생성할 수도 있다. 특히, 인트라 MB 분석 모듈 (32) 은, 연속적인 MB들의 수로서 표현된 이전 프레임 (34A) 내에 존재하는 오브젝트의 근사 사이즈를 결정하도록, 이전 프레임 (34A) 의 MB 정보를 분석할 수도 있다. 연속적인 오브젝트 사이즈 임계치 (40C) 를 결정하기 위해, 인트라 MB 분석 모듈 (32) 은, MB 정보 내에 존재하는 정보의 예컨대 휘도 (Y) 값과 같은 픽셀 인텐시티에 의존할 수도 있다.
일 예시적인 실시형태에서, 인트라 MB 분석 모듈 (32) 은, 이전 프레임 (34A) 의 수개의 수직 및 수평 크로스-섹션 (cross-section) 들을 정의하고, 이들 크로스-섹션들을 따라서 픽셀 인텐시티 프로파일들을 분석함으로써, 가장 큰 연속적인 오브젝트의 사이즈를 추정한다. 인텐시티에 기초하여, 인트라 MB 분석 모듈 (32) 은, 크로스-섹션이 통과하는 임의의 오브젝트의 일 차원을 따라 근사 사이즈를 추정한다. 다음으로, 인트라 MB 분석 모듈 (32) 은, X 및 Y 차원 크로스-섹션들로부터의 크로스-섹션 정보를 조합하고, 획득된 오브젝트 사이즈들 사이에서 최대 사이즈를 식별한다. 인트라 MB 분석 모듈 (32) 은, 최대 오브젝트 사이즈들에 의해 정의된 연속적인 오브젝트에 의해 커버된 MB들의 수를 추정하고, 연속적인 오브젝트 사이즈 임계치 (40C) 를 그 수 또는 그 수 플러스 차이값의 합 중 어느 하나로 설정한다.
몇몇 실시형태들에서, 인트라 MB 분석 모듈 (32) 은, 인텐시티 프로파일을 고려하면서 계산 복잡도를 감소시키기 위해, 이전 프레임 (34A) 의 공간적으로 부 분 샘플링된 버전 (sub-sampled version) 을 이용할 수도 있다. 다른 실시형태들에서, 인트라 MB 분석 모듈 (32) 은 인텐시티 프로파일을 고려하지 않을 수도 있지만, 그 대신에 비트스트림에서 용이하게 이용 가능한 이전 프레임 (34A) 내에서 정의되는 MB들의 DC 값들을 고려할 수도 있다. 그러한 실시형태들에서, 인트라 MB 분석 모듈 (32) 은, DC 값 프로파일에서 급격한 변동을 발견함으로써, 연속적인 오브젝트 사이즈 임계치 (40C) 를 추정할 수도 있다.
연속적인 오브젝트 사이즈 임계치 (40C) 가 결정되면, 인트라 MB 분석 모듈 (32) 은, 연속적인 인트라 MB 카운트 (N_contiguousintra) (46) 를 결정하기 위해, 현재 프레임 (34B) 을 분석한다. 인트라 MB 분석 모듈 (32) 은, 연속적인 오브젝트 사이즈 임계치 (40C) 의 결정에 관한 상술된 방식과 실질적으로 유사한 방식으로 현재 프레임 (34B) 에 대한 연속적인 인트라 MB 카운트 (46) 를 결정할 수도 있다. 다음으로, 인트라 MB 분석 모듈 (32) 은, 연속적인 오브젝트 사이즈 임계치 (40C) 를 연속적인 인트라 MB 카운트 (46) 와 비교한다. 현재 프레임 내의 인트라 MB들의 수, 즉 연속적인 인트라 MB 카운트 (46) 가 연속적인 오브젝트 사이즈 임계치 (40C) 를 초과하는 경우에, 이전 프레임 (34A) 으로부터 현재 프레임 (34B) 으로 상당한 변화가 존재한 것이다. 예컨대, 이전 프레임과 현재 프레임 사이에서 오브젝트가 이동하고, 회전하고, 재처리되고, 진보되거나, 또는 돌려졌을 수도 있다. 이러한 경우에, 인트라 MB 분석 모듈 (32) 은, FRUC 모듈 (28) 이 스킵된 프레임을 보간하지 않도록, FRUC 모듈 (28) 을 디스에이블한다. 대신, 디코더 (14) 는 스킵된 프레임 대신에 이전 프레임 (34A) 을 반복한다.
도 5는, 도 3의 비디오 디코더 (14) 와 같은 비디오 디코더에 의해, 스킵된 프레임들을 보간하기 위해, FRUC 기술들을 채용할지를 적응적으로 결정하는 예시적인 기술을 예시하는 흐름도이다. 도 4의 예에서, 비디오 디코더 (14) 의 FFP 모듈 (26) 은 상술된 바와 같이 3개의 상이한 임계치들을 적응적으로 결정하고, 케스캐이드 (cascade) 된 구성으로 그 임계치들을 적용한다. 예컨대, FFP 모듈 (26) 은, 움직임 활동 임계치, 인트라 MB 카운트에 기초한 제 1 모드 판정 임계치, 및 연속적인 오브젝트 사이즈에 기초한 제 2 모드 판정 임계치를 적용할 수도 있다. 도 5에서, FFP 모듈 (26) 이 FRUC 모듈 (28) 에 의한 보간을 인에이블하기 위해, 현재 프레임이 3개의 적용 가능한 임계치들 중 어느 하나도 초과하지 않음을 검증하는 점에서 임계치들이 "케스캐이드"된다. 도 4를 참조하여 이하 설명되어 있지만, 스킵된 프레임들을 보간 또는 외삽함으로써 FRUC를 적용할 수 있는 임의의 비디오 디코더에 기술들이 적용될 수도 있으며, 도 4의 예시된 실시형태에 한정되서는 안된다.
처음에, FFP 모듈 (26) 은, 송신 채널 (15) 을 통해 이전 프레임 (34A) 및 현재 프레임 (34B) 양자 모두를 수신한다 (48). 프레임들 (34A 및 34B) 을 수신할 시, 움직임 활동 분석 모듈 (30) 은, 상술된 바와 같이, 이전 프레임에 대한 MV 히스토그램들 (38) 을 결정하고, MV 히스토그램들 (38) 에 기초하여, 움직임 활동 임계치 MV_prev 임계치 (40A) 를 적응적으로 결정한다 (50). 다음으로, 움직임 활동 분석 모듈 (30) 은, 현재 프레임 내의 MB들 사이에서 애버리지 움직임 벡터 (MVavg) 를 결정하기 위해 현재 프레임 (34B) 을 분석한다 (52). 임계치 (40A) 및 애버리지 움직임 벡터 (42) 양자 모두가 결정되면, 움직임 활동 분석 모듈 (30) 은, MV_prev 임계치 (40A) 를 애버리지 움직임 벡터 (MVavg) (42) 와 비교한다 (54). MVavg (42) 가 MV_prev 임계치 (40A) 를 초과하는 경우에, FFP 모듈 (26) 은, FRUC 모듈 (28) 이 스킵된 프레임을 보간하는 대신에 이전 프레임 (34A) 을 반복해야함을 FRUC 모듈 (28) 에 표시한다 (56). 그러나, MVavg (42) 가 MV_prev 임계치 (40A) 를 초과하지 않는 경우에, 움직임 활동 분석 모듈 (30) 은 FRUC 모듈 (28) 에 표시를 행하지 않고, 인트라 MB 분석 모듈 (32) 에 제어를 전달한다.
또한, 인트라 MB 분석 모듈 (32) 은 이전 프레임 (34A) 및 현재 프레임 (34B) 을 수신한다. 상술된 바와 같이, 인트라 MB 분석 모듈 (32) 은, 이전 프레임 (34A) 에 대한 인트라 MB 카운트에 기초하여, 이전 MB 카운트 임계치 (N_prev) (40B) 를 적응적으로 결정할 수도 있고, 현재 프레임 (34B) 에 대한 인트라 MB 카운트 (Nintra) 를 결정할 수도 있다 (58 및 60). 다음으로, 인트라 MB 분석 모듈 (32) 은, Nintra (44) 를 N_prev 임계치 (40B) 와 비교한다 (62). Nintra (44) 가 N_prev 임계치 (40B) 를 초과하는 경우에, 인트라 MB 분석 모듈 (32) 은, FRUC 모듈 (28) 이 스킵된 프레임을 보간하는 대신에 이전 프레임 (34A) 을 반복해야함을 FRUC 모듈 (28) 에 표시한다 (56).
그러나, 상술된 바와 같이, Nintra (44) 가 N_prev 임계치 (40B) 를 초과하지 않는 경우에, 인트라 MB 분석 모듈 (32) 은, 제 3 임계치, 즉 연속적인 오브젝트 사이즈 임계치 (Contig_th) (40C) 를 적응적으로 결정한다 (64). 또한, 인트라 MB 분석 모듈 (32) 은, 상술된 방식으로, 현재 프레임 (34B) 에 대한 연속적인 인트라 MB 카운트 (N_contiguousintra) (46) 를 결정한다. 양자 모두를 결정한 후에, 인트라 MB 분석 모듈 (32) 은 N_contiguousintra (46) 를 Contig_th 임계치 (40C) 와 비교한다 (68). N_contiguousintra (46) 가 Contig_th 임계치 (40C) 를 초과하는 경우에, 인트라 MB 분석 모듈 (32) 은, FRUC 모듈 (28) 이 이전 프레임 (34A) 을 반복해야함을 FRUC 모듈 (28) 에 표시한다. N_contiguousintra (46) 가 Contig_th 임계치 (40C) 를 초과하지 않는 경우에, 인트라 MB 분석 모듈 (32) 은, FRUC 모듈 (28) 이 예컨대 스킵된 프레임의 보간에 의해 FRUC를 수행해야함을 FRUC 모듈 (28) 에 표시한다 (70).
따라서, FFP 모듈 (26) 은, FRUC 모듈 (28) 에 대한 FRUC 또는 프레임 반복 판정을 제공한다. 과도한 움직임 또는 컨텐츠 변화로 인해 반복이 타당한 경우에, FFP 모듈 (26) 은 특정한 스킵된 프레임에 대한 FRUC 모듈 (28) 을 디스에이블한다. 그 후, FFP 모듈 (26) 은, 이전 프레임과 현재 프레임의 다음 쌍을 수신하고, 다른 FRUC 또는 반복 판정을 행한다. 프로세스는 비디오 시퀀스의 끝까지 연속적인 기초로 진행하여, 스킵된 프레임들의 각각에 대한 움직임 활동 임계치 및/또는 모드 판정 임계치를 처리한다. 도 5에 도시된 케스캐이드된 접근법에서, FFP 모듈 (26) 은, 3개의 상이한 임계치들 (40A 내지 40C) 을 적응적으로 결정하고 적용한다. 다른 실시형태들에서, FFP 모듈 (26) 은, 보간 판정을 지원하기 위해, 임계치들 중 1개 또는 2개를 적용할 수도 있다.
도 6은, 도 2의 비디오 디코더 (14) 와 같은 비디오 디코더가 FRUC를 인에이블할지 또는 디스에이블할지를 적응적으로 결정하는 다른 예시적인 기술을 예시하는 흐름도이다. 도 6의 예에서, 비디오 디코더 (14) 의 FFP 모듈 (26) 은, 상술된 3개의 상이한 임계치들, 즉 움직임 활동 임계치, 인트라-MB 카운트 기반 모드 판정 임계치, 및 연속적인 오브젝트 사이즈 기반 모드 판정 임계치를 적응적으로 결정하고, 가중치 부여된 구성으로 이들 임계치들을 적용한다. FFP 모듈 (26) 이 도 4에 도시된 임계치들 (40A 내지 40C) 을 적응적으로 결정하고, 임계치들 (40A 내지 40C) 을 예컨대 현재 프레임 (34B) 으로부터 획득된 정보와 비교하며, 스킵된 프레임을 보간할지를 결정하기 위해 비교들의 각각에 가중치를 부여하는 점에서 도 6에 도시된 프로세스는 "가중치 부여"된다.
임계치 비교들의 가중치 부여된 분석은 판정 융합을 산출한다. 각각의 비교의 가중치는, 서로에 대한 임계치 비교들을 우선 순위화하기 위해 조정될 수도 있으며, 그에 의해, 적응적인 보간 기술을 맞춤형으로 만든다. 몇몇 실시형태들에서, 비디오 디코더 (14) 의 동작 동안에, 가중치들은 수동으로 또는 자동으로 조정될 수도 있다. 다른 실시형태들에서, 가중치들은 예컨대 공장에서 고정적으로 설정될 수도 있다. 도 4를 참조하여 이하 설명되지만, 스킵된 프레임들을 보간할 수 있는 임의의 비디오 디코더에 기술들이 적용될 수도 있으며, 도 4의 예시된 실시형태에 한정되지 않아야 한다.
처음에, FFP 모듈 (26) 은, 송신 채널 (15) 을 통해 이전 프레임 (34A) 및 현재 프레임 (34B) 양자 모두를 수신한다 (72). 프레임들 (34A 및 34B) 을 수신할 시, 움직임 활동 분석 모듈 (30) 은, 상술된 바와 같이, MV 히스토그램들 (38) 을 결정하고, MV 히스토그램들 (38) 에 기초하여, 이전 프레임 (34A) 으로부터 MV_prev 임계치 (40A) 를 적응적으로 결정한다 (74). 다음으로, 움직임 활동 분석 모듈 (30) 은, 애버리지 움직임 벡터 (MVavg) (42) 를 결정하기 위해 현재 프레임 (34B) 을 분석한다 (76). 임계치 (40A) 및 애버리지 움직임 벡터 (42) 양자 모두가 결정되면, 움직임 활동 분석 모듈 (30) 은, MV_prev 임계치 (40A) 를 애버리지 움직임 벡터 (MVavg) (42) 와 비교하며, 비교의 결과에 가중치를 부여하여, 가중치 부여된 차이값을 생성한다 (78).
다음으로, 인트라 MB 분석 모듈 (32) 은, 상술된 바와 같이, 이전 프레임 (34A) 에 대한 이전 MB 카운트 임계치 (N_prev) (40B) 를 적응적으로 결정하고, 현재 프레임 (34B) 에 대한 인트라 MB 카운트 (Nintra) 를 결정한다 (80 및 82). 이들 결정들에 뒤따라, 인트라 MB 분석 모듈 (32) 은, Nintra (44) 를 N_prev 임계치 (40B) 와 비교하고, 비교의 차이 결과에 가중치를 부여한다 (84). 또한, 인트라 MB 분석 모듈 (32) 은, 상술된 바와 같이, 이전 프레임 (34A) 으로부터 제 3 임계치, 즉 연속적인 오브젝트 사이즈 임계치 (Contig_th) (40C) 를 적응적으로 결정 한다 (86). 또한, 인트라 MB 분석 모듈 (32) 은, 상술된 방식으로, 현재 프레임 (34B) 에 대한 연속적인 인트라 MB 카운트 (N_contiguousintra) (46) 를 결정한다 (88). 양자 모두를 결정한 후에, 인트라 MB 분석 모듈 (32) 은 N_contiguousintra (46) 를 Contig_th 임계치 (40C) 와 비교하고, 비교의 차이 결과에 가중치를 부여한다 (90).
상술된 3개의 비교들을 행하고, 각각의 비교에 가중치를 부여할 시, FFP 모듈 (26) 은, 예컨대 하나 이상의 수학적 연산들을 수행함으로써, 가중치 부여된 비교들을 융합한다 (92). 예컨대, 가중치 부여된 차이 결과들은, 단순히 합산되고 합성 임계치와 비교될 수도 있다. 가중치 부여된 차이들의 합이 합성 임계치를 초과하는 경우에, FFP 모듈 (26) 은 FRUC 모듈 (28) 에 의한 보간을 디스에이블시켜서, 이전 프레임의 반복을 초래한다 (96). 가중치 부여된 차이 결과들의 합이 합성 임계치를 초과하지 않는 경우에, FFP 모듈 (26) 은 FRUC 모듈 (28) 을 인에이블한다 (98). 가중치 부여된 비교들의 융합은, 정규화 및 스케일링과 같은 넓은 다양한 수학적인 연산들을 받게 될 수도 있다.
도 7a 내지 도 7d는, 도 4의 이전 프레임 (34A) 과 같은 이전 프레임의 매크로블록들 (MB) 의 예시적인 분포들, 및 MV 히스토그램들 (38) 과 실질적으로 유사할 수도 있는 이들의 연관된 MV 히스토그램들을 예시하는 그래프들이다. 도 7a는, 움직임 벡터 크기들의 히스토그램 분포를 예시하는 그래프 (100) 를 도시한다. 도 7b는, 움직임 벡터 크기들의 정규화된 히스토그램을 예시하는 그래프 (102) 이다. 도 7c는, 움직임 벡터 방향들의 분포를 예시하는 그래프 (104) 를 도시한다. 도 7d는, 움직임 벡터 방향들의 히스토그램을 예시하는 그래프 (106) 를 도시한다.
그래프들 (100 내지 106) 은, 본원에 설명된 선택적 FRUC 기술들에서 사용될 수도 있는 정보를 예시한다. 도 7a를 참조하면, 그래프 (100) 의 x 축은 움직임 벡터 크기를 표시하고, 그래프 (100) 의 y 축은 각각의 움직임 벡터 크기를 갖는 MB들의 수를 표시한다. 따라서, 회색 막대들은 x 축에 의해 정의된 특정한 움직임 벡터 크기를 갖는 MB들의 수를 표시한다.
도 7b를 참조하면, 그래프 (102) 의 x 축은 움직임 벡터 크기를 표시하고, 그래프 (102) 의 y 축은 MB가 소정의 값 이하의 움직임 벡터를 가질 확률을 y 축을 따라 표시한다. 따라서, 회색 막대들은, MB가 x 축에 의해 표시된 크기 이하의 움직임 벡터를 가질 가능성을 표시한다. 예컨대, 우측의 마지막 회색 막대는, MB가 19 이하의 크기를 가질 100% (또는 1.0) 가능성이 존재함을 표시한다.
그래프 (100) 또는 그래프 (102) 에 도시된 데이터를 사용하여, 움직임 활동 분석 모듈 (30) 은, 이전 프레임에 대한 평균 움직임 벡터 크기를 결정할 수도 있다. 예시된 히스토그램 그래프 (102) 에서, 움직임 활동 분석 모듈 (30) 은, 대략 6.8의 평균 움직임 벡터 크기를 결정한다. 도 7c를 참조하면, 그래프 (104) 의 x 축은 움직임 벡터 방향을 도 (degree) 로 표시하며, 그래프 (104) 의 y 축은 각각의 움직임 방향을 갖는 MB들의 수를 표시한다. 따라서, 회색 막대들은, x 축에 의해 정의된 특정한 움직임 벡터 방향을 갖는 MB들의 수를 표시한다. 그래프 (104) 는 이전 프레임 (34A) 의 MB 정보에 기초한다. 그래프 (104) 는 방향에 의해 MB들을 배열하고, 25 도 회전의 각각의 방향 범위에 대하여 MB들의 수를 카운트한다.
도 7d를 참조하면, 그래프 (106) 의 x 축은 움직임 벡터 방향을 도로 표시하고, 그래프 (106) 의 y 축은, MB가 소정의 값 이하의 움직임 벡터 방향을 가질 확률을 y 축을 따라 표시한다. 따라서, 회색 막대들은, MB가 x 축에 의해 표시된 방향 이하의 방향의 움직임 벡터를 가질 가능성을 표시한다. 예컨대, 우측의 마지막 회색 막대는, MB가 350 도 이하의 방향을 가질 100% (또는 1.0) 가능성이 존재함을 표시한다. 히스토그램 그래프 (106) 내의 정보를 사용하여, 움직임 활동 분석 모듈 (30) 은 이전 프레임에 대한 평균 움직임 벡터 방향을 결정할 수도 있다. 예시된 히스토그램 그래프 (106) 는 138.50의 평균 움직임 벡터 방향을 도시한다.
벡터가 크기와 방향 양자 모두를 요구하므로, 움직임 활동 분석 모듈 (30) 은, 히스토그램 그래프들 (102 및 106) 로부터 결정된 결과의 애버리지들을 사용하여, 평균 움직임 벡터를 결정한다. 움직임 활동 분석 모듈 (30) 은, 히스토그램 그래프들 (102 및 106) 로부터 각각 도출된 평균 크기 및 평균 방향에 기초하여, MV_prev 임계치 (40A) 를 벡터값으로 설정한다. 이러한 방식으로, 움직임 분석 모듈 (30) 은, 히스토그램 그래프들 (102 및 106) 과 실질적으로 유사할 수도 있는 MV 히스토그램들 (38) 내의 데이터로부터 MV_prev 임계치 (40A) 를 적응적으로 결정한다.
예로서, 상술된 바와 같이, 움직임 활동 분석 모듈 (30) 은, X (수평) 방향, Y (수직) 방향, 또는 양자 모두의 벡터 성분 크기들을 비교할 수도 있다. 다른 방법으로, 움직임 활동 분석 모듈 (30) 은 벡터 크기 및 각도를 각각의 임계치들과 비교할 수도 있다. 각각의 경우에, 움직임 활동 분석 모듈 (30) 은 과도한 움직임 또는 장면 변화를 식별하기 위해, 크기와 방향 양자 모두에 의존할 수도 있다.
예시를 용이하게 하기 위해 그래프들 (100 내지 106) 로서 도시되었지만, 움직임 활동 분석 모듈 (30) 은, 히스토그램 그래프들 (102 및 106) 을 실제로 그래프 형태로 구축할 필요는 없다. 대신, 몇몇 실시형태들에서, 움직임 활동 분석 모듈 (30) 은, 그래프들 (102 및 106) 에 의해 표현된 것과 유사한 정보를 포함하는, 테이블, 링크된 리스트, 트리, 또는 임의의 다른 타입의 데이터 구조를 저장할 수도 있다. 이들 데이터 구조들의 분석은, 상술된 바와 같이, 비교들을 수행할 수도 있는 평균 움직임 벡터를 유사하게 산출할 수도 있다.
도 8a 및 도 8b는, MB들에 의해 형성된 예시적인 이전 프레임 (108), 및 프레임 (108) 의 MB들에 대한 MB 비트들을 표시하는 분석된 이전 프레임 (110) 을 예시한다. 인트라 MB 분석 모듈 (32) 은, 이전 프레임 (34A) 에 대해 형태가 실질적으로 유사할 수도 있는 이전 프레임 (108) 을 수신하고, 분석된 이전 프레임 (110) 을 생성하기 위해 이전 프레임 (108) 에 대한 분석을 수행한다. 분석된 이전 프레임 (110) 의 개별적인 회색-스케일링된 타일들은 MB들을 표현하고, 각각의 MB들에 할당된 코딩 비트들의 수를 특정하는 수를 포함한다. 더 엷은 회색- 스케일링된 타일들은, 더 작은 수의 코딩 비트들이 할당된 MB들을 표시하고, 더 낮은 움직임을 표시한다. 더 짙은 회색-스케일링된 타일들은 더 큰 수의 코딩 비트들이 할당된 MB들을 표시하고, 더 높은 움직임 또는 장면 변화를 표시한다. 인트라 MB 분석 모듈 (32) 은 먼저, 예컨대 코딩 비트들의 총 수를 MB들의 수로 제산함으로써, 각각의 MB에 대한 코딩 비트들의 평균 수를 결정한다.
평균 비트 값을 계산한 후에, 인트라 MB 분석 모듈 (32) 은, 평균값을 일 표준 편차 상회하는 코딩 비트들의 수를 갖는 MB들을 식별하고, 그 수에 기초하여, 이전 MB 카운트 임계치 (N_prev) (40B) 를 조정한다. 식별된 MB들은, MB들에 할당된 비교적 더 높은 수의 코딩 비트로 인해, 인트라 코딩된 MB들이라 고려된다. N_prev는, 평균 인텐시티 값을 일 표준 편차 상회하는 코딩 비트들의 수를 갖는 이전 프레임 내의 MB들의 수와 차이값의 합일 수도 있다. 인트라 MB 분석 모듈 (32) 은, 현재 프레임 (34B) 에 대해 인트라 MB 카운트 (N_intra) 를 계산하기 위해 유사한 연산을 수행할 수도 있다.
이 연산을 통해 N_prev 및 N_intra 양자 모두를 계산할 시, 인트라 MB 분석 모듈 (32) 은, FRUC 모듈 (28) 에 의한 스킵된 프레임의 보간이 인에이블되어야 하는지 또는 디스에이블되어야 하는지를 결정하기 위해 그 값들을 비교한다. 현재 프레임 내의 인트라-코딩된 MB들의 수, N_intra가 이전 프레임에 대한 임계치 N_prev보다 더 큰 경우에, FFP 모듈 (26) 은 FRUC 모듈 (28) 에 의한 스킵된 프레임의 보간을 디스에이블한다. 대신, 디코더 (14) 는 스킵된 프레임 대신에 이전 프레임을 반복한다. 다른 방법으로, 현재 프레임 내의 인트라-코딩된 MB들 의 수, N_intra가 이전 프레임에 대한 임계값 N_prev 이하인 경우에, FFP 모듈 (26) 은 FRUC를 인에이블한다.
예시를 용이하게 하기 위해 도 8a 및 도 8b를 통해 도식적으로 표현되었지만, 디코더 (14) 에서 구현되는 적응적인 보간 기술은 임의의 그러한 연산을 도식적인 수단으로 수행할 필요는 없고, 그러나 대신 이들 연산을 수행하고 그 결과들을 테이블, 링크된 리스트, 트리, 또는 비교를 수행하는데 사용하기 위한 임의의 다른 데이터 구조에 저장할 수도 있다. 따라서, 도 8a 및 도 8b의 도식적인 표현은 단지 예시적인 목적을 위한 것이다.
도 9는, 도 4의 인트라 MB 분석 모듈 (32) 이 연속적인 오브젝트 사이즈 임계치 (Contig_th) (40C) 를 결정하기 위해 분석할 수도 있는 예시적인 이전 프레임 (112) 을 예시한다. 이전 프레임 (112) 은 이전 프레임 (34B) 과 실질적으로 유사할 수도 있다. 인트라 MB 분석 모듈 (32) 은, 예컨대 다양한 오브젝트들에 대한 인텐시티 크로스-섹션들을 계산하고, 인텐시티 크로스-섹션들을 통해 가장 큰 오브젝트를 식별함으로써, 상술된 방식으로 이전 프레임 (112) 을 분석한다. 이전 프레임 (112) 을 분석한 후에, 인트라 MB 분석 모듈 (32) 은, 가장 큰 오브젝트가 차지하는 MB들의 수를 추정함으로써, 연속적인 오브젝트 사이즈 임계치 (40C) 를 결정한다.
예컨대, 이전 프레임 (112) 에서, 인트라 MB 분석 모듈 (32) 은, 크로스-섹션 인텐시티 분석을 통해, 오브젝트 (114) 를 가장 큰 오브젝트로서 식별한다. 다음으로, 인트라 MB 분석 모듈 (32) 은, 근사 오브젝트 사이즈 (116) 를 형성하는 MB들의 수를 카운트함으로써, 연속적인 오브젝트 사이즈 임계치 (40C) 를 결정한다. 인트라 MB 분석 모듈 (32) 은, (도 9에 또한 도시된) 다음 식에 따라, 근사 오브젝트 사이즈 (116) 를 계산할 수도 있다.
근사 오브젝트 사이즈 = (Vy * Vx)/(MB_sizey * MB_sizex)
여기서, Vy 및 Vx는 가장 큰 연속하는 각각의 y 축 및 x 축 인텐시티 크로스-섹션들을 각각 표현한다. MB_sizey 및 MB_sizex는 y 축 및 x 축을 따르는 매크로블록 (MB) 치수들을 각각 표현한다. 이 식을 사용하여, 인트라 MB 분석 모듈 (32) 은 근사 오브젝트 사이즈 (116) 를 결정할 수도 있고, 따라서 연속적인 오브젝트 사이즈 임계치 (40C) 를 결정할 수도 있다.
이전 프레임 및 현재 프레임 내의 연속적인 인트라 MB들의 비교는, FFP 모듈 (26) 에 의한 보간 판정에 대한 기초로서 서빙한다. 현재 프레임 내의 가장 큰 연속적인 오브젝트에 대한 추정된 MB 카운트가, 이전 프레임 내의 가장 큰 연속적인 오브젝트에 대한 MB 카운트에 기초하여 계산된 모드 판정 임계치를 초과하는 경우에, 오브젝트가 실질적으로 이동하였으리라 여겨진다. 이러한 경우에, FFP 모듈 (26) 은 FRUC 모듈 (28) 에 의한 보간을 디스에이블한다. 이러한 방식으로, FFP 모듈 (26) 은, 과도한 움직임의 양 또는 새로운 컨텐츠를 포함하는 프레임들에 대한 보간을 디스에이블한다.
움직임 활동 임계치 또는 모드 판정 임계치의 적응적인 결정은, 비디오 디코더 (14) 가, 스킵된 프레임들의 보간을 위한 프레임들을 미리 영사 (pre-screen) 하는 더 강인하고 적응적인 방식을 제공할 수 있게 할 수도 있다. 적응적인 보간을 이용하여, 비디오 디코더 (14) 는 시청자가 보는 공간 아티팩트들을 최소화할 수 있다. 또한, 디코더 (14) 는, 몇몇 프레임들의 보간을 회피함으로써, 계산적인 오버헤드 및 전력 소비를 감소시킬 수도 있다. 또한, 적응적인 기술은, 소정의 프레임을 반복할지 또는 보간할지에 대한 판정을 행하기 위해 필요한 대부분의 정보가 비트스트림 레벨에서 이용 가능하므로, 구현하기에 어렵지 않을 수도 있다.
본원에서 설명된 기술들은, 하드웨어 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 특히, 본원에서 설명된 디코더는, 다양한 하드웨어, 소프트웨어, 및 펌웨어 컴포넌트들에 의해 실현될 수도 있다. 용어 모듈, 유닛, 또는 유사한 기술 등은 하드웨어 모듈, 소프트웨어 모듈, 펌웨어 모듈, 또는 이들의 조합을 지칭할 수도 있다.
본 기술들의 다양한 양태들은, 하나 이상의 마이크로프로세서, 디지털 신호 프로세서 (DSP), 주문형 집적 회로 (ASIC), 필드 프로그래머블 게이트 어레이 (FPGA), 또는 임의의 다른 균등한 집적 또는 이산 논리 회로 뿐만 아니라, 그러한 컴포넌트들의 임의의 조합들 내에서 구현될 수도 있다. 일반적으로, 용어 "프로세서" 또는 "프로세싱 회로"는, 전술한 논리 회로 단독 또는 다른 논리 회로와의 조합, 또는 임의의 다른 균등한 회로 중 어느 하나를 지칭할 수도 있다. 몇몇 실시형태들에서, 본원에서 설명된 기능성이, 인코딩 및 디코딩을 위해 구성된 전용 소프트웨어 모듈들 또는 하드웨어 유닛들 내에 제공될 수도 있거나, 또는 조합된 비디오 인코더-디코더 (CODEC) 에 통합될 수도 있다.
소프트웨어로 구현될 때, 기술들은, 프로세서에 의해 실행될 때 상술된 하나 이상의 기능들을 수행하는 프로그램 코드 또는 명령들을 포함하는 컴퓨터 판독가능 매체에 의해 일부 실현될 수도 있다. 그러한 프로그램 코드 또는 명령들을 저장하는 컴퓨터 판독가능 매체는, 동기식 동적 랜덤 액세스 메모리 (SDRAM) 와 같은 랜덤 액세스 메모리 (RAM), 읽기 전용 메모리 (ROM), 비휘발성 랜덤 액세스 메모리 (NVRAM), 전기적 소거 및 프로그램 가능 읽기 전용 메모리 (EEPROM), FLASH 메모리, 자기 또는 광학 데이터 저장 매체, 또는 그러한 메모리 또는 저장 매체의 임의의 조합을 포함할 수도 있다.
본 발명의 다양한 실시형태들이 설명되었다. 이들 및 다른 실시형태들은 뒤따르는 청구 범위의 범위 내에 속한다.

Claims (45)

  1. 선택적 비디오 프레임 레이트 상향 변환 방법으로서,
    하나 이상의 기준에 기초하여, 비디오 디코더에서 비디오 프레임 레이트 상향 변환을 선택적으로 인에이블 (enable) 및 디스에이블 (disable) 하는 단계; 및
    스킵된 프레임에 근접한 적어도 하나의 이전 비디오 프레임의 하나 이상의 특성들에 기초하여 상기 기준을 적응시키는 단계를 포함하고,
    상기 기준은, 모드 (mode) 판정 임계치를 포함하며,
    상기 선택적 비디오 프레임 레이트 상향 변환 방법은,
    현재 프레임 내의 인트라-코딩된 매크로블록들의 수가 상기 모드 판정 임계치를 초과할 때, 상기 비디오 프레임 레이트 상향 변환을 선택적으로 디스에이블하는 단계를 더 포함하는, 선택적 비디오 프레임 레이트 상향 변환 방법.
  2. 제 1 항에 있어서,
    상기 기준은, 움직임 활동 임계치를 포함하며,
    상기 방법은,
    현재 프레임에 대한 움직임 활동값이 상기 움직임 활동 임계치를 초과할 때, 상기 비디오 프레임 레이트 상향 변환을 선택적으로 디스에이블하는 단계를 더 포함하는, 선택적 비디오 프레임 레이트 상향 변환 방법.
  3. 제 2 항에 있어서,
    상기 움직임 활동값은, 상기 현재 프레임에 대한 애버리지 (average) 움직임 벡터값을 포함하고, 상기 움직임 활동 임계치는, 상기 적어도 하나의 이전 비디오 프레임에 대한 움직임 벡터값들의 히스토그램으로부터 도출되는, 선택적 비디오 프레임 레이트 상향 변환 방법.
  4. 제 3 항에 있어서,
    상기 기준을 적응시키는 단계는, 상기 적어도 하나의 이전 비디오 프레임에 대한 움직임 벡터값들에 기초하여, 상기 움직임 활동 임계치를 조정하는 단계를 포함하는, 선택적 비디오 프레임 레이트 상향 변환 방법.
  5. 삭제
  6. 제 1 항에 있어서,
    임계치를 상회하는 코딩 비트들의 수를 갖는, 상기 이전 비디오 프레임 내의 매크로블록들의 수에 기초하여, 상기 모드 판정 임계치를 결정하는 단계를 더 포함하는, 선택적 비디오 프레임 레이트 상향 변환 방법.
  7. 제 1 항에 있어서,
    상기 적어도 하나의 이전 비디오 프레임 내의 연속적인 오브젝트 (contiguous object) 의 근사 사이즈에 기초하여, 상기 모드 판정 임계치를 결정하는 단계를 더 포함하는, 선택적 비디오 프레임 레이트 상향 변환 방법.
  8. 제 1 항에 있어서,
    상기 비디오 프레임 레이트 상향 변환이 디스에이블될 때, 상기 스킵된 프레임 대신에 상기 이전 비디오 프레임을 반복하는 단계를 더 포함하는, 선택적 비디오 프레임 레이트 상향 변환 방법.
  9. 선택적 비디오 프레임 레이트 상향 변환 방법으로서,
    하나 이상의 기준에 기초하여, 비디오 디코더에서 비디오 프레임 레이트 상향 변환을 선택적으로 인에이블 (enable) 및 디스에이블 (disable) 하는 단계; 및
    스킵된 프레임에 근접한 적어도 하나의 이전 비디오 프레임의 하나 이상의 특성들에 기초하여 상기 기준을 적응시키는 단계를 포함하고,
    상기 기준은, 매크로블록 카운트를 특정하는 모드 판정 임계치 및 움직임 활동 임계치를 포함하며,
    상기 선택적 비디오 프레임 레이트 상향 변환 방법은,
    현재 프레임에 대한 움직임 활동값이 상기 움직임 활동 임계치를 초과할 때, 또는 상기 현재 프레임 내의 인트라-코딩된 매크로블록들의 수가 상기 모드 판정 임계치를 초과할 때, 상기 비디오 프레임 레이트 상향 변환을 선택적으로 디스에이블하는 단계를 더 포함하는, 선택적 비디오 프레임 레이트 상향 변환 방법.
  10. 선택적 비디오 프레임 레이트 상향 변환 방법으로서,
    하나 이상의 기준에 기초하여, 비디오 디코더에서 비디오 프레임 레이트 상향 변환을 선택적으로 인에이블 (enable) 및 디스에이블 (disable) 하는 단계; 및
    스킵된 프레임에 근접한 적어도 하나의 이전 비디오 프레임의 하나 이상의 특성들에 기초하여 상기 기준을 적응시키는 단계를 포함하고,
    상기 기준은, 연속적인 오브젝트 사이즈를 특정하는 모드 판정 임계치 및 움직임 활동 임계치를 포함하며,
    상기 선택적 비디오 프레임 레이트 상향 변환 방법은,
    현재 프레임에 대한 움직임 활동값이 상기 움직임 활동 임계치를 초과할 때, 또는 상기 현재 프레임 내의 연속적인 인트라-코딩된 매크로블록들의 수가 상기 모드 판정 임계치를 초과할 때, 상기 비디오 프레임 레이트 상향 변환을 선택적으로 디스에이블하는 단계를 더 포함하는, 선택적 비디오 프레임 레이트 상향 변환 방법.
  11. 선택적 비디오 프레임 레이트 상향 변환 방법으로서,
    하나 이상의 기준에 기초하여, 비디오 디코더에서 비디오 프레임 레이트 상향 변환을 선택적으로 인에이블 (enable) 및 디스에이블 (disable) 하는 단계; 및
    스킵된 프레임에 근접한 적어도 하나의 이전 비디오 프레임의 하나 이상의 특성들에 기초하여 상기 기준을 적응시키는 단계를 포함하고,
    상기 기준은, 움직임 활동 임계치, 매크로블록 카운트 임계치, 및 연속적인 오브젝트 사이즈 임계치를 포함하며,
    상기 선택적 비디오 프레임 레이트 상향 변환 방법은,
    현재 프레임에 대한 움직임 활동값을 상기 움직임 활동 임계치와 비교하여, 제 1 차이값을 산출하는 단계;
    상기 현재 프레임 내의 인트라-코딩된 매크로블록들의 수를 상기 매크로블록 카운트 임계치와 비교하여, 제 2 차이값을 산출하는 단계;
    상기 현재 프레임 내의 연속적인 인트라-코딩된 매크로블록들의 수를 상기 연속적인 오브젝트 사이즈 임계치와 비교하여, 제 3 차이값을 산출하는 단계;
    상기 차이값들에 가중치를 부여하는 단계;
    상기 가중치 부여된 차이값들을 합산하는 단계; 및
    상기 합산값이 임계값을 초과할 때, 상기 비디오 프레임 레이트 상향 변환을 선택적으로 디스에이블하는 단계를 더 포함하는, 선택적 비디오 프레임 레이트 상향 변환 방법.
  12. 제 1 항에 있어서,
    상기 비디오 프레임 레이트 상향 변환은, 비디오 프레임 보간을 포함하고, 상기 하나 이상의 기준은, 상기 비디오 프레임 보간이 상당한 아티팩트를 산출할 것 같은지를 표시하는, 선택적 비디오 프레임 레이트 상향 변환 방법.
  13. 프레임 레이트 상향 변환 모듈; 및
    하나 이상의 기준에 기초하여, 상기 프레임 레이트 상향 변환 모듈을 선택적으로 인에이블 (enable) 및 디스에이블 (disable) 하고, 스킵된 프레임에 근접한 적어도 하나의 이전 비디오 프레임의 하나 이상의 특성들에 기초하여, 상기 기준을 적응시키는 제어 모듈을 포함하고,
    상기 기준은, 모드 (mode) 판정 임계치를 포함하며,
    상기 제어 모듈은, 현재 프레임 내의 인트라-코딩된 매크로블록들의 수가 상기 모드 판정 임계치를 초과할 때, 상기 프레임 레이트 상향 변환 모듈을 선택적으로 디스에이블하는, 비디오 디코더.
  14. 제 13 항에 있어서,
    상기 기준은, 움직임 활동 임계치를 포함하며,
    상기 제어 모듈은, 현재 프레임에 대한 움직임 활동값이 상기 움직임 활동 임계치를 초과할 때, 상기 프레임 레이트 상향 변환 모듈을 선택적으로 디스에이블하는, 비디오 디코더.
  15. 제 14 항에 있어서,
    상기 움직임 활동값은, 상기 현재 프레임에 대한 애버리지 (average) 움직임 벡터값을 포함하며,
    상기 움직임 활동 임계치는, 상기 적어도 하나의 이전 비디오 프레임에 대한 움직임 벡터값들의 히스토그램으로부터 도출되는, 비디오 디코더.
  16. 제 15 항에 있어서,
    상기 제어 모듈은, 상기 기준을 적응시키기 위해, 상기 적어도 하나의 이전 비디오 프레임에 대한 움직임 벡터값들에 기초하여, 상기 움직임 활동 임계치를 조정하는, 비디오 디코더.
  17. 삭제
  18. 제 13 항에 있어서,
    상기 제어 모듈은, 임계치를 상회하는 코딩 비트들의 수를 갖는, 상기 이전 비디오 프레임 내의 매크로블록들의 수에 기초하여, 상기 모드 판정 임계치를 결정하는, 비디오 디코더.
  19. 제 13 항에 있어서,
    상기 제어 모듈은, 상기 적어도 하나의 이전 비디오 프레임 내의 연속적인 오브젝트 (contiguous object) 의 근사 사이즈에 기초하여, 상기 모드 판정 임계치를 결정하는, 비디오 디코더.
  20. 제 13 항에 있어서,
    상기 비디오 디코더는, 상기 프레임 레이트 상향 변환 모듈이 디스에이블될 때, 상기 스킵된 프레임 대신에 상기 이전 비디오 프레임을 반복하는, 비디오 디코더.
  21. 프레임 레이트 상향 변환 모듈; 및
    하나 이상의 기준에 기초하여, 상기 프레임 레이트 상향 변환 모듈을 선택적으로 인에이블 (enable) 및 디스에이블 (disable) 하고, 스킵된 프레임에 근접한 적어도 하나의 이전 비디오 프레임의 하나 이상의 특성들에 기초하여, 상기 기준을 적응시키는 제어 모듈을 포함하고,
    상기 기준은, 매크로블록 카운트를 특정하는 모드 판정 임계치 및 움직임 활동 임계치를 포함하며,
    상기 제어 모듈은, 현재 프레임에 대한 움직임 활동값이 상기 움직임 활동 임계치를 초과할 때, 또는 상기 현재 프레임 내의 인트라-코딩된 매크로블록들의 수가 상기 모드 판정 임계치를 초과할 때, 상기 프레임 레이트 상향 변환 모듈을 선택적으로 디스에이블하는, 비디오 디코더.
  22. 프레임 레이트 상향 변환 모듈; 및
    하나 이상의 기준에 기초하여, 상기 프레임 레이트 상향 변환 모듈을 선택적으로 인에이블 (enable) 및 디스에이블 (disable) 하고, 스킵된 프레임에 근접한 적어도 하나의 이전 비디오 프레임의 하나 이상의 특성들에 기초하여, 상기 기준을 적응시키는 제어 모듈을 포함하고,
    상기 기준은, 연속적인 오브젝트 사이즈를 특정하는 모드 판정 임계치 및 움직임 활동 임계치를 포함하며,
    상기 제어 모듈은, 현재 프레임에 대한 움직임 활동값이 상기 움직임 활동 임계치를 초과할 때, 또는 상기 현재 프레임 내의 연속적인 인트라-코딩된 매크로블록들의 수가 상기 모드 판정 임계치를 초과할 때, 상기 프레임 레이트 상향 변환 모듈을 선택적으로 디스에이블하는, 비디오 디코더.
  23. 프레임 레이트 상향 변환 모듈; 및
    하나 이상의 기준에 기초하여, 상기 프레임 레이트 상향 변환 모듈을 선택적으로 인에이블 (enable) 및 디스에이블 (disable) 하고, 스킵된 프레임에 근접한 적어도 하나의 이전 비디오 프레임의 하나 이상의 특성들에 기초하여, 상기 기준을 적응시키는 제어 모듈을 포함하고,
    상기 기준은, 움직임 활동 임계치, 매크로블록 카운트 임계치, 및 연속적인 오브젝트 사이즈 임계치를 포함하며,
    상기 제어 모듈은,
    현재 프레임에 대한 움직임 활동값을 상기 움직임 활동 임계치와 비교하여, 제 1 차이값을 산출하고,
    상기 현재 프레임 내의 인트라-코딩된 매크로블록들의 수를 상기 매크로블록 카운트 임계치와 비교하여, 제 2 차이값을 산출하고,
    상기 현재 프레임 내의 연속적인 인트라-코딩된 매크로블록들의 수를 상기 연속적인 오브젝트 사이즈 임계치와 비교하여, 제 3 차이값을 산출하고,
    상기 차이값들에 가중치를 부여하고,
    상기 가중치 부여된 차이값들을 합산하며,
    상기 합산값이 임계값을 초과할 때, 상기 프레임 레이트 상향 변환 모듈을 선택적으로 디스에이블하는, 비디오 디코더.
  24. 제 13 항에 있어서,
    상기 프레임 레이트 상향 변환 모듈은, 상기 스킵된 프레임을 보간하며, 상 기 하나 이상의 기준은, 상기 프레임 보간이 상당한 아티팩트를 산출할 것 같은지를 표시하는, 비디오 디코더.
  25. 제 13 항에 있어서,
    상기 프레임 레이트 상향 변환 모듈은, 비디오 프레임 보간을 적용하고, 상기 하나 이상의 기준은, 상기 비디오 프레임 보간이 상당한 아티팩트를 산출할 것 같은지를 표시하는, 비디오 디코더.
  26. 프로세서로 하여금,
    하나 이상의 기준에 기초하여, 비디오 디코더에서 비디오 프레임 레이트 상향 변환을 선택적으로 인에이블 (enable) 및 디스에이블 (disable) 하며;
    스킵된 프레임에 근접한 적어도 하나의 이전 비디오 프레임의 하나 이상의 특성들에 기초하여, 상기 기준을 적응시키도록 하는 명령들을 포함하고,
    상기 기준은, 모드 (mode) 판정 임계치를 포함하며,
    상기 명령들은, 상기 프로세서로 하여금,
    현재 프레임 내의 인트라-코딩된 매크로블록들의 수가 상기 모드 판정 임계치를 초과할 때, 상기 비디오 프레임 레이트 상향 변환을 선택적으로 디스에이블하도록 하는, 컴퓨터-판독가능 매체.
  27. 제 26 항에 있어서,
    상기 기준은, 움직임 활동 임계치를 포함하며,
    상기 명령들은, 상기 프로세서로 하여금,
    현재 프레임에 대한 움직임 활동값이 상기 움직임 활동 임계치를 초과할 때, 상기 비디오 프레임 레이트 상향 변환을 선택적으로 디스에이블하도록 하는, 컴퓨 터-판독가능 매체.
  28. 제 27 항에 있어서,
    상기 움직임 활동값은, 상기 현재 프레임에 대한 애버리지 (average) 움직임 벡터값을 포함하며, 상기 움직임 활동 임계치는, 상기 적어도 하나의 이전 비디오 프레임에 대한 움직임 벡터값들의 히스토그램으로부터 도출되는, 컴퓨터-판독가능 매체.
  29. 제 28 항에 있어서,
    상기 명령들은, 상기 프로세서로 하여금,
    상기 적어도 하나의 이전 비디오 프레임에 대한 움직임 벡터값들에 기초하여, 상기 움직임 활동 임계치를 조정하도록 하는, 컴퓨터-판독가능 매체.
  30. 삭제
  31. 제 26 항에 있어서,
    상기 명령들은, 상기 프로세서로 하여금,
    임계치를 상회하는 코딩 비트들의 수를 갖는, 상기 이전 비디오 프레임 내의 매크로블록들의 수에 기초하여, 상기 모드 판정 임계치를 결정하도록 하는, 컴퓨터-판독가능 매체.
  32. 제 26 항에 있어서,
    상기 명령들은, 상기 프로세서로 하여금,
    상기 적어도 하나의 이전 비디오 프레임 내의 연속적인 오브젝트 (contiguous object) 의 근사 사이즈에 기초하여, 상기 모드 판정 임계치를 결정하도록 하는, 컴퓨터-판독가능 매체.
  33. 제 26 항에 있어서,
    상기 명령들은, 상기 프로세서로 하여금,
    상기 비디오 프레임 레이트 상향 변환이 디스에이블될 때, 상기 스킵된 프레임 대신에 상기 이전 비디오 프레임을 반복하도록 하는, 컴퓨터-판독가능 매체.
  34. 프로세서로 하여금,
    하나 이상의 기준에 기초하여, 비디오 디코더에서 비디오 프레임 레이트 상향 변환을 선택적으로 인에이블 (enable) 및 디스에이블 (disable) 하며;
    스킵된 프레임에 근접한 적어도 하나의 이전 비디오 프레임의 하나 이상의 특성들에 기초하여, 상기 기준을 적응시키도록 하는 명령들을 포함하고,
    상기 기준은, 매크로블록 카운트를 특정하는 모드 판정 임계치 및 움직임 활동 임계치를 포함하며,
    상기 명령들은, 상기 프로세서로 하여금,
    현재 프레임에 대한 움직임 활동값이 상기 움직임 활동 임계치를 초과할 때, 또는 상기 현재 프레임 내의 인트라-코딩된 매크로블록들의 수가 상기 모드 판정 임계치를 초과할 때, 상기 비디오 프레임 레이트 상향 변환을 선택적으로 디스에이블하도록 하는, 컴퓨터-판독가능 매체.
  35. 프로세서로 하여금,
    하나 이상의 기준에 기초하여, 비디오 디코더에서 비디오 프레임 레이트 상향 변환을 선택적으로 인에이블 (enable) 및 디스에이블 (disable) 하며;
    스킵된 프레임에 근접한 적어도 하나의 이전 비디오 프레임의 하나 이상의 특성들에 기초하여, 상기 기준을 적응시키도록 하는 명령들을 포함하고,
    상기 기준은, 연속적인 오브젝트 사이즈를 특정하는 모드 판정 임계치 및 움직임 활동 임계치를 포함하며,
    상기 명령들은, 상기 프로세서로 하여금,
    현재 프레임에 대한 움직임 활동값이 상기 움직임 활동 임계치를 초과할 때, 또는 상기 현재 프레임 내의 연속적인 인트라-코딩된 매크로블록들의 수가 상기 모드 판정 임계치를 초과할 때, 상기 비디오 프레임 레이트 상향 변환을 선택적으로 디스에이블하도록 하는, 컴퓨터-판독가능 매체.
  36. 프로세서로 하여금,
    하나 이상의 기준에 기초하여, 비디오 디코더에서 비디오 프레임 레이트 상향 변환을 선택적으로 인에이블 (enable) 및 디스에이블 (disable) 하며;
    스킵된 프레임에 근접한 적어도 하나의 이전 비디오 프레임의 하나 이상의 특성들에 기초하여, 상기 기준을 적응시키도록 하는 명령들을 포함하고,
    상기 기준은, 움직임 활동 임계치, 매크로블록 카운트 임계치, 및 연속적인 오브젝트 사이즈 임계치를 포함하며,
    상기 명령들은, 상기 프로세서로 하여금,
    현재 프레임에 대한 움직임 활동값을 상기 움직임 활동 임계치와 비교하여, 제 1 차이값을 산출하고;
    상기 현재 프레임 내의 인트라-코딩된 매크로블록들의 수를 상기 매크로블록 카운트 임계치와 비교하여, 제 2 차이값을 산출하고;
    상기 현재 프레임 내의 연속적인 인트라-코딩된 매크로블록들의 수를 상기 연속적인 오브젝트 사이즈 임계치와 비교하여, 제 3 차이값을 산출하고;
    상기 차이값들에 가중치를 부여하고;
    상기 가중치 부여된 차이값들을 합산하며;
    상기 합산값이 임계값을 초과할 때, 상기 비디오 프레임 레이트 상향 변환을 선택적으로 디스에이블하도록 하는, 컴퓨터-판독가능 매체.
  37. 제 26 항에 있어서,
    상기 비디오 프레임 레이트 상향 변환은, 비디오 프레임 보간을 포함하고, 상기 하나 이상의 기준은, 상기 비디오 프레임 보간이 상당한 아티팩트를 산출할 것 같은지를 표시하는, 컴퓨터-판독가능 매체.
  38. 비디오 디코더로서,
    하나 이상의 기준에 기초하여, 비디오 디코더에서 비디오 프레임 레이트 상향 변환을 선택적으로 인에이블 (enable) 및 디스에이블 (disable) 하는 수단; 및
    스킵된 프레임에 근접한 적어도 하나의 이전 비디오 프레임의 하나 이상의 특성들에 기초하여, 상기 기준을 적응시키는 수단을 포함하고,
    상기 기준은, 모드 (mode) 판정 임계치를 포함하며,
    상기 비디오 디코더는,
    현재 프레임 내의 인트라-코딩된 매크로블록들의 수가 상기 모드 판정 임계치를 초과할 때, 상기 비디오 프레임 레이트 상향 변환을 선택적으로 디스에이블하는 수단을 더 포함하는, 비디오 디코더.
  39. 제 38 항에 있어서,
    상기 기준은, 움직임 활동 임계치를 포함하며,
    상기 비디오 디코더는,
    현재 프레임에 대한 움직임 활동값이 상기 움직임 활동 임계치를 초과할 때, 상기 비디오 프레임 레이트 상향 변환을 선택적으로 디스에이블하는 수단을 더 포함하는, 비디오 디코더.
  40. 제 39 항에 있어서,
    상기 움직임 활동값은, 상기 현재 프레임에 대한 애버리지 (average) 움직임 벡터값을 포함하며, 상기 움직임 활동 임계치는, 상기 적어도 하나의 이전 비디오 프레임에 대한 움직임 벡터값들의 히스토그램으로부터 도출되는, 비디오 디코더.
  41. 제 40 항에 있어서,
    상기 기준을 적응시키는 수단은, 상기 적어도 하나의 이전 비디오 프레임에 대한 움직임 벡터값들에 기초하여, 상기 움직임 활동 임계치를 조정하는 수단을 포함하는, 비디오 디코더.
  42. 삭제
  43. 제 38 항에 있어서,
    임계치를 상회하는 코딩 비트들의 수를 갖는, 상기 이전 비디오 프레임 내의 매크로블록들의 수에 기초하여, 상기 모드 판정 임계치를 결정하는 수단을 더 포함하는, 비디오 디코더.
  44. 제 38 항에 있어서,
    상기 적어도 하나의 이전 비디오 프레임 내의 연속적인 오브젝트 (contiguous object) 의 근사 사이즈에 기초하여, 상기 모드 판정 임계치를 결정하는 수단을 더 포함하는, 비디오 디코더.
  45. 제 38 항에 있어서,
    상기 비디오 프레임 레이트 상향 변환은, 비디오 프레임 보간을 포함하고, 상기 하나 이상의 기준은, 상기 비디오 프레임 보간이 상당한 아티팩트를 산출할 것 같은지를 표시하는, 비디오 디코더.
KR1020087027837A 2006-04-13 2007-04-13 선택적 비디오 프레임 레이트 상향 변환 KR101062646B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US79214706P 2006-04-13 2006-04-13
US60/792,147 2006-04-13
US11/468,041 2006-08-29
US11/468,041 US8582660B2 (en) 2006-04-13 2006-08-29 Selective video frame rate upconversion
PCT/US2007/066609 WO2007121342A2 (en) 2006-04-13 2007-04-13 Selective video frame rate upconversion

Publications (2)

Publication Number Publication Date
KR20090007437A KR20090007437A (ko) 2009-01-16
KR101062646B1 true KR101062646B1 (ko) 2011-09-06

Family

ID=38420633

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087027837A KR101062646B1 (ko) 2006-04-13 2007-04-13 선택적 비디오 프레임 레이트 상향 변환

Country Status (8)

Country Link
US (1) US8582660B2 (ko)
EP (1) EP2005736A2 (ko)
JP (2) JP5306990B2 (ko)
KR (1) KR101062646B1 (ko)
CN (1) CN101444093B (ko)
BR (1) BRPI0709990A2 (ko)
CA (1) CA2646198A1 (ko)
WO (1) WO2007121342A2 (ko)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090118019A1 (en) 2002-12-10 2009-05-07 Onlive, Inc. System for streaming databases serving real-time applications used through streaming interactive video
US9108107B2 (en) * 2002-12-10 2015-08-18 Sony Computer Entertainment America Llc Hosting and broadcasting virtual events using streaming interactive video
US8964830B2 (en) * 2002-12-10 2015-02-24 Ol2, Inc. System and method for multi-stream video compression using multiple encoding formats
US8840475B2 (en) * 2002-12-10 2014-09-23 Ol2, Inc. Method for user session transitioning among streaming interactive video servers
US9314691B2 (en) 2002-12-10 2016-04-19 Sony Computer Entertainment America Llc System and method for compressing video frames or portions thereof based on feedback information from a client device
US9138644B2 (en) 2002-12-10 2015-09-22 Sony Computer Entertainment America Llc System and method for accelerated machine switching
US9077991B2 (en) 2002-12-10 2015-07-07 Sony Computer Entertainment America Llc System and method for utilizing forward error correction with video compression
JP4181593B2 (ja) * 2006-09-20 2008-11-19 シャープ株式会社 画像表示装置及び方法
JP4513819B2 (ja) * 2007-03-19 2010-07-28 株式会社日立製作所 映像変換装置、映像表示装置、映像変換方法
JP2008244846A (ja) * 2007-03-27 2008-10-09 Toshiba Corp フレーム補間装置及びその方法
US8848793B2 (en) * 2007-10-31 2014-09-30 Broadcom Corporation Method and system for video compression with integrated picture rate up-conversion
US8514939B2 (en) * 2007-10-31 2013-08-20 Broadcom Corporation Method and system for motion compensated picture rate up-conversion of digital video using picture boundary processing
US8767831B2 (en) * 2007-10-31 2014-07-01 Broadcom Corporation Method and system for motion compensated picture rate up-conversion using information extracted from a compressed video stream
US8355442B2 (en) * 2007-11-07 2013-01-15 Broadcom Corporation Method and system for automatically turning off motion compensation when motion vectors are inaccurate
JP5142373B2 (ja) * 2007-11-29 2013-02-13 パナソニック株式会社 再生装置
US8953685B2 (en) * 2007-12-10 2015-02-10 Qualcomm Incorporated Resource-adaptive video interpolation or extrapolation with motion level analysis
US20100027663A1 (en) * 2008-07-29 2010-02-04 Qualcomm Incorporated Intellegent frame skipping in video coding based on similarity metric in compressed domain
US20100178038A1 (en) * 2009-01-12 2010-07-15 Mediatek Inc. Video player
US8320455B2 (en) * 2009-03-05 2012-11-27 Qualcomm Incorporated System and method to process motion vectors of video data
US20100250722A1 (en) * 2009-03-31 2010-09-30 Nokia Corporation Connectivity management for transport independent architectures
US20100260255A1 (en) * 2009-04-13 2010-10-14 Krishna Sannidhi Method and system for clustered fallback for frame rate up-conversion (fruc) for digital televisions
TWI398159B (zh) * 2009-06-29 2013-06-01 Silicon Integrated Sys Corp 具動態控制畫質功能的幀率轉換裝置及相關方法
GB2476298A (en) * 2009-12-18 2011-06-22 Snell Ltd Changing the temporal sample rate of a motion image sequence
EP2601782A4 (en) * 2010-08-02 2016-09-28 Univ Beijing REPRESENTATIVE MOVEMENT DATA FLOW EXTRACTION FOR EFFICIENT RECOVERY AND CLASSIFICATION OF VIDEO DATA
US8923388B2 (en) * 2011-11-21 2014-12-30 Texas Instruments Incorporated Early stage slice cap decision in video coding
US8976254B2 (en) * 2012-06-08 2015-03-10 Apple Inc. Temporal aliasing reduction and coding of upsampled video
TWI606418B (zh) * 2012-09-28 2017-11-21 輝達公司 圖形處理單元驅動程式產生內插的圖框之電腦系統及方法
EP2755381A1 (en) * 2012-10-23 2014-07-16 ST-Ericsson SA Motion compensated frame interpolation with frame skipping handling
WO2014094204A1 (en) * 2012-12-17 2014-06-26 Intel Corporation Leveraging encoder hardware to pre-process video content
KR101431046B1 (ko) * 2013-02-13 2014-08-22 서강대학교산학협력단 Fruc를 위한 영상정보 인코딩 방법 및 장치, 저장매체
US9300906B2 (en) * 2013-03-29 2016-03-29 Google Inc. Pull frame interpolation
CN105493500A (zh) * 2013-03-30 2016-04-13 安徽广行领视通信科技有限公司 用于解码可变质量视频位流的方法和设备
US9300933B2 (en) * 2013-06-07 2016-03-29 Nvidia Corporation Predictive enhancement of a portion of video data rendered on a display unit associated with a data processing device
CN105874783B (zh) * 2014-02-04 2020-06-26 英特尔公司 一种用于对运动视频帧速率进行上变频的设备、方法和计算机可读介质
CN106303546B (zh) * 2016-08-31 2019-05-14 四川长虹通信科技有限公司 一种帧速率上转换方法及系统
US10491917B2 (en) * 2017-03-22 2019-11-26 Qualcomm Incorporated Decoder-side motion vector derivation
US10523961B2 (en) 2017-08-03 2019-12-31 Samsung Electronics Co., Ltd. Motion estimation method and apparatus for plurality of frames
KR102326163B1 (ko) * 2017-11-21 2021-11-16 엘지디스플레이 주식회사 디스플레이장치 및 그 제어 방법
US10977809B2 (en) 2017-12-11 2021-04-13 Dolby Laboratories Licensing Corporation Detecting motion dragging artifacts for dynamic adjustment of frame rate conversion settings
EP3648059B1 (en) * 2018-10-29 2021-02-24 Axis AB Video processing device and method for determining motion metadata for an encoded video
CN112291560B (zh) 2020-10-30 2024-05-07 北京百度网讯科技有限公司 视频编码方法、装置、设备和介质
CN112291559B (zh) * 2020-10-30 2023-10-31 北京百度网讯科技有限公司 视频编码方法、装置、设备和介质
KR20230116525A (ko) * 2022-01-28 2023-08-04 삼성전자주식회사 비디오를 처리하는 전자 장치 및 그 동작 방법
CN116366868B (zh) * 2023-05-31 2023-08-25 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) 一种并发视频包过滤方法、系统及储存介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004039074A1 (en) * 2002-10-22 2004-05-06 Koninklijke Philips Electronics N.V. Image processing unit with fall-back

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2629963B2 (ja) 1989-06-30 1997-07-16 旭硝子株式会社 高耐久性低水素過電圧陰極
JP3036287B2 (ja) 1992-12-15 2000-04-24 富士ゼロックス株式会社 動画像シーン検出装置
US5943096A (en) * 1995-03-24 1999-08-24 National Semiconductor Corporation Motion vector based frame insertion process for increasing the frame rate of moving images
US6094455A (en) * 1996-09-25 2000-07-25 Matsushita Electric Industrial Co., Ltd. Image compression/encoding apparatus and system with quantization width control based on bit generation error
US6192080B1 (en) * 1998-12-04 2001-02-20 Mitsubishi Electric Research Laboratories, Inc. Motion compensated digital video signal processing
US6731818B1 (en) 1999-06-30 2004-05-04 Realnetworks, Inc. System and method for generating video frames
EP1422928A3 (en) * 2002-11-22 2009-03-11 Panasonic Corporation Motion compensated interpolation of digital video signals
JP2005006275A (ja) 2002-11-22 2005-01-06 Matsushita Electric Ind Co Ltd 補間フレーム作成装置、補間フレーム作成方法、および補間フレーム作成プログラム
JP2005236937A (ja) * 2004-01-21 2005-09-02 Seiko Epson Corp 画像処理装置、画像処理方法および画像処理プログラム
EP1592250A1 (en) 2004-04-30 2005-11-02 Matsushita Electric Industrial Co., Ltd. Film-mode detection in video sequences
RU2370909C2 (ru) 2004-07-01 2009-10-20 Квэлкомм Инкорпорейтед Способ и устройство для использования способов преобразования кадров с повышением частоты кадров при кодировании масштабируемого видео
US7461939B2 (en) * 2004-11-19 2008-12-09 Hewlett-Packard Development Company, L.P. Automatic zoom for screen fitting
JP2006236937A (ja) * 2005-02-28 2006-09-07 Nec Tokin Corp 蓄電装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004039074A1 (en) * 2002-10-22 2004-05-06 Koninklijke Philips Electronics N.V. Image processing unit with fall-back

Also Published As

Publication number Publication date
WO2007121342A2 (en) 2007-10-25
JP2013013102A (ja) 2013-01-17
JP5420731B2 (ja) 2014-02-19
EP2005736A2 (en) 2008-12-24
US20070242748A1 (en) 2007-10-18
BRPI0709990A2 (pt) 2011-08-02
JP5306990B2 (ja) 2013-10-02
KR20090007437A (ko) 2009-01-16
CN101444093B (zh) 2015-11-25
US8582660B2 (en) 2013-11-12
JP2009533977A (ja) 2009-09-17
CA2646198A1 (en) 2007-10-25
WO2007121342A3 (en) 2008-12-31
CN101444093A (zh) 2009-05-27

Similar Documents

Publication Publication Date Title
KR101062646B1 (ko) 선택적 비디오 프레임 레이트 상향 변환
JP5563042B2 (ja) 適応性のあるビデオフレーム補間
US9503739B2 (en) Encoder-assisted adaptive video frame interpolation
US9521411B2 (en) Method and apparatus for encoder assisted-frame rate up conversion (EA-FRUC) for video compression
US9197912B2 (en) Content classification for multimedia processing
KR101299421B1 (ko) 비디오 인코딩을 위한 코딩 모드 결정 시스템 및 방법
EP2250813B1 (en) Method and apparatus for predictive frame selection supporting enhanced efficiency and subjective quality
CA2805916A1 (en) Scalability techniques based on content information
US10148954B2 (en) Method and system for determining intra mode decision in H.264 video coding
JP2008005183A (ja) 映画素材に適した映像符号化方法および符号化装置
KR100770873B1 (ko) 영상 부호화시 비트율 제어 방법 및 장치
US9826234B1 (en) High efficiency video coding for video with interlaced and progressive content using lookahead
EP1921866A2 (en) Content classification for multimedia processing

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 20140730

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160629

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170629

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180628

Year of fee payment: 8