KR20170117062A - 코딩 트리 유닛 (ctu) 레벨 적응적 루프 필터 (alf) - Google Patents

코딩 트리 유닛 (ctu) 레벨 적응적 루프 필터 (alf) Download PDF

Info

Publication number
KR20170117062A
KR20170117062A KR1020177022188A KR20177022188A KR20170117062A KR 20170117062 A KR20170117062 A KR 20170117062A KR 1020177022188 A KR1020177022188 A KR 1020177022188A KR 20177022188 A KR20177022188 A KR 20177022188A KR 20170117062 A KR20170117062 A KR 20170117062A
Authority
KR
South Korea
Prior art keywords
alf
video data
ctu
candidate
information
Prior art date
Application number
KR1020177022188A
Other languages
English (en)
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 KR20170117062A publication Critical patent/KR20170117062A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • 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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • 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
    • 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

Landscapes

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

Abstract

예들은 비디오 데이터를 코딩하는 디바이스를 포함하며, 그 디바이스는 비디오 데이터를 저장하도록 구성된 메모리; 및 하나 이상의 프로세서들을 포함하고, 그 하나 이상의 프로세서들은, (i) 현재의 코딩 트리 유닛 (CTU) 의 하나 이상의 공간적 이웃 CTU 들 또는 (ii) 현재의 CTU 의 하나 이상의 시간적 이웃 CTU 들 중 하나 이상으로부터 현재의 CTU 에 대한 적응적 루프 필터링 (ALF) 정보를 획득하고; 현재의 CTU 에 대한 획득된 ALF 정보에 적어도 부분적으로 기초하여 후보 리스트를 형성하며; 및 후보 리스트로부터의 후보와 연관된 ALF 정보를 사용하여 현재의 CTU 에 대해 필터링 동작을 수행하도록 구성된다. 비디오 데이터를 코딩하는 것은 비디오 데이터를 인코딩하는 것, 비디오 데이터를 디코딩하는 것, 또는 비디오 데이터를 인코딩 및 디코딩하는 것을 포함한다.

Description

