KR20100137009A - 비디오 유닛 내의 경계 아티팩트 정정 - Google Patents

비디오 유닛 내의 경계 아티팩트 정정 Download PDF

Info

Publication number
KR20100137009A
KR20100137009A KR1020107026173A KR20107026173A KR20100137009A KR 20100137009 A KR20100137009 A KR 20100137009A KR 1020107026173 A KR1020107026173 A KR 1020107026173A KR 20107026173 A KR20107026173 A KR 20107026173A KR 20100137009 A KR20100137009 A KR 20100137009A
Authority
KR
South Korea
Prior art keywords
boundary
replacement
video unit
frame
positions
Prior art date
Application number
KR1020107026173A
Other languages
English (en)
Other versions
KR101197506B1 (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 KR20100137009A publication Critical patent/KR20100137009A/ko
Application granted granted Critical
Publication of KR101197506B1 publication Critical patent/KR101197506B1/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/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
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • 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/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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/55Motion estimation with spatial constraints, e.g. at image or region borders
    • 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
    • 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/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • 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

Landscapes

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

Abstract

본 개시는 비디오 유닛 대체, 예를 들어, 모션 보상된 비디오 유닛 내삽 또는 외삽을 이용하여 생성된 대체 비디오 유닛의 경계를 따라 발생하는 아티팩트들을 정정하는 기술들을 설명한다. 본 개시에 설명된 기술들에 다르면, 프레임 대체 유닛은 기준 비디오 유닛 내에 존재하고 대체 비디오 유닛 내에 존재하는 경계에 대응하는 대체 비디오 유닛 내의 제 1 위치들을 식별하고 제 1 경계 아티팩트 정정 기술을 이용하여 제 1 위치들의 경계 아티팩트들을 정정한다. 프레임 대체 유닛은 또한 대체 비디오 유닛 내에 존재하고 기준 비디오 유닛 내에 존재하지 않는 경계에 대응하는 대체 비디오 유닛 내의 제 2 위치들을 식별하고 제 2 경계 아티팩트 정정 기술을 이용하여 제 2 위치들의 경계 아티팩트들을 정정한다.

Description

비디오 유닛 내의 경계 아티팩트 정정{BOUNDARY ARTIFACT CORRECTION WITHIN VIDEO UNITS}
본 출원은 전체 내용이 참조문헌으로써 본원에 포함되는 2008년 4월 23일 출원된 미국 가출원 제 61/047,381 호의 혜택을 주장한다.
본 개시는 디지털 비디오 코딩에 관한 것이며, 보다 상세하게는 디지털 비디오 데이터 내의 아티팩트들을 개선하는 것에 관한 것이다.
다수의 비디오 인코딩 기술들은 디지털 비디오 시퀀스의 인코딩을 위해 개발되었다. 동영상 전문가 그룹 (MPEG) 은, 예를 들어, MPEG-1, MPEG-2 및 MPEG-4를 포함한 몇몇 기술들을 개발하였다. 다른 예로 국제 전기통신 연합 (ITU)-T H.263 표준, 및 ITU-T H.264 표준 및 그것에 대응하는 것, ISO/IEC MPEG-4, Part 10, 즉, AVC (Advanced Video Coding) 를 포함한다. 이러한 비디오 코딩 표준은 압축 방식으로 데이터를 인코딩함으로써 비디오 시퀀스들의 효율적인 송신을 지원한다. 압축은 송신할 필요가 있는 데이터의 전체 양을 감소시킨다.
비디오 압축은 비디오 시퀀스들에 내재하는 리던던시를 감소시키기 위해 공간 및/또는 시간 예측을 수반할 수도 있다. 인트라 코딩은 동일한 비디오 프레임 내의 비디오 블록들 간의 공간 리던던시를 감소시키기 위해서 공간 예측을 이용한다. 인터 코딩은 연속적인 비디오 프레임들 내의 비디오 블록들 간의 시간 리던던시를 감소시키기 위해서 시간 예측을 이용한다. 인터 코딩에 있어서, 비디오 인코더는 하나 이상의 기준 프레임들 내의 대응 예측 비디오 블록들에 관하여 비디오 블록들의 변위를 나타내는 움직임 벡터들을 생성하기 위해 움직임 추정을 실시한다. 비디오 인코더는 기준 프레임으로부터 예측 비디오 블록을 생성하기 위해 모션 보상을 실시하고, 코딩되는 원래의 비디오 블록에서 예측 비디오 블록을 감산함으로써 나머지 비디오 블록을 형성한다.
저 대역폭 요건을 만족시키기 위해서, 일부 비디오 애플리케이션들은 감소된 프레임 레이트로 비디오를 인코딩하고/하거나 몇몇 프레임들의 인코딩을 스킵할 수도 있다. 불행하게도, 저 프레임 레이트 비디오는 움직임 저키니스 (jerkiness) 의 형태로 시간 아티팩트들을 생성할 수 있다. 프레임 내삽 또는 외삽은, 인코더에 의해 스킵되는 프레임들 또는 인코더에 의해 생성된 기본 프레임 레이트를 능가하는 프레임들의 콘텐츠를 근사화하기 위해 디코더 측에서 사용될 수도 있다. 프레임 내삽 또는 외삽은 통상적으로 프레임 대체로 지칭될 수도 있다. 프레임 대체는, 사실상, 보다 매끄러운 움직임의 인식을 제공하기 위해서 실제 프레임 레이트를 업컨버트하는데 사용될 수도 있다. 프레임 삽입 또는 대체는 종종 프레임 레이트 업 컨버젼 (frame rate up conversion; FRUC) 으로 지칭되는 프로세스를 지원하는데 사용될 수도 있다. FRUC는 상이한 비디오 프레임 포맷들을 변환, 예를 들어 일 프레임 레이트로부터 다른 프레임 레이트로의 변환하는데 사용될 수 있다. FRUC가 예를 들어, 내삽이나 외삽을 이용하여 프레임들을 대체함으로써 일시적 품질을 향상시킬 수도 있지만, 일부 프레임들의 대체는 시각적 품질을 약화시키는 바람직하지 않은 공간 아티팩트들을 도입할 수도 있다.
본 개시는 대체 프레임의 경계를 따라 발생하는 시각적 아티팩트들을 정정하는 기술들을 기재한다. 대체 프레임 내 경계는 비디오 프레임의 상부, 하부 및/또는 하나 이상의 측면들을 따라 발생할 수도 있다. 대안으로 또는 추가적으로, 대체 프레임의 경계는, 픽쳐 모드에서 픽쳐를 지원하는 비디오 프레임의 경우에서와 같이, 프레임 내에 위치될 수도 있다. 본 개시의 기술에 따라서, 프레임 대체 유닛은 경계 아티팩트들에 대응하고 경계 아티팩트들을 정정하는 대체 프레임 내에서 위치들을 식별할 수도 있다. 일 양태에서, 프레임 대체 유닛은 경계 아티팩트의 형태에 상이하게 기초하여 대체 비디오 프레임 내에서 경계 아티팩트들을 다룰 수도 있다.
프레임 대체 유닛은 적어도 2개의 상이한 형태들의 경계 아티팩트들을 식별할 수도 있다. 일 실시예에서, 프레임 대체 유닛은 대체 프레임을 생성하는데 사용되는 기준 프레임 내에 존재하고 대체 프레임 내에 존재하는 경계에 대응하는 대체 프레임 내에서 제 1 위치들을 식별할 수도 있다. 제 1 위치는, 위치들이 기준 비디오 프레임 내에 실제로 존재하는 경계에 대응하기 때문에 "실제 경계 위치들"로 지칭될 수도 있다. 실제 경계 위치들은, 경계가 모션 보상 예측으로 인해 대체 프레임으로 충분히 멀리 확장되지 않는 경우에서와 같이, 경계 아티팩트들에 대응할 수도 있다.
프레임 대체 유닛은 또한 대체 비디오 프레임 내에 존재하지만 대체 프레임을 생성하는데 사용된 기준 비디오 프레임 내에 존재하지 않는 경계에 대응하는 대체 프레임 내에서 제 2 위치들을 식별할 수도 있다. 이러한 제 2 위치들은 "오류 경계 위치들"로 지칭될 수도 있는데, 이 위치들은 기준 비디오 프레임 내에 실제로 존재하지 않지만, 예를 들어, 모션 보상 내삽으로 인해, 대체 프레임으로 전파되는 경계에 대응하기 때문이다. 오류 경계 위치들은, 모션 보상 예측이 기준 프레임보다는 대체 프레임 내에서 경계를 확장하는 경우에서와 같이, 경계 아티팩트들에 대응할 수도 있다.
프레임 대체 유닛은 제 1 경계 아티팩트 정정 기술을 이용하여 실제 경계 위치들에서 경계 아티팩트들을 정정하고 제 2 경계 아티팩트 정정 기술을 이용하여 오류 경계 위치들에서 경계 아티팩트들을 정정할 수도 있다. 제 1 및 제 2 경계 아티팩트 정정 기술들은 (예를 들어, 대체 프레임의 픽셀 값들을 내삽 또는 외삽한 후) 픽셀 도메인 내에서 또는 (대체 프레임의 픽셀 값들을 내삽 또는 외삽하기 전에) 압축된 도메인 내에서 발생할 수도 있다.
일 양태에서, 방법은 기준 비디오 유닛 내에 존재하는 경계에 대응하는 대체 비디오 유닛 내의 제 1 위치들을 식별하는 단계와 대체 비디오 유닛 내에 존재하고 기준 비디오 유닛 내에 존재하지 않는 경계에 대응하는 대체 비디오 유닛 내의 제 2 위치들을 식별하는 단계를 포함한다. 방법은 또한 대체 비디오 유닛의 제 1 위치들 내 경계 아티팩트들을 제 1 경계 아티팩트 정정 기술을 이용하여 정정하는 단계와 대체 비디오 유닛의 제 2 위치들 내 경계 아티팩트들을 제 2 경계 아티팩트 정정 기술을 이용하여 정정하는 단계를 포함한다.
다른 양태에서, 장치는, 기준 비디오 유닛 내에 존재하는 경계에 대응하는 대체 비디오 유닛 내의 제 1 위치들을 식별하고 대체 비디오 유닛 내에 존재하고 기준 비디오 유닛 내에 존재하지 않는 경계에 대응하는 대체 비디오 유닛 내의 제 2 위치들을 식별하는 경계 아티팩트 식별 유닛과, 대체 비디오 유닛의 제 1 위치들 내 경계 아티팩트들을 제 1 경계 아티팩트 정정 기술을 이용하여 정정하고 대체 비디오 유닛의 제 2 위치들 내 경계 아티팩트들을 제 2 경계 아티팩트 정정 기술을 이용하여 정정하는 경계 아티팩트 정정 유닛을 포함한다.
다른 양태에서, 디바이스는, 기준 비디오 유닛 내에 존재하는 경계에 대응하는 대체 비디오 유닛 내의 제 1 위치들을 식별하고 대체 비디오 유닛 내에 존재하고 기준 비디오 유닛 내에 존재하지 않는 경계에 대응하는 대체 비디오 유닛 내의 제 2 위치들을 식별하는 수단과, 대체 비디오 유닛의 제 1 위치들 내 경계 아티팩트들을 제 1 경계 아티팩트 정정 기술을 이용하여 정정하고 대체 비디오 유닛의 제 2 위치들 내 경계 아티팩트들을 제 2 경계 아티팩트 정정 기술을 이용하여 정정하는 수단을 포함한다.
본 개시에 기재된 기술들은 하드웨어, 소프트웨어, 또는 그 조합으로 구현될 수도 있다. 소프트웨어로 구현된다면, 소프트웨어는 하나 이상의 프로세서들에 의해 실행될 수도 있다. 소프트웨어는 컴퓨터 판독가능 매체에 최초로 저장될 수도 있고 실행을 위해 프로세서에 의해 로딩될 수도 있다. 따라서, 본 개시는 하나 이상의 프로세서들로 하여금 본 개시에 기재된 바와 같은 기술을 실시하게 하는 명령들을 포함하는 컴퓨터 판독가능 매체를 숙고한다.
예를 들어, 몇몇 양태들에서, 개시는 하나 이상의 프로세서들로 하여금 기준 비디오 유닛 내에 존재하는 경계에 대응하는 대체 비디오 유닛 내의 제 1 위치들을 식별하게 하고, 대체 비디오 유닛 내에 존재하고 기준 비디오 유닛 내에 존재하지 않는 경계에 대응하는 대체 비디오 유닛 내의 제 2 위치들을 식별하게 하고, 제 1 경계 아티팩트 정정 기술을 이용하여 대체 비디오 유닛의 제 1 위치들에서 경계 아티팩트들을 정정하게 하고, 그리고 제 2 경계 아티팩트 정정 기술을 이용하여 대체 비디오 유닛의 제 2 위치들에서 경계 아티팩트들을 정정하게 하는 명령들을 포함하는 컴퓨터 판독가능 매체를 제공한다.
개시된 기술들의 하나 이상의 양태들의 세부사항을 첨부된 도면 및 아래의 설명에 제시한다. 다른 특징, 목적, 및 이점들은 상세한 설명과 도면, 그리고 청구범위로부터 명확해질 것이다.
도 1은 비디오 유닛 대체 동안 생성된 경계 아티팩트들을 정정하는 예시적인 비디오 인코딩 및 디코딩 시스템을 도시하는 블록도이다.
도 2a는 비디오 디코더 내의 비디오 유닛의 내삽을 위한 기술의 실시예를 도시하는 다이어그램이다.
도 2b는 비디오 디코더 내의 비디오 유닛의 외삽을 위한 기술의 실시예를 도시하는 다이어그램이다.
도 3a는 경계를 포함하는 기준 비디오 프레임을 도시하는 다이어그램이다.
도 3b는 경계 아티팩트들을 가진 경계를 포함하는 대체 비디오 프레임을 도시하는 다이어그램이다.
도 4는 대체 비디오 유닛들 내의 경계 아티팩티들을 정정하도록 구성된 비디오 디코더의 실시예를 도시하는 블록도이다.
도 5는 대체 프레임들의 경계 아티팩트들을 정정하는 프레임 대체 유닛의 예시적인 동작을 도시하는 흐름도이다.
도 6a 및 도 6b는 식별된 경계를 따라 픽셀들의 하나의 로우 및/또는 컬럼의 경계 아티팩트들을 정정하는 프레임 대체 유닛의 예시적인 동작을 도시하는 흐름도이다.
도 7은 픽셀 도메인에서 오류 경계 대체를 실시하는 프레임 대체 유닛의 예시적인 동작을 도시하는 흐름도이다.
도 8은 픽셀 도메인에서 실제 경계 대체를 실시하는 프레임 대체 유닛의 예시적인 동작을 도시하는 흐름도이다.
도 9는 압축된 도메인에서 실제 경계 대체를 실시하는 프레임 대체 유닛의 예시적인 동작을 도시하는 흐름도이다.
도 10은 압축된 도메인에서 오류 경계 대체를 실시하는 프레임 대체 유닛의 예시적인 동작을 도시하는 흐름도이다.
도 11a 내지 도 11c는 압축된 도메인에서 다양한 스테이지의 정정 후 대체 프레임을 도시하는 다이어그램이다.
도 1은 본 개시에 설명된 기술들에 따라서 비디오 유닛 대체 동안 생성된 경계 아티팩트들을 정정하는 예시적인 비디오 인코딩 및 디코딩 시스템 (10) 을 도시하는 블록도이다. 비디오 유닛 내삽 또는 외삽을 포함할 수도 있는 비디오 유닛 대체는 통상적으로 인코더에 의해 스킵된 비디오 유닛들의 콘텐츠의 근사화를 지칭하며, 비디오 유닛은 통신 채널을 통한 송신 동안 손실되거나 손상되는 비디오 유닛들 또는 인코더에 의해 생성된 기본 비디오 유닛 코딩 레이트를 능가한다. 비디오 유닛 대체는 종종 프레임 레이트 업 컨버전 (FRUC) 으로도 지칭되는 프로세스를 지원하는데 사용될 수도 있다. 본 개시의 기술이 비디오 프레임들, 슬라이스들, 블록들 또는 서브 블록들과 같은 다양한 형태의 비디오 유닛들에 적용될 수도 있지만, 본 개시는 일반적으로 설명의 목적으로 비디오 프레임들에 대한 기술의 적용을 설명한다.
도 1에 도시된 바와 같이, 시스템 (10) 은 비디오 인코더 (12) 및 비디오 디코더 (14) 를 포함할 수도 있으며, 비디오 인코더 (12) 및 비디오 디코더 (14) 각각은 통상적으로 비디오 코더로도 지칭될 수도 있고, 일부 실시예에서, 결합된 인코더-디코더 (코덱) 로 형성될 수도 있다. 도 1의 실시예에서, 비디오 인코더 (12) 는 입력 비디오 프레임들 (16) 을 수신하고 입력 비디오 프레임들 (16) 을 인코딩하여 인코딩된 비디오 프레임들 (18) 을 생성한다. 비디오 인코더 (12) 는 인코딩된 비디오 프레임들 (18) 을 통신 채널 (19) 을 통해 비디오 디코더 (14) 로 송신할 수도 있다.
특히, 비디오 인코더 (12) 는 입력 비디오 프레임들 (16) 의 시퀀스로 이루어지는 비디오 스트림을 획득할 수도 있다. 비디오 스트림은 실시간 또는 거의 실시간인 비디오, 미리 레코딩된 비디오, 컴퓨터생성 비디오 또는 그 결합일 수도 있다. 예를 들어, 비디오 인코더 (12) 는 비디오 카메라, 미리 캡쳐된 비디오를 포함하는 비디오 아카이브, 비디오 콘텐츠 제공자로부터 공급된 비디오, 및/또는 컴퓨터 생성 비디오를 생성하는 비디오 그래픽 프로세서로부터 비디오 스트림의 입력 비디오 프레임들 (16) 을 획득할 수도 있다.
비디오 인코더 (12) 는 비디오 데이터의 엔트로피 인코딩 전에 인트라 또는 인터 예측을 이용하여 비디오 스트림의 비디오 데이터를 압축할 수도 있다. 인트라 또는 인터 예측을 이용한 비디오 데이터의 압축은 비디오 인코더 (12) 와 비디오 디코더 (14) 사이에서 송신되어야하는 데이터의 양을 감소시킬 수도 있다. 인트라-예측은 동일한 비디오 프레임 내의 하나 이상의 인접한 블록들을 이용하여 예측 블록을 생성함으로써 주어진 비디오 프레임 내의 비디오 블록들 사이의 공간 리던던시를 감소 또는 제거함으로써 비디오 데이터를 압축한다. 인터 코딩은 비디오 시퀀스의 연속적인 비디오 프레임들의 비디오 블록들 간의 시간 리던던시를 감소 또는 제거함으로써 비디오 데이터를 압축한다. 인터 코딩에 있어서, 비디오 인코더 (12) 는 2 이상의 인접한 프레임들 사이의 비디오 블록들을 매칭하는 모션을 추적하기 위해 모션 추정을 실시할 수도 있다. 모션 추정은 하나 이상의 기준 프레임들 내의 대응하는 예측 비디오 블록들에 관하여 비디오 블록의 변위를 나타내는 모션 벡터들을 생성한다. 모션 보상은 기준 프레임으로부터 예측 비디오 블록들을 위치시키고 생성하기 위해 모션 벡터들을 사용한다.
예측 비디오 블록의 인트라 또는 인터 예측 이후, 비디오 인코더 (12) 는 코딩될 원래의 비디오 블록에서 예측 비디오 블록을 감산함으로써 나머지 정보의 블록을 생성한다. 이와 같이, 예측 비디오 블록 및 나머지 정보를 식별할 때, 코딩된 비디오 블록이 비디오 디코더 (14) 에서 재구성될 수 있도록, 나머지 정보는 예측 비디오 블록과 코딩될 비디오 블록 사이의 차를 양자화한다. 비디오 디코더 (14) 는 비디오 인코더 (12) 와 관련하여 상술된 것과 동일한 방식으로 예측 블록을 생성할 수도 있다. 예를 들어, 비디오 디코더 (14) 는, 인터 또는 인트라 예측을 사용할지 여부, 인트라 예측을 위해 사용하기 위한 인트라 예측 모드, 인터 예측에서의 사용을 위한 모션 벡터 등을 지정하는 헤드 정보를 수신할 수도 있다.
비디오 인코더 (12) 와 비디오 디코더 (14) 사이에 송신되어야할 데이터의 양을 더 감소시키기 위해서, 비디오 인코더 (12) 는 소스 프레임 코딩 레이트보다 작은 기본 프레임 코딩 레이트로 동작할 수도 있다. 다른 말로, 기본 프레임 코딩 레이트는 원하는 프레임 코딩 레이트보다 작을 수도 있다. 대안으로 또는 추가적으로, 몇몇 경우들에서, 비디오 인코더 (12) 는 주어진 프레임 코딩 레이트로 동작할 수도 있지만, 비디오 인코더 (12) 로 하여금 일부 프레임들의 인코딩을 스킵하게 하는 스킵 유닛 (20) 을 옵션으로 포함하거나 선택적으로 동작시킨다. 예를 들어, 비디오 스킵 유닛 (20) 은 비디오 인코더 (12) 로 하여금 일부 프레임들의 인코딩을 의도적으로 스킵하게 하도록 구성됨으로써, 예를 들어, 소스 프레임 코딩 레이트와 관련된 비디오 인코더 (12) 의 유효한 프레임 코딩 레이트를 감소시킬 수도 있다. 프레임 스킵핑 또는 감소된 프레임 레이트 코딩은, 인코더 (12) 가 채널 (19) 의 감소된 송신 레이트 요건에 일치하게 할 수도 있다.
프레임 스킵핑의 경우, 스킵핑이 프레임들을 번갈아 또는 N번째 프레임 마다 발생하도록, 프레임들이 프레임 스킵 유닛 (20) 에 의해 고정 레이트로 스킵될 수도 있다. 대안으로, 프레임들은, 예를 들어, 지능적인 프레임 스킵핑 기준에 기초하여 가변 레이트로 스킵핑될 수도 있다. 또한, 프레임 코딩 레이트는 채널 조건 또는 다른 요건과 같은 고려사항에 따라서 변경되도록, 비디오 인코더 (12) 는 고정된 기준 또는 적응형 기준의 주어진 프레임 코딩 레이트로 프레임들을 인코딩할 수도 있다. 어느 한 경우, 프레임 코딩 레이트는 원하는 증가된 프레임 코딩 레이트, 예를 들어, 30 fps 내지 60 fps 또는 120 fps를 생성하기 위해 프레임 대체를 이용하여 디코더 (14) 에 의해 효과적으로 상향 변환될 수도 있다.
Ft -2, Ft -1, Ft, Ft +1, 및 Ft +2로 라벨링된 입력 비디오 프레임들 (16) 은 비디오 시퀀스의 프레임들의 일부를 나타낸다. 선택적 프레임 스킵 유닛 (20) 에 의한 프레임 스킵핑으로 인해 또는 비디오 인코더 (12) 에 의해 생성된 기본 프레임 레이트로인해, 프레임 Ft는 시간 t에서 인코딩되지 않은 프레임을 나타낸다. 프레임 (Ft -2 및 Ft -1) 은 시간적으로 프레임 Ft 전에 위치되는 과거 프레임들을 나타내고 프레임 (Ft +1 및 Ft +2) 은 시간적으로 프레임 Ft 이후에 위치되는 미래 프레임들이다. 비디오 시퀀스는 프레임 Ft 전후 둘 모두 많은 프레임들을 포함할 수도 있다. 그러나, 예시의 편이를 위하여, Ft 전에 2개의 프레임만 그리고 F1 이후에 2개의 프레임만 도 1에 도시했다.
비디오 인코더 (12) 는 인코딩된 프레임들 (18) 을 생성하기 위해서 프레임들 (Ft -2, Ft -1, Ft +1, 및 Ft +2) 을 인코딩한다. 도 1의 예시된 실시예에서, 시간 t에서 코딩되지 않은 프레임, 예를 들어, 프레임 Ft는 인코딩된 프레임들 (18) 중 음영 처리한 프레임으로 도시되는 반면, 비디오 인코더 (12) 에 의해 실제로 인코딩된 프레임들, 예를 들어, 프레임 Ft -2, Ft -1, Ft +1, 및 Ft + 2은 음영 처리하지 않은 프레임들로 도시된다. 다른 말로, 인코딩된 프레임들 (18) 중에 도시되었더라도, 프레임 Ft는 실제로 인코딩된 프레임이 아니다.
비디오 인코더 (12) 는 인코딩된 프레임들 (18) 을 송신 채널 (19) 을 통해 비디오 디코더 (14) 로 송신한다. 다시, 비디오 인코더 (12) 에 의해 송신된 코딩된 프레임들 (18) 은 Ft를 제외한 Ft -2, Ft -1, Ft +1, 및 Ft +2를 포함하는데, 프레임 Ft는 선택적 스킵 유닛 (20) 에 의해 스킵되기 때문에 또는 비디오 인코더 (12) 에 의해 사용된 기본 프레임 레이트로 인해 비디오 인코더 (12) 에 의해 코딩되지 않기 때문이다. 송신 채널 (19) 은 비트 스트림 내에서 비디오 프레임들을 전달할 수 있는 유선 또는 무선 매체 또는 그 조합일 수도 있다. 채널 (19) 는 양방향 또는 단방향 비디오 송신을 지원할 수도 있다. 양방향 비디오 송신에서, 예를 들어, 비디오 인코더 (12) 는 인코딩된 비디오를 비디오 디코더 (14) 로 송신하고 비디오 디코더 (14) 로부터 인코딩된 비디오를 수신한다. 단방향 비디오 송신에서, 비디오 인코더 (12) 는 인코딩된 비디오 데이터를 송신할 뿐 비디오 인코더 (14) 로부터 인코딩된 비디오 데이터를 수신하지 않을 수도 있다.
비디오 디코더 (14) 는 송신 채널 (19) 을 통해 프레임들 (24) 을 수신한다. 수신된 프레임들 (24) 은 비디오 인코더 (12) 에 의해 송신된 인코딩된 프레임 (18) 과 실질적으로 동일할 수도 있으며, 송신 채널 (19) 의 특징으로 인해 프레임, 슬라이스 또는 블록 손실을 겪는다. 예를 들어, 수신된 프레임 (24) 은 채널 손실이 발생하지 않는 경우 비디오 인코더 (12) 에 의해 송신된 인코딩된 프레임 (18) 의 동일한 세트일 수도 있다. 수신된 프레임 (24) 은, 어떤 경우, 예를 들어, 송신 채널 (19) 의 특징으로부터 손실을 겪게되는 인코딩된 비트 스트림으로 인해, 비디오 인코더 (12) 에 의해 송신된 인코딩된 프레임 (18) 의 세트와 약간 다를 수도 있다. 다른 말로, 비디오 인코더 (12) 에 의해 실제로 코딩되고 송신된 하나 이상의 프레임들 (또는 프레임들 중 일부)(예를 들어, 프레임 (Ft -2, Ft -1, Ft +1, 및 Ft +2) 은 송신 채널 (19) 을 통한 송신 동안 손실될 수도 있다. 예시의 목적으로, 수신된 프레임 (24) 은 인코딩된 프레임 (18) 과 동일하다, 즉 프레임들이 송신 동안 손실되지 않았다는 것을 가정할 것이다. 그러나, 본 개시의 기술은 의도적인 프레임 스킵핑으로 인해 또는 기본 프레임 레이트로 인해 인코딩되지 않는 프레임들 대신에 또는 이 프레임들 이외에 송신 동안 손실된 프레임들에 대한 프레임 대체의 실시에 유용할 수도 있다는 것을 이해한다.
비디오 디코더 (14) 는, 예를 들어, MPEG-1, MPEG-2, MPEG-4, H.263, H.264, 또는 MPEG-4, Part 10 표준 중 하나에 따라서, 수신된 프레임들 (24)(Ft -2, Ft -1, Ft +1, Ft+2) 각각을 디코딩하기 위한 표준 디코딩 기술들을 적용할 수도 있다. 상술된 바와 같이, 비디오 디코더 (14) 는 프레임을 압축된 포맷 또는 도메인으로, 예를 들어, 인트라 또는 인터 예측을 이용하여 훨씬 더 압축된 프레임들로 디코딩하기 위해 엔트로피 디코딩을 실시할 수도 있다. 비디오 디코더 (14) 는 프레임들을 픽셀 도메인으로, 예를 들어, 각각의 픽셀 위치와 연관된 픽셀 값들을 포함하는 프레임들로 압축해제하기 위해 인트라 또는 인터 예측을 실시할 수도 있다.
디코더 (14) 는 또한 FRUC 유닛 (22) 을 더 포함하며, FRUC 유닛은 모션 보상된 프레임 대체 (예를 들어, 모션 보상된 프레임 내삽 또는 외삽) 를 이용하여 도 1의 프레임 Ft'과 같은 적어도 하나의 추가 프레임을 생성할 수도 있다. 모션 보상된 프레임 대체의 맥락으로 본 개시에 설명되었지만, 본 기술은 모션 보상, 예를 들어, 프레임 평균을 이용하거나 이용하지 않고 다른 형태의 프레임 대체와 사용될 수도 있다. 이와 같이, 본 개시의 기술은 모션 보상된 프레임 대체 동안 경계 아티팩트들의 정정으로 제한되어서는 안된다. 모션 보상된 프레임 대체의 맥락의 기술들의 디스크립션은 오로지 설명의 목적이다. 디코딩된 비디오 프레임들 및 대체된 비디오 프레임은 출력 비디오 프레임 (26) 으로서 도 1에 나타내어진다. 비디오 디코더 (14) 는 디스플레이 디바이스 (도 1에 미도시) 를 구동하기 위해 비디오 프레임 (26) 을 출력할 수도 있다.
프레임 Ft'는 비디오 인코더 (12) 에 의해 인코딩되지 않았던 또는 채널 (19) 을 통한 송신 동안 손실된 프레임 Ft의 근사치이다. 이 방식으로, 비디오 디코더 (14) 는 실제 프레임 레이트 (또는 프레임 코딩 레이트) 를 증가된 프레임 레이트로 변환할 수도 있다. 이러한 프로세스는 때때로 프레임 레이트 업 컨버젼 (FRUC) 로도 지칭된다. 사실상, 디코더 (14) 는 비디오 인코더 (12) 에 의해 생성된 실제 프레임 레이트를 상향변환된 프레임 레이트로 증가시키기 위해서 추가적인 비디오 유닛들을 생성할 수도 있다. 예로서, 비디오 인코더 (12) 에 의해 생성된 실제 프레임 레이트가, 프레임 스킵핑을 이용하거나 이용하지 않고, 30 fps라면, 디코더 (14) 는, 유효 프레임 레이트를 30 fps로부터 60 fps 또는 120 fps로 증가시키기 위해서, 예를 들어, 내삽 또는 외삽에 의해 추가 프레임들을 대체하도록 구성될 수도 있다. 사실상, 추가 프레임들은, 비디오 인코더 (12) 의 기본 프레임 코딩 레이트가 더 커진 경우 포함될 수 있었던 프레임들 또는 스킵되었던 프레임들로 대체된다. 상술된 바와 같이, 비디오 인코더 (12) 에 의해 생성된 프레임 레이트는, (채널 (19) 의 감소된 대역폭 요건들의 결과로서) 소스 비디오 레이트보다 더 적은 기본 프레임 레이트 및/또는 예를 들어, 선택 스킵 유닛 (20) 에 의해 몇몇 프레임들의 선택적 스킵핑으로 인해 원하는 레이트 보다 더 적을 수도 있다.
대체 프레임 Ft'이 내삽을 통해 생성되는 경우, 비디오 디코더 (14) 는 기준 프레임들로서 사용될 수 있는 적어도 하나의 이전 프레임 및 적어도 하나의 미래 프레임을 이용하여 프레임 Ft'을 생성할 수도 있다. 추가 프레임 Ft'이 내삽 대신 외삽을 통해 생성되는 경우, 비디오 디코더 (14) 는 프레임 Ft' 이후 일시적으로 존재하는 하나 이상의 기준 프레임들 또는 프레임 Ft' 전에 일시적으로 존재하는 하나 이상의 기준 프레임들 중 어느 하나를 이용하여 프레임 Ft'를 생성한다. 어느 한 경우, 디코더 (14) 에 의해 사용된 프레임 대체는 스킵되거나 다른 배제된 프레임들의 콘텐츠를 근사화한다.
어떤 경우, 프레임 대체는 디코딩된 비디오 스트림 내의 시각 아티팩트들을 생성할 수도 있다. 예를 들어, 비디오 시퀀스의 프레임들이 비디오 프레임의 상부, 하부 및/또는 적어도 하나의 측면을 따르는 경계를 포함한다면, 프레임 대체는 경계에서 흔들림, 깜빡거림, 차단을 도입시킬 수도 있다. 비디오 시퀀스의 프레임들은 단색 컬러, 예를 들어, 블랙, 프레임의 주위의 적어도 일부를 둘레로 연장되는 경계를 포함할 수도 있다. 이러한 경계는, 예를 들어, MPEG-1 비디오 스트림으로부터 H.264 비디오 스트림으로의 비디오 스트림의 포맷 변환 동안 생성될 수도 있다. 예를 들어, 경계 변환 동안 이미지 사이즈가 변경될 수도 있다. 이미지 사이즈가 더 작게 만들어진 경우, 일부 블랙 또는 다른 컬러 픽셀들이 프레임에 추가되어 프레임의 사이즈를 특정 이미지 사이즈에 맞게 조정할 수도 있다. 블랙 또는 다른 컬러 픽셀들은 프레임의 일 측 상의 하나의 스트립으로서 또는 프레임의 모든 사이드들 상에 대칭으로 추가되어, 프레임 내에 "경계"를 생성한다.
모션 보상 프레임 대체의 경우, 모션 벡터들을 이용한 내삽 또는 외삽은 대체 프레임의 시각 아티팩트들을 생성할 수도 있다. 경계가 하나 이상의 기준 프레임들에 존재한다면, 예를 들어, 대체 프레임의 경계가 하나 이상의 기준 프레임들의 모션 벡터들의 함수로서 생성된 모션 벡터들을 이용하여 생성된다. 어떤 경우, 내삽 또는 외삽 모션 벡터들은 경계를 포함하는 픽셀들 (블록들) 의 블록들 각각에 대한 상이한 크기 및/또는 방향을 가질 수도 있다. 나머지 데이터가 대체 프레임을 위해 송신되지 않았기 때문에, 대체 프레임 내의 경계는 하나 이상의 기준 프레임들 내의 경계와 동일하지 않을 수도 있다. 대신에, 대체 프레임의 경계는 하나 이상의 기준 프레임들의 경계보다 더 두꺼운 폭, 하나 이상의 기준 프레임들의 경계보다 더 얇은 폭을 가질 수도 있고, 경계를 따라 두께가 변할 수도 있다. 예를 들어, 블록들 각각의 상이한 모션 벡터들은 대체 프레임의 경계로 하여금 어떤 위치들에서의 대체 프레임 내에서는, 예를 들어 대체 프레임의 어떤 블록들 내에서는 더 연장되게 하고, 그리고 다른 위치에서의 대체 프레임, 예를 들어, 대체 프레임의 다른 블록들로는 충분리 멀리 연장되지 않게 할 수도 있다. 결과적으로, 경계가 비디오 플레이백 동안 흔들림이 있는 것처럼 나타나며, 결코 바람직한 뷰잉 경험이 아니다. 모션 보상 내삽이 경계 아티팩트들을 생성할 수도 있지만, 다른 내삽/외삽 기술들 또한 경계 아티팩트들을 도입할 수도 있다. 예를 들어, 시간 프레임 평균의 경우, 기준 프레임이 10개 픽셀의 폭의 경계를 갖고 현재 프레임이 12개 픽셀의 폭을 갖는 폭 경계를 갖는다면, 내삽된 프레임은 몇 가지 문제점을 갖는다. 이것은 모션 보상에 의해 생성되는 것이 아니고 시간 평균에 의해서 생성된다.
본 개시는 대체 프레임의 경계에서 발생하는 아티팩트들을 정정하는 기술, 이 경계가 프레임의 에지를 따라 또는 프레임 내에 위치되는지를 기재한다. 본 개시의 기술에 따라서, 비디오 디코더 (14) 는 경계 아티팩트들에 대응하는 대체 프레임 내의 위치들을 식별하고 경계 아티팩트들을 정정할 수도 있다. 일 양태에서, 비디오 디코더 (14) 는 경계 아티팩트의 형태에 상이하게 기초하여 대체 비디오 프레임 내의 경계 아티팩트들을 다룰 수도 있다.
이렇게 하여, FRUC 유닛 (22) 은 적어도 2개의 상이한 형태의 경계 아티팩트들을 식별할 수도 있다. 일례로, FRUC 유닛 (22) 은 대체 프레임을 생성하는데 사용되는 기준 프레임 내에 존재하는 경계에 대응하는 대체 프레임 내의 제 1 위치를 식별할 수도 있다. 이러한 제 1 위치는, 그 위치가 기준 비디오 프레임 내에 실제로 존재하는 경계에 대응하기 때문에 "실제 경계 위치"로 지칭될 수도 있다. 실제 경계 위치들은, 경계가 모션 보상 예측으로 인해 대체 프레임으로 충분히 멀리 연장되지 않는 경우와 같이, 경계 아티팩트들에 대응할 수도 있다. 다른 말로, 실제 경계 위치들의 경계 아티팩트들은 기준 프레임에 존재하고 대체 프레임에 존재하지 않는 경계에 대응한다.
FRUC 유닛 (22) 은 또한, 대체 비디오 프레임 내에 존재하고 대체 프레임을 생성하는데 사용되는 기준 비디오 프레임 내에 존재하지 않는 경계에 대응하는 대체 프레임 내의 제 2 위치들을 식별할 수도 있다. 이러한 제 2 위치들은 또한, 위치들이 기준 비디오 프레임 내에 존재하지 않고, 예를 들어, 모션 보상 내삽으로 인해 대체 프레임으로 전파되는 경계에 대응하기 때문에 "오류 경계 위치들"로도 지칭될 수도 있다. 오류 경계 위치들은, 모션 보상 예측이 기준 프레임에서 보다 대체 프레임 내에서 더욱 경계를 연장시키는 경우와 같이, 경계 아티팩트들에 대응할 수도 있다. 다른 말로, 오류 경계 위치들의 경계 아티팩트들은 기준 프레임에 존재하지 않고 대체 프레임에 존재하는 경계에 대응한다.
FRUC 유닛 (22) 은 제 1 경계 아티팩트 정정 기술을 이용하여 실제 경계 위치들에서 경계 아티팩트들을 정정하고 제 2 경계 아티팩트 정정 기술을 이용하여 오류 경계 위치들에서 경계 아티팩트들을 정정할 수도 있다. 실제 경계 위치들은 경계가 존재하는 것으로 (하나 이상의 기준 비디오 프레임들에 존재하는 경계로서) 가정되는 위치들에 대응하기 때문에, FRUC 유닛 (22) 은 대체 프레임의 실제 경계 위치들을 기준 프레임들 중 적어도 하나의 프레임 내의 대응하는 위치들로 대체할 수도 있다. 예를 들어, FRUC 유닛 (22) 은 실제 경계 위치들 내의 픽셀들의 픽셀 값들을 기준 프레임들 중 하나의 프레임 내의 대응 위치에서 픽셀들의 픽셀 값들과 같게 설정할 수도 있다. 이 방식으로, FRUC 유닛 (22) 은, 예를 들어, 대체 프레임의 픽셀 값들을 내삽하거나 외삽한 후 픽셀 도메인에서 경계 아티팩트 정정을 실시한다. 다른 실시예로서, FRUC 유닛 (22) 은 실제 경계 위치 내에 위치된 대체 프레임의 블록들과 연관된 모션 벡터들을 0으로 설정하고, 예를 들어, 기준 프레임 내의 대응 위치들에서 블록들을 카피함으로써 모션 보상을 이용하여 압축해제 동안 경계 아티팩트들을 정정한다. 이와 같이, 제 1 경계 아티팩트 정정 기술은, 예를 들어, 대체 프레임의 픽셀 값들을 내삽하거나 외삽하기 전에 압축된 도메인에서 대안적으로 발생할 수도 있다.
FRUC 유닛 (22) 은 제 2 경계 아티팩트 정정 기술을 이용하여 오류 경계 위치들을 정정할 수도 있다. 제 2 경계 아티팩트 정정 기술은 픽셀 도메인 또는 압축해제 도메인 중 어느 하나에서 실시될 수도 있다. 픽셀 도메인에서, FRUC 유닛 (22) 은 하나 이상의 기준 프레임들 내의 하나 이상의 픽셀들을 이용하여 또는 내삽된 프레임 내의 이미 내삽된 픽셀들로부터 오류 경계 위치 내의 픽셀들 각각에 대한 교체 픽셀 값을 결정할 수도 있다. 예를 들어, FRUC 유닛 (22) 은, 대체 프레임에서 교체될 픽셀과 동일한 로우에 위치되고 기준 프레임의 경계에 바로 인접한 기준 프레임들 중 일 프레임의 2개의 픽셀들의 픽셀 값들을 평균함으로써 대체 프레임의 오류 경계 위치 내의 픽셀들 각각에 대한 교체 픽셀 값을 계산할 수도 있다. (예를 들어, 대체 프레임의 픽셀 값들을 내삽하거나 외삽하기 전) 압축된 도메인에서, FRUC 유닛 (22) 은 인트라 예측 모드를 선택적으로 선택하고 선택된 인트라 예측 모드를 이용하여 대체 프레임을 내삽함으로써 대체 프레임의 오류 경계 위치 내의 경계 아티팩트들을 정정할 수도 있다.
본 개시의 기술들은 비디오 프레임의 상, 하 및/또는 측면들을 따라 발생하는 경계의 맥락에서 설명될 것이지만, 본 개시의 기술은 비디오 프레임 내에 위치된 경계들에 대한 경계 아티팩트들을 정정하는데 사용될 수도 있다. 경계가 비디오 프레임의 외주를 따르는 대신 비디오 프레임 내에 존재할 수도 있도록, 예를 들어, 다양한 비디오 편집 기술들을 이용하여 2 이상의 비디오 시퀀스가 결합될 수도 있다. 픽처-인-픽처 (picture-in-picture) 의 경우에서, 예를 들어, 경계는 프레임 내, 예를 들어, 프레임의 오른쪽 상단에 위치된 정사각형 경계일 수도 있다.
도 1의 실시예에서, FRUC 유닛 (22) 이 비디오 디코더 (14) 내에 도시된다. 다른 구현에서, FRUC 유닛 (22) 은 비디오 후처리 모듈 (도 1에 미도시) 의 일부를 형성할 수도 있다. 비디오 후처리 모듈은 비디오 디코더 (14) 의 출력을 처리할 수도 있고, 평활화, 선명화, 밝기 조절, 및/또는 콘트라스트 증진뿐만 아니라 FRUC 유닛 (22) 에 관하여 상술된 FRUC 동작과 같은 다양한 처리 동작들을 실시할 수도 있다. 다른 대안으로서, FRUC 유닛 (22) 은, 비디오 디스플레이 프로세서 또는 예를 들어, 이동 멀티미디어 디바이스를 위한 이동 디스플레이 프로세서 (MDP) 디바이스의 일부를 형성할 수도 있다. 따라서, 비디오 디코더 (14) 내의 FRUC 유닛 (22) 의 구현이 예증의 목적으로 도 1 및 다른 도면들에 도시되고, 본 개시에 넓게 설명된 기술들의 한계를 고려하지 않는다.
시스템 (10) 은 비디오 전화, 비디오 스트리밍, 비디오 브로드캐스팅 등을 위해 구성될 수도 있다. 따라서, 상호 인코딩, 디코딩, 멀티플렉싱 (MUX) 및 디멀티플렉싱 (DEMUX) 컴포넌트가 채널 (19) 의 대향 단부에 제공될 수도 있다. 몇몇 구현에서, 비디오 인코더 (12) 및 비디오 디코더 (14) 가 소위 무선 비디오 전화기 또는 카메라 전화기와 같은 비디오 스트리밍, 비디오 브로드캐스트 수신, 및/또는 비디오 텔레포니를 위해 갖추어진 무선 이동 단말기들과 같은 비디오 통신 디바이스들에 제공될 수도 있다.
이러한 무선 통신 디바이스는 무선 통신, 오디오 코딩, 비디오 코딩, 및 사용자 인터페이스 특징을 지원하기 위해 다양한 컴포넌트들을 포함한다. 예를 들어, 무선 통신 디바이스는 하나 이상의 프로세서, 오디오/비디오 인코더들/디코더들 (CODEC들), 메모리, 하나 이상의 모뎀들, 증폭기, 주파수 변환기, 필터 등과 같은 송신-수신 (TX/RX) 회로를 포함할 수도 있다. 이외에도, 무선 통신 디바이스는 이미지 및 오디오 캡쳐 디바이스, 이미지 및 오디오 출력 디바이스, 연관 드라이버, 사용자 입력 미디어 등을 포함할 수도 있다.
비디오 인코더 (12), 비디오 디코더 (14) 또는 둘 모두는 상술된 바와 같이 무선 또는 유선 통신 디바이스에 포함될 수도 있다. 또한, 비디오 인코더 (12), 비디오 디코더 (14) 또는 둘 모두는 무선 또는 유선 통신 디바이스에, 또는 디지털 미디어 플레이어, 개인 디지털 보조기 (PDA), 디지털 텔레비전 등과 같은 디지털 비디오 애플리케션들을 지원하는 다른 형태의 디바이스에 포함될 수도 있는 집적 회로 칩 또는 칩셋과 같은 집적 회로 디바이스로서 구현될 수도 있다.
시스템 (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, Part 10과 같은 비디오 압축 표준에 따라서 인코딩된 비디오 데이터를 생성할 수도 있다. 도 1에 도시되지 않았지만, 비디오 인코더 (12) 및 비디오 디코더 (14) 는 각각 오디오 인코더 및 디코더로 통합될 수도 있고, 데이터 스트림의 오디오 및 비디오 부분들 둘 모두를 다루기 위해 적절한 하드웨어 및 소프트웨어 컴포넌트들을 포함할 수도 있다.
다시, 본 개시의 기술들이 비디오 프레임을 기준으로 하여 설명되었지만, 기술들은 슬라이스들, 블록들 또는 서브 블록들과 같은 다양한 다른 형태의 비디오 유닛들에 적용가능할 수도 있다. 그러나, 본 개시는 일반적으로 예증의 목적으로 비디오 프레임들에 대한 기술들의 적용을 설명하지만 본 개시에 대략적으로 기재된 이러한 기술들의 양태로 제한하는 것을 아니다.
도 2a는 비디오 디코더 (14) 의 추가 프레임의 내삽을 위한 기술의 예를 도시하는 다이어그램이다. 각각의 프레임들은 복수의 픽셀들의 블록들을 포함할 수도 있으며, 때때로 매크로블록들로 지칭된다. 일반적으로, 선택된 이전 프레임 Ft -N과 선택된 미래 프레임 Ft +M 사이의 내삽 프레임 Ft'내에 매크로블록 (MB; 28) 을 내삽하기 위해서, 비디오 디코더 (14) 는 이전 프레임 Ft -N의 MB (30) 와 미래 프레임 Ft+M의 대응 MB (32) 사이에 연장되는 모션 벡터 vNM에 의존할 수도 있다. 이 예에서, 시간 t는 시간 위치, 즉, 내삽될 추가 프레임이 비디오 스퀀스 내에 나타나는 시간을 나타낸다. 프레임 Ft -N 및 Ft +M은 각각 시간적으로 선행하는 프레임 (t-N) 및 뒤따르는 프레임 (t+M) 이고 추가 프레임 Ft'은 내삽을 요구한다. 도 2a의 실시예에서, 프레임 Ft -N 및 Ft +M은 추가 프레임 Ft'의 내삽을 위한 기준 프레임들로서 역할을 한다.
N 및 M은 시간 t에 관한 시간 오프셋을 나타내고 서로 동일하거나 동일하지 않을 수도 있다. 예를 들어, N=1 그리고 M=2인 경우, 프레임 Ft -N은 내삽된 프레임의 바로 앞의 프레임일 수도 있고, 프레임 Ft +M은 내삽된 프레임 이후 두번째 프레임일 수도 있다. 내삽에 있어서, N=1 그리고 M=1인 단순한 실시예에서, 프레임 Ft -N과 프레임 Ft +M 사이에 연장된 벡터 vNM이 (1:2 프레임 레이트 변환을 위해) 2로 제산되어 모션 벡터 vNM/2 및 -vMN/2를 생성하고 내삽되는 프레임 Ft'에서 대응하는 MB (28) 를 식별한다. 그러므로, 이 단순화된 실시예에서, MB (28) 의 위치는 모션 벡터 vNM/2 및 -vMN/2의 함수이고, 이 실시예를 위해서 N=1 그리고 M=1이다. Ft +m 부터 Ft까지의 모션 벡터는 -vNM/2일 필요는 없고, vNM의 처리된 버전, 즉, -vNM'/2일 수 있다. MB (28) 는 MB (30) 또는 MB (32) 에 대응하는 픽셀 값들의 세트, 또는 MB (30) 또는 MB (32) 의 픽셀 값들의 평균, 또는 MB (30) 또는 MB (32) 의 픽셀 값들의 선형 또는 비선형으로 필터링된 버전에 할당될 수도 있다. 더 높거나 낮은 프레임 상향변환, 예를 들어, 1:X 변환을 위해서, 모션 벡터들이 그에 따라 스케일링된다. 예를 들어, N 및 M 중 적어도 하나가 1과 같지 않은 다른 경우들에 있어서, 모션 추정을 통해 획득된 상이한 모션 벡터들 및 모션 벡터 처리가 사용될 수도 있다.
이외에도, 어떤 형태의 내삽에 있어서, FRUC 유닛 (22) 은 2 이상의 이전 프레임들 및 2 이상의 미래 프레임들과 같은 다수의 기준 프레임들에 의존할 수도 있다. 일반적으로 기준 프레임은 스킵된 프레임과 같은 프레임을 내삽하기 위해서 하나 이상의 다른 기준 프레임들과 결합하거나 단독으로 사용되는 프레임을 지칭한다. 내삽 프로세스에서, 하나 이상의 기준 프레임들에 존재하는 매크로블록들과 연관된 픽셀 값들이, 예를 들어, 도 2a에 도시된 바와 같이 삽입되는 추가 프레임의 대응 매크로블록들에서 픽셀 값들을 내삽하기 위해 사용될 수도 있다. 픽셀 값들은 휘도 및/또는 색차 픽셀 값들을 포함할 수도 있다.
일 실시예로서, 내삽된 매크로블록은 이전 프레임의 매크로블록의 픽셀 값들, 미래 프레임의 매크로블록의 픽셀 값들, 또는 이전 및 미래 프레임들의 대응 매크로블록들의 픽셀 값들의 평균과 동일한 픽셀 값들을 포함할 수도 있다. 내삽된 프레임의 매크로블록들은 도 2a에 도시된 바와 같이 기준 비디오 프레임들의 대응 블록들과 관련하여 보상된 모션일 수도 있다. 매크로블록들은 도 2a에 도시된 바와 같이 이전 프레임과 미래 프레임 사이에 연장된 모션 벡터들에 의해 식별될 수도 있다. 도 2a에 도시된 내삽의 예시는 일례이고, 본 개시에 대략적으로 기재된 기술들을 제한하는 것으로 여겨서는 안된다. 다양한 상이한 내삽 기술들은 본 개시에 따라서 프레임 대체를 위해 사용될 수도 있다.
도 2b는 비디오 디코더 (14) 의 추가 프레임의 외삽을 위한 기술의 예를 도시하는 다이어그램이다. 도 2b의 실시예에서, 2개의 이전 기준 프레임들 (Ft -M 및 Ft-N) 은 프레임 대체를 지원하기 위해 추가 프레임 Ft'을 외삽하는데 사용된다. 일반적으로, 선택된 이전 프레임 Ft -N과 선택된 이전 프레임 Ft -M 다음의 프레임 Ft'에서 MB (31) 를 외삽하기 위해서, 비디오 디코더 (14) 는 이전 프레임 Ft -N의 대응하는 MB (33) 와 이전 프레임 Ft -M의 대응하는 MB (35) 사이에 연장된 벡터
Figure pct00001
에 의존할 수도 있다. 이 실시예에서, t는 시간 위치, 즉 외삽될 추가 프레임이 비디오 시퀀스에 나타나는 시간을 나타낸다. 프레임 Ft -N 및 Ft -M은 각각 (t-N) 과 (t-M) 만큼 시간적으로 선행하는 프레임들이고, 추가 프레임 Ft'은 외삽을 요구한다. 도 2b의 실시예에서, 이전 기준 프레임들 (Ft -N 및 Ft -M) 은 추가 프레임 Ft'의 외삽을 위한 기준 프레임들로서 역할을 한다. 그러나, 3개 이상의 이전 기준 프레임 또는 하나 이상의 미래 기준 프레임들은 추가 프레임 Ft'을 외삽하는데 사용될 수도 있다. 다른 말로, 추가 프레임은 이전 프레임들 또는 미래 프레임들 각각을 이용하여 앞쪽으로 또는 뒤쪽으로 외삽될 수도 있다.
도 2a의 실시예에서와 같이, 도 2b의 N 및 M은 시간 t와 관련한 시간 오프셋을 나타내고, 서로 동일하거나 동일하지 않을 수도 있다. 예를 들어, N=2이고 M=1인 경우, 프레임 Ft -M은 외삽된 프레임의 바로 앞 프레임일 수도 있고 프레임 Ft -N은 외삽된 프레임 앞의 두개의 프레임들일 수도 있다. MB (31) 는 MB (33) 또는 MB (35) 에 대응하는 픽셀 값들의 세트, 또는 MB (33) 또는 MB (35) 의 픽셀 값들의 평균에 할당될 수도 있다. 외삽에 있어서, 내삽의 경우에서와 같이, 기준 프레임은 디코딩된 비디오 프레임들에 부가되는 추가 프레임을 외삽하기 위해서 하나 이상의 다른 기준 프레임들과 결합하거나 단독으로 사용되는 프레임을 지칭할 수도 있다.
외삽은, 도 2b에 도시된 바와 같이, 기준 프레임들의 대응 블록들로부터 모션 벡터 v를 외삽함으로써 모션 보상될 수도 있다. 외삽 프로세스에서, 하나 이상의 기준 프레임들에 존재하는 MB와 연관된 픽셀 값들은 외삽될 추가 프레임의 대응하는 MB의 픽셀 값들을 외삽하는데 사용될 수도 있다. 도 2b에 도시된 외삽의 실례는 일례이고, 본 개시에 대략적으로 기재된 기술들을 제한하는 것으로 여겨서는 안된다. 본 개시에 따른 프레임 대체를 위해서 다양한 상이한 외삽 기술들이 사용될 수도 있다.
도 3a 및 도 3b는 경계를 포함하는 예시적인 비디오 프레임들을 도시하는 다이어그램이다. 특히, 도 3a는 기준 프레임 (40) 의 좌변을 따르는 경계 (44) 를 포함하는 예시적인 기준 비디오 프레임 (40) 을 도시하며, 도 3b는 모션 보상된 프레임 대체, 예를 들어, 기준 프레임 (40) 을 이용한, 모션 보상된 내삽 또는 외삽을 이용하여 생성된 예시적인 대체 프레임 (42) 을 도시한다.
비디오 프레임 (40, 42) 은 복수의 픽셀들의 블록으로 분할될 수도 있으며, 때때로 매크로블록들 또는 블록들로 지칭된다. 도 3a 및 도 3b에 도시된 예에서, 비디오 프레임 (40, 42) 은 8개의 로우와 8개의 컬럼의 픽셀들의 블록들로 분할된다. 이와 같이, 비디오 프레임들 (40, 42) 각각은 픽셀들의 64개의 블록들을 포함한다. 비디오 프레임들 (40, 42) 는 더 많거나 더 적은 픽셀들의 블록들을 포함할 수도 있다. 픽셀들의 블록들은 통상적으로 비디오 프레임 내의 픽셀들의 인접한 부분을 나타낸다. 예를 들어, 블록들은 프레임의 8 픽셀 곱하기 8 픽셀 (8×8) 영역을 나타낼 수도 있다. 그러나, 블록들은 4×4, 4×8, 8×4, 8×16, 16×8, 16×16 등과 같은 다른 치수의 영역들에 대응할 수도 있다. 도 3a 및 도 3b에 도시된 예시적인 프레임 (40, 42) 에서, 블록들 모두가 동일한 사이즈, 예를 들어, 8×8 블록들이지만, 프레임 (40, 42) 의 블록들은 일정하지 않는 블록 사이즈를 가질 수도 있다.
도 3a의 기준 비디오 프레임 (40) 은 프레임의 적어도 좌변 부분을 따라 연장되는 경계 (44) 를 포함한다. 도 3a에 도시된 예에서, 경계 (44) 는 프레임 (40) 의 전체 좌변을 따라, 즉, 상부로부터 하부로 연장된다. 그러나, 다른 실시예에서, 경계 (44) 는 프레임 (40) 의 좌변의 일부, 예를 들어, 상부 또는 하부 절반만을 따라 연장될 수도 있다. 또한, 프레임 (40) 의 상, 하 및 우변의 적어도 일부를 따라 경계들이 제공될 수도 있지만 설명의 편의를 위해 도 3a에 도시하지 않았다. 경계 (44) 는 블랙 경계와 같은 단색 경계일 수도 있다. 다른 말로, 경계 (44) 내에 있는 픽셀들은 단색 경계를 생성하기 위해 모두 실질적으로 동일한 픽셀 값들을 가질 수도 있다. 경계 (44) 는 길이 및 폭을 갖는다. 도 3a에 도시된 실시예에서, 경계 (44) 는 프레임의 전체 사이드와 동일한 길이와 제 1 컬럼의 블록들의 블록 폭의 대략 4분의 1과 동일한 폭을 갖는다. 8×8 치수를 갖는 블록들에 있어서, 경계 (44) 의 길이는 64개의 픽셀들과 같고 경계 (44) 의 폭은 2개의 픽셀들과 같다. 기준 프레임 (40) 의 경계 (44) 의 폭은 경계의 전체 길이를 따라 실질적으로 동일한다. 그러나, 경계 (44) 는 임의의 길이 또는 폭을 가질 수도 있다.
모션 보상된 프레임 대체는 대체 프레임 (42) 을 생성하기 위해 모션 보상, 예를 들어, 모션 벡터를 이용한다. 대체 프레임 (42) 을 생성하기 위해, 예를 들어, 모션 벡터들은, 예를 들어, 도 2a의 내삽예에 기재된 바와 같이 이전 프레임과 후속 프레임 사이에 연장된 모션 벡터들의 함수로서 또는, 예를 들어, 도 2b의 외삽예에 기재된 바와 같이 2 이상의 이전 프레임들 사이에 연장된 모션 벡터들의 함수로서 대체 프레임 (42) 의 블록들에 대하여 생성될 수도 있다. 어떤 경우, 대체 프레임 (42) 에 대하여 생성된 모션 벡터들은 상이한 크기 및/또는 방향을 가질 수도 있는데, 내삽 또는 외삽에 사용되는 경우 도 3b에 도시된 바와 같이 경계를 따라 두께가 변하는 대체 프레임 (42) 내의 경계 (46) 를 생상한다.
도 3b에 도시된 바와 같이, 대체 프레임 (42) 의 경계 (46) 는 다른 위치들 보다 일부 위치들에서의 대체 프레임 (42) 내에서 더 연장되어 일정하지 않은 두께의 경계를 생성할 수도 있다. 대체 프레임 (42) 의 블록들의 제 1 컬럼을 따라, 예를 들어, 제 1, 제 3 및 제 5 로우의 블록들 내의 경계 (46) 의 일부는 기준 프레임 (40) 의 경계 (44) 와 동일한 경계 폭, 예를 들어, 블록 폭의 대략 4분의 1을 갖는다. 그러나, 대체 프레임 (42) 의 블록들의 제 1 컬럼의 다른 블록들은 기준 프레임 (40) 의 경계 (44) 의 폭과 비교하여 더 두꺼운 경계 폭을 갖거나 더 얇은 경계 폭을 갖는다. 예를 들어, 대체 프레임 (42) 의 제 1 컬럼의 제 4 로우의 블록은 전혀 임의의 경계를 갖지 않으며, 이는 기준 프레임 (40) 의 경우가 아니다. 다른 예에서와 같이, 대체 프레임 (42) 의 제 1 컬럼의 제 2 및 제 6 로우의 블록들 내의 경계 (46) 의 일부는 블록의 대략 2분의 1과 같은 경계 폭을 가지며 대체 프레임 (42) 의 제 1 컬럼의 제 7 로우의 블록 내의 경계의 일부는 블록의 대략 4분의 3의 경계 폭을 가지며, 이는 각각 기준 프레임 (40) 의 대응 블록들의 경계 폭의 약 2 배 및 3배이다. 대체 프레임 (42) 의 제 1 컬럼의 제 8 로우의 블록 내의 경계 (46) 의 일부는 제 8 로우의 블록보다 더 큰 경계 폭을 갖는다. 다른 말로, 대체 프레임 (42) 의 제 1 컬럼의 제 8 로우의 블록의 픽셀들 모두는 경계 픽셀들이고 대체 프레임 (42) 의 제 2 컬럼 및 제 8 로우의 블록의 픽셀들의 약 8분의 1이다.
프레임 (40, 42) 이 프레임의 시퀀스로서 디스플레이되는 경우, 경계는 대체 프레임 (42) 의 경계 (46) 로부터 현저하게 변한 기준 프레임 (40) 의 경계 (44) 로 인해 비디오 재생 동안 흔들리는 것처럼 나타난다. 결과는 보다 덜 바람직한 뷰잉 경험일 수도 있다. 본 개시에 기재된 경계 아티팩트 정정 기술은, 삭제가 아니라면, 대체 프레임 (42) 내의 경계 아티팩트들을 감소시킬 수도 있다. 사실상, 대부분의 경우, 경계 아티팩트들은 완전히 정정될 수도 있다. 다른 말로, 경계 아티팩트 정정 기술들은, 대체 프레임 (42) 내의 경계는 기준 프레임 (40) 의 경계 (44) 와 실질적으로 비슷하도록 경계 아티팩트들을 정정한다.
도 3a 및 도 3b에 도시된 실시예에서, 경계 (44) 가 프레임 (40, 42) 의 좌변을 따라 연장되더라도, 프레임 (40, 42) 내의 경계 (44) 는 추가로 또는 대안으로, 상기 언급된 바와 같이, 프레임 (40, 42) 의 다른 위치들에 존재할 수도 있다. 예를 들어, 경계는 프레임 (40, 42) 의 상부, 프레임 (40, 42) 의 하부, 프레임 (40, 42) 의 우변, 또는 그 결합을 따라 존재할 수도 있다. 더욱이, 경계는, 2개의 비디오 시퀀스의 비디오 편집 또는 픽처-인-픽처의 경우에서와 같이, 프레임 (40, 42) 내에 존재할 수도 있다.
도 4는 도 1의 비디오 디코더 (14) 의 실시예를 보다 상세하게 도시하는 블록도이다. 도 4의 실시예에서, 비디오 디코더 (14) 는 디코딩 유닛 (50), 프레임 대체 유닛 (52) 및 출력 프레임 버퍼 (54) 를 포함한다. 프레임 대체 유닛 (52) 은 본 개시에 따라서 대체된 프레임들 내의 경계 아티팩트들을 정정한다. 프레임 대체 유닛 (52) 은 비디오 디코더 (14) 의 FRUC 유닛 (22) 의 일부를 형성할 수도 있다. 도 4의 실시예에서, 프레임 대체 유닛 (52) 은 비디오 디코더 (14) 내에 존재한다. 그러나, 프레임 대체 유닛 (52) 은 다른 구현들에서, 비디오 디코더 (14) 의 외부, 예를 들어, 비디오 포스트-프로세서 모듈 또는 비디오 디스플레이 프로세서 또는 MDP 디바이스 내에 존재할 수도 있다.
비디오 디코더 (14) 는 송신 채널 (19) 로부터, 예를 들어, 프레임 버퍼로부터 (도 4에 미도시) 수신된 프레임들을 획득한다. 디코딩 유닛 (50) 은 적용가능한 코딩 프로세스를 이용하여 수신 프레임들을 디코딩하고 디코딩된 프레임들을 출력 프레임 버퍼 (54) 에 위치시킨다. 도 4에 도시된 실시예에서, 비디오 디코더 (50) 는 엔트로피 디코딩 유닛 (58), 인버스 양자화 유닛 (60), 인버스 변환 유닛 (62), 예측 유닛 (64) 및 합산기 (66) 를 포함한다.
엔트로피 디코딩 유닛 (58) 은 인코딩된 비디오 프레임들, 예를 들어, 수신된 프레임들 (24)(도 1) 을 획득하고, 수신된 비디오 프레임들 (24) 를 엔트로피 디코딩하여 복수의 블록들의 각각의 프레임 (또는 각각이 프레임의 일부, 예를 들어, 슬라이스) 에 대한 나머지 정보와 헤더 정보를 획득한다. 엔트로피 디코딩 유닛 (58) 은 가변 길이 코딩, 산술 코딩, 적응 산술 부호화 (context adaptive variable length coding; CAVLC), 적응 산술 부호화 (context adaptive binary arithmetic coding; CABAC), 또는 다른 엔트로피 코딩 기술과 같은 하나 이상의 엔트로피 코딩 기술들을 이용하여 수신된 프레임들 (24) 을 디코딩할 수도 있다. 상술된 바와 같이, 하나 이상의 양자화된 나머지 계수들의 형태로 존재할 수도 있는 나머지 정보는 예측 비디오 블록과 비디오 인코더 (12) 에 의해 인코딩된 원래의 비디오 블록 사이의 차의 양을 나타낸다. 헤더 정보는 인터 또는 인트라 예측을 사용할지 여부와 같은 예측 비디오 블록, 인트라 예측을 위해 사용할 인트라 예측 모드, 인터 예측에 사용하기 위한 하나 이상의 모션 벡터들을 생성하는데 필요한 정보를 포함할 수도 있다.
디코딩 유닛 (50) 은 예측 비디오 블록 및 잔여 비디오 블록을 생성하고 결합함으로써 비디오 블록들 각각을 재구성한다. 각각의 인터-예측 블록에 있어서, 예측 유닛 (64) 은 엔트로피 디코딩 유닛 (58) 으로부터 하나 이상의 모션 벡터들과 예를 들어, 출력 프레임 버퍼 (54) 로부터 하나 이상의 재구성된 비디오 프레임들을 획득하고 모션 보상된 예측 블록을 생성한다. 각각의 인트라-예측 블록에 있어서, 예측 유닛 (64) 은 인트라-예측 블록과 동일한 프레임의 하나 이상의 재구성된 비디오 블록들 및 인트라 예측 모드를 획득하고 인트라 예측 모드에 따라서 예측 블록을 생성한다.
디코딩 유닛 (50) 은, 인버스 양자화, 즉 양자화된 나머지 계수들을 역양자화하기 위한 인버스 인자화 유닛 (60) 과 인버스 변환, 예를 들어, 인버스 DCT 또는 인버스 4×4 또는 8×8 정수 변환을 적용하기 위한 인버스 변환 유닛 (62) 에 나머지 정보를 제공함으로써 나머지 블록을 생성할 수도 있다. 합산기 (66) 는 예측 유닛 (64) 에 의해 생성된 예측 블록을 인버스 변환 유닛 (62) 에 의해 출력된 나머지 블록과 합산하여 재구성된 비디오 블록을 형성한다. 재구성된 비디오 블록은 출력 프레임 버퍼 (54) 에 저장된다.
수신된 프레임 (24) 은 내삽 또는 외삽될 다양한 프레임들을 배제할 수도 있다. 이러한 프레임들은 비디오 인코더 (12) 에 의해 스킵되었던 프레임들, 인코더 비디오 (12) 의 기본 프레임 레이트에 의해 지원되지 않았던 프레임들, 및/또는 채널 (19) 을 통한 송신 동안 손실되었던 프레임들 또는 프레임들의 일부를 포함할 수도 있다. 공간-시간 품질을 촉진하기 위해, 프레임 대체 유닛 (52) 은, 예를 들어, 내삽 또는 외삽을 통해 하나 이상의 추가 비디오 프레임들을 생성하도록 구성될 수도 있다.
프레임 대체 유닛 (52) 은 재구성된 비디오의 공간-시간 품질을 향상시키기 위해 대체 프레임들을 비디오 출력 프레임 버퍼 (54) 에 가산한다. 프레임 대체 유닛 (52) 은, 예를 들어, 내삽 또는 외삽을 통해 프레임 대체를 실시하는데 있어서 기준 프레임들로서 사용하기 위해 디코딩 유닛 (50) 으로부터 프레임들을 수신할 수도 있다. 프레임 대체 유닛 (52) 은, 예를 들어, 모션 보상된 내삽 또는 외삽을 통해 프레임 대체를 위한 추가 프레임들을 생성하기 위해 디코딩 유닛 (50) 으로부터 수신된 기준 프레임들을 사용할 수도 있다. 실례로서, 프레임 대체 유닛 (52) 은, 예를 들어, 도 2a에 도시된 바와 같이, 추가될 대체 프레임 내에 블록들을 내삽하기 위해 이전 프레임과 미래의 프레임 사이에 연장된 모션 벡터들을 이용할 수도 있다. 다른 실례로서, 프레임 대체 유닛 (52) 은, 예를 들어, 도 2b에 도시된 바와 같이 추가될 대체 프레임 내에 블록들의 외삽을 위해 2 이상의 이전 프레임들 사이에 연장된 모션 벡터들을 이용할 수도 있다.
상술된 바와 같이, 프레임 대체, 및 특히 모션 보상된 프레임 대체는 대체 프레임 내에 경계 아티팩트들을 도입할 수도 있어, 시각 아티팩트들로 하여금 흔들림, 깜빡거림, 차단과 같은 비디오 시퀀스의 경계를 따르게 한다. 예를 들어, 도 3a 및 도 3b에 대하여 상술된 바와 같이, 모션 보상 내삽 또는 외삽은 대체 프레임의 주변 (또는 주변의 일부) 주위의 경계가 하나 이상의 기준 프레임들의 주변 주위의 경계보다 더 얇거나 더 두꺼워지게 하거나, 대체 프레임의 경계에 있어서 그 두께가 경계를 따라 변할 수도 있다. 다른 말로, 대체 프레임 내 경계는 하나 이상의 기준 프레임들 내의 경계와 동일하지 않다.
비디오의 시각 품질을 개선하기 위해서, 프레임 대체 유닛 (52) 은, 경계가 기준 프레임에 존재하는 경우 대체 프레임 내의 경계 아티팩트들을 정정할 수도 있다. 기준 프레임 내에 경계가 존재하지 않는다면, 프레임 대체 유닛 (52) 은 경계 아티팩트 정정을 실시하지 않을 수도 있다. 대신, 프레임 대체 유닛 (52) 은 종래의 프레임 대체 기술, 예를 들어, 내삽 또는 외삽을 이용하여 추가 프레임을 생성할 수도 있다. 이와 같이, 경계 아티팩트 정정은, 어떤 경우, 경계가, 예를 들어, 기준 프레임의 상, 하, 좌 또는 우를 따라, 기준 프레임에서 발견되는 경우에만 실시될 수도 있고, 또는 어떤 경우, (기준 프레임의 주변을 따르는 것이 아닌) 기준 프레임 내에서 실시될 수도 있다.
프레임 대체 유닛 (52) 은 경계 아티팩트에 대응하는 대체 프레임 내의 위치들을 식별하고 식별된 위치들 내의 경계 아티팩트들을 정정할 수도 있다. 프레임 대체 유닛 (52) 은 경계 아티팩트들을 포함하는 위치들을 식별하는 경계 아티팩트 식별 유닛 (68) 을 포함할 수도 있다. 경계 아티팩트 식별 유닛 (68) 은, 경계가 기준 비디오 프레임 내에 존재하고 대체 프레임 내에 존재하는 위치들에 대응하는, 실제 경계 위치들로 지칭되는 대체 프레임 내의 제 1 위치들을 식별할 수도 있다. 실제 경계 위치들은, 어떤 경우, 모션 보상된 프레임 대체를 발생시키는 경계 아티팩트들을 포함할 수도 있다. 예를 들어, 실제 경계 위치들은, 도 3b의 블록들의 제 4 로우 및 제 1 컬럼의 블록들에 도시된 바와 같이, 제거되거나 경계가 모션 보상된 예측으로 인해 대체 프레임으로 충분히 멀리 연장되지 않은 경계 아티팩트들을 포함할 수도 있다.
경계 아티팩트 식별 유닛 (68) 은 또한 오류 경계 위치들로도 지칭되는 대체 프레임 내의 제 2 위치들을 식별할 수도 있으며, 이는 경계가 대체 프레임 내에 존재하지만 기준 프레임 내에 존재하지 않는 위치들에 대응한다. 오류 경계 위치들은, 예를 들어, 도 3b의 블록들 중 제 1 컬럼의 제 2, 제 6, 제 7 로우 및 블록들 중 제 1 및 제 2 컬럼의 제 8 로우의 블록들에 도시된 바와 같이, 대응 경계 위치보다 대체 프레임으로 더 연장되는 경계와 같이 모션 보상된 내삽을 발생시키는 경계 아티팩트들을 포함한다.
경계 아티팩트 식별 유닛 (68) 은 대체 프레임의 블록들과 연관된 모션 벡터들 및/또는 기준 프레임 내에 존재하는 경계의 폭을 이용하여 실제 경계 위치들과 오류 경계 위치들을 식별할 수도 있다. 도 2a 및 도 2b에 관하여 상세하게 기재된 바와 같이, 대체 프레임은 하나 이상의 기준 프레임들을 이용하여 내삽 또는 외삽될 수도 있다. 특히, 프레임 대체 유닛은 하나 이상의 기준 프레임들과 연관된 모션 벡터들의 함수로서 대체 프레임의 블록들에 대한 모션 벡터들을 계산하고, 계산된 모션 벡터들을 이용하여 대체 프레임을 생성할 수도 있다. 대체 프레임 보다 시간적으로 앞에 위치된 제 1 기준 프레임과 대체 프레임보다 시간적으로 뒤에 위치된 제 2 프레임을 이용한 내삽의 경우, 프레임 대체 유닛 (52) 은 제 1 기준 프레임과 제 2 기준 프레임 사이에 연장된 모션 벡터의 2분의 1과 동일한 대체 프레임의 블록에 대한 모션 벡터를 생성할 수도 있다.
실제 및 오류 경계 위치들을 식별하기 위해서, 경계 아티팩트 식별 유닛 (68) 은 경계를 따라 픽셀들의 블록들을 분석한다. 프레임의 왼쪽 주변 또는 오른쪽 주변을 따라 위치된 경계의 경우, 예를 들어, 경계 아티팩트 식별 유닛 (68) 은 각각 프레임의 좌변 상의 컬럼들을 따라 또는 프레임의 우변 상의 컬럼들을 따라 픽셀들을 분석할 수도 있다. 반면에, 상부 주변 또는 하부 주변을 따라 위치된 경계의 경우, 경계 아티팩트 식별 유닛 (68) 은 각각 프레임의 상부 상의 로우를 따라 또는 프레임의 하부 상의 로우를 따라 픽셀들을 분석할 수도 있다.
경계 아티팩트 식별 유닛 (68) 은, 예를 들어, 임의의 경계 아티팩트가 블록 내에 존재하는지 여부를 결정하기 위해서 블록들과 연관된 모션 벡터들을 분석할 수도 있다. 프레임의 블록들 내 경계 아티팩트들을 식별하기 위해서, 경계 아티팩트 식별 유닛 (68) 은 좌 또는 우 경계에 대응하는 블록들 각각에 대한 블록들과 연관된 모션 벡터들의 x-컴포넌트를 분석하고 상 또는 하 경계에 대응하는 블록들 각각에 대한 블록들과 연관된 모션 벡터들의 y-컴포넌트를 분석한다.
좌 또는 우 경계를 따른 블록들에 있어서, 경계 아티팩트 식별 유닛 (68) 은 블록의 모션 벡터가 0과 동일한 x-컴포넌트를 갖는다면 경계 아티팩트가 없다는 것을 결정한다. 유사하게, 상 또는 하 경계를 따르는 블록들에 있어서, 경계 아티팩트 식별 유닛 (68) 은 블록의 모션 벡터가 0과 동일한 y-컴포넌트를 갖는다면 경계 아티팩트가 없는 것으로 결정한다. 이것은, 경계가 모션 보상을 통해 블록 내에서 더욱 전파되지 않을 것이기 때문이다. 대신, 대체 프레임의 블록은 기준 프레임으로부터 대응하는 블록의 사본일 것이다.
블록의 모션 벡터의 각각의 컴포넌트, 예를 들어, 좌 및 우 경계들에 대한 x-컴포넌트 및 상 및 하 경계들에 대한 y-컴포넌트가 0이 아닌 크기를 갖는다면, 경계 아티팩트 식별 유닛 (68) 은 블록 내의 실제 및/또는 오류 경계 위치들을 식별한다. 일 양태에서, 경계 아티팩트 식별 유닛 (68) 은 블록의 제 1 부분을 실제 경계 위치로서 식별하고 블록의 제 2 부분을 오류 경계 위치로서 식별할 수도 있다.
프레임의 좌변을 따라 위치된 경계에 있어서, 예를 들어, 경계 아티팩트 식별 유닛 (68) 은 실제 경계 위치들로서 블록의 픽셀들의 제 1 W 컬럼들을 식별할 수도 있고, W는 기준 프레임 내의 경계의, 픽셀들의, 폭과 동일하다. 블록의 모션 벡터의 x-컴포넌트가 포지티브 크기를 갖는다면, 예를 들어, 경계 아티팩트 식별 유닛 (68) 은 포지티브 크기와 동일하고 오류 경계 위치와 같이 실제 경계 위치에 인접한 블록의 픽셀들의 다수의 컬럼들을 식별할 수도 있다. 이 경우, 포지티브 크기 모션 벡터는 네거티브 x-방향에 위치된 기준 프레임의 블록을 가리킨다. 경계가 좌 경계이고 모션 벡터의 x-컴포넌트가 MVx와 같다면, 예를 들어, 경계 아티팩트 식별 유닛 (68) 은 컬럼들 W+1 내지 W+MVx를 오류 경계 위치들로서 식별할 수도 있다. 경계가 좌 경계이고 블록의 모션 벡터의 x-컴포넌트가 네거티브 크기인 경우, 예를 들어, 경계 아티팩트 식별 유닛 (68) 은 블록 내의 픽셀들 중 임의의 픽셀을 오류 경계 위치에 속하는 것으로서 식별하지 않을 수도 있다. 이것은, 경계가 모션 보상으로 인해 프레임 내에서 더욱 전파되지 않을 것이기 때문이다. 상술된 예에서, 모션 벡터의 x-컴포넌트의 포지티브 크기가 비디오 프레임의 우변을 향하는 모션에 대응하는 것으로 설명되고 모션 벡터의 x-컴포넌트의 네거티브 크기가 비디오 프레임의 좌변을 향하는 모션에 대응하는 것으로 설명되었지만, 상이한 모션 벡터 크기 (부호) 관습이 사용될 수도 있다. 예를 들어, 모션 벡터의 x-컴포넌트의 포지티브 크기가 비디오 프레임의 좌변을 향하는 모션에 대응하는 것으로 설명되었고 모션 벡터의 x-컴포넌트의 네거티브 크기가 비디오 프레임의 우변을 향하는 모션에 대응하는 것으로 설명된다.
프레임의 우변을 따라 위치된 경계에 있어서, 경계 아티팩트 식별 유닛 (68) 은 상이한 블록들을 분석하고 연관된 모션 벡터들의 x-컴포넌트를 상이하게 이용한다. 경계 아티팩트 식별 유닛 (68) 은 대체 프레임의 픽셀들의 마지막 W 컬럼들, 즉, 컬럼들 N 내지 N-W를 실제 경계 위치들로서 식별할 수도 있고, W는 기준 프레임의 경계의, 픽셀들에서의, 폭과 동일하고 N은 픽셀들의 컬럼들의 총 수와 동일하다. 블록의 모션 벡터의 x-컴포넌트가 네거티브 크기를 갖는다면, 경계 아티팩트 식별 유닛 (68) 은 네거티브 크기와 동일하고 오류 경계 위치와 같이 실제 경계 위치에 인접한 픽셀들의 다수의 컬럼들을 식별할 수도 있다. 경계가 우 경계이고 모션 벡터의 x-컴포넌트가 -MVx와 같다면, 예를 들어, 경계 아티팩트 식별 유닛 (68) 은 오류 경계 위치들과 같이 컬럼들 N-W-1 내지 N-W-MVx를 식별할 수도 있다. 경계가 우 경계이고 블록의 모션 벡터의 x-컴포넌트가 포지티브 크기를 갖는다면, 경계 아티팩트 식별 유닛 (68) 은 블록 내의 픽셀들 중 임의의 픽셀을 오류 경계 위치에 속하는 것으로서 식별하지 않을 수도 있다. 이것은, 경계가 모션 보상으로 인해 프레임 내에서 더욱 전파되지 않을 것이기 때문이다. 경계 아티팩트 식별 유닛 (68) 은 블록들과 연관된 모션 벡터들의 y-컴포넌트들을 이용하여 상 및 하 경계를 따라 비슷한 방식으로 실제 및 오류 경계 위치들을 식별할 수도 있다.
다른 양태들에서, 경계 아티팩트 식별 유닛 (68) 은, 상술된 블록의 일부분들 대신, 전체 블록들을 실제 경계 위치들 또는 오류 경계 위치들로서 식별할 수도 있다. 블록이 기준 프레임의 경계의 위치에 대응하는 임의의 픽셀들을 포함한다면, 경계 아티팩트 식별 유닛 (68) 은 블록을 실제 경계 위치로서 분류할 수도 있다. 예를 들어, 경계가 W의 픽셀들의 폭을 가진 좌 경계인 경우, 경계 아티팩트 식별 유닛 (68) 은 픽셀들의 첫번째 W의 컬럼들의 임의의 픽셀들을 실제 경계 위치들로서 포함하는 블록들을 식별할 수도 있다. W가 7과 같고 대체 프레임의 블록들이 4×4 블록들인 경우, 경계 아티팩트 식별 유닛 (68) 은 4×4 블록들의 첫번째 2개의 컬럼들을 실제 경계 위치들로서 식별한다. 다른 말로, W는, 예를 들어, 기본 단위 또는 N×N의 블록 사이즈에 대한 모션 보상을 위해 사용된 기본 단위의 사이즈의 가장 가까운 배수로 라운딩되며, 폭 W는 N의 가장 가까운 배수로 라운딩된다. 상기 예의 4×4 블록 사이즈에서, 7의 W 값은 8로 라운딩되어, 블록들의 2개의 컬럼들이 실제 경계 위치들로서 식별된다. 모션 보상의 기분 유닛의 사이즈에 의존하여, 상이한 라운딩이 발생할 수도 있다. 예를 들어, 모션 보상을 위한 기본 단위의 사이즈가 2×2 블록들인 경우, 경계의 폭 W는 2의 가장 가까운 배수로 라운딩된다. 2×2 블록의 경우, 7의 W는 여전히 8로 라운딩되지만 그 결과는 실제 경계 위치들로서 식별된 2×2 블록들의 4개의 컬럼들이다. 다른 예로서, 기본 모션 보상 유닛이 8×8인 경우, 5에 대한 W 값은 8로 라운딩되어, 8×8 블록들의 하나의 컬럼이 실제 경계 위치들로서 식별된다. 라운딩은, 임의의 비디오 아키텍처에 의해 라운딩되지 않는 경우 필요하지 않을 수도 있다. 그러나, 비디오 프로세서의 모션 보상 모듈의 이용을 위해서, 라운딩은 비디오 프로세서/디코더의 기본 모션 보상 유닛에 의존한다.
이와 같이, 경계의 적어도 하나의 픽셀이 기준 프레임 내 경계의 위치에 대응한다면, 심지어, 기준 프레임의 경계에 대응하지 않는 몇몇 픽셀들을 포함하는 블록들이 실제 경계 위치들로서 분류될 수도 있다. 경계 아티팩트 식별 유닛 (68) 은 도 5에 대하여 더욱 상세하게 설명되는 바와 같이 실링 (ceiling) 함수를 이용하여 실제 경계 위치들로서 식별되는 블록들의 컬럼들의 수를 결정할 수도 있다.
일부 경우들에서, 경계 아티팩트 식별 유닛 (68) 은, 실제 경계 위치들로서 기준 프레임 내 경계에 대응하는 임의의 픽셀들을 갖지 않는 블록들을 특징으로 한다. 기준 프레임 내 경계의 경계 폭이 다수의 블록 사이즈인 경우, 경계 아티팩트 식별 유닛 (68) 은 인접 블록을 실제 경계 위치로서 식별할 수도 있다. 이것은, 예를 들어, 아래에 상세하게 기재되는 바와 같이 인트라 예측을 이용하여 오류 경계 아티팩트들을 정정하는데 필수적일 수도 있다. 예를 들어, 경계가 단지 블록들의 3개의 컬럼들을 통해 연장되더라도, 12개의 픽셀들의 폭을 가진 좌 및 우 경계는, 예를 들어, 4×4 블록들의 경우에서, 실제 경계 위치들로서 식별되는 블록들의 4개의 컬럼들을 발생시킬 수도 있다.
경계 아티팩트 식별 유닛 (68) 은, 블록과 연관된 모션 벡터가 경계로 하여금 기준 프레임 내 경계의 위치들에 대응하는 임의의 픽셀들을 포함하지 않는 블록으로 전파되게 하는 경우, 블록을 오류 경계 위치들로서 식별할 수도 있다. 아티팩트들에 대응하는 (이 경우에서 블록들) 오류 경계 위치들을 식별하기 위한 예는 다음과 같이 설명될 수 있다. 비디오 유닛의 좌 경계에 있어서, 경계 아티팩트 식별 유닛 (68) 은 비디오 유닛의 좌변부터 시작하는 로우의 각각의 블록을 처리한다. K는 분석되는 로우의 블록들의 수를 나타내고 (즉, 블록들 1 내지 K가 분석됨), R은 블록들의 로우의 총 수를 나타낸다고 하자. 블록들 1 내지 K 각각에 있어서, 경계 아티팩트 식별 유닛 (68) 은 블록과 연관된 모션 벡터를 획득한다. 경계 아티팩트 식별 유닛 (68) 은, 기준 프레임으로부터 페치될 블록, 예를 들어, 대체 프레임의 블록과 연관된 모션 벡터를 이용한 모션 보상 동안 획득된 블록의 왼쪽 코너의 수평 픽셀 좌표를 계산한다. 수평 픽셀 좌표가 좌 경계 폭보다 작다면, 경계 아티팩트 식별 유닛 (68) 은 이 블록을 오류 경계 위치로서 식별한다. 다른 말로, 경계 아티팩트 식별 유닛 (68) 은 그 블록을, 예를 들어, 인트라 예측 또는 다른 픽셀 교체 방법을 거쳐 아티팩트 정정을 요구하는 위치로서 식별한다. 추가로, 경계 아티팩트 식별 유닛 (68) 은 아티팩트 위치 맵의 블록의 대응 위치를 예를 들어 '1'로 라벨링할 수도 있으며, 이는 맵 상의 위치에 대응하는 블록이 경계 아티팩트 정정을 요구한다는 것을 나타낸다. 경계 아티팩트 식별 유닛 (68) 은 동일한 로우의 다음 블록으로 이동하고 로우의 모든 K개의 블록들이 분석될 때까지 동일한 프로세스를 반복할 수도 있다. 제 1 로우의 K개의 블록들을 분석한 후, 경계 아티팩트 식별 유닛 (68) 은, 모든 로우들이 분석될 때까지 다음 로우의 K개의 블록들을 분석할 수도 있다. 모든 로우가 분석된 후, 1이 존재한다면, 경계 아티팩트 식별 유닛 (68) 은 우 경계로 이동할 수도 있다.
우 경계에 있어서, 경계 아티팩트 식별 유닛 (68) 은 유사한 절차를 따른다. 경계 아티팩트 식별 유닛 (68) 은 비디오 유닛의 우 경계에 있는 로우의 최종 P개의 블록들을 처리할 수도 있다. 각각의 블록에 있어서, 경계 아티팩트 식별 유닛 (68) 은 블록의 모션 벡터를 먼저 획득한다. 경계 아티팩트 식별 유닛 (68) 은 이후 모션 보상 동안 기준 프레임으로부터 패치될 블록의 오른쪽 코너의 수평 픽셀 좌표를 계산한다. 수평 픽셀 좌표가 우 경계의 시작 좌표 (예를 들어, 우 경계의 맨 왼쪽 좌표) 보다 더 크다면, 경계 아티팩트 식별 유닛 (68) 은 그 블록을, 아티팩트 정정을 요구하고 위치 맵의 블록의 대응 위치를 "1"로 라벨링하는 구역으로서 식별한다. 경계 아티팩트 식별 유닛 (68) 은 동일한 로우의 이전 블록으로 이동하고 P개의 블록들에 대한 분석을 반복할 수도 있다. 제 1 로우의 P개의 블록들을 분석한 후, 경계 아티팩트 식별 유닛 (68) 은 모든 R개의 로우가 분석될 때까지 다음 로우의 P개의 블록들을 분석할 수도 있다. 모든 로우들이 분석된 후, 1이 존재한다면, 경계 아티팩트 식별 유닛 (68) 은 북쪽 (또는 상) 경계로 이동할 수도 있다.
북쪽 경계에 있어서, 경계 아티팩트 식별 유닛 (68) 은 비슷한 절차를 따른다. 경계 아티팩트 식별 유닛 (68) 은 비디오 유닛의 북면에 있는 컬럼의 각각의 블록의 처리를 시작할 수도 있다. T가 분석되는 컬럼 내 블로들의 수를 나타내고, C가 블록들의 컬럼들의 총수라고 하자. 경계 아티팩트 식별 유닛 (68) 은 비디오 유닛의 북면에 있는 컬럼의 첫번째 T개의 블록들을 처리한다. 각각의 블록에 있어서, 경계 아티팩트 식별 유닛 (68) 은 블록의 모션 벡터를 먼저 획득할 수도 있다. 경계 아티팩트 식별 유닛 (68) 은 모션 보상 동안 기준 프레임으로부터 페치될 블록의 하부의 수직 픽셀 좌표를 계산할 수도 있다. 수직 픽셀 좌표가 상부 경계의 가장 하부 또는 가장 남쪽 경계 좌표보다 더 크다면, 경계 아티팩트 식별 유닛 (68) 은 그 블록을 아티팩트 정정이 필요한 구역으로 식별하고 위치 맵 내 블록의 대응 위치를 "1"로 라벨링한다. 경계 아티팩트 식별 유닛 (68) 은 동일한 컬럼 내 다음 블록으로 이동하고 컬럼의 T개의 블록들이 분석될 때까지 동일한 프로세스를 반복할 수도 있다. 모든 C개의 컬럼들의 T개의 블록들이 분석된 후, 1이 존재한다면, 경계 아티팩트 식별 유닛 (68) 은 남쪽 경계로 이동할 수도 있다.
남쪽 경계에서와 유사하게, 각각의 블록에 있어서, 경계 아티팩트 식별 유닛 (68) 은 블록의 모션 벡터를 먼저 획득할 수도 있다. 경계 아티팩트 식별 유닛 (68) 은 모션 보상 동안 기준 프레임으로부터 페치될 블록의 북쪽 (상부) 의 수직 픽셀 좌표를 계산할 수도 있다. 수직 픽셀 좌표가 남쪽 경계의 가장 상부 또는 가장 북쪽 경계 좌표보다 더 작다면, 경계 아티팩트 식별 유닛 (68) 은 그 블록을 아티팩트 정정이 필요한 구역으로서 식별하고 위치 맵 내의 블록의 대응 위치를 "1"로 라벨링할 수도 있다. 경계 아티팩트 식별 유닛 (68) 은 동일한 컬럼 내 다음 블록으로 이동할 수도 있고 컬럼의 B개의 블록들이 분석될 때까지 동일한 프로세스를 반복할 수도 있다.
상술된 프로세는 오류 경계 위치들이 식별될 수도 있는 방법의 일례이다. 프로세스는 본원에 기재된 기술들을 제한하는 것으로 여겨져서는 안된다. 예를 들어, 오류 경계 식별은 아티팩트들이 식별되는 순서에 의존하지 않는다. 다른 말로, 프로세스는 남쪽 경계, 북쪽 경계, 좌 경계 또는 우 경계로 시작할 수도 있다. 다른 오류 경계 위치 식별 기술들이 사용될 수도 있다. 예를 들어, 경계 승인 식별 유닛 (68) 은 픽셀 좌표 대신 또는 픽셀 좌표 이외에 블록과 연관된 모션 벡터들에 기초하여 경계 위치들을 식별할 수도 있다. 경계가 좌 경계이고, 예를 들어, 모션 벡터의 x-컴포넌트가 포지티브 MVx와 동일하다면, 경계 아티팩트 식별 유닛 (68) 은, MVx가 블록 사이즈로 승산된 실제 경계 위치들을 식별하도록 사용된 실링 함수의 출력보다 더 큰 경우 오류 경계 위치로서 분석되는 현재 블록에 인접하게 위치되는 블록을 식별할 수도 있다.
프레임 대체 유닛 (52) 은 기본 프레임의 경계와 실질적으로 비슷한 대체 프레임 내에서 경계를 생성하기 위해 본 개시의 기술들을 이용하여 식별된 위치들을 정정함으로써, 경계의 시간적 연속성을 유지하고 경계의 흔들림을 제거한다. 프레임 대체 유닛 (52) 은 대체 프레임 내에서 경계 아티팩트들을 정정하는 경계 아티팩트 정정 유닛 (73) 을 포함한다. 경계 아티팩트 정정 유닛 (73) 은, 각각 실제 경계 위치들과 오류 경계 위치들에서 경계 아티팩트들을 정정하는 실제 경계 정정 유닛 (70) 과 오류 경계 정정 유닛 (72) 을 포함할 수도 있다. 어떤 경우, 경계 정정 유닛 (70, 72) 은 픽셀 도메인 내 식별된 위치들의 경계 아티팩트들을 정정할 수도 있다. 다른 말로, 경계 정정 유닛 (70, 72) 은 픽셀-바이-픽셀을 기반으로 식별된 위치들 내의 픽셀 값들을 조정할 수도 있다.
예를 들어, 대체 프레임 내 실제 경계 위치들, 즉, 대체 프레임을 생성하는데 사용된 기준 프레임 내에 존재하고 대체 프레임 내에 존재하는 경계에 대응하는 위치들에서 아티팩트들을 정정하기 위해서, 실제 경계 정정 유닛 (70) 은 대체 프레임의 실제 경계 위치들 내의 픽셀 값들 각각을 기준 프레임 내 대응 위치들로부터의 픽셀 값들로 교체할 수도 있다. 사실상, 기준 프레임의 경계는 실제 경계 정정 유닛 (70) 에 의해 대체 프레임의 경계로 복사된다. 다른 예로서, 실제 경계 정정 유닛은 실제 경계 위치의 픽셀 값들 각각을 기준 프레임의 경계의 컬러와 연관된 픽셀 값들과 동일하게 설정할 수도 있다.
픽셀 도메인의 오류 경계 위치들을 정정하기 위해서, 오류 경계 정정 유닛 (72) 은, 하나 이상의 기준 프레임들의 하나 이상의 픽셀 값들을 이용하여, 오류 경계 위치들, 즉, 대체 비디오 프레임 내에 존재하고 대체 프레임을 생성하는데 사용되는 기준 비디오 프레임 내에 존재하지 않는 경계에 대응하는 위치들 내의 픽셀들 각각에 대한 교체 픽셀 값을 계산할 수도 있다. 어떤 경우, 오류 경계 정정 유닛 (72) 은 대체되는 대체 프레임의 픽셀의 로우에 대한 대응 로우에 위치되고 기준 프레임의 경계에 바로 인접한 기준 프레임의 2개의 픽셀들의 픽셀 값들의 평균이 되도록 오류 경계 위치 내의 픽셀들 각각에 대한 교체 픽셀 값들을 계산할 수도 있다.
예를 들어, 4개의 픽셀들의 폭을 가진 좌 경계에 있어서, 오류 경계 정정 유닛 (72) 은 경계에 바로 인접한 기준 프레임의 제 1 로우의 제 5 및 제 6 픽셀과 연관된 픽셀 값들을 평균함으로써 대체 프레임의 제 1 로우의 제 5 픽셀에 대한 교체 픽셀 값을 계산할 수도 있다. 비슷하게, 오류 경계 정정 유닛 (72) 은 기준 프레임의 제 2 로우의 제 5 및 제 6 픽셀 등과 연관된 픽셀 값들을 평균함으로써 대체 프레임의 제 2 로우의 제 5 픽셀에 대한 교체 픽셀 값을 계산할 수도 있다. 오류 경계 정정 유닛 (72) 은 기준 프레임으로부터의 더 많거나 더 적은 픽셀 값들을 이용하여, 픽셀 프레임 내의 상이한 위치들, 예를 들어, 상이한 로우 또는 컬럼들로부터의 픽셀 값들을 이용하여, 또는 기준 프레임으로부터의 픽셀 값들 및 대체 프레임의 이전에 계산된 픽셀 값들의 결합을 이용하여 교체 픽셀들을 계산할 수도 있다. 이 방식으로, 프레임 대체 유닛 (52) 은 제 1 정정 기술을 이용하여 실제 경계 위치들에서 경계 아티팩트들을 정정하고 제 2 정정 기술을 이용하여 오류 경계 위치의 경계 아티팩트들을 정정하여 기준 프레임의 경계와 실질적으로 동일한 대체 프레임의 경계를 생성한다.
다른 경우들에서, 프레임 대체 유닛 (52) 은, 예를 들어, 대체 프레임에 대해 생성되는 픽셀 값들에 우선하여, 압축된 도메인의 식별된 위치들을 정정할 수도 있다. 상술된 바와 같이, 압축된 도메인 내의 식별된 위치들은 블록의 픽셀들의 일부분들 대신 픽셀들의 전체 블록들일 수도 있다. 실제 경계 위치들로서 식별된 대체 프레임의 블록들, 예를 들어, 기준 프레임의 경계에 대응하도록 결정되는 적어도 하나의 픽셀을 포함하는 블록들에 있어서, 실제 경계 정정 유닛 (70) 은 블록들과 연관된 모션 벡터들을 0으로 설정함으로써 경계 아티팩트들을 정정할 수도 있다. 블록들과 연관된 모션 벡터들을 0으로 설정하는 것은 프레임 대체 유닛 (52) 으로 하여금 모션 보상을 이용하여 추가 프레임의 블록들을 생성하기 위해 기준 프레임의 대응 블록을 복사함으로써 대체 프레임의 블록을 생성하게 한다. 이와 같이, 실제 경계 위치들에 대응하는 대체된 프레임의 블록들은 모션 보상을 이용한 추가 프레임을 구성한 후 기준 프레임의 경계와 동일한 경계를 가질 것이다.
압축된 도메인에서 오류 경계 위치들, 예를 들어, 기준 프레임 내에 존재하지 않지만 기준 프레임의 경계에 대응하는 임의의 픽셀들을 포함하지 않는 대체된 프레임 내의 경계에 대응하는 블록의 적어도 하나의 픽셀을 포함하는 블록들을 정정하기 위해서, 오류 경계 정정 유닛 (72) 은 인트라 예측 모드를 선택하고 선택된 인트라 예측 모드를 이용하여 블록의 픽셀 값들을 결정함으로써 아티팩트들을 정정할 수도 있다. 4×4 블록들의 경우, 예를 들어, 오류 경계 정정 유닛 (72) 은 코딩 기술에서 이용가능한 인트라 예측 모드들 중 하나를 선택할 수도 있다. H.264에 있어서, 예를 들어, 오류 경계 정정 유닛 (72) 은 다음과 같은 9개의 인트라 예측 모드들: 수직 모드, 수평 모드, DC 모드, 대각선의 다운라이트 모드, 대각선의 다운레프트 모드, 수직 라이트 모드, 수평 다운 모드, 수직 레프트 모드 및 수평 업 모드 중 하나를 선택할 수도 있다. 이 방식으로, 비디오 디코더 (14) 은 적어도 2개의 상이한 유형들의 경계 아티팩트들을 식별하고 상이한 방식으로 경계 아티팩트들을 정정할 수도 있다.
일부 양태들에서, 경계 아티팩트 예측 유닛 (56) 은 픽셀 도메인 또는 압축된 도메인 중 어느 하나의 경계 아티팩트들를 정정할 수도 있다. 이 경우, 경계 아티팩트 정정 유닛 (56) 은, 예를 들어, 최적의 품질-전력 트레이드오프를 달성하기 위해서, 픽셀 도메인 또는 압축된 도메인의 경계 아티팩트들을 정정할지 여부를 적응적으로 선택할 수도 있다. 픽셀 도메인의 경계 아티팩트들을 정정하는 것은 압축된 도메인의 경계 아티팩트들을 정정하는 것보다 더 양호한 품질을 발생시킨다. 그러나, 압축된 도메인의 경계 아티팩트들을 정정하는 것은 특정 픽셀의 액세스를 요구하지 않고 보다 적은 전력 소모 및 MIPS를 이용하여 실시될 수도 있다. 일례로서, 경계 아티팩트 정정 유닛 (73) 은, 인트라 예측을 위해 이용가능한 인과적 픽셀들이 없는 경우 픽셀 도메인의 경계 아티팩트 정정을 실시할 수도 있고 인과적 픽셀들이 인트라 예측을 위해 이용가능한 경우 압축된 도메인의 경계 아티팩트 정정을 실시할 수도 있다.
비디오 출력 프레임 버퍼 (54) 의 디코딩 프레임들 및 대체 프레임들이 디스플레이 (도 4에 미도시) 와 같은 비디오 출력 디바이스를 구동하는데 사용될 수도 있다. 예로서, 비디오 디코더 (14) 는 디지털 비디오 능력을 포함하는, 이동 무선 전화기, 디지털 미디어 플레이어, 개인 디지털 보조기 (PDA), 디지털 텔레비전 등과 같은 무선 통신 디바이스를 포함하는 다양한 디바이스들 중 임의의 디바이스의 일부를 형성할 수도 있다. 대안으로, 출력 프레임 버퍼 (54) 의 프레임이 아카이브 또는 디스플레이를 위해 하나 이상의 다른 디바이스들로 송신될 수도 있다. 어느 한 경우, 프레임 대체 유닛 (52) 에 의해 생성된 대체 프레임들은, 예를 들어, 비디오 클립의 일시적 시각 품질을 향상시키기 위해서, 디코딩 유닛 (50) 에 의해 디코딩된 보충 프레임들이다.
도 5는 본 개시의 기술에 따라서 대체 프레임의 경계 아티팩트들을 정정하는 프레임 대체 유닛 (52) 의 예시적인 동작을 도시하는 흐름도이다. 프레임 대체 유닛 (52) 은 경계가 기준 프레임에 존재하는 것을 결정한다 (80). 경계가 기준 프레임의 주변 (예를 들어, 프레임의 상, 하, 좌변 및/또는 우변을 따라) 의 적어도 일부분의 주위에 존재할 수도 있다. 대안으로, 또는 추가적으로, 경계는, 함께 편집된 하나의 비디오 시퀀스보다 더 많은 비디오 시퀀스를 포함하는 프레임에 대한 케이스이거나 픽쳐-인-픽쳐 시나리오에 존재할 수도 있는 것처럼, 예를 들어, 주변을 따르지 않고 기준 프레임 내의 어디든 위치할 수도 있다.
기준 프레임 내의 경계를 식별할 경우, 경계 아티팩트 식별 유닛 (68) 은, 경계가 기준 비디오 프레임 내에 존재하고 대체 프레임 내에 존재하는 위치들에 대응하는 실제 경계 위치들로 지칭되는, 대체 프레임 내의 첫번째 위치들을 식별한다 (82). 실제 경계 위치들은 모션 보상된 프레임 대체로 인한 아티팩트들을 포함할 수도 있다. 예를 들어, 실제 경계 위치들은, 도 3b의 블록들의 제 4 로우 및 제 1 컬럼의 블록에 나타낸 바와 같이, 경계가 제거되거나 모션 보상된 예측으로 인해 대체 프레임 내부로 충분히 멀리 연장되지 않는 경계 아티팩트들을 포함할 수도 있다.
경계 식별 유닛 (68) 은 기준 프레임 내의 경계의 폭에 기초하여 대체 프레임 내의 실제 경계 위치들을 식별할 수도 있다. 일 양태에서, 경계 식별 유닛 (68) 은 기준 프레임 내의 경계의 폭에 기초하여 각각의 블록을 분석하고 블록의 일부를 실제 경계 위치로서 식별할 수도 있다. 예로써, 기준 프레임의 경계가 기준 프레임의 좌변을 따라 위치된다면, 경계 아티팩트 식별 유닛 (68) 은 대체 프레임의 블록들의 제 1 컬럼의 블록들의 픽셀들의 제 1 W 컬럼들을 실제 경계 위치들로서 식별할 수도 있으며, W는 기준 프레임 내의 경계의, 픽셀들에서의, 폭과 같다. 다른 양태에서, 경계 식별 유닛 (68) 은, 블록이 기준 프레임 내의 경계에 대응하지 않는 픽셀들을 포함하더라도, 전체 블록들을 실제 경계 위치들로서 식별할 수도 있다. 예를 들어, 기준 프레임의 경계가 좌 경계인 경우, 경계 아티팩트 식별 유닛 (68) 은 실링 함수, 예를 들어, 실링 (x, y) 을 이용한 실제 경계 위치들인 대체 프레임의 블록들의 컬럼들의 수를 계산할 수도 있다. 실링 함수의 출력은 y로 제산된 x를 다음 최대 정수값까지 라운딩한다. 예를 들어, (7, 4) 의 실링 = 2이다. 이와 같이, 7개의 픽셀들의 경계의 폭을 가진 좌 또는 우 경계는, 예를 들어, 4×4 블록들의 경우, 실제 경계 위치들로서 식별되는 블록들의 2개의 컬럼들을 발생시킨다.
어떤 경우, 경계 아티팩트 식별 유닛 (68) 은 실제 경계 위치들처럼 기준 프레임의 경계에 대응하는 어떤 픽셀들도 갖지 않는 블록들을 특징으로 한다. 기준 프레임의 경계의 경계 폭이 다수의 블록 사이즈인 경우, 경계 아티팩트 식별 유닛 (68) 은 인접한 블록을 실제 경계 위치로서 식별할 수도 있다. 이것은, 예를 들어, 아래에 상세하게 기재되는 바와 같이 인트라 예측을 이용하여 오류 경계 아티팩트들을 정정하는데 필수적일 수도 있다. 예를 들어, 12개의 픽셀들의 폭을 가진 좌 또는 우 경계는, 경계가 단지 블록들의 3개의 컬럼들을 통해 연장되더라도, 예를 들어, 4×4 블록들의 경우, 실제 경계 위치들로서 식별되는 블록들의 4개의 컬럼들을 발생시킬 수도 있다.
경계 아티팩트 식별 유닛 (68) 은 또한, 경계가 대체 프레임에 존재하지만 기준 프레임 내에 존재하지 않는 위치들에 대응하며, 오류 경계 위치들로 지칭되는 대체 프레임 내의 제 2 위치들을 식별한다 (84). 오류 경계 위치들은, 예를 들어, 도 3b의 블록들의 첫번째 컬럼의 제 2, 제 6, 제 7 및 제 8 로우의 블록에 나타낸 바와 같이, 기준 프레임 내 대응 경계 위치보다 대체 프레임으로 더욱 연장되는 경계와 같이, 모션 보상된 내삽으로 인한 경계 아티팩트들을 포함한다.
경계 식별 유닛 (68) 은 블록들과 연관된 추정된, 내삽된 또는 처리된 모션 벡터들과 기준 프레임 내의 경계의 폭에 기초하여 대체 프레임 내의 오류 경계 위치들을 식별할 수도 있다. 일 양태에서, 경계 식별 유닛 (68) 은 각각의 블록을 분석하고 블록의 일부를 기준 프레임 내의 경계의 폭과 각각의 블록의 모션 벡터에 기초한 오류 경계 위치로서 식별할 수도 있다. 경계가 좌 경계이고 모션 벡터의 x-컴포넌트가 MVx와 같다면, 예를 들어, 경계 아티팩트 식별 유닛 (68) 은 컬럼들 W+1 내지 W+MVx을 오류 경계 위치들로서 식별할 수도 있으며, W는 기준 프레임 내 경계의 폭이다. 다른 양태에서, 경계 식별 유닛 (68) 은 전체 블록을 오류 경계 위치들로서 식별할 수도 있다. 블록과 연관된 모션 벡터가 경계로 하여금 기준 프레임의 경계의 위치들에 대응하는 임의의 픽셀들을 포함하지 않는 블록들로 전파되게 하는 경우, 경계 아티팩트 식별 유닛 (68) 은 블록들을 오류 경계 위치들로서 식별할 수도 있다. 예를 들어, 경계가 좌 경계라면, 모션 보상 동안 기준 프레임으로부터 페치된 블록의 왼쪽 코너의 수평 픽셀 좌표가 좌 경계 폭보다 작을 경우, 경계 아티팩트 식별 유닛 (68) 은 그 블록을 오류 경계 위치로서 식별한다.
실제 경계 정정 유닛 (70) 은 실제 경계 위치들의 경계 아티팩트들을 정정한다 (86). 어떤 경우, 실제 경계 정정 유닛 (70) 은 픽셀 영역의 식별된 실제 경계 위치들의 경계 아티팩트들을 정정한다. 예를 들어, 대체 프레임의 실제 경계 위치들의 아티팩트들을 정정하기 위해서, 실제 경계 정정 유닛 (70) 의 대체 프레임의 실제 경계 위치들 내의 픽셀 값들 각각을 기준 프레임의 대응 위치들로부터의 픽셀값들로 교체할 수도 있다. 이 방식에서, 기준 프레임의 경계는 대체 프레임의 경계로 복사된다. 다른 경우, 실제 경계 정정 유닛 (70) 은 압축된 도메인의 실제 경계 위치들의 경계 아티팩트들을 정정한다. 예를 들어, 실제 경계 정정 유닛 (70) 은 실제 경계 위치들로서 식별된 블록들과 연관된 모션 벡터들을 0과 같게 설정하고 이들 모션 벡터들을 이용하여 모션 보상을 실시함으로써 경계 아티팩트들을 정정할 수도 있다.
오류 경계 정정 유닛 (72) 은 오류 경계 위치들의 경계 아티팩트들을 정정한다 (88). 픽셀 도메인의 오류 경계 위치들을 정정하기 위해서, 오류 경계 정정 유닛 (72) 은 하나 이상의 기준 프레임들의 하나 이상의 픽셀 값들을 이용하여 오류 경계 위치들 내의 픽셀들 각각에 대한 교체 픽셀 값을 계산할 수도 있다. 예를 들어, 오류 경계 정정 유닛 (72) 은, 교체될 대체 프레임의 픽셀과 동일한 로우에 위치되고 기준 프레임의 경계에 바로 인접한 기준 프레임의 2개의 픽셀들의 픽셀 값들의 평균이 되도록 오류 경계 위치 내의 픽셀들 각각에 대한 교체 픽셀 값을 계산할 수도 있다. 압축된 도메인의 오류 경계 위치들을 정정하기 위해서, 예를 들어, 오류 경계 정정 유닛 (72) 은 인트라 예측 모드를 선택하고 선택된 인트라 예측 모드를 이용하여 블록의 픽셀 값들을 결정한다. H.264 인트라 예측 이외에 또는 H.264 인트라 예측과 별개로, 상이한 공간 내삽 기술들이 또한 오류 경계 아티팩트들을 정정하기 위해 사용된다.
도 6a 및 도 6b는 식별된 경계를 따라 픽셀들의 하나의 로우 및/또는 컬럼의 경계 아티팩트들의 정정에 있어서 프레임 대체 유닛 (52) 의 예시적인 동작을 도시하는 흐름도이다. 도 6a 및 도 6b에 도시된 실시예가 하나의 로우 및/또는 하나의 컬럼을 따라 경계 아티팩트 정정을 도시하지만, 다수의 로우 및/또는 다수의 컬럼들에 이 기술들이 실시될 수도 있다. 로우들 및 또는 컬럼들의 수가 기준 프레임의 경계의 폭에 기초하여 결정될 수도 있다.
처음에, 프레임 대체 유닛 (52) 은 프레임 대체를 위해 사용된 기준 프레임 내에서 경계를 검출한다 (90). 프레임 대체 유닛 (52) 은 경계가 기준 프레임의 좌변, 즉, 좌 경계를 따라 연장되는지 여부를 결정한다 (92). 기준 프레임의 경계가 기준 프레임의 좌변, 즉, 좌 경계를 따라 연장된다면, 프레임 대체 유닛 (52) 은 변수 j=1로 설정하고 대체 프레임의 블록 MB (1, j) 를 선택한다 (94, 96). 블록 MB (1, j) 는 제 1 컬럼과 j번째 로우에 위치된 블록이다. j가 처음에 1과 같게 설정되기 때문에, 선택된 제 1 블록은 대체된 프레임의 첫번째 컬럼과 첫번째 로우의 블록이다.
프레임 대체 유닛 (52) 은 블록 MB (1,j) 와 연관된 모션 벡터 (MVx) 의 x-컴포넌트가 0과 같은지 여부를 결정한다 (98). 어떤 경우, MB (1,j) 와 연관된 모션 벡터는, 예를 들어, 내삽 또는 외삽을 통해 하나 이상의 기준 프레임들과 연관된 모션 벡터들의 함수로서 계산될 수도 있다. 프레임 대체 유닛 (52) 이, 대체된 프레임의 블록 MB (1, j) 와 연관된 모션 벡터의 x-컴포넌트가 0과 같지 않은 것으로 결정하는 경우, 프레임 대체 유닛 (52) 은, 대체된 프레임의 블록 MB (1, j) 와 연관된 모션 벡터의 x-컴포넌트가 0보다 큰 것으로 결정한다 (100). 프레임 대체 유닛 (52) 이, 대체된 프레임의 블록 MB (1, j) 와 연관된 모션 벡터의 x-컴포넌트가 0보다 큰 것으로 결정한다면, 프레임 대체 유닛 (52) 은 오류 경계 정정을 실시한다 (102). 본 개시에 상세하게 설명된 바와 같이 픽셀 도메인 또는 압축된 도메인에서 오류 경계 정정이 실시될 수도 있다.
오류 경계 정정을 실시한 이후 또는 블록 MB (1, j) 와 연관된 모션 벡터의 x-컴포넌트가 0보다 작은 경우, 프레임 대체 유닛 (52) 은 실제 경계 정정을 실시한다 (104). 오류 경계 정정처럼, 본 개시에 상세하게 설명된 바와 같이 픽셀 도메인 또는 압축된 도메인에서 실제 경계 정정이 실시될 수도 있다. 이 방식으로, 프레임 대체 유닛 (52) 은 상이한 유형들의 경계 아티팩트들을 정정하기 위해 상이한 경계 아티팩트 정정 기술들을 이용한다. 예를 들어, 실제 경계 위치들과 연관된 경계 아티팩트들이 실제 경계 정정 기술들 중 하나를 이용하여 정정되고 오류 경계 위치들과 연관된 경계 아티팩트들은 오류 경계 정정 기술들 중 하나를 이용하여 정정된다.
실제 경계 정정 이후 또는 블록과 연관된 모션 벡터의 x-컴포넌트가 0과 같은 경우, 프레임 대체 유닛 (52) 은, 블록 MB (2, j) 와 연관된 모션 벡터의 x-컴포넌트가 0과 같은지 여부를 결정한다 (106). 블록 MB (2, j) 는 2번째 컬럼과 j번째 로우에 위치된 블록이다. 다른 말로, 블록 MB (2, j) 는 블록 MB (1, j) 에 대하여 수평 방향으로 바로 인접한 블록이다. 블록 MB (2, j) 와 연관된 모션 벡터의 x-컴포넌트가 0과 같지 않은 경우, 프레임 대체 유닛 (52) 은 모션 보상 동안 기준 프레임으로부터 페치될 블록의 좌변의 수평 x-좌표 ("블록의 X") 가 좌 경계의 우변의 x-좌표 ("경계의 X") 보다 작은지 여부를 결정한다 (108). 프레임 대체 유닛 (52) 이, 모션 보상 동안 기준 프레임으로부터 페치될 블록의 좌변의 x-좌표 ("블록의 X") 가 좌 경계의 우변의 x-좌표보다 작은 것으로 결정한다면, 프레임 대체 유닛 (52) 은 블록 MB (2, j) 에 대한 오류 경계 정정을 실시한다 (110). 도 6a는 단지 로우의 제 1 및 제 2 블록들, 즉, 블록들 MB (1, j) 및 MB (2, j) 의 경계 아티팩트들을 분석하고 정정한다. 그러나, 이 기술들이 로우들의 더 많은 블록들, 예를 들어, 블록들 MB (3, j), MB (4, j),..., MB (C, j) 에서 경계 아티팩트들을 분석하고 정정할 수도 있으며, C는 프레임의 컬럼들의 수와 동일하다.
블록 MB (2, j) 와 연관된 모션 벡터의 x-컴포넌트가 0과 같은 경우, 모션 보상 동안 기준 프레임으로부터 페치될 블록의 좌변의 수평 x-좌표 ("블록의 X") 가 좌 경계의 우변의 x-좌표 ("경계의 X") 보다 작지 않고, 또는 블록 MB (2, j) 의 오류 경계 정정 이후, 프레임 대체 유닛 (52) 이 변수 j가 N과 동일한지 여부를 결정하며, N은 제 1 컬럼의 블록들의 수이다 (112). j가 N가 같지 않은 경우, 프레임 대체 유닛 (52) 은 변수 j를 증분시키고 (114) 상술된 방식으로 블록 MB (1, j) 를 처리한다. 프레임 대체 유닛 (52) 은 j가 N가 동일할 때까지, 즉, 더 이상 처리할 남은 블록이 없을 때까지 좌측 컬럼의 블록들의 처리를 계속한다.
j가 N과 동일하거나 경계가 좌 경계가 아닌 것으로 블록 (92) 에서 결정된 경우, 프레임 대체 유닛 (52) 은 경계가 기준 프레임의 우변을 따라 연장되는지, 즉 우 경계인지 여부를 결정한다 (116). 프레임 대체 유닛 (52) 이 기준 프레임의 경계가 기준 프레임의 우변을 따라 연장되는 것, 즉, 우 경계인 것으로 결정한다면, 프레임 대체 유닛 (52) 은 변수 j=1을 설정하고 대체 프레임의 블록 MB (M, j) 를 선택한다 (118, 120). 블록 MB (M, j) 는 M 번째 컬럼과 j 번째 로우에 위치된 블록이다. j가 처음에 1과 같게 설정되기 때문에, 선택된 제 1 블록은 대체 프레임의 마지막 컬럼과 첫번째 로우의 블록이다.
프레임 대체 유닛 (52) 은 블록 MB (M, j) 와 연관된 모션 벡터 (MVx) 의 x-컴포넌트가 0과 같은지 여부를 결정한다 (122). 어떤 경우, 블록 MB (M, j) 와 연관된 모션 벡터는, 예를 들어, 내삽 또는 외삽을 통하여, 하나 이상의 기준 프레임들과 연관된 모션 벡터들의 함수로서 계산될 수도 있다. 프레임 대체 유닛 (52) 이, 대체된 프레임의 블록 MB (M, j) 와 연관된 모션 벡터의 x-컴포넌트가 0과 같지 않은 것으로 결정되는 경우, 프레임 대체 유닛 (52) 은, 대체된 프레임의 블록 MB (M, j) 와 연관된 모션 벡터의 x-컴포넌트가 0보다 작은 것으로 결정한다 (124). 프레임 대체 유닛 (52) 이, 대체된 프레임의 블록 MB (M, j) 와 연관된 모션 벡터의 x-컴포넌트가 0보다 작은 것으로 결정한다면, 프레임 대체 유닛 (52) 은 오류 경계 정정을 실시한다 (126). 오류 경계 정정은 본 개시에 상세하게 설명된 바와 같이 픽셀 도메인 또는 압축된 도메인에서 실시될 수도 있다.
오류 경계 정정의 실시 이후 또는 블록 MB (M, j) 와 연관된 모션 벡터의 x-컴포넌트가 0보다 큰 경우, 프레임 대체 유닛 (52) 은 실제 경계 정정을 실시한다 (128). 오류 경계 정정과 같게, 본 개시에 상세하게 설명된 바와 같이 픽셀 도메인 또는 압축된 도메인에서 실제 경계 정정이 실시될 수도 있다. 이 방식으로, 프레임 대체 유닛 (52) 은 상이한 유형들의 경계 아티팩트들을 정정하기 위해 상이한 경계 아티팩트 정정 기술들을 이용한다. 예를 들어, 실제 경계 위치들과 연관된 경계 아티팩트들이 실제 경계 정정 기술들 중 하나를 이용하여 정정되고 오류 경계 위치들과 연관된 경계 아티팩트들은 오류 경계 정정 기술들 중 하나를 이용하여 정정된다.
실제 경계 정정 이후 또는 블록과 연관된 모션 벡터의 x- 컴포넌트가 0과 같은 경우, 프레임 대체 유닛 (52) 는 블록 MB (M-1, j) 와 연관된 모션 벡터의 x-컴포넌트가 0과 같은지 여부를 결정한다 (130). 블록 MB (M-1, j) 는 마지막 컬럼과 j번째 로우에 대해 두번째에 위치된 블록이다. 다른 말로, 블록 MB (M-1, j) 는 블록 MB (M, j) 에 대한 네거티브 수평 방향에 바로 인접한 블록이다. 블록 MB (M-1, j) 와 연관된 모션 벡터의 x-컴포넌트가 0과 같지 않은 경우, 프레임 대체 유닛 (52) 은 모션 보상 동안 기준 프레임으로부터 페치된 블록의 우변의 수평 x-좌표 ("블록의 X") 가 우 경계의 좌변의 x-좌표 ("경계의 X") 보다 큰지 여부를 결정한다 (132). 프레임 대체 유닛 (52) 이, 모션 보상 동안 기준 프레임으로부터 페치된 블록의 우변의 수평 x-좌표 ("블록의 X") 가 우 경계의 좌변의 x-좌표 ("경계의 X") 보다 크다면, 프레임 대체 유닛 (52) 은 블록 MB (M-1, j) 에 대한 오류 경계 정정을 실시한다 (134).
블록 MB (M-1, j) 과 연관된 모션 벡터의 x-컴포넌트가 0과 같은 경우, 모션 보상 동안 기준 프레임으로부터 페치된 블록의 우변의 수평 x-좌표 ("블록의 X") 가 우 경계의 좌변의 x-좌표 ("경계의 X") 보다 크지않고, 또는 오류 경계 정정 이후, 프레임 대체 유닛 (52) 은 변수 j가 N과 같은지 여부를 결정하고, N은 제 1 컬럼의 블록들의 수이다 (136). j가 N과 같지 않은 경우, 프레임 대체 유닛 (52) 은 변수 j를 증분시키고 (138) 상술된 방식으로 다음 블록 MB (M, j) 를 처리하기 위해 루프 백 한다. 프레임 대체 유닛 (52) 은 j가 N가 동일할 때까지, 즉, 더 이상 처리할 남은 블록이 없을 때까지 마지막, 예를 들어, 우측 컬럼의 블록들의 처리를 계속한다.
도 6b를 참고로 하면, j가 N과 동일하거나 경계가 우 경계가 아닌 것으로 블록 (116) 에서 결정된 경우, 프레임 대체 유닛 (52) 은 경계가 기준 프레임의 상부를 따라 연장되는지, 즉, 상 경계인지 여부를 결정한다 (140). 프레임 대체 유닛 (52) 이 기준 프레임의 경계가 기준 프레임의 상변을 따라 연장되는 것, 즉, 상 경계인 것으로 결정한다면, 프레임 대체 유닛 (52) 은 변수 i=1을 설정하고 대체 프레임의 블록 MB (i, 1) 를 선택한다 (142, 144). 블록 MB (i, 1) 는 i 번째 컬럼과 첫번째 로우에 위치된 블록이다. j가 처음에 1과 같게 설정되기 때문에, 선택된 제 1 블록은 대체 프레임의 첫번째 컬럼과 첫번째 로우의 블록이다.
프레임 대체 유닛 (52) 은 블록 MB (i, 1) 와 연관된 모션 벡터 (MVy) 의 y-컴포넌트가 0과 같은지 여부를 결정한다 (146). 블록 MB (i, 1) 와 연관된 모션 벡터가, 어떤 경우, 내삽 또는 외삽을 통하여, 하나 이상의 기준 프레임들과 연관된 모션 벡터들의 함수로서 계산될 수도 있다. 프레임 대체 유닛 (52) 이, 대체 프레임의 블록 MB (i, 1) 와 연관된 모션 벡터의 y-컴포넌트가 0과 같지 않은 것으로 결정하는 경우, 프레임 대체 유닛 (52) 은 대체 프레임의 블록 MB (i, 1) 와 연관된 모션 벡터의 y-컴포넌트가 0보다 큰 것으로 결정한다 (148). 프레임 대체 유닛 (52) 이 대체 프레임의 블록 MB (i, 1) 와 연관된 모션 벡터의 y-컴포넌트가 0보다 큰 것으로 결정한다면, 프레임 대체 유닛 (52) 은 오류 경계 정정을 실시한다 (150). 오류 경계 정정은 본 개시에 상세하게 기재된 바와 같이 픽셀 도메인 또는 압축된 도메인에서 실시될 수도 있다.
오류 경계 정정의 실시 이후 또는 블록 MB (i, 1) 와 연관된 모션 벡터의 y-컴포넌트가 0보다 작은 경우, 프레임 대체 유닛 (52) 은 실제 경계 정정을 실시한다 (152). 오류 경계 정정과 같이, 본 개시에서 상세하게 설명된 바와 같이 픽셀 도메인 또는 압축된 도메인에서 실제 경계 정정이 실시될 수도 있다. 이 방식으로, 프레임 대체 유닛 (52) 은 상이한 유형들의 경계 아티팩트들을 정정하기 위해서 상이한 경계 아티팩트 정정 기술들을 이용한다. 예를 들어, 실제 경계 위치들과 연관된 경계 아티팩트들은 실제 경계 정정 기술들 중 하나를 이용하여 정정되고 오류 경계 위치들과 연관된 경계 아티팩트들은 오류 경계 정정 기술들 중 하나를 이용하여 정정된다.
실제 경계 정정 이후 또는 블록과 연관된 모션 벡터의 y-컴포넌트가 0과 같은 경우, 프레임 대체 유닛 (52) 은 블록 MB (i, 2) 와 연관된 모션 벡터의 y-컴포넌트가 0과 같은지 여부를 결정한다 (154). 블록 MB (i, 2) 는 i번째 컬럼과 두번째 로우에 위치된 블록이다. 다른 말로, 블록 MB (i, 2) 는 블록 MB (i, 1) 에 대하여 수직 아래 방향으로 바로 인접한 블록이다. 블록 MB (i, 2) 와 연관된 모션 벡터의 y-컴포넌트가 0과 같지 않은 경우, 프레임 대체 유닛 (52) 은 모션 보상 동안 기준 프레임으로부터 페치된 블록의 상변의 수직 y-좌표 ("블록의 Y") 가 상 경계의 하변의 y-좌표 ("경계의 Y") 보다 작은지 여부를 결정한다 (156). 프레임 대체 유닛 (52) 이 모션 보상 동안 기준 프레임으로부터 페치된 블록의 상변의 수직 y-좌표 ("블록의 Y") 가 상부 경계의 하변의 y-좌표 ("경계의 Y") 보다 작다면, 프레임 대체 유닛 (52) 은 블록 MB (i, 1) 에 대한 오류 경계 정정을 실시한다 (158).
블록 MB (i, 2) 와 연관된 모션 벡터의 y-컴포넌트가 0과 같은 경우, 모션 보상 동안 기준 프레임으로부터 페치된 블록의 상변의 수직 y-좌표 ("블록의 Y") 가 상 경계의 하변의 y-좌표 ("경계의 Y") 보다 작지 않고, 또는 오류 경계 정정 이후, 프레임 대체 유닛 (52) 은 변수 i가 M과 동일한지 여부를 결정하고, M은 첫번째 로우의 블록들의 수이다 (160). i가 M과 같은 경우, 프레임 대체 유닛 (52) 은 변수 j를 증분시키고 (162) 상술된 방식으로 블록 MB (i, 1) 를 처리한다. 프레임 대체 유닛 (52) 은 i가 M과 같을 때까지, 즉, 더 이상 처리할 남을 블록들이 없을 때까지 상부 로우의 블록들의 처리를 계속한다.
i가 M과 같거나 경계가 상 경계가 아닌 것으로 블록 (140) 에서 결정되는 경우, 프레임 대체 유닛 (52) 은 경계가 기준 프레임의 하부를 따라 연장되는지, 즉, 하 경계인지 여부를 결정한다 (163). 프레임 대체 유닛 (52) 이, 기준 프레임의 경계가 기준 프레임의 하부를 따라 연장되는 것, 즉, 하 경계인 것으로 결정한다면, 프레임 대체 유닛 (52) 은 변수 i=1을 설정하고 대체 프레임의 블록 MB (i, N) 를 선택한다 (164, 165). 블록 MB (i, N) 는 i번째 컬럼과 M번째 로우에 위치된 블록이다. i가 처음에 1과 같게 설정되기 때문에, 선택된 첫번째 블록은 대체 프레임의 첫번째 컬럼과 마지막 로우의 블록이다.
프레임 대체 유닛 (52) 은 블록 MB (i, N) 와 연관된 모션 벡터 (MVy) 의 y-컴포넌트가 0과 같은지 여부를 결정한다 (166). 블록 MB (i, N) 와 연관된 모션 벡터는, 어떤 경우, 내삽 또는 외삽을 통하여, 하나 이상의 기준 프레임들과 연관된 모션 벡터들의 함수로서 계산될 수도 있다. 프레임 대체 유닛 (52) 은 대체된 프레임의 블록 MB (i, N) 과 연관된 모션 벡터의 y-컴포넌트가 0과 같지 않은 것으로 결정하는 경우, 프레임 대체 유닛 (52) 은 대체된 프레임의 블록 MB (i, N) 과 연관된 모션 벡터의 y-컴포넌트가 0보다 작은 것으로 결정한다 (168). 프레임 대체 유닛 (52) 이 대체 프레임의 블록 MB (i, N) 과 연관된 모션 벡터의 y-컴포넌트가 0보다 작다고 결정한다면, 프레임 대체 유닛 (52) 이 오류 경계 정정을 실시한다 (170). 본 개시에 상세하게 기재된 바와 같이 픽셀 도메인 또는 압축된 도메인에서 오류 경계 정정이 실시될 수도 있다.
오류 경계 정정의 실시 이후 또는 블록 MB (1, N) 와 연관된 모션 벡터의 y-컴포넌트가 0보다 큰 경우, 프레임 대체 유닛 (52) 은 실제 경계 정정을 실시한다 (172). 오류 경계 정정과 같이, 본 개시에 상세하게 설명된 바와 같이 픽셀 도메인 또는 압축된 도메인에서 실제 경계 정정이 실시될 수도 있다. 이 방식으로, 프레임 대체 유닛 (52) 은 상이한 유형들의 경계 아티팩트들을 정정하기 위해 상이한 경계 아티팩트 정정 기술들을 이용한다. 예를 들어, 실제 경계 위치들과 연관된 경계 아티팩트들은 실제 경계 정정 기술들 중 하나를 이용하여 정정될 수도 있고 오류 경계 위치들과 연관된 경계 아티팩트들은 오류 경계 정정 기술들 중 하나를 이용하여 정정된다.
실제 경계 정정 이후 또는 블록과 연관된 모션 벡터의 y-컴포넌트가 0과 같은 경우, 프레임 대체 유닛 (52) 은 블록 MB (i, N-1) 와 연관된 모션 벡터의 y-컴포넌트가 0과 같다고 결정한다 (174). 블록 MB (i, N-1) 는 i번째 컬럼과 마지막 로우에 대하여 2번째에 위치된 블록이다. 다른 말로, 블록 MB (i, N-1) 는 블록 MB (i, N-1) 에 네거티브의 수직 위 방향으로 바로 인접한 블록이다. 블록 MB (i, N-1) 와 연관된 모션 벡터의 y-컴포넌트가 0과 같지 않은 경우, 프레임 대체 유닛 (52) 은 모션 보상 동안 기준 프레임으로부터 페치된 블록의 하변의 수직 y-좌표 ("블록의 Y") 가 하 경계의 상변의 y-좌표 ("경계의 Y") 보다 큰지 여부를 결정한다 (176). 프레임 대체 유닛 (52) 은, 모션 보상 동안 기준 프레임으로부터 페치된 블록의 하변의 수직 y-좌표 ("블록의 Y") 가 하 경계의 상변의 y-좌표 ("경계의 Y") 보다 큰 것으로 결정한다면, 프레임 대체 유닛 (52) 은 블록 MB (i, N) 에 대한 오류 경계 정정을 실시한다 (178).
블록 MB (i, N-1) 와 연관된 모션 벡터의 y-컴포넌트가 0과 같은 경우, 모션 보상 동안 기준 프레임으로부터 페치된 블록의 하변의 수직 y-좌표 ("블록의 Y") 가 하 경계의 상변의 y-좌표 ("경계의 Y") 보다 크거나, 오류 경계 정정 이후, 프레임 대체 유닛 (52) 이 변수 i가 M과 같은지 여부를 결정하고, M은 첫번째 로우의 블록들의 수이다 (180). i가 M과 같지 않은 경우, 프레임 대체 유닛 (52) 은 변수 i를 증분시키고 (182) 상술된 방식으로 블록 MB (i, N) 을 처리한다. 프레임 대체 유닛 (52) 은 i가 M과 같을 때까지, 즉 처리할 남은 블록들이 더 이상 없을 때까지 하부 로우의 블록들의 처리를 계속한다.
도 7은 픽셀 도메인에서 오류 경계 교체를 실시하는 프레임 대체 유닛 (52) 의 예시적인 동작을 도시하는 흐름도이다. 상술된 바와 같이, 오류 경계 위치들, 예를 들어, 기준 비디오 프레임 내에 존재하지 않지만 모션 보상된 내삽으로 인해 대체된 프레임으로 전파되는 경계에 대응하는 위치들과 연관된 경계 아티팩트들을 정정하기 위해 오류 경계 아티팩트 정정이 실시된다.
경계 아티팩트 식별 유닛 (68) 은 대체된 프레임의 픽셀들의 블록 내의 오류 경계 위치를 처음으로 식별한다 (190). 상기 상세하게 기재된 바와 같이, 경계 아티팩트 식별 유닛 (68) 은 블록과 연관된 모션 벡터의 값과 경계의 폭을 이용하여 오류 경계 위치를 식별할 수도 있다. 좌 경계의 경우, 예를 들어, 오류 경계 위치는 start_x로부터 시작하여 end_x로 끝나는 블록의 픽셀들의 컬럼들을 포함할 수도 있고, start-x 및 end_x는 식:
Figure pct00002
로 정의될 수도 있다. Left_B_width는 좌 경계의 경계 폭이고 mv_x는 픽셀들의 블록과 연관된 모션 벡터의 x-컴포넌트의 값이다. 이와 같이, 블록의 픽셀들의 로우들 각각은 오류 경계 위치 내의 end_x-start_x+1 픽셀들을 포함한다. 오류 경계 위치의 픽셀들의 총 수는
Figure pct00003
와 같고,
Figure pct00004
은 블록의 수직 치수이다.
오류 경계 정정 유닛 (72) 은 오류 경계 위치 내의 픽셀들의 픽셀 값들 각각을 교체 픽셀 값들로 교체한다. 일 양태에서, 오류 경계 정정 유닛 (72) 은 x-좌표 (x) 를 start_x로 그리고 y-좌표 (y) 를 1로 설정함으로써 오류 경계 위치 내의 픽셀 값들을 교체할 수도 있다 (192). 오류 경계 정정 유닛 (72) 은 오류 경계 위치 내의 픽셀 psub(x,y) 에 대한 교체 픽셀 값을 결정한다 (194). 오류 경계 정정 유닛 (72) 은, 예를 들어, 다음 식:
Figure pct00005
을 이용하여 위치 (x,y) 에 위치된 픽셀에 대한 교체 픽셀 값을 결정한다. psub(x,y) 는 대체 프레임 내의 포지션 (x,y) 에 위치된 픽셀에 대한 교체 픽셀 값이며,
Figure pct00006
는 기준 프레임 내의 포지션
Figure pct00007
에 위치된 픽셀의 픽셀 값이고,
Figure pct00008
는 기준 프레임 내의 포지션
Figure pct00009
에서의 픽셀 위치의 픽셀 값이다. 상술된 바와 같이,
Figure pct00010
Figure pct00011
는, 대체 프레임에서 교체되고 기준 프레임 내의 경계에 바로 인접한 픽셀로서 기준 프레임의 동일한 로우에 위치된 픽셀들의 픽셀 값들이다. 다른 말로, 교체 픽셀 값은, 기준 프레임의 경계 다음, 제 1 픽셀과 제 2 픽셀의 픽셀 값들, 각각
Figure pct00012
Figure pct00013
의 평균으로서 계산된다. 오류 경계 정정 유닛 (72) 은, 식 (4) 및 (5) 로 나타낸 것과 같이, 다른 기술들을 이용하여 포지션 (x,y) 에 위치된 픽셀에 대한 교체 픽셀 값을 결정할 수도 있다.
Figure pct00014
Figure pct00015
K1과 K2는 계수이다. 다른 말로, 식 (4) 는 모든 교체 픽셀에 대한 경계 이후 첫번째 픽셀의의 픽셀값의 이용을 나타내고 식 (5) 는 교체 픽셀 값들에 대한 픽셀 값들의 가중된 합계의 이용을 나타낸다.
오류 경계 정정 유닛 (72) 은 오류 경계 위치 내의 선택된 픽셀의 픽셀 값을 교체 픽셀 값으로 교체한다 (196). 오류 경계 정정 유닛 (72) 은 x가 end_x와 동일한지 여부를 결정한다 (198). x가 end_x와 같지 않은 경우 (이는 교체될 필요가 있는 현재 로우의 픽셀 값들이 존재한다는 것을 나타낸다), 오류 경계 정정 유닛 (72) 은 x를 증분시키고 (200) 다음 픽셀에 대한 교체 픽셀 값을 로우를 따라 결정한다.
x가 end_x와 같다면 (이는 교체될 필요가 있는 오류 경계 위치의 로우에 남은 픽셀 값들이 없다는 것을 나타낸다), 오류 경계 정정 유닛 (72) 은 수직 치수
Figure pct00016
에 있어서 블록 사이즈와 같은지 여부를 결정한다 (202). y가 수직 치수
Figure pct00017
에 있어서 블록 사이즈와 같지 않은 경우 (이는 교체된 필요가 있는 적어도 하나의 다른 컬럼에 픽셀 값들이 존재한다는 것을 나타낸다), 오류 경계 정정 유닛 (72) 은 y를 증분시키고 (204) x를 start_x와 같게 설정한다 (206). 이후, 오류 경계 정정 유닛 (72) 은 다음 로우를 따라 픽셀들에 대한 교체 픽셀 값들을 결정한다. y가
Figure pct00018
와 같다면 (이는 교체될 필요가 있는 오류 경계 위치의 남은 픽셀 값들이 존재하지 않는다는 것을 나타낸다), 오류 경계 정정 유닛 (72) 은 정정된 대체 프레임의 픽셀 값들을 출력 프레임 버퍼에 저장한다 (208).
도 8은 픽셀 도메인에서 실제 경계 교체를 실시하는 프레임 대체 유닛 (52) 의 예시적인 동작을 도시하는 흐름도이다. 상술된 바와 같이, 실제 경계 위치들, 예를 들어 기준 비디오 프레임 내에 존재하고 대체 프레임 내에도 존재하는 경계에 대응하는 위치들과 연관된 경계 아티팩트들을 정정하기 위해 실제 경계 아티팩트 정정이 실시된다.
경계 아티팩트 식별 유닛 (68) 은 대체 프레임의 픽셀들의 블록 내의 실제 경계 위치를 식별한다 (210). 경계 아티팩트 식별 유닛 (68) 은 기준 프레임의 경계의 폭을 이용하여 실제 경계들을 식별할 수도 있다. 기준 프레임 내의 좌 경계의 경우, 예를 들어, 경계 아티팩트 정정은 대체된 프레임의 블록의 픽셀들의 컬럼의 맨왼쪽 b_width 수를 실제 경계 위치로서 식별할 수도 있다. 실제 경계 교체 유닛 (70) 이 변수 x=1 그리고 변수 y=1을 설정하며, x 및 y는 각각 x 및 y 방향의 픽셀의 위치 좌표들이다 (212).
실제 경계 교체 유닛 (70) 은 실제 경계 위치 psub(x,y) 내의 픽셀의 픽셀 값을 기준 프레임 pref(x,y) 내의 대응 위치에서 픽셀의 픽셀 값과 동일하게 설정한다 (214). 실제 경계 정정 유닛 (70) 은 x가 경계 폭 (b_width) 과 동일한지 여부를 결정한다 (216). x가 경계 폭 (b_width) 과 동일하지 않은 경우 (이는 교체될 필요가 있는 실제 경계 위치에 픽셀 값들이 존재한다는 것을 나타낸다), 실제 경계 정정 유닛 (70) 은 x를 증분시킨다 (218). 실제 경계 정정 유닛 (70) 은 실제 경계 위치에 픽셀들의 로우의 픽셀 값들을 기준 프레임 내의 대응 위치에서 픽셀들의 픽셀 값들과 동일하게 설정하는 것을, x가 경계 폭 (b_width) 과 같게 될 때까지 계속한다.
x가 경계 폭 (b_width) 와 같은 경우, 실제 경계 정정 유닛 (70) 은 y가 블록의 블록 사이즈 (block_size) 와 같은지 여부를 결정한다 (220). y가 블록의 블록 사이즈 (block_size) 와 같지 않다면 (이는 교체될 필요가 있는 실제 경계 위치에 픽셀들의 적어도 하나의 남은 로우가 존재한다는 것을 나타낸다), 실제 경계 정정 유닛 (70) 은 y를 증분시키고 (222) x를 1과 같게 설정한다 (224). 이후, 실제 경계 정정 유닛 (70) 은 다음 로우를 따라 픽셀들에 대한 교체 픽셀 값들을 결정한다. y가 block_size와 같다면 (이는 교체될 필요가 있는 실제 경계 위치에 남은 픽셀 값들이 존재하지 않는다는 것을 나타낸다), 실제 경계 정정 유닛 (70) 은 출력 프레임 버퍼에 픽셀 값들을 저장한다 (226).
도 9는 압축된 도메인에서 실제 경계 교체를 실시하는 프레임 교체 유닛 (52) 의 예시적인 동작을 도시하는 흐름도이다. 경계 아티팩트 식별 유닛 (68) 은 처음에 대체 프레임 내에서 실제 경계 위치를 식별한다 (230). 압축된 도메인에서, 실제 경계 위치는, 기준 프레임 내에 존재하는 경계에 대응하는 적어도 하나의 픽셀을 포함하도록 식별되는 블록일 수도 있다. 예를 들어, 복수의 4×4 블록들을 포함하는 프레임의 좌변을 따른 경계가 있고 이 경계는 7의 픽셀들의 폭을 갖는다고 가정하면, 경계 아티팩트 검출 모듈 (18) 은 4×4 블록들의 첫번째 2개의 컬럼들의 블록들 각각을 실제 경계 위치들로 식별한다. 블록의 픽셀들의 일부만이 실제 경계 위치들에 존재하는 것으로 결정되었던 픽셀 도메인과는 다르게, 블록의 픽셀들 중 일부가 기준 프레임의 경계에 실제로 대응하지 않더라도, 전체 블록이 실제 경계 위치에 존재하는 것으로 여겨진다. 상기 예에서, 4×4블록들의 두번째 컬럼만이 기준 프레임에 존재하는 경계에 대응하는 픽셀들의 3개의 컬럼들을 포함하더라도, 전체 블록이 실제 경계 위치에 있는 것으로 결정된다.
실제 경계 정정 유닛 (70) 은 실제 경계 아티팩트의 블록과 연관된 모션 벡터를 0으로 설정한다 (232). 프레임 대체 유닛 (52) 은 블록과 연관된 모션 벡터를 이용하여 식별된 블록을 실제 경계 위치로서 생성한다 (234). 블록과 연관된 모션 벡터가 아티팩트 정정 동안 0으로 설정되었기 때문에, 이 블록은 기준 프레임의 대응 블록의 사본이다.
도 10은 압축된 도메인에서 오류 경계 대체를 실시하는 프레임 대체 유닛 (52) 의 예시적인 동작을 도시하는 흐름도이다. 경계 아티팩트 식별 유닛 (68) 은 처음에 오류 경계 위치를 식별한다 (240). 압축된 도메인에서, 오류 경계 위치는, 예를 들어, 모션 보상된 내삽으로 인해 대체된 프레임 내에 존재하지만 기준 프레임에 존재하지 않는 경계에 대응하는 적어도 하나의 픽셀을 포함하도록 식별되는 블록일 수도 있다. 프레임이 오류 경계 아티팩트들을 포함하더라도, 기준 프레임의 실제 경계에 대응하는 적어도 일부의 픽셀들을 포함하는 블록이 오류 경계 위치로서 분류되지 않는다. 이것은, 예를 들어, 블록의 모션 벡터를 0과 같게 설정함으로써, 실제 경계 아티팩트 정정 동안 블록의 오류 경계 아티팩트들이 정정될 것이기 때문이다.
실제 경계 정정 유닛 (70) 은 오류 경계 위치로서 식별된 블록을 위한 인트라 예측 모드를 선택한다 (242). 프레임 대체 유닛 (52) 은 선택된 인트라 예측 모드를 이용하여 인트라 예측을 실시하여 오류 경계 위치로서 식별된 블록을 생성한다 (244). 오류 경계 위치로서 식별된 블록을 위해 선택된 인트라 예측 모드는 경계의 위치, 예를 들어, 경계가 프레임의 상, 하, 좌변 또는 우변을 따라 있는지 여부에 의존할 수도 있다. H.264의 인트라 예측이 예측을 위해 나타나게될 원인적 픽셀들 (예를 들어, 인접한 블록들의 픽셀들) 을 요구하기 때문에, 상이한 인트라 예측 모드들을 이용하여 상이한 경계 위치들이 정정될 수도 있다.
예를 들어, 원인적 인접이 그 4×4 블록들에 대해 존재하기 때문에 인트라 예측이 프레임의 하부 (즉, 남쪽) 또는 우변을 따라 위치된 경계들을 위해 사용될 수도 있다. 그러나, 프레임의 상부 (즉, 북쪽) 및 좌변을 따르는 경계 위치에 있어서, 4×4 블록 원인적 인접은 블랙 경계들이고 블랙 경계로부터의 예측은 블랙 지역을 4×4 블록들로 전파할 것이다. 오류 경계 위치가 프레임의 하부 또는 상부를 따른다면, 정정을 위해 인트라 4×4 수직 모드가 선택될 수도 있다. 오류 경계 위치가 프레임의 좌 또는 우변을 따른다면, 정정을 위해 인트라 4×4 수평 모드가 선택될 수도 있다. 그러나, 정정을 위해 다른 모드들이 선택될 수도 있다.
도 11a 내지 도 11c는 압축된 도메인에서 다양한 스테이지의 정정 이후 대체 프레임을 도시하는 다이어그램이다. 도 11a는 프레임 대체 동안, 예를 들어, 모션 보상 동안 생성된 경계 아티팩트들을 포함하는 대체 프레임을 도시한다. 도 11a에 도시된 바와 같이, 대체 프레임의 2개의 블록들은 다른 위치들 보다는 프레임 내에서 더 연장되는 경계를 포함한다.
도 11b는 압축된 도메인에서 실제 경계 정정을 실시한 이후의 대체 프레임을 도시한다. 상술된 바와 같이, 실제 경계 정정 유닛 (70) 은 실제 경계 위치들로서 식별된 블록들과 연관된 모션 벡터를 0과 같게 설정함으로써 실제 경계 위치들을 정정할 수도 있다. 압축된 도메인에서 실제 경계 정정 동안, 대체 프레임의 블록들의 제 1 컬럼이 기준 프레임으로부터 복사되어 대체 프레임의 블록들의 제 1 컬럼을 따르는 경계가 기준 프레임의 블록들의 제 1 컬럼과 동일하게 된다. 그러나, 도 1b에 도시된 바와 같이, 제 2 컬럼의 4번째 및 5번째 로우의 블록들 내에 여전히 오류 경계 아티팩트들이 남는다.
이러한 오류 경계 아티팩트들을 정정하기 위해서, 오류 경계 정정 유닛 (72) 은 그 블록들에 대한 인트라 예측 모드를 선택한다. 그 블록들을 위해 선택된 인트라 예측 모드를 적용한 후 오류 경계 아티팩트들이 제거되어, 대체 프레임이 생성되었던 기준 프레임의 경계와 실질적으로 비슷한 경계를 갖는 도 11c에 도시된 대체 프레임을 획득한다.
본원에 기재된 기술들은 하드웨어, 소프트웨어, 펌웨어 도는 그 임의의 조합에서 구현될 수도 있다. 모듈들, 유닛들 또는 컴포넌트들로서 기재된 임의의 특징들이 통합된 논리 디바이스에서 함께 또는 별개이지만 상호운용가능한 논리 디바이스들로서 개별적으로 구현될 수도 있다. 어떤 경우들에서, 다양한 특징들이, 집접 회로 칩 또는 칩셋과 같은 통합된 회로 디바이스로서 구현될 수도 있다. 소프트웨어에서 구현된다면, 이 기술들은, 실행시 프로세서로 하여금 상술된 하나 이상의 방법들을 실시하게 하는 명령들을 포함하는 컴퓨터 판독가능 매체에 의해 적어도 부분적으로 실현될 수도 있다.
컴퓨터 판독가능 매체는 패키징 재료들을 포함할 수도 있는 컴퓨터 프로그램 제품의 일부를 형성할 수도 있다. 컴퓨터 판독가능 매체는 랜덤 액세스 메모리 (RAM), 동기식 동적 랜덤 액세스 메모리 (SDRAM), 읽기 전용 메모리 (ROM), 비휘발성 랜덤 액세스 메모리 (NVRAM), 전기 소거가능 프로그래머블 읽기 전용 메모리 (EEPROM), FLASH 메모리, 자기 또는 광학 데이터 저장 매체 등과 같은 컴퓨터 데이터 저장 매체를 포함할 수도 있다. 기술들은 추가적으로, 또는 대안으로, 명령들 또는 데이터 구조들의 형태로 코드를 전달하거나 통신하고 컴퓨터에 의해 액세스, 판독, 및/또는 실행될 수 있는 컴퓨터 판독가능 통신 매체에 의해 적어도 부분적으로 실현될 수도 있다.
코드 또는 명령들은 하나 이상의 DSP, 범용 마이크로프로세서, ASIC, 필드 프로그래머블 로직 어레이 (FPGA), 또는 다른 등가의 통합되거나 별개의 논리 회로와 같이 하나 이상의 프로세서들에 의해 실시될 수도 있다. 따라서, 본원에 사용된 용어 "프로세서"는 본원에 기재된 기술들의 구현에 적합한 이전의 구조 또는 임의의 다른 구조 중 임의의 것을 지칭할 수도 있다. 이외에도, 몇몇 양태들에 있어서, 본원에 기재된 기능은 전용 소프트웨어 모듈들 또는 하드웨어 모듈들 내에 제공될 수도 있다. 본 개시는 또한 본 개시에 기재된 하나 이상의 기술들을 구현하기 위한 회로를 포함하는 다양한 집적 회로 디바이스들 중 어느 것을 고려한다. 이러한 회로는 하나의 집적 회로 칩 또는 소위 칩셋의 다수의 상호운용가능하게 집적된 회로 칩들에 제공될 수도 있다. 이러한 집적 회로 디바이스들은 다양한 애플리케이션들에 사용될 수도 있으며, 이들 중 일부는 이동 전화 핸드셋과 같은 무선 통신 다바이스들에서의 사용을 포함할 수도 있다.
개시된 기술들의 다양한 양태를 설명하였다. 이러한 양태 및 다른 양태는 다음 청구의 범위 내에 있다.

Claims (52)

  1. 경계 아티팩트들을 포함하는 대체 비디오 유닛의 위치들을 식별하기 위해 상기 대체 비디오 유닛을 분석하는 단계; 및
    상기 대체 비디오 유닛의 상기 식별된 위치들 내의 상기 경계 아티팩트들을 정정하는 단계를 포함하는, 방법.
  2. 제 1 항에 있어서,
    상기 경계 아티팩트들을 포함하는 대체 비디오 유닛의 위치들을 식별하기 위해 상기 대체 비디오 유닛을 분석하는 단계는,
    기준 비디오 유닛 내에 존재하고 상기 대체 비디오 유닛 내에 존재하지 않는 경계에 대응하는 제 1 경계 아티팩트들을 포함하는, 상기 대체 비디오 유닛 내의 제 1 위치들을 식별하는 단계; 및
    상기 대체 비디오 유닛 내에 존재하고 상기 기준 비디오 유닛 내에 존재하지 않는 경계에 대응하는 제 2 경계 아티팩트들을 포함하는, 상기 대체 비디오 유닛 내의 제 2 위치들을 식별하는 단계를 포함하고;
    상기 식별된 위치들 내의 상기 경계 아티팩트들을 정정하는 단계는,
    상기 대체 비디오 유닛의 상기 제 1 위치들 내의 경계 아티팩트들을 제 1 경계 아티팩트 정정 기술을 이용하여 정정하는 단계; 및
    상기 대체 비디오 유닛의 상기 제 2 위치들 내의 경계 아티팩트들을 제 2 경계 아티팩트 정정 기술을 이용하여 정정하는 단계를 포함하는, 방법.
  3. 제 2 항에 있어서,
    상기 제 1 위치들 및 상기 제 2 위치들 내의 경계 아티팩트들을 정정하는 단계는 상기 제 1 위치들 및 상기 제 2 위치들 내의 경계 아티팩트들을 픽셀 도메인에서 정정하는 단계를 포함하는, 방법.
  4. 제 3 항에 있어서,
    상기 제 1 위치들 내의 경계 아티팩트들을 정정하는 단계는, 상기 대체 비디오 유닛의 상기 제 1 위치들 내의 픽셀들의 픽셀 값들을 상기 기준 비디오 유닛 내에 존재하는 경계의 픽셀 값들과 실질적으로 유사한 픽셀 값들로 교체하는 단계를 포함하고,
    상기 제 2 위치들 내의 경계 아티팩트들을 정정하는 단계는, 상기 제 2 위치들 내의 픽셀들의 픽셀 값들을 상기 기준 비디오 유닛에 존재하는 경계에 인접한 하나 이상의 픽셀 값들의 평균으로서 계산된 픽셀 값들로 교체하는 단계를 포함하는, 방법.
  5. 제 4 항에 있어서,
    상기 대체 비디오 유닛의 상기 제 1 위치들 내의 픽셀들의 픽셀 값들을 교체하는 단계는, 상기 대체 비디오 유닛의 상기 제 1 위치들 내의 픽셀들의 픽셀 값들을 상기 기준 비디오 유닛의 대응 위치 내의 픽셀 값들의 사본으로 교체하는 단계, 또는 상기 대체 비디오 유닛의 상기 제 1 위치 내의 픽셀들의 픽셀 값들을 미리 결정된 경계 픽셀 값들로 교체하는 단계 중 하나를 포함하는, 방법.
  6. 제 2 항에 있어서,
    상기 제 1 위치들 및 상기 제 2 위치들 내의 경계 아티팩트들을 정정하는 단계는 상기 대체 비디오 유닛의 픽셀 값들을 내삽하거나 외삽하기 전에 상기 제 1 위치들 및 상기 제 2 위치들 내의 경계 아티팩트들을 정정하는 단계를 포함하는, 방법.
  7. 제 6 항에 있어서,
    상기 제 1 위치들 내의 경계 아티팩트들을 정정하는 단계는:
    상기 제 1 위치들의 각각의 블록들과 연관된 모션 벡터들을 0과 같게 설정하는 단계, 및
    상기 각각의 블록들과 연관된 상기 모션 벡터들을 이용하여 상기 제 1 위치들의 블록들에 대한 인터 예측 (inter prediction) 을 실시하는 단계를 포함하고, 그리고
    상기 제 2 위치들 내의 경계 아티팩트들을 정정하는 단계는:
    대체 프레임의 상기 제 2 위치들의 블록들에 대하여 인트라 예측 (intra prediction) 모드를 선택하는 단계, 및
    상기 선택된 인트라 예측 모드를 이용하여 인트라 예측을 실시하는 단계를 포함하는, 방법.
  8. 제 2 항에 있어서,
    상기 대체 비디오 유닛 내의 상기 제 1 위치들을 식별하는 단계는:
    상기 기준 비디오 유닛 내에 존재하는 경계가 상기 기준 비디오 유닛의 좌변 또는 우변을 따르는 경우 대체 프레임의 픽셀들의 W개의 컬럼들을 상기 제 1 위치들로서 식별하는 단계; 및
    상기 기준 비디오 유닛 내에 존재하는 경계가 상기 기준 비디오 유닛의 상부 또는 하부를 따르는 경우 대체 프레임의 픽셀들의 W개의 로우들을 상기 제 1 위치들로서 식별하는 단계를 포함하고,
    상기 W는 상기 기준 비디오 유닛 내에 존재하는 경계의 폭인, 방법.
  9. 제 8 항에 있어서,
    상기 대체 비디오 유닛 내의 상기 제 2 위치들을 식별하는 단계는:
    MVx가 0과 같지 않은 경우 픽셀들의 상기 W개의 컬럼들에 인접한 상기 대체 프레임의 픽셀들의 MVx개의 컬럼들을 상기 제 2 위치들로서 식별하는 단계; 및
    MVy가 0과 같지 않은 경우 픽셀들의 상기 W개의 로우들에 인접한 상기 대체 프레임의 픽셀들의 MVy개의 로우들을 상기 제 2 위치들로서 식별하는 단계를 포함하고,
    상기 MVx는 각각의 블록들의 모션 벡터들의 x-컴포넌트이고,
    상기 MVy는 상기 각각의 블록들의 모션 벡터들의 y-컴포넌트인, 방법.
  10. 제 2 항에 있어서,
    상기 대체 비디오 유닛 내의 상기 제 1 위치들을 식별하는 단계는:
    L=ceiling (W, N) 을 계산하는 단계로서, 실링 (ceiling) 함수는 W/N의 다음으로 가장 큰 정수를 출력하고, W는 기준 프레임의 경계의 폭이고 N은 x-방향을 따르는 블록 사이즈인, 상기 L=ceiling (W, N) 을 계산하는 단계;
    상기 기준 비디오 유닛 내에 존재하는 경계가 상기 기준 비디오 유닛의 좌변 또는 우변을 따르는 경우, 대체 프레임의 블록들의 L개의 컬럼들을 상기 제 1 위치들로서 식별하는 단계; 및
    K=ceiling (W, M) 을 계산하는 단계로서, 실링 함수는 W/M의 다음으로 가장 큰 정수를 출력하고, W는 기준 프레임의 경계의 폭이고 M은 y-방향을 따르는 블록 사이즈인, 상기 K=ceiling (W, M) 을 계산하는 단계;
    상기 기준 비디오 유닛 내에 존재하는 경계가 상기 기준 비디오 유닛의 상부 또는 하부를 따르는 경우, 상기 대체 프레임의 픽셀들의 K개의 로우들을 상기 제 1 위치들로서 식별하는 단계를 포함하는, 방법.
  11. 제 10 항에 있어서,
    상기 대체 비디오 유닛 내의 상기 제 1 위치들을 식별하는 단계는:
    W가 N의 배수인 경우 블록들의 상기 L개의 컬럼들에 인접한 블록들의 컬럼을 제 1 경계 위치들로서 식별하는 단계; 및
    W가 M의 배수인 경우 블록들의 상기 K개의 로우들에 인접한 블록들의 로우를 제 1 경계 위치들로서 식별하는 단계를 더 포함하는, 방법.
  12. 제 10 항에 있어서,
    상기 대체 비디오 유닛 내의 상기 제 2 위치들을 식별하는 단계는:
    블록들의 상기 L개의 컬럼들에 인접한 블록들의 컬럼의 적어도 일부를 상기 블록의 x-좌표와 경계 위치의 x-좌표에 기초하여 제 2 경계 위치들로서 식별하는 단계; 및
    블록들의 상기 K개의 로우들에 인접한 블록들의 로우의 적어도 일부를 상기 블록의 y-좌표와 경계 위치의 y-좌표에 기초하여 제 2 경계 위치들로서 식별하는 단계를 포함하는, 방법.
  13. 제 2 항에 있어서,
    상기 제 1 위치들은 실제 경계 위치들을 포함하고, 그리고
    상기 제 2 위치들은 오류 경계 위치들을 포함하는, 방법.
  14. 제 1 항에 있어서,
    상기 경계 아티팩트들을 포함하는 대체 비디오 유닛의 위치들을 식별하기 위해 상기 대체 비디오 유닛을 분석하는 단계는 경계 내에 픽셀들을 포함하고 경계 아티팩트들이 없는 상기 대체 비디오 유닛의 위치들을 식별하지 않는 단계를 포함하는, 방법.
  15. 제 1 항에 있어서,
    상기 대체 비디오 유닛을 모션 보상된 내삽 및 모션 보상된 외삽 중 하나를 이용하여 생성하는 단계를 더 포함하는, 방법.
  16. 제 1 항에 있어서,
    상기 대체 비디오 유닛은 대체 비디오 프레임, 대체된 비디오 슬라이스, 또는 대체 비디오 블록 중 하나를 포함하는, 방법.
  17. 경계 아티팩트들을 포함하는 대체 비디오 유닛의 위치들을 식별하기 위해 상기 대체 비디오 유닛을 분석하는 경계 아티팩트 식별 유닛; 및
    상기 대체 비디오 유닛의 상기 식별된 위치들 내의 상기 경계 아티팩트들을 정정하는 경계 아티팩트 정정 유닛을 포함하는, 장치.
  18. 제 17 항에 있어서,
    상기 경계 아티팩트 식별 유닛은, 기준 비디오 유닛 내에 존재하고 상기 대체 비디오 유닛 내에 존재하지 않는 경계에 대응하는 제 1 경계 아티팩트들을 포함하는 상기 대체 비디오 유닛 내의 제 1 위치들을 식별하고, 상기 대체 비디오 유닛 내에 존재하고 상기 기준 비디오 유닛 내에 존재하지 않는 경계에 대응하는 제 2 경계 아티팩트들을 포함하는, 상기 대체 비디오 유닛 내의 제 2 위치들을 식별하고; 그리고
    상기 경계 아티팩트 정정 유닛은 상기 대체 비디오 유닛의 상기 제 1 위치들의 경계 아티팩트들을 제 1 경계 아티팩트 정정 기술을 이용하여 정정하고 상기 대체 비디오 유닛의 상기 제 2 위치들의 경계 아티팩트들을 제 2 경계 아티팩트 정정 기술을 이용하여 정정하는, 장치.
  19. 제 18 항에 있어서,
    상기 경계 아티팩트 정정 유닛은 상기 제 1 위치들 및 상기 제 2 위치들의 경계 아티팩트들을 픽셀 도메인에서 정정하는, 장치.
  20. 제 19 항에 있어서,
    상기 경계 아티팩트 정정 유닛은
    상기 대체 비디오 유닛의 상기 제 1 위치들 내의 픽셀들의 픽셀 값들을 상기 기준 비디오 유닛 내에 존재하는 경계의 픽셀 값들과 실질적으로 유사한 픽셀 값들로 교체하고, 그리고
    상기 제 2 위치들 내의 픽셀들의 픽셀 값들을 상기 기준 비디오 유닛에 존재하는 경계에 인접한 하나 이상의 픽셀 값들의 평균으로서 계산된 픽셀 값들로 교체하는, 장치.
  21. 제 20 항에 있어서,
    상기 경계 아티팩트 정정 유닛은, 상기 대체 비디오 유닛의 상기 제 1 위치들 내의 픽셀들의 픽셀 값들을 상기 기준 비디오 유닛의 대응 위치 내의 픽셀 값들의 사본으로 교체하거나, 상기 대체 비디오 유닛의 상기 제 1 위치 내의 픽셀들의 픽셀 값들을 미리 결정된 경계 픽셀 값들로 교체함으로써, 상기 대체 비디오 유닛의 상기 제 1 위치들 내에 픽셀들의 픽셀 값들을 교체하는, 장치.
  22. 제 18 항에 있어서,
    상기 경계 아티팩트 정정 유닛은 상기 대체 비디오 유닛의 픽셀 값들을 내삽하거나 외삽하기 전에 상기 제 1 위치들 및 상기 제 2 위치들의 경계 아티팩트들을 정정하는, 장치.
  23. 제 22 항에 있어서,
    상기 경계 아티팩트 정정 유닛은
    상기 제 1 위치들의 각각의 블록들과 연관된 모션 벡터들을 0과 같게 설정하고,
    상기 각각의 블록들과 연관된 상기 모션 벡터들을 이용하여 상기 제 1 위치들의 블록들에 대한 인터 예측을 실시하고,
    대체 프레임의 상기 제 2 위치들의 블록들에 대한 인트라 예측 모드를 선택하고, 그리고
    상기 선택된 인트라 예측 모드를 이용하여 인트라 예측을 실시하는, 장치.
  24. 제 18 항에 있어서,
    상기 경계 아티팩트 식별 유닛은
    상기 기준 비디오 유닛 내에 존재하는 경계가 상기 기준 비디오 유닛의 좌변 또는 우변을 따르는 경우 대체 프레임의 픽셀들의 W개의 컬럼들을 상기 제 1 위치들로서 식별하고; 그리고
    상기 기준 비디오 유닛 내에 존재하는 경계가 상기 기준 비디오 유닛의 상부 또는 하부를 따르는 경우 상기 대체 프레임의 픽셀들의 W개의 로우들을 상기 제 1 위치들로서 식별하고,
    상기 W는 상기 기준 비디오 유닛 내에 존재하는 경계의 폭인, 장치.
  25. 제 24 항에 있어서,
    상기 경계 아티팩트 식별 유닛은
    MVx가 0과 같지 않은 경우 픽셀들의 상기 W개의 컬럼들에 인접한 대체 프레임의 픽셀들의 MVx개의 컬럼들을 상기 제 2 위치들로서 식별하고, 그리고
    MVy가 0과 같지 않은 경우 픽셀들의 상기 W개의 로우들에 인접한 상기 대체 프레임의 픽셀들의 MVy개의 로우들을 상기 제 2 위치들로서 식별하고,
    상기 MVx는 각각의 블록들의 모션 벡터들의 x-컴포넌트이고,
    상기 MVy는 상기 각각의 블록들의 모션 벡터들의 y-컴포넌트인, 장치.
  26. 제 18 항에 있어서,
    상기 경계 아티팩트 식별 유닛은
    L=ceiling (W, N) 을 계산하는 것으로서, 실링 (ceiling) 함수는 W/N의 다음으로 가장 큰 정수를 출력하고, W는 기준 프레임의 경계의 폭이고 N은 x-방향을 따르는 블록 사이즈인, 상기 L=ceiling (W, N) 을 계산하고;
    상기 기준 비디오 유닛 내에 존재하는 경계가 상기 기준 비디오 유닛의 좌변 또는 우변을 따르는 경우, 대체 프레임의 블록들의 L개의 컬럼들을 상기 제 1 위치들로서 식별하고; 그리고
    K=ceiling (W, M) 을 계산하는 것으로서, 실링 함수는 W/M의 다음으로 가장 큰 정수를 출력하고, W는 기준 프레임의 경계의 폭이고 M은 y-방향을 따르는 블록 사이즈인, 상기 K=ceiling (W, M) 을 계산하고;
    상기 기준 비디오 유닛 내에 존재하는 경계가 상기 기준 비디오 유닛의 상부 또는 하부를 따르는 경우, 상기 대체 프레임의 픽셀들의 K개의 로우들을 상기 제 1 위치들로서 식별하는, 장치.
  27. 제 26 항에 있어서,
    상기 경계 아티팩트 식별 유닛은
    W가 N의 배수인 경우 블록들의 상기 L개의 컬럼들에 인접한 블록들의 컬럼을 제 1 경계 위치들로서 식별하고; 그리고
    W가 M의 배수인 경우 블록들의 상기 K개의 로우들에 인접한 블록들의 로우를 제 1 경계 위치들로서 식별하는, 장치.
  28. 제 26 항에 있어서,
    상기 경계 아티팩트 식별 유닛은
    블록들의 상기 L개의 컬럼들에 인접한 블록들의 컬럼의 적어도 일부를 상기 블록의 x-좌표와 경계 위치의 x-좌표에 기초하여 제 2 경계 위치들로서 식별하고; 그리고
    블록들의 상기 K개의 로우들에 인접한 블록들의 로우의 적어도 일부를 상기 블록의 y-좌표와 경계 위치의 y-좌표에 기초하여 제 2 경계 위치들로서 식별하는, 장치.
  29. 제 18 항에 있어서,
    상기 제 1 위치들은 실제 경계 위치들을 포함하고, 그리고
    상기 제 2 위치들은 오류 경계 위치들을 포함하는, 장치.
  30. 제 18 항에 있어서,
    상기 경계 아티팩트 식별 유닛은 경계 내에 픽셀들을 포함하고 경계 아티팩트들이 없는 상기 대체 비디오 유닛의 위치들을 식별하지 않는, 장치.
  31. 제 18 항에 있어서,
    상기 대체 비디오 유닛을 모션 보상된 내삽 및 모션 보상된 외삽 중 하나를 이용하여 생성하는 것을 더 포함하는, 장치.
  32. 제 18 항에 있어서,
    상기 대체 비디오 유닛은 대체 비디오 프레임, 대체된 비디오 슬라이스, 또는 대체 비디오 블록 중 하나를 포함하는, 장치.
  33. 제 18 항에 있어서,
    상기 장치는 무선 통신 디바이스를 포함하는, 장치.
  34. 제 18 항에 있어서,
    상기 장치는 집적 회로를 포함하는, 장치.
  35. 실행될 경우, 적어도 하나의 프로세서로 하여금,
    경계 아티팩트들을 포함하는 대체 비디오 유닛의 위치들을 식별하기 위해 상기 대체 비디오 유닛을 분석하게 하고; 그리고
    상기 대체 비디오 유닛의 상기 식별된 위치들 내의 상기 경계 아티팩트들을 정정하게 하는
    명령들을 포함하는, 컴퓨터 판독가능 매체.
  36. 제 35 항에 있어서,
    대체 비디오 유닛을 분석하게 하는 명령들은,
    기준 비디오 유닛 내에 존재하고 상기 대체 비디오 유닛 내에 존재하지 않는 경계에 대응하는 제 1 경계 아티팩트들을 포함하는, 상기 대체 비디오 유닛 내의 제 1 위치들을 식별하게 하고; 그리고
    상기 대체 비디오 유닛 내에 존재하고 상기 기준 비디오 유닛 내에 존재하지 않는 경계에 대응하는 제 2 경계 아티팩트들을 포함하는, 상기 대체 비디오 유닛 내의 제 2 위치들을 식별하게 하는 명령들을 포함하고;
    상기 식별된 위치들 내의 상기 경계 아티팩트들을 정정하게 하는 명령들은,
    상기 대체 비디오 유닛의 상기 제 1 위치들 내의 경계 아티팩트들을 제 1 경계 아티팩트 정정 기술을 이용하여 정정하게 하고; 그리고
    상기 대체 비디오 유닛의 상기 제 2 위치들 내의 경계 아티팩트들을 제 2 경계 아티팩트 정정 기술을 이용하여 정정하게 하는 명령들을 포함하는, 컴퓨터 판독가능 매체.
  37. 제 36 항에 있어서,
    상기 프로세서로 하여금 상기 제 1 위치들 내의 경계 아티팩트들을 정정하게 하는 명령들은, 상기 프로세서로 하여금 상기 대체 비디오 유닛의 상기 제 1 위치들 내의 픽셀들의 픽셀 값들을 상기 기준 비디오 유닛 내에 존재하는 경계의 픽셀 값들과 실질적으로 유사한 픽셀 값들로 교체하게 하는 명령들을 포함하고,
    상기 프로세서로 하여금 상기 제 2 위치들 내의 경계 아티팩트들을 정정하게 하는 명령들은, 상기 프로세서로 하여금 상기 제 2 위치들 내의 픽셀들의 픽셀 값들을 상기 기준 비디오 유닛에 존재하는 경계에 인접한 하나 이상의 픽셀 값들의 평균으로서 계산된 픽셀 값들로 교체하게 하는 명령들을 포함하는, 컴퓨터 판독가능 매체.
  38. 제 36 항에 있어서,
    상기 프로세서로 하여금 제 1 위치들 내의 경계 아티팩트들을 정정하게 하는 명령들은 상기 프로세서로 하여금
    상기 제 1 위치들의 각각의 블록들과 연관된 모션 벡터들을 0과 같게 설정하게 하고, 그리고
    상기 각각의 블록들과 연관된 모션 벡터들을 이용하여 상기 제 1 위치들의 블록들에 대한 인터 예측을 실시하게 하는 명령들을 포함하고, 그리고
    상기 제 2 위치들 내의 경계 아티팩트들을 정정하는 것은
    대체 프레임의 상기 제 2 위치들의 블록들에 대하여 인트라 예측 모드를 선택하는 것, 및
    상기 선택된 인트라 예측 모드를 이용하여 인트라 예측을 실시하는 것을 포함하는, 컴퓨터 판독가능 매체.
  39. 제 36 항에 있어서,
    상기 프로세서로 하여금 상기 대체 비디오 유닛 내의 상기 제 1 위치들을 식별하게 하는 명령들은 상기 프로세서로 하여금
    상기 기준 비디오 유닛 내에 존재하는 경계가 상기 기준 비디오 유닛의 좌변 또는 우변을 따르는 경우 대체 프레임의 픽셀들의 W개의 컬럼들을 상기 제 1 위치들로서 식별하게 하고; 그리고
    상기 기준 비디오 유닛 내에 존재하는 경계가 상기 기준 비디오 유닛의 상부 또는 하부를 따르는 경우 대체 프레임의 픽셀들의 W개의 로우들을 상기 제 1 위치들로서 식별하게 하는 명령들을 포함하고,
    상기 W는 상기 기준 비디오 유닛 내에 존재하는 경계의 폭인, 컴퓨터 판독가능 매체.
  40. 제 36 항에 있어서,
    상기 프로세서로 하여금 상기 대체 비디오 유닛 내의 상기 제 2 위치들을 식별하게 하는 명령들은 상기 프로세서로 하여금
    MVx가 0과 같지 않은 경우 픽셀들의 상기 W개의 컬럼들에 인접한 대체 프레임의 픽셀들의 MVx개의 컬럼들을 상기 제 2 위치들로서 식별하게 하고; 그리고
    MVy가 0과 같지 않은 경우 픽셀들의 상기 W개의 로우들에 인접한 상기 대체 프레임의 픽셀들의 MVy개의 로우들을 상기 제 2 위치들로서 식별하게 하는 명령들을 포함하고,
    상기 MVx는 각각의 블록들의 모션 벡터들의 x-컴포넌트이고,
    상기 MVY는 상기 각각의 블록들의 모션 벡터들의 y-컴포넌트인, 컴퓨터 판독가능 매체.
  41. 제 36 항에 있어서,
    상기 프로세서로 하여금 상기 대체 비디오 유닛 내의 상기 제 1 위치들을 식별하게 하는 명령들은 상기 프로세서로 하여금
    L=ceiling (W, N) 을 계산하게 하는 것으로서, 실링 (ceiling) 함수는 W/N의 다음으로 가장 큰 정수를 출력하고, W는 기준 프레임의 경계의 폭이고 N은 x-방향을 따르는 블록 사이즈인, 상기 L=ceiling (W, N) 을 계산하게 하고;
    상기 기준 비디오 유닛 내에 존재하는 경계가 상기 기준 비디오 유닛의 좌변 또는 우변을 따르는 경우, 대체 프레임의 블록들의 L개의 컬럼들을 상기 제 1 위치들로서 식별하게 하고; 그리고
    K=ceiling (W, M) 을 계산하게 하는 것으로서, 실링 함수는 W/M의 다음으로 가장 큰 정수를 출력하고, W는 기준 프레임의 경계의 폭이고 M은 y-방향을 따르는 블록 사이즈인, 상기 K=ceiling (W, M) 을 계산하게 하고;
    상기 기준 비디오 유닛 내에 존재하는 경계가 상기 기준 비디오 유닛의 상부 또는 하부를 따르는 경우, 상기 대체 프레임의 픽셀들의 K개의 로우들을 상기 제 1 위치들로서 식별하게 하는 명령들을 포함하는, 컴퓨터 판독가능 매체.
  42. 제 41 항에 있어서,
    상기 프로세서로 하여금 상기 대체 비디오 유닛 내의 상기 제 1 위치들을 식별하게 하는 명령들은 상기 프로세서로 하여금
    W가 N의 배수인 경우 블록들의 상기 L개의 컬럼들에 인접한 블록들의 컬럼을 제 1 경계 위치들로서 식별하게 하고; 그리고
    W가 M의 배수인 경우 블록들의 상기 K개의 로우들에 인접한 블록들의 로우를 제 1 경계 위치들로서 식별하게 하는 명령들을 더 포함하는, 컴퓨터 판독가능 매체.
  43. 제 42 항에 있어서,
    상기 프로세서로 하여금 상기 대체 비디오 유닛 내의 상기 제 2 위치들을 식별하게 하는 명령들은 상기 프로세서로 하여금
    블록들의 상기 L개의 컬럼들에 인접한 블록들의 컬럼의 적어도 일부를 상기 블록의 x-좌표와 경계 위치의 x-좌표에 기초하여 제 2 경계 위치들로서 식별하게 하고; 그리고
    블록들의 상기 K개의 로우들에 인접한 블록들의 로우의 적어도 일부를 상기 블록의 y-좌표와 경계 위치의 y-좌표에 기초하여 제 2 경계 위치들로서 식별하게 하는 명령들을 포함하는, 컴퓨터 판독가능 매체.
  44. 경계 아티팩트들을 포함하는 대체 비디오 유닛의 위치들을 식별하기 위해 상기 대체 비디오 유닛을 분석하는 수단; 및
    상기 대체 비디오 유닛의 상기 식별된 위치들 내의 상기 경계 아티팩트들을 정정하는 수단을 포함하는, 디바이스.
  45. 제 44 항에 있어서,
    상기 분석 수단은 기준 비디오 유닛 내에 존재하고 상기 대체 비디오 유닛 내에 존재하지 않는 경계에 대응하는 제 1 경계 아티팩트들을 포함하는, 상기 대체 비디오 유닛 내의 제 1 위치들을 식별하고, 그리고 상기 대체 비디오 유닛 내에 존재하고 상기 기준 비디오 유닛 내에 존재하지 않는 경계에 대응하는 제 2 경계 아티팩트들을 포함하는, 상기 대체 비디오 유닛 내의 제 2 위치들을 식별하고;
    상기 정정 수단은 상기 대체 비디오 유닛의 상기 제 1 위치들 내의 경계 아티팩트들을 제 1 경계 아티팩트 정정 기술을 이용하여 정정하고, 그리고 상기 대체 비디오 유닛의 상기 제 2 위치들 내의 경계 아티팩트들을 제 2 경계 아티팩트 정정 기술을 이용하여 정정하는, 디바이스.
  46. 제 45 항에 있어서,
    상기 정정 수단은
    상기 대체 비디오 유닛의 상기 제 1 위치들 내의 픽셀들의 픽셀 값들을 상기 기준 비디오 유닛 내에 존재하는 경계의 픽셀 값들과 실질적으로 유사한 픽셀 값들로 교체하고, 그리고
    상기 제 2 위치들 내의 픽셀들의 픽셀 값들을 상기 기준 비디오 유닛 내에 존재하는 경계에 인접한 하나 이상의 픽셀 값들의 평균으로 계산된 픽셀 값들로 교체하는, 디바이스.
  47. 제 45 항에 있어서,
    상기 정정 수단은
    상기 제 1 위치들의 각각의 블록들과 연관된 모션 벡터들을 0과 같게 설정하고,
    상기 각각의 블록들과 연관된 모션 벡터들을 이용하여 상기 제 1 위치들의 상기 블록들을 위한 인터 예측을 실시하고,
    대체 프레임의 상기 제 2 위치들의 블록들에 대하여 인트라 예측 모드를 선택하고, 그리고
    상기 선택된 인트라 예측 모드를 이용하여 인트라 예측을 실시하는, 디바이스.
  48. 제 45 항에 있어서,
    상기 분석 수단은
    상기 기준 비디오 유닛 내에 존재하는 경계가 상기 기준 비디오 유닛의 좌변 또는 우변을 따르는 경우 대체 프레임의 픽셀들의 W개의 컬럼들을 상기 제 1 위치들로서 식별하고; 그리고
    상기 기준 비디오 유닛 내에 존재하는 경계가 상기 기준 비디오 유닛의 상부 또는 하부를 따르는 경우 대체 프레임의 픽셀들의 W개의 로우들을 상기 제 1 위치들로서 식별하고,
    상기 W는 상기 기준 비디오 유닛 내에 존재하는 경계의 폭인, 디바이스.
  49. 제 48 항에 있어서,
    상기 분석 수단은
    MVx가 0과 같지 않은 경우 픽셀들의 상기 W개의 컬럼들에 인접한 상기 대체 프레임의 픽셀들의 MVx개의 컬럼들을 상기 제 2 위치들로서 식별하고; 그리고
    MVy가 0과 같지 않은 경우 픽셀들의 상기 W개의 로우들에 인접한 상기 대체 프레임의 픽셀들의 MVy개의 로우들을 상기 제 2 위치들로서 식별하고,
    상기 MVx는 각각의 블록들의 모션 벡터들의 x-컴포넌트이고,
    상기 MVy는 상기 각각의 블록들의 모션 벡터모션들의 y-컴포넌트인, 디바이스.
  50. 제 45 항에 있어서,
    상기 분석 수단은
    L=ceiling (W, N)을 계산하는 것으로서, 실링 (ceiling) 함수는 W/N의 다음으로 가장 큰 정수를 출력하고, W는 기준 프레임의 경계의 폭이고 N은 x-방향을 따르는 블록 사이즈인, 상기 L=ceiling (W, N) 을 계산하고,
    상기 기준 비디오 유닛 내에 존재하는 경계가 상기 기준 비디오 유닛의 좌변 또는 우변을 따르는 경우, 대체 프레임의 블록들의 L개의 컬럼들을 상기 제 1 위치들로서 식별하고;
    K=ceiling (W, M)을 계산하는 것으로서, 실링 함수는 W/M의 다음으로 가장 큰 정수를 출력하고, W는 기준 프레임의 경계의 폭이고 M은 y-방향을 따르는 블록 사이즈인, 상기 K=ceiling (W, M) 을 계산하고,
    상기 기준 비디오 유닛 내에 존재하는 경계가 상기 기준 비디오 유닛의 상부 또는 하부를 따르는 경우, 상기 대체 프레임의 픽셀들의 K개의 로우들을 상기 제 1 위치들로서 식별하는, 디바이스.
  51. 제 50 항에 있어서,
    상기 식별 수단은
    W가 N의 배수인 경우 블록들의 상기 L개의 컬럼들에 인접한 블록들의 컬럼을 제 1 경계 위치들로서 식별하고; 그리고
    W가 M의 배수인 경우 블록들의 상기 K개의 로우들에 인접한 블록들의 로우를 제 1 경계 위치들로서 식별하는, 디바이스.
  52. 제 50 항에 있어서,
    상기 식별 수단은
    블록들의 상기 L개의 컬럼들에 인접한 블록들의 컬럼의 적어도 일부를 상기 블록의 x-좌표와 경계 위치의 x-좌표에 기초하여 제 2 경계 위치들로서 식별하고; 그리고
    블록들의 상기 K개의 로우들에 인접한 블록들의 로우의 적어도 일부를 상기 블록의 y-좌표와 경계 위치의 y-좌표에 기초하여 제 2 경계 위치들로서 식별하는, 디바이스.
KR1020107026173A 2008-04-23 2009-04-22 비디오 유닛 내의 경계 아티팩트 정정 KR101197506B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US4738108P 2008-04-23 2008-04-23
US61/047,381 2008-04-23
US12/395,244 2009-02-27
US12/395,244 US8208563B2 (en) 2008-04-23 2009-02-27 Boundary artifact correction within video units
PCT/US2009/041458 WO2009132145A1 (en) 2008-04-23 2009-04-22 Boundary artifact correction within video units

Publications (2)

Publication Number Publication Date
KR20100137009A true KR20100137009A (ko) 2010-12-29
KR101197506B1 KR101197506B1 (ko) 2012-11-09

Family

ID=41215005

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107026173A KR101197506B1 (ko) 2008-04-23 2009-04-22 비디오 유닛 내의 경계 아티팩트 정정

Country Status (7)

Country Link
US (1) US8208563B2 (ko)
EP (1) EP2292004B1 (ko)
JP (1) JP5123427B2 (ko)
KR (1) KR101197506B1 (ko)
CN (1) CN102017615B (ko)
TW (1) TW201002082A (ko)
WO (1) WO2009132145A1 (ko)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
KR101500324B1 (ko) * 2008-08-05 2015-03-10 삼성디스플레이 주식회사 표시 장치
JP5238523B2 (ja) * 2009-01-13 2013-07-17 株式会社日立国際電気 動画像符号化装置、動画像復号化装置、および、動画像復号化方法
JP2010258741A (ja) * 2009-04-24 2010-11-11 Sony Corp 画像処理装置および方法、並びにプログラム
US9713751B2 (en) 2009-05-29 2017-07-25 Acushnet Company Wedge type golf club head
US8665367B2 (en) * 2010-01-29 2014-03-04 Sharp Laboratories Of America, Inc. Video resolution enhancement technique
US8648870B1 (en) * 2010-08-02 2014-02-11 Adobe Systems Incorporated Method and apparatus for performing frame buffer rendering of rich internet content on display devices
WO2012144876A2 (ko) * 2011-04-21 2012-10-26 한양대학교 산학협력단 인루프 필터링을 적용한 예측 방법을 이용한 영상 부호화/복호화 방법 및 장치
US10659724B2 (en) * 2011-08-24 2020-05-19 Ati Technologies Ulc Method and apparatus for providing dropped picture image processing
WO2013033913A1 (en) * 2011-09-09 2013-03-14 Technicolor (China) Technology Co., Ltd. Method and device for calculating distortion of a video being affected by compression artifacts and channel artifacts
EP2774360B1 (en) * 2011-11-04 2017-08-02 Huawei Technologies Co., Ltd. Differential pulse code modulation intra prediction for high efficiency video coding
TWI606418B (zh) * 2012-09-28 2017-11-21 輝達公司 圖形處理單元驅動程式產生內插的圖框之電腦系統及方法
USD773574S1 (en) 2015-02-12 2016-12-06 Acushnet Company Wedge golf club set
CA3039466A1 (en) * 2015-10-08 2017-04-13 Sharp Laboratories Of America, Inc. Systems and methods for reducing artifacts in temporal scalable layers of video
FI20165256A (fi) * 2016-03-24 2017-09-25 Nokia Technologies Oy Laitteisto, menetelmä ja tietokoneohjelma videokoodaukseen ja -dekoodaukseen
US10354394B2 (en) 2016-09-16 2019-07-16 Dolby Laboratories Licensing Corporation Dynamic adjustment of frame rate conversion settings
DE102016221204A1 (de) * 2016-10-27 2018-05-03 Siemens Aktiengesellschaft Bestimmung mindestens eines genäherten Zwischendatensatzes für eine Echtzeitanwendung
KR101819193B1 (ko) * 2016-11-17 2018-01-16 (주)판도라티비 실시간 파일 포맷 변환 스트리밍 서비스 방법
USD829837S1 (en) 2017-03-01 2018-10-02 Acushnet Company Wedge golf club
EP3614680B1 (en) * 2017-04-17 2024-05-01 Sony Group Corporation Transmission device, transmission method, reception device, reception method, recording device, and recording method
US10977809B2 (en) 2017-12-11 2021-04-13 Dolby Laboratories Licensing Corporation Detecting motion dragging artifacts for dynamic adjustment of frame rate conversion settings
WO2019151284A1 (ja) * 2018-01-30 2019-08-08 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
US11140407B2 (en) * 2018-02-08 2021-10-05 Apple Inc. Frame boundary artifacts removal
US11146810B2 (en) * 2018-11-27 2021-10-12 Qualcomm Incorporated Decoder-side motion vector refinement
JP7263529B2 (ja) * 2019-02-14 2023-04-24 北京字節跳動網絡技術有限公司 デコーダ側精緻化ツールのサイズ選択アプリケーション
EP3951766A4 (en) * 2019-03-25 2022-12-07 Sony Interactive Entertainment Inc. IMAGE DISPLAY CONTROL DEVICE, TRANSMITTING DEVICE, IMAGE DISPLAY CONTROL METHOD AND PROGRAM
US11551592B2 (en) 2019-04-24 2023-01-10 Hewlett-Packard Development Company, L.P. Displays with pixels coupled by beam splitters

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5721822A (en) * 1995-07-21 1998-02-24 Intel Corporation Run-length encoding/decoding video signals using scan patterns explicitly encoded into bitstreams
US6480632B2 (en) 1998-12-03 2002-11-12 Intel Corporation Method and apparatus to interpolate video frames
US6760378B1 (en) * 1999-06-30 2004-07-06 Realnetworks, Inc. System and method for generating video frames and correcting motion
EP1422928A3 (en) 2002-11-22 2009-03-11 Panasonic Corporation Motion compensated interpolation of digital video signals
US7558320B2 (en) 2003-06-13 2009-07-07 Microsoft Corporation Quality control in frame interpolation with motion analysis
JP2005056275A (ja) * 2003-08-06 2005-03-03 Nec Corp 携帯端末用文字入力装置、携帯端末用文字入力方法、携帯端末
US7881376B2 (en) * 2004-05-14 2011-02-01 Panasonic Corporation Motion compensation apparatus
US20060233253A1 (en) * 2005-03-10 2006-10-19 Qualcomm Incorporated Interpolated frame deblocking operation for frame rate up conversion applications
EP1950964A4 (en) * 2005-11-07 2012-05-16 Sharp Kk IMAGE DISPLAY DEVICE AND METHOD
JP4303748B2 (ja) * 2006-02-28 2009-07-29 シャープ株式会社 画像表示装置及び方法、画像処理装置及び方法
EP1843587A1 (en) * 2006-04-05 2007-10-10 STMicroelectronics S.r.l. Method for the frame-rate conversion of a digital video signal and related apparatus
US9025673B2 (en) * 2006-04-05 2015-05-05 Qualcomm Incorporated Temporal quality metric for video coding
US20080025390A1 (en) * 2006-07-25 2008-01-31 Fang Shi Adaptive video frame interpolation
JP5008431B2 (ja) * 2007-03-15 2012-08-22 キヤノン株式会社 画像処理装置及び画像処理方法

Also Published As

Publication number Publication date
JP2011519228A (ja) 2011-06-30
CN102017615B (zh) 2013-06-12
EP2292004A1 (en) 2011-03-09
EP2292004B1 (en) 2018-09-05
US20090268823A1 (en) 2009-10-29
TW201002082A (en) 2010-01-01
JP5123427B2 (ja) 2013-01-23
CN102017615A (zh) 2011-04-13
US8208563B2 (en) 2012-06-26
WO2009132145A1 (en) 2009-10-29
KR101197506B1 (ko) 2012-11-09

Similar Documents

Publication Publication Date Title
KR101197506B1 (ko) 비디오 유닛 내의 경계 아티팩트 정정
JP5174581B2 (ja) 順方向予測インターレース映像フレームのフィールド用の動きベクトルの予測
US8116380B2 (en) Signaling for field ordering and field/frame display repetition
US7426308B2 (en) Intraframe and interframe interlace coding and decoding
US8855202B2 (en) Flexible range reduction
US8620103B2 (en) In-loop adaptive wiener filter for video coding and decoding
RU2547239C2 (ru) Зависящее от режима сканирование коэффициентов блока видеоданных
TWI413419B (zh) 視訊編碼中之非零修整與預測模式選擇技術
US8107531B2 (en) Signaling and repeat padding for skip frames
KR100944851B1 (ko) 동화상 부호화 방법 및 동화상 복호화 방법
KR101811090B1 (ko) 화상 부호화 장치 및 화상 복호 장치
US20080084932A1 (en) Controlling loop filtering for interlaced video frames
US20060291557A1 (en) Adaptive reference picture generation
JP2009531980A (ja) デジタルビデオエンコーダの内部予測及びモード決定処理の計算を低減する方法
US20140064378A1 (en) Image information encoding method and encoder, and image information decoding method and decoder
JPWO2007105614A1 (ja) イントラ予測モード選択方法及び動画像符号化と、これを用いた装置とプログラム
JP2008219205A (ja) 画像情報符号化装置及び画像情報符号化方法
JP4222274B2 (ja) 符号化モード選択装置及び符号化モード選択プログラム
JP5298487B2 (ja) 画像符号化装置、画像復号化装置、および画像符号化方法
JP2001309389A (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: 20150930

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160929

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170929

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180928

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190924

Year of fee payment: 8