KR20170016849A - 디스플레이 스트림 압축 (dsc) 을 위한 엔트로피 코딩 기법들 - Google Patents

디스플레이 스트림 압축 (dsc) 을 위한 엔트로피 코딩 기법들 Download PDF

Info

Publication number
KR20170016849A
KR20170016849A KR1020167034350A KR20167034350A KR20170016849A KR 20170016849 A KR20170016849 A KR 20170016849A KR 1020167034350 A KR1020167034350 A KR 1020167034350A KR 20167034350 A KR20167034350 A KR 20167034350A KR 20170016849 A KR20170016849 A KR 20170016849A
Authority
KR
South Korea
Prior art keywords
samples
block
group
groups
value
Prior art date
Application number
KR1020167034350A
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 KR20170016849A publication Critical patent/KR20170016849A/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/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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • 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/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

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

Abstract

디스플레이 스트림 압축 (DSC) 을 위한 엔트로피 코딩 기법들이 개시된다. 일 양태에서, 비디오 데이터를 엔트로피 코딩하는 방법은 블록의 코딩 모드에 적어도 부분적으로 기초하여 비디오 데이터의 블록을 샘플들의 복수의 그룹들로 파티셔닝하는 단계를 포함한다. 본 방법은 적어도 하나의 그룹에서의 샘플들의 모두가 미리 결정된 값과 동일한 것에 응답하여 그룹들 중 적어도 하나에 대해 그룹-방식 스킵을 수행하는 것을 통해서 블록을 엔트로피 코딩하는 단계를 더 포함한다.

Description

디스플레이 스트림 압축 (DSC) 을 위한 엔트로피 코딩 기법들{ENTROPY CODING TECHNIQUES FOR DISPLAY STREAM COMPRESSION (DSC)}
본 개시물은 비디오 코딩 및 압축의 분야, 특히, 디스플레이 스트림 압축 (DSC) 과 같은, 디스플레이 링크들을 통한 송신을 위한 비디오 압축에 관한 것이다.
디지털 비디오 능력들은 디지털 텔레비전들, 개인 휴대정보 단말기들 (PDA들), 랩탑 컴퓨터들, 데스크탑 모니터들, 디지털 카메라들, 디지털 리코딩 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 디바이스들, 비디오 게임 콘솔들, 셀룰러 또는 위성 무선 전화기들, 원격 화상회의 디바이스들 등을 포함한, 광범위한 디스플레이들에 포함될 수 있다. 디스플레이 링크들이 디스플레이들을 적합한 소스 디바이스들에 접속하는데 사용된다. 디스플레이 링크들의 대역폭 요구사항들은 디스플레이들의 해상도에 비례하며, 따라서, 고해상도 디스플레이들은 큰 대역폭 디스플레이 링크들을 필요로 한다. 일부 디스플레이 링크들은 높은 해상도 디스플레이들을 지원하는 대역폭을 갖지 않는다. 더 낮은 대역폭 디스플레이 링크들이 디지털 비디오를 높은 해상도 디스플레이들에 제공하는데 사용될 수 있도록 비디오 압축이 대역폭 요구사항들을 감소시키는데 사용될 수 있다.
다른 사람들은 픽셀 데이터에 대한 이미지 압축을 이용하려고 시도하였다. 그러나, 이러한 방식들은 종종 시각적으로 무손실이 아니거나 또는 종래의 디스플레이 디바이스들에서 구현하는 것이 어렵고 비쌀 수 있다.
비디오 전자 표준 협회 (VESA) 는 디스플레이 링크 비디오 압축에 대한 표준으로서 디스플레이 스트림 압축 (DSC) 을 개발하였다. DSC 와 같은, 디스플레이 링크 비디오 압축 기법은 특히, 시각적으로 무손실인 픽처 품질 (즉, 사용자들이 압축이 활성이라고 구별할 수 없는 정도의 품질의 레벨을 가지는 픽처들) 을 제공해야 한다. 디스플레이 링크 비디오 압축 기법은 또한 종래의 하드웨어와 실시간으로 구현하기에 용이하고 저렴한 방식을 제공해야 한다.
본 개시물의 시스템들, 방법들 및 디바이스들은 여러 혁신적인 양태들을 각각 가지며, 그 중 어떤 단 하나의 양태도 본원에서 개시된 바람직한 속성들을 단독으로 담당하지 않는다.
일 양태에서, 비디오 데이터를 엔트로피 인코딩하는 방법은, 블록의 코딩 모드에 적어도 부분적으로 기초하여 비디오 데이터의 블록을 샘플들의 복수의 그룹들로 파티셔닝하는 단계; 및 적어도 하나의 그룹에서의 샘플들의 모두가 미리 결정된 값과 동일한 값을 가지는 것에 응답하여, 복수의 그룹들 중 적어도 하나에 대해 그룹-방식 스킵을 수행하는 것을 통해서 블록을 엔트로피 디코딩하는 단계를 포함하며, 상기 그룹-방식 스킵은 그룹-방식 스킵 값을 시그널링하여 적어도 하나의 그룹에서의 샘플을 인코딩하는 것을 억제하는 것을 포함한다.
다른 양태에서, 비디오 데이터를 엔트로피 인코딩하는 디바이스는, 비디오 데이터를 저장하도록 구성된 메모리; 및 상기 메모리와 통신하며, 블록의 코딩 모드에 적어도 부분적으로 기초하여 비디오 데이터의 블록을 샘플들의 복수의 그룹들로 파티셔닝하고; 그리고 적어도 하나의 그룹에서의 샘플들의 모두가 미리 결정된 값과 동일한 값을 가지는 것에 응답하여, 복수의 그룹들 중 적어도 하나에 대해 그룹-방식 스킵을 수행하는 것을 통해서 블록을 엔트로피 인코딩하도록 구성된 프로세서를 포함하며, 상기 그룹-방식 스킵은 그룹-방식 스킵 값을 시그널링하여 적어도 하나의 그룹에서의 샘플을 인코딩하는 것을 억제하는 것을 포함한다.
다른 양태에서, 비디오 데이터를 엔트로피 디코딩하는 방법은, 비디오 데이터의 블록을 나타내는 비트스트림을 수신하는 단계로서, 상기 블록은 샘플들의 복수의 그룹들을 포함하고, 상기 비트스트림은 블록의 샘플들의 대응하는 그룹이 비트스트림에 포함되지 않는다는 것을 표시하는 적어도 하나의 그룹-방식 스킵 값을 포함하는, 상기 수신하는 단계; 그룹-방식 스킵 값에 적어도 부분적으로 기초하여 비트스트림을 엔트로피 디코딩하는 것을 통해서 샘플들의 복수의 그룹들을 생성하는 단계; 및 샘플들의 복수의 그룹들 및 블록의 코딩 모드에 적어도 부분적으로 기초하여 블록을 복원하는 단계를 포함한다.
또한, 다른 양태에서, 비디오 데이터를 엔트로피 디코딩하는 디바이스는, 비디오 데이터의 블록을 나타내는 비트스트림을 저장하도록 구성된 메모리로서, 상기 블록은 샘플들의 복수의 그룹들을 포함하고, 상기 비트스트림은 블록의 샘플들의 대응하는 그룹이 비트스트림에 포함되지 않는다는 것을 표시하는 적어도 하나의 그룹-방식 스킵 값을 포함하는, 상기 메모리; 및 상기 메모리와 통신하며, 그룹-방식 스킵 값에 적어도 부분적으로 기초하여 비트스트림을 엔트로피 디코딩하는 것을 통해서 샘플들의 복수의 그룹들을 생성하고; 그리고 샘플들의 복수의 그룹들 및 블록의 코딩 모드에 적어도 부분적으로 기초하여 블록을 복원하도록 구성된 프로세서를 포함한다.
도 1a 는 본 개시물에서 설명하는 양태들에 따른 기법들을 이용할 수도 있는 예시적인 비디오 인코딩 및 디코딩 시스템을 예시하는 블록도이다.
도 1b 는 본 개시물에서 설명하는 양태들에 따른 기법들을 수행할 수도 있는 다른 예시적인 비디오 인코딩 및 디코딩 시스템을 예시하는 블록도이다.
도 2a 는 본 개시물에서 설명하는 양태들에 따른 기법들을 구현할 수도 있는 예시적인 비디오 인코더의 예를 예시하는 블록도이다.
도 2b 는 본 개시물에서 설명하는 양태들에 따른 기법들을 구현할 수도 있는 예시적인 비디오 디코더의 예를 예시하는 블록도이다.
도 3 은 본 개시물에서 설명된 양태들에 따른, 예측 코딩 모드에 대한 블록을 파티셔닝하는 방법을 예시하는 다이어그램이다.
도 4 내지 도 7 은 본 개시물에서 설명된 양태들에 따른, 변환 계수 코딩 모드에 대한 블록을 파티셔닝하는 방법들을 예시하는 다이어그램들이다.
도 8 은 본 개시물에서 설명된 양태들에 따른, 변환 계수 코딩 모드에 대한 블록을 파티셔닝하는 다른 방법을 예시하는 다이어그램이다.
도 9 내지 도 11 은 본 개시물에서 설명된 양태들에 따른, 블록을 파티셔닝하는 방법들을 예시하는 다이어그램들이다.
도 12 는 본 개시물에서 설명된 양태들에 따른, 비디오 데이터를 엔트로피 인코딩하는 방법을 예시하는 플로우차트이다.
도 13 은 본 개시물에서 설명된 양태들에 따른, 비디오 데이터를 엔트로피 디코딩하는 방법을 예시하는 플로우차트이다.
일반적으로, 본 개시물은 디스플레이 스트림 압축 (DSC) 과 같은 비디오 압축 기법들을 향상시키는 방법들에 관한 것이다. 좀더 구체적으로, 본 개시물은 비디오 데이터 블록을 샘플들의 복수의 그룹들로 파티셔닝하는 단계를 포함하는 엔트로피 코딩하는 시스템들 및 방법들에 관한 것이다.
어떤 실시형태들은 본원에서 DSC 표준의 상황에서 설명되지만, 당업자는 본원에서 개시된 시스템들 및 방법들은 임의의 적합한 비디오 코딩 표준에 적용가능할 수도 있음을 이해할 것이다. 예를 들어, 본원에서 개시된 실시형태들은 다음 표준들 중 하나 이상에 적용가능할 수도 있다: 국제 전기통신 연합 (ITU) 전기통신 표준화 부문 (ITU-T) H.261, International Organization for Standardization/International Electrotechnical Commission (ISO/IEC) Moving Picture Experts Group-1 (MPEG 1) Visual, ITU-T H.262 또는 ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG 4 Visual, (또한, ISO/IEC MPEG-4 AVC 로서 알려진) ITU-T H.264, 고효율 비디오 코딩 (HEVC), 및 이런 표준들에 대한 임의의 확장판들. 또한, 본 개시물에서 설명하는 기법들은 미래에 개발될 표준들의 일부가 될 수도 있다. 다시 말해서, 본 개시물에서 설명하는 기법들은 이전에 개발된 비디오 코딩 표준들, 현재 개발 중인 비디오 코딩 표준들, 및 차기 비디오 코딩 표준들에 적용가능할 수도 있다.
엔트로피 코딩은 가변-길이 코드워드로 정보의 각각의 고유한 심볼을 표시하는 것을 일반적으로 포함하는, 정보를 코딩하는 방법이다. 엔트로피 코딩에서, 더 공통인 (more common) 심볼들은 더 짧은 코드워드들을 이용하여 통상적으로 표현된다. 따라서, 더 공통인 심볼들이 더 짧은 코드워드들의 사용에 기초하여 더 적은 비트들을 이용하여 표현되므로, 정보가 압축될 수 있다.
DSC 표준의 버전 1.0 은 델타 (delta) 사이즈 유닛-가변 길이 코딩 (DSU-VLC) 의미들을 제안한다. DSC 표준의 버전 1.0 에서, 각각의 DSU-VLC 유닛은 접두부 및 접미부 부분들을 이용하여 픽셀들의 그룹의 잔차 값들을 코딩한다. 본 개시물의 적어도 하나의 양태는 (이하에서 DSU-VLC 와 상호교환가능하게 일반적으로 지칭되는) DSU-VLC 스타일 코딩 의미들에의 엔트로피 코딩 원리들의 통합에 관한 것이다. 따라서, 본 개시물의 적어도 하나의 양태는 DSU-VLC 의미들에 엔트로피 코딩과 연관된 코딩 효율성들을 통합할 수 있다.
Huffman, 산술, 지수-Golomb, Rice 코드들 등과 같은, 다수의 인기 있는 엔트로피 코딩 기법들이 존재한다. 그러나, 이들 기법들은 일반적으로 1 샘플/클록의 제한된 처리량을 가지는데, 이것은 높은 해상도 디스플레이들 및 패널들과 같은 어떤 애플리케이션들에 대해서는 너무 낮을 수도 있다. 즉, 종래의 코딩 하드웨어는 DSC 표준과 같은 어떤 코딩 표준에서 바람직한 것처럼, 시각적 무손실 코딩 레이트를 유지하면서 인기 있는 엔트로피 코딩 기법들의 이점을 취할 수 있기에 충분한 클록 레이트를 갖지 않을 수도 있다. 따라서, 본 개시물의 적어도 하나의 양태는 더 높은 처리량들, 예를 들어, 4 샘플들/클록의 처리량을 가지는 엔트로피 코딩 기법들에 관한 것이다.
비디오 코딩 표준들
비디오 리코더 또는 컴퓨터에 의해 발생되는 비디오 이미지, TV 이미지, 정지 화상 또는 이미지와 같은, 디지털 이미지는 수평 및 수직 라인들에 배열된 픽셀들 또는 샘플들을 포함할 수도 있다. 단일 이미지에서 픽셀들의 개수는 일반적으로 수만개이다. 각각의 픽셀은 일반적으로 휘도 및 색차 정보를 포함한다. 압축이 없다면, 이미지 인코더로부터 이미지 디코더로 운반되는 정보의 순수한 양은 실시간 이미지 송신을 실행불가능하게 만들 것이다. 송신될 정보의 양을 감소시키기 위해, JPEG, MPEG 및 H.263 표준들과 같은, 다수의 상이한 압축 방법들이 개발되었다.
비디오 코딩 표준들은 ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 또는 ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual 및 (ISO/IEC MPEG-4 AVC 로서 또한 알려진) ITU-T H.264, 및 이런 표준들의 확장판을 포함한 HEVC 를 포함한다.
게다가, 비디오 코딩 표준, 즉 DSC 가, VESA 에 의해 개발되었다. DSC 표준은 디스플레이 링크들을 통한 송신을 위해서 비디오를 압축할 수 있는 비디오 압축 표준이다. 디스플레이들의 해상도가 증가함에 따라서, 디스플레이들을 구동하는데 요구되는 비디오 데이터의 대역폭이 그에 따라서 증가된다. 일부 디스플레이 링크들은 이러한 해상도들에 있어 비디오 데이터의 모두를 디스플레이로 송신하는 대역폭을 갖지 않을 수도 있다. 따라서, DSC 표준은 디스플레이 링크들을 통한 상호 이용가능한, 시각적 무손실 압축을 위한 압축 표준을 규정한다.
DSC 표준은 H.264 및 HEVC 와 같은, 다른 비디오 코딩 표준들과는 상이하다. DSC 는 인트라-프레임 압축을 포함하지만, 인터-프레임 압축을 포함하지 않는데, 시간 정보가 비디오 데이터를 코딩할 때에 DSC 표준에 의해 사용되지 않을 수도 있다는 것을 의미한다. 이에 반해, 다른 비디오 코딩 표준들은 그들의 비디오 코딩 기법들에서의 인터-프레임 압축을 채용할 수도 있다.
비디오 코딩 시스템
신규한 시스템들, 장치들, 및 방법들이 이하에서 첨부 도면들을 참조하여 좀더 충분히 설명된다. 본 개시물은 그러나, 많은 상이한 형태들로 구현될 수도 있으며, 본 개시물을 통해서 제시되는 임의의 특정의 구조 또는 기능에 한정되는 것으로 해석되어서는 안된다. 대신, 이들 양태들은 본 개시물이 철저하고 완전하게 되도록, 그리고 본 개시물의 범위를 당업자들에게 충분히 전달하기 위해서 제공된다. 본원에서의 교시들에 기초하여, 당업자는 본 개시물의 범위가 본 개시물의 임의의 다른 양태와 독립적으로 구현되든 그와 결합되든, 본원에서 개시된 신규한 시스템들, 장치들, 및 방법들의 임의의 양태를 포괄하도록 의도되는 것으로 이해하여야 한다. 예를 들어, 본원에서 개시된 임의 개수의 양태들을 이용하여, 장치가 구현될 수도 있거나 또는 방법이 실시될 수도 있다. 게다가, 본 개시물의 범위는 본원에서 개시된 본 개시물의 여러 양태들에 추가해서 또는 이 이외에, 다른 구조, 기능, 또는 구조 및 기능을 이용하여 실행되는 장치 또는 방법을 포괄하도록 의도된다. 본원에서 개시된 임의의 양태는 청구항의 하나 이상의 엘리먼트들에 의해 구현될 수도 있는 것으로 이해되어야 한다.
특정의 양태들이 본원에서 설명되지만, 이들 양태들의 많은 변형예들 및 치환들은 본 개시물의 범위 이내 이다. 바람직한 양태들의 일부 이익들 및 이점들이 언급되지만, 본 개시물의 범위는 특유의 이점들, 용도들, 또는 목적들에 한정되는 것으로 의도되지 않는다. 대신, 본 개시물의 양태들은 상이한 무선 기술들, 시스템 구성들, 네트워크들, 및 송신 프로토콜들에 넓게 적용가능한 것으로 의도되며, 이들 중 일부가 일 예로서 도면들에 그리고 바람직한 양태들의 다음 설명에 예시된다. 상세한 설명 및 도면들은 한정하기 보다는 단지 본 개시물의 예시이며, 본 개시물의 범위는 첨부된 청구범위 및 이의 균등물들에 의해 정의된다.
첨부 도면들은 예들을 예시한다. 첨부 도면들에서 참조 번호들로 표시된 엘리먼트들은 다음 설명에서 유사한 참조 번호들로 표시된 엘리먼트들에 대응한다. 본 개시물에서, 서수의 단어들 (예컨대, "제 1", "제 2", "제 3", 및 기타 등등) 로 시작하는 이름들을 갖는 엘리먼트들은 엘리먼트들이 특정의 순서를 갖는다는 것을 반드시 암시하지는 않는다. 대신, 이러한 서수의 단어들은 동일한 또는 유사한 유형의 상이한 엘리먼트들을 지칭하기 위해 단지 사용된다.
도 1a 는 본 개시물에서 설명된 양태들에 따른 기법들을 이용할 수도 있는 예시적인 비디오 코딩 시스템 (10) 을 예시하는 블록도이다. 설명되는 본원에서 사용될 때, 용어 "비디오 코더" 또는 "코더" 는 비디오 인코더들 및 비디오 디코더들 양쪽을 포괄적으로 지칭한다. 본 개시물에서, 용어들 "비디오 코딩" 또는 "코딩" 은 포괄적으로 비디오 인코딩 및 비디오 디코딩을 지칭할 수도 있다. 비디오 인코더들 및 비디오 디코더들에 더해서, 본 출원에서 설명된 양태들은 트랜스코더들 (예컨대, 비트스트림을 디코딩하고 다른 비트스트림을 재-인코딩할 수 있는 디바이스들) 및 미들박스들 (middleboxes) (예컨대, 비트스트림을 수정하고, 변환하고, 및/또는 아니면 조작할 수 있는 디바이스들) 과 같은, 다른 관련된 디바이스들로 확장될 수도 있다.
도 1a 에 나타낸 바와 같이, 비디오 코딩 시스템 (10) 은 목적지 디바이스 (14) 에 의해 추후 디코딩될 인코딩된 비디오 데이터를 발생하는 소스 디바이스 (12) 를 포함한다. 도 1a 의 예에서, 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 별개의 디바이스들을 구성한다. 그러나, 소스 디바이스 (12) 및 목적지 디바이스 (14) 가 도 1b 의 예에 나타낸 바와 같이 동일한 디바이스 상에 또는 부분 상에 있을 수도 있다는 점에 유의한다.
도 1a 를 다시 참조하면, 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 데스크탑 컴퓨터들, 노트북 (예컨대, 랩탑) 컴퓨터들, 태블릿 컴퓨터들, 셋-탑 박스들, 소위 "스마트" 폰들과 같은 전화기 핸드셋들, 소위 "스마트" 패드들, 텔레비전들, 카메라들, 디스플레이 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 콘솔들, 자동차용 컴퓨터들, 비디오 스트리밍 디바이스들, 안경류 및/또는 착용식 컴퓨터와 같은 엔터티에 의해 (에) 착용가능한 (또는, 착탈가능한) 디바이스들 (예컨대, 인간, 동물, 및/또는 다른 제어형 디바이스), 엔터티 내에서 소비되거나, 입수되거나 또는 배치될 수 있는 디바이스들 또는 장치, 및/또는 기타 등등을 포함한, 광범위한 디바이스들 중 임의의 디바이스를 각각 포함할 수도 있다. 여러 실시형태들에서, 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 무선 통신용으로 탑재될 수도 있다.
목적지 디바이스 (14) 는 링크 (16) 를 통해서, 디코딩될 인코딩된 비디오 데이터를 수신할 수도 있다. 링크 (16) 는 인코딩된 비디오 데이터를 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로 이동시킬 수 있는 임의 종류의 매체 또는 디바이스를 포함할 수도 있다. 도 1a 의 예에서, 링크 (16) 는 소스 디바이스 (12) 로 하여금 인코딩된 비디오 데이터를 목적지 디바이스 (14) 로 실시간으로 송신할 수 있게 하는 통신 매체를 포함할 수도 있다. 인코딩된 비디오 데이터는 무선 통신 프로토콜과 같은 통신 표준에 따라서 변조되어 목적지 디바이스 (14) 로 송신될 수도 있다. 통신 매체는 무선 주파수 (RF) 스펙트럼 또는 하나 이상의 물리적인 송신 라인들과 같은, 임의의 무선 또는 유선 통신 매체를 포함할 수도 있다. 통신 매체는 근거리 네트워크, 광역 네트워크, 또는 글로벌 네트워크, 예컨대 인터넷과 같은 패킷-기반 네트워크의 일부를 형성할 수도 있다. 통신 매체는 라우터들, 스위치들, 기지국들, 또는 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로 통신을 용이하게 하는데 유용할 수도 있는 임의의 다른 장비를 포함할 수도 있다.
도 1a 의 예에서, 소스 디바이스 (12) 는 비디오 소스 (18), 비디오 인코더 (20), 및 출력 인터페이스 (22) 를 포함한다. 일부의 경우, 출력 인터페이스 (22) 는 변조기/복조기 (모뎀) 및/또는 송신기를 포함할 수도 있다. 소스 디바이스 (12) 에서, 비디오 소스 (18) 는 비디오 캡쳐 디바이스, 예컨대, 비디오 카메라, 이전에 캡쳐된 비디오를 포함하는 비디오 아카이브, 비디오 콘텐츠 제공자로부터 비디오를 수신하는 비디오 공급 인터페이스, 및/또는 컴퓨터 그래픽스 데이터를 소스 비디오로서 발생하는 컴퓨터 그래픽스 시스템과 같은 소스, 또는 이런 소스들의 조합을 포함할 수도 있다. 일 예로서, 비디오 소스 (18) 가 비디오 카메라이면, 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 도 1b 의 예에 예시된 바와 같이, 소위 카메라 폰들 또는 비디오 폰들을 형성할 수도 있다. 그러나, 본 개시물에서 설명하는 기법들은 비디오 코딩에 일반적으로 적용가능할 수도 있으며, 무선 및/또는 유선 애플리케이션들에 적용될 수도 있다.
캡쳐되거나, 사전-캡쳐되거나, 또는 컴퓨터-발생된 비디오는 비디오 인코더 (20) 에 의해 인코딩될 수도 있다. 인코딩된 비디오 데이터는 소스 디바이스 (12) 의 출력 인터페이스 (22) 를 통해서 목적지 디바이스 (14) 에 송신될 수도 있다. 인코딩된 비디오 데이터는 또한 (또는, 대안적으로) 디코딩 및/또는 플레이백을 위해, 목적지 디바이스 (14) 또는 다른 디바이스들에 의한 추후 액세스를 위해, 저장 디바이스 (31) 상에 저장될 수도 있다. 도 1a 및 도 1b 에 예시된 비디오 인코더 (20) 는 도 2 에 예시된 비디오 인코더 (20), 또는 본원에서 설명되는 임의의 다른 비디오 인코더를 포함할 수도 있다.
도 1a 의 예에서, 목적지 디바이스 (14) 는 입력 인터페이스 (28), 비디오 디코더 (30), 및 디스플레이 디바이스 (32) 를 포함한다. 일부의 경우, 입력 인터페이스 (28) 는 수신기 및/또는 모뎀을 포함할 수도 있다. 목적지 디바이스 (14) 의 입력 인터페이스 (28) 는 링크 (16) 를 통해서 및/또는 저장 디바이스 (31) 로부터, 인코딩된 비디오 데이터를 수신할 수도 있다. 링크 (16) 를 통해서 통신되거나, 또는 저장 디바이스 (31) 상에 제공되는 인코딩된 비디오 데이터는, 비디오 데이터를 디코딩할 때에, 비디오 디코더 (30) 와 같은 비디오 디코더에 의해 사용하기 위한, 비디오 인코더 (20) 에 의해 발생되는 다양한 신택스 엘리먼트들을 포함할 수도 있다. 이런 신택스 엘리먼트들은 통신 매체 상으로 송신되거나, 저장 매체 상에 저장되거나, 또는 파일 서버에 저장된 인코딩된 비디오 데이터와 함께 포함될 수도 있다. 도 1a 및 도 1b 에 예시된 비디오 디코더 (30) 는 도 2b 에 예시된 비디오 디코더 (30), 또는 본원에서 설명되는 임의의 다른 비디오 디코더를 포함할 수도 있다.
디스플레이 디바이스 (32) 는 목적지 디바이스 (14) 와 통합되거나 이의 외부에 있을 수도 있다. 일부 예들에서, 목적지 디바이스 (14) 는 통합된 디스플레이 디바이스를 포함하며, 또한 외부 디스플레이 디바이스와 인터페이스하도록 구성될 수도 있다. 다른 예들에서, 목적지 디바이스 (14) 는 디스플레이 디바이스일 수도 있다. 일반적으로, 디스플레이 디바이스 (32) 는 그 디코딩된 비디오 데이터를 사용자에게 디스플레이하고, 액정 디스플레이 (LCD), 플라즈마 디스플레이, 유기 발광 다이오드 (OLED) 디스플레이, 또는 또 다른 유형의 디스플레이 디바이스와 같은 다양한 디스플레이 디바이스들 중 임의의 디바이스를 포함할 수도 있다.
관련된 양태들에서, 도 1b 는 예시적인 비디오 코딩 시스템 (10') 을 나타내며, 여기서 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 디바이스 (11) 상에 또는 부분에 있다. 디바이스 (11) 는 "스마트" 폰 또는 기타 등등과 같은, 전화기 핸드셋일 수도 있다. 디바이스 (11) 는 소스 디바이스 (12) 및 목적지 디바이스 (14) 와 통신가능하게 동작하는 프로세서/제어기 디바이스 (13) (옵션적으로 존재함) 을 포함할 수도 있다. 도 1b 의 비디오 코딩 시스템 (10'), 및 그의 구성요소들은, 그 밖의 점에서는, 도 1a 의 비디오 코딩 시스템 (10), 및 그의 구성요소들과 유사하다.
비디오 인코더 (20) 및 비디오 디코더 (30) 는 DSC 와 같은, 비디오 압축 표준에 따라서 동작할 수도 있다. 이의 대안으로, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 다른 독점 또는 산업 표준들, 예컨대, 대안적으로 MPEG4 로서 지칭되는, ITU-T H.264 표준, 파트 10, AVC, HEVC 또는 이런 표준들의 확장판들에 따라서 동작할 수도 있다. 본 개시물의 기법들은, 그러나, 임의의 특정의 코딩 표준에 한정되지 않는다. 비디오 압축 표준들의 다른 예들은 MPEG-2 및 ITU-T H.263 을 포함한다.
도 1a 및 도 1b 의 예에 나타내지는 않지만, 일부 양태들에서, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 오디오 인코더 및 디코더와 각각 통합될 수도 있으며, 오디오 및 비디오 양쪽의 인코딩을 공통 데이터 스트림 또는 별개의 데이터 스트림들로 처리하기에 적합한 MUX-DEMUX 유닛들, 또는 다른 하드웨어 및 소프트웨어를 포함할 수도 있다. 적용가능한 경우, 일부 예들에서, MUX-DEMUX 유닛들은 ITU H.223 멀티플렉서 프로토콜, 또는 다른 프로토콜들, 예컨대, 사용자 데이터그램 프로토콜 (UDP) 을 따를 수도 있다.
비디오 인코더 (20) 및 비디오 디코더 (30) 각각은 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서들 (DSP들), 주문형 집적회로들 (ASIC들), 필드 프로그래밍가능 게이트 어레이들 (FPGA들), 이산 로직, 소프트웨어, 하드웨어, 펌웨어 또는 임의의 이들의 조합들과 같은, 다양한 적합한 인코더 회로 중 임의의 회로로 구현될 수도 있다. 이 기법들이 소프트웨어로 부분적으로 구현되는 경우, 디바이스는 본 개시물의 기법들을 수행하기 위해 소프트웨어용 명령들을 적합한 비일시성 컴퓨터-판독가능 매체에 저장하고, 그 명령들을 하드웨어에서 하나 이상의 프로세서들을 이용하여 실행할 수도 있다. 비디오 인코더 (20) 및 비디오 디코더 (30) 각각은 하나 이상의 인코더들 또는 디코더들에 포함될 수도 있으며, 이들 중 어느 쪽이든 각각 디바이스에서 결합된 인코더/디코더의 일부로서 통합될 수도 있다.
비디오 코딩 프로세스
위에서 간단히 언급한 바와 같이, 비디오 인코더 (20) 는 비디오 데이터를 인코딩한다. 비디오 데이터는 하나 이상의 픽처들을 포함할 수도 있다. 픽처들의 각각은 비디오의 일부를 형성하는 정지 화상이다. 일부의 경우, 픽처는 비디오 "프레임" 으로서 지칭될 수도 있다. 비디오 인코더 (20) 가 비디오 데이터를 인코딩할 때, 비디오 인코더 (20) 는 비트스트림을 생성할 수도 있다. 비트스트림은 비디오 데이터의 코딩된 표현을 형성하는 비트들의 시퀀스를 포함할 수도 있다. 비트스트림은 코딩된 픽처들 및 연관된 데이터를 포함할 수도 있다. 코딩된 픽처는 픽처의 코딩된 표현이다.
비트스트림을 생성하기 위해, 비디오 인코더 (20) 는 비디오 데이터에서 각각의 픽처에 대해 인코딩 동작들을 수행할 수도 있다. 비디오 인코더 (20) 가 픽처들에 대해 인코딩 동작들을 수행할 때, 비디오 인코더 (20) 는 코딩된 픽처들 및 연관되는 데이터의 시리즈를 발생할 수도 있다. 연관되는 데이터는 양자화 파라미터 (QP) 와 같은 코딩 파라미터들의 세트를 포함할 수도 있다. 코딩된 픽처를 생성하기 위해, 비디오 인코더 (20) 는 픽처를 동일-사이즈로된 비디오 블록들로 파티셔닝할 수도 있다. 비디오 블록은 샘플들의 2차원 어레이일 수도 있다. 코딩 파라미터들은 모든 비디오 데이터의 블록에 대한 코딩 옵션 (예컨대, 코딩 모드) 을 정의할 수도 있다. 코딩 옵션은 원하는 레이트-왜곡 성능을 달성하기 위해 선택될 수도 있다.
일부 예들에서, 비디오 인코더 (20) 는 픽처를 복수의 슬라이스들로 파티셔닝할 수도 있다. 슬라이스들의 각각은 이미지 또는 프레임에서의 영역들의 나머지로부터의 정보 없이 독립적으로 디코딩될 수 있는 이미지 (예컨대, 프레임) 에서의 공간적으로 별개의 영역을 포함할 수도 있다. 각각의 이미지 또는 비디오 프레임은 단일 슬라이스로 인코딩될 수도 있거나 또는 각각의 이미지 또는 비디오 프레임은 여러 슬라이스들로 인코딩될 수도 있다. DSC 에서, 각각의 슬라이스를 인코딩하는데 할당된 목표 비트들은 실질적으로 일정할 수도 있다. 픽처에 대해 인코딩 동작을 수행하는 일부분으로서, 비디오 인코더 (20) 는 그 픽처의 각각의 슬라이스에 대해 인코딩 동작들을 수행할 수도 있다. 비디오 인코더 (20) 가 슬라이스에 대해 인코딩 동작을 수행할 때, 비디오 인코더 (20) 는 그 슬라이스와 연관되는 인코딩된 데이터를 발생할 수도 있다. 슬라이스와 연관되는 인코딩된 데이터는 "코딩된 슬라이스" 로서 지칭될 수도 있다.
DSC 비디오 인코더
도 2a 는 본 개시물에서 설명하는 양태들에 따른 기법들을 구현할 수도 있는 예시적인 비디오 인코더 (20) 의 예를 예시하는 블록도이다. 비디오 인코더 (20) 는 본 개시물의 기법들 중 일부 또는 모두를 수행하도록 구성될 수도 있다. 일부 예들에서, 본 개시물에서 설명하는 기법들은 비디오 인코더 (20) 의 여러 구성요소들 사이에 공유될 수도 있다. 일부 예들에서, 추가적으로 또는 대안적으로, 프로세서 (미도시) 는 본 개시물에서 설명되는 기법들 중 일부 또는 모두를 수행하도록 구성될 수도 있다.
설명의 목적을 위해, 본 개시물은 DSC 코딩의 상황에서 비디오 인코더 (20) 를 기술한다. 그러나, 본 개시물의 기법들은 다른 코딩 표준들 또는 방법들에 적용가능할 수도 있다.
도 2a 의 예에서, 비디오 인코더 (20) 는 복수의 기능적 구성요소들을 포함한다. 비디오 인코더 (20) 의 기능적 구성요소들은 칼라-공간 변환기 (105), 버퍼 (110), 편평도 검출기 (115), 레이트 제어기 (120), 예측기, 양자화기, 및 복원기 구성요소 (125), 라인 버퍼 (130), 인덱스된 칼라 이력 (135), 엔트로피 인코더 (140), 서브스트림 멀티플렉서 (145), 및 레이트 버퍼 (150) 를 포함한다. 다른 예들에서, 비디오 인코더 (20) 는 더 많거나, 더 적거나, 또는 상이한 기능적 구성요소들을 포함할 수도 있다.
칼라-공간 (105) 변환기는 입력 칼라-공간을 코딩 구현에서 사용되는 칼라-공간으로 변환할 수도 있다. 예를 들어, 예시적인 일 실시형태에서, 입력 비디오 데이터의 칼라-공간은 적색, 녹색, 및 청색 (RGB) 칼라-공간에 있으며 코딩은 휘도 Y, 색차 녹색 Cg, 및 색차 주황색 Co (YCgCo) 칼라-공간에서 구현된다. 칼라-공간 변환은 비디오 데이터에의 시프트들 및 추가들을 포함한 방법(들) 에 의해 수행될 수도 있다. 다른 칼라-공간들에서의 입력 비디오 데이터가 프로세싱될 수도 있으며 다른 칼라-공간들로의 변환들이 또한 수행될 수도 있다는 점에 유의한다.
관련된 양태들에서, 비디오 인코더 (20) 는 버퍼 (110), 라인 버퍼 (130), 및/또는 레이트 버퍼 (150) 를 포함할 수도 있다. 예를 들어, 버퍼 (110) 는 비디오 인코더 (20) 의 다른 부분들에 의한 그의 사용 전에 칼라-공간 변환된 비디오 데이터를 보유할 수도 있다. 다른 예에서, 비디오 데이터는 RGB 칼라-공간에서 저장될 수도 있으며, 칼라-공간 변환된 데이터가 더 많은 비트들을 필요로 할 수도 있기 때문에 필요에 따라서 칼라-공간 변환이 수행될 수도 있다.
레이트 버퍼 (150) 는 비디오 인코더 (20) 에서 레이트 제어 메커니즘의 부분으로서 기능할 수도 있으며, 레이트 제어기 (120) 와 관련하여 아래에서 더욱더 자세히 설명된다. 각각의 블록에서 인코딩하는데 소비된 비트들은 블록의 성질에 기초하여 실질적으로 크게 변할 수 있다. 레이트 버퍼 (150) 는 압축된 비디오에서의 레이트 변동들을 평활화할 수 있다. 일부 실시형태들에서, 비트들이 버퍼로부터 고정 비트 레이트로 취해지는 고정 비트 레이트 (CBR) 버퍼 모델이 채용된다. CBR 버퍼 모델에서, 비디오 인코더 (20) 가 너무 많은 비트들을 비트스트림에 추가하면, 레이트 버퍼 (150) 는 오버플로우할 수도 있다. 다른 한편, 비디오 인코더 (20) 는 레이트 버퍼 (150) 의 언더플로우를 방지하기 위해 충분한 비트들을 추가해야 한다.
비디오 디코더 측에서, 비트들이 비디오 디코더 (30) 의 레이트 버퍼 (155) (아래에서 좀더 상세히 설명되는 도 2b 참조) 에 고정 비트 레이트로 추가될 수도 있으며, 비디오 디코더 (30) 가 각각의 블록에 대하여 가변 수의 비트들을 제거할 수도 있다. 적합한 디코딩을 보장하기 위해, 비디오 디코더 (30) 의 레이트 버퍼 (155) 는 압축된 비트 스트림의 디코딩 동안 "언더플로우" 또는 "오버플로우" 하지 않아야 한다.
일부 실시형태들에서, 버퍼 충만도 (BF) 는 현재 버퍼에서의 비트수를 나타내는 값들 BufferCurrentSize 및 레이트 버퍼 (150) 의 사이즈, 즉, 임의의 시점에 레이트 버퍼 (150) 에 저장될 수 있는 비트들의 최대 개수를 나타내는 BufferMaxSize 에 기초하여 정의될 수 있다. BF 는 다음과 같이 계산될 수도 있다:
BF = ((BufferCurrentSize * 100) / BufferMaxSize)
편평도 검출기 (115) 는 비디오 데이터에서의 복잡한 (즉, 편평하지 않은) 영역들로부터 비디오 데이터에서의 편평한 (즉, 간단한 또는 균일한) 영역들으로의 변화들을 검출할 수 있다. 용어들 "복잡한" 및 "편평한" 은 본원에서 일반적으로 비디오 인코더 (20) 가 비디오 데이터의 개개의 영역들을 인코딩하는데 있어서의 어려움을 지칭하기 위해 사용될 것이다. 따라서, 본원에서 사용될 때, 용어 "복잡한" 은, 일반적으로 비디오 인코더 (20) 가 인코딩하기에 복잡한 것과 같은 비디오 데이터의 영역을 기술하며, 예를 들어, 텍스쳐된 비디오 데이터, 높은 공간 주파수, 및/또는 인코딩하기에 복잡한 다른 피쳐들을 포함할 수도 있다. 본원에서 사용될 때 용어 "편평한" 은, 일반적으로 비디오 인코더 (20) 가 인코딩하기에 간단한 것과 같은 비디오 데이터의 영역을 기술하며, 예를 들어, 비디오 데이터에서의 평활한 입도 (smooth gradient), 낮은 공간 주파수, 및/또는 인코딩하기에 간단한 다른 피쳐들을 포함할 수도 있다. 인코딩된 비디오 데이터에서의 양자화 아티팩트들을 감소시키기 위해 복잡한 영역과 편평한 영역 사이의 천이들이 비디오 인코더 (20) 에 의해 사용될 수도 있다. 구체적으로 설명하면, 레이트 제어기 (120) 및 예측기, 양자화기, 및 복원기 구성요소 (125) 는 복잡한 영역으로부터 편평한 영역으로의 천이들이 식별될 때 이러한 양자화 아티팩트들을 감소시킬 수 있다.
레이트 제어기 (120) 는 코딩 파라미터들의 세트, 예컨대, QP 를 결정한다. QP 는 레이트 버퍼 (150) 가 오버플로우 또는 언더플로우하지 않도록 보장하는 목표 비트레이트에 대한 픽처 품질을 최대화하기 위해 레이트 버퍼 (150) 의 버퍼 충만도 및 비디오 데이터의 이미지 활동도 (image activity) 에 기초하여 레이트 제어기 (120) 에 의해 조정될 수도 있다. 레이트 제어기 (120) 는 또한 최적의 레이트-왜곡 성능을 달성하기 위해 비디오 데이터의 각각의 블록에 대한 특정의 코딩 옵션 (예컨대, 특정의 모드) 을 선택한다. 레이트 제어기 (120) 는 레이트 제어기가 비트-레이트 제약을 만족하도록, 즉, 전체 실제 코딩 레이트가 목표 비트 레이트 내에 들어 맞도록, 복원된 이미지들의 왜곡을 최소화한다.
예측기, 양자화기, 및 복원기 구성요소 (125) 는 비디오 인코더 (20) 의 적어도 3개의 인코딩 동작들을 수행할 수도 있다. 예측기, 양자화기, 및 복원기 구성요소 (125) 는 다수의 상이한 모드들에서 예측을 수행할 수도 있다. 하나의 예시적인 예측 모드는 중간값-적응 예측의 수정된 버전이다. 중간값-적응 예측은 무손실 JPEG 표준 (JPEG-LS) 에 의해 구현될 수도 있다. 예측기, 양자화기, 및 복원기 구성요소 (125) 에 의해 수행될 수도 있는 중간값-적응 예측의 수정 버전은 3개의 연속된 샘플 값들의 병렬 예측을 가능하게 할 수도 있다. 다른 예시적인 예측 모드는 블록 예측이다. 블록 예측에서, 샘플들은 라인 상부에 있거나 또는 동일한 라인에서 좌측에 있는 이전에 복원된 픽셀들로부터 예측된다. 일부 실시형태들에서, 비디오 인코더 (20) 및 비디오 디코더 (30) 가 양쪽 다 복원된 픽셀들에 대해 동일한 탐색을 수행하여 블록 예측 사용량들을 결정할 수도 있으며, 따라서, 블록 예측 모드에서 어떤 비트들도 송신될 필요가 없다. 다른 실시형태들에서, 비디오 인코더 (20) 는 비디오 디코더 (30) 가 별개의 탐색을 수행할 필요가 없도록, 탐색을 수행하여 블록 예측 벡터들을 비트스트림으로 시그널링할 수도 있다. 구성요소 범위의 중간점을 이용하여 샘플들이 예측되는 중간점 예측 모드가 또한 구현될 수도 있다. 중간점 예측 모드는 심지어 최악의 경우 샘플 (worst-case sample) 에서 압축된 비디오에 대해 요구되는 비트들의 수의 바운딩 (bounding) 을 가능하게 할 수도 있다. 도 3 내지 도 6 을 참조하여 아래서 추가로 설명되는 바와 같이, 예측기, 양자화기, 및 복원기 구성요소 (125) 는 도 3 내지 도 6 에 예시된 방법들을 수행함으로써 비디오 데이터의 블록 (또는, 예측의 임의의 다른 유닛) 을 예측하도록 (예컨대, 인코딩하거나 또는 디코딩하도록) 구성될 수도 있다.
예측기, 양자화기, 및 복원기 구성요소 (125) 는 또한 양자화를 수행한다. 예를 들어, 양자화는 시프터를 이용하여 구현될 수도 있는 2 제곱 (power-of-2) 양자화기를 통해서 수행될 수도 있다. 2 제곱 양자화기 대신 다른 양자화 기법들이 구현될 수도 있다는 점에 유의한다. 예측기, 양자화기, 및 복원기 구성요소 (125) 에 의해 수행되는 양자화는 레이트 제어기 (120) 에 의해 결정된 QP 에 기초할 수도 있다. 마지막으로, 예측기, 양자화기, 및 복원기 구성요소 (125) 는 또한 역 양자화된 잔차를 예측된 값에 가산하고 그 결과가 샘플 값들의 유효한 범위로부터 벗어나지 않도록 보장하는 것을 포함하는 복원을 수행한다.
예측기, 양자화기, 및 복원기 구성요소 (125) 에 의해 수행되는 예측, 양자화, 및 복원에 대한 위에서 설명한 예시적인 접근법들은 단지 예시적이며 다른 접근법들이 구현될 수도 있다는 점에 유의한다. 또한, 예측기, 양자화기, 및 복원기 구성요소 (125) 가 예측, 양자화, 및/또는 복원을 수행하는 하위 구성요소(들) 을 포함할 수도 있다는 점에 유의한다. 또한, 예측, 양자화, 및/또는 복원이 예측기, 양자화기, 및 복원기 구성요소 (125) 대신, 여러 별개의 인코더 구성요소들에 의해 수행될 수도 있다는 점에 유의한다.
라인 버퍼 (130) 는 예측기, 양자화기, 및 복원기 구성요소 (125) 및 인덱스된 칼라 이력 (135) 이 버퍼된 비디오 데이터를 이용할 수 있도록 예측기, 양자화기, 및 복원기 구성요소 (125) 로부터의 출력을 유지한다. 인덱스된 칼라 이력 (135) 은 최근에 사용된 픽셀 값들을 저장한다. 최근에 사용된 이들 픽셀 값들은 전용 신택스를 통해서 비디오 인코더 (20) 에 의해 직접 참조될 수 있다.
엔트로피 인코더 (140) 는 인덱스된 칼라 이력 (135) 및 편평도 검출기 (115) 에 의해 식별된 편평도 천이들에 기초하여, 예측기, 양자화기, 및 복원기 구성요소 (125) 로부터 수신된 예측 잔차들 및 임의의 다른 데이터 (예컨대, 예측기, 양자화기, 및 복원기 구성요소 (125) 에 의해 식별된 인덱스들) 를 인코딩한다. 일부 예들에서, 엔트로피 인코더 (140) 는 서브스트림 인코더에 대한 클록 당 3개의 샘플들을 인코딩할 수도 있다. 서브스트림 멀티플렉서 (145) 는 무헤더 (headerless) 패킷 멀티플렉싱 방식에 기초하여 비트스트림을 멀티플렉싱할 수도 있다. 이것은 비디오 디코더 (30) 로 하여금 3개의 엔트로피 디코더들을 병렬로 실행가능하게 하여, 클록 당 3개의 픽셀들의 디코딩을 용이하게 한다. 서브스트림 멀티플렉서 (145) 는 패킷들이 비디오 디코더 (30) 에 의해 효율적으로 디코딩될 수 있도록 패킷 순서를 최적화할 수도 있다. 클록 당 2 제곱 픽셀들 (예컨대, 2 픽셀들/클록 또는 4 픽셀들/클록) 의 디코딩을 용이하게 하는, 엔트로피 코딩에 대한 상이한 접근법들이 구현될 수도 있다는 점에 유의한다.
DSC 비디오 디코더
도 2b 는 본 개시물에서 설명하는 양태들에 따른 기법들을 구현할 수도 있는 예시적인 비디오 디코더 (30) 의 예를 예시하는 블록도이다. 비디오 디코더 (30) 는 본 개시물의 기법들 중 일부 또는 모두를 수행하도록 구성될 수도 있다. 일부 예들에서, 본 개시물에서 설명하는 기법들은 비디오 디코더 (30) 의 여러 구성요소들 사이에 공유될 수도 있다. 일부 예들에서, 추가적으로 또는 대안적으로, 프로세서 (미도시) 는 본 개시물에서 설명되는 기법들 중 일부 또는 모두를 수행하도록 구성될 수도 있다.
설명의 목적을 위해, 본 개시물은 DSC 코딩의 상황에서 비디오 디코더 (30) 를 기술한다. 그러나, 본 개시물의 기법들은 다른 코딩 표준들 또는 방법들에도 적용가능할 수도 있다.
도 2b 의 예에서, 비디오 디코더 (30) 는 복수의 기능적 구성요소들을 포함한다. 비디오 디코더 (30) 의 기능적 구성요소들은 레이트 버퍼 (155), 서브스트림 디멀티플렉서 (160), 엔트로피 디코더 (165), 레이트 제어기 (170), 예측기, 양자화기, 및 복원기 구성요소 (175), 인덱스된 칼라 이력 (180), 라인 버퍼 (185), 및 칼라-공간 변환기 (190) 를 포함한다. 비디오 디코더 (30) 의 예시된 구성요소들은 도 2a 에서의 비디오 인코더 (20) 와 관련하여 위에서 설명된 대응하는 구성요소들과 유사하다. 이와 같이, 비디오 디코더 (30) 의 구성요소들의 각각은 위에서 설명한 바와 같은 비디오 인코더 (20) 의 대응하는 구성요소들과 유사한 방식으로 동작할 수도 있다.
DSC 에서의 슬라이스들
위에서 언급한 바와 같이, 슬라이스는 일반적으로 이미지 또는 프레임에서의 영역들의 나머지로부터의 정보를 이용함이 없이 독립적으로 디코딩될 수 있는 이미지 또는 프레임에서의 공간적으로 별개의 영역을 지칭한다. 각각의 이미지 또는 비디오 프레임은 단일 슬라이스로 인코딩될 수도 있거나 또는 각각의 이미지 또는 비디오 프레임은 여러 슬라이스들로 인코딩될 수도 있다. DSC 에서, 각각의 슬라이스를 인코딩하는데 할당된 목표 비트들은 실질적으로 일정할 수도 있다.
양자화 파라미터 (QP)
위에서 설명된 바와 같이, 비디오 코딩은 예를 들어, 예측기, 양자화기, 및 복원기 구성요소 (125) 를 통한 비디오 데이터의 양자화를 포함할 수도 있다. 양자화는 신호에 손실을 도입할 수도 있으며 손실의 양은 레이트 제어기 (120) 에 의해 결정된 QP 에 의해 제어될 수 있다. 각각의 QP 에 대한 양자화 단계 사이즈를 저장하기 보다는, 스케일링 매트릭스는 QP 의 함수로서 규정될 수도 있다. 각각의 QP 에 대한 양자화 단계 사이즈는 스케일링 매트릭스로부터 유도될 수도 있으며, 유도된 값은 반드시 2 제곱일 필요가 없다, 즉, 유도된 값은 또한 2 제곱이 아닐 수 있다.
스킵 모드
주어진 블록에서의 단일 칼라 좌표의 모든 값들이 제로일 때, 블록의 칼라 좌표 값은 스킵 모드를 이용하여 효과적으로 코딩될 수 있다. 스킵 모드 코딩의 어떤 구현예들에서, 1-비트 플래그 또는 스킵 값이 현재의 블록의 칼라 성분의 값들이 스킵 모드를 이용하여 코딩되는지 (현재의 블록의 칼라 성분의 모든 값들이 제로인 경우) 또는 스킵 모드에서 코딩되지 않는지 (현재의 블록의 칼라 성분의 값들 중 적어도 하나가 비-제로인 경우) 여부를 표시하기 위해 디코더로 시그널링될 수도 있다. 스킵 모드에서, 현재의 블록의 칼라 성분의 값들의 모두가 제로일 때, 1-비트 플래그가 디코더로 시그널링될 수도 있으며, 코더는 블록의 칼라 성분의 값들을 코딩하는 것을 억제할 수도 있다 (즉, 블록의 칼라 성분의 값들의 코딩이 스킵될 수도 있다). 스킵 모드는 또한 블록보다 더 작은 사이즈를 가지는 칼라 성분의 값들의 그룹에, 또는 다수의 블록들의 그룹에 적용될 수도 있다. 스킵 모드는 또한 블록의 각각의 칼라 성분에 대해 별개로 적용될 수도 있으며, 예를 들어, 현재의 블록의 칼라 성분의 값들의 모두가 제로일 때, 스킵 모드는 현재의 블록의 칼라 성분의 값들에 적용될 수도 있다. 일부 구현예들에서, 스킵 모드는 그룹 또는 블록의 칼라 성분들의 모두에 적용될 수도 있다. 아래에서 좀더 자세히 설명하는 바와 같이, 스킵 모드는 또한 블록보다 더 작은 유닛들에 적용될 수도 있다.
DSC v1.0 에서의 엔트로피 코딩
위에서 설명한 바와 같이, DSC v1.0 에서, DSU-VLC 가 제안되었다. DSU-VLC 에서, 각각의 유닛 (하나의 그룹의 칼라 성분의 샘플들을 포함하는 유닛, 여기서 각각의 그룹은 3 개의 픽셀들을 갖는다) 의 잔차 값들은 접두부 및 접미부 부분들을 이용하여 코딩된다. 접두부 부분은 접미부 부분에 뒤따르는 잔차 값들의 사이즈 (예를 들어, 비트수) 를 표시하며, 접미부 부분은 그 유닛에서의 3개의 샘플들의 실제 잔차 값들을 표시한다. 그룹에서의 모든 3개의 잔차 값들은 접두부 부분에 의해 표시된 것과 동일한 개수의 비트들을 이용하여 2의 보수 (complement) 로 코딩된다.
접두부 부분에 대해, 현재의 유닛의 잔차 값들의 실제 사이즈를 코딩하는 대신, 접두부 값들은 예측 코딩되며, 여기서, 현재의 유닛의 잔차 값들의 사이즈는 동일한 구성요소의 이전 유닛의 잔차 값들의 사이즈에 기초하여, 그리고 또한 현재의 유닛과 이전 유닛 사이의 양자화 파라미터들에서의 변화들을 고려함으로써, 예측된다. 예를 들어, 값들 requiredSize[0], requiredSize[1] 및 requiredSize[2] 이 각각 이전 그룹의 양자화된 잔차 값들의 요구된 사이즈들을 표시한다고 하자. 이로부터, 예측된 사이즈는 다음과 같이 계산될 수 있다:
Figure pct00001
현재의 유닛과 이전 유닛 사이의 양자화 파라미터에서의 차이를 고려함으로써, 예측된 사이즈는 다음과 같이 조정될 수 있다:
Figure pct00002
여기서, 값 maxSize 는 현재의 칼라 좌표의 최대 가능한 잔차 값이고, CLAMP 함수는 다음과 같이 정의된다:
Figure pct00003
마지막으로, 현재의 유닛의 잔차들의 사이즈와 예측된 사이즈 사이의 음이 아닌 (non-negative) 차이가 1진 코딩될 수 있다. 음의 차이는 제로 값, 예를 들어, 잔차들의 사이즈에서 어떤 변화도 없음을 코딩함으로써 표시된다.
이 상황에서, Huffman, 산술, 지수-Golomb, Rice 코드들, 등과 같은, 기존 엔트로피 코딩 기법들은 어떤 애플리케이션들, 예컨대, 높은 해상도 디스플레이들 및 패널들에 대해 너무 낮을 수도 있는, 1 샘플/클록의 제한된 처리량을 갖는다. 즉, 종래의 하드웨어를 이용한, 높은 해상도 디스플레이들 및 패널들, 예를 들어, 4K 디스플레이들에 대한, 비디오 데이터의 시각적 무손실 엔트로피 코딩은 경제적으로 실현가능하지 않을 수도 있다.
DSC 에 대한 기존 접근법들에 대한 위에서 설명한 이슈들을 극복하기 위해, 본 개시물은 아래에서 향상들을 설명한다. 본 개시물에서, 다음 설명된 기법들 및 접근법들이 단독으로 또는 서로와의 임의의 조합으로 사용될 수도 있다.
본 개시물의 하나 이상의 양태들에 따르면, 본원에서 설명되는 것은 더 높은 처리량 (예를 들어, 4 샘플들/클록) 을 제공하는 엔트로피 코딩 기법이다. 그러나, 다른 처리량 값들도 또한 특정의 구현예에 기초하여 달성될 수도 있다.
본 개시물의 엔트로피 코딩 기법의 특징들은, DSC v1.0 에서 구현된 DSU-VLC 에 비교하여, 다음을 포함할 수도 있지만 이에 한정되지 않는다.
양자화된 블록 잔차들의 코딩: 스킵 및 DSU-VLC 코딩의 원리들은 각각의 그룹이 적어도 하나의 비-제로 값을 가지는 경우에만 각각의 그룹이 DSU-VLC 코딩되는 방식으로 결합될 수도 있다.
변환 계수들의 코딩: 각각의 블록의 양자화된 변환 계수들 (예를 들어, 이산 코사인 변환 (DCT)) 은 양자화된 변환 계수들로부터 그룹들을 먼저 구성하고 그후 각각의 그룹을 DSU-VLC 의 유사한 원리들을 이용하여 코딩함으로써 코딩될 수도 있다. 또, 스킵 및 DSU-VLC 코딩이 각각의 그룹의 양자화된 변환 계수들을 코딩하기 위해 결합될 수도 있다.
접두부 예측: 현재의 그룹의 사이즈는 예를 들어, 이전 그룹의 최대 요구된 사이즈에만 기초하여 예측될 수도 있다. 또, 사이즈들을 예측하는 동안, 엔트로피 코딩 기법은 QP 의 영향을, 특히 양자화 단계 사이즈가 2 제곱이 아닐 때, 모니터링하거나, 고려하거나, 및/또는 감안할 수도 있다.
접두부 코딩: 현재의 사이즈 및 예측된 사이즈의 음의 차이 및 양의 차이 양쪽이 코딩될 수도 있다.
상기 양태들에 관한 추가적인 세부 사항들이 아래에 제공된다. 본원에서 설명되는 엔트로피 코딩 기법이 예를 들어, 블록에서의 각각의 칼라 성분을 코딩하기 위해 독립적으로 적용될 수도 있다는 점에 유의한다.
양자화된 블록 잔차들의 코딩
도 3 은 본 개시물에서 설명된 양태들에 따른, 예측 코딩 모드, 예를 들어, 블록 예측 모드 또는 차분 펄스-코드 변조 (DPCM) 모드에 대한 블록을 파티셔닝하는 방법을 예시하는 다이어그램이다. 도 3 의 예에서, 블록은 16개의 샘플들 (201 내지 231) 을 포함하며, 여기서, 각각의 샘플은 예를 들어, 양자화된 잔차이다. 일 구현예에서, 블록에서의 양자화된 잔차들 (201 내지 231) 의 각각의 성분은 예를 들어, 하기 단계들에 따라서 엔트로피 코딩될 수도 있다. 도 3 에 예시된 다이어그램은 또한 예측 코딩 모드에 대한 복수의 파티셔닝된 그룹들에 기초하여 블록을 복원하는 것에 적용할 수도 있다.
블록에서의 샘플들 (201 내지 231) 은 도 3 의 예에서 예시된 바와 같이 4 개의 그룹들로 파티셔닝될 수도 있다. 그러나, 블록은 임의의 개수의 그룹들로 파티셔닝될 수 있는 임의의 개수의 샘플들을 가질 수도 있다. 또, 본 개시물에서 설명되는 엔트로피 코딩 기법들의 처리량은 블록에서의 그룹들의 개수에 관련될 수도 있다. 구현예에 따라서, 샘플들 (201 내지 231) 은 예를 들어, 1D 예측 잔차들, 및/또는 블록-예측 잔차들, 및/또는 인트라-예측 잔차들, 및/또는 2D 중간값 적응 예측된 잔차들일 수도 있다. 그러나, 실시형태에 따라서, 샘플들은 임의의 다른 유형의 잔차를 나타낼 수 있다.
균일한 그룹핑 전략이 도 3 의 예에 예시되지만, 추가적인 관련된 양태들에서, 불균일한 그룹핑 전략이 구성될 수도 있으며, 여기서 각각의 그룹에서의 샘플들의 개수들은 동일하지 않다.
다음의 설명에서, 샘플들의 그룹들은 중괄호들로 둘러싸진 것으로 예시된다. 도 3 에 예시된 예에서, 그룹들 1, 2, 3, 및 4 는 샘플들 {201 내지 207}, {209 내지 215}, {217 내지 223}, 및 {225 내지 231} 로 각각 구성된다. 다른 예 (미예시) 에서, 그룹들 1, 2, 3, 및 4 는 샘플들 {201 내지 203}, {205 내지 209}, {211 내지 219}, 및 {221 내지 231} 로 각각 구성된다. 또 다른 예 (미예시) 에서, 그룹들 1, 2, 3, 및 4 는 샘플들 {201}, {203 내지 207}, {209 내지 217}, 및 {219 내지 231} 로 각각 구성된다. 또 다른 예 (미예시) 에서, 그룹들 1, 2, 3, 및 4 는 샘플들 {201}, {203 및 205}, {207 내지 217}, 및 {219 내지 231} 로 각각 구성된다. 또 다른 예 (미예시) 에서, 그룹들 1, 2, 3, 및 4 는 샘플들 {201}, {203 내지 209}, {211 내지 219}, 및 {221 내지 231} 로 각각 구성된다. 그러나, 위에 리스트된 샘플들의 그룹핑들은 단지 예들이며, 복수의 그룹들로의 블록의 파티셔닝의 다른 방법들이 수행될 수 있다.
상기 설명은 블록을 파티셔닝할 때에 사용될 수도 있는 다수의 그룹핑 기법들을 예시하여 설명하였지만, 역방향 기법들이 블록을 구성할 때에 적용될 수도 있다. 예를 들어, 블록이 도 3 에 나타낸 바와 같이 4개의 샘플들의 그룹들로 파티셔닝될 때, 블록은 샘플들 (201 내지 231) 을 포함하도록 복원될 수 있다. 이것은 또한 각각의 그룹에서 동일한 개수의 샘플들을 갖지 않는 위에서 설명한 다른 그룹핑 전략들에 적용된다.
블록에서의 특정의 칼라 좌표와 연관된 모든 샘플들이 제로의 값을 가질 때, 블록의 칼라 좌표와 연관된 그들 샘플들은 스킵 모드를 이용하여 코딩될 수도 있으며, 예컨대, 블록에서의 현재의 칼라 좌표가 스킵 모드를 이용하여 인코딩되는지 여부를 표시하기 위해 블록 당 (칼라 좌표 당) 1-비트 플래그가 시그널링될 수도 있다. 따라서, 1-비트 플래그가 블록의 대응하는 칼라 좌표가 스킵 모드를 이용하여 코딩되는지 여부를 표시하기 위해 블록의 각각의 칼라 좌표에 대해 시그널링될 수도 있다. 다른 구현예들에서, 단일 1-비트 플래그가 블록에서의 칼라 좌표들의 모두에 대해 시그널링될 수도 있다. 본 개시물에서, 스킵 모드를 통한 블록에서의 현재의 칼라 좌표의 인코딩은 블록-방식 스킵 모드로서 지칭된다.
예를 들어, 블록-방식 스킵 모드는 모든 3개의 칼라 좌표들에 적용되지 않을 수도 있다. 일 구현예에서, 블록-방식 스킵 모드가 루마 칼라 좌표들에 대해서가 아닌, 크로마 칼라 좌표들에 적용된다.
일부 구현예들에서, 적어도 하나의 비-제로 값이 블록에서의 하나의 칼라 좌표 내에 포함될 때, 엔트로피 코딩 기법은 각각의 그룹을, 단지 그 그룹이 하나의 비-제로 값을 가질 경우에만, DSU-VLC 를 이용하여 코딩하는 것을 수반할 수도 있다. 예를 들어, 1-비트 플래그 또는 그룹과 연관된 그룹 스킵 값이 그룹이 스킵 모드를 이용하여 인코딩되는지 여부를 표시하기 위해 시그널링될 수도 있다. 본 개시물에서, 스킵 모드를 통한 각각의 그룹의 인코딩은 그룹-방식 스킵 모드로서 지칭된다. 이와 유사하게, 1 비트 플래그 또는 그룹 스킵 값의 디코딩은 또한 그룹-방식 스킵 모드로서 지칭될 수도 있다.
일부 구현예들에서, 각각의 그룹에 대해, 그룹 내 샘플들의 모든 값들이 제로인지 여부를 결정하기 위해 탐색이 실행된다. 일 예에서, 그룹에서의 모든 값들이 제로일 때, 값 (예컨대, '1' 의 값) 이 연관된 그룹에서의 샘플들의 모든 값들이 제로와 동일하다는 것을 표시하는 대응하는 플래그 (예컨대, 위에서 언급한 1-비트 플래그) 를 통해서 디코더로 시그널링될 수도 있다. 그룹에서의 적어도 하나의 샘플이 비-제로 값일 때, 값 (예컨대, '0' 의 값) 이 대응하는 플래그를 통해서 디코더로 시그널링되고, 뒤이어서 그룹의 DSU-VLC 코딩이 이어질 수도 있다. 다시 말해서, 그룹과 연관된 대응하는 플래그는 그룹 내 적어도 하나의 샘플이 비-제로 값을 소유한다는 것을 표시하는 값으로 시그널링될 수도 있다. 다른 예에서, 그룹 내 샘플들의 모든 값들이 제로일 때 '0' 의 값이 시그널링될 수도 있으며, 그룹이 비-제로 값을 가지는 적어도 하나의 샘플을 포함할 때 '1' 의 값이 시그널링될 수도 있다. 그러나, 실시형태에 따라서, 그룹-방식 스킵 모드가 현재의 그룹에 채용되었는지 여부의 시그널링은 임의의 다른 적합한 방법으로, 예를 들어, 그룹-방식 스킵이 현재의-그룹에 의해 채용되었는지 여부의 표시를 복수의 비트들에 의해 시그널링함으로써, 시그널링될 수 있다.
변환 계수들의 코딩
도 4 내지 도 7 은 본 개시물에서 설명된 양태들에 따른, 변환 계수 코딩 모드에 대한 블록을 파티셔닝하는 예시적인 기법들을 예시하는 다이어그램들이다. 도 4 의 예에서, 블록은 16개의 샘플들 (201 내지 231) 을 포함하며, 여기서, 각각의 샘플은 예를 들어, 인트라 예측 잔차 또는 블록 예측 잔차이다. 복수의 변환 계수들 (C00 내지 CC15) 을 획득하기 위해 샘플들 (201 내지 231) 에 변환이 적용될 수 있다. 일 구현예에서, 블록에서의 양자화된 변환 계수들의 각각의 성분은 예를 들어, 아래 단계들에 따라서 엔트로피 코딩될 수도 있다. 도 4 내지 도 7 에 예시된 다이어그램들은 변환 코딩 모드에 대한 블록을 파티셔닝하는 관점에서 일반적으로 설명되지만, 역방향 프로시저가 또한 예시된 변환 계수들의 그룹들을 디코딩할 때에 수행될 수도 있다.
단일 성분의 블록에서의 양자화된 변환 계수들은 N 개의 그룹들로 파티셔닝될 수도 있다. 일 예에서, N 은 4 이며 1x16 의 블록 사이즈를 초래한다. 블록은 단일 1x16 DCT-변환 (도 4 의 엘리먼트 (300)) 을 이용하여 변환될 수도 있거나 또는 블록은 예를 들어, 1x8 DCT-변환 또는 1x4 DCT-변환 (도 5 내지 도 7 참조) 과 같은, 상이한 변환 사이즈(들) 을 이용하여 변환될 수도 있다. 이들 구현예들의 각각에서, N = 4 개의 그룹들의 구성이 아래에 예시된다. 그러나, 다른 실시형태들에서, 그룹들의 개수 N 은 변환 계수들의 임의의 적합한 파티셔닝이 되도록 선택될 수도 있다.
도 4 에서 16개의 샘플들 (201 내지 231) 이 인트라 예측 잔차들 또는 블록 예측 잔차들을 나타낼 수도 있다는 점에 유의한다.
본 개시물에서 설명된 양태들에 따른, 변환 계수 코딩 모드에 대한 블록의 파티셔닝의 실시형태가 도 4 에 도시된다. 도 4 의 예에서, 4개의 그룹들은 1x16 DCT 변환 (300) 을 이용하여 변환되는 16개의 블록 샘플들 (201 내지 231) 로부터 구성된다. 일부 구현예들에서, 샘플들에 적용되는 변환은 Hadamard 변환과 같은 임의의 적합한 변환일 수도 있다.
도 4 에 나타낸 바와 같이, DCT 변환은 복수의 변환 계수들 (C00 내지 CC15) 을 생성한다. 일부 구현예들에서, 변환 계수들은 DC (direct current) 계수, 제로-주파수 계수인, C00 에서 시작하여, 최고 주파수 계수, C15 까지 순서정렬된다. 도 4 에 나타낸 바와 같이, 변환 계수들은 4개의 그룹들로 파티셔닝되거나 또는 그룹핑된다. 본원에서 사용될 때, 용어들 "파티셔닝" 및 "그룹핑" 은 일반적으로 샘플들 또는 변환 계수들을 함께 그룹들에 연관시키는 프로세스를 지칭하며 샘플들 또는 변환 계수들을 물리적으로 분리시키는 것을 반드시 포함하지는 않는다. 달리 언급되지 않는 한, 본 개시물에서, 유사한 순서정렬이 변환 계수들을 나타내기 위해 사용될 수도 있으며, 여기서, 그룹 1 에서의 제 1 계수는 DC 값을 나타내며, 복수의 변환 계수들 사이의 최종 변환 계수는 최고 주파수 성분과 연관되며, 그리고 나머지 변환 계수들은 DC 값과 최고 주파수 성분 사이에 (연관된 주파수 성분들에 대해) 낮은 것부터 높은 것까지 순서정렬된다. 도 4 의 예에서, 그룹 1 은 변환 계수 (C00) 을 포함하며, 그룹 2 는 변환 계수들 (C01 내지 CC03) 을 포함하며, 그룹 3 은 변환 계수들 (C04 내지 CC07) 을 포함하며, 그룹 4 는 변환 계수들 (C08 내지 CC15) 을 포함한다. 이와 같이, 값에서 "가까운" 주파수 성분들과 연관되는 주파수의 변환 계수들이 함께 그룹핑될 수도 있다. 예를 들어, 각각의 그룹은 대응하는 그룹과 연관되는 주파수 범위내에 있는 주파수 성분들을 나타내는 변환 계수들을 포함함으로써 정의될 수 있다. 어느 주파수 성분들이 함께 그룹핑되는지 (즉, 어느 변환 계수들이 함께 그룹핑되는지) 의 선택은 더 높은 효율 코딩을 초래하는 그룹핑들을 결정하기 위한 테스팅과 같은, 여러 기준들에 기초하여 선택될 수도 있다.
도 5 는 다른 예에 따른, 변환 계수들의 파티셔닝 (또는, 그룹핑) 을 예시하는 다이어그램이다. 도 5 의 예에서, 2개의 1x8 DCT 변환들 (301 및 303) 이 블록 샘플들 (201 내지 231) 에 적용된다. 그러나, 위에서 설명한 바와 같이, 다른 유형들의 변환들이 본 개시물의 양태들로부터 일탈함이 없이 적용될 수도 있다.
제 1 1x8 DCT 변환 (301) 은 제 1 복수의 변환 계수들 (C00 내지 CC07) 을 생성하고, 제 2 1x8 DCT 변환 (303) 은 제 2 복수의 변환 계수들 (C10 내지 CC17) 을 생성한다. 각각의 1x8 DCT 변환으로부터 유래하는, 위치적인 순서에서, 대응하는 변환 계수들은 동일한 주파수 성분과 연관될 수도 있다. 예를 들어, 변환 계수들 (C00 및 C10) 은 양쪽 다 DC 계수들일 수도 있으며, 변환 계수들 (C07 및 C17) 은 최고 주파수 성분들과 연관될 수도 있다. 도 5 의 예에서, 그룹 1 은 변환 계수들 (C00 및 C10) 을 포함하며, 그룹 2 는 변환 계수들 (C01, C02, C11, 및 C12) 을 포함하며, 그룹 3 은 변환 계수들 (C03, C04, C13 및 C14) 을 포함하며, 및 그룹 4 는 변환 계수들 (C05 내지 CC07 및 C15 내지 CC17) 을 포함한다.
도 6 은 다른 예에 따른, 변환 계수들의 파티셔닝을 예시하는 다이어그램이다. 도 6 의 예에서, 4개의 1x4 DCT 변환들 (305 내지 311) 이 블록 샘플들 (201 내지 231) 에 적용된다. 그러나, 위에서 설명한 바와 같이, 다른 유형들의 변환들이 본 개시물의 양태들로부터 일탈함이 없이 적용될 수도 있다.
제 1 1x4 DCT 변환 (305) 은 제 1 복수의 변환 계수들 (C00 내지 CC03) 을 생성하고, 제 2 1x4 DCT 변환 (307) 은 제 2 복수의 변환 계수들 (C10 내지 CC13) 을 생성하고, 제 3 1x4 DCT 변환 (309) 은 제 3 복수의 변환 계수들 (C20 내지 CC23) 을 생성하고, 제 4 1x4 DCT 변환 (311) 은 제 4 복수의 변환 계수들 (C30 내지 CC33) 을 생성한다. 각각의 1x4 DCT 변환 (305 내지 311) 으로부터의 대응하는 변환 계수들은 동일한 주파수들과 연관될 수 있다. 예를 들어, 변환 계수들 (C00, C10, C20, 및 C30) 은 DC 계수들일 수도 있으며, 변환 계수들 (C03, C13, C23, 및 C33) 은 최고 주파수 계수들과 연관될 수도 있다. 도 6 의 예에서, 그룹 1 은 변환 계수들 (C00, C10, C20, 및 C30) 을 포함하고, 그룹 2 는 변환 계수들 (C01, C11, C21, 및 C31) 을 포함하고, 그룹 3 은 변환 계수들 (C02, C12, C22, 및 C32) 을 포함하고, 그룹 4 는 변환 계수들 (C03, C13, C23, 및 C33) 을 포함한다.
도 7 은 다른 예에 따른, 변환 계수들의 파티셔닝 또는 그룹핑을 예시하는 다이어그램이다. 도 7 의 예에서, 2개의 1x4 DCT 변환들 (305 및 307) 뿐만 아니라, 하나의 1x8 DCT 변환 (303) 이, 블록 샘플들 (201 내지 231) 에 적용된다. 그러나, 위에서 설명한 바와 같이, 다른 유형들의 변환들이 본 개시물의 양태들로부터 일탈함이 없이 적용될 수도 있다.
제 1 1x4 DCT 변환 (305) 은 제 1 복수의 변환 계수들 (C00 내지 CC03) 을 생성하고, 제 2 1x4 DCT 변환 (307) 은 제 2 복수의 변환 계수들 (C10 내지 CC13) 을 생성하고, 및 1x8 DCT 변환 (303) 은 제 3 복수의 변환 계수들 (C20 내지 CC27) 을 생성한다. 각각의 DCT 변환 (305 내지 307) 으로부터의 대응하는 변환 계수들은 동일한 또는 유사한 주파수들을 가질 수도 있다. 예를 들어, 변환 계수들 (C00, C10, 및 C20) 은 DC 계수들일 수도 있다. 도 7 의 예에서, 그룹 1 은 변환 계수들 (C00, C10, 및 C20) 을 포함하고, 그룹 2 는 변환 계수들 (C01, C11, C21, 및 C22) 을 포함하고, 그룹 3 은 변환 계수들 (C02, C12, C23, 및 C24) 을 포함하고, 그룹 4 는 변환 계수들 (C03, C13, C25, C26, 및 C27) 을 포함한다.
어떤 예들이 도 5 내지 도 7 과 관련하여 설명되었지만, 변환 계수들의 다른 변환들 및 파티셔닝이 또한 구현될 수 있다. 예를 들어, 1x8, 1x4, 및 1x4 변환들이 [8 4 4] 과 같은 순서로 적용될 수도 있거나, 또는 1x4, 1x8, 및 1x4 변환들이 [4 8 4] 와 같은, 순서로 적용될 수도 있다. 또, 그룹들은 도 7 의 예와 유사한 방법을 이용하여 구성될 수도 있다.
다른 구현예들에서, 선형 그룹핑 방법들이 4개의 그룹들을 구성하기 위해 사용될 수도 있으며, 여기서, 각각의 그룹은 그룹 당 4개의 변환 계수들을 가질 수 있다. 예를 들어, 도 4 의 예에 대한 대안으로, 1x16 DCT 변환 (200) 의 적용 후, 그룹 1 은 처음 4개의 변환 계수들 (C0 내지 CC3) 을 포함할 수도 있으며, 그룹 2 는 다음 4개의 변환 계수들 (C4 내지 CC7) 을 포함할 수도 있으며, 기타등등을 포함할 수도 있다. 도 5 의 예에 대한 대안으로, 1x8 DCT 변환들 (301 및 303) 의 적용 후, 각각의 그룹은 변환 계수들 (C00 내지 CC07 및 C10 내지 CC17) 의 각각의 세트로부터 2개의 계수들을 취함으로써 구성될 수도 있다. 예를 들어, 그룹 1 은 (C00, C10, C01, 및 C11) 을 포함할 수도 있으며, 그룹 2 는 (C02, C03, C12, 및 C13) 을 포함할 수도 있으며, 기타등등을 포함할 수도 있다. 도 7 의 예에 대한 대안으로, 1x4 DCT 변환들 (305 및 307) 뿐만 아니라, 1x8 DCT 변환 (303) 의 적용 후, 각각의 그룹은 변환 계수들 (C00 내지 CC03 및 C10 내지 CC13) 의 2개의 세트들로부터 각각 하나의 계수를, 그리고 변환 계수들 (C20 내지 CC27) 의 세트로부터 2 계수들을 취함으로써 구성될 수도 있다. 예를 들어, 그룹 1 은 (C00, C10, C20, 및 C21) 을 포함할 수도 있으며, 그룹 2 는 (C01, C11, C22, 및 C23) 을 포함할 수도 있으며, 기타등등을 포함할 수도 있다. 유사한 그룹핑 전략들이 예를 들어, [8 4 4], [4 8 4] 등과 같은, 다른 파티셔닝 변환 선택들의 그룹들을 구성하기 위해 구현될 수도 있다.
인코딩을 위한 다수의 그룹핑 기법들이 도 4 내지 도 7 과 관련하여 설명되었지만, 그룹들의 디코딩은 도 4 내지 도 7 을 참조하여 인코딩 기법들의 역방향 순서로 수행될 수도 있다. 예를 들어, 변환 계수들의 그룹들은 샘플들 (201 내지 231) 에 적용된 변환들의 개수에 기초하여 재편성될 수도 있으며 동일한 개수의 역변환들이 재편성된 변환 계수들에 적용될 수도 있다. 재편성은 예를 들어, 각각의 그룹에서의 변환 계수들의 개수 또는 변환 계수들을 생성하는데 적용된 변환들의 유형 및 개수의 시그널링에 기초할 수도 있다.
일부 구현예들에서, 그룹핑 구성 이후, 적어도 하나의 비-제로 값을 포함하는 그룹의 인덱스는 역방향 스캔 순서, 예를 들어, 순서에서 그룹들 4, 3, 2, 및 1 을 지나는 탐색 진행상태들로 발견될 수도 있다. ("유의한" 그룹으로서 또한 지칭될 수도 있는) 적어도 하나의 비-제로 값을 포함하는 그룹의 인덱스가 디코더로 시그널링될 수도 있다. 일 예에서, 인덱스는 2-비트 고정 길이 코드를 이용하여 시그널링될 수도 있다. 다른 예에서, Huffman 과 같은 가변 길이 코드들 (VLCs), 또는 지수 Golomb 또는 Rice 코드들과 같은 구조화된 VLC 코드들이 사용될 수도 있다.
(하나의 비-제로 값을 가지는 그룹을 포함하는) 나머지 그룹들은 접두부 및 접미부 부분들을 이용한 DSU-VLC 를 이용하여 코딩될 수도 있으며, 여기서, 접두부는 뒤따르는 접미부의 사이즈를 표시한다. 접미부 부분에서, 그룹들에서의 계수들은 예를 들어, 동일한 개수의 비트들을 이용하여 코딩될 수도 있다.
다른 접근법에서, 상기에 대한 접근법들에 대안적으로 또는 추가적으로, 그룹들은 그룹-방식 스킵 모드를 이용하여 코딩될 수도 있으며, 여기서 스킵 플래그 또는 스킵 값은 각각의 그룹에 대해 시그널링되고, 각각의 그룹은 단지 그룹이 적어도 하나의 비-제로 값을 가지는 경우에만 DSU-VLC 코딩된다.
여전히 다른 접근법에서, 상기 접근법들 중 하나 이상의 조합이 블록-방식 스킵 모드과 결합될 수도 있으며, 위에서 설명된 기법들은 단지 16개의 계수들 (C00 내지 CC15) 중 적어도 하나가 비-제로 값을 포함하는 경우에만 적용될 수도 있다.
일 예에서, 블록-방식 스킵 모드가 모든 3개의 칼라 좌표들에 적용되지 않는다. 다른 예에서, 블록-방식 스킵 모드가 루마 칼라 좌표가 아닌, 단지 크로마 칼라 좌표들에만 적용된다.
또 다른 접근법에서, 상기 단계들을 적용한 후, 최종 유의한 변환 계수 위치 (예컨대, 변환 계수의 절대값이 1 보다 크거나 동일한 위치) 가 먼저 식별된다. 위치 정보가 디코더로 명시적으로 시그널링될 수도 있다. 더욱이, 최종 유의한 위치의 절대값이 1 만큼 감산될 수도 있다. 예를 들어, C 가 최종 유의한 위치에 대응하는 계수 값의 크기를 나타낸다고 하자. 계수는 Cnew = (|C|-1)*sign(C) 로 대체될 수도 있으며, 여기서, sign(C) 는 계수 C 의 부호 값을 나타낸다. 최종 유의한 위치에 대응하는 부호 정보 sign(C) 가 시그널링될 수도 있다. 그 후, 제 1 계수로부터 시작하여 최종 유의 계수 위치까지의 (를 포함하는) 모든 샘플들이 그룹-방식 스킵 모드를 이용하여 코딩될 수도 있다. 그후, 그룹 내 샘플들 중 적어도 하나가 비-제로이면, 그룹은 DSU-VLC 코딩될 수도 있다. 그룹 내 샘플들 중 어떤 샘플도 비-제로가 아니면, 그룹은 그룹-방식 스킵 모드를 이용하여 코딩될 수도 있다. 최종 유의 계수 위치가 그룹 경계와 중첩하지 않을 때, 단지 그룹 내에서 최종 유의 계수 위치까지의 샘플들의 서브세트만이 코딩되며, 반면 (제로의 값을 가지는) 나머지 샘플들은 코딩되지 않는다는 점에 유의한다. 디코더에서, (제로의 값을 가지는) 나머지 샘플들은 최종 유의 계수 위치로부터 직접 추론될 수도 있다.
일 예에서, 최종 유의한 위치에 대응하는 부호 정보는 오직 1 만큼 감산된 최종 유의 계수 값의 절대값이 제로와 동일할, 즉, |C|-1 == 0 일 경우에만 시그널링될 수도 있으며, 여기서, C 는 최종 유의한 위치에 대응하는 계수 값의 크기를 나타낸다. 계수들은 2의 보수를 이용하여 코딩될 수도 있으며, 예를 들어, N-비트들이 -(2N-1) 내지 +(2N-1 - 1) 에서의 값들을 표시하기 위해 사용될 수 있다.
일 양태에서, 최종 유의한 위치는 고정 길이 코드를 이용하여 코딩될 수도 있으며, 여기서, 비트수는 log2(numberOfSamplesInBlock) 와 동일하게 설정된다.
다른 양태에서, 최종 유의한 위치는 예를 들어, Exp-Golomb 코드, Huffman 코드, Rice 코드와 Exp-Golomb 코드의 혼합물, 등과 같은, 가변 길이 코드들을 이용하여 코딩될 수도 있다. 또한, 다른 양태에서, 가변 길이 코드들을 이용하여 최종 유의한 위치를 코딩하는 기법들을 적용하기 전에 위에서 설명된 블록-방식 스킵 모드가 적용될 수도 있다.
또한 다른 접근법에서, 가변 길이 코드들을 이용하여 최종 유의한 위치를 코딩하는 기법을 적용하기 전에 블록-방식 스킵 모드가 적용되지 않는다. 블록에서의 모든 샘플들이 제로인 시나리오들에서, 최종 유의한 위치의 디폴트 값이 디코더로 시그널링될 수도 있다.
일 예에서, 디폴트 최종 유의한 위치는 그룹 1 에서의 제 1 샘플 위치를 나타내는 제로이다. (제로의) 디폴트 최종 유의한 위치를 시그널링한 후, 블록에서의 모든 샘플들이 제로이면, 그룹 1 은 그룹-방식 스킵 모드를 이용하여 코딩될 수도 있다. 한편, 디폴트 최종 유의한 위치에서의 값이 비-제로이면, 그룹 1 에서의 제 1 샘플은 DSU-VLC 코딩 원리들을 이용하여 코딩될 수도 있다.
다른 예에서, 디폴트 최종 유의한 위치에 대응하는 절대값은 1 만큼 감산되지 않는다. 계수 값이 1 만큼 감산되지 않기 때문에, 디폴트 최종 유의한 위치에 대응하는 부호 정보는 시그널링되지 않는다.
또한, 다른 예에서, 디폴트 최종 유의한 위치에 대응하는 절대값은 1 만큼 감산될 수도 있다. 예를 들어, 다음 2개의 경우들이 있을 수도 있다: (i) 디폴트 최종 유의한 위치에 비-제로 값이 있는 경우; 및 (ii) 디폴트 위치에서의 값이 제로인 경우. 최종 유의 계수 값이 1 만큼 감산되기 때문에, 디폴트 최종 유의한 위치에 대응하는 부호 정보는 |C|-1 == 0 일때 시그널링될 수도 있으며, 여기서 C 는 최종 유의한 위치에 대응하는 계수 값의 크기를 나타낸다.
최종 유의한 위치가 디폴트 위치 (제로) 와 동일하지 않은 시나리오들에서, 최종 유의한 위치를 코딩하기 위해 가변 길이 코드들을 이용하는 기법(들) 이 적용될 수도 있다는 점에 유의한다.
접두부 예측
일 구현예에서, 각각의 구성요소의 접두부 값들은 아래에서 설명되는 바와 같이 예측될 수도 있다.
값들 prevBits 및 currBits 는, 이전 그룹 및 현재의 그룹 (예컨대, 각각, 이전 그룹의 접두부 값 및 현재의 그룹의 접두부 값) 을 각각 코딩하는데 요구되는 비트수를 나타낼 수도 있다. 값들 prevQP 및 currQP 는 (스킵 모드에서 코딩되지 않는 이전 그룹인) 이전 그룹 및 현재의 그룹을 각각 코딩하는데 사용되는 양자화 파라미터를 나타낼 수도 있다.
값 prevBits 은 값들 currQP 와 prevQP 사이의 차이에 기초하여, 다음과 같이 조정될 수도 있다 (본원에서 값 adjPrevBits 로서 표기될 수도 있다):
Figure pct00004
여기서, k 는 임의의 양의 정수일 수도 있다. 일 예에서, k 는 3 과 동일하다.
다른 예에서, 값 prevBits 은 값들 currQP 와 prevQP 사이의 차이에 기초하여 조정되지 않는다, 즉, 값 prevBits 은 임의의 조정 없이 접두부 예측에 사용된다.
변환 계수들을 코딩하는 동안, 현재의 그룹 접두부 값 (예를 들어, 값 currBits) 은 변환 모드를 이용하여 이전에 코딩된 블록의 동일한 그룹 인덱스 (및 동일한 구성요소) 의 접두부 값에 기초하여 예측될 수도 있다. 즉, 그룹 i, i ∈ { 1, 2, 3, 4} 로부터의 값 currBits 는 이전에 코딩된 변환 블록에서의 개개의 그룹 i, i ∈ { 1, 2, 3, 4} 의 접두부 값 (및 개개의 양자화 파라미터) 에 기초하여 예측될 수도 있다. 이전 블록에서의 개개의 칼라 성분이 블록-방식 스킵 모드를 이용하여 코딩되면, 블록-방식 스킵 모드를 이용하여 코딩되지 않는, 동일한 칼라 성분을 가지는 변환 블록의 최종 발생이 예측을 위해 고려될 수 있다. 이전 블록에서의 특정의 그룹 i 가 그룹-방식 스킵 모드에서 코딩되면, 값 prevBits = 1 및/또는 값 adjPrevBits = 1 이 사용될 수도 있다.
접두부 예측에서, 현재의 블록의 모드와 동일한 모드를 이용하여 코딩되는 이전 블록의 접두부 값이 사용될 수 있다. 일 예에서, 현재의 블록이 변환을 이용하지 않고 잔차들을 바로 코딩하면, 변환을 이용하여 (블록-방식 모드를 이용하여서도) 코딩되지 않는 이전 블록의 접두부 값 및 양자화 파라미터가 예측을 위해 고려될 수도 있다. 특히, 블록에서의 각각의 그룹에 대해 하나씩, 4개의 접두부 값들 중에서, 그룹-방식 스킵 모드를 이용하여 코딩되지 않는 그룹의 최종 발생에 대응하는 접두부 값이 예측을 위해 사용될 수 있다.
다른 예에서, 별개의 접두부 예측 함수가 각각의 코딩 모드에 대해 유지될 수 있으며, 예를 들어, 현재의 블록이 변환을 적용한 후 코딩되면, 변환에 의해 코딩된 블록의 이전의 발생과 연관된 접두부 값이 예측을 위해 사용된다. 유사한 방법으로, 현재의 블록 잔차들이 블록-예측으로부터 발생된 잔차들을 나타내면, 블록-예측 잔차들을 포함하는 블록의 이전의 발생과 연관된 접두부 값이 사용된다.
또한, 다른 예에서, 하나의 함수가 변환에 의해 코딩된 블록들에 대해 유지되고 다른 함수가 잔차들, 예를 들어, 1D 예측 잔차들, 및/또는 블록-예측 잔차들, 및/또는 인트라-예측 잔차들, 및/또는 2D 중간값 적응 예측된 잔차들을 나타내는 블록들에 대해 유지될 수도 있는 방식으로, 모드들에 걸쳐서, 접두부 예측 함수가 공유될 수도 있다.
또한 다른 예에서, 현재의 블록에서의 모든 그룹들의 접두부 값들은 이전에 코딩된 블록에서의 단일 접두부 값에 기초하여 예측될 수도 있다. 단일 접두부 값은 4 개의 그룹들 중 임의의 그룹과 연관될 수도 있다. 하나의 접근법에서, 단일 접두부 값은 이전 블록에서의 최종 그룹, 예컨대, i = 4 와 연관될 수도 있다. 이전 블록에서의 최종 그룹이 그룹-방식 스킵 모드를 이용하여 코딩되면, 그룹-방식 스킵 모드를 이용하여 코딩되지 않는 그룹 i-1 과 연관된 접두부 값이 사용된다. 다른 접근법에서, 최종 그룹 또는 임의의 특정의 그룹이 그룹-방식 스킵 모드를 이용하여 코딩되면, prevBits = 1 및/또는 adjPrevBits = 1 이 사용된다.
현재의 블록의 코딩 모드와 동일한 코딩 모드를 가지는 이전 블록이 식별될 수 없는 시나리오들에서, 예측은 인코더의 디폴트 초기 값과 동일한 양자화 파라미터 세트와 함께, 값 prevBits = 1 및/또는 값 adjPrevBits = 1 의 디폴트 값에 기초할 수도 있다.
접두부 코딩
접두부 코딩의 일 구현예에서, 각각의 구성요소에 대해, 값 currBits 와 값 adjPrevBits 사이의 절대 차이는 1진 코딩을 이용하여 코딩될 수도 있으며, 부호는 추가적인 1-비트로 표시될 수도 있다. 예를 들어, 오직 절대 차이가 엄밀히 제로보다 더 클 때에만 부호 비트가 시그널링될 수도 있다는 점에 유의한다.
다른 구현예에서, 각각의 구성요소에 대해, 값 currBits 와 값 prevBits 사이의 절대 차이는 1진 코딩을 이용하여 코딩될 수 있으며, 부호는 추가적인 1-비트로 표시될 수도 있다.
또 다른 구현예에서, 각각의 구성요소에 대해, 값 currBits 는 임의의 예측 없이 1진 코드들을 이용하여 코딩될 수도 있다.
계속해서, 다른 구현예에서, 각각의 구성요소에 대해, 값 currBits-1 은 임의의 예측 없이 1진 코드들을 이용하여 코딩될 수도 있다.
다른 구현예에서, 접두부 값 (예를 들어, 값 currBits-1) 을 직접 코딩하는 대신, 접두부 값이 (예를 들어, 맵핑 함수 또는 테이블을 이용하여) 값에 맵핑될 수도 있으며, 맵핑된 값이 코딩될 수도 있다. 테이블/함수는 평균 예상된 코드 길이가 작은 (예를 들어, 정의된 코드 길이 값 미만인) 방법으로 설계될 수도 있다. 접두부 값의 코딩은 접두부 값 (예를 들어, 값 currBits-1) 을 내림 차순으로 분류하고, 가장 가능성있는 접두부 값들이 코드 길이가 작은 값에 맵핑되고 최소 가능성있는 접두부 값들이 코드 길이가 큰 (예를 들어, 정의된 코드 길이 값과 동일하거나 또는 더 큰) 값에 맵핑되도록, 특정의 값을 할당함으로써, 이루어질 수도 있다.
또 다른 구현예에서, 1진 코드들 대신, 예를 들어, Huffman 과 같은 VLC들, 또는 지수 Golomb, Rice 코드들과 같은 구조화된 VLC 코드들이 사용될 수도 있다.
계속해서, 다른 구현예에서, 고정 길이 코드들이 접두부 코딩을 위해 사용될 수 있다.
2D 블록들로의 확장들
이 하위섹션에서, 2D 블록 사이즈들 P x Q 로의 엔트로피 코딩의 확장이 개시되며, 여기서, P 및 Q 는 블록 높이 및 블록 폭을 각각 나타낸다.
양자화된 블록 잔차들의 코딩에 있어서, 양자화된 블록 잔차들은 일반적으로 원래 블록에서 예측된 블록을 감산하고 잔차 블록의 상부 상에 양자화를 적용함으로써 발생된 잔차들을 지칭한다. 예측은 공간적으로 이웃하는 샘플들로부터 실행될 수 있다. 공간 예측의 예들은 블록 예측, 중간값 적응 예측 (맵), 인트라 예측, 및/또는 중간점 예측을 포함한다. 변환이 양자화된 블록 잔차들의 코딩에 적용되지 않는다는 점에 유의한다.
2D 블록 P x Q 의 양자화된 블록 잔차들의 각각의 성분은 N 개의 그룹들로 파티셔닝될 수도 있으며, 여기서, N 은 양의 정수이다. 일 예에서, N 은 4 로 설정된다.
그룹들은 각각의 양자화된 잔차 샘플이 유일한 하나의 (one and only one) 그룹에 속하도록 형성될 수 있다.
각각의 그룹에서의 샘플들의 개수는 동일할 수도 있으며, 예를 들어, 각각의 그룹은 (P x Q)/N 개의 샘플들을 가질 수도 있다. 그룹들은 블록 P x Q 를 (P x Q)/N 개의 파티션들로 파티셔닝함으로써 구성될 수도 있으며, 각각의 파티션에서의 샘플들은 하나의 그룹으로서 간주될 수도 있다. 일 예에서, 파티셔닝은 단지 수직 방향으로만 실행될 수 있으며, 예를 들어, 각각의 파티션 사이즈는 P x (Q/N) 이다. 다른 예에서, 파티셔닝은 단지 수평 방향으로만 이루어질 수 있으며, 여기서, 각각의 파티션 사이즈는 (P/N) x Q 이다. 다른 예에서, 파티셔닝은 수직 방향 및 수평 방향 양쪽으로 이루어질 수 있다. 일 예로서, 각각의 파티션 사이즈는 (P/(N/2)) x (Q/(N/2)) 일 수도 있다.
다른 예에서, 각각의 그룹에서의 샘플들의 개수는 동일하지 않으며, 여기서, 서브 블록들로 파티셔닝하는 것은 불균일한 방식으로 실행될 수도 있다.
그룹들을 구성한 후, 그룹들은 "양자화된 블록 잔차들의 코딩" 과 관련한 섹션에서 위에서 설명된 기법(들) 을 이용하여 코딩될 수 있다.
양자화된 변환 계수들의 코딩에 있어서, 사이즈 P x Q 의 2D 블록의 양자화된 변환 계수들의 각각의 성분은 N개의 그룹들로 파티셔닝될 수도 있으며, 여기서, N 은 양의 정수이다. 일 예에서, N 은 4 로 설정된다.
그룹들은 각각의 양자화된 계수 샘플이 오직 하나의 그룹에 속하도록 형성될 수도 있다.
각각의 그룹에서의 샘플들의 개수는 동일하지 않을 수도 있다. 유사한 주파수들을 나타내는 양자화된 변환 계수들은 하나의 그룹을 형성할 수도 있다.
도 8 은 본 개시물의 양태들에 따른, 변환 계수 코딩 모드에 대한 블록을 파티셔닝하는 다른 예시적인 기법을 예시하는 다이어그램이다. 도 8 은 블록 사이즈가 4x4 일 때 샘플들의 2D 블록을 그룹들로 파티셔닝하는 일 예를 예시한다. 도 8 에서, P = 4 및 Q = 4 및 그룹들의 개수 N = 4 이다. 예를 들어, 제 1 셰이딩 (shading) 은 변환 계수 (C00) 를 포함하는 제 1 그룹을 나타낸다. 제 2 셰이딩은 C01, C02, C04, 및 C08 을 포함하는 제 2 그룹을 나타낸다. 제 3 셰이딩은 C05, C06, C09, 및 C10 을 포함하는 제 3 그룹을 나타낸다. 제 4 셰이딩은 C03, C07, C11, C12, C13, C14, 및 C15 를 포함하는 제 4 그룹을 나타낸다.
도 8 에 나타낸 그룹핑 구성은 단지 본원에서 설명되는 기법들의 양태들을 예시하는 일 예이며, 사이즈 P x Q 의 주어진 블록에 대해 그룹들을 형성하는 매우 많은 다른 방법들이 존재한다는 점에 유의한다.
다른 접근법에서, 계수들은 특정의 스캔 순서로 스캐닝될 수도 있으며, 최종 1D 계수 스캐닝은 N개의 그룹들로 파티셔닝될 수 있다. 예를 들어, 스캐닝은 지그-재그 순서로 수행될 수도 있다. 다른 예에서, 수직 및/또는 수평 스캔 순서(들) 이 사용될 수도 있다.
변환 파티셔닝이 적용될 (예를 들어, 변환이 블록 내 각각의 서브-블록에 적용될) 때, 상이한 파티션들에 걸쳐서 유사한 주파수들을 나타내는 변환 계수들은 동일한 그룹에 포함될 수도 있다. 예를 들어, 블록 내 상이한 파티션들에 대응하는 DC 값이 제 1 그룹을 형성하기 위해 고려될 수도 있다.
다른 접근법에서, 각각의 그룹에서의 샘플들의 개수는 동일할 수도 있으며, 그룹들은 "양자화된 블록 잔차들의 코딩" 과 관련한 섹션에서 위에서 설명된 기법(들) 을 이용하여 구성될 수도 있다.
그룹들을 구성한 후, 그룹들은 제목 "변환 계수들의 코딩" 을 가지는 섹션에서 위에서 설명된 기법(들) 을 이용하여 코딩될 수도 있다.
다른 예시적인 접근법에 따른, 그룹들을 구성하는 기법의 구현예가 아래에 설명된다.
예시적인 목적들을 위해, 블록 사이즈는 P x Q 일 수도 있으며, 여기서, P = 2 및 Q= 8, 및 그룹들의 개수 N = 4 이다. 여기서, P, Q, 및 N 은 위에서 설명한 바와 같이 정의될 수도 있다.
도 9 내지 도 11 은 본 개시물에서 설명된 양태들에 따른, 블록을 파티셔닝하는 방법들을 예시하는 다이어그램들이다.
제목 "양자화된 블록 잔차들의 코딩" 을 가지는 상기 섹션에서 설명된 바와 같이, 양자화된 블록 잔차들의 그룹핑은 블록들을 수직으로 파티셔닝하는 것을 통해서 이루어질 수도 있으며, 여기서, 2x2 의 각각의 서브-블록 사이즈는 도 9 에 나타낸 바와 같이 하나의 그룹으로 간주된다. 이 실시형태에서는 변환이 적용되지 않는다는 점에 유의한다.
제목 "양자화된 변환 계수들의 코딩" 을 가지는 상기 섹션에서 설명된 바와 같이, 사이즈 2x8 의 블록의 양자화된 변환 계수들의 그룹핑은 도 10 에 나타낸 바와 같이 구성될 수도 있다. 도 10 의 예에서, 2x8 변환 (313) 이 적용된다.
변환 파티셔닝이 적용될 때 (예컨대, 2개의 2x4 변환들 (315 및 317) 이 2x8 의 블록 사이즈에 대해 적용될 때), 그룹들은 도 11 에 나타낸 바와 같이 구성될 수도 있다.
엔트로피 인코딩을 위한 예시적인 플로우차트
도 12 를 참조하여, 엔트로피 인코딩하는 예시적인 프로시저가 설명된다. 도 12 는 본 개시물의 일 실시형태에 따른, 비디오 데이터를 인코딩하는 방법 (400) 을 예시하는 플로우차트이다. 도 12 에 예시된 단계들은 비디오 인코더 (예컨대, 도 2a 에서의 비디오 인코더 (20)) 또는 그의 구성요소(들) 에 의해 수행될 수도 있다. 편의를 위해, 방법 (400) 은 비디오 인코더 (20) 또는 다른 구성요소일 수도 있는, 비디오 코더 (또한, 코더로서 간단히 지칭됨) 에 의해 수행되는 것으로 설명된다.
방법 (400) 은 블록 (401) 에서 시작한다. 블록 (405) 에서, 코더는 비디오 데이터의 코딩 모드에 적어도 부분적으로 기초하여 비디오 데이터의 블록을 샘플들의 복수의 그룹들로 파티셔닝한다 (또는, 그룹핑한다). 예를 들어, 비디오 데이터의 코딩 모드는 양자화된 블록 잔차 코딩 모드, 변환 계수 코딩 모드 또는 다른 코딩 모드일 수도 있다. 게다가, 비디오 데이터의 블록의 샘플들은 복수의 칼라 좌표들을 포함할 수도 있으며, 각각의 칼라 좌표의 샘플들은 칼라 좌표의 코딩 모드에 적어도 부분적으로 기초하여 샘플들의 복수의 그룹들로 파티셔닝될 수도 있다.
블록 (410) 에서, 코더는 적어도 하나의 그룹에서의 샘플들의 모두가 미리 결정된 값과 동일한 것에 응답하여 그룹들 중 적어도 하나에 대해 그룹-방식 스킵을 수행하는 것을 통해서 블록을 엔트로피 인코딩한다. 그룹-방식 스킵은 적어도 하나의 그룹에서의 샘플을 인코딩하는 것을 억제하는 것을 포함할 수도 있다. 일부 구현예들에서, 블록은 DSU-VLC 코딩을 이용하여 코딩된다. 이 방법은 블록 (415) 에서 종료한다.
방법 (400) 에서, 도 12 에 도시된 블록들 중 하나 이상이 제거될 (예컨대, 수행되지 않을) 수도 있으며 및/또는 본 방법이 수행되는 순서는 스위칭될 수도 있다. 일부 실시형태들에서, 추가적인 블록들이 방법 (400) 에 추가될 수도 있다. 본 개시물의 실시형태들은 도 12 에 나타낸 예에 또는 그에 의해 한정되지 않으며, 다른 변형예들이 본 개시물의 정신으로부터 일탈함이 없이 구현될 수도 있다.
엔트로피 디코딩을 위한 예시적인 플로우차트
도 13 을 참조하여, 엔트로피 디코딩하는 예시적인 프로시저가 설명된다. 도 13 은 본 개시물의 일 실시형태에 따른, 비디오 데이터를 디코딩하는 방법 (500) 을 예시하는 플로우차트이다. 도 13 에 예시된 단계들은 비디오 인코더 (예컨대, 도 2b 에서의 비디오 디코더 (30)) 또는 그의 구성요소(들) 에 의해 수행될 수도 있다. 편의를 위해, 방법 (500) 은 비디오 디코더 (30) 또는 다른 구성요소일 수도 있는, 비디오 코더 (또한, 코더로서 간단히 지칭됨) 에 의해 수행되는 것으로 설명된다.
방법 (500) 은 블록 (501) 에서 시작한다. 블록 (505) 에서, 코더는 비디오 데이터의 블록을 나타내는 비트스트림을 수신한다. 블록은 샘플들의 복수의 그룹들을 포함할 수도 있다. 비트스트림은 블록의 샘플들의 대응하는 그룹이 비트스트림에 포함되지 않는다는 것을 표시하는 적어도 하나의 그룹-방식 스킵 값을 포함할 수도 있다.
블록 (510) 에서, 코더는 그룹-방식 스킵 값에 적어도 부분적으로 기초하여 비트스트림을 엔트로피 디코딩하는 것을 통해서 샘플들의 복수의 그룹들을 생성한다. 블록 (515) 에서, 코더는 샘플들의 복수의 그룹들 및 블록의 코딩 모드에 적어도 부분적으로 기초하여 블록을 복원한다. 예를 들어, 비디오 데이터의 코딩 모드는 양자화된 블록 잔차 코딩 모드, 변환 계수 코딩 모드 또는 다른 코딩 모드일 수도 있다. 게다가, 비디오 데이터의 블록의 샘플들은 복수의 칼라 좌표들을 포함할 수도 있으며, 각각의 칼라 좌표의 샘플들은 칼라 좌표의 코딩 모드에 적어도 부분적으로 기초하여 샘플들의 복수의 그룹들로 파티셔닝될 수도 있다. 방법 (500) 은 블록 (520) 에서 종료한다.
방법 (500) 에서, 도 13 에 도시된 블록들 중 하나 이상이 제거될 (예컨대, 수행되지 않을) 수도 있으며 및/또는 본 방법이 수행되는 순서는 스위칭될 수도 있다. 일부 실시형태들에서, 추가적인 블록들이 방법 (500) 에 추가될 수도 있다. 본 개시물의 실시형태들은 도 13 에 나타낸 예에 또는 그에 의해 한정되지 않으며, 다른 변형예들이 본 개시물의 정신으로부터 일탈함이 없이 구현될 수도 있다.
다른 고려사항들
본 개시물의 양태들은 도 2a 에서의 비디오 인코더 (20) 와 같은, 인코더의 관점에서 설명되었다는 점에 유의해야 한다. 그러나, 당업자들은 발생된 비트스트림을, 예를 들어, 도 2b 에서의 비디오 디코더 (30) 에 의해 디코딩하기 위해 위에서 설명된 동작들에 대한 역방향 동작들이 적용될 수도 있음을 명백히 알 수 있을 것이다.
본원에서 개시된 정보 및 신호들은 다양한 상이한 기술들 및 기법들 중 어느 것을 이용하여서도 표현될 수도 있다. 예를 들어, 상기 설명 전반에 걸쳐서 인용될 수도 있는 데이터, 명령들, 지령들, 정보, 신호들, 비트들, 심볼들 및 칩들은, 전압들, 전류들, 전자기파들, 자기장들 또는 자기 입자들, 광학장들 또는 광학 입자들, 또는 이들의 임의의 조합으로 표현될 수도 있다.
본원에서 개시된 실시형태들과 관련하여 설명된 여러가지 예시적인 로직 블록들, 및 알고리즘 단계들은 전자적 하드웨어, 컴퓨터 소프트웨어, 또는 양쪽의 조합들로서 구현될 수도 있다. 이러한 하드웨어와 소프트웨어의 상호 교환가능성을 명확히 예시하기 위하여, 여러가지 예시적인 구성요소들, 블록들, 및 단계들 일반적으로 그들의 기능성의 관점에서 위에서 설명되었다. 이런 기능이 하드웨어 또는 소프트웨어로 구현되는지 여부는 특정의 애플리케이션 및 전체 시스템에 부과되는 설계 제한 사항들에 의존한다. 숙련자들은 각각의 특정의 애플리케이션 마다 설명한 기능을 여러가지 방법으로 구현할 수도 있으며, 그러나 이런 구현 결정들은 본 개시물의 범위로부터의 일탈을 초래하는 것으로 해석되어서는 안된다.
본원에서 설명된 기법들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 이러한 기법들은 범용 컴퓨터들, 무선 통신 디바이스 핸드셋들, 또는 무선 통신 디바이스 핸드셋들, 자동차, 가전제품들, wearables, 및/또는 다른 디바이스들에서의 애플리케이션들을 포함한 다수의 용도들을 가진 집적 회로 디바이스들과 같은 다양한 디바이스들 중 임의의 디바이스에서 구현될 수도 있다. 디바이스들 또는 구성요소들로서 설명하는 임의의 특징들은 통합 로직 디바이스 내에 함께, 또는 별개의 공용가능한 로직 디바이스들로서 별개로 구현될 수도 있다. 소프트웨어로 구현되는 경우, 이 기법들은 실행될 때, 위에서 설명된 방법들 중 하나 이상을 수행하는 명령들을 포함하는 프로그램 코드를 포함하는 컴퓨터-판독가능 데이터 저장 매체에 의해 적어도 부분적으로 실현될 수도 있다. 컴퓨터-판독가능 데이터 저장 매체는 패키징 재료들을 포함할 수도 있는 컴퓨터 프로그램 제품의 일부를 형성할 수도 있다. 컴퓨터-판독가능 매체는 메모리 또는 데이터 저장 매체들, 예컨대, 동기식 동적 랜덤 액세스 메모리 (SDRAM) 와 같은 랜덤 액세스 메모리 (RAM), 판독 전용 메모리 (ROM), 비-휘발성 랜덤 액세스 메모리 (NVRAM), 전기적으로 소거가능한 프로그래밍가능 판독 전용 메모리 (EEPROM), 플래시 메모리, 자기 또는 광학 데이터 저장 매체들 등을 포함할 수도 있다. 기법들은 추가적으로, 또는 대안적으로, 프로그램 코드를 명령들 또는 데이터 구조들의 유형으로 운반하거나 또는 통신하고 그리고 컴퓨터에 의해 액세스되거나, 판독되거나, 및/또는 실행될 수 있는, 전파 신호들 또는 파들과 같은, 컴퓨터-판독가능 통신 매체에 의해 적어도 부분적으로 실현될 수도 있다.
프로그램 코드는 하나 이상의 디지털 신호 프로세서들 (DSP들), 범용 마이크로프로세서들, 주문형 집적회로들 (ASIC들), 필드 프로그래밍가능 로직 어레이들 (FPGA들), 또는 다른 등가의 집적 또는 이산 로직 회로와 같은, 하나 이상의 프로세서들을 포함할 수도 있는 프로세서에 의해 실행될 수도 있다. 이러한 프로세서는 본 개시물에서 설명하는 기법들 중 임의의 기법들을 수행하도록 구성될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있으며; 그러나 대안적으로는, 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기 또는 상태 머신일 수도 있다. 프로세서는 또한 컴퓨팅 디바이스들의 조합, 예컨대, DSP 와 마이크로프로세서의 조합, 복수의 마이크로프로세서들, DSP 코어와 결합된 하나 이상의 마이크로프로세서들, 또는 임의의 다른 이러한 구성으로서 구현될 수도 있다. 따라서, 용어 "프로세서" 는, 본원에서 사용될 때 전술한 구조 중 임의의 구조, 전술한 구조의 임의의 조합, 또는 본원에서 설명하는 기법들의 구현에 적합한 임의의 다른 구조 또는 장치를 지칭할 수도 있다. 게다가, 일부 양태들에서, 본원에서 설명하는 기능은 인코딩 및 디코딩하도록 구성된 전용 소프트웨어 또는 하드웨어 내에 제공되거나, 또는 결합된 비디오 인코더-디코더 (코덱) 에 포함될 수도 있다. 또한, 이 기법들은 하나 이상의 회로들 또는 로직 엘리먼트들로 전적으로 구현될 수 있다.
본 개시물의 기법들은 무선 핸드셋, 집적 회로 (IC) 또는 IC들의 세트 (예컨대, 칩 세트) 를 포함한, 매우 다양한 디바이스들 또는 장치들로 구현될 수도 있다. 개시한 기법들을 수행하도록 구성되는 디바이스들의 기능적 양태들을 강조하기 위해서 여러 구성요소들, 또는 유닛들이 본 개시물에서 설명되지만, 상이한 하드웨어 유닛들에 의한 실현을 반드시 필요로 하지는 않는다. 대신, 위에서 설명한 바와 같이, 여러 유닛들이 코덱 하드웨어 유닛에 결합되거나 또는 적합한 소프트웨어 및/또는 펌웨어와 함께, 위에서 설명한 바와 같은 하나 이상의 프로세서들을 포함한, 상호작용하는 하드웨어 유닛들의 컬렉션으로 제공될 수도 있다.
상기는 여러 상이한 실시형태들과 관련하여 설명되었지만, 일 실시형태로부터의 특징들 또는 엘리먼트들은 본 개시물의 교시들로부터 일탈함이 없이 다른 실시형태들과 결합될 수도 있다. 그러나, 개개의 실시형태들 사이의 특징들의 조합들은 반드시 이에 한정되지 않는다. 본 개시물의 여러 실시형태들이 설명되었다. 이들 및 다른 실시형태들은 다음 청구항들의 범위 이내이다.

