KR102213876B1 - 비디오 신호의 디코딩 방법 및 장치 - Google Patents

비디오 신호의 디코딩 방법 및 장치 Download PDF

Info

Publication number
KR102213876B1
KR102213876B1 KR1020200036864A KR20200036864A KR102213876B1 KR 102213876 B1 KR102213876 B1 KR 102213876B1 KR 1020200036864 A KR1020200036864 A KR 1020200036864A KR 20200036864 A KR20200036864 A KR 20200036864A KR 102213876 B1 KR102213876 B1 KR 102213876B1
Authority
KR
South Korea
Prior art keywords
transform
block
size
video signal
transformation
Prior art date
Application number
KR1020200036864A
Other languages
English (en)
Other versions
KR20200035388A (ko
Inventor
박준영
김정선
박승욱
전병문
성재원
최영희
Original Assignee
엘지전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘지전자 주식회사 filed Critical 엘지전자 주식회사
Publication of KR20200035388A publication Critical patent/KR20200035388A/ko
Application granted granted Critical
Publication of KR102213876B1 publication Critical patent/KR102213876B1/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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive 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
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명은, 비디오 신호로부터 현재 매크로블록의 변환 크기 플래그 획득하는 단계; 상기 변환 크기 플래그에 대응되는 제 1 변환 블록에 대해, 상기 제 1 변환 블록 내 각 픽셀 위치에서 0이 아닌 변환 계수(non-zero transform coefficient)의 개수를 확인하는 단계; 상기 제 1 변환 블록 내에서 0이 아닌 변환계수의 개수가 가장 많은 픽셀의 위치를 우선순위로 하여 상기 제 1 변환 블록의 스캔 오더를 변경하는 단계; 제 2 변환 블록 내 각 픽셀 위치에서 0이 아닌 변환 계수의 개수를 결정하고, 상기 제 1 변환 블록의 변경된 스캔 오더를 상기 제 2 변환 블록의 초기화된 스캔 오더로 설정하는 단계; 상기 제 1 변환 블록 내 각 픽셀 위치에서의 0이 아닌 변환 계수의 개수와 상기 제 2 변환 블록 내 각 픽셀 위치에서의 0이 아닌 변환 계수의 개수를 더하고 가장 많은 개수를 가진 픽셀의 위치를 우선순위로 하여 상기 제 2 변환 블록의 스캔 오더를 변경하는 단계; 및 상기 변경된 스캔 오더에 따라 배열된 변환 계수를 디코딩하는 단계를 포함하되, 상기 제 1 변환 블록과 상기 제 2 변환 블록은 상기 변환 크기 플래그에 대응되는 크기를 가지고, 상기 현재 매크로블록에 포함되는 것을 특징으로 하는 비디오 신호의 디코딩 방법을 제공한다.

Description

비디오 신호의 디코딩 방법 및 장치{A METHOD AND AN APPARATUS FOR DECODING A VIDEO SIGNAL}
본 발명은 비디오 신호의 디코딩 방법 및 장치에 관한 것이다.
압축 부호화란 디지털화한 정보를 통신 회선을 통해 전송하거나, 저장 매체에 적합한 형태로 저장하는 일련의 신호 처리 기술을 의미한다. 압축 부호화의 대상에는 음성, 영상, 문자 등의 대상이 존재하며, 특히 영상을 대상으로 압축 부호화를 수행하는 기술을 비디오 영상 압축이라고 일컫는다. 비디오 영상의 일반적인 특징은 공간적 중복성, 시간적 중복성을 지니고 있는 점에 특징이 있다.
이와 같이 공간적 중복성 및 시간적 중복성을 충분히 제거하지 않으면, 비디오 신호를 부호화하는 데 있어서 압축률이 낮아질 뿐만 아니라, 공간적 중복성 및 시간적 중복성을 과도하게 제거하는 경우, 비디오 신호를 디코딩하는 데 있어서 필요한 정보를 생성하지 못하기 때문에 복원율이 나빠지는 문제점이 있었다.
본 발명은, 비디오 신호로부터 현재 매크로블록의 변환 크기 플래그 획득하는 단계; 상기 변환 크기 플래그에 대응되는 제 1 변환 블록에 대해, 상기 제 1 변환 블록 내 각 픽셀 위치에서 0이 아닌 변환 계수(non-zero transform coefficient)의 개수를 확인하는 단계; 상기 제 1 변환 블록 내에서 0이 아닌 변환계수의 개수가 가장 많은 픽셀의 위치를 우선순위로 하여 상기 제 1 변환 블록의 스캔 오더를 변경하는 단계; 제 2 변환 블록 내 각 픽셀 위치에서 0이 아닌 변환 계수의 개수를 결정하고, 상기 제 1 변환 블록의 변경된 스캔 오더를 상기 제 2 변환 블록의 초기화된 스캔 오더로 설정하는 단계; 상기 제 1 변환 블록 내 각 픽셀 위치에서의 0이 아닌 변환 계수의 개수와 상기 제 2 변환 블록 내 각 픽셀 위치에서의 0이 아닌 변환 계수의 개수를 더하고 가장 많은 개수를 가진 픽셀의 위치를 우선순위로 하여 상기 제 2 변환 블록의 스캔 오더를 변경하는 단계; 및 상기 변경된 스캔 오더에 따라 배열된 변환 계수를 디코딩하는 단계를 포함하되, 상기 제 1 변환 블록과 상기 제 2 변환 블록은 상기 변환 크기 플래그에 대응되는 크기를 가지고, 상기 현재 매크로블록에 포함되는 것을 특징으로 하는 비디오 신호의 디코딩 방법을 제공한다.
또한, 본 발명은, 상기 현재 매크로블록 내 각 변환 블록에 대해 스캔 오더를 초기화할지 여부를 나타내는 스캔 오더 초기화 플래그 정보를 획득하는 단계를 더 포함하되, 상기 스캔 오더 초기화 플래그 정보가 각 변환 블록에 대해 스캔 오더를 초기화할 것을 지시하는 경우, 상기 제 2 변환 블록의 초기화된 스캔 오더가 상기 제 1 변환 블록의 변경된 스캔 오더로 설정되는 것을 특징으로 한다.
또한, 본 발명에서, 상기 변환 크기 플래그 정보는 복수개인 것을 특징으로 한다.
또한, 본 발명에서, 상기 변환 크기 플래그 정보는 16x16 블록 단위로 변환 과정을 수행하는지 아니면 그보다 작은 블록 단위로 변환 과정을 수행하는지 여부를 나타내는 제 1 변환 크기 플래그 정보와, 8x8 블록 단위로 변환 과정을 수행하는지 아니면 4x4 블록 단위로 변환 과정을 수행하는지 여부를 나타내는 제 2 변환 크기 플래그 정보를 포함하는 것을 특징으로 한다.
또한, 본 발명에서, 상기 제 1 변환 크기 플래그 정보가 16x16 블록 단위보다 작은 블록 단위로 변환 과정을 수행할 것을 나타내고, 상기 제 2 변환 크기 플래그 정보가 8x8 블록 단위로 변환 과정을 수행할 것을 나타내는 경우, 상기 제 1 변환 블록과 상기 제 2 변환 블록은 8x8 크기의 블록에 대응되는 것을 특징으로 한다.
또한, 본 발명은, 상기 비디오 신호로부터 변환 타입을 나타내는 변환 타입 플래그 정보를 획득하는 단계를 더 포함하되, 상기 변환 계수를 디코딩하는 단계는, 상기 변환 타입 플래그 정보에 기초하여 이산 여현 변환(DCT) 또는 카루넨-루브 변환(KLT)을 이용하는 것을 특징으로 한다.
또한, 본 발명에서, 상기 변환 타입 플래그 정보가 카루넨-루브 변환(KLT)을 이용할 것을 나타내고 상기 현재 매크로블록의 블록 타입이 인트라 블록을 나타내는 경우, 카루넨-루브 변환(KLT)을 이용하여 상기 변환 계수를 디코딩하는 것을 특징으로 한다.
또한, 본 발명은, 비디오 신호로부터 현재 매크로블록의 변환 크기 플래그를 획득하는 엔트로피 디코딩부; 상기 변환 크기 플래그에 대응되는 제 1 변환 블록에 대해, 상기 제 1 변환 블록 내 각 픽셀 위치에서 0이 아닌 변환 계수(non-zero transform coefficient)의 개수를 확인하고, 상기 제 1 변환 블록 내에서 0이 아닌 변환계수의 개수가 가장 많은 픽셀의 위치를 우선순위로 하여 상기 제 1 변환 블록의 스캔 오더를 변경하는 제 1 스캔 오더 변경부; 제 2 변환 블록 내 각 픽셀 위치에서 0이 아닌 변환 계수의 개수를 결정하고, 상기 제 1 변환 블록의 변경된 스캔 오더를 상기 제 2 변환 블록의 초기화된 스캔 오더로 설정하고, 상기 제 1 변환 블록 내 각 픽셀 위치에서의 0이 아닌 변환 계수의 개수와 상기 제 2 변환 블록 내 각 픽셀 위치에서의 0이 아닌 변환 계수의 개수를 더하고 가장 많은 개수를 가진 픽셀의 위치를 우선순위로 하여 상기 제 2 변환 블록의 스캔 오더를 변경하는 제 2 스캔 오더 변경부; 및 상기 변경된 스캔 오더에 따라 배열된 변환 계수를 디코딩하는 변환 디코딩부를 포함하되, 상기 제 1 변환 블록과 상기 제 2 변환 블록은 상기 변환 크기 플래그에 대응되는 크기를 가지고, 상기 현재 매크로블록에 포함되는 것을 특징으로 하는 비디오 신호의 디코딩 장치를 제공한다.
본 발명은 변환 과정에서 이용되는 단위 블록의 크기를 다양하게 정의함으로써 코딩 효율을 향상시킬 수 있다.
또한, 본 발명은 변환 과정에서 이용되는 단위 블록의 크기를 나타내는 플래그 정보를 정의함으로써 코딩 효율을 향상시킬 수 있다.
또한, 본 발명은 변환 타입을 나타내는 플래그를 정의하고, 그에 따라 이산여현변환(Discrete Cosine Transform, 이하 'DCT'라 함) 또는 카루넨-루브 변환(Karhunen-Loeve Transform, 이하 'KLT'라 함)을 사용함으로써 코딩 효율을 향상시킬 수 있다.
또한, 본 발명은 매크로블록의 예측 모드에 따라 DCT 또는 KLT를 사용함으로써 코딩 효율을 향상시킬 수 있다.
또한, 본 발명은 변환 과정에서 이용되는 단위 블록의 크기를 레지듀얼 블록의 크기보다 작거나 같도록 설정하여 적응적으로 이용함으로써 코딩 효율을 향상시킬 수 있다.
또한, 본 발명은 인트라 예측 모드로 코딩된 매크로블록의 각 변환 블록마다 다른 변환 커널(transform kernel)을 사용함으로써 코딩 효율을 향상시킬 수 있다.
또한, 본 발명은 매크로블록의 각 변환 블록마다 스캐닝 오더(scanning order)를 업데이트함으로써 코딩 효율을 향상시킬 수 있다.
또한, 본 발명은 0이 아닌 변환계수레벨의 포함 여부를 나타내는 정보의 중복성을 제거함으로써 코딩 효율을 향상시킬 수 있다.
상기 발명들은 16x16 매크로블록보다 큰 매크로블록 기반의 인코딩 및 디코딩 과정에서 사용될 경우 코딩 효율을 더욱 향상시킬 수 있다.
도 1은 본 발명이 적용되는 실시예로서, 비디오 신호 디코딩 장치의 개략적인 블록도를 나타낸다.
도 2, 도 3A 및 도 3B는 본 발명이 적용되는 실시예들로서, 플래그 정보에 기초하여 변환 과정에서 이용되는 단위 블록의 크기를 결정하는 과정을 나타낸다.
도 4는 본 발명이 적용되는 실시예로서, 변환 타입을 나타내는 플래그 또는 매크로블록의 예측 모드에 기초하여 변환 방법(DCT 또는 KLT)을 결정하는 과정을 설명하기 위한 흐름도이다.
도 5는 본 발명이 적용되는 실시예로서, 변환 블록의 위치에 따라 다른 변환 커널(transform kernel)을 적용하는 새로운 모드 기반형 변환(Mode Dependent Directional Transform)을 설명하기 위한 개략적인 블록도를 나타낸다.
도 6은 본 발명이 적용되는 실시예로서, 변환 블록의 위치에 따라 다른 변환 커널(transform kernel)을 사용하는 구체적인 예를 나타낸다.
도 7은 본 발명이 적용되는 실시예로서, 변환 블록마다 스캔 오더(scan order)를 재배열하는 과정을 설명하기 위한 흐름도를 나타낸다.
도 8A 내지 도 8D는 본 발명이 적용되는 실시예들로서, 변환 블록마다 스캔 오더(scan order)를 재배열하는 과정을 설명하기 위한 구체적인 예를 나타낸다.
비디오 신호의 비트열 구성을 살펴보면, 동영상 부호화 처리 그 자체를 다루는 VCL(Video Coding Layer, 비디오 부호화 계층)과 부호화된 정보를 전송하고 저장하는 하위 시스템과의 사이에 있는 NAL(Network Abstraction Layer, 네트워크 추상 계층)이라는 분리된 계층 구조로 정의되어 있다. 부호화 과정의 출력은 VCL 데이터이고 전송하거나 저장하기 전에 NAL 단위로 맵핑된다. 각 NAL 단위는 압축된 비디오 데이터 또는 헤더 정보에 해당하는 데이터인 RBSP(Raw Byte Sequence Payload, 동영상 압축의 결과데이터)를 포함한다.
NAL 단위는 기본적으로 NAL헤더와 RBSP의 두 부분으로 구성된다. NAL 헤더에는 그 NAL 단위의 참조 픽쳐가 되는 슬라이스가 포함되어 있는지 여부를 나타내는 플래그 정보(nal_ref_idc)와 NAL 단위의 종류를 나타내는 식별자(nal_unit_type)가 포함되어 있다. RBSP 에는 압축된 원본의 데이터를 저장하며, RBSP 의 길이를 8비트의 배수로 표현하기 위해 RBSP 의 마지막에 RBSP 채워넣기 비트(RBSP trailing bit)를 첨가한다. 이러한 NAL 단위의 종류에는 IDR (Instantaneous Decoding Refresh, 순간 복호 리프레쉬) 픽쳐, SPS (Sequence Parameter Set, 시퀀스 파라미터 세트), PPS (Picture Parameter Set, 픽쳐 파라미터 세트), SEI (Supplemental Enhancement Information, 보충적 부가정보) 등이 있다.
또한, 규격에서는 대상 제품을 적당한 비용으로 구현 가능하도록 여러 가지 프로파일 및 레벨로 제약하고 있는데, 복호기는 해당 프로파일과 레벨에서 정해진 제약을 만족시켜야 한다. 이처럼 복호기가 어떤 압축 영상의 범위까지 대응할 수 있는지 그 기능 또는 파라미터를 나타내기 위해 프로파일과 레벨이라는 두 가지의 개념이 정의되었다. 비트스트림이 어떤 프로파일에 기초하는 것인가는 프로파일 식별자(profile_idc)로 식별할 수 있다. 프로파일 식별자란, 비트스트림이 기반을 둔 프로파일을 나타내는 플래그를 의미한다. 예를 들어, H.264/AVC 에서는 프로파일 식별자가 66 이면 베이스라인 프로파일에 기초함을 의미하고, 77 이면 메인 프로파일에 기초함을 의미하며, 88 이면 확장 프로파일에 기초함을 의미한다. 상기 프로파일 식별자는 시퀀스 파라미터 세트에 포함될 수 있다.
시퀀스 파라미터 세트란, 프로파일, 레벨 등 시퀀스 전체의 부호화에 걸쳐있는 정보가 포함되어 있는 헤더 정보를 말한다. 압축된 동영상 전체, 즉 시퀀스는 반드시 시퀀스 헤더로부터 시작하여야 하므로 헤더 정보에 상당하는 시퀀스 파라미터 세트는 그 파라미터 세트를 참조하는 데이터보다 먼저 복호기에 도착하여야 한다. 결국, 시퀀스 파라미터 세트 RBSP 는 동영상 압축의 결과 데이터에 대한 헤더 정보로써의 역할을 한다. 비트스트림이 입력되면, 먼저 프로파일 식별자는 입력된 비트스트림이 복수개의 프로파일 중에서 어떤 프로파일에 기초하는 것인지를 식별하게 된다.
도 1은 본 발명이 적용되는 비디오 신호 디코딩 장치의 개략적인 블록도를 나타낸다.
도 1을 참조하면, 상기 디코딩 장치는 크게 엔트로피 디코딩부(100), 역양자화부(200), 역변환부(300), 인트라 예측부(400), 디블록킹 필터부(500), 복호 픽쳐 버퍼부(600), 인터 예측부(700) 등을 포함할 수 있다. 상기 역변환부(300)는 변환 크기 결정부(310), 스캔 오더 초기화부(320), 스캔 오더 변경부(330) 및 변환 디코딩부(340)을 포함한다.
먼저, 디코딩 장치에서는 수신된 비디오 영상을 복호하기 위하여 NAL 단위로 파싱을 수행한다. 일반적으로 하나 또는 그 이상의 시퀀스 파라미터 셋과 픽쳐 파라미터 셋이 슬라이스 헤더와 슬라이스 데이터가 디코딩되기 전에 디코더로 전송된다. 이 때 NAL 헤더 영역 또는 NAL 헤더의 확장 영역에는 여러 가지 속성 정보가 포함될 수 있다.
파싱된 비트스트림은 엔트로피 디코딩부(100)를 통하여 엔트로피 디코딩되고, 각 매크로브록의 계수, 움직임 벡터 등이 추출된다. 역양자화부(200)에서는 엔트로피 디코딩된 데이터들에 일정한 상수를 곱하여 변환 계수값을 획득하고, 역변환부(300)에서는 상기 변환 계수값을 역변환하여 화소값을 복원하게 된다. 이때, 상기 변환 크기 결정부(310)에서는 변환 크기 관련 정보를 획득하여 변환 크기를 결정할 수 있다. 예를 들어, 적응적 변환 크기 플래그 정보, 또는 변환 크기 플래그 정보 등을 획득할 수 있다. 이는 도 2, 도 3A 및 도 3B에서 보다 상세히 설명하도록 한다. 상기 스캔 오더 초기화부(320)는 역양자화된 변환 계수들에 대한 스캔 오더를 초기화하고, 상기 스캔 오더 변경부(330)는 0이 아닌 변환 계수의 개수에 기초하여 각 블록에 적합한 스캔 오더로 변경 또는 업데이트한다. 상기 변환 디코딩부(340)는 상기 변경 또는 업데이트된 스캔 오더에 기초하여 상기 변환 계수들을 디코딩한다. 한편, 인코딩 장치에서는 이러한 변환 과정을 통해 상기 변환 계수값의 개수를 줄일수록 압축 효과를 높일 수 있으며, 화면 내 중요 데이터들이 변환 과정을 통해 일부의 계수에 집중적으로 분포할 수 있도록 함으로 보다 압축 효과를 높일 수 있다. 따라서, 본 발명에서는 이러한 변환 과정의 실시예들을 설명할 것이다.
그리고, 상기 복원된 화소값을 이용하여 인트라 예측부(400)에서는 현재 픽쳐 내의 디코딩된 샘플로부터 인트라 예측(intra prediction)을 수행하게 된다. 상기 인트라 예측부(400)에서는 현재 픽쳐 내에서 현재 블록의 주변 블록의 픽셀을 이용하여 현재 블록을 예측하는데, 보다 정확한 예측을 수행할 수 있다면 화질을 향상시킬 수 있을 뿐만 아니라 코딩 효율을 향상시킬 수 있게 된다.
디블록킹 필터부(500)에서는 블록 왜곡 현상을 감소시키기 위해 각각의 코딩된 매크로블록에 적용된다. 필터는 블록의 가장자리를 부드럽게 하여 디코딩된 프레임의 화질을 향상시킨다. 필터링 과정의 선택은 경계 세기(boundary strenth)와 경계 주위의 이미지 샘플의 변화(gradient)에 의해 좌우된다. 필터링을 거친 픽쳐들은 출력되거나 참조 픽쳐로 이용하기 위해 복호 픽쳐 버퍼부(600)에 저장된다.
복호 픽쳐 버퍼부(Decoded Picture Buffer unit)(600)에서는 인터 예측(inter prediction)을 수행하기 위해서 이전에 코딩된 픽쳐들을 저장하거나 개방하는 역할 등을 수행할 수 있다. 이 때 복호 픽쳐 버퍼부(600)에 저장하거나 개방하기 위해서 각 픽쳐의 디코딩 순서를 나타내는 정보(frame_num)와 픽쳐의 출력 순서를 나타내는 정보(Picture Order Count, POC)를 이용하게 된다. 이렇게 관리되는 참조 픽쳐들은 인터 예측부(700)에서 이용될 수 있다.
상기 인터 예측부(700)에서는 엔트로피 디코딩부(100)로부터 전송된 정보들을 이용하여 현재 블록의 움직임을 보상한다. 비디오 신호로부터 현재 블록에 이웃하는 블록들의 움직임 벡터를 추출하고, 상기 현재 블록의 움직임 벡터 예측값을 획득한다. 상기 획득된 움직임 벡터 예측값과 상기 비디오 신호로부터 추출되는 차분 벡터를 이용하여 현재 블록의 움직임을 보상한다. 또한, 이러한 움직임 보상은 하나의 참조 픽쳐를 이용하여 수행될 수도 있고, 복수의 픽쳐를 이용하여 수행될 수도 있다.
디코딩 장치는 예측 모드 정보에 따라 인터 예측 또는 인트라 예측 과정을 통해 생성된 예측값(predictor)을 획득한다. 그리고, 비디오 신호로부터 추출된 레지듀얼과 상기 획득된 예측값을 더함으로써 현재 픽쳐를 복원할 수 있다. 여기서, 레지듀얼(residual)이라 함은 원 신호와 예측 신호 간의 차이를 나타내고, 상기 신호는 시퀀스 단위, 픽쳐 단위, 슬라이스 단위, 매크로블록 단위, 서브블록 단위 또는 픽셀 단위가 될 수 있으며, 본 명세서 내에서 그 단위는 각 디코딩 과정에 적절한 단위로 해석될 수 있다.
또한, 본 발명은 보다 확장된 해상도를 갖는 비디오 신호의 처리를 위해 이용될 수 있다. 즉, 확장된 해상도를 갖는 비디오 신호의 처리를 위해 확장된 크기(size)의 매크로블록을 정의할 수 있다. 예를 들어, 16x16,16x8, 8x16 8x8, 8x4, 4x8, 4x4 크기의 매크로블록뿐만 아니라, 32x32, 64x32, 32x64, 64x64 등의 크기를 갖는 매크로블록을 이용할 수 있다. 매크로블록의 크기는 비디오 신호의 해상도에 따라 적응적으로 결정될 수 있다. 예를 들어, 비디오 신호의 해상도가 VGA(640x480, 4:3) 이하인 경우에는 16x16 크기의 매크로블록을 이용할 수 있고, VGA 이상 1080P 이하인 경우에는 32x32 크기의 매크로블록을 이용할 수 있고, 나아가 1080P 이상 4kx2k 이하인 경우에는 64x64 크기의 매크로블록을 이용할 수 있다.
도 2, 도 3A 및 도 3B는 본 발명이 적용되는 실시예들로서, 플래그 정보에 기초하여 변환 과정에서 이용되는 단위 블록의 크기를 결정하는 과정을 나타낸다.
인코딩 장치 및 디코딩 장치에서 사용되는 변환 기법 중에는 블록 기반 변환 방법과 이미지 기반 변환 방법이 있다. 상기 블록 기반 변환 방법으로는 이산 여현 변환(Discrete Cosine Transform, 이하 'DCT'라 함), 카루넨-루브 변환(Karhuhen-Loeve Transform, 이하 'KLT'라 함) 등이 있다. 여기서, 이산 여현 변환(DCT)이란 공간 도메인(spatial domain) 상의 신호를 2차원 주파수 성분으로 분해(변환)하는 것을 나타낸다. 블록 내에서 좌측상단으로 갈수록 낮은 주파수 성분을 가지고, 우측하단으로 갈수록 높은 주파수 성분을 갖는 패턴을 이룬다. 예를 들어, 64개의 2차원의 주파수 성분 중 가장 좌측상단에 존재하는 1개만이 직류성분(DC : Direct Current)으로 주파수가 0인 성분이며, 나머지는 교류성분(AC : Alternate Current) 으로 낮은 주파수 성분부터 높은 주파수 성분까지 63개로 구성된다. 이산 여현 변환(DCT)을 수행한다는 것은 원 비디오 신호의 블록에 포함된 기저성분(64개의 기본 패턴 성분)들 각각의 크기를 구하는 것이며, 이 크기는 이산 여현 변환 계수이다.
또한, 이산 여현 변환(DCT)은 단순히 원 비디오 신호 성분으로 표현하기 위하여 사용되는 변환으로, 역변환시 주파수 성분으로부터 원래의 영상신호로 완전히 복원된다. 즉, 영상의 표현 방법만을 바꾸는 것으로, 중복된 정보를 포함해 원 영상에 포함된 모든 정보를 모두 보존한다. 원 영상을 이산 여현 변환(DCT)하는 경우, 원영상의 진폭분포와 달리 이산 여현 변환(DCT) 계수는 0 근처의 값에 몰려서 존재하게 되므로 이를 이용하여 높은 압축효과를 얻을 수 있게 된다.
한편, 카루넨-루브 변환(KLT)은 다차원(N차원)의 특징 벡터(feature vector)로 이루어진 데이터에 대해서, 최대한 원본 정보를 유지하면서 낮은 차원(K차원)으로 차원을 축소시켜 데이터를 처리하는 방법 중 하나이다. 즉, 데이터의 특징을 잘 나타내는 고유의 성분들을 추출하고 이 값들 중 특징 성분이 높은 값들만을 취함으로써 차원을 줄이고 원본 정보와의 차이를 최소화하는 것이다. 예를 들어, 인트라 블록의 인코딩 또는 디코딩시 이용되는 예측 모드에 따라 카루넨-루브 변환(KLT) 방법을 이용할 수 있으며, 스캐닝 오더 방법도 상기 예측 모드에 따라 다르게 적용함으로써 코딩 효율을 높일 수 있다.
본 발명의 일실시예로서, 하나의 매크로블록에 대해 변환 과정에서 이용되는 단위 블록의 크기(이하, '변환 크기'라 한다)를 적응적으로 설정할 수 있다. 예를 들어, 해상도가 큰 비디오 신호를 처리하는 경우, 변환 크기를 상기 비디오 신호의 해상도에 적합하도록 결정할 수 있다. 구체적 예로, XGA(eXtended Graphics Array, 1024x768, 4:3) 해상도를 갖는 비디오 신호에서 32x32 크기의 매크로블록을 이용하는 경우, 변환 크기를 16x16으로 설정할 수 있다. 이때, 32x32 매크로블록에 대해 16x16 변환 크기만을 이용하여 변환 과정을 수행할 수 있으며, 또는 32x32, 32x16, 16x32, 16x16, 16x8, 8x16, 8x8, 8x4, 4x8, 4x4 중 적어도 하나의 변환 크기를 이용하여 변환 과정을 수행할 수 있다. 즉, 하나의 매크로블록에 대해 단 하나의 변환 크기만을 이용할 수도 있고, 복수개의 변환 크기를 이용할 수도 있다.
또한, 본 발명에서는, 블록마다 적절한 변환 크기를 설정 가능하게 하는 적응적 변환 크기 플래그 정보(adaptive transform size flag information)를 정의할 수 있다. 상기 적응적 변환 크기 플래그 정보는 코딩 유닛이 수평 및 수직 방향으로 절반 크기를 갖는 코딩 유닛들로 분할되는지 여부를 나타내는 정보로 정의될 수도 있다. 여기서, 코딩 유닛은 픽쳐, 슬라이스, 매크로블록, 서브블록, 변환 블록, 블록, 픽셀 등을 의미할 수 있다. 즉, 제 1 코딩 유닛의 상기 적응적 변환 크기 플래그 정보가 참이면, 제 2 코딩 유닛마다 상기 적응적 변환 크기 플래그 정보가 획득될 수 있다. 이때, 상기 제 2 코딩 유닛은 상기 제 1 코딩 유닛에 포함되는 서브 블록을 나타낸다. 그리고, 상기 적응적 변환 크기 플래그 정보는 변환부 또는 역변환부(300)에서 획득될 수 있으며, 구체적으로 변환 크기 결정부(310)에서 획득될 수 있다. 또한, 상기 적응적 변환 크기 플래그 정보는 현재 변환 유닛의 크기를 최소 변환 크기 및 최대 변환 크기 중 적어도 하나와 비교함으로써 획득될 수 있다. 예를 들어, 현재 변환 유닛의 크기가 최소 변환 크기보다 크고 최대 변환 크기보다 작거나 같은 경우에 상기 적응적 변환 크기 플래그 정보가 획득될 수 있다. 상기 적응적 변환 크기 플래그 정보에 기초하여 변환 유닛의 크기가 결정되고, 그에 따라 변환 과정이 수행될 것이다. 또는 상기 적응적 변환 크기 플래그 정보에 기초하여 코딩블록 플래그 정보(coded_block_flag)를 획득할 수 있다. 여기서, 코딩블록 플래그 정보(coded_block_flag)는 변환 유닛이 0이 아닌 변환계수레벨을 포함하는지 여부를 나타낸다.
예를 들어, 상기 제 1 코딩 유닛의 크기가 128x128이면, 상기 제 2 코딩 유닛은 64x64 크기를 갖는 4개의 서브 블록들을 나타낼 수 있다. 그리고, 만약 상기 적응적 변환 크기 플래그 정보가 존재하지 않는다면, 현재 블록의 변환 크기와 최소 변환 크기를 비교함으로써 보다 상기 적응적 변환 크기 플래그 정보를 유도할 수 있다. 예를 들어, 현재 블록의 변환 크기가 최소 변환 크기보다 크다면, 상기 적응적 변환 크기 플래그 정보는 코딩 유닛이 수평 및 수직 방향으로 절반 크기를 갖는 코딩 유닛들로 분할되는 것을 나타낼 것이고, 현재 블록의 변환 크기가 최소 변환 크기보다 크지 않다면 상기 적응적 변환 크기 플래그 정보는 상기 적응적 변환 크기 플래그 정보는 코딩 유닛이 수평 및 수직 방향으로 절반 크기를 갖는 코딩 유닛들로 분할되지 않을 것을 나타낼 것이다. 즉, 현재 블록의 변환 크기가 최소 변환 크기보다 크다면, 상기 적응적 변환 크기 플래그 정보는 '1'로 유도되어, 각 서브 블록마다 상기 적응적 변환 크기 플래그 정보를 확인할 것이다. 그리고, 현재 블록의 변환 크기가 최소 변환 크기보다 크지 않다면 상기 적응적 변환 크기 플래그 정보는 '0'으로 유도되어, 현재 블록의 변환 크기가 적용될 것이다.
구체적 예로, 상기 적응적 변환 크기 플래그 정보를 split_transform_unit_flag 라 하자. 도 2를 참조하면, 현재 매크로블록(블록 A)의 크기가 128x128일 때, split_transform_unit_flag에 따라 128x128, 64x64, 32x32, 16x16, 8x8, 4x4 변환 크기 중 적어도 하나가 선택될 수 있다. 현재 매크로블록(블록 A) 레벨에서 상기 split_transform_unit_flag가 추출되고, 상기 split_transform_unit_flag가 '0'의 값을 나타내면 128x128 변환 크기가 적용되고, 상기 split_transform_unit_flag가 '1'의 값을 나타내면 상기 128x128 현재 매크로블록 내 64x64 크기의 4개의 서브 블록들에 대해 각각 상기 split_transform_unit_flag를 획득할 수 있다. 그리고, 64x64 크기의 서브 블록(블록 B) 레벨에서 획득된 split_transform_unit_flag가 '0'의 값을 나타내면 64x64 변환 크기가 적용되고, 상기 split_transform_unit_flag가 '1'의 값을 나타내면 다시 상기 64x64 서브 블록 내 32x32 크기의 4개의 서브 블록들에 대해 각각 상기 split_transform_unit_flag를 획득할 수 있다. 마찬가지로 이하의 서브 블록들에 대해서도 상기와 같은 과정이 동일하게 적용될 수 있다.
또한, 본 발명에서는, 상기 변환 크기를 나타내는 플래그 정보를 정의할 수 있다. 예를 들어, 도 3A 및 도 3B를 참조하면, transform_16x16_size_flag 및 transform_8x8_size_flag 에 따라 16x16, 8x8, 4x4 변환 크기 중 하나가 선택될 수 있다. 여기서, transform_16x16_size_flag 는 16x16 블록 단위로 변환 과정을 수행하는지 아니면 그보다 작은 블록 단위로 변환 과정을 수행하는지 여부를 나타내고, 매크로블록 레벨에서 획득될 수 있다. 그리고, transform_8x8_size_flag 는 8x8 블록 단위로 변환 과정을 수행하는지 아니면 4x4 블록 단위로 변환 과정을 수행하는지 여부를 나타내고, 서브 매크로블록 레벨에서 획득될 수 있다. 도 3A를 참조하면, transform_16x16_size_flag 가 '1'을 나타내면, 16x16 블록 단위로 변환 과정을 수행하고, '0'을 나타내면, transform_8x8_size_flag 를 확인한다. 상기 transform_8x8_size_flag 가 '1'을 나타내면, 8x8 블록 단위로 변환 과정을 수행하고, '0'을 나타내면, 4x4 블록 단위로 변환 과정을 수행한다.
마찬가지로, 도 3B를 참조하면, transform_8x8_size_flag 가 '0'을 나타내면, 4x4 블록 단위로 변환 과정을 수행하고, '1'을 나타내면, transform_16x16_size_flag 를 확인한다. 상기 transform_16x16_size_flag 가 '1'을 나타내면, 16x16 블록 단위로 변환 과정을 수행하고, '0'을 나타내면, 8x8 블록 단위로 변환 과정을 수행한다.
본 발명이 적용되는 다른 실시예로서, 매크로블록의 크기에 따라 사용 가능한 변환 크기를 미리 설정해놓은 경우 디코딩 장치는 상기 변환 크기를 나타내는 플래그 정보를 수신하지 않고 디코딩 장치 내에서 유도할 수 있다. 예를 들어, 매크로블록의 크기가 32x32 일 때 8x8 변환 크기를 이용하지 않는다고 설정해 놓은 경우, transform_8x8_size_flag 가 '0'을 나타낸다면 4x4 블록 단위로 변환 과정을 수행하고, transform_8x8_size_flag 가 '1'을 나타낸다면 16x16 블록 단위로 변환 과정을 수행할 것이다. 이때, transform_16x16_size_flag 는 '1'로 유도될 것이다. 마찬가지로, 매크로블록의 크기가 8x8 일 경우, transform_8x8_size_flag 가 '0'을 나타낸다면 4x4 블록 단위로 변환 과정을 수행하고, transform_8x8_size_flag 가 '1'을 나타낸다면 8x8 블록 단위로 변환 과정을 수행할 것이다. 이때, transform_16x16_size_flag 는 '0'으로 유도될 것이다.
다른 실시예로, 8x8 변환 크기는 인트라 8x8 블록에만 이용된다고 하면, 인트라 8x8 블록과 인트라 16x16 블록을 식별하기 위해 transform_16x16_size_flag 만 전송되고, transform_8x8_size_flag 는 디코딩 장치에서 '1'로 유도될 것이다. 또는 4x4 변환 크기가 인트라 8x8 블록에만 이용된다고 하면, 인트라 8x8 블록과 인트라 16x16 블록을 식별하기 위해 transform_16x16_size_flag 만 전송되고, transform_8x8_size_flag 는 서브 매크로블록 타입에 따라 디코딩 장치에서 '0' E또는 '1'로 유도될 것이다.
상기에서 설명한 바와 같이, 변환 크기, 매크로블록 크기, 변환 크기를 나타내는 플래그 정보 등은 일실시예에 불과할 뿐이고, 32x32, 32x16, 16x32, 16x16, 16x8, 8x16, 8x8, 8x4, 4x8, 4x4 및 32x32 이상의 크기도 모두 적용할 수 있을 것이다. 또한, 도 2, 도 3A 및 도 3B에서의 2개의 플래그 정보 조합도 일실시예에 해당하고, 하나의 플래그 정보에 의해 변환 크기를 나타낼 수 있으며, 또한 복수개의 플래그 정보를 조합하여 다양한 실시예들을 설정할 수도 있을 것이다.
도 4는 본 발명이 적용되는 실시예로서, 변환 타입을 나타내는 플래그 또는 매크로블록의 예측 모드에 기초하여 변환 방법(DCT 또는 KLT)을 결정하는 과정을 설명하기 위한 흐름도이다.
상기 도 2, 도 3A 및 도 3B에서 살펴본 것처럼, 코딩 효율 향상을 위해 비디오 신호의 처리시 다양한 변환 방법(DCT, KLT 등)이 적용될 수 있다. 예를 들어, 인코딩 장치는 각 슬라이스에 대해 DCT 또는 KLT 등을 적용하여 왜곡률 최적화(Rate-Distortion optimization)가 되는 변환 방법을 결정할 수 있다. 결정된 변환 방법은 구문 요소로 코딩되어 전송될 수 있고, 매크로블록 레이어, 슬라이스 헤더 또는 픽쳐 파라미터 셋 정보 내에서 정의될 수 있다. 구체적 예로, 인코딩 장치는 먼저 슬라이스에 대해 DCT를 적용하고 왜곡률 비용(RD cost)을 계산한 다음, KLT를 적용하고 왜곡률 비용(RD cost)을 계산한다. KLT의 왜곡률 비용(RD cost)이 DCT의 왜곡률 비용(RD cost)보다 작다면 상기 슬라이스에 대한 변환 방법으로 KLT가 선택되고, 이를 구문 요소로 코딩하여 전송한다. 여기서, 상기 구문 요소는 변환 타입을 나타내는 플래그 정보를 의미할 수 있다.
예를 들어, 도 4를 참조하면, 먼저 변환 타입을 나타내는 변환 타입 플래그 정보를 획득하고(S410), 상기 변환 타입 플래그 정보(transform_type_flag)가 '0'을 나타내면 DCT가 적용되고(S420), 상기 변환 타입 플래그 정보가 '1'을 나타내면 매크로블록의 타입에 기초하여 DCT 또는 KLT가 적용될 수 있다(S430). 매크로블록의 타입이 인트라 블록을 나타내면 KLT가 적용되고(S450), 인트라 블록이 아니면 DCT가 적용될 수 있다(S440). 이렇게 변환된 데이터들은 양자화 과정을 거치게 된다(S460). 이처럼, 본 발명에서는 매크로블록의 예측 모드에 기초하여 각 예측 모드마다 적절한 변환 방법이 이용될 수 있다.
도 5는 본 발명이 적용되는 실시예로서, 변환 블록의 위치에 따라 다른 변환 커널(transform kernel)을 적용하는 새로운 모드 기반형 변환(Mode Dependent Directional Transform)을 설명하기 위한 개략적인 블록도를 나타낸다.
모드 기반형 변환(Mode Dependent Directional Transform)이란, 인트라 블록의 코딩에서 사용되는 예측 모드에 따라 KLT에 기반을 둔 변환 방법을 사용하고, 스캐닝 오더 또한 각 예측 모드에 따라 다르게 적용하여 코딩 효율을 향상시키는 기술을 말한다. 상기 도 5를 참조하면, 예측부에서는 각 모드에 따른 예측 신호를 전송하고, 변환부에서는 원 신호와 상기 예측 신호와의 차이를 나타내는 레지듀얼 신호를 수신하고 상기 레지듀얼 신호를 변환하여 변환 계수를 생성한다. 이때, 상기 변환부에서는 각 모드에 따른 레지듀얼 신호에 대해 별개의 변환 커널(transform kernel)을 적용할 수 있다. 이처럼, 인트라 블록의 각 예측 모드에 따라 생성된 변환 계수들은 양자화부를 통하여 양자화된다. 또한, 모드 기반형 변환에서는 수평 변환과 수직 변환에 대한 별개의 변환 커널을 이용할 수 있다.
도 6은 본 발명이 적용되는 실시예로서, 변환 블록의 위치에 따라 다른 변환 커널(transform kernel)을 사용하는 구체적인 예를 나타낸다.
본 발명의 실시예로서, 변환 크기는 예측 블록의 크기보다 작거나 같을 수 있다. 예를 들어, 32x32 블록의 경우 변환 크기는 32x32, 16x16, 8x8, 4x4 가 될 수 있고, 16x16 블록의 경우 변환 크기는 16x16, 8x8, 4x4 가 될 수 있고, 8x8 블록의 경우 변환 크기는 8x8, 4x4 가 될 수 있으며, 4x4 블록의 경우 변환 크기는 4x4 만 될 수 있다.
또한, 16x16 블록에 대해 변환 크기 8x8을 적용하는 경우, 4개의 변환 블록에 대해 동일한 변환 커널을 적용할 수 있다. 또는 상기 도 6을 참조하면, 각 변환 블록의 위치에 따라 각기 다른 변환 커널을 적용할 수도 있다. 이 경우, 4개의 변환 커널이 필요할 것이다.
도 7은 본 발명이 적용되는 실시예로서, 변환 블록마다 스캔 오더(scan order)를 재배열하는 과정을 설명하기 위한 흐름도를 나타낸다.
스캔 오더라 함은 변환 계수를 일차원 형태로 배열하기 위한 순서를 의미하며, 낮은 주파수의 계수는 앞쪽에 높은 주파수의 계수는 뒤쪽에 위치하게 된다. 변환 계수 디코딩 과정은 4x4 휘도 레지듀얼 블록, 8x8 휘도 레지듀얼 블록, 인트라 16x16 예측 모드인 휘도 샘플, 그리고 색차 샘플 등에 적용될 수 있다. 또한, 앞서 살펴본 바와 같이 변환 크기가 더 커진다면 그 대상 블록 또는 샘플도 그에 따라 커질 수 있다. 예를 들어, 16x16 휘도 레지듀얼 블록, 32x32 휘도 레지듀얼 블록, 인트라 32x32 예측 모드인 휘도 샘플, 그리고 색차 샘플 등에 변환 계수 디코딩 과정이 적용될 수 있다.
구체적 예로, 상기 도 2, 도 3A 및 도 3B에서 설명한 transform_16x16_size_flag 및 transform_8x8_size_flag 에 따라, 상기 플래그 정보들이 16x16 블록 단위로 변환 과정을 수행할 것을 나타내는 경우, 16x16 휘도 레지듀얼 블록에 대해 변환 계수 디코딩 과정이 적용될 수 있다. 또는 상기 플래그 정보들이 8x8 블록 단위로 변환 과정을 수행할 것을 나타내는 경우, 8x8 휘도 레지듀얼 블록에 대해 변환 계수 디코딩 과정이 적용될 수 있다.
본 발명의 일실시예로, 8x8 휘도 레지듀얼 블록에 대해 변환 계수 디코딩 과정이 적용되는 경우, 먼저 8x8 휘도 레지듀얼 블록 내 64개의 값이 스캔 오더에 따라 초기값으로 설정된다. 여기서, 상기 64개의 초기값은 변환 계수를 나타내고, 스캔 오더는 지그재그 스캔을 의미할 수 있다. 그리고, 상기 변환 계수들은 변경된 스캔 오더에 따라 재배열함으로써 런렝스(run-length) 코딩시 비트수를 줄일 수 있다. 여기서, 변경된 스캔 오더는 0이 아닌 변환 계수의 개수를 계산하여 그 개수가 가장 많은 픽셀 위치를 우선순위로 설정하는 것을 의미한다. 0이 아닌 변환 계수의 개수는 매 매크로블록, 또는 매 변환 블록마다 계산하여 업데이트될 수 있다.
예를 들어, 도 7을 참조하면, 먼저 매크로블록 내 제 1 변환 블록 내 각 픽셀 위치에서 0이 아닌 변환 계수의 개수를 카운트한다(S710). 그리고, 제 1 변환 블록 내 각 픽셀 위치에서 0이 아닌 변환 계수의 개수가 가장 많은 픽셀 위치를 우선순위로 하여 스캔 오더를 변경할 수 있다(S720). 제 2 변환 블록 내 각 픽셀 위치에서 0이 아닌 변환 계수의 개수를 결정하고, 제 1 변환 블록의 변경된 스캔 오더를 제 2 변환 블록의 초기화된 스캔 오더로 이용할 수 있다(S730). 여기서, 상기 제 1 변환 블록과 상기 제 2 변환 블록은 하나의 매크로블록 내 분할된 블록을 나타내며, 예를 들어, 현재 매크로블록이 8x8 매크로블록이고, 상기 현재 매크로블록 내 4x4 휘도 레지듀얼 블록 단위로 변환 계수 디코딩 과정이 적용되는 경우, 상단 좌측 4x4 블록을 제 1 변환 블록, 상단 우측 4x4 블록을 제 2 변환 블록, 하단 좌측 4x4 블록을 제 3 변환 블록, 하단 우측 4x4 블록을 제 4 변환 블록이라 정의할 수 있다. 이러한 서브블록들의 순서는 본 실시예에 한정되지 않는다. 그리고, 상기 제 1 변환 블록 내 각 픽셀 위치에서의 0이 아닌 변환 계수의 개수와 상기 제 2 변환 블록 내 각 픽셀 위치에서의 0이 아닌 변환 계수의 개수를 더하고 가장 많은 개수를 가진 픽셀 위치를 우선순위로 하여 제 2 변환 블록의 스캔 오더를 변경할 수 있다(S740). 이와 같이 스캔 오더의 업데이트 과정을 통해 코딩 효율을 향상시킬 수 있다. 이에 대한 구체적인 실시예는 도 8A 내지 도 8D에서 상세히 설명하도록 한다.
또한, 상기 스캔 오더의 업데이트 과정은 매 매크로블록 또는 매 변환 블록 또는 매 블록마다 수행될 수 있다. 그리고, 상기 스캔 오더의 업데이트 과정 이후 스캔 오더의 초기화를 수행하는데, 이를 나타내는 플래그 정보를 정의할 수 있다. 예를 들어, 스캔 오더 초기화 플래그 정보가 '1'을 나타내면 매 매크로블록 또는 매 변환 블록에 대해 스캔 오더를 초기화하고, '0'을 나타내면 다시 상기 스캔 오더의 업데이트 과정을 수행하게 된다.
도 8A 내지 도 8D는 본 발명이 적용되는 실시예들로서, 변환 블록마다 스캔 오더(scan order)를 재배열하는 과정을 설명하기 위한 구체적인 예를 나타낸다.
본 실시예에서는 현재 매크로블록이 32x32 매크로블록이고, 상기 현재 매크로블록 내 16x16 블록 단위로 변환 계수 디코딩 과정이 적용되는 경우, 상단 좌측 16x16 블록을 제1블록, 상단 우측 16x16 블록을 제2블록, 하단 좌측 16x16 블록을 제3블록, 하단 우측 16x16 블록을 제4블록이라 정의할 수 있다. 여기서, 상기 제1블록 내지 제4블록은 변환 블록을 의미할 수 있다. 그리고, 회색 블록은 0이 아닌 변환 계수를 포함하고 있음을 나타내며, 회색 블록 내 숫자는 스캔 오더를 나타낸다.
도 8A를 참조하면, 먼저 제1블록 내 0이 아닌 변환 계수를 카운트하면 총 4개의 회색 픽셀 내에 0이 아닌 변환 계수가 존재함을 알 수 있다. 초기화된 스캔 오더는 지그재그 스캔 오더에 따르며, 여기서 상기 초기화된 스캔 오더는 지그재그 스캔 오더에 한정되지 않는다. 0이 아닌 변환 계수가 존재하는 회색 픽셀을 기준으로 지그재그 스캔 오더를 적용할 경우, 상기 도 8A에 나타난 바와 같이 업데이트된 스캔 오더를 획득할 수 있다.
그리고, 도 8B를 참조하면, 먼저 제2블록 내 0이 아닌 변환 계수를 카운트하고 상기 제1블록 내 0이 아닌 변환 계수의 개수와 합하여 최종적으로 누적된 0이 아닌 변환 계수의 개수를 카운트할 수 있다. 그리고, 제2블록의 초기화된 스캔 오더는 이전 제1블록에서 최종 업데이트된 스캔 오더가 이용된다. 마찬가지로, 누적된 0이 아닌 변환 계수의 개수 중 가장 많은 개수를 가지는 픽셀 위치를 기준으로 스캔 오더를 변경할 수 있다.
그리고, 도 8C를 참조하면, 먼저 제3블록 내 0이 아닌 변환 계수를 카운트하고 상기 제2블록에서 누적된 0이 아닌 변환 계수의 개수와 합하여 최종적으로 누적된 0이 아닌 변환 계수의 개수를 카운트할 수 있다. 그리고, 제3블록의 초기화된 스캔 오더는 이전 제2블록에서 최종 업데이트된 스캔 오더가 이용된다. 마찬가지로, 최종적으로 누적된 0이 아닌 변환 계수의 개수 중 가장 많은 개수를 가지는 픽셀 위치를 우선순위로 하여 스캔 오더를 변경할 수 있다.
마찬가지로, 도 8D를 참조하면, 먼저 제4블록 내 0이 아닌 변환 계수를 카운트하고 상기 제3블록에서 누적된 0이 아닌 변환 계수의 개수와 합하여 최종적으로 누적된 0이 아닌 변환 계수의 개수를 카운트할 수 있다. 그리고, 제4블록의 초기화된 스캔 오더는 이전 제3블록에서 최종 업데이트된 스캔 오더가 이용된다. 마찬가지로, 최종적으로 누적된 0이 아닌 변환 계수의 개수 중 가장 많은 개수를 가지는 픽셀 위치를 우선순위로 하여 스캔 오더를 변경할 수 있다.
이처럼 각 서브 블록마다 스캔 오더를 업데이트함으로써 보다 코딩 효율을 향상시킬 수 있다. 그리고, 매 슬라이스마다 스캔 오더를 초기화하지 않고 스캔 오더가 다시 초기화되는지 여부를 나타내는 플래그 정보를 슬라이스 헤더에서 정의할 수 있다.
이렇게 업데이트된 스캔 오더에 따라 1차원 배열된 변환 계수들은 디코딩된다.
한편, 상기 도 2, 도 3A 및 도 3B에서 설명한 바와 같이, 해상도가 큰 비디오 신호를 처리하는 경우, 변환 크기를 상기 비디오 신호의 해상도에 적합하도록 결정할 수 있다. 이때, 0이 아닌 변환계수레벨을 포함하는지 나타내는 정보들의 중복 전송을 방지할 필요가 있다. 예를 들어, 코딩블록 플래그 정보(coded_block_flag)는 0이 아닌 변환계수레벨을 포함하는지 여부를 나타내고, 상기 코딩블록 플래그 정보(coded_block_flag)가 '0'이면 0이 아닌 변환계수레벨을 포함하지 않고, '1'이면 적어도 하나의 0이 아닌 변환계수레벨을 포함하고 있음을 나타낸다. 다른 플래그 정보로, 블록패턴정보(coded_block_pattern)는 4개의 8X8 휘도 블록 및 이와 관련된 색차 블록이 0이 아닌 변환계수레벨을 포함하는지 여부를 나타낸다. 상기 블록패턴정보(coded_block_pattern)는 매크로블록 레이어에서 현재 매크로블록의 예측 모드가 인트라 16X16 예측모드가 아니면 추출된다. 여기서, 블록 패턴 정보란, 레지듀얼의 존재 여부를 알려주는 일종의 대표 비트 플래그로서, 16x16, 8×8 또는 4x4 휘도 블록의 레지듀얼 존재 여부를 나타낼 수 있다. 예를 들어, 현재 매크로블록이 존재하면 이를 4등분하여 좌측 상단 블록을 0번째 비트, 우측 상단 블록을 1번째 비트, 좌측 하단 블록을 2번째 비트, 우측 하단 블록을 3번째 비트로 설정하여 각 블록마다 레지듀얼의 존재 여부를 표현할 수 있다. 블록 패턴 정보는 6비트로 표현되는데, 위에서 살펴본 바와 같이 휘도 블록은 0~3번째 비트로 표현되고 색차 블록은 2비트(AC와 DC)로 표현된다.
예를 들어, 현재 매크로블록의 크기가 16x16 이고, 16x16 블록 단위로 변환 계수 디코딩 과정이 적용되면, 상기 블록패턴정보(coded_block_pattern)의 휘도 성분은 1비트로 줄이고, 상기 코딩블록 플래그 정보(coded_block_flag)는 전송하지 않을 수 있다. 다른 예로, 현재 매크로블록의 크기가 16x16 이고, 16x8 / 8x16 블록 단위로 변환 계수 디코딩 과정이 적용되면, 상기 블록패턴정보(coded_block_pattern)의 휘도 성분은 2비트로 줄이고, 상기 코딩블록 플래그 정보(coded_block_flag)는 전송하지 않을 수 있다. 다른 예로, 현재 매크로블록의 크기가 32x32 이고, 16x16 블록 단위로 변환 계수 디코딩 과정이 적용되면, 상기 블록패턴정보(coded_block_pattern)의 휘도 성분은 4비트를 쓰고, 상기 코딩블록 플래그 정보(coded_block_flag)는 전송하지 않을 수 있다.
한편, 상기 코딩블록 플래그 정보(coded_block_flag)는 적응적 변환 크기 플래그 정보에 기초하여 획득될 수 있다. 상기 적응적 변환 크기 플래그 정보는 상기 도 2에서 상세히 설명한 바 있다. 상기 적응적 변환 크기 플래그 정보는 현재 변환 유닛의 크기를 최소 변환 크기 및 최대 변환 크기 중 적어도 하나와 비교함으로써 획득될 수 있다. 상기 적응적 변환 크기 플래그 정보가, 코딩 유닛이 수평 및 수직 방향으로 절반 크기를 갖는 코딩 유닛들로 분할되는 것을 나타내는 경우, 변환 유닛의 크기가 결정되고, 그에 따라 변환 과정이 수행될 것이다. 또는 상기 적응적 변환 크기 플래그 정보가, 코딩 유닛이 수평 및 수직 방향으로 절반 크기를 갖는 코딩 유닛들로 분할되지 않음을 나타내는 경우, 상기 코딩블록 플래그 정보(coded_block_flag)가 획득될 수 있다.
이상에서 설명한 바와 같이, 본 발명이 적용되는 디코딩/인코딩 장치는 DMB(Digital Multimedia Broadcasting)과 같은 멀티미디어 방송 송/수신 장치에 구비되어, 비디오 신호 및 데이터 신호 등을 복호화하는데 사용될 수 있다. 또한 상기 멀티미디어 방송 송/수신 장치는 이동통신 단말기를 포함할 수 있다.
또한, 본 발명이 적용되는 디코딩/인코딩 방법은 컴퓨터에서 실행되기 위한 프로그램으로 제작되어 컴퓨터가 읽을 수 있는 기록 매체에 저장될 수 있으며, 본 발명에 따른 데이터 구조를 가지는 멀티미디어 데이터도 컴퓨터가 읽을 수 있는 기록 매체에 저장될 수 있다. 상기 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 저장 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등도 포함한다. 또한, 상기 인코딩 방법에 의해 생성된 비트스트림은 컴퓨터가 읽을 수 있는 기록 매체에 저장되거나, 유/무선 통신망을 이용해 전송될 수 있다.
이상, 전술한 본 발명의 바람직한 실시예는, 예시의 목적을 위해 개시된 것으로, 당업자라면 이하 첨부된 특허청구범위에 개시된 본 발명의 기술적 사상과 그 기술적 범위 내에서, 다양한 다른 실시예들을 개량, 변경, 대체 또는 부가 등이 가능할 것이다.

Claims (9)

  1. 디코딩(decoding) 장치에서 비디오(video) 신호를 디코딩하기 위한 방법에 있어서,
    변환 타입을 나타내는 변환 타입 정보를 획득하는 것과;
    상기 변환 타입 정보가 0의 값을 나타내거나 또는 현재 블록에 인트라 예측이 이용되지 않음에 기반하여, 제1 변환을 수행하는 것과;
    상기 변환 타입 정보가 1의 값을 나타내고 상기 현재 블록에 인트라 예측이 이용됨에 기반하여, 제2 변환을 수행하는 것을 포함하되,
    상기 현재 블록에 인트라 예측이 이용됨에 기반하여, 인트라 예측을 위한 블록의 크기와 동일한 변환 크기가 이용되는, 비디오 신호의 디코딩 방법.
  2. 청구항 1에 있어서,
    상기 제1 변환 또는 상기 제2 변환은 4x4, 8x8, 또는 16x16의 변환 크기를 가지는, 비디오 신호의 디코딩 방법.
  3. 청구항 1에 있어서,
    상기 제1 변환은 이산 코사인 변환(discrete cosine transform, DCT)에 해당하고, 상기 제2 변환은 카루넨-루브 변환(Karhuhen-Loeve Transform, KLT)에 해당하는, 비디오 신호의 디코딩 방법.
  4. 비디오 신호(video signal)를 디코딩(decoding)하기 위한 장치에 있어서, 상기 장치는
    변환 타입을 나타내는 변환 타입 정보를 획득하고,
    상기 변환 타입 정보가 0의 값을 나타내거나 또는 현재 블록에 인트라 예측이 이용되지 않음에 기반하여, 제1 변환을 수행하고,
    상기 변환 타입 정보가 1의 값을 나타내고 상기 현재 블록에 인트라 예측이 이용됨에 기반하여, 제2 변환을 수행하도록 구성되며,
    상기 현재 블록에 인트라 예측이 이용됨에 기반하여, 인트라 예측을 위한 블록의 크기와 동일한 변환 크기가 이용되는, 비디오 신호의 디코딩 장치.
  5. 청구항 4에 있어서,
    상기 제1 변환 또는 상기 제2 변환은 4x4, 8x8, 또는 16x16의 변환 크기를 가지는, 비디오 신호의 디코딩 장치.
  6. 청구항 4에 있어서,
    상기 제1 변환은 이산 코사인 변환(discrete cosine transform, DCT) 에 해당하고, 상기 제2 변환은 카루넨-루브 변환(Karhuhen-Loeve Transform, KLT)에 해당하는, 비디오 신호의 디코딩 장치.
  7. 인코딩(encoding) 장치에서 비디오(video) 신호를 인코딩하기 위한 방법에 있어서,
    변환 타입을 나타내는 변환 타입 정보를 획득하는 것과;
    상기 변환 타입 정보가 0의 값을 나타내거나 또는 현재 블록에 인트라 예측이 이용되지 않음에 기반하여, 제1 변환을 수행하는 것과;
    상기 변환 타입 정보가 1의 값을 나타내고 상기 현재 블록에 인트라 예측이 이용됨에 기반하여, 제2 변환을 수행하는 것을 포함하되,
    상기 현재 블록에 인트라 예측이 이용됨에 기반하여, 인트라 예측을 위한 블록의 크기와 동일한 변환 크기가 이용되는, 비디오 신호의 인코딩 방법.
  8. 청구항 7의 비디오 신호의 인코딩 방법에 의해 인코딩된 비디오 신호가 저장된, 컴퓨터가 읽을 수 있는 기록 매체.
  9. 비디오(video) 신호를 인코딩(encoding)하기 위한 장치에 있어서, 상기 장치는
    변환 타입을 나타내는 변환 타입 정보를 획득하고,
    상기 변환 타입 정보가 0의 값을 나타내거나 또는 현재 블록에 인트라 예측이 이용되지 않음에 기반하여, 제1 변환을 수행하고,
    상기 변환 타입 정보가 1의 값을 나타내고 상기 변환 블록에 인트라 예측이 이용됨에 기반하여, 제2 변환을 수행하도록 구성되며,
    상기 현재 블록에 인트라 예측이 이용됨에 기반하여, 인트라 예측을 위한 블록의 크기와 동일한 변환 크기가 이용되는, 비디오 신호의 인코딩 장치.
KR1020200036864A 2009-06-07 2020-03-26 비디오 신호의 디코딩 방법 및 장치 KR102213876B1 (ko)

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
US18483409P 2009-06-07 2009-06-07
US61/184,834 2009-06-07
US25784409P 2009-11-04 2009-11-04
US61/257,844 2009-11-04
US28832309P 2009-12-20 2009-12-20
US61/288,323 2009-12-20
US29025009P 2009-12-28 2009-12-28
US29025109P 2009-12-28 2009-12-28
US61/290,250 2009-12-28
US61/290,251 2009-12-28

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020190073421A Division KR102096407B1 (ko) 2009-06-07 2019-06-20 비디오 신호의 디코딩 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20200035388A KR20200035388A (ko) 2020-04-03
KR102213876B1 true KR102213876B1 (ko) 2021-02-05

Family

ID=60922207

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020170161466A KR101994216B1 (ko) 2009-06-07 2017-11-29 비디오 신호의 디코딩 방법 및 장치
KR1020190073421A KR102096407B1 (ko) 2009-06-07 2019-06-20 비디오 신호의 디코딩 방법 및 장치
KR1020200036864A KR102213876B1 (ko) 2009-06-07 2020-03-26 비디오 신호의 디코딩 방법 및 장치

Family Applications Before (2)

Application Number Title Priority Date Filing Date
KR1020170161466A KR101994216B1 (ko) 2009-06-07 2017-11-29 비디오 신호의 디코딩 방법 및 장치
KR1020190073421A KR102096407B1 (ko) 2009-06-07 2019-06-20 비디오 신호의 디코딩 방법 및 장치

Country Status (1)

Country Link
KR (3) KR101994216B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
PL3806476T3 (pl) * 2018-06-03 2023-09-11 Lg Electronics Inc. Sposób i urządzenie do przetwarzania sygnału video za pomocą transformacji zredukowanej
WO2020162690A1 (ko) * 2019-02-06 2020-08-13 엘지전자 주식회사 축소된 변환을 사용하여 비디오 신호를 처리하기 위한 방법 및 장치
KR102310900B1 (ko) * 2019-07-02 2021-10-12 한국전력공사 무인항공기를 이용한 송전설비의 진단장치 및 그 방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5241395A (en) * 1989-08-07 1993-08-31 Bell Communications Research, Inc. Adaptive transform coding using variable block size

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Test Model under Consideration. JCT-VC of ITU-T and ISO/IEC. JCTVC-A205 draft002. May. 24, 2010, pp.1-113*
Y. Ye, et al. Improved Intra Coding. ITU-T SG 16 Q.6 Video Coding Experts Group(VCEG). VCEG-AG11, Oct. 20, 2007, pp.1-6*

Also Published As

Publication number Publication date
KR20170134300A (ko) 2017-12-06
KR20190075031A (ko) 2019-06-28
KR20200035388A (ko) 2020-04-03
KR102096407B1 (ko) 2020-04-02
KR101994216B1 (ko) 2019-06-28

Similar Documents

Publication Publication Date Title
KR101805531B1 (ko) 비디오 신호의 디코딩 방법 및 장치
JP6835448B2 (ja) 画像符号化装置、画像復号装置、画像符号化方法、画像復号方法及び符号化ビットストリームを記録した記録媒体
JP6181246B2 (ja) ピクセル分類によるオフセット調整を利用するビデオ符号化方法及びその装置、並びに該ビデオ復号化方法及びその装置
US20210211726A1 (en) Method and apparatus for decoding a video signal
CA2887783C (en) Method and apparatus for encoding video by compensating for pixel value according to pixel groups, and method and apparatus for decoding video by the same
KR102213876B1 (ko) 비디오 신호의 디코딩 방법 및 장치
EP4205400A1 (en) Residual and coefficients coding for video coding
AU2022204998B2 (en) Residual and coefficients coding for video coding
KR101926017B1 (ko) 계층적 부호화 단위의 크기에 따른 비디오 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치
KR101538921B1 (ko) 계층적 부호화 단위의 크기에 따른 비디오 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치
KR20150061618A (ko) 계층적 부호화 단위의 크기에 따른 비디오 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치
KR20150060614A (ko) 계층적 부호화 단위의 크기에 따른 비디오 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치
KR101662743B1 (ko) 계층적 부호화 단위의 크기에 따른 비디오 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치
KR101538920B1 (ko) 계층적 부호화 단위의 크기에 따른 비디오 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치

Legal Events

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