KR20180004249A - 고효율 비디오 코딩(hevc) 스크린 콘텐츠 코딩(scc) 확장을 위한 어드밴스드 코딩 기법 - Google Patents

고효율 비디오 코딩(hevc) 스크린 콘텐츠 코딩(scc) 확장을 위한 어드밴스드 코딩 기법 Download PDF

Info

Publication number
KR20180004249A
KR20180004249A KR1020177035377A KR20177035377A KR20180004249A KR 20180004249 A KR20180004249 A KR 20180004249A KR 1020177035377 A KR1020177035377 A KR 1020177035377A KR 20177035377 A KR20177035377 A KR 20177035377A KR 20180004249 A KR20180004249 A KR 20180004249A
Authority
KR
South Korea
Prior art keywords
flag
index
type
block
coding
Prior art date
Application number
KR1020177035377A
Other languages
English (en)
Inventor
하오핑 유
멍 쉬
웨이 왕
판이 두안무
셔빈 미나에
Original Assignee
후아웨이 테크놀러지 컴퍼니 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 후아웨이 테크놀러지 컴퍼니 리미티드 filed Critical 후아웨이 테크놀러지 컴퍼니 리미티드
Publication of KR20180004249A publication Critical patent/KR20180004249A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • 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)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

인코딩 장치, 디코딩 장치 및 코딩 방법이 제공된다. 디코더에 의해, 인코더로부터 비트스트림을 수신하는 단계, 마지막 스트링 이외의 블록 내의 인덱스 값의 스트링에 대응하는 제1 플래그 및 블록으로부터 인덱스 값의 마지막 스트링에 대응하는 제2 플래그를 식별하기 위해, 디코더를 사용하여 비트스트림을 스캐닝하는 단계, 디코더에 의해, 제1 플래그를 인코딩하는 데 사용되는 컨텍스트 모델이 제2 플래그를 인코딩하는 데 사용되는 컨텍스트 모델과 동일하다는 것을 결정하는 단계 및 디코더에 의해, 컨텍스트 모델을 사용하여 비디오 프레임을 생성하는 단계를 포함한다.

Description

