KR20210138083A - 플렉시블 픽처 파티셔닝 - Google Patents

플렉시블 픽처 파티셔닝 Download PDF

Info

Publication number
KR20210138083A
KR20210138083A KR1020217033556A KR20217033556A KR20210138083A KR 20210138083 A KR20210138083 A KR 20210138083A KR 1020217033556 A KR1020217033556 A KR 1020217033556A KR 20217033556 A KR20217033556 A KR 20217033556A KR 20210138083 A KR20210138083 A KR 20210138083A
Authority
KR
South Korea
Prior art keywords
ctu
row
column
ctus
coded picture
Prior art date
Application number
KR1020217033556A
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 KR20210138083A publication Critical patent/KR20210138083A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3068Precoding preceding compression, e.g. Burrows-Wheeler transformation
    • 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/167Position within a video image, e.g. region of interest [ROI]
    • 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/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • 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/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/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/423Methods 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 characterised by memory arrangements
    • 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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code

Landscapes

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

Abstract

시스템들 및 방법들은 플렉시블 픽처 파티셔닝을 제공할 수 있으며, 방법은 복수의 코딩 트리 유닛(CTU)들로 파티셔닝된 코딩된 픽처를 수신하는 단계 ― 코딩된 픽처의 복수의 CTU들 중 코딩된 픽처의 경계에 인접한 CTU들의 적어도 하나의 행 또는 열은, 복수의 CTU들 중 코딩된 픽처의 어떠한 경계에도 인접하지 않은 각각의 CTU의 대응하는 크기 디멘션보다 더 작은 크기 디멘션을 가짐 ―; 및 복수의 CTU들에 기초하여, 코딩된 픽처를 디코딩하는 단계를 포함하며, CTU들의 적어도 하나의 행 또는 열은 코딩된 픽처의 최상부 경계 또는 좌측 경계에 각각 인접한, 코딩된 픽처의 첫 번째 CTU 행 또는 첫 번째 CTU 열을 포함한다.

Description

