KR100746022B1 - Method and apparatus for encoding video signal with improved compression efficiency using model switching of sub pixel's motion estimation - Google Patents

Method and apparatus for encoding video signal with improved compression efficiency using model switching of sub pixel's motion estimation Download PDF

Info

Publication number
KR100746022B1
KR100746022B1 KR20060035906A KR20060035906A KR100746022B1 KR 100746022 B1 KR100746022 B1 KR 100746022B1 KR 20060035906 A KR20060035906 A KR 20060035906A KR 20060035906 A KR20060035906 A KR 20060035906A KR 100746022 B1 KR100746022 B1 KR 100746022B1
Authority
KR
Grant status
Grant
Patent type
Prior art keywords
model
pixel
sub
compression efficiency
motion estimation
Prior art date
Application number
KR20060035906A
Other languages
Korean (ko)
Other versions
KR20060130488A (en )
Inventor
권녕규
백현기
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Grant date

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television, VOD [Video On Demand]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47202End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting content on demand, e.g. video on demand
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television, VOD [Video On Demand]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/2312Data placement on disk arrays
    • H04N21/2318Data placement on disk arrays using striping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television, VOD [Video On Demand]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of content streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of content streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television, VOD [Video On Demand]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a Uniform Resource Locator [URL] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23602Multiplexing isochronously with the video sync, e.g. according to bit-parallel or bit-serial interface formats, as SDI
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television, VOD [Video On Demand]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2387Stream processing in response to a playback request from an end-user, e.g. for trick-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television, VOD [Video On Demand]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities

Abstract

본 발명의 일 실시예에 따른 서브픽셀 움직임 추정시 모델 스위칭을 통한 압축 효율을 증가시키는 인코딩 방법은 블록에 존재하는 픽셀의 움직임 벡터를 산출하는 단계, 상기 움직임 벡터의 값을 사용하여 제 1 모델 및 제 2 모델을 생성하는 단계, 상기 제 1 모델이 생성하는 예측 오차와 제 2 모델이 생성하는 예측 오차를 비교하는 단계, 및 상기 예측 오차가 작은 모델을 선택하고, 상기 선택한 모델에 따라 서브픽셀에 대한 움직임 예측을 수행하는 단계를 포함한다. The encoding method for increasing compression efficiency by sub-pixel motion estimation when the model switching in accordance with an embodiment of the present invention comprises the steps of calculating a motion vector of a pixel existing on a block, the first model, and using the value of the motion vector the selection step, step, and a small model the prediction error for comparing the prediction error and the prediction error of the second model is produced in which the first model generator for generating a second model, and the sub-pixels according to the selected model, and for performing a motion prediction.
서브 픽셀, 정수 픽셀, 모델 스위칭, 움직임 추정(motion estimation) Sub-pixels, an integer pixel, the switching model, the motion estimate (motion estimation)

Description

서브픽셀 움직임 추정시 모델 스위칭을 통한 압축 효율을 증가시키는 인코딩 방법 및 장치{Method and apparatus for encoding video signal with improved compression efficiency using model switching of sub pixel's motion estimation} Sub-encoding method and apparatus for pixel motion increase the compression efficiency by switching the model estimation {Method and apparatus for encoding video signal with improved compression efficiency using model switching of sub pixel's motion estimation}

도 1은 종래 정수 픽셀과 하프 픽셀을 나타낸 도면이다. 1 is a diagram of a conventional integer pixels and half pixels.

도 2a와 2b는 정수픽셀을 사용하여 하프픽셀 또는 쿼터픽셀의 움직임을 예측하는데 사용되는 모델의 예이다. Figures 2a and 2b are examples of models using integer pixels used for predicting a half-pixel or quarter-pixel motion.

도 3은 본 발명의 일 실시예에 따른 서브픽셀의 움직임 벡터를 예측 모델을 사용하여 계산하는 과정을 보여주는 도면이다. 3 is a view illustrating a process of calculation using the prediction model, a motion vector of a sub pixel according to an embodiment of the present invention.

도 4는 본 발명의 일 실시예에 따른 예측 작업을 수행하는 비디오 인코더의 구성이다. Figure 4 is a block diagram of a video encoder to perform a prediction operation according to an embodiment of the present invention.

도 5는 본 발명의 일 실시예에 따른 정수 픽셀의 모션 벡터를 구한 경우 산출되는 LIN 모델과 QUAD 모델을 보여주는 도면이다. 5 is a view showing the LIN model and the QUAD model, which is calculated when obtaining the motion vector of an integer pixel according to an embodiment of the present invention.

도 6은 본 발명의 일 실시예에 따른 비트율의 관점에서 성능 향상을 비교하는 도면이다. 6 is a graph comparing the improved performance in terms of bit-rate according to one embodiment of the present invention.

<도면의 주요 부분에 대한 부호의 설명> <Description of the Related Art>

400: 비디오 인코더 400: Video Encoder

410: 정수픽셀 계산부 410: integer pixel computation unit

421, 422,..., 429 : 모델 계산부 421, 422, ..., 429: Model calculation unit

430: 모델 선택부 430: model selection unit

450: 움직임 예측 수행부 450: Perform motion estimation unit

본 발명은 비디오 신호를 인코딩하는 방법 및 장치에 관한 것으로, 보다 상세하게는 서브픽셀 움직임 추정시 모델 스위칭을 통한 압축 효율을 증가시키는 인코딩 방법 및 장치에 관한 것이다. The present invention relates to an encoding method and apparatus which increases the compression efficiency by that, more specifically, the sub-pixel motion estimation model when switching to a method and apparatus for encoding a video signal.

비디오 압축 과정중 각 프레임간의 시간적 유사성을 이용하여 현재 프레임의 매크로블록을 압축하기 위해 이전 프레임 중 가장 유사한 영역을 찾는 과정을 움직임 예측(Motion Estimation)이라 한다. It is referred to as video compression, each using the temporal similarities between the frames to predict the process to find the most similar regions of a previous frame in order to compress a macroblock of the current frame motion (Motion Estimation) of the process. 또한, 위의 과정을 통해 계산된 이전 프레임 중 영역을 가르키는 것을 움직임 벡터(Motion Vector)라고 한다. In addition, we say that the point of the previous frame, the area calculated by the above process the motion vectors (Motion Vector). 이때 현재 프레임의 매크로 블록과 이전 프레임의 매크로 블록 크기의 영역에 대한 유사성을 측정하기 위해 영역간 차이를 측정한다. At this time, the current measuring inter-region the difference to determine the similarity of the macro block and the domain of the macroblock size of the previous frame of the frame. 이러한 차이를 블록 매칭 에러라고 한다. This difference is called a block matching error. 이러한 블록 매칭 에러를 측정하기 위해 각 블록의 원소들의 차이의 절대값을 측정하는 SAD(Sum of Absolute Difference), 각 원소의 차이의 평균을 측정하는 MAD(Mean of Absolute Difference), 각 원소의 차이의 제곱의 평균을 측정하는 MSE(Mean of Square Error)등이 사용되며, 이러한 수치가 작을수록 유사한 블록으로 간주된다. Such block matching to determine an error (Sum of Absolute Difference) SAD for measuring the absolute value of the difference of the elements of each block, (Mean of Absolute Difference) MAD for measuring the average of the difference of each element, the difference in each element such as MSE (mean square Error of) is used to measure the average of the squares, the smaller this value is considered in a similar block.