고효율 비디오 코딩(HEVC) 스크린 콘텐츠 코딩(SCC) 확장을 위한 어드밴스드 코딩 기법
비교적 짧은 필름조차도 묘사하는 데 필요한 비디오 데이터의 양은 상당할 수 있으며, 이는 제한된 대역폭 용량을 갖는 통신 네트워크를 통해 그 데이터가 스트리밍되거나 그렇지 않으면 통신될 때 어려움을 초래할 수 있다. 따라서, 비디오 데이터는 일반적으로 현대의 원격 통신 네트워크를 통해 통신 되기 이전에 압축된다. 비디오 압축 장치는 종종 전송 이전에 소스에서 소프트웨어 및/또는 하드웨어를 사용하여 비디오 데이터를 코딩함으로써, 디지털 비디오 이미지를 나타내는 데 필요한 데이터의 양을 감소시킨다. 그 다음, 압축된 데이터는 비디오 데이터를 디코딩하는 비디오 압축 해제 장치에 의해 목적지에서 수신된다. 제한된 네트워크 자원 및 높은 비디오 화질에 대한 요구가 증가함에 따라, 비트율을 높이지 않고 이미지 화질을 개선시키는 개선된 압축 및 압축 해제 기술이 바람직하다.
비교적 짧은 필름조차도 묘사하는 데 필요한 비디오 데이터의 양은 상당할 수 있으며, 이는 제한된 대역폭 용량을 갖는 통신 네트워크를 통해 그 데이터가 스트리밍되거나 그렇지 않으면 통신될 때 어려움을 초래할 수 있다. 따라서, 비디오 데이터는 일반적으로 현대의 원격 통신 네트워크를 통해 통신되기 이전에 압축된다. 비디오 압축 장치는 종종 전송 이전에 소스에서 소프트웨어 및/또는 하드웨어를 사용하여 비디오 데이터를 코딩함으로써, 디지털 비디오 이미지를 나타내는 데 필요한 데이터의 양을 감소시킨다. 그 다음, 압축된 데이터는 비디오 데이터를 디코딩하는 비디오 압축 해제 장치에 의해 목적지에서 수신된다. 제한된 네트워크 자원 및 높은 비디오 화질에 대한 요구가 증가함에 따라, 비트율을 높이지 않고 이미지 화질을 개선시키는 개선된 압축 및 압축 해제 기술이 바람직하다.
현재 고효율 비디오 코딩(HEVC) 프레임워크 내의 팔레트 모드에 의해 제공된 효율에도 불구하고, 개선을 위한 여지가 여전히 있다. 본 개시는 HEVC 스크린 콘텐츠 코딩(SCC) 확장의 전체 성능, 즉 인코딩/디코딩 프로세스에서의 병렬 처리의 더 나은 코딩 효율 및 개선된 효율성을 더욱 개선시키도록 디자인된 다수의 기술을 제공한다. 특히, 인터 블록 코딩(Inter block coding)을 위한 개선된 예측 유닛(PU: Prediction unit) 파티션 및 블록 벡터(BV: Block vector)/모션 벡터(MV: Motion vector) 예측 후보 선택이 논의되며, 여기서 예측 블록 및 압축중인 블록은 모두 동일한 프레임(인트라 블록(Intra block)이라고도 함) 또는 별개의 프레임(인터 프레임 예측(Inter frame prediction)이라고도 함)에서 나올 수 있다. 또한 각 2Nx2N 맵이 쿼드 트리 구조를 사용하여 더 작은 4개의 NxN 맵 또는 현재 PU 파티션 디자인을 사용하여 2개의 2NxN 또는 2개의 Nx2N 서브 맵으로 더 파티셔닝되는 팔레트 모드를 위한 고급 인덱스 맵 코딩이 논의된다. 각각의 서브 맵이 전체 맵에서 인덱스의 서브 세트로만 구성될 수 있으므로, 서브 맵에서 인덱스의 2진 표현의 길이를 감소시키기 위해 인덱스 변환 프로세스가 도입된다. 더 작은 서브 맵을 코딩하는 이점은 더 나은 코딩 효율 및 서브 맵의 코딩을 위한 병렬 처리를 허용하는 것을 포함한다. 코딩 효율을 더 개선시키기 위해, 일부 서브 맵에 대해 제1 행(수평 스캐닝 방향) 또는 좌측 열(수직 스캐닝 방향)의 인덱스에 Above 모드를 확장하는 것이 제안되었다. 또한, 마지막 실행을 포함하는 RunType 플래그를 코딩하기 위해 동일한 컨텍스트(context)를 사용하는 것이 제안되었다.
일 실시예에서, 본 개시는 비디오 프레임을 디코딩하는 방법으로서, 디코더에 의해, 인코더로부터 비트스트림(bitstream)을 수신하는 단계; 디코더를 사용하여, 비트스트림으로부터 제1 플래그(flag)를 파싱(parsing)하는 단계 - 상기 제1 플래그는 블록 내의 인덱스 값의 마지막 스트링에 대응함 -; 디코더를 사용하여, 비트스트림으로부터 제2 플래그를 파싱하는 단계 - 상기 제2 플래그는 블록 내의 인덱스 값의 마지막 스트링 이외의 블록 내의 값의 스트링에 대응하며, 상기 제1 플래그를 파싱하는 데 사용되는 컨텍스트 모델은 상기 제2 플래그를 파싱하는 데 사용되는 컨텍스트 모델과 동일함 -; 및 상기 디코더에 의해, 상기 제1 플래그 및 상기 제2 플래그를 사용하여 비디오 프레임을 생성하는 단계를 포함한다.
일 실시예에서, 제1 플래그는 last_palette_run_type_flag를 포함한다. 일 실시예에서, 제2 플래그는 palette_run_type_flag를 포함한다. 일 실시예에서, 컨텍스트 모델은 컨텍스트 적응형 이진 산술 부호화 방식(CABAC) 컨텍스트 모델을 포함한다. 일 실시예에서, 제2 플래그는 palette_run_type_flag를 포함하며, 제1 플래그는 last_palette_run_type_flag를 포함하고, 상기 컨텍스트 모델은 컨텍스트 적응형 이진 산술 부호화 방식(CABAC) 컨텍스트 모델을 포함한다.
다른 실시예에서, 본 개시는 인코더로부터 비트스트림을 수신하도록 구성된 수신기를 포함하는 디코딩 장치를 포함하는 인코딩 방법을 포함하며, 상기 비트스트림은 인덱스 맵을 포함하고, 상기 수신기에 동작 가능하게 결합되고 인덱스 맵을 디코딩하도록 구성된 프로세서 - 상기 인덱스 맵은 인덱스 맵 내의 파티션의 전체 수를 나타내는 파티션 깊이 및 상기 인덱스 맵 내의 각 서브 블록에 대한 인덱스의 수를 나타내는 단일 인덱스 플래그를 포함함 -; 및 상기 프로세서에 동작 가능하게 결합되고 상기 파티션 깊이 및 상기 단일 인덱스 플래그를 사용하여 구성된 비디오 프레임을 전송하도록 구성된 송신기를 포함한다.
일 실시예에서, 인덱스 맵은 정사각형 인덱스 맵을 포함하고, 파티션은 정사각형 서브 블록의 쿼드 트리 구조를 포함한다. 일 실시예에서, 인덱스 맵은 정사각형 인덱스 맵을 포함하고, 파티션은 직사각형 파티션을 포함한다. 일 실시예에서, 단일 인덱스 플래그가 비트스트림에 포함될 때, 파티션 깊이는 0이 아니다. 일 실시예에서, 단일 색 테이블이 모든 서브 블록 간에 공유된다. 일 실시예에서, 서브 블록 중 적어도 하나에 대한 스캐닝 방향은 서브 블록 중 다른 서브 블록에 대한 스캐닝 방향과 상이하다.
또 다른 실시예에서, 본 개시는 인코더로부터 비트스트림을 수신하도록 구성된 수신기를 포함하는 디코딩 장치를 포함하며, 상기 비트스트림은 제1 유형의 예측 유닛에 대한 벡터 예측 후보 리스트를 포함하고, 상기 벡터 예측 후보 리스트 내의 벡터 후보는 이웃 예측 유닛이 제2 유형인 경우에도 제1 유형이며, 상기 수신기에 동작 가능하게 결합되고 상기 벡터 예측 후보 리스트로부터 제1 유형의 벡터 후보 중 하나를 선택하도록 구성된 프로세서; 및 상기 프로세서에 동작 가능하게 결합되고 상기 벡터 예측 후보 리스트로부터 선택된 벡터 후보 중 하나를 사용하여 구성된 비디오 프레임을 전송하도록 구성된 송신기를 포함한다.
일 실시예에서, 제1 유형은 인트라 블록 카피(IBC)이고, 제2 유형은 인터 프레임 코딩(IFC)이다. 일 실시예에서, 제1 유형은 IFC이며, 제2 유형은 IBC이다. 일 실시예에서, 벡터 예측 후보 리스트는 제2 유형의 적어도 하나의 벡터 후보를 대체한 제1 유형의 적어도 하나의 벡터 후보를 포함한다. 일 실시예에서, 벡터 예측 후보 리스트는 AMVP리스트를 포함한다. 일 실시예에서, 벡터 예측 후보 리스트는 ABVP 리스트를 포함한다. 일 실시예에서, 벡터 예측 리스트 내의 제1 유형의 벡터 후보의 순서는 제2 유형의 벡터 후보 중 적어도 하나가 제거됨에 따라 변경된다. 벡터 예측 리스트 내의 제1 유형의 벡터 후보의 전체 수는 제2 유형의 벡터 후보 중 적어도 하나가 제거될 때 변경된다.
분명한 것은, 상기 실시예 중 임의의 하나는 다른 상기 실시예 중 임의의 하나 이상과 조합되어, 본 발명의 범위 내에서 새로운 실시예를 생성할 수 있다는 것이다.
이들 및 다른 특징들은 첨부 도면 및 청구항과 관련하여 취해진 이하의 상세한 설명으로부터 보다 더 명확하게 이해될 것이다.
본 발명의 보다 완전한 이해를 위해, 첨부 도면 및 상세한 설명과 관련하여 취해진 이하의 간단한 설명이 참조된다. 동일한 참조 번호는 동일한 부분을 나타낸다.
도 1은 팔레트 모드를 사용하여 인덱스 맵 코딩을 설명하는 데 사용되는 블록 내의 인덱스 맵 컬러의 다이어그램이다.
도 2는 서브 블록에 대한 파티션 및 깊이를 설명하는 인덱스 맵의 실시예이다.
도 3은 서브 블록에 대한 스캐닝 방향을 설명하는 인덱스 맵의 실시예이다.
도 4 내지 도 5는 직사각형 파티션을 설명하는 인덱스 맵의 실시예이다.
도 6a 및 도 6b는 서브 인덱스 맵에 대한 인덱스 정제를 설명하는 블록의 실시예이다.
도 7은 송신기(예를 들어, 인코더)의 실시예이다.
도 8은 수신기(예를 들어, 디코더)의 실시예이다.
도 9는 코딩 방법의 실시예의 흐름도이다.
도 10은 인코더 및 디코더를 포함할 수 있는 네트워크 유닛의 실시예의 개략도이다.
하나 이상의 실시예의 예시적인 구현이 이하에 제공되지만, 개시된 시스템 및/또는 방법은 현재 알려져 있거나 또는 존재하는 임의의 수의 기술을 사용하여 구현될 수 있음을 이해해야 한다. 본 개시는 여기서 도시되고 설명된 예시적인 디자인 및 구현을 포함하여, 이하에서 설명되는 예시적인 구현, 도면 및 기술에 제한되어서는 안되며, 첨부된 청구항의 범위 내에서 등가물의 전체 범위와 함께 수정될 수 있다.
통상적으로, 비디오 매체는 정지 이미지 또는 프레임의 시퀀스를 비교적 빠르게 연속적으로 디스플레이하는 것에 의해 시청자로 하여금 움직임을 인지하게 하는 것에 관련된다. 각각의 프레임은 복수의 화소 또는 픽셀을 포함할 수 있으며, 각각은 그 프레임 내에서 단일 기준점을 나타낼 수 있다. 디지털 처리 동안, 각각의 픽셀은 대응하는 기준점에서 휘도 또는 색도과 같은 이미지 화질 또는 특성을 나타내는 정수 값(예를 들어, 0, 1, … 또는 255)이 할당될 수 있다. 사용 시, 이미지 또는 비디오 프레임은 많은 양의 픽셀(예를 들어, 1920x1080 프레임에서 2,073,600 픽셀)을 포함할 수 있다. 따라서, 각 픽셀을 독립적으로 인코딩 및 디코딩(이하 간단히 코딩이라고 지칭함)하는 것은 번거롭고 비효율적일 수 있다. 코딩 효율을 개선시키기 위해, 비디오 프레임은 보통 예측, 변환 및 양자화와 같은 처리의 기본 단위로서 작용할 수 있는 복수의 직사각형 블록 또는 매크로 블록으로 분할된다. 예를 들어, 전형적인 NxN 블록은 N2픽셀을 포함할 수 있으며, 여기서 N은 1보다 큰 정수이고 종종 4의 배수이다.
국제 전기 통신 연합(ITU: International Telecommunications Union) 전기 통신 표준화 부문(ITU-T) 및 국제 표준화 기구(ISO)/국제 전기 기술 위원회(IEC)에서, 고효율 비디오 코딩(HEVC: High Efficiency Video Coding)에 대한 새로운 블록 개념이 도입되었다. 예를 들어, 코딩 유닛(CU: coding unit)은 비디오 프레임을 동일한 크기 또는 가변 크기의 직사각형 블록으로 서브-파티셔닝하는 것으로 지칭될 수 있다. HEVC에서, CU는 이전 표준의 매크로 블록 구조를 대체할 수 있다. 인터 또는 인트라 예측 모드에 따라, CU는 하나 이상의 예측 유닛(PU)을 포함할 수 있으며, 각각은 예측의 기본 단위로서 작용할 수 있다. 예를 들어, 인트라 예측의 경우, 8x8 CU는 대칭적으로 4개의 4x4 PU로 분할될 수 있다. 다른 예로서, 인터 예측의 경우, 64x64 CU는 비대칭적으로 16x64 PU 및 48x64PU로 분할될 수 있다. 유사하게는, PU는 하나 이상의 변환 유닛(TU: transform units)을 포함할 수 있으며, 각각은 변환 및/또는 양자화를 위한 기본 단위로서 작용할 수 있다. 예를 들어, 32x32 PU는 대칭적으로 4개의 16x16 TU로 분할될 수 있다. 하나의 PU의 다수의 TU는 동일한 예측 모드를 공유할 수 있지만, 개별적으로 변환될 수 있다. 여기서, 블록이라는 용어는 일반적으로 매크로 블록, CU, PU 또는 TU 중 임의의 것을 지칭할 수 있다.
응용에 따라, 블록은 무손실 모드(예를 들어, 왜곡 또는 정보 손실) 또는 손실 모드(예를 들어, 왜곡과 함께)로 코딩될 수 있다. 사용 시, 고효율 비디오(예를 들어, YUV 서브 샘플링이 4:4:4인)는 무손실 모드를 사용하여 코딩될 수 있으며, 반면 저효율 비디오(예를 들어, YUV 샘플링이 4:2:0인)는 손실 모드를 사용하여 코딩될 수 있다. 여기서, YUV의 Y 구성요소는 색(휘도 또는 광도)의 밝기를 나타내고, U 및 V 구성요소는 색 자체(채도)를 나타낸다. 때때로, 단일 비디오 프레임 또는 슬라이스(예를 들어, YUV 샘플링이 4:4:4 또는 4:2:0인)는 무손실 및 손실 모드 모두를 사용하여, 직사각형 또는 불규칙한 형태일 수 있는 복수의 영역을 코딩할 수 있다. 각각의 영역은 복수의 블록을 포함할 수 있다. 예를 들어, 복합 비디오는 텍스트 및 컴퓨터 그래픽 콘텐츠(예를 들어, 비 카메라 캡쳐 이미지) 및 풍경 콘텐츠(예를 들어, 카메라 캡쳐 비디오)와 같은 상이한 유형의 콘텐츠의 조합을 포함할 수 있다. 복합 프레임에서, 텍스트 및 그래픽의 영역은 무손실 모드로 코딩될 수 있지만, 풍경 콘텐츠의 영역은 손실 모드로 코딩될 수 있다. 손실 코딩은 눈의 피로를 유발할 수 있는 텍스트 및 그래픽의 품질 또는 충실도를 저하시킬 수 있기 때문에, 텍스트 및 그래픽의 무손실 코딩은 예를 들어, 컴퓨터 스크린 공유 응용 프로그램에서 요구될 수 있다.
반도체, 네트워킹, 통신, 디스플레이, 컴퓨터 및 태블릿, 스마트 폰과 같은 장치의 신속하고 지속적인 발전으로, 많은 응용 프로그램은 높은 시각적 품질로 비 카메라 캡쳐 비디오 콘텐츠를 효율적으로 압축할 수 있는 HEVC 기반 압축/코딩 해결책을 요구한다. 여기서 스크린 콘텐츠로 지칭될 수 있는 비 카메라 캡쳐 비디오 콘텐츠는 컴퓨터 생성 그래픽, 윈도우 전환 및 이동, 텍스트 스크롤링 등과 같은 응용에서 흔히 나타나는 전형적인 모션을 갖는 텍스트를 포함할 수 있다. 대부분의 경우, 비 카메라 캡쳐 비디오 콘텐츠는 선명한 텍스쳐와 선명한 에지를 뚜렷한 컬러로 선명하게 제공하며 4:4:4 컬러 샘플링 형식을 가질 수 있다.
현재 HEVC 스크린 콘텐츠 코딩은 컴퓨터 스크린을 보다 효율적으로 표현하기 위해 팔레트 모드를 도입한다. 팔레트 모드는 R. Joshi 및 J. Xu의 HEVC 스크린 콘텐츠 코딩의 작업 초안 2, MPEG-N14969/JCTVC-S1005, Strasbourg, FR, 2014년 10월(HEVC SCC)에 설명되어 있으며, 이는 본 명세서에 포함된다. 팔레트 모드는 컴퓨터 생성 콘텐츠를 효과적으로 나타내고 압축하기 위해 HEVC SCC 초안에 채택된다. 이는 인트라 코딩을 위한 추가 모드로 개발되었다. 모든 CU에 대해, 기존의 픽셀 블록은 팔레트 테이블 및 해당 인덱스 맵으로 변환된다. 팔레트 모드는 SCM(Screen Content Coding Test Model) 2.0 참조 소프트웨어에서도 사용된다.
현재 HEVC 프레임워크 내의 팔레트 모드에 의해 제공된 효율에도 불구하고, 여전히 개선의 여지가 있다. 여기서 개선된 비디오 코딩을 위한 시스템 및 방법이 개시된다. 본 개시는 HEVC SCC 확장의 전체 성능, 즉 인코딩/디코딩 프로세스에서의 병렬 처리의 더 나은 코딩 효율 및 개선된 효율성을 더욱 개선시키도록 디자인된 다수의 기술을 제공한다. 특히, 인터 블록 코딩에 대한 개선된 PU 파티션 및 블록 벡터(BV)/모션 벡터(MV) 예측 후보 선택이 논의되며, 상기 예측 블록 및 압축 하에서의 블록 모두는 동일한 프레임(인트라 블록으로도 알려짐) 또는 별개의 프레임(인터 프레임 예측으로도 알려짐)에서 나올 수 있다. 또한 논의된 것은 각 2Nx2N 맵이 쿼드 트리 구조를 사용하여 4개의 NxN 작은 맵 또는 현재 PU 파티션 디자인을 사용하여 2개의 2NxN 또는 2개의 Nx2N 서브 맵으로 더 분할되는 팔레트 모드를 위한 고급 인덱스 맵 코딩이다. 각각의 서브 맵이 전체 맵에서 인덱스의 서브 세트로만 구성될 수 있으므로, 인덱스 변환 프로세스가 서브 맵에서 인덱스의 2진 표현 길이를 감소시키기 위해 도입된다. 더 작은 서브 맵을 코딩하는 이점은 더 나은 코딩 효율 및 서브 맵의 코딩을 위한 병렬 처리를 허용하는 것을 포함한다. 코딩 효율을 더 개선시키기 위해, 서브 맵의 일부에 대해서 제1 행(수평 스캐닝 방향) 또는 좌측 열(수직 스캐닝 방향)의 인덱스에 Above 모드를 확장하는 것이 제안된다. 또한, 마지막 실행을 포함하여 RunType 플래그를 코딩하는 데 동일한 컨텍스트를 사용할 것이 제안된다. 이들 새로운 기술에 대한 자세한 설명은 해당 구문 변경과 함께 이하에 설명된다.
스크린 생성 콘텐츠 코딩에 특히 적합한 팔레트 기반 코딩에서, 비디오 코더(예를 들어, 비디오 인코더 또는 비디오 디코더)는 주어진 블록의 비디오 데이터를 나타내는 컬러의 “팔레트”를 형성한다. 팔레트는 주어진 블록에서 가장 지배적인(예를 들어, 자주 사용되는) 컬러를 포함할 수 있다. 주어진 블록의 비디오 데이터에서 드물게 또는 거의 나타나지 않는 컬러는 팔레트에 포함되지 않는다. 팔레트에 포함되지 않는 컬러는 이스케이프 컬러(escape colors)로 지칭된다.
주어진 블록에 대응하는 인덱스 맵이 팔레트 모드 코딩 동안 코딩될 때, 팔레트에 포함되는 각각의 컬러는 인덱스 값이 할당된다. 예를 들어, 블랙 및 화이트 컬러가 팔레트에 포함되는 경우, 화이트 컬러는 0의 인덱스 값을 가질 수 있으며, 블랙 컬러는 1의 인덱스 값을 가질 수 있다. 또한, 팔레트에 포함되지 않는 각각의 컬러는 예를 들어, 단일 또는 공통 인덱스 값이 할당된다. 예를 들어, 팔레트에 블루, 그린 및 레드 컬러가 포함되지 않는 경우, 이들 컬러는 모두 3의 인덱스 값을 가진다. 팔레트에 포함되지 않는 컬러에 대한 인덱스 값은 이스케이프 컬러 인덱스 값으로 지칭될 수 있다.
현재 HEVC SCC 초안은 실행 기반의 1차원(1-D) 스트링을 이용한다. 그럼에도 불구하고, 2차원(2-D) 스트링 방법은 여기서 참고로 포함되어 있는, W. Wang, Z. Ma, M. Xu, H. Yu, “논-CE6: HEVC SCC에서 팔레트 모드의 2-D 인덱스 맵 코딩”, JCTVC-S0151, Strasbourg, FR, 2014년 10월 및 명칭이 “HEVC SCC의 팔레트 모드”이고, 2014년 10월에 출원된 미국 특허 가출원 제62/060,450호에 제안되었다. 간결함을 위해 여기에 완전히 설명되지는 않았지만, 통상의 기술자는 2-D 스트링 방법이 일부 상황에서는 실행 기반 1-D 스트링 방법을 디폴트할 수 있다는 것을 이해할 것이다.
팔레트 모드에서 인덱스 모드 코딩이 1-D 스트링 방법을 사용할 때, 2개의 주요 부분이 각 CU에 포함된다. 이들 2개의 부분은 컬러 테이블 처리 및 인덱스 맵 코딩이다. 예를 들어, 1-D 스트링 방법에 대한 인덱스 맵 코딩은 _ABOVE 모드를 이용할 수 있으며, 상기 _ABOVE_MODE는 현재 스트링이 현재 스트링 바로 위에 있는 스트링의 인덱스와 동일한지 여부를 나타내기 위해 적용된다.
도 1은 팔레트 모드를 사용하여 인덱스 맵 코딩의 예를 제공하는 데 사용될 인덱스 맵 컬러의 8x8 블록(100)을 도시한다. 도시된 바와 같이, 블록(100) 내의 상부 스트링(102)은 인덱스 값 1, 1, 1, 1, 2, 2, 2 및 2(좌측에서 우측으로)를 가지며, 상부 스트링(102) 바로 아래의 스트링(104)은 인덱스 값 1, 1, 1, 1, 1, 1, 1 및 1을 가지며, 블록(100)내의 다음 스트링(106)은 인덱스 값 1, 1, 1, 1, 1, 1, 1 및 1을 가지고, 블록(100) 내의 다음 스트링(108)은 인덱스 값 1, 1, 3(여기서 3은 블루를 나타냄), 2, 2, 2, 2 및 2를 가지며, 블록(100) 내의 다음 스트링(110)은 인덱스 값 1, 1, 3(여기서 3은 그린을 나타냄), 2, 2, 2, 2 및 2를 가지며, 블록(100) 내의 다음 스트링(112)은 인덱스 값 1, 1, 3(여기서 3은 레드를 나타냄), 2, 2, 2, 2 및 2를 가지고, 블록(100) 내의 다음 스트링(114)은 인덱스 값 2, 2, 2, 2, 2, 2, 2 및 2를 가지고, 블록(100) 내의 하부 스트링(116)은 인덱스 값 2, 2, 2, 2, 2, 2, 2 및 2를 가진다. 제1 스트링(102)을 비트스트림으로 인코딩하기 위해, palette_run_type flag(예를 들어, 1 비트 palette_run_type_flag), 인덱스 값 및 실행 값이 사용된다.
palette_run_type 플래그는 현재 스트링 위의 스트링 내에 임의의 인덱스 값이 카피되었는지 여부를 나타낸다. 상기 스트링의 일부가 카피된 경우, palette_run_type 플래그는 _ABOVE_MODE를 나타내는 제1 이진수(예를 들어, 1)로 설정된다. 상기 스트링이 카피되지 않은 경우, palette_run_type 플래그는 _INDEX_MODE를 나타내는 제2 이진수(예를 들어, 0)로 설정된다. 상부 스트링(102)을 인코딩할 때, 상부 스트링(102) 위에 배치된 스트링이 없기 때문에, palette_run_type 플래그는 디폴트로 0이 설정된다. 인덱스 값은 블록(100)의 스트링 내에 나타나는 특정 수 값(예를 들어, 1 또는 2)이다. 실행 값은 얼마나 많은 연속 인덱스 값이 카피될 수 있는지이다. 예를 들어, 실행 값이 1로 설정된 경우, 단일 인덱스 값이 카피되고, 실행 값이 2로 설정된 경우, 2개의 연속 인덱스 값이 카피되며, 실행 값이 3으로 설정된 경우, 3개의 연속 실행 값이 카피된다. 따라서, 인덱스 값 1, 1, 1, 1, 2, 2, 2, 2을 갖는 상부 스트링(102)을 인코딩하기 위해, 이하의 구문이 사용된다: palette_run_type_flag=0, 인덱스 값=1, 실행 값=4, palette_run_type_flag=0, 인덱스 값=2, 실행 값=4.
인덱스 값 1, 1, 1, 1, 1, 1, 1, 1을 갖는 다음 스트링(104)을 인코딩하기 위해, 이하의 구문이 사용될 수 있다: palette_run_type_flag=1, 실행 값=4, palette_run_type_flag=0, 인덱스 값=1, 실행 값=4. 다르게는, 이하의 구문이 또한 사용될 수 있다: palette_run_type_flag=0, 실행 값=8. 인덱스 값 1, 1, 1, 1, 1, 1, 1, 1을 갖는 다음 스트링(106)을 인코딩하기 위해, 이하의 구문이 사용된다: palette_run_type_flag=1, 실행 값=8. 인코딩에 사용되는 특정 구문은 예를 들어, 부호율-왜곡 최적화 모듈 또는 다른 적절한 인코더 구성요소에 의해 결정될 수 있다. 부호율-왜곡 최적화 모듈은 예를 들어, 어떤 구문이 코딩하는 데 가장 효율적인지에 기반하여 특정 구문을 선택할 수 있다. 예를 들어, 스트링(104 및 106)의 모든 인덱스는 palette_run_type_flag=0, 인덱스 값=1, 실행=16으로 인코딩될 수 있다.
다음 스트링(108)은 3이 이스케이프 블루 컬러 또는 이스케이프 그린 컬러에 대응하는 이스케이프 컬러 인덱스 값인 인덱스 값 1, 1, 3, 3, 2, 2, 2, 2을 갖는다. 기존 종래의 코딩 방식을 사용하면, 이하의 구문이 다음 스트링(108)을 인코딩하는 데 사용된다: palette_run_type_flag=1, 실행 값=2, palette_run_type_flag=0, 인덱스 값=3, 이스케이프 컬러=블루, palette_run_type_flag=0, 인덱스 값=3, 이스케이프 컬러=그린, palette_run_type_flag=0, 인덱스 값=2, 실행 값=4. 마찬가지로, 기존 종래의 코딩 방식을 사용하면, 이하의 구문이 다음 스트링(110)을 인코딩하는 데 사용된다: palette_run_type_flag=1, 실행 값=2, palette_run_type_flag=0, 인덱스 값=3, 이스케이프 컬러=그린, palette_run_type_flag=0, 인덱스 값=3, 이스케이프 컬러=블루, palette_run_type_flag=1, 실행 값=4. 이하의 구문은 다음 스트링(112)을 인코딩하는 데 사용된다: palette_run_type_flag=1, 실행 값=2, palette_run_type_flag=0, 인덱스 값=3, 이스케이프 컬러=레드, palette_run_type_flag=1, 실행 값=5.
상기를 염두에 두고, 현재 CU에 대응하는 인덱스 맵(200)은 도 2에 나타난 바와 같이 상이한 크기로 보다 작은 블록으로 구성되는 다양한 파티션을 사용하여 코딩될 수 있다. 하나의 가능성은 정사각형 블록의 형태의 인덱스 맵(200)이 4개의 정사각형 서브 블록(202)으로 분할되는 인덱스 맵에 대해 쿼드 트리 구조를 사용하는 것이다. 주어진 서브 블록(202)에 대해, 기존의 블록으로부터 분할되는데 요구되는 수는 인덱스 맵 깊이라고 불린다. 도 2에서 나타난 바와 같이, 인덱스 맵(200)은 구문 요소를 사용하여 코딩될 수 있는 “3”의 전체 깊이를 갖는다.
파티션 구조로 인덱스 맵을 코딩하면, 단일 컬러 테이블은 전체 파티션에 대해 시그널링되고 코딩되며, 모든 서브 블록 간에 공유된다. 기본적으로, 인코더는 모든 서브 블록에 대한 파티션을 결정한다. 인덱스 맵 파티션으로, 일부 서브 블록이 잠재적으로 보다 효율적으로 코딩될 수 있으므로, 전체적인 코딩 성능이 향상된다.
각각의 서브 블록(202)에서, 파티션 깊이가 0이 아닐 때, single_index_flag는 서브 블록이 단일 인덱스만을 포함하는지 여부를 나타내는 데 시그널링된다. single_index_flag가 1인 경우, 인덱스가 시그널링되고 인덱스 맵 코딩의 나머지 부분이 바이패스된다. 일 실시예에서, 전체 깊이는 전체 블록(예를 들어, 블록(200))에서 사용되는 파티션의 최대 수를 나타내며, single_index_flag는 특정 서브 블록(예를 들어, 서브 블록(202, 204))의 깊이를 나타내는 데 사용된다. 코딩 전략을 사용하여, “위에 카피” 기능이 코딩 효율을 향상시키는 데 사용될 수 있다. 예를 들어, 4개의 3의 수가 하나의 서브 블록에서 발견될 때, 코딩 동안, 하위 3개는 위의 3개에서 “카피”될 수 있다.
인덱스 맵(200)에 대한 코딩의 실례가 되는 예시가 명확성을 위해 제공된다. 인덱스 맵(200)이 코딩될 때, 3의 전체 깊이가 시그널링된다. 전체 깊이는 인덱스 맵의 파티션(예를 들어, 쿼드 트리 또는 2진 구조)의 전체 수를 나타낸다. 전체 깊이 이후에, 마주치게 되는 제1 서브 블록의 파티션 깊이가 시그널링된다. 도 2에서, 좌측 상부 서브 블록(202)이 사용된다.
좌측 상부 서브 블록(202)에 대해, 인코더는 도 2에서 나타난 바와 같이, 제1 3개의 서브 블록(204)에 대한 single_index_flag는 2이고 나머지 서브 서브 블록(204)에 대한 single_index_flag는 3임을 시그널링한다. 일 실시예에서, 상부 2개의 서브 서브 블록은 3의 값으로 인코딩될 수 있으며, 전술한 바와 같은 기능 위의 카피는 3의 값을 갖는 하부 2개의 서브 서브 블록을 인코딩하여 코딩 효율을 향상시킬 수 있다.
인덱스 맵(200)의 전체 깊이가 3으로 나타났고 서브 서브 블록(204)에 대해 3이 시그널링되었기 때문에, 더 이상의 파티션이 좌측 상부 서브 블록(202)에서 발견되지 않는다는 표시가 인코더에 제공된다. 따라서, 인코더는 코딩 방향에 따라 인코딩 될 다음 서브 블록으로 이동한다. 예를 들어, 우측 상부 서브 블록(202)은 다음에 인코딩될 수 있다. 우측 상부 서브 블록(202)에 대해, 인코더는 single_index_flag를 1로 시그널링하여, 그 서브 블록(202)에 대한 인덱스 맵(200)의 나머지 부분이 바이패스되도록 한다. 마찬가지로, 좌측 하부 서브 블록(202)에 대해, 인코더는 single_index_flag를 1로 시그널링하여, 그 서브 블록(202)에 대한 인덱스 맵(200)의 나머지 부분이 바이패스되도록 한다.
우측 하부 서브 블록(202)에 대해, 인코더는 도 2에 나타난 바와 같이, 제1 서브 서브 블록(204)에 대해 single_index_flag가 3이고 나머지 3개의 서브 서브 블록(204)에 대해 single_index_flag가 2임을 시그널링한다. 다시 말해, 일 실시예에서, 상부 2개의 서브 서브 블록(204)은 3의 값으로 인코딩될 수 있으며, 전술한 기능 위의 카피는 코딩 효율을 향상시키기 위해 3의 값을 가지는 하부 2개의 서브 서브 블록(204)을 인코딩하는 데 사용될 수 있다. 전술한 바와 같이 인코딩 된 비트스트림을 수신하면, 디코더는 유사한 방식으로 비트스트림을 디코딩할 수 있다.
인덱스 맵 파티셔닝은 코딩 유닛 파티셔닝과 독립적이며, 인덱스 맵 코딩 방법과도 독립적이다. 이는 인덱스 맵 예측 및 코딩에 어떤 방법이 사용되는지와 관계 없이 적용된다. 예를 들어, 하나의 서브 블록은 수평 스캔 프로세스를 사용할 수 있고 다른 하나는 수직 스캔 프로세스를 사용할 수 있다.
일 실시예에서, NxN 인덱스 맵 파티션 및 코딩이 사용될 수 있다. 최대 허용 인덱스 맵 쿼드 트리 깊이가 1일 때, 쿼드 트리는 HEVC 프레임워크에서 PU 구조를 사용하여 코딩될 수 있다. index_part_mode 플래그는 현재 인덱스 맵이 더 작은 인덱스 맵으로 파티셔닝 되어 있는지 여부를 나타내기 위해 시그널링된다. 하나의 실시예에서, index_part_mode는 HEVC 인트라 모드로 코딩된 PU 분할 플래그와 동일한 방식으로 코딩될 수 있다. 다른 실시예에서, index_part_mode는 별개의 컨텍스트 모델을 사용하거나, 또는 바이패스 모드를 사용하여 코딩될 수 있다.
비디오 코더는 각 빈에 대한 확률 추정치를 사용하여, 블록에 대한 변환 계수 또는 구문 정보에 대응하는 비디오 데이터의 블록에 대해 각 빈을 코딩할 수 있다. 확률 추정치는 주어진 이진 값(예를 들어, "0" 또는 "1")을 갖는 빈의 가능성을 나타낼 수 있다. 확률 추정치는 "컨텍스트 모델" 이라고도 지칭되는 확률 모델 내에 포함될 수 있다. 비디오 코더는 빈에 대한 컨텍스트를 결정함으로써 컨텍스트 모델을 선택할 수 있다. 구문 요소의 빈에 대한 컨텍스트는 이전에 코딩된 이웃 구문 요소의 연관된 빈의 값을 포함할 수 있다. 일부 예에서, 현재 구문 요소를 코딩하기 위한 컨텍스트는 현재 구문 요소의 상부 및 좌측에 위치된 이웃 구문 요소를 포함할 수 있다. 어떤 경우에서든, 각각의 컨텍스트에 대해 상이한 확률 모델이 정의된다. 빈을 코딩한 이후에, 컨텍스트 모델은 가장 최근의 확률 추정치를 반영하기 위해 빈의 값에 기반하여 더 업데이트된다.
일 실시예에서, 컨텍스트 모델은 예를 들어, 컨텍스트 적응형 이진 산술 부호화 방식(CABAC) 컨텍스트 모델과 같은 확률 모델이다. 컨텍스트 모델링은 코딩 심볼의 조건부 확률 추정치를 제공한다. 적절한 컨텍스트 모델을 이용하여, 주어진 인터 심볼 중복성은 인코딩 할 현재 심볼의 이웃에 있는 이미 코딩된 심볼에 따라 상이한 확률 모델 사이에서 스위칭함으로써 이용될 수 있다. 컨텍스트 모델링은 대부분의 CABAC에서 컨텍스트 적응형 가변 길이 코딩(CAVLC) 엔트로피 코딩 방법에 비해 비트 전송률을 약 10% 절감한다. 컨텍스트 모델링의 더 자세한 논의 및 예는 여기서 참조 문헌으로 포함된 D. Marpe, et. al, "H.264/AVC 비디오 압축 표준에서 컨텍스트 기반 적응형 이진 산술 부호화", 비디오 기술을 위한 회로 및 시스템에 대한 IEEE 거래, Vol. 13, No. 7, 2003년 7월에 기재되어 있다.
NxN PU 파티션이 사용될 때, 기존의 인덱스 맵은 동일한 팔레트 테이블을 공유하는 더 작은 4개의 정사각형 인덱스 맵으로 분할된다. 각각의 서브 블록은 병렬 방식으로 코딩될 수 있다. 더 큰 인덱스 맵을 코딩하기 위해 사용되는 기술은 더 작은 블록에도 적용될 수 있다. 예를 들어, 각각의 서브 인덱스 맵은 도 3에 도시된 바와 같이, 기존의 인덱스/Above 모드와 함께 적응 스캔 방향(예를 들어, 수평 또는 수직)을 사용하여 코딩될 수 있다. 도 3의 블록(300)은 도 2의 블록(200)과 유사할 수 있다. 그러나, 도 3의 블록(300)은 각 서브 블록(302)에 대한 스캔 방향을 설명하는 반면, 도 2의 블록(200)은 각 서브 블록(202)에 대한 인덱스 맵 깊이를 설명한다.
일 실시예에서, 2NxN 및 Nx2N 인덱스 맵 파티션 및 코딩이 사용될 수 있다. 2NxN 인덱스 맵 파티션을 갖는 블록(400)은 도 4에 설명되는 반면, Nx2N 인덱스 맵 파티션을 갖는 블록(500)은 도 5에 설명된다. 도 4의 블록(400) 및 도 5의 블록(500)은 도 3의 블록(300)과 유사할 수 있다. 2NxN 또는 Nx2N 파티션으로, 기존의 인덱스 맵은 동일한 팔레트 테이블을 공유하는 더 작은 2개의 직사각형 블록(402, 502)으로 분할된다. 직사각형 파티셔닝이 가능해질 때, index_part_mode 플래그는 인터 모드의 PU 파티션 플래그와 동일한 방식으로 코딩될 수 있다.
일 실시예에서, 인덱스 정제는 서브 인덱스 맵에 대해 사용된다. 서브 인덱스 맵은 팔레트 테이블의 부분 엔트리에만 대응하는 인덱스를 포함한다. 도 6a 및 도 6b의 블록(600)에 의해 수집적으로 설명된 바와 같이, 인덱스 정제 프로세스는 인덱스를 더 작은 범위에 걸쳐있는 새로운 값으로 변환하도록 적용된다. 도 6a 및 도 6b의 블록(600)은 도 1의 블록(100)의 부분들과 유사할 수 있다.
일 실시예에서, 정제 프로세스는 이하의 단계에서 설명된다. 하나의 단계에서, 도 6a의 블록(600)에서의 서브 인덱스 맵(610)이 스캔된다. 현재 서브 인덱스 맵(610)에서의 모든 기존의 고유 인덱스(예를 들어, 0, 3, 6, 7, 10 및 20)가 발견되고 오름차순으로 정렬된다. 다음, 정수 0, 1, 2 ,… n은 정렬된 인덱스에 할당되고, 여기서 n은 현재 서브 인덱스 맵의 고유 인덱스 수를 나타낸다. 본 실시예에서, 정수는 연속적으로 할당된다.
현재 컬러 테이블(예를 들어, palette_escape_val_present_flag가 0일 때)의 크기와 동일하거나, 또는 현재 테이블 크기에 1을 더한(예를 들어, palette_escape_val_present_flag가 1일 때) 것과 동일한 2진 비트를 포함하는 index_refinement_vector라는 벡터는 현재 서브 인덱스 맵에 어느 인덱스가 존재하는지를 나타내도록 시그널링된다. 벡터의 각 비트에 대해, 1은 해당 인덱스가 현재 서브 인덱스 맵에 존재함을 나타내며 0은 해당 인덱스가 존재하지 않음을 나타낸다.
예로서, 도 6a는 연관 팔레트 테이블 크기가 21(즉, 최대 인덱스 값이 20)이고 이스케이프된 픽셀이 없다는 가정에 기반하는 전형적인 4x4 서브 인덱스 맵(610)을 설명한다. 이 예에서, 최대 인덱스 값은 20이다. TBC(Truncated Binary Coding)로, 각 인덱스의 이진 표현은 각 인덱스에 대해 4 또는 5비트를 요구한다. 해당 index_refinement_vector은 100100110010000000001이다.
인덱스 정제 이후에, 도 6a의 서브 인덱스 맵(610)은 도 6b에 도시된 서브 인덱스 맵(610)으로 단순화된다. 인덱스 정제 기술을 사용하여, 정제 이후에 최대 인덱스 값은 5가 된다. 각 인덱스의 이진 표현은 각 인덱스에 대해 2 또는 3비트만을 요구한다.
일 실시예에서, COPY_ABOVE_MODE는 서브 인덱스 맵 사이에서 확장될 수 있다. 인덱스 맵이 상술한 바와 같이 더 작은 블록으로 분할될 때, 팔레트 코드(PLD) 코딩의 상기 기술 카피는 서브 인덱스 맵의 제1 행/열을 포함하도록 확장되고, 여기서 인덱스 예측은 2개의 이웃 서브 인덱스 블록 사이에 적용될 수 있다. 수평 스캐닝 방향이 사용될 때, 하부 블록의 제1 행은 그 상위 이웃 블록의 마지막 행으로부터의 인덱스를 예측으로서 사용할 수 있다. 수직 스캐닝 방향이 사용될 때, 우측 블록의 좌측 열은 좌측 블록의 우측 열로부터의 인덱스를 예측으로서 사용할 수 있다. 위의 확장된 카피 방법은 현재 코딩 유닛(CU) 내에서 제한된다. 즉, 좌측 상부 블록은 이 방법을 적용할 수 없다. 그러나, 수직 스캔 방향을 사용하여 코딩된 우측 상부 블록은 좌측 상부 블록의 우측 열로부터의 인덱스를 카피할 수 있으며, 수평 스캔 방향을 사용하여 코딩된 좌측 하부 블록은 좌측 상부 블록의 하부 열로부터의 인덱스를 카피할 수 있다.
현재 서브 인덱스 맵의 모든 인덱스가 이웃으로부터 카피될 수 있는 경우, 구문 요소 num_palette_indices_idc는 0으로 설정되고 비트스트림으로 시그널링되며, 인덱스 맵 코딩의 나머지 부분은 스킵된다. 서브 인덱스 맵이 단일 인덱스만을 포함할 때, 전체 서브 인덱스 맵이 이웃의 마지막 라인으로부터 카피될 수 있는 경우, 상위 모드의 확장된 카피를 사용하여 코딩된다. 그렇지 않으면, HEVC SCC 확장에서 PLT 코딩 기술을 사용하여 인덱스 모드를 사용하여 코딩된다.
팔레트 모드에서의 고급 인덱스 맵 코딩을 사용하는 구문은 표 1 및 표 2에 도시된다:
[표 1] 어드밴스드 인덱스 맵 코딩의 예
Figure pct00001
[표 2] 어드밴스드 인덱스 맵 코딩의 예
Figure pct00002
Figure pct00003
도 1과 관련하여 전술한 바와 같이, 블록 내의 스트링은 예를 들어, 마지막 스트링(예를 들어, 도 1의 블록의 마지막 행)에 도달할 때까지 차례로 코딩된다. 현재 HEVC SCC 초안에서, 블록의 마지막 스트링은 다른 스트링과 상이하게 처리된다. 이 차이를 시그널링하기 위해, last_palette_run_type_flag가 마지막 스트링에 사용되는 반면, palette_run_type_flag는 상이한 스트링에 사용되며, 상이한 컨텍스트 모델은 이들 2개의 플래그에 사용된다. 그러나, 2개의 상이한 컨텍스트 모델을 사용하여 이들 2개의 플래그를 인코딩하면 코딩 이점이 거의 없다는 것을 발견하였다. 따라서, palette_run_type_flag 및 last_palette_run_type_flag에 대한 컨텍스트 모델은 통합된다. 일 실시예에서, palette_run_type_flag에 대한 컨텍스트 모델은 블록의 각 스트링에 대해 사용되며, 마지막 스트링을 포함한다. 다시 말해, palette_run_type_flag에 해당하는 컨텍스트 모델은 블록의 마지막 스트링에 사용된다.
여기서 향상된 인덱스 맵 코딩에 대해 논의된 본 발명의 개념은 도 7 및 도 8에 도시된 모듈 및/또는 시스템에서 구현될 수 있으며, 이하에서 더 자세하게 설명할 것이다. 도 7에 나타난 송신기(700) 및 도 8에 나타난 수신기(800)의 작업은 이하의 단락에서 더 자세하게 설명할 것이다.
도 7은 본 개시에 따라 스크린 콘텐츠 코딩 프로세스를 수행하는 예시적인 송신기(700)의 기능 블록도를 도시한다. 도 8은 본 개시에 따라 스크린 콘텐츠 디코딩 프로세스를 수행하는 예시적인 수신기(800)의 기능 블록도를 도시한다. 송신기(700) 및 수신기(800)의 실시예는 단지 설명을 위한 것이다. 송신기(700) 및 수신기(800)의 다른 실시예는 본 개시의 범위를 벗어나지 않고 사용될 수 있다.
송신기(700)는 비트스트림에서 각 CU 또는 코딩 트리 유닛(CTU) 상에서 수행될 수 있는 고효율 컬러 팔레트 압축(CPC) 프로세스를 수행하도록 구성된다. 도 7에서 나타난 바와 같이, 송신기(700)는 비트스트림에서 CU(701)로 시작한다. 위에서 언급한 바와 같이, CU는 HEVC 및 HEVC 포맷 범위 확장(RExt)의 기본 작업 단위이며, 일반적으로 3개의 컬러 구성요소(예를 들어, RGB, YUV, XYZ 등)를 포함하는 정사각형 픽셀 블록이다.
설명의 편의상, 도 7의 송신기(700)는 CU(701)와 설명될 것이다. 그러나, 일 실시예에서, 도 7의 송신기(700)는 CU(701) 대신 CTU(701)로 시작할 수 있다. 통상의 기술자는 송신기(700)가 CTU(701)와 상당히 동일한 프로세스를 수행할 수 있음을 이해할 것이다.
팔레트 테이블 생성 블록(703)은 CU를 사용하여 팔레트 테이블(때로는 컬러 테이블로 지칭됨)을 유도하거나 생성한다. 팔레트 테이블을 유도하기 위해, 도 7의 팔레트 테이블 생성 블록(703)은 하나 이상의 순서 규칙에 따라 컬러 값을 정렬한다. 팔레트 테이블은 이하의 인코딩 작업의 효율을 증가시키기 위해, 각 컬러 값의 발생 빈도, CU(701)의 각 픽셀의 실제 컬러 강도, 또는 임의의 다른 적절한 순서 행렬(들)에 따라 정렬될 수 있다.
유도된 팔레트 테이블 생성 블록(703)에 기반하여, 컬러 분류기 블록(705)은 CU(701)를 사용하여 컬러 인덱스 맵에 CU(701)의 컬러 또는 픽셀 값을 할당한다. 테이블 인코딩 블록(707)은 팔레트 테이블을 수신하고 팔레트 테이블의 엔트리를 인코딩한다. 본 발명의 개념을 구현하는 데 사용될 수 있는 모듈을 포함하는 인덱스 맵 인코딩 블록(709)은 컬러 분류기 블록(705)에 의해 생성된 컬러 인덱스 맵을 인코딩한다. 이들 작업은 이하에서 더 상세하게 설명된다.
잔류 인코딩 블록(711)은 컬러 분류기 블록(705)에 의해 생성된 각 이스케이프 컬러를 인코딩한다. 일 실시예에서, 잔류 인코딩 블록(711)은 적응 고정 길이 또는 가변 길이 잔류 이진화를 수행한다. 그 다음, 멀티플렉싱(MUX) 블록(713)은 인코딩된 잔류를 사용하여 압축된 비트스트림을 생성한다.
도 8에 나타난 바와 같이, 수신기(800)는 전술한 바와 같이 도 7의 송신기(700)에 의해 수행되는 스크린 콘텐츠 인코딩 프로세스와 유사한 스크린 콘텐츠 디코딩 프로세스를 수행하도록 구성된다. 수신기(800)는 압축된 비디오 비트스트림을 수신한 다음, 디멀티플렉서(801)를 사용하여 비트스트림을 인코딩된 팔레트 테이블, 컬러 인덱스 맵 및 인코딩된 잔류로 파싱한다. 테이블 디코딩 블록(803) 및 팔레트 테이블 생성 블록(809)은 각 CU에 대해 완전한 팔레트 테이블을 재구성하기 위해, 도 7의 테이블 인코딩 블록(707) 및 팔레트 테이블 생성 블록(703)과 반대되는 프로세스를 수행한다. 유사하게는, 본 발명의 개념을 구현하는 데 사용될 수 있는 모듈을 포함하는 인덱스 맵 디코딩 블록(805) 및 잔류 디코딩 블록(807)은 컬러 인덱스 맵을 재구성하기 위해 인덱스 맵 인코딩 블록(709) 및 잔류 인코딩 블록(711)과 반대되는 프로세스를 수행한다. 컬러 역분류기 블록(811)은 컬러 인덱스 맵 및 팔레트 테이블을 조합함으로써 각 위치에서 픽셀 값을 유도함으로써, CTU 또는 CU(813)를 재구성한다.
비록 도 7 및 도 8이 스크린 콘텐츠 인코딩 및 디코딩을 수행하는 송신기(700) 및 수신기(800)의 예를 도시하지만, 도 7 및 도 8에 다양한 변경이 이루어질 수 있다. 예를 들어, 도 7 및 도 8의 다양한 구성요소가 조합되거나, 더 세분화되거나, 또는 생략될 수 있으며, 특정 요구에 따라 추가 구성요소가 추가될 수 있다. 특정 예로서, 다양한 구성요소는 하나의 하우징 또는 하나의 회로 기판에 함께 배치될 수 있거나 단일 프로세서 또는 처리 유닛에 의해 수행될 수 있다.
도 9는 본 개시의 실시예에 따른 디코딩 방법(900)의 흐름도이다. 방법(900)은 예를 들어, 도 8의 인덱스 맵 디코딩 블록(805) 내의 모듈에 의해 수행될 수 있다. 방법(1000)은 예를 들어, 인코더로부터 수신된 비트스트림이 디코딩될 때 수행될 수 있다. 단계 902에서, 인코더로부터 비트스트림은 디코더에 의해 수신된다. 단계 904에서, 비트스트림은 블록으로부터 인덱스 값의 초기 스트링 중 하나에 대응하는 제1 플래그(예를 들어, palette_run_type_flag) 및 블록의 마지막 스트링에 대응하는 제2 스트링(예를 들어, last_palette_run_type_flag)을 식별하도록 스캐닝된다. 단계 906에서, 디코더는 제1 플래그를 인코딩하는 데 사용되는 컨텍스트 모델이 제2 플래그를 인코딩하는 데 사용되는 컨텍스트 모델과 동일하다는 것을 결정한다. 즉, 디코더는 컨텍스트 모델이 일치함을 인식한다. 단계 908에서, 디코더는 컨텍스트 모델을 사용하여 비디오 프레임을 생성한다. 비디오 프레임은 결국 사용자에 대한 컴퓨팅 장치(예를 들어, 컴퓨터, 스마트 폰, 태블릿 장치 등) 상에 디스플레이될 수 있다.
상기 이외에, 개선된 모션 벡터(MV)/블록 벡터(BV) 예측 후보 선택 및 PU 파티션 기술이 개시된다. HEVC의 기존 사양에서, 향상된 모션 벡터 예측(AMVP) 후보는 이웃 PU로부터 선택되고, 인터 PU의 MV만 AMVP 리스트를 형성하는 데 사용된다. 인트라 블록 카피(IBC) 및 인터 프레임 코딩의 통일의 채택 시, AMVP 후보 선택 프로세스에서 식별된 이웃 PU는 IBC 모드로 코딩될 수 있다. 그 결과, 인터 프레임 코딩된 PU에 대한 AMVP 리스트는 IBC 코딩된 PU로부터의 BV로 구성될 수 있다. 유사하게는, ABVP 리스트는 인터 코딩된 PU로부터의 MV를 포함할 수 있다.
IBC BV 및 인터 MV의 통계적 분포 사이의 차이 때문에, AMVP 또는 ABVP 후보 리스트에서 BV 및 MV를 함께 믹싱하는 것은 IBC에 대한 블록 벡터의 코딩 또는 인터 코딩된 PU에 대한 모션 벡터의 코딩에 대한 최적의 예측을 유도하지 못할 수 있다. 따라서, 상기 문제를 해결하기 위해 이하의 방법이 개발되었다.
하나의 실시예 방법에서, 인터 PU에 대한 AMVP 리스트를 형성할 때, 미리 정의된 PU 위치에서의 PU가 IBC PU일 때 BV 및/또는 그의 스케일링 버전은 AMVP 후보로서 제거된다. 그 결과, AMVP 리스트에서 다른 MV 후보가 선택될 수 있다. 즉, AMVP 프로세스에서만 MV를 사용하고 IBC 코딩된 이웃 PU에 대해서 MV를 사용할 수 없다고 마킹한다. 마찬가지로, IBC PU에 대한 ABVP 리스트를 형성할 때, 미리 정의된 PU 위치가 인터 PU일 때 MV 및/또는 그의 스케줄링 버전은 ABVP 후보로서 제거된다. 그 결과, ABVP 리스트에서 다른 BV 후보가 선택될 수 있다. 즉, ABVP 프로세스에서만 BV를 사용하고 인터 코딩된 이웃 PU에서 BV를 사용할 수 없다고 마킹한다.
하나의 실시예 방법에서, 인터 PU에 대한 AMVP 리스트를 형성할 때, 미리 정의된 PU 위치에서의 PU가 IBC PU일 때 더 많은(공간적 및/또는 시간적) PU위치가 추가되고, 이에 따라 AMVP 후보 선택에 대해 충분한 MV 후보가 있게 된다. 마찬가지로, IBC PU에 대한 ABVP 리스트를 형성할 때, 미리 정의된 PU 위치의 PU가 인터 PU일 때 더 많은(공간적) PU 위치가 추가되고, 이로써 ABVP 후보 선택에 대해 충분한 BV 후보가 있게 된다. 즉, 후보 리스트가 찼는지를 확인하기 위해 추가 후보가 특정 후보 리스트에 추가된다. 사실, 잘못된 유형의 벡터가 존재하고, 그 벡터가 후보 리스트에서 제거되고 올바른 유형의 대체 벡터가 리스트에 대체되어 이로써 리스트의 각 벡터는 동일한 유형의 벡터가 된다.
하나의 실시예 방법에서, 인터 PU에 대한 AMVP 리스트를 형성할 때, AMVP 후보 선택에 더 많은(공간적 및/또는 시간적)PU 위치가 포함될 때 AMVP 후보 선택 프로세스에서의 후보의 수 및 선택 순서가 변경된다. 마찬가지로, IBC PU에 대한 ABVP 리스트를 형성할 때, ABVP 후보 선택에 더 많은 (공간적)PU 위치가 포함될 때 ABVP 후보 선택 프로세스에서의 후보의 수 및 선택 순서가 변경된다.
도 11은 본 개시의 일 실시예에 따른 네트워크 장치(1100)의 개략도이다. 장치(1100)는 이하에 설명한 바와 같이 개시된 실시예를 구현하는데 적합하다. 장치(1100)는 데이터를 수신하기 위한 입구 포트(1110) 및 수신기 유닛(Rx)(1120); 데이터를 처리하기 위한 프로세서, 논리 유닛, 또는 중앙 처리 장치(CPU)(1130); 데이터를 전송하기 위한 송신기 유닛(Tx)(1140) 및 출구 포트(1150); 및 데이터를 저장하기 위한 메모리(1160)를 포함한다. 장치(1100)는 또한 입구 포트(1110)에 결합된 광-전기(OE) 구성요소 및 전기-광(EO) 구성요소, 광학 또는 전기 신호의 출구 또는 입구를 위한 수신기 유닛(1120), 송신기 유닛(1140) 및 출구 포트(1150)를 포함할 수 있다.
프로세서(1130)는 하드웨어 및 소프트웨어에 의해 구현된다. 프로세서(1130)는 하나 이상의 CPU 칩, 코어(예를 들어, 멀티 코어 프로세서), 필드 프로그램 가능 게이트 어레이(FPGA: field-programmable gate array), 주문형 집적 회로(ASIC) 및 디지털 신호 프로세서(DSP)로서 구현될 수 있다. 프로세서(1130)는 입구 포트(1110), 수신기 유닛(1120), 송신기 유닛(1140), 출구 포트(1150) 및 메모리(1160)와 통신한다. 프로세서(1130)는 모듈(1170)을 포함한다. 모듈(1170)은 상술한 개시 실시예를 구현한다. 따라서, 모듈(1170)의 포함은 장치(1100)의 기능성에 상당한 향상을 제공하며 장치(1100)의 상이한 상태로의 변환을 초래한다. 다르게는, 모듈(1170)은 메모리(1160)에 저장된 명령으로서 구현되고 프로세서(1130)에 의해 실행된다.
메모리(1160)는 하나 이상의 디스크, 테이프 드라이브 및 솔리드 스테이트 드라이브(solid-state drives)를 포함하고, 오버 플로우 데이터 저장 장치로서 사용되어, 그러한 프로그램이 실행을 위해 선택될 때 프로그램을 저장하고, 프로그램 실행 중에 판독되는 명령 및 데이터를 저장할 수 있다. 메모리(1160)는 휘발성 및 비 휘발성일 수 있으며 ROM(read-only memory), RAM(random-access memory), TCAM(ternary content-addressable memory) 및 SRAM(static random-access memory)일 수 있다.
디코딩 방법은 인코더로부터 비트스트림을 수신하는 수단, 비트스트림으로부터 제1 플래그를 파싱하는 수단을 포함하고, 상기 제1 플래그는 블록 내의 인덱스 값의 마지막 스트링에 대응한다. 디코딩 방법은 또한, 비트스트림으로부터 제2 플래그를 파싱하는 수단을 포함하며, 상기 제2 플래그는 블록 내의 인덱스 값의 마지막 스트링 이외의 블록 내의 값의 스트링에 대응하며, 상기 제1 플래그를 파싱하는 데 사용되는 컨텍스트 모델은 상기 제2 플래그를 파싱하는 데 사용되는 컨텍스트 모델과 동일하다. 또한, 제1 플래그 및 제2 플래그를 사용하여 비디오 프레임을 생성하는 수단을 더 포함한다.
디코딩 장치는 인코더로부터 비트스트림을 수신하는 수단, 인덱스 맵을 디코딩하는 수단을 포함하고, 비트스트림은 인덱스 맵을 포함하며, 상기 인덱스 맵은 인덱스 맵 내의 총 파티션 수를 나타내는 파티션 깊이 및 인덱스 맵 내의 각 서브 블록에 대한 인덱스의 수를 나타내는 단일 인덱스 플래그를 포함하며, 또한 파티션 깊이 및 단일 인덱스 플래그를 사용하여 구성된 비디오 프레임을 전송하는 수단을 포함한다.
디코딩 장치는 인코더로부터 비트스트림을 수신하는 수단, 벡터 예측 후보 리스트로부터 제1 유형의 벡터 후보 중 하나를 선택하는 수단 및 벡터 예측 후보 리스트로부터 선택된 벡터 후보 중 하나를 사용하여 구성된 비디오 프레임을 전송하는 수단을 포함하며, 비트스트림은 제1 유형의 예측 유닛에 대한 벡터 예측 후보 리스트를 포함하고, 벡터 예측 후보 리스트 내의 벡터 후보는 이웃 예측 유닛이 제2 유형인 경우에도 제1 유형의 벡터 후보이다.
네트워크 용어 "요소", "노드", "구성요소", "모듈", 및/또는 유사한 용어는 일반적으로 네트워크 장치를 설명하기 위해 상호 교환 가능하게 사용될 수 있으며 구체적으로 명시되거나 및/또는 개시된 내용 내에 주장되지 않는 한 특정 또는 특별한 의미를 갖지 않는다.
또한, 다양한 실시예에서 개별적으로 설명되고 도시된 기술, 시스템, 서브시스템 및 방법은 본 개시의 범위를 벗어나지 않고 다른 시스템, 모듈, 기술 또는 방법과 결합되거나 통합될 수 있다. 서로 결합되거나 직접 결합되거나 통신하는 것으로 나타나거나 논의된 다른 항목은 전기적으로, 기계적으로 또는 다른 방법으로 일부 인터페이스, 장치 또는 중간 구성요소를 통해 간접적으로 결합되거나 통신될 수 있다. 변경, 대체 및 변화의 다른 예는 통상의 기술자에 의해 확인될 수 있으며, 본 명세서에 개시된 사상 및 범위를 벗어나지 않고 이루어질 수 있다.