플렉시블 픽처 파티셔닝
본 출원은 2020년 2월 12일자로 출원된 미국 가출원 제62/975,505호, 2020년 11월 16일자로 출원된 미국 출원 제17/098,918호로부터의 우선권을 주장하며, 이 출원들의 개시내용들은 그 전체가 인용에 의해 본 명세서에 포함된다.
본 개시내용의 실시예들은 한 세트의 고급 비디오 코딩 기술들에 관한 것이다. 보다 구체적으로, 본 개시내용의 실시예들은 플렉시블 픽처 파티셔닝(flexible picture partitioning)을 제공할 수 있다.
AV1(AOMedia Video 1)은 인터넷을 통한 비디오 전송들을 위해 설계된 개방형 비디오 코딩 포맷이다. 이것은 반도체 회사들, 주문형 비디오 제공자들, 비디오 콘텐츠 생산자들, 소프트웨어 개발 회사들 및 웹 브라우저 공급 업체들을 포함하는, 2015년에 창립된 컨소시엄인 오픈 미디어 연합(AOMedia: Alliance for Open Media)에 의해 VP9의 후속 제품(successor)으로서 개발되었다. AV1 프로젝트의 컴포넌트들 중 다수는 연합 멤버들에 의한 이전의 연구 노력들로부터 공급되었다. 개별 기여자들은 수년 전에 실험적인 기술 플랫폼들을 시작했다: Xiph/Mozilla의 Daala는 2010년에 코드를 공개했고, Google의 실험용 VP9 진화 프로젝트 VP10이 2014년 9월 12일에 발표되었으며, Cisco의 Thor는 2015년 8월 11일에 공개되었다. VP9의 코드베이스를 기반으로 구축된 AV1은 추가 기술들을 통합하며, 이러한 기술들 중 몇몇은 이러한 실험 포맷들로 개발되었다. AV1 기준 코덱(codec)의 첫 번째 버전인 버전 0.1.0은 2016년 4월 7일에 공개되었다. 연합은 2018년 3월 28일에 기준 소프트웨어 기반 인코더 및 디코더와 함께 AV1 비트스트림 규격의 출시를 발표했다. 2018년 6월 25일에, 규격의 검증된 버전 1.0.0이 출시되었다. 2019년 1월 8일에, "AV1 Bitstream & Decoding Process Specification"이 출시되었으며, 이는 규격의 정오표(Errata) 1을 갖는 검증된 버전 1.0.0이다. AV1 비트스트림 규격은 기준 비디오 코덱을 포함한다. "AV1 Bitstream & Decoding Process Specification"(정오표 1을 갖는 버전 1.0.0), The Alliance for Open Media(2019년 1월 8일)는 그 전체가 인용에 의해 본 명세서에 포함된다.
ITU-T VCEG(Q6/16) 및 ISO/IEC MPEG(JTC 1/SC 29/WG 11)은 2013년에 H.265/HEVC(High Efficiency Video Coding) 표준의 버전 1을, 2014년에 버전 2를, 2015년에 버전 3을, 그리고 2016년에 버전 4를 공개했다. 2015년에, 이러한 2개의 표준 기구들은, HEVC를 넘어선 다음 비디오 코딩 표준을 개발하는 잠재력을 탐구하기 위해 공동 비디오 탐구 팀(JVET: Joint Video Exploration Team)을 공동으로 결성했다. 2017년 10월, JVET는 HEVC를 넘어서는 능력을 갖는 비디오 압축에 대한 공동 제안 요청(Joint Call for Proposals)(CfP)을 발표했다. 2018년 2월 15일까지, SDR(standard dynamic range)에 대한 총 22개의 CfP 응답들, HDR(high dynamic range)에 대한 12개의 CfP 응답들, 및 360개의 비디오 카테고리들에 대한 12개의 CfP 응답들이 각각 제출되었다. 2018년 4월에, 수신된 모든 CfP 응답들은 122 MPEG/10차 JVET 회의에서 평가되었다. 이 회의의 결과로서, JVET는 HEVC를 넘어서는 차세대 비디오 코딩의 표준화 프로세스를 공식적으로 착수하였다. 새로운 표준은 다용도 비디오 코딩(VVC: Versatile Video Coding)으로 명명되었고, JVET는 공동 비디오 전문가 팀(Joint Video Expert Team)으로 명칭이 변경되었다. VVC 표준인 "다용도 비디오 코딩(초안 7)", JVET-P2001-vE, 공동 비디오 전문가 팀(2019년 10월)에 대한 규격은 그 전체가 인용에 의해 본 명세서에 포함된다.
H.264/AVC, HEVC, VVC 및 AV1과 같은 현대 비디오 코딩 표준들에서, 픽처는 래스터 스캔 순서를 갖는 CTU들의 시퀀스로 분할되며, 여기서 CTU들의 크기는 픽처의 우측 또는 최하부 경계에 위치된 것들을 제외하고 서로 동일하다. 그러나 객체 경계가 이러한 고정된 픽처 파티셔닝과 정렬되지 않는다면, 객체의 경계 및 모션을 시그널링하기 위해 더 많은 비트들이 필요할 것이다.
본 개시내용의 일부 실시예들은 위의 문제들 및 다른 문제들을 해결한다.
하나 이상의 실시예들에 따르면, 적어도 하나의 프로세서에 의해 수행되는 방법이 제공된다. 이 방법은: 복수의 코딩 트리 유닛(CTU: coding tree unit)들로 파티셔닝된 코딩된 픽처를 수신하는 단계 ― 코딩된 픽처의 복수의 CTU들 중 코딩된 픽처의 경계에 인접한 CTU들의 적어도 하나의 행 또는 열은, 복수의 CTU들 중 코딩된 픽처의 어떠한 경계에도 인접하지 않은 각각의 CTU의 대응하는 크기 디멘션(dimension)보다 더 작은 크기 디멘션을 가짐 ―; 및 복수의 CTU들에 기초하여, 코딩된 픽처를 디코딩하는 단계를 포함할 수 있으며, CTU들의 적어도 하나의 행 또는 열은 코딩된 픽처의 최상부 경계 또는 좌측 경계에 각각 인접한, 코딩된 픽처의 첫 번째 CTU 행 또는 첫 번째 CTU 열을 포함한다.
일 실시예에 따르면, 복수의 CTU들 중 코딩된 픽처의 어떠한 경계에도 인접하지 않은 각각의 CTU는 동일한 크기를 갖는다.
일 실시예에 따르면, CTU들의 적어도 하나의 행 또는 열은 코딩된 픽처의 좌측 경계에 인접한 첫 번째 CTU 열 및 코딩된 픽처의 우측 경계에 인접한 마지막 CTU 열을 포함하고, 첫 번째 CTU 열 및 마지막 CTU 열은 각각, 복수의 CTU들 중 코딩된 픽처의 어떠한 경계에도 인접하지 않은 각각의 CTU의 폭보다 더 작은 폭을 갖는다.
일 실시예에 따르면, CTU들의 적어도 하나의 행 또는 열은 코딩된 픽처의 최상부 경계에 인접한 첫 번째 CTU 행 및 코딩된 픽처의 최하부 경계에 인접한 마지막 CTU 행을 포함하거나 더 포함하고, 첫 번째 CTU 행 및 마지막 CTU 행은 각각, 복수의 CTU들 중 코딩된 픽처의 어떠한 경계에도 인접하지 않은 각각의 CTU의 높이보다 더 낮은 높이를 갖는다.
일 실시예에 따르면, 코딩된 픽처를 디코딩하는 단계는, CTU들의 적어도 하나의 행 또는 열 중에서 코딩된 픽처의 최상부 경계 또는 좌측 경계에 인접한 첫 번째 CTU 행 또는 첫 번째 CTU 열의 크기 디멘션을 시그널링하는 단계를 포함한다.
일 실시예에 따르면, 첫 번째 CTU 행 또는 첫 번째 CTU 열의 크기 디멘션은 2의 거듭제곱인 양의 정수이다.
일 실시예에 따르면, 코딩된 픽처를 디코딩하는 단계는: CTU들의 적어도 하나의 행 또는 열 중에서 코딩된 픽처의 좌측 경계 또는 최상부 경계에 인접한 첫 번째 CTU 행 또는 첫 번째 CTU 열의 크기 디멘션이 최대 허용 CTU 크기와 동일한지 여부를 지시하는 제1 플래그를 시그널링하는 단계; 제1 플래그에 기초하여, 첫 번째 CTU 행 또는 첫 번째 CTU 열의 크기 디멘션이 최대 허용 CTU 크기와 동일하지 않다고 결정하는 단계; 및 결정에 기초하여, 첫 번째 CTU 행 또는 첫 번째 CTU 열의 크기 디멘션을 지시하는 제2 플래그를 시그널링하는 단계를 포함한다.
일 실시예에 따르면, 코딩된 픽처를 디코딩하는 단계는: CTU들의 적어도 하나의 행 또는 열 중에서 코딩된 픽처의 첫 번째 CTU 행 또는 첫 번째 CTU 열의 크기 디멘션은 미리 결정된 값 이상이고 첫 번째 CTU 행 또는 첫 번째 CTU 열의 다른 크기 디멘션은 미리 결정된 값보다 작다는 결정에 기초하여, CTU들의 적어도 하나의 행 또는 열 중에서 첫 번째 CTU 행 또는 첫 번째 CTU 열에서의 CTU 레벨의 수평 또는 수직 분할을 허용하지 않는 단계를 포함하고, 크기 디멘션은 높이 및 폭 중 하나이고, 다른 크기 디멘션은 높이 및 폭 중 다른 하나이며, 미리 결정된 값은 64보다 큰 2의 거듭제곱 값이다.
일 실시예에 따르면, 코딩된 픽처를 디코딩하는 단계는: CTU들의 적어도 하나의 행 또는 열 중에서 코딩된 픽처의 첫 번째 CTU 행 또는 첫 번째 CTU 열의 크기 디멘션은 미리 결정된 값 이상이고 첫 번째 CTU 행 또는 첫 번째 CTU 열의 다른 크기 디멘션은 미리 결정된 값보다 작다는 결정에 기초하여, CTU들의 적어도 하나의 행 또는 열 중에서 첫 번째 CTU 행 또는 첫 번째 CTU 열에서의 CTU 레벨의 수평 트리플 트리(TT: triple tree) 또는 수직 TT 분할을 허용하지 않는 단계를 포함하고, 크기 디멘션은 높이 및 폭 중 하나이고, 다른 크기 디멘션은 높이 및 폭 중 다른 하나이며, 미리 결정된 값은 64보다 큰 2의 거듭제곱 값이다.
실시예들에 따르면, 첫 번째 또는 마지막 CTU 행의 높이는 최대 CTU 크기보다 작고, 복수의 CTU들 중 코딩된 픽처의 어떠한 경계에도 인접하지 않은 각각의 CTU는 최대 CTU 크기와 동일한 높이를 가지며, 첫 번째 또는 마지막 CTU 행이 다른 CTU들보다 작은지 여부에 대한 결정은 비트스트림에서 하나의 신택스(syntax)에 의해 지시되거나, 또는 첫 번째 또는 마지막 CTU 열의 폭이 최대 CTU 크기보다 작으며, 복수의 CTU들 중 코딩된 픽처의 어떠한 경계에도 인접하지 않은 각각의 CTU는 최대 CTU 크기와 동일한 폭을 갖고, 첫 번째 또는 마지막 CTU 열이 다른 CTU들보다 작은지 여부에 대한 결정은 비트스트림에서 하나의 신택스에 의해 지시된다.
하나 이상의 실시예들에 따르면, 시스템이 제공된다. 이 시스템은: 컴퓨터 프로그램 코드를 저장하도록 구성된 적어도 하나의 메모리; 및 컴퓨터 프로그램 코드에 액세스하며 컴퓨터 프로그램 코드에 의해 명령된 대로 동작하도록 구성된 적어도 하나의 프로세서를 포함하며, 컴퓨터 프로그램 코드는: 적어도 하나의 프로세서로 하여금, 복수의 코딩 트리 유닛(CTU)들로 파티셔닝된 코딩된 픽처를 디코딩하게 하도록 구성된 디코딩 코드를 포함한다. 코딩된 픽처의 복수의 CTU들 중 코딩된 픽처의 경계에 인접한 CTU들의 적어도 하나의 행 또는 열은, 복수의 CTU들 중 코딩된 픽처의 어떠한 경계에도 인접하지 않은 각각의 CTU의 대응하는 크기 디멘션보다 더 작은 크기 디멘션을 가질 수 있고, 디코딩 코드는 적어도 하나의 프로세서로 하여금, 복수의 CTU들에 기초하여, 코딩된 픽처를 디코딩하게 하도록 구성될 수 있으며, CTU들의 적어도 하나의 행 또는 열은 코딩된 픽처의 최상부 경계 또는 좌측 경계에 각각 인접한, 코딩된 픽처의 첫 번째 CTU 행 또는 첫 번째 CTU 열을 포함할 수 있다.
일 실시예에 따르면, 복수의 CTU들 중 코딩된 픽처의 어떠한 경계에도 인접하지 않은 각각의 CTU는 동일한 크기를 갖는다.
일 실시예에 따르면, CTU들의 적어도 하나의 행 또는 열은 코딩된 픽처의 좌측 경계에 인접한 첫 번째 CTU 열 및 코딩된 픽처의 우측 경계에 인접한 마지막 CTU 열을 포함하고, 첫 번째 CTU 열 및 마지막 CTU 열은 각각, 복수의 CTU들 중 코딩된 픽처의 어떠한 경계에도 인접하지 않은 각각의 CTU의 폭보다 더 작은 폭을 갖는다.
일 실시예에 따르면, CTU들의 적어도 하나의 행 또는 열은 코딩된 픽처의 최상부 경계에 인접한 첫 번째 CTU 행 및 코딩된 픽처의 최하부 경계에 인접한 마지막 CTU 행을 포함하거나 더 포함하고, 첫 번째 CTU 행 및 마지막 CTU 행은 각각, 복수의 CTU들 중 코딩된 픽처의 어떠한 경계에도 인접하지 않은 각각의 CTU의 높이보다 더 낮은 높이를 갖는다.
일 실시예에 따르면, 디코딩 코드는 적어도 하나의 프로세서로 하여금, CTU들의 적어도 하나의 행 또는 열 중에서, 코딩된 픽처의 최상부 경계 또는 좌측 경계에 인접한 첫 번째 CTU 행 또는 첫 번째 CTU 열의 크기 디멘션을 시그널링하게 하도록 추가로 구성된다.
일 실시예에 따르면, 디코딩 코드는 적어도 하나의 프로세서로 하여금: CTU들의 적어도 하나의 행 또는 열 중에서 코딩된 픽처의 좌측 경계 또는 최상부 경계에 인접한 첫 번째 CTU 행 또는 첫 번째 CTU 열의 크기 디멘션이 최대 허용 CTU 크기와 동일한지 여부를 지시하는 제1 플래그를 시그널링하게 하고; 제1 플래그에 기초하여, 첫 번째 CTU 행 또는 첫 번째 CTU 열의 크기 디멘션이 최대 허용 CTU 크기와 동일하지 않다고 결정하게 하고; 그리고 결정에 기초하여, 첫 번째 CTU 행 또는 첫 번째 CTU 열의 크기 디멘션을 지시하는 제2 플래그를 시그널링하게 하도록 추가로 구성된다.
일 실시예에 따르면, 디코딩 코드는 적어도 하나의 프로세서로 하여금: CTU들의 적어도 하나의 행 또는 열 중에서 코딩된 픽처의 첫 번째 CTU 행 또는 첫 번째 CTU 열의 크기 디멘션은 미리 결정된 값 이상이고 첫 번째 CTU 행 또는 첫 번째 CTU 열의 다른 크기 디멘션은 미리 결정된 값보다 작다는 결정에 기초하여, CTU들의 적어도 하나의 행 또는 열 중에서 첫 번째 CTU 행 또는 첫 번째 CTU 열에서의 CTU 레벨의 수평 또는 수직 분할을 허용하지 않게 하도록 추가로 구성되며, 크기 디멘션은 높이 및 폭 중 하나이고, 다른 크기 디멘션은 높이 및 폭 중 다른 하나이며, 미리 결정된 값은 64보다 큰 2의 거듭제곱 값이다.
일 실시예에 따르면, 디코딩 코드는 적어도 하나의 프로세서로 하여금: CTU들의 적어도 하나의 행 또는 열 중에서 코딩된 픽처의 첫 번째 CTU 행 또는 첫 번째 CTU 열의 크기 디멘션은 미리 결정된 값 이상이고 첫 번째 CTU 행 또는 첫 번째 CTU 열의 다른 크기 디멘션은 미리 결정된 값보다 작다는 결정에 기초하여, CTU들의 적어도 하나의 행 또는 열 중에서 첫 번째 CTU 행 또는 첫 번째 CTU 열에서의 CTU 레벨의 수평 트리플 트리(TT) 또는 수직 TT 분할을 허용하지 않게 하도록 추가로 구성되며, 크기 디멘션은 높이 및 폭 중 하나이고, 다른 크기 디멘션은 높이 및 폭 중 다른 하나이며, 미리 결정된 값은 64보다 큰 2의 거듭제곱 값이다.
하나 이상의 실시예들에 따르면, 컴퓨터 명령들을 저장하는 비-일시적 컴퓨터 판독 가능 매체가 제공된다. 컴퓨터 명령들은 적어도 하나의 프로세서에 의해 실행될 때, 적어도 하나의 프로세서로 하여금: 복수의 코딩 트리 유닛(CTU)들로 파티셔닝된 코딩된 픽처를 디코딩하게 하도록 구성될 수 있으며, 코딩된 픽처의 복수의 CTU들 중 코딩된 픽처의 경계에 인접한 CTU들의 적어도 하나의 행 또는 열은, 복수의 CTU들 중 코딩된 픽처의 어떠한 경계에도 인접하지 않은 각각의 CTU의 대응하는 크기 디멘션보다 더 작은 크기 디멘션을 갖고, 컴퓨터 명령들은 적어도 하나의 프로세서로 하여금, 복수의 CTU들에 기초하여, 코딩된 픽처를 디코딩하게 하도록 구성되며, CTU들의 적어도 하나의 행 또는 열은 코딩된 픽처의 최상부 경계 또는 좌측 경계에 각각 인접한, 코딩된 픽처의 첫 번째 CTU 행 또는 첫 번째 CTU 열을 포함한다.
개시된 청구 대상의 추가 특징들, 성질 및 다양한 이점들은 다음의 상세한 설명 및 첨부 도면들로부터 보다 명백해질 것이다.
도 1은 일 실시예에 따른 통신 시스템의 단순화된 블록도의 개략적인 예시이다.
도 2는 일 실시예에 따른 통신 시스템의 단순화된 블록도의 개략적인 예시이다.
도 3은 일 실시예에 따른 디코더의 단순화된 블록도의 개략적인 예시이다.
도 4는 일 실시예에 따른 인코더의 단순화된 블록도의 개략적인 예시이다.
도 5는 CTU들로 분할된 픽처의 예시적인 예시이다.
도 6a는 VTM에서의 파티션 제한들의 제1 예를 설명하기 위한 블록의 예시적인 예시이다.
도 6b는 VTM에서의 파티션 제한들의 제2 예를 설명하기 위한 블록의 예시적인 예시이다.
도 6c는 VTM에서의 파티션 제한들의 제3 예를 설명하기 위한 블록의 예시적인 예시이다.
도 6d는 VTM에서의 파티션 제한들의 제4 예를 설명하기 위한 블록의 예시적인 예시이다.
도 6e는 VTM에서의 파티션 제한들의 제5 예를 설명하기 위한 블록의 예시적인 예시이다.
도 6f는 VTM에서의 파티션 제한들의 제6 예를 설명하기 위한 블록의 예시적인 예시이다.
도 6g는 VTM에서의 파티션 제한들의 제7 예를 설명하기 위한 블록의 예시적인 예시이다.
도 6h는 VTM에서의 파티션 제한들의 제8 예를 설명하기 위한 블록의 예시적인 예시이다.
도 7a는 다중 타입 트리 구조에서 수직 2진 분할 타입을 보여주기 위한 도면이다.
도 7b는 다중 타입 트리 구조에서 수평 2진 분할 타입을 보여주기 위한 도면이다.
도 7c는 다중 타입 트리 구조에서 수직 3진 분할 타입을 보여주기 위한 도면이다.
도 7d는 다중 타입 트리 구조에서 수평 3진 분할 타입을 입증하기 위한 도면이다.
도 8은 내포형(nested) 다중 타입 트리 코딩 트리 구조를 갖는 쿼드 트리(quadtree)에서의 파티션 분할 정보의 시그널링 메커니즘을 예시하는 도면이다.
도 9는 쿼드 트리 및 내포형 다중 타입 트리 코딩 블록 구조를 갖는 다수의 CU들로 분할된 CTU를 예시하는 예시적인 도면이다.
도 10a는 VP9의 제1 예시적인 파티션 구조를 예시하는 도면이다.
도 10b는 VP9의 제2 예시적인 파티션 구조를 예시하는 도면이다.
도 10c는 VP9의 제3 예시적인 파티션 구조를 예시하는 도면이다.
도 10d는 VP9의 제4 예시적인 파티션 구조를 예시하는 도면이다.
도 11a는 AV1의 제1 예시적인 파티션 구조를 예시하는 도면이다.
도 11b는 AV1의 제2 예시적인 파티션 구조를 예시하는 도면이다.
도 11c는 AV1의 제3 예시적인 파티션 구조를 예시하는 도면이다.
도 11d는 AV1의 제4 예시적인 파티션 구조를 예시하는 도면이다.
도 11e는 AV1의 제5 예시적인 파티션 구조를 예시하는 도면이다.
도 11f는 AV1의 제6 예시적인 파티션 구조를 예시하는 도면이다.
도 11g는 AV1의 제7 예시적인 파티션 구조를 예시하는 도면이다.
도 11h는 AV1의 제8 예시적인 파티션 구조를 예시하는 도면이다.
도 11i는 AV1의 제9 예시적인 파티션 구조를 예시하는 도면이다.
도 11j는 AV1의 제10 예시적인 파티션 구조를 예시하는 도면이다.
도 12는 본 개시내용의 일 실시예에 따라 복수의 CTU들로 분할된 픽처를 예시하는 도면이다.
도 13은 본 개시내용의 일 실시예에 따라 복수의 CTU들로 분할된 픽처를 예시하는 도면이다.
도 14는 본 개시내용의 일 실시예에 따라 복수의 CTU들로 분할된 픽처를 예시하는 도면이다.
도 15는 본 개시내용의 일 실시예에 따라 복수의 CTU들로 분할된 픽처를 예시하는 도면이다.
도 16은 본 개시내용의 일 실시예에 따른 디코더의 개략도이다.
도 17은 본 개시내용의 실시예들을 구현하기에 적합한 컴퓨터 시스템의 도면이다.
[CTU들로의 픽처의 파티셔닝]
픽처들은 수퍼 블록(SB: super block)들로도 또한 지칭될 수 있는 코딩 트리 유닛(CTU)들의 시퀀스로 분할될 수 있다. HEVC 및 VVC의 CTU 개념은 AV1에서의 SB 개념과 유사하다. 3개의 샘플 어레이들을 갖는 픽처의 경우, CTU는 크로마 샘플들의 2개의 대응하는 블록들과 함께 루마 샘플들의 N×N 블록을 포함하거나 이러한 N×N 블록으로 구성될 수 있다. 도 5는 CTU들(510)로 분할된 픽처(500)의 일례를 도시한다.
CTU에서 루마 블록의 최대 허용 크기는 (루마 변환 블록들의 최대 크기는 64×64이지만) 128×128로 특정된다.
가상 파이프라인 데이터 유닛(VPDU: virtual pipeline data unit)들은 픽처에서 비중첩 유닛들로서 정의될 수 있다. 하드웨어 디코더들에서, 연속적인 VPDU들은 다수의 파이프라인 스테이지들에 의해 동시에 처리될 수 있다. VPDU 크기는 대부분의 파이프라인 스테이지들에서 버퍼 크기에 대략 비례하므로, VPDU 크기를 작게 유지하는 것이 중요할 수 있다. 대부분의 하드웨어 디코더들에서, VPDU 크기는 최대 변환 블록(TB: transform block) 크기로 설정될 수 있다.
VPDU 크기를 64x64 루마 샘플들로서 유지하기 위해, 128×128의 크기를 갖는 CTU의 블록(520)을 예시하는 도 6a - 도 6h에 도시된 바와 같이, VVC 테스트 모델(VTM: VVC Test Model)에 (신택스 시그널링 수정을 갖는) 다음의 규범적인 파티션 제한들이 적용될 수 있으며, 블록(520)은 얇은 선들로 지시된 4개의 VPDU들로 파티셔닝되고, CU들에 대한 허용되지 않는 파티셔닝은 파티션 선들(527)로 지시된다:
· CU의 폭 또는 높이 중 하나 또는 둘 다가 128과 동일한 경우 CU에 대해 트리플 트리(TT) 분할이 허용되지 않는다. 예를 들어, 도 6a - 도 6b 및 도 6e - 도 6h에 지시된 바와 같이 CU들에 대해 TT 분할은 허용되지 않을 수 있다.
· N ≤ 64(즉, 128과 동일한 폭 및 128 이하인 높이)를 갖는 128×N CU의 경우, 수평 2진 트리(BT: binary tree)는 허용되지 않는다. 예를 들어, 도 6d에 지시된 바와 같이 CU들에 대해 수평 BT 분할은 허용되지 않을 수 있다.
· N ≤ 64(즉, 128과 동일한 높이 및 64 이하인 폭)를 갖는 N×128 CU의 경우, 수직 BT는 허용되지 않는다. 예를 들어, 도 6c에 지시된 바와 같이 CU들에 대해 수직 BT 분할은 허용되지 않을 수 있다.
HEVC 및 VVC에서, 트리 노드 블록의 일부가 최하부 또는 우측 픽처 경계를 초과할 때, 트리 노드 블록은 코딩된 모든 각각의 CU의 모든 샘플들이 픽처 경계들 내부에 위치될 때까지 강제로 분할될 수 있다.
[VVC에서 내포형 다중 타입 트리 코딩 블록 구조를 갖는 쿼드 트리]
HEVC에서, CTU는 코딩 트리로서 표시된 쿼드 트리(QT: quad tree) 구조를 사용하여 다양한 로컬 특성들에 적응함으로써 CU들로 분할될 수 있다. 인터 픽처(inter-picture)(시간) 또는 인트라 픽처(intra-picture)(공간) 예측을 사용함으로써 픽처 영역을 코딩할지 여부에 관한 결정이 CU 레벨에서 이루어질 수 있다. 각각의 CU는 예측 유닛(PU: prediction unit) 분할 타입에 기초하여 1개, 2개 또는 4개의 PU들로 더 분할될 수 있다. 하나의 PU 내에서는, 동일한 예측 프로세스가 적용될 수 있고 관련 정보가 PU 단위로 디코더에 전송된다. PU 분할 타입에 기초하여 예측 프로세스를 적용함으로써 잔차 블록을 획득한 후, CU는 CU에 대한 코딩 트리와 같은 다른 쿼드 트리 구조에 따라 변환 유닛(TU: transform unit)들로 파티셔닝될 수 있다. HEVC 구조의 주요 특징들 중 하나는, HEVC 구조가 CU, PU 및 TU를 포함하는 다수의 파티션 개념들을 갖는다는 점이다.
VVC에서, 2진 및 3진 분할 세그먼트화 구조를 사용하는 내포형 다중 타입 트리를 갖는 쿼드 트리는 다수의 파티션 유닛 타입들의 개념들을 대체한다. 즉, VVS는 최대 변환 길이에 대해 너무 큰 크기를 갖는 CU들에 대해 필요한 경우를 제외하고 CU, PU 및 TU 개념들의 분할을 포함하지 않으며, CU 파티션 형상들에 대해 더 많은 탄력성을 지원한다. 코딩 트리 구조에서, CU는 정사각형 또는 직사각형 형상을 가질 수 있다. 코딩 트리 유닛(CTU)이 먼저 4진(quaternary) 트리(일명 쿼드 트리) 구조에 의해 파티셔닝된다. 이어서, 4진 트리 리프(leaf) 노드들이 다중 타입 트리 구조에 의해 추가로 파티셔닝될 수 있다. 도 7a - 도 7d의 도면들(550)-(580)에 도시된 바와 같이, 다중 타입 트리 구조에는 4개의 분할 타입들: 도 7a에 예시된 바와 같은 수직 2진 분할(SPLIT_BT_VER), 도 7b에 예시된 바와 같은 수평 2진 분할(SPLIT_BT_HOR), 도 7c에 예시된 바와 같은 수직 3진 분할(SPLIT_TT_VER), 및 도 7d에 예시된 바와 같은 수평 3진 분할(SPLIT_TT_HOR)이 있다. 다중 타입 트리 리프 노드들은 코딩 유닛(CU: coding unit)들로 지칭될 수 있고, CU가 최대 변환 길이에 대해 너무 크지 않으면, 이러한 세그먼트화는 어떠한 추가 파티셔닝도 없이 예측 및 변환 처리에 사용될 수 있다. 이는 대부분의 경우들에, CU, PU 및 TU가 내포형 다중 타입 트리 코딩 블록 구조를 갖는 쿼드 트리에서 동일한 블록 크기를 갖는다는 것을 의미한다. 지원되는 최대 변환 길이가 CU의 색성분의 폭 또는 높이보다 작을 때 예외가 발생한다.
도 8은 내포형 다중 타입 트리 코딩 트리 구조를 갖는 쿼드 트리에서의 파티션 분할 정보의 시그널링 메커니즘을 예시한다. 코딩 트리 유닛(CTU)(605)은 4진 트리의 루트로서 취급될 수 있고, 시그널링되는 플래그(612)(qt_split_flag)에 기초하여 4진 트리 구조에 의해 먼저 파티셔닝될 수 있다. 예를 들어, 제1 플래그(612)의 값이 "1"인 경우, QT_node들(610)이 있도록 쿼드 트리 파티셔닝이 수행되지 않을 수 있다. 제1 플래그(612)의 값이 "1"인 경우, 4진 트리 리프 노드(615)(QT-leaf_node/MTT_node) 중 하나 이상이 존재하도록 쿼드 트리 파티셔닝이 수행될 수 있다. 이어서, 각각의 4진 트리 리프 노드(615)(이를 허용하기에 충분히 큰 경우)가 다중 타입 트리 구조에 의해 추가로 파티셔닝된다. 다중 타입 트리 구조에서, 4진 트리 리프 노드(615)가 추가로 파티셔닝되는지 여부를 지시하기 위해 플래그(617)(mtt_split_cu_flag 또는 mtt_split_flag)가 시그널링된다. 예를 들어, 플래그(617)의 값이 "1"인 경우, 4진 트리 리프 노드(615)가 추가로 파티셔닝된다(참조 문자(620)로 지시됨). 그리고 플래그(617)의 값이 "0"인 경우, 4진 트리 리프 노드(615)는 추가로 파티셔닝되지 않는다(참조 문자(625)로 지시됨). 4진 트리 리프 노드(615)가 추가로 파티셔닝된다면, 분할 방향을 지시하기 위해 플래그(622)(mtt_split_cu_vertical_flag 또는 mtt_split_vertical_flag)가 시그널링될 수 있다. 예를 들어, 플래그(622)의 값이 "1"이라면, 4진 트리 리프 노드(615)는 수직으로 분할될 수 있고(참조 문자(630)로 지시됨), 플래그(622)의 값이 "0이라면, 4진 트리 리프 노드(615)는 수평으로 분할될 수 있다(참조 문자(635)로 지시됨). 분할이 2진 분할인지 또는 3진 분할인지를 지시하기 위해 플래그(632)(mtt_split_cu_binary_flag 또는 mtt_split_binary_flag)가 시그널링될 수 있다. 예를 들어, 플래그(632)의 값이 "1"이라면, 4진 트리 리프 노드(615)는 2진 분할될 수 있고(참조 문자들(640, 650)로 지시됨), 플래그(632)의 값이 "0"이라면, 4진 트리 리프 노드(615)는 3진 분할될 수 있다(참조 문자들(645, 655)로 지시됨). 플래그(622) 및 플래그(632)의 값들에 기초하여, CU의 다중 타입 트리 분할 모드(MttSplitMode)가 아래의 표 1에 도시된 바와 같이 도출될 수 있다.
표 1 - 다중 타입 트리 신택스 엘리먼트들에 기반한 MttSplitMode 도출
MttSplitMode mtt_split_cu_vertical_flag mtt_split_cu_binary_flag
SPLIT_TT_HOR 0 0
SPLIT_BT_HOR 0 1
SPLIT_TT_VER 1 0
SPLIT_BT_VER 1 1
도 9는 쿼드 트리 및 내포형 다중 타입 트리 코딩 블록 구조를 갖는 다수의 CU들로 분할된 CTU(660)를 도시하며, 여기서 굵은 선 에지들은 쿼드 트리 파티셔닝을 나타내고, 파선 에지들은 다중 타입 트리 파티셔닝을 나타낸다. 내포형 다중 타입 트리 파티션을 갖는 쿼드 트리는 CU들로 구성된 콘텐츠 적응 코딩 트리 구조를 제공한다. CU(들)의 크기는 루마 샘플들의 단위로 CTU만큼 크거나 4x4만큼 작을 수 있다. 4:2:0 크로마 포맷의 경우, 최대 크로마 CB 크기는 64×64이고, 최소 크로마 CB 크기는 2×2이다. VVC에서, 지원되는 최대 루마 변환 크기는 64×64이고, 지원되는 최대 크로마 변환 크기는 32×32이다. CB의 폭 또는 높이가 최대 변환 폭 또는 높이보다 더 클 때, CB는 그 방향으로의 변환 크기 제한을 충족시키도록 수평 및/또는 수직 방향으로 자동으로 분할된다.
VTM7에서, 코딩 트리 방식은 루마 및 크로마가 개별 블록 트리 구조를 갖는 능력을 지원한다. P 및 B 슬라이스들의 경우, 하나의 CTU 내의 루마 및 크로마 CTB들은 동일한 코딩 트리 구조를 공유해야 한다. 그러나 I 슬라이스들의 경우, 루마 및 크로마는 개별 블록 트리 구조들을 가질 수 있다. 개별 블록 트리 모드가 적용될 때, 루마 CTB는 하나의 코딩 트리 구조에 의해 CU들로 파티셔닝되고, 크로마 CTB들은 다른 코딩 트리 구조에 의해 크로마 CU들로 파티셔닝된다. 이는, I 슬라이스 내의 CU가 루마 컴포넌트의 코딩 블록 또는 2개의 크로마 컴포넌트들의 코딩 블록들로 구성될 수 있고, P 또는 B 슬라이스 내의 CU는 비디오가 단색이 아닌 한, 3개의 색성분들 모두의 코딩 블록들로 구성될 수 있다는 것을 의미한다.
[VP9 및 AV1의 코딩 블록 파티션]
도 10a - 도 10d의 파티션 구조들(670)-(673)을 참조하면, VP9는 64x64 레벨에서 시작하여 4x4 레벨까지 4-방향 파티션 트리를 사용하며, 8x8 블록들에 대한 일부 추가 제한들이 있다. 도 10d에서 R로서 지정된 파티션들은 가장 낮은 4x4 레벨에 도달할 때까지 동일한 파티션 트리가 더 낮은 스케일로 반복된다는 점에서 재귀를 의미한다는 점에 주목한다.
도 11a - 도 11j의 파티션 구조들(680)-(689)을 참조하면, AV1은 파티션 트리를 10-방향 구조로 확장할 뿐만 아니라 (VP9/AV1 용어로 슈퍼 블록으로 지칭되는) 가장 큰 크기를 128×128에서 시작하도록 증가시킨다. 이는 VP9에 존재하지 않았던 4:1/1:4 직사각형 파티션들을 포함한다는 점에 주목한다. 직사각형 파티션들 중 어느 것도 추가로 세분될 수 없다. 코딩 블록 크기에 추가로, 코딩 트리 깊이는 루트 노드로부터의 분할 깊이를 지시하도록 정의된다. 구체적으로, 루트 노드, 예컨대 128×128에 대한 코딩 트리 깊이는 0으로 설정되고, 트리 블록이 한 번 더 분할된 후에, 코딩 트리 깊이는 1만큼 증가된다.
VP9에서와 같이 고정된 변환 유닛 크기들을 시행하는 대신에, AV1은 루마 코딩 블록들이 최대 2개의 레벨들까지 내려가는 재귀적 파티션에 의해 표현될 수 있는 다수의 크기들의 변환 유닛들로 파티셔닝될 수 있게 한다. AV1의 확장된 코딩 블록 파티션들을 통합하기 위해, 4x4 내지 64x64의 정사각형인 2:1/1:2 및 4:1/1:4 변환 크기들이 지원될 수 있다. 크로마 블록들의 경우, 가능한 가장 큰 변환 유닛들만이 허용될 수 있다.
본 개시내용의 실시예들은 아래에서 상세히 논의된다. 본 개시내용에서 아래에서 사용되는 바와 같은 "CTU"라는 용어는 코딩 표준의 최대 코딩 유닛(LCU: largest coding unit)을 의미할 수 있다. 예를 들어, "CTU"라는 용어는 HEVC 및 VVC에 정의된 CTU 및/또는 AV1에 정의된 SB를 의미할 수 있다.
도 1은 본 개시내용의 일 실시예에 따른 통신 시스템(100)의 단순화된 블록도를 예시한다. 시스템(100)은 네트워크(150)를 통해 상호 접속된 적어도 2개의 단말들(110, 120)을 포함할 수 있다. 데이터의 단방향 전송을 위해, 제1 단말(110)은 네트워크(150)를 통한 다른 단말(120)로의 전송을 위해 로컬 위치에서 비디오 데이터를 코딩할 수 있다. 제2 단말(120)은 네트워크(150)로부터 다른 단말의 코딩된 비디오 데이터를 수신하고, 코딩된 데이터를 디코딩하며, 복원된 비디오 데이터를 디스플레이할 수 있다. 단방향 데이터 전송은 미디어 서빙 애플리케이션들 등에서 공통적일 수 있다.
도 1은 예를 들어, 화상 회의 동안 발생할 수 있는 코딩된 비디오의 양방향 전송을 지원하기 위해 제공되는 제2 쌍의 단말들(130, 140)을 예시한다. 데이터의 양방향 전송을 위해, 각각의 단말(130, 140)은 네트워크(150)를 통한 다른 단말로의 전송을 위해 로컬 위치에서 캡처된 비디오 데이터를 코딩할 수 있다. 각각의 단말(130, 140)은 또한 다른 단말에 의해 전송된 코딩된 비디오 데이터를 수신할 수 있고, 코딩된 데이터를 디코딩할 수 있으며, 로컬 디스플레이 디바이스에서 복원된 비디오 데이터를 디스플레이할 수 있다.
도 1에서, 단말들(110-140)은 서버들, 개인용 컴퓨터들 및 스마트폰들 및/또는 임의의 다른 타입의 단말로서 예시될 수 있다. 예를 들어, 단말들(110-140)은 랩톱 컴퓨터들, 태블릿 컴퓨터들, 미디어 플레이어들 및/또는 전용 화상 회의 장비일 수 있다. 네트워크(150)는 예를 들어, 유선 및/또는 무선 통신 네트워크들을 포함하여, 코딩된 비디오 데이터를 단말들(110-140) 사이에 전달하는 임의의 수의 네트워크들을 나타낸다. 통신 네트워크(150)는 회선 교환 및/또는 패킷 교환 채널들에서 데이터를 교환할 수 있다. 대표적인 네트워크들은 원격 통신 네트워크들, 근거리 네트워크들, 광역 네트워크들 및/또는 인터넷을 포함한다. 본 논의의 목적들로, 네트워크(150)의 아키텍처 및 토폴로지는 본 명세서에서 아래에 설명되지 않는 한 본 개시내용의 조작에 중요하지 않을 수 있다.
도 2는 개시된 청구 대상에 대한 애플리케이션에 대한 일례로, 스트리밍 환경에서의 비디오 인코더 및 디코더의 배치를 예시한다. 개시된 청구 대상은 예를 들어, 화상 회의, 디지털 TV, CD, DVD, 메모리 스틱 등을 포함하는 디지털 매체들 상의 압축된 비디오의 저장 등을 포함하는 다른 비디오 가능 애플리케이션들에 동일하게 적용 가능할 수 있다.
도 2에 예시된 바와 같이, 스트리밍 시스템(200)은 비디오 소스(201) 및 인코더(203)를 포함할 수 있는 캡처 서브시스템(213)을 포함할 수 있다. 비디오 소스(201)는 예를 들어, 디지털 카메라일 수 있고, 비압축 비디오 샘플 스트림(202)을 생성하도록 구성될 수 있다. 비압축 비디오 샘플 스트림(202)은 인코딩된 비디오 비트스트림들과 비교할 때 높은 데이터 볼륨을 제공할 수 있고, 카메라(201)에 결합된 인코더(203)에 의해 처리될 수 있다. 인코더(203)는 아래에서 더 상세히 설명되는 바와 같이, 개시된 청구 대상의 양상들을 가능하게 하거나 구현하기 위한 하드웨어, 소프트웨어, 또는 이들의 조합을 포함할 수 있다. 인코딩된 비디오 비트스트림(204)은 샘플 스트림과 비교할 때 더 낮은 데이터 볼륨을 포함할 수 있고, 향후 사용을 위해 스트리밍 서버(205)에 저장될 수 있다. 하나 이상의 스트리밍 클라이언트들(206)은 인코딩된 비디오 비트스트림(204)의 사본들일 수 있는 비디오 비트스트림들(209)을 리트리브하기 위해 스트리밍 서버(205)에 액세스할 수 있다.
실시예들에서, 스트리밍 서버(205)는 또한, 미디어 인지 네트워크 엘리먼트(MANE: Media-Aware Network Element)로서 기능할 수 있다. 예를 들어, 스트리밍 서버(205)는 잠재적으로 상이한 비트스트림들을 스트리밍 클라이언트들(206) 중 하나 이상에 맞추기 위해 인코딩된 비디오 비트스트림(204)을 잘라내도록 구성될 수 있다. 실시예들에서, MANE은 스트리밍 시스템(200)에서 스트리밍 서버(205)와 별개로 제공될 수 있다.
스트리밍 클라이언트들(206)은 비디오 디코더(210) 및 디스플레이(212)를 포함할 수 있다. 비디오 디코더(210)는 예를 들어, 인코딩된 비디오 비트스트림(204)의 착신 카피인 비디오 비트스트림(209)을 디코딩하고, 디스플레이(212) 또는 (도시되지 않은) 다른 렌더링 디바이스 상에 렌더링될 수 있는 발신 비디오 샘플 스트림(211)을 생성할 수 있다. 일부 스트리밍 시스템들에서, 비디오 비트스트림들(204, 209)은 특정 비디오 코딩/압축 표준들에 따라 인코딩될 수 있다. 그러한 표준들의 예들은 ITU-T 권고 H.265를 포함하지만 이에 제한되는 것은 아니다. 비공식적으로 다용도 비디오 코딩(VVC)으로 알려진 비디오 코딩 표준이 개발 중에 있다. 본 개시내용의 실시예들은 VVC와 관련하여 사용될 수 있다.
도 3은 본 개시내용의 일 실시예에 따른, 디스플레이(212)에 부착되는 비디오 디코더(210)의 예시적인 기능 블록도를 예시한다.
비디오 디코더(210)는 채널(312), 수신기(310), 버퍼 메모리(315), 엔트로피 디코더/파서(parser)(320), 스케일러(scaler)/역변환 유닛(351), 인트라 예측 유닛(352), 모션 보상 예측 유닛(353), 애그리게이터(aggregator)(355), 루프 필터 유닛(356), 참조 픽처 메모리(357) 및 현재 픽처 메모리(358)를 포함할 수 있다. 적어도 하나의 실시예에서, 비디오 디코더(210)는 집적 회로, 일련의 집적 회로들 및/또는 다른 전자 회로를 포함할 수 있다. 비디오 디코더(210)는 또한, 연관된 메모리들을 갖는 하나 이상의 CPU들 상에서 실행되는 소프트웨어로 부분적으로 또는 전체적으로 구현될 수 있다.
이 실시예 및 다른 실시예들에서, 수신기(310)는 디코더(210)에 의해 디코딩될 하나 이상의 코딩된 비디오 시퀀스들을 한 번에 하나의 코딩된 비디오 시퀀스씩 수신할 수 있으며, 여기서 각각의 코딩된 비디오 시퀀스의 디코딩은 다른 코딩된 비디오 시퀀스와 독립적이다. 코딩된 비디오 시퀀스는 하드웨어/소프트웨어 링크일 수 있는 채널(312)로부터, 인코딩된 비디오 데이터를 저장하는 저장 디바이스에 수신될 수 있다. 수신기(310)는 (도시되지 않은) 엔티티들을 사용하여 이들 각각에 포워딩될 수 있는 다른 데이터, 예를 들어 코딩된 오디오 데이터 및/또는 보조 데이터 스트림들과 함께 인코딩된 비디오 데이터를 수신할 수 있다. 수신기(310)는 코딩된 비디오 시퀀스를 다른 데이터로부터 분리할 수 있다. 네트워크 지터(jitter)에 대처하기 위해, 버퍼 메모리(315)는 수신기(310)와 엔트로피 디코더/파서(320)(이하 "파서") 사이에 결합될 수 있다. 수신기(310)가 충분한 대역폭 및 제어 가능성의 저장/전달 디바이스로부터, 또는 등시성(isosynchronous) 네트워크로부터 데이터를 수신하고 있을 때, 버퍼(315)는 사용되지 않을 수 있거나 작을 수 있다. 인터넷과 같은 최선형(best effort) 패킷 네트워크들 상에서의 사용을 위해, 버퍼(315)가 요구될 수 있고, 비교적 클 수 있고, 적응적 크기일 수 있다.
비디오 디코더(210)는 엔트로피 코딩된 비디오 시퀀스로부터 심볼들(321)을 재구성하기 위한 파서(320)를 포함할 수 있다. 그러한 심볼들의 카테고리들은 예를 들어, 디코더(210)의 조작을 관리하는 데 사용되는 정보, 및 잠재적으로 도 2에 예시된 바와 같이 디코더에 결합될 수 있는 디스플레이(212)와 같은 렌더링 디바이스를 제어하기 위한 정보를 포함한다. 렌더링 디바이스(들)에 대한 제어 정보는 예를 들어, 부가 확장 정보(SEI: Supplementary Enhancement Information) 메시지들 또는 비디오 사용성 정보(VUI: Video Usability Information) 파라미터 세트 프래그먼트들(도시되지 않음)의 형태일 수 있다. 파서(320)는 수신되는 코딩된 비디오 시퀀스를 파싱/엔트로피 디코딩할 수 있다. 코딩된 비디오 시퀀스의 코딩은 비디오 코딩 기술 또는 표준에 따를 수 있고, 가변 길이 코딩, 허프만(Huffman) 코딩, 상황 민감도를 갖거나 갖지 않는 산술 코딩 등을 포함하여, 당해 기술분야에서 통상의 지식을 가진 자에게 잘 알려진 원리들을 따를 수 있다. 파서(320)는 그룹에 대응하는 적어도 하나의 파라미터들에 기초하여, 비디오 디코더 내의 픽셀들의 하위 그룹들 중 적어도 하나에 대한 한 세트의 하위 그룹 파라미터들을 코딩된 비디오 시퀀스로부터 추출할 수 있다. 하위 그룹들은 픽처들의 그룹(GOP: Group of Pictures)들, 픽처들, 타일들, 슬라이스들, 매크로 블록들, 코딩 유닛(CU)들, 블록들, 변환 유닛(TU)들, 예측 유닛(PU)들 등을 포함할 수 있다. 파서(320)는 또한, 변환 계수들, 양자화기 파라미터 값들, 모션 벡터들 등과 같은 정보를 코딩된 비디오 시퀀스로부터 추출할 수 있다.
파서(320)는 심볼들(321)을 생성하기 위해, 버퍼(315)로부터 수신된 비디오 시퀀스에 대해 엔트로피 디코딩/파싱 조작을 수행할 수 있다.
심볼들(321)의 재구성은 코딩된 비디오 픽처 또는 그 부분들의 타입(이를테면: 인터 및 인트라 픽처, 인터 및 인트라 블록) 및 다른 팩터들에 따라 다수의 상이한 유닛들을 수반할 수 있다. 어떤 유닛들이 수반되는지, 그리고 이들이 어떻게 수반되는지는 코딩된 비디오 시퀀스로부터 파서(320)에 의해 파싱된 하위 그룹 제어 정보에 의해 제어될 수 있다. 파서(320)와 아래의 다수의 유닛들 사이의 그러한 하위 그룹 제어 정보의 흐름은 명확성을 위해 도시되지 않는다.
이미 언급된 기능 블록들 외에도, 디코더(210)는 아래에서 설명되는 바와 같이 다수의 기능 유닛들로 개념적으로 세분될 수 있다. 상업적 제약들 하에서 조작하는 실제 구현에서, 이러한 유닛들 중 다수는 서로 밀접하게 상호 작용하고, 적어도 부분적으로 서로 통합될 수 있다. 그러나 개시된 청구 대상을 설명할 목적으로, 아래의 기능 유닛들로의 개념적 세분이 적절하다.
하나의 유닛은 스케일러/역변환 유닛(351)일 수 있다. 스케일러/역변환 유닛(351)은 파서(320)로부터의 심볼(들)(321)로서, 사용할 변환, 블록 크기, 양자화 팩터, 양자화 스케일링 행렬들 등을 포함하는 제어 정보뿐만 아니라 양자화된 변환 계수를 수신할 수 있다. 스케일러/역변환 유닛(351)은 애그리게이터(355)에 입력될 수 있는 샘플 값들을 포함하는 블록들을 출력할 수 있다.
일부 경우들에서, 스케일러/역변환(351)의 출력 샘플들은 인트라 코딩된 블록; 즉: 이전에 재구성된 픽처들로부터의 예측 정보를 사용하고 있는 것이 아니라, 현재 픽처의 이전에 재구성된 부분들로부터의 예측 정보를 사용할 수 있는 블록에 속할 수 있다. 그러한 예측 정보는 인트라 픽처 예측 유닛(352)에 의해 제공될 수 있다. 일부 경우들에서, 인트라 픽처 예측 유닛(352)은 현재 픽처 메모리(358)로부터의 현재(부분적으로 재구성된) 픽처로부터 페치(fetch)된 주변의 이미 재구성된 정보를 사용하여, 재구성 하의 블록과 동일한 크기 및 형상의 블록을 생성한다. 애그리게이터(355)는 일부 경우들에서, 인트라 예측 유닛(352)이 생성한 예측 정보를 스케일러/역변환 유닛(351)에 의해 제공되는 출력 샘플 정보에 샘플 단위로 추가한다.
다른 경우들에서, 스케일러/역변환 유닛(351)의 출력 샘플들은, 인터 코딩되고 잠재적으로 모션 보상된 블록에 속할 수 있다. 그러한 경우에, 모션 보상 예측 유닛(353)은 예측에 사용되는 샘플들을 페치하기 위해 참조 픽처 메모리(357)에 액세스할 수 있다. 블록에 속하는 심볼들(321)에 따라 페치된 샘플들을 모션 보상한 후에, 이러한 샘플들은 애그리게이터(355)에 의해 (이 경우, 잔차 샘플들 또는 잔차 신호로 지칭되는) 스케일러/역변환 유닛(351)의 출력에 추가되어 출력 샘플 정보를 생성할 수 있다. 모션 보상 예측 유닛(353)이 예측 샘플들을 페치하는 참조 픽처 메모리(357) 내의 어드레스들은 모션 벡터들에 의해 제어될 수 있다. 모션 벡터들은 예를 들어, X, Y 및 참조 픽처 컴포넌트들을 가질 수 있는 심볼들(321)의 형태로 모션 보상 예측 유닛(353)에 이용 가능할 수 있다. 모션 보상은 또한, 서브샘플 정밀 모션 벡터들이 사용 중일 때 참조 픽처 메모리(357)로부터 페치된 샘플 값들의 보간, 모션 벡터 예측 메커니즘들 등을 포함할 수 있다.
애그리게이터(355)의 출력 샘플들은 루프 필터 유닛(356)에서 다양한 루프 필터링 기법들을 겪을 수 있다. 비디오 압축 기술들은 코딩된 비디오 비트스트림에 포함된 파라미터들에 의해 제어되고 파서(320)로부터의 심볼들(321)로서 루프 필터 유닛(356)에 이용 가능하게 되는 루프 내 필터 기술들을 포함할 수 있지만, 코딩된 픽처 또는 코딩된 비디오 시퀀스의 (디코딩 순서로) 이전 부분들의 디코딩 동안 획득된 메타 정보에 응답할 뿐만 아니라, 이전에 재구성되고 루프 필터링된 샘플 값들에 응답할 수 있다.
루프 필터 유닛(356)의 출력은 디스플레이(212)와 같은 렌더링 디바이스에 출력될 수 있을 뿐만 아니라 향후 인터 픽처 예측에서의 사용을 위해 참조 픽처 메모리(357)에 저장될 수 있는 샘플 스트림일 수 있다.
특정 코딩된 픽처들은 일단 완전히 재구성되면, 향후 예측을 위한 참조 픽처들로서 사용될 수 있다. 코딩된 픽처가 완전히 재구성되고 코딩된 픽처가 (예를 들어, 파서(320)에 의해) 참조 픽처로서 식별되면, 현재 참조 픽처는 참조 픽처 메모리(357)의 일부가 될 수 있고, 다음의 코딩된 픽처의 재구성을 시작하기 전에 새로운 현재 픽처 메모리가 재할당될 수 있다.
비디오 디코더(210)는 ITU-T Rec. H.265와 같은 표준에 문서화될 수 있는 미리 결정된 비디오 압축 기술에 따라 디코딩 조작들을 수행할 수 있다. 코딩된 비디오 시퀀스는, 이것이 비디오 압축 기술 문서 또는 표준에 그리고 구체적으로 그 안의 프로파일들의 문서에 지정된 바와 같이, 비디오 압축 기술 문서 또는 표준의 신택스를 고수한다는 의미로, 사용되고 있는 비디오 압축 기술 또는 표준에 의해 특정된 신택스를 따를 수 있다. 또한, 일부 비디오 압축 기술들 또는 표준들의 준수를 위해, 코딩된 비디오 시퀀스의 복잡성은 비디오 압축 기술 또는 표준의 레벨에 의해 정의된 범위들 내에 있을 수 있다. 일부 경우들에서, 레벨들은 최대 픽처 크기, 최대 프레임 레이트, (예를 들어, 초당 메가샘플들로 측정된) 최대 재구성 샘플 레이트, 최대 참조 픽처 크기 등을 제한한다. 레벨들에 의해 설정된 제한들은 일부 경우들에는, 코딩된 비디오 시퀀스로 시그널링되는 가상 참조 디코더(HRD: Hypothetical Reference Decoder) 버퍼 관리를 위한 메타데이터(metadata) 및 HRD 규격들을 통해 추가로 제한될 수 있다.
일 실시예에서, 수신기(310)는 인코딩된 비디오와 함께 추가 (중복) 데이터를 수신할 수 있다. 추가 데이터는 코딩된 비디오 시퀀스(들)의 일부로서 포함될 수 있다. 추가 데이터는 데이터를 적절히 디코딩하기 위해 그리고/또는 원본 비디오 데이터를 보다 정확하게 재구성하기 위해 비디오 디코더(210)에 의해 사용될 수 있다. 추가 데이터는 예를 들어, 시간적, 공간적 또는 SNR 강화 계층들, 중복 슬라이스들, 중복 픽처들, 순방향 에러 정정 코드들 등의 형태일 수 있다.
도 4는 본 개시내용의 일 실시예에 따른 비디오 소스(201)와 연관된 비디오 인코더(203)의 예시적인 기능 블록도를 예시한다.
비디오 인코더(203)는 예를 들어, 소스 코더(430), 코딩 엔진(432), (로컬) 디코더(433), 참조 픽처 메모리(434), 예측기(435), 전송기(440), 엔트로피 코더(445), 제어기(450) 및 채널(460)인 인코더를 포함할 수 있다.
인코더(203)는 인코더(203)에 의해 코딩될 비디오 이미지(들)를 캡처할 수 있는 (인코더의 일부가 아닌) 비디오 소스(201)로부터 비디오 샘플들을 수신할 수 있다.
비디오 소스(201)는 임의의 적절한 비트 깊이(예를 들어: 8비트, 10비트, 12비트, …), 임의의 색 공간(예를 들어, BT.601 Y CrCB, RGB, …) 및 임의의 적절한 샘플링 구조(예를 들어, Y CrCb 4:2:0, Y CrCb 4:4:4)일 수 있는 디지털 비디오 샘플 스트림의 형태로 인코더(203)에 의해 코딩될 소스 비디오 시퀀스를 제공할 수 있다. 미디어 서빙 시스템에서, 비디오 소스(201)는 이전에 준비된 비디오를 저장하는 저장 디바이스일 수 있다. 화상 회의 시스템에서, 비디오 소스(203)는 로컬 이미지 정보를 비디오 시퀀스로서 캡처하는 카메라일 수 있다. 비디오 데이터는 순차적으로 볼 때 모션을 부여하는 복수의 개별 픽처들로서 제공될 수 있다. 픽처들 자체는 픽셀들의 공간 어레이로서 구성될 수 있으며, 여기서 각각의 픽셀은 사용 중인 샘플링 구조, 색 공간 등에 따라 하나 이상의 샘플을 포함할 수 있다. 당해 기술분야에서 통상의 지식을 가진 자는 픽셀들과 샘플들 간의 관계를 쉽게 이해할 수 있다. 아래의 설명은 샘플들에 초점을 맞춘다.
일 실시예에 따르면, 인코더(203)는 실시간으로 또는 애플리케이션에 의해 요구되는 임의의 다른 시간 제약들 하에서 소스 비디오 시퀀스의 픽처들을 코딩된 비디오 시퀀스(443)로 코딩 및 압축할 수 있다. 적절한 코딩 속도를 시행하는 것은 제어기(450)의 하나의 기능이다. 제어기(450)는 또한, 아래에서 설명되는 바와 같이 다른 기능 유닛들을 제어할 수 있고, 이러한 유닛들에 기능적으로 결합될 수 있다. 명확성을 위해 결합은 도시되지 않는다. 제어기(450)에 의해 설정된 파라미터들은 레이트 제어 관련 파라미터들(픽처 스킵, 양자화기, 레이트 왜곡 최적화 기법들의 람다(lambda) 값, …), 픽처 크기, 픽처들의 그룹(GOP) 레이아웃, 최대 모션 벡터 탐색 범위 등을 포함할 수 있다. 당해 기술분야에서 통상의 지식을 가진 자는 제어기(450)의 다른 기능들이 특정 시스템 설계에 대해 최적화된 비디오 인코더(203)에 관련될 수 있기 때문에 이러한 기능들을 쉽게 식별할 수 있다.
일부 비디오 인코더들은 당해 기술분야에서 통상의 지식을 가진 자가 "코딩 루프"로서 용이하게 인식하는 것으로 조작한다. 지나치게 단순화된 설명으로서, 코딩 루프는 (코딩될 입력 픽처 및 참조 픽처(들)에 기초하여 심볼들을 생성하는 것을 담당하는) 소스 코더(430)의 인코딩 부분, 및 특정 비디오 압축 기술들에서 심볼들과 코딩된 비디오 비트스트림 사이의 압축이 무손실일 때 (원격) 디코더가 또한 생성할 샘플 데이터를 생성하도록 심볼들을 재구성하는, 인코더(203)에 임베드(embed)된 (로컬) 디코더(433)로 구성될 수 있다. 그 재구성된 샘플 스트림은 참조 픽처 메모리(434)에 입력될 수 있다. 심볼 스트림의 디코딩이 (로컬 또는 원격) 디코더 위치와 독립적인 비트 정확한 결과들로 이어지므로, 참조 픽처 메모리 콘텐츠는 또한 로컬 인코더와 원격 인코더 사이에서 비트 정확하다. 다시 말해서, 인코더의 예측 부분은, 디코딩 동안 예측을 사용할 때 디코더가 "보는" 것과 정확히 동일한 샘플 값들을 참조 픽처 샘플들로서 "본다". 참조 픽처 동기성의 이러한 기본 원리(및 예를 들어, 채널 에러들로 인해 동기성이 유지될 수 없다면, 결과적인 드리프트(drift))는 당해 기술분야에서 통상의 지식을 가진 자에게 알려져 있다.
"로컬" 디코더(433)의 조작은 도 3과 함께 위에서 이미 상세히 설명된 "원격" 디코더(210)의 조작과 동일할 수 있다. 그러나 심볼들이 이용 가능하고 엔트로피 코더(445) 및 파서(320)에 의한 코딩된 비디오 시퀀스로의 심볼들의 인코딩/디코딩이 무손실일 수 있기 때문에, 채널(312), 수신기(310), 버퍼(315) 및 파서(320)를 포함하는 디코더(210)의 엔트로피 디코딩 부분들은 로컬 디코더(433)에서 완전히 구현되지 않을 수 있다.
이 시점에서 이루어질 수 있는 관찰은, 디코더에 존재하는 파싱/엔트로피 디코딩을 제외한 임의의 디코더 기술이 실질적으로 동일한 기능적 형태로 대응하는 인코더에 존재할 필요가 있을 수 있다는 것이다. 이런 이유로, 개시된 청구 대상은 디코더 조작에 초점을 맞춘다. 인코더 기술들은 포괄적으로 설명된 디코더 기술들의 역일 수 있기 때문에 인코더 기술들의 설명은 축약될 수 있다. 특정 영역들에서만 더 상세한 설명이 요구되고 아래에 제공된다.
소스 코더(430)의 조작의 일부로서, 소스 코더(430)는 "참조 프레임들"로서 지정된 비디오 시퀀스로부터의 하나 이상의 이전에 코딩된 프레임들을 참조하여 입력 프레임을 예측 코딩하는 모션 보상 예측 코딩을 수행할 수 있다. 이런 식으로, 코딩 엔진(432)은 입력 프레임의 픽셀 블록들과 입력 프레임에 대한 예측 참조(들)로서 선택될 수 있는 참조 프레임(들)의 픽셀 블록들 간의 차이들을 코딩한다.
로컬 비디오 디코더(433)는 소스 코더(430)에 의해 생성된 심볼들에 기반하여, 참조 프레임들로서 지정될 수 있는 프레임들의 코딩된 비디오 데이터를 디코딩할 수 있다. 코딩 엔진(432)의 조작들은 유리하게는 손실 프로세스들일 수 있다. 코딩된 비디오 데이터가 (도 4에 도시되지 않은) 비디오 디코더에서 디코딩될 수 있을 때, 재구성된 비디오 시퀀스는 통상적으로 일부 에러들을 갖는 소스 비디오 시퀀스의 복제물일 수 있다. 로컬 비디오 디코더(433)는 비디오 디코더에 의해 참조 프레임들에 수행될 수 있는 디코딩 프로세스들을 복제하고, 재구성된 참조 프레임들이 참조 픽처 메모리(434)에 저장되게 할 수 있다. 이런 식으로, 인코더(203)는 (전송 에러들 없이) 원단(far-end) 비디오 디코더에 의해 획득될 재구성된 참조 프레임들로서 공통 콘텐츠를 갖는 재구성된 참조 프레임들의 사본들을 국소적으로 저장할 수 있다.
예측기(435)는 코딩 엔진(432)에 대한 예측 탐색들을 수행할 수 있다. 즉, 코딩될 새로운 프레임에 대해, 예측기(435)는 (후보 참조 픽셀 블록들로서) 샘플 데이터, 또는 새로운 픽처들에 대한 적절한 예측 참조로서의 역할을 할 수 있는 참조 픽처 모션 벡터들, 블록 형상들 등과 같은 특정 메타데이터에 대해 참조 픽처 메모리(434)를 탐색할 수 있다. 예측기(435)는 적절한 예측 참조들을 발견하기 위해 샘플 블록 × 픽셀 블록 단위로 조작할 수 있다. 일부 경우들에는, 예측기(435)에 의해 획득된 탐색 결과들에 의해 결정된 대로, 입력 픽처는 참조 픽처 메모리(434)에 저장된 다수의 참조 픽처들로부터 인출된 예측 참조들을 가질 수 있다.
제어기(450)는 예를 들어, 비디오 데이터를 인코딩하기 위해 사용되는 파라미터들 및 하위 그룹 파라미터들의 설정을 포함하는, 비디오 코더(430)의 코딩 조작들을 관리할 수 있다.
앞서 언급된 모든 기능 유닛들의 출력은 엔트로피 코더(445)에서 엔트로피 코딩을 거칠 수 있다. 엔트로피 코더는 예를 들어, 허프만 코딩, 가변 길이 코딩, 산술 코딩 등과 같이 당해 기술분야에서 통상의 지식을 가진 자에게 알려진 기술들에 따라 심볼들을 무손실 압축함으로써, 다양한 기능 유닛들에 의해 생성된 심볼들을 코딩된 비디오 시퀀스로 변환한다.
전송기(440)는 엔트로피 코더(445)에 의해 생성된 코딩된 비디오 시퀀스(들)를 버퍼링하여, 인코딩된 비디오 데이터를 저장할 저장 디바이스에 대한 하드웨어/소프트웨어 링크일 수 있는 통신 채널(460)을 통한 전송을 준비할 수 있다. 전송기(440)는 비디오 코더(430)로부터의 코딩된 비디오 데이터를 전송될 다른 데이터, 예를 들어 코딩된 오디오 데이터 및/또는 보조 데이터 스트림들(소스들은 도시되지 않음)과 병합할 수 있다.
제어기(450)는 인코더(203)의 조작을 관리할 수 있다. 코딩 동안, 제어기(450)는 각각의 코딩된 픽처에 특정 코딩된 픽처 타입을 할당할 수 있으며, 이는 개개의 픽처에 적용될 수 있는 코딩 기술들에 영향을 미칠 수 있다. 예를 들어, 픽처들은 종종, 인트라 픽처(I 픽처), 예측 픽처(P 픽처) 또는 양방향 예측 픽처(B 픽처)로서 할당될 수 있다.
인트라 픽처(I 픽처)는 예측의 소스로서 시퀀스 내의 임의의 다른 프레임을 사용하지 않고 코딩 및 디코딩될 수 있는 것일 수 있다. 일부 비디오 코덱들은 예를 들어, 독립적 디코더 리프레시(IDR: Independent Decoder Refresh) 픽처들을 포함하는 상이한 타입들의 인트라 픽처들을 허용한다. 당해 기술분야에서 통상의 지식을 가진 자는 I 픽처들의 그러한 변형들 그리고 이들 개개의 애플리케이션들 및 특징들을 알고 있다.
예측 픽처(P 픽처)는 각각의 블록의 샘플 값들을 예측하기 위해 최대 하나의 모션 벡터 및 참조 인덱스를 사용하는 인트라 예측 또는 인터 예측을 사용하여 코딩 및 디코딩될 수 있는 것일 수 있다.
양방향 예측 픽처(B 픽처)는 각각의 블록의 샘플 값들을 예측하기 위해 최대 2개의 모션 벡터들 및 참조 인덱스들을 사용하는 인트라 예측 또는 인터 예측을 사용하여 코딩 및 디코딩될 수 있는 것일 수 있다. 유사하게, 다수의 예측 픽처들은 단일 블록의 재구성을 위해 2개보다 많은 참조 픽처들 및 연관된 메타데이터를 사용할 수 있다.
소스 픽처들은 일반적으로, 공간적으로 복수의 샘플 블록들(예를 들어, 각각 4x4, 8x8, 4x8 또는 16x16 샘플들의 블록들)로 세분되고 블록 단위로 코딩될 수 있다. 블록들은 블록들의 개개의 픽처들에 적용된 코딩 할당에 의해 결정된 다른 (이미 코딩된) 블록들을 참조하여 예측 코딩될 수 있다. 예를 들어, I 픽처들의 블록들은 비-예측 코딩될 수 있거나, 이들은 동일한 픽처의 이미 코딩된 블록들을 참조하여 예측(공간 예측 또는 인트라 예측) 코딩될 수 있다. P 픽처들의 픽셀 블록들은 하나의 이전에 코딩된 참조 픽처를 참조하여 시간 예측을 통해 또는 공간 예측을 통해 비-예측 코딩될 수 있다. B 픽처들의 블록들은 하나 또는 2개의 이전에 코딩된 참조 픽처들을 참조하여 시간 예측을 통해 또는 공간 예측을 통해 비-예측 코딩될 수 있다.
비디오 코더(203)는 ITU-T Rec. H.265와 같은 미리 결정된 비디오 코딩 기술 또는 표준에 따라 코딩 조작들을 수행할 수 있다. 비디오 코더(203)의 조작에서, 비디오 코더(203)는 입력 비디오 시퀀스에서 시간적 및 공간적 리던던시들을 활용하는 예측 코딩 조작들을 포함하는 다양한 압축 조작들을 수행할 수 있다. 따라서 코딩된 비디오 데이터는 사용되는 비디오 코딩 기술 또는 표준에 의해 특정된 신택스를 따를 수 있다.
일 실시예에서, 전송기(440)는 인코딩된 비디오와 함께 추가 데이터를 전송할 수 있다. 비디오 코더(430)는 코딩된 비디오 시퀀스의 일부로서 이러한 데이터를 포함할 수 있다. 추가 데이터는 시간적/공간적/SNR 강화 계층들, 다른 형태들의 중복 데이터, 이를테면 중복 픽처들 및 슬라이스들, 부가 확장 정보(SEI) 메시지들, 시각적 사용성 정보(VUI: Visual Usability Information) 파라미터 세트 프래그먼트들 등을 포함할 수 있다.
본 개시내용의 실시예들의 특정 양상들을 보다 상세히 설명하기 전에, 이 설명의 나머지에서 언급되는 몇몇 용어들이 아래에 소개된다.
이하, "서브 픽처"는 일부 경우들에서, 의미론적으로 그룹화되고 변경된 해상도로 독립적으로 코딩될 수 있는 샘플들, 블록들, 매크로블록들, 코딩 유닛들 또는 유사한 엔티티들의 직사각형 배열을 의미한다. 하나 이상의 서브 픽처들이 픽처를 형성할 수 있다. 하나 이상의 코딩된 서브 픽처들은 코딩된 픽처를 형성할 수 있다. 하나 이상의 서브 픽처들이 픽처로 어셈블리될 수 있고, 하나 이상의 서브 픽처들이 픽처로부터 추출될 수 있다. 특정 환경들에서, 하나 이상의 코딩된 서브 픽처들은 샘플 레벨로 트랜스코딩(transcode)하지 않고 압축된 도메인에서 코딩된 픽처로 어셈블리될 수 있고, 동일한 또는 특정 다른 경우들에서, 하나 이상의 코딩된 서브 픽처들이 압축된 도메인에서 코딩된 픽처로부터 추출될 수 있다.
이하, "적응적 해상도 변화"(ARC: Adaptive Resolution Change)는 예를 들어, 참조 픽처 리샘플링(resampling)의 수단에 의해, 코딩된 비디오 시퀀스 내의 픽처 또는 서브 픽처의 해상도의 변화를 허용하는 메커니즘들을 의미한다. 이후, "ARC 파라미터들"은 예를 들어, 필터 파라미터들, 스케일링 팩터들, 출력 및/또는 참조 픽처들의 해상도들, 다양한 제어 플래그들 등을 포함할 수 있는, 적응적 해상도 변화를 수행하는 데 요구되는 제어 정보를 의미한다.
본 개시내용의 실시예들에 따르면, 픽처의 첫 번째 행(및/또는 열)에 위치된 CTU들의 크기는 픽처의 두 번째 행(및/또는 열)에 위치된 CTU들의 크기보다 작을 수 있고, CTU들의 크기는 최상부, 최하부, 좌측 및/또는 우측 픽처 경계들에 위치된 것들을 제외하고 동일할 수 있다.
예를 들어, 도 12 - 도 15를 참조하면, 픽처들(700), (710), (720) 및 (730)은 본 개시내용의 실시예들에 따라 복수의 CTU들로 파티셔닝될 수 있다. 도 12에서, 픽처(700)의 첫 번째 CTU 열(702) 및 마지막 CTU 열(706)에 위치된 CTU들은 픽처(700)의 다른 열들에 위치된 CTU들보다 더 작은 크기를 가질 수 있고, 다른 열들에 위치된 CTU들은 서로 동일한 크기를 가질 수 있다. 도 13에서, 픽처(710)의 첫 번째 CTU 행(704) 및 마지막 CTU 행(708)에 위치된 CTU들은 픽처(710)의 다른 행들에 위치된 CTU들보다 더 작은 크기를 가질 수 있고, 다른 행들에 위치된 CTU들은 서로 동일한 크기를 가질 수 있다. 도 14에서, 픽처(720)의 첫 번째 CTU 행(704), 첫 번째 CTU 열(702), 마지막 CTU 행(708) 및 마지막 CTU 열(706)에 위치된 CTU들은 픽처(720)의 다른 행들/열들에 위치된 CTU들보다 더 작은 크기를 가질 수 있고, 다른 행들/열들에 위치된 CTU들은 서로 동일한 크기를 가질 수 있다. 도 15에서, 첫 번째 CTU 행(704) 및 첫 번째 CTU 열(702)에 위치된 CTU들은 픽처(730)의 다른 행들/열들에 위치된 CTU들보다 더 작은 크기를 가질 수 있고, 다른 행들/열들에 위치된 CTU들은 서로 동일한 크기를 가질 수 있다.
하나 이상의 실시예들에서, 첫 번째 CTU 행 및/또는 열의 폭 및/또는 높이는 시퀀스 파라미터 세트(SPS: sequence parameter set), 픽처 파라미터 세트(PPS: picture parameter set) 또는 슬라이스 헤더와 같은 비트스트림의 고레벨 신택스(HLS: High-Level Syntax)로 시그널링된다.
일 실시예에서, 첫 번째 CTU 행 및/또는 열의 폭 및/또는 높이는 고정 길이 코딩 또는 절단 2진 또는 절단 1진 코딩을 사용함으로써 시그널링될 수 있다.
다른 실시예에서, 첫 번째 CTU 행(및/또는 열)의 폭(및/또는 높이)이 최대 허용 CTU 크기와 동일한지 여부를 지시하기 위해 하나의 플래그가 먼저 시그널링된다. 하나의 플래그가 폭(및/또는 높이)이 최대 허용 CTU 크기와 동일하지 않음을 지시한다면, 제2 플래그는 첫 번째 CTU 행(및/또는 열)의 폭(및/또는 높이)을 지시하도록 추가로 시그널링될 수 있다. 일례로, 고정 길이 코딩이 제2 플래그의 시그널링에 사용될 수 있다.
일 실시예에서, 첫 번째 CTU 행(및/또는 열)의 폭(및/또는 높이)은 2의 거듭제곱으로 제한되고, 첫 번째 CTU 행(및/또는 열)의 폭(및/또는 높이)은 K1보다 크거나 같을 수 있으며, 여기서 K1은 2, 4, 6, 8 등과 같은 양의 정수일 수 있거나, 2의 거듭제곱일 수 있다. 예를 들어, 첫 번째 CTU 행의 높이가 제한될 수 있고 그리고/또는 첫 번째 CTU 열의 폭이 제한될 수 있다.
다른 실시예에서, 첫 번째 CTU 행(및/또는 열)의 폭(및/또는 높이)은 K2의 정수배로 제한될 수 있으며, 여기서 K2는 2, 4, 6, 8, 10, 12, 14, 16 등과 같은 짝수 정수이다. 예를 들어, 첫 번째 CTU 행의 높이가 제한될 수 있고 그리고/또는 첫 번째 CTU 열의 폭이 제한될 수 있다. 일 실시예에서, K2는 2의 거듭제곱이 되도록 추가로 제한될 수 있다. 일 실시예에서, 각각의 코딩된 블록의 폭 및 높이가 2의 거듭제곱임을 보장하기 위해, 마지막 CTU 행에 대한 동일한 경계 취급 규칙들이 첫 번째 CTU 행에 적용될 수 있고, 마지막 CTU 열에 대한 동일한 경계 취급 규칙들이 첫 번째 CTU 열에 적용될 수 있다.
하나 이상의 실시예들에서, 첫 번째 CTU 행(및/또는 열)의 폭(및/또는 높이)이 K3 이상이고, 첫 번째 CTU 행(및/또는 열)의 높이(및/또는 폭)가 K3보다 작으면, 첫 번째 CTU 행(및/또는 열)의 CTU 레벨에서 수평(및/또는 수직) 분할은 허용되지 않는다. K3은 2의 거듭제곱 값일 수 있고, K3은 128 또는 256과 같이 64보다 클 수 있다. 예를 들어, 일 실시예에 따르면, 첫 번째 CTU 행(704)의 폭이 K3 이상이고, 첫 번째 CTU 행(704)의 높이가 K3보다 작으면, 첫 번째 CTU 행(704)에 대한 CTU 레벨에서 수평 분할이 금지될 수 있다. 대안으로 또는 추가로, 첫 번째 CTU 열(702)의 높이가 K3 이상이고 첫 번째 CTU 열(702)의 폭이 K3보다 작으면, 첫 번째 CTU 열(702)에 대한 CTU 레벨에서 수직 분할이 금지되지 않을 수 있다. 첫 번째 CTU 행(704) 및 첫 번째 CTU 열(702)에 대한 위의 조건들이 각각 참인 경우, 코너 CTU(709)의 수평 및 수직 분할(도 15 참조)이 금지될 수 있다. 유사하게, 임의의 다른 코너 CTU의 수평 및 수직 분할은 다른 코너 CTU가 제공되는 CTU 행 및 열이 위의 조건들을 충족시킬 때, 금지될 수 있다.
하나 이상의 실시예들에서, 첫 번째 CTU 행(및/또는 열)의 폭(및/또는 높이)이 K3 이상이고, 첫 번째 CTU 행(및/또는 열)의 높이(및/또는 폭)가 K3보다 작으면, 첫 번째 CTU 행(및/또는 열)의 CTU 레벨에서 수직 TT(및/또는 수평 TT) 분할은 허용되지 않을 수 있다. K3은 2의 거듭제곱 값일 수 있고, K3은 128 또는 256과 같이 64보다 클 수 있다. 예를 들어, 일 실시예에 따르면, 첫 번째 CTU 행(704)의 폭이 K3 이상이고 첫 번째 CTU 행(704)의 높이가 K3보다 작으면, 첫 번째 CTU 행(704)에 대한 CTU 레벨에서 수평 TT 분할이 금지될 수 있다. 대안으로 또는 추가로, 첫 번째 CTU 열(702)의 높이가 K3 이상이고 첫 번째 CTU 열(702)의 폭이 K3보다 작으면, 첫 번째 CTU 열(702)에 대한 CTU 레벨에서 수직 TT 분할이 금지될 수 있다. 첫 번째 CTU 행(704) 및 첫 번째 CTU 열(702)에 대한 위의 조건들이 각각 참인 경우, 코너 CTU(709)의 수평 및 수직 TT 분할(도 15 참조)이 금지될 수 있다. 유사하게, 임의의 다른 코너 CTU의 수평 및 수직 TT 분할은 다른 코너 CTU가 제공되는 CTU 행 및 열이 위의 조건들을 충족시킬 때, 금지될 수 있다.
하나 이상의 실시예들에서, 픽처의 첫 번째 또는 마지막 CTU 행들(및/또는 열들)의 높이(및/또는 폭)만이 최대 CTU 크기보다 작을 수 있고, 픽처의 다른 CTU 행들(및/또는 열들)의 크기는 최대 CTU 크기와 동일할 수 있다. 예를 들어, 도 14에 도시된 바와 같이, 픽처(740)의 첫 번째 CTU 행(704)의 높이 및 첫 번째 CTU 열(702)의 폭은 최대 CTU 크기보다 작을 수 있고, 픽처(720)의 다른 행들/열들은 최대 CTU 크기와 동일할 수 있다.
일 실시예에서, 첫 번째 및/또는 마지막 CTU 행(및/또는 열)이 다른 CTU 행들(및/또는 열들)보다 더 작은 크기를 갖는지 여부를 지시하기 위해, 하나의 플래그가 시퀀스 파라미터 세트(SPS), 픽처 파라미터 세트(PPS) 또는 슬라이스 헤더와 같은 비트스트림의 고레벨 신택스(HLS)에서 시그널링된다.
위에서 설명된 본 개시내용의 실시예들은 지정된 색성분들에만(예를 들어, 루마에만, 크로마에만) 적용되거나, 상이한 색성분들에 상이하게 적용될 수 있다(예컨대, 첫 번째 CTU 행 또는 CTU 열의 상이한 크기들이 상이한 색성분들에 대해 적용될 수 있음).
실시예들에 따르면, 첫 번째 CTU 열의 폭은 다른 나머지 CTU들로부터 디코더에 의해 도출될 수 있다. 실시예들에 따르면, 인코더는 첫 번째 CTU 열(및/또는 행) 및/또는 중간 열(들)(및/또는 행(들))의 크기를 디코더에 특정할 수 있고, 디코더는 지정된 크기(들)에 기반하여 마지막 CTU 열(및/또는 행)의 크기를 도출할 수 있다.
본 개시내용의 실시예들은 적어도 하나의 프로세서 및 컴퓨터 명령들을 저장하는 메모리를 포함할 수 있다. 컴퓨터 명령들은 적어도 하나의 프로세서에 의해 실행될 때, 적어도 하나의 프로세서로 하여금 본 개시내용의 실시예들의 기능들을 수행하게 하도록 구성될 수 있다.
예를 들어, 도 16을 참조하면, 본 개시내용의 디코더(800)는 적어도 하나의 프로세서 및 컴퓨터 명령들을 저장하는 메모리를 포함할 수 있다. 컴퓨터 명령들은 디코딩 코드(810)를 포함할 수 있다. 디코더(800)는 도 2 - 도 3에 예시된 비디오 디코더(210)를 구현할 수 있다.
디코딩 코드(810)는 적어도 하나의 프로세서로 하여금 복수의 CTU들로 파티셔닝된 코딩된 픽처를 디코딩하게 하도록 구성될 수 있으며, 여기서 디코딩 코드(810)는 적어도 하나의 프로세서로 하여금 복수의 CTU들에 기초하여, 코딩된 픽처를 디코딩하게 하도록 구성될 수 있다.
CTU들은 이를테면, 예를 들어 도 12 - 도 15와 관련하여 본 개시내용에서 설명된 실시예들의 CTU 구성들 중 임의의 구성을 가질 수 있다. 예를 들어, 코딩된 픽처의 복수의 CTU들 중 코딩된 픽처의 경계에 인접한 CTU들의 적어도 하나의 행 또는 열은, 복수의 CTU들 중 코딩된 픽처의 어떠한 경계에도 인접하지 않은 각각의 CTU의 대응하는 크기 디멘션보다 더 작은 크기 디멘션을 가질 수 있다.
디코딩 코드(810)는 본 개시내용의 실시예들에 따라 적어도 하나의 프로세서로 하여금 플래그들을 시그널링하게 하도록 추가로 구성될 수 있다. 예를 들어, 디코딩 코드(810)는 적어도 하나의 프로세서로 하여금, CTU들의 적어도 하나의 행 또는 열 중에서 코딩된 픽처의 최상부 경계 또는 좌측 경계에 인접한 첫 번째 행 및/또는 열의 크기 디멘션을 시그널링하게 하도록 구성될 수 있다. 대안으로, 디코딩 코드(810)는 적어도 하나의 프로세서로 하여금: CTU들의 적어도 하나의 행 또는 열 중에서 코딩된 픽처의 좌측 경계 또는 최상부 경계에 인접한 첫 번째 행 및/또는 열의 크기 디멘션이 최대 허용 CTU 크기와 동일한지 여부를 지시하는 제1 플래그를 시그널링하게 하고; 제1 플래그에 기초하여, CTU들의 첫 번째 행 및/또는 열의 크기 디멘션이 최대 허용 CTU 크기와 동일하지 않다고 결정하게 하고; 그리고 결정에 기초하여, CTU들의 첫 번째 행 및/또는 열의 크기 디멘션을 지시하는 제2 플래그를 시그널링하게 하도록 구성될 수 있다.
디코딩 코드(810)는 적어도 하나의 프로세서로 하여금, 본 개시내용에서 설명되는 실시예들의 불허(disallowance) 조건들에 기초하여 CTU 레벨에서의 수평 또는 수직 분할을 허용하지 않게 하고 그리고/또는 수평 트리플 트리(TT) 또는 수직 TT 분할을 허용하지 않게 하도록 추가로 구성될 수 있다. 예를 들어, 디코딩 코드(810)는 적어도 하나의 프로세서로 하여금: CTU들의 적어도 하나의 행 또는 열 중에서 코딩된 픽처의 첫 번째 CTU 행 또는 첫 번째 CTU 열의 크기 디멘션은 미리 결정된 값 이상이고 첫 번째 CTU 행 또는 첫 번째 CTU 열의 다른 크기 디멘션은 미리 결정된 값보다 작다는 결정에 기초하여, CTU들의 적어도 하나의 행 또는 열 중에서 첫 번째 CTU 행 또는 첫 번째 CTU 열에서의 CTU 레벨의 수평 또는 수직 분할을 허용하지 않게 하도록 구성될 수 있으며, 크기 디멘션은 높이 및 폭 중 하나이고, 다른 크기 디멘션은 높이 및 폭 중 다른 하나이며, 미리 결정된 값은 64보다 큰 2의 거듭제곱 값이다. 대안으로 또는 추가로, 디코딩 코드(810)는 적어도 하나의 프로세서로 하여금: CTU들의 적어도 하나의 행 또는 열 중에서 코딩된 픽처의 첫 번째 CTU 행 또는 첫 번째 CTU 열의 크기 디멘션은 미리 결정된 값 이상이고 첫 번째 CTU 행 또는 첫 번째 CTU 열의 다른 크기 디멘션은 미리 결정된 값보다 작다는 결정에 기초하여, CTU들의 적어도 하나의 행 또는 열 중에서 첫 번째 CTU 행 또는 첫 번째 CTU 열에서의 CTU 레벨의 수평 트리플 트리(TT) 또는 수직 TT 분할을 허용하지 않게 하도록 구성될 수 있으며, 크기 디멘션은 높이 및 폭 중 하나이고, 다른 크기 디멘션은 높이 및 폭 중 다른 하나이며, 미리 결정된 값은 64보다 큰 2의 거듭제곱 값이다.
실시예들에 따르면, 디코딩 코드(810)는 또한 적어도 하나의 프로세서로 하여금, 코딩된 픽처를 복수의 CTU들로 파티셔닝하게 하도록 구성될 수 있다.
실시예들에 따르면, 위의 프로세스들에 대응하는 인코더 측 프로세스들은 위의 설명들에 기반하여, 당해 기술분야에서 통상의 지식을 가진 자에 의해 이해되는 바와 같이, 픽처를 인코딩하기 위한 코드를 인코딩함으로써 구현될 수 있다.
위에서 설명된 본 개시내용의 실시예들의 기술들은 컴퓨터 판독 가능 명령들을 사용하여 컴퓨터 소프트웨어로서 구현될 수 있고 하나 이상의 컴퓨터 판독 가능 매체들에 물리적으로 저장될 수 있다. 예를 들어, 도 17은 개시된 청구 대상의 실시예들을 구현하기에 적합한 컴퓨터 시스템(900)을 도시한다.
컴퓨터 소프트웨어는 컴퓨터 중앙 처리 유닛(CPU: central processing unit)들, 그래픽 처리 유닛(GPU: Graphics Processing Unit)들 등에 의해, 직접적으로 또는 해석, 마이크로코드 실행 등을 통해 실행될 수 있는 명령들을 포함하는 코드를 생성하기 위해 어셈블리, 컴파일, 링크 또는 유사한 메커니즘들을 거칠 수 있는 임의의 적절한 기계 코드 또는 컴퓨터 언어를 사용하여 코딩될 수 있다.
명령들은 예를 들어 개인용 컴퓨터들, 태블릿 컴퓨터들, 서버들, 스마트폰들, 게임 디바이스들, 사물 인터넷 디바이스들 등을 포함하는 다양한 타입들의 컴퓨터들 또는 이들의 컴포넌트들 상에서 실행될 수 있다.
컴퓨터 시스템(900)에 대해 도 17에 도시된 컴포넌트들은 본질적으로 예시이며, 본 개시내용의 실시예들을 구현하는 컴퓨터 소프트웨어의 사용 또는 기능의 범위에 대해 어떠한 제한도 제안하도록 의도되지 않는다. 컴포넌트들의 구성이 컴퓨터 시스템(900)의 예시적인 실시예에 예시된 컴포넌트들 중 임의의 컴포넌트 또는 그러한 컴포넌트들의 조합과 관련된 어떠한 의존성이나 요건도 갖는 것으로 해석되지 않아야 한다.
컴퓨터 시스템(900)은 특정 인간 인터페이스 입력 디바이스들을 포함할 수 있다. 그러한 인간 인터페이스 입력 디바이스는 예를 들어, 촉각 입력(이를테면: 키 스트로크(keystroke)들, 스와이프(swipe)들, 데이터 글러브(glove) 움직임들), 오디오 입력(이를테면: 음성, 박수), 시각적 입력(이를테면: 제스처들), 후각적 입력(도시되지 않음)을 통해 하나 이상의 인간 사용자들에 의한 입력에 응답할 수 있다. 인간 인터페이스 디바이스들은 또한, 오디오(이를테면: 스피치, 음악, 주변 사운드), 이미지들(이를테면: 스캔된 이미지들, 정지 이미지 카메라로부터 획득된 사진 이미지들), 비디오(이를테면, 2차원 비디오, 입체 비디오를 포함하는 3차원 비디오)와 같은, 인간에 의한 의식적 입력과 반드시 직접적으로 관련되는 것은 아닌 특정 미디어를 캡처하는 데 사용될 수 있다.
입력 인간 인터페이스 디바이스들은: 키보드(901), 마우스(902), 트랙 패드(903), 터치 스크린(910), 데이터 글러브, 조이스틱(905), 마이크로폰(906), 스캐너(907) 및 카메라(908) 중 하나 이상(각각 도시된 것 중 단 하나)을 포함할 수 있다.
컴퓨터 시스템(900)은 또한 특정 인간 인터페이스 출력 디바이스들을 포함할 수 있다. 그러한 인간 인터페이스 출력 디바이스들은 예를 들어, 촉각 출력, 사운드, 광 및 후각/미각을 통해 하나 이상의 인간 사용자들의 감각들을 자극할 수 있다. 그러한 인간 인터페이스 출력 디바이스들은 촉각 출력 디바이스들(예를 들어, 터치 스크린(910), 데이터 글러브 또는 조이스틱(905)에 의한 촉각 피드백)을 포함할 수 있지만, 입력 디바이스들로서 기능하지 않는 촉각 피드백 디바이스들이 또한 존재할 수 있다. 예를 들어, 그러한 디바이스들은 오디오 출력 디바이스들(이를테면: 스피커들(909), (도시되지 않은) 헤드폰들), 시각적 출력 디바이스들(이를테면, 각각 터치 스크린 입력 능력을 갖거나 갖지 않고, 각각 촉각적 피드백 능력을 갖거나 갖지 않는 CRT 스크린들, LCD 스크린들, 플라즈마 스크린들, OLED 스크린들을 포함하는 스크린들(910) ― 이들 중 일부는 스테레오그래픽 출력과 같은 수단을 통해 2차원 시각적 출력 또는 3차원 이상의 출력을 출력하는 것이 가능할 수 있음 ―; (도시되지 않은) 가상 현실 안경, (도시되지 않은) 홀로그래픽 디스플레이들 및 연기 탱크들), 및 (도시되지 않은) 프린터들일 수 있다.
컴퓨터 시스템(900)은 또한, 인간 액세스 가능 저장 디바이스들 및 이들의 연관된 매체들, 이를테면 CD/DVD 또는 유사한 매체들(921)을 갖는 CD/DVD ROM/RW(920), 썸 드라이브(thumb-drive)(922), 착탈식 하드 드라이브 또는 솔리드 스테이트 드라이브(923), 레거시 자기 매체, 이를테면 (도시되지 않은) 테이프 및 플로피 디스크, 특수 ROM/ASIC/PLD 기반 디바이스들, 이를테면 (도시되지 않은) 보안 동글(security dongle)들 등을 포함하는 광학 매체들을 포함할 수 있다.
당해 기술분야에서 통상의 지식을 가진 자들은 또한, 현재 개시된 청구 대상과 관련하여 사용되는 바와 같은 "컴퓨터 판독 가능 매체들"이라는 용어가 전송 매체들, 반송파들, 또는 다른 일시적인 신호들을 포괄하지 않는다고 이해해야 한다.
컴퓨터 시스템(900)은 또한 하나 이상의 통신 네트워크들에 대한 인터페이스를 포함할 수 있다. 네트워크들은 예를 들어 무선, 유선, 광일 수 있다. 네트워크들은 추가로, 근거리, 광역, 대도시, 차량 및 산업, 실시간, 지연 용인(delay-tolerant) 등일 수 있다. 네트워크들의 예들은 근거리 네트워크들, 이를테면 이더넷, 무선 LAN들, GSM, 3G, 4G, 5G, LTE 등을 포함하는 셀룰러 네트워크들, 케이블 TV, 위성 TV 및 지상 브로드캐스트 TV를 포함하는 TV 유선 또는 무선 광역 디지털 네트워크들, CANBus를 포함하는 차량 및 산업용 등을 포함한다. 특정 네트워크들은 일반적으로, (예를 들어, 컴퓨터 시스템(900)의 USB 포트들과 같은) 특정 범용 데이터 포트들 또는 주변 버스들(949)에 부착된 외부 네트워크 인터페이스 어댑터들을 필요로 하며; 다른 것들은 일반적으로, 아래에서 설명되는 바와 같은 시스템 버스에 대한 부착(예를 들어, PC 컴퓨터 시스템으로의 이더넷 인터페이스 또는 스마트폰 컴퓨터 시스템으로의 셀룰러 네트워크 인터페이스)에 의해 컴퓨터 시스템(900)의 코어에 통합된다. 이러한 네트워크들 중 임의의 네트워크를 사용하여, 컴퓨터 시스템(900)은 다른 엔티티들과 통신할 수 있다. 그러한 통신은 예를 들어, 근거리 또는 광역 디지털 네트워크들을 사용하는 다른 컴퓨터 시스템들에 대해 단방향, 수신 전용(예를 들어, 브로드캐스트 TV), 단방향 송신 전용(예를 들어, 특정 CANbus 디바이스들에 대한 CANbus), 또는 양방향일 수 있다. 그러한 통신은 클라우드 컴퓨팅 환경(955)으로의 통신을 포함할 수 있다. 위에서 설명된 바와 같이, 특정 프로토콜들 및 프로토콜 스택들이 그러한 네트워크들 및 네트워크 인터페이스들 각각에 사용될 수 있다.
앞서 언급한 인간 인터페이스 디바이스들, 인간 액세스 가능 저장 디바이스들 및 네트워크 인터페이스들(954)은 컴퓨터 시스템(900)의 코어(940)에 부착될 수 있다.
코어(940)는 하나 이상의 중앙 처리 유닛(CPU)(941), 그래픽 처리 유닛(GPU)(942), 필드 프로그래밍 가능 게이트 영역(FPGA: Field Programmable Gate Area)들(943) 형태의 특수 프로그래밍 가능 처리 유닛들, 특정 작업들을 위한 하드웨어 가속기들(944) 등을 포함할 수 있다. 이러한 디바이스들은 판독 전용 메모리(ROM: Read-only memory)(945), 랜덤 액세스 메모리(946), 내부 비-사용자 액세스 가능 하드 드라이브들, SSD들 등과 같은 내부 대용량 저장소(947)와 함께, 시스템 버스(948)를 통해 접속될 수 있다. 일부 컴퓨터 시스템들에서, 시스템 버스(948)는 추가 CPU들, GPU 등에 의한 확장들을 가능하게 하도록 하나 이상의 물리적 플러그들의 형태로 액세스 가능할 수 있다. 주변 디바이스들은 코어의 시스템 버스(948)에 직접적으로 또는 주변 버스(949)를 통해 부착될 수 있다. 주변 버스를 위한 아키텍처들은 PCI, USB 등을 포함한다. 그래픽 어댑터(950)가 코어(940)에 포함될 수 있다.
CPU들(941), GPU들(942), FPGA들(943) 및 가속기들(944)은 조합하여, 앞서 언급된 컴퓨터 코드를 구성할 수 있는 특정 명령들을 실행할 수 있다. 그 컴퓨터 코드는 ROM(945) 또는 RAM(946)에 저장될 수 있다. 전이(transitional) 데이터가 또한 RAM(946)에 저장될 수 있는 반면, 영구 데이터는 예를 들어, 내부 대용량 저장소(947)에 저장될 수 있다. 메모리 디바이스들 중 임의의 디바이스에 대한 고속 저장 및 리트리브는 하나 이상의 CPU(941), GPU(942), 대용량 저장소(947), ROM(945) 및 RAM(946) 등과 밀접하게 연관될 수 있는 캐시 메모리의 사용을 통해 가능해질 수 있다.
컴퓨터 판독 가능 매체들은 다양한 컴퓨터 구현 조작들을 수행하기 위한 컴퓨터 코드를 가질 수 있다. 매체 및 컴퓨터 코드는 본 개시내용의 목적들로 특별히 설계 및 구성된 것들일 수 있거나, 이들은 컴퓨터 소프트웨어 분야에서 통상의 지식을 가진 자들에게 잘 알려져 있고 이용 가능한 종류일 수 있다.
제한이 아닌 예로서, 아키텍처(900)를 갖는 컴퓨터 시스템, 그리고 구체적으로 코어(940)는 (CPU들, GPU들, FPGA, 가속기들 등을 포함하는) 프로세서(들)가 하나 이상의 유형(tangible) 컴퓨터 판독 가능 매체들에 구현된 소프트웨어를 실행하는 결과로서 기능을 제공할 수 있다. 그러한 컴퓨터 판독 가능 매체들은 위에서 소개된 바와 같은 사용자 액세스 가능 대용량 저장소뿐만 아니라, 비-일시적 성질의 코어(940)의 특정 저장소, 이를테면 코어 내부 대용량 저장소(947) 또는 ROM(945)과 연관된 매체들일 수 있다. 본 개시내용의 다양한 실시예들을 구현하는 소프트웨어는 그러한 디바이스들에 저장되고 코어(940)에 의해 실행될 수 있다. 컴퓨터 판독 가능 매체는 특정 요구들에 따라 하나 이상의 메모리 디바이스들 또는 칩들을 포함할 수 있다. 소프트웨어는 코어(940) 및 구체적으로는 코어(940) 내의 (CPU, GPU, FPGA 등을 포함하는) 프로세서들로 하여금, RAM(946)에 저장된 데이터 구조들을 정의하는 것과 소프트웨어에 의해 정의된 프로세스들에 따라 그러한 데이터 구조들을 수정하는 것을 포함하여, 본 명세서에서 설명된 특정 프로세스들 또는 특정 프로세스들의 특정 부분들을 실행하게 할 수 있다. 추가로 또는 대안으로서, 컴퓨터 시스템은 본 명세서에서 설명되는 특정 프로세스들 또는 특정 프로세스들의 특정 부분들을 실행하도록 소프트웨어 대신 또는 소프트웨어와 함께 조작할 수 있는 회로(예를 들어: 가속기(944))에 하드와이어링되거나 달리 구현된 로직의 결과로서 기능을 제공할 수 있다. 적절한 경우, 소프트웨어에 대한 참조는 로직을 포함할 수 있고, 그 반대도 가능하다. 컴퓨터 판독 가능 매체에 대한 참조는 적절한 경우, 실행을 위한 소프트웨어를 저장하는 회로(이를테면, 집적 회로(IC: integrated circuit)), 실행을 위한 로직을 구현하는 회로, 또는 이 둘 모두를 포괄할 수 있다. 본 개시내용은 하드웨어와 소프트웨어의 임의의 적절한 조합을 포괄한다.
본 개시내용은 여러 비-제한적인 예시적인 실시예들을 설명했지만, 본 개시내용의 범위 내에 속하는 변경들, 치환들 및 다양한 대체 등가물들이 있다. 따라서 당해 기술분야에서 통상의 지식을 가진 자들은, 본 명세서에서 명시적으로 도시되거나 설명되지는 않지만, 본 개시내용의 원리들을 구현하고 따라서 본 개시내용의 사상 및 범위 내에 있는 다수의 시스템들 및 방법들을 안출할 수 있을 것이라고 인식될 것이다.

