KR102539110B1 - 효율적인 디블로킹을 수행하기 위한 이미지 처리 디바이스 및 방법 - Google Patents
효율적인 디블로킹을 수행하기 위한 이미지 처리 디바이스 및 방법 Download PDFInfo
- Publication number
- KR102539110B1 KR102539110B1 KR1020207030448A KR20207030448A KR102539110B1 KR 102539110 B1 KR102539110 B1 KR 102539110B1 KR 1020207030448 A KR1020207030448 A KR 1020207030448A KR 20207030448 A KR20207030448 A KR 20207030448A KR 102539110 B1 KR102539110 B1 KR 102539110B1
- Authority
- KR
- South Korea
- Prior art keywords
- block
- samples
- filter
- values
- coding
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/117—Filters, e.g. for pre-processing or post-processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/14—Coding unit complexity, e.g. amount of activity or edge presence estimation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
- H04N19/82—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/86—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/96—Tree coding, e.g. quad-tree coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Image Processing (AREA)
Abstract
본 발명은 화상 처리 분야에 관한 것이다. 특히, 본 발명은 이미지 처리 디바이스의 디블로킹 필터를 개선하는 것을 다룬다. 이를 위해, 본 발명은 블록 코드로 인코딩된 이미지의 제1 코딩 블록과 제2 코딩 블록 사이의 블록 에지를 디블로킹하기 위해, 이미지 인코더 및/또는 이미지 디코더에서 사용하기 위해 의도된 이미지 처리 디바이스를 제시한다. 제1 블록은 블록 크기(SA)를 갖는 한편, 제2 블록은 블록 크기 (SB)를 갖는다. 디바이스는 블록 에지를 필터링하기 위한 필터를 포함하는데, 필터는, 제1 코딩 블록의 샘플 값들의 많아야 수 (MA)를 제1 필터 출력 값들로서 수정하고, 제2 코딩 블록의 샘플 값들의 많아야 수 (MB)를 제2 필터 출력 값들로서 수정하고, 제1 코딩 블록의 샘플 값들의 많아야 수 (IA)를 제1 필터 입력 값들로서 이용하고, 제2 코딩 블록의 샘플 값들의 많아야 수 (IB)를 제2 필터 입력 값들로서 이용하도록 구성된다. 여기서, IA ≠ IB이고 MA ≠ MB이다.
Description
본 발명의 실시예들은 화상(picture) 처리 분야, 예를 들어, 정지 화상 및/또는 비디오 화상 코딩에 관한 것이다. 특히, 본 발명은 디블로킹 필터의 개선을 다룬다.
이미지 코딩(인코딩 및 디코딩)은 광범위한 디지털 이미지 애플리케이션들, 예를 들어, 브로드캐스트 디지털 TV, 인터넷 및 모바일 네트워크들을 통한 비디오 송신, 비디오 채팅, 비디오 회의와 같은 실시간 대화 애플리케이션들, DVD 및 블루레이 디스크들, 비디오 콘텐츠 취득 및 편집 시스템들, 및 보안 애플리케이션들의 캠코더들에서 사용된다.
1990년의 H.261 표준에서의 블록-기반 하이브리드 비디오 코딩 접근법의 개발 이후로, 새로운 비디오 코딩 기술 및 툴들이 개발되었고 새로운 비디오 코딩 표준들에 대한 기초를 형성하였다. 대부분의 비디오 코딩 표준들의 목표들 중 하나는 화상 품질을 희생하지 않고서 그의 선행자에 비해 비트레이트 감소를 달성하는 것이었다. 추가 비디오 코딩 표준들은 MPEG-1 비디오, MPEG-2 비디오, ITU-T H.262/MPEG-2, ITU-T H.263, ITU-T H.264/MPEG-4, 파트 10, AVC(Advanced Video Coding), ITU-T H.265, HEVC(High Efficiency Video Coding), 및 확장들, 예를 들어 이들 표준들의 확장성 및/또는 3차원(3D) 확장들을 포함한다.
블록-기반 이미지 코딩 방식들은 블록 에지들을 따라 에지 아티팩트들이 나타날 수 있다는 점을 공통으로 갖는다. 이들 아티팩트들은 코딩 블록들의 독립적인 코딩으로 인한 것이다. 이들 에지 아티팩트들은 종종 사용자에게 쉽게 가시적이 된다. 블록-기반 이미지 코딩에서의 목표는 가시성 임계값 아래로 에지 아티팩트들을 감소시키는 것이다. 이것은 디블로킹 필터링(deblocking filtering)을 수행함으로써 행해진다. 이러한 디블로킹 필터링은, 한편으로는, 가시적 에지 아티팩트들을 제거하기 위해 디코딩 측에서 수행되지만, 에지 아티팩트들이 여하튼 이미지 내로 인코딩되는 것을 방지하기 위하여 코딩 측에서도 수행된다. 특히 작은 코드 블록 크기에 대해, 디블로킹 필터링은 도전적 과제일 수 있다.
전술한 과제들을 고려하여, 본 발명은 종래의 디블로킹 필터링을 개선하는 것을 목표로 한다. 본 발명은 처리 시간이 감소된 디블로킹 필터링을 수행할 수 있는 이미지 처리 디바이스를 제공하려는 목적을 갖는다. 또한, 디블로킹은 효율적이고 정확해야 한다.
본 발명의 실시예들은 독립 청구항들의 특징들에 의해 정의되고, 그리고 실시예들의 추가적인 유리한 구현들은 종속 청구항들의 특징들에 의해 정의된다.
본 발명의 제1 양태에 따르면, 이미지 처리 디바이스가 제공된다. 이미지 처리 디바이스는 블록 코드로 인코딩된 이미지의 제1 코딩 블록과 제2 코딩 블록 사이의 블록 에지를 디블로킹하기 위해 이미지 인코더 및/또는 이미지 디코더에서 사용하기 위해 의도된다. 제1 코딩 블록은 블록 에지에 수직인 블록 크기 SA를 갖는 한편, 제2 코딩 블록은 블록 에지에 수직인 블록 크기 SB를 갖는다. 이미지 처리 디바이스는 블록 에지를 필터링하기 위한 필터를 포함하는데, 이 필터는
- 블록 에지에 인접한, 제1 코딩 블록의 샘플 값들의 많아야 수 MA를 제1 필터 출력 값들로서 수정하고,
- 블록 에지에 인접한, 제2 코딩 블록의 샘플 값들의 많아야 수 MB를 제2 필터 출력 값들로서 수정하고,
- 제1 필터 출력 값들 및/또는 제2 필터 출력 값들을 계산하기 위해, 블록 에지에 인접한, 제1 코딩 블록의 샘플 값들의 많아야 수 IA를 제1 필터 입력 값들로서 이용하고,
- 제1 필터 출력 값들 및/또는 제2 필터 출력 값들을 계산하기 위해, 블록 에지에 인접한 제2 코딩 블록의 샘플 값들의 많아야 수 IB를 제2 필터 입력 값들로서 이용하도록 구성된다.
여기서, IA ≠ IB이고 MA ≠ MB이다.
이는 블록 에지의 양측을 상이하게 핸들링하는 것을 허용하고, 따라서 디블로킹이 코딩 블록 크기에 독립적으로 병렬로 수행될 수 있도록 보장한다. 따라서, 디블로킹 필터링을 위한 처리 시간은 상당히 감소된다.
이미지 처리 디바이스는 필터링 및 수정을 수행하도록 구성된 프로세서를 포함할 수 있다는 점에 유의해야 한다.
유리하게는, SA ≠ SB이다.
이는 특히 상이한 코딩 블록 크기들의 블록들 사이의 에지들이 병렬로 디블로킹될 수 있는 것을 보장한다.
바람직하게는, 이미지 처리 디바이스는,
- 제1 필터 결정 값들로서, 블록 에지에 인접한 제1 코딩 블록의 샘플 값들의 많아야 수 DA, 및
- 제2 필터 결정 값들로서, 블록 에지에 인접한 제2 코딩 블록의 샘플 값들의 많아야 수 DB에 기초하여 블록 에지가 필터링될 것인지 및/또는 강한 필터링 또는 약한 필터링이 수행될 것인지를 결정하도록 구성된 결정기를 포함한다.
이는 어느 에지들이 실제로 디블로킹되고 어느 에지들이 디블로킹되지 않을지에 대한 매우 정확하고 병행적인 결정을 허용한다.
유리하게는, 제1 필터 입력 값들은 제1 필터 결정 값들과 동일하다. 제2 필터 입력 값들은 제2 필터 결정 값들과 동일하다.
이는 디블로킹의 효율성을 더 증가시킨다.
바람직하게는, SA = 4이면, 필터는
IA를 3에, 및
MA를 1에 설정하도록 구성된다.
이에 의해, 매우 효율적인 디블로킹이 보장된다.
유리하게는, SB = 8이면, 필터는
IB를 4에, 및
MB를 3 또는 4에 설정하도록 구성된다.
이것은 특히 정확하고 병렬인 디블로킹을 보장한다.
바람직하게는, SB = 16이면, 필터는
IB를 8에, 및
MB를 7 또는 8에 설정하도록 구성된다.
이에 의해, 디블로킹 정확도의 추가적인 증가가 달성된다.
유리하게는, SB > 4이면, 필터는
IB를 SB/2에, 및
MB를 SB/2 또는 SB/2 - 1에 설정하도록 구성된다.
이에 의해, 특히 효율적인 디블로킹이 가능하다.
바람직하게는, SA = 8이면, 필터는
IA를 SA/2에, 및
MA를 SA/2 또는 SA/2 - 1에 설정하도록 구성된다.
그에 의해 블로킹 효율 및 정확도의 추가적인 증가가 달성된다.
바람직하게는, SB > 8이면, 필터는
IB를 SB/2에, 및
MB를 SB/2 또는 SB/2 - 1에 설정하도록 구성된다.
이것은 디블로킹의 효율성 및 정확도를 더 증가시킨다.
유리하게는, 블록 에지가 수평 블록 에지인 경우, 그리고 블록 에지가 코딩 트리 유닛 CTU, 이미지의 블록 에지와 중첩되는 경우, 그리고 제2 코딩 블록이 현재 블록이고 제1 코딩 블록이 상기 현재 블록의 이웃 블록인 경우, 필터는
IA를 4에, 및
MA를 3 또는 4에 설정하도록 구성된다.
이는 수평 코딩 유닛 에지에서 디블로킹을 수행하기 위해 필요한 이전 코딩 유닛들의 픽셀 값들을 저장하기 위해 요구되는 라인 메모리를 상당히 감소시킨다.
본 발명의 제2 양태에 따르면, 전술한 이미지 처리 디바이스를 포함하는, 이미지를 인코딩하기 위한 인코더가 제공된다.
이는 이미지의 매우 효율적이고 정확한 인코딩을 허용한다.
본 발명의 제3 양태에 따르면, 이전에 도시된 이미지 처리 디바이스를 포함하는, 이미지를 디코딩하기 위한 디코더가 제공된다.
이것은 이미지의 특히 정확하고 효율적인 디코딩을 허용한다.
본 발명의 제4 양태에 따르면, 이미지 인코딩 및/또는 이미지 디코딩에서 블록 코드로 인코딩된 이미지의 제1 코딩 블록과 제2 코딩 블록 사이의 블록 에지의 디블로킹을 위한 디블로킹 방법이 제공된다. 제1 코딩 블록은 블록 에지에 수직인 블록 크기 SA를 갖는다. 제2 코딩 블록은 블록 에지에 수직인 블록 크기 SB를 갖는다. 디코딩은 필터링을 포함하고, 이 필터링은:
- 블록 에지에 인접하는, 제1 코딩 블록의 샘플 값들의 많아야 수 MA를 제1 필터 출력 값들로서 수정하는 것,
- 블록 에지에 인접하는, 제2 코딩 블록의 샘플 값들의 많아야 수 MB를 제2 필터 출력 값들로서 수정하는 것,
- 제1 필터 출력 값들 및/또는 제2 필터 출력 값들을 계산하기 위해, 블록 에지에 인접한, 제1 코딩 블록의 샘플 값들의 많아야 수 IA를 제1 필터 입력 값들로서 이용하는 것,
- 제1 필터 출력 값들 및/또는 제2 필터 출력 값들을 계산하기 위해, 블록 에지에 인접한, 제2 코딩 블록의 샘플 값들의 많아야 수 IB를 제2 필터 입력 값들로서 이용하는 것을 포함한다.
여기서, IA ≠ IB이고 MA ≠ MB이다.
이는 특히 정확하고 효율적인 디블로킹을 허용한다.
유리하게는, SA ≠ SB이다.
이는 특히 상이한 코딩 블록 크기들의 블록들 사이의 에지들이 병렬로 디블로킹될 수 있는 것을 보장한다.
바람직하게는, 방법은,
- 제1 필터 결정 값들로서, 블록 에지에 인접한 제1 코딩 블록의 샘플 값들의 많아야 수 DA, 및
- 제2 필터 결정 값들로서, 블록 에지에 인접한 제2 코딩 블록의 샘플 값들의 많아야 수 DB에 기초하여 블록 에지가 필터링될 것인지 및/또는 강한 필터링 또는 약한 필터링이 수행될 것인지를 결정하는 단계를 포함한다.
이는 어느 에지들이 실제로 디블로킹되고 어느 에지들이 디블로킹되지 않을지에 대한 매우 정확하고 병행적인 결정을 허용한다.
유리하게는, 제1 필터 입력 값들은 제1 필터 결정 값들과 동일하다. 제2 필터 입력 값들은 제2 필터 결정 값들과 동일하다.
이는 디블로킹의 효율성을 더 증가시킨다.
바람직하게는, SA = 4인 경우, 필터링은
IA = 3, 및
MA = 1을 사용한다.
이에 의해, 매우 효율적인 디블로킹이 보장된다.
유리하게는, SB = 8이면, 필터링은
IB = 4, 및
MB = 3 또는 4를 사용한다.
이것은 특히 정확하고 병렬인 디블로킹을 보장한다.
바람직하게는, SB = 16인 경우, 필터링은
IB = 8, 및
MB = 7 또는 8을 사용한다.
이에 의해, 디블로킹 정확도의 추가적인 증가가 달성된다.
유리하게는, SB > 4이면, 필터링은
IB = SB/2, 및
MB = SB/2 또는 SB/2 - 1을 사용한다.
이에 의해, 특히 효율적인 디블로킹이 가능하다.
바람직하게는, SA = 8이면, 필터링은
IA = SA/2, 및
MA = SA/2 또는 SA/2 - 1을 사용한다.
그에 의해 블로킹 효율 및 정확도의 추가적인 증가가 달성된다.
바람직하게는, SB > 8이면, 필터링은
IB = SB/2, 및
MB = SB/2 또는 SB/2 - 1을 사용한다.
이것은 디블로킹의 효율성 및 정확도를 더 증가시킨다.
유리하게는, 블록 에지가 수평 블록 에지인 경우, 그리고 블록 에지가 코딩 트리 유닛 CTU, 이미지의 블록 에지와 중첩되는 경우, 그리고 제2 코딩 블록이 현재 블록이고 제1 코딩 블록이 상기 현재 블록의 이웃 블록인 경우, 필터링은
IA = 4, 및
MA = 3 또는 4를 사용한다.
이는 수평 코딩 유닛 에지에서 디블로킹을 수행하기 위해 필요한 이전 코딩 유닛들의 픽셀 값들을 저장하기 위해 요구되는 라인 메모리를 상당히 감소시킨다.
본 발명의 제5 양태에 따르면, 이전에 도시된 디블로킹 방법을 포함하는, 이미지를 인코딩하기 위한 인코딩 방법이 제공된다.
이는 이미지의 매우 효율적이고 정확한 인코딩을 허용한다.
본 발명의 제6 양태에 따르면, 이전에 도시된 디블로킹 방법을 포함하는 이미지를 인코딩하기 위한 디코딩 방법이 제공된다.
이는 이미지의 매우 효율적이고 정확한 디코딩을 허용한다.
본 발명의 제7 양태에 따르면, 컴퓨터 프로그램이 컴퓨터상에서 실행될 때 이전에 도시된 방법을 수행하기 위한 프로그램 코드를 갖는 컴퓨터 프로그램 제품이 제공된다.
하나 이상의 실시예의 상세 사항이 이하의 첨부 도면 및 설명에 제시된다. 다른 특징들, 목적들, 및 이점들은 설명, 도면들, 및 청구항들로부터 명백할 것이다.
이하에서 본 발명의 실시예들이 첨부된 그림 및 도면을 참조하여 더 상세히 설명된다.
도 1은 본 발명의 실시예들을 구현하도록 구성된 비디오 인코더의 예를 도시하는 블록도이다.
도 2는 본 발명의 실시예들을 구현하도록 구성된 비디오 디코더의 예시적인 구조를 도시하는 블록도이다.
도 3은 본 발명의 실시예들을 구현하도록 구성된 비디오 코딩 시스템의 예를 도시하는 블록도이다.
도 4는 3개의 예시적인 코딩 블록을 도시한다.
도 5는 본 발명의 제1 양태에 따른 창의적인 이미지 처리 디바이스의 제1 실시예를 도시한다.
도 6은 본 발명의 제2 양태에 따른 창의적인 인코더의 제1 실시예를 도시한다.
도 7은 본 발명의 제3 양태에 따른 창의적인 디코더의 제1 실시예를 도시한다.
도 8은 본 발명의 제1 양태에 따른 창의적인 이미지 처리 디바이스의 제2 실시예를 도시한다.
도 9는 본 발명의 제1 양태의 이미지 처리 디바이스의 제3 실시예에 의해 채택되는 바와 같이, 디블로킹 필터링에 사용되고 디블로킹 필터링을 위해 수정된 상이한 샘플 값들을 포함하는 3개의 예시적인 코딩 블록을 도시한다.
도 10은 디블로킹 필터링의 효율성을 증가시키기 위한 예시적인 프로세스를 묘사하는 흐름도이다.
도 11은 도 7에 도시된 예시적인 방법에 의해 필터링 동안에 사용되고 수정된 3개의 예시적인 코딩 블록 및 각자의 샘플 값들을 도시한다.
도 12는 본 발명의 제1 양태의 제4 실시예에 의해 필터링되는, 다수의 코딩 유닛을 포함하는 이미지를 도시한다.
도 13은 도 12의 예시적인 이미지의 코딩 블록들에 대응하는 2개의 예시적인 코딩 블록, 및 본 발명의 제1 양태에 따른 이미지 처리 디바이스의 제5 실시예에 의한 필터링 동안 사용되고 수정된 샘플 값들을 도시한다.
도 14는 본 발명의 제4 양태에 따른 이미지 처리 방법의 실시예의 흐름도를 도시한다.
이하에서, 동일한 참조 부호들은 동일하거나 적어도 기능적으로 동등한 특징들을 가리킨다. 부분적으로, 동일한 엔티티들을 참조하는 상이한 참조 부호들이 상이한 도면들에서 사용되었다.
도 1은 본 발명의 실시예들을 구현하도록 구성된 비디오 인코더의 예를 도시하는 블록도이다.
도 2는 본 발명의 실시예들을 구현하도록 구성된 비디오 디코더의 예시적인 구조를 도시하는 블록도이다.
도 3은 본 발명의 실시예들을 구현하도록 구성된 비디오 코딩 시스템의 예를 도시하는 블록도이다.
도 4는 3개의 예시적인 코딩 블록을 도시한다.
도 5는 본 발명의 제1 양태에 따른 창의적인 이미지 처리 디바이스의 제1 실시예를 도시한다.
도 6은 본 발명의 제2 양태에 따른 창의적인 인코더의 제1 실시예를 도시한다.
도 7은 본 발명의 제3 양태에 따른 창의적인 디코더의 제1 실시예를 도시한다.
도 8은 본 발명의 제1 양태에 따른 창의적인 이미지 처리 디바이스의 제2 실시예를 도시한다.
도 9는 본 발명의 제1 양태의 이미지 처리 디바이스의 제3 실시예에 의해 채택되는 바와 같이, 디블로킹 필터링에 사용되고 디블로킹 필터링을 위해 수정된 상이한 샘플 값들을 포함하는 3개의 예시적인 코딩 블록을 도시한다.
도 10은 디블로킹 필터링의 효율성을 증가시키기 위한 예시적인 프로세스를 묘사하는 흐름도이다.
도 11은 도 7에 도시된 예시적인 방법에 의해 필터링 동안에 사용되고 수정된 3개의 예시적인 코딩 블록 및 각자의 샘플 값들을 도시한다.
도 12는 본 발명의 제1 양태의 제4 실시예에 의해 필터링되는, 다수의 코딩 유닛을 포함하는 이미지를 도시한다.
도 13은 도 12의 예시적인 이미지의 코딩 블록들에 대응하는 2개의 예시적인 코딩 블록, 및 본 발명의 제1 양태에 따른 이미지 처리 디바이스의 제5 실시예에 의한 필터링 동안 사용되고 수정된 샘플 값들을 도시한다.
도 14는 본 발명의 제4 양태에 따른 이미지 처리 방법의 실시예의 흐름도를 도시한다.
이하에서, 동일한 참조 부호들은 동일하거나 적어도 기능적으로 동등한 특징들을 가리킨다. 부분적으로, 동일한 엔티티들을 참조하는 상이한 참조 부호들이 상이한 도면들에서 사용되었다.
먼저, 도 1 내지 도 3에 따라 이미지 코딩의 일반 개념을 설명한다. 도 4에 따라, 종래의 디블로킹 필터의 단점이 도시되어 있다. 도 5 내지 도 13과 관련하여, 창의적인 장치의 상이한 실시예들의 구성 및 기능이 도시되고 설명된다. 마지막으로, 도 14와 관련하여, 창의적인 방법의 실시예가 도시되고 설명된다. 상이한 도면들에서의 유사한 엔티티들 및 참조 번호들은 부분적으로 생략된다.
다음 설명에서는, 본 개시내용의 일부분을 형성하고, 그리고 예시의 방식에 의해, 본 발명의 실시예들의 구체적 양태들 또는 본 발명의 실시예들이 사용될 수 있는 구체적 양태들을 도시하는 첨부 도면들에 대한 참조가 이루어진다. 본 발명의 실시예들은 다른 양태들에서 사용될 수 있고 도면들에 묘사되지 않은 구조적 또는 논리적 변경들을 포함한다는 점이 이해된다. 따라서, 다음의 상세한 설명은 제한적인 의미로 간주되지 않아야 하며, 본 발명의 범위는 첨부된 청구항들에 의해서만 정의된다.
예를 들어, 설명된 방법과 관련된 개시내용은 해당 방법을 수행하도록 구성된 대응하는 디바이스 또는 시스템에 대해 또한 유효할 수 있고 그 반대도 마찬가지라는 점이 이해된다. 예를 들어, 하나의 또는 복수의 구체적 방법 단계가 설명되면, 대응하는 디바이스는 설명된 하나의 또는 복수의 방법 단계를 수행하는 하나의 또는 복수의 유닛, 예를 들어, 기능 유닛(예를 들어, 하나의 또는 복수의 단계를 수행하는 하나의 유닛, 또는 복수의 단계 중 하나 이상을 각각 수행하는 복수의 유닛)을 포함할 수 있는데, 이는 이러한 하나 이상의 유닛이 도면들에 명시적으로 설명되거나 또는 예시되지 않더라도 그러하다. 다른 한편, 예를 들어, 구체적 장치가 하나의 또는 복수의 유닛, 예를 들어, 기능 유닛들에 기초하여 설명되면, 대응하는 방법은 하나의 또는 복수의 유닛의 기능성을 수행하는 하나의 단계(예를 들어, 하나의 또는 복수의 유닛의 기능성을 수행하는 하나의 단계, 또는 복수의 유닛 중 하나 이상의 것의 기능성을 각각 수행하는 복수의 단계)를 포함할 수 있는데, 이는 이러한 하나의 또는 복수의 단계가 도면들에 명시적으로 설명되거나 또는 예시되지 않더라도 그러하다. 추가로, 본 명세서에 설명되는 다양한 예시적인 실시예들 및/또는 양태들의 특징들은, 구체적으로 다른 방식으로 설명되지 않는 한, 서로 조합될 수 있다는 점이 이해된다.
비디오 코딩은, 비디오 또는 비디오 시퀀스를 형성하는, 화상들의 시퀀스의 처리를 통상적으로 지칭한다. 용어 화상 대신에, 용어 프레임 또는 이미지가 비디오 코딩 분야에서 유의어들로서 사용될 수 있다. 비디오 코딩은 2개의 부분, 비디오 인코딩 및 비디오 디코딩을 포함한다. 비디오 인코딩은 소스 측에서 수행되고, (보다 효율적인 저장 및/또는 송신을 위해) 비디오 화상들을 표현하기 위해 요구되는 데이터의 양을 감소시키기 위해 원래의 비디오 화상들을 (예를 들어, 압축에 의해) 처리하는 것을 통상적으로 포함한다. 비디오 디코딩은 목적지 측에서 수행되고, 비디오 화상들을 재구성하기 위해 인코더와 비교해 역 처리를 통상적으로 포함한다. 비디오 화상들(또는 이후에 설명되는 대로 일반적으로는 화상들)의 "코딩"을 참조하는 실시예들은 비디오 화상들의 "인코딩" 및 "디코딩" 둘 모두에 관련되는 것으로 이해될 것이다. 인코딩 부분과 디코딩 부분의 조합은 CODEC(COding 및 DECoding)이라고 또한 지칭된다.
무손실 비디오 코딩의 경우, 원래의 비디오 화상들이 재구성될 수 있는데, 즉, 재구성된 비디오 화상들은 원래의 비디오 화상들과 동일한 품질을 갖는다(저장 또는 송신 동안 송신 손실 또는 다른 데이터 손실이 없다고 가정함). 손실성 비디오 코딩의 경우, 예를 들어, 양자화에 의한 추가의 압축이 수행되어 비디오 화상들을 표현하는 데이터의 양을 감소시키게 되고, 이 비디오 화상들은 디코더에서 완전히 재구성될 수 없는데, 즉, 재구성된 비디오 화상들의 품질이 원래의 비디오 화상들의 품질에 비해 더 낮거나 또는 더 나쁘다.
H.261 이후의 몇몇 비디오 코딩 표준들은 "손실성 하이브리드 비디오 코덱들(lossy hybrid video codecs)"의 그룹에 속한다(즉, 샘플 도메인에서의 공간적 및 시간적 예측 및 변환 도메인에서 양자화를 적용하기 위한 2D 변환 코딩을 조합함). 비디오 시퀀스의 각각의 화상은 비-중첩 블록들의 세트로 통상적으로 파티셔닝되고, 이 코딩은 블록 레벨상에서 통상적으로 수행된다. 다시 말해서, 인코더에서는, 예를 들어, 공간적(인트라 화상) 예측 및 시간적(인터 화상) 예측을 사용하여 예측 블록을 생성하는 것, 현재 블록(현재 처리되는/처리될 블록)으로부터 예측 블록을 감산하여 잔차 블록을 획득하는 것, 잔차 블록을 변환하는 것 및 변환 도메인에서 잔차 블록을 양자화하여 송신될 데이터의 양을 감소시키는 것(압축)에 의해, 블록(비디오 블록) 레벨상에서 비디오가 통상적으로 처리되고, 즉, 인코딩되는 반면, 디코더에서는 인코더와 비교해 역 처리가 인코딩된 또는 압축된 블록에 적용되어 표현을 위해 현재 블록을 재구성한다. 더욱이, 인코더는 디코더 처리 루프를 복제하여, 둘 모두가 후속 블록들을 처리하기 위한, 즉, 코딩하기 위한 동일한 예측들(예를 들어, 인트라 및 인터 예측들) 및/또는 재구성들을 생성하도록 할 것이다.
비디오 화상 처리(동화상 처리(moving picture processing)로서 또한 지칭됨) 및 정지 화상 처리(용어 처리는 코딩을 포함함)가 많은 개념 및 기술 또는 툴을 공유하므로, 이하에서 "화상(picture)"이라는 용어는, 필요하지 않을 때 비디오 화상들과 정지 화상들(still pictures) 사이의 불필요한 반복 및 구별을 회피하기 위해서 비디오 시퀀스(위에서 설명된 바와 같음)의 비디오 화상을 지칭하기 위해 및/또는 정지 화상을 지칭하기 위해 사용된다. 설명이 정지 화상(또는 정지 이미지)만을 참조하는 경우, 용어 "정지 화상"이 사용될 것이다.
이하에서, 인코더(100), 디코더(200) 및 코딩 시스템(300)의 실시예들이 도 4 내지 도 14에 기초하여 더 상세히 본 발명의 실시예들을 설명하기 전에 도 1 내지 도 3에 기초하여 설명된다.
도 3은 코딩 시스템(300), 예를 들어, 화상 코딩 시스템(300)의 실시예를 예시하는 개념적인 또는 개략적인 블록도로서, 여기서 코딩 시스템(300)은 인코딩된 데이터(330), 예를 들어 인코딩된 화상(330)을, 예를 들어 인코딩된 데이터(330)를 디코딩하기 위한 목적지 디바이스(320)에 제공하도록 구성된 소스 디바이스(310)를 포함한다.
소스 디바이스(310)는 인코더(100) 또는 인코딩 유닛(100)을 포함하고, 추가적으로, 즉 선택적으로, 화상 소스(312), 전처리 유닛(314), 화상 전처리 유닛(314), 및 통신 인터페이스 또는 통신 유닛(318)을 포함할 수 있다.
화상 소스(312)는, 예를 들어, 실세계 화상을 캡처하기 위한 임의 종류의 화상 캡처 디바이스, 및/또는 예를 들어, 컴퓨터 애니메이션 화상을 생성하기 위한 컴퓨터 그래픽 프로세서인 임의 종류의 화상 생성 디바이스, 또는 실세계 화상, 컴퓨터 애니메이션 화상(예를 들어, 스크린 콘텐츠, 가상 현실(VR) 화상) 및/또는 이들의 임의의 조합(예를 들어, 증강 현실(AR) 화상)을 획득 및/또는 제공하기 위한 임의 종류의 디바이스를 포함할 수 있거나 이들일 수 있다. 이하에서, 이들 모든 종류의 화상 및 임의의 다른 종류의 화상은, 달리 구체적으로 설명되지 않는 한, "화상" 또는 "이미지"로 지칭될 것인 한편, "비디오 화상" 및 "정지 화상"을 커버하는 "화상"이라는 용어에 관한 이전의 설명은 다르게 명시적으로 특정되지 않는 한, 여전히 유효하다.
(디지털) 화상은 강도 값들을 갖는 샘플들의 2차원 어레이 또는 행렬이거나 또는 이들로서 간주될 수 있다. 이러한 어레이에서의 샘플은 픽셀(화상 요소의 줄임말) 또는 펠(pel)이라고 또한 지칭될 수 있다. 어레이 또는 화상의 수평 및 수직 방향(또는 축)에서의 샘플들의 수는 화상의 크기 및/또는 해상도를 정의한다. 컬러의 표현을 위해, 통상적으로 3개의 컬러 성분이 채택되는데, 즉, 화상은 3개의 샘플 어레이로 표현될 수 있거나 또는 이들을 포함할 수 있다. RGB 포맷 또는 컬러 공간에서 화상은 대응하는 적색, 녹색 및 청색 샘플 어레이를 포함한다. 그러나, 비디오 코딩에서 각각의 픽셀은 휘도/색차 포맷 또는 컬러 공간에서, 예를 들어, Y(때때로 L이 또한 대신 사용됨)에 의해 표시되는 휘도 성분 및 Cb 및 Cr에 의해 표시되는 2개의 색차 성분을 포함하는 YCbCr로 통상적으로 표현된다. 휘도(또는 줄여서 루마) 성분 Y는 밝기 또는 그레이 레벨 강도(예를 들어, 그레이 스케일 화상에서와 같이)를 표현하는 한편, 2개의 색차(또는 줄여서 크로마) 성분 Cb 및 Cr은 색도 또는 컬러 정보 성분들을 표현한다. 따라서, YCbCr 포맷에서의 화상은 휘도 샘플 값들(Y)의 휘도 샘플 어레이, 및 색차 값들(Cb 및 Cr)의 2개의 색차 샘플 어레이를 포함한다. RGB 포맷에서의 화상들은 YCbCr 포맷으로 전환되거나 또는 변환될 수 있고 그 반대도 마찬가지이며, 이러한 프로세스는 컬러 변환 또는 전환으로서 또한 알려져 있다. 화상이 흑백이면, 이러한 화상은 휘도 샘플 어레이만을 포함할 수 있다.
화상 소스(312)는, 예를 들어, 화상을 캡처하기 위한 카메라, 메모리, 예를 들어 이전에 캡처되거나 생성된 화상을 포함하거나 저장하기 위한 화상 메모리, 및/또는 화상을 획득 또는 수신하기 위한 임의 종류의 인터페이스(내부 또는 외부)일 수 있다. 이러한 카메라는, 예를 들어, 소스 디바이스에 통합되는 로컬 또는 통합형 카메라일 수 있고, 이러한 메모리는, 예를 들어, 소스 디바이스에 통합되는 로컬 또는 통합형 메모리일 수 있다. 이러한 인터페이스는, 예를 들어, 외부 비디오 소스, 예를 들어, 카메라와 같은 외부 화상 캡처 디바이스, 외부 메모리, 또는 외부 화상 생성 디바이스, 예를 들어, 외부 컴퓨터 그래픽 프로세서, 컴퓨터 또는 서버로부터 화상을 수신하는 외부 인터페이스일 수 있다. 이러한 인터페이스는 임의 종류의 인터페이스, 예를 들어, 임의의 독점적 또는 표준화된 인터페이스 프로토콜에 따른, 유선 또는 무선 인터페이스, 광학적 인터페이스일 수 있다. 화상 데이터(312)를 획득하기 위한 인터페이스는 통신 인터페이스(318)와 동일한 인터페이스 또는 그 일부분일 수 있다.
전처리 유닛(314) 및 전처리 유닛(314)에 의해 수행되는 처리와의 구별을 위해, 화상 또는 화상 데이터(313)는 원시 화상 또는 원시 화상 데이터(313)로도 지칭될 수 있다.
전처리 유닛(314)은 (원시) 화상 데이터(313)를 수신하고 그리고 화상 데이터(313)에 대한 전처리를 수행하여 전처리된 화상(315) 또는 전처리된 화상 데이터(315)를 획득하도록 구성된다. 전처리 유닛(314)에 의해 수행되는 전처리는, 예를 들어, 트리밍, (예를 들어, RGB로부터 YCbCr으로의) 컬러 포맷 전환, 컬러 정정, 또는 잡음 제거를 포함할 수 있다.
인코더(100)는 전처리된 화상 데이터(315)를 수신하고 인코딩된 화상 데이터(171)를 제공하도록 구성된다(예를 들어 도 1에 기초하여 추가의 상세 사항이 설명될 것이다).
소스 디바이스(310)의 통신 인터페이스(318)는 디코딩 또는 저장을 위해, 인코딩된 화상 데이터(171)를 수신하고 이것을 저장 또는 직접 재구성을 위해 또 다른 디바이스, 예를 들어 목적지 디바이스(320) 또는 임의의 다른 디바이스에 직접 송신하거나, 또는 인코딩된 데이터(330)를 저장하고 및/또는 인코딩된 데이터(330)를 또 다른 디바이스, 예를 들어 목적지 디바이스(320) 또는 임의의 다른 디바이스에 송신하기 전에 제각기 인코딩된 화상 데이터(171)를 처리하도록 구성될 수 있다.
목적지 디바이스(320)는 디코더(200) 또는 디코딩 유닛(200)을 포함하고, 추가적으로, 즉 선택적으로, 통신 인터페이스 또는 통신 유닛(322), 후처리 유닛(326) 및 디스플레이 디바이스(328)를 포함할 수 있다.
목적지 디바이스(320)의 통신 인터페이스(322)는 예를 들어 소스 디바이스(310)로부터 직접적으로 또는 임의의 다른 소스, 예를 들어, 메모리, 예를 들어 인코딩된 화상 데이터 메모리로부터 인코딩된 화상 데이터(171) 또는 인코딩된 데이터(330)를 수신하도록 구성된다.
통신 인터페이스(318) 및 통신 인터페이스(322)는 소스 디바이스(310)와 목적지 디바이스(320) 사이의 직접 통신 링크, 예를 들어, 직접 유선 또는 무선 접속을 통해, 또는 임의의 종류의 네트워크, 예를 들어, 유선 또는 무선 네트워크 또는 이들의 임의의 조합, 또는 임의의 종류의 사설 및 공용 네트워크, 또는 임의 종류의 이들의 조합을 통해, 인코딩된 화상 데이터(171) 또는 인코딩된 데이터(330)를 제각기 송신 또는 수신하도록 구성될 수 있다.
통신 인터페이스(318)는 인코딩된 화상 데이터(171)를 통신 링크 또는 통신 네트워크를 통한 송신을 위해 적절한 포맷, 예를 들어 패킷들로 패키징하도록 구성될 수 있고, 데이터 손실 보호 및 데이터 손실 복원을 추가로 포함할 수 있다.
통신 인터페이스(318)의 상대방을 형성하는 통신 인터페이스(322)는 인코딩된 화상 데이터(171)를 획득하기 위해 인코딩된 데이터(330)를 디패키징(de-package)하도록 구성될 수 있고, 예를 들어 오차 은닉(error concealment)을 포함하는 데이터 손실 보호 및 데이터 손실 복원을 수행하도록 추가로 구성될 수 있다.
통신 인터페이스(318) 및 통신 인터페이스(322) 둘 모두는, 소스 디바이스(310)로부터 목적지 디바이스(320)로 포인팅하는 도 3의 인코딩된 화상 데이터(330)에 대한 화살표로 표시된 바와 같이 단방향 통신 인터페이스들, 또는 양방향 통신 인터페이스들로서 구성될 수 있고, 예를 들어, 메시지들을 송신 및 수신하고, 예를 들어, 접속을 셋업하고, 화상 데이터를 포함하는 손실된 또는 지연된 데이터를 확인응답 및/또는 재송신하고, 및 통신 링크 및/또는 데이터 송신, 예를 들어 인코딩된 화상 데이터 송신과 관련된 임의의 다른 정보를 교환하도록 구성될 수 있다.
디코더(200)는 인코딩된 화상 데이터(171)를 수신하고 디코딩된 화상 데이터(231) 또는 디코딩된 화상(231)을 제공하도록 구성된다(예를 들어, 도 2에 기초하여 추가의 상세한 사항이 설명될 것이다).
목적지 디바이스(320)의 후처리기(post-processor)(326)는 디코딩된 화상 데이터(231), 예를 들어, 디코딩된 화상(231)을 후처리하여 후처리된 화상 데이터(327), 예를 들어 후처리된 화상(327)을 획득하도록 구성된다. 후처리 유닛(326)에 의해 수행되는 후처리는, 예를 들어, (예를 들어, YCbCr로부터 RGB로의) 컬러 포맷 전환, 컬러 정정, 트리밍, 또는 재샘플링, 또는, 예를 들어, 디스플레이 디바이스(328)에 의한, 예를 들어, 디스플레이를 위해 디코딩된 화상 데이터(231)를 준비하기 위한 임의의 다른 처리를 포함할 수 있다.
목적지 디바이스(320)의 디스플레이 디바이스(328)는, 예를 들어, 사용자 또는 시청자에게 화상을 디스플레이하기 위해 후처리된 화상 데이터(327)를 수신하도록 구성된다. 디스플레이 디바이스(328)는 재구성된 화상을 표현하기 위한 임의 종류의 디스플레이, 예를 들어, 통합형 또는 외부 디스플레이 또는 모니터일 수 있거나 또는 이것을 포함할 수 있다. 디스플레이들은, 예를 들어, 음극선관(CRT), 액정 디스플레이들(LCD), 플라즈마 디스플레이들, 유기 발광 다이오드들(OLED) 디스플레이들, 또는 임의의 종류의 다른 디스플레이 ... 비머(beamer), 홀로그램(3D), ...을 포함할 수 있다.
도 3이 소스 디바이스(310) 및 목적지 디바이스(320)를 별개의 디바이스들로서 묘사하지만, 디바이스들의 실시예들은 소스 디바이스(310) 또는 대응하는 기능성 및 목적지 디바이스(320) 또는 대응하는 기능성 둘 모두 또는 둘 모두의 기능성을 포함할 수 있다. 이러한 실시예들에서, 소스 디바이스(310) 또는 대응하는 기능성 및 목적지 디바이스(320) 또는 대응하는 기능성은 동일한 하드웨어 및/또는 소프트웨어를 사용하여 또는 별개의 하드웨어 및/또는 소프트웨어 또는 이들의 임의의 조합에 의해 구현될 수 있다.
이러한 설명에 기초하여 통상의 기술자에게 명백한 바와 같이, 도 3에 도시된 바와 같은 소스 디바이스(310) 및/또는 목적지 디바이스(320) 내의 기능성들 또는 상이한 유닛들의 기능성들의 존재 및 (정확한) 분할은 실제 디바이스 및 애플리케이션에 의존하여 다를 수 있다.
따라서, 도 3에 도시된 소스 디바이스(310) 및 목적지 디바이스(320)는 단지 본 발명의 예시적인 실시예들이고 본 발명의 실시예들은 도 3에 도시된 것들로 제한되지는 않는다.
소스 디바이스(310) 및 목적지 디바이스(320)는 임의 종류의 핸드헬드 또는 고정 디바이스들, 예를 들어 노트북 또는 랩톱 컴퓨터들, 모바일 폰들, 스마트폰들, 태블릿들 또는 태블릿 컴퓨터들, 카메라들, 데스크톱 컴퓨터들, 셋톱 박스들, 텔레비전들, 디스플레이 디바이스들, 디지털 미디어 플레이어들, 비디오 게임 콘솔들, 비디오 스트리밍 디바이스들, 방송 수신기 디바이스, 또는 그와 유사한 것을 포함하는 광범위한 디바이스들 중 임의의 것을 포함할 수 있고, (또한, 대규모 전문적 인코딩/디코딩을 위한 서버들 및 워크 스테이션들, 예를 들어, 네트워크 엔티티들), 어떠한 운영 체제도 사용하지 않거나 또는 임의 종류의 운영 체제를 사용할 수 있다).
도 1은, 입력(102), 잔차 계산 유닛(104), 변환 유닛(106), 양자화 유닛(108), 역양자화 유닛(110), 및 역변환 유닛(112), 재구성 유닛(114), 버퍼(118), 루프 필터(120), 디코딩된 화상 버퍼(DPB)(130), 예측 유닛(160) [인터 추정 유닛(142), 인터 예측 유닛(144), 인트라 추정 유닛(152), 인트라 예측 유닛(154)], 모드 선택 유닛(162), 엔트로피 인코딩 유닛(170), 및 출력(172)을 포함하는 인코더(100), 예를 들어, 화상 인코더(100)의 실시예의 개략적/개념적 블록도를 도시한다. 도 1에 도시된 바와 같은 비디오 인코더(100)는 하이브리드 비디오 코덱에 따른 하이브리드 비디오 인코더 또는 비디오 인코더라고도 지칭될 수 있다.
예를 들어, 잔차 계산 유닛(104), 변환 유닛(106), 양자화 유닛(108), 및 엔트로피 인코딩 유닛(170)은 인코더(100)의 순방향 신호 경로를 형성하는 반면, 예를 들어, 역양자화 유닛(110), 역변환 유닛(112), 재구성 유닛(114), 버퍼(118), 루프 필터(120), 디코딩된 화상 버퍼(DPB)(130), 인터 예측 유닛(144), 및 인트라 예측 유닛(154)은 인코더의 역방향 신호 경로를 형성하고, 여기서 인코더의 역방향 신호 경로는 디코더의 신호 경로에 대응한다(도 2의 디코더(200) 참조).
인코더는, 예를 들어 입력(102), 화상(101) 또는 화상(101)의 화상 블록(103), 예를 들어 비디오 또는 비디오 시퀀스를 형성하는 화상들의 시퀀스의 화상을 수신하도록 구성된다. 화상 블록(103)은 현재 화상 블록 또는 코딩될 화상 블록이라고 또한 지칭될 수 있고, 화상(101)은 현재 화상 또는 코딩될 화상이라고 지칭될 수 있다(특히 비디오 코딩에서 현재 화상을 다른 화상들, 예를 들어, 동일한 비디오 시퀀스, 즉, 현재 화상을 또한 포함하는 비디오 시퀀스의 이전에 인코딩된 및/또는 디코딩된 화상들로부터 구별하기 위해).
인코더(100)의 실시예들은, 예를 들어, 화상(103)을 복수의 블록, 예를 들어 블록(103)과 같은 블록들, 전형적으로는 복수의 비중첩 블록들로 파티셔닝하도록 구성된 화상 파티셔닝 유닛(picture partitioning unit)으로도 지칭될 수 있는 파티셔닝 유닛(도 1에 묘사되지 않음)을 포함할 수 있다. 파티셔닝 유닛은 비디오 시퀀스의 모든 화상들에 대해 동일한 블록 크기를 그리고 이 블록 크기를 정의하는 대응하는 그리드를 사용하도록, 또는 화상들 또는 서브세트들 또는 화상들의 그룹들 사이의 블록 크기를 변경하고, 각각의 화상을 대응하는 블록들로 파티셔닝하도록 구성될 수 있다.
화상(101)과 같이, 블록(103)은 다시, 화상(101)보다 작은 치수의 것이라 하더라도, 강도 값들(샘플 값들)을 갖는 샘플들의 2차원 어레이 또는 행렬이거나 또는 이것으로서 간주될 수 있다. 다시 말해서, 블록(103)은, 예를 들어, 적용된 컬러 포맷에 의존하여 하나의 샘플 어레이(예를 들어, 흑백 화상(101)의 경우에 루마 어레이) 또는 3개의 샘플 어레이(예를 들어, 컬러 화상(101)의 경우에 루마 및 2개의 크로마 어레이) 또는 임의의 다른 수 및/또는 종류의 어레이들을 포함할 수 있다. 블록(103)의 수평 및 수직 방향(또는 축)에서의 샘플들의 수는 블록(103)의 크기를 정의한다.
도 1에 도시된 바와 같은 인코더(100)는 블록별로 화상(101)을 인코딩하도록 구성되고, 예를 들어 인코딩 및 예측은 블록(103)마다 수행된다.
잔차 계산 유닛(104)은 화상 블록(103) 및 예측 블록(165)(예측 블록(165)에 관한 추가 상세 사항들은 나중에 제공됨)에 기초하여, 예를 들어 샘플별로(픽셀별로) 화상 블록(103)의 샘플 값들로부터 예측 블록(165)의 샘플 값들을 감산하여 샘플 도메인에서 잔차 블록(105)을 획득함으로써 잔차 블록(105)을 계산하도록 구성된다.
변환 유닛(106)은 잔차 블록(105)의 샘플 값들에 대해 변환, 예를 들어 공간 주파수 변환 또는 선형 공간 변환, 예를 들어 이산 코사인 변환(DCT) 또는 이산 사인 변환(DST)을 적용하여 변환 도메인에서 변환된 계수들(107)을 획득하도록 구성된다. 변환된 계수들(107)은 또한 변환된 잔차 계수들로 지칭될 수 있고, 변환 도메인에서 잔차 블록(105)을 나타낸다.
변환 유닛(106)은 HEVC/H.265에 대해 특정된 코어 변환들과 같은 DCT/DST의 정수 근사들을 적용하도록 구성될 수 있다. 직교 DCT 변환에 비해, 이러한 정수 근사들은 특정 인자에 의해 통상적으로 스케일링된다. 순방향 및 역변환들에 의해 처리되는 잔차 블록의 노름(norm)을 보존하기 위해, 추가적인 스케일링 인자들이 변환 프로세스의 일부로서 적용된다. 이러한 스케일링 인자들은, 시프트 연산, 변환 계수들의 비트 심도, 정확도와 구현 비용 사이의 절충 등을 위해 2의 멱수인 스케일링 인자들과 같은 특정 제약들에 기초하여 통상적으로 선택된다. 특정한 스케일링 인자들이, 예를 들어 디코더(200)에서의 역변환 유닛(212)에 의한 역변환 (및 예를 들어 인코더(100)에서의 역변환 유닛(112)에 의한 대응하는 역변환)에 대해 예를 들어 특정되고, 예를 들어 인코더(100)에서의 변환 유닛(106)에 의한 순방향 변환에 대한 대응하는 스케일링 인자들이 그에 따라 특정될 수 있다.
양자화 유닛(108)은 변환된 계수들(107)을 양자화하여, 예를 들어 스칼라 양자화 또는 벡터 양자화를 적용함으로써, 양자화된 계수들(109)을 획득하도록 구성된다. 양자화된 계수들(109)은 양자화된 잔차 계수들(109)로도 지칭될 수 있다. 예를 들어, 스칼라 양자화에 대해, 더 미세한 또는 더 거친 양자화를 달성하기 위해 상이한 스케일링이 적용될 수 있다. 더 작은 양자화 단계 크기들은 더 미세한 양자화에 대응하는 반면, 더 큰 양자화 단계 크기들은 더 거친 양자화에 대응한다. 적용가능한 양자화 단계 크기는 QP(quantization parameter)에 의해 표시될 수 있다. 양자화 파라미터는 예를 들어, 적용가능한 양자화 단계 크기들의 미리 정의된 세트에 대한 인덱스일 수 있다. 예를 들어, 작은 양자화 파라미터들은 미세 양자화(작은 양자화 단계 크기들)에 대응할 수 있고, 큰 양자화 파라미터들은 거친 양자화(큰 양자화 단계 크기들)에 대응할 수 있고 또는 그 역으로도 될 수 있다. 양자화는 양자화 단계 크기 및 대응하는 또는 역 양자화 해제(inverse de-quantization)에 의한, 예를 들어 역 양자화(110)에 의한 나눗셈을 포함할 수 있고, 양자화 단계 크기에 의한 곱셈을 포함할 수 있다.
HEVC에 따른 실시예들은 양자화 파라미터를 이용하여 양자화 단계 크기를 결정하도록 구성될 수 있다. 일반적으로, 양자화 단계 크기는 나눗셈을 포함하는 수학식의 고정 소수점 근사를 사용하여 양자화 파라미터에 기초하여 계산될 수 있다. 잔차 블록의 노름을 복원하기 위해 양자화 및 양자화 해제에 대해 추가적인 스케일링 인자들이 도입될 수 있으며, 이는 양자화 단계 크기 및 양자화 파라미터에 대한 수학식의 고정 소수점 근사에서 사용되는 스케일링 때문에 수정될 수 있다. 한 예시적인 구현에서, 역변환 및 양자화 해제의 스케일링은 조합될 수 있다. 대안적으로, 맞춤화된 양자화 테이블이 사용될 수 있고 인코더로부터 디코더로, 예를 들어 비트스트림으로 시그널링될 수 있다. 양자화는 손실성 연산이며, 손실은 양자화 단계 크기들이 증가함에 따라 증가한다.
인코더(100)의 (또는 제각기 양자화 유닛(108)의) 실시예들은 예를 들어 대응하는 양자화 파라미터에 의해 양자화 스킴 및 양자화 단계 크기를 출력하도록 구성될 수 있고, 따라서, 디코더(200)는 대응하는 역 양자화를 수신하고 적용할 수 있다. 인코더(100)(또는 양자화 유닛(108))의 실시예들은, 예를 들어 직접적으로 또는 엔트로피 인코딩 유닛(170) 또는 임의의 다른 엔트로피 코딩 유닛을 통해 엔트로피 인코딩된 양자화 스킴 및 양자화 단계 크기를 출력하도록 구성될 수 있다.
역양자화 유닛(110)은 예를 들어, 양자화 유닛(108)과 동일한 양자화 단계 크기에 기초하거나 이를 이용하여 양자화 유닛(108)에 의해 적용되는 양자화 스킴의 역을 적용함으로써, 양자화된 계수들에 대해 양자화 유닛(108)의 역양자화를 적용하여 양자화 해제된 계수들(111)을 획득하도록 구성된다. 양자화 해제된 계수들(111)은 양자화 해제된 잔차 계수들(111)로도 지칭될 수 있고, 양자화에 의한 손실로 인해 변환된 계수들과는 통상적으로 동일하지는 않지만, 변환된 계수들(108)에 대응한다.
역변환 유닛(112)은 변환 유닛(106)에 의해 적용되는 변환의 역변환, 예를 들어 역 이산 코사인 변환(DCT) 또는 역 이산 사인 변환(DST)을 적용하여 샘플 도메인에서 역변환된 블록(113)을 획득하도록 구성된다. 역변환된 블록(113)은 역변환된 양자화 해제된 블록(113) 또는 역변환된 잔차 블록(113)으로도 지칭될 수 있다.
재구성 유닛(114)은, 예를 들어 디코딩된 잔차 블록(113)의 샘플 값들과 예측 블록(165)의 샘플 값들을 샘플별로 덧셈(sample wise adding)함으로써, 역변환된 블록(113) 및 예측 블록(165)을 조합하여, 샘플 도메인에서 재구성된 블록(115)을 획득하도록 구성된다.
버퍼 유닛(116)(또는 짧은 "버퍼"(116)), 예를 들어 라인 버퍼(116)는, 예를 들어, 인트라 추정 및/또는 인트라 예측을 위해 재구성된 블록 및 각자의 샘플 값들을 버퍼링하거나 저장하도록 구성된다. 추가 실시예들에서, 인코더는 임의 종류의 추정 및/또는 예측을 위해 필터링되지 않은 재구성된 블록들 및/또는 버퍼 유닛(116)에 저장된 각자의 샘플 값들을 사용하도록 구성될 수 있다.
인코더(100)의 실시예들은, 예를 들어 버퍼 유닛(116)이 인트라 추정(152) 및/또는 인트라 예측(154)을 위해 재구성된 블록들(115)을 저장하기 위해서 뿐만 아니라 루프 필터 유닛(120)(도 1에 도시되지 않음)을 위해 사용되도록, 및/또는 예를 들어 버퍼 유닛(116) 및 디코딩된 화상 버퍼 유닛(130)이 하나의 버퍼를 형성하도록 구성될 수 있다. 추가 실시예들은 디코딩된 화상 버퍼(130)로부터의 필터링된 블록들(121) 및/또는 블록들 또는 샘플들(둘 모두 도 1에 도시되지 않음)을 인트라 추정(152) 및/또는 인트라 예측(154)을 위한 입력 또는 기초로서 사용하도록 구성될 수 있다.
루프 필터 유닛(120)(또는 짧은 "루프 필터"(120))은, 예를 들어 블로킹 해제 샘플 적응 오프셋(sample-adaptive offset, SAO) 필터 또는 다른 필터들, 예를 들어 샤프닝(sharpening) 필터들 또는 평활화 필터들 또는 협업 필터들을 적용함으로써 재구성된 블록(115)을 필터링하여 필터링된 블록(121)을 획득하도록 구성된다. 필터링된 블록(121)은 필터링된 재구성된 블록(121)이라고도 지칭될 수 있다. 루프 필터(120)는 이하에서 디블로킹 필터로도 지칭된다.
루프 필터 유닛(120)의 실시예들은 (도 1에 도시되지 않은) 필터 분석 유닛 및 실제 필터 유닛을 포함할 수 있으며, 여기서 필터 분석 유닛은 실제 필터에 대한 루프 필터 파라미터들을 결정하도록 구성된다. 필터 분석 유닛은 고정된 미리 결정된 필터 파라미터들을 실제 루프 필터에 적용하고, 미리 결정된 필터 파라미터들의 세트로부터 필터 파라미터들을 적응적으로 선택하거나 실제 루프 필터에 대한 필터 파라미터들을 적응적으로 계산하도록 구성될 수 있다.
루프 필터 유닛(120)의 실시예들은 (도 1에 도시되지 않은) 하나 또는 복수의 필터(루프 필터 컴포넌트들/서브필터들), 예를 들어 상이한 종류들 또는 타입들의 필터들 중 하나 이상, 예를 들어 직렬로 또는 병렬로 또는 이들의 임의의 조합으로 접속된 필터들을 포함할 수 있고, 여기서 필터들 각각은 예를 들어 이전 단락에서 설명된 바와 같이 각자의 루프 필터 파라미터들을 결정하기 위해 필터 분석 유닛을 복수의 필터 중 다른 필터들과 개별적으로 또는 공동으로 포함할 수 있다.
인코더(100)(제각기 루프 필터 유닛(120))의 실시예들은, 예를 들어 직접적으로 또는 엔트로피 인코딩 유닛(170) 또는 임의의 다른 엔트로피 코딩 유닛을 통해 엔트로피 인코딩된 루프 필터 파라미터들을 출력하여, 예를 들어, 디코더(200)가 디코딩을 위해 동일한 루프 필터 파라미터들을 수신하고 적용할 수 있도록 구성될 수 있다.
디코딩된 화상 버퍼(DPB)(130)는 필터링된 블록(121)을 수신하고 저장하도록 구성된다. 디코딩된 화상 버퍼(130)는 동일한 현재 화상의 또는 상이한 화상들의, 예를 들어, 이전에 재구성된 화상들의 다른 이전에 필터링된 블록들, 예를 들어, 이전에 재구성된 및 필터링된 블록들(121)을 저장하도록 추가로 구성될 수 있고, 예를 들어, 인터 추정 및/또는 인터 예측을 위해, 완전한 이전에 재구성된, 즉, 디코딩된 화상들(및 대응하는 참조 블록들 및 샘플들) 및/또는 부분적으로 재구성된 현재 화상(및 대응하는 참조 블록들 및 샘플들)을 제공할 수 있다.
본 발명의 추가 실시예들은 또한 임의 종류의 추정 또는 예측, 예를 들어 인트라 및 인터 추정 및 예측을 위해 디코딩된 화상 버퍼(130)의 이전에 필터링된 블록들 및 대응하는 필터링된 샘플 값들을 사용하도록 구성될 수 있다.
블록 예측 유닛(160)이라고도 지칭되는 예측 유닛(160)은, 화상 블록(103)(현재 화상(101)의 현재 화상 블록(103)) 및 디코딩된 또는 적어도 재구성된 화상 데이터, 예를 들어 버퍼(116)로부터의 동일한 (현재) 화상의 참조 샘플들 및/또는 디코딩된 화상 버퍼(130)로부터의 하나 또는 복수의 이전에 디코딩된 화상으로부터의 디코딩된 화상 데이터(231)를 수신 또는 획득하고, 예측을 위해 이러한 데이터를 처리하도록, 즉 인터 예측된 블록(145) 또는 인트라 예측된 블록(155)일 수 있는 예측 블록(165)을 제공하도록 구성된다.
모드 선택 유닛(162)은 잔차 블록(105)의 계산을 위한 그리고 재구성된 블록(115)의 재구성을 위한 예측 블록(165)으로서 사용될 예측 모드(예를 들어, 인트라 또는 인터 예측 모드) 및/또는 대응하는 예측 블록(145 또는 155)을 선택하도록 구성될 수 있다.
모드 선택 유닛(162)의 실시예들은 (예를 들어, 예측 유닛(160)에 의해 지원된 것들로부터) 예측 모드를 선택하도록 구성될 수 있고, 이는 최상의 매칭 또는 다시 말해서 최소 잔차(최소 잔차는 송신 또는 저장을 위해 더 나은 압축을 의미함), 또는 최소 시그널링 오버헤드(최소 시그널링 오버헤드는 송신 또는 저장을 위해 더 나은 압축을 의미함)를 제공하거나, 또는 이는 둘 모두를 고려하거나 또는 균형화한다. 모드 선택 유닛(162)은 RDO(rate distortion optimization)에 기초하여 예측 모드를 결정하도록, 즉 최소 레이트 왜곡 최적화를 제공하는 예측 모드 또는 어느 연관된 레이트 왜곡이 예측 모드 선택 기준을 적어도 충족시키는지를 선택하도록 구성될 수 있다.
이하에서는, 예시적인 인코더(100)에 의해 수행되는 예측 처리(예를 들어, 예측 유닛(160) 및 모드 선택(예를 들어, 모드 선택 유닛(162)에 의함)가 더 상세히 설명될 것이다.
위에 설명된 바와 같이, 인코더(100)는 (미리 결정된) 예측 모드들의 세트로부터 최상의 또는 최적의 예측 모드를 결정하도록 또는 선택하도록 구성된다. 예측 모드들의 세트는, 예를 들어, 인트라 예측 모드들 및/또는 인터 예측 모드들을 포함할 수 있다.
인트라 예측 모드들의 세트는 32개의 상이한 인트라 예측 모드, 예를 들어, H.264에서 정의되는 바와 같은, 예를 들어, DC(또는 평균) 모드와 평면 모드와 같은 비 지향성 모드들, 또는 지향성 모드들을 포함할 수 있거나, 또는 65개의 상이한 인트라 예측 모드, 예를 들어, H.265에서 정의되는 바와 같은, 예를 들어, DC(또는 평균) 모드 또는 평면 모드와 같은 비 지향성 모드들, 또는 지향성 모드들을 포함할 수 있다.
(또는 가능한) 인터 예측 모드들의 세트는 이용가능한 참조 화상들(즉, 예를 들어, DBP(230)에 저장되는, 이전의 적어도 부분적으로 디코딩된 화상들) 및 다른 인터 예측 파라미터들, 예를 들어, 최상의 매칭 참조 화상 블록을 검색하기 위해 참조 화상의 전체 참조 화상 또는 참조 화상의 부분만, 예를 들어, 현재 블록의 영역 주위의 검색 윈도우 영역만이 사용되는지, 및/또는, 예를 들어, 픽셀 보간, 예를 들어, 1/2/반-펠 및/또는 1/4-펠 보간이 적용되는지 여부에 의존한다.
위의 예측 모드들에 추가적으로, 스킵 모드 및/또는 직접 모드가 적용될 수 있다.
예측 유닛(160)은, 예를 들어, QT(quad-tree-partitioning), BT(binary partitioning) 또는 TT(triple-tree-partitioning) 또는 이들의 임의의 조합을 반복적으로 사용하여, 블록(103)을 더 작은 블록 파티션들 또는 서브 블록들로 파티셔닝하도록, 그리고, 예를 들어, 블록 파티션들 또는 서브 블록들 각각에 대한 예측을 수행하도록 추가로 구성될 수 있으며, 여기서 모드 선택은 파티셔닝된 블록(103)의 트리 구조의 선택 및 블록 파티션들 또는 서브 블록들 각각에 적용되는 예측 모드들을 포함한다.
인터 화상 추정 유닛(142)이라고도 지칭되는 인터 추정 유닛(142)은, 인터 추정(또는 "인터 화상 추정")을 위해, 화상 블록(103)(현재 화상(101)의 현재 화상 블록(103)) 및 디코딩된 화상(231), 또는 적어도 하나 또는 복수의 이전에 재구성된 블록, 예를 들어 하나 또는 복수의 다른/상이한 이전에 디코딩된 화상(231)의 재구성된 블록들을 수신하거나 또는 획득하도록 구성된다. 예를 들어, 비디오 시퀀스는 현재 화상 및 이전에 디코딩된 화상들(231)을 포함할 수 있거나, 또는 다시 말해서, 현재 화상 및 이전에 디코딩된 화상들(231)은 비디오 시퀀스를 형성하는 화상들의 부분일 수 있거나 또는 그 시퀀스를 형성할 수 있다.
인코더(100)는, 예를 들어, 복수의 다른 화상의 동일한 또는 상이한 화상들의 복수의 참조 블록으로부터 참조 블록을 선택하고, 참조 블록의 위치(x, y 좌표들)와 인터 예측 유닛(144)에 대한 인터 추정 파라미터들(143)로서의 현재 블록의 위치 사이의 참조 화상(또는 참조 화상 인덱스,...) 및/또는 오프셋(공간적 오프셋)을 제공하도록 구성될 수 있다. 이러한 오프셋은 MV(motion vector)라고 또한 불리운다. 인터 추정은 또한 움직임 추정(motion estimation, ME)으로 지칭되고 인터 예측은 또한 움직임 예측(motion prediction, MP)으로 지칭된다.
인터 예측 유닛(144)은, 인터 예측 파라미터(143)를 획득하고, 예를 들어 수신하고, 그리고 인터 예측 파라미터(143)에 기초하여 또는 이를 사용하여 인터 예측을 수행하여 인터 예측 블록(145)을 획득하도록 구성된다.
도 1이 인터 코딩, 즉 인터 추정(142) 및 인터 예측(152)을 위한 2개의 별개의 유닛(또는 단계)을 도시하지만, 양쪽 기능은, 예를 들어 현재 최상의 인터 예측 모드 및 각자의 인터 예측 블록을 저장하는 동안에 가능한 인터 예측 모드들의 모든 가능한 또는 미리 결정된 서브세트를 반복적으로 테스트하고, 그리고 또 다른 시간에 인터 예측(144)을 수행하지 않고서 현재 최상의 인터 예측 모드 및 각자의 인터 예측 블록을 (최종) 인터 예측 파라미터(143) 및 인터 예측 블록(145)으로서 사용함으로써, 인터 예측 블록, 즉 일종의 인터 예측(154)을 계산하는 것을 하나(인터 추정)가 요구하고/포함함에 따라 수행될 수 있다.
인트라 예측 유닛(152)은 인트라 추정을 위해 화상 블록(103)(현재 화상 블록) 및 동일한 화상의 하나의 또는 복수의 이전에 재구성된 블록, 예를 들어, 재구성된 이웃 블록을 획득하도록, 예를 들어, 수신하도록 구성된다. 인코더(100)는, 예를 들어, 복수의 (미리 결정된) 인트라 예측 모드로부터 인트라 예측 모드를 선택하고 그것을 인트라 예측 유닛(154)에 인트라 예측 파라미터(153)로서 제공하도록 구성될 수 있다.
인코더(100)의 실시예들은 최적화 기준, 예를 들어, 최소 잔차 또는 최소 레이트 왜곡에 기초하여 인트라 예측 모드(예를 들어, 현재 화상 블록(103)과 가장 유사한 예측 블록(155)을 제공하는 인트라 예측 모드)를 선택하도록 구성될 수 있다.
인트라 예측 유닛(154)은 인트라 예측 파라미터(153), 예를 들어 선택된 인트라 예측 모드(153), 인트라 예측 블록(155)에 기초하여 결정하도록 구성된다.
도 1이 인트라 코딩, 즉 인트라 추정(152) 및 인트라 예측(154)을 위한 2개의 별개의 유닛(또는 단계)을 도시하지만, 양쪽 기능은, 예를 들어 현재 최상의 인트라 예측 모드 및 각자의 인트라 예측 블록을 저장하는 동안에 가능한 인트라 예측 모드들의 모든 가능한 또는 미리 결정된 서브세트를 반복적으로 테스트하고, 그리고 또 다른 시간에 인트라 예측(154)을 수행하지 않고서 현재 최상의 인트라 예측 모드 및 각자의 인트라 예측 블록을 (최종) 인트라 예측 파라미터(153) 및 인트라 예측 블록(155)으로서 사용함으로써, 인트라 예측 블록, 즉 인트라 예측(154) 또는 인트라 예측의 종류를 계산하는 것을 하나(인트라 추정)가 요구하고/포함함에 따라 수행될 수 있다.
엔트로피 인코딩 유닛(170)은, 예를 들어 인코딩된 비트 스트림(171)의 형태로 출력(172)에 의해 출력될 수 있는 인코딩된 화상 데이터(171)를 획득하기 위해, 엔트로피 인코딩 알고리즘 또는 스킴(예를 들어, VLC(variable length coding) 스킴, CALVC(context adaptive VLC scheme), 산술 코딩 스킴, CABAC(context adaptive binary arithmetic coding))을 양자화된 잔차 계수들(109), 인터 예측 파라미터들(143), 인트라 예측 파라미터(153), 및/또는 루프 필터 파라미터들에 개별적으로 또는 공동으로(또는 전혀) 적용하도록 구성된다.
도 2는 디코딩된 화상(231)을 획득하기 위해 예를 들어 인코더(100)에 의해 인코딩된 화상 데이터(예를 들어, 인코딩된 비트스트림)(171)를 수신하도록 구성된 예시적인 비디오 디코더(200)를 도시한다.
디코더(200)는 입력(202), 엔트로피 디코딩 유닛(204), 역 양자화 유닛(210), 역변환 유닛(212), 재구성 유닛(214), 버퍼(216), 루프 필터(220), 디코딩된 화상 버퍼(230), 예측 유닛(260), 인터 예측 유닛(244), 인트라 예측 유닛(254), 모드 선택 유닛(260) 및 출력(232)을 포함한다.
엔트로피 디코딩 유닛(204)은 인코딩된 화상 데이터(171)에 대한 엔트로피 디코딩을 수행하여, 예를 들어 (도 2에 도시되지 않은) 양자화된 계수들(209) 및/또는 디코딩된 코딩 파라미터들, 예를 들어 인터 예측 파라미터들(143), 인트라 예측 파라미터(153), 및/또는 루프 필터 파라미터들 중 (디코딩된) 임의의 것 또는 전부를 획득하도록 구성된다.
디코더(200)의 실시예들에서, 역양자화 유닛(210), 역변환 유닛(212), 재구성 유닛(214), 버퍼(216), 루프 필터(220), 디코딩된 화상 버퍼(230), 예측 유닛(260) 및 모드 선택 유닛(260)은 인코딩된 화상 데이터(171)를 디코딩하기 위해 인코더(100)(및 각자의 기능 유닛들)의 역 처리를 수행하도록 구성된다.
특히, 역양자화 유닛(210)은 역양자화 유닛(110)에 기능상 동일할 수 있고, 역변환 유닛(212)은 역변환 유닛(112)에 기능상 동일할 수 있고, 재구성 유닛(214)은 재구성 유닛(114)에 기능상 동일할 수 있고, 버퍼(216)는 버퍼(116)에 기능상 동일할 수 있고, 루프 필터(220)는 (루프 필터(220)가 전형적으로 원본 이미지(101) 또는 블록(103)에 기초하여 필터 파라미터들을 결정하기 위해 필터 분석 유닛을 포함하지 않지만, 예를 들어 엔트로피 디코딩 유닛(204)으로부터 인코딩을 위해 사용되는 필터 파라미터들을 (명시적으로 또는 암시적으로) 수신하거나 획득하므로 실제 루프 필터에 관하여) 루프 필터(220)에 기능상 동일할 수 있고, 및 디코딩된 화상 버퍼(230)는 디코딩된 화상 버퍼(130)에 기능상 동일할 수 있다.
예측 유닛(260)은 인터 예측 유닛(244) 및 인터 예측 유닛(254)을 포함할 수 있고, 여기서 인터 예측 유닛(144)은 인터 예측 유닛(144)에 기능상 동일할 수 있고, 인터 예측 유닛(154)은 인트라 예측 유닛(154)에 기능상 동일할 수 있다. 예측 유닛(260) 및 모드 선택 유닛(262)은 전형적으로 인코딩된 데이터(171)로부터만 (원본 이미지(101)에 관한 어떠한 추가 정보도 없이) 블록 예측을 수행하고/하거나 예측된 블록(265)을 획득하고, 및 예를 들어 엔트로피 디코딩 유닛(204)으로부터 예측 파라미터들(143 또는 153) 및/또는 선택된 예측 모드에 관한 정보를 (명시적 또는 암시적으로) 수신 또는 획득하도록 구성된다.
디코더(200)는 사용자에의 제시 또는 시청을 위해 예를 들어 출력(232)을 통해 디코딩된 화상(230)을 출력하도록 구성된다.
본 발명의 실시예들이 주로 비디오 코딩에 기초하여 설명되었지만, 인코더(100) 및 디코더(200)(및 대응하여 시스템(300))의 실시예들은 또한 비디오 코딩에서와 같이 임의의 선행하는 또는 연속적인 화상에 독립적인 정지 화상 처리 또는 코딩, 즉 개별 화상의 처리 또는 코딩을 위해 구성될 수 있다는 점에 유의해야 한다. 일반적으로, 인터 추정(142), 인터 예측(144, 242)은 화상 처리 코딩이 단일 화상(101)에 제한되는 경우에 이용가능하지 않다. 비디오 인코더(100) 및 비디오 디코더(200)의 모든 다른 기능들(또한 툴들 또는 기술들로서 지칭됨)은 아니지만 대부분의 기능들이 정지 화상들에 대해 동일하게 사용될 수 있는데, 예를 들어 파티셔닝, 변환(스케일링)(106), 양자화(108), 역양자화(110), 역변환(112), 인트라 예측(142), 인트라 예측(154, 254) 및/또는 루프 필터링(120, 220), 및 엔트로피 코딩(170) 및 엔트로피 디코딩(204)에 대해 그러하다.
본 발명은 도 1 및 도 2에서 루프 필터로도 지칭되는 디블로킹 필터의 내부 작업을 다룬다.
H.264/AVC 및 HEVC와 같은 비디오 코딩 방식은 블록 기반 하이브리드 비디오 코딩의 성공적인 원리를 따라 설계된다. 이러한 원리를 이용하여, 화상이 먼저 블록들로 파티셔닝되고, 이어서 인트라 화상 또는 인터 화상 예측을 이용하여 각각의 블록이 예측된다. 이들 블록들은 인접 블록들로부터 상대적으로 코딩되고 어느 정도의 유사성을 갖고 원본 신호를 근사화한다. 코딩된 블록들이 원본 신호를 단지 근사화하기 때문에, 근사들 간의 차이는 예측 및 변환 블록 경계들에서 불연속성을 야기한다. 이러한 불연속성은 디블로킹 필터에 의해 감쇠된다. HEVC는 H.264/AVC의 매크로블록 구조를 최대 크기 64x64 픽셀의 코딩 트리 유닛(coding tree unit, CTU)의 개념으로 대체한다. CTU는 더 작은 코딩 유닛(CU) 내로 쿼드트리 분해 방식으로 파티셔닝될 수 있으며, 이는 8x8 픽셀의 최소 크기로 세분될 수 있다. HEVC는 또한 예측 블록들(PB) 및 변환 블록들(TB)의 개념을 도입한다.
HEVC에서의 디블로킹은 8x8 그리드와 중첩되는 코딩 유닛(CU), 예측 유닛들(PU) 및 변환 유닛들(TU)에 속하는 모든 에지들에 대해 수행된다. 더욱이, HEVC에서의 디블로킹 필터는 필터 동작들이 4x4 그리드에 걸쳐 수행되는 H.264/AVC와 비교할 때 훨씬 더 병렬 처리 친화적이다. HEVC에서의 수직 및 수평 블록 경계들은 H.264/AVC에서와 상이한 순서로 처리된다. HEVC에서, 화상에서의 모든 수직 블록 경계들이 먼저 필터링되고, 이어서 모든 수평 블록 경계들이 필터링된다. HEVC에서의 2개의 병렬 블록 경계 사이의 최소 거리가 8개의 샘플이고, HEVC 디블로킹이 블록 경계로부터 많아야 3개의 샘플을 수정하고 디블로킹 결정을 위해 블록 경계로부터 4개의 샘플을 사용하기 때문에, 하나의 블록 경계의 필터링은 임의의 다른 수직 경계의 필터링에 영향을 미치지 않는다. 이는 블록 경계들에 걸친 디블로킹 의존성들이 없다는 것을 의미한다. 원리적으로, 임의의 수직 블록 경계는 임의의 다른 수직 경계에 병렬로 처리될 수 있다. 이는 수평 경계들에 대해서도 동일하지만, 수직 경계들을 필터링하는 것으로부터의 수정된 샘플들이 수평 경계들을 필터링하는 것에 대해 입력으로서 사용된다.
ITU-T VCEG(Q6/16) 및 ISO/IEC MPEG(JTC1/SC29/WG11)는 현재 HEVC 표준의 것을 상당히 초과하는 압축 능력을 가진 미래 비디오 코딩 기술의 표준화(스크린 콘텐츠 코딩 및 높은 동적 범위 코딩을 위한 그 현재 확장들 및 가까운 날의 확장들을 포함함)에 대한 잠재적 필요를 연구하고 있다. 해당 그룹들은 이 분야의 그들의 전문가들에 의해 제안된 압축 기술 설계들을 평가하기 위해 JVET(Joint Video Exploration Team)로서 알려진 공동 협력 작업(joint collaboration effort)에서 이러한 탐구 활동에 대해 함께 연구하고 있다.
JEM(Joint Exploration Model)은 ITU-T VCEG 및 ISO/IEC MPEG의 JVET(Joint Video Exploration Team)에 의한 조정된 테스트 모델 연구 하에 있는 특징들을 HEVC의 능력들을 넘어서는 잠재적인 향상된 비디오 코딩 기술로서 기술한다.
JEM(Joint Exploratory Model) 소프트웨어는 QTBT(Quadtree plus binary tree)라고 불리는 새로운 파티셔닝 블록 구조 스킴을 사용한다.
QTBT 구조는 다수의 파티션 타입의 개념을 제거하는데, 즉 코딩 유닛들(CU), 예측 유닛들(PU) 및 변환 유닛들(TU)의 분리를 제거한다. 따라서(CU = PU = TU). QTBT는 더 유연한 CU 파티션 형상을 지원하며, 여기서 CU는 정사각형 또는 직사각형 형상을 가질 수 있다. CU의 최소 폭 및 높이는 4개의 샘플일 수 있고, CU의 크기는 또한 4 x N 또는 N x 4일 수 있으며, 여기서 N은 범위 [4, 8, 16, 32]에서의 값들을 취할 수 있다.
JEM 필터들에서 현행의 LUMA 디블로킹 필터는그 크기가 4 x N 및 N x 4인 CU들에 속하는 에지들을 포함하는 모든 CU 블록 에지들을 필터링하는데, 이는 다음의 단점들을 초래한다.
● 이미 필터링된 샘플들이 연속 블록 경계의 필터링 결정에 영향을 미칠 수 있다.
● 인접 블록 경계들이 병렬로 처리될 수 없다.
(QTBT 부분화를 갖는) JEM에 사용되는 현재의 디블로킹 필터 동작이 도 4에 묘사되어 있다.
P, Q 및 R이라고도 지칭되는 코딩 블록들(401, 402, 403)은 3개의 CU이다. CU들의 크기는 제각기 8 x 8, 4 x 8 및 4 x 8 (N=8) 샘플들이다. E1로도 지칭되는 에지(404)의 강한 필터링은 파선 박스(406)로 마킹된 샘플들을 수정한다. E2로도 지칭되는 에지(405)의 강한 필터링은 파선 박스(407)로 마킹된 샘플들을 수정한다. 알 수 있는 바와 같이, 박스(406)와 박스(407)의 중첩이 있고 따라서
■ 에지 E1 필터링 동안의 블록 Q에서의 이미 필터링된 샘플들은 연속적인 블록 경계(에지 E2)의 필터링 결정에 영향을 미친다.
■ 인접 블록 경계들((E1 및 E2)이 병렬로 처리될 수 없다.
따라서, 디블로킹 필터링을 직렬 방식으로 수행하는 것이 필요하다. 이는 매우 긴 처리 시간을 초래한다. 특히, 점점 더 많이 병렬 처리 구조들을 채택하는 다가오는 프로세서 기술들에 의해, 이는 불필요하게 긴 처리 시간을 초래한다. 디블로킹 필터링을 병렬로 동작하도록 적응시킴으로써, 상당한 처리 시간이 절약될 수 있다.
이제 도 5 내지 도 8을 따르면, 본 발명의 제1 양태, 제2 양태 및 제3 양태의 상이한 실시예들이 간략하게 설명된다. 도 5 내지 도 8에 묘사된 실시예들의 상세한 기능은 도 9 내지 도 13과 관련하여 나중에 설명된다.
도 5에서, 본 발명의 제1 양태의 이미지 처리 디바이스의 제1 실시예가 도시되어 있다. 이미지 처리 디바이스(501)는 블록 코드로 인코딩된 이미지의 제1 코딩 블록과 제2 코딩 블록 사이의 블록 에지를 필터링하기 위한 필터를 포함한다.
특히, 이미지 처리 디바이스(501)는 블록 코드로 인코딩된 이미지의 제1 코딩 블록과 제2 코딩 블록 사이의 블록 에지의 디블로킹을 위해 의도된다. 제1 코딩 블록은 블록 에지에 수직인 블록 크기 SA를 갖는 한편, 제2 코딩 블록은 블록 에지에 수직인 블록 크기 SB를 갖는다. 이미지 처리 디바이스(501)는 블록 에지를 필터링하기 위한 필터(502)를 포함한다. 필터는
- 블록 에지에 인접한, 제1 코딩 블록의 샘플 값들의 많아야 수 MA를 제1 필터 출력 값들로서 수정하고,
- 블록 에지에 인접한, 제2 코딩 블록의 샘플 값들의 많아야 수 MB를 제2 필터 출력 값들로서 수정하고,
- 제1 필터 출력 값들 및/또는 제2 필터 출력 값들을 계산하기 위해, 블록 에지에 인접한, 제1 코딩 블록의 샘플 값들의 많아야 수 IA를 제1 필터 입력 값들로서 이용하고,
- 상기 설명된 바와 같이, 제1 필터 출력 값들 및/또는 제2 필터 출력 값들을 계산하기 위해, 블록 에지에 인접한, 제2 코딩 블록의 샘플 값들의 많아야 수 IB를 제2 필터 입력 값들로서 이용하도록 구성된다.
여기서, IA는 IB와 상이하고 MA는 MB와 상이하다.
도 6에는, 본 발명의 제2 양태에 따른 인코더의 실시예가 도시되어 있다. 인코더(600)는 이미지 처리 디바이스(601)를 포함하고, 이것은 다음으로 필터(602)를 포함한다. 이미지 처리 디바이스(601)는 도 5의 이미지 처리 디바이스(501)에 대응한다. 인코더는 도 1에 도시된 원리 인코더에 따라 작업한다. 도 1의 디블로킹 필터로도 지칭되는 루프 필터는 여기에 도시된 이미지 처리 디바이스(601)로 대체된다.
도 7에는, 본 발명의 제3 양태의 실시예가 도시되어 있다. 디코더(700)는 이미지 처리 디바이스(701)를 포함하고, 이것은 다음으로 필터(702)를 포함한다. 이미지 처리 디바이스(701)는 도 5의 이미지 처리 디바이스(501)에 대응한다. 디코더(700)는 도 2에 도시된 원리 디코더에 따라 작업한다. 도 2의 디블로킹 필터로도 지칭되는 루프 필터는 여기에 묘사된 이미지 처리 디바이스(701)로 대체된다.
마지막으로, 도 8에서, 본 발명의 제1 양태에 따른 이미지 처리 디바이스의 추가 실시예가 도시되어 있다. 이미지 처리 디바이스(801)는 필터(802) 및 결정기(803)를 포함한다. 결정기(803)는, 블록 에지가 필터링될 것인지, 및/또는 강한 필터링 또는 약한 필터링이 수행될 것인지를 결정한다. 이 결정은, 제1 필터 결정 값들로서, 블록 에지에 인접한, 제1 코딩 블록의 샘플 값들의 많아야 수 DA 및 제2 필터 결정 값들로서, 블록 에지에 인접한, 제2 코딩 블록의 샘플 값들의 많아야 수 DB에 기초한다.
필터 결정 값들은 반드시 도 5를 따라 설명된 필터 입력 값들과 동일할 필요는 없다. 그렇지만, 실제로 이들은 동일할 수 있다.
도 8에 따른 이미지 처리 디바이스는 또한 도 5의 필터(502)에 필적하게 동작하는 필터(802)를 포함한다.
상세하게는, 디블로킹 필터링을 병렬화하는 과제는 도 9에 도시된 바와 같은 접근법에 의해 해결될 수 있다. 여기서, 이미지(900)는 3개의 코딩 블록(901, 902 및 903)을 포함한다. 코딩 블록들(901 및 902) 사이에, 블록 에지(904)가 존재한다. 코딩 블록들(902, 903) 사이에, 블록 에지(905)가 존재한다. 에지(904)의 필터링을 수행할 때, 파선(906)으로 도시된 샘플 값들이 고려된다. 이들은 초기에 설명한 바와 같은 필터 입력 값들이다. 동시에, 파선(907) 내에 묘사된 샘플 값들만이 필터링에 의해 수정된다. 이들 샘플 값들은 초기에 설명한 바와 같은 필터 출력 값들이다.
블록 에지(905)를 필터링할 때, 파선(908) 내의 샘플 값들은 필터 입력 값들로서 사용되는 한편, 파선(909) 내의 샘플 값들만이 수정되고 필터 출력 값들을 구성한다.
파선(907)에 도시된, 에지(904)의 필터링의 필터 출력 값들이 파선(908) 내에 도시된, 에지(905)를 필터링하는 필터 입력 값들과 중첩되지 않는다는 것을 명확하게 알 수 있다. 반대로, 파선(909) 내에 묘사된 블록 에지(905)를 필터링하는 필터 출력 값들도 파선(906) 내에 묘사된 블록 에지(904)를 필터링하는 필터 입력 값들과 중첩되지 않는다. 양쪽 블록 에지들의 필터링의 병렬 처리가 가능하는데, 그 이유는 2개의 블록 에지(904 및 905)의 처리 사이에 상호 의존성이 없기 때문이다.
더욱이, 필터 입력 값들 및 필터 출력 값들로서 사용되는 샘플 값들의 양이 현재 처리된 코딩 블록의 크기에 의존한다는 것을 여기서 명백하게 알 수 있다. 예를 들어, 코딩 블록(901)은 8개의 픽셀의 코딩 블록 크기를 갖는다. 따라서, 필터 입력 샘플들의 수 I가 4에 설정된다. 동시에, 수정된 샘플 값들의 수 M이 3에 설정된다. I는 픽셀들 P 3,x, P 2,x, P 1,x 및 P 0,x에 대응하는 한편, 샘플 값들 I는 픽셀들 P 2,x, P 1,x 및 P 0, x에 대응한다.
동시에, 코딩 블록(902)은 단지 4의 블록 크기 S를 가지며, 따라서 입력 샘플 값들의 수 I는 3에 설정되는 한편, 수정된 샘플 값들의 수는 1에 설정된다.
이는 필터링될 블록 에지를 따르는 동일하지 않은 블록 크기들의 경우에 비대칭 필터가 사용된다는 것을 의미한다.
블록(901)의 블록 폭이 8 샘플이기 때문에, 필터 결정은 샘플들 Pi,j를 사용할 수 있는데, 여기서 및 이다. 블록 Q의 블록 폭이 4 샘플이기 때문에, 필터 결정은 샘플들 Qi,j만을 사용할 수 있는데, 여기서 및 이다.
실제 필터 동작, 즉 필터 동작 동안 수정되는 샘플들에 대해, 다음이 적용된다:
블록(902)에 대해, 그 블록 폭이 4 샘플들만이므로, 필터가 중첩되지 않도록 보장하기 위해 1개까지의 샘플이 수정될 수 있다. 따라서, 샘플들 Qi,j - 여기서 및 - 는 수정될 수 있다.
에지(905)에 대해, 에지를 공유하는 2개의 인접한 블록은 제각기 블록 폭들 4 및 4를 갖는 (902) 및 (903)이다.
블록(902)의 블록 폭이 4 샘플이기 때문에, 필터 결정은 샘플들 Qi,j를 사용할 수 있는데, 여기서 및 이다. 블록(903)의 블록 폭이 4 샘플이기 때문에, 필터 결정은 단지 샘플들 Ri,j를 사용할 수 있는데, 여기서 및 이다.
실제 필터 동작, 즉 필터 동작 동안 수정되는 샘플들에 대해, 다음이 적용된다:
블록(902)에 대해, 그 블록 폭이 8 샘플이기 때문에, 3개까지의 샘플이 수정될 수 있다. 따라서, 샘플들 Qi,j - 여기서 및 - 는 동일한 방식으로 수정될 수 있는데, 그 이유는 블록 R의 블록 폭이 4 샘플이고, 필터가 중첩되지 않는 것을 보장하기 위해 1개까지의 샘플만이 수정될 수 있기 때문이다. 따라서, 샘플들 Ri,j - 여기서 및 - 가 수정될 수 있다.
그 결과, 비대칭 필터는 블록(901)에서 3 샘플, 블록(902)에서 1 샘플 그리고 블록(903)에서 1 샘플의 최대치를 수정한다.
그 크기가 4 샘플과 동일한 블록들에 대한 실제 강한 필터 동작은 다음과 같이 설정된다:
예를 들어 블록 에지에 인접한 블록들이 그 크기가 4 샘플과 동일한 2개의 블록이라고 하면, 다음과 같다:
약한 필터링에 대해, 더 적은 수의 샘플 값들만이 필터 입력 샘플들로서 사용된다. 특히 이하의 필터 수학식들이 사용된다:
전술한 바와 같은 비대칭 필터를 사용하는 대신에, 대안적 예시적 해결책이 도 10에 제시된다. 제1 단계(1000)에서, 현재 필터링된 블록 에지가 8 x 8 인코딩 샘플 그리드와 정렬되는지가 체크된다. 그런 경우라면, 제2 단계(1001)에서, 필터링될 블록 에지가 예측 유닛들 또는 변환 유닛들 사이의 경계인지가 체크된다. 그런 경우라면, 제3 단계(1002)에서, 경계 강도 Bs>0인지가 체크된다. 또한 이 조건이 충족되면, 제4 단계(1003)에서 조건 7.1이 참인지가 체크된다.
조건 7.1은 디블로킹 필터링이 블록 경계에 적용되는지 여부를 체크하기 위해 사용된다. 조건은 특히 블록 경계의 각각의 측 상의 신호가 직선(램프)으로부터 얼마나 많이 벗어나는지를 체크한다.
이 조건이 충족되지 않거나, 또는 단계들(1000, 1001, 1002)의 체크들 중 임의의 것이 충족되지 않으면, 제5 단계(1004)에서 어떤 필터링도 수행되지 않는 것으로 결정된다.
제6 단계(1005)에서, 필터링될 에지를 둘러싸는 2개의 블록 중 임의의 것의 블록 크기가 4인지가 이제 체크된다. 그렇지 않다면, 제7 단계(1006)에서, 추가 조건 7.2, 7.3, 및 7.4가 충족되는지가 체크된다.
조건 7.2는 블록 경계의 측들에서 상당한 신호 변동들이 없음을 체크한다. 조건 7.3은 양 측상의 신호가 평평하다는 것을 체크한다. 조건 7.4는 블록 경계의 측들에서의 샘플 값들 사이의 단차가 작음을 보장한다.
이러한 조건들 모두가 참이면, 제8 단계(1007)에서, 강한 필터링이 수행된다. 그렇지 않다면, 제9 단계(1008)에서, 정규 필터링이 수행되는 것으로 결정된다. 이어서, 제10 단계(1009)에 의한 정규 필터링 처리가 계속된다.
제6 단계(1005)의 체크가 4의 블록 크기를 갖는 블록들 중 적어도 하나를 초래하는 경우에, 단계들(1006, 1007 및 1008)은 수행되지 않고, 단계(1009)로 직접 계속된다. 이 해결책은 디블로킹 흐름도의 일부를 시행하므로, 하나의 샘플 수정만이 수행되도록 한다.
제10 단계(1009)에서, 추가 조건 7.12가 충족되는지가 체크된다. 조건 7.12는 블록 경계에서의 불연속성이 자연 에지일 가능성이 있는지 또는 블록 아티팩트에 의해 초래되는지를 평가한다.
이러한 조건이 참이 아니라면, 제11 단계(1010)에서, 어떤 필터링도 결국 수행되지 않는다고 결정된다. 그렇지 않고 그런 경우라면, 제12 단계(1011)에서, 에지를 직접 둘러싸는 픽셀 값들 p0 및 q0이 수정된다.
추가 단계(1012)에서, 추가 조건 7.5가 충족되는지가 체크된다. 조건 7.5는 신호가 블록 경계의 측상에서(즉, 블록 P에 대해) 얼마나 평활한지를 체크한다. 신호가 더 평활화될수록, 더 많은 필터링이 적용된다.
이 조건이 참인 경우, 픽셀 값 p1이 제14 단계(1013)에서 수정된다. 이는 제15 단계(1014)로 계속된다. 조건 7.5가 충족되지 않으면, 이는 제15 단계(1014)로 직접 계속되고, 여기서 추가 조건 7.6이 체크된다.
조건 7.6은 신호가 블록 경계의 측상에서(즉, 블록 Q에 대해) 얼마나 평활한지를 체크한다. 신호가 더 평활화될수록, 더 많은 필터링이 적용된다. 조건이 충족되면, 픽셀 값 q1이 제16 단계(1015)에서 수정된다. 조건 7.6이 충족되지 않으면, 픽셀 값 q1은 수정되지 않는다.
이것은, 블록 크기들 중 적어도 하나의 것이 4인 경우, 필터링이 수행되는지를 그리고 어느 타입의 필터링이 수행되는지를 결정하는데 필요한 체크들의 양을 상당히 감소시키는 것을 허용한다.
위에서 언급된 표준 준수 조건들에 관한 상세 사항들에 대해서는, Vivienne Sze, Mudhukar Budagavi, Gary J.Sullivan, "High Efficiency Video Coding (HEVC), Algorithms and Architectures"를 참조한다(특히 조건 7.1 내지 7.6 및 7.12는 챕터 7에서의 수학식 7.1 내지 7.6 및 7.12에 대응한다).
이 접근법은 또한 도 11을 따라 도시된다. 도 11에서, 3개의 블록(1101, 1102 및 1103)을 포함하는 이미지(1100)가 도시되어 있다. 블록 에지(1104)는 블록들(1101 및 1102)을 분할한다. 블록 에지(1105)는 블록들(1102 및 1103)을 분할한다. 블록(1102)은 블록 크기 4를 갖기 때문에, 블록 에지(1104)의 처리 동안 블록 크기를 체크할 때, 관련된 블록들(1101, 1102) 중 적어도 하나는 4의 블록 크기를 갖는 것으로 결정되고, 필터 결정에서의 단계(1005)의 지름길이 도 10에 도시된 바와 같이 취해진다. 따라서, 블록 에지(1104)에서 직접적으로 있는 샘플 값들만이 수정되는 한편, 블록 에지(1104)의 양측상에는, 2개의 연속적인 샘플 값이 필터 입력 값들로서 사용된다. 블록 에지(1105)에 대해서도 동일 사항이 적용된다.
따라서, 도 10 및 도 11에 묘사된 옵션은 관련된 블록들 중 적어도 하나의 것의 4의 블록 크기가 검출되는 경우 약한 필터링을 강제하는 것으로 구성된다.
특히, 다음의 수학식들이 사용된다:
미래의 비디오 코딩 표준에서, 3개보다 많은 샘플을 수정하는 "긴 탭" 필터가 사용될 수 있다. 이하에서, 필터 입력 값들로서 8 샘플을 사용하고 7개까지의 샘플을 수정하는 "긴 탭" 필터가 블록 크기가 16 샘플보다 크거나 같을 때는 언제든지 사용될 수 있다.
이러한 시나리오에서 병렬 디블로킹이 가능하다는 것을 보장하기 위해, 2가지 해결책이 제안된다:
해결책 1a: 현재 블록 크기 ≥ 16 샘플일 때에만 그리고 또한 이웃 블록 크기 ≥ 16 샘플일 때에만 "긴 탭" 필터를 시행한다.
해결책 2a: 초기에 설명된 바와 같이 "비대칭 필터"를 시행한다.
따라서, "비대칭 필터"는 블록 폭에 따라 입력 값들 및 수정된 값들로서 사용되는 샘플들을 수정한다:
예를 들어:
● 블록 폭 == 4인 경우, 3개의 샘플이 필터 결정에 사용될 수 있고 하나의 샘플이 수정될 수 있다
● 블록 폭 == 8인 경우, 4개의 샘플이 필터 결정 및 수정에 사용될 수 있다
● 블록 폭 >= 16에 대해, 긴 탭 필터는 그대로 적용될 수 있다
고려될 추가적인 양태는 각자의 블록 에지가 인코딩된 이미지에 관하여 놓인 경우이다. 특히, 현재 필터링된 블록 에지가 코딩 트리 유닛(CTU) 경계와 정렬되고, 수평 블록 에지이면, 필터 입력 값들 및 필터 출력 값들의 수는 인코딩을 수행하기 위한 라인 메모리의 양에 크게 영향을 준다. 이것은 도 12에 표시되어 있다.
도 12는 다수의 코딩 트리 유닛 CTU1-CTU40을 포함하는 이미지(1200)를 도시한다. 각각의 코딩 트리 유닛은 예를 들어, 256 x 256개의 샘플 값을 갖는다. 전술한 바와 같이, 긴-탭 필터링이 수행될 경우, 필터 출력 값들을 결정하기 위해 인코딩 블록 에지들을 따른 8개의 샘플 값이 고려된다. 코딩 유닛들 CTU1-CTU40이 연속적으로 처리되기 때문에, 이는 극히 많은 양의 필요한 라인 메모리로 이어질 수 있다.
도 12에 표시된 블록 에지(1201)의 디블로킹 필터링을 고려한다. 여기서, 블록 에지(1201)는 코딩 유닛들 CTU17 및 CTT25의 전체 폭을 따라 그려졌다. 그렇지만, 실제로 코딩 트리 유닛 스케일에 대해 코딩이 수행되지 않기 때문에 코딩 블록 크기는 상당히 더 작을 것이다.
코딩 트리 유닛들 CTU1-CTU40이 연속적으로 처리되기 때문에, 코드 블록 에지(1201)의 디블로킹을 수행하기 위해, 라인 메모리 내에 코딩 트리 유닛들 CTU17-CTU24의 전체 하위 수평 경계 영역을 유지하는 것이 필요하다. 여기에 도시된 예에서, 8개의 코딩 트리 유닛 CTU17-CTU24 및 각각의 코딩 유닛들의 256개 샘플의 폭, 및 8개의 관련 샘플 값을 필터 입력 값들로서 갖는 경우, 8 x 256 x 8 = 16,384개의 샘플 라인 메모리의 메모리 크기가 필요하다. 각각의 수평 코딩 블록 에지에 대해, 이 문제가 발생한다. 이는 코딩 트리 유닛 CTU9, CTU17, CTU25 및 CTU33에 대해 특히 문제가 되는데, 그 이유는 임의의 이러한 경우에, 코딩 트리 유닛들의 이전 행의 전체 수평 경계 영역이 라인 메모리에 유지될 필요가 있기 때문이다. 이는 도 13에 추가로 묘사된다.
도 13에서, 이미지(1300)의 관련 블록들(1301 및 1302)만이 묘사된다. 이미지(1300)는 도 12의 이미지(1200)에 대응한다. 블록(1301)은 도 12의 코딩 유닛(17)의 최하위 코딩 블록에 대응하는 한편, 블록(1302)은 도 12의 코딩 유닛(25)의 최상위 코딩 블록에 대응한다. 블록 에지(1303)는 도 12의 블록 에지(1201)에 대응한다.
전술한 경우에서 필요한 라인 메모리의 양을 제한하기 위해, 이전 블록(1301) 중 4개의 것의 필터 입력 샘플 값만이 사용되는 한편, 3개의 것의 필터 출력 샘플 수만이 수정된다. 이는 필요한 라인 메모리의 양에 있어서 상당한 감소를 이끌어 내는데, 왜냐하면 이제 8 x 256 x 4 = 8,096개의 샘플만이 라인 메모리에 유지될 필요가 있기 때문이다.
마지막으로, 도 14에서, 본 발명의 제4 양태의 디블로킹 방법의 실시예가 도시된다.
제1 단계(1400)에서, 블록 에지에 의해 분리된 블록 코드로 인코딩된 이미지의 제1 코딩 블록 및 제2 코딩 블록이 제공된다.
제2 단계(1401)에서, 블록 에지에 인접한, 제1 코딩 블록의 샘플 값들의 많아야 IA의 수가 제1 필터 입력 값들로서 사용된다. 제2 단계(1402)에서, 블록 에지에 인접하는, 제2 코딩 블록의 샘플 값들의 많아야 수 IB이 제2 필터 입력 값들로서 사용된다. 제4 단계(1403)에서, 블록 에지에 인접한, 제1 코딩 블록의 샘플 값들의 많아야 수 MA가 제1 필터 출력 값들로서 수정된다. 마지막으로, 제5 단계(1404)에서, 블록 에지에 인접한, 제2 코딩 블록의 샘플 값들의 많아야 MB의 수가 제2 필터 출력 값들로서 수정된다. 여기서, MA는 MB와 동일하지 않다.
필터 입력 값들은 블록 에지에서 시작하는 블록 에지에 수직인 연속적인 값들이라는 점에 유의해야 한다. 또한, 필터 출력 값들은 블록 에지에서 시작하는, 블록 에지에 수직인 연속 값들이다.
본 발명은 본 명세서에서 다양한 실시예들과 연계하여 설명되었다. 그러나, 개시된 실시예들에 대한 다른 변형들이 도면들, 개시내용 및 첨부된 청구항들의 검토로부터, 청구된 발명을 실시할 시에 본 기술분야의 통상의 기술자에 의해 이해되고 실행될 수 있다. 청구항들에서, 단어 "포함하는(comprising)"은 다른 요소들 또는 단계들을 배제하지 않고, 부정관사("a" 또는 "an")는 복수를 배제하지 않는다. 단일 프로세서 또는 다른 유닛은 청구범위에 기재된 여러 아이템의 기능들을 완수할 수 있다. 특정 수단들이 보통 상이한 종속 청구항들에서 인용된다는 단순한 사실이 이들 수단들의 조합이 유리하게 사용될 수 없음을 나타내지는 않는다. 컴퓨터 프로그램은 다른 하드웨어와 함께 또는 다른 하드웨어의 일부로서 공급되는 광학 저장 매체 또는 고체-상태 매체와 같은 적절한 매체상에 저장/분산될 수 있지만, 또한 다른 형태들로, 예컨대 인터넷 또는 다른 유선 또는 무선 통신 시스템들을 통해 분산될 수 있다.
실시예들 및 설명이 용어 "메모리"를 언급하는 곳이 어디든 간에, 용어 "메모리"는, 명시적으로 달리 언급되지 않는 한, 자기 디스크, 광 디스크, 판독 전용 메모리(Read-Only Memory, ROM), 또는 랜덤 액세스 메모리(Random Access Memory, RAM), 또는 이들의 모든 가능한 메모리들의 목록을 포함하고 및/또는 이해할 것이다.
실시예들 및 설명이 용어 "네트워크"를 언급하는 곳이 어디든 간에, 용어 "네트워크"는, 명시적으로 달리 언급되지 않는 한, [모든 가능한 메모리들의 목록]을 포함하거나 및/또는 이해할 것이다.
본 기술분야의 통상의 기술자는 다양한 도면들(방법 및 장치)의 "블록들"("유닛들")이 (하드웨어 또는 소프트웨어에서의 반드시 개별적인 "유닛들"이 아니라) 본 발명의 실시예들의 기능들을 표현하거나 설명하고 따라서 장치 실시예들뿐만 아니라 방법 실시예들(유닛=단계)의 기능들 또는 특징들을 동등하게 설명한다는 것을 이해할 것이다.
"유닛들"이라는 용어는 단지 인코더/디코더의 실시예들의 기능의 예시적인 목적들을 위해 사용되며, 본 개시를 제한하려는 의도는 아니다.
본 출원에서 제공된 몇몇 실시예에서, 개시된 시스템, 장치 및 방법이 다른 방식들로 구현될 수 있다는 것이 이해되어야 한다. 예를 들어, 설명된 장치 실시예는 단지 예시적이다. 예를 들어, 유닛 분할은 단지 논리적 기능 분할이고 실제의 구현에서는 다른 분할일 수 있다. 예를 들어, 복수의 유닛 또는 컴포넌트가 조합되거나 다른 시스템에 통합되거나, 일부 특징들이 무시되거나 수행되지 않을 수 있다. 또한, 표시되는 또는 논의되는 상호 결합들 또는 직접 결합들 또는 통신 접속들은 일부 인터페이스를 사용하여 구현될 수 있다. 장치들 또는 유닛들 사이의 간접적인 결합 또는 통신 접속은 전자적, 기계적 또는 기타의 형태로 구현될 수 있다.
별개의 부분들로서 설명된 유닛들은 물리적으로 분리되거나 분리되지 않을 수 있고, 유닛으로서 표시된 부분들은 물리적 유닛이거나 아닐 수 있고, 한 위치에 위치하거나 복수의 네트워크 유닛에 분산될 수 있다. 유닛들의 일부 또는 모두는 실시예들의 해결책의 목적을 달성하기 위한 실제의 필요성에 따라 선택될 수 있다.
또한, 본 발명의 실시예에서의 기능 유닛들은 하나의 처리 유닛에 통합되거나, 또는 각각의 유닛들이 물리적으로 단독으로 존재할 수 있거나, 또는 2개 이상의 유닛이 하나의 유닛에 통합될 수 있다.
본 발명의 실시예들은 본 명세서에 설명된 방법들 및/또는 프로세스들 중 임의의 것을 수행하도록 구성된 처리 회로를 포함하는 장치, 예를 들어 인코더 및/또는 디코더를 추가로 포함할 수 있다.
실시예들은 하드웨어, 펌웨어, 소프트웨어 또는 이들의 임의의 조합으로서 구현될 수 있다. 예를 들어, 인코더/인코딩 또는 디코더/디코딩의 기능은 펌웨어 또는 소프트웨어를 갖거나 갖지 않는 처리 회로, 예를 들어 프로세서, 마이크로컨트롤러, 디지털 신호 프로세서(DSP), 필드 프로그래머블 게이트 어레이(FPGA), 주문형 집적 회로(ASIC) 등에 의해 수행될 수 있다.
인코더(100)(및 대응하는 인코딩 방법(100)) 및/또는 디코더(200)(및 대응하는 디코딩 방법(200))의 기능은 컴퓨터 판독가능 매체상에 저장된 프로그램 명령어들에 의해 구현될 수 있다. 프로그램 명령어들은, 실행될 때, 처리 회로, 컴퓨터, 프로세서 등으로 하여금 인코딩 및/또는 디코딩 방법들의 단계들을 수행하게 야기한다. 컴퓨터 판독가능 매체는, 블루레이 디스크, DVD, CD, USB(플래시) 드라이브, 하드 디스크, 네트워크를 통해 이용가능한 서버 저장소 등과 같은, 프로그램이 저장되는 비일시적 저장 매체를 포함하는 임의의 매체일 수 있다.
본 발명의 일 실시예는 컴퓨터상에서 실행될 때, 본 명세서에 설명된 방법들 중 임의의 것을 수행하기 위한 프로그램 코드를 포함하는 컴퓨터 프로그램이다.
본 발명의 일 실시예는, 프로세서에 의해 실행될 때, 컴퓨터 시스템으로 하여금 본 명세서에 설명된 방법들 중 임의의 것을 수행하게 야기하는 프로그램 코드를 포함하는 컴퓨터 판독가능 매체를 포함하거나 또는 컴퓨터 판독가능 매체이다.
참조 부호들의 리스트
도 1
100 인코더
103 화상 블록
102 입력(예를 들어, 입력 포트, 입력 인터페이스)
104 잔차 계산 [유닛 또는 단계]
105 잔차 블록
106 변환(예를 들어, 스케일링을 추가로 포함함) [유닛 또는 단계]
107 변환된 계수들
108 양자화 [유닛 또는 단계]
109 양자화된 계수들
110 역 양자화 [유닛 또는 단계]
111: 양자화 해제된 계수들
112 역변환(예를 들어, 스케일링을 추가로 포함함) [유닛 또는 단계]
113 역변환 블록
114 재구성 [유닛 또는 단계]
115 재구성된 블록
116 (라인) 버퍼 [유닛 또는 단계]
117 참조 샘플들
120 루프 필터 [유닛 또는 단계]
121 필터링된 블록
130 디코딩된 화상 버퍼(DPB) [유닛 또는 단계]
142 인터 추정(또는 인터 화상 추정) [유닛 또는 단계]
143 인터 추정 파라미터들(예를 들어, 참조 화상/참조 화상 인덱스, 움직임 벡터/오프셋)
144 인터 예측(또는 인터 화상 예측) [유닛 또는 단계]
145 인터 예측 블록
152 인트라 추정 (또는 인트라 화상 추정) [유닛 또는 단계]
153 인트라 예측 파라미터들(예를 들어, 인트라 예측 모드)
154 인트라 예측(인트라 프레임/화상 예측) [유닛 또는 단계]
155 인트라 예측 블록
162: 모드 선택 [유닛 또는 단계]
165 예측 블록(인터 예측 블록(145) 또는 인트라 예측 블록(155))
170 엔트로피 인코딩 [유닛 또는 단계]
171 인코딩된 화상 데이터(예를 들어, 비트스트림)
172 출력(출력 포트, 출력 인터페이스)
231 디코딩된 화상
도 2
200 디코더
171 인코딩된 화상 데이터(예를 들어, 비트스트림)
202 입력(포트/인터페이스)
204 엔트로피 디코딩
209 양자화된 계수들
210 역 양자화
211 양자화 해제된 계수들
212 역변환(스케일링)
213 역변환 블록
214 재구성 (유닛)
215 재구성된 블록
216 (라인) 버퍼
217 참조 샘플들
220 루프 필터(인 루프 필터)
221 필터링된 블록
230 DPB(Decoded Picture Buffer)
231 디코딩된 화상
232 출력(포트/인터페이스)
244 인터 예측(인터 프레임/화상 예측)
245 인터 예측 블록
254 인트라 예측(인트라 프레임/화상 예측)
255 인트라 예측 블록
260 모드 선택
265 예측 블록(인터 예측 블록(245) 또는 인트라 예측 블록(255))
도 3
300 코딩 시스템
310 소스 디바이스
312 화상 소스
313 (원시) 화상 데이터
314 전처리기/전처리 유닛
315 전처리된 화상 데이터
318 통신 유닛/인터페이스
320 목적지 디바이스
322 통신 유닛/인터페이스
326 후처리기/후처리 유닛
327 후처리된 화상 데이터
328 디스플레이 디바이스/유닛
330 송신된/수신된/통신된(인코딩된) 화상 데이터
도 4
400 이미지
401 제1 코딩 블록
402 제2 코딩 블록
403 제3 코딩 블록
404 제1 코딩 블록 에지
405 제2 코딩 블록 에지
406 제1 수정된 샘플들
407 제2 수정된 샘플들
도 5
501 이미지 처리 디바이스
502 필터
도 6
600 인코더
601 이미지 처리 디바이스
602 필터
도 7
700 디코더
701 이미지 처리 디바이스
702 필터
도 8
801 이미지 처리 디바이스
802 필터
803 결정기
도 9
900 이미지
901 제1 코딩 블록
902 제2 코딩 블록
903 제3 코딩 블록
904 제1 코딩 블록 에지
905 제2 코딩 블록 에지
906 제1 입력 샘플들
907 제1 수정된 샘플들
908 제2 입력 샘플들
909 제2 수정된 샘플들
도 10
1000 제1 단계
1001 제2 단계
1002 제3 단계
1003 제4 단계
1004 제5 단계
1005 제6 단계
1006 제7 단계
1007 8 단계
1008 제9 단계
1009 제10 단계
1010 제11 단계
1011 제12 단계
1012 제13 단계
1013 제14 단계
1014 제15 단계
1015 제16 단계
도 11
1100 이미지
1101 제1 코딩 블록
1102 제2 코딩 블록
1103 제3 코딩 블록
1104 제1 블록 에지
1105 제2 블록 에지
도 12
1200 이미지
1201 블록 에지
CU1 - CU40 코딩 유닛들(1-40)
도 13
1300 이미지
1301 제1 코딩 블록
1302 제2 코딩 블록
1303 블록 에지
도 14
1400 제1 단계
1401 제2 단계
1402 제3 단계
1403 제4 단계
1404 제5 단계
Claims (24)
- 이미지의 제1 코딩 블록과 제2 코딩 블록 사이의 블록 에지를 디블로킹하기 위해 이미지 인코더 또는 이미지 디코더에서 사용하기 위한 이미지 처리 디바이스로서,
상기 제1 코딩 블록은 상기 블록 에지에 평행한 N개의 샘플들에 의해 상기 블록 에지에 수직인 블록 크기 SA 의 샘플들을 갖고, 상기 제2 코딩 블록은 상기 블록 에지에 평행한 N개의 샘플들에 의해 상기 블록 에지에 수직인 블록 크기 SB 의 샘플들을 갖고,
상기 이미지 처리 디바이스는 상기 블록 에지를 필터링하기 위한 필터를 포함하고, 상기 필터는:
제1 필터 출력 값들 또는 제2 필터 출력 값들을 계산하기 위해, 상기 제1 코딩 블록의 IA 보다 많지 않은 샘플들의 값들을 제1 필터 입력 값들로서 사용하고 - 상기 IA 보다 많지 않은 샘플들은 상기 블록 에지에 인접하고 상기 블록 에지에 수직인 라인에 있으며, 0≤IA≤SA임 - ,
상기 제1 필터 출력 값들 또는 상기 제2 필터 출력 값들을 계산하기 위해, 상기 제2 코딩 블록의 IB 보다 많지 않은 샘플들의 값들을 제2 필터 입력 값들로서 사용하고 - 상기 IB 보다 많지 않은 샘플들은 상기 블록 에지에 인접하고 상기 블록 에지에 수직인 라인에 있으며, 0≤IB≤SB임 - ,
상기 제1 코딩 블록의 MA 보다 많지 않은 샘플들의 값들을 상기 제1 필터 출력 값들로서 수정하고 - 상기 MA 보다 많지 않은 샘플들은 상기 블록 에지에 인접하고 상기 블록 에지에 수직인 라인에 있으며, 0≤MA<SA임 - ,
상기 제2 코딩 블록의 MB 보다 많지 않은 샘플들의 값들을 상기 제2 필터 출력 값들로서 수정 - 상기 MB 보다 많지 않은 샘플들은 상기 블록 에지에 인접하고 상기 블록 에지에 수직인 라인에 있으며, 0≤MB<SB임 - 하도록 구성되고,
IA ≠ IB이고 MA ≠ MB인, 이미지 처리 디바이스. - 제1항에 있어서,
SA ≠ SB인 이미지 처리 디바이스. - 제2항에 있어서,
상기 이미지 처리 디바이스(501, 601, 701, 801)는 결정기(803)를 포함하고, 상기 결정기(803)는:
제1 필터 결정 값들로서 상기 제1 코딩 블록의 DA 보다 많지 않은 샘플들의 값들, 및 제2 필터 결정 값들로서 상기 제2 코딩 블록의 DB 보다 많지 않은 샘플들의 값들에 기초하여, 상기 블록 에지가 필터링될지 또는 강한 필터링 또는 약한 필터링이 수행될지를 결정하도록 구성되고,
상기 DA 보다 많지 않은 샘플들은 상기 블록 에지에 인접하고 상기 블록 에지에 수직인 라인에 있으며, 0≤DA≤SA이며, 상기 DB 보다 많지 않은 샘플들은 상기 블록 에지에 인접하고 상기 블록 에지에 수직인 라인에 있으며, 0≤DB≤SB인, 이미지 처리 디바이스. - 제3항에 있어서,
상기 제1 필터 입력 값들은 상기 제1 필터 결정 값들과 동일하고,
상기 제2 필터 입력 값들은 상기 제2 필터 결정 값들과 동일한, 이미지 처리 디바이스. - 제2항 또는 제3항에 있어서,
SA = 4 이면, 상기 필터는
IA를 3으로, 그리고
MA를 1로 설정하도록 더 구성되는, 이미지 처리 디바이스. - 제2항 내지 제4항 중 어느 한 항에 있어서,
SB = 8 이면, 상기 필터는
IB를 4로, 그리고
MB를 3 또는 4로 설정하도록 더 구성되는, 이미지 처리 디바이스. - 제2항 내지 제4항 중 어느 한 항에 있어서,
SB > 4인 경우, 상기 필터는
IB를 SB/2로, 그리고
MB를 SB/2 또는 SB/2 - 1로 설정하도록 더 구성되는, 이미지 처리 디바이스. - 제2항 내지 제4항 중 어느 한 항에 있어서,
SA = 8 이면, 상기 필터는
IA를 SA/2로, 그리고
MA를 SA/2 또는 SA/2 - 1로 설정하도록 더 구성되는, 이미지 처리 디바이스. - 제8항에 있어서,
SB > 8 이면, 상기 필터는
IB를 SB/2로, 그리고
MB를 SB/2 또는 SB/2 - 1로 설정하도록 더 구성되는, 이미지 처리 디바이스. - 제1항 내지 제4항 중 어느 한 항에 있어서,
상기 블록 에지가 수평 블록 에지인 경우, 상기 블록 에지는 상기 이미지의 코딩 트리 유닛(CTU) 블록 에지와 중첩하고, 상기 제2 코딩 블록은 현재 블록이고 상기 제1 코딩 블록은 상기 현재 블록의 이웃 블록이며, 상기 필터는 IA를 4로, 그리고 MA를 3 또는 4로 설정하도록 더 구성되는, 이미지 처리 디바이스. - 제10항에 있어서,
SA>16인, 이미지 처리 디바이스. - 제1항 내지 제4항 중 어느 한 항에 있어서,
상기 필터는 SA에 기초하여 IA 및 MA의 값을 결정하고, SB에 기초하여 IB 및 MB의 값들을 결정하도록 더 구성되는, 이미지 처리 디바이스. - 이미지의 제1 코딩 블록과 제2 코딩 블록 사이의 블록 에지를 디블로킹하기 위해 이미지 인코더 또는 이미지 디코더에서 사용하기 위한 이미지 처리 디바이스로서,
상기 제1 코딩 블록은 상기 블록 에지에 평행한 N개의 샘플들에 의해 상기 블록 에지에 수직인 블록 크기 SA 의 샘플들을 갖고, 상기 제2 코딩 블록은 상기 블록 에지에 평행한 N개의 샘플들에 의해 상기 블록 에지에 수직인 블록 크기 SB 의 샘플들을 갖고,
상기 이미지 처리 디바이스는 상기 블록 에지를 필터링하기 위한 필터를 포함하고, 상기 필터는:
제1 필터 출력 값들 또는 제2 필터 출력 값들을 계산하기 위해, 상기 제1 코딩 블록의 IA 보다 많지 않은 샘플들의 값들을 제1 필터 입력 값들로서 사용하고 - 상기 IA 보다 많지 않은 샘플들은 상기 블록 에지에 인접하고 상기 블록 에지에 수직인 라인에 있으며, 0≤IA≤SA임 - ,
상기 제1 필터 출력 값들 또는 상기 제2 필터 출력 값들을 계산하기 위해, 상기 제2 코딩 블록의 IB 보다 많지 않은 샘플들의 값들을 제2 필터 입력 값들로서 사용하고 - 상기 IB 보다 많지 않은 샘플들은 상기 블록 에지에 인접하고 상기 블록 에지에 수직인 라인에 있으며, 0≤IB≤SB임 - ,
상기 제1 코딩 블록의 MA 보다 많지 않은 샘플들의 값들을 상기 제1 필터 출력 값들로서 수정하고 - 상기 MA 보다 많지 않은 샘플들은 상기 블록 에지에 인접하고 상기 블록 에지에 수직인 라인에 있으며, 0≤MA<SA임 - ,
상기 제2 코딩 블록의 MB 보다 많지 않은 샘플들의 값들을 상기 제2 필터 출력 값들로서 수정 - 상기 MB 보다 많지 않은 샘플들은 상기 블록 에지에 인접하고 상기 블록 에지에 수직인 라인에 있으며, 0≤MB<SB임 - 하도록 구성되고,
SA = SB, IA = IB, 및 MA = MB인, 이미지 처리 디바이스. - 제13항에 있어서,
SA = SB = 4인, 이미지 처리 디바이스. - 제13항에 있어서,
SA = SB = 4 이면, 상기 필터는 MA를 1로, 그리고 MB를 1로 설정하도록 더 구성되는, 이미지 처리 디바이스. - 제13항 또는 제15항에 있어서,
SA = SB = 4 이면, 상기 필터는 IA를 2로, 그리고 IB를 2로 설정하도록 더 구성되는, 이미지 처리 디바이스. - 이미지 인코딩 또는 이미지 디코딩 처리에서 이미지의 제1 코딩 블록 및 제2 코딩 블록 사이의 블록 에지를 디블로킹하기 위한 방법으로서,
상기 제1 코딩 블록은 상기 블록 에지에 평행한 N개의 샘플들에 의해 상기 블록 에지에 수직인 블록 크기 SA 의 샘플들을 갖고, 상기 제2 코딩 블록은 상기 블록 에지에 평행한 N개의 샘플들에 의해 상기 블록 에지에 수직인 블록 크기 SB 의 샘플들을 갖고,
상기 디코딩 처리는 필터링 처리를 포함하고, 상기 방법은:
제1 필터 출력 값들 또는 제2 필터 출력 값들을 계산하기 위해, 상기 제1 코딩 블록의 IA 보다 많지 않은 샘플들의 값들을 제1 필터 입력 값들로서 사용하는 단계 - 상기 IA 보다 많지 않은 샘플들은 상기 블록 에지에 인접하고 상기 블록 에지에 수직인 라인에 있으며, 0≤IA≤SA임 - ,
상기 제1 필터 출력 값들 또는 상기 제2 필터 출력 값들을 계산하기 위해, 상기 제2 코딩 블록의 IB 보다 많지 않은 샘플들의 값들을 제2 필터 입력 값들로서 사용하는 단계 - 상기 IB 보다 많지 않은 샘플들은 상기 블록 에지에 인접하고 상기 블록 에지에 수직인 라인에 있으며, 0≤IB≤SB임 - ,
상기 제1 코딩 블록의 MA 보다 많지 않은 샘플들의 값들을 상기 제1 필터 출력 값들로서 수정하는 단계 - 상기 MA 보다 많지 않은 샘플들은 상기 블록 에지에 인접하고 상기 블록 에지에 수직인 라인에 있으며, 0≤MA<SA임 - ,
상기 제2 코딩 블록의 MB 보다 많지 않은 샘플들의 값들을 상기 제2 필터 출력 값들로서 수정하는 단계 - 상기 MB 보다 많지 않은 샘플들은 상기 블록 에지에 인접하고 상기 블록 에지에 수직인 라인에 있으며, 0≤MB<SB임 - 를 포함하고,
IA ≠ IB이고 MA ≠ MB인, 방법. - 제17항에 있어서,
SA ≠ SB인, 방법. - 이미지 인코딩 또는 이미지 디코딩 처리에서, 이미지의 제1 코딩 블록 및 제2 코딩 블록 사이의 블록 에지를 디블로킹하기 위한 방법으로서,
상기 제1 코딩 블록은 상기 블록 에지에 평행한 N개의 샘플들에 의해 상기 블록 에지에 수직인 블록 크기 SA 의 샘플들을 갖고, 상기 제2 코딩 블록은 상기 블록 에지에 평행한 N개의 샘플들에 의해 상기 블록 에지에 수직인 블록 크기 SB 의 샘플들을 갖고,
상기 디코딩 처리는 필터링 처리를 포함하고, 상기 방법은:
제1 필터 출력 값들 또는 제2 필터 출력 값들을 계산하기 위해, 상기 제1 코딩 블록의 IA 보다 많지 않은 샘플들의 값들을 제1 필터 입력 값들로서 사용하는 단계 - 상기 IA 보다 많지 않은 샘플들은 상기 블록 에지에 인접하고 상기 블록 에지에 수직인 라인에 있으며, 0≤IA≤SA임 - ,
상기 제1 필터 출력 값들 또는 상기 제2 필터 출력 값들을 계산하기 위해, 상기 제2 코딩 블록의 IB 보다 많지 않은 샘플들의 값들을 제2 필터 입력 값들로서 사용하는 단계 - 상기 IB 보다 많지 않은 샘플들은 상기 블록 에지에 인접하고 상기 블록 에지에 수직인 라인에 있으며, 0≤IB≤SB임 - ,
상기 제1 코딩 블록의 MA 보다 많지 않은 샘플들의 값들을 상기 제1 필터 출력 값들로서 수정하는 단계 - 상기 MA 보다 많지 않은 샘플들은 상기 블록 에지에 인접하고 상기 블록 에지에 수직인 라인에 있으며, 0≤MA<SA임 - ,
상기 제2 코딩 블록의 MB 보다 많지 않은 샘플들의 값들을 상기 제2 필터 출력 값들로서 수정하는 단계 - 상기 MB 보다 많지 않은 샘플들은 상기 블록 에지에 인접하고 상기 블록 에지에 수직인 라인에 있으며, 0≤MB<SB임 - 를 포함하고,
SA = SB, IA = IB, 및 MA = MB인, 방법. - 제19항에 있어서,
SA = SB = 4인, 방법. - 제19항에 있어서,
SA = SB = 4 이면, MA는 1로, 그리고 MB는 1로 설정되는, 방법. - 제19항 또는 제21항에 있어서,
SA = SB = 4 이면, IA는 2로, 그리고 IB는 2로 설정되는, 방법. - 프로그램 코드가 컴퓨터에서 실행되면 제17항 또는 제18항에 따른 방법을 수행하기 위한 상기 프로그램 코드를 갖는 비일시적 컴퓨터-판독가능 매체.
- 프로그램 코드가 컴퓨터에서 실행되면 제19항 내지 제21항 중 어느 한 항에 따른 방법을 수행하기 위한 상기 프로그램 코드를 갖는 비일시적 컴퓨터-판독가능 매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020237018051A KR20230085940A (ko) | 2018-03-28 | 2018-03-28 | 효율적인 디블로킹을 수행하기 위한 이미지 처리 디바이스 및 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2018/057855 WO2019185131A1 (en) | 2018-03-28 | 2018-03-28 | An image processing device and method for performing efficient deblocking |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020237018051A Division KR20230085940A (ko) | 2018-03-28 | 2018-03-28 | 효율적인 디블로킹을 수행하기 위한 이미지 처리 디바이스 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200136442A KR20200136442A (ko) | 2020-12-07 |
KR102539110B1 true KR102539110B1 (ko) | 2023-06-01 |
Family
ID=61911553
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020237018051A KR20230085940A (ko) | 2018-03-28 | 2018-03-28 | 효율적인 디블로킹을 수행하기 위한 이미지 처리 디바이스 및 방법 |
KR1020207030448A KR102539110B1 (ko) | 2018-03-28 | 2018-03-28 | 효율적인 디블로킹을 수행하기 위한 이미지 처리 디바이스 및 방법 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020237018051A KR20230085940A (ko) | 2018-03-28 | 2018-03-28 | 효율적인 디블로킹을 수행하기 위한 이미지 처리 디바이스 및 방법 |
Country Status (12)
Country | Link |
---|---|
US (3) | US11290721B2 (ko) |
EP (2) | EP4171030A1 (ko) |
JP (1) | JP7087101B2 (ko) |
KR (2) | KR20230085940A (ko) |
CN (2) | CN111971961A (ko) |
AU (2) | AU2018415347B2 (ko) |
BR (1) | BR112020019587A2 (ko) |
CA (2) | CA3191338A1 (ko) |
MX (1) | MX2020010128A (ko) |
RU (1) | RU2766557C1 (ko) |
SG (1) | SG11202009401YA (ko) |
WO (1) | WO2019185131A1 (ko) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102658361B1 (ko) | 2018-01-08 | 2024-04-17 | 삼성전자주식회사 | 부호화 방법 및 그 장치, 복호화 방법 및 그 장치 |
WO2020100764A1 (en) * | 2018-11-14 | 2020-05-22 | Sharp Kabushiki Kaisha | Systems and methods for applying deblocking filters to reconstructed video data |
CN114342380A (zh) * | 2019-09-06 | 2022-04-12 | 瑞典爱立信有限公司 | 视频或图像编码中的去块滤波器选择 |
CN118042163A (zh) * | 2022-11-14 | 2024-05-14 | 杭州海康威视数字技术股份有限公司 | 一种图像处理方法、装置、电子设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012096614A2 (en) | 2011-01-14 | 2012-07-19 | Telefonaktiebolaget L M Ericsson (Publ) | A method for filter control and a filtering control device |
US20130329814A1 (en) | 2011-03-01 | 2013-12-12 | Telefonaktiebolaget L M Ericsson (Publ) | Deblocking Filtering Control |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9872019B2 (en) * | 2010-07-20 | 2018-01-16 | Sk Telecom Co., Ltd. | Method and device for deblocking-filtering, and method and device for encoding and decoding using same |
KR101391365B1 (ko) * | 2010-09-17 | 2014-05-07 | 닛본 덴끼 가부시끼가이샤 | 영상 부호화 장치 및 영상 복호 장치 |
JP5653307B2 (ja) * | 2011-06-27 | 2015-01-14 | 日本電信電話株式会社 | 画像符号化方法,画像符号化装置およびそのプログラム |
MX336303B (es) * | 2011-06-28 | 2016-01-14 | Samsung Electronics Co Ltd | Metodo para interpolacion de imagen que utiliza filtro de interpolacion asimetrico y aparato para ello. |
CN107295341B (zh) * | 2011-07-22 | 2020-02-28 | Sk电信有限公司 | 视频编码方法 |
US9167269B2 (en) * | 2011-10-25 | 2015-10-20 | Qualcomm Incorporated | Determining boundary strength values for deblocking filtering for video coding |
AR092786A1 (es) | 2012-01-09 | 2015-05-06 | Jang Min | Metodos para eliminar artefactos de bloque |
US9363516B2 (en) * | 2012-01-19 | 2016-06-07 | Qualcomm Incorporated | Deblocking chroma data for video coding |
US10244265B2 (en) * | 2012-10-04 | 2019-03-26 | Telefonaktiebolaget Lm Ericsson (Publ) | Hierarchical deblocking parameter adaptation |
EP2941871A2 (en) * | 2013-01-07 | 2015-11-11 | VID SCALE, Inc. | Enhanced deblocking filters for video coding |
CN103220529B (zh) * | 2013-04-15 | 2016-02-24 | 北京大学 | 一种视频编解码环路滤波的实现方法 |
US10455253B1 (en) * | 2017-02-28 | 2019-10-22 | Google Llc | Single direction long interpolation filter |
-
2018
- 2018-03-28 SG SG11202009401YA patent/SG11202009401YA/en unknown
- 2018-03-28 KR KR1020237018051A patent/KR20230085940A/ko not_active Application Discontinuation
- 2018-03-28 EP EP22214451.1A patent/EP4171030A1/en active Pending
- 2018-03-28 EP EP18716161.7A patent/EP3777145A1/en not_active Ceased
- 2018-03-28 CN CN201880091920.5A patent/CN111971961A/zh active Pending
- 2018-03-28 AU AU2018415347A patent/AU2018415347B2/en active Active
- 2018-03-28 CN CN202011261160.3A patent/CN112822498B/zh active Active
- 2018-03-28 MX MX2020010128A patent/MX2020010128A/es unknown
- 2018-03-28 CA CA3191338A patent/CA3191338A1/en active Pending
- 2018-03-28 CA CA3095226A patent/CA3095226A1/en active Pending
- 2018-03-28 WO PCT/EP2018/057855 patent/WO2019185131A1/en active Application Filing
- 2018-03-28 KR KR1020207030448A patent/KR102539110B1/ko not_active Application Discontinuation
- 2018-03-28 JP JP2020551884A patent/JP7087101B2/ja active Active
- 2018-03-28 RU RU2020135299A patent/RU2766557C1/ru active
- 2018-03-28 BR BR112020019587-1A patent/BR112020019587A2/pt unknown
-
2020
- 2020-09-27 US US17/033,905 patent/US11290721B2/en active Active
-
2022
- 2022-01-27 US US17/586,116 patent/US11909978B2/en active Active
-
2023
- 2023-12-07 AU AU2023278073A patent/AU2023278073A1/en active Pending
-
2024
- 2024-01-26 US US18/423,311 patent/US20240244214A1/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012096614A2 (en) | 2011-01-14 | 2012-07-19 | Telefonaktiebolaget L M Ericsson (Publ) | A method for filter control and a filtering control device |
US20130329814A1 (en) | 2011-03-01 | 2013-12-12 | Telefonaktiebolaget L M Ericsson (Publ) | Deblocking Filtering Control |
Also Published As
Publication number | Publication date |
---|---|
EP3777145A1 (en) | 2021-02-17 |
BR112020019587A2 (pt) | 2021-01-05 |
AU2018415347A1 (en) | 2020-10-22 |
EP4171030A1 (en) | 2023-04-26 |
CN111971961A (zh) | 2020-11-20 |
US20220217353A1 (en) | 2022-07-07 |
KR20230085940A (ko) | 2023-06-14 |
US11909978B2 (en) | 2024-02-20 |
KR20200136442A (ko) | 2020-12-07 |
MX2020010128A (es) | 2020-10-19 |
JP7087101B2 (ja) | 2022-06-20 |
CN112822498A (zh) | 2021-05-18 |
JP2021519018A (ja) | 2021-08-05 |
WO2019185131A1 (en) | 2019-10-03 |
AU2023278073A1 (en) | 2024-01-04 |
RU2766557C1 (ru) | 2022-03-15 |
CA3095226A1 (en) | 2019-10-03 |
CA3191338A1 (en) | 2019-10-03 |
US20240244214A1 (en) | 2024-07-18 |
AU2018415347B2 (en) | 2023-09-07 |
SG11202009401YA (en) | 2020-10-29 |
US20210014498A1 (en) | 2021-01-14 |
CN112822498B (zh) | 2022-10-11 |
US11290721B2 (en) | 2022-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11290721B2 (en) | Image processing device and method for performing efficient deblocking | |
AU2019320321B2 (en) | Apparatus and method for performing deblocking | |
US11206398B2 (en) | Device and method for intra-prediction of a prediction block of a video image | |
WO2019172800A1 (en) | Loop filter apparatus and method for video coding | |
JP7512492B2 (ja) | 品質最適化デブロッキングを実行するためのイメージ処理デバイス及び方法 | |
US20230124833A1 (en) | Device and method for intra-prediction | |
JP7293460B2 (ja) | 効率的なデブロッキングを実行するための画像処理デバイス及び方法 | |
RU2779474C1 (ru) | Устройство обработки изображений и способ выполнения эффективного удаления блочности | |
US11259054B2 (en) | In-loop deblocking filter apparatus and method for video coding |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal |