KR102259186B1 - 나머지를 갖는 균일한 타일 분열을 포함하는 비디오 코딩 - Google Patents

나머지를 갖는 균일한 타일 분열을 포함하는 비디오 코딩 Download PDF

Info

Publication number
KR102259186B1
KR102259186B1 KR1020207031969A KR20207031969A KR102259186B1 KR 102259186 B1 KR102259186 B1 KR 102259186B1 KR 1020207031969 A KR1020207031969 A KR 1020207031969A KR 20207031969 A KR20207031969 A KR 20207031969A KR 102259186 B1 KR102259186 B1 KR 102259186B1
Authority
KR
South Korea
Prior art keywords
segment
tile
value
picture
width
Prior art date
Application number
KR1020207031969A
Other languages
English (en)
Other versions
KR20200130487A (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 텔레호낙티에볼라게트 엘엠 에릭슨(피유비엘)
Publication of KR20200130487A publication Critical patent/KR20200130487A/ko
Application granted granted Critical
Publication of KR102259186B1 publication Critical patent/KR102259186B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/40Tree coding, e.g. quadtree, octree
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

화상을 디코딩하기 위한 방법으로서, 비트스트림에서의 하나 이상의 신택스 엘리먼트에 기초하여 화상이 하나보다 많은 세그먼트로 구분된다는 정보를 디코딩하는 단계; 하나 이상의 신택스 엘리먼트에 기초하여 공간적 세그먼트화가 균일하다는 정보를 디코딩하는 단계; 하나 이상의 신택스 엘리먼트에 기초하여 또는 미리 정의된 세그먼트 유닛 크기에 기초하여 세그먼트 유닛 크기를 결정하는 단계; 비트스트림에서의 하나 이상의 코드 워드로부터 세그먼트 폭을 표시하는 제1 값을 디코딩하는 단계; 비트스트림에서의 하나 이상의 코드 워드로부터 세그먼트 높이를 표시하는 제2 값을 디코딩하는 단계; 세그먼트 유닛들의 수로 존재하는 화상 폭 및 제1 값에 기초하여 세그먼트 열 폭들을 도출하는 단계; 세그먼트 유닛들의 수로 존재하는 화상 높이 및 제2 값에 기초하여 세그먼트 행 높이들을 도출하는 단계; 도출된 세그먼트 열 폭들 및 도출된 세그먼트 행 높이들에 기초하여 현재 블록에 대한 공간적 위치를 도출하는 단계; 및 도출된 공간적 위치에 기초하여 현재 블록을 디코딩하는 단계를 포함한다.

Description

나머지를 갖는 균일한 타일 분열을 포함하는 비디오 코딩
본 개시내용은 HEVC(High Efficiency Video Coding) 및 VVC(Versatile Video Coding)에 관련된다.
HEVC 및 차세대 비디오 코딩
H.265라고 또한 알려진, HEVC(High Efficiency Video Coding)는 시간적 및 공간적 예측 양자 모두를 이용하는 ITU-T 및 MPEG에 의해 표준화되는 블록-기반 비디오 코덱이다. 공간적 예측은 현재 화상 내로부터의 I(intra) 예측을 사용하여 달성된다. 시간적 예측은 이전에 디코딩된 참조 화상들로부터의 블록 레벨에 대한 P(inter) 또는 B(bi-directional inter) 예측을 사용하여 달성된다. 잔차(residual)라고 지칭되는, 원래의 픽셀 데이터와 예측된 픽셀 데이터 사이의 차이는, 또한 엔트로피 코딩되는, 예측 모드 및 모션 벡터들과 같은 필요한 예측 파라미터들과 함께 전송되기 전에, 주파수 도메인으로 변환되고, 양자화되고 다음으로 엔트로피 코딩된다. 변환된 잔차들을 양자화하는 것에 의해, 비디오의 비트레이트와 품질 사이의 트레이드오프가 제어될 수 있다. 양자화의 레벨은 QP(quantization parameter)에 의해 결정된다. 디코더는 엔트로피 디코딩, 역 양자화 및 역 변환을 수행하여 잔차를 획득한다. 다음으로 디코더는 잔차를 인트라 예측 또는 인터 예측에 추가하여 화상을 재구성한다.
MPEG 및 ITU-T는 JVET(Joint Video Exploratory Team) 내에서 HEVC에 대한 후속자 상에서 작업하고 있다. 개발 중인 이러한 비디오 코덱의 명칭은 VCC이다.
슬라이스들
HEVC에서의 슬라이스들의 개념은 화상을 독립적으로 코딩된 슬라이스들로 분할하고, 여기서 각각의 슬라이스는 CTU들(coding tree units)의 유닛들에서의 래스터 스캔 순서로 판독된다. 동일한 화상의 슬라이스들에 대해 상이한 코딩 타입들이 사용될 수 있다, 즉, 슬라이스는 I-슬라이스, P-슬라이스 또는 B-슬라이스일 수 있다. 슬라이스들의 주요 목적은 데이터 손실의 경우에 재동기화를 가능하게 하는 것이다.
타일들
HEVC 비디오 코딩 표준은 화상을 직사각형의 공간적으로 독립된 영역들로 분할하는 타일들이라고 불리는 툴을 포함한다. 타일들을 사용하여, HEVC에서의 화상은 샘플들의 행들 및 열들로 구분될 수 있고 여기서 타일은 행과 열의 교차점이다. HEVC에서의 타일들은 항상 CTU 경계들과 정렬된다.
도 1은 화상에 대해 총 20개의 타일들을 초래하는 4개의 타일 행들 및 5개의 타일 열들을 사용하는 타일 구분의 예를 도시한다.
타일 구조는 행들의 두께들 및 열들의 폭들을 명시하는 것에 의해 PPS(picture parameter set)에서 시그널링된다. 개별 행들 및 열들은 상이한 크기들을 가질 수 있지만, 구분은 항상, 좌측으로부터 우측으로 그리고 상부로부터 하부로 각각, 전체 화상에 걸쳐 있다. 동일한 화상의 타일들 사이의 디코딩 의존성이 존재하지 않는다. 이러한 것은 인트라 예측, 엔트로피 코딩을 위한 컨텍스트 선택 및 모션 벡터 예측을 포함한다. 하나의 예외는 인-루프 필터링 의존성들이 일반적으로 타일들 사이에 허용된다는 점이다.
HEVC에서 타일 구조를 명시하기 위해 사용되는 PPS 신택스가 아래의 표 1에 열거된다. 플래그, 예를 들어, tiles_enabled_flag는 타일들이 사용되는지 여부를 표시한다. 플래그가 설정되면, 타일 열들 및 행들의 수가 명시된다. uniform_spacing_flag는 열 폭들 및 행 높이들이 명시적으로 시그널링되는지 또는 타일 경계들을 균등하게 이격시키기 위한 미리 정의된 방법이 사용되어야 하는지를 명시하는 플래그이다. 명시적 시그널링이 표시되면, 열 폭들은 행 높이들이 뒤따르는 하나씩 시그널링된다. 이러한 열 폭들 및 행 높이들은 CTU 유닛들에서 시그널링된다. loop_filter_across_tiles_enabled_flag 플래그는 타일 경계들에 걸쳐 인-루프 필터들이 화상에서 모든 타일 경계들에 대해 턴 온되는지 또는 턴 오프되는지를 명시한다.
Figure 112020118077910-pct00001
HEVC에서 타일 구조를 명시하기 위한 시맨틱들이 아래에 추가로 상세히 설명된다:
tiles_enabled_flag가 1인 것은 PPS를 참조하는 각각의 화상에 하나보다 많은 타일이 존재한다는 점을 명시한다. tiles_enabled_flag가 0인 것은 PPS를 참조하는 각각의 화상에 하나의 타일만이 존재한다는 점을 명시한다.
num_tile_columns_minus1 플러스 1은 화상을 구분하는 타일 열들의 수를 명시한다. num_tile_columns_minus1은, 포괄적으로, 0 내지 PicWidthInCtbsY - 1의 범위에 있을 것이다. 존재하지 않을 때, num_tile_columns_minus1의 값은 0인 것으로 추론된다.
num_tile_rows_minus1 플러스 1은 화상을 구분하는 타일 행들의 수를 명시한다. num_tile_rows_minus1은, 포괄적으로, 0 내지 PicHeightInCtbsY-1의 범위에 있을 것이다. 존재하지 않을 때, num_tile_rows_minus1의 값은 0인 것으로 추론된다.
tiles_enabled_flag가 1일 때, num_tile_columns_minus1 및 num_tile_rows_minus1은 양자 모두 0이 아닐 것이다.
uniform_spacing_flag가 1인 것은 타일 열 경계들 및 마찬가지로 타일 행 경계들이 화상에 걸쳐 균일하게 분포된다는 점을 명시한다. uniform_spacing_flag가 0인 것은 타일 열 경계들 및 마찬가지로 타일 행 경계들이 화상에 걸쳐 균일하게 분포되지 않지만 신택스 엘리먼트들 column_width_minus1[ i ] 및 row_height_minus1[ i ]를 사용하여 명시적으로 시그널링된다는 점을 명시한다. 존재하지 않을 때, uniform_spacing_flag의 값은 1인 것으로 추론된다.
column_width_minus1[ i ] 플러스 1은 CTB들의 유닛들에서의 i번째 타일 열의 폭을 명시한다.
row_height_minus1[ i ] 플러스 1은 CTB들의 유닛들에서의 i번째 타일 행의 높이를 명시한다.
loop_filter_across_tiles_enabled_flag가 1인 것은 인-루프 필터링 동작들이 PPS를 참조하는 화상들에서 타일 경계들에 걸쳐 수행될 수 있다는 점을 명시한다. loop_filter_across_tiles_enabled_flag가 0인 것은 인-루프 필터링 동작들이 PPS를 참조하는 화상들에서 타일 경계들에 걸쳐 수행되지 않는다는 점을 명시한다. 인-루프 필터링 동작들은 디블록킹 필터 및 샘플 적응적 오프셋 필터 동작들을 포함한다. 존재하지 않을 때, loop_filter_across_tiles_enabled_flag의 값은 1인 것으로 추론된다.
VVC는 HEVC에서와 같이 종래의 슬라이스들을 사용하지 않을 것으로 예상된다. 대신에, 타일들은 VR 스트리밍을 포함하는 비디오 서비스들로부터의 공간적 랜덤 액세스에 대한 증가된 요구로 인해 VVC에서 더 큰 역할을 할 것으로 예상된다.
타일 그룹들의 개념은 마지막 JVET 미팅에서 현재의 VVC 드래프트에 포함되도록 합의되었다. 타일 그룹은 각각의 타일의 오버헤드를 감소시키기 위해 다수의 타일들을 그룹화하기 위해 사용된다.
현재의 VVC 드래프트에서의 타일 그룹은 직사각형일 수 있고 MxN개의 타일들로 구성되며, 여기서 M은 수직적으로 타일들의 수이고 N은 수평적으로 타일들의 수이다.
HEVC에서의 균일한 타일 구분
HEVC 타일 구분은 모든 타일 경계들이 CTU 그리드와 정렬되는 점을 요구한다. 이것은 모든 타일들이 완전한 CTU들로 구성되고 타일들에서 허용되는 불완전한 CTU들만이 화상의 우측 또는 하부 에지에 위치되는 것들이라는 점을 의미한다. HEVC에서, 신택스 엘리먼트 uniform_spacing_flag가 1인 것은 타일 열 경계들 및 마찬가지로 타일 행 경계들이 화상에 걸쳐 균일하게 분포된다는 점을 명시한다. 그러나, 이러한 균일성은 CTU 세분성에 의해 제한된다. HEVC에서, 포괄적으로, 0 내지 num_tile_columns_minus1 범위의 i에 대한 리스트 colWidth[ i ]는 CTB들(coding tree blocks)의 유닛들에서의 i번째 타일 열의 폭을 명시하고, 다음의 식 (A)로서 도출된다:
Figure 112020118077910-pct00002
타일 행들의 높이들(rowHeight[ i ])을 결정하기 위해 유사한 식 (B)가 사용된다:
Figure 112020118077910-pct00003
유연한 타일 분열
JVET-L0359가 뒤따르는, JVET-K0155에서 도입되는, 유연한 타일 분열은 화상을 구분 타일들로 분열하기 위한 기능성을 제공하며, 여기서 각각의 타일의 폭 또는 높이는 CTU 크기보다 더 미세한 유닛 크기의 배수이다. 유연한 타일 분열은 (화상의 우측 및 하부 에지만이 아니라 오히려) 모든 타일의 우측 및 하부 에지에서 불완전한 CTU의 사용을 허용한다. 도 2a 및 도 2b는 JVET-L0359에서와 같이 유연한 타일 분열을 사용하는 2x2 타일 세그먼트화에 대한 예들을 제공하며 여기서 타일 유닛 크기는 CTU 크기의 4분의 1이다.
도 2a-2b에서, 타일들은 두꺼운 검정 라인들에 의해 도시되고 CTU들은 얇은 검정 라인들에 의해 도시된다. 도 2a는 화상에서 20개의 CTU들을 갖는 HEVC 방법을 도시한다. 도 2b는 파선 회색 라인들에 의해 도시되는, 화상에 24개의 CTU들을 갖는 그리고 타일 유닛 크기는 CTU 크기의 4분의 1인, JVET-L0359에서 제안된 방법을 도시한다.
유연한 타일 분열은 대면 크기들이 CTU 크기의 배수가 아닐 것이 요망되는 360° 비디오 및 로드 밸런싱과 같은 적용들에 유용할 수 있다.
본 개시내용에 관련된 JVET-L0359로부터의 신택스 및 시맨틱들이 아래에 열거되며, 여기서 이탤릭체 부분들은 L0359에서 제안되는 추가된 텍스트이다.
Figure 112020118077910-pct00004
Figure 112020118077910-pct00005
tile_unit_size_idc는 루마 샘플들에서의 타일 유닛 블록의 크기를 명시한다. 변수들 TileUnitSizeY, PicWidthInTileUnitsY 및 PicHeightInTileUnitsY는 다음과 같이 도출된다;
Figure 112020118077910-pct00006
num_tile_columns_minus1 플러스 1은 타일 유닛 블록들의 유닛들에서의 화상을 구분하는 타일 열들의 수를 명시한다. num_tile_columns_minus1은, 포괄적으로, 0 내지 PicWidthInTileUnitsY - 1의 범위에 있을 것이다. 존재하지 않을 때, num_tile_columns_minus1의 값은 0인 것으로 추론된다.
num_tile_rows_minus1 플러스 1은 타일 유닛 블록들의 유닛들에서의 화상을 구분하는 타일 행들의 수를 명시한다. num_tile_rows_minus1은, 포괄적으로, 0 내지 PicHeightInTileUnitsY - 1의 범위에 있을 것이다. 존재하지 않을 때, num_tile_rows_minus1의 값은 0인 것으로 추론된다.
변수 NumTilesInPic는 다음과 같이 도출된다:
Figure 112020118077910-pct00007
타일 유닛 블록들의 유닛들에서의 i번째 타일 열의 폭을 명시하는, 포괄적으로, 0 내지 num_tile_columns_minus1의 범위의 i에 대한 리스트 colWidth[ i ]는 다음과 같이 도출된다:
Figure 112020118077910-pct00008
타일 유닛 블록들의 유닛들에서의 j번째 타일 행의 높이를 명시하는, 포괄적으로, 0 내지 num_tile_rows_minus1의 범위의 j에 대한 리스트 rowHeight[ j ]는 다음과 같이 도출된다:
Figure 112020118077910-pct00009
Figure 112020118077910-pct00010
루마 샘플들의 유닛들에서의 i번째 타일 열의 상부-좌측 루마 샘플의 X 위치를 명시하는, 포괄적으로, 0 내지 num_tile_columns_minus1 + 1의 범위의 i에 대한 리스트 TileColX[ i ]는 다음과 같이 도출된다:
Figure 112020118077910-pct00011
루마 샘플들의 유닛들에서의 j번째 타일 행의 상부-좌측 루마 샘플의 Y 위치를 명시하는, 포괄적으로, 0 내지 num_tile_rows_minus1 + 1 범위의 j에 대한 리스트 TileRowY[ j ]는 다음과 같이 도출된다:
Figure 112020118077910-pct00012
세그먼트 그룹들, 세그먼트들 및 유닛들
세그먼트 그룹들, 세그먼트들, 및 유닛들이 이제 설명된다. 세그먼트라는 용어는 타일들보다 더 일반적인 용어로서 사용되는데, 그 이유는 본 개시내용에서의 해결책들이 HEVC 및 VVC 드래프트로부터 알려진 타일 구분들 뿐만 아니라 상이한 종류의 화상 구분 스킴들에 적용될 수 있기 때문이다. 본 개시내용에서, 타일은 세그먼트의 하나의 실시예이지만, 세그먼트들의 다른 실시예들이 또한 존재할 수 있다.
도 3은 비디오 스트림의 화상(10) 및 이러한 화상의 유닛들(8), 세그먼트들(11) 및 세그먼트 그룹들(12)로의 예시적인 구분을 도시한다. 도 3의 (a)는 64개의 유닛들(8)로 구성되는 화상(10)을 도시한다. 도 3의 (b)는 16개의 세그먼트들(11)로 구성되는 동일한 화상(10)의 세그먼트 구분 구조(13)를 도시한다. 구분 구조(13)는 파선 라인들로 도시된다. 각각의 세그먼트(11)는 다수의 유닛들로 구성된다. 세그먼트는 정수 개의 완전한 유닛들 또는 완전한 유닛들 및 부분적인 유닛들의 조합으로 구성될 수 있다. 다수의 세그먼트들이 세그먼트 그룹을 형성한다. 도 3의 (c)는 8개의 세그먼트 그룹들로 구성되는 동일한 화상(10)의 세그먼트 그룹 구분을 도시한다. 세그먼트 그룹은 래스터 스캔 순서로 세그먼트들로 구성될 수 있다. 대안적으로, 세그먼트 그룹은 직사각형을 함께 형성하는 세그먼트들의 임의의 그룹으로 구성될 수 있다. 대안적으로, 세그먼트 그룹은 세그먼트들의 임의의 서브세트로 구성될 수 있다.
도 4는 화상(10)을 도시하며 여기서 파선 라인들은 화상을 4개의 세그먼트들로 분할하는 구분 구조를 도시한다. 도 4는 3개의 유닛들(16, 17, 18)을 또한 도시한다. 도면에 도시되는 바와 같이, 2개의 유닛들(16, 17)은 하나의 현재 세그먼트(15)에 속하고 하나의 유닛(18)은 상이한, 이웃 세그먼트(14)에 속한다. 세그먼트들은 다른 세그먼트들에 관하여 독립적이며, 이는 유닛들을 디코딩할 때 세그먼트 경계들이 화상 경계들과 유사하게 취급된다는 점을 의미한다. 이러한 것은, 예를 들어, 인트라 예측 모드들의 도출 및 양자화 파라미터 값들의 도출과 같은, 디코딩 동안의 엘리먼트들의 도출 프로세스에 영향을 미친다.
인트라 모드들은 본 분야에서 잘 알려져 있으며, 샘플 예측을 위해 현재 화상의 이전에 디코딩된 샘플들로부터의 예측만을 사용하는 유닛들에 대해 사용되고 시그널링된다. 현재 유닛(16)에서의 인트라 예측 모드의 도출은 다른, 이웃 유닛들(17)에서의 이전에 도출된 인트라 예측 모드들에 의존한다는 점이 일반적이다. 세그먼트들이 독립적일 때, 현재 유닛(16)에서의 인트라 예측 모드의 도출은 현재 세그먼트(15)에 속하는 유닛들(17)에서의 이전에 도출된 인트라 예측 모드들에만 의존할 수 있고, 상이한 세그먼트(14)에 속하는 임의의 유닛(18)에서의 임의의 인트라 예측 모드에 의존하지 않을 수 있다.
이러한 것은 도 4에서의 구분 구조가 상이한 세그먼트(14)에서의 유닛들(18)에서의 인트라 예측 모드들을 현재 세그먼트(15)에서의 유닛들(16)에 대한 인트라 예측 모드의 도출에 대해 이용불가능하게 한다는 점을 의미한다. 상이한 세그먼트에서의 일부 유닛들(18)에서의 모드는, 이러한 유닛들이 동일한 세그먼트에 속한다면, 현재 세그먼트(15)에서의 유닛(16)에서의 인트라 예측 모드의 도출에 잘 사용될 수 있다는 점에 유의한다. 대신에, 세그먼트 경계는 인트라 모드 도출에 대해 현재 세그먼트(15)에서의 유닛들(16)에 대한 화상 경계와 동일한 효과를 가질 수 있다.
본 개시내용의 맥락에서, 세그먼트는 타일 또는 슬라이스일 수 있고, 세그먼트 그룹은 타일 그룹일 수 있다. 본 개시내용에서, "타일(tile)" 및 "세그먼트(segment)"라는 용어는 교환가능하게 사용될 수 있다. 일부 실시예들에서, 유닛은 CTU와 동등할 수 있다.
HEVC 식들 (A) 및 (B)에 따르면, 타일 열 폭들(및 행 높이들)은
Figure 112020118077910-pct00013
-
Figure 112020118077910-pct00014
의 형태로 2개의 항들을 서로로부터 감산하는 것에 의해 계산되며, 여기서 i는 음이 아닌 정수이고 k는 분자가 PicWidthInCtbsY이고 분모가 num_tile_columns_minus1+1인 유리수이다. k가 정수가 아닐 때 이러한 계산의 출력은, k 및 i의 값들에 의존하여
Figure 112020118077910-pct00015
또는
Figure 112020118077910-pct00016
일 수 있다. 이러한 고유의 특징은 타일 열 폭 및 타일 행 높이 크기들에서 하나의 CTU만큼 큰 변형들을 야기한다. 본 개시내용의 맥락에서, 이러한 변형들은 타일 크기 리플이라고 지칭된다(일부 예들에 대해서는 아래의 표 2 참조). 이러한 리플에 대한 패턴은 일정하지 않으며, CTU에서의 화상의 폭 및 k의 값을 제공하는 타일 열들 및 행들의 수, 및 i에 의해 결정되는 타일 그리드 상의 타일의 위치지정에 의존한다. uniform_spacing_flag가 1인 HEVC 타일 구분을 사용하는 타일 열 폭에서의 리플들의 일부 예들이 표 2에 예시된다. 동일한 예들이 타일 행 높이들에 마찬가지로 적용될 수 있다.
Figure 112020118077910-pct00017
표 2는 uniform_spacing_flag가 1인 HEVC 타일 구분을 사용하여 계산되는 타일 열 폭 및 PicWidthInCtbsY 및 num_tile_columns_minus1에 대해 주어진 값들을 도시한다. colWidth [ i ]의 값들에서의 리플들은 가시적이다.
최종 타일 크기들에서의 이러한 일관성 없음은 입력 값들의 상세사항들 및 최종 타일 크기 값들을 예측하기 위한 코드를 조사할 필요성으로 인해 바람직하지 않다. 리플 이슈는 수평 및 수직 방향들 양자 모두에서 발생할 수 있다. 이러한 것은 상세사항들을 검사하지 않고 타일 그리드에서의 특정 타일의 정확한 수평 및 수직 크기들을 결정하는 것을 더 어렵게 만든다.
다른 문제점은 타일들의 균일한 간격을 위한 HEVC의 현재 구현에서, 화상에서의 타일들의 일부 행들 또는 열들이 제거되면, 화상의 나머지 부분 내부의 타일 경계들이 새로운 리플 패턴에 따라 이동할 수 있다는 점이다. 이러한 것은 타일 추출 프로세스에서 타일 크기 및 어드레스들을 재계산하는 것을 요구할 것이다. 표 500으로서 도 5에 예시되는 예는 uniform_spacing_flag가 1일 때 일부 타일들이 원래의 화상으로부터 추출되면, 타일 열 경계들 및 따라서 타일 크기들이 어떻게 HEVC 균일 타일 간격에서 변경될 수 있는지를 도시한다. 원래의 화상에서의 타일 경계들에 비해 일부 타일 열(들)을 제거하는 경우에 변경되는 타일 경계들은 굵은 라인들로 도시된다.
도 5에서의 표 500은 HEVC 균일 타일 간격을 사용하는 타일 경계들을 예시한다. 내부 타일 경계들은 원래의 화상과 원래의 화상으로부터 일부 타일들을 제거한 후 사이에서 변경된다. 원래의 화상에 대한 파라미터들은 다음과 같이 설정된다: uniform_spacing_flag = 1, PicWidthInCtbsY = 10, num_tile_columns_minus1 = 3, num_tile_rows_minus1 = 1.
JVET-L0359는 (화상의 우측 및 하부 에지만이 아니라 오히려) 모든 타일의 우측 및 하부 에지에서 불완전한 CTU들을 사용할 가능성을 제공하는 것에 의해 더 미세한 타일 유닛 크기 세분성을 허용하는 유연한 타일 분열을 제안한다. 도 2는 JVET-L0359에서와 같이 유연한 타일 분열을 사용하는 2x2 타일 세그먼트화에 대한 예를 제공하며 여기서 타일 유닛 크기는 CTU 크기의 4분의 1이고 uniform_spacing_flag는 1이다.
JVET-L0359에서 제안되는 바와 같이, uniform_spacing_flag가 1이면, 타일 열들의 폭들은 다음의 식을 사용하여 결정된다:
Figure 112020118077910-pct00018
타일 행들의 높이들(rowHeight[ i ])을 결정하기 위해 유사한 식이 사용된다.
위 구현은 JVET-L0359 제안에 대해 리플 문제점이 또한 존재한다는 점을 보여준다. CTU 세분성보다 더 미세한 세분성으로 타일 크기를 정의하기 위해 도입된 가능성은 본 명세서에 설명되는 바와 같이 일관성 없는 타일 크기들의 또 다른 아티팩트를 도입한다. L0359에서 제안되는 알고리즘을 사용하여, 타일 유닛 크기가, 예를 들어, 2분의 1 또는 4분의 1로 변경될 때 타일 구분은 일부 화상 폭 및 타일 유닛 크기 값들에 대해 일관되게 유지되지 않는다. 그 이유는 L0359에서 균일한 타일 분열을 위한 제안된 식이 상이한 타일 유닛 크기들을 허용하는 한편 타일 그리드에서의 약간 더 큰 또는 더 작은 타일들의 배열을 정규화하지 않는 점 때문이다. 아래의 표 3은 화상 크기가 고정되는, 그리고 타일 유닛 크기가 변경되는, 예를 들어, L0359에서 제안된 유연한 타일 분열을 사용하여 2분의 1 또는 4분의 1로 분할되는 경우에 대한 일부 예들을 도시한다. 최종 타일 열 폭들은 때때로 화상의 좌측 및 때때로 그 우측 상에 더 큰 타일 폭이 있는 방식으로 타일 유닛 크기에서의 변경의 결과로서 플립한다. 이러한 예측불가능성은 요망되지 않는다.
Figure 112020118077910-pct00019
표 3은 uniform_spacing_flag가 1로 설정될 때 L0359에서와 같이 유연한 타일 분열을 사용하여 계산되는 타일 열 폭을 도시한다.
본 발명자들은 타일 크기들에 대한 반올림 효과의 일관성 없음을 조직화하기 위한 규칙이 코드 및 입력 값들의 상세한 조사에 대한 필요성 없이 최종 타일 크기들을 결정하는 것을 용이하게 할 것이라고 결론을 내릴 수 있다. 타일 크기 리플들을 정규화하기 위한 시스템적 접근은 원래의 화상 및 원래의 화상으로부터의 타일들의 서브세트에 대한 일관된 타일 구분 결과들을 또한 제공할 것이다.
별도의 문제점은 균일한 타일 분열로부터 초래되는 타일들이 크기에 있어서 상당히 변할 수 있다는 점이다. 도 6에 도시되는 표 600에서, 예를 들어, HEVC 균일 타일 간격에 대한 원래의 화상에서의 타일들은 4개의 상이한 크기들을 가지며 가장 작은 것은 2x3 CTU들이고 가장 큰 것은 3x4 CTU들이다.
분할의 제한된 세분성에 따라 세그먼트 크기들이 정확할 수 없을 때 바람직한 순서로 세그먼트들의 크기에 대한 리플들을 정규화하는 해결책이 본 명세서에 제안된다. 제안되는 해결책에서, 반올림 효과에 따라 약간 더 작은 또는 더 큰 크기들을 갖는 타일들은 바람직한 배열을 갖는다. 하나의 실시예에서, 좌측에서 우측으로의 스캔 방향에서의 타일 폭들은, 오직 동일하게 유지되거나 또는 감소할 것이다. 본 명세서에 개시되는 제안된 해결책은 타일 그리드에서의 타일 열 폭 및/또는 타일 행 높이 또는 개별 타일들의 폭 및 높이에 적용될 수 있다. 하나의 실시예에서, (주어진 세분성 및 반올림 효과로 인해) 약간 더 큰 크기들을 갖는 타일들은 화상의 상부-좌측 부분에 위치하고, 약간 더 작은 크기들을 갖는 타일들은 화상의 하부-우측 부분에 위치한다.
대안적인 해결책들에서는, 결과적인 타일 크기들이 가능한 한 동일한 크기들을 갖는 균일한 타일들에 대한 방법들이 본 명세서에 제안된다.
따라서, 하나의 양태에서 화상을 디코딩하기 위한 방법이 제공된다. 이러한 방법은 비트스트림에서의 하나 이상의 신택스 엘리먼트에 기초하여 화상이 하나보다 많은 세그먼트로 구분된다는 정보를 디코딩하는 단계를 포함한다. 이러한 방법은 또한 비트스트림에서의 하나 이상의 신택스 엘리먼트에 기초하여 공간적 세그먼트화가 균일하다는 정보를 디코딩하는 단계를 포함한다. 이러한 방법은 또한 하나 이상의 신택스 엘리먼트에 기초하여 또는 미리 정의된 세그먼트 유닛 크기에 기초하여 세그먼트 유닛 크기를 결정하는 단계를 포함한다. 이러한 방법은 또한 비트스트림에서의 하나 이상의 코드 워드로부터 세그먼트 폭을 표시하는 제1 값을 디코딩하는 단계를 포함한다. 이러한 방법은 또한 비트스트림에서의 하나 이상의 코드 워드로부터 세그먼트 높이를 표시하는 제2 값을 디코딩하는 단계를 포함한다. 이러한 방법은 또한 세그먼트 유닛들의 수로 존재하는 화상 폭 및 제1 값에 기초하여 세그먼트 열 폭들을 도출하는 단계를 포함한다. 이러한 방법은 또한 세그먼트 유닛들의 수로 존재하는 화상 높이 및 제2 값에 기초하여 세그먼트 행 높이들을 도출하는 단계를 포함한다. 이러한 방법은 또한 도출된 세그먼트 열 폭들 및 도출된 세그먼트 행 높이들에 기초하여 현재 블록에 대한 공간적 위치를 도출하는 단계를 포함한다. 이러한 방법은 또한 도출된 공간적 위치에 기초하여 현재 블록을 디코딩하는 단계를 포함한다.
제안된 해결책들은 현재 타일의 폭을 이전 타일들과는 독립적으로 그렇지만 나머지 수의 타일들로 구분될 (열 또는 행에서의) 나머지 수의 유닛들 상에서만 유지한다. 결과로서, 타일들의 균일한 간격을 위한 제안된 해결책은 타일들이 추출되면 추출된 타일들 및 나머지 타일들에 대해 타일 구분을 그대로 유지한다. 이러한 것은 화상 분열 또는 타일 추출의 경우에 타일 크기들을 재계산할 필요성을 제거할 것이다. 타일들의 균일한 간격을 위한 HEVC의 현재 구현에서, 화상에서의 타일들의 일부 행들 또는 열들이 제거되면, 리플 패턴이 변경될 수 있고 화상의 나머지 부분 내부의 타일 경계들이 새로운 리플 패턴에 따라 이동할 수 있다.
일관성은 제안된 해결책의 다른 장점이다. 타일들의 균일한 간격을 위한 제안된 해결책은 타일 크기들(예를 들어, 타일 열 폭 및 타일 행 높이)을 조직화하고, 입력 파라미터들 또는 코드의 임의의 상세한 조사 없이 타일 크기들의 최종 배열에 대한 규칙을 제공한다. 예를 들어, 타일 유닛에서의 화상 폭/높이가 타일 열들/행들의 수로 나눠지지 않을 때 제안된 해결책의 하나의 실시예에서, 더 큰 크기들로 반올림되는 모든 타일들이 화상의 좌측/ 상부 부분에서 발견된다. 제안된 해결책은 또한 타일 유닛 크기에 대한 변경들의 경우에 균일 타일 간격인 타일 크기들의 리플들을 조절한다.
제안된 방법은 또한 JVET-L0359에서 제안되는 HEVC 및 유연한 타일 분열에 비해 복잡도를 감소시킨다. 제안된 방법은 타일 열들의 폭들 및 타일 행들의 높이들을 결정하기 위해 반복 당 오직 1개의 분할을 갖고 증식은 갖지 않고, 한편 HEVC 방법은 반복 당 2개의 분할들 및 2개의 증식들을 사용한다.
대안적인 해결책들에서, 결과적인 타일 크기들은 가능한 한 균일하다.
본 명세서에 포함되는 그리고 본 명세서의 부분을 형성하는 첨부 도면들은 다양한 실시예들을 예시한다.
도 1은 하나의 실시예에 따른 타일 구분의 예를 도시한다.
도 2a는 HEVC 타일 분열을 사용하는 타일 세그먼트화를 도시한다.
도 2b는 유연한 타일 분열을 사용하는 타일 세그먼트화를 도시한다.
도 3은 비디오 스트림의 화상 및 예시적인 구분을 도시한다.
도 4는 일부 실시예들에 따른 화상을 도시한다.
도 5는 일부 실시예들에 따른 표를 도시한다.
도 6은 일부 실시예들에 따른 표를 도시한다.
도 7은 실시예에 따른 프로세스를 예시하는 흐름도이다.
도 8은 실시예에 따른 프로세스를 예시하는 흐름도이다.
도 9는 하나의 실시예에 따른 디코더의 기능 유닛들을 도시하는 도면이다.
도 10은 하나의 실시예에 따른 인코더의 기능 유닛들을 도시하는 도면이다.
도 11은 일부 실시예들에 따른 노드의 블록도이다.
도 12는 하나의 실시예에 따른 화상을 도시한다.
도 13은 하나의 실시예에 따른 균일한 타일 구조를 도시한다.
도 14는 하나의 실시예에 따른 타일 구조를 도시한다.
도 15는 실시예에 따른 프로세스를 예시하는 흐름도이다.
도 16은 하나의 실시예에 따른 디코더의 기능 유닛들을 도시하는 도면이다.
다음의 용어들은 실시예들을 설명하기 위해 사용되었다:
산술 연산자 "/"는 제로로 향하는 결과의 절단을 갖는 정수 나눗셈을 위해 사용된다. 예를 들어, 7/4 및 -7/-4는 1로 절단되고, -7/4 및 7/-4는 -1로 절단된다.
산술 연산자 "÷"는 절단 또는 반올림이 의도되지 않는 수학 식들에서의 나눗셈을 위해 사용된다.
Ceil(x)는 x 이상의 가장 작은 정수를 제공한다.
Floor(x)는 x 이하의 가장 큰 정수를 제공한다.
"타일 열 폭(tile column width)" 및 "타일 폭(tile width)"이라는 용어들은 교환가능하게 사용되며 이는 타일 열 폭들이 타일 그리드에서 계산되고 있을 때 또는 타일 폭들이 개별적으로 계산되고 있을 때(예를 들어, 타일 그리드가 없으면) 해결책이 적용될 수 있음을 의미한다.
"타일 행 높이(tile row height)" 및 "타일 높이(tile height)"라는 용어들은 교환가능하게 사용되며 이는 타일 행 높이들이 타일 그리드에서 계산되고 있을 때 또는 타일 높이들이 개별적으로 계산되고 있을 때(예를 들어, 타일 그리드가 없으면) 해결책이 적용될 수 있음을 의미한다.
일부 실시예들에 따르면, uniform_spacing_flag = 1에 대해 타일들의 폭(및 동등하게 높이)을 정의하기 위한 본 명세서에 개시되는 제안된 해결책은 다음의 엘리먼트들을 갖는다:
각각의 타일의 폭을 정의하기 위한 루프에서, 이용가능한 나머지 유닛 크기를 사용하여 타일에 대한 폭이 정의되며 이는 타일에 아직 할당되지 않은 행에서의 유닛 크기의 수를 의미함;
다음으로 나머지 유닛 크기들의 수가 행에서의 나머지 타일들의 수로 나누어짐;
획득된 타일 크기가 타일들의 폭을 순서화하기 위한 주어진 규칙에 따라 더 큰 또는 더 작은 정수(Ceil() 또는 Floor() 함수들)를 향해 반올림됨; 및
각각의 타일의 폭을 정의하기 위한 루프의 모든 반복에서 나머지 유닛 크기들(예를 들어, CTU들)의 수를 재계산하기 위한 선택적 엘리먼트.
동일한 엘리먼트들이 타일들의 높이를 정의하는데 적용된다.
본 명세서에 개시되는 제안된 해결책은 비트스트림으로부터 화상(10)을 디코딩하기 위한 디코더 방법을 설명하고, 이러한 방법은 비트스트림으로부터 화상에서의 모든 세그먼트들에 대한 크기들 및/또는 위치들을 도출하는 단계를 포함하고, 화상(10)은 다수의 유닛(8)들로 구성되고, 구분 구조(13)는 화상을 적어도 2개의 세그먼트들(11)로 분할하며, 디코더는 비트스트림에서의 하나 이상의 코드 워드를 디코딩하는 것에 의해 공간적 세그먼트화가 균일하다고 결정하고, 디코더는 비트스트림에서의 하나 이상의 코드 워드를 디코딩하는 것에 의해 공간적 세그먼트들의 수를 결정하고, 디코더는 타일 유닛 크기를 결정하고, 균일한 폭들 또는 높이들로의 세그먼트들의 구분은 공간적 세그먼트들의 수와 독립적인 고정된 리플 패턴을 뒤따르며, 세그먼트 크기들의 도출은 세그먼트들의 수에 걸쳐 루프에서 행해지고, 이러한 루프 내부에서 세그먼트화될 나머지 타일 유닛들의 수 및 나머지 세그먼트들의 수가 계산된다.
하나의 예에서, 제안된 해결책은 다음의 HEVC 라인들을:
Figure 112020118077910-pct00020
다음의 라인들로 대체한다:
Figure 112020118077910-pct00021
제안된 방법은 또한 JVET-L0359에서 제안되는 HEVC 및 유연한 타일 분열에 비해 복잡도를 감소시킨다. 제안된 방법은 타일 열들의 폭들 및 타일 행들의 높이들을 결정하기 위해 반복 당 오직 1개의 분할을 갖고 증식은 갖지 않고, 한편 HEVC 방법은 반복 당 2개의 분할들 및 2개의 증식들을 사용한다.
실시예 1. 단조 리플
실시예에서, 행에서의 세그먼트들의 폭 또는 열에서의 세그먼트들의 높이는 미리 정의된 스캔 방향을 뒤따르는 오름차 순서로 또는 내림차 순서로 결코 있지 않는다. 세그먼트는 화상에서의 타일일 수 있고, 따라서 타일 크기들은 스캔 방향에서 단조(결코 오름차이지 않거나 또는 결코 내림차이지 않음)이다. 예를 들어, 타일 폭들이 좌측에서 우측으로의 스캔 방향에서 결코 오름차이지 않은 것은 타일의 폭이 제1 타일의 좌측에 공간적으로 위치되는 동일한 행 상의 다른 타일의 폭보다 결코 더 크지 않다는 점을 의미한다.
제1 실시예에서, HEVC의 상부 상의 타일 열 폭(좌측에서 우측으로의 스캔 방향) 및 타일 행 높이(상부에서 하부로의 스캔 방향)가 결코 오름차이지 않으면, 다음의 HEVC 함수들:
Figure 112020118077910-pct00022
이 다음의 함수들로 대체된다:
Figure 112020118077910-pct00023
colWidth 및 rowHeight 리스트들에서의 결과적인 값들은 루마 코딩 트리 블록의 유닛들에 존재한다. 예를 들어, CTU 크기가 128x128이면, 이러한 값들은 128개의 루마 샘플들의 유닛들에 존재하여 2의 값은 256개의 루마 샘플들을 의미한다.
화상에서의 블록들의 스캔 순서를 결정하기 위해 디코더에 의해 colWidth 및 rowHeight 리스트들이 다음으로 사용된다. 블록 데이터가 디코딩될 때, 블록의 공간적 위치는 colWidth 및 rowHeight 리스트들에서의 값들에 기초한다. 디코더는 타일 스캔 어드레스들로부터 래스터 스캔 어드레스들로의 변환 리스트들을 구성할 수 있고, 주위의 다른 방식은 colWidth 및 rowHeight의 값들을 사용한다. 디코더는 다음으로 블록들의 공간적 위치들을 결정하기 위해 디코딩 동안 변환 리스트들을 사용할 수 있다. HEVC에서, 변환 리스트들이 사용되고 CtbAddrRsToT들 및 CtbAddrTsToR들이라고 불리운다.
도 6은 HEVC에 대한 타일 크기 할당과 제1 실시예의 위 예시적인 구현을 비교하는 표 600을 도시한다. 표 600에 도시되는 바와 같이, 제안된 해결책에서, 타일 열들이 화상의 좌측 또는 우측 또는 양자 모두의 측들로부터 제거될 때 타일 경계들은 원래의 화상과 동일하게 유지된다. 반올림 효과는 Ceil() 함수를 사용하고 타일들에 걸쳐 루프의 모든 반복에서 나머지 타일 유닛들의 수를 재계산하여 타일 열 폭들을 결정하는 모든 경우들에서 화상의 좌측 상에 약간 더 넓은 타일들을 놓도록 지배된다.
표 600은 내부 타일 경계들이 우리의 제안된 해결책에서 그대로 유지되는 동안 HEVC 균일 타일 간격을 사용하여 원래의 화상으로부터 일부 타일 열들을 제거한 후에 내부 타일 경계들이 어떻게 변경되는지를 도시한다. 원래의 화상에 대한 파라미터들은 다음과 같이 설정된다: uniform_spacing_flag = 1, PicWidthInCtbsY = 10, num_tile_columns_minus1 = 3, num_tile_rows_minus1 = 1.
아래는, CTU 크기보다 더 작은 타일 크기 세분성들을 지원하는 JVET-L0359에서 제안되는 식들의 상부 상에 의거하는, 제1 실시예의 다른 예이다. 다음의 식 변경들은 JVET-L0359의 상부 상에서 제안된다:
Figure 112020118077910-pct00024
그리고 타일 행 높이들에 대해 동등하게 다음의 변경들이 제안된다:
Figure 112020118077910-pct00025
Figure 112020118077910-pct00026
colWidth 및 rowHeight 리스트들에서의 결과적인 값들은 루마 타일 유닛들의 유닛들에 존재한다. 예를 들어, 타일 유닛 크기가 32x32이면, 이러한 값들은 32개의 루마 샘플들의 유닛들에 존재하여 2의 값은 64개의 루마 샘플들을 의미한다.
표 4는 상이한 화상 폭 값들에 대해 JVET-L0359과 실시예 1에서 제안된 해결책과 사이의 타일들의 폭에 대한 결과들을 비교한다. JVET-L0359에 대한 결과들은 타일 유닛 크기가 변경될 때 타일 열들의 폭(colWidth[i])에서의 일관성 없음을 보여주고 한편 실시예 1에서 제안된 해결책은 타일 유닛 크기가 변경될 때 타일 열들의 일관된 폭(colWidth[i])을 제공하고 이는 화상의 좌측 상에 놓이도록 약간 더 큰 타일들을 일관되게 우선순위화하기 때문이다.
Figure 112020118077910-pct00027
표 4는, 제1 실시예에서의 제안된 해결책에 비해 JVET-L0359에서와 같이 유연한 타일 분열을 사용하여, uniform_spacing_flag =1, num_tile_columns_minus1=1일 때 계산되는 타일 열 폭을 도시한다.
제1 실시예에서, 디코더는 다음 단계들의 전부 또는 서브세트를 수행할 수 있다:
1. 비트스트림에서의 하나 이상의 신택스 엘리먼트로부터 하나 이상의 화상이 하나보다 많은 세그먼트로 구분되는 정보를 디코딩함. 이러한 신택스가 바람직하게는 화상 파라미터 세트에 위치된다. 이러한 신택스는 세그먼트 행들의 수를 표시하는 수 R 및 세그먼트 열들의 수를 표시하는 수 C를 명시할 수 있다.
2. 비트스트림에서의 하나 이상의 신택스 엘리먼트로부터 공간적 세그먼트화가 균일하다는 정보를 디코딩함. 이러한 신택스가 바람직하게는 화상 파라미터 세트에 위치된다. 이러한 신택스는 공간적 세그먼트화가 균일한지 여부를 명시하는 1-비트 플래그로 구성될 수 있다.
3. 하나 이상의 신택스 엘리먼트로부터 또는 미리 정의된 세그먼트 유닛 크기를 사용하여 세그먼트 유닛 크기 S를 결정함. 미리 정의된 유닛 크기가 사용되면, 이는 CTU의 크기 또는 하나의 치수에서의 CTU의 크기일 수 있다. 예를 들어, CTU 크기가 128x128이면, 세그먼트 유닛 크기 S는 128(또는 128x128)일 수 있다.
4. 세그먼트 유닛들의 수로 화상의 크기를 계산함. 이러한 계산은 화상의 높이 및 폭에 대해 별도로 행해질 수 있어 HS(horizontal size)는 세그먼트 유닛 크기 S에 의해 나누어지는 루마 샘플들에서의 화상 폭으로 설정된다. VS(vertical size)는 세그먼트 유닛 크기에 의해 나누어지는 루마 샘플들에서의 화상 높이로 설정될 수 있다.
5. 화상에서의 세그먼트들의 수 및 세그먼트 유닛 크기 S로부터 모든 세그먼트들의 폭 및 높이들을 도출함. 이러한 도출은 세그먼트들의 수에 걸쳐 루프에서 행해지고 아직 세그먼트화되지 않은 세그먼트들의 수 및 세그먼트 유닛들의 수로 아직 세그먼트화되지 않은 화상의 크기가 루프의 각각의 반복에서 업데이트된다.
이러한 도출은 2개의 별도의 루프들에서 행해질 수 있다:
a. 다음의 서브단계들에 의해 타일 유닛들의 수로 존재하는 화상 폭 및 세그먼트 열들의 수 C로부터 세그먼트 열 폭들을 도출함:
i. 아직 세그먼트화되지 않은 화상 폭 A를 값 HS로 설정함
ii. 아직 세그먼트화되지 않은 세그먼트 열들의 수 B를 값 C로 설정함
iii. 반복 당 하나의 폭 값이 도출되는 그리고 각각의 반복에서 아직 세그먼트화되지 않은 세그먼트 열들의 수 B 및 아직 세그먼트화되지 않은 화상 폭 A가 양자 모두 업데이트되는 루프에서 열 폭들을 도출함. 이러한 반복은 C회 실행될 수 있음.
1. 도출된 열 폭 W는 Ceil( A ÷ B)로 설정될 수 있음
2. 다음으로, 변수 A는 A-W로 업데이트될 수 있고, 변수 B는 B-1로 업데이트될 수 있음
b. 다음의 서브단계들에 의해 타일 유닛들의 수로 존재하는 화상 높이 및 세그먼트 행들의 수 R로부터 세그먼트 행 높이들을 도출함:
i.아직 세그먼트화되지 않은 화상 높이 A를 값 VS로 설정함
ii. 아직 세그먼트화되지 않은 세그먼트 행들의 수 B를 값 R로 설정함
iii. 반복 당 하나의 높이 값이 도출되는 그리고 각각의 반복에서 아직 세그먼트화되지 않은 세그먼트 행들의 수 B 및 아직 세그먼트화되지 않은 화상 높이 A가 양자 모두 업데이트되는 루프에서 행 높이들을 도출함. 이러한 반복은 R회 실행될 수 있음.
1. 도출된 행 높이 H는 Ceil( A ÷ B)로 설정될 수 있음
2. 다음으로, 변수 A는 A-H로 업데이트될 수 있고, 변수 B는 B-1로 업데이트될 수 있음
6. 도출된 세그먼트 폭들 및 도출된 세그먼트 높이들을 사용하여 현재 블록에 대한 공간적 위치를 도출함.
7. 도출된 공간적 위치를 사용하여 현재 블록을 디코딩함 현재 블록에 대한 디코딩된 샘플 값들을 도출된 공간적 위치에 대응하는 메모리 위치들에서 메모리에 저장함.
이러한 실시예의 변형에서, 함수 Ceil()은, 오직 수평, 또는 오직 수직 또는 양자 모두의 방향들에서, 함수 Floor()로 대체될 수 있다.
이러한 실시예의 변형에서, 플래그는 2개의 함수들 Ceil()과 Floor() 사이에서 선택할 수 있다. 일부 실시예들에서, 수평 및 수직 방향들에 대해 2개의 독립적인 플래그들이 존재할 수 있다.
실시예 2. 명시된 순서
제2 실시예에서, 행에서의 세그먼트들의 폭 또는 열에서의 세그먼트들의 높이는 명시된 순서를 뒤따른다. 이러한 명시된 순서는 비트들의 시퀀스의 형태로 템플릿 패턴을 사용하여 비트스트림에서 시그널링될 수 있다. 세그먼트들은 화상에서의 타일들일 수 있고, 따라서 이러한 실시예에서, 타일 크기들에 대한 바람직한 리플의 형상이 명시된다. 예를 들어, 약간 더 넓은 모든 타일들이 화상의 좌측에 존재한다. 이러한 것은 타일 폭(또는 높이)을 명시하기 위해 타일들에 걸쳐 루프의 모든 반복에서 Ceil() 또는 Floor() 함수를 명시하는 비트들의 시퀀스의 형태로 표현되는 템플릿 패턴에 의해 행해질 수 있다. 템플릿 비트 시퀀스에서 함수 Ceil()은 1에 의해 표현될 수 있고 함수 Floor()는 0에 의해 표현될 수 있다. 예로서, 템플릿(110)은 처음 2개의 타일들에서의 Ceil() 함수 및 타일 크기를 명시하기 위한 루프의 제3 반복에서의 함수 Floor()를 명시할 것이다. 이러한 패턴은 타일들의 수가 템플릿 비트 시퀀스의 길이보다 더 크면 주기적으로 반복될 수 있다.
실시예 3. 바이너리 타일 분열들
제3 실시예에서, 세그먼트 폭 또는 높이의 명시적인 순서화를 갖는 바이너리 세그먼트 분열이 화상의 폭 또는 높이에 적용된다. 세그먼트들은 화상에서의 타일들일 수 있고 따라서 바이너리 구분은 균일한 타일 크기들을 갖는 2n 타일들로 화상을 구분하기 위해 사용된다. (제2 실시예에서와 같은) 미리 정의된 리플 패턴이 이러한 실시예와 조합하여 사용될 수 있다. 바이너리 구분은, 알고리즘이 세그먼트들의 명시된 수에 또는 오직 단계들의 정의된 수까지 도달할 때까지 계층적으로 수행될 수 있고, 세그먼트 분할들의 나머지는 다른 방법들에 의해 수행된다. 예로서, 총 크기는 더 작은 또는 더 큰 세그먼트를 좌측 또는 우측에 배정하도록 명시되는 제1 단계에서 2로 나누어진다. 후속 단계들 각각에서, 좌측 및 우측 세그먼트들 각각은 가능하게는 더 작은 또는 더 큰 세그먼트의 위치에 대한 명시된 규칙 및 다음 바이너리 구분 레벨을 사용하여 2개의 부분들로 분할된다.
실시예 4. 리플의 디폴트 순서화
제4 실시예에서, 화상의 행에서의 세그먼트들의 폭 또는 열에서의 세그먼트들의 높이는 세그먼트들의 폭 또는 높이에 대해 명시된 디폴트 순서를 뒤따른다. 세그먼트들은 화상에서의 타일들일 수 있고 따라서 세그먼트 크기들에서 리플들을 관리하기 위해 디폴트 바람직한 순서화가 정의된다. 디폴트 리플 패턴이 비트스트림에서 시그널링될 수 있다. 이러한 실시예의 변형에서 디폴트 패턴이 중복기입될 수 있다. 이러한 실시예의 다른 변형에서 디폴트 순서화 또는 다른 명시된 순서화가 사용되고 있는지를 플래그가 명시할 수 있다.
실시예 5.
제5 실시예에서, 목표는 균일한 간격 방법을 사용하여 동일하게 크기가 조정되는 많은 큰 타일들을 달성하는 것이다.
이러한 것은 비트스트림에서의 하나 이상의 코드 워드로부터 TileWidth 값을 디코딩하는 것에 의해 달성될 수 있다. 다음으로 하나를 제외한 화상에서의 모든 타일 열들의 폭 값들은 디코딩된 TileWidth 값으로 설정된다. 하나의 나머지 타일 열의 폭 값은 화상 폭 값 마이너스 하나의 나머지 타일 열을 제외한 모든 타일 열들의 폭 값들의 합으로 설정된다. 하나의 나머지 열의 폭 값 또한 TileWidth 값일 수 있다.
대안적으로 또는 추가적으로, TileHeight 값은 비트스트림에서의 하나 이상의 코드 워드로부터 디코딩된다. 다음으로 하나를 제외한 화상에서의 모든 타일 행들의 높이 값들은 도출된 TileHeight 값으로 설정된다. 하나의 나머지 타일 행의 높이 값은 화상 높이 값 마이너스 하나의 나머지 타일 행을 제외한 모든 타일 행들의 높이 값들의 합으로 설정된다. 하나의 나머지 행의 높이 값 또한 TileHeight 값일 수 있다.
이러한 실시예에서의 방법은, 예를 들어, 대부분의 타일들이 4x4 CTU들 또는 타일 유닛들 크기인 도 12에 도시되는 화상(1200)에 예시된 바와 같이, 대부분의 타일들이 동일한 크기인 것을 초래한다.
이러한 실시예는 HEVC v5 또는 드래프트 VVC 사양으로부터 다음의 텍스트를 제거하는 것에 의해 HEVC v5 또는 현재 VVC 드래프트에서 구현될 수 있다.
Figure 112020118077910-pct00028
위 제거된 텍스트는 각각 HEVC v5 또는 VVC 드래프트 사양에서 다음의 텍스트에 의해 대체된다.
Figure 112020118077910-pct00029
Figure 112020118077910-pct00030
tile_width 및 tile_height에 대한 신택스 및 시맨틱들은 다음과 같이 보일 수 있다:
Figure 112020118077910-pct00031
이러한 신택스 및 시맨틱들이 아래에 추가로 상세히 설명된다:
num_tile_columns_minus1 플러스 1은 화상을 구분하는 타일 열들의 수를 명시한다. num_tile_columns_minus1은, 포괄적으로, 0 내지 PicWidthInCtbsY - 1의 범위에 있을 것이다. tiles_enabled_flag가 0일 때, num_tile_columns_minus1의 값은 0인 것으로 추론된다. 그렇지 않고, uniform_spacing_flag가 1이면, num_tile_columns_minus1의 값이 위에 도시되는 바와 같이 도출된다.
num_tile_rows_minus1 플러스 1은 화상을 구분하는 타일 행들의 수를 명시한다. num_tile_rows_minus1은, 포괄적으로, 0 내지 PicHeightInCtbsY-1의 범위에 있을 것이다. tiles_enabled_flag가 0일 때, num_tile_rows_minus1의 값은 0인 것으로 추론된다. 그렇지 않고, uniform_spacing_flag가 1이면, num_tile_rows_minus1의 값이 위에 도시되는 바와 같이 도출된다.
tiles_enabled_flag가 1일 때, num_tile_columns_minus1 및 num_tile_rows_minus1은 양자 모두 0이 아닐 것이다.
tile_width는 마지막 타일 열에 속하지 않는 모든 타일들의 폭을 명시한다. tile_width는, 포괄적으로, 1 내지 PicWidthInCtbsY - 1의 범위에 있을 것이다.
tile_height는 마지막 타일 행에 속하지 않는 모든 타일들의 높이를 명시한다. tile_height는, 포괄적으로, 1 내지 PicHeightInCtbsY - 1의 범위에 있을 것이다.
디코더는 이러한 실시예에 대해 다음의 단계들의 전부 또는 서브세트를 수행할 수 있다:
1. 비트스트림에서의 하나 이상의 신택스 엘리먼트로부터 하나 이상의 화상이 하나보다 많은 세그먼트로 구분되는 정보를 디코딩함. 이러한 신택스가 바람직하게는 화상 파라미터 세트에 위치된다.
2. 비트스트림에서의 하나 이상의 신택스 엘리먼트로부터 공간적 세그먼트화가 균일하다는 정보를 디코딩함. 이러한 신택스가 바람직하게는 화상 파라미터 세트에 위치된다. 이러한 신택스는 공간적 세그먼트화가 균일한지 여부를 명시하는 1-비트 플래그로 구성될 수 있다.
3. 하나 이상의 신택스 엘리먼트로부터 또는 미리 정의된 세그먼트 유닛 크기를 사용하여 세그먼트 유닛 크기 S를 결정함. 미리 정의된 유닛 크기가 사용되면, 이는 코딩 트리 유닛일 수 있다. 예를 들어, CTU 크기가 128x128이면, 세그먼트 유닛 크기 S는 128(또는 128x128)일 수 있다.
4. 세그먼트 유닛들의 수로 화상의 크기를 계산함. 이러한 계산은 높이 및 폭에 대해 별도로 행해질 수 있어 HS(horizontal size)는 세그먼트 유닛 크기로 나누어지는 루마 샘플들에서의 화상 폭으로 설정된다. VS(vertical size)는 세그먼트 유닛 크기에 의해 나누어지는 루마 샘플들에서의 화상 높이로 설정될 수 있다.
5. 비트스트림에서의 코드 워드로부터 S개의 유닛들에서의 타일 폭을 표현하는 값 TileWidth를 디코딩함. 이러한 코드 워드는 UVLC 코드 워드일 수 있다. 이러한 코드 워드는 타일 폭 마이너스 1로서 디코딩될 수 있고, 따라서 값 TileWidth는 디코딩된 값 플러스 1로 설정될 수 있다.
6. 비트스트림에서의 코드 워드로부터 S개의 유닛들에서의 타일 높이를 표현하는 값 TileHeight를 디코딩함. 이러한 코드 워드는 UVLC 코드 워드일 수 있다. 이러한 코드 워드는 타일 높이 마이너스 1로서 디코딩될 수 있고, 따라서 값 TileWidth는 디코딩된 값 플러스 1로 설정될 수 있다.
7. 다음의 서브단계들에 의해 타일 유닛들의 수로 존재하는 화상 폭 및 TileWidth 변수로부터 세그먼트 열 폭들을 도출함:
a. 아직 세그먼트화되지 않은 화상 폭 A를 값 HS로 설정함
b. 변수 i를 값 0으로 설정함
c. 아직 세그먼트화되지 않은 화상 폭(A)이 값 TileWidth보다 더 큰 한 다음의 서브단계들을 반복적으로 실행함:
i. i번째 세그먼트 열의 열 폭을 TileWidth로 설정함
ii. 값 A로부터 값 TileWidth를 감산함
iii. 변수 i의 값을 1만큼 증가시킴
d. i번째 세그먼트 열의 열 폭을 값 A로 설정함
e. 변수 num_tile_columns_minus1을 변수 i의 값으로 설정하거나, 또는 대안적으로, 화상에서의 타일 열들의 수를 표현하는 변수를 변수 i의 값 플러스 1로 설정함
8. 다음의 서브단계들에 의해 타일 유닛들의 수로 존재하는 화상 높이 및 TileHeight 변수로부터 세그먼트 행 높이들을 도출함:
a. 아직 세그먼트화되지 않은 화상 높이 A를 값 VS로 설정함
b. 변수 i를 값 0으로 설정함
c. 아직 세그먼트화되지 않은 화상 높이(A)가 TileHeight 값보다 더 큰 한 다음의 서브단계들을 반복적으로 실행함:
i. i번째 세그먼트 행의 행 높이를 TileHeight로 설정함
ii. 값 A로부터 값 TileHeight를 감산함
iii. 변수 i의 값을 1만큼 증가시킴
d. i번째 세그먼트 행의 행 높이를 값 A로 설정함
e. 변수 num_tile_rows_minus1을 변수 i의 값으로 설정하거나, 또는 대안적으로, 화상에서의 타일 행들의 수를 표현하는 변수를 변수 i의 값 플러스 1로 설정함
9. 도출된 세그먼트 폭들 및 도출된 세그먼트 높이들을 사용하여 현재 블록에 대한 공간적 위치를 도출함
10. 도출된 공간적 위치를 사용하여 현재 블록을 디코딩함 현재 블록에 대한 디코딩된 샘플 값들을 도출된 공간적 위치에 대응하는 메모리 위치들에서 메모리에 저장함.
실시예 6.
제6 실시예에서, 균일한 타일 구분을 위한 다수의 방법들 중 하나가 사용될 수 있다. 하나의 실시예에서, 다수의 방법들 중 어느 하나를 사용할지를 표시하는 하나 이상의 신택스 엘리먼트가 존재한다. 하나 이상의 신택스 엘리먼트는 2개의 방법들 중 어느 것이 사용되는지를 명시하는 플래그일 수 있다. 하나 이상의 신택스 엘리먼트가 화상 파라미터 세트와 같은 파라미터 세트에 존재할 수 있지만 이러한 실시예가 오직 그 위치로 제약되는 것은 아니다. 다수의 방법들의 세트는 HEVC v5 사양 및 드래프트 VVC 사양에 설명되는 방법들과 같은 해당 분야에 알려진 방법들 뿐만 아니라 본 명세서에 개시되는 임의의 방법을 포함할 수 있다.
실시예 7. 좌측 또는 상부로의 작은 것들
본 개시내용에서 위에 설명된 실시예들 5-6에서, 타일들은 전체-크기 타일들이 화상의 타일 구조에서 좌측 및 상부에 위치되도록 순서화되었다.
제7 실시예에서, 타일들은 실시예들 5-6에서와 반대 방식으로 순서화된다, 즉, 타일 폭 나머지는 균일한 타일 구조에서 가장 좌측 타일(들)의 폭이고 및/또는 타일 높이 나머지는 균일한 타일 구조에서 가장 상부 타일(들)의 높이이다. 다시 말해서 전체-크기 타일들은 우측 및/또는 하부에 위치되고, 타일 폭 나머지인 폭 및/또는 타일 높이인 높이를 갖는 더 작은 크기의 타일들은 타일 구조에서 좌측 및/또는 상부에 위치된다. 이러한 것은 896x640 픽셀들인 화상(1300)을 갖는 도 13에서 예시된다. 실선 라인들은 타일 경계들을 표현하고, 파선 라인들은 CTU 경계들을 표현한다. 각각의 CTU는 64x64 픽셀들이다. 도 13은 하부 및 우측으로의 전체 크기 타일들 및 좌측 및 상부에 위치되는 더 작은 타일들을 갖는 균일한 타일 구조의 예를 도시한다.
실시예 8. 타일 그룹 경계들과의 정렬
제8 실시예에서, 타일들의 크기들은 타일들이 타일 그룹들에서 그룹화된다는 추가와 함께 이전 실시예들 중 임의의 것에 따라 순서화되며 여기서 각각의 타일 그룹은 타일 높이/폭 나머지인 타일 폭/높이를 갖는 타일들의 행/열을 포함할 수 있다.
이러한 것은 타일 그룹이 큰 점선 라인들로 표현되고, 타일들이 실선 라인들로 표현되며 CTU들이 파선 라인들로 표현되는 도 14에 예시된다. 총 나머지가 CTU들의 수로 동일하게 분할가능한지에 의존하여 모든 타일 그룹들이 동일한 타일 폭 나머지를 갖는 타일들을 가질 수 있는 것은 아니라는 점에 주목한다. 도 14는 각각의 타일 그룹이 타일 폭/높이 나머지 값인 폭 및/또는 높이를 갖는 타일을 포함할 수 있는 타일 그룹들을 갖는 타일 구조의 예를 도시한다.
도 14에 도시되는 예에서, 타일 그룹 폭은 5개의 CTU들이고 타일 폭은 2개의 CTU들이다. 화상의 폭이 14개의 CTU들이기 때문에 화상은, 각각 5개, 5개 및 4개의 타일들을 갖는, 수평 방향에서의 3개의 타일 그룹들로 분할된다. 2개의 제1 타일 그룹들은 2개의 CTU들의 2개의 전체 크기 타일들 및 1개의 CTU의 나머지 타일 폭을 갖는 1개의 타일로 수평으로 분할된다. 가장 좌측 타일 그룹은 2개의 CTU에 의해 동일하게 분할가능하므로, 나머지 타일 폭을 갖는 타일은 필요하지 않다. 더 많은 CTU들(예를 들어, 수평으로 4개의 타일들)을 포함하는 더 큰 타일들을 갖는 시나리오가 또한 존재할 수 있으며 여기서 나머지들은 3개, 3개, 2개일 것이다, 즉, 모든 타일 그룹들은 타일 폭 나머지를 갖는 타일들을 갖지만, 타일 폭 나머지는 모든 타일 그룹들에 대해 동일하지 않다.
도 15는 실시예에 따른 프로세스(1500)를 예시하는 흐름도이다. 프로세스(1500)는 화상을 디코딩하기 위한 방법이다. 이러한 방법(1500)은 비트스트림에서의 하나 이상의 신택스 엘리먼트에 기초하여 화상이 하나보다 많은 세그먼트로 구분된다는 정보를 디코딩하는 단계(단계 1502); 비트스트림에서의 하나 이상의 신택스 엘리먼트에 기초하여 공간적 세그먼트화가 균일하다는 정보를 디코딩하는 단계(단계 1504); 하나 이상의 신택스 엘리먼트에 기초하여 또는 미리 정의된 세그먼트 유닛 크기에 기초하여 세그먼트 유닛 크기를 결정하는 단계(단계 1506); 비트스트림에서의 하나 이상의 코드 워드로부터 세그먼트 폭을 표시하는 제1 값을 디코딩하는 단계(단계 1508); 비트스트림에서의 하나 이상의 코드 워드로부터 세그먼트 높이를 표시하는 제2 값을 디코딩하는 단계(단계 1510); 세그먼트 유닛들의 수로 존재하는 화상 폭 및 제1 값에 기초하여 세그먼트 열 폭들을 도출하는 단계(단계 1512); 세그먼트 유닛들의 수로 존재하는 화상 높이 및 제2 값에 기초하여 세그먼트 행 높이들을 도출하는 단계(단계 1514); 도출된 세그먼트 열 폭들 및 도출된 세그먼트 높이들에 기초하여 현재 블록에 대한 공간적 위치를 도출하는 단계(단계 1516); 및 도출된 공간적 위치에 기초하여 현재 블록을 디코딩하는 단계(단계 1518)를 포함한다.
일부 실시예들에서, 세그먼트 열 폭들을 도출하는 단계는 하나의 열을 제외한 화상에서의 모든 세그먼트 열들의 열 폭 값들을 제1 값으로 설정하는 단계, 및 하나의 나머지 세그먼트 열의 열 폭 값을 화상 폭 마이너스 하나의 세그먼트 열을 제외한 모든 세그먼트 열들의 폭 값들의 합으로 설정하는 단계를 포함한다.
일부 실시예들에서, 세그먼트 행 높이들을 도출하는 단계는 하나의 행을 제외한 화상에서의 모든 세그먼트 행들의 행 높이 값들을 제2 값으로 설정하는 단계, 및 하나의 나머지 세그먼트 행의 행 높이 값을 화상 높이 마이너스 하나의 세그먼트 행을 제외한 모든 세그먼트 행들의 높이 값들의 합으로 설정하는 단계를 포함한다.
일부 실시예들에서, 하나 이상의 신택스 엘리먼트는 화상 파라미터 세트에 위치된다.
일부 실시예들에서, 하나 이상의 신택스 엘리먼트는 공간적 세그먼트화가 균일한지를 명시하는 1-비트 플래그를 포함한다.
일부 실시예들에서, 미리 결정된 세그먼트 유닛 크기는 코딩 트리 유닛과 동일하다.
일부 실시예들에서, 세그먼트에서의 화상의 크기를 계산하는 단계는, 높이에 대한 화상 세그먼트의 크기를 계산하는 단계 및 폭에 대한 화상 세그먼트의 크기를 계산하는 단계를 포함한다.
일부 실시예들에서, 제1 값은 세그먼트 유닛들에서의 타일 폭을 표현하는 TileWidth 값이고, 제2 값은 세그먼트 유닛들에서의 타일 높이를 표현하는 TileHeight이다.
도 16은 일부 실시예들에 따른 디코더(1602)의 기능 유닛들을 도시하는 도면이다. 도 16에 도시되는 바와 같이, 디코더(1602)는 비트스트림에서의 하나 이상의 신택스 엘리먼트에 기초하여 화상이 하나보다 많은 세그먼트로 구분된다는 정보를 디코딩하기 위한 제1 디코딩 유닛(1604); 비트스트림에서의 하나 이상의 신택스 엘리먼트에 기초하여 공간적 세그먼트화가 균일하다는 정보를 디코딩하기 위한 제2 디코딩 유닛(1606); 하나 이상의 신택스 엘리먼트에 기초하여 또는 미리 정의된 세그먼트 유닛 크기에 기초하여 세그먼트 유닛 크기를 결정하기 위한 결정 유닛(1608); 비트스트림에서의 하나 이상의 코드 워드로부터 세그먼트 폭을 표시하는 제1 값을 디코딩하기 위한 제3 디코딩 유닛(1610); 비트스트림에서의 하나 이상의 코드 워드로부터 세그먼트 높이를 표시하는 제2 값을 디코딩하기 위한 제4 디코딩 유닛(1612); 세그먼트 유닛들의 수로 존재하는 화상 폭 및 제1 값에 기초하여 세그먼트 열 폭을 도출하기 위한 제1 도출 유닛(1614); 세그먼트 유닛들의 수로 존재하는 화상 높이 및 제2 값에 기초하여 세그먼트 행 높이를 도출하기 위한 제2 도출 유닛(1616); 도출된 세그먼트 열 폭들 및 도출된 세그먼트 높이들에 기초하여 현재 블록에 대한 공간적 위치를 도출하기 위한 제3 도출 유닛(1618); 및 도출된 공간적 위치에 기초하여 현재 블록을 디코딩하기 위한 제5 디코딩 유닛(1620)을 포함한다.
도 7은 실시예에 따른 프로세스(700)를 예시하는 흐름도이다. 프로세스(700)는 비트스트림으로부터 다수의 유닛들(8)을 포함하는 화상(10)을 디코딩하기 위한 방법이고, 이러한 화상은 구분 구조(13)에 의해 적어도 2개의 공간적 세그먼트(11)로 구분된다. 이러한 방법은 비트스트림에서의 하나 이상의 코드 워드를 디코딩하는 단계(단계 710); 하나 이상의 코드 워드에 기초하여 구분 구조가 균일하다고 결정하는 단계(단계 720); 하나 이상의 코드 워드에 기초하여 공간적 세그먼트들의 수를 결정하는 단계(단계 730); 세그먼트 유닛 크기를 결정하는 단계(단계 740); 하나 이상의 코드 워드로부터 화상에서의 모든 공간적 세그먼트들에 대한 크기들 및/또는 위치들을 도출하는 단계(단계 750)- 세그먼트 크기들 및/또는 위치의 도출은 제1 치수 또는 방향에서의 공간적 세그먼트들의 수에 걸쳐 제1 루프를 포함하고, 세그먼트화될 제1 치수 또는 방향에서의 나머지 세그먼트 유닛들의 수 및 제1 치수에서의 나머지 세그먼트들의 수는 제1 루프 내부에서 계산됨 -를 포함한다.
일부 실시예들에서, 세그먼트 크기들 및/또는 위치의 도출은 제1 치수 또는 방향 이외의 제2 치수 또는 방향에서의 공간적 세그먼트들의 수에 걸쳐 제2 루프를 포함하고, 세그먼트화될 제2 치수 또는 방향에서의 나머지 세그먼트 유닛들의 수 및 제2 치수 또는 방향에서의 나머지 세그먼트들의 수는 제2 루프 내부에서 계산된다.
일부 실시예들에서, 제1 치수 또는 방향은 수평 치수 또는 방향이고 제2 치수 또는 방향은 수직 치수 또는 방향이다.
일부 실시예들에서, 행에서의 세그먼트들의 폭 또는 열에서의 세그먼트들의 높이는 명시된 순서를 뒤따른다.
일부 실시예들에서, 행에서의 세그먼트들의 폭 또는 열에서의 세그먼트들의 높이는 결코 오름차 순서로 또는 결코 내림차 순서로 있지 않는다.
일부 실시예들에서, 세그먼트 폭 또는 높이의 명시적인 순서화를 갖는 바이너리 세그먼트 분열이 화상의 폭 또는 높이에 적용된다.
일부 실시예들에서, 화상의 행에서의 세그먼트들의 폭 또는 열에서의 세그먼트들의 높이는 세그먼트들의 폭 또는 높이에 대해 명시된 디폴트 순서를 뒤따른다.
일부 실시예들에서, 세그먼트 유닛 크기는 CTU(coding tree unit)의 크기와 동일하다.
일부 실시예들에서, 세그먼트 유닛 크기는 CTU(coding tree unit)의 크기보다 더 작다. 일부 실시예들에서, 세그먼트 유닛 크기는 CTU의 크기보다 더 크다. 일부 실시예들에서, 임의의 세그먼트는 타일이다.
일부 실시예들에서, 크기들을 도출하는 단계는,
리스트 Sizes[]를 다음과 같이 도출하는 단계를 포함하고:
A = PicWidthInTileUnits
B = NumberOfSegmentColumns
for( i = 0; i < NumberOfSegmentColumns; i++ ) {
Sizes[ i ] = Round( A ÷ B)
A = A - Sizes[ i ]
B = B - 1
}
여기서 NumberOfSegmentColumns는 세그먼트 열들의 수이고,
PicWidthInTileUnits는 타일 유닛들에서의 화상의 폭이고, Round()는 Floor() 함수 또는 Ceil() 함수 중 어느 하나이며, ÷는 절단 또는 반올림이 없는 나눗셈이다.
일부 실시예들에서, 크기들을 도출하는 단계는,
리스트 Sizes[]를 다음과 같이 도출하는 단계를 포함하고:
A = PicHeightInTileUnits
B = NumberOfSegmentRows
for( i = 0; i < NumberOfSegmentRows; i++ ) {
Sizes[ i ] = Round( A ÷ B)
A = A - Sizes[ i ]
B = B - 1
}
여기서 NumberOfSegmentRows는 세그먼트 행들의 수이고, PicHeightInTileUnits는 타일 유닛들에서의 화상의 높이이고, Round()는 Floor() 함수 또는 Ceil() 함수이고, ÷는 절단 또는 반올림이 없는 나눗셈이다.
일부 실시예들에서, 세그먼트들(11)은 다른 세그먼트들(11)에 관하여 독립적이서, 현재 세그먼트(15)에서의 임의의 유닛(16)에 대한 임의의 인트라 예측 모드의 도출은 현재 세그먼트(15)에 속하는 유닛들(17)에서의 이전에 도출된 인트라 예측 모드들에만 의존하고 상이한 세그먼트(14)에 속하는 임의의 유닛(18)에서의 임의의 인트라 예측 모드에 의존하지 않는다.
일부 실시예들에서, 이러한 방법은 세그먼트들을 균일한 폭들 또는 높이들로 구분하는 추가의 단계를 포함하고 공간적 세그먼트들의 수와 독립적으로 고정 리플 패턴을 뒤따른다.
도 8은 실시예에 따른 프로세스(800)를 예시하는 흐름도이다. 프로세스(800)는 다수의 유닛들(8)을 포함하는 화상(10)을 비트스트림으로 인코딩하기 위한 방법이고, 이러한 화상은 균일한 구분 구조(13)에 의해 적어도 2개의 공간적 세그먼트들(11)로 구분된다. 이러한 방법은 하나 이상의 코드 워드를 비트스트림으로 인코딩하는 것에 의해 구분 구조(13)가 균일하다는 정보를 인코딩하는 단계(단계 810); 하나 이상의 코드 워드를 비트스트림으로 인코딩하는 것에 의해 공간적 세그먼트들의 수를 인코딩하는 단계(단계 820); 세그먼트 유닛 크기를 결정하는 단계(단계 830); 화상에서의 모든 공간적 세그먼트들에 대한 크기들 및/또는 위치들을 도출하여 비트스트림으로 인코딩하는 단계(단계 840)- 세그먼트 크기들의 도출은 제1 치수 또는 방향에서의 공간적 세그먼트들의 수에 걸쳐 제1 루프를 포함하고, 세그먼트화될 제1 치수 또는 방향에서의 나머지 세그먼트 유닛들의 수 및 제1 치수 또는 방향에서의 나머지 세그먼트들의 수는 제1 루프 내부에서 계산됨 -를 포함한다.
일부 실시예들에서, 세그먼트 크기들 및/또는 위치의 도출은 제1 치수 또는 방향 이외의 제2 치수 또는 방향에서의 공간적 세그먼트들의 수에 걸쳐 제2 루프를 포함하고, 세그먼트화될 제2 치수 또는 방향에서의 나머지 세그먼트 유닛들의 수 및 제2 치수 또는 방향에서의 나머지 세그먼트들의 수는 제2 루프 내부에서 계산된다.
일부 실시예들에서, 제1 치수 또는 방향은 수평 치수 또는 방향이고 제2 치수 또는 방향은 수직 치수 또는 방향이다.
도 9는 일부 실시예들에 따른 디코더(902)의 기능 유닛들을 도시하는 도면이다. 도 9에 도시되는 바와 같이, 디코더(902)는 비트스트림에서의 하나 이상의 코드 워드를 디코딩하는 디코딩 유닛(904); 하나 이상의 코드 워드에 기초하여 구분 구조가 균일하다고 결정하기 위한 제1 결정 유닛(906), 하나 이상의 코드 워드에 기초하여 공간적 세그먼트들의 수를 결정하기 위한 제2 결정 유닛(908); 세그먼트 유닛 크기를 결정하기 위한 제3 결정 유닛(910); 하나 이상의 코드 워드로부터 화상에서의 모든 공간적 세그먼트들에 대한 크기들 및/또는 위치들을 도출하기 위한 도출 유닛(912)- 세그먼트 크기들 및/또는 위치의 도출은 제1 치수에서의 공간적 세그먼트들의 수에 걸쳐 제1 루프 및 제2 치수에서의 공간적 세그먼트들의 수에 걸쳐 제2 루프를 포함하고, 세그먼트화될 제1 치수에서의 나머지 세그먼트 유닛들의 수 및 제1 치수에서의 나머지 세그먼트들의 수는 제1 루프 내부에서 계산되고, 세그먼트화될 제2 치수에서의 나머지 세그먼트 유닛들의 수 및 제2 치수에서의 나머지 세그먼트들의 수는 제2 루프 내부에서 계산됨 -을 포함한다.
도 10은 일부 실시예들에 따른 인코더(1002)의 기능 유닛들을 도시하는 도면이다. 도 10에 도시되는 바와 같이, 인코더(1002)는 하나 이상의 코드 워드를 비트스트림으로 인코딩하는 것에 의해 구분 구조(13)가 균일하다는 정보를 인코딩하기 위한 제1 인코딩 유닛(1004); 하나 이상의 코드 워드를 비트스트림으로 인코딩하는 것에 의해 공간적 세그먼트들의 수를 인코딩하기 위한 제2 인코딩 유닛(1006); 세그먼트 유닛 크기를 결정하기 위한 결정 유닛(1008); 화상에서의 모든 공간적 세그먼트들에 대한 크기들 및/또는 위치들을 도출하여 비트스트림으로 인코딩하기 위한 도출 유닛(1010)- 세그먼트 크기들의 도출은 제1 치수에서의 공간적 세그먼트들의 수에 걸쳐 제1 루프 및 제2 치수에서의 공간적 세그먼트들의 수에 걸쳐 제2 루프를 포함하고, 세그먼트화될 제1 치수에서의 나머지 세그먼트 유닛들의 수 및 제1 치수에서의 나머지 세그먼트들의 수는 제1 루프 내부에서 계산되고, 세그먼트화될 제2 치수에서의 나머지 세그먼트 유닛들의 수 및 제2 치수에서의 나머지 세그먼트들의 수는 제2 루프 내부에서 계산됨 -을 포함한다.
일부 실시예들에서, 인코더는 화상을 다수의 균일한 공간적 세그먼트들로 분할하는 구분 구조를 정의하도록- 각각의 공간적 세그먼트는 적어도 하나의 유닛을 포함하고, 세그먼트 크기들의 도출은 제1 치수에서의 공간적 세그먼트들의 수에 걸쳐 제1 루프에서 그리고 제2 치수에서의 공간적 세그먼트들의 수에 걸쳐 제2 루프에서 수행되고, 세그먼트화될 제1 치수에서의 나머지 세그먼트 유닛들의 수 및 제1 치수에서의 나머지 세그먼트들의 수는 제1 루프 내부에서 계산되며, 세그먼트화될 제2 치수에서의 나머지 세그먼트 유닛들의 수 및 제2 치수에서의 나머지 세그먼트들의 수는 제2 루프 내부에서 계산됨 -; 구분 구조에 따라 복수의 공간적 세그먼트를 인코딩하여 복수의 코딩된 공간적 세그먼트들을 생성하도록- 각각의 코딩된 공간적 세그먼트는 구분 구조의 공간적 세그먼트들 중 하나에 대응하고, 각각의 코딩된 공간적 세그먼트는 독립적이어서 제1 공간적 세그먼트의 제1 유닛에 대한 임의의 인트라 예측 모드의 도출은 제1 공간적 세그먼트의 제2 유닛에 대한 도출된 인트라 예측 모드에 의존하고 구분 구조의 다른 공간적 세그먼트들의 유닛들에 대한 임의의 인트라 예측 모드에 독립적임 -; 그리고 화상을 복수의 공간적 세그먼트들로 분할하기 위해 사용되는 균일한 구분 구조를 표시하는 정보 및 복수의 코딩된 공간적 세그먼트들을 포함하는 비트 스트림을 생성하도록 구성된다.
도 11은, 일부 실시예들에 따른, 디코더(902, 1602) 및/또는 인코더(1002)를 구현하기 위한 장치(1100)의 블록도이다. 장치(1100)가 디코더를 구현할 때, 장치(1100)는 "디코딩 장치(1100)"라고 지칭될 수 있고, 장치(1100)가 인코더를 구현할 때, 장치(1100)는 "인코딩 장치(1100)"라고 지칭될 수 있다. 도 11에 도시되는 바와 같이, 장치(1100)( "노드"라고 또한 알려짐)는, 하나 이상의 P(processors)(1155)(예를 들어, ASIC(application specific integrated circuit), FPGA들(field-programmable gate arrays) 등과 같은, 범용 마이크로프로세서 및/또는 하나 이상의 다른 프로세서)를 포함할 수 있는, PC(processing circuitry)(1102); 장치(1100)로 하여금 네트워크 인터페이스(1148)가 접속되는 네트워크(1110)(예를 들어, IP(Internet Protocol) 네트워크)에 접속되는 다른 노드들에 데이터를 송신하고 이들로부터 데이터를 수신할 수 있게 하기 위한 Tx(transmitter)(1145) 및 Rx(receiver)(1147)를 포함하는 네트워크 인터페이스(1148); 및, 하나 이상의 비-휘발성 저장 디바이스 및/또는 하나 이상의 휘발성 저장 디바이스를 포함할 수 있는, 로컬 저장 유닛("데이터 저장소 시스템"이라고 또한 알려짐)(1108)을 포함할 수 있다. PC(1102)가 프로그램가능 프로세서를 포함하는 실시예들에서, CPP(computer program product)(1141)가 제공될 수 있다. CPP(1141)는 CRI(computer readable instructions)(1144)를 포함하는 CP(computer program)(1143)를 저장하는 CRM(computer readable medium)(1142)을 포함한다. CRM(1142)은, 자기 매체(예를 들어, 하드 디스크), 광 매체, 메모리 디바이스들(예를 들어, 랜덤 액세스 메모리, 플래시 메모리) 등과 같은, 비-일시적 컴퓨터 판독가능 매체일 수 있다. 일부 실시예들에서, 컴퓨터 프로그램(1143)의 CRI(1144)는, PC(1102)에 의해 실행될 때, CRI가 장치(1100)로 하여금 본 명세서에 설명되는 단계들(예를 들어, 흐름도들을 참조하여 본 명세서에 설명되는 단계들)을 수행하게 하도록 구성된다. 다른 실시예들에서, 장치(1100)는 코드에 대한 필요성 없이 본 명세서에 설명되는 단계들을 수행하도록 구성될 수 있다. 즉, 예를 들어, PC(1102)는 단지 하나 이상의 ASIC으로 구성될 수 있다. 그러므로, 본 명세서에 설명되는 실시예들의 특징들은 하드웨어 및/또는 소프트웨어로 구현될 수 있다.
다양한 실시예들의 요약
A1. 화상을 디코딩하기 위한 방법으로서, 이러한 방법은, 비트스트림에서의 하나 이상의 신택스 엘리먼트에 기초하여 화상이 하나보다 많은 세그먼트로 구분된다는 정보를 디코딩하는 단계; 비트스트림에서의 하나 이상의 신택스 엘리먼트에 기초하여 공간적 세그먼트화가 균일하다는 정보를 디코딩하는 단계; 하나 이상의 신택스 엘리먼트에 기초하여 또는 미리 정의된 세그먼트 유닛 크기에 기초하여 세그먼트 유닛 크기를 결정하는 단계; 비트스트림에서의 하나 이상의 코드 워드로부터 세그먼트 폭을 표시하는 제1 값을 디코딩하는 단계; 비트스트림에서의 하나 이상의 코드 워드로부터 세그먼트 높이를 표시하는 제2 값을 디코딩하는 단계; 세그먼트 유닛들의 수로 존재하는 화상 폭 및 제1 값에 기초하여 세그먼트 열 폭들을 도출하는 단계; 세그먼트 유닛들의 수로 존재하는 화상 높이 및 제2 값에 기초하여 세그먼트 행 높이들을 도출하는 단계; 도출된 세그먼트 열 폭들 및 도출된 세그먼트 행 높이들에 기초하여 현재 블록에 대한 공간적 위치를 도출하는 단계; 및 도출된 공간적 위치에 기초하여 현재 블록을 디코딩하는 단계를 포함한다.
A2. 실시예 A1의 방법으로서, 세그먼트 열 폭들을 도출하는 단계는, 하나의 열을 제외한 화상에서의 모든 세그먼트 열들의 열 폭 값들을 제1 값으로 설정하는 단계, 및 하나의 나머지 세그먼트 열의 열 폭 값을 화상 폭 마이너스 하나의 세그먼트 열을 제외한 모든 세그먼트 열들의 폭 값들의 합으로 설정하는 단계를 포함한다.
A3. 실시예 A1 또는 A2의 방법으로서, 세그먼트 행 높이들을 도출하는 단계는, 하나의 행을 제외한 화상에서의 모든 세그먼트 행들의 행 높이 값들을 제2 값으로 설정하는 단계, 및 하나의 나머지 세그먼트 행의 행 높이 값을 화상 높이 마이너스 하나의 세그먼트 행을 제외한 모든 세그먼트 행들의 높이 값들의 합으로 설정하는 단계를 포함한다.
A4. 실시예들 A1 내지 A3 중 어느 하나의 방법으로서, 하나 이상의 신택스 엘리먼트는 화상 파라미터 세트에 위치된다.
A5. 실시예들 A1 내지 A4 중 어느 하나의 방법으로서, 하나 이상의 신택스 엘리먼트는 공간적 세그먼트화가 균일한지를 명시하는 1-비트 플래그를 포함한다.
A6. 실시예들 A1 내지 A5 중 어느 하나의 방법으로서, 세그먼트 유닛은 코딩 트리 유닛 또는 코딩 트리 블록이다.
A7. 청구항들 A1 매지 A6 중 어느 하나의 방법으로서, 세그먼트 유닛들의 수로 화상의 크기를 계산하는 단계를 추가로 포함한다.
A8. 청구항 A7의 방법으로서, 세그먼트 유닛들의 수로 화상의 크기를 계산하는 단계는, 높이에 대한 화상 세그먼트의 크기를 계산하는 단계 및 폭에 대한 화상 세그먼트의 크기를 계산하는 단계를 포함한다.
A9. 청구항들 A1 내지 A8 중 어느 하나의 방법으로서, 제1 값은 세그먼트 유닛들에서의 타일 폭을 표현하고, 제2 값은 세그먼트 유닛들에서의 타일 높이를 표현한다.
A10. 청구항들 A1 내지 A9 중 어느 하나의 방법으로서, 비트스트림에서의 하나 이상의 코드 워드로부터 제1 값을 디코딩하는 단계는 비트스트림에서의 특정 코드 워드의 값을 디코딩하는 단계 및 디코딩된 값에 1을 추가하는 단계로 구성된다.
A11. 청구항들 A1 내지 A10 중 어느 하나의 방법으로서, 세그먼트 열 폭들을 도출하는 단계는,
변수 A를 나머지 폭 값으로 설정하는 단계; 및
(A - TileWidth)인 값이 TileWidth 미만인지를 결정하는 단계- TileWidth는 제1 값임 -를 포함한다.
A12. A11의 방법으로서, (A - TileWidth)의 값이 제1 값 미만이 아닌 것으로 결정되면,
제1 열 폭 변수를 TileWidth로 설정하는 단계; 및
(A - (2 x TileWidth))인 값이 TileWidth 미만인지를 결정하는 단계를 수행한다.
A13. 청구항 A11 또는 A12의 방법으로서, 값(A - TileWidth)이 TileWidth 미만인지를 결정하는 단계는,
A를 (A - TileWidth)로 설정하는 단계; 및
A를 TileWidth와 비교하는 단계를 포함한다.
A14. A12 또는 A13의 방법으로서, A - TileWidth가 TileWidth 미만이라고 결정되면, 제2 열 폭 변수를 A - TileWidth로 설정한다.
A15. 청구항 A15의 방법으로서, 제2 열 폭 변수를 A - TileWidth로 설정하는 단계는 A - TileWidth가 0 초과인 경우에 오직 수행된다.
A16. 청구항 A14 또는 A15의 방법으로서, 화상에서의 타일 열들의 수를 표현하는 변수를 변수 i의 값 또는 변수 i의 값 플러스 1로 설정하는 단계- i는 값 (A - ((i-1) x TileWidth))가 TileWidth 미만은 아니지만 값 (A -(i x TileWidth))가 TileWidth 미만이도록 하는 정수임 -를 추가로 포함한다.
A17. 청구항들 A1 내지 A10 중 어느 하나의 방법으로서, 세그먼트 열 폭들을 도출하는 단계는,
1) 변수 A를 나머지 폭 값으로 설정하는 단계; 및
2) 변수 i를 초기값으로 설정하는 단계;
3) (A - (i x TileWidth))인 값이 TileWidth 미만인지를 결정하는 단계- TileWidth는 제1 값임 -; 및
4) (A - (i x TileWidth))인 값이 TileWidth 미만이 아닌 것으로 결정되면, 변수 col_width[i]를 TileWidth로 설정하는 단계, i를 증분시키키는 단계, 그 후 단계들 3) 및 4)를 반복하는 단계를 수행하는 단계를 포함한다.
A18. 청구항 A17의 방법으로서, (A - (i x TileWidth))인 값이 TileWidth 미만이라고 결정된 후, col_width[ i ]를 A로 설정하는 단계 및 i를 증분시키는 단계를 수행한다.
다양한 실시예들이 (존재한다면, 부록을 포함하는) 본 명세서에 설명되지만, 이들은 제한이 아니라 오직 예로서 제시되었다는 점이 이해되어야 한다. 따라서, 본 개시내용의 폭 및 범위는 위에-설명된 예시적인 실시예들 중 임의의 것에 의해 제한되지 않아야 한다. 또한, 그 모든 가능한 변형들에서의 위에-설명된 엘리먼트들의 임의의 조합은 본 명세서에서 달리 표시되거나 또는 맥락에 의해 달리 명확하게 부정되지 않으면, 본 개시내용에 의해 망라된다.
추가적으로, 위에 설명되고 도면들에 예시되는 프로세스들이 단계들의 시퀀스로서 도시되지만, 이러한 것은 단지 예시를 위해서 행해진 것이다. 따라서, 일부 단계들이 추가될 수 있고, 일부 단계들이 생략될 수 있고, 이러한 단계들의 순서가 재-배열될 수 있고, 일부 단계들이 병렬로 수행될 수 있다는 점이 고려된다.