Claims (30)

  1. 비디오 데이터를 엔트로피 인코딩하는 방법으로서,
    상기 비디오 데이터의 블록을 상기 블록의 코딩 모드에 적어도 부분적으로 기초하여 샘플들의 복수의 그룹들로 파티셔닝하는 단계; 및
    적어도 하나의 그룹에서의 상기 샘플들의 모두가 미리 결정된 값과 동일한 값을 가지는 것에 응답하여 상기 복수의 그룹들 중 적어도 하나에 대해 그룹-방식 스킵을 수행하는 것을 통해서 상기 블록을 엔트로피 인코딩하는 단계를 포함하며,
    상기 그룹-방식 스킵은 상기 적어도 하나의 그룹과 연관된 상기 샘플들을 인코딩하는 것을 억제하는 것을 포함하는, 비디오 데이터를 엔트로피 인코딩하는 방법.
  2. 제 1 항에 있어서,
    상기 블록의 샘플들은 복수의 칼라 좌표들을 포함하며,
    상기 비디오 데이터의 상기 블록의 상기 파티셔닝은,
    상기 블록의 샘플들을 그들의 칼라 좌표들에 적어도 부분적으로 기초하여 분리하는 단계; 및
    각각의 칼라 좌표에 대해, 동일한 칼라 좌표를 가지는 상기 블록의 샘플들을 상기 샘플들의 복수의 그룹들로 파티셔닝하는 단계를 포함하는, 비디오 데이터를 엔트로피 인코딩하는 방법.
  3. 제 2 항에 있어서,
    상기 블록의 상기 파티셔닝은 각각의 칼라 좌표에 대해, 상기 블록의 상기 코딩 모드가 블록 예측 모드 또는 차분 펄스-코드 변조 (DPCM) 모드인 것에 응답하여, 상기 블록을 동일한 개수의 샘플들을 가지는 복수의 그룹들로 파티셔닝하는 단계를 더 포함하는, 비디오 데이터를 엔트로피 인코딩하는 방법.
  4. 제 3 항에 있어서,
    상기 블록의 상기 엔트로피 인코딩은, 상기 블록에서의 동일한 칼라 좌표와 연관된 샘플들의 모두가 상기 미리 결정된 값과 동일한 값을 가지는 것에 응답하여, 상기 블록에서의 동일한 칼라 좌표를 가지는 상기 샘플들에 대해 블록-방식 스킵을 수행하는 단계를 더 포함하며,
    상기 블록-방식 스킵은 상기 블록에서 동일한 칼라 좌표와 연관된 상기 샘플들을 인코딩하는 것을 억제하는 것을 포함하는, 비디오 데이터를 엔트로피 인코딩하는 방법.
  5. 제 2 항에 있어서,
    상기 미리 결정된 값과 동일하지 않은 적어도 하나의 샘플을 가지는 상기 블록의 각각의 그룹에 대해, 상기 블록의 상기 엔트로피 인코딩은,
    상기 그룹에서 각각의 샘플을 코딩하기 위한 비트들의 수를 표시하는, 상기 그룹에 대한 접두부 값을 인코딩하는 단계; 및
    상기 그룹의 각각의 샘플의 값들을 포함하는, 상기 그룹에 대한 접미부를 인코딩하는 단계를 더 포함하며,
    상기 그룹의 각각의 샘플은 동일한 개수의 비트들로 인코딩되는, 비디오 데이터를 엔트로피 인코딩하는 방법.
  6. 제 2 항에 있어서,
    상기 블록의 상기 파티셔닝은 각각의 칼라 좌표에 대해, 상기 블록의 상기 코딩 모드가 변환 모드인 것에 응답하여 상기 블록을 제 1 그룹 및 제 2 그룹으로 파티셔닝하는 단계를 더 포함하며,
    상기 제 1 그룹 및 제 2 그룹은 상이한 개수의 샘플들을 가지는, 비디오 데이터를 엔트로피 인코딩하는 방법.
  7. 제 6 항에 있어서,
    적어도 하나의 변환을 상기 블록에 적용하는 것을 통해서 복수의 샘플들을 생성하는 단계로서, 상기 샘플들의 각각은 대응하는 주파수와 연관된 상이한 주파수 계수를 나타내는, 상기 복수의 샘플들을 생성하는 단계; 및
    대응하는 주파수 범위 내에 있는 주파수들과 연관된 샘플들을 수집함으로써, 각각의 그룹을 형성하는 단계를 더 포함하는, 비디오 데이터를 엔트로피 인코딩하는 방법.
  8. 제 7 항에 있어서,
    최저 주파수들과 연관된 샘플들의 그룹은 최고 주파수들과 연관된 샘플들의 그룹보다 더 적은 샘플들을 포함하는, 비디오 데이터를 엔트로피 인코딩하는 방법.
  9. 제 7 항에 있어서,
    연관된 주파수들에 기초하여 상기 샘플들을 최저 주파수로부터 최고 주파수까지 순서정렬하는 단계;
    미리 결정된 값과 동일하지 않은 상기 최고 주파수와 연관된 샘플을 결정하는 단계; 및
    상기 미리 결정된 값과 동일하지 않은 상기 최고 주파수와 연관된 상기 샘플의 위치를 시그널링하는 단계를 더 포함하는, 비디오 데이터를 엔트로피 인코딩하는 방법.
  10. 제 9 항에 있어서,
    다음 방정식을 통해서, 상기 미리 결정된 값과 동일하지 않은 최고 주파수와 연관된 상기 샘플의 값을 조정하는 단계를 더 포함하며:
    Cnew = (|C|-1)*sign(C),
    여기서, Cnew 는 조정된 값이고, C 는 상기 미리 결정된 값과 동일하지 않은 최고 주파수와 연관된 상기 샘플의 값이고, 그리고 sign(C) 는 상기 미리 결정된 값과 동일하지 않은 최고 주파수와 연관된 상기 샘플의 부호 값인, 비디오 데이터를 엔트로피 인코딩하는 방법.
  11. 제 10 항에 있어서,
    상기 조정된 값 Cnew 이 제로와 동일할 때 상기 미리 결정된 값과 동일하지 않은 최고 주파수와 연관된 상기 샘플의 부호 값을 시그널링하는 단계를 더 포함하는, 비디오 데이터를 엔트로피 인코딩하는 방법.
  12. 비디오 데이터를 엔트로피 인코딩하는 디바이스로서,
    상기 비디오 데이터를 저장하도록 구성된 메모리; 및
    상기 메모리와 통신하는 프로세서를 포함하며,
    상기 프로세서는,
    상기 비디오 데이터의 블록을 상기 블록의 코딩 모드에 적어도 부분적으로 기초하여 샘플들의 복수의 그룹들로 파티셔닝하고; 그리고
    적어도 하나의 그룹에서의 상기 샘플들의 모두가 미리 결정된 값과 동일한 값을 가지는 것에 응답하여 상기 복수의 그룹들 중 적어도 하나에 대해 그룹-방식 스킵을 수행하는 것을 통해서 상기 블록을 엔트로피 인코딩하도록
    구성되며,
    상기 그룹-방식 스킵은 상기 적어도 하나의 그룹에서의 상기 샘플들을 인코딩하는 것을 억제하는 것을 포함하는, 비디오 데이터를 엔트로피 인코딩하는 디바이스.
  13. 제 12 항에 있어서,
    상기 블록의 샘플들은 복수의 칼라 좌표들을 포함하며,
    상기 프로세서는,
    상기 블록의 샘플들을 그들의 칼라 좌표들에 적어도 부분적으로 기초하여 분리하고; 그리고
    각각의 칼라 좌표에 대해, 동일한 칼라 좌표를 가지는 상기 블록의 샘플들을 상기 샘플들의 복수의 그룹들로 파티셔닝하도록
    더 구성되는, 비디오 데이터를 엔트로피 인코딩하는 디바이스.
  14. 제 12 항에 있어서,
    상기 프로세서는 각각의 칼라 좌표에 대해, 상기 블록의 코딩 모드가 블록 예측 모드 또는 차분 펄스-코드 변조 (DPCM) 모드인 것에 응답하여, 상기 블록을 동일한 개수의 샘플들을 가지는 상기 복수의 그룹들로 파티셔닝하도록 더 구성되는, 비디오 데이터를 엔트로피 인코딩하는 디바이스.
  15. 제 14 항에 있어서,
    상기 프로세서는 상기 블록에서의 동일한 칼라 좌표와 연관된 샘플들의 모두가 상기 미리 결정된 값과 동일한 값을 가지는 것에 응답하여, 상기 블록에서의 동일한 칼라 좌표를 가지는 상기 샘플들에 대해 블록-방식 스킵을 수행하도록 더 구성되며,
    상기 블록-방식 스킵은 블록-방식 스킵 값을 시그널링하고, 상기 블록에서 동일한 칼라 좌표와 연관된 상기 샘플들을 인코딩하는 것을 억제하는 것을 포함하는, 비디오 데이터를 엔트로피 인코딩하는 디바이스.
  16. 제 13 항에 있어서,
    상기 미리 결정된 값과 동일하지 않은 적어도 하나의 샘플을 가지는 상기 블록의 각각의 그룹에 대해, 상기 프로세서는,
    상기 그룹에서 각각의 샘플을 코딩하기 위한 비트들의 수를 표시하는, 상기 그룹에 대한 접두부 값을 인코딩하고; 그리고
    상기 그룹의 각각의 샘플의 값들을 포함하는, 상기 그룹에 대한 접미부를 인코딩하도록
    더 구성되며,
    상기 그룹의 각각의 샘플은 동일한 개수의 비트들로 인코딩되는, 비디오 데이터를 엔트로피 인코딩하는 디바이스.
  17. 제 13 항에 있어서,
    상기 프로세서는 각각의 칼라 좌표에 대해, 상기 블록의 상기 코딩 모드가 변환 모드인 것에 응답하여 상기 블록을 제 1 그룹 및 제 2 그룹으로 파티셔닝하도록 더 구성되며,
    상기 제 1 그룹 및 제 2 그룹은 상이한 개수의 샘플들을 가지는, 비디오 데이터를 엔트로피 인코딩하는 디바이스.
  18. 제 17 항에 있어서,
    상기 프로세서는,
    적어도 하나의 변환을 상기 블록에 적용하는 것을 통해서 복수의 샘플들을 생성하는 것으로서, 상기 샘플들의 각각은 대응하는 주파수와 연관된 상이한 주파수 계수를 나타내는, 상기 복수의 샘플들을 생성하고; 그리고
    대응하는 주파수 범위 내에 있는 주파수들과 연관된 샘플들을 수집함으로써 각각의 그룹을 형성하도록
    더 구성되는, 비디오 데이터를 엔트로피 인코딩하는 디바이스.
  19. 제 18 항에 있어서,
    최저 주파수들과 연관된 샘플들의 그룹은 최고 주파수들과 연관된 샘플들의 그룹보다 더 적은 샘플들을 포함하는, 비디오 데이터를 엔트로피 인코딩하는 디바이스.
  20. 제 18 항에 있어서,
    상기 프로세서는,
    연관된 주파수들에 기초하여 상기 샘플들을 최저 주파수로부터 최고 주파수까지 순서정렬하고;
    미리 결정된 값과 동일하지 않은 상기 최고 주파수와 연관된 샘플을 결정하고; 그리고
    상기 미리 결정된 값과 동일하지 않은 상기 최고 주파수와 연관된 상기 샘플의 위치를 시그널링하도록
    더 구성되는, 비디오 데이터를 엔트로피 인코딩하는 디바이스.
  21. 비디오 데이터를 엔트로피 디코딩하는 방법으로서,
    상기 비디오 데이터의 블록을 나타내는 비트스트림을 수신하는 단계로서, 상기 블록은 샘플들의 복수의 그룹들을 포함하며, 상기 비트스트림은 상기 블록의 샘플들의 대응하는 그룹이 상기 비트스트림에 포함되어 있지 않다는 것을 표시하는 적어도 하나의 그룹-방식 스킵 값을 포함하는, 상기 비트스트림을 수신하는 단계;
    상기 그룹-방식 스킵 값에 적어도 부분적으로 기초하여 상기 비트스트림을 엔트로피 디코딩하는 것을 통해서 상기 샘플들의 복수의 그룹들을 생성하는 단계; 및
    상기 샘플들의 복수의 그룹들 및 상기 블록의 코딩 모드에 적어도 부분적으로 기초하여 상기 블록을 복원하는 단계를 포함하는, 비디오 데이터를 엔트로피 디코딩하는 방법.
  22. 제 21 항에 있어서,
    상기 블록의 샘플들은 복수의 칼라 좌표들을 포함하며,
    상기 방법은,
    상기 샘플들의 복수의 그룹들을 그들의 칼라 좌표들에 적어도 부분적으로 기초하여 그룹핑하는 단계; 및
    상기 샘플들의 복수의 그룹들을 결합하는 것을 통해서 상기 블록을 복원하는 단계를 더 포함하는, 비디오 데이터를 엔트로피 디코딩하는 방법.
  23. 제 21 항에 있어서,
    상기 블록의 상기 코딩 모드가 변환 모드인 것에 응답하여 적어도 하나의 역방향 변환을 상기 샘플들에 적용하는 단계를 더 포함하며,
    상기 샘플들의 복수의 그룹들 중 제 1 그룹은 상기 샘플들의 복수의 그룹들 중 제 2 그룹과는 상이한 개수의 샘플들을 가지는, 비디오 데이터를 엔트로피 디코딩하는 방법.
  24. 제 21 항에 있어서,
    미리 결정된 값을 갖도록, 상기 그룹-방식 스킵 값에 대응하는 상기 샘플들의 그룹에서의 상기 샘플들의 각각을 생성하는 단계를 더 포함하는, 비디오 데이터를 엔트로피 디코딩하는 방법.
  25. 제 24 항에 있어서,
    상기 미리 결정된 값과 동일하지 않은 최고 주파수와 연관된 샘플의 위치를 수신하는 단계; 및
    상기 미리 결정된 값을 갖도록, 상기 미리 결정된 값과 동일하지 않은 상기 최고 주파수보다 더 높은 주파수들과 연관된 상기 샘플들의 복수의 그룹들의 샘플들을 생성하는 단계를 더 포함하는, 비디오 데이터를 엔트로피 디코딩하는 방법.
  26. 비디오 데이터를 엔트로피 디코딩하는 디바이스로서,
    상기 비디오 데이터의 블록을 나타내는 비트스트림 중 적어도 일부분을 저장하도록 구성된 메모리로서, 상기 블록은 샘플들의 복수의 그룹들을 포함하며, 상기 비트스트림은 상기 블록의 샘플들의 대응하는 그룹이 상기 비트스트림에 포함되어 있지 않다는 것을 표시하는 적어도 하나의 그룹-방식 스킵 값을 포함하는, 상기 메모리; 및
    상기 메모리와 통신하는 프로세서를 포함하며,
    상기 프로세서는,
    상기 그룹-방식 스킵 값에 적어도 부분적으로 기초하여 상기 비트스트림을 엔트로피 디코딩하는 것을 통해서 상기 샘플들의 복수의 그룹들을 생성하고; 그리고
    상기 샘플들의 복수의 그룹들 및 상기 블록의 코딩 모드에 적어도 부분적으로 기초하여 상기 블록을 복원하도록
    구성되는, 비디오 데이터를 엔트로피 디코딩하는 디바이스.
  27. 제 26 항에 있어서,
    상기 블록의 샘플들은 복수의 칼라 좌표들을 포함하며,
    상기 프로세서는,
    상기 샘플들의 복수의 그룹들을 그들의 칼라 좌표들에 적어도 부분적으로 기초하여 그룹핑하고; 그리고
    상기 샘플들의 복수의 그룹들을 결합하는 것을 통해서 상기 블록을 복원하도록
    더 구성되는, 비디오 데이터를 엔트로피 디코딩하는 디바이스.
  28. 제 26 항에 있어서,
    상기 프로세서는 상기 블록의 코딩 모드가 변환 모드인 것에 응답하여 적어도 하나의 역방향 변환을 상기 샘플들에 적용하도록 더 구성되며,
    상기 샘플들의 복수의 그룹들 중 제 1 그룹은 상기 샘플들의 복수의 그룹들 중 제 2 그룹과는 상이한 개수의 샘플들을 가지는, 비디오 데이터를 엔트로피 디코딩하는 디바이스.
  29. 제 26 항에 있어서,
    상기 프로세서는, 미리 결정된 값을 갖도록, 상기 그룹-방식 스킵 값에 대응하는 상기 샘플들의 그룹에서의 상기 샘플들의 각각을 생성하도록 더 구성되는, 비디오 데이터를 엔트로피 디코딩하는 디바이스.
  30. 제 29 항에 있어서,
    상기 프로세서는,
    상기 미리 결정된 값과 동일하지 않은 최고 주파수와 연관된 샘플의 위치를 수신하고; 그리고
    상기 미리 결정된 값을 갖도록, 상기 미리 결정된 값과 동일하지 않은 상기 최고 주파수보다 더 높은 주파수들과 연관된 상기 샘플들의 복수의 그룹들의 샘플들을 생성하도록
    더 구성되는, 비디오 데이터를 엔트로피 디코딩하는 디바이스.
KR1020167034350A 2014-06-09 2015-06-09 디스플레이 스트림 압축 (dsc) 을 위한 엔트로피 코딩 기법들 KR20170016849A (ko)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201462009838P 2014-06-09 2014-06-09
US62/009,838 2014-06-09
US201462034084P 2014-08-06 2014-08-06
US62/034,084 2014-08-06
US201562146060P 2015-04-10 2015-04-10
US62/146,060 2015-04-10
US14/733,722 2015-06-08
US14/733,722 US9877048B2 (en) 2014-06-09 2015-06-08 Entropy coding techniques for display stream compression (DSC)
PCT/US2015/034837 WO2015191535A2 (en) 2014-06-09 2015-06-09 Entropy coding techniques for display stream compression (dsc)

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020197007542A Division KR102229045B1 (ko) 2014-06-09 2015-06-09 디스플레이 스트림 압축 (dsc) 을 위한 엔트로피 코딩 기법들

Publications (1)

Publication Number Publication Date
KR20170016849A true KR20170016849A (ko) 2017-02-14

Family

ID=54770605

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020167034350A KR20170016849A (ko) 2014-06-09 2015-06-09 디스플레이 스트림 압축 (dsc) 을 위한 엔트로피 코딩 기법들
KR1020197007542A KR102229045B1 (ko) 2014-06-09 2015-06-09 디스플레이 스트림 압축 (dsc) 을 위한 엔트로피 코딩 기법들

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020197007542A KR102229045B1 (ko) 2014-06-09 2015-06-09 디스플레이 스트림 압축 (dsc) 을 위한 엔트로피 코딩 기법들