한편, 비디오 압축에서는 압축 효율을 높이기 위해 정수단위의 움직임 벡터가 아닌 하프픽셀(Half-pixel) 혹은 쿼터픽셀(Quarter-pixel) 같은 서브픽셀(Sub-pixel) 단위의 움직임 벡터를 사용하고 있다. Meanwhile, the video compression unit uses the non-integer motion vectors half pixel (Half-pixel) or quarter-pixel (Quarter-pixel) of the sub-pixels (Sub-pixel) motion vector of the unit to increase the compression efficiency. 도 1은 각 정수 픽셀에 대한 하프픽셀(Half-pixel)의 계산방법을 나타내고 있다. 1 shows the calculation method of the half-pixel (Half-pixel) for each integer pixel.

도 1은 종래 정수 픽셀과 하프 픽셀을 나타낸 도면이다. 1 is a diagram of a conventional integer pixels and half pixels. 정수픽셀(A, B, C, D)를 사용하여 수학식 1과 같이 하프픽셀(e, f, g, h)를 구할 수 있다. Using an integer pixel (A, B, C, D) can be determined for the half pixel (e, f, g, h) as shown in equation (1).

e = A e = A

f = (A+B+1)/2 f = (A + B + 1 ) / 2

g = (A+C+1)/2 g = (A + C + 1 ) / 2

h = (A+B+C+D+2)/4 h = (A + B + C + D + 2) / 4

하프픽셀이 가지는 값은 주변의 정수 픽셀이 가지는 값을 통해 예측할 수 있다. Value of the half pixel having a value can be predicted by the surrounding pixel having constant. 그리고 쿼터 픽셀은 그 주변의 하프 픽셀 또는 정수 픽셀의 값을 사용하여 예측할 수 있다. And quarter-pixel can be predicted by using the values ​​of the neighboring half pixels or integer pixels. 하프픽셀 혹은 쿼터픽셀 등 움직임 벡터의 정확도를 높일수록 움직임 예측에 소요되는 탐색점이 많아지게 되며, 이로인해 연산량이 급격하게 높아지게 된다. The higher the precision of half pixel or quarter pixel motion vector, and the like become more points required for motion estimation search, resulting in the amount of operations it becomes higher steeply.

이를 극복하기 위해 서브픽셀 벡터에 해당하는 블록 오차를 계산하지 않고, 정수 단위 벡터에 해당하는 블록들의 움직임 벡터에서 모델링을 하여 서브픽셀 벡터에 해당하는 지점의 오차를 계산하는 모델 기반 서브픽셀 움직임 예측 방법들이 사용되고 있다. To overcome this problem, without calculating the block error that corresponds to the sub-pixel vector, a model-based sub-pixel motion estimation method, the model from the motion vectors of the blocks corresponding to the constant unit vectors to calculate the error of the point corresponding to the sub-pixel vector It is being used.

그러나 이러한 모델 기반 예측 방법은 압축되는 비디오에 따라 정확도가 다르므로, 압축의 효율을 높이기 위해서는 적절한 모델의 적용이 필요하게 된다. However, the model-based prediction method is accurate because it depends on which compressed video, it is necessary to apply the appropriate model in order to increase the efficiency of compression. 그런데, 각 모델의 오차는 영상에 따라 달라지므로, 하나의 모델만을 사용하는 것은 한계가 있다. However, the error of each model is dependent on the image, using a single model is limited. 따라서 보다 정확도가 높은 모델을 사용하여 압축의 효율을 높이는 것이 필요하다. Therefore, using the model with higher accuracy is necessary to improve the efficiency of compression.

본 발명은 상기한 문제점을 개선하기 위해 안출된 것으로, 본 발명은 서브픽셀의 움직임 벡터 값을 예측시 적용할 수 있는 다수의 모델에서 하나의 모델을 선택하여 비디오 신호를 인코딩하는데 목적이 있다. The present invention has been conceived to improve the above problems, the present invention aims to encode the video signal to select one of the models in a number of models that can be applied when a motion vector prediction value of the sub-pixels.

본 발명의 또다른 목적은 비디오 신호가 가지는 특성에 따라 적응적으로 모델을 선택하여 비트 효율을 높이는 것이다. A further object of the invention is to increase the efficiency of bits to select a model adaptively according to the characteristics owned by the video signal.

본 발명의 목적들은 이상에서 언급한 목적들로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다. An object of the present invention are not limited to the above object mentioned above, it is not mentioned yet another object will be able to be clearly understood to those skilled in the art from the following description.

본 발명의 일 실시예에 따른 서브픽셀 움직임 추정시 모델 스위칭을 통한 압축 효율을 증가시키는 인코딩 방법은 블록에 존재하는 픽셀의 움직임 벡터를 산출하는 단계, 상기 움직임 벡터의 값을 사용하여 제 1 모델 및 제 2 모델을 생성하는 단계, 상기 제 1 모델이 생성하는 예측 오차와 제 2 모델이 생성하는 예측 오차를 비교하는 단계, 및 상기 예측 오차가 작은 모델을 선택하고, 상기 선택한 모델에 따라 서브픽셀에 대한 움직임 예측을 수행하는 단계를 포함한다. The encoding method for increasing compression efficiency by sub-pixel motion estimation when the model switching in accordance with an embodiment of the present invention comprises the steps of calculating a motion vector of a pixel existing on a block, the first model, and using the value of the motion vector the selection step, step, and a small model the prediction error for comparing the prediction error and the prediction error of the second model is produced in which the first model generator for generating a second model, and the sub-pixels according to the selected model, and for performing a motion prediction.

본 발명의 일 실시예에 따른 서브픽셀 움직임 추정시 모델 스위칭을 통한 압축 효율을 증가시키는 인코더는 블록에 존재하는 픽셀의 움직임 벡터를 산출하는 픽셀 계산부, 상기 픽셀 계산부의 움직임 벡터의 값을 사용하여 모델을 계산하는 모델 계산부, 상기 모델 계산부에서 계산된 제 1 모델 및 제 2 모델이 각각 생성하는 예측 오차를 비교하여, 상기 예측 오차가 작은 모델을 선택하는 모델 선택부, 및 상기 선택한 모델에 따라 서브픽셀에 대한 움직임 예측을 수행하는 움직임 예측 수행부를 포함한다. An encoder for increasing compression efficiency by sub-pixel motion estimation when the model switching in accordance with an embodiment of the present invention uses the value of the pixel calculation unit, the pixel calculated motion vector unit for calculating a pixel motion vector present in the block to the first model and the second model calculation in the model calculation unit, the model calculation unit arranged to calculate the model compares the prediction error to generate, respectively, the model selection unit, and the selected model to the prediction error is selected, a small model depending it includes parts performing motion prediction for performing the motion prediction for the sub-pixels.