Claims (26)

  1. 화상(10)을 디코딩하기 위한 방법(1500)으로서,
    비트스트림에서의 하나 이상의 신택스 엘리먼트에 기초하여 상기 화상이 하나보다 많은 세그먼트로 구분된다는 정보를 디코딩하는 단계(1502);
    상기 비트스트림에서의 하나 이상의 신택스 엘리먼트에 기초하여 공간적 세그먼트화가 균일하다는 정보를 디코딩하는 단계(1504);
    상기 하나 이상의 신택스 엘리먼트에 기초하여 또는 미리 정의된 세그먼트 유닛 크기에 기초하여 세그먼트 유닛 크기를 결정하는 단계(1506);
    상기 비트스트림에서의 하나 이상의 코드 워드로부터 세그먼트 폭을 표시하는 제1 값을 디코딩하는 단계(1508);
    상기 비트스트림에서의 하나 이상의 코드 워드로부터 세그먼트 높이를 표시하는 제2 값을 디코딩하는 단계(1510);
    세그먼트 유닛들의 수로 존재하는 화상 폭 및 상기 제1 값에 기초하여 세그먼트 열 폭들을 도출하는 단계(1512)- 세그먼트 열 폭들을 도출하는 단계는 하나의 열을 제외한 화상에서의 모든 세그먼트 열들의 열 폭 값들을 상기 제1 값으로 설정하는 단계, 및 하나의 나머지 세그먼트 열의 열 폭 값을 화상 폭 마이너스 하나의 세그먼트 열을 제외한 모든 세그먼트 열들의 폭 값들의 합으로 설정하는 단계를 포함함 -;
    세그먼트 유닛들의 수로 존재하는 화상 높이 및 상기 제2 값에 기초하여 세그먼트 행 높이들을 도출하는 단계(1514)- 세그먼트 행 높이들을 도출하는 단계는 하나의 행을 제외한 화상에서의 모든 세그먼트 행들의 행 높이 값들을 제2 값으로 설정하는 단계, 및 하나의 나머지 세그먼트 행의 행 높이 값을 화상 높이 마이너스 하나의 세그먼트 행을 제외한 모든 세그먼트 행들의 높이 값들의 합으로 설정하는 단계를 포함함 -;
    상기 도출된 세그먼트 열 폭들 및 상기 도출된 세그먼트 행 높이들에 기초하여 현재 블록에 대한 공간적 위치를 도출하는 단계(1516); 및
    상기 도출된 공간적 위치에 기초하여 상기 현재 블록을 디코딩하는 단계(1518)를 포함하는 방법.
  2. 제1항에 있어서, 상기 하나 이상의 신택스 엘리먼트는 화상 파라미터 세트에 위치되는 방법.
  3. 제1항 또는 제2항에 있어서, 상기 하나 이상의 신택스 엘리먼트는 상기 공간적 세그먼트화가 균일한지를 명시하는 1-비트 플래그를 포함하는 방법.
  4. 제1항 또는 제2항에 있어서, 세그먼트 유닛은 코딩 트리 유닛 또는 코딩 트리 블록인 방법.
  5. 제1항 또는 제2항에 있어서, 세그먼트 유닛들의 수로 상기 화상의 크기를 계산하는 단계를 추가로 포함하는 방법.
  6. 제5항에 있어서, 세그먼트 유닛들의 수로 상기 화상의 크기를 계산하는 단계는, 상기 화상 높이에 대한 화상 세그먼트의 크기를 계산하는 단계 및 상기 화상 폭에 대한 화상 세그먼트의 크기를 계산하는 단계를 포함하는 방법.
  7. 제1항 또는 제2항에 있어서, 상기 제1 값은 세그먼트 유닛들에서의 타일 폭을 표현하고, 상기 제2 값은 세그먼트 유닛들에서의 타일 높이를 표현하는 방법.
  8. 제1항 또는 제2항에 있어서,
    상기 비트스트림에서의 하나 이상의 코드 워드로부터 상기 제1 값을 디코딩하는 단계는 상기 비트스트림에서의 특정 코드 워드의 값을 디코딩하는 단계 및 상기 디코딩된 값에 1을 추가하는 단계로 구성되고, 및/또는
    상기 비트스트림에서의 하나 이상의 코드 워드로부터 상기 제2 값을 디코딩하는 단계는 상기 비트스트림에서의 제2 특정 코드 워드의 값을 디코딩하는 단계 및 디코딩된 값에 1을 추가하는 단계로 구성되는 방법.
  9. 제1항 또는 제2항에 있어서,
    세그먼트 열 폭들을 도출하는 단계는, (A - TileWidth)인 값을 TileWidth와 비교하는 단계- TileWidth는 상기 제1 값이고, A는 나머지 폭 값임 -를 포함하고; 및/또는
    세그먼트 행 높이들을 도출하는 단계는, (A - TileHeight)인 값을 TileHeight와 비교하는 단계- TileHeight는 상기 제2 값이고, A는 나머지 높이 값임 -를 포함하는 방법.
  10. 제9항에 있어서,
    상기 나머지 폭 값은 상기 화상 폭이고, 및/또는
    상기 나머지 높이 값은 상기 화상 높이인 방법.
  11. 제9항에 있어서,
    (A - TileWidth)의 값이 TileWidth 초과라고 결정되면, 제1 열 폭 변수를 TileWidth로 설정하는 단계; 및 (A - (2 x TileWidth))인 값을 TileWidth와 비교하는 단계를 수행하고, 및/또는
    (A - TileHeight)의 값이 TileHeight 초과라고 결정되면, 제1 행 높이 변수를 TileHeight로 설정하는 단계; 및 (A - (2 x TileHeight))인 값을 TileHeight와 비교하는 단계를 수행하는 방법.
  12. 제9항에 있어서,
    값 (A - TileWidth)을 TileWidth와 비교하는 단계는, A를 (A - TileWidth)로 설정하는 단계; 및 A를 TileWidth와 비교하는 단계를 포함하고, 및/또는
    값 (A - TileHeight)을 TileHeight와 비교하는 단계는, A를 (A - TileHeight)로 설정하는 단계; 및 A를 TileHeight와 비교하는 단계를 포함하는 방법.
  13. 컴퓨터 판독가능한 기록 매체에 저장된 컴퓨터 프로그램(1143)으로서, 처리 회로(1102)에 의해 실행될 때, 상기 처리 회로(1102)로 하여금 제1항 또는 제2항의 방법을 수행하게 하는 명령어들(1144)을 포함하는, 컴퓨터 판독가능한 기록 매체에 저장된 컴퓨터 프로그램(1143).
  14. 제13항의 컴퓨터 프로그램을 포함하는 컴퓨터 판독가능 저장 매체(1142).
  15. 화상(10)을 디코딩하기 위한 디코딩 장치(1100)로서, 상기 디코딩 장치(1100)는 제1항 또는 제2항의 방법을 수행하도록 구성되는 디코딩 장치(1100).
  16. 화상(10)을 디코딩하기 위한 디코딩 장치(1100)로서,
    컴퓨터 판독가능 저장 매체(1142); 및
    상기 컴퓨터 판독가능 저장 매체에 연결되는 처리 회로(1102) - 상기 처리 회로는 상기 디코딩 장치(1100)로 하여금 제1항 또는 제2항의 방법을 수행하게 하도록 구성됨 - 를 포함하는 디코딩 장치(1100).
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
KR1020207031969A 2019-01-16 2020-01-16 나머지를 갖는 균일한 타일 분열을 포함하는 비디오 코딩 KR102259186B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962793353P 2019-01-16 2019-01-16
US62/793,353 2019-01-16
PCT/SE2020/050037 WO2020149783A1 (en) 2019-01-16 2020-01-16 Video coding comprising uniform tile split with remainder

