KR20230021638A - 엔트로피 코딩을 위한 변환 계수 순서화 - Google Patents

엔트로피 코딩을 위한 변환 계수 순서화 Download PDF

Info

Publication number
KR20230021638A
KR20230021638A KR1020227037244A KR20227037244A KR20230021638A KR 20230021638 A KR20230021638 A KR 20230021638A KR 1020227037244 A KR1020227037244 A KR 1020227037244A KR 20227037244 A KR20227037244 A KR 20227037244A KR 20230021638 A KR20230021638 A KR 20230021638A
Authority
KR
South Korea
Prior art keywords
data
transform
order
coefficients
encoded
Prior art date
Application number
KR1020227037244A
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
Priority claimed from GBGB2005451.6A external-priority patent/GB202005451D0/en
Priority claimed from GBGB2005658.6A external-priority patent/GB202005658D0/en
Application filed by 브이-노바 인터내셔널 리미티드 filed Critical 브이-노바 인터내셔널 리미티드
Publication of KR20230021638A publication Critical patent/KR20230021638A/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/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4084Scaling of whole images or parts thereof, e.g. expanding or contracting in the transform domain, e.g. fast Fourier transform [FFT] domain scaling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • 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/18Methods 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 set of transform coefficients
    • 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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • 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/93Run-length coding

Landscapes

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

Abstract

본 개시는 인코더에서, 입력 데이터를 인코딩하여 인코딩된 출력 데이터를 생성하기 위한 방법을 제공하며, 본 방법은: 입력 데이터의 다운 샘플링된 버전을 사용하여 입력 데이터를 베이스 계층 재구성 데이터로 변환할 것을 지시하는 단계; 및 베이스 계층 재구성 데이터를 향상시키기 위한 명령어들을 제공하는 향상 계층 데이터를 생성하는 단계 ― 향상 계층 데이터는 베이스 계층 재구성 데이터로부터 생성된 재구성과 입력 데이터로부터 유도된 데이터 간의 차이를 나타내는 잔차 데이터를 포함하며, 잔차 데이터는 인코딩된 출력 데이터를 생성하기 위해 적어도 하나의 변환 및 적어도 하나의 데이터 압축 방법을 거침 ― 를 포함하며, 본 방법은: 잔차 데이터를 대응하는 변환 계수들로 변환하기 위해 아다마르(Hadamard) 변환을 포함하도록 적어도 하나의 변환을 배열하는 단계 ― 아다마르 변환의 상이한 출력 요소들이 인코딩될 상이한 표면들로서 배열됨 ―; 및 인코딩된 출력 데이터를 생성하기 위해 적어도 하나의 데이터 압축 방법에 대한 변환 계수들의 시퀀스를 제공하기 위해 표면들에서의 변환 계수들에 대한 출력 순서를 선택하는 단계를 포함하되, 출력 순서는 적어도 타일 래스터 순서 및 n x n 블록 "Z" 순서 중 하나로서 선택되는 것을 특징으로 한다.

Description

