KR20110106406A - 비디오 코딩에서 보간 필터링, 인-루프 필터링 및 포스트-필터링을 위한 결합된 방식 - Google Patents

비디오 코딩에서 보간 필터링, 인-루프 필터링 및 포스트-필터링을 위한 결합된 방식 Download PDF

Info

Publication number
KR20110106406A
KR20110106406A KR1020117017159A KR20117017159A KR20110106406A KR 20110106406 A KR20110106406 A KR 20110106406A KR 1020117017159 A KR1020117017159 A KR 1020117017159A KR 20117017159 A KR20117017159 A KR 20117017159A KR 20110106406 A KR20110106406 A KR 20110106406A
Authority
KR
South Korea
Prior art keywords
video
loop filter
block
post
filter
Prior art date
Application number
KR1020117017159A
Other languages
English (en)
Other versions
KR101273149B1 (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 KR20110106406A publication Critical patent/KR20110106406A/ko
Application granted granted Critical
Publication of KR101273149B1 publication Critical patent/KR101273149B1/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/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
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • 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/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop

Landscapes

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

Abstract

일 예에서, 본 개시물은 비디오 유닛의 비디오 블록들의 필터링을 위한 기법들을 설명한다. 필터링 기법들은 비디오 블록이 인터 코딩되거나 인트라 코딩되는지, 및 비디오 블록의 인코딩 동안 모션 보상 프로세스 동안 적응형 보간이 수행되었는지와 같은 다양한 팩터들에 기초하여 비디오 유닛의 각 비디오 블록에 대한 하나 이상의 상이한 타입의 필터링을 선택할 수도 있다. 적응형 보간이 수행되었을 때, 적응형 보간은 몇몇 경우에서는 불필요하거나 바람직하지 못한 추가의 필터링을 렌더링하는 필터링의 레벨을 제공할 수도 있다.

Description

비디오 코딩에서 보간 필터링, 인-루프 필터링 및 포스트-필터링을 위한 결합된 방식{COMBINED SCHEME FOR INTERPOLATION FILTERING, IN-LOOP FILTERING AND POST-LOOP FILTERING IN VIDEO CODING}
본 출원은,
2008년 12월 22일 출원된 미국 가출원 번호 61/140,026 호;
2008년 12월 23일 출원된 미국 가출원 번호 61/140,585 호;
2009년 1월 8일 출원된 미국 가출원 번호 61/143,324 호; 및
2009년 6월 26일 출원된 미국 가출원 번호 61/220,947 호의 이익을 주장하며, 그 전체 내용이 참조로 여기에 포함된다.
본 개시물은 비디오 데이터를 압축하기 위해 사용된 블록 기반 비디오 코딩에 관한 것으로, 더욱 구체적으로는 블록 기반 비디오 코딩 동안의 필터링 기술들에 관한 것이다.
디지털 비디오 능력들이, 디지털 텔레비전, 디지털 직접 브로드캐스트 시스템, 무선 전화 핸드셋과 같은 무선 통신 디바이스, 무선 브로드캐스트 시스템, 개인 휴대 보조 단말기 (PDA), 랩탑 또는 데스크탑 컴퓨터, 디지털 카메라, 디지털 레코딩 디바이스, 비디오 게임 디바이스, 비디오 게임 콘솔 등을 포함하는 광범위한 디바이스에 포함될 수 있다. 디지털 비디오 디바이스는, 비디오 데이터를 압축하기 위해, MPEG-2, MPEG-4, 또는 ITU-T H.264/MPEG-4, Part 10, 어드밴스드 비디오 코딩 (AVC) 에 기재된 바와 같은 비디오 압축 기술들을 구현한다. 비디오 압축 기술들은 비디오 시퀀스에 고유한 리던던시를 감소시키거나 제거하기 위해 공간 및 시간 예측을 수행한다.
블록 기반 비디오 압축 기법들은 일반적으로, 공간 예측 및/또는 시간 예측을 수행한다. 인트라-코딩이, 비디오 프레임, 비디오 프레임의 슬라이스 등을 포함할 수도 있는 소정의 코딩된 유닛내의 비디오 블록들 사이의 공간 리던던시를 감소시키거나 제거하기 위해 공간 예측에 의존한다. 반대로, 인터-코딩은, 비디오 시퀀스의 연속 코딩된 유닛의 비디오 블록들 사이의 시간 리던던시를 감소시키거나 제거하기 위해 시간 예측에 의존한다. 인트라-코딩을 위해, 비디오 인코더가 동일한 코딩된 유닛내의 다른 데이터에 기초하여 데이터를 압축하기 위해 공간 예측을 수행한다. 인터-코딩을 위해, 비디오 인코더는 2개 이상의 인접한 코딩된 유닛들의 대응하는 비디오 블록들의 이동을 트랙킹하기 위해 모션 추정 및 모션 보상을 수행한다.
코딩된 비디오 블록은, 예측 블록, 및 코딩되는 블록과 예측 블록 사이의 차이를 나타내는 데이터의 잔류 블록을 생성하거나 식별하기 위해 사용될 수 있는 예측 정보에 의해 표현될 수도 있다. 인터-코딩의 경우에서, 하나 이상의 모션 벡터가 데이터의 예측 블록을 식별하기 위해 사용될 수 있고, 인트라-코딩의 경우에서, 예측 모드는 예측 블록을 생성하기 위해 사용될 수 있다. 인트라-코딩 및 인터-코딩 모두는 코딩에서 사용된 상이한 블록 사이즈 및/또는 예측 기법을 정의할 수도 있는 여러 상이한 예측 모드들을 정의할 수도 있다. 신택스 엘리먼트의 추가의 타입들이, 코딩 프로세스에서 사용된 코딩 기법을 제어하거나 정의하기 위해 인코딩된 비디오 데이터의 일부로서 또한 포함될 수도 있다.
블록 기반 예측 코딩 이후에, 비디오 인코더는 잔류 블록의 통신과 관련된 비트 레이트를 더 감소시키기 위해 변환, 양자화 및 엔트로피 코딩 프로세스들을 적용할 수도 있다. 변환 기법은 이산 코사인 변환 (DCT) 또는 웨이브릿 변환, 정수 변환, 또는 다른 타입의 변환과 같은 개념적으로 유사한 프로세스를 포함할 수도 있다. DCT 프로세스에서, 일 예로서, 변환 프로세스는 픽셀 값들의 세트를 변환 계수들로 변환하고, 이것은 주파수 도메인에서 픽셀값들의 에너지를 나타낼 수도 있다. 양자화가 변환 계수들에 적용되고, 일반적으로, 임의의 소정의 변환 계수와 관련된 비트들의 수를 제한하는 프로세스를 수반한다. 엔트로피 코딩은 양자화된 변환 계수들의 시퀀스를 일괄적으로 압축하는 하나 이상의 프로세스를 포함한다.
본 개시물은 비디오 유닛의 비디오 블록들의 필터링을 위한 필터링 기법들을 설명한다. 예로서, 비디오 유닛은 비디오 프레임, 또는 비디오 프레임의 슬라이스 또는 다른 부분을 포함할 수도 있다. 필터링 기법은 비디오 블록이 인터 코딩되거나 인트라 코딩되는지, 및 적응형 보간이 비디오 블록의 인코딩 동안 모션 보상 프로세스 동안 수행되는지와 같은 다양한 팩터들에 기초하여 비디오 유닛의 각 비디오 블록에 대한 필터링의 하나 이상의 상이한 타입을 선택할 수도 있다. 적응형 보간이 수행될 때, 적응형 보간은 몇몇 경우에서는 불필요하거나 바람직하지 못한 추가 필터링을 렌더링하는 필터링의 레벨을 제공할 수도 있다.
몇몇 경우에서, 오직 일 타입의 필터링이 비디오 유닛의 임의의 소정의 비디오 블록에 적용된다. 예를 들어, 적응형 보간 필터링, 포스트-루프 필터링 및 인-루프 필터링 중 하나만이 임의의 소정의 비디오 블록에 적용될 수도 있다. 이러한 경우에서, 적응형 보간 필터가 모션 보상 동안 적용되면, 포스트-루프 필터링 또는 인-루프 필터링이 회피될 수도 있지만, 적응형 보간 필터가 모션 보상 동안 적용되지 않으면, 포스트-루프 필터링 및 인-루프 필터링 중 하나가 적용될 수도 있다. 그러나, 다른 경우에서, 적응형 보간에 후속하여서도, 포스트-루프 필터가 제로-값 잔류 값들과 관련된 비디오 블록의 픽셀들에 대해 적용될 수도 있고, 인-루프 필터가 넌-제로 잔류 값들과 관련된 비디오 블록의 픽셀들에 대해 적용될 수도 있다.
일 예에서, 본 개시물은 비디오 코딩 프로세스 동안 비디오 유닛의 하나 이상의 비디오 블록들을 필터링하는 방법을 설명한다. 이 방법은, 비디오 블록이 인터 코딩되거나 인트라 코딩되는지를 결정하는 단계 및 비디오 블록이 인트라 코딩될 때 포스트-루프 필터 또는 인-루프 필터를 비디오 블록에 적용하는 단계를 포함한다. 비디오 블록이 인터 코딩될 때, 이 방법은 적응형 보간 필터가 비디오 블록에 관한 모션 보상 프로세스 동안 적용되었는지를 결정하는 단계를 포함하고, 비디오 블록이 인터 코딩될 때, 이 방법은 또한, 적응형 보간 필터가 적용되었는지에 적어도 부분적으로 기초하여 비디오 블록에 포스트-루프 필터 또는 인-루프 필터를 적용할지를 결정하는 단계를 포함한다.
다른 예에서, 본 개시물은 비디오 코딩 프로세스 동안 비디오 유닛의 비디오 블록들을 필터링하는 비디오 코더 장치를 설명한다. 비디오 코더 장치는 적응형 보간 필터, 포스트-루프 필터, 및 인-루프 필터를 포함한다. 이 장치는, 비디오 블록이 인터 코딩되거나 인트라 코딩되는지를 결정하고, 비디오 블록 인트라 코딩될 때 비디오 블록에 포스트-루프 필터 또는 인-루프 필터를 적용하고, 비디오 블록이 인터 코딩될 때, 적응형 보간 필터가 비디오 블록에 관한 모션 보상 프로세스 동안 적용되었는지를 결정하며, 비디오 블록이 인터 코딩될 때, 적응형 보간 필터가 적용되었는지에 적어도 부분적으로 기초하여 비디오 블록에 포스트-루프 필터 또는 인-루프 필터를 적용할지를 결정한다.
다른 예에서, 본 개시물은 비디오 코딩 프로세스 동안 비디오 유닛의 비디오 블록들을 필터링하는 디바이스를 설명한다. 이 디바이스는 비디오 블록이 인터 코딩되거나 인트라 코딩되는지를 결정하는 수단, 비디오 블록이 인트라 코딩될 때 포스트-루프 필터 또는 인-루프 필터를 비디오 블록에 적용하는 수단, 비디오 블록이 인터-코딩될 때, 적응형 보간 필터가 비디오 블록에 관한 모션 보상 프로세스 동안 적용되었는지를 결정하는 수단, 및 비디오 블록이 인터 코딩될 때, 적응형 보간 필터가 적용되었는지에 적어도 부분적으로 기초하여 비디오 블록에 포스트-루프 필터 또는 인-루프 필터를 제공할지를 결정하는 수단을 포함한다.
본 개시물에 설명된 기법들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 하드웨어에서 구현되면, 장치는 집적 회로, 프로세서, 개별 로직, 또는 이들의 임의의 조합으로서 실현될 수도 있다. 소프트웨어에서 구현되면, 소프트웨어는 마이크로프로세서, 응용 주문형 집적 회로(ASIC), 필드 프로그램가능한 게이트 어레이(FPGA), 또는 디지털 신호 프로세서 (DSP) 와 같은 하나 이상의 프로세서들에서 실행될 수도 있다. 이 기법들을 실행하는 소프트웨어는 컴퓨터 판독가능 매체에 초기에 저장될 수도 있고 프로세서에서 로딩되고 실행될 수도 있다.
따라서, 본 개시물은 또한, 프로세서에서 실행시에, 프로세서로 하여금 비디오 코딩 프로세스 동안 비디오 유닛의 비디오 블록들을 필터링하게 하는 명령들을 포함하는 컴퓨터 판독가능한 저장 매체를 의도한다. 이 명령들은 프로세서로 하여금, 비디오 블록이 인터 코딩되거나 인트라 코딩되는지를 결정하게 하고, 비디오 블록이 인트라 코딩될 때, 포스트-루프 필터 또는 인-루프 필터를 비디오 블록에 적용하게 하고, 비디오 블록이 인터 코딩될 때, 적응형 보간 필터가 비디오 블록에 관한 모션 보상 프로세스 동안 적용되었는지 결정하게 하며, 비디오 블록이 인터 코딩될 때, 적응형 보간 필터가 적용되었는지에 적어도 부분적으로 기초하여 비디오 블록에 포스트-루프 필터 또는 인-루프 필터를 적용할지를 결정하게 한다.
본 개시물의 하나 이상의 양태들의 상세들은 이하의 첨부한 도면들 및 설명에 설명된다. 본 개시물에 설명된 기법들의 다른 특징들, 목적들, 및 이점들은 설명 및 도면들, 그리고 청구범위로부터 명백할 것이다.
도 1 은 본 개시물의 기법들 중 하나 이상을 구현할 수도 있는 비디오 인코딩 및 디코딩 시스템을 예시하는 블록도이다.
도 2 는 본 개시물의 하나 이상의 예들에 따른 예시적인 비디오 인코더를 예시하는 블록도이다.
도 3 은 본 개시물의 하나 이상의 예들에 따른 예시적인 비디오 디코더를 예시하는 블록도이다.
도 4 는 본 개시물의 예들에 따라, 적응형 인-루프 필터링과 적응형 포스트-루프 필터링 사이에서 선택하는 기법을 예시하는 흐름도이다.
도 5 는 본 개시물의 예들에 따른 적어도 하나의 넌-제로 잔류 값을 포함하는 인터 코딩된 비디오 블록의 재구성을 위한 일 기법을 예시하는 기법을 예시하는 블록도이다.
도 6 은 본 개시물의 예에 따른 적어도 하나의 넌-제로 잔류값을 포함하는 인터 코딩된 비디오 블록의 재구성을 위한 일 기법에 대한 기법을 예시하는 블록도이다.
도 7 은 본 개시물의 하나 이상의 예들에 따라 필터 정보를 통신하는 비디오 유닛의 데이터 구조를 예시하는 개념도이다.
도 8 내지 도 11 은 본 개시물의 다양한 예들에 따른 기법들을 예시하는 상이한 흐름도들이다.
본 개시물은 비디오 유닛의 비디오 블록들을 필터링하는 필터링 기법들을 기재한다. 예로서, 비디오 유닛은 비디오 프레임 또는 비디오 프레임의 슬라이스 또는 다른 부분을 포함한다. 필터링 기법들은 비디오 블록이 인터 코딩되거나 인트라 코딩되는지, 및 적응형 보간들이 비디오 블록의 인코딩 동안 모션 보상 프로세스 동안 수행되었는지와 같은 다양한 팩터들에 기초하여 비디오 유닛의 각 비디오 블록에 대해 하나 이상의 상이한 타입의 필터링을 선택할 수도 있다. 적응형 보간들이 모션 보상 동안 수행되었으면, 예를 들어, 적응형 보간들은 몇몇 경우들에서는 불필요하거나 바람직하지 못한 재구성된 데이터에 대한 추가의 필터링을 렌더링하는 필터링의 레벨을 제공할 수도 있다. 적응형 보간은, 바람직한 예측 데이터를 생성하기 위해 보간 필터 계수들이 (인코딩 또는 디코딩 프로세스의 일부로서) 적응적으로 결정되는 보간들을 칭한다. 본 개시물의 기법들은, 예를 들어, 고정 보간 필터 계수들에 의해 정의된 고정 보간과 반대로, 적응형 보간이 수행되었는지를 결정할 수도 있다.
본 개시물의 기법들은, 다중의 상이한 타입의 필터링이 지원되는 비디오 인코딩 또는 비디오 디코딩 시나리오들에서 필터링을 개선시키는 것을 도울 수도 있다. 이 기법들은 적응형 보간 필터링, 인-루프 필터링 및 포스트 루프 필터링 중에서 선택함으로써 바람직한 레벨의 필터링을 달성할 수도 있다. 보간 필터링은 통상적으로, 인-루프 필터링 및 포스트 루프 필터링과 관련되지 않지만, 본 개시물은, 적응형 보간 필터링이 인-루프 필터링 및 포스트 루프 필터링과 동일한 필터링 효과 중 적어도 일부를 달성할 수도 있다는 것을 인식한다. 동시에, 본 개시물은 너무 많은 필터링이 적용될 때 발생할 수도 있는 바람직하지 못한 효과들을 인식한다.
보간 필터링은 일반적으로, 보간된 (또는 비정수) 예측 데이터를 생성하기 위해 모션 보상 동안 발생할 수 있는 필터링의 타입을 칭한다. 이러한 경우에서, 비디오 블록을 예측적으로 인코딩하기 위해 사용된 예측 데이터는 비디오 시퀀스에서 이전 또는 후속 비디오 유닛의 정수 픽셀 데이터에 기초하여 하프-픽셀 또는 쿼터-픽셀 정밀도 (또는 다른 분수 픽셀 정밀도) 로 보간될 수도 있다. 몇몇 예들에서, 본 개시물의 보간 필터링은 보간 필터 계수들이 원하는 예측 데이터를 생성하기 위해 적응적으로 결정되는 적응형 보간 필터링을 포함할 수도 있다. 적응형 보간으로는, 필터 계수들이 코딩 프로세스의 일부로서 적응적으로 정의되는 반면에, 고정 보간으로는, 필터 계수들이 예를 들어, 비디오 코딩 표준에 의해 사전 정의된다는 점에서, 적응형 보간은 고정 보간과 대조적일 수도 있다.
인-루프 필터링 및 포스트-루프 필터링은 몇몇 관점에서 서로 유사하지만, 필터링되는 데이터와 관련하여 보간 필터링과는 일반적으로 상이하다. 특히, 보간 필터링이 하나 이상의 비디오 블록들을 예측적으로 인코딩하기 위해 사용되는 예측 데이터에 적용되는 반면에, 인-루프 필터링 및 포스트-루프 필터링은 픽셀 변동을 평활화하고, 블록화를 제거하거나, 그렇지 않으면 최종 출력 비디오 데이터를 개선시키기 위해 인코딩 또는 디코딩 프로세스 이후에 재구성된 비디오 블록들에 적용된다.
인-루프 필터링으로, 재구성된 비디오 블록의 필터링은 코딩 루프에서 발생하고, 이것은 필터링된 데이터가 후속 이미지 데이터의 예측에서 후속 사용을 위해 인코더 또는 디코더에 의해 저장된다는 것을 의미한다. 반대로, 포스트 루프 필터링으로, 재구성된 비디오 데이터의 필터링은 코딩 루프 외부에서 발생하고, 이것은, 데이터의 필터링되지 않은 버전들이 후속 이미지 데이터의 예측에서 후속 사용을 위해 인코더 또는 디코더에 의해 저장된다는 것을 의미한다. 따라서, 포스트-루프 필터링으로, 필터링은 재구성된 비디오 데이터를 생성하기 위해 적용될 수도 있지만, 이러한 필터링은 다른 예측 인코딩에서 사용하기 위해 이러한 데이터를 저장하는데 있어서 데이터에 적용되지 않는다. 본 개시물의 인-루프 필터링 및 포스트-루프 필터링은, 필터링 프로세스에 적용된 필터링 계수들이 프로세스 동안 적응적으로 정의된다는 점에서 적응형일 수도 있다.
다시, 본 개시물의 기법들은 비디오 블록이 인터 코딩되거나 인트라 코딩되는지, 및 적응형 보간들이 비디오 블록의 인코딩 동안 모션 보상 프로세스 동안 수행되었는지와 같은 다양한 팩터들에 기초하여 비디오 유닛의 각 비디오 블록에 대한 하나 이상의 상이한 타입의 필터링을 선택할 수도 있다. 몇몇 경우에서, 오직 하나의 타입의 필터링만이 비디오 유닛의 임의의 소정의 비디오 블록에 적용된다. 예를 들어, 몇몇 경우에서, 적응형 보간 필터링, 포스트-루프 필터링 및 인-루프 필터링 중 오직 하나의 타입만이 임의의 소정의 비디오 블록에 적용될 수도 있다. 이러한 경우에서, 적응형 보간 필터가 모션 보상 동안 적용되면, 포스트-루프 필터링 또는 인-루프 필터링이 회피될 수도 있지만, 적응형 보간 필터가 모션 보상 동안 적용되지 않으면, 포스트-루프 필터링 및 인-루프 필터링 중 하나가 적용될 수도 있다.
그러나, 다른 경우에서, 적응형 보간에 후속하여서도, 포스트-루프 필터가 제로-값 잔류값들과 관련된 비디오 블록의 픽셀들에 대해 적용될 수도 있고, 인-루프 필터가 넌-제로 잔류값들과 관련된 비디오 블록의 픽셀들에 대해 적용될 수도 있다. 이러한 경우에서, 비디오 블록이 인터 코딩되거나 인트라 코딩되는지, 및 적응형 보간들이 비디오 블록의 인코딩 동안 모션 보상 프로세스 동안 수행되었는지와 같은 팩터들이, 적용되어야 할 필터링의 타입을 정의하는데 여전히 도움이 될 수도 있다. 몇몇 예들에서, 인-루프 필터 및 포스트-루프 필터는 임의의 소정의 픽셀, 또는 다르게는 임의의 소정의 비디오 블록에 대해 상호 배타적일 수도 있다.
본 개시물에서, 용어 "코딩" 은 인코딩 또는 디코딩을 칭한다. 유사하게는, 용어 "코더" 는 일반적으로, 임의의 비디오 인코더, 비디오 디코더, 또는 결합된 인코더/디코더 (codec) 를 칭한다. 따라서, 용어 "코더" 는 비디오 인코딩 또는 비디오 디코딩을 수행하는 특수 컴퓨터 디바이스 또는 장치를 칭하도록 여기에서 사용된다. 본 개시물의 필터링 기법들은 인코더들 또는 디코더들에 적용가능하다. 몇몇 경우에서, 필터 신택스 엘리먼트가 적용되어야 할 필터링의 타입을 디코더에 통지하기 위해 비트스트림으로 인코딩될 수도 있다. 본 개시물은 또한, 비디오 유닛에 대한 비디오 데이터에 선행하는 헤드 엘리먼트에서 보다는 오히려, 인코딩된 비디오 데이터 (예를 들어, 인코딩된 계수들) 에 후속하는 푸터 (footer) 엘리먼트에서 필터 신택스 정보를 인코딩함으로써 필터 정보를 인코딩하는 능력을 개선시킬 수도 있는 인코딩된 정보를 통신하는 포맷 또는 데이터 구조를 정의한다.
도 1 은 본 개시물의 기법들을 구현할 수도 있는 예시적인 비디오 인코딩 및 디코딩 시스템 (10) 을 예시하는 블록도이다. 도 1 에 도시되어 있는 바와 같이, 시스템 (10)은 인코딩된 비디오를 통신 채널 (15) 을 통해 수신지 디바이스 (16) 로 송신하는 소스 디바이스 (12) 를 포함한다. 소스 디바이스 (12) 및 수신지 디바이스 (16) 는 임의 광범위한 디바이스들을 포함할 수도 있다. 몇몇 경우에서, 소스 디바이스 (12) 및 수신지 디바이스 (16) 는 소위 셀룰러 또는 위성 무선 전화들과 같은 무선 통신 디바이스 핸드셋을 포함할 수도 있다. 그러나, 비디오 코딩동안 비디오 블록 및/또는 픽셀 필터링에 더욱 일반적으로 적용하는 본 개시물의 기법들은 무선 애플리케이션들 또는 세팅들에 반드시 제한되지 않으며, 비디오 인코딩 및/또는 디코딩 능력을 포함하는 비무선 디바이스에 적용될 수도 있다.
도 1 의 예에서, 소스 디바이스 (12) 는 비디오 소스 (20), 비디오 인코더 (22), 변조기/복조기 (모뎀) (23) 및 송신기 (24) 를 포함할 수도 있다. 수신지 디바이스 (16) 는 수신기 (26), 모뎀 (27), 비디오 디코더 (28), 및 디스플레이 디바이스 (30) 를 포함할 수도 있다. 본 개시물에 따르면, 소스 디바이스 (12) 의 비디오 인코더 (22) 는 비디오 블록이 인터 코딩되거나 인트라 코딩되는지 결정하고, 비디오 블록이 인트라 코딩될 때 포스트-루프 필터 또는 인-루프 필터를 비디오 블록에 적용하고, 비디오 블록이 인터 코딩될 때 적응형 보간 필터가 비디오 블록에 관한 모션 보상 프로세스 동안 적용되었는지를 결정하며, 비디오 블록이 인터 코딩될 때, 적응형 보간 필터가 적용되었는지에 적어도 부분적으로 기초하여 비디오 블록에 포스트-필터 또는 인-루프 필터를 적용할지를 결정하도록 구성될 수도 있다. 비디오 인코더 (22) 에 의해 수행될 수도 있는 필터링 프로세스의 추가의 상세들이 이하 더욱 상세히 설명된다.
유사한 필터링 기법들이 수신지 디바이스 (16) 의 비디오 디코더 (28) 에 의해 또한 수행될 수도 있다. 즉, 비디오 디코더 (28) 는 또한, 비디오 블록이 인터 코딩되거나 인트라 코딩되는지 결정하고, 비디오 블록이 인트라 코딩될 때, 포스트-루프 필터 또는 인-루프 필터를 비디오 블록에 적용하고, 비디오 블록이 인터 코딩될 때, 적응형 보간 필터가 비디오 블록에 관한 모션 보상 프로세스 동안 적용되었는지 결정하며, 비디오 블록이 인터 코딩될 때, 적응형 보간 필터가 적용되었는지에 적어도 부분적으로 기초하여 비디오 블록에 포스트-루프 필터 또는 인-루프 필터를 적용할지 결정하도록 구성될 수도 있다. 몇몇 경우에서, 필터링 신택스 정보가 비디오 인코더 (22) 에서 정의되고, 소스 디바이스 (12) 로부터 수신지 디바이스 (16) 로 전송된 인코딩된 비트스트림의 일부로서 비디오 디코더 (28) 로 통신된다. 실제로, 본 개시물은 또한, 인코딩된 비디오 유닛내에서 이러한 필터링 신택스 정보에 대한 포맷들을 의도한다. 예를 들어, 헤더 엘리먼트에서 필터링 신택스 정보를 제공하기 보다는, 본 개시물은 푸터 엘리먼트의 사용의 의도하고, 이 경우에서, 필터링 신택스 정보는 비디오 유닛의 인코딩된 비디오 계수들에 선행하기 보다는 후속한다. 푸터 엘리먼트는 개별 푸터 파일일 수도 있거나, 비디오 유닛에 대한 인코딩된 데이터를 정의하는 파일의 엘리먼트일 수도 있다.
도 1 의 예시된 시스템 (10) 은 단지 예시이다. 본 개시물의 필터링 기법들은 임의의 인코딩 또는 디코딩 디바이스들에 의해 수행될 수도 있다. 소스 디바이스 (12) 및 수신지 디바이스 (16) 는 이러한 기법들을 지원할 수 있는 코딩 디바이스들의 단지 예들이다.
소스 디바이스 (12) 의 비디오 인코더 (22) 는 본 개시물의 기법들을 사용하여 비디오 소스 (20) 로부터 수신된 비디오 데이터를 인코딩할 수도 있다. 비디오 소스 (20) 는 비디오 카메라와 같은 비디오 캡처 디바이스, 이전에 캡처된 비디오를 포함하는 비디오 아카이브, 또는 비디오 컨텐츠 제공자로부터의 비디오 피드를 포함할 수도 있다. 다른 대안으로서, 비디오 소스 (20) 는 소스 비디오, 또는 라이브 비디오, 아카이브된 비디오, 및 컴퓨터 생성된 비디오의 조합으로서 컴퓨터 그래픽스 기반 데이터를 생성할 수도 있다. 몇몇 경우에서, 비디오 소스 (20) 가 비디오 카메라이면, 소스 디바이스 (12) 및 수신지 디바이스 (16) 는 소위 카메라 폰 또는 비디오 폰을 형성할 수도 있다. 각 경우에서, 캡처되고, 사전 캡처되거나 컴퓨터 생성된 비디오는 비디오 인코더 (22) 에 의해 인코딩될 수도 있다.
비디오 데이터가 비디오 인코더 (22) 에 의해 인코딩되면, 인코딩된 비디오 정보는 예를 들어, 코드 분한 다중 액세스 (CDMA) 또는 다른 통신 표준 또는 기법과 같은 통신 표준에 따라 모뎀 (23) 에 의해 변조될 수도 있고, 송신기 (24) 를 통해 수신지 디바이스 (16) 로 송신될 수도 있다. 모뎀 (23) 은 다양한 믹서, 필터, 증폭기 또는 신호 변조를 위해 설계된 다른 컴포넌트들을 포함할 수도 있다. 송신기 (24) 는 증폭기, 필터, 및 하나 이상의 안테나를 포함하여, 데이터를 송신하기 위해 설계된 회로를 포함할 수도 있다. 수신지 디바이스 (16) 의 수신기 (26) 는 채널 (15) 을 통해 정보를 수신하고, 모뎀 (27) 은 그 정보를 복조한다. 다시, 비디오 디코더 (28) 에 의해 수행된 비디오 디코딩 프로세스는 비디오 인코더 (22) 와 유사한 필터링 기법들을 포함할 수도 있다.
통신 채널 (15) 은 무선 주파수 (RF) 스펙트럼 또는 하나 이상의 물리적 송신선들과 같은 임의의 무선 또는 유선 통신 매체, 또는 무선 또는 유선 매체의 임의의 조합을 포함할 수도 있다. 통신 채널 (15) 은 로컬 영역 네트워크, 광영역 네트워크, 또는 인터넷과 같은 글로벌 네트워크와 같은 패킷 기반 네트워크의 일부를 형성할 수도 있다. 통신 채널 (15) 은 일반적으로, 소스 디바이스 (12) 로부터 수신지 디바이스 (16) 로 비디오 데이터를 송신하기 위해 임의의 적합한 통신 매체, 또는 상이한 통신 매체의 집합을 나타낸다.
비디오 인코더 (22) 및 비디오 디코더 (28) 는 실질적으로는, ITU-T H.264 표준, 다르게는 MPEG-4, 파트 10, 어드밴스드 비디오 코딩 (AVC) 으로 칭하는 비디오 압축 표준에 따라 동작할 수도 있다. 그러나, 본 개시물의 기법들은 다양한 다른 비디오 코딩 표준들의 컨텍스트에 적용될 수도 있다. 구체적으로는, 인코더 또는 디코더에서의 필터링을 허용하는 임의의 표준이 본 개시물의 교시로부터 이익을 얻을 수도 있다.
도 1 에는 도시하지 않았지만, 몇몇 양태들에서는, 비디오 인코더 (22) 및 비디오 디코더 (28) 는 오디오 인코더 및 디코더와 각각 통합될 수도 있고, 공통 데이터 스트림 또는 개별 데이터 스트림에서 오디오 및 비디오의 인코딩을 처리하기 위해 적절한 MUX-DEMUX 유닛들, 또는 다른 하드웨어 및 소프트웨어를 포함할 수도 있다. 적용가능하면, MUX-DEMUX 유닛들은 ITU H.223 멀티플렉서 프로토콜, 또는 사용자 데이터그램 프로토콜 (UDP) 과 같은 다른 프로토콜들을 따를 수도 있다.
비디오 인코더 (22) 및 비디오 디코더 (28) 는 각각, 하나 이상의 마이크로프로세서, 디지털 신호 프로세서 (DSP), 응용 주문형 집적 회로 (ASIC), 필드 프로그램가능한 게이트 어레이 (FPGA), 개별 로직, 소프트웨어, 하드웨어, 펌웨어 또는 이들의 임의의 조합으로서 구현될 수도 있다. 비디오 인코더 (22) 및 비디오 디코더 (28) 각각은, 각각의 모바일 디바이스, 가입자 디바이스, 브로드캐스트 디바이스, 서버 등에 결합된 인코더/디코더 (CODEC) 의 일부로서 통합될 수도 있는 하나 이상의 인코더 또는 디코더에 포함될 수도 있다.
몇몇 경우에서, 디바이스들 (12, 16) 은 실질적으로 대칭 방식으로 동작할 수도 있다. 예를 들어, 디바이스들 (12, 16) 각각은 비디오 인코딩 및 디코딩 컴포넌트들을 포함할 수도 있다. 따라서, 시스템 (10) 은 예를 들어, 비디오 스트리밍, 비디오 재생, 비디오 브로드캐스팅, 또는 비디오 전화통신을 위해 비디오 디바이스들 (12, 16) 사이에서 1-방향 또는 2-방향 비디오 송신을 지원할 수도 있다.
인코딩 프로세스 동안, 비디오 인코더 (22) 는 다수의 코딩 기법들 또는 동작들을 실행할 수도 있다. 일반적으로, 비디오 인코더 (22) 는 비디오 블록들을 인코딩하기 위해 개별 비디오 프레임들 (또는 슬라이들과 같은 다른 독립적으로 코딩된 유닛들) 내에서 비디오 블록들에 대해 동작한다. 프레임들, 슬라이스들, 프레임들의 부분들, 픽처의 그룹들, 또는 다른 데이터 구조들이 복수의 비디오 블록을 포함하는 독립적으로 디코딩가능한 유닛들로서 정의될 수도 있다. 코딩된 유닛들내의 비디오 블록들은 고정 또는 변화하는 사이즈를 가질 수도 있고, 특정한 코딩 표준에 따라 사이즈가 상이할 수도 있다. 몇몇 경우에서, 각 비디오 프레임은 일련의 독립적으로 디코딩가능한 슬라이스들을 포함할 수도 있고, 각 슬라이스는 더욱 더 작은 블록으로 배열될 수도 있는 일련의 매크로블록들을 포함할 수도 있다.
통상적으로, 매크로블록은 데이터의 16×16 블록을 칭한다. ITU-T H.264 표준은 루마 컴포넌트에 대한 16×16, 8×8, 또는 4×4, 및 크로마 컴포넌트에 대한 8×8과 같은 다양한 블록 사이즈의 인트라 예측 뿐만 아니라 루마 컴포넌트에 대한 16×16, 16×8, 8×16, 8×8, 8×4, 4×8 및 4×4 및 크로마 컴포넌트에 대한 대응하는 스케일링된 사이즈와 같은 다양한 블록 사이즈의 인터 예측을 지원한다. 본 개시물에서, 문구 "비디오 블록" 은 임의의 사이즈의 비디오 블록을 칭한다. 또한, 비디오 블록은 픽셀 도메인에서의 비디오 데이터의 블록들, 또는 이산 코사인 변환 (DCT) 도메인, DCT 와 유사한 도메인, 웨이브렛 도메인 등과 같은 변환 도메인에서의 데이터의 블록들을 칭할 수도 있다. 그러나, 대부분의 경우에서, 본 개시물의 필터링은 픽셀 도메인에서 발생할 수도 있다.
비디오 인코더 (22) 는, 코딩된 비디오 블록이 예측 블록을 식별하기 위해 예측 프레임 (또는 다른 코딩된 유닛) 에 비교되는 예측 코딩을 수행할 수도 있다. 예측 코딩의 이러한 프로세스를 모션 추정 및 모션 보상이라 칭할 수도 있다. 모션 추정은 하나 이상의 예측 프레임들 (또는 다른 코딩된 유닛들) 의 하나 이상의 예측 비디오 블록들에 대한 비디오 블록 모션을 추정한다. 모션 보상은 하나 이상의 예측 프레임들 또는 다른 코딩된 유닛들로부터 원하는 예측 비디오 블록을 생성한다. 모션 보상은, 보간 필터링이 분수 정밀도로 예측을 생성하기 위해 수행되는 보간 프로세스를 포함할 수도 있다. 본 개시물의 기법들은 이러한 보간 필터링을 활용할 수도 있고, 재구성된 비디오 데이터에 대한 나중의 인-루프 또는 포스트-루프 필터링과 보간 필터링을 밸런싱할 수도 있다. 구체적으로는, 보간 필터 계수들이 (고정 필터 계수들을 사용하거나 보간 필터링을 사용하지 않는 것 보다) 코딩 프로세스에서 적응적으로 정의될 때, 이러한 적응형 보간 필터링은 인-루프 또는 포스트-루프 필터링과 유사한 필터링 효과를 달성할 수도 있어서, 몇몇 경우에서 불필요하거나 바람직하지 못한 이러한 인-루프 또는 포스트-루프 필터링을 렌더링한다.
예측 블록을 생성한 이후에, 코딩된 현재의 비디오 블록과 예측 블록 사이의 차이는 잔류 블록으로서 코딩되고, (모션 벡터와 같은) 예측 신택스가 예측 블록을 식별하기 위해 사용된다. 잔류 블록은 변환 및 양자화될 수도 있다. 변환 기법들은 DCT 프로세스 또는 개념적으로 유사한 프로세스, 정수 변환, 웨이브렛 변환, 또는 다른 타입의 변환을 포함할 수도 있다. DCT 프로세스에서, 일 예로서, 변환 프로세스는 픽셀 값들 (예를 들어, 잔류 값들) 의 세트를 주파수 도메인에서 픽셀 값들의 에너지를 나타내는 변환 계수들로 변환한다. 통상적으로, 양자화는 변환 계수들에 대해 적용되고, 일반적으로, 임의의 소정의 변환 계수와 관련된 비트들의 수를 제한하는 프로세스를 수반한다.
변환 및 양자화에 후속하여, 엔트로피 코딩이 양자화되고 변환된 잔류 비디오 블록들에 대해 수행될 수도 있다. 인코딩 동안 정의된 필터 신택스 정보 및 예측 벡터들과 같은 신택스 엘리먼트들이 엔트로피 코딩된 비트스트림에 또한 포함될 수도 있다. 일반적으로, 엔트로피 코딩은 양자화된 변환 계수들 및/또는 다른 신택스 정보의 시퀀스를 일괄적으로 압축하는 하나 이상의 프로세스를 포함한다. 지그-재그 스캐닝 기법들과 같은 스캐닝 기법들이 2-차원 비디오 블록들로부터 하나 이상의 직렬화된 1-차원 벡터들을 정의하기 위해 양자화된 변환 계수들에 대해 수행된다. 그 후, 스캐닝된 계수들은 예를 들어, 컨텐츠 적응형 가변 길이 코딩 (CAVLC), 컨텍스트 적응형 바이너리 산술 코딩 (CABAC) 또는 다른 엔트로피 코딩 프로세스를 통해 임의의 신택스 정보를 따라 엔트로피 코딩된다.
인코딩 프로세스의 일부로서, 인코딩된 비디오 블록들은 후속 비디오 블록들의 후속 예측 기반 코딩을 위해 사용된 비디오 데이터를 생성하기 위해 디코딩될 수도 있다. 이러한 스테이지에서, 필터링이 비디오 품질을 개선하기 위해, 그리고 예를 들어, 디코딩된 비디오로부터 블록화 또는 다른 인공물을 제거하기 위해 이용될 수도 있다. 이러한 필터링이 인-루프 또는 포스트-루프일 수도 있다. 다시, 인-루프 필터링으로, 재구성된 비디오 데이터의 필터링은 코딩 루프에서 발생하고, 이것은, 필터링된 데이터가 후속 이미지 데이터의 예측에서 후속 사용을 위해 인코더 또는 디코더에 의해 저장된다는 것을 의미한다. 반대로, 포스트-루프 필터링으로, 재구성된 비디오 데이터의 필터링은 코딩 루프 외부에서 발생하고, 이것은, 데이터의 필터링되지 않은 버전들이 후속 이미지 데이터의 예측에서 후속 사용을 위해 인코더 또는 디코더에 의해 저장된다는 것을 의미한다.
인코더 (22) 는 비디오 품질을 촉진시키는 방식으로 보간 필터링, 인-루프 필터링 또는 포스트-루프 필터링 중 어느 하나 또는 모두에 대한 필터 계수들을 선택할 수도 있다. 예를 들어, 보간 필터링 계수들은 계수들의 사전 정의된 세트로부터 선택될 수도 있거나, 비디오 품질을 촉진시키기 위해 적응적으로 정의될 수도 있다. 일 예로서, 비디오 인코더 (22) 는 소정의 코딩된 유닛에 대한 필터 계수들의 세트를 선택하거나 정의할 수도 있어서, 동일한 필터 계수들이 그 코딩된 유닛의 모든 비디오 블록들에 대해 사용된다. 몇몇 경우에서, 비디오 인코더 (22)는 필터 계수들의 여러 세트를 적용할 수도 있고, 소정의 코딩 레이트 동안 최상의 품질 비디오 또는 가장 높은 레벨의 압축 또는 가장 높은 비디오 품질을 생성하는 세트를 선택할 수도 있다.
도 2 는 본 개시물에 따른 비디오 인코더 (50) 를 예시하는 블록도이다. 비디오 인코더 (50) 는 디바이스 (20) 의 비디오 인코더 (22), 또는 상이한 디바이스의 비디오 인코더에 대응할 수도 있다. 도 2 에 도시되어 있는 바와 같이, 비디오 인코더 (50) 는 예측 유닛 (32), 가산기 (48 및 51), 및 메모리 (34) 를 포함한다. 비디오 인코더 (50) 는 또한, 변환 유닛 (38) 및 양자화 유닛 (40) 뿐만 아니라 역양자화 유닛 (42) 및 역변환 유닛 (44) 을 포함한다. 비디오 인코더 (50) 는 또한, 엔트로피 코딩 유닛 (46) 및 필터 유닛 (47) 을 포함한다. 필터 유닛 (47) 및 예측 유닛 (32) 은 본 개시물에 따라 필터링을 일괄적으로 수행한다. 특히, 예측 유닛 (32) 은 서브-픽셀 분해능에 대한 비디오 블록들의 모션 보상된 보간에 필요한 임의의 보간 필터링을 수행할 수도 있다. 필터 유닛 (47) 은 본 명세서에 설명된 바와 같이 비디오 블록에 기초하거나 개별 픽셀에 기초하여 인-루프 또는 포스트 루프 필터링을 수행할 수도 있다. 본 개시물의 기법들은 보간 필터링 및 포스트-루프 또는 인-루프 필터링의 집합적 효과를 고려함으로써 인코딩 프로세스에 적용된 필터링의 레벨을 정의할 수도 있다.
더욱 일반적으로, 인코딩 프로세스 동안, 비디오 인코더 (50) 는 코딩될 비디오 블록을 수신하며, 예측 유닛 (32) 은 예측 코딩 기법들을 수행한다. 인터 코딩에 대해, 예측 유닛 (32) 은 예측 블록을 정의하기 위해 하나 이상의 비디오 레퍼런스 프레임들 또는 슬라이스들에서 다양한 블록들에 대해 인코딩될 비디오 블록을 비교한다. 인트라 코딩에 대해, 예측 유닛 (32) 은 동일한 코딩된 유닛내의 이웃하는 데이터에 기초하여 예측 블록을 생성한다. 예측 유닛 (32) 은 예측 블록을 출력하고, 가산기 (48) 는 잔류 블록을 생성하기 위해 코딩된 비디오 블록으로부터 예측 블록을 감산한다.
인터 코딩에 대해, 예측 유닛 (32) 은 예측 블록을 포인팅하고 모션 벡터에 기초하여 예측 블록을 생성하는 모션 벡터를 식별하는 모션 추정 및 모션 보상 유닛을 포함할 수도 있다. 통상적으로, 모션 추정은 모션을 추정하는 모션 벡터를 생성하는 프로세스를 고려한다. 예를 들어, 모션 벡터는 현재의 프레임내의 코딩된 현재의 블록에 대한 예측 프레임내의 예측 블록의 변위를 나타낼 수도 있다. 모션 보상은 통상적으로, 모션 추정에 의해 결정된 모션 벡터에 기초하여 예측 블록을 페치하거나 생성하는 프로세스를 고려한다. 인트라 코딩에 대해, 예측 유닛 (32) 은 동일한 코딩된 유닛내의 이웃하는 데이터에 기초하여 예측 블록을 생성한다. 하나 이상의 인트라 예측 모드는, 인트라 예측 블록이 어떻게 정의될 수 있는지를 정의할 수도 있다.
인터 코딩에 대한 모션 보상은 서브-픽셀 분해능에 대한 보간을 포함할 수도 있다. 보간 필터 (49) 는 본 개시물에 따른 적응적으로 정의된 필터를 나타낼 수도 있다. 그러나, 보간 필터 (49) 는 또한, 적응적으로 정의된 필터, 사전 정의된 필터, 또는 가능하면 보간된 예측 데이터를 생성하기 위해 예측 데이터를 필터링하는 필터들의 세트의 조합을 나타낼 수도 있다. 예를 들어, 보간된 예측 데이터는 하프-픽셀 분해능, 쿼터-픽셀 분해능, 또는 더욱 더 미세한 분해능으로 보간될 수도 있다. 이것은 모션 추정이 비디오 블록들의 모션을 이러한 서브-픽셀 분해능으로 추정할 수 있게 한다.
예측 유닛 (32) 이 (보간 필터 (49) 에 의한 보간 필터링을 포함하는) 예측 블록을 출력하고, 가산기 (48) 가 잔류 블록을 생성하기 위해 코딩된 비디오 블록으로부터 예측 블록을 감산한 이후에, 변환 유닛 (38) 은 잔류 블록에 변환을 적용한다. 변환은 이산 코사인 변환 (DCT) 또는 H.264 표준에 의해 정의된 바와 같은 개념적으로 유사한 변환을 포함할 수도 있다. 웨이브렛 변환, 정수 변환, 서브-대역 변환 또는 다른 타입의 변환이 또한 사용될 수 있다. 어느 경우에서나, 변환 유닛 (38) 은 잔류 블록에 변환을 적용하여, 잔류 변환 계수들의 블록을 생성한다. 변환은 잔류 정보를 픽셀 도메인으로부터 주파수 도메인으로 변환할 수도 있다.
그 후, 양자화 유닛 (40) 이 비트 레이트를 더 감소시키기 위해 잔류 변환 계수들을 양자화한다. 예를 들어, 양자화 유닛 (40) 은 계수들 각각을 코딩하기 위해 사용된 비트들의 수를 제한할 수도 있다. 양자화 이후에, 엔트로피 코딩 유닛 (46) 이 데이터를 스캔하고 엔트로피 인코딩한다. 예를 들어, 엔트로피 코딩 유닛 (46) 은 2 차원 표현으로부터 하나 이상의 직렬화된 1 차원 벡터들까지 양자화된 계수 블록을 스캔할 수도 있다. 스캔 순서는 (지그 재그 스캐닝 또는 다른 사전 정의된 순서와 같이) 정의된 순서로 발생하도록 사전 프로그래밍될 수도 있거나, 가능하면 이전의 코딩 통계에 기초하여 적응형 정의될 수도 있다. 이러한 스캐닝 프로세스에 후속하여, 엔트로피 인코딩 유닛 (46) 은 데이트를 더 압축하기 위해, 컨텍스트 적응형 가변 길이 코딩 (CAVLC) 또는 컨텍스트 적응형 바이너리 산술 코딩 (CABAC) 과 같은 엔트로피 코딩 방법에 따라 (임의의 신택스 엘리먼트에 따라) 양자화된 변환 계수들을 인코딩한다. 엔트로피 코딩된 비트스트림에 포함된 신택스 엘리먼트들은 인터 코딩용 모션 벡터 또는 인트라 코딩용 예측 모드와 같은, 예측 유닛 (32) 으로부터의 예측 신택스를 포함할 수도 있다. 엔트로피 코딩된 비트스트림에 포함된 신택스 엘리먼트들은 또한, 여기에 설명된 방식으로 인코딩될 수 있는 필터 유닛 (47) 및 예측 유닛 (32) 으로부터의 필터 정보를 포함할 수도 있다.
CAVLC 는 엔트로피 코딩 유닛 (46) 에 의한 벡터화에 기초하여 적용될 수도 있는 ITU H.264/MPEG4, AVC 표준에 의해 지원된 일 타입의 엔트로피 코딩 기법이다. CAVLC 는 변환 계수들 및/또는 신택스 엘리먼트들의 직렬화된 "런 (run)"들을 효율적으로 압축하는 방식에서 가변 길이 코딩 (VLC) 테이블을 사용한다. CABAC 는 엔트로피 코딩 유닛 (46) 에 의한 벡터화에 기초하여 적용될 수도 있는 ITU H.264/MPEG4, AVC 표준에 의해 지원된 다른 타입의 엔트로피 코딩 기법이다. CABAC 는 2치화, 컨텍스트 모델 선택, 및 이진 산술 코딩을 포함하는 여러 스테이지를 수반할 수도 있다. 이러한 경우에서, 엔트로피 코딩 유닛 (46) 은 CABAC 에 따라 변환 계수들 및 신택스 엘리먼트들을 코딩한다. 다수의 다른 타입의 엔트로피 코딩 기법들이 또한 존재하고, 새로운 엔트로피 코딩 기법들이 장래에 출현할 것이다. 본 개시물은 임의의 특정한 엔트로피 코딩 기법에 제한되지 않는다.
엔트로피 인코딩 유닛 (46) 에 의해 엔트로피 코딩에 후속하여, 인코딩된 비디오는 다른 디바이스로 송신될 수도 있거나 나중의 송신 또는 검색을 위해 아카이브될 수도 있다. 다시, 인코딩된 비디오는 디코딩 프로세스를 적절하게 구성하기 위해 디코더에 의해 사용될 수 있는 엔트로피 코딩된 벡터들 및 다양한 신택스를 포함할 수도 있다. 역양자화 유닛 (42) 및 역변환 유닛 (44) 은 픽셀 도메인에서 잔류 블록을 재구성하기 위해 역양자화 및 역변환을 각각 적용한다. 합산기 (51) 는 예측 유닛 (32) 에 의해 생성된 예측 블록에 재구성된 잔류 블록을 가산하여 메모리 (34) 에서의 저장을 위한 재구성된 비디오 블록을 생성한다. 그러나, 이러한 저장 이전에, 필터 유닛 (47) 이 비디오 품질을 개선시키기 위해 비디오 블록에 필터링을 적용할 수도 있다. 필터 유닛 (47) 에 의해 이러한 필터링은 블록화 또는 다른 인공물을 감소시킬 수도 있다. 또한, 필터링은 코딩된 비디오 블록에 근접한 매칭을 포함하는 예측 비디오 블록들을 생성함으로써 압축을 개선시킬 수도 있다.
다시, 필터 유닛 (47) 은 적어도 2개의 상이한 타입의 필터링을 지원할 수도 있다. 필터 유닛 (47) 은 실제로 동일하거나 유사한 필터들일 수도 있는 인-루프 필터 (37) 및 포스트-루프 필터 (39) 를 포함할 수도 있다. 필터 유닛 (47) 이 인-루프 필터링을 수행하면, 이러한 필터링 이후에, 재구성된 비디오 블록은 후속 비디오 프레임 또는 다른 코딩된 유닛에서 블록을 인터 코딩하기 위해 모션 추정에 대한 레퍼런스 블록으로서 예측 유닛 (32) 에 의해 사용될 수도 있다. 필터 유닛 (47) 이 포스트-루프 필터링을 수행하면, 메모리 (34) 는 재구성된 비디오 블록의 필터링되지 않은 버전을 저장할 수도 있고, 재구성된 비디오 블록의 필터링되지 않은 버전은 후속 비디오 프레임 또는 다른 코딩된 유닛에서 블록을 인터 코딩하기 위해 레퍼런스 블록으로서 예측 유닛 (32) 에 의해 사용될 수도 있다.
필터링 유닛 (47) 에 의한 필터링은 비디오 품질을 촉진시키는 방식으로 필터 계수 선택을 포함할 수도 있다. 예를 들어, 필터 유닛 (47) 은 계수들의 사전 정의된 세트들로부터 필터 계수들을 선택할 수도 있거나, 비디오 품질 또는 개선된 압축을 촉진시키기 위해 필터 계수들을 적응적으로 정의할 수도 있다. 필터 유닛 (47) 은 소정의 코딩된 유닛에 대한 필터 계수들의 세트를 선택하거나 정의할 수도 있어서, 동일한 필터 계수들이 그 코딩된 유닛의 모든 비디오 블록들에 대해 사용되거나, 일부 경우에서는, 소정의 비디오 블록의 상이한 픽셀들에 상이한 필터들을 적용할 수도 있다. 몇몇 경우에서, 필터 유닛 (47) 은 필터 계수들의 여러 세트들을 적용할 수도 있고 최상의 품질의 비디오를 생성하는 세트를 선택할 수도 있다.
본 개시물에 따르면, 필터 유닛 (47) 및 예측 유닛 (54) 은 집합적 방식으로 필터링을 수행한다. 특히, 필터 유닛 (47) 으로 필터링을 수행할지의 판정, 및 이러한 필터링에 대해 인-루프 필터 (37) 또는 포스트 루프 필터 (39) 를 적용할지의 판정은, 모션 보상 동안 보간 필터 (49) 가 적응형 보간 필터링을 적용하였는지에 적어도 부분적으로 의존할 수도 있다. 이러한 방식으로, 본 개시물의 기법들은 어쩌면 비디오 품질을 저하시킬 수 있는 데이터의 오버-필터링을 회피하는 것을 도울 수도 있다. 또한, 이 기법들은 몇몇 경우에서 인-루프 필터링에 의해 야기될 수도 있는 필터링 인공물의 전파를 회피하는 것을 도울 수도 있다. 비디오 인코더 (50) 에 의해 수행될 수도 있는 필터링 판정들의 추가의 상세가 이하에 더욱 상세히 설명된다.
도 3 은 여기에 설명된 방식으로 인코딩되는 비디오 시퀀스를 디코딩하는 비디오 디코더 (60) 의 예를 예시하는 블록도이다. 본 개시물의 필터링 기법들은 몇몇 예들에서 비디오 디코더 (60) 에 의해 수행될 수도 있다. 수신된 비디오 시퀀스는 이미지 프레임들의 인코딩된 세트, 프레임 슬라이스들의 세트, 픽처들의 일반적으로 코딩된 그룹 (GOP), 또는 이러한 비디오 블록들을 어떻게 디코딩하는지 정의하기 위해 인코딩된 비디오 블록 및 신택스 정보를 포함하는 광범위한 코딩된 비디오 유닛들을 포함할 수도 있다.
비디오 디코더 (60) 는 도 2 의 엔트로피 인코딩 유닛 (46) 에 의해 수행된 인코딩의 상반 디코딩 기능을 수행하는 엔트로피 디코딩 유닛 (52) 을 포함한다. 특히, 엔트로피 디코딩 유닛 (52) 은 CAVLC 또는 CABAC 디코딩, 또는 비디오 인코더 (50) 에 의해 사용된 임의의 다른 타입의 엔트로피 디코딩을 수행할 수도 있다. 1 차원 직렬화된 포맷에서의 엔트로피 디코딩된 비디오 블록들은, 계수들의 하나 이상의 1 차원 벡터들로부터 2 차원 블록 포맷으로 역으로 변환될 수도 있다. 비디오 블록들에 대해 정의된 스캔 순서 뿐만 아니라, 벡터들의 수 및 사이즈는, 2 차원 블록이 어떻게 재구성되는지를 정의할 수도 있다. 엔트로피 디코딩된 예측 신택스는 엔트로피 디코딩 유닛 (52) 으로부터 예측 유닛 (54) 으로 전송될 수도 있고, 엔트로피 디코딩된 필터 정보는 엔트로피 디코딩 유닛 (52) 으로부터 필터 유닛 (57) 으로 전송될 수도 있다.
비디오 디코더 (60) 는 또한, 예측 유닛 (54), 역양자화 유닛 (56), 역변환 유닛 (58), 메모리 (62), 및 합산기 (64) 를 포함한다. 또한, 비디오 디코더 (60) 는 또한, 합산기 (64) 의 출력을 필터링하는 필터 유닛 (57) 을 포함한다. 본 개시물에 따르면, 필터 유닛 (57) 은 엔트로피 디코딩된 필터 정보를 수신할 수도 있고, 본 개시물에 따라 인-루프 또는 포스트-루프 필터링을 적용할 수도 있다. 비디오 인코더 (50) 와 같이, 비디오 디코더 (60) 는 예측 유닛 (54) 및 필터 유닛 (57) 을 포함한다. 비디오 디코더의 예측 유닛 (54) 은 적응적으로 정의된 필터 및 가능하면 하나 또는 여러 추가 필터들을 나타낼 수도 있는 보간 필터 (69) 를 포함하는 모션 보상 엘리먼트들을 포함할 수도 있다. 필터 유닛 (57) 은 포스트-필터링 및 인-루프 필터링을 지원할 수도 있다. 필터 유닛 (57) 은, 이들 컴포넌트들이 어쩌면 큰 범위로 결합될 수 있지만 포스트-루프 필터 (66) 및 인-루프 필터 (67) 를 포함하는 것으로 도시된다.
비디오 인코더 (50) 와 같이, 비디오 디코더 (60) 에서, 필터 유닛 (57) 및 예측 유닛 (54) 은 집합적 방식으로 필터링을 수행한다. 특히, 필터 유닛 (57) 으로 필터링을 수행할지의 판정 및 이러한 필터링을 위해 인-루프 필터 (67) 또는 포스트-루프 필터 (66) 를 적용할지의 판정은 디코딩 프로세스의 모션 보상 동안 보간 필터 (69) 가 적응형 보간 필터링에 적용되었는지에 적어도 부분적으로 의존할 수도 있다. 이러한 방식으로, 본 개시물의 기법들은 비디오 품질을 개선시킬 수도 있다.
광범위한 비디오 압축 기술들 및 표준들은, 입력 비디오 신호들에 고유한 리던던시를 감소시키거나 제거하기 위해 공간 및 시간 예측을 수행한다. 상술한 바와 같이, 입력 비디오 블록은 공간 예측 (즉, 인트라 예측) 및/또는 시간 예측 (즉, 인터 예측 또는 모션 추정) 을 사용하여 예측된다. 여기에서 설명한 예측 유닛들은 소정의 입력 비디오 블록에 대한 바람직한 예측 모드를 선택하기 위해 모드 판정 모듈 (미도시) 을 포함할 수도 있다. 모드 선택은 블록이 인트라 또는 인터 코딩되는지, 인트라 코딩이 사용되면 예측 블록 사이즈 및 예측 모드, 및 인터 코딩이 사용되면 사용된 모션 파티션 사이즈 및 모션 벡터들과 같은 다양한 팩터들을 고려할 수도 있다. 예측 블록이 입력 비디오 블록으로부터 감산되고, 그 후, 변환 및 양자화가 상술한 바와 같이 잔류 비디오 블록에 적용된다. 모드 정보에 따라, 양자화된 계수들은 엔트로피 인코딩되어 비디오 비트스트림을 형성한다. 양자화된 계수들은 또한, 역양자화 및 역변환을 거쳐서, 재구성된 비디오 블록을 형성하기 위해 예측 비디오 블록 (선택된 코딩 모드에 의존하여 인트라 예측된 블록 또는 모션 보상된 블록) 으로 역으로 가산될 수 있는 재구성된 잔류 블록을 형성할 수도 있다. 인-루프 또는 포스트-루프 필터가 재구성된 비디오 신호에서 시각적 인공물을 감소시키기 위해 적용될 수도 있다. 재구성된 비디오 블록은 최종으로, 장래의 비디오 블록들의 코딩의 사용을 위해 레퍼런스 프레임 버퍼 (즉, 메모리) 에 저장된다.
H.264/AVC 에서, 직접 인트라 예측이 공간 예측에서 사용될 수도 있다. 4×4 및 8×8 루미넌스 비디오 블록들에 대해, 9개의 상이한 예측 모드들이 사용될 수도 있고, 16×16 루미넌스 블록들 및 크로미넌스 블록들에 대해, 4개의 예측 모드들이 사용될 수도 있다. 시간 예측에 대해, 모션 추정은 비디오 오브젝트들의 이동을 트랙킹하기 위해 수행될 수도 있다. 모션 추정은 가변 사이즈들, 예를 들어, 16×16, 16×8, 8×16, 8×8 또는 더 작은 블록 사이즈의 블록에 대해 행해질 수도 있다. 모션 추정의 결과로서 오브젝트 변위는, 비디오 코더가 정수 픽셀 위치들 보다 더 높은 정밀도로 모션 필드를 트랙킹할 수 있게 하고, 종종 더 양호한 예측 블록을 획득할 수 있게 하는 하프 또는 쿼터 정밀도 (또는 임의의 더 미세한 정밀도) 를 가질 수도 있다. 분수 픽셀 값들을 갖는 모션 벡터들이 사용될 때, 보간 동작이 여기에 설명한 바와 같이 수행된다. H.264/AVC 표준에 따른 이러한 보간을 위해, 탭 계수 [1 -5 20 20 -5 1] 을 갖는 6-탭 위너 필터 및 이중선형 필터가 모션 보상 보간을 위해 사용될 수도 있다.
ITU-T SG16/Q.6/VCEG (비디오 코딩 전문가 그룹) 회의가 H.264/AVC 보다 더 높은 코딩 효율성을 제공하는 코딩 기술들을 현재 연구하고 있다. 이러한 연구는 KTA (Key Technology Areas) 포럼 및 다른 장소에서 행해진다. KTA 에 채용되어진 코딩 툴들 중의 하나를 적응형 보간 필터 (AIF) 라 칭한다. AIF 는 특히 높은 분해능 (예를 들어, 1080 순차적 스캔) 을 갖는 비디오 시퀀스들에 대해, 현재의 H.264/AVC 필터링 기법들 이상의 코딩 이득들을 제공할 수도 있다. 몇몇 AIF 방식에서, 2 차원 (2D) 비-분리가능한 보간 필터가 예측 에러 에너지를 실질적으로 최소화함으로써 각 비디오 프레임에 대해 분석적으로 계산될 수도 있다. 이것은 원래 및 레퍼런스 비디오 신호에 포함되는 에일리어싱 효과, 양자 및 모션 추정 에러, 카메라 노이즈, 또는 다른 팩터를 다루는 것을 도울 수도 있다. 몇몇 경우에서, 각 프레임에 대한 분석적으로 유도된 적응형 필터 계수들의 세트는 자체적으로 예측될 수도 있고, 양자화될 수도 있고, 비디오 비트스트림에서 전송될 수도 있다.
2 차원 (2D) 비-분리가능한 AIF (NS-AIF) 에 부가하여, 다른 AIF 방식들이 또한, 보간 필터 계수들 또는 인-루프 또는 포스트 루프 필터 계수들을 정의하기 위해 사용될 수도 있다. 다른 타입의 AIF 방식들이 분리가능한 AIF (S-AIF), 직접 AIF (DAIF), 및 인핸스드 AIF (E-AIF) 를 포함할 수도 있다. 이들 AIF 방식들 모두는 예측 에러 에너지 또는 결과적인 잔류 비디오 블록들을 실질적으로 최소화함으로써 각 프레임에 대한 필터 계수들을 적응적으로 유도하기 위해 동일한 일반적인 분석 프로세스를 따를 수도 있다. 이들 적응적으로 유도된 필터 계수들은 예측될 수도 있고, 양자화될 수도 있고, 비트스트림에서 전송될 수도 있다.
상이한 AIF 방식들 사이의 차이점은, 상이한 필터 구조의 사용, 예를 들어, 필터가 분리가능하거나 비-분리가능한지, 풀-펠 (full-pel) 필터가 사용되는지, 임의의 필터 오프셋이 지원되는지, 또는 다른 팩터들에 있다. 또한, 수평 필터 지원, 수직 필터 지원, 대각 필터 지원, 방사 필터 지원과 같은 상이한 필터 지원들이 또한 사용될 수도 있다. 필터 계수를 통신하기 위해 필요한 데이터량을 감소시키기 위해 대칭이 이용될 수도 있다. 대칭으로, 예를 들어, 계수들 [-X, -Y, -Z, Z, Y, X] 의 세트가 계수들 X, Y 및 Z 를 전송하고 대칭에 기초하여 -X, -Y 및 -Z 를 유도함으로써 통신될 수도 있다. 필터 계수들은 또한, 예를 들어, 공지된 필터들 또는 이전에 인코딩된 필터들에 기초하여 예측적으로 인코딩될 수도 있다.
사용될 수도 있는 다른 코딩 툴이 블록 기반 적응형 루프 필터 (BALF) 이다. 레퍼런스 프레임 저장부에 재구성된 비디오 블록을 저장하기 이전에, BALF 는 (디블록킹 필터 이후에) 적응형 인-루프 필터를 계산하고 적용한다. BALF 로, 루프 필터 계수들은 각 프레임 (또는 다른 코딩된 유닛) 에 대해 적응적으로 계산될 수도 있고, 비트스트림에서 전송될 수도 있다. 적응형 루프 필터 (ALF) 가 소정의 비디오 블록에 적용되는지 여부가 또한 비트스트림에서 시그널링될 수도 있다. 본 명세서에 설명된 필터 유닛들은 BALF-스타일 필터링을 수행할 수도 있지만, 인-루프 또는 포스트 루프 사이에서 선택할 수도 있다. 디-블록 필터링은 또한 여기에 설명된 필터 유닛들의 일부일 수도 있거나 BALF-스타일 필터링으로부터 분리될 수 있다. 예를 들어, 디-블록 필터링은 BALF-스타일 인-루프 또는 포스트-루프 필터링 이전에 수행될 수 있다.
본 개시물은 몇몇 경우에서, AIF 및 BALF 양자를 수행하는 비디오 코딩과 관련된다. AIF 가 사용될 때, 모션 보상 블록은 고정 보간 필터들 보다는 적응형 보간 필터들을 적용할 수도 있다. 이러한 경우에서, 적응형 필터 계수들은 비트스트림에서 특정될 수도 있다. 상기 언급한 바와 같이, BALF-스타일 필터들은, 비디오가 저장 및/또는 디스플레이되기 이전에 비디오 인코더 또는 비디오 디코더의 디코딩 프로세스의 최종 단계로서 디블록킹 필터 이후에 배치될 수도 있다. 따라서, 도 2 및 도 3 에 관하여, 필터 유닛들 (37 및 57) 이 BALF-스타일 필터링을 수행하면, 필터 유닛들 (37 및 57) 내에 위치되는 디-블록 필터들 (미도시) 이 또한 존재할 수도 있다. BALF 는, 비트스트림에서 비디오 블록의 일부 또는 모두에 대해 적응형 루프 필터를 적용할지를 나타내기 위해 신호들이 전송되는 더욱 일반적인 적응형 루프 필터링의 일 예일 수도 있다. 적응형 루프 필터들은 본 개시물에 따라 루프내 또는 루프 외부에 배치될 수도 있다. 적응형 포스트 필터링 (APF) 을, 필터 계수들이 적응적으로 정의되는 포스트-루프 필터링이라 칭할 수도 있다. 적응형 필터가 코딩 루프 외부에 배치될 때, 필터링된 프레임만이 디스플레이 목적을 위해 사용되고, 장래의 비디오 프레임들의 코딩에 대한 레퍼런스 프레임으로서 사용되지 않는다. 몇몇 경우에서, 디코더는 특히, 소정의 비디오 시퀀스의 디코딩에서 그렇게 행하기 위해 컴퓨팅 사이클 외부에서 구동할 때 적응형 필터를 적용하지 않는 것을 선택할 수도 있다. 따라서, 여기에 설명된 우연성에 부가하여, 인코더 또는 디코더는 소정의 기간내에 그렇게 행하기 위한 컴퓨팅 사이클이 충분하지 않으면 포스트-루프 필터링을 항상 서스펜딩할 수 있다.
AIF 에서 사용된 적응형 필터들은 ALF 또는 APF 에서 사용된 적응형 필터들에 대해 코딩의 상이한 스테이지들에 위치된다. 특히, AIF 가 인터 예측 정확도를 개선시키기 위해 모션 보상의 스테이지에 적용되는 동안, ALF 또는 APF 는 재구성된 비디오 블록내의 양자화 노이즈 및 코딩 인공물들을 감소시키기 위해 코딩 프로세스의 종단 근처에 배치된다. 적응형 필터링으로, 본 개시물은 코딩 효율성에서의 개선을 달성하기 위해 AIF 및 ALF 또는 APF 에 관한 필터링 판정의 조합을 의도한다. 그러나, AIF 및 ALF/APF의 단순한 조합은, 비디오 프레임에서의 다수의 픽셀들이 AIF에 의해 먼저, 그 후 ALF/APF 에 의해 2번 필터링될 수도 있다는 것을 의미한다. 이러한 경우에서, 이러한 시스템의 복잡도는 특히 ALF/APF 가 큰 필터들을 사용하는 경우에 매우 높을 수도 있다. 예를 들어, 몇몇 BALF 방식들은 상대적으로 큰 비-분리가능한 9×9 필터들일 수도 있다.
몇몇 예들에서, 모션 보상에 의해 지원된 각 가능한 풀-펠 또는 서브-펠 포지션에 대해, 필터 플래그는, 적응형 필터가 이러한 포지션에 대해 사용되어야 하는지를 나타내기 위해 비트스트림에서 전송될 수도 있다. 하프-픽셀 및 쿼터-픽셀 보간들을 지원하는 시스템들에 대해, 예를 들어, 각 정수 픽셀과 관련된 16개의 가능한 픽셀 포지션, 하나의 정수 픽셀 포지션, 3개의 하드-픽셀 포지션, 및 12개의 쿼터 픽셀 포지션이 존재할 수도 있다. 소정의 풀-펠 또는 서브-펠 포지션 (
Figure pct00001
)(
Figure pct00002
) 에 대해,
Figure pct00003
는, 적응형 보간 필터가 포지션 (
Figure pct00004
) 에 대해 사용되어야 하는지를 특정할 수도 있다. 이러한 경우에서,
Figure pct00005
이면, 적응형 필터가 비트스트림에서 전송될 수도 있고, 포지션 (
Figure pct00006
) 에 대응하는 모션 벡터들로 예측 블록들을 보간하기 위해 사용될 수도 있다. 그렇지 않고,
Figure pct00007
이면, 고정 보간 필터 (예를 들어, H.264 에서 사용된 6-탭 필터) 가 대신 사용될 수도 있다.
풀-펠 포지션에 대해,
Figure pct00008
가 0 이면, 모션 벡터들이 풀-펠 정밀도를 갖는 경우에 적용될 수도 있는 필터링은 없다. 대신에, 예측 블록은 모션 벡터에 의해 식별된 대응하는 위치에서 레퍼런스 프레임으로부터 직접 카피함으로써 획득될 수도 있다. 몇몇 AIF 방식에서, 풀-펠 적응형 필터가 사용되지 않고, 이들 AIF 방식에 대해서는,
Figure pct00009
의 값은 실제로 항상 0 으로 설정될 수도 있다.
특정한
Figure pct00010
(
Figure pct00011
) 가 1 로 설정될 때, 포지션 (
Figure pct00012
) 에 대응하는 모션 벡터들에 대한 적응형 보간 필터가 사용될 수도 있다. 이것은, 예측 에러 에너지가 포지션 (
Figure pct00013
) 에 대응하는 모션 벡터들을 갖는 비디오 블록들에 대한 모션 보상 스테이지 동안 실질적으로 최소화되었다는 것을 의미한다. 이들 비디오 블록들에 대해, 코딩 플로우의 나중의 스테이지에서의 ALF 또는 APF 의 적용은 덜 중요하게 될 수도 있다. 그러나,
Figure pct00014
인 포지션 (
Figure pct00015
) 에 대응하는 모션 벡터들을 갖는 나머지 인터 코딩된 비디오 블록들에 대해, 코딩 플로우의 나중의 스테이지에서의 ALF 또는 APF 의 적용은 코딩 인공물 및/또는 코딩 노이즈의 감소를 도울 수도 있다. 또한, AIF 는 인터 코딩된 블록들에만 적용가능할 수도 있고, 인트라 코딩된 비디오 블록들에 대해서는 거의 또는 아무런 영향을 갖지 않을 수도 있다.
인트라 코딩된 비디오 블록들은 고속 및/또는 불규칙 모션을 포함하는 비디오 시퀀스들에서 비디오 프레임의 상당한 부분을 구성할 수도 있다. 또한, 인트라 코딩된 비디오 블록들은, 소위 계층적 B 예측 구조가 사용될 때 (여기서, B 는 2개 이상의 레퍼런스 프레임 또는 슬라이스에 기초하여 예측되는 "양방향" 프레임 또는 슬라이스를 칭함) 와 같이 현재의 프레임과 레퍼런스 프레임 사이의 시간적 거리가 클 때, 비디오 시퀀스들에서 비디오 프레임의 상당한 부분을 구성할 수도 있다. 인트라 코딩된 비디오 블록들에 대해, ALF 또는 APF 의 적용은 또한, 코딩 인공물 및 코딩 노이즈를 감소시키는데 바람직할 수도 있다.
본 개시물의 몇몇 양태들에서, AIF 및 ALF/APF 의 상대적으로 낮은 복잡도의 조합이 제안된다. 몇몇 예들에서, 본 개시물은 AIF 가 적용되지 않은 비디오 블록에만 ALF/APF 가 적용될 수도 있다는 것을 제공한다. 이러한 경우에서, 예를 들어, AIF 가 적용되지 않은 비디오 블록들은
Figure pct00016
가 0 인 포지션 (
Figure pct00017
) 에 대응하는 모션 벡터들을 갖는 인터 코딩된 비디오 블록들을 포함할 수도 있고, 모든 인트라 코딩된 비디오 블록들을 또한 포함할 수도 있다. 이러한 조합은 프레임에서의 각 픽셀이 많아야 1회 필터링되기 때문에 시스템 복잡도를 상당히 감소시킬 수도 있고, AIF 및 ALF/APF 의 더욱 나이브 (naive) 한 조합은 프레임에서의 각 픽셀을 2배까지 필터링할 수도 있다.
도 4 는 본 개시물의 예들에 따른, 적응형 인-루프 필터링과 적응형 포스트-루프 필터링 사이에서 선택하는 일 기법을 예시하는 흐름도이다. 이 기법은 도 1 에 도시된 비디오 인코더 (22) 또는 비디오 디코더 (28) 와 같은 비디오 코더에 의해 수행될 수도 있다. 이러한 경우에서, 슬라이스 또는 다른 코딩된 유닛의 각 비디오 블록 (n) 에 대해 (401), 비디오 코더는 블록 (n) 인터 코딩되는지를 결정한다 (402). 아니면 ("아니오" 402),
Figure pct00018
이 적용되고, 이것은 ALF/APF 가 블록에 적용될 것이라는 것을 의미하다 (403). 그러하면 ("예" 402), 비디오 코더는 블록 (n) 의 모션에 대응하는 픽셀 위치 (예를 들어, 16개의 가능한 정수 또는 서브-정수 포지션들 중 하나) 에
Figure pct00019
를 설정할 수도 있다 (404). 그 후, 비디오 코더는
Figure pct00020
의 설정 포지션에 대한
Figure pct00021
의 값을 체크할 수도 있다 (405).
Figure pct00022
의 설정 포지션에 대해,
Figure pct00023
("예" 405) 이면,
Figure pct00024
이 적용되고 (406), 이것은 ALF/APF 가 그 블록에 적용되지 않을 것이라는 것을 의미한다. 그러나,
Figure pct00025
의 설정 포지션에 대해,
Figure pct00026
("아니오" 405) 이면,
Figure pct00027
이 적용되고 (407), 이것은 ALF/APF 가 그 블록에 적용될 것이라는 것을 의미한다.
도 5 는 본 개시물의 예들에 따라 적어도 하나의 넌-제로 잔류값을 포함하는 인터 코딩된 비디오 블록의 재구성을 위한 일 기법을 예시하는 흐름도이다. 이러한 기법은 도 1 에 도시된 비디오 인코더 (22) 또는 비디오 디코더 (28) 와 같은 비디오 코더에 의해 수행될 수도 있다. 도 5 에 도시된 바와 같이, 슬라이스 또는 다른 코딩된 유닛의 각 비디오 블록 (n) 에 대해 (501), 비디오 코더는, 블록 (n) 이 인터 코딩되는지를 결정한다 (502). 아니면 ("아니오" 502),
Figure pct00028
이 적용되고, 이것은 ALF/APF 가 그 블록에 적용될 것이라는 것을 의미한다 (503). 그러하면 ("예" 502), 비디오 코더는 블록 (n) 의 모션에 대응하는 픽셀 포지션 (예를 들어, 16개의 가능한 정수 또는 서브-정수 포지션들 중 하나) 에
Figure pct00029
를 설정할 수도 있다 (504). 그 후, 비디오 코더는
Figure pct00030
의 설정 포지션에 대한
Figure pct00031
의 값을 체크할 수도 있다 (505).
Figure pct00032
의 설정 포지션에 대해,
Figure pct00033
("아니오" 505) 이면,
Figure pct00034
이 적용되고 (506), 이것은 ALF/APF 가 그 블록에 적용될 것이라는 것을 의미한다.
도 5 의 예에서,
Figure pct00035
의 설정 포지션에 대해,
Figure pct00036
("예" 505) 이면, 비디오 코더는 블록이 임의의 넌-제로 잔류값들을 포함하는지를 결정하기 위해 비디오 블록의 픽셀 레벨로 진행한다 (507). 이러한 경우에서, 블록이 넌-제로 잔류값들을 포함하면 ("예" 507),
Figure pct00037
이 적용되고 (508), 이것은 ALF/APF 가 그 블록에 적용될 것이라는 것을 의미한다. 그러나, 블록이 어떠한 넌-제로 잔류값들도 포함하지 않으면 ("아니오" 507),
Figure pct00038
이 적용되고 (509), 이것은 ALF/APF 가 그 블록에 적용되지 않을 것이라는 것을 의미한다. 도 5 의 판정 프로세스는 도 4 의 프로세스에 비하여
Figure pct00039
을 적용 (
Figure pct00040
)을 갖는 더 높은 수의 비디오 블록들을 발생시킬 수도 있다. 이것은 또한, 도 5 의 프로세스를 사용하여 픽셀 당 필터링 동작의 평균수가 AIF 및 ALF/APF 의 더욱 나이브한 조합이 적용된 경우에 요구되는 필터 동작들의 수 보다 여전히 작지만, 각 픽셀이 평균적으로 2회 이상 필터링되게 한다.
도 6 은 본 개시물의 예들에 따라 적어도 하나의 넌-제로 잔류값을 포함하는 인터 코딩된 비디오 블록의 재구성을 위한 일 기법에 대한 기법을 예시하는 블록도이다. 도 5 의 판정 프로세스를 이용하는 일 이점은, 역양자화 유닛 (601), 역변환 유닛 (602), 모션 보상 유닛 (603), 및 가산기 (604) 를 포함하는 도 6 에 도시된 블록 기반 비디오 디코딩 엘리먼트들로부터 인식될 수도 있다. 이들 컴포넌트들은 도 2 및 도 3 각각에 도시된 비디오 인코더 (50) 또는 비디오 디코더 (60) 의 컴포넌트들에 대응할 수도 있다. 도 6 에 도시되어 있는 바와 같이, 모션 예측 에러 에너지가 AIF 필터의 사용에 의해 모션 보상 동안 최소화되었더라도, 넌-제로 잔류의 가산 이후에, 재구성된 블록은 특정한 레벨의 코딩 노이즈를 여전히 포함할 수도 있다. 이러한 경우에서, AIF 가 적용되었더라도, 코딩의 나중의 스테이지에서 ALF 또는 APF 를 여전히 적용하는 것이 유익할 수도 있다.
BALF 로, 비디오 프레임 또는 슬라이스는 BALF 블록들로서 칭할 수도 있는 다양한 사이즈의 블록들로 파티션될 수도 있다. 이러한 BALF 블록들은 8×8, 16×16, 32×32, 64×64 또는 다른 사이즈들과 같은 다양한 사이즈들을 가질 수도 있다. BALF 블록들의 사이즈는 필터링 신택스 정보의 일부일 수도 있는 인코딩된 BALF 파라미터들의 세트의 일부로서 비트스트림에서 시그널링될 수도 있다. 각 BALF 블록에 대해, ALF 가 적용되는지를 나타내기 위해 1-비트 플래그 (
Figure pct00041
) 가 전송될 수도 있다.
Figure pct00042
가 1 이면, BALF 블록에서의 모든 픽셀들은 적응형 루프 필터를 사용하여 필터링될 수도 있다. 그렇지 않고,
Figure pct00043
=0 이면, BALF 블록에서의 픽셀들은 필터링되지 않을 수도 있다. 몇몇 예들에서, BALF 파라미터들은 적응형 필터 계수들, BALF 블록 사이즈들 및 코딩된 유닛내의 모든 BALF 블록들에 대한
Figure pct00044
를 포함할 수도 있다. 또한, 도 7 에 도시되어 있는 바와 같이, 이러한 BALF 파라미터들은 코딩된 유닛에 대한 헤드 엘리먼트 (701) 보다는 푸터 엘리먼트 (705) 에 위치될 수도 있다.
헤드 엘리먼트에 BALF 파라미터들을 위치시키는 것은 다음의 문제를 야기할 수도 있다.
1. 헤드 엘리먼트에 BALF 파라미터들을 위치시키는 것은, BALF 파라미터들의 유도를 더욱 어렵게 할 수도 있다. 이러한 경우에서, BALF 파라미터들은, 전체 비디오 슬라이스가 코딩되기 전까지는 유도되지 않을 수도 있다. 따라서, BALF 파라미터가 유도된 이후에, (엔트로피 인코더의 일부일 수도 있는) 비트스트림 핸들러는 슬라이스 헤더와 슬라이스 데이터 사이의 슬라이스 비트스트림으로 BALF 파라미터를 역으로 삽입할 필요가 있을 수도 있다. 이것은, 전체 슬라이스의 코딩 및 프로세싱이 완료된 이후에 인코더가 슬라이스 비트스트림을 오직 전송할 수도 있다는 것을 의미하고, 이것은 인코더에서 버퍼링 요구 및 추가의 지연을 도입할 수도 있다.
2. BALF 파라미터들이 헤더 엘리먼트에 위치되면, 이것은 디코더가 슬라이스 데이터를 수신하기 이전에 BALF 파라미터들을 수신하는 것을 요구할 수도 있다. 그러나, BALF 파라미터들은 전체 비디오 슬라이스가 디코딩되기 전까지는 디코더에 의해 사용되지 않을 것이다. 따라서, 이것은 디코더에서 추가의 버퍼링 요건을 도입할 수도 있다.
헤더 엘리먼트 보다는 푸터 엘리먼트에 BALF 파라미터들을 위치시킴으로써, 몇몇 경우에서 이들 문제가 회피될 수도 있다.
도 7 은 본 개시물의 하나 이상의 예들에 따라 필터 정보를 통신하는 비디오 유닛의 데이터 구조 (700) 를 예시하는 개념도이다. 도 7 의 데이터 구조 (700) 에서, BALF 파라미터들이 푸터 엘리먼트 (705), 예를 들어, 슬라이스의 종단에 배치되는 변경된 슬라이스 비트스트림 구조가 도시된다. 다시 말해, (BALF 계수들 (703) 및 BALF 블록 사이즈 및 플래그들 (704) 과 같은) BALF 파라미터들은, 인코딩된 계수들을 포함하는 슬라이스 헤더 (701) 및 슬라이스 데이터 (702) 이후에 위치될 수도 있다. 이것은, 비디오 블록들의 전체 슬라이스가 인코딩되거나 디코딩되기 전까지는 이러한 파라미터들이 사용되지 않을 것이기 때문에, BALF 파라미터들 (또는 임의의 ALF 또는 APF 파라미터들) 에 대해 더욱 유용한 위치일 수도 있다. 도 7 에서, BALF 파라미터들이 현재의 슬라이스에 존재하는지를 나타내는 1-비트 플래그를 슬라이스 헤더 (701) 가 포함할 수도 있다는 것에 유의한다. 이러한 플래그가 0 이면, BALF 파라미터들은 비트스트림에 포함되지 않을 수도 있으며, ALF 프로세스는 이 슬라이스에 대해 회피될 수도 있다.
도 7 에 도시된 바와 같이, 데이터 구조 (700) 를 사용하는 추가의 이점들이 또한 존재할 수도 있다. AIF 및 ALF/APF 의 낮은 복잡도의 조합이 사용될 때, BALF 블록들 중 몇몇은
Figure pct00045
가 상기 설명한 판정 프로세스에 따라 0 으로 설정되는 비디오 블록들만을 포함할 수도 있다. 이들 비디오 블록들에 대해, (ALF 가 이러한 블록들에 대해 적용되지 않을 것이기 때문에)
Figure pct00046
를 전송할 필요가 없을 수도 있다. 슬라이스 헤더에 보다는 슬라이스의 종단에 BALF 파라미터들을 배치함으로써, 디코더는 예를 들어, 슬라이스 데이터를 디코딩할 때 도 4 또는 도 5의 판정 프로세스를 사용하여 모든 비디오 블록들에 대한
Figure pct00047
의 값들을 결정할 수도 있다. 이러한 방식으로, 디코더는 소정의 BALF 블록에 대한
Figure pct00048
를 디코딩할 어떠한 필요성이 존재하는지 알 수도 있고, 이것은
Figure pct00049
의 전송과 관련된 비트 오버헤드가 감소될 수도 있기 때문에 개선된 엔트로피 코딩을 이끌 수도 있다.
상기 약술한 바와 같이, 본 개시물의 기법들은 AIF 및 ALF/APF 의 낮은 복잡도의 조합을 제공할 수도 있다. 몇몇 경우들에서, 비디오 코더에서의 2개의 적응형 필터들의 존재로, 몇몇 예들이 특정한 경우들에서 추가의 필터링을 허용할 수도 있지만 각 픽셀은 많아야 1회 필터링될 수도 있다. 각 비디오 블록에 대해, AIF 각 비디오 블록에 적용되면, ALF/APF 가 회피될 수도 있다. 이러한 경우에서, 2배까지 각 픽셀을 필터링할 수도 있는 2개의 코딩 툴들 (AIF 및 ALF/APF) 의 나이브한 조합에 비교하여, 제안된 낮은 복잡도의 조합은 임의의 소정의 비디오 블록에 적용되는 필터링의 양을 제한함으로써 시스템 복잡도를 상당히 감소시킬 수도 있다.
몇몇 예들에서, 블록에 ALF/APF 를 적용할지를 판정할 때, 비디오 코더는 소정의 비디오 블록에 대해 넌-제로 잔류 정보가 존재하는지를 고려할 수도 있다. 특히, 넌-제로 잔류 정보가 존재할 때, AIF 가 블록에 이미 적용되었더라도, ALF 가 적용될 수도 있다. 이러한 경우는, 비디오 코더가 넌-제로 잔류 블록의 추가로 인한 추가의 코딩 노이즈를 최소화할 수 있게 하여, 비디오 품질을 개선시킨다. 그러나, 이러한 대안은 AIF 가 적용되었는지에 관계없이 그리고 데이터가 제로 또는 넌-제로 잔류 정보를 포함하는지에 관계없이 모든 블록들에 대해 ALF/APF 를 단순히 적용하는 AIF 및 ALF/APF 의 조합 보다 필터링 동작의 평균 수가 여전히 낮을 수도 있지만, 슬라이스내의 픽셀들이 평균적으로 2회 이상 필터링될 수도 있기 때문에 계산적 복잡도의 일부 증가를 초래할 수도 있다.
도 7 의 데이터 구조 (700) 는 AIF 를 BALF 와 통신하기 위한 방식을 제공할 수도 있다. 설명한 바와 같이, 도 7 의 데이터 구조 (700) 는 슬라이스 헤드와 슬라이스 데이터 사이에 삽입하기 보다는 코딩된 유닛에 대한 비트스트림의 종단에 BALF 파라미터들을 배치한다. 이것은 추가의 버퍼링 요건을 감소시킬 수도 있고, BALF 에서의 신택스 엘리먼트 (예를 들어,
Figure pct00050
신택스) 엘리먼트의 더욱 효율적인 엔트로피 코딩을 가능하게 할 수도 있다. 비디오 슬라이스의 인코딩/디코딩 동안, 슬라이스의 모든 비디오 블록들에 대한 엘리먼트
Figure pct00051
의 값들이 판정될 수도 있다. 도 7 의 예에 따르면, BALF 블록 파라미터들이 인코딩되거나 디코딩될 때,
Figure pct00052
를 갖는 비디오 블록들만을 포함하는 이들 BALF 블록들에 대한
Figure pct00053
신택스 엘리먼트는 전송될 필요가 없다. 대신에, 이러한 BALF 블록들에 대한
Figure pct00054
의 값은 0 으로 추론될 수도 있다. 이러한 방식으로,
Figure pct00055
와 관련된 비트 오버헤드가 감소될 수도 있다.
도 8 은 본 개시물의 하나 이상의 예들에 따라 비디오 코딩 프로세스 동안 비디오 유닛의 하나 이상의 비디오 블록들을 필터링하는 기법을 예시하는 흐름도이다. 도 8 은, 유사한 기법들이 비디오 인코더 (50) 에 의해 또한 적용될 수 있지만 비디오 디코더 (60) 의 관점에서 설명될 것이다. 도 8 에 도시된 바와 같이, 비디오 디코더 (60) 의 필터 유닛 (57) 은, 비디오 블록이 인터 코딩되거나 인트라 코딩되는지를 결정한다 (801). 예를 들어, 예측 유닛 (54) 은 필터 유닛 (57) 이 이러한 결정을 행할 수 있도록 정보를 필터 유닛 (57) 으로 통신할 수도 있다. 그 후, 필터 유닛 (57) 은 비디오 블록 인트라 코딩될 때 포스트-루프 필터 또는 인-루프 필터를 비디오 블록에 적용한다 (802). 비디오 블록이 인터 코딩될 때, 필터 유닛 (57) 은 비디오 블록에 관하여 모션 보상 프로세스 동안 적응형 보간 필터가 적용되었는지를 결정한다 (803). 여기에 설명한 바와 같이, 적응형 보간 필터 플래그는 디코더 (60) 가 결정 (803) 을 행할 수 있게 하기 위해 비트스트림에 포함될 수도 있다.
그 후, 필터 유닛 (57) 은 적응형 보간 필터가 적용되었는지에 적어도 부분적으로 기초하여 비디오 블록에 포스트-루프 필터 또는 인-루프 필터를 적용하지를 결정할 수도 있다. 예를 들어, 도 8 에 도시되어 있는 바와 같이, 필터 유닛 (57) 은 비디오 블록이 인터 코딩되지만, 적응형 보간 필터가 모션 보상 프로세스 동안 적용되지 않을 때 (803 의 "아니오"), 비디오 블록에 포스트-루프 필터 또는 인-루프 필터를 적용한다 (802). 그러나, 필터 유닛 (57) 은, 비디오 블록이 인터 코딩되고, 적응형 보간 필터가 모션 보상 프로세스 동안 적용될 때 (803 의 "예"), 비디오 블록에 대한 포스트-루프 및 인-루프 필터링을 회피한다 (804). 몇몇 경우에서, 도 8 의 예에서, 적응형 보간 필터링, 포스트-루프 필터링 및 인-루프 필터링의 세트로부터 오직 일 타입의 필터링만이 임의의 소정의 비디오 블록에 대해 적용된다.
도 9 는 본 개시물의 하나 이상의 예들에 따라 비디오 코딩 프로세스 동안 비디오 유닛의 하나 이상의 비디오 블록들을 필터링하는 기법을 예시하는 다른 흐름도이다. 도 9 는, 유사한 기법들이 비디오 인코더 (50) 에 의해 또한 적용될 수 있지만, 비디오 디코더 (60) 의 관점에서 설명된다. 도 9 에 도시되어 있는 바와 같이, 비디오 디코더 (60) 의 필터 유닛 (57) 은, 비디오 블록이 인터 코딩되거나 인트라 코딩되는지를 결정한다 (901). 예를 들어, 예측 유닛 (54) 은 필터 유닛 (57) 이 이러한 결정을 할 수 있도록 필터 유닛 (57) 에 정보를 통신할 수도 있다. 비디오 블록이 인트라 코딩되면 ("인트라(INTRA)" 901), 필터 유닛 (57) 은 제로 값 잔류값들을 갖는 픽셀 값들에 대해 포스트 루프 필터 (66) 를 적용하고 (902), 넌제로 잔류값들을 갖는 픽셀 값들에 대해 인-루프 필터 (68) 를 적용한다 (903). 이러한 방식으로, 필터 유닛 (57) 은 이러한 픽셀들이 넌-제로 잔류값들에 의해 정의되는지에 기초하여 포스트 루프 필터 (66) 또는 인-루프 필터 (68) 를 적용할지의 픽셀-레벨 결정을 한다.
도 9 의 프로세스에서, 비디오 블록이 인터 코딩될 때 ("인터(INTER)" 901), 필터 유닛 (57) 은 비디오 블록에 관한 모션 보상 프로세스 동안 적응형 보간 필터가 적용되었는지를 결정한다 (903). 그 후, 필터 유닛 (57) 은 적응형 보간 필터가 적용되었는지에 적어도 부분적으로 기초하여 비디오 블록에 포스트-루프 필터 또는 인-루프 필터를 적용하지를 결정할 수도 있다. 예를 들어, 도 9 에 도시되어 있는 바와 같이, 모션 보상 프로세스 동안 적응형 보간 필터가 적용되지 않았다는 것을 필터 유닛 (57) 이 결정하면 (903 의 "아니오"), 필터 유닛 (57) 은 제로-값 잔류값들을 갖는 픽셀 값들에 대해 포스트 루프 필터를 적용하고 (902), 넌-제로 잔류값들을 갖는 픽셀 값들에 대해 인-루프 필터 (68) 를 적용한다 (903). 한편, 필터 유닛 (57) 은, 비디오 블록이 인터 코딩되고, 모션 보상 프로세스 동안 적응형 보간 필터가 적용되었을 때 (904 의 "예"), 포스트-루프 및 인-루프 필터링을 회피한다.
도 10 은 본 개시물의 하나 이상의 예들에 따라 비디오 코딩 프로세스 동안 비디오 유닛의 하나 이상의 비디오 블록들을 필터링하는 기법을 예시하는 다른 흐름도이다. 도 10 은 또한, 유사한 기법들이 비디오 인코더 (50) 에 의해 또한 적용될 수 있지만 비디오 디코더 (60) 의 관점에서 설명된다. 도 10 에 도시되어 있는 바와 같이, 비디오 디코더 (60) 의 필터 유닛 (57) 은, 비디오 블록이 인터 코딩되거나 인트라 코딩되는지를 결정한다 (1001). 다시, 예측 유닛 (54) 은 필터 유닛 (57) 이 이러한 결정을 할 수 있도록 필터 유닛 (57) 으로 정보를 통신할 수도 있다. 비디오 블록이 인트라 코딩되면 ("INTRA" 1001), 필터 유닛 (57) 은 비디오 블록에 포스트-루프 필터 또는 인-루프 필터를 적용한다 (1002). 비디오 블록이 인터 코딩될 때 (1001), 필터 유닛 (57) 은, 비디오 블록에 관한 모션 보상 프로세스 동안 적응형 보간 필터가 적용되었는지를 결정한다 (1003). 그 후, 필터 유닛 (57) 은, 적응형 보간 필터가 적용되었는지에 적어도 부분적으로 기초하여 비디오 블록에 포스트-루프 필터 또는 인-루프 필터를 적용할지 결정할 수도 있다. 예를 들어, 도 10 에 도시되어 있는 바와 같이, 필터 유닛 (57) 은, 비디오 블록이 인터 코딩되지만, 모션 보상 프로세스 동안 적응형 보간 필터가 적용되지 않았을 때 (1003 의 "아니오"), 비디오 블록에 포스트-루프 필터 또는 인-루프 필터를 적용한다 (1002).
도 10 의 기법에서, 인터 코딩된 비디오 블록에 대한 모션 보상 프로세스 동안 적응형 보간 필터가 적용되었으면 (1003 의 "예"), 필터 유닛 (57) 은 또 다른 결정을 한다. 특히, 필터 유닛 (57) 은 잔류 블록이 임의의 넌-제로 잔류값들을 갖는지를 결정한다 (1004). 그러한 경우에 ("예" 1004), 필터 유닛 (57) 은 비디오 블록에 포스트-루프 필터 또는 인-루프 필터를 여전히 적용할 수도 있고 (1002), 가능하면 넌-제로 잔류값들만을 필터링하거나 포스트-루프 필터 (66) 로 가능하면 넌-제로 잔류값들 및 인-루프 필터 (67) 로 제로-값 잔류값들을 필터링한다. 그러나, 이러한 예에서, 잔류 블록이 어떠한 넌-제로 잔류값들도 갖지 않는다는 것을 결정하면 ("아니오" 1004), 필터 유닛 (57) 은 포스트 루프 필터링 및 인-루프 필터링을 회피할 수도 있다 (1005).
도 11 은 비트스트림에서의 데이터에 기초하여 포스트-루프 필터 (66) 와 인-루프 필터 (67) 사이에서 선택하기 위해 비디오 디코더 (60) 에 의해 수행될 수도 있는 기법을 예시하는 흐름도이다. 다시 말해서, 도 11 의 기법은 포스트-루프 필터 (66) 와 인-루프 필터 (67) 사이의 이러한 선택을 용이하게 하기 위해 비트스트림에서의 어떠한 필터링 신택스 정보도 요구하지 않을 수도 있다.
도 11 에 도시되어 있는 바와 같이, 비디오 디코더 (60) 는 예측 비디오 디코딩 기법들을 통해 비디오 디코더에 의해 재구성되는 잔류 비디오 블록들을 포함하는 비디오 데이터를 수신한다 (1101). 이러한 경우에서, 여기에 설명된 바와 같은 비디오 블록 재구성에 후속하여, 필터 유닛 (57) 은 잔류 비디오 블록들에서의 제로의 잔류값들에 의해 정의되는 재구성된 비디오 블록들의 픽셀들에 대해 포스트-루프 필터 (66) 를 적용한다 (1102). 필터 유닛 (67) 은 잔류 비디오 블록들의 제로-값 잔류값들에 의해 정의되는 재구성된 비디오 블록들의 픽셀들에 대해 인-루프 필터링을 적용한다 (1103). 다시, 도 11 의 기법은 포스트-루프 필터 (66) 와 인-루프 필터 (67) 사이의 이러한 선택을 용이하게 하기 위해 비트스트림에서의 어떠한 필터링 신택스 정보도 요구하지 않을 수도 있다.
설명한 바와 같이, 본 개시물의 다양한 기법들은 비디오 인코더 또는 비디오 디코더에 의해 수행될 수도 있다. 이 기법들이 비디오 인코딩 프로세스 동안 수행되면, 이 기법들은 또한 포스트-루프 필터 또는 인-루프 필터가 코딩된 유닛의 비디오 블록들 각각에 적용되어야 하는지를 나타내기 위해 비디오 유닛에 대한 인코딩된 비트스트림으로 신택스 엘리먼트들의 인코딩을 포함할 수도 있다. 상기 약술한 바와 같이, 비디오 유닛에 대한 인코딩된 비트스트림으로의 신택스 엘리먼트들의 인코딩은 비디오 유닛에 대한 계수들에 후속하는 푸터 엘리먼트들로의 신택스 엘리먼트의 인코딩을 포함할 수도 있다.
몇몇 예들에서, 포스트-루프 필터 또는 인-루프 필터를 적용하는 것은, 포스트-루프 필터 및 인-루프 필터 사이에서 선택하는 것을 포함할 수도 있다. 그러나, 다른 예에서, 포스트-루프 필터 또는 인-루프 필터의 적용은 블록 또는 블록의 특정한 픽셀들이 넌-제로 잔류값들에 의해 정의되는지와 같은 다른 팩터들에 의존할 수도 있다. 몇몇 경우들에서, 포스트-루프 필터는 제로-값 잔류값들과 관련된 비디오 블록의 픽셀들에 대해 적용되고, 인-루프 필터는 넌-제로 잔류값과 관련된 비디오 블록의 픽셀들에 대해 적용된다. 실제로, (도 11 에 도시된 바와 같은) 이러한 개념은 자체적으로 이점들을 제공할 수도 있고, 여기에 설명한 다른 기법들과는 독립적으로 사용될 수도 있다.
기법이 비디오 디코딩 프로세스 동안 수행되면, 기법은 또한 비디오 유닛에 대한 수신된 비트스트림으로부터의 신택스 엘리먼트들의 디코딩을 포함할 수도 있고, 여기서, 신택스 엘리먼트들은 포스트-루프 필터 또는 인-루프 필터가 코딩된 유닛의 비디오 블록들 중 적어도 일부에 대해 적용되어야 하는지를 나타낸다. 그러나, 상술한 바와 같이, 도 11 의 예에서, 이러한 신택스 엘리먼트들은 비트스트림으로부터 제거될 수도 있다. 신택스 엘리먼트들이 비트스트림에 포함되면, 신택스 엘리먼트들은 여기에 설명된 바와 같이, 비디오 유닛에 대한 계수들에 후속하는 푸터 엘리먼트에 위치될 수도 있다.
본 개시물의 기법들은 무선 핸드셋, 및 집적 회로 (IC) 또는 IC들의 세트 (즉, 칩 세트) 를 포함하는 광범위한 디바이스들 또는 장치들에서 실현될 수도 있다. 기능적 양태들을 강조하기 위해 제공된 임의의 컴포넌트들, 모듈들 또는 유닛들이 설명되었고, 상이한 하드웨어 유닛들에 의한 실현을 반드시 요구하지는 않는다.
따라서, 여기세 설명된 기법들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 모듈들 또는 컴포넌트들로서 설명된 임의의 특징들은 통합된 로직 디바이스에서 함께 또는 개별이지만 통합가능한 로직 디바이스들로서 개별적으로 구현될 수도 있다. 소프트웨어에서 구현되면, 이 기법들은 실행될 때, 상술한 방법들 중 하나 이상을 수행하는 명령들을 포함하는 컴퓨터 판독가능한 매체에 의해 적어도 부분적으로 실현될 수도 있다. 컴퓨터 판독가능한 데이터 저장 매체는 패키징 자료들을 포함할 수도 있는 컴퓨터 프로그램 제품의 일부를 형성할 수도 있다.
컴퓨터 판독가능한 매체는, 동기 동적 랜덤 액세스 메모리 (SDRAM) 와 같은 랜덤 액세스 메모리 (RAM), 판독 전용 메모리 (ROM), 비휘발성 랜덤 액세스 메모리 (NVRAM), 전기적으로 소거가능한 프로그래머블 판독 전용 메모리 (EEPROM), 플래시 메모리, 자기 또는 광 데이터 저장 매체 등을 포함할 수도 있다. 이 기법들은 추가로 또는 대안으로, 명령들 또는 데이터 구조들의 형태로 코드를 반송하거나 통신하고, 컴퓨터에 의해 액세스되고, 판독되고/되거나 실행될 수 있는 컴퓨터 판독가능한 통신 매체에 의해 적어도 부분적으로 실현될 수도 있다.
명령들은, 하나 이상의 디지털 신호 프로세서 (DSP), 범용 마이크로프로세서, 응용 주문형 집적 회로 (ASIC), 필드 프로그래머블 로직 어레이 (FPGA), 또는 다른 등가의 통합 또는 개별 로직 회로와 같은 하나 이상의 프로세서에 의해 실행될 수도 있다. 따라서, 여기에 사용된 바와 같은 용어 "프로세서" 는 여기에 설명된 기법들의 구현에 적합한 임의의 상술한 구조 또는 임의의 다른 구조를 칭할 수도 있다. 또한, 몇몇 양태들에서, 여기에 설명한 기능은 인코딩 및 디코딩을 위해 구성되거나, 결합된 비디오 인코더-디코더 (CODEC) 에 통합된 전용 소프트웨어 모듈 또는 하드웨어 모듈내에 제공될 수도 있다. 또한, 이 기법들은 하나 이상의 회로 또는 로직 엘리먼트들에서 완전하게 구현될 수 있다.
본 개시물의 다양한 양태들을 설명하였다. 이들 및 다른 양태들은 다음의 청구항들의 범위내에 있다.

Claims (42)

  1. 비디오 코딩 프로세스 동안 비디오 유닛의 하나 이상의 비디오 블록들을 필터링하는 방법으로서,
    비디오 블록이 인터 코딩(inter-code) 되거나 인트라 코딩 (intra-code) 되는지를 결정하는 단계;
    상기 비디오 블록이 인트라 코딩될 때, 상기 비디오 블록에 포스트-루프 (post-loop) 필터 또는 인-루프 (in-loop) 필터를 적용하는 단계;
    상기 비디오 블록이 인터 코딩될 때, 상기 비디오 블록에 관하여 모션 보상 프로세스 동안 적응형 보간 필터가 적용되었는지를 결정하는 단계; 및
    상기 비디오 블록이 인터 코딩될 때, 상기 적응형 보간 필터가 적용되었는지에 적어도 부분적으로 기초하여 상기 비디오 블록에 상기 포스트-루프 필터 또는 상기 인-루프 필터를 적용할지를 결정하는 단계를 포함하는, 하나 이상의 비디오 블록들을 필터링하는 방법.
  2. 제 1 항에 있어서,
    상기 비디오 유닛의 상기 비디오 블록들 각각에 대해 상기 적응형 보간 필터, 상기 포스트-루프 필터 및 상기 인-루프 필터 중 하나만을 적용하는 단계를 더 포함하는, 하나 이상의 비디오 블록들을 필터링하는 방법.
  3. 제 1 항에 있어서,
    상기 비디오 블록에 관하여 상기 모션 보상 프로세스 동안 상기 적응형 보간 필터가 적용되지 않았을 때만, 상기 비디오 블록에 상기 포스트-루프 필터 또는 상기 인-루프 필터를 적용하는 단계를 더 포함하는, 하나 이상의 비디오 블록들을 필터링하는 방법.
  4. 제 1 항에 있어서,
    상기 비디오 블록이 인터 코딩될 때, 상기 비디오 블록이 적어도 일부의 넌-제로 잔류값들을 포함하는 잔류 블록 및 예측 블록으로부터 형성되는 경우에 상기 비디오 블록에 상기 포스트-루프 필터 또는 상기 인-루프 필터를 적용하는 단계; 및
    상기 비디오 블록이 인터 코딩될 때, 상기 비디오 블록이 어떠한 넌-제로 잔류값들도 포함하지 않는 잔류 블록 및 예측 블록으로부터 형성되는 경우에 상기 비디오 블록에 대한 상기 포스트-루프 필터 또는 상기 인-루프 필터의 적용을 스킵하는 단계를 더 포함하는, 하나 이상의 비디오 블록들을 필터링하는 방법.
  5. 제 1 항에 있어서,
    상기 방법은 비디오 인코딩 프로세스 동안 수행되고,
    상기 방법은, 상기 포스트-루프 필터 또는 상기 인-루프 필터가 코딩된 유닛의 상기 비디오 블록들 각각에 적용되어야 하는지를 나타내기 위해 상기 비디오 유닛에 대한 인코딩된 비트스트림으로 신택스 엘리먼트들을 인코딩하는 단계를 더 포함하는, 하나 이상의 비디오 블록들을 필터링하는 방법.
  6. 제 5 항에 있어서,
    상기 비디오 유닛에 대한 상기 인코딩된 비트스트림으로 신택스 엘리먼트들을 인코딩하는 단계는, 상기 비디오 유닛에 대한 계수들에 후속하는 푸터 (footer) 엘리먼트로 상기 신택스 엘리먼트들을 인코딩하는 단계를 포함하는, 하나 이상의 비디오 블록들을 필터링하는 방법.
  7. 제 1 항에 있어서,
    상기 포스트-루프 필터 또는 상기 인-루프 필터를 적용하는 단계는, 상기 포스트-루프 필터 및 상기 인-루프 필터 사이에서 선택하는 단계를 포함하는, 하나 이상의 비디오 블록들을 필터링하는 방법.
  8. 제 7 항에 있어서,
    제로-값 잔류값들과 관련된 상기 비디오 블록의 픽셀들에 대해 상기 포스트-루프 필터를 적용하는 단계; 및
    넌-제로 잔류값들과 관련된 상기 비디오 블록의 픽셀들에 대해 인-루프 필터를 적용하는 단계를 더 포함하는, 하나 이상의 비디오 블록들을 필터링하는 방법.
  9. 제 1 항에 있어서,
    상기 방법은 비디오 디코딩 프로세스 동안 수행되고,
    상기 방법은, 상기 비디오 유닛에 대한 수신된 비트스트림으로부터의 신택스 엘리먼트들을 디코딩하는 단계를 더 포함하고,
    상기 신택스 엘리먼트들은, 상기 포스트-루프 필터 또는 상기 인-루프 필터가 코딩된 유닛의 상기 비디오 블록들의 적어도 일부에 대해 적용되어야 하는지를 나타내는, 하나 이상의 비디오 블록들을 필터링하는 방법.
  10. 제 9 항에 있어서,
    상기 신택스 엘리먼트들은 상기 비디오 유닛에 대한 계수들에 후속하는 푸터 엘리먼트에 위치되는, 하나 이상의 비디오 블록들을 필터링하는 방법.
  11. 비디오 코딩 프로세스 동안 비디오 유닛의 하나 이상의 비디오 블록들을 필터링하는 비디오 코더 장치로서,
    적응형 보간 필터;
    포스트-루프 필터; 및
    인-루프 필터를 포함하고,
    상기 장치는,
    비디오 블록이 인터 코딩되거나 인트라 코딩되는지를 결정하고;
    상기 비디오 블록이 인트라 코딩될 때, 상기 비디오 블록에 상기 포스트-루프 필터 또는 상기 인-루프 필터를 적용하고;
    상기 비디오 블록이 인터 코딩될 때, 상기 비디오 블록에 관하여 모션 보상 프로세스 동안 상기 적응형 보간 필터가 적용되었는지를 결정하는 단계; 및
    상기 비디오 블록이 인터 코딩될 때, 상기 적응형 보간 필터가 적용되었는지에 적어도 부분적으로 기초하여 상기 비디오 블록에 상기 포스트-루프 필터 또는 상기 인-루프 필터를 적용할지를 결정하는, 비디오 코더 장치.
  12. 제 11 항에 있어서,
    상기 비디오 코더 장치는, 상기 비디오 유닛의 상기 비디오 블록들 각각에 대해 상기 적응형 보간 필터, 상기 포스트-루프 필터 및 상기 인-루프 필터 중 하나만을 적용하는, 비디오 코더 장치.
  13. 제 11 항에 있어서,
    상기 비디오 코더 장치는, 상기 비디오 블록에 관하여 상기 모션 보상 프로세스 동안 상기 적응형 보간 필터가 적용되지 않았을 때만, 상기 비디오 블록에 상기 포스트-루프 필터 또는 상기 인-루프 필터를 적용하는, 비디오 코더 장치.
  14. 제 11 항에 있어서,
    상기 비디오 코더 장치는,
    상기 비디오 블록이 인터 코딩될 때, 상기 비디오 블록이 적어도 일부의 넌-제로 잔류값들을 포함하는 잔류 블록 및 예측 블록으로부터 형성되는 경우에 상기 비디오 블록에 상기 포스트-루프 필터 또는 상기 인-루프 필터를 적용하고;
    상기 비디오 블록이 인터 코딩될 때, 상기 비디오 블록이 어떠한 넌-제로 잔류값들도 포함하지 않는 잔류 블록 및 예측 블록으로부터 형성되는 경우에 상기 비디오 블록에 대한 상기 포스트-루프 필터 또는 상기 인-루프 필터의 적용을 스킵하는, 비디오 코더 장치.
  15. 제 11 항에 있어서,
    상기 비디오 코더 장치는 비디오 인코더를 포함하고,
    상기 비디오 코더 장치는, 상기 포스트-루프 필터 또는 상기 인-루프 필터가 코딩된 유닛의 상기 비디오 블록들 각각에 적용되어야 하는지를 나타내기 위해 상기 비디오 유닛에 대한 인코딩된 비트스트림으로 신택스 엘리먼트들을 인코딩하는, 비디오 코더 장치.
  16. 제 15 항에 있어서,
    상기 비디오 코더 장치는, 상기 비디오 유닛에 대한 계수들에 후속하는 푸터 엘리먼트로 상기 신택스 엘리먼트들을 인코딩하는, 비디오 코더 장치.
  17. 제 11 항에 있어서,
    상기 포스트-루프 필터 또는 상기 인-루프 필터를 적용하는데 있어서, 상기 비디오 코더 장치는 상기 포스트-루프 필터 및 상기 인-루프 필터 사이에서 선택하는, 비디오 코더 장치.
  18. 제 17 항에 있어서,
    상기 비디오 코더 장치는,
    제로-값 잔류값들과 관련된 상기 비디오 블록의 픽셀들에 대해 상기 포스트-루프 필터를 적용하고;
    넌-제로 잔류값들과 관련된 상기 비디오 블록의 픽셀들에 대해 인-루프 필터를 적용하는, 비디오 코더 장치.
  19. 제 11 항에 있어서,
    상기 비디오 코더 장치는 비디오 디코더를 포함하고,
    상기 비디오 코더 장치는, 상기 비디오 유닛에 대한 수신된 비트스트림으로부터의 신택스 엘리먼트들을 디코딩하고,
    상기 신택스 엘리먼트들은, 상기 포스트-루프 필터 또는 상기 인-루프 필터가 코딩된 유닛의 상기 비디오 블록들의 적어도 일부에 대해 적용되어야 하는지를 나타내는, 비디오 코더 장치.
  20. 제 19 항에 있어서,
    상기 신택스 엘리먼트들은, 상기 비디오 유닛에 대한 계수들에 후속하는 푸터 엘리먼트에 위치되는, 비디오 코더 장치.
  21. 제 11 항에 있어서,
    상기 비디오 코더 장치는,
    집적 회로;
    마이크로프로세서;
    비디오 인코더를 포함하는 무선 통신 디바이스; 및
    비디오 디코더를 포함하는 무선 통신 디바이스
    중 적어도 하나를 포함하는, 비디오 코더 장치.
  22. 비디오 코딩 프로세스 동안 비디오 유닛의 하나 이상의 비디오 블록들을 필터링하는 디바이스로서,
    비디오 블록이 인터 코딩(inter-code) 되거나 인트라 코딩 (intra-code) 되는지를 결정하는 수단;
    상기 비디오 블록이 인트라 코딩될 때, 상기 비디오 블록에 포스트-루프 (post-loop) 필터 또는 인-루프 (in-loop) 필터를 적용하는 수단;
    상기 비디오 블록이 인터 코딩될 때, 상기 비디오 블록에 관하여 모션 보상 프로세스 동안 적응형 보간 필터가 적용되었는지를 결정하는 수단; 및
    상기 비디오 블록이 인터 코딩될 때, 상기 적응형 보간 필터가 적용되었는지에 적어도 부분적으로 기초하여 상기 비디오 블록에 상기 포스트-루프 필터 또는 상기 인-루프 필터를 적용할지를 결정하는 수단을 포함하는, 하나 이상의 비디오 블록들을 필터링하는 디바이스.
  23. 제 22 항에 있어서,
    상기 비디오 유닛의 상기 비디오 블록들 각각에 대해 상기 적응형 보간 필터, 상기 포스트-루프 필터 및 상기 인-루프 필터 중 하나만을 적용하는 수단을 더 포함하는, 하나 이상의 비디오 블록들을 필터링하는 디바이스.
  24. 제 22 항에 있어서,
    상기 비디오 블록에 관하여 상기 모션 보상 프로세스 동안 상기 적응형 보간 필터가 적용되지 않았을 때만, 상기 비디오 블록에 상기 포스트-루프 필터 또는 상기 인-루프 필터를 적용하는 수단을 더 포함하는, 하나 이상의 비디오 블록들을 필터링하는 디바이스.
  25. 제 22 항에 있어서,
    상기 비디오 블록이 인터 코딩될 때, 상기 비디오 블록이 적어도 일부의 넌-제로 잔류값들을 포함하는 잔류 블록 및 예측 블록으로부터 형성되는 경우에 상기 비디오 블록에 상기 포스트-루프 필터 또는 상기 인-루프 필터를 적용하는 수단; 및
    상기 비디오 블록이 인터 코딩될 때, 상기 비디오 블록이 어떠한 넌-제로 잔류값들도 포함하지 않는 잔류 블록 및 예측 블록으로부터 형성되는 경우에 상기 비디오 블록에 대한 상기 포스트-루프 필터 또는 상기 인-루프 필터의 적용을 스킵하는 수단을 더 포함하는, 하나 이상의 비디오 블록들을 필터링하는 디바이스.
  26. 제 22 항에 있어서,
    상기 디바이스는 비디오 인코딩 디바이스를 포함하고,
    상기 디바이스는, 상기 포스트-루프 필터 또는 상기 인-루프 필터가 코딩된 유닛의 상기 비디오 블록들 각각에 적용되어야 하는지를 나타내기 위해 상기 비디오 유닛에 대한 인코딩된 비트스트림으로 신택스 엘리먼트들을 인코딩하는 수단을 더 포함하는, 하나 이상의 비디오 블록들을 필터링하는 디바이스.
  27. 제 26 항에 있어서,
    상기 비디오 유닛에 대한 상기 인코딩된 비트스트림으로 신택스 엘리먼트들을 인코딩하는 수단은, 상기 비디오 유닛에 대한 계수들에 후속하는 푸터 (footer) 엘리먼트로 상기 신택스 엘리먼트들을 인코딩하는 수단을 포함하는, 하나 이상의 비디오 블록들을 필터링하는 디바이스.
  28. 제 22 항에 있어서,
    상기 포스트-루프 필터 또는 상기 인-루프 필터를 적용하는 수단은, 상기 포스트-루프 필터 및 상기 인-루프 필터 사이에서 선택하는 수단을 포함하는, 하나 이상의 비디오 블록들을 필터링하는 디바이스.
  29. 제 28 항에 있어서,
    제로-값 잔류값들과 관련된 상기 비디오 블록의 픽셀들에 대해 상기 포스트-루프 필터를 적용하는 수단; 및
    넌-제로 잔류값들과 관련된 상기 비디오 블록의 픽셀들에 대해 인-루프 필터를 적용하는 수단을 더 포함하는, 하나 이상의 비디오 블록들을 필터링하는 디바이스.
  30. 제 22 항에 있어서,
    상기 디바이스는 비디오 디코딩 디바이스를 포함하고,
    상기 디바이스는, 상기 비디오 유닛에 대한 수신된 비트스트림으로부터의 신택스 엘리먼트들을 디코딩하는 수단을 더 포함하고,
    상기 신택스 엘리먼트들은, 상기 포스트-루프 필터 또는 상기 인-루프 필터가 코딩된 유닛의 상기 비디오 블록들의 적어도 일부에 대해 적용되어야 하는지를 나타내는, 하나 이상의 비디오 블록들을 필터링하는 디바이스.
  31. 제 30 항에 있어서,
    상기 신택스 엘리먼트들은 상기 비디오 유닛에 대한 계수들에 후속하는 푸터 엘리먼트에 위치되는, 하나 이상의 비디오 블록들을 필터링하는 디바이스.
  32. 프로세서에서 실행시에, 상기 프로세서로 하여금 비디오 코딩 프로세스 동안 비디오 유닛의 하나 이상의 비디오 블록들을 필터링하게 하는 명령들을 포함하는 컴퓨터 판독가능한 저장 매체로서,
    상기 명령들은 상기 프로세서로 하여금,
    비디오 블록이 인터 코딩(inter-code) 되거나 인트라 코딩 (intra-code) 되는지를 결정하게 하고;
    상기 비디오 블록이 인트라 코딩될 때, 상기 비디오 블록에 포스트-루프 (post-loop) 필터 또는 인-루프 (in-loop) 필터를 적용하게 하고;
    상기 비디오 블록이 인터 코딩될 때, 상기 비디오 블록에 관하여 모션 보상 프로세스 동안 적응형 보간 필터가 적용되었는지를 결정하게 하며;
    상기 비디오 블록이 인터 코딩될 때, 상기 적응형 보간 필터가 적용되었는지에 적어도 부분적으로 기초하여 상기 비디오 블록에 상기 포스트-루프 필터 또는 상기 인-루프 필터를 적용할지를 결정하게 하는, 컴퓨터 판독가능한 저장 매체.
  33. 제 32 항에 있어서,
    상기 명령들은 상기 프로세서로 하여금, 상기 비디오 유닛의 상기 비디오 블록들 각각에 대해 상기 적응형 보간 필터, 상기 포스트-루프 필터 및 상기 인-루프 필터 중 하나만을 적용하게 하는, 컴퓨터 판독가능한 저장 매체.
  34. 제 32 항에 있어서,
    상기 명령들은 상기 프로세서로 하여금, 상기 비디오 블록에 관하여 상기 모션 보상 프로세스 동안 상기 적응형 보간 필터가 적용되지 않았을 때만, 상기 비디오 블록에 상기 포스트-루프 필터 또는 상기 인-루프 필터를 적용하게 하는, 컴퓨터 판독가능한 저장 매체.
  35. 제 32 항에 있어서,
    상기 명령들은 상기 프로세서로 하여금,
    상기 비디오 블록이 인터 코딩될 때, 상기 비디오 블록이 적어도 일부의 넌-제로 잔류값들을 포함하는 잔류 블록 및 예측 블록으로부터 형성되는 경우에 상기 비디오 블록에 상기 포스트-루프 필터 또는 상기 인-루프 필터를 적용하게 하며;
    상기 비디오 블록이 인터 코딩될 때, 상기 비디오 블록이 어떠한 넌-제로 잔류값들도 포함하지 않는 잔류 블록 및 예측 블록으로부터 형성되는 경우에 상기 비디오 블록에 대한 상기 포스트-루프 필터 또는 상기 인-루프 필터의 적용을 스킵하게 하는, 컴퓨터 판독가능한 저장 매체.
  36. 제 32 항에 있어서,
    상기 명령들은 상기 프로세서로 하여금 비디오 인코딩 프로세스를 수행하게 하고,
    상기 명령들은 상기 프로세서로 하여금, 상기 포스트-루프 필터 또는 상기 인-루프 필터가 코딩된 유닛의 상기 비디오 블록들 각각에 적용되어야 하는지를 나타내기 위해 상기 비디오 유닛에 대한 인코딩된 비트스트림으로 신택스 엘리먼트들을 인코딩하게 하는, 컴퓨터 판독가능한 저장 매체.
  37. 제 36 항에 있어서,
    상기 비디오 유닛에 대한 상기 인코딩된 비트스트림으로 신택스 엘리먼트들을 인코딩하는데 있어서, 상기 명령들은 상기 프로세서로 하여금, 상기 비디오 유닛에 대한 계수들에 후속하는 푸터 엘리먼트로 상기 신택스 엘리먼트들을 인코딩하게 하는, 컴퓨터 판독가능한 저장 매체.
  38. 제 32 항에 있어서,
    상기 포스트-루프 필터 또는 상기 인-루프 필터를 적용하는데 있어서, 상기 명령들은 상기 프로세서로 하여금, 상기 포스트-루프 필터 및 상기 인-루프 필터 사이에서 선택하게 하는, 컴퓨터 판독가능한 저장 매체.
  39. 제 38 항에 있어서,
    상기 명령들은 상기 프로세서로 하여금,
    제로-값 잔류값들과 관련된 상기 비디오 블록의 픽셀들에 대해 상기 포스트-루프 필터를 적용하게 하며;
    넌-제로 잔류값들과 관련된 상기 비디오 블록의 픽셀들에 대해 상기 인-루프 필터를 적용하게 하는, 컴퓨터 판독가능한 저장 매체.
  40. 제 32 항에 있어서,
    상기 명령들은 상기 프로세서로 하여금 비디오 디코딩 프로세스를 수행하게 하고,
    상기 명령들은 상기 프로세서로 하여금, 상기 비디오 유닛에 대한 수신된 비트스트림으로부터의 신택스 엘리먼트들을 디코딩하게 하고,
    상기 신택스 엘리먼트들은, 상기 포스트-루프 필터 또는 상기 인-루프 필터가 코딩된 유닛의 상기 비디오 블록들의 적어도 일부에 대해 적용되어야 하는지를 나타내는, 컴퓨터 판독가능한 저장 매체.
  41. 제 40 항에 있어서,
    상기 신택스 엘리먼트들은 상기 비디오 유닛에 대한 계수들에 후속하는 푸터 엘리먼트에 위치되는, 컴퓨터 판독가능한 저장 매체.
  42. 비디오 디코더에서, 잔류 비디오 블록들을 포함하는 비디오 데이터를 수신하는 단계;
    상기 잔류 비디오 블록들의 넌-제로 잔류값들에 의해 정의되는 재구성된 비디오 블록들의 픽셀들에 대해 포스트-루프 필터링을 적용하는 단계; 및
    상기 잔류 비디오 블록들의 제로-값 잔류값들에 의해 정의되는 상기 재구성된 비디오 블록들의 픽셀들에 대해 인-루프 필터링을 적용하는 단계를 포함하는, 방법.
KR1020117017159A 2008-12-22 2009-12-22 비디오 코딩에서 보간 필터링, 인-루프 필터링 및 포스트-필터링을 위한 결합된 방식 KR101273149B1 (ko)

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
US14002608P 2008-12-22 2008-12-22
US61/140,026 2008-12-22
US14058508P 2008-12-23 2008-12-23
US61/140,585 2008-12-23
US14332409P 2009-01-08 2009-01-08
US61/143,324 2009-01-08
US22094709P 2009-06-26 2009-06-26
US61/220,947 2009-06-26
US12/641,670 US8611435B2 (en) 2008-12-22 2009-12-18 Combined scheme for interpolation filtering, in-loop filtering and post-loop filtering in video coding
US12/641,670 2009-12-18
PCT/US2009/069124 WO2010075342A2 (en) 2008-12-22 2009-12-22 Combined scheme for interpolation filtering, in-loop filtering and post-loop filtering in video coding

Publications (2)

Publication Number Publication Date
KR20110106406A true KR20110106406A (ko) 2011-09-28
KR101273149B1 KR101273149B1 (ko) 2013-06-17

Family

ID=42266045

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117017159A KR101273149B1 (ko) 2008-12-22 2009-12-22 비디오 코딩에서 보간 필터링, 인-루프 필터링 및 포스트-필터링을 위한 결합된 방식

Country Status (8)

Country Link
US (1) US8611435B2 (ko)
EP (1) EP2380351B1 (ko)
JP (1) JP5307253B2 (ko)
KR (1) KR101273149B1 (ko)
CN (1) CN102342101B (ko)
BR (1) BRPI0923485A2 (ko)
TW (1) TW201119410A (ko)
WO (1) WO2010075342A2 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017043730A1 (ko) * 2015-09-08 2017-03-16 엘지전자(주) 영상의 부호화/복호화 방법 및 이를 위한 장치
WO2018074626A1 (ko) * 2016-10-19 2018-04-26 디지털인사이트주식회사 적응적 보간 필터를 사용하는 비디오 코딩 방법 및 장치

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2751802A1 (en) * 2009-02-13 2010-08-19 Research In Motion Limited In-loop deblocking for intra-coded images or frames
WO2011097199A2 (en) * 2010-02-04 2011-08-11 Sony Corporation Recursive adaptive interpolation filters (raif)
CN101783957B (zh) * 2010-03-12 2012-04-18 清华大学 一种视频预测编码方法和装置
RS56512B1 (sr) * 2010-04-13 2018-02-28 Ge Video Compression Llc Kodiranje mapa značaja i blokova koeficijenata transformacije
KR20110123651A (ko) * 2010-05-07 2011-11-15 한국전자통신연구원 생략 부호화를 이용한 영상 부호화 및 복호화 장치 및 그 방법
US9094658B2 (en) 2010-05-10 2015-07-28 Mediatek Inc. Method and apparatus of adaptive loop filtering
US20120039383A1 (en) * 2010-08-12 2012-02-16 Mediatek Inc. Coding unit synchronous adaptive loop filter flags
US9819966B2 (en) 2010-09-01 2017-11-14 Qualcomm Incorporated Filter description signaling for multi-filter adaptive filtering
US9247265B2 (en) 2010-09-01 2016-01-26 Qualcomm Incorporated Multi-input adaptive filter based on combination of sum-modified Laplacian filter indexing and quadtree partitioning
US8792057B2 (en) * 2010-11-01 2014-07-29 Amimon Ltd Methods circuits devices and systems for wireless communication of video information
MX2013006130A (es) 2010-12-07 2013-06-28 Sony Corp Dispositivo de procesamiento de imagenes y metodo de procesamiento de imagenes.
US8630356B2 (en) * 2011-01-04 2014-01-14 The Chinese University Of Hong Kong High performance loop filters in video compression
US9445126B2 (en) 2011-01-05 2016-09-13 Qualcomm Incorporated Video filtering using a combination of one-dimensional switched filter and one-dimensional adaptive filter
US20120183078A1 (en) * 2011-01-14 2012-07-19 Samsung Electronics Co., Ltd. Filter adaptation with directional features for video/image coding
KR101215152B1 (ko) * 2011-04-21 2012-12-24 한양대학교 산학협력단 인루프 필터링을 적용한 예측 방법을 이용한 영상 부호화/복호화 방법 및 장치
NO335667B1 (no) 2011-06-29 2015-01-19 Cisco Systems Int Sarl Metode for videokomprimering
WO2013006310A1 (en) * 2011-07-01 2013-01-10 Vidyo, Inc. Loop filter techniques for cross-layer prediction
US9277228B2 (en) 2011-07-18 2016-03-01 Qualcomm Incorporated Adaptation parameter sets for video coding
US9641866B2 (en) 2011-08-18 2017-05-02 Qualcomm Incorporated Applying partition-based filters
US9787982B2 (en) * 2011-09-12 2017-10-10 Qualcomm Incorporated Non-square transform units and prediction units in video coding
EP2769550A4 (en) * 2011-10-14 2016-03-09 Mediatek Inc METHOD AND APPARATUS FOR LOOP FILTRATION
US9628789B2 (en) * 2011-11-18 2017-04-18 Qualcomm Incorporated Reference mode selection in intra mode coding
US9591331B2 (en) * 2012-03-28 2017-03-07 Qualcomm Incorporated Merge signaling and loop filter on/off signaling
CN103379331B (zh) * 2012-04-28 2018-10-23 南京中兴新软件有限责任公司 一种视频码流编解码方法和装置
US20130294524A1 (en) * 2012-05-04 2013-11-07 Qualcomm Incorporated Transform skipping and lossless coding unification
TWI627857B (zh) * 2012-06-29 2018-06-21 Sony Corp Image processing device and method
US11240515B2 (en) 2012-09-10 2022-02-01 Apple Inc. Video display preference filtering
US9596461B2 (en) * 2012-11-26 2017-03-14 Qualcomm Incorporated Loop filtering across constrained intra block boundaries in video coding
US20140192862A1 (en) * 2013-01-07 2014-07-10 Research In Motion Limited Methods and systems for prediction filtering in video coding
FR3018417B1 (fr) * 2014-03-04 2017-07-28 Sagemcom Broadband Sas Procede de modification d'un flux video binaire.
KR102445242B1 (ko) * 2014-03-19 2022-09-21 삼성전자주식회사 경계 필터링을 수반한 비디오 부호화 및 비디오 복호화 방법 및 장치
US10057574B2 (en) * 2015-02-11 2018-08-21 Qualcomm Incorporated Coding tree unit (CTU) level adaptive loop filter (ALF)
CN105049846B (zh) * 2015-08-14 2019-05-21 广东中星微电子有限公司 图像和视频编解码的方法和设备
US11064195B2 (en) 2016-02-15 2021-07-13 Qualcomm Incorporated Merging filters for multiple classes of blocks for video coding
EP3529985A1 (en) * 2016-12-23 2019-08-28 Huawei Technologies Co., Ltd. Mixed domain collaborative post filter for lossy still image coding
WO2018117896A1 (en) * 2016-12-23 2018-06-28 Huawei Technologies Co., Ltd Low complexity mixed domain collaborative in-loop filter for lossy video coding
CN110100437B (zh) * 2016-12-23 2020-09-08 华为技术有限公司 用于有损视频编码的混合域协作环路滤波器
EP3741121A1 (en) * 2018-02-14 2020-11-25 Huawei Technologies Co., Ltd. Adaptive interpolation filter

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3165296B2 (ja) * 1992-12-25 2001-05-14 三菱電機株式会社 フレーム間符号化処理方式及びフレーム間符号化処理方法及び符号化制御方式
US6285801B1 (en) * 1998-05-29 2001-09-04 Stmicroelectronics, Inc. Non-linear adaptive image filter for filtering noise such as blocking artifacts
US7227589B1 (en) * 1999-12-22 2007-06-05 Intel Corporation Method and apparatus for video decoding on a multiprocessor system
JP2001275110A (ja) * 2000-03-24 2001-10-05 Matsushita Electric Ind Co Ltd 動的なループ及びポストフィルタリングのための方法及び装置
US7929610B2 (en) * 2001-03-26 2011-04-19 Sharp Kabushiki Kaisha Methods and systems for reducing blocking artifacts with reduced complexity for spatially-scalable video coding
CN101448162B (zh) * 2001-12-17 2013-01-02 微软公司 处理视频图像的方法
EP2894856A1 (en) * 2002-01-31 2015-07-15 Samsung Electronics Co., Ltd Filtering method and apparatus for reducing block artifacts or ringing noise
US7034897B2 (en) * 2002-04-01 2006-04-25 Broadcom Corporation Method of operating a video decoding system
EP1351513A3 (en) * 2002-04-01 2005-08-03 Broadcom Corporation Method of operating a video decoding system
US7242819B2 (en) * 2002-12-13 2007-07-10 Trident Microsystems, Inc. Method and system for advanced edge-adaptive interpolation for interlace-to-progressive conversion
EP1536647A1 (en) * 2003-11-26 2005-06-01 STMicroelectronics Limited A video decoding device
US20060215754A1 (en) * 2005-03-24 2006-09-28 Intel Corporation Method and apparatus for performing video decoding in a multi-thread environment
TWI295140B (en) * 2005-05-20 2008-03-21 Univ Nat Chiao Tung A dual-mode high throughput de-blocking filter
SG140508A1 (en) * 2006-08-31 2008-03-28 St Microelectronics Asia Multimode filter for de-blocking and de-ringing
US20080075165A1 (en) * 2006-09-26 2008-03-27 Nokia Corporation Adaptive interpolation filters for video coding
US8942505B2 (en) 2007-01-09 2015-01-27 Telefonaktiebolaget L M Ericsson (Publ) Adaptive filter representation
JP2008289134A (ja) * 2007-04-20 2008-11-27 Panasonic Corp 符号化レート変換装置、集積回路、符号化レート変換方法、及びプログラム
US20080267297A1 (en) * 2007-04-26 2008-10-30 Polycom, Inc. De-blocking filter arrangements
US20090060368A1 (en) * 2007-08-27 2009-03-05 David Drezner Method and System for an Adaptive HVS Filter
KR20100067122A (ko) 2007-10-05 2010-06-18 노키아 코포레이션 적응 보간 필터를 구현하는 방법, 장치 및 컴퓨터 판독가능 저장 매체
US8619880B2 (en) * 2007-10-10 2013-12-31 Qualcomm Incorporated Universal blockiness correction
EP2048888A1 (en) 2007-10-12 2009-04-15 Thomson Licensing Method and decoder for decoding an image frame of an image frame sequence

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017043730A1 (ko) * 2015-09-08 2017-03-16 엘지전자(주) 영상의 부호화/복호화 방법 및 이를 위한 장치
US10575019B2 (en) 2015-09-08 2020-02-25 Lg Electronics Inc. Method for encoding/decoding image and apparatus therefor
WO2018074626A1 (ko) * 2016-10-19 2018-04-26 디지털인사이트주식회사 적응적 보간 필터를 사용하는 비디오 코딩 방법 및 장치

Also Published As

Publication number Publication date
BRPI0923485A2 (pt) 2018-05-29
EP2380351B1 (en) 2016-08-24
KR101273149B1 (ko) 2013-06-17
US8611435B2 (en) 2013-12-17
CN102342101A (zh) 2012-02-01
WO2010075342A3 (en) 2010-11-04
CN102342101B (zh) 2014-08-06
WO2010075342A2 (en) 2010-07-01
EP2380351A2 (en) 2011-10-26
US20100158103A1 (en) 2010-06-24
JP5307253B2 (ja) 2013-10-02
JP2012513727A (ja) 2012-06-14
TW201119410A (en) 2011-06-01

Similar Documents

Publication Publication Date Title
KR101273149B1 (ko) 비디오 코딩에서 보간 필터링, 인-루프 필터링 및 포스트-필터링을 위한 결합된 방식
KR101323546B1 (ko) 비디오 코딩시 액티비티 메트릭들에 기초한 필터 예측
AU2012231675B2 (en) Bi-predictive merge mode based on uni-predictive neighbors in video coding
US9288501B2 (en) Motion vector predictors (MVPs) for bi-predictive inter mode in video coding
US9049444B2 (en) Mode dependent scanning of coefficients of a block of video data
KR101168843B1 (ko) 수평 및 수직 대칭에 기초한 필터 계수들의 비디오 코딩
US20110249754A1 (en) Variable length coding of coded block pattern (cbp) in video compression
US8665959B2 (en) Block and partition signaling techniques for video coding
US9445126B2 (en) Video filtering using a combination of one-dimensional switched filter and one-dimensional adaptive filter
KR20140043807A (ko) 적응적 모션 벡터 해상도를 이용한 비디오 코딩
CA2830242C (en) Bi-predictive merge mode based on uni-predictive neighbors in video coding

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: 20160330

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170330

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180329

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190327

Year of fee payment: 7