KR101747065B1 - 비디오 디코딩 방법 - Google Patents

비디오 디코딩 방법 Download PDF

Info

Publication number
KR101747065B1
KR101747065B1 KR1020167022974A KR20167022974A KR101747065B1 KR 101747065 B1 KR101747065 B1 KR 101747065B1 KR 1020167022974 A KR1020167022974 A KR 1020167022974A KR 20167022974 A KR20167022974 A KR 20167022974A KR 101747065 B1 KR101747065 B1 KR 101747065B1
Authority
KR
South Korea
Prior art keywords
tiles
slice
tile
frame
bitstream
Prior art date
Application number
KR1020167022974A
Other languages
English (en)
Other versions
KR20160104090A (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 KR20160104090A publication Critical patent/KR20160104090A/ko
Application granted granted Critical
Publication of KR101747065B1 publication Critical patent/KR101747065B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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

비디오 디코딩 방법은 적어도 하나의 슬라이스와 적어도 하나의 타일을 포함하는 비디오의 프레임을 수신하는 단계를 포함한다. 적어도 하나의 슬라이스와 적어도 하나의 타일 각각은 서로 전혀 얼라인되어 있지 않다. 적어도 하나의 슬라이스 각각은 다른 적어도 하나의 슬라이스와 독립적으로 디코딩되는 것을 특징으로 한다. 적어도 하나의 타일 각각은 프레임의 직사각형 영역이며 래스터 스캔 순으로 배열된 디코딩을 위한 코딩 단위를 갖고 있는 것을 특징으로 한다. 이 프레임의 적어도 하나의 타일은 프레임의 래스터 스캔 순으로 일괄적으로 배열되어 있다.

Description

비디오 디코딩 방법{METHOD FOR DECODING VIDEO}
본 발명은 비디오 디코딩 방법에 관한 것이다.
관련 출원에 대한 상호-참조: 본 출원은 2011년 3월 10일자로 출원된 미국 특허 출원 No. 13/045,442의 부분-계속 출원이며, 이 계속 출원은 2011년 3월 10일자로 출원된 미국 특허 출원 No. 13/045,425의 계속 출원이다.
디지털 비디오는 통상, 일련의 이미지 또는 프레임으로 표현되고, 이들 각각은 픽셀 어레이를 포함한다. 각 픽셀은 강도 및/또는 색 정보와 같은 정보를 포함한다. 많은 경우에, 각 픽셀은 3색의 세트로 표현되고, 그 각각은 8비트 색 값으로 정의된다.
비디오 코딩 기술, 예를 들어, H.264/MPEG-4 AVC(H.264/AVC)는 통상 복잡성을 증가시키는 대가로 높은 코딩 효율을 제공한다. 비디오 코딩 기술에서 이미지 품질 요건 및 이미지 해상도 요건을 증가시키면 코딩 복잡성도 증가한다. 병렬 디코딩에 적합한 비디오 디코더는 디코딩 처리 속도를 향상시키고 메모리 요건을 감소시키며; 병렬 인코딩에 적합한 비디오 인코더는 인코딩 처리 속도를 향상시키고 메모리 요건을 감소시킨다.
H.264/MPEG-4 AVC[ITU-T VCEG 및 ISO/IEC MPEG의 조인트 비디오 팀, "H.264: 범용 시청각 서비스를 위한 고급(advanced) 비디오 코딩," ITU-T Rec. H.264 및 ISO/IEC 14496-10(MPEG4-Part 10), November 2007], 및 유사하게 JCT-VC ["고려중인 드래프트 테스트 모델", JCTVC-A205, JCT-VC 미팅, Dresden, April 2010 (JCT-VC)] - 이들 양자는 여기에 그들 전체가 참조로 통합됨 - 는, 압축 효율을 위해 비디오 시퀀스 내의 시간적 및 공간적 리던던시를 줄이는데 잔차 코딩이 뒤따르는 매크로블록 예측을 이용하는 비디오 코덱(인코더/디코더) 사양이다.
본 발명의 일 실시예는 비디오 디코딩 방법을 개재하며, 이 방법은 (a) 적어도 하나의 슬라이스와 적어도 하나의 타일을 포함하는 비트스트림으로 상기 비디오의 프레임을 수신하는 단계 - 상기 적어도 하나의 슬라이스 각각은 다른 상기 적어도 하나의 슬라이스와 독립적으로 디코딩되는 것을 특징으로 하며, 상기 적어도 하나의 타일 각각은 상기 프레임의 직사각형 영역이며 래스터 스캔 순으로 배열된 상기 디코딩을 위한 코딩 단위들을 갖고 있는 것을 특징으로 하고, 상기 프레임의 상기 적어도 하나의 타일은 상기 프레임의 래스터 스캔 순으로 일괄적으로 배열되어 있음 - ; (b) 바이트 얼라인먼트가 이루어지는 위치까지 상기 비트스트림을 패딩하는 상기 비트스트림 내의 바이트 얼라인먼트 데이터를 수신하는 단계를 포함하고; (c) 상기 위치는 상기 타일들 중 하나의 시작점이며; (d) 상기 바이트 얼라인먼트 데이터는 엔트로피 디코딩되지 않는다.
본 발명의 다른 실시예는 비디오 디코딩 방법을 개재하며, 이 방법은 적어도 하나의 슬라이스와 복수의 타일을 포함하는 비트스트림으로 상기 비디오의 프레임을 수신하는 단계를 포함하고, 상기 적어도 하나의 슬라이스 각각은 다른 상기 적어도 하나의 슬라이스와 독립적으로 디코딩되는 것을 특징으로 하며, 상기 복수의 타일 각각은 상기 프레임의 직사각형 영역이며 래스터 스캔 순으로 배열된 상기 디코딩을 위한 코딩 단위들을 갖고 있는 것을 특징으로 하고, 상기 프레임의 상기 복수의 타일은 상기 프레임의 래스터 스캔 순으로 일괄적으로 배열되어 있고, 상기 타일들 각각은 서로에 대하여 바이트 얼라인(align)되며, 상기 타일들 간에 패딩된 바이트 얼라인먼트 데이터는 엔트로피 디코딩되지 않는다.
전술한 그리고 이외의 목적, 특징, 및 장점들은 첨부 도면에 연계된 본 발명의 다음의 상세한 설명을 고려해 보면 쉽게 이해될 것이다.
도 1은 H.264/AVC 비디오 인코더를 도시한다.
도 2는 H.264/AVC 비디오 디코더를 도시한다.
도 3은 예시적인 슬라이스 구조를 도시한다.
도 4는 다른 예시적인 슬라이스 구조를 도시한다.
도 5는 엔트로피 슬라이스의 재구성(reconstruction)을 도시한다.
도 6은 엔트로피 슬라이스의 병렬 재구성을 도시한다.
도 7은 1개의 슬라이스와 9개의 타일(tile)을 갖는 프레임을 도시한다.
도 8은 3개의 슬라이스와 3개의 타일을 갖는 프레임을 도시한다.
도 9a 및 9b는 1개의 타일에 대한 엔트로피 선택을 도시한다.
도 10a 및 10b는 1개의 타일에 대한 다른 엔트로피 선택을 도시한다.
도 11은 1개의 타일에 대한 또 다른 엔트로피 선택을 도시한다.
도 12a 및 12b는 예시적인 신택스(syntax)를 도시한다.
도 13은 타일의 시작점에서의 명시적 신호를 도시한다.
도 14는 타일의 시작점에서의 암묵적(implicit) 신호를 도시한다.
도 15는 경량의 타일 헤더의 세트를 도시한다.
도 16은 슬라이스 파라미터 인덱스 세트들의 집합을 도시한다.
도 17은 타일 플래그의 마지막을 도시한다.
도 18은 명시적 바이트 얼라인먼트 기법을 도시한다.
도 19는 암묵적 바이트 얼라인먼트 기법을 도시한다.
엔트로피 인코딩/디코딩을 이용하는 임의의 비디오 코더/디코더(코덱)가 여기에 기술된 실시예들에 의해 수용될 수 있지만, 예시적인 실시예들은, 단지 예시의 목적을 위해 H.264/AVC 인코더 및 H.264/AVC 디코더에 관련해서 기술된다. 많은 비디오 코딩 기법은 블록-기반 하이브리드 비디오-코딩 접근법에 기반을 두고 있고, 소스-코딩 기법은 인터-프레임으로도 고려되는 인터-픽처 예측, 인트라-프레임으로도 고려되는 인트라-픽처 예측, 및 예측 잔차의 변환 코딩의 하이브리드이다. 인터-프레임 예측은 시간적인 리던던시(redundancy)를 이용하고, 인트라-프레임 및 예측 잔차의 변환 코딩은 공간적인 리던던시를 이용한다.
도 1은 예시적인 H.264/AVC 비디오 인코더(2)의 블록도를 도시한다. 프레임으로도 고려되는 입력 픽처(4)는 인코딩을 위해 제공될 수 있다. 예측 신호(6) 및 잔차 신호(8)가 생성될 수 있고, 예측 신호(6)는 인터-프레임 예측(10) 또는 인트라-프레임 예측(12)에 기반을 둘 수 있다. 인터-프레임 예측(10)은, 참조 프레임으로도 고려되는 1 이상의 저장된 참조 픽처(16)와, 입력 프레임(4)과 참조 프레임(16) 간의 모션 추정부(18) 처리에 의해 결정된 모션 정보(19) 이용하여, 모션 보상부(14)에 의해 결정될 수 있다. 인트라-프레임 예측(12)은 디코딩된 신호(22)를 이용하여 인트라-프레임 예측부(20)에 의해 결정될 수 있다. 잔차 신호(8)는 예측된 신호(6)에서 입력 프레임(4)을 감산하여 결정될 수 있다. 잔차 신호(8)는 변환/스케일링(scaling)/양자화부(24)에 의해 변환되고 스케일되고 양자화되며, 그럼으로써 양자화된 변환 계수(26)가 생성된다. 디코딩된 신호(22)는 양자화된 변환 계수(26)를 이용하여 역(inverse)(변환/스케일링/양자화)부(30)에 의해 생성된 신호(28)에 예측된 신호(6)를 부가하여 생성될 수 있다. 모션 정보(19) 및 양자화된 변환 계수(26)는 엔트로피 코딩부(32)에 의해서 엔트로피 코딩되어 압축-비디오 비트스트림(34)에 기록될 수 있다. 출력 이미지 영역(38), 예를 들어, 참조 프레임의 일부는 재구성되어(reconstructed), 프리-필터된 신호(22)를 이용하여 디-블록킹(de-blocking) 필터(36)에 의해 인코더(2)에서 생성될 수 있다. 이러한 출력 프레임은 후속 입력 픽처들의 인코딩을 위한 참조 프레임으로 이용될 수 있다.
도 2는 예시적인 H.264/AVC 비디오 디코더(50)의 블록도를 도시한다. 비트스트림으로도 고려되는 입력 신호(52)는 디코딩을 위해 제공될 수 있다. 수신된 심볼(symbol)들은 엔트로피 디코딩부(54)에 의해 엔트로피 디코딩되고, 그럼으로써 모션 정보(56), 인트라-예측 정보(57), 및 양자화되고 스케일된 변환 계수(58)가 생성된다. 모션 정보(56)는 프레임 메모리(64)에 상주할 수 있는 1 이상의 참조 프레임(84)의 일부와 모션 보상부(60)에 의해서 결합될 수 있고, 인트라-프레임 예측(68)이 생성될 수 있다. 양자화되고 스케일된 변환 계수(58)는 역(변환/스케일링/양자화)부(62)에 의해서 역 양자화되고 스케일되고 역변환될 수 있으며, 그럼으로써 디코딩된 잔차 신호(70)가 생성된다. 잔차 신호(70)는 예측 신호(78): 인터-프레임 예측 신호(68) 또는 인트라-프레임 예측 신호(76)에 부가될 수 있다. 인트라-프레임 예측 신호(76)는 인트라-프레임 예측부(74)에 의해서 현재 프레임(72) 내의 앞서 디코딩된 정보로부터 예측될 수 있다. 결합 신호(72)는 디-블록킹 필터(80)에 의해서 필터링될 수 있고, 필터링된 신호(82)는 프레임 메모리(64)에 기록될 수 있다.
H.264/AVC에서, 입력 픽처는 고정-사이즈 매크로블록들로 분할될 수 있고, 각 매크로블록은 루마(luma) 성분의 16×16 샘플과 2개의 크로마(chroma) 성분 각각의 8×8 샘플의 직사각형 픽처 영역을 커버한다. H.264/AVC 표준의 디코딩 처리는 매크로블록들인 단위를 처리하도록 명시되어 있다. 엔트로피 디코더(54)는 압축-비디오 비트스트림(52)의 신택스 요소들을 분석(parse)하고 이들을 역-다중화한다. H.264/AVC는 2개의 대안적인 엔트로피 디코딩 방법을 명시하고 있다: CAVLC(context-adaptively switched sets of variable length codes)의 이용에 기반을 둔 복잡성이 낮은 기법, 및 CABAC(contexed-based adaptively binary arithmetic coding)의 더 많은 연산이 요구되는 기법. 그러한 양자의 엔트로피 디코딩 기법에서, 현재 심볼의 디코딩은 앞서 바르게 디코딩된 심볼들과 적응적으로 갱신된 컨텍스트 모델(context models)에 의존할 수 있다. 게다가, 상이한 데이터 정보, 예를 들어, 예측 데이터 정보, 잔차 데이터 정보 및 상이한 색 평면(planes)은 함께 다중화될 수 있다. 역-다중화는 요소들이 엔트로피 디코딩될 때까지 대기할 수 있다.
엔트로피 디코딩 후에, 매크로블록은 역양자화 및 역변환을 통한 잔차 신호, 및 예측 신호, 즉 인트라-프레임 예측 신호나 인터-프레임 예측 신호를 구함으로써 재구성될 수 있다. 블록킹 왜곡은 디-블록킹 필터를 디코딩된 매크로블록들에 적용함으로써 감소될 수 있다. 통상, 그러한 후속 처리는 입력 신호가 엔트로피 디코딩된 후에 시작되고, 그럼으로써 엔트로피 디코딩이 디코딩시에 잠재적인 병목지점이 되는 결과로 나타난다. 유사하게, 대안 예측 메커니즘, 예를 들어, H.264/AVC 내의 인터-층 예측 또는 다른 스케일러블(scalable) 코덱 내의 인터-층 예측이 이용되는 코덱에서, 엔트로피 디코딩은 디코더에서의 처리 이전에 필요할 수 있고, 그럼으로써 엔트로피 디코딩이 잠재적인 병목지점이 된다.
복수의 매크로블록을 포함하는 입력 픽처는 하나 또는 수개의 슬라이스로 분할될 수 있다. 하나의 슬라이스가 나타내는 픽처의 영역에 있는 샘플들의 값은, 인코더와 디코더에서 이용된 참조 픽처들이 동일하고 디-블록킹 필터링이 슬라이스 경계들에 걸쳐있는 정보를 이용하지 않는다면, 다른 슬라이스로부터의 데이터를 이용하지 않고도 적절하게 디코딩될 수 있다. 그러므로, 하나의 슬라이스에 대한 엔트로피 디코딩 및 매크로블록 재구성은 다른 슬라이드들에 의존하지 않는다. 특히, 엔트로피 코딩 상태는 각 슬라이스의 시작점에서 리셋(reset)될 수 있다. 다른 슬라이스들 내의 데이터는, 엔트로피 디코딩 및 재구성 둘 다를 위해 이웃 가용성(neighborhood availability)을 정의할 때 이용가능하지 않는 것으로 마킹될 수 있다. 슬라이스들은 동시에 엔트로피 디코딩되어 재구성될 수 있다. 인트라 예측 및 모션-벡터 예측은 바람직하게는 한 슬라이스의 경계에 걸쳐서 허용되지 않는다. 대조적으로, 디-블록킹 필터링은 슬라이스 경계들에 걸쳐있는 정보를 이용할 수 있다.
도 3은 수평 방향으로 11개의 매크로블록과 수직 방향으로 9개의 매크로블록(9개의 예시적인 매크로블록(91-99))을 포함하는 예시적인 비디오 픽처(90)를 도시한다. 도 3은 3개의 예시적인 슬라이스: "SLICE #0"으로 표기된 제1 슬라이스(100), "SLICE #1"로 표기된 제2 슬라이스(101), 및 "SLICE #2"으로 표시된 제3 슬라이스(102)를 도시한다. H.264/AVC 디코더는 3개의 슬라이스(100, 101 및 102)를 동시에 디코딩하여 재구성할 수 있다. 이들 슬라이스 각각은 순차 방식으로 스캔 라인 순으로 전송될 수 있다. 각 슬라이스에 대한 디코딩/재구성 처리의 시작 시에, 컨텍스트 모델들은 초기화되거나 리셋되고 다른 슬라이스들 내의 매크로블록들은 엔크로피 디코딩 및 매크로블록 재구성 둘 다를 위해 이용가능하지 않은 것으로 마킹된다. 그래서, 매크로블록, 예를 들어, "SLICE #1" 내의 매크로블록(93)의 경우, "SLICE #0" 내의 매크로블록(예를 들어, 매크로블록(91 및 92))은 컨텍스트 모델 선택 또는 재구성에 이용되지 않을 수 있다. 그에 반해서, 매크로블록, 예를 들어, "SLICE #1" 내의 매크로블록(95)의 경우, "SLICE #1" 내의 다른 매크로블록들(예를 들어, 매크로블록(93 및 94))은 컨텍스트 모델 선택 또는 재구성에 이용될 수 있다. 그러므로, 엔트로피 디코딩 및 매크로블록 재구성은 슬라이스 내에서 연속적으로 진행된다. 슬라이스들이 플렉서블 매크로블록 오더링(FMO, flexible macroblock ordering)을 이용하여 정의되지 않으면, 한 슬라이스 내의 매크로블록들은 래스터 스캔(raster scan) 순으로 처리된다.
플렉서블 매크로블록 오더링은 한 픽처가 슬라이스들로 분할되는 방법을 수정하기 위한 슬라이스 그룹을 정의한다. 슬라이스 그룹 내의 매크로블록들은 매크로블록-대-슬라이스-그룹 맵에 의해 정의되고, 이는 픽처 파라미터 세트의 내용 및 슬라이스 헤더 내의 부가 정보에 의해 시그널링된다. 매크로블록-대-슬라이스-그룹 맵은 픽처 내의 각 매크로블록에 대한 슬라이스-그룹 식별 번호로 구성된다. 슬라이스-그룹 식별 번호는 관련 매크로블록들이 어느 슬라이스 그룹에 속하는지 명시한다. 각 슬라이스 그룹은 1 이상의 슬라이스로 분할될 수 있고, 여기서 하나의 슬라이스는 특정 슬라이스 그룹의 매크로블록 세트 내에서 래스터 스캔의 순으로 처리되는 동일 슬라이스 그룹 내의 매크로블록들의 시퀀스이다. 엔트로피 디코딩과 매크로블록 재구성은 슬라이스 그룹 안에서 연속적으로 진행된다.
도 4는 3개의 슬라이스 그룹:"SLICE GROUP #0"으로 표기된 제1 슬라이스 그룹(103), "SLICE GROUP #1"으로 표기된 제2 슬라이스 그룹(104) 및 "SLICE GROUP #2"으로 표기된 제3 슬라이스 그룹(105)의 예시적인 매크로블록 할당을 도시한다. 이들 슬라이스 그룹(103, 104, 105)은 픽처(90)에서 각각 2개의 전경(foreground) 영역과 배경 영역에 연관될 수 있다.
픽처는 1 이상의 재구성 슬라이스로 분할될 수 있고, 재구성 슬라이스는, 이용된 참조 픽처들이 인코더 및 디코더에서 동일하다면, 이 재구성 슬라이스가 표현하는 픽처의 영역에 있는 샘플들의 값이 다른 재구성 슬라이스로부터의 데이터를 이용하지 않고도 바르게 재구성될 수 있다는 점에서 독자적일 수 있다. 재구성 슬라이스 내의 모든 재구성된 매크로블록들은 재구성을 위한 이웃 정의(neighborhood definition)에 이용될 수 있다.
재구성 슬라이스는 1 초과의 엔트로피 슬라이스로 분할될 수 있고, 엔트로피 슬라이스는 이 엔트로피 슬라이스가 표현하는 픽처의 영역 내의 심볼 값들이 다른 엔트로피 슬라이스로부터의 데이터를 이용하지 않고도 바르게 엔트로피 디코딩될 수 있다는 점에서 독자적일 수 있다. 엔트로피 코딩 상태는 각 엔트로피 슬라이스의 디코딩 시작 시에 리셋될 수 있다. 다른 엔트로피 슬라이스들 내의 데이터는 엔트로피 디코딩을 위한 이웃 가용성을 정의할 때 이용가능하지 않은 것으로 마킹될 수 있다. 다른 엔트로피 슬라이스들 내의 매크로블록들은 현재 블록의 컨텍스트 모델 선택에 이용되지 않을 수 있다. 컨텍스트 모델은 단지 엔트로피 슬라이스내에서만 갱신될 수 있다. 따라서, 엔트로피 슬라이스에 연관된 각 엔트로피 디코더는 그 자신의 컨텍스트 모델 세트를 유지할 수 있다.
인코더는 재구성 슬라이스를 엔트로피 슬라이스들로 분할해야할지 여부를 판정할 수 있고, 인코더는 이 판정을 비트스트림에 시그널링할 수 있다. 이 신호는 "entropy_slice_flag"로 표기될 수 있는 엔트로피-슬라이스 플래그를 포함할 수 있다. 도 5를 참조해 보면, 엔트로피-슬라이스 플래그는 검사될 수 있고(단계 130), 엔트로피-슬라이스 플래그가 픽처나 재구성 슬라이스에 연관된 엔트로피 슬라이스가 없음(단계 132)을 나타내면, 헤더는 정규 슬라이스 헤더로 분석될 수 있다(단계 134). 엔트로피 디코더 상태는 리셋될 수 있고(단계 136), 엔트로피 디코딩 및 재구성을 위한 이웃 정보가 정의될 수 있다(단계 138). 이후, 슬라이스 데이터는 엔트로피 디코딩될 수 있고(단계 140), 이 슬라이스는 재구성될 수 있다(단계 142). 엔트로피-슬라이스 플래그가, 픽처나 재구성 슬라이스에 연관된 엔트로피 슬라이스가 있음(단계 146)을 나타내면, 헤더는 엔트로피-슬라이스 헤더로 분석될 수 있다(단계 148). 엔트로피 디코더 상태는 리셋될 수 있고(단계 150), 엔트로피 디코딩을 위한 이웃 정보가 정의될 수 있고(단계 152), 엔트로피-슬라이스 데이터는 엔트로피 디코딩될 수 있다(단계 154). 이후, 재구성을 위한 이웃 정보가 정의될 수 있고(단계 156), 슬라이스가 재구성될 수 있다(단계 142). 슬라이스 재구성(단계 142) 후에, 차기(next) 슬라이스 또는 픽처가 검사될 수 있다(단계 158).
도 6을 참조해 보면, 디코더는 병렬 디코딩을 할 수 있으며 그 자신의 병렬성의 정도(degree of parallelism)를 정의할 수 있고, 예를 들어, N개의 엔트로피 슬라이스를 동시에 디코딩할 수 있는 능력을 보유한 디코더를 고려해 볼 수 있다. 이 디코더는 N개의 엔트로피 슬라이스를 식별할 수 있다(단계 170). 현재 픽처 또는 재구성 슬라이스 내에 이용가능한 엔트로피 슬라이스가 N개 미만이면, 디코더는 차후 픽처들 또는 재구성 슬라이스들로부터, 이들이 이용가능한 경우에, 엔트로피 슬라이스들을 디코딩할 수 있다. 또는, 디코더는, 현재 픽처 또는 재구성 슬라이스가, 차후 픽처 또는 재구성 슬라이스의 부분들의 디코딩 전에 완전하게 처리될 때까지 대기할 수 있다. 최대 N개의 엔트로피 슬라이스를 식별한 후에(단계 170), 식별된 엔트로피 슬라이스들 각각은 독립적으로 디코딩될 수 있다. 제1 엔트로피 슬라이스는 디코딩될 수 있다(단계 172-176). 제1 엔트로피 슬라이스의 디코딩(단계 172-176)은 디코더 상태의 리셋팅(단계 172)을 포함할 수 있다. CABAC 엔트로피 디코딩이 이용되면, CABAC 상태는 리셋될 수 있다. 제1 엔트로피 슬라이스의 엔트로피 디코딩을 위한 이웃 정보가 정의될 수 있고(단계 174), 제1 엔트로피 슬라이스 데이터가 디코딩될 수 있다(단계 176). 최대 N개의 엔트로피 슬라이스 각각에 대해서, 이들 단계가 실행될 수 있다(N번째 엔트로피 슬라이스에 대해서는 단계 178-182). 디코더는 모든 또는 일부의 엔트로피 슬라이스들이 엔트로피 디코딩될 때 엔트로피 슬라이스들을 재구성할 수 있다(단계 184).
N개 초과의 엔트로피 슬라이스가 있을 때, 디코드 스레드(decode thread)는 엔트로피 슬라이스의 엔트로피 디코딩 완료시 차기(next) 엔트로피 슬라이스의 엔트로피 디코딩을 시작할 수 있다. 그래서, 스레드가 낮은 복잡성의 엔트로피 슬라이스의 엔트로피 디코딩을 마쳤을 때, 이 스레드는 다른 스레드들이 그들의 디코딩을 완료하는 것을 기다리지 않고 추가 엔트로피 슬라이스들의 디코딩을 개시할 수 있다.
슬라이스들의 배열은, 도 3에 도시된 바와 같이, 한 쌍의 매크로블록 사이에 각 슬라이스를 래스터 스캔 또는 래스터 스캔 순으로 알려져 있는 이미지 스캔 순으로 정의하는 것에 한정될 수 있다. 이러한 스캔 순서 슬라이스들의 배열은 연산면에서 효율적이나 그 자체로는 고효율의 병렬 인코딩 및 디코딩에 도움을 주지 못하는 경향이 있다. 더구나, 슬라이스들에 대한 이러한 스캔 순서 정의는 코딩 효율에 아주 적합한 공통 특성을 가질 수 있는 이미지의 작은 국지 영역들을 함께 그룹핑하지 못하는 경향이 있다. 슬라이스들의 배열은, 도 4에 도시된 바와 같이, 그의 배열에 있어서는 아주 유연하지만 그 자체로는 고효율 병렬 인코딩 또는 디코딩에는 도움을 주지 못하는 경향이 있다. 더욱이, 슬라이스들에 대한 이러한 높은 유연성 정의는 디코더에서 구현하기에는 연산면에서 복잡하다.
도 7을 참조하면, 타일 기법은 이미지를 한 세트의 직사각형(정사각형을 포함해서) 영역으로 나눈다. 각각의 타일 내에 있는 매크로블록들(예를 들어, 가장 큰 코딩 단위)은 래스터 스캔 순으로 인코딩되고 디코딩된다. 타일 배열은 마찬가지로 래스터 스캔 순으로 인코딩되고 디코딩된다. 따라서, 임의의 적정한 수의 열 경계(예로, 0 또는 그 이상)가 존재할 수 있고 임의의 적정한 수의 행 경계(예로, 0 또는 그 이상)가 존재할 수 있다. 그래서, 프레임은 도 7에 도시된 하나의 슬라이스와 같은 1 이상의 슬라이스를 정의할 수 있다. 일부 실시예에서, 상이한 타일들 내에 위치한 매크로블록들은 이웃 매크로블록 정보에 의존하는 인트라-예측, 모션 보상, 엔트로피 코딩 컨텍스트 선택 또는 다른 처리에 이용될 수 없다.
도 8을 참조해 보면, 이미지를 3 세트의 직사각형 열들로 나누는 타일 기법이 도시되어 있다. 각각의 타일 내의 매크로블록들(예로 가장 큰 코딩 단위)은 래스터 스캔 순으로 인코딩되고 디코딩된다. 타일들도 마찬가지로 래스터 스캔 순으로 인코딩되고 디코딩된다. 1 이상의 슬라이스들은 타일들의 스캔 순으로 정의될 수 있다. 각 슬라이스는 독립적으로 디코딩될 수 있다. 예를 들어, 슬라이스 1은 매크로블록(1-9)를 포함하고, 슬라이스 2는 매크로블록(10-28)을 포함하고, 슬라이스 3은 3개의 타일에 걸쳐있는 매크로블록(29-126)을 포함하는 것으로 정의될 수 있다. 타일들을 이용하면 프레임의 많은 국지 영역 내의 데이터를 처리함으로써 코딩 효율을 촉진할 수 있다.
일 실시예에서, 엔트로피 인코딩 및 디코딩 처리는 각 타일의 시작점에서 초기화된다. 인코더에서, 이러한 초기화는 엔트로피 인코더에서 나머지 정보를 비트스트림에 기록하는 처리, 플러싱(flushing)으로 알려져 있는 처리, 미리-정의된 세트의 비트스트림 위치 중 한 위치에 도달하도록 이 비트스트림을 추가 데이터로 패딩하는 처리, 및 인코더와 디코더 모두에 미리-정의되거나 공지되어 있는 공지 상태(known state)로 엔트로피 디코더를 설정하는 처리를 포함할 수 있다. 빈번하게, 공지 상태는 매트릭스 값의 형태이다. 게다가, 미리-정의된 비트스트림 위치는 다수의 비트에 얼라인(align)되어 있는, 예를 들어, 바이트 얼라인되어 있는 위치일 수 있다. 디코더에서, 이러한 초기화 처리는 인코더와 디코더 모두에 공지되어 있는 공지 상태로 엔트로피 디코더를 설정하고 미리-정의된 세트의 비트스트림 위치로부터 판독될 때까지 비트스트림 내의 비트들을 무시하는 처리를 포함할 수 있다.
일부 실시예에서, 다수의 공지 상태는, 인코더와 디코더에 이용가능하며 엔트로피 인코딩 및/또는 디코딩 처리를 초기화하는데 이용될 수 있다. 전통적으로, 초기화에 이용되는 공지 상태는 엔트로피 초기화 지표(indicator) 값이 있는 슬라이스 헤더에 시그널링된다. 도 7 및 도 8에 도시된 기법에서, 타일들과 슬라이스들은 서로 얼라인(align)되지 않는다. 이와 같이, 타일들과 슬라이스들이 얼라인되지 않으므로, 전통적으로 슬라이스 내의 제1 매크로블록과 함께 위치해 있는 래스터 스캔 순으로 제1 매크로 블록을 포함하지 않는 타일들에 대해서는 엔트로피 초기화 지표 값이 전송되지 않는다. 예를 들어, 도 7을 참조해 보면, 매크로블록(1)은 슬라이스 헤더에 전송되는 엔트로피 초기화 지표 값을 이용하여 초기화되지만 차기 타일의 매크로블록(16)에 대한 유사한 엔트로피 초기화 지표 값은 존재하지 않는다. 유사한 엔트로피 초기화 지시자 정보는 통상 (매크로블록(1)에 대한 슬라이스 헤더를 갖는) 단일 슬라이스에 대한 대응 타일들의 매크로블록(34, 43, 63, 87, 99, 109 및 121)에는 제공되지 않는다.
도 8을 참조해 보면, 3개의 슬라이스에 대해, 유사한 방식으로 엔트로피 초기화 지표 값은, 슬라이스 1의 매크로블록(1)에 대한 슬라이스 헤더에, 슬라이스 2의 매크로블록(10)에 대한 슬라이스 헤더에, 슬라이스 3의 매크로블록(29)에 대한 슬라이스 헤더에 제공된다. 그러나, 도 7과 유사한 방식에서는, 중앙 타일(매크로블록(37)으로 시작하는) 및 오른쪽 타일(매크로블록(100)으로 시작하는)에 대한 엔트로피 초기화 지표 값이 부족하다. 중간 및 오른쪽 타일들에 대한 엔트로피 초기화 지표 값이 없이, 병렬 방식으로 그리고 높은 코딩 효율로 타일들의 매크로블록들을 효율적으로 인코딩하고 디코딩하는 것은 문제가 많다.
한 프레임 내에서 1 이상의 타일과 1 이상의 슬라이스를 이용하는 시스템의 경우, 타일의 제1 매크로블록(예로, 가장 큰 코딩 단위)과 함께 엔트로피 초기화 지표 값을 제공하는 것이 바람직하다. 예를 들어, 도 7의 매크로블록(16)과 함께, 엔트로피 초기화 지표 값이 제공되어 엔트로피 초기화 정보를 명시적으로 선택할 수 있다. 명시적 판정은, 예를 들어, 이전 슬라이스 헤더에 있는 것과 같은 이전 엔트로피 초기화 지표 값이, 이용되어야만 함을 나타내거나 각 매크로블록/타일에 연관된 엔트로피 초기화 지표 값을 전송하는 것과 같은 임의의 적합한 기법을 이용할 수 있다. 이러한 방식으로, 슬라이스들은 엔트로피 인덱스 값을 포함하는 헤더를 포함할 수 있는 한편, 타일 내의 제1 매크로볼록도 마찬가지로 엔트로피 초기화 지표 값을 포함할 수 있다.
도 9a를 참조하면, 이러한 추가 정보의 인코딩은 다음과 같을 수 있다:
(num_column_minus1>=0 && num_rows_minus1>=0)이면
tile_cabac_init_idc_present_flag
num_column_minus1>=0은, 타일 내의 열의 수가 0이 아닌지를 판정하고, num_rows_minus1>=0은 타일 내의 행의 수가 0이 아닌지를 판정하며, 이들 모두는, 타일들이 인코딩/디코딩에 이용되고 있는지를 효율적으로 판정한다. 타일들이 이용되고 있다면, tile_cabac_init_idc_present_flag는 엔트로피 초기화 지표 값들이 인코더로부터 디코더로 어떻게 전달되는지를 나타내는 플래그이다. 예를 들어, 이 플래그가 제1 값으로 설정되면 이전에 전달된 엔트로피 초기화 지표 값을 이용하는 것과 같은 제1 옵션이 선택될 수 있다. 특정 예로서, 이와 같은 이전에 전달된 엔트로피 초기화 지표 값은 타일의 제1 매크로블록을 포함하는 슬라이스에 대응하는 슬라이스 헤더에 전송된 엔트로피 초기화 지표 값과 동일할 수 있다. 예를 들어, 이 플래그가 제2 값으로 설정되면, 엔트로피 초기화 지표 값이 대응 타일에 대한 비트스트림에 제공되는 것과 같은 제2 옵션이 선택될 수 있다. 특정 예로서, 엔트로피 초기화 지표 값은 타일의 제1 매크로블록에 대응하는 데이터 내에 제공될 수 있다.
엔트로피 초기화 지표 값들이 인코더에서 디코더로 전달되는 방식에 대한 플래그 표시(flag indication)를 시그널링하기 위한 신택스(syntax)는 다음과 같을 수 있다:
num_columns_minus1
num_rows_minus1
if (num_column_minus1>=0 && num_rows_minus1>=0 {
tile_boundary_dependence_idr
uniform_spacing_idr
if (uniform_spacing_idr !=1){
for (i=0; i<num_columns_minus1; i++)
columnWidth[i]
for (i=0; i<num_rows_minus1; i++)
rowHeight[i]
}
if (entropy_coding_mode==1)
tile_cabac_init_idc_present_flag
}
도 9b를 참조하면, 시퀀스 파라미터 세트(예를 들어, 프레임들의 시퀀스에 관한 정보) 및/또는 픽처 파라미터 세트(예를 들어, 특정 프레임에 관한 정보)에 플래그를 포함시키는 것과 같은 다른 기법이 타일들이 이용되는지를 판정하는데 이용될 수 있다.
신택스는 다음과 같을 수 있다:
tile_enable_flag
if (tile_enable_flag) {
num_columns_minus1
num_rows_minus1
tile_boundary_dependence_idr
uniform_spacing_idr
if(uniform_spacing_idr !=1) {
for (i=0; i<num_columns_minus1; i++)
columnWidth[i]
for (i=0; i<num_rows_minus1; i++)
rowHeight[i]
}
if (entropy_coding_mode==1)
tile_cabac_init_idc_present_flag
}
tile_enable_flag는 타일들이 현재 픽처에 이용되고 있는지를 판정한다.
도 10a 및 도 10b를 참조하면, 타일들에 대한 적합한 엔트로피 초기화 지표 값 정보를 제공하는 기법은 다음과 같을 수 있다:
첫 번째, 매크로블록(예로, 코딩 단위)이 타일 내의 제1 매크로블록인지 알기 위해 체크한다. 따라서, 이 기법은 엔트로피 초기화 지표 값을 포함할 수 있는 타일의 제1 매크로블록을 판정한다. 도 7을 참조해 보면, 이는 매크로블록(1, 16, 34, 43, 63, 87, 99, 109 및 121)을 가리킨다. 도 8을 참조해 보면, 이는 매크로블록(1, 37 및 100)을 가리킨다.
두 번째, 타일의 제1 매크로블록(예로, 코딩 단위)이 슬라이스의 제1 매크로블록(예로, 코딩 단위)이 아닌지를 알기 위해 체크한다. 따라서, 이 기법은 슬라이스 내의 추가 타일들을 식별한다. 도 7을 참조하면, 이는 매크로블록(16, 34, 43, 3, 87, 99, 109 및 121)을 가리킨다. 도 8을 참조해 보면, 이는 매크로블록(37 및 100)을 가리킨다.
세 번째, tile_cabac_init_idc_flag가 제1 값과 동일한지 그리고 타일들이 인에이블링인지를 알기 위해 체크한다. 일 특정 실시예에서, 이러한 값은 0과 동일하다. 제2 실시예에서, 이러한 값은 1과 동일하다. 추가 실시예에서, 타일들은 (num_column_min1>=0 && num_rows_minus1>=0)일 때 인에이블링된다. 다른 실시예에서, 타일들은 tile_enable_flag가 1과 동일할 때 인에이블링된다.
그러한 식별된 매크로블록에 대해서 cabac_init_idc_present_flag가 설정될 수 있다. 이후 시스템은 tile_cabac_init_idc_flag가 존재하고 (num_column_minus1>=0 && num_rows_minus1>=0)이면 tile_cabac_init_idc_present_flag만을 시그널링한다. 따라서, 시스템은 타일들이 이용되고 있다면 엔트로피 정보만을 전송하며, 플래그는 엔트로피 정보가 전송되고 있음을 나타낸다(즉, cabac_init_idc_flag).
코딩 신택스는 다음과 같을 수 있다:
coding_unit (x0, y0, currCodingUnitSize) {
If (x0==tile_row_start_location && y0=tile_col_start_location && currCodingUnitSize==MaxCodingUnitSize &&
tile_cabac_init_idc_flag==true && mb_id!=first_mb_in_slice { tile_cabac_init_idc_present_flag
if (tile_cabac_init_idc_present_flag)
cabac_init_idc
}
a regular coding unit...
}
일반적으로, 슬라이스의 제1 매크로블록에 연관되어 있지 않은 타일의 제1 매크로블록(예로, 코딩 단위)에 연관된 1 이상의 플래그(들)는 엔트로피 초기화 지표 값을 정의할 수 있다. 플래그는 엔트로피 초기화 지표 값이 이전에 제공된 정보, 디폴트 값, 또는 다른 식으로 제공되는 엔트로피 초기화 지표 값인지 여부를 나타낼 수 있다.
도 7을 참조하면, 디코더는 픽처 프레임 내의 매크로블록(16)의 위치를 알고 있지만 엔트로피 인코딩 때문에 매크로블록(15)이 엔트로피 디코딩될 때까지는 비트스트림 내의 매크로블록(16)을 기술하는 비트들의 위치를 알지못한다. 이러한 차기 매크로블록의 디코딩 및 식별 방법은, 낮은 비트 오버헤드를 유지하며, 이는 바람직하다. 그러나, 이는 타일들의 병렬 디코딩을 가능하게 하지 못한다. 상이한 타일들이 엔트로피 디코딩의 완료를 기다리지 않고도 디코더에서 병렬로 동시에 디코딩될 수 있도록, 한 프레임 내의 특정 타일에 대한 비트스트림 내의 특정 위치를 식별할 수 있는 능력을 증가시키기 위해서, 비트스트림 내의 타일들의 위치를 식별하는 신호가 비트스트림 내에 포함될 수 있다. 도 11을 참조해 보면, 비트스트림 내의 타일들의 위치의 시그널링은 슬라이스의 헤더에 제공되는 것이 바람직하다. 플래그가 비트스트림 내의 타일들의 위치가 슬라이스 내에서 전송됨을 나타내면, 슬라이스 내의 타일(들) 각각의 제1 매크로블록 내의 위치 외에도, 프레임 내의 그러한 타일들의 수를 포함하는 것도 바람직하다. 더욱이, 위치 정보는 필요하다면 선택된 타일의 세트에만 포함될 수 있다.
코딩 신택스는 다음과 같을 수 있다:
tile_locations_flag
if(tile_location_flag) {
tile_locations()
}
tile_locations()
{
for (i=0: i<num_of_tiles_minus1; i++) {
tile_offset[i]
}
}
tile_locations_flag는 타일 위치들이 비트스트림으로 전송되는지를 시그널링한다. tile_offset[i]는, 절대 위치 값들 또는 차동(differential) 사이즈 값들(이전 코딩된 타일에 관한 타일 사이즈의 변화) 또는 임의의 적합한 기법을 이용하여 시그널링될 수 있다.
이러한 기법은 낮은 오버헤드를 갖고 있지만, 인코더는 일반적으로 모든 타일이 인코딩될 때까지 비트스트림을 전송할 수 없다.
일부 실시예에서, 순차 타일들의 가장 큰 값도 고려한 가장 큰 절대 위치 값 또는 가장 큰 차동 사이즈 값에 관련된 데이터를 포함하는 것이 바람직하다. 그러한 정보를 이용하여, 인코더는 식별된 가장 큰 값을 지원하는데 필요한 비트의 수만을 전송할 수 있고; 디코더는 식별된 가장 큰 값을 지원하는데 필요한 비트의 수만을 수신할 수 있다. 예를 들어, 비교적 작은 가장 큰 값의 경우, 작은 비트 깊이(depth)만이 위치 정보에 필요하다. 예를 들어, 비교적 큰 가장 큰 값의 경우, 큰 비트 깊이가 타일 위치 정보에 필요하다.
상이한 타일들이 엔트로피 디코딩을 대기하지 않고 디코더에서 동시에 처리될 수 있도록, 상이한 타일들을 식별하는 능력을 증가시키는 다른 기법으로서, 각 타일의 시작점에 연관된 비트스트림 내의 마커(marker)들이 이용된다. 이들 타일 마커는, 이들이 비트스트림의 특정 부분의 엔트로피 디코딩 없이 식별될 수 있는 방식으로 비트스트림 내에 포함된다. 일 실시예에서, 마커는 0x000001로 시작할 수 있고, 다른 실시예에서 마커는 0x000002로 시작할 수 있고, 또 다른 실시예에서 마커는 0x000004, 또는 임의의 다른 적합한 비트 시퀀스로 시작할 수 있다. 더욱이, 마커는 타일 및/또는 타일의 제1 매크로블록에 연관된 추가 헤더를 포함할 수 있다. 이러한 방식으로, 인코더는, 비트 레이트(rate)가 결과적으로 증가하더라도, 모든 타일이 인코딩될 때까지 대기하지 않고 각 타일을 인코딩 후에 비트스트림에 기록할 수 있다. 또한, 디코더는 특히 버퍼링과 연관되어서 이용될 때 비트스트림을 분석해서 좀 더 효율적으로 상이한 타일들을 식별할 수 있다.
타일 헤더들은, 적은 정보가 통상 포함될지라도, 슬라이스 헤더와 유사할 수 있다. 필요한 주요 정보는 차기 블록의 매크로블록 수 및 엔트로피 초기화 데이터와 슬라이스 인덱스(타일 내의 시작 CU가 어느 슬라이스에 속하는지 나타냄)이다. 그러한 타일 헤더의 코딩 신택스는 도 12a에 도시된 바와 같을 수 있다. 또는, 주요 정보는 또한 초기화 양자화 파라미터를 포함할 수 있다. 그러한 타일 헤더의 코딩 신택스는 도 12b에 도시된 바와 같을 수 있다. 슬라이스 헤더에는 전송되지만 타일 헤더에는 전송되지 않은 값들은 슬라이스 헤더에 전송된 값들로 리셋될 수 있다.
일부 실시예에서, 마커들은 비트스트림에 포함되고 타일의 시작점에 연관되어 있다. 그러나, 비트스트림 내의 마커들은 모든 타일마다 포함되지 않을 수 있다. 이는 인코더와 디코더가 상이한 병렬(parallelism) 레벨로 동작할 수 있게 해준다. 예를 들어, 인코더는 단지 4개의 마커만을 비트스트림에 포함하지만 64개의 타일을 이용할 수 있다. 이는 병렬 인코딩을 64회 처리하고, 병렬 디코딩을 4회 처리 가능하게 한다. 일부 실시예에서, 비트스트림 내의 마커의 수는 인코더와 디코더 모두에 공지된 방식으로 명시된다. 예를 들어, 마커의 수는 비트스트림 내에 시그널링되거나 프로필 또는 레벨로 정의될 수 있다.
일부 실시예에서, 위치 데이터는, 비트스트림에 포함되고 타일의 시작점에 연관되어 있다. 그러나, 비트스트림 내의 위치 데이터는 모든 타일마다 포함되지는 않는다. 이는 인코더와 디코더가 상이한 병렬 레벨로 동작할 수 있게 해준다. 예를 들어, 인코더는 단지 4개의 위치만을 비트스트림에 포함하지만 64개의 타일을 이용할 수 있다. 이는 병렬 인코딩을 64회 처리하고 병렬 디코딩을 4회 처리 가능하게 한다. 일부 실시예에서, 비트스트림 내의 위치들의 수는 인코더와 디코더 모두에 공지된 방식으로 명시된다. 예를 들어, 마커의 수는 비트스트림 내에 시그널링되거나 프로필 또는 레벨로 정의될 수 있다.
도 13을 참조하면, 타일의 시작점을 명시적으로 식별하기 위한 하나의 예시적인 기법이 도시되어 있다. 타일 인덱스의 값은 (TileIdx=0)로 초기화 되고, 이전 타일 위치의 값은 (PreviousLocation=0)로 초기화되고, 이전 타일 사이즈의 값은 (PreviousTileSize=0)로 초기화되고, 다수의 타일들의 값은 (TileCount=(num_columns_minus1+1)*(num_rows_minus1+1)로 초기화된다(단계 300). 타일 데이터는 타일의 제1 가장 큰 코딩 단위(LCU)의 비트스트림에 기록되고(단계 310), 이는 픽처의 초기 경우에 통상 상단 왼쪽 코너에 있는 LCU이다. 타일 데이터는 타일 내의 화소 값을 재구성하는데 필요한 데이터이다. 기록될 다른 타일이 있다면(단계 320), 한 세트의 값들이 수정될 수 있다. 타일 내의 가장 큰 코딩 단위의 수를 나타내는 현재 타일 사이즈는 갱신될 수 있고(CurrentTileSize = CurrentLocation - PreviousLocation)(단계 330), 여기서 CurrentLocation은 비트스트림 내의 현재 타일의 시작 위치이다. 또 다른 실시예에서, 현재의 타일 사이즈는 타일 내의 코딩 단위의 수를 나타내기 위해 갱신될 수 있다. 현재의 파일 사이즈와 이전 타일 사이즈 간의 오프셋을 나타내는 타일 차동 오프셋(340)은 갱신될 수 있다. 이전 위치는 현재 위치로 설정될 수 있고(PreviousLocation = CurrentLocation), 이전 타일 사이즈는 현재 타일 사이즈로 설정될 수 있고(PreviousTileSize = CurrentTileSize), 타일 인덱스는 증분될 수 있다(TileIdx = TileIdx + 1)(단계 350). 차기 타일의 제1 LCU는 데이터로 기록될 수 있다(단계 310). 이러한 재귀(recursive) 처리는, 슬라이스 내에 기록될 추가 타일이 없을 때까지(단계 335) 반복된다.
타일 카운트가 1보다 크면(TileCount>1)(단계 360), 이후 타일 위치 정보 플래그의 존재는 (TileLocationInformationPresentFlag = .T.)으로 설정될 수 있다(단계 370). 또한, 예를 들어, TileLocationInformationPresentFlag, TileDifferentialOffset[0], TileDifferentialOffset[1], … , TileDifferentialOffset[NumberOfTilesMinus1-1]을 포함하는 한 세트의 값이 또한 기록될 수 있고(단계 380), 여기서 NumberOfTilesMinus1은 TileCount-1과 동일하다. 일부 실시예에서, 한 세트의 값(380)이 슬라이스 헤더에 기록될 수 있다. 단지 하나의 타일이 있는 경우(단계 360), 타일들에 관련된 추가 데이터의 저장은 건너뛴다(단계 385). 일부 실시예에서, TileDifferentialOffset은 현재 슬라이스 내의 타일 사이즈를 나타낸다.
도 14를 참조해 보면, 타일의 시작점을 암묵적으로 식별하는 하나의 예시적인 기법이 도시되어 있다. 타일 인덱스의 값은 (TileIdx=0)으로 초기화되고, 이전 타일 위치는 (PreviousLocation=0)으로 초기화되며, 이전 타일 사이즈는 (PreviousTileSize=0)으로 초기화된다(단계 400). 타일 데이터는 타일의 제1 가장 큰 코딩 단위(LCU)의 비트스트림에 기록되고(단계 410), 이 LCU는 통상 픽처의 초기 경우에 상단 왼쪽 코너에 있는 LCU이다. 기록될 다른 타일이 있다면(단계 420), 이후 한 세트의 값이 타일의 코딩 단위에 기록된다(단계 425). 기록된 값들(425)은 마커 및/또는 타일 헤더 정보를 포함할 수 있고, 타일 헤더는 lightweight_slice_flag나 이와 등가를 갖는 슬라이스 헤더이다. 타일 헤더 정보는, 예를 들어, 가장 큰 코딩 단위 어드레스, 슬라이스 인덱스, 및 양자화 파라미터 정보를 포함할 수 있다. 차기 타일의 제1 LCU는 데이터로 기록된다(단계 410). 이러한 재귀 처리는, 기록될 추가 타일이 없을 때까지 반복된다(단계 430). 타일 시작 위치의 암묵적 및/또는 명시적 시그널링 모두는 비트스트림 내에 포함될 수 있음은 이해할 것이다.
도 15를 참조해 보면, 타일 헤더는 LCU 어드레스, 슬라이스 인덱스, 및/또는 양자화 파라미터 정보 외에도 1 이상의 타일 인덱스 값을 포함할 수 있다. 일부의 경우에, LCU 어드레스는 타일 인덱스 값, TileIdx로 대체된다. 일부의 경우에, 슬라이스 인덱스는 비트스트림 내의 이전에 전송된 슬라이스 파라미터 세트를 나타내는 슬라이스 파라미터 세트 인덱스로 대체된다. 슬라이스 파라미터 세트는 양자화 파라미터, 엔트로피 코더 초기화 파라미터, 기준 리스트 파라미터, 또는 루프 필터 파라미터에 대한 값들을 포함할 수 있지만 이들에 한정되지 않는다. 타일 인덱스 값은, 예를 들어, 타일 인덱스 마이너스 1 등의 임의의 적합한 값일 수 있다. 이러한 방식으로 타일들에는 순차적으로 숫자가 부여되고, 제1 타일에는 0의 숫자가 부여된다. 인덱스 값을 포함함으로써, 타일들의 디코딩은 연산면에서 덜 복잡하다. 본 발명의 일부 실시예에서, 타일 인덱스 값들은 비트스트림 또는 슬라이스 내의 제1 타일에 대응하지 않는 타일 헤더에만 있다.
게다가, 특정 슬라이스의 경우, 슬라이스 헤더 내의 현재 정보를 이용할지 또는 슬라이스 헤더 내의 이전에 전송된 정보를 이용할지 여부를 나타내는 플래그가 타일 헤더 내에 포함될 수 있다. 이는 또한 시스템의 연산 복잡성을 감소시키고 또한 비트스트림의 비트 레이트도 감소시킨다.
본 발명의 일 실시예에서, 플래그의 존재는 slice_parameter_set_present_flag로 비트스트림 내에 표시될 수 있다. slice_parameter_set_present_flag에 대한 신택스는 다음과 같을 수 있다:
Figure 112016081779418-pat00001
slice_parameter_set_present_flag는 슬라이스 파라미터 세트들이 전송되는지 여부를 비트스트림 내에 시그널링한다. 하나의 예시적인 신택스는 픽처 파라미터 세트에 대한 것이다. 슬라이스 파라미터 세트 인덱스는, slice_parameter_set_present_flag가 슬라이스 파라미터 세트들이 비트스트림으로 전송됨을 나타내는 경우에만 비트스트림으로 전송된다. "slice_parameter_set_present_flag"가 존재하고 TRUE 값으로 설정되어 있으면, 이후 slice_parameter_set_flag가 시그널링된다. "slice_parameter_set_present_flag"가 존재하고 FALSE 값으로 설정되어 있으면, slice_parameter_set_flag가 시그널링되지 않는다. 일부 실시예에서, "slice_parameter_set_present_flag"가 FALSE 값으로 설정되어 있으면, 이후 이전에 전송된 슬라이스 헤더로부터의 정보가 이용된다. 일부 실시예에서, TRUE 값은 1과 동일할 수 있다. 일부 실시예에서, FALSE 값은 0과 동일할 수 있다. 일부 타일 헤더의 경우, 이러한 프로세스는 이하 나타낸 바와 같이, 플래그 flag_slice_parameter_set_flag로 시그널링될 때 건너뛸 수 있다. 본 발명의 일부 실시예의 경우에, flag_slice_parameter_set_flag는 true 값인 것으로 추론된다.
도 16을 참조해 보면, 타일 헤더는 또한 슬라이스 파라미터 세트 인덱스 값을 포함할 수 있다. 슬라이스 파라미터 세트 인덱스 값은 슬라이스 헤더에 이전에 전송된 정보인 슬라이스 파라미터 세트들 중 1 이상의 세트를 지칭할 수 있다. 슬라이스 파라미터 세트들 각각은, 예를 들어, 양자화 파라미터(QP), 컨텍스트-기반 적응적 이진법 산술 코딩 정보(cabac_init_idc), 참조 픽처 리스트 수정, 또는 루프 필터 정보를 포함할 수 있다. 루프 필터 정보는 통상, 예를 들어, 적응형 루프 필터 정보, 샘플 적응형 오프셋 정보, 또는 디블록킹 필터 정보를 포함할 수 있다.
타일 헤더에 대한 예시적인 신택스는 다음과 같다:
Figure 112016081779418-pat00002
slice_parameter_set_id는 슬라이스 파라미터 세트 인덱스 값을 표현하며 비트스트림 내의 이전에 전송된 특정 파라미터 세트를 지칭한다. 도 16은 상이한 타일 헤더들이 2개의 상이한 slice_parameter_set_id를 포함하고 비트스트림 내의 이전에 전송된 2개의 상이한 슬라이스 파라미터 세트를 지칭할 수 있는 방법을 도시한다.
tile_idx-1은 타일 인덱스 마이너스 1을 명시할 수 있다. tile_idx-1은 부호없는 숫자일 수 있다. tile_idx-1은 v-비트를 이용할 수 있고 여기서 v는 픽처 내의 최대 타일 수를 기반으로 결정된다. 예를 들어, v는 RoundAbove(log2(TileCount-1))로 계산될 수 있고, 여기서 RoundAbove(x)는 x와 같거나 큰 제1 정수 값으로의 반올림을 표현한다.
앞서 기술된 바와 같이, slice_parameter_set_flag는, slice_parameter_set_id가 비트스트림으로 전송되는지를 명시한다. slice_parameter_set_flag가 제1 값이면 slice_parameter_set_id가 비트스트림으로 전송되지 않으며 기존의 액티브 파라미터 세트가 타일에 이용된다. 일 실시예에서, 액티브 슬라이스 파라미터 세트는 이전 타일에 의해 이용된 슬라이스 파라미터 세트이다. 제2 실시예에서, 액티브 슬라이스 파라미터 세트는 이전 타일 내의 마지막 코딩 단위에 의해 이용된 슬라이스 파라미터 세트이다. slice_parameter_set_flag가 제2 값이면, slice_parameter_set_id가 비트스트림으로 전송된다. 일 실시예에서, 제1 및 제2 값은 각각 0과 1이다.
slice_parameter_set_id는 타일이 참조한 슬라이스 파라미터 세트 id를 명시한다.
도 17을 참조해 보면, 플래그는 타일의 마지막을 나타내기 위해 타일의 마지막에 포함될 수 있다. 이러한 방식으로, 타일의 마지막을 판정하는데 있어서의 연산 복잡성이 간소화될 수 있다.
몇몇 경우들에서, 슬라이스 및/또는 타일에 대한 적당한 데이터를 이용한 비트스트림의 생성 기법이 기술되었다. 이러한 정보가 적합한 방식으로 비트스트림 내에 포함되면, 디코더는 유사하게 이러한 데이터를 수신하여 이를 비트스트림을 효율적으로 디코딩하는데 이용할 수 있다.
도 7 및 도 8에 연관해서 앞서 기술된 바와 같이, 타일의 이용은 높은 압축 효율을 가능하게 하고 또한 픽처의 병렬 인코딩 및 디코딩을 가능하게 한다. 타일들은 서로 독립적이거나 독립적이 아닐 수 있다. 비트스트림 내의 시그널링 오버헤드를 감소하는 방식과 함께, 특정 타일의 길이를 효율적으로 판정하기 위해서는, 상이한 타일들 간의 바이트 얼라인먼트가 이루어질 때를 나타내는 데이터를 픽처의 슬라이스 헤더(또는 임의의 다른 적합한 위치)에 포함하는 것이 바람직하다. 바이트 얼라인먼트 표시를 제공함으로써, 시스템은 한번에 한 바이트씩 전방 감시 방식(forward looking manner)으로 타일의 마지막을 판정할 수 있다. 바이트 얼라인먼트가 이루어진 후에 기록되는 임의의 데이터는 비트스트림 내의 기준점에 대한 바이트 경계에서 시작한다. 일 실시예에서, 바이트 얼라인먼트는 슬라이스 헤더의 종료점에 대하여 측정될 수 있다. 제2 실시예에서, 바이트 얼라인먼트는 망 추상 단위 계층(network abstraction unit layer)의 시작점에 대하여 측정될 수 있고, 이 계층은 슬라이스 헤더, 슬라이스 데이터 및/또는 망 추상 계층 시작 코드를 포함할 수 있다. 또한, 이 시스템은 바이트 얼라인먼트를 용이하게 하기 위해서, 비트스트림 내의 상이한 타일들 간에 상이한 길이의 비트들의 제로-패딩을 포함할 수 있다. 일부 경우에는, 제로-패딩은 어떤 타일들 간에는 필요가 없다.
도 18을 참조해 보면, 타일들 각각은 비트스트림에 명시적으로 시그널링될 수 있다. 도시된 바와 같이, 타일들 각각은 비트스트림 내에 순차 방식으로 제공될 수 있다. 바이트 얼라인되는 한 세트의 타일 위치 데이터는, 픽처의 슬라이스의 헤더에 제공될 수 있고, 또는 그렇지 않으면, 예를 들어, 비트스트림 내의 기준 위치에 관한 각 타일의 바이트 얼라인먼트를 식별하는 제1 가장 큰 코딩 단위에 연관될 수 있다. 예를 들어, 제1 슬라이스 헤더에 저장된 타일 위치 정보는 슬라이스 내의 나머지 타일들 모두(또는 그의 서브셋)에 대한 정보를 포함할 수 있지만, 제1 타일에 대한 정보는 슬라이스 헤더 바로 다음에 위치해 있으므로 포함할 필요가 없다. 각 타일의 종료점에서, 시스템은 대응 타일에 대한 대응 엔트로피 디코딩 처리를 종료할 수 있고, 후속(follwing) 타일이 바이트 얼라인될 때까지 일련의 제로 패드가 포함될 수 있다. 제로 패드 데이터는 통상 엔트로피 디코딩되지 않는다. 마지막 타일도 마찬가지로 바이트 얼라인먼트가 이루어질 때까지 제로 패딩될 수 있다. 엔트로피 디코딩은 CABAC 또는 CAVLC 처리를 이용할 수 있다. 엔트로피 디코더는, 필요하다면, 타일마다 리셋될 수 있다.
도 19를 참조해 보면, 타일들 각각은 비트스트림 내에 암묵적으로 시그널링된다. 도시된 바와 같이, 타일들 각각은 비트스트림 내에 순차 방식으로 제공될 수 있다. 한 타일에 대해서 바이트 얼라인되는 타일 마커의 시작점은 각 개별 타일(또는 그의 서브셋)에 대한 비트스트림 내에 제공될 수 있다. 타일 마커의 시작점은 16진법으로 0x000002일 수 있다. 시스템은 제1 타일에 대한 타일 마커의 시작점이 슬라이스 헤더 바로 다음에 위치하므로 이를 반드시 포함할 필요는 없다. 각 타일의 종료점에서, 시스템은 대응 타일에 대한 대응 엔트로피 디코딩 처리를 종료할 수 있고, 일련의 제로 패드는 후속 타일이 바이트 얼라인될 때까지 포함될 수 있다. 제로 패드 데이터는 통상 엔트로피 디코딩되지 않는다. 마지막 타일은 마찬가지로 바이트 얼라인먼트가 이루어질 때까지 제로 패딩될 수 있다. 엔트로피 디코딩은 CABAC 또는 CAVLC 처리를 이용할 수 있고, CABAC는 컨텍스트 적응적 이진법 산술 코딩 방법을 나타내고, CAVLC는 컨텍스트 적응적 가변 길이 코딩 방법을 나타낸다. 엔트로피 디코딩은, 필요하다면, 타일마다 리셋될 수 있다.
다른 실시예에서, 타일들의 시작점을 검색하는데 있어서의 오버헤드를 감소시키기 위한 하나의 기법은 타일들 각각이 바이트 얼라인되는 것을 필요로 한다. 그래서, 각 타일은 비트스트림 내의 기준 위치에 대하여 바이트 경계에서 시작한다. 또한, 타일들은 바이트 얼라인먼트가 이루어질 때까지 제로 패딩을 포함할 수 있다. 슬라이스의 마지막 타일도 마찬가지로 바이트 얼라인먼트가 이루어질 때까지 제로 패딩을 포함할 수 있다. 제로 패딩은 타일들의 바이트 얼라인먼트를 용이하게 하며, 2개의 제로 패딩은 비트 수가 상이할 수 있다.
앞의 명세서에 이용된 용어와 표현은 제한이 아닌 설명의 관점으로서 이용되고 있고 그러한 용어와 표현을 이용하는데 있어서 도시되고 기술된 특징부들 또는 그의 일부에 대한 균등물을 배제하는 의도가 없으며, 본 발명의 범위는 이하 청구항들에 의해서만 정의되고 한정된다고 이해된다.
본 발명이 이와 같이 기술되었지만, 동일한 방식이 다양한 방식으로 변화될 수 있음은 자명하다. 그러한 변화는 본 발명의 범위를 벗어나는 것으로 간주되지 않으며 이 기술 분야에 숙련된 자에게 자명한 모든 그러한 수정은 다음 청구항들의 범위 내에 포함되어야 한다.

Claims (4)

  1. 비디오를 디코딩하는 방법으로서,
    (a) 비트스트림에서 상기 비디오의 프레임을 디코딩하는 단계 - 상기 프레임은 슬라이스(slice)들과 타일(tile)들을 포함하고, 상기 타일들 각각은 상기 프레임의 직사각형 영역을 정의하고 래스터 스캔 순으로(raster scan order) 배열된 복수의 매크로블록(macroblock)을 포함하며, 상기 타일들은 상기 프레임에서 래스터 스캔 순으로 배열되고, 상기 프레임을 디코딩하는 것은 상기 타일들 각각을 상기 래스터 스캔 순으로 디코딩하는 것과 상기 타일들 각각 내의 상기 복수의 매크로블록 각각을 상기 래스터 스캔 순으로 디코딩하는 것을 포함함 -;
    (b) 상기 슬라이스들 중 하나의 헤더(header)에서 위치 데이터를 수신하여 상기 비트스트림 내에서 상기 타일들 중 하나의 위치를 표시하는 단계; 및
    (c) 상기 위치가 상기 타일들 중 하나의 종료점(end)일 때, 상기 타일들 중 하나의 상기 종료점에 있다는 것을 나타내기 위해 상기 비트스트림에서 플래그(flag)를 수신하는 단계 - 상기 비트스트림은 바이트 얼라인먼트가 이루어질 때까지 상기 타일들 중 상기 종료점에서 비트들의 제로-패딩을 포함함 -
    를 포함하는, 비디오 디코딩 방법.
  2. 비디오를 디코딩하는 장치로서,
    (a) 비트스트림에서 상기 비디오의 프레임을 디코딩하는 디코더(decorder) - 상기 프레임은 슬라이스(slice)들과 타일(tile)들을 포함하고, 상기 타일들 각각은 상기 프레임의 직사각형 영역을 정의하고 래스터 스캔 순으로(raster scan order) 배열된 복수의 매크로블록(macroblock)을 포함하며, 상기 타일들은 상기 프레임에서 래스터 스캔 순으로 배열되고, 상기 프레임을 디코딩하는 것은 상기 타일들 각각을 상기 래스터 스캔 순으로 디코딩하는 것과 상기 타일들 각각 내의 상기 복수의 매크로블록 각각을 상기 래스터 스캔 순으로 디코딩하는 것을 포함함 -;
    (b) 상기 디코더에 의해 디코딩된 상기 프레임을 필터링하는 디-블록킹 필터(de-blocking filter); 및
    (c) 상기 디-블록킹 필터에 의해 필터링된 상기 프레임을 저장하는 프레임 메모리(frame memory)
    를 포함하고,
    상기 디코더는,
    상기 슬라이스들 중 하나의 헤더(header)에서 위치 데이터를 수신하여 상기 비트스트림 내에서 상기 타일들 중 하나의 위치를 표시하고,
    상기 위치가 상기 타일들 중 하나의 종료점(end)일 때, 상기 타일들 중 하나의 상기 종료점에 있다는 것을 나타내기 위해 상기 비트스트림에서 플래그(flag)를 수신하며,
    상기 비트스트림은 바이트 얼라인먼트가 이루어질 때까지 상기 타일들 중 상기 종료점에서 비트들의 제로-패딩을 포함하는, 비디오 디코딩 장치.
  3. 비디오를 인코딩하는 방법으로서,
    (a) 상기 비디오의 프레임을 인코딩하는 단계 - 상기 프레임은 슬라이스(slice)들과 타일(tile)들을 포함하고, 상기 타일들 각각은 상기 프레임의 직사각형 영역을 정의하고 래스터 스캔 순으로(raster scan order) 배열된 복수의 매크로블록(macroblock)을 포함하며, 상기 타일들은 상기 프레임에서 래스터 스캔 순으로 배열되고, 상기 프레임을 인코딩하는 것은 상기 타일들 각각을 상기 래스터 스캔 순으로 인코딩하는 것과 상기 타일들 각각 내의 상기 복수의 매크로블록 각각을 상기 래스터 스캔 순으로 인코딩하는 것을 포함함 -;
    (b) 상기 슬라이스들 중 하나의 헤더(header)에서 위치 데이터를 생성하여 비트스트림 내에서 상기 타일들 중 하나의 위치를 표시하는 단계;
    (c) 상기 위치가 상기 타일들 중 하나의 종료점(end)일 때, 상기 타일들 중 하나의 상기 종료점에 있다는 것을 나타내기 위해 상기 비트스트림에서 플래그(flag)를 생성하는 단계 - 상기 비트스트림은 바이트 얼라인먼트가 이루어질 때까지 상기 타일들 중 상기 종료점에서 비트들의 제로-패딩을 포함함 - ; 및
    (d) 상기 위치 데이터와 상기 플래그를 포함하는 상기 비트스트림을 전송하는 단계
    를 포함하는, 비디오 인코딩 방법.
  4. 비디오를 인코딩하는 장치로서,
    (a) 상기 비디오의 프레임을 인코딩하고 재구성된 프레임(reconstructed frame)을 생성하는 인코더(encoder) - 상기 프레임은 슬라이스(slice)들과 타일(tile)들을 포함하고, 상기 타일들 각각은 상기 프레임의 직사각형 영역을 정의하고 래스터 스캔 순으로(raster scan order) 배열된 복수의 매크로블록(macroblock)을 포함하며, 상기 타일들은 상기 프레임에서 래스터 스캔 순으로 배열되고, 상기 프레임을 인코딩하는 것은 상기 타일들 각각을 상기 래스터 스캔 순으로 인코딩하는 것과 상기 타일들 각각 내의 상기 복수의 매크로블록 각각을 상기 래스터 스캔 순으로 인코딩하는 것을 포함함 -;
    (b) 상기 재구성된 프레임을 필터링하는 디-블록킹 필터(de-blocking filter); 및
    (c) 상기 디-블록킹 필터에 의해 필터링된, 상기 재구성된 프레임을 저장하는 프레임 메모리(frame memory) - 상기 재구성된 프레임은 상기 인코더를 위한 참조(reference)로 이용됨 -
    를 포함하고,
    상기 인코더는,
    상기 슬라이스들 중 하나의 헤더(header)에서 위치 데이터를 생성하여 비트스트림 내에서 상기 타일들 중 하나의 위치를 표시하고,
    상기 위치가 상기 타일들 중 하나의 종료점(end)일 때, 상기 타일들 중 하나의 상기 종료점에 있다는 것을 나타내기 위해 상기 비트스트림에서 플래그(flag)를 생성하며,
    상기 비트스트림은 바이트 얼라인먼트가 이루어질 때까지 상기 타일들 중 상기 종료점에서 비트들의 제로-패딩을 포함하는, 비디오 인코딩 장치.
KR1020167022974A 2011-07-29 2012-07-30 비디오 디코딩 방법 KR101747065B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/194,677 US9325999B2 (en) 2011-03-10 2011-07-29 Video decoder for slices
US13/194,677 2011-07-29
PCT/JP2012/069924 WO2013018909A1 (en) 2011-07-29 2012-07-30 Method for decoding video

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020147004407A Division KR101653069B1 (ko) 2011-07-29 2012-07-30 비디오 디코딩 방법

Publications (2)

Publication Number Publication Date
KR20160104090A KR20160104090A (ko) 2016-09-02
KR101747065B1 true KR101747065B1 (ko) 2017-06-27

Family

ID=47629421

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020147004407A KR101653069B1 (ko) 2011-07-29 2012-07-30 비디오 디코딩 방법
KR1020167022974A KR101747065B1 (ko) 2011-07-29 2012-07-30 비디오 디코딩 방법

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020147004407A KR101653069B1 (ko) 2011-07-29 2012-07-30 비디오 디코딩 방법

Country Status (6)

Country Link
US (2) US9325999B2 (ko)
KR (2) KR101653069B1 (ko)
CN (2) CN107277530B (ko)
AU (2) AU2012290972B2 (ko)
CA (2) CA2941053C (ko)
WO (1) WO2013018909A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020256442A1 (ko) * 2019-06-20 2020-12-24 주식회사 엑스리스 영상 신호 부호화/복호화 방법 및 이를 위한 장치

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9215473B2 (en) 2011-01-26 2015-12-15 Qualcomm Incorporated Sub-slices in video coding
US10230989B2 (en) * 2011-06-21 2019-03-12 Texas Instruments Incorporated Method and apparatus for video encoding and/or decoding to prevent start code confusion
US10484693B2 (en) * 2011-06-22 2019-11-19 Texas Instruments Incorporated Method and apparatus for sample adaptive offset parameter estimation for image and video coding
US8767824B2 (en) 2011-07-11 2014-07-01 Sharp Kabushiki Kaisha Video decoder parallelization for tiles
EP2744202B1 (en) 2011-08-11 2020-05-27 Sun Patent Trust Image encoding method, image decoding method, image encoding apparatus, image decoding apparatus, and image encoding/decoding apparatus
US9584819B2 (en) * 2011-10-24 2017-02-28 Qualcomm Incorporated Grouping of tiles for video coding
US9247258B2 (en) * 2011-10-26 2016-01-26 Qualcomm Incorporated Unified design for picture partitioning schemes
US9124895B2 (en) 2011-11-04 2015-09-01 Qualcomm Incorporated Video coding with network abstraction layer units that include multiple encoded picture partitions
US9077998B2 (en) 2011-11-04 2015-07-07 Qualcomm Incorporated Padding of segments in coded slice NAL units
GB201119180D0 (en) * 2011-11-07 2011-12-21 Sony Corp Data encoding and decoding
US10349077B2 (en) * 2011-11-21 2019-07-09 Canon Kabushiki Kaisha Image coding apparatus, image coding method, image decoding apparatus, image decoding method, and storage medium
CN104041031B (zh) * 2011-12-29 2018-04-24 Lg电子株式会社 视频编码和解码方法和使用该方法的装置
US9332259B2 (en) 2012-01-18 2016-05-03 Qualcomm Incorporated Indication of use of wavefront parallel processing in video coding
EP2811742A4 (en) * 2012-02-04 2015-09-02 Lg Electronics Inc VIDEO CODING METHOD, VIDEO DECODING METHOD AND DEVICE THEREFOR
DK3174295T3 (en) 2012-04-13 2019-04-01 Ge Video Compression Llc Low delay image encoding
WO2014087861A1 (ja) * 2012-12-06 2014-06-12 ソニー株式会社 画像処理装置、画像処理方法、およびプログラム
CN115442624A (zh) 2012-06-29 2022-12-06 Ge视频压缩有限责任公司 视频数据流、编码器、编码视频内容的方法以及解码器
JP6080405B2 (ja) * 2012-06-29 2017-02-15 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
SG11201501400QA (en) * 2012-09-26 2015-04-29 Panasonic Ip Corp America Image decoding method, image coding method, image decoding apparatus, image coding apparatus, and image coding and decoding apparatus
WO2014058109A1 (ko) * 2012-10-09 2014-04-17 광운대학교 산학협력단 확장 비디오 부호화 및 복호화를 위한 엔트로피 초기화 방법 및 그 장치
KR20150092105A (ko) * 2012-12-06 2015-08-12 소니 주식회사 복호 장치, 복호 방법, 및 프로그램
US9467707B2 (en) 2013-03-05 2016-10-11 Qualcomm Incorporated Parallel processing for video coding
JP6208993B2 (ja) 2013-06-28 2017-10-04 ルネサスエレクトロニクス株式会社 画像復号装置及び画像復号装置の復号処理方法
KR102304687B1 (ko) * 2013-07-22 2021-09-27 소니그룹주식회사 정보 처리 장치 및 방법
US11425395B2 (en) 2013-08-20 2022-08-23 Google Llc Encoding and decoding using tiling
US9992501B2 (en) 2013-09-10 2018-06-05 Kt Corporation Method and apparatus for encoding/decoding scalable video signal
US10212445B2 (en) * 2014-10-09 2019-02-19 Qualcomm Incorporated Intra block copy prediction restrictions for parallel processing
MX2018006141A (es) * 2015-11-24 2018-08-01 Samsung Electronics Co Ltd Metodo y dispositivo de decodificacion de video, y metodo y dispositivo de codificacion del mismo.
EP3185553A1 (en) * 2015-12-21 2017-06-28 Thomson Licensing Apparatus, system and method of video compression using smart coding tree unit scanning and corresponding computer program and medium
ES2963845T3 (es) * 2016-07-14 2024-04-02 Koninklijke Kpn Nv Codificación de vídeo
GB2570879B (en) * 2018-02-06 2022-08-17 Advanced Risc Mach Ltd Encoding data arrays
JP7437374B2 (ja) * 2018-07-02 2024-02-22 ノキア テクノロジーズ オーユー ビデオコーディングでのタイル関連アドレス指定のための方法および装置
WO2020056352A1 (en) 2018-09-14 2020-03-19 Futurewei Technologies, Inc. Slicing and tiling in video coding
CN112740680A (zh) 2018-09-19 2021-04-30 韩国电子通信研究院 图像编码/解码方法和设备以及存储比特流的记录介质
US20210227173A1 (en) * 2019-01-04 2021-07-22 Beijing Boe Optoelectronics Technology Co., Ltd. Image data processing method, data transmission apparatus, image display method and storage medium
MX2021010005A (es) * 2019-02-26 2021-09-21 Apple Inc Metodo de codificacion/decodificacion de se?ales de imagen y dispositivo para el mismo.
MX2021010155A (es) 2019-04-17 2021-09-14 Apple Inc Metodo de codificacion/decodificacion de se?ales de imagen y dispositivo para el mismo.
CN110446047A (zh) * 2019-08-16 2019-11-12 苏州浪潮智能科技有限公司 视频码流的解码方法及装置
WO2021040430A1 (ko) * 2019-08-27 2021-03-04 현대자동차주식회사 차등 부호화를 이용하는 비디오 부호화 및 복호화
EP4080883A4 (en) * 2019-12-17 2023-12-06 Apple Inc. METHOD FOR IMAGE SIGNAL CODING/DECODING AND DEVICE THEREFOR
WO2021164782A1 (en) 2020-02-21 2021-08-26 Beijing Bytedance Network Technology Co., Ltd. Slice and tile partitioning in video coding
AU2021226551A1 (en) * 2020-02-28 2022-09-29 Huawei Technologies Co., Ltd. An encoder, a decoder and corresponding methods simplifying signalling slice header syntax elements
US11616955B2 (en) * 2020-07-14 2023-03-28 Avago Technologies International Sales Pte. Limited Signaling of rectangular slices in the VVC video compression standard

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5471248A (en) * 1992-11-13 1995-11-28 National Semiconductor Corporation System for tile coding of moving images
US5835792A (en) * 1993-06-24 1998-11-10 Discovision Associates Token-based adaptive video processing arrangement
US5767797A (en) 1996-06-18 1998-06-16 Kabushiki Kaisha Toshiba High definition video decoding using multiple partition decoders
US6549674B1 (en) * 2000-10-12 2003-04-15 Picsurf, Inc. Image compression based on tiled wavelet-like transform using edge and non-edge filters
JP4448334B2 (ja) 2002-04-19 2010-04-07 マイクロソフト コーポレーション バイト整列されていない(non−byte−alignedpositions)のポジション、および/またはビット・シフトされたポジション(bit−siftedpositions)を含む位置におけるスタート・コード・エミュレーションを防ぐための方法およびシステム
FR2842378B1 (fr) * 2002-07-15 2005-02-04 Canon Kk Procede et dispositif de traitement d'une requete ou de donnees numeriques compressees
US7526144B2 (en) * 2003-02-20 2009-04-28 Ricoh Company, Ltd. Image processing method, image expansion method, image output method, image conversion method, image processing apparatus, image expansion apparatus, image output apparatus, image conversion apparatus, and computer-readable storage medium
KR100643269B1 (ko) * 2004-01-13 2006-11-10 삼성전자주식회사 Roi를 지원하는 영상 코딩 방법 및 장치
US7768520B2 (en) 2006-05-03 2010-08-03 Ittiam Systems (P) Ltd. Hierarchical tiling of data for efficient data access in high performance video applications
KR101277713B1 (ko) * 2007-02-08 2013-06-24 삼성전자주식회사 비디오 부호화 장치 및 그 방법
JP2010527216A (ja) * 2007-05-16 2010-08-05 トムソン ライセンシング マルチビュー・ビデオ符号化(mvc)情報の符号化においてスライス群を使用する方法及び装置
KR20090004658A (ko) * 2007-07-02 2009-01-12 엘지전자 주식회사 디지털 방송 시스템 및 데이터 처리 방법
CN101394550B (zh) * 2007-09-17 2010-08-11 华为技术有限公司 视频数据的打包方法及装置
RU2010127312A (ru) * 2007-12-05 2012-01-10 Онлайв, Инк. (Us) Система и способ сжатия интерактивного потокового видео
US8542748B2 (en) * 2008-03-28 2013-09-24 Sharp Laboratories Of America, Inc. Methods and systems for parallel video encoding and decoding
CN102055963A (zh) * 2008-06-13 2011-05-11 华为技术有限公司 一种视频编码、解码方法及编码、解码装置
WO2010067505A1 (ja) * 2008-12-08 2010-06-17 パナソニック株式会社 画像復号化装置および画像復号化方法
US8344917B2 (en) 2010-09-30 2013-01-01 Sharp Laboratories Of America, Inc. Methods and systems for context initialization in video coding and decoding
US8767824B2 (en) * 2011-07-11 2014-07-01 Sharp Kabushiki Kaisha Video decoder parallelization for tiles

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
A. Fuldseth, et al. Tiles. JCT-VC of ITU-T and ISO/IEC. JCTVC-E408 Ver.2, Mar. 31, 2011, pp.1-14
A. Fuldseth, et al. Tiles. JCT-VC of ITU-T and ISO/IEC. JCTVC-F335 Ver.2, Jul. 16, 2011, pp.1-15
K. Misra, et al. New results for parallel decoding for Tiles. JCT-VC of ITU-T and ISO/IEC. JCTVC-F594 Ver.2, Jul. 17, 2011, pp.1-6
K. Misra, et al. Tiles for parallel decoding. JCT-VC of ITU-T and ISO/IEC. JCTVC-E412 Ver.2, Mar. 19, 2011, pp.1-5

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020256442A1 (ko) * 2019-06-20 2020-12-24 주식회사 엑스리스 영상 신호 부호화/복호화 방법 및 이를 위한 장치
US11184611B2 (en) 2019-06-20 2021-11-23 Xris Corporation Method for encoding/decoding image signal and apparatus therefor
US11722665B2 (en) 2019-06-20 2023-08-08 Xris Corporation Method for encoding/decoding image signal and apparatus therefor

Also Published As

Publication number Publication date
CN107277530A (zh) 2017-10-20
CA2941053A1 (en) 2013-02-07
CA2842804C (en) 2016-10-25
AU2012290972A1 (en) 2014-02-27
US20120230428A1 (en) 2012-09-13
CA2842804A1 (en) 2013-02-07
CN103718557A (zh) 2014-04-09
US9325999B2 (en) 2016-04-26
AU2016200416B2 (en) 2017-05-18
KR101653069B1 (ko) 2016-08-31
CN103718557B (zh) 2017-07-28
US20160198157A1 (en) 2016-07-07
CN107277530B (zh) 2020-12-25
AU2012290972B2 (en) 2015-10-29
US9667971B2 (en) 2017-05-30
KR20160104090A (ko) 2016-09-02
CA2941053C (en) 2021-11-09
KR20140042899A (ko) 2014-04-07
WO2013018909A1 (en) 2013-02-07
AU2016200416A1 (en) 2016-02-11

Similar Documents

Publication Publication Date Title
US11805253B2 (en) Processing a video frame having slices and tiles
KR101747065B1 (ko) 비디오 디코딩 방법
US9398307B2 (en) Video decoder for tiles
JP6588507B2 (ja) 復号方法、復号装置、符号化方法及び符号化装置。
US20120230399A1 (en) Video decoder parallelization including a bitstream signal
US20120230398A1 (en) Video decoder parallelization including slices

Legal Events

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