Search

KR-20260061182-A - 다중 컴포넌트 적응형 필터링을 사용하는 인코딩 및 디코딩 방법들 및 대응하는 장치들

KR20260061182AKR 20260061182 AKR20260061182 AKR 20260061182AKR-20260061182-A

Abstract

디코딩 방법이 개시된다. 픽처 블록의 제1 컴포넌트의 샘플들이 먼저 재구성된다(S100). 제1 컴포넌트의 적어도 하나의 샘플이 분류되고(S102), 분류에 기초하여 필터링된다(S104). 필터링은 적어도 2개의 컴포넌트의 샘플들에 필터를 적용하는 것을 포함하며, 필터는 적어도 하나의 샘플이 속하는 클래스와 연관된다.

Inventors

  • 부아송, 기욤
  • 보흐드, 필리프
  • 갈팡, 프랑크
  • 르페브르, 프레데릭

Assignees

  • 인터디지털 씨이 페이튼트 홀딩스, 에스에이에스

Dates

Publication Date
20260506
Application Date
20240904
Priority Date
20230911

Claims (16)

  1. 디코딩 방법으로서, 픽처 블록의 제1 컴포넌트의 샘플들을 재구성하는 단계; 상기 제1 컴포넌트의 적어도 하나의 샘플을 분류하는 단계; 및 상기 분류에 기초하여 상기 제1 컴포넌트의 적어도 하나의 샘플을 필터링하는 단계 를 포함하며, 상기 적어도 하나의 샘플을 필터링하는 단계는 적어도 2개의 컴포넌트의 샘플들에 필터를 적용하는 단계를 포함하고, 상기 필터는 상기 적어도 하나의 샘플이 속하는 클래스와 연관되는, 방법.
  2. 제1항에 있어서, 상기 제1 컴포넌트의 적어도 하나의 샘플을 분류하는 단계는 적어도 2개의 컴포넌트의 샘플들에 기초하여 상기 적어도 하나의 샘플을 분류하는 단계를 포함하는, 방법.
  3. 제1항 또는 제2항에 있어서, 상기 제1 컴포넌트의 적어도 하나의 샘플을 분류하는 단계는 3개의 컴포넌트의 샘플들에 기초하여 상기 샘플들을 분류하는 단계를 포함하는, 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 분류에 기초하여 상기 제1 컴포넌트의 적어도 하나의 샘플을 필터링하는 단계는 상기 제1 컴포넌트의 적어도 하나의 샘플에 대한 오프셋을 계산하고, 상기 오프셋을 상기 제1 컴포넌트의 적어도 하나의 샘플에 추가하는 단계를 포함하며, 상기 오프셋은 적어도 2개의 컴포넌트의 샘플들의 가중 합으로 계산되고, 상기 가중 합의 가중치들은 상기 필터의 계수들인, 방법.
  5. 제4항에 있어서, 상기 제1 컴포넌트에 적용되는 필터 계수들의 합은 1과 동일한, 방법.
  6. 제5항에 있어서, 상기 제1 컴포넌트와 상이한 다른 컴포넌트에 적용되는 필터 계수들의 합은 0과 동일한, 방법.
  7. 인코딩 방법으로서, 픽처 블록의 제1 컴포넌트의 샘플들을 재구성하는 단계; 상기 제1 컴포넌트의 적어도 하나의 샘플을 분류하는 단계; 및 상기 분류에 기초하여 상기 제1 컴포넌트의 적어도 하나의 샘플을 필터링하는 단계 를 포함하며, 상기 적어도 하나의 샘플을 필터링하는 단계는 적어도 2개의 컴포넌트의 샘플들에 필터를 적용하는 단계를 포함하고, 상기 필터는 상기 적어도 하나의 샘플이 속하는 클래스와 연관되는, 방법.
  8. 제7항에 있어서, 상기 제1 컴포넌트의 적어도 하나의 샘플을 분류하는 단계는 적어도 2개의 컴포넌트의 샘플들에 기초하여 상기 적어도 하나의 샘플을 분류하는 단계를 포함하는, 방법.
  9. 제7항 또는 제8항에 있어서, 상기 제1 컴포넌트의 적어도 하나의 샘플을 분류하는 단계는 3개의 컴포넌트의 샘플들에 기초하여 상기 샘플들을 분류하는 단계를 포함하는, 방법.
  10. 제7항 내지 제9항 중 어느 한 항에 있어서, 상기 분류에 기초하여 상기 제1 컴포넌트의 적어도 하나의 샘플을 필터링하는 단계는 상기 제1 컴포넌트의 적어도 하나의 샘플에 대한 오프셋을 계산하고, 상기 오프셋을 상기 제1 컴포넌트의 적어도 하나의 샘플에 추가하는 단계를 포함하며, 상기 오프셋은 적어도 2개의 컴포넌트의 샘플들의 가중 합으로 계산되고, 상기 가중 합의 가중치들은 상기 필터의 계수들인, 방법.
  11. 제10항에 있어서, 상기 제1 컴포넌트에 적용되는 필터 계수들의 합은 1과 동일한, 방법.
  12. 제11항에 있어서, 상기 제1 컴포넌트와 상이한 다른 컴포넌트에 적용되는 필터 계수들의 합은 0과 동일한, 방법.
  13. 하나 이상의 프로세서 및 상기 하나 이상의 프로세서에 결합된 적어도 하나의 메모리를 포함하는 디코딩 장치로서, 상기 하나 이상의 프로세서는 제1항 내지 제6항 중 어느 한 항의 방법을 수행하도록 구성되는, 디코딩 장치.
  14. 하나 이상의 프로세서 및 상기 하나 이상의 프로세서에 결합된 적어도 하나의 메모리를 포함하는 인코딩 장치로서, 상기 하나 이상의 프로세서는 제7항 내지 제12항 중 어느 한 항의 방법을 수행하도록 구성되는, 인코딩 장치.
  15. 프로세서에 의해 실행될 때 제1항 내지 제6항 중 어느 한 항에 따른 방법을 구현하기 위한 프로그램 코드 명령어들을 포함하는 컴퓨터 프로그램.
  16. 제7항 내지 제12항 중 어느 한 항의 방법을 구현하기 위한 명령어들을 저장한 컴퓨터 판독가능 저장 매체.

Description

다중 컴포넌트 적응형 필터링을 사용하는 인코딩 및 디코딩 방법들 및 대응하는 장치들 관련 출원들에 대한 상호 참조 본 출원은 2023년 9월 11일자로 출원된 유럽 출원 제23306506.9호의 이익을 주장하며, 이는 그 전체가 본 명세서에 참고로 포함된다. 기술 분야 본 실시예들 중 적어도 하나는 일반적으로 적응형 필터링, 예를 들어 적응형 루프 필터링(adaptive loop filtering)을 사용하여 픽처 블록을 디코딩(각각 인코딩)하기 위한 방법 및 장치에 관한 것이다. 높은 압축 효율을 달성하기 위해, 이미지 및 비디오 코딩 스킴들은 보통 예측 및 변환을 사용하여 비디오 콘텐츠 내의 공간적 및 시간적 중복성을 활용한다. 일반적으로, 인트라 또는 인터 예측이 인트라 또는 인터 픽처 상관관계를 이용하기 위해 사용되고, 이어서 종종 예측 에러들 또는 예측 잔차들로 표시되는 원본 블록과 예측된 블록 사이의 차이들이 변환, 양자화 및 엔트로피 코딩된다. 비디오를 재구성하기 위해, 압축된 데이터가 엔트로피 코딩, 양자화, 변환 및 예측에 대응하는 역 프로세스들에 의해 디코딩된다. 재구성된 비디오는 일부 코딩 아티팩트(coding artifact)를 제거하도록 필터링될 수 있다. 일 구현에서, 픽처 블록의 제1 컴포넌트의 적어도 하나의(예를 들어, 각각의) 재구성된 샘플이 필터링된다. 일례에서, 필터링은 제1 컴포넌트의 샘플을 분류하는 단계; 및 분류에 기초하여 제1 컴포넌트의 샘플을 필터링하는 단계를 포함한다. 일례에서, 필터링은 적어도 2개의 컴포넌트의 샘플들에 필터를 적용하는 단계를 포함하며, 예를 들어, 필터는 제1 컴포넌트의 샘플이 속하는 클래스와 연관된다. 다른 예에서, 샘플을 분류하는 단계는 적어도 2개의 컴포넌트의 샘플들에 기초하여, 예를 들어 3개의 컴포넌트의 샘플들에 기초하여 샘플을 분류하는 단계를 포함한다. 도 1은 본 실시예들의 양태들이 구현될 수 있는 시스템의 블록도를 예시한다. 도 2는 비디오 인코더의 일 실시예의 블록도를 예시한다. 도 3은 비디오 디코더의 일 실시예의 블록도를 예시한다. 도 4는 재구성된 샘플들에 적용되는 루프 필터들을 예시한다. 도 5는 크로스-컴포넌트 적응형 루프 필터들(CCALF)을 예시한다. 도 6은 다른 예에 따른 루프 필터들을 예시한다. 도 7은 루마(왼쪽) 및 크로마(오른쪽)에 대한 다이아몬드 형상 필터들을 묘사한다. 도 8은 적응형 루프 필터의 예를 묘사한다. 도 9는 4:2:0 크로마 포맷에 대해, 필터링된(예를 들어, CCALF 필터링된) 크로마 샘플의 상대적 위치 및 루마 평면에서의 그의 지원의 예를 묘사한다. 도 10은 4:2:0 크로마 포맷에 대해, 필터링된(예를 들어, CCALF 필터링된) 크로마 샘플의 상대적 위치 및 루마 평면에서의 그의 지원의 다른 예를 묘사한다. 도 11a 내지 도 11c는 다양한 예들에 따른 디코딩 방법의 흐름도들을 묘사한다. 도 12 내지 도 17은 다양한 예들에 따른 다중 컴포넌트 적응형 루프 필터링의 흐름도들을 예시한다. 도 18 내지 도 21은 인-루프 필터 작업흐름들의 예들을 묘사한다. 본 출원은 도구들, 특징들, 실시예들, 모델들, 접근법들 등을 포함하는 다양한 양태들을 설명한다. 이러한 양태들 중 다수가 구체적으로 설명되며, 적어도 개별적인 특성들을 보여주기 위해, 종종 제한적으로 들릴 수 있는 방식으로 설명된다. 그러나, 이는 설명의 명확성을 목적으로 하며, 그러한 양태들의 응용 또는 범위를 제한하지 않는다. 실제로, 모든 상이한 양태들은 추가적인 양태들을 제공하기 위해 조합되고 상호 교환될 수 있다. 더욱이, 양태들은 또한 이전 출원들에 설명된 양태들과 조합되고 상호 교환될 수 있다. 본 출원에서 설명되고 고려되는 양태들은 많은 다른 형태들로 구현될 수 있다. 도 1, 2 및 3은 아래에서 일부 실시예들을 제공하지만, 다른 실시예들이 고려되며, 도 1, 2 및 3의 논의는 구현들의 폭을 제한하지 않는다. 양태들 중 적어도 하나는 일반적으로 비디오 인코딩 및 디코딩에 관한 것이고, 적어도 하나의 다른 양태는 일반적으로 생성되거나 인코딩된 비트스트림을 송신하는 것에 관한 것이다. 이들 및 다른 양태들은 방법, 장치, 설명된 방법들 중 임의의 것에 따라 비디오 데이터를 인코딩 또는 디코딩하기 위한 명령어들을 저장한 컴퓨터 판독가능 저장 매체, 및/또는 설명된 방법들 중 임의의 것에 따라 생성된 비트스트림을 저장한 컴퓨터 판독가능 저장 매체로서 구현될 수 있다. 본 출원에서, 용어 "재구성된" 및 "디코딩된"은 상호 교환 가능하게 사용될 수 있고, 용어 "인코딩된" 또는 "코딩된"은 상호 교환 가능하게 사용될 수 있고, 용어 "픽셀" 및 "샘플"은 상호 교환 가능하게 사용될 수 있으며, 용어 "이미지", "픽처" 및 "프레임"은 상호 교환 가능하게 사용될 수 있다. 보통, 반드시 그런 것은 아니지만, 용어 "재구성된"은 인코더 측에서 사용되는 반면, "디코딩된"은 디코더 측에서 사용된다. 다양한 방법들이 본 명세서에서 설명되며, 각각의 방법은 설명된 방법을 달성하기 위한 하나 이상의 단계 또는 액션을 포함한다. 단계들 또는 액션들의 특정 순서가 방법의 적절한 동작을 위해 요구되지 않는 한, 특정 단계들 및/또는 액션들의 순서 및/또는 사용은 수정되거나 조합될 수 있다. 추가적으로, "제1", "제2" 등과 같은 용어들은 다양한 실시예들에서 예를 들어 "제1 디코딩" 및 "제2 디코딩"과 같이 요소, 컴포넌트, 단계, 동작 등을 수식하기 위해 사용될 수 있다. 그러한 용어들의 사용은 구체적으로 요구되지 않는 한 수정된 동작들에 대한 순서를 암시하지 않는다. 따라서, 이러한 예에서, 제1 디코딩은 제2 디코딩 전에 수행될 필요가 없으며, 예를 들어 제2 디코딩 전에, 제2 디코딩 동안에, 또는 제2 디코딩과 중첩되는 기간에 발생할 수 있다. 명확성을 위해, 조건을 충족시키는 것, 충족시키지 못하는 것 및 조건 파라미터(들)를 구성하는 것은 본 명세서에서 설명된 실시예들 전체에 걸쳐 임계치(예를 들어, 보다 큰 또는 보다 낮은), (예를 들어, 임계) 값, (예를 들어, 임계) 값을 구성하는 것 등에 상대적인 것으로서 설명된다. 예를 들어, 조건을 충족시키는 것은 (예를 들어, 임계) 값을 초과하는 것으로서 설명될 수 있고, 조건(예를 들어, 성능 기준)을 충족시키지 못하는 것은 (예를 들어, 임계) 값 미만인 것으로서 설명될 수 있다. 본 명세서에서 설명된 실시예들은 임계치 기반 조건들로 제한되지 않는다. (예컨대, 값들의 범위에 속하거나 속하지 않는 것과 같은) 임의의 종류의 다른 조건 및 파라미터(들)가 본 명세서에서 설명된 실시예들에 적용 가능할 수 있다. 본 양태들은 VVC 또는 HEVC로 제한되지 않으며, 예를 들어, 기존의 것이든 미래에 개발되는 것이든 관계없는 다른 표준들 및 권고안들, 그리고 (VVC 및 HEVC를 포함하는) 임의의 그러한 표준들 및 권고안들의 확장들에 적용될 수 있다. 달리 표시되지 않거나 기술적으로 배제되지 않는 한, 본 출원에서 설명된 양태들은 개별적으로 또는 조합하여 사용될 수 있다. 도 1은 다양한 양태들 및 실시예들이 구현될 수 있는 시스템의 예의 블록도를 예시한다. 시스템(100)은 아래에서 설명되는 다양한 컴포넌트들을 포함하는 디바이스로서 구현될 수 있으며, 본 출원에서 설명되는 양태들 중 하나 이상을 수행하도록 구성된다. 그러한 디바이스들의 예들은 개인용 컴퓨터들, 랩톱 컴퓨터들, 스마트폰들, 태블릿 컴퓨터들, 디지털 멀티미디어 셋톱 박스들, 디지털 텔레비전 수신기들, 개인용 비디오 기록 시스템들, 연결된 가전 제품들 및 서버들과 같은 다양한 전자 디바이스들을 포함하지만, 이에 제한되지 않는다. 시스템(100)의 요소들은 단독으로 또는 조합하여, 단일 집적 회로, 다수의 IC들 및/또는 별개의 컴포넌트들로 구현될 수 있다. 예를 들어, 적어도 일 실시예에서, 시스템(100)의 처리 및 인코더/디코더 요소들은 다수의 IC들 및/또는 별개의 컴포넌트들에 걸쳐 분산된다. 다양한 실시예들에서, 시스템(100)은 예를 들어, 통신 버스를 통해 또는 전용 입력 및/또는 출력 포트들을 통해 다른 시스템들에 또는 다른 전자 디바이스들에 통신 가능하게 결합된다. 다양한 실시예들에서, 시스템(100)은 본 출원에서 설명된 양태들 중 하나 이상을 구현하도록 구성된다. 시스템(100)은 예를 들어, 본 출원에서 설명된 다양한 양태들을 구현하기 위해 그 안에 로딩된 명령어들을 실행하도록 구성된 적어도 하나의 프로세서(110)를 포함한다. 프로세서(110)는 내장 메모리, 입력 출력 인터페이스, 및 본 기술분야에 알려진 다양한 다른 회로들을 포함할 수 있다. 시스템(100)은 적어도 하나의 메모리(120)(예를 들어, 휘발성 메모리 디바이스 및/또는 비휘발성 메모리 디바이스)를 포함한다. 시스템(100)은 저장 디바이스(140)를 포함하며, 이는 EEPROM, ROM, PROM, RAM, DRAM, SRAM, 플래시, 자기 디스크 드라이브, 및/또는 광학 디스크 드라이브를 포함하지만 이에 제한되지 않는 비휘발성 메모리 및/또는 휘발성 메모리를 포함할 수 있다. 저장 디바이스(140)는 비제한적인 예들로서 내부 저장 디바이스, 부착된 저장 디바이스, 및/또는 네트워크 액세스 가능 저장 디바이스를 포함할 수 있다. 시스템(100)은 예를 들어, 인코딩된 비디오 또는 디코딩된 비디오를 제공하기 위해 데이터를 처리하도록 구성된 인코더/디코더 모듈(130)을 포함하고, 인코더/디코더 모듈(130)은 그 자신의 프로세서 및 메모리를 포함할 수 있다. 인코더/디코더 모듈(130)은 인코딩 및/또는 디코딩 기능들을 수행하기 위해 디바이스에 포함될 수 있는 모듈(들)을 나타낸다. 알려진 바와 같이, 디바이스는 인코딩 및 디코딩 모듈들 중 하나 또는 둘 모두를 포함할 수 있다. 추가적으로, 인코더/디코더 모듈(130)은 시스템(100)의 별개의 요소로서 구현될 수 있거나, 본 기술분야의 통상의 기술자들에게 알려진 하드웨어 및 소프트웨어의 조합으로서 프로세서(110) 내에 통합될 수 있다. 본 출원에서 설명된 다양한