엔트로피 코딩을 위한 변환 계수 순서화
본 개시는 일반적으로 데이터를 인코딩하기 위한, 예를 들어, 이미지 또는 비디오 데이터를 인코딩하기 위한 장치에 관한 것이다. 또한, 본 개시는 상기한 장치를 사용하여 데이터를 인코딩하기 위한, 예를 들어, 이미지 또는 비디오 데이터를 인코딩하기 위한 방법들(즉, 인코딩하는 방법들)에 관한 것이다. 또한, 본 개시는 데이터를 디코딩하기 위한, 예를 들어, 이미지 또는 비디오 데이터를 디코딩하기 위한 장치에 관한 것이다. 또한, 본 개시는 전술한 장치를 사용하여 데이터를 디코딩하기 위한, 예를 들어, 인코딩된 이미지 또는 비디오 데이터를 디코딩하기 위한 방법들(즉, 디코딩하는 방법들)에 관한 것이다. 뿐만 아니라, 본 개시는 전술한 방법들을 실행하기 위한 컴퓨터 프로그램 제품들에 관한 것이다.
MPEG-2, MPEG-4 및 MPEG-5 비디오 인코딩 표준들이 잘 알려져 있다. 이들 표준들에 따른 인코딩 동안 효율적인 압축을 위해, 이미지를 공간적으로 나타내는 픽셀들의 어레이에서의 픽셀들의 매크로블록들은 데이터의 변환된 매크로블록에서의 이산 코사인 변환(discrete cosine transform, DCT) 계수들을 제공하도록 DCT를 사용하여 처리된다.
전술한 MPEG 인코더들은 컴퓨팅 자원들이 보다 적었던 시기에 개발되었고, 이미지 및 비디오 데이터를 직렬 방식으로 매우 많이 처리하며, 전술한 인코딩된 데이터를 디코딩할 때 유사한 고려사항이 준용된다. 그러나, 현대의 컴퓨팅 디바이스들은 다수의 처리 코어들을 채용함으로써 데이터를 보다 병렬적인 방식으로 처리할 수 있다. 이들 현대의 컴퓨팅 디바이스들은 병렬 컴퓨팅 디바이스들 상에서 실행하기에 보다 적합한 다른 유형들의 인코딩의 개발을 장려하였다.
이들 다른 유형들의 인코딩은 특히, 본원에 원용되는 다양한 공개된 특허 출원들에 기재된 VC-6 및 LCEVC 표준들을 포함한다. LCEVC 표준은 예를 들어, 2020년 1월에 브뤼셀에러 열린 MPEG 회의 129에서 발표된 ISO/IEC DIS 23094-2 LCEVC(Low Complexity Enhancement Video Coding)의 초안에 기재되어 있다. VC-6 표준은 SMPTE ST 2117-1(2020년 7월 21일)에 기재되어 있다. 이들 표준 명세서들 양자 또한 본원에 원용된다.
특히, VC-6 표준은 다음 특허 출원들에 기재되어 있다:
EP12756254.4, EP12756257.7, EP12756258.5,
EP12759220.2, EP12818920.6, EP12759221,
EP12799276.6, EP13723460.5, EP13722424.2,
EP13724216.0, PCT/EP2018/0756033, EP17386046.1,
EP18386002.2, PCT/GB2018/053546, PCT/GB2018/053555, PCT/GB2018/053547, PCT/GB2018/053554, PCT/GB2018/053548.
특히, LCEVC 유형은 다음 특허 출원들에 기재되어 있다:
EP12756254.4, EP12756257.7, EP 12756258.5,
EP12759220.2, EP12818920.6, EP12799276.6,
EP13708525.4, EP13723460.5, EP13722424.2,
EP13724216.0, EP14722769.8, EP16804893.2,
EP16718438.1, EP17783955.2, EP17783956.0,
EP17783957.8, PCT/EP2018/075603, PCT/GB2018/053548,
EP 18199014.4, PCT/GB2019/053068, PCT/GB2019/053066,
PCT/GB2019/053067, PCT/GB2019/053069, PCT/GB2020/050695,
PCT/GB2019/051974, PCT/GB2019/052152, PCT/GB2019/052151,
PCT/GB2019/052154, PCT/GB2019/052166, PCT/GB2019/052867, PCT/GB2019/053070, PCT/GB2019/053551, PCT/GB2019/053547,
PCT/GB2020/050492, PCT/GB2020/050574, PCT/GB2020/050693,
PCT/GB2020/050692, PCT/GB2020/050725, 및 PCT/GB2020/050695.
LCEVC 및 VC-6은 다양한 공지된 MPEG, H.264 및 H.265 표준들로 구현되는바와 같은 예측 및 DCT를 채용하지 않는다. 바람직하게는, VC-6 및/또는 LCEVC는 이러한 알려진 표준들을 채용하여, 인코딩의 베이스 계층을 구현하고, 레거시 시스템들과의 하위 호환성을 보장하며, 이어서 예를 들어 소프트웨어로 구현되는 적어도 하나의 향상 계층 ― 이는 디코딩된 데이터에 대해 스케일러블 품질을 갖도록 베이스 계층을 향상시킴 ― 을 추가할 수 있으며, 이에 의해 디코더들에서의 비디오 렌디션의 품질과 비트 레이트 간의 균형을 제공한다.
특히, LCEVC 및 VC-6에서, 인코딩의 베이스 계층은 다운 샘플링된 원래의 입력 이미지 또는 비디오 데이터에 대해 수행된다. 베이스 인코딩된 데이터의 디코딩된 버전과 원래의 입력 간의 차이가 프레임 단위로 컴퓨트되고, 이 차이는 베이스 인코딩된 데이터의 디코딩된 버전에 추가될 수 있는 잔차 데이터에 대한 기초를 형성한다. LCEVC와 VC-6 양자는 다수의 레벨들의 공간 스케일러빌리티를 제공하며, 여기서 잔차 데이터는 상이한 레벨들의 피처들을 상이한 공간 해상도들로 효율적으로 인코딩하기 위해 각 레벨에 대해 컴퓨트될 수 있다. 이는 비디오 시퀀스에서 프레임 또는 다른 프레임들 내에서 이웃 블록들을 사용하여 매크로블록에 대해 예측이 행해지는 비교 MPEG, H.264 및 H.265 표준들과 상이하다. 이는 H.264 및 H. 265로 가능하지 않은(예를 들어, 예측을 통해 도입되는 블록들 간의 고유한 공간적 및 시간적 상관관계들로 인해 가능하지 않은) 고도로 병렬화 가능한 처리를 가능하게 한다.
본 개시에 의해 다루어지는 비디오 코딩에서의 계속 진행 중인 객관적인 기술적 문제는 어떻게 데이터를 보다 효율적인 방식으로 인코딩할지이다. 예를 들어, VC-6 및 LCEVC 표준들에 의해 생성되는 바와 같은 적어도 잔차 데이터가 보다 효율적인 방식으로 인코딩될 수 있는 방법들을 개발하는 것이 요구된다.
본 개시는 적어도 잔차 데이터를 보다 효율적이고 효과적인 방식으로 인코딩하기 위한 개선된 장치를 제공하는 것을 추구한다. 또한, 본 개시는 잔차 데이터를 보다 효율적이고 효과적인 방식으로 인코딩하기 위한 개선된 방법을 제공하는 것을 추구한다. 또한, 본 개시는 적어도 잔차 데이터를 보다 효율적이고 효과적인 방식으로 디코딩하기 위한 개선된 장치를 제공하는 것을 추구한다. 또한, 본 개시는 적어도 잔차 데이터를 보다 효율적이고 효과적인 방식으로 디코딩하기 위한 개선된 방법을 제공하는 것을 추구한다.
제1 양태에서, 본 개시는 인코더에서, 입력 데이터를 인코딩하여 인코딩된 출력 데이터를 생성하기 위한 방법을 제공하며, 본 방법은: 입력 데이터의 다운 샘플링된 버전을 사용하여 입력 데이터를 베이스 계층 재구성 데이터로 변환할 것을 지시하는 단계; 및 베이스 계층 재구성 데이터를 향상시키기 위한 명령어들을 제공하는 향상 계층 데이터를 생성하는 단계 ― 향상 계층 데이터는 베이스 계층 재구성 데이터로부터 생성된 재구성과 입력 데이터로부터 유도된 데이터 간의 차이를 나타내는 잔차 데이터를 포함하며, 잔차 데이터는 인코딩된 출력 데이터를 생성하기 위해 적어도 하나의 변환 및 적어도 하나의 데이터 압축 방법을 거침 ― 를 포함하며, 본 방법은: 잔차 데이터를 대응하는 변환 계수들로 변환하기 위해 아다마르(Hadamard) 변환을 포함하도록 적어도 하나의 변환을 배열하는 단계 ― 아다마르 변환의 상이한 출력 요소들이 인코딩될 상이한 표면들로서 배열됨 ―; 및 인코딩된 출력 데이터를 생성하기 위해 적어도 하나의 데이터 압축 방법에 대한 변환 계수들의 시퀀스를 제공하기 위해 표면들에서의 변환 계수들에 대한 출력 순서를 선택하는 단계를 포함하되, 출력 순서는 적어도 타일 래스터 순서 및 n x n 블록 "Z" 순서 중 하나로서 선택되는 것을 특징으로 한다.
본 발명은 변환된 (아다마르) 계수들의 판독이 인코딩된 출력 데이터를 생성할 때 데이터 압축 성능 개선을 가능하게 한다는 점에서 바람직하다.
선택 사항으로서, 본 방법에서, 변환된 계수들은 미리 정의된 코딩 유닛 크기(예를 들어, 잔차의 2 x 2 또는 4 x 4 중 어느 하나의 블록들)에 기초하여 생성되고, 타일 래스터 순서에 대한 타일들은 코딩 유닛 크기들보다 큰 변환 계수들의 세트들을 포함한다. 타일 래스터 순서는 변환된 계수들의 타일들 ― 타일들은 래스터 방식으로 판독됨 ― 을 인코딩하는 것을 포함할 수 있다.
선택 사항으로서, 본 방법에서, 타일의 방식은 8 x 8 요소들, 16 x 16 요소들, 32 x 32 요소들의 크기를 갖는 타일들을 인코딩하는 것을 포함한다.
선택 사항으로서, 본 방법에서, 적어도 하나의 데이터 압축 방법은 런 길이 인코딩(run-length encoding, RLE)에 이어 허프만 인코딩(Huffman encoding)을 포함한다.
선택 사항으로서, n x n 블록 "Z" 순서는 계수들의 주어진 그룹에서 상부 좌측 계수로부터 상부 우측 계수로, 하부 좌측 계수로, 하부 우측 계수로 하나 이상의 n x n "Z" 순서 판독을 포함하며, n x n "Z" 순서 판독은 변환된 계수들의 상이한 그룹들에 걸쳐 재귀적 n x n "Z" 순서로 반복된다. 예를 들어, "Z" 순서는 계수들의 주어진 그룹에서 상부 좌측 계수로부터 상부 우측 계수로, 하부 좌측 계수로, 하부 우측 계수로 하나 이상의 2 x 2 "Z" 순서 판독을 포함할 수 있으며, 2 x 2 "Z" 순서 판독은 아다마르 변환된 계수들의 행렬 또는 표면이 계수들의 다수의 2 x 2 그룹들을 포함할 때 "Z" 순서로 반복된다.
선택 사항으로서, 본 방법은 VC-6 또는 LCEVC 표준들과 호환가능하도록 구현된다.
제2 양태에서, 동작 시, 입력 데이터를 인코딩하여 대응하는 인코딩된 출력 데이터를 생성하는 인코더가 제공되며, 인코더는 입력 데이터의 다운 샘플링된 버전을 사용하여 입력 데이터를 베이스 계층 재구성 데이터로 변환할 것을 지시하며, 인코더는 입력 데이터의 다운 샘플링된 버전을 향상시키기 위한 명령어들을 제공하는 향상 계층 데이터를 생성하며, 잔차 데이터는 베이스 계층 재구성 데이터로부터 생성된 재구성과 입력 데이터로부터 유도된 데이터 간의 차이를 나타내며, 잔차 데이터는 인코딩된 출력 데이터를 생성하기 위해 인코더에서, 적어도 하나의 변환 및 적어도 하나의 데이터 압축 변환을 거치며, 적어도 하나의 변환은 잔차 데이터를 대응하는 변환 계수들로 변환하기 위해 아다마르 변환을 포함하며, 아다마르 변환의 상이한 출력 요소들은 인코딩될 상이한 표면들로서 배열되며, 인코더는 인코딩된 출력 데이터를 생성하기 위해 적어도 하나의 데이터 압축 방법에 대한 변환 계수들의 시퀀스를 제공하기 위해 표면들에서의 변환 계수들에 대한 출력 순서를 선택하도록 구성되며, 출력 순서는 적어도 타일 래스터 순서 및 n x n 블록 "Z" 순서 중 하나로서 선택되는 것을 특징으로 한다.
선택 사항으로서, 인코더에서, 적어도 하나의 데이터 압축 방법은 런 길이 인코딩(RLE)에 이어 허프만 인코딩을 포함한다.
선택 사항으로서, 인코더에서, 타일 래스터 순서는 변환된 계수들의 타일들 ― 타일들은 래스터 방식으로 판독됨 ― 을 인코딩하는 것을 포함한다.
선택 사항으로서, 인코더에서, 타일 래스터 순서는 8 x 8 요소들 내지 64 x 64 요소들의 범위 내의 크기를 갖는 타일들을 인코딩하는 것을 포함하되, 변환 계수들은 각 타일 내에서 래스터 순서로 선택된다. 예를 들어, 타일들은 8 x 8 요소들, 16 x 16 요소들, 또는 32 x 32 요소들의 크기를 가질 수 있다.
선택 사항으로서, 인코더에서, n x n 블록 "Z" 순서는 계수들의 주어진 그룹에서 상부 좌측 계수로부터 상부 우측 계수로, 하부 좌측 계수로, 하부 우측 계수로 하나 이상의 n x n "Z" 순서 판독을 포함하며, n x n "Z” 순서 판독은 변환된 계수들의 상이한 그룹들에 걸쳐 재귀적 n x n "Z" 순서로 반복된다. 예를 들어, "Z" 순서는 계수들의 주어진 그룹에서 상부 좌측 계수로부터 상부 우측 계수로, 하부 좌측 계수로, 하부 우측 계수로 하나 이상의 2 x 2 "Z" 순서 판독을 포함할 수 있으며, 2 x 2 "Z" 순서 판독은 아다마르 변환된 계수들의 행렬 또는 표면이 계수들의 다수의 2 x 2 그룹들을 포함할 때 "Z" 순서로 반복된다.
선택 사항으로서, 인코더는 VC-6 또는 LCEVC 표준들과 호환가능하도록 구현된다.
제3 양태에 따르면, 컴퓨터 판독가능 명령어들이 저장되어 있는 비일시적 컴퓨터 판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품으로서, 컴퓨터 판독가능 명령어들은 전술한 제2 양태에 따른 방법을 실행하기 위한 처리 하드웨어를 포함하는 컴퓨터화된 디바이스에 의해 실행가능한, 컴퓨터 프로그램 제품이 제공된다.
제4 양태에 따르면, 디코더에서, 인코딩된 데이터를 디코딩하여 디코딩된 출력 데이터를 생성하기 위한 방법이 제공되며, 본 방법은: (i) 디코더에서, 인코딩된 데이터를 수신하는 단계; (ii) 수신된 인코딩된 데이터를, 입력 데이터의 다운 샘플링된 버전으로부터 유도되는 베이스 계층 재구성을 향상시키기 위한 명령어들을 제공하는 향상 계층 데이터로 변환하기 위해 적어도 하나의 역변환을 적용하는 단계 ― 향상 계층 데이터는 그 향상을 제공하기 위한 잔차 데이터를 포함하며, 잔차 데이터는 수신된 인코딩 데이터를 생성하기 위해 적어도 하나의 변환 및 적어도 하나의 데이터 압축 방법을 거침 ― 를 포함하며, 본 방법은: (iii) 수신된 인코딩된 데이터를 적어도 하나의 데이터 압축 방법에 따라 압축해제하여 중간 디코딩된 데이터를 생성하는 단계; 및 (iv) 중간 디코딩된 데이터로부터 유도된 변환 계수들을 잔차 데이터로 변환하기 위해 역 아다마르 변환을 포함하도록 적어도 하나의 역변환을 배열하는 단계를 더 포함하며, 변환 계수들은 타일 래스터 방식 또는 n x n 블록 "Z" 순서로 판독됨으로써 디코딩되는 것을 특징으로 한다.
제5 양태에 따르면, 컴퓨터 판독가능 명령어들이 저장되어 있는 비일시적 컴퓨터 판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품으로서, 컴퓨터 판독가능 명령어들은 제4 양태에 따른 방법을 실행하기 위한 처리 하드웨어를 포함하는 컴퓨터화된 디바이스에 의해 실행가능한, 컴퓨터 프로그램 제품이 제공된다.
제6 양태에 따르면, 인코딩된 데이터를 디코딩하여 디코딩된 출력 데이터를 생성하기 위한 디코더가 제공되며, 디코더는:(i) 인코딩된 데이터를 수신하기 위한 입력부; (ii) 수신된 인코딩된 데이터를, 입력 데이터의 다운 샘플링된 버전으로부터 유도되는 베이스 계층 재구성을 향상시키기 위한 명령어들을 제공하는 향상 계층 데이터로 변환하기 위해 적어도 하나의 역변환을 적용하기 위한 데이터 처리 장치 ― 향상 계층 데이터는 그 향상을 제공하기 위한 잔차 데이터를 포함하며, 잔차 데이터는 수신된 인코딩 데이터를 생성하기 위해 적어도 하나의 변환 및 적어도 하나의 데이터 압축 방법을 거침 ― 를 포함하며; 디코더는: (iii) 수신된 인코딩된 데이터를 적어도 하나의 데이터 압축 방법에 따라 사용하여 압축해제하여 중간 디코딩된 데이터를 생성하기 위한 압축해제 장치; 및 (iv) 중간 디코딩된 데이터로부터 유도된 변환 계수들을 잔차 데이터로 변환하기 위해 적어도 하나의 역변환을 역 아다마르 변환으로서 적용하는 역변환 장치를 더 포함하며, 변환 계수들은 타일 래스터 방식 또는 n x n 블록 "Z" 순서로 판독됨으로써 디코딩되는 것을 특징으로 한다.
본 개시의 추가적인 양태들, 이점들, 특징들 및 목적들은 아래의 첨부된 청구범위와 관련하여 해석되는 예시적인 실시예들의 도면 및 상세한 설명으로부터 명백해질 것이다.
본 개시의 특징들은 첨부된 청구범위에 의해 정의된 바와 같이 본 개시의 범위를 벗어나지 않고서 다양한 조합으로 결합될 수 있음을 이해할 것이다.
예시적인 실시예들의 전술한 요약뿐만이 아니라, 아래의 상세한 설명은 첨부된 도면들과 함께 읽혀질 때 보다 잘 이해된다. 본 개시를 예시할 목적으로, 본 개시의 예시적인 구성이 도면에 도시되어 있다. 그러나, 본 개시는 본원에서 개시된 특정 방법들 및 장치들에 제한되지 않는다. 또한, 당업자는 도면들이 실척도로 그려진 것이 아님을 이해할 것이다. 가능한 한, 동일한 요소들은 동일한 번호들로 표시된다.
이제 다음의 도해들을 참조하여 본 개시의 실시예들이 단지 예로서 설명될 것이며,
도 1a는 아다마르 변환으로부터 계수들을 판독하는 Z 순서 방식의 상이한 스케일들의 개략도이고;
도 1b는 월시-아다마르 변환(Walsh-Hadamard, DWHT)에 대한 기초의 도면이고;
도 1c는 타일 래스터 순서 판독의 일부의 개략도이고;
도 1d는 비교 래스터 판독의 개략도이며;
도 2 내지 도 21은 다양한 유형들의 이미지 또는 비디오 콘텐츠에 적용될 때 아다마르 변환으로부터 계수들을 판독하는 타일 및 Z 순서 방식을 채용하는 것으로부터 유도되는 성능 이익들의 그래픽도들이다.
첨부된 도면에서, 밑줄친 번호는 자신 위에 밑줄친 번호가 위치하고 있는 항목 또는 밑줄친 번호에 인접해 있는 항목을 나타내기 위해 사용된다. 밑줄이 없는 번호는 밑줄이 없는 번호를 해당 항목에 연결하는 라인에 의해 식별되는 항목과 관련이 있다.
다음의 상세한 설명에서, 본 개시의 예시적인 실시예들 및 이 실시예들이 구현될 수 있는 방법들이 설명된다. 본 개시를 수행하는 몇몇 모드들이 개시되지만, 당업자라면 본 개시를 수행하거나 실시하기 위한 다른 실시예들도 가능하다는 것을 인식할 것이다.
인코딩된 출력 데이터를 생성하기 위해 인코더에서, 입력 데이터를 인코딩하는 것은 입력 데이터의 다운 샘플링된 버전을 사용하여 입력 데이터를 베이스 계층 재구성 데이터로 변환할 것을 지시하는 것과 베이스 계층 재구성 데이터를 향상시키기 위한 명령어들을 제공하는 향상 계층 데이터를 생성하는 것을 포함할 수 있다는 것이 LCEVC 및 VC-6과 같은 향상 코딩 표준들을 통해 알려져 있다. 예를 들어, 입력 데이터는 다운 샘플링되고 인코딩 및 후속 디코딩을 위해 베이스 코덱에 공급될 수 있다. 인코딩된 베이스 계층은 디코더로 송신되는 베이스 계층 재구성 데이터의 인코딩을 형성한다. 향상 계층 데이터는 베이스 계층 재구성 데이터로부터 생성된 재구성과 입력 데이터로부터 유도된 데이터(즉, 후속해서 디코딩되는 인코딩된 베이스 계층) 간의 차이를 나타내는 잔차 데이터를 포함한다. 상이한 공간 해상도들을 나타내는 잔차 데이터의 다수의 계층들(예를 들어, LCEVC는 두 개의 계층들을 갖는다)이 존재할 수 있다. 잔차 데이터의 각 스트림은 인코딩된 출력 데이터, 즉 잔차 스트림들의 인코딩된 세트를 생성하기 위해 적어도 하나의 변환 및 적어도 하나의 데이터 압축 방법을 거친다. 양자화가 또한 변환 후에 수행될 수 있다. 인코딩된 출력 데이터는 인코딩된 베이스 계층을 (예를 들어, 멀티플렉싱된 결합된 베이스 및 향상 스트림의 일부로서) 포함할 수 있거나, 또는 분리되어 송신될 수 있다. 인코더는 이 방법을 수행하도록 적합하게 구성될 수 있다.
유사하게, 디코더에서, 인코딩된 데이터를 디코딩하여 디코딩된 출력 데이터를 생성하기 위한 대응하는 방법이 또한 있을 수 있다. 이 방법은 디코더에서, 인코딩된 데이터를 수신하는 단계 및 수신된 인코딩된 데이터를 향상 계층 데이터로 변환하기 위해 적어도 하나의 역변환을 적용하는 단계를 포함한다. 역변환은 변환된 계수들의 세트를 다시 잔차 데이터로 변환할 수 있다. 역양자화가 또한 변환 후에 수행될 수 있다. 향상 계층 데이터는 인코더에서 생성되었던 전술된 잔차 데이터를 포함한다. 디코더는 인코딩된 베이스 계층을 수신하고, (예를 들어, 전술된 인코더에 의해 사용된 베이스 계층 인코더에 대응하는) 베이스 계층 디코더를 이용한 이의 디코딩을 지시할 수 있다. 이는 디코더에서, 베이스 계층 재구성 데이터를 초래할 수 있으며, 이는 잔차 데이터로 향상될 수 있다. 하나의 경우에, 베이스 계층 재구성 데이터로 생성된 재구성은 잔차 데이터의 적어도 하나의 계층을 적용하기 전에 업 샘플링된다. 디코더는 이 방법을 수행하도록 적합하게 구성될 수 있다.
보다 상세한 사항은 LCEVC 및 VC-6 표준과 관련된 공개된 자료들에서 찾아볼 수 있다.
월시-아다마르 변환은 데이터를 압축하는 간단하지만 효과적인 방법이다. 이는 베이스 변환에 단지 가산 및 감산만 필요하고, 곱셈이 필요하지 않는다는 점에서 상당한 이점을 갖는다. 이산 월시-아다마르 변환(discrete Walsh-Hadamard transform, DWHT)은 이산 아다마르 행렬의 단순 재배열로부터 얻어진다. 아다마르 행렬은 이러한 특성을 갖는 행렬이다. 보다 고차 행렬들은 다음의 연산을 반복적으로 적용함으로써 찾아질 수 있다:
Figure pct00001
식 1
예를 들어:
Figure pct00002
식 2
DWHT는 단순히 대응하는 아다마르 행렬로부터 정규화 및 행들을 순차로(즉, 부호 변경의 수의 관점에서) 재배열함으로써 얻어진다. 이에 따라, 4-포인트 DWHT는 다음으로 주어진다:
Figure pct00003
식 3
1-D DWHT에 대한 기저 함수들(140, 142, 144, 146)이 도 1b에 도시된다. 특정 경우들에서, 정규화 팩터(수학식 3에서 1/4)는 생략될 수 있어, 변환 행렬이 수학식 2의 아다마르 행렬과 유사하게 된다. 예를 들어, 이는 정규화가 양자화와 같은 다른 기능들로 통합되는 경우에 가능할 수 있다. LCEVC 및 VC-6 내에서, DWHT 또는 아다마르 변환에 기초한 변환은 방향성 분해(directional decomposition, DD) 변환으로서 지칭된다. 이는 4 x 4 변환 행렬 또는 보다 큰 16 x 16 변환 행렬로서 적용될 수 있으며, 후자의 경우는 방향성 분해 제곱(directional decomposition squared, DDS) 변환으로서 지칭되는데, 이는 DD 변환을 두 번 적용하는 것과 등가이기 때문이다. 방향성 분해들은 아다마르 행렬의 행들이 직교하고 신호의 에너지가 아다마르 행렬의 제1 행과 연관된 "평균" 계수를 통해 표현되므로, 에너지 압축 및 비상관 특성들을 가지며, 다른 계수들은 상이한 방향들에서의 차이들을 나타낸다. 많은 원래의 이미지 블록들에 대해, 신호 에너지는 블록에 걸쳐 상당히 균일하게 분포되는 경향이 있다. 변환 후에, 데이터는 수평 및 수직으로 상관해제되었고, 많은 블록들에 대해 하나의 우세한 계수, 즉 평균 계수가 대부분의 신호 에너지를 포함한다.
아다마르 함수들은 VC-6 및 LCEVC 인코딩 동작들 동안 생성된 잔차 요소들의 데이터 어레이들에 적용되어, 대응하는 아다마르 변환된 요소들 ― 본원에서 변환된 계수들로서 지칭됨 ― 을 제공한다. 예를 들어, 4 x 4 아다마르 행렬(DD 변환)의 각 행은 코딩 유닛(통상적으로 잔차들의 2 x 2 또는 4 x 4 블록) 내의 평균, 수평 차이들, 수직 차이들 및 대각선 차이들에 각각 대응하여, A, H, V 및 D 중 하나로서 라벨링될 수 있다. 설명된 바와 같이, 예를 들어 LCEVC 표준에서, 잔차들을 포함하는 2 x 2 코딩 유닛은 4 x 1 벡터로 평탄화되고, 그 후 아다마르 행렬을 사용하여 변환되어 [A, H, V, D] 계수 항들을 갖는 4 X 1 벡터를 생성한다. 이들 계수들 각각은 다른 유사한 계수들과 그룹화될 수 있어서, 변환은 네 개의 "표면들", 즉, A, H, V 및 D 중 특정 하나에 관련된 변환된 계수 값들의 프레임들 또는 행렬들을 생성한다. 예를 들어, A 표면, H 표면, V 표면 및 D 표면이 있을 수 있다. 16 x 16 DDS 변환의 경우, 16개의 표면들이 있을 수 있다. 아다마르 변환은 코딩 유닛들에 대해 병렬로 수행될 수 있고, 그 후, 엔트로피 코딩이 뒤따르며, 이는 런 길이 인코딩에 이어 허프만 인코딩을 포함한다.
비교 LCEVC 표준 구현예들에서, 각 표면에 대한 변환된 계수들은 RLE에 대해, 표면에 걸쳐 행 우선(major row) 래스터 순서로 판독된다. 이러한 순서의 예가 도 1d에 도시되며, 이에 의해 변환된 계수 값들(160)이 표면의 각 행을 따라 차례로(예를 들어, 라인(162)에 의해 도시된 바와 같이 각 행을 따라 좌측에서 우측으로) 판독된다.
본 예들에서, 본 발명자들은 RLE 이전에 변환된 계수들의 순서를 선택하는 것이 압축 효율에 영향을 미칠 수 있다는 것을 인식했다. 이들은 (예를 들어, LCEVC 또는 VC-6로 수행된 바와 같은) 향상 인코딩의 일부로서 생성된 잔차 데이터가 보통 비디오의 원래의 프레임 내의 원래의 공간 상관에 기초하여 공간 상관을 나타낼 것이라는 것을 인식했다. 본원에서 설명된 향상 코딩은 원래의 데이터와 보다 낮은 공간 해상도로부터의 업 샘플링된 재구성의 비교에 기초하여 향상 데이터를 생성하므로, 이는 그 특성들이 H.264 및 H.265와 같은 비교 비디오 코덱들에서 생성된 잔차 데이터와 상이하고, 후자의 경우 잔차 데이터는 (예를 들어, 이웃하는 블록들을 통한) 로컬 공간 예측 또는 (예를 들어, 다른 프레임들을 통한) 모션 벡터 매개 시간 예측에 기초하여 생성된다. 이로 인해, LCEVC 및 VC-6과 같은 표준들 내의 잔차 데이터는 비교 잔차 처리 접근법들로부터 예상되지 않는 공간 상관과 같은 상이한 특성들을 가진다. 본 발명자들은 이러한 공간 상관이 다수의 코딩 유닛들에 걸쳐 확장될 수 있고, 따라서 표면들 내의 변환된 계수들이 또한 공간 상관을 나타낼 수 있다는 것을 인식했다. 예를 들어, 수평 라인이 다수의 코딩 유닛들에 걸쳐 확장될 수 있다. 이에 따라, 본 예들은 후속 RLE 및/또는 허프만 인코딩 동안 바람직한 압축을 가능하게 하는 변환된 계수들에 대한 판독 순서의 선택을 가능하게 한다. 개선된 판독 순서는 인코딩되는 콘텐츠에 의존할 수 있다는 것이 추가로 밝혀졌다. 이와 같이, 콘텐츠 의존 판독 순서는 인코딩 동안 선택될 수 있고, 압축해제 이후에 대응하는 판독을 가능하게 하기 위해 디코더에 통신될 수 있다. 이러한 이점들은 (예를 들어, 판독 전 또는 후에) 수행되는 임의의 양자화와 독립적으로 일어나는 것으로 밝혀졌다.
본원에서 설명된 특정 예들에서, 주요 로우 래스터 판독 순서에 대한 두 가지 대안예들이 제시된다. 이들은 타일 래스터 순서 및 n x n 블록 "Z" 순서를 포함한다. 각 순서의 이점은 콘텐츠 유형 및 원하는 비트레이트 중 하나 이상에 의해 변할 수 있어서, 세 개의 순서들 중 하나가 최상의 압축을 제공하기 위해 인코딩 동안 선택되고, 디코딩을 위한 구성 데이터로서 디코더에 통신될 수 있다.
도 1a는 변환된 계수들의 표면에 대해 수행되는 "Z" 판독 순서의 예를 도시한다. 도 1a의 상부 좌측 코너는 표면에서의 변환된 계수들(102, 104, 106, 108)의 2 x 2 블록(110)에 적용되는 "Z" 순서를 도시한다. 도 1a의 나머지 부분들은 이러한 "Z" 순서가 어떻게 재귀적으로 적용될 수 있는지를 도시한다. 예를 들어, 상부 우측 코너는 4개의 2 x 2 블록들(110)로부터 형성된 16개의 변환된 계수들의 블록(120)에 걸쳐 적용되는 "Z" 순서를 도시한다. 그 후, 하부 좌측 코너는 블록들(120)의 2 x 2 그룹에 적용되는 "Z" 순서를 도시하고, 이 패턴은 다시 하부 우측 코너에서의 계수들(130)에 대해 반복된다.
더 상세하게는, 도 1a의 상부 좌측을 참조하면, 표면으로부터의 변환된 계수들의 2 x 2 블록은 상부 좌측 계수로부터 상부 우측 계수로, 하부 좌측 계수로, 하부 우측 계수로, 즉 "Z" 순서로 판독된다. 도 1a의 상부 우측에 도시된 바와 같이, 변환된 계수들의 4x4 그룹은 2 x 2 변환 계수들의 네 개의 그룹들에서 판독되며, 여기서 판독은 또한, 예시된 바와 같이 네 개의 그룹들에 대해 "Z" 순서로 구현된다. 이러한 판독의 "Z" 순서는 또한, 변환된 계수들의 16x16 그룹에 대해 그리고 또한 변환된 계수들의 32 x 32 그룹에 대해 도 1a에 도시된다. 변환된 계수들이 도 1a에 표시된 순서로 판독되었을 때, 디코더로 통신하기 위한 압축된 데이터를 생성하기 위해 런 길이 인코딩, 허프만 코딩 또는 다른 엔트로피 인코딩 접근법들을 사용하여 인코딩되기 쉬운 변환된 계수들의 대응하는 1차원(1-D) 시퀀스가 생성된다. 판독 전 또는 후에 양자화가 또한 수행될 수 있다. 바람직하게는, VC-6 및 LCEVC에 대한 데이터를 인코딩할 때 런 길이 인코딩에 이어 허프만 코딩이 뒤따르는 조합이 채용된다.
특정 경우들에서, 도 1a에 도시된 "Z" 순서는 행 우선 래스터 순서에 비해 개선된 인코딩을 제공하는 것으로 나타났다. 특정 콘텐츠 유형들에 대해, 구성가능한 크기의 타일들을 갖는 타일 래스터 순서가 또한 압축 개선을 제공하는 것으로 밝혀졌다. 특정 경우들에서, 변환된 계수들을 타일 방식으로 판독하는 것은 전술한 "Z" 판독 순서보다 훨씬 더 양호한 압축 결과들을 제공하는 것으로 밝혀졌다. 타일 래스터 순서의 경우에, 계수들은 정의된 타일들 내에서 래스터 순서로 판독되고, 그 후 판독된 변환된 계수들은 후속해서 런 길이 인코딩, 허프만 인코딩, 또는 런 길이 인코딩과 허프만 인코딩의 조합을 사용하여 압축된다(상술된 바와 같은 양자화는 선택 사항적임). 8 x 8 요소 어레이들 내지 64 x 64 요소 어레이들, 예를 들어, 8 x 8 요소 어레이들, 16 x 16 요소 어레이들 또는 32 x 32 요소 어레이들의 범위 내의 크기를 갖는 타일들이 바람직한 결과들을 제공한다는 것이 밝혀졌다. 전술한 정사각형 요소 어레이들 대신에, 직사각형 포맷 요소 어레이들이 사용될 수 있다는 것이 이해될 것이다.
도 1c는 변환된 계수들(152)의 표면(150)에 적용되는 타일 래스터 순서의 예를 도시한다. 예시적인 타일(154)은 dx 계수들 x dy 계수들의 크기로 도시된다. 특정 경우들에서, 정사각형 타일들에 대해, dx = dy = d이며, 여기서 d는 8, 16, 32 또는 64. 중 하나로서 설정될 수 있다. 처음 세 개의 타일들에 대해 부분적으로 도시된 바와 같이, 판독 순서는 각 타일 내에서, 예를 들어, 다음 타일로 이동하기 전에 도시된 바와 같이 타일의 각 행을 따라, 래스터 순서로 이동한다. 타일 래스터 순서는 변환된 계수들(152)의 전체 표면(150)에 걸쳐 1D 시퀀스를 생성하기 위해 계속될 수 있다. 이들 타일들은 변환에 대한 기초로서 사용되는 원래의 코딩 유닛 크기들과 독립적으로 정의된다(여기서 변환은 표면을 생성하기 위해 각 코딩 유닛에 변환이 병렬로 적용될 수 있다)는 점에 유의해야 한다.
요약하면, 아다마르 변환으로부터의 데이터의 단순 래스터 판독에 대한 비교 표준화된 처리 실시에서, 예를 들어, 런 길이 인코딩(RLE)을 사용하여 압축을 위한 계수들의 시퀀스를 생성하기 위해 채용될 수 있다. 그러나, 전혀 예기치 않게, 아다마르 계수들의 판독의 "Z" 순서 또는 타일 판독 방식 중 하나 이상을 채용하는 것이 개선된 압축 성능을 제공하는 데 훨씬 더 바람직한 것으로 밝혀졌다. 이러한 압축 성능의 증가는 주어진 이미지 프레임 또는 비디오 프레임 내의 공간 상관으로 발생하는 것으로 여겨진다. 이러한 압축 성능의 개선은 도 2 내지 21에 도시되어 있다.
"Z" 순서화는 본질적으로, 도 1a에 도시된 바와 같이, 먼저 Z 패턴으로 네 개의 계수들을 인코딩한 다음, Z 패턴으로 4개의 Z 패턴들을 인코딩하는 재귀적 Z 형상 패턴으로 계수들을 인코딩한다. 이 프로세스는 예를 들어, 전체 이미지가 인코딩될 때까지, 점점 더 큰 스케일들로 반복된다. 그러나, 주어진 이미지에서의 표면 길이들이 2의 거듭제곱이 아닐 때 경계 조건들이 Z 순서 알고리즘을 약간 복잡하게 하지만, 그럼에도 불구하고 Z 순서 판독의 다양한 효과적인 구현예들이 실현가능하다는 것이 이해될 것이다.
실험적으로, 상이한 유형들의 이미지 및 비디오 콘텐츠를 인코딩할 때, 본 개시의 실시예들은 데이터 압축 성능 개선, 예를 들어, 계수들의 래스터 판독에 비해 달성가능한 압축에서 40% 정도의 향상을 제공할 수 있다. 그러나, 특정 유형들의 이미지 및 비디오 콘텐츠에 대해, 달성 가능한 압축의 향상은 도 2 내지 도 21의 특정 도면에 도시된 바와 같이 40%보다 상당히 작다.
도 2 및 도 3은 DD 변환(4 x 4 아다마르 변환) 및 DDS 변환(16 x 16 아다마르 변환)에 기초한 각 인코딩에 대한 결과들(200 및 300)을 도시한다. y축은 원래의 행 우선 래스터 순서에 비해, 상대적 변화 ΔR을 예를 들어, 다음과 같이, 백분율로 제시한다:
Figure pct00004
여기서, Rnew는 새로운 제안된 순서화 방법들로부터 획득된 비트레이트이고, Rorig는 원래의 행 우선 래스터 순서이다. ΔR < 0%의 값들은 원래의 순서에 대한 개선을 나타내고, ΔR > 0%의 값들은 압축 효율의 감소를 나타낸다. 고정 양자화 파라미터들을 갖는 프레임들의 세트 수(예를 들어, 100)를 사용하여 테스트들을 수행하였다. 도 2 및 도 3은 인코딩 비트레이트가 증가함에 따라 제안된 순서들이 개선을 제공한다는 것을 나타낸다. 도 2 및 도 3은 제1 테스트 비디오 "캑터스(cactus)"에 대한 결과들을 나타낸다. DD 및 DDS 변환들에 대해 유사하게, 도 4 및 도 5는 제2 테스트 비디오 "베이스켓볼 드라이브(BasketballDrive)"에 대한 결과들(400 및 500)을 도시하고, 도 14 및 도 15는 제3 테스트 비디오"포트나이트(Fornite)"에 대한 결과들(1400 및 1500)을 도시하며, 도 16 및 17은 제4 테스트 비디오 "파크 러닝 3(ParkRunning3)"에 대한 결과들(1600 및 1700)을 나타낸다.
도 6은 DD 변환의 전술한 네 개의 상이한 콘텐츠 유형들에 걸친 테스트 결과들(600)을 나타내고, 도 7은 DDS 변환에 대한 테스트 결과들(700)을 나타낸다. 알 수 있는 바와 같이, 비트레이트 개선은 콘텐츠 유형 및 판독 순서 유형에 따라 변할 수 있다. 이로 인해, 비트레이트의 개선은 예를 들어, 인코딩 시 테스트 인코딩 및/또는 이전의 실험 결과들에 기초하여, 콘텐츠의 특정 항목에 대한 특정 판독 순서를 선택함으로써 이루어질 수 있다.
도 8 및 도 9는 결과들(200 및 300)과 유사하지만, (양자화 파라미터들의 상이한 세트 통해 구현되는) 상이한 타겟 비트레이트 범위에 대한 결과들(800 및 900)을 나타낸다. 이와 유사하게, 상이한 타겟 비트레이트 범위에 대해, 도 10 및 도 11은 결과들(400 및 500)과 유사한 결과들(1000 및 1100)을 나타내고, 도 18 및 도 19는 결과들(1400 및 1500)과 유사한 결과들(1800 및 1900)을 나타내며, 도 20 및 도 21은 결과들(1600 및 1700)과 유사한 결과들(2000 및 2100)을 나타낸다. 도 12 및 도 13은 각각, 제2의 상이한 타겟 비트레이트 범위에 걸친 DD 및 DDS 변환에 대한 결과들(1200 및1300)을 나타낸다.
본 개시의 실시예들, 즉 진보된 인코더들은 커스텀 디지털 회로들, 예를 들어, 게이트 어레이들, FPGA들 등에서 구현되기 쉽고; 대안적으로, 본 개시의 실시예들은 동작 시에, 기계 실행가능 명령어들을 포함하는 하나 이상의 소프트웨어 제품을 실행하는 컴퓨팅 하드웨어, 예를 들어, 멀티 코어 프로세서들을 사용하여 구현되기 쉽다는 것이 이해될 것이다.
아다마르 변환 계수들의 이러한 전술된 타일 또는 "Z" 순서 판독은 데이터 통신 네트워크들을 통해, 예를 들어, 인터넷®을 통해 이미지 또는 비디오 콘텐츠를 통신할 때 데이터 압축도 향상을 이루기 위해 인코더들과 대응하는 디코더들 양자에서 사용될 수 있다.
변환된 잔차 데이터의 어레이들을 인코딩할 때, 4개의 DD 컴포넌트들 또는 16개의 DDS 컴포넌트들 각각은 가변 길이 인코딩(또는 산술 또는 범위 인코딩과 같은 다른 엔트로피 인코딩 기술들)을 통한 압축 전에, 런 길이 인코딩을 사용하여 전통적으로 개별적으로(즉, 4 또는 16개의 표면들의 세트로서) 코딩된다는 것이 이해될 것이다. 이러한 제2 단계로 도입되는 압축은 DD 또는 DDS 컴포넌트에서의 데이터의 순서에 거의 또는 전혀 종속하지 않지만, 제1 단계에 의해 잠재적으로 도입되는 압축은 순서에 종속할 것으로 예상된다.
예를 들어, DD 컴포넌트(이하, "표면")에서 동일한 주어진 값이 두 번 출현한다면, 출현들이 서로 분리된다면 런 길이 압축의 어떠한 이익도 없을 것이다. 다른 한편으로, 반복된 값들이 바로 연속하여 런 길이 인코더로 판독되도록 데이터의 스캔 패턴이 우연히 선택되었다면, 제2 심볼의 크기가 절감되고, 그 자리에 런 길이 2를 특정하는 비용이 들어간다. 통상적으로, 표면들과 같은 2D 어레이들은 래스터 순서로 스캐닝된다. 이는 동일한 값들의 긴 런들이 서로 옆에 있을 수 있게 한다. 그러나, 실제 이미지들은 자연 또는 측정 잡음을 갖고, 더 짧은 런들을 가지므로, (큰 스텝 폭들을 갖는) 중양자화(heavy quantization) 후에만 긴 런들이 나타난다고 하더라도 그러하다. 양자화 파라미터들은 때때로 이미지의 패치들 사이에서 변하며, 이는 본 개시의 실시예들에서 채용된 바와 같은 상이한 순서가 런 길이 인코딩을 돕는 데 잠재적으로 바람직한 하나의 이유이다.
이에 따라, 본 개시의 실시예들은 품질의 변화 없이 비트레이트 또는 파일 크기를 감소시키기 위해, 바람직하게는, 풀 래스터 이외에 요소들을 인코딩할 때 주어진 인코더가 상이한 순서화 모드들 사이에서 전환하도록 가능하게 하는 것을 채용한다. 개선된 모드의 요소 판독은 선택 사항으로서 하드 코딩되거나(예를 들어, 주어진 인코더를 구현하기 위해 사용되는 FPGA로 통합되거나) 또는 데이터의 지능형 온라인 평가에 의해(예를 들어, 평가를 수행하기 위해 컴퓨팅 하드웨어에 의해 실행가능한 소프트웨어를 사용하여, 예를 들어, 인코딩될 요소들에서 발생하는 상이한 값 분포들에 응답하여 모드들 사이에서 선택하기 위한 최상의 전략을 반복적으로 학습할 수 있는 기계 학습/인공 지능(ML/AI)을 사용하여) 결정된다. 하드 코딩의 경우에, 디코더는 채널마다, 디코더의 하드 코딩된 순서를 사용해야 한다. 그렇지 않으면, 그 순서는 주어진 인코더로부터 대응하는 디코더로 공급되는 인코딩된 비트스트림에서 메타데이터를 통해 시그널링되어야 한다.
보다 로컬 순서의 일례는 예를 들어, 전술한 바와 같은 Z 순서이다. 다른 예는 어레이가 유사한 타일들로 타일링되고 데이터가 먼저 타일의 래스터 순서로 그리고 그 다음 타일 내의 래스터 순서로 순서화되는 경우이다. 본 개시의 실시예들을 구현하는 실제 경험으로부터, 타일 크기 영향들이 관찰되고, 특정 경우들에서, 타일 래스터 순서가 Z 순서보다 선호된다. 타일 판독과는 대조적으로 Z 순서 판독을 채용할지 여부의 트레이드 오프는 양자화 스텝 폭들에 의존하여 선택될 수 있으며: (예를 들어, 1의 양자화 스텝 폭을 갖는) 무손실 모드에서, 모드 선택을 구현하는 이점은 작을 수도 있지만, (예를 들어, 차트들에 도시된 바와 같이) 스텝 폭들이 변함에 따라 증가할 수 있다.
실제 (이미지) 공간에서의 순서화/순회가 잘 알려져 있지만, (본 개시의 실시예들에서 채용되는 바와 같은) DD 컴포넌트 공간들에서의 상이한 순서화들의 아이디어는 자명하지 않으며, 압축에 대한 이익은 막대할 수 있다. 인코더는 프레임 단위로 표면들에 대해 사용 중인 순서(들)를 독립적으로 결정하는 대신에, 미리 정의된 정책을 사용할 것이라고 결정할 수 있다. 정책은 바람직하게는, 표면 데이터의 엔트로피 또는 통계적 분포에 기초하여 순서화들을 전환한다. 바람직하게는 인코더에 의해 생성된 비트스트림은 순서들 중 임의의 것이 프레임들 사이에서 변경되어야 하는지 여부에 관계없이, 디코더에 시그널링한다.
전술한 본 발명의 실시예들에 대한 수정이 첨부된 청구범위에 의해 정의된 본 발명의 범위를 벗어나지 않고서 가능하다. 본 발명을 설명하고 청구하는 데 사용되는 "포함한다", "구비한다", "병합한다", "이루어진다", "갖다", "이다"와 같은 표현들은 비배타적인 방식, 즉 명시적으로 기술되지 않은 항목, 컴포넌트 또는 요소가 또한 존재할 수 있도록 해석되도록 의도된 것이다. 단수 언급은 또한 복수형과 관련되는 것으로서 해석되어야 한다. 첨부된 청구범위에서 괄호 안에 포함된 번호는 청구범위의 이해를 돕도록 의도된 것이며, 이들 청구범위에 의해 청구되는 내용을 어떠한 식으로든 제한시키는 것으로 해석되어서는 안 된다.