Country Status (8)

Country Link
US (1) US9877048B2 (ko)
EP (1) EP3152905A2 (ko)
JP (1) JP6518701B2 (ko)
KR (2) KR20170016849A (ko)
CN (1) CN106416248B (ko)
BR (1) BR112016028604A8 (ko)
CA (1) CA2951384C (ko)
WO (1) WO2015191535A2 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180069818A (ko) * 2015-10-21 2018-06-25 퀄컴 인코포레이티드 넌-4:4:4 크로마 서브-샘플링의 디스플레이 스트림 압축 (dsc) 을 위한 엔트로피 코딩 기법들
KR20200096862A (ko) * 2019-02-06 2020-08-14 소니 주식회사 잔차 레벨 데이터의 위치 의존적 엔트로피 코딩을 위한 임베디드 코덱(ebc) 회로

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160044314A1 (en) * 2014-08-08 2016-02-11 Qualcomm Incorporated System and method for reusing transform structure for multi-partition transform
US9955168B2 (en) * 2015-02-11 2018-04-24 Arris Enterprises Llc Constraining number of bits generated relative to VBV buffer
US10448024B2 (en) * 2016-01-11 2019-10-15 Qualcomm Incorporated System and methods for calculating distortion in display stream compression (DSC)
US10542267B2 (en) * 2016-01-21 2020-01-21 Samsung Display Co., Ltd. Classification preserving image transform compression
US10666984B2 (en) * 2016-03-08 2020-05-26 Qualcomm Incorporated Apparatus and method for vector-based entropy coding for display stream compression
US10743032B2 (en) 2017-05-24 2020-08-11 Qualcomm Incorporated Substream multiplexing for display stream compression
KR102364942B1 (ko) 2017-07-10 2022-02-18 프라운호퍼-게젤샤프트 추르 푀르데룽 데어 안제반텐 포르슝 에 파우 비트-플래인 코딩
US10250899B1 (en) 2017-09-22 2019-04-02 Qualcomm Incorporated Storing and retrieving high bit depth image data
US10547843B1 (en) 2018-07-24 2020-01-28 Samsung Display Co., Ltd. Prefix coding method for high-throughput entropy coder in display interface compression
US10904532B2 (en) * 2019-05-20 2021-01-26 Samsung Display Co., Ltd. Differential prefix coding for high throughput entropy coder in display compression
US11398833B2 (en) * 2019-10-02 2022-07-26 Apple Inc. Low-latency encoding using a bypass sub-stream and an entropy encoded sub-stream
JP7193679B2 (ja) * 2019-10-11 2022-12-20 ベイジン ダジア インターネット インフォメーション テクノロジー カンパニー リミテッド 4:4:4彩度フォーマットにおける映像符号化の方法、電子装置、非一時的なコンピュータ可読記憶媒体及びコンピュータプログラム
CN113473139A (zh) * 2020-03-31 2021-10-01 华为技术有限公司 一种图像处理方法和图像处理装置
CN112437300B (zh) * 2020-11-23 2022-04-15 武汉理工大学 一种基于自适应区间重叠因子的分布式视频编码方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100196838B1 (ko) 1995-12-23 1999-06-15 전주범 블럭벌 상관 관계에 의한 부호화 장치
WO2003043346A1 (en) 2001-11-16 2003-05-22 Ntt Docomo, Inc. Image encoding method, image decoding method, image encoder, image decode, program, computer data signal, and image transmission system
JP4240283B2 (ja) * 2002-10-10 2009-03-18 ソニー株式会社 復号装置及び復号方法
US7724827B2 (en) * 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
US8064520B2 (en) * 2003-09-07 2011-11-22 Microsoft Corporation Advanced bi-directional predictive coding of interlaced video
KR100612015B1 (ko) * 2004-07-22 2006-08-11 삼성전자주식회사 컨텍스트 적응형 이진 산술 부호화 방법 및 그 장치
JP2006295796A (ja) * 2005-04-14 2006-10-26 Nec Electronics Corp 画像データ復号装置及び画像データ復号方法
US8483282B2 (en) * 2007-10-12 2013-07-09 Qualcomm, Incorporated Entropy coding of interleaved sub-blocks of a video block
US8705622B2 (en) * 2008-04-10 2014-04-22 Qualcomm Incorporated Interpolation filter support for sub-pixel resolution in video coding
KR20090129926A (ko) * 2008-06-13 2009-12-17 삼성전자주식회사 영상 부호화 방법 및 그 장치, 영상 복호화 방법 및 그 장치
EP2579598A4 (en) * 2010-06-07 2014-07-23 Humax Co Ltd METHOD FOR ENCODING / DECODING A HIGH RESOLUTION IMAGE AND DEVICE IMPLEMENTING SAID METHOD
CN103096053B (zh) * 2011-11-04 2015-10-07 华为技术有限公司 一种变换模式的编解码方法和装置
US9813711B2 (en) * 2012-10-03 2017-11-07 Avago Technologies General Ip (Singapore) Pte. Ltd. Hybrid transform-based compression
US10812829B2 (en) * 2012-10-03 2020-10-20 Avago Technologies International Sales Pte. Limited 2D block image encoding
US10091512B2 (en) * 2014-05-23 2018-10-02 Futurewei Technologies, Inc. Advanced screen content coding with improved palette table and index map coding methods

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180069818A (ko) * 2015-10-21 2018-06-25 퀄컴 인코포레이티드 넌-4:4:4 크로마 서브-샘플링의 디스플레이 스트림 압축 (dsc) 을 위한 엔트로피 코딩 기법들
KR20200096862A (ko) * 2019-02-06 2020-08-14 소니 주식회사 잔차 레벨 데이터의 위치 의존적 엔트로피 코딩을 위한 임베디드 코덱(ebc) 회로

Also Published As

Publication number Publication date
JP6518701B2 (ja) 2019-05-22
JP2017523656A (ja) 2017-08-17
BR112016028604A2 (pt) 2017-08-22
CN106416248B (zh) 2019-11-01
CA2951384A1 (en) 2015-12-17
BR112016028604A8 (pt) 2021-07-13
US20150358645A1 (en) 2015-12-10
KR102229045B1 (ko) 2021-03-16
WO2015191535A3 (en) 2016-02-04
CA2951384C (en) 2019-08-06
EP3152905A2 (en) 2017-04-12
CN106416248A (zh) 2017-02-15
WO2015191535A2 (en) 2015-12-17
US9877048B2 (en) 2018-01-23
KR20190029796A (ko) 2019-03-20

Similar Documents

Publication Publication Date Title
KR102229045B1 (ko) 디스플레이 스트림 압축 (dsc) 을 위한 엔트로피 코딩 기법들
CA3000020C (en) Entropy coding techniques for display stream compression (dsc) of non-4:4:4 chroma sub-sampling
EP3284253B1 (en) Rate-constrained fallback mode for display stream compression
JP2018531556A6 (ja) 非4:4:4クロマサブサンプリングのディスプレイストリーム圧縮(dsc)のためのエントロピーコーディング技法
US10631005B2 (en) System and method for coding in block prediction mode for display stream compression (DSC)
KR101993966B1 (ko) 디스플레이 스트림 압축 (dsc) 을 위한 평탄도 검출을 위한 시스템 및 방법
KR20170136526A (ko) 디스플레이 스트림 압축을 위한 복잡한 영역 검출
KR102175662B1 (ko) 디스플레이 스트림 압축 (dsc) 에서의 왜곡을 계산하기 위한 시스템 및 방법들
CA3012869A1 (en) Apparatus and method for vector-based entropy coding for display stream compression
US9843816B2 (en) System and method for coding in pattern mode for display stream compression (DSC)
US10123045B2 (en) Modification to block size for transform mode in display stream compression

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E601 Decision to refuse application
A107 Divisional application of patent