Claims (21)

  1. 적어도 하나의 프로세서에 의해 수행되는 방법으로서,
    복수의 코딩 트리 유닛(CTU: coding tree unit)들로 파티셔닝(partition)된 코딩된 픽처(coded picture)를 수신하는 단계 ― 상기 코딩된 픽처의 복수의 CTU들 중 상기 코딩된 픽처의 경계에 인접한 CTU들의 적어도 하나의 행 또는 열은, 상기 복수의 CTU들 중 상기 코딩된 픽처의 어떠한 경계에도 인접하지 않은 각각의 CTU의 대응하는 크기 디멘션(dimension)보다 더 작은 크기 디멘션을 가짐 ―; 및
    상기 복수의 CTU들에 기초하여, 상기 코딩된 픽처를 디코딩하는 단계
    를 포함하며,
    상기 CTU들의 적어도 하나의 행 또는 열은 상기 코딩된 픽처의 최상부 경계 또는 좌측 경계에 각각 인접한, 상기 코딩된 픽처의 첫 번째 CTU 행 또는 첫 번째 CTU 열을 포함하는,
    방법.
  2. 제1항에 있어서,
    상기 복수의 CTU들 중 상기 코딩된 픽처의 어떠한 경계에도 인접하지 않은 각각의 CTU는 동일한 크기를 갖는,
    방법.
  3. 제2항에 있어서,
    상기 CTU들의 적어도 하나의 행 또는 열은 상기 코딩된 픽처의 좌측 경계에 인접한 첫 번째 CTU 열 및 상기 코딩된 픽처의 우측 경계에 인접한 마지막 CTU 열을 포함하고,
    상기 첫 번째 CTU 열 및 상기 마지막 CTU 열은 각각, 상기 복수의 CTU들 중 상기 코딩된 픽처의 어떠한 경계에도 인접하지 않은 각각의 CTU의 폭보다 더 작은 폭을 갖는,
    방법.
  4. 제3항에 있어서,
    상기 CTU들의 적어도 하나의 행 또는 열은 상기 코딩된 픽처의 최상부 경계에 인접한 첫 번째 CTU 행 및 상기 코딩된 픽처의 최하부 경계에 인접한 마지막 CTU 행을 더 포함하고,
    상기 첫 번째 CTU 행 및 상기 마지막 CTU 행은 각각, 상기 복수의 CTU들 중 상기 코딩된 픽처의 어떠한 경계에도 인접하지 않은 각각의 CTU의 높이보다 더 낮은 높이를 갖는,
    방법.
  5. 제2항에 있어서,
    상기 CTU들의 적어도 하나의 행 또는 열은 상기 코딩된 픽처의 최상부 경계에 인접한 첫 번째 CTU 행 및 상기 코딩된 픽처의 최하부 경계에 인접한 마지막 CTU 행을 포함하고,
    상기 첫 번째 CTU 행 및 상기 마지막 CTU 행은 각각, 상기 복수의 CTU들 중 상기 코딩된 픽처의 어떠한 경계에도 인접하지 않은 각각의 CTU의 높이보다 더 낮은 높이를 갖는,
    방법.
  6. 제1항에 있어서,
    상기 코딩된 픽처를 디코딩하는 단계는, 상기 CTU들의 적어도 하나의 행 또는 열 중에서 상기 코딩된 픽처의 최상부 경계 또는 좌측 경계에 인접한 첫 번째 CTU 행 또는 첫 번째 CTU 열의 크기 디멘션을 시그널링하는 단계를 포함하는,
    방법.
  7. 제1항에 있어서,
    상기 첫 번째 CTU 행 또는 상기 첫 번째 CTU 열의 크기 디멘션은 2의 거듭제곱인 양의 정수인, 방법.
  8. 제1항에 있어서,
    상기 코딩된 픽처를 디코딩하는 단계는:
    상기 CTU들의 적어도 하나의 행 또는 열 중에서 상기 코딩된 픽처의 좌측 경계 또는 최상부 경계에 인접한 첫 번째 CTU 행 또는 첫 번째 CTU 열의 크기 디멘션이 최대 허용 CTU 크기와 동일한지 여부를 지시하는 제1 플래그를 시그널링하는 단계;
    상기 제1 플래그에 기초하여, 상기 첫 번째 CTU 행 또는 상기 첫 번째 CTU 열의 크기 디멘션이 상기 최대 허용 CTU 크기와 동일하지 않다고 결정하는 단계; 및
    상기 결정에 기초하여, 상기 첫 번째 CTU 행 또는 상기 첫 번째 CTU 열의 크기 디멘션을 지시하는 제2 플래그를 시그널링하는 단계를 포함하는,
    방법.
  9. 제1항에 있어서,
    상기 코딩된 픽처를 디코딩하는 단계는:
    상기 CTU들의 적어도 하나의 행 또는 열 중에서 상기 코딩된 픽처의 첫 번째 CTU 행 또는 상기 첫 번째 CTU 열의 크기 디멘션은 미리 결정된 값 이상이고 상기 첫 번째 CTU 행 또는 상기 첫 번째 CTU 열의 다른 크기 디멘션은 상기 미리 결정된 값보다 작다는 결정에 기초하여, 상기 CTU들의 적어도 하나의 행 또는 열 중에서 상기 첫 번째 CTU 행 또는 상기 첫 번째 CTU 열에서의 CTU 레벨의 수평 또는 수직 분할을 허용하지 않는 단계를 포함하고,
    상기 크기 디멘션은 높이 및 폭 중 하나이고, 상기 다른 크기 디멘션은 상기 높이 및 상기 폭 중 다른 하나이며,
    상기 미리 결정된 값은 64보다 큰 2의 거듭제곱 값인,
    방법.
  10. 제1항에 있어서,
    상기 코딩된 픽처를 디코딩하는 단계는:
    상기 CTU들의 적어도 하나의 행 또는 열 중에서 상기 코딩된 픽처의 첫 번째 CTU 행 또는 상기 첫 번째 CTU 열의 크기 디멘션은 미리 결정된 값 이상이고 상기 첫 번째 CTU 행 또는 상기 첫 번째 CTU 열의 다른 크기 디멘션은 상기 미리 결정된 값보다 작다는 결정에 기초하여, 상기 CTU들의 적어도 하나의 행 또는 열 중에서 상기 첫 번째 CTU 행 또는 상기 첫 번째 CTU 열에서의 CTU 레벨의 수평 트리플 트리(TT: triple tree) 또는 수직 TT 분할을 허용하지 않는 단계를 포함하고,
    상기 크기 디멘션은 높이 및 폭 중 하나이고, 상기 다른 크기 디멘션은 상기 높이 및 상기 폭 중 다른 하나이며,
    상기 미리 결정된 값은 64보다 큰 2의 거듭제곱 값인,
    방법.
  11. 제1항에 있어서,
    상기 첫 번째 또는 마지막 CTU 행의 높이는 최대 CTU 크기보다 작고, 상기 복수의 CTU들 중 상기 코딩된 픽처의 어떠한 경계에도 인접하지 않은 각각의 CTU는 상기 최대 CTU 크기와 동일한 높이를 가지며, 상기 첫 번째 또는 마지막 CTU 행이 다른 CTU들보다 작은지 여부에 대한 결정은 비트스트림에서 하나의 신택스(syntax)에 의해 지시되거나, 또는
    상기 첫 번째 또는 마지막 CTU 열의 폭이 최대 CTU 크기보다 작으며, 상기 복수의 CTU들 중 상기 코딩된 픽처의 어떠한 경계에도 인접하지 않은 각각의 CTU는 상기 최대 CTU 크기와 동일한 폭을 갖고, 상기 첫 번째 또는 마지막 CTU 열이 다른 CTU들보다 작은지 여부에 대한 결정은 상기 비트스트림에서 하나의 신택스에 의해 지시되는,
    방법.
  12. 시스템으로서,
    컴퓨터 프로그램 코드를 저장하도록 구성된 적어도 하나의 메모리; 및
    상기 컴퓨터 프로그램 코드에 액세스하며 상기 컴퓨터 프로그램 코드에 의해 명령된 대로 조작하도록 구성된 적어도 하나의 프로세서
    를 포함하며,
    상기 컴퓨터 프로그램 코드는, 상기 적어도 하나의 프로세서로 하여금, 복수의 코딩 트리 유닛(CTU)들로 파티셔닝된 코딩된 픽처를 디코딩하게 하도록 구성된 디코딩 코드를 포함하고,
    상기 코딩된 픽처의 복수의 CTU들 중 상기 코딩된 픽처의 경계에 인접한 CTU들의 적어도 하나의 행 또는 열은, 상기 복수의 CTU들 중 상기 코딩된 픽처의 어떠한 경계에도 인접하지 않은 각각의 CTU의 대응하는 크기 디멘션보다 더 작은 크기 디멘션을 가지며,
    상기 디코딩 코드는 상기 적어도 하나의 프로세서로 하여금, 상기 복수의 CTU들에 기초하여, 상기 코딩된 픽처를 디코딩하게 하도록 구성되고,
    상기 CTU들의 적어도 하나의 행 또는 열은 상기 코딩된 픽처의 최상부 경계 또는 좌측 경계에 각각 인접한, 상기 코딩된 픽처의 첫 번째 CTU 행 또는 첫 번째 CTU 열을 포함하는,
    시스템.
  13. 제12항에 있어서,
    상기 복수의 CTU들 중 상기 코딩된 픽처의 어떠한 경계에도 인접하지 않은 각각의 CTU는 동일한 크기를 갖는,
    시스템.
  14. 제13항에 있어서,
    상기 CTU들의 적어도 하나의 행 또는 열은 상기 코딩된 픽처의 좌측 경계에 인접한 첫 번째 CTU 열 및 상기 코딩된 픽처의 우측 경계에 인접한 마지막 CTU 열을 포함하고,
    상기 첫 번째 CTU 열 및 상기 마지막 CTU 열은 각각, 상기 복수의 CTU들 중 상기 코딩된 픽처의 어떠한 경계에도 인접하지 않은 각각의 CTU의 폭보다 더 작은 폭을 갖는,
    시스템.
  15. 제14항에 있어서,
    상기 CTU들의 적어도 하나의 행 또는 열은 상기 코딩된 픽처의 최상부 경계에 인접한 첫 번째 CTU 행 및 상기 코딩된 픽처의 최하부 경계에 인접한 마지막 CTU 행을 더 포함하고,
    상기 첫 번째 CTU 행 및 상기 마지막 CTU 행은 각각, 상기 복수의 CTU들 중 상기 코딩된 픽처의 어떠한 경계에도 인접하지 않은 각각의 CTU의 높이보다 더 낮은 높이를 갖는,
    시스템.
  16. 제13항에 있어서,
    상기 CTU들의 적어도 하나의 행 또는 열은 상기 코딩된 픽처의 최상부 경계에 인접한 첫 번째 CTU 행 및 상기 코딩된 픽처의 최하부 경계에 인접한 마지막 CTU 행을 포함하고,
    상기 첫 번째 CTU 행 및 상기 마지막 CTU 행은 각각, 상기 복수의 CTU들 중 상기 코딩된 픽처의 어떠한 경계에도 인접하지 않은 각각의 CTU의 높이보다 더 낮은 높이를 갖는,
    시스템.
  17. 제12항에 있어서,
    상기 디코딩 코드는 상기 적어도 하나의 프로세서로 하여금, 상기 CTU들의 적어도 하나의 행 또는 열 중에서 상기 코딩된 픽처의 최상부 경계 또는 좌측 경계에 인접한 첫 번째 CTU 행 또는 첫 번째 CTU 열의 크기 디멘션을 시그널링하게 하도록 추가로 구성되는,
    시스템.
  18. 제12항에 있어서,
    상기 디코딩 코드는 상기 적어도 하나의 프로세서로 하여금:
    상기 CTU들의 적어도 하나의 행 또는 열 중에서 상기 코딩된 픽처의 좌측 경계 또는 최상부 경계에 인접한 첫 번째 CTU 행 또는 첫 번째 CTU 열의 크기 디멘션이 최대 허용 CTU 크기와 동일한지 여부를 지시하는 제1 플래그를 시그널링하게 하고;
    상기 제1 플래그에 기초하여, 상기 첫 번째 CTU 행 또는 상기 첫 번째 CTU 열의 크기 디멘션이 상기 최대 허용 CTU 크기와 동일하지 않다고 결정하게 하고; 그리고
    상기 결정에 기초하여, 상기 첫 번째 CTU 행 또는 상기 첫 번째 CTU 열의 크기 디멘션을 지시하는 제2 플래그를 시그널링하게 하도록 추가로 구성되는,
    시스템.
  19. 제12항에 있어서,
    상기 디코딩 코드는 상기 적어도 하나의 프로세서로 하여금:
    상기 CTU들의 적어도 하나의 행 또는 열 중에서 상기 코딩된 픽처의 첫 번째 CTU 행 또는 상기 첫 번째 CTU 열의 크기 디멘션은 미리 결정된 값 이상이고 상기 첫 번째 CTU 행 또는 상기 첫 번째 CTU 열의 다른 크기 디멘션은 상기 미리 결정된 값보다 작다는 결정에 기초하여, 상기 CTU들의 적어도 하나의 행 또는 열 중에서 상기 첫 번째 CTU 행 또는 상기 첫 번째 CTU 열에서의 CTU 레벨의 수평 또는 수직 분할을 허용하지 않게 하도록 추가로 구성되고,
    상기 크기 디멘션은 높이 및 폭 중 하나이고, 상기 다른 크기 디멘션은 상기 높이 및 상기 폭 중 다른 하나이며,
    상기 미리 결정된 값은 64보다 큰 2의 거듭제곱 값인,
    시스템.
  20. 제12항에 있어서,
    상기 디코딩 코드는 상기 적어도 하나의 프로세서로 하여금:
    상기 CTU들의 적어도 하나의 행 또는 열 중에서 상기 코딩된 픽처의 첫 번째 CTU 행 또는 상기 첫 번째 CTU 열의 크기 디멘션은 미리 결정된 값 이상이고 상기 첫 번째 CTU 행 또는 상기 첫 번째 CTU 열의 다른 크기 디멘션은 상기 미리 결정된 값보다 작다는 결정에 기초하여, 상기 CTU들의 적어도 하나의 행 또는 열 중에서 상기 첫 번째 CTU 행 또는 상기 첫 번째 CTU 열에서의 CTU 레벨의 수평 트리플 트리(TT) 또는 수직 TT 분할을 허용하지 않게 하도록 추가로 구성되고,
    상기 크기 디멘션은 높이 및 폭 중 하나이고, 상기 다른 크기 디멘션은 상기 높이 및 상기 폭 중 다른 하나이며,
    상기 미리 결정된 값은 64보다 큰 2의 거듭제곱 값인,
    시스템.
  21. 컴퓨터 명령들을 저장하는 비-일시적 컴퓨터 판독 가능 매체로서,
    상기 컴퓨터 명령들은 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서로 하여금:
    복수의 코딩 트리 유닛(CTU)들로 파티셔닝된 코딩된 픽처를 디코딩하게 하도록 구성되고,
    상기 코딩된 픽처의 복수의 CTU들 중 상기 코딩된 픽처의 경계에 인접한 CTU들의 적어도 하나의 행 또는 열은, 상기 복수의 CTU들 중 상기 코딩된 픽처의 어떠한 경계에도 인접하지 않은 각각의 CTU의 대응하는 크기 디멘션보다 더 작은 크기 디멘션을 가지며,
    상기 컴퓨터 명령들은 상기 적어도 하나의 프로세서로 하여금, 상기 복수의 CTU들에 기초하여, 상기 코딩된 픽처를 디코딩하게 하도록 구성되고,
    상기 CTU들의 적어도 하나의 행 또는 열은 상기 코딩된 픽처의 최상부 경계 또는 좌측 경계에 각각 인접한, 상기 코딩된 픽처의 첫 번째 CTU 행 또는 첫 번째 CTU 열을 포함하는,
    비-일시적 컴퓨터 판독 가능 매체.
KR1020217033556A 2020-02-12 2021-02-03 플렉시블 픽처 파티셔닝 KR20210138083A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202062975505P 2020-02-12 2020-02-12
US62/975,505 2020-02-12
US17/098,918 2020-11-16
US17/098,918 US11412222B2 (en) 2020-02-12 2020-11-16 Flexible picture partitioning
PCT/US2021/016344 WO2021162907A1 (en) 2020-02-12 2021-02-03 Flexible picture partitioning

Publications (1)

Publication Number Publication Date
KR20210138083A true KR20210138083A (ko) 2021-11-18

Family

ID=77177801

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217033556A KR20210138083A (ko) 2020-02-12 2021-02-03 플렉시블 픽처 파티셔닝

Country Status (6)

Country Link
US (3) US11412222B2 (ko)
EP (1) EP3921941A4 (ko)
JP (1) JP7250956B2 (ko)
KR (1) KR20210138083A (ko)
CN (1) CN113785495A (ko)
WO (1) WO2021162907A1 (ko)

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012044707A1 (en) 2010-10-01 2012-04-05 General Instrument Corporation Coding and decoding utilizing picture boundary variability in flexible partitioning
US9591325B2 (en) * 2015-01-27 2017-03-07 Microsoft Technology Licensing, Llc Special case handling for merged chroma blocks in intra block copy prediction mode
GB2557430B (en) * 2016-10-12 2020-01-15 Mediatek Inc Methods and apparatuses of constrained multi-type-tree block partition for video coding
US10911757B2 (en) 2017-09-08 2021-02-02 Mediatek Inc. Methods and apparatuses of processing pictures in an image or video coding system
WO2019072367A1 (en) 2017-10-09 2019-04-18 Huawei Technologies Co., Ltd. APPARATUS AND METHOD FOR IMAGE ENCODING HAVING LIMIT PARTITION PROCESSING
US10931963B2 (en) * 2017-12-07 2021-02-23 Tencent America LLC Method and apparatus for video coding
EP3732880A4 (en) 2017-12-29 2021-04-28 Sharp Kabushiki Kaisha SYSTEMS AND METHODS FOR PARTITIONING VIDEO BLOCKS TO ONE FRAME LIMIT FOR VIDEO ENCODING
WO2019244115A2 (en) * 2018-06-21 2019-12-26 Beijing Bytedance Network Technology Co., Ltd. Automatic partition for cross blocks
US11652991B2 (en) * 2018-06-29 2023-05-16 Sharp Kabushiki Kaisha Video decoding apparatus with picture tile structure

Also Published As

Publication number Publication date
JP2022526007A (ja) 2022-05-20
WO2021162907A1 (en) 2021-08-19
US11412222B2 (en) 2022-08-09
US20220272340A1 (en) 2022-08-25
US20210250583A1 (en) 2021-08-12
US20230421761A1 (en) 2023-12-28
EP3921941A1 (en) 2021-12-15
US11800106B2 (en) 2023-10-24
CN113785495A (zh) 2021-12-10
EP3921941A4 (en) 2022-04-06
JP7250956B2 (ja) 2023-04-03

Similar Documents

Publication Publication Date Title
KR20210118186A (ko) 인트라 픽처 블록 보상을 위한 디코딩된 블록 벡터의 변환
KR102437516B1 (ko) 유연한 트리 구조
EP4066491A1 (en) Signaling of video coding tools supporting various chroma formats
KR20200140344A (ko) 멀티-라인 인트라 예측을 위한 mpm 리스트 생성 방법 및 디바이스
KR102574427B1 (ko) 인트라 예측 모드와 블록 차분 펄스-코드 변조 모드 사이의 상호작용을 위한 방법 및 장치
KR20200140373A (ko) 비디오 코딩을 위한 방법 및 장치
KR20210130808A (ko) 비디오 코딩에서의 최소 코딩 블록 크기의 범위
US11445208B2 (en) Method and apparatus for video coding
KR20210068102A (ko) 예측자 후보 리스트 크기를 시그널링하는 방법 및 장치
KR20200139763A (ko) 다중 라인 인트라 예측을 위한 인트라 보간 필터
KR20210107871A (ko) 비디오 성분을 단색 비디오로서 인코딩하기 위한 코딩 툴들의 시그널링
KR20210145814A (ko) 코딩된 비디오 스트림에서 픽처 헤더를 시그널링하는 방법
JP7357679B2 (ja) 改善された最確モードリスト生成方法
KR20210134406A (ko) 비디오 코딩 방법 및 장치
KR102544105B1 (ko) 멀티-라인 인트라 예측을 위한 모드 리스트 생성
KR20210130223A (ko) 액세스 유닛 구분자 시그널링을 위한 방법
KR20200124275A (ko) 유연한 트리 구조에서의 연접된 코딩 단위들
JP7378485B2 (ja) Qt/bt/ttサイズの改善されたヘッダシンタックス
KR20220122767A (ko) 비디오 코딩을 위한 방법 및 장치
US11800106B2 (en) Flexible picture partitioning
JP7266710B2 (ja) ビデオコーディングのための方法、装置、およびコンピュータプログラム
KR102679144B1 (ko) 인트라 예측 모드와 블록 차분 펄스-코드 변조 모드 사이의 상호작용을 위한 방법 및 장치
JP7504296B2 (ja) 非インターリーブ分離ツリー
KR20240004995A (ko) 스킵 변환 플래그 코딩
KR20220073844A (ko) 비디오 코딩을 위한 방법 및 시스템, 그리고 컴퓨터 판독 가능 매체

Legal Events

Date Code Title Description
A201 Request for examination