Claims (19)

  1. 비디오 프레임(video frame)을 디코딩하는 방법으로서,
    디코더에 의해, 인코더로부터 비트스트림(bitstream)을 수신하는 단계;
    상기 디코더를 사용하여, 상기 비트스트림으로부터 제1 플래그(flag)를 파싱(parsing)하는 단계 - 상기 제1 플래그는 블록 내의 인덱스 값의 마지막 스트링에 대응함 -;
    상기 디코더를 사용하여, 상기 비트스트림으로부터 제2 플래그를 파싱하는 단계 - 상기 제2 플래그는 상기 블록 내의 인덱스 값의 상기 마지막 스트링 이외의 상기 블록 내의 값의 스트링에 대응하며, 상기 제1 플래그를 파싱하는 데 사용되는 컨텍스트 모델은 상기 제2 플래그를 파싱하는 데 사용되는 컨텍스트 모델과 동일함 -; 및
    상기 디코더에 의해, 상기 제1 플래그 및 상기 제2 플래그를 사용하여 상기 비디오 프레임을 생성하는 단계
    를 포함하는
    비디오 프레임을 디코딩하는 방법.
  2. 제1항에 있어서,
    상기 제1 플래그는 last_palette_run_type_flag를 포함하는, 비디오 프레임을 디코딩하는 방법.
  3. 제1항에 있어서,
    상기 제2 플래그는 palette_run_type_flag를 포함하는, 비디오 프레임을 디코딩하는 방법.
  4. 제1항에 있어서,
    상기 컨텍스트 모델은 컨텍스트 적응형 이진 산술 부호화 방식(CABAC: context adaptive binary arithmetic coding) 컨텍스트 모델을 포함하는, 비디오 프레임을 디코딩하는 방법.
  5. 제1항에 있어서,
    상기 제2 플래그는 palette_run_type_flag를 포함하고 상기 제1 플래그는last_palette_run_type_flag를 포함하며, 상기 컨텍스트 모델은 컨텍스트 적응형 이진 산술 부호화 방식(CABAC) 컨텍스트 모델을 포함하는, 비디오 프레임을 디코딩하는 방법.
  6. 디코딩 장치로서,
    인코더로부터 인덱스 맵을 포함하는 비트스트림(bitstream)을 수신하도록 구성된 수신기;
    상기 수신기에 동작 가능하게 결합되고 상기 인덱스 맵을 디코딩하도록 구성된 프로세서 - 상기 인덱스 맵은 상기 인덱스 맵 내의 파티션(partitions)의 전체 수를 나타내는 파티션 깊이 및 상기 인덱스 맵 내의 각 서브 블록에 대한 인덱스의 수를 나타내는 단일 인덱스 플래그를 포함함 -; 및
    상기 프로세서에 동작 가능하게 결합되고 상기 파티션 깊이 및 상기 단일 인덱스 플래그를 사용하여 구성된 비디오 프레임(video frame)을 전송하도록 구성된 송신기
    를 포함하는
    디코딩 장치.
  7. 제 6항에 있어서,
    상기 인덱스 맵은 정사각형 인덱스 맵을 포함하고, 상기 파티션은 정사각형 서브 블록의 쿼드 트리 구조(quad-tree structure)를 포함하는 디코딩 장치.
  8. 제6항에 있어서,
    상기 인덱스 맵은 정사각형 인덱스 맵을 포함하고, 상기 파티션은 직사각형 파티션을 포함하는 디코딩 장치.
  9. 제6항에 있어서,
    상기 단일 인덱스 플래그가 비트스트림에 포함될 때, 상기 파티션 깊이는 0이 아닌, 디코딩 장치.
  10. 제6항에 있어서,
    모든 상기 서브 블록 간에 단일 색 테이블이 공유되는, 디코딩 장치.
  11. 제6항에 있어서,
    상기 서브 블록 중 적어도 하나에 대한 스캐닝 방향은 상기 서브 블록 중 다른 서브 블록에 대한 스캐닝 방향과 상이한, 디코딩 장치.
  12. 디코딩 장치로서,
    인코더로부터 비트스트림을 수신하도록 구성된 수신기 - 상기 비트스트림은 제1 유형의 예측 유닛에 대한 벡터 예측 후보 리스트를 포함하며, 상기 벡터 예측 후보 리스트 내의 벡터 후보는 이웃 예측 유닛이 제2 유형인 경우에도 제1 유형임 -;
    상기 수신기에 동작 가능하게 결합되고, 상기 벡터 예측 후보 리스트로부터 상기 제1 유형의 벡터 후보 중 하나를 선택하도록 구성된 프로세서; 및
    상기 프로세서에 동작 가능하게 결합되고, 상기 벡터 예측 후보 리스트로부터 선택된 상기 벡터 후보 중 하나를 사용하여 구성된 비디오 프레임을 전송하도록 구성된 송신기
    를 포함하는
    디코딩 장치.
  13. 제12항에 있어서,
    상기 제1 유형은 인트라 블록 카피(IBC: Intra Block Copy)이고, 상기 제2 유형은 인터 프레임 코딩(IFC: inter frame coding)인, 디코딩 장치.
  14. 제12항에 있어서,
    상기 제1 유형은 IFC이고, 상기 제2 유형은 IBC인, 디코딩 장치.
  15. 제12항에 있어서,
    상기 벡터 예측 후보 리스트는 상기 제2 유형의 적어도 하나의 벡터 후보를 대체한 상기 제1 유형의 적어도 하나의 벡터 후보를 포함하는, 디코딩 장치.
  16. 제12항에 있어서,
    상기 벡터 예측 후보 리스트는 AMVP(Advanced Motion Vector Prediction) 리스트를 포함하는, 디코딩 장치.
  17. 제12항에 있어서,
    상기 벡터 예측 후보 리스트는 ABVP(Advanced Block Vector Prediction) 리스트를 포함하는, 디코딩 장치.
  18. 제12항에 있어서,
    상기 벡터 예측 리스트 내의 상기 제1 유형의 상기 벡터 후보의 순서는 상기 제2 유형의 상기 벡터 후보 중 적어도 하나가 제거됨에 따라 변경된 것인, 디코딩 장치.
  19. 제12항에 있어서,
    상기 벡터 예측 리스트 내의 상기 제1 유형의 상기 벡터 후보의 전체 수는 상기 제2 유형의 상기 벡터 후보 중 적어도 하나가 제거될 때 변경된 것인, 디코딩 장치.
KR1020177035377A 2015-06-16 2016-06-15 고효율 비디오 코딩(hevc) 스크린 콘텐츠 코딩(scc) 확장을 위한 어드밴스드 코딩 기법 KR20180004249A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562180446P 2015-06-16 2015-06-16
US62/180,446 2015-06-16
US15/178,316 2016-06-09
US15/178,316 US10148977B2 (en) 2015-06-16 2016-06-09 Advanced coding techniques for high efficiency video coding (HEVC) screen content coding (SCC) extensions
PCT/CN2016/085857 WO2016202259A1 (en) 2015-06-16 2016-06-15 Advanced coding techniques for high efficiency video coding (hevc) screen content coding (scc) extensions

Publications (1)

Publication Number Publication Date
KR20180004249A true KR20180004249A (ko) 2018-01-10

Family

ID=57546624

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177035377A KR20180004249A (ko) 2015-06-16 2016-06-15 고효율 비디오 코딩(hevc) 스크린 콘텐츠 코딩(scc) 확장을 위한 어드밴스드 코딩 기법

Country Status (5)

Country Link
US (1) US10148977B2 (ko)
EP (1) EP3286908A4 (ko)
KR (1) KR20180004249A (ko)
CN (1) CN107534711B (ko)
WO (1) WO2016202259A1 (ko)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230070062A (ko) * 2016-10-04 2023-05-19 주식회사 비원영상기술연구소 영상 데이터 부호화/복호화 방법 및 장치
WO2019234598A1 (en) * 2018-06-05 2019-12-12 Beijing Bytedance Network Technology Co., Ltd. Interaction between ibc and stmvp
GB2589223B (en) 2018-06-21 2023-01-25 Beijing Bytedance Network Tech Co Ltd Component-dependent sub-block dividing
WO2019244117A1 (en) 2018-06-21 2019-12-26 Beijing Bytedance Network Technology Co., Ltd. Unified constrains for the merge affine mode and the non-merge affine mode
US10887594B2 (en) * 2018-07-05 2021-01-05 Mediatek Inc. Entropy coding of coding units in image and video data
WO2020025041A1 (en) * 2018-08-03 2020-02-06 Mediatek Inc. Method and apparatus of enhanced intra block copying mode for video coding
CN117714717A (zh) * 2018-09-10 2024-03-15 华为技术有限公司 视频解码方法及视频解码器
CN110944196B (zh) 2018-09-24 2023-05-30 北京字节跳动网络技术有限公司 简化的基于历史的运动矢量预测
KR20210089133A (ko) 2018-11-06 2021-07-15 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 인트라 예측에 대한 단순화된 파라미터 유도
CN112970262B (zh) 2018-11-10 2024-02-20 北京字节跳动网络技术有限公司 三角预测模式中的取整
WO2020108591A1 (en) 2018-12-01 2020-06-04 Beijing Bytedance Network Technology Co., Ltd. Parameter derivation for intra prediction
CA3121671A1 (en) 2018-12-07 2020-06-11 Beijing Bytedance Network Technology Co., Ltd. Context-based intra prediction
CN111435993B (zh) 2019-01-14 2022-08-26 华为技术有限公司 视频编码器、视频解码器及相应方法
US11595662B2 (en) 2019-02-06 2023-02-28 Tencent America LLC Method and apparatus for neighboring block availability in video coding
WO2020171658A1 (ko) * 2019-02-21 2020-08-27 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
CA3128769C (en) 2019-02-24 2023-01-24 Beijing Bytedance Network Technology Co., Ltd. Parameter derivation for intra prediction
US10924750B2 (en) * 2019-03-01 2021-02-16 Alibaba Group Holding Limited Palette size constraint in palette mode for video compression system
US11202101B2 (en) * 2019-03-13 2021-12-14 Qualcomm Incorporated Grouped coding for palette syntax in video coding
CN113906751A (zh) * 2019-05-31 2022-01-07 北京达佳互联信息技术有限公司 使用调色板模式的基于分段的视频编解码的方法和装置
CN113950838A (zh) * 2019-06-06 2022-01-18 北京字节跳动网络技术有限公司 基于子块的帧内块复制
CN117354507A (zh) 2019-06-06 2024-01-05 北京字节跳动网络技术有限公司 视频编解码的运动候选列表构建
CN113382251B (zh) * 2019-06-21 2022-04-08 杭州海康威视数字技术股份有限公司 一种编解码方法、装置、设备及存储介质
EP3994886A4 (en) 2019-08-06 2022-12-28 Beijing Bytedance Network Technology Co., Ltd. VIDEO ZONE PARTITION ACCORDING TO COLOR FORMAT
CN114342408A (zh) * 2019-08-26 2022-04-12 北京字节跳动网络技术有限公司 视频编码中帧内编码模式的扩展
BR112022003732A2 (pt) 2019-09-02 2022-10-11 Beijing Bytedance Network Tech Co Ltd Método e aparelho para processamento de dados de vídeo, e, meios de armazenamento e de gravação legíveis por computador não transitórios
BR112022005109A2 (pt) 2019-09-21 2023-03-14 Beijing Bytedance Network Tech Co Ltd Método de processamento de vídeo, aparelho para processamento de dados de vídeo, e, meios de armazenamento e de gravação legíveis por computador não transitórios
EP4044599B1 (en) * 2019-11-05 2024-02-14 LG Electronics Inc. Image/video coding method and device
WO2021133529A1 (en) * 2019-12-26 2021-07-01 Alibaba Group Holding Limited Methods for coding video data in palette mode
US11595694B2 (en) * 2020-04-01 2023-02-28 Tencent America LLC Method and apparatus for video coding
CN112055208A (zh) * 2020-08-22 2020-12-08 浙江大华技术股份有限公司 视频编码方法、设备及存储装置
US20220180567A1 (en) * 2020-12-04 2022-06-09 Tencent America LLC Method and apparatus for point cloud coding
US11778217B2 (en) * 2021-02-22 2023-10-03 Tencent America LLC High level syntax control for screen content coding
CN113038131B (zh) * 2021-03-15 2023-04-07 北京奇艺世纪科技有限公司 视频编码方法、装置、计算机设备和存储介质
US20230334713A1 (en) * 2022-04-15 2023-10-19 Tencent America LLC On coding of boundary uv2xyz index for mesh compression
US20230334714A1 (en) * 2022-04-15 2023-10-19 Tencent America LLC Coding of boundary uv2xyz index for mesh compression

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8344917B2 (en) * 2010-09-30 2013-01-01 Sharp Laboratories Of America, Inc. Methods and systems for context initialization in video coding and decoding
US8995523B2 (en) 2011-06-03 2015-03-31 Qualcomm Incorporated Memory efficient context modeling
MX343471B (es) * 2011-08-29 2016-11-07 Ibex Pt Holdings Co Ltd Metodo para generar un bloque de prediccion en modo de prediccion de vector de movimiento avanzada (amvp).
CN102523367B (zh) 2011-12-29 2016-06-15 全时云商务服务股份有限公司 基于多调色板的实时图像压缩和还原方法
US9426463B2 (en) * 2012-02-08 2016-08-23 Qualcomm Incorporated Restriction of prediction units in B slices to uni-directional inter prediction
US9525861B2 (en) * 2012-03-14 2016-12-20 Qualcomm Incorporated Disparity vector prediction in video coding
US20140071235A1 (en) * 2012-09-13 2014-03-13 Qualcomm Incorporated Inter-view motion prediction for 3d video
US10015515B2 (en) 2013-06-21 2018-07-03 Qualcomm Incorporated Intra prediction from a predictive block
CN104301737B (zh) 2013-07-15 2017-11-17 华为技术有限公司 目标图像块的解码方法和编码方法以及解码器和编码器
US9756347B2 (en) * 2013-07-23 2017-09-05 Futurewei Technologies, Inc. Screen content coding systems and methods
WO2015054816A1 (en) 2013-10-14 2015-04-23 Microsoft Technology Licensing, Llc Encoder-side options for base color index map mode for video and image coding
US10291827B2 (en) 2013-11-22 2019-05-14 Futurewei Technologies, Inc. Advanced screen content coding solution
US20150381994A1 (en) 2014-06-27 2015-12-31 Futurewei Technologies, Inc. Advanced screen content coding with improved palette table and index map coding methods
US9942551B2 (en) * 2015-01-30 2018-04-10 Qualcomm Incorporated Palette index grouping for video coding

Also Published As

Publication number Publication date
US10148977B2 (en) 2018-12-04
CN107534711B (zh) 2019-04-19
US20160373756A1 (en) 2016-12-22
EP3286908A1 (en) 2018-02-28
WO2016202259A1 (en) 2016-12-22
EP3286908A4 (en) 2018-09-05
CN107534711A (zh) 2018-01-02

Similar Documents

Publication Publication Date Title
KR20180004249A (ko) 고효율 비디오 코딩(hevc) 스크린 콘텐츠 코딩(scc) 확장을 위한 어드밴스드 코딩 기법
US11146788B2 (en) Grouping palette bypass bins for video coding
US10038908B2 (en) Palette mode in high efficiency video coding (HEVC) screen content coding (SCC)
US9877029B2 (en) Palette index binarization for palette-based video coding
US9826242B2 (en) Palette-based video coding
CN105308959B (zh) 用于视频译码的自适应颜色变换
EP4175184A1 (en) Methods and apparatus for unified significance map coding
US11240507B2 (en) Simplified palette predictor update for video coding
US10652555B2 (en) Method and apparatus of palette index map coding for screen content coding
CN114846789A (zh) 用于指示条带的图像分割信息的解码器及对应方法
NZ737096B2 (en) Grouping palette bypass bins for video coding

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application