KR20230107627A - 후처리 제어를 이용한 비디오 디코딩 - Google Patents

후처리 제어를 이용한 비디오 디코딩 Download PDF

Info

Publication number
KR20230107627A
KR20230107627A KR1020237019567A KR20237019567A KR20230107627A KR 20230107627 A KR20230107627 A KR 20230107627A KR 1020237019567 A KR1020237019567 A KR 1020237019567A KR 20237019567 A KR20237019567 A KR 20237019567A KR 20230107627 A KR20230107627 A KR 20230107627A
Authority
KR
South Korea
Prior art keywords
stream
decoder
resolution
video output
data
Prior art date
Application number
KR1020237019567A
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 KR20230107627A publication Critical patent/KR20230107627A/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/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/002Image coding using neural networks
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G3/00Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
    • G09G3/20Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters
    • G09G3/2007Display of intermediate tones
    • G09G3/2044Display of intermediate tones using dithering
    • 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/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/33Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the spatial domain
    • 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)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Computer Hardware Design (AREA)

Abstract

비디오 인코딩 방법이 제공된다. 방법은 렌더링 플랫폼으로부터 원하는 비디오 출력 해상도의 표시를 수신하는 단계를 포함한다. 방법은 또한, 하나 이상의 수신된 비디오 스트림들을 재구성된 비디오 아웃 스트림으로 디코딩하는 단계를 포함하며, 후처리가 재구성된 비디오 스트림의 출력 이전에 적용된다. 방법은, 원하는 비디오 출력 해상도가 재구성된 비디오 출력 스트림 해상도와 상이할 때, 후처리 이전에 재구성된 비디오 출력 스트림 해상도로부터 원하는 비디오 출력 해상도로의 샘플 변환을 적용하는 단계를 더 포함한다.

Description

