KR102549562B1 - 코딩된 화상의 다양한 공간 분할을 위한 인코더 및 디코더, 인코딩 방법 및 디코딩 방법 - Google Patents
코딩된 화상의 다양한 공간 분할을 위한 인코더 및 디코더, 인코딩 방법 및 디코딩 방법 Download PDFInfo
- Publication number
- KR102549562B1 KR102549562B1 KR1020217004050A KR20217004050A KR102549562B1 KR 102549562 B1 KR102549562 B1 KR 102549562B1 KR 1020217004050 A KR1020217004050 A KR 1020217004050A KR 20217004050 A KR20217004050 A KR 20217004050A KR 102549562 B1 KR102549562 B1 KR 102549562B1
- Authority
- KR
- South Korea
- Prior art keywords
- coding
- coding tree
- data
- picture
- region
- 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/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- 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/129—Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
-
- 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/172—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 picture, frame or field
-
- 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/174—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 slice, e.g. a line of blocks or a group of blocks
-
- 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/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/1883—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 relating to sub-band structure, e.g. hierarchical level, directional tree, e.g. low-high [LH], high-low [HL], high-high [HH]
-
- 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/46—Embedding additional information in the video signal during the compression process
-
- 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/70—Methods 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
-
- 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)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
비디오의 화상을 재구성하기 위해 인코딩된 화상 데이터 및 비디오의 화상의 인디케이션 데이터를 포함하는 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151)가 제공된다. 비디오 디코더(151)는 인코딩된 비디오 신호를 수신하기 위해 구성된 인터페이스(160), 및 인디케이션 데이터를 사용하여 인코딩된 화상 데이터를 디코딩함으로써 비디오의 화상을 재구성하기 위해 구성된 데이터 디코더(170)를 포함한다. 화상은 복수의 코딩 영역으로 분할되고, 여기서 복수의 코딩 영역의 각각의 코딩 영역은 화상 내에 위치되며, 여기서 복수의 코딩 영역의 각각은 화상 내에 위치되는 복수의 코딩 트리 유닛의 하나 이상의 코딩 트리 유닛을 포함하며, 여기서 인디케이션 데이터를 사용하여, 데이터 디코더(170)는 복수의 코딩 영역에 따라 인코딩된 화상 데이터를 디코딩하도록 구성되며, 여기서 인디케이션 데이터는 복수의 코딩 영역에 대한 정보를 포함한다. 복수의 코딩 영역 중 하나 이상의 코딩 영역은 복수의 코딩 트리 유닛 중 2개 이상의 코딩 트리 유닛을 포함하며, 여기서 2개 이상의 코딩 트리 유닛을 포함하는 하나 이상의 코딩 영역의 각각의 코딩 영역은 상기 코딩 영역의 2개 이상의 코딩 트리 유닛에 대한 코딩 순서를 나타내며, 여기서 인디케이션 데이터를 사용하여, 데이터 디코더(170)는 2개 이상의 코딩 트리 유닛을 포함하는 하나 이상의 코딩 영역의 코딩 순서에 따라 인코딩된 화상 데이터를 디코딩하도록 구성되며, 여기서 인디케이션 데이터는 2개 이상의 코딩 트리 유닛을 포함하는 하나 이상의 코딩 영역의 코딩 순서에 대한 정보를 포함한다.
Description
본 발명은 비디오 인코딩 및 비디오 디코딩에 관한 것으로서, 특히 코딩된 화상(picture)의 다양한 공간 분할(versatile spatial partitioning)을 위한 인코더 및 디코더, 인코딩 방법 및 디코딩 방법에 관한 것이다.
H.265/HEVC는 인코더 및/또는 디코더에서 병렬 처리(parallel processing)를 향상시키거나 가능하게 하는 도구(tool)를 이미 제공하는 비디오 코덱(video codec)이다. 예를 들어, HEVC는 서로 독립적으로 인코딩되는 타일(tile)의 배치로의 화상의 세분화(sub-division)를 지원한다. HEVC가 지원하는 다른 개념은 WPP에 관계되며, 이에 따라, 연속적 CTU 라인의 처리에서 일부 최소 CTU 오프셋이 준수되는 경우(CTU = 코딩 트리 유닛(coding tree unit)), 화상의 CTU 행(row) 또는 CTU 라인은 왼쪽에서 오른쪽으로 병렬로, 예를 들어 스트라이프(stripe)로 처리될 수 있다. 그러나, 비디오 인코더 및/또는 비디오 디코더의 병렬 처리 능력을 훨씬 더 효율적으로 지원하는 비디오 코덱을 사용하는 것이 유리할 것이다.
다음의 섹션“최신 기술(the state-of-the-art)에 따른 VCL 분할”에서는 최신 기술에 따른 VCL 분할에 대한 소개(VCL = 비디오 코딩 계층)가 설명된다.
일반적으로, 비디오 코딩에서, 화상 샘플의 코딩 프로세스는 예측 또는 변환 코딩과 같은 공동 처리를 위해 샘플이 일부 직사각형 영역으로 나뉘어지는 작은 파티션(partition)을 필요로 한다. 따라서, 화상은 비디오 시퀀스의 인코딩 동안 일정한 특정 크기의 블록으로 분할된다. H.264/AVC 표준에서는 매크로 블록(macroblock)이라고 하는 16x16 샘플의 고정 크기 블록이 사용된다. 최신 기술의 HEVC 표준([1] 참조)에서는 최대 64 x 64 샘플 크기의 CTB(Coded Tree Block) 또는 CTU(Coding Tree Unit)가 있다. HEVC에 대한 부가의 설명에서, 이러한 종류의 블록에 대해, 보다 일반적인 용어 CTU가 사용된다.
CTU는 왼쪽 상단 CTU에서 시작하여 화상의 CTU를 라인 방향으로 오른쪽 하단 CTU까지 래스터 스캔 순서(raster scan order)로 처리된다.
코딩된 CTU 데이터는 슬라이스(slice)라고 하는 일종의 컨테이너(container)로 구성된다. 원래, 슬라이스는 화상의 하나 이상의 연속적인 CTU를 포함하는 세그먼트(segment)를 의미한다.
아래의 하위 섹션 "슬라이스를 사용한 화상 분할(picture partitioning with slices)"에서는 코딩된 데이터의 세그먼테이션(segmentation)을 위해 슬라이스가 사용되는 방법이 설명된다. 다른 관점으로부터, 완전한 화상은 또한 하나의 큰 세그먼트로서 정의될 수 있으므로, 역사적으로 슬라이스라는 용어가 여전히 적용된다. 코딩된 화상 샘플 외에, 슬라이스는 또한 소위 슬라이스 헤더에 배치되는 슬라이스 자체의 코딩 프로세스와 관련된 부가적인 정보를 포함한다.
최신 기술에 따르면, VCL(video coding layer)은 또한 단편화(fragmentation) 및 공간 분할을 위한 기술을 포함한다. 이러한 분할은 예를 들어 다양한 이유로 비디오 코딩에 적용될 수 있으며, 그 중에는 다음에서 더 상세히 설명되는 바와 같이 병렬화에서 로드 밸런싱(load-balancing), 네트워크 송신에서 CTU 크기 매칭(CTU size matching), 오류 완화(error-mitigation) 등을 처리한다.
다음의 하위 섹션 "슬라이스를 사용한 화상 분할"에서, 슬라이스를 사용한 화상 분할이 설명된다.
H.263 표준부터는 특정 스캔 순서로 연속 블록을 나타내는 데이터의 시퀀스가 슬라이스라는 그룹으로 구성될 수 있다. 일반적으로, 예를 들어 예측 및 엔트로피 코딩(entropy coding)의 측면에서 화상의 상이한 슬라이스의 CTU 간의 종속성(dependencies)은 금지되므로, 화상 내의 개별 슬라이스는 독립적으로 재구성될 수 있다.
도 2는 래스터 스캔 순서로 슬라이스를 사용한 화상 세그먼테이션을 예시한다. 슬라이스의 크기는 도 2에 예시된 바와 같이 CTU(coding tree unit)의 수와 슬라이스에 속하는 각각의 코딩된 CTU의 크기에 의해 결정된다. 도 2는 50개의 CTU, 예를 들어, CTU 21, CTU 24 및 CTU 51을 포함한다.
다음의 하위 섹션 "타일을 사용한 화상 분할(picture partitioning with tile)"에서, 타일을 사용한 화상 분할은 도 3을 참조하여 설명된다. 도 3은 50개의 CTU, 예를 들어, CTU 23, CTU 27 및 CTU 41)를 포함한다.
타일은 HEVC에서 소개된 개념이지만, 개념은 H.264/AVC에 부가된 FMO(Flexible Macroblock Ordering)와 매우 유사하다. 타일의 개념은 화상을 여러 직사각형 영역으로 나눌 수 있다.
따라서, 타일은 원래의 화상을 도 3에 예시된 바와 같이 각각 지정된 높이와 폭를 가진 주어진 수의 행과 열로 나눈 결과이다. 그 결과로서, HEVC 비트스트림 내의 타일은 일반적인 격자를 형성하는 공통 경계(common boundaries)를 가질 필요가 있다.
다음의 하위 섹션 "최신 기술의 분할 사용 케이스 및 단점(partitioning use cases and shortcomings of the state-of-the-art)"에서는 도 4와 도 5를 참조하여 최신 기술의 분할 사용 케이스 및 단점이 설명된다. .
도 4는 해상도가 다른 타일 기반 360°비디오 스트리밍을 예시한다. 360°비디오 스트리밍에서, 뷰포트 적응형 스트리밍 기술(viewport adaptive streaming technique)은 타일 기반 360°비디오 스트리밍이라는 트랙션(traction)을 얻고 있다. 주요 아이디어는 상이한 해상도에서의 여러 타일로 구성된 360°비디오를 제공하는 것이다. 따라서, 현재 뷰포트에 따라, 클라이언트는 도 4에 도시된 바와 같이 고해상도에서 뷰포트와 일치하는 일부 타일와 저해상도에서 뷰포트 외부에 위치되는 다른 타일을 다운로드한다.
클라이언트 측에서, 수신기는 상이한 해상도에서 이러한 다운로드된 타일을 다운로드된 타일이 더 이상 HEVC 구문(syntax)에서 타일로서 설명될 수 없는 단일 HEVC 비트스트림으로 결합한다. 이에 대한 이유는 이러한 다운로드된 타일이 전체 화상에 걸쳐 동일한 경계를 공유하지 않고, 원래의 스트림의 타일링 입도(tiling granularity)가 상이하다는 것이다. 예를 들어, 왼쪽 측면 상의 고해상도 부분에는 상응하는 경계가 없기 때문에 HEVC 구문에서 슬라이스 경계로서만 프레젠테이션될 수 있는 도 4의 저해상도 부분에 대한 상단 및 하단 점선을 참조한다.
보다 유연한 화상 분할이 이로운 다른 시나리오는 지연이 적은 대화형 애플리케이션이다. 화상 분할은 또한 디코딩/인코딩 병렬화에 사용된다. 어떤 경우에,이러한 병렬화가 실시간 디코딩/인코딩을 달성하는 유일한 방법이다. 두 사람이 화상에 나타나는 비디오 회의 시나리오를 상상할 수 있다.
도 5는 유연한 코딩 영역 분할을 예시한다.
아마도, (코딩 복잡성 방식의) 공정한 로드 밸런싱을 달성하는 데 사용될 수 있는 양호한 화상 분할은 도 5에 도시된 것일 수 있다. 그러나, 이러한 시나리오에서는 타일링이 직사각형 타일링 그리드의 필요성으로 인해 바람직한 유연성이 부족하다.
(슬라이스를 사용한) 세그먼테이션의 다른 주요 목적은 오류 견고성(error robustness)이다. 화상의 일부 슬라이스가 손실되면, 이는 성공적으로 수신된 슬라이스의 복원을 방해하지 않으며, 따라서 부분적으로 복원된 화상은 출력될 수 있으며 다음의 화상에 대한 시간적 예측 프로세스에서 기준 화상(reference picture)으로서 더 사용될 수 있다. 이러한 특징(feature)은 오류율이 더 높거나 각각의 화상의 내용이 매우 중요한 송신 시스템에서 매우 중요하다. 반면에, 또한, 전송 계층(TCP/IP) 상에서 오류 검출 및 완화 기술의 특징을 이루고 성공적인 재송신까지 버퍼 스톨링(buffer stalling)이 송신 오류에 대한 솔루션인 송신 방식, 예를 들어 MPEG DASH에서와 같이 HTTP를 통한 동적 적응 스트리밍이 존재한다. 이러한 시나리오에서, 부가적인 종속성을 도입하면 오류 복원력이 손상될 수 있다. 최신 기술의 슬라이스 및 타일 분할은 또한 그 관점에서 유연성이 부족하다.
본 발명의 목적은 비디오 인코딩 및 비디오 디코딩을 위한 개선된 개념을 제공하는 것이다.
본 발명의 목적은 청구항 1에 따른 비디오 인코더, 청구항 57에 따른 비디오 디코더, 청구항 113에 따른 시스템, 청구항 114에 따른 비디오 인코딩 방법, 청구항 115에 따른 비디오 디코딩 방법, 청구항 116에 따른 컴퓨터 프로그램 및 청구항 117에 따른 인코딩된 비디오 신호에 의해 해결된다.
인코딩된 비디오 신호를 생성하여 화상을 인코딩하는 비디오 인코더가 제공된다. 비디오 인코더는 비디오의 화상을 인코딩된 화상 데이터로 인코딩하기 위해 구성된 데이터 인코더를 포함하며, 데이터 인코더는 또한 인디케이션 데이터(indication data)를 생성하기 위해 구성된다. 또한, 비디오 인코더는 인코딩된 화상 데이터 및 인디케이션 데이터를 포함하는 인코딩된 비디오 신호를 생성하기 위해 구성된 신호 생성기를 포함한다. 화상은 복수의 코딩 영역으로 분할되고, 여기서 복수의 코딩 영역의 각각의 코딩 영역은 화상 내에 위치되며, 여기서 복수의 코딩 영역의 각각은 화상 내에 위치되는 복수의 코딩 트리 유닛의 하나 이상의 코딩 트리 유닛을 포함하며, 여기서 데이터 인코더는 복수의 코딩 영역에 따라 화상을 인코딩하도록 구성되고, 데이터 인코더는 인디케이션 데이터가 복수의 코딩 영역에 대한 정보를 포함하도록 인디케이션 데이터를 생성하도록 구성된다. 복수의 코딩 영역 중 하나 이상의 코딩 영역은 복수의 코딩 트리 유닛 중 2개 이상의 코딩 트리 유닛을 포함하며, 여기서 2개 이상의 코딩 트리 유닛을 포함하는 하나 이상의 코딩 영역의 각각의 코딩 영역은 상기 코딩 영역의 2개 이상의 코딩 트리 유닛에 대한 코딩 순서를 나타내며, 여기서 데이터 인코더는 2개 이상의 코딩 트리 유닛을 포함하는 하나 이상의 코딩 영역의 코딩 순서에 따라 화상을 인코딩하도록 구성되고, 데이터 인코더는 인디케이션 데이터가 2개 이상의 코딩 트리 유닛을 포함하는 하나 이상의 코딩 영역의 코딩 순서에 대한 정보를 포함하도록 인디케이션 데이터를 생성하기 위해 구성된다.
더욱이, 비디오의 화상을 재구성하기 위해 인코딩된 화상 데이터 및 비디오의 화상의 인디케이션 데이터를 포함하는 인코딩된 비디오 신호를 디코딩하는 비디오 디코더가 제공된다. 비디오 디코더는 인코딩된 비디오 신호를 수신하기 위해 구성된 인터페이스, 및 인디케이션 데이터를 사용하여 인코딩된 화상 데이터를 디코딩함으로써 비디오의 화상을 재구성하기 위해 구성된 데이터 디코더를 포함한다. 화상은 복수의 코딩 영역으로 분할되고, 여기서 복수의 코딩 영역의 각각의 코딩 영역은 화상 내에 위치되며, 여기서 복수의 코딩 영역의 각각은 화상 내에 위치되는 복수의 코딩 트리 유닛의 하나 이상의 코딩 트리 유닛을 포함하며, 여기서 인디케이션 데이터를 사용하여, 데이터 디코더는 복수의 코딩 영역에 따라 인코딩된 화상 데이터를 디코딩하도록 구성되며, 여기서 인디케이션 데이터는 복수의 코딩 영역에 대한 정보를 포함한다. 복수의 코딩 영역 중 하나 이상의 코딩 영역은 복수의 코딩 트리 유닛 중 2개 이상의 코딩 트리 유닛을 포함하며, 여기서 2개 이상의 코딩 트리 유닛을 포함하는 하나 이상의 코딩 영역의 각각의 코딩 영역은 상기 코딩 영역의 2개 이상의 코딩 트리 유닛에 대한 코딩 순서를 나타내며, 여기서 인디케이션 데이터를 사용하여, 데이터 디코더는 2개 이상의 코딩 트리 유닛을 포함하는 하나 이상의 코딩 영역의 코딩 순서에 따라 인코딩된 화상 데이터를 디코딩하도록 구성되며, 여기서 인디케이션 데이터는 2개 이상의 코딩 트리 유닛을 포함하는 하나 이상의 코딩 영역의 코딩 순서에 대한 정보를 포함한다.
또한, 인코딩된 비디오 신호를 생성하여 화상을 인코딩하는 방법이 제공된다. 이 방법은,
- 비디오의 화상을 인코딩된 화상 데이터로 인코딩하는 단계;
- 인디케이션 데이터를 생성하는 단계; 및
- 인코딩된 화상 데이터 및 인디케이션 데이터를 포함하는 인코딩된 비디오 신호를 생성하는 단계를 포함한다.
화상은 복수의 코딩 영역으로 분할되고, 여기서 복수의 코딩 영역의 각각의 코딩 영역은 화상 내에 위치되며, 여기서 복수의 코딩 영역의 각각은 화상 내에 위치되는 복수의 코딩 트리 유닛의 하나 이상의 코딩 트리 유닛을 포함하며, 여기서 화상을 인코딩하는 단계는 복수의 코딩 영역에 따라 수행되고, 여기서 인디케이션 데이터를 생성하는 단계는 인디케이션 데이터가 복수의 코딩 영역에 대한 정보를 포함하도록 수행된다. 복수의 코딩 영역 중 하나 이상의 코딩 영역은 복수의 코딩 트리 유닛 중 2개 이상의 코딩 트리 유닛을 포함하며, 여기서 2개 이상의 코딩 트리 유닛을 포함하는 하나 이상의 코딩 영역의 각각의 코딩 영역은 상기 코딩 영역의 2개 이상의 코딩 트리 유닛에 대한 코딩 순서를 나타내며, 여기서 화상을 인코딩하는 단계는 2개 이상의 코딩 트리 유닛을 포함하는 하나 이상의 코딩 영역의 코딩 순서에 따라 수행되고, 여기서 인디케이션 데이터를 생성하는 단계는 인디케이션 데이터가 2개 이상의 코딩 트리 유닛을 포함하는 하나 이상의 코딩 영역의 코딩 순서에 대한 정보를 포함하도록 수행된다.
더욱이, 비디오의 화상을 재구성하기 위해 인코딩된 화상 데이터 및 비디오의 화상의 인디케이션 데이터를 포함하는 인코딩된 비디오 신호를 디코딩하는 방법이 제공된다. 이 방법은,
- 인코딩된 비디오 신호를 수신하는 단계; 및
- 인디케이션 데이터를 사용하여 인코딩된 화상 데이터를 디코딩하여 비디오의 화상을 재구성하는 단계를 포함한다.
화상은 복수의 코딩 영역으로 분할되고, 여기서 복수의 코딩 영역의 각각의 코딩 영역은 화상 내에 위치되며, 여기서 복수의 코딩 영역의 각각은 화상 내에 위치되는 복수의 코딩 트리 유닛의 하나 이상의 코딩 트리 유닛을 포함하며, 여기서 인디케이션 데이터를 사용하여, 인코딩된 화상 데이터를 디코딩하는 단계는 복수의 코딩 영역에 따라 수행되며, 여기서 인디케이션 데이터는 복수의 코딩 영역에 대한 정보를 포함한다. 복수의 코딩 영역 중 하나 이상의 코딩 영역은 복수의 코딩 트리 유닛 중 2개 이상의 코딩 트리 유닛을 포함하며, 여기서 2개 이상의 코딩 트리 유닛을 포함하는 하나 이상의 코딩 영역의 각각의 코딩 영역은 상기 코딩 영역의 2개 이상의 코딩 트리 유닛에 대한 코딩 순서를 나타내며, 여기서 인디케이션 데이터를 사용하여, 인코딩된 화상 데이터를 디코딩하는 단계는 2개 이상의 코딩 트리 유닛을 포함하는 하나 이상의 코딩 영역의 코딩 순서에 따라 수행되며, 여기서 인디케이션 데이터는 2개 이상의 코딩 트리 유닛을 포함하는 하나 이상의 코딩 영역의 코딩 순서에 대한 정보를 포함한다.
또한, 컴퓨터 또는 신호 프로세서 상에서 실행될 때 상술한 방법 중 하나를 구현하기 위한 컴퓨터 프로그램이 제공된다.
또한, 화상을 인코딩하는 인코딩된 비디오 신호가 제공되며, 여기서 인코딩된 비디오 신호는 인코딩된 화상 데이터 및 인디케이션 데이터를 포함하며, 여기서 화상은 복수의 코딩 영역으로 분할되고, 여기서 복수의 코딩 영역의 각각의 코딩 영역은 화상 내에 위치되며, 여기서 복수의 코딩 영역의 각각은 화상 내에 위치되는 복수의 코딩 트리 유닛의 하나 이상의 코딩 트리 유닛을 포함하며, 여기서 화상은 복수의 코딩 영역에 따라 인코딩되며, 여기서 인디케이션 데이터는 복수의 코딩 영역에 대한 정보를 포함하며, 여기서 복수의 코딩 영역 중 하나 이상의 코딩 영역은 복수의 코딩 트리 유닛 중 2개 이상의 코딩 트리 유닛을 포함하며, 여기서 2개 이상의 코딩 트리 유닛을 포함하는 하나 이상의 코딩 영역의 각각의 코딩 영역은 상기 코딩 영역의 2개 이상의 코딩 트리 유닛에 대한 코딩 순서를 나타내며, 여기서 화상은 2개 이상의 코딩 트리 유닛을 포함하는 하나 이상의 코딩 영역의 코딩 순서에 따라 인코딩되며, 여기서 인디케이션 데이터는 2개 이상의 코딩 트리 유닛을 포함하는 하나 이상의 코딩 영역의 코딩 순서에 대한 정보를 포함한다.
다음에는, 본 발명의 실시예가 도면을 참조하여 더 상세하게 설명된다.
도 1a는 일 실시예에 따라 인코딩된 비디오 신호를 생성하여 화상을 인코딩하는 비디오 인코더를 도시한다.
도 1b는 일 실시예에 따라 비디오의 화상을 재구성하기 위해 비디오의 화상의 인디케이션 데이터 및 인코딩된 화상 데이터를 포함하는 인코딩된 비디오 신호를 디코딩하는 비디오 디코더를 도시한다.
도 1c는 일 실시예에 따른 시스템을 도시한다.
도 2는 래스터 스캔 순서로 슬라이스를 사용한 화상 세그먼테이션을 도시한다.
도 3은 타일을 사용한 화상 분할을 도시한다.
도 4는 해상도가 다른 타일 기반 360°비디오 스트리밍을 도시한다.
도 5는 유연한 코딩 영역 분할을 도시한다.
도 6은 일 실시예에 따른 하나의 암시적 코딩 영역을 갖는 단일 화상을 포함하는 비트스트림을 도시한다.
도 7은 다른 실시예에 따른 4개의 코딩 영역을 갖는 단일 화상을 포함하는 비트스트림을 도시한다.
도 8은 일 실시예에 따라 상단에서의 단일 CA와 하단에서의 3개의 CA를 갖는 화상의 공간적 세분화를 도시한다.
도 9는 다른 실시예에 따른 5개의 코딩 영역을 갖는 화상의 공간적 세분화를 도시한다.
도 10은 일 실시예에 따라 화상 경계 CTU를 포함하는 2개의 코딩 영역 중 하나가 비연속적 CTU로 구성되는 2개의 코딩 영역을 도시한다.
도 11은 실시예에 따라 하위 영역(CTU) 레벨에서 시그널링하는 코딩 영역을 도시한다.
도 12는 일 실시예에 따라 CTU_dependency_offset_id = 1에 대한 CTU 스캔 순서 및 공간 참조(spatial reference)를 도시한다.
도 13은 다른 실시예에 따라 CTU_dependency_offset_id = 2에 대한 다른 CTU 스캔 순서 및 공간 참조를 도시한다.
도 14는 일 실시예에 따라 Z-Scan CTU 순서를 갖는 코딩 영역을 도시한다.
도 15는 다른 실시예에 따른 암시적 CTU 스캔 방향 도출(CTU scan direction derivation)을 도시한다.
도 16은 일 실시예에 따라 상이한 CTU-스캔 방향을 갖는 코딩 영역을 도시한다.
도 17은 일 실시예에 따라 영역간 예측 옵션(inter-region prediction option)을 갖는 종속 코딩 영역(dependent coding area)을 도시한다.
도 18은 실시예((A) CTU Raster Scan; (B) CTU Diagonal Scan)에 따른 종속 코딩 영역의 병렬 처리를 도시한다.
도 19는 일 실시예((A) Dependency Driven; (B) Lockstep)에 따른 실행 순서 및 CA 간 종속성(inter CA dependencies)을 도시한다.
도 20은 일 실시예에 따라 CA 순서에 대한 CA 경계 상의 디블로킹 필터 프로세스(deblocking filter process)를 도시한다.
도 21은 일 실시예에 따라 해치 필터 영역(hatched filter region)을 갖는 CA 간 필터링을 사용하는 디블로킹 필터를 도시한다.
도 22는 하나의 코딩 영역을 갖는 단일 화상을 포함하는 비트스트림을 도시하는 반면, CA는 다수의 전송 유닛으로 단편화된다.
도 23은 다수의 코딩 영역을 갖는 단일 화상(picture)을 포함하는 비트스트림을 도시하는 반면, 각각의 CA는 자체 전송 유닛을 갖는다.
도 24는 다수의 코딩 영역을 갖는 단일 화상을 포함하는 비트스트림을 도시하는 반면, 각각의 CA는 다수의 전송 유닛으로 단편화된다.
도 25는 일 실시예에 따라 영역에 의해 둘러싸인 블록의 일반화된 프레젠테이션(presentation)을 도시한다.
도 26은 일 실시예에 따라 타일, 브릭 및 직사각형 슬라이스로 분할된 화상의 예를 도시하며, 여기서 화상은 4개의 타일, 11개의 브릭 및 4개의 직사각형 슬라이스로 나뉘어진다.
도 27은 일 실시예에 따라 계층적으로 제 1 화상의 분할을 획득하기 위해 제 1 단계, 수평 및 수직 방향으로 분할되고, 제 2 화상의 분할을 획득하기 위해 제 2 단계, 수평 방향으로만 분할되는 화상을 도시한다.
도 28은 다른 실시예에 따라 계층적으로 제 1 화상의 분할을 획득하기 위해 제 1 단계, 수평 및 수직 방향으로 분할되고, 제 2 화상의 분할을 획득하기 위해 제 2 단계, 수평 방향으로만 분할되는 화상을 도시한다.
도 29는 부가의 실시예에 따라 계층적으로 제 1 화상의 분할을 획득하기 위해 제 1 단계, 수평 방향으로만 분할되고, 제 2 화상의 분할을 획득하기 위해 제 2 단계, 수직 방향으로만 분할되는 화상을 도시한다.
도 30은 또 다른 실시예에 따라 계층적으로 제 1 화상의 분할을 획득하기 위해 제 1 단계, 수직 방향으로만 분할되고, 제 2 화상의 분할을 획득하기 위해 제 2 단계, 수평 방향으로만 분할되는 화상을 도시한다.
도 1b는 일 실시예에 따라 비디오의 화상을 재구성하기 위해 비디오의 화상의 인디케이션 데이터 및 인코딩된 화상 데이터를 포함하는 인코딩된 비디오 신호를 디코딩하는 비디오 디코더를 도시한다.
도 1c는 일 실시예에 따른 시스템을 도시한다.
도 2는 래스터 스캔 순서로 슬라이스를 사용한 화상 세그먼테이션을 도시한다.
도 3은 타일을 사용한 화상 분할을 도시한다.
도 4는 해상도가 다른 타일 기반 360°비디오 스트리밍을 도시한다.
도 5는 유연한 코딩 영역 분할을 도시한다.
도 6은 일 실시예에 따른 하나의 암시적 코딩 영역을 갖는 단일 화상을 포함하는 비트스트림을 도시한다.
도 7은 다른 실시예에 따른 4개의 코딩 영역을 갖는 단일 화상을 포함하는 비트스트림을 도시한다.
도 8은 일 실시예에 따라 상단에서의 단일 CA와 하단에서의 3개의 CA를 갖는 화상의 공간적 세분화를 도시한다.
도 9는 다른 실시예에 따른 5개의 코딩 영역을 갖는 화상의 공간적 세분화를 도시한다.
도 10은 일 실시예에 따라 화상 경계 CTU를 포함하는 2개의 코딩 영역 중 하나가 비연속적 CTU로 구성되는 2개의 코딩 영역을 도시한다.
도 11은 실시예에 따라 하위 영역(CTU) 레벨에서 시그널링하는 코딩 영역을 도시한다.
도 12는 일 실시예에 따라 CTU_dependency_offset_id = 1에 대한 CTU 스캔 순서 및 공간 참조(spatial reference)를 도시한다.
도 13은 다른 실시예에 따라 CTU_dependency_offset_id = 2에 대한 다른 CTU 스캔 순서 및 공간 참조를 도시한다.
도 14는 일 실시예에 따라 Z-Scan CTU 순서를 갖는 코딩 영역을 도시한다.
도 15는 다른 실시예에 따른 암시적 CTU 스캔 방향 도출(CTU scan direction derivation)을 도시한다.
도 16은 일 실시예에 따라 상이한 CTU-스캔 방향을 갖는 코딩 영역을 도시한다.
도 17은 일 실시예에 따라 영역간 예측 옵션(inter-region prediction option)을 갖는 종속 코딩 영역(dependent coding area)을 도시한다.
도 18은 실시예((A) CTU Raster Scan; (B) CTU Diagonal Scan)에 따른 종속 코딩 영역의 병렬 처리를 도시한다.
도 19는 일 실시예((A) Dependency Driven; (B) Lockstep)에 따른 실행 순서 및 CA 간 종속성(inter CA dependencies)을 도시한다.
도 20은 일 실시예에 따라 CA 순서에 대한 CA 경계 상의 디블로킹 필터 프로세스(deblocking filter process)를 도시한다.
도 21은 일 실시예에 따라 해치 필터 영역(hatched filter region)을 갖는 CA 간 필터링을 사용하는 디블로킹 필터를 도시한다.
도 22는 하나의 코딩 영역을 갖는 단일 화상을 포함하는 비트스트림을 도시하는 반면, CA는 다수의 전송 유닛으로 단편화된다.
도 23은 다수의 코딩 영역을 갖는 단일 화상(picture)을 포함하는 비트스트림을 도시하는 반면, 각각의 CA는 자체 전송 유닛을 갖는다.
도 24는 다수의 코딩 영역을 갖는 단일 화상을 포함하는 비트스트림을 도시하는 반면, 각각의 CA는 다수의 전송 유닛으로 단편화된다.
도 25는 일 실시예에 따라 영역에 의해 둘러싸인 블록의 일반화된 프레젠테이션(presentation)을 도시한다.
도 26은 일 실시예에 따라 타일, 브릭 및 직사각형 슬라이스로 분할된 화상의 예를 도시하며, 여기서 화상은 4개의 타일, 11개의 브릭 및 4개의 직사각형 슬라이스로 나뉘어진다.
도 27은 일 실시예에 따라 계층적으로 제 1 화상의 분할을 획득하기 위해 제 1 단계, 수평 및 수직 방향으로 분할되고, 제 2 화상의 분할을 획득하기 위해 제 2 단계, 수평 방향으로만 분할되는 화상을 도시한다.
도 28은 다른 실시예에 따라 계층적으로 제 1 화상의 분할을 획득하기 위해 제 1 단계, 수평 및 수직 방향으로 분할되고, 제 2 화상의 분할을 획득하기 위해 제 2 단계, 수평 방향으로만 분할되는 화상을 도시한다.
도 29는 부가의 실시예에 따라 계층적으로 제 1 화상의 분할을 획득하기 위해 제 1 단계, 수평 방향으로만 분할되고, 제 2 화상의 분할을 획득하기 위해 제 2 단계, 수직 방향으로만 분할되는 화상을 도시한다.
도 30은 또 다른 실시예에 따라 계층적으로 제 1 화상의 분할을 획득하기 위해 제 1 단계, 수직 방향으로만 분할되고, 제 2 화상의 분할을 획득하기 위해 제 2 단계, 수평 방향으로만 분할되는 화상을 도시한다.
도 1a는 일 실시예에 따라 인코딩된 비디오 신호를 생성함으로써 화상을 인코딩하는 비디오 인코더(101)를 도시한다.
비디오 인코더(101)는 비디오의 화상을 인코딩된 화상 데이터로 인코딩하기 위해 구성된 데이터 인코더(110)를 포함한다. 데이터 인코더(110)는 또한 인디케이션 데이터를 생성하도록 구성된다.
더욱이, 비디오 인코더(101)는 인코딩된 화상 데이터 및 인디케이션 데이터를 포함하는 인코딩된 비디오 신호를 생성하기 위해 구성된 신호 생성기(120)를 포함한다.
화상은 복수의 코딩 영역으로 분할되고, 여기서 복수의 코딩 영역의 각각의 코딩 영역은 화상 내에 위치되며, 여기서 복수의 코딩 영역의 각각은 화상 내에 위치되는 복수의 코딩 트리 유닛의 하나 이상의 코딩 트리 유닛을 포함한다. 데이터 인코더(110)는 복수의 코딩 영역에 따라 화상을 인코딩하도록 구성되고, 여기서 데이터 인코더(110)는 인디케이션 데이터가 복수의 코딩 영역에 대한 정보를 포함하도록 인디케이션 데이터를 생성하기 위해 구성된다.
복수의 코딩 영역 중 하나 이상의 코딩 영역은 복수의 코딩 트리 유닛 중 2개 이상의 코딩 트리 유닛을 포함하며, 여기서 2개 이상의 코딩 트리 유닛을 포함하는 하나 이상의 코딩 영역의 각각의 코딩 영역은 상기 코딩 영역의 2개 이상의 코딩 트리 유닛에 대한 코딩 순서를 나타낸다. 데이터 인코더(110)는 2개 이상의 코딩 트리 유닛을 포함하는 하나 이상의 코딩 영역의 코딩 순서에 따라 화상을 인코딩하도록 구성된다. 또한, 데이터 인코더(110)는 인디케이션 데이터가 2개 이상의 코딩 트리 유닛을 포함하는 하나 이상의 코딩 영역의 코딩 순서에 대한 정보를 포함하도록 인디케이션 데이터를 생성하기 위해 구성된다.
도 1b는 일 실시예에 따라 비디오의 화상을 재구성하기 위해 비디오의 화상의 인디케이션 데이터 및 인코딩된 화상 데이터를 포함하는 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151)를 도시한다.
비디오 디코더(151)는 인코딩된 비디오 신호를 수신하기 위해 구성된 인터페이스(160)를 포함한다.
더욱이, 비디오 디코더(151)는 인디케이션 데이터를 사용하여 인코딩된 화상 데이터를 디코딩함으로써 비디오의 화상을 재구성하기 위해 구성된 데이터 디코더(170)를 포함한다.
화상은 복수의 코딩 영역으로 분할되고, 여기서 복수의 코딩 영역의 각각의 코딩 영역은 화상 내에 위치되며, 여기서 복수의 코딩 영역의 각각은 화상 내에 위치되는 복수의 코딩 트리 유닛의 하나 이상의 코딩 트리 유닛을 포함한다. 인디케이션 데이터를 사용하여, 데이터 디코더(170)는 복수의 코딩 영역에 따라 인코딩된 화상 데이터를 디코딩하도록 구성되며, 여기서 인디케이션 데이터는 복수의 코딩 영역에 대한 정보를 포함한다.
복수의 코딩 영역 중 하나 이상의 코딩 영역은 복수의 코딩 트리 유닛 중 2개 이상의 코딩 트리 유닛을 포함하며, 여기서 2개 이상의 코딩 트리 유닛을 포함하는 하나 이상의 코딩 영역의 각각의 코딩 영역은 상기 코딩 영역의 2개 이상의 코딩 트리 유닛에 대한 코딩 순서를 나타낸다. 인디케이션 데이터를 사용하여, 데이터 디코더(170)는 2개 이상의 코딩 트리 유닛을 포함하는 하나 이상의 코딩 영역의 코딩 순서에 따라 인코딩된 화상 데이터를 디코딩하도록 구성되며, 여기서 인디케이션 데이터는 2개 이상의 코딩 트리 유닛을 포함하는 하나 이상의 코딩 영역의 코딩 순서에 대한 정보를 포함한다.
일 실시예에 따르면, 도 1b의 비디오 디코더(151)는 예를 들어, 출력 장치, 예를 들어, TV, 컴퓨터, 휴대폰 등의 디스플레이 상에 비디오의 화상을 출력하도록 구성될 수 있다.
도 1c는 일 실시예에 따른 시스템을 도시한다. 시스템은 도 1a에 따른 비디오 인코더(101)를 포함한다. 더욱이, 시스템은 도 1b에 따른 비디오 디코더(151)를 포함한다.
도 1a의 비디오 인코더(101)는 인코딩된 비디오 신호를 생성하도록 구성되고,
도 1b의 비디오 디코더(151)는 인코딩된 비디오 신호를 디코딩하여 비디오의 화상을 재구성하도록 구성된다.
다음의 섹션 "코딩 영역을 사용한 다양한 화상 분할"에서는 코딩 영역을 사용한 다양한 화상 분할이 설명된다.
다음의 하위 섹션 "코딩 영역"에서는 코딩 영역이 설명된다.
타일과 같은 현재의 최신 기술의 분할 방식을 넘어, 실시예는 예를 들어, 코딩 영역(Coding Area; CA)으로서 지칭될 수 있는 보다 유연한 공간 영역 정의 개념을 제공한다. 이것은 화상을 직사각형 영역으로 공간 세분화하는 데 유리한 개념이다. 코딩 영역을 사용하면, 분할은 더 유연해지고, 개별 영역은 자체 영역 특정 코딩 특성을 가질 수 있다.
코딩 영역은 특정 영역의 치수(dimension) 및 장소(location)(폭, 높이, 위치) 및 영역의 데이터가 처리되는 방법에 의해 정의된다. 시그널링은 저 레벨 코딩 프로세스 사양 또는 스캔 순서, 스캔 방향, 스캔 시작 등과 같은 고 레벨 파라미터의 관점에서 구현될 수 있다.
도 6은 일 실시예에 따른 하나의 암시적 코딩 영역을 갖는 단일 화상을 포함하는 비트스트림을 도시한다.(NAL = Network Abstraction Layer; NALUH = Network Abstraction Layer Unit Header; SH = Slice Header).
도 7은 다른 실시예에 따른 4개의 코딩 영역을 갖는 단일 화상을 포함하는 비트스트림을 도시한다.
분할이 적용되지 않은 경우, 암시적으로 하나의 코딩 영역(CA)을 포함하는 화상은 도 6을 참조한다. 이것은 미리 정의된 기능을 가진 디폴트 코딩 영역일 수 있다. 도 7은 화상을 다수의 CA로 세분화하는 것을 도시한다.
일 실시예에서, 도 1a의 데이터 인코더(110)는 예를 들어 화상을 복수의 코딩 영역으로 분할하도록 구성될 수 있다.
도 8은 일 실시예에 따라 상단에서의 단일 코딩 영역(CA)와 하단에서의 3개의 CA를 갖는 화상의 공간적 세분화를 도시한다. 도 8 및 도 9에서의 각각의 사각형은 코딩 트리 유닛(CTU)를 나타낸다. 도 8 및 도 9는 사각형의 형상을 갖는 CTU를 도시하지만, CTU는 예를 들어, 다른 예에서 직사각형 형상 또는 임의의 다른 형상을 가질 수 있다.
도 8 및 도 9에서 볼 수 있는 바와 같이, 도 8 및 도 9의 각각의 코딩 영역은 화상 내에서 직사각형으로 확장된다. 더욱이, 도 8과 도 9에서, 각각의 CTU는 화상 내에서 직사각형으로 확장된다.
따라서, 일 실시예에 따르면, 복수의 코딩 영역의 각각의 코딩 영역은 예를 들어 화상 내에서 직사각형으로 확장될 수 있다. 복수의 코딩 영역의 각각의 하나 이상의 코딩 트리 유닛의 각각의 코딩 트리 유닛은 예를 들어, 화상 내에서 직사각형으로 확장될 수 있다.
도 9는 다른 실시예에 따른 5개의 코딩 영역을 갖는 화상의 공간적 세분화를 도시한다.
CA 분할의 한 가지 중요한 이점은 다음과 같이 입증되었다. 도 8과 도 9에서는 새로운 분할 개념의 두 가지 예가 제공된다.
일부 사용 케이스의 경우, 타일(Tile)로는 불가능한 CA로 분할을 달성할 수 있으며, 여기서 CA 분할으로 인해 파티션(partition의 수가 줄어 든다. 도 3의 타일 기반 분할에서 알 수 있는 바와 같이, 화상의 하단에서의 3개의 별개의 영역(Tile4, Tile5, Tile6)을 생성하려면 화상의 상단에서의 3개의 부가적인 영역(Tile1, Tile2, Tile3)을 인코딩할 필요가 있다. 코딩 영역을 사용하면, 도 8에서 알 수 있는 바와 같이 상단의 영역이 하나의 코딩 영역(CA1)으로 인코딩될 수 있다. 도 9에 도시된 파티션은 또한 CA1, CA2 및 CA3이 동일한 높이를 갖지 않음에 따라 타일을 통해 달성될 수 없다.
일 실시예에 따르면, 복수의 코딩 트리 유닛의 각각은 예를 들어, 화상 내의 수평 위치 및 화상 내의 수직 위치를 가질 수 있다. 도 8 및 도 9는 1 - 10의 CTU의 수평 위치와 1 - 5의 CTU의 수직 위치를 도시한다. 물론, 이러한 실시예에서, 위치가 1로 시작하고, 하나의 수평 또는 수직 위치에서 다음 위치로의 단계가 1인 것은 필요하지 않다. 대신에, 다른 시작 위치와 CTU 간의 다른 단계가 또한 가능하다. 수직 위치에 대해 하나의 CTU에서 다음 CTU로의 단계 크기(step size)는 수평 위치에 대해 하나의 CTU에서 다음 CTU로의 단계 크기와 상이할 수 있다.
도 9의 새로운 분할은 예를 들어 다음과 같이 특성화될 수 있다.
이러한 실시예(대안 1:)에서, 복수의 코딩 영역 중 제 1 코딩 영역은 예를 들어, 복수의 코딩 영역 중 상이한 제 2 코딩 영역의 상이한 제 2 코딩 트리 유닛의 제 2 수직 위치와 동일한 제 1 수직 위치를 갖는 제 1 코딩 트리 유닛을 포함할 수 있으며, 제 1 코딩 영역의 제 3 코딩 트리 유닛은 제 2 코딩 영역의 임의의 다른 코딩 트리 유닛의 수직 위치와 상이한 제 3 수직 위치을 가지며, 제 2 코딩 영역의 제 4 코딩 트리 유닛은 제 1 코딩 영역의 임의의 다른 코딩 트리 유닛의 수직 위치와 상이한 제 4 수직 위치를 갖는다.
또는 (대안 2:), 복수의 코딩 영역 중 제 1 코딩 영역은 예를 들어, 복수의 코딩 영역 중 상이한 제 2 코딩 영역의 상이한 제 2 코딩 트리 유닛의 제 2 수평 위치와 동일한 제 1 수평 위치를 갖는 제 1 코딩 트리 유닛을 포함할 수 있으며, 제 1 코딩 영역의 제 3 코딩 트리 유닛은 제 2 코딩 영역의 임의의 다른 코딩 트리 유닛의 수평 위치와 상이한 제 3 수평 위치을 가지며, 제 2 코딩 영역의 제 4 코딩 트리 유닛은 제 1 코딩 영역의 임의의 다른 코딩 트리 유닛의 수평 위치와 상이한 제 4 수평 위치를 갖는다.
도 9는 대안 1을 충족한다:
CA2는 CTU 91을 포함한다. CTU 91은 수직 위치 3을 갖는다. CA4의 CTU 96은 또한 수직 위치 3을 갖는다. CA2의 CTU 92는 수직 위치 2를 갖는다. (CA4의 수직 위치가 3 - 5 범위에 있음에 따라) CA4의 CTU 중 어느 것도 수직 위치 2를 갖지 않는다. 또한, CA4의 CTU 97은 수직 위치 4를 갖는다. (CA2의 수직 위치가 1 - 3 범위에 있음에 따라) CA2의 CTU 중 어느 것도 수직 위치 4를 갖지 않는다.
대조적으로, 도 8은 대안 1을 충족하지 않고, 대안 2를 충족하지 않는다.
대안 1:
CA2, CA3 및 CA4만이 (3 - 5 범위 내에서) 동일한 수직 위치를 갖는다. CA1은 임의의 다른 코딩 영역과 동일한 수직 위치를 갖지 않는다. 그러나, CA2는 코딩 영역 CA3 또는 CA4의 임의의 다른 수직 위치와 상이한 수직 위치를 갖지 않는다. 각각 CA2, CA4 및 CA2, CA3와 관련하여 각각 CA3 및 CA4의 경우에도 마찬가지이다.
대안 2:
CA2, CA3 및 CA4에는 수평 위치가 동일한 CTU가 없다.
대조적으로, CA1의 CTU 81은 CA2의 CTU 86과 동일한 수평 위치 3을 갖는다. 또한, CA2의 수평 위치가 1 - 4 범위에 있음에 따라, CA2의 CTU 중 어느 것도 CA1의 CTU 82의 수평 위치 6을 갖지 않는다. 그러나, CA2의 CTU의 수평 위치가 1 - 4 범위에 있고, CA1의 CTU의 수평 위치가 1 - 10 범위에 있음에 따라, CA1의 임의의 다른 CTU의 수평 위치와 상이한 CA2에 CTU가 없다.
유사한 이유로 CA1과 관련하여 CA3 및 CA4에서도 마찬가지이다.
따라서, 도 8의 분할은 대안 1을 충족하지 않고 대안 2를 충족하지 않는다.
단편화 및 스캔 순서와 관련된 다수의 CA 파라미터에 대한 시그널링 메커니즘은 하위 섹션 "코딩 영역의 일반적 속성(general properties of coding areas)"에서 제시된다.
공간적으로, 코딩 영역은 특정 수의 CTU를 포함한다. CA의 유연한 배치는 일부 실시예의 특징(feature) 중 하나이다. 이에 대한 몇 가지 변형, 즉 명시적 시그널링과 계층적 방법이 제안되며, 둘 다 VCL의 외부에서 사용된다. 또한, 비트스트림 단편화가 사용되지 않으면, VCL 내의 시그널링이 사용될 수 있다. CA 배치에 대한 상세한 설명은 하위 섹션 "코딩 영역의 크기 및 배치(size and arrangement of coding area)”에서 제공된다.
세그먼트의 배치 외에도, 실시예는 코딩 영역 내에서 CTU의 새로운 유연한 처리 또는 스캔 순서를 제공한다. 이러한 기술에 대한 상세 사항은 하위 섹션 "CTU 스캔 순서"에서 제시된다.
다른 발명된 특징 중 하나는 단일 화상 내에서 하나의 CA가 하위 섹션 "종속 코딩 영역"에서 설명된 바와 같이 일부 관점에서 다른 코딩 영역과 독립적 및/또는 종존적일 수 있다는 것이다.
새로운 제안된 방법의 조합을 사용하면 높은 레벨의 병렬 처리에서 새로운 기회를 얻을 수 있다. 공간 화상 영역의 병렬 처리는 하위 섹션 "코딩 영역의 병렬 처리"에서 상세히 설명된 바와 같이 더욱 효율적인 방식으로 수행될 수 있다.
오류 복원력(error resilience)의 양태는 하위 섹션 "오류 복원력 양태"에서 설명되어 있다.
상술한 개념의 요약:
일 실시예에 따르면, 복수의 코딩 영역의 각각의 코딩 영역은 예를 들어, 상기 코딩 영역의 위치, 폭 및 높이를 포함하는 공간 특성을 나타낼 수 있으며, 여기서 상기 코딩 영역의 폭 및 높이는 상기 코딩 영역의 직사각형 확장에 따라 달라지며, 상기 코딩 영역의 위치는 화상 내의 상기 코딩 영역의 위치에 따라 달라진다.
일 실시예에서, 복수의 코딩 영역 중 제 1 코딩 영역의 제 1 높이는 예를 들어, 복수의 코딩 영역 중 제 2 코딩 영역의 제 2 높이와 상이할 수 있다. 또는, 복수의 코딩 영역 중 제 1 코딩 영역의 제 1 폭은 복수의 코딩 영역 중 제 2 코딩 영역의 제 2 폭과 상이하다.
일 실시예에 따르면, 데이터 인코더(110)는, 예를 들어, 복수의 코딩 영역에 대한 정보가 복수의 코딩 영역의 각각의 코딩 영역의 공간적 특성에 대한 정보를 포함하도록 인디케이션 데이터를 생성하기 위해 구성될 수 있다.
일 실시예에서, 데이터 인코더(110)는 예를 들어, 복수의 코딩 영역에 대한 정보가 복수의 코딩 영역의 각각의 코딩 영역의 위치, 폭 및 높이를 포함하도록 인디케이션 데이터를 생성하기 위해 구성될 수 있다.
일 실시예에 따르면, 데이터 인코더(110)는, 예를 들어, 인코딩된 화상 데이터를 획득하기 위해 복수의 코딩 영역 중 임의의 다른 코딩 영역의 화상 부분의 이미지 데이터를 인코딩하는 것과 독립적으로 복수의 코딩 영역의 각각의 화상 부분의 이미지 데이터를 인코딩하도록 구성될 수 있다.
일 실시예에서, 데이터 인코더(110)는, 예를 들어, 인코딩된 화상 데이터를 획득하기 위해 복수의 코딩 영역의 각각의 코딩 영역 내의 화상 부분의 이미지 데이터를 인코딩함으로써 화상을 인코딩하도록 구성될 수 있다. 데이터 인코더(110)는, 예를 들어, 복수의 코딩 영역 중 적어도 하나의 코딩 영역의 화상 부분의 이미지 데이터를 인코딩하도록 구성될 수 있음으로써, 복수의 코딩 영역 중 상기 적어도 하나의 코딩 영역의 이미지 데이터의 인코딩이 복수의 코딩 영역 중 적어도 다른 하나의 코딩 영역의 이미지 데이터의 인코딩에 따라 달라지도록 한다.
일 실시예에서, 데이터 인코더(110)는 예를 들어, 2개 이상의 코딩 트리 유닛을 포함하는 하나 이상의 코딩 영역 중 각각의 코딩 영역에 대한 코딩 순서를 결정하도록 구성될 수 있다.
일 실시예에 따르면, 데이터 인코더(110)는, 예를 들어, 하나 이상의 코딩 중 각각의 코딩 영역에 대해 2개 이상의 스캔 순서로부터 하나의 스캔 순서를 선택함으로써 하나 이상의 코딩 영역 중 각각의 코딩 영역에 대한 코딩 순서를 결정하도록 구성될 수 있다.
일 실시예에서, 신호 생성기(120)는, 예를 들어, 인코딩된 비디오 신호가 비트스트림을 포함하도록 인코딩된 비디오 신호를 생성하도록 구성될 수 있으며, 여기서 비트스트림은 인코딩된 화상 데이터 및 인디케이션 데이터를 포함한다.
마찬가지로, 일 실시예에 따르면, 복수의 코딩 영역의 각각의 코딩 영역은 예를 들어, 상기 코딩 영역의 위치, 폭 및 높이를 포함하는 공간 특성을 나타낼 수 있으며, 여기서 상기 코딩 영역의 폭 및 높이는 상기 코딩 영역의 직사각형 확장에 따라 달라지며, 여기서 상기 코딩 영역의 위치는 화상 내의 상기 코딩 영역의 위치에 따라 달라진다. 데이터 디코더(170)는, 예를 들어, 복수의 코딩 영역의 공간적 특성에 따라 인코딩된 화상 데이터를 디코딩하도록 구성될 수 있다.
일 실시예에서, 복수의 코딩 영역 중 제 1 코딩 영역의 제 1 높이는 예를 들어, 복수의 코딩 영역 중 제 2 코딩 영역의 제 2 높이와 상이할 수 있다. 또는, 복수의 코딩 영역 중 제 1 코딩 영역의 제 1 폭은 복수의 코딩 영역 중 제 2 코딩 영역의 제 2 폭과 상이하다.
일 실시예에 따르면, 데이터 디코더(170)는, 예를 들어, 복수의 코딩 영역의 공간적 특성에 대한 인디케이션 데이터 내의 정보를 사용하여 인코딩된 화상 데이터를 디코딩하도록 구성될 수 있다.
일 실시예에서, 데이터 디코더(170)는, 예를 들어, 복수의 코딩 영역에 대한 인디케이션 데이터 내의 정보를 사용하여 인코딩된 화상 데이터를 디코딩하도록 구성될 수 있으며, 이는 복수의 코딩 영역 중 각각의 코딩 영역의 위치, 폭 및 높이를 포함한다.
일 실시예에 따르면, 데이터 디코더(170)는, 예를 들어, 복수의 코딩 영역 중 임의의 다른 코딩 영역의 인코딩된 화상 데이터를 디코딩하는 것과 독립적으로 복수의 코딩 영역의 각각의 인코딩된 화상 데이터를 디코딩하도록 구성될 수 있다.
일 실시예에서, 데이터 디코더(170)는, 예를 들어, 복수의 코딩 영역 중 적어도 하나의 인코딩된 화상 데이터를 디코딩함으로써, 복수의 코딩 영역 중 상기 적어도 하나의 인코딩된 화상 데이터의 디코딩이 복수의 코딩 영역 중 적어도 다른 하나의 인코딩된 화상 데이터의 디코딩에 따라 달라지도록 구성될 수 있다.
일 실시예에 따르면, 데이터 디코더(170)는, 예를 들어, 2개 이상의 코딩 트리 유닛을 포함하는 하나 이상의 코딩 영역의 각각의 코딩 영역에 대한 코딩 순서를 사용하여 인코딩된 화상 데이터를 디코딩하도록 구성될 수 있으며, 하나 이상의 코딩 영역의 각각의 코딩 영역에 대한 상기 코딩 순서는 인디케이션 데이터에 의해 나타내어진다.
일 실시예에서, 데이터 디코더(170)는, 예를 들어, 하나 이상의 코딩 영역의 각각의 코딩 영역에 대한 2개 이상의 스캔 순서로부터의 스캔 순서 상의 인디케이션을 사용하여 인코딩된 화상 데이터를 디코딩하도록 구성될 수 있으며, 여기서 인디케이션 데이터는, 예를 들어, 하나 이상의 코딩 영역의 각각의 코딩 영역에 대한 스캔 순서 상의 인디케이션을 포함한다.
일 실시예에 따르면, 인터페이스(160)는, 예를 들어, 비트스트림을 수신하도록 구성될 수 있으며, 여기서 비트스트림은 인코딩된 화상 데이터 및 인디케이션 데이터를 포함한다.
다음의 하위 섹션 "코딩 영역의 일반적 속성(general properties of coding area)"에서, 코딩 영역의 일반적 속성이 설명된다.
코딩 영역에 대한 일반적 정보는 소위 CAS(Coding Areas Set)에 집중되어 있다. CAS는 고 레벨 파라미터 세트의 VCL 외부에 정착(settle)될 수 있으며, 그리고 나서 이는 전체 시퀀스 또는 시퀀스의 일부, 예를 들어 화상에 영향을 미친다.
x = 비디오, 시퀀스, 화상…
[표 2-1]
[표 2-1-1]
coding_area_explicit_positioning_flag 참(true)이면 coding_area_top_left_CTU_address가 비트스트림에 존재하고, 그렇지 않으면 디폴트 암시적 CA 포지셔닝(default implicit CA positioning)이 사용된다.
num_coding_areas_minus1 비트스트림에서 시그널링된 코딩 영역의 수
Dependent_coding_areas_enabled_flag 참이면 비트스트림에서 뒤따르는 CA가 비트스트림에서 나타나는 순서대로 서로 의존함을 나타내고, 그렇지 않으면 CA는 독립적 영역으로서 취급된다.
coding_areas_CTU_wise_dependent_flag 참이면 인접한 CA 간의 CTU 종속성이 CA 처리를 인터리빙(interleaving)하는 CTU 방식의 처리(CTU-wise processing)로 처리됨을 나타내며, 그렇지 않으면 CA는 고정된 순서로 개별적으로 처리된다.
coding_area_no_slices_flag 참이면 CA 당 하나의 슬라이스를 나타낸다. 이는 EOS_flag 및 CTU_start_address가 비트스트림에 존재하지 않음을 의미한다. CA는 대신에 ceil(log2(num_coding_areas_minus1+1))로부터 도출된 고정 길이 코드인 CA_idx에 의해 어드레싱된다. 그렇지 않으면 디폴트 슬라이스 구문(default slice syntax)이 비트스트림에 존재한다.
coding_area_CTU_scan_flag는 참이면 CTU 스캔 파라미터가 비트스트림에 존재함을 나타낸다. 유연한 CTU 스캔 기술은 하위 섹션 "CTU 스캔 순서"에 설명되어 있다.
coding_area_CTU_scan_type_idx는 스캔 타입 테이블(래스터 스캔, 대각선 스캔)로 매핑된다.
coding_area_CTU_scan_start_left_flag [i]는 제 i CA가 CTU 라인 당 하나 이상의 CTU를 포함하는 경우 존재하며, 참이면 CA 내에서 가장 왼쪽 CTU에서 CTU 스캔을 시작하도록 나타낸다. 그렇지 않으면 제 i CA의 CTU 스캔은 가장 오른쪽 CTU로 시작된다.
coding_area_CTU_scan_start_top_flag [i]는 제 i CA가 CTU 열(column) 당 하나 이상의 CTU를 포함하는 경우 존재하며, 참이면 CA 내의 상단 CTU 행(row)에서 CTU 스캔을 시작하도록 나타낸다. 그렇지 않으면 제 i CA의 CTU 스캔이 CA의 CTU 하단 라인에서 시작된다.
coding_area_CTU_scan_direction_flag [i]는 제 i CA가 적어도 2개의 CTU 행과 2개의 CTU 열을 포함하는 경우 존재하며, CTU 스캔의 시작 스캔 방향을 나타낸다. 참이면 제 i CA의 스캔 방향이 수평 방향으로 시작하며, 그렇지 않으면 스캔은 수직 스캔이다.
상술한 개념의 요약:
일 실시예에서, 데이터 인코더(110)는, 예를 들어, 인디케이션 데이터가 예를 들어, 왼쪽 상단 코딩 트리 유닛의 어드레스가 지정되는지에 대한 각각의 코딩 영역에 대한 정보를 포함할 수 있도록 인디케이션 데이터를 생성하기 위해 구성될 수 있다. 특정 예는, 예를 들어 coding_area_explicit_positioning_flag일 수 있다. 참이면, coding_area_top_left_CTU_address가 비트스트림에 존재하고, 그렇지 않으면 디폴트 암시적 CA 포지셔닝이 사용된다.
일 실시예에 따르면, 데이터 인코더(110)는, 예를 들어, 인디케이션 데이터가 예를 들어, 복수의 코딩 영역의 수 또는 복수의 코딩 영역의 수 마이너스 1 또는 복수의 코딩 영역의 수 마이너스 2에 대한 정보를 포함할 수 있도록 인디케이션 데이터를 생성하기 위해 구성될 수 있다. 특정 예는 예를 들어, 상술한 num_coding_areas_minus1 필드일 수 있다.
일 실시예에서, 데이터 인코더(110)는, 예를 들어, 인디케이션 데이터가 복수의 코딩 영역 중 다른 하나에 이어지는 복수의 코딩 영역 중 하나에 대해 상기 복수의 코딩 영역 중 하나가 상기 복수의 코딩 영역 중 다른 하나에 의존하는지를 나타내도록 인디케이션 데이터를 생성하기 위해 구성될 수 있다. 특정 예는, 예를 들어, dependent_coding_areas_enabled_flag일 수 있으며, 이는, 참이면, 예를 들어 비트스트림에서 뒤따르는 CA가 비트스트림에서 나타나는 순서대로 서로 의존한다는 것을 나타낼 수 있으며, 그렇지 않으면 CA가 독립적 영역으로서 취급된다.
일 실시예에 따르면, 데이터 인코더(110)는, 예를 들어, 인디케이션 데이터가 복수의 슬라이스 중 정확히 하나의 슬라이스가 복수의 코딩 영역 중 정확히 하나의 코딩 영역에 할당되는지를 나타내도록 인디케이션 데이터를 생성하기 위해 구성될 수 있다. 특정 예는 예를 들어, 상술한 coding_area_no_slices_flag일 수 있다.
일 실시예에서, 데이터 인코더(110)는, 예를 들어, 인디케이션 데이터가 예를 들어, 복수의 코딩 영역의 하나 이상의 코딩 트리 유닛의 각각 내에서 스캔하는 방법에 대한 정보를 포함할 수 있는지를 인디케이션 데이터가 나타내도록 인디케이션 데이터를 생성하기 위해 구성될 수 있다. 특정 예는, 예를 들어 상술한 coding_area_CTU_scan_flag일 수 있다.
일 실시예에 따르면, 데이터 인코더(110)는, 예를 들어, 인디케이션 데이터가 복수의 코딩 영역의 하나 이상의 코딩 트리 유닛의 각각 내에서 스캔하는 방법을 나타내도록 인디케이션 데이터를 생성하기 위해 구성될 수 있다. 특정 예는 예를 들어 스캔 타입 테이블에 매핑되는 coding_area_CTU_scan_type_idx일 수 있다. 스캔 타입은 예를 들어 래스터 스캔 및/또는 예를 들어 대각선 스캔 등일 수 있다.
일 실시예에서, 데이터 인코더(110)는, 예를 들어, 코딩 영역이 하나 이상의 코딩 트리 유닛을 포함하는지를 인디케이션 데이터가 복수의 코딩 영역의 각각에 대해 나타내도록 인디케이션 데이터를 생성하기 위해 구성될 수 있다.
일 실시예에 따르면, 데이터 인코더(110)는, 예를 들어, 코딩 트리 유닛 스캔이 가장 왼쪽의 코딩 트리 유닛으로 시작되는지 코딩 트리 유닛 스캔이 가장 오른쪽 코딩 트리 유닛으로 시작되는지를 인디케이션 데이터가 복수의 코딩 영역 중 하나에 대해 나타내도록 인디케이션 데이터를 생성하기 위해 구성될 수 있다. 특정 예는, 예를 들어, 상술한 coding_area_CTU_scan_start_left_flag [i]일 수 있다.
일 실시예에서, 데이터 인코더(110)는, 예를 들어, 코딩 트리 유닛 스캔이 코딩 영역의 상단 코딩 트리 유닛 행으로 시작되는지 코딩 트리 유닛 스캔이 코딩 영역의 하단 코딩 트리 유닛 행으로 시작되는지를 인디케이션 데이터가 복수의 코딩 영역 중 하나에 대해 나타내도록 인디케이션 데이터를 생성하기 위해 구성될 수 있다. 특정 예는, 예를 들어, 상술한 coding_area_CTU_scan_start_top_flag [i]일 수 있다.
일 실시예에서, 데이터 인코더(110)는, 예를 들어, 코딩 트리 유닛 스캔이 수평 방향으로 시작되는지 코딩 트리 유닛이 수직 방향으로 시작되는지를 인디케이션 데이터가 복수의 코딩 영역 중 하나에 대해 나타내도록 인디케이션 데이터를 생성하기 위해 구성될 수 있다. 특정 예는, 예를 들어 coding_area_CTU_scan_direction_flag [i]일 수 있으며, 이는 예를 들어 제 i CA가 적어도 2개의 CTU 행과 2개의 CTU 열을 포함하고, CTU-스캔의 시작 스캔 방향을 나타내는 경우에 존재할 수 있다. 참이면, 제 i CA의 스캔 방향은, 예를 들어, 수평 방향에서 시작할 수 있고, 그렇지 않으면 스캔은 예를 들어 수직 스캔일 수 있다.
마찬가지로, 일 실시예에 따르면, 데이터 디코더(170)는, 예를 들어, 왼쪽 상단 코딩 트리 유닛의 어드레스가 지정되는지에 대한 각각의 코딩 영역에 대한 정보를 사용하여 인코딩된 화상 데이터를 디코딩하도록 구성될 수 있으며, 여기서 인디케이션 데이터는, 예를 들어, 상기 정보를 포함할 수 있다.
일 실시예에서, 데이터 디코더(170)는, 예를 들어, 복수의 코딩 영역의 수 또는 복수의 코딩 영역의 수 마이너스 1 또는 복수의 코딩 영역의 수 마이너스 2에 대한 정보를 사용하여 인코딩된 화상 데이터를 디코딩하도록 구성될 수 있다. 여기서 인디케이션 데이터는 예를 들어 상기 정보를 포함할 수 있다.
일 실시예에 따르면, 데이터 디코더(170)는, 예를 들어, 복수의 코딩 영역 중 다른 하나에 이어지는 복수의 코딩 영역 중 하나에 대해 상기 복수의 코딩 영역 중 하나가 상기 복수의 코딩 영역 중 다른 하나에 의존하는지를 나타내는 정보를 사용하여 인코딩된 화상 데이터를 디코딩하도록 구성될 수 있으며, 여기서 인디케이션 데이터는, 예를 들어, 상기 정보를 포함할 수 있다.
일 실시예에서, 데이터 디코더(170)는, 예를 들어, 복수의 슬라이스 중 정확히 하나의 슬라이스가 복수의 코딩 영역 중 정확히 하나의 코딩 영역에 할당되는지를 나타내는 정보를 사용하여 인코딩된 화상 데이터를 디코딩하도록 구성될 수 있다. 인디케이션 데이터는 예를 들어 상기 정보를 포함할 수 있다.
일 실시예에 따르면, 데이터 디코더(170)는, 예를 들어, 인디케이션 데이터가 예를 들어, 복수의 코딩 영역의 하나 이상의 코딩 트리 유닛의 각각 내에서 스캔하는 방법에 대한 정보를 포함할 수 있는지에 대한 정보를 사용하여 인코딩된 화상 데이터를 디코딩하도록 구성될 수 있다. 인디케이션 데이터는, 예를 들어, 상기 정보를 포함할 수 있다.
일 실시예에서, 데이터 디코더(170)는 예를 들어, 복수의 코딩 영역의 하나 이상의 코딩 트리 유닛의 각각 내에서 스캔하는 방법에 대한 정보를 사용하여 인코딩된 화상 데이터를 디코딩하도록 구성될 수 있으며, 여기서 인디케이션 데이터는 예를 들어, 상기 정보를 포함할 수 있다.
일 실시예에 따르면, 데이터 디코더(170)는 예를 들어, 코딩 영역이 하나 이상의 코딩 트리 유닛을 포함하는지를 복수의 코딩 영역의 각각에 대해 나타내는 정보를 사용하여 인코딩된 화상 데이터를 디코딩하도록 구성될 수 있으며, 여기서 인디케이션 데이터는 예를 들어, 상기 정보를 포함할 수 있다.
일 실시예에서, 데이터 디코더(170)는 예를 들어, 코딩 트리 유닛 스캔이 가장 왼쪽의 코딩 트리 유닛으로 시작되는지 코딩 트리 유닛 스캔이 가장 오른쪽의 코딩 트리 유닛으로 시작되는지를 복수의 코딩 영역 중 하나에 대해 나타내는 정보를 사용하여 인코딩된 화상 데이터를 디코딩하도록 구성될 수 있으며, 여기서 인디케이션 데이터는 예를 들어 상기 정보를 포함할 수 있다.
일 실시예에 따르면, 데이터 디코더(170)는, 예를 들어, 코딩 트리 유닛 스캔이 코딩 영역의 상단 코딩 트리 유닛 행으로 시작되는지 코딩 트리 유닛 스캔이 코딩 영역의 하단 코딩 트리 유닛 행으로 시작되는지를 복수의 코딩 영역 중 하나에 대해 나타내는 정보를 사용하여 인코딩된 화상 데이터를 디코딩하도록 구성될 수 있으며, 여기서 인디케이션 데이터는 예를 들어 상기 정보를 포함할 수 있다.
일 실시예에 따르면, 데이터 디코더(170)는 예를 들어, 코딩 트리 유닛 스캔이 수평 방향으로 시작되는지 코딩 트리 유닛 스캔이 수직 방향으로 시작되는지를 복수의 코딩 영역 중 하나에 대해 나타내는 정보를 사용하여 인코딩된 화상 데이터를 디코딩하도록 구성될 수 있으며, 여기서 인디케이션 데이터는 예를 들어 상기 정보를 포함할 수 있다.
다음의 서브 섹션 "코딩 영역의 크기 및 배치"에서, 코딩 영역의 크기 및 배치가 설명된다.
코딩 영역이 화상 내에서 어떻게 배치되는지를 시그널링하는 것이 중요하다. 애플리케이션에 따라, CA 크기 및 위치와 같이 화상 분할에서 원하는 유연성에 영향을 미칠 수 있는 상이한 타겟이 추구된다. 레이아웃(layout)은 또한 시간적으로 고정된 CA 레이아웃을 사용하거나 시간이 지남에 따라 콘텐츠에 따라 레이아웃을 적응시키기 위해 비트스트림의 고 레벨 섹션에서 송신될 수 있다.
예를 들어, 360°비디오 스트리밍을 위한 하위 섹션 "타일을 사용한 화상 분할"에서 제공된 예에서, CA는 일반적으로 전체 CVS(coding video sequence)에 대해 일정하며, 크기는 예를 들어 도 4에 예시된 바와 같이 동일한 콘텐츠의 상이한 해상도로부터 생성된 파티션만을 수용할 필요가 있다. 이러한 경우에, CA 배치 시그널링을 위한 가장 적절한 위치는 나중에 하위 섹션 "실시예 A" 및 하위 섹션 "실시예 B"에서 설명되는 바와 같이 고 레벨 구문 구조(예를 들어 HEVC에 대한 VPS, SPS, PPS 참조)에 있다.
그러나, 로드 밸런싱(예를 들어, 비디오 회의 시나리오)을 위한 하위 섹션 "타일을 사용한 화상 분할"에서와 같은 다른 예에서, 화상당 동적 분할(dynamic per picture partitioning)이 바람직할 수 있다. 또한, CA에 대해 선택된 초기 구성은 최적이 아닌 것으로 확인될 수 있으며, 따라서 분할의 화상 내 수정(in-picture modification)(인코딩 중)이 필요할 수 있다. 이러한 경우, CA 배치는 선험적으로 알려지지 않은 경우, 하위 섹션 "실시예 C에 설명된 바와 같이 (파라미터 세트 내의) 고 레벨 시그널링에 비해 in-VCL(슬라이스 페이로드 내의 Video Coding Layer) 시그널링이 선호된다.
다음의 하위 섹션 "실시예 A"에서, 샘플 또는 유닛 별 위치 및 크기 신호가 설명된다.
해당 영역을 선택하기 위해 CTU 시작 어드레스를 사용한 명시적 CA 포지셔닝
[표 2-2]
도 10은 일 실시예에 따라 화상 경계 CTU를 포함하는 2개의 코딩 영역 중 하나가 비연속적 CTU로 구성되는 2개의 코딩 영역을 도시한다.
원칙적으로, 상술한 구문 num_coding_areas_minus2는 하나를 제외한 모든 CA를 정의할 수 있고, 마지막 CA를 이전의 CA에 의해 커버되지 않은 나머지 부분으로서 가질 수 있다. 그러나, 이것은 도 10에 도시된 바와 같이 연속적인 CTU를 갖지 않는 CA를 허용하며, 이는 인코딩/디코딩 프로세스에 약간의 복잡성을 부가할 수 있다.
따라서, 이러한 케이스를 금지하기 위해 제약 조건(constraint)이 부가되어야 하고, 예를 들어, CTUb_addr - CTUa_addr = CAWidthInNumCTUs_minus1 및 CTUc_addr - CTUa_addr = CAHeightInNumCTUs_minus1 모든 CTU를 가진 CA의 왼쪽 상단, 오른쪽 상단, 왼쪽 하단 및 오른쪽 하단에서 CTU에 상응하는 4개의 CTU(CTUa, CTUb, CTUc, CTUd)가 주어지면 일부 일부 제약 조건을 충족하는 구문을 필요로 하고, 다음의 CTU_address를 가진 것들만이 나머지 CA j = 0… CAWidthInNumCTUs_minus1 및 k = 0… CAHeightInNumCTUs_minus1인 CTUx_addr=CTUa_addr+j+k*(CAWidthInNumCTUs_minus1+1)에 속해야 한다.
대안으로, CA가 이러한 조건을 충족하도록 지시/제약할 수 있는 구문 요소(예를 들어, "non_contiguous_remaining_coding_unit_enabled_flag")가 부가될 수 있다. 따라서, 일부 프로파일(profile)은 인접하지 않은 CA에 의해 부가된 복잡성을 방지하기 위해 해당 플래그를 사용하지 않도록 지시할 수 있다.
일 실시예에 따르면, 데이터 인코더(110)는 예를 들어, 인디케이션 데이터가 복수의 코딩 영역 중 적어도 하나가 복수의 코딩 영역 중 다른 하나를 둘러싸는지 복수의 코딩 영역 중 어느 것도 코딩 영역 중 다른 하나를 둘러싸지 않는지를 나타내는 비연속적 정보를 포함하도록 인디케이션 데이터를 생성하기 위해 구성될 수 있다. 도 10은 2개의 코딩 영역(CA1, CA2)이 도시된 특정 예이다. 외부 코딩 영역(CA1)은 내부 코딩 영역(CA2)을 둘러싼다.
도 10에서, CA1은 CA2를 둘러싼다. non_contiguous_remaining_coding_unit_enabled_flag는 각각의 인디케이션을 제공하기 위해 사용될 수 있다.
마찬가지로, 일 실시예에서, 데이터 디코더(170)는, 예를 들어, 복수의 코딩 영역 중 적어도 하나가 복수의 코딩 영역 중 다른 하나를 둘러싸는지 복수의 코딩 영역 중 어느 것도 코딩 영역 중 다른 하나를 둘러싸지 않는지를 나타내는 비연속적 정보를 사용하여 인코딩된 화상 데이터를 디코딩하도록 구성될 수 있으며, 여기서 인디케이션 데이터는 상기 정보를 포함한다.
상술한 표에서의 구문은 최대 코딩 유닛(예를들어, 128x128)의 배수가 아닌 CA를 사용하여 유연한 시그널링을 허용하며, 이는 일부 애플리케이션에 대해 유익하다. 그러나, 샘플 유닛을 사용하는 시그널링 CA는 많은 비트가 사용되도록 할 수 있다. 대안으로, 시그널링은 비트를 절약하기 위해 CTU에서 수행될 수 있다. 문제는 다수의 CTU가 아닌 크기가 시그널링될 수 없다는 것이다. 아래에 제안된 구문에서, 일부 부가적인 정보를 통해 이러한 문제가 해결될 수 있다.
[표 2-3]
제안된 시그널링은 CA의 마지막 CTU 행과 열이 나타내어진 최대 크기의 CTU를 포함하는지 마지막 CTU가 더 작은지를 나타낸다. 더 작은 경우, CA의 마지막 CTU 행과 열의 크기가 나타내어진다.
그러나, CA가 최대 CTU 크기의 배수가 아닌 경우(즉, 행 또는 열의 마지막 CTU가 더 작음), 이는 CA가 다른 CA보다 작은 일부 CTU를 가질 수 있음에 따라 행 또는 열 당 CTU의 상이한 수를 갖는 화상으로 이어질 수 있다. 화상 내에서 예측에 사용되는 변수의 저장은 일반적으로 CTU 어드레스로 처리되고, 행 또는 열 당 다양한 수의 CTU가 CTU 어드레싱을 실행 불가능하게 하거나 너무 복잡하게 할 수 있으므로 이러한 정렬 불량은 바람직하지 않을 수 있다. 따라서, CA가 전체 CTU(또는 최대 CTU 크기의 CTU) 전에 종료될 때마다 다른 인접한 CA가 전체 CTU를 포함하지 않는 차원(수평 또는/및 수직) 내에서 정렬되어야 한다는 제약 조건이 부가되어야 한다.
암시적 포지셔닝은 코딩 영역에 의해 커버되지 않은 최상위 CTU 행의 가장 왼쪽 위치에서 반복적으로 시작된다. 다시 말하면, 예를 들어, 표 2-4에 도시된 바와 같이 coding_area_explicit_positioning_flag가 0으로 설정되면, CA의 시작 어드레스는 나타내어지지 않고 폭과 높이만 나타내어지며, 디코더는 1 .. 제(i-1) CA에 의해 아직 커버되지 않은 가장 작은 CTU 어드레스를 검색하여 제 i CA의 시작 어드레스를 도출해야 한다.
일 실시예에서, 데이터 인코더(110)는, 예를 들어, 상기 코딩 영역의 하나 이상의 코딩 트리 유닛 중 하나를 나타내는 시작 어드레스가 나타내어지는지, 상기 코딩 영역의 하나 이상의 코딩 트리 유닛 중 상기 하나를 나타내는 시작 어드레스가 나타내어지지 않는지를 인디케이션 데이터가 코딩 영역에 대해 나타내도록 인디케이션 데이터를 생성하기 위해 구성될 수 있다. 특정 예는, 예를 들어 상술한 coding_area_CTU_start_address일 수 있다.
마찬가지로, 일 실시예에 따르면, 데이터 디코더(170)는, 예를 들어, 상기 코딩 영역의 하나 이상의 코딩 트리 유닛 중 하나를 나타내는 시작 어드레스가 나타내어지는지, 상기 코딩 영역의 하나 이상의 코딩 트리 유닛 중 상기 하나를 나타내는 시작 어드레스가 나타내어지지 않는지를 코딩 영역에 대한 인디케이션을 사용하여 인코딩된 화상 데이터를 디코딩하도록 구성될 수 있다. 상기 코딩 영역의 하나 이상의 코딩 트리 유닛 중 상기 하나를 나타내는 시작 어드레스가 나타내어지지 않는 경우, 데이터 디코더(170)는, 예를 들어, 코딩 영역 폭, 상기 코딩 영역의 코딩 높이 및 상기 코딩 영역의 코딩 영역 스캔 방향에 따라 상기 코딩 영역의 하나 이상의 코딩 트리 유닛 중 상기 하나를 나타내는 시작 어드레스를 결정하도록 구성될 수 있다.
상술한 두 테이블의 구문은 coding_area_start_address [i]를 포함하며, 이는 원칙적으로 파서(parser)의 동작을 단순화하지만 어느 정도는 시그널링된 크기로부터 간단히 도출될 수 있는 "중복(redundant)" 정보이다. 따라서, 두 테이블은 제공된 것과 동일할 수 있지만 해당 구문 요소가 없으며, 여기서 어드레스는 "코딩 영역에 의해 커버되지 않은 최상위 CTU 행의 가장 왼쪽 위치"로서 도출된다.
고 화상 해상도의 경우, 부가적인 단계 크기는 CA 파티션의 폭와 높이 및 사용 가능한 경우 위치 코드를 스케일링(scaling)하는 데 유용할 수 있다.
[표 2-4]
최종 CA 위치 및 크기는 다음과 같이 도출된다:
coding_area_width_in_CTU = coding_area_width_in_units* (coding_area_unit_scaling_factor_minus1+1)
coding_area_height_in_CTU = coding_area_height_in_units* (coding_area_unit_scaling_factor_minus1+1)
pic_width_in_units = (pic_width_in_CTU+coding_area_unit_scaling_factor_minus1)
/ (coding_area_unit_scaling_factor_minus1+1)
coding_area_CTU_start_address = ( coding_area_unit_scaling_factor_minus1+1)
*( (coding_area_start_address_in_units % pic_width_in_units ) + (coding_area_CTU_start_address _unit / pic_width_in_units )* picture_width_in_CTU))
[표 2-5]
coding_area_scaling_factor_minus1은 CA 위치 및 크기 파라미터를 스케일링하는 데 사용되는 스케일링 계수이다.
coding_area_top_left_CTU_address_in_units [i]는 CA의 왼쪽 상단 경계에 있는 CTU의 어드레스이다. 어드레스는 유닛에 제공되고 CTU 어드레스를 획득하기 위해 coding_area_scaling_factor_minus1+1에 따라 크기를 스케일링되어야 한다.
coding_area_width_in_units [i] 유닛의 CA의 폭은 CTU의 CA 폭를 획득하기 위해 coding_area_scaling_factor_minus1+1에 따라 스케일링되어야 한다.
coding_area_height_in_units [i] 유닛의 CA의 높이는 CTU의 CA 폭을 획득하기 위해 coding_area_scaling_factor_minus1+1에 따라 스케일링되어야 한다.
상술한 개념의 요약:
일 실시예에서, 데이터 인코더(110)는, 예를 들어, 인디케이션 데이터가 코딩 영역 중 하나 내에서 수평 방향으로 배치되는 다수의 코딩 트리 유닛을 지정하는 코딩 트리 유닛의 코딩 영역 폭을 복수의 코딩 영역 중 하나에 대해 나타내도록 인디케이션 데이터를 생성하기 위해 구성될 수 있다. 특정 예는, 예를 들어, 상술한 coding_area_width_in_CTU일 수 있다.
일 실시예에 따르면, 데이터 인코더(110)는, 예를 들어, 인디케이션 데이터가 코딩 영역 중 하나 내에서 수직 방향으로 배치되는 다수의 코딩 트리 유닛을 지정하는 코딩 트리 유닛의 코딩 영역 높이를 복수의 코딩 영역 중 하나에 대해 나타내도록 인디케이션 데이터를 생성하기 위해 구성될 수 있다. 특정 예는, 예를 들어, 상술한 coding_area_height_in_CTU일 수 있다.
일 실시예에서, 데이터 인코더(110)는, 예를 들어, 상기 코딩 영역 내의 수평 방향의 마지막 코딩 트리 유닛이 수평 방향의 상기 코딩 트리 유닛에 선행하는 상기 코딩 영역의 다른 코딩 트리 유닛보다 더 작은 지를 인디케이션 데이터가 복수의 코딩 영역 중 하나의 코딩 영역에 대해 나타내도록 인디케이션 데이터를 생성하기 위해 구성될 수 있다.
특정 실시예에서, 상기 코딩 영역은, 예를 들어, 수평 방향의 복수의 마지막 코딩 트리 유닛을 포함할 수 있으며, 수평 방향의 상기 마지막 코딩 트리 유닛은 수평 방향의 상기 복수의 마지막 코딩 트리 유닛 중 하나이다. 상기 코딩 영역 내의 수평 방향의 상기 마지막 코딩 트리 유닛이 수평 방향의 상기 마지막 코딩 트리 유닛에 선행하는 상기 코딩 영역의 상기 다른 코딩 트리 유닛보다 작다면, 수평 방향의 복수의 마지막 코딩 트리 유닛의 각각은 예를 들어 동일한 폭을 가질 수 있다.
일 실시예에 따르면, 데이터 인코더(110)는, 예를 들어, 상기 코딩 영역 내의 수직 방향의 마지막 코딩 트리 유닛이 수직 방향의 상기 코딩 트리 유닛에 선행하는 상기 코딩 영역의 다른 코딩 트리 유닛보다 더 작은 지를 인디케이션 데이터가 복수의 코딩 영역 중 하나의 코딩 영역에 대해 나타내도록 인디케이션 데이터를 생성하기 위해 구성될 수 있다.
특정 실시예에서, 상기 코딩 영역은, 예를 들어, 수직 방향의 복수의 마지막 코딩 트리 유닛을 포함할 수 있으며, 수직 방향의 상기 마지막 코딩 트리 유닛은 수직 방향의 상기 복수의 마지막 코딩 트리 유닛 중 하나이다. 상기 코딩 영역 내의 수직 방향의 상기 마지막 코딩 트리 유닛이 수직 방향의 상기 마지막 코딩 트리 유닛에 선행하는 상기 코딩 영역의 상기 다른 코딩 트리 유닛보다 작다면, 수직 방향의 복수의 마지막 코딩 트리 유닛의 각각은 예를 들어 동일한 높이를 가질 수 있다.
마찬가지로, 일 실시예에서, 데이터 디코더(170)는, 예를 들어, 코딩 영역 중 하나 내에서 수평 방향으로 배치되는 다수의 코딩 트리 유닛을 지정하는 코딩 트리 유닛의 코딩 영역 폭을 복수의 코딩 영역 중 하나에 대해 나타내는 정보를 사용하여 인코딩된 화상 데이터를 디코딩하도록 구성될 수 있으며, 여기서 인디케이션 데이터는 예를 들어 상기 정보를 포함할 수 있다.
일 실시예에 따르면, 데이터 디코더(170)는, 예를 들어, 코딩 영역 중 하나 내에서 수직 방향으로 배치되는 다수의 코딩 트리 유닛을 지정하는 코딩 트리 유닛의 코딩 영역 높이를 복수의 코딩 영역 중 하나에 대해 나타내는 정보를 사용하여 인코딩된 화상 데이터를 디코딩하도록 구성될 수 있으며, 여기서 인디케이션 데이터는 예를 들어 상기 정보를 포함할 수 있다.
일 실시예에서, 데이터 디코더(170)는, 예를 들어, 상기 코딩 영역 내의 수평 방향의 마지막 코딩 트리 유닛이 수평 방향의 상기 코딩 트리 유닛에 선행하는 상기 코딩 영역의 다른 코딩 트리 유닛보다 더 작은 지를 복수의 코딩 영역 중 하나의 코딩 영역에 대해 나타내는 정보를 사용하여 인코딩된 화상 데이터를 디코딩하도록 구성될 수 있으며, 여기서 인디케이션 데이터는 예를 들어 상기 정보를 포함할 수 있다.
특정 실시예에서, 상기 코딩 영역은, 예를 들어, 수평 방향의 복수의 마지막 코딩 트리 유닛을 포함할 수 있으며, 수평 방향의 상기 마지막 코딩 트리 유닛은 수평 방향의 상기 복수의 마지막 코딩 트리 유닛 중 하나이다. 상기 코딩 영역 내의 수평 방향의 상기 마지막 코딩 트리 유닛이 수평 방향의 상기 마지막 코딩 트리 유닛에 선행하는 상기 코딩 영역의 상기 다른 코딩 트리 유닛보다 작다면, 수평 방향의 복수의 마지막 코딩 트리 유닛의 각각은 예를 들어 동일한 폭을 가질 수 있다.
일 실시예에 따르면, 데이터 디코더(170)는, 예를 들어, 상기 코딩 영역 내의 수직 방향의 마지막 코딩 트리 유닛이 수직 방향의 상기 코딩 트리 유닛에 선행하는 상기 코딩 영역의 다른 코딩 트리 유닛보다 더 작은 지를 복수의 코딩 영역 중 하나의 코딩 영역에 대해 나타내는 정보를 사용하여 인코딩된 화상 데이터를 디코딩하도록 구성될 수 있으며, 여기서 인디케이션 데이터는 예를 들어 상기 정보를 포함할 수 있다.
특정 실시예에서, 상기 코딩 영역은, 예를 들어, 수직 방향의 복수의 마지막 코딩 트리 유닛을 포함할 수 있으며, 수직 방향의 상기 마지막 코딩 트리 유닛은 수직 방향의 상기 복수의 마지막 코딩 트리 유닛 중 하나이다. 상기 코딩 영역 내의 수직 방향의 상기 마지막 코딩 트리 유닛이 수직 방향의 상기 마지막 코딩 트리 유닛에 선행하는 상기 코딩 영역의 상기 다른 코딩 트리 유닛보다 작다면, 수직 방향의 복수의 마지막 코딩 트리 유닛의 각각은 예를 들어 동일한 높이를 가질 수 있다.
다음의 하위 섹션 "실시예 B"에서, 스플릿(splitting)을 통한 계층적 세분화가 설명된다.
특히, 계층적 CA 분할을 위한 두 가지 변형이 제공된다.
제 1 방법은 스케일링된 CTU 유닛의 코딩 영역 스플릿 위치 값(coding area split position value)을 계층적으로 송신하는 것이다. 여기서 분할의 입도(granularity)는 CTU 크기에 따라 다르다.
[표 2-6]
[표 2-7]
계층적 CA 분할의 제 2 변형은 코딩 영역 스플릿 위치 값을 일반적인 균일한 유닛으로 송신하는 것이다. 유닛 차원(unit dimension)은 이미 파싱(parsing)된 원본 화상 크기를 특정 계수(factor)로 스케일링하여 도출될 수 있으며, 이는 또한 파라미터 세트에서 시그널링된다. 여기서, 분할의 입도는 다양하며, 인코더 측에서 선택한 유닛 크기에 따라 다르다.
[표 2-8]
[표 2-9]
최종 CA 위치 및 크기는 다음과 같이 도출된다:
UnitWidth = pic_width_in_luma_samples/PicWidthInUnits;
UnitHeight = pic_height_in_luma_samples/PicHeightInUnits;
CodingAreaWidth [AreaIdx] = CodingAreaWidthInUnits [AreaIdx]* UnitWidth
CodingAreaHeight [AreaIdx] = CodingAreaHeightInUnits [AreaIdx]* UnitHeight
CodingAreaPosX [AreaIdx] = CodingAreaPosUnitX [AreaIdx]* UnitWidth
CodingAreaPosY [AreaIdx] = CodingAreaPosUnitY [AreaIdx]* UnitHeight
coding_area_start_address [AreaIdx] = CodingAreaPosY [AreaIdx]* PicWidthInCtbsY+CodingAreaPosX [AreaIdx]
계층적 CA 분할의 장점은 일부 분할 시나리오의 경우 이러한 방법이 시그널링에 더 적은 비트를 필요로 할 수 있다는 것이다. 또한, 일부 경계가 공유되는 CA 또는 CA 그룹 간에 일종의 정렬을 적용하며, 이는 일부 구현에 유용할 수 있다.
시그널링은 RAP에 대해서만 가능하고, 후속 화상의 경우 거기에서 이어받도록 제약이 될 수 있다.
레이아웃(layout)을 나타내는 비트스트림의 부가적인 플래그가 재송신된다. 그렇지 않으면, 이전의 CA 레이아웃이 사용되며, 이는 비트스트림의 송신된 인덱스에 의해 이전에 송신된 CA 레이아웃 세트에서 추가로 선택될 수 있다.
상술한 내용을 요약하면:
일 실시예에 따르면, 데이터 인코더(110)는, 예를 들어, 복수의 코딩 영역에 대한 정보가 화상을 한번 이상 스플릿함으로써 복수의 코딩 영역을 획득하기 위해 화상을 한번 이상 스플릿하는 방법에 대한 정보를 포함하도록 인디케이션 데이터를 생성하기 위해 구성될 수 있다.
일 실시예에서, 데이터 인코더(110)는, 예를 들어, 인디케이션 데이터가 복수의 코딩 영역 스플릿 위치를 나타내도록 인디케이션 데이터를 생성하기 위해 구성될 수 있다.
일 실시예에 따르면, 데이터 인코더(110)는, 예를 들어, 인디케이션 데이터가 복수의 코딩 영역 스플릿 위치를 순서화된 시퀀스로서 나타내도록 인디케이션 데이터를 생성하기 위해 구성될 수 있다.
일 실시예에서, 데이터 인코더(110)는, 예를 들어, 인디케이션 데이터가 복수의 코딩 영역 스플릿 위치를 복수의 코딩 영역 스플릿 위치 값으로서 나타내도록 인디케이션 데이터를 생성하기 위해 구성될 수 있으며, 여기서 복수의 코딩 영역 스플릿 위치 값의 각각은 화상의 폭에 따라 다르거나 화상의 높이에 따라 다르다.
일 실시예에 따르면, 데이터 인코더(110)는, 예를 들어, 복수의 코딩 영역에 대한 정보가 화상을 한번 이상 계층적으로 스플릿함으로써 복수의 코딩 영역을 획득하기 위해 화상을 한번 이상 계층적으로 스플릿하는 방법에 대한 정보를 포함하도록 인디케이션 데이터를 생성하기 위해 구성될 수 있다.
마찬가지로, 일 실시예에 따르면, 데이터 디코더(170)는, 예를 들어, 화상을 한번 이상 스플릿함으로써 복수의 코딩 영역을 획득하기 위해 화상을 한번 이상 스플릿하는 방법에 대한 정보를 사용하여 인코딩된 화상 데이터를 디코딩하도록 구성될 수 있으며, 여기서 인디케이션 데이터는 예를 들어 상기 정보를 포함할 수 있다.
일 실시예에서, 데이터 디코더(170)는, 예를 들어, 복수의 코딩 영역 스플릿 위치를 나타내는 정보를 사용하여 인코딩된 화상 데이터를 디코딩하도록 구성될 수 있으며, 여기서 인디케이션 데이터는 예를 들어 상기 정보를 포함할 수 있다.
일 실시예에 따르면, 데이터 디코더(170)는, 예를 들어, 복수의 코딩 영역 스플릿 위치를 순서화된 시퀀스로서 나타내는 정보를 사용하여 인코딩된 화상 데이터를 디코딩하도록 구성될 수 있으며, 여기서 인디케이션 데이터는 예를 들어 상기 정보를 포함할 수 있다.
일 실시예에서, 데이터 디코더(170)는, 예를 들어, 복수의 코딩 영역 스플릿 위치를 복수의 코딩 영역 스플릿 위치 값으로서 나타내는 정보를 사용하여 인코딩된 화상 데이터를 디코딩하도록 구성될 수 있으며, 여기서 복수의 코딩 영역 스플릿 위치 값의 각각은 화상의 폭에 의존하거나 화상의 높이에 의존하며, 여기서 인디케이션 데이터는 예를 들어 상기 정보를 포함할 수 있다.
일 실시예에 따르면, 데이터 디코더(170)는, 예를 들어, 화상을 한번 이상 계층적으로 스플릿함으로써 복수의 코딩 영역을 획득하기 위해 화상을 한번 이상 계층적으로 스플릿하는 방법에 대한 정보를 포함하는 복수의 코딩 영역에 대한 정보를 사용하여 인코딩된 화상 데이터를 디코딩하도록 구성될 수 있으며, 여기서 인디케이션 데이터는 예를 들어 상기 정보를 포함할 수 있다.
이제, 데이터 인코더(110)가, 예를 들어, 복수의 코딩 영역에 대한 정보가 화상을 한번 이상 스플릿함으로써 복수의 코딩 영역을 획득하기 위해 화상을 한번 이상 스플릿하는 방법에 대한 정보를 포함하도록 인디케이션 데이터를 생성하기 위해 구성될 수 있는 방법에 대한 추가의 예가 제공된다.
특히, 데이터 인코더(110)가, 예를 들어, 복수의 코딩 영역에 대한 정보가 화상을 한번 이상 계층적으로 스플릿함으로써 복수의 코딩 영역을 획득하기 위해 화상을 한번 이상 계층적으로 스플릿하는 방법에 대한 정보를 포함하도록 인디케이션 데이터를 생성하기 위해 구성될 수 있는 방법에 대한 추가의 예가 제공된다.
더욱이, 데이터 디코더(170)가, 예를 들어, 화상을 한번 이상 스플릿함으로써 복수의 코딩 영역을 획득하기 위해 화상을 한번 이상 스플릿하는 방법에 대한 정보를 사용하여 인코딩된 화상 데이터를 디코딩하도록 구성될 수 있는 방법에 대한 추가의 예가 제공되며, 여기서 인디케이션 데이터는 상기 정보를 포함한다.
특히, 데이터 디코더(170)가, 예를 들어, 화상을 한번 이상 계층적으로 스플릿함으로써 복수의 코딩 영역을 획득하기 위해 화상을 한번 이상 계층적으로 스플릿하는 방법에 대한 정보를 포함하는 복수의 코딩 영역에 대한 정보를 사용하여 인코딩된 화상 데이터를 디코딩하도록 구성될 수 있으며, 여기서 인디케이션 데이터는 예를 들어 상기 정보를 포함할 수 있다.
또한, 인코딩된 비디오 신호의 인디케이션 데이터가, 예를 들어, 화상을 한번 이상 스플릿함으로써 복수의 코딩 영역을 획득하기 위해 화상을 한번 이상 스플릿하는 방법을 나타낼 수 있는 방법에 대한 추가의 예가 제공된다.
더욱이, 특히, 화상을 한번 이상 계층적으로 스플릿함으로써 복수의 코딩 영역을 획득하기 위해 화상을 한번 이상 계층적으로 스플릿하는 방법에 대한 추가의 예가 제공된다.
일부 실시예에서, 데이터 인코더(110) 및/또는 데이터 디코더(170)는 예를 들어,
- 제 1 단계에서, 화상의 제 1 분할을 획득하기 위해 화상을 수평 및 수직 방향으로 스플릿하고,
- 제 2 단계에서, 화상의 제 2 분할을 획득하기 위해 화상의 제 1 분할을 수평 방향으로(만) 스플릿하도록 구성될 수 있다.
도 27에서, 화상은, 제 1 단계에서, 화상의 제 1 분할(예를 들어, 타일 스플릿)을 획득하기 위해 수평 및 수직 방향으로 계층적으로 스플릿되고(도 27, 단계 1), 제 2 단계에서, 화상의 제 2 분할(예를 들어, 브릭 스플릿)을 획득하기 위해 수평 방향으로만 계층적으로 스플릿된다(도 27, 단계 2).
일부 다른 실시예에서, 데이터 인코더(110) 및/또는 데이터 디코더(170)는 예를 들어,
- 제 1 단계에서, 화상의 제 1 분할을 획득하기 위해 화상을 수평 및 수직 방향으로 스플릿하고,
- 제 2 단계에서, 화상의 제 2 분할을 획득하기 위해 화상의 제 1 분할을 수직 방향으로(만) 스플릿하도록 구성될 수 있다.
도 28에서, 화상은, 제 1 단계에서, 화상의 제 1 분할(예를 들어, 타일 스플릿)을 획득하기 위해 수평 및 수직 방향으로 계층적으로 스플릿되고(도 28, 단계 1), 제 2 단계에서, 화상의 제 2 분할(예를 들어, 브릭 스플릿)을 획득하기 위해 수직 방향으로만 계층적으로 스플릿된다(도 28, 단계 2).
일부 추가의 실시예에서, 데이터 인코더(110) 및/또는 데이터 디코더(170)는 예를 들어,
- 제 1 단계에서, 화상의 제 1 분할을 획득하기 위해 화상을 수평 방향으로(만) 스플릿하고,
- 제 2 단계에서, 화상의 제 2 분할을 획득하기 위해 화상의 제 1 분할을 수직 방향으로(만) 스플릿하도록 구성될 수 있다.
도 29에서, 화상은, 제 1 단계에서, 화상의 제 1 분할(예를 들어, 타일 스플릿)을 획득하기 위해 수평 방향으로만 계층적으로 스플릿되고(도 29, 단계 1), 제 2 단계에서, 화상의 제 2 분할(예를 들어, 브릭 스플릿)을 획득하기 위해 수직 방향으로만 계층적으로 스플릿된다(도 29, 단계 2).
일부 또 다른 실시예에서, 데이터 인코더(110) 및/또는 데이터 디코더(170)는 예를 들어,
- 제 1 단계에서, 화상의 제 1 분할을 획득하기 위해 화상을 수직 방향으로(만) 스플릿하고,
- 제 2 단계에서, 화상의 제 2 분할을 획득하기 위해 화상의 제 1 분할을 수평 방향으로(만) 스플릿하도록 구성될 수 있다.
도 30에서, 화상은, 제 1 단계에서, 화상의 제 1 분할(예를 들어, 타일 스플릿)을 획득하기 위해 수직 방향으로만 계층적으로 스플릿되고(도 30, 단계 1), 제 2 단계에서, 화상의 제 2 분할(예를 들어, 브릭 스플릿)을 획득하기 위해 수평 방향으로만 계층적으로 스플릿된다(도 30, 단계 2).
실시예에서, 화상 파라미터 세트 RBSP 구문에 대한 아래의 코드에서, brick_split_flag [i] 및 num_brick_rows_minus1 [i] 파라미터는 복수의 코딩 영역을 획득하기 위해 화상을 한번 이상 계층적으로 스플릿하는 방법에 대한 예시적인 방식을 구현한다.
화상은 예를 들어 화상, 슬라이스, 타일, 브릭 및 CTU로 분할될 수 있다.
화상은 예를 들어 하나 이상의 타일 행과 하나 이상의 타일 열로 분할될 수 있다. 타일은 화상의 직사각형 영역을 커버하는 일련의 CTU이다.
타일은 하나 이상의 브릭으로 나뉘며, 각각의 브릭은 타일 내의 다수의 CTU 행으로 구성된다.
다수의 브릭으로 분할되지 않은 타일은 또한 브릭으로서 지칭된다. 그러나, 타일의 진정한 서브세트인 브릭은 타일로서 지칭되지 않는다.
슬라이스는 화상의 다수의 타일 또는 타일의 다수의 브릭을 포함한다.
2가지 슬라이스 모드, 즉 래스터 스캔 슬라이스 모드와 직사각형 슬라이스 모드가 지원된다. 래스터 스캔 슬라이스 모드에서, 슬라이스는 화상의 타일 래스터 스캔에 일련의 타일을 포함한다. 직사각형 슬라이스 모드에서, 슬라이스는 화상의 직사각형 영역을 세트적으로 형성하는 화상의 다수의 브릭을 포함한다. 직사각형 슬라이스 내의 브릭은 슬라이스의 브릭 래스터 스캔의 순서이다.
도 26은 타일, 브릭 및 직사각형 슬라이스로 분할된 화상의 예를 도시하며, 여기서 화상은 4개의 타일(2개의 타일 열과 2개의 타일 행), 11개의 브릭(왼쪽 상단 타일은 1개의 브릭을 포함하고, 오른쪽 상단 타일은 5개의 브릭을 포함하고, 왼쪽 하단 타일은 2개의 브릭을 포함하며, 오른쪽 하단 타일은 3개의 브릭을 포함함), 및 4개의 직사각형 슬라이스로 나뉘어진다.
다음에서, 1과 같은 brick_split_flag [i]는 제 i 타일이 2개 이상의 브릭으로 나뉘어지도록 지정한다. 0과 같은 brick_split_flag [i]는 제 i 타일이 2개 이상의 브릭으로 나뉘어지지 않도록 지정한다. 존재하지 않을 때, brick_split_flag [i]의 값은 0과 같은 것으로 추론된다.
또한, 다음에서, num_brick_rows_minus1 [i]+1은 uniform_brick_spacing_flag [i]가 0과 같을 때 제 i 타일을 분할하는 브릭의 수를 지정한다. 존재할 때, num_brick_rows_minus1 [i]의 값은 1에서 RowHeight[i]-1까지의 범위에 있어야 한다. brick_split_flag [i]가 0과 같으면, num_brick_rows_minus1 [i]의 값은 0과 같은 것으로 추론된다. 그렇지 않으면, uniform_brick_spacing_flag [i]가 1과 같으면, num_brick_rows_minus1 [i]의 값은 (예를 들어, CTB 래스터 스캐닝, 타일 스캐닝 및 브릭 스캐닝 프로세스와 관련하여 아래에 지정되는 바와 같이) 추론된다.
따라서, brick_split_flag [i] 및 num_brick_rows_minus1 [i]를 사용하여 복수의 코딩 영역을 획득하기 위해 화상을 한번 이상 계층적으로 스플릿하는 방법에 대한 예시적인 방식을 구현한다. 타일은 예를 들어 다수의 CTU 행으로 구성될 수 있는 2개 이상의 브릭으로 나눌 수 있다.
더욱 상세하게는, CTB 래스터 스캐닝, 타일 스캐닝 및 브릭 스캐닝 프로세스가 예를 들어 다음과 같이 수행될 수 있다.
CTB 유닛의 제 i 타일 열의 폭를 지정하는 0에서 num_tile_columns_minus1까지의 범위의 i에 대한 리스트 colWidth [i]이 도출되고, uniform_tile_spacing_flag가 1과 같을 때, num_tile_columns_minus1의 값은 다음과 같이 추론된다:
if( uniform_tile_spacing_flag ) {
remainingWidthInCtbsY = PicWidthInCtbsY
i = 0
while( remainingWidthInCtbsY > ( tile_cols_width_minus1 + 1 ) ) {
colWidth[ i++ ] = tile_cols_width_minus1 + 1
remainingWidthInCtbsY -= ( tile_cols_width_minus1 + 1 )
}
colWidth[ i ] = remainingWidthInCtbsY
num_tile_columns_minus1 = i
} else {
colWidth[ num_tile_columns_minus1 ] = PicWidthInCtbsY (6-1)
for( i = 0; i < num_tile_columns_minus1; i++ ) {
colWidth[ i ] = tile_column_width_minus1[ i ] + 1
colWidth[ num_tile_columns_minus1 ] -= colWidth[ i ]
}
}
CTB 유닛의 제 j 타일 행의 높이를 지정하는 0에서 num_tile_rows_minus1까지의 범위의 j에 대한 리스트 RowHeight[j]가 도출되고, uniform_tile_spacing_flag가 1과 같을 때, num_tile_rows_minus1의 값은 다음과 같이 추론된다:
if( uniform_tile_spacing_flag ) {
remainingHeightInCtbsY = PicHeightInCtbsY
i = 0
while( remainingHeightInCtbsY > ( tile_rows_height_minus1 + 1 ) ) {
RowHeight[ i++ ] = tile_rows_height_minus1 + 1
remainingHeightInCtbsY -= ( tile_rows_height_minus1 + 1 )
}
RowHeight[ i ] = remainingHeightInCtbsY
num_tile_rows_minus1 = i
} else {
RowHeight[ num_tile_rows_minus1 ] = PicHeightInCtbsY (6-2)
for( j = 0; j < num_tile_rows_minus1; j++ ) {
RowHeight[ j ] = tile_row_height_minus1[ j ] + 1
RowHeight[ num_tile_rows_minus1 ] -= RowHeight[ j ]
}
}
CTB 유닛의 제 i 타일 열 경계의 위치를 지정하는 0에서 num_tile_columns_minus1+1까지의 범위의 i에 대한 리스트 tileColBd[i]는 다음과 같이 도출된다:
for( tileColBd[ 0 ] = 0, i = 0; i <= num_tile_columns_minus1; i++ )
tileColBd[ i + 1 ] = tileColBd[ i ] + colWidth[ i ] (6-3)
CTB 유닛의 제 j 타일 행 경계의 위치를 지정하는 0에서 num_tile_rows_minus1+1까지의 범위의 j에 대한 리스트 tileRowBd[i]는 다음과 같이 도출된다:
for( tileRowBd[ 0 ] = 0, j = 0; j <= num_tile_rows_minus1; j++ )
tileRowBd[ j + 1 ] = tileRowBd[ j ] + RowHeight[ j ] (6-4)
PPS를 참조하는 화상의 브릭의 수를 지정하는 변수 NumBricksInPic과, CTB 유닛의 수직 브릭 경계의 위치, CTB 유닛의 수평 브릭 경계의 위치, CTB 유닛의 브릭의 폭 및 CTB 유닛의 브릭의 높이를 지정하는 0에서 NumBricksInPic-1까지의 범위의 brickIdx에 대한 리스트 BrickColBd[brickIdx], BrickRowBd[brickIdx], BrickWidth[brickIdx] 및 BrickHeight[brickIdx]이 도출되고, 0에서 NumTilesInPic-1까지의 범위의 각각의 i에 대해, uniform_brick_spacing_flag[i]가 1과 같을 때, num_brick_rows_minus1[i]의 값은 다음과 같이 추론된다:
for ( brickIdx = 0, i = 0; i < NumTilesInPic; i++ ) {
tileX = i % ( num_tile_columns_minus1 + 1 )
tileY = i / ( num_tile_columns_minus1 + 1 )
if( !brick_split_flag[ i ] ) {
BrickColBd[ brickIdx ] = tileColBd[ tileX ]
BrickRowBd[ brickIdx ] = tileRowBd[ tileY ]
BrickWidth[ brickIdx ] = colWidth[ tileX ]
BrickHeight[ brickIdx ] = RowHeight[ tileY ] (6-5)
brickIdx++
} else {
if( uniform_brick_spacing_flag[ i ] ) {
remainingHeightInCtbsY = RowHeight[ tileY ]
j = 0
while( remainingHeightInCtbsY > ( brick_height_minus1[ i ] + 1 ) ) {
rowHeight2[ j++ ] = brick_height_minus1[ i ]+1
remainingHeightInCtbsY -= ( brick_height_minus1[ i ] + 1 )
}
rowHeight2[ j ] = remainingHeightInCtbsY
num_brick_rows_minus1[ i ] = j
} else {
rowHeight2[ num_brick_rows_minus1[ i ] ] = RowHeight[ tileY ]
for( j = 0; j < num_brick_rows_minus1[ i ]; j++ ) {
rowHeight2[ j ] = brick_row_height_minus1[ i ][ j ]+ 1
rowHeight2[ num_brick_rows_minus1[ i ] ] -= rowHeight2[ j ]
}
}
for( rowBd2[ 0 ] = 0, j = 0; j <= num_brick_rows_minus1[ i ]; j++ )
rowBd2[ j + 1 ] = rowBd2[ j ] + rowHeight2[ j ]
for( j = 0; j < num_brick_rows_minus1[ i ] + 1; j++ ) {
BrickColBd[ brickIdx ] = tileColBd[ tileX ]
BrickRowBd[ brickIdx ] = tileRowBd[ tileY ]+rowBd2[j]
BrickWidth[ brickIdx ] = colWidth[ tileX ]
BrickHeight[ brickIdx ] = rowHeight2[ j ]
brickIdx++
}
}
}
NumBricksInPic = brickIdx
화상의 CTB 래스터 스캔의 CTB 어드레스로부터 브릭 스캔의 CTB 어드레스로의 변환을 지정하는 0에서 PicSizeInCtbsY-1까지의 범위의 ctbAddrRs에 대한 리스트 CtbAddrRsToBs[ctbAddrRs]는 다음과 같이 도출된다:
for( ctbAddrRs = 0; ctbAddrRs < PicSizeInCtbsY; ctbAddrRs++ ) {
tbX = ctbAddrRs % PicWidthInCtbsY
tbY = ctbAddrRs / PicWidthInCtbsY
brickFound = FALSE
for( bkIdx = NumBricksInPic ? 1, i = 0; i < NumBricksInPic - 1 && !brickFound; i++ ) {
brickFound = tbX < ( BrickColBd[ i ] + BrickWidth[ i ] ) &&
tbY < ( BrickRowBd[ i ] + BrickHeight[i] )
if( brickFound ) (6-6)
bkIdx = i
}
CtbAddrRsToBs[ ctbAddrRs ] = 0
for( i = 0; i < bkIdx; i++ )
CtbAddrRsToBs[ ctbAddrRs ] += BrickHeight[ i ] * BrickWidth[ i ]
CtbAddrRsToBs[ ctbAddrRs ] +=
( tbY - BrickRowBd[ bkIdx ] ) * BrickWidth[ bkIdx ] + tbX - BrickColBd[ bkIdx ]
}
브릭 스캔의 CTB 어드레스로부터 화상의 CTB 래스터 스캔의 CTB 어드레스로의 변환을 지정하는 0에서 PicSizeInCtbsY-1까지의 범위의 ctbAddrBs에 대한 리스트 CtbAddrBsToRs[ctbAddrBs]는 다음과 같이 도출된다:
for( ctbAddrRs = 0; ctbAddrRs < PicSizeInCtbsY; ctbAddrRs++ ) (6-7)
CtbAddrBsToRs[ CtbAddrRsToBs[ ctbAddrRs ] ] = ctbAddrRs
브릭 스캔의 CTB 어드레스로부터 브릭 ID로의 변환을 지정하는 0에서 PicSizeInCtbsY - 1까지의 범위의 ctbAddrBs에 대한 리스트 BrickId [ctbAddrBs]는 다음과 같이 도출된다:
for( i = 0, i < NumBricksInPic; i++ )
for( y = BrickRowBd[ i ]; y < BrickRowBd[ i ] + BrickHeight[ i ]; y++ ) (6-8)
for( x = BrickColBd[ i ]; x < BrickColBd[ i ] + BrickWidth[ i ]; x++ )
BrickId[ CtbAddrRsToBs[ y * PicWidthInCtbsY+ x ] ]= i
브릭 인덱스로부터 브릭의 다수의 CTU로의 변환을 지정하는 0에서 NumBricksInPic - 1까지의 범위의 brickIdx에 대한 리스트 NumCtusInBrick [brickIdx]는 다음과 같이 도출된다:
for(i = 0; i <NumBricksInPic; i ++) (6-9)
NumCtusInBrick [i] = BrickWidth [i]* BrickHeight [i]
브릭의 제 1 CTB의 브릭 스캔에서 브릭 ID로부터 CTB 어드레스로의 변환을 지정하는 0에서 NumBricksInPic - 1까지의 범위의 brickIdx에 대한 리스트 FirstCtbAddrBs [brickIdx]는 다음과 같이 도출된다:
for( ctbAddrBs = 0, brickIdx = 0, brickStartFlag = 1; ctbAddrBs < PicSizeInCtbsY; ctbAddrBs++ ) {
if( brickStartFlag ) {
FirstCtbAddrBs[ brickIdx ] = ctbAddrBs (6-10)
brickStartFlag = 0
}
brickEndFlag = ( ctbAddrBs = = PicSizeInCtbsY - 1 ) | |
( BrickId[ ctbAddrBs + 1 ] != BrickId[ ctbAddrBs ] )
if( brickEndFlag ) {
brickIdx++
brickStartFlag = 1
}
}
화상 파라미터 세트 RBSP 구문
상술한 코드에서, 화상 파라미터 세트 RBSP 시맨틱스(semantics)는 예를 들어 다음과 같이 정의될 수 있다:
pps_pic_parameter_set_id는 다른 구문 요소에 의해 참조하기 위한 PPS를 식별한다. pps_pic_parameter_set_id의 값은 0에서 63까지의 범위에 있어야 한다.
pps_seq_parameter_set_id는 활성 SPS에 대한 sps_seq_parameter_set_id의 값을 지정한다. pps_seq_parameter_set_id의 값은 0에서 15까지의 범위에 있어야 한다.
1과 같은 output_flag_present_flag는 pic_output_flag 구문 요소가 PPS를 참조하는 슬라이스 헤더에 존재함을 나타낸다. 0과 같은 output_flag_present_flag는 pic_output_flag 구문 요소가 PPS를 참조하는 슬라이스 헤더에 존재하지 않음을 나타낸다.
1과 같은 single_tile_in_pic_flag는 PPS를 참조하는 각각의 화상에 하나의 타일만이 있음을 지정한다. 0과 같은 single_tile_in_pic_flag는 PPS를 참조하는 각각의 화상에 하나 이상의 타일이 있음을 지정한다.
주석 - 타일 내에서 추가의 브릭 스플릿의 부재 시에, 전체 타일은 브릭이라고 한다. 화상이 추가의 브릭 스플릿 없이 단일 타일만을 포함할 때, 이는 단일 브릭이라고 한다.
single_tile_in_pic_flag의 값은 CVS 내에서 활성화되는 모든 PPS에 대해 동일해야 한다.
1과 같은 uniform_tile_spacing_flag는 타일 열 경계와 마찬가지로 타일 행 경계가 화상에 걸쳐 균일하게 분포되고, 구문 요소 tile_cols_width_minus1 및 tile_rows_height_minus1를 사용하여 신호를 시그널링된다고 지정한다. 0과 같은 uniform_tile_spacing_flag는 타일 열 경계와 마찬가지로 타일 행 경계가 화상에 걸쳐 균일하게 분포될 수 있거나 분포되지 않을 수 있으며, 구문 요소 num_tile_columns_minus1 및 num_tile_rows_minus1 및 구문 요소 쌍의 리스트 tile_column_width_minus1 [i] 및 tile_row_height_minus1 [i]를 사용하여 시그널링될 수 있음을 지정한다.
존재하지 않을 때, uniform_tile_spacing_flag의 값은 1과 같은 것으로 추론된다.
tile_cols_width_minus1+1은 uniform_tile_spacing_flag가 1과 같을 때 CTB 유닛의 화상의 가장 오른쪽 타일 열을 제외한 타일 열의 폭를 지정한다. tile_cols_width_minus1의 값은 0에서 PicWidthInCtbsY-1까지의 범위에 있어야 한다. 존재하지 않을 때, tile_cols_width_minus1의 값은 PicWidthInCtbsY - 1과 같은 것으로 추론된다.
tile_rows_height_minus1+1은 uniform_tile_spacing_flag가 1과 같을 때 CTB 유닛의 화상의 하단 타일 행을 제외한 타일 행의 높이를 지정한다. tile_rows_height_minus1의 값은 0에서 PicHeightInCtbsY-1까지의 범위에 있어야 한다. 존재하지 않을 때, tile_rows_height_minus1의 값은 PicHeightInCtbsY - 1과 같은 것으로 추론된다.
num_tile_columns_minus1+1은 uniform_tile_spacing_flag가 0과 같을 때 화상을 분할하는 타일 열의 수를 지정한다. num_tile_columns_minus1의 값은 0에서 PicWidthInCtbsY-1까지의 범위에 있어야 한다. single_tile_in_pic_flag가 1과 같으면, num_tile_columns_minus1의 값은 0과 같은 것으로 추론된다. 그렇지 않으면, uniform_tile_spacing_flag가 1과 같을 때, num_tile_columns_minus1의 값은 (예를 들어, CTB 래스터 스캐닝, 타일 스캐닝 및 브릭 스캐닝 프로세스와 관련하여 위에서 지정된 바와 같이) 추론된다.
num_tile_rows_minus1+1은 uniform_tile_spacing_flag가 0과 같을 때 화상을 분할하는 타일 행의 수를 지정한다. num_tile_rows_minus1의 값은 0에서 PicHeightInCtbsY-1까지의 범위에 있어야 한다. single_tile_in_pic_flag가 1과 같으면, num_tile_rows_minus1의 값은 0과 같은 것으로 추론된다. 그렇지 않으면, uniform_tile_spacing_flag가 1과 같을 때, num_tile_rows_minus1의 값은 (예를 들어, CTB 래스터 스캐닝, 타일 스캐닝 및 브릭 스캐닝 프로세스와 관련하여 아래에서 지정되는 바와 같이) 추론된다.
변수 NumTilesInPic는 (num_tile_columns_minus1+1)*(num_tile_rows_minus1+1)과 동일하게 설정된다.
single_tile_in_pic_flag가 0과 같을 때, NumTilesInPic은 1보다 커야 한다.
tile_column_width_minus1 [i]+1은 CTB 유닛의 제 i 타일 열의 폭를 지정한다.
tile_row_height_minus1 [i]+1은 CTB 유닛의 제 i 타일 행의 높이를 지정한다.
1과 같은 brick_splitting_present_flag는 PPS를 참조하는 하나 이상의 화상의 타일이 2개 이상의 브릭으로 나뉘어질 수 있음을 지정한다. 0과 같은 brick_splitting_present_flag는 PPS를 참조하는 화상의 타일이 2개 이상의 브릭으로 나뉘어지지 않음을 지정한다.
1과 같은 brick_split_flag [i]는 제 i 타일이 2개 이상의 브릭으로 나뉘어짐을 지정한다. 0과 같은 brick_split_flag [i]는 제 i 타일이 2개 이상의 브릭으로 나뉘어지지 않음을 지정한다. 존재하지 않을 때, brick_split_flag [i]의 값은 0과 같은 것으로 추론된다.
1과 같은 uniform_brick_spacing_flag [i]는 수평 브릭 경계가 제 i 타일에 걸쳐 균일하게 분포되고, 구문 요소 brick_height_minus1 [i]를 사용하여 시그널링됨을 지정한다. 0과 같은 uniform_brick_spacing_flag [i]는 수평 브릭 경계가 제 i 타일에 걸쳐 균일하게 분포될 수 있거나 분포되지 않을 수 있고, 구문 요소 num_brick_rows_minus1 [i] 및 구문 요소의 리스트 brick_row_height_minus1 [i][j]를 사용하여 시그널링될 수 있음을 지정한다. 존재하지 않을 때, uniform_brick_spacing_flag [i]의 값은 1과 같은 것으로 추론된다.
brick_height_minus1 [i]+1은 uniform_brick_spacing_flag [i]가 1과 같을 때 CTB 유닛의 제 i 타일의 하단 브릭을 제외한 브릭 행의 높이를 지정한다. 존재할 때, brick_height_minus1의 값은 0에서 RowHeight [i] - 2까지의 범위에 있어야 한다. 존재하지 않을 때, brick_height_minus1 [i]의 값은 RowHeight[i] - 1과 같은 것으로 추론된다.
num_brick_rows_minus1 [i]+1은 uniform_brick_spacing_flag [i]가 0과 같을 때 제 i 타일을 분할하는 브릭의 수를 지정한다. 존재할 때, num_brick_rows_minus1 [i]의 값은 1에서 RowHeight [i] - 1까지의 범위에 있어야 한다. brick_split_flag [i]가 0과 같으면, num_brick_rows_minus1 [i]의 값은 0과 같은 것으로 추론된다. 그렇지 않으면, uniform_brick_spacing_flag [i]가 1과 같을 때, num_brick_rows_minus1 [i]의 값은 (예를 들어, CTB 래스터 스캐닝, 타일 스캐닝 및 브릭 스캐닝 프로세스와 관련하여 위에서 지정되는 바와 같이) 추론된다.
brick_row_height_minus1 [i][j]+1은 uniform_tile_spacing_flag가 0과 같을 때 CTB 유닛의 제 i 타일의 제 j 브릭의 높이를 지정한다.
다음의 변수가 도출되며, uniform_tile_spacing_flag가 1과 같을 때, num_tile_columns_minus1 및 num_tile_rows_minus1의 값이 추론되며, 0에서 NumTilesInPic-1까지의 범위의 각각의 i에 대해, uniform_brick_spacing_flag[i]가 1과 같을 때, num_brick_rows_minus1[i]의 값은 (예를 들어, CTB 래스터 스캐닝, 타일 스캐닝 및 브릭 스캐닝 프로세스와 관련하여 위에서 지정되는 바와 같이) CTB 래스터 및 브릭 스캐닝 변환 프로세스를 호출하여 추론된다.
- 0에서 num_tile_rows_minus1까지의 범위의 j에 대한 리스트 RowHeight [j]은 CTB 유닛의 제 j 타일 행의 높이를 지정하고,
- 0에서 PicSizeInCtbsY-1까지의 범위의 ctbAddrRs에 대한 리스트 CtbAddrRsToBs [ctbAddrRs]는 화상의 CTB 래스터 스캔의 CTB 어드레스로부터 브릭 스캔의 CTB 어드레스로의 변환을 지정하고,
- 0에서 PicSizeInCtbsY-1까지의 범위의 ctbAddrRs에 대한 리스트 CtbAddrBsToRs[ctbAddrBs]는 브릭 스캔의 CTB 어드레스로부터 화상의 CTB 래스터 스캔의 CTB 어드레스로의 변환을 지정하고,
- 0에서 PicSizeInCtbsY-1까지의 범위의 ctbAddrB에 대한 리스트 BrickId [ctbAddrBs]는 브릭 스캔의 CTB 어드레스로부터 브릭 ID로의 변환을 지정하고,
- 0에서 NumBricksInPic-1까지의 범위의 brickIdx에 대한 리스트 NumCtusInBrick [brickIdx]는 브릭 인덱스로부터 브릭의 CTU의 수로의 변환을 지정하며,
- 0에서 NumBricksInPic-1까지의 범위의 brickIdx에 대한 리스트 FirstCtbAddrBs [brickIdx]는 브릭의 제 1 CTB의 브릭 스캔에서 브릭 ID로부터 CTB 어드레스로의 변환을 지정한다.
1과 같은 single_brick_per_slice_flag는 이러한 PPS를 참조하는 각각의 슬라이스가 하나의 브릭을 포함함을 지정한다. 0과 같은 single_brick_per_slice_flag는 이러한 PPS를 참조하는 슬라이스가 하나 이상의 브릭을 포함할 수 있음을 지정한다. 존재하지 않을 때, single_brick_per_slice_flag의 값은 1과 같은 것으로 추론된다.
0과 같은 rect_slice_flag는 각각의 슬라이스 내의 브릭이 래스터 스캔 순서에 있고, 슬라이스 정보가 PPS에서 시그널링되지 않음을 지정한다. 1과 같은 rect_slice_flag는 각각의 슬라이스 내의 브릭이 화상의 직사각형 영역을 커버하고, 슬라이스 정보가 PPS에서 시그널링됨을 지정한다. 존재하지 않을 때, rect_slice_flag는 1과 같은 것으로 추론된다.
num_slices_in_pic_minus1+1은 PPS를 참조하는 각각의 화상의 슬라이스의 수를 지정한다. num_slices_in_pic_minus1의 값은 0에서 NumBricksInPic-1까지의 범위에 있어야 한다. 존재하지 않고, single_brick_per_slice_flag가 1과 같을 때, num_slices_in_pic_minus1의 값은 NumBricksInPic-1과 같은 것으로 추론된다.
top_left_brick_idx [i]는 제 i 슬라이스의 왼쪽 상단 모서리에 위치된 브릭의 브릭 인덱스를 지정한다. top_left_brick_idx [i]의 값은 j와 같지 않은 임의의 i에 대한 top_left_brick_idx [j]의 값과 같지 않아야 한다. 존재하지 않을 때, top_left_brick_idx [i]의 값은 i와 같은 것으로 추론된다. top_left_brick_idx [i] 구문 요소의 길이는 Ceil(Log2(NumBricksInPic) 비트이다.
bottom_right_brick_idx_delta [i]는 제 i 슬라이스의 오른쪽 하단 모서리에 위치된 브릭의 브릭 인덱스와 top_left_brick_idx[i] 간의 차이를 지정한다. single_brick_per_slice_flag가 1과 같을 때, bottom_right_brick_idx_delta[i]의 값은 0과 같은 것으로 추론된다. bottom_right_brick_idx_delta[i] 구문 요소의 길이는 Ceil(Log2(NumBricksInPic - top_left_brick_idx [i])) 비트이다.
슬라이스는 다수의 완전한 타일 또는 하나의 타일의 완전한 브릭의 연속적인 시퀀스만을 포함해야 한다.
제 i 슬라이스의 브릭의 수와 슬라이스에 대한 브릭의 매핑을 지정하는 변수 NumBricksInSlice[i] 및 BricksToSliceMap[j]은 다음과 같이 도출된다:
NumBricksInSlice[ i ] = 0
botRightBkIdx = top_left_brick_idx[i] + bottom_right_brick_idx_delta[i]
for( j = 0; j < NumBricksInPic; j++) {
if( BrickColBd[ j ] >= BrickColBd[ top_left_brick_idx[i]] &&
BrickColBd[ j ] <= BrickColBd[ botRightBkIdx ] &&
BrickRowBd[ j ] >= BrickRowBd[ top_left_brick_idx[i]] && (7-35)
BrickRowBd[ j ] <= BrickRowBd [ botRightBkIdx ] ) {
NumBricksInSlice[ i ]++
BricksToSliceMap[ j ] = i
}
}
1과 같은 loop_filter_across_bricks_enabled_flag는 루프 내 필터링 동작(in-loop filtering operations)이 PPS를 참조하는 화상의 브릭 경계에 걸쳐 수행될 수 있음을 지정한다. 0과 같은 loop_filter_across_bricks_enabled_flag는 루프 내 필터링 동작이 PPS를 참조하는 화상의 브릭 경계에 걸쳐 수행되지 않음을 지정한다. 루프 내 필터링 동작은 디블로킹 필터(deblocking filter), 샘플 적응 오프셋 필터(sample adaptive offset filter) 및 적응 루프 필터 동작을 포함한다. 존재하지 않을 때, loop_filter_across_bricks_enabled_flag의 값은 1과 같은 것으로 추론된다.
1과 같은 loop_filter_across_slices_enabled_flag는 루프 내 필터링 동작이 PPS를 참조하는 화상의 슬라이스 경계에 걸쳐 수행될 수 있음을 지정한다. 0과 같은 loop_filter_across_slice_enabled_flag는 루프 내 필터링 동작이 PPS를 참조하는 화상의 슬라이스 경계에 걸쳐 수행되지 않음을 지정한다. 루프 내 필터링 동작은 디블로킹 필터, 샘플 적응 오프셋 필터 및 적응 루프 필터 동작을 포함한다. 존재하지 않을 때, loop_filter_across_slices_enabled_flag의 값은 0과 같은 것으로 추론된다.
1과 같은 signalled_slice_id_flag는 각각의 슬라이스에 대한 슬라이스 ID가 시그널링됨을 지정한다. 0과 같은 signalled_slice_id_flag는 슬라이스 ID가 시그널링되지 않음을 지정한다. rect_slice_flag가 0과 같을 때, signalled_slice_id_flag의 값은 0과 같은 것으로 추론된다.
signalled_slice_id_length_minus1+1은 존재할 때 구문 요소 slice_id [i] 및 구문 요소 slice_address를 슬라이스 헤더에 나타내는 데 사용되는 비트의 수를 지정한다. signalled_slice_id_length_minus1의 값은 0에서 15까지의 범위에 있어야 한다. 존재하지 않을 때, signalled_slice_id_length_minus1의 값은 Ceil(Log2(num_slices_in_pic_minus1+1))-1과 같은 것으로 추론된다.
slice_id [i]는 제 i 슬라이스의 슬라이스 ID를 지정한다. slice_id [i] 구문 요소의 길이는 signalled_slice_id_length_minus1+1 비트이다. 존재하지 않을 때, slice_id[i]의 값은 0에서 num_slices_in_pic_minus1까지의 범위의 각각의 i에 대해 i와 같은 것으로 추론된다.
1과 같은 entropy_coding_sync_enabled_flag는 PPS를 참조하는 각각의 화상의 각각의 브릭에서의 CTB의 행의 제 1 CTB를 포함하는 CTU를 디코딩하기 전에 컨텍스트 변수(context variable)에 대한 특정 동기화 프로세스가 호출되고(invoke), PPS를 참조하는 각각의 화상의 각각의 브릭에서의 CTB의 행의 제 1 CTB를 포함하는 CTU를 디코딩한 후에 컨텍스트 변수에 대한 특정 저장 프로세스가 호출됨을 지정한다. 0과 같은 entropy_coding_sync_enabled_flag는 컨텍스트 변수에 대한 특정 동기화 프로세스가, 예를 들어, PPS를 참조하는 각각의 화상의 각각의 브릭에서의 CTB의 행의 제 1 CTB를 포함하는 CTU를 디코딩하기 전에 호출될 필요가 없으며, 컨텍스트 변수에 대한 특정 저장 프로세스가, 예를 들어, PPS를 참조하는 각각의 화상의 각각의 브릭에서의 CTB의 행의 제 1 CTB를 포함하는 CTU를 디코딩한 후에 호출될 필요가 있을 수 있음을 지정한다.
entropy_coding_sync_enabled_flag의 값은 CVS 내에서 활성화되는 모든 PPS에 대해 동일해야 한다.
1과 같은 cabac_init_present_flag는 cabac_init_flag가 PPS를 참조하는 슬라이스 헤더에 존재함을 지정한다. 0과 같은 cabac_init_present_flag는 cabac_init_flag가 PPS를 참조하는 슬라이스 헤더에 존재하지 않음을 지정한다.
num_ref_idx_default_active_minus1[i]+1은, i가 0과 같을 때, num_ref_idx_active_override_flag가 0과 같은 P 또는 B 슬라이스에 대한 변수 NumRefIdxActive[0]의 추론된 값을 지정하고, i가 1과 같을 때에는, num_ref_idx_active_override_flag가 0과 같은 B 슬라이스에 대한 NumRefIdxActive[1]의 추론된 값을 지정한다. num_ref_idx_default_active_minus1 [i]의 값은 0에서 14까지의 범위에 있어야 한다.
0과 같은 rpl1_idx_present_flag는 ref_pic_list_sps_flag[1] 및 ref_pic_list_idx[1]가 슬라이스 헤더에 존재하지 않음을 지정한다. 1과 같은 rpl1_idx_present_flag는 ref_pic_list_sps_flag[1] 및 ref_pic_list_idx[1]가 슬라이스 헤더에 존재할 수 있음을 지정한다.
init_qp_minus26+26은 PPS를 참조하는 각각의 슬라이스에 대한 SliceQpY의 초기 값을 지정한다. slice_qp_delta의 0이 아닌 값이 디코딩될 때 SliceQpY의 초기 값은 슬라이스 계층에서 수정된다. init_qp_minus26의 값은 -(26+QpBdOffsetY)에서 +37까지의 범위에 있어야 한다.
1과 같은 transform_skip_enabled_flag는 transform_skip_flag가 변환 유닛 구문에 존재할 수 있음을 지정한다. 0과 같은 transform_skip_enabled_flag는 transform_skip_flag가 변환 유닛 구문에 존재하지 않음을 지정한다.
log2_transform_skip_max_size_minus2는 변환 스킵(skip)에 사용되는 최대 블록 크기를 지정하며, 0 내지 3 범위에 있어야 한다.
존재하지 않을 때, log2_transform_skip_max_size_minus2의 값은 0과 같은 것으로 추론된다.
변수 MaxTsSize는 1 <<(log2_transform_skip_max_size_minus2+2)와 같은 것으로 설정된다.
1과 같은 cu_qp_delta_enabled_flag는 cu_qp_delta_subdiv 구문 요소가 PPS에 존재하고, cu_qp_delta_abs가 변환 유닛 구문에 존재할 수 있음을 지정한다. 0과 같은 cu_qp_delta_enabled_flag는 cu_qp_delta_subdiv 구문 요소가 PPS에 존재하지 않고, cu_qp_delta_abs가 변환 유닛 구문에 존재하지 않음을 지정한다.
cu_qp_delta_subdiv는 cu_qp_delta_abs 및 cu_qp_delta_sign_flag를 전달하는 코딩 유닛의 최대 cbSubdiv 값을 지정한다. cu_qp_delta_subdiv의 값 범위는 다음과 같이 지정된다.
- slice_type이 1과 같으면, cu_qp_delta_subdiv의 값은 0 내지 2*(log2_ctu_size_minus2-log2_min_qt_size_intra_slice_minus2+MaxMttDepthY)의 범위에 있어야 한다.
- 그렇지 않으면(slice_type은 1과 같지 않음), cu_qp_delta_subdiv의 값은 0 내지 2*(log2_ctu_size_minus2 ? log2_min_qt_size_inter_slice_minus2+MaxMttDepthY)의 범위에 있어야 한다.
존재하지 않을 때, cu_qp_delta_subdiv의 값은 0과 같은 것으로 추론된다.
[Ed.(BB): 여기서 문제는 MaxMttDepthY가 슬라이스 레벨에서 도출된다는 것이다. 1과 같은 partition_constraints_override_enabled_flag의 경우에는 MaxMttDepthY의 값을 알기 위해 슬라이스 헤더를 구문 분석(parse)할 필요가 있다.]
pps_cb_qp_offset 및 pps_cr_qp_offset은 각각 Qp'Cb 및 Qp'Cr을 도출하기 위해 사용되는 루마 양자화 파라미터 Qp'Y에 대한 오프셋을 지정한다. pps_cb_qp_offset 및 pps_cr_qp_offset의 값은 -12에서 +12까지의 범위에 있어야 한다. ChromaArrayType이 0과 같을 때, pps_cb_qp_offset 및 pps_cr_qp_offset은 디코딩 프로세스에서 사용되지 않으며, 디코더는 이들 값을 무시한다.
1과 같은 pps_slice_chroma_qp_offsets_present_flag는 slice_cb_qp_offset 및 slice_cr_qp_offset 구문 요소가 연관된 슬라이스 헤더에 존재함을 나타낸다. 0과 같은 pps_slice_chroma_qp_offsets_present_flag는 이러한 구문 요소가 연관된 슬라이스 헤더에 존재하지 않음을 나타낸다. ChromaArrayType이 0과 같을 때, pps_slice_chroma_qp_offsets_present_flag는 0과 같아야 한다.
0과 같은 weighted_pred_flag는 가중치 예측(weighted prediction)이 P 슬라이스에 적용되지 않음을 지정한다. 1과 같은 weighted_pred_flag는 가중치 예측이 P 슬라이스에 적용됨을 지정한다.
0과 같은 weighted_bipred_flag는 디폴트 가중치 예측이 B 슬라이스에 적용됨을 지정한다. 1과 같은 weighted_bipred_flag는 가중치 예측이 B 슬라이스에 적용됨을 지정한다.
1과 같은 deblocking_filter_control_present_flag는 PPS에서 디블로킹 필터 제어 구문 요소의 존재를 지정한다. 0과 같은 deblocking_filter_control_present_flag는 PPS에서 디블로킹 필터 제어 구문 요소의 부재를 지정한다.
1과 같은 deblocking_filter_override_enabled_flag는 PPS를 참조하는 화상에 대한 슬라이스 헤더의 deblocking_filter_override_flag의 존재를 지정한다. 0과 같은 deblocking_filter_override_enabled_flag는 PPS를 참조하는 화상에 대한 슬라이스 헤더의 deblocking_filter_override_flag의 부재를 지정한다. 존재하지 않을 때, deblocking_filter_override_enabled_flag의 값은 0과 같은 것으로 추론된다.
1과 같은 pps_deblocking_filter_disabled_flag는 slice_deblocking_filter_disabled_flag가 존재하지 않는 PPS를 참조하는 슬라이스에 대해 디블로킹 필터의 동작이 적용되지 않음을 지정한다. 0과 같은 pps_deblocking_filter_disabled_flag는 slice_deblocking_filter_disabled_flag가 존재하지 않는 PPS를 참조하는 슬라이스에 대해 디블로킹 필터의 동작이 적용됨을 지정한다. 존재하지 않을 때, pps_deblocking_filter_disabled_flag의 값은 0과 같은 것으로 추론된다.
pps_beta_offset_div2 및 pps_tc_offset_div2는 디폴트 디블로킹 파라미터 오프셋이 PPS를 참조하는 슬라이스의 슬라이스 헤더에 존재하는 디블로킹 파라미터 오프셋에 의해 재정의되지 않는 한 PPS를 참조하는 슬라이스에 적용되는 β 및 tC(2로 나눔)에 대한 디폴트 디블로킹 파라미터 오프셋을 지정한다. pps_beta_offset_div2 및 pps_tc_offset_div2의 값은 모두 -6에서 6까지의 범위에 있어야 한다. 존재하지 않을 때, pps_beta_offset_div2 및 pps_tc_offset_div2의 값은 0과 같은 것으로 추론된다.
1과 같은 pps_loop_filter_across_virtual_boundaries_disabled_flag는 루프 내 필터링 동작이 PPS를 참조하는 화상의 가상 경계에 걸쳐 비활성화됨을 지정한다. 0과 같은 pps_loop_filter_across_virtual_boundaries_disabled_flag는 이러한 루프 내 필터링 동작의 비활성화가 PPS를 참조하는 화상에 적용되지 않음을 지정한다. 루프 내 필터링 동작은 디블로킹 필터, 샘플 적응 오프셋 필터 및 적응 루프 필터 동작을 포함한다. 존재하지 않을 때, pps_loop_filter_across_virtual_boundaries_disabled_flag의 값은 0과 같은 것으로 추론된다.
pps_num_ver_virtual_boundaries는 PPS에 존재하는 pps_virtual_boundaries_pos_x[i] 구문 요소의 수를 지정한다. pps_num_ver_virtual_boundaries가 존재하지 않을 때, 이는 0과 같은 것으로 추론된다.
pps_virtual_boundaries_pos_x[i]는 루마 샘플(luma sample)의 유닛의 제 i 수직 가상 경계의 위치를 지정하는 PpsVirtualBoundariesPosX[i]의 값을 계산하는 데 사용된다. pps_virtual_boundaries_pos_x[i]를 나타내는 데 사용되는 비트의 수는 Ceil(Log2(pic_width_in_luma_samples)-3)이다. pps_virtual_boundaries_pos_x[i]는 1에서 Ceil(pic_width_in_luma_samples÷8)-1까지의 범위에 있어야 한다.
수직 가상 경계 PpsVirtualBoundariesPosX[i]의 위치는 다음과 같이 도출된다:
PpsVirtualBoundariesPosX[i]=pps_virtual_boundaries_pos_x [i]*8 (7-36)
임의의 2개의 수직 가상 경계 사이의 거리는 CtbSizeY 루마 샘플보다 크거나 같아야 한다.
pps_num_hor_virtual_boundaries는 PPS에 존재하는 pps_virtual_boundaries_pos_y[i] 구문 요소의 수를 지정한다. pps_num_hor_virtual_boundaries가 존재하지 않을 때, 이는 0과 같은 것으로 추론된다.
pps_virtual_boundaries_pos_y[i]는 루마 샘플의 유닛의 제 i 수평 가상 경계의 위치를 지정하는 PpsVirtualBoundariesPosY[i]의 값을 계산하는 데 사용된다. pps_virtual_boundaries_pos_y[i]를 나타내는 데 사용되는 비트의 수는 Ceil(Log2(pic_height_in_luma_samples)-3)이다. pps_virtual_boundaries_pos_y[i]는 1에서 Ceil(pic_height_in_luma_samples÷8)-1까지의 범위에 있어야 한다.
수평 가상 경계 PpsVirtualBoundariesPosY[i]의 위치는 다음과 같이 도출된다.
PpsVirtualBoundariesPosY [i] = pps_virtual_boundaries_pos_y[i]*8 (7-37)
임의의 2개의 수평 가상 경계 사이의 거리는 CtbSizeY 루마 샘플보다 크거나 같아야 한다.
0과 같은 pps_extension_flag는 pps_extension_data_flag 구문 요소가 PPS RBSP 구문 구조에 존재하지 않음을 지정한다. 1과 같은 pps_extension_flag는 PPS RBSP 구문 구조에 pps_extension_data_flag 구문 요소가 존재함을 지정한다.
pps_extension_data_flag는 임의의 값을 가질 수 있다. 이의 존재와 값은 이러한 사양의 버전에 지정된 프로파일에 대한 디코더 적합성(decoder conformance)에 영향을 미치지 않는다. 이러한 사양의이 버전을 따르는 디코더는 모든 pps_extension_data_flag 구문 요소를 무시해야 한다.
다음의 하위 섹션 "실시예 C"에서, 저 레벨 구문의 시그널링이 설명된다.
이미 상술한 바와 같이, CA의 레이아웃을 나타내는 다른 옵션은 보다 유연한 방식으로 in-VCL 구문을 사용하는 것이다.
코딩 영역 레이아웃은 2개의 새로운 구문 요소 area_line_stop_flag 및 area_column_stop_flag의 평가에 의해 결정되는 반면에, end_of_slice_flag는 이용되지 않을 수 있다.
현재 슬라이스에 대한 비트스트림에서 이전의 area_line_stop_flag가 송신되지 않은 CTU 라인에 대각선 스캔 순서의 다음 CTU가 위치되고, 적어도 부분적으로 화상 내에 위치되는 경우, area_line_stop_flag는 CTU 코딩 프로세스의 끝에서 비트스트림에 존재한다. area_line_stop_flag가 거짓(false)이면, 현재 슬라이스 직사각형은 현재 사용된 CTU 열의 수와 함께 새로운 CTU 라인에 의해 확장된다. area_line_stop_flag가 참(true)이면, 슬라이스 높이는 현재 슬라이스에서 현재 사용된 CTU 라인의 수로 고정된다.
유사하게, 현재 슬라이스에 대한 비트스트림에서 이전의 area_column_stop_flag가 송신되지 않은 새로운 CTU 열에 대각선 스캔 순서의 다음 CTU가 위치되고, 적어도 부분적으로 화상 내에 위치되는 경우, area_column_stop_flag는 CTU 코딩 프로세스의 끝에서 비트스트림에 존재한다. area_column_stop_flag가 거짓이면, 슬라이스 직사각형은 현재 사용된 CTU 라인의 수와 함께 새로운 CTU 열에 의해 확장된다. area_column_stop_flag가 참이면, 슬라이스 폭은 현재 슬라이스에서 현재 사용된 CTU 열의 수로 고정된다.
도 11은 실시예에 따른 하위 영역(CTU) 레벨에서 시그널링하는 코딩 영역을 도시한다.
슬라이스의 직사각형이 결정될 때, 슬라이스 직사각형에 의해 커버된 모든 CTU가 처리되었을 때까지 CTU는 특정 스캔 순서로 처리된다. 화상 경계에서 명시적인 area_line_stop_flag 및 area_column_stop_flag가 각각 누락되었기 때문에, 화상 경계에 접하는 스팬 코딩 영역(spanned coding region)은 이들을 초과하지 않도록 제한된다. 이것은 도 11에서 볼 수 있으며, 여기서 area_line_stop_flag = 1 및 area_column_stop_flag = 1은 화상 경계 근처에 존재하지 않는다.
CA의 크기와 위치에 대한 이전의 지식과 화상 경계를 사용하여 암시적으로 area_line_stop_flag = 1 및 area_column_stop_flag = 1을 도출하면 일부 시그널링 오버헤드를 줄일 수 있지만, "코딩 영역 비트스트림 추출(coding area bitstream extraction)" 및 "코딩 영역 비트스트림 집성(coding area bitstream aggregation)"와 같은 일부 비트스트림 조작을 방지하거나, 이러한 경우 적어도 엔트로피 코딩된 데이터의 부가적인 처리 오버헤드를 발생시킨다. 현재, HEVC의 경우, 엔트로피 코딩된 데이터의 추가 처리 없이 두 프로세스를 모두 허용하는 MCTS(motion conrained tile set)가 정의된다. 그러나, 이러한 프로세스에 의해, MCTS(각각 CA) 경계는 화상 경계가 되거나, 화상 경계는 MCTS 경계(각각 CA)가 되고 화상 경계가 아니다. 따라서, 암시적 도출(derivation) area_line_stop_flag = 1 및 area_column_stop_flag = 1은 화상 경계인지 여부 및 다른 CA가 이미 설명되었는지 여부에 관계없이 항상 두 구문 요소의 존재를 요구함으로써 이러한 기능을 활성화하는 것을 허용하지 않아야 한다. 이것은 예를 들어 "implicit_area_line_or_column_enabled_flag"라는 파라미터 세트에서 구문 요소의 존재에 의해 수행될 수 있거나 MCTS 또는 "모션 제약 코딩 영역"의 존재에 의존하게 할 수 있다.
상술한 것을 요약하면, 일 실시예에 따르면, 데이터 인코더(110)는, 예를 들어, 복수의 코딩 영역에 대한 정보가 하나 이상의 코딩 영역 중 하나의 코딩 영역에 대한 하나 이상의 영역 열 정지 플래그(area column stop flag)를 포함하도록 인디케이션 데이터를 생성하기 위해 구성될 수 있으며, 여기서, 하나 이상의 코딩 영역 중 하나의 코딩 영역의 영역 열 정지 플래그가 정지 값으로 설정되면, 상기 영역 열 정지 플래그는 예를 들어, 상기 코딩 영역의 폭을 나타낼 수 있다. 또는, 데이터 인코더(110)는 예를 들어, 복수의 코딩 영역에 대한 정보가 하나 이상의 코딩 영역 중 하나의 코딩 영역에 대한 하나 이상의 영역 라인 정지 플래그를 포함하도록 인디케이션 데이터를 생성하기 위해 구성될 수 있으며, 여기서, 하나 이상의 코딩 영역 중 하나의 코딩 영역의 영역 라인 정지 플래그가 정지 값으로 설정되면, 상기 영역 라인 정지 플래그는 예를 들어 상기 코딩 영역의 높이를 나타낼 수 있다.
일 실시예에 따르면, 데이터 인코더(110)는, 예를 들어, 인디케이션 데이터가 명시적 시그널링 모드가 활성적인지 명시적 시그널링 모드가 비활성적인지를 나타내도록 인디케이션 데이터를 생성하기 위해 구성될 수 있다. 명시적 시그널링 모드가 활성적이고, 코딩 영역의 하나 이상의 코딩 트리 유닛 중 하나의 코딩 트리 유닛이 화상의 화상 경계에 위치되는 경우, 데이터 인코더(110)는, 예를 들어, 인디케이션 데이터가 상기 코딩 트리 유닛에 대한 영역 열 정지 플래그 및 영역 라인 정지 플래그 중 적어도 하나를 포함하도록 인디케이션 데이터를 생성하기 위해 구성될 수 있다. 명시적 시그널링 모드가 비활성적이고, 코딩 영역의 하나 이상의 코딩 트리 유닛 중 상기 코딩 트리 유닛이 화상의 상기 화상 경계에 위치되는 경우, 데이터 인코더(110)는, 예를 들어, 인디케이션 데이터가 상기 코딩 트리 유닛에 대한 영역 열 정지 플래그를 포함하지 않고/않거나 상기 코딩 트리 유닛에 대한 영역 라인 정지 플래그를 포함하지 않도록 인디케이션 데이터를 생성하기 위해 구성될 수 있다.
마찬가지로, 일 실시예에서, 데이터 디코더(170)는, 예를 들어, 복수의 코딩 영역에 대한 정보를 사용하여 인코딩된 화상 데이터를 디코딩하도록 구성될 수 있으며, 상기 정보는 하나 이상의 코딩 영역 중 하나의 코딩 영역에 대한 하나 이상의 영역 열 정지 플래그를 포함하며, 여기서, 하나 이상의 코딩 영역 중 하나의 코딩 영역의 영역 열 정지 플래그가 정지 값으로 설정되면, 상기 영역 열 정지 플래그는 예를 들어, 상기 코딩 영역의 폭을 나타낼 수 있다. 또는, 데이터 디코더(170)는 예를 들어, 복수의 코딩 영역에 대한 정보를 사용하여 인코딩된 화상 데이터를 디코딩하도록 구성될 수 있으며, 상기 정보는 하나 이상의 코딩 영역 중 하나의 코딩 영역에 대한 하나 이상의 영역 라인 정지 플래그를 포함하며, 여기서, 하나 이상의 코딩 영역 중 하나의 코딩 영역의 영역 라인 정지 플래그가 정지 값으로 설정되면, 상기 영역 라인 정지 플래그는 예를 들어, 상기 코딩 영역의 높이를 나타낼 수 있다.
일 실시예에 따르면, 데이터 디코더(170)는, 예를 들어, 명시적 시그널링 모드가 활성적인지 명시적 시그널링 모드가 비활성적인지를 나타내는 인디케이션 데이터 내의 인디케이션을 사용하여 인코딩된 화상 데이터를 디코딩하도록 구성될 수 있다. 명시적 시그널링 모드가 비활성적이고, 코딩 영역의 하나 이상의 코딩 트리 유닛 중 하나의 코딩 트리 유닛이 화상의 상기 화상 경계에 위치되는 경우, 데이터 디코더(170)는 예를 들어 화상의 화상 경계에 따라 인코딩된 화상 데이터를 디코딩하도록 구성될 수 있다.
다음의 하위 섹션 "CTU 스캔 순서"에서, CTU 스캔 순서가 설명된다.
다음의 하위 섹션 "래스터 스캔"에서, 래스터 스캔이 설명된다.
기존의 래스터 스캔 방법은 화상이 다수의 CA로 세분화될 때 CTU 처리 방식에 적용될 수 있다. 이러한 방법과 코딩 영역을 통한 전체 화면 분할 방식을 인식하면 전체 화면 CTU 라인 단위(picture CTU line-wise)로 처리할 수 있다. 이런 종류의 처리는 HEVC의 Tiles에서 이미 가능했다. 따라서, 이 경우에, CTU 처리 방식의 유연성이 유지된다.
따라서, 일 실시예에 따르면, 2개 이상의 코딩 트리 유닛을 포함하는 하나 이상의 코딩 영역 중 각각의 코딩 영역의 코딩 순서는 예를 들어 래스터 스캔에 의존할 수 있고, 데이터 인코더(110)는 예를 들어 2개 이상의 코딩 트리 유닛을 포함하는 하나 이상의 코딩 영역의 각각의 코딩 영역을 인코딩하기 위해 래스터 스캔이 사용되었음을 인디케이션 데이터가 나타내도록 인디케이션 데이터를 생성하기 위해 구성될 수 있다.
마찬가지로, 일 실시예에 따르면, 2개 이상의 코딩 트리 유닛을 포함하는 하나 이상의 코딩 영역 중 각각의 코딩 영역의 코딩 순서는 예를 들어 래스터 스캔에 의존할 수 있고, 데이터 디코더(170)는 예를 들어 래스터 스캔에 따라 인코딩된 화상 데이터를 디코딩하도록 구성될 수 있으며, 여기서 데이터 디코더(170)는 예를 들어, 래스터 스캔이 2개 이상의 코딩 트리 유닛을 포함하는 하나 이상의 코딩 영역 중 각각의 코딩 영역을 인코딩하기 위해 래스터 스캔이 사용되었음을 나타내는 정보를 수신하도록 구성될 수 있으며, 여기서 인디케이션 데이터는 예를 들어 상기 정보를 포함할 수 있다.
다음의 하위 섹션 "대각선 스캔"에서, 대각선 스캔이 설명된다.
그러나, 기존의 래스터 스캔 순서는 공간 참조의 가용성에 제한을 부과한다. 이를 개선하기 위해, 일 실시예에서, 부가적인 CTU 처리 방식으로서 대각선 스캔이 사용된다.
대각선 스캔을 도출하기 위해, [2]에서 상위 CTU 라인에 대한 종속성의 일반화된 처리: CTU_dependency_offset_id([2])를 사용한다.
참조가 제한되지 않고, 예를 들어 상이한 슬라이스, 타일 또는 화상 외부에 위치되며, 다음의 조건이 참일 때 가 현재 에 대한 예측을 위해 이용 가능할 때 에 상응하는 블록은 참조를 위해 이용 가능하다.
- WPP의 경우:
- 순차 처리 순서의 경우:
또는
여기서 X ref , Y ref , X cur , Y cur 는 CTU 위치 좌표이다.
상술한 상위 인접한 블록 오프셋 제한(upper neighbor block offset restriction)은 CTU 처리 순서를 도출하는 데 사용될 수 있다. 생성된 다양한 CTU 스캔은 특정 기울기 또는 각도를 갖는 대각선 스캔의 변형이며, 여기서 기울기는 고정 값으로 제공되거나 비트스트림에서 송신된 구문 요소에 의해 제어되거나 비트스트림에 이미 존재하는 구문 요소로부터 도출된다.
도 12는 일 실시예에 따른 CTU_dependency_offset_id = 1에 대한 CTU 스캔 순서 및 공간 참조를 도시한다.
도 13은 다른 실시예에 따른 CTU_dependency_offset_id = 2에 대한 다른 CTU 스캔 순서 및 공간 참조를 도시한다.
아래의 도 12 및 도 13에 도시된 바와 같이, 상이한 타입의 CTU 스캔이 생성될 수 있다. 디폴트 스캔 방향은 왼쪽에서 오른쪽 대각선 아래쪽으로 실행되고, 다음의 알고리즘(Matlab®)에 의해 생성될 수 있다.
아래는 일부 CTU_dependency_offset_id 값에 대한 예시적인 스캔 및 공간 참조의 이용 가능성을 보여준다.
상술한 것을 요약하면:
일 실시예에 따르면, 2개 이상의 코딩 트리 유닛을 포함하는 하나 이상의 코딩 영역 중 하나의 코딩 영역의 코딩 순서는 예를 들어 각도를 나타내는 기울기에 의존하는 스캔 순서에 의존할 수 있다. 상기 코딩 영역의 2개 이상의 코딩 트리 유닛 중 제 1 코딩 트리 유닛을 인코딩한 후, 데이터 인코더(110)는 예를 들어, 상기 코딩 영역의 코딩 트리 유닛 중 제 1 코딩 트리 유닛의 위치, 인코딩되지 않은 상기 코딩 영역의 다른 코딩 트리 유닛 및 기울기에 따라 코딩 영역 내의 2개 이상의 코딩 트리 유닛 중 제 2 코딩 트리 유닛을 결정하도록 구성될 수 있다. 데이터 인코더(110)는 예를 들어 2개 이상의 코딩 트리 유닛 중 상기 제 2 코딩 트리 유닛을 인코딩하도록 구성될 수 있다.
일 실시예에서, 데이터 인코더(110)는, 예를 들어, 화살표가 시작점 및 기울기에 의해 정의되도록 코딩 영역 내의 2개 이상의 코딩 트리 유닛 중 제 2 코딩 트리 유닛을 결정하도록 구성될 수 있으며, 여기서 시작점은, 예를 들어, 코딩 영역 내의 코딩 트리 유닛 중 제 1 코딩 트리 유닛의 위치일 수 있고, 2개 이상의 코딩 트리 유닛 중 제 2 코딩 트리 유닛의 위치를 가리킨다.
일 실시예에 따르면, 데이터 인코더(110)는 예를 들어, 인디케이션 데이터가 2개 이상의 코딩 트리 유닛을 포함하는 하나 이상의 코딩 영역의 각각의 코딩 영역을 인코딩하기 위해 대각선 스캔이 사용되었음을 나타내도록 인디케이션 데이터를 생성하기 위해 구성될 수 있다.
마찬가지로, 일 실시예에 따르면, 2개 이상의 코딩 트리 유닛을 포함하는 하나 이상의 코딩 영역 중 하나의 코딩 영역의 코딩 순서는 예를 들어 각도를 나타내는 기울기에 의존하는 스캔 순서에 의존할 수 있다. 인디케이션 데이터는 예를 들어, 코딩 영역에 대한 상기 정보를 포함할 수 있으며, 여기서, 상기 코딩 영역의 2개 이상의 코딩 트리 유닛 중 제 1 코딩 트리 유닛을 디코딩한 후, 데이터 디코더(170)는, 예를 들어, 상기 코딩 영역의 코딩 트리 유닛 중 제 1 코딩 트리 유닛의 위치, 디코딩되지 않은 상기 코딩 영역의 다른 코딩 트리 유닛 및 기울기에 따라 코딩 영역 내의 2개 이상의 코딩 트리 유닛 중 제 2 코딩 트리 유닛을 결정하도록 구성될 수 있다. 데이터 디코더(170)는 예를 들어 2개 이상의 코딩 트리 유닛 중 상기 제 2 코딩 트리 유닛을 디코딩하도록 구성될 수 있다.
일 실시예에 따르면, 데이터 디코더(170)는, 예를 들어, 화살표가 시작점 및 기울기에 의해 정의되도록 코딩 영역 내의 2개 이상의 코딩 트리 유닛 중 제 2 코딩 트리 유닛을 결정하도록 구성될 수 있다. 시작점은, 예를 들어, 코딩 영역 내의 코딩 트리 유닛 중 제 1 코딩 트리 유닛의 위치일 수 있고, 2개 이상의 코딩 트리 유닛 중 제 2 코딩 트리 유닛의 위치를 가리킨다.
일 실시예에서, 데이터 디코더(170)는 예를 들어, 2개 이상의 코딩 트리 유닛을 포함하는 하나 이상의 코딩 영역의 각각의 코딩 영역을 인코딩하기 위해 대각선 스캔이 사용되었음을 나타내는 정보 인디케이션 데이터를 수신하도록 구성될 수 있으며, 여기서 인디케이션 데이터는 예를 들어 상기 정보를 포함할 수 있다.
다음의 하위 섹션 "Z-Scan"에서, Z-Scan이 설명된다.
도 14는 일 실시예에 따른 Z-Scan CTU 순서를 갖는 코딩 영역을 도시한다.
이러한 실시예에서, Z-Scan은 제안된 대각선 스캔 대신에 CTU-스캔 순서를 위해 사용될 수 있다. Z-Scan은 HEVC에서 정의된다.
일 실시예에 따르면, 5개 이상의 코딩 트리 유닛을 포함하는 코딩 영역의 코딩 순서는 예를 들어, 스캔 순서에 의존할 수 있으며, 상기 스캔 순서는 0°인 제 1 각도에 의존하고, 135°인 제 2 각도에 의존하며, 45°인 제 3 각도에 의존한다.
상기 코딩 영역의 제 1 코딩 트리 유닛을 인코딩한 후, 데이터 인코더(110)는, 예를 들어, 상기 코딩 트리 영역의 제 2 코딩 트리 유닛을 결정하도록 구성될 수 있음으로써, 상기 코딩 영역 내의 제 1 코딩 트리 유닛의 위치에서의 제 1 시작점을 갖는 제 1 화살표가 미리 정의된 방향에 대해 0°인 제 1 각도를 둘러싸고, 제 1 화살표가 코딩 영역 내의 상기 제 2 코딩 트리 유닛을 가리키도록 하고, 데이터 인코더(110)는 상기 코딩 영역의 상기 제 2 코딩 트리 유닛을 인코딩하도록 구성된다.
상기 코딩 영역의 제 2 코딩 트리 유닛을 인코딩한 후, 데이터 인코더(110)는, 예를 들어, 상기 코딩 트리 영역의 제 3 코딩 트리 유닛을 결정하도록 구성될 수 있음으로써, 상기 코딩 영역 내의 제 2 코딩 트리 유닛의 위치에서의 제 2 시작점을 갖는 제 2 화살표가 미리 정의된 방향에 대해 135°인 제 2 각도를 둘러싸고, 제 2 화살표가 코딩 영역 내의 상기 제 3 코딩 트리 유닛을 가리키도록 하고, 데이터 인코더(110)는 상기 코딩 영역의 상기 제 3 코딩 트리 유닛을 인코딩하도록 구성된다.
상기 코딩 영역의 제 3 코딩 트리 유닛을 인코딩한 후, 데이터 인코더(110)는, 예를 들어, 상기 코딩 트리 영역의 제 4 코딩 트리 유닛을 결정하도록 구성될 수 있음으로써, 상기 코딩 영역 내의 제 3 코딩 트리 유닛의 위치에서의 제 3 시작점을 갖는 제 3 화살표가 미리 정의된 방향에 대해 0°인 제 1 각도를 둘러싸고, 제 3 화살표가 코딩 영역 내의 상기 제 4 코딩 트리 유닛을 가리키도록 하고, 데이터 인코더(110)는 상기 코딩 영역의 상기 제 4 코딩 트리 유닛을 인코딩하도록 구성된다.
특정 실시예에서, 상기 코딩 영역의 제 4 코딩 트리 유닛을 인코딩한 후, 데이터 인코더(110)는, 예를 들어, 상기 코딩 트리 영역의 제 5 코딩 트리 유닛을 결정하도록 구성될 수 있음으로써, 상기 코딩 영역 내의 제 4 코딩 트리 유닛의 위치에서의 제 4 시작점을 갖는 제 4 화살표가 미리 정의된 방향에 대해 45°인 제 3 각도를 둘러싸고, 제 4 화살표가 코딩 영역 내의 상기 제 5 코딩 트리 유닛을 가리키도록 하고, 데이터 인코더(110)는 상기 코딩 영역의 상기 제 5 코딩 트리 유닛을 인코딩하도록 구성된다.
일 실시예에서, 데이터 인코더(110)는, 예를 들어, 인디케이션 데이터가 5개 이상의 코딩 트리 유닛을 포함하는 하나 이상의 코딩 영역의 각각의 상기 영역을 인코딩하기 위해 z 스캔이 사용되었음을 나타내도록 인디케이션 데이터를 생성하기 위해 구성될 수 있다.
마찬가지로, 일 실시예에 따르면, 5개 이상의 코딩 트리 유닛을 포함하는 코딩 영역의 코딩 순서는 예를 들어, 스캔 순서에 의존할 수 있으며, 상기 스캔 순서는 0°인 제 1 각도에 의존하고, 135°인 제 2 각도에 의존하며, 45°인 제 3 각도에 의존한다.
상기 코딩 영역의 제 1 코딩 트리 유닛을 디코딩한 후, 데이터 디코더(170)는, 예를 들어, 상기 코딩 트리 영역의 제 2 코딩 트리 유닛을 결정하도록 구성될 수 있음으로써, 상기 코딩 영역 내의 제 1 코딩 트리 유닛의 위치에서의 제 1 시작점을 갖는 제 1 화살표가 미리 정의된 방향에 대해 0°인 제 1 각도를 둘러싸고, 제 1 화살표가 코딩 영역 내의 상기 제 2 코딩 트리 유닛을 가리키도록 하고, 데이터 디코더(170)는 상기 코딩 영역의 상기 제 2 코딩 트리 유닛을 디코딩하도록 구성된다.
상기 코딩 영역의 제 2 코딩 트리 유닛을 디코딩한 후, 데이터 디코더(170)는, 예를 들어, 상기 코딩 트리 영역의 제 3 코딩 트리 유닛을 결정하도록 구성될 수 있음으로써, 상기 코딩 영역 내의 제 2 코딩 트리 유닛의 위치에서의 제 2 시작점을 갖는 제 2 화살표가 미리 정의된 방향에 대해 135°인 제 2 각도를 둘러싸고, 제 2 화살표가 코딩 영역 내의 상기 제 3 코딩 트리 유닛을 가리키도록 하고, 데이터 디코더(170)는 상기 코딩 영역의 상기 제 3 코딩 트리 유닛을 디코딩하도록 구성된다.
상기 코딩 영역의 제 3 코딩 트리 유닛을 디코딩한 후, 데이터 디코더(170)는, 예를 들어, 상기 코딩 트리 영역의 제 4 코딩 트리 유닛을 결정하도록 구성될 수 있음으로써, 상기 코딩 영역 내의 제 3 코딩 트리 유닛의 위치에서의 제 3 시작점을 갖는 제 3 화살표가 미리 정의된 방향에 대해 0°인 제 1 각도를 둘러싸고, 제 3 화살표가 코딩 영역 내의 상기 제 4 코딩 트리 유닛을 가리키도록 하고, 데이터 디코더(170)는 상기 코딩 영역의 상기 제 4 코딩 트리 유닛을 디코딩하도록 구성된다.
특정 실시예에서, 상기 코딩 영역의 제 4 코딩 트리 유닛을 디코딩한 후, 데이터 디코더(170)는, 예를 들어, 상기 코딩 트리 영역의 제 5 코딩 트리 유닛을 결정하도록 구성될 수 있음으로써, 상기 코딩 영역 내의 제 4 코딩 트리 유닛의 위치에서의 제 4 시작점을 갖는 제 4 화살표가 미리 정의된 방향에 대해 45°인 제 3 각도를 둘러싸고, 제 4 화살표가 코딩 영역 내의 상기 제 5 코딩 트리 유닛을 가리키도록 하고, 데이터 디코더(170)는 상기 코딩 영역의 상기 제 5 코딩 트리 유닛을 디코딩하도록 구성된다.
일 실시예에 따르면, 데이터 디코더(170)는, 예를 들어, 5개 이상의 코딩 트리 유닛을 포함하는 하나 이상의 코딩 영역의 각각의 상기 영역을 인코딩하기 위해 z 스캔이 사용되었음을 나타내는 정보를 수신하도록 구성될 수 있으며, 여기서 인디케이션 데이터는 예를 들어 상기 정보를 포함할 수 있다.
다음의 하위 섹션 "스캔 방향"에서, 스캔 방향이 설명된다.
다른 실시예에서, 스캔의 방향은 예를 들어 오른쪽에서 왼쪽 대각선 아래쪽까지; 각각 오른쪽에서 왼쪽 대각선 위쪽까지; 또는 왼쪽에서 오른쪽 대각선 위쪽까지의 범위로 유연할 수 있다. 스캔 방향은 새로운 구문 요소 CTU_scan_direction을 사용하여 비트스트림에서 송신될 수 있거나 비트스트림에 이미 존재하는 구문 요소로부터 도출될 수 있다.
다른 실시예에서, 스캔 방향은 엄격한 슬라이스 순서의 제약으로 coding_area_start_address에 의해 어드레스된 제 1 슬라이스 CTU의 인접한 이웃(adjacent neighborhood)을 평가함으로써 도출된다.
제 1 슬라이스 CTU가 하단 경계에 인접한 CTU 이웃을 갖거나, 제 1 슬라이스 CTU가 화상의 하단 CTU 라인에 위치되고, 오른쪽에 인접한 이웃을 갖지 않고 가장 오른쪽 CTU 열에 위치되지 않은 경우, CTU 스캔은 오른쪽 위쪽 스캔(right upwards scan)이다.
제 1 슬라이스 CTU가 하단 경계에 인접한 CTU 이웃을 갖거나, 제 1 슬라이스 CTU가 화상의 하단 CTU 라인에 위치되고, 오른쪽에 인접한 이웃을 갖고 화상의 가장 오른쪽 열에 위치되는 경우, CTU 스캔은 왼쪽 위쪽 스캔이다.
그렇지 않으면, 제 1 슬라이스 CTU의 오른쪽의 CTU 이웃이 이용 가능하거나 제 1 슬라이스 CTU가 화상의 가장 오른쪽 열에 위치되는 경우, 스캔은 왼쪽 아래로 진행된다. 다른 모든 경우에, CTU 스캔은 오른쪽 아래로 진행된다.
도 15는 다른 실시예에 따른 암시적 CTU 스캔 방향 도출을 예시한다.
이러한 다른 실시예에서, 상술한 발명된 도출 방식은 잠재적인 코딩 영역 경계를 따라 이용 가능한 CTU 이웃의 수를 평가함으로써 더욱 개선된다. 예를 들어 제 1 슬라이스 CTU가 왼쪽 및 위 CTU 이웃에 위치되기 때문에, 스캔은 오른쪽 아래 스캔 또는 아래 오른쪽 스캔일 수 있으며, 따라서 수직 및 수평 방향의 코딩 영역 경계를 따라 잠재적으로 (CA의 차원이 알려지지 않은 경우) 이용 가능한 CTU 이웃의 수는 개별적으로 합산된다. 수직 이웃의 합이 수평 CTU 이웃의 수를 초과하면, 아래 오른쪽 스캔이 사용되고, 그렇지 않으면 스캔은 오른쪽 아래 스캔이다. 이러한 도출 방식은 래스터 스캔을 사용하는 도 15에 도시되어 있다.
다른 실시예에서, 상술한 발명된 도출 방식 및 개선은 CTU-스캔을 선택하는 슬라이스 레벨에서 인덱스가 송신되는 가능한 스캔의 순서화된 리스트을 형성하는 데 사용된다. 부가적으로, 화상 내에서 상이한 대각선 스캔이 이용되는 경우, CTU_dependency_offset_id가 슬라이스 헤더에 코딩되어야 한다.
도 16은 일 실시예에 따라 상이한 CTU 스캔 방향을 갖는 코딩 영역을 도시한다.
특히, 도 16은 화상 내에서 다양한 스캔 방향을 사용하는 예를 도시한다.
상술한 내용을 요약하면:
일 실시예에 따르면, 2개 이상의 코딩 트리 유닛을 포함하는 하나 이상의 코딩 영역 중 하나의 코딩 영역의 코딩 순서는 예를 들어 하나 이상의 스캔 방향을 포함하는 스캔 순서에 의존할 수 있다. 상기 코딩 영역의 제 1 코딩 트리 유닛을 인코딩한 후, 데이터 인코더(110)는 예를 들어, 제 1 코딩 트리 유닛의 위치 및 하나 이상의 스캔 방향 중 제 1 스캔 방향에 따라 상기 코딩 트리 영역의 제 2 코딩 트리 유닛을 결정하도록 구성될 수 있고, 데이터 인코더(110)는 상기 코딩 영역의 상기 제 2 코딩 트리 유닛을 인코딩하도록 구성된다.
일 실시예에서, 데이터 인코더(110)는, 예를 들어, 인디케이션 데이터가 하나 이상의 스캔 방향을 포함하는 상기 스캔 순서를 나타내도록 인디케이션 데이터를 생성하기 위해 구성될 수 있다.
일 실시예에 따르면, 데이터 인코더(110)는, 예를 들어, 상기 코딩 영역의 제 1 코딩 트리 유닛의 인접한 이웃을 평가함으로써 하나 이상의 스캔 방향 중 하나의 스캔 방향을 도출하도록 구성될 수 있다. 제 1 코딩 트리 유닛이 그 하단 경계에 인접한 2개 이상의 코딩 트리 유닛의 코딩 트리 유닛 이웃을 가지고 있거나, 제 1 코딩 트리 유닛이 화상의 하단 코딩 트리 유닛 라인에 위치되고, 오른쪽에 인접한 이웃을 갖지 않고 가장 오른쪽 코딩 트리 유닛 열에 위치되지 않는 경우, 스캔 방향은, 예를 들어, 오른쪽 위쪽 스캔일 수 있다. 제 1 코딩 트리 유닛이 그 하단 경계에 인접한 2개 이상의 코딩 트리 유닛의 코딩 트리 유닛 이웃을 가지고 있거나, 제 1 코딩 트리 유닛이 화상의 하단 코딩 트리 유닛 라인에 위치되고, 오른쪽에 인접한 이웃을 갖고 화상의 가장 오른쪽 열에 위치되는 경우, 스캔 방향은, 예를 들어, 왼쪽 위쪽 스캔일 수 있다. 제 1 코딩 트리 유닛의 오른쪽에 있는 2개 이상의 코딩 트리 유닛의 코딩 트리 유닛 이웃이 이용 가능한 경우, 또는 제 1 코딩 트리 유닛이 화상의 가장 오른쪽 열에 위치되는 경우, 스캔 방향은 예를 들어 왼쪽 아래쪽일 수 있다. 그렇지 않으면, 스캔 방향은 예를 들어 오른쪽 아래쪽일 수 있다.
일 실시예에서, 데이터 인코더(110)는, 예를 들어, 인디케이션 데이터가 하나 이상의 스캔 방향의 선택된 스캔 방향을 나타내는 인덱스를 나타내도록 인디케이션 데이터를 생성하기 위해 구성될 수 있다.
마찬가지로, 일 실시예에 따르면, 2개 이상의 코딩 트리 유닛을 포함하는 하나 이상의 코딩 영역 중 하나의 코딩 영역의 코딩 순서는 예를 들어 하나 이상의 스캔 방향을 포함하는 스캔 순서에 의존할 수 있다. 상기 코딩 영역의 제 1 코딩 트리 유닛을 디코딩한 후, 데이터 디코더(170)는 예를 들어, 제 1 코딩 트리 유닛의 위치 및 하나 이상의 스캔 방향 중 제 1 스캔 방향에 따라 상기 코딩 트리 영역의 제 2 코딩 트리 유닛을 결정하도록 구성될 수 있고, 데이터 디코더(170)는, 예를 들어, 상기 코딩 영역의 상기 제 2 코딩 트리 유닛을 디코딩하도록 구성될 수 있다.
일 실시예에서, 데이터 디코더(170)는, 예를 들어, 하나 이상의 스캔 방향을 포함하는 상기 스캔 순서를 나타내는 정보를 수신하도록 구성될 수 있으며, 여기서 인디케이션 데이터는 예를 들어 상기 정보를 포함할 수 있다.
일 실시예에 따르면, 데이터 디코더(170)는, 예를 들어, 상기 코딩 영역의 제 1 코딩 트리 유닛의 인접한 이웃을 평가함으로써 하나 이상의 스캔 방향 중 하나의 스캔 방향을 도출하도록 구성될 수 있다. 제 1 코딩 트리 유닛이 그 하단 경계에 인접한 2개 이상의 코딩 트리 유닛의 코딩 트리 유닛 이웃을 가진 경우, 또는 제 1 코딩 트리 유닛이 화상의 하단 코딩 트리 유닛 라인에 위치되고, 오른쪽에 인접한 이웃을 갖지 않고 가장 오른쪽 코딩 트리 유닛 열에 위치되지 않는 경우, 스캔 방향은, 예를 들어, 오른쪽 위쪽 스캔일 수 있다. 제 1 코딩 트리 유닛이 그 하단 경계에 인접한 2개 이상의 코딩 트리 유닛의 코딩 트리 유닛 이웃을 가진 경우, 또는 제 1 코딩 트리 유닛이 화상의 하단 코딩 트리 유닛 라인에 위치되고, 오른쪽에 인접한 이웃을 갖고 화상의 가장 오른쪽 열에 위치되는 경우, 스캔 방향은, 예를 들어, 왼쪽 위쪽 스캔일 수 있다. 제 1 코딩 트리 유닛의 오른쪽에 있는 2개 이상의 코딩 트리 유닛의 코딩 트리 유닛 이웃이 이용 가능한 경우, 또는 제 1 코딩 트리 유닛이 화상의 가장 오른쪽 열에 위치되는 경우, 스캔 방향은 예를 들어 왼쪽 아래쪽일 수 있다. 그렇지 않으면, 스캔 방향은 예를 들어 오른쪽 아래쪽일 수 있다.
일 실시예에서, 데이터 디코더(170)는, 예를 들어, 하나 이상의 스캔 방향 중 선택된 스캔 방향을 나타내는 인덱스를 나타내는 정보를 수신하도록 구성될 수 있으며, 여기서 인디케이션 데이터는 예를 들어 상기 정보를 포함할 수 있다.
다음의 하위 섹션 "종속 코딩 영역(dependent coding area)"에서, 종속 코딩 영역이 설명된다.
도 17은 일 실시예에 따른 영역 간 예측 옵션(inter-region prediction option)을 갖는 종속 코딩 영역을 도시한다.
이러한 실시예에서, 화상 내에서, 공간 예측 능력을 이용하기 위해, 하나의 코딩 영역은 다른 코딩 영역에 대한 종속성을 가질 수 있다. 이 경우, 특정 영역의 처리 순서가 결정론적 동작(deterministic behavior)을 용이하게 하기 위해 필요할 수 있다. 이것은, 예를 들어, 종속성 순서를 명시적으로 결정하는 각각의 CA에 대해 새로운 구문 요소 area_order_idx를 사용하여 영역 순서를 시그널링함으로써 수행될 수 있다. 대안으로, 종속성 순서는 coding_area_arrangement() 구문에서 시그널링된 바와 같은 CA의 순서로부터 직접 도출될 수 있다. 하위 섹션 "코딩 영역의 크기 및 배치"를 참조한다.
area_order_idx의 값은 다음과 같이 해석될 수 있다: area_order_idx 값이 더 높은 영역은 area_order_idx 값이 더 낮은 영역에 의존하거나 그 반대의 경우도 마찬가지이다.
상술한 내용을 요약하면:
일 실시예에서, 데이터 인코더(110)는, 예를 들어, 인코딩된 화상 데이터를 획득하기 위해 복수의 코딩 영역의 각각의 코딩 영역 내에서 화상의 이미지 데이터를 인코딩함으로써 화상을 인코딩하도록 구성될 수 있다. 데이터 인코더(110)는, 예를 들어, 복수의 코딩 영역 중 상기 적어도 하나의 이미지 데이터의 인코딩이 복수의 코딩 영역 중 적어도 다른 하나의 이미지 데이터의 인코딩에 의존하도록 복수의 코딩 영역 중 적어도 하나의 이미지 데이터를 인코딩하기 위해 구성될 수 있다.
마찬가지로, 일 실시예에서, 데이터 디코더(170)는, 예를 들어, 복수의 코딩 영역 중 상기 적어도 하나의 인코딩된 화상 데이터의 디코딩이 복수의 코딩 영역 중 적어도 다른 하나의 인코딩된 화상 데이터의 디코딩에 의존하도록 복수의 코딩 영역 중 적어도 하나의 인코딩된 화상 데이터를 디코딩하도록 구성될 수 있다.
다음의 하위 섹션 "코딩 영역의 병렬 처리"에서, 코딩 영역의 병렬 처리가 설명된다.
코딩 영역은 또한 병렬 처리 지원이 가능하다. 병렬화의 명백한 사용 케이스는 다수의 비종속 코딩 영역을 사용하는 것이다. 이 경우, 하나의 CA의 구성된 CTU를 임의의 다른 CA로 구문 분석하거나 재구성하기 위한 종속성이 금지되며, 상이한 CA에 할당되는 인접한 CU는 참조를 위해 이용 가능하지 않는 것으로서 처리된다. 이 경우, 후 처리 필터(post-processing filter)는 filter_over_ca_boundaries_flag에 따라 CA에 개별적으로 또는 화상마다 적용될 수 있다. 이러한 구문 요소는 HEVC에서 사용되는 loop_filter_across_tiles_enabled_flag와 같은 방식으로 작업한다.
도 18은 실시예((A) CTU 래스터 스캔; (B) CTU 대각선 스캔)에 따른 종속 코딩 영역의 병렬 처리를 도시한다.
종속 코딩 영역의 경우에, 도 18에 도시된 바와 같은 처리 방식은 화상에서 공간 종속성을 이용하고 교차 영역 경계(cross-area boundaries) 상에서 가능한 아티팩트(artifact)를 줄이는데 사용될 수 있다. CA 간 종속성을 사용하려면, 예를 들어, CTU 처리의 명확한 순서가 필요할 수 있으며, 그 결과 인접한 CA로부터 신뢰할 수 있는 CTU를 사용할 수 있다.
CA를 처리하는 순서는 비트스트림에서 송신된 CA의 순서에 의해 암시적으로 주어질 수 있다. 또한, CA의 순서는 비트스트림에서 송신된 심볼에 의해 명시적으로 정해질 수 있다.
2가지 주요 CTU 실행 개념은 도 19에 도시되어 있다.
도 19는 일 실시예((A) 종속성 기반(Dependency Driven); (B) 로크스텝(Lockstep))에 따른 실행 순서 및 CA 간 종속성을 도시한다.
다음에서는 로크스텝 파이프라인(lockstep pipeline)이 설명된다.
파이프라인 개념은 로크스텝 실행 방식을 뒤따르는 구문 분석(parsing) 및 재구성 및/또는 후 필터링을 가정한다. 글로벌 이벤트(global event)는 각각의 스레드(thread)에 대한 CTU의 실행 단계를 시작하는 데 사용되며, 여기서 각각의 단계에서 단일 CTU가 각각의 CA에서 처리된다. 이러한 방식은 도 19(B)에 도시된 바와 같이 사용할 수 없는 CTU 참조 비용으로 최대 처리량을 보장하며, 여기서 제 1 및 제 2 CA에서의 바로 이웃한 CTU는 동시에 처리되며, 따라서 어느 한 방향으로 참조를 위해 사용할 수 없다.
그러나, 엄격한 로크스텝(strict lockstep) 실행이 적용되면, 연한 파란색 화살표로 도시된 바와 같이 부가적인 CA 간 종속성이 사용 가능하게 된다.
다음에서는 종속성 기반 개념(dependencies driven concept)이 설명된다.
이러한 개념은 CA 간 CTU 이웃의 로컬 가용성(local availability)에 의존한다. 인접한 이웃 CA에서의 참조 CTU가 사용할 수 없는 경우, 참조를 위해 사용할 수 있어야 하지만, 이러한 특정 CA의 실행은 참조 CTU가 완전한 구문 분석 resp. 재구성에 의해 사용 가능하게 될 때까지 중단된다. 이것은 예를 들어 제 1 CA의 참조 CTU가 제 5 실행 단계에서 처리되고 제 6 실행 단계에서 가장 먼저 사용 가능하기 때문에 제 2 CA의 처리가 제 5 실행 단계 동안 정지되는 도 19(A)에서 알 수 있다.
또한, 병렬 처리는 종속 CA 처리 방식을 사용하여 후 처리 필터의 동작으로 확장될 수 있다. CTU 내부 경계(CU 경계)의 경우, 디폴트 필터 프로세스가 적용될 수 있다. 반대로, 처리 순서의 제 2 CTU가 필터링되었을 때 CTU 경계가 필터링되며, 따라서 경계에서의 필터 강도는 결정될 수 있을 뿐만 아니라 필터링을 위한 샘플도 사용할 수 있다. CA 교차 경계 필터링이 가능해지는 경우 또는 종속 CA의 경우에, 이러한 규칙은 또한 CA 교차 경계 필터링에 적용된다. CTU 경계에 걸쳐 도달하는 디블로킹 필터는 인접한 CA에서 참조 CTU의 가용성을 고려하여 구문 분석 및 재구성이 수행되는 바와 유사한 방식으로 처리된다. 인접한 CA에서의 CTU가 사용할 수 있는 경우, 미리 필터링되지 않은 영역의 부분은 현재 필터링 프로세스에서 필터링된다.
도 20은 일 실시예에 따른 CA 순서에 대한 CA 경계 상의 디블로킹 필터 프로세스를 도시한다.
도 21은 일 실시예에 따라 해치된(hatched) 필터 영역을 갖는 CA 간 필터링을 사용하는 디블로킹 필터를 도시한다.
도 21에 도시된 바와 같이, 제 1 처리 단계에서 제 1 CA의 CTU(1)만이 필터링될 수 있다. 이러한 CTU에 대한 필터링은 CTU 이웃이 사용할 수 없으므로 내부 경계로 제한된다. 제 2 실행 단계에서는 제 1 CA의 제 2 CTU가 내부 경계와 제 1 CA의 제 1 CTU에 대한 CTU 경계를 필터링한다. 부가적으로, 제 2 CA의 왼쪽 하단 CTU는 내부 경계와 제 1 CA의 제 1 CTU에 대한 CA 중첩 CTU 경계를 필터링한다. 이러한 병렬 처리의 한 가지 효과는 디블로킹 필터의 저 지연 동작을 가능하게 하는 것이다. 교차 CA 경계 필터링 디블로킹은 전체 CA가 디코딩되기 전에 시작될 수 있으며, 이에 따라 화상 영역에는 추가의 화상을 위해 참조 화상이 사용될 수 있기 전의 전체 처리 시간은 감소될 수 있다.
다음의 하위 섹션 "오류 복원력 양태(error resiliency aspect)"에서, 오류 복원력 양태가 설명된다.
"최신 기술에 따른 VCL 분할" 섹션에서 언급된 바와 같이, 오류 복원력은 애플리케이션의 저장 또는 전송 메커니즘이 신뢰할 수 없을 때 비디오 코딩에서 바람직한 특징(feature)이다. 그러나, 오늘날 HTTP 스트리밍과 같은 많은 애플리케이션이 존재하며, 예를 들어 패킷 손실이 있는 RTP/UDP 스트리밍이나 비트 또는 버스트 오류가 있는 일반적인 브로드캐스트 채널에서와 같이 오류 복원력이 덜 필요할 수 있다. HTTP 스트리밍의 경우, 코딩된 비디오는 일반적으로 n*GOP 단위로 세그먼트되고, 누락된 세그먼트는 각각의 세그먼트가 성공적으로 재송신될 때까지 수신기 측 상에서 버퍼 스톨링(buffer stalling)을 트리거링(triggering)한다. 후자의 시나리오에서는 일부 오류 복원 능력을 상실하면서 코딩 효율을 높이기 위해 코딩된 데이터 내부에 추가의 종속성을 도입하는 것이 바람직하다. 예를 들어, 하위 섹션 "스캔 방향"에서 설명된 바와 같이 인접한 CA에 기초한 스캔 순서 도출 양태는, 예를 들어, 현재 CA가 올바르게 디코딩될 수 있기 전에 수신기 측 상에서 이웃한 CA의 가용성을 필요로 할 수 있다. 따라서, 이러한 기술은 제한된 오류 복원력이 허용되는 경우에만 사용되어야 한다. 마찬가지로, 하위 섹션 "종속 코딩 영역"에서와 같은 종속 코딩 영역에 관한 양태는 하위 섹션 "코딩 영역의 병렬 처리"에서 설명된 병렬화 양태 및 처리 순서뿐만 아니라 오류 복원력에 영향을 미치는 종속성을 도입한다. 이와 관련하여 다른 최신 기술은 동일한 트레이드오프(trade-off), 예를 들어, HEVC SCC의 IBC 또는 현재 블록으로부터 더 멀리 떨어져 있는 화상 내의 샘플을 일반적 인트라 예측(intra-prediction)에서 용이하게 하는 다른 인트라 예측 기술과 같은 화상 내 변환 보상 예측(in-picture translation-compensated prediction)을 처리해야 한다. 또한, 시퀀스 레벨에서는, 오류 탄력성 영향의 대가로 코딩 효율을 높이는 것으로 알려져 있고, 예를 들어 화상을 통해 CABAC 컨텍스트 모델과 같은 엔트로피 코딩 엔티티의 상태 등을 공유하는 추가의 기술이 있다.
코딩된 비디오의 송신을 통합하는 시스템에서, 코딩된 비디오 스트림이 제공하는 오류 탄력성 정도에 관한 정보는 다양한 방식으로 활용될 수 있으며, 예를 들어, 미디어 인식 미들 박스(media-aware middle box)는 초기 재송신을 트리거링할 수 있거나 최종 장치(end-device)는 성공적인 재송신 또는 비트스트림의 부분(개개의 AU, PPS에 연관된 AU 또는 그렇지 않으면, SPS에 연관되거나 CVS를 형성하는 AU)의 디코딩을 스킵(skip)할 때까지 프레임 하위 섹션 복사 또는 버퍼링을 통한 프레임 레벨 슬라이스 기반 오류 은닉(frame-level slice-based error concealment)과 같은 오류 완화 전략 사이에서 선택할 수 있다. 따라서, 코딩된 비디오 스트림이 제공하는 오류 복원력의 정도를 미들 박스 또는 클라이언트 최종 장치에 나타내는 것이 바람직하다. 코딩된 비디오 시퀀스에서 오류 은닉 정도의 다른 용도는 서비스 운영자가 특정 코딩된 스트림이 계획된 송신 시스템에 적합한지를 결정하는 것이며, 예를 들어, HTTP 스트리밍을 위해 인코딩된 스트림은 버스트 오류가 발생하기 위운 위성 방송 채널을 통해 송신될 때 성능이 저하될 수 있다.
현재, 이러한 정보는 수많은 파라미터가 오류 복원력을 결정하기 때문에 최신 기술의 코덱을 사용하여 코딩된 스트림에서 쉽게 액세스될 수 없으며, 예를 들어 상술한 예의 리스트가 완전하지 않을 수 있다. 일부 개개의 파라미터는 파라미터 세트로부터 도출될 수 있고, 다른 파라미터는 예를 들어 화상 기반의 고 레벨 구문 분석을 요구할 수 있지만, 다른 파라미터는 예를 들어 저 레벨 구문 분석을 요구할 수도 있다. 또한, 조사된 파라미터의 대부분은 코딩된 비디오 시퀀스의 나머지 부분에 대한 인코더 결정에 관한 정보로 시그널링되지 않고, 제한된 범위를 갖는다. 예를 들어, 분할 결정은 화상 간에 우연히 발생할 수 있다. 손상된 스트림은 더 이상 필요한 정보를 가지고 있지 않을 수도 있다.
실시예는 코딩된 비디오 시퀀스의 오류 복원력의 정도에 대해 쉽게 액세스 가능한 인디케이션을 제공한다. 일부 실시예는 오류 복원력 및 오류 완화 전략에 영향을 미치는 관련 도구 상의 코딩된 비디오에 대한 코딩 제약을 제공한다. 미들 박스 또는 클라이언트 최종 장치는 비디오 인코더가 오류 복원력에 영향을 미칠 수 있는 특정 옵션을 결정 공간으로부터 제외했음을 보장하는 것으로 인디케이션을 해석할 수 있다. 서비스 제공은 코딩된 스트림이 적합한 어떤 송신 시스템에 대한 이러한 정보를 해석할 수 있다.
일 실시예에서, 다음에서와 같이 코딩된 비디오의 쉽게 액세스 가능한 고 레벨 구문의 단일 플래그는 예를 들어 다음과 같이 제공된다.
sps_error_resiliency_enabled_flag는 코딩된 비디오 시퀀스의 오류 복원 상태를 나타낸다. 1과 같은 sps_error_resiliency_flag는 CVS의 활성적 SPS가 [CodingToolSetC]의 사용을 활성화하지 않고, CVS의 활성적 PPS 또는 AU가 [CodingToolSetB]의 사용을 활성화하지 않음을 나타낸다. 0과 같은 sps_error_resiliency_flag는 이러한 인디케이션을 제공하지 않는다.
대안으로, 실시예는 다음과 같이 코딩된 비디오의 쉽게 액세스 가능한 고 레벨 구문에서 오류 복원 상태의 미리 정의된 리스트에 인덱스를 제공한다.
sps_error_resiliency_enabled_idx는 다음의 표에 따라 코딩된 비디오 시퀀스의 오류 복원 상태를 나타낸다.
AU = 액세스 유닛; PPS = 화상 파라미터 세트; SPS = 시퀀스 파라미터 세트, CVS = 코딩된 비디오 시퀀스임
여기서 리스트 [CodingToolSetA], [CodingToolSetB] 및 [CodingToolsSetC]는 다음과 같이 정의된다.
CodingToolSetA는 화상 레벨 상에서 오류 복원력을 해치는 도구를 포함하며, 즉, 이는 화상의 부분이 손실된 경우 성공적인 디코딩을 방지하는 화상 내의 종속성, 예를 들어 종속 CA 등을 도입한다.
CodingToolSetB는 다중 화상 레벨(즉, PPS의 범위) 상에서 오류 복원력을 해치는 도구를 포함하며, 즉, 이는 PPS를 참조하는 화상 간에 종속성을 도입함으로써, GOP 등의 가장 높은 시간적 계층에 속하는 화상과 같은 다수의 화상의 공동 엔트로피 코딩과 같은 잘못된 화상을 따르는 도구를 사용하여 PPS를 참조하는 화상 중 임의의 화상의 성공적인 디코딩을 방지하도록 한다.
CodingToolsSetC는 시퀀스 레벨(즉, SPS의 범위) 상에서 오류 복원력을 해치는 도구를 포함하며, 즉, 이는 랜덤 액세스 기간 내의 모든 화상 간에 종속성을 도입함으로써, 양자화기 스케일링 매트릭스, 엔트로피 코딩 초기화 등의 새로운 CVS를 시작하는 랜덤 액세스 포인트까지 잘못된 화상을 따르는 도구를 사용하여 도구를 사용하여 SPS를 참조하는 화상 중 임의의 화상의 성공적인 디코딩을 방지하도록 한다.
본 발명의 추가의 실시예에서, 인디케이션의 상이한 모드는 도구 세트를 활성화하는 구문 구조에 링크되지 않는다.
또한, CodingToolSetB의 범위는 제 1 화상으로부터 코딩 순서에 따르는 화상의 양으로 범위를 나타내는 추가의 시그널링에 의해 나타내어진다. 따라서, 본 실시예에서 CodingToolSetB는 다중 화상 레벨(각각의 화상은 범위 인디케이션에 의해 나타내어짐) 상에서 오류 복원력을 해치는 도구를 포함하며, 즉, 이는 나타내어진 화상 간에 종속성을 도입함으로써, GOP 등의 가장 높은 시간적 계층에 속하는 화상과 같은 다수의 화상의 공동 엔트로피 코딩과 같은 잘못된 화상을 따르는 도구 세트를 사용하여 화상 중 임의의 화상의 성공적인 디코딩을 방지하도록 한다.
상술한 내용을 요약하면: 일 실시예에 따르면, 데이터 인코더(110)는, 예를 들어, 인디케이션 데이터가 예를 들어 코딩된 비디오 시퀀스의 오류 복원력에 대한 정보를 포함할 수 있도록 인디케이션 데이터를 생성하기 위해 구성될 수 있다.
일 실시예에서, 오류 복원력에 대한 정보는 예를 들어 코딩된 비디오 시퀀스의 오류 복원력에 대한 3개 이상의 상이한 상태 중 하나를 나타낼 수 있다.
마찬가지로, 일 실시예에 따르면, 데이터 디코더(170)는 예를 들어 코딩된 비디오 시퀀스의 오류 복원력을 나타내는 정보를 수신하도록 구성될 수 있다. 데이터 디코더(170)는, 예를 들어, 코딩된 비디오 시퀀스의 오류 복원력을 나타내는 정보에 따라 인코딩된 화상 데이터를 디코딩하도록 구성될 수 있다.
일 실시예에서, 오류 복원력에 대한 정보는 예를 들어 코딩된 비디오 시퀀스의 오류 복원력에 대한 3개 이상의 상이한 상태 중 하나를 나타낼 수 있다.
특정 실시예에서, 3개 이상의 상이한 상태 중 제 1 상태는 예를 들어 액세스 유닛이 오류 복원력이 없음을 나타낼 수 있다. 3개 이상의 상이한 상태 중 제 2 상태는, 예를 들어, 화상 파라미터 세트의 제 1 복수의 액세스 유닛이 오류 복원력이 없음을 나타낼 수 있다. 3개 이상의 상이한 상태 중 제 3 상태는, 예를 들어, 시퀀스 파라미터 세트의 제 2 복수의 액세스 유닛이 오류 복원력이 없음을 나타낼 수 있다.
다른 특정 실시예에서, 오류 복원력에 대한 정보는, 예를 들어, 코딩된 비디오 시퀀스의 오류 복원력에 대한 4개 이상의 상이한 상태 중 하나를 나타낼 수 있다. 4개 이상의 상이한 상태 중 제 1 상태는, 예를 들어, 오류 복원력이 화상 레벨에서 손상되고, 다중 화상 레벨에서 손상되며, 시퀀스 레벨에서 손상됨을 나타낼 수 있다. 4개 이상의 상이한 상태 중 제 2 상태는, 예를 들어, 오류 복원력이 화상 레벨에서 손상되고, 다중 화상 레벨에서 손상되지만, 시퀀스 레벨에서는 손상되지 않음을 나타낼 수 있다. 4개 이상의 상이한 상태 중 제 3 상태는, 예를 들어, 오류 복원력이 화상 레벨에서 손상되지만, 오류 복원력이 다중 화상 레벨에서 손상되지 않고, 시퀀스 레벨에서 손상되지 않음을 나타낼 수 있다. 그리고 4개 이상의 상이한 상태 중 제 4 상태는, 예를 들어, 오류 복원력이 화상 레벨에서 손상되지 않고, 다중 화상 레벨에서 손상되지 않으며, 시퀀스 레벨에서 손상되지 않음을 나타낼 수 있다.
다음의 하위 섹션 "코딩 영역 데이터 단편화"에서, 코딩 영역 데이터 단편화가 설명된다.
타일처럼, CA는 또한 전송 계층에 대해 단편화될 수 있다. 이 경우에는 제한이 없다. 가능한 사용 케이스는 도 22, 도 23 및 도 24에 도시되어 있다.
도 22는 하나의 코딩 영역을 갖는 단일 화상을 포함하는 비트스트림을 도시하는 반면, CA는 다수의 전송 유닛으로 단편화된다.
도 23은 다수의 코딩 영역을 갖는 단일 화상을 포함하는 비트스트림을 도시하는 반면, 각각의 CA는 자체 전송 유닛을 갖는다.
도 24는 다수의 코딩 영역을 갖는 단일 화상을 포함하는 비트스트림을 도시하는 반면, 각각의 CA는 다수의 전송 유닛으로 단편화된다.
다음의 하위 섹션 "코딩 하위 영역 공간적 예측자 관리(coding sub-area spatial predictor management)"에서, 코딩 하위 영역 공간적 예측자 관리가 설명된다.
도 25는 일 실시예에 따른 영역에 의해 둘러싸인 블록의 일반화된 프레젠테이션을 도시한다.
일반화된 접근 방식에서, 코딩 블록은 8개의 주요 공간 영역에 의해 둘러싸일 수 있다(도 25 참조).
다음의 하위 섹션 "일반 예측자 관리"에서, 일반 예측자 관리가 설명된다.
8개의 모든 이웃 영역의 후보(candidate)는 예측 후보 리스트에 포함될 수 있다. 이는 각각 가용성에 대해 간단한 방식(straightforward manner)으로 선택될 수 있다. 예를 들어, 특정 하위 블록 처리 순서를 갖는 하위 블록으로의 추가의 분할을 포함할 수 있는 CTU의 경우와 특정 가용성 시나리오로 인해, 하위 블록의 순서가 정렬될 수 있다. 예를 들어, 이웃 AD, D, DC 및 C만이 이용 가능한 경우, 이러한 이웃에 인접한 하위 블록이 먼저 처리되어야 한다.
요약하면, 일 실시예에 따르면, 데이터 인코더(110)는, 예를 들어, 화상 내에 위치되는 복수의 코딩 트리 유닛 중 8개의 이웃한 코딩 트리 유닛 중 하나 이상의 코딩 트리 유닛에 따라 화상 내에 위치되는 복수의 코딩 트리 유닛 중 하나의 코딩 트리 유닛을 인코딩하도록 구성될 수 있으며, 8개의 이웃한 코딩 트리 유닛은 상기 코딩 트리 유닛에 인접해 있다.
마찬가지로, 일 실시예에서, 데이터 디코더(170)는, 예를 들어, 화상 내에 위치되는 복수의 코딩 트리 유닛 중 8개의 이웃한 코딩 트리 유닛 중 하나 이상의 코딩 트리 유닛에 따라 화상 내에 위치되는 복수의 코딩 트리 유닛 중 하나의 코딩 트리 유닛을 디코딩하도록 구성될 수 있으며, 8개의 이웃한 코딩 트리 유닛은 상기 코딩 트리 유닛에 인접해 있다.
다음의 하위 섹션 "이웃의 공간적 적응(spatial adaptation of neighbors)"에서, 이웃의 공간적 적응이 설명된다.
일부 특정 이웃 시나리오는 상응하는 이웃 영역 또는 예측자의 일부 적응에 의해 기존의 하위 블록 처리 순서를 허용한다. 일 실시예에서, 적응은, 예를 들어, 상응하는 이웃 영역의 회전을 포함할 수 있고, 필요한 경우 코딩 블록이 90°단계씩 단계적으로 회전하는 것을 포함할 수 있다. 예를 들어, 도면에서, 이웃 AD, D, DC, C, BC만이 이용 가능하다면, 이들 이웃의 회전과 필요한 경우 코딩 블록의 180° 회전이 수행될 수 있다. 이것은 논리적 회전일뿐만 아니라 샘플 또는 구문 요소와 같은 버퍼링된 데이터를 새로운 버퍼링된 상태로 변환하는 것과 같은 메모리 동작일 수 있다.
좌표 변환은 또한 수평 또는 수직 플립(flip)을 포함할 수 있으며, 이는 상이한 예측 후보 순서를 초래한다.
요약하면, 일 실시예에서, 데이터 인코더(110)는, 예를 들어, 8개의 이웃한 코딩 트리 유닛 중 하나의 코딩 트리 유닛을 8개의 이웃한 코딩 트리 유닛 중 다른 하나의 코딩 트리 유닛으로 시프트함으로써 화상 내에 위치되는 복수의 코딩 트리 유닛 중 하나의 코딩 트리 유닛을 인코딩하도록 구성될 수 있다.
마찬가지로, 일 실시예에 따르면, 데이터 디코더(170)는, 예를 들어, 8개의 이웃한 코딩 트리 유닛 중 하나의 코딩 트리 유닛을 8개의 이웃한 코딩 트리 유닛 중 다른 하나의 코딩 트리 유닛으로 시프트함으로써 화상 내에 위치되는 복수의 코딩 트리 유닛 중 하나의 코딩 트리 유닛을 디코딩하도록 구성될 수 있다.
다음의 하위 섹션 "이용 가능하지 않은 이웃에 대한 대체 개념(replacement concept for non-available neighbors)"에서, 이용 가능하지 않은 이웃에 대한 대체 개념이 설명된다.
어떤 경우에, 공간적 이웃은 예측에 사용할 수 없다. 이러한 경우, 도출 알고리즘은 예측에 사용할 수 있는 상이한 이웃을 사용하거나 알고리즘이 비트스트림에서 명시적으로 송신되거나 이전에 코딩된 심볼 또는 재구성된 값으로부터 도출된 값을 사용함으로써 값을 도출하기 위해 어떤 종류의 폴백(fallback)을 사용한다.
특정 실시예에서, 예측에 이용 가능하지 않은 공간적 이웃은, 예를 들어, 이용 가능하다면 현재 블록 아래의 공간적 이웃으로부터의 이웃으로 대체될 수 있다.
그렇지 않으면, 현재 블록 아래의 공간적 예측자가 이용 가능하지 않는 경우. 디폴트 폴 백(default fall back)이 사용된다.
다음에서, 본 문맥에서 '왼쪽 아래 확장(extended-below-left)'이라는 용어는 현재 블록의 하단 왼쪽 샘플이 현재 CTU의 하단 샘플 라인에 위치되는 특별한 경우를 제외하고 현재 블록 바로 아래 왼쪽에 위치된 0의 정의에 따른 블록으로서 정의된다. 이러한 특별한 경우, 현재 블록의 왼쪽 아래 확장 이웃은 제안된 블록 종속성 오프셋에 따른 예측에 사용할 수 있는 다음 CTU 라인의 CTU의 오른쪽 상단 블록이다.
예를 들어, 현재 최신 기술 표준 0의 QP 예측 방식은 주어진 fallBackQP와 함께 다음의 도출 방식을 사용한다.
A =(isLeftCUavailble? CULeftQP: fallBackQP)
B =(isAboveCUavailble? CUAboveQP: fallBackQP)
PredictedQP =(A+B+1) >> 1
특정 실시예에서, 예측 방식은 왼쪽 CU resp.의 경우 왼쪽 아래 확장 CU의 QP를 사용하도록 확장된다. 상술한 CU는 예측에 사용할 수 없지만, 왼쪽 아래 확장 CU는 예측에 사용할 수 있다. 일반적 이웃 CU 또는 왼쪽 아래 확장 CU 중 어느 것도 예측에 사용할 수 없는 경우, fallBackQP가 대신에 A resp. B에 대한 값을 도출하는 데 사용된다.
A =(isLeftCUavailble? CULeftQP:(isExtendedBelowLeftCUavailble? CUExtendedBelowLeftQP: fallBackQP))
B =(isAboveCUavailble? CUAboveQP:(isExtendedBelowLeftCUavailble? CUExtendedBelowLeftQP: fallBackQP))
PredictedQP =(A+B+1) >> 1
그러나, 이러한 종류의 예측 방식은 보편적이며, 왼쪽 및 위의 이웃으로부터의 예측 데이터를 사용하는 모든 예측 방식에 적용할 수 있다.
특히,
CABAC CTX CU split_flag의 도출
CABAC CTX affine_flag의 도출
CABAC CTX skip_flag의 도출
CABAC CTX imv_flag의 도출
CABAC CTX bt_split_flag의 도출
CABAC CTX intra_nn_flag의 도출
또한, 본 발명의 예측 방식은 특정 예측자의 도출을 위한 규범적 디코딩 프로세스, 예를 들어 모션 벡터 성분(motion vector component) 및 기준 인덱스(reference indice)에 대한 도출 프로세스 또는 루마 인트라 예측 모드에 대한 도출 프로세스에 사용될 수도 있다.
요약하면, 일 실시예에 따르면, 상기 8개의 이웃한 코딩 트리 유닛은 제 1 이웃이고, 데이터 인코더(110)는, 예를 들어, 제 2 이웃의 다른 8개의 이웃한 코딩 트리 유닛 중 제 3 코딩 트리 유닛을 제 1 이웃의 8개의 이웃한 코딩 트리 유닛 중 제 2 코딩 트리 유닛으로 시프트함으로써 복수의 코딩 트리 유닛 중 상기 코딩 트리 유닛을 인코딩하도록 구성될 수 있으며, 제 1 이웃의 8개의 이웃한 코딩 트리 유닛의 상기 제 2 코딩 트리 유닛이 이용 불가능한 경우, 제 2 이웃의 상기 다른 8개의 이웃한 코딩 트리 유닛은 상기 제 2 코딩 트리 유닛에 이웃한다.
마찬가지로, 일 실시예에서, 8개의 이웃한 코딩 트리 유닛은, 예를 들어, 제 1 이웃일 수 있고, 데이터 디코더(170)는, 예를 들어, 제 2 이웃의 다른 8개의 이웃한 코딩 트리 유닛 중 제 3 코딩 트리 유닛을 제 1 이웃의 8개의 이웃한 코딩 트리 유닛 중 제 2 코딩 트리 유닛으로 시프트함으로써 화상 내에 위치되는 복수의 코딩 트리 유닛 중 하나의 코딩 트리 유닛을 디코딩하도록 구성될 수 있으며, 제 1 이웃의 8개의 이웃한 코딩 트리 유닛의 상기 제 2 코딩 트리 유닛이 이용 불가능한 경우, 제 2 이웃의 상기 다른 8개의 이웃한 코딩 트리 유닛은 상기 제 2 코딩 트리 유닛에 이웃한다.
또한, 화상을 인코딩하는 인코딩된 비디오 신호가 제공되며, 여기서 인코딩된 비디오 신호는 인코딩된 화상 데이터 및 인디케이션 데이터를 포함하며, 여기서 화상은 복수의 코딩 영역으로 분할되고, 여기서 복수의 코딩 영역의 각각의 코딩 영역은 화상 내에 위치되며, 여기서 복수의 코딩 영역의 각각은 화상 내에 위치되는 복수의 코딩 트리 유닛 중 하나 이상의 코딩 트리 유닛을 포함하고, 여기서 화상은 복수의 코딩 영역에 따라 인코딩되고, 여기서 인디케이션 데이터는 복수의 코딩 영역 상의 정보를 포함하고, 여기서 복수의 코딩 영역 중 하나 이상의 코딩 영역은 복수의 코딩 트리 유닛 중 2개 이상의 코딩 트리 유닛을 포함하고, 여기서 2개 이상의 코딩 트리 유닛을 포함하는 하나 이상의 코딩 영역 중 각각의 코딩 영역은 상기 코딩 영역의 2개 이상의 코딩 트리 유닛에 대한 코딩 순서를 나타내며, 여기서 화상은 2개 이상의 코딩 트리 유닛을 포함하는 하나 이상의 코딩 영역의 코딩 순서에 따라 인코딩되며, 여기서 인디케이션 데이터는 2개 이상의 코딩 트리 유닛을 포함하는 하나 이상의 코딩 영역의 코딩 순서에 대한 정보를 포함한다.
일 실시예에 따르면, 복수의 코딩 영역 중 각각의 코딩 영역은 화상 내에서 직사각형으로 확장되고, 여기서 복수의 코딩 영역의 각각의 하나 이상의 코딩 트리 유닛 중 각각의 코딩 트리 유닛은 화상 내에서 직사각형으로 확장된다.
일 실시예에서, 복수의 코딩 트리 유닛의 각각은 화상 내의 수평 위치 및 화상 내의 수직 위치를 가지며, 복수의 코딩 영역 중 제 1 코딩 영역은 복수의 코딩 영역 중 상이한 제 2 코딩 영역의 상이한 제 2 코딩 트리 유닛의 제 2 수직 위치와 동일한 제 1 수직 위치를 갖는 제 1 코딩 트리 유닛을 포함하고, 제 1 코딩 영역의 제 3 코딩 트리 유닛은 제 2 코딩 영역의 임의의 다른 코딩 트리 유닛의 수직 위치와 상이한 제 3 수직 위치를 가지며, 제 2 코딩 영역의 제 4 코딩 트리 유닛은 제 1 코딩 영역의 임의의 다른 코딩 트리 유닛의 수직 위치와 상이한 제 4 수직 위치를 가지거나, 여기서 복수의 코딩 영역 중 제 1 코딩 영역은 복수의 코딩 영역 중 상이한 제 2 코딩 영역의 상이한 제 2 코딩 트리 유닛의 제 2 수평 위치와 동일한 제 1 수평 위치를 갖는 제 1 코딩 트리 유닛을 포함하고, 제 1 코딩 영역의 제 3 코딩 트리 유닛은 제 2 코딩 영역의 임의의 다른 코딩 트리 유닛의 수평 위치와 상이한 제 3 수평 위치를 가지며, 제 2 코딩 영역의 제 4 코딩 트리 유닛은 제 1 코딩 영역의 임의의 다른 코딩 트리 유닛의 수평 위치와 상이한 제 4 수평 위치를 갖는다.
일 실시예에 따르면, 복수의 코딩 영역의 각각의 코딩 영역은, 예를 들어, 상기 코딩 영역의 위치, 폭 및 높이를 포함하는 공간적 특성을 나타낼 수 있으며, 여기서 상기 코딩 영역의 폭 및 높이는 상기 코딩 영역의 직사각형 확장에 의존하고, 여기서 상기 코딩 영역의 위치는 화상 내의 상기 코딩 영역의 위치에 의존한다.
일 실시예에서, 복수의 코딩 영역 중 제 1 코딩 영역의 제 1 높이는, 예를 들어, 복수의 코딩 영역 중 제 2 코딩 영역의 제 2 높이와 상이할 수 있거나, 여기서 복수의 코딩 영역 중 제 1 코딩 영역의 제 1 폭은 복수의 코딩 영역 중 제 2 코딩 영역의 제 2 폭과 상이하다.
일 실시예에 따르면, 인디케이션은, 예를 들어, 복수의 코딩 영역의 각각의 코딩 영역의 공간적 특성에 대한 정보를 포함할 수 있다.
일 실시예에서, 인디케이션 데이터는, 예를 들어, 복수의 코딩 영역의 각각의 코딩 영역의 위치, 폭 및 높이를 포함할 수 있다.
일 실시예에 따르면, 복수의 코딩 영역의 각각의 화상 부분의 이미지 데이터는, 예를 들어, 인코딩된 비디오 신호 내의 인코딩된 화상 데이터를 획득하기 위해 복수의 코딩 영역 중 임의의 다른 코딩 영역의 화상 부분의 이미지 데이터를 인코딩하는 것과 독립적으로 인코딩될 수 있다.
일 실시예에서, 화상 부분은, 예를 들어, 인코딩된 화상 데이터를 획득하기 위해 복수의 코딩 영역의 각각의 코딩 영역 내의 화상 부분의 이미지 데이터를 인코딩함으로써 인코딩될 수 있으며, 여기서 복수의 코딩 영역 중 적어도 하나의 화상 부분의 이미지 데이터는 복수의 코딩 영역 중 상기 적어도 하나의 이미지 데이터의 인코딩이 복수의 코딩 영역 중 적어도 다른 하나의 이미지 데이터의 인코딩에 의존하도록 인코딩된 비디오 신호 내에서 인코딩된다.
일 실시예에 따르면, 인코딩된 비디오 신호는 예를 들어 비트스트림을 포함할 수 있으며, 여기서 비트스트림은 인코딩된 화상 데이터 및 인디케이션 데이터를 포함한다.
일 실시예에서, 인디케이션 데이터는, 예를 들어, 왼쪽 상단 코딩 트리 유닛의 어드레스가 지정되는지에 대한 각각의 코딩 영역에 대한 정보를 포함할 수 있다.
일 실시예에 따르면, 인디케이션 데이터는, 예를 들어, 복수의 코딩 영역의 수 또는 복수의 코딩 영역의 수 - 1 또는 복수의 코딩 영역의 수 - 2에 대한 정보를 포함할 수 있다.
일 실시예에서, 인디케이션 데이터는, 예를 들어, 복수의 코딩 영역 중 다른 하나에 이어지는 복수의 코딩 영역 중 하나에 대해 상기 복수의 코딩 영역 중 하나가 상기 복수의 코딩 영역 중 다른 하나에 의존하는지를 나타낼 수 있다.
일 실시예에 따르면, 인디케이션 데이터는, 예를 들어, 복수의 슬라이스 중 정확히 하나의 슬라이스가 복수의 코딩 영역 중 정확히 하나의 코딩 영역에 할당되는지를 나타낼 수 있다.
일 실시예에서, 인디케이션 데이터는, 예를 들어, 인디케이션 데이터가 복수의 코딩 영역의 하나 이상의 코딩 트리 유닛의 각각 내에서 스캔하는 방법에 대한 정보를 포함하는지를 나타낼 수 있다.
일 실시예에 따르면, 인디케이션 데이터는, 예를 들어, 복수의 코딩 영역의 하나 이상의 코딩 트리 유닛의 각각 내에서 스캔하는 방법을 나타낼 수 있다.
일 실시예에서, 인디케이션 데이터는, 예를 들어, 코딩 영역이 하나 이상의 코딩 트리 유닛을 포함하는지를 복수의 코딩 영역의 각각에 대해 나타낼 수 있다.
일 실시예에 따르면, 인디케이션 데이터는, 예를 들어, 코딩 트리 유닛 스캔이 가장 왼쪽 코딩 트리 유닛으로 시작되는지 또는 코딩 트리 유닛 스캔이 가장 오른쪽 코딩 트리 유닛으로 시작되는지를 복수의 코딩 영역 중 하나에 대해 나타낼 수 있다.
일 실시예에서, 인디케이션 데이터는, 예를 들어, 코딩 트리 유닛 스캔이 코딩 영역의 상단 코딩 트리 유닛 행으로 시작되는지 또는 코딩 트리 유닛 스캔이 코딩 영역의 하단 코딩 트리 유닛 행으로 시작되는지를 복수의 코딩 영역 중 하나에 대해 나타낼 수 있다.
일 실시예에서, 인디케이션 데이터는, 예를 들어, 코딩 트리 유닛 스캔이 수평 방향으로 시작되는지 또는 코딩 트리 유닛 스캔이 수직 방향으로 시작되는지를 복수의 코딩 영역 중 하나에 대해 나타낼 수 있다.
일 실시예에 따르면, 인디케이션 데이터는, 예를 들어, 복수의 코딩 영역 중 적어도 하나가 복수의 코딩 영역 중 다른 하나를 둘러싸고 있는지 또는 복수의 코딩 영역 중 어느 것도 코딩 영역 중 다른 하나를 둘러싸지 않는지를 나타내는 비연속적 정보를 나타낼 수 있다.
일 실시예에 따르면, 인디케이션 데이터는, 예를 들어, 코딩 영역 중 하나 내에서 수평 방향으로 배치되는 코딩 트리 유닛의 수를 지정하는 코딩 트리 유닛의 코딩 영역 폭을 복수의 코딩 영역 중 하나에 대해 나타낼 수 있다.
일 실시예에서, 인디케이션 데이터는, 예를 들어, 코딩 영역 중 하나 내에서 수직 방향으로 배치되는 코딩 트리 유닛의 수를 지정하는 코딩 트리 유닛의 코딩 영역 높이를 복수의 코딩 영역 중 하나에 대해 나타낼 수 있다.
일 실시예에 따르면, 인디케이션 데이터는, 예를 들어, 상기 코딩 영역 내의 수평 방향의 마지막 코딩 트리 유닛이 수평 방향의 상기 코딩 트리 유닛에 선행하는 상기 코딩 영역의 다른 코딩 트리 유닛보다 작은지를 복수의 코딩 영역 중 하나의 코딩 영역에 대해 나타낼 수 있다.
특정 실시예에서, 상기 코딩 영역은, 예를 들어, 수평 방향의 복수의 마지막 코딩 트리 유닛을 포함할 수 있고, 수평 방향의 상기 마지막 코딩 트리 유닛은 수평 방향의 상기 복수의 마지막 코딩 트리 유닛 중 하나이다. 상기 코딩 영역 내의 수평 방향의 상기 마지막 코딩 트리 유닛이 수평 방향의 상기 마지막 코딩 트리 유닛에 선행하는 상기 코딩 영역의 상기 다른 코딩 트리 유닛보다 작다면, 수평 방향의 복수의 마지막 코딩 트리 유닛의 각각은 예를 들어 동일한 폭을 가질 수 있다.
일 실시예에서, 인디케이션 데이터는, 예를 들어, 상기 코딩 영역 내의 수직 방향의 마지막 코딩 트리 유닛이 수직 방향으로 상기 코딩 트리 유닛에 선행하는 상기 코딩 영역의 다른 코딩 트리 유닛보다 작은지를 복수의 코딩 영역 중 하나의 코딩 영역에 대해 나타낼 수 있다.
특정 실시예에서, 상기 코딩 영역은, 예를 들어, 수직 방향의 복수의 마지막 코딩 트리 유닛을 포함할 수 있고, 수직 방향의 상기 마지막 코딩 트리 유닛은 수직 방향의 상기 복수의 마지막 코딩 트리 유닛 중 하나이다. 상기 코딩 영역 내의 수직 방향의 상기 마지막 코딩 트리 유닛이 수직 방향의 상기 마지막 코딩 트리 유닛에 선행하는 상기 코딩 영역의 상기 다른 코딩 트리 유닛보다 작다면, 수직 방향의 복수의 마지막 코딩 트리 유닛의 각각은 예를 들어 동일한 높이를 가질 수 있다.
일 실시예에서, 인디케이션 데이터는, 예를 들어, 상기 코딩 영역의 하나 이상의 코딩 트리 유닛 중 하나를 나타내는 시작 어드레스가 나타내어지는지 또는 상기 코딩 영역의 상기 하나 이상의 코딩 트리 유닛 중 하나를 나타내는 시작 어드레스가 나타내어지지 않는지를 코딩 영역에 대해 나타낼 수 있다.
일 실시예에 따르면, 인디케이션 데이터는, 예를 들어, 화상을 한번 이상 스플릿함으로써 복수의 코딩 영역을 획득하기 위해 화상을 한번 이상 스플릿하는 방법을 나타낼 수 있다.
일 실시예에서, 인디케이션 데이터는 예를 들어 복수의 코딩 영역 스플릿 위치를 나타낼 수 있다.
일 실시예에 따르면, 인디케이션 데이터는 예를 들어, 복수의 코딩 영역 스플릿 위치를 정렬된 시퀀스로서 나타낼 수 있다.
일 실시예에서, 인디케이션 데이터는, 예를 들어, 복수의 코딩 영역 스플릿 위치를 복수의 코딩 영역 스플릿 위치 값으로서 나타낼 수 있으며, 여기서 복수의 코딩 영역 스플릿 위치 값의 각각은 화상의 폭에 의존하거나 화상의 높이에 의존한다.
일 실시예에 따르면, 인디케이션 데이터는, 예를 들어, 화상을 한번 이상 계층적으로 스플릿함으로써 복수의 코딩 영역을 획득하기 위해 화상을 한번 이상 계층적으로 스플릿하는 방법을 나타낼 수 있다.
일 실시예에서, 인디케이션 데이터는, 예를 들어, 하나 이상의 코딩 영역 중 하나의 코딩 영역에 대한 하나 이상의 영역 열 정지 플래그를 포함할 수 있으며, 여기서, 하나 이상의 코딩 영역 중 하나의 코딩 영역의 영역 열 정지 플래그가 정지 값으로 설정되면, 상기 영역 열 정지 플래그는 예를 들어 상기 코딩 영역의 폭을 나타낼 수 있다. 또는, 인디케이션 데이터는, 예를 들어, 하나 이상의 코딩 영역 중 하나의 코딩 영역에 대한 하나 이상의 영역 라인 정지 플래그를 포함할 수 있으며, 여기서, 하나 이상의 코딩 영역 중 하나의 코딩 영역의 영역 라인 정지 플래그가 정지 값으로 설정되면, 상기 영역 라인 정지 플래그는 예를 들어 상기 코딩 영역의 높이를 나타낼 수 있다.
일 실시예에 따르면, 인디케이션 데이터는, 예를 들어, 명시적 시그널링 모드가 활성적인지 또는 명시적 시그널링 모드가 비활성적인지를 나타낼 수 있다. 명시적 시그널링 모드가 활성적이고, 코딩 영역의 하나 이상의 코딩 트리 유닛 중 하나의 코딩 트리 유닛이 화상의 화상 경계에 위치되는 경우, 인디케이션 데이터는, 예를 들어, 상기 코딩 트리 유닛에 대한 영역 열 정지 플래그 및 영역 라인 정지 플래그 중 적어도 하나를 포함할 수 있다. 명시적 시그널링 모드가 비활성적이고, 코딩 영역의 하나 이상의 코딩 트리 유닛 중 상기 코딩 트리 유닛이 화상의 상기 화상 경계에 위치되는 경우, 인디케이션 데이터는 상기 코딩 트리 유닛에 대한 영역 열 정지 플래그를 포함하지 않고/않거나 상기 코딩 트리 유닛에 대한 영역 라인 정지 플래그를 포함하지 않는다.
일 실시예에 따르면, 2개 이상의 코딩 트리 유닛을 포함하는 하나 이상의 코딩 영역의 각각의 코딩 영역의 코딩 순서는 래스터 스캔에 의존하며, 여기서 인디케이션 데이터는, 예를 들어, 래스터 스캔이 2개 이상의 코딩 트리 유닛을 포함하는 하나 이상의 코딩 영역의 각각의 코딩 영역을 인코딩하기 위해 사용되었음을 나타낼 수 있는 정보를 포함한다.
일 실시예에서, 인디케이션 데이터는, 예를 들어, 대각선 스캔이 2개 이상의 코딩 트리 유닛을 포함하는 하나 이상의 코딩 영역의 각각의 코딩 영역을 인코딩하기 위해 사용되었음을 나타낼 수 있는 정보를 포함한다.
일 실시예에 따르면, 인디케이션 데이터는, 예를 들어, z 스캔이 5개 이상의 코딩 트리 유닛을 포함하는 하나 이상의 코딩 영역의 각각의 상기 영역을 인코딩하기 위해 사용되었음을 나타낼 수 있다.
일 실시예에서, 인디케이션 데이터는 예를 들어 하나 이상의 스캔 방향을 포함하는 스캔 순서를 나타낼 수 있다.
일 실시예에 따르면, 인디케이션 데이터는, 예를 들어, 하나 이상의 스캔 방향 중 선택된 스캔 방향을 나타낼 수 있는 인덱스를 나타낼 수 있다.
일 실시예에서, 인디케이션 데이터는 코딩된 비디오 시퀀스의 오류 복원력에 대한 정보를 포함한다.
일 실시예에 따르면, 오류 복원력에 대한 정보는, 예를 들어, 코딩된 비디오 시퀀스의 오류 복원력에 대한 3개 이상의 상이한 상태 중 하나를 나타낼 수 있다.
일 실시예에서, 3개 이상의 상이한 상태 중 제 1 상태는 예를 들어 액세스 유닛이 오류 복원력이 없음을 나타낼 수 있다. 3개 이상의 상이한 상태 중 제 2 상태는, 예를 들어, 화상 파라미터 세트의 제 1 복수의 액세스 유닛이 오류 복원력이 없음을 나타낼 수 있다. 3개 이상의 상이한 상태 중 제 3 상태는, 예를 들어, 시퀀스 파라미터 세트의 제 2 복수의 액세스 유닛이 오류 복원력이 없음을 나타낼 수 있다.
다른 실시예에서, 오류 복원력에 대한 정보는, 예를 들어, 코딩된 비디오 시퀀스의 오류 복원력에 대한 4개 이상의 상이한 상태 중 하나를 나타낼 수 있다. 4개 이상의 상이한 상태 중 제 1 상태는, 예를 들어, 오류 복원력이 화상 레벨에서 손상되고, 다중 화상 레벨에서 손상되며, 시퀀스 레벨에서 손상됨을 나타낼 수 있다. 4개 이상의 상이한 상태 중 제 2 상태는, 예를 들어, 오류 복원력이 화상 레벨에서 손상되고, 다중 화상 레벨에서 손상되지만, 시퀀스 레벨에서는 손상되지 않음을 나타낼 수 있다. 4개 이상의 상이한 상태 중 제 3 상태는, 예를 들어, 오류 복원력이 화상 레벨에서 손상되지만, 오류 복원력이 다중 화상 레벨에서 손상되지 않고, 시퀀스 레벨에서 손상되지 않음을 나타낼 수 있다. 그리고 4개 이상의 상이한 상태 중 제 4 상태는, 예를 들어, 오류 복원력이 화상 레벨에서 손상되지 않고, 다중 화상 레벨에서 손상되지 않으며, 시퀀스 레벨에서 손상되지 않음을 나타낼 수 있다.
일부 양태가 장치와 관련하여 설명되었지만, 이러한 양태는 또한 상응하는 방법의 설명을 나타낸다는 것이 자명하며, 여기서 블록 또는 디바이스는 방법 단계 또는 방법 단계의 특징에 상응한다. 유사하게는, 방법 단계와 관련하여 설명된 양태는 또한 상응하는 장치의 상응하는 블록 또는 항목 또는 특징의 설명을 나타낸다. 방법 단계 중 일부 또는 전부는 예를 들어 마이크로 프로세서, 프로그램 가능한 컴퓨터 또는 전자 회로와 같은 하드웨어 장치에 의해 (또는 사용하여) 실행될 수 있다. 일부 실시예에서, 하나 이상의 가장 중요한 방법 단계는 이러한 장치에 의해 실행될 수 있다.
특정 구현 요구 사항에 따라, 본 발명의 실시예는 하드웨어 또는 소프트웨어 또는 적어도 부분적으로 하드웨어 또는 적어도 부분적으로 소프트웨어로 구현될 수 있다. 구현은 플로피 디스크, DVD, Blu-Ray, CD, ROM, PROM, EPROM, EEPROM 또는 FLASH 메모리와 같은 디지털 저장 매체를 사용하여 수행될 수 있으며, 이러한 매체는 전자식으로 판독 가능한 제어 신호를 저장하며, 각각의 방법이 수행되도록 프로그램 가능한 컴퓨터 시스템과 협력한다(또는 협력할 수 있다). 따라서, 디지털 저장 매체는 컴퓨터 판독 가능할 수 있다.
본 발명에 따른 일부 실시예는 본 명세서에 설명된 방법 중 하나가 수행되도록 프로그램 가능한 컴퓨터 시스템과 협력할 수 있는 전자식으로 판독 가능한 제어 신호를 갖는 데이터 캐리어를 포함한다.
일반적으로, 본 발명의 실시예는 프로그램 코드를 갖는 컴퓨터 프로그램 제품으로서 구현될 수 있으며, 프로그램 코드는 컴퓨터 프로그램 제품이 컴퓨터 상에서 실행될 때 방법 중 하나를 수행하기 위해 동작한다. 프로그램 코드는 예를 들어 기계 판독 가능한 캐리어 상에 저장될 수 있다.
다른 실시예는 기계 판독 가능 캐리어 상에 저장된 본 명세서에 설명된 방법 중 하나를 수행하기 위한 컴퓨터 프로그램을 포함한다.
다시 말하면, 본 발명의 방법의 실시예는 컴퓨터 프로그램이 컴퓨터 상에서 실행될 때 본 명세서에 설명된 방법 중 하나를 수행하기 위한 프로그램 코드를 갖는 컴퓨터 프로그램이다.
따라서, 본 발명의 방법의 추가의 실시예는 본 명세서에 설명된 방법 중 하나를 수행하기 위한 컴퓨터 프로그램을 포함하는 데이터 캐리어(또는 디지털 저장 매체 또는 컴퓨터 판독 가능 매체)이다. 데이터 캐리어, 디지털 저장 매체 또는 기록된 매체는 일반적으로 유형적(tangible) 및/또는 비일시적(non-transitory)이다.
따라서, 본 발명의 방법의 추가의 실시예는 본 명세서에 설명된 방법 중 하나를 수행하기 위한 컴퓨터 프로그램을 나타내는 데이터 스트림 또는 신호의 시퀀스이다. 데이터 스트림 또는 신호의 시퀀스는 예를 들어 데이터 통신 연결을 통해, 예를 들어 인터넷을 통해 전송되도록 구성될 수 있다.
추가의 실시예는 본 명세서에 설명된 방법 중 하나를 수행하도록 구성되거나 적응된 처리 수단, 예를 들어 컴퓨터, 또는 프로그래밍 가능한 논리 디바이스를 포함한다.
추가의 실시예는 본 명세서에 설명된 방법 중 하나를 수행하기 위한 컴퓨터 프로그램을 설치한 컴퓨터를 포함한다.
본 발명에 따른 추가의 실시예는 본 명세서에 설명된 방법 중 하나를 수행하기 위한 컴퓨터 프로그램을 수신기로 (예를 들어, 전자식으로 또는 광학적으로) 전송하도록 구성된 장치 또는 시스템을 포함한다. 수신기는 예를 들어 컴퓨터, 모바일 디바이스, 메모리 디바이스 등일 수 있다. 장치 또는 시스템은 예를 들어 컴퓨터 프로그램을 수신기로 전송하기 위한 파일 서버를 포함할 수 있다.
일부 실시예에서, 프로그래밍 가능한 논리 디바이스(예를 들어, 필드 프로그래밍 가능한 게이트 어레이)는 본 명세서에 설명된 방법의 기능의 일부 또는 전부를 수행하는 데 사용될 수 있다. 일부 실시예에서, 필드 프로그래밍 가능한 게이트 어레이는 본 명세서에 설명된 방법 중 하나를 수행하기 위해 마이크로 프로세서와 협력할 수 있다. 일반적으로, 방법은 바람직하게는 임의의 하드웨어 장치에 의해 수행된다.
본 명세서에 설명된 장치는 하드웨어 장치를 사용하거나, 컴퓨터를 사용하거나, 하드웨어 장치와 컴퓨터의 조합을 사용하여 구현될 수 있다.
본 명세서에 설명된 방법은 하드웨어 장치를 사용하거나, 컴퓨터를 사용하거나, 하드웨어 장치와 컴퓨터의 조합을 사용하여 수행될 수 있다.
상술한 실시예는 본 발명의 원리에 대한 예시일 뿐이다. 본 명세서에 설명된 배치 및 상세 사항의 수정 및 변경은 통상의 기술자에게는 명백할 것임이 이해된다. 따라서, 본 명세서의 실시예의 기술 및 설명에 의해 제시된 특정 상세 사항이 아니라 임박한 특허 청구항의 범위에 의해서만 제한되는 것이다.
참고 문헌
[1] ISO/IEC, ITU-T. High efficiency video coding. ITU-T Recommendation H.265 | ISO/IEC 23008 10 (HEVC), edition 1, 2013; edition 2, 2014.
[2] European Patent Application, Application No. EP 18165249.6; filed on 29 March 2018.
Claims (160)
- 인코딩된 비디오 신호를 생성하여 화상을 인코딩하는 비디오 인코더(101)에 있어서,
비디오의 화상을 인코딩된 화상 데이터로 인코딩하기 위해 구성된 데이터 인코더(110)로서, 인디케이션 데이터(indication data)를 생성하도록 더 구성된, 상기 데이터 인코더(110), 및
상기 인코딩된 화상 데이터 및 상기 인디케이션 데이터를 포함하는 상기 인코딩된 비디오 신호를 생성하기 위해 구성된 신호 생성기(120)를 포함하는데,
상기 화상은 복수의 코딩 영역으로 분할되고, 상기 복수의 코딩 영역의 각각의 코딩 영역은 화상 내에 위치되고, 상기 복수의 코딩 영역의 각각은 상기 화상 내에 위치되는 복수의 코딩 트리 유닛 중 하나 이상의 코딩 트리 유닛을 포함하고, 상기 데이터 인코더(110)는 상기 복수의 코딩 영역에 따라 상기 화상을 인코딩하도록 구성되고, 상기 데이터 인코더(110)는 상기 인디케이션 데이터가 상기 복수의 코딩 영역에 대한 정보를 포함하도록 상기 인디케이션 데이터를 생성하게 구성되며,
상기 복수의 코딩 영역 중 하나 이상의 코딩 영역은 상기 복수의 코딩 트리 유닛 중 2개 이상의 코딩 트리 유닛을 포함하고, 2개 이상의 코딩 트리 유닛을 포함하는 상기 하나 이상의 코딩 영역의 각각의 코딩 영역은 상기 코딩 영역의 상기 2개 이상의 코딩 트리 유닛에 대한 코딩 순서를 나타내고, 상기 데이터 인코더(110)는 2개 이상의 코딩 트리 유닛을 포함하는 상기 하나 이상의 코딩 영역의 코딩 순서에 따라 상기 화상을 인코딩하도록 구성되고, 상기 데이터 인코더(110)는 상기 인디케이션 데이터가 2개 이상의 코딩 트리 유닛을 포함하는 상기 하나 이상의 코딩 영역의 코딩 순서에 대한 정보를 포함하도록 상기 인디케이션 데이터를 생성하게 구성되고,
상기 데이터 인코더(110)는, 상기 인디케이션 데이터가 상기 복수의 코딩 영역 중 하나의 코딩 영역에 대해,
상기 코딩 영역 내의 수평 방향의 마지막 코딩 트리 유닛이 상기 수평 방향의 상기 코딩 트리 유닛에 선행하는 상기 코딩 영역의 다른 코딩 트리 유닛보다 작은지 여부 - 상기 코딩 영역은 상기 수평 방향의 복수의 마지막 코딩 트리 유닛을 포함하고, 상기 수평 방향의 상기 마지막 코딩 트리 유닛은 상기 수평 방향의 상기 복수의 마지막 코딩 트리 유닛 중 하나이고, 상기 코딩 영역 내의 상기 수평 방향의 상기 마지막 코딩 트리 유닛이 상기 수평 방향의 상기 마지막 코딩 트리 유닛에 선행하는 상기 코딩 영역의 상기 다른 코딩 트리 유닛보다 작다면 상기 수평 방향의 상기 복수의 마지막 코딩 트리 유닛의 각각은 동일한 폭을 가짐 -; 또는
상기 코딩 영역 내의 수직 방향의 마지막 코딩 트리 유닛이 상기 수직 방향의 상기 코딩 트리 유닛에 선행하는 상기 코딩 영역의 다른 코딩 트리 유닛보다 작은지 여부 - 상기 코딩 영역은 상기 수직 방향의 복수의 마지막 코딩 트리 유닛을 포함하고, 상기 수직 방향의 상기 마지막 코딩 트리 유닛은 상기 수직 방향의 상기 복수의 마지막 코딩 트리 유닛 중 하나이고, 상기 코딩 영역 내의 상기 수직 방향의 상기 마지막 코딩 트리 유닛이 상기 수직 방향의 상기 마지막 코딩 트리 유닛에 선행하는 상기 코딩 영역의 상기 다른 코딩 트리 유닛보다 작다면 상기 수직 방향의 상기 복수의 마지막 코딩 트리 유닛의 각각은 동일한 높이를 가짐 -
중 적어도 하나를 나타내도록 상기 인디케이션 데이터를 생성하도록 구성되는 것인, 화상을 인코딩하는 비디오 인코더(101). - 제 1 항에 있어서,
상기 데이터 인코더(110)는 상기 화상을 상기 복수의 코딩 영역으로 분할하도록 구성되는, 화상을 인코딩하는 비디오 인코더(101). - 제 1 항 또는 제 2 항에 있어서,
상기 복수의 코딩 영역의 각각의 코딩 영역은 상기 화상 내에서 직사각형으로 확장되고,
상기 복수의 코딩 영역의 각각의 상기 하나 이상의 코딩 트리 유닛의 각각의 코딩 트리 유닛은 상기 화상 내에서 직사각형으로 확장되는, 화상을 인코딩하는 비디오 인코더(101). - 제 3 항에 있어서,
상기 복수의 코딩 트리 유닛의 각각은 상기 화상 내의 수평 위치 및 상기 화상 내의 수직 위치를 가지며,
상기 복수의 코딩 영역 중 제 1 코딩 영역은 상기 복수의 코딩 영역 중 상이한 제 2 코딩 영역의 상이한 제 2 코딩 트리 유닛의 제 2 수직 위치와 동일한 제 1 수직 위치를 갖는 제 1 코딩 트리 유닛을 포함하고, 상기 제 1 코딩 영역의 제 3 코딩 트리 유닛은 상기 제 2 코딩 영역의 임의의 다른 코딩 트리 유닛의 수직 위치와 상이한 제 3 수직 위치를 가지며, 상기 제 2 코딩 영역의 제 4 코딩 트리 유닛은 상기 제 1 코딩 영역의 임의의 다른 코딩 트리 유닛의 상기 수직 위치와 상이한 제 4 수직 위치를 갖거나,
상기 복수의 코딩 영역 중 상기 제 1 코딩 영역은 상기 복수의 코딩 영역 중 상기 상이한 제 2 코딩 영역의 상기 상이한 제 2 코딩 트리 유닛의 제 2 수평 위치와 동일한 제 1 수평 위치를 갖는 상기 제 1 코딩 트리 유닛을 포함하고, 상기 제 1 코딩 영역의 상기 제 3 코딩 트리 유닛은 상기 제 2 코딩 영역의 임의의 다른 코딩 트리 유닛의 상기 수평 위치와 상이한 제 3 수평 위치를 가지며, 상기 제 2 코딩 영역의 상기 제 4 코딩 트리 유닛은 상기 제 1 코딩 영역의 임의의 다른 코딩 트리 유닛의 상기 수평 위치와 상이한 제 4 수평 위치를 갖는, 화상을 인코딩하는 비디오 인코더(101). - 제 3 항에 있어서,
상기 복수의 코딩 영역의 각각의 코딩 영역은 상기 코딩 영역의 위치, 폭 및 높이를 포함하는 공간적 특성을 나타내고, 상기 코딩 영역의 폭 및 높이는 상기 코딩 영역의 직사각형 확장에 의존하고, 상기 코딩 영역의 위치는 상기 화상 내의 상기 코딩 영역의 위치에 의존하는, 화상을 인코딩하는 비디오 인코더(101). - 제 5 항에 있어서,
상기 복수의 코딩 영역 중 제 1 코딩 영역의 제 1 높이는 상기 복수의 코딩 영역 중 제 2 코딩 영역의 제 2 높이와 상이하거나,
상기 복수의 코딩 영역 중 제 1 코딩 영역의 제 1 폭은 상기 복수의 코딩 영역 중 제 2 코딩 영역의 제 2 폭과 상이한, 화상을 인코딩하는 비디오 인코더(101). - 제 5 항에 있어서,
상기 데이터 인코더(110)는 상기 복수의 코딩 영역에 대한 정보가 상기 복수의 코딩 영역의 각각의 코딩 영역의 공간적 특성에 대한 정보를 포함하도록 상기 인디케이션 데이터를 생성하기 위해 구성되는, 화상을 인코딩하는 비디오 인코더(101). - 제 7 항에 있어서,
상기 데이터 인코더(110)는 상기 복수의 코딩 영역에 대한 정보가 상기 복수의 코딩 영역의 각각의 코딩 영역의 위치, 폭 및 높이를 포함하도록 상기 인디케이션 데이터를 생성하게 구성되는, 화상을 인코딩하는 비디오 인코더(101). - 제 1 항 또는 제 2 항에 있어서,
상기 데이터 인코더(110)는 상기 인코딩된 화상 데이터를 획득하기 위해 상기 복수의 코딩 영역 중 임의의 다른 코딩 영역의 화상 부분의 이미지 데이터를 인코딩하는 것과 독립적으로 상기 복수의 코딩 영역의 각각의 화상 부분의 이미지 데이터를 인코딩하도록 구성되는, 화상을 인코딩하는 비디오 인코더(101). - 제 1 항 또는 제 2 항에 있어서,
상기 데이터 인코더(110)는 상기 인코딩된 화상 데이터를 획득하기 위해 상기 복수의 코딩 영역의 각각의 코딩 영역 내의 화상 부분의 이미지 데이터를 인코딩함으로써 화상 부분을 인코딩하도록 구성되고,
상기 데이터 인코더(110)는 상기 복수의 코딩 영역 중 적어도 하나의 이미지 데이터의 인코딩이 상기 복수의 코딩 영역 중 적어도 다른 하나의 이미지 데이터의 인코딩에 의존하도록 상기 복수의 코딩 영역 중 적어도 상기 화상 부분의 이미지 데이터를 인코딩하게 구성되는, 화상을 인코딩하는 비디오 인코더(101). - 제 1 항 또는 제 2 항에 있어서,
상기 데이터 인코더(110)는 2개 이상의 코딩 트리 유닛을 포함하는 상기 하나 이상의 코딩 영역의 각각에 대한 상기 코딩 순서를 결정하도록 구성되는, 화상을 인코딩하는 비디오 인코더(101). - 제 11 항에 있어서,
상기 데이터 인코더(110)는 상기 하나 이상의 코딩 영역의 각각에 대한 2개 이상의 스캔 순서로부터 하나의 스캔 순서를 선택함으로써 상기 하나 이상의 코딩 영역의 각각에 대한 상기 코딩 순서를 결정하도록 구성되는, 화상을 인코딩하는 비디오 인코더(101). - 제 1 항 또는 제 2 항에 있어서,
상기 신호 생성기(120)는 상기 인코딩된 비디오 신호가 상기 인코딩된 화상 데이터 및 상기 인디케이션 데이터를 포함하는 비트스트림을 포함하도록 상기 인코딩된 비디오 데이터를 생성하기 위해 구성되는, 화상을 인코딩하는 비디오 인코더(101). - 제 1 항 또는 제 2 항에 있어서,
상기 데이터 인코더(110)는 상기 인디케이션 데이터가 상단 왼쪽 코딩 트리 유닛의 어드레스가 지정되는지에 대한 각각의 코딩 영역에 대한 정보를 포함하도록 상기 인디케이션 데이터를 생성하기 위해 구성되는, 화상을 인코딩하는 비디오 인코더(101). - 제 1 항 또는 제 2 항에 있어서,
상기 데이터 인코더(110)는 상기 인디케이션 데이터가 상기 복수의 코딩 영역의 수 또는 상기 복수의 코딩 영역의 수 - 1 또는 상기 복수의 코딩 영역의 수 -2에 대한 정보를 포함하도록 상기 인디케이션 데이터를 생성하기 위해 구성되는, 화상을 인코딩하는 비디오 인코더(101). - 제 1 항 또는 제 2 항에 있어서,
상기 데이터 인코더(110)는 상기 인디케이션 데이터가 상기 복수의 코딩 영역 중 다른 하나에 이어지는 상기 복수의 코딩 영역 중 하나에 대해 상기 복수의 코딩 영역 중 하나가 상기 복수의 코딩 영역 중 다른 하나에 의존하는지를 나타내도록 상기 인디케이션 데이터를 생성하기 위해 구성되는, 화상을 인코딩하는 비디오 인코더(101). - 제 1 항 또는 제 2 항에 있어서,
상기 데이터 인코더(110)는 상기 인디케이션 데이터가 복수의 슬라이스 중 정확히 하나의 슬라이스가 상기 복수의 코딩 영역 중 정확히 하나의 코딩 영역에 할당되는지를 나타내도록 상기 인디케이션 데이터를 생성하기 위해 구성되는, 화상을 인코딩하는 비디오 인코더(101). - 제 1 항 또는 제 2 항에 있어서,
상기 데이터 인코더(110)는 상기 인디케이션 데이터가 상기 복수의 코딩 영역의 상기 하나 이상의 코딩 트리 유닛의 각각 내에서 스캔하는 방법에 대한 정보를 포함하는지를 상기 인디케이션 데이터가 나타내도록 상기 인디케이션 데이터를 생성하기 위해 구성되는, 화상을 인코딩하는 비디오 인코더(101). - 제 1 항 또는 제 2 항에 있어서,
상기 데이터 인코더(110)는 상기 인디케이션 데이터가 상기 복수의 코딩 영역의 상기 하나 이상의 코딩 트리 유닛의 각각 내에서 스캔하는 방법을 나타내도록 상기 인디케이션 데이터를 생성하기 위해 구성되는, 화상을 인코딩하는 비디오 인코더(101). - 제 1 항 또는 제 2 항에 있어서,
상기 데이터 인코더(110)는 상기 인디케이션 데이터가 상기 복수의 코딩 영역의 각각에 대해 상기 코딩 영역이 하나 이상의 코딩 트리 유닛을 포함하는지를 나타내도록 상기 인디케이션 데이터를 생성하기 위해 구성되는, 화상을 인코딩하는 비디오 인코더(101). - 제 1 항 또는 제 2 항에 있어서,
상기 데이터 인코더(110)는 상기 인디케이션 데이터가 상기 복수의 코딩 영역 중 하나에 대해 코딩 트리 유닛 스캔이 가장 왼쪽 코딩 트리 유닛으로 시작되는지 또는 상기 코딩 트리 유닛 스캔이 가장 오른쪽 코딩 트리 유닛으로 시작되는지를 나타내도록 상기 인디케이션 데이터를 생성하기 위해 구성되는, 화상을 인코딩하는 비디오 인코더(101). - 제 1 항 또는 제 2 항에 있어서,
상기 데이터 인코더(110)는 상기 인디케이션 데이터가 상기 복수의 코딩 영역 중 하나에 대해 코딩 트리 유닛 스캔이 상기 코딩 영역의 상단 코딩 트리 유닛 행으로 시작되는지 또는 상기 코딩 트리 유닛 스캔이 상기 코딩 영역의 하단 코딩 트리 유닛 행으로 시작되는지를 나타내도록 상기 인디케이션 데이터를 생성하기 위해 구성되는, 화상을 인코딩하는 비디오 인코더(101). - 제 1 항 또는 제 2 항에 있어서,
상기 데이터 인코더(110)는 상기 인디케이션 데이터가 상기 복수의 코딩 영역 중 하나에 대해 코딩 트리 유닛 스캔이 수평 방향으로 시작되는지 또는 코딩 트리 유닛 스캔이 수직 방향으로 시작되는지를 나타내도록 상기 인디케이션 데이터를 생성하기 위해 구성되는, 화상을 인코딩하는 비디오 인코더(101). - 제 1 항 또는 제 2 항에 있어서,
상기 데이터 인코더(110)는 상기 인디케이션 데이터가 상기 복수의 코딩 영역 중 적어도 하나가 상기 복수의 코딩 영역 중 다른 하나를 둘러싸는지 또는 상기 복수의 코딩 영역 중 어떤 것도 상기 코딩 영역 중 다른 하나를 둘러싸지 않는지를 나타내는 비연속적 정보를 포함하도록 상기 인디케이션 데이터를 생성하기 위해 구성되는, 화상을 인코딩하는 비디오 인코더(101). - 제 1 항 또는 제 2 항에 있어서,
상기 데이터 인코더(110)는 상기 인디케이션 데이터가 상기 복수의 코딩 영역 중 하나에 대해 상기 코딩 영역 중 하나 내에서 수평 방향으로 배치되는 코딩 트리 유닛의 수를 지정하는 코딩 트리 유닛의 코딩 영역 폭을 나타내도록 상기 인디케이션 데이터를 생성하기 위해 구성되는, 화상을 인코딩하는 비디오 인코더(101). - 제 1 항 또는 제 2 항에 있어서,
상기 데이터 인코더(110)는 상기 인디케이션 데이터가 상기 복수의 코딩 영역 중 하나에 대해 상기 코딩 영역 중 하나 내에서 수직 방향으로 배치되는 코딩 트리 유닛의 수를 지정하는 코딩 트리 유닛의 코딩 영역 높이를 나타내도록 상기 인디케이션 데이터를 생성하기 위해 구성되는, 화상을 인코딩하는 비디오 인코더(101). - 삭제
- 삭제
- 삭제
- 삭제
- 제 1 항 또는 제 2 항에 있어서,
상기 데이터 인코더(110)는 상기 인디케이션 데이터가 코딩 영역에 대해 상기 코딩 영역의 상기 하나 이상의 코딩 트리 유닛 중 하나를 나타내는 시작 어드레스가 나타내어지는지 또는 상기 코딩 영역의 상기 하나 이상의 코딩 트리 유닛 중 하나를 나타내는 상기 시작 어드레스가 나타내어지지 않는지를 나타내도록 상기 인디케이션 데이터를 생성하기 위해 구성되는, 화상을 인코딩하는 비디오 인코더(101). - 제 1 항 또는 제 2 항에 있어서,
상기 데이터 인코더(110)는 상기 복수의 코딩 영역에 대한 정보가 상기 화상을 한번 이상 스플릿함으로써 상기 복수의 코딩 영역을 획득하기 위해 상기 화상을 한번 이상 스플릿하는 방법에 대한 정보를 포함하도록 상기 인디케이션 데이터를 생성하기 위해 구성되는, 화상을 인코딩하는 비디오 인코더(101). - 제 32 항에 있어서,
상기 데이터 인코더(110)는 상기 인디케이션 데이터가 복수의 코딩 영역 스플릿 위치를 나타내도록 상기 인디케이션 데이터를 생성하기 위해 구성되는, 화상을 인코딩하는 비디오 인코더(101). - 제 33 항에 있어서,
상기 데이터 인코더(110)는 상기 인디케이션 데이터가 상기 복수의 코딩 영역 스플릿 위치를 순서화된 시퀀스로서 나타내도록 상기 인디케이션 데이터를 생성하기 위해 구성되는, 화상을 인코딩하는 비디오 인코더(101). - 제 33 항에 있어서,
상기 데이터 인코더(110)는 상기 인디케이션 데이터가 상기 복수의 코딩 영역 스플릿 위치를 복수의 코딩 영역 스플릿 위치 값으로서 나타내도록 상기 인디케이션 데이터를 생성하기 위해 구성되며, 상기 복수의 코딩 영역 스플릿 위치 값의 각각은 상기 화상의 폭에 의존하거나 상기 화상의 높이에 의존하는, 화상을 인코딩하는 비디오 인코더(101). - 제 32 항에 있어서,
상기 데이터 인코더(110)는 상기 복수의 코딩 영역에 대한 정보가 상기 화상을 한번 이상 계층적으로 스플릿함으로써 상기 복수의 코딩 영역을 획득하기 위해 상기 화상을 한번 이상 계층적으로 스플릿하는 방법에 대한 정보를 포함하도록 상기 인디케이션 데이터를 생성하기 위해 구성되는, 화상을 인코딩하는 비디오 인코더(101). - 제 1 항 또는 제 2 항에 있어서,
상기 데이터 인코더(110)는 상기 복수의 코딩 영역에 대한 정보가 상기 하나 이상의 코딩 영역 중 하나의 코딩 영역에 대한 하나 이상의 영역 열 정지 플래그를 포함하도록 상기 인디케이션 데이터를 생성하기 위해 구성되며, 상기 하나 이상의 코딩 영역 중 하나의 코딩 영역의 영역 열 정지 플래그가 정지 값으로 설정되고, 상기 영역 열 정지 플래그는 상기 코딩 영역의 폭을 나타내거나,
상기 데이터 인코더(110)는 상기 복수의 코딩 영역에 대한 정보가 상기 하나 이상의 코딩 영역 중 하나의 코딩 영역에 대한 하나 이상의 영역 라인 정지 플래그를 포함하도록 상기 인디케이션 데이터를 생성하기 위해 구성되며, 상기 하나 이상의 코딩 영역 중 하나의 코딩 영역의 영역 라인 정지 플래그가 정지 값으로 설정되고, 상기 영역 라인 정지 플래그는 상기 코딩 영역의 높이를 나타내는, 화상을 인코딩하는 비디오 인코더(101). - 제 1 항 또는 제 2 항에 있어서,
상기 데이터 인코더(110)는 상기 인디케이션 데이터가 명시적 시그널링 모드가 활성적인지 또는 상기 명시적 시그널링 모드가 비활성적인지를 나타내도록 상기 인디케이션 데이터를 생성하기 위해 구성되고,
상기 명시적 시그널링 모드가 활성적이고, 상기 코딩 영역의 상기 하나 이상의 코딩 트리 유닛 중 하나의 코딩 트리 유닛이 상기 화상의 화상 경계에 위치되는 경우, 상기 데이터 인코더(110)는 상기 인디케이션 데이터가 상기 코딩 트리 유닛에 대한 영역 열 정지 플래그 및 영역 라인 정지 플래그 중 적어도 하나를 포함하도록 상기 인디케이션 데이터를 생성하기 위해 구성되며,
상기 명시적 시그널링 모드가 비활성적이고, 상기 코딩 영역의 상기 하나 이상의 코딩 트리 유닛의 상기 코딩 트리 유닛이 상기 화상의 상기 화상 경계에 위치되는 경우, 상기 데이터 인코더(110)는 상기 인디케이션 데이터가 상기 코딩 트리 유닛에 대한 상기 영역 열 정지 플래그를 포함하지 않고/않거나 상기 코딩 트리 유닛에 대한 상기 영역 라인 정지 플래그를 포함하지 않도록 상기 인디케이션 데이터를 생성하기 위해 구성되는, 화상을 인코딩하는 비디오 인코더(101). - 제 1 항 또는 제 2 항에 있어서,
2개 이상의 코딩 트리 유닛을 포함하는 상기 하나 이상의 코딩 영역의 각각의 코딩 영역의 상기 코딩 순서는 래스터 스캔에 의존하고,
상기 데이터 인코더(110)는 상기 인디케이션 데이터가 2개 이상의 코딩 트리 유닛을 포함하는 상기 하나 이상의 코딩 영역의 각각의 코딩 영역을 인코딩하기 위해 상기 래스터 스캔이 사용되었음을 나타내도록 상기 인디케이션 데이터를 생성하기 위해 구성되는, 화상을 인코딩하는 비디오 인코더(101). - 제 1 항 또는 제 2 항에 있어서,
2개 이상의 코딩 트리 유닛을 포함하는 상기 하나 이상의 코딩 영역 중 하나의 코딩 영역의 상기 코딩 순서는 각도를 나타내는 기울기에 의존하는 스캔 순서에 의존하고,
상기 코딩 영역의 상기 2개 이상의 코딩 트리 유닛 중 제 1 코딩 트리 유닛을 인코딩한 후, 상기 데이터 인코더(110)는 상기 코딩 영역의 상기 코딩 트리 유닛 중 제 1 코딩 트리 유닛의 위치, 인코딩되지 않은 상기 코딩 영역의 다른 코딩 트리 유닛 및 상기 기울기에 따라 상기 코딩 영역 내의 상기 2개 이상의 코딩 트리 유닛 중 제 2 코딩 트리 유닛을 결정하도록 구성되며,
상기 데이터 인코더(110)는 상기 2개 이상의 코딩 트리 유닛 중 상기 제 2 코딩 트리 유닛을 인코딩하도록 구성되는, 화상을 인코딩하는 비디오 인코더(101). - 제 40 항에 있어서,
상기 데이터 인코더(110)는 화살표가 시작점 및 상기 기울기에 의해 정의되도록 상기 코딩 영역 내의 상기 2개 이상의 코딩 트리 유닛 중 제 2 코딩 트리 유닛을 결정하도록 구성되고, 상기 시작점은 상기 코딩 영역 내의 상기 코딩 트리 유닛 중 제 1 코딩 트리 유닛의 위치이고, 상기 2개 이상의 코딩 트리 유닛 중 제 2 코딩 트리 유닛의 위치를 가리키는, 화상을 인코딩하는 비디오 인코더(101). - 제 40 항에 있어서,
상기 데이터 인코더(110)는 상기 인디케이션 데이터가 2개 이상의 코딩 트리 유닛을 포함하는 상기 하나 이상의 코딩 영역의 각각의 코딩 영역을 인코딩하기 위해 대각선 스캔이 사용되었음을 나타내도록 상기 인디케이션 데이터를 생성하기 위해 구성되는, 화상을 인코딩하는 비디오 인코더(101). - 제 1 항 또는 제 2 항에 있어서,
5개 이상의 코딩 트리 유닛을 포함하는 코딩 영역의 상기 코딩 순서는 스캔 순서에 의존하며, 상기 스캔 순서는 0°인 제 1 각도에 의존하고, 135°인 제 2 각도에 의존하며, 45°인 제 3 각도에 의존하고,
상기 코딩 영역의 제 1 코딩 트리 유닛을 인코딩한 후, 상기 데이터 인코더(110)는 상기 코딩 영역 내의 상기 제 1 코딩 트리 유닛의 위치에서의 제 1 시작점을 갖는 제 1 화살표가 미리 정의된 방향에 대해 0°인 제 1 각도를 둘러싸고, 상기 제 1 화살표가 상기 코딩 영역 내의 제 2 코딩 트리 유닛을 가리키도록 코딩 트리 영역의 제 2 코딩 트리 유닛을 결정하기 위해 구성되고, 상기 데이터 인코더(110)는 상기 코딩 영역의 상기 제 2 코딩 트리 유닛을 인코딩하도록 구성되고,
상기 코딩 영역의 제 2 코딩 트리 유닛을 인코딩한 후, 상기 데이터 인코더(110)는 상기 코딩 영역 내의 상기 제 2 코딩 트리 유닛의 위치에서의 제 2 시작점을 갖는 제 2 화살표가 미리 정의된 방향에 대해 135°인 제 2 각도를 둘러싸고, 상기 제 2 화살표가 상기 코딩 영역 내의 제 3 코딩 트리 유닛을 가리키도록 상기 코딩 트리 영역의 제 3 코딩 트리 유닛을 결정하기 위해 구성되고, 상기 데이터 인코더(110)는 상기 코딩 영역의 상기 제 3 코딩 트리 유닛을 인코딩하도록 구성되며,
상기 코딩 영역의 상기 제 3 코딩 트리 유닛을 인코딩한 후, 상기 데이터 인코더(110)는 상기 코딩 영역 내의 상기 제 3 코딩 트리 유닛의 위치에서의 제 3 시작점을 갖는 제 3 화살표가 상기 미리 정의된 방향에 대해 0°인 상기 제 1 각도를 둘러싸고, 상기 제 3 화살표가 상기 코딩 영역 내의 제 4 코딩 트리 유닛을 가리키도록 상기 코딩 트리 영역의 제 4 코딩 트리 유닛을 결정하기 위해 구성되고, 상기 데이터 인코더(110)는 상기 코딩 영역의 상기 제 4 코딩 트리 유닛을 인코딩하도록 구성되는, 화상을 인코딩하는 비디오 인코더(101). - 제 43 항에 있어서,
상기 코딩 영역의 상기 제 4 코딩 트리 유닛을 인코딩한 후, 상기 데이터 인코더(110)는 상기 코딩 영역 내의 상기 제 4 코딩 트리 유닛의 위치에서의 제 4 시작점을 갖는 제 4 화살표가 미리 정의된 방향에 대해 45°인 제 3 각도를 둘러싸고, 상기 제 4 화살표가 상기 코딩 영역 내의 제 5 코딩 트리 유닛을 가리키도록 상기 코딩 트리 영역의 제 5 코딩 트리 유닛을 결정하기 위해 구성되고, 상기 데이터 인코더(110)는 상기 코딩 영역의 상기 제 5 코딩 트리 유닛을 인코딩하도록 구성되는, 화상을 인코딩하는 비디오 인코더(101). - 제 43 항에 있어서,
상기 데이터 인코더(110)는 상기 인디케이션 데이터가 5개 이상의 코딩 트리 유닛을 포함하는 상기 하나 이상의 코딩 영역의 각각의 상기 영역을 인코딩하기 위해 z 스캔이 사용되었음을 나타내도록 상기 인디케이션 데이터를 생성하기 위해 구성되는, 화상을 인코딩하는 비디오 인코더(101). - 제 1 항 또는 제 2 항에 있어서,
2개 이상의 코딩 트리 유닛을 포함하는 상기 하나 이상의 코딩 영역 중 하나의 코딩 영역의 상기 코딩 순서는 하나 이상의 스캔 방향을 포함하는 스캔 순서에 의존하고,
상기 코딩 영역의 제 1 코딩 트리 유닛을 인코딩한 후, 상기 데이터 인코더(110)는 제 1 코딩 트리 유닛의 위치 및 상기 하나 이상의 스캔 방향 중 제 1 스캔 방향에 따라 코딩 트리 영역의 제 2 코딩 트리 유닛을 결정하도록 구성되고, 상기 데이터 인코더(110)는 상기 코딩 영역의 상기 제 2 코딩 트리 유닛을 인코딩하도록 구성되는, 화상을 인코딩하는 비디오 인코더(101). - 제 46 항에 있어서,
상기 데이터 인코더(110)는 상기 인디케이션 데이터가 상기 하나 이상의 스캔 방향을 포함하는 상기 스캔 순서를 나타내도록 상기 인디케이션 데이터를 생성하기 위해 구성되는, 화상을 인코딩하는 비디오 인코더(101). - 제 46 항에 있어서,
상기 데이터 인코더(110)는 상기 코딩 영역의 제 1 코딩 트리 유닛의 인접한 이웃을 평가함으로써 상기 하나 이상의 스캔 방향 중 하나의 스캔 방향을 도출하도록 구성되고,
상기 제 1 코딩 트리 유닛이 하단 경계에 인접한 상기 2개 이상의 코딩 트리 유닛의 코딩 트리 유닛 이웃을 갖거나, 상기 제 1 코딩 트리 유닛이 상기 화상의 하단 코딩 트리 유닛 라인에 위치되고, 오른쪽에 인접한 이웃이 없고, 가장 오른쪽 코딩 트리 유닛 열에 위치되지 않는 경우, 상기 스캔 방향은 오른쪽 위쪽 스캔이고,
상기 제 1 코딩 트리 유닛이 하단 경계에 인접한 상기 2개 이상의 코딩 트리 유닛의 코딩 트리 유닛 이웃을 갖거나, 상기 제 1 코딩 트리 유닛이 상기 화상의 하단 코딩 트리 유닛 라인에 위치되고, 상기 오른쪽에 인접한 이웃이 있거나 상기 화상의 가장 오른쪽 열에 위치되는 경우, 상기 스캔 방향은 왼쪽 위쪽 스캔이고,
상기 제 1 코딩 트리 유닛의 오른쪽에 존재하는 상기 2개 이상의 코딩 트리 유닛의 코딩 트리 유닛 이웃이 이용 가능하거나, 상기 제 1 코딩 트리 유닛이 상기 화상의 가장 오른쪽 열에 위치되는 경우, 상기 스캔 방향은 왼쪽 아래쪽이며,
그렇지 않으면, 상기 스캔 방향은 오른쪽 아래쪽인, 화상을 인코딩하는 비디오 인코더(101). - 제 46 항에 있어서,
상기 데이터 인코더(110)는 상기 인디케이션 데이터가 상기 하나 이상의 스캔 방향 중 선택된 스캔 방향을 나타내는 인덱스를 나타내도록 상기 인디케이션 데이터를 생성하기 위해 구성되는, 화상을 인코딩하는 비디오 인코더(101). - 제 1 항 또는 제 2 항에 있어서,
상기 데이터 인코더(110)는 상기 인디케이션 데이터가 코딩된 비디오 시퀀스의 오류 복원력에 대한 정보를 포함하도록 상기 인디케이션 데이터를 생성하기 위해 구성되는, 화상을 인코딩하는 비디오 인코더(101). - 제 50 항에 있어서,
상기 오류 복원력에 대한 정보는 상기 코딩된 비디오 시퀀스의 오류 복원력에 대한 3개 이상의 상이한 상태 중 하나를 나타내는, 화상을 인코딩하는 비디오 인코더(101). - 제 51 항에 있어서,
상기 3개 이상의 상이한 상태의 제 1 상태는 액세스 유닛이 오류 복원력이 없음을 나타내고,
상기 3개 이상의 상이한 상태의 제 2 상태는 화상 파라미터 세트의 제 1 복수의 액세스 유닛이 오류 복원력이 없음을 나타내며,
상기 3개 이상의 상이한 상태의 제 3 상태는 시퀀스 파라미터 세트의 제 2 복수의 액세스 유닛이 오류 복원력이 없음을 나타내는, 화상을 인코딩하는 비디오 인코더(101). - 제 50 항에 있어서,
상기 오류 복원력에 대한 정보는 상기 코딩된 비디오 시퀀스의 오류 복원력에 대한 4개 이상의 상이한 상태 중 하나를 나타내고,
상기 4개 이상의 상이한 상태의 제 1 상태는 상기 오류 복원력이 화상 레벨에서 손상되고, 다중 화상 레벨에서 손상되며, 시퀀스 레벨에서 손상됨을 나타내고,
상기 4개 이상의 상이한 상태 중 제 2 상태는 상기 오류 복원력이 상기 화상 레벨에서 손상되고, 상기 다중 화상 레벨에서 손상되지만, 상기 시퀀스 레벨에서는 손상되지 않음을 나타내고,
상기 4개 이상의 상이한 상태 중 제 3 상태는 상기 오류 복원력이 상기 화상 레벨에서 손상되지만, 상기 오류 복원력이 다중 화상 레벨에서 손상되지 않고, 시퀀스 레벨에서 손상되지 않음을 나타내며,
상기 4개 이상의 상이한 상태 중 제 4 상태는, 예를 들어, 오류 복원력이 화상 레벨에서 손상되지 않고, 다중 화상 레벨에서 손상되지 않으며, 시퀀스 레벨에서 손상되지 않음을 나타내는, 화상을 인코딩하는 비디오 인코더(101). - 제 1 항 또는 제 2 항에 있어서,
상기 데이터 인코더(110)는 상기 화상 내에 위치되는 상기 복수의 코딩 트리 유닛 중 8개의 이웃한 코딩 트리 유닛 중 하나 이상의 코딩 트리 유닛에 따라 상기 화상 내에 위치되는 상기 복수의 코딩 트리 유닛 중 하나의 코딩 트리 유닛을 인코딩하도록 구성되는, 화상을 인코딩하는 비디오 인코더(101). - 제 54 항에 있어서,
상기 데이터 인코더(110)는 상기 8개의 이웃한 코딩 트리 유닛 중 하나의 코딩 트리 유닛을 상기 8개의 이웃한 코딩 트리 유닛 중 다른 하나의 코딩 트리 유닛으로 시프트함으로써 상기 화상 내에 위치되는 상기 복수의 코딩 트리 유닛 중 상기 코딩 트리 유닛을 인코딩하도록 구성되는, 화상을 인코딩하는 비디오 인코더(101). - 제 54 항에 있어서,
상기 8개의 이웃한 코딩 트리 유닛은 제 1 이웃이고,
상기 데이터 인코더(110)는 제 2 이웃의 다른 8개의 이웃한 코딩 트리 유닛 중 제 3 코딩 트리 유닛을 상기 제 1 이웃의 8개의 이웃한 코딩 트리 유닛 중 제 2 코딩 트리 유닛으로 시프트함으로써 상기 복수의 코딩 트리 유닛 중 상기 코딩 트리 유닛을 인코딩하도록 구성되며, 상기 제 1 이웃의 상기 8개의 이웃한 코딩 트리 유닛의 상기 제 2 코딩 트리 유닛이 이용 불가능한 경우, 상기 제 2 이웃의 상기 다른 8개의 이웃한 코딩 트리 유닛은 상기 제 2 코딩 트리 유닛에 이웃하는, 화상을 인코딩하는 비디오 인코더(101). - 비디오의 화상을 재구성하기 위해 인코딩된 화상 데이터 및 상기 비디오의 화상의 인디케이션 데이터를 포함하는 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151)에 있어서,
상기 인코딩된 비디오 신호를 수신하기 위해 구성된 인터페이스(160), 및
상기 인디케이션 데이터를 사용하여 상기 인코딩된 화상 데이터를 디코딩함으로써 상기 비디오의 화상을 재구성하기 위해 구성된 데이터 디코더(170)를 포함하는데,
상기 화상은 복수의 코딩 영역으로 분할되고, 상기 복수의 코딩 영역의 각각의 코딩 영역은 상기 화상 내에 위치되며, 상기 복수의 코딩 영역의 각각은 상기 화상 내에 위치되는 복수의 코딩 트리 유닛 중 하나 이상의 코딩 트리 유닛을 포함하며, 상기 인디케이션 데이터를 사용하여, 상기 데이터 디코더(170)는 상기 복수의 코딩 영역에 따라 인코딩된 화상 데이터를 디코딩하도록 구성되며, 상기 인디케이션 데이터는 상기 복수의 코딩 영역에 대한 정보를 포함하며,
상기 복수의 코딩 영역 중 하나 이상의 코딩 영역은 상기 복수의 코딩 트리 유닛 중 2개 이상의 코딩 트리 유닛을 포함하며, 2개 이상의 코딩 트리 유닛을 포함하는 상기 하나 이상의 코딩 영역의 각각의 코딩 영역은 상기 코딩 영역의 상기 2개 이상의 코딩 트리 유닛에 대한 코딩 순서를 나타내며, 상기 인디케이션 데이터를 사용하여, 상기 데이터 디코더(170)는 2개 이상의 코딩 트리 유닛을 포함하는 상기 하나 이상의 코딩 영역의 코딩 순서에 따라 상기 인코딩된 화상 데이터를 디코딩하도록 구성되며, 상기 인디케이션 데이터는 2개 이상의 코딩 트리 유닛을 포함하는 상기 하나 이상의 코딩 영역의 코딩 순서에 대한 정보를 포함하고,
상기 데이터 디코더(170)는 상기 복수의 코딩 영역 중 하나의 코딩 영역에 대해,
상기 코딩 영역 내의 수평 방향의 마지막 코딩 트리 유닛이 상기 수평 방향의 상기 코딩 트리 유닛에 선행하는 상기 코딩 영역의 다른 코딩 트리 유닛보다 작은지 여부 - 상기 인디케이션 데이터는 상기 정보를 포함하고, 상기 코딩 영역은 상기 수평 방향의 복수의 마지막 코딩 트리 유닛을 포함하고, 상기 수평 방향의 상기 마지막 코딩 트리 유닛은 상기 수평 방향의 상기 복수의 마지막 코딩 트리 유닛 중 하나이고, 상기 코딩 영역 내의 상기 수평 방향의 상기 마지막 코딩 트리 유닛이 상기 수평 방향의 상기 마지막 코딩 트리 유닛에 선행하는 상기 코딩 영역의 상기 다른 코딩 트리 유닛보다 작다면 상기 수평 방향의 상기 복수의 마지막 코딩 트리 유닛의 각각은 동일한 폭을 가짐 -; 또는
상기 코딩 영역 내의 수직 방향의 마지막 코딩 트리 유닛이 상기 수직 방향의 상기 코딩 트리 유닛에 선행하는 상기 코딩 영역의 다른 코딩 트리 유닛보다 작은지 여부 - 상기 인디케이션 데이터는 상기 정보를 포함하고, 상기 코딩 영역은 상기 수직 방향의 복수의 마지막 코딩 트리 유닛을 포함하고, 상기 수직 방향의 상기 마지막 코딩 트리 유닛은 상기 수직 방향의 상기 복수의 마지막 코딩 트리 유닛 중 하나이고, 상기 코딩 영역 내의 상기 수직 방향의 상기 마지막 코딩 트리 유닛이 상기 수직 방향의 상기 마지막 코딩 트리 유닛에 선행하는 상기 코딩 영역의 상기 다른 코딩 트리 유닛보다 작다면 상기 수직 방향의 상기 복수의 마지막 코딩 트리 유닛의 각각은 동일한 높이를 가짐 - ,
중 적어도 하나를 나타내는 정보를 사용하여 상기 인코딩된 화상 데이터를 디코딩하도록 구성되는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 57 항에 있어서
상기 비디오 디코더(151)는 출력 장치 상에서 상기 비디오의 화상을 출력하도록 구성되는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 57 항 또는 제 58 항에 있어서,
상기 복수의 코딩 영역의 각각의 코딩 영역은 상기 화상 내에서 직사각형으로 확장되고,
상기 복수의 코딩 영역의 각각의 상기 하나 이상의 코딩 트리 유닛의 각각의 코딩 트리 유닛은 상기 화상 내에서 직사각형으로 확장되는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 59 항에 있어서,
상기 복수의 코딩 트리 유닛의 각각은 상기 화상 내의 수평 위치 및 상기 화상 내의 수직 위치를 가지며,
상기 복수의 코딩 영역 중 제 1 코딩 영역은 상기 복수의 코딩 영역 중 상이한 제 2 코딩 영역의 상이한 제 2 코딩 트리 유닛의 제 2 수직 위치와 동일한 제 1 수직 위치를 갖는 제 1 코딩 트리 유닛을 포함하고, 상기 제 1 코딩 영역의 제 3 코딩 트리 유닛은 상기 제 2 코딩 영역의 임의의 다른 코딩 트리 유닛의 수직 위치와 상이한 제 3 수직 위치를 가지며, 상기 제 2 코딩 영역의 제 4 코딩 트리 유닛은 상기 제 1 코딩 영역의 임의의 다른 코딩 트리 유닛의 상기 수직 위치와 상이한 제 4 수직 위치를 갖거나,
상기 복수의 코딩 영역 중 상기 제 1 코딩 영역은 상기 복수의 코딩 영역 중 상기 상이한 제 2 코딩 영역의 상기 상이한 제 2 코딩 트리 유닛의 제 2 수평 위치와 동일한 제 1 수평 위치를 갖는 상기 제 1 코딩 트리 유닛을 포함하고, 상기 제 1 코딩 영역의 상기 제 3 코딩 트리 유닛은 상기 제 2 코딩 영역의 임의의 다른 코딩 트리 유닛의 상기 수평 위치와 상이한 제 3 수평 위치를 가지며, 상기 제 2 코딩 영역의 상기 제 4 코딩 트리 유닛은 상기 제 1 코딩 영역의 임의의 다른 코딩 트리 유닛의 상기 수평 위치와 상이한 제 4 수평 위치를 갖는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 59 항에 있어서,
상기 복수의 코딩 영역의 각각의 코딩 영역은 상기 코딩 영역의 위치, 폭 및 높이를 포함하는 공간적 특성을 나타내고, 상기 코딩 영역의 폭 및 높이는 상기 코딩 영역의 직사각형 확장에 의존하고, 상기 코딩 영역의 위치는 상기 화상 내의 상기 코딩 영역의 위치에 의존하며,
상기 데이터 디코더(170)는 상기 복수의 코딩 영역의 공간적 특성에 따라 상기 인코딩된 화상 데이터를 디코딩하도록 구성되는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 61 항에 있어서,
상기 복수의 코딩 영역 중 제 1 코딩 영역의 제 1 높이는 상기 복수의 코딩 영역 중 제 2 코딩 영역의 제 2 높이와 상이하거나,
상기 복수의 코딩 영역 중 제 1 코딩 영역의 제 1 폭은 상기 복수의 코딩 영역 중 제 2 코딩 영역의 제 2 폭과 상이한, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 61 항에 있어서,
상기 데이터 디코더(170)는 상기 복수의 코딩 영역의 공간적 특성에 대한 상기 인디케이션 데이터 내의 정보를 사용하여 상기 인코딩된 화상 데이터를 디코딩하도록 구성되는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 63 항에 있어서,
상기 데이터 디코더(170)는 상기 복수의 코딩 영역의 각각의 코딩 영역의 위치, 폭 및 높이를 포함하는 상기 복수의 코딩 영역에 대한 상기 인디케이션 데이터 내의 정보를 사용하여 상기 인코딩된 화상 데이터를 디코딩하도록 구성되는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 57 항 또는 제 58 항에 있어서,
상기 데이터 디코더(170)는 상기 복수의 코딩 영역 중 임의의 다른 코딩 영역의 인코딩된 화상 데이터를 디코딩하는 것과 독립적으로 상기 복수의 코딩 영역의 각각의 인코딩된 화상 데이터를 디코딩하도록 구성되는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 57 항 또는 제 58 항에 있어서,
상기 데이터 디코더(170)는 상기 복수의 코딩 영역 중 적어도 하나의 인코딩된 화상 데이터의 디코딩이 상기 복수의 코딩 영역 중 적어도 다른 하나의 인코딩된 화상 데이터의 디코딩에 의존하도록 상기 복수의 코딩 영역 중 적어도 하나의 상기 인코딩된 화상 데이터를 디코딩하기 위해 구성되는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 57 항 또는 제 58 항에 있어서,
상기 데이터 디코더(170)는 2개 이상의 코딩 트리 유닛을 포함하는 상기 하나 이상의 코딩 영역의 각각에 대한 코딩 순서를 사용하여 상기 인코딩된 화상 데이터를 디코딩하도록 구성되며, 상기 하나 이상의 코딩 영역의 각각에 대한 상기 코딩 순서는 상기 인디케이션 데이터에 의해 나타내어지는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 67 항에 있어서,
상기 데이터 디코더(170)는 상기 하나 이상의 코딩 영역의 각각에 대한 2개 이상의 스캔 순서로부터의 하나의 스캔 순서 상의 인디케이션을 사용하여 상기 인코딩된 화상 데이터를 디코딩하도록 구성되며, 상기 인디케이션 데이터는 상기 하나 이상의 코딩 영역의 각각에 대한 상기 스캔 순서 상의 인디케이션을 포함하는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 57 항 또는 제 58 항에 있어서,
상기 인터페이스(160)는 상기 인코딩된 화상 데이터 및 상기 인디케이션 데이터를 포함하는 비트스트림을 수신하도록 구성되는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 57 항 또는 제 58 항에 있어서,
상기 데이터 디코더(170)는 상단 왼쪽 코딩 트리 유닛의 어드레스가 지정되는지에 대한 각각의 코딩 영역에 대한 정보를 사용하여 상기 인코딩된 화상 데이터를 디코딩하도록 구성되며, 상기 인디케이션 데이터는 상기 정보를 포함하는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 57 항 또는 제 58 항에 있어서,
상기 데이터 디코더(170)는 상기 복수의 코딩 영역의 수 또는 상기 복수의 코딩 영역의 수 - 1 또는 상기 복수의 코딩 영역의 수 -2에 대한 정보를 사용하여 상기 인코딩된 화상 데이터를 디코딩하도록 구성되며, 상기 인디케이션 데이터는 상기 정보를 포함하는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 57 항 또는 제 58 항에 있어서,
상기 데이터 디코더(170)는 상기 복수의 코딩 영역 중 다른 하나에 이어지는 상기 복수의 코딩 영역 중 하나에 대해 상기 복수의 코딩 영역 중 하나가 상기 복수의 코딩 영역 중 다른 하나에 의존하는지를 나타내는 정보를 사용하여 상기 인코딩된 화상 데이터를 디코딩하도록 구성되며, 상기 인디케이션 데이터는 상기 정보를 포함하는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 57 항 또는 제 58 항에 있어서,
상기 데이터 디코더(170)는 복수의 슬라이스 중 정확히 하나의 슬라이스가 상기 복수의 코딩 영역 중 정확히 하나의 코딩 영역에 할당되는지를 나타내는 정보를 사용하여 상기 인코딩된 화상 데이터를 디코딩하도록 구성되며, 상기 인디케이션 데이터는 상기 정보를 포함하는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 57 항 또는 제 58 항에 있어서,
상기 데이터 디코더(170)는 상기 인디케이션 데이터가 상기 복수의 코딩 영역의 상기 하나 이상의 코딩 트리 유닛의 각각 내에서 스캔하는 방법에 대한 정보를 포함하는지에 대한 정보를 사용하여 상기 인코딩된 화상 데이터를 디코딩하도록 구성되며, 상기 인디케이션 데이터는 상기 정보를 포함하는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 57 항 또는 제 58 항에 있어서,
상기 데이터 디코더(170)는 상기 복수의 코딩 영역의 상기 하나 이상의 코딩 트리 유닛의 각각 내에서 스캔하는 방법에 대한 정보를 사용하여 상기 인코딩된 화상 데이터를 디코딩하도록 구성되며, 상기 인디케이션 데이터는 상기 정보를 포함하는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 57 항 또는 제 58 항에 있어서,
상기 데이터 디코더(170)는 상기 복수의 코딩 영역의 각각에 대해 상기 코딩 영역이 하나 이상의 코딩 트리 유닛을 포함하는지를 나타내는 정보를 사용하여 상기 인코딩된 화상 데이터를 디코딩하도록 구성되며, 상기 인디케이션 데이터는 상기 정보를 포함하는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 57 항 또는 제 58 항에 있어서,
상기 데이터 디코더(170)는 상기 복수의 코딩 영역 중 하나에 대해 코딩 트리 유닛 스캔이 가장 왼쪽 코딩 트리 유닛으로 시작되는지 또는 상기 코딩 트리 유닛 스캔이 가장 오른쪽 코딩 트리 유닛으로 시작되는지를 나타내는 정보를 사용하여 상기 인코딩된 화상 데이터를 디코딩하도록 구성되며, 상기 인디케이션 데이터는 상기 정보를 포함하는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 57 항 또는 제 58 항항에 있어서,
상기 데이터 디코더(170)는 상기 복수의 코딩 영역 중 하나에 대해 코딩 트리 유닛 스캔이 상기 코딩 영역의 상단 코딩 트리 유닛 행으로 시작되는지 또는 상기 코딩 트리 유닛 스캔이 상기 코딩 영역의 하단 코딩 트리 유닛 행으로 시작되는지를 나타내는 정보를 사용하여 상기 인코딩된 화상 데이터를 디코딩하도록 구성되며, 상기 인디케이션 데이터는 상기 정보를 포함하는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 57 항 또는 제 58 항에 있어서,
상기 데이터 디코더(170)는 상기 복수의 코딩 영역 중 하나에 대해 코딩 트리 유닛 스캔이 수평 방향으로 시작되는지 또는 코딩 트리 유닛 스캔이 수직 방향으로 시작되는지를 나타내는 정보를 사용하여 상기 인코딩된 화상 데이터를 디코딩하도록 구성되며, 상기 인디케이션 데이터는 상기 정보를 포함하는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 57 항 또는 제 58 항에 있어서,
상기 데이터 디코더(170)는 상기 복수의 코딩 영역 중 적어도 하나가 상기 복수의 코딩 영역 중 다른 하나를 둘러싸는지 또는 상기 복수의 코딩 영역 중 어떤 것도 상기 코딩 영역 중 다른 하나를 둘러싸지 않는지를 나타내는 비연속적 정보를 사용하여 상기 인코딩된 화상 데이터를 디코딩하도록 구성되며, 상기 인디케이션 데이터는 상기 정보를 포함하는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 57 항 또는 제 58 항에 있어서,
상기 데이터 디코더(170)는 상기 복수의 코딩 영역 중 하나에 대해 상기 코딩 영역 중 하나 내에서 수평 방향으로 배치되는 코딩 트리 유닛의 수를 지정하는 코딩 트리 유닛의 코딩 영역 폭을 나타내는 정보를 사용하여 상기 인코딩된 화상 데이터를 디코딩하도록 구성되며, 상기 인디케이션 데이터는 상기 정보를 포함하는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 57 항 또는 제 58 항에 있어서,
상기 데이터 디코더(170)는 상기 복수의 코딩 영역 중 하나에 대해 상기 코딩 영역 중 하나 내에서 수직 방향으로 배치되는 코딩 트리 유닛의 수를 지정하는 코딩 트리 유닛의 코딩 영역 높이를 나타내는 정보를 사용하여 상기 인코딩된 화상 데이터를 디코딩하도록 구성되며, 상기 인디케이션 데이터는 상기 정보를 포함하는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 삭제
- 삭제
- 삭제
- 삭제
- 제 57 항 또는 제 58 항에 있어서,
상기 데이터 디코더(170)는 상기 코딩 영역의 상기 하나 이상의 코딩 트리 유닛 중 하나를 나타내는 시작 어드레스가 나타내어지는지 또는 상기 코딩 영역의 상기 하나 이상의 코딩 트리 유닛 중 하나를 나타내는 상기 시작 어드레스가 나타내어지지 않는지 코딩 영역에 대한 인디케이션을 사용하여 상기 인코딩된 화상 데이터를 디코딩하도록 구성되고,
상기 코딩 영역의 상기 하나 이상의 코딩 트리 유닛 중 하나를 나타내는 상기 시작 어드레스가 나타내어지지 않으면, 상기 데이터 디코더(170)는 코딩 영역 폭 및 상기 코딩 영역의 코딩 높이 및 상기 코딩 영역의 코딩 영역 스캔 방향에 따라 상기 코딩 영역의 상기 하나 이상의 코딩 트리 유닛 중 하나를 나타내는 상기 시작 어드레스를 결정하도록 구성되는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 57 항 또는 제 58 항에 있어서,
상기 데이터 디코더(170)는 상기 화상을 한번 이상 스플릿함으로써 상기 복수의 코딩 영역을 획득하기 위해 상기 화상을 한번 이상 스플릿하는 방법에 대한 정보를 사용하여 상기 인코딩된 화상 데이터를 디코딩하도록 구성되며, 상기 인디케이션 데이터는 상기 정보를 포함하는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 88 항에 있어서,
상기 데이터 디코더(170)는 복수의 코딩 영역 스플릿 위치를 나타내는 정보를 사용하여 상기 인코딩된 화상 데이터를 디코딩하도록 구성되며, 상기 인디케이션 데이터는 상기 정보를 포함하는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 89 항에 있어서,
상기 데이터 디코더(170)는 상기 복수의 코딩 영역 스플릿 위치를 순서화된 시퀀스로서 나타내는 정보를 사용하여 상기 인코딩된 화상 데이터를 디코딩하도록 구성되며, 상기 인디케이션 데이터는 상기 정보를 포함하는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 89 항에 있어서,
상기 데이터 디코더(170)는 상기 복수의 코딩 영역 스플릿 위치를 복수의 코딩 영역 스플릿 위치 값으로서 나타내는 정보를 사용하여 상기 인코딩된 화상 데이터를 디코딩하도록 구성되며, 상기 복수의 코딩 영역 스플릿 위치 값의 각각은 상기 화상의 폭에 의존하거나 상기 화상의 높이에 의존하며, 상기 인디케이션 데이터는 상기 정보를 포함하는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 88 항에 있어서,
상기 데이터 디코더(170)는 상기 화상을 한번 이상 계층적으로 스플릿함으로써 상기 복수의 코딩 영역을 획득하기 위해 상기 화상을 한번 이상 계층적으로 스플릿하는 방법에 대한 정보를 포함하는 상기 복수의 코딩 영역에 대한 정보를 사용하여 상기 인코딩된 화상 데이터를 디코딩하도록 구성되며, 상기 인디케이션 데이터는 상기 정보를 포함하는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 57 항 또는 제 58 항 있어서,
상기 데이터 디코더(170)는 상기 하나 이상의 코딩 영역 중 하나의 코딩 영역에 대한 하나 이상의 영역 열 정지 플래그를 포함하는 상기 복수의 코딩 영역에 대한 정보를 사용하여 상기 인코딩된 화상 데이터를 디코딩하도록 구성되며, 상기 하나 이상의 코딩 영역 중 하나의 코딩 영역의 영역 열 정지 플래그가 정지 값으로 설정되면, 상기 영역 열 정지 플래그는 상기 코딩 영역의 폭을 나타내거나,
상기 데이터 디코더(170)는 상기 하나 이상의 코딩 영역 중 하나의 코딩 영역에 대한 하나 이상의 영역 라인 정지 플래그를 포함하는 상기 복수의 코딩 영역에 대한 정보를 사용하여 상기 인코딩된 화상 데이터를 디코딩하도록 구성되며, 상기 하나 이상의 코딩 영역 중 하나의 코딩 영역의 영역 라인 정지 플래그가 정지 값으로 설정되면, 상기 영역 라인 정지 플래그는 상기 코딩 영역의 높이를 나타내는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 57 항 또는 제 58 항에 있어서,
상기 데이터 디코더(170)는 명시적 시그널링 모드가 활성적인지 또는 상기 명시적 시그널링 모드가 비활성적인지를 나타내는 상기 인디케이션 데이터 내의 인디케이션을 사용하여 상기 인코딩된 화상 데이터를 디코딩하도록 구성되며,
상기 명시적 시그널링 모드가 비활성적이고, 상기 코딩 영역의 상기 하나 이상의 코딩 트리 유닛 중 하나의 코딩 트리 유닛이 상기 화상의 화상 경계에 위치되는 경우, 상기 데이터 디코더(170)는 상기 화상의 상기 화상 경계에 따라 상기 인코딩된 화상 데이터를 디코딩하도록 구성되는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 57 항 또는 제 58 항에 있어서,
2개 이상의 코딩 트리 유닛을 포함하는 상기 하나 이상의 코딩 영역의 각각의 코딩 영역의 상기 코딩 순서는 래스터 스캔에 의존하고,
상기 데이터 디코더(170)는 상기 래스터 스캔에 따라 상기 인코딩된 화상 데이터를 디코딩하도록 구성되며,
상기 데이터 디코더(170)는 2개 이상의 코딩 트리 유닛을 포함하는 상기 하나 이상의 코딩 영역의 각각의 코딩 영역을 인코딩하기 위해 상기 래스터 스캔이 사용되었음을 나타내는 정보를 수신하도록 구성되며, 상기 인디케이션 데이터는 상기 정보를 포함하는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 57 항 또는 제 58 항에 있어서,
2개 이상의 코딩 트리 유닛을 포함하는 상기 하나 이상의 코딩 영역 중 하나의 코딩 영역의 상기 코딩 순서는 각도를 나타내는 기울기에 의존하는 스캔 순서에 의존하고, 상기 인디케이션 데이터는 상기 코딩 영역에 대한 상기 정보를 포함하며,
상기 코딩 영역의 상기 2개 이상의 코딩 트리 유닛 중 제 1 코딩 트리 유닛을 디코딩한 후, 상기 데이터 디코더(170)는 상기 코딩 영역의 상기 코딩 트리 유닛 중 제 1 코딩 트리 유닛의 위치, 디코딩되지 않은 상기 코딩 영역의 다른 코딩 트리 유닛 및 상기 기울기에 따라 상기 코딩 영역 내의 상기 2개 이상의 코딩 트리 유닛 중 제 2 코딩 트리 유닛을 결정하도록 구성되며,
상기 데이터 디코더(170)는 상기 2개 이상의 코딩 트리 유닛 중 상기 제 2 코딩 트리 유닛을 디코딩하도록 구성되는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 96 항에 있어서,
상기 데이터 디코더(170)는 화살표가 시작점 및 상기 기울기에 의해 정의되도록 상기 코딩 영역 내의 상기 2개 이상의 코딩 트리 유닛 중 제 2 코딩 트리 유닛을 결정하도록 구성되고, 상기 시작점은 상기 코딩 영역 내의 상기 코딩 트리 유닛 중 제 1 코딩 트리 유닛의 위치이고, 상기 2개 이상의 코딩 트리 유닛 중 제 2 코딩 트리 유닛의 위치를 가리키는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 96 항에 있어서,
상기 데이터 디코더(170)는 2개 이상의 코딩 트리 유닛을 포함하는 상기 하나 이상의 코딩 영역의 각각의 코딩 영역을 인코딩하기 위해 대각선 스캔이 사용되었음을 나타내는 정보 인디케이션 데이터를 수신하도록 구성되며, 상기 인디케이션 데이터는 상기 정보를 포함하는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 57 항 또는 제 58 항에 있어서,
5개 이상의 코딩 트리 유닛을 포함하는 코딩 영역의 상기 코딩 순서는 스캔 순서에 의존하며, 상기 스캔 순서는 0°인 제 1 각도에 의존하고, 135°인 제 2 각도에 의존하며, 45°인 제 3 각도에 의존하고,
상기 코딩 영역의 제 1 코딩 트리 유닛을 디코딩한 후, 상기 데이터 디코더(170)는 상기 코딩 영역 내의 상기 제 1 코딩 트리 유닛의 위치에서의 제 1 시작점을 갖는 제 1 화살표가 미리 정의된 방향에 대해 0°인 제 1 각도를 둘러싸고, 상기 제 1 화살표가 상기 코딩 영역 내의 제 2 코딩 트리 유닛을 가리키도록 코딩 트리 영역의 제 2 코딩 트리 유닛을 결정하기 위해 구성되고, 상기 데이터 디코더(170)는 상기 코딩 영역의 상기 제 2 코딩 트리 유닛을 디코딩하도록 구성되고,
상기 코딩 영역의 제 2 코딩 트리 유닛을 디코딩한 후, 상기 데이터 디코더(170)는 상기 코딩 영역 내의 상기 제 2 코딩 트리 유닛의 위치에서의 제 2 시작점을 갖는 제 2 화살표가 미리 정의된 방향에 대해 135°인 제 2 각도를 둘러싸고, 상기 제 2 화살표가 상기 코딩 영역 내의 제 3 코딩 트리 유닛을 가리키도록 상기 코딩 트리 영역의 제 3 코딩 트리 유닛을 결정하기 위해 구성되고, 상기 데이터 디코더(170)는 상기 코딩 영역의 상기 제 3 코딩 트리 유닛을 디코딩하도록 구성되며,
상기 코딩 영역의 상기 제 3 코딩 트리 유닛을 디코딩한 후, 상기 데이터 디코더(170)는 상기 코딩 영역 내의 상기 제 3 코딩 트리 유닛의 위치에서의 제 3 시작점을 갖는 제 3 화살표가 상기 미리 정의된 방향에 대해 0°인 상기 제 1 각도를 둘러싸고, 상기 제 3 화살표가 상기 코딩 영역 내의 제 4 코딩 트리 유닛을 가리키도록 상기 코딩 트리 영역의 제 4 코딩 트리 유닛을 결정하기 위해 구성되고, 상기 데이터 디코더(170)는 상기 코딩 영역의 상기 제 4 코딩 트리 유닛을 디코딩하도록 구성되는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 99 항에 있어서,
상기 코딩 영역의 상기 제 4 코딩 트리 유닛을 디코딩한 후, 상기 데이터 디코더(170)는 상기 코딩 영역 내의 상기 제 4 코딩 트리 유닛의 위치에서의 제 4 시작점을 갖는 제 4 화살표가 미리 정의된 방향에 대해 45°인 제 3 각도를 둘러싸고, 상기 제 4 화살표가 상기 코딩 영역 내의 제 5 코딩 트리 유닛을 가리키도록 상기 코딩 트리 영역의 제 5 코딩 트리 유닛을 결정하기 위해 구성되고, 상기 데이터 디코더(170)는 상기 코딩 영역의 상기 제 5 코딩 트리 유닛을 디코딩하도록 구성되는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 99 항에 있어서,
상기 데이터 디코더(170)는 5개 이상의 코딩 트리 유닛을 포함하는 상기 하나 이상의 코딩 영역의 각각의 상기 영역을 인코딩하기 위해 z 스캔이 사용되었음을 나타내는 정보를 수신하도록 구성되며, 상기 인디케이션 데이터는 상기 정보를 포함하는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 57 항 또는 제 58 항에 있어서,
2개 이상의 코딩 트리 유닛을 포함하는 상기 하나 이상의 코딩 영역 중 하나의 코딩 영역의 상기 코딩 순서는 하나 이상의 스캔 방향을 포함하는 스캔 순서에 의존하고,
상기 코딩 영역의 제 1 코딩 트리 유닛을 디코딩한 후, 상기 데이터 디코더(170)는 제 1 코딩 트리 유닛의 위치 및 상기 하나 이상의 스캔 방향 중 제 1 스캔 방향에 따라 코딩 트리 영역의 제 2 코딩 트리 유닛을 결정하도록 구성되고, 상기 데이터 디코더(170)는 상기 코딩 영역의 상기 제 2 코딩 트리 유닛을 디코딩하도록 구성되는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 102 항에 있어서,
상기 데이터 디코더(170)는 상기 하나 이상의 스캔 방향을 포함하는 상기 스캔 순서를 나타내는 정보를 수신하도록 구성되며, 상기 인디케이션 데이터는 상기 정보를 포함하는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 102 항에 있어서,
상기 데이터 디코더(170)는 상기 코딩 영역의 제 1 코딩 트리 유닛의 인접한 이웃을 평가함으로써 상기 하나 이상의 스캔 방향 중 하나의 스캔 방향을 도출하도록 구성되고,
상기 제 1 코딩 트리 유닛이 하단 경계에 인접한 상기 2개 이상의 코딩 트리 유닛의 코딩 트리 유닛 이웃을 갖거나, 상기 제 1 코딩 트리 유닛이 상기 화상의 하단 코딩 트리 유닛 라인에 위치되고, 오른쪽에 인접한 이웃이 없고, 가장 오른쪽 코딩 트리 유닛 열에 위치되지 않는 경우, 상기 스캔 방향은 오른쪽 위쪽 스캔이고,
상기 제 1 코딩 트리 유닛이 하단 경계에 인접한 상기 2개 이상의 코딩 트리 유닛의 코딩 트리 유닛 이웃을 갖거나, 상기 제 1 코딩 트리 유닛이 상기 화상의 하단 코딩 트리 유닛 라인에 위치되고, 상기 오른쪽에 인접한 이웃이 있거나 상기 화상의 가장 오른쪽 열에 위치되는 경우, 상기 스캔 방향은 왼쪽 위쪽 스캔이고,
상기 제 1 코딩 트리 유닛의 오른쪽에 존재하는 상기 2개 이상의 코딩 트리 유닛의 코딩 트리 유닛 이웃이 이용 가능하거나, 상기 제 1 코딩 트리 유닛이 상기 화상의 가장 오른쪽 열에 위치되는 경우, 상기 스캔 방향은 왼쪽 아래쪽이며,
그렇지 않으면, 상기 스캔 방향은 오른쪽 아래쪽인, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 102 항에 있어서,
상기 데이터 디코더(170)는 상기 하나 이상의 스캔 방향 중 선택된 스캔 방향을 나타내는 인덱스를 나타내는 정보를 수신하도록 구성되며, 상기 인디케이션 데이터는 상기 정보를 포함하는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 57 항 또는 제 58 항에 있어서,
상기 데이터 디코더(170)는 코딩된 비디오 시퀀스의 오류 복원력을 나타내는 정보를 수신하도록 구성되며,
상기 데이터 디코더(170)는 상기 코딩된 비디오 시퀀스의 오류 복원력을 나타내는 정보에 따라 상기 인코딩된 화상 데이터를 디코딩하도록 구성되는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 106 항에 있어서,
상기 오류 복원력에 대한 정보는 상기 코딩된 비디오 시퀀스의 오류 복원력에 대한 3개 이상의 상이한 상태 중 하나를 나타내는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 107 항에 있어서,
상기 3개 이상의 상이한 상태의 제 1 상태는 액세스 유닛이 오류 복원력이 없음을 나타내고,
상기 3개 이상의 상이한 상태의 제 2 상태는 화상 파라미터 세트의 제 1 복수의 액세스 유닛이 오류 복원력이 없음을 나타내며,
상기 3개 이상의 상이한 상태의 제 3 상태는 시퀀스 파라미터 세트의 제 2 복수의 액세스 유닛이 오류 복원력이 없음을 나타내는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 106 항에 있어서,
상기 오류 복원력에 대한 정보는 상기 코딩된 비디오 시퀀스의 오류 복원력에 대한 4개 이상의 상이한 상태 중 하나를 나타내고,
상기 4개 이상의 상이한 상태의 제 1 상태는 상기 오류 복원력이 화상 레벨에서 손상되고, 다중 화상 레벨에서 손상되며, 시퀀스 레벨에서 손상됨을 나타내고,
상기 4개 이상의 상이한 상태 중 제 2 상태는 상기 오류 복원력이 상기 화상 레벨에서 손상되고, 상기 다중 화상 레벨에서 손상되지만, 상기 시퀀스 레벨에서는 손상되지 않음을 나타내고,
상기 4개 이상의 상이한 상태 중 제 3 상태는 상기 오류 복원력이 상기 화상 레벨에서 손상되지만, 상기 오류 복원력이 다중 화상 레벨에서 손상되지 않고, 시퀀스 레벨에서 손상되지 않음을 나타내며,
상기 4개 이상의 상이한 상태 중 제 4 상태는, 예를 들어, 오류 복원력이 화상 레벨에서 손상되지 않고, 다중 화상 레벨에서 손상되지 않으며, 시퀀스 레벨에서 손상되지 않음을 나타내는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 57 항 또는 제 58 항에 있어서,
상기 데이터 디코더(170)는 상기 화상 내에 위치되는 상기 복수의 코딩 트리 유닛 중 8개의 이웃한 코딩 트리 유닛 중 하나 이상의 코딩 트리 유닛에 따라 상기 화상 내에 위치되는 상기 복수의 코딩 트리 유닛 중 하나의 코딩 트리 유닛을 디코딩하도록 구성되며, 상기 8개의 이웃한 코딩 트리 유닛은 상기 코딩 트리 유닛에 이웃하는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 110 항에 있어서,
상기 데이터 디코더(170)는 상기 8개의 이웃한 코딩 트리 유닛 중 하나의 코딩 트리 유닛을 상기 8개의 이웃한 코딩 트리 유닛 중 다른 하나의 코딩 트리 유닛으로 시프트함으로써 상기 화상 내에 위치되는 상기 복수의 코딩 트리 유닛 중 상기 코딩 트리 유닛을 디코딩하도록 구성되는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 제 110 항에 있어서,
상기 8개의 이웃한 코딩 트리 유닛은 제 1 이웃이고,
상기 데이터 디코더(170)는 제 2 이웃의 다른 8개의 이웃한 코딩 트리 유닛 중 제 3 코딩 트리 유닛을 상기 제 1 이웃의 8개의 이웃한 코딩 트리 유닛 중 제 2 코딩 트리 유닛으로 시프트함으로써 상기 복수의 코딩 트리 유닛 중 상기 코딩 트리 유닛을 인코딩하도록 구성되며, 상기 제 1 이웃의 상기 8개의 이웃한 코딩 트리 유닛의 상기 제 2 코딩 트리 유닛이 이용 불가능한 경우, 상기 제 2 이웃의 상기 다른 8개의 이웃한 코딩 트리 유닛은 상기 제 2 코딩 트리 유닛에 이웃하는, 인코딩된 비디오 신호를 디코딩하는 비디오 디코더(151). - 시스템으로서,
제 1 항 또는 제 2 항에 따른 비디오 인코더(101), 및
제 57 항 또는 제 58 항에 따른 비디오 디코더(151)를 포함하는데,
제 1 항 또는 제 2 항에 따른 상기 비디오 인코더(101)는 인코딩된 비디오 신호를 생성하도록 구성되고,
제 57 항 또는 제 58 항에 따른 상기 비디오 디코더(151)는 비디오의 화상을 재구성하기 위해 상기 인코딩된 비디오 신호를 디코딩하도록 구성되는, 시스템. - 인코딩된 비디오 신호를 생성하여 화상을 인코딩하는 방법에 있어서,
비디오의 화상을 인코딩된 화상 데이터로 인코딩하는 단계,
인디케이션 데이터를 생성하는 단계, 및
상기 인코딩된 화상 데이터 및 상기 인디케이션 데이터를 포함하는 상기 인코딩된 비디오 신호를 생성하는 단계를 포함하는데,
상기 화상은 복수의 코딩 영역으로 분할되고, 상기 복수의 코딩 영역의 각각의 코딩 영역은 상기 화상 내에 위치되며, 상기 복수의 코딩 영역의 각각은 상기 화상 내에 위치되는 복수의 코딩 트리 유닛의 하나 이상의 코딩 트리 유닛을 포함하며, 상기 화상을 인코딩하는 단계는 상기 복수의 코딩 영역에 따라 수행되고, 상기 인디케이션 데이터를 생성하는 단계는 상기 인디케이션 데이터가 상기 복수의 코딩 영역에 대한 정보를 포함하도록 수행되며,
상기 복수의 코딩 영역 중 하나 이상의 코딩 영역은 상기 복수의 코딩 트리 유닛 중 2개 이상의 코딩 트리 유닛을 포함하며, 2개 이상의 코딩 트리 유닛을 포함하는 상기 하나 이상의 코딩 영역의 각각의 코딩 영역은 상기 코딩 영역의 상기 2개 이상의 코딩 트리 유닛에 대한 코딩 순서를 나타내며, 상기 화상을 인코딩하는 단계는 2개 이상의 코딩 트리 유닛을 포함하는 상기 하나 이상의 코딩 영역의 상기 코딩 순서에 따라 수행되고, 상기 인디케이션 데이터를 생성하는 단계는 상기 인디케이션 데이터가 2개 이상의 코딩 트리 유닛을 포함하는 상기 하나 이상의 코딩 영역의 상기 코딩 순서에 대한 정보를 포함하도록 수행되고,
상기 인디케이션 데이터는 상기 복수의 코딩 영역 중 하나의 코딩 영역에 대해,
상기 코딩 영역 내의 수평 방향의 마지막 코딩 트리 유닛이 상기 수평 방향의 상기 코딩 트리 유닛에 선행하는 상기 코딩 영역의 다른 코딩 트리 유닛보다 작은지 여부 - 상기 코딩 영역은 상기 수평 방향의 복수의 마지막 코딩 트리 유닛을 포함하고, 상기 수평 방향의 상기 마지막 코딩 트리 유닛은 상기 수평 방향의 상기 복수의 마지막 코딩 트리 유닛 중 하나이고, 상기 코딩 영역 내의 상기 수평 방향의 상기 마지막 코딩 트리 유닛이 상기 수평 방향의 상기 마지막 코딩 트리 유닛에 선행하는 상기 코딩 영역의 상기 다른 코딩 트리 유닛보다 작다면 상기 수평 방향의 상기 복수의 마지막 코딩 트리 유닛의 각각은 동일한 폭을 가짐 -; 또는
상기 코딩 영역 내의 수직 방향의 마지막 코딩 트리 유닛이 상기 수직 방향의 상기 코딩 트리 유닛에 선행하는 상기 코딩 영역의 다른 코딩 트리 유닛보다 작은지 여부 - 상기 코딩 영역은 상기 수직 방향의 복수의 마지막 코딩 트리 유닛을 포함하고, 상기 수직 방향의 상기 마지막 코딩 트리 유닛은 상기 수직 방향의 상기 복수의 마지막 코딩 트리 유닛 중 하나이고, 상기 코딩 영역 내의 상기 수직 방향의 상기 마지막 코딩 트리 유닛이 상기 수직 방향의 상기 마지막 코딩 트리 유닛에 선행하는 상기 코딩 영역의 상기 다른 코딩 트리 유닛보다 작다면 상기 수직 방향의 상기 복수의 마지막 코딩 트리 유닛의 각각은 동일한 높이를 가짐 -
중 적어도 하나를 나타내는 것인, 방법. - 비디오의 화상을 재구성하기 위해 인코딩된 화상 데이터 및 비디오의 화상의 인디케이션 데이터를 포함하는 인코딩된 비디오 신호를 디코딩하는 방법에 있어서,
상기 인코딩된 비디오 신호를 수신하는 단계, 및
상기 인디케이션 데이터를 사용하여 상기 인코딩된 화상 데이터를 디코딩하여 상기 비디오의 화상을 재구성하는 단계를 포함하는데,
상기 화상은 복수의 코딩 영역으로 분할되고, 상기 복수의 코딩 영역의 각각의 코딩 영역은 상기 화상 내에 위치되며, 상기 복수의 코딩 영역의 각각은 상기 화상 내에 위치되는 복수의 코딩 트리 유닛의 하나 이상의 코딩 트리 유닛을 포함하며, 상기 인디케이션 데이터를 사용하여, 상기 인코딩된 화상 데이터를 디코딩하는 단계는 상기 복수의 코딩 영역에 따라 수행되며, 상기 인디케이션 데이터는 상기 복수의 코딩 영역에 대한 정보를 포함하며,
상기 복수의 코딩 영역 중 하나 이상의 코딩 영역은 상기 복수의 코딩 트리 유닛 중 2개 이상의 코딩 트리 유닛을 포함하며, 2개 이상의 코딩 트리 유닛을 포함하는 상기 하나 이상의 코딩 영역의 각각의 코딩 영역은 상기 코딩 영역의 상기 2개 이상의 코딩 트리 유닛에 대한 코딩 순서를 나타내며, 상기 인디케이션 데이터를 사용하여, 상기 인코딩된 화상 데이터를 디코딩하는 단계는 2개 이상의 코딩 트리 유닛을 포함하는 상기 하나 이상의 코딩 영역의 코딩 순서에 따라 수행되며, 상기 인디케이션 데이터는 2개 이상의 코딩 트리 유닛을 포함하는 상기 하나 이상의 코딩 영역의 코딩 순서에 대한 정보를 포함하고,
상기 방법은, 상기 복수의 코딩 영역 중 하나의 코딩 영역에 대해,
상기 코딩 영역 내의 수평 방향의 마지막 코딩 트리 유닛이 상기 수평 방향의 상기 코딩 트리 유닛에 선행하는 상기 코딩 영역의 다른 코딩 트리 유닛보다 작은지 여부 - 상기 인디케이션 데이터는 상기 정보를 포함하고, 상기 코딩 영역은 상기 수평 방향의 복수의 마지막 코딩 트리 유닛을 포함하고, 상기 수평 방향의 상기 마지막 코딩 트리 유닛은 상기 수평 방향의 상기 복수의 마지막 코딩 트리 유닛 중 하나이고, 상기 코딩 영역 내의 상기 수평 방향의 상기 마지막 코딩 트리 유닛이 상기 수평 방향의 상기 마지막 코딩 트리 유닛에 선행하는 상기 코딩 영역의 상기 다른 코딩 트리 유닛보다 작다면 상기 수평 방향의 상기 복수의 마지막 코딩 트리 유닛의 각각은 동일한 폭을 가짐 -; 또는
상기 코딩 영역 내의 수직 방향의 마지막 코딩 트리 유닛이 상기 수직 방향의 상기 코딩 트리 유닛에 선행하는 상기 코딩 영역의 다른 코딩 트리 유닛보다 작은지 여부 - 상기 인디케이션 데이터는 상기 정보를 포함하고, 상기 코딩 영역은 상기 수직 방향의 복수의 마지막 코딩 트리 유닛을 포함하고, 상기 수직 방향의 상기 마지막 코딩 트리 유닛은 상기 수직 방향의 상기 복수의 마지막 코딩 트리 유닛 중 하나이고, 상기 코딩 영역 내의 상기 수직 방향의 상기 마지막 코딩 트리 유닛이 상기 수직 방향의 상기 마지막 코딩 트리 유닛에 선행하는 상기 코딩 영역의 상기 다른 코딩 트리 유닛보다 작다면 상기 수직 방향의 상기 복수의 마지막 코딩 트리 유닛의 각각은 동일한 높이를 가짐 - ,
중 적어도 하나를 나타내는 정보를 사용하여 상기 인코딩된 화상 데이터를 디코딩하는 단계를 더 포함하는, 방법. - 컴퓨터 또는 신호 프로세서 상에서 실행될 때 제 114 항 또는 제 115 항의 방법을 구현하기 위한 데이터가 기록된 컴퓨터 판독가능한 기록 매체.
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020237021496A KR20230106707A9 (ko) | 2018-07-09 | 2019-07-09 | 코딩된 화상의 다양한 공간 분할을 위한 인코더 및 디코더, 인코딩 방법 및 디코딩 방법 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP18182554.8 | 2018-07-09 | ||
EP18182554 | 2018-07-09 | ||
PCT/EP2019/068429 WO2020011796A1 (en) | 2018-07-09 | 2019-07-09 | Encoder and decoder, encoding method and decoding method for versatile spatial partitioning of coded pictures |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020237021496A Division KR20230106707A9 (ko) | 2018-07-09 | 2019-07-09 | 코딩된 화상의 다양한 공간 분할을 위한 인코더 및 디코더, 인코딩 방법 및 디코딩 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210029256A KR20210029256A (ko) | 2021-03-15 |
KR102549562B1 true KR102549562B1 (ko) | 2023-06-29 |
Family
ID=62909397
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217004050A KR102549562B1 (ko) | 2018-07-09 | 2019-07-09 | 코딩된 화상의 다양한 공간 분할을 위한 인코더 및 디코더, 인코딩 방법 및 디코딩 방법 |
KR1020237021496A KR20230106707A9 (ko) | 2018-07-09 | 2019-07-09 | 코딩된 화상의 다양한 공간 분할을 위한 인코더 및 디코더, 인코딩 방법 및 디코딩 방법 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020237021496A KR20230106707A9 (ko) | 2018-07-09 | 2019-07-09 | 코딩된 화상의 다양한 공간 분할을 위한 인코더 및 디코더, 인코딩 방법 및 디코딩 방법 |
Country Status (7)
Country | Link |
---|---|
US (3) | US11336890B2 (ko) |
EP (1) | EP3821600A1 (ko) |
JP (2) | JP7248775B2 (ko) |
KR (2) | KR102549562B1 (ko) |
CN (2) | CN117750026A (ko) |
TW (2) | TWI792578B (ko) |
WO (1) | WO2020011796A1 (ko) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FI3903489T3 (fi) * | 2018-12-27 | 2024-06-10 | Huawei Tech Co Ltd | Joustavia ruudukoinnin parannuksia videokoodauksessa |
US11758132B2 (en) * | 2018-12-28 | 2023-09-12 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Encoder and decoder, encoding method and decoding method with complexity handling for flexibly sized picture partitions |
WO2020142483A1 (en) * | 2018-12-31 | 2020-07-09 | Futurewei Technologies, Inc. | Explicit address signaling in video coding |
JP7403245B2 (ja) | 2019-06-21 | 2023-12-22 | キヤノン株式会社 | 画像復号装置、画像復号方法 |
JP2021002773A (ja) * | 2019-06-21 | 2021-01-07 | キヤノン株式会社 | 画像符号化装置、画像復号装置、画像符号化方法、画像復号方法 |
US11425376B2 (en) * | 2019-08-23 | 2022-08-23 | Apple Inc. | Image signal encoding/decoding method and apparatus therefor |
CN110677692B (zh) * | 2019-09-27 | 2022-12-06 | 腾讯科技(深圳)有限公司 | 视频解码方法及装置、视频编码方法及装置 |
BR112022009616A2 (pt) * | 2019-11-18 | 2022-08-02 | Lg Electronics Inc | Método e dispositivo de codificação de imagem com base em filtragem |
BR112022009619A2 (pt) * | 2019-11-18 | 2022-08-02 | Lg Electronics Inc | Dispositivo de codificação de imagem e método para controlar filtragem em loop |
KR20220082058A (ko) * | 2019-11-18 | 2022-06-16 | 엘지전자 주식회사 | 루프 필터링을 제어하는 영상 코딩 장치 및 방법 |
CN113475070B (zh) * | 2019-12-24 | 2024-06-25 | 瑞典爱立信有限公司 | 针对自适应环路滤波的虚拟边界处理 |
KR20220144802A (ko) | 2020-02-24 | 2022-10-27 | 바이트댄스 아이엔씨 | 서브픽처의 높이의 도출 |
WO2021172891A1 (ko) * | 2020-02-25 | 2021-09-02 | 엘지전자 주식회사 | 인루프 필터링 기반 영상 코딩 장치 및 방법 |
JP7479492B2 (ja) | 2020-03-03 | 2024-05-08 | バイトダンス インコーポレイテッド | ビデオ・コーディングにおける低周波ノン・セパラブル変換シグナリング |
WO2021182816A1 (ko) * | 2020-03-09 | 2021-09-16 | 엘지전자 주식회사 | 직사각형 슬라이스의 크기 정보를 선택적으로 부호화 하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법 |
WO2021182802A1 (ko) * | 2020-03-09 | 2021-09-16 | 엘지전자 주식회사 | 비디오 또는 영상 코딩 시스템에서의 타일과 관련된 정보 및 슬라이스와 관련된 정보에 기반한 영상 코딩 방법 |
US11800096B2 (en) * | 2020-03-31 | 2023-10-24 | Tencent America LLC | Method for signaling virtual boundary signaling with subpictures in coded video stream |
US20240040130A1 (en) * | 2020-04-22 | 2024-02-01 | Telefonaktiebolaget Lm Ericsson (Publ) | Compresssed picture-in-picture signaling |
EP4254948A1 (en) * | 2022-03-31 | 2023-10-04 | Beijing Xiaomi Mobile Software Co., Ltd. | Encoding/decoding video picture partitionned in ctu grids |
WO2023195819A1 (ko) * | 2022-04-07 | 2023-10-12 | 엘지전자 주식회사 | 적응적 슬라이스 스캔 방식에 기반한 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장하는 기록 매체 |
WO2024112035A1 (ko) * | 2022-11-24 | 2024-05-30 | 삼성전자 주식회사 | 전자 장치 및 전자 장치의 데이터 압축 방법 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017108638A1 (en) * | 2015-12-21 | 2017-06-29 | Thomson Licensing | Apparatus, system and method of video compression using smart coding tree unit scanning and corresponding computer program and medium |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003259377A (ja) * | 2002-03-06 | 2003-09-12 | Matsushita Electric Ind Co Ltd | 動画像符号化方法、動画像復号化方法および符号列フォーマット |
KR101675118B1 (ko) * | 2010-01-14 | 2016-11-10 | 삼성전자 주식회사 | 스킵 및 분할 순서를 고려한 비디오 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치 |
MY163983A (en) | 2011-03-10 | 2017-11-15 | Sharp Kk | A method for decoding video |
WO2014106692A1 (en) * | 2013-01-07 | 2014-07-10 | Nokia Corporation | Method and apparatus for video coding and decoding |
US9578328B2 (en) * | 2013-07-15 | 2017-02-21 | Qualcomm Incorporated | Cross-layer parallel processing and offset delay parameters for video coding |
US9514928B2 (en) * | 2014-01-15 | 2016-12-06 | Taiwan Semiconductor Manufacturing Co., Ltd. | Selective repairing process for barrier layer |
EP3114835B1 (en) * | 2014-03-04 | 2020-04-22 | Microsoft Technology Licensing, LLC | Encoding strategies for adaptive switching of color spaces |
EP3917146A1 (en) * | 2014-09-30 | 2021-12-01 | Microsoft Technology Licensing, LLC | Rules for intra-picture prediction modes when wavefront parallel processing is enabled |
JP2016103707A (ja) | 2014-11-27 | 2016-06-02 | 富士通株式会社 | 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム |
KR20170128390A (ko) | 2015-03-19 | 2017-11-22 | 엘지전자 주식회사 | 비디오 신호의 처리 방법 및 이를 위한 장치 |
JP6906940B2 (ja) | 2015-12-28 | 2021-07-21 | 株式会社半導体エネルギー研究所 | 半導体装置 |
EP3758377B1 (en) | 2016-03-16 | 2023-10-25 | HFI Innovation Inc. | Method and apparatus of block partitioning |
WO2019185815A1 (en) | 2018-03-29 | 2019-10-03 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Partitioning concepts for block-based picture coding |
KR102566836B1 (ko) | 2018-03-29 | 2023-08-16 | 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. | 병렬 코딩 기능들 향상을 위한 컨셉 |
-
2019
- 2019-07-09 CN CN202311616944.7A patent/CN117750026A/zh active Pending
- 2019-07-09 TW TW110135275A patent/TWI792578B/zh active
- 2019-07-09 WO PCT/EP2019/068429 patent/WO2020011796A1/en unknown
- 2019-07-09 KR KR1020217004050A patent/KR102549562B1/ko active IP Right Grant
- 2019-07-09 JP JP2021500701A patent/JP7248775B2/ja active Active
- 2019-07-09 TW TW108124128A patent/TWI743514B/zh active
- 2019-07-09 CN CN201980058369.9A patent/CN112655208B/zh active Active
- 2019-07-09 EP EP19735604.1A patent/EP3821600A1/en active Pending
- 2019-07-09 KR KR1020237021496A patent/KR20230106707A9/ko not_active Application Discontinuation
-
2021
- 2021-01-04 US US17/140,560 patent/US11336890B2/en active Active
-
2022
- 2022-04-12 US US17/719,249 patent/US11770528B2/en active Active
-
2023
- 2023-03-16 JP JP2023041762A patent/JP2023072073A/ja active Pending
- 2023-08-14 US US18/449,562 patent/US20230412803A1/en active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017108638A1 (en) * | 2015-12-21 | 2017-06-29 | Thomson Licensing | Apparatus, system and method of video compression using smart coding tree unit scanning and corresponding computer program and medium |
Non-Patent Citations (2)
Title |
---|
Taichiro Shiodera et al, BLOCK BASED EXTRA/INTER-POLATING PREDICTION FOR INTRA CODING, IEEE, 2007 IEEE International Conference on Image Processing, 2007-11-12 pp. 445-448 |
Ye-Kui Wang, et al. Tile groups, JCT-VC of ITU-T and ISO/IEC. JCTVC-G318, 2011-11-23, pp. 1-9 |
Also Published As
Publication number | Publication date |
---|---|
EP3821600A1 (en) | 2021-05-19 |
US20220248010A1 (en) | 2022-08-04 |
KR20230106707A9 (ko) | 2024-03-25 |
US20210127111A1 (en) | 2021-04-29 |
KR20210029256A (ko) | 2021-03-15 |
TW202209895A (zh) | 2022-03-01 |
TW202013980A (zh) | 2020-04-01 |
JP2021524706A (ja) | 2021-09-13 |
JP7248775B2 (ja) | 2023-03-29 |
CN112655208A (zh) | 2021-04-13 |
WO2020011796A1 (en) | 2020-01-16 |
US20230412803A1 (en) | 2023-12-21 |
US11770528B2 (en) | 2023-09-26 |
JP2023072073A (ja) | 2023-05-23 |
TWI743514B (zh) | 2021-10-21 |
TWI792578B (zh) | 2023-02-11 |
CN117750026A (zh) | 2024-03-22 |
KR20230106707A (ko) | 2023-07-13 |
US11336890B2 (en) | 2022-05-17 |
CN112655208B (zh) | 2023-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102549562B1 (ko) | 코딩된 화상의 다양한 공간 분할을 위한 인코더 및 디코더, 인코딩 방법 및 디코딩 방법 | |
US9641851B2 (en) | Conformance window information in multi-layer coding | |
US11949859B2 (en) | Reusing adaptive loop filter (ALF) sub-picture boundary processing for raster-scan slice boundaries | |
CA2951522C (en) | Extensible design of nesting supplemental enhancement information (sei) messages | |
US10264272B2 (en) | Device and method for scalable coding of video information | |
JP2024003022A (ja) | ハイレベルシンタックス要素のための制約 | |
US9584808B2 (en) | Device and method for scalable coding of video information | |
US11330297B2 (en) | Methods incorporating extensions to copy-above mode for palette mode coding | |
JPWO2020011796A5 (ko) | ||
WO2015142725A1 (en) | Derivation of end of sequence nal unit information for multi-layer bitstreams | |
US20160029028A1 (en) | Sub-block palette mode | |
US20230060709A1 (en) | Video coding supporting subpictures, slices and tiles | |
US20230199223A1 (en) | High-level syntax for video coding | |
CN114830672A (zh) | 用于在视频编码中发送信号通知图片输出分辨率的***和方法 | |
TWI796589B (zh) | 用於編碼與解碼視訊樣本區塊的方法、設備以及系統 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |