KR101241508B1 - Methods of motion vector estimation using classfier and apparatuses for using the same - Google Patents
Methods of motion vector estimation using classfier and apparatuses for using the same Download PDFInfo
- Publication number
- KR101241508B1 KR101241508B1 KR1020110030029A KR20110030029A KR101241508B1 KR 101241508 B1 KR101241508 B1 KR 101241508B1 KR 1020110030029 A KR1020110030029 A KR 1020110030029A KR 20110030029 A KR20110030029 A KR 20110030029A KR 101241508 B1 KR101241508 B1 KR 101241508B1
- Authority
- KR
- South Korea
- Prior art keywords
- block
- motion
- vector
- feature vector
- classifier
- 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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- 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
- H04N19/139—Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
분류기를 이용한 움직임 벡터 추정 방법 및 이러한 방법을 사용하는 장치가 개시되어 있다. 분류기를 이용한 움직임 벡터 추정 방법은 블록에서 움직임 예측 여부를 결정하는 특징 벡터를 산출하고 산출된 특징 벡터를 기초로 블록을 움직임 예측을 수행하는 제1 블록 및 움직임 예측을 수행하지 않는 제2 블록 중 하나로 분류하는 단계와 제1 블록에 대해 움직임 예측을 수행하여 예측 블록을 생성하고, 제2 블록에 대해서는 움직임 예측을 수행하지 않고 예측 블록을 생성하는 단계를 포함할 수 있다. 따라서, 분류기를 통해서 블록이 움직임 예측을 수행할지 여부를 미리 결정함으로써 계산 복잡도를 줄일 수 있다.Disclosed are a motion vector estimation method using a classifier and an apparatus using the method. A motion vector estimation method using a classifier includes one of a first block that performs motion prediction and a second block that does not perform motion prediction based on the calculated feature vector. The method may include classifying and generating a prediction block by performing motion prediction on the first block, and generating a prediction block without performing motion prediction on the second block. Therefore, the complexity of the computation can be reduced by determining whether the block performs the motion prediction in advance through the classifier.
Description
본 발명은 분류기를 이용한 움직임 벡터 추정 방법 및 이러한 방법을 사용하는 장치에 관한 것으로 더욱 상세하게는 움직임 벡터를 추정하는 방법 및 장치에 관한 것이다.The present invention relates to a motion vector estimation method using a classifier and an apparatus using the method, and more particularly, to a method and apparatus for estimating a motion vector.
최근 전화에서 팩시밀리, 데이터, 화상에 이르기까지 통신망이 다루는 정보 미디어는 대용량화 됨에 따라, 고속의 멀티미디어 데이터 통신에 대한 관심과 요구가 증대되고 있다. 멀티미디어 데이터 통신 중에서 현재 가장 관심을 많이 받고 있는 분야가 무선망을 통한 멀티미디어 데이터의 송수신이다. 현재 무선 데이터 송수신 채널의 용량이 비약적으로 향상됨에 따라 데이터 크기가 큰 멀티미디어 데이터도 무선 통신 네트워크 채널을 통해 실시간으로 송수신할 수 있게 되었다.Recently, as the information media handled by communication networks ranging from telephones to facsimile, data, and images become larger, the interest and demand for high-speed multimedia data communication is increasing. Among the multimedia data communication fields that are currently receiving the most attention is the transmission and reception of multimedia data through a wireless network. As the capacity of the wireless data transmission / reception channel is greatly improved, multimedia data having a large data size can be transmitted and received in real time through the wireless communication network channel.
동영상 데이터는 용량이 상당히 크기 때문에 저장과 전송에 어려움이 존재한다. 또한, 어플리케이션의 요구에 따라 동영상 정보가 적절히 처리되어야 하므로, 동영상을 처리하기 위한 시스템 또한 높은 사양이 요구된다. 이러한 문제점들을 해결할 수 있는 방법으로, 동영상 데이터를 작은 정보로 변환시키는 기술인 동영상 압축 알고리즘이 활발히 연구되어 오고 있다. 현재까지 연구된 동영상 압축과 관련된 대표적인 국제 표준에는 ISO/IEC의 MPEG 시리즈와 ITU-T의 H.26x 시리즈가 있다.Because video data is quite large, there are difficulties in storing and transmitting it. In addition, since video information must be appropriately processed in accordance with the requirements of the application, a system for processing video is also required. In order to solve these problems, video compression algorithms, which are techniques for converting video data into small information, have been actively studied. Representative international standards related to video compression studied to date include the MPEG series of ISO / IEC and the H.26x series of ITU-T.
동영상 데이터는 그 특성상 3 가지 중복성이 존재한다. 이와 같은 중복성에는 시간적(temporal), 공간적(spatial), 통계적(statistical) 중복성이 있다. 시간적 중복성은 연속되는 프레임 사이에 존재하는 중복성을 의미하는데, 연속되는 프레임에서 같은 위치에 존재하는 화소의 밝기 값은 통계적으로 유사한 상관성을 가진다는 것으로, "프레임간(inter-frame) 중복성"이라고도 한다. 그리고 공간적 중복성은 프레임 내에 존재하는 중복성을 의미하는데, 하나의 화소의 밝기 값은 이웃하는 화소들의 밝기 값과 유사한 상관성을 가진다는 것으로, 이것을 "프레임내(inter-frame) 중복성"이라고도 한다. 마지막으로, 통계적 중복성은 부호화된 데이터들 간의 중복성을 의미하는데, 화소 간의 중복성과 부호화에서의 중복성을 말한다.Video data has three redundancies due to its characteristics. Such redundancy includes temporal, spatial, and statistical redundancy. Temporal redundancy means redundancy that exists between successive frames. The brightness values of pixels that exist at the same position in successive frames are statistically similarly correlated, also called "inter-frame redundancy." . In addition, spatial redundancy means redundancy existing in a frame. The brightness value of one pixel has a similar correlation with the brightness value of neighboring pixels, which is also referred to as "inter-frame redundancy". Finally, statistical redundancy means redundancy between coded data, redundancy between pixels and redundancy in encoding.
현재 알려져 있는 동영상 부호화 표준에서는, 이와 같은 상기 3가지 중복성을 제거함으로써 방대한 양의 동영상을 보다 작은 데이터로 압축할 수 있다. 예를 들어, 이산 코사인 변환(Discrete Cosine Transform, DCT) 등과 같은 변환 과정과 양자화 과정은 공간적 중복성을, 가변장 부호화 등과 같은 엔트로피 코딩은 통계적 중복성을, 움직임 추정 및 보상은 시간적 중복성을 제거하기 위한 목적으로 동영상 코덱의 국제 표준에 채택되어 사용된다.In the currently known moving picture coding standard, by eliminating these three redundancies, a huge amount of moving pictures can be compressed into smaller data. For example, transform and quantization processes, such as the Discrete Cosine Transform (DCT), are used for spatial redundancy, entropy coding, such as variable field coding, for statistical redundancy, and motion estimation and compensation for temporal redundancy. It is adopted and used in international standard of video codec.
이 중에서 시간적 중복성을 제거하기 위한 움직임 추정 및 보상방법은 크게 화소 순환 알고리즘(Pixel Recursive Algorithm, PRA)과 블록 정합 알고리즘(Block Matching Algorithm, BMA)으로 나눌 수 있다. 이 중에서 데이터 흐름의 규칙성, 계산의 복잡도, 하드웨어 구현을 고려하여 대부분의 동영상 코텍 기술에서는 블록 정합 알고리즘을 널리 사용하고 있다. 블록 정합 알고리즘은 하나의 화면을 16ㅧ16 크기의 매크로블록(매크로블록)이나 또는 이보다 작은 임의의 크기의 탐색 블록(Searching Block)으로 나누어서 블록 단위로 참조 프레임의 정해진 탐색 영역 안에서 정합 블록을 찾아내는 절차를 가리킨다. 블록 정합 알고리즘을 기초로 선택한 정합 블록의 위치를 가리키는 값이 움직임 벡터(MV)이며, 동영상 부호화에서는 상기 정합 블록과 현재 블록과의 차이값과 움직임 벡터만을 부호화하여 데이터의 중복성을 제거한다. Among these, motion estimation and compensation methods for removing temporal redundancy can be broadly classified into a pixel recursive algorithm (PRA) and a block matching algorithm (BMA). Among these, most video codec technologies use block matching algorithms in consideration of the regularity of data flow, computational complexity, and hardware implementation. The block matching algorithm divides a screen into 16x16 macroblocks (macroblocks) or smaller search blocks of any size, and finds the matching blocks within a predetermined search area of the reference frame in units of blocks. Point to. The value indicating the position of the matching block selected based on the block matching algorithm is a motion vector (MV). In video encoding, only the difference value and the motion vector between the matching block and the current block are encoded to remove redundancy of data.
블록 정합 알고리즘은 일반적으로 전역 탐색 알고리즘(Full Search Algorithm, FSA)을 사용할 수 있다. 전역 탐색 알고리즘이란 탐색 영역 내의 모든 좌표를 후보 위치(Candidate Point, CP)로 하여 정합 오차(Matching Error), 예컨대 현재 블록과 참조 프레임의 탐색 블록을 구성하는 모든 화소에 대한 절대차의 합(Sum of Absolute Difference, SAD)을 이용한다. The block matching algorithm may generally use a full search algorithm (FSA). The global search algorithm refers to a matching error, for example, a sum of absolute differences between all pixels constituting the search block of the current block and the reference frame, using all coordinates in the search area as candidate points (CP). Absolute Difference (SAD) is used.
대부분의 동영상 부호화 표준에서는 이러한 SAD를 이용한 전역 탐색 알고리즘을 사용하고 있으며, 이에 의하면 가장 정합이 잘되는 후보 블록을 정합 블록으로 선택하기 때문에 최적의 움직임 벡터를 찾을 수 있는 장점이 있다. 하지만, 전역 탐색 알고리즘은 광대한 탐색 지점들과 계산량이 상당히 많고 또한 이를 구현하기 위한 시스템의 구성이 복잡하여, 실시간 부호화를 위한 어플리케이션에는 적용하기가 어려운 단점이 있다. Most video coding standards use the global search algorithm using the SAD, which has the advantage of finding the optimal motion vector because the best matching candidate block is selected as the matching block. However, the global search algorithm has a large number of search points and a large amount of computation, and a complicated system configuration for implementing the global search algorithm is difficult to apply to an application for real-time encoding.
다양한 전역 탐색 알고리즘의 계산량을 줄이기 위한 고속 알고리즘의 연구가 진행되어 왔는데, 기준 블록과 후보 블록의 블록합을 이용한 SEA(Successive Elimination Algorithm), 탐색 영역 내의 모든 지점을 탐색하지 않고 선택적으로 탐색하는 3단계 탐색 알고리즘(Three Step Algorithm), 새로운 3단계 탐색 알고리즘(New Three Step Algorithm), 4단계 탐색 알고리즘(Four-step Search Algorithm), 다이아몬드 탐색 알고리즘(Diamond Search Algorithm), 및 영상의 복잡도를 이용하여 매칭 스캔 순서를 재정렬해서 계산량을 감소시키는 고속 알고리즘으로서, 움직임 벡터 필드 적응형 탐색 기법(Motion Vector Field Adaptive Search Technique, MVFAST), 예측 움직임 벡터 필드 적응형 탐색 기법(Predictive Motion Vector Field Adaptive Search Technique, PMVFAST) 등이 있다. Research on high-speed algorithms to reduce the computational complexity of various global search algorithms has been conducted. Successive Elimination Algorithm (SEA) using block sums of reference and candidate blocks, and three steps of selectively searching without searching all points in the search area. Match scan using Three Step Algorithm, New Three Step Algorithm, Four-step Search Algorithm, Diamond Search Algorithm, and Image Complexity As a fast algorithm that reduces the amount of computation by rearranging the order, Motion Vector Field Adaptive Search Technique (MVFAST), Predictive Motion Vector Field Adaptive Search Technique (PMVFAST), etc. There is this.
그럼에도 불구하고 상기 알고리즘들은 최적의 해법을 구하는데 실패했고 고속 움직임 예측 문제는 아직도 중요한 연구 주제로 남아 있다. 특히, 이진 블록 움직임 추정 방법은 여러 수치 픽셀들의 하나의 프레임을 이진 수치 픽셀들의 하나의 프레임으로 맵핑하여 기존의 움직임 예측에 필요한 복잡도를 크게 줄였다. 현재 프레임과 참조 프레임을 이진 형태로 변환한 후 배타적-OR(XOR)연산을 이용하여 정합 오차를 구하여 복잡도를 줄인다.Nevertheless, these algorithms failed to find an optimal solution and the fast motion prediction problem remains an important research topic. In particular, the binary block motion estimation method greatly reduces the complexity required for conventional motion prediction by mapping one frame of several numerical pixels to one frame of binary numerical pixels. After converting the current frame and the reference frame into binary form, the matching error is reduced by using exclusive-OR (XOR) operation to reduce the complexity.
이진 블록 움직임 추정 방법도 블록 정합 알고리즘에 비해 연산 복잡도의 감소 및 비트율 감소의 효과가 별로 만족스럽지 못하였고 이진 블록 움직임 추정 방법은 기존의 SAD를 이용한 전역 탐색 방법에 비해 화질이 크게 떨어지는 단점을 지니고 있다.The binary block motion estimation method is also less satisfactory than the block matching algorithm, and the binary block motion estimation method has a disadvantage in that the image quality is significantly lower than the global search method using the SAD. .
따라서, 본 발명의 제1 목적은 분류기를 이용하여 블록의 움직임 벡터 추정 여부를 결정하는 방법을 제공하는 것이다. Accordingly, a first object of the present invention is to provide a method for determining whether to estimate a motion vector of a block using a classifier.
또한, 본 발명의 제2 목적은 블록의 움직임 벡터 추정 여부를 결정하는 분류기를 제공하는 것이다. It is also a second object of the present invention to provide a classifier for determining whether to estimate a motion vector of a block.
또한, 본 발명의 제3 목적은 블록의 움직임 벡터 추정 여부를 결정하는 부호화기를 제공하는 것이다. It is also a third object of the present invention to provide an encoder for determining whether to estimate a motion vector of a block.
상술한 본 발명의 제1 목적을 달성하기 위한 본 발명의 일 측면에 따른 분류기를 이용한 움직임 벡터 추정 방법은 블록에서 움직임 예측 여부를 결정하는 특징 벡터를 산출하고 상기 산출된 특징 벡터를 기초로 상기 블록을 움직임 예측을 수행하는 제1 블록 및 움직임 예측을 수행하지 않는 제2 블록 중 하나로 분류하는 단계와 상기 제1 블록에 대해 움직임 예측을 수행하여 예측 블록을 생성하고, 상기 제2 블록에 대해서는 움직임 예측을 수행하지 않고 예측 블록을 생성하는 단계를 포함할 수 있다. 상기 분류기를 이용한 움직임 벡터 추정 방법은 참조 프레임 및 현재 프레임에 대하여 1 비트 변환을 수행하는 단계를 더 포함할 수 있다. 상기 제1 블록에 대해 움직임 예측을 수행하여 예측 블록을 생성하고, 상기 제2 블록에 대해서는 움직임 예측을 수행하지 않고 예측 블록을 생성하는 단계는 상기 1 비트 변환을 수행한 상기 참조 프레임 및 현재 프레임에 대하여 이진 블록 움직임 추정 방법을 기초로 움직임 예측을 수행하는 것을 특징으로 할 수 있다. 상기 분류기를 이용한 움직임 벡터 추정 방법은 분류에 사용될 특징 벡터를 결정하는 단계와 상기 특징 벡터를 산출하기 위한 전처리를 수행하는 단계를 더 포함할 수 있다. 상기 블록에서 움직임 예측 여부를 결정하는 특징 벡터를 산출하고 상기 산출된 특징 벡터를 기초로 상기 블록을 움직임 예측을 수행하는 제1 블록 및 움직임 예측을 수행하지 않는 제2 블록 중 하나로 분류하는 단계는 복수의 영상을 이용한 학습 결과로 산출된 조건부 확률값 기초로, 상기 블록이 소정의 특징 벡터를 가질 경우 상기 블록에 대한 움직임 예측을 수행하여 움직임 벡터를 산출할지 여부를 결정할 수 있다. 상기 블록에서 움직임 예측 여부를 결정하는 특징 벡터를 산출하고 상기 산출된 특징 벡터를 기초로 상기 블록을 움직임 예측을 수행하는 제1 블록 및 움직임 예측을 수행하지 않는 제2 블록 중 하나로 분류하는 단계는 베이지안(Bayesian) 분류 방법, 퍼셉트론(Perceptron) 분류 방법, SVM(Support Vector Machine) 중 하나를 사용할 수 있다. 상기 특징 벡터는 인코딩하려는 블록에 대한 양자화 계수(Quantization Parameter), 프레임의 사이즈, 블록의 사이즈, 예측 움직임 벡터 크기, 화면 내 부호화된 주변 블록의 수, 스킵 부호화된 주변 블록의 수, 상기 1 비트 변환을 통해 출력된 1의 개수, 이진 변환 시 밴드 패스 필터를 거친 화소값와 원본 화소값의 차이 중 적어도 하나일 수 있다. Motion vector estimation method using a classifier according to an aspect of the present invention for achieving the first object of the present invention described above calculates a feature vector for determining whether to predict motion in a block and based on the calculated feature vector Classifying the signal into one of a first block that performs motion prediction and a second block that does not perform motion prediction and performing motion prediction on the first block to generate a prediction block, and predicting motion on the second block. It may include generating a prediction block without performing the operation. The motion vector estimation method using the classifier may further include performing 1-bit transform on the reference frame and the current frame. Generating a prediction block by performing motion prediction on the first block, and generating a prediction block without performing motion prediction on the second block may be performed on the reference frame and the current frame on which the 1-bit conversion is performed. The motion prediction may be performed based on a binary block motion estimation method. The motion vector estimation method using the classifier may further include determining a feature vector to be used for classification and performing preprocessing to calculate the feature vector. Calculating a feature vector for determining whether to predict motion in the block and classifying the block into one of a first block for performing motion prediction and a second block for not performing motion prediction based on the calculated feature vector; Based on a conditional probability value calculated as a result of learning using the image of, if the block has a predetermined feature vector, it may be determined whether to calculate a motion vector by performing motion prediction on the block. Computing a feature vector that determines whether to predict motion in the block, and classifying the block into one of a first block that performs motion prediction and a second block that does not perform motion prediction based on the calculated feature vector. (Bayesian) classification method, Perceptron classification method, SVM (Support Vector Machine) can be used. The feature vector includes a quantization coefficient for a block to be encoded, a frame size, a block size, a predicted motion vector size, a number of encoded neighboring blocks in a picture, a number of skip encoded neighboring blocks, and the 1-bit transform. It may be at least one of the number of 1's output through and the difference between the pixel value passed through the band pass filter and the original pixel value during binary conversion.
또한 상술한 본 발명의 제2 목적을 달성하기 위한 본 발명의 일 측면에 따른 블록의 움직임 벡터 벡터 추정 여부를 결정하기 위한 분류기는 블록의 움직임 예측 벡터를 산출할지 여부를 결정하기 위한 특징 벡터를 산출하는 특징 벡터 산출부와 상기 특징 벡터 산출부로부터 산출된 특징 벡터를 기초로 상기 블록에서 움직임 예측을 수행할지 여부를 분류하는 블록 분류부를 포함할 수 있다. 상기 블록의 움직임 벡터 벡터 추정 여부를 결정하기 위한 분류기는 소정의 필터링을 수행하여 현재 프레임과 참조 프레임의 1 비트 변환을 수행하는 1 비트 변환부를 더 포함할 수 있다. 상기 블록의 움직임 벡터 벡터 추정 여부를 결정하기 위한 분류기는 블록을 분류하기 위해 사용될 특징 벡터를 특징 벡터 결정부와 상기 특징 벡터를 산출하기 위한 전처리를 수행하는 전처리부를 더 포함할 수 있다. 상기 블록 분류부는 복수의 영상을 이용한 학습 결과로 산출된 조건부 확률값 기초로, 상기 블록이 소정의 특징 벡터를 가질 경우 상기 블록에 대해 움직임 예측을 수행할지 여부를 결정할 수 있다. In addition, the classifier for determining whether to estimate the motion vector of the block according to an aspect of the present invention for achieving the above-described second object of the present invention calculates a feature vector for determining whether to calculate the motion prediction vector of the block And a block classification unit classifying whether to perform motion prediction on the block based on the feature vector calculator and the feature vector calculated from the feature vector calculator. The classifier for determining whether to estimate the motion vector vector of the block may further include a 1-bit converter configured to perform 1-bit conversion of the current frame and the reference frame by performing a predetermined filtering. The classifier for determining whether to estimate the motion vector of the block may further include a feature vector determiner that is used to classify the block and a preprocessor that performs preprocessing to calculate the feature vector. The block classifier may determine whether to perform motion prediction on the block when the block has a predetermined feature vector based on a conditional probability value calculated as a result of learning using a plurality of images.
또한 상술한 본 발명의 제3 목적을 달성하기 위한 본 발명의 일 측면에 따른 부호화기는 블록에서 움직임 벡터를 산출할 것인지 여부를 분류하는 분류기와 상기 분류기에 의해 움직임 벡터를 산출할 것으로 분류된 움직임 예측 수행 블록에 대해 움직임 예측을 수행하여 예측 블록을 생성하는 움직임 보상부를 포함할 수 있다. 상기 분류기는 상기 블록의 움직임 예측 벡터를 산출할지 여부를 결정하기 위한 특징 벡터를 산출하는 특징 벡터 산출부와 상기 특징 벡터 산출부로부터 산출된 특징 벡터를 기초로 상기 블록에서 움직임 예측을 수행할지 여부를 분류하는 블록 분류부를 포함할 수 있다. 상기 블록 분류부는 복수의 영상을 이용한 학습 결과로 산출된 조건부 확률값 기초로, 상기 블록이 소정의 특징 벡터를 가질 경우 상기 블록에 대해 움직임 예측을 수행할지 여부를 결정할 수 있다. 상기 분류기는 소정의 필터링을 수행하여 현재 프레임과 참조 프레임의 1 비트 변환을 수행하는 1 비트 변환부를 더 포함할 수 있다. In addition, the encoder according to an aspect of the present invention for achieving the above-described third object of the present invention is a classifier for classifying whether to calculate a motion vector in a block and a motion prediction classified by the classifier to calculate a motion vector. It may include a motion compensation unit for generating a prediction block by performing motion prediction on the performance block. The classifier determines whether to perform motion prediction in the block based on a feature vector calculator for calculating a feature vector for determining whether to calculate a motion prediction vector of the block and the feature vector calculated from the feature vector calculator. The block classification unit may be classified. The block classifier may determine whether to perform motion prediction on the block when the block has a predetermined feature vector based on a conditional probability value calculated as a result of learning using a plurality of images. The classifier may further include a 1-bit converter which performs 1-bit conversion of the current frame and the reference frame by performing a predetermined filtering.
상술한 바와 같이 본 발명의 실시예에 따른 분류기를 이용한 움직임 벡터 추정 방법 및 이러한 방법을 사용하는 장치에 따르면, 분류기를 통해서 블록이 움직임 예측을 수행할지 여부를 미리 결정함으로써 계산 복잡도를 줄일 수 있다.As described above, according to the motion vector estimation method using the classifier and the apparatus using the method according to the embodiment of the present invention, the complexity of calculation can be reduced by determining whether the block performs the motion prediction through the classifier.
도 1은 본 발명의 일실시예에 따른 분류기를 이용한 움직임 벡터 추정 방법을 나타낸 순서도이다.
도 2는 본 발명의 일실시예에 따른 분류기를 이용한 움직임 벡터 추정 방법에서 분류기를 학습시키는 방법을 나타낸 순서도이다.
도 3은 본 발명의 일실시예에 따른 분류기를 이용한 움직임 벡터 추정 방법을 간략히 나타낸 순서도이다.
도 4는 본 발명의 일실시예에 따른 분류기를 이용한 움직임 벡터 추정 장치를 나타낸 블록도이다.
도 5는 본 발명의 일실시예에 따른 분류기를 이용한 움직임 벡터 추정 장치를 포함한 인코더를 나타낸 개념도이다.1 is a flowchart illustrating a motion vector estimation method using a classifier according to an embodiment of the present invention.
2 is a flowchart illustrating a method of training a classifier in a motion vector estimation method using a classifier according to an embodiment of the present invention.
3 is a flowchart schematically illustrating a motion vector estimation method using a classifier according to an embodiment of the present invention.
4 is a block diagram illustrating an apparatus for estimating a motion vector using a classifier according to an embodiment of the present invention.
5 is a conceptual diagram illustrating an encoder including a motion vector estimating apparatus using a classifier according to an embodiment of the present invention.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.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.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.The terms first, second, etc. may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component. And / or < / RTI > includes any combination of a plurality of related listed items or any of a plurality of related listed items.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다거나 "직접 접속되어"있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when a component is referred to as being "directly connected" or "directly connected" to another component, it should be understood that there is no other component in between.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting of the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this application, the terms "comprise" or "have" are intended to indicate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, and one or more other features. It is to be understood that the present invention does not exclude the possibility of the presence or the addition of numbers, steps, operations, components, components, or a combination thereof.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 이하, 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. Hereinafter, the same reference numerals are used for the same components in the drawings, and duplicate descriptions of the same components are omitted.
이하, 본 발명의 일실시예에 따른 분류기를 이용한 움직임 벡터 추정 방법에서 사용되는 특징 벡터는 소정의 블록의 움직임 추정 방법을 결정하기 위한 블록이 가진 특징을 나타내는 벡터로써 특징 벡터를 기초로 블록들은 복수개의 집합으로 나뉠 수 있다. 예를 들어, 특징 벡터로써 인코딩하려는 블록에 대한 양자화 계수(Quantizatiom Parameter), 화면 크기, 블록 크기, 예측 움직임 벡터 크기, 화면 내 부호화된 주변 블록의 수, 스킵 부호화된 주변 블록의 수, 이진 블록 움직임 추정을 통해 나온 1의 개수, 이진 변환시 밴드 패스 필터를 거친 화소와 원본 화소의 차이값 등과 같은 블록의 특징을 분류할 수 있는 다양한 값들을 블록의 특징 벡터로써 사용할 있다.Hereinafter, a feature vector used in a motion vector estimation method using a classifier according to an embodiment of the present invention is a vector representing a feature of a block for determining a motion estimation method of a predetermined block. Can be divided into a set of dogs. For example, the quantization coefficient, the screen size, the block size, the predicted motion vector size, the number of coded neighboring blocks, the number of skip coded neighboring blocks, and the binary block motion for the block to be encoded as the feature vector. Various values that can classify the characteristics of the block, such as the number of 1s obtained through the estimation and the difference between the pixel that passed through the band pass filter and the original pixel during binary conversion, are used as the feature vectors of the block.
본 발명의 일실시예에 따른 분류기를 이용한 움직임 벡터 추정 방법은 이진 블록 움직임 추정 방법을 기초로 수행될 수 있다. 이진 블록 움직인 추정 방법은 1 비트 변환 방법을 기초로 하는(1 bit transform based) 움직임 추정 방법으로써 8비트의 픽셀값을 1 비트로 변환하는 방법을 말한다.
A motion vector estimation method using a classifier according to an embodiment of the present invention may be performed based on a binary block motion estimation method. The binary block motion estimation method is a motion estimation method based on a 1 bit transform method and refers to a method of converting an 8-bit pixel value into 1 bit.
도 1은 본 발명의 일실시예에 따른 분류기를 이용한 움직임 벡터 추정 방법을 나타낸 순서도이다. 1 is a flowchart illustrating a motion vector estimation method using a classifier according to an embodiment of the present invention.
도 1을 참조하면, 참조프레임에 대하여 1 비트 변환을 실행한다(단계 S100). Referring to FIG. 1, one-bit conversion is performed on a reference frame (step S100).
발명의 일실시예에 따른 분류기를 이용한 움직임 벡터 추정 방법에 따르면 이하 설명될 1 비트 변환 방법은 1 비트 변환 방법의 하나의 예로써 본 발명의 본질에서 벋어나지 않는 한 다른 1 비트 변환 방법 또한 사용될 수 있다.According to the motion vector estimation method using the classifier according to an embodiment of the present invention, the one-bit conversion method to be described below is one example of the one-bit conversion method, and other one-bit conversion methods may also be used as long as they do not depart from the essence of the present invention. have.
움직임 추정을 위해 1 비트 변환을 이용하는 경우 블록 정합 기반의 움직임 추정 방법에 비해 상대적으로 계산 복잡도가 감소한다. When the 1-bit transform is used for motion estimation, the computational complexity is reduced compared to the block matching based motion estimation method.
1 비트 변환은 다양한 픽셀값을 가지는 픽셀을 1 비트 값을 가지는 픽셀로 변환하기 위해 필터 커널을 이용할 수 있다. One-bit conversion may use a filter kernel to convert pixels with various pixel values into pixels with one bit values.
아래의 수학식 1은 1 비트 변환을 수행하기 위한 예시적인 필터 커널의 행렬식으로써 대역 통과 필터의 성질을 가진다.Equation 1 below is a determinant of an exemplary filter kernel for performing a 1-bit transform, and has the property of a band pass filter.
1 비트 변환을 하기 위한 필터링 행렬인 수학식 1과 상이한 행렬식 역시 사용될 수 있고 이러한 필터 커널 또한 본 발명의 권리 범위에 속한다.Determinants different from Equation 1, which are filtering matrices for 1-bit conversion, can also be used and such filter kernels are also within the scope of the present invention.
위의 수학식 1을 사용하여 필터링 된 참조 프레임의 픽셀값은 원래 참조 프레임의 픽셀값과 비교한 후 아래의 수학식 2를 기초로 0 또는 1로 표현될 수 있다. The pixel value of the reference frame filtered using Equation 1 above may be expressed as 0 or 1 based on Equation 2 below after comparing with the pixel value of the original reference frame.
은 필터링을 수행하지 않은 참조 프레임의 픽셀값을 나타내고 는 필터링을 수행한 참조 프레임의 픽셀값을 나타낸다. Denotes the pixel value of the reference frame without filtering Denotes a pixel value of the reference frame on which the filtering is performed.
현재 프레임에 대하여 1 비트 변환을 실행한다(단계 S110). One-bit conversion is performed on the current frame (step S110).
현재 프레임에 대한 1 비트 변환도 전술한 단계 S100에서 기술된 것과 동일한 방식으로 1 비트 변환될 수 있다.One bit conversion for the current frame may also be one bit converted in the same manner as described in step S100 described above.
특징 벡터를 결정한다(단계 S120)The feature vector is determined (step S120).
전술한 바와 같이 특징 벡터는 블록의 특성을 나타내는 다양한 변수들이 사용할 수 있고 이 중에 하나의 변수를 블록을 분류하기 위한 특징 벡터로 결정할 수 있다. 본 발명의 일실시예에 따른 분류기를 이용한 움직임 벡터 추정 방법은 블록의 특징 벡터를 기초로 움직임 추정을 수행할지 여부를 결정할 수 있다. As described above, the feature vector may be used by various variables representing the characteristics of the block, and one of the features may be determined as a feature vector for classifying the block. A motion vector estimation method using a classifier according to an embodiment of the present invention may determine whether to perform motion estimation based on a feature vector of a block.
움직임 추정을 할 것인지 여부를 기초로 블록을 분류할 때 영상의 특성에 따라 효과적인 특징 벡터가 달라질 수 있기 때문에 영상의 특성에 기초하여 특징 벡터를 적응적으로 선택할 수 있다. When classifying blocks based on whether motion estimation is to be performed or not, an effective feature vector may vary according to the characteristics of the image, and thus the feature vector may be adaptively selected based on the characteristics of the image.
하지만 본 발명의 일실시예에 따른 분류기를 이용한 움직임 벡터 추정 방법에 따르면 특징 벡터는 하나의 고정된 변수값으로 사용될 수 있고 특징 벡터가 고정 변수일 경우 특징 벡터를 무엇으로 할 것인지를 결정하는 단계 S120은 수행되지 않을 수 있다.However, according to the motion vector estimation method using the classifier according to an embodiment of the present invention, the feature vector may be used as a fixed variable value, and when the feature vector is a fixed variable, determining what to do with the feature vector S120 May not be performed.
특징 벡터를 산출하기 위한 전처리를 수행한다(단계 S130).The preprocessing for calculating the feature vector is performed (step S130).
특징 벡터를 명확하게 산출하기 위해 필요한 경우 전처리를 수행할 수 있다. 예를 들어 이진 블록 움직임 추정을 수행할 때 1 비트 변환에 의해 변환된 블록의 픽셀값 중 1의 개수는 특징 벡터로 사용될 수 있다. 따라서 이진 블록에 포함된 1의 개수를 산출하는 전처리 단계가 수행될 수 있다. 이러한 전처리 단계가 불필요하고 바로 특징 벡터를 산출할 수 있는 경우 단계 S130은 수행되지 않을 수 있다.Preprocessing can be performed if necessary to produce a feature vector clearly. For example, when performing binary block motion estimation, the number of 1s of pixel values of a block converted by 1-bit transform may be used as a feature vector. Therefore, the preprocessing step of calculating the number of 1s included in the binary block may be performed. If this preprocessing step is unnecessary and the feature vector can be calculated immediately, step S130 may not be performed.
또한 전처리부에서는 해당 특징 벡터에 따라 특징 벡터를 소정의 카테고리로 분류할 수 있다. 예를 들어, H.264/AVC에서는 양자화 파라메터는 0에서 51까지의 값을 가지는데 이러한 양자화 파라메터를 특징 벡터로 할 경우, 계산 복잡도를 줄이기 위해 4개의 소정의 구간으로 양자화 파라메터값을 분류 방법을 사용하여 특징 벡터를 분류할 수 있다. 즉, 0에서 12까지의 양자화 파라메터 값을 가지는 경우, 제1 특징 벡터 1, 13에서 25까지의 양자화 파라메터 값을 가지는 경우 제2 특징 벡터와 같이 분류하여 확률값 계산시 복잡도를 줄일 수 있다. 만약 특정 벡터에서 이러한 분류가 불필요한 경우 단계 S130은 수행되지 않을 수 있다.Also, the preprocessor may classify the feature vectors into predetermined categories according to the feature vectors. For example, in H.264 / AVC, the quantization parameter has a value from 0 to 51. When the quantization parameter is a feature vector, the quantization parameter is classified into four predetermined intervals to reduce the computational complexity. Can be used to classify feature vectors. That is, when the quantization parameter values from 0 to 12 are included, the first feature vector 1 and the quantization parameter values from 13 to 25 may be classified as the second feature vector to reduce complexity when calculating probability values. If such classification is unnecessary in a specific vector, step S130 may not be performed.
특징 벡터를 산출한다(단계 S140).The feature vector is calculated (step S140).
현재 프레임에 포함되는 블록에서 특징 벡터를 산출할 수 있다. 특징 벡터가 산출되는 블록은 44, 48, 84, 88, 816, 168, 1616...3232...6464 등 다양한 사이즈의 블록이 될 수 있다. 즉, 움직임 벡터를 산출하는데 사용될 수 있는 다양한 크기의 블록은 특징 벡터를 산출할 때 또한 이용될 수 있다.A feature vector may be calculated from blocks included in the current frame. The block from which the feature vector is calculated is 4 4, 4 8, 8 4, 8 8, 8 16, 16 8, 16 16 ... 32 32 ... 64 It can be a block of various sizes such as 64. That is, blocks of various sizes that can be used to calculate the motion vector can also be used when calculating the feature vector.
특징 벡터를 산출할 블록을 결정할 때 에지와 같은 영상의 특성을 기초로 하나의 영상에서도 움직임 벡터를 산출하기 위한 다양한 크기의 블록을 사용할 수 있다.When determining a block to calculate a feature vector, a block of various sizes for calculating a motion vector may be used in one image based on characteristics of an image such as an edge.
특징 벡터는 전술한 바와 같이 소정의 블록의 움직임 추정 방법을 결정하기 위한 블록이 가진 특징을 나타내는 벡터로써 예를 들어, 인코딩하려는 블록에 대한 양자화 계수(Quantization Parameter), 화면 크기, 블록 크기, 예측 움직임 벡터 크기, 화면 내 부호화 된 주변 블록의 수, 스킵 부호화된 주변 블록의 수, 이진 블록 움직임 추정을 통해 나온 1의 개수, 이진 변환시 밴드 패스 필터를 거친 화소와 원본 화소의 차이값 등과 같은 블록의 특징을 각각 분류할 수 있는 다양한 값들이 블록의 특징 벡터로써 활용될 수 있다.The feature vector is a vector representing a feature of a block for determining a motion estimation method of a predetermined block, as described above. For example, a quantization parameter, a screen size, a block size, a predicted motion for a block to be encoded. Characteristic of blocks such as vector size, number of coded neighboring blocks, skip coded neighboring blocks, number of 1s through binary block motion estimation, and difference between original pixel and bandpass filter during binary conversion Various values that can be classified into each may be used as the feature vector of the block.
특징 벡터에 따라 블록을 분류하고 움직임 예측 수행 대상 블록에 대해 움직임 예측을 수행한다(단계 S150).The block is classified according to the feature vector, and motion prediction is performed on the motion prediction target block (step S150).
특징 벡터를 기초로 다양한 분류 방법을 이용해 블록을 분류할 수 있다. Blocks may be classified using various classification methods based on feature vectors.
블록은 움직임 예측을 수행하지 않는 블록과 움직임 예측을 수행하는 블록으로 분류될 수 있다. Blocks may be classified into blocks that do not perform motion prediction and blocks that perform motion prediction.
아래의 수학식 3은 본 발명의 일실시예에 따른 분류기를 이용한 움직임 예측 벡터 추정 방법에서 블록은 움직임 예측을 수행하지 않는 블록과 움직임 예측을 수행하는 블록으로 분류하는 베이즈(Bayes) 분류 방법을 나타낸 것이다. Equation 3 below shows a Bayes classification method in which a block is classified into a block that does not perform motion prediction and a block that performs motion prediction in a motion prediction vector estimation method using a classifier according to an embodiment of the present invention. It is shown.
본 발명의 일실시예에 따른 분류기를 이용한 움직임 예측 벡터 추정 방법에서 사용되는 분류기로는 베이지안(Bayesian) 분류기, 퍼셉트론(Perceptron) 분류기, SVM(Support Vector Machine) 등과 같은 다양한 분류기 중 적어도 하나가 사용될 수 있고 이러한 분류기를 사용하여 블록을 분류하는 것 또한 본 발명의 권리 범위에 속한다.As a classifier used in the motion prediction vector estimation method using the classifier according to an embodiment of the present invention, at least one of various classifiers such as a Bayesian classifier, a Perceptron classifier, and a support vector machine (SVM) may be used. And classifying blocks using such classifiers are also within the scope of the present invention.
는 특징 벡터 가 주어진 경우 분류가 선택될 확률을 나타낸다. Is a feature vector Is given Represents the probability that a classification will be selected.
조건부 확률값은 분류기에서 다양한 트레이닝을 통해서 얻어질 수 있다. 다양한 영상에 학습을 수행한 후에 얻어진 확률값을 기초로 해당 블록의 움직임 예측 여부를 판별할 수 있다. Conditional probability values can be obtained through various training in the classifier. It is possible to determine whether the motion of the corresponding block is predicted based on the probability value obtained after learning the various images.
위의 수학식 4처럼 가 블록의 움직임 벡터 예측을 하지 않는 분류를 나타내고 가 블록의 움직임 추정을 하는 분류를 나타낼 경우, 특징 벡터 에 대해서 가 더 큰 경우, 특징 벡터 를 가진 블록에 대해서 움직임 벡터 예측을 수행하지 않고 가 작거나 같은 경우 특징 벡터 를 가진 블록에 대해서 움직임 벡터 예측을 수행할 수 있다. Like Equation 4 above Represents a classification that does not predict the motion vector of the block If the vector represents a classification that estimates the motion of the block, then the feature vector about Is greater, feature vector Without performing motion vector prediction on blocks with Is less than or equal to the feature vector Motion vector prediction can be performed on a block with.
움직임 예측을 수행하지 않는 블록은 움직임 예측을 수행하지 않고 예를 들어, 주변 블록의 움직임 벡터값을 기초로 블록의 움직임 벡터값을 추정할 수 있다. 즉, 움직임 예측을 수행하지 않는 다른 예측 방법을 사용할 수 있다.A block that does not perform motion prediction may estimate the motion vector value of the block based on, for example, the motion vector value of the neighboring block without performing the motion prediction. That is, other prediction methods that do not perform motion prediction may be used.
움직임 예측을 수행하는 블록은 다양한 움직임 벡터 예측 방법을 기초로 블록의 움직임 벡터값을 산출할 수 있다. 움직임 벡터 예측 방법으로는 1 비트 변환 방법이 수행된 블록을 기초로 움직임 벡터를 예측을 하는 이진 블록 움직임 추정 방법을 기초로 한 다양한 방법들이 사용될 수 있다. A block that performs motion prediction may calculate a motion vector value of the block based on various motion vector prediction methods. As a motion vector prediction method, various methods based on a binary block motion estimation method for predicting a motion vector based on a block on which a 1-bit transform method is performed may be used.
아래의 수학식 5는 1 비트 변환 기초 움직임 예측 방법 중 하나를 나타낸다.Equation 5 below represents one of the 1-bit transform based motion prediction methods.
위의 수학식 5에서 NNMP(the number of non-matching point)는 비정합 포인트 수로써 두 1-비트 이미지 프레임을 위한 정합 오차를 산출할 수 있다. 는 XOR 연산을 나타내고 는 탐색 범위를 결정하며 와 는 이미지의 위치를 의미한다. 최소의 NNMP를 가지는 지점인 를 움직임 벡터로 설정할 수 있다. 과 은 의 범위를 가진다. NNMP로 8 비트의 메모리가 이용되는 경우 8개의 정합 오차, 32 비트의 메모리가 이용되는 경우 32개의 정합 오차가 산출될 수 있다.In Equation 5 above, the number of non-matching points (NNMP) is a number of non-matching points to calculate a matching error for two 1-bit image frames. Represents an XOR operation Determines the search range, Wow Means the position of the image. The point with the least NNMP Can be set as a motion vector. and silver Has a range of. Eight matching errors may be calculated when 8-bit memory is used as NNMP, and 32 matching errors may be calculated when 32-bit memory is used.
이진 블록 움직임 추정 방법 중 전술한 NNMP 방법 외에도 다양한 1 비트 변환 기초 움직임 예측 방법이 사용될 수 있고 이러한 1 비트 변환 기초 움직임 예측 방법들을 사용하는 움직임 예측 방법 또한 본 발명의 권리범위에 포함된다.In addition to the above-described NNMP method among binary block motion estimation methods, various 1-bit transform based motion prediction methods may be used, and motion prediction methods using such 1 bit transform based motion prediction methods are also included in the scope of the present invention.
움직임 예측이 수행된 후 오차 블록과 움직임 예측 벡터를 부호화한 패킷을 생성할 수 있다. 움직임 예측이 수행된 블록, 움직임 예측이 수행되지 않은 블록들은 양자화되고 엔트로피 부호화 방법과 같은 부호화 방법을 이용해서 부호화될 수 있다.
After the motion prediction is performed, a packet encoding the error block and the motion prediction vector may be generated. The blocks on which motion prediction is performed and the blocks on which motion prediction is not performed may be quantized and encoded using an encoding method such as an entropy encoding method.
도 2는 본 발명의 일실시예에 따른 분류기를 이용한 움직임 벡터 추정 방법에서 분류기를 학습시키는 방법을 나타낸 순서도이다. 2 is a flowchart illustrating a method of training a classifier in a motion vector estimation method using a classifier according to an embodiment of the present invention.
블록에서 특징 벡터를 산출한다(단계 S200).A feature vector is calculated in the block (step S200).
전술한 바와 같이 특징 벡터는 인코딩하려는 블록에 대한 양자화 계수(Quantizatiom Parameter), 화면 크기, 블록 크기, 예측 움직임 벡터 크기, 화면 내 부호화된 주변 블록의 수, 스킵 부호화된 주변 블록의 수, 이진 블록 움직임 추정을 통해 나온 1의 개수, 이진 변환시 밴드 패스 필터를 거친 화소와 원본 화소의 차이값과 같은 다양한 종류의 값이 될 수 있다. As described above, the feature vector includes a quantization coefficient, a screen size, a block size, a predicted motion vector size, a number of coded neighboring blocks, a number of skip coded neighboring blocks, and a binary block motion for a block to be encoded. It can be various kinds of values such as the number of 1s obtained through the estimation and the difference value between the pixel which passed the band pass filter and the original pixel during binary conversion.
블록에서 이러한 특징 벡터를 산출할 수 있고 산출된 특징 벡터를 기초로 블록을 분류할 수 있다.Such a feature vector may be calculated in the block, and the block may be classified based on the calculated feature vector.
산출된 특징 벡터를 소정의 기준으로 분류한다(단계 S210).The calculated feature vector is classified according to a predetermined criterion (step S210).
예를 들어, H.264/AVC에서는 양자화 파라메터는 0에서 51까지의 값을 가지는데 이러한 양자화 파라메터를 특징 벡터로 할 경우, 계산 복잡도를 줄이기 위해 4개의 소정의 구간으로 양자화 파라메터값을 분류 방법을 사용하여 특징 벡터를 분류할 수 있다. 즉, 0에서 12까지의 양자화 파라메터 값을 가지는 경우, 제1 특징 벡터 1, 13에서 25까지의 양자화 파라메터 값을 가지는 경우 제2 특징 벡터로 분류하여 확률값 계산시 복잡도를 줄일 수 있다. For example, in H.264 / AVC, the quantization parameter has a value from 0 to 51. When the quantization parameter is a feature vector, the quantization parameter is classified into four predetermined intervals to reduce the computational complexity. Can be used to classify feature vectors. That is, when having a quantization parameter value of 0 to 12, and having a quantization parameter value of the first feature vector 1, 13 to 25 can be classified into a second feature vector to reduce the complexity when calculating the probability value.
단계 S210의 경우, 선택적인 단계로써 특징 벡터가 작은 수로 분류될 수 있는 경우 수행되지 않을 수 있다.In the case of step S210, if the feature vector can be classified into a small number as an optional step, it may not be performed.
움직임 예측을 수행한다(단계 S220).The motion prediction is performed (step S220).
학습을 위해서는 소정의 특징 벡터값을 가질 때 움직임 예측을 수행한 결과 및 수행하지 않은 결과를 비교해서 소정의 기준에 따라 움직임 예측을 수행할지 여부를 결정해야한다. 움직임 예측을 수행하는 블록은 예측을 수행하는 단계에서는 1비트 변환을 수행한 참조 프레임과 현재 프레임에 포함된 블록을 기초로 전술한 NNMP 방법 및 NNMP 방법 외에도 다양한 1 비트 변환 기초 움직임 예측 방법인 이진 블록 움직임 추정 방법을 사용하여 움직임 예측을 수행할 수 있다.For learning, it is necessary to compare the result of performing the motion prediction with the result of not performing the predetermined feature vector value and determine whether to perform the motion prediction according to a predetermined criterion. In the step of performing the prediction, the block for performing the motion prediction is a binary block that is a variety of 1-bit transform-based motion prediction methods in addition to the above-described NNMP method and NNMP method based on the reference frame on which the 1-bit transform is performed and the block included in the current frame. Motion estimation can be performed using the motion estimation method.
따라서, 본 발명의 일실시예에 따른 분류기를 이용한 움직임 벡터 추정 방법에서는 학습 과정에서 모든 블록에 대해 움직임 예측을 수행하여 움직임 예측을 수행한 블록을 생성하고 움직임 예측을 수행하지 않고 아래의 단계 S230처럼 움직임 예측을 수행하지 않고 조기 종료한 블록과 비교해야 한다.Therefore, in the motion vector estimation method using the classifier according to an embodiment of the present invention, the motion prediction is performed on all blocks in the learning process to generate a block in which the motion prediction is performed, and as shown in step S230 below without performing the motion prediction. It should be compared with blocks that terminate early without performing motion prediction.
움직임 예측 외의 방법으로 예측 블록을 생성한다(단계 S230). A prediction block is generated by a method other than motion prediction (step S230).
움직임 예측을 수행하지 않고 인트라 예측 또는 주변 블록의 움직임 벡터로부터 현재 블록의 움직임 벡터를 예측하는 방법을 사용하여 예측 블록을 생성한다. A prediction block is generated using a method of predicting a motion vector of a current block from intra motion prediction or a motion vector of a neighboring block without performing motion prediction.
움직임 예측을 수행할지 여부를 판단한다(단계 S240).It is determined whether to perform motion prediction (step S240).
움직임 예측을 수행할지 여부를 판단하기 위해서는 다양한 기준이 적용될 수 있다.Various criteria may be applied to determine whether to perform motion prediction.
소정의 특징 벡터 값을 가졌을 때 움직임 예측을 수행한 블록과 움직임 예측을 수행하지 않은 블록 사이에서 움직임 예측을 수행할지 영부를 결정해야 한다. 예를 들어, 움직임 예측을 수행하는 경우가 더 나은 성능(더 작은 오차 에너지)을 가지기는 하지만 계산 복잡도에 있어 복잡한 경우, 오차 에너지와 계산 복잡도 사이에서 소정의 기준값을 적용하여 소정의 특징 벡터를 가진 블록이 움직임 예측을 수행할지 여부를 결정할 수 있다.It is necessary to determine whether to perform motion prediction between a block for which motion prediction is performed and a block for which motion prediction is not performed when having a predetermined feature vector value. For example, if performing motion prediction has better performance (smaller error energy) but is complex in computational complexity, a block with a predetermined feature vector may be applied by applying a predetermined reference value between the error energy and the computational complexity. It may be determined whether to perform this motion prediction.
특정 벡터를 가진 블록의 경우 움직임 벡터를 이용한 움직임 예측을 수행할지 여부를 결정할 수 있다. In the case of a block having a specific vector, it may be determined whether to perform motion prediction using the motion vector.
움직임 예측을 수행하지 않는 블록으로 판단된 경우 해당 블록의 특정 벡터일 때 움직임 예측을 수행하지 않는 확률값을 높인다(단계 S250).If it is determined that the block does not perform the motion prediction, the probability value for not performing the motion prediction when the specific vector of the corresponding block is increased (step S250).
특정 벡터값 에서 움직임 예측을 수행하지 않는 블록이 될 경우의 조건부 확률이 라고 할 때 움직임 예측을 수행하지 않는 블록으로 판단된 경우 해당 확률 값을 높힐 수 있다.Specific vector value Conditional probability for a block that does not perform motion prediction If it is determined that the block does not perform the motion prediction can increase the corresponding probability value.
움직임 예측을 수행하는 블록으로 판단된 경우 해당 블록의 특정 벡터값일 때 움직임 예측을 수행하지 않는 확률값을 높인다(단계 S260).When it is determined that the block performs the motion prediction, the probability value of not performing the motion prediction when the specific vector value of the block is increased is increased (step S260).
특정 벡터값 에서 움직임 예측을 수행하는 블록이 될 경우의 조건부 확률이 라고 할 때 해당 확률 값을 높힐 수 있다.Specific vector value Conditional probabilities in case of If you can increase the probability value.
소정의 특정 벡터값에 대한 확률값을 조정하여 특정한 특징 벡터값일 경우 움직임 예측을 수행할지 여부를 학습시킴으로써 특정 벡터값에서 움직임 예측 수행 여부를 조건부 확률값 중 더 큰 확률값을 가진 경우를 선택하여 결정할 수 있다.By learning whether to perform motion prediction when a specific feature vector value is adjusted by adjusting a probability value for a predetermined specific vector value, whether or not to perform motion prediction on a specific vector value can be determined by selecting a case having a larger probability value among conditional probability values.
전술한 것과 같은 복수의 단계들을 통해 베이지안 분류를 수행하기 위한 조건부 확률값이 특정벡터에 따라 산출될 수 있다. Through a plurality of steps as described above, a conditional probability value for performing Bayesian classification may be calculated according to a specific vector.
전술한 방법은 설명의 편의상 분류기가 베이지안 분류 방법을 사용할 경우를 전제로 한 것이다. 하지만 본 발명의 일실시예에 따른 분류기를 이용한 움직임 벡터 추정 방법에서 전술한 베이지안 분류 방법이 아닌 다른 분류 방법을 사용할 경우 전술한 방법은 달라질 수 있고 이러한 상이한 분류 방법을 사용하기 위한 학습 방법 또한 본 발명의 권리 범위에 포함된다.
The foregoing method is based on the assumption that the classifier uses a Bayesian classification method for convenience of description. However, when the classification method other than the above-mentioned Bayesian classification method is used in the motion vector estimation method using the classifier according to an embodiment of the present invention, the above-described method may be different, and the learning method for using such a different classification method is also provided. Included in the scope of rights.
도 3은 본 발명의 일실시예에 따른 분류기를 이용한 움직임 벡터 추정 방법을 간략히 나타낸 순서도이다. 3 is a flowchart schematically illustrating a motion vector estimation method using a classifier according to an embodiment of the present invention.
도 3을 참조하면, 블록에서 특징 벡터를 산출한다(단계 S300).Referring to FIG. 3, a feature vector is calculated in a block (step S300).
해당 블록이 움직임 예측을 수행할지 여부를 판단하기 위해 특징 벡터를 산출할 수 있다. 특징 벡터는 전술한 바와 같이 다양한 값이 사용될 수 있다. A feature vector may be calculated to determine whether the block performs motion prediction. As described above, various values may be used for the feature vector.
특징 벡터를 분류한다(단계 S310).The feature vector is classified (step S310).
특징 벡터는 다양한 값을 가질 수 있다. 예를 들어, 1 비트 변환 후에 블록에 포함되는 1의 수를 특징 벡터로 한다면 1의 수는 블록에 포함되는 픽셀의 수에 따라 많은 값을 가질 수 있고 이러한 많은 값에 대해 모두 확률값을 산출하는 경우 계산 복잡도가 증가할 수 있으므로, 특징 벡터의 값은 일정한 기준으로 분류될 수 있다. The feature vector may have various values. For example, if the number of 1s included in a block after 1-bit conversion is a feature vector, the number of 1s may have many values depending on the number of pixels included in the block, and all of these values yield probability values. Since the computational complexity may increase, the value of the feature vector may be classified on a predetermined basis.
특징 벡터의 값이 다양하지 않은 경우 특징 벡터를 분류하는 단계 S310은 수행되지 않을 수 있다. When the value of the feature vector does not vary, step S310 of classifying the feature vector may not be performed.
움직임 예측을 수행할지 여부를 판단한다(단계 S320).It is determined whether to perform motion prediction (step S320).
특정 벡터값 에서 움직임 예측을 수행하지 않는 블록이 될 경우의 조건부 확률 과 특정 벡터값 에서 움직임 예측을 수행하는 블록이 될 경우의 조건부 확률 을 비교하여 이 값보다 클 경우 움직임 예측을 수행하고 이 값보다 작거나 같을 경우 조기 종료를 수행할 수 있다. Specific vector value Conditional Probability for Blocks that Do Not Perform Motion Prediction in And specific vector values Conditional Probability for Block Predicting Motion Prediction in. By comparing this If it is greater than the value, the motion prediction is performed this If it is less than or equal to the value, early termination can be performed.
움직임 예측을 수행한다(단계 S330).The motion prediction is performed (step S330).
단계 S320의 판단 결과 해당 특징 벡터에서 움직임 예측을 수행할 경우의 확률이 특징 벡터에서 움직임 예측을 수행하지 않을 경우의 확률값보다 높은 경우, 움직임 예측을 수행할 수 있다.As a result of the determination in step S320, when the probability when the motion prediction is performed on the feature vector is higher than the probability value when the motion prediction is not performed on the feature vector, the motion prediction may be performed.
움직임 예측을 수행하지 않는다(단계 S340).The motion prediction is not performed (step S340).
단계 S320의 판단 결과 해당 특징 벡터에서 움직임 예측을 수행할 경우의 확률값이 특징 벡터에서 움직임 예측을 수행하지 않을 경우의 확률값보다 낮거나 같은 경우, 움직임 예측을 수행하지 않을 수 있다.
As a result of the determination in S320, when the probability value when the motion prediction is performed on the feature vector is lower than or equal to the probability value when the motion prediction is not performed on the feature vector, the motion prediction may not be performed.
도 4는 본 발명의 일실시예에 따른 분류기를 이용한 움직임 벡터 추정 장치를 나타낸 블록도이다.4 is a block diagram illustrating an apparatus for estimating a motion vector using a classifier according to an embodiment of the present invention.
도 4를 참조하면, 분류기를 이용한 움직임 벡터 추정 장치(400)는 1 비트 변환부(410), 특징 벡터 결정부(420), 전처리부(430), 특징 벡터 산출부(440), 블록 분류부(450)를 포함할 수 있다.Referring to FIG. 4, the
1 비트 변환부(410)는 전술한 수학식 1과 같은 필터 커널을 이용한 필터링 과정과 필터링된 결과값과 원래 픽셀값을 비교하여 1 또는 0의 값으로 변환하는 과정을 사용하여 1 비트 변환을 수행할 수 있다. 수학식 1과 수학식 3에 개시된 1 비트 변환 방법은 1 비트 변환의 예로써 본 발명의 본질에서 벋어나지 않는 한 다양한 1 비트 변환 방법이 사용될 수 있다.The 1-
특징 벡터 결정부(420)는 블록을 분류하기 위해 사용될 특징 벡터를 선택할 수 있다. The
특징 벡터는 블록의 특성을 나타내는 다양한 변수들이 사용할 수 있고 이중에 하나의 변수를 블록을 분류하기 위한 특징 벡터로 결정할 수 있다. 움직임 추정을 할 것인지 여부를 기초로 블록을 분류할 때 영상의 특성에 따라 효과적인 특징 벡터가 달라질 수 있기 때문에 특징 벡터 결정부(420)에서는 영상의 특성에 기초하여 특징 벡터를 적응적으로 선택할 수 있다. The feature vector may be used by various variables representing the characteristics of the block, and one variable may be determined as the feature vector for classifying the block. When classifying blocks based on whether motion estimation is to be performed or not, an effective feature vector may vary according to characteristics of an image, and thus the
만약 특징 벡터를 하나의 고정된 변수로 사용하는 경우 특징 벡터 결정부(420)는 분류기를 이용한 움직임 벡터 추정 장치에 포함되지 않을 수 있다.If the feature vector is used as a fixed variable, the
전처리부(430)는 특징 벡터를 명확하게 산출하기 위해 필요한 경우 전처리를 수행할 수 있다. 예를 들어 이진 블록 움직임 추정을 수행할 때 1 비트 변환에 의해 변환된 블록의 픽셀값 중 1의 개수는 특징 벡터로 사용될 수 있다. 따라서 이진 블록에 포함된 1의 개수를 산출하는 전처리 단계가 수행될 수 있다. 특징 벡터를 산출하기 위한 전처리가 불필요한 경우 전처리부(430)는 분류기를 이용한 움직임 벡터 추정 장치에 포함되지 않을 수 있다.The
또한 전처리부(430)에서는 해당 특징 벡터에 따라 특징 벡터를 소정의 카테고리로 분류할 수 있다. 예를 들어, H.264/AVC에서는 양자화 파라메터는 0에서 51까지의 값을 가지는데 이러한 양자화 파라메터를 특징 벡터로 할 경우, 계산 복잡도를 줄이기 위해 4개의 소정의 구간으로 양자화 파라메터값을 분류 방법을 사용하여 특징 벡터를 분류할 수 있다. 즉, 0에서 12까지의 양자화 파라메터 값을 가지는 경우, 제1 특징 벡터 1, 13에서 25까지의 양자화 파라메터 값을 가지는 경우 제2 특징 벡터와 같이 분류하여 확률값 계산시 복잡도를 줄일 수 있다. 만약 특정 벡터에서 이런한 분류가 불필요한 경우 전처리부(430)는 분류기를 이용한 움직임 벡터 추정 장치에 포함되지 않을 수 있다.In addition, the
특징 벡터 산출부(440)는 블록에서 움직임 예측 여부를 결정하기 위한 특징 벡터를 산출할 수 있다.The
특징 벡터는 예를 들어, 인코딩하려는 블록에 대한 양자화 계수(Quantization Parameter), 화면 크기, 블록 크기, 예측 움직임 벡터 크기, 화면 내 부호화된 주변 블록의 수, 스킵 부호화된 주변 블록의 수, 이진 블록 움직임 추정을 통해 나온 1의 개수, 이진 변환시 밴드 패스 필터를 거친 화소와 원본 화소의 차이값 등과 같은 블록의 특징을 분류할 수 있는 다양한 값들이 블록의 특징 벡터로써 활용될 수 있다. The feature vector may be, for example, a quantization coefficient, a screen size, a block size, a predicted motion vector size, a number of coded neighboring blocks, a number of skip coded neighboring blocks, and a binary block motion for a block to be encoded. Various values that can classify the characteristics of the block, such as the number of 1s obtained through the estimation and the difference between the pixel that passed through the band pass filter and the original pixel during binary conversion, may be used as the feature vector of the block.
블록 분류부(450)는 특징 벡터 산출부(440)로부터 산출된 특징 벡터를 기초로 블록에서 움직임 예측을 수행할지 여부를 분류할 수 있다.The
본 발명의 일실시예에 따른 분류기를 이용한 움직임 벡터 추정 장치에서 블록은 움직임 예측을 수행하지 않는 블록과 움직임 예측을 수행하는 블록으로 분류될 수 있다. In the motion vector estimation apparatus using the classifier according to an embodiment of the present invention, a block may be classified into a block that does not perform motion prediction and a block that performs motion prediction.
블록 분류부(450)에서 사용되는 분류기로는 베이지안(Bayesian) 분류기, 퍼셉트론(Perceptron) 분류기, SVM(Support Vector Machine) 등과 같은 다양한 분류기중 적어도 하나가 사용될 수 있고 이러한 분류기를 사용하여 블록을 분류하는 것 또한 본 발명의 권리 범위에 속한다.As the classifier used in the
움직임 보상부(460)는 블록 분류부(450)에서 움직임 예측을 수행하는 것으로 분류된 블록에 대해 1 비트 변환 방법을 기초로 한 이진 움직임 예측 방법을 통해 움직임 벡터를 추정하여 예측 블록을 생성할 수 있다.The
움직임 보상부(460)에서는 블록 분류부(450)에 의해 움직임 예측을 수행하지 않는 것으로 분류된 블록의 경우, 예를 들어, 움직임 벡터를 직접적으로 추정하지 않고 주변 블록으로부터 현재 블록의 움직임 벡터를 추정할 수 있다. In the case of a block classified as not performing the motion prediction by the
설명의 편의상 움직임 보상부(460)가 움직임 벡터 추정 장치(400)의 외부에 위치한 것으로 도시하였으나, 움직이 보상부(460)와 움직임 벡터 추정 장치(400)가 하나의 모듈로 구현될 수도 있다. 즉, 본 발명의 본질에서 벋어나지 않는 한 복수 또는 하나의 모듈로 구현될 수 있다.
Although the
도 5는 본 발명의 일실시예에 따른 분류기를 이용한 움직임 벡터 추정 장치를 포함한 인코더를 나타낸 개념도이다.5 is a conceptual diagram illustrating an encoder including a motion vector estimating apparatus using a classifier according to an embodiment of the present invention.
도 5는 설명의 편의상 일반적인 H.264/AVC의 부호기에 분류기가 포함된 구성을 나타낸 것으로써 본 발명의 본질에서 벋어나지 않는 한 H.264/AVC 외의 다른 부호기의 구성에 본 발명의 일실시예에 따른 분류기를 포함하는 것 또한 본 발명의 권리 범위에 포함된다.FIG. 5 illustrates a configuration in which a classifier is included in a coder of a general H.264 / AVC for convenience of description, and according to an embodiment of the present invention in the configuration of an encoder other than H.264 / AVC, unless it is omitted from the essence of the present invention. Including a classifier according to the included in the scope of the present invention.
도 5에 개시된 DCT 및 양자화 수행부, 역DCT 및 역양자화 수행부, 디블록킹 필터, 움직임 보상부 등은 일반적인 H.264/AVC 부호화기의 각 구성부의 동작과 유사하다. The DCT and quantization execution unit, the inverse DCT and inverse quantization execution unit, the deblocking filter, the motion compensation unit, and the like described in FIG. 5 are similar to the operation of each component of the general H.264 / AVC encoder.
본 발명의 일실시예에 따른 분류기를 이용한 움직임 벡터 추정 장치에 따르면 분류기(500)는 움직임 보상부(510)의 전단에 위치하거나 움직임 보상부(510)에 포함될 수 있다. 이러한 분류기(500)의 위치는 하나의 실시예로써 예를 들어, 디블록킹 필터(520)의 이전 단에 구비되어 분류된 블록을 해당 블록을 부호화한 패킷에 움직임 예측을 수행할지 여부 정보를 가진 플래그 정보로 표현할 수 있다. 즉, 분류기의 위치는 본 발명의 본질에서 벋어나지 않는한 인코더 내에서 다양하게 위치될 수 있다.According to the motion vector estimating apparatus using the classifier according to an embodiment of the present invention, the classifier 500 may be located at the front end of the motion compensator 510 or may be included in the motion compensator 510. As an example, the location of the classifier 500 is, for example, a flag provided at a previous stage of the
분류기(500)에서 해당 블록에 대해 움직임 추정을 수행할 것인지 여부를 결정하고 움직임 추정을 수행하지 않도록 분류된 블록은 움직임 보상부(610)에서 움직임 예측을 수행하지 않을 수 있다.
The classifier 500 may determine whether to perform motion estimation on the corresponding block, and the block classified to not perform the motion estimation may not perform the motion prediction in the motion compensator 610.
도 6은 본 발명의 일실시예에 따른 분류기를 이용한 움직임 벡터 추정 방법을 수행한 결과를 나타낸 표이다. 6 is a table showing a result of performing a motion vector estimation method using a classifier according to an embodiment of the present invention.
MF-1BT는 기존의 1비트 변환 기초 움직임 예측 방법 기초로한 방법을 사용한 경우를 나타내고 1BT-ET는 기존의 1비트 변환 기초 움직임 예측 방법을 기초로 한 움직임 예측 조기 종료 방법을 나타낸다.MF-1BT represents a case of using the conventional 1-bit transform based motion prediction method based method, and 1BT-ET represents a motion prediction early termination method based on the existing 1 bit transform based motion prediction method.
도 6을 참조하면, 표의 가로축에 기재된 BD-PSNR은 각 방법들의 SAD 방법을 기초로 한 전역 탐색 방법 대비 PSNR의 차이를 나타낸 것이고 Speed-up은 각 방법들의 복잡도를 비교하기 위한 값으로 큰 값을 가질수록 낮은 복잡도를 가진다.Referring to FIG. 6, the BD-PSNR described in the horizontal axis of the table represents the difference of PSNR compared to the global search method based on the SAD method of each method, and Speed-up is a value for comparing the complexity of each method. The more you have, the lower the complexity.
표에서 확인할 수 있듯이, 본 발명의 일실시예에 따른 분류기를 이용한 움직임 벡터 추정 방법을 수행한 경우, BD-PSNR값은 다른 기존의 1 비트 변환 기초 움직임 예측 방법을 수행한 경우의 PSNR값과 유사하여 화질 복원도에 있어서는 열화되지 않는 성능을 가지는 것을 알 수 있다. 하지만 계산 복잡도에 있어서 기존의 1비트 변환 기초 움직임 예측 방법보다 낮은 복잡도를 가진다. 즉, 비슷한 복원 화질에서도 계산 복잡도가 감소될 수 있다.
As can be seen from the table, when the motion vector estimation method using the classifier according to the embodiment of the present invention is performed, the BD-PSNR value is similar to the PSNR value when the other conventional 1-bit transform based motion prediction method is performed. Thus, it can be seen that the image quality has a performance that does not deteriorate. However, the computational complexity is lower than that of the conventional 1-bit transform based motion prediction. That is, the computational complexity may be reduced even with similar reconstructed image quality.
이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although described with reference to the embodiments above, those skilled in the art will understand that the present invention can be variously modified and changed without departing from the spirit and scope of the invention as set forth in the claims below. Could be.
Claims (15)
블록에서 움직임 예측 여부를 결정하는 특징 벡터를 산출하는 단계;
복수의 영상을 이용한 학습 결과로 산출된 조건부 확률값을 기초로, 상기 산출된 특징 벡터에 대한 조건부 확률값에 따라 상기 블록을 움직임 예측을 수행하는 제1 블록 및 움직임 예측을 수행하지 않는 제2 블록 중 하나로 분류하는 단계; 및
상기 제1 블록에 대해 움직임 예측을 수행하여 예측 블록을 생성하고, 상기 제2 블록에 대해서는 움직임 예측을 수행하지 않고 예측 블록을 생성하는 단계를 포함하는 분류기를 이용한 움직임 벡터 추정 방법.In the motion vector estimation method using a classifier,
Calculating a feature vector determining whether to predict motion in the block;
Based on a conditional probability value calculated as a result of learning using a plurality of images, the block is one of a first block performing motion prediction and a second block not performing motion prediction according to the conditional probability value of the calculated feature vector. Classifying; And
Generating a prediction block by performing motion prediction on the first block and generating a prediction block on the second block without performing motion prediction on the second block.
참조 프레임 및 현재 프레임에 대하여 1 비트 변환을 수행하는 단계를 더 포함하는 분류기를 이용한 움직임 벡터 추정 방법.The method of claim 1, wherein the motion vector estimation method using the classifier comprises:
And performing a one-bit transform on the reference frame and the current frame.
상기 1 비트 변환을 수행한 상기 참조 프레임 및 현재 프레임에 대하여 이진 블록 움직임 추정 방법을 기초로 움직임 예측을 수행하는 것을 특징으로 하는 분류기를 이용한 움직임 벡터 추정 방법.The method of claim 2, wherein the generating of the prediction block by performing motion prediction on the first block and generating the prediction block without performing the motion prediction on the second block includes:
The motion vector estimation method using a classifier, characterized in that for performing the motion prediction based on a binary block motion estimation method for the reference frame and the current frame on which the 1-bit conversion is performed.
분류에 사용될 특징 벡터를 결정하는 단계; 및
상기 특징 벡터를 산출하기 위한 전처리를 수행하는 단계를 더 포함하는 분류기를 이용한 움직임 벡터 추정 방법.The method of claim 1, wherein the motion vector estimation method using the classifier comprises:
Determining a feature vector to be used for classification; And
And performing a preprocessing to calculate the feature vector.
인코딩하려는 블록에 대한 양자화 계수(Quantization Parameter), 프레임의 사이즈, 블록의 사이즈, 예측 움직임 벡터 크기, 화면 내 부호화된 주변 블록의 수, 스킵 부호화된 주변 블록의 수, 상기 1 비트 변환을 통해 출력된 1의 개수, 이진 변환 시 밴드 패스 필터를 거친 화소값와 원본 화소값의 차이 중 적어도 하나인 것을 특징으로 하는 분류기를 이용한 움직임 벡터 추정 방법.The method of claim 1, wherein the feature vector,
Quantization parameter for the block to be encoded, the size of the frame, the size of the block, the size of the predictive motion vector, the number of encoded neighboring blocks in the screen, the number of skip encoded neighboring blocks, and the output through the 1-bit transform A motion vector estimation method using a classifier, characterized in that at least one of the number of 1, the difference between the pixel value passed through the band pass filter and the original pixel value during binary conversion.
블록의 움직임 예측 벡터를 산출할지 여부를 결정하기 위한 특징 벡터를 산출하는 특징 벡터 산출부; 및
복수의 영상을 이용한 학습 결과로 산출된 조건부 확률값을 기초로, 상기 특징 벡터에 대한 조건부 확률값에 따라 상기 블록에서 움직임 예측을 수행할지 여부를 분류하는 블록 분류부를 포함하는 블록의 움직임 벡터 벡터 추정 여부를 결정하기 위한 분류기.In the classifier for determining whether to estimate the motion vector of the block,
A feature vector calculator for calculating a feature vector for determining whether to calculate a motion prediction vector of the block; And
On the basis of the conditional probability value calculated as a result of learning using a plurality of images, whether to estimate the motion vector vector of the block including a block classification unit for classifying whether to perform the motion prediction in the block according to the conditional probability value for the feature vector Classifier to determine.
소정의 필터링을 수행하여 현재 프레임과 참조 프레임의 1 비트 변환을 수행하는 1 비트 변환부를 더 포함하는 블록의 움직임 벡터 벡터 추정 여부를 결정하기 위한 분류기.The method of claim 8, wherein the classifier for determining whether to estimate the motion vector of the block,
A classifier for determining whether to estimate the motion vector of the block further comprising a one-bit converter for performing one-bit conversion of the current frame and the reference frame by performing a predetermined filtering.
블록을 분류하기 위해 사용될 특징 벡터를 결정하는 특징 벡터 결정부; 및
상기 특징 벡터를 산출하기 위한 전처리를 수행하는 전처리부를 더 포함하는 블록의 움직임 벡터 벡터 추정 여부를 결정하기 위한 분류기.The method of claim 8, wherein the classifier for determining whether to estimate the motion vector of the block,
A feature vector determiner that determines a feature vector to be used to classify the block; And
A classifier for determining whether to estimate the motion vector of the block further comprising a preprocessor for performing the preprocessing for calculating the feature vector.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110030029A KR101241508B1 (en) | 2011-04-01 | 2011-04-01 | Methods of motion vector estimation using classfier and apparatuses for using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110030029A KR101241508B1 (en) | 2011-04-01 | 2011-04-01 | Methods of motion vector estimation using classfier and apparatuses for using the same |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120111516A KR20120111516A (en) | 2012-10-10 |
KR101241508B1 true KR101241508B1 (en) | 2013-03-11 |
Family
ID=47282208
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110030029A KR101241508B1 (en) | 2011-04-01 | 2011-04-01 | Methods of motion vector estimation using classfier and apparatuses for using the same |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101241508B1 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101413364B1 (en) * | 2012-11-09 | 2014-07-03 | 한양대학교 산학협력단 | Method for motion estimation using binary block matching |
KR102178932B1 (en) * | 2018-12-19 | 2020-11-18 | 고려대학교 산학협력단 | Operation device of convolutional neural network capable of skipping an operation of zero of an output feature map and operation method thereof |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR970019616A (en) * | 1995-09-07 | 1997-04-30 | 김주용 | Motion Estimation and Compensation Method by Adaptive Block Partition |
KR19990005282A (en) * | 1997-06-30 | 1999-01-25 | 배순훈 | Hierarchical Motion Estimation Method Using Pattern Classification in Wavelet Transform Domain |
KR20050052756A (en) * | 2003-12-01 | 2005-06-07 | 엘지전자 주식회사 | Moving estimation method |
-
2011
- 2011-04-01 KR KR1020110030029A patent/KR101241508B1/en not_active IP Right Cessation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR970019616A (en) * | 1995-09-07 | 1997-04-30 | 김주용 | Motion Estimation and Compensation Method by Adaptive Block Partition |
KR19990005282A (en) * | 1997-06-30 | 1999-01-25 | 배순훈 | Hierarchical Motion Estimation Method Using Pattern Classification in Wavelet Transform Domain |
KR20050052756A (en) * | 2003-12-01 | 2005-06-07 | 엘지전자 주식회사 | Moving estimation method |
Also Published As
Publication number | Publication date |
---|---|
KR20120111516A (en) | 2012-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100683849B1 (en) | Decoder having digital image stabilization function and digital image stabilization method | |
US20230062752A1 (en) | A method, an apparatus and a computer program product for video encoding and video decoding | |
WO2007092255A2 (en) | Procede et appareil permettant de reutiliser des donnees de mouvement disponibles comme predicteur d'estimation de mouvement pour un codage video | |
JP2012520025A (en) | System and method for processing motion vectors of video data | |
US20230007284A1 (en) | Ultra Light Models and Decision Fusion for Fast Video Coding | |
KR100929608B1 (en) | Video motion estimation method and device using fast global search block matching algorithm | |
KR100723861B1 (en) | Method and Apparatus for fast mode searching for fast motion prediction | |
US9445089B2 (en) | Video encoding device, video encoding method and video encoding program | |
US9055292B2 (en) | Moving image encoding apparatus, method of controlling the same, and computer readable storage medium | |
US20230110503A1 (en) | Method, an apparatus and a computer program product for video encoding and video decoding | |
KR101241508B1 (en) | Methods of motion vector estimation using classfier and apparatuses for using the same | |
JP5938424B2 (en) | Method for reconstructing and encoding image blocks | |
US8687710B2 (en) | Input filtering in a video encoder | |
KR101356821B1 (en) | A motion estimation method | |
US9503740B2 (en) | System and method for open loop spatial prediction in a video encoder | |
JP2012104969A (en) | Motion vector generation device, motion vector generation method and computer program | |
JP5598199B2 (en) | Video encoding device | |
KR100987581B1 (en) | Method of Partial Block Matching for Fast Motion Estimation | |
Lin et al. | A new class-based early termination method for fast motion estimation in video coding | |
KR101349111B1 (en) | Method search multiple reference frames | |
KR101247024B1 (en) | Method of motion estimation and compensation using in-loop preprocessing filtering | |
KR100960966B1 (en) | Fast moving picture motion estimation procedure | |
WO2024002579A1 (en) | A method, an apparatus and a computer program product for video coding | |
Asif | EFFICIENT FRAMEWORK FOR MACROBLOCK PREDICTION AND PARALLEL TASK ASSIGNMENT IN VIDEO CODING | |
Sayyad et al. | (ICIIECS) adaptive advanced video coding by variable window size & block size |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20151214 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20161227 Year of fee payment: 5 |
|
LAPS | Lapse due to unpaid annual fee |