기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다. Specific details of other embodiments are included in the following description and drawings.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. Methods of accomplishing the advantages and features of the present invention and reference to the embodiments that are described later in detail in conjunction with the accompanying drawings will be apparent. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. However, the invention is not limited to the embodiments set forth herein may be embodied in many different forms, but the present embodiments, and the disclosure of the present invention to complete, and ordinary skill in the art is furnished the chair in order to fully convey the concept of the invention to have, the present invention will only be defined by the appended claims. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다 Like reference numerals throughout the specification refer to like elements

이하, 본 발명의 실시예들에 의하여 서브픽셀 움직임 추정시 모델 스위칭을 통한 압축 효율을 증가시키는 인코딩 방법 및 장치를 설명하기 위한 블록도 또는 처리 흐름도에 대한 도면들을 참고하여 본 발명에 대해 설명하도록 한다. Hereinafter, with reference to the drawings of the invention embodiments of the sub-pixel motion estimation when the model encoding method and the block diagram or flowchart for explaining a device to increase the compression efficiency by the switching by the will be described for the present invention . 이 때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. At this time, and combinations of each block and flow chart diagrams of a flow chart diagram will be understood that can be implemented by computer program instructions. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. These computer program instructions general purpose computer, such that the instructions, which special applications it may be mounted on the computer or other programmable data processing processor of the equipment, done through the computer or other programmable data processing apparatus of the processors described in the flowchart block (s) , it creates means for implementing the functions. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. These computer program instructions may also be stored in a computer or other programmable machine can be used in a data processing apparatus that can direct a computer-readable memory to function in a particular manner, that a computer is available or computer readable memory the instructions stored in their it is also possible to produce an article of manufacture including instruction means that implement the function specified in the flowchart block or blocks. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑제되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다. Computer program instructions a computer or other programmable data processing it is also possible that tapje the equipment phase, a computer or other programmable data processing possible series of operational steps are performed a process to produce a computer or other programs running in the computer data on the equipment instructions for performing the processing equipment are also possible to provide steps for implementing the functions specified in the flowchart block or blocks.

또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. In addition, each block of the flowchart illustrations may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function (s). 또, 몇 가지 대체 실행예들에서는 블록들에서 언급된 기능들이 순서를 벗어나 서 발생하는 것도 가능함을 주목해야 한다. In addition, in some alternative implementations, it should be noted that it is possible to generate a document that the functions noted in the blocks out of sequence. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다. For example, it is also possible that is also possible that two blocks shown in succession may in fact performs substantially the same time or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved.

도 2a와 2b는 정수픽셀을 사용하여 하프픽셀 또는 쿼터픽셀의 움직임을 예측하는데 사용되는 모델의 예이다. Figures 2a and 2b are examples of models using integer pixels used for predicting a half-pixel or quarter-pixel motion.

도 2a의 LIN 모델은 각 정수벡터에 대하여 수학식 2과 같은 선형(Linear) 수식 모델 이용하여 서브픽셀의 오차를 추측하는 방법이다. LIN model of Figure 2a is a method of using a linear (Linear) equation model, such as equation (2) assume an error of the sub-pixels for each integer vector.

ε(x) = a|xb|+ c, a > 0, |b| ε (x) = a | xb | + c, a> 0, | b | < 0.5, c > 0 <0.5, c> 0

한편 도 2b의 QUAD 모델은 수학식 3과 같은 2차(quadratic) 수식 모델을 이용하여 서브픽셀의 오차를 추측하는 방법이다. The QUAD model of Figure 2b is a method of using the second (quadratic) equation model, such as Equation (3) assume the error of the sub-pixels.

ε (x) = ax 2 + bx + c, (a > 0) ε (x) = ax 2 + bx + c, (a> 0)

도 2a 또는 도 2b와 같은 모델 기반 예측 방법은 압축되는 비디오에 따라 정확도가 다르므로, 압축의 효율을 높이기 위해서는 적절한 모델의 적용이 필요하게 된다. Model-based predictive methods, such as Figure 2a or Figure 2b is to increase the efficiency of the accuracy varies, compressed according to video compression which is required to apply the appropriate model. 예를 들어 도 2a 에서는 움직임 벡터 또는 모션 벡터(Motion Vector) 1.5에 대하여 최적값으로 예측한 반면, 도 2b에서는 움직임 벡터 1.0을 최적값으로 예측하였다. For example, in Figure 2a, while the prediction to an optimal value with respect to a motion vector or motion vectors (Motion Vector) 1.5, in Figure 2b the predicted motion vector 1.0 as the optimum value. 이때, 각 모델의 오차값을 판단할 수 있다면, 정확도가 높은 모델을 사용하여 압축의 효율을 높일 수 있을 것이다. At this time, if able to determine the error value of each model, by using the high accuracy of the model it will be able to increase the efficiency of compression.

하프픽셀의 움직임 벡터를 계산하기 위해서, 하프픽셀에서의 에러 기준 값(error criterion values)이 풀픽셀(정수픽셀, full pixel)의 에러 기준값에 대해 보간을 통해 측정될 수 있다. In order to calculate a motion vector of a half pixel, the error criterion values ​​at the half pixel (error criterion values) may be determined through interpolation for error reference value of the full pixel (integer pixel, full pixel). 통상 움직임 벡터는 가로와 세로로 존재하므로 각각에 대해 추정을 수행할 수 있다. Conventional motion vector estimation can be performed for each, so there horizontally and vertically.

도 2a 및 2b에서 예시로 한 선형 보간 모델 또는 2차 추정 모델을 적용할 수 있다. It can be applied to linear interpolation model or the second model to estimate illustrated in Figures 2a and 2b. 이러한 추정 모델은 수학적으로 추적 가능하지만 코딩 환경에 따라 압축 효율이 달라질 수 있다. This estimation models are mathematically tracked but the compression efficiency may vary depending on the coding environments. 도 2a, 도 2b 에서 0, 1, 2에서의 값을 토대로 측정 모델을 구현하였으며, 이에 따라 0.5와 1.5의 벡터 값을 추측할 수 있고, 이 값을 인코딩하여 디코더 측에 보낼 수 있다. Figure 2a, was also implement a model based on measured values ​​from 0, 1, 2 in 2b, thus it is possible to guess the vector values ​​of 0.5 and 1.5, it can be sent to the decoder side by encoding the value.

그런데, 하프픽셀 또는 쿼터 픽셀과 같은 서브픽셀의 값을 상기 모델을 통해 계산할 경우에, 어떤 모델을 적용하느냐에 따라 정확도가 달라질 수 있다. By the way, the value of the sub-pixels such as half pixels or quarter pixels in the case calculated from the model, the accuracy varies depending on applying a certain model. 또한, 이런 정확도 역시, 입력된 데이터에 따라 정확도가 달라지므로 모델의 선택이 중요하다. In addition, the accuracy of these, too, because the accuracy is dependent on the input data, it is important to select a model.

따라서, 도 3의 순서도에서 제시한 바와 같이, 서브픽셀의 움직임 벡터를 찾기 위해 모델을 스위칭 하여, 정확도가 높은 모델에서 산출된 서브픽셀의 움직임 벡터를 인코딩하는 것이 필요하다. Thus, as presented in the flow chart of Figure 3, switching to the model in order to find the motion vector of the sub-pixels, it is necessary to encode the motion vector accuracy of the sub-pixel calculated in the higher model.

도 3은 본 발명의 일 실시예에 따른 서브픽셀의 움직임 벡터를 예측 모델을 사용하여 계산하는 과정을 보여주는 도면이다. 3 is a view illustrating a process of calculation using the prediction model, a motion vector of a sub pixel according to an embodiment of the present invention.

먼저 기준이 되는 픽셀의 움직임 벡터를 산출한다(S310). First, calculate the motion vector of a pixel serving as a reference (S310). 예를 들어, 하프 픽셀의 움직임 벡터를 산출하는 경우, 주변의 기준이 되는 정수 픽셀의 움직임 벡 터를 산출할 수 있다. For example, the case of calculating a motion vector of a half pixel, it is possible to calculate the motion vectors of integer pixel which is the peripheral reference. 한편, 쿼터 픽셀의 움직임 벡터를 산출하는 경우, 주변의 하프 픽셀 또는 정수 픽셀의 움직임 벡터를 산출할 수 있다. On the other hand, the case of calculating a motion vector of a quarter-pixel, it is possible to calculate the half-pixel or integer-pixel motion vector of the surrounding. 움직임 벡터는 x와 y 방향 성분으로 표현되므로, x, y 각각에 도 3의 과정을 적용할 수 있다. Motion vectors may be applied to the process of Figure 3 are expressed in the x and y-direction component, x, y, respectively.

기준이 되는 픽셀들의 움직임 벡터를 산출한 결과인 x 및 y 값으로 예측 모델을 생성한다(S320). It generates a predictive model as a result of x and y values ​​calculated for the motion vectors of the pixel serving as a reference (S320). 예측 모델의 실시예는 도 2에서 제시한 LIN 모델 또는 QUAD 모델이 될 수 있다. Example embodiments of the predictive models may be a LIN model or QUAD model presented in Figure 2. 예측 모델을 생성하기 위해서는 참조할 수 있는 정수 픽셀의 x 및 y 벡터의 값을 사용하여, 각 모델에서 사용하는 방정식을 적용할 수 있다. In order to generate a predictive model, using the x and y vector values ​​of integer pixels that can be referred to, it is possible to apply the equations used in each model.

예측 모델은 다양하게 적용 가능하며, 둘 이상의 예측 모델을 생성하면 된다. Prediction models can be variously applied, and when generating the two or more predictive models. 한편, 하나의 예측 모델이라도, 둘 이상의 파라메터 설정에 따라 조금씩 다른 모델을 생성하는 경우에는, 각각 두 개의 모델로 본다. On the other hand, when generating a slightly different model according to any one of the prediction model, more than one parameter set, watch each of two models.

둘 이상의 모델을 생성한 후, 모델에서 구하고자 하는 서브픽셀의 움직임 벡터를 추측한다. After generating two or more models, I guess the subpixel motion vector to obtain the model. 도 2a, 도 2b의 그래프에서 0, 1, 2라는 정수 픽셀의 움직임 벡터를 사용하여 0.5와 1.5의 움직임 벡터의 오차를 계산할 수 있다. Figure 2a, we can calculate the error of the vector of the 0.5 and 1.5 move to the graph of Figure 2b using the motion vector of integer pixel of 0, 1, 2. 계산한 값과 서브픽셀과의 오차를 비교한다(S330). And compares the calculated value and the error between the sub-pixel (S330). S340 단계에서 두 모델 중 제 1 모델에서 예측한 값의 오차가 제 2 모델에서 예측한 값의 오차보다 작은 경우, 제 1 모델이 더 정확하므로 제 1 모델을 적용하여 서브픽셀의 움직임 예측을 수행한다(S350). If the error of the value predicted by the first model of the two models in the S340 step is smaller than the error of the value predicted by the second model, since the first model is more accurate by applying a first model performs the motion prediction of the subpixel (S350).

한편, 제 1 모델에서 예측한 값의 오차가 제 2 모델에서 예측한 값의 오차보다 큰 경우, 제 2 모델이 더 정확하므로 제 2 모델을 적용하여 서브픽셀의 움직임 예측을 수행한다(S360). On the other hand, when the error of the value predicted by the first model is greater than the error of the value predicted by the second model, since the second model is more accurate by applying a second model, and performs motion estimation of a sub-pixel (S360).

상기 모델 선택의 판단은 서브픽셀마다 행해질 수 있으며, 매크로블록 또는 서브블록 단위로도 행해질 수 있다. Determination of the selected model can be performed for each sub-pixel it can also be done on a macroblock or a subblock. 다만, 판단을 자주하게 될 경우 계산량이 늘어나는 문제가 있는 반면, 정확도는 향상되므로 계산량과 정확도 사이에서 인코딩 환경에 따라 여러 방식으로 선택할 수 있다. However, when the judge will often have problems while increasing the computational accuracy can be selected in various ways depending on the encoding environment because improvements between computation and accuracy.

도 3에서 모델을 생성하는 일 실시예를 살펴보면 다음과 같다. Diagram of one embodiment of generating a model from the 3 In the example as follows. 모델을 구한다는 것은 수학식 2와 3의 파라메터를 구하여, 주어진 x값에 대한 결과를 산출하는 수식을 산출하는 것을 일 실시예로 한다. It obtains the model obtain the parameters of the equations (2) and (3), and to calculate a formula to calculate the result for a given x value in one embodiment.

먼저, LIN 모델을 구현하기 위해, 수학식 2를 적용할 수 있다. First, in order to implement the LIN model can be applied to the equation (2). 수학식 2의 x는 0, 1, -1의 값으로 하며, 정수 위치에서의 MAD 에러 값(ε(-1), ε(0), ε(1))을 구하면 수학식 4와 같다. x of Equation (2) and one of the values ​​0, 1, -1, ask the MAD error value (ε (-1), ε (0), ε (1)) in a constant position as in Equation (4).

Figure 112006027688911-pat00001

상기 a, b, c를 계산하기 위해 필요한 벡터 E, X, A는 수학식 5와 같이 정의된다. Wherein a, b, Vector E, X necessary to calculate c, A is defined as in Equation (5). 벡터 E는 x의 위치가 -1, 0, 1인 경우의 MAD 에러값으로 구성된 벡터이며, X는 수학식 4에서 a, ab, c라는 파라메터의 값을 행렬로 나타낸 것이다. Vector E is a vector consisting of a MAD error values ​​obtained when the position of the x -1, 0, a 1, X shows the values ​​of the parameters of a, ab, c in equation (4) in a matrix. 행렬의 관계는 E = XA이다. A relationship of the matrix is ​​E = XA.

Figure 112006027688911-pat00002

상기 수학식 2를 이끌어내기 위해, 백터 행렬은 수학식 6과 같이 구성된다. To derive the above equation 2, the vector matrix is ​​configured as shown in equation (6).

Figure 112006027688911-pat00003

그리고 모델 파라메터는 수학식 7과 같이 산출할 수 있다. And the model parameter may be calculated as shown in Equation (7).

Figure 112006027688911-pat00004

상기 a, b, c의 값은 수학식 7에서 계산 가능하므로 LIN 모델을 생성할 수 있다. The value of the a, b, c may generate the LIN model can be calculated because in equation (7). LIN 모델에 의해 다른 위치의 에러값, 예를 들어, ε(-2)와 ε(2)는 수학식 8과 같이 계산할 수 있다. The error value of the other positions by the LIN model, for example, ε (-2) and ε (2) can be calculated as Equation (8).

Figure 112006027688911-pat00005

한편, QUAD 모델 역시 상기의 과정과 유사하게 산출할 수 있다. On the other hand, QUAD model can also be calculated in analogy to the procedure described above. 수학식 3에 x의 값 -1, 0, 1을 적용하면 수학식 9와 같이 정수 픽셀의 위치에서 에러 값을 산출할 수 있다. Applying a value of -1, 0, 1 for x in the equation (3) it is possible to calculate an error value to the nearest whole number of pixels as in the equation (9).

Figure 112006027688911-pat00006

그리고 수학식 5와 같은 벡터 E, X, A는 수학식 10과 같이 정의된다. And Vector E, X, A, such as the equation (5) is defined as equation (10).

Figure 112006027688911-pat00007

상기 수학식 3을 이끌어내기 위해, 백터 행렬은 수학식 11과 같이 구성된다. To derive the above equation 3, the vector matrix is ​​configured as shown in equation (11). 행렬의 관계는 E = XA이다. A relationship of the matrix is ​​E = XA.

Figure 112006027688911-pat00008

그리고 모델 파라메터는 수학식 12과 같이 산출할 수 있다. And the model parameter may be calculated as shown in Equation 12.

Figure 112006027688911-pat00009

산출된 a, b, c는 수학식 3의 QUAD 모델을 산출하는데 적용되며, QUAD 모델에 의해 다른 위치의 에러값, 예를 들어, ε(-2)와 ε(2)는 수학식 13과 같이 계산할 수 있다. The calculated a, b, c are applied to calculate the QUAD model of equation (3), the error value of the other positions by the QUAD model, for example, ε (-2) and ε (2) is as shown in equation (13) It can be calculated.

Figure 112006027688911-pat00010

전술한 과정은 LIN 모델과 QUAD 모델을 산출하는 일 실시예이며, 모델에 따라 산출하는 과정은 달라질 수 있다. The above-described process is one embodiment for calculating a LIN model and a QUAD model, the process of calculation in accordance with the model may vary.

도 4는 본 발명의 일 실시예에 따른 예측 작업을 수행하는 비디오 인코더의 구성이다. Figure 4 is a block diagram of a video encoder to perform a prediction operation according to an embodiment of the present invention.

도 4의 비디오 인코더(400)는 비디오 신호에 대해 인코딩 및 양자화를 수행하는 구성은 생략한다. The video encoder 400 of Figure 4 is configured to perform the encoding and quantization on a video signal is omitted. 구성은 블록에 존재하는 픽셀의 움직임 벡터를 산출하는 픽셀 계산부의 일 실시예인 정수 픽셀 계산부(410), 그리고 정수 픽셀 계산부의 움직임 벡터의 값을 사용하여 모델을 계산하는 다수의 모델 계산부(421, 422, ..., 429), 모델 계산부에서 계산된 여러 모델 중에서 각 모델의 예측 오차를 비교하여, 예측 오차가 작은 값을 생성하는 모델을 선택하는 모델 선택부(430)과 선택한 모델 에 따라 움직임 예측을 수행하는 움직임 예측 수행부(450)를 포함한다. Configuring a plurality of model calculation section (421 to calculate the model by using the values ​​of the pixels calculated one embodiment integer pixel computation unit 410, and the integer pixel computation motion vector unit portion for calculating a motion vector of a pixel present in the block , 422, ..., 429), the model by comparing the prediction error for each model among the several models calculated by the calculation section, a prediction error is a model selection unit 430, and selecting a selected model to generate a value model depending includes a motion prediction performing unit 450 for performing motion prediction.

정수 픽셀 계산부(410)는 입력된 비디오 신호에서 픽셀의 움직임 벡터를 계산한다. Integer pixel computation unit 410 computes the motion vector of the pixel in the input video signal. 정수 픽셀이 가지는 움직임 벡터는 이후, 서브 픽셀의 움직임 벡터를 예측하는 자료가 된다. A motion vector having an integer pixel is the data to predict the later, a sub-pixel motion vector. 물론, 서브 픽셀의 종류에 따라 정수 픽셀 계산부(410)는 하프픽셀의 움직임 벡터를 계산하여 쿼터 픽셀의 움직임 벡터를 예측하는 자료를 제공할 수 있다. Of course, the integer pixel computation unit 410 according to the type of sub-pixels can provide data to calculate a motion vector of a half-pixel prediction, a motion vector of a quarter pixel. 즉 정수 픽셀 계산부(410)는 보다 작은 단위의 서브픽셀의 움직임 벡터를 예측하는데 필요한 자료를 제공하는 픽셀 계산부의 일 실시예이다. I.e., integer pixel computation unit 410 and more exemplary pixel calculation unit for example to provide data needed to estimate the motion vector of the sub-pixels of the smallest unit.

제 1 모델 계산부(421), 제 2 모델 계산부(422), 제 N 모델 계산부(429)는 정수 픽셀 계산부(410)에서 계산한 결과를 사용하여 예측 모델을 생성한다. First model calculating unit 421, the second model calculator 422, the N model calculation unit 429 generates a prediction model by using the calculation results from the integer pixel computation unit (410). 그리고 예측 모델에 의해 산출될 하프픽셀의 움직임 벡터의 오차를 계산한다. And it calculates an error of a half-pixel motion vector is calculated by the prediction model. 인코더 내에는 모델 계산부가 모델 별로 독자적으로 구현될 수 있으며, 또는 여러 모델을 계산할 수 있는 하나의 모델 계산부가 존재하여, 입력된 정수 픽셀의 정보를 사용하여 다수의 모델을 산출할 수 있다. In the encoder may calculate the model portion may be independently implemented by model, or by a model calculation to calculate a number of model portion is present, calculating a plurality of models using input integer pixel information of the.

모델 선택부(430)는 여러 모델에서 산출한 움직임 벡터의 오차를 비교하여 가장 오차가 작은 값을 선택한다. Model selection unit 430 selects a small value of the error by comparing the errors of a motion vector of the different models. 가장 작은 오차를 가지는 모델을 선택하여 하프 픽셀 또는 쿼터 픽셀의 움직임 벡터를 인코딩 하기 위함이다. Selecting a model having the smallest error and is to encode the motion vector of a half pixel or a quarter pixel.

움직임 예측 수행부(450)는 선택된 모델에 따라 하프 픽셀 또는 쿼터 픽셀과 같은 서브 픽셀의 움직임 벡터를 예측한다. Performing motion estimation unit 450 estimates the motion vector of the sub-pixel such as a half pixel or a quarter pixel according to the selected model. 움직임 예측 수행부(450)는 프레임별로, 또는 매크로 블록, 서브 블록 별로 달리 선택된 모델에 따라 움직임 예측을 수행할 수 있다. Motion prediction performing unit 450 may perform motion prediction according to the selected model, unlike a frame-by-frame basis by, or macro block, sub-block.

도 5는 본 발명의 일 실시예에 따른 정수 픽셀의 모션 벡터를 구한 경우 산출되는 LIN 모델과 QUAD 모델을 보여주는 도면이다. 5 is a view showing the LIN model and the QUAD model, which is calculated when obtaining the motion vector of an integer pixel according to an embodiment of the present invention. 본 발명의 일 실시예에 따라 두 모델 중에서 오차가 적은 것을 선택할 수 있다. According to one embodiment of the present invention can be selected that a small error in the two models. d m 은 모델로부터 예측된 값과 실제 정수 픽셀 서치에서 계산된 값의 차이를 보여준다. m d shows the difference between the value calculated in the predicted values from the model and the actual integer pixel search. 그리고 m은 각 모델을 나타내는 것으로, m ∈ {1 = LIN , 2= QUAD }을 만족한다. And m satisfy the model to represent each, m ∈ {1 = LIN, 2 = QUAD}.

차이인 d m , d m- , d m+ 은 도 5와 같이 나타나며, 수학식 14와 같이 표현될 수 있다. The difference d m, d m-, m + d is indicated as shown in Figure 5, it can be expressed by equation (14).

Figure 112006027688911-pat00011

모델 스위칭은 수학식 15와 같이 나타날 수 있다. Model switching can appear as shown in equation (15).

Figure 112006027688911-pat00012

현 위치에서 가장 작은 차이를 가지는 모델을 선택하여 예측 과정을 수행할 수 있다. Choose a model that has the smallest difference from the current position may perform the prediction process.

둘 이상의 모델이므로, LIN, QUAD 이외에도 여러 모델을 적용하여 그 중에서 가장 작은 차이를 가지는 모델을 선택할 수 있다. Since more than one model, LIN, QUAD addition may be selected that has the smallest difference from the model by applying the different models. 또한, 프로세싱 시간에 따라, 프레임별로 또는 매크로 블록이나 서브 블록 별로 수행할 수 있다. Furthermore, it can be carried out by a frame-by-frame basis or a macroblock or sub-block according to the processing time.

도 6은 본 발명의 일 실시예에 따른 비트율의 관점에서 성능 향상을 비교하는 도면이다. 6 is a graph comparing the improved performance in terms of bit-rate according to one embodiment of the present invention. 도 6에는 네 가지의 비디오 예가 있으며, 각 비디오 예에 따라 LIN 모델과 QUAD 모델의 비트율이 다른 것을 알 수 있다. Figure 6 is an example, and four video, the bit rate of the LIN model and the QUAD model can be seen that different for each video example. 예를 들어, Foreman 또는 Carephone 비디오의 경우에는 LIN 모델을 사용한 경우의 비트율이 QUAD 모델을 사용한 경우의 비트율보다 높고, Mobile, Container 비디오의 경우에는 반대로 LIN 모델을 사용한 경우의 비트율이 QUAD 모델을 사용한 경우의 비트율보다 낮다. For example, for the case of Foreman or Carephone video is higher than the bit rate in the case of using the QUAD model, a bit rate in the case of using the LIN model, in the case of Mobile, Container video, the bit rate of the case opposed to using the LIN model using the QUAD model of lower than the bit rate. 따라서, 어느 하나의 모델만을 사용할 경우 보다 본 발명의 구현에 따를 경우, 비트율이 일정 수준을 유지할 수 있다. Thus, when following the implementation of the invention than when using only one of the models, the bit rate can be maintained to a certain level.

본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. One of ordinary skill in the art will appreciate that the present invention without changing departing from the scope and spirit be embodied in other specific forms. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. Thus the embodiments described above are only to be understood as illustrative and non-restrictive in every respect. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구의 범위에 의하여 나타내어지며, 특허청구의 범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다. The scope of the present invention to fall within the scope of the is represented by the claims below rather than the foregoing description, and all such modifications as derived from the meaning and range and equivalents concept of the claims of this invention It should be interpreted.

본 발명을 구현함으로써 서브픽셀의 움직임 벡터 값을 예측시 적용할 수 있는 다수의 모델에서 하나의 모델을 선택하여 비디오 신호를 인코딩할 수 있다. By implementing the present invention, it is possible to encode the video signal to select one of the models in a number of models that can be applied when a motion vector prediction value of the sub-pixels.

본 발명을 구현함으로써 비디오 신호가 가지는 특성에 따라 적응적으로 모델을 선택하여 비트 효율을 높일 수 있다. By implementing the present invention can improve the bit efficiency by selecting the model adaptively according to the characteristics owned by the video signal.

Claims (10)

  1. 블록에 존재하는 픽셀의 움직임 벡터를 산출하는 단계; Calculating a motion vector of a pixel existing on a block;
    상기 움직임 벡터의 값을 사용하여 제 1 모델 및 제 2 모델을 생성하는 단계; Generating a first model and a second model using the value of the motion vector;
    상기 제 1 모델이 생성하는 예측 오차와 제 2 모델이 생성하는 예측 오차를 비교하는 단계; Comparing the prediction error to the prediction error and generates the second model to the first model generation; And
    상기 예측 오차가 작은 모델을 선택하고, 상기 선택한 모델에 따라 서브픽셀에 대한 움직임 예측을 수행하는 단계를 포함하는, 서브픽셀 움직임 추정시 모델 스위칭을 통한 압축 효율을 증가시키는 인코딩 방법. The encoding method of the prediction error, select the small model, increasing the compression efficiency by including the step of performing the motion prediction for the sub-pixels according to the selected model, a sub-pixel motion estimation model during switching.
  2. 제 1항에 있어서, According to claim 1,
    상기 블록은 매크로 블록 또는 서브 매크로 블록인, 서브픽셀 움직임 추정시 모델 스위칭을 통한 압축 효율을 증가시키는 인코딩 방법. The block encoding method for increasing compression efficiency by a macroblock or sub macroblock in the sub-pixel motion estimation model when switching.
  3. 제 1항에 있어서, According to claim 1,
    상기 제 1 모델 또는 상기 제 2 모델은 LIN 모델 또는 QUAD 모델중 하나인, 서브픽셀 움직임 추정시 모델 스위칭을 통한 압축 효율을 증가시키는 인코딩 방법. The first model or the second model is a method for encoding, one of the LIN model or QUAD model, increasing the compression efficiency by the sub-pixel motion estimation model during switching.
  4. 제 1항에 있어서, According to claim 1,
    상기 픽셀이 정수 픽셀인 경우, 상기 서브 픽셀은 하프픽셀 또는 쿼터 픽셀인, 서브픽셀 움직임 추정시 모델 스위칭을 통한 압축 효율을 증가시키는 인코딩 방법. If the pixel is an integer pixel, the sub-pixel encoding method for increasing compression efficiency by a half pixel or quarter pixel of a sub-pixel motion estimation model during switching.
  5. 제 1항에 있어서, According to claim 1,
    상기 픽셀이 하프 픽셀인 경우, 상기 서브 픽셀은 쿼터 픽셀인, 서브픽셀 움직임 추정시 모델 스위칭을 통한 압축 효율을 증가시키는 인코딩 방법. If it said pixel is a half pixel, the sub-pixel encoding method for increasing compression efficiency by a quarter pixel, sub-pixel motion estimation model during switching.
  6. 블록에 존재하는 픽셀의 움직임 벡터를 산출하는 픽셀 계산부; Pixel calculation unit for calculating a motion vector of a pixel existing on a block;
    상기 픽셀 계산부의 움직임 벡터의 값을 사용하여 모델을 계산하는 모델 계산부; Model calculation unit arranged to calculate the model by using the value of the pixel motion vector calculating portion;
    상기 모델 계산부에서 계산된 제 1 모델 및 제 2 모델이 각각 생성하는 예측 오차를 비교하여, 상기 예측 오차가 작은 모델을 선택하는 모델 선택부; The model by comparing the first model and the prediction error of the second model is generated, respectively calculated in the calculation unit, model selection unit that selects the smaller the prediction error model; And
    상기 선택한 모델에 따라 서브픽셀에 대한 움직임 예측을 수행하는 움직임 예측 수행부를 포함하는, 서브픽셀 움직임 추정시 모델 스위칭을 통한 압축 효율을 증가시키는 인코더. An encoder for increasing compression efficiency by, depending on the selected model including a performing motion prediction for performing the motion prediction for the sub-pixel, a sub-pixel motion estimation model during switching.
  7. 제 6항에 있어서, 7. The method of claim 6,
    상기 블록은 매크로 블록 또는 서브 매크로 블록인, 서브픽셀 움직임 추정시 모델 스위칭을 통한 압축 효율을 증가시키는 인코더. The block encoder to increase the compression efficiency by the macroblock or sub macroblock in the sub-pixel motion estimation model when switching.
  8. 제 6항에 있어서, 7. The method of claim 6,
    상기 제 1 모델 또는 상기 제 2 모델은 LIN 모델 또는 QUAD 모델중 하나인, 서브픽셀 움직임 추정시 모델 스위칭을 통한 압축 효율을 증가시키는 인코더. The first model or the encoder of the second model, one of the LIN model or QUAD model, increasing the compression efficiency by the sub-pixel motion estimation model during switching.
  9. 제 6항에 있어서, 7. The method of claim 6,
    상기 픽셀이 정수 픽셀인 경우, 상기 서브 픽셀은 하프픽셀 또는 쿼터 픽셀인, 서브픽셀 움직임 추정시 모델 스위칭을 통한 압축 효율을 증가시키는 인코더. If the pixel is an integer pixel, the subpixel includes an encoder for increasing compression efficiency by a half pixel or quarter pixel of a sub-pixel motion estimation model during switching.
  10. 제 6항에 있어서, 7. The method of claim 6,
    상기 픽셀이 하프 픽셀인 경우, 상기 서브 픽셀은 쿼터 픽셀인, 서브픽셀 움직임 추정시 모델 스위칭을 통한 압축 효율을 증가시키는 인코더. If said pixel is a half pixel, the encoder of the subpixel increases compression efficiency by a quarter pixel, sub-pixel motion estimation model during switching.
KR20060035906A 2005-06-14 2006-04-20 Method and apparatus for encoding video signal with improved compression efficiency using model switching of sub pixel's motion estimation KR100746022B1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US69013105 true 2005-06-14 2005-06-14
US60/690,131 2005-06-14
KR20060035906A KR100746022B1 (en) 2005-06-14 2006-04-20 Method and apparatus for encoding video signal with improved compression efficiency using model switching of sub pixel's motion estimation

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
KR20060035906A KR100746022B1 (en) 2005-06-14 2006-04-20 Method and apparatus for encoding video signal with improved compression efficiency using model switching of sub pixel's motion estimation
JP2006160458A JP4467541B2 (en) 2005-06-14 2006-06-09 Encoding method and apparatus to increase the compression efficiency through model switching during the motion estimation of a sub-pixel
DE200660011537 DE602006011537D1 (en) 2005-06-14 2006-06-12 Coding and method for encoding the motion estimation.
EP20060115313 EP1734769B1 (en) 2005-06-14 2006-06-12 An encoder and encoding method for motion estimation
CN 200610087151 CN1882085A (en) 2005-06-14 2006-06-13 Method and apparatus for encoding video signal with improved compression efficiency
US11452278 US20060280252A1 (en) 2005-06-14 2006-06-14 Method and apparatus for encoding video signal with improved compression efficiency using model switching in motion estimation of sub-pixel

Publications (2)

Publication Number Publication Date
KR20060130488A true KR20060130488A (en) 2006-12-19
KR100746022B1 true KR100746022B1 (en) 2007-08-06

Family

ID=36829763

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20060035906A KR100746022B1 (en) 2005-06-14 2006-04-20 Method and apparatus for encoding video signal with improved compression efficiency using model switching of sub pixel's motion estimation

Country Status (6)