코딩 트리 유닛 (CTU) 레벨 적응적 루프 필터 (ALF)
본 출원은 2015년 2월 11일자로 출원된 미국 임시 특허 출원 제62/115,067호의 이익을 주장하며, 본 명세서에 그것의 전체 내용이 전체로 포함된다.
본 개시는 비디오 코딩에 관한 것이다.
디지털 비디오 능력들은 디지털 텔레비전들, 디지털 직접 브로드캐스트 시스템들, 무선 브로드캐스트 시스템들, 개인 정보 단말기들 (personal digital assistants, PDA들), 랩톱 또는 데스크톱 컴퓨터들, 태블릿 컴퓨터들, e-북 리더들, 디지털 카메라들, 디지털 레코딩 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 디바이스들, 비디오 게임 콘솔들, 셀룰러 또는 위성 무선 전화기들, 이른바 "스마트 폰들", 비디오 원격회의 디바이스들, 비디오 스트리밍 디바이스들 등을 포함한 넓은 범위의 디바이스들에 통합될 수 있다. 디지털 비디오 디바이스들은 MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, 파트 10, 고급 비디오 코딩 (Advanced Video Coding, AVC) 에 의해 규정된 표준들, 최근에 완결된 고효율 비디오 코딩 (High Efficiency Video Coding, HEVC) 표준, 및 이러한 표준들의 확장본들에 기재된 것들과 같은 비디오 압축 기법들을 구현한다. 비디오 디바이스들은 이러한 비디오 압축 기법들을 구현하는 것에 의해 디지털 비디오 정보를 더 효율적으로 송신, 수신, 인코딩, 디코딩, 및/또는 저장할 수도 있다.
비디오 압축 기법들은 공간적 (인트라-화상) 예측 및/또는 시간적 (인터-화상) 예측을 수행하여 비디오 시퀀스들에 내재하는 리던던시를 감소시키거나 또는 제거한다. 블록 기반 비디오 코딩을 위해, 비디오 슬라이스 (즉, 비디오 프레임 또는 비디오 프레임의 부분) 가 비디오 블록들로 파티셔닝될 수도 있으며, 그 비디오 블록들은 또한 트리블록들 (treeblocks), 코딩 유닛들 (coding units, CU들) 및/또는 코딩 노드들이라고 지칭될 수도 있다. 화상의 인트라 코딩된 (intra-coded; I) 슬라이스에서의 비디오 블록들은 동일한 화상의 이웃 블록들에서의 참조 샘플들에 관한 공간적 예측을 사용하여 인코딩된다. 화상의 인터 코딩된 (inter-coded; P 또는 B) 슬라이스에서의 비디오 블록들은 동일한 화상의 이웃 블록들에서의 참조 샘플들에 관한 공간적 예측 또는 다른 참조 화상들에서의 참조 샘플들에 관한 시간적 예측을 사용할 수도 있다. 화상들은 프레임들이라고 지칭될 수도 있고, 참조 화상들은 참조 프레임들이라고 지칭될 수도 있다.
공간적 또는 시간적 예측은 코딩될 블록에 대한 예측 블록 (predictive block) 을 야기한다. 레지듀얼 데이터는 코딩될 원래의 블록과 예측 블록 사이의 화소 차이들을 나타낸다. 인터 코딩된 블록은 예측 블록을 형성하는 참조 샘플들의 블록을 가리키는 모션 벡터, 및 코딩된 블록과 예측 블록 사이의 차이를 나타내는 레지듀얼 데이터에 따라 인코딩된다. 인트라 코딩된 블록은 인트라 코딩 모드 및 레지듀얼 데이터에 따라 인코딩된다. 추가 압축을 위해, 레지듀얼 데이터는 화소 도메인으로부터 변환 도메인으로 변환될 수도 있으며, 결과적으로 레지듀얼 변환 계수들을 야기하며, 그 계수들은 그 다음에 양자화될 수도 있다. 처음에는 2차원 어레이로 배열된 양자화된 변환 계수들은 변환 계수들의 1차원 벡터를 생성하기 위하여 스캐닝될 수도 있고, 엔트로피 코딩이 훨씬 더 많은 압축을 달성하기 위해 적용될 수도 있다.
본 개시의 양태들은 코딩 트리 유닛 (CTU) 레벨 적응적 루프 필터링 (ALF) 에 관련된다. 여기에 기술된 기법들은 고효율 비디오 코딩 (HEVC) 표준에 따르는 코덱들과 같은 여러 현재의 비디오 코덱들 중 임의의 것, 또는 임의의 장래의 비디오 코덱들에 적용될 수도 있다.
여러 예들은 비디오 데이터를 코딩하는 방법을 포함하고, 그 방법은 (i) 현재의 CTU 의 하나 이상의 공간적 이웃 CTU 들 또는 (ii) 현재의 CTU 의 하나 이상의 시간적 이웃 CTU 들 중 하나 이상으로부터 현재의 코딩 트리 유닛 (CTU) 에 대한 적응적 루프 필터링 (ALF) 정보를 획득하는 단계; 현재의 CTU 에 대한 획득된 ALF 정보에 적어도 부분적으로 기초하여 후보 리스트를 형성하는 단계; 및 후보 리스트로부터의 후보와 연관된 ALF 정보를 사용하여 현재의 CTU 에 대해 필터링 동작을 수행하는 단계를 포함한다.
여러 예들은 비디오 데이터를 코딩하는 디바이스를 포함하고, 그 디바이스는 비디오 데이터를 저장하도록 구성된 메모리; 및 (i) 현재의 CTU 의 하나 이상의 공간적 이웃 CTU 들 또는 (ii) 현재의 CTU 의 하나 이상의 시간적 이웃 CTU 들 중 하나 이상으로부터 현재의 코딩 트리 유닛 (CTU) 에 대한 적응적 루프 필터링 (ALF) 정보를 획득하고; 현재의 CTU 에 대한 획득된 ALF 정보에 적어도 부분적으로 기초하여 후보 리스트를 형성하며; 및 후보 리스트로부터의 후보와 연관된 ALF 정보를 사용하여 현재의 CTU 에 대해 필터링 동작을 수행하도록 구성된 하나 이상의 프로세서들을 포함한다.
여러 예들은 비디오 데이터를 코딩하는 디바이스를 포함하고, 그 디바이스는 (i) 현재의 CTU 의 하나 이상의 공간적 이웃 CTU 들 또는 (ii) 현재의 CTU 의 하나 이상의 시간적 이웃 CTU 들 중 하나 이상으로부터 현재의 코딩 트리 유닛 (CTU) 에 대한 적응적 루프 필터링 (ALF) 정보를 획득하는 수단; 현재의 CTU 에 대한 획득된 ALF 정보에 적어도 부분적으로 기초하여 후보 리스트를 형성하는 수단; 및 후보 리스트로부터의 후보와 연관된 ALF 정보를 사용하여 현재의 CTU 에 대해 필터링 동작을 수행하는 수단을 포함한다.
여러 예들은 명령들을 저장한 비일시적 컴퓨터 판독가능 저장 매체를 포함하고, 그 명령들은, 실행될 때, 하나 이상의 프로세서들로 하여금, (i) 현재의 CTU 의 하나 이상의 공간적 이웃 CTU 들 또는 (ii) 현재의 CTU 의 하나 이상의 시간적 이웃 CTU 들 중 하나 이상으로부터 현재의 코딩 트리 유닛 (CTU) 에 대한 적응적 루프 필터링 (ALF) 정보를 획득하게 하고; 현재의 CTU 에 대한 획득된 ALF 정보에 적어도 부분적으로 기초하여 후보 리스트를 형성하게 하며; 및 후보 리스트로부터의 후보와 연관된 ALF 정보를 사용하여 현재의 CTU 에 대해 필터링 동작을 수행하게 한다.
하나 이상의 예들의 상세들이 첨부 도면들 및 다음의 설명에서 진술된다. 다른 특징들, 목적들, 및 장점들은 상세한 설명 및 도면들로부터 그리고 청구범위로부터 명확하게 될 것이다.
도 1 은 본 개시에서 기술된 기법들을 이용할 수도 있는 예시의 비디오 인코딩 및 디코딩 시스템을 도시하는 블록도이다.
도 2 는 필터들에의 활동 메트릭 및 방향 메트릭에 대한 범위들의 맵핑을 도시하는 개념도이다.
도 3a 내지 도 3c 는 예시의 필터 형상들을 도시하는 개념도들이다.
도 4 는 본 개시에 기술된 기법들을 구현할 수도 있는 예시의 비디오 인코더를 도시하는 블록도이다.
도 5 는 본 개시에 기술된 기법들을 구현할 수도 있는 예시의 비디오 디코더를 도시하는 블록도이다.
도 6 은 본 개시에 기술된 기법들을 구현할 수도 있는 하나 이상의 방법들을 도시하는 흐름도이다.
도 7 은 본 개시에 기술된 기법들을 구현할 수도 있는 하나 이상의 방법들을 도시하는 흐름도이다.
비디오 코딩은 통상적으로 동일한 화상에서의 비디오 데이터의 이미 코딩된 블록으로부터 (즉, 인트라 예측) 또는 상이한 화상에서의 비디오 데이터의 이미 코딩된 블록으로부터 (즉, 인터 예측) 비디오 데이터의 블록을 예측하는 것을 수반한다. 일부 경우들에서, 비디오 인코더는 또한 예측 블록을 오리지날 블록과 비교함으로써 레지듀얼 데이터를 계산한다. 따라서, 레지듀얼 데이터는 예측 블록과 오리지날 블록 사이의 차이를 나타낸다. 비디오 인코더는 레지듀얼 데이터를 변환하고 양자화하며, 그 변환되고 양자화된 레지듀얼 데이터를 인코딩된 비트스트림에서 시그널링한다. 비디오 디코더는 예측 블록 단독보다 더 근접하게 오리지날 비디오 블록과 매칭하는 재구성된 비디오 블록을 생성하기 위해 예측 블록에 레지듀얼 데이터를 가산한다. 디코딩된 비디오의 품질을 더욱 향상시키기 위해, 비디오 디코더는 그 재구성된 비디오 블록들에 대해 하나 이상의 필터링 동작들을 수행할 수 있다. 이들 필터링 동작들의 예들은 디블록킹 필터링, 샘플 적응적 오프셋 (SAO) 필터링, 및 적응적 루프 필터링 (ALF) 을 포함한다. 이들 필터링 동작들에 대한 파라미터들은 비디오 인코더에 의해 결정되고 인코딩된 비디오 비트스트림에서 명시적으로 시그널링될 수도 있거나, 또는 비디오 디코더에 의해 암시적으로 결정될 수도 있다.
본 개시는 비디오 인코딩 및/또는 비디오 디코딩 프로세스들에서 재구성된 비디오 데이터를 필터링하는 것과 연관된 기법들을 기술하고, 더 구체적으로는, 본 개시는 ALF 와 관련된 기법들을 기술한다. 본 개시에 따르면, 필터링은 인코더에서 적용되고, 필터 정보는 디코더가 인코더에서 적용된 필터링을 식별하는 것을 가능하게 하기 위해 비트스트림에 인코딩된다. 비디오 인코더는 수개의 상이한 필터링 시나리오들을 테스트하고, 레이트-왜곡 분석에 기초하여, 재구성된 비디오 품질과 압축 품질 사이의 원하는 트레이드오프를 생성하는 필터 또는 필터들의 세트를 선택할 수도 있다. 비디오 디코더는 필터 정보를 포함하는 인코딩된 비디오 데이터를 수신하고, 비디오 데이터를 디코딩하며, 필터링 정보에 기초하여 필터링을 적용한다. 이러한 방식으로, 비디오 디코더는 비디오 인코더에서 적용된 동일한 필터링을 적용한다.
ALF 에 대한 일부 제안들은 화상-기반 ALF 접근법을 포함하며, 여기서 필터들의 그룹은 화상 또는 프레임과 연관된 적응 파라미터 세트 (APS) 또는 화상 파라미터 세트 (PPS) 에서 시그널링된다. 필터들의 세트로부터의 어느 필터가 어느 화소들에 적용되는지는 블록 적응적 (BA) 분류 또는 영역 적응적 (RA) 분류를 사용하여 결정될 수 있다. BA 분류의 하나의 예에서, 활동 메트릭 (예를 들어, 라플라시안 활동) 은 화소들의 블록에 대해 결정될 수 있다. 결정된 활동 메트릭이 속하는 범위에 기초하여, 필터가 블록에 대해 선택될 수 있다. 활동 메트릭 값들의 범위는 연관된 필터를 가질 수 있다. 따라서, 블록에 대한 필터는 그 블록에 대한 활동 메트릭이 속하는 영역에 기초하여 선택될 수 있다. BA 분류의 일부 예들에서, 2 이상의 메트릭이 사용될 수도 있다. 예를 들어, 라플라시안 활동의 측정이 제 1 메트릭으로서 사용될 수도 있고, 방향-기반 메트릭은 제 2 메트릭으로서 사용될 수도 있으며, 필터는 그 2 개의 메트릭들의 범위에 기초하여 선택될 수도 있다. BA 분류를 사용하여 필터를 적용하는 양태들이 이하에 더 상세히 논의될 것이다.
RA 분류의 예에서, 화상 또는 프레임은 고정된 수의 영역들 (예를 들어, 16 개의 영역들) 로 분할될 수 있고, 각 영역은 연관된 필터를 가질 수 있다. 그 영역 내의 각각의 CU 는 그 CU 가 그 영역과 연관된 필터를 사용하여 필터링되어야 하는지, 또는 그 CU 가 필터링되지 않아야 하는지를 나타내는 연관된 온/오프 플래그를 가질 수 있다. 화상 또는 프레임이 BA 분류들 또는 RA 분류들을 사용하여 필터링되어야 하는지 여부는 예를 들어 APS 또는 SPS 에서 시그널링될 수 있다. RA 분류를 사용하는 것은 일반적으로 RA 분류가 비디오 디코더가 블록들에 대한 활동 메트릭들을 계산할 필요를 제거하기 때문에 BA 분류를 사용하는 것에 비해 비디오 코더 복잡성을 감소시킨다. RA 분류를 사용하여 필터를 적용하는 양태들은 이하에 더욱 상세히 논의될 것이다.
이하에 더욱 상세히 설명되는 바와 같이, 본 개시는 코딩 트리 유닛 (CTU) 레벨에서 ALF 를 적용하기 위한 기법들을 기술한다. 본 개시에 기술된 여러 기법들은 ALF 정보가 인코딩된 비트스트림에서 시그널링되는 방법, ALF 필터들이 화소 또는 화소들의 그룹에 대해 선택되는 방법, 및 ALF 필터들이 화소 또는 화소들의 그룹에 적용되는 방법에 관한 것이다. 본 개시의 기법들 중 일부는 비디오 인코딩 또는 비디오 디코딩의 특정의 예들을 참조하여 설명될 수도 있다. 그러나, 명시적으로 반대로 진술되지 않는다면, 그 기법들은 또한 다른 비디오 인코딩 또는 디코딩에 적용가능할 수도 있다는 것이 이해되어야 한다. 하나의 예로서, 비디오 인코더는 통상적으로 비디오 데이터를 인코딩할 방법을 결정하는 것의 부분으로서 비디오 디코딩 동작들을 수행한다. 따라서, 비디오 디코딩 기법들은 비디오 인코더에 의해 수행될 수도 있다. 게다가, 많은 코딩 동작들은 동일한 동작들, 또는 일부 경우들에서 비디오 인코더에 의해 수행되는 역의 동작들을 수행하는 비디오 디코더에 의존한다. 따라서, 비디오 데이터를 디코딩하는 것의 부분으로서, 비디오 디코더는 비디오 데이터를 인코딩하기 위해 사용된 동일한 동작들을 수행할 수도 있다.
도 1 은 본 개시에서 기술된 기법들을 이용할 수도 있는 예시적인 비디오 인코딩 및 디코딩 시스템 (10) 을 도시하는 블록도이다. 도 1 에 도시된 바와 같이, 시스템 (10) 은 목적지 디바이스 (14) 에 의해 이후의 시간에 디코딩될 인코딩된 비디오 데이터를 생성하는 소스 디바이스 (12) 를 포함한다. 소스 디바이스 (12) 와 목적지 디바이스 (14) 는 데스크톱 컴퓨터들, 노트북 (즉, 랩톱) 컴퓨터들, 태블릿 컴퓨터들, 셋톱 박스들, 이른바 "스마트" 폰들과 같은 전화 핸드셋들, 이른바 "스마트" 패드들, 텔레비전들, 카메라들, 디스플레이 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 콘솔들, 비디오 스트리밍 디바이스 등을 포함한 매우 다양한 디바이스들 중 임의의 것을 포함할 수도 있다. 일부 경우들에서, 소스 디바이스 (12) 와 목적지 디바이스 (14) 는 무선 통신을 위해 구비될 수도 있다.
목적지 디바이스 (14) 는 디코딩될 인코딩된 비디오 데이터를 링크 (16) 를 통해 수신할 수도 있다. 링크 (16) 는 소스 디바이스 (12) 로부터의 인코딩된 비디오 데이터를 목적지 디바이스 (14) 로 이동시킬 수 있는 임의의 타입의 매체 또는 디바이스를 포함할 수도 있다. 하나의 예에서, 링크 (16) 는 소스 디바이스 (12) 가 인코딩된 비디오 데이터를 목적지 디바이스 (14) 로 직접 실시간으로 송신하는 것을 가능하게 하는 통신 매체를 포함할 수도 있다. 인코딩된 비디오 데이터는 통신 표준, 이를테면 무선 통신 프로토콜에 따라 변조되고, 목적지 디바이스 (14) 로 송신될 수도 있다. 통신 매체는 임의의 무선 또는 유선 통신 매체, 이를테면 무선 주파수 (radio frequency, RF) 스펙트럼 또는 하나 이상의 물리적 송신 라인들을 포함할 수도 있다. 통신 매체는 패킷 기반 네트워크, 이를테면 국부 영역 네트워크, 광역 네트워크, 또는 인터넷과 같은 글로벌 네트워크의 일부를 형성할 수도 있다. 통신 매체는 라우터들, 스위치들, 기지국들, 또는 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로의 통신을 용이하게 하는데 유용할 수도 있는 임의의 다른 장비를 포함할 수도 있다.
대안적으로, 인코딩된 데이터는 출력 인터페이스 (22) 로부터 저장 디바이스 (26) 로 출력될 수도 있다. 유사하게, 인코딩된 데이터는 입력 인터페이스에 의해 저장 디바이스 (26) 로부터 액세스될 수도 있다. 저장 디바이스 (26) 는 하드 드라이브, 블루 레이 디스크들, DVD들, CD-ROM들, 플래시 메모리, 휘발성 또는 비휘발성 메모리, 또는 인코딩된 비디오 데이터를 저장하기 위한 임의의 다른 적합한 디지털 저장 매체들과 같은 다양한 분산형 또는 국부적으로 액세스되는 데이터 저장 매체들 중 임의의 것을 포함할 수도 있다. 추가의 예에서, 저장 디바이스 (26) 는 소스 디바이스 (12) 에 의해 생성된 인코딩된 비디오를 유지할 수도 있는 파일 서버 또는 다른 중간 저장 디바이스에 대응할 수도 있다. 목적지 디바이스 (14) 는 저장된 비디오 데이터를 저장 디바이스 (26) 로부터 스트리밍 또는 다운로드를 통해 액세스할 수도 있다. 파일 서버는 인코딩된 비디오 데이터를 저장하고 그 인코딩된 비디오 데이터를 목적지 디바이스 (14) 로 송신할 수 있는 임의 유형의 서버일 수도 있다. 예의 파일 서버들은 웹 서버 (예컨대, 웹사이트용), FTP 서버, 네트워크 부속 스토리지 (network attached storage, NAS) 디바이스들, 또는 국부 디스크 드라이브를 포함한다. 목적지 디바이스 (14) 는 인터넷 접속을 포함한 임의의 표준 데이터 접속을 통해 인코딩된 비디오 데이터에 액세스할 수도 있다. 이것은 무선 채널 (예컨대, Wi-Fi 연결), 유선 접속 (예컨대, DSL, 케이블 모뎀 등), 또는 파일 서버 상에 저장된 인코딩된 비디오 데이터에 액세스하기에 적합한 양쪽 모두의 조합을 포함할 수도 있다. 저장 디바이스 (26) 로부터의 인코딩된 비디오 데이터의 송신은 스트리밍 송신, 다운로드 송신, 또는 양쪽 모두의 조합일 수도 있다.
본 개시의 기법들은 무선 애플리케이션들 또는 설정 (setting) 들로 반드시 제한되지는 않는다. 그 기법들은, 다양한 멀티미디어 애플리케이션들, 이를테면 OTA (over-the-air) 텔레비전 브로드캐스트들, 케이블 텔레비전 송신들, 위성 텔레비전 송신들, 예컨대, 인터넷을 통한 스트리밍 비디오 송신들 중 임의의 것의 지원 하의 비디오 코딩, 데이터 저장 매체 상의 저장을 위한 디지털 비디오의 인코딩, 데이터 저장 매체 상에 저장된 디지털 비디오의 디코딩, 또는 다른 애플리케이션들에 적용될 수도 있다. 일부 예들에서, 시스템 (10) 은 비디오 스트리밍, 비디오 플레이백, 비디오 브로드캐스팅, 및/또는 화상 통화와 같은 애플리케이션들을 지원하기 위해 단방향 또는 양방향 비디오 송신을 지원하도록 구성될 수도 있다.
도 1의 예에서, 소스 디바이스 (12) 는 비디오 소스 (18), 비디오 인코더 (20) 및 출력 인터페이스 (22) 를 포함한다. 일부 경우들에서, 출력 인터페이스 (22) 는 변조기/복조기 (모뎀) 및/또는 송신기를 포함할 수도 있다. 소스 디바이스 (12) 에서, 비디오 소스 (18) 는 비디오 캡처 디바이스, 예컨대, 비디오 카메라, 이전에 캡처된 비디오를 담고 있는 비디오 아카이브, 비디오 콘텐츠 제공자로부터 비디오를 수신하는 비디오 피드 인터페이스, 및/또는 컴퓨터 그래픽 데이터를 소스 비디오로서 생성하는 컴퓨터 그래픽 시스템과 같은 소스, 또는 그런 소스들의 조합을 포함할 수도 있다. 하나의 예로서, 비디오 소스 (18) 가 비디오 카메라인 경우, 소스 디바이스 (12) 와 목적지 디바이스 (14) 는 이른바 카메라 폰들 또는 비디오 폰들을 형성할 수도 있다. 그러나, 본 개시에서 설명되는 기법들은 일반적으로 비디오 코딩에 적용 가능할 수도 있고, 무선 및/또는 유선 애플리케이션들에 적용될 수도 있다.
캡처된, 사전 캡처된 (pre-captured), 또는 컴퓨터 생성된 비디오는 비디오 인코더 (20) 에 의해 인코딩될 수도 있다. 인코딩된 비디오 데이터는 소스 디바이스 (12) 의 출력 인터페이스 (22) 를 통해 목적지 디바이스 (14) 로 직접 송신될 수도 있다. 인코딩된 비디오 데이터는 또한 (또는 대안으로) 목적지 디바이스 (14) 또는 다른 디바이스들에 의한 디코딩 및/또는 플레이백을 위한 나중의 액세스를 위해 저장 디바이스 (26) 에 저장될 수도 있다.
목적지 디바이스 (14) 는 입력 인터페이스 (28), 비디오 디코더 (30), 및 디스플레이 디바이스 (32) 를 구비한다. 일부 경우들에서, 입력 인터페이스 (28) 는 수신기 및/또는 모뎀을 포함할 수도 있다. 목적지 디바이스 (14) 의 입력 인터페이스 (28) 는 링크 (16) 를 통해 인코딩된 비디오 데이터를 수신한다. 링크 (16) 를 통해 통신되거나 또는 저장 디바이스 (26) 상에 제공된 인코딩된 비디오 데이터는, 비디오 데이터를 디코딩함에 있어서, 비디오 디코더, 이를테면 비디오 디코더 (30) 에 의한 사용을 위해 비디오 인코더 (20) 에 의해 생성된 다양한 신택스 엘리먼트들을 포함할 수도 있다. 이러한 신택스 엘리먼트들은 통신 매체 상에서 송신되는, 저장 매체 상에 저장되는, 또는 파일 서버에 저장되는 인코딩된 비디오 데이터에 포함될 수도 있다.
디스플레이 디바이스 (32) 는 목적지 디바이스 (14) 와 통합되거나, 또는 목적지 디바이스 외부에 있을 수도 있다. 일부 예들에서, 목적지 디바이스 (14) 는 통합형 디스플레이 디바이스를 포함할 수도 있고 또한 외부 디스플레이 디바이스와 인터페이싱하도록 구성될 수도 있다. 다른 예들에서, 목적지 디바이스 (14) 는 디스플레이 디바이스일 수도 있다. 일반적으로, 디스플레이 디바이스 (32) 는 디코딩된 비디오 데이터를 사용자에게 디스플레이하고, 액정 디스플레이 (liquid crystal display, LCD), 플라즈마 디스플레이, 유기 발광 다이오드 (organic light emitting diode, OLED) 디스플레이, 또는 다른 유형의 디스플레이 디바이스와 같은 다양한 디스플레이 디바이스들 중 임의의 것을 포함할 수도 있다.
비디오 인코더 (20) 및 비디오 디코더 (30) 는 최근에 완료된 고효율 비디오 코딩 (HEVC) 표준과 같은 비디오 압축 표준에 따라 동작할 수도 있고, HEVC 테스트 모델 (HM) 에 따를 수도 있다. 대안적으로, 비디오 인코더 (20) 와 비디오 디코더 (30) 는, 다르게는 MPEG-4, 파트 10, 고급 비디오 코딩 (AVC) 이라고 지칭되는 ITU-T H.264 표준과 같은 다른 독점 또는 업계 표준들, 또는 그런 표준들의 확장본들에 따라 동작할 수도 있다. 그러나, 본 개시의 기법들은 임의의 특정 코딩 표준으로 제한되지 않는다. 비디오 압축 표준들의 다른 예들은 MPEG-2 및 ITU-T H.263 을 포함한다.
본 개시의 기법들은 설명의 편의를 위해 HEVC 용어를 이용할 수도 있다. 그러나, 본 개시의 기법들은 HEVC 에 제한된다는 것이 가정되지 않아야 하고, 사실상, 본 개시의 기법들은 HEVC 에 대한 계승 표준들 및 그것의 확장들에서 구현될 수도 있다는 것이 명시적으로 생각된다.
도 1 에 도시되지는 않았지만, 일부 양태들에서, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 각각 오디오 인코더 및 디코더와 통합될 수도 있고, 공통의 데이터 스트림 또는 별개의 데이터 스트림들에서 오디오 및 비디오 양자 모두의 인코딩을 다루기 위해 적절한 MUX-DEMUX 유닛들, 또는 다른 하드웨어 및 소프트웨어를 포함할 수도 있다. 적용가능하다면, 일부 예들에서, MUX-DEMUX 유닛들은 ITU H.223 멀티플렉서 프로토콜, 또는 사용자 데이터그램 프로토콜 (UDP) 과 같은 다른 프로토콜들에 따를 수도 있다.
비디오 인코더 (20) 및 비디오 디코더 (30) 각각은 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서들 (DSPs), 주문형 반도체들 (ASICs), 필드 프로그램가능 게이트 어레이들 (FPGAs), 이산 로직, 소프트웨어, 하드웨어, 펌웨어 또는 이들의 임의의 조합들과 같은 임의의 다양한 적합한 인코더 회로로서 구현될 수도 있다. 기법들이 부분적으로 소프트웨어에서 구현되는 경우, 디바이스는 적합한, 비일시적 컴퓨터 판독가능 매체에 그 소프트웨어에 대한 명령들을 저장하고 본 개시의 기법들을 수행하기 위해 하나 이상의 프로세서들을 사용하여 하드웨어에서 그 명령들을 실행할 수도 있다. 비디오 인코더 (20) 및 비디오 디코더 (30) 각각은 하나 이상의 인코더들 또는 디코더들에 포함될 수도 있으며, 그들 중 어느 것은 각각의 디바이스에서 결합된 인코더/디코더 (코덱) 의 부분으로서 통합될 수도 있다.
위에서 도입된 바와 같이, JCT-VC 는 HEVC 표준의 개발을 최근에 완결했다. HEVC 표준화 노력들은 HEVC 테스트 모델 (HEVC Test Model, HM) 이라고 지칭되는 비디오 코딩 디바이스의 진화 모델에 기초하였다. HM은, 예컨대, ITU-T H.264/AVC에 따른 현존 디바이스들에 비해 비디오 코딩 디바이스들의 몇몇 추가적인 능력들을 상정한다. 예를 들어, H.264가 아홉 개의 인트라 예측 인코딩 모드들을 제공하는 반면, HM은 서른다섯 개 정도의 인트라 예측 인코딩 모드들을 제공할 수도 있다.
HEVC 및 다른 비디오 코딩 사양들에서, 비디오 시퀀스는 일련의 화상들을 통상 포함한다. 화상들은 "프레임들"이라고 또한 지칭될 수도 있다. 화상이 SL, SCb 및 SCr로 표시되는 세 개의 샘플 어레이들을 포함할 수도 있다. SL은 루마 샘플들의 2차원 어레이 (즉, 블록) 이다. SCb는 Cb 색차 샘플들의 2차원 어레이이다. SCr은 Cr 색차 샘플들의 2차원 어레이이다. 색차 샘플들은 본원에서 "크로마" 샘플들이라고 또한 지칭될 수도 있다. 다른 예들에서, 화상이 모노크롬일 수도 있고 루마 샘플들의 어레이만을 포함할 수도 있다.
화상의 인코딩된 표현을 생성하기 위해, 비디오 인코더 (20) 는 코딩 트리 유닛들 (coding tree units, CTU) 의 세트를 생성할 수도 있다. 각각의 CTU 는 루마 샘플들의 코딩 트리 블록 (coding tree block), 크로마 샘플들의 두 개의 대응 코딩 트리 블록들, 및 코딩 트리 블록들의 샘플들을 코딩하는데 사용되는 신택스 구조들을 포함할 수도 있다. 모노크롬 화상들 또는 세 개의 별개의 컬러 평면들을 갖는 화상들에서, CTU 는 단일 코딩 트리 블록과 그 코딩 트리 블록의 샘플들을 코딩하는데 사용된 신택스 구조들을 포함할 수도 있다. 코딩 트리 블록은 샘플들의 NxN 블록일 수도 있다. CTU 는 "트리 블록" 또는 "최대 코딩 유닛 (largest coding unit, LCU)"이라고 또한 지칭될 수도 있다. HEVC의 CTU들은 다른 표준들, 이를테면 H.264/AVC의 매크로블록들과 대체로 유사할 수도 있다. 그러나, CTU가 특정 사이즈로 반드시 제한되는 것은 아니고 하나 이상의 코딩 유닛들 (CU들) 을 포함할 수도 있다. 슬라이스는 래스터 스캔 순서로 연속적으로 순서화된 정수 개수의 CTU 들을 포함할 수도 있다.
코딩된 CTU 를 생성하기 위해, 비디오 인코더 (20) 는 CTU의 코딩 트리 블록들에 대해 쿼드트리 파티셔닝을 재귀적으로 수행하여 코딩 트리 블록들을 코딩 블록들로 분할할 수도 있으며, 그래서 그 이름이 "코딩 트리 유닛들"이다. 코딩 블록은 샘플들의 NxN 블록일 수도 있다. CU 는 루마 샘플 어레이, Cb 샘플 어레이 및 Cr 샘플 어레이를 갖는 화상의 루마 샘플들의 코딩 블록 및 크로마 샘플들의 두 개의 대응하는 코딩 블록들과, 그 코딩 블록들의 샘플들을 코딩하는데 사용된 신택스 구조들을 포함할 수도 있다. 모노크롬 화상들 또는 세 개의 별개의 컬러 평면들을 갖는 화상들에서, CU 는 단일 코딩 블록 및 그 코딩 블록의 샘플들을 코딩하는데 사용되는 신택스 구조들을 포함할 수도 있다.
비디오 인코더 (20) 는 CU의 코딩 블록을 하나 이상의 예측 블록들로 파티셔닝할 수도 있다. 예측 블록은 동일한 예측이 적용되는 샘플들의 직사각형 (즉, 정사각형 또는 비정사각형) 블록이다. CU의 예측 유닛 (PU) 은 루마 샘플들의 예측 블록, 크로마 샘플들의 대응하는 두 개의 예측 블록들, 및 예측 블록들을 예측하는데 사용된 신택스 구조들을 포함할 수도 있다. 모노크롬 화상들 또는 세 개의 별개의 컬러 평면들을 갖는 화상들에서, PU 는 단일 예측 블록과 그 예측 블록을 예측하는데 사용된 신택스 구조들을 포함할 수도 있다. 비디오 인코더 (20) 는 CU 의 각각의 PU 의 루마, Cb, 및 Cr 예측 블록들에 대한 예측 루마, Cb, 및 Cr 블록들을 생성할 수도 있다.
비디오 인코더 (20) 는 PU 에 대한 예측 블록들을 생성하기 위해 인트라 예측 또는 인터 예측을 사용할 수도 있다. 비디오 인코더 (20) 가 PU 의 예측 블록들을 생성하기 위해 인트라 예측을 사용하는 경우, 비디오 인코더 (20) 는 PU 와 연관된 화상의 디코딩된 샘플들에 기초하여 PU 의 예측 블록들을 생성할 수도 있다. 비디오 인코더 (20) 가 PU 의 예측 블록들을 생성하기 위해 인터 예측을 사용하는 경우, 비디오 인코더 (20) 는 PU 와 연관된 화상 이외의 하나 이상의 화상들의 디코딩된 샘플들에 기초하여 PU 의 예측 블록들을 생성할 수도 있다.
비디오 인코더 (20) 가 CU 의 하나 이상의 PU 들에 대한 예측 루마, Cb, 및 Cr 블록들을 생성한 후, 비디오 인코더 (20) 는 CU 에 대한 루마 레지듀얼 블록을 생성할 수도 있다. CU 의 루마 레지듀얼 블록에서의 각 샘플은 CU 의 예측 루마 블록들 중 하나에서의 루마 샘플과 CU 의 원래의 루마 코딩 블록에서의 대응하는 샘플 사이의 차이를 나타낸다. 또, 비디오 인코더 (20) 는 CU 에 대한 Cb 레지듀얼 블록을 생성할 수도 있다. CU 의 Cb 레지듀얼 블록에서의 각 샘플은 CU 의 예측 Cb 블록들 중 하나에서의 Cb 샘플과 CU 의 원래의 Cb 코딩 블록에서의 대응하는 샘플 사이의 차이를 나타낼 수도 있다. 비디오 인코더 (20) 는 또한 CU 에 대한 Cr 레지듀얼 블록을 생성할 수도 있다. CU 의 Cr 레지듀얼 블록에서의 각 샘플은 CU 의 예측 Cr 블록들 중 하나에서의 Cr 샘플과 CU 의 원래의 Cr 코딩 블록에서의 대응하는 샘플 사이의 차이를 나타낼 수도 있다.
더욱이, 비디오 인코더 (20) 는 CU 의 루마, Cb, 및 Cr 레지듀얼 블록들을 하나 이상의 루마, Cb, 및 Cr 변환 블록들로 분해하기 위해 쿼드-트리 파티셔닝을 사용할 수도 있다. 변환 블록은 동일한 변환이 적용되는 샘플들의 직사각형 (예를 들어, 정사각형 또는 비정사각형) 블록이다. CU의 변환 유닛 (TU) 은 루마 샘플들의 변환 블록, 크로마 샘플들의 두 개의 대응하는 변환 블록들, 및 그 변환 블록 샘플들을 변환하는데 사용된 신택스 구조들을 포함할 수도 있다. 따라서, CU의 각각의 TU는 루마 변환 블록, Cb 변환 블록, 및 Cr 변환 블록과 연관될 수도 있다. TU 와 연관된 루마 변환 블록은 CU의 루마 레지듀얼 블록의 서브블록일 수도 있다. Cb 변환 블록은 CU의 Cb 레지듀얼 블록의 서브블록일 수도 있다. Cr 변환 블록은 CU의 Cr 레지듀얼 블록의 서브블록일 수도 있다. 모노크롬 화상들 또는 세 개의 별개의 컬러 평면들을 갖는 화상들에서, TU 는 단일 변환 블록과 그 변환 블록의 샘플들을 변환하는데 사용된 신택스 구조들을 포함할 수도 있다.
비디오 인코더 (20) 는 TU 에 대한 루마 계수 블록을 생성하기 위해 TU 의 루마 변환 블록에 하나 이상의 변환들을 적용할 수도 있다. 계수 블록은 변환 계수들의 2차원 어레이일 수도 있다. 변환 계수는 스컬러 양일 수도 있다. 비디오 인코더 (20) 는 TU 에 대한 Cb 계수 블록을 생성하기 위해 TU 의 Cb 변환 블록에 하나 이상의 변환들을 적용할 수도 있다. 비디오 인코더 (20) 는 TU 에 대한 Cr 계수 블록을 생성하기 위해 TU 의 Cr 변환 블록에 하나 이상의 변환들을 적용할 수도 있다.
계수 블록 (예를 들어, 루마 계수 블록, Cb 계수 블록 또는 Cr 계수 블록) 을 생성한 후, 비디오 인코더 (20) 는 그 계수 블록을 양자화할 수도 있다. 양자화는 일반적으로 변환 계수들이 가능하게는 변환 계수들을 표현하는데 사용되는 데이터의 양을 감소시키기 위해 양자화되어, 추가의 압축을 제공하는 프로세스를 지칭한다. 비디오 인코더 (20) 가 계수 블록을 양자화한 후, 비디오 인코더 (20) 는 양자화된 변환 계수들을 나타내는 신택스 엘리먼트들을 엔트로피 인코딩할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 양자화된 변환 계수들을 나타내는 신택스 엘리먼트들에 대해 콘텍스트-적응형 이진 산술 코딩 (CABAC) 을 수행할 수도 있다.
비디오 인코더 (20) 는 코딩된 화상들 및 연관된 데이터의 표현을 형성하는 비트들의 시퀀스를 포함하는 비트스트림을 출력할 수도 있다. 그 비트스트림은 NAL 유닛들의 시퀀스를 포함할 수도 있다. NAL 유닛은 그 NAL 유닛 내의 데이터의 타입의 표시를 포함하는 신택스 구조 및 에뮬레이션 방지 비트들이 필요에 따라 산재되어 있는 RBSP 의 형태로 그 데이터를 포함하는 바이트들이다. NAL 유닛들 각각은 NAL 유닛 헤더를 포함하고 RBSP 를 캡슐화한다. NAL 유닛 헤더는 NAL 유닛 타입 코드를 나타내는 신택스 엘리먼트를 포함할 수도 있다. NAL 유닛의 NAL 유닛 헤더에 의해 특정된 NAL 유닛 타입 코드는 NAL 유닛의 타입을 나타낸다. RBSP 는 NAL 유닛 내에 캡슐화되는 정수 개수의 바이트들을 포함하는 신택스 구조일 수도 있다. 일부 예들에서, RBSP 는 제로 비트들을 포함한다.
상이한 타입들의 NAL 유닛들은 상이한 타입들의 RBSP 들을 캡슐화할 수도 있다. 예를 들어, 제 1 타입의 NAL 유닛은 PPS 에 대한 RBSP 를 캡슐화할 수도 있고, 제 2 타입의 NAL 유닛은 코딩된 슬라이스에 대한 RBSP 를 캡슐화할 수도 있고, 제 3 타입의 NAL 유닛은 SEI 메시지들에 대한 RBSP 를 캡슐화할 수도 있는 등이다. (파라미터 세트들 및 SEI 메시지들에 대한 RBSP 들과 대조되는) 비디오 코딩 데이터에 대한 RBSP 들을 캡슐화하는 NAL 유닛들은 VCL NAL 유닛들로서 지칭될 수도 있다.
비디오 디코더 (30) 는 비디오 인코더 (20) 에 의해 생성된 비트스트림을 수신할 수도 있다. 또, 비디오 디코더 (30) 는 그 비트스트림으로부터 신택스 엘리먼트들을 획득하기 위해 그 비트스트림을 파싱할 수도 있다. 비디오 디코더 (30) 는 비트스트림으로부터 획득된 신택스 엘리먼트들에 적어도 부분적으로 기초하여 비디오 데이터의 화상들을 재구성할 수도 있다. 비디오 데이터를 재구성하는 프로세스는 일반적으로 비디오 인코더 (20) 에 의해 수행된 프로세스에 역일 수도 있다. 또, 비디오 디코더 (30) 는 현재의 CU 의 TU 들과 연관된 계수 블록들을 역 양자화할 수도 있다. 비디오 디코더 (30) 는 현재의 CU 의 TU 들과 연관된 변환 블록들을 재구성하기 위해 계수 블록들에 대해 역변환들을 수행할 수도 있다. 비디오 디코더 (30) 는 현재의 CU 의 TU 들의 변환 블록들의 대응하는 샘플들에 현재의 CU 의 PU 들에 대한 예측 블록들의 샘플들을 가산함으로써 현재의 CU 의 코딩 블록들을 재구성할 수도 있다. 화상의 각각의 CU 에 대한 코딩 블록들을 재구성함으로써, 비디오 디코더 (30) 는 화상을 재구성할 수도 있다.
ALF 는 HEVC 에서 제안되었고, 여러 워킹 드래프트들 및 테스트 모델 소프트웨어, 즉 HEVC 테스트 모델 (또는 "HM") 에 포함되었지만, ALF 는 HEVC 의 최종 버전에 포함되지 않는다. 관련된 용어들 중에서, HEVC 테스트 모델 버전 HM-3.0 에서의 ALF 설계는 가장 효율적인 설계로서 주장되었다. (T. Wiegand, B. Bross, W.J. Han, J.R. Ohm 및 G. J. Sullivan, “WD3: Working Draft 3 of High-Efficiency Video Coding," Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, JCTVC-E603, 5th Meeting: Geneva, CH, 16-23 March. 2011, 이하, “워킹 드래프트 3” 을 참조, 그의 전체의 내용들은 참조에 의해 여기에 포함된다). 따라서, HM-3.0 으로부터의 ALF 설계가 여기에 도입된다.
HM-3.0 에서의 ALF 는 화상 레벨 최적화에 기초한다. 즉, ALF 계수들은 전체 프레임이 코딩된 후에 도출된다. 루마 컴포넌트, 블록 기반 적응 (BA) 및 영역 기반 적응 (RA) 에 대해 2 개의 모드들이 존재했다. 이들 2 개의 모드들은 동일한 필터 형상들, 필터링 동작들 뿐아니라 신택스 엘리먼트들을 공유한다. 그들 사이의 유일한 차이는 분류 방법이다.
BA 에서의 분류는 블록 레벨에서이다. 화상에서의 각각의 4x4 루마 블록은 1차원 (1D) 라플라시안 방향 (최대 3 개의 방향들) 및 2차원 (2D) 라플라시안 활동 (최대 5 개의 활동 값들) 에 기초하여 그룹 인덱스가 할당된다. 방향 Dirb 및 양자화되지 않은 활동 Actb 의 계산은 아래의 식 (1) - 식 (4) 에서 도시되며, 여기서
Figure pct00001
는 4x4 블록의 좌상측 화소 위치에 대한 상대적인 좌표 (i,j) 를 갖는 재구성된 화소를 나타내고, Vi,j 및 Hi,j 는 (i,j) 에 위치된 화소의 수직 및 수평 그레디언트의 절대값들이다. 이와 같이, 방향 Dirb 은 4x4 블록에서의 수직 그레디언트 및 수평 그레디언트의 절대 값들을 비교함으로써 생성되고, Actb 는 4x4 블록에서의 양방향들에서의 그레디언트들의 합이다. Actb 는 워킹 드래프트 3 에서 기술된 바와 같이, 0 내지 4 의 범위로 추가로 양자화된다.
Figure pct00002
따라서, 총 15 (5x3) 개의 그룹들이 화상에서 카테고리화되고, 각 그룹은 그룹 인덱스 값과 연관된다.
도 2 는 BA 분류를 위해 사용되는 이들 15 개의 그룹들을 도시하는 개념적 다이어그램이다. 도 2 의 예에서, 필터들은 활동 메트릭 (즉, 범위 0 내지 범위 4) 및 방향 메트릭에 대한 값들의 범위들로 맵핑된다. 도 2 에서의 방향 메트릭은 식 3 으로부터의 위의 0, 1, 및 2 의 값들에 대응할 수도 있는 무방향, 수평, 및 수직의 값들을 갖는 것으로서 도시된다. 도 2 의 특정의 예는 15 개의 카테고리들로 맵핑되는 것으로서 6 개의 상이한 필터들 (즉, 필터 1, 필터 2 … 필터 6) 을 보여주지만, 더 많거나 더 적은 필터들이 유사하게 사용될 수도 있다. 도 2 는 그룹들 (221 내지 235) 로서 식별되는 15 개의 그룹들을 갖는 예를 보여주지만, 더 많거나 더 적은 그룹들이 또한 사용될 수도 있다. 예를 들어, 활동 메트릭에 대한 5 개의 범위들 대신에, 더 많거나 더 적은 범위들이 사용되어 더 많은 그룹들을 야기할 수도 있다. 또, 단지 3 개의 방향들 대신에, 추가적인 방향들 (예를 들어, 45 도 방향 및 135 도 방향) 이 또한 사용될 수도 있다.
이하에 더 상세히 설명되는 바와 같이, 각 그룹과 연관된 필터들은 하나 이상의 병합 플래그들을 사용하여 시그널링될 수도 있다. 1차원 그룹 병합의 경우, 단일의 플래그가 그룹이 이전의 그룹과 동일한 필터로 맵핑되는지를 나타내기 위해 전송될 수도 있다. 2차원 그룹 병합의 경우, 제 1 플래그는 그룹이 제 1 이웃 블록 (예를 들어, 수평 또는 수직 이웃 중 하나) 과 동일한 필터로 맵핑되는지를 나타내기 위해 전송될 수도 있고, 그 플래그가 거짓이면, 제 2 플래그가 그 그룹이 제 2 이웃 블록 (예를 들어, 수평 이웃 또는 수직 이웃 중 다른 것) 으로 맵핑되는지를 나타내기 위해 전송될 수도 있다.
RA 분류의 경우, 각 화상은 먼저 16 (4x4) 개의 CTU 정렬 영역들로 균일하게 분할될 수도 있고, 이들의 각각은 화상의 폭 및 높이의 사분의 일 (1/4) 폭 및 사분의 일 (1/4) 높이를 갖는 화상의 타일이다. 영역 내의 화소들은 동일한 그룹 내인 것으로서 간주될 수도 있다.
시그널링 코스트들 및 연관된 대역폭 소비를 보존하기 위해, 인접한 인덱스 값들을 갖는 임의의 2 개의 그룹들이, 그 2 개의 그룹들이 ALF 파라미터들의 동일한 세트를 사용하도록 병합될 수도 있다. 그 그룹들은 단 하나의 그룹이 좌측에 있을 때까지 레이트-왜곡 코스트에 기초하여 반복적으로 병합될 수도 있다. 대응하는 모드가 BA 인지 또는 RA 인지 여부에 관계없이, 그 그룹들은 1D 벡터로 재배열된다 (3x5 2D 활동 및 방향 어레이들이 BA 에서 1D 벡터로 재배열되거나, 4x4 타일들이 1D 벡터로 재배열된다). 1D 벡터의 우측 엘리먼트는 단지 좌측 엘리먼트에서의 그것들의 ALF 파라미터들을 재사용할 수도 있다. 워킹 드래프트 3 의 HM-3 에서의 1D 병합을 위한 그룹핑 정보는 아래의 표 1 의 이탤릭채로된 부분들에 따라 시그널링된다.
Figure pct00003
표 1
(위의 표 1 의 신택스에 대한) 관련된 시맨틱스들은 다음과 같다.
alf _no_filters_ minus1 플러스 1 은 현재의 슬라이스에 대한 필터 세트들의 수를 특정한다.
alf _start_second_filter 는 alf_no_filters_minus1 이 1 과 동일할 때 제 2 필터가 적용되는 경우의 루마 샘플들의 분산 인덱스를 특정한다.
alf _filter_pattern[i] 은 alf_no_filters_minus1 이 1 보다 큰 경우, 루마 샘플들의 i 번째 분산 인덱스에 대응하는 필터 인덱스 어레이를 특정한다. 필터 세트들의 수 AlfNumFilters 는 다음과 같이 도출된다:
- If alf_no_filters_minus1 이 2 보다 작다면,
AlfNumFilters = alf_no_filters_minus1 + 1 (7-15)
- 그렇지 않은 경우 (alf_no_filters_minus1 이 2 보다 큰 경우)
AlfNumFilters = Σi alf_filter_pattern[i], i = 0…15 (7-16)
대응하는 모드가 BA 인지 또는 RA 인지 여부에 관계없이, 그 그룹들은 여전히 2D 어레이에 있다. 그 2D 어레이의 임의의 하나 이상의 엘리먼트들은 하나의 병합된 그룹으로 할당되어서 ALF 계수들의 단지 하나의 세트만이 시그널링될 수도 있다. 2D 병합 기반 방법은 T. Yamakage, T. Watanabe, T. Chujoh, C.-Y. Chen, C.-M. Fu, C.-Y. Tsai, Y.-W. Huang, S. Lei, I. S. Chong, M. Karczewicz, T. Ikai, “CE8.a.1: 2-D mergeable syntax”, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, JCTVC-G316, Geneva, Nov., 2011 (이하, JCTVC-G316) 에서 제안되었으며, 그의 전체의 내용들은 참조에 의해 여기에 포함된다. 아래의 표 2 의 이탤릭체로 된 부분들에서 도시된 바와 같이, 제안된 방법은 유연한 2D 병합을 지원하기 위해 상당한 시그널링 오버헤드를 요구한다.
Figure pct00004
표 2
아래의 시맨틱스들은 표 2 의 이탤릭체로 된 부분들에 대응한다.
alf _region_ idx[i] 는 적응적 루프 필터에 대한 필터 인덱스를 특정한다.
prev _ alf _region_ pred _flag[i] 및 rem_ alf _region_ pred _ idx[i] 는 적응적 루프 필터에 대한 계수 인덱스 CoeffIdx 를 특정한다. prev_alf_region_pred_flag[i] 가 0 과 동일한 경우, alf_region_idx[i] 는 이웃 클래스들의 인덱스로부터 추론될 것이다.
어레이 CoeffIdx 는 다음과 같이 도출된다.
CoeffIdx[0] 가 0 이 되도록 설정된다.
값 alf_curr_filters 가 1 이 되도록 설정된다.
1 내지 AlfNumRegions - 1 의 범위에서의 각 i 에 대해, 다음의 단계들이 프로세싱되며,
alf_no_filters_minus1 이 0 인 경우, CoeffIdx[i] 는 0 이 되도록 설정된다.
그렇지 않고, alf_no_filters_minus1 이 1 인 경우, CoeffIdx[i] 는 alf_region_idx[i] 가 되도록 설정된다.
그렇지 않고, alf_no_filters_minus1 이 1 보다 큰 경우, CoeffIdx[i] 는 다음의 단계들로서 도출되며,
alf_remain_regions 의 값이 AlfNumRegions - i 로서 도출되고,
alf_remain_filters 의 값이 AlfNumFilters - alf_curr_filters 로서 도출되고,
remain_fixed_region 의 값이 alf_remain_regions - alf_remain_filters 로서 도출되고,
remain_fixed_region 이 0 인 경우, CoeffIdx[i] 은 alf_curr_filters 의 값이 되도록 추론되며,
그렇지 않고, prev_alf_region_pred_flag[i] 가 1 인 경우, CoeffIdx[i] 은 예측된 값 mpm_region_idx[i] 로 추론된다.
그렇지 않고, rem_alf_region_pred_idx[i] 가 mpm_region_idx[i] 보다 작은 경우, CoeffIdx[i] 은 prev_alf_region_pred_flag[i] 가 되도록 설정된다.
그렇지 않으면, CoeffIdx[i] 는 rem_alf_region_pred_idx[i] 가 되도록 설정되다.
CoeffIdx[i] 가 alf_curr_filters 과 동일한 경우, alf_curr_filters 는 1 만큼 증분된다.
mpm_region_idx[i] 는 다음과 같이 도출된다.
alf_remain_regions 가 alf_remain_filters >> 1 보다 큰 경우, mpm_region_idx[i] 는 alf_curr_filters 로서 도출된다.
그렇지 않고, (i % 5) 가 0 이고 alf_region_adaptation_flag 가 0 인경우, mpm_region_idx[i] 는 CoeffIdx[i-5] 로서 도출되고,
그렇지 않은 경우, mpm_region_idx[i] 는 CoeffIdx[i-1] 로서 도출된다.
(가능한 합병 후의) 각 그룹에 대해, ALF 계수들의 세트가 시그널링된다. (도 3a 내지 도 3c 에 도시된 바와 같은) 최대 3 개의 원형 대칭 필터 형상들이 지원된다. 더욱 상세하게는, 도 3a 내지 도 3c 는 3 개의 ALF 필터 형상들, 즉 5x5 다이아몬드 (예를 들어, 도 3a), 7x7 다이아몬드 (예를 들어, 도 3b), 및 9x9 다이아몬드 (예를 들어, 도 3c) 를 도시한다. 또, (워킹 드래프트 3 의 ALF 설계에 따라) 플래그가 ALF 가 현재의 CU 에 적용되는지 여부를 나타내기 위해 CU 레벨에서 시그널링된다.
(때때로 필터 탭들로서 지칭되는) 필터 계수들이 다른 방식들로 블록키니스 (blockiness) 를 감소시키고 및/또는 비디오 품질을 향상시킬 수 있는 비디오 블록 필터링의 바람직한 레벨들을 증진시키기 위해 정의되거나 선택될 수도 있다. 필터 계수들의 세트는, 예를 들어, 비디오 블록들의 에지들 또는 비디오 블록들 내의 다른 로케이션들을 따라 필터링이 적용되는 방법을 정의할 수도 있다. 상이한 필터 계수들은 비디오 블록들의 상이한 화소들에 대한 필터링의 상이한 레벨들을 야기할 수도 있다. 필터링은, 예를 들어, 원하지 않는 아티팩터들을 제거하는 것을 돕기 위해 인접한 화소 값들의 세기에서의 차이들을 평활화하거나 날카롭게 할 수도 있다.
본 개시에서, 용어 “필터” 는 일반적으로 필터 계수들의 세트를 지칭한다. 예를 들어, 3x3 필터는 9 개의 필터 계수들의 세트에 의해 정의될 수도 있고, 5x5 필터는 25 개의 필터 계수들의 세트에 의해 정의될 수도 있고, 9x5 필터는 45 개의 필터 계수들의 세트에 의해 정의될 수도 있는 등등이다. 용어 “필터들의 세트” 는 일반적으로 2 개 이상의 필터의 그룹을 지칭한다. 예를 들어, 2 개의 3x3 필터들의 세트는 9 개의 필터 계수들의 제 1 세트 및 9 개의 필터 계수들의 제 2 세트를 포함할 수 있을 것이다. 때때로 “필터 지원” 으로 불리는 용어 “형상” 은 일반적으로 특정의 필터에 대한 필터 계수들의 행들의 수 및 필터 계수들의 열들의 수를 지칭한다. 예를 들어, 9x9 는 제 1 형상의 예이고, 7x5 는 제 2 형상의 예이고, 5x9 는 제 3 형상의 예이다. 일부 예들에서, 필터들은 다이아몬드-형상들, 다아몬드-형 형상들, 원 형상들, 원형 형상들, 육각형 형상들, 팔각형 형상들, 십자 형상들, X 자 형상들, T 자 형상들, 다른 기하학적 형상들, 또는 다수의 다른 형상들 또는 구성을 포함하는 비직사각형 형상들을 취할 수도 있다. 도 3a 내지 도 3c 의 예들은 다이아몬드 형상들이지만, 다른 형상들이 사용될 수도 있다. 가장 흔한 경우들에서, 필터의 형상에 관계없이, 필터 마스크에서의 중심 화소는 필터링되고 있는 화소이다. 다른 예들에서, 필터링된 화소는 필터 마스크의 중심으로부터 오프셋될 수도 있다.
화상에서의 크로마 컴포넌트들의 양자의 경우, ALF 계수들의 하나의 단일의 세트가 분류 없이 적용된다. 5x5 다이아몬드의 필터 형상은 항상 사용된다. 디코더 측에서, 각 화소 샘플
Figure pct00005
은 이하의 식 (5) 에서 도시된 바와 같은 계산들에 기초하여
Figure pct00006
로 필터링되며, 여기서 L 은 필터 길이를 나타내고, fm,n 은 필터 계수를 나타내며, o 는 필터 오프셋 또는 DC 계수를 나타낸다.
Figure pct00007
HM-3.0 이 릴리스된 후, ALF 는 더 낮은 복잡성 및 더 양호한 시그널링의 면에서 더욱 향상되었다. 더욱이, HM-3.0 에서의 화상 레벨 ALF 에 의해 도입된 코딩 레이턴시를 감소시키기 위해, CTU 레벨 신택스가 또한 제안되었다. 더 많은 정보가 C.-Y. Tsai, C.-Y. Chen, T. Yamakage, I. S. Chong, Y.-W. Huang, C.-M. Fu, T. Itoh, T. Watanabe, T. Chujoh, M. Karczewicz, S.-M Lei, “Adaptive Loop Filter for Video Coding”, IEEE Journal of Selected Topics in Sinal Processing, Vol. 7, no. 6, Dec. 2013 에서 발견될 수도 있으며, 그의 전체의 내용들은 참조에 의해 여기에 포함된다.
제안된 CTU 레벨 ALF 에서, ALF 파라미터들은 공간적으로 이웃하는 CTU 들로부터 명시적으로 시그널링되거나 승계될 수도 있다. 명시적으로 시그널링되는 경우, 최대 T 개의 (여기서 T 는 특정의 값, 예를 들어 15 으로 설정된다) ALF 필터들이 현재의 CTU 에 대해 시그널링된다. 승계되는 경우, 표시자가 ALF 필터들이 이웃하는 (예를 들어, 좌측 또는 상측) CTU 로부터 승계되는지 여부를 나타내기 위해 전송된다. 현재의 CTU 의 ALF 필터들이 이웃하는 (예를 들어, 좌측 또는 상측) CTU 로부터 승계되는 것으로 표시되는 경우, 이웃하는 CTU 의 모든 ALF 필터들은 현재의 CTU 의 그것들이 되도록 복사되고, 더 이상 ALF 필터가 시그널링되지 않는다. HM-6 에서, 유연한 신택스들이 ALF 파라미터들의 공간적 승계를 더 양호하게 지원하기 위해 채용되었으며, 예를 들어 런 길이 코딩이 “좌측으로부터 복사” 를 지원하기 위해 사용된다. HM-6 의 이들 양태들의 추가의 상세들은 B. Bross, W.-J. Han, G. J. Sullivan, J.-R. Ohm, T. Wiegand “High Efficiency Video Coding (HEVC) text specification draft 6”, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, JCTVC-H1003, San Jose, CA, Feb., 2012 (이하, “워킹 드래프트 6”) 에서 발견될 수도 있으며, 그의 전체의 내용들은 참조에 의해 여기에 포함된다.
ALF 와 관련하여 상술된 기법들은 코딩 효율을 상당히 향상시킬 수도 있다. 그러나, 상술된 것들과 같은 기법들은 여전히 하나 이상의 잠재적인 문제들 또는 제한들을 제시할 수도 있다. 예를 들어, BA-기반 또는 RA-기반 분류가 사용되는지 여부에 관계없이, HM-3.0 에서의 ALF 방법들은 다수의 그룹들에 대한 ALF 파라미터들을 도출하기 위해 화상 레벨 최적화들을 요구할 수도 있다. 이것은 ALF 계수들이 전체 프레임이 코딩된 때까지 도출되기 때문에 화상 내의 잠재적으로 바람직하지 않은 인코딩 레이턴시를 초래한다. 게다가, 전체 화상이 ALF 계수들을 도출하기 위해 수회 로딩될 필요가 있으며, 이것은 특히 하드웨어 구현들의 경우에 메모리 대역폭 요건을 상당히 증가시킨다.
여기에 기술된 기법들은 워킹 드래프트 6 에서와 같이 위의 불릿 (bullet) (1) 에서 기술된 잠재적인 문제를 피하기 위해 화상 레벨 대신에 CTU 레벨로 ALF 를 확장할 수도 있다. 그러나, CTU 레벨에서 ALF 파라미터들을 최적화하고 시그널링하는 일부 기법들은 화상 레벨에서의 ALF 시그널링 및 최적화보다 훨씬 덜 효율적일 수도 있다.
여러 예들에서, ALF 기법들의 양태들은 (예를 들어, 비디오 인코더 (20) 의 ALF 유닛 (65) 에 의해) CTU 레벨에서 적용되고, 제안된 방법들 중 하나 이상으로 CTU 데이터의 부분으로서 시그널링된다. 여러 예들에서, ALF 유닛 (65) 은 HEVC 에서의 모션 벡터 코딩의 병합 모드와 유사한 방식으로 CTU 의 공간적으로 및/또는 시간적으로 이웃하는 CTU 들로부터 CTU 의 ALF 정보를 복사할 수도 있다. 이러한 경우에, 이웃하는 CTU 들로부터의 ALF 파라미터들의 후보 리스트가 (예를 들어, ALF 유닛 (65) 에 의해) 구성되고, 그 후보 리스트에 대한 인덱스가 ALF 파라미터들을 결정하기 위해 시그널링된다. 상술된 후보 리스트의 각 엔트리는 현재의 CTU 에 대해 (예를 들어, ALF 유닛 (65) 에 의해) 적응적 루프 필터링을 수행하기 위해 사용되는 ALF 파라미터들의 풀 세트이다.
후보 리스트 내의 엔트리들의 수는 특정한 수의 엔트리들로 제한되지 않는다. 일부 예들에서, ALF 파라미터들의 후보 리스트 내의 엔트리들의 최대수는 고정된 값이 되도록 미리 정의되거나, 비트스트림에서 시그널링되거나, 다른 시그널링된 정보에 종속되는 변형이며 (종속하는 변수이며), 예를 들어 모션 병합 후보들의 수와 동일하게 설정될 수도 있다. 그러한 정보는 화상 파라미터 세트 (PPS), 슬라이스 헤더, 시퀀스 파라미터 세트 (SPS), 또는 고레벨 신택스를 포함하는 다른 레벨들 또는 장소들에서 제시될 수도 있다.
예로서, 최대 5 개의 후보들이 사용될 수도 있다. 그러나, 여러 예들에서, 5 개보다 더 많거나 더 적은 후보들을 포함하는 상이한 수의 후보들이 사용될 수도 있다. 일 예에서, 2 개의 공간적 후보들 (좌측 CTU 및 상측 CTU) 및 3 개의 시간적 후보들이 채용된다.
후보 리스트들에 대한 후보의 소스는 특정의 소스에 제한되지 않는다. 여러 예들에서, 후보 리스트에 대한 후보들의 소스는 공간적 및/또는 시간적으로 이웃하는 CTU 들을 포함할 수도 있다. 여러 예들에서, 상이한 규칙들이 어떤 소스들이 후보들을 제공하기 위해 사용될 수도 있는지, 및 주어진 후보 리스트에 대해 후보 리스트 상의 얼마나 많은 후보들이 사용될 수 있는지 (최대수) 또는 사용되어야 하는지 (최소수) 에 적용된다.
일부 예들에서, 단지 공간적 후보들만이 인트라 슬라이스들에 대해 허용된다. 일부 예들에서는, 하나 이상의 시간적 후보들은 하나 이상의 참조 화상들에서 동일 장소에 배치된 (collocated) CTU 들이다. 일부 예들에서, 시간적 후보들은 동일한 슬라이스 타입들 및/또는 유사한 (예를 들어, 동일한) QP 범위를 갖는 참조 화상들에 있는 것으로 제한된다. 일부 예들에서, 참조 화상에서의 동일 장소에 배치된 CTU 에 인접한 우하측, 좌상측, 상측, 좌측 CTU 들과 같은, 참조 화상에서의 동일 장소에 배치된 CTU 이외의 CTU 들이 또한 사용될 수도 있다.
여러 예들에서, 병합 리스트를 구성할 때, 시간적 후보들은 그 시간적 후보들이 연관되는 참조 인덱스들의 순서에 기초하여 삽입된다.
일 예에서, CTU 사이즈가 2Nx2N 이라고 가정하면, 현재의 CTU 는 MxM 서브 블록들로서 동일하게 분할되며, 여기서 2N 은 M 의 증식 (또는 배수) 이다. 각각의 MxM 서브 블록에 대해, 이러한 서브 블록의 모션 벡터에 의해 로케이팅되는 하나 이상의 시간적 후보들은 ALF 정보를 도출하기 위해 사용될 수도 있다. 여러 예들에서, MV 로 시간적 후보를 로케이팅할 때, MV 에 의해 포인팅하는 블록의 좌상측 코너를 커버하는 CTU 가 시간적 후보로서 사용될 수도 있다. 대안적으로, MV 에 의해 포인팅하는 블록의 중심 포인트를 커버하는 CTU 가 시간적 후보로서 사용될 수도 있다. 여러 예들에서, 양방향 예측이 서브 블록에 대해 사용되는 경우, 단지 MV0 만이 시간적 후보를 로케이팅하기 위해 사용된다. 일부 예들에서는, 단지 MV1 만이 시간적 후보를 로케이팅하기 위해 사용된다. 대안적으로, 어떤 MV(s) 가 시간적 후보들을 로케이팅하기 위해 사용되는지는 SPS, PPS, 또는 슬라이스 헤더에서와 같이 비트스트림에서 시그널링된다. 일 예에서, M 은 8 로 설정된다. 다른 예들에서, M 은 4 로 설정된다. 다른 예에서, M 은 1 로 설정된다.
ALF 파라미터들의 후보 리스트 내의 엔트리들의 최대수는 고정된 값이 되도록 미리 정의되거나, 비트스트림에서 시그널링되거나, 다른 시그널링된 정보에 종속되는 변형이며 (종속하는 변수이며), 예를 들어 모션 병합 후보들의 수와 동일하게 설정될 수도 있다. 그러한 정보는 화상 파라미터 세트 (PPS), 슬라이스 헤더, 시퀀스 파라미터 세트 (SPS), 또는 고레벨 신택스를 포함하는 다른 레벨들 또는 장소들에서 제시될 수도 있다.
일부 예들에서, 공간적/시간적 이웃들로부터의 단지 2 개의 후보들만이 결국 리스트에서 제시될 수도 있다. 일부 예들에서, 시간적 후보들은 현재의 CTU 에서의 블록들 중 적어도 하나가 인터 예측 모드로 코딩되는 경우에만 허용될 수도 있다. 일부 예들에서, 시간적 후보들은 인트라 코딩된 슬라이스의 CTU 에 대해 허용되지 않을 수도 있다. 일부 예들에서, 시간적 후보들은 시간적 모션 벡터 예측이 가능하게 되는 경우에만 허용될 수도 있다. 일부 예들에서, 시간적 후보(들) 은 슬라이스 헤더에서 시그널링될 수도 있는 고정 또는 전용 참조 화상으로부터만 허용된다. 대안적으로 (또는 추가적으로), 그러한 화상은 시간적 모션 벡터 예측을 위해 사용되는 화상이도록 더욱 제한될 수도 있다.
여러 예들에서, 시간적 후보들이 허용되는지 여부에 대한 표시는 고레벨 신택스, 예를 들어, PPS, 슬라이스 헤더, SPS 또는 고레벨 신택스를 포함하는 다른 레벨들/장소들로서 시그널링된다.
모션 벡터 예측에서와 유사하게, 상이한 이웃들로부터의 동일한 컨텐츠 (예를 들어, ALF 파라미터들) 를 포함하는 엔트리들은 리스트에서 중복될 필요가 없다. 따라서, 일부 예들에서, 중복들을 제거하기 위해 프루닝 (pruning) 프로세스가 존재한다. 공간적 또는 시간적 후보들은 미리 정의된 순서로 (프루닝을 갖는 또는 갖지 않는) 리스트로 추가될 수도 있다. 대안적으로 (또는 추가적으로), 그러한 순서는 현재의 CTU 에서의 하나 이상의 블록들이 소정의 양식으로 시간적 예측되는지 여부에 의존할 수도 있다. 예를 들어, 시간적 모션 예측이 일부 블록들에 적용되는 경우, 시간적 후보들은 리스트의 더 빠른 위치들에 놓일 수도 있다. ALF 가 전체 CTU 의 디코딩 후에 행해지기 때문에, 시간적 모션 예측을 갖는 영역의 퍼센티지는 리스트에서의 시간적 후보들의 상대적인 순서/위치를 결정하기 위해 사용될 수도 있다.
일부 예들에서, 시간적 후보들이 허용되는 경우, 단 하나의 시간적 후보가CTU 내의 코딩된 블록들의 참조 인덱스들에 기초하여 참조 화상들로부터 선택될 수도 있다. 예를 들어, 가장 빈번하게 사용되는 화상이 선택될 수도 있다. 대안적으로 (또는 추가적으로), 단지 동일 장소에 배치된 시간적 CTU 만이 허용되는 경우, 현재의 CTU 의 그것에 대해 동일 장소에 배치된 영역 밖의 화소들을 가리키는 모션 벡터들은 빈도 계산을 위해 고려되지 않는다.
여러 예들에서, CTU ALF 정보는 공간적으로 및/또는 시간적으로 이웃하는 CTU 들로부터 예측될 수도 있다. 이러한 경우에, 단지 차이 정보만이 예측기 (predictor) 를 식별하기 위해 인덱스에 추가하여 시그널링된다. 일부 예들에서, 공간적으로 및/또는 시간적으로 이웃하는 CTU 들은 상술된 바와 동일한 방식들 중 임의의 것으로 정의된다.
여러 예들에서, 샘플 적응적 오프셋 (SAO) 파라미터들은 ALF 파라미터들의 부분으로서 간주될 수도 있기 때문에 (예를 들어, DC 계수들만을 갖는 CTU ALF 의 특수한 경우) SAO 정보는 또한 ALF 파라미터들과 함께 결합될 수도 있다. 또한, ALF 시그널링 및 예측에 대한 상기 방법들은 ALF 및 SAO 파라미터들을 위해 공동으로 적용될 수도 있다. 대안적으로, SAO 및 ALF 파라미터들은 독립적으로 시그널링될 수 도 있지만, 동일한 병합 메커니즘을 공유한다. 이러한 경우에, ALF 파라미터들에 대해 기술된 바와 같은, 상기 방법들은 SAO 파라미터들의 시그널링을 위한 개선된 방법으로서 적용될 수도 있다.
여러 예들에서, (대칭 또는 비대칭과 같은) 필터 대칭성 정보가 CUT 레벨에서 시그널링될 수도 있다. 대안적으로, 필터 대칭성 정보는 필터의 각 세트에 대해 시그널링될 수도 있다. 또, SPS/PPS/슬라이스 헤더 내의 플래그가 비대칭 필터가 비트스트림의 관련된 부분들에서 사용될지 여부를 나타내기 위해 시그널링될 수도 있다.
여러 예들에서, 필터 계수들에 대한 양자화 정보는 CTU 레벨에서 또는 필터의 각 세트에 대해 시그널링될 수도 있다. 또, SPS/PPS/슬라이스 헤더 내의 데이터 (예를 들어, 표시자) 는 양자화 정보가 비트스트림의 관련된 일부들/부분들에서 시그널링될지 여부를 나타내기 위해 시그널링될 수도 있다. 일부 예들에서, 양자화 정보는 파싱된 필터 계수들로부터 필터 계수의 정수 값을 생성하기 위해 좌측 시프트되는 비트들의 수일 수도 있다. 일부 예들에서, (비디오 인코더 (20) 에 의해) 비트스트림에서의 필터 계수 양자화 정보의 명시적인 시그널링 대신에, 필터 계수 양자화 정보는 ALF 계수들에 기초하여 (예를 들어, 비디오 디코더 (30) 의 ALF 유닛 (91) 에 의해) 암시적으로 도출된다. 일부 예들에서, 양자화 비트들의 수는 모든 alf 가중 계수들의 합산에 기초하여 (예를 들어, 비디오 디코더 (30) 의 ALF 유닛 (91) 에 의해) 계산된다. 일부 예들에서, 비-DC ALF 계수들의 합은 먼저 2n 으로 라운딩되며, 예를 들어 합 126 은 128 (27, 여기서 n = 7) 로 라운딩된다. 그 후, 양자화 비트들의 수는 8 과 n 사이의 차로서 (예를 들어, 비디오 디코더 (30) 의 ALF 유닛 (91) 에 의해) 도출된다. 이전의 예에서, n = 7 이다. 따라서, 양자화 비트들의 수는 1 이다.
여러 예들에서, 필터에 대해, 필터 계수들이 단지 DC 계수만을 가지는지, 따라서 필터가 단지 오프셋 값만을 포함하는지 여부에 대한 정보가 (예를 들어, 비디오 인코더 (20) 에 의해) 시그널링된다. 이러한 경우에, DC 외의 다른 필터 계수는 시그널링되지 않는다. 일부 예들에서, 단지 DC 계수만이 존재하고 다른 계수들은 필터에 대해 존재하지 않는 경우들에서, DC 계수는 화소의 유닛, 또는 "유닛 화소 값" 에서 시그널링된다. 일부 예들에서, DC 및 다른 필터 계수들은 더 높은 정확성, 예를 들어, 유닛 화소 값의 1/256 로 시그널링된다 (이 경우에, "1" 이 값 256 으로 정규화된다).
여러 예들에서, 필터에 대해, (도 2e 의 먼 좌측에 도시된 5x5 다이아몬드 필터에서의 계수 C6 와 같은) 중심 필터 계수는 다른 필터 계수들과는 상이하게 시그널링된다. 예를 들어, 다른 계수들은 명시적으로 시그널링되는 반면, 중심 계수는 차이 (differential) 코딩되며, 중심 계수 값과 디폴트 값 사이의 차이만이 코딩되는 것을 의미한다. 디폴트 값은 그것이 일 (1) 이도록 정규화되도록 선택된다. 예를 들어, 계수들이 부동 값 1.0 이 정수 256 에 의해 표현되도록 양자화되는 경우, 계수들은 [F0, F1,.., Fn -1]/256 이다. 일부 예들에서, (예를 들어, Fn - 1 로서 표시될 수도 있는) 중심 계수는 다음과 같이 코딩된다:
Figure pct00008
비디오 인코더 (20) 에서, v=Fn -1-256 이고, v 는 추가로 코딩된다. 비디오 디코더 (30) 는 v 의 값을 파싱할 수도 있고, Fn -1 은 v+256 이 되도록 (예를 들어, ALF 유닛 (91) 에 의해) 도출된다.
Figure pct00009
대안적으로, 비디오 인코더 (20) 에서, v=Fn -1-(256-sum(F0, F1,.., Fn -2) 이고, v 는 추가로 코딩된다. 비디오 디코더 (30) 는 v 의 값을 파싱할 수도 있고, Fn -1 은 (v+(256-sum(F0, F1,.., Fn -2))) 이 되도록 (예를 들어, ALF 유닛 (91) 에 의해) 도출된다.
여러 예들에서, 다수의 그룹들이 CTU 에서 사용되는 경우들에서, 1차원 그룹 병합 대신에 2차원 그룹 병합이 사용될 수도 있다. 하나의 구현에서, 임의의 2 개의 그룹들이 하나로 병합되는 것을 허용하는 것 대신에, 단지 수평 또는 수직 이웃 그룹들만이 병합될 수도 있다. 하나의 예로서, 도 2 를 참조하면, 그룹들이 그들의 순서 식별자 (예를 들어, 먼저 그룹 (221), 그 후 그룹 (222) 등) 에 기초하여 송신되는 경우, 그룹 (228) 은 그룹 (227) 또는 그룹 (223) 과 병합될 수도 있다. 그룹 (228) 은 그룹들 (229-235) 이 아직 시그널링되지 않았기 때문에 이들 그룹들 (229-235) 중 임의의 것과 병합되지 않을 수도 있다. 더욱이, 그룹 (228) 은 그룹들 (221, 222, 또는 225-227) 이 수평 또는 수직 이웃들이 아니기 때문에 이들 그룹들과 병합되지 않을 수도 있다.
일부 예들에서, 병합 후에, ALF 파라미터들의 단 하나의 세트만이 각각의 병합된 그룹에 대해 시그널링된다. BA 분류가 적용되는 경우, CTU 내의 화소들은 수개의 그룹들로 카테고리화된다. 그룹 인덱스들은 2D 맵에서 순서화된다. 2D 그룹 병합의 경우, 송신 순서가 좌상측 위치로부터 시작된다고 가정하면, 그룹은 2D 맵에서 그것의 좌측 또는 상측 이웃들로 병합될 수도 있다. 이러한 구현의 추가의 상세들이 이하에 설명된다.
여러 예들에서, 1차원 그룹 병합은 여전히 CTU 내에서 사용될 수 있다. 그러나, (활동 및 방향의) 2차원 특성들은 상이한 방식으로 1차원 그룹 인덱스로 변환될 수도 있다. 초기 필터/그룹 인덱스는 다음의 원리를 따라 설계된다: 2 개의 인접한 필터들 (즉, 인접한 인덱스들을 갖는 2 개의 필터들) 은 인접한 활동들 또는 인접한 방향들을 가져야 한다. 필터는 그것의 인접한 이웃으로만 병합될 수도 있다. 각각 블록 b 의 방향 및 활동으로서 Dirb 및 Actb 를 표시하고, Dirb 는 0 내지 (M-1) 의 범위에 있을 수 있고, Actb 는 0 내지 (N-1) 의 범위에 있을 수 있으며, 즉 많아야 M 개의 방향들 및 N 개의 활동들이 존재한다고 가정하라. 그러면, 블록 b 의 그룹 인덱스는 다음으로서 계산된다: 단지 Dirb * N+Actb 대신에, Dirb * N + (Dirb % 2 == 1 ? N - 1 - Actb : Actb). 다른 예에서, 블록 b 의 그룹 인덱스는 다음으로서 계산된다: Actb * M + (Actb % 2 == 1 ? M - 1 - Dirb : Dirb).
여러 예들에서, ALF 가 가능하게 되고, CTU 가 큰 사이즈, 예를 들어 256x256 을 갖는 경우, CU/PU 사이즈는 64x64 와 같은 제 2 사이즈보다 크지 않도록 추가로 제약될 수도 있다. 따라서, 제 2 사이즈 (예를 들어, 64x64) 보다 큰 사이즈에 대응하는 노드의 splitting_flag 신택스 엘리먼트는 일 (1) 의 값으로 설정되어야 한다. 노드가 제 2 사이즈보다 큰 사이즈에 대응하는 경우에, 플래그가 1 이도록 시그널링될 수도 있거나, 또는 그러한 플래그의 시그널링이 회피될 수 있고 그것이 이 경우에 1 이도록 도출된다.
여기에 기술된 여러 예들은 화소/블록 분류에 대한 여러 방법들을 이용한다. 일부 예들에서, 분류는 재구성된 화소 값들에 기초할 수도 있다. 여러 예들에서, CTU ALF 코딩 모드는 소정 수의 방향들을 나타내기 위해 CTU 레벨에서 시그널링된다. 화소 그레디언트는 그 방향들을 따라 계산된다. 그 후, 화소들은 그레디언트에 따라 카테고리화된다.
일부 예들에서, 필터들의 그룹으로부터 필터를 선택하기 위해 사용되는 분류는 CU 코딩 모드, 양자화, 또는 변환과 같은 이전에 코딩된 정보에 기초할 수도 있다. 일부 예들에서, CTU 내에서, 동일한 CU 코딩 모드를 갖는, 또는 동일한 CU 사이즈를 갖는, 또는 동일한 변환 정보 (예를 들어, 사이즈, 타입) 를 갖는 블록들에서의 화소들은 동일한 카테고리들로서 분류되며, 이는 화소들이 동일한 필터 (예를 들어, 동일한 사이즈, 동일한 형상, 동일한 계수들 등) 를 사용하여 필터링되는 것을 의미한다. 여러 분류들이, 예를 들어, 도 2 에 대해 설명된 분류 기법들을 대체할 수도 있거나 그러한 분류 기법들과 함께 사용될 수도 있다.
일부 예에서, CTU ALF 루마 모드들 및 크로마 모드들의 수가 SPS, PPS, 또는 슬라이스 헤더에서와 같이, 비트스트림에서 별도로 시그널링될 수도 있다. 여러 예들에서, CTU ALF 루마 모드들 및 크로마 모드들의 수들은 동일할 수도 있고, 단지 하나의 수만이 SPS, PPS, 또는 슬라이스 헤더에서와 같이, 비트스트림에서 시그널링된다. 이러한 콘텍스트에서, 루마 모드들 및 크로마 모드들은 화소 분류들을 결정하기 위한 모드들을 나타낸다. 이용가능한 모드들의 수는, 예를 들어, 더 높은 레벨 (예를 들어, SPS, PPS, 슬라이스 헤드 등) 에서 시그널링될 수도 있고, 실제의 모드들은 CTU 레벨에서 시그널링될 수도 있다. 분류 모드들의 예들은 활동-방향 모드, CU 코딩 모드-기반 분류 모드, 변환 정보-기반 분류 모드, 및 다른 그러한 분류 모드들을 포함한다. 일부 구현들에서, SAO 는 마찬가지로 분류 모드로 고려될 수도 있다.
여러 예들에서, 패딩이 이용된다. 일부 예들에서, CTU, 또는 CTU 행, 또는 슬라이스, 또는 타일, 또는 화상 경계들 밖의 화소들이 분류 또는 필터링 프로세스를 위해 필요하고 그 화소들이 이용가능하지 않는 경우, 내삽 프로세스에서 사용되는 패딩이 적용될 수도 있다.
여러 예들에서, CTU ALF 가 케스케이드될 수도 있다. 즉, ALF 프로세스가 예를 들어 이미 필터링된 CTU 에 대해 필터링 동작을 수행함으로써 CTU 에 대해 다수 회 적용될 수도 있다. 제 2 라운드 ALF 프로세스에 대한 입력은 제 1 라운드 ALF 프로세스의 출력이다. 상이한 CTU ALF 계수들 및 제어 정보는 필터링의 상이한 라운드들에 대해 시그널링될 수도 있다. 일부 예들에서, 최대 라운드들의 수는 SPS, PPS, 또는 슬라이스 헤더에서와 같이, 비트스트림에서 시그널링될 수도 있다. 일부 예들에서, CTU ALF 가 현재의 라운드에서 CTU 에 대해 오프인 경우, 비록 비트스트림에서 시그널링된 라운드들의 수가 도달되지 않았더라도, CTU ALF 는 이 CTU 에 대해 다음의 라운드에 대해 오프일 것이 요구된다.
여러 예들에서, 블록 레벨 (BA) 분류가 CTU 에 대한 CTU ALF 모드로서 선택된다. 여러 예들에서, 2차원 (2D) 그룹 병합이 사용된다. 일 예에서, BA 분류에 따르면, CTU 에서의 화소들은 5x3 그룹들로 카테고리화된다. 초기 그룹 인덱스들은 다음과 같이 2D 맵 내로 넣어질 수도 있고 (아래의 표 3 참조), 여기서 수평 및 수직 방향들은 상술된 바와 같이 활동 및 방향 값들에 대응한다.
0 1 2 3 4
5 6 7 8 9
10 11 12 13 14
표 3
이러한 예에서, 임의의 그룹이 그것의 좌측 또는 상측 이웃 그룹에 병합하도록 허용된다. 레이트-왜곡 코스트 또는 다른 측정에 기초하여, 15 개의 그룹들이 결국 아래의 표 4 에 도시된 바와 같이 4 개의 그룹들로 병합될 수도 있고, 여기서 그 수들은 새로운 그룹 인덱스들을 나타낸다. 예를 들어, 새로운 그룹 #0 은 옛 그룹 #0, (옛 #0 으로 위로 병합된) #5 및 (옛 #5 로 좌측으로 병합된) #6 에 의해 병합된다.
0 1 1 1 1
0 0 1 1 9
10 10 1 1 9
표 4
그룹 병합 후에, (비디오 인코더 (20) 와 같은) 비디오 인코더는 새로운 그룹 #0, #1, #9 및 #10 에 대한 필터 계수들을 시그널링할 수도 있다. 다른 경우에는, 비디오 인코더 (30) 는 좌측 병합 또는 상측 병합과 같이 단지 병합 표시자들만을 시그널링할 수도 있다.
여러 예들에서, 2 개의 CTU ALF 모드들, 즉, Edge_VH 및 Edge_Diag 가 정의된다. Edge_VH 가 사용되는 경우, CTU 에서의 화소들은 5 개의 그룹들로 카테고리화된다.
Figure pct00010
가 재구성된 루마/크로마 샘플을 나타내게 하면, 분류는 다음과 같이 수행된다:
Figure pct00011
Edge_Diag 가 사용되는 경우, CTU 에서의 화소들은 5 개의 그룹들로 카테고리화된다.
Figure pct00012
가 재구성된 루마/크로마 샘플을 나타내게 하면, 분류는 다음과 같이 수행된다:
Figure pct00013
다른 예에서, 5 개의 CTU ALF 모드들, 즉, SAO 분류에서 수평, 수직, 45 도 대각선, 135 도 대각선 EO 클래스들과 유사한 Edge_0, Edge_90, Edge_45, Edge_135 가 정의된다. SAO 분류들은 C.-M. Fu, E. Alshina, A. Alshin, Y.-W. Huang, C.-Y. Chen, C.-Y. Tsai, C.-W. Hsu, S.-M. Lei, J.-H. Park, W.-J. Han, “Sample Adaptive Offset in the HEVC Standard”, IEEE Transactions on Circuits and Systems for Video Technology, Vol. 22, No. 12, Dec. 2012 (이하, “HEVC 표준에서의 SAO”) 에서 기술되며, 그의 전체의 내용들은 참조에 의해 여기에 포함된다.
리스트된 모드들 중 임의의 것이 사용되는 경우, CTU 에서의 화소들은 5 개의 그룹들로 분류된다. 처음 4 개의 그룹들에 대한 분류는 SAO 분류에서의 그것들과 동일하다 (“HEVC 표준에서의 SAO” 의 표 1). 처음 4 개의 그룹들 내에 존재하지 않는 화소들은 다섯번째 그룹에 놓인다. 상기 예들에서, Edge_VH, Edge_Diag, 및 Edge_0, Edge_90, Edge_45, Edge_135 는 또한 BA 모드와 함께 사용될 수 있다.
하나의 예에서, 각각의 4x4 블록은 25 개의 그룹들 중 하나로 분류된다. 분류에서, 수직, 수평, 45 도, 및 135 도 방향들을 따르는 화소 그레디언트가 사용된다. 4x4 블록 b 의 경우, Vi,j 및 Hi,j 는 b 에 속하는 화소 위치 (i, j) 의, 각각, 수직 및 수평 그레디언트들을 나타낼 수도 있고, Actb 는 (상술된 바와 같은) 블록 b 의 활동을 나타낼 수도 있다.
Figure pct00014
Figure pct00015
는 화소 위치 (i, j) 의 방향들 45 도 및 135 도를 따른 그레디언트를 나타낼 (또는 그레디언트에 대한 도출을 제공할) 수도 있다. 블록 b 의 평균 그레디언트들은 다음과 같이 정의될 수도 있다:
Figure pct00016
블록 b 의 방향 Dirb 는 다음과 같이 정의된다:
Figure pct00017
블록 b 의 그룹 인덱스는 다음으로서 정의된다:
Dirb × 5 + (Dirb % 2 ? 4 - Actb : Actb)
여러 예들에서, 신택스 및 시맨틱스들은 HEVC (H.265) 사양 위에서 구현된다. 새롭게 제안된 부분들은 아래의 신택스 표들 (즉, 여기에 포함된 바와 같은 표 5 내지 표 8) 에서 이탤릭체로 되어 있다.
Figure pct00018
표 5 - 시퀀스 파라미터 세트 ( SPS ) RBSP 신택스
여기서:
1 과 동일한 alf _ ctu _enabled_flag 는 CTU 레벨 ALF 프로세스가 SAO 프로세스 후에 재구성된 화상에 적용되는 것을 특정한다. 0 과 동일한 alf_ctu_enabled_flag 는 CTU 레벨 ALF 프로세스가 SAO 프로세스 후에 재구성된 화상에 적용되지 않는 것을 특정한다.
alf _ ctu _ num _ luma _mode_ minus1 은 다음과 같이 CTU 레벨 ALF 의 루마 모드의 수를 특정한다: AlfModeNumY = alf_ctu_num_luma_mode_minus1 + 1
alf _ ctu _ num _ chroma _mode_ minus1 은 다음과 같이 CTU 레벨 ALF 의 크로마 모드의 수를 특정한다: AlfModeNumC = alf_ctu_num_chroma_mode_minus1 + 1
ctu _ alf _ num _merge_ cand 플러스 1 은 CTU ALF 병합에 대한 ALF 후보들의 수를 특정한다. ctu_alf_num_merge_cand 이면, 현재의 CTU 의 ALF 파라미터들을 예측하기 위해 어떠한 후보 리스트도 포뮬레이팅되지 않는다. 존재하지 않는 경우, ctu_alf_num_merge_cand 는 0 과 동일한 것으로 추론된다.
Figure pct00019
표 6 - 코딩 트리 유닛 ( CTU ) 신택스
Figure pct00020
표 7 - CTU 적응적 루프 필터 ( ALF ) 신택스
여기서:
1 과 동일한 alf _merge_flag 는 현재의 CTU 의 ALF 파라미터들이 공간적 또는 시간적 이웃 CTU 에 병합되는 것을 특정한다. 0 과 동일한 alf_merge_flag 는 현재의 CTU 의 ALF 파라미터들이 비트스트림에서 시그널링되는 것을 특정한다.
alf _merge_index 는 CTU ALF 병합 후보의 인덱스를 특정한다. 존재하지 않는 경우, alf_merge_index 는 0 과 동일한 것으로 추론된다.
1 과 동일한 alf _ luma _enabled_flag 는 루마 ALF 가 현재의 CTU 에 적용되고 루마 ALF 파라미터들이 현재의 CTU 를 위해 시그널링되는 것을 특정한다. 0 과 동일한 alf_luma_enabled_flag 는 루마 ALF 가 현재의 CTU 에 적용되지 않고 루마 ALF 파라미터들이 현재의 CTU 를 위해 시그널링되지 않는 것을 특정한다.
alf _ luma _mode 는 현재의 CTU 에서 루마 화소들을 위해 사용될 분류 방법을 특정한다. alf_luma_mode 는 AlfModeNumY 보다 더 크지 않을 것이다. 분류 방법들에 관한 추가의 상세들은 위의 5.2 에서 발견될 수도 있다.
alf _ luma _shape 는 현재의 CTU 에 대한 루마 필터 형상을 특정한다.
1 과 동일한 alf _ luma _filter_symmetry 는 루마 필터가 현재의 CTU 에 대해 원형 대칭인 것을 특정한다. 0 과 동일한 alf_luma_filter_symmetry 는 루마 필터가 현재의 CTU 에 대해 대칭이 아닌 것을 특정한다.
alf _ luma _filter_merge_idc 는 현재의 루마 필터가 AlfLumaMergeMap 에서 그것의 좌측 또는 상측 루마 필터로 병합되는지 여부를 특정한다. AlfLumaMergeMap 은 상술된 바와 같은 그룹 병합 상태를 나타내고, alf_luma_mode 에 의존한다. 0 과 동일한 alf_luma_filter_merge_idc 는 그 그룹이 상측 또는 좌측 그룹으로부터 병합되지 않는 것을 특정한다. 1 과 동일한 alf_luma_filter_merge_idc 는 그 그룹이 좌측 그룹으로부터 병합되지 않는 것을 특정한다. 2 와 동일한 alf_luma_filter_merge_idc 는 그 그룹이 상측 그룹으로부터 병합되지 않는 것을 특정한다.
1 과 동일한 alf _ chroma _enabled_flag 는 크로마 ALF 가 현재의 CTU 에 적용되고 크로마 ALF 파라미터들이 현재의 CTU 에 대해 시그널링되는 것을 특정한다. 0 과 동일한 alf_chroma_enabled_flag 는 크로마 ALF 가 현재의 CTU 에 적용되지 않고 크로마 ALF 파라미터들이 현재의 CTU 를 위해 시그널링되지 않는 것을 특정한다.
alf _ chroma _mode 는 현재의 CTU 에서 크로마 화소들을 위해 사용될 분류 방법을 특정한다.
alf _ chroma _filter_merge_idc 는 현재의 크로마 필터가 AlfChromaMergeMap 에서 그것의 좌측 또는 상측 크로마 필터로 병합되는지 여부를 특정한다. AlfChromaMergeMap 은 alf_chroma_mode 에 의존한다.
Figure pct00021
표 8 - CTU ALF 계수 신택스
여기서:
1 과 동일한 alf _filter_dc_only_flag 는 현재의 필터가 단지 DC 계수만 갖는 것을 특정한다. 모든 다른 계수들은 제로이다. 0 과 동일한 alf_filter_dc_only_flag 는 현재의 필터가 DC 계수에 더하여 비제로 계수들을 갖는 것을 특정한다.
alf _filter_ coeff _dc 는 현재의 필터의 DC 계수를 특정한다.
alf _filter_ quant _bit 는 필터 계수 양자화에서 사용되는 비트들의 수를 특정한다.
alf _filter_ coeff 는 현재의 필터의 비-DC 계수를 특정한다. 존재하지 않는 경우, ctu_alf_filter_coeff 는 0 과 동일한 것으로 추론된다.
도 4 는 본 개시에 기재된 기법들을 구현할 수도 있는 예시적인 비디오 인코더 (20) 를 예시하는 블록도이다. 비디오 인코더 (20) 는, 비디오 슬라이스들 내의 비디오 블록들의 인트라- 및 인터-코딩을 수행할 수도 있다. 인트라 코딩은, 정해진 비디오 프레임 또는 화상 내의 비디오에서 공간적 중복성을 감소 또는 제거하기 위하여 공간적 예측에 의거한다. 인터 코딩은 비디오 시퀀스의 인접 프레임들 또는 화상들 내의 비디오에서 시간적 중복성을 감소 또는 제거하기 위하여 시간적 예측에 의거한다. 인트라 모드 (I 모드) 는 여러 공간 기반 압축 모드들 중 어느 것을 나타낼 수도 있다. 인터 모드들, 이를테면 단방향 예측 (P 모드) 또는 양방향 예측 (B 모드) 은, 여러 시간 기반 압축 모드들 중 어느 것을 나타낼 수도 있다.
도 4 의 예에서, 비디오 인코더 (20) 는, 비디오 데이터 메모리 (33), 파티셔닝 유닛 (35), 예측 프로세싱 유닛 (41), 합산기 (50), 변환 프로세싱 유닛 (52), 양자화 유닛 (54), 엔트로피 인코딩 유닛 (56) 을 포함한다. 예측 프로세싱 유닛 (41) 은 모션 추정 유닛 (MEU) (42), 모션 보상 유닛 (MCU) (44) 및 인트라 예측 유닛 (46) 을 포함한다. 비디오 블록 재구성을 위해, 비디오 인코더 (20) 는 또한 역 양자화 유닛 (58), 역 변환 프로세싱 유닛 (60), 합산기 (62), ALF 유닛 (64), 및 디코딩된 화상 버퍼 (DPB) (66) 를 포함한다.
도 4 에 도시된 바와 같이, 비디오 인코더 (20) 는 비디오 데이터를 수신하고 비디오 데이터 메모리 (33) 에 그 수신된 비디오 데이터를 저장한다. 비디오 데이터 메모리 (33) 는 비디오 인코더 (20) 의 컴포넌트들에 의해 인코딩될 비디오 데이터를 저장할 수도 있다. 비디오 데이터 메모리 (33) 에 저장된 비디오 데이터는, 예를 들어, 비디오 소스 (18) 로부터 획득될 수도 있다. DPB (66) 는, 예를 들어, 인트라- 또는 인터-코딩 모드들에서 비디오 인코더 (20) 에 의한 비디오 데이터를 인코딩하는데 사용하기 위한 참조 비디오 데이터를 저장하는 참조 화상 메모리일 수도 있다. 비디오 데이터 메모리 (33) 및 DPB (66) 는 동기 DRAM (SDRAM), 자기저항 RAM (MRAM), 저항 RAM (RRAM), 또는 다른 타입의 메모리 디바이스들을 포함하는, 동적 랜덤 액세스 메모리 (SDRAM) 등의 다양한 메모리 디바이스들 중의 어느 것에 의해 형성될 수도 있다. 비디오 데이터 메모리 (33) 및 DPB (66) 는 동일한 메모리 디바이스 또는 별개의 메모리 디바이스들에 의해 제공될 수도 있다. 다양한 예들에서, 비디오 데이터 메모리 (33) 는 비디오 인코더 (20) 의 다른 컴포넌트들과 함께 온칩 (on-chip) 될 수도 있거나, 또는 그러한 컴포넌트들에 대해 오프칩 (off-chip) 될 수도 있다.
파티셔닝 유닛 (35) 은 비디오 데이터 메모리 (33) 로부터 비디오 데이터를 취출하고 비디오 데이터를 비디오 블록들로 파티셔닝한다. 이 파티셔닝은 또한, 예를 들어, LCU 및 CU 들의 쿼드트리 구조에 따른, 비디오 블록 파티셔닝 뿐만 아니라 슬라이스들, 타일들 또는 다른 더 큰 유닛들로의 파티셔닝을 포함할 수도 있다. 비디오 인코더 (20) 는 일반적으로, 인코딩될 비디오 슬라이스 내의 비디오 블록들을 인코딩하는 컴포넌트들을 예시한다. 슬라이스는, 다수의 비디오 블록들로 (그리고 가능하게는 타일들로 지칭되는 비디오 블록들의 세트들로) 분할될 수도 있다. 예측 프로세싱 유닛 (41) 은, 복수의 가능한 코딩 모드들 중 하나, 이를테면 복수의 인트라 코딩 모드들 중 하나, 또는 복수의 인터 코딩 모드들 중 하나를 현재 비디오 블록을 위해 에러 결과 (예를 들어, 코딩 레이트 및 왜곡의 레벨) 에 기초하여 선택할 수도 있다. 예측 프로세싱 유닛 (41) 은 결과적인 인트라, 또는 인터 코딩된 블록을 합산기 (50) 에 제공하여 레지듀얼 블록 데이터를 생성하고 합산기 (62) 에 제공하여 참조 화상으로서의 사용을 위해 인코딩된 블록을 재구성할 수도 있다.
예측 프로세싱 유닛 (41) 내의 인트라 예측 유닛 (46) 은 코딩될 현재 블록과 동일한 프레임 또는 슬라이스에서의 하나 이상의 이웃 블록들에 대해 현재 비디오 블록의 인트라 예측 코딩을 수행하여 공간적 압축을 제공할 수도 있다. 예측 프로세싱 유닛 (41) 내의 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 은 하나 이상의 참조 화상들에서의 하나 이상의 예측 블록들에 대해 현재 비디오 블록의 인터 예측 코딩을 수행해 시간적 압축을 제공한다.
모션 추정 유닛 (42) 은, 비디오 시퀀스에 대해 미리결정된 패턴에 따라 비디오 슬라이스를 위한 인터 예측 모드를 결정하도록 구성될 수도 있다. 미리결정된 패턴은, P 슬라이스들 또는 B 슬라이스들로서 시퀀스에서 비디오 슬라이스들을 표기할 수도 있다. 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 은 고도로 통합될 수도 있지만, 개념적인 목적을 위해 따로따로 예시되어 있다. 모션 추정 유닛 (42) 에 의해 수행되는, 모션 추정은, 비디오 블록들을 위한 모션을 추정하는 모션 벡터들을 생성하는 프로세스이다. 예를 들어, 모션 벡터는, 참조 화상 내의 예측 블록에 대해 현재 비디오 프레임 또는 화상 내의 비디오 블록의 PU 의 변위를 나타낼 수도 있다.
예측 블록은, 절대 차이의 합 (sum of absolute difference; SAD), 제곱 차이의 합 (sum of square difference; SSD), 또는 다른 차이 메트릭들에 의해 결정될 수도 있는, 픽셀 차이에 관하여, 코딩될 비디오 블록의 PU에 밀접하게 매치하는 것으로 구해진 블록이다. 일부 예들에서, 비디오 인코더 (20) 는 DPB (66) 에 저장된 참조 화상들의 서브 정수 픽셀 위치들을 위한 값들을 계산할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 참조 화상의 1/4 픽셀 위치들, 1/8 픽셀 위치들, 또는 다른 분수 픽셀 위치들의 값들을 보간할 수도 있다. 그러므로, 모션 추정 유닛 (42) 은, 전 (full) 픽셀 위치들 그리고 분수 픽셀 위치들에 대해 모션 탐색을 수행하고 분수 픽셀 정밀도로 모션 벡터를 출력할 수도 있다.
모션 추정 유닛 (42) 은, PU 의 위치와 참조 화상의 예측 블록의 위치를 비교함으로써 인터 코딩된 슬라이스에서 비디오 블록의 PU를 위한 모션 벡터를 계산한다. 참조 화상은, 제 1 참조 화상 리스트 (리스트 0) 또는 제 2 참조 화상 리스트 (리스트 1) 로부터 선택될 수도 있고, 이들의 각각은 DPB (66) 에 저장된 하나 이상의 참조 화상들을 식별한다. 모션 추정 유닛 (42) 은 계산된 모션 벡터를 엔트로피 인코딩 유닛 (56) 및 모션 보상 유닛 (44) 으로 전송한다.
모션 보상 유닛 (44) 에 의해 수행된 모션 보상은, 모션 추정에 의해 결정된 모션 벡터에 기초한 예측 블록의 페칭 (fetching) 또는 생성을 수반할 수도 있으며, 가능하게는 서브-픽셀 정밀도로 보간을 수행한다. 현재 비디오 블록의 PU를 위한 모션 벡터의 수신시에, 모션 보상 유닛 (44) 은, 모션 벡터가 참조 화상 리스트들 중 하나에서 가리키는 예측 블록을 로케이팅할 수도 있다. 비디오 인코더 (20) 는, 코딩되는 현재 비디오 블록의 픽셀 값들로부터 예측 블록의 픽셀 값들을 감산하여, 픽셀 차이 값들을 형성함으로써, 레지듀얼 비디오 블록을 형성한다. 픽셀 차이 값들은, 블록을 위한 레지듀얼 데이터를 형성하고, 루마 및 크로마 차이 성분들 양자 모두를 포함할 수도 있다. 합산기 (50) 는 이 감산 연산을 수행하는 컴포넌트 또는 컴포넌트들을 나타낸다. 모션 보상 유닛 (44) 은 또한, 비디오 슬라이스의 비디오 블록들을 디코딩함에 있어서 비디오 디코더 (30) 에 의한 사용을 위해 비디오 블록들 및 비디오 슬라이스와 연관된 신택스 엘리먼트들을 생성할 수도 있다.
예측 프로세싱 유닛 (41) 이 인터 예측 또는 인트라 예측을 통해 현재 비디오 블록을 위한 예측 블록을 생성한 후에, 비디오 인코더 (20) 는 현재 비디오 블록으로부터 예측 블록을 감산함으로써 레지듀얼 비디오 블록을 형성한다. 레지듀얼 블록에서 레지듀얼 비디오 데이터는 하나 이상의 TU 들에 포함될 수도 있고 변환 프로세싱 유닛 (52) 에 적용될 수도 있다. 변환 프로세싱 유닛 (52) 은 DCT (discrete cosine transform) 또는 개념적으로 유사한 변환과 같은 변환을 이용하여 레지듀얼 변환 계수들로 레지듀얼 비디오 데이터를 변환한다. 변환 프로세싱 유닛 (52) 은 레지듀얼 비디오 데이터를 픽셀 도메인으로부터 변환 도메인, 이를테면 주파수 도메인으로 변환할 수도 있다.
변환 프로세싱 유닛 (52) 은 양자화 유닛 (54) 에 결과적인 변환 계수들을 전송할 수도 있다. 양자화 유닛 (54) 은 변환 계수들을 양자화하여 비트 레이트를 더 감소시킨다. 양자화 프로세스는 계수들의 일부 또는 전부와 연관된 비트 깊이를 감소시킬 수도 있다. 양자화의 정도는 양자화 파라미터를 조정함으로써 변경될 수도 있다. 다음으로, 일부 예들에서, 양자화 유닛 (54) 은 양자화된 변환 계수들을 포함하는 매트릭스의 스캔을 수행할 수도 있다. 대안적으로, 엔트로피 인코딩 유닛 (56) 은 스캔을 수행할 수도 있다.
양자화 다음에, 엔트로피 인코딩 유닛 (56) 은 양자화된 변환 계수들을 엔트로피 인코딩한다. 예를 들어, 엔트로피 인코딩 유닛 (56) 은 CAVLC (context adaptive variable length coding), CABAC (context adaptive binary arithmetic coding), SBAC (syntax-based context-adaptive binary arithmetic coding), PIPE (probability interval partitioning entropy) 코딩 또는 또 다른 엔트로피 인코딩 방법론 또는 기법을 수행할 수도 있다. 엔트로피 인코딩 유닛 (56) 에 의한 엔트로피 인코딩 다음에, 인코딩된 비트스트림은, 비디오 디코더 (30) 로 송신되거나 또는 비디오 디코더 (30) 에 의한 나중의 송신 또는 취출을 위해 보관될 수도 있다. 엔트로피 인코딩된 유닛 (56) 은 또한, 모션 벡터들 그리고 코딩되고 있는 현재 비디오 슬라이스를 위한 다른 신택스 엘리먼트들을 엔트로피 인코딩할 수도 있다.
역 양자화 유닛 (58) 및 역 변환 프로세싱 유닛 (60) 은 역 양자화 및 역 변환을 각각 적용하여, 참조 화상의 참조 블록으로서 나중에 사용하기 위해 픽셀 도메인에서 레지듀얼 블록을 재구성한다. 모션 보상 유닛 (44) 은, 참조 화상 리스트들 중의 하나 내의 참조 화상들 중의 하나의 예측 블록에 레지듀얼 블록을 가산함으로써 참조 블록을 계산할 수도 있다. 모션 보상 유닛 (44) 은 또한 하나 이상의 보간 필터들을 그 재구성된 레지듀얼 블록에 적용하여, 모션 추정에 사용하기 위한 서브 정수 픽셀 값들을 산출할 수도 있다. 합산기 (62) 는 재구성된 레지듀얼 블록을 모션 보상 유닛 (44) 에 의해 생성되는 모션 보상된 예측 블록에 가산하여 재구성된 블록을 생성한다.
ALF 유닛 (64) 은 재구성된 블록 (예를 들어, 합산기 (62) 의 출력) 을 필터링하고, 참조 블록으로서의 사용들을 위해 DPB (66) 내에 그 필터링된 재구성된 블록을 저장한다. 참조 블록은 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 에 의해 참조 블록으로서 사용되어 후속 비디오 프레임 또는 화상에서 블록을 인터 예측할 수도 있다. 비록 도 4 에 명시적으로 도시되지는 않지만, 비디오 인코더 (20) 는 디블록 필터, 샘플 적응적 오프셋 (SAO) 필터, 또는 다른 타입의 루프 필터와 같은 추가적인 필터들을 포함할 수도 있다. 디블록 필터는, 예를 들어 재구성된 비디오로부터 블록키니스 아티팩트들을 제거하기 위해 블록 경계들을 필터링하는 디블록킹 필터링을 적용할 수도 있다. SAO 필터는 전체 코딩 품질을 향상시키기 위해 재구성된 화소 값들에 오프셋들을 적용할 수도 있다. 추가적인 루프 필터들 (인 루프 또는 포스트 루프) 이 또한 사용될 수도 있다.
비디오 인코더 (20) 의 다른 컴포넌트들과 함께 ALF 유닛 (64) 은 본 개시에 기술된 여러 기법들을 수행하도록 구성될 수도 있다. 예를 들어, 비디오 인코더 (20) 는 (i) 현재의 CTU 의 하나 이상의 공간적 이웃 CTU 들 또는 (ii) 현재의 CTU 의 하나 이상의 시간적 이웃 CTU 들 중 하나 이상으로부터 현재의 CTU 에 대한 ALF 정보를 획득하도록 구성될 수도 있다. 비디오 인코더 (20) 는 현재의 CTU 에 대한 획득된 ALF 정보에 적어도 부분적으로 기초하여 후보 리스트를 형성하고 그 후보 리스트로부터의 후보와 연관된 ALF 정보를 사용하여 현재의 CTU 에 대해 필터링 동작을 수행할 수도 있다. ALF 정보는 ALF 계수들 뿐아니라 분류 메트릭들에 대한 ALF 필터들의 맵핑을 포함할 수도 있다.
여러 예들에서, 비디오 인코더 (20) 는 새로운 ALF 정보를 결정하고, 비디오 데이터의 인코딩된 비트스트림에의 포함을 위해, 후보 리스트로부터의 후보와 연관된 인덱스를 포함하는 신택스 엘리먼트를 생성할 수도 있다. 비디오 인코더 (20) 는 또한, 비디오 데이터의 인코딩된 비트스트림에의 포함을 위해, 새로운 ALF 정보와 그 후보와 연관된 ALF 정보 사이의 차이를 식별하는 차이 정보를 생성할 수도 있다. 다른 예들에서, 비디오 인코더 (20) 는, 비디오 데이터의 인코딩된 비트스트림에의 포함을 위해, 후보 리스트로부터의 후보와 연관된 인덱스를 나타내는 신택스 엘리먼트를 생성할 수도 있으며, 이러한 경우에, ALF 필터 정보는 후보로부터 복사되고, 차이 정보는 생성되지 않는다.
하나 이상의 분류 메트릭들은 활동 메트릭 및 방향 메트릭을 포함할 수도 있거나 하나 이상의 화소들을 포함하는 CU 의 사이즈, 화소들을 포함하는 CU 의 코딩 모드, 하나 이상의 화소들에 대응하는 변환 유닛의 사이즈, 또는 하나 이상의 화소들에 대응하는 변환 유닛의 타입 중 하나 이상과 같은 다른 분류 메트릭들을 포함할 수도 있다.
여러 예들에서, 비디오 인코더 (20) 는 선택된 ALF 필터를 사용하여 CTU 의 하나 이상의 화소들에 대해 필터링 동작을 수행함으로써 필터링된 이미지를 생성할 수도 있다. 인코딩 동작의 디코딩 루프의 부분으로서, 비디오 인코더 (20) 는 선택된 ALF 필터를 사용하여 CTU 의 하나 이상의 화소들에 대해 필터링 동작으로 수행함으로써 필터링된 이미지를 생성하고, 디코딩된 화상 버퍼 (예를 들어, DPB (94)) 에 그 필터링된 이미지를 저장할 수도 있다. 하나 이상의 공간적 이웃 CTU 들은 화상 내의 현재의 CTU 에 인접하게 위치될 수도 있다. 하나 이상의 시간적 이웃 CTU 들은 각각의 참조 화상들에서 동일 장소에 배치된 CTU 들을 나타낼 수도 있다.
하나 이상의 공간적 이웃 CTU 들은 현재의 CTU 에 대한 좌측 이웃 CTU 및 상측 이웃 CTU 를 포함할 수도 있고, 하나 이상의 시간적 이웃 CTU 들은 세 (3) 개의 각각의 참조 화상들에 총 세 (3) 개의 시간적 이웃 CTU 들을 포함할 수도 있다. 하나 이상의 시간적 이웃 CTU 들은 하나 이상의 참조 화상들에서 동일 장소에 배치된 CTU 들일 수도 있다. 여러 예들에서, 하나 이상의 시간적 CTU 들은 동일한 슬라이스 타입을 갖는 하나 이상의 참조 화상들 내에 있도록 제한될 수도 있다.
여러 예들에서, 하나 이상의 시간적 CTU 들은 동일한 양자화 파라미터 (QP) 범위를 갖는 하나 이상의 참조 화상들 내에 있도록 제한된다.
일부 예들에서, 비디오 인코더 (20) 는 시간적 이웃 CTU 들이 연관되는 참조 인덱스들의 순서에 기초하여 시간적 이웃 CTU 들을 후보 리스트에 삽입함으로써 후보 리스트를 형성할 수도 있다. 일부 예들에서, 비디오 인코더 (20) 는 동일 장소에 배치된 시간적 이웃 CTU 들 이외의 각각의 참조 화상들 내의 하나 이상의 시간적 이웃 CTU 들을 포함하도록 후보 리스트를 형성할 수도 있다.
여러 예들에서, 비디오 인코더 (20) 는 2Nx2N CTU 인 현재의 CTU 에 대해 ALF 정보를 획득하고, 그 CTU 를 MxM 서브블록들로 분할하며, 여기서 2N 은 M 의 정수 배수이고, MxM 서브블록의 모션 벡터에 의해 로케이팅되는 하나 이상의 시간적 후보들을 각각의 MxM 서브블록에 대해 결정하고, 그 모션 벡터에 의해 로케이팅된 하나 이상의 시간적 후보들로부터 ALF 정보를 도출할 수도 있다. 여러 예들에서, 비디오 인코더 (20) 는 모션 벡터로 시간적 후보를 로케이팅할 수도 있다. 모션 벡터에 의해 포인팅되는 블록의 좌상측 코너를 커버하는 CTU 가 시간적 후보로서 사용될 수도 있거나, 모션 벡터에 의해 포인팅되는 블록의 중심 포인트를 커버하는 CTU 가 시간적 후보로서 사용될 수도 있다.
여러 예들에서, 비디오 인코더 (20) 는, 언제 양방향 예측이 서브블록에 대해 사용되는지, 단지 모션 벡터 0 만이 시간적 후보를 로케이팅하기 위해 사용되는지, 또는 단지 모션 벡터 1 만이 시간적 후보를 로케이팅하기 위해 사용되는지, 또는 어떤 모션 벡터들이 시간적 후보들을 로케이팅하기 위해 사용되는지가 SPS, PPS, 또는 슬라이스 헤더와 같은 비트스트림에서 시그널링될 수도 있다. 여러 예들에서, M 은 8, 4, 1, 또는 다른 값들로 설정될 수도 있다. 여러 예들에서, 후보 리스트 내의 엔트리들의 최대 수는 고정된 값일 수도 있고, 엔트리들의 최대 수는 인코딩된 비디오 비트스트림에서 표시될 수도 있다.
여러 예들에서, 후보 리스트 내의 엔트리들의 최대 수는 가변적인 값일 수도 있고, 엔트리들의 최대수는 인코딩된 비디오 비트스트림에 포함된 정보로부터 도출될 수도 있다. 여러 예들에서, 공간적/시간적 이웃들로부터의 단 2 개의 후보들이 후보 리스트에 포함될 수도 있다. 여러 예들에서, 시간적 후보들은 현재의 CTU 내의 블록들 중 적어도 하나가 인터 예측 모드로 코딩되는 경우에만 허용될 수도 있거나, 시간적 후보들은 인트라 코딩된 슬라이스의 CTU 에 대해 허용되지 않을 수도 있거나, 시간적 후보들은 인트라 코딩된 슬라이스의 CTU 에 대해 허용될 수도 있다.
여러 예들에서, 비디오 인코더 (20) 는 시간적 후보들이 고레벨 신택스, 예를 들어, PPS, 슬라이스 헤더, SPS 로서 또는 고레벨 신택스를 포함하는 다른 장소들에서 허용되거나 시그널링되지 않는지 여부를 시그널링할 수도 있다. 여러 예들에서, 비디오 인코더 (20) 는 하나 이상의 중복 후보들을 제거하기 위해 프루닝 프로세스를 적용함으로써 후보 리스트를 형성할 수도 있다.
공간적 또는 시간적 후보들이 허용되는 경우, 그 후보들은 미리 정의된 순서로 (프루닝을 갖거나 갖지 않는) 후보 리스트로 추가될 수도 있다. 그러한 순서는 현재의 CTU 에서의 일부 블록들이 소정의 양식으로 시간적 예측되는지 여부에 의존할 수도 있다. 예를 들어, 시간적 모션 예측이 일부 블록들에 적용되는 경우, 시간적 후보들은 리스트의 더 빠른 위치들로 놓일 수도 있고, ALF 는 전체 CTU 의 디코딩 후에 수행될 수도 있다. 시간적 모션 예측을 갖는 영역의 퍼센티지는 후보 리스트에서의 시간적 후보들의 상대적인 순서 및 위치를 결정하기 위해 사용될 수도 있다.
여러 예들에서, 시간적 후보들이 허용되는 경우, 단지 하나의 시간적 후보가 CTU 내의 코딩된 블록들의 참조 인덱스들에 기초하여 참조 화상들로부터 선택될 수도 있다. 가장 빈번하게 사용되는 화상이 선택될 수도 있거나, 단지 동일 장소에 배치된 시간적 CTU 만이 허용되는 경우, 현재의 CTU 의 그것에 대해 동일 장소에 배치된 영역 밖의 화소들을 가리키는 모션 벡터들은 빈도 계산을 위해 고려되지 않을 수도 있다.
여러 예들에서, 비디오 인코더 (20) 는 현재의 CTU 에 대한 획득된 ALF 정보 및 현재의 CTU 와 연관된 하나 이상의 SAO 파라미터들을 포함하도록 후보 리스트를 형성함으로써 후보 리스트를 형성할 수도 있다. 여러 예들에서, 비디오 인코더 (20) 는 독립적으로 그러나 동일한 병합 메커니즘을 사용하여 하나 이상의 SAO 파라미터들 및 ALF 파라미터들을 시그널링할 수도 있다. 여러 예들에서, 비디오 인코더 (20) 는 현재의 CTU 에 대한 획득된 ALF 정보와 연관된 필터 대칭성 정보를 인코딩함으로써 현재의 CTU 를 인코딩할 수도 있다.
여러 예들에서, 비디오 인코더 (20) 는 CTU 레벨에서 필터 대칭성 정보를 시그널링할 수도 있다. 필터 대칭성 정보는 대칭적 및 비대칭적 정보를 포함할 수도 있고, 필터들의 각 세트에 대해 시그널링될 수도 있다. 비디오 인코더 (20) 는 비대칭적 필터가 비트스트림의 관련된 부분들에서 사용될지 여부를 표시하기 위해 SPS/PPS/슬라이스 헤더에서 플래그를 시그널링할 수도 있다. 여러 예들에서, 비디오 인코더 (20) 는 현재의 CTU 에 대한 획득된 ALF 정보와 연관된 양자화 정보를 인코딩함으로써 현재의 CTU 를 인코딩할 수도 있다.
도 5 는 본 개시에 기재된 기법들을 구현할 수도 있는 예시적인 비디오 디코더 (30) 를 예시하는 블록도이다. 도 5 의 예에서, 비디오 디코더 (30) 는, 비디오 데이터 메모리 (78), 엔트로피 디코딩 유닛 (80), 예측 프로세싱 유닛 (81), 역 양자화 유닛 (86), 역 변환 프로세싱 유닛 (88), 합산기 (90), 및 DPB (94) 를 포함한다. 예측 프로세싱 유닛 (81) 은, 모션 보상 유닛 (82) 및 인트라 예측 유닛 (84) 을 포함한다. 비디오 디코더 (30) 는, 일부 예들에서, 도 4 로부터의 비디오 인코더 (20) 에 대해 설명된 인코딩 패스에 일반적으로 상반되는 디코딩 패스를 수행할 수도 있다.
디코딩 프로세스 동안, 비디오 디코더 (30) 는, 비디오 인코더 (20) 로부터 인코딩된 비디오 슬라이스의 비디오 블록들 및 연관된 신택스 엘리먼트들을 나타내는 인코딩된 비디오 비트스트림을 수신한다. 비디오 디코더 (30) 는 비디오 데이터 메모리 (78) 에 그 수신된 인코딩된 비디오 비트스트림을 저장한다. 비디오 데이터 메모리 (78) 는 비디오 디코더 (30) 의 컴포넌트들에 의해 디코딩될 비디오 데이터, 이를테면 인코딩된 비디오 비트스트림을 저장할 수도 있다. 비디오 데이터 메모리 (78) 에 저장된 비디오 데이터는, 예를 들어, 링크 (16) 를 통해, 저장 디바이스 (26) 로부터, 또는 카메라와 같은 로컬 비디오 소스로부터, 또는 물리적 데이터 저장 매체에 액세스하는 것에 의해 획득될 수도 있다. 비디오 데이터 메모리 (78) 는 인코딩된 비디오 비트스트림으로부터 인코딩된 비디오 데이터를 저장하는 코딩된 화상 버퍼 (CPB) 를 형성할 수도 있다. DPB (94) 는 예를 들어 인트라- 또는 인터-코딩 모드들에서 비디오 디코더 (30) 에 의해 비디오 데이터를 디코딩함에 있어서 사용하기 위해 참조 비디오 데이터를 저장하는 참조 화상 메모리일 수도 있다. 비디오 데이터 메모리 (78) 및 DPB (94) 는 DRAM, SDRAM, MRAM, RRAM, 또는 다른 타입의 메모리 디바이스들 등의 다양한 메모리 디바이스들 중의 어느 것에 의해 형성될 수도 있다. 비디오 데이터 메모리 (78) 및 DPB (94) 는 동일한 메모리 디바이스 또는 별개의 메모리 디바이스들에 의해 제공될 수도 있다. 다양한 예들에서, 비디오 데이터 메모리 (78) 는 비디오 디코더 (30) 의 다른 컴포넌트들과 함께 온칩 (on-chip) 될 수도 있거나, 또는 그러한 컴포넌트들에 대해 오프칩 (off-chip) 될 수도 있다.
비디오 디코더 (30) 의 엔트로피 디코딩 유닛 (80) 은 양자화된 계수들, 모션 벡터들, 및 다른 신텍스 엘리먼트들을 생성하기 위하여 비디오 데이터 메모리 (78) 에 저장된 비디오 데이터를 엔트로피 디코딩한다. 엔트로피 디코딩 유닛 (80) 은 모션 벡터들 및 다른 신택스 엘리먼트들을 예측 프로세싱 유닛 (81) 에 포워딩한다. 비디오 디코더 (30) 는 비디오 슬라이스 레벨 및/또는 비디오 블록 레벨에서 신택스 엘리먼트들을 수신할 수도 있다.
비디오 슬라이스가 인트라 코딩된 (I) 슬라이스로서 코딩될 때, 예측 프로세싱 유닛 (81) 의 인트라 예측 프로세싱 유닛 (84) 은, 현재 프레임 또는 화상의 이전에 디코딩된 블록들로부터 시그널링된 인트라 예측 모드 및 데이터에 기초하여 현재 비디오 슬라이스의 비디오 블록을 위한 예측 데이터를 생성할 수도 있다. 비디오 프레임이 인터 코딩된 슬라이스 (예를 들어, B 슬라이스 또는 P 슬라이스) 로서 코딩될 때, 예측 프로세싱 유닛 (81) 의 모션 보상 유닛 (82) 은 엔트로피 디코딩 유닛 (80) 으로부터 수신된 모션 벡터들 및 다른 신택스 엘리먼트들에 기초하여 현재 비디오 슬라이스의 비디오 블록을 위한 예측 블록들을 생성한다. 예측 블록들은 참조 화상 리스트들 중의 하나의 리스트 내의 참조 화상들 중의 하나의 화상로부터 생성될 수도 있다. 비디오 디코더 (30) 는 DPB (94) 에 저장된 참조 화상들에 기초하여 디폴트 (default) 구성 기법들을 이용하여 참조 프레임 리스트들, 리스트 0 및 리스트 1 을 구성할 수도 있다.
모션 보상 유닛 (82) 은, 모션 벡터들 및 다른 신택스 엘리먼트들을 파싱 (parsing) 하여 현재 비디오 슬라이스의 비디오 블록을 위한 예측 정보를 결정하고, 그 예측 정보를 사용하여, 디코딩되고 있는 현재 비디오 블록을 위한 예측 블록들을 생성한다. 예를 들어, 모션 보상 유닛 (82) 은 수신된 신택스 엘리먼트들의 일부를 사용하여 비디오 슬라이스의 비디오 블록들을 코딩하는데 사용된 예측 모드 (예를 들어, 인트라 또는 인터 예측), 인터 예측 슬라이스 타입 (예를 들어, B 슬라이스 또는 P 슬라이스), 슬라이스를 위한 참조 화상 리스트들의 하나 이상을 위한 구성 정보, 슬라이스의 각각의 인터 인코딩된 비디오 블록을 위한 모션 벡터들, 슬라이스의 각각의 인터 코딩된 비디오 블록을 위한 인터 예측 상태, 및 현재 비디오 슬라이스에서 비디오 블록들을 디코딩하기 위한 다른 정보를 결정한다.
모션 보상 유닛 (82) 은 또한, 보간 필터들에 기초하여 보간을 수행할 수도 있다. 모션 보상 유닛 (82) 은 비디오 블록들의 인코딩 동안 비디오 인코더 (20) 에 의해 이용되는 보간 필터들을 이용하여 참조 블록들의 서브 정수 픽셀들을 위한 보간된 값들을 계산할 수도 있다. 이 경우에, 모션 보상 유닛 (82) 은 수신된 신택스 엘리먼트들로부터 비디오 인코더 (20) 에 의해 이용된 보간 필터들을 결정하고, 그 보간 필터들을 이용하여 예측 블록들을 생성할 수도 있다.
역 양자화 유닛 (86) 은 비트스트림에서 제공되고 엔트로피 디코딩 유닛 (80) 에 의해 디코딩된 양자화된 변환 계수들을 역 양자화, 즉 탈양자화한다. 역 양자화 프로세스는, 양자화의 정도, 그리고, 마찬가지로, 적용되어야 하는 역 양자화의 정도를 결정하기 위해, 비디오 슬라이스에서 각 비디오 블록을 위해 비디오 인코더 (20) 에 의해 산출된 양자화 파라미터의 이용을 포함할 수도 있다. 역 변환 프로세싱 유닛 (88) 은, 픽셀 도메인에서 레지듀얼 블록들을 생성하기 위해 변환 계수들에, 역 변환, 예를 들어, 역 DCT, 역 정수 변환, 또는 개념적으로 유사한 역 변환 프로세스를 적용한다.
예측 프로세싱 유닛이 예를 들어 인트라 또는 인터 예측을 사용하여 현재 비디오 블록을 위한 예측 블록을 생성한 후에, 비디오 디코더 (30)는 역 변환 프로세싱 유닛 (88) 으로부터의 레지듀얼 블록들과 모션 보상 유닛 (82) 에 의해 생성된 대응하는 예측 블록들을 합산함으로써 재구성된 비디오 블록을 형성한다. 합산기 (90) 는 이 합산 연산을 수행하는 컴포넌트 또는 컴포넌트들을 나타낸다. ALF 유닛 (92) 은 예를 들어 본 개시에서 기술된 ALF 기법들 중 하나 이상을 사용하여 재구성된 비디오 블록을 필터링한다.
도 5 에 명시적으로 도시되지 않지만, 비디오 디코더 (30) 는 또한 디블록킹 필터, SAO 필터, 또는 다른 타입들의 필터들 중 하나 이상을 포함할 수도 있다. (코딩 루프 내 또는 코딩 루프 후의) 다른 루프 필터들이 또한 픽셀 천이들을 매끄럽게 하거나 또는 다른 방법으로 비디오 품질을 향상시키는데 사용될 수도 있다. 그 후, 정해진 프레임 또는 화상에서의 디코딩된 비디오 블록들은 DPB (94) 에 저장되고, 이것은 후속 모션 보상을 위해 사용된 참조 화상들을 저장한다. DPB (94) 는 도 1의 디스플레이 디바이스 (32) 와 같은 디스플레이 디바이스 상에 나중에 표출하기 위해 디코딩된 비디오를 저장하는 추가적인 메모리의 부분일 수도 있거나, 또는 그러한 메모리로부터 분리될 수도 있다.
비디오 디코더 (30) 의 다른 컴포넌트들과 함께 ALF 유닛 (92) 는 본 개시에 기술된 여러 기법들을 수행하도록 구성될 수도 있다. 예를 들어, 디코더 (30) 는 (i) 현재의 CTU 의 하나 이상의 공간적 이웃 CTU 들 또는 (ii) 현재의 CTU 의 하나 이상의 시간적 이웃 CTU 들 중 하나 이상으로부터 현재의 CTU 에 대한 ALF 정보를 획득하도록 구성될 수도 있다. 비디오 디코더 (30) 는 현재의 CTU 에 대한 획득된 ALF 정보에 적어도 부분적으로 기초하여 후보 리스트를 형성하고, 후보 리스트로부터의 후보와 연관된 ALF 정보를 사용하여 현재의 CTU 에 대해 필터링 동작을 수행할 수도 있다. ALF 정보는 ALF 계수들 뿐아니라 분류 메트릭들에 대한 ALF 필터들의 맵핑을 포함할 수도 있다.
여러 예들에서의 디코더 (30) 는 후보 리스트로부터의 후보와 연관된 인덱스를 포함하는 신택스 엘리먼트를 수신하고 후보 리스트로부터의 후보와 연관된 ALF 정보를 사용하여 현재의 CTU 에 대해 필터링 동작을 수행할 수도 있다.
여러 예들에서, 비디오 디코더 (30) 는 후보 리스트로부터의 후보와 연관된 인텍스를 포함하는 신택스 엘리먼트를 수신하고, 차이 정보를 수신하며, 새로운 ALF 정보를 결정하기 위해 후보와 연관된 ALF 정보에 그 차이 정보를 가산하고, 새로운 ALF 정보를 사용하여 현재의 CTU 에 대해 필터링 동작을 수행한다. ALF 필터 정보는, 예를 들어, 복수의 ALF 필터들을 포함할 수도 있고, 비디오 디코더 (30) 는 하나 이상의 분류 메트릭들에 기초하여 그 복수의 ALF 필터들로부터 ALF 필터를 선택하고 그 선택된 ALF 필터를 사용하여 CTU 의 하나 이상의 화소들에 대해 필터링 동작을 수행할 수도 있다.
일부 예에서, 하나 이상의 분류 메트릭들은 활동 메트릭 및 방향 메트릭을 포함할 수도 있다. 다른 예들에서, 하나 이상의 분류 메트릭들 ma 은 하나 이상의 화소들을 포함하는 CU 의 사이즈, 화소들을 포함하는 CU 의 코딩 모드, 하나 이상의 화소들에 대응하는 변환 유닛의 사이즈, 또는 하나 이상의 화소들에 대응하는 변환 유닛의 타입 중 하나 이상을 포함한다.
여러 예들에서, 비디오 디코더 (30) 는 선택된 ALF 필터를 사용하여 CTU 의 하나 이상의 화소들에 대해 필터링 동작을 수행함으로써 필터링된 이미지를 생성하고, 그 필터링된 이미지를 출력 (예를 들어, 디스플레이 또는 디스플레로 송신) 할 수도 있다. 여러 예들에서, 하나 이상의 공간적 이웃 CTU 들은 화상 내의 현재의 CTU 에 인접하여 위치될 수도 있다. 여러 예들에서, 하나 이상의 시간적 이웃 CTU 들은 각각의 참조 화상들에서 동일 장소에 배치된 CTU 들을 나타낼 수도 있다. 하나 이상의 공간적 이웃 CTU 들은 현재의 CTU 에 대해 좌측 이웃 CTU 및 상측 이웃 CTU 를 포함할 수도 있다. 하나 이상의 시간적 이웃 CTU 들은 세 (3) 개의 각각의 참조 화상들에서 총 세 (3) 개의 시간적 이웃 CTU 들을 포함할 수도 있다. 일부 예들에서, 하나 이상의 시간적 이웃 CTU 들은 하나 이상의 참조 화상들에서 동일 장소에 배치된 CTU 들일 수도 있다. 추가적으로 또는 대안적으로, 하나 이상의 시간적 CTU 들은 동일한 슬라이스 타입을 갖는 하나 이상의 참조 화상들 내에 있도록 제한될 수도 있다.
여러 예들에서, 하나 이상의 시간적 CTU 들은 동일한 양자화 파라미터 (QP) 범위를 갖는 하나 이상의 참조 화상들 내에 있도록 제한될 수도 있다. 여러 예들에서, 비디오 디코더 (30) 는 시간적 이웃 CTU 들이 연관되는 참조 인덱스들의 순서에 기초하여 후보 리스트로 시간적 이웃 CTU 들을 삽입함으로써 후보 리스트를 형성할 수도 있다. 여러 예들에서, 비디오 디코더 (30) 는 동일 장소에 배치된 시간적 이웃 CTU 들 이외에 각각의 참조 화상들에 하나 이상의 시간적 이웃 CTU 들을 포함하도록 후보 리스트를 형성함으로써 후보 리스트를 형성할 수도 있다.
여러 예들에서, 비디오 디코더 (30) 는 2Nx2N CTU 인 현재의 CTU 에 대한 ALF 정보를 획득하고, 그 CTU 를 MxM 서브블록들로 분할하며, 여기서 2N 은 M 의 정수 배수이고, MxM 서브블록의 모션 벡터에 의해 로케이팅되는 하나 이상의 시간적 후보들을 각각의 MxM 서브블록에 대해 결정하고, 그 모션 벡터에 의해 로케이팅된 하나 이상의 시간적 후보들로부터 ALF 정보를 도출할 수도 있다. 여러 예들에서, 비디오 디코더 (30) 는 모션 벡터로 시간적 후보를 로케이팅할 수도 있다. 모션 벡터에 의해 포인팅되는 블록의 좌상측 코너를 커버하는 CTU 가 시간적 후보로서 사용될 수도 있거나, 모션 벡터에 의해 포인팅되는 블록의 중심 포인트를 커버하는 CTU 가 시간적 후보로서 사용된다.
여러 예들에서, 후보 리스트 내의 엔트리들의 최대 수는 가변적인 값일 수도 있고, 엔트리들의 최대수는 인코딩된 비디오 비트스트림에 포함된 정보로부터 도출될 수도 있다. 여러 예들에서, 공간적/시간적 이웃들로부터의 단 2 개의 후보들만이 후보 리스트에 포함된다. 여러 예들에서, 시간적 후보들은 현재의 CTU 내의 블록들 중 적어도 하나가 인터 예측 모드로 코딩되는 경우에만 허용되거나, 시간적 후보들은 인트라 코딩된 슬라이스의 CTU 에 대해 허용되지 않거나, 시간적 후보들은 인트라 코딩된 슬라이스의 CTU 에 대해 허용된다.
여러 예들에서, 시간적 후보들은 시간적 모션 벡터 예측이 가능하게 되는 경우에만 허용될 수도 있다. 여러 예들에서, 시간적 후보(들) 은 슬라이스 헤더에서 시그널링되는 고정 또는 전용 참조 화상으로부터만 허용되고, 그 참조 화상은 시간적 모션 벡터 예측을 위해 사용되는 참조 화상이도록 더욱 제한될 수도 있다.
여러 예들에서, 비디오 디코더 (30) 는 시간적 후보들이 허용되는지 여부를 나타내는 시그널링 정보를 수신할 수도 있다. 그러한 시그널링은 고레벨 신택스, 예를 들어, PPS, 슬라이스 헤더, SPS 로서 또는 고레벨 신택스를 포함하는 다른 장소들에서 포함될 수도 있다. 비디오 디코더 (30) 는 하나 이상의 중복 후보들을 제거하기 위해 프루닝 프로세스를 적용함으로써 후보 리스트를 형성할 수도 있다.
여러 예들에서, 공간적 또는 시간적 후보들이 허용되는 경우, 비디오 디코더 (30) 는 이들 후보들을 미리 정의된 순서로 (프루닝을 갖거나 갖지 않는) 후보 리스트로 추가할 수도 있다. 추가적으로 또는 대안적으로, 그러한 순서는 현재의 CTU 에서의 일부 블록들이 시간적 예측되는지 여부에 의존할 수도 있다. 시간적 모션 예측이 일부 블록들에 적용되는 경우, 비디오 디코더 (30) 는 시간적 후보들을 리스트의 더 빠른 위치들로 넣을 수도 있고, ALF 는 전체 CTU 의 디코딩 후에 적용될 수도 있다. 비디오 디코더 (30) 는, 예를 들어, 시간적 모션 예측을 갖는 영역의 퍼센티지를 사용하여 후보 리스트에서의 시간적 후보들의 상대적인 순서 및 위치를 결정할 수도 있다. 예를 들어, 참조 블록이 CTU 정렬되지 않는 경우, 비디오 디코더 (30) 는, 오버랩의 퍼센티지에 의해 결정되는 바와 같이, 얼마나 잘 참조 블록과 CTU 가 정렬하는지에 기초하여 시간적 후보에 대한 순서를 결정할 수도 있다.
일부 예들에서, 시간적 후보들이 허용되는 경우, 단지 하나의 시간적 후보가 CTU 내의 코딩된 블록들의 참조 인덱스들에 기초하여 참조 화상들로부터 선택될 수도 있다. 예를 들어, 가장 빈번하게 사용되는 화상이 선택될 수도 있거나, 단지 동일 장소에 배치된 시간적 CTU 만이 허용되는 경우, 현재의 CTU 의 그것에 대해 동일 장소에 배치된 영역 밖의 화소들을 가리키는 모션 벡터들은 빈도 계산을 위해 고려되지 않을 수도 있다.
여러 예들에서, 비디오 디코더 (30) 는 현재의 CTU 에 대한 획득된 ALF 정보 및 현재의 CTU 와 연관된 하나 이상의 샘플 적응적 오프셋 (SAO) 파라미터들을 포함하도록 후보 리스트를 형성함으로써 후보 리스트를 형성할 수도 있다. 하나 이상의 샘플 적응적 오프셋 (SAO) 파라미터들 및 ALF 파라미터들은 독립적으로 시그널링되지만 동일한 병합 메커니즘을 사용할 수도 있다. 여러 예들에서, 비디오 디코더 (30) 는 현재의 CTU 에 대한 획득된 ALF 정보와 연관된 필터 대칭성 정보를 디코딩함으로써 현재의 CTU 를 디코딩할 수도 있다.
여러 예들에서, 비디오 디코더 (20) 는 CTU 레벨에서 필터 대칭성 정보를 나타내는 시그널링을 수신할 수도 있다. 필터 대칭성 정보는 대칭적 및 비대칭적 정보를 포함할 수도 있고, 필터 대칭성 정보는 필터들의 각 세트에 대해 시그널링될 수도 있다. 비디오 디코더 (30) 는 비대칭적 필터가 비트스트림의 관련된 부분들에서 사용될지 여부를 표시하기 위해 SPS/PPS/슬라이스 헤더에서 플래그를 수신할 수도 있다. 여러 예들에서, 비디오 디코더 (30) 는 현재의 CTU 에 대한 획득된 ALF 정보와 연관된 양자화 정보를 디코딩함으로써 현재의 CTU 를 디코딩할 수도 있다.
양자화 정보는 파싱된 필터 계수들로부터 필터 계수의 정수 값을 생성하기 위해 좌측 시프트될 비트들의 수를 포함할 수도 있다. 일부 예들에서, 비트스트림에서의 필터 계수 양자화 정보의 명시적인 시그널링 대신에, 비디오 디코더 (30) 는 필터 계수 양자화 정보를 ALF 계수들에 기초하여 암시적으로 도출할 수도 있다.
양자화 비트들의 수는 모든 ALF 가중 계수들의 합산에 기초하여 계산될 수도 있으며, 여기서 비-DC ALF 계수들의 합은 먼저 2n 으로 라운딩되며, 예를 들어 합 126 은 128 (27, 여기서 n = 7) 로 라운딩된다. 그 후, 양자화 비트들의 수는 8 과 n 사이의 차로서 도출될 수도 있다. 이전의 예에서, n = 7 이고, 따라서, 양자화 비트들의 수는 1 이다.
여러 예들에서, 비디오 디코더 (30) 는 현재의 CTU 에 대한 획득된 ALF 정보가 양자화되는지 여부를 나타내는 데이터를 디코딩할 수도 있다. 여러 예들에서, 현재의 CTU 에 대한 획득된 ALF 정보가 단지 DC 계수들만을 포함하는 경우, 비디오 디코더 (30) 는 현재의 CTU 에 대한 획득된 ALF 정보에 대한 오프셋 값들만을 디코딩함으로써 CTU 를 디코딩할 수도 있다.
여러 예들에서, 단지 DC 계수만이 존재하고 다른 계수들은 필터에 대해 존재하지 않는 경우에, 비디오 디코더 (30) 는 화소들의 유닛에서 DC 계수의 시그널링을 수신할 수도 있고, 다른 경우들에서, 더 높은 정확도, 예를 들어, 유닛 화소 값의 1/256 로 DC 및 다른 필터 계수들의 시그널링을 수신할 수도 있다 (이 경우에, "1" 이 값 256 으로 정규화된다). 여러 예들에서, 비디오 디코더 (30) 는 현재의 CTU 에 대한 획득된 ALF 정보의 하나 이상의 비중심 필터 계수들과는 상이하게 현재의 CTU 에 대한 획득된 ALF 정보의 중심 필터 계수를 디코딩함으로써 CTU 를 디코딩할 수도 있다.
여러 예들에서, 다른 계수들은 명시적으로 시그널링될 수도 있는 반면, 중심 계수는 차이 (differential) 코딩되며, 이는 중심 계수 값과 디폴트 값 사이의 차이만이 코딩되는 것을 의미하고, 여기서 디폴트 값은 그것이 일 (1) 이도록 정규화되도록 선택된다. 여러 예들에서, 비디오 디코더 (30) 는 2차원 그룹 병합 동작에 기초하여 CTU 를 디코딩함으로써 CTU 를 디코딩할 수도 있다.
여러 예들에서, 병합 후에, ALF 파라미터들의 단 하나의 세트만이 각각의 병합된 그룹에 대해 시그널링될 수도 있다. BA 분류가 적용되는 경우, CTU 내의 화소들은 수개의 그룹들로 카테고리화될 수도 있고, 그룹 인덱스들은 2D 맵에서 순서화된다. 2D 그룹 병합의 경우, 그룹은 2D 맵에서 그것의 좌측 또는 상측 이웃들로 병합될 수도 있다. 여러 예들에서, 비디오 디코더 (30) 는 하나 이상의 2 차원 특성들에 기초하는 1차원 그룹 병합 동작에 기초하여 CTU 를 디코딩함으로써 CTU 를 디코딩할 수도 있다.
여러 예들에서, 초기 필터/그룹 인덱스는 2 개의 인접한 필터들 (즉, 인접한 인덱스들을 갖는 2 개의 필터들) 은 인접한 활동들 또는 인접한 방향들을 가져야 한다는 원리를 따라 설계될 수도 있고, 여기서 필터는 그것의 인접한 이웃으로만 병합된다. 하나 이상의 2차원 특성들은 활동 특성 및 방향 특성을 포함할 수도 있다.
여러 예들에서, 비디오 디코더 (30) 는 현재의 CTU 가 임계 사이즈를 초과하는지 여부를 결정하고, CTU 가 임계 사이즈를 초과하는 경우, 현재의 CTU 를 2 개 이상의 더 작은 CTU 들로 분할할 수도 있다. 여러 예들에서, 제 2 사이즈 (예를 들어, 64x64) 보다 큰 사이즈에 대응하는 노드의 splitting_flag 는 일 (1) 의 값으로 설정될 수도 있고, 노드가 제 2 사이즈보다 큰 사이즈에 대응하는 경우에, 플래그가 1 이도록 시그널링되거나, 또는 그러한 플래그의 시그널링이 회피될 수 있고 그것이 이 경우에 1 이도록 도출된다.
예를 들어, 비디오 디코더 (30) 는 현재의 CTU 에 대한 ALF 정보를 획득하는 단계, 재구성된 화소 값들에 기초하여 및 하나 이상의 분류 메트릭들에 기초하여 CTU 내의 하나 이상의 화소들을 분류하는 단계, 및 CTU 내의 하나 이상의 화소들의 분류에 기초하여, 하나 이상의 화소들에 대한 ALF 필터를 선택하는 단계를 포함하는 비디오 코딩의 방법을 수행하도록 구성될 수도 있다. 여러 예들에서, 하나 이상의 분류 메트릭들은 복수의 방향들에 따라 계산된 화소 그레디언트를 포함할 수도 있고, 비디오 디코더 (30) 는 또한 복수의 방향들에 대한 방향들의 수를 시그널링하도록 동작가능한다.
하나 이상의 분류 메트릭들은 하나 이상의 화소들을 포함하는 CU 의 코딩 모드, 하나 이상의 화소들을 포함하는 CU 의 사이즈, 하나 이상의 화소들에 대한 변환 타입, 또는 하나 이상의 화소들에 대한 변환 사이즈 중 하나 이상을 포함할 수도 있다.
여러 예들에서, 비디오 디코더 (30) 는 CTU 내의 하나 이상의 화소들을 둘러싸는 화소들에 필터 계수들을 적용함으로써 재구성된 화소 값들에 기초하여 및 하나 이상의 분류 메트릭들에 기초하여 CTU 내의 하나 이상의 화소들을 분류할 수도 있다. 비디오 디코더 (30) 는, 하나 이상의 화소들을 둘러싸는 화소들이 이용가능하지 않을 것에 응답하여, 하나 이상의 화소들을 둘러싸는 화소들에 대한 내삽된 값들을 결정하기 위해 패딩 동작을 수행할 수도 있다.
여러 예들에서, 하나 이상의 분류 메트릭들은 복수의 방향들에 따라 계산된 화소 그레디언트를 포함할 수도 있다. 비디오 디코더 (30) 는 복수의 방향들에 대한 방향들의 수를 나타내는 시그널링을 수신할 수도 있다. 여러 예들에서, 하나 이상의 분류 메트릭들은 하나 이상의 화소들을 포함하는 CU 의 코딩 모드, 하나 이상의 화소들을 포함하는 CU 의 사이즈, 하나 이상의 화소들에 대한 변환 타입, 또는 하나 이상의 화소들에 대한 변환 사이즈 중 하나 이상을 포함할 수도 있다. 여러 예들에서, 비디오 디코더 (30) 는 CTU 내의 하나 이상의 화소들을 둘러싸는 화소들에 필터 계수들을 적용함으로써 재구성된 화소 값들에 기초하여 및 하나 이상의 분류 메트릭들에 기초하여 CTU 내의 하나 이상의 화소들을 분류할 수도 있다. 하나 이상의 화소들을 둘러싸는 화소들이 이용가능하지 않을 것에 응답하여, 비디오 디코더 (30) 는 하나 이상의 화소들을 둘러싸는 화소들에 대한 내삽된 값들을 결정하기 위해 패딩 동작을 수행할 수도 있다.
도 6 은 본 개시에 기술된 기법들을 구현할 수도 있는 하나 이상의 방법들을 도시하는 흐름도 (600) 이다. 도 6 에 기술된 방법들은 비디오 인코더 (20) 의 ALF 유닛 (64), 또는 비디오 디코더 (30) 의 ALF 유닛 (92) 와 같은 비디오 인코더 또는 비디오 디코더의 필터 유닛에 의해 수행될 수 있다. 필터 유닛은 (i) 현재의 CTU 의 하나 이상의 공간적 이웃 CTU 들 또는 (ii) 현재의 CTU 의 하나 이상의 시간적 이웃 CTU 들 중 하나 이상으로부터 CTU 에 대한 ALF 정보를 획득한다 (602). 필터 유닛은 또한 현재의 CTU 에 대한 획득된 ALF 정보에 적어도 부분적으로 기초하여 후보 리스트를 형성한다 (604). 필터 유닛은 후보 리스트로부터의 후보와 연관된 ALF 정보를 사용하여 현재의 CTU 에 대해 필터링 동작을 수행한다 (606).
도 7 은 본 개시에 기술된 기법들을 구현할 수도 있는 하나 이상의 방법들을 도시하는 흐름도 (700) 이다. 도 6 에 기술된 방법들은 비디오 인코더 (20) 의 ALF 유닛 (64), 또는 비디오 디코더 (30) 의 ALF 유닛 (92) 와 같은, 비디오 인코더 또는 비디오 디코더의 필터 유닛에 의해 수행될 수 있다.
여러 예들에서, 필터 유닛은 현재의 CTU 에 대한 ALF 정보를 획득한다 (702). 필터 유닛은 재구성된 화소 값들에 기초하여 및 하나 이상의 분류 메트릭들에 기초하여 CTU 내의 하나 이상의 화소들을 분류한다 (704). CTU 내의 하나 이상의 화소들의 분류에 기초하여, 필터 유닛은 여러 예들에서 하나 이상의 화소들에 대한 ALF 필터를 선택한다 (706).
하나 이상의 분류 메트릭들은, 예를 들어, 복수의 방향들을 따라 계산된 화소 그레디언트, 하나 이상의 화소들을 포함하는 CU 의 코딩 모드, 하나 이상의 화소들을 포함하는 CU 의 사이즈, 하나 이상의 화소들에 대한 변환 타입, 또는 하나 이상의 화소들에 대한 변환 사이즈를 포함할 수도 있다.
여러 예들에서, 필터는 CTU 내의 하나 이상의 화소들을 둘러싸는 화소들에 필터 계수들을 적용함으로써 재구성된 화소 값들에 기초하여 및 하나 이상의 분류 메트릭들에 기초하여 CTU 내의 하나 이상의 화소들을 분류하는 동작들을 수행할 수도 있다. 하나 이상의 화소들을 둘러싸는 화소들이 이용가능하지 않을 것에 응답하여, 필터 유닛은 하나 이상의 화소들을 둘러싸는 화소들에 대한 내삽된 값들을 결정하기 위해 패딩 동작을 수행할 수도 있다.
하나 이상의 예들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현되면, 그 기능들은 컴퓨터 판독가능 매체 상에 하나 이상의 명령들 또는 코드로서 저장되거나 송신될 수도 있고 하드웨어 기반 프로세싱 유닛에 의해 실행될 수도 있다. 컴퓨터 판독가능 매체는, 예를 들면, 통신 프로토콜에 따라, 일 장소로부터 다른 장소로의 컴퓨터 프로그램의 전송을 가능하게 하는 임의의 매체를 포함하는 통신 매체 또는 데이터 저장 매체와 같은 유형의 매체에 대응하는 컴퓨터 판독가능 저장 매체를 포함할 수도 있다. 이런 방식으로, 컴퓨터 판독가능 매체는 일반적으로, (1) 비일시적인 유형의 컴퓨터 판독가능 저장 매체 또는 (2) 신호 또는 캐리어 파와 같은 통신 매체에 대응할 수도 있다. 데이터 저장 매체는, 본 개시에서 설명된 기법들의 구현을 위해 명령들, 코드 및/또는 데이터 구조들을 취출하기 위하여 하나 이상의 컴퓨터들 또는 하나 이상의 프로세서들에 의해 액세스될 수 있는 임의의 가용 매체일 수도 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독가능 매체를 포함할 수도 있다.
비한정적 예로서, 그러한 컴퓨터 판독가능 저장 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 저장, 자기 디스크 저장 또는 다른 자기 저장 디바이스들, 플래시 메모리, 또는 명령 또는 데이터 구조의 형태로 원하는 프로그램 코드를 저장하는데 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속이 컴퓨터 판독가능 매체로 적절히 칭해진다. 예를 들어, 명령들이 동축 케이블, 광섬유 케이블, 연선 (twisted pair), 디지털 가입자 라인 (DSL), 또는 적외선, 전파 (radio), 및 마이크로파와 같은 무선 기술을 사용하여 웹사이트, 서버, 또는 다른 원격 소스로부터 송신되면, 그 동축 케이블, 광섬유 케이블, 연선, DSL, 또는 적외선, 전파, 및 마이크로파와 같은 무선 기술은 매체의 정의 내에 포함된다. 하지만, 컴퓨터 판독가능 저장 매체 및 데이터 저장 매체는 접속, 캐리어 파, 신호 또는 다른 일시적 매체를 포함하는 것이 아니라, 대신에 비일시적, 유형의 저장 매체를 포함한다는 것이 이해되야 한다. 여기에 사용된, 디스크 (disk) 및 디스크 (disc) 는 콤팩트 디스크 (CD), 레이저 디스크, 광 디스크, DVD (digital versatile disc), 플로피 디스크 및 블루레이 디스크를 포함하며, 여기서, 디스크 (disk) 는 보통 데이터를 자기적으로 재생하지만, 디스크 (disc) 는 레이저를 이용하여 광학적으로 데이터를 재생한다. 또한, 상기의 조합은 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다.
명령들은 하나 이상의 프로세서들, 이를테면 하나 이상의 디지털 신호 프로세서들 (DSPs), 범용 마이크로프로세서들, 주문형 반도체들 (ASICs), 필드 프로그래머블 로직 어레이들 (FPGAs), 또는 다른 동등한 집적 또는 이산 로직 회로에 의해 실행될 수도 있다. 따라서, 본원에 사용된 용어 "프로세서" 는 전술한 구조 중 임의의 것 또는 본원에 설명된 기법들의 구현에 적합한 임의의 다른 구조를 지칭할 수도 있다. 추가로, 일부 양태들에서, 여기서 설명된 기능은 인코딩 및 디코딩을 위해 구성된 전용 하드웨어 및/또는 소프트웨어 모듈들 내에 제공되거나 또는 결합된 코덱에 포함될 수도 있다. 또한, 그 기법들은 하나 이상의 회로 또는 로직 엘리먼트들에서 완전히 구현될 수 있다.
본 개시의 기법들은 무선 핸드셋, 집적 회로 (IC) 또는 IC 들의 세트 (예를 들면, 칩 세트) 를 포함하여, 광범위하게 다양한 디바이스들 또는 장치들에서 구현될 수도 있다. 다양한 컴포넌트들, 모듈들 또는 유닛들이, 개시된 기술들을 수행하도록 구성된 디바이스들의 기능적인 양태들을 강조하기 위하여 본 개시에 설명되었지만, 상이한 하드웨어 유닛들에 의한 실현을 반드시 필요로 하는 것은 아니다. 오히려, 상술된 바처럼, 다양한 유닛들이 코덱 하드웨어 유닛에 결합될 수도 있거나, 또는 적합한 소프트웨어 및/또는 펌웨어와 함께, 상술된 하나 이상의 프로세서들을 포함하는 연동적인 (interoperative) 하드웨어 유닛들의 집합에 의해 제공될 수도 있다.
다양한 예들이 설명되었다. 이들 및 다른 예들은 다음의 청구항들의 범위 내에 있다.

Claims (49)

  1. 비디오 데이터를 코딩하는 방법으로서,
    (i) 현재의 코딩 트리 유닛 (CTU) 의 하나 이상의 공간적 이웃 CTU 들 또는 (ii) 상기 현재의 CTU 의 하나 이상의 시간적 이웃 CTU 들 중 하나 이상으로부터 상기 현재의 CTU 에 대한 적응적 루프 필터링 (ALF) 정보를 획득하는 단계;
    상기 현재의 CTU 에 대한 획득된 상기 ALF 정보에 적어도 부분적으로 기초하여 후보 리스트를 형성하는 단계; 및
    상기 후보 리스트로부터의 후보와 연관된 ALF 정보를 사용하여 상기 현재의 CTU 에 대해 필터링 동작을 수행하는 단계를 포함하는, 비디오 데이터를 코딩하는 방법.
  2. 제 1 항에 있어서,
    상기 ALF 정보는 ALF 계수들을 포함하는, 비디오 데이터를 코딩하는 방법.
  3. 제 1 항에 있어서,
    상기 ALF 정보는 분류 메트릭들에 대한 ALF 필터들의 맵핑을 포함하는, 비디오 데이터를 코딩하는 방법.
  4. 제 1 항에 있어서,
    상기 비디오 데이터를 코딩하는 방법은 상기 비디오 데이터를 디코딩하는 방법을 포함하고,
    상기 후보 리스트로부터의 후보와 연관된 인덱스를 포함하는 신택스 엘리먼트를 수신하는 단계; 및
    상기 후보 리스트로부터의 후보와 연관된 상기 ALF 정보를 사용하여 상기 현재의 CTU 에 대해 상기 필터링 동작을 수행하는 단계를 더 포함하는, 비디오 데이터를 코딩하는 방법.
  5. 제 1 항에 있어서,
    상기 비디오 데이터를 코딩하는 방법은 상기 비디오 데이터를 인코딩하는 방법을 포함하고,
    상기 후보 리스트로부터의 후보와 연관된 인덱스를 포함하는 신택스 엘리먼트를, 비디오 데이터의 인코딩된 비트스트림에의 포함을 위해, 생성하는 단계를 더 포함하는, 비디오 데이터를 코딩하는 방법.
  6. 제 1 항에 있어서,
    상기 비디오 데이터를 코딩하는 방법은 상기 비디오 데이터를 디코딩하는 방법을 포함하고,
    상기 후보 리스트로부터의 후보와 연관된 인텍스를 포함하는 신택스 엘리먼트를 수신하는 단계;
    차이 정보를 수신하는 단계;
    새로운 ALF 정보를 결정하기 위해 상기 후보와 연관된 상기 ALF 정보에 상기 차이 정보를 가산하는 단계; 및
    상기 새로운 ALF 정보를 사용하여 상기 현재의 CTU 에 대해 상기 필터링 동작을 수행하는 단계를 더 포함하는, 비디오 데이터를 코딩하는 방법.
  7. 제 1 항에 있어서,
    상기 비디오 데이터를 코딩하는 방법은 상기 비디오 데이터를 인코딩하는 방법을 포함하고,
    새로운 ALF 정보를 결정하는 단계;
    상기 비디오 데이터의 인코딩된 비트스트림에의 포함을 위해, 상기 후보 리스트로부터의 후보와 연관된 인덱스를 포함하는 신택스 엘리먼트를 생성하는 단계; 및
    비디오 데이터의 상기 인코딩된 비트스트림에의 포함을 위해, 상기 새로운 ALF 정보와 상기 후보와 연관된 상기 ALF 정보 사이의 차이를 식별하는 차이 정보를 생성하는 단계를 더 포함하는, 비디오 데이터를 코딩하는 방법.
  8. 제 1 항에 있어서,
    상기 ALF 필터 정보는 복수의 ALF 필터들을 포함하고,
    하나 이상의 분류 메트릭들에 기초하여 상기 복수의 ALF 필터들로부터 ALF 필터를 선택하는 단계; 및
    선택된 상기 ALF 필터를 사용하여 상기 CTU 의 하나 이상의 화소들에 대해 필터링 동작을 수행하는 단계를 더 포함하는, 비디오 데이터를 코딩하는 방법.
  9. 제 8 항에 있어서,
    상기 하나 이상의 분류 메트릭들은 활동 메트릭 및 방향 메트릭을 포함하는, 비디오 데이터를 코딩하는 방법.
  10. 제 8 항에 있어서,
    상기 하나 이상의 분류 메트릭들은 상기 하나 이상의 화소들을 포함하는 CU 의 사이즈, 상기 화소들을 포함하는 상기 CU 의 코딩 모드, 상기 하나 이상의 화소들에 대응하는 변환 유닛의 사이즈, 또는 상기 하나 이상의 화소들에 대응하는 변환 유닛의 타입 중 하나 이상을 포함하는, 비디오 데이터를 코딩하는 방법.
  11. 제 8 항에 있어서,
    상기 선택된 ALF 필터를 사용하여 상기 CTU 의 상기 하나 이상의 화소들에 대해 상기 필터링 동작을 수행함으로써 필터링된 이미지를 생성하는 단계; 및
    상기 필터링된 이미지를 출력하는 단계를 더 포함하는, 비디오 데이터를 코딩하는 방법.
  12. 제 6 항에 있어서,
    상기 코딩하는 방법은 인코딩 동작의 디코딩 루프의 부분으로서 수행되고,
    상기 선택된 ALF 필터를 사용하여 상기 CTU 의 상기 하나 이상의 화소들에 대해 상기 필터링 동작을 수행함으로써 필터링된 이미지를 생성하는 단계; 및
    디코딩된 화상 버퍼에 상기 필터링된 이미지를 저장하는 단계를 더 포함하는, 비디오 데이터를 코딩하는 방법.
  13. 제 1 항에 있어서,
    상기 방법은 무선 통신 디바이스에 의해 수행되며,
    상기 무선 통신 디바이스는,
    인코딩된 비디오 데이터를 수신하도록 구성된 수신기;
    상기 인코딩된 비디오 데이터를 프로세싱하기 위해 명령들을 실행하도록 구성된 프로세서를 포함하는, 비디오 데이터를 코딩하는 방법.
  14. 제 13 항에 있어서,
    상기 무선 통신 디바이스는 셀룰러 전화를 포함하고,
    상기 인코딩된 비디오 데이터는 상기 수신기에 의해 수신되고, 셀룰러 통신 표준에 따라 복조되는, 비디오 데이터를 코딩하는 방법.
  15. 제 1 항에 있어서,
    상기 방법은 무선 통신 디바이스에 의해 수행되며,
    상기 무선 통신 디바이스는,
    인코딩된 비디오 데이터를 송신하도록 구성된 송신기;
    상기 인코딩된 비디오 데이터를 프로세싱하기 위해 명령들을 실행하도록 구성된 프로세서를 포함하는, 비디오 데이터를 코딩하는 방법.
  16. 제 15 항에 있어서,
    상기 무선 통신 디바이스는 셀룰러 전화를 포함하고,
    상기 인코딩된 비디오 데이터는 셀룰러 통신 표준에 따라 변조되고, 상기 송신기에 의해 송신되는, 비디오 데이터를 코딩하는 방법.
  17. 비디오 데이터를 코딩하는 디바이스로서,
    비디오 데이터를 저장하도록 구성된 메모리; 및
    하나 이상의 프로세서들을 포함하고,
    상기 하나 이상의 프로세서들은,
    (i) 현재의 코딩 트리 유닛 (CTU) 의 하나 이상의 공간적 이웃 CTU 들 또는 (ii) 상기 현재의 CTU 의 하나 이상의 시간적 이웃 CTU 들 중 하나 이상으로부터 상기 현재의 CTU 에 대한 적응적 루프 필터링 (ALF) 정보를 획득하고;
    상기 현재의 CTU 에 대한 획득된 상기 ALF 정보에 적어도 부분적으로 기초하여 후보 리스트를 형성하며; 및
    상기 후보 리스트로부터의 후보와 연관된 ALF 정보를 사용하여 상기 현재의 CTU 에 대해 필터링 동작을 수행하도록 구성된, 비디오 데이터를 코딩하는 디바이스.
  18. 제 17 항에 있어서,
    상기 하나 이상의 프로세서들은 상기 비디오 데이터를 디코딩하도록 구성되고,
    상기 비디오 데이터를 디코딩하기 위해, 상기 하나 이상의 프로세서들은 또한,
    상기 후보 리스트로부터의 후보와 연관된 인덱스를 포함하는 신택스 엘리먼트를 수신하고; 및
    상기 후보 리스트로부터의 후보와 연관된 상기 ALF 정보를 사용하여 상기 현재의 CTU 에 대해 상기 필터링 동작을 수행하도록 구성되는, 비디오 데이터를 코딩하는 디바이스.
  19. 제 17 항에 있어서,
    상기 하나 이상의 프로세서들은 상기 비디오 데이터를 인코딩하도록 구성되고,
    상기 비디오 데이터를 인코딩하기 위해, 상기 하나 이상의 프로세서들은 또한, 상기 후보 리스트로부터의 후보와 연관된 인덱스를 포함하는 신택스 엘리먼트를, 비디오 데이터의 인코딩된 비트스트림에의 포함을 위해, 생성하도록 구성되는, 비디오 데이터를 코딩하는 디바이스.
  20. 제 17 항에 있어서,
    상기 하나 이상의 프로세서들은 상기 비디오 데이터를 디코딩하도록 구성되고,
    상기 비디오 데이터를 디코딩하기 위해, 상기 하나 이상의 프로세서들은 또한,
    상기 후보 리스트로부터의 후보와 연관된 인텍스를 포함하는 신택스 엘리먼트를 수신하고;
    차이 정보를 수신하며;
    새로운 ALF 정보를 결정하기 위해 상기 후보와 연관된 상기 ALF 정보에 상기 차이 정보를 가산하고; 및
    상기 새로운 ALF 정보를 사용하여 상기 현재의 CTU 에 대해 상기 필터링 동작을 수행하도록 구성되는, 비디오 데이터를 코딩하는 디바이스.
  21. 제 17 항에 있어서,
    상기 하나 이상의 프로세서들은 비디오 데이터를 인코딩하도록 구성되고,
    데이터를 인코딩하기 위해, 상기 하나 이상의 프로세서들은 또한,
    새로운 ALF 정보를 결정하고;
    비디오 데이터의 인코딩된 비트스트림에의 포함을 위해, 상기 후보 리스트로부터의 후보와 연관된 인덱스를 포함하는 신택스 엘리먼트를 생성하며; 및
    비디오 데이터의 상기 인코딩된 비트스트림에의 포함을 위해, 상기 새로운 ALF 정보와 상기 후보와 연관된 상기 ALF 정보 사이의 차이를 식별하는 차이 정보를 생성하도록 구성되는, 비디오 데이터를 코딩하는 디바이스.
  22. 제 17 항에 있어서,
    상기 ALF 필터 정보는 복수의 ALF 필터들을 포함하고,
    상기 하나 이상의 프로세서들은 또한,
    하나 이상의 분류 메트릭들에 기초하여 상기 복수의 ALF 필터들로부터 ALF 필터를 선택하고; 및
    선택된 상기 ALF 필터를 사용하여 상기 CTU 의 하나 이상의 화소들에 대해 필터링 동작을 수행하도록 구성되는, 비디오 데이터를 코딩하는 디바이스.
  23. 제 22 항에 있어서,
    상기 하나 이상의 분류 메트릭들은 상기 하나 이상의 화소들을 포함하는 CU 의 사이즈, 상기 화소들을 포함하는 상기 CU 의 코딩 모드, 상기 하나 이상의 화소들에 대응하는 변환 유닛의 사이즈, 또는 상기 하나 이상의 화소들에 대응하는 변환 유닛의 타입 중 하나 이상을 포함하는, 비디오 데이터를 코딩하는 디바이스.
  24. 제 22 항에 있어서,
    상기 하나 이상의 프로세서들은 또한,
    상기 선택된 ALF 필터를 사용하여 상기 CTU 의 상기 하나 이상의 화소들에 대해 상기 필터링 동작을 수행함으로써 필터링된 이미지를 생성하고; 및
    상기 필터링된 이미지를 출력하도록 구성되는, 비디오 데이터를 코딩하는 디바이스.
  25. 제 20 항에 있어서,
    상기 하나 이상의 프로세서들은 인코딩 동작의 디코딩 루프의 부분으로서 코딩을 수행하도록 구성되고,
    상기 하나 이상의 프로세서들은 또한,
    상기 선택된 ALF 필터를 사용하여 상기 CTU 의 상기 하나 이상의 화소들에 대해 상기 필터링 동작을 수행함으로써 필터링된 이미지를 생성하고; 및
    디코딩된 화상 버퍼에 상기 필터링된 이미지를 저장하도록 구성되는, 비디오 데이터를 코딩하는 디바이스.
  26. 제 17 항에 있어서,
    상기 디바이스는 무선 통신 디바이스이고,
    상기 무선 통신 디바이스는 인코딩된 비디오 데이터를 수신하도록 구성된 수신기를 포함하며,
    상기 하나 이상의 프로세서들은 수신된 상기 인코딩된 비디오 데이터를 프로세싱하기 위해 명령들을 실행하도록 구성되는, 비디오 데이터를 코딩하는 디바이스.
  27. 제 26 항에 있어서,
    상기 무선 통신 디바이스는 셀룰러 전화를 포함하고,
    상기 인코딩된 비디오 데이터는 상기 수신기에 의해 수신되고, 셀룰러 통신 표준에 따라 복조되는, 비디오 데이터를 코딩하는 디바이스.
  28. 제 17 항에 있어서,
    상기 디바이스는 무선 통신 디바이스이고,
    상기 무선 통신 디바이스는 인코딩된 데이터를 송신하도록 구성된 송신기를 포함하며,
    상기 하나 이상의 프로세서들은 상기 송신기에 의한 송신을 위한 준비로 상기 비디오 데이터를 프로세싱하기 위해 명령들을 실행하도록 구성되는, 비디오 데이터를 코딩하는 디바이스.
  29. 제 28 항에 있어서,
    상기 무선 통신 디바이스는 셀룰러 전화이고,
    상기 인코딩된 비디오 데이터는 셀룰러 통신 표준에 따라 변조되고, 그 후 상기 송신기에 의해 송신되는, 비디오 데이터를 코딩하는 디바이스.
  30. 비디오 데이터를 코딩하는 디바이스로서,
    (i) 현재의 코딩 트리 유닛 (CTU) 의 하나 이상의 공간적 이웃 CTU 들 또는 (ii) 상기 현재의 CTU 의 하나 이상의 시간적 이웃 CTU 들 중 하나 이상으로부터 상기 현재의 CTU 에 대한 적응적 루프 필터링 (ALF) 정보를 획득하는 수단;
    상기 현재의 CTU 에 대한 획득된 상기 ALF 정보에 적어도 부분적으로 기초하여 후보 리스트를 형성하는 수단; 및
    상기 후보 리스트로부터의 후보와 연관된 ALF 정보를 사용하여 상기 현재의 CTU 에 대해 필터링 동작을 수행하는 수단을 포함하는, 비디오 데이터를 코딩하는 디바이스.
  31. 제 30 항에 있어서,
    상기 비디오 데이터를 디코딩하는 수단을 더 포함하고,
    상기 비디오 데이터를 디코딩하는 수단은,
    상기 후보 리스트로부터의 후보와 연관된 인덱스를 포함하는 신택스 엘리먼트를 수신하는 수단; 및
    상기 후보 리스트로부터의 후보와 연관된 상기 ALF 정보를 사용하여 상기 현재의 CTU 에 대해 상기 필터링 동작을 수행하는 수단을 더 포함하는, 비디오 데이터를 코딩하는 디바이스.
  32. 제 30 항에 있어서,
    상기 비디오 데이터를 인코딩하는 수단을 더 포함하고,
    상기 비디오 데이터를 인코딩하는 수단은 상기 후보 리스트로부터의 후보와 연관된 인덱스를 포함하는 신택스 엘리먼트를, 비디오 데이터의 인코딩된 비트스트림에의 포함을 위해, 생성하는 수단을 더 포함하는, 비디오 데이터를 코딩하는 디바이스.
  33. 제 30 항에 있어서,
    상기 비디오 데이터를 디코딩하는 수단을 더 포함하고,
    상기 비디오 데이터를 디코딩하는 수단은,
    상기 후보 리스트로부터의 후보와 연관된 인텍스를 포함하는 신택스 엘리먼트를 수신하는 수단;
    차이 정보를 수신하는 수단;
    새로운 ALF 정보를 결정하기 위해 상기 후보와 연관된 상기 ALF 정보에 상기 차이 정보를 가산하는 수단; 및
    상기 새로운 ALF 정보를 사용하여 상기 현재의 CTU 에 대해 상기 필터링 동작을 수행하는 수단을 더 포함하는, 비디오 데이터를 코딩하는 디바이스.
  34. 제 30 항에 있어서,
    상기 비디오 데이터를 인코딩하는 수단을 더 포함하고,
    상기 비디오 데이터를 인코딩하는 수단은,
    새로운 ALF 정보를 결정하는 수단;
    상기 비디오 데이터의 인코딩된 비트스트림에의 포함을 위해, 상기 후보 리스트로부터의 후보와 연관된 인덱스를 포함하는 신택스 엘리먼트를 생성하는 수단; 및
    비디오 데이터의 상기 인코딩된 비트스트림에의 포함을 위해, 상기 새로운 ALF 정보와 상기 후보와 연관된 상기 ALF 정보 사이의 차이를 식별하는 차이 정보를 생성하는 수단을 더 포함하는, 비디오 데이터를 코딩하는 디바이스.
  35. 제 30 항에 있어서,
    상기 ALF 필터 정보는 복수의 ALF 필터들을 포함하고,
    상기 적응적 루프 필터링 (ALF) 정보를 획득하는 수단은,
    하나 이상의 분류 메트릭들에 기초하여 상기 복수의 ALF 필터들로부터 ALF 필터를 선택하는 수단; 및
    선택된 상기 ALF 필터를 사용하여 상기 CTU 의 하나 이상의 화소들에 대해 필터링 동작을 수행하는 수단을 더 포함하는, 비디오 데이터를 코딩하는 디바이스.
  36. 제 35 항에 있어서,
    상기 하나 이상의 분류 메트릭들은 상기 하나 이상의 화소들을 포함하는 CU 의 사이즈, 상기 화소들을 포함하는 상기 CU 의 코딩 모드, 상기 하나 이상의 화소들에 대응하는 변환 유닛의 사이즈, 또는 상기 하나 이상의 화소들에 대응하는 변환 유닛의 타입 중 하나 이상을 포함하는, 비디오 데이터를 코딩하는 디바이스.
  37. 제 35 항에 있어서,
    상기 선택된 ALF 필터를 사용하여 상기 CTU 의 상기 하나 이상의 화소들에 대해 상기 필터링 동작을 수행함으로써 필터링된 이미지를 생성하는 수단; 및
    상기 필터링된 이미지를 출력하는 수단을 더 포함하는, 비디오 데이터를 코딩하는 디바이스.
  38. 제 33 항에 있어서,
    상기 비디오 데이터를 디코딩하는 수단은 인코딩 동작의 디코딩 루프의 부분으로서 디코딩을 수행하도록 구성되고,
    상기 비디오 데이터를 디코딩하는 수단은,
    상기 선택된 ALF 필터를 사용하여 상기 CTU 의 상기 하나 이상의 화소들에 대해 상기 필터링 동작을 수행함으로써 필터링된 이미지를 생성하는 수단; 및
    디코딩된 화상 버퍼에 상기 필터링된 이미지를 저장하는 수단을 더 포함하는, 비디오 데이터를 코딩하는 디바이스.
  39. 제 30 항에 있어서,
    무선 통신을 수행하는 수단을 더 포함하며,
    상기 무선 통신을 수행하는 수단은,
    인코딩된 비디오 데이터를 수신하는 수단; 및
    상기 인코딩된 비디오 데이터를 프로세싱하기 위해 명령들을 실행하는 수단을 포함하는, 비디오 데이터를 코딩하는 디바이스.
  40. 제 30 항에 있어서,
    무선 통신을 수행하는 수단을 더 포함하고,
    상기 무선 통신을 수행하는 수단은,
    상기 비디오 데이터를 인코딩하기 위해 명령들을 실행하는 수단: 및
    인코딩된 상기 비디오 데이터를 송신하는 수단을 포함하는, 비디오 데이터를 코딩하는 디바이스.
  41. 명령들을 저장한 비일시적 컴퓨터 판독가능 저장 매체로서,
    상기 명령들은, 하나 이상의 프로세서들에 의해 실행될 때, 상기 하나 이상의 프로세서들로 하여금,
    (i) 현재의 코딩 트리 유닛 (CTU) 의 하나 이상의 공간적 이웃 CTU 들 또는 (ii) 상기 현재의 CTU 의 하나 이상의 시간적 이웃 CTU 들 중 하나 이상으로부터 상기 현재의 CTU 에 대한 적응적 루프 필터링 (ALF) 정보를 획득하게 하고;
    상기 현재의 CTU 에 대한 획득된 상기 ALF 정보에 적어도 부분적으로 기초하여 후보 리스트를 형성하게 하며; 및
    상기 후보 리스트로부터의 후보와 연관된 ALF 정보를 사용하여 상기 현재의 CTU 에 대해 필터링 동작을 수행하게 하는, 비일시적 컴퓨터 판독가능 저장 매체.
  42. 제 41 항에 있어서,
    상기 명령들은 상기 하나 이상의 프로세서들로 하여금 상기 비디오 데이터의 디코딩을 수행하게 하고,
    실행될 때, 상기 하나 이상의 프로세서들로 하여금,
    상기 후보 리스트로부터의 후보와 연관된 인덱스를 포함하는 신택스 엘리먼트를 수신하게 하고; 및
    상기 후보 리스트로부터의 후보와 연관된 상기 ALF 정보를 사용하여 상기 현재의 CTU 에 대해 상기 필터링 동작을 수행하게 하는
    명령들을 더 저장하는, 비일시적 컴퓨터 판독가능 저장 매체.
  43. 제 41 항에 있어서,
    상기 명령들은 상기 하나 이상의 프로세서들로 하여금 상기 비디오 데이터의 인코딩을 수행하게 하고,
    상기 하나 이상의 프로세서들에 의해 실행될 때, 상기 하나 이상의 프로세서들로 하여금,
    상기 후보 리스트로부터의 후보와 연관된 인덱스를 포함하는 신택스 엘리먼트를, 비디오 데이터의 인코딩된 비트스트림에의 포함을 위해, 생성하게 하는 명령들을 더 저장하는, 비일시적 컴퓨터 판독가능 저장 매체.
  44. 제 41 항에 있어서,
    상기 명령들은 상기 하나 이상의 프로세서들로 하여금 상기 비디오 데이터의 디코딩을 수행하게 하고,
    실행될 때, 상기 하나 이상의 프로세서들로 하여금,
    상기 후보 리스트로부터의 후보와 연관된 인텍스를 포함하는 신택스 엘리먼트를 수신하게 하고;
    차이 정보를 수신하게 하며;
    새로운 ALF 정보를 결정하기 위해 상기 후보와 연관된 상기 ALF 정보에 상기 차이 정보를 가산하게 하고; 및
    상기 새로운 ALF 정보를 사용하여 상기 현재의 CTU 에 대해 상기 필터링 동작을 수행하게 하는
    명령들을 더 저장하는, 비일시적 컴퓨터 판독가능 저장 매체.
  45. 제 41 항에 있어서,
    상기 명령들은 상기 하나 이상의 프로세서들로 하여금 상기 비디오 데이터의 인코딩을 수행하게 하고,
    실행될 때, 상기 하나 이상의 프로세서들로 하여금,
    새로운 ALF 정보를 결정하게 하고;
    상기 비디오 데이터의 인코딩된 비트스트림에의 포함을 위해, 상기 후보 리스트로부터의 후보와 연관된 인덱스를 포함하는 신택스 엘리먼트를 생성하게 하며; 및
    비디오 데이터의 상기 인코딩된 비트스트림에의 포함을 위해, 상기 새로운 ALF 정보와 상기 후보와 연관된 상기 ALF 정보 사이의 차이를 식별하는 차이 정보를 생성하게 하는
    명령들을 더 저장하는, 비일시적 컴퓨터 판독가능 저장 매체.
  46. 제 41 항에 있어서,
    상기 ALF 필터 정보는 복수의 ALF 필터들을 포함하고,
    실행될 때, 상기 하나 이상의 프로세서들로 하여금,
    하나 이상의 분류 메트릭들에 기초하여 상기 복수의 ALF 필터들로부터 ALF 필터를 선택하게 하고; 및
    선택된 상기 ALF 필터를 사용하여 상기 CTU 의 하나 이상의 화소들에 대해 필터링 동작을 수행하게 하는
    명령들을 더 저장하는, 비일시적 컴퓨터 판독가능 저장 매체.
  47. 제 46 항에 있어서,
    상기 하나 이상의 분류 메트릭들은 상기 하나 이상의 화소들을 포함하는 CU 의 사이즈, 상기 화소들을 포함하는 상기 CU 의 코딩 모드, 상기 하나 이상의 화소들에 대응하는 변환 유닛의 사이즈, 또는 상기 하나 이상의 화소들에 대응하는 변환 유닛의 타입 중 하나 이상을 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  48. 제 46 항에 있어서,
    실행될 때, 상기 하나 이상의 프로세서들로 하여금,
    상기 선택된 ALF 필터를 사용하여 상기 CTU 의 상기 하나 이상의 화소들에 대해 상기 필터링 동작을 수행함으로써 필터링된 이미지를 생성하게 하고; 및
    상기 필터링된 이미지를 출력하게 하는
    명령들을 더 저장하는, 비일시적 컴퓨터 판독가능 저장 매체.
  49. 제 44 항에 있어서,
    상기 하나 이상의 프로세서들에 의해 실행될 때, 상기 하나 이상의 프로세서들로 하여금, 인코딩 동작의 디코딩 루프의 부분으로서 상기 후보 리스트로부터의 후보와 연관된 ALF 정보를 사용하여 상기 현재의 CTU 에 대해 상기 필터링 동작을 수행하게 하는 명령들을 더 저장하고,
    실행될 때, 상기 하나 이상의 프로세서들로 하여금,
    상기 선택된 ALF 필터를 사용하여 상기 CTU 의 상기 하나 이상의 화소들에 대해 상기 필터링 동작을 수행함으로써 필터링된 이미지를 생성하게 하고; 및
    디코딩된 화상 버퍼에 상기 필터링된 이미지를 저장하게 하는
    명령들을 더 저장하는, 비일시적 컴퓨터 판독가능 저장 매체.









KR1020177022188A 2015-02-11 2016-02-11 코딩 트리 유닛 (ctu) 레벨 적응적 루프 필터 (alf) KR20170117062A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562115067P 2015-02-11 2015-02-11
US62/115,067 2015-02-11
US15/040,913 US10057574B2 (en) 2015-02-11 2016-02-10 Coding tree unit (CTU) level adaptive loop filter (ALF)
US15/040,913 2016-02-10
PCT/US2016/017544 WO2016130801A1 (en) 2015-02-11 2016-02-11 Coding tree unit (ctu) level adaptive loop filter (alf)

Publications (1)

Publication Number Publication Date
KR20170117062A true KR20170117062A (ko) 2017-10-20

Family

ID=56565469

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177022188A KR20170117062A (ko) 2015-02-11 2016-02-11 코딩 트리 유닛 (ctu) 레벨 적응적 루프 필터 (alf)

Country Status (7)

Country Link
US (1) US10057574B2 (ko)
EP (1) EP3257247A1 (ko)
JP (1) JP2018509074A (ko)
KR (1) KR20170117062A (ko)
CN (1) CN107211154B (ko)
TW (1) TW201633787A (ko)
WO (1) WO2016130801A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019107994A1 (ko) * 2017-11-29 2019-06-06 한국전자통신연구원 루프내 필터링을 이용한 영상 부호화/복호화 방법 및 장치
WO2019225934A1 (ko) * 2018-05-21 2019-11-28 엘지전자 주식회사 영상 코딩 시스템에서 타일 내 ctu 어드레스 관련 영상 디코딩 방법 및 그 장치
WO2020231238A1 (ko) * 2019-05-16 2020-11-19 엘지전자 주식회사 크로마 포멧에 기반하여 필터 정보를 시그널링하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법

Families Citing this family (116)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2996269A1 (en) 2014-09-09 2016-03-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio splicing concept
KR20180019549A (ko) * 2015-06-18 2018-02-26 엘지전자 주식회사 영상 코딩 시스템에서 영상 필터링 방법 및 장치
US11405611B2 (en) 2016-02-15 2022-08-02 Qualcomm Incorporated Predicting filter coefficients from fixed filters for video coding
US10694202B2 (en) * 2016-12-01 2020-06-23 Qualcomm Incorporated Indication of bilateral filter usage in video coding
EP3563571A4 (en) 2016-12-30 2020-02-12 Telefonaktiebolaget LM Ericsson (publ) DECODED IMAGE BUFFER MEMORY MANAGEMENT FOR PROCESSING PREDICTION OF CROSS IMAGE DATA
US10506230B2 (en) * 2017-01-04 2019-12-10 Qualcomm Incorporated Modified adaptive loop filter temporal prediction for temporal scalability support
EP3410723A1 (en) * 2017-05-31 2018-12-05 Thomson Licensing A method and a device for picture encoding and decoding
US11811975B2 (en) * 2017-05-31 2023-11-07 Interdigital Madison Patent Holdings, Sas Method and a device for picture encoding and decoding
EP3410711A1 (en) * 2017-05-31 2018-12-05 Thomson Licensing A method and a device for picture encoding and decoding
US11228757B2 (en) 2017-05-31 2022-01-18 Interdigital Vc Holdings, Inc. Method and a device for picture encoding and decoding
WO2018225593A1 (ja) * 2017-06-05 2018-12-13 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法および復号方法
CN115442599A (zh) * 2017-10-20 2022-12-06 韩国电子通信研究院 图像编码、解码方法以及存储比特流的记录介质
CN111480341A (zh) * 2017-11-01 2020-07-31 Vid拓展公司 用于合并模式的解码器侧运动矢量细化和子块运动导出
EP3704858A1 (en) * 2017-11-01 2020-09-09 Vid Scale, Inc. Methods for simplifying adaptive loop filter in video coding
US11457239B2 (en) * 2017-11-09 2022-09-27 Google Llc Block artefact reduction
US10721469B2 (en) * 2017-11-28 2020-07-21 Qualcomm Incorporated Line buffer reduction for adaptive loop filtering in video coding
WO2019118097A1 (en) 2017-12-14 2019-06-20 Interdigital Vc Holdings, Inc. Method and apparatus for encoding a picture block
EP4221201A1 (en) 2018-01-29 2023-08-02 InterDigital VC Holdings, Inc. Encoding and decoding with refinement of the reconstructed picture
WO2019154817A1 (en) * 2018-02-09 2019-08-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Adaptive in-loop filter with multiple feature-based classifications
AU2018412414B2 (en) 2018-03-09 2023-05-11 Huawei Technologies Co., Ltd. Method and apparatus for image filtering with adaptive multiplier coefficients
MX2020010312A (es) * 2018-03-29 2020-12-09 Arris Entpr Llc Sistema y método para la eliminación de bloques del contenido de hdr.
CN111937383B (zh) 2018-03-30 2023-08-01 交互数字Vc控股公司 视频编码和解码中的色度量化参数调整
WO2019194647A1 (ko) * 2018-04-06 2019-10-10 가온미디어 주식회사 필터 정보 기반의 적응적 루프 필터링 방법, 그를 이용한 영상 부호화 및 복호화 방법
US11350118B2 (en) * 2018-05-30 2022-05-31 Digitalinsights Inc. Image encoding/decoding method and device
US11451773B2 (en) * 2018-06-01 2022-09-20 Qualcomm Incorporated Block-based adaptive loop filter (ALF) design and signaling
WO2019234613A1 (en) 2018-06-05 2019-12-12 Beijing Bytedance Network Technology Co., Ltd. Partition tree with partition into 3 sub-blocks by horizontal and vertical splits
CN110662053B (zh) 2018-06-29 2022-03-25 北京字节跳动网络技术有限公司 使用查找表的视频处理方法、装置和存储介质
CN110662054B (zh) 2018-06-29 2023-01-06 北京字节跳动网络技术有限公司 用于视频处理的方法、装置、计算机可读存储介质
EP3794825A1 (en) 2018-06-29 2021-03-24 Beijing Bytedance Network Technology Co. Ltd. Update of look up table: fifo, constrained fifo
WO2020003283A1 (en) 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Conditions for updating luts
CA3105330C (en) 2018-06-29 2023-12-05 Beijing Bytedance Network Technology Co., Ltd. Interaction between lut and amvp
CN114466197A (zh) 2018-06-29 2022-05-10 北京字节跳动网络技术有限公司 用于查找表更新的编码的运动信息的选择
TWI719520B (zh) * 2018-06-29 2021-02-21 大陸商北京字節跳動網絡技術有限公司 零單元的濾波
CN110662059B (zh) 2018-06-29 2021-04-20 北京字节跳动网络技术有限公司 使用查找表存储先前编码的运动信息并用其编码后续块的方法和装置
TWI734133B (zh) 2018-07-02 2021-07-21 大陸商北京字節跳動網絡技術有限公司 更新查找表的規則
JP2021166319A (ja) * 2018-07-06 2021-10-14 ソニーグループ株式会社 符号化装置、符号化方法、復号装置、及び、復号方法
US11064196B2 (en) * 2018-09-03 2021-07-13 Qualcomm Incorporated Parametrizable, quantization-noise aware bilateral filter for video coding
US11284075B2 (en) * 2018-09-12 2022-03-22 Qualcomm Incorporated Prediction of adaptive loop filter parameters with reduced memory consumption for video coding
TW202025760A (zh) 2018-09-12 2020-07-01 大陸商北京字節跳動網絡技術有限公司 要檢查多少個hmvp候選
CN112740678A (zh) * 2018-09-25 2021-04-30 索尼公司 编码装置、编码方法、解码装置和解码方法
JP2022002353A (ja) * 2018-09-25 2022-01-06 ソニーグループ株式会社 符号化装置、符号化方法、復号装置、及び、復号方法
CN109660797A (zh) * 2018-11-09 2019-04-19 北京达佳互联信息技术有限公司 自适应滤波方法、装置、电子设备及计算机可读介质
EP4325849A3 (en) 2018-11-22 2024-04-17 Beijing Bytedance Network Technology Co., Ltd. Coordination method for sub-block based inter prediction
US11051017B2 (en) * 2018-12-20 2021-06-29 Qualcomm Incorporated Adaptive loop filter (ALF) index signaling
US11044473B2 (en) * 2018-12-21 2021-06-22 Qualcomm Incorporated Adaptive loop filtering classification in video coding
EP3895423A4 (en) 2018-12-23 2022-06-22 Huawei Technologies Co., Ltd. ENCODER, DECODER AND RELATED METHODS USING AN ADAPTIVE LOOP FILTER
JP7275286B2 (ja) 2019-01-10 2023-05-17 北京字節跳動網絡技術有限公司 Lut更新の起動
CN113383554B (zh) * 2019-01-13 2022-12-16 北京字节跳动网络技术有限公司 LUT和共享Merge列表之间的交互
WO2020147773A1 (en) 2019-01-16 2020-07-23 Beijing Bytedance Network Technology Co., Ltd. Inserting order of motion candidates in lut
CN113366841A (zh) 2019-02-01 2021-09-07 北京字节跳动网络技术有限公司 配置用于视频编解码的依赖于亮度的色度残差缩放
WO2020156528A1 (en) 2019-02-01 2020-08-06 Beijing Bytedance Network Technology Co., Ltd. Filtering processes based on in-loop reshaping
CN113519164A (zh) 2019-03-02 2021-10-19 北京字节跳动网络技术有限公司 对分割结构的限制
CN113519157B (zh) * 2019-03-04 2023-12-26 北京字节跳动网络技术有限公司 视频处理中滤波信息的两级信令
CN117956147A (zh) * 2019-03-08 2024-04-30 佳能株式会社 自适应环路滤波器
US11910024B2 (en) 2019-03-11 2024-02-20 Qualcomm Incorporated Boundary handling for adaptive loop filtering
CN117499644A (zh) 2019-03-14 2024-02-02 北京字节跳动网络技术有限公司 环路整形信息的信令和语法
US11159791B2 (en) * 2019-03-16 2021-10-26 Mediatek Inc. Method and apparatus for signaling adaptive loop filter parameters in video coding
WO2020192611A1 (en) 2019-03-22 2020-10-01 Beijing Bytedance Network Technology Co., Ltd. Interaction between merge list construction and other tools
WO2020192612A1 (en) 2019-03-23 2020-10-01 Beijing Bytedance Network Technology Co., Ltd. Default in-loop reshaping parameters
BR112021018509A2 (pt) 2019-03-24 2021-11-23 Beijing Bytedance Network Tech Co Ltd Método para processar vídeo, aparelho em um sistema de vídeo, e, produto de programa de computador
CN113661708B (zh) 2019-04-02 2023-12-15 北京字节跳动网络技术有限公司 基于双向光流的视频编解码和解码
CN115914627A (zh) 2019-04-15 2023-04-04 北京字节跳动网络技术有限公司 自适应环路滤波器中的裁剪参数推导
CN113767623B (zh) * 2019-04-16 2024-04-02 北京字节跳动网络技术有限公司 用于视频编解码的自适应环路滤波
CN113711609B (zh) 2019-04-19 2023-12-01 北京字节跳动网络技术有限公司 利用光流的预测细化过程中的增量运动矢量
WO2020211866A1 (en) 2019-04-19 2020-10-22 Beijing Bytedance Network Technology Co., Ltd. Applicability of prediction refinement with optical flow process
KR102662024B1 (ko) 2019-04-19 2024-05-21 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 상이한 모션 벡터 정제의 그레디언트 계산
EP3939260A4 (en) 2019-04-20 2022-07-06 Beijing Bytedance Network Technology Co., Ltd. SIGNALING OF SYNTAX ELEMENTS FOR CO-CODING OF CHROMINANCE RESIDUES
US11284114B2 (en) * 2019-04-23 2022-03-22 Qualcomm Incorporated Adaptive loop filter set index signaling
CA3137163C (en) 2019-04-24 2024-05-14 Bytedance Inc. Constraints on quantized residual differential pulse code modulation representation of coded video
CN113796069B (zh) 2019-05-01 2024-03-08 字节跳动有限公司 使用量化残差差分脉冲编解码调制编解码的帧内编解码视频
JP7288083B2 (ja) 2019-05-02 2023-06-06 バイトダンス インコーポレイテッド 符号化ツリー構造タイプに基づく符号化モード
WO2020239119A1 (en) * 2019-05-30 2020-12-03 Beijing Bytedance Network Technology Co., Ltd. Adaptive loop filtering for chroma components
EP3963890A4 (en) 2019-06-04 2022-11-02 Beijing Bytedance Network Technology Co., Ltd. BUILDING A LIST OF MOVEMENT CANDIDATES USING NEIGHBOR BLOCK INFORMATION
CN113994698B (zh) 2019-06-04 2023-11-24 北京字节跳动网络技术有限公司 有条件地实施运动候选列表构建过程
WO2020244660A1 (en) 2019-06-06 2020-12-10 Beijing Bytedance Network Technology Co., Ltd. Motion candidate list construction for video coding
CN114424539A (zh) 2019-06-14 2022-04-29 北京字节跳动网络技术有限公司 处理视频单元边界和虚拟边界
CN112135129B (zh) * 2019-06-25 2024-06-04 华为技术有限公司 一种帧间预测方法及装置
TWI747339B (zh) 2019-06-27 2021-11-21 聯發科技股份有限公司 視訊編解碼之方法和裝置
WO2021006624A1 (ko) * 2019-07-08 2021-01-14 엘지전자 주식회사 적응적 루프 필터를 적용하는 비디오 또는 영상 코딩
CN117478878A (zh) 2019-07-09 2024-01-30 北京字节跳动网络技术有限公司 用于自适应环路滤波的样点确定
JP7291845B2 (ja) 2019-07-11 2023-06-15 北京字節跳動網絡技術有限公司 適応ループフィルタリングにおけるサンプルパディング
CN114128295B (zh) 2019-07-14 2024-04-12 北京字节跳动网络技术有限公司 视频编解码中几何分割模式候选列表的构建
WO2021008546A1 (en) 2019-07-15 2021-01-21 Beijing Bytedance Network Technology Co., Ltd. Accessing samples across video unit boundaries in adaptive loop filtering
WO2021025167A1 (en) * 2019-08-08 2021-02-11 Panasonic Intellectual Property Corporation Of America System and method for video coding
WO2021025168A1 (en) * 2019-08-08 2021-02-11 Panasonic Intellectual Property Corporation Of America System and method for video coding
CN114208184A (zh) 2019-08-13 2022-03-18 北京字节跳动网络技术有限公司 基于子块的帧间预测中的运动精度
EP4011070A4 (en) * 2019-08-16 2022-11-23 Huawei Technologies Co., Ltd. APS ALF CONSTRAINTS IN VIDEO CODING
CN114424541B (zh) * 2019-08-16 2024-05-31 苹果公司 压缩视频及重建压缩视频的系统、方法、及存储介质
JP7377953B2 (ja) * 2019-08-19 2023-11-10 フラウンホッファー-ゲゼルシャフト ツァ フェルダールング デァ アンゲヴァンテン フォアシュンク エー.ファオ アクセスユニットデリミタおよび適応パラメータセットの使用
US20220286692A1 (en) * 2019-08-27 2022-09-08 Hyundai Motor Company Video encoding and decoding using differential encoding
US11962767B2 (en) 2019-08-29 2024-04-16 Lg Electronics Inc. Apparatus and method for coding image
WO2021045130A1 (en) * 2019-09-03 2021-03-11 Panasonic Intellectual Property Corporation Of America System and method for video coding
US11303890B2 (en) * 2019-09-05 2022-04-12 Qualcomm Incorporated Reusing adaptive loop filter (ALF) sub-picture boundary processing for raster-scan slice boundaries
US11140388B2 (en) * 2019-09-06 2021-10-05 Tencent America LLC Method and apparatus for non-linear loop filtering
JP7321364B2 (ja) 2019-09-14 2023-08-04 バイトダンス インコーポレイテッド ビデオコーディングにおけるクロマ量子化パラメータ
KR20220058899A (ko) 2019-09-18 2022-05-10 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 코딩에서 적응형 루프 필터의 2-파트 시그널링
KR20220061980A (ko) * 2019-09-22 2022-05-13 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 적응적 루프 필터링에서의 패딩 프로세스
WO2021052504A1 (en) 2019-09-22 2021-03-25 Beijing Bytedance Network Technology Co., Ltd. Scaling method for sub-block based inter prediction
KR20220063177A (ko) 2019-09-27 2022-05-17 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 상이한 비디오 유닛들 간의 적응적 루프 필터링
WO2021057996A1 (en) 2019-09-28 2021-04-01 Beijing Bytedance Network Technology Co., Ltd. Geometric partitioning mode in video coding
CN114651442A (zh) 2019-10-09 2022-06-21 字节跳动有限公司 视频编解码中的跨分量适应性回路滤波
JP7454042B2 (ja) 2019-10-10 2024-03-21 北京字節跳動網絡技術有限公司 適応ループ・フィルタリングにおける利用可能でないサンプル位置でのパディング・プロセス
JP7443509B2 (ja) 2019-10-14 2024-03-05 バイトダンス インコーポレイテッド ビデオコーディングにおけるクロマ量子化パラメータの使用
WO2021083259A1 (en) 2019-10-29 2021-05-06 Beijing Bytedance Network Technology Co., Ltd. Signaling of cross-component adaptive loop filter
US11432016B2 (en) * 2019-12-05 2022-08-30 Hfi Innovation Inc. Methods and apparatuses of syntax signaling constraint for cross-component adaptive loop filter in video coding system
WO2021118977A1 (en) 2019-12-09 2021-06-17 Bytedance Inc. Using quantization groups in video coding
JP7393550B2 (ja) 2019-12-11 2023-12-06 北京字節跳動網絡技術有限公司 クロス成分適応ループフィルタリングのためのサンプルパディング
CN115053522A (zh) * 2019-12-12 2022-09-13 Lg电子株式会社 采用自适应环路滤波器的视频或图像编码
WO2021132158A1 (ja) * 2019-12-23 2021-07-01 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法、および復号方法
CN114902657A (zh) 2019-12-31 2022-08-12 字节跳动有限公司 视频编解码中的自适应颜色变换
FR3109685A1 (fr) * 2020-04-22 2021-10-29 Orange Procédés et dispositifs de codage et de décodage d'une séquence vidéo multi-vues
WO2022002007A1 (en) 2020-06-30 2022-01-06 Beijing Bytedance Network Technology Co., Ltd. Boundary location for adaptive loop filtering
CN117082239A (zh) * 2021-01-22 2023-11-17 Oppo广东移动通信有限公司 视频编解码方法与系统、及视频编码器与视频解码器
WO2023143588A1 (en) * 2022-01-29 2023-08-03 Beijing Bytedance Network Technology Co., Ltd. Method, apparatus, and medium for video processing
CN114863351B (zh) * 2022-07-07 2022-09-20 河北工业大学 基于Web3.0的图声融合路基填料协同识别管理系统
WO2024088003A1 (en) * 2022-10-24 2024-05-02 Mediatek Inc. Method and apparatus of position-aware reconstruction in in-loop filtering

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8611435B2 (en) * 2008-12-22 2013-12-17 Qualcomm, Incorporated Combined scheme for interpolation filtering, in-loop filtering and post-loop filtering in video coding
US9143803B2 (en) * 2009-01-15 2015-09-22 Qualcomm Incorporated Filter prediction based on activity metrics in video coding
EP2262267A1 (en) * 2009-06-10 2010-12-15 Panasonic Corporation Filter coefficient coding scheme for video coding
JP5359657B2 (ja) * 2009-07-31 2013-12-04 ソニー株式会社 画像符号化装置および方法、記録媒体、並びにプログラム
US9094658B2 (en) * 2010-05-10 2015-07-28 Mediatek Inc. Method and apparatus of adaptive loop filtering
BR112013000556A2 (pt) * 2010-07-09 2019-09-24 Samsung Electronics Co Ltd método para decodificar um vídeo usando um processador de decodificação de vídeo, método para codificar um vídeo usando um processador de codificação de vídeo, aparaleho de decodificação de vídeo em relação a um processador de decodificação de vídeo, aparelho de codificação de vídeo em relação com um processador de codificação de vídeo, e meio de gravação legível por computador
US8990435B2 (en) * 2011-01-17 2015-03-24 Mediatek Inc. Method and apparatus for accessing data of multi-tile encoded picture stored in buffering apparatus
US8964853B2 (en) 2011-02-23 2015-02-24 Qualcomm Incorporated Multi-metric filtering
WO2012137890A1 (ja) * 2011-04-05 2012-10-11 シャープ株式会社 画像フィルタ装置、復号装置、符号化装置、および、データ構造
ES2715782T3 (es) * 2011-04-21 2019-06-06 Hfi Innovation Inc Procedimiento y aparato para un filtrado en bucle mejorado
JP2014514833A (ja) * 2011-06-10 2014-06-19 メディアテック インコーポレイテッド スケーラブルビデオコーディングの方法及び装置
US9860528B2 (en) * 2011-06-10 2018-01-02 Hfi Innovation Inc. Method and apparatus of scalable video coding
KR102021257B1 (ko) * 2012-01-19 2019-09-11 미쓰비시덴키 가부시키가이샤 화상 복호 장치, 화상 부호화 장치, 화상 복호 방법, 화상 부호화 방법 및 기억 매체
JP2013187868A (ja) * 2012-03-09 2013-09-19 Sharp Corp 画像復号装置、画像符号化装置、およびデータ構造
US9445088B2 (en) * 2012-04-09 2016-09-13 Qualcomm Incorporated LCU-based adaptive loop filtering for video coding
JP2013223050A (ja) * 2012-04-13 2013-10-28 Sharp Corp フィルタ装置、復号装置、および符号化装置
CN104641640B (zh) 2012-07-16 2018-04-20 三星电子株式会社 用于用信号传输sao参数的视频编码方法和视频编码设备以及视频解码方法和视频解码设备

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019107994A1 (ko) * 2017-11-29 2019-06-06 한국전자통신연구원 루프내 필터링을 이용한 영상 부호화/복호화 방법 및 장치
US11290715B2 (en) 2017-11-29 2022-03-29 Electronics And Telecommunications Research Institute Image encoding/decoding method and device employing in-loop filtering
US11943436B2 (en) 2017-11-29 2024-03-26 Electronics And Telecommunications Research Institute Image encoding/decoding method and device employing in-loop filtering
WO2019225934A1 (ko) * 2018-05-21 2019-11-28 엘지전자 주식회사 영상 코딩 시스템에서 타일 내 ctu 어드레스 관련 영상 디코딩 방법 및 그 장치
WO2020231238A1 (ko) * 2019-05-16 2020-11-19 엘지전자 주식회사 크로마 포멧에 기반하여 필터 정보를 시그널링하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
US11575890B2 (en) 2019-05-16 2023-02-07 Lg Electronics Inc. Image encoding/decoding method and device for signaling filter information on basis of chroma format, and method for transmitting bitstream
US12010303B2 (en) 2019-05-16 2024-06-11 Lg Electronics Inc. Image encoding/decoding method and device for signaling filter information on basis of chroma format, and method for transmitting bitstream

Also Published As

Publication number Publication date
WO2016130801A1 (en) 2016-08-18
US10057574B2 (en) 2018-08-21
EP3257247A1 (en) 2017-12-20
CN107211154B (zh) 2020-08-18
CN107211154A (zh) 2017-09-26
JP2018509074A (ja) 2018-03-29
US20160234492A1 (en) 2016-08-11
TW201633787A (zh) 2016-09-16

Similar Documents

Publication Publication Date Title
JP7071603B1 (ja) ビデオコーディングのためにブロックの複数のクラスのためのフィルタをマージすること
US10057574B2 (en) Coding tree unit (CTU) level adaptive loop filter (ALF)
US10887604B2 (en) Signalling of filtering information
EP3459245B1 (en) Confusion of multiple filters in adaptive loop filtering in video coding
WO2018045207A1 (en) Cross-component filter
EP2622858A1 (en) Intra smoothing filter for video coding