KR20200081179A - Method and apparatus for picture splitting for parallel processing - Google Patents

Method and apparatus for picture splitting for parallel processing Download PDF

Info

Publication number
KR20200081179A
KR20200081179A KR1020190040909A KR20190040909A KR20200081179A KR 20200081179 A KR20200081179 A KR 20200081179A KR 1020190040909 A KR1020190040909 A KR 1020190040909A KR 20190040909 A KR20190040909 A KR 20190040909A KR 20200081179 A KR20200081179 A KR 20200081179A
Authority
KR
South Korea
Prior art keywords
tiles
tile
picture
tile group
divided
Prior art date
Application number
KR1020190040909A
Other languages
Korean (ko)
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 에스케이텔레콤 주식회사
Priority to PCT/KR2019/004213 priority Critical patent/WO2019199025A1/en
Priority to CN201980038439.4A priority patent/CN112292855B/en
Priority to US17/046,422 priority patent/US11509937B2/en
Publication of KR20200081179A publication Critical patent/KR20200081179A/en
Priority to US17/803,671 priority patent/US11994345B2/en
Priority to US17/969,946 priority patent/US11778239B2/en
Priority to US17/969,898 priority patent/US11902590B2/en
Priority to US17/969,912 priority patent/US11778238B2/en
Priority to US17/969,934 priority patent/US11792436B2/en
Priority to US18/402,150 priority patent/US20240236374A9/en

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
    • 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/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/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/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)

Abstract

The present disclosure discloses a method and device for dividing a picture for parallel processing. According to one aspect of an embodiment of the present invention, a method for composing one picture comprises the steps of: dividing one picture into tiles; setting information on the divided tiles as a picture level header; setting a plurality of tiles among the divided tiles as one tile group; setting information on the tile group as a tile group header; and configuring a network adaptive layer (NAL) unit by including the tile group and the tile group header.

Description

병렬 처리를 위한 픽처 분할 방법 및 장치{METHOD AND APPARATUS FOR PICTURE SPLITTING FOR PARALLEL PROCESSING}Picture splitting method and apparatus for parallel processing {METHOD AND APPARATUS FOR PICTURE SPLITTING FOR PARALLEL PROCESSING}

본 발명은 병렬 처리를 위한 픽처 분할 방법 및 장치에 관한 것이다. The present invention relates to a picture segmentation method and apparatus for parallel processing.

이 부분에 기술된 내용은 단순히 본 발명에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.The content described in this section merely provides background information for the present invention and does not constitute a prior art.

스마트폰, 태블릿 PC 등 모바일 기기 및 디지털 TV 등의 화면 해상도가 증가하고 디스플레이 장치도 점차 커지고 있다. 이를 지원하기 위해서는 고화질의 동영상을 빠르게 전송하여야 한다. 다행히 통신의 속도가 빨라지고 있으며, 고화질의 동영상을 제공하기 위한 영상 압축 기술들도 개발되고 있다. 또한, 고화질의 동영상을 서비스하기 위해 영상의 압축과 복원에 이용하기 위한 병렬화 기술도 개발되고 있다. 병렬화 기술은 다수의 프로세서를 동시에 사용함으로써, 많은 연산량을 한꺼번에 처리할 수 있게 해 준다. 다만, 동시에 병렬 처리해야 할 데이터가 서로 영향을 미치지 않아야 한다.Mobile devices such as smartphones and tablet PCs, and screen resolutions of digital TVs are increasing, and display devices are gradually increasing. In order to support this, high-definition video must be transmitted quickly. Fortunately, the speed of communication is increasing, and image compression techniques for providing high-quality video are also being developed. In addition, a parallelization technique has been developed for use in compressing and restoring images in order to service high-quality video. The parallelization technology enables simultaneous processing of a large amount of computation by using multiple processors at the same time. However, data to be processed in parallel should not affect each other.

영상은 복수의 픽처들로 구성되고, 각각의 픽처는 복수의 슬라이스 또는 타일로 분할되어 압축된다. 이때 상기 각각의 픽처가 어떻게 분할되고 분할된 픽처에 대한 정보가 어떻게 전달되는지가 영상의 압축 및 복원의 병렬화에 영향을 미친다. 즉, 분할된 슬라이스/타일에 공통적인 특성이 있는지 여부에 따라 영상의 압축 및 복원의 병렬 처리에 영향을 미칠 수 있어 문제가 된다.An image is composed of a plurality of pictures, and each picture is divided into a plurality of slices or tiles and compressed. At this time, how each picture is divided and how information about the divided picture is transmitted affects parallelization of image compression and reconstruction. That is, depending on whether or not the divided slice/tile has a common characteristic, it may be a problem because it may affect parallel processing of image compression and reconstruction.

본 실시예는, 병렬 처리할 수 있도록 픽처를 분할하는 방법 및 분할된 픽처에 대한 정보를 제공하는 방법에 주된 목적이 있다.The present embodiment has a main purpose in a method of dividing a picture to provide parallel processing and a method of providing information about the divided picture.

본 실시예의 일 측면에 의하면, 하나의 픽처를 구성하는 방법은, 상기 하나의 픽처를 타일로 분할하는 단계, 상기 분할된 타일에 대한 정보를 픽처 레벨 헤더로 설정하는 단계, 상기 분할된 타일 중 다수 개의 타일을 하나의 타일 그룹으로 설정하는 단계, 상기 타일 그룹에 대한 정보를 타일 그룹 헤더로 설정하는 단계, 및 상기 타일 그룹 및 상기 타일 그룹 헤더를 포함해 NAL(Network Adaptive Layer) 유닛으로 구성하는 단계를 포함한다. According to an aspect of the present embodiment, a method of configuring a single picture includes: dividing the single picture into tiles, setting information about the divided tiles as a picture level header, and a plurality of the divided tiles Setting up one tile as one tile group, setting information about the tile group as a tile group header, and configuring the tile group and the tile group header as a network adaptive layer (NAL) unit It includes.

본 실시예의 다른 측면에 의하면, 하나의 픽처를 구성하는 영상 부호화 장치는, 상기 하나의 픽처를 타일로 분할하는 블록 분할부, 및 상기 분할된 타일에 대한 정보를 픽처 레벨 헤더로, 상기 분할된 타일 중 다수 개의 타일을 하나의 타일 그룹으로, 상기 타일 그룹에 대한 정보를 타일 그룹 헤더로 설정하고, 상기 타일 그룹 및 상기 타일 그룹 헤더를 포함해 NAL(Network Adaptive Layer) 유닛으로 구성하는 부호화부를 포함한다.According to another aspect of the present embodiment, the video encoding apparatus constituting one picture includes a block dividing unit dividing the one picture into tiles, and information on the divided tile as a picture level header and the segmented tiles Includes an encoder configured to configure a plurality of tiles as one tile group, information about the tile group as a tile group header, and include the tile group and the tile group header as a network adaptive layer (NAL) unit. .

이상에서 설명한 바와 같이 본 실시예에 의하면, 분할된 픽처를 병렬 처리할 수 있어 부호화 및 복호화를 빠르게 할 수 있다.As described above, according to the present embodiment, the divided pictures can be processed in parallel, and encoding and decoding can be accelerated.

도 1은 본 개시의 기술들을 구현할 수 있는 영상 부호화 장치에 대한 예시적인 블록도이다.
도 2는 QTBT 구조를 이용한 블록 분할의 예시도이다.
도 3은 복수의 인트라 예측 모드들에 대한 예시도이다.
도 4는 본 개시의 기술들을 구현할 수 있는 영상 복호화 장치의 예시적인 블록도이다.
도 5은 하나의 픽처를 구성하고 있는 슬라이스의 일 예를 나타낸 도면이다.
도 6은 하나의 픽처를 구성하고 있는 타일의 일 예를 나타낸 도면이다.
도 7은 하나의 픽처에 포함된 MCTS의 일 예를 나타낸 도면이다.
도 8은 일 예로 슬라이스 세그먼트의 NAL 유닛을 나타낸 도면이다.
도 9는 본 개시에 따른 타일 그룹의 일 예를 나타낸 도면이다.
도 10은 일 예로 본 개시에 따른 타일 그룹의 NAL 유닛을 나타낸 도면이다.
도 11은 구체적으로 본 개시에 따른 픽처 내 타일 그룹과 상기 타일 그룹의 NAL 유닛의 일 예를 나타낸 도면이다.
도 12는 구체적으로 본 개시의 다른 실시예에 따른 픽처 내 타일 그룹과 상기 타일 그룹의 NAL 유닛을 나타낸 도면이다.
도 13은 본 개시의 일 실시예로 인터 예측시 타일 그룹 내에서 일부 영역이 다른 영역을 참조하는 것을 나타낸 도면이다.
도 14는 본 개시의 일 실시예에 따라 인터 예측을 수행하는 순서도를 나타낸 도면이다.
도 15는 영상 부호화 장치가 본 개시에 따른 하나의 픽처를 구성하는 방법의 순서도를 나타낸 도면이다.
도 16은 영상 복호화 장치가 본 개시에 따라 하나로 구성된 픽처를 판단하는 방법의 순서도를 나타낸 도면이다.
1 is an exemplary block diagram of an image encoding apparatus capable of implementing the techniques of the present disclosure.
2 is an exemplary diagram of block division using a QTBT structure.
3 is an exemplary diagram for a plurality of intra prediction modes.
4 is an exemplary block diagram of an image decoding apparatus capable of implementing the techniques of the present disclosure.
5 is a diagram showing an example of a slice constituting one picture.
6 is a view showing an example of a tile constituting one picture.
7 is a diagram illustrating an example of MCTS included in one picture.
8 is a diagram illustrating an NAL unit of a slice segment as an example.
9 is a diagram illustrating an example of a tile group according to the present disclosure.
10 is a diagram illustrating an NAL unit of a tile group according to the present disclosure as an example.
11 is a diagram illustrating an example of a tile group in a picture and a NAL unit of the tile group according to the present disclosure.
12 is a diagram specifically showing a tile group in a picture and a NAL unit of the tile group according to another embodiment of the present disclosure.
13 is a diagram illustrating that some regions refer to other regions in a tile group during inter prediction according to an embodiment of the present disclosure.
14 is a flowchart illustrating inter prediction according to an embodiment of the present disclosure.
15 is a flowchart illustrating a method of a video encoding apparatus configuring one picture according to the present disclosure.
16 is a flowchart illustrating a method for a video decoding apparatus to determine a picture composed of one according to the present disclosure.

이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.Hereinafter, some embodiments of the present invention will be described in detail through exemplary drawings. It should be noted that in adding reference numerals to the components of each drawing, the same components have the same reference numerals as possible, even if they are displayed on different drawings. In addition, in describing the present invention, when it is determined that detailed descriptions of related well-known structures or functions may obscure the subject matter of the present invention, detailed descriptions thereof will be omitted.

또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 명세서 전체에서, 어떤 부분이 어떤 구성요소를 '포함', '구비'한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 '…부', '모듈' 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.In addition, in describing the components of the present invention, terms such as first, second, A, B, (a), and (b) may be used. These terms are only for distinguishing the component from other components, and the nature, order, or order of the component is not limited by the term. Throughout the specification, when a part is'included' or'equipped' a component, this means that other components may be further included rather than excluded other components unless specifically stated to the contrary. . In addition,'… Terms such as "unit" and "module" mean a unit that processes at least one function or operation, and may be implemented by hardware or software or a combination of hardware and software.

도 1은 본 개시의 기술들을 구현할 수 있는 영상 부호화 장치에 대한 예시적인 블록도이다.1 is an exemplary block diagram of an image encoding apparatus capable of implementing the techniques of the present disclosure.

영상 부호화 장치는 블록 분할부(110), 예측부(120), 감산기(130), 변환부(140), 양자화부(145), 부호화부(150), 역양자화부(160), 역변환부(165), 가산기(170), 필터부(180) 및 메모리(190)를 포함한다. 영상 부호화 장치는 각 구성요소가 하드웨어 칩으로 구현될 수 있으며, 또는 소프트웨어로 구현되고 하나 이상의 마이크로프로세서가 각 구성요소에 대응하는 소프트웨어의 기능을 실행하도록 구현될 수도 있다.The image encoding apparatus includes a block division unit 110, a prediction unit 120, a subtractor 130, a transformation unit 140, a quantization unit 145, an encoding unit 150, an inverse quantization unit 160, and an inverse transformation unit ( 165), an adder 170, a filter unit 180 and a memory 190. In the video encoding apparatus, each component may be implemented by a hardware chip, or may be implemented by software, and one or more microprocessors may be implemented to execute functions of software corresponding to each component.

하나의 영상(비디오)는 복수의 픽처들로 구성된다. 각 픽처들은 복수의 영역으로 분할되고 각 영역마다 부호화가 수행된다. 예를 들어, 하나의 픽처는 하나 이상의 슬라이스(slice) 또는/및 타일(Tile)로 분할되고, 각 슬라이스 또는 타일은 하나 이상의 CTU(Coding Tree Unit)로 분할된다. 그리고 각 CTU는 트리 구조에 의해 하나 이상의 CU(Coding Unit)들로 분할된다. 각 CU에 적용되는 정보들은 CU의 신택스로서 부호화되고, 하나의 CTU에 포함된 CU들에 공통적으로 적용되는 정보는 CTU의 신택스로서 부호화된다. 또한, 하나의 타일 내의 모든 블록들에 공통적으로 적용되는 정보는 타일의 신택스로서 부호화되거나 다수 개의 타일을 모아 놓은 타일 그룹의 신택스로서 부호화되며, 하나의 픽처들을 구성하는 모든 블록들에 적용되는 정보는 픽처 파라미터 셋(PPS, Picture Parameter Set) 혹은 픽처 헤더에 부호화된다. 나아가, 복수의 픽처가 공통으로 참조하는 정보들은 시퀀스 파라미터 셋(SPS, Sequence Parameter Set)에 부호화된다. 그리고 하나 이상의 SPS가 공통으로 참조하는 정보들은 비디오 파라미터 셋(VPS, Video Parameter Set)에 부호화된다.One image (video) is composed of a plurality of pictures. Each picture is divided into a plurality of regions, and encoding is performed for each region. For example, one picture is divided into one or more slices and/or tiles, and each slice or tile is divided into one or more coding tree units (CTUs). And each CTU is divided into one or more coding units (CUs) by a tree structure. Information applied to each CU is encoded as the syntax of the CU, and information commonly applied to CUs included in one CTU is encoded as the syntax of the CTU. In addition, information commonly applied to all blocks in one tile is encoded as the syntax of a tile or encoded as a syntax of a tile group in which a plurality of tiles are collected, and information applied to all blocks constituting one picture is It is encoded in a picture parameter set (PPS) or a picture header. Furthermore, information commonly referred to by a plurality of pictures is encoded in a sequence parameter set (SPS). In addition, information commonly referenced by one or more SPSs is encoded in a video parameter set (VPS).

블록 분할부(110)는 CTU(Coding Tree Unit)의 크기를 결정한다. CTU의 크기에 대한 정보(CTU size)는 SPS 또는 PPS 의 신택스로서 부호화되어 영상 복호화 장치로 전달된다. 블록 분할부(110)는 영상을 구성하는 각 픽처(picture)를 결정된 크기의 복수의 CTU(Coding Tree Unit)로 분할한 이후에, CTU를 트리 구조(tree structure)를 이용하여 반복적으로(recursively) 분할한다. 트리 구조에서의 리프 노드(leaf node)가 부호화의 기본 단위인 CU(coding unit)가 된다. 트리 구조로는 상위 노드(혹은 부모 노드)가 동일한 크기의 네 개의 하위 노드(혹은 자식 노드)로 분할되는 쿼드트리(QuadTree, QT), 또는 상위 노드가 두 개의 하위 노드로 분할되는 바이너리트리(BinaryTree, BT), 또는 상위 노드가 1:2:1 비율로 세 개의 하위 노드로 분할되는 터너리트리(TernaryTree, TT), 또는 이러한 QT 구조, BT 구조 및 TT 구조 중 하나 이상을 혼용한 구조일 수 있다. 예컨대, QTBT(QuadTree plus BinaryTree) 구조가 사용될 수 있고, 또는 QTBTTT(QuadTree plus BinaryTree TernaryTree) 구조가 사용될 수 있다.The block dividing unit 110 determines the size of a coding tree unit (CTU). Information about the size of the CTU (CTU size) is encoded as a syntax of the SPS or PPS and transmitted to the video decoding apparatus. The block dividing unit 110 divides each picture constituting an image into a plurality of coding tree units (CTUs) of a determined size, and then recursively uses the CTU using a tree structure. Divide. A leaf node in a tree structure becomes a coding unit (CU), which is a basic unit of encoding. The tree structure includes a quad tree (QuadTree, QT) in which a parent node (or parent node) is divided into four sub-nodes (or child nodes) of the same size, or a binary tree (BinaryTree) in which a parent node is divided into two sub-nodes. , BT), or a ternary tree in which the upper node is divided into three lower nodes in a 1:2:1 ratio, or a structure in which one or more of these QT structures, BT structures, and TT structures are mixed. have. For example, a QTBT (QuadTree plus BinaryTree) structure may be used, or a QTBTTT (QuadTree plus BinaryTree TernaryTree) structure may be used.

도 2는 QTBTTT 분할 트리 구조를 보인다. 도 2에서 보는 바와 같이, CTU는 먼저 QT 구조로 분할될 수 있다. 쿼드트리 분할은 분할 블록(splitting block)의 크기가 QT에서 허용되는 리프 노드의 최소 블록 크기(MinQTSize)에 도달할 때까지 반복될 수 있다. QT 구조의 각 노드가 하위 레이어의 4개의 노드들로 분할되는지 여부를 지시하는 제1 플래그(QT_split_flag)는 부호화부(150)에 의해 부호화되어 영상 복호화 장치로 시그널링된다.2 shows a QTBTTT split tree structure. As shown in FIG. 2, the CTU may first be divided into a QT structure. The quadtree split may be repeated until the size of the splitting block reaches the minimum block size (MinQTSize) of the leaf node allowed in QT. The first flag (QT_split_flag) indicating whether each node of the QT structure is divided into four nodes of a lower layer is encoded by the encoder 150 and signaled to the video decoding apparatus.

QT의 리프 노드가 BT에서 허용되는 루트 노드의 최대 블록 크기(MaxBTSize)보다 크지 않은 경우, BT 구조 또는 TT 구조 중 어느 하나 이상으로 더 분할될 수 있다. BT 구조 및/또는 TT 구조에서는 복수의 분할 방향이 존재할 수 있다. 예컨대, 해당 노드의 블록이 가로로 분할하는 방향과 세로로 분할하는 방향 두 가지가 존재할 수 있다. 도 2와 같이, BTTT 분할이 시작되면, 노드들이 분할되었는지 여부를 지시하는 제2 플래그(BTTT_split_flag)와, 분할이 되었다면 추가적으로 분할 방향(vertical 혹은 horizontal)을 나타내는 플래그 및/또는 분할 타입(Binary 혹은 Ternary)을 나타내는 플래그가 부호화부(150)에 의해 부호화되어 영상 복호화 장치로 시그널링된다.If the leaf node of QT is not larger than the maximum block size (MaxBTSize) of the root node allowed by BT, it may be further divided into any one or more of BT structure or TT structure. In the BT structure and/or the TT structure, a plurality of split directions may exist. For example, there may be two directions in which a block of a corresponding node is divided horizontally and a vertically divided direction. As illustrated in FIG. 2, when BTTT splitting is started, a second flag (BTTT_split_flag) indicating whether nodes are split, a flag indicating additional splitting direction (vertical or horizontal) and/or splitting type (Binary or Ternary) The flag indicating) is encoded by the encoding unit 150 and signaled to the video decoding apparatus.

트리 구조의 다른 예시로서 QTBT가 사용되는 경우, 해당 노드의 블록을 동일 크기의 두 개 블록으로 가로로 분할하는 타입(즉, symmetric horizontal splitting)과 세로로 분할하는 타입(즉, symmetric vertical splitting) 두 가지가 존재할 수 있다. BT 구조의 각 노드가 하위 레이어의 블록으로 분할되는지 여부를 지시하는 분할 플래그(split_flag) 및 분할되는 타입을 지시하는 분할 타입 정보는 부호화부(150)에 의해 부호화되어 영상 복호화 장치로 전달된다. 한편, 해당 노드의 블록을 서로 비대칭 형태의 두 개의 블록으로 분할하는 타입이 추가로 더 존재할 수도 있다. 비대칭 형태로는 해당 노드의 블록을 1:3의 크기 비율을 가지는 두 개의 직사각형 블록으로 분할하는 형태를 포함할 수 있고, 혹은 해당 노드의 블록을 대각선 방향으로 분할하는 형태를 포함할 수도 있다.When QTBT is used as another example of a tree structure, there are two types of horizontally dividing a block of a corresponding node into two blocks of the same size (i.e., symmetric horizontal splitting) and a vertically dividing type (i.e., symmetric vertical splitting). Branches can exist. The split flag (split_flag) indicating whether each node of the BT structure is divided into blocks of a lower layer and split type information indicating a split type are encoded by the encoder 150 and transmitted to an image decoding apparatus. On the other hand, there may be further a type of dividing a block of a corresponding node into two blocks having an asymmetric shape. The asymmetric form may include a form of dividing a block of a corresponding node into two rectangular blocks having a size ratio of 1:3, or may include a form of dividing a block of a corresponding node diagonally.

CU는 CTU로부터의 QTBT 또는 QTBTTT 분할에 따라 다양한 크기를 가질 수 있다. 이하에서는, 부호화 또는 복호화하고자 하는 CU(즉, QTBTTT의 리프 노드)에 해당하는 블록을 '현재블록'이라 칭한다.CU may have various sizes according to QTBT or QTBTTT division from CTU. Hereinafter, a block corresponding to a CU (ie, a leaf node of QTBTTT) to be encoded or decoded is referred to as a'current block'.

예측부(120)는 현재블록을 예측하여 예측블록을 생성한다. 예측부(120)는 인트라 예측부(122)와 인터 예측부(124)를 포함한다. The prediction unit 120 predicts the current block to generate a prediction block. The prediction unit 120 includes an intra prediction unit 122 and an inter prediction unit 124.

일반적으로, 픽처 내 현재블록들은 각각 예측적으로 코딩될 수 있다. 현재블록의 예측은 (현재블록을 포함하는 픽처로부터의 데이터를 사용하는) 인트라 예측 기술 또는 (현재블록을 포함하는 픽처 이전에 코딩된 픽처로부터의 데이터를 사용하는) 인터 예측 기술을 사용하여 일반적으로 수행될 수 있다. 인터 예측은 단방향 예측과 양방향 예측 모두를 포함한다.In general, each of the current blocks in a picture can be predictively coded. Prediction of the current block is generally performed using an intra prediction technique (using data from a picture containing the current block) or an inter prediction technique (using data from a picture coded before the picture containing the current block). Can be performed. Inter prediction includes both one-way prediction and two-way prediction.

인트라 예측부(122)는 현재블록이 포함된 현재 픽처 내에서 현재블록의 주변에 위치한 픽셀(참조 픽셀)들을 이용하여 현재블록 내의 픽셀들을 예측한다. 예측 방향에 따라 복수의 인트라 예측모드가 존재한다. 예컨대, 도 3에서 보는 바와 같이, 복수의 인트라 예측모드는 planar 모드와 DC 모드를 포함하는 비방향성 모드와 65 개의 방향성 모드를 포함할 수 있다. 각 예측모드에 따라 사용할 주변 픽셀과 연산식이 다르게 정의된다.The intra prediction unit 122 predicts pixels in the current block using pixels (reference pixels) located around the current block in the current picture including the current block. There are a plurality of intra prediction modes according to the prediction direction. For example, as shown in FIG. 3, the plurality of intra prediction modes may include 65 non-directional modes including a planar mode and a DC mode. Peripheral pixels to be used and expressions are defined differently for each prediction mode.

인트라 예측부(122)는 현재블록을 부호화하는데 사용할 인트라 예측 모드를 결정할 수 있다. 일부 예들에서, 인트라 예측부(122)는 여러 인트라 예측 모드들을 사용하여 현재블록을 인코딩하고, 테스트된 모드들로부터 사용할 적절한 인트라 예측 모드를 선택할 수도 있다. 예를 들어, 인트라 예측부(122)는 여러 테스트된 인트라 예측 모드들에 대한 레이트 왜곡(rate-distortion) 분석을 사용하여 레이트 왜곡 값들을 계산하고, 테스트된 모드들 중 최선의 레이트 왜곡 특징들을 갖는 인트라 예측 모드를 선택할 수도 있다.The intra prediction unit 122 may determine an intra prediction mode to be used to encode the current block. In some examples, the intra prediction unit 122 may encode the current block using various intra prediction modes and select an appropriate intra prediction mode to use from the tested modes. For example, the intra prediction unit 122 calculates rate distortion values using rate-distortion analysis for various tested intra prediction modes, and has the best rate distortion characteristics among the tested modes. The intra prediction mode can also be selected.

인트라 예측부(122)는 복수의 인트라 예측 모드 중에서 하나의 인트라 예측 모드를 선택하고, 선택된 인트라 예측 모드에 따라 결정되는 주변 픽셀(참조 픽셀)과 연산식을 사용하여 현재블록을 예측한다. 선택된 인트라 예측 모드에 대한 정보는 부호화부(150)에 의해 부호화되어 영상 복호화 장치로 전달된다.The intra prediction unit 122 selects one intra prediction mode from among a plurality of intra prediction modes, and predicts a current block by using neighboring pixels (reference pixels) and arithmetic expressions determined according to the selected intra prediction mode. Information on the selected intra prediction mode is encoded by the encoding unit 150 and transmitted to the image decoding apparatus.

인터 예측부(124)는 움직임 보상 과정을 통해 현재블록에 대한 예측블록을 생성한다. 현재 픽처보다 먼저 부호화 및 복호화된 참조픽처 내에서 현재블록과 가장 유사한 블록을 탐색하고, 그 탐색된 블록을 이용하여 현재블록에 대한 예측블록을 생성한다. 그리고, 현재 픽처 내의 현재블록과 참조픽처 내의 예측블록 간의 변위(displacement)에 해당하는 움직임벡터(motion vector)를 생성한다. 일반적으로, 움직임 추정은 루마(luma) 성분에 대해 수행되고, 루마 성분에 기초하여 계산된 모션 벡터는 루마 성분 및 크로마 성분 모두에 대해 사용된다. 현재블록을 예측하기 위해 사용된 참조픽처에 대한 정보 및 움직임벡터에 대한 정보를 포함하는 움직임 정보는 부호화부(150)에 의해 부호화되어 영상 복호화 장치로 전달된다.The inter prediction unit 124 generates a prediction block for the current block through a motion compensation process. The block most similar to the current block is searched in the reference picture that is encoded and decoded before the current picture, and a predicted block for the current block is generated using the searched block. Then, a motion vector corresponding to displacement between the current block in the current picture and the prediction block in the reference picture is generated. In general, motion estimation is performed on luma components, and motion vectors calculated based on luma components are used for both luma components and chroma components. The motion information including information about the reference picture and motion vector used to predict the current block is encoded by the encoder 150 and transmitted to the video decoding apparatus.

감산기(130)는 현재블록으로부터 인트라 예측부(122) 또는 인터 예측부(124)에 의해 생성된 예측블록을 감산하여 잔차 블록을 생성한다.The subtractor 130 subtracts the prediction block generated by the intra prediction unit 122 or the inter prediction unit 124 from the current block to generate a residual block.

변환부(140)는 공간 영역의 픽셀 값들을 가지는 잔차 블록 내의 잔차 신호를 주파수 도메인의 변환 계수로 변환한다. 변환부(140)는 잔차 블록 내의 잔차 신호들을 현재블록의 크기를 변환 단위로 사용하여 변환할 수 있으며, 또는 잔차 블록을 더 작은 복수의 서브 블록을 분할하고 서브 블록 크기의 변환 단위로 잔차 신호들을 변환할 수도 있다. 잔차 블록을 더 작은 서브 블록으로 분할하는 방법은 다양하게 존재할 수 있다. 예컨대, 기정의된 동일한 크기의 서브 블록으로 분할할 수도 있으며, 또는 잔차 블록을 루트 노드로 하는 QT(quadtree) 방식의 분할을 사용할 수도 있다.The transform unit 140 converts a residual signal in a residual block having pixel values in a spatial domain into a transform coefficient in the frequency domain. The converter 140 may convert residual signals in the residual block by using the size of the current block as a transformation unit, or divide the residual block into a plurality of smaller sub-blocks, and convert the residual signals into sub-block-size transformation units. You can also convert. There may be various ways to divide the residual block into smaller sub-blocks. For example, it may be divided into predefined sub-blocks of the same size, or a quadtree (QT)-based partitioning using a residual block as a root node may be used.

양자화부(145)는 변환부(140)로부터 출력되는 변환 계수들을 양자화하고, 양자화된 변환 계수들을 부호화부(150)로 출력한다.The quantization unit 145 quantizes transform coefficients output from the transform unit 140 and outputs the quantized transform coefficients to the encoder 150.

부호화부(150)는 양자화된 변환 계수들을 CABAC(Context-based Adaptive Binary Arithmetic Code) 등의 부호화 방식을 사용하여 부호화하여 비트 스트림을 생성한다. 이러한 부호화는 통상적으로 복수의 가용한 스캔 방식 중 하나를 이용하여 양자화된 변환 계수에 대해 수행된다.The encoder 150 generates a bit stream by encoding quantized transform coefficients using an encoding method such as CABAC (Context-based Adaptive Binary Arithmetic Code). Such encoding is typically performed on quantized transform coefficients using one of a plurality of available scan schemes.

또한, 부호화부(150)는 블록 분할과 관련된 CTU size, QT 분할 플래그, BT 분할 플래그, 분할 방향, 분할 타입 등의 정보를 부호화하여, 영상 복호화 장치가 영상 부호화 장치와 동일하게 블록을 분할할 수 있도록 한다.In addition, the encoder 150 encodes information such as a CTU size, a QT split flag, a BT split flag, a split direction, and a split type related to block splitting, so that the video decoding apparatus can split blocks in the same way as the video coding apparatus. To make.

또한, 부호화부(150)는 현재블록이 인트라 예측에 의해 부호화되었는지 아니면 인터 예측에 의해 부호화되었는지 여부를 지시하는 예측 타입에 대한 정보를 부호화하고, 예측 타입에 따라 인트라 예측정보(즉, 인트라 예측 모드에 대한 정보) 또는 인터 예측정보(참조픽처 및 움직임벡터에 대한 정보)를 부호화한다.Also, the encoding unit 150 encodes information about a prediction type indicating whether the current block is encoded by intra prediction or inter prediction, and intra prediction information (that is, intra prediction mode) according to the prediction type. Information) or inter prediction information (reference picture and motion vector information).

역양자화부(160)는 양자화부(145)로부터 출력되는 양자화된 변환 계수들을 역양자화하여 변환 계수들을 생성한다. 역변환부(165)는 역양자화부(160)로부터 출력되는 변환 계수들을 주파수 도메인으로부터 공간 도메인으로 변환하여 잔차블록을 복원한다.The inverse quantization unit 160 inversely quantizes the quantized transform coefficients output from the quantization unit 145 to generate transform coefficients. The inverse transform unit 165 restores the residual block by transforming transform coefficients output from the inverse quantization unit 160 from the frequency domain to the spatial domain.

가산부(170)는 복원된 잔차블록과 예측부(120)에 의해 생성된 예측블록을 가산하여 현재블록을 복원한다. 복원된 현재블록 내의 픽셀들은 다음 순서의 블록을 인트라 예측할 때 참조 픽셀로서 사용된다.The adder 170 restores the current block by adding the reconstructed residual block and the predicted block generated by the predictor 120. The pixels in the reconstructed current block are used as reference pixels when intra prediction of the next block.

필터부(180)는 블록 기반의 예측 및 변환/양자화로 인해 발생하는 블록킹 아티팩트(blocking artifacts), 링잉 아티팩트(ringing artifacts), 블러링 아티팩트(blurring artifacts) 등을 줄이기 위해 복원된 픽셀들에 대한 필터링을 수행한다. 필터부(180)는 디블록킹 필터(182)와 SAO(Sample Adaptive Offset) 필터(184)를 포함할 수 있다.The filter unit 180 filters the reconstructed pixels to reduce blocking artifacts, ringing artifacts, and blurring artifacts caused by block-based prediction and transformation/quantization. To perform. The filter unit 180 may include a deblocking filter 182 and a sample adaptive offset (SAO) filter 184.

디블록킹 필터(180)는 블록 단위의 부호화/복호화로 인해 발생하는 블록킹 현상(blocking artifact)을 제거하기 위해 복원된 블록 간의 경계를 필터링하고, SAO 필터(184)는 디블록킹 필터링된 영상에 대해 추가적인 필터링을 수행한다. SAO 필터(184)는 손실 부호화(lossy coding)로 인해 발생하는 복원된 픽셀과 원본 픽셀 간의 차이를 보상하기 위해 사용되는 필터이다.The deblocking filter 180 filters the boundary between the restored blocks to remove blocking artifacts caused by block-level encoding/decoding, and the SAO filter 184 adds additional deblocking filtered images to the deblocking filter. Filtering is performed. The SAO filter 184 is a filter used to compensate for a difference between a reconstructed pixel and an original pixel caused by lossy coding.

디블록킹 필터(182) 및 SAO 필터(184)를 통해 필터링된 복원 블록은 메모리(190)에 저장한다. 한 픽처 내의 모든 블록들이 복원되면, 복원된 픽처는 이후에 부호화하고자 하는 픽처 내의 블록을 인터 예측하기 위한 참조 픽처로 사용된다.The reconstructed blocks filtered through the deblocking filter 182 and the SAO filter 184 are stored in the memory 190. When all blocks in one picture are reconstructed, the reconstructed picture is used as a reference picture for inter prediction of a block in a picture to be encoded.

도 4는 본 개시의 기술들을 구현할 수 있는 영상 복호화 장치의 예시적인 블록도이다.4 is an exemplary block diagram of an image decoding apparatus capable of implementing the techniques of the present disclosure.

영상 복호화 장치는 복호화부(410), 역양자화부(420), 역변환부(430), 예측부(440), 가산기(450) 등을 포함하는 영상 복원기(400)와, 필터부(460) 및 메모리(470)를 포함한다. 도 1의 영상 부호화 장치와 마찬가지로, 영상 복호화 장치는 각 구성요소가 하드웨어 칩으로 구현될 수 있으며, 또는 소프트웨어로 구현되고 마이크로프로세서가 각 구성요소에 대응하는 소프트웨어의 기능을 실행하도록 구현될 수도 있다.The image decoding apparatus includes an image reconstructor 400 including a decoder 410, an inverse quantization unit 420, an inverse transform unit 430, a prediction unit 440, an adder 450, and a filter unit 460. And memory 470. Similar to the image encoding apparatus of FIG. 1, the image decoding apparatus may be implemented with each component implemented as a hardware chip, or may be implemented with software and a microprocessor may execute functions of software corresponding to each component.

복호화부(410)는 영상 부호화 장치로부터 수신한 비트 스트림을 복호화하여 블록 분할과 관련된 정보를 추출하여 복호화하고자 하는 현재블록을 결정하고, 현재블록을 복원하기 위해 필요한 예측 정보와 잔차신호에 대한 정보 등을 추출한다.The decoder 410 decodes the bit stream received from the video encoding apparatus, extracts information related to block partitioning, determines a current block to be decoded, prediction information necessary for restoring the current block, information about a residual signal, and the like. To extract.

복호화부(410)는 SPS (Sequence Parameter Set) 또는 PPS (Picture Parameter Set)로부터 CTU size에 대한 정보를 추출하여 CTU의 크기를 결정하고, 픽처를 결정된 크기의 CTU로 분할한다. 그리고 CTU를 트리 구조의 최상위 레이어, 즉, 루트 노드로 결정하고, CTU에 대한 분할 정보를 추출함으로써 CTU를 트리 구조를 이용하여 분할한다. 예컨대, QTBTTT 구조를 사용하여 CTU를 분할하는 경우, 먼저 QT의 분할과 관련된 제1 플래그(QT_split_flag)를 추출하여 각 노드를 하위 레이어의 네 개의 노드로 분할한다. 그리고, QT의 리프 노드에 해당하는 노드에 대해서는 BTTT의 분할과 관련된 제2 플래그(BTTT_split_flag) 및 분할 방향(vertical / horizontal) 및/또는 분할 타입(binary / ternary) 정보를 추출하여 해당 리프 노드를 BTTT 구조로 분할한다. 이를 통해 QT의 리프 노드 이하의 각 노드들을 BT 또는 TT 구조로 반복적으로(recursively) 분할한다.The decoder 410 extracts information about the CTU size from a Sequence Parameter Set (SPS) or a Picture Parameter Set (PSP) to determine the size of the CTU, and divides the picture into CTUs of the determined size. Then, the CTU is determined as the top layer of the tree structure, that is, the root node, and the CTU is divided by using the tree structure by extracting the segmentation information for the CTU. For example, when the CTU is split using the QTBTTT structure, first, the first flag (QT_split_flag) related to the splitting of the QT is extracted, and each node is divided into four nodes of a lower layer. And, for the node corresponding to the leaf node of the QT, the second flag (BTTT_split_flag) and split direction (vertical / horizontal) and/or split type (binary / ternary) information related to the split of BTTT are extracted and the corresponding leaf node is BTTT Divide into structures. Through this, each node below the leaf node of QT is recursively divided into a BT or TT structure.

또 다른 예로서, QTBTTT 구조를 사용하여 블록을 분할하는 경우, 먼저 분할 여부에 대한 정보(예를 들어, 플래그)를 추출하고, 해당 블록이 분할된 경우 분할 타입 정보를 추출한다. 분할 타입이 QT인 경우, 각 노드를 하위 레이어에 해당하는 네 개의 노드들로 분할한다. 분할 타입이 QT 분할의 리프 노드(QT 분할이 더 이상 발생하지 않는 노드) 타입 즉, BT 또는 TT로 분할되었음을 나타내는 경우, 추가적으로 분할 방향에 대한 정보 및 BT 구조인지 TT 구조인지를 구별하는 분할 타입 정보를 추출하여 BT 또는 TT 구조로 분할한다. 다른 예로서, QTBT 구조를 사용하여 CTU를 분할하는 경우, QT의 분할과 관련된 제1 플래그(QT_split_flag)를 추출하여 각 노드를 하위 레이어의 네 개의 노드로 분할한다. 그리고, QT의 리프 노드에 해당하는 노드에 대해서는 BT로 더 분할되는지 여부를 지시하는 분할 플래그(split_flag) 및 분할 방향 정보를 추출한다.As another example, when a block is divided using a QTBTTT structure, information (eg, a flag) for partitioning is first extracted, and partition type information is extracted when the corresponding block is divided. When the division type is QT, each node is divided into four nodes corresponding to lower layers. If the segmentation type indicates that the QT segmentation is a leaf node (a node in which the QT segmentation no longer occurs) type, that is, segmented by BT or TT, additionally, information about the segmentation direction and segmentation type information that distinguishes whether the structure is a BT or TT structure Is extracted and split into BT or TT structures. As another example, when the CTU is split using the QTBT structure, the first flag (QT_split_flag) related to the division of the QT is extracted, and each node is divided into four nodes of a lower layer. Then, a split flag (split_flag) and split direction information indicating whether or not to be further split by BT is extracted for a node corresponding to a leaf node of QT.

한편, 복호화부(410)는 트리 구조의 분할을 통해 복호화하고자 하는 현재블록을 결정하게 되면, 현재블록이 인트라 예측되었는지 아니면 인터 예측되었는지를 지시하는 예측 타입에 대한 정보를 추출한다.On the other hand, when determining a current block to be decoded through partitioning of a tree structure, the decoder 410 extracts information about a prediction type indicating whether the current block is intra predicted or inter predicted.

예측 타입 정보가 인트라 예측을 지시하는 경우, 복호화부(410)는 현재블록의 인트라 예측정보(인트라 예측 모드)에 대한 신택스를 추출한다.When the prediction type information indicates intra prediction, the decoding unit 410 extracts syntax for intra prediction information (intra prediction mode) of the current block.

예측 타입 정보가 인터 예측을 지시하는 경우, 복호화부(410)는 인터 예측정보에 대한 신택스, 즉, 움직임벡터 및 그 움직임벡터가 참조하는 참조픽처를 나타내는 정보를 추출한다.When the prediction type information indicates inter prediction, the decoder 410 extracts syntax for the inter prediction information, that is, information indicating a motion vector and a reference picture referenced by the motion vector.

한편, 복호화부(410)는 잔차신호에 대한 정보로서 현재블록의 양자화된 변환계수들에 대한 정보를 추출한다.Meanwhile, the decoding unit 410 extracts information about quantized transform coefficients of the current block as information about the residual signal.

역양자화부(420)는 양자화된 변환계수들을 역양자화하고, 역변환부(430)는 역양자화된 변환계수들을 주파수 도메인으로부터 공간 도메인으로 역변환하여 잔차신호들을 복원함으로써 현재블록에 대한 잔차블록을 생성한다.The inverse quantization unit 420 inverse quantizes the quantized transform coefficients, and the inverse transform unit 430 inversely transforms the inverse quantized transform coefficients from the frequency domain to the spatial domain to restore residual signals to generate a residual block for the current block. .

예측부(440)는 인트라 예측부(442) 및 인터 예측부(444)를 포함한다. 인트라 예측부(442)는 현재블록의 예측 타입인 인트라 예측일 때 활성화되고, 인터 예측부(444)는 현재블록의 예측 타입인 인트라 예측일 때 활성화된다.The prediction unit 440 includes an intra prediction unit 442 and an inter prediction unit 444. The intra prediction unit 442 is activated when intra prediction is a prediction type of the current block, and the inter prediction unit 444 is activated when intra prediction is a prediction type of the current block.

인트라 예측부(442)는 복호화부(410)로부터 추출된 인트라 예측 모드에 대한 신택스로부터 복수의 인트라 예측 모드 중 현재블록의 인트라 예측 모드를 결정하고, 인트라 예측 모드에 따라 현재블록 주변의 참조 픽셀들을 이용하여 현재블록을 예측한다.The intra prediction unit 442 determines an intra prediction mode of a current block among a plurality of intra prediction modes from syntax for the intra prediction mode extracted from the decoding unit 410, and determines reference pixels around the current block according to the intra prediction mode. Use to predict the current block.

인터 예측부(444)는 복호화부(410)로부터 추출된 인트라 예측 모드에 대한 신택스를 이용하여 현재블록의 움직임 벡터와 그 움직임벡터가 참조하는 참조픽처를 결정하고, 움직임벡터와 참조픽처를 이용하여 현재블록을 예측한다.The inter prediction unit 444 determines a motion vector of a current block and a reference picture referred to by the motion vector using syntax for the intra prediction mode extracted from the decoding unit 410, and uses the motion vector and the reference picture. Predict the current block.

가산기(450)는 역변환부로부터 출력되는 잔차블록과 인터 예측부 또는 인트라 예측부로부터 출력되는 예측블록을 가산하여 현재블록을 복원한다. 복원된 현재블록 내의 픽셀들은 이후에 복호화할 블록을 인트라 예측할 때의 참조픽셀로서 활용된다.The adder 450 restores the current block by adding the residual block output from the inverse transform unit and the prediction block output from the inter prediction unit or the intra prediction unit. The pixels in the reconstructed current block are used as a reference pixel in intra prediction of a block to be decoded later.

영상 복원기(400)에 의해 CU들에 해당하는 현재블록들을 순차적으로 복원함으로써, CU들로 구성된 CTU, CTU들로 구성된 픽처가 복원된다.By sequentially reconstructing the current blocks corresponding to the CUs by the image reconstructor 400, a CTU composed of CUs and a picture composed of CTUs are reconstructed.

필터부(460)는 디블록킹 필터(462) 및 SAO 필터(464)를 포함한다. 디블록킹 필터(462)는 블록 단위의 복호화로 인해 발생하는 블록킹 현상(blocking artifact)를 제거하기 위해 복원된 블록 간의 경계를 디블록킹 필터링한다. SAO 필터(464)는, 손실 부호화(lossy coding)으로 인해 발생하는 복원된 픽셀과 원본 픽셀 간의 차이를 보상하기 위해, 디블록킹 필터링 이후의 복원된 블록에 대해 추가적인 필터링을 수행한다. 디블록킹 필터(462) 및 SAO 필터(464)를 통해 필터링된 복원 블록은 메모리(470)에 저장한다. 한 픽처 내의 모든 블록들이 복원되면, 복원된 픽처는 이후에 부호화하고자 하는 픽처 내의 블록을 인터 예측하기 위한 참조 픽처로 사용된다.The filter unit 460 includes a deblocking filter 462 and a SAO filter 464. The deblocking filter 462 deblocks the boundary between the reconstructed blocks in order to remove blocking artifacts caused by block-by-block decoding. The SAO filter 464 performs additional filtering on the reconstructed block after deblocking filtering to compensate for the difference between the reconstructed pixel and the original pixel caused by lossy coding. The reconstructed blocks filtered through the deblocking filter 462 and the SAO filter 464 are stored in the memory 470. When all blocks in one picture are reconstructed, the reconstructed picture is used as a reference picture for inter prediction of a block in a picture to be encoded.

본 개시는 분할된 픽처를 병렬 처리하기 위해 영상 부호화 장치가 어떻게 픽처를 분할하고, 상기 분할된 픽처에 대한 정보를 어떻게 구성하여 전달할지에 대해 제시한다.The present disclosure proposes how an image encoding apparatus divides a picture and processes and configures information about the divided picture to process the divided picture in parallel.

앞서, 픽처를 분할하는 방법에 대해 간략하게 설명하였지만, 여기서는 보다 자세하게 설명한다.Previously, a method of dividing a picture has been briefly described, but will be described in more detail here.

픽처를 분할하는 첫 번째 방법은 픽처를 슬라이스(slice)로 분할하는 것이다. 하나의 픽처는 하나 이상의 슬라이스로 구성될 수 있다. 하나의 픽처는 CTU 단위로 분할되어, 부호화 및 복호화를 가능하게 한다. 이때 상기 하나의 픽처는 라스터 스캔(raster scan) 순으로 분할될 수 있다.The first way to split a picture is to split the picture into slices. One picture may be composed of one or more slices. One picture is divided into CTU units to enable encoding and decoding. At this time, the one picture may be divided in the order of raster scan.

하나의 슬라이스는 하나 이상의 슬라이스 세그먼트(slice segment)로 구성될 수 있다. 슬라이스 세그먼트에는 독립 슬라이스 세그먼트와 종속 슬라이스 세그먼트(또는 의존 슬라이스 세그먼트), 두 종류가 있다. 상기 독립 슬라이스 세그먼트는 인터 예측, 인트라 예측, 코딩 모드 및 엔트로피 코딩시 다른 슬라이스 세그먼트에 종속적이지 않으며, 독립 슬라이스 세그먼트에 대한 헤더 정보가 존재한다. 반면, 상기 종속 슬라이스 세그먼트는 인터 예측, 인트라 예측, 코딩 모드 및 엔트로피 코딩시 다른 선행하는 독립 슬라이스 세그먼트에 종속적이다. 상기 종속 슬라이스 세그먼트는 상기 종속 슬라이스 세그먼트가 종속하는 독립 슬라이스 세그먼트의 헤더 정보를 대부분 참조하며, 일부만 별도의 헤더 정보로 전송한다.One slice may be composed of one or more slice segments. There are two types of slice segments: independent slice segments and dependent slice segments (or dependent slice segments). The independent slice segment is not dependent on other slice segments in inter prediction, intra prediction, coding mode and entropy coding, and header information for the independent slice segment exists. On the other hand, the dependent slice segment is dependent on other preceding independent slice segments in inter prediction, intra prediction, coding mode and entropy coding. The dependent slice segment mostly refers to the header information of the independent slice segment to which the dependent slice segment depends, and transmits only part of the header information as separate header information.

도 5는 하나의 픽처를 구성하고 있는 슬라이스의 일 예를 나타낸 도면이다.5 is a diagram illustrating an example of a slice constituting one picture.

도 5에서 하나의 픽처는 두 개의 슬라이스(510, 520)로 구성되어 있다. 제1 슬라이스(510)는 하나의 독립 슬라이스 세그먼트(512)와 두 개의 종속 슬라이스 세그먼트(514, 516)로 구성되어 있다. 제2 슬라이스(520)는 하나의 독립 슬라이스 세그먼트로 구성되어 있다. 슬라이스 사이에는 슬라이스 경계(slice boundary)(530)가 존재한다. 슬라이스 경계(530)는 가로축 경계의 형태로만 존재할 수 있다. 참고로, 제2 슬라이스(520)와 같이 하나의 슬라이스는 독립 슬라이스 세그먼트만으로도 구성될 수 있다.In FIG. 5, one picture is composed of two slices 510 and 520. The first slice 510 is composed of one independent slice segment 512 and two dependent slice segments 514 and 516. The second slice 520 is composed of one independent slice segment. A slice boundary 530 exists between slices. The slice boundary 530 may exist only in the form of a horizontal axis boundary. For reference, as in the second slice 520, one slice may be composed of only independent slice segments.

아래의 [표 1]과 [표 2]는 슬라이스에 대한 신택스를 나타낸 것이다.Tables 1 and 2 below show syntax for slices.

구체적으로, [표 1]은 PPS의 일 예를 나타낸 것이다. PPS에는 픽처 내에 종속 슬라이스 세그먼트의 포함 여부를 나타내는 플래그(dependent_slice_segments_enabled_flag)가 포함되어 있다.Specifically, [Table 1] shows an example of the PPS. The PPS includes a flag (dependent_slice_segments_enabled_flag) indicating whether a dependent slice segment is included in a picture.

pic_parameter_set_rbsp( ) {pic_parameter_set_rbsp( ) { pps_pic_parameter_set_id pps_pic_parameter_set_id pps_seq_parameter_set_id pps_seq_parameter_set_id dependent_slice_segments_enabled_flagdependent_slice_segments_enabled_flag } }

아래의 [표 2]는 슬라이스 세그먼트의 헤더 정보의 일 예를 나타낸 것이다. [Table 2] below shows an example of header information of a slice segment.

slice_segment_header( ) {slice_segment_header( ) { first_slice_segment_in_pic_flagfirst_slice_segment_in_pic_flag if( nal_unit_type >= BLA_W_LP && nal_unit_type <= RSV_IRAP_VCL23 ) if( nal_unit_type >= BLA_W_LP && nal_unit_type <= RSV_IRAP_VCL23) no_output_of_prior_pics_flag no_output_of_prior_pics_flag slice_pic_parameter_set_id slice_pic_parameter_set_id if( !first_slice_segment_in_pic_flag ) { if( !first_slice_segment_in_pic_flag) { if( dependent_slice_segments_enabled_flag ) if( dependent_slice_segments_enabled_flag) dependent_slice_segment_flagdependent_slice_segment_flag slice_segment_addressslice_segment_address } } if( !dependent_slice_segment_flag ) { if( !dependent_slice_segment_flag) { } } if(tiles_enabled_flag | | entropy_coding_sync_enabled_flag) { if(tiles_enabled_flag | | entropy_coding_sync_enabled_flag) { num_entry_point_offsets num_entry_point_offsets if( num_entry_point_offsets > 0 ) { if( num_entry_point_offsets> 0) { offset_len_minus1 offset_len_minus1 for( i = 0; i < num_entry_point_offsets; i++ ) for( i = 0; i <num_entry_point_offsets; i++) entry_point_offset_minus1[ i ] entry_point_offset_minus1[ i ] } } } } }}

픽처 내 첫 번째 슬라이스 세그먼트는 무조건 독립 슬라이스 세그먼트가 된다. 따라서, 슬라이스 세그먼트의 헤더 정보에는 첫 번째 슬라이스 세그먼트인지를 나타내는 플래그(first_slice_segment_in_pic_flag), 첫 번째 슬라이스 세그먼트를 제외한 나머지 슬라이스 세그먼트에 대해서는 독립 슬라이스 세그먼트인지 또는 종속 슬라이스 세그먼트인지를 나타내는 플래그(dependent_slice_segment_flag)와, 슬라이스 세그먼트의 어드레스를 나타내는 신택스(slice_segment_address)가 포함된다.The first slice segment in the picture is an independent slice segment. Therefore, in the header information of the slice segment, a flag indicating whether it is the first slice segment (first_slice_segment_in_pic_flag), and a flag indicating whether the slice segment except the first slice segment is an independent slice segment or a dependent slice segment (dependent_slice_segment_flag), and a slice segment A syntax (slice_segment_address) indicating the address of is included.

두 번째 방법은 픽처를 하나 이상의 타일(tile)로 분할하고, 하나 이상의 타일을 하나의 타일 그룹(tile group)으로 묶는 것으로, 슬라이스와 마찬가지로 하나의 픽처는 하나 이상의 타일 및/또는 타일 그룹으로 구성될 수 있다. 하나의 픽처가 일정 크기/단위로 분할되면, 타일은 일정 단위를 기준으로 다수 개의 열(column) 및 행(row)으로 분할된 형태를 의미한다. 즉, 하나의 타일 크기는 일정 단위의 배수 값이다. 예컨대, 일정 단위가 CTU 인 경우, 하나의 픽처는 CTU 단위로 분할되고, 타일은 하나의 픽처를 CTU 단위로 다수 개의 열(column) 및 행(row)으로 분할된 것으로, 독립적으로 부호화 및 복호화를 가능하게 한다. 타일은 인트라 예측 및 엔트로피 코딩시 다른 타일에 종속적이지 않다. 즉, 타일은 인트라 예측 및 엔트로피 코딩시 항상 독립적으로 수행된다. 다만, 인터 예측의 경우 인코더 이슈로 두거나 PPS, 타일 그룹 헤더 (TGH: tile group header), SEI (supplement enhancement information)와 같은 형식으로 관련 정보를 전송할 수 있다. 타일의 인-루프 필터링시 다른 타일에 종속 여부는 PPS 및/또는 TGH의 플래그로 제어 가능하다.The second method is to divide a picture into one or more tiles, and group one or more tiles into one tile group. Like a slice, one picture may be composed of one or more tiles and/or tile groups. Can. When one picture is divided into a certain size/unit, the tile refers to a form divided into a plurality of columns and rows based on a certain unit. That is, one tile size is a multiple of a certain unit. For example, when a certain unit is CTU, one picture is divided into CTU units, and a tile is divided into a plurality of columns and rows by one picture in CTU units, and independently encoding and decoding. It is possible. Tiles are not dependent on other tiles in intra prediction and entropy coding. That is, tiles are always independently performed in intra prediction and entropy coding. However, in the case of inter prediction, related information may be transmitted as an encoder issue or in a format such as PPS, tile group header (TGH), and supplemental enhancement information (SEI). Whether to depend on other tiles in the in-loop filtering of tiles can be controlled by flags of PPS and/or TGH.

도 6은 하나의 픽처를 구성하고 있는 타일의 일 예를 나타낸 도면이다.6 is a view showing an example of a tile constituting one picture.

도 6에서 하나의 픽처는 3 columns 및 3 rows으로 분할되어, 9개의 타일로 구성되어 있다. 하나의 픽처를 구성하는 타일은 라스터 스캔(raster scan) 순으로 부호화 또는 복호화될 수 있으며, 하나의 타일을 구성하는 다수의 CTU도 라스터 스캔 순으로 부호화 또는 복호화될 수 있다. 도 6에 도시된 번호는 CTU의 번호로, 부호화 또는 복호화되는 라스터 스캔 순이 될 수 있다. In FIG. 6, one picture is divided into 3 columns and 3 rows, and is composed of 9 tiles. Tiles constituting one picture may be encoded or decoded in the order of raster scan, and multiple CTUs constituting one tile may be encoded or decoded in the order of raster scan. The number shown in FIG. 6 is a CTU number, and may be in the order of raster scan to be encoded or decoded.

한편, 세로로 분할되는 타일에는 세로축 경계(column boundary)(610, 615)가, 가로로 분할되는 타일에는 가로축 경계(row boundary)(620, 625)가 존재한다. 타일은 분할하는 방법에 따라 균등 분할 또는 개별 분할 모두 가능하다. On the other hand, vertically divided tiles have columnar boundaries 610 and 615, and horizontally divided tiles have row boundary 620 and 625. Tiles can be divided equally or individually depending on how you divide them.

아래의 [표 3]은 타일에 대한 신택스의 일 예를 나타낸 것이다. 구체적으로, [표 3]은 PPS의 일 예를 나타낸 것이다.[Table 3] below shows an example of syntax for tiles. Specifically, [Table 3] shows an example of the PPS.

pic_parameter_set_rbsp( ) {pic_parameter_set_rbsp( ) { tiles_enabled_flagtiles_enabled_flag if( tiles_enabled_flag ) { if( tiles_enabled_flag) { num_tile_columns_minus1num_tile_columns_minus1 num_tile_rows_minus1num_tile_rows_minus1 uniform_spacing_flaguniform_spacing_flag if( !uniform_spacing_flag ) { if( !uniform_spacing_flag) { for( i = 0; i < num_tile_columns_minus1; i++ ) for( i = 0; i <num_tile_columns_minus1; i++) column_width_minus1[ i ] column_width_minus1[ I ] for( i = 0; i < num_tile_rows_minus1; i++ ) for( i = 0; i <num_tile_rows_minus1; i++) row_height_minus1[ i ] row_height_minus1[ I ] } } loop_filter_across_tiles_enabled_flagloop_filter_across_tiles_enabled_flag } }

PPS에는 타일 기능의 on/off를 지시하는 플래그(tiles_enabled_flag)가 포함된다. 상기 플래그가 on이면, 타일의 크기를 지정할 수 있는 다수의 신택스들이 추가적으로 PPS에 포함된다. 예를 들어, 상기 플래그가 on이면, 픽처의 세로축 경계 기준으로 분할된 타일의 개수에서 1을 뺀 개수를 나타내는 신택스(num_tile_columns_minus1), 픽처의 가로축 경계 기준으로 분할된 타일의 개수에서 1을 뺀 개수를 나타내는 신택스(num_tile_rows_minus1), 타일이 가로 및 세로로 균등하게 분할되었음을 나타내는 플래그(uniform_spacing_flag) 등이 PPS에 포함될 수 있다. 만약, 타일이 가로 및 세로로 균등하게 분할되지 않았을 경우(uniform_spacing_flag = off)에는, 세로축 경계 기준으로 각 타일에 대한 너비를 나타내는 신택스(column_width_minus1)와 가로축 경계 기준으로 각 타일에 대한 높이를 나타내는 신택스(row_height_minus1)가 추가로 PPS에 포함될 수 있다. 마지막으로, 타일 간 경계 영역에서 루프 필터의 실행 여부를 나타내는 플래그(loop_filter_across_tiles_enabled_flag)도 PPS에 포함될 수 있다.The PPS includes a flag (tiles_enabled_flag) indicating on/off of the tile function. When the flag is on, a plurality of syntaxes that can specify the size of a tile are additionally included in the PPS. For example, when the flag is on, syntax (num_tile_columns_minus1) indicating the number of tiles divided based on the vertical axis boundary of the picture minus 1, and the number of tiles divided by the horizontal axis boundary of the picture minus 1 The PPS may include a syntax (num_tile_rows_minus1) indicating, and a flag (uniform_spacing_flag) indicating that tiles are equally divided horizontally and vertically. If the tiles are not evenly divided horizontally and vertically (uniform_spacing_flag = off), the syntax (column_width_minus1) indicating the width for each tile based on the vertical axis boundary and the syntax (the height representing each tile based on the horizontal axis boundary) ( row_height_minus1) may be additionally included in the PPS. Finally, a flag (loop_filter_across_tiles_enabled_flag) indicating whether to execute the loop filter in the inter-tile boundary area may also be included in the PPS.

그밖에, 서로 다른 타일간 인터 예측시 참조 여부를 서술하는 MCTS(motion constrained tile set)는 SEI(supplement enhancement information) 메시지에 포함될 수 있다. 아래의 [표 4]는 MCTS에 대한 신택스의 일 예를 나타낸 것이다.In addition, a motion constrained tile set (MCTS) describing whether or not to refer to inter-tile inter prediction may be included in a supplemental enhancement information (SEI) message. [Table 4] below shows an example of syntax for MCTS.

temporal_motion_constrained_tile_sets( payloadSize ) {temporal_motion_constrained_tile_sets( payloadSize) { mc_all_tiles_exact_sample_value_match_flag mc_all_tiles_exact_sample_value_match_flag each_tile_one_tile_set_flag each_tile_one_tile_set_flag if( !each_tile_one_tile_set_flag ) { if( !each_tile_one_tile_set_flag) { limited_tile_set_display_flag limited_tile_set_display_flag num_sets_in_message_minus1num_sets_in_message_minus1 for( i = 0; i <= num_sets_in_message_minus1; i++ ) { for( i = 0; i <= num_sets_in_message_minus1; i++) { mcts_id[ i ] mcts_id[i] if( limited_tile_set_display_flag ) if( limited_tile_set_display_flag) display_tile_set_flag[ i ] display_tile_set_flag[ i ] num_tile_rects_in_set_minus1[ i ] num_tile_rects_in_set_minus1[ I ] for( j = 0; j <= num_tile_rects_in_set_minus1[ i ]; j++ ) { for( j = 0; j <= num_tile_rects_in_set_minus1[ i ]; j++) { top_left_tile_index[ i ][ j ] top_left_tile_index[ i ][ j ] bottom_right_tile_index[ i ][ j ] bottom_right_tile_index[ I ][ j ] } } if( !mc_all_tiles_exact_sample_value_match_flag ) if( !mc_all_tiles_exact_sample_value_match_flag) mc_exact_sample_value_match_flag[ i ] mc_exact_sample_value_match_flag[ i ] } } } else { } else { } } }}

MCTS에는 하나의 픽처 내에 존재하는 타일 셋의 개수를 나타내는 신택스(num_sets_in_message_minus1), 각각의 타일 셋을 구성하는 타일 rectangular의 개수를 나타내는 신택스(num_tile_rects_in_set_minus1), 각각의 타일 rectangular를 구성하는 타일의 인덱스를 나타내는 신택스(top_left_tile_index[i][j], bottom_right_tile_index[i][j]) 등이 포함될 수 있다.In MCTS, syntax (num_sets_in_message_minus1) indicating the number of tile sets existing in one picture, syntax (num_tile_rects_in_set_minus1) indicating the number of tile rectangles constituting each tile set, and syntax indicating an index of tiles constituting each tile rectangular (top_left_tile_index[i][j], bottom_right_tile_index[i][j]).

도 7은 하나의 픽처에 포함된 MCTS의 일 예를 나타낸 도면이다.7 is a diagram illustrating an example of MCTS included in one picture.

도 7에 따르면, 하나의 픽처는 48개의 타일로 구성되어 있다. 도 7에 도시된 번호는 타일 인덱스를 나타낸다. 상기 하나의 픽처는 하나의 타일 셋(710)을 포함하며, 상기 하나의 타일 셋은 두 개의 타일 rectangular(720, 730)를 포함한다. 첫 번째 타일 rectangular(720)는 3개의 타일을 포함하며, 좌측 상단의 타일 인덱스는 16이며, 우측 하단의 타일 인덱스는 32이다. 두 번째 타일 rectangular(730)은 9개의 타일을 포함하며, 좌측 상단의 타일 인덱스는 21이며, 우측 하단의 타일 인덱스는 39이다. 하나의 타일 셋에 속하는 타일 간에는 인터 예측시 서로 참조가 가능하다.According to FIG. 7, one picture is composed of 48 tiles. The number shown in Fig. 7 indicates a tile index. The one picture includes one tile set 710, and the one tile set includes two tiles rectangular (720, 730). The first tile rectangular (720) includes three tiles, the upper left tile index is 16, and the lower right tile index is 32. The second tile rectangular (730) includes 9 tiles, the upper left tile index is 21, and the lower right tile index is 39. Tiles belonging to one tile set can be referred to each other during inter prediction.

도 7의 MCTS를 [표 4]의 MCTS에 대한 신택스를 이용해 나타내면, If the MCTS of FIG. 7 is expressed using syntax for the MCTS of [Table 4],

num_sets_in_message_minus1 = 0;num_sets_in_message_minus1 = 0;

mcts_id[0] = 0;mcts_id[0] = 0;

num_tile_rects_in_set_minus1[0] = 1;num_tile_rects_in_set_minus1[0] = 1;

{top_left_tile_index[0][0] = 16, bottom_right_tile_index[0][0] = 32},{top_left_tile_index[0][0] = 16, bottom_right_tile_index[0][0] = 32},

{top_left_tile_index[0][1] = 21, bottom_right_tile_index[0][1] = 39};{top_left_tile_index[0][1] = 21, bottom_right_tile_index[0][1] = 39};

과 같이 나타낼 수 있다. Can be represented as

픽처의 병렬 처리를 위해서는 주로 슬라이스가 이용되며, 부호화/복호화와 관련된 정보는 슬라이스 헤더에 포함되어 전송된다. 반면, 타일의 경우, 별도의 헤더는 없으며, 타일과 관련된 정보 중 일부가 SEI(supplement enhancement information) 메시지에 포함되어 전송된다.Slices are mainly used for parallel processing of pictures, and information related to encoding/decoding is included in a slice header and transmitted. On the other hand, in the case of a tile, there is no separate header, and some of the tile-related information is transmitted in a supplementary enhancement information (SEI) message.

한편, 슬라이스의 경우 경계가 가로축으로만 결정될 수 있지만, 타일의 경우 경계가 가로축뿐만 아니라 세로축으로도 결정될 수 있다. 현재 영상 부호화/복호화 장치의 대역 처리를 위한 용량 및 성능이 월등히 향상됨에 따라 기존 슬라이스와 같은 행 단위의 처리 방식이 병렬 처리와 품질 향상에 제약을 줄 수 있다. 이에 본 개시에서는 병렬 처리 및 분산 처리에 타일을 이용하면서 슬라이스의 특징을 보완한 다양한 방법을 제시한다. 구체적으로, 본 개시에서는 분할된 하나의 픽처를 어떻게 타일로 구성하고, 타일에 대한 정보를 어떻게 전달할 지에 대해 제안한다.Meanwhile, in the case of slices, the boundary may be determined only on the horizontal axis, but in the case of tiles, the boundary may be determined on the vertical axis as well as the horizontal axis. As the capacity and performance for the current image encoding/decoding device band processing is significantly improved, a row-wise processing method such as a conventional slice may limit parallel processing and quality improvement. Accordingly, the present disclosure proposes various methods of supplementing the characteristics of slices while using tiles for parallel processing and distributed processing. Specifically, the present disclosure proposes how to configure a divided picture into tiles and how to transfer information about tiles.

앞서 설명한 바와 같이 본 개시에 따른 '타일'도 하나의 픽처를 가로축 및 세로축으로 분할한 것일 수 있다. 그러나 본 개시에 따른 타일 및/또는 타일 그룹은 NAL(Network Abstraction Layer)을 구성하는 기본 단위일 수 있으며, 슬라이스 세그먼트와 유사하게 다른 타일 및/또는 타일 그룹에 종속적(또는 의존적)이거나 다른 타일 및/또는 타일 그룹에 대해 독립적일 수 있다. 그 외에도 본 개시에 따른 타일/타일 그룹은 다양한 정보를 포함할 수 있다.As described above, the'tile' according to the present disclosure may also be one picture divided into horizontal and vertical axes. However, the tile and/or tile group according to the present disclosure may be a basic unit constituting a Network Abstraction Layer (NAL), and similarly to (or dependent on) another tile and/or group of tiles, or other tiles and/or similar to slice segments. Or it may be independent of the tile group. In addition, the tile/tile group according to the present disclosure may include various information.

도 8은 일 예로 슬라이스 세그먼트의 NAL 유닛을 나타낸 도면이다. 8 is a diagram illustrating an NAL unit of a slice segment as an example.

구체적으로, NAL 유닛은 NALU 헤더(810), 슬라이스 세그먼트 헤더(820), 슬라이스 세그먼트 데이터(830) 순으로 구성된다. 각 슬라이스 세그먼트 별로 NAL 유닛으로 구성되고, 상기 NAL 유닛이 비트 스트림의 형태로 전송된다.Specifically, the NAL unit is configured in the order of NALU header 810, slice segment header 820, and slice segment data 830. Each slice segment is composed of NAL units, and the NAL units are transmitted in the form of a bit stream.

반면, 타일의 경우, 별도의 헤더는 없으며, 타일과 관련된 정보 중 일부는 SEI(supplement enhancement information) 메시지에 포함되어 전송된다.On the other hand, in the case of a tile, there is no separate header, and some of the information related to the tile is transmitted in a supplementary enhancement information (SEI) message.

이하에서는 픽처를 병렬로 처리하기 위해 픽처를 타일로 분할한다. 다만, 본 개시에서는 비슷한 특성을 가진 타일들 또는 임의의 다수개의 타일들을 타일 그룹으로 정의하고, 타일 그룹에 대한 정보를 전송하는 방법에 대해 제안한다.Hereinafter, a picture is divided into tiles in order to process the picture in parallel. However, the present disclosure proposes a method of defining tiles having similar characteristics or any number of tiles as a tile group and transmitting information about the tile group.

구체적으로, 타일 그룹에 속하는 타일들은 인터 예측시 참조 픽처를 서로 참조할 수 있으며, 임의의 MV(Moving Vector) 정보도 공유할 수 있다. 혹은, 관련 정보의 참조/공유 여부를 신택스로 시그널링 할 수 있다. 또한, 타일 그룹에 속하는 타일들은 인루프 필터링 시 타일 경계에 위치한 픽셀값들에 대한 필터링 여부를 신택스를 통해 제어할 수 있다. 그러나, 인트라 예측 및/또는 엔트로피 코딩시 타일들은 서로 상관관계가 없어 참조하지 않는다. 타일 그룹에 속하는 타일 간의 상관 관계는 타일 그룹 헤더에 신택스로 정의될 수 있다. Specifically, tiles belonging to a tile group may refer to reference pictures to each other during inter prediction, and may also share arbitrary moving vector (MV) information. Alternatively, it is possible to signal whether or not related information is referenced/shared by syntax. In addition, tiles belonging to the tile group may control whether to filter pixel values located at a tile boundary when filtering in-loop through syntax. However, in intra prediction and/or entropy coding, tiles do not refer to each other because they do not correlate. The correlation between tiles belonging to the tile group may be defined as syntax in the tile group header.

도 9는 본 개시에 따른 타일 그룹의 일 예를 나타낸 도면이다. 9 is a diagram illustrating an example of a tile group according to the present disclosure.

도 9는 하나의 픽처가 8 x 6 = 48개의 타일로 분할되어 있음을 나타내고 있다. 상기 48개의 타일은 3개의 그룹(910, 920, 930)으로 분할될 수 있다. 분할된 각각의 타일 그룹은 독립적인 NAL 유닛으로 구성될 수 있다. 9 shows that one picture is divided into 8 x 6 = 48 tiles. The 48 tiles may be divided into three groups 910, 920, and 930. Each divided tile group may be composed of independent NAL units.

도 10은 일 예로 본 개시에 따른 타일 그룹의 NAL 유닛을 나타낸 도면이다.10 is a diagram illustrating an NAL unit of a tile group according to the present disclosure as an example.

상기 슬라이스 세그먼트의 NAL 유닛과 마찬가지로, 상기 타일 그룹의 NAL 유닛도 NALU 헤더(1010), 타일 그룹 헤더(1020), 상기 타일 그룹을 구성하는 타일들, 즉 제1 타일(1030), 제2 타일(1040), 제3 타일(1050), 및 제4 타일(1060) 순으로 구성된다. 하나의 NAL 유닛은 하나의 타일 그룹으로 구성될 수 있다. 타일 그룹 헤더(1020)에는 타일 그룹에 포함되는 타일들(1030, 1040, 1050, 1060)의 공통적인 정보가 포함된다. 하나의 타일은 타일 헤더와 타일 데이터로 구성될 수 있다. 혹은, 하나의 타일은 타일 데이터로만 구성될 수도 있다. 최종적으로, 상기 NAL 유닛은 비트 스트림으로 생성되어 전송된다. Similar to the NAL unit of the slice segment, the NAL unit of the tile group also includes a NALU header 1010, a tile group header 1020, tiles constituting the tile group, that is, a first tile 1030, a second tile ( 1040), the third tile 1050, and the fourth tile 1060. One NAL unit may be composed of one tile group. The tile group header 1020 includes common information of tiles 1030, 1040, 1050, and 1060 included in the tile group. One tile may be composed of a tile header and tile data. Alternatively, one tile may consist of tile data only. Finally, the NAL unit is generated and transmitted as a bit stream.

한편, NAL 유닛이 타일 그룹으로 구성되는 경우, 상기 타일 그룹에 대한 정보를 NAL 타입(type)으로 미리 정의해 둘 수 있다. 아래의 [표 5]는 NAL 타입의 일 예를 나타낸 것이다. 여기서, intra picture는 intra random access point(IRAP) picture를 의미하고, inter picture는 non-IRAP picture를 의미한다. [표 5]의 NAL 타입 index 값은 일례이며, IRAP과 non-IRAP의 index은 서로 교환 가능하다. 또한, IRAP picture 및/또는 non-IRAP picture는 더 세분화하여 하나 이상의 NAL 타입으로 정의할 수도 있다. 예컨대, non-IRAP picture는 참조 픽처로 사용되는지 여부에 따라 다른 NAL 타입으로 정의될 수 있다.Meanwhile, when the NAL unit is configured as a tile group, information about the tile group may be previously defined as a NAL type. [Table 5] below shows an example of the NAL type. Here, the intra picture refers to an intra random access point (IRAP) picture, and the inter picture refers to a non-IRAP picture. The NAL type index value in [Table 5] is an example, and the indexes of IRAP and non-IRAP are interchangeable. Also, IRAP picture and/or non-IRAP picture may be further subdivided and defined as one or more NAL types. For example, a non-IRAP picture may be defined as a different NAL type depending on whether it is used as a reference picture.

NAL 타입 indexNAL type index Name for NAL 타입Name for NAL type NAL 내용NAL content NAL 타입 클래스NAL type class 00 인트라Intra Coded TG of intra pictureCoded TG of intra picture VCLVCL 1One 인터Inter Coded TG of inter pictureCoded TG of inter picture VCLVCL

도 11은 구체적으로 본 개시에 따른 픽처 내 타일 그룹과 상기 타일 그룹의 NAL 유닛의 일 예를 나타낸 도면이다.11 is a diagram illustrating an example of a tile group in a picture and a NAL unit of the tile group according to the present disclosure.

도 11에 따르면, 하나의 픽처가 4 x 4 = 16개의 타일로 분할되어 있으며, 이중 4개의 타일(1110, 1120, 1130, 1140)이 하나의 타일 그룹에 포함되어 있다. 상기 타일 그룹은 하나의 NAL 유닛으로 구성될 수 있으며, 상기 NAL 유닛은 NALU 헤더, 타일 그룹 헤더, 상기 타일 그룹에 속하는 첫 번째 타일(1110)의 타일 헤더(1112), 타일 데이터(1114), 두 번째 타일(1120)의 타일 헤더(1122), 타일 데이터(1124), 세 번째 타일(1130)의 타일 헤더(1132), 타일 데이터(1134), 네 번째 타일(1140)의 타일 헤더(1142), 및 타일 데이터(1144)로 구성된다. 혹은, 4개의 타일에 대한 타일 헤더없이 타일 데이터만으로 구성될 수도 있다. 이때 상기 타일 그룹에 속하는 4개의 타일(1110, 1120, 1130, 1140)은 해당 픽처 내 라스터 스캔 순으로 상기 NAL 유닛에 포함될 수 있다. According to FIG. 11, one picture is divided into 4 x 4 = 16 tiles, and 4 tiles 1110, 1120, 1130, and 1140 are included in one tile group. The tile group may be composed of one NAL unit, and the NAL unit includes a NALU header, a tile group header, a tile header 1112 of the first tile 1110 belonging to the tile group, and tile data 1114. Tile header 1122 of the first tile 1120, tile data 1124, tile header 1132 of the third tile 1130, tile data 1134, tile header 1142 of the fourth tile 1140, And tile data 1144. Alternatively, the tile data may be configured without tile headers for four tiles. At this time, four tiles 1110, 1120, 1130, and 1140 belonging to the tile group may be included in the NAL unit in the order of raster scan in the corresponding picture.

이하에서는 하나의 픽처에 대한 정보를 나타내는 픽처 레벨 헤더, 하나의 타일 그룹 내 속하는 타일들에 공통적인 정보를 나타내는 타일 그룹 헤더, 각각의 타일에 대한 정보를 나타내는 타일 헤더에 대해 구체적으로 설명한다. 여기서, 픽처 레벨 헤더는 타일 그룹 NAL 유닛과는 별도로 하나의 NAL 유닛으로 구성될 수 있다. 예컨대, 픽처 레벨 헤더에 대한 NAL 유닛은 NAL 타입 index 값이 "17"인 non-VCL NAL 타입으로 정의될 수 있다.Hereinafter, a picture level header indicating information about one picture, a tile group header indicating information common to tiles belonging to one tile group, and a tile header indicating information on each tile will be described in detail. Here, the picture level header may be composed of one NAL unit separately from the tile group NAL unit. For example, the NAL unit for the picture level header may be defined as a non-VCL NAL type with a NAL type index value of "17".

먼저, 하나의 픽처에 대한 정보를 나타내는 픽처 레벨 헤더에 대해 설명한다. 아래의 [표 6]은 픽처 레벨 헤더의 신택스를 나타낸 것이다.First, a picture level header indicating information about one picture is described. [Table 6] below shows the syntax of the picture level header.

picture_header_rbsp( ) {picture_header_rbsp( ) { picture_header_idpicture_header_id multiple_tiles_in_pic_flag multiple _ tiles_in_pic_flag if( multiple_tiles_in_pic_flag ) { if( multiple_tiles_in_pic_flag) { num_tile_columns_minus1num_tile_columns_minus1 num_tile_rows_minus1num_tile_rows_minus1 uniform_spacing_flaguniform_spacing_flag if( !uniform_spacing_flag ) { if( !uniform_spacing_flag) { for( i = 0; i < num_tile_columns_minus1; i++ ) for( i = 0; i <num_tile_columns_minus1; i++) column_width_minus1[ i ] column_width_minus1 [i] for( i = 0; i < num_tile_rows_minus1; i++ ) for( i = 0; i <num_tile_rows_minus1; i++) row_height_minus1[ i ] row_height_minus1 [i] } } } }

픽처 레벨 헤더에는 해당 픽처 헤더에 대한 id(picture_header_id) 외에 하나의 픽처에 대한 타일의 레이아웃(layout) 정보가 포함된다. 즉, 상기 하나의 픽처 내 타일의 개수가 하나인지 또는 다수인지를 나타내는 신택스(multiple_tiles_in_pic_flag), 타일의 개수가 다수이면 타일의 레이아웃에 대한 구체적인 정보가 상기 픽처 레벨 헤더에 포함된다. 여기서, 하나의 픽처가 다수 개의 타일로 분할되는지 여부를 나타내는 플래그(multiple_tiles_in_pic_flag)는 하나의 픽처가 하나의 타일로 구성되는지 여부를 나타내는 플래그(single_tile_in_pic_flag)로 대체될 수도 있다. 예컨대, 상기 픽처 내 타일의 개수가 다수이면, 픽처의 가로축 기준으로 분할된 타일의 개수에 대한 신택스(num_tile_columns_minus1), 상기 픽처의 세로축 기준으로 분할된 타일의 개수에 대한 신택스(num_tile_rows_minus1), 및 상기 픽처가 가로축 및 세로축으로 균등하게 분할되었는지를 나타내는 신택스(uniform_spacing_flag) 등이 상기 픽처 레벨 헤더에 포함된다. 만약, 상기 픽처가 가로축 및 세로축으로 균등하게 분할된 경우, 상기 분할된 타일의 개수로 균등하게 분할되는데, 이때 분할의 기본 단위는 m의 배수일 수 있다. 여기서, m은 MV(Moving Vector)를 메모리에 저장하는 기본 단위를 의미할 수 있다. 혹은, m은 부호화기가 정하는 정수일 수 있다. 이때, 부호화기는 m의 값을 비트스트림을 통해 복호화기에 전달해야 한다. 또한, m 은 부호화기 및 복호화기에서 동일하게 지정한 상수일 수 있다. 일반적으로, MV를 저장할 때 타일 경계에 위치한 양쪽 타일의 MV를 하나의 MV로 설정하여 사용하지만 그렇지 않을 수 있다. 본 개시에서는 편의상 m을 8로 가정하여 설명한다. The picture level header includes tile (layout) information for one picture in addition to id (picture_header_id) for the picture header. That is, a syntax (multiple_tiles_in_pic_flag) indicating whether the number of tiles in one picture is one or more, and if the number of tiles is large, specific information about the layout of tiles is included in the picture level header. Here, a flag (multiple_tiles_in_pic_flag) indicating whether one picture is divided into a plurality of tiles may be replaced with a flag (single_tile_in_pic_flag) indicating whether one picture is composed of one tile. For example, if the number of tiles in the picture is plural, syntax for the number of tiles divided based on the horizontal axis of the picture (num_tile_columns_minus1), syntax for the number of tiles divided based on the vertical axis of the picture (num_tile_rows_minus1), and the picture The syntax (uniform_spacing_flag) indicating whether or not is equally divided into horizontal and vertical axes is included in the picture level header. If the picture is equally divided into horizontal and vertical axes, it is equally divided into the number of divided tiles, where the basic unit of division may be a multiple of m. Here, m may mean a basic unit that stores a moving vector (MV) in memory. Alternatively, m may be an integer determined by the encoder. At this time, the encoder must pass the value of m to the decoder through the bitstream. In addition, m may be a constant designated identically in the encoder and decoder. In general, when saving an MV, the MVs of both tiles located on the tile boundary are set to one MV, but may not be used. In the present disclosure, m is assumed to be 8 for convenience.

예를 들어, 하나의 픽처가 3840 x 2160의 해상도(resolution)를 가지며, m의 값이 8, 가로축 타일의 개수가 5, 세로축 타일의 개수가 3으로 균등 분할되어 있다면, 하나의 타일은 768 x 720의 해상도를 가지며, 상기 하나의 픽처는 5 x 3 = 15개의 타일로 구성된다. 또한, 상기 15개의 타일은 모두 동일한 크기를 갖는다. 여기서, 768 및 720은 8의 배수이다. For example, if one picture has a resolution of 3840 x 2160, and the value of m is equally divided into 8, the number of horizontal tiles is 5, and the number of vertical tiles is 3, one tile is 768 x It has a resolution of 720, and one picture is composed of 5 x 3 = 15 tiles. In addition, all 15 tiles have the same size. Here, 768 and 720 are multiples of 8.

한편, HEVC 표준과 같이, 동일 조건이면서 m의 값이 CTU 크기인 64인 경우, 상위 두 개의 가로축에 위치한 타일은 768 x 704의 해상도를 가지며, 마지막 가로축에 위치한 타일은 768 x 752의 해상도를 갖는다. 이는 CTU 크기가 분할의 기준이 되어 상기 상위 두 개의 가로축에 위치한 타일은 64의 배수 값으로 분할이 되고, 마지막 가로축에 위치한 타일은 상기 상위 두 개의 가로축에 위치한 타일 외에 남은 영역을 포함한다.On the other hand, as in the HEVC standard, when the value of m is CTU size 64 under the same conditions, the tiles located on the upper two horizontal axes have a resolution of 768 x 704, and the tiles located on the last horizontal axis have a resolution of 768 x 752. . This means that the CTU size is a criterion for division, so that the tiles located on the upper two horizontal axes are divided into multiples of 64, and the tiles located on the last horizontal axis include the remaining area in addition to the tiles located on the upper two horizontal axes.

만약, 타일이 가로축 및 세로축으로 균등하게 분할되지 않는다면, 가로축 기준으로 각 타일에 대한 너비를 나타내는 신택스(column_width_minus1)와 세로축 기준으로 각 타일에 대한 높이를 나타내는 신택스(row_height_minus1)가 상기 픽처 레벨 헤더에 더 포함된다. 이 경우에도 분할의 기본 단위는 상기 m이 될 수 있다.If the tiles are not evenly divided into horizontal and vertical axes, syntax (column_width_minus1) indicating the width for each tile based on the horizontal axis and syntax (row_height_minus1) indicating the height for each tile based on the horizontal axis are further added to the picture level header. Is included. Even in this case, the basic unit of division may be m.

이하에서는 하나의 타일 그룹 내 속하는 모든 타일에 공통적인 정보를 나타내는 타일 그룹 헤더에 대해 설명한다. Hereinafter, a tile group header indicating information common to all tiles belonging to one tile group will be described.

첫 번째로, 하나의 타일 그룹이 하나의 사각형 형태로 구성될 수 있다.First, one tile group may be configured as one square shape.

아래의 [표 7]은 타일 그룹 헤더의 신택스를 일 예로 나타낸 것이다.[Table 7] below shows the syntax of the tile group header as an example.

tile_group_header( ) {tile_group_header( ) { tg_address tg_address tg_picture_header_idtg_picture_header_id tg_type tg_type if( multiple_tiles_in_pic_flag ) { if( multiple_tiles_in_pic_flag) { multiple_tiles_in_tg_flag multiple_tiles_in_tg_flag if( multiple_tiles_in_tg_flag ) { if( multiple_tiles_in_tg_flag) { if ( tg_type != intra ) { if (tg_type != intra) { tg_inter_prediction_across_tiles_enabled_flag tg_inter_prediction_across_tiles_enabled_flag tg_temporal_MV_across_tiles_enabled_flag tg_temporal_MV_across_tiles_enabled_flag } } tg_loop_filter_across_tiles_enabled_flag tg_loop_filter_across_tiles_enabled_flag } } } } guard_band_enabled_flag guard_band_enabled_flag if( guard_band_enabled_flag ) { if( guard_band_enabled_flag) { gb_padding_type gb_padding_type gb_left_width gb_left_width gb_right_width gb_right_width gb_top_height gb_top_height gb_bottom_hiehgt gb_bottom_hiehgt } } tg_level_idc tg_level_idc tg_tier_flag tg_tier_flag init_qp_minus32 init_qp_minus32 total_tiles = 0 total_tiles = 0 if( multiple_tiles_in_tg_flag ) {if( multiple_tiles_in_tg_flag) { tg_num_tile_columns_minus1tg_num_tile_columns_minus1 tg_num_tile_rows_minus1tg_num_tile_rows_minus1 total_tiles = (tg_num_tile_columns_minus1 + 1) x (tg_num_tile_rows_minus1 + 1) total_tiles = (tg_num_tile_columns_minus1 + 1) x (tg_num_tile_rows_minus1 + 1) } } for( i = 0; i < total_tiles; i++ ) { for( i = 0; i <total_tiles; i++) { tile_header() tile_header() tile_data() tile_data() } } }}

타일 그룹 헤더에는 타일 그룹에 대한 정보가 포함된다. 예컨대, 픽처 내 타일 그룹의 위치를 나타내는 신택스(tg_address), 상기 타일 그룹이 참조하는 픽처 헤더의 id를 나타내는 신택스(tg_picture_header_id), 및 상기 타일 그룹의 타입을 나타내는 신택스(tg_type)가 상기 타일 그룹 헤더에 포함된다. 상기 픽처 내 타일 그룹의 위치는 픽처의 최좌상단 픽셀의 위치를 기준으로 하여 표시될 수 있다. 또는, 상기 픽처 내 타일 그룹의 위치는 픽처 분할의 기본 단위의 배수 형태로 가로축 및 세로축 별로 표시되거나, 라스터 스캔 순으로 8의 배수 형태로 하나의 값으로 표시될 수도 있다. 그 밖에도, 상기 픽처 내 타일 그룹의 위치는 타일의 레이아웃에 따른 상기 타일 그룹에 속하는 최좌상단 위치의 타일에 대한 가로축 및 세로축 별 인덱스로 표시되거나, 라스터 스캔 순으로 최좌상단 위치의 타일에 대한 하나의 인덱스(tile id)로 표시될 수도 있다. 타일 그룹이 참조하는 픽처 헤더의 id를 나타내는 신택스(tg_picture_header_id)는 픽처 헤더 내 정의된 id 값을 의미한다. 타일 그룹의 타입은 B 타일 그룹, P 타일 그룹, 및 I 타일 그룹 중 하나를 의미한다. The tile group header includes information about the tile group. For example, a syntax (tg_address) indicating the position of a tile group in a picture, a syntax (tg_picture_header_id) indicating an id of a picture header referred to by the tile group, and a syntax (tg_type) indicating a type of the tile group are in the tile group header. Is included. The position of the tile group in the picture may be displayed based on the position of the upper leftmost pixel of the picture. Alternatively, the position of the tile group in the picture may be displayed for each horizontal axis and vertical axis in a multiple form of a basic unit of picture division, or may be displayed as a single value in multiples of 8 in the raster scan order. In addition, the position of the tile group in the picture is indicated by an index for each horizontal axis and vertical axis of a tile at a top left position belonging to the tile group according to a tile layout, or one for a tile at a top left position in a raster scan order. It may be indicated by the index (tile id) of. The syntax (tg_picture_header_id) indicating the id of the picture header referenced by the tile group means an id value defined in the picture header. The type of the tile group means one of the B tile group, the P tile group, and the I tile group.

또한, 상기 타일 그룹 헤더에는 상기 타일 그룹 안에 다수 개의 타일이 존재하는지를 나타내는 신택스(multiple_tiles_in_tg_flag), 상기 타일 그룹 내 타일간 인터 예측시 주변 다른 타일을 참조하는지 여부를 나타내는 신택스(tg_inter_prediction_across_tiles_enabled_flag), 머지(merge) 모드 및 AMVP(Advanced Motion Vector Prediction) 모드에서 임의의 MV(temporal MV)를 참조 픽처 내 해당 타일 외 주변 타일에서도 유도해서 사용할지 여부를 나타내는 신택스(tg_temporal_MV_across_tiles_enabled_flag), 인루프 필터링시 주변 타일 정보를 이용할지 여부를 나타내는 신택스(tg_loop_filter_across_tiles_enabled_flag)가 포함될 수 있다. 여기서, 상기 머지 모드 및 AMVP 모드에서 임의의 MV(temporal MV)를 참조 픽처 내 해당 타일 외 주변 타일에서도 유도해 사용할지 여부를 나타내는 신택스는 상위 레벨 헤더 (예컨대, SPS)에서 해당 기능을 enabled 한 후, 해당 타일 그룹 수준에서 해당 기능을 다시 사용할지 정해지면, 타일 간 임의의 MV(temporal MV) 유도 여부를 결정할 수 있다. 예컨대, sps_temporal_mv_enabled_flag 가 활성화 되고, tg_temporal_mv_enabled_flag가 활성화 되면, tg_loop_filter_across_tiles_enabled_flag 값을 정의할 수 있다. 해당 신택스는 임의의 MV(temporal mv)를 취하기 위해 collocated 블록을 검색시 주변 타일을 참조할지 여부를 나타내는 신택스(tg_collocated_block_across_tiles_enabled_flag)로 대체할 수 있다. 또한, 상기 타일 그룹 내 타일간 인터 예측시 주변 타일을 참조할지 여부를 나타내는 신택스와 상기 루프 필터링시 주변 타일 정보를 이용할지 여부를 나타내는 신택스도 하나의 신택스로 나타낼 수 있다. 상기 신택스가 주변 타일을 참조하지 못하게 하는 경우, 인터 예측시 주변 타일의 복원 픽셀값을 참조할 수 없으며, 주변 타일의 MV도 참조할 수 없다.In addition, the tile group header includes a syntax (multiple_tiles_in_tg_flag) indicating whether a plurality of tiles exist in the tile group, a syntax indicating whether other neighboring tiles are referred to during inter-tile prediction within the tile group (tg_inter_prediction_across_tiles_enabled_flag), and merge Syntax (tg_temporal_MV_across_tiles_enabled_flag) indicating whether to use arbitrary MV (temporal MV) in the reference picture and surrounding tiles in the reference picture in the mode and the Advanced Motion Vector Prediction (AMVP) mode, whether to use the surrounding tile information during in-loop filtering A syntax indicating whether or not (tg_loop_filter_across_tiles_enabled_flag) may be included. Here, in the merge mode and AMVP mode, a syntax indicating whether to use a random MV (temporal MV) in a neighboring tile other than the corresponding tile in a reference picture is enabled after the corresponding function is enabled in a high-level header (eg, SPS) , When it is determined whether to use the corresponding function again at the corresponding tile group level, it may be determined whether to induce a random MV (temporal MV) between tiles. For example, when sps_temporal_mv_enabled_flag is activated and tg_temporal_mv_enabled_flag is activated, a tg_loop_filter_across_tiles_enabled_flag value can be defined. This syntax can be replaced with a syntax (tg_collocated_block_across_tiles_enabled_flag) indicating whether to refer to a neighboring tile when searching a collocated block to take an arbitrary MV (temporal mv). In addition, a syntax indicating whether to refer to a neighboring tile in inter-prediction of inter-tiles in the tile group and a syntax indicating whether to use neighboring tile information in the loop filtering may also be represented as one syntax. When the syntax prevents the reference to the neighboring tiles, the inter-prediction cannot reference the reconstructed pixel values of the neighboring tiles and the MV of the neighboring tiles.

그 외에도, 상기 타일 그룹 헤더에는 타일 그룹의 경계 영역에 일정 부분을 패딩(padding)하였는지를 나타내는 신택스(guard_band_enabled_flag), 패딩 영역에 채워지는 값의 종류를 나타내는 신택스(gb_padding_type)(예를 들어, 타일 그룹의 경계선 픽셀값:0, 인접한 타일의 실제 픽셀값: 1, 해당 타일 내 경계선 픽셀값 및 인접한 타일의 실제 픽셀값과의 거리를 고려한 평균값: 2), 타일 그룹의 좌측/우측/상측/하측 패딩 크기를 나타내는 신택스(gb_left_width/ gb_right_width/gb_top_height/gb_bottom_height)가 포함될 수 있다. 상기 타일 그룹의 각 측의 패딩 크기는 루마 기준의 픽셀값으로 표시될 수 있으며, 배열 형태로도 설정할 수도 있다. 패딩 영역에 채워지는 값의 종류를 나타내는 신택스(gb_padding_type)는 타일 그룹의 좌측/우측/상측/하측 패딩 영역 각각에 대해 별도로도 지정할 수 있다. 예컨대, 타일 그룹의 좌측 및 우측 패딩 영역에 대해서는 인접한 타일의 실제 픽셀값(1)을, 상측 및 하측 패딩 영역에 대해서는 해당 타일 그룹의 경계선 픽셀값의 복사값(0)으로 지정할 수 있다. 또한, 상기 guard band 정보는 부호화 시의 인풋 픽처 (타일 그룹)에 대한 패딩을 정의한 것일 수도 있고, 복호화 시의 참조 픽처 (타일 그룹)에 대한 패딩을 정의한 것일 수도 있다. In addition, the tile group header includes a syntax (guard_band_enabled_flag) indicating whether a part of the tile group is padded in a boundary area of the tile group, and a syntax (gb_padding_type) indicating a kind of a value filled in the padding area (for example, a tile group) Boundary pixel value: 0, the actual pixel value of adjacent tiles: 1, the average value taking into account the distance between the border pixel value and the actual pixel value of adjacent tiles: 2), the size of the left/right/top/bottom padding of the tile group The syntax (gb_left_width/ gb_right_width/gb_top_height/gb_bottom_height) may be included. The padding size of each side of the tile group may be displayed as a pixel value based on luma, or may be set in an array form. The syntax (gb_padding_type) indicating the type of the value to be filled in the padding area may be separately designated for each of the left/right/top/bottom padding areas of the tile group. For example, the actual pixel values 1 of adjacent tiles for the left and right padding areas of the tile group may be designated as the copy values 0 of the pixel values of the borders of the tile groups for the upper and lower padding areas. Further, the guard band information may be defined as padding for an input picture (tile group) during encoding, or may be defined as padding for a reference picture (tile group) during decoding.

상기 타일 그룹 헤더에는 타일 그룹에 대한 레벨 값을 지시하는 신택스(tg_level_idc), 타일 그룹의 티어(tier) 값을 지시하는 신택스(tg_tier_flag)가 포함될 수 있다. 해당 신택스는 각 타일 그룹 별로 복호화 시에 필요한 정보인 타일 그룹의 resolution 값, 메모리 등을 복호화기에 알려주기 위함이다. 상기 2개의 신택스 들은 별도의 플래그(adaptive_level_tier_enabled_flag)가 활성화 되었을 때, 전송되는 것으로 제한할 수 있다.The tile group header may include a syntax (tg_level_idc) indicating a level value for a tile group, and a syntax (tg_tier_flag) indicating a tier value of the tile group. The syntax is to inform the decoder of the resolution value, memory, etc. of the tile group, which is information required for decoding for each tile group. The two syntaxes can be limited to being transmitted when a separate flag (adaptive_level_tier_enabled_flag) is activated.

상기 타일 그룹 헤더에는 타일 그룹에 적용할 초기 QP(Quantization Parameter)값에서 32를 뺀 값을 지시하는 신택스(init_qp_minus32), 타일 그룹 내 세로축 기준으로 포함된 타일의 개수에서 1을 뺀 값을 지시하는 신택스(tg_num_tile_columns_minus1), 타일 그룹 내 가로축 기준으로 포함된 타일의 개수에서 1을 뺀 값을 지시하는 신택스(tg_num_tile_rows_minus1) 등도 더 포함될 수 있다. 혹은, 해당 타일 그룹에 속하는 최우하단 위치의 타일에 대한 id(tile id)로 해당 타일 내 속한 전체 타일의 개수를 표현 할 수 있다. 타일 그룹 내 포함된 타일의 개수는 가로축 및 세로축을 기준으로 통합하여 하나의 신택스(num_tiles_in_tg_minus1)로 표현될 수도 있다. 해당 신택스는 해당 타일 그룹 내 전체 타일의 개수에서 1을 뺀 값을 지시한다. The tile group header includes syntax (init_qp_minus32) indicating a value obtained by subtracting 32 from an initial QP (Quantization Parameter) to be applied to a tile group, and syntax indicating a value obtained by subtracting 1 from the number of tiles included in the vertical axis in the tile group. (tg_num_tile_columns_minus1), a syntax (tg_num_tile_rows_minus1) indicating a value obtained by subtracting 1 from the number of tiles included as a horizontal axis reference in the tile group may be further included. Alternatively, the total number of tiles belonging to the tile may be expressed as an id (tile id) of the tile at the bottom-most position belonging to the tile group. The number of tiles included in the tile group may be expressed as one syntax (num_tiles_in_tg_minus1) by integrating on the horizontal and vertical axes. The syntax indicates a value obtained by subtracting 1 from the total number of tiles in the tile group.

이는, 타일 그룹의 형태에 따라 달리 적용될 수 있다. 예컨대, 타일 그룹이 직사각형인 경우, 가로축 및 세로축 기준으로 포함된 타일의 개수에서 1을 뺀 값으로 표현하거나 해당 타일 그룹에 속하는 최우하단 위치의 타일에 대한 id(tile id)로 표현 할 수 있다. 반대로, 타일 그룹의 형태가 픽처 내 타일의 레이아웃을 기준으로 타일의 라스터 스캔 순으로 타일 그룹을 정의하였다면, 해당 타일 그룹 내 포함된 타일의 개수는 라스터 스캔 순으로 해당 타일 그룹 내 전체 타일의 개수에서 1을 뺀 값으로 지정할 수 있다. This may be applied differently depending on the shape of the tile group. For example, when the tile group is rectangular, it can be expressed as a value obtained by subtracting 1 from the number of tiles included on the horizontal axis and the vertical axis or as an id (tile id) for the tile at the lowest position belonging to the tile group. Conversely, if the tile group type is a tile group defined in the raster scan order of tiles based on the layout of the tiles in the picture, the number of tiles included in the tile group is the total number of tiles in the tile group in the raster scan order. Can be specified as the number minus one.

타일 그룹 내 타일간 인터 예측, 임의의 MV(temporal MV), 및 루프 필터링 적용 여부를 나타내는 신택스는 아래의 [표 8]과 같이도 나타낼 수 있다. The syntax indicating whether inter-prediction within a tile group, arbitrary MV (temporal MV), and loop filtering is applied may also be represented as in [Table 8] below.

tile_group_header( ) {tile_group_header( ) { if( multiple_tiles_in_pic_flag ) { if( multiple_tiles_in_pic_flag) { multiple_tiles_in_tg_flag multiple_tiles_in_tg_flag if( multiple_tiles_in_tg_flag ) { if( multiple_tiles_in_tg_flag) { all_independent_tiles_flag all_independent_tiles_flag if( !all_independent_tiles_flag ) { if( !all_independent_tiles_flag) { if ( tg_type != intra) { if (tg_type != intra) { tg_inter_prediction_across_tiles_disabled_flag tg_inter_prediction_across_tiles_disabled_flag tg_temporal_MV_across_tiles_disabled_flag tg_temporal_MV_across_tiles_disabled_flag } } tg_loop_filter_across_tiles_disabled_flag tg_loop_filter_across_tiles_disabled_flag } } } } } } }}

타일 그룹 내 다수 개의 타일들이 존재하면서 각 타일들이 모두 독립적으로 인코딩 및 디코딩되었음을 나타내는 신택스(all_independent_tiles_flag)를 이용할 수 있다. 즉, 상기 신택스는 인터 예측 및/또는 루프 필터링시 주변 타일에 대한 정보 참조없이 실행될 수 있음을 지시한다. 구체적으로, 상기 신택스의 값이 0이면, 주변 타일 정보를 이용하며, 인터 예측, 임의의 MV(temporal MV), 및/또는 루프 필터 각각에 대한 참조 여부는 별도로 지정한다. It is possible to use a syntax (all_independent_tiles_flag) indicating that each tile is independently encoded and decoded while there are multiple tiles in the tile group. That is, it indicates that the syntax can be executed without reference to information on neighboring tiles in inter prediction and/or loop filtering. Specifically, if the value of the syntax is 0, neighboring tile information is used, and whether to reference inter prediction, arbitrary MV (temporal MV), and/or loop filter is specified separately.

그 외의 다른 신택스는 [표 7]에서 설명한 바와 동일하여 여기서는 그 설명을 생략한다. Other syntaxes are the same as those described in [Table 7], and descriptions thereof are omitted here.

타일 그룹 헤더에 포함되는 신택스들 중 가드 밴드와 관련된 신택스들은 픽처 레벨 헤더 및 SEI(Supplemental Enhancement Information) 중 어느 하나에 포함될 수 있다. Among the syntaxes included in the tile group header, syntaxes related to the guard band may be included in any one of a picture level header and supplemental enhancement information (SEI).

두 번째로는 다수의 타일 rectangular를 하나의 타일 그룹으로 구성할 수 있다. 이 경우, 타일 그룹 헤더의 신택스는 아래의 [표 9]와 같이 나타낼 수 있다.Second, a plurality of tile rectangular may be configured as one tile group. In this case, the syntax of the tile group header can be expressed as [Table 9] below.

tile_group_header( ) {tile_group_header( ) { tg_picture_header_idtg_picture_header_id tg_type tg_type if( multiple_tiles_in_pic_flag ) { if( multiple_tiles_in_pic_flag) { multiple_tiles_in_tg_flagmultiple_tiles_in_tg_flag if( multiple_tiles_in_tg_flag ) {if( multiple_tiles_in_tg_flag) { num_tile_rectangulars_in_tg_minus1num_tile_rectangulars_in_tg_minus1 for( i = 0; i < num_tile_rectangulars_in_tg_minus1; i++ ) { for( i = 0; i <num_tile_rectangulars_in_tg_minus1; i++) { topleft_tile_id[ i ] topleft_tile_id [i] bottomright_tile_id[ i ] bottomright_tile_id [i] hor_tiles = floor{(bottomright_tile_id[i] - topleft_tile_id[i]) / (column_width_minus1 + 1)}hor_tiles = floor{(bottomright_tile_id[i]-topleft_tile_id[i]) / (column_width_minus1 + 1)} ver_tiles = bottomright_tile_id[i] - {topleft_tile_id[i] + (column_width_minus1 + 1) x (hor_tiles - 1)} + 1ver_tiles = bottomright_tile_id[i]-{topleft_tile_id[i] + (column_width_minus1 + 1) x (hor_tiles-1)} + 1 num_tiles[ i ] = hor_tiles x ver_tiles num_tiles[ i] = hor_tiles x ver_tiles }} } } } } if(multiple_tiles_in_tg_flag ) { if(multiple_tiles_in_tg_flag) { for( i = 0; i < num_tile_rectangular_minus1; i++ ) { for( i = 0; i <num_tile_rectangular_minus1; i++) { if ( tg_type != intra ) {if (tg_type != intra) { tg_inter_prediction_across_tiles_enabled_flag[ i ] tg_inter_prediction_across_tiles_enabled_flag [i] tg_temporal_MV_across_tiles_enabled_flag[ i ] tg_temporal_MV_across_tiles_enabled_flag [i] } } tg_loop_filter_across_tiles_enabled_flag[ i ] tg_loop_filter_across_tiles_enabled_flag [i] }} } } total_tiles = 0 total_tiles = 0 if( tg_multiple_tiles_flag ) {if( tg_multiple_tiles_flag) { for( i = 0; i < num_tile_rectangular_minus1; i++ ) for( i = 0; i <num_tile_rectangular_minus1; i++) total_tiles += num_tiles[ i ] total_tiles += num_tiles[ i] } } for( i = 0; i < total_tiles; i++ ) { for( i = 0; i <total_tiles; i++) { tile_header() tile_header() tile_data() tile_data() } } }}

타일 그룹 헤더에는 다수의 타일 rectangular에 대한 정보가 포함된다. 예컨대, 상기 타일 그룹 헤더에는 타일 그룹에 포함된 타일 rectangular의 개수를 나타내는 신택스(num_tile_rectangular_minus1), 타일 rectangular의 좌상측/우하측 타일 id값을 나타내는 신택스(topleft_tile_id/ bottomright_tile_id)가 포함될 수 있다. 앞서 설명한 상기 타일 그룹 내 타일간 인터 예측시 주변 타일을 참조할지 여부를 나타내는 신택스(tg_inter_prediction_across_tiles_enabled_flag[i]), 머지 모드 및 AMVP 모드에서 임의의 MV(temporal MV)를 해당 타일 외 주변 타일에서도 유도해서 사용할지 여부를 나타내는 신택스(tg_temporal_MV_across_tiles_enabled_flag[i]), 루프 필터링시 주변 타일 정보를 이용할지 여부를 나타내는 신택스(tg_loop_filter_across_tiles_enabled_flag[i])는 타일 rectangular마다 설정할 수 있다. The tile group header includes information about a plurality of tile rectangles. For example, the tile group header may include a syntax (num_tile_rectangular_minus1) indicating the number of tile rectangles included in the tile group, and a syntax (topleft_tile_id/bottomright_tile_id) indicating the tile upper and lower right tile id values of the tile rectangular. A syntax (tg_inter_prediction_across_tiles_enabled_flag[i]) indicating whether or not to refer to a neighboring tile in inter-tile prediction within the tile group described above, and random MV (temporal MV) in the merge mode and the AMVP mode are also derived and used in the surrounding tiles other than the tile The syntax (tg_temporal_MV_across_tiles_enabled_flag[i]) indicating whether or not to do this, and the syntax (tg_loop_filter_across_tiles_enabled_flag[i]) indicating whether to use neighboring tile information when loop filtering can be set for each tile rectangular.

도 12는 구체적으로 본 개시의 다른 실시예에 따른 픽처 내 타일 그룹과 상기 타일 그룹의 NAL 유닛을 나타낸 도면이다.12 is a diagram specifically showing a tile group in a picture and a NAL unit of the tile group according to another embodiment of the present disclosure.

도 11와 마찬가지로, 도 12에서도 하나의 픽처가 4 x 4 = 16개의 타일로 분할되어 있다. 다만, 도 12에서는 하나의 타일 그룹이 두 개의 타일 rectangular를 포함하고 있으며, 제1 타일 rectangular는 두 개의 타일(1210, 1230)로 구성되어 있고, 제2 타일 rectangular도 두 개의 타일(1220, 1240)로 구성되어 있다. 도 12에서도 상기 하나의 타일 그룹은 하나의 NAL 유닛으로 구성된다. 상기 NAL 유닛은 NALU 헤더, 타일 그룹 헤더, 상기 타일 그룹에 속하는 타일들의 타일 헤더(1212, 1222, 1232, 1242) 및 타일 데이터(1214, 1224, 1234, 1244)로 구성될 수 있다. 혹은, 4개의 타일에 대한 타일 헤더없이 타일 데이터만으로 구성될 수도 있다. 상기 타일 그룹에 속하는 타일들은 라스터 스캔 순으로 상기 NAL 유닛에 포함되거나 타일 rectangular 별로 라스터 스캔 순으로 상기 NAL 유닛에 포함될 수 있다. 도 12에서는 상기 타일 그룹에 속하는 타일들이 라스터 스캔 순으로 상기 NAL 유닛에 포함된 것을 나타낸다. As in Fig. 11, in Fig. 12, one picture is divided into 4 x 4 = 16 tiles. However, in FIG. 12, one tile group includes two tiles rectangular, the first tile rectangular is composed of two tiles 1210, 1230, and the second tile rectangular is also two tiles 1220, 1240. It consists of. In FIG. 12, one tile group is composed of one NAL unit. The NAL unit may include a NALU header, a tile group header, tile headers 1212, 1222, 1232, and 1242 of tiles belonging to the tile group and tile data 1214, 1224, 1234, and 1244. Alternatively, the tile data may be configured without tile headers for four tiles. Tiles belonging to the tile group may be included in the NAL unit in the raster scan order or may be included in the NAL unit in the raster scan order for each tile rectangular. In FIG. 12, tiles belonging to the tile group are included in the NAL unit in the order of raster scan.

마지막으로, 타일 헤더 및 타일 데이터에 대해 설명한다.Finally, the tile header and tile data will be described.

타일 헤더에는 하나의 타일에 대한 정보들이 포함되어 있다. 아래의 [표 10]은 일 예로 타일 헤더의 신택스를 나타낸 것이다.The tile header includes information about one tile. [Table 10] below shows the syntax of the tile header as an example.

tile_header( ) {tile_header( ) { start_code_prefixstart_code_prefix tile_idxtile_idx tile_qp_deltatile_qp_delta }}

예컨대, 타일 헤더에는 하나의 타일 그룹에 해당하는 비트 스트림 내에서 다수 개의 타일 중 하나의 타일에 랜덤 액세스 가능하도록 엔트리 포인트(entry point) 기능을 하는 시작 포인트를 지시하는 신택스(start_code_prefix), 픽처 레벨 헤더에서 정의한 타일의 레이아웃 기준으로 해당 타일의 인덱스를 나타내는 신택스(tile_idx), 해당 타일이 속한 타일 그룹에서 제시한 QP 초기값에 근거하여 상기 해당 타일에 포함된 CTU 및 CU에 적용할 QP값을 위한 △QP값을 지시하는 신택스(tile_qp_delta)가 포함된다. 상기 타일의 인덱스는 가로축 및 세로축 별로 지정할 수도 있고, 라스터 스캔 순으로 하나의 인덱스로 지정할 수도 있다. For example, in the tile header, a syntax (start_code_prefix) indicating a starting point serving as an entry point so as to be randomly accessible to one tile among a plurality of tiles in a bit stream corresponding to one tile group, a picture level header The syntax (tile_idx) indicating the index of the tile based on the layout of the tile defined by △ for the QP value to be applied to the CTU and CU included in the tile based on the initial QP value provided by the tile group to which the tile belongs A syntax (tile_qp_delta) indicating the QP value is included. The tile index may be specified for each horizontal axis and vertical axis, or may be designated as one index in the order of raster scan.

한편, 상기 해당 타일에 적용할 QP값은 아래의 [수학식 1]을 이용해 산정될 수 있다.Meanwhile, the QP value to be applied to the tile may be calculated using Equation 1 below.

Figure pat00001
Figure pat00001

아래의 [표 11]은 일 예로 타일 데이터의 신택스를 나타낸 것이다.[Table 11] below shows the syntax of tile data as an example.

tile_data( ) {tile_data( ) { do { do { coding_tree_unit() coding_tree_unit() } while ( !end_of_tile ) } while (!end_of_tile) }}

도 13은 본 개시의 일 실시예로 인터 예측시 타일 그룹 내에서 일부 영역이 다른 영역을 참조하는 것을 나타낸 도면이다.13 is a diagram illustrating that some regions refer to other regions in a tile group during inter prediction according to an embodiment of the present disclosure.

도 13의 (b)는 현재 픽처 내의 타일 그룹을 나타낸 것이며, 도 13의 (a)는 참조 픽처 내의 상기 현재 픽처 내의 동일한 타일 그룹을 나타낸 것이다. 도 13의 (b)에서 사각형 영역(1320)은 부호화 대상 블록을 의미하며, 화살표(1330)는 사각형 영역(1320)의 움직임을 나타낸 것이다. 즉, 도 13의 (a)에서 사각형 영역(1310)은 상기 부호화 대상 블록의 MV가 가리키는 참조 블록을 나타낸 것이다.13(b) shows a tile group in the current picture, and FIG. 13(a) shows the same tile group in the current picture in the reference picture. In (b) of FIG. 13, the rectangular area 1320 indicates a block to be coded, and an arrow 1330 indicates the movement of the rectangular area 1320. That is, the square region 1310 in FIG. 13A shows a reference block indicated by the MV of the encoding target block.

예를 들어, 타일 그룹 헤더 내 타일간 인터 예측시 참조 여부를 나타내는 신택스(tg_inter_prediction_across_tiles_enabled_flag)가 참조하는 것으로 설정된 경우, 도 13의 (a)에서 사각형 영역(1310)이 참조 블록으로 사용될 수 있다. 반면, 상기 신택스가 참조하지 않는 것으로 설정된 경우, 다른 타일 참조없이 도 13의 (b)에서 사각형 영역(1320)의 우상측 타일 내 픽셀값으로 참조 블록을 생성한다. 이때 우상측 타일을 하나의 픽처로 간주하고, 픽처 경계를 벗어나서 참조하는 경우를 위한 처리 과정이 수행될 수도 있다. 즉, 픽처 경계 픽셀값을 복사하여 패딩하는 의미로써, 경계를 벗어나는 부분에 대해서는 경계 픽셀로 채워진다. 이에 대해서는 이하의 도 14를 이용해 자세히 설명한다.For example, when the syntax (tg_inter_prediction_across_tiles_enabled_flag) indicating whether to refer to inter-tile prediction in the tile group header is set to reference, the rectangular area 1310 in FIG. 13A can be used as a reference block. On the other hand, when the syntax is set to not reference, a reference block is generated with the pixel value in the upper right tile of the rectangular area 1320 in FIG. 13B without reference to another tile. At this time, a process for a case where the upper right tile is regarded as one picture and is referred to outside the picture boundary may be performed. That is, it means that the picture boundary pixel value is copied and padded, and a portion outside the boundary is filled with the boundary pixel. This will be described in detail with reference to FIG. 14 below.

도 14는 본 개시의 일 실시예에 따라 인터 예측을 수행하는 순서도를 나타낸 도면이다.14 is a flowchart illustrating inter prediction according to an embodiment of the present disclosure.

부호화 대상 블록의 움직임 정보인 참조 픽처, mvd(motion vector difference), mvp(motion vector predictor)를 획득한다(S1410).A reference picture, a motion vector difference (mvd), and a motion vector predictor (mvp), which are motion information of an encoding target block, are obtained (S1410).

상기 획득한 움직임 정보를 이용해 상기 부호화 대상 블록의 mv값을 유도한다(S1420).The mv value of the encoding target block is derived using the obtained motion information (S1420).

상기 mv값이 지시하는 영역의 위치를 파악한다(S1430).The position of the region indicated by the mv value is determined (S1430).

상기 영역의 파악된 위치가 현재 타일 내인지 확인한다(S1440).It is checked whether the identified position of the area is within a current tile (S1440).

상기 파악된 영역의 위치가 현재 타일 내이면, 상기 현재 타일 내에서 참조 블록을 획득한다(S1450). If the identified location of the region is within the current tile, a reference block is acquired within the current tile (S1450).

만약, 상기 영역의 파악된 위치가 현재 타일 내가 아니면, 상기 파악된 영역의 위치가 현재 타일이 속한 타일 그룹 내인지 확인한다(S1460).If the identified position of the area is not within the current tile, it is checked whether the identified area is within the tile group to which the current tile belongs (S1460).

상기 영역의 파악된 위치가 현재 타일이 속한 타일 그룹 내이면, 타일 그룹 안의 다수 개의 타일간 인터 예측시 주변 다른 타일을 참조하는지 확인한다(S1470).If the identified position of the area is within a tile group to which the current tile belongs, it is checked whether other neighboring tiles are referred to in inter-prediction of a plurality of tiles in the tile group (S1470).

상기 타일 그룹 안의 다수 개의 타일간 인터 예측시 주변 다른 타일을 참조하는 것으로 판단되면, 상기 타일 그룹 내에서 참조 블록을 획득한다(S1480). When it is determined that the neighboring tiles are referred to in the inter-prediction of a plurality of tiles in the tile group, a reference block is obtained in the tile group (S1480).

그러나, 상기 영역의 파악된 위치가 현재 타일이 속한 타일 그룹 내가 아니거나, 상기 영역의 파악된 위치가 현재 타일이 속한 타일 그룹 내라도 타일 그룹 안의 다수 개의 타일간 인터 예측시 주변 다른 타일을 참조하지 않는 것으로 판단되면, 픽셀값을 복사하는 패딩 방식을 사용하여 상기 타일 그룹 외에 해당하는 참조 블록의 값을 경계 픽셀 값들로 채운다(S1490). 혹은, 상기 mv 값을 현재 타일 내 가장 인접한 경계값으로 clipping 한다. However, even if the identified position of the area is not within the tile group to which the current tile belongs, or the identified position of the area is within the tile group to which the current tile belongs, when inter-prediction among a plurality of tiles in a tile group does not refer to other adjacent tiles. If not, the padding method for copying the pixel value is used to fill the value of the corresponding reference block in addition to the tile group with boundary pixel values (S1490). Alternatively, the mv value is clipped to the nearest boundary value in the current tile.

도 15는 영상 부호화 장치가 본 개시에 따른 하나의 픽처를 구성하는 방법의 순서도를 나타낸 도면이다.15 is a flowchart illustrating a method of a video encoding apparatus configuring one picture according to the present disclosure.

상기 장치, 상세하게는 상기 장치의 블록 분할부는 상기 하나의 픽처를 타일로 분할한다(S1510).The device, in particular, the block dividing unit of the device divides the one picture into tiles (S1510).

상기 장치의 부호화부는 상기 분할된 타일에 대한 정보를 픽처 레벨 헤더로 설정한다(S1520). 상기 분할된 타일에 대한 정보는 상기 분할된 타일의 레이아웃 정보일 수 있으며, 구체적으로 상기 픽처가 가로축 및 세로축으로 균등하게 분할되었는지 여부, 가로축으로 분할된 타일의 개수, 세로축으로 분할된 타일의 개수 등을 포함할 수 있다.The encoding unit of the apparatus sets information on the divided tiles as a picture level header (S1520). Information on the divided tiles may be layout information of the divided tiles, specifically, whether the picture is equally divided on the horizontal axis and the vertical axis, the number of tiles divided on the horizontal axis, the number of tiles divided on the vertical axis, and the like. It may include.

상기 부호화부는 상기 분할된 타일 중 다수 개의 타일을 하나의 타일 그룹으로 설정한다(S1530). 상세하게는, 상기 분할된 타일 중 비슷한 특성의 타일들이 상기 하나의 타일 그룹으로 설정될 수 있다. 또한, 상기 다수 개의 타일이 다수의 타일 rectangular로 구성되고, 상기 다수의 타일 rectangular가 상기 하나의 타일 그룹으로 설정될 수 있다.The encoding unit sets a plurality of tiles among the divided tiles as one tile group (S1530). In detail, tiles having similar characteristics among the divided tiles may be set as the one tile group. In addition, the plurality of tiles may be composed of a plurality of tiles rectangular, and the plurality of tiles rectangular may be set as the one tile group.

상기 부호화부는 상기 타일 그룹에 대한 정보를 타일 그룹 헤더로 설정한다(S1540). 상기 타일 그룹 헤더로는 상기 타일 그룹의 위치를 나타내는 정보, 상기 타일 그룹 내 타일간 인터 예측시 주변 다른 타일을 참조하는지 여부, 루프 필터링시 주변 타일 정보를 이용할지 여부 등이 포함될 수 있다. 또한, 상기 타일 그룹 헤더로 상기 타일 그룹의 경계 영역에 일정 부분을 패딩하였는지를 여부, 패딩하였다면 패딩 영역에 채워지는 값에 대한 정보 등이 더 포함될 수 있다.The encoding unit sets information about the tile group as a tile group header (S1540). The tile group header may include information indicating the location of the tile group, whether to refer to other adjacent tiles when inter prediction between tiles within the tile group, or whether to use neighboring tile information when loop filtering. In addition, whether a certain portion is padded in the border region of the tile group with the tile group header, and if padding, information about a value filled in the padding region may be further included.

상기 부호화부는 상기 타일 그룹 및 상기 타일 그룹 헤더를 포함해 NAL(Network Adaptive Layer) 유닛으로 구성한다(S1550). 상기 NAL 유닛에는 상기 타일 그룹에 포함되는 타일들의 타일 헤더 및 타일 데이터가 더 포함될 수 있다. The encoding unit includes the tile group and the tile group header and is configured as a network adaptive layer (NAL) unit (S1550). The NAL unit may further include tile headers and tile data of tiles included in the tile group.

본 개시에서는 구체적으로 상기 장치의 블록 분할부, 부호화부가 상기 절차를 수행하는 것으로 언급하고 있으나, 하나의 구성이 상기 절차를 모두 수행하거나 또는 다수의 구성이 나누어 상기 절차를 수행할 수도 있다.In the present disclosure, specifically, the block dividing unit and the encoding unit of the apparatus are referred to as performing the procedure, but one component may perform all of the procedure or a plurality of components may be divided to perform the procedure.

도 16은 영상 복호화 장치가 본 개시에 따라 하나로 구성된 픽처를 판단하는 방법의 순서도를 나타낸 도면이다.16 is a flowchart illustrating a method for a video decoding apparatus to determine a picture composed of one according to the present disclosure.

상기 장치는, 상세하게는 상기 장치의 복호화부는 비트스트림을 수신하고, 상기 수신된 비트스트림을 복호화하여 NAL 유닛에 포함된 타일 그룹 및 타일 그룹 헤더를 구분한다(S1610).In detail, the apparatus, the decoder of the apparatus receives a bitstream, and decodes the received bitstream to distinguish a tile group and a tile group header included in the NAL unit (S1610).

상기 장치는 상기 타일 그룹 헤더로부터 상기 타일 그룹에 대한 정보를 유추한다(S1620).The device infers information about the tile group from the tile group header (S1620).

상기 장치는 상기 타일 그룹으로 구성된 분할된 타일을 판단한다(S1630).The device determines a divided tile composed of the tile group (S1630).

상기 장치는 픽처 레벨 헤더로부터 분할된 타일에 대한 정보를 판단한다(S1640).The apparatus determines information on the tile divided from the picture level header (S1640).

도 15 및 도 16에서는 과정 S1510 내지 과정 S1550을 순차적으로 실행하는 것으로 기재하고 있으나, 이는 본 발명의 일 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것이다. 다시 말해, 본 발명의 일 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 일 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 도 15 및 도 16에 기재된 순서를 변경하여 실행하거나 과정 S1510 내지 과정 S1550 중 하나 이상의 과정을 병렬적으로 실행하는 것으로 다양하게 수정 및 변형하여 적용 가능할 것이므로, 도 15 및 도 16은 시계열적인 순서로 한정되는 것은 아니다.15 and 16, it is described that the steps S1510 to S1550 are executed sequentially, but this is merely illustrative of the technical idea of an embodiment of the present invention. In other words, a person having ordinary knowledge in the technical field to which one embodiment of the present invention pertains may execute or change the order described in FIGS. 15 and 16 without departing from the essential characteristics of one embodiment of the present invention, or process S1510 to process Since one or more processes of S1550 are executed in parallel, various modifications and variations may be applied, so that FIGS. 15 and 16 are not limited to time series.

한편, 도 15 및 도 16에 도시된 과정들은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 즉, 컴퓨터가 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.Meanwhile, the processes illustrated in FIGS. 15 and 16 may be implemented as computer readable codes on a computer readable recording medium. The computer-readable recording medium includes all kinds of recording devices in which data readable by a computer system is stored. That is, the computer-readable recording medium includes magnetic storage media (eg, ROM, floppy disk, hard disk, etc.), optical reading media (eg, CD-ROM, DVD, etc.) and carrier waves (eg, the Internet). Storage). In addition, the computer-readable recording medium can be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.

이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The above description is merely illustrative of the technical idea of the present embodiment, and those skilled in the art to which this embodiment belongs will be capable of various modifications and variations without departing from the essential characteristics of the present embodiment. Therefore, the present embodiments are not intended to limit the technical spirit of the present embodiment, but to explain, and the scope of the technical spirit of the present embodiment is not limited by these embodiments. The protection scope of the present embodiment should be interpreted by the claims below, and all technical spirits within the equivalent range should be interpreted as being included in the scope of the present embodiment.

Claims (9)

하나의 픽처를 구성하는 방법에 있어서,
상기 하나의 픽처를 타일로 분할하는 단계,
상기 분할된 타일에 대한 정보를 픽처 레벨 헤더로 설정하는 단계,
상기 분할된 타일 중 다수 개의 타일을 하나의 타일 그룹으로 설정하는 단계,
상기 타일 그룹에 대한 정보를 타일 그룹 헤더로 설정하는 단계, 및
상기 타일 그룹 및 상기 타일 그룹 헤더를 포함해 NAL(Network Adaptive Layer) 유닛으로 구성하는 단계를 포함하는 하나의 픽처를 구성하는 방법.
In the method of constructing one picture,
Dividing the one picture into tiles,
Setting information on the divided tiles as a picture level header,
Setting a plurality of tiles among the divided tiles into one tile group,
Setting information about the tile group to a tile group header, and
A method of configuring one picture including the step of configuring the tile group and the tile group header into a network adaptive layer (NAL) unit.
제1항에 있어서,
상기 분할된 타일에 대한 정보는,
상기 분할된 타일의 레이아웃 정보임을 특징으로 하는 하나의 픽처를 구성하는 방법.
According to claim 1,
Information about the divided tiles,
A method of configuring one picture, characterized in that it is layout information of the divided tiles.
제1항에 있어서,
상기 분할된 타일에 대한 정보는,
상기 픽처가 가로축 및 세로축으로 균등하게 분할되었는지 여부, 가로축으로 분할된 타일의 개수, 세로축으로 분할된 타일의 개수가 포함됨을 특징으로 하는 하나의 픽처를 구성하는 방법.
According to claim 1,
Information about the divided tiles,
A method of constructing one picture characterized in that the pictures are equally divided into horizontal and vertical axes, the number of tiles divided by the horizontal axis, and the number of tiles divided by the vertical axis.
제1항에 있어서,
상기 분할된 타일 중 다수 개의 타일을 하나의 타일 그룹으로 설정하는 단계는,
비슷한 특성의 타일들을 상기 하나의 타일 그룹으로 설정하는 단계임을 특징으로 하는 하나의 픽처를 구성하는 방법.
According to claim 1,
The step of setting a plurality of tiles among the divided tiles into a single tile group,
A method of configuring a picture, characterized in that the steps of setting tiles of similar characteristics to the one tile group.
제1항에 있어서,
상기 타일 그룹에 대한 정보를 타일 그룹 헤더로 설정하는 단계는,
상기 타일 그룹의 위치를 나타내는 정보, 상기 타일 그룹 내 타일간 인터 예측시 주변 다른 타일을 참조하는지 여부, 루프 필터링시 주변 타일 정보를 이용할지 여부를 상기 타일 그룹 헤더로 설정하는 단계임을 특징으로 하는 하나의 픽처를 구성하는 방법.
According to claim 1,
Setting information about the tile group to a tile group header includes:
One that is characterized by setting information indicating the location of the tile group, whether to refer to other adjacent tiles when inter prediction between tiles within the tile group, and whether to use neighboring tile information during loop filtering as the tile group header. How to construct a picture.
제5항에 있어서,
상기 타일 그룹에 대한 정보를 타일 그룹 헤더로 설정하는 단계는,
상기 타일 그룹의 경계 영역에 일정 부분을 패딩하였는지를 여부, 패딩하였다면 패딩 영역에 채워지는 값의 정보를 더 설정하는 단계임을 특징으로 하는 하나의 픽처를 구성하는 방법.
The method of claim 5,
Setting information about the tile group to a tile group header includes:
A method of constructing one picture, characterized in that whether a certain portion is padded in the border region of the tile group, or if padding is performed, setting information of a value to be filled in the padding region.
제1항에 있어서,
상기 타일 그룹 및 상기 타일 그룹 헤더를 포함해 NAL 유닛으로 구성하는 단계는,
상기 타일 그룹에 포함되는 타일들의 타일 헤더 및 타일 데이터를 더 포함해 상기 NAL 유닛으로 구성하는 단계임을 특징으로 하는 하나의 픽처를 구성하는 방법.
According to claim 1,
The step of configuring the tile group and the tile group header as a NAL unit includes:
A method of configuring one picture, characterized in that it further comprises a tile header and tile data of tiles included in the tile group and configuring the NAL unit.
제1항에 있어서,
상기 분할된 타일 중 다수 개의 타일을 하나의 타일 그룹으로 설정하는 단계는,
상기 다수 개의 타일이 다수의 타일 rectangular로 구성되고, 상기 다수의 타일 rectangular가 상기 하나의 타일 그룹으로 설정하는 단계임을 특징으로 하는 하나의 픽처를 구성하는 방법.
According to claim 1,
The step of setting a plurality of tiles among the divided tiles into a single tile group,
A method of configuring a picture, characterized in that the plurality of tiles is composed of a plurality of tiles rectangular, and the plurality of tiles rectangular is set as the one tile group.
하나의 픽처를 구성하는 영상 부호화 장치에 있어서,
상기 하나의 픽처를 타일로 분할하는 블록 분할부, 및
상기 분할된 타일에 대한 정보를 픽처 레벨 헤더로, 상기 분할된 타일 중 다수 개의 타일을 하나의 타일 그룹으로, 상기 타일 그룹에 대한 정보를 타일 그룹 헤더로 설정하고, 상기 타일 그룹 및 상기 타일 그룹 헤더를 포함해 NAL(Network Adaptive Layer) 유닛으로 구성하는 부호화부를 포함하는 영상 부호화 장치.
In the video encoding apparatus constituting one picture,
A block division unit for dividing the one picture into tiles, and
Information on the divided tiles is set as a picture level header, a plurality of tiles among the divided tiles are set as one tile group, and information on the tile groups is set as a tile group header, and the tile group and the tile group header are set. An image encoding apparatus including an encoding unit comprising a network adaptive layer (NAL) unit including a.
KR1020190040909A 2018-04-09 2019-04-08 Method and apparatus for picture splitting for parallel processing KR20200081179A (en)

Priority Applications (9)

Application Number Priority Date Filing Date Title
PCT/KR2019/004213 WO2019199025A1 (en) 2018-04-09 2019-04-09 Method and device for encoding/decoding image
CN201980038439.4A CN112292855B (en) 2018-04-09 2019-04-09 Method and apparatus for encoding/decoding image
US17/046,422 US11509937B2 (en) 2018-04-09 2019-04-09 Method and apparatus for encoding/decoding video
US17/803,671 US11994345B2 (en) 2018-04-09 2022-10-04 Process for the commercial production of high-quality catalyst material
US17/969,946 US11778239B2 (en) 2018-04-09 2022-10-20 Method and apparatus for encoding/decoding video
US17/969,898 US11902590B2 (en) 2018-04-09 2022-10-20 Method and apparatus for encoding/decoding video
US17/969,912 US11778238B2 (en) 2018-04-09 2022-10-20 Method and apparatus for encoding/decoding video
US17/969,934 US11792436B2 (en) 2018-04-09 2022-10-20 Method and apparatus for encoding/decoding video
US18/402,150 US20240236374A9 (en) 2018-04-09 2024-01-02 Method and apparatus for encoding/decoding video

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180171262 2018-12-27
KR20180171262 2018-12-27

Publications (1)

Publication Number Publication Date
KR20200081179A true KR20200081179A (en) 2020-07-07

Family

ID=71603436

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190040909A KR20200081179A (en) 2018-04-09 2019-04-08 Method and apparatus for picture splitting for parallel processing

Country Status (1)

Country Link
KR (1) KR20200081179A (en)

Similar Documents

Publication Publication Date Title
CN110073661B (en) Method and apparatus for encoding and decoding video data
US11509937B2 (en) Method and apparatus for encoding/decoding video
KR101722823B1 (en) Signaling view synthesis prediction support in 3d video coding
EP3158761B1 (en) Extensible design of nesting supplemental enhancement information (sei) messages
EP3989550A1 (en) Method for encoding/decoding image signal and apparatus therefor
US20160080753A1 (en) Method and apparatus for processing video signal
HUE035573T2 (en) Reusing parameter sets for video coding
KR20160034933A (en) Device and method for scalable coding of video information
US20240056571A1 (en) Image signal encoding/decoding method and apparatus therefor
JP2024050835A (en) Image encoding/decoding method and apparatus using color space conversion, and method for transmitting bitstreams
EP2941882B1 (en) Inter-layer reference picture generation for hls-only scalable video coding
KR20190118125A (en) Method for providing picture splitting information for parallel or distributed processing and apparatus using the same
JP2024015150A (en) Image decoding method and apparatus therefor
KR20220145407A (en) Image encoding/decoding method, apparatus and method of transmitting bitstream for selectively encoding size information of a rectangular slice
KR20210098967A (en) Video coding method and apparatus based on quadratic transformation
EP4346215A2 (en) Video signal encoding/decoding method and device therefor
KR20200081179A (en) Method and apparatus for picture splitting for parallel processing
KR20220136436A (en) Video encoding/decoding method and apparatus for selectively signaling filter availability information, and method for transmitting a bitstream
KR20220097513A (en) Transformation-based video coding method and apparatus
US11902590B2 (en) Method and apparatus for encoding/decoding video
US20240236374A9 (en) Method and apparatus for encoding/decoding video
CN114731398B (en) Cross-component adaptive loop filter in video coding
KR20210037538A (en) Method and apparatus for obtaining information on sub-units partitioned from a picture
KR20210042001A (en) Method and apparatus for partitioning picture
KR20220071129A (en) Method for Encoding and Decoding Video Using Adaptive Reference Sample Selection

Legal Events

Date Code Title Description
A201 Request for examination