Claims (16)

  1. 인코더에서, 입력 데이터를 인코딩하여 인코딩된 출력 데이터를 생성하기 위한 방법으로서,
    상기 입력 데이터의 다운 샘플링된 버전을 사용하여 상기 입력 데이터를 베이스 계층 재구성 데이터로 변환할 것을 지시하는 단계; 및
    상기 베이스 계층 재구성 데이터를 향상시키기 위한 명령어들을 제공하는 향상 계층 데이터를 생성하는 단계 ― 상기 향상 계층 데이터는 상기 베이스 계층 재구성 데이터로부터 생성된 재구성과 상기 입력 데이터로부터 유도된 데이터 간의 차이를 나타내는 잔차 데이터를 포함하며, 상기 잔차 데이터는 상기 인코딩된 출력 데이터를 생성하기 위해 적어도 하나의 변환 및 적어도 하나의 데이터 압축 방법을 거침 ― 를 포함하며,
    상기 방법은:
    상기 잔차 데이터를 대응하는 변환 계수들로 변환하기 위해 아다마르(Hadamard) 변환을 포함하도록 상기 적어도 하나의 변환을 배열하는 단계 ― 상기 아다마르 변환의 상이한 출력 요소들이 인코딩될 상이한 표면들로서 배열됨 ―; 및
    상기 인코딩된 출력 데이터를 생성하기 위해 상기 적어도 하나의 데이터 압축 방법에 대한 변환 계수들의 시퀀스를 제공하기 위해 상기 표면들에서의 상기 변환 계수들에 대한 출력 순서를 선택하는 단계를 포함하되,
    상기 출력 순서는 적어도 타일 래스터 순서 및 n x n 블록 "Z" 순서 중 하나로서 선택되는 것을 특징으로 하는, 방법.
  2. 제1항에 있어서, 상기 적어도 하나의 데이터 압축 방법은 런 길이 인코딩(run-length encoding, RLE)에 이어 허프만 인코딩(Huffman encoding)을 포함하는 것을 특징으로 하는, 방법.
  3. 제1항 또는 제2항에 있어서, 상기 방법은 8 x 8 요소들 내지 64 x 64 요소들의 범위 내의 크기를 갖는 타일들을 인코딩하는 것을 포함하도록 상기 타일 래스터 순서를 배열하는 단계를 포함하되, 변환 계수들은 각 타일 내에서 래스터 순서로 선택되는 것을 특징으로 하는, 방법.
  4. 제3항에 있어서, 상기 타일 래스터 순서는 8 x 8 요소들, 16 x 16 요소들, 또는 32 x 32 요소들의 크기를 갖는 타일들을 인코딩하는 것을 포함하는 것을 특징으로 하는, 방법.
  5. 제1항, 제2항, 제3항, 또는 제4항에 있어서, n x n 블록 "Z" 순서는 계수들의 주어진 그룹에서 상부 좌측 계수로부터 상부 우측 계수로, 하부 좌측 계수로, 하부 우측 계수로 하나 이상의 n x n "Z" 순서 판독을 포함하며, 상기 n x n "Z" 순서 판독은 변환된 계수들의 상이한 그룹들에 걸쳐 재귀적 n x n "Z" 순서로 반복되는 것을 특징으로 하는, 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서, VC-6 및 LCEVC 표준들 중 하나와 호환가능하도록 구현되는 것을 특징으로 하는, 방법.
  7. 동작 시, 입력 데이터를 인코딩하여 대응하는 인코딩된 출력 데이터를 생성하는 인코더로서,
    상기 인코더는 상기 입력 데이터의 다운 샘플링된 버전을 사용하여 상기 입력 데이터를 베이스 계층 재구성 데이터로 변환할 것을 지시하며,
    상기 인코더는 상기 입력 데이터의 다운 샘플링된 버전을 향상시키기 위한 명령어들을 제공하는 향상 계층 데이터를 생성하며,
    상기 잔차 데이터는 상기 베이스 계층 재구성 데이터로부터 생성된 재구성과 상기 입력 데이터로부터 유도된 데이터 간의 차이를 나타내며,
    상기 잔차 데이터는 상기 인코딩된 출력 데이터를 생성하기 위해 상기 인코더에서, 적어도 하나의 변환 및 적어도 하나의 데이터 압축 변환을 거치며,
    다음과 같은 점에서,
    상기 적어도 하나의 변환은 상기 잔차 데이터를 대응하는 변환 계수들로 변환하기 위해 아다마르 변환을 포함하며,
    상기 아다마르 변환의 상이한 출력 요소들은 인코딩될 상이한 표면들로서 배열되며,
    상기 인코더는 상기 인코딩된 출력 데이터를 생성하기 위해 상기 적어도 하나의 데이터 압축 방법에 대한 변환 계수들의 시퀀스를 제공하기 위해 상기 표면들에서의 상기 변환 계수들에 대한 출력 순서를 선택하도록 구성되며,
    상기 출력 순서는 적어도 타일 래스터 순서 및 n x n 블록 "Z" 순서 중 하나로서 선택되는 것을 특징으로 하는, 인코더.
  8. 제7항에 있어서, 상기 적어도 하나의 데이터 압축 방법은 런 길이 인코딩(RLE)에 이어 허프만 인코딩을 포함하는 것을 특징으로 하는, 인코더.
  9. 제7항 또는 제8항에 있어서, 상기 타일 래스터 순서는 8 x 8 요소들 내지 64 x 64 요소들의 범위 내의 크기를 갖는 타일들을 인코딩하는 것을 포함하되, 변환 계수들은 각 타일 내에서 래스터 순서로 선택되는 것을 특징으로 하는, 인코더.
  10. 제9항에 있어서, 상기 타일의 방식은 8 x 8 요소들, 16 x 16 요소들, 또는 32 x 32 요소들의 크기를 갖는 타일들을 인코딩하는 것을 포함하는 것을 특징으로 하는, 인코더.
  11. 제7항, 제8항, 제9항, 또는 제10항에 있어서, n x n 블록 "Z" 순서는 계수들의 주어진 그룹에서 상부 좌측 계수로부터 상부 우측 계수로, 하부 좌측 계수로, 하부 우측 계수로 하나 이상의 n x n "Z" 순서 판독을 포함하며, 상기 n x n "Z" 순서 판독은 변환된 계수들의 상이한 그룹들에 걸쳐 재귀적 n x n "Z" 순서로 반복되는 것을 특징으로 하는, 인코더.
  12. 제7항 내지 제11항 중 어느 한 항에 있어서, VC-6 또는 LCEVC 표준들 중 하나와 호환가능하도록 구현되는 것을 특징으로 하는, 인코더.
  13. 컴퓨터 판독가능 명령어들이 저장되어 있는 비일시적 컴퓨터 판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품으로서, 상기 컴퓨터 판독가능 명령어들은 제7항 내지 제12항 중 어느 한 항에 따른 방법을 실행하기 위한 처리 하드웨어를 포함하는 컴퓨터화된 디바이스에 의해 실행가능한, 컴퓨터 프로그램 제품.
  14. 디코더에서, 인코딩된 데이터를 디코딩하여 디코딩된 출력 데이터를 생성하기 위한 방법으로서,
    (i) 상기 디코더에서, 인코딩된 데이터를 수신하는 단계;
    (ii) 수신된 상기 인코딩된 데이터를, 입력 데이터의 다운 샘플링된 버전으로부터 유도되는 베이스 계층 재구성을 향상시키기 위한 명령어들을 제공하는 향상 계층 데이터로 변환하기 위해 적어도 하나의 역변환을 적용하는 단계 ― 상기 향상 계층 데이터는 그 향상을 제공하기 위한 잔차 데이터를 포함하며, 잔차 데이터는 수신된 상기 인코딩 데이터를 생성하기 위해 적어도 하나의 변환 및 적어도 하나의 데이터 압축 방법을 거침 ― 를 포함하며;
    다음과 같은 점에서,
    상기 방법은:
    (iii) 수신된 상기 인코딩된 데이터를 적어도 하나의 데이터 압축 방법에 따라 압축해제하여 중간 디코딩된 데이터를 생성하는 단계; 및
    (iv) 상기 중간 디코딩된 데이터로부터 유도된 변환 계수들을 상기 잔차 데이터로 변환하기 위해 역 아다마르 변환을 포함하도록 상기 적어도 하나의 역변환을 배열하는 단계를 더 포함하며,
    상기 변환 계수들은 타일 래스터 방식 또는 n x n 블록 "Z" 순서로 판독됨으로써 디코딩되는 것을 특징으로 하는, 방법.
  15. 컴퓨터 판독가능 명령어들이 저장되어 있는 비일시적 컴퓨터 판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품으로서, 상기 컴퓨터 판독가능 명령어들은 제14항에 따른 방법을 실행하기 위한 처리 하드웨어를 포함하는 컴퓨터화된 디바이스에 의해 실행가능한, 컴퓨터 프로그램 제품.
  16. 인코딩된 데이터를 디코딩하여 디코딩된 출력 데이터를 생성하기 위한 디코더로서,
    (i) 인코딩된 데이터를 수신하기 위한 입력부;
    (ii) 수신된 상기 인코딩된 데이터를, 입력 데이터의 다운 샘플링된 버전으로부터 유도되는 베이스 계층 재구성을 향상시키기 위한 명령어들을 제공하는 향상 계층 데이터로 변환하기 위해 적어도 하나의 역변환을 적용하기 위한 데이터 처리 장치 ― 상기 향상 계층 데이터는 그 향상을 제공하기 위한 잔차 데이터를 포함하며, 잔차 데이터는 수신된 상기 인코딩 데이터를 생성하기 위해 적어도 하나의 변환 및 적어도 하나의 데이터 압축 방법을 거침 ― 를 포함하며;
    다음과 같은 점에서,
    상기 디코더는:
    (iii) 수신된 상기 인코딩된 데이터를 적어도 하나의 데이터 압축 방법에 따라 사용하여 압축해제하여 중간 디코딩된 데이터를 생성하기 위한 압축해제 장치; 및
    (iv) 상기 중간 디코딩된 데이터로부터 유도된 변환 계수들을 상기 잔차 데이터로 변환하기 위해 상기 적어도 하나의 역변환을 역 아다마르 변환으로서 적용하는 역변환 장치를 더 포함하며,
    상기 변환 계수들은 타일 래스터 방식 또는 n x n 블록 "Z" 순서로 판독됨으로써 디코딩되는 것을 특징으로 하는, 디코더.
KR1020227037244A 2020-04-14 2021-04-14 엔트로피 코딩을 위한 변환 계수 순서화 KR20230021638A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
GB2005451.6 2020-04-14
GBGB2005451.6A GB202005451D0 (en) 2020-04-14 2020-04-14 Apparatus and method for encoding data
GBGB2005658.6A GB202005658D0 (en) 2020-04-19 2020-04-19 Apparatus and method for encoding data and decoding data
GB2005658.6 2020-04-19
PCT/GB2021/050892 WO2021209748A1 (en) 2020-04-14 2021-04-14 Transformed coefficient ordering for entropy coding

Publications (1)

Publication Number Publication Date
KR20230021638A true KR20230021638A (ko) 2023-02-14

Family

ID=75660065

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227037244A KR20230021638A (ko) 2020-04-14 2021-04-14 엔트로피 코딩을 위한 변환 계수 순서화

Country Status (6)

Country Link
US (1) US20230141312A1 (ko)
JP (1) JP2023522175A (ko)
KR (1) KR20230021638A (ko)
CN (1) CN115486070A (ko)
GB (1) GB2608962A (ko)
WO (1) WO2021209748A1 (ko)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6058215A (en) * 1997-04-30 2000-05-02 Ricoh Company, Ltd. Reversible DCT for lossless-lossy compression
WO2019111006A1 (en) * 2017-12-06 2019-06-13 V-Nova International Ltd Methods and apparatuses for hierarchically encoding and decoding a bytestream
AU2019315758B2 (en) * 2018-08-03 2023-04-06 V-Nova International Ltd Entropy coding for signal enhancement coding

Also Published As

Publication number Publication date
JP2023522175A (ja) 2023-05-29
WO2021209748A1 (en) 2021-10-21
US20230141312A1 (en) 2023-05-11
CN115486070A (zh) 2022-12-16
GB202215554D0 (en) 2022-12-07
GB2608962A (en) 2023-01-18

Similar Documents

Publication Publication Date Title
KR102152975B1 (ko) 영상 부호화 방법 및 컴퓨터로 읽을 수 있는 기록 매체
JP6851429B2 (ja) 画像復号装置、画像復号方法、画像符号化装置及び画像符号化方法
JP7047119B2 (ja) 変換領域における残差符号予測のための方法および装置
CN104041035B (zh) 用于复合视频的无损编码及相关信号表示方法
US8792740B2 (en) Image encoding/decoding method for rate-distortion optimization and apparatus for performing same
JP5107649B2 (ja) ビデオの映像コード化およびイントラ・コード化のための固定型または適応型デインターリープドトランスフォームコード化方法及び装置
WO2011083573A1 (ja) 動画像符号化装置及び動画像復号化装置
JP6469048B2 (ja) 動画像符号化装置、動画像符号化方法、動画像復号装置、動画像復号方法、動画像符号化データ及び記録媒体
CN103782598A (zh) 用于无损编码的快速编码方法
KR20100095992A (ko) 비디오 부호화에서의 분할 블록 부호화 방법, 비디오 복호화에서의 분할 블록 복호화 방법 및 이를 구현하는 기록매체
WO2004038921A2 (en) Method and system for supercompression of compressed digital video
KR100846778B1 (ko) 복수개의 주사 패턴을 이용한 부호화 방법, 복호화 방법,및 그 장치
JP2015109695A (ja) 動画像符号化装置及び動画像復号化装置
KR20230021638A (ko) 엔트로피 코딩을 위한 변환 계수 순서화
JP6846134B2 (ja) 映像符号化装置及び映像復号装置
Sathappan et al. A new model for color image compression using modified hierarchical prediction
KR100813989B1 (ko) 복수개의 주사 패턴을 이용한 부호화 방법, 복호화 방법,및 그 장치
KR100775019B1 (ko) 복수개의 주사 패턴을 이용한 부호화 방법, 복호화 방법,및 그 장치
KR20120008321A (ko) 서브샘플링을 이용한 적응적 스캐닝 및 확장된 템플릿 매칭 방법 및 장치
JP2014078976A (ja) 動画像復号化装置、方法及びプログラム

Legal Events

Date Code Title Description
A201 Request for examination