KR20180088188A - Method and apparatus for adaptive image transformation - Google Patents
Method and apparatus for adaptive image transformation Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/12—Selection 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/172—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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/423—Methods 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
Description
본 명세서는 영상의 변환 방법 및 장치에 관한 것으로, 보다 상세하게는 영상에 적응적인 변환을 적용하여 압축 성능을 향상시키는 기술에 관한 것이다.BACKGROUND OF THE
고해상도 또는 고화질 영상 컨텐트를 재생, 저장할 수 있는 하드웨어의 개발 및 보급에 따라, 고해상도 또는 고화질 영상 컨텐트를 효과적으로 부호화하거나 복호화하는 영상 코덱의 필요성이 증대하고 있다. 영상 코덱의 압축 기술 중 주파수 변환 및 역변환은 필수적인 기술이다.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
FIG. 2 is a block diagram of an image encoding
FIG. 3 is a block diagram of an
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
일 실시예에 따른 영상 변환 장치(100)는 인코더 또는 디코더에 포함되어 영상을 변환 또는 역변환하기 위한 동작들을 수행할 수 있다.The
일 실시예에 따라 수신부(110)는 변환을 수행할 현재 영상 프레임을 수신한다. 예를 들어, 수신부(110)는 영상의 소정 데이터 단위의 영상 데이터를 수신할 수 있다. 소정 데이터 단위의 영상 데이터는 영상 프레임일 수 있으며, 영상 프레임을 소정 크기로 분할한 정사각형 블록 또는 직사각형 블록의 데이터일 수 있다. 한편, 영상 변환 장치(100)가 디코더에 포함되는 경우 수신부(110)는 영상 프레임이 압축된 비트스트림을 수신할 수 있다.According to one embodiment, the receiving
일 실시예에 따른 제어부(120)는 현재 영상 프레임에 대해 변환 또는 역변환을 수행하기에 앞서 영상 프레임에 적응적인 변환 기저를 결정하는 동작들을 수행한다. 영상 프레임에 적응적이라는 것은, 입력 신호의 통계적 특성에 의존하여 입력 영상 프레임에 따라 변환 함수가 새로 정의되는 것을 의미한다. 예를 들어, 영상 프레임에 적응적인 변환 기저란 KLT 변환 기저를 의미할 수 있다.The
영상 압축 기술에서 널리 사용되는 변환 알고리즘은 블록 기반 변환과 이미지 기반 변환의 두 가지 종류로 나눌 수 있다. 블록 기반 변환의 예로는 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
일 실시예에 따라 장면 전환 판별부(122)는 수신부(110)를 통해 수신한 현재 영상 프레임이 장면 전환(scene change)된 영상 프레임인지 아니면 장면 전환되지 않은 영상 프레임인지 여부를 판별한다. 매 프레임마다 기저 벡터를 계산하는 것은 오버헤드가 증가하고, 이를 전송하기 위해 비트율(bit-rate)이 증가할 수 있다. 따라서, 이전 영상 프레임의 기저 벡터를 현재 입력된 영상 프레임의 변환에서 기저 벡터로 이용하기 위해 현재 영상 프레임이 장면 전환된 영상 프레임인지 여부를 판별할 필요가 있다. 장면 전환이 일어나는 경우, 장면 전환된 최초 프레임의 기저 벡터만을 구한 후, 동일한 장면 그룹에 속하는 이후의 프레임의 기저 벡터는 최초 프레임의 기저 벡터를 이용하여 변환을 수행할 수 있다. According to an exemplary embodiment, the scene
장면 전환 여부를 판별하는 방법으로는 다양한 장면 전환 검출 기술들이 활용될 수 있다. 장면 전환 여부를 판별하는 대표적인 방법으로는 현재 영상 프레임과 이전 영상 프레임 사이의 픽셀 밝기 차이 값 또는 밝기 히스토그램 차이 값을 소정 임계값과 비교하는 방법이 사용될 수 있다.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
수학식 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 >
일 실시예에 따른 장면 전환 판별부(122)는 상기 수학식 1 내지 3을 통해 도출한 픽셀 밝기 차이 값을 소정의 임계값(Th)과 비교할 수 있다. 장면 전환 판별부(122)는 픽셀 밝기 차이 값이 소정의 임계값보다 크면 장면의 전환이 이루어졌다고 판별할 수 있고, 픽셀 밝기 차이 값이 소정의 임계값보다 작거나 같으면 장면이 전환되지 않았다고 판별할 수 있다.The scene
다른 예를 들어, 장면 전환 판별부(122)는 다음의 수학식을 이용하여 프레임 X 및 Y 사이의 히스토그램 차이 값 을 도출할 수도 있다.For example, the scene
수학식 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
이외에도, 장면 전환 판별부(122)는 공지된 다양한 장면 전환 검출 기술들을 활용하여 현재 영상 프레임이 장면 전환된 영상 프레임인지 여부를 판별할 수도 있다.In addition, the scene
일 실시예에 따른 기저 벡터 생성부(124)는 미리 설정된 블록 단위(예를 들어, 32x32, 16x16, 8x8 등)로 블록 집합을 대표할 수 있는 기저 벡터를 생성한다. 일 실시예에 따른 기저 벡터 생성부(124)는 입력 영상 프레임이 아닌 복원된 프레임을 이용하여 기저 벡터를 생성한다. 따라서, 기저 벡터를 외부로부터 전송받을 필요 없이 장치 내에서 온-라인(on-line) 방식으로 획득할 수 있다. 기저 벡터 생성부(124)가 기저 벡터를 생성하는 구체적인 과정에 대해서는 도 5 내지 도 8을 통해 후술하기로 한다.The basis
일 실시예에 따른 기저 벡터 선택부(126)는 기저 벡터 생성부(124)에서 생성한 하나 이상의 기저 벡터 중 변환하고자 하는 현재의 블록을 대표할 수 있는 기저 벡터를 선택한다. 기저 벡터 선택부(126)가 기저 벡터를 선택하는 구체적인 방법에 대해서는 도 9를 통해 후술하기로 한다.The
일 실시예에 따른 변환부(130)는 제어부(120)의 기저 벡터 선택부(126)에서 선택된 기저 벡터를 사용하여 현재 블록을 변환 또는 역변환한다. The transforming
도 2는 일 실시예에 따른 영상 부호화 장치(200)의 블록도를 도시한다.FIG. 2 is a block diagram of an
일 실시예에 따른 영상 부호화 장치(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
인트라 예측부(245)는 입력 영상(205) 중 인트라 모드의 부호화 단위에 대해 예측 단위별로 인트라 예측을 수행하고, 인터 예측부(240)는 인터 모드의 부호화 단위에 대해 예측단위별로 입력 영상(205) 및 복원 픽처 버퍼(235)에서 획득된 참조 영상을 이용하여 인터 예측을 수행한다. 입력 영상(205)은 최대부호화 단위로 분할된 후 순차적으로 인코딩이 수행될 수 있다. 이때, 최대 부호화 단위가 트리 구조로 분할될 부호화 단위에 대해 인코딩이 수행될 수 있다.The
입력 영상(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
다양한 실시예에 따라 영상 부호화 장치(200)의 구성 요소들인 인터 예측부(240), 인트라 예측부(245), 변환부(230), 양자화부(250), 엔트로피 부호화부(255), 역양자화부(260), 역변환부(265), 디블로킹부(270) 및 SAO 수행부(275)가 최대 부호화 단위마다 트리 구조에 따른 부호화 단위들 중 각각의 부호화 단위에 기반한 작업을 수행할 수 있다. The
특히, 인트라 예측부(245)및 인터예측부(240) 는 현재 최대 부호화 단위의 최대 크기 및 최대 심도를 고려하여 트리 구조에 따른 부호화 단위들 중 각각의 부호화 단위의 파티션 모드 및 예측 모드를 결정하며, 변환부(230)는 트리 구조에 따른 부호화 단위들 중 각각의 부호화 단위 내의 쿼드 트리에 따른 변환 단위의 분할 여부를 결정할 수 있다.In particular, the
도 3은 일 실시예에 따른 영상 복호화 장치(300)의 블록도를 도시한다.FIG. 3 is a block diagram of an
일 실시예에 따른 영상 복호화 장치(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
엔트로피 복호화부(310)는 비트스트림(305)으로부터 복호화 대상인 부호화된 영상 데이터 및 복호화를 위해 필요한 부호화 정보를 획득한다. 부호화된 영상 데이터는 양자화된 변환계수로서, 역양자화부(315) 및 역변환부(330)는 양자화된 변환 계수로부터 레지듀 데이터를 복원한다. The
인트라 예측부(345)는 인트라 모드의 부호화 단위에 대해 예측 단위 별로 인트라 예측을 수행한다. 인터 예측부(340)는 현재 영상 중 인터 모드의 부호화 단위에 대해 예측 단위 별로 복원 픽처 버퍼(335)에서 획득된 참조 영상을 이용하여 인터 예측을 수행한다.The
인트라 예측부(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
영상 복호화 장치(300)의 구성 요소들인 엔트로피 복호화부(310), 역양자화부(315), 역변환부(330), 인트라 예측부(345), 인터 예측부(340), 디블로킹부(350) 및 SAO 수행부(355)는 최대 부호화 단위마다 트리 구조에 따른 부호화 단위들 중 각각의 부호화 단위에 기반하여 작업을 수행할 수 있다. The
특히, 인트라 예측부(345)및 인터 예측부(340)는 트리 구조에 따른 부호화 단위들 중 각각의 부호화 단위마다 파티션 모드 및 예측 모드를 결정하며, 역변환부(330)는 부호화 단위마다 쿼드 트리구조에 따른 변환단위의 분할 여부를 결정할 수 있다.In particular, the
도 2의 인터 예측부(240) 및 도 3의 인터 예측부(340)은, 인터 예측을 위해 움직임 벡터가 부화소 위치를 가리킬 때, 부화소 단위의 샘플 값을 생성하기 위해, 참조 픽처 내에서 정수 화소 단위의 참조 샘플들에 대해 보간 필터링을 수행할 수 있다. The
도 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
이하, DCT 기저 벡터(420) 및 KLT 기저 벡터(430)를 도출하기 위한 DCT 및 KLT 의 변환 과정을 살펴보도록 한다.Hereinafter, a DCT and KLT conversion process for deriving the
DCT 및 KLT는 입력 영상 프레임(410)을 저주파와 고주파 성분으로 분류한다. 변환 결과 저주파 성분에 에너지가 집중되어 양자화 수행 시 고주파 성분이 쉽게 제거될 수 있다. 인간의 시각은 고주파 성분의 손실보다 저주파 성분의 손실에 더욱 민감하기 때문에 고주파 성분을 제거하더라도 큰 화질의 열화없이 영상 압축이 가능하다는 점을 이용한 것이다.The DCT and KLT classify the
보다 자세히 설명하면, 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.
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
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)
이 때, 벡터 모집단의 공분산 행렬은 수학식 8과 같다.At this time, the covariance matrix of the vector population is expressed by Equation (8).
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).
여기서, 이고, Cx가 대칭행렬의 성질을 만족할 때, n개의 고유벡터는 항상 구할 수 있다. 고유벡터들과 대응되는 고유값 i의 크기에 따라 고유벡터들을 정렬하여 만든 새로운 변환 행렬 A를 이용하여 벡터 X를 Y로 변환하는 KLT 변환식을 만들 수 있다.here, , 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.
변환을 통해 얻어진 Y 벡터는 다음과 같은 특성을 갖는다. Y 벡터의 평균은 0이 되고, 수학식 10과 같이 공분산 행렬은 CX 로부터 구한 고유값만으로 이루어진 대각 행렬이 된다. 이는 KLT 가 이산변수를 상관관계가 0인 계수로 변환한다는 것을 의미하며, 이 때, CX 및 CY 는 동일한 고유값과 고유 벡터를 갖는다. 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.
아래 수학식 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.
x와 hat x의 평균제곱의 오차는 아래 수학식 13으로 나타낼 수 있다.The error of the mean square of x and hat x can be expressed by Equation (13) below.
여기서 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:
수학식 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 변환 방법은 신호의 통계적 특성을 바탕으로 신호를 가장 잘 나타낼 수 있는 고유 벡터를 사용하는 방법으로서 영상에 적응적인 변환이 가능하다. 그러나, 영상 프레임 내의 모든 블록들에 대해 한 종류의 고유 벡터로 고유값을 산출하는 것은 다양한 특성을 가지는 블록들에 대해서 적응성이 저하되는 문제점이 있다. 따라서, 효율적인 변환을 위하여 입력 영상에 따라 적응적으로 복수개의 종류의 기저 벡터를 산출하면서도 오버헤드를 저감시키는 방법이 요구된다. 본 명세서에서는 영상 프레임 내의 모든 블록들에 대한 기저 벡터를 계산하는 대신, 영상 프레임 내의 블록들을 일정한 기준에 따라 분류하여 분류된 블록 집합을 대상으로 기저 벡터를 산출하는 방법이 제안된다.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
블록들이 클래스 별로 분류되는 상세한 과정에 대해서는 도 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-
도 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
먼저, 기저 벡터 생성부(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
일 실시예에 따른 기저 벡터 생성부(124, 224, 324)는 각각의 블록을 대표하는 인덱스에 따라 각각의 블록을 클래스 별로 분류한다. 즉, 대표 인덱스가 동일한 블록들은 동일한 클래스로 분류될 수 있다. 8x8 블록의 경우에는 DC 성분 위치에 대응하는 인덱스를 제외하고 63개의 인덱스가 존재한다. 따라서, 8x8 블록들은 최대 63개의 클래스로 분류될 수 있다. The basis
도 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
전술한 실시예에서 클래스 별 블록 집합이 고주파수, 중간 주파수, 저주파수 등으로 분류되는 것은 단지 예시를 위한 것으로, 일 실시예에 따른 클래스는 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
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
여기서 주성분이라 함은 그 방향으로 데이터들의 분산이 가장 큰 방향벡터를 의미한다. 도 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
예를 들어, 임의의 클래스에 속하는 블록의 개수가 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).
상기 수학식 16에서 i는 클래스 번호를 의미하며, 는 i 번째 클래스의 고유 값(eigen value), 는 i 번째 클래스의 고유 벡터(eigen vector), 즉 기저 벡터를 의미한다.In Equation (16), i denotes a class number, Is the eigenvalue of the ith class, Denotes an eigenvector of an i-th class, that is, a basis vector.
일 실시예에 따른 기저 벡터 생성부(124, 224, 324)는 클래스 별 블록 집합에 대해 클래스 별 기저 벡터를 생성하여 업데이트할 수 있다. 업데이트된 클래스 별 기저 벡터는 다음 장면의 전환이 이루어질 때까지 입력된 영상 프레임들의 변환을 위해 이용될 수 있다.The base
도 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
영상 부호화 장치(200)의 경우, 기저 벡터 선택부(226)는 현재 블록을 대표할 수 있는 기저 벡터를 찾는 동작을 수행한다. 한편, 영상 복호화 장치(300)의 경우 기저 벡터 선택부(326)는 영상 부호화 장치(200)의 기저 벡터 선택부(226)에서 선택된 기저 벡터에 대한 정보에 기초하여 현재 블록의 역변환에 필요한 기저 벡터를 선택한다. 이를테면, 영상 복호화 장치(300)가 8x8 블록을 역변환하기 위해서는 현재 블록이 최대 63개의 클래스 중 어떤 클래스의 기저 벡터로 변환되었는지를 알아야 한다. 따라서, 현재 블록이 해당되는 클래스에 관한 정보가 영상 부호화 장치(200)로부터 영상 복호화 장치(300)로 시그널링 될 수 있다. 현재 블록이 해당되는 클래스에 관한 정보는 영상 부호화 장치(200)에서 부가 정보의 형태로서 생성되어 영상 복호화 장치(300)로 전송될 수 있다. In the case of the
현재 블록의 변환 또는 역변환에 이용할 기저 벡터는 현재 블록을 포함하는 현재 영상 프레임이 장면 전환된 영상인지 여부에 기초하여 선택될 수 있다.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
수학식 17과 같이, yi가 현재(원본) 블록 Yorg에 대해 i번 클래스의 고유 벡터 를 사용하여 구한 고유 값이고, 수학식 18과 같이, Yi가 역변환을 통해 얻어진 현재 블록의 밝기 값이라고 한다.As shown in Equation 17, if y i is the eigenvector of class i for the current (original) block Y org , And Y i is the brightness value of the current block obtained through inverse transform as shown in Equation (18).
기저 벡터를 선택하는 제 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).
기저 벡터를 선택하는 제 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).
일 실시예에 따라, 영상 부호화 장치(200)의 기저 벡터 선택부(226)가 현재 블록의 변환에 이용할 기저 벡터를 선택하면, 변환부(230)는 선택된 기저 벡터를 이용하여 현재 블록에 대한 변환을 수행한다.According to one embodiment, when the basis
일 실시예에 따라, 기저 벡터 선택부(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
일 실시예에 따라, 영상 복호화 장치(300)의 기저 벡터 선택부(326)는 비트스트림으로부터 획득한 부가 정보에 기초하여, 현재 블록의 클래스에 해당되는 기저 벡터를 통해 현재 블록을 역변환한다.According to one embodiment, the basis
도 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.
상기 클래스 별 기저 벡터는 복원 픽처 버퍼에 저장된 상기 복원 프레임에 기초하여 생성되는, 영상 변환 방법.The method according to claim 1,
And the class-basis vector is generated based on the restored frame stored in the restored picture buffer.
상기 복원 프레임은 상기 현재 영상 프레임 이전의 영상 프레임 중 장면 전환된 영상 프레임이 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.
상기 방법은,
상기 현재 영상 프레임이 장면 전환된 영상 프레임인지 여부를 판별하는 단계를 더 포함하고,
상기 현재 영상 프레임이 장면 전환된 영상 프레임으로 판별되는 경우, 상기 현재 블록은 영상 변환 장치에 내장된 변환 벡터에 기초하여 변환되는, 영상 변환 방법.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.
상기 판별하는 단계는,
상기 현재 영상 프레임 및 상기 현재 영상 프레임 이전의 영상 프레임 사이의 픽셀 밝기 차이 값 또는 밝기 히스토그램 차이 값을 소정 임계값과 비교하는 단계를 포함하는, 영상 변환 방법.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.
상기 클래스 별 블록 집합을 결정하는 단계는,
상기 각 블록 별로 직류(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.
상기 클래스 별 기저 벡터를 생성하는 단계는,
상기 클래스 별 블록 집합의 공분산 행렬을 계산하는 단계; 및
상기 클래스 별 블록 집합의 공분산 행렬의 고유 벡터(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.
상기 현재 블록의 변환에 이용할 기저 벡터는 상기 클래스 별 기저 벡터 중에서 상기 현재 블록과의 밝기 값의 차이를 최소화하는 클래스의 기저 벡터로 선택되는, 영상 변환 방법.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.
상기 현재 블록의 변환에 이용할 기저 벡터는 상기 현재 블록이 해당하는 클래스의 기저 벡터로 선택되는, 영상 변환 방법.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.
예측을 위한 참조 영상을 저장하는 복원 픽처 버퍼를 더 포함하고,
상기 클래스 별 기저 벡터는 상기 복원 픽처 버퍼에 저장된 상기 복원 프레임에 기초하여 생성되는, 영상 변환 장치.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.
상기 복원 프레임은 상기 현재 영상 프레임 이전의 영상 프레임 중 장면 전환된 영상 프레임이 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.
상기 제어부는,
상기 현재 영상 프레임이 장면 전환된 영상 프레임인지 여부를 판별하고, 상기 현재 영상 프레임이 장면 전환된 영상 프레임으로 판별되는 경우, 상기 현재 블록을 영상 변환 장치에 내장된 변환 벡터에 기초하여 변환하는, 영상 변환 장치.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.
상기 제어부는,
상기 현재 영상 프레임 및 상기 현재 영상 프레임 이전의 영상 프레임 사이의 픽셀 밝기 차이 값 또는 밝기 히스토그램 차이 값을 소정 임계값과 비교하는, 영상 변환 장치.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.
상기 제어부는,
상기 각 블록 별로 직류(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.
상기 제어부는,
상기 클래스 별 블록 집합의 공분산 행렬을 계산하고, 상기 클래스 별 블록 집합의 공분산 행렬의 고유 벡터(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.
상기 현재 블록의 변환에 이용할 기저 벡터는 상기 클래스 별 기저 벡터 중에서 상기 현재 블록과의 밝기 값의 차이를 최소화하는 클래스의 기저 벡터로 선택되는, 영상 변환 방법.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.
상기 현재 블록의 변환에 이용할 기저 벡터는 상기 현재 블록이 해당하는 클래스의 기저 벡터로 선택되는, 영상 변환 방법.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.
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)
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 |
-
2017
- 2017-01-26 KR KR1020170012960A patent/KR20180088188A/en unknown
- 2017-09-27 WO PCT/KR2017/010698 patent/WO2018139729A1/en active Application Filing
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 |