KR20180088188A - Method and apparatus for adaptive image transformation - Google Patents

Method and apparatus for adaptive image transformation Download PDF

Info

Publication number
KR20180088188A
KR20180088188A KR1020170012960A KR20170012960A KR20180088188A KR 20180088188 A KR20180088188 A KR 20180088188A KR 1020170012960 A KR1020170012960 A KR 1020170012960A KR 20170012960 A KR20170012960 A KR 20170012960A KR 20180088188 A KR20180088188 A KR 20180088188A
Authority
KR
South Korea
Prior art keywords
class
block
image frame
current
basis vector
Prior art date
Application number
KR1020170012960A
Other languages
Korean (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 삼성전자주식회사
Priority to KR1020170012960A priority Critical patent/KR20180088188A/en
Priority to PCT/KR2017/010698 priority patent/WO2018139729A1/en
Publication of KR20180088188A publication Critical patent/KR20180088188A/en

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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • 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
    • 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/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/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/172Methods 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 picture, frame or field
    • 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/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/423Methods 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 characterised by memory arrangements

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

A method and apparatus for performing adaptive transformations on an image are disclosed. In the disclosed method and apparatus for transforming an image according to an embodiment of the present invention, a restoration frame in which an image frame before a current image frame is restored is divided into a plurality of blocks. Each block is classified into one or more classes based on the distribution of frequency components of each block in the plurality of blocks to determine a block set for each class. A base vector for each class is generated with regard to the block set for each class. The base vector to be sued for transforming the current block in the current image frame is selected among the base vectors for each class. The current block is transformed by using the selected base vector. Accordingly, the present invention can perform the adaptive transformation on the image by selecting the base vector to be used in a block to be transformed.

Description

적응적 영상 변환 방법 및 장치{METHOD AND APPARATUS FOR ADAPTIVE IMAGE TRANSFORMATION}[0001] METHOD AND APPARATUS FOR ADAPTIVE IMAGE TRANSFORMATION [0002]

본 명세서는 영상의 변환 방법 및 장치에 관한 것으로, 보다 상세하게는 영상에 적응적인 변환을 적용하여 압축 성능을 향상시키는 기술에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a method and apparatus for converting an image, and more particularly, to a technique for improving compression performance by applying an adaptive transformation to an image.

고해상도 또는 고화질 영상 컨텐트를 재생, 저장할 수 있는 하드웨어의 개발 및 보급에 따라, 고해상도 또는 고화질 영상 컨텐트를 효과적으로 부호화하거나 복호화하는 영상 코덱의 필요성이 증대하고 있다. 영상 코덱의 압축 기술 중 주파수 변환 및 역변환은 필수적인 기술이다.BACKGROUND ART [0002] With the development and dissemination of hardware capable of reproducing and storing high-resolution or high-definition video content, there is an increasing need for a video codec that effectively encodes or decodes high-definition or high-definition video content. Frequency conversion and inverse transformation of video codec compression techniques are indispensable technologies.

대표적인 표준 압축 방식으로는 MPEG2, H.264/AVC, HEVC 등이 있다. 영상 압축의 방법으로는, 연속되는 영상의 시간적 상관성과 영상 내부의 공간적 상관성을 줄이기 위해 움직임 추정 및 보상 과정을 거쳐 과거 영상으로부터 현재 영상의 예측 영상을 만든 후 현재 영상과의 차이를 변환한다. 이 때, 일반적인 영상 압축 기술의 변환 단계에서는, 블록 단위로 입력되는 영상 데이터에 대해 이산 여현 변환(Discrete Cosine Transform, 이하 “DCT”라고 함) 연산을 수행한다. 예를 들어, DCT 변환을 수행하기 위해 미리 저장된 코사인 고유 벡터(Cosine Eigen Vector)를 기저 벡터(basis vector)로 사용하여 블록의 픽셀 성분을 사영(Projection)한다.Typical standard compression schemes include MPEG2, H.264 / AVC, and HEVC. As a method of image compression, a motion estimation and compensation process is performed to reduce the temporal correlation between consecutive images and the spatial correlation within the image, and a difference between the current image and the current image is generated after the current image is generated from the past image. At this time, in the conversion step of a general image compression technique, discrete cosine transform (hereinafter referred to as " DCT ") operation is performed on image data input in block units. For example, a pixel component of a block is projected using a cosine eigen vector stored in advance as a basis vector in order to perform DCT transform.

한편, 영상의 변환 방법 중에서 최적의 성능을 나타내는 변환은 카루넨-루베 변환(Karhuhen-Loeve Transform, 이하 "KLT"라고 함)으로 알려져 있다. KLT 변환 방법은 신호의 통계적 특성을 바탕으로 신호를 가장 잘 나타낼 수 있는 고유 벡터를 사용하는 방법이다. KLT 변환은 영상에 적응적인 변환이 가능하여 우수한 에너지 응집 효과를 나타낸다는 장점이 있다. 그러나, KLT 변환은 고유 벡터를 별도로 전송해야 하기 때문에 압축 성능 향상이라는 이점이 오버헤드 발생으로 인해 상쇄된다. 또한, KLT 변환은 매 영상 프레임마다 고유 벡터를 계산해야 하므로 복잡도가 높아져서 영상을 실시간으로 부호화, 복호화하는 장치에 적용하기에는 어려움이 따랐다. 따라서, KLT 의 우수한 에너지 응집 성능에도 불구하고 오버헤드 및 복잡도 문제로 인하여 일반적인 압축 방식에서는 DCT 변환을 이용하여 왔다.On the other hand, the transformation indicating the optimum performance among the image transformation methods is known as Karhuhen-Loeve Transform (hereinafter referred to as " KLT "). The KLT transform method is a method of using an eigenvector that best represents the signal based on the statistical characteristics of the signal. The KLT transformation has an advantage that the image can be adaptively transformed and exhibits excellent energy cohesion effect. However, since the KLT transform needs to transmit the eigenvectors separately, the advantage of improving compression performance is offset by the occurrence of overhead. In addition, since KLT conversion requires calculation of an eigenvector for each image frame, it is difficult to apply it to an apparatus for encoding and decoding an image in real time due to increased complexity. Therefore, despite the excellent energy cohesion performance of KLT, DCT conversion has been used in a general compression method due to overhead and complexity problems.

이에 따라, 영상에 적응적인 변환을 수행하면서도 오버헤드 및 복잡도를 저감시킬 수 있는 기술이 요구된다.Accordingly, there is a need for a technique capable of reducing overhead and complexity while performing adaptive conversion to an image.

해결하고자 하는 과제는 복원된 영상 프레임으로부터 분류된 블록 집합 별로 기저 벡터를 생성하고 변환을 수행할 블록에 이용할 기저 벡터를 선택하여, 영상에 적응적인 변환을 수행하는 방법 및 장치를 제공하는데 있다.A problem to be solved is to provide a method and apparatus for generating a basis vector for each block set classified from a reconstructed image frame, selecting a base vector to be used for a block to be transformed, and performing adaptive transformation on the image.

상기 기술적 과제를 해결하기 위한 일 실시예에 따른 영상 변환 방법은, 현재 영상 프레임 이전의 영상 프레임이 복원된 복원 프레임을 복수의 블록으로 분할하는 단계; 상기 복수의 블록 내의 각 블록의 주파수 성분의 분포에 기초하여 상기 각 블록을 하나 이상의 클래스로 분류하여 클래스 별 블록 집합을 결정하는 단계; 상기 클래스 별 블록 집합에 대해 클래스 별 기저 벡터를 생성하는 단계; 상기 클래스 별 기저 벡터 중에서 현재 영상 프레임 내의 현재 블록의 변환에 이용할 기저 벡터를 선택하는 단계; 및 상기 선택된 기저 벡터를 이용하여 상기 현재 블록을 변환하는 단계를 포함한다.According to an aspect of the present invention, there is provided a method of transforming an image, the method comprising: dividing a reconstructed frame reconstructed from an image frame preceding a current image frame into a plurality of blocks; Classifying each block into one or more classes based on a distribution of frequency components of each block in the plurality of blocks to determine a block set for each class; Generating a class-basis vector for the class-specific block set; Selecting a base vector to be used for transforming a current block in a current image frame among the basis vectors for each class; And transforming the current block using the selected basis vector.

또한, 일 실시예에 따른 영상 변환 방법에서, 상기 클래스 별 기저 벡터는 복원 픽처 버퍼에 저장된 상기 복원 프레임에 기초하여 생성될 수 있다.In addition, in the image transform method according to an embodiment, the class-basis vector may be generated based on the reconstructed frame stored in the reconstructed picture buffer.

또한, 일 실시예에 따른 영상 변환 방법에서, 상기 복원 프레임은 상기 현재 영상 프레임 이전의 영상 프레임 중 장면 전환된 영상 프레임이 DCT 변환 및 양자화된 후 역양자화 및 DCT 역변환된 것일 수 있다.Also, in the image transform method according to an exemplary embodiment, the reconstructed frame may be a scene transformed image frame of the image frames preceding the current image frame, DCT transformed and quantized, inverse quantized, and DCT inversely transformed.

또한, 일 실시예에 따른 영상 변환 방법에서, 상기 방법은, 상기 현재 영상 프레임이 장면 전환된 영상 프레임인지 여부를 판별하는 단계를 더 포함하고, 상기 현재 영상 프레임이 장면 전환된 영상 프레임으로 판별되는 경우, 상기 현재 블록은 영상 변환 장치에 내장된 변환 벡터 에 기초하여 변환될 수 있다.The method may further include determining whether the current image frame is a scene-switched image frame, and determining whether the current image frame is a scene-switched image frame In this case, the current block may be transformed based on a transform vector embedded in the image transform apparatus.

또한, 일 실시예에 따른 영상 변환 방법에서, 상기 판별하는 단계는, 상기 현재 영상 프레임 및 상기 현재 영상 프레임 이전의 영상 프레임 사이의 픽셀 밝기 차이 값 또는 밝기 히스토그램 차이 값을 소정 임계값과 비교하는 단계를 포함할 수 있다.Also, in the image transform method according to an embodiment, the determining may include comparing a pixel brightness difference value or a brightness histogram difference value between the current image frame and an image frame before the current image frame to a predetermined threshold value . ≪ / RTI >

또한, 일 실시예에 따른 영상 변환 방법에서, 상기 클래스 별 블록 집합을 결정하는 단계는, 상기 각 블록 별로 직류(DC) 성분을 제외한 주파수 성분 중에서 최대 절대 값(maximum absolute value)을 가지는 계수의 위치를 탐색하는 단계; 및 상기 복수의 블록 중 상기 탐색된 위치에 대응하는 인덱스(index)가 동일한 블록을 동일한 클래스로 분류하는 단계를 포함할 수 있다.In addition, in the image transform method according to an exemplary embodiment, the step of determining a block set for each class may include: determining a position of a coefficient having a maximum absolute value among frequency components excluding a direct current (DC) ; And classifying blocks of the plurality of blocks having the same index corresponding to the searched position into the same class.

또한, 일 실시예에 따른 영상 변환 방법에서, 상기 클래스 별 기저 벡터를 생성하는 단계는, 상기 클래스 별 블록 집합의 공분산 행렬을 계산하는 단계; 및 상기 클래스 별 블록 집합의 공분산 행렬의 고유 벡터(Eigen Vector) 및 클래스 별 고유 값(Eigen Value)에 기초하여 상기 클래스 별 기저 벡터를 생성하는 단계를 포함할 수 있다.In addition, in the image transform method according to an exemplary embodiment, the step of generating the basis vector for each class may include: calculating a covariance matrix of the block set for each class; And generating the class-basis vector based on an eigenvector of the covariance matrix of the class-specific block set and an eigenvalue of each class.

또한, 일 실시예에 따른 영상 변환 방법에서, 상기 현재 블록의 변환에 이용할 기저 벡터는 상기 클래스 별 기저 벡터 중에서 상기 현재 블록과의 밝기 값의 차이를 최소화하는 클래스의 기저 벡터로 선택될 수 있다.Also, in the image transform method according to an exemplary embodiment, the basis vector used for transforming the current block may be selected as a basis vector of a class that minimizes a difference in brightness value from the current block among the basis vectors for each class.

또한, 일 실시예에 따른 영상 변환 방법에서, 상기 현재 블록의 변환에 이용할 기저 벡터는 상기 현재 블록이 해당하는 클래스의 기저 벡터로 선택될 수 있다.In addition, in the image transform method according to an embodiment, the basis vector used for transforming the current block may be selected as the basis vector of the class corresponding to the current block.

일 실시예에 따른 영상 변환 장치는, 변환을 변환을 수행할 현재 영상 프레임을 수신하는 수신부; 상기 현재 영상 프레임 이전의 영상 프레임이 복원된 복원 프레임을 복수의 블록으로 분할하고, 상기 복수의 블록 내의 각 블록의 주파수 성분의 분포에 기초하여 상기 각 블록을 하나 이상의 클래스로 분류하여 클래스 별 블록 집합을 결정하고, 상기 클래스 별 블록 집합에 대해 클래스 별 기저 벡터를 생성하고, 상기 클래스 별 기저 벡터 중에서 현재 영상 프레임 내의 현재 블록의 변환에 이용할 기저 벡터를 선택하는 제어부; 및 상기 선택된 기저 벡터를 이용하여 상기 현재 블록을 변환하는 변환부를 포함한다.According to an embodiment of the present invention, there is provided an image conversion apparatus comprising: a receiver for receiving a current image frame to perform conversion; Dividing a restored frame in which an image frame before the current image frame is reconstructed into a plurality of blocks, classifying each block into one or more classes based on distribution of frequency components of each block in the plurality of blocks, A control unit for generating a class-basis vector for the class-specific block set and selecting a basis vector to be used for transforming a current block in the current image frame, among the class-based basis vectors; And a transform unit for transforming the current block using the selected basis vector.

또한, 일 실시예에 따른 영상 변환 장치에서, 예측을 위한 참조 영상을 저장하는 복원 픽처 버퍼를 더 포함하고, 상기 클래스 별 기저 벡터는 상기 복원 픽처 버퍼에 저장된 상기 복원 프레임에 기초하여 생성될 수 있다.In addition, in the image transform apparatus according to the embodiment, the class-based basis vector may be generated based on the reconstructed frame stored in the reconstructed picture buffer .

또한, 일 실시예에 따른 영상 변환 장치에서, 상기 복원 프레임은 상기 현재 영상 프레임 이전의 영상 프레임 중 장면 전환된 영상 프레임이 DCT 변환 및 양자화된 후 역양자화 및 DCT 역변환된 것일 수 있다.Also, in the image transforming apparatus according to an embodiment, the reconstructed frame may be one obtained by rearranging DCT and DCT transformed and quantized image frames after the current image frame, and then performing inverse quantization and inverse DCT.

또한, 일 실시예에 따른 영상 변환 장치에서, 상기 제어부는, 상기 현재 영상 프레임이 장면 전환된 영상 프레임인지 여부를 판별하고, 상기 현재 영상 프레임이 장면 전환된 영상 프레임으로 판별되는 경우, 상기 현재 블록을 영상 변환 장치에 내장된 변환 벡터에 기초하여 변환할 수 있다.In addition, in the image conversion apparatus according to an embodiment, the controller determines whether the current image frame is a scene-switched image frame, and when the current image frame is determined as a scene-switched image frame, Can be converted based on the conversion vector embedded in the image conversion apparatus.

또한, 일 실시예에 따른 영상 변환 장치에서, 상기 제어부는, 상기 현재 영상 프레임 및 상기 현재 영상 프레임 이전의 영상 프레임 사이의 픽셀 밝기 차이 값 또는 밝기 히스토그램 차이 값을 소정 임계값과 비교할 수 있다.In addition, in the image conversion apparatus according to an exemplary embodiment, the controller may compare a pixel brightness difference value or a brightness histogram difference value between the current image frame and an image frame before the current image frame with a predetermined threshold value.

또한, 일 실시예에 따른 영상 변환 장치에서, 상기 제어부는, 상기 각 블록 별로 직류(DC) 성분을 제외한 주파수 성분 중에서 최대 절대 값(maximum absolute value)을 가지는 계수의 위치를 탐색하고, 상기 복수의 블록 중 상기 탐색된 위치에 대응하는 인덱스(index)가 동일한 블록을 동일한 클래스로 분류할 수 있다.Also, in the image transforming apparatus according to an exemplary embodiment, the controller searches for a position of a coefficient having a maximum absolute value among frequency components excluding a direct current (DC) component for each block, Blocks having the same index corresponding to the searched position may be classified into the same class.

또한, 일 실시예에 따른 영상 변환 장치에서, 상기 제어부는, 상기 클래스 별 블록 집합의 공분산 행렬을 계산하고, 상기 클래스 별 블록 집합의 공분산 행렬의 고유 벡터(Eigen Vector) 및 클래스 별 고유 값(Eigen Value)에 기초하여 상기 클래스 별 기저 벡터를 생성할 수 있다.Also, in the image transforming apparatus according to an embodiment, the controller calculates a covariance matrix of the block set for each class, calculates an eigenvector of a covariance matrix of the block set for each class, Value of the class-basis vector.

또한, 일 실시예에 따른 영상 변환 장치에서, 상기 현재 블록의 변환에 이용할 기저 벡터는 상기 클래스 별 기저 벡터 중에서 상기 현재 블록과의 밝기 값의 차이를 최소화하는 클래스의 기저 벡터로 선택될 수 있다.In addition, in the image transforming apparatus according to an embodiment, the basis vector used for transforming the current block may be selected as a basis vector of a class that minimizes a difference in brightness value from the current block among the basis vectors for each class.

또한, 일 실시예에 따른 영상 변환 장치에서, 상기 현재 블록의 변환에 이용할 기저 벡터는 상기 현재 블록이 해당하는 클래스의 기저 벡터로 선택될 수 있다.In addition, in the image transform apparatus according to the embodiment, the basis vector used for transforming the current block may be selected as the basis vector of the class corresponding to the current block.

도 1은 일 실시예에 따른 영상 변환 장치(100)의 개략적인 블록도를 도시한다.
도 2는 일 실시예에 따른 영상 부호화 장치(200)의 블록도를 도시한다.
도 3은 일 실시예에 따른 영상 복호화 장치(300)의 블록도를 도시한다.
도 4는 NxN 블록에 대한 다양한 기저 패턴(basis pattern)을 예시하는 도면이다.
도 5는 일 실시예에 따른 클래스 별 기저 벡터를 생성하는 방법을 설명하기 위한 도면이다.
도 6은 일 실시예에 따라 주파수 성분의 분포에 기초하여 블록을 분류하는 방법을 설명하기 위한 도면이다.
도 7은 일 실시예에 따라 분류된 블록의 특징을 예시하기 위한 도면이다.
도 8은 일 실시예에 따른 클래스 별 기저 벡터를 생성하는 방법을 설명하기 위한 도면이다.
도 9는 일 실시예에 따라 현재 블록의 변환에 이용될 기저 벡터를 선택하는 방법을 설명하기 위한 도면이다.
도 10은 일 실시예에 따른 영상 변환 방법을 설명하기 위한 흐름도이다.
도 11은 다른 실시예에 따른 영상 변환 방법을 설명하기 위한 흐름도이다.
FIG. 1 shows a schematic block diagram of an image conversion apparatus 100 according to an embodiment.
FIG. 2 is a block diagram of an image encoding apparatus 200 according to an embodiment.
FIG. 3 is a block diagram of an image decoding apparatus 300 according to an embodiment.
Figure 4 is a diagram illustrating various basis patterns for NxN blocks.
5 is a view for explaining a method of generating a class-basis vector according to an embodiment.
6 is a diagram for explaining a method of classifying a block based on a distribution of frequency components according to an embodiment.
FIG. 7 is a diagram illustrating features of a block classified according to an embodiment.
8 is a view for explaining a method of generating a class-basis vector according to an embodiment.
9 is a diagram for explaining a method of selecting a basis vector to be used for transforming a current block according to an embodiment.
10 is a flowchart illustrating an image conversion method according to an embodiment.
11 is a flowchart for explaining an image conversion method according to another embodiment.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the invention is not intended to be limited to the particular embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention. Like reference numerals are used for like elements in describing each drawing.

본 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.The terms " part, " " module, " and the like, as used herein, refer to a unit that processes at least one function or operation, and may be implemented in hardware or software or a combination of hardware and software.

본 명세서에서 "일 실시예" 또는 "실시예"라는 것은 적어도 하나의 실시 예에 포함되는 실시예와 함께 설명된 특성, 구조, 특징 등을 의미하는 것이다. 그러므로, 본 명세서 전반에 걸쳐 다양한 곳에 등장하는 "일 실시예에서" 또는 "실시예에서"라는 어구의 등장은 반드시 모두 동일한 실시예를 가리키는 것은 아니다.As used herein, the phrase " one embodiment " or " an embodiment " means features, structures, features, and the like described in connection with the embodiments included in at least one embodiment. Therefore, the appearances of the phrase " in one embodiment " or " in an embodiment " appearing in various places throughout this specification are not necessarily all referring to the same embodiment.

본 명세서에서, 코딩은 경우에 따라 인코딩 또는 디코딩으로 해석될 수 있고, 정보(information)는 값(values), 파라미터(parameter), 계수(coefficients), 성분(elements) 등을 모두 포함하는 것으로 이해될 수 있다.In the present specification, coding may be interpreted as encoding or decoding as occasion demands, and information is understood to include both values, parameters, coefficients, elements, and the like .

'화면' 또는 '픽쳐(picture)'는 일반적으로 특정 시간대의 하나의 영상을 나타내는 단위를 의미하며, '슬라이스(slice)', 프레임(frame)' 등은 실제 비디오 신호의 코딩에 있어서 픽쳐의 일부를 구성하는 단위이며, 필요에 따라서는 픽쳐와 서로 혼용되어 사용 될 수도 있다.A 'slice', a frame, or the like refers to a unit of a picture in a real video signal coding. The 'picture' or 'picture' And may be used in combination with a picture if necessary.

'픽셀(pixel)', '화소' 또는 '펠(pel)'은 하나의 영상을 구성하는 최소의 단위를 의미한다. 또한, 특정한 픽셀의 값을 나타내는 용어로서 '샘플(sample)'을 사용할 수 있다. 샘플은 휘도(Luma) 및 색차(Chroma) 성분으로 나누어질 수 있으나, 일반적으로는 이를 모두 포함하는 용어로써 사용될 수 있다. 상기에서 색차 성분은 정해진 색상들 간의 차이를 나타내는 것으로 일반적으로 Cb 및 Cr로 구성된다.'Pixel', 'pixel' or 'pel' means the smallest unit of an image. In addition, 'sample' can be used as a term indicating the value of a specific pixel. The sample can be divided into luminance (Luma) and chroma (chroma) components, but generally it can be used as a term including all of them. The chrominance component represents a difference between predetermined colors, and is generally composed of Cb and Cr.

'유닛(unit)'은 코딩 유닛(CU), 예측 유닛(PU), 변환 유닛(TU)과 같이 영상 처리의 기본 단위 또는 영상의 특정 위치를 지칭하며, 경우에 따라서는 '블록(block)' 또는 '영역(area)' 등의 용어와 서로 혼용하여 사용될 수 있다. 또한, 블록은 M개의 열과 N개의 행으로 구성된 샘플들 또는 변환 계수(transform coefficient)들의 집합을 나타내는 용어로 사용될 수도 있다.A 'unit' refers to a specific unit of an image processing unit or image, such as a coding unit (CU), a prediction unit (PU), and a conversion unit (TU) Or " area " and the like. The block may also be used as a term indicating a set of samples or transform coefficients consisting of M columns and N rows.

'현재 블록(Current Block)'은, 부호화 또는 복호화하고자 하는 영상의 블록을 의미할 수 있다.The 'current block' may refer to a block of an image to be encoded or decoded.

'주변 블록(Neighboring Block)'은, 현재 블록에 이웃하는 부호화되었거나 또는 복호화된 적어도 하나의 블록을 나타낸다. 예를 들어, 주변 블록은 현재 블록의 상단, 현재 블록의 우측 상단, 현재 블록의 좌측, 또는 현재 블록의 좌측 상단, 좌측 하단에 위치할 수 있다. 또한 공간적으로 이웃하는 블록뿐 아니라 시간적으로 이웃하는 블록도 포함할 수 있다. 예를 들어, 시간적으로 이웃하는 블록인 대응-위치(co-located) 블록은 참조 픽처의 현재 블록과 동일한 위치의 블록 혹은 동일한 위치의 블록에 인접하는 이웃 블록을 포함할 수 있다.The 'neighboring block' indicates at least one block that is coded or decoded neighboring the current block. For example, a neighboring block may be located at the top of the current block, the upper right of the current block, the left side of the current block, or the upper left or lower left of the current block. It may also include temporally neighboring blocks as well as spatially neighboring blocks. For example, a co-located block that is a temporally neighboring block may include a block at the same position as the current block of the reference picture or a neighboring block adjacent to the block at the same position.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used in this application is used only to describe a specific embodiment and is not intended to limit the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In the present application, the terms "comprises" or "having" and the like are used to specify that there is a feature, a number, a step, an operation, an element, a component or a combination thereof described in the specification, But do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the contextual meaning of the related art and are to be interpreted as either ideal or overly formal in the sense of the present application Do not.

이하 도 1 내지 도 11을 참조하여, 다양한 실시예에 따라 영상에 적응적인 변환 기저를 이용하여 영상을 변환하는 방법 및 장치가 개시된다. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Referring now to FIGS. 1-11, a method and apparatus for transforming an image using an adaptive transformation base on an image according to various embodiments is disclosed.

도 1은 일 실시예에 따른 영상 변환 장치(100)의 개략적인 블록도를 도시한다. 일 실시예에 따른 영상 변환 장치(100)는 수신부(110), 제어부(120) 및 변환부(130)를 포함한다. 또한, 일 실시예에 따른 제어부(120)는 장면 전환 판별부(122), 기저 벡터 생성부(124) 및 기저 벡터 선택부(126)를 포함한다.FIG. 1 shows a schematic block diagram of an image conversion apparatus 100 according to an embodiment. The image conversion apparatus 100 includes a receiving unit 110, a control unit 120, and a conversion unit 130. The controller 120 includes a scene change determining unit 122, a basis vector generating unit 124, and a basis vector selecting unit 126.

일 실시예에 따른 영상 변환 장치(100)는 인코더 또는 디코더에 포함되어 영상을 변환 또는 역변환하기 위한 동작들을 수행할 수 있다.The image conversion apparatus 100 according to an exemplary embodiment may be included in an encoder or a decoder to perform operations for converting or inversely converting an image.

일 실시예에 따라 수신부(110)는 변환을 수행할 현재 영상 프레임을 수신한다. 예를 들어, 수신부(110)는 영상의 소정 데이터 단위의 영상 데이터를 수신할 수 있다. 소정 데이터 단위의 영상 데이터는 영상 프레임일 수 있으며, 영상 프레임을 소정 크기로 분할한 정사각형 블록 또는 직사각형 블록의 데이터일 수 있다. 한편, 영상 변환 장치(100)가 디코더에 포함되는 경우 수신부(110)는 영상 프레임이 압축된 비트스트림을 수신할 수 있다.According to one embodiment, the receiving unit 110 receives a current image frame to perform conversion. For example, the receiving unit 110 can receive image data of a predetermined data unit of an image. The image data of a predetermined data unit may be an image frame, or may be data of a square block or a rectangular block obtained by dividing an image frame into a predetermined size. On the other hand, when the image converting apparatus 100 is included in the decoder, the receiving unit 110 can receive the bit stream compressed with the image frame.

일 실시예에 따른 제어부(120)는 현재 영상 프레임에 대해 변환 또는 역변환을 수행하기에 앞서 영상 프레임에 적응적인 변환 기저를 결정하는 동작들을 수행한다. 영상 프레임에 적응적이라는 것은, 입력 신호의 통계적 특성에 의존하여 입력 영상 프레임에 따라 변환 함수가 새로 정의되는 것을 의미한다. 예를 들어, 영상 프레임에 적응적인 변환 기저란 KLT 변환 기저를 의미할 수 있다.The controller 120 according to an exemplary embodiment performs operations to determine an adaptive transformation base on an image frame prior to performing a transformation or an inverse transformation on the current image frame. Adaptive to an image frame means that a transform function is newly defined according to the input image frame depending on the statistical characteristics of the input signal. For example, an adaptive conversion base for an image frame may refer to a KLT transformed basis.

영상 압축 기술에서 널리 사용되는 변환 알고리즘은 블록 기반 변환과 이미지 기반 변환의 두 가지 종류로 나눌 수 있다. 블록 기반 변환의 예로는 KLT 변환, DCT 변환 등이 있다. 여기서, 변환을 통해 얻은 변환 계수들의 개수를 감소시켜 압축 효과를 높이는 것이 중요하다. 즉, 변환 후의 양자화 단계에서 최소의 손실을 끌어내기 위해서는 프레임의 중요 정보들이 변환된 이후 몇몇의 계수에 집중적으로 분포되도록 하는 것이 중요한데, 이러한 조건을 최대한 만족하는 변환 알고리즘이 KLT 이다. KLT 는 이론적으로 영상신호의 에너지 집중특성이 가장 뛰어나 압축에 가장 최적화된 이상적인 변환 방법으로 알려져 있으나, 입력 신호의 통계적 특성에 의존하여 입력 영상에 따라 변환함수가 새로 정의되어야 하고, 연산 알고리즘이 복잡하여 영상을 실시간으로 부호화, 복호화하는 장치에 적용하기에는 어렵다는 문제가 있었다.The transformation algorithms widely used in image compression technology can be divided into two types: block-based transformation and image-based transformation. Examples of block-based transformations include KLT transforms and DCT transforms. Here, it is important to increase the compression effect by reducing the number of transform coefficients obtained through the transform. In other words, in order to extract the minimum loss in the post-conversion quantization step, it is important to distribute the important information of the frame intensively to several coefficients after the conversion. The conversion algorithm that satisfies this condition is KLT. Although KLT is theoretically known as the ideal conversion method that is optimized most for the compression due to its excellent energy convergence characteristics of the image signal, it is required to newly define the conversion function according to the input image depending on the statistical characteristics of the input signal, There is a problem that it is difficult to apply the present invention to an apparatus for encoding and decoding an image in real time.

일 실시예에 따른 제어부(120)의 동작을 통해 영상에 적응적인 변환 및 역변환을 가능하게 하면서 오버헤드 및 복잡도를 저감시키는 방안이 제안된다. 이하에서는 제어부(120) 내의 장면 전환 판별부(122), 기저 벡터 생성부(124) 및 기저 벡터 선택부(126)가 수행하는 구체적인 동작에 대해 설명하기로 한다.A method of reducing overhead and complexity while enabling adaptive conversion and inverse transformation of an image through the operation of the controller 120 according to an embodiment is proposed. Hereinafter, a specific operation performed by the scene change determining unit 122, the basis vector generating unit 124, and the basis vector selecting unit 126 in the control unit 120 will be described.

일 실시예에 따라 장면 전환 판별부(122)는 수신부(110)를 통해 수신한 현재 영상 프레임이 장면 전환(scene change)된 영상 프레임인지 아니면 장면 전환되지 않은 영상 프레임인지 여부를 판별한다. 매 프레임마다 기저 벡터를 계산하는 것은 오버헤드가 증가하고, 이를 전송하기 위해 비트율(bit-rate)이 증가할 수 있다. 따라서, 이전 영상 프레임의 기저 벡터를 현재 입력된 영상 프레임의 변환에서 기저 벡터로 이용하기 위해 현재 영상 프레임이 장면 전환된 영상 프레임인지 여부를 판별할 필요가 있다. 장면 전환이 일어나는 경우, 장면 전환된 최초 프레임의 기저 벡터만을 구한 후, 동일한 장면 그룹에 속하는 이후의 프레임의 기저 벡터는 최초 프레임의 기저 벡터를 이용하여 변환을 수행할 수 있다. According to an exemplary embodiment, the scene change determination unit 122 determines whether the current image frame received through the receiver 110 is a scene change image frame or an image frame that has not been changed. Computing the basis vectors every frame increases the overhead and may increase the bit-rate to transmit it. Therefore, it is necessary to determine whether the current image frame is a scene-switched image frame in order to use the basis vector of the previous image frame as a basis vector in the conversion of the currently input image frame. If a scene change occurs, only the basis vectors of the first scene after the scene change are obtained, and the base vectors of the subsequent frames belonging to the same scene group can be transformed using the base vectors of the first frame.

장면 전환 여부를 판별하는 방법으로는 다양한 장면 전환 검출 기술들이 활용될 수 있다. 장면 전환 여부를 판별하는 대표적인 방법으로는 현재 영상 프레임과 이전 영상 프레임 사이의 픽셀 밝기 차이 값 또는 밝기 히스토그램 차이 값을 소정 임계값과 비교하는 방법이 사용될 수 있다.Various scene transition detection techniques can be utilized as a method for determining whether a scene change is to be performed or not. As a typical method for determining whether or not the scene change is to be performed, a method of comparing a pixel brightness difference value or a brightness histogram difference value between a current image frame and a previous image frame with a predetermined threshold value may be used.

예를 들어, 픽셀 밝기 차이 값을 도출하기 위해 아래 수학식 1이 이용될 수 있다.For example, the following Equation 1 can be used to derive the pixel brightness difference value.

Figure pat00001
Figure pat00001

수학식 1에서, dDC(X,Y)는 X 프레임 및 Y 프레임 사이의 픽셀 밝기 차이 값을 나타내고, CX(m,n) 및 CY(m,n)은 각각 X 프레임 및 Y 프레임의 픽셀 밝기를 나타내기 위한 값이다. X 프레임과 Y 프레임이 8x8 블록들로 분할되어 각각의 블록을 m개의 열과 n개의 행으로 나타낼 수 있다면 CX(m,n) 및 CY(m,n)은 각각 다음 수학식 2 및 수학식 3과 같이 나타내어질 수 있다.In Equation 1, d DC (X, Y ) represents a pixel brightness difference between the X-frame and the Y frame, C X (m, n) and C Y (m, n) is the X-frame and a Y frame, respectively It is a value for indicating pixel brightness. X frame and the Y-frame is divided into 8x8 blocks, respectively there may represent each block of m columns and n rows, C X (m, n) and C Y (m, n) is the following formula (2)) and ( 3 < / RTI >

Figure pat00002
Figure pat00002

Figure pat00003
Figure pat00003

일 실시예에 따른 장면 전환 판별부(122)는 상기 수학식 1 내지 3을 통해 도출한 픽셀 밝기 차이 값을 소정의 임계값(Th)과 비교할 수 있다. 장면 전환 판별부(122)는 픽셀 밝기 차이 값이 소정의 임계값보다 크면 장면의 전환이 이루어졌다고 판별할 수 있고, 픽셀 밝기 차이 값이 소정의 임계값보다 작거나 같으면 장면이 전환되지 않았다고 판별할 수 있다.The scene change determining unit 122 may compare the pixel brightness difference value derived through Equations 1 to 3 with a predetermined threshold value Th. If the pixel brightness difference value is greater than the predetermined threshold value, the scene change determination unit 122 may determine that the scene change has been performed. If the pixel brightness difference value is smaller than or equal to the predetermined threshold value, .

다른 예를 들어, 장면 전환 판별부(122)는 다음의 수학식을 이용하여 프레임 X 및 Y 사이의 히스토그램 차이 값

Figure pat00004
을 도출할 수도 있다.For example, the scene change discrimination unit 122 may calculate the histogram difference value between the frames X and Y
Figure pat00004
.

Figure pat00005
Figure pat00005

수학식 4에서 HX(j)는 X프레임의 히스토그램의 빈 값을 의미하고, HY(j)는 Y프레임의 히스토그램의 빈 값을 의미하며, K는 빈의 총 개수를 의미한다.In Equation (4), H X (j) denotes an empty value of the histogram of the X frame, H Y (j) denotes the bin value of the histogram of the Y frame, and K denotes the total number of the beans.

일 실시예에 따른 장면 전환 판별부(122)는 상기 수학식 4를 통해 도출한 히스토그램 차이 값을 소정의 임계값(Th)과 비교할 수 있다. 장면 전환 판별부(122)는 히스토그램 차이 값이 소정의 임계값보다 크면 장면의 전환이 이루어졌다고 판별할 수 있고, 히스토그램 차이 값이 소정의 임계값보다 작거나 같으면 장면이 전환되지 않았다고 판별할 수 있다.The scene change determining unit 122 may compare the histogram difference value derived through Equation (4) with a predetermined threshold value Th. If the histogram difference value is greater than the predetermined threshold value, it is possible to determine that the scene change has been performed. If the histogram difference value is smaller than or equal to the predetermined threshold value, the scene change determination section 122 can determine that the scene has not been changed .

이외에도, 장면 전환 판별부(122)는 공지된 다양한 장면 전환 검출 기술들을 활용하여 현재 영상 프레임이 장면 전환된 영상 프레임인지 여부를 판별할 수도 있다.In addition, the scene change determining unit 122 may determine whether the current image frame is a scene-switched image frame using various known scene change detection techniques.

일 실시예에 따른 기저 벡터 생성부(124)는 미리 설정된 블록 단위(예를 들어, 32x32, 16x16, 8x8 등)로 블록 집합을 대표할 수 있는 기저 벡터를 생성한다. 일 실시예에 따른 기저 벡터 생성부(124)는 입력 영상 프레임이 아닌 복원된 프레임을 이용하여 기저 벡터를 생성한다. 따라서, 기저 벡터를 외부로부터 전송받을 필요 없이 장치 내에서 온-라인(on-line) 방식으로 획득할 수 있다. 기저 벡터 생성부(124)가 기저 벡터를 생성하는 구체적인 과정에 대해서는 도 5 내지 도 8을 통해 후술하기로 한다.The basis vector generating unit 124 according to an embodiment generates a basis vector that can represent a block set in a predetermined block unit (for example, 32x32, 16x16, 8x8, etc.). The basis vector generator 124 according to an embodiment generates a basis vector using a reconstructed frame rather than an input image frame. Thus, the basis vectors can be acquired on-line within the device without having to be transmitted from the outside. A detailed process of generating the basis vector by the basis vector generating unit 124 will be described later with reference to FIGs. 5 to 8. FIG.

일 실시예에 따른 기저 벡터 선택부(126)는 기저 벡터 생성부(124)에서 생성한 하나 이상의 기저 벡터 중 변환하고자 하는 현재의 블록을 대표할 수 있는 기저 벡터를 선택한다. 기저 벡터 선택부(126)가 기저 벡터를 선택하는 구체적인 방법에 대해서는 도 9를 통해 후술하기로 한다.The basis vector selector 126 according to an embodiment selects a basis vector that can represent the current block to be transformed among the at least one basis vector generated by the basis vector generator 124. [ A specific method by which the basis vector selection unit 126 selects a basis vector will be described later with reference to FIG.

일 실시예에 따른 변환부(130)는 제어부(120)의 기저 벡터 선택부(126)에서 선택된 기저 벡터를 사용하여 현재 블록을 변환 또는 역변환한다. The transforming unit 130 transforms or inversely transforms the current block using the basis vector selected by the basis vector selecting unit 126 of the controller 120. [

도 2는 일 실시예에 따른 영상 부호화 장치(200)의 블록도를 도시한다.FIG. 2 is a block diagram of an image encoding apparatus 200 according to an embodiment.

일 실시예에 따른 영상 부호화 장치(200)는, 도 1의 영상 변환 장치(100)에서 변환된 영상을 부호화하는데 거치는 작업들을 수행한다. 일 실시예에 따른 영상 부호화 장치(200)는 수신부(210), 제어부(220), 변환부(230), 복원 픽처 버퍼(235), 인터 예측부(240), 인트라 예측부(245), 양자화부(250), 엔트로피 부호화부(255), 역양자화부(260), 역변환부(265), 디블록킹부(270), SAO 수행부(275)를 포함한다. 일 실시에에 따른 제어부(220)는 장면 전환 판별부(222), 기저 벡터 생성부(224), 기저 벡터 선택부(226)를 포함할 수 있다. 도 2의 수신부(210), 제어부(220) 및 변환부(230)는 각각 도 1의 수신부(110), 제어부(120) 및 변환부(130)에 대응할 수 있다. 또한, 도 2의 장면 전환 판별부(222), 기저 벡터 생성부(224), 기저 벡터 선택부(226)는 각각 도 1의 장면 전환 판별부(122), 기저 벡터 생성부(124), 기저 벡터 선택부(126)에 대응할 수 있다. 따라서, 도 2의 장면 전환 판별부(222), 기저 벡터 생성부(224), 기저 벡터 선택부(226)의 수행 동작에 대해서는 도 1에서 전술한 바와 같으므로 자세한 설명은 생략하기로 한다.The image encoding apparatus 200 according to an embodiment performs operations to encode the converted image in the image conversion apparatus 100 of FIG. The image encoding apparatus 200 includes a receiver 210, a controller 220, a transform unit 230, a reconstruction picture buffer 235, an inter prediction unit 240, an intra prediction unit 245, An entropy encoding unit 255, an inverse quantization unit 260, an inverse transform unit 265, a deblocking unit 270, and an SAO performing unit 275. The control unit 220 may include a scene change determining unit 222, a basis vector generating unit 224, and a basis vector selecting unit 226. The receiving unit 210, the control unit 220 and the converting unit 230 of FIG. 2 may correspond to the receiving unit 110, the control unit 120, and the converting unit 130 of FIG. 1, respectively. The scene change determination unit 222, the basis vector generation unit 224, and the basis vector selection unit 226 shown in FIG. 2 correspond to the scene change determination unit 122, the basis vector generation unit 124, And may correspond to the vector selection unit 126. Therefore, the operation of the scene change determining unit 222, the basis vector generating unit 224, and the basis vector selecting unit 226 shown in FIG. 2 is the same as that described above with reference to FIG. 1, and therefore a detailed description thereof will be omitted.

인트라 예측부(245)는 입력 영상(205) 중 인트라 모드의 부호화 단위에 대해 예측 단위별로 인트라 예측을 수행하고, 인터 예측부(240)는 인터 모드의 부호화 단위에 대해 예측단위별로 입력 영상(205) 및 복원 픽처 버퍼(235)에서 획득된 참조 영상을 이용하여 인터 예측을 수행한다. 입력 영상(205)은 최대부호화 단위로 분할된 후 순차적으로 인코딩이 수행될 수 있다. 이때, 최대 부호화 단위가 트리 구조로 분할될 부호화 단위에 대해 인코딩이 수행될 수 있다.The intra prediction unit 245 performs intra prediction on the prediction unit of the intra prediction mode for the intra prediction mode of the input image 205. The inter prediction unit 240 predicts the input image 205 And the reference image obtained in the reconstructed picture buffer 235. The inter- The input image 205 may be divided into a maximum encoding unit and then sequentially encoded. At this time, encoding can be performed on the encoding unit in which the maximum encoding unit is divided into a tree structure.

입력 영상(205)의 인코딩되는 부호화 단위에 대한 데이터와, 인트라 예측부(245) 또는 인터 예측부(240)로부터 출력된 각 모드의 부호화 단위에 대한 예측 데이터의 차이를 계산함으로써 레지듀 데이터가 생성된다. 레지듀 데이터는 변환부(230) 및 양자화부(250)를 거쳐 변환 단위별로 양자화된 변환 계수로 출력된다. 양자화된 변환 계수는 역양자화부(260), 역변환부(265)를 통해 공간 영역의 레지듀 데이터로 복원된다. 복원된 공간 영역의 레지듀 데이터는 인트라 예측부(245) 또는 인터 예측부(240)로부터 출력된 각 모드의 부호화 단위에 대한 예측 데이터와 더해짐으로써 입력 영상(205)의 부호화 단위에 대한 공간 영역의 데이터로 복원된다. 복원된 공간 영역의 데이터는 디블로킹부(270) 및 SAO 수행부(275)를 거쳐 복원 영상으로 생성된다. 생성된 복원 영상은 복원 픽처 버퍼(235)에 저장된다. 복원 픽처 버퍼(235)에 저장된 복원 영상들은 다른 영상의 인터예측을 위한 참조 영상으로 이용될 수 있다. 또한, 복원 픽처 버퍼(235)에 저장된 복원 영상들로부터 다음 영상 프레임의 변환을 위한 기저 벡터가 생성될 수 있다. 제어부(220) 내의 기저 벡터 생성부(224)가 복원 픽처 버퍼(235)에 저장된 복원 영상을 이용하여 기저 벡터를 생성하는 구체적인 동작에 관해서는 도 5 내지 도 8을 통해 후술하기로 한다. 변환부(230) 및 양자화부(250)에서 양자화된 변환 계수는 엔트로피 부호화부(255)를 거쳐 비트스트림(280)으로 출력될 수 있다.The residue data is generated by calculating the difference between the data of the encoding unit to be encoded of the input image 205 and the prediction data of the encoding unit of each mode output from the intra prediction unit 245 or the inter prediction unit 240 do. The residue data is output as a transform coefficient quantized by the transform unit 230 and the quantization unit 250. The quantized transform coefficients are restored to residue data in the spatial domain through the inverse quantization unit 260 and the inverse transform unit 265. The residue data of the reconstructed spatial region is added to the prediction data for the coding unit of each mode output from the intra prediction unit 245 or the inter prediction unit 240 to generate spatial data for the coding unit of the input image 205 Data is restored. The reconstructed spatial domain data is generated as a reconstructed image through the deblocking unit 270 and the SAO performing unit 275. The generated restored image is stored in the restored picture buffer 235. The restored images stored in the restored picture buffer 235 may be used as reference images for inter prediction of other images. In addition, a basis vector for transforming the next image frame may be generated from the reconstructed images stored in the reconstructed picture buffer 235. A detailed operation of generating the base vector using the reconstructed image stored in the reconstructed picture buffer 235 by the basis vector generation unit 224 in the control unit 220 will be described later with reference to FIG. 5 through FIG. The transform coefficients quantized by the transforming unit 230 and the quantizing unit 250 may be output to the bitstream 280 via the entropy encoding unit 255. [

다양한 실시예에 따라 영상 부호화 장치(200)의 구성 요소들인 인터 예측부(240), 인트라 예측부(245), 변환부(230), 양자화부(250), 엔트로피 부호화부(255), 역양자화부(260), 역변환부(265), 디블로킹부(270) 및 SAO 수행부(275)가 최대 부호화 단위마다 트리 구조에 따른 부호화 단위들 중 각각의 부호화 단위에 기반한 작업을 수행할 수 있다. The inter prediction unit 240, the intra prediction unit 245, the transform unit 230, the quantization unit 250, the entropy coding unit 255, the inverse quantization unit 255, The inverse transform unit 260, the inverse transform unit 265, the deblocking unit 270, and the SAO performing unit 275 can perform operations based on the respective encoding units among the encoding units according to the tree structure for each maximum encoding unit.

특히, 인트라 예측부(245)및 인터예측부(240) 는 현재 최대 부호화 단위의 최대 크기 및 최대 심도를 고려하여 트리 구조에 따른 부호화 단위들 중 각각의 부호화 단위의 파티션 모드 및 예측 모드를 결정하며, 변환부(230)는 트리 구조에 따른 부호화 단위들 중 각각의 부호화 단위 내의 쿼드 트리에 따른 변환 단위의 분할 여부를 결정할 수 있다.In particular, the intra-prediction unit 245 and the inter-prediction unit 240 determine the partition mode and the prediction mode of each coding unit among the coding units according to the tree structure in consideration of the maximum size and the maximum depth of the current maximum coding unit , The transform unit 230 can determine whether or not the transform unit according to the quadtree in each encoding unit among the encoding units according to the tree structure is divided.

도 3은 일 실시예에 따른 영상 복호화 장치(300)의 블록도를 도시한다.FIG. 3 is a block diagram of an image decoding apparatus 300 according to an embodiment.

일 실시예에 따른 영상 복호화 장치(300)는, 영상을 복호화하기 위한 작업들을 수행한다. 영상 복호화 장치(300)는 도 1의 영상 변환 장치(100)에서 역변환한 영상에 기초하여 복호화 동작들을 수행할 수 있다. 일 실시예에 따른 영상 복호화 장치(300)는 엔트로피 복호화부(310), 역 양자화부(315), 제어부(320), 역변환부(330), 복원 픽처 버퍼(335), 인터 예측부(340), 인트라 예측부(345), 디블록킹부(350) 및 SAO 수행부(355)를 포함한다. 일 실시예에 따른 제어부(320)는 장면 전환 판별부(322), 기저 벡터 생성부(324) 및 기저 벡터 선택부(326)를 포함할 수 있다. 도 3의 제어부(320) 및 역변환부(330)는 각각 도 1의 제어부(120) 및 변환부(130)에 대응할 수 있다. 또한, 도 3의 장면 전환 판별부(322), 기저 벡터 생성부(324) 및 기저 벡터 선택부(326)는 각각 도 1의 장면 전환 판별부(122), 기저 벡터 생성부(124), 기저 벡터 선택부(126)에 대응할 수 있다. 따라서, 도 3의 장면 전환 판별부(322), 기저 벡터 생성부(324), 기저 벡터 선택부(326)의 수행 동작에 대해서는 도 1에서 전술한 바와 같으므로 자세한 설명은 생략하기로 한다.The image decoding apparatus 300 according to an embodiment performs operations for decoding an image. The image decoding apparatus 300 can perform decoding operations based on the image inversely transformed by the image transforming apparatus 100 of FIG. The image decoding apparatus 300 according to an embodiment includes an entropy decoding unit 310, an inverse quantization unit 315, a controller 320, an inverse transform unit 330, a reconstruction picture buffer 335, an inter prediction unit 340, An intraprediction unit 345, a deblocking unit 350, and an SAO performing unit 355. The control unit 320 may include a scene change determining unit 322, a basis vector generating unit 324, and a basis vector selecting unit 326. The control unit 320 and the inverse transform unit 330 of FIG. 3 may correspond to the control unit 120 and the transform unit 130 of FIG. 1, respectively. The scene change determining unit 322, the basis vector generating unit 324 and the basis vector selecting unit 326 shown in FIG. 3 correspond to the scene change determining unit 122, the basis vector generating unit 124, And may correspond to the vector selection unit 126. Therefore, the operation of the scene change determination unit 322, the basis vector generation unit 324, and the basis vector selection unit 326 of FIG. 3 are the same as those described above with reference to FIG. 1, and therefore detailed description thereof will be omitted.

엔트로피 복호화부(310)는 비트스트림(305)으로부터 복호화 대상인 부호화된 영상 데이터 및 복호화를 위해 필요한 부호화 정보를 획득한다. 부호화된 영상 데이터는 양자화된 변환계수로서, 역양자화부(315) 및 역변환부(330)는 양자화된 변환 계수로부터 레지듀 데이터를 복원한다. The entropy decoding unit 310 obtains the encoded image data to be decoded and the encoding information necessary for decoding from the bitstream 305. The encoded image data is a quantized transform coefficient, and the inverse quantization unit 315 and the inverse transform unit 330 reconstruct the residue data from the quantized transform coefficients.

인트라 예측부(345)는 인트라 모드의 부호화 단위에 대해 예측 단위 별로 인트라 예측을 수행한다. 인터 예측부(340)는 현재 영상 중 인터 모드의 부호화 단위에 대해 예측 단위 별로 복원 픽처 버퍼(335)에서 획득된 참조 영상을 이용하여 인터 예측을 수행한다.The intraprediction unit 345 performs intraprediction on a prediction unit basis for an intra-mode encoding unit. The inter-prediction unit 340 performs inter-prediction using the reference picture obtained in the reconstructed picture buffer 335 for each inter-mode coding unit of the current picture, on a predictive unit basis.

인트라 예측부(345) 또는 인터 예측부(340)를 거친 각 모드의 부호화 단위에 대한 예측 데이터와 레지듀 데이터가 더해짐으로써 현재 영상의 부호화 단위에 대한 공간 영역의 데이터가 복원되고, 복원된 공간 영역의 데이터는 디블로킹부(350) 및 SAO 수행부(355)를 거쳐 복원 영상으로 출력될 수 있다. 또한, 복원 픽처 버퍼(335)에 저장된 복원 영상들은 참조 영상으로서 출력될 수 있다. 또한, 복원 픽처 버퍼(335)에 저장된 복원 영상들로부터 다음 영상 프레임의 역변환을 위한 기저 벡터가 생성될 수 있다. 제어부(320) 내의 기저 벡터 생성부(324)가 복원 픽처 버퍼(335)에 저장된 복원 영상을 이용하여 기저 벡터를 생성하는 구체적인 동작에 관해서는 도 5 내지 도 8을 통해 후술하기로 한다.The spatial data for the coding unit of the current image is restored by adding the prediction data and the residue data for the coding unit of each mode through the intra prediction unit 345 or the inter prediction unit 340, Data may be output as a reconstructed image through the deblocking unit 350 and the SAO performing unit 355. [ The restored images stored in the restored picture buffer 335 may be output as a reference image. In addition, a basis vector for inverse transformation of the next image frame may be generated from reconstructed images stored in the reconstructed picture buffer 335. The specific operation of generating the base vector using the reconstructed image stored in the reconstructed picture buffer 335 by the basis vector generating unit 324 in the control unit 320 will be described later with reference to FIG. 5 through FIG.

영상 복호화 장치(300)의 구성 요소들인 엔트로피 복호화부(310), 역양자화부(315), 역변환부(330), 인트라 예측부(345), 인터 예측부(340), 디블로킹부(350) 및 SAO 수행부(355)는 최대 부호화 단위마다 트리 구조에 따른 부호화 단위들 중 각각의 부호화 단위에 기반하여 작업을 수행할 수 있다. The entropy decoding unit 310, the inverse quantization unit 315, the inverse transform unit 330, the intra prediction unit 345, the inter prediction unit 340, the deblocking unit 350, And the SAO performing unit 355 can perform an operation based on each encoding unit among the encoding units according to the tree structure for each maximum encoding unit.

특히, 인트라 예측부(345)및 인터 예측부(340)는 트리 구조에 따른 부호화 단위들 중 각각의 부호화 단위마다 파티션 모드 및 예측 모드를 결정하며, 역변환부(330)는 부호화 단위마다 쿼드 트리구조에 따른 변환단위의 분할 여부를 결정할 수 있다.In particular, the intra prediction unit 345 and the inter prediction unit 340 determine a partition mode and a prediction mode for each coding unit among the coding units according to the tree structure, and the inverse transform unit 330 performs a quad- It is possible to determine whether or not the conversion unit according to < RTI ID = 0.0 >

도 2의 인터 예측부(240) 및 도 3의 인터 예측부(340)은, 인터 예측을 위해 움직임 벡터가 부화소 위치를 가리킬 때, 부화소 단위의 샘플 값을 생성하기 위해, 참조 픽처 내에서 정수 화소 단위의 참조 샘플들에 대해 보간 필터링을 수행할 수 있다. The inter-prediction unit 240 of FIG. 2 and the inter-prediction unit 340 of FIG. 3 perform intra-prediction in the reference picture to generate a sub-pixel sample value when the motion vector indicates a sub- Interpolation filtering can be performed on the reference samples in the integer pixel unit.

도 4는 NxN 블록에 대한 다양한 기저 패턴(basis pattern)을 예시하는 도면이다.Figure 4 is a diagram illustrating various basis patterns for NxN blocks.

도 4를 참조하면 영상 프레임(410) 내의 NxN 블록(415)에 대한 기저 패턴은 하나 이상 존재할 수 있다. 기저 패턴은 기저 벡터로서 표현되며, 기저 벡터란 n차원 공간의 모든 좌표를 일차결합을 통해 생성할 수 있는 일차독립인 벡터들의 집합 {V1, V2, …, Vn}을 의미한다. 예를 들어, NxN 블록(415) 내의 픽셀값을 일렬로 연결하여 n차원의 벡터로 표현하였을 때, 이 n차원의 공간은 최대 n개의 일차독립(linearly independent)인 벡터들을 가질 수 있으며, n개의 일차독립인 벡터들은 n차원의 공간을 생성하는 기저(basis) 역할을 수행한다. 도 4를 참조하면, NxN 블록(415)에 대한 기저 패턴은 DCT 기저 벡터(420), KLT 기저 벡터(430) 등으로 표현될 수 있다.Referring to FIG. 4, there may be one or more base patterns for the NxN block 415 in the image frame 410. The basis pattern is expressed as a basis vector, and a basis vector is a set of vectors that are independent of each other and can generate all the coordinates of the n-dimensional space through a primary combination {V1, V2, ... , Vn}. For example, when the pixel values in the NxN block 415 are connected in a line and expressed as an n-dimensional vector, the n-dimensional space may have a maximum of n linearly independent vectors, and n The vectors that are independent of each other act as a basis for generating an n-dimensional space. 4, the basis pattern for the NxN block 415 may be represented as a DCT basis vector 420, a KLT basis vector 430, or the like.

이하, DCT 기저 벡터(420) 및 KLT 기저 벡터(430)를 도출하기 위한 DCT 및 KLT 의 변환 과정을 살펴보도록 한다.Hereinafter, a DCT and KLT conversion process for deriving the DCT basis vector 420 and the KLT basis vector 430 will be described.

DCT 및 KLT는 입력 영상 프레임(410)을 저주파와 고주파 성분으로 분류한다. 변환 결과 저주파 성분에 에너지가 집중되어 양자화 수행 시 고주파 성분이 쉽게 제거될 수 있다. 인간의 시각은 고주파 성분의 손실보다 저주파 성분의 손실에 더욱 민감하기 때문에 고주파 성분을 제거하더라도 큰 화질의 열화없이 영상 압축이 가능하다는 점을 이용한 것이다.The DCT and KLT classify the input image frame 410 into low frequency and high frequency components. As a result of the conversion, energy is concentrated on the low frequency component, so that the high frequency component can be easily removed during the quantization. Since human vision is more sensitive to loss of low frequency components than loss of high frequency components, image compression is possible without deteriorating large image quality even if high frequency components are removed.

보다 자세히 설명하면, DCT 는 NxN 블록에 대해서 열 방향 변환(column-wise transform) 및 행 방향 변환(row-wise transform)을 수행하여 NxN 계수 블록을 생성한다. NxN 블록을 X, NxN DCT 변환 행렬을 A, Y를 NxN 계수 블록이라고 하면, 순방향 DCT 는 Y = A·X·AT와 같이 정의된다. 첫 번째 행렬 곱셈 A·X는 NxN 블록인 X의 각 열(column)에 대해서 1차원 DCT 를 수행하는 것에 해당되며, A·X에 이항 행렬 AT를 곱하는 것은 X의 각 행(row)에 대해 1차원 DCT 를 수행하는 것에 해당된다.More specifically, the DCT performs a column-wise transform and a row-wise transform on the NxN block to generate an NxN coefficient block. Assuming that the NxN block is X, the NxN DCT transformation matrix is A, and the Y is NxN coefficient block, the forward DCT is defined as Y = A X A T. The first matrix multiplication A · X corresponds to performing a one-dimensional DCT on each column of X, which is an N × N block, and multiplying A · X by a binary matrix A T is performed for each row of X This corresponds to performing one-dimensional DCT.

NxN DCT 변환 행렬 A의 (i,j)의 성분 αij는 다음의 수학식 5와 같다. Α ij component of the (i, j) of the NxN DCT transform matrix A is the same as Equation 5.

Figure pat00006
Figure pat00006

NxN 블록에 대해서 DCT 를 수행하면 DCT 계수들로 구성된 NxN 계수 블록이 생성된다. 이러한 DCT 계수들은 도 4에 도시된 바와 같은 DCT 기저 벡터(420) 패턴 집합의 가중치에 해당된다. DCT 기저 벡터(420)의 패턴은 수평 코사인 함수와 수직 코사인 함수의 조합으로 구성되어 있다. 영상 블록은 DCT 기저 벡터(420)의 각 패턴에 대응되는 DCT 계수를 곱한 다음 각 패턴들을 결합함으로써 재구성될 수 있다. When DCT is performed on the NxN block, an NxN coefficient block composed of DCT coefficients is generated. These DCT coefficients correspond to the weights of the DCT basis vector 420 pattern set as shown in FIG. The pattern of the DCT basis vector 420 consists of a combination of a horizontal cosine function and a vertical cosine function. The image block may be reconstructed by multiplying the DCT coefficients corresponding to each pattern of the DCT basis vector 420 and then combining the respective patterns.

KLT는 직교 변환 부호화 방식의 하나로서, 시간축의 화상 신호를 주파수축으로 변환하여 부호화하는 변환 부호화 방식 중에서 입력 신호의 성질에 따라서 변환 기저를 최적화한 방식이다. 블록화된 영상 신호의 고유 행렬을 구하고, 고유 행렬을 사용하여 직교 변환을 하기 때문에 변환된 신호 사이에는 상관이 없다. KLT는 벡터 표현의 통계적 특성에 기반을 두고 있다.KLT is one of the orthogonal transformation coding methods, and is a method in which the transformed base is optimized in accordance with the characteristics of the input signal among the transform coding methods for transforming the image signal on the time axis into a frequency axis and encoding the transformed image. Since the eigenmatrix of the blocked image signal is obtained and the orthogonal transformation is performed using the eigenmatrix, there is no correlation between the transformed signals. KLT is based on the statistical properties of vector representations.

KLT 는 공분산 행렬(covariance matrix)을 계산하고, 계산된 공분산 행렬로부터 기저 벡터를 계산하여, 입력 영상 프레임의 블록 단위로 변환 계수를 산출하는 과정으로 구성된다. 즉, KLT는 입력 벡터들의 공분산 행렬을 구하고, 공분산 행렬의 고유값에 따라 고유벡터를 정렬하여 변환행렬로 사용한다.KLT consists of calculating a covariance matrix, calculating a basis vector from the calculated covariance matrix, and calculating the transform coefficients in blocks of the input image frame. That is, KLT obtains a covariance matrix of input vectors and uses the eigenvectors as a transformation matrix by aligning the eigenvectors according to the eigenvalues of the covariance matrix.

수학식 6과 같은 형태를 갖는 블록 단위 픽셀 값의 모집단이 있을 때, 모집단의 평균 벡터(mean vector)는 수학식 7과 같이 정의된다When there is a population of block-level pixel values having the form of Equation (6), the mean vector of the population is defined as Equation (7)

Figure pat00007
Figure pat00007

Figure pat00008
Figure pat00008

이 때, 벡터 모집단의 공분산 행렬은 수학식 8과 같다.At this time, the covariance matrix of the vector population is expressed by Equation (8).

Figure pat00009
Figure pat00009

T 는 벡터의 전치(transposition)를 나타내며 X 는 n차이고, Cx 와 (X-mx)(X-mx)T 는 nxn 차이다. 행렬 Cx의 원소 cij 는 벡터들의 원소인 xi와 xj 간의 공분산이고, Cx는 대칭인 실수값을 가진다. xi와 xj가 상관성이 없다면 이 원소들의 공분산은 0이며, 따라서 cij=cji=0 이 된다.T represents the transposition of the vector, X is the n-th difference, and C x and (X m x ) (X m x ) T are the nxn differences. The element c ij of the matrix C x is the covariance between the elements x i and x j of the vectors, and C x has a symmetric real value. If x i and x j are not correlated, then the covariance of these elements is zero, and thus c ij = c ji = 0.

공분산 행렬을 표현하면 다음 수학식 9와 같다.The covariance matrix is expressed by the following equation (9).

Figure pat00010
Figure pat00010

여기서,

Figure pat00011
이고, Cx가 대칭행렬의 성질을 만족할 때, n개의 고유벡터는 항상 구할 수 있다. 고유벡터들과 대응되는 고유값 i의 크기에 따라 고유벡터들을 정렬하여 만든 새로운 변환 행렬 A를 이용하여 벡터 X를 Y로 변환하는 KLT 변환식을 만들 수 있다.here,
Figure pat00011
, And when Cx satisfies the property of the symmetric matrix, n eigenvectors can always be obtained. A KLT transformation formula for transforming the vector X to Y can be made using a new transformation matrix A created by aligning the eigenvectors according to the magnitudes of the eigenvalues i corresponding to the eigenvectors.

Figure pat00012
변환을 통해 얻어진 Y 벡터는 다음과 같은 특성을 갖는다. Y 벡터의 평균은 0이 되고, 수학식 10과 같이 공분산 행렬은 CX 로부터 구한 고유값만으로 이루어진 대각 행렬이 된다. 이는 KLT 가 이산변수를 상관관계가 0인 계수로 변환한다는 것을 의미하며, 이 때, CX 및 CY 는 동일한 고유값과 고유 벡터를 갖는다.
Figure pat00012
The Y vector obtained through the transformation has the following characteristics. The mean of the Y vector becomes 0, and the covariance matrix becomes a diagonal matrix consisting of eigenvalues obtained from C X as shown in Equation (10). This means that KLT converts the discrete variable to a coefficient with a correlation of zero, where C X and C Y have the same eigenvalue and eigenvector.

Figure pat00013
Figure pat00013

아래 수학식 11 및 12는 KLT의 역변환을 유도한 것이며 K개의 가장 큰 고유값에 해당하는 고유벡터만을 사용하여 적은 오차만으로 복원이 가능함을 보여 준다.Equations (11) and (12) below are derived from the inverse transformation of KLT and show that only eigenvectors corresponding to K largest eigenvalues can be restored with only small errors.

Figure pat00014
Figure pat00014

Figure pat00015
Figure pat00015

x와 hat x의 평균제곱의 오차는 아래 수학식 13으로 나타낼 수 있다.The error of the mean square of x and hat x can be expressed by Equation (13) below.

Figure pat00016
Figure pat00016

여기서 K의 크기를 적절하게 선택하기 위해서 전체 고유값의 합에 대한 특정 고유값의 상대적 비율을 이용한다. 임의의 고유해 λi의 기여도 di는 다음 수학식 14와 같다.Here, in order to appropriately select the size of K, the relative ratio of the specific eigenvalues to the sum of the total eigenvalues is used. The contribution d i of any unique solution λ i is given by:

Figure pat00017
Figure pat00017

수학식 14를 통해 산출한 기여도 di 값 중에서 비교적 큰 값을 갖는 개수에 따라 적절한 K를 결정한다. 이러한 과정을 통해 알 수 있듯이, 영상 프레임에서 얻은 벡터로부터 구한 공분산 행렬의 고유 벡터가 KLT 기저 벡터(430)이다.The appropriate K is determined according to the number of relatively large values of the contribution d i values calculated through Equation (14). As can be seen from this process, the eigenvector of the covariance matrix obtained from the vector obtained in the image frame is the KLT basis vector 430. [

전술한 바와 같이, KLT 변환 방법은 신호의 통계적 특성을 바탕으로 신호를 가장 잘 나타낼 수 있는 고유 벡터를 사용하는 방법으로서 영상에 적응적인 변환이 가능하다. 그러나, 영상 프레임 내의 모든 블록들에 대해 한 종류의 고유 벡터로 고유값을 산출하는 것은 다양한 특성을 가지는 블록들에 대해서 적응성이 저하되는 문제점이 있다. 따라서, 효율적인 변환을 위하여 입력 영상에 따라 적응적으로 복수개의 종류의 기저 벡터를 산출하면서도 오버헤드를 저감시키는 방법이 요구된다. 본 명세서에서는 영상 프레임 내의 모든 블록들에 대한 기저 벡터를 계산하는 대신, 영상 프레임 내의 블록들을 일정한 기준에 따라 분류하여 분류된 블록 집합을 대상으로 기저 벡터를 산출하는 방법이 제안된다.As described above, the KLT transformation method can adaptively convert the image using a eigenvector that can best represent the signal based on the statistical characteristics of the signal. However, calculating an eigenvalue with a kind of eigenvector for all blocks in an image frame has a problem that the adaptability is degraded for blocks having various characteristics. Accordingly, there is a need for a method of reducing overhead while calculating a plurality of kinds of basis vectors adaptively according to an input image for efficient conversion. In this specification, instead of calculating a basis vector for all blocks in an image frame, a method of calculating a basis vector on a block set classified by classifying blocks in an image frame according to a certain standard is proposed.

도 5는 일 실시예에 따른 클래스 별 기저 벡터를 생성하는 방법을 설명하기 위한 도면이다.5 is a view for explaining a method of generating a class-basis vector according to an embodiment.

일 실시예에 따른 클래스 별 기저 벡터는 제어부(120, 220, 320) 내의 기저 벡터 생성부(124, 224, 324)에서 생성할 수 있다. 일 실시예에 따른 기저 벡터 생성부(124, 224, 324)는 영상 프레임(510)을 미리 설정된 블록 단위(예를 들어, 32x32, 16x16, 8x8 등)로 분할한다. 이 때, 영상 프레임(510)은 장면 전환된 영상 프레임의 복원 프레임일 수 있다. 즉, 영상 프레임(510)은 복원 픽처 버퍼(235, 335)에 저장된 복원 프레임일 수 있다. 이후, 기저 벡터 생성부(124, 224, 324)는 분할된 블록들을 클래스 별로 분류하여 클래스 별 블록 집합(530)을 생성하기 위해 분할된 블록들 각각에 대해 DCT 변환(520)을 수행한다. 여기서, 분할된 블록들은 각 블록의 주파수 성분의 분포에 기초하여 분류될 수 있다. 예를 들어, 각 블록이 분류되는 기준은 각 블록의 주파수 성분 중에서 최대 절대 값(maximum absolute value)을 가지는 계수의 위치에 기초할 수 있다. 즉, 최대 절대값을 가지는 계수의 위치에 대응하는 인덱스(index)가 동일한 블록끼리 동일한 클래스로 분류될 수 있다. 이 때, 각 블록의 직류(DC) 성분은 평균 에너지를 대표하여 항상 큰 값이 나오므로 DC 성분을 제외한 주파수 성분만이 고려될 수 있다. 따라서, 8x8 블록의 경우에는 DC 성분 위치에 대응하는 인덱스를 제외하고 63개의 인덱스가 존재하며, 이에 따라 8x8 블록은 최대 63개의 클래스로 분류될 수 있다. 일 실시예에 따라, 기저 벡터 생성부(124, 224, 324)는 생성된 클래스 별 블록 집합(530) 각각에 대해 클래스 별 기저 벡터(540)를 생성한다. 8x8 블록의 경우, 클래스 별 기저 벡터(540)의 개수는 최대 63개까지 생성될 수 있다.The class-basis vectors according to an embodiment may be generated by the basis vector generating units 124, 224, and 324 in the controllers 120, 220, and 320, respectively. The basis vector generating units 124, 224 and 324 according to an embodiment divide the image frame 510 into a predetermined block unit (for example, 32x32, 16x16, 8x8, etc.). In this case, the image frame 510 may be a restored frame of the scene-switched image frame. That is, the image frame 510 may be a restored frame stored in the restored picture buffers 235 and 335. The base vector generation units 124, 224, and 324 classify the divided blocks according to classes and perform DCT transform 520 for each of the divided blocks to generate a block set 530 for each class. Here, the divided blocks can be classified based on the distribution of frequency components of each block. For example, the criterion by which each block is classified may be based on a position of a coefficient having a maximum absolute value among frequency components of each block. That is, the blocks having the same index corresponding to the position of the coefficient having the maximum absolute value can be classified into the same class. At this time, since the direct current (DC) component of each block always represents a large value on the basis of the average energy, only the frequency component excluding the DC component can be considered. Therefore, in the case of the 8x8 block, there are 63 indices excluding the index corresponding to the DC component position, so that 8x8 blocks can be classified into a maximum of 63 classes. According to one embodiment, the basis vector generators 124, 224, and 324 generate a class-specific basis vector 540 for each generated block set 530 of classes. In the case of 8x8 block, up to 63 base class vectors 540 can be generated.

블록들이 클래스 별로 분류되는 상세한 과정에 대해서는 도 6 및 도 7을 통해 후술하기로 하며, 클래스 별 기저 벡터(540)가 생성되는 상세한 과정에 대해서는 도 8을 통해 후술하기로 한다.A detailed process of classifying the blocks into classes will be described later with reference to FIGS. 6 and 7, and a detailed process of generating the class-basis vectors 540 will be described later with reference to FIG.

도 6은 일 실시예에 따라 주파수 성분의 분포에 기초하여 블록을 분류하는 방법을 설명하기 위한 도면이다.6 is a diagram for explaining a method of classifying a block based on a distribution of frequency components according to an embodiment.

일 실시예에 따라 제어부(120, 220, 320) 내의 기저 벡터 생성부(124, 224, 324)는 영상 프레임의 블록을 분류하여 클래스 별 블록 집합을 결정할 수 있다. 도 6을 참조하면, 영상 프레임으로부터 분할된 임의의 8x8 블록(600)에 대한 주파수 성분의 분포가 예시된다. 일 실시예에 따른 기저 벡터 생성부(124, 224, 324)는 블록(600)의 주파수 성분의 분포에 기초하여 블록(600)의 클래스를 결정한다.According to an embodiment, the basis vector generating units 124, 224, and 324 in the controllers 120, 220, and 320 may classify blocks of image frames to determine a block set for each class. Referring to FIG. 6, the distribution of frequency components for any 8x8 block 600 segmented from an image frame is illustrated. The basis vector generating units 124, 224, and 324 according to one embodiment determine the class of the block 600 based on the distribution of the frequency components of the block 600.

먼저, 기저 벡터 생성부(124, 224, 324)는 블록(600)의 DC 성분을 제외한 주파수 성분 중에서 최대 절대 값을 가지는 계수의 위치를 탐색한다. 도 6을 참조하면, 블록(600) 내의 주파수 성분의 각 위치에 대응하여 각각의 인덱스들이 존재한다. 예를 들어, '16.9828' 의 값을 갖는 위치에 대응하는 인덱스는 '인덱스 2'이고, '0.2262'의 값을 갖는 위치에 대응하는 인덱스는 '인덱스 3'일 수 있다. 도 6의 블록(600)의 경우, 주파수 성분 중에서 최대 절대 값을 가지는 계수의 위치는 '16.9828'의 값을 갖는 위치이다. 따라서, 블록(600)을 대표하는 인덱스(610)는 '16.9828'의 값을 갖는 위치에 대응하는 인덱스인 '인덱스 2'이다. First, the base vector generating units 124, 224, and 324 search for positions of coefficients having the maximum absolute value among the frequency components excluding the DC component of the block 600. Referring to FIG. 6, there are respective indices corresponding to each position of the frequency component in block 600. For example, an index corresponding to a position having a value of '16 .9828' may be 'Index 2', and an index corresponding to a position having a value of '0.2262' may be an index 3 '. In the case of block 600 of FIG. 6, the position of the coefficient having the maximum absolute value among the frequency components is a position having a value of '16 .9828'. Accordingly, the index 610 representing the block 600 is 'index 2' which is an index corresponding to a position having a value of '16 .9828'.

일 실시예에 따른 기저 벡터 생성부(124, 224, 324)는 각각의 블록을 대표하는 인덱스에 따라 각각의 블록을 클래스 별로 분류한다. 즉, 대표 인덱스가 동일한 블록들은 동일한 클래스로 분류될 수 있다. 8x8 블록의 경우에는 DC 성분 위치에 대응하는 인덱스를 제외하고 63개의 인덱스가 존재한다. 따라서, 8x8 블록들은 최대 63개의 클래스로 분류될 수 있다. The basis vector generating units 124, 224, and 324 classify each block according to an index representative of each block. That is, blocks having the same representative index can be classified into the same class. In the case of the 8x8 block, there are 63 indices excluding the index corresponding to the DC component position. Therefore, 8x8 blocks can be classified into a maximum of 63 classes.

도 7은 일 실시예에 따라 분류된 블록의 특징을 예시하기 위한 도면이다.FIG. 7 is a diagram illustrating features of a block classified according to an embodiment.

도 6을 통해 전술한 바와 같이, 일 실시예에 따른 기저 벡터 생성부(124, 224, 324)는 블록의 주파수 성분에 기초하여 클래스를 하나 이상으로 분류할 수 있다. 예를 들어, 일 실시예에 따른 클래스는 저주파수 블록(710)을 포함하는 클래스, 중간 주파수 블록(720)을 포함하는 클래스, 고주파수 블록(730)을 포함하는 클래스 등으로 분류될 수 있다. 예를 들어, 저주파수 블록(710)은 영상 프레임의 평평한(flat) 영역에 해당할 수 있고, 중간 주파수 블록(720)은 영상 프레임의 에지(edge) 영역에 해당할 수 있으며, 고주파수 블록(730)은 영상 프레임의 텍스처(texture) 또는 노이즈(noise) 영역에 해당할 수 있다. 전술한 실시예에서, 저주파수 블록(710)을 포함하는 클래스는 주파수의 최대 절대 값을 갖는 계수의 위치에 대응하는 인덱스가 낮은 값으로 이루어진 블록들의 집합일 수 있다. 반면에, 고주파수 블록(730)을 포함하는 클래스는 주파수의 최대 절대 값을 갖는 계수의 위치에 대응하는 인덱스가 높은 값으로 이루어진 블록들의 집합일 수 있다.As described above with reference to FIG. 6, the basis vector generating units 124, 224, and 324 according to the embodiment may classify the classes into one or more classes based on the frequency components of the blocks. For example, a class according to one embodiment can be classified into a class including a low frequency block 710, a class including an intermediate frequency block 720, a class including a high frequency block 730, and the like. For example, the low frequency block 710 may correspond to a flat region of an image frame, the intermediate frequency block 720 may correspond to an edge region of an image frame, May correspond to a texture or noise region of an image frame. In the above-described embodiment, the class including the low-frequency block 710 may be a set of blocks whose indexes corresponding to the position of the coefficient having the maximum absolute value of the frequency have low values. On the other hand, the class including the high-frequency block 730 may be a set of blocks whose indexes corresponding to the position of the coefficient having the maximum absolute value of frequency have a high value.

전술한 실시예에서 클래스 별 블록 집합이 고주파수, 중간 주파수, 저주파수 등으로 분류되는 것은 단지 예시를 위한 것으로, 일 실시예에 따른 클래스는 8x8 블록의 경우 최대 63개의 클래스로 분류될 수 있다.In the above-described embodiment, the block group for each class is classified into a high frequency, an intermediate frequency, a low frequency, and the like. For example, a class according to an embodiment can be classified into a maximum of 63 classes for 8x8 blocks.

이처럼, 클래스 별 블록 집합을 결정하는 이유는 각각의 블록들에 대한 기저 벡터를 산출하는 대신 유사한 주파수 분포를 갖는 블록 집합 별로 기저 벡터를 산출하는 것이 오버헤드 및 비트율을 줄이는데 효과적이기 때문이다. 이하에서는, 클래스 별 기저 벡터가 생성되는 과정에 대해 살펴보기로 한다.The reason for determining the block set for each class is that it is effective to reduce the overhead and the bit rate by calculating the basis vector for each block set having a similar frequency distribution instead of calculating the basis vector for each block. Hereinafter, a process of generating a class-basis vector will be described.

도 8은 일 실시예에 따른 클래스 별 기저 벡터를 생성하는 방법을 설명하기 위한 도면이다.8 is a view for explaining a method of generating a class-basis vector according to an embodiment.

일 실시예에 따른 기저 벡터 생성부(124, 224, 324)는 결정된 클래스 별 블록 집합에 대해 주성분 분석(Principal Component Analysis, 이하 "PCA"라고 함)을 수행하여 클래스 별 기저 벡터를 생성할 수 있다.The basis vector generation units 124, 224, and 324 according to the embodiment may perform Principal Component Analysis (hereinafter, referred to as "PCA") on a determined block set for each class to generate a basis vector for each class .

PCA는 분포된 데이터들의 주성분을 찾는 기법이다. 구체적으로 도 8을 참조하면, 2차원 좌표평면에 n개의 점 데이터 (x1,y1), (x2,y2), …, (xn,yn)들이 타원형으로 분포되어 있을 때, 이 데이터 분포(810)의 특성을 2개의 벡터(812, 814)로 설명할 수 있다. 2개의 벡터(812, 814)의 방향과 크기를 알면 데이터 분포(810)가 어떤 형태인지를 가장 단순하면서도 효과적으로 파악할 수 있다. 즉, PCA는 데이터 하나 하나에 대한 성분을 분석하는 것이 아니라 여러 데이터들이 모여 하나의 분포를 이룰 때 데이터 분포의 주 성분을 분석해 주는 방법이다.PCA is a technique for finding the principal component of distributed data. Specifically, referring to FIG. 8, n point data (x1, y1), (x2, y2), ..., , (xn, yn) are distributed in an elliptical shape, the characteristics of this data distribution 810 can be described by two vectors 812 and 814. Knowing the direction and size of the two vectors 812 and 814 can be the simplest and most effective way to grasp what the data distribution 810 is. In other words, PCA is not a component for each piece of data, but a method of analyzing the main component of data distribution when various data are gathered to form one distribution.

여기서 주성분이라 함은 그 방향으로 데이터들의 분산이 가장 큰 방향벡터를 의미한다. 도 8의 2개의 벡터(812, 814) 중에서 벡터(812) 방향을 따라 데이터들의 분산(흩어진 정도)이 가장 크며, 벡터(812)에 수직이면서 그 다음으로 데이터들의 분산이 가장 큰 방향은 벡터(814)이다.Here, the principal component means a direction vector having the largest variance of data in the direction. Among the two vectors 812 and 814 in FIG. 8, the direction in which the dispersion of data along the vector 812 direction is largest and the direction in which the dispersion of data next to the vector 812 is largest is the vector 814).

예를 들어, 임의의 클래스에 속하는 블록의 개수가 N개 있다고 하고, 각 블록의 크기가 8x8 일 때, 각 블록의 성분 값을 일렬로 연결하여 벡터로 만들면 각각의 블록은 8x8 = 64 차원의 벡터로 생각할 수 있다. 즉, 각각의 블록은 64차원 공간에서 한 점(좌표)에 대응한다. 여기서 N개의 64차원의 데이터에 기초하여 PCA를 수행하면 데이터의 차원 수와 동일한 개수의 주성분 벡터(즉, 고유 벡터)들을 얻을 수 있다. 이렇게 얻어진 주성분 벡터들은 서로 수직인 관계에 있다. 이는, 주성분 벡터들이 64차원 공간을 생성하는 기저 역할을 할 수 있음을 의미한다. 즉, PCA로 획득한 주성분 벡터들이 e1, e2, …, e64 라면, 임의의 64차원 데이터 x는 x = c1e1 + c2e2 + … + c64e64 와 같이 ei 들의 일차결합으로 표현될 수 있다. 이 때, 상수 계수 ci 들은 x와 ei의 내적, 즉, ci = x·ei로 계산할 수 있으며 이와 같이 어떤 데이터 집합의 데이터들을 그들의 주성분 벡터들의 일차결합으로 표현하는 것을 KLT 라고 부른다.For example, if the number of blocks belonging to an arbitrary class is N, and the size of each block is 8x8, the component values of the respective blocks are connected in series to form a vector. Then, each block is divided into 8x8 = . That is, each block corresponds to a point (coordinate) in the 64-dimensional space. If PCA is performed based on N 64-dimensional data, the number of principal component vectors (i.e., eigenvectors) equal to the number of dimensions of the data can be obtained. The principal component vectors thus obtained are perpendicular to each other. This means that principal component vectors can serve as a basis for generating a 64-dimensional space. That is, the principal component vectors obtained by PCA are e1, e2, ... , e64, any 64-dimensional data x is x = c1e1 + c2e2 + ... + c64e64 can be expressed as a linear combination of e i . In this case, the constant coefficients c i can be computed as the inner product of x and e i , ie, c i = x · e i . Thus, expressing data of a certain data set as a primary combination of their principal component vectors is called KLT.

다시 말해, PCA를 수행하여 주성분 벡터를 계산하는 과정은, 도 4를 통해 전술한 KLT 기저 벡터의 산출 과정과 동일하다. 즉, 클래스 별 블록 집합에 대해 클래스 별 기저 벡터를 생성하는 방법으로는 전술한 수학식 5 내지 14의 계산 과정이 그대로 적용될 수 있다.In other words, the process of calculating the principal component vector by performing the PCA is the same as the calculation process of the KLT basis vector described above with reference to FIG. That is, as a method of generating a class-basis vector for a block-by-class block set, the calculation process of Equations (5) to (14) described above can be directly applied.

따라서, 클래스 별 블록 집합에 대한 공분산 행렬이 Rxx 이 수학식 15와 같이 표현될 때, Rxx 와 고유벡터 및 고유값 사이의 관계는 수학식 16과 같이 나타낼 수 있다.Therefore, when a covariance matrix for a class-specific block set R xx is expressed as shown in Equation (15), a relationship between R xx and an eigenvector and an eigenvalue can be expressed by Equation (16).

Figure pat00018
Figure pat00018

Figure pat00019
Figure pat00019

상기 수학식 16에서 i는 클래스 번호를 의미하며,

Figure pat00020
는 i 번째 클래스의 고유 값(eigen value),
Figure pat00021
는 i 번째 클래스의 고유 벡터(eigen vector), 즉 기저 벡터를 의미한다.In Equation (16), i denotes a class number,
Figure pat00020
Is the eigenvalue of the ith class,
Figure pat00021
Denotes an eigenvector of an i-th class, that is, a basis vector.

일 실시예에 따른 기저 벡터 생성부(124, 224, 324)는 클래스 별 블록 집합에 대해 클래스 별 기저 벡터를 생성하여 업데이트할 수 있다. 업데이트된 클래스 별 기저 벡터는 다음 장면의 전환이 이루어질 때까지 입력된 영상 프레임들의 변환을 위해 이용될 수 있다.The base vector generation units 124, 224, and 324 according to an exemplary embodiment may generate and update class basis vectors for a block set for each class. The updated class-basis vectors can be used for transforming the input image frames until the next scene change is made.

도 9는 일 실시예에 따라 현재 블록의 변환에 이용될 기저 벡터를 선택하는 방법을 설명하기 위한 도면이다.9 is a diagram for explaining a method of selecting a basis vector to be used for transforming a current block according to an embodiment.

일 실시예에 따른 기저 벡터 선택부(126, 226, 326)는 생성된 클래스 별 기저 벡터 중에서 현재 영상 프레임 내의 현재 블록의 변환 또는 역변환에 이용할 기저 벡터를 선택한다. The basis vector selection unit 126, 226, and 326 according to an exemplary embodiment selects a basis vector to be used for transforming or inversely transforming a current block in a current image frame among base vectors generated by the generated class.

영상 부호화 장치(200)의 경우, 기저 벡터 선택부(226)는 현재 블록을 대표할 수 있는 기저 벡터를 찾는 동작을 수행한다. 한편, 영상 복호화 장치(300)의 경우 기저 벡터 선택부(326)는 영상 부호화 장치(200)의 기저 벡터 선택부(226)에서 선택된 기저 벡터에 대한 정보에 기초하여 현재 블록의 역변환에 필요한 기저 벡터를 선택한다. 이를테면, 영상 복호화 장치(300)가 8x8 블록을 역변환하기 위해서는 현재 블록이 최대 63개의 클래스 중 어떤 클래스의 기저 벡터로 변환되었는지를 알아야 한다. 따라서, 현재 블록이 해당되는 클래스에 관한 정보가 영상 부호화 장치(200)로부터 영상 복호화 장치(300)로 시그널링 될 수 있다. 현재 블록이 해당되는 클래스에 관한 정보는 영상 부호화 장치(200)에서 부가 정보의 형태로서 생성되어 영상 복호화 장치(300)로 전송될 수 있다. In the case of the image coding apparatus 200, the basis vector selection unit 226 performs an operation of finding a basis vector that can represent the current block. In the case of the video decoding apparatus 300, the base vector selection unit 326 selects a base vector necessary for inverse transformation of the current block, based on the base vector selection unit 226 of the video encoding apparatus 200, . For example, in order for the image decoding apparatus 300 to invert the 8x8 block, it is necessary to know which class of the maximum of 63 classes the current block has been converted to. Accordingly, the information about the class to which the current block corresponds can be signaled from the video encoding device 200 to the video decoding device 300. [ Information on the class to which the current block corresponds can be generated as additional information in the image encoding apparatus 200 and transmitted to the image decoding apparatus 300.

현재 블록의 변환 또는 역변환에 이용할 기저 벡터는 현재 블록을 포함하는 현재 영상 프레임이 장면 전환된 영상인지 여부에 기초하여 선택될 수 있다.The base vector used for transforming or inverse transforming the current block can be selected based on whether or not the current image frame including the current block is a scene-switched image.

현재 영상 프레임이 장면 전환의 첫 프레임일 경우, 이전 영상 프레임에서 생성된 기저 벡터를 사용할 수 없으므로 영상 변환 장치에 내장된 변환 벡터만이 선택될 수 있다. 예를 들어, 영상 변환 장치에 내장된 변환 벡터로서, 영상 부호화 장치 또는 영상 복호화 장치에 내장된 DCT, DST (Discrete Sine Transform) 등의 변환 벡터가 선택될 수 있다.If the current video frame is the first frame of the scene change, the base vector generated in the previous video frame can not be used, so only the transform vector embedded in the video converter can be selected. For example, as the transform vector embedded in the image transform apparatus, a transform vector such as DCT or DST (Discrete Sine Transform) embedded in the image coding apparatus or the image decoding apparatus can be selected.

현재 영상 프레임이 장면 전환되지 않은 프레임인 경우, 영상 부호화 장치(200)의 기저 벡터 선택부(226)는 이전 영상의 복원된 프레임으로부터 생성되어 업데이트된 클래스 별 기저 벡터 중에서 변환하고자 하는 현재 블록을 대표할 수 있는 클래스의 기저 벡터를 선택할 수 있다. 다른 실시예에 따라, 기저 벡터 선택부(226)은, 이전 영상의 복원된 프레임으로부터 생성된 클래스 별 기저 벡터(최대 63개) 외에 DCT 기저 벡터 1개를 더 포함하여 최대 64개의 기저 벡터 중에서 현재 블록을 대표할 수 있는 클래스의 기저 벡터를 선택할 수도 있다.If the current image frame is a non-scene-switched frame, the basis vector selection unit 226 of the image encoding apparatus 200 generates a current block to be transformed, which is generated from the reconstructed frame of the previous image, It is possible to select the base vector of the class that can be used. According to another embodiment, the basis vector selection unit 226 may further include one DCT basis vector in addition to the class-specific basis vectors (maximum of 63) generated from the reconstructed frame of the previous image, It is also possible to select a base vector of a class that can represent a block.

수학식 17과 같이, yi가 현재(원본) 블록 Yorg에 대해 i번 클래스의 고유 벡터

Figure pat00022
를 사용하여 구한 고유 값이고, 수학식 18과 같이, Yi가 역변환을 통해 얻어진 현재 블록의 밝기 값이라고 한다.As shown in Equation 17, if y i is the eigenvector of class i for the current (original) block Y org
Figure pat00022
, And Y i is the brightness value of the current block obtained through inverse transform as shown in Equation (18).

Figure pat00023
Figure pat00023

Figure pat00024
Figure pat00024

기저 벡터를 선택하는 제 1 실시예로서, 클래스 별 기저 벡터 중에서 현재 블록과의 밝기 값의 차이를 최소화하는 클래스의 기저 벡터를 선택하는 방식이 이용될 수 있다. 현재 블록과의 차이를 최소로 하는 기저 벡터의 클래스 i는 수학식 19와 같이 나타낼 수 있다.As a first embodiment for selecting a base vector, a method of selecting a base vector of a class that minimizes a difference between the brightness values of the current block and the base vectors of the classes may be used. The class i of the basis vector that minimizes the difference from the current block can be expressed by Equation (19).

Figure pat00025
Figure pat00025

기저 벡터를 선택하는 제 2 실시예로서, 현재 블록이 해당하는 클래스의 기저 벡터를 선택하는 방식이 이용될 수도 있다. 제 2 실시예는 제 1 실시예보다 고속화된 방식으로 현재 블록의 주파수 분석을 통해 최대 절대 값에 해당하는 클래스로 학습된 기저 벡터를 직접 사용하는 방식이다. 현재 블록이 해당하는 클래스 i를 구하는 과정은 수학식 20과 같이 나타낼 수 있다. As a second embodiment for selecting a basis vector, a method of selecting a basis vector of a class corresponding to the current block may be used. The second embodiment directly uses a learned base vector with a class corresponding to a maximum absolute value through a frequency analysis of a current block in a faster manner than the first embodiment. The process of obtaining the class i corresponding to the current block can be expressed by Equation (20).

Figure pat00026
Figure pat00026

일 실시예에 따라, 영상 부호화 장치(200)의 기저 벡터 선택부(226)가 현재 블록의 변환에 이용할 기저 벡터를 선택하면, 변환부(230)는 선택된 기저 벡터를 이용하여 현재 블록에 대한 변환을 수행한다.According to one embodiment, when the basis vector selection unit 226 of the image encoding apparatus 200 selects a basis vector to be used for transforming the current block, the transform unit 230 transforms the current block using the selected basis vector .

일 실시예에 따라, 기저 벡터 선택부(226)에서 선택된 기저 벡터의 클래스에 대한 정보는 부가 정보로서 비트스트림으로 압축되어 영상 복호화 장치(300)로 전송될 수 있다. 이 때, 기저 벡터 선택부(226)에서 선택된 기저 벡터의 클래스에 대한 정보는 블록 단위의 클래스 인덱스(class index)의 형태로서 부가 정보에 포함될 수 있다. 일 실시예에 따라, 클래스 인덱스를 나타내기 위해 각 블록 당 비트가 할당될 수 있다. 예를 들어, 8x8 블록의 경우, 총 클래스의 개수가 63개라면 클래스 인덱스를 나타내기 위한 부가 정보로서 블록 당 6비트가 필요하다. 하지만, 총 클래스의 개수가 조절되어 8개로 감축될 경우, 블록 당 3비트만으로도 부가 정보를 전송할 수 있다.According to one embodiment, information on the class of the base vector selected in the basis vector selection unit 226 may be compressed into a bitstream as additional information and transmitted to the video decoding apparatus 300. At this time, the information on the class of the basis vector selected by the basis vector selection unit 226 may be included in the side information as a form of a class index of a block unit. According to one embodiment, bits may be allocated for each block to represent a class index. For example, in the case of an 8x8 block, if the total number of classes is 63, 6 bits are required per block as additional information for indicating the class index. However, if the total number of classes is reduced to 8, the additional information can be transmitted with only 3 bits per block.

일 실시예에 따라, 영상 복호화 장치(300)의 기저 벡터 선택부(326)는 비트스트림으로부터 획득한 부가 정보에 기초하여, 현재 블록의 클래스에 해당되는 기저 벡터를 통해 현재 블록을 역변환한다.According to one embodiment, the basis vector selection unit 326 of the video decoding apparatus 300 inversely transforms the current block based on the base vector corresponding to the class of the current block, based on the additional information obtained from the bitstream.

도 10은 일 실시예에 따른 영상 변환 방법을 설명하기 위한 흐름도이다.10 is a flowchart illustrating an image conversion method according to an embodiment.

도 10를 참조하면, 단계 S1010에서 현재 영상 프레임 이전의 영상 프레임이 복원된 복원 프레임을 복수의 블록으로 분할한다.Referring to FIG. 10, in step S1010, a restored frame in which an image frame preceding a current image frame is reconstructed is divided into a plurality of blocks.

단계 S1020에서, 복수의 블록 내의 각 블록의 주파수 성분의 분포에 기초하여 각 블록을 하나 이상의 클래스로 분류하여 클래스 별 블록 집합을 결정한다.In step S1020, each block is classified into one or more classes based on the distribution of frequency components of each block in the plurality of blocks to determine a block set for each class.

단계 S1030에서, 클래스 별 블록 집합에 대해 클래스 별 기저 벡터를 생성한다.In step S1030, a class-specific basis vector is generated for each class-based block set.

단계 S1040에서, 클래스 별 기저 벡터 중에서 현재 영상 프레임 내의 현재 블록의 변환에 이용할 기저 벡터를 선택한다.In step S1040, a base vector to be used for transforming the current block in the current image frame among the class-basis vectors is selected.

단계 S1050에서, 선택된 기저 벡터를 이용하여 현재 블록을 변환한다.In step S1050, the current block is transformed using the selected basis vector.

도 11은 다른 실시예에 따른 영상 변환 방법을 설명하기 위한 흐름도이다.11 is a flowchart for explaining an image conversion method according to another embodiment.

도 11을 참조하면, 단계 S1110에서 변환을 수행할 현재 영상 프레임을 수신한다.Referring to FIG. 11, in step S1110, a current image frame to be converted is received.

단계 S1120에서, 현재 영상 프레임이 장면 전환된 영상 프레임인지 여부를 판별한다.In step S1120, it is determined whether the current image frame is a scene-switched image frame.

현재 영상 프레임이 장면 전환되지 않은 영상 프레임인 경우, 단계 S1130에서 이전 영상 프레임에 대해 생성된 클래스 별 기저 벡터 중에서 현재 블록의 변환에 이용할 기저 벡터를 선택하고, 단계 S1140에서 선택된 기저 벡터를 이용하여 현재 블록을 변환한다. 단계 S1130 내지 S1140의 동작은 도 10의 S1040 내지 S1050에 대응하는 것일 수 있다.In step S1130, the base vector to be used for transforming the current block is selected from the basis vectors of the classes generated for the previous image frame, and the current vector is selected using the basis vector selected in step S1140. Converts the block. The operation of steps S1130 to S1140 may correspond to S1040 to S1050 of Fig.

현재 영상 프레임이 장면 전환된 영상 프레임인 경우, 단계 S1150에서 영상 변환 장치에 내장된 변환 벡터에 기초하여 현재 블록을 변환한다. 예를 들어, DCT, DST 등의 변환 벡터에 기초하여 현재 블록이 변환될 수 있다.If the current image frame is a scene-switched image frame, the current block is converted based on the transform vector embedded in the image transform device in step S1150. For example, the current block may be converted based on a conversion vector such as DCT, DST, or the like.

이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명이 상기의 실시예에 한정되는 것은 아니며, 이는 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명의 사상은 아래에 기재된 특허청구범위에 의해서만 파악되어야 하고, 이와 균등하거나 또는 등가적인 변형 모두는 본 발명 사상의 범주에 속한다 할 것이다. 또한, 본 발명에 따른 시스템은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, but, on the contrary, Modification is possible. Accordingly, the spirit of the present invention should be understood only in accordance with the following claims, and all of the equivalent or equivalent variations will fall within the scope of the present invention. In addition, the system according to the present invention can be embodied as computer-readable codes on a computer-readable recording medium.

또한, 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등을 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.In addition, the computer-readable recording medium includes all kinds of recording apparatuses in which data that can be read by a computer system is stored. Examples of the recording medium include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage, and the like. The computer-readable recording medium may also be distributed over a networked computer system so that computer readable code can be stored and executed in a distributed manner.

Claims (19)

현재 영상 프레임 이전의 영상 프레임이 복원된 복원 프레임을 복수의 블록으로 분할하는 단계;
상기 복수의 블록 내의 각 블록의 주파수 성분의 분포에 기초하여 상기 각 블록을 하나 이상의 클래스로 분류하여 클래스 별 블록 집합을 결정하는 단계;
상기 클래스 별 블록 집합에 대해 클래스 별 기저 벡터를 생성하는 단계;
상기 클래스 별 기저 벡터 중에서 현재 영상 프레임 내의 현재 블록의 변환에 이용할 기저 벡터를 선택하는 단계; 및
상기 선택된 기저 벡터를 이용하여 상기 현재 블록을 변환하는 단계를 포함하는, 영상 변환 방법.
Dividing a restored frame in which an image frame previous to a current image frame is reconstructed into a plurality of blocks;
Classifying each block into one or more classes based on a distribution of frequency components of each block in the plurality of blocks to determine a block set for each class;
Generating a class-basis vector for the class-specific block set;
Selecting a base vector to be used for transforming a current block in a current image frame among the basis vectors for each class; And
And transforming the current block using the selected basis vector.
제 1 항에 있어서,
상기 클래스 별 기저 벡터는 복원 픽처 버퍼에 저장된 상기 복원 프레임에 기초하여 생성되는, 영상 변환 방법.
The method according to claim 1,
And the class-basis vector is generated based on the restored frame stored in the restored picture buffer.
제 1 항에 있어서,
상기 복원 프레임은 상기 현재 영상 프레임 이전의 영상 프레임 중 장면 전환된 영상 프레임이 DCT 변환 및 양자화된 후 역양자화 및 DCT 역변환된 것인, 영상 변환 방법.
The method according to claim 1,
Wherein the reconstructed frame is an inverse quantized and DCT inversely transformed and quantized after transformed image frames of an image frame preceding the current image frame.
제 1 항에 있어서,
상기 방법은,
상기 현재 영상 프레임이 장면 전환된 영상 프레임인지 여부를 판별하는 단계를 더 포함하고,
상기 현재 영상 프레임이 장면 전환된 영상 프레임으로 판별되는 경우, 상기 현재 블록은 영상 변환 장치에 내장된 변환 벡터에 기초하여 변환되는, 영상 변환 방법.
The method according to claim 1,
The method comprises:
Further comprising the step of determining whether the current video frame is a scene-switched video frame,
Wherein if the current image frame is determined as a scene-switched image frame, the current block is transformed based on a transform vector embedded in the image transform device.
제 4 항에 있어서,
상기 판별하는 단계는,
상기 현재 영상 프레임 및 상기 현재 영상 프레임 이전의 영상 프레임 사이의 픽셀 밝기 차이 값 또는 밝기 히스토그램 차이 값을 소정 임계값과 비교하는 단계를 포함하는, 영상 변환 방법.
5. The method of claim 4,
Wherein the determining step comprises:
Comparing the pixel brightness difference value or the brightness histogram difference value between the current image frame and the image frame preceding the current image frame to a predetermined threshold value.
제 1 항에 있어서,
상기 클래스 별 블록 집합을 결정하는 단계는,
상기 각 블록 별로 직류(DC) 성분을 제외한 주파수 성분 중에서 최대 절대 값(maximum absolute value)을 가지는 계수의 위치를 탐색하는 단계; 및
상기 복수의 블록 중 상기 탐색된 위치에 대응하는 인덱스(index)가 동일한 블록을 동일한 클래스로 분류하는 단계를 포함하는, 영상 변환 방법.
The method according to claim 1,
Wherein the step of determining the class-
Searching for a position of a coefficient having a maximum absolute value among frequency components excluding a direct current (DC) component for each block; And
And classifying blocks of the plurality of blocks having the same index corresponding to the searched position into the same class.
제 1 항에 있어서,
상기 클래스 별 기저 벡터를 생성하는 단계는,
상기 클래스 별 블록 집합의 공분산 행렬을 계산하는 단계; 및
상기 클래스 별 블록 집합의 공분산 행렬의 고유 벡터(Eigen Vector) 및 클래스 별 고유 값(Eigen Value)에 기초하여 상기 클래스 별 기저 벡터를 생성하는 단계를 포함하는, 영상 변환 방법.
The method according to claim 1,
The step of generating the class-
Calculating a covariance matrix of the block set for each class; And
Class basis vector based on an eigenvector and an eigenvalue of a covariance matrix of the block-by-class block set.
제 1 항에 있어서,
상기 현재 블록의 변환에 이용할 기저 벡터는 상기 클래스 별 기저 벡터 중에서 상기 현재 블록과의 밝기 값의 차이를 최소화하는 클래스의 기저 벡터로 선택되는, 영상 변환 방법.
The method according to claim 1,
Wherein a basis vector used for transforming the current block is selected as a basis vector of a class that minimizes a difference between brightness values of the class and the current block.
제 6 항에 있어서,
상기 현재 블록의 변환에 이용할 기저 벡터는 상기 현재 블록이 해당하는 클래스의 기저 벡터로 선택되는, 영상 변환 방법.
The method according to claim 6,
Wherein a basis vector to be used for transforming the current block is selected as a basis vector of a corresponding class of the current block.
변환을 수행할 현재 영상 프레임을 수신하는 수신부;
상기 현재 영상 프레임 이전의 영상 프레임이 복원된 복원 프레임을 복수의 블록으로 분할하고, 상기 복수의 블록 내의 각 블록의 주파수 성분의 분포에 기초하여 상기 각 블록을 하나 이상의 클래스로 분류하여 클래스 별 블록 집합을 결정하고, 상기 클래스 별 블록 집합에 대해 클래스 별 기저 벡터를 생성하고, 상기 클래스 별 기저 벡터 중에서 현재 영상 프레임 내의 현재 블록의 변환에 이용할 기저 벡터를 선택하는 제어부; 및
상기 선택된 기저 벡터를 이용하여 상기 현재 블록을 변환하는 변환부를 포함하는, 영상 변환 장치.
A receiving unit for receiving a current image frame to be converted;
Dividing a restored frame in which an image frame before the current image frame is reconstructed into a plurality of blocks, classifying each block into one or more classes based on distribution of frequency components of each block in the plurality of blocks, A control unit for generating a class-basis vector for the class-specific block set and selecting a basis vector to be used for transforming a current block in the current image frame, among the class-based basis vectors; And
And a conversion unit for converting the current block using the selected basis vector.
제 10 항에 있어서,
예측을 위한 참조 영상을 저장하는 복원 픽처 버퍼를 더 포함하고,
상기 클래스 별 기저 벡터는 상기 복원 픽처 버퍼에 저장된 상기 복원 프레임에 기초하여 생성되는, 영상 변환 장치.
11. The method of claim 10,
Further comprising a restored picture buffer for storing a reference picture for prediction,
And the class-basis vector is generated based on the reconstruction frame stored in the reconstruction picture buffer.
제 10 항에 있어서,
상기 복원 프레임은 상기 현재 영상 프레임 이전의 영상 프레임 중 장면 전환된 영상 프레임이 DCT 변환 및 양자화된 후 역양자화 및 DCT 역변환된 것인, 영상 변환 장치.
11. The method of claim 10,
Wherein the reconstructed frame is an inverse quantized and inverse transformed DCT transformed and quantized image frame of a previous image frame of the current image frame.
제 10 항에 있어서,
상기 제어부는,
상기 현재 영상 프레임이 장면 전환된 영상 프레임인지 여부를 판별하고, 상기 현재 영상 프레임이 장면 전환된 영상 프레임으로 판별되는 경우, 상기 현재 블록을 영상 변환 장치에 내장된 변환 벡터에 기초하여 변환하는, 영상 변환 장치.
11. The method of claim 10,
Wherein,
The method of claim 1, further comprising: determining whether the current image frame is a scene-switched image frame, and converting the current block based on a transformed vector included in the image transform device when the current image frame is determined as a scene- Conversion device.
제 13 항에 있어서,
상기 제어부는,
상기 현재 영상 프레임 및 상기 현재 영상 프레임 이전의 영상 프레임 사이의 픽셀 밝기 차이 값 또는 밝기 히스토그램 차이 값을 소정 임계값과 비교하는, 영상 변환 장치.
14. The method of claim 13,
Wherein,
And compares a pixel brightness difference value or a brightness histogram difference value between the current image frame and an image frame before the current image frame with a predetermined threshold value.
제 10 항에 있어서,
상기 제어부는,
상기 각 블록 별로 직류(DC) 성분을 제외한 주파수 성분 중에서 최대 절대 값(maximum absolute value)을 가지는 계수의 위치를 탐색하고, 상기 복수의 블록 중 상기 탐색된 위치에 대응하는 인덱스(index)가 동일한 블록을 동일한 클래스로 분류하는, 영상 변환 장치.
11. The method of claim 10,
Wherein,
Searching for a position of a coefficient having a maximum absolute value among frequency components excluding a direct current (DC) component for each of the blocks, and searching for a position of a coefficient having a maximum absolute value, Into the same class.
제 10 항에 있어서,
상기 제어부는,
상기 클래스 별 블록 집합의 공분산 행렬을 계산하고, 상기 클래스 별 블록 집합의 공분산 행렬의 고유 벡터(Eigen Vector) 및 클래스 별 고유 값(Eigen Value)에 기초하여 상기 클래스 별 기저 벡터를 생성하는, 영상 변환 장치.
11. The method of claim 10,
Wherein,
Class basis vector on the basis of an eigen vector and an eigen value of a covariance matrix of the block set for each class, Device.
제 10 항에 있어서,
상기 현재 블록의 변환에 이용할 기저 벡터는 상기 클래스 별 기저 벡터 중에서 상기 현재 블록과의 밝기 값의 차이를 최소화하는 클래스의 기저 벡터로 선택되는, 영상 변환 방법.
11. The method of claim 10,
Wherein a basis vector used for transforming the current block is selected as a basis vector of a class that minimizes a difference between brightness values of the class and the current block.
제 15 항에 있어서,
상기 현재 블록의 변환에 이용할 기저 벡터는 상기 현재 블록이 해당하는 클래스의 기저 벡터로 선택되는, 영상 변환 방법.
16. The method of claim 15,
Wherein a basis vector to be used for transforming the current block is selected as a basis vector of a corresponding class of the current block.
제 1 항에 따른 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체.A recording medium on which a program for causing a computer to execute the method according to claim 1 is recorded.
KR1020170012960A 2017-01-26 2017-01-26 Method and apparatus for adaptive image transformation KR20180088188A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020170012960A KR20180088188A (en) 2017-01-26 2017-01-26 Method and apparatus for adaptive image transformation
PCT/KR2017/010698 WO2018139729A1 (en) 2017-01-26 2017-09-27 Adaptive image conversion method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170012960A KR20180088188A (en) 2017-01-26 2017-01-26 Method and apparatus for adaptive image transformation

Publications (1)

Publication Number Publication Date
KR20180088188A true KR20180088188A (en) 2018-08-03

Family

ID=62978689

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170012960A KR20180088188A (en) 2017-01-26 2017-01-26 Method and apparatus for adaptive image transformation

Country Status (2)

Country Link
KR (1) KR20180088188A (en)
WO (1) WO2018139729A1 (en)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2952003B1 (en) * 2013-01-30 2019-07-17 Intel Corporation Content adaptive partitioning for prediction and coding for next generation video
JP2015035788A (en) * 2013-08-09 2015-02-19 日本電信電話株式会社 Image encoder, image encoding method, and program
JP6468703B2 (en) * 2013-12-20 2019-02-13 キヤノン株式会社 Motion detection device, motion detection method, and program
US10484721B2 (en) * 2014-03-17 2019-11-19 Qualcomm Incorporated Method for motion estimation of non-natural video data
KR101810118B1 (en) * 2016-10-28 2017-12-18 에스케이플래닛 주식회사 Apparatus and method for profile based motion estimation

Also Published As

Publication number Publication date
WO2018139729A1 (en) 2018-08-02

Similar Documents

Publication Publication Date Title
TWI615022B (en) Video decoding method
KR101344200B1 (en) Dynamic selection of motion estimation search ranges and extended motion vector ranges
JP5401009B2 (en) Video intra prediction encoding and decoding method and apparatus
KR101483750B1 (en) Method and apparatus for image encoding, and method and apparatus for image decoding
KR20110111852A (en) Method and apparatus for video encoding for compensating pixel value of pixel group, method and apparatus for video decoding for the same
KR102114421B1 (en) Method and apparatus for encoding/decoding image by using motion vector of previous block as motion vector of current block
KR20110017302A (en) Method and apparatus for encoding/decoding image by using motion vector accuracy control
KR20150035943A (en) Method and apparatus for video encoding for compensating pixel value of pixel group, method and apparatus for video decoding for the same
CN113273194A (en) Image component prediction method, encoder, decoder, and storage medium
JP2018522445A (en) Video coding method and apparatus for sample value compensation, and video decoding method and apparatus for sample value compensation
KR101927970B1 (en) Method and apparatus for video encoding considering adaptive loop filtering, and method and apparatus for video decoding considering adaptive loop filtering
KR20180088188A (en) Method and apparatus for adaptive image transformation
KR101882949B1 (en) Method and apparatus for encoding image, and computer-readable medium
KR20160030140A (en) Method and apparatus for decoding image
KR101662741B1 (en) Method for image decoding
KR101618766B1 (en) Method and apparatus for image decoding
KR20170001704A (en) Method and apparatus for decoding image
KR20170015451A (en) Method and apparatus for video encoding using pattern information of hierarchical data unit, and method and apparatus for video decoding using pattern information of hierarchical data unit
KR101974138B1 (en) Method and apparatus for video encoding for compensating pixel value of pixel group, method and apparatus for video decoding for the same
KR101525015B1 (en) Method and apparatus for image encoding, and method and apparatus for image decoding
KR101618214B1 (en) Method for image decoding
KR101489222B1 (en) Method and apparatus for image encoding, and method and apparatus for image decoding
KR20180014128A (en) Method and apparatus for encoding video, and computer readable medium
KR20170048296A (en) Method and apparatus for video encoding for compensating pixel value of pixel group, method and apparatus for video decoding for the same
KR20160064063A (en) Method and apparatus for video encoding for compensating pixel value of pixel group, method and apparatus for video decoding for the same