Country Link
US (1) US20060280252A1 (en)
EP (1) EP1734769B1 (en)
JP (1) JP4467541B2 (en)
KR (1) KR100746022B1 (en)
CN (1) CN1882085A (en)
DE (1) DE602006011537D1 (en)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7953152B1 (en) 2004-06-28 2011-05-31 Google Inc. Video compression and encoding method
US8606966B2 (en) * 2006-08-28 2013-12-10 Allot Communications Ltd. Network adaptation of digital content
US20080062322A1 (en) * 2006-08-28 2008-03-13 Ortiva Wireless Digital video content customization
US7743161B2 (en) * 2006-10-10 2010-06-22 Ortiva Wireless, Inc. Digital content buffer for adaptive streaming
KR100843403B1 (en) 2006-12-19 2008-07-03 삼성전기주식회사 Device for Lens Transfer
US20080212679A1 (en) * 2007-03-02 2008-09-04 Meng-Chun Lin Motion estimation with dual search windows for high resolution video coding
JP5259726B2 (en) 2007-11-30 2013-08-07 ドルビー ラボラトリーズ ライセンシング コーポレイション Temporal smoothing of motion estimation
US8213515B2 (en) * 2008-01-11 2012-07-03 Texas Instruments Incorporated Interpolated skip mode decision in video compression
FR2933520B1 (en) * 2008-07-04 2011-02-11 Canon Kk Method and a video sequence recovery device
KR101505815B1 (en) * 2009-12-09 2015-03-26 한양대학교 산학협력단 The motion estimation method having a sub-pixel accuracy and an apparatus, a video encoder using the same.
FR2980068A1 (en) 2011-09-13 2013-03-15 Thomson Licensing Method of encoding and reconstructing a block of pixels and corresponding devices
CN102841356A (en) * 2012-09-21 2012-12-26 中国航空无线电电子研究所 Multi-model compressing method for transmitting general aircraft longitude and latitude position data by beidou equipment
CN104837027B (en) * 2015-04-20 2018-04-27 北京奇艺世纪科技有限公司 Motion estimation method and apparatus for sub-pixels

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003333604A (en) 2002-04-10 2003-11-21 Microsoft Corp Method and system for vector conversion
KR20040106202A (en) * 2003-06-11 2004-12-17 학교법인 대양학원 Method and apparatus for motion vector search
JP2006093881A (en) 2004-09-21 2006-04-06 Canon Inc Image-coding device and method therefor, computer program, and computer-readable storage medium

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5812199A (en) * 1996-07-11 1998-09-22 Apple Computer, Inc. System and method for estimating block motion in a video image sequence
FR2779257B1 (en) * 1998-05-27 2000-08-11 France Telecom A method of detecting the relative depth between objects in an image from a pair of images
DE60003070T2 (en) * 1999-08-11 2004-04-01 Nokia Corp. Adaptive motion vector field coding
EP1279293A1 (en) * 2000-01-21 2003-01-29 Nokia Corporation A motion estimation method and a system for a video coder
US6711211B1 (en) * 2000-05-08 2004-03-23 Nokia Mobile Phones Ltd. Method for encoding and decoding video information, a motion compensated video encoder and a corresponding decoder
FR2814312B1 (en) * 2000-09-07 2003-01-24 France Telecom Process for segmenting a video image surface by elementary objects
US6782054B2 (en) * 2001-04-20 2004-08-24 Koninklijke Philips Electronics, N.V. Method and apparatus for motion vector estimation
CN101448162B (en) * 2001-12-17 2013-01-02 微软公司 Method for processing video image
KR20050062836A (en) * 2003-12-18 2005-06-28 학교법인 대양학원 Transcoding method and apparatus
WO2006010276A1 (en) * 2004-07-30 2006-02-02 Algolith Inc Apparatus and method for adaptive 3d artifact reducing for encoded image signal
KR100692600B1 (en) * 2005-02-22 2007-03-13 삼성전자주식회사 Apparatus and method for estimating motion

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003333604A (en) 2002-04-10 2003-11-21 Microsoft Corp Method and system for vector conversion
KR20040106202A (en) * 2003-06-11 2004-12-17 학교법인 대양학원 Method and apparatus for motion vector search
JP2006093881A (en) 2004-09-21 2006-04-06 Canon Inc Image-coding device and method therefor, computer program, and computer-readable storage medium

Also Published As

Publication number Publication date Type
CN1882085A (en) 2006-12-20 application
EP1734769A1 (en) 2006-12-20 application
US20060280252A1 (en) 2006-12-14 application
KR20060130488A (en) 2006-12-19 application
EP1734769B1 (en) 2010-01-06 grant
JP4467541B2 (en) 2010-05-26 grant
JP2006352863A (en) 2006-12-28 application
DE602006011537D1 (en) 2010-02-25 grant

Similar Documents

Publication Publication Date Title
US20090116759A1 (en) Video encoding device, video encoding method, video encoding program, video decoding device, video decoding method, and video decoding program
US20060233258A1 (en) Scalable motion estimation
US20040076333A1 (en) Adaptive interpolation filter system for motion compensated predictive video coding
US20020131500A1 (en) Method for determining a motion vector for a video signal
US20110261886A1 (en) Image prediction encoding device, image prediction encoding method, image prediction encoding program, image prediction decoding device, image prediction decoding method, and image prediction decoding program
US20050238103A1 (en) Method and apparatus for performing high quality fast predictive motion search
US20080232705A1 (en) Method and apparatus for image encoding and image decoding
US20100080297A1 (en) Techniques to perform fast motion estimation
US20040028134A1 (en) Method and apparatus for determining block match quality
US20060045186A1 (en) Apparatus and method for coding moving picture
US7620109B2 (en) Sub-pixel interpolation in motion estimation and compensation
US20100091846A1 (en) Image prediction/encoding device, image prediction/encoding method, image prediction/encoding program, image prediction/decoding device, image prediction/decoding method, and image prediction decoding program
US20050276330A1 (en) Method and apparatus for sub-pixel motion estimation which reduces bit precision
US20080310509A1 (en) Sub-pixel Interpolation and its Application in Motion Compensated Encoding of a Video Signal
JP2009201112A (en) Coding and decoding methods for direct mode
US20050123039A1 (en) Motion estimation method for motion picture encoding and recording medium having program recorded thereon to implement the motion estimation method
KR100275694B1 (en) Hierarchical search block matching method by using multiple motion vector candidates
US6507617B1 (en) Video coding
CN101686393A (en) Fast-motion searching method and fast-motion searching device applied to template matching
WO2010064396A1 (en) Moving picture decoding method and moving picture encoding method
US20060285597A1 (en) Reusing interpolated values in advanced video encoders
US20060203912A1 (en) Motion vector detection method, motion vector detection apparatus, computer program for executing motion vector detection process on computer
JPH09172644A (en) Moving image coding/decoding device using moving compensation inter-frame prediction system employing affine transformation
JP2005244749A (en) Dynamic image encoding device
WO2010035370A1 (en) Dynamic image encoding method and dynamic image decoding method

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130624

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140619

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150624

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee