KR20210110710A - 비디오 인코더, 비디오 디코더 및 대응하는 방법 - Google Patents

비디오 인코더, 비디오 디코더 및 대응하는 방법 Download PDF

Info

Publication number
KR20210110710A
KR20210110710A KR1020217025126A KR20217025126A KR20210110710A KR 20210110710 A KR20210110710 A KR 20210110710A KR 1020217025126 A KR1020217025126 A KR 1020217025126A KR 20217025126 A KR20217025126 A KR 20217025126A KR 20210110710 A KR20210110710 A KR 20210110710A
Authority
KR
South Korea
Prior art keywords
picture
subpicture
sub
bitstream
size
Prior art date
Application number
KR1020217025126A
Other languages
English (en)
Inventor
예-쿠이 왕
프뉴 헨드리
Original Assignee
후아웨이 테크놀러지 컴퍼니 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 후아웨이 테크놀러지 컴퍼니 리미티드 filed Critical 후아웨이 테크놀러지 컴퍼니 리미티드
Publication of KR20210110710A publication Critical patent/KR20210110710A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods 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 bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/188Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a video data packet, e.g. a network abstraction layer [NAL] unit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/1883Methods 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • H04N19/29Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding involving scalability at the object level, e.g. video object layer [VOL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/31Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the temporal domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Color Television Systems (AREA)
  • Television Systems (AREA)
  • Time-Division Multiplex Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Studio Circuits (AREA)
  • Control Of El Displays (AREA)

Abstract

비디오 코딩 메커니즘이 개시된다. 상기 비디오 코딩 메커니즘은 픽처로부터 분할된 서브 픽처와, 서브 픽처 크기 및 서브 픽처 위치를 포함하는 시퀀스 파라미터 세트(SPS)를 포함하는 비트스트림을 수신하는 것을 포함한다. 상기 SPS는 상기 서브 픽처의 서브 픽처 크기 및 상기 서브 픽처의 서브 픽처 위치를 획득하기 위해 파싱된다. 상기 서브 픽처는 비디오 시퀀스를 만들기 위해 상기 서브 픽처 크기 및 상기 서브 픽처 위치에 기초하여 디코딩된다. 상기 비디오 시퀀스는 표시를 위해 포워딩된다.

Description

비디오 코딩에서의 서브 픽처 레이아웃 시그널링
관련 출원에 대한 상호 참조
본 특허출원은 2019년 1월 9일에 Ye-Kui Wang 등이 ""Sub-Pictures in Video Coding"이라는 명칭으로 출원한 미국 가출원 제62/790,207호의 이익을 주장하며, 이는 인용에 의해 본 출원에 포함된다.
본 개시내용은 일반적으로 비디오 코딩에 관한 것이고, 특히 비디오 코딩에서의 서브 픽처(sub-picture) 관리에 관한 것이다.
비교적 짧은 비디오라도 묘사하는 데 필요한 비디오 데이터의 양은 상당할 수 있으며, 이는 데이터가 스트리밍되거나 한정된 대역폭 용량을 가진 통신 네트워크를 통해 통신될 때 어려움을 초래할 수 있다. 따라서 비디오 데이터는 일반적으로 현대의 통신 네트워크를 통해 통신되기 전에 압축된다. 메모리 자원이 한정될 수 있기 때문에 비디오가 저장 기기에 저장될 때 비디오의 크기도 문제가 될 수 있다. 비디오 압축 기기는 송신 또는 저장 전에 비디오 데이터를 코딩하기 위해 근원지(source)에서 소프트웨어 및/또는 하드웨어를 사용하여, 디지털 비디오 이미지를 나타내는 데 필요한 데이터의 양을 줄이는 경우가 많다. 그런 다음 압축된 데이터는 비디오 데이터를 디코딩하는 비디오 압축해제기기에 의해 목적지(destination)에서 수신된다. 한정된 네트워크 자원과 더 높은 비디오 품질에 대한 수요가 계속 증가함에 따라, 이미지 품질을 거의 또는 전혀 희생하지 않으면서 압축 비율을 향상시키는 향상된 압축 및 압축해제기술이 바람직하다.
일 실시예에서, 본 개시내용은 디코더에서 구현되는 방법을 포함하며, 상기 방법은, 상기 디코더의 수신기가, 픽처(picture)로부터 분할된 서브 픽처(sub-picture)를 포함하는 비트스트림과 상기 서브 픽처의 서브 픽처 크기 및 상기 서브 픽처의 서브 픽처 위치를 포함하는 시퀀스 파라미터 세트(sequence parameter set, SPS)를 수신하는 단계; 상기 디코더의 프로세서가 상기 SPS를 파싱하여 상기 서브 픽처 크기 및 상기 서브 픽처 위치를 획득하는 단계; 상기 프로세서가 상기 서브 픽처 크기 및 상기 서브 픽처 위치에 기초하여 상기 서브 픽처를 디코딩하여 비디오 시퀀스를 만드는 단계; 및 상기 프로세서가 표시를 위해 상기 비디오 시퀀스를 포워딩하는 단계를 포함한다. 일부 시스템은 타일 및 서브 픽처가 픽처보다 작기 때문에 픽처 파라미터 세트(Picture Parameter Set)에 타일링 정보 및 서브 픽처 정보를 포함한다. 하지만, 서브 픽처는 관심 영역(region of interest, ROI) 애플리케이션 및 서브 픽처 기반 액세스 방식을 지원하는 데 사용될 수 있다. 이러한 애플리케이션은 픽처별로 변경되지 않는다. 개시된 예는 서브 픽처에 대한 레이아웃 정보를 PPS 대신 SPS에 포함한다. 서브 픽처 레이아웃 정보는 서브 픽처 위치 및 서브 픽처 크기를 포함한다. 서브 픽처 위치는 서브 픽처의 좌측 상단 샘플과 픽처의 좌측 상단 샘플 사이의 오프셋이다. 서브 픽처 크기는 루마(luma) 샘플에서 측정한 서브 픽처의 높이와 폭이다. 비디오 시퀀스는 단일 SPS(또는 비디오 세그먼트당 하나)를 포함할 수 있고, 픽처당 하나의 PPS만큼 많이 포함할 수 있다. SPS에 서브 픽처에 대한 레이아웃 정보를 배치하면 레이아웃이 각 PPS에 대해 중복 신호가 아닌 시퀀스/세그먼트에 대해 한 번만 신호를 받게 된다. 따라서, SPS에 서브 픽처 레이아웃을 시그널링하는 것은 코딩 효율을 증대시키므로 인코더 및 디코더에서 네트워크 자원, 메모리 자원, 및/또는 처리 자원의 사용을 감소시킨다. 또한 일부 시스템은 디코더에 의해 도출된 서브 픽처 정보를 가지고 있다. 서브 픽처 정보를 시그널링하면 패킷 손실되는 경우 오류 가능성을 줄이고 서브 픽처 추출 측면에서 추가적인 기능을 지원한다. 따라서, SPS에서 서브 픽처 레이아웃을 시그널링하는 것은 인코더 및/또는 디코더의 기능을 향상시킨다.
선택적으로, 선행하는 측면 중 어느 한 측면에서, 그 측면의 다른 구현예는 다음을 제공한다: 상기 서브 픽처는 시간적 움직임이 제약된(temporal motion constrained) 서브 픽처이고, 상기 서브 픽처 크기 및 상기 서브 픽처 위치는 상기 시간적 움직임이 제약된 서브 픽처의 레이아웃을 지시한다.
선택적으로, 선행하는 측면 중 어느 한 측면에서, 그 측면의 다른 구현예는 다음을 제공한다: 상기 프로세서가 상기 서브 픽처 크기에 기초하여 디스플레이의 크기에 대한 상기 서브 픽처의 크기를 결정하는 단계를 더 포함한다.
선택적으로, 선행하는 측면 중 어느 한 측면에서, 그 측면의 다른 구현예는 다음을 제공한다: 상기 프로세서가 상기 서브 픽처 위치에 기초하여 상기 디스플레이에 대한 상기 서브 픽처의 위치를 결정하는 단계를 더 포함한다.
선택적으로, 선행하는 측면 중 어느 한 측면에서, 그 측면의 다른 구현예는 다음을 제공한다: 상기 서브 픽처 위치는 상기 서브 픽처의 좌측 상단(top-left) 샘플과 상기 픽처의 좌측 상단 샘플 사이의 오프셋 거리(offset distance)를 포함한다.
선택적으로, 선행하는 측면 중 어느 한 측면에서, 그 측면의 다른 구현예는 다음을 제공한다: 상기 서브 픽처 크기는 루마 샘플에서의 서브 픽처 높이 및 루마 샘플에서의 서브 픽처 폭을 포함한다.
선택적으로, 선행하는 측면 중 어느 한 측면에서, 그 측면의 다른 구현예는 다음을 제공한다: 상기 SPS는 상기 픽처로부터 분할된 서브 픽처 각각에 대한 서브 픽처 식별자(identifier, ID)를 더 포함한다.
일 실시예에서, 본 개시내용은 인코더에서 구현되는 방법을 포함하며, 상기 방법은, 상기 인코더의 프로세서가 픽처로부터 분할된 서브 픽처를 비트스트림으로 인코딩하는 단계; 상기 프로세서가 상기 서브 픽처의 서브 픽처 크기 및 서브 픽처 위치를 비트스트림 내의 SPS로 인코딩하는 단계; 및 디코더로의 통신을 위해 상기 인코더의 메모리에 상기 비트스트림을 저장하는 단계를 포함한다. 일부 시스템은 타일 및 서브 픽처가 픽처보다 작기 때문에 픽처 파라미터 세트(Picture Parameter Set)에 타일링 정보 및 서브 픽처 정보를 포함한다. 하지만, 서브 픽처는 관심 영역(ROI) 애플리케이션 및 서브 픽처 기반 액세스 방식을 지원하는 데 사용될 수 있다. 이러한 애플리케이션은 픽처별로 변경되지 않는다. 개시된 예는 서브 픽처에 대한 레이아웃 정보를 PPS 대신 SPS에 포함한다. 서브 픽처 레이아웃 정보는 서브 픽처 위치 및 서브 픽처 크기를 포함한다. 서브 픽처 위치는 서브 픽처의 좌측 상단 샘플과 픽처의 좌측 상단 샘플 사이의 오프셋이다. 서브 픽처 크기는 루마 샘플에서 측정한 서브 픽처의 높이와 폭이다. 비디오 시퀀스는 단일 SPS(또는 비디오 세그먼트당 하나)를 포함할 수 있고, 픽처당 하나의 PPS만큼 많이 포함할 수 있다. SPS에 서브 픽처에 대한 레이아웃 정보를 배치하면 레이아웃이 각 PPS에 대해 중복 신호가 아닌 시퀀스/세그먼트에 대해 한 번만 신호를 받게 된다. 따라서, SPS에 서브 픽처 레이아웃을 시그널링하는 것은 코딩 효율을 증대시키므로 인코더 및 디코더에서 네트워크 자원, 메모리 자원, 및/또는 처리 자원의 사용을 감소시킨다. 또한 일부 시스템은 디코더에 의해 도출된 서브 픽처 정보를 가지고 있다. 서브 픽처 정보를 시그널링하면 패킷 손실되는 경우 오류 가능성을 줄이고 서브 픽처 추출 측면에서 추가적인 기능을 지원한다. 따라서, SPS에서 서브 픽처 레이아웃을 시그널링하는 것은 인코더 및/또는 디코더의 기능을 향상시킨다.
선택적으로, 선행하는 측면 중 어느 한 측면에서, 그 측면의 다른 구현예는 다음을 제공한다: 상기 프로세서가, 상기 서브 픽처가 시간적 움직임이 제약된 서브 픽처임을 지시하기 위해 상기 SPS 내의 플래그를 인코딩하는 단계를 더 포함한다.
선택적으로, 선행하는 측면 중 어느 한 측면에서, 그 측면의 다른 구현예는 다음을 제공한다: 상기 서브 픽처 크기 및 상기 서브 픽처 위치는 시간적 움직임이 제약된 서브 픽처의 레이아웃을 지시한다.
선택적으로, 선행하는 측면 중 어느 한 측면에서, 그 측면의 다른 구현예는 다음을 제공한다: 상기 서브 픽처 위치는 상기 서브 픽처의 좌측 상단 샘플과 상기 픽처의 좌측 상단 샘플 사이의 오프셋 거리를 포함한다.
선택적으로, 선행하는 측면 중 어느 한 측면에서, 그 측면의 다른 구현예는 다음을 제공한다: 상기 서브 픽처 크기는 루마 샘플에서의 서브 픽처 높이 및 루마 샘플에서의 서브 픽처 폭을 포함한다.
선택적으로, 선행하는 측면 중 어느 한 측면에서, 그 측면의 다른 구현예는 다음을 제공한다: 상기 프로세서가 상기 픽처로부터 분할된 서브 픽처 각각에 대한 서브 픽처 ID를 상기 SPS로 인코딩하는 단계를 더 포함한다.
선택적으로, 선행하는 측면 중 어느 한 측면에서, 그 측면의 다른 구현예는 다음을 제공한다: 상기 프로세서가 상기 픽처로부터 분할된 다수의 서브 픽처를 상기 SPS로 인코딩하는 단계를 더 포함한다.
일 실시예에서, 본 개시내용은 비디오 코딩 기기를 포함하며, 상기 비디오 코딩 기기는 프로세서, 메모리, 상기 프로세서에 결합된 수신기, 및 상기 프로세서에 결합된 송신기를 포함하고, 상기 프로세서, 메모리, 수신기, 및 송신기는 선행하는 측면 중 어느 한 측면의 방법을 수행하도록 구성된다.
일 실시예에서, 본 개시내용은 비디오 코딩 기기가 사용하는 컴퓨터 프로그램 제품을 포함하는, 컴퓨터로 판독 가능한 비일시적인 매체를 포함하며, 상기 컴퓨터 프로그램 제품은 상기 컴퓨터로 판독 가능한 비일시적인 매체에 저장된 컴퓨터로 실행 가능한 명령어를 포함하여, 프로세서에 의해 실행될 때 상기 비디오 코딩 기기로 하여금 선행하는 측면 중 어느 한 측면의 방법을 수행하게 한다.
일 실시예에서, 본 개시내용은 디코더를 포함하며, 상기 디코더는, 픽처로부터 분할된 서브 픽처와, 상기 서브 픽처의 서브 픽처 크기 및 상기 서브 픽처의 서브 픽처 위치를 포함하는 SPS를 포함하는 비트스트림을 수신하기 위한 수신 수단; 상기 SPS를 파싱하여 상기 서브 픽처 크기 및 상기 서브 픽처 위치를 획득하기 위한 파싱 수단; 상기 서브 픽처 크기 및 상기 서브 픽처 위치에 기초하여 상기 서브 픽처를 디코딩하여 비디오 시퀀스를 생성하기 위한 디코딩 수단; 및 표시를 위해 상기 비디오 시퀀스를 포워딩하기 위한 포워딩 수단을 포함한다.
선택적으로, 선행하는 측면 중 어느 한 측면에서, 그 측면의 다른 구현예는 다음을 제공한다: 상기 디코더는 추가로, 선행하는 측면 중 어느 한 측면의 방법을 수행하도록 구성된다.
일 실시예에서, 본 개시내용은 인코더를 포함하며, 상기 인코더는, 픽처로부터 분할된 서브 픽처를 비트스트림으로 인코딩하고; 상기 서브 픽처의 서브 픽처 크기 및 서브 픽처 위치를 비트스트림 내의 SPS로 인코딩하기 위한 인코딩 수단; 및 디코더로의 통신을 위해 상기 비트스트림을 저장하기 위한 저장 수단을 포함한다.
선택적으로, 선행하는 측면 중 어느 한 측면에서, 그 측면의 다른 구현예는 다음을 제공한다: 상기 인코더는 추가로, 선행하는 측면 중 어느 한 측면의 방법을 수행하도록 구성된다.
명확하게 하기 위해, 전술한 실시예 중 어느 하나는 다른 전술한 실시예 중 어느 하나 이상과 조합되어 본 개시내용의 범위 내에서 새로운 실시예를 창출할 수 있다.
이러한 특징 및 다른 특징은 첨부도면 및 청구범위와 관련하여 취해진 다음의 상세한 설명으로부터 더 명확하게 이해될 것이다.
본 개시내용의 더 완전한 이해를 위해, 이제 첨부 도면 및 상세한 설명과 관련하여 취해진 다음의 간략한 설명을 참조하며, 여기서 유사한 참조 번호는 유사한 부분을 나타낸다.
도 1은 비디오 신호를 코딩하는 예시적인 방법의 흐름도이다.
도 2는 비디오 코딩을 위한 예시적인 코딩 및 디코딩(코덱) 시스템의 개략도이다.
도 3은 예시적인 비디오 인코더를 나타낸 개략도이다.
도 4는 예시적인 비디오 디코더를 나타낸 개략도이다.
도 5는 비트스트림으로부터 추출된 예시적인 비트스트림 및 서브 비트스트림을 나타낸 개략도가다.
도 6은 서브 픽처로 분할된 예시적인 픽처를 나타낸 개략도이다.
도 7은 서브 픽처 레이아웃에 슬라이스를 관련시키기 위한 예시적인 메커니즘을 나타낸 개략도이다.
도 8은 서브 픽처로 분할된 다른 예시적인 픽처를 나타낸 개략도이다.
도 9는 예시적인 비디오 코딩 기기의 개략도이다.
도 10은 서브 픽처의 추출을 지원하기 위해 픽처의 비트스트림에서 서브 픽처 레이아웃을 인코딩하는 예시적인 방법의 흐름도이다.
도 11은 시그널링된 서브 픽처 레이아웃에 기초하여 서브 픽처의 비트스트림을 디코딩하는 예시적인 방법의 흐름도이다.
도 12는 비트스트림을 통해 서브 픽처 레이아웃을 시그널링하기 위한 예시적인 시스템의 개략도이다.
하나 이상의 실시예의 예시적인 구현이 아래에 제공되지만, 개시된 시스템 및/또는 방법은 현재 알려져 있거나 존재하는 임의의 수의 기술을 사용하여 구현될 수 있음이 처음부터 이해되어야 한다. 본 개시내용은 여기에 예시되고 기재된 예시적인 설계 및 구현을 포함한, 아래에 예시된 예시적인 구현, 도면 및 기술에 결코 한정되어서는 안 되며, 등가물의 전체 범위와 함께 첨부된 청구범위의 범위 내에서 수정될 수 있다.
본 명세서에서는 코딩 트리 블록(coding tree block, CTB), 코딩 트리 유닛(coding tree unit, CTU), 코딩 유닛(coding unit, CU), 코딩된 비디오 시퀀스(coded video sequence, CVS), 공동 비디오 전문가 팀(Joint Video Experts Team, JVET), 움직임이 제약된 타일 세트(motion constrained tile set, MCTS), 최대 전송 유닛(maximum transfer unit, MTU), 네트워크 추상화 계층(network abstraction layer, NAL), 픽처 순서 카운트(picture order count, POC), 원시 바이트 시퀀스 페이로드(raw byte sequence payload, RBSP), 시퀀스 파라미터 세트(sequence parameter set, SPS), 다목적 비디오 코딩(versatile video coding, VVC), 및 작업 초안(working draft, WD)과 같은, 다양한 두문자어(acronym)가 사용된다.
데이터 손실을 최소화하면서 비디오 파일의 크기를 줄이기 위해 많은 비디오 압축 기술이 사용될 수 있다. 예를 들어, 비디오 압축 기술은 비디오 시퀀스에서 데이터 중복(data redundancy)을 감소 또는 제거하기 위해 공간(예: 인트라 픽처) 예측 및/또는 시간(예: 인터 픽처) 예측을 수행하는 것을 포함할 수 있다. 블록 기반(block based) 비디오 코딩의 경우, 비디오 슬라이스(예: 비디오 픽처 또는 비디오 픽처의 일부)는 비디오 블록으로 분할될 수 있으며, 이는 트리블록, 코딩 트리 블록(CTB), 코딩 트리 유닛(CTU). 코딩 유닛(CU), 및/또는 코딩 노드으로도 지칭될 수 있다. 픽처의 인트라 코딩된(intra-coded)(I) 슬라이스의 비디오 블록은 동일한 픽처의 이웃 블록에서의 참조 샘플에 대한 공간 예측을 사용하여 코딩된다. 픽처의 인터 코딩된(inter-coded) 단방향 예측(P) 또는 양방향 예측(B) 슬라이스의 비디오 블록은 동일한 픽처의 이웃 블록에서의 참조 샘플에 대한 공간 예측 또는 다른 참조 픽처에서의 참조 샘플에 대한 시간 예측을 채용하여 코딩될 수 있다. 픽처는 프레임 및/또는 이미지로 지칭될 수 있고, 참조 픽처는 참조 프레임 및/또는 참조 이미지로 지칭될 수 있다. 공간 또는 시간 예측은 결과로서 이미지 블록을 나타내는 예측 블록을 생성한다. 잔차 데이터(residual data)는 원본(original) 이미지 블록과 예측 블록 사이의 화소 차이를 나타낸다. 따라서, 인터 코딩된 블록은 예측 블록을 형성하는 참조 샘플의 블록을 가리키는 움직임 벡터 및 코딩된 블록과 예측 블록 사이의 차이를 나타내는 잔차 데이터에 따라 인코딩된다. 인트라 코딩된 블록은 인트라 코딩 모드 및 잔차 데이터에 따라 인코딩된다. 추가 압축을 위해, 잔차 데이터는 화소 영역에서 변환 영역으로 변환될 수 있다. 이는 결과로서 양자화될 수 있는 잔차 변환 계수를 생성한다. 양자화된 변환 계수는 초기에 2차원 배열로 배열될 수 있다. 양자화된 변환 계수는 변환 계수의 1차원 벡터를 생성하기 위해 스캔될 수 있다. 더욱 압축을 실현하기 위해, 엔트로피 코딩이 적용될 수 있다. 이러한 비디오 압축 기술은 아래에 더 상세히 설명한다.
인코딩된 비디오가 정확하게 디코딩될 수 있도록 보장하기 위해, 비디오는 대응하는 비디오 코딩 표준에 따라 인코딩 및 디코딩된다. 비디오 코딩 표준으로는 ITU-T(International Telecommunication Union(ITU) Standardization Sector) H.261, ISO/IEC(International Organization for Standardization/International Electrotechnical Commission) MPEG(Motion Picture Experts Group)-1 Part 2, ITU-T H.262 또는 ISO/IEC MPEG-2 Part 2, ITU-T H.263, ISO/IEC MPEG-4 Part 2, ITU-T H.264 또는 ISO/IEC MPEG-4 Part 10으로도 알려진 AVC(Advanced Video Coding), 및 ITU-T H.265 또는 MPEG-H Part 2로도 알려진 HEVC(High Efficiency Video Coding)를 포함한다. AVC는 SVC(Scalable Video Coding), MVC(Multiview Video Coding) 및 MVC+D(Multiview Video Coding plus Depth), 및 3차원(3D) AVC(3D-AVC)와 같은 확장을 포함한다. HEVC는 SHVC(Scalable HEVC, MV-HEVC(Multiview HEVC), 및 3D HEVC(3D-HEVC)과 같은 확장을 포함한다. ITU-T와 ISO/IEC의 공동 비디오 전문가 팀(JVET)은 VVC(Versatile Video Coding)라고 하는 비디오 코딩 표준을 개발하기 시작했다. VVC는 JVET-L1001-v9를 포함하는 작업 초안(WD)에 포함되어 있다.
비디오 이미지를 코딩하기 위해, 먼저 이미지는 (파티션으로) 분할되고, 파티션들은 비트스트림으로 코딩된다. 다양한 픽처 분할 방식이 사용 가능하다. 예를 들어, 이미지는 일반 슬라이스(regular slice), 종속 슬라이스(dependent slice), 타일, 및/또는 WPP(Wavefront Parallel Processing)에 따라 분할될 수 있다. 단순하게 하기 위해, HEVC는 비디오 코딩을 위해 슬라이스를 CTB의 그룹으로 분할할 때, 일반 슬라이스, 종속 슬라이스, 타일, WPP 및 이들의 조합만 사용할 수 있도록 인코더를 제한한다. 이러한 분할은 최대 전송 유닛(MTU) 크기 매칭, 병렬 처리 및 단대단(end-to-end) 지연 감소를 지원하기 위해 적용될 수 있다. MTU는 단일 패킷으로 송신될 수 있는 데이터의 최대량을 나타낸다. 패킷 페이로드가 MTU를 초과하면, 그 페이로드는 단편화(fragmentation)라는 프로세스를 통해 두 개의 패킷으로 나뉜다.
단순히 슬라이스라고도 하는 일반 슬라이스는 루프 필터링 작업(loop filtering operation)으로 인한 일부 상호의존성에도 불구하고, 동일한 픽처 내의 다른 일반 슬라이스와 독립적으로 재구축될 수 있는 이미지의 분할된 부분이다. 각각의 일반 슬라이스는 송신을 위해 자체 네트워크 추상화 계층(NAL) 유닛으로 캡슐화된다. 또한, 인픽처(in-picture) 예측(인트라 샘플 예측, 움직임 정보 예측, 코딩 모드 예측) 및 슬라이스 경계에 걸친 엔트로피 코딩 의존성은 독립적인 재구축을 지원하기 위해 비활성화될 수 있다. 이러한 독립적인 재구축은 병렬화를 지원한다. 예를 들어, 일반 슬라이스 기반 병렬화는 최소한의 프로세서 간 통신 또는 코어 간 통신을 채용한다. 그러나 각각의 일반 슬라이스는 독립적이므로, 각각의 슬라이스를 개별 슬라이스 헤더와 연관짓는다. 일반 슬라이스의 사용은 각각의 슬라이스에 대한 슬라이스 헤더의 비트 비용과 슬라이스 경계에 걸친 예측 결여로 인해 상당한 코딩 오버헤드를 발생시킬 수 있다. 또한, 일반 슬라이스는 MTU 크기 요건에 대한 매칭을 지원하기 위해 채용될 수 있다. 구체적으로, 일반 슬라이스는 개별 NAL 유닛으로 캡슐화되고 독립적으로 코딩될 수 있으므로, 각각의 일반 슬라이스는 슬라이스를 여러 패킷으로 쪼개는 것을 방지하기 위해 MTU 방식에서의 MTU 보다 작아야 한다. 이 때문에, 병렬화의 목표와 MTU 크기 매칭의 목표는 픽처의 슬라이스 레이아웃에 상반된 요구를 할 수 있다.
종속 슬라이스는 일반 슬라이스와 유사하지만, 슬라이스 헤더가 단축되고 인 픽처 예측을 깨지 않으면서 이미지 트리블록 경계의 분할을 허용한다. 따라서 종속 슬라이스는 일반 슬라이스가 다수의 NAL 유닛으로 세분화되는(fragmented) 것을 가능하게 하며, 이는 전체 일반 슬라이스의 인코딩이 완료되기 전에 일반 슬라이스의 일부가 송출되는 것을 허용함으로써 단대단 지연을 감소시킨다.
타일은 타일의 열과 행을 생성하는 수평 경계 및 수직 경계에 의해 생성된 이미지의 분할된 부분이다. 타일은 래스터 스캔 순서(오른쪽에서 왼쪽 및 위에서 아래)로 코딩될 수 있다. CTB의 스캔 순서는 타일 내에서 국지적(local)이다. 따라서 첫 번째 타일의 CTB는 다음 타일의 CTB로 진행하기 전에, 래스터 스캔 순서로 코딩된다. 일반 슬라이스와 유사하게, 타일은 엔트로피 디코딩 종속성뿐만 아니라 픽처 내 예측 종속성을 훼손한다. 그러나 타일은 개별 NAL 유닛에 포함되지 않을 수 있으므로, 타일은 MTU 크기 매칭에 사용되지 않을 수 있다. 각각의 타일은 하나의 프로세서/코어에 의해 처리될 수 있으며, 이웃한 타일들을 디코딩하는 처리 유닛 간의 인픽처 예측에 채용되는 프로세서 간/코어 간 통신은 공유된 슬라이스 헤더를 전달하는 것, 및 재구축된 샘플 및 메타데이터의 공유와 관련된 루프 필터링을 수행하는 것으로 제한될 수 있다(인접 타일이 동일한 슬라이스에 있을 때). 하나 이상의 타일이 하나의 슬라이스에 포함되는 경우, 슬라이스의 첫 번째 엔트리 포인트 오프셋(entry point offset) 이외의, 타일 각각에 대한 엔트리 포인트 바이트 오프셋은 슬라이스 헤더에서 시그널링될 수 있다. 각각의 슬라이스 및 타일에 대해, 다음 조건 중 하나 이상이 충족되어야 한다: 1) 슬라이스 내의 모든 코딩된 트리블록은 동일한 타일에 속한다. 2) 타일 내의 모든 코딩된 트리블록은 동일한 슬라이스에 속한다.
WPP에서, 이미지는 CTB의 단일 행으로 분할된다. 엔트로피 디코딩 및 예측 메커니즘은 다른 행에 있는 CTB의 데이터를 사용할 수 있다. 병렬 처리는 CTB 행의 병렬 디코딩을 통해 가능해진다. 예를 들어, 현재 행은 선행 행과 병렬로 디코딩될 수 있다. 그러나 현재 행의 디코딩은 선행 행의 디코딩 과정에서 2개의 CTB 만큼 지연된다. 이 지연은 현재 CTB가 코딩되기 전에 현재 행에서 현재 CTB의 위에 있는 CTB와, 위 및 오른쪽에 있는 CTB에 관련된 데이터가 사용 가능하도록 한다. 이 접근 방식은 그래픽으로 표시될 때 파면(wavefront)으로 나타난다. 이 시차를 둔 시작(staggered start)은 이미지에 포함되는 CTB 행과 동일한 수의 프로세서/코어로 병렬화를 가능하게 한다. 픽처 내의 이웃하는 트리블록 행 간의 인픽처 예측이 허용되기 때문에, 인픽처 예측을 가능하게 하는 프로세서 간/코어 간 통신은 상당할 수 있다. WPP 분할은 NAL 유닛 크기를 고려한다. 따라서 WPP는 MTU 크기 매칭을 지원하지 않는다. 그러나 특정 코딩 오버헤드가 있는 WPP와 함께, 일반 슬라이스를 사용하여 원하는 대로 MTU 크기 매칭을 구현할 수 있다.
타일은 또한 움직임이 제약된 타일 세트(motion constrained tile set) 를 포함할 수 있다. 움직임이 제약된 타일 세트(MCTS)는, 연관된 움직임 벡터가 MCTS 내부의 전체 샘플 위치 및 보간을 위해 MCTS 내부의 전체 샘플 위치만 필요한 부분 샘플 위치를 가리키도록 제한되게 설계된 타일 세트이다. 또한, MCTS 외부의 블록에서 도출된 시간적 움직임 벡터 예측을 위한 움직임 벡터 후보의 사용은 허용되지 않는다. 이와 같이, 각각의 MCTS는 MCTS에 포함되지 않은 타일의 존재 없이 독립적으로 디코딩될 수 있다. 시간적 MCTS SEI(supplemental enhancement information) 메시지는 비트스트림에서의 MCTS의 존재를 지시하고 MCTS를 시그널링하는 데 사용될 수 있다. MCTS SEI 메시지는 MCTS 세트에 적합한 비트스트림을 생성하기 위해 MCTS 서브 비트스트림 추출(SEI 메시지의 시맨틱스의 일부로 지정됨)에 사용할 수 있는 부가 정보(supplemental information)를 제공한다. 이 정보는 다수의 추출 정보 세트를 포함하며, MCTS 세트의 수를 각각 정의하고, MCTS 서브 비트스트림 추출 프로세스 동안에 사용될 대체 비디오 파라미터 세트(replacement video parameter set, VPS), 시퀀스 파라미터 세트(SPS) 및 픽처 파라미터 세트(picture parameter set, PPS)의 원시 바이트 시퀀스 페이로드(RBSP) 바이트를 포함한다. MCTS 서브 비트스트림 추출 프로세스에 따라 서브 비트스트림을 추출할 때, 파라미터 세트(VPS, SPS, PPS)는 재작성 또는 대체될 수 있으며, 슬라이스 주소와 관련 신택스 요소(first_slice_segment_in_pic_flag 및 slice_segment_address 포함) 중 하나 또는 전부는 추출된 서브 비트스트림에서 서로 다른 값을 채용할 수 있기 때문에 슬라이스 헤더는 업데이트될 수 있다.
픽처는 또한 하나 이상의 서브 픽처로 분할될 수 있다. 서브 픽처는 tile_group_address가 0인 타일 그룹으로 시작하는 타일 그룹/슬라이스의 직사각형 세트이다. 각각의 서브 픽처는 개별 PPS를 참조할 수 있으므로, 개별 타일 분할을 가질 수 있다. 서브 픽처는 디코딩 과정에서 픽처처럼 취급될 수 있다. 현재 서브 픽처를 디코딩하기 위한 참조 서브 픽처는 디코딩된 픽처 버퍼 내의 참조 픽처로부터 현재 서브 픽처와 병치된(collocated) 영역을 추출함으로써 생성된다. 추출된 영역은 디코딩된 서브 픽처로 취급된다. 인터 예측은 픽처 내의 동일한 크기 및 동일한 위치의 서브 픽처 간에 일어날 수 있다. 슬라이스라고도 하는 타일 그룹은 픽처 또는 서브 픽처의 관련 타일 시퀀스이다. 픽처에서의 서브 픽처의 위치를 결정하기 위해 여러 항목이 도출될 수 있다. 예를 들어, 각각의 현재 서브 픽처는 픽처 경계 내에 현재 서브 픽처를 수용하기에 충분히 큰 픽처 내에서의 CTU 래스터 스캔 순서에서 다음의 점유되지 않은(비점유) 위치에 위치될 수도 있다.
또한, 픽처 분할은 픽처 레벨 타일 및 시퀀스 레벨 타일에 기초할 수 있다. 시퀀스 레벨 타일은 MCTS의 기능을 포함할 수 있으며, 서브 픽처로 구현될 수 있다. 예를 들어, 픽처 레벨 타일은 픽처에서 특정 타일 열 및 특정 타일 행 내의 코딩 트리 블록의 직사각형 영역으로 정의될 수 있다. 시퀀스 레벨 타일은 각각의 직사각형 영역이 하나 이상의 픽처 레벨 타일을 더 포함하고 코딩 트리 블록의 직사각형 영역의 세트가 유사한 직사각형 영역의 임의의 다른 세트와 독립적으로 디코딩 가능한 상이한 프레임에 포함된 코딩 트리 블록의 직사각형 영역의 세트로 정의될 수 있다. 시퀀스 레벨 타일 그룹 세트(sequence level tile group set, STGPS)는 이러한 시퀀스 레벨 타일의 그룹이다. STGPS는 NAL 유닛 헤더 내의 연관된 식별자(ID)와 함께 비비디오 코딩 레이어(video coding layer, VCL) 유닛에서 시그널링될 수 있다.
선행하는 서브 픽처 기반 분할 방식은 특정 문제와 연관될 수 있다. 예를 들어, 서브 픽처가 활성화되는 경우, 서브 픽처 내 타일링(서브 픽처를 타일로 분할)을 사용하여 병렬 처리를 지원할 수 있다. 병렬 처리 목적을 위한 서브 픽처의 타일 분할은 픽처에서 픽처로 변경될 수 있고(예: 병렬 처리 부하 밸런싱 목적으로), 따라서 픽처 레벨에서(예: PPS에서) 관리될 수 있다. 하지만, 서브 픽처 분할(픽처를 서브 픽처로 분할)이 관심 영역(ROI) 및 서브 픽처 기반 픽처 액세스를 지원하기 위해 채용될 수 있다. 이러한 경우, PPS에서의 서브 픽처 또는 MCTS의 시그널링은 효율적이지 않다.
다른 예에서, 픽처의 임의의 서브 픽처가 시간적 움직임이 제약된 서브 픽처로서 코딩될 때, 픽처의 모든 서브 픽처가 시간적 움직임이 제약된 서브 픽처로서 코딩될 수도 있다. 이러한 픽처 분할은 제한적일 수 있다. 예를 들어, 서브 픽처를 시간적 움직임이 제약된 서브 픽처로서 코딩하는 것은 추가 기능에 대한 대가로 코딩 효율을 감소시킬 수도 있다. 그러나 관심 기반 애플리케이션 영역에서, 일반적으로 하나 또는 몇 개의 서브 픽처만이 시간적 움직임이 제약된 서브 픽처 기반 기능을 사용한다. 따라서, 나머지 서브 픽처는 실질적인 이점을 제공하지 않으면서 감소된 코딩 효율을 겪는다.
다른 예에서, 서브 픽처의 크기를 지정하기 위한 신택스 요소는 루마 CTU 크기 단위로 지정될 수 있다. 따라서 서브 픽처의 폭과 높이는 CtbSizeY의 정수배여야 한다. 서브 픽처 폭와 높이를 지정하는 이 메커니즘은 다양한 문제를 초래할 수 있다. 예를 들어, 서브 픽처 분할은 CtbSizeY의 정수배인 픽처 폭 및/또는 픽처 높이를 갖는 픽처에만 적용할 수 있다. 이것은 CTbSizeY의 정수 배수가 아닌 치수를 포함하는 픽처에 대해 서브 픽처 분할을 사용할 수 없게 만든다. 픽처 치수가 CtbSizeY의 정수배가 아닐 때 픽처 폭 및/또는 높이에 서브 픽처 분할이 적용되면, 가장 오른쪽 서브 픽처 및 최하단의 서브 픽처에 대한 루마 샘플의 서브 픽처 폭 및/또는 서브 픽처 높이의 도출은 올바르지 않을 것이다. 이러한 잘못된 도출은 일부 코딩 도구에서 잘못된 결과를 초래할 수 있다.
다른 예에서, 픽처에서의 서브 픽처의 위치는 시그널링되지 않을 수 있다. 위치는 대신 다음 규칙을 사용하여 도출된다. 현재의 서브 픽처는 픽처 경계 내에 서브 픽처를 포함하기에 충분히 큰 픽처 내의 CTU 래스터 스캔 순서에서 다음의 점유되지 않은 위치에 위치된다. 이러한 방식으로 서브 픽처 위치를 도출하는 것은 경우에 따라 오류가 발생할 수 있다. 예를 들어, 서브 픽처가 송신 중에 손실되면, 다른 서브 픽처의 위치가 잘못 도출되고 디코딩된 샘플이 잘못된 위치에 놓인다. 서브 픽처가 잘못된 순서로 도착하는 경우에도 동일한 문제가 적용된다.
다른 예에서, 서브 픽처를 디코딩하는 것은 참조 픽처에서 같은 위치에 배치된(co-located) 서브 픽처의 추출을 요구할 수도 있다. 이는 프로세서 및 메모리 자원 사용 측면에서 더욱 복잡해지고 결과적으로 부담이 될 수 있다.
다른 예에서, 서브 픽처가 시간적 움직임이 제약된 서브 픽처로 지정될 때, 서브 픽처 경계를 통과하는 루프 필터는 비활성화된다. 이는 타일 경계를 통과하는 루프 필터가 활성화되었는지에 관계없이 발생한다. 그러한 제약은 너무 제한적일 수 있고 다수의 서브 픽처를 사용하는 비디오 픽처에 대한 시각적 아티팩트(visual artefact)를 초래할 수 있다.
다른 예에서, SPS, STGPS, PPS 및 타일 그룹 헤더 사이의 관계는 다음과 같다. STGPS는 SPS를 참조하고, PPS는 STGPS를 참조하고, 타일 그룹 헤더/슬라이스 헤더는 PPS를 참조한다. 그러나 STGPS와 PPS는, PPS가 STGPS를 참조하는 것이 아니라 직교해야 한다. 선행하는 배치(preceding arrangement)은 또한 동일한 픽처의 모든 타일 그룹이 동일한 PPS를 참조하는 것을 허용하지 않을 수 있다.
다른 예에서, 각각의 STGPS는 서브 픽처의 4개의 측면(side)에 대한 ID를 포함할 수 있다. 이러한 ID는 동일한 경계를 공유하는 서브 픽처를 식별하는 데 사용되어, 상대적 공간 관계가 정의될 수 있도록 한다. 그러나 이러한 정보는 경우에 따라 시퀀스 레벨 타일 그룹 세트에 대한 위치 및 크기 정보를 도출하기에 충분하지 않을 수 있다. 다른 경우에는 위치 및 크기 정보를 시그널링하는 것이 중복될 수 있다.
다른 예에서, STGPS ID는 8비트를 사용하여 VCL NAL 유닛의 NAL 유닛 헤더에서 시그널링될 수 있다. 이것은 서브 픽처 추출에 도움이 될 수 있다. 이러한 시그널링은 NAL 유닛 헤더의 길이를 불필요하게 증가시킬 수 있다. 다른 문제는 시퀀스 레벨 타일 그룹 세트가 중첩을 방지하기 위해 제약되지 않는 한, 하나의 타일 그룹이 다수의 시퀀스 레벨 타일 그룹 세트와 연관될 수 있다는 것이다.
전술한 문제중 하나 이상을 해결하기 위한 다양한 메커니즘이 여기에 개시되어 있다. 첫 번째 예에서, 서브 픽처에 대한 레이아웃 정보는 PPS 대신 SPS에 포함된다. 서브 픽처 레이아웃 정보는 서브 픽처 위치 및 서브 픽처 크기를 포함한다. 서브 픽처 위치는 서브 픽처의 좌측 상단 샘플과 픽처의 좌측 상단 샘플 사이의 오프셋이다. 서브 픽처 크기는 루마 샘플에서 측정한 서브 픽처의 높이와 폭이다. 위에서 언급한 바와 같이, 일부 시스템은 타일이 픽처마다 변경될 수 있으므로 PPS에 타일링 정보를 포함한다. 그러나 서브 픽처는 ROI 애플리케이션 및 서브 픽처 기반 액세스를 지원하는 데 사용될 수 있다. 이러한 기능은 픽처별로 변경되지 않는다. 또한, 비디오 시퀀스는 단일 SPS(또는 비디오 세그먼트당 하나)를 포함할 수 있고, 픽처당 하나의 PPS만큼 많이 포함할 수 있다. SPS에 서브 픽처에 대한 레이아웃 정보를 배치하면 레이아웃은 각각의 PPS에 대해 중복 시그널링되는 것이 아니라 시퀀스/세그먼트에 대해 한 번만 시그널링된다. 따라서, SPS에서 서브 픽처 레이아웃 시그널링하는 것은 코딩 효율을 증가시키고 따라서 인코더 및 디코더에서 네트워크 자원, 메모리 자원, 및/또는 처리 자원의 사용을 감소시킨다. 또한 일부 시스템은 디코더에 의해 도출된 서브 픽처 정보를 가지고 있다. 서브 픽처 정보를 시그널링하는 것은 패킷 손실 시 오류 가능성을 줄이고 서브 픽처 추출 측면에서 추가 기능을 지원한다. 따라서, SPS에서 서브 픽처 레이아웃을 시그널링하는 것은 인코더 및/또는 디코더의 기능을 향상시킨다.
두 번째 예에서, 서브 픽처 폭 및 서브 픽처 높이기 CTU 크기의 배수로 제약을 받는다. 그러나 이러한 제약은 서브 픽처가 각각 픽처의 오른쪽 경계 또는 픽처의 하단 경계에 위치할 때 제거된다. 위에서 언급한 바와 같이, 일부 비디오 시스템은 CTU 크기의 배수인 높이와 폭를 포함하도록 서브 픽처를 제한할 수 있다. 이것은 많은 픽처 레이아웃에서 서브 픽처가 올바르게 작동하는 것을 방지한다. CTU 크기의 배수가 아닌 높이 및 폭을 각각 포함하는 하단 및 오른쪽 서브 픽처를 허용함으로써, 서브 픽처는 디코딩 오류를 일으키지 않고 임의의 픽처와 함께 사용될 수 있다. 그 결과 인코더 및 디코더 기능이 향상된다. 또한, 향상된 기능은 인코더가 픽처를 보다 효율적으로 코딩할 수 있게 하여, 인코더 및 디코더에서 네트워크 자원, 메모리 자원 및/또는 처리 자원의 사용을 감소시킨다.
세 번째 예에서, 서브 픽처는 틈(gap) 또는 겹침(overlap) 없이 픽처를 커버하도록 제약을 받는다. 위에서 언급한 바와 같이, 일부 비디오 코딩 시스템은 서브 픽처가 틈 및 겹침을 포함하도록 허용한다. 이것은 타일 그룹/슬라이스가 다수의 서브 픽처와 연관될 가능성을 만든다. 인코더에서 이것이 허용되면, 디코더는 디코딩 방식이 거의 사용되지 않는 경우에도 이러한 코딩 방식을 지원하도록 디코더를 구축해야 한다. 서브 픽처 틈 및 겹침을 허용하지 않음으로써, 디코더가 서브 픽처 크기 및 위치를 결정할 때, 잠재적인 틈 및 겹침을 설명할 필요가 없기 때문에 디코더의 복잡도가 감소될 수 있다. 또한, 비디오 시퀀스에 대한 인코딩을 선택할 때 인코더가 틈 및 겹침 경우를 고려하는 것을 생략할 수 있기 때문에, 서브 픽처 틈 및 겹침을 허용하지 않는 것은 인코더에서 레이트 왜곡 최적화(rate distortion optimization, RDO) 프로세스의 복잡도를 감소시킨다. 따라서, 틈 및 겹침을 피하는 것은 인코더 및 디코더에서 메모리 자원 및/또는 처리 자원의 사용을 감소시킬 수 있다.
네 번째 예에서, 플래그는 서브 픽처가 시간적 움직임이 제약된 서브 픽처인 경우를 지시하기 위해 SPS에서 시그널링될 수 있다. 위에서 언급한 바와 같이, 일부 시스템은 모든 서브 픽처를 시간적 움직임이 제약된 서브 픽처로 집합적으로 설정하거나 시간적 움직임이 제약된 서브 픽처의 사용을 완전히 허용하지 않을 수 있다. 이러한 시간적 움직임이 제약된 서브 픽처는 코딩 효율의 저하를 희생하여 독립적인 추출 기능을 제공한다. 그러나 관심 기반 애플리케이션에서 관심 영역은 독립적인 추출을 위해 코딩되어야 하는 반면 관심 영역 외부의 영역에는 이러한 기능이 필요하지 않는다. 따라서, 나머지 서브 픽처는 실질적인 이점을 제공하지 않으면서 코딩 효율의 저하를 겪는다. 따라서, 플래그는 독립적인 추출이 요구되지 않을 때 코딩 효율의 증가를 위해 독립적인 추출 기능을 제공하는 시간적 움직임이 제약된 서브 픽처와 비 움직임이 제약된 서브 픽처(non-motion constrained sub-picture)의 혼합을 허용한다. 따라서, 플래그는 증가된 기능 및/또는 증가된 코딩 효율을 가능하게 하여 인코더 및 디코더에서 네트워크 자원, 메모리 자원, 및/또는 처리 자원의 사용을 감소시킨다.
다섯 번째 예에서, 서브 픽처 ID의 완전한 세트가 SPS에서 시그널링되고, 슬라이스 헤더는 대응하는 슬라이스를 포함하는 서브 픽처를 나타내는 서브 픽처 ID를 포함한다. 위에서 언급한 바와 같이, 일부 시스템은 다른 서브 픽처에 대한 서브 픽처 위치를 시그널링한다. 이는 서브 픽처가 손실되거나 개별적으로 추출되는 경우 문제가 된다. 각각의 서브 픽처를 ID로 지정함으로써, 다른 서브 픽처를 참조하지 않고 서브 픽처의 위치 및 크기를 정해질 수 있다. 이것은 차례로 오류 수정뿐만 아니라 일부 서브 픽처만 추출하고 다른 서브 픽처 송신을 회피하는 애플리케이션을 지원한다. 모든 서브 픽처 ID의 전체 목록은 관련 크기 정보와 함께 SPS에서 전송될 수 있다. 각각의 슬라이스 헤더는 대응하는 슬라이스를 포함하는 서브 픽처를 지시하는 서브 픽처 ID를 포함할 수 있다. 이러한 방식으로, 서브 픽처 및 대응하는 슬라이스는 다른 서브 픽처를 참조하지 않고 추출되고 위치될 수 있다. 따라서, 서브 픽처 ID는 증가된 기능 및/또는 증가된 코딩 효율성을 지원하며, 이는 인코더 및 디코더에서 네트워크 자원, 메모리 자원, 및/또는 처리 자원의 사용을 감소시킨다.
여섯 번째 예에서, 레벨은 각각의 서브 픽처에 대해 시그널링된다. 일부 비디오 코딩 시스템에서는 픽처에 대한 레벨이 시그널링된다. 레벨은 픽처를 디코딩하는 데 필요한 하드웨어 자원을 지시한다. 위에서 언급한 바와 같이, 상이한 서브 픽처는 경우에 따라 상이한 기능을 가질 수 있고 따라서 코딩 프로세스 동안 다르게 취급될 수 있다. 이와 같이 픽처 기반 레벨은 일부 서브 픽처를 디코딩하는 데 유용하지 않을 수 있다. 따라서, 본 개시내용은 각각의 서브 픽처에 대한 레벨을 포함한다. 이러한 방식으로, 덜 복잡한 메커니즘에 따라 코딩된 서브 픽처에 대해 디코딩 요건을 너무 높게 설정함으로써 디코더에 불필요하게 과도한 부담을 주지 않고 각각의 서브 픽처가 다른 서브 픽처와 독립적으로 코딩될 수 있다. 시그널링된 서브 픽처 레벨 정보는 증가된 기능 및/또는 증가된 코딩 효율을 지원하여, 인코더 및 디코더에서 네트워크 자원, 메모리 자원, 및/또는 처리 자원의 사용을 감소시킨다.
도 1은 비디오 신호를 코딩하는 예시적인 작업 방법(operating method)(100)의 흐름도이다. 구체적으로, 비디오 신호는 인코더에서 인코딩된다. 인코딩 프로세스는 비디오 파일 크기를 줄이기 위해 다양한 메커니즘을 채용하여 비디오 신호를 압축한다. 파일 크기가 작을수록 연관된 대역폭 오버헤드를 줄이면서 압축된 비디오 파일이 사용자에게 송신될 수 있게 해준다. 그러면 디코더는 압축된 비디오 파일을 디코딩하여 최종 사용자에게 표시하기 위해 원본 비디오 신호를 재구축한다. 디코딩 프로세스는 일반적으로 디코더가 비디오 신호를 일관되게 재구축할 수 있도록 인코딩 프로세스를 미러링(mirroring)한다.
단계 101에서, 비디오 신호가 인코더에 입력된다. 예를 들어, 비디오 신호는 메모리에 저장된 압축되지 않은(비압축) 비디오 파일일 수 있다. 다른 예로서, 비디오 파일은 비디오 카메라와 같은, 비디오 캡처 기기에 의해 캡처되고, 비디오의 라이브 스트리밍(live streaming)을 지원하도록 인코딩될 수 있다. 비디오 파일은 오디오 성분과 비디오 성분을 모두 포함할 수 있다. 비디오 성분은 시퀀스로 볼 때 움직임에 대한 시각적 인상을 주는 일련의 이미지 프레임을 포함한다.
프레임은, 여기에서 루마 성분(또는 루마 샘플)이라고 하는 빛과, 크로마(croma) 성분(또는 색상(color) 샘플)이라고 하는 색상으로 표현되는 화소를 포함한다. 일부 예에서, 프레임은 또한 3차원 보기를 지원하는 깊이 값(depth value)을 포함할 수 있다.
단계 103에서, 비디오는 블록으로 분할된다. 분할(partitioning)은 압축을 위해 각각의 프레임의 화소를 정사각형 및/또는 직사각형 블록으로 세분화(subdividing)하는 것을 포함한다. 예를들어, 고효율 비디오 코딩(HEVC)(H.265 및 MPEG-H Part 2로도 알려짐)에서 프레임은 먼저 미리 정의된 크기(예: 64개 화소×64개 화소)의 블록인 코딩 트리 유닛(CTU)으로 나뉠 수 있다. CTU는 루마 및 크로마 샘플을 모두 포함한다. CTU를 블록으로 분할한 다음 추가 인코딩을 지원하는 구성이 달성될 때까지 블록을 재귀적으로 세분화하기 위해 코딩 트리가 채용될 수 있다. 예를 들어, 프레임의 루마 성분은 개별 블록이 비교적 균일한 명암 값(lighting value)을 포함할 때까지 세분화될 수 있다. 또한, 프레임의 크로마 성분은 개별 블록이 비교적 균일한 색상 값을 포함할 때까지 세분화될 수 있다. 따라서 분할 메커니즘은 비디오 프레임의 내용에 따라 달라진다.
단계 105에서, 단계 103에서 분할된 이미지 블록을 압축하기 위해 다양한 압축 메커니즘이 채용된다. 예를 들어, 인터 예측(inter-prediction) 및/또는 인트라 예측(intra-prediction)이 사용될 수 있다. 인터 예측은 공통 장면(common scene)의 객체가 연속 프레임에 나타나는 경향이 있다는 사실을 이용하도록 설계되어 있다. 따라서, 참조 프레임에서 객체를 나타내는 블록은 인접 프레임에서 반복적으로 기술될 필요가 없다. 구체적으로, 테이블과 같은 객체는 여러 프레임에 걸쳐 일정한 위치에 남아 있을 수 있다. 따라서 테이블은 한 번 기술되고 인접 프레임은 참조 프레임을 다시 참조할 수 있다. 여러 프레임에 걸쳐 객체들을 매칭시키기 위해 패턴 매칭 메커니즘이 채용될 수 있다. 또한, 움직이는 객체는, 예를 들어 객체의 움직임이나 카메라의 움직임으로 인해 여러 프레임에 걸쳐 표현될 수 있다. 구체적인 예로서, 비디오는 여러 프레임에 걸쳐 화면을 가로질러 움직이는 자동차를 보여줄 수 있다. 움직임 벡터가 이러한 움직임을 설명하는 데 채용될 수 있다. 움직임 벡터는 프레임의 객체 좌표에서 참조 프레임의 객체 좌표까지 오프셋을 제공하는 2차원 벡터이다. 이와 같이, 인터 예측은 현재 프레임의 픽처 블록을 참조 프레임의 대응하는 블록으로부터의 오프셋을 지시하는 움직임 벡터의 세트로서 인코딩할 수 있다.
인트라 예측은 공통 프레임 내의 블록을 인코딩한다. 인트라 예측은 루마 성분과 크로마 성분이 한 프레임에 모여 있는(cluster) 경향이 있다는 사실을 이용한다. 예를 들어, 나무의 일부에 있는 녹색의 패치는 유사한 녹색의 패치에 인접하게 배치되는 경향이 있다. 인트라 예측은 다중 방향 예측 모드(multiple directional prediction mode)(예: HEVC에서 33개), 평면 모드 및 직류(direct current, DC) 모드를 사용한다. 방향 모드(directional mode)는 현재 블록이 대응하는 방향에서 이웃 블록의 샘플과 유사/동일함을 지시한다. 평면 모드는 행/열(예: 평면)을 따라 일련의 블록이 행 가장자리에 있는 이웃 블록에 기초하여 보간될 수 있음을 지시한다. 실제로 평면 모드는 값을 변경할 때 비교적으로 일정한 기울기를 사용하여 행/열에 걸쳐 빛/색상의 매끄러운 이행(smooth transition)을 지시한다. DC 모드는 경계 평활화를 위해 채용되며 방향 예측 모드의 각도 방향과 연관된 모든 이웃 블록의 샘플과 연관된 평균값과 유사/동일한 블록을 지시한다. 따라서 인트라 예측 블록은 실제 값 대신 다양한 관계형(relational) 예측 모드 값으로 픽처 블록을 표현할 수 있다. 또한, 인터 예측 블록은 이미지 블록을 실제 값 대신 움직임 벡터 값으로 나타낼 수 있다. 어느 경우든, 예측 블록은 경우에 따라서는 이미지 블록을 정확하게 나타내지 못할 수 있다. 모든 차이는 잔차 블록에 저장된다. 파일을 추가로 압축하기 위해 잔차 블록에 변환이 적용될 수 있다.
단계 107에서, 다양한 필터링 기술이 적용될 수 있다. HEVC에서, 필터는 인루프(in-loop) 필터링 방식에 따라 적용된다. 위에서 논의된 블록 기반 예측은 디코더에서 블록 이미지를 생성하는 결과를 낳을 수 있다. 또한, 블록 기반 예측 방식은 블록을 인코딩한 다음 나중에 참조 블록으로 사용하기 위해 인코딩된 블록을 재구축할 수 있다. 인루프 필터링 방식은 잡음 억제(noise suppression) 필터, 디블로킹(de-blocking) 필터, 적응형 루프(adaptive loo) 필터, 샘플 적응형 오프셋(sample adaptive offset, SAO) 필터를 블록/프레임에 반복적으로 적용한다. 이러한 필터는 인코딩된 파일이 정확하게 재구축될 수 있도록 이러한 블로킹 아티팩트(blocking artifact)를 완화한다. 또한, 이러한 필터는 재구축된 참조 블록에서의 아티팩트를 완화하여, 재구축된 참조 블록에 기초하여 인코딩되는 후속 블록에서 아티팩트가 추가 아티팩트를 만들어 낼 가능성이 작도록 한다.
비디오 신호가 분할되고, 압축되고, 필터링되면, 그 결과 데이터는 단계 109에서 비트스트림으로 인코딩된다. 비트스트림은 위에서 논의된 데이터뿐 아니라 디코더에서의 적절한 비디오 신호의 재구축을 지원하기 위해 원하는 시그널링 데이터도 포함한다. 예를 들어, 그러한 데이터로는 파티션(partition) 데이터, 예측 데이터, 잔차 블록, 및 디코더에 코딩 명령을 제공하는 다양한 플래그를 포함할 수 있다. 비트스트림은 요청 시에 디코더를 향한 송신을 위해 메모리에 저장될 수 있다. 비트스트림은 또한 복수의 디코더를 향해 브로드캐스팅 및/또는 멀티캐스팅될 수 있다. 비트스트림의 생성은 반복적인 프로세스이다. 따라서, 단계 101, 103, 105, 107, 및 109는 많은 프레임 및 블록에 걸쳐 연속적으로 및/또는 동시에 발생할 수 있다. 도 1에 도시된 순서는 논의의 명확성 및 편의를 위해 제시되며, 비디오 코딩 프로세스를 특정 순서로 한정하기 위한 것이 아니다.
디코더는 비트스트림을 수신하고 단계 111에서 디코딩 프로세스를 시작한다. 구체적으로, 디코더는 엔트로피 디코딩 방식을 채용하여 비트스트림을 대응하는 신택스 및 비디오 데이터로 변환한다. 디코더는 비트스트림으로부터의 신택스 데이터를 채용하여 단계 111에서 프레임에 대한 파티션을 결정한다. 분할(파티셔닝)은 단계 103에서 블록 분할의 결과와 매칭되어야 한다. 이제 단계 111에서 채용된 엔트로피 인코딩/디코딩을 설명한다. 인코더는 입력 이미지(들)에서의 값의 공간적 위치에 기초한 여러 가능한 선택 중에서 블록 분할 방식을 선택하는 것과 같은, 압축 프로세스 동안 많은 선택을 한다. 정확한 선택을 시그널링하는 것은 많은 수의 빈(bin)을 채용할 수 있다. 여기에서 사용되는 바와 같이, 빈은 변수로 취급되는 이진 값(예: 컨텍스트에 따라 변할 수 있는 비트 값)이다. 엔트로피 코딩은 인코더가 특정 경우에 명확히 실행 가능하지 않은 옵션을 버리고, 허용 가능한 옵션의 세트를 남길 수 있도록 해준다. 그런 다음 각각의 허용 가능한 옵션에 코드워드가 할당된다. 코드 워드의 길이는 허용 가능한 옵션의 수에 기초한다(예: 두 개의 옵션에 대해 하나의 빈, 3∼4개의 옵션에 대해 두 개의 빈 등). 그러면 인코더는 선택한 옵션에 대한 코드 워드를 인코딩한다. 이 방식은, 코드 워드가 가능한 모든 옵션의 잠재적으로 큰 세트에서의 선택을 유일하게 지시하는 것과는 대조적으로 허용 가능한 옵션의 작은 서브 세트에서의 선택을 유일하게 지시하기 위해 원하는 만큼 크므로, 코드 워드의 크기를 줄인다. 그러면 디코더는 인코더와 유사한 방식으로 허용 가능한 옵션의 세트를 결정함으로써 선택을 디코딩한다. 허용 가능한 옵션 세트를 결정함으로써, 디코더는 코드 워드를 읽고 인코더에 의해 이루어진 선택을 결정할 수 있다.
단계 113에서, 디코더는 블록 디코딩을 수행한다. 구체적으로, 디코더는 역변환을 채용하여 잔차 블록을 생성한다. 그런 다음 디코더는 잔차 블록 및 대응하는 예측 블록을 채용하여 분할에 따른 이미지 블록을 재구축한다. 예측 블록은 단계 105에서 인코더에서 생성된 바와 같이 인트라 예측 블록 및 인터 예측 블록 모두를 포함할 수 있다. 그런 다음 재구축된 이미지 블록은 단계 111에서 결정된 분할 데이터에 따라 재구축된 비디오 신호의 프레임에 위치된다. 단계 113의 신택스는 또한 위에서 논의된 바와 같이 엔트로피 코딩을 통해 비트스트림으로 시그널링될 수 있다.
단계 115에서, 인코더에서 단계 107과 유사한 방식으로 재구축된 비디오 신호의 프레임에 대해 필터링이 수행된다. 예를 들어, 노이즈 억제 필터, 디블로킹 필터, 적응형 루프 필터 및 SAO 필터를 프레임에 적용하여, 블로킹 아티팩트를 제거할 수 있다. 프레임이 필터링되면, 비디오 신호는 최종 사용자에 의한 보기를 위해 단계 117에서 디스플레이 출력될 수 있다.
도 2는 비디오 코딩을 위한 예시적인 코딩 및 디코딩(코덱) 시스템(200)의 개략도이다. 구체적으로, 코덱 시스템(200)은 작업 방법(100)의 구현을 지원하기 위한 기능을 제공한다. 코덱 시스템(200)은 인코더와 디코더 모두에 채용되는 구성요소를 나타내도록 일반화된다. 코덱 시스템(200)은 작업 방법(100)의 단계 101 및 103과 관련하여 논의된 바와 같이 비디오 신호를 수신하고 분할하며, 그 결과 분할된 비디오 신호(201)를 생성한다. 코덱 시스템(200)은 그 후 작업 방법(100)의 단계 105, 107 및 109와 관련하여 논의된 인코더의 역할을 할 때, 분할된 비디오 신호(201)를 코딩된 비트스트림으로 압축한다. 코덱 시스템(200)은 디코더의 역할을 할 때, 작업 방법(100)의 단계 111, 113, 115, 및 117과 관련하여 논의된 바와 같이비트스트림으로부터 출력 비디오 신호를 생성한다. 코덱 시스템(200)은 일반 코더 제어 구성요소(211), 변환 스케일링 및 양자화 구성요소(213), 인터 픽처 추정 구성요소(215), 인터 픽처 예측 구성요소(217), 움직임 보상 구성요소(219), 움직임 추정 구성요소(221), 스케일링 및 역변환 구성요소(229), 필터 제어 분석 구성요소(227), 인루프 필터 구성요소(225), 디코딩된 픽처 버퍼 구성요소(223), 및 헤더 포맷팅 및 컨텍스트 적응형 이진 산술 코딩(context adaptive binary arithmetic coding, CABAC) 구성요소(231)을 포함한다. 이러한 구성요소는 도시된 바와 같이 결합된다. 도에서. 도 2에서 검은색 선은 인코딩/디코딩될 데이터의 이동을 지시하는 한편 파선은 다른 구성요소의 작동을 제어하는 제어 데이터의 이동을 지시한다. 코덱 시스템(200)의 구성요소는 모두 인코더에 존재할 수 있다. 디코더는 코덱 시스템(200)의 구성요소의 서브세트를 포함할 수 있다. 예를 들어, 디코더는 인트라 픽처 예측 구성요소(217), 움직임 보상 구성요소(219), 스케일링 및 역변환 구성요소(229), 인루프 필터 구성요소(225) 및 디코딩된 픽처 버퍼 구성요소(223)를 포함할 수 있다. 이제 이들 구성요소를 설명한다.
분할된 비디오 신호(201)는 코딩 트리에 의해 화소 블록으로 이미 분할된, 캡처된 비디오 시퀀스이다. 코딩 트리는 화소 블록을 더 작은 화소 블록으로 세분화하기 위해 다양한 스플릿 모드(split mode)를 사용한다. 그러면 이러한 블록을 더 작은 블록으로 세분화할 수 있다. 블록은 코딩 트리 상의 노드로 지칭될 수 있다. 더 큰 부모 노드는 더 작은 자식 노드로 나뉜다. 노드가 세분화되는 횟수를 노드/코딩 트리의 깊이라고 한다. 나뉜 블록은 경우에 따라서는 CU(Coding Unit)에 포함될 수 있다. 예를 들어, CU는 CU에 대한 대응하는 신택스 명령과 함께 루마 블록, 적색 차이(red difference) 크로마(Cr) 블록(들) 및 청색 차이(blue difference) 크로마(Cb) 블록(들)을 포함하는 CTU의 서브 부분(sub-portion)일 수 있다. 스플릿 모드는 채용된 스플릿 모드에 따라 다양한 모양의 노드를 각각 2, 3 또는 4개의 자식 노드로 분할하는 데 채용되는 이진 트리(binary tree, BT), 트리플 트리(triple tree, TT) 및 쿼드 트리(quad tree, QT)를 포함할 수 있다. 분할된 비디오 신호(201)는 압축을 위해 일반 코더 제어 구성요소(211), 변환 스케일링 및 양자화 구성요소(213), 인트라 픽처 추정 구성요소(215), 필터 제어 분석 구성요소(227) 및 움직임 추정 구성요소(221)에 포워딩된다.
일반 코더 제어 구성요소(211)는 애플리케이션 제약에 따라 비디오 시퀀스의 이미지를 비트스트림으로 코딩하는 것과 관련된 결정을 내리도록 구성된다. 예를 들어, 일반 코더 제어 구성요소(211)는 비트레이트/비트스트림 크기 대(vs) 재구축 품질의 최적화를 관리한다. 이러한 결정은 저장 공간/대역폭 가용성 및 이미지 해상도 요청에 기초하여 내릴 수 있다. 일반 코더 제어 구성요소(211)는 또한 버퍼 언더런(underrun) 및 오버런(overrun) 문제를 완화하기 위해 전송 레이트에 비추어 버퍼 활용을 관리한다. 이러한 문제를 관리하기 위해, 일반 코더 제어 구성요소(211)는 다른 구성요소에 의한 분할, 예측 및 필터링을 관리한다. 예를 들어, 일반 코더 제어 구성요소(211)는 동적으로 해상도를 증가시키고 대역폭 사용을 증가시키기 위해 압축 복잡도를 증가시키거나 해상도 및 대역폭 사용을 감소시키기 위해 압축 복잡도를 감소시킬 수 있다. 따라서, 일반 코더 제어 구성요소(211)는 코덱 시스템(200)의 다른 구성요소를 제어하여 비디오 신호 재구축 품질과 비트 레이트 문제의 균형을 맞춘다. 일반 코더 제어 구성요소(211)는 다른 구성요소의 작동을 제어하는 제어 데이터를 생성한다. 제어 데이터는 또한 디코더에서의 디코딩을 위해 비트스트림에서 신호 파라미터로 인코딩되도록 헤더 포맷팅 및 CABAC 구성요소(231)에 포워딩된다.
분할된 비디오 신호(201)는 또한 인터 예측을 위해 움직임 추정 구성요소(221) 및 움직임 보상 구성요소(219)에 전송된다. 분할된 비디오 신호(201)의 프레임 또는 슬라이스는 다수의 비디오 블록으로 나뉠 수 있다. 움직임 추정 구성요소(221) 및 움직임 보상 구성요소(219)는 시간 예측을 제공하기 위해 하나 이상의 참조 프레임에서 하나 이상의 블록에 대해 수신된 비디오 블록의 인터 예측 코딩(inter-predictive coding)을 수행한다. 코덱 시스템(200)은, 예컨대, 비디오 데이터의 각각의 블록에 대한 적절한 코딩 모드를 선택하기 위해, 다수의 코딩 패스(coding pass)를 수행할 수 있다.
움직임 추정 구성요소(221) 및 움직임 보상 구성요소(219)는 고도로 통합될 수 있지만, 개념적 목적을 위해 개별적으로 나타낸다. 움직임 추정 구성요소(221)에 의해 수행되는 움직임 추정은 비디오 블록에 대한 움직임을 추정하는 움직임 벡터를 생성하는 프로세스이다. 예를 들어, 움직임 벡터는 예측 블록에 대한 코딩된 객체의 변위를 지시할 수 있다. 예측 블록은 화소 차이 측면에서, 코딩될 블록과 밀접하게 매칭되는 것으로 발견된 블록이다. 예측 블록은 참조 블록이라고도 할 수 있다. 그러한 화소 차이는 절대 차 합(sum of absolute difference, SAD), 제곱 차의 합(sum of square difference, SSD), 또는 기타 차의 메트릭에 의해 결정될 수 있다. HEVC는 CTU, 코딩 트리 블록(CTB) 및 CU를 포함한 여러 코딩된 객체를 채용한다. 예를 들어, CTU는 CTB로 나뉠 수 있으며, 이는 그 후 CU에 포함하기 위해 CB로 나뉠 수 있다. CU는 예측 데이터를 포함하는 예측 유닛(PU) 및/또는 CU에 대한 변환된 잔차 데이터를 포함하는 변환 유닛(TU)으로서 인코딩될 수 있다. 움직임 추정 구성요소(221)는 레이트 왜곡 최적화 프로세스의 일부로서 레이트 왜곡 분석을 사용함으로써 움직임 벡터, PU, 및 TU를 생성한다. 예를 들어, 움직임 추정 구성요소(221)는 현재 블록/프레임에 대한 다수의 참조 블록, 다수의 움직임 벡터 등을 결정할 수 있고, 최상의 레이트 왜곡 특성을 갖는 참조 블록, 움직임 벡터 등을 선택할 수 있다. 최상의 레이트 왜곡 특성은 비디오 재구축의 품질(예: 압축에 의한 데이터 손실의 양)과 코딩 효율(예: 최종 인코딩의 크기)의 균형을 유지한다.
일부 예에서, 코덱 시스템(200)은 디코딩된 픽처 버퍼 구성요소(223)에 저장된 참조 픽처의 정수 이하 화소 위치(sub-integer pixel position)에 대한 값을 계산할 수 있다. 예를 들어, 비디오 코덱 시스템(200)은 참조 픽처의 1/4 화소 위치, 1/8 화소 위치, 또는 기타 분수 화소 위치의 값을 보간할 수 있다. 따라서, 움직임 추정 구성요소(221)는 전체 화소 위치 및 분수 화소 위치에 대한 움직임 검색을 수행하고 분수 화소 정밀도를 갖는 움직임 벡터를 출력할 수 있다. 움직임 추정 구성요소(221)는 PU의 위치를 참조 픽처의 예측 블록의 위치와 비교함으로써 인터 코딩된 슬라이스에서 비디오 블록의 PU에 대한 움직임 벡터를 계산한다. 움직임 추정 구성요소(221)는 계산된 움직임 벡터를 움직임 데이터로서 인코딩을 위해 헤더 포맷팅 및 CABAC 구성요소(231)에, 그리고 움직임 보상을 위해 움직임 보상 구성요소(219)에 출력한다.
움직임 보상 구성요소(219)에 의해 수행되는 움직임 보상은 움직임 추정 구성요소(221)에 의해 결정된 움직임 벡터에 기초하여 예측 블록을 가져오거나(fetch) 또는 생성하는 것을 수반할 수 있다. 다시, 움직임 추정 구성요소(221) 및 움직임 보상 구성요소(219)는 일부 예에서, 기능적으로 통합될 수 있다. 현재 비디오 블록의 PU에 대한 움직임 벡터를 수신하면, 움직임 보상 구성요소(219)는 움직임 벡터가 가리키는 예측 블록을 찾을 수 있다. 그런 다음, 코딩되는 현재 비디오 블록의 화소 값에서 예측 블록의 화소 값을 빼서 화소 차이 값을 형성함으로써 잔차 비디오 블록이 형성된다. 일반적으로, 움직임 추정 구성요소(221)는 루마 성분에 대한 움직임 추정을 수행하고, 움직임 보상 구성요소(219)는 루마 성분에 기초하여 크로마 성분과 루마 성분 모두에 대해 계산된 움직임 벡터를 사용한다. 예측 블록 및 잔차 블록은 변환 스케일링 및 양자화 구성요소(213)에 포워딩된다.
분할된 비디오 신호(201)는 또한 인트라 픽처 추정 구성요소(215) 및 인트라 픽처 예측 구성요소(217)에 전송된다. 움직임 추정 구성요소(221) 및 움직임 보상 구성요소(219)와 마찬가지로, 인트라 픽처 추정 구성요소(215) 및 인트라 픽처 예측 구성요소(217)는 고도로 통합될 수 있지만, 개념적 목적을 위해 개별적으로 나타낸다. 인트라 픽처 추정 구성요소(215)와 인트라 픽처 예측 구성요소(217)는 위에서 설명한 바와 같이, 움직임 추정 구성요소(221)와 움직임 보상 구성요소(219)에 의해 프레임 간에 수행되는 인터 예측에 대한 대안으로서 현재 프레임 내의 블록들에 대해 현재 블록을 인트라 예측한다. 특히, 인트라 픽처 추정 구성요소(215)는 현재 블록을 인코딩하는 데 사용할 인트라 예측 모드를 결정한다. 일부 예에서, 인트라 픽처 추정 구성요소(215)는 다수의 테스트된 인트라 예측 모드 중에서 현재 블록을 인코딩하기 위해 적절한 인트라 예측 모드를 선택한다. 선택된 인트라 예측 모드는 인코딩을 위해 헤더 포맷팅 및 CABAC 구성요소(231)에 포워딩된다.
예를 들어, 인트라 픽처 추정 구성요소(215)는 다양한 테스트된 인트라 예측 모드에 대한 레이트 왜곡 분석을 사용하여 레이트 왜곡 값을 계산하고, 테스트된 모드 중에서 최상의 레이트 왜곡 특성을 갖는 인트라 예측 모드를 선택한다. 레이트 왜곡 분석은 일반적으로 인코딩된 블록과 인코딩된 블록을 생성하기 위해 인코딩되었던 인코딩되지 않은 원본 블록 사이의 왜곡(또는 오차)의 양뿐 아니라 인코딩된 블록을 생성하는 데 사용된 비트 레이트(예: 비트 수)도 결정한다. 인트라 픽처 추정 구성요소(215)는 블록에 대한 최상의 레이트 왜곡 값을 보이는 인트라 예측 모드를 결정하기 위해 다양한 인코딩된 블록에 대한 왜곡 및 레이트로부터 비율을 계산한다. 또한, 인트라 픽처 추정 구성요소(215)는 레이트 왜곡 최적화(rate-distortion optimization, RDO)에 기초한 깊이 모델링 모드(depth modeling mode, DMM)를 사용하여 깊이 맵의 깊이 블록을 코딩하도록 구성될 수 있다.
인트라 픽처 예측 구성요소(217)는 인코더에서 구현될 때 인트라 픽처 추정 구성요소(215)에 의해 결정되는 선택된 인트라 예측 모드에 기초하여 예측 블록으로부터 잔차 블록을 생성하거나, 디코더에서 구현될 때 비트스트림으로부터 잔차 블록을 읽을 수 있다. 잔차 블록은 행렬로 표현된, 예측 블록과 원본 블록 간의 값의 차이를 포함한다. 그 후, 잔차 블록은 변환 스케일링 및 양자화 구성요소(213)에 포워딩된다. 인트라 픽처 추정 구성요소(215) 및 인트라 픽처 예측 구성요소(217)는 루마 및 크로마 성분 모두에 대해 작동할 수 있다.
변환 스케일링 및 양자화 구성요소(213)는 잔차 블록을 추가로 압축하도록 구성된다. 변환 스케일링 및 양자화 구성요소(213)는 이산 코사인 변환(discrete cosine transform, DCT), 이산 사인 변환(discrete sine transform, DST) 또는 개념적으로 유사한 변환과 같은, 변환을 잔차 블록에 적용하여 잔차 변환 계수 값을 포함하는 비디오 블록을 생성한다. 웨이블릿 변환, 정수 변환, 서브 대역 변환 또는 기타 유형의 변환도 사용될 수 있다. 변환은 잔차 정보를 화소 값 영역에서 주파수 영역과 같은, 변환 영역으로 변환할 수 있다. 변환 스케일링 및 양자화 구성요소(213)는 또한, 예를 들어 주파수에 기초하여, 변환된 잔차 정보를 스케일링하도록 구성된다. 그러한 스케일링은 스케일 인자를 잔차 정보에 적용하여 상이한 주파수 정보가 상이한 그래뉼래러티(granularity)로 양자화되도록 하는 것을 포함하며, 이는 재구축된 비디오의 최종 시각적 품질에 영향을 미칠 수 있다. 변환 스케일링 및 양자화 구성요소(213)는 또한 비트 레이트를 추가로 감소시키기 위해 변환 계수를 양자화하도록 구성된다. 양자화 프로세스는 계수의 일부 또는 전부와 연관된 비트 깊이를 감소시킬 수 있다. 양자화의 정도는 양자화 파라미터를 조정함으로써 수정될 수 있다. 일부 예에서, 변환 스케일링 및 양자화 구성요소(213)는 그 후 양자화된 변환 계수들을 포함하는 행렬의 스캔을 수행할 수 있다. 양자화된 변환 계수는 헤더 포맷팅 및 CABAC 구성요소(231)에 포워딩되어 비트스트림에 인코딩된다.
스케일링 및 역변환 구성요소(229)는 움직임 추정을 지원하기 위해 변환 스케일링 및 양자화 구성요소(213)의 역작업(reverse operation)을 적용한다. 스케일링 및 역변환 구성요소(229)는 예컨대, 다른 현재 블록에 대한 예측 블록이 될 수 있는 참조 블록으로서 나중에 사용하기 위해, 화소 영역에서 잔차 블록을 재구축하기 위해 역 스케일링, 변환, 및/또는 양자화를 적용한다. 움직임 추정 구성요소(221) 및/또는 움직임 보상 구성요소(219)는 나중 블록/프레임의 움직임 추정에 사용하기 위해 대응하는 예측 블록에 잔차 블록을 다시 추가함으로써 참조 블록을 계산할 수도 있다. 스케일링, 양자화 및 변환 중에 생성된 아티팩트를 완화하기 위해 재구축된 참조 블록에 필터가 적용된다. 그렇지 않으면 그러한 아티팩트는 후속 블록이 예측될 때 부정확한 예측을 야기(하고 추가 아티팩트를 생성)할 수 있다.
필터 제어 분석 구성요소(227) 및 인루프 필터 구성요소(225)는 필터를 잔차 블록 및/또는 재구축된 이미지 블록에 적용한다. 예를 들어, 스케일링 및 역변환 구성요소(229)로부터의 변환된 잔차 블록은 인트라 픽처 예측 구성요소(217) 및/또는 움직임 보상 구성요소(219)로부터의 대응하는 예측 블록과 결합되어 원래의 이미지 블록을 재구축할 수 있다. 그런 다음 필터가 재구축된 이미지 블록에 적용될 수 있다. 일부 예에서, 필터는 대신에 잔차 블록에 적용될 수 있다. 도 2의 다른 구성요소와 마찬가지로, 필터 제어 분석 구성요소(227) 및 인루프 필터 구성요소(225)는 고도로 통합되어 함께 구현될 수 있지만, 개념적 목적을 위해 개별적으로 나타낸다. 재구축된 참조 블록에 적용된 필터는 특정 공간 영역에 적용되며 이러한 필터가 적용되는 방식을 조정하기 위해 다수의 파라미터를 포함한다. 필터 제어 분석 구성요소(227)는 재구축된 참조 블록을 분석하여 그러한 필터가 적용되어야 하는 곳을 결정하고 대응하는 파라미터를 설정한다. 이러한 데이터는 인코딩을 위한 필터 제어 데이터로서 헤더 포맷팅 및 CABAC 구성요소(231)에 포워딩된다. 인루프 필터 구성요소(225)는 필터 제어 데이터에 기초하여 이러한 필터를 적용한다. 필터로는 디블로킹 필터, 잡음 억제 필터, SAO 필터 및 적응형 루프 필터를 포함할 수 있다. 그러한 필터는 예에 따라, 공간/화소 영역(예: 재구축된 화소 블록) 또는 주파수 영역에 적용될 수 있다.
인코더로서 작동할 때, 필터링된 재구축된 이미지 블록, 잔차 블록, 및/또는 예측 블록은 위에서 논의된 바와 같이 움직임 추정에서 나중에 사용하기 위해 디코딩된 픽처 버퍼 구성요소(223)에 저장된다. 디코더로서 작동할 때, 디코딩된 픽처 버퍼 구성요소(223)는 재구축되고 필터링된 블록을 저장하고 출력 비디오 신호의 일부로서 디스플레이를 향해 포워딩한다. 디코딩된 픽처 버퍼 구성요소(223)는 예측 블록, 잔차 블록, 및/또는 재구축된 이미지 블록을 저장할 수 있는 임의의 메모리 기기일 수 있다.
헤더 포맷팅 및 CABAC 구성요소(231)는 코덱 시스템(200)의 다양한 구성요소로부터 데이터를 수신하고 이러한 데이터를 디코더로의 전송을 위해 코딩된 비트스트림으로 인코딩한다. 구체적으로, 헤더 포맷팅 및 CABAC 구성요소(231)는 일반 제어 데이터 및 필터 제어 데이터와 같은 제어 데이터를 인코딩하기 위한 다양한 헤더를 생성한다. 또한, 인트라 예측 및 움직임 데이터를 포함한, 예측 데이터뿐 아니라 양자화된 변환 계수 데이터 형태의 잔차 데이터도 모두 비트스트림에 인코딩된다. 최종 비트스트림은 원래의 분할된 비디오 신호(201)를 재구축하기 위해 디코더가 원하는 모든 정보를 포함한다. 이러한 정보는 또한 인트라 예측 모드 색인표(코드워드 매핑표라고도 함), 다양한 블록에 대한 인코딩 컨텍스트의 정의, 가장 가능성 있는 인트라 예측 모드, 분할 정보의 지시 등을 포함할 수 있다. 이러한 데이터는 엔트로피 코딩을 채용하여 인코딩될 수 있다. 예를 들어, 정보는 컨텍스트 적응형 가변 길이 코딩(context adaptive variable length coding, CAVLC), CABAC, 신택스 기반 컨텍스트 적응형 이진 산술 코딩(syntax-based context-adaptive binary arithmetic coding, SBAC), 확률 구간 분할 엔트로피(probability interval partitioning entropy, PIPE) 코딩 또는 기타 엔트로피 코딩 기술을 적용하여 인코딩될 수 있다. 엔트로피 코딩에 이어, 코딩된 비트스트림은 다른 기기(예: 비디오 디코더)로 송신되거나 나중의 송신 또는 검색을 위해 보관될 수 있다.
도 3은 예시적인 비디오 인루프를 나타낸 블록도이다. 비디오 인루프는 코덱 시스템(200)의 인코딩 기능을 구현하고/하거나 작업 방법(100)의 단계 101, 103, 105, 107, 및/또는 109를 구현하기 위해 채용될 수 있다. 인코더(300)는 입력 비디오 신호를 분할하여, 결과로서 분할된 비디오 신호(301)를 생성하며, 이는 분할된 비디오 신호(201)와 실질적으로 유사하다. 분할된 비디오 신호(301)는 그 후 인코더(300)의 구성요소에 의해 압축되고 비트스트림으로 인코딩된다.
구체적으로, 분할된 비디오 신호(301)는 인트라 예측을 위해 인트라 픽처 예측 구성요소(317)로 포워딩된다. 인트라 픽처 예측 구성요소(317)는 인트라 픽처 추정 구성요소(215) 및 인트라 픽처 예측 구성요소(217)와 실질적으로 유사할 수 있다. 분할된 비디오 신호(301)는 또한 디코딩된 픽처 버퍼 구성요소(323) 내의 참조 블록에 기초한 인터 예측을 위해 움직임 보상 구성요소(321)에도 포워딩된다. 움직임 보상 구성요소(321)는 움직임 추정 구성요소(221) 및 움직임 보상 구성요소(219)와 실질적으로 유사할 수 있다. 인터 픽처 에측 구성요소(317) 및 움직임 보상 구성요소(321)로부터의 예측 블록 및 잔차 블록은 잔차 블록의 변환 및 양자화를 위해 변환 및 양자화 구성요소(313)에 포워딩된다. 변환 및 양자화 구성요소(313)는 변환 스케일링 및 양자화 구성요소(213)와 실질적으로 유사할 수 있다. 변환 및 양자화된 잔차 블록 및 대응하는 예측 블록(연관된 제어 데이터와 함께)은 비트스트림으로 코딩하기 위해 엔트로피 코딩 구성요소(331)에 포워딩된다. 엔트로피 코딩 구성요소(331)는 헤더 포맷팅 및 CABAC 구성요소(231)와 실질적으로 유사할 수 있다.
변환 및 양자화된 잔차 블록 및/또는 대응하는 예측 블록은 또한 움직임 보상 구성요소(321)에 의해 사용하기 위한 참조 블록으로의 재구축을 위해 변환 및 양자화 구성요소(313)로부터 역변환 및 양자화 구성요소(329)로 포워딩된다. 역변환 및 양자화 구성요소(329)는 스케일링 및 역변환 구성요소(229)와 실질적으로 유사할 수 있다. 인루프 필터 구성요소(325) 내의 인루프 필터는 또한 예에 따라 잔차 블록 및/또는 재구축된 참조 블록에도 적용된다. 인루프 필터 구성요소(325)는 필터 제어 분석 구성요소(227) 및 인루프 필터 구성요소(225)와 실질적으로 유사할 수 있다. 인루프 필터 구성요소(325)는 인루프 필터 구성요소(225)와 관련하여 논의된 바와 같이 다수의 필터를 포함할 수 있다. 필터링된 블록은 그 후 움직임 보상 구성요소(321)에 의해 참조 블록으로서 사용하기 위해 디코딩된 픽처 버퍼 구성요소(323)에 저장된다. 디코딩된 픽처 버퍼 구성요소(323)는 디코딩된 픽처 버퍼 구성요소(223)와 실질적으로 유사할 수 있다.
도 4는 예시적인 비디오 디코더(400)를 나타낸 블록도이다. 비디오 디코더(400)는 코덱 시스템(200)의 디코딩 기능을 구현하고 및/또는 작업 방법(100)의 단계 111, 113, 115, 및/또는 117을 구현하기 위해 채용될 수 있다. 디코더(400)는, 예를 들어 인코더(300)로부터 비트스트림을 수신하고, 최종 사용자에게 표시하기 위해 비트스트림에 기초하여 재구축된 출력 비디오 신호를 생성한다.
비트스트림은 엔트로피 디코딩 구성요소(433)에 의해 수신된다. 엔트로피 디코딩 구성요소(433)는 CAVLC, CABAC, SBAC, PIPE 코딩, 또는 기타 엔트로피 코딩 기술과 같은, 엔트로피 디코딩 방식을 구현하도록 구성된다. 예를 들어, 엔트로피 디코딩 구성요소(433)는 헤더 정보를 채용하여 비트스트림에서 코드워드로서 인코딩된 추가 데이터를 해석하기 위한 컨텍스트를 제공할 수 있다. 디코딩된 정보는 일반 제어 데이터, 필터 제어 데이터, 파티션 정보, 움직임 데이터, 예측 데이터 및 잔차 블록으로부터의 양자화된 변환 계수와 같은, 비디오 신호를 디코딩하기 위한 임의의 원하는 정보를 포함한다. 양자화된 변환 계수는 잔차 블록으로의 재구축을 위해 역변환 및 양자화 구성요소(429)에 포워딩된다. 역변환 및 양자화 구성요소(429)는 역변환 및 양자화 구성요소(329)와 유사할 수 있다.
재구축된 잔차 블록 및/또는 예측 블록은 인트라 예측 작업에 기초한 이미지 블록으로의 재구축을 위해 인트라 픽처 예측 구성요소(417)에 포워딩된다. 인트라 픽 예측 구성요소(417)는 인트라 픽처 추정 구성요소(215) 및 인트라 픽처 예측 구성요소(217)와 유사할 수 있다. 구체적으로, 인트라 픽처 예측 구성요소(417)는 예측 모드를 채용하여 프레임 내의 참조 블록의 위치를 찾아내고 그 결과에 잔차 블록을 적용하여 인트라 예측된 이미지 블록을 재구축한다.
재구축된 인트라 예측된 이미지 블록 및/또는 잔차 블록 및 대응하는 인터 예측 데이터는 인루프 필터 구성요소(425)를 통해, 디코딩된 픽처 버퍼 구성요소(223) 및 인루프 필터 구성요소(225)와 각각 실질적으로 유사할 수 있는 디코딩된 픽처 버퍼 구성요소(423)로 포워딩된다. 인루프 필터 구성요소(425)는 재구축된 이미지 블록, 잔차 블록 및/또는 예측 블록을 필터링하고, 그러한 정보는 디코딩된 픽처 버퍼 구성요소(423)에 저장된다. 디코딩된 픽처 버퍼 구성요소(423)로부터의 재구축된 이미지 블록은 인터 예측을 위해 움직임 보상 구성요소(421)에 포워딩된다. 움직임 보상 구성요소(421)는 움직임 추정 구성요소(221) 및/또는 움직임 보상 구성요소(219)와 실질적으로 유사할 수 있다. 구체적으로, 움직임 보상 구성요소(421)는 예측 블록을 생성하기 위해 참조 블록으로부터의 움직임 벡터를 채용하고 그 결과에 잔차 블록을 적용하여 이미지 블록을 재구축한다. 결과인 재구축된 블록은 또한 인루프 필터 구성요소(425)를 통해 디코딩된 픽처 버퍼 구성요소(423)에 포워딩될 수 있다. 디코딩된 픽처 버퍼 구성요소(423)는 파티션 정보를 통해 프레임으로 재구축될 수 있는 추가의 재구축된 이미지 블록을 계속해서 저장한다. 이러한 프레임은 시퀀스에도 배치될 수 있다. 이 시퀀스는 재구축된 출력 비디오 신호로서 디스플레이를 향해 출력된다.
도 5는 인코딩된 비디오 시퀀스를 포함하는 예시적인 비트스트림(500) 및 비트스트림(500)으로부터 추출된 서브 비트스트림(501)을 나타낸 개략도이다. 예를 들어, 비트스트림(500)은 코덱 시스템(200) 및/또는 코덱 시스템(200)에 의한 디코딩을 위해 인코더(300) 및/또는 디코더(400)에 의해 생성될 수 있다. 다른 예로서, 비트스트림(500)은 단계 111에서의 디코더에 의한 사용을 위해 방법(100)의 단계 109에서 인코더에 의해 생성될 수 있다.
비트스트림(500)은 시퀀스 파라미터 세트(SPS)(510), 복수의 픽처 파라미터 세트(PPS)(512), 복수의 슬라이스 헤더(514), 이미지 데이터(520) 및 하나 이상의 SEI 메시지(515)를 포함한다. SPS(510)는 비트스트림(500)에 포함된 비디오 시퀀스 내의 모든 픽처에 공통인 시퀀스 데이터를 포함한다. 이러한 데이터는 픽처 크기, 비트 깊이, 코딩 도구 파라미터, 비트 레이트 제한 등을 포함할 수 있다. PPS(512)는 하나 이상의 대응하는 픽처에 특정한 파라미터를 포함한다. 따라서, 비디오 시퀀스 내의 픽처 각각은 하나의 PPS(512)를 참조할 수 있다. PPS(512)는 대응하는 픽처, 양자화 파라미터, 오프셋, 픽처 특정 코딩 도구 파라미터(예: 필터 제어) 등에서, 타일에 이용 가능한 코딩 도구를 지시할 수 있다. 슬라이스 헤더(514)는 픽처 내의 대응하는 하나 이상의 대응하는 슬라이스에 특정한 파라미터를 포함한다. 따라서, 비디오 시퀀스 내의 슬라이스(524) 각각은 슬라이스 헤더(514)를 참조할 수 있다. 슬라이스 헤더(514)는 슬라이스 유형 그룹 정보, 픽처 순서 카운트(POC), 참조 픽처 목록, 예측 가중치, 타일 진입점, 디블로킹 파라미터 등을 포함할 수 있다. 일부 예에서는 슬라이스(514)를 타일 그룹이라고 한다. 이러한 경우, 슬라이스 헤더(514)는 타일 그룹 헤더로 지칭될 수 있다. SEI 메시지(515)는 블록 디코딩에 필요하지 않지만 픽처 출력 타이밍, 디스플레이 설정, 손실 감지, 손실 은닉 등의 지시와 같은 관련 목적을 위해 채용될 수 있는 메타데이터를 포함하는 선택적 메시지이다.
이미지 데이터(520)는 인터 예측 및/또는 인트라 예측에 따라 인코딩된 비디오 데이터뿐만 아니라 대응하는 변환 및 양자화된 잔차 데이터도 포함한다. 이러한 이미지 데이터(520)는 인코딩 이전에 이미지를 분할하는데 사용된 분할에 따라 정렬된다(sorted). 예를 들어, 비디오 시퀀스는 픽처(521)로 나뉜다. 픽처(521)는 서브 픽처(522)로 더 나뉠 수 있으며, 서브 픽처(522)는 슬라이스(524)로 나뉜다. 슬라이스(524)는 타일 및/또는 CTU로 더 나뉠 수 있다. CTU는 코딩 트리에 기초하여 코딩 블록으로 더 나뉜다. 그런 다음, 코딩 블록은 예측 메커니즘에 따라 인코딩/디코딩될 수 있다. 예를 들어, 픽처(521)는 하나 이상의 서브 픽처(522)를 포함할 수 있다. 서브 픽처(522)는 하나 이상의 슬라이스(524)를 포함할 수 있다. 픽처(521)는 PPS(512)를 참조하고 슬라이스(524)는 슬라이스 헤더(514)를 참조한다. 서브 픽처(522)는 전체 비디오 시퀀스(세그먼트로도 알려짐)에 걸쳐 일관되게 분할될 수 있고, 따라서 SPS(510)를 참조할 수 있다. 각각의 슬라이스(524)는 하나 이상의 타일을 포함할 수 있다. 각각의 슬라이스(524), 따라서 픽처(521) 및 서브 픽처(522)는 또한 복수의 CTU를 포함할 수 있다.
각각의 픽처(521)는 대응하는 순간에 대한 비디오 시퀀스와 연관된 시각적 데이터의 전체 세트를 포함할 수 있다. 그러나 특정 애플리케이션은 경우에 따라 픽처(521)의 일부만 표시하기를 원할 수 있다. 예를 들어, 가상 현실(VR) 시스템은 픽처(521)의 사용자가 선택한 영역을 표시할 수 있으며, 이는 픽처(521)에 묘사된 장면에 존재하는 느낌을 만들어 낸다. 비트스트림(500)이 인코딩될 때 사용자가 보기를 원하는 영역은 미지이다. 따라서, 픽처(521)는 사용자가 잠재적으로 서브 픽처(522)로서 볼 수 있는 각각의 가능한 영역을 포함할 수 있으며, 이는 사용자 입력에 기초하여 별도로 디코딩 및 표시될 수 있다. 다른 애플리케이션은 관심 영역을 별도로 표시할 수 있다. 예를 들어, 픽처인픽처(a picture in a picture) 기능이 있는 텔레비전은 관련 없는 비디오 시퀀스의 픽처(521) 위에 하나의 비디오 시퀀스에서 특정 영역, 따라서 서브 픽처(522)을 표시하기를 원할 수 있다. 또 다른 예에서, 원격 회의 시스템은 현재 말하고 있는 사용자의 전체 픽처(521) 및 현재 말하고 있지 않은 사용자의 서브 픽처(522)을 표시할 수 있다. 따라서, 서브 픽처(522)는 픽처(521)의 정의된 영역을 포함할 수 있다. 일시적으로 움직임이 제약된 서브 픽처(522)는 나머지 픽처(521)와 별도로 디코딩될 수 있다. 구체적으로, 시간적 움직임이 제약된 서브 픽처는 시간적 움직임이 제약된 서브 픽처 외부의 샘플을 참조하지 않고 인코딩되며, 따라서 픽처(521)의 나머지 부분을 참조하지 않고도 완전한 디코딩을 위한 충분한 정보를 포함한다.
각각의 슬라이스(524)는 좌측 상단 모서리에 있는 CTU 및 우측 하단 모서리에 있는 CTU에 의해 정의된 직사각형일 수 있다. 일부 예에서, 슬라이스(524)는 왼쪽에서 오른쪽으로 그리고 위에서 아래로 진행하는 래스터 스캔 순서로 일련의 타일 및/또는 CTU를 포함한다. 다른 예에서, 슬라이스(524)는 직사각형 슬라이스이다. 직사각형 슬라이스는 래스터 스캔 순서에 따라 픽처의 전체 폭를 가로지르지 않을 수 있다. 대신에, 직사각형 슬라이스는 CTU 및/또는 타일 행 및 CTU 및/또는 타일 열의 관점에서 정의된 픽처(521) 및/또는 서브 픽처(522)의 직사각형 및/또는 정사각형 영역을 포함할 수 있다. 슬라이스(524)는 디코더가 개별 표시할 수 있는 가장 작은 단위이다. 따라서, 픽처(521)로부터의 슬라이스(524)는 픽처(521)의 원하는 영역을 개별적으로 묘사하기 위해 다른 서브 픽처(522)에 할당될 수 있다.
디코더는 픽처(521)의 하나 이상의 서브 픽처(523)를 디스플레이할 수 있다. 서브 픽처(523)는 사용자가 선택하거나 서브 픽처(522)의 미리 정의된 서브 그룹이다. 예를 들어, 픽처(521)는 9개의 서브 픽처(522)로 분할될 수 있지만, 디코더는 서브 픽처(522)의 그룹으로부터 단 하나의 서브 픽처(523)만을 표시할 수 있다. 서브 픽처(523)는 슬라이스(525)를 포함하며, 이는 슬라이스(524)의 선택되거나 미리 정의된 서브 그룹이다. 서브 픽처(523)의 개별 표시를 허용하기 위해, 서브 비트스트림(501)이 비트스트림(500)으로부터 추출될 수 있다(529). 추출(529)은 인코더 측에서 일어날 수 있으므로 디코더는 서브 비트스트림(501)을 수신만 한다. 다른 경우에, 전체 비트스트림(500)이 디코더에 송신되고 디코더는 개별 디코딩을 위해 서브 비트스트림(501)을 추출한다(529). 서브 비트스트림(501)은 또한 경우에 따라 일반적으로 비트스트림으로 지칭될 수 있음에 유의해야 한다. 서브 비트스트림(501)은 SPS(510), PPS(512), 선택된 서브 픽처(523)뿐만 아니라 서브 픽처(523) 및/또는 슬라이스(525)와 관련된 슬라이스 헤더(514), 및 SEI 메시지(515)를 포함한다.
본 개시내용은 디코더에서 서브 픽처(523)의 선택 및 표시를 위한 서브 픽처(522)의 효율적인 코딩을 지원하기 위해 다양한 데이터를 시그널링한다. SPS(510)는 서브 픽처 크기(531), 서브 픽처 위치(532), 및 서브 픽처의 완전한 세트(522)와 관련된 서브 픽처 ID(533)를 포함한다. 서브 픽처 크기(531)는 루마 샘플의 서브 픽처 높이 및 대응하는 서브 픽처(522)에 대한 루마 샘플의 서브 픽처 폭을 포함한다. 서브 픽처 위치(532)는 대응하는 서브 픽처(522)의 좌측 상단 샘플과 픽처(521)의 좌측 상단 샘플 사이의 오프셋 거리를 포함한다. 서브 픽처 위치(532) 및 서브 픽처 크기(531)는 대응하는 서브 픽처(522)의 레이아웃을 정의한다. 서브 픽처 ID(533)는 대응하는 서브 픽처(522)를 유일하게 식별하는 데이터를 포함한다. 서브 픽처 ID(533)는 서브 픽처(522) 래스터 스캔 색인 또는 다른 정의된 값일 수 있다. 따라서, 디코더는 SPS(510)를 판독할 수 있고 각각의 서브 픽처(522)의 크기, 위치 및 ID를 결정할 수 있다. 일부 비디오 코딩 시스템에서, 서브 픽처(522)와 관련된 데이터는, 서브 픽처(522)가 픽처(521)로부터 분할되기 때문에 PPS(512)에 포함될 수 있다. 그러나 서브 픽처(522)를 만들기 위해 사용된 분할이 비디오 시퀀스/세그먼트에 걸쳐 일관된 서브 픽처(522) 분할에 의존하는, ROI 기반 애플리케이션, VR 애플리케이션 등과 같은 애플리케이션에 의해 사용될 수 있다. 이와 같이, 서브 픽처(522) 분할은 일반적으로 픽처 단위로 변경되지 않는다. SPS(510)에 서브 픽처(522)에 대한 레이아웃 정보를 배치하는 것은 레이아웃이 각 PPS(512)(일부 경우에 각각의 픽처(521)에 대해 시그널링될 수 있음)에 대해 중복적으로 시그널링되는 것이 아니라 시퀀스/세그먼트에 대해 한 번만 시그널링되는 것을 보장한다. 또한, 이러한 정보를 도출하기 위해 디코더에 의존하는 대신에 서브 픽처(522) 정보를 시그널링하는 것은 손실된 패킷의 경우에 오류의 가능성을 감소시키고 서브 픽처(523)를 추출하는 측면에서 추가적인 기능을 지원한다. 따라서, SPS(510)에서 서브 픽처(522) 레이아웃을 시그널링하는 것은 인코더 및/또는 디코더의 기능을 향상시키다.
SPS(510)는 또한 서브 픽처(522)의 완전한 세트와 관련된 움직임이 제약된 서브 픽처 플래그(534)를 포함한다. 움직임이 제약된 서브 픽처 플래그(534)는 각각의 서브 픽처(522)가 시간적 움직임이 제약된 서브 픽처인지를 지시한다. 따라서, 디코더는 움직임이 제약된 서브 픽처 플래그(534)를 판독할 수 있고 서브 픽처(522) 중 어느 것이 다른 서브 픽처(522)를 디코딩하지 않고 별도로 추출 및 표시될 수 있는지 결정할 수 있다. 이것은 선택된 서브 픽처(522)가 시간적 움직임이 제약된 서브 픽처로서 코딩될 수 있도록 해주고 코딩 효율 증대를 위해 다른 서브 픽처(522)가 이러한 제한 없이 코딩되도록 해준다.
서브 픽처 ID(533)는 또한 슬라이스 헤더(514)에 포함된다. 각각의 슬라이스 헤더(514)는 대응하는 슬라이스 세트(524)와 관련된 데이터를 포함한다. 따라서, 슬라이스 헤더(514)는 슬라이스 헤더(514)와 연관된 슬라이스(524)에 대응하는 서브 픽처 ID(533)만 포함한다. 이와 같이, 디코더는 슬라이스(524)를 수신하고, 슬라이스 헤더(514)로부터 서브 픽처 ID(533)를 획득하고, 슬라이스(524)를 포함하는 서브 픽처(522)를 결정할 수 있다. 디코더는 또한 SPS(510)의 관련 데이터와 상관시키기 위해 슬라이스 헤더(514)로부터의 서브 픽처 ID(533)를 사용할 수 있다. 이와 같이, 디코더는 SPS(510) 및 관련 슬라이스 헤더(514)를 판독함으로써 서브 픽처(522/523) 및 슬라이스(524/525)를 위치시키는 방법을 결정할 수 있다. 이것은 일부 서브 픽처(522)가 송신 중에 손실되거나 코딩 효율을 증대시키기 위해 의도적으로 생략되더라도 서브 픽처(523) 및 슬라이스(525)가 디코딩될 수 있도록 해준다.
SEI 메시지(515)는 또한 서브 픽처 레벨(535)을 포함할 수 있다. 서브 픽처 레벨(535)은 대응하는 서브 픽처(522)를 디코딩하는 데 필요한 하드웨어 자원을 지시한다. 이러한 방식으로, 각각의 서브 픽처(522)는 다른 서브 픽처(522)와 독립적으로 코딩될 수 있다. 이는 각각의 서브 픽처(522)가 디코더에 의해 정확한 양의 하드웨어 자원을 할당받을 수 있도록 보장한다. 이러한 서브 픽처 레벨(535)이 없으면, 각각의 서브 픽처(522)는 가장 복잡한 서브 픽처(522)를 디코딩하기에 충분한 자원을 할당받을 것이다. 따라서, 서브 픽처(522)가 가변 하드웨어 자원 요건과 관련이 있으면, 서브 픽처 레벨(535)은 디코더가 하드웨어 자원을 과도하게 할당하는 것을 방지한다.
도 6은 서브 픽처(622)로 분할된 예시적인 픽처(600)를 나타낸 개략도이다. 예를 들어, 픽처(600)는, 예를 들어 코덱 시스템(200), 인코더(300), 및/또는 디코더(400)에 의해 비트스트림(500)으로 인코딩되거나 비트스트림(500)으로부터 디코딩될 수 있다. 또한, 픽처(600)는 방법(100)에 따른 인코딩 및 디코딩을 지원하기 위해 서브 비트스트림(501)으로 분할 및/또는 서브 비스트림(501)에 포함될 수 있다.
픽처(600)는 픽처(521)와 실질적으로 유사할 수 있다. 또한, 픽처(600)는 서브 픽처(522)와 실질적으로 유사한, 서브 픽처(622)로 분할될 수 있다. 서브 픽처(622) 각각은 서브 픽처 크기(631)를 포함하며, 이는 비트스트림(500)에 서브 픽처 크기(531)로서 포함될 수 있다. 서브 픽처 크기(631)는 서브 픽처 폭(631a) 및 서브 픽처 높이(631b)를 포함한다. 서브 픽처 폭(631a)은 루마 샘플 단위의 대응하는 서브 픽처(622)의 폭이다. 서브 픽처 높이(631b)는 루마 샘플 단위의 대응하는 서브 픽처(622)의 높이이다. 서브 픽처(622) 각각은 서브 픽처 ID(633)를 포함하며, 이는 서브 픽처 ID(633)로서 비트스트림(500)에 포함될 수 있다. 서브 픽처 ID(633)는 각각의 서브 픽처(622)를 유일하게 식별하는 임의의 값일 수 있다. 도시된 예에서, 서브 픽처 ID(633)는 서브 픽처(622) 색인이다. 서브 픽처(622) 각각은 서브 픽처 위치(532)로서 비트스트림(500)에 포함될 수 있는 위치(632)를 포함한다. 위치(632)는 대응하는 서브 픽처(622)의 좌측 상단 샘플과 픽처(600)의 좌측 상단 샘플 사이의 오프셋으로 표현된다.
또한 도시된 바와 같이, 일부 서브 픽처(622)는 시간적 움직임이 제약된 서브 픽처(634)일 수 있고 다른 서브 픽처(622)는 그렇지 않을 수 있다. 도시된 예에서, 5개의 서브 픽처 ID(633)를 갖는 서브 픽처(622)는 시간적 움직임이 제약된 서브 픽처(634)이다. 이것은 5로 식별된 서브 픽처(622)가 임의의 다른 서브 픽처(622)에 대한 참조 없이 코딩됨을 나타내며, 따라서 다른 서브 픽처(622)로부터의 데이터를 고려하지 않고 추출되고 별도로 디코딩될 수 있다. 어떤 서브 픽처(622)가 시간적 움직임이 제약된 서브 픽처(634)인지의 지시는 움직임이 제약된 서브 픽처 플래그(534)의 비트스트림(500)에서 시그널링될 수 있다.
도시된 바와 같이, 서브 픽처(622)는 틈 또는 겹침 없이 픽처(600)를 커버하도록 제약받을 수 있다. 틈은 임의의 서브 픽처(622)에 포함되지 않은 픽처(600)의 영역이다. 겹침은 하나 이상의 서브 픽처(622)에 포함되는 픽처(600)의 영역이다. 도 6에 도시된 예에서, 서브 픽처(622)는 틈 및 겹침 모두를 방지하기 위해 픽처(600)로부터 분할된다. 틈은 픽처(600) 샘플이 서브 픽처(622)에서 제외되게 한다. 겹침은 연관된 슬라이스가 다수의 서브 픽처(622)에 포함되도록 한다. 따라서, 틈 및 겹침은 서브-픽처(622)들이 서로 다르게 코딩될 때 샘플이 차등 처리에 의해 영향을 받게 할 수 있다. 이것이 인코더에서 허용된다면, 디코더는 디코딩 방식이 거의 사용되지 않는 경우에도 이러한 코딩 방식을 지원해야 한다. 서브 픽처(622) 틈 및 겹침을 허용하지 않음으로써, 디코더가 서브 픽처 크기(631) 및 위치(632)를 결정할 때 잠재적인 틈 및 겹침을 고려할 필요가 없기 때문에 디코더의 복잡도가 감소될 수 있다. 또한, 서브 픽처(622) 틈 및 겹침을 허용하지 않는 것은 인코더에서 RDO 프로세스의 복잡도를 감소시킨다. 이는 인코더가 비디오 시퀀스에 대한 인코딩을 선택할 때 틈 및 겹침 경우를 고려하지 않을 수 있기 때문이다. 따라서, 틈 및 겹침을 피하는 것은 인코더 및 디코더에서 메모리 자원 및/또는 처리 자원의 사용을 감소시킬 수 있다.
도 7은 슬라이스(724)를 서브 픽처(722) 레이아웃에 관련시키기 위한 예시적인 메커니즘(700)을 나타낸 개략도이다. 예를 들어, 메커니즘(700)은 픽처(600)에 적용될 수 있다. 또한, 메커니즘(700)은 예를 들어 코덱 시스템(200), 인코더(300), 및/또는 디코더(400)에 의해, 비트스트림(500)의 데이터에 기초하여 적용될 수 있다. 또한 메커니즘(700)은 방법(100)에 따른 인코딩 및 디코딩을 지원하기 위해 사용될 수 있다.
메커니즘(700)은 각각 슬라이스(524/525) 및 서브 픽처(522/523)와 같은, 서브 픽처(722)의 슬라이스(724)에 적용될 수 있다. 도시된 예에서, 서브 픽처(722)는 제1 슬라이스(724a), 제2 슬라이스(724b), 및 제3 슬라이스(724c)를 포함한다. 슬라이스(724) 각각에 대한 슬라이스 헤더는 서브 픽처(722)에 대한 서브 픽처 ID(733)를 포함한다. 디코더는 슬라이스 헤더로부터의 서브 픽처 ID(733)를 SPS 내의 서브 픽처 ID(733)와 매칭시킬 수 있다. 디코더는 그런 다음 서브 픽처 ID(733)에 기초하여 SPS로부터 서브 픽처(722)의 크기 및 위치(732)를 결정할 수 있다. 위치(732)를 사용하여, 서브 픽처(722)는 픽처의 좌측 상단 모서리(742)에 대해 배치될 수 있다. 크기는 위치(732)에 대한 서브 픽처(722)의 높이 및 폭를 설정하는 데 사용될 수 있다. 슬라이스(724)는 그 후 서브 픽처(722)에 포함될 수 있다. 따라서, 슬라이스(724)는 다른 서브 픽처를 참조하지 않고 서브 픽처 ID(733)에 기초하여 정확한 픽처(722)에 위치될 수 있다. 이것은 다른 손실된 서브 픽처가 서브 픽처(722)의 디코딩을 변경하지 않기 때문에 오류 정정을 지원한다. 이것은 또한 서브 픽처(722)을 추출만하고 다른 서브 픽처의 송신을 피하는 애플리케이션을 지원한다. 따라서, 서브 픽처 ID(733)는 증가된 기능 및/또는 증가된 코딩 효율을 지원하며, 이는 인코더 및 디코더에서 네트워크 자원, 메모리 자원, 및/또는 처리 자원의 사용을 감소시킨다.
도 8은 서브 픽처(822)로 분할된 다른 예시적인 픽처(800)를 나타낸 개략도이다. 픽처(800)는 픽처(600)와 실질적으로 유사할 수 있다. 또한, 픽처(800)는 예를 들어 코덱 시스템(200), 인코더(300), 및/또는 디코더(400)에 의해 비트스트림(500)으로 인코딩될 수 있고 비트스트림(500)으로부터 디코딩될 수 있다. 또한, 픽처(800)는 방법(100) 및/또는 메커니즘(700)에 따른 인코딩 및 디코딩을 지원하기 위해 서브 비트스트림(501)으로 분할될 수 있고/있거나 서브 비트스트림(501)에 포함될 수 있다.
픽처(800)는 서브 픽처(822)를 포함하고, 이는 서브 픽처(522, 523, 622, 및/또는 722)와 실질적으로 유사할 수 있다. 서브 픽처(822)는 복수의 CTU(825)로 나뉜다. CTU(825)는 표준화된 비디오 코딩 시스템의 기본 코딩 유닛이다. CTU(825)는 코딩 트리에 의해 인터 예측 또는 인트라 예측에 따라 코딩되는 코딩 블록으로 세분된다. 도시된 바와 같이, 일부 서브 픽처(822a)는 CTU(825) 크기의 배수인 서브 픽처 폭 및 서브 픽처 높이를 포함하도록 제약을 받는다. 도시된 예에서, 서브 픽처(822a)는 CTU(825) 6개의 높이 및 CTU(825) 5개의 폭을 갖는다. 이 제약은 픽처 우측 경계(801) 상에 위치된 서브 픽처(822b) 및 픽처 하단 경계(802) 상에 위치된 서브 픽처(822c)에 대해 제거된다. 도시된 예에서, 서브 픽처(822b)는 5개 내지 6개의 CTU(825)의 폭을 갖는다. 그러나 픽처 하단 경계(802) 상에 위치되지 않은 서브 픽처(822b)는 여전히 CTU(825) 크기의 배수인 서브 픽처 높이를 유지하도록 제약된다. 도시된 예에서, 서브 픽처(822c)는 6개 내지 7개의 CTU(825)의 높이를 갖는다. 그러나 픽처 우측 경계(801) 상에 위치하지 않는 서브 픽처(822c)는 여전히 CTU 825 크기의 배수인 서브 픽처 폭을 유지하도록 제약된다.
위에서 언급한 바와 같이, 일부 비디오 시스템은 CTU(825) 크기의 배수인 높이 및 폭를 포함하도록 서브 픽처(822)를 제한할 수 있다. 이것은 예를 들어 CTU(825) 크기의 배수가 아닌 전체 폭 또는 높이를 포함하는 픽처(800)와 함께 많은 픽처 레이아웃으로 서브 픽처(822)가 올바르게 동작하는 것을 방지할 수 있다. 하단 서브 픽처(822c) 및 우측 서브 픽처(822b)가 각각 CTU(825) 크기의 배수가 아닌 높이 및 폭를 포함하도록 허용함으로써, 서브 픽처(822)는 디코딩 오류를 야기하지 않고 임의의 픽처(800)와 함께 사용될 수 있다. 그 결과 인코더 및 디코더 기능이 향상된다. 또한, 향상된 기능은 인코더가 픽처를 보다 효율적으로 코딩할 수 있게 하여, 인코더 및 디코더에서 네트워크 자원, 메모리 자원 및/또는 처리 자원의 사용을 감소시킨다.
본 명세서에 설명된 바와 같이, 본 개시내용은 비디오 코딩에서 서브 픽처 기반 픽처 분할을 위한 설계를 설명한다. 서브 픽처는 픽처에 사용되는 것과 유사한 디코딩 프로세스를 사용하여 독립적으로 디코딩될 수 있는 픽처 내의 직사각형 영역이다. 본 개시내용은 코딩된 비디오 시퀀스 및/또는 비트스트림에서 서브 픽처의 시그널링뿐만 아니라 서브 픽처 추출에 대한 프로세스에 관한 것이다. 기술에 대한 설명은 ITU-T 및 ISO/IEC의 JVET에 의한 VVC에 기초하여 한다. 그러나 이 기술은 다른 비디오 코덱 사양에도 적용된다. 이하에서는 여기에 설명된 예시적인 실시예이다. 이러한 실시예는 개별적으로 또는 조합하여 적용될 수 있다.
코딩된 비디오 시퀀스(CVS)에 존재할 수 있는 서브 픽처와 관련된 정보는 SPS와 같은, 시퀀스 레벨 파라미터 세트에서 시그널링될 수 있다. 이러한 시그널링은 다음 정보를 포함할 수 있다. CVS의 픽처 각각에 존재하는 서브 픽처의 수는 SPS에서 시그널링될 수 있다. SPS 또는 CVS의 컨택스트에서, 모든 액세스 유닛(AU)에 대한 병치된 서브 픽처는 집합적으로 서브 픽처 시퀀스로 지칭될 수 있다. 각각의 서브 픽처의 속성을 기술하는 정보를 추가로 지정하기 위한 루프가 또한 SPS에 포함될 수 있다. 이 정보는 서브 픽처 ID(IDentification), 서브 픽처의 위치(예: 서브 픽처의 좌측 상단 모서리 루마 샘플과 픽처의 좌측 상단 모서리 루마 샘플 사이의 오프셋 거리), 및 서브 픽처의 크기를 포함할 수 있다. 또한, SPS는 각각의 서브 픽처가 (MCTS의 기능을 포함하는) 움직임이 제약된 서브 픽처인지 여부를 시그널링할 수 있다. 각각의 서브 픽처에 대한 프로파일, 티어, 및 레벨 정보는 또한 디코더에서 시그널링되거나 도출 가능할 수 있다. 이러한 정보는 원본 비트스트림으로부터 서브 픽처를 추출함으로써 만들어지는 비트스트림에 대한 프로파일, 티어 및 레벨 정보를 결정하기 위해 사용될 수 있다. 각각의 서브 픽처의 프로파일 및 티어는 전체 비트스트림의 프로파일 및 계층과 동일하도록 도출될 수 있다. 각각의 서브 픽처에 대한 레벨은 명시적으로 시그널링될 수 있다. 이러한 시그널링은 SPS에 포함된 루프에 존재할 수 있다. 시퀀스 레벨 가상 참조 디코더(sequence-level hypothetical reference decoder, HRD) 파라미터는 각각의 서브 픽처(또는 동등하게, 각각의 서브 픽처 시퀀스)에 대한 SPS의 비디오 사용성 정보(video usability information, VUI) 섹션에서 시그널링될 수 있다.
픽처가 2개 이상의 서브 픽처로 분할되지 않은 경우, 서브 픽처 ID를 제외한 서브 픽처의 속성(예: 위치, 크기 등)이 비트스트림에 존재하지/시그널링되지 않을 수 있다. CVS에서 픽처의 서브픽처가 추출될 때, 새로운 비트스트림의 각각의 액세스 유닛은 서브픽처를 포함하지 않을 수 있다. 이 경우, 새로운 비트스트림의 각각의 AU에 있는 픽처는 여러 개의 서브 픽처로 분할되지 않는다. 따라서 이러한 정보가 픽처 속성에서 도출될 수 있기 때문에 SPS에서 위치 및 크기와 같은 서브 픽처 속성을 시그널링할 필요가 없다. 그러나 추출된 서브 픽처에 포함된 VCL NAL 유닛/타일 그룹에 의해 ID가 참조될 수 있기 때문에 서브 픽처 ID는 여전히 시그널링될 수 있다. 이는 서브 픽처를 추출할 때 서브 픽처 ID가 동일하게 유지되도록 할 수 있다.
픽처에서의 서브 픽처의 위치(x 오프셋 및 y 오프셋)는 루마 샘플 단위로 시그널링될 수 있다. 위치는 서브 픽처의 좌측 상단 모서리 루마 샘플과 픽처의 좌측 상단 모서리 루마 샘플 사이의 거리를 나타낸다. 대안으로, 픽처에서의 서브 픽처의 위치는 최소 코딩 루마 블록 크기(MinCbSizeY) 단위로 시그널링될 수 있다. 대안으로, 서브 픽처 위치 오프셋의 단위는 파라미터 세트의 신택스 요소에 의해 명시적으로 지시될 수 있다. 그 단위는 CtbSizeY, MinCbSizeY, 루마 샘플 또는 기타 값일 수 있다.
서브 픽처의 크기(서브 픽처 폭 및 서브 픽처 높이)는 루마 샘플 단위로 시그널링될 수 있다. 대안으로, 최소 코딩 루마 블록 크기(MinCbSizeY) 단위로 서브 픽처의 크기를 시그널링할 수 있다. 대안으로, 서브 픽처 크기 값의 단위는 파라미터 세트의 신택스 요소에 의해 명시적으로 지시될 수 있다. 단위는 CtbSizeY, MinCbSizeY, 루마 샘플 또는 기타 값일 수 있다. 서브 픽처의 우측 경계가 픽처의 우측 경계와 일치하지 않는 경우, 서브 픽처의 폭은 루마 CTU 크기(CtbSizeY)의 정수배가 되도록 요구될 수 있다. 마찬가지로, 서브 픽처의 하단 경계가 픽처의 하단 경계와 일치하지 않는 경우, 서브 픽처의 높이는 루마 CTU 크기(CtbSizeY)의 정수배가 되도록 요구될 수 있다. 서브 픽처의 폭이 루마 CTU 크기의 정수배가 아닌 경우, 서브 픽처는 픽처의 가장 오른쪽에 위치되도록 요구될 수 있다. 마찬가지로, 서브 픽처의 높이가 루마 CTU 크기의 정수배가 아닌 경우, 서브 픽처는 픽처의 가장 하단 위치에 위치되도록 요구될 수 있다. 경우에 따라, 서브 픽처의 폭은 루마 CTU 크기 단위로 시그널링될 수 있지만 서브 픽처의 폭은 루마 CTU 크기의 정수배가 아니다. 이 경우, 루마 샘플의 실제 폭은 서브 픽처의 오프셋 위치에 기초하여 도출될 수 있다. 서브 픽처의 폭는 루마 CTU 크기에 기초하여 도출될 수 있고 픽처의 높이는 루마 샘플에 기초하여 도출될 수 있다. 마찬가지로 서브 픽처의 높이는 루마 CTU 크기 단위로 시그널링될 수 있지만, 서브 픽처의 높이는 루마 CTU 크기의 정수배가 아니다. 이러한 경우, 루마 샘플의 실제 높이는 서브 픽처의 오프셋 위치에 기초하여 도출될 수 있다. 서브 픽처의 높이는 루마 CTU 크기에 기초하여 도출될 수 있고, 픽처의 높이는 루마 샘플에 기초하여 도출될 수 있다.
임의의 서브 픽처에 대해, 서브 픽처 ID는 서브 픽처 색인과 다를 수 있다. 서브 픽처 색인은 SPS의 서브 픽처의 루프에서 시그널링되는 서브 픽처의 색인일 수 있다. 서브 픽처 ID는 픽처에서 서브 픽처 래스터 스캔 순서에서의 서브 픽처의 색인일 수 있다. 각각의 서브 픽처의 서브 픽처 ID 값이 서브 픽처 색인과 동일한 경우, 서브 픽처 ID는 시그널링되거나 도출될 수 있다. 각각의 서브 픽처의 서브 픽처 ID가 서브 픽처 색인과 다를 경우, 서브 픽처 ID는 명시적으로 시그널링된다. 서브 픽처 ID의 시그널링을 위한 비트의 수는 서브 픽처 속성을 포함하는 동일한 파라미터 세트에서(예: SPS에서) 시그널링될 수 있다. 서브 픽처 ID에 대한 일부 값은 특정 목적을 위해 예약될 수 있다. 예를 들어, 타일 그룹 헤더가 타일 그룹을 포함는 서브 픽처를 지정하기 위한 서브 픽처 ID를 포함할 때, 값 0(영)은 예약될 수 있고, 타일 그룹 헤더의 처음 몇 비트는 에뮬레이션 방지 코드가 실수로 포함되는 것을 방지하기 위해 모두 0이다. 픽처의 서브 픽처가 틈 및 겹침 없이 픽처의 전체 영역을 커버하지 않는 선택적인 경우에, 값(예: 값 1)은 서브 픽처의 일부가 아닌 타일 그룹에 대해 예약될 수 있다. 대안으로, 나머지 영역의 서브 픽처 ID는 명시적으로 시그널링된다. 서브 픽처 ID를 시그널링하기 위한 비트 수는 다음과 같이 제한될 수 있다. 값 범위는 서브 픽처 ID의 예약된 값을 포함하여, 픽처의 모든 서브 픽처를 유일하게 식별하기에 충분해야 한다. 예를 들어, 서브 픽처 ID에 대한 최소 비트 수는 Ceil( Log2(픽처의 서브 픽처 수 + 예약된 서브 픽처 ID의 수)의 값일 수 있다.
서브 픽처의 합집합(union)은 틈과 겹침 없이 전체 픽처를 커버해야 하는 것으로 제약될 수 있다. 이 제약이 적용될 때, 각각의 서브 픽처에 대해, 서브 픽처가 추출될 수 있음을 지시하는, 움직임이 제약된 서브 픽처인지 여부를 지정하기 위한 플래그가 존재할 수 있다. 대안으로, 서브 픽처의 합집합이 전체 픽처를 커버하지 않을 수 있지만, 겹침은 허용되지 않을 수 있다.
서브 픽처 ID는 추출기가 NAL 유닛 비트의 나머지를 파싱할 것을 요구하지 않고 서브 픽처 추출 프로세스를 지원하기 위해 NAL 유닛 헤더 직후에 존재할 수 있다. VCL NAL 유닛의 경우, 서브 픽처 ID는 타일 그룹 헤더의 첫 번째 비트에 존재할 수 있다. VCL이 아닌 NAL 유닛의 경우, 다음이 적용될 수 있다. SPS의 경우, NAL 유닛 헤더 바로 뒤에 서브 픽처 ID가 존재할 필요는 없다. PPS의 경우, 동일한 픽처의 모든 타일 그룹이 동일한 PPS를 참조하도록 제약되면, 서브 픽처 ID가 NAL 유닛 헤더 직후에 존재할 필요는 없다. 동일한 픽처의 타일 그룹이 다른 PPS를 참조하도록 허용되면, 서브 픽처 ID는 PPS의 첫 번째 비트(예: NAL 유닛 헤더 직후)에 존재할 수 있다. 이 경우, 하나의 픽처의 모든 타일 그룹은 동일한 PPS를 공유하도록 허용될 수 있다. 대안으로, 동일한 픽처의 타일 그룹이 서로 다른 PPS를 참조하도록 허용하고, 동일한 픽처의 서로 다른 타일 그룹도 동일한 PPS를 공유하도록 허용하는 경우, PPS 신택스에 서브 픽처 ID가 없을 수 있다. 대안으로, 동일한 픽처의 타일 그룹이 서로 다른 PPS를 참조하도록 허용하고, 동일한 픽처의 서로 다른 타일 그룹도 동일한 PPS를 공유하도록 허용하는 경우, 서브 픽처 ID의 목록이 PPS 신택스에 존재할 수 있다. 목록은 PPS가 적용되는 서브 픽처를 지시한다. 다른 비 VCL NAL 유닛의 경우, 비 VCL 유닛이 픽처 레벨 이상(예: 액세스 유닛 구분자, 시퀀스 끝, 비트스트림 끝 등)에 적용되면, 서브 픽처 ID가 NAL 유닛 헤더 직후에 존재하지 않을 수 있다. 그렇지 않으면, 서브 픽처 ID가 NAL 유닛 헤더 직후에 존재할 수 있다.
위의 SPS 시그널링으로, 개별 서브 픽처 내의 타일 분할이 PPS에서 시그널링될 수 있다. 동일한 픽처 내의 타일 그룹은 다른 PPS를 참조하도록 허용될 수 있다. 이 경우, 타일 그룹화는 각각의 서브 픽처 내에만 있을 수 있다. 타일 그룹화 개념은 서브 픽처를 타일로 분할하는 것이다.
대안으로, 개별 서브 픽처 내의 타일 파티셔닝을 설명하기 위한 파라미터 세트가 정의된다. 이러한 파라미터 세트를 SPPS(Sub-Picture Parameter Set)라고 부를 수 있다. SPPS는 SPS를 가리킨다. SPS ID를 참조하는 신택스 요소는 SPPS에 존재한다. SPPS는 서브 픽처 ID를 포함할 수 있다. 서브 픽처 추출 목적을 위해, 서브 픽처 ID를 참조하는 신택스 요소는 SPPS의 첫 번째 신택스 요소이다. SPPS는 타일 구조(예: 다수의 열, 다수의 행, 균일한 타일 간격 등)를 포함한다. SPPS는 루프 필터가 연관된 서브 픽처 경계에 걸쳐 활성화되는지를 지시하는 플래그를 포함할 수 있다. 대안으로, 각각의 서브 픽처에 대한 서브 픽처 속성은 SPS 대신에 SPPS에서 시그널링될 수 있다. 개별 서브 픽처 내의 타일 분할은 여전히 PPS에서 시그널링될 수 있다. 동일한 픽처 내의 타일 그룹은 다른 PPS를 참조할 수 있다. 일단 SPPS가 활성화되면, SPPS는 디코딩 순서에서 연속적인 AU 시퀀스 동안 지속된다. 그러나 SPPS는 CVS의 시작이 아닌 AU에서 비활성화/활성화될 수 있다. 일부 AU에서 다중 서브 픽처를 갖는 단일 계층 비트스트림의 디코딩 프로세스 동안 임의의 순간에 다중 SPPS가 활성화될 수 있다. SPPS는 AU의 다른 서브 픽처에 의해 공유될 수 있다. 대안으로 SPPS와 PPS를 하나의 파라미터 세트로 병합할 수 있다. 이러한 경우, 동일한 픽처의 모든 타일 그룹이 동일한 PPS를 참조할 필요는 없을 수 있다. 동일한 서브 픽처의 모든 타일 그룹이 SPPS와 PPS 간의 병합으로 인한 동일한 파라미터 세트를 참조할 수 있도록 제약이 적용될 수 있다.
서브 픽처 ID를 시그널링하기 위해 사용되는 비트들의 수는 NAL 유닛 헤더에서 시그널링될 수 있다. NAL 유닛 헤더에 존재할 때 이러한 정보는 NAL 유닛의 페이로드(예: NAL 유닛 헤더 직후의 처음 몇 비트)의 시작 부분에서 서브 픽처 ID 값을 파싱하는 서브 픽처 추출 프로세스를 지원할 수 있다. 이러한 시그널링을 위해, NAL 유닛 헤더의 예약된 비트 중 일부(예: 7개의 예약된 비트)는 NAL 유닛 헤더의 길이를 증가시키는 것을 피하기 위해 사용될 수 있다. 이러한 시그널링을 위한 비트의 수는 sub-picture-ID-bit-len의 값을 커버할 수 있다. 예를 들어, VVCs NAL 유닛 헤더의 7개의 예비 비트 중 4개의 비트가 이 목적을 위해 사용될 수 있다.
서브 픽처를 디코딩할 때, 각각의 코딩 트리 블록(예: xCtb 및 yCtb)의 위치는 서브 픽처 내의 루마 샘플 위치 대신에 픽처 내의 실제 루마 샘플 위치로 조정될 수 있다. 이러한 방식으로, 코딩 트리 블록이 서브 픽처 대신에 픽처를 참조하여 디코딩되기 때문에 각각의 참조 픽처로부터 같은 위치에 있는 서브 픽처의 추출이 회피될 수 있다. 코딩 트리 블록의 위치를 조정하기 위해, 변수 SubpictureXOffset 및 SubpictureYOffset은 서브 픽처 위치(subpic_x_offset 및 subpic_y_offset)에 기초하여 도출될 수 있다. 변수의 값은 서브 픽처의 각 코딩 트리 블록의 루마 샘플 위치 x 및 y 좌표의 값에 각각 추가될 수 있다.
서브 픽처 추출 프로세스는 다음과 같이 정의될 수 있다. 프로세스에 대한 입력은 추출할 대상 서브 픽처이다. 이것은 서브 픽처 ID 또는 서브 픽처 위치의 형태일 수 있다. 입력이 서브 픽처의 위치일 때, 연관된 서브 픽처 ID는 SPS의 서브 픽처 정보를 파싱함으로써 해석될 수 있다. VCL이 아닌 NAL 유닛의 경우, 다음이 적용된다. 픽처 크기 및 레벨과 관련된 SPS의 신택스 요소는 서브 픽처의 크기 및 레벨 정보로 업데이트될 수 있다. 다음 비 VCL NAL 유닛은 변경 없이 유지된다: 픽처 레벨 또는 그 이상에 적용 가능한 PPS, 액세스 유닛 구분자(Access Unit Delimiter, AUD), 시퀀스 끝(End of Sequence, EOS), 비트스트림 끝(End of Bitstream, EOB) 및 비 VCL NAL 유닛. 타깃 서브 픽처 ID와 동일하지 않은 서브 픽처 ID를 갖는 나머지 비 VCL NAL 유닛은 제거될 수 있다. 타깃 서브 픽처 ID와 동일하지 않은 서브 픽처 ID를 갖는 VCL NAL 유닛이 또한 제거될 수도 있다.
시퀀스 레벨 서브 픽처 네스팅 SEI 메시지는 서브 픽처 세트에 대한 AU 레벨 또는 서브 픽처 레벨 SEI 메시지의 네스팅을 위해 사용될 수 있다. 여기에는 버퍼링 기간, 픽처 타이밍 및 비 HRD SEI 메시지가 포함될 수 있다. 이 서브 픽처 네스팅 SEI 메시지의 신택스 및 시맨틱스는 다음과 같을 수 있다. OMAF(omnidirectional media format) 환경과 같은 시스템 동작의 경우, 뷰포트(viewport)를 포함하는 한 세트의 서브 픽처 시퀀스가 OMAF 플레이어에 의해 요청되고 디코딩될 수 있다. 따라서, 시퀀스 레벨 SEI 메시지는 직사각형 픽처 영역을 집합적으로 커버하는 서브 픽처 시퀀스 세트의 정보를 전달하기 위해 사용된다. 정보는 시스템에서 사용할 수 있으며 정보는 필요한 디코딩 기능과 서브 픽처 시퀀스 세트의 비트 레이트를 지시한다. 정보는 서브 픽처 시퀀스의 세트만을 포함하는 비트스트림의 레벨을 지시한다. 이 정보는 또한 한 세트의 서브 픽처 시퀀스만을 포함하는 비트스트림의 비트 레이트를 지시한다. 선택적으로, 한 세트의 서브 픽처 시퀀스에 대해 서브 비트스트림 추출 프로세스가 지정될 수 있다. 이렇게 하는 것의 이점은 단지 한 세트의 서브 픽처 시퀀스를 포함하는 비트스트림도 준수할 수 있다는 것이다. 단점은 다른 뷰포트 크기 가능성을 고려할 때 이미 가능한 많은 수의 개별 서브 픽처 시퀀스 외에도 이러한 세트가 많이 있을 수 있다는 것이다.
예시적인 실시예에서, 개시된 예시들 중 하나 이상은 다음과 같이 구현될 수 있다. 서브 픽처는 픽처 내의 하나 이상의 타일 그룹의 직사각형 영역으로 정의될 수 있다. 허용되는 이항 분할(binary split) 프로세스는 다음과 같이 정의할 수 있다. 이 프로세스에 대한 입력은 다음과 같니다. 이항 분할 모드 btSplit, 코딩 블록 폭 cbWidth, 코딩 블록 높이 cbHeight, 좌측 상단에 대해 고려된 코딩 블록의 좌측 상단 루마 샘플의 위치(x0, y0) 픽처의 루마 샘플, 다중 유형 트리 깊이 mttDepth, 오프셋 maxMttDepth가 있는 최대 다중 유형 트리 깊이, 최대 이진 트리 크기 maxBtSize 및 파티션 색인 partIdx. 이 프로세스의 출력은 변수 allowBtSplit이다.
Figure pct00001
변수 parallelTtSplit 및 cbSize는 위에 명시된 바와 같이 도출된다. 변수 allowBtSplit은 다음과 같이 도출된다. 다음 조건 중 하나 이상이 참이면 allowBtSplit이 FALSE로 설정된다: cbSize가 MinBtSizeY보다 작거나 같고, cbWidth는 maxBtSize보다 크며, cbHeight는 maxBtSize보다 크며, mttDepth는 maxMttDepth보다 크거나 같다. 그렇지 않고 다음 조건이 모두 참이면, allowBtSplit은 FALSE로 동일하게 설정된다: btSplit은 SPLIT_BT_VER와 동일하고 y0+cbHeight는 SubPicBottomBorderInPic보다 크다. 그렇지 않고 다음 조건이 모두 참이면, allowBtSplit은 FALSE로 설정되고, btSplit은 SPLIT_BT_HOR와 같으며 x0+cbWidth는 SubPicRightBorderInPic보다 크며, y0+cbHeight는 SubPicBottomBorderInPic보다 작거나 같다. 그렇지 않고 다음 조건이 모두 참이면, allowBtSplit은 FALSE로 설정된다: mttDepth는 0보다 크고, partIdx는 1과 같으며, MttSplitMode[ x0 ][ y0 ][ mttDepth - 1 ]은 parallelTtSplit과 같다. 그렇지 않고 다음 조건이 모두 참이면 allowBtSplit이 FALSE로 설정된다: btSplit은 SPLIT_BT_VER와 같고 cbWidth는 MaxTbSizeY보다 작거나 같으며, cbHeight는 MaxTbSizeY보다 크다. 그렇지 않고 다음 조건이 모두 참이면, allowBtSplit은 FALSE와 동일하게 설정된다: btSplit은 SPLIT_BT_HOR와 같고 cbWidth는 MaxTbSizeY보다 크며 cbHeight는 MaxTbSizeY보다 작거나 같다. 그렇지 않으면 allowBtSplit이 TRUE로 설정된다.
허용되는 삼항 분할 프로세스(ternary split process)는 다음과 같이 정의될 수 있다. 이 프로세스에 대한 입력은 다음과 같다: 삼항 분할 모드 ttSplit, 코딩 블록 폭 cbWidth, 코딩 블록 높이 cbHeight, 픽처의 좌측 상단 루마 샘플에 대해 고려된 코딩 블록의 좌측 상단 루마 샘플 위치( x0, y0 ), 다중 유형 트리 깊이 mttDepth, 오프셋 maxMttDepth가 있는 최대 다중 유형 트리 깊이, 최대 이진 트리 크기 maxTtSize. 이 프로세스의 출력은 변수 allowTtSplit이다.
Figure pct00002
변수 cbSize는 위에 명시된 바와 같이 도출된다. 변수 allowTtSplit은 다음과 같이 도출된다. 다음 조건 중 하나 이상이 참이면, allowTtSplit이 FALSE로 설정된다. cbSize가 2*MinTtSizeY보다 작거나 같고, cbWidth가 Min( MaxTbSizeY, maxTtSize )보다 크고, cbHeight가 Min( MaxTbSizeY, maxTtSize )보다 크고, mttDepth는 maxMttDepth보다 크거나 같고, x0 + cbWidth는 SubPicRightBorderInPic보다 크며, y0 + cbHeight는 SubPicBottomBorderInPic보다 크다. 그렇지 않으면 allowTtSplit이 TRUE로 설정된다.
시퀀스 파라미터 세트 RBSP 신택스 및 시맨틱스는 다음과 같다.
Figure pct00003
pic_width_in_luma_samples는 루마 샘플 단위로 디코딩된 각 픽처의 폭을 지정한다. pic_width_in_luma_samples는 0이 아니어야 하고 MinCbSizeY의 정수 배수여야 한다. pic_height_in_luma_samples는 루마 샘플 단위로 디코딩된 각 픽처의 높이를 지정한다. pic_height_in_luma_samples는 0이 아니어야 하고 MinCbSizeY의 정수 배수여야 한다. num_subpicture_minus1 plus 1은 코딩된 비디오 시퀀스에 속하는 코딩된 픽처로 분할된 서브 픽처의 수를 지정한다. subpic_id_len_minus1 plus 1은 SPS에서 신택스 요소 subpic_id[ i ], SPS를 참조하는 SPPS에서 spps_subpic_id, SPS를 참조하는 타일 그룹 헤더에서 tile_group_subpic_id를 나타내는 데 사용된 비트 수를 지정한다. subpic_id_len_minus1의 값은 Ceil( Log2( num_subpic_minus1 + 2 )에서 8까지의 범위에 있어야 한다. subpic_id[ i ]은 SPS를 참조하는 픽처의 i번째 서브 픽처의 서브 픽처 ID를 지정한다. subpic_id[ i ]의 길이는 subpic_id_len_minus1 + 1 비트이다. subpic_id[i]의 값은 0보다 커야 한다. subpic_level_idc[ i ]는 i 번째 서브 픽처의 추출 결과 CVS가 준수하는 레벨을 나타낸다. 지정된 자원 요구 사항 비트스트림은 지정된 값 이외의 subpic_level_idc[ i ] 값을 포함하지 않아야 한다. subpic_level_idc[ i ]의 다른 값은 예약되어 있다. 존재하지 않는 경우, subpic_level_idc[ i ]의 값은 general_level_idc의 값과 동일한 것으로 추론된다.
subpic_x_offset[ i ]은 픽처의 좌측 상단 코너에 대한 i번째 서브 픽처의 좌측 상단 코너의 수평 오프셋을 지정한다. 존재하지 않는 경우, subpic_x_offset[ i ]의 값은 0과 같은 것으로 추론된다. sub-picture x offset의 값은 다음과 같이 도출된다: SubpictureXOffset[ i ] = subpic_x_offset[ i ]. subpic_y_offset[ i ]은 픽처의 좌측 상단 코너에 대한 i번째 서브 픽처의 좌측 상단 코너의 수직 오프셋을 지정한다. 존재하지 않는 경우, subpic_y_offset[ i ]의 값은 0과 같은 것으로 추론된다. 서브 픽처 y 오프셋의 값은 다음과 같이 도출된다: SubpictureYOffset[ i ] = subpic_y_offset[ i ]. subpic_width_in_luma_samples[ i ]는 이 SPS가 활성 SPS인 i번째 디코딩된 서브 픽처의 폭를 지정한다. SubpictureXOffset[ i ] 및 subpic_width_in_luma_samples[ i ]의 합이 pic_width_in_luma_samples보다 작을 때, subpic_width_in_luma_samples[ i ]의 값은 CtbSizeY의 정수배가 되어야 한다. 존재하지 않는 경우, subpic_width_in_luma_samples[ i ]의 값은 pic_width_in_luma_samples의 값과 동일한 것으로 추론된다. subpic_height_in_luma_samples[ i ]는 이 SPS가 활성 SPS인 i번째 디코딩된 서브 픽처의 높이를 지정한다. SubpictureYOffset[ i ] 및 subpic_height_in_luma_samples[ i ]의 합이 pic_height_in_luma_samples보다 작을 때, subpic_height_in_luma_samples[ i ]의 값은 CtbSizeY의 정수배가 되어야 한다. 존재하지 않는 경우, subpic_height_in_luma_samples[ i ]의 값은 pic_height_in_luma_samples의 값과 동일한 것으로 추론된다.
서브 픽처의 합집합이 겹침 및 틈 없이 픽처의 전체 영역을 커버해야 하는 것이 비트스트림 적합성의 요건이다. 1과 동일한 subpic_motion_constrained_flag[ i ]는 i번째 서브 픽처가 시간적 움직임이 제약된 서브 픽처임을 지정한다. 0과 동일한 subpic_motion_constrained_flag[ i ]는 i번째 서브 픽처가 시간적 움직임이 제약된 서브 픽처일 수도 있고 아닐 수도 있음을 지정한다. 존재하지 않는 경우, subpic_motion_constrained_flag의 값은 0과 같은 것으로 추론된다.
변수 SubpicWidthInCtbsY, SubpicHeightInCtbsY, SubpicSizeInCtbsY, SubpicWidthInMinCbsY, SubpicHeightInMinCbsY, SubpicSizeInMinCbsY, SubpicSizeInSamplesY, SubpicWidthInSamplesC, 및 SubpicHeightInSamplesC는 다음과 같이 도출된다:
Figure pct00004
서브 픽처 파라미터 세트 RBSP 신택스 및 시맨틱스는 다음과 같다.
Figure pct00005
spps_subpic_id는 SPPS가 속하는 서브 픽처를 식별하게 해준다. spps_subpic_id의 길이는 subpic_id_len_minus1 + 1비트이다. spps_subpic_parameter_set_id는 다른 신택스 요소에서 참조할 SPPS를 식별하게 해준다. spps_subpic_parameter_set_id의 값은 0에서 63까지의 범위에 있어야 한다. spps_seq_parameter_set_id는 활성 SPS의 sps_seq_parameter_set_id 값을 지정한다. spps_seq_parameter_set_id의 값은 0에서 15까지의 범위에 있어야 한다. 1과 동일한 single_tile_in_subpic_flag는 SPPS를 참조하는 각 서브 픽처에 하나의 타일만 있음을 지정한다. 0과 동일한 single_tile_in_subpic_flag는 SPPS를 참조하는 각 서브 픽처에 하나 이상의 타일이 있음을 지정한다. num_tile_columns_minus1 plus 1은 서브 픽처를 분할하는 타일 열의 수를 지정한다. num_tile_columns_minus1은 0에서 PicWidthInCtbsY[ spps_subpic_id ] - 1까지의 범위에 있어야 한다. 존재하지 않는 경우 num_tile_columns_minus1의 값은 0과 같은 것으로 추론된다. num_tile_rows_minus1 더하기 1은 서브 픽처를 분할하는 타일 행의 수를 지정한다. num_tile_rows_minus1은 0에서 PicHeightInCtbsY[ spps_subpic_id ] - 1까지의 범위에 있어야 한다. 존재하지 않는 경우 num_tile_rows_minus1의 값은 0과 같은 것으로 추론된다. NumTilesInPic 변수는 ( num_tile_columns_minus1 + 1 ) * ( num_tile_rows_minus1 + 1 )과 동일하게 설정된다.
single_tile_in_subpic_flag가 0과 같을 때, NumTilesInPic은 0보다 클 것이다. 1과 동일한 uniform_tile_spacing_flag는 타일 열 경계 및 마찬가지로 타일 행 경계가 서브 픽처에 걸쳐 균일하게 분포된다는 것을 지정한다. 0과 동일한 uniform_tile_spacing_flag는 타일 열 경계 및 마찬가지로 타일 행 경계가 서브 픽처에 걸쳐 균일하게 분포되지 않지만 신택스 요소 tile_column_width_minus1[ i ] 및 tile_row_height_minus1[ i ]을 사용하여 명시적으로 시그널링됨을 지정한다. 존재하지 않는 경우, uniform_tile_spacing_flag의 값은 1과 동일한 것으로 추론된다. tile_column_width_minus1[ i ] plus 1은 CTB 단위로 i번째 타일 열의 폭를 지정한다. tile_row_height_minus1[ i ] plus 1은 CTB 단위로 i번째 타일 행의 높이를 지정한다.
다음 변수들은 CTB 래스터 및 타일 스캐닝 변환 프로세스를 호출함으로써 도출된다: 0에서 num_tile_columns_minus1까지(포함) 범위의 i에 대한 목록 ColWidth[ i ], i번째 타일 열의 폭를 CTB 단위로 지정; 0에서 num_tile_rows_minus1까지(포함) 범위의 j에 대한 목록 RowHeight[ j ], CTB 단위로 j번째 타일 행의 높이를 지정; 0에서 num_tile_columns_minus1 + 1까지(포함) 범위의 i에 대한 목록 ColBd[ i ], CTB 단위로 i번째 타일 열 경계의 위치를 지정; 0에서 num_tile_rows_minus1 + 1까지(포함) 범위의 i에 대한 목록 the list RowHeight[ j ], CTB 단위로 j번째 타일 행 경계의 위치를 지정; 0에서 num_tile_rows_minus1 + 1까지(포함) 범위의 j에 대한 목록 RowBd[ j ], CTB 단위로 j 번째 타일 행 경계의 위치를 지정; 0에서 PicSizeInCtbsY - 1까지(포함) 범위의 ctbAddrR에 대한 목록 CtbAddrRsToTs[ ctbAddrRs ], 픽처의 CTB 래스터 스캔에 있는 CTB 주소에서 타일 스캔에 있는 CTB 주소로의 변환을 지정;
0에서 PicSizeInCtbsY - 1까지(포함) 범위의 ctbAddrTs에 대한 목록 CtbAddrTsToRs[ ctbAddrTs ], 타일 스캔의 CTB 주소에서 픽처의 CTB 래스터 스캔의 CTB 주소로의 변환을 지정; 0에서 PicSizeInCtbsY - 1까지(포함) 범위의 ctbAddrTs에 대한 목록 TileId[ ctbAddrTs ], 타일 스캔의 CTB 주소에서 타일 ID로의 변환을 지정; 0에서 PicSizeInCtbsY - 1(포함)까지 범위의 tileIdx에 대한 목록 NumCtusInTile[ tileIdx ], 타일 색인에서 타일의 CTU 번호로의 변환을 지정; 0에서 NumTilesInPic - 1까지(포함) 범위의 tileIdx에 대한 목록 FirstCtbAddrTs[ tileIdx ], 타일 ID에서 타일의 첫 번째 CTB의 타일 스캔에서 CTB 주소로의 변환을 지정; 0에서 num_tile_columns_minus1까지(포함) 범위의 i에 대한 ColumnWidthInLumaSamples[ i ] 목록, 루마 샘플 단위로 i번째 타일 열의 폭을 지정); 0에서 num_tile_rows_minus1(포함)까지 범위의 j에 대한 목록 RowHeightInLumaSamples[ j ], j번째 타일 행의 높이를 루마 샘플 단위로 지정한다. 0에서 num_tile_columns_minus1까지 범위의 i에 대한 ColumnWidthInLumaSamples[ i ] 및 0에서 num_tile_rows_minus1까지 범위의 j에 대한 RowHeightInLumaSamples[ j ] 값은 모두 0보다 커야 한다.
1과 동일한 loop_filter_across_tiles_enabled_flag는 인-루프 필터링 동작이 SPPS를 참조하는 서브 픽처의 타일 경계에 걸쳐 수행될 수 있음을 지정한다. 0과 동일한 loop_filter_across_tiles_enabled_flag는 SPPS를 참조하는 서브 픽처에서 인루프 필터링 작업이 타일 경계를 넘어 수행되지 않음을 지정한다. 인루프 필터링 작업에는 디블로킹 필터, 샘플 적응형 오프셋 필터 및 적응형 루프 필터 작업이 포함된다. 존재하지 않는 경우, loop_filter_across_tiles_enabled_flag의 값은 1과 같은 것으로 추론된다. 1과 동일한 loop_filter_across_subpic_enabled_flag는 인루프 필터링 동작이 SPPS를 참조하는 서브 픽처의 서브 픽처 경계를 가로질러 수행될 수 있음을 지정한다. 0과 동일한 loop_filter_across_subpic_enabled_flag는 인루프 필터링 동작이 SPPS를 참조하는 서브 픽처의 서브 픽처 경계를 가로질러 수행되지 않음을 지정한다. 인루프 필터링 작업에는 디블로킹 필터, 샘플 적응형 오프셋 필터 및 적응형 루프 필터 작업이 포함된다. 존재하지 않는 경우, loop_filter_across_subpic_enabled_flag의 값은 loop_filter_across_tiles_enabled_flag의 값과 동일한 것으로 추론된다.
일반적인 타일 그룹 헤더 신택스 및 시맨틱스는 다음과 같다.
Figure pct00006
타일 그룹 헤더 신택스 요소 tile_group_pic_parameter_set_id 및 tile_group_pic_order_cnt_lsb의 값은 코딩된 픽처의 모든 타일 그룹 헤더에서 동일해야 한다. 타일 그룹 헤더 신택스 요소 tile_group_subpic_id의 값은 코딩된 서브 픽처의 모든 타일 그룹 헤더에서 동일해야 한다. tile_group_subpic_id는 타일 그룹이 속한 서브 픽처를 식별하게 한다. tile_group_subpic_id의 길이는 subpic_id_len_minus1 + 1비트이다. tile_group_subpic_parameter_set_id는 사용 중인 SPPS에 대한 spps_subpic_parameter_set_id의 값을 지정한다. tile_group_spps_parameter_set_id의 값은 0에서 63까지의 범위에 있어야 한다.
다음 변수가 도출되고 활성 SPS로부터 도출된 각각의 변수를 무시한다:
Figure pct00007
코딩 트리 유닛 신택스는 다음과 같다.
Figure pct00008
Figure pct00009
코딩 쿼드트리 신택스 및 시맨틱스는 다음과 같습니다.
Figure pct00010
qt_split_cu_flag[ x0 ][ y0 ]은 코딩 유닛이 절반의 수평 및 수직 크기를 갖는 코딩 유닛으로 분할되는지 여부를 지정한다. 배열 색인 x0, y0은 픽처의 좌측 상단 루마 샘플에 대해 고려된 코딩 블록의 좌측 상단 루마 샘플의 위치( x0, y0 )를 지정한다. qt_split_cu_flag[ x0 ][ y0 ]가 없으면 다음이 적용된다: 다음 조건 중 하나 이상이 참이면 qt_split_cu_flag[ x0 ][ y0 ]의 값은 1과 같은 것으로 추론된다. x0 + ( 1 << log2CbSize )는 SubPicRightBorderInPic보다 크고 ( 1 << log2CbSize )는 treeType이 DUAL_TREE_CHROMA와 같거나 그렇지 않으면 MaxBtSizeY보다 크면 MaxBtSizeC보다 크다. y0 + ( 1 << log2CbSize )는 SubPicBottomBorderInPic보다 크고 ( 1 << log2CbSize )는 treeType이 DUAL_TREE_CHROMA와 같거나 그렇지 않으면 MaxBtSizeY보다 큰 경우 MaxBtSizeC보다 큽니다.
그렇지 않으면, 다음 조건 모두가 참이면, qt_split_cu_flag[ x0 ][ y0 ]의 값은 1과 동일한 것으로 추론된다: x0 + ( 1 << log2CbSize )는 SubPicRightBorderInPic, y0 + ( 1 < < log2CbSize )는 SubPicBottomBorderInPic보다 크고 ( 1 << log2CbSize )는 treeType이 DUAL_TREE_CHROMA와 같거나 그렇지 않으면 MinQtSizeY보다 크면 MinQtSizeC보다 크다. 그렇지 않으면, qt_split_cu_flag[ x0 ][ y0 ]의 값은 0과 같은 것으로 추론된다.
다중 유형 트리 신택스 및 시맨틱스는 다음과 같습니다.
Figure pct00011
Figure pct00012
Figure pct00013
0과 동일한 mtt_split_cu_flag는 코딩 유닛이 분할되지 않음을 지정한다. 1과 동일한 mtt_split_cu_flag는 코딩 유닛이 신택스 요소 mtt_split_cu_binary_flag에 의해 지시되는 바와 같이 이항 분할을 사용하여 2개의 코딩 유닛으로 분할되거나 삼항 분할(ternary spli)을 사용하여 3개의 코딩 유닛으로 분할되는 것을 지정한다. 이항 또는 삼항 분할은 신택스 요소 mtt_split_cu_vertical_flag에 지시된 대로 수직 또는 수평일 수 있다. mtt_split_cu_flag가 존재하지 않는 경우, mtt_split_cu_flag의 값은 다음과 같이 추론된다. 다음 조건 중 하나 이상이 참이면 mtt_split_cu_flag의 값은 1과 같도록 추론된다: x0 + cbWidth는 SubPicRightBorderInPic보다 크고 y0 + cbHeight는 SubPicBottomBorderInPic보다 크다. 그렇지 않으면 mtt_split_cu_flag의 값은 0과 같은 것으로 추론된다.
시간 루마 움직임 벡터 예측을 위한 도출 프로세스는 다음과 같니다. 이 프로세스의 출력은 1/16 분수 샘플 정확도의 움직임 벡터 예측 mvLXCol 및 가용성 플래그 availableFlagLXCol이다. currCb 변수는 루마 위치( xCb, yCb )에서 현재 루마 코딩 블록을 지정한다. 변수 mvLXCol 및 availableFlagLXCol은 다음과 같이 도출된다. tile_group_temporal_mvp_enabled_flag가 0과 같거나 참조 픽처가 현재 픽처인 이면, mvLXCol의 두 구성 요소는 모두 0으로 설정되고 availableFlagLXCol은 0으로 설정된다. 그렇지 않으면(tile_group_temporal_mvp_enabled_flag가 1과 같고 참조 픽처가 현재 픽처가 아님), 다음의 순서화된 단계가 적용된다. 우측 하단 병치된 움직임 벡터는 다음과 같이 도출된다.
xColBr = xCb + cbWidth (8 355)
yColBr = yCb + cbHeight (8 356)
yCb >> CtbLog2SizeY가 yColBr >> CtbLog2SizeY와 같으면, yColBr은 SubPicBottomBorderInPic보다 작고 xColBr은 SubPicRightBorderInPic보다 작으면, 다음이 적용된다. colCb 변수는 ColPic에 의해 지정된 병치된 픽처 내부에서 ( ( xColBr >> 3 ) << 3, ( yColBr >> 3 ) << 3 )에 의해 주어진 수정된 위치를 커버하는 루마 코딩 블록을 지정한다. 루마 위치( xColCb, yColCb )는 ColPic에 의해 지정된 병치된 픽처의 좌측 상단 루마 샘플에 상대적인 colCb에 의해 지정된 병치된 루마 코딩 블록의 좌측 상단 샘플과 동일하게 설정된다. 병치된 움직임 벡터에 대한 도출 프로세스는 currCb, colCb, ( xColCb, yColCb ), refIdxLX 및 sbFlag가 입력으로 0으로 설정되어 호출되고 출력은 mvLXCol 및 availableFlagLXCol에 할당된다. 그렇지 않으면 mvLXCol의 두 구성 요소가 모두 0으로 설정되고 availableFlagLXCol이 0으로 설정된다.
시간적 삼각형 병합 후보에 대한 도출 프로세스는 다음과 같다. 변수 mvLXColC0, mvLXColC1, availableFlagLXColC0 및 availableFlagLXColC1은 다음과 같이 도출된다. tile_group_temporal_mvp_enabled_flag가 0과 같으면 mvLXColC0 및 mvLXColC1의 두 구성 요소는 모두 0으로 설정되고 availableFlagLXColC0 및 availableFlagLXColC1은 0으로 설정된다. 그렇지 않으면(tile_group_temporal_mvp_enabled_flag가 1과 같음) 다음과 같은 순서화된 단계가 적용된다. 우측 하단 병치된 움직임 벡터 mvLXColC0은 다음과 같이 도출된다.
xColBr = xCb + cbWidth (8-392)
yColBr = yCb + cbHeight (8-393)
yCb >> CtbLog2SizeY가 yColBr >> CtbLog2SizeY와 같으면, yColBr은 SubPicBottomBorderInPic보다 작고 xColBr은 SubPicRightBorderInPic보다 작으면 다음이 적용된다. colCb 변수는 ColPic에 의해 지정된 병치된 픽처 내부에서 ( ( xColBr >> 3 ) << 3, ( yColBr >> 3 ) << 3 )에 의해 주어진 수정된 위치를 커버하는 루마 코딩 블록을 지정한다. 루마 위치( xColCb, yColCb )는 ColPic에 의해 지정된 병치된 픽처의 좌측 상단 루마 샘플에 상대적인 colCb에 의해 지정된 병치된 루마 코딩 블록의 좌측 상단 샘플과 동일하게 설정된다. 병치된 움직임 벡터에 대한 도출 프로세스는 currCb, colCb, ( xColCb, yColCb ), refIdxLXC0 및 sbFlag가 입력으로 0으로 설정되어 호출되고 출력은 mvLXColC0 및 availableFlagLXColC0에 할당된다. 그렇지 않으면 mvLXColC0의 두 구성 요소가 모두 0으로 설정되고 availableFlagLXColC0이 0으로 설정된다.
구성된 아핀 제어점 움직임 벡터 병합 후보에 대한 도출 프로세스는 다음과 같다. 네 번째(오른쪽 아래 병치됨) 제어점 움직임 벡터 cpMvLXCorner[ 3 ], 참조 색인 refIdxLXCorner[ 3 ], 예측 목록 활용 플래그 predFlagLXCorner[ 3 ] 및 X가 0이고 1인 가용성 플래그 availableFlagCorner[ 3 ]는 다음과 같이 도출된다. X가 0 또는 1인 시간적 병합 후보 refIdxLXCorner[3]에 대한 참조 색인은 0과 동일하게 설정된다. X가 0 또는 1인 변수 mvLXCol 및 availableFlagLXCol은 다음과 같이 도출된다. tile_group_temporal_mvp_enabled_flag가 0과 같으면, mvLXCol의 두 구성 요소는 모두 0으로 설정되고 availableFlagLXCol은 0으로 설정된다. 그렇지 않으면(tile_group_temporal_mvp_enabled_flag가 1과 같음) 다음이 적용된다:
xColBr = xCb + cbWidth (8-566)
yColBr = yCb + cbHeight (8-567)
yCb >> CtbLog2SizeY가 yColBr >> CtbLog2SizeY와 같으면, yColBr은 SubPicBottomBorderInPic보다 작고 xColBr은 SubPicRightBorderInPic보다 작으면, 다음이 적용된다. colCb 변수는 ColPic에 의해 지정된 병치된 픽처 내부에서 ( ( xColBr >> 3 ) << 3, ( yColBr >> 3 ) << 3 )에 의해 주어진 수정된 위치를 커버하는 루마 코딩 블록을 지정한다. 루마 위치( xColCb, yColCb )는 ColPic에 의해 지정된 병치된 픽처의 좌측 상단 루마 샘플에 상대적인 colCb에 의해 지정된 병치된 루마 코딩 블록의 좌측 상단 샘플과 동일하게 설정된다. 병치된 움직임 벡터에 대한 도출 프로세스는 currCb, colCb, ( xColCb, yColCb ), refIdxLX 및 sbFlag가 입력으로 0으로 설정되어 호출되고 출력은 mvLXCol 및 availableFlagLXCol에 할당된다. 그렇지 않으면 mvLXCol의 두 구성 요소가 모두 0으로 설정되고 availableFlagLXCol이 0으로 설정된다. pic_width_in_luma_samples의 모든 항목을 PicWidthInLumaSamples로 바꾼다. pic_height_in_luma_samples의 모든 항목을 PicHeightInLumaSamples로 바꾼다.
제2 예시적인 실시예에서, 시퀀스 파라미터 세트 RBSP 신택스 및 시맨틱스는 다음과 같다.
Figure pct00014
subpic_id_len_minus1 더하기 1은 SPS에서 신택스 요소 subpic_id[i], SPS를 참조하는 SPPS에서 spps_subpic_id, 및 SPS를 참조하는 타일 그룹 헤더에서 tile_group_subpic_id를 나타내는 데 사용되는 비트 수를 지정한다. subpic_id_len_minus1의 값은 Ceil( Log2( num_subpic_minus1 + 3 )에서 8까지)의 범위에 있어야 하며, 0에서 num_subpic_minus1까지 i에 대한 sub-picture[i] 사이에 겹침이 없어야 하는 것이 비트스트림 적합성의 요건이다. 각각의 서브 픽처는 시간적 움직임이 제약된 서브 픽처일 수 있다.
일반적인 타일 그룹 헤더 의미는 다음과 같다. tile_group_subpic_id는 타일 그룹이 속한 서브 픽처를 식별하게 한다. tile_group_subpic_id의 길이는 subpic_id_len_minus1 + 1비트이다. 1과 동일한 tile_group_subpic_id는 타일 그룹이 어떤 서브 픽처에도 속하지 않는다는 것을 지시한다.
제3 예시적인 실시예에서, NAL 유닛 헤더 신택스 및 시맨틱스는 다음과 같다.
Figure pct00015
nuh_subpicture_id_len은 서브 픽처 ID를 지정하는 신택스 요소를 나타내는 데 사용되는 비트 수를 지정한다. nuh_subpicture_id_len의 값이 0보다 클 때, nuh_reserved_zero_4bits 이후의 첫 번째 nuh_subpicture_id_len-th 비트는 NAL 유닛의 페이로드가 속하는 서브 픽처의 ID를 지정한다. nuh_subpicture_id_len이 0보다 클 때, nuh_subpicture_id_len의 값은 활성 SPS에서 subpic_id_len_minus1의 값과 같아야 한다. VCL이 아닌 NAL 유닛에 대한 nuh_subpicture_id_len의 값은 다음과 같이 제한된다. nal_unit_type이 SPS_NUT 또는 PPS_NUT와 같으면 nuh_subpicture_id_len은 0과 같아야 한다. nuh_reserved_zero_3bits는 '000'과 같아야 한다. 디코더는 nuh_reserved_zero_3bits 값이 '000'과 같지 않은 NAL 유닛을 무시(예: 비트스트림에서 제거하고 폐기)해야 한다.
제4 예시적인 실시예에서, 서브 픽처 네스팅 신택스는 다음과 같다.
Figure pct00016
1과 동일한 all_sub_pictures_flag는 네스팅된 SEI 메시지가 모든 서브 픽처에 적용됨을 지정한다. 1과 동일한 all_sub_pictures_flag는 네스팅된 SEI 메시지가 적용되는 서브 픽처가 후속 신택스 요소에 의해 명시적으로 시그널링됨을 지정한다. nesting_num_sub_pictures_minus1 더하기 1은 네스팅된 SEI 메시지가 적용되는 서브 픽처의 수를 지정한다. nesting_sub_picture_id[ i ]는 네스팅된 SEI 메시지가 적용되는 i번째 서브 픽처의 서브 픽처 ID를 지시한다. nesting_sub_picture_id[ i ] 신택스 요소는 Ceil( Log2( nesting_num_sub_pictures_minus1 + 1 ) ) 비트로 표현된다. sub_picture_nesting_zero_bit는 0과 같아야 한다.
도 9는 예시적인 비디오 코딩 기기(900)의 개략도이다. 비디오 코딩 기기(900)는 여기에 설명된 바와 같이 개시된 예/실시예를 구현하는 데 적합하다. 비디오 코딩 기기(900)는 네트워크를 통해 데이터 업스트림 및/또는 다운스트림을 통신하기 위한 송신기 및/또는 수신기를 포함하는 다운스트림 포트(920), 업스트림 포트(950), 및/또는 송수신기 유닛(Tx/Rx)(910)을 포함한다. 비디오 코딩 기기(900)는 또한 데이터를 처리하기 위한 논리 유닛 및/또는 중앙 처리 유닛(central processing unit, CPU)을 포함하는 프로세서(930), 및 데이터를 저장하기 위한 메모리(932)를 포함한다. 비디오 코딩 기기(900)는 또한 전기, 광, 또는 무선 통신 네트워크를 통한 데이터의 통신을 위해 업스트림 포트(950) 및/또는 다운스트림 포트(920)에 결합된 전기, 광-전기(optical-to-electrical, OE) 구성요소, 전기-광(electrical-to-optical,EO) 구성요소, 및/또는 무선 통신 구성요소를 포함할 수 있다. 비디오 코딩 기기(900)는 또한 사용자와 데이터를 통신하기 위한 입력 및/또는 출력(I/O) 기기(960)를 포함할 수 있다. I/O 기기(960)는 비디오 데이터를 표시하기 위한 디스플레이, 오디오 데이터를 출력하기 위한 스피커 등과 같은 출력 기기를 포함할 수 있다. I/O 기기(960)는 또한 키보드, 마우스, 트랙볼 등과 같은 입력 기기, 및/또는 그러한 출력 기기와 상호작용하기 위한 대응하는 인터페이스를 포함할 수 있다.
프로세서(930)는 하드웨어 및 소프트웨어에 의해 구현된다. 프로세서(930)는 하나 이상의 CPU 칩, 코어(예: 멀티코어 프로세서), FPGA(Field-Programmable Gate Array), ASIC(Application Specific Integrated Circuit), 및 DSP(Digital Signal Processor)로서 구현될 수 있다. 프로세서(930)는 다운스트림 포트(920), Tx/Rx(910), 업스트림 포트(950), 및 메모리(932)와 통신한다. 프로세서(930)는 코딩 모듈(914)을 포함한다. 코딩 모듈(914)은 비트스트림(500), 픽처(600), 및/또는 픽처(800)를 채용할 수 있는, 방법(100), 방법(1000), 및 방법(1100) 또는 메커니즘(700)과 같은, 위에 설명된, 개시된 실시예를 구현한다. 코딩 모듈(914)은 또한 여기에 설명된 임의의 다른 방법/메커니즘을 구현할 수 있다. 또한, 코딩 모듈(914)은 코덱 시스템(200), 인코더(300) 및/또는 디코더(400)를 구현할 수 있다. 예를 들어, 코딩 모듈(914)은 SPS에서 서브 픽처 위치 및 크기를 시그널링 및/또는 획득하기 위해 사용될 수 있다. 다른 예에서, 코딩 모듈(914)은, 그러한 서브 픽처가 각각 픽처의 우측 경계 또는 픽처의 하단 경계에 위치하지 않는 한, 서브 픽처 폭 및 서브 픽처 높이를 CTU 크기의 배수로 제한할 수 있다. 다른 예에서, 코딩 모듈(914)은 틈 또는 겹침 없이 픽처를 커버하도록 서브 픽처를 제한할 수 있다. 다른 예에서, 코딩 모듈(914)은 일부 서브 픽처가 시간적 움직임이 제약된 서브 픽처이고 다른 서브 픽처가 그렇지 않음을 지시하는 데이터를 시그널링 및/또는 획득하는 데 사용될 수 있다. 다른 예에서, 코딩 모듈(914)은 SPS에서 서브 픽처 ID들의 완전한 세트를 시그널링하고 대응하는 슬라이스들을 포함하는 서브 픽처를 지시하기 위해 각각의 슬라이스 헤더에 서브 픽처 ID를 포함할 수도 있다. 다른 예에서, 코딩 모듈(914)은 각각의 서브 픽처에 대한 레벨을 시그널링할 수 있다. 이와 같이, 코딩 모듈(914)은 비디오 코딩 기기(900)가 비디오 데이터를 분할 및 코딩할 때 추가 기능을 제공하고, 처리 오버헤드를 감소시키기 위해 특정 처리를 피하고, 및/또는 코딩 효율을 증가하게 한다. 따라서, 코딩 모듈(914)은 비디오 코딩 기기(900)의 기능을 개선할 뿐만 아니라 비디오 코딩 기술에 특정한 문제를 해결한다. 또한, 코딩 모듈(914)은 비디오 코딩 기기(900)를 상이한 상태로 변환시킨다. 대안으로, 코딩 모듈(914)은 메모리(932)에 저장된 명령어로서 구현될 수 있고 프로세서(930)에 의해 실행될 수 있다(예: 비일시적 매체에 저장된 컴퓨터 프로그램 제품으로서).
메모리(932)는 디스크, 테이프 드라이브, 솔리드 스테이트 드라이브, 읽기 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 플래시 메모리, TCAM(Ternary Content-Addressable Memory ), 정적 랜덤 액세스 메모리(SRAM) 등과 같은 하나 이상의 메모리 유형을 포함할 수 있다. 메모리(932)는 오버플로 데이터 저장 장치로 사용되어, 이러한 프로그램이 실행을 위해 선택될 때 프로그램을 저장하고, 프로그램 실행 중에 읽은 명령어와 데이터를 저장한다.
도 10은 서브 픽처(522, 523, 622, 722 및/또는 822)와 같은, 서브 픽처의 추출을 지원하기 위해 픽처의 비트스트림(500)과 같은, 비트스트림에서 서브 픽처 레이아웃을 인코딩하는 예시적인 방법(1000)의 흐름도이다. 방법(1000)은 방법(100)을 수행할 때 코덱 시스템(200), 인코더(300), 및/또는 비디오 코딩 기기(900)와 같은 인코더에 의해 채용될 수 있다.
방법(1000)은 인코더가 복수의 픽처를 포함하는 비디오 시퀀스를 수신하고 예를 들어 사용자 입력에 기초하여 그 비디오 시퀀스를 비트스트림으로 인코딩하기로 결정할 때 시작할 수 있다. 비디오 시퀀스는 인코딩 전에 추가 분할을 위해 픽처/이미지/프레임으로 분할된다. 단계 1001에서, 픽처는 이하에서 서브 픽처로 지칭되는 현재 서브 픽처를 포함하는 복수의 서브 픽처로 분할된다. 서브 픽처는 ㄷ단계 1003에서 비트스트림으로 인코딩된다.
단계 1005에서, 서브 픽처 크기 및 서브 픽처의 서브 픽처 위치가 비트스트림에서 SPS로 인코딩된다. 서브 픽처 위치는 서브 픽처의 좌측 상단 샘플과 픽처의 좌측 상단 샘플 사이의 오프셋 거리를 포함한다. 서브 픽처 사이즈는 루마 샘플에서의 서브 픽처 높이 및 루마 샘플에서의 서브 픽처 폭을 포함한다. 플래그는 또한 서브 픽처가 움직임이 제약된 서브 픽처임을 나타내기 위해 SPS에서 인코딩될 수도 있다. 이 경우, 서브 픽처 크기 및 서브 픽처 위치는 움직임이 제약된 서브 픽처의 레이아웃을 나타낸다.
단계 1007에서, 서브 픽처 ID는 픽처로부터 분할된 서브 픽처 각각에 대한 SPS로 인코딩된다. 픽처로부터 분할된 다수의 서브 픽처는 또한 SPS로 인코딩될 수 있다. 단계 1009에서, 비트스트림은 디코더를 향한 통신을 위해 저장된다. 그 다음 비트스트림은 원하는 대로 디코더를 향해 전송될 수 있다. 일부 예에서, 서브 비트스트림은 인코딩된 비트스트림으로부터 추출될 수도 있다. 그러한 경우, 전송된 비트스트림은 서브 비트스트림이다. 다른 예에서, 인코딩된 비트스트림은 디코더에서 서브 비트스트림 추출을 위해 송신될 수도 있다. 또 다른 예들에서, 인코딩된 비트스트림은 서브 비트스트림 추출 없이 디코딩 및 표시될 수 있다. 이들 예 중 어느 것에서, 서브 픽처 크기, 위치, ID, 번호, 및/또는 움직임이 제약된 서브 픽처 플래그는 서브 픽처 레이아웃을 디코더에 효율적으로 시그널링하기 위해 사용될 수도 있다.
도 11은 시그널링된 서브 픽처 레이아웃에 기초한, 서브 픽처(522, 523, 622, 722, 및/또는 822)와 같은, 서브 픽처의 비트스트림(500) 및/또는 서브 비트스트림(501)과 같은, 비트스트림을 디코딩하는 예시적인 방법(1100)의 흐름도이다. 방법(1100)은 방법(100)을 수행할 때 코덱 시스템(200), 디코더(400), 및/또는 비디오 코딩 기기(900)와 같은 디코더에 의해 채용될 수 있다. 예를 들어, 방법(1100)은 방법(1000)의 결과로서 생성된 비트스트림을 디코딩하기 위해 적용될 수 있다.
방법(1100)은 디코더가 서브 픽처를 포함하는 비트스트림을 수신하기 시작할 때 시작할 수 있다. 비트스트림은 완전한 비디오 시퀀스를 포함할 수 있거나 비트스트림은 개별 추출을 위한 감소된 서브 픽처 세트를 포함하는 서브 비트스트림일 수 있다. 단계 1101에서, 비트스트림이 수신된다. 비트스트림은 픽처로부터 분할된 서브 픽처를 포함한다. 비트스트림은 또한 SPS를 포함한다. SPS는 서브 픽처 크기와 서브 픽처 위치를 포함한다. 일부 예에서, 서브 픽처는 시간적 움직임이 제약된 서브 픽처이다. 이러한 경우, 서브 픽처 크기 및 서브 픽처 위치는 움직임이 제약된 서브 픽처의 레이아웃을 지시한다. 일부 예에서, SPS는 픽처로부터 분할된 각각의 서브 픽처에 대한 서브 픽처 ID들을 더 포함할 수도 있다.
단계 1103에서, SPS는 서브 픽처 크기 및 서브 픽처 위치를 획득하기 위해 파싱된다. 서브 픽처 사이즈는 루마 샘플에서의 서브 픽처 높이 및 루마 샘플에서의 서브 픽처 폭을 포함할 수도 있다. 서브 픽처 위치는 서브 픽처의 좌측 상단 샘플과 픽처의 좌측 상단 샘플 사이의 오프셋 거리를 포함할 수 있다. 서브 픽처는 또한 시간적 움직임이 제약된 서브 픽처 플래그 및/또는 서브 픽처 ID와 같은 다른 서브 픽처 관련 데이터를 획득하기 위해 파싱될 수도 있다.
단계 1105에서, 서브 픽처의 크기는 서브 픽처 크기에 기초하여 디스플레이의 크기에 대해 결정될 수 있다. 또한, 서브 픽처의 위치는 서브 픽처 위치에 기초하여 디스플레이에 대해 결정될 수 있다. 디코더는 또한 시간적 움직임이 제약된 서브 픽처 플래그에 기초하여 서브 픽처가 독립적으로 디코딩될 수 있는지 여부를 결정할 수 있다. 따라서 디코더는 SPS로부터의 파싱된 데이터 및/또는 서브 픽처에 포함된 슬라이스와 연관된 슬라이스 헤더로부터의 대응 데이터에 기초하여 서브 픽처의 레이아웃을 결정할 수 있다.
단계 1107에서, 서브 픽처는 서브 픽처 크기, 서브 픽처 위치, 및/또는 SPS, PPS, 슬라이스 헤더(들), SEI 메시지(들)로부터 획득된 기타 정보에 기초하여 디코딩된다. 서브 픽터는 디코딩되어 비디오 시퀀스를 생성한다. 그 다음, 비디오 시퀀스는 단계 1109에서 표시를 위해 포워딩될 수 있다.
도 12는 비트스트림(500) 및/또는 서브 비트스트림(501)과 같은 비트스트림을 통해, 서브 픽처(522, 523, 622, 722, 및/또는 822)의 레이아웃과 같은, 서브 픽처 레이아웃을 시그널링하기 위한 예시적인 시스템의 개략도이다. 시스템(1200)은 코덱 시스템(200), 인코더(300), 디코더(400), 및/또는 비디오 코딩 기기(900)와 같은, 인코더 및 디코더에 의해 구현될 수 있다. 또한, 시스템(1200)은 방법(100), 방법(10000) 및/또는 방법(1100)을 구현할 때 채용될 수 있다.
시스템(1200)은 비디오 인코더(1202)를 포함한다. 비디오 인코더(1202)는 현재 서브 픽처를 포함하는 복수의 서브 픽처로 픽처를 분할하기 위한 분힐 모듈(1201)을 포함한다. 비디오 인코더(1202)는 픽처로부터 분할된 서브 픽처를 비트스트림으로 인코딩하고 서브 픽처 크기 및 서브 픽처 위치를 비트스트림의 SPS로 인코딩하기 위한 인코딩 모듈(1203)을 더 포함한다. 비디오 인코더(1202)는 디코더를 향한 통신을 위한 비트스트림을 저장하기 위한 저장 모듈(1205)을 더 포함한다. 비디오 인코더(1202)는 서브 픽처, 서브 픽처 크기, 및 서브 픽처 위치를 포함하는 비트스트림을 디코더를 향하여 송신하기 위한 송신 모듈(1207)을 더 포함한다. 비디오 인코더(1202)는 방법(1000)의 단계 중 임의의 단계를 수행하도록 추가로 구성될 수 있다.
시스템(1200)은 또한 비디오 디코더(1210)를 포함한다. 비디오 디코더(1210)는 픽처로부터 분할된 서브 픽처를 포함하는 비트스트림과, 서브 픽처의 크기 및 서브 픽처의 위치를 포함하는 SPS를 수신하기 위한 수신 모듈(1211)을 포함한다. 비디오 디코더(1210)는 서브 픽처 크기 및 서브 픽처 위치를 획득하기 위해 SPS를 파싱하기 위한 파싱 모듈(1213)을 더 포함한다. 비디오 디코더(1210)는 비디오 시퀀스를 생성하기 위해 서브 픽처 크기 및 서브 픽처 위치에 기초하여 서브 픽처를 디코딩하기 위한 디코딩 모듈(1215)을 더 포함한다. 비디오 디코더(1110)는 표시를 위해 비디오 시퀀스를 포워딩하기 위한 포워딩 모듈(1217)을 더 포함한다. 비디오 디코더(1210)는 방법(1100)의 단계 중 임의의 단계를 수행하도록 추가로 구성될 수 있다.
제1 구성요소와 제2 구성요소 사이의 라인(line), 트레이스(trace), 또는 다른 매체를 제외하고는 개재하는 구성요소가 없을 때 제1 구성요소는 제2 구성요소에 직접 결합된다. 제1 구성요소와 제2 구성요소 사이에 라인, 트레이스, 또는 다른 매체를 제외한 개재하는 구성요소가 있을 때 제1 구성요소는 제2 구성요소에 간접적으로 결합된다. "결합된다(coupled)"라는 용어와 그 변형에는 직접 결합된 것과 간접적으로 결합된 것이 모두 포함된다. "약(about)"이라는 용어의 사용은 달리 명시되지 않는 한 후속 숫자의 ±10%를 포함하는 범위를 의미한다.
또한, 여기에 설명된 예시적인 방법의 단계는 반드시 설명된 순서대로 수행할 필요가 없다는 것을 이해해야 하며, 이러한 방법의 단계 순서는 단지 예시적인 것으로 이해되어야 한다. 마찬가지로, 이러한 방법에는 추가적인 단계가 포함될 수 있으며, 본 개시의 다양한 실시예에 따른 방법에서 특정 단계는 생략되거나 결합될 수 있다.
몇몇 실시예가 본 개시에서 제공되었지만, 개시된 시스템 및 방법은 본 개시의 사상 또는 범위를 벗어나지 않으면서 많은 다른 구체적인 형태로 구현될 수 있음을 이해할 수 있을 것이다. 본 예는 제한적인 것이 아닌 예시적인 것으로 간주되어야 하며, 그 의도는 여기에 주어진 세부 사항으로 제한되지 않는다. 예를 들어, 다양한 요소 또는 구성요소는 다른 시스템에 결합 또는 통합되거나 특정 기능이 생략되거나 구현되지 않을 수 있다.
또한, 다양한 실시예에서 개별적 또는 분리된 것으로 설명되고 예시된 기술, 시스템, 서브시스템 및 방법은 본 개시의 범위를 벗어나지 않고 다른 시스템, 구성요소, 기술, 또는 방법과 결합되거나 통합될 수 있다. 변경, 대체 및 개조의 다른 예는 당업자에 의해 확인 가능하고 여기에 개시된 사상 및 범위를 벗어나지 않고 이루어질 수 있다.

Claims (20)

  1. 디코더에서 구현되는 방법으로서,
    상기 디코더의 수신기가, 픽처(picture)로부터 분할된 서브 픽처(sub-picture)를 포함하는 비트스트림과 상기 서브 픽처의 서브 픽처 크기 및 상기 서브 픽처의 서브 픽처 위치를 포함하는 시퀀스 파라미터 세트(sequence parameter set, SPS)를 수신하는 단계;
    상기 디코더의 프로세서가 상기 SPS를 파싱하여 상기 서브 픽처 크기 및 상기 서브 픽처 위치를 획득하는 단계;
    상기 프로세서가 상기 서브 픽처 크기 및 상기 서브 픽처 위치에 기초하여 상기 서브 픽처를 디코딩하여 비디오 시퀀스를 생성하는 단계; 및
    상기 프로세서가 표시를 위해 상기 비디오 시퀀스를 포워딩하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 서브 픽처는 시간적 움직임이 제약된(temporal motion constrained) 서브 픽처이고, 상기 서브 픽처 크기 및 상기 서브 픽처 위치는 상기 시간적 움직임이 제약된 서브 픽처의 레이아웃을 지시하는, 방법.
  3. 제1항 내지 제2항 중 어느 한 항에 있어서,
    상기 프로세서가 상기 서브 픽처 크기에 기초하여 디스플레이의 크기에 대한 상기 서브 픽처의 크기를 결정하는 단계를 더 포함하는 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 프로세서가 상기 서브 픽처 위치에 기초하여 상기 디스플레이에 대한 상기 서브 픽처의 위치를 결정하는 단계를 더 포함하는, 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 서브 픽처 위치는 상기 서브 픽처의 좌측 상단(top-left) 샘플과 상기 픽처의 좌측 상단 샘플 사이의 오프셋 거리(offset distance)를 포함하는, 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 서브 픽처 크기는 루마(luma) 샘플에서의 서브 픽처 높이 및 루마 샘플에서의 서브 픽처 폭을 포함하는, 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 SPS는 상기 픽처로부터 분할된 서브 픽처 각각에 대한 서브 픽처 식별자(identifier, ID)를 더 포함하는, 방법.
  8. 인코더에서 구현되는 방법으로서,
    상기 인코더의 프로세서가 픽처로부터 분할된 서브 픽처를 비트스트림으로 인코딩하는 단계;
    상기 프로세서가 상기 서브 픽처의 서브 픽처 크기 및 서브 픽처 위치를 비트스트림 내의 시퀀스 파라미터 세트(SPS)로 인코딩하는 단계; 및
    디코더로의 통신을 위해 상기 인코더의 메모리에 상기 비트스트림을 저장하는 단계
    를 포함하는 방법.
  9. 제8항에 있어서,
    상기 프로세서가, 상기 서브 픽처가 시간적 움직임이 제약된 서브 픽처임을 지시하기 위해 상기 SPS 내의 플래그를 인코딩하는 단계를 더 포함하는 방법.
  10. 제8항 또는 제9항에 있어서,
    상기 서브 픽처 크기 및 상기 서브 픽처 위치는 시간적 움직임이 제약된 서브 픽처의 레이아웃을 지시하는, 방법.
  11. 제8항 내지 제10항 중 어느 한 항에 있어서,
    상기 서브 픽처 위치는 상기 서브 픽처의 좌측 상단 샘플과 상기 픽처의 좌측 상단 샘플 사이의 오프셋 거리를 포함하는, 방법.
  12. 제8항 내지 제11항 중 어느 한 항에 있어서,
    상기 서브 픽처 크기는 루마 샘플에서의 서브 픽처 높이 및 루마 샘플에서의 서브 픽처 폭을 포함하는, 방법.
  13. 제8항 내지 제12항 중 어느 한 항에 있어서,
    상기 프로세서가 상기 픽처로부터 분할된 서브 픽처 각각에 대한 서브 픽처 식별자(ID)를 상기 SPS로 인코딩하는 단계를 더 포함하는 방법.
  14. 제8항 내지 제12항 중 어느 한 항에 있어서,
    상기 프로세서가 상기 픽처로부터 분할된 다수의 서브 픽처를 상기 SPS로 인코딩하는 단계를 더 포함하는 방법.
  15. 비디오 코딩 기기로서,
    프로세서, 메모리, 상기 프로세서에 결합된 수신기, 및 상기 프로세서에 결합된 송신기를 포함하고, 상기 프로세서, 메모리, 수신기, 및 송신기는 제1항 내지 제14항 중 어느 한 항의 방법을 수행하도록 구성되는,
    비디오 코딩 기기.
  16. 비디오 코딩 기기가 사용하는 컴퓨터 프로그램 제품을 포함하는, 컴퓨터로 판독 가능한 비일시적인 매체로서,
    상기 컴퓨터 프로그램 제품은 상기 컴퓨터로 판독 가능한 비일시적인 매체에 저장된 컴퓨터로 실행 가능한 명령어를 포함하여, 프로세서에 의해 실행될 때 상기 비디오 코딩 기기로 하여금 제1항 내지 제14항 중 어느 한 항의 방법을 수행하게 하는,
    컴퓨터로 판독 가능한 비일시적인 매체
  17. 디코더로서,
    픽처로부터 분할된 서브 픽처와, 상기 서브 픽처의 서브 픽처 크기 및 상기 서브 픽처의 서브 픽처 위치를 포함하는 시퀀스 파라미터 세트(SPS)를 포함하는 비트스트림을 수신하기 위한 수신 수단;
    상기 SPS를 파싱하여 상기 서브 픽처 크기 및 상기 서브 픽처 위치를 획득하기 위한 파싱 수단;
    상기 서브 픽처 크기 및 상기 서브 픽처 위치에 기초하여 상기 서브 픽처를 디코딩하여 비디오 시퀀스를 생성하기 위한 디코딩 수단; 및
    표시를 위해 상기 비디오 시퀀스를 포워딩하기 위한 포워딩 수단
    을 포함하는 디코더.
  18. 제17항에 있어서,
    상기 디코더는 추가로, 제1항 내지 제7항 중 어느 한 항의 방법을 수행하도록 구성되는, 디코더.
  19. 인코더로서,
    픽처로부터 분할된 서브 픽처를 비트스트림으로 인코딩하고; 상기 서브 픽처의 서브 픽처 크기 및 서브 픽처 위치를 비트스트림 내의 시퀀스 파라미터 세트(SPS)로 인코딩하기 위한 인코딩 수단; 및
    디코더로의 통신을 위해 상기 비트스트림을 저장하기 위한 저장 수단
    을 포함하는 인코더.
  20. 제19항에 있어서,
    상기 인코더는 추가로, 제8항 내지 제14항 중 어느 한 항의 방법을 수행하도록 구성되는, 인코더.
KR1020217025126A 2019-01-09 2020-01-09 비디오 인코더, 비디오 디코더 및 대응하는 방법 KR20210110710A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962790207P 2019-01-09 2019-01-09
US62/790,207 2019-01-09
PCT/US2020/012862 WO2020146582A1 (en) 2019-01-09 2020-01-09 Sub-picture layout signaling in video coding

Publications (1)

Publication Number Publication Date
KR20210110710A true KR20210110710A (ko) 2021-09-08

Family

ID=71520341

Family Applications (7)

Application Number Title Priority Date Filing Date
KR1020247013391A KR20240056798A (ko) 2019-01-09 2020-01-09 비디오 코딩의 서브 픽처 식별자 시그널링
KR1020217025036A KR102648032B1 (ko) 2019-01-09 2020-01-09 비디오 코딩의 서브 픽처 레벨 지표 시그널링
KR1020217025126A KR20210110710A (ko) 2019-01-09 2020-01-09 비디오 인코더, 비디오 디코더 및 대응하는 방법
KR1020217024921A KR20210109630A (ko) 2019-01-09 2020-01-09 비디오 인코더, 비디오 디코더 및 대응하는 방법
KR1020217024925A KR102661006B1 (ko) 2019-01-09 2020-01-09 비디오 코딩의 서브 픽처 식별자 시그널링
KR1020217024917A KR102650474B1 (ko) 2019-01-09 2020-01-09 비디오 인코더, 비디오 디코더 및 대응하는 방법
KR1020217024938A KR20210107128A (ko) 2019-01-09 2020-01-09 비디오 인코더, 비디오 디코더 및 대응하는 방법

Family Applications Before (2)

Application Number Title Priority Date Filing Date
KR1020247013391A KR20240056798A (ko) 2019-01-09 2020-01-09 비디오 코딩의 서브 픽처 식별자 시그널링
KR1020217025036A KR102648032B1 (ko) 2019-01-09 2020-01-09 비디오 코딩의 서브 픽처 레벨 지표 시그널링

Family Applications After (4)

Application Number Title Priority Date Filing Date
KR1020217024921A KR20210109630A (ko) 2019-01-09 2020-01-09 비디오 인코더, 비디오 디코더 및 대응하는 방법
KR1020217024925A KR102661006B1 (ko) 2019-01-09 2020-01-09 비디오 코딩의 서브 픽처 식별자 시그널링
KR1020217024917A KR102650474B1 (ko) 2019-01-09 2020-01-09 비디오 인코더, 비디오 디코더 및 대응하는 방법
KR1020217024938A KR20210107128A (ko) 2019-01-09 2020-01-09 비디오 인코더, 비디오 디코더 및 대응하는 방법

Country Status (21)

Country Link
US (7) US20210337227A1 (ko)
EP (9) EP4221213A1 (ko)
JP (10) JP7467480B2 (ko)
KR (7) KR20240056798A (ko)
CN (10) CN113330745A (ko)
AU (2) AU2020206246B2 (ko)
BR (5) BR112021013499A2 (ko)
CY (3) CY1126078T1 (ko)
DK (3) DK3909244T3 (ko)
ES (3) ES2952079T3 (ko)
FI (3) FI3909244T3 (ko)
HR (3) HRP20230682T1 (ko)
HU (3) HUE062301T2 (ko)
LT (3) LT3909244T (ko)
MX (6) MX2021008346A (ko)
PL (3) PL3906665T3 (ko)
PT (3) PT3909246T (ko)
RS (3) RS64330B1 (ko)
SG (5) SG11202107545TA (ko)
SI (3) SI3906665T1 (ko)
WO (6) WO2020146665A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023244022A1 (ko) * 2022-06-16 2023-12-21 엘지전자 주식회사 스캔 오더(scan order) 정보에 기반한 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장하는 기록 매체

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020141904A1 (ko) * 2019-01-02 2020-07-09 주식회사 엑스리스 영상 신호 부호화/복호화 방법 및 이를 위한 장치
AU2020206246B2 (en) * 2019-01-09 2024-01-04 Huawei Technologies Co., Ltd. Sub-picture layout signaling in video coding
CN113396586A (zh) * 2019-02-11 2021-09-14 北京字节跳动网络技术有限公司 条件依赖的视频块分割
EP3939318A1 (en) * 2019-03-11 2022-01-19 VID SCALE, Inc. Sub-picture bitstream extraction and reposition
WO2020197236A1 (ko) * 2019-03-24 2020-10-01 엘지전자 주식회사 서브 픽처 핸들링 구조 기반 영상 또는 비디오 코딩
CN113994671B (zh) 2019-06-14 2024-05-10 北京字节跳动网络技术有限公司 基于颜色格式处理视频单元边界和虚拟边界
WO2020256495A1 (ko) * 2019-06-19 2020-12-24 한국전자통신연구원 참조 픽처를 사용하는 영상 부호화/복호화를 위한 방법, 장치 및 기록 매체
CN114270831A (zh) 2019-08-10 2022-04-01 北京字节跳动网络技术有限公司 视频处理中的子图片尺寸定义
WO2021034129A1 (ko) 2019-08-20 2021-02-25 주식회사 엑스리스 영상 신호 부호화/복호화 방법 및 이를 위한 장치
WO2021039578A1 (ja) * 2019-08-29 2021-03-04 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法、および復号方法
JP2021044708A (ja) * 2019-09-11 2021-03-18 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
BR112022005046A2 (pt) 2019-09-18 2022-07-05 Beijing Bytedance Network Tech Co Ltd Método de processamento de dados de vídeo, aparelho para processar dados de vídeo, meio de armazenamento não transitório legível por computador e meio de gravação não transitório legível por computador
CN114430902B (zh) 2019-09-22 2023-11-10 北京字节跳动网络技术有限公司 自适应环路滤波中的填充过程
EP4035372A4 (en) * 2019-09-23 2022-11-23 Telefonaktiebolaget LM Ericsson (publ) SEGMENT POSITION SIGNALING WITH SUB-PICTURE SLICE POSITION DERIVATION
KR20220063177A (ko) 2019-09-27 2022-05-17 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 상이한 비디오 유닛들 간의 적응적 루프 필터링
MX2022003765A (es) 2019-10-02 2022-04-20 Beijing Bytedance Network Tech Co Ltd Sintaxis para la se?alizacion de subimagen en un flujo de bits de video.
CN117956146A (zh) 2019-10-10 2024-04-30 北京字节跳动网络技术有限公司 自适应环路滤波中不可用样点位置处的填充处理
JP7482220B2 (ja) 2019-10-18 2024-05-13 北京字節跳動網絡技術有限公司 サブピクチャのパラメータセットシグナリングにおける構文制約
WO2021083257A1 (en) 2019-10-29 2021-05-06 Beijing Bytedance Network Technology Co., Ltd. Cross-component adaptive loop filter
US11509938B2 (en) * 2019-11-05 2022-11-22 Hfi Innovation Inc. Method and apparatus of signaling subpicture information in video coding
US20210176475A1 (en) * 2019-12-05 2021-06-10 Mediatek Inc. Specifying Layout In Video Pictures
JP7393550B2 (ja) 2019-12-11 2023-12-06 北京字節跳動網絡技術有限公司 クロス成分適応ループフィルタリングのためのサンプルパディング
WO2021117644A1 (en) * 2019-12-11 2021-06-17 Sharp Kabushiki Kaisha Systems and methods for signaling output layer set information in video coding
GB2590632B (en) * 2019-12-20 2023-07-26 Canon Kk Video coding and decoding
KR20220115958A (ko) 2019-12-26 2022-08-19 바이트댄스 아이엔씨 코딩된 비트스트림들에서의 비디오 계층들의 시그널링에 대한 제약들
WO2021134018A1 (en) 2019-12-26 2021-07-01 Bytedance Inc. Signaling of decoded picture buffer parameters in layered video
JP2023508680A (ja) 2019-12-27 2023-03-03 バイトダンス インコーポレイテッド ビデオコーディングにおけるサブピクチャシグナリング
US11778169B2 (en) * 2019-12-27 2023-10-03 Electronics And Telecommunications Research Institute Method, apparatus and storage medium for image encoding/decoding using reference picture
US20210306650A1 (en) * 2020-03-31 2021-09-30 Tencent America LLC Method for signaling subpicture partitioning in coded video stream
JP2023531223A (ja) 2020-06-30 2023-07-21 北京字節跳動網絡技術有限公司 適応ループフィルタリングのための境界位置
EP3972278A1 (en) * 2020-09-17 2022-03-23 Lemon Inc. Subpicture tracks in coded video
US11902552B2 (en) * 2020-09-17 2024-02-13 Lemon Inc. Decoder configuration record in coded video
EP3972273A1 (en) 2020-09-17 2022-03-23 Lemon Inc. Handling of non-vcl nal units in picture unit construction
US20240064323A1 (en) * 2020-12-23 2024-02-22 Lg Electronics Inc. Media file generation/reception method and device for signaling subpicture id information, and computer-readable recording medium in which media file is stored
US11997293B2 (en) 2021-04-15 2024-05-28 Lemon Inc. Sub-picture track level indicator

Family Cites Families (98)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3908280B2 (ja) * 1996-09-27 2007-04-25 松下電器産業株式会社 ビデオデータの択一的な再生が可能なマルチメディアストリーム生成方法とマルチメディア光ディスクオーサリングシステム
GB2382940A (en) * 2001-11-27 2003-06-11 Nokia Corp Encoding objects and background blocks
US20030112868A1 (en) * 2001-12-17 2003-06-19 Koninklijke Philips Electronics N.V. Shape assisted padding for object-based coding
JP2004128761A (ja) * 2002-10-01 2004-04-22 Pioneer Electronic Corp 情報記録媒体、情報記録装置及び方法、情報再生装置及び方法、情報記録再生装置及び方法、記録又は再生制御用のコンピュータプログラム、並びに制御信号を含むデータ構造
KR100539886B1 (ko) 2004-09-10 2005-12-28 삼성전자주식회사 디지털 방송 수신 장치 및 그 방법
EP2067120B1 (en) * 2006-09-26 2016-07-27 AMBX UK Limited Creation and handling of a bitstream comprising video frames and auxiliary data
US20140072058A1 (en) * 2010-03-05 2014-03-13 Thomson Licensing Coding systems
JP2010041494A (ja) * 2008-08-06 2010-02-18 Sumitomo Electric Ind Ltd ネットワーク端末
US9602821B2 (en) * 2008-10-01 2017-03-21 Nvidia Corporation Slice ordering for video encoding
RU2689191C2 (ru) * 2009-01-26 2019-05-24 Томсон Лайсенсинг Упаковка кадров для кодирования видео
KR20110061468A (ko) * 2009-12-01 2011-06-09 (주)휴맥스 고해상도 영상의 부호화/복호화 방법 및 이를 수행하는 장치
WO2011153194A1 (en) * 2010-06-02 2011-12-08 Onmobile Global Limited Method and apparatus for adapting media
US8780973B2 (en) * 2010-08-13 2014-07-15 Texas Instruments Incorporated Limiting the maximum size of an encoded video picture using sub-picture based rate control
US8718389B2 (en) * 2011-04-13 2014-05-06 Huawei Technologies Co., Ltd. Image encoding and decoding methods and related devices
US20130016769A1 (en) * 2011-07-17 2013-01-17 Qualcomm Incorporated Signaling picture size in video coding
US9584819B2 (en) * 2011-10-24 2017-02-28 Qualcomm Incorporated Grouping of tiles for video coding
US20130107973A1 (en) * 2011-10-28 2013-05-02 Qualcomm Incorporated Loop filtering control over tile boundaries
WO2013082291A2 (en) * 2011-11-29 2013-06-06 Huawei Technologies Co., Ltd. Unified partitioning structures and signaling methods for high efficiency video coding
US9819949B2 (en) * 2011-12-16 2017-11-14 Microsoft Technology Licensing, Llc Hardware-accelerated decoding of scalable video bitstreams
US9288506B2 (en) * 2012-01-05 2016-03-15 Qualcomm Incorporated Signaling view synthesis prediction support in 3D video coding
US9749661B2 (en) * 2012-01-18 2017-08-29 Qualcomm Incorporated Sub-streams for wavefront parallel processing in video coding
US10244246B2 (en) * 2012-02-02 2019-03-26 Texas Instruments Incorporated Sub-pictures for pixel rate balancing on multi-core platforms
US9756327B2 (en) * 2012-04-03 2017-09-05 Qualcomm Incorporated Quantization matrix and deblocking filter adjustments for video coding
US9565431B2 (en) * 2012-04-04 2017-02-07 Qualcomm Incorporated Low-delay video buffering in video coding
JP6048495B2 (ja) 2012-04-06 2016-12-21 ソニー株式会社 復号装置、復号方法、プログラム、および記録媒体
JP5888278B2 (ja) * 2012-04-06 2016-03-16 株式会社Jvcケンウッド 動画像復号装置、動画像復号方法、動画像復号プログラム、受信装置、受信方法及び受信プログラム
PL3024243T3 (pl) * 2012-04-16 2018-01-31 Ericsson Telefon Ab L M Flaga stałej struktury płytek, wskazująca na możliwość równoległego przetwarzania dla sekwencji skompresowanego wideo
US20130287093A1 (en) * 2012-04-25 2013-10-31 Nokia Corporation Method and apparatus for video coding
JP6376719B2 (ja) * 2012-06-29 2018-08-22 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
JP2015526006A (ja) * 2012-06-29 2015-09-07 フラウンホッファー−ゲゼルシャフト ツァ フェルダールング デァ アンゲヴァンテン フォアシュンク エー.ファオ ビデオ・データストリーム・コンセプト
US20140003504A1 (en) * 2012-07-02 2014-01-02 Nokia Corporation Apparatus, a Method and a Computer Program for Video Coding and Decoding
US9602827B2 (en) * 2012-07-02 2017-03-21 Qualcomm Incorporated Video parameter set including an offset syntax element
WO2014007596A1 (ko) * 2012-07-06 2014-01-09 삼성전자 주식회사 다계층 비디오 부호화 방법 및 장치, 다계층 비디오 복호화 방법 및 장치
JP2014027371A (ja) * 2012-07-24 2014-02-06 Nippon Hoso Kyokai <Nhk> イントラ予測処理装置及びプログラム
US8989508B2 (en) * 2012-09-28 2015-03-24 Sharp Kabushiki Kaisha Electronic device for signaling a sub-picture buffer parameter
US9491457B2 (en) * 2012-09-28 2016-11-08 Qualcomm Incorporated Signaling of regions of interest and gradual decoding refresh in video coding
CN103907350B (zh) 2012-09-29 2018-02-23 华为技术有限公司 视频编码及解码方法、装置及系统
TR201906908T4 (tr) 2013-01-04 2019-05-21 Samsung Electronics Co Ltd Dilim parçaları için entropi kod çözme cihazı.
EP2941891B1 (en) * 2013-01-04 2020-09-16 GE Video Compression, LLC Efficient scalable coding concept
WO2014141142A1 (en) 2013-03-14 2014-09-18 Gamesys Ltd Systems and methods for detection of gaming experience management implementations
GB2512829B (en) * 2013-04-05 2015-05-27 Canon Kk Method and apparatus for encoding or decoding an image with inter layer motion information prediction according to motion information compression scheme
US9749627B2 (en) * 2013-04-08 2017-08-29 Microsoft Technology Licensing, Llc Control data for motion-constrained tile set
US9635371B2 (en) * 2013-05-31 2017-04-25 Qualcomm Incorporated Determining rounding offset using scaling factor in picture resampling
US8923640B1 (en) 2013-06-07 2014-12-30 Apple Inc. Coherence groups: region descriptors for low bit rate encoding
EP3020202B1 (en) 2013-07-10 2019-09-04 Sharp Kabushiki Kaisha Scaling list signaling and parameter sets activation
US10368078B2 (en) * 2013-07-15 2019-07-30 Sony Corporation Extensions of motion-constrained tile sets SEI message for interactivity
WO2015009693A1 (en) * 2013-07-15 2015-01-22 Sony Corporation Layer based hrd buffer management for scalable hevc
GB2516824A (en) 2013-07-23 2015-02-11 Nokia Corp An apparatus, a method and a computer program for video coding and decoding
WO2015052979A1 (ja) * 2013-10-11 2015-04-16 ソニー株式会社 画像処理装置及び画像処理方法
US10187662B2 (en) * 2013-10-13 2019-01-22 Sharp Kabushiki Kaisha Signaling parameters in video parameter set extension and decoder picture buffer operation
KR102281282B1 (ko) * 2013-12-26 2021-07-23 삼성전자주식회사 서브블록 기반 예측을 수행하는 인터 레이어 비디오 복호화 방법 및 그 장치 및 서브블록 기반 예측을 수행하는 인터 레이어 비디오 부호화 방법 및 그 장치
WO2015101716A1 (en) * 2014-01-03 2015-07-09 Nokia Technologies Oy Parameter set coding
CN105900401B (zh) 2014-01-07 2020-03-06 佳能株式会社 用于对层间依赖性进行编码的方法、装置和计算机程序
JP6224516B2 (ja) 2014-05-07 2017-11-01 日本電信電話株式会社 エンコード方法およびエンコードプログラム
US9699480B2 (en) * 2014-06-13 2017-07-04 Sharp Laboratories Of America, Inc. Level limits
RU2019117034A (ru) 2014-06-20 2019-07-29 Сони Корпорейшн Устройство и способ кодирования изображений и устройство и способ декодирования изображений
WO2015194187A1 (en) * 2014-06-20 2015-12-23 Sharp Kabushiki Kaisha Harmonized palette coding
CN107431826B (zh) * 2015-02-16 2020-06-02 寰发股份有限公司 视频数据编解码方法及其装置
GB2535990A (en) * 2015-02-26 2016-09-07 Univ Antwerpen Computer program and method of determining a personalized head-related transfer function and interaural time difference function
EP3128485A1 (en) * 2015-08-05 2017-02-08 Thomson Licensing Method and apparatus for hierarchical motion estimation using dfd-based image segmentation
WO2017088093A1 (en) 2015-11-23 2017-06-01 Mediatek Singapore Pte. Ltd. On the smallest allowed block size in video coding
US20170180758A1 (en) 2015-12-22 2017-06-22 Vallabhajosyula S. Somayazulu Tiled Wireless Display
KR102332006B1 (ko) * 2016-02-09 2021-12-01 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 효율적인 감소성 또는 효율적인 랜덤 액세스를 허용하는 픽처/비디오 데이터 스트림들에 대한 개념
EP3249928A1 (en) 2016-05-23 2017-11-29 Thomson Licensing Method, apparatus and stream of formatting an immersive video for legacy and immersive rendering devices
US10812791B2 (en) * 2016-09-16 2020-10-20 Qualcomm Incorporated Offset vector identification of temporal motion vector predictor
US10250776B2 (en) * 2016-10-04 2019-04-02 International Business Machines Corporation Enhancing graph visualization with supplemental data
CN115022625A (zh) * 2016-10-04 2022-09-06 有限公司B1影像技术研究所 图像数据编码/解码方法和计算机可读记录介质
US11062482B2 (en) * 2016-10-12 2021-07-13 Arris Enterprises Llc Coding schemes for virtual reality (VR) sequences
WO2018083378A1 (en) * 2016-11-01 2018-05-11 Nokia Technologies Oy An apparatus, a method and a computer program for video coding and decoding
GB2594615B (en) * 2017-03-20 2022-11-30 Canon Kk Method and apparatus for encoding and transmitting at least a spatial part of a video sequence
EP3603074A2 (en) * 2017-03-20 2020-02-05 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Advanced video data stream extraction and multi-resolution video transmission
WO2018221368A1 (ja) * 2017-05-31 2018-12-06 シャープ株式会社 動画像復号装置、及び動画像符号化装置
EP3422724B1 (en) * 2017-06-26 2024-05-01 Nokia Technologies Oy An apparatus, a method and a computer program for omnidirectional video
JP6977138B2 (ja) 2017-07-04 2021-12-08 ホアウェイ・テクノロジーズ・カンパニー・リミテッド 境界の強制的な区分けの改善
TWI812414B (zh) * 2017-07-13 2023-08-11 美商松下電器(美國)知識產權公司 編碼裝置、解碼裝置及記錄媒體
KR20190080805A (ko) * 2017-12-28 2019-07-08 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
CN118101936A (zh) 2018-04-19 2024-05-28 Oppo广东移动通信有限公司 用于处理图像的方法及其设备
AU2019268844B2 (en) * 2018-05-15 2022-09-29 FG Innovation Company Limited Image encoding device, encoded stream extraction device, and image decoding device
SG11202010880RA (en) * 2018-05-30 2020-11-27 Huawei Tech Co Ltd Multi-type tree depth extension for picture boundary handling
JP2021153213A (ja) 2018-06-29 2021-09-30 シャープ株式会社 動画像符号化装置および動画像復号装置
KR20200002697A (ko) * 2018-06-29 2020-01-08 한국전자통신연구원 처리율 향상을 위한 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2020008103A1 (en) * 2018-07-02 2020-01-09 Nokia Technologies Oy Method and apparatus for tile-relative addressing in video coding
KR102545728B1 (ko) * 2018-07-16 2023-06-20 엘지전자 주식회사 서브블록 단위의 시간적 움직임 정보 예측을 위한 인터 예측 방법 및 그 장치
WO2020050705A1 (ko) * 2018-09-07 2020-03-12 가온미디어 주식회사 그룹 단위 양자화 파라미터를 처리하는 영상 복호화 및 부호화 방법
WO2020056247A1 (en) * 2018-09-14 2020-03-19 Vid Scale, Inc. Methods and apparatus for flexible grid regions
US11140408B2 (en) * 2018-09-17 2021-10-05 Qualcomm Incorporated Affine motion prediction
WO2020060243A1 (ko) * 2018-09-19 2020-03-26 한국전자통신연구원 경계 처리를 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2020103943A1 (en) * 2018-11-22 2020-05-28 Beijing Bytedance Network Technology Co., Ltd. Using collocated blocks in sub-block temporal motion vector prediction mode
EP3891983A1 (en) * 2018-12-04 2021-10-13 VID SCALE, Inc. Tile group partitioning
US11102513B2 (en) * 2018-12-06 2021-08-24 Tencent America LLC One-level transform split and adaptive sub-block transform
WO2020130925A1 (en) * 2018-12-20 2020-06-25 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for video coding using uniform segment split in pictures
WO2020139060A1 (ko) * 2018-12-28 2020-07-02 김기백 인트라 예측 기반의 영상 부호화/복호화 방법 및 장치
WO2020135482A1 (en) * 2018-12-29 2020-07-02 Beijing Bytedance Network Technology Co., Ltd. Construction method for default motion candidate in sub-block based inter prediction
EP3906677A4 (en) * 2019-01-02 2022-10-19 Nokia Technologies Oy DEVICE, METHOD AND COMPUTER PROGRAM FOR VIDEO ENCODING AND DECODING
AU2020206246B2 (en) * 2019-01-09 2024-01-04 Huawei Technologies Co., Ltd. Sub-picture layout signaling in video coding
GB2584295A (en) * 2019-05-28 2020-12-02 Canon Kk Method and apparatus for encoding and decoding a video bitstream for merging regions of interest
JP7482220B2 (ja) * 2019-10-18 2024-05-13 北京字節跳動網絡技術有限公司 サブピクチャのパラメータセットシグナリングにおける構文制約
CN115104317A (zh) * 2019-12-12 2022-09-23 Lg电子株式会社 图像编码装置和用于控制环路滤波的方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023244022A1 (ko) * 2022-06-16 2023-12-21 엘지전자 주식회사 스캔 오더(scan order) 정보에 기반한 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장하는 기록 매체

Also Published As

Publication number Publication date
ES2951004T3 (es) 2023-10-17
FI3906665T3 (fi) 2023-07-31
KR20210107128A (ko) 2021-08-31
JP2023059882A (ja) 2023-04-27
CN115550648B (zh) 2023-09-01
PT3909246T (pt) 2023-07-05
SI3909244T1 (sl) 2023-08-31
DK3909244T3 (da) 2023-07-24
EP3909244A1 (en) 2021-11-17
BR112021013521A2 (pt) 2021-09-14
JP2022516997A (ja) 2022-03-03
WO2020146665A1 (en) 2020-07-16
CN113302930A (zh) 2021-08-24
JP2023101529A (ja) 2023-07-21
JP2024019510A (ja) 2024-02-09
KR20210109630A (ko) 2021-09-06
US20230319299A1 (en) 2023-10-05
EP3906684A4 (en) 2022-03-16
JP7467480B2 (ja) 2024-04-15
EP3909246A1 (en) 2021-11-17
JP2022518169A (ja) 2022-03-14
HUE062631T2 (hu) 2023-11-28
CN118101934A (zh) 2024-05-28
LT3909246T (lt) 2023-07-10
EP3906687B1 (en) 2024-04-24
ES2951060T3 (es) 2023-10-17
BR112021013436A2 (pt) 2021-10-19
MX2021008347A (es) 2021-10-13
SG11202107548WA (en) 2021-08-30
CY1126131T1 (el) 2023-11-15
WO2020146582A1 (en) 2020-07-16
PL3906665T3 (pl) 2023-09-04
EP3909244B1 (en) 2023-06-07
EP3906687A1 (en) 2021-11-10
DK3906665T3 (da) 2023-07-31
EP3909246A4 (en) 2022-03-23
JP2022516998A (ja) 2022-03-03
RS64353B1 (sr) 2023-08-31
CN113287313A (zh) 2021-08-20
RS64374B1 (sr) 2023-08-31
FI3909246T3 (fi) 2023-07-18
WO2020146623A1 (en) 2020-07-16
HUE062301T2 (hu) 2023-10-28
CN115550647A (zh) 2022-12-30
AU2020206246A1 (en) 2021-08-12
SG11202107546UA (en) 2021-08-30
HRP20230682T1 (hr) 2023-10-13
CN114584770B (zh) 2023-11-03
HRP20230707T1 (hr) 2023-10-13
CN113302933A (zh) 2021-08-24
EP3909245A1 (en) 2021-11-17
WO2020146662A1 (en) 2020-07-16
EP3906687A4 (en) 2022-03-23
DK3909246T3 (da) 2023-07-10
JP2022518168A (ja) 2022-03-14
LT3906665T (lt) 2023-07-25
US20210337199A1 (en) 2021-10-28
EP3909246B1 (en) 2023-06-07
JP2022518170A (ja) 2022-03-14
KR20210107127A (ko) 2021-08-31
CN113330745A (zh) 2021-08-31
KR102650474B1 (ko) 2024-03-21
JP7223146B2 (ja) 2023-02-15
CN113330451A (zh) 2021-08-31
WO2020146616A1 (en) 2020-07-16
MX2021008348A (es) 2021-10-13
HRP20230702T1 (hr) 2023-10-13
CN113508591A (zh) 2021-10-15
PL3909246T3 (pl) 2023-08-21
CY1126094T1 (el) 2023-11-15
SI3906665T1 (sl) 2023-09-29
JP2024071391A (ja) 2024-05-24
PT3909244T (pt) 2023-07-05
WO2020146614A1 (en) 2020-07-16
SG11202107549XA (en) 2021-08-30
PT3906665T (pt) 2023-08-01
KR20210107126A (ko) 2021-08-31
FI3909244T3 (fi) 2023-07-13
EP4221213A1 (en) 2023-08-02
JP7467706B2 (ja) 2024-04-15
US11949893B2 (en) 2024-04-02
US11917173B2 (en) 2024-02-27
CN115550647B (zh) 2024-01-30
US20210337200A1 (en) 2021-10-28
MX2021008339A (es) 2021-09-30
KR20210107129A (ko) 2021-08-31
MX2021008346A (es) 2021-10-13
BR112021013499A2 (pt) 2021-09-14
MX2021008345A (es) 2021-10-13
CN114584770A (zh) 2022-06-03
EP3909245A4 (en) 2022-03-30
JP7404373B2 (ja) 2023-12-25
US20210337198A1 (en) 2021-10-28
EP3909244A4 (en) 2022-03-30
HUE062613T2 (hu) 2023-11-28
RS64330B1 (sr) 2023-08-31
LT3909244T (lt) 2023-07-10
EP3906665B1 (en) 2023-06-07
ES2952079T3 (es) 2023-10-26
MX2021008344A (es) 2021-09-30
EP3906665A4 (en) 2022-03-23
EP4221214A1 (en) 2023-08-02
AU2024202115A1 (en) 2024-05-02
CN115550648A (zh) 2022-12-30
BR112021013531A2 (pt) 2021-09-14
EP3906665A1 (en) 2021-11-10
JP2022516996A (ja) 2022-03-03
KR102661006B1 (ko) 2024-04-24
PL3909244T3 (pl) 2023-08-14
US20210337226A1 (en) 2021-10-28
EP4221215A1 (en) 2023-08-02
SG11202107543SA (en) 2021-08-30
SG11202107545TA (en) 2021-08-30
AU2020206246B2 (en) 2024-01-04
CY1126078T1 (el) 2023-11-15
EP3906684A1 (en) 2021-11-10
SI3909246T1 (sl) 2023-08-31
US20210337227A1 (en) 2021-10-28
BR112021013512A2 (pt) 2021-09-14
KR102648032B1 (ko) 2024-03-14
US20210337228A1 (en) 2021-10-28
KR20240056798A (ko) 2024-04-30

Similar Documents

Publication Publication Date Title
JP7467706B2 (ja) ビデオエンコーダ、ビデオデコーダ、および対応する方法
KR20210104900A (ko) 비디오 인코더, 비디오 디코더 및 상응하는 방법들

Legal Events

Date Code Title Description
A201 Request for examination