후처리 제어를 이용한 비디오 디코딩
본 발명은 비제한적인 예로서 비디오, 이미지, 초분광(hyperspectral) 이미지, 오디오, 포인트 클라우드(point cloud), 3DoF/6DoF 및 볼륨메트릭 신호(volumetric signal)와 같은 신호를 처리하는 방법에 관한 것이다. 데이터를 처리하는 것은 계층적(hierarchical) (티어-기반(tier-based)) 코딩 포맷의 맥락에서 신호를 획득, 도출, 인코딩, 출력, 수신 및 재구성하는 것을 포함할 수 있지만, 이에 한정되는 것은 아니고, 신호는 후속하여 더 높은 품질 레벨에서 티어들에서 디코딩되고, 재구성 데이터의 후속 티어들 ("에셜론(echelon)들")을 레버리징 및 조합하는 것을 포함할 수 있다. 신호의 상이한 티어들은, 단일 비트스트림에서 다중화될 수도 있거나 다중화되지 않을 수도 있는 상이한 베이스 스트림들에 의해, 상이한 코딩 포맷들 (예를 들어, 비제한적인 예들, 종래의 단일-계층 DCT-기반 코덱들, ISO/IEC MPEG-5 Part 2 Low Complexity Enhancement Video Coding SMPTE VC-6 2117 등)로 코딩될 수 있다.
ISO/IEC MPEG-5 Part 2 LCEVC(이하 "LCEVC") 또는 SMPTE VC-6 2117(이하 "VC-6")과 같은 티어 기반 코딩 포맷들에서, 신호는 데이터의 다수의 "에셜론들"(또한 "계층적 티어(hierarchical tier)들"로 알려짐)에서 분해되며, 각각은 원래 신호의 샘플링 레이트에서 가장 높은 에셜론으로부터, 전형적으로 원래 신호보다 더 낮은 샘플링 레이트를 갖는 가장 낮은 에셜론까지 신호의 "품질 레벨"("LoQ")에 대응한다. 비제한적인 예에서, 신호가 비디오 스트림의 프레임일 때, 가장 낮은 에셜론은 원래 프레임의 썸네일, 또는 심지어 단일 픽처 엘리먼트(picture element)일 수 있다. 다른 에셜론은 최종 출력을 생성하기 위해 재구성된 렌디션(rendition)에 적용할 정정(correction)에 대한 정보를 함유한다. 에셜론들은 잔차 정보, 예를 들어, 특정 품질 레벨에서의 원래 신호의 버전과 동일한 품질 레벨에서의 신호의 재구성된 버전 사이의 차이에 기초할 수 있다. 최저 에셜론은 잔차 정보를 포함하지 않을 수 있지만, 원래 신호의 최저 샘플링을 포함할 수 있다. 주어진 품질 레벨에서의 디코딩된 신호는 먼저 최저 에셜론을 디코딩하고(따라서, 제1 - 최저 - 품질 레벨에서의 신호를 재구성하고), 이어서 제2 - 다음 더 높은 품질 레벨에서의 신호의 렌디션을 예측하고, 이어서 재구성 데이터의 대응하는 제2 에셜론(제2 품질 레벨에서의 "잔차 데이터"라고도 함)을 디코딩하고, 이어서 제2 - 더 높은 품질 레벨에서의 신호의 렌디션을 재구성하는 등, 주어진 품질 레벨을 재구성하기까지 예측을 재구성 데이터와 조합한다. 신호를 재구성하는 것은 잔차 데이터를 디코딩하는 것 및 이를 사용하여 더 낮은 품질 레벨로부터의 신호의 버전으로부터 유도되는 특정 품질 레벨에서의 버전을 정정하는 것을 포함할 수 있다. 데이터의 상이한 에셜론들은 상이한 코딩 포맷들을 사용하여 코딩될 수 있고, 품질의 상이한 레벨들은 상이한 샘플링 레이트들 (예를 들어, 이미지 또는 비디오 신호들의 경우에 대해, 해상도들)을 가질 수 있다. 후속 에셜론들은 신호의 동일한 신호 해상도 (즉, 샘플링 레이트), 또는 점진적으로 더 높은 신호 해상도를 지칭할 수 있다.
신호의 특정 품질 레벨로의 재구성 후 및 신호를 디바이스의 디스플레이 상에 렌더링(rendering)하기 전에, 최상의 시각적 결과들을 달성하기 위해 재구성된 신호에 후처리(post-processing)(예를 들어, 디더링(dithering))를 적용하는 것이 일반적으로 유리한 것으로 고려된다. 특정 애플리케이션들에서, 디스플레이를 위한 신호가 특정 해상도를 갖는 것이 바람직할 수 있다. 특정 해상도를 결정한 후, 재구성된 신호는 원하는 해상도를 달성하기 위해 샘플 변환(sample conversion)(즉, 업샘플링 또는 다운샘플링)을 거칠 수 있다. 그러나, 후처리 및 샘플 변환을 조합하는 것은 렌더링된 신호에 대한 원하지 않는 효과들을 초래할 수 있다. 따라서, 이러한 상황들에서 렌더링된 신호를 개선하는 기술이 요구된다.
본 발명의 양태들 및 변형예들이 첨부된 청구항들에 제시된다.
청구되지 않은 특정 양태들은 이하의 상세한 설명에서 더 설명된다.
도 1은 계층적 인코딩 및 디코딩 프로세스의 하이 레벨 개략도를 도시한다.
도 2는 계층적 탈구성(deconstruction) 프로세스의 하이 레벨 개략도를 도시한다.
도 3은 계층적 탈구성 프로세스의 대안적인 하이 레벨 개략도를 도시한다.
도 4는 티어화된(tiered) 출력들의 잔차들을 인코딩하기에 적합한 인코딩 프로세스의 하이 레벨 개략도를 도시한다.
도 5는 도 4로부터의 각각의 출력 레벨을 디코딩하기에 적합한 계층적 디코딩 프로세스의 하이 레벨 개략도를 도시한다.
도 6은 계층적 코딩 기술의 인코딩 프로세스의 하이 레벨 개략도를 도시한다.
도 7은 도 6의 출력을 디코딩하기에 적합한 디코딩 프로세스의 하이 레벨 개략도를 도시한다.
도 8은 비디오 스트림을 렌더링하기 전에 비디오 스트림을 후처리 및 샘플 변환하기 위한 기술을 블록도로 도시한다.
도 9는 비디오 스트림을 렌더링하기 전에 비디오 스트림을 후처리 및 샘플 변환하기 위한 방법을 흐름도로 도시한다.
도 10은 도 7의 디코딩 프로세스에 구현되고, 도 8 및 도 9에 입증된 후처리 및 샘플 변환을 하이 레벨 개략도로 도시한다.
도 11은 도 8 및 도 9에 개략된 방법들을 수행하기 위한 디코더 구현을 도시한다.
도 12는 실시예들에 따른 장치의 예의 블록도를 도시한다.
본 명세서에 설명된 특정 예들은 신호들을 인코딩하기 위한 방법들에 관한 것이다. 데이터를 처리하는 것은 데이터를 획득, 도출, 출력, 수신 및 재구성하는 것을 포함할 수 있지만, 이에 한정되지 않는다.
본 발명의 일 양태에 따르면, 비디오 인코딩 방법이 제공된다. 방법은 렌더링 플랫폼으로부터 원하는 비디오 출력 속성의 표시를 수신하는 단계를 포함한다. 하나 이상의 수신된 비디오 스트림들을 재구성된 비디오 아웃 스트림으로 디코딩하고, 후처리는 재구성된 비디오 스트림의 출력 이전에 적용된다. 방법은, 원하는 비디오 출력 속성이 재구성된 비디오 출력 스트림 속성과 상이한 경우, 후처리 이전에 재구성된 비디오 출력 스트림 속성으로부터 원하는 비디오 출력 속성으로 샘플 변환을 적용하는 단계를 더 포함한다. 속성은 공간 해상도 및/또는 비트 심도(bit-depth)를 포함할 수 있다.
후처리는 특정 애플리케이션들에 후처리를 조정하기 위해 동적으로 그리고 콘텐츠 적응적으로 적용될 수 있다.
샘플 변환은 재구성된 비디오 출력 스트림 해상도를 원하는 출력 해상도로 업샘플링하는 것을 포함할 수 있다. 업샘플링은 맞춤형 해상도 비율들을 허용하기 위해 비선형 업샘플링, 신경망 업샘플링 또는 분수(fractional) 업샘플링 중 하나를 포함할 수 있다.
후처리는 디더링을 포함한다. 방법은 디더링 유형 및 디더링 강도 중 하나 이상을 수신하는 단계를 포함한다. 디더링 강도는 콘트라스트(contrast)의 결정 또는 프레임 콘텐츠의 결정 중 적어도 하나에 기초하여 설정될 수 있다.
방법은 디더를 적용하기 시작하기 위해 베이스 양자화 파라미터 - QP - 값을 나타내는 파라미터를 수신하는 단계를 포함한다.
방법은 디더를 포화시킬 베이스 QP 값을 나타내는 파라미터를 수신하는 단계를 포함한다.
방법은 디더링을 인에이블 또는 디스에이블하기 위한 입력을 수신하는 단계를 포함한다. 여기서 입력은 이진 입력일 수 있지만 다른 형태의 입력들이 사용될 수 있다.
위에서 상세히 설명된 방법을 수행하도록 구성된 비디오 디코딩을 위한 시스템 또는 장치가 제공된다.
디코딩은 AV1, VVC, AVC 및 LCEVC 중 하나 이상을 포함하는 하나 이상의 디코더들을 사용하여 달성될 수 있다.
하나 이상의 디코더는 네이티브(native)/OS 기능들을 사용하여 구현될 수 있다.
시스템 또는 장치는 디코더 통합 계층 및 하나 이상의 디코더 플러그인(plug-in)을 포함한다. 제어 인터페이스는 디코더 통합 계층의 일부를 형성할 수 있다. 하나 이상의 디코더 플러그인은 하나 이상의 디코더에 대한 인터페이스를 제공할 수 있다.
후처리는 후처리 모듈을 사용하여 달성될 수 있고 샘플 변환은 샘플 변환 모듈을 사용하여 달성될 수 있으며, 후처리 모듈 또는 샘플 변환 모듈 중 적어도 하나는 디코더 통합 계층 및 하나 이상의 디코더 플러그인들 중 하나 이상의 부분을 형성한다.
하나 이상의 디코더는 비디오 스트림을 디코딩하기 위한 베이스 디코드 계층을 구현하기 위한 디코더 및 인핸스먼트 디코드 계층을 구현하기 위한 인핸스먼트 디코더(enhancement decoder)를 포함할 수 있다. 베이스 디코드 계층은 베이스 디코더를 포함할 수 있다. 베이스 디코더는 하드웨어 가속화될 수 있고 네이티브(native) 또는 운영 체제 기능을 사용하여 구현되는 레거시 코덱을 포함할 수 있다. 인핸스먼트 디코더는 LCEVC 디코더를 포함할 수 있다.
인핸스먼트 디코더는 인코딩된 인핸스먼트 스트림을 수신하도록 구성될 수 있다. 인핸스먼트 디코더는 또한, 잔차 데이터의 하나 이상의 계층들을 획득하기 위해 인코딩된 인핸스먼트 스트림을 디코딩하도록 구성될 수 있다. 잔차 데이터의 하나 이상의 계층들은 디코딩된 비디오 스트림으로부터 도출된 데이터와 원래의 입력 비디오 스트림으로부터 도출된 데이터의 비교에 기초하여 생성된다.
디코더 통합 계층은, 베이스 디코드 계층으로부터의 디코딩된 비디오 스트림 및 인핸스먼트 디코드 계층으로부터의 잔차 데이터의 하나 이상의 계층들을 사용하여 재구성된 비디오 출력 스트림을 생성하기 위해 하나 이상의 디코더 플러그인들 및 인핸스먼트 디코더의 동작을 제어할 수 있다.
렌더링 플랫폼은 클라이언트 컴퓨팅 디바이스 상의 클라이언트 애플리케이션일 수 있고, 제어 인터페이스는 클라이언트 애플리케이션에 액세스가능한 애플리케이션 프로그래밍 인터페이스 - API - 일 수 있다.
후처리는 렌더링 플랫폼에 의해 제어 인터페이스를 통해 인에이블(enable) 또는 디스에이블(disable)될 수 있다.
원하는 출력 해상도는 제어 인터페이스를 통해 렌더링 플랫폼으로부터 전달된다.
실행될 때 프로세서로 하여금 위에서 상세히 설명된 방법을 수행하게 하는 명령어를 포함하는 컴퓨터 판독가능 매체가 제공된다.
소개
본 명세서에 설명된 예들은 신호 처리에 관한 것이다. 신호는 샘플들의 시퀀스(즉, 2차원 이미지들, 비디오 프레임들, 비디오 필드들, 사운드 프레임들 등)로서 고려될 수 있다. 설명에서, 용어들 "이미지", "픽처" 또는 "평면"("하이퍼플레인(hyperplane)"의 가장 넓은 의미로 사용되며, 임의의 수의 차원들 및 주어진 샘플링 그리드를 갖는 엘리먼트들의 어레이)은 샘플들의 시퀀스를 따라서 신호의 샘플의 디지털 렌디션(digital rendition)을 식별하기 위해 종종 사용될 것이며, 여기서 각각의 평면은 차원들(예를 들어, X 및 Y) 각각에 대한 주어진 해상도를 갖고, 하나 이상의 "값들" 또는 "설정들"(예를 들어, 비제한적인 예들의 방식들로, 적합한 컬러 공간에서의 컬러 설정들, 밀도 레벨들을 나타내는 설정들, 온도 레벨들을 나타내는 설정들, 오디오 피치(audio pitch)를 나타내는 설정들, 진폭을 나타내는 설정들, 심도를 나타내는 설정들, 알파 채널 투명도 레벨을 나타내는 설정들 등)에 의해 특징지어지는 평면 엘리먼트들(또는 종종 "복셀(voxel)"이라고 불리는 볼륨메트릭 이미지에 대한, "엘리먼트", 또는 "pel", 또는 종종 "픽셀"로 지칭되는 2차원 이미지들에 대한 디스플레이 엘리먼트)의 세트를 포함한다. 각각의 평면 엘리먼트는 이미지의 샘플링 그리드에서 엘리먼트의 정수 위치들을 나타내는 좌표들의 적절한 세트에 의해 식별된다. 신호 차원들은 공간적 차원들(예를 들어, 이미지의 경우) 또는 시간 차원(예를 들어, 비디오 신호와 같이 시간에 따라 진화하는 신호의 경우)만을 포함할 수 있다.
예로서, 신호는 이미지, 오디오 신호, 다중 채널 오디오 신호, 텔레메트리 (telemetry) 신호, 비디오 신호, 3DoF/6DoF 비디오 신호, 볼륨메트릭 신호(예를 들어, 의료 이미징, 과학 이미징, 홀로그래픽 이미징 등), 볼륨메트릭 비디오 신호, 또는 심지어 4차원 초과의 신호일 수 있다.
간략화를 위해, 본 명세서에 설명된 예들은 종종, 예를 들어, 비디오 신호와 같은, 설정들의 2D 평면들(예를 들어, 적합한 컬러 공간에서의 2D 이미지들)로서 디스플레이되는 신호들을 지칭한다. 용어 "프레임" 또는 "필드"는 비디오 신호의 시간에서의 샘플을 나타내기 위해 용어 "이미지"와 상호교환적으로 사용될 것이다: 프레임들(프로그레시브 비디오 신호((progressive video signal)들)로 이루어진 비디오 신호들에 대해 예시된 임의의 개념들 및 방법들은 필드들(인터레이스된 비디오 신호(interlaced video signal)들)로 이루어진 비디오 신호들에도 쉽게 적용될 수 있고, 그 반대도 마찬가지이다. 이미지 및 비디오 신호들에 대한 본 명세서에 예시된 실시예들의 초점에도 불구하고, 당업자는 동일한 개념들 및 방법들은 또한 임의의 다른 유형의 다차원 신호(예를 들어, 오디오 신호, 볼륨메트릭 신호, 입체 비디오 신호, 3DoF/6DoF 비디오 신호, 플렌옵틱 신호(plenoptic signal), 포인트 클라우드 등)에 적용 가능하다는 것을 쉽게 이해할 수 있다.
본 명세서에 설명된 특정 티어 기반 계층적 포맷들은 원래 신호와 가장 유사한(또는 심지어 손실없이 재구성하는) 주어진 품질 레벨에서 신호의 재구성을 생성하기 위해 다양한 양의 정정(correction)(예를 들어, 또한 "잔차 데이터", 또는 단순히 "잔차들"의 형태로)을 사용한다. 정정의 양은 주어진 품질 레벨의 예측 렌디션의 충실도(fidelity)에 기초할 수 있다.
고충실도 재구성을 달성하기 위해, 코딩 방법들은 신호의 더 낮은 해상도 재구성을 신호의 다음 더 높은 해상도 재구성으로 업샘플링할 수 있다. 특정한 경우에, 상이한 신호들은 상이한 방법들로 최상으로 처리될 수 있다, 즉, 동일한 방법이 모든 신호들에 최적이 아닐 수 있다.
또한, 비선형 방법은 더 종래의 선형 커널(특히 분리가능한 커널)보다 더 효과적일 수 있지만 증가된 처리 전력 요건을 희생할 수 있다는 것이 밝혀졌다.
티어-기반 계층적 코딩 기법 또는 포맷의 예들
바람직한 예들에서, 인코더들 또는 디코더들은 티어 기반 계층적 코딩 기법(scheme) 또는 포맷의 일부이다. 티어-기반 계층적 코딩 기법의 예들은 LCEVC: MPEG-5 Part 2 LCEVC("Low Complexity Enhancement Video Coding") 및 VC-6: SMPTE VC-6 ST-2117을 포함하고, 전자는 WO2020/188273으로서 발행된 PCT/GB2020/050695에 설명되고(및 연관된 표준 문서) 및 후자는 WO2019/111010으로서 발행된 PCT/GB2018/053552에 설명된다 (및 연관된 표준 문서)를 포함하며, 이들 모두는 본원에 참고로 통합된다. 그러나, 본 명세서에 예시된 개념들은 이러한 특정 계층적 코딩 방식들로 한정될 필요는 없다.
도 1 내지 도 7은 상이한 예시적인 티어-기반 계층적 코딩 포맷들의 개요를 제공한다. 이들은 도 7 이후의 도면들에서 제시되는 추가적인 신호 처리 동작들의 추가를 위한 맥락으로서 제공된다. 도 1 내지 도 5는 SMPTE VC-6 ST-2117의 구현예와 유사한 예들을 제공하는 반면, 도 6 및 도 7은 MPEG-5 파트 2 LCEVC의 구현예와 유사한 예들을 제공한다. 예들의 세트들 둘 모두가 공통의 기본 동작들(예를 들어, 다운샘플링, 업샘플링 및 잔차 생성)을 이용하고 모듈식 구현 기술들을 공유할 수 있다는 것을 알 수 있다.
도 1은 매우 일반적인 계층적 코딩 기법을 도시한다. 인코딩될 데이터(101)는 인코딩된 데이터(103)를 출력하는 계층적 인코더(102)에 의해 검색된다. 후속하여, 인코딩된 데이터(103)는 데이터를 디코딩하고 디코딩된 데이터(105)를 출력하는 계층적 디코더(104)에 의해 수신된다.
전형적으로, 본 명세서의 예들에서 사용되는 계층적 코딩 기법들은 베이스 또는 코어 레벨을 생성하며, 이는 더 낮은 품질 레벨의 원래 데이터의 표현 및 베이스 레벨 데이터의 디코딩된 버전을 사용하여 더 높은 품질 레벨의 원래 데이터를 재생성하는 데 사용될 수 있는 하나 이상의 잔차 레벨들의 표현이다. 일반적으로, 본 명세서에서 사용되는 용어 "잔차(residual)들"은 기준 어레이 또는 기준 프레임의 값과 데이터의 실제 어레이 또는 프레임 사이의 차이를 지칭한다. 어레이는 코딩 유닛을 나타내는 1차원 또는 2차원 어레이일 수 있다. 예를 들어, 코딩 유닛은 입력 비디오 프레임의 유사한 크기의 영역들에 대응하는 잔차 값들의 2x2 또는 4x4 세트일 수 있다.
일반화된 예들은 입력 신호의 성질에 대해 애그노스틱(agnostic)이라는 점에 유의해야 한다. 본 명세서에서 사용되는 "잔차 데이터(residual data)"에 대한 언급은 잔차들의 세트, 예를 들어, 잔차들의 세트 자체 또는 잔차들의 세트에 대해 수행되는 데이터 처리 동작들의 세트의 출력으로부터 도출된 데이터를 지칭한다. 본 설명 전반에 걸쳐, 일반적으로 잔차들의 세트는 복수의 잔차들 또는 잔차 엘리먼트들을 포함하고, 각각의 잔차 또는 잔차 엘리먼트는 신호 엘리먼트, 즉 신호 또는 원래 데이터의 엘리먼트에 대응한다.
특정 예들에서, 데이터는 이미지 또는 비디오일 수 있다. 이러한 예들에서, 잔차들의 세트는 비디오의 이미지 또는 프레임에 대응하고, 각각의 잔차는 신호의 픽셀과 연관되고, 픽셀은 신호 엘리먼트이다.
본 명세서에 설명된 방법들은 비디오 신호의 상이한 컬러 컴포넌트들을 반영하는 소위 데이터 평면들에 적용될 수 있다. 예를 들어, 방법들은 상이한 컬러 채널들을 반영하는 YUV 또는 RGB 데이터의 상이한 평면들에 적용될 수 있다. 상이한 컬러 채널들이 병렬로 처리될 수 있다. 각 스트림의 컴포넌트들은 임의의 논리적 순서로 정렬될 수 있다.
이제 본 발명의 개념들이 효율적으로 사용될 수 있는 계층적 코딩 방식이 설명될 것이다. 이 기법은 도 2 내지 도 5에 개념적으로 도시되어 있으며, 일반적으로 전술한 VC-6에 대응한다. 이러한 인코딩 기술들에서, 잔차 데이터는 점진적으로 더 높은 품질 레벨들에서 사용된다. 이 제안된 기술에서, 코어 계층은 제1 해상도에서 이미지를 나타내고, 티어화된 계층 구조(hierarchy)에서의 후속 계층들은 디코딩 측이 더 높은 해상도에서 이미지를 재구성하는데 필요한 잔차 데이터 또는 조정 계층들이다. 각각의 계층(layer) 또는 레벨은 에셜론 인덱스(echelon index)로 지칭될 수 있어서, 잔차 데이터는 더 낮은 에셜론 인덱스에 존재하는 낮은 품질 정보를 정정하기 위해 요구되는 데이터이다. 이러한 계층적 기술에서의 각각의 계층 또는 에셜론 인덱스, 특히 각각의 잔차 계층은 종종 많은 0 값 엘리먼트들을 갖는 비교적 희소 데이터 세트(sparse data set)이다. 에셜론 인덱스(echelon index)에 대한 언급이 있을 때, 이는 해당 레벨에서의 모든 에셜론들 또는 컴포넌트들의 세트들, 예를 들어, 해당 품질 레벨에서 수행되는 변환 단계로부터 발생하는 모든 서브세트들을 집합적으로 지칭한다.
이러한 특정 계층적 방식에서, 설명된 데이터 구조는 선행 또는 진행 품질 레벨에 대한 임의의 요건 또는 그에 대한 의존성을 제거한다. 품질 레벨은 개별적으로, 그리고 임의의 다른 계층을 참조하지 않고 인코딩 및 디코딩될 수 있다. 따라서, 임의의 더 높은 품질 레벨들을 디코딩하기 위해 가장 낮은 품질 레벨을 디코딩하기 위한 요건이 존재하는 많은 알려진 다른 계층적 인코딩 기법들과 대조적으로, 설명된 방법론(methodology)은 임의의 다른 계층의 디코딩을 요구하지 않는다. 그럼에도 불구하고, 아래에서 설명되는 정보를 교환하는 원리들은 또한 다른 계층적 코딩 기법들에 적용가능할 수 있다.
도 2에 도시된 바와 같이, 인코딩된 데이터는 일반적으로 여기서 에셜론 인덱스들로 지칭되는 계층들 또는 레벨들의 세트를 나타낸다. 베이스 또는 코어 레벨은, 최저 품질 레벨 또는 해상도이지만, 원래의 데이터 프레임(210)을 나타내고, 후속 잔차 데이터 에셜론은 점진적으로 더 높은 해상도에서 원래의 이미지를 재생성하기 위해 코어 에셜론 인덱스에서 데이터와 조합할 수 있다.
코어-에셜론 인덱스(core-echelon index)를 생성하기 위해, 입력 데이터 프레임(210)은 계층적 코딩 동작에서 사용될 레벨들 또는 에셜론 인덱스들의 수에 대응하는 다수의 다운샘플링 동작들(201)을 사용하여 다운샘플링될 수 있다. 계층구조에서의 레벨들의 수보다 하나 더 적은 다운샘플링 동작(201)이 요구된다. 본 명세서에 예시된 모든 예들에서, 출력 인코딩된 데이터의 4개의 레벨들 또는 에셜론 인덱스들 및 이에 따른 3개의 다운샘플링 동작들이 있지만, 물론 이들은 단지 예시를 위한 것임이 이해될 것이다. 여기서 n은 레벨들의 수를 나타내며, 다운샘플러들의 수는 n-1이다. 코어 레벨(R1-n)은 제3 다운샘플링 동작의 출력이다. 전술한 바와 같이, 코어 레벨 R1-n은 최저 품질 레벨에서의 입력 데이터 프레임의 표현에 대응한다.
다운샘플링 동작들(201)을 구별하기 위해, 각각은 입력 데이터(210)에 대해 동작이 수행되는 순서로 또는 출력이 나타내는 데이터에 의해 참조될 것이다. 예를 들어, 이 예에서 제3 다운샘플링 동작(2011-n)은 또한 그 출력이 코어-에셜론 인덱스 또는 에셜론1-n을 생성할 때, 즉 이 레벨에서의 모든 에셜론의 인덱스가 1-n이므로 코어 다운샘플러(core down-sampler)로서 지칭될 수 있다. 따라서, 이 예에서, 제1 다운샘플링 동작 (201-1)은 R-1 다운샘플러에 대응하고, 제2 다운샘플링 동작 (201-2)은 R-2 다운샘플러에 대응하고, 제3 다운샘플링 동작 (2011-n) 은 코어 또는 R-3 다운샘플러에 대응한다.
도 2에 도시된 바와 같이, 코어 품질 레벨(R1-n)을 나타내는 데이터는 여기서 코어 업샘플러로 지칭되는 업샘플링 동작(2021-n)을 겪는다. 제2 다운샘플링 동작(201-2)의 출력(R-2 다운샘플러의 출력, 즉 코어 다운샘플러에 대한 입력)과 코어 업샘플러(2021-n)의 출력 사이의 차이(203-2)는 제1 잔차 데이터(R-2)로서 출력된다. 이 제1 잔차 데이터 R-2는 따라서 코어 레벨 R-3과 해당 레벨을 생성하는데 사용된 신호 사이의 에러를 나타낸다. 이 예에서 해당 신호 자체가 2개의 다운샘플링 동작을 겪었기 때문에, 제1 잔차 데이터(R-2)는 코어 품질 레벨보다 더 높은 품질 레벨에서 그러나 입력 데이터 프레임(210)보다 더 낮은 레벨에서 원래 신호를 재생성하는 데 사용될 수 있는 조정 계층이다.
더 높은 품질 레벨들을 나타내는 잔차 데이터를 생성하는 방법의 변형예들이 도 2 및 도 3에 개념적으로 도시된다.
도 2에서, 제2 다운샘플링 동작(201-2)의 출력(또는 R-2 다운샘플러, 즉 제1 잔차 데이터(R-2)를 생성하는 데 사용되는 신호)은 업샘플링(202-2)되고, 제2 다운샘플링 동작(201-2)(또는 R-2 다운샘플러, 즉 R-1 다운샘플러의 출력)에 대한 입력 사이의 차이(203-1)는 제1 잔차 데이터(R-2)가 생성되는 것과 거의 동일한 방식으로 계산된다. 따라서, 이 차이는 제2 잔차 데이터(R-1)이고, 하위 계층들로부터의 데이터를 사용하여 더 높은 품질 레벨로 원래 신호를 재생성하는데 사용될 수 있는 조정 계층을 나타낸다.
그러나, 도 3의 변형예에서, 제2 다운샘플링 동작(201-2)의 출력(또는 R-2 다운샘플러)은 코어 업샘플러(2021-n)의 출력을 재생성하기 위해 제1 잔차 데이터(R-2)와 결합되거나 합산된다(304-2). 이 변형예에서, 그것은 다운샘플링된 데이터보다는 업샘플링된(202-2)인 이 재생성된 데이터이다. 업샘플링된 데이터는 유사하게, 제2 잔차 데이터(R-1)를 생성하기 위해 제2 다운샘플링 동작(또는 R-2 다운샘플러, 즉 R-1 다운샘플러의 출력)에 대한 입력과 비교된다(203-1).
도 2 및 도 3의 구현예들 사이의 변형예는 2개의 구현예들 사이의 잔차 데이터에 약간의 변동을 초래한다. 도 2는 병렬화에 대한 더 큰 가능성으로부터 이익을 얻는다.
프로세스 또는 사이클은 제3 잔차들(R0)을 생성하기 위해 반복된다. 도 2 및 도 3의 예들에서, 출력 잔차 데이터(R0)(즉, 제3 잔차 데이터)는 최고 레벨에 대응하고, 입력 데이터 프레임을 재생성하기 위해 디코더에서 사용된다. 이 레벨에서, 차이 연산은 제1 다운샘플링 연산에 대한 입력과 동일한 입력 데이터 프레임에 기초한다.
도 4는 에셜론 인덱스를 갖는 데이터의 인코딩된 에셜론들의 세트를 생성하기 위해 데이터의 레벨들 또는 에셜론 인덱스들의 각각을 인코딩하기 위한 예시적인 인코딩 프로세스(401)를 도시한다. 이러한 인코딩 프로세스는 단지, 레벨들 각각을 인코딩하기 위한 적절한 인코딩 프로세스의 예로서 사용되지만, 임의의 적절한 인코딩 프로세스가 사용될 수 있다는 것이 이해될 것이다. 프로세스에 대한 입력은 도 2 또는 도 3으로부터 출력되는 잔차 데이터의 개개의 레벨이고, 출력은 인코딩된 잔차 데이터의 에셜론들의 세트이며, 인코딩된 잔차 데이터의 에셜론들은 함께 인코딩된 데이터를 계층적으로 나타낸다.
제1 단계에서, 변환(402)이 수행된다. 변환은 WO2013/171173으로서 으로서 발행된 PCT/EP2013/059847에 설명된 바와 같은 방향성 분해 변환 또는 웨이블릿(wavelet) 또는 이산 코사인 변환(discrete cosine transform)일 수 있다. 방향성 분해 변환이 사용되는 경우, 4개의 컴포넌트들의 세트(변환된 계수들로도 지칭됨)가 출력될 수 있다. 에셜론 인덱스를 참조하면, 모든 방향(A, H, V, D), 즉 4개의 에셜론을 총괄적으로 지칭한다. 그런 다음, 컴포넌트 세트는 엔트로피 인코딩 전에 양자화된다(403). 이 예에서, 엔트로피 인코딩 동작(404)은 전체 데이터 크기를 감소시키기 위해 잔차 데이터의 희소성(sparseness)을 이용하고 데이터 엘리먼트들을 순서화된 쿼드트리(quadtree)에 매핑하는 것을 수반하는 희소화(sparsification) 단계(405)에 결합된다. 엔트로피 코딩 및 희소화의 이러한 결합은 WO2019/111004에 추가로 설명되지만, 이러한 프로세스의 정확한 세부 사항들은 본 발명의 이해와 관련이 없다. 잔차들의 각각의 어레이는 에셜론(echelon)으로 생각될 수 있다.
위에서 설명된 프로세스는 SMPTE ST 2117, VC-6 다평면 픽처 포맷(Multiplanar Picture Format)에 따른 재구성을 위해 데이터를 인코딩하기에 적합한 인코딩 프로세스에 대응한다. VC-6은 각각이 독립적인 크기인, 정수 엘리먼트 그리드들의 임의의 순서화된 세트를 압축할 수 있는 유연한, 다중 해상도, 인트라-전용(intra-only) 비트스트림 포맷이지만, 또한 픽처 압축을 위해 설계된다. 압축을 위해 데이터 애그노스틱 기술을 사용하고 낮은 또는 높은 비트 심도(bit-depth) 픽처를 압축할 수 있다. 비트스트림의 헤더들은 픽처에 대한 다양한 메타데이터를함유할 수 있다.
이해되는 바와 같이, 각각의 에셜론 또는 에셜론 인덱스는 별도의 인코더 또는 인코딩 동작을 사용하여 구현될 수 있다. 유사하게, 인코딩 모듈은 잔차 데이터를 생성하기 위해 다운샘플링 및 비교 단계들로 분할될 수 있고, 후속하여 잔차들을 인코딩하거나, 대안적으로 에셜론의 단계들 각각은 조합된 인코딩 모듈에서 구현될 수 있다. 따라서, 프로세스는 예를 들어, 4개의 인코더들, 각각의 에셜론 인덱스에 대해 하나, 병렬 또는 직렬로 동작하는 1개의 인코더 및 복수의 인코딩 모듈들, 또는 상이한 데이터 세트들에 대해 반복적으로 동작하는 하나의 인코더를 사용하여 구현될 수 있다.
이하에서는, 원래의 데이터 프레임을 재구성하는 예를 설명하고, 데이터 프레임은 상술한 프로세스를 통해 인코딩되었다. 이러한 재구성 프로세스는 피라미드형 재구성(pyramidal reconstruction)이라고 지칭될 수 있다. 유리하게는, 본 방법은 데이터 스트림에 의해, 예를 들어, 상이한 이미지 크기 또는 해상도 레벨들에 대응하는 상이한 컴포넌트 세트들을 개별적으로 디코딩하고, 하나의 디코딩된 컴포넌트 세트로부터의 이미지 디테일(image detail)을 더 낮은 해상도 컴포넌트 세트로부터의 업스케일링된 디코딩된 이미지 데이터와 조합함으로써 수신될 수 있는 데이터의 수신된 세트로 인코딩된 이미지를 재구성하기 위한 효율적인 기술을 제공한다. 따라서, 2개 이상의 컴포넌트 세트들에 대해 이 프로세스를 수행함으로써, 최고 해상도 컴포넌트 세트의 풀(full) 또는 완전한 이미지 디테일이 수신될 것을 요구하지 않고, 점진적으로 더 높은 해상도들 또는 더 많은 수의 픽셀들에 대해 구조 또는 디테일에서의 디지털 이미지들이 재구성될 수 있다. 오히려, 방법은 단계적 방식으로, 저해상도 컴포넌트 세트로부터 이미지를 재구성하는 동안 점점 더 높은 해상도 디테일들의 점진적인 추가를 가능하게 한다.
또한, 각각의 컴포넌트 세트의 디코딩은 수신된 컴포넌트 세트들의 병렬 처리를 개별적으로 가능하게 하여, 복수의 프로세스들이 이용가능한 구현예들에서 재구성 속도 및 효율을 개선시킨다.
각각의 해상도 레벨은 품질 또는 에셜론 인덱스의 레벨에 대응한다. 이것은 모든 새로운 입력들 또는 수신된 컴포넌트 세트들을 설명하는 평면(이 예에서는 정수 값 엘리먼트들의 그리드의 표현)과 연관된 집합적 용어이며, 인덱스-m의 사이클에 대한 출력 재구성된 이미지이다. 예를 들어, 에셜론 인덱스 0에서의 재구성된 이미지는 피라미드형 재구성의 최종 사이클의 출력이다.
피라미드형 재구성은 초기 에셜론 인덱스로부터 시작하여 새로운 잔차들에 의한 사이클들을 사용하여 에셜론 인덱스 0에서 최대 품질, 품질 0까지 더 높은 에셜론 인덱스들을 도출하는 역 피라미드를 재구성하는 프로세스일 수 있다. 사이클은 이러한 피라미드형 재구성의 단계로서 생각될 수 있으며, 단계는 인덱스-m에 의해 식별된다. 이 단계는 전형적으로, 가능한 이전 단계로부터 출력된 데이터를 업샘플링하는 것, 예를 들어, 디코딩된 제1 컴포넌트 세트를 업스케일링하는 것을 포함하고, 가능한 다음 단계에서 업샘플링될 출력 데이터를 획득하기 위해 새로운 잔차 데이터를 추가 입력들로서 취한다. 제1 및 제2 컴포넌트 세트들만이 수신되는 경우, 에셜론 인덱스들의 수는 2일 것이고, 가능한 후속 단계는 존재하지 않는다. 그러나, 컴포넌트 세트들 또는 에셜론 인덱스들의 수가 3 이상인 예들에서, 출력 데이터는 다음의 단계들에서 점진적으로 업샘플링될 수 있다.
제1 컴포넌트 세트는 전형적으로 초기 에셜론 인덱스에 대응하고, 이는 에셜론 인덱스 1-N으로 표시될 수 있으며, 여기서 N은 평면 내의 에셜론 인덱스들의 수이다.
전형적으로, 디코딩된 제1 컴포넌트 세트의 업스케일링은 초기 에셜론 인덱스에 대한 디코딩 절차의 출력에 업샘플러를 적용하는 것을 포함한다. 예들에서, 이것은 초기 에셜론 인덱스 컴포넌트 세트의 디코딩으로부터 출력된 재구성된 픽처의 해상도를 2-N에 대응하는 제2 컴포넌트 세트의 해상도와 일치하게 하는 것을 수반한다. 전형적으로, 더 낮은 에셜론 인덱스 컴포넌트 세트로부터의 업스케일링된 출력은 더 높은 에셜론 인덱스 해상도에서 예측된 이미지에 대응한다. 저해상도 초기 에셜론 인덱스 이미지 및 업샘플링 프로세스로 인해, 예측된 이미지는 전형적으로 평활화(smoothed) 또는 블러링된 픽처에 대응한다.
상기 에셜론 인덱스로부터의 더 높은 해상도의 디테일들을 이 예측된 픽처에 추가하는 것은 조합된 재구성된 이미지 세트를 제공한다. 유리하게는, 하나 이상의 상위 에셜론 인덱스 컴포넌트 세트들에 대한 수신된 컴포넌트 세트들이 잔차 이미지 데이터, 또는 업스케일링된 예측 픽처들과 원래의, 비압축된, 또는 사전 인코딩 이미지들 사이의 픽셀 값 차이들을 표시하는 데이터를 포함하는 경우, 주어진 해상도 또는 품질의 이미지 또는 데이터 세트를 재구성하기 위해 요구되는 수신된 데이터의 양은 다른 기술들을 사용하여 동일한 품질 이미지를 수신하기 위해 요구되는 데이터의 양 또는 레이트보다 상당히 더 작을 수 있다. 따라서, 상기 방법에 따라 낮은 해상도로 수신된 저해상도 이미지 데이터와 점점 더 높은 해상도로 수신된 점진적으로 더 고해상도인 이미지 데이터를 조합함으로써, 데이터 레이트 요건이 감소된다.
전형적으로, 인코딩된 데이터의 세트는 하나 이상의 추가 컴포넌트 세트들을 포함하고, 하나 이상의 추가 컴포넌트 세트들 각각은 제2 컴포넌트 세트보다 더 높은 이미지 해상도에 대응하고, 하나 이상의 추가 컴포넌트 세트들 각각은 점진적으로 더 높은 이미지 해상도에 대응하고, 방법은, 하나 이상의 추가 컴포넌트 세트들 각각에 대해, 디코딩된 세트를 획득하기 위해 컴포넌트 세트를 디코딩하는 단계를 포함하며, 방법은, 하나 이상의 추가 컴포넌트 세트들 각각에 대해, 대응하는 이미지 해상도의 오름차순으로, 재구성된 세트의 대응하는 이미지 해상도를 추가 컴포넌트 세트의 대응하는 이미지 해상도와 동일하게 증가시키기 위해 가장 높은 대응하는 이미지 해상도를 갖는 재구성된 세트를 업스케일링하는 단계(upscaling), 및 추가로 재구성된 세트를 생성하기 위해 재구성된 세트와 추가 컴포넌트 세트를 함께 조합하는 단계를 더 포함한다.
이러한 방식으로, 방법은 주어진 컴포넌트 세트 레벨 또는 에셜론 인덱스의 재구성된 이미지 출력을 취하는 단계, 재구성된 세트를 업스케일링하는 단계, 및 그것을 컴포넌트 세트 또는 에셜론 인덱스의 디코딩된 출력과 조합하여 새로운 더 높은 해상도의 재구성된 픽처를 생성하는 단계를 수반할 수 있다. 이것은 수신된 세트 내의 컴포넌트 세트들의 총 수에 따라 점진적으로 더 높은 에셜론 인덱스들에 대해 반복적으로 수행될 수 있다는 것이 이해될 것이다.
전형적인 예들에서, 컴포넌트 세트들 각각은 점진적으로 더 높은 이미지 해상도에 대응하고, 여기서 각각의 점진적으로 더 높은 이미지 해상도는 대응하는 이미지 내의 픽셀들의 수의 4배(factor-of-four) 증가에 대응한다. 따라서, 전형적으로, 주어진 컴포넌트 세트에 대응하는 이미지 크기는 아래의 컴포넌트 세트에 대응하는 이미지의 크기 또는 픽셀 수의 4배, 또는 높이의 2배 및 폭의 2배이며, 즉 에셜론 인덱스가 문제의 에셜론 인덱스보다 1만큼 작은 컴포넌트 세트이다. 각각의 대응하는 이미지의 선형 크기가 아래의 이미지 크기에 대해 2배인 컴포넌트 세트들의 수신된 세트는, 예를 들어, 보다 간단한 업스케일링 동작들을 가능하게 할 수 있다.
예시된 예에서, 추가 컴포넌트 세트들의 수는 2이다. 따라서, 수신된 세트 내의 컴포넌트 세트들의 총 수는 4이다. 이는 초기 에셜론 인덱스가 에셜론-3인 것에 해당한다.
제1 컴포넌트 세트는 이미지 데이터에 대응할 수 있고, 제2 및 임의의 추가 컴포넌트 세트들은 잔차 이미지 데이터에 대응한다. 상기에서 언급된 바와 같이, 방법은 최저 에셜론 인덱스, 즉 제1 컴포넌트 세트가 송신되는 이미지의 낮은 해상도 또는 다운샘플링된 버전을 함유하는 경우들에서 주어진 이미지 크기에 대해 특히 유리한 데이터 레이트 요건 감소들을 제공한다. 이러한 방식으로, 재구성의 각각의 사이클에서, 저해상도 이미지로 시작하여, 해당 이미지는 평활화된 버전일지라도 고해상도를 생성하기 위해 업스케일링되고, 해당 이미지는 해당 업스케일링된 예측된 픽처와 해당 해상도로 송신될 실제 이미지 사이의 차이들을 가산하는 것에 의해 개선되고, 이러한 가산적 개선은 각각의 사이클에 대해 반복될 수 있다. 따라서, 초기 에셜론 인덱스의 것보다 위에 있는 각각의 컴포넌트 세트는 원래 이미지를 다운샘플링할 때 손실되었을 수 있는 정보를 가장 낮은 에셜론 인덱스로 재도입하기 위해 잔차 데이터만을 함유할 필요가 있다.
방법은 예를 들어, 분해, 양자화, 엔트로피 인코딩, 및 희소화에 의해 압축된 데이터를 함유하는 세트의 수신 시에 잔차 데이터일 수 있는 이미지 데이터를 획득하는 방법을 제공한다. 희소화 단계는, 원래 또는 사전 송신 데이터가 희소했던 세트들과 관련하여 사용될 때 특히 유리하며, 이는 전형적으로 잔차 이미지 데이터에 대응할 수 있다. 잔차는, 전형적으로 같은 장소에 위치된(co-located), 제1 이미지의 엘리먼트들과 제2 이미지의 엘리먼트들 사이의 차이일 수 있다. 이러한 잔차 이미지 데이터는 전형적으로 높은 정도의 희소성을 가질 수 있다. 이는 디테일(detail)이 최소이거나, 무시할 수 있거나, 없는 영역들 사이에 디테일 영역들이 희소하게(sparsely) 분포되는 이미지에 대응하는 것으로 생각될 수 있다. 이러한 희소 데이터는 데이터의 어레이로서 설명될 수 있으며, 데이터는 적어도 2차원 구조(예를 들어, 그리드)로 조직화되고, 그렇게 조직화된 데이터의 큰 부분은 제로(논리적으로 또는 수치적으로)이거나 특정 임계치 미만인 것으로 간주된다. 잔차 데이터는 단지 하나의 예이다. 추가적으로, 메타데이터는 희소할 수 있고, 따라서 이 프로세스에 의해 크기가 상당한 정도로 감소될 수 있다. 희소화된 데이터를 발송하는 것은 그러한 희소 영역들을 발송하는 것을 생략하고, 대신에 디코더에서 수신된 바이트세트 내의 적절한 위치들에 이들을 재도입함으로써 요구되는 데이터 레이트의 상당한 감소가 달성될 수 있게 한다.
전형적으로, 엔트로피 디코딩, 탈양자화, 및 방향성 합성 변환 단계들은 인코더 또는 인코딩된 데이터의 수신된 세트가 발송되는 노드에 의해 정의된 파라미터들에 따라 수행된다. 각각의 에셜론 인덱스 또는 컴포넌트 세트에 대해, 단계들은, 각각의 레벨에 대한 세트가 데이터 효율적인 방식으로 송신되는 것을 허용하면서, 상기에서 개시된 기술에 따라 상이한 에셜론 인덱스들과 조합될 수 있는 세트에 도달하도록 이미지 데이터를 디코딩하는 역할을 한다.
또한, 상기 개시된 방법에 따라 인코딩된 데이터의 세트를 재구성하는 방법이 제공될 수 있으며, 제1 및 제2 컴포넌트 세트들 각각의 디코딩은 상기에서 개시된 방법에 따라 수행된다. 따라서, 본 개시의 유리한 디코딩 방법은 수신된 이미지 데이터의 세트 내의 각각의 컴포넌트 세트 또는 에셜론 인덱스에 대해 이용될 수 있고 그에 따라 재구성될 수 있다.
도 5를 참조하여, 디코딩 예가 이제 설명된다. 인코딩된 데이터(501)의 세트가 수신되며, 세트는 4개의 에셜론들의 인덱스들을 포함하고, 각각의 에셜론의 인덱스는 4개의 에셜론들을 포함한다: 최고 해상도 또는 품질 레벨인 에셜론0으로부터, 초기 에셜론인 에셜론-3으로. 에셜론-3 컴포넌트 세트에서 반송되는 이미지 데이터는 이미지 데이터에 대응하고, 다른 컴포넌트 세트들은 해당 송신된 이미지에 대한 잔차 데이터를 포함한다. 레벨들 각각은 잔차들로서 간주될 수 있는 데이터를 출력할 수 있지만, 초기 에셜론 레벨에서의 잔차들, 즉 에셜론-3은 실제 재구성된 이미지에 효과적으로 대응한다. 단계(503)에서, 컴포넌트 세트들 각각은 해당 인코딩된 세트를 디코딩하기 위해 병렬로 처리된다.
초기 에셜론 인덱스, 또는 코어-에셜론 인덱스를 참조하여, 다음의 디코딩 단계들이 각각의 컴포넌트 세트 에셜론-3 내지 에셜론0에 대해 수행된다.
단계(507)에서, 컴포넌트 세트는 탈희소화(de-sparsified)된다. 탈희소화는 다른 티어-기반 계층적 포맷들에서 수행되지 않는 옵션의 단계일 수 있다. 이 예에서, 탈희소화는 희소 2차원 어레이가 각각의 에셜론에서 수신된 인코딩된 바이트세트로부터 재생성되게 한다. (송신된 데이터의 양을 감소시키기 위해 송신된 바이트세트로부터 생략되기 때문에) 수신되지 않은 2차원 어레이 내의 위치들에 그룹화된 제로 값들이 이 프로세스에 의해 다시 채워진다(repopulated). 어레이에서 0이 아닌 값들은 재생성된 2차원 어레이 내에서 그들의 정확한 값들 및 위치들을 유지하고, 탈희소화 단계는 그 사이의 적절한 위치들 또는 위치들의 그룹들에서 송신된 0 값들을 다시 채운다.
단계(509)에서, 레인지 디코더(range decoder)가, 구성된 파라미터들은 송신된 데이터가 송신 이전에 인코딩되었던 것들을 사용하는 것들에 대응함, 어레이 내의 인코딩된 심볼들을 픽셀 값들로 대체하기 위해 각각의 에셜론에서 탈희소화된 세트에 적용된다. 수신된 세트 내의 인코딩된 심볼들은 이미지에 대한 픽셀 값 분포의 근사화에 따라 픽셀 값들에 대해 대체된다. 분포의 근사화, 즉 실제 분포보다는 이미지의 모든 픽셀 값들에 걸친 각각의 값의 상대적인 빈도의 사용은 세트를 디코딩하는데 요구되는 데이터의 양의 감소를 허용하는데, 이는 분포 정보가 이 단계를 수행하기 위해 레인지 디코더에 의해 요구되기 때문이다. 본 개시에서 설명된 바와 같이, 탈희소화 및 레인지 디코딩의 단계들은 순차적이기보다는 상호의존적(interdependent)이다. 이는 흐름도에서 화살표로 형성된 루프로 표시된다.
단계(511)에서, 값들의 어레이는 탈양자화(de-quantize)된다. 이 프로세스는 분해된 이미지가 송신 전에 양자화되었던 파라미터들에 따라 다시 수행된다.
탈양자화 후에, 세트는 단계(513)에서 탈양자화된 어레이에 역 방향 분해 동작을 적용하는 것을 포함하는 합성 변환(composition transform)에 의해 변환된다. 이것은 평균, 수평, 수직, 및 대각 연산자들을 포함하는 연산자 세트에 따라 방향성 필터링이 역전되게 하여, 결과적인 어레이가 에셜론-3에 대한 이미지 데이터 및 에셜론-2에 대한 잔차 데이터가 에셜론0이 되게 한다.
스테이지(505)는 에셜론 컴포넌트 세트들(501) 각각에 대한 합성 변환의 출력을 이용하여 재구성에 수반되는 여러 사이클들을 예시한다. 스테이지(515)는 초기 에셜론을 위해 디코더(503)로부터 출력된 재구성된 이미지 데이터를 나타낸다. 일 예에서, 재구성된 픽처(515)는 64x64의 해상도를 갖는다. 516에서, 이 재구성된 픽처는 그 구성 픽셀의 수를 4배만큼 증가시키도록 업샘플링되어, 128x128의 해상도를 갖는 예측된 픽처(517)가 생성된다. 스테이지(520)에서, 예측된 픽처(517)는 에셜론-2에서 디코더의 출력으로부터 디코딩된 잔차들(518)에 추가된다. 이들 2개의 128x128 크기 이미지의 추가는 128x128 크기 재구성된 이미지를 생성하며, 이는 에셜론-2로부터의 잔차들의 더 높은 해상도 디테일에 의해 인핸스된 초기 에셜론으로부터의 평활화된 이미지 디테일을 포함한다. 이 결과 재구성된 픽처(519)는, 요구되는 출력 해상도가 에셜론-2에 대응하는 것이면 출력되거나 디스플레이될 수 있다. 본 예에서, 재구성된 픽처(519)는 추가 사이클 동안 사용된다. 단계(512)에서, 재구성된 이미지(519)는 단계(516)에서와 동일한 방식으로 업샘플링되어, 256x256 크기의 예측된 픽처(524)를 생성한다. 이것은 그런 다음 단계(528)에서 디코딩된 에셜론-1 출력(526)과 조합되어, 잔차(526)의 더 높은 해상도 디테일로 인핸스된 예측(519)의 업스케일링된 버전인 256x256 크기의 재구성된 픽처(527)을 생성한다. 530에서, 이 프로세스는 최종 시간에 반복되고, 재구성된 픽처(527)는 스테이지(532)에서 에셜론0 잔차와의 조합을 위해 512x512의 해상도로 업스케일링된다. 이에 의해, 512x512의 재구성 픽처(531)가 획득된다.
본 개시의 원리들이 이용될 수 있는 추가적인 계층적 코딩 기술이 도 6 및 도 7에 예시된다. 이 기술은 상이한 비디오 코딩 포맷, 베이스 코덱(예를 들어, AVC, HEVC, 또는 임의의 다른 현재 또는 미래의 코덱)을 코딩된 데이터의 적어도 2개의 인핸스먼트(enhancement) 레벨들과 조합하는 유연하고, 적응가능하고, 매우 효율적이며 계산적으로 저렴한 코딩 포맷이다.
인코딩 방식의 일반적인 구조는 베이스 코덱으로 인코딩된 다운샘플링된 소스 신호를 사용하고, 정정된 픽처를 생성하기 위해 제1 레벨의 정정 데이터를 베이스 코덱의 디코딩된 출력에 추가하고, 이어서 정정된 픽처의 업샘플링된 버전에 추가 레벨의 추가 인핸스먼트 레벨의 데이터를 추가한다. 따라서, 스트림들은 베이스 스트림 및 인핸스먼트 스트림(enhancement stream)인 것으로 간주되며, 이는 인코딩된 데이터 스트림을 생성하기 위해 추가로 다중화되거나 다른 식으로 조합될 수 있다. 특정 경우들에서, 베이스 스트림 및 인핸스먼트 스트림은 별개로 송신될 수 있다. 본 명세서에 설명된 인코딩된 데이터에 대한 참조들은 인핸스먼트 스트림 또는 베이스 스트림 및 인핸스먼트 스트림의 조합을 지칭할 수 있다. 베이스 스트림은 하드웨어 디코더에 의해 디코딩될 수 있는 반면, 인핸스먼트 스트림은 적절한 전력 소비를 갖는 소프트웨어 처리 구현에 적합할 수 있다. 이러한 일반적인 인코딩 구조는 많은 상황에 대해 큰 유연성과 적응성(adaptability)을 허용하는 복수의 자유도를 생성하여, OTT 송신, 라이브 스트리밍, 라이브 초고화질 UHD 방송 등을 포함하는 많은 사용 사례에 적합한 코딩 포맷을 만든다. 베이스 코덱의 디코딩된 출력은 시청을 위해 의도되지 않지만, 그것은 더 낮은 해상도의 완전히 디코딩된 비디오이며, 출력을 기존의 디코더들과 호환가능하게 하고, 적절한 것으로 간주되는 경우, 또한 더 낮은 해상도 출력으로서 사용가능하게 한다.
특정 예들에서, 각각의 또는 둘 모두의 인핸스먼트 스트림들은 NALUs(Network Abstraction Layer Units)의 세트를 사용하여 하나 이상의 인핸스먼트 비트스트림들로 캡슐화될 수 있다. NALUs은 정확한 베이스 재구성된 프레임에 인핸스먼트를 적용하기 위해 인핸스먼트 비트스트림을 캡슐화하도록 구성된다. NALU는 예를 들어, 인핸스먼트가 적용되어야 하는 베이스 디코더 재구성된 프레임 비트스트림을 함유하는 NALU에 대한 참조 인덱스를 포함할 수 있다. 이러한 방식으로, 인핸스먼트는 디코딩된 출력 비디오를 생성하기 위해 조합된 각각의 비트스트림의 프레임들 및 베이스 스트림에 동기화될 수 있다(즉, 인핸스먼트 레벨의 각각의 프레임의 잔차들은 베이스 디코딩된 스트림의 프레임과 조합된다). 픽처들의 그룹은 다수의 NALUs을 나타낼 수 있다.
베이스 스트림이 인핸스먼트 스트림(enhancement stream) 내의 인핸스먼트의 2개의 레벨들(또는 서브-레벨들)과 함께 제공되는, 전술된 초기 프로세스로 돌아가면, 일반화된 인코딩 프로세스의 예가 도 6의 블록도에 도시된다. 초기 해상도의 입력 비디오(600)는 다양한 인코딩된 스트림들(601, 602, 603)을 생성하도록 처리된다. 제1 인코딩된 스트림(인코딩된 베이스 스트림)은 베이스 코덱(예를 들어, AVC, HEVC, 또는 임의의 다른 코덱)에 입력 비디오의 다운샘플링된 버전을 공급함으로써 생성된다. 인코딩된 베이스 스트림은 베이스 계층 또는 베이스 레벨로 지칭될 수 있다. 제2 인코딩된 스트림(인코딩된 레벨 1 스트림)은 재구성된 베이스 코덱 비디오와 입력 비디오의 다운샘플링된 버전 사이의 차이를 취함으로써 획득된 잔차들을 처리함으로써 생성된다. 제3 인코딩된 스트림(인코딩된 레벨 2 스트림)은 입력 비디오와 재구성된 베이스 코딩된 비디오의 정정된 버전의 업샘플링된 버전 사이의 차이를 취함으로써 획득된 잔차를 처리함으로써 생성된다. 특정 경우들에서, 도 6의 컴포넌트들은 일반적인 저 복잡도 인코더를 제공할 수 있다. 특정 경우들에서, 인핸스먼트 스트림들은 저 복잡도 인코더의 일부를 형성하는 인코딩 프로세스들에 의해 생성될 수 있고, 저 복잡도 인코더는 독립적인 베이스 인코더 및 디코더를 제어하도록 구성될 수 있다(예를 들어, 베이스 코덱으로서 패키징됨). 다른 경우들에서, 베이스 인코더 및 디코더는 저 복잡도 인코더의 일부로서 공급될 수 있다. 일 경우에, 도 6의 저 복잡도 인코더는 베이스 코덱에 대한 래퍼(wrapper)의 형태로서 보여질 수도 있으며, 여기서, 베이스 코덱의 기능은 저 복잡도 인코더를 구현하는 엔티티로부터 은닉될 수 있다.
다운샘플링 컴포넌트(105)에 의해 예시된 다운샘플링 동작은 베이스 코덱의 베이스 인코더(613)에 의해 인코딩될 다운샘플링된 비디오를 생성하기 위해 입력 비디오에 적용될 수 있다. 다운샘플링은 수직 및 수평 방향 둘 다에서, 또는 대안적으로 수평 방향에서만 행해질 수 있다. 베이스 인코더(613) 및 베이스 디코더(614)는 (예를 들어, 공통 코덱의 상이한 기능들로서) 베이스 코덱에 의해 구현될 수 있다. 베이스 코덱, 및/또는 베이스 인코더(613) 및 베이스 디코더(614) 중 하나 이상은 적절히 구성된 전자 회로(예를 들어, 하드웨어 인코더/디코더) 및/또는 프로세서에 의해 실행되는 컴퓨터 프로그램 코드를 포함할 수 있다.
각각의 인핸스먼트 스트림 인코딩 프로세스는 반드시 업샘플링 단계를 포함할 필요는 없다. 예를 들어, 도 6에서, 제1 인핸스먼트 스트림은 개념적으로 정정 스트림(correction stream)인 한편, 제2 인핸스먼트 스트림은 인핸스먼트 레벨을 제공하기 위해 업샘플링된다.
인핸스먼트 스트림들을 생성하는 프로세스를 더 자세히 살펴보면, 인코딩된 레벨 1 스트림을 생성하기 위해, 인코딩된 베이스 스트림은 베이스 디코더(614)에 의해 디코딩된다(즉, 디코딩 동작이 인코딩된 베이스 스트림에 적용되어 디코딩된 베이스 스트림을 생성한다). 디코딩은 베이스 코덱의 디코딩 기능 또는 모드에 의해 수행될 수 있다. 그런 다음, 디코딩된 베이스 스트림과 다운샘플링된 입력 비디오 사이의 차이는 레벨 1 비교기(610)에서 생성된다(즉, 감산 연산이 다운샘플링된 입력 비디오 및 디코딩된 베이스 스트림에 적용되어 제1 세트의 잔차들을 생성한다). 비교기(610)의 출력은 잔차들의 제1 세트, 예를 들어, 잔차 데이터의 표면 또는 프레임으로 지칭될 수 있으며, 여기서 잔차 값은 베이스 인코더(613), 베이스 디코더(614) 및 다운샘플링 블록(605)의 출력의 해상도에서 각각의 픽처 엘리먼트에 대해 결정된다.
그 다음, 차이는 인코딩된 레벨 1 스트림(602)을 생성하기 위해 제1 인코더(615)(즉, 레벨 1 인코더)에 의해 인코딩된다(즉, 인코딩 동작은 제1 인핸스먼트 스트림을 생성하기 위해 잔차들의 제1 세트에 적용된다).
상술한 바와 같이, 인핸스먼트 스트림은 제1 레벨의 인핸스먼트(602) 및 제2 레벨의 인핸스먼트(603)를 포함할 수 있다. 제1 레벨의 인핸스먼트(602)는 정정된 스트림, 예를 들어, 입력 비디오(600) 보다 더 낮은 해상도에서 베이스 인코딩된/디코딩된 비디오 신호에 정정의 레벨을 제공하는 스트림인 것으로 간주될 수 있다. 제2 레벨의 인핸스먼트(603)는 정정된 스트림을 원래의 입력 비디오(600)로 변환하는, 예를 들어, 정정된 스트림으로부터 재구성되는 신호에 인핸스먼트 또는 정정의 레벨을 적용하는 추가적인 레벨의 인핸스먼트인 것으로 간주될 수 있다.
도 6의 예에서, 제2 레벨의 인핸스먼트(603)는 잔차들의 추가 세트를 인코딩함으로써 생성된다. 잔차들의 추가 세트는 레벨 2 비교기(619)에 의해 생성된다. 레벨 2 비교기(619)는 디코딩된 레벨 1 스트림의 업샘플링된 버전, 예를 들어, 업샘플링 컴포넌트(617)의 출력과 입력 비디오(600) 사이의 차이를 결정한다. 업샘플링 컴포넌트(617)로의 입력은 제1 디코더(즉, 레벨 1 디코더)를 제1 인코더(615)의 출력에 적용함으로써 생성된다. 이는 레벨 1 잔차들의 디코딩된 세트를 생성한다. 이들은 그런 다음 합산 컴포넌트(620)에서 베이스 디코더(614)의 출력과 조합된다. 이는 레벨 1 잔차들을 베이스 디코더(614)의 출력에 효과적으로 적용한다. 이는 레벨 1 인코딩 및 디코딩 프로세스에서의 손실들이 레벨 2 잔차들에 의해 정정될 수 있게 한다. 합산 컴포넌트(620)의 출력은 디코더에서 인코딩된 베이스 스트림(601) 및 인코딩된 레벨 1 스트림(602)에 레벨 1 처리를 적용하는 출력을 나타내는 시뮬레이션된 신호로서 보여질 수 있다.
언급된 바와 같이, 업샘플링된 스트림은 잔차들의 추가 세트를 생성하는 입력 비디오와 비교된다(즉, 잔차들의 추가 세트를 생성하기 위해 업샘플링된 재생성된 스트림에 차이 연산이 적용된다). 그런 다음, 잔차들의 추가 세트는 인코딩된 레벨 2 인핸스먼트 스트림으로서 제2 인코더(621)(즉, 레벨 2 인코더)에 의해 인코딩된다(즉, 그런 다음 인코딩 동작이 인코딩된 추가 인핸스먼트 스트림을 생성하기 위해 잔차들의 추가 세트에 적용된다).
따라서, 도 6에 도시되고 상술된 바와 같이, 인코딩 프로세스의 출력은 베이스 스트림(601) 및 바람직하게는 제1 레벨의 인핸스먼트 및 추가 레벨의 인핸스먼트를 포함하는 하나 이상의 인핸스먼트 스트림들(602, 603)이다. 3개의 스트림들(601, 602 및 603)은 입력 비디오(600)를 표현하는 비디오 인코딩 프레임워크에 대한 조합된 스트림을 생성하기 위해, 제어 헤더들과 같은 추가적인 정보를 갖거나 갖지 않고 조합될 수 있다. 도 6에 도시된 컴포넌트들은, 예를 들어, 특정 레벨의 해상도에서 프레임의 2x2 또는 4x4 부분들에 대응하는 데이터의 블록들 또는 코딩 유닛들에서 동작할 수 있다는 것에 유의해야 한다. 컴포넌트들은 임의의 블록간(inter-block) 종속성들 없이 동작하므로, 이들은 프레임 내의 다수의 블록들 또는 코딩 유닛들에 병렬로 적용될 수 있다. 이것은 블록들 사이에 의존성들 (예를 들어, 공간적 의존성들 또는 시간적 의존성들)이 존재하는 비교 비디오 인코딩 기법들과 상이하다. 비교 비디오 인코딩 기법들의 종속성들은 병렬성의 레벨을 제한하고 훨씬 더 높은 복잡성을 요구한다.
대응하는 일반화된 디코딩 프로세스가 도 7의 블록도에 도시된다. 도 7은 도 6의 저 복잡도 인코더에 대응하는 저 복잡도 디코더를 도시한다고 할 수 있다. 저 복잡도 디코더는 추가적인 디코딩 정보를 함유하는 헤더들(704)과 함께 저 복잡도 인코더에 의해 생성된 3개의 스트림들(601, 602, 603)을 수신한다. 인코딩된 베이스 스트림(601)은 저 복잡도 인코더에서 사용되는 베이스 코덱에 대응하는 베이스 디코더(710)에 의해 디코딩된다. 인코딩된 레벨 1 스트림(602)은 도 1의 제1 인코더(615)에 의해 인코딩되는 잔차들의 제1 세트를 디코딩하는 제1 디코더(711)(즉, 레벨 1 디코더)에 의해 수신된다. 제1 합산 컴포넌트(712)에서, 베이스 디코더(710)의 출력은 제1 디코더(711)로부터 획득된 디코딩된 잔차들과 조합된다. 레벨 1 재구성된 비디오 신호라고 할 수 있는 조합된 비디오는 업샘플링 컴포넌트(713)에 의해 업샘플링된다. 인코딩된 레벨 2 스트림(103)은 제2 디코더(714)(즉, 레벨 2 디코더)에 의해 수신된다. 제2 디코더(714)는 도 1의 제2 인코더(621)에 의해 인코딩되는 잔차들의 제2 세트를 디코딩한다. 헤더(704)가 도 7에서 제2 디코더(714)에 의해 사용되는 것으로 도시되어 있지만, 이들은 또한 제1 디코더(711)뿐만 아니라 베이스 디코더(710)에 의해 사용될 수 있다. 제2 디코더(714)의 출력은 디코딩된 잔차들의 제2 세트이다. 이들은 잔차들의 제1 세트 및 업샘플링 컴포넌트(713)로의 입력에 대해 더 높은 해상도에 있을 수 있다. 제2 합산 컴포넌트(715)에서, 제2 디코더(714)로부터의 잔차들의 제2 세트는 업샘플링 컴포넌트(713)의 출력, 즉 업샘플링된 재구성된 레벨 1 신호와 조합되어 디코딩된 비디오(750)를 재구성한다.
저 복잡도 인코더에 따라, 도 7의 저 복잡도 디코더는 비디오 신호의 주어진 프레임의 상이한 블록들 또는 코딩 유닛들 상에서 병렬로 동작할 수 있다. 또한, 베이스 디코더(710), 제1 디코더(711) 및 제2 디코더(714) 중 둘 이상에 의한 디코딩은 병렬적으로 수행될 수 있다. 이는 블록간 종속성이 없기 때문에 가능하다.
디코딩 프로세스에서, 디코더는 (글로벌 구성 정보, 픽처 또는 프레임 구성 정보, 및 데이터 블록 구성 정보를 포함할 수 있는) 헤더들(704)을 파싱하고, 그러한 헤더들에 기초하여 저 복잡도 디코더를 구성할 수 있다. 입력 비디오를 재생성하기 위해, 저 복잡도 디코더는 베이스 스트림, 제1 인핸스먼트 스트림 및 추가 또는 제2 인핸스먼트 스트림 각각을 디코딩할 수 있다. 스트림의 프레임들은 동기화된 다음 조합되어 디코딩된 비디오(750)를 도출할 수 있다. 디코딩된 비디오(750)는 저 복잡도 인코더 및 디코더의 구성에 따라 원래의 입력 비디오(100)의 손실 또는 무손실 재구성일 수 있다. 많은 경우들에서, 디코딩된 비디오(750)는 손실들이 디코딩된 비디오(750)의 인식에 대해 감소된 또는 최소의 영향을 갖는 원래의 입력 비디오(600)의 손실 재구성일 수 있다.
도 6 및 도 7 각각에서, 레벨 2 및 레벨 1 인코딩 동작들은 (예를 들어, 해당 순서로) 변환, 양자화 및 엔트로피 인코딩의 단계들을 포함할 수 있다. 이러한 단계들은 도 4 및 도 5에 도시된 동작들과 유사한 방식으로 구현될 수 있다. 인코딩 동작들은 또한 잔차 순위화(ranking), 가중화 및 필터링을 포함할 수 있다. 유사하게, 디코딩 스테이지에서, 잔차들은 엔트로피 디코더, 탈양자화기 및 역변환 모듈을 (예를 들어, 해당 순서로) 통과할 수 있다. 임의의 적절한 인코딩 및 대응하는 디코딩 동작이 사용될 수 있다. 그러나, 바람직하게는, 레벨 2 및 레벨 1 인코딩 단계들은 (예를 들어, 인코딩 디바이스 내의 하나 이상의 중앙 또는 그래픽 처리 유닛들에 의해 실행되는) 소프트웨어에서 수행될 수 있다.
본 명세서에 설명된 변환은 하다마드 기반 변환(Hadamard-based transform)과 같은 방향성 분해 변환(directional decomposition transform)을 사용할 수 있다. 양자 모두는 잔차들의 평탄화된 코딩 유닛들(즉, 잔차들의 2x2 또는 4x4 블록들)에 적용되는 작은 커널 또는 행렬을 포함할 수 있다. 변환에 대한 보다 상세한 내용은 예를 들어, 특허 출원 WO2013/171173으로서 공개된 PCT/EP2013/059847 또는 WO2018/046941로서 공개된 PCT/GB2017/052632에서 찾을 수 있으며, 이는 본원에 참고로 통합된다. 인코더는 사용될 상이한 변환들 사이에서, 예를 들어, 적용될 커널의 크기 사이에서 선택할 수 있다.
변환은 잔차 정보를 4개의 표면들로 변환할 수 있다. 예를 들어, 변환은 다음의 컴포넌트들 또는 변환된 계수들: 평균, 수직, 수평 및 대각선을 생성할 수 있다. 특정 표면은 특정 컴포넌트에 대한 모든 값을 포함할 수 있는데, 예를 들어, 제1 표면은 모든 평균값, 제2 표면은 모든 수직값 등을 포함할 수 있다. 본 개시에서 앞서 언급된 바와 같이, 변환에 의해 출력되는 이들 컴포넌트들은 설명된 방법들에 따라 양자화될 계수들과 같은 실시예들에서 취해질 수 있다. 양자화 기법은 잔차 신호들을 양자들로 생성하는 데 유용할 수 있어서, 특정 변수들이 특정 이산 크기들 만을 가정할 수 있다. 이 예에서 엔트로피 인코딩은 RLE(run length encoding)을 포함할 수 있고, 그런 다음 인코딩된 출력을 처리하는 것은 허프만 인코더를 사용하여 처리된다. 특정 경우들에서, 엔트로피 인코딩이 바람직할 때 이들 방식들 중 하나만이 사용될 수 있다.
요약하면, 본 명세서에서의 방법들 및 장치들은 상이한 인코딩 및/또는 디코딩 접근법에 따라 작동하는 인핸스먼트 계층에 대한 베이스라인으로서 작동하는 기존의 인코딩 및/또는 디코딩 알고리즘 (예컨대, AVC/H.264, HEVC/H.265 등과 같은 MPEG 표준들 뿐만 아니라 VP9, AV1 등과 같은 비-표준 알고리즘) 을 통해 구축되는 전체 접근법에 기초한다. 예들의 전체 접근법 배후의 아이디어는 MPEG 알고리즘 패밀리에서 사용되는 블록 기반 접근법들을 사용하는 것과는 대조적으로 비디오 프레임을 계층적으로 인코딩/디코딩하는 것이다. 프레임을 계층적으로 인코딩하는 것은 풀 프레임에 대한 잔차들을 생성하는 것, 및 그런 다음 데시메이팅된 프레임(decimated frame) 생성하는 것 등을 포함한다.
위에서 나타낸 바와 같이, 프로세스들은 블록 간 의존성들이 없기 때문에 프레임의 컬러 컴포넌트의 코딩 유닛들 또는 블록들에 병렬로 적용될 수 있다. 컬러 컴포넌트들의 세트 내의 각각의 컬러 컴포넌트의 인코딩은 또한 (예를 들어, (프레임들의 수) * (컬러 컴포넌트들의 수) * (프레임당 코딩 유닛들의 수)에 따라 동작들이 복제되도록) 병렬로 수행될 수 있다. 상이한 컬러 컴포넌트들은 프레임당 상이한 수의 코딩 유닛들을 가질 수 있으며, 예를 들어, 인간 시각이 컬러 변화들보다 더 많은 명도 변화들을 검출할 수 있기 때문에 루마(luma) (예를 들어, Y) 컴포넌트는 크로마(chroma) (예를 들어, U 또는 V) 컴포넌트들의 세트보다 더 높은 해상도로 처리될 수 있다는 것에 또한 주목해야 한다.
따라서, 위에서 예시되고 설명된 바와 같이, 디코딩 프로세스의 출력은 (옵션의) 베이스 재구성, 및 더 높은 레벨에서의 원래의 신호 재구성이다. 이 예는 특히 상이한 프레임 해상도들에서 인코딩된 및 디코딩된 비디오를 생성하는데 매우 적합하다. 예를 들어, 입력 신호(30)는 1920 x 1080 해상도의 프레임들을 포함하는 HD 비디오 신호일 수 있다. 특정 경우들에서, 베이스 재구성 및 레벨 2 재구성은 둘 모두 디스플레이 디바이스에 의해 사용될 수 있다. 예를 들어, 네트워크 트래픽의 경우, 레벨 2 스트림은 레벨 1 및 베이스 스트림보다 더 많이 중단(disrupt)될 수 있다(다운샘플링이 각각의 방향에서 차원을 2만큼 감소시키는 경우 최대 4x의 데이터 양을 포함할 수 있기 때문에). 이 경우, 트래픽이 발생할 때, 디스플레이 디바이스는 레벨 2 스트림이 중단되는 동안(예를 들어, 레벨 2 재구성이 이용가능하지 않은 동안) 베이스 재구성을 디스플레이하는 것으로 복귀할 수 있고, 이어서 네트워크 조건들이 개선될 때 레벨 2 재구성을 디스플레이하는 것으로 복귀할 수 있다. 디코딩 디바이스가 자원 제약들을 겪을 때 유사한 접근법이 적용될 수 있으며, 예를 들어, 시스템 업데이트를 수행하는 셋톱 박스는 베이스 재구성을 출력하기 위한 동작 베이스 디코더(220)를 가질 수 있지만 레벨 2 재구성을 계산하기 위한 처리 용량을 갖지 않을 수 있다.
인코딩 장치는 또한 비디오 분배기들이 비디오를 이종 디바이스들의 세트에 분배할 수 있게 한다; 베이스 디코더(720)만을 갖는 것들은 베이스 재구성을 보는 반면, 인핸스먼트 레벨을 갖는 것들은 더 높은 품질 레벨 2 재구성을 볼 수 있다. 비교 경우들에서, 디바이스들의 양자 세트들을 서비스하기 위해 별개의 해상도들에서의 2개의 풀 비디오 스트림들이 요구되었다. 레벨 2 및 레벨 1 인핸스먼트 스트림들이 잔차 데이터를 인코딩할 때, 레벨 2 및 레벨 1 인핸스먼트 스트림들은 더 효율적으로 인코딩될 수 있으며, 예를 들어, 잔차 데이터의 분포들은 전형적으로 0 주위의 다량의 많은 부분을 가지며(즉, 차이가 없는 경우), 전형적으로 0 주위의 작은 범위의 값들을 취한다. 이는 특히 양자화 다음의 경우일 수 있다. 대조적으로, 상이한 해상도들에서의 풀 비디오 스트림들은 디코더로의 송신을 위해 더 높은 비트 레이트를 요구하는 0이 아닌 평균 또는 중간값을 갖는 상이한 분포들을 가질 것이다. 본 명세서에 설명된 예들에서, 잔차들은 인코딩 파이프라인에 의해 인코딩된다. 이것은 변환, 양자화 및 엔트로피 인코딩 동작들을 포함할 수 있다. 이는 또한 잔차 순위화(ranking), 가중화 및 필터링을 포함할 수 있다. 그런 다음, 잔차들은 예를 들어, L-1 및 L-2 인핸스먼트 스트림들로서 디코더에 송신되며, 이는 하이브리드 스트림으로서 베이스 스트림과 조합될 수 있다(또는 개별적으로 송신된다). 일 경우에, 비트 레이트는 베이스 스트림 및 양자 모두의 인핸스먼트 스트림들을 포함하는 하이브리드 데이터 스트림에 대해 설정되고, 그런 다음 상이한 적응적 비트 레이트들이 설정된 비트 레이트를 충족시키기 위해 처리되는 데이터에 기초하여 개별 스트림들에 적용된다(예를 들어, 낮은 레벨들의 아티팩트(artefact)들로 인지되는 고품질 비디오는 비트 레이트를 상이한 개별 스트림들에 적응적으로 할당함으로써 구성될 수 있어서, 심지어 프레임 바이 프레임 레벨(frame by frame level)에서도, 제한된 데이터는 이미지 데이터가 변함에 따라 변할 수 있는 가장 지각적으로 영향을 받는 개별 스트림들에 의해 사용될 수 있다).
본 명세서에 설명된 잔차들의 세트들은 희소 데이터(sparse data)로서 보여질 수 있으며, 예를 들어, 많은 경우들에서, 주어진 픽셀 또는 영역에 대해 차이가 없고 결과적인 잔차 값은 0이다. 잔차들의 분포를 볼 때, 확률 집단(probability mass)의 많은 부분은 0 근처에 위치된 작은 잔차 값들에 할당된다 - 예를 들어, -2, -1, 0, 1, 2 등의 특정 비디오 값들에 대해, 가장 빈번하게 발생한다. 특정한 경우에, 잔차 값들의 분포는 0에 대해 대칭이거나 거의 대칭이다. 특정 테스트 비디오 경우들에서, 잔차 값들의 분포는 약 0에 대해 로그 또는 지수 분포들(예를 들어, 대칭적으로 또는 거의 대칭적으로)과 유사한 형상을 취하는 것으로 밝혀졌다. 잔차 값들의 정확한 분포는 입력 비디오 스트림의 콘텐츠에 의존할 수 있다.
잔차들은 그 자체로 2차원 이미지, 예를 들어, 차이들의 델타 이미지로서 취급될 수 있다. 이러한 방식으로 보면 데이터의 희소성은 잔차 이미지들에서 가시적인 "도트들", 작은 "라인들", "에지들", "코너들" 등과 같은 피처(feature)들과 관련되는 것으로 볼 수 있다. 이러한 피처들은 전형적으로 완전히 상관(correlate)되지 않는다(예를 들어, 공간에서 및/또는 시간에서). 이들은 그들이 도출된 이미지 데이터의 특성들(예를 들어, 원래의 비디오 신호의 픽셀 특성들)과 상이한 특성들을 갖는다.
잔차들의 특성들이 그들이 도출되는 이미지 데이터의 특성들과 상이하기 때문에, 예를 들어, 종래의 MPEG(Moving Picture Experts Group) 인코딩 및 디코딩 표준들에서 발견되는 것들과 같은 표준 인코딩 접근법들을 적용하는 것은 일반적으로 가능하지 않다. 예를 들어, 많은 비교 기법들은 큰 변환들(예를 들어, 정상 비디오 프레임 내의 픽셀들의 큰 영역들의 변환들)을 사용한다. 예를 들어, 전술한 바와 같은 잔차들의 특성들로 인해, 잔차 이미지들 상에서 이러한 비교의 큰 변환들을 사용하는 것은 매우 비효율적일 것이다. 예를 들어, 정상 이미지의 영역을 위해 설계된 큰 블록을 이용하여 잔차 이미지에서 작은 도트(dot)를 인코딩하는 것은 인코딩하기가 매우 어렵다.
본 명세서에 설명된 특정 예들은 대신에 작고 단순한 변환 커널들(예를 들어, 2x2 또는 4x4 커널들 - 방향 분해 및 방향 분해 사각형 표시(Directional Decomposition Squared) - 본 명세서에 제시된)을 사용함으로써 이러한 문제들을 해결한다. 본원에 설명된 변환은 하다마드 행렬(예를 들어, 평탄화된 2x2 코딩 블록에 대한 4x4 행렬 또는 평탄화된 4x4 코딩 블록에 대한 16x16 행렬)을 사용하여 적용될 수 있다. 이것은 비교 비디오 인코딩 접근법들과 상이한 방향으로 이동한다. 이러한 새로운 접근법들을 잔차들의 블록들에 적용하는 것은 압축 효율을 생성한다. 예를 들어, 특정 변환들은 효율적으로 압축될 수 있는 (예를 들어, 공간에서) 상관되지 않은 변환된 계수들을 생성한다. 예를 들어, 잔차 이미지들에서의 라인들에 대해, 변환된 계수들 사이의 상관(correlation)들이 이용될 수 있지만, 이들은 인코딩 복잡도를 초래할 수 있는데, 이는 레거시 및 저-자원 디바이스들 상에서 구현하기 어렵고, 종종 정정될 필요가 있는 다른 복잡한 아티팩트들을 생성한다. 특정 잔차 값들을 0으로 설정함으로써(즉, 처리를 위해 이들을 포워딩하지 않음으로써) 잔차들을 전처리하는 것은, 비트레이트들 및 스트림 대역폭들 뿐만 아니라 자원 사용을 관리하기 위한 제어가능하고 유연한 방식을 제공할 수 있다.
후처리 관련 예
본 명세서에 설명된 특정 예들은 디코딩된 비디오 데이터의 후처리를 가능하게 한다. 특정 예들은 전술된 바와 같은 LCEVC 및 VC-6에 기초한 것들과 같은 다중 계층 디코딩 접근법들에 특히 유용하다. 예들에서, 선택적 또는 조건부 샘플 변환은 적어도 하나의 후처리 동작을 적용하기 전에 수행된다. 이러한 적어도 하나의 후처리 동작은 디더링(dithering)을 포함할 수 있다. 샘플 변환은 출력 디코딩된 비디오 스트림의 원래 비디오 속성을 원하는 비디오 속성으로 변환한다. 원하는 비디오 속성은 모바일 클라이언트 애플리케이션, 스마트 텔레비전 또는 다른 디스플레이 디바이스와 같은 렌더링 디바이스에 의해 시그널링될 수 있다. 비디오 속성이 비디오 해상도(예를 들어, 하나 이상의 차원들에서의 픽셀들의 수)에 관련되는 아래의 예들이 제시되지만; 예들은 비트 심도(bit-depth)(예를 들어, 컬러 심도를 나타냄), 프레임 레이트 등과 같은 다른 비디오 속성들로 확장될 수 있다.
도 8은 일 실시예에 따른 디코딩된 비디오 스트림을 렌더링하기 전에 후처리하는 기술을 나타내는 블록도이다. 일반적인 형태에서, 제1 해상도(805)에서의 비디오 스트림은 블록(810)에서 디코딩되어 재구성된 비디오 출력 스트림을 생성한다. 재구성된 비디오 출력 스트림 해상도는 렌더링 플랫폼으로부터 수신된, 예를 들어, 애플리케이션 프로그래밍 인터페이스 API 함수 호출의 일부로서 수신된 원하는 출력 해상도와 비교된다. 원하는 출력 해상도가 재구성된 비디오 출력 스트림 해상도와 동일하면, 재구성된 비디오 출력 스트림은 블록(820)에서 출력되기 전에 블록(815)에서 후처리를 거친다. 그러나, 원하는 출력 해상도가 재구성된 비디오 출력 스트림 해상도와 동일하지 않으면, 재구성된 비디오 출력 스트림은 블록(815)에서의 후처리 전에 재구성된 비디오 출력 스트림 해상도를 원하는 출력 해상도와 동일하게 하여 블록(820)에서 출력하기 위해 블록(825)에서 필요한 샘플 변환을 거친다.
도 9는 도 8의 개시에 따라 비디오 스트림을 후처리하기 위한 방법(900)을 흐름도로 도시한다. 905에서, 방법은 하나 이상의 수신된 비디오 스트림들을 수신하는 단계를 포함한다. 910에서, 하나 이상의 수신된 비디오 스트림들이 디코딩되어 재구성된 비디오 출력 스트림을 생성한다. 915에서, 재구성된 비디오 출력 스트림 해상도는 렌더링 플랫폼으로부터 수신된 원하는 출력 스트림 해상도와 비교된다. 원하는 출력 해상도가 재구성된 비디오 출력 스트림 해상도와 동일하면, 방법은 단계(925)로 진행하고, 여기서 재구성된 비디오 출력 스트림은 후처리되고, 그런 다음 재구성된 비디오 출력 스트림이 단계(930)에서 출력된다. 그러나, 원하는 출력 해상도가 단계(915)에서 재구성된 비디오 출력 스트림 해상도와 동일하지 않으면, 방법은 재구성된 비디오 출력 스트림 해상도를 단계(925)에서 후처리 전에 원하는 출력 해상도와 동일하게 하기 위해 단계(925)로 진행하기 전에 단계(920)로 진행하고, 그런 다음 단계(930)에서 재구성된 비디오 출력 스트림을 출력한다.
렌더링 플랫폼에서 신호를 렌더링하기 직전에, 렌더링 플랫폼에서 렌디션(rendition)을 위해 의도된 신호가 특정 해상도를 갖는 것이 바람직할 수 있다. 디스플레이를 위한 최적의 해상도는 일반적으로 렌더링 플랫폼에 의해 결정된다. 따라서, 본 발명의 일 양태는 재구성된 신호가 최상의 시각적 결과를 달성하기 위해 어떤 분해능을 가져야 하는지를 결정하기 위해, 예를 들어, 렌더링 플랫폼으로부터 원하는 출력 분해능을 수신하기 위해 API 함수를 사용한다. 재구성된 신호를 디스플레이하기 위한 최적의 해상도를 결정한 후, 재구성된 신호는 최적의 해상도를 달성하기 위해 단계(920)에서 샘플링 변환(즉, 업샘플링 또는 다운샘플링)을 거친다.
후처리와 샘플 변환을 조합하는 것은 주의깊게 수행하지 않으면 최종 변환에 원하지 않는 영향을 줄 수 있다. 예를 들어, 저해상도 신호에 디더링을 적용한 다음 저해상도 신호를 업샘플링하는 것은 원하지 않는 잡음의 형성을 야기할 수 있다. 따라서, 현대의 기술들과는 반대로, 도 8 및 도 9에서 사용되는 기술은 후처리된 신호에 대한 샘플 변환의 부정적인 효과들을 완화시키기 위해 샘플 변환을 적용한 후에 디더링과 같은 후처리를 적용한다. 예를 들어, 제어된 후처리 단계는 빠르게 손상될 수 있고 샘플 변환이 뒤따르는 경우 더 이상 제어되지 않는다.
추가하여, 비교되는 현대의 기술들에서, 해상도와 같은 출력 비디오 속성은 비디오 인코딩의 일부로서 설정되는 것으로 간주되고; 디코더들은 특정 해상도에서 신호를 나타내는 데이터 스트림을 수신하고 해당 신호를 디코딩하여 해당 특정 해상도에서 데이터를 출력하도록 구성된다. 따라서, 디코딩 사양들은 디코딩 스테이지들의 세트 이후 고정된 또는 "하드-와이어드(hard-wired)" 스테이지로서 후처리의 성능을 지시한다. 따라서, 디코더는 렌더링될 정의된 출력을 갖는 "블랙 박스(black-box)"로서 취급되며, 여기서 후처리는 "블랙 박스" 내에서 수행된다. 그러나, 이 접근법은 디코딩된 출력이, 예를 들어, 사용자 선호도에 기초하여 또는 "픽처-인-픽처(picture-in-picture)" 또는 "멀티-스크린"과 같은 렌더링 접근법들의 사용으로 인해 유연하게 렌더링될 필요가 있는 문제들을 초래한다.
특정 접근법들에서, 스케일러블 인코딩된 신호 스트림들은 다수의 선택가능한 출력 해상도들을 제공하기 위해 사용되었고, 특정 경우들에서, 상이한 해상도들에서 또는 스케일러블 비디오 코덱 (SVC : scalable video codec) 또는 스케일러블 HEVC (SHVC)와 같은 스케일러블 코덱들을 사용하는 멀티 캐스트 스트림들의 세트를 갖는다. 그러나, 이들 경우들은 디코더 출력에서의 선택가능하고 유연한 변화들을 허용하지 않으며, 예를 들어, 이용가능한 해상도들은 상이한 계층 스트림들의 구성에 의해 설정된다. 이와 같이 샘플 변환이 없으므로, 대신에 특정 디코딩된 레벨이 선택된다. 이 비교 경우들에서, 후처리는 원하는 디스플레이 해상도가 아닌 디코딩된 해상도에서 수행된다.
때때로, 모바일 디바이스들 및 텔레비전들과 같은 디스플레이 디바이스들은 그들 자신의 업스케일링 또는 컬러 심도(color-depth) 인핸스먼트(enhancement)들을 포함할 수 있지만, 이들은, 예를 들어, 표준화된 디코딩 사양에 따른 후처리가 이미 수행된 디코더 "블랙 박스"의 출력에 적용된다. 따라서, 이러한 비교 경우들에서, 디코더 출력에 적용된 샘플 변환이 시각적 아티팩트(visual artifact)들을 생성할 가능성이 높다.
이 예시적인 실시예에서, 후처리는 베이스 계층의 품질, 예를 들어, 광의 품질뿐만 아니라 다른 인자들에 따라 동적으로 그리고 콘텐츠 적응적으로 적용된다. 이것은 최상의 시각적 결과를 달성하기 위해 맞춤형 후처리 애플리케이션을 허용하기 때문에 유리하다. 예를 들어, 후처리 파라미터들은 디코딩 동안 인코더에서 (그리고 그에 걸쳐 시그널링된) 및/또는 디코더에서 계산된 하나 이상의 이미지 메트릭들에 기초하여 결정될 수 있다. 이러한 파라미터들은 디더링 강도(dithering strength), 샤프닝(sharpening), 및 다른 잡음 추가를 포함할 수 있다.
하나의 예시적인 실시예에서, 샘플 변환은 재구성된 비디오 출력 스트림 해상도를 원하는 출력 해상도로 업샘플링하는 것을 포함한다. 업샘플링은 비선형 업샘플링, 신경망 업샘플링 또는 분수 업샘플링(fractional upsampling) 중 하나를 포함할 수 있다. 후자의 경우, 원하는 해상도는 디코더 출력 해상도의 임의의 배수 또는 분수를 포함할 수 있다. 그러나, 원하는 출력 해상도가 재구성된 비디오 출력 스트림 해상도보다 낮을 때 재구성된 비디오 출력 스트림을 다운샘플링하는 것이 또한 가능하다는 것이 당업자가 이해할 수 있다.
업샘플링은 비선형 업샘플링, 신경망 업샘플링 또는 분수 업샘플링 중 하나를 포함할 수 있다. 이것은 커스텀마이즈된 해상도 비율을 허용하고 정밀한 업샘플링을 달성하기 때문에 유리하다.
이 예시적인 실시예에서, 후처리는 컬러 밴딩(color banding) 또는 블록킹 아티팩트(blocking artifact)와 같은 시각적 손상을 최소화하기 위한 디더링이다. 그러나, 유사한 기술이 최종 렌더링된 신호를 인핸스시키기 위해 다른 유형의 후처리 방법에 적용될 수 있다는 것이 당업자에게 이해될 수 있다.
후처리 디더링은 디더링 유형과 디더링 강도를 채용한다. 디더링 유형은 균일 디더링 알고리즘을 적용할지 여부를 특정한다. 디더링 유형은 디더링이 적용되지 않거나, 균일한 랜덤 디더링이 적용되도록 설정될 수 있다. 디더링 강도는 사용될 최대 디더링 강도를 특정한다. 디더링 강도는 콘트라스트(contrast)의 결정 또는 프레임 콘텐츠의 결정 중 적어도 하나에 기초하여 설정된다.
이 예시적인 실시예에서, 파라미터는 디더를 적용하기 시작하기 위한 베이스 양자화 파라미터(QP) 값을 나타내기 위해 사용된다. 추가적인 파라미터는 디더를 포화시키는 베이스 QP 값을 나타내는 데 사용된다. 입력 신호는 또한 디더링을 인에이블 또는 디스에이블하는데 사용된다. 입력 신호는 이진 입력 신호일 수 있지만, 디더링의 인에이블 또는 디스에이블을 표시하기 위한 다른 입력 신호가 사용될 수 있다는 것이 이해될 수 있다. 인에이블 및 디스에이블 신호들은 API 함수 호출을 통해 렌더링 플랫폼으로부터 발원할 수 있다. 적응형 디더링은 LCEVC 규격에서 더 상세히 설명되지만; 여기서 적응형 디더링이 LCEVC 규격에서 교시되지 않은 추가적인 샘플 변환 후에 수행된다.
도 10은 도 8 및 도 9를 참조하여 논의된 후처리 및 샘플 변환을 하이 레벨 개략도로 도시한다. 이 예는 도 7의 특정 LCEVC 디코딩 실시예에서 구현된 도 8 및 도 9의 개괄적인 교시를 도시한다. 물론, 개괄적인 교시는 또한 VC-6 및 다른 유사한 디코딩 기법들을 참조하여 도시되고 설명된 실시예들에 적용가능하다. 본 실시예에서, 도 7의 세부 사항은 반복되지 않으며, 동일한 참조 번호는 동일한 구성 및 배치를 설명한다. 도 10에서 알 수 있는 바와 같이, 디코딩된 비디오/재구성된 비디오 출력 스트림(750)의 생성 후에, 도 8로부터의 블록들(825 및 815)이 최종 렌디션의 시각적 외관을 인핸스시키기 위해 채용된다.
도 11은 도 8 및 도 9에 개략된 방법들을 수행하기 위한 디코더 구현을 예시한다. 도 11은 재구성된 비디오 스트림이 도 8, 도 9 및 도 10을 참조하여 본 명세서에 설명된 샘플 변환 및 후처리 후에 클라이언트 애플리케이션에 의해 렌더링될 수 있는 애플리케이션 계층(1105)을 포함한다. 예를 들어, 클라이언트 애플리케이션은 스마트 텔레비전 미디어 플레이어 애플리케이션, 모바일 디바이스 애플리케이션, 데스크톱 애플리케이션 등을 포함할 수 있다. 도 11은 또한 비디오 스트림을 재구성된 비디오 출력 스트림으로 디코딩하기 위해 하나 이상의 디코더(1120), 하나 이상의 플러그인(plug-in)(1130) 및 커널/운영 체제(OS) 계층(1135)과 동작하는 디코더 통합 계층(DIL)(1110)을 포함한다. 도 11에서, 적어도 디코더 통합 계층(1110) 및 하나 이상의 디코더(1125)는 디코더 라이브러리들의 세트를 형성할 수 있다. 하나 이상의 디코더들(1125)은 LCEVC 디코더들과 같은 인핸스먼트 디코더(enhancement decoder)들을 포함할 수 있다.
이 예시적인 실시예에서, 디코더 통합 계층(1110)은 하나 이상의 디코더 플러그인들(1130) 및 하나 이상의 디코더들(1125)의 동작을 제어하여 재구성된 비디오 출력 스트림을 생성한다. 디코딩은 AV1, VVC, AVC 및 LCEVC 중 하나 이상을 포함하는 하나 이상의 디코더들을 사용하여 달성될 수 있다. 하나 이상의 디코더 플러그인들(1130)은 디코더 라이브러리들의 세트의 일부를 형성할 수 있고 및/또는 제3자들에 의해 제공될 수 있다. 하나 이상의 디코더들(1125)이 인핸스먼트 디코더들을 포함하는 경우에, 하나 이상의 디코더 플러그인들은 상이한 세트들의 기본(underlying) 베이스 디코더들을 제어하는데 사용되는 다양한 방법들 및 커맨드들을 래핑(wrapping)하면서 디코더 통합 계층(1110)에 대한 공통 인터페이스를 제공한다. 예를 들어, 베이스 디코더는 커널/OS 계층(1135)으로부터의 네이티브(native)(예를 들어, 운영 체제) 기능들을 사용하여 구현될 수 있다. 베이스 디코더는, 예를 들어, 운영 체제에 따라, MediaCodec 커맨드들(예를 들어, 안드로이드 운영 체제에서 발견되는), VTDecompression Session 커맨드들(예를 들어, iOS 운영 체제에서 발견되는) 또는 Media Foundation Transforms 커맨드들(MFT - 예를 들어, 운영 체제들의 Windows 패밀리에서 발견되는) 등의 운영 체제 메커니즘을 사용하여 액세스되는 저레벨 미디어 코덱일 수 있다.
디코더 통합 계층은 도 8, 도 9 및 도 10를 참조하여 개략적으로 설명된 재구성된 비디오 출력 스트림에 후처리 및 샘플 변환을 적용하기 위해 후처리 모듈(1115) 및/또는 샘플 변환 모듈(1120)을 포함할 수 있다. 대안적으로, 후처리 및/또는 샘플 변환은 디코더 통합 계층(1110), 하나 이상의 플러그인들(1130), 하나 이상의 디코더들(1125) 중 임의의 것의 일부 또는 디코더 라이브러리들의 세트 내의 별개의 유닛을 형성할 수 있다. 하나 이상의 디코더가 하나 이상의 LCEVC 디코더를 포함할 때, 디코더 라이브러리는 대응하는 LCEVC 디코더 라이브러리의 세트일 수 있다.
추가적으로, 제어 인터페이스는 디코더 통합 계층(1110)의 일부를 형성한다. 제어 인터페이스는 애플리케이션 계층(1105)과 디코더 통합 계층(1110) 사이의 인터페이스로 간주될 수 있다. 제어 인터페이스는 예를 들어, 애플리케이션 계층(1105) 내에서 동작하는 클라이언트 애플리케이션으로부터 호출가능한 외부적으로 호출가능한 방법들 또는 기능들의 세트를 포함할 수 있다. 따라서, 디코더 통합 계층(1110)은 애플리케이션들(또는 디코딩 미들웨어 세트)에 디코딩 기능들을 제공하기 위해 커널/OS 계층(1135)의 확장으로 간주될 수 있다. 애플리케이션 계층(1105)은 클라이언트 컴퓨팅 또는 디스플레이 디바이스 상에 렌더링 플랫폼을 제공할 수 있으며, 여기서 제어 인터페이스는 애플리케이션 계층(1105) 내에서 실행되는 애플리케이션들에 액세스가능한 API로서 제공된다. 본 명세서에서 논의되는 원하는 출력 스트림 속성들은 제어 인터페이스를 통해 디코더 통합 계층(1110)에 애플리케이션 계층(1105)에서 실행되는 애플리케이션 사이에서 통신될 수 있다. 예를 들어, 해상도들 또는 비트 심도들과 같은 하나 이상의 원하는 비디오 출력 속성들은 설정 값들을 전달하는 제어 인터페이스에 대한 함수 호출들을 통해 및/또는 디코더 통합 계층에 의해 제공되는 디코딩 관련 외부 방법을 실행하는 부분으로서 설정될 수 있다.
본 명세서에 설명된 특정 예들은 디스플레이 디바이스가 후처리를 포함하는 디코더 출력을 업샘플링 또는 업스케일링하는 이미지 품질 문제들을 회피한다. 예를 들어, 디더링을 갖는 디코더 출력의 디스플레이 디바이스 업샘플링은 눈에 거슬리는(unsightly) 디더링 "블롭(blob)들"을 야기할 수 있으며, 여기서 디더링 잡음이 업샘플링된다. 디스플레이 해상도가 (인핸스먼트 계층 2로부터의 디코딩된 재구성 출력과 같은) 출력 해상도보다 더 높은 LCEVC 예들과 같은 예들에서, 커스텀 스케일링은 디스플레이 디바이스로부터 디코더 통합 계층에 의해 수신된 커맨드에 기초하여 수행될 수 있고, 그런 다음, 디더링이 커스텀 업스케일링된 출력에 적용된다. 특정 경우들에서, 디코더 출력 이전의 커스텀 업스케일링은 또한 (예를 들어, 디스플레이 디바이스들에 "빌트인(built-in)"될 수 있는 고정된 더 오래된 업스케일링 방법들과는 대조적으로) 더 진보된 업스케일링 방법들이 사용될 수 있게 할 수 있다. 더욱이, 업스케일링은 또한 디코더에 이용가능하지만 디스플레이 디바이스에 이용가능하지 않은 콘텐츠 적응 파라미터들(예를 들어, 인코딩 및/또는 디코딩 메트릭들에 기초한 상이한 코딩 블록들에 대한 상이한 파라미터들)을 사용할 수 있다. 이러한 경우에, 디코더 비디오 스트림은 디코딩 해상도에 관한 정보만을 포함하기 때문에, 디코더는 디스플레이 해상도에 관한 미디어 플레이어 정보를 수신할 수 있고, 이 미디어 플레이어 정보는 디스플레이 능력에 관계없이 제공될 수 있다.
인코더를 구현하기 위한 예시적인 장치
도 12를 참조하면, 장치(1200)의 예의 개략적인 블록도가 도시되어 있다.
장치(1200)의 예들은 모바일 컴퓨터, 개인용 컴퓨터 시스템, 무선 디바이스, 기지국, 전화 디바이스, 데스크톱 컴퓨터, 랩톱, 노트북, 넷북 컴퓨터, 메인프레임 컴퓨터 시스템, 핸드헬드 컴퓨터, 워크스테이션, 네트워크 컴퓨터, 애플리케이션 서버, 저장 디바이스, 소비자 전자 디바이스 예컨대, 카메라, 캠코더, 모바일 디바이스, 비디오 게임 콘솔, 핸드헬드 비디오 게임 디바이스, 주변 디바이스 예컨대, 스위치, 모뎀, 라우터, 차량 등 또는 일반적으로 임의의 유형의 컴퓨팅 또는 전자 디바이스를 포함하지만, 이에 한정되지 않는다.
이 예에서, 장치(1200)는 정보 및/또는 명령어들을 처리하도록 구성된 하나 이상의 프로세서들(1213)을 포함한다. 하나 이상의 프로세서(1213)는 중앙 처리 유닛(CPU)을 포함할 수 있다. 하나 이상의 프로세서(1213)는 버스(1211)와 결합된다. 하나 이상의 프로세서(1213)에 의해 수행되는 동작들은 하드웨어 및/또는 소프트웨어에 의해 수행될 수 있다. 하나 이상의 프로세서(1213)는 다수의 같은 장소에 위치된 프로세서 또는 다수의 별개로 위치된 프로세서를 포함할 수 있다.
이 예에서, 장치(1213)는 하나 이상의 프로세서(1213)에 대한 정보 및/또는 명령어를 저장하도록 구성된 컴퓨터 사용 가능 메모리(1212)를 포함한다. 컴퓨터 사용 가능 메모리(1212)는 버스(1211)와 결합된다. 컴퓨터 사용 가능 메모리는 휘발성 메모리 및 비휘발성 메모리 중 하나 이상을 포함할 수 있다. 휘발성 메모리는 RAM(Random Access Memory)을 포함할 수 있다. 비휘발성 메모리는 ROM(read-only memory)을 포함할 수 있다.
이 예에서, 장치(1200)는 정보 및/또는 명령어들을 저장하도록 구성된 하나 이상의 외부 데이터 저장 유닛들(1280)을 포함한다. 하나 이상의 외부 데이터 저장 유닛(1280)은 I/O 인터페이스(1214)를 통해 장치(1200)와 결합된다. 하나 이상의 외부 데이터 저장 유닛(1280)은 예를 들어, 자기 또는 광 디스크 및 디스크 드라이브 또는 솔리드 스테이트 드라이브(SSD)를 포함할 수 있다.
이 예에서, 장치(1200)는 I/O 인터페이스(1214)를 통해 결합된 하나 이상의 입력/출력(I/O) 디바이스(1216)를 더 포함한다. 장치(1200)는 또한 적어도 하나의 네트워크 인터페이스(1217)를 포함한다. I/O 인터페이스(1214) 및 네트워크 인터페이스(1217) 모두는 시스템 버스(1211)에 결합된다. 적어도 하나의 네트워크 인터페이스(1217)는 장치(1200)가 하나 이상의 데이터 통신 네트워크들(1290)을 통해 통신할 수 있게 할 수 있다. 데이터 통신 네트워크들의 예들은 인터넷 및 LAN(Local Area Network)을 포함하지만 이에 한정되지 않는다. 하나 이상의 I/O 디바이스들(1216)은 사용자가 하나 이상의 입력 디바이스들(도시되지 않음)을 통해 장치(1200)에 입력을 제공할 수 있게 할 수 있다. 하나 이상의 I/O 디바이스(1216)는 하나 이상의 출력 디바이스(도시되지 않음)를 통해 사용자에게 정보가 제공될 수 있게 할 수 있다.
도 12에서, (신호) 프로세서 애플리케이션(1240-1)은 메모리(1212)에 로딩된 것으로 도시된다. 이는 본 명세서에 설명된 방법들을 구현하기 위해(예를 들어, 적절한 인코더들 또는 디코더들을 구현하기 위해) (신호) 프로세서 프로세스(1240-2)로서 실행될 수 있다. 장치(1200)는 또한, 운영 체제 및 추가적인 데이터 처리 모듈들을 포함하는, 명확성을 위해 도시되지 않은 추가적인 피처들을 포함할 수 있다. (신호) 프로세서 프로세스(1240-2)는 컴퓨터 사용 가능 비휘발성 메모리 내의 메모리 위치에 저장된 컴퓨터 프로그램 코드, 하나 이상의 데이터 저장 유닛 내의 컴퓨터 판독 가능 저장 매체 및/또는 다른 유형의 컴퓨터 판독 가능 저장 매체에 의해 구현될 수 있다. 유형의 컴퓨터 판독가능 저장 매체의 예들은 광학 매체(예를 들어, CD-ROM, DVD-ROM 또는 블루레이(Blu-ray)), 플래시 메모리 카드, 플로피 또는 하드 디스크, 또는 주문형 집적 회로(ASIC)로서 또는 적어도 하나의 ROM 또는 RAM 또는 프로그래밍가능 ROM(PROM) 칩들에 펌웨어 또는 마이크로코드와 같은 컴퓨터 판독가능 명령어들을 저장할 수 있 임의의 다른 매체를 포함하지만, 이에 한정되지 않는다.
따라서, 장치(1200)는 하나 이상의 프로세서(1213)에 의해 실행될 수 있는 데이터 처리 모듈을 포함할 수 있다. 데이터 처리 모듈은 본 명세서에 설명된 동작들 중 적어도 일부를 구현하기 위한 명령어들을 포함하도록 구성될 수 있다. 동작 동안, 하나 이상의 프로세서(1213)는 명령어들을 론치(launch), 실행, 시행, 해석 또는 달리 수행한다.
도면들을 참조하여 본 명세서에 설명된 예들의 적어도 일부 양태들이 처리 시스템들 또는 프로세서들에서 수행되는 컴퓨터 프로세스들을 포함하지만, 본 명세서에 설명된 예들은 또한 예들을 실시하도록 적응된 컴퓨터 프로그램들, 예를 들어, 캐리어(carrier) 상의 또는 캐리어 내의 컴퓨터 프로그램들로 확장된다. 캐리어는 프로그램을 반송할 수 있는 임의의 엔티티 또는 디바이스일 수 있다. 장치(1200)는 도 12에 도시된 것들보다 더 많은, 더 적은 및/또는 상이한 컴포넌트들을 포함할 수 있다는 것이 이해될 것이다. 장치(1200)는 단일 위치에 위치될 수 있거나 다수의 위치들에 분산될 수 있다. 이러한 위치들은 로컬 또는 원격일 수 있다.
본 명세서에 설명된 기술은 소프트웨어 또는 하드웨어로 구현될 수 있거나, 소프트웨어 및 하드웨어의 조합을 사용하여 구현될 수 있다. 이들은 본 명세서에 설명된 기술들 중 임의의 것 또는 전부를 수행 및/또는 지원하도록 장치를 구성하는 것을 포함할 수 있다.
상기 실시예들은 예시적인 예들로서 이해되어야 한다. 추가적인 실시예들이 고려된다.
임의의 하나의 실시예와 관련하여 설명된 임의의 피처는 단독으로 또는 설명된 다른 피처들과 조합하여 사용될 수 있고, 또한 실시예들 중 임의의 다른 실시예의 하나 이상의 피처, 또는 실시예들 중 임의의 다른 실시예의 임의의 조합과 조합하여 사용될 수 있다는 것이 이해되어야 한다. 또한, 첨부된 청구항들에 정의된 본 발명의 범위를 벗어나지 않고, 위에서 설명되지 않은 등가물들 및 수정예들이 또한 이용될 수 있다.

Claims (24)

  1. 비디오 디코딩을 위한 방법으로서,
    렌더링 플랫폼(rendering platform)으로부터 적어도 하나의 원하는 비디오 출력 속성의 표시를 수신하는 단계;
    하나 이상의 수신된 비디오 스트림들을 재구성된 비디오 출력 스트림으로 디코딩하는 단계로서, 후처리(post-processing)가 상기 재구성된 비디오 스트림의 출력 이전에 적용되는, 상기 디코딩하는 단계;를 포함하고,
    상기 방법은 상기 원하는 비디오 출력 속성이 상기 재구성된 비디오 출력 스트림 속성과 상이할 때, 상기 원하는 비디오 출력 속성을 제공하기 위해 상기 후처리 전에 상기 재구성된 비디오 출력 스트림에 샘플 변환(sample conversion)을 적용하는 단계를 더 포함하는, 방법.
  2. 제1항에 있어서, 상기 후처리는 동적으로 그리고 콘텐츠 적응적으로(content-adaptively) 적용되는, 방법.
  3. 제1항 또는 제2항에 있어서, 상기 원하는 비디오 출력 속성은 원하는 비디오 출력 해상도이고, 상기 샘플 변환은, 상기 원하는 비디오 출력 해상도가 상기 재구성된 비디오 출력 스트림의 해상도와 상이할 때, 상기 재구성된 비디오 출력 스트림의 해상도로부터 상기 원하는 비디오 출력 해상도로 변환하는 단계를 포함하는, 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 원하는 비디오 출력 속성은 원하는 비트 심도(bit-depth)이고, 상기 샘플 변환은, 상기 원하는 비디오 출력 비트 심도가 상기 재구성된 비디오 출력 스트림의 비트 심도와 상이할 때, 상기 재구성된 비디오 출력 스트림의 비트 심도로부터 상기 원하는 비디오 출력 비트 심도로 변환하는 단계를 포함하는, 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 샘플 변환은 상기 재구성된 비디오 출력 스트림 해상도를 원하는 출력 해상도로 업샘플링하는 단계를 포함하는, 방법.
  6. 제3항에 있어서, 상기 업샘플링은 비선형 업샘플링(non-linear upsampling), 신경망 업샘플링(neural network upsampling) 또는 분수 업샘플링(fractional upsampling) 중 하나를 포함하는, 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서, 상기 후처리 단계는 디더링(dithering)을 포함하는, 방법.
  8. 제7항에 있어서, 디더링 유형 및 디더링 강도 중 하나 이상을 수신하는 단계를 더 포함하는, 방법.
  9. 제8항에 있어서, 상기 디더링 강도는 콘트라스트(contrast) 결정 및 프레임 콘텐츠 결정 중 적어도 하나에 기초하여 설정되는, 방법.
  10. 제7항 내지 제9항 중 어느 한 항에 있어서, 상기 디더(dither)를 적용하기 시작하기 위해 베이스 양자화 파라미터(quantisation parameter) - QP - 값을 나타내는 파라미터를 수신하는 단계를 더 포함하는, 방법.
  11. 제7항 내지 제10항 중 어느 한 항에 있어서, 상기 디더를 포화(saturate)시키는 베이스 양자화 파라미터 - QP - 값을 나타내는 파라미터를 수신하는 단계를 더 포함하는, 방법.
  12. 제7항 내지 제11항 중 어느 한 항에 있어서, 상기 디더링을 인에이블 또는 디스에이블하기 위한 입력을 수신하는 단계를 더 포함하는, 방법.
  13. 제1항 내지 제12항 중 어느 한 항의 방법을 수행하도록 구성된 비디오 디코딩을 위한, 시스템 또는 장치.
  14. 제13항에 있어서, 상기 디코딩은 AV1, VVC, AVC 및 LCEVC 중 하나 이상을 포함하는 하나 이상의 디코더를 사용하여 달성되는, 시스템 또는 장치.
  15. 제14항에 있어서, 상기 하나 이상의 디코더는 네이티브(native) 또는 운영 체제 기능을 사용하여 구현되는, 시스템 또는 장치.
  16. 제13항 내지 제15항 중 어느 한 항에 있어서, 디코더 통합 계층 및 하나 이상의 디코더 플러그인(plug-in)을 포함하고, 제어 인터페이스는 상기 디코더 통합 계층의 일부를 형성하고; 상기 하나 이상의 디코더 플러그인은 상기 하나 이상의 디코더에 대한 인터페이스를 제공하는, 시스템 또는 장치.
  17. 제16항에 있어서, 상기 후처리는 후처리 모듈을 사용하여 달성되고, 상기 샘플 변환은 샘플 변환 모듈을 사용하여 달성되며, 상기 후처리 모듈 또는 상기 샘플 변환 모듈 중 적어도 하나는 상기 디코더 통합 계층 및 상기 하나 이상의 디코더 플러그인들 중 하나 이상의 부분을 형성하는, 시스템 또는 장치.
  18. 제16항 또는 제17항에 있어서, 상기 하나 이상의 디코더는 비디오 스트림을 디코딩하기 위한 베이스 디코드 계층을 구현하기 위한 디코더 및 인핸스먼트 디코드 계층(enhancement decode layer)을 구현하기 위한 인핸스먼트 디코더(enhancement decoder)를 포함하는, 시스템 또는 장치.
  19. 제18항에 있어서, 상기 인핸스먼트 디코더는,
    인코딩된 인핸스먼트 스트림을 수신하고,
    상기 인코딩된 인핸스먼트 스트림을 디코딩하여 잔차 데이터의 하나 이상의 계층을 획득하고, 상기 잔차 데이터의 하나 이상의 계층은 디코딩된 비디오 스트림으로부터 도출된 데이터와 원래의 입력 비디오 스트림으로부터 도출된 데이터의 비교에 기초하여 생성되는, 시스템 또는 장치.
  20. 제19항에 있어서, 상기 디코더 통합 계층은, 상기 인핸스먼트 디코드 계층으로부터의 잔차 데이터의 하나 이상의 계층들 및 상기 베이스 디코드 계층으로부터의 디코딩된 비디오 스트림을 이용하여 상기 재구성된 비디오 출력 스트림을 생성하도록 상기 하나 이상의 디코더 플러그인들 및 상기 인핸스먼트 디코더의 동작을 제어하는, 시스템 또는 장치.
  21. 제16항 내지 제20항 중 어느 한 항에 있어서, 상기 렌더링 플랫폼은 클라이언트 컴퓨팅 디바이스 상의 클라이언트 애플리케이션이고, 상기 제어 인터페이스는 상기 클라이언트 애플리케이션에 액세스가능한 애플리케이션 프로그래밍 인터페이스 - API - 인, 시스템 또는 장치.
  22. 제21항에 있어서, 상기 후처리는 상기 렌더링 플랫폼에 의해 상기 제어 인터페이스를 통해 인에이블 또는 디스에이블되는, 시스템 또는 장치.
  23. 제21항 내지 제22항 중 어느 한 항에 있어서, 상기 원하는 비디오 출력 속성은 상기 제어 인터페이스를 통해 상기 렌더링 플랫폼으로부터 전달되는, 시스템 또는 장치.
  24. 실행될 때 프로세서로 하여금 제1항 내지 제12항 중 어느 한 항의 방법을 수행하게 하는 명령어들을 포함하는, 컴퓨터 판독가능 매체.
KR1020237019567A 2020-11-27 2021-11-26 후처리 제어를 이용한 비디오 디코딩 KR20230107627A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB2018755.5A GB2601368B (en) 2020-11-27 2020-11-27 Video decoding using post-processing control
GB2018755.5 2020-11-27
PCT/GB2021/053071 WO2022112775A2 (en) 2020-11-27 2021-11-26 Video decoding using post-processing control

Publications (1)

Publication Number Publication Date
KR20230107627A true KR20230107627A (ko) 2023-07-17

Family

ID=74099745

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237019567A KR20230107627A (ko) 2020-11-27 2021-11-26 후처리 제어를 이용한 비디오 디코딩

Country Status (5)

Country Link
EP (1) EP4252426A2 (ko)
KR (1) KR20230107627A (ko)
CN (1) CN116508091A (ko)
GB (1) GB2601368B (ko)
WO (1) WO2022112775A2 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230047271A1 (en) * 2021-08-02 2023-02-16 Mediatek Singapore Pte. Ltd. Color Component Processing In Down-Sample Video Coding
CN116781912B (zh) * 2023-08-17 2023-11-14 瀚博半导体(上海)有限公司 视频传输方法、装置、计算机设备及计算机可读存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EA201492099A1 (ru) 2012-05-14 2015-04-30 Лука Россато Разложение остаточных данных при кодировании, декодировании и реконструкции сигнала в многоуровневой иерархии
EP2958101A1 (en) * 2014-06-20 2015-12-23 Thomson Licensing Methods and apparatus for displaying HDR image on LDR screen
GB2554065B (en) 2016-09-08 2022-02-23 V Nova Int Ltd Data processing apparatuses, methods, computer programs and computer-readable media
EP3721634A1 (en) * 2017-12-06 2020-10-14 V-Nova International Limited Methods and apparatuses for encoding and decoding a bytestream
EP3721624A1 (en) * 2017-12-06 2020-10-14 V-Nova International Limited Methods and apparatuses for hierarchically encoding and decoding a bytestream
WO2020188237A1 (en) * 2019-03-20 2020-09-24 V-Nova International Ltd Residual filtering in signal enhancement coding
GB2618718B (en) 2019-03-20 2024-03-13 V Nova Int Ltd Low complexity enhancement video coding
CN115191116A (zh) * 2019-10-02 2022-10-14 威诺瓦国际有限公司 使用嵌入信令来校正信号损伤

Also Published As

Publication number Publication date
GB2601368A (en) 2022-06-01
GB2601368B (en) 2023-09-20
CN116508091A (zh) 2023-07-28
EP4252426A2 (en) 2023-10-04
GB202018755D0 (en) 2021-01-13
WO2022112775A2 (en) 2022-06-02
WO2022112775A3 (en) 2022-07-21

Similar Documents

Publication Publication Date Title
US10750179B2 (en) Decomposition of residual data during signal encoding, decoding and reconstruction in a tiered hierarchy
US20220385911A1 (en) Use of embedded signalling for backward-compatible scaling improvements and super-resolution signalling
US20230080852A1 (en) Use of tiered hierarchical coding for point cloud compression
US20220217345A1 (en) Quantization of residuals in video coding
US20220272342A1 (en) Quantization of residuals in video coding
KR20230107627A (ko) 후처리 제어를 이용한 비디오 디코딩
US20220182654A1 (en) Exchanging information in hierarchical video coding
US20220329802A1 (en) Quantization of residuals in video coding
US20240040160A1 (en) Video encoding using pre-processing
WO2023187307A1 (en) Signal processing with overlay regions
GB2614054A (en) Digital image processing
WO2023187372A1 (en) Upsampling filter for applying a predicted average modification
GB2617491A (en) Signal processing with overlay regions
GB2623226A (en) Quantization of residuals in video coding