Publications (2)

Publication Number Publication Date
KR20200130487A KR20200130487A (ko) 2020-11-18
KR102259186B1 true KR102259186B1 (ko) 2021-06-01

Family

ID=71614583

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207031969A KR102259186B1 (ko) 2019-01-16 2020-01-16 나머지를 갖는 균일한 타일 분열을 포함하는 비디오 코딩

Country Status (12)

Country Link
US (3) US11570435B2 (ko)
EP (1) EP3769522A4 (ko)
JP (1) JP7285857B2 (ko)
KR (1) KR102259186B1 (ko)
CN (1) CN112292856B (ko)
BR (1) BR112020022109A2 (ko)
CA (1) CA3104069C (ko)
CL (1) CL2020003142A1 (ko)
MX (1) MX2020011124A (ko)
PH (1) PH12020551793A1 (ko)
RU (1) RU2751552C1 (ko)
WO (1) WO2020149783A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022548220A (ja) * 2019-09-10 2022-11-17 エックスリス、コーポレーション 映像信号符号化/復号化方法及びそのための装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180041610A1 (en) 2012-10-12 2018-02-08 Canon Kabushiki Kaisha Method and corresponding device for streaming video data
US20180242028A1 (en) 2015-08-20 2018-08-23 Koninklijke Kpn N.V. Forming A Tiled Video On The Basis Of Media Streams

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6561278B2 (en) * 2001-02-20 2003-05-13 Henry L. Restarick Methods and apparatus for interconnecting well tool assemblies in continuous tubing strings
JP5340091B2 (ja) * 2008-12-19 2013-11-13 キヤノン株式会社 画像符号化装置及びその制御方法
US10244239B2 (en) * 2010-12-28 2019-03-26 Dolby Laboratories Licensing Corporation Parameter set for picture segmentation
EP2533537A1 (en) * 2011-06-10 2012-12-12 Panasonic Corporation Transmission of picture size for image or video coding
JP5893346B2 (ja) * 2011-11-07 2016-03-23 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
TWI613907B (zh) * 2011-11-08 2018-02-01 三星電子股份有限公司 用於解碼視訊的方法
US9332259B2 (en) * 2012-01-18 2016-05-03 Qualcomm Incorporated Indication of use of wavefront parallel processing in video coding
CA2868255C (en) 2012-04-13 2018-04-17 Mitsubishi Electric Corporation Image encoding device, image decoding device, image encoding method, and image decoding method
PT2842313T (pt) * 2012-04-13 2016-12-22 Ge Video Compression Llc Fluxo de dados escaláveis e entidade de rede
WO2014003676A1 (en) * 2012-06-29 2014-01-03 Telefonaktiebolaget L M Ericsson (Publ) Apparatus and methods thereof for video processing
US9161039B2 (en) * 2012-09-24 2015-10-13 Qualcomm Incorporated Bitstream properties in video coding
US9602829B2 (en) * 2012-12-06 2017-03-21 Sony Corporation Decoding device, decoding method, and program
CN116366835A (zh) * 2013-01-04 2023-06-30 Ge视频压缩有限责任公司 高效可伸缩编码概念
US9648335B2 (en) 2013-07-12 2017-05-09 Qualcomm Incorporated Bitstream restrictions on picture partitions across layers
WO2015083575A1 (ja) * 2013-12-06 2015-06-11 シャープ株式会社 画像復号装置、画像符号化装置、および、符号化データ変換装置
GB201322919D0 (en) 2013-12-23 2014-02-12 Agco Int Gmbh Brake arrangement
US11284103B2 (en) 2014-01-17 2022-03-22 Microsoft Technology Licensing, Llc Intra block copy prediction with asymmetric partitions and encoder-side search patterns, search ranges and approaches to partitioning
US20150264404A1 (en) * 2014-03-17 2015-09-17 Nokia Technologies Oy Method and apparatus for video coding and decoding
US10397666B2 (en) * 2014-06-27 2019-08-27 Koninklijke Kpn N.V. Determining a region of interest on the basis of a HEVC-tiled video stream
EP3313079B1 (en) * 2015-06-18 2021-09-01 LG Electronics Inc. Image filtering method in image coding system
US10743000B2 (en) * 2016-07-01 2020-08-11 Sk Telecom Co., Ltd. Video bitstream generation method and device for high-resolution video streaming
US10827186B2 (en) * 2016-08-25 2020-11-03 Intel Corporation Method and system of video coding with context decoding and reconstruction bypass
EP3531700B1 (en) * 2016-10-18 2022-04-06 Panasonic Intellectual Property Management Co., Ltd. Image coding method, transmission method and image coding device
JP2019021968A (ja) * 2017-07-11 2019-02-07 キヤノン株式会社 画像符号化装置及びその制御方法
WO2019047763A1 (en) * 2017-09-08 2019-03-14 Mediatek Inc. METHODS AND APPARATUSES FOR PROCESSING IMAGES IN AN IMAGE OR VIDEO ENCODING SYSTEM

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180041610A1 (en) 2012-10-12 2018-02-08 Canon Kabushiki Kaisha Method and corresponding device for streaming video data
US20180242028A1 (en) 2015-08-20 2018-08-23 Koninklijke Kpn N.V. Forming A Tiled Video On The Basis Of Media Streams

Also Published As

Publication number Publication date
JP2021524683A (ja) 2021-09-13
US20210152824A1 (en) 2021-05-20
KR20200130487A (ko) 2020-11-18
CA3104069A1 (en) 2020-07-23
CN112292856B (zh) 2023-10-27
MX2020011124A (es) 2021-01-29
US11265542B2 (en) 2022-03-01
EP3769522A1 (en) 2021-01-27
RU2751552C1 (ru) 2021-07-14
BR112020022109A2 (pt) 2021-07-27
CA3104069C (en) 2023-04-11
US11570435B2 (en) 2023-01-31
US20230239472A1 (en) 2023-07-27
CN112292856A (zh) 2021-01-29
CL2020003142A1 (es) 2021-04-30
US20210195190A1 (en) 2021-06-24
EP3769522A4 (en) 2021-01-27
PH12020551793A1 (en) 2021-06-14
WO2020149783A1 (en) 2020-07-23
JP7285857B2 (ja) 2023-06-02

Similar Documents

Publication Publication Date Title
CN110622511B (zh) 图像编码/解码方法及其设备
CN110720217B (zh) 用于支持各种块大小的图像编码或解码的设备和方法
CN117201821A (zh) 对视频数据进行编码或解码的设备和存储比特流的方法
US11706433B2 (en) Encoding method and apparatus therefor, and decoding method and apparatus therefor
JP6977138B2 (ja) 境界の強制的な区分けの改善
US20230283774A1 (en) Uniform segment split
US11558608B2 (en) On split prediction
US20230239472A1 (en) Uniform tile split with remainder
OA20342A (en) Video coding comprising uniform tile split with remainder.
AU2019232802A1 (en) Method, apparatus and system for encoding and decoding an Image frame from a bistream

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant