KR20100100540A - Moving pictures encoder/decoder and method for determining block mode for encoding/decoding moving pictures in the moving pictures encoder/decoder - Google Patents

Moving pictures encoder/decoder and method for determining block mode for encoding/decoding moving pictures in the moving pictures encoder/decoder Download PDF

Info

Publication number
KR20100100540A
KR20100100540A KR20090019504A KR20090019504A KR20100100540A KR 20100100540 A KR20100100540 A KR 20100100540A KR 20090019504 A KR20090019504 A KR 20090019504A KR 20090019504 A KR20090019504 A KR 20090019504A KR 20100100540 A KR20100100540 A KR 20100100540A
Authority
KR
South Korea
Prior art keywords
mode
macroblock
block
motion prediction
video
Prior art date
Application number
KR20090019504A
Other languages
Korean (ko)
Inventor
조대성
최웅일
송관웅
주영훈
김용석
심동규
박시내
조현호
Original Assignee
삼성전자주식회사
광운대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사, 광운대학교 산학협력단 filed Critical 삼성전자주식회사
Priority to KR20090019504A priority Critical patent/KR20100100540A/en
Priority to PCT/KR2010/001364 priority patent/WO2010101427A2/en
Publication of KR20100100540A publication Critical patent/KR20100100540A/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/57Motion estimation characterised by a search window with variable size or shape
    • 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/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • 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/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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/567Motion estimation based on rate distortion criteria

Landscapes

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

Abstract

PURPOSE: Moving pictures encoder/decoder and a method for determining a block mode for encoding/decoding moving pictures in the moving pictures encoder/decoder are provided to efficiently reduce the operation amount of the encoder/decoder by increasing the speed of a motion prediction operation. CONSTITUTION: When a video frame is inputted to a video encoder, a motion estimator performs the motion prediction of 4×4, 8×8 and 16×16 blocks(S70,S72). The video encoder determines candidate modes(S74), and calculates a rate-distortion value for each candidate mode(S76). In addition video encoder determines an optimal block mode(S78), and encodes a video frame(S80).

Description

동영상 부호화기/복호화기 및 그 동영상 부호화기/복호화기에서의 동영상 부호화/복호화를 위한 블록모드 결정방법{MOVING PICTURES ENCODER/DECODER AND METHOD FOR DETERMINING BLOCK MODE FOR ENCODING/DECODING MOVING PICTURES IN THE MOVING PICTURES ENCODER/DECODER}MOVING PICTURES ENCODER / DECODER AND METHOD FOR DETERMINING BLOCK MODE FOR ENCODING / DECODING MOVING PICTURES IN THE MOVING PICTURES ENCODER / DECODER}

본 발명은 동영상 부호화/복호화를 위한 블록모드 결정방법 및 그를 위한 동영상 부호화기/복호화기에 관한 것이며, 더욱 자세히는 동영상 부호화/복호화시에 많은 연산량이 소요되는 움직임 예측 동작을 고속화함으로써 연산량을 효과적으로 감소시킬 수 있는 동영상 부호화를 위한 블록모드 결정방법 및 그를 위한 동영상 부호화기에 관한 것이다.The present invention relates to a method of determining a block mode for video encoding / decoding and a video encoder / decoder for the same. More particularly, the amount of computation can be effectively reduced by speeding up a motion prediction operation that requires a large amount of computation during video encoding / decoding. The present invention relates to a block mode determination method for encoding a moving picture and a video encoder therefor.

ITU-T와 MPEG(Moving Picture Experts Group)은 초기에 개발된 MPEG4와 H.263에 비해  우수하고 뛰어난 비디오 이미지 압축 성능을 제공하는 새로운 표준안인 H.264/AVC를 개발하였으며, 이러한 H.264/AVC가 가진 잠재적인 영향력 때문에 H.264/AVC는 오늘날 디지털 비디오 시스템의 주를 이루는 MPEG2 시스템을 대체할 것으로 보여진다. 또한 H.264/AVC의 동영상 압축 표준은 고압축률 및 고화질을 보장하므로 HDTV 시스템이나 향후 양방향 TV 등의 높은 대역폭을 요구하는 시스템에 서도 매우 효과적인 동영상 압축 표준으로 적용될 것으로 예상된다. ITU-T and Moving Picture Experts Group (MPEG) have developed H.264 / AVC, a new standard that provides superior and superior video image compression performance compared to earlier developed MPEG4 and H.263. Because of the potential impact of AVC, H.264 / AVC is expected to replace the MPEG2 system, which dominates today's digital video systems. In addition, H.264 / AVC's video compression standard guarantees high compression rate and high picture quality, so it is expected to be applied as a very effective video compression standard even in high bandwidth system such as HDTV system or future interactive TV.

한편 H.264/AVC는 압축 효율이 높은 반면 복잡도가 매우 높은 단점이 있으며, 특히 비디오 트랜스코딩(Video Transcoding)을 수행하는 트랜스코더(Transcoder)는 디코더(Decoder)와 인코더(Encoder)를 포함하는 구도를 가짐에 따라 복잡도를 더욱 증가시키고 있다. On the other hand, H.264 / AVC has a high compression efficiency but a very high complexity. Especially, a transcoder that performs video transcoding includes a decoder and an encoder. As we increase the complexity.

일반적으로 부호화기의 연산량은 전체 부호화에 소요되는 연산량에 절대적인 영향을 주게 되고, 특히 다양한 블록모드와 여러장의 참조영상을 사용하는 H.264/AVC의 경우 움직임 예측에 대한 복잡도가 매우 높다. 예컨대 H.264/AVC 압축 부호화 방식과 같이 한 장 이상의 순방향 및 역방향 참조 프레임에 대해 움직임 예측을 수행하게 되는 경우 그 복잡도는 매우 높으며, 264/AVC의 경우 시간적 스케일러빌러티(Scalability)를 갖기 위해 계층적 B-픽처를 사용할 수 있는데, 계층적 B-픽처를 사용한 경우에 대해 다양한 블록을 사용하여 움직임 예측을 수행할 경우 그 복잡도는 기하급수적으로 증가하게 된다. In general, the amount of computation of an encoder has an absolute influence on the amount of computation required for the entire encoding. In particular, in the case of H.264 / AVC using various block modes and multiple reference images, the complexity of motion prediction is very high. For example, when the motion prediction is performed on one or more forward and backward reference frames such as the H.264 / AVC compression coding scheme, the complexity is very high. In the case of 264 / AVC, the hierarchical scalability is required to have temporal scalability. Red B-pictures can be used, and the complexity increases exponentially when motion prediction is performed using various blocks for hierarchical B-pictures.

도 1은 종래기술에 따른 동영상 부호화기의 고속 움직임 모드 결정방법을 도시한 순서도이다. 1 is a flowchart illustrating a method of determining a fast motion mode of a video encoder according to the prior art.

도 1을 참조하면 동영상 부호화기는 먼저 입력된 영상의 현재프레임에 대해 참조프레임을 입력영상으로 하는 입력영상 단계(S10)와, 스킵(SKIP)/직접(Direct) 및 16×16 블록모드 움직임 예측 및 보상 단계(S12)와, 스킵(SKIP)/직접(Direct) 모드 및 16×16 모드 율-왜곡(RD) 비용 계산 단계(S14)와, 16×16 블록모드 가설 검증 단계(S16)와, 가설 검증 통계량의 신뢰구간 존재 여부 판정 단계(S18)와, 16 ×8, 8×16 및 8×8 블록모드 움직임 예측 및 보상 단계(S20)와, 16×8, 8×16 및 8×8 블록모드 율-왜곡(RD) 비용 계산 단계(S122)와, 8×8 블록모드 율-왜곡 비용의 최소여부판정, 즉 8×8 블록모드 가설 검증 단계(S24)와, 가설 검증 통계량의 신뢰구간 존재 여부 판정 단계(S26)와, 8×4, 4×8 및 4×4 블록모드 움직임 예측 및 보상 단계(S28)와, 8×4, 4×8 및 4×4 블록모드 율-왜곡(RD) 비용 계산 단계(S30)와, 최소 율-왜곡(RD) 비용 결정 및 최종 움직임 블록모드 결정 단계(S32)들이 연계되어 지속적으로 수행된다. Referring to FIG. 1, the video encoder first inputs an input image step S10 of using the reference frame as the input image with respect to the current frame of the input image, skips (SKIP) / direct (Direct) and 16 × 16 block mode motion prediction, and Compensation step S12, skip / direct mode and 16x16 mode rate-distortion (RD) cost calculation step (S14), 16x16 block mode hypothesis verification step (S16), hypothesis Determining whether there is a confidence interval of the verification statistics (S18), 16x8, 8x16, and 8x8 block mode motion prediction and compensation step (S20), and 16x8, 8x16, and 8x8 block modes Whether the rate-distortion (RD) cost calculation step (S122), the minimum determination of the 8 × 8 block mode rate-distortion cost, that is, the 8 × 8 block mode hypothesis verification step (S24), and the confidence interval of the hypothesis test statistics Determination step S26, 8x4, 4x8 and 4x4 block mode motion prediction and compensation step S28, and 8x4, 4x8 and 4x4 block mode rate-distortion (RD) cost Calculation step (S30), Minimum rate-distortion (RD) cost determination and final motion block mode determination steps S32 are continuously performed in conjunction.

전술한 바와 같이, 움직임 모드 결정에서, 16×16 매크로블록에 대해 가설 검증을 수행(S18)함에 있어 검증통계량 값이 주어진 신뢰구간 내에 존재할 경우 최종 움직임 모드를 16×16 블록모드로 결정함으로써, 움직임 모드 예측 및 보상 과정을 조기에 마칠 수 있다. 이러한 경우 하위 16×8, 8×16 및 8×8 블록모드에 대한 움직임 예측 및 보상 과정을 수행하지 않아도 된다. As described above, in the determination of the motion mode, when performing the hypothesis verification on the 16 × 16 macroblock (S18), if the verification statistic value exists within a given confidence interval, the final motion mode is determined as the 16 × 16 block mode. The mode prediction and compensation process can be completed early. In this case, the motion prediction and compensation process for the lower 16x8, 8x16, and 8x8 block modes may not be performed.

만약 검증통계량 값이 주어진 신뢰구간 내에 존재하지 않을 경우, 16×8, 8×16 및 8×8 블록모드에 대해 움직임 예측 및 보상과정을 수행한 후(S20), 율-왜곡 비용을 계산한다(S22). 여기서, 16×8 또는 8×16 블록모드가 최소 율-왜곡 비용 값을 발생시키면, 최종 움직임 블록모드를 16×8 또는 8×16 블록모드로 정한다(S24). 그러나, 8×8 블록모드가 최소 율-왜곡 비용 값을 발생시킬 경우 이에 대해 가설 검증 과정을 수행하고(S26), 검증 통계량 값이 신뢰구간에 존재하면 8×8 블록모드를 최종 움직임 블록모드로 결정한 후, 움직임 예측 및 보상 과정을 종료한다(S32). If the verification statistic value does not exist within the given confidence interval, after performing the motion prediction and compensation process for the 16x8, 8x16, and 8x8 block modes (S20), the rate-distortion cost is calculated ( S22). Here, when the 16x8 or 8x16 block mode generates the minimum rate-distortion cost value, the final motion block mode is determined as the 16x8 or 8x16 block mode (S24). However, if the 8 × 8 block mode generates the minimum rate-distortion cost value, the hypothesis verification process is performed (S26). After the determination, the motion prediction and compensation process ends (S32).

만약, 검증통계량 값이 주어진 신뢰구간 내에 존재하지 않을 경우, 8×4, 4×8 및 4×4 블록모드에 대해 움직임 예측 및 보상과정을 수행한 후(S28), 율-왜곡 비용 값을 계산한다(S30). 여기서, 최소 율-왜곡 비용 값을 발생시키는 블록모드가 최종 움직임 모드로 결정된다. If the verification statistic value does not exist within the given confidence interval, after performing the motion prediction and compensation process for 8x4, 4x8 and 4x4 block modes (S28), the rate-distortion cost value is calculated. (S30). Here, the block mode that generates the minimum rate-distortion cost value is determined as the final motion mode.

이와 같은 종래의 연산 방식은 복잡도가 높아 실질적으로는 실시간으로 동작하는 동영상 부호화기를 구현하는데 많은 걸림돌로 작용되어 왔으며, 그에 따라 움직임 예측시에 소프트웨어가 아닌 하드웨어에만 연산을 의존하게 만드는 문제점도 있다. 따라서 동영상 부호화시에 많은 연산량이 소요되는 움직임 예측 동작을 고속화함으로써 연산량을 효과적으로 감소시킬 수 있는 방법이 요구된다. Such a conventional computation method has a lot of obstacles in implementing a video encoder that operates in real time due to its high complexity, and accordingly, there is a problem that the computation depends only on hardware, not software, when predicting motion. Therefore, there is a need for a method capable of effectively reducing the amount of computation by speeding up a motion prediction operation that requires a large amount of computation during video encoding.

본 발명의 목적은 동영상 부호화시에 많은 연산량이 소요되는 움직임 예측 동작을 고속화함으로써 연산량을 효과적으로 감소시킬 수 있는 동영상 부호화를 위한 블록모드 결정방법 및 그를 위한 동영상 부호화기을 제공함에 있다. An object of the present invention is to provide a block mode determination method for video encoding and a video encoder therefor, which can effectively reduce the amount of computation by speeding up a motion prediction operation that requires a large amount of computation during video encoding.

본 발명에 따른 동영상 부호화를 위한 블록모드 결정방법은, 부호화할 동영상이 입력되면, 상기 동영상 중 기 저장된 크기의 매크로블록에 대하여 매크로블록 단위별로 움직임 예측을 수행하는 과정과, 상기 움직임 예측에 따라 상기 매크로블록이 가지는 블록모드들 중 적어도 하나를 후보모드로 선택하는 과정과, 상기 적어도 하나의 후보모드 각각에 대응하는 율-왜곡값을 계산하는 과정과, 상기 율-왜곡값의 계산결과에 따라 상기 적어도 하나의 후보모드 중 어느 하나를 최적의 블록모드로 결정하는 과정을 포함한다.According to an embodiment of the present invention, a method of determining a block mode for encoding a video may include: performing motion prediction on a macroblock of a previously stored size in units of macroblocks when a video to be encoded is input, and according to the motion prediction. Selecting at least one of the block modes of the macroblock as a candidate mode, calculating a rate-distortion value corresponding to each of the at least one candidate mode, and calculating the rate-distortion value according to the calculation result of the rate-distortion value Determining one of the at least one candidate mode as an optimal block mode.

본 발명에 따른 블록모드 결정하는 동영상 부호화기는, 부호화할 동영상이 입력되면, 상기 동영상 중 기 저장된 크기의 매크로블록에 대하여 매크로블록 단위별로 움직임 예측을 수행하고, 상기 움직임 예측에 따라 상기 매크로블록이 가지는 블록모드들 중 적어도 하나의 후보모드가 선택되면, 상기 적어도 하나의 후보모드 각각에 대응하는 율-왜곡값을 계산하는 움직임 추정기와, 상기 매크로블록이 가지는 블록모드들 중 적어도 하나의 후보모드를 선택하고, 상기 율-왜곡값의 계산결과에 따라 상기 적어도 하나의 후보모드 중 어느 하나를 최적의 블록모드로 결정하는 매크로블록 모드 결정기를 포함한다.The video encoder for determining a block mode according to the present invention, when a video to be encoded is input, performs a motion prediction for each macroblock of a stored size of the video for each macroblock unit, and has the macroblock according to the motion prediction. Selecting at least one candidate mode among block modes included in the macroblock when the at least one candidate mode is selected, a motion estimator for calculating a rate-distortion value corresponding to each of the at least one candidate mode; And a macroblock mode determiner for determining any one of the at least one candidate mode as an optimal block mode according to the calculation result of the rate-distortion value.

본 발명에 따른 동영상 복호화를 위한 블록모드 결정방법은, 복호화할 비트스트림이 입력되면, 상기 비트스트림 중 기 저장된 크기의 매크로블록에 대하여 매크로블록 단위별로 움직임 예측을 수행하는 과정과, 상기 움직임 예측에 따라 상기 매크로블록이 가지는 블록모드들 중 적어도 하나를 후보모드로 선택하는 과정과, 상기 적어도 하나의 후보모드 각각에 대응하는 율-왜곡값을 계산하는 과정과, 상기 율-왜곡값의 계산결과에 따라 상기 적어도 하나의 후보모드 중 어느 하나를 최적의 블록모드로 결정하는 과정을 포함한다.The method for determining a block mode for video decoding according to the present invention includes, when a bitstream to be decoded is input, performing motion prediction on a macroblock of a previously stored size in units of macroblocks; Selecting at least one of the block modes of the macroblock as a candidate mode, calculating a rate-distortion value corresponding to each of the at least one candidate mode, and calculating a rate-distortion value Accordingly, the method includes determining any one of the at least one candidate mode as an optimal block mode.

본 발명에 따른 블록모드 결정하는 동영상 복호화기는, 복호화할 비트스트림이 입력되면, 상기 비트스트림 중 기 저장된 크기의 매크로블록에 대하여 매크로블록 단위별로 움직임 예측을 수행하고, 상기 움직임 예측에 따라 상기 매크로블록이 가지는 블록모드들 중 적어도 하나의 후보모드가 선택되면, 상기 적어도 하나의 후보모드 각각에 대응하는 율-왜곡값을 계산하는 움직임 추정기와, 상기 매크로블록이 가지는 블록모드들 중 적어도 하나의 후보모드를 선택하고, 상기 율-왜곡값의 계산결과에 따라 상기 적어도 하나의 후보모드 중 어느 하나를 최적의 블록모드로 결정하는 매크로블록 모드 결정기를 포함한다.When a bitstream to be decoded is input, the video decoder for determining a block mode according to the present invention performs motion prediction for each macroblock unit of a macroblock having a previously stored size among the bitstreams, and performs the macroblock according to the motion prediction. A motion estimator for calculating a rate-distortion value corresponding to each of the at least one candidate mode when at least one candidate mode among the block modes is selected, and at least one candidate mode among the block modes of the macroblock; And a macroblock mode determiner for determining any one of the at least one candidate mode as an optimal block mode according to the calculation result of the rate-distortion value.

본 발명에 따르면, 비디오 부호화/복호화시에 많은 연산량이 소요되는 움직임 예측 동작을 고속화함으로써 연산량을 효과적으로 감소시킬 수 있는 동영상 부호화기 및 그 동영상 부호화기/복호화기의 고속 움직임 모드 결정방법을 제공한다. According to the present invention, there is provided a video encoder capable of effectively reducing the computation amount by speeding up a motion prediction operation that requires a large amount of computation during video encoding / decoding, and a method of determining a high speed motion mode of the video encoder / decoder.

또한 본 발명에 따르면, 다양한 움직임 블록을 사용하여 움직임 예측을 수행하는 과정에서의 화질 저하 및 발생 비트량을 최소화하면서 효과적으로 단축할 수 있는 동영상 부호화기/복호화기 및 그 동영상 부호화기/복호화기의 고속 움직임 모드 결정 방법 및 장치를 제공한다. In addition, according to the present invention, a video encoder / decoder and a fast motion mode of the video encoder / decoder capable of effectively shortening the image quality and minimizing the amount of bits generated while performing motion prediction using various motion blocks. Provided are a determination method and apparatus.

이하 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 도면들 중 동일한 구성 요소들은 가능한 한 어느 곳에서든지 동일한 부호들로 나타내고 있음에 유의하여야 한다. 하기 설명 및 첨부 도면에서 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. It should be noted that the same elements in the figures are denoted by the same reference numerals wherever possible. In the following description and the annexed drawings, detailed descriptions of well-known functions and configurations that may unnecessarily obscure the subject matter of the present invention will be omitted.

도 2는 본 발명의 일 실시예에 따른 동영상 부호화기의 대략적인 구성을 도시한 블록도이다. 2 is a block diagram illustrating a schematic configuration of a video encoder according to an embodiment of the present invention.

본 실시예에 따른 동영상 부호화기(40)는 이산 코사인 변환(Discrete Cosine transform, DCT) 연산기(44), 양자화기(46), 역양자화기(50), 역이산 코사인 변환(Inverse Discrete Cosine Transform, IDCT) 연산기(52), 프레임 메모리(60), 움직임 보상기(58), 감산기(42), 가산기(56), 엔트로피 부호화기(48), 움직임 추정기(62) 및 매크로블록 모드 결정기(54)를 포함한다. The video encoder 40 according to the present embodiment includes a discrete cosine transform (DCT) operator 44, a quantizer 46, an inverse quantizer 50, and an inverse discrete cosine transform (IDCT). ) An operator 52, a frame memory 60, a motion compensator 58, a subtractor 42, an adder 56, an entropy encoder 48, a motion estimator 62, and a macroblock mode determiner 54. .

본 실시예에 따른 동영상 부호화기(40)는 H.264/AVC 방식의 부호화 장치인 것으로 가정하며, 이하 H.264/AVC 방식의 부호화 장치를 기초로 설명하기로 한다. It is assumed that the video encoder 40 according to the present embodiment is an H.264 / AVC scheme encoding apparatus, and will be described below based on the H.264 / AVC scheme encoding apparatus.

매크로블록 단위로 입력되는 영상프레임은 DCT 연산기(52)에서 매크로블록 단위로 변환되고, 양자화기(46)에서 양자화된다. 양자화기(46)로부터 출력된 양자 화된 영상프레임은 역양자화기(50)와 IDCT 연산기(52)를 거쳐 복호화되고, 복호화된 데이터는 가산기(56)로 입력된다. 입력된 영상데이터는 복원된 후 프레임 메모리(60)에 저장되어, 이후에 입력되는 입력영상 프레임의 움직임 추정을 위해 참조 영상으로 제공된다. The image frame input in units of macroblocks is converted into units of macroblocks by the DCT operator 52 and quantized by the quantizer 46. The quantized video frame output from the quantizer 46 is decoded through the inverse quantizer 50 and the IDCT operator 52, and the decoded data is input to the adder 56. The input image data is reconstructed and stored in the frame memory 60, and then provided as a reference image for motion estimation of the input image frame.

움직임 추정기(62)는 현재 입력되는 매크로블록 단위의 영상프레임에 대하여 프레임 메모리(60)에 저장된 참조 영상 중 적어도 하나의 영상을 제공받아 움직임 추정을 수행하여, 움직임 벡터(Motion Vector), 참조영상을 나타내는 인덱스(Index) 데이터를 출력한다. The motion estimator 62 performs motion estimation by receiving at least one of the reference images stored in the frame memory 60 with respect to the image frame in the macroblock unit currently input, and performs a motion vector and a reference image. Outputs the index data indicated.

MPEG 시리즈의 영상 압축 표준에서 '움직임 추정'은 현재 프레임을 부호화하는 과정에서 이전 프레임에서 가장 비슷한 부분을 가져오는 과정을 말한다. 일반적으로 동영상에서는 바로 이전 프레임과 현재 프레임이 매우 비슷하다. 보다 상세하게는, 움직임 추정은 현재 프레임에서 현재 부호화하고 있는 매크로블록('현재기준블록'이라 하기로 한다)을, 이전 프레임에서 상기 현재기준블록과 동일한 위치를 가지는 매크로블록을 기준으로 탐색범위(Search Range)만큼의 매크로블록들을 비교함으로써 이루어진다. 그리고 현재 프레임의 현재 부호화하고 있는 매크로블록들, 즉 이전기준블록과 유사한 매크로블록을 찾아 그 변위를 추출한다. 이전 프레임에서 현재기준블록과 가장 유사한 데이터블록들을 '이전기준블록'이라고 하면, '변위'는 이전기준블록이 현재기준블록으로 이동한 방향, 거리 등이 될 수 있다. 예를 들어, 이전기준블록이 현재 프레임에선 대각선 방향으로 1픽셀 이동하였다면 그 이동이 '변위'에 해당한다. 이하에서는 변위를 '움직임 벡터'라 하기로 한다. 여기서 움직임 벡터가 중요한 이유는 현재 프레임의 현재 부호화하고 있는 매크로블록, 즉 현재기준블록에 대한 정보 대신 움직임 벡터를 전송하면, 전송되는 정보량을 줄일 수 있기 때문이다. 즉, 움직임 벡터를 이용하여 이전 프레임의 이전기준블록이 현재 프레임에서 어느 위치에 존재하는가를 계산할 수 있으며, 따라서 현재 프레임에서의 현재기준블록을 유추할 수 있게 된다.In the MPEG series of video compression standards, 'motion estimation' refers to a process of obtaining the most similar portion of a previous frame in encoding a current frame. In general, the previous frame and the current frame are very similar in a video. In more detail, the motion estimation includes searching for a macroblock currently encoded in a current frame (hereinafter referred to as a 'current reference block') based on a macroblock having the same position as the current reference block in a previous frame. By comparing the number of macroblocks. Then, the macroblocks currently encoded in the current frame, that is, macroblocks similar to the previous reference block are found and the displacement is extracted. When the data blocks most similar to the current reference block in the previous frame are referred to as 'previous reference blocks', the 'displacement' may be a direction and a distance in which the previous reference block is moved to the current reference block. For example, if the previous reference block moved 1 pixel diagonally in the current frame, the movement corresponds to 'displacement'. Hereinafter, the displacement will be referred to as a 'motion vector'. The reason why the motion vector is important is that the amount of information to be transmitted can be reduced by transmitting the motion vector instead of the information about the current macroblock, that is, the current reference block of the current frame. That is, it is possible to calculate where the previous reference block of the previous frame exists in the current frame by using the motion vector, thus inferring the current reference block in the current frame.

또한 현재기준블록과 이전기준블록이 얼마나 비슷한가에 대한 기준이 정합오차(Distortion)이며, SAD(Sum Absolute Difference)가 일반적으로 이용된다. In addition, a criterion of how similar the current reference block and the previous reference block is is a distortion, and a sum absolute difference (SAD) is generally used.

매크로블록 모드 결정기(54)는 현재 입력되는 매크로블록의 최적 부호화 모드, 즉 '블록모드'를 결정하여 출력한다. 매크로블록 모드 결정기(54)가 블록모드를 결정한다는 것은, 움직임 추정기(62)가 움직임을 추정하는 블록단위를 결정한다는 의미이다. 예를 들어 매크로블록 모드 결정기(54)가 16×16 매크로블록을 블록모드로 결정했다고 하면, 움직임 추정기(62)는 16×16 크기를 가지는 블록을 이용하여 움직임 벡터를 구한다. The macroblock mode determiner 54 determines and outputs an optimal encoding mode, that is, a 'block mode' of the macroblock currently input. If the macroblock mode determiner 54 determines the block mode, it means that the motion estimator 62 determines the block unit for estimating the motion. For example, if the macroblock mode determiner 54 determines the 16x16 macroblock as the block mode, the motion estimator 62 calculates a motion vector using a block having a size of 16x16.

본 실시예에 따른 매크로블록 모드 결정기(54)는 블록 크기를 결정하고자 하는 경우 모든 크기의 블록 크기를 가지는 블록에 대하여 율-왜곡(RD : Rate-Distortion) 값을 구하고, 그 중 가장 작은 율-왜곡 값을 가지는 블록 크기를 블록모드로 결정한다. When determining the block size, the macroblock mode determiner 54 according to the present embodiment obtains a rate-distortion (RD) value for a block having a block size of all sizes, and among them, the smallest rate- The block size having the distortion value is determined as the block mode.

움직임 보상기(58)는 움직임 추정기(62)로부터 입력된 움직임 데이터에 따라, 프레임 메모리(60)에 저장된 참조영상으로부터 현재 입력된 매크로블록에 대응하는 영상데이터를 추출하여 출력한다. 움직임 보상기(58)로부터 출력된 데이터는 가산기(56)로 입력되어, 가산기(56)의 타단에서 입력되는 복호화된 데이터를 실제의 이미지로 복원하여 프레임 메모리(60)로 전송한다. The motion compensator 58 extracts and outputs image data corresponding to the currently input macroblock from the reference image stored in the frame memory 60 according to the motion data input from the motion estimator 62. The data output from the motion compensator 58 is input to the adder 56 to restore the decoded data input at the other end of the adder 56 to an actual image and transmit the decoded data to the frame memory 60.

감산기(42)는 비디오 부호화기(40)로 입력된 매크로블록에 대하여 프레임 간 예측 부호화(Interframe Predictive Coding)가 이루어지는 경우, 움직임 보상기(58)로부터 입력 매크로블록에 대응하는 참조 영상 내의 영상데이터를 입력받아 입력 매크로블록과의 차분 연산을 수행하여 잔차 신호(Residual Signal)을 출력한다. 출력된 잔차 신호는 다시 DCT 연산기(44) 및 양자화기(46)를 거쳐 변환 및 양자화되고 엔트로피 부호화기(48)에 의해 엔트로피 부호화되며, 예를 들어 NAL(Network Abstraction Layer) 유닛 데이터의 형태로 출력된다. 엔트로피 부호화기(48)로부터 출력된 영상 데이터는 비트레이트를 조절하기 위하여 버퍼(미도시)에 일시 저장된 후 출력될 수 있다.The subtractor 42 receives image data in the reference image corresponding to the input macroblock from the motion compensator 58 when interframe prediction coding is performed on the macroblock input to the video encoder 40. A residual signal is output by performing a difference operation with the input macroblock. The output residual signal is again transformed and quantized by the DCT operator 44 and the quantizer 46 and entropy-encoded by the entropy encoder 48, and is output in the form of, for example, network abstraction layer (NAL) unit data. . The image data output from the entropy encoder 48 may be temporarily stored in a buffer (not shown) and then output to adjust the bit rate.

도 2에서는 동영상 부호화기에 대해서만 설명하였으나, 본 실시예에 따른 고속 움직임 모드 결정방법은 동영상 복호화기(미도시)에 대해서도 적용 가능하다.In FIG. 2, only the video encoder is described, but the fast motion mode determination method according to the present embodiment may be applied to a video decoder (not shown).

동영상 복호화기의 경우에는, 도 2의 동영상 부호하기와 마찬가지로 움직임 추정기(62), 매크로블록 모드 결정기(54) 등을 포함하며 비트스트림(Beatstream)을 입력받아 그 비트스트림에 포함된 다수의 매크로블록들의 블록모드를 결정, 움직임 예측을 수행한다. 동영상 복호화기에 따른 고속 움직임 모드 결정방법은 기본적으로 동영상 부호화기의 고속 움직임 모드 결정방법과 동일하며, 동영상 부호화기(40)에는 입력영상 프레임이 입력되는 대신에 동영상 복호화기에는 비트스트림이 입력된다. 이하의 도 3 내지 도 6에 대하여 서술하는 사항들 또한 동영상 복호화기 에 적용 가능하다.In the case of the video decoder, similar to the video encoding of FIG. 2, the video decoder includes a motion estimator 62, a macroblock mode determiner 54, and the like, and receives a bitstream. Determine their block mode and perform motion prediction. The method of determining the fast motion mode according to the video decoder is basically the same as the method of determining the fast motion mode of the video encoder. Instead of inputting an input video frame to the video encoder 40, a bitstream is input to the video decoder. 3 to 6 below are also applicable to a video decoder.

도 3은 본 발명의 일 실시예에 따른 동영상 부호화기의 고속 움직임 모드 결정방법을 도시한 순서도이다. 3 is a flowchart illustrating a method of determining a fast motion mode of a video encoder according to an embodiment of the present invention.

동영상 부호화기(40)로 영상프레임이 입력되면(S70), 움직임 추정기(62)는 4×4, 8×8, 16×16 블록의 움직임 예측을 수행한다(S72). 동영상 부호화기(40)는 단계 S72에서 수행한 움직임 예측 결과를 토대로 후보모드를 결정하고(S74), 각 후보모드에 대한 율-왜곡값을 계산한다(S76). 율-왜곡값의 계산은 바람직하게 동영상 부호화기(40)의 움직임 추정기(62)에 의해 계산된다. 이때 움직임 추정기(62)는 4×4, 8×8, 16×16의 크기를 가지는 블록모드에 대해서는 율-왜곡값을 계산하지만, 8×16 또는 16×8의 크기를 가지는 블록모드에 대해서는 8×8 또는 16×16을 이용하여 율-왜곡값을 추정한다. 움직임 추정기(62)는 8×8의 크기를 가지는 블록모드에 대한 율-왜곡값에 2를 곱하거나 또는 16×16의 크기를 가지는 블록모드에 대한 율-왜곡값을 2로 나누거나 하여 8×16 또는 16×8의 크기를 가지는 블록모드에 대한 율-왜곡값을 구할 수 있다. 이로써 동영상 부호화기(40)는 각 블록모드에 따른 율-왜곡값을 계산함으로써 발생하는 복잡도를 줄일 수 있다. When an image frame is input to the video encoder 40 (S70), the motion estimator 62 performs motion prediction of 4 × 4, 8 × 8, and 16 × 16 blocks (S72). The video encoder 40 determines a candidate mode based on the motion prediction result performed in step S72 (S74), and calculates a rate-distortion value for each candidate mode (S76). The calculation of the rate-distortion value is preferably calculated by the motion estimator 62 of the video encoder 40. At this time, the motion estimator 62 calculates the rate-distortion value for block modes having sizes of 4 × 4, 8 × 8, and 16 × 16, but 8 for block modes having sizes of 8 × 16 or 16 × 8. Rate-distortion values are estimated using either x8 or 16x16. The motion estimator 62 multiplies the rate-distortion value for block mode with 8 × 8 by 2 or divides the rate-distortion value for block mode with 16 × 16 by 2 by 8 × 8. The rate-distortion value for a block mode having a size of 16 or 16 × 8 can be obtained. As a result, the video encoder 40 may reduce the complexity caused by calculating the rate-distortion value according to each block mode.

또한 동영상 부호화기(40)는 단계 S76의 각 후보모드에 대한 율-왜곡값을 계산한 결과를 기초로 하여 최적의 블록모드를 결정한다(S78). 동영상 부호화기(40)는 단계 S78에서 결정된 블록모드를 이용하여 영상프레임을 부호화한다(S80). Also, the video encoder 40 determines an optimal block mode based on the result of calculating the rate-distortion value for each candidate mode in step S76 (S78). The video encoder 40 encodes an image frame using the block mode determined in step S78 (S80).

도 4는 본 발명의 일 실시예에 따른 동영상 부호화기의 기본처리 블록단위를 도시한 도면이다. 4 is a diagram illustrating basic processing block units of a video encoder according to an embodiment of the present invention.

본 실시예에서는 동영상 부호화기(40)가 단위블록에 해당하는 8×8, 16×16 후보모드에 대한 움직임 예측을 수행하고 난 이후, 추가적으로 가질 수 있는 후보모드를 단위블록과 함께 나타내고 있다. 위와 같이 후보모드가 결정되면, 동영상 부호화기(40)는 결정된 후보모드 각각에 대한 율-왜곡을 계산한다. 이때 움직임 예측을 수행하지 않은 16×8 또는 8×16 후보모드에 대해서 본 실시예에 따른 동영상 부호화기(40)는 8×8 또는 16×16 후보모드의 움직임 예측을 통하여 구해진 움직임 벡터를 이용한다. 예를 들어 16×8, 8×16의 움직임 벡터는, 8×8 후보모드가 가지는 움직임 벡터값의 두 배이거나 또는 16×16 후보모드가 가지는 움직임 벡터값의 반(1/2)이 될 수 있다.In the present embodiment, after the video encoder 40 performs the motion prediction for the 8x8 and 16x16 candidate modes corresponding to the unit block, the candidate mode that may be additionally displayed together with the unit block is shown. When the candidate mode is determined as described above, the video encoder 40 calculates a rate-distortion for each of the determined candidate modes. In this case, the video encoder 40 according to the present embodiment uses the motion vector obtained through the motion prediction of the 8x8 or 16x16 candidate mode for the 16x8 or 8x16 candidate mode in which the motion prediction is not performed. For example, a 16 × 8 or 8 × 16 motion vector may be twice the value of the motion vector of the 8 × 8 candidate mode or half of the motion vector of the 16 × 16 candidate mode. have.

도 4의 (a), (b), (c), (d)는 인접한 블록의 블록모드에 따라 현재기준블록이 가질 수 있는 후보모드를 도시한 것이다. 도 4를 참조하여 설명하면, (a)와 같이 인접한 블록의 블록모드가 16×16의 A, 16×8의 B, D, E인 경우 C, E의 후보모드를 16×8로 정할 수 있다. 이때, C, E 및 B, D에서의 율-왜곡값은 16×16의 A에서 구한 율-왜곡값을 2로 나눈 값일 수 있다.(A), (b), (c), and (d) of FIG. 4 illustrate candidate modes that a current reference block may have according to block modes of adjacent blocks. Referring to FIG. 4, when the block modes of adjacent blocks are 16 × 16 A, 16 × 8 B, D, and E as shown in (a), candidate modes C and E may be determined as 16 × 8. . In this case, the rate-distortion value in C, E, B, and D may be a value obtained by dividing the rate-distortion value obtained by A of 16 × 16 by 2.

(b)에서는 현재기준블록에 해당하는 I, L에 인접한 블록모드가 16×16의 F, 8×8의 G, H, J, K가 있다. 그에 따라 I, L의 후보모드를 16×8로 결정할 수 있다. 또한 I, L에서의 율-왜곡값은 F의 율-왜곡값을 2로 나누거나 또는 G, H, J, K의 율-왜곡값에 2를 곱한 값일 수 있다.In (b), the block modes adjacent to I and L corresponding to the current reference block are 16x16 F and 8x8 G, H, J and K. Accordingly, candidate modes I and L can be determined to be 16x8. In addition, the rate-distortion values in I and L may be divided by the rate-distortion value of F by 2 or by multiplying the rate-distortion values of G, H, J, and K by two.

(c)는 8×8의 M, N, O, P, 16×16의 Q가 인접한 R, S가 8×16 의 후보모드를 가지는 것을 도시한 것이고, (d)는 8×8의 T, U, V, W, 16×16의 X가 인접한 Y, Z가 8×16의 후보모드를 가지는 것을 도시하였다. (c)에서는 8×8의 M, N, O, P의 율-왜곡값에 2를 곱하거나 또는 16×16의 Q의 율-왜곡값을 2로 나누어 R, S의 율-왜곡값을 구할 수 있다. 마찬가지로 (d)에서는 8×8의 T, U, V, W의 율-왜곡값에 2를 곱하거나 또는, 16×16의 X의 율-왜곡값을 2로 나누어 Y, Z의 율-왜곡값을 구할 수 있다.(c) shows that 8x8 M, N, O, P, and 16x16 Q adjacent R and S have 8x16 candidate modes, and (d) 8x8 T, It is shown that U, V, W, and 16x16 X are adjacent to Y and Z have an 8x16 candidate mode. In (c), the rate-distortion values of M, N, O, and P of 8 × 8 are multiplied by two, or the rate-distortion values of Q of 16 × 16 are divided by two to obtain the rate-distortion values of R and S. Can be. Similarly, in (d), the rate-distortion value of 8, 8 T, U, V, and W is multiplied by 2, or the rate-distortion value of X of 16 × 16 is divided by 2 and the rate-distortion value of Y and Z is divided by 2. Can be obtained.

아래 표 1은, 현재 부호화하고자 매크로블록에 인접하여 위치한 매크로블록인 인접 매크로블록에 대한 정보를 이용하여 후보모드를 결정하고, 결정된 후보모드를 통해 새로운 문맥정보를 결정하고자 하는 경우에, 그 새로운 문맥정보를 결정하는 일 예를 표로 나타낸 것이다. Table 1 below shows a new context when a candidate mode is determined by using information on a neighboring macroblock, which is a macroblock located adjacent to a macroblock to be encoded, and new context information is determined through the determined candidate mode. An example of determining information is shown in a table.

종래의 H.264/AVCConventional H.264 / AVC 본 발명에 따른 H.264/AVCH.264 / AVC according to the present invention 조건 1Condition 1 조건 2Condition 2 Mb_typeMb_type Name of mb_typeName of mb_type Mb_typeMb_type Name of mb_typeName of mb_type Name of mb_typeName of mb_type 00 P_L0_16×16P_L0_16 × 16 00 P_L0_16×16P_L0_16 × 16 P_L0_16×16P_L0_16 × 16 1One P_L0_L0_16×8P_L0_L0_16 × 8 1One P_L0_L0_16×8
or
P_L0_L0_8×16
P_L0_L0_16 × 8
or
P_L0_L0_8 × 16
P_8×8P_8 × 8
22 P_L0_L0_8×16P_L0_L0_8 × 16 22 P_8×8P_8 × 8 P_8×8ref0P_8 × 8ref0 33 P_8×8P_8 × 8 33 P_8×ref0P_8 × ref0   44         inferredinferred P_skipP_skip inferredinferred P_skipP_skip  

표 1을 참조하면, 표 1의 왼쪽은 종래의 H.264/AVC에서의 Mb_type에 대한 문맥정보를 나타내고 오른쪽은 본 발명에 따른 H.264/AVC에서의 Mb_type에 대한 문맥정보를 나타낸다. 또한 표 1은 Mb_type에 대한 문맥정보(Syntax)는 현재기준블록이 8×8인 경우에 가질 수 있는 문맥정보라고 가정한다. 이때 '현재기준블록'은 동영상 부호화기(40)가 입력된 영상프레임을 구성하는 다수 개의 매크로블록을 부호화함에 있어서 한 번에 처리할 수 있는 블록의 수, 즉 기본처리 블록을 가리킨다. Referring to Table 1, the left side of Table 1 shows context information on Mb_type in conventional H.264 / AVC, and the right side shows context information on Mb_type in H.264 / AVC according to the present invention. In addition, Table 1 assumes that context information (Syntax) for Mb_type is context information that can be included when the current reference block is 8 × 8. At this time, the 'current reference block' refers to the number of blocks that can be processed at one time, that is, the basic processing block, in encoding the plurality of macroblocks constituting the input video frame.

표 1을 참조하여 설명하면, 동영상 부호화기(40)는 부호화하여야 할 매크로블록의 인접 매크록블록에 대한 모드정보가 도 4를 만족하는 경우, Case 1에 해당하고 그렇지 않다면 Case 2에 해당하는 것으로 가정한다. 즉 Case 1의 경우 (a)라면 Mb_type의 1은 P_L0_L0_16×8이 되고, (b)라면 P_L0_L0_8×16이 된다. 이와 같은 문맥정보는 부호호화기 또는 복호화기의 규약으로서 정의될 수 있으며, 본 발명의 다른 실시예에 따라서는 동영상 부호화기(40)가 특별한 추가 정보 없이 적응적으로 문맥정보를 변경할 수도 있다. Referring to Table 1, it is assumed that the video encoder 40 corresponds to Case 1 when the mode information on the adjacent macroblocks of the macroblocks to be encoded satisfies FIG. 4 and otherwise corresponds to Case 2. do. That is, in case 1, if (a), 1 of Mb_type becomes P_L0_L0_16 × 8, and in case of (b), P_L0_L0_8 × 16. Such context information may be defined as a protocol of an encoder or a decoder, and according to another embodiment of the present invention, the video encoder 40 may adaptively change the context information without additional information.

아래 표 2는 본 발명의 일 실시예에 따른 인접 매크로블록의 정보를 이용하여 후보모드를 결정하고, 결정된 후보모드를 통해 새로운 문맥정보를 결정하고자 하는 경우에 그 새로운 문맥정보를 결정하는 다른 예를 나타낸 표이다. 표 2도 표 1과 마찬가지로 단위블록을 8×8로 한 경우를 나타내고 있다.Table 2 below shows another example of determining a candidate mode using information of an adjacent macroblock according to an embodiment of the present invention and determining new context information when the new context information is determined through the determined candidate mode. Table shown. Table 2 also shows the case where the unit block is set to 8x8 as in Table 1.

종래의 H.264/AVCConventional H.264 / AVC 본 발명에 따른 H.264/AVCH.264 / AVC according to the present invention Mb_typeMb_type Name of mb_typeName of mb_type Mb_typeMb_type Name of mb_typeName of mb_type 00 P_L0_16×16P_L0_16 × 16 00 P_L0_16×16P_L0_16 × 16 1One P_L0_L0_16×8P_L0_L0_16 × 8 1One P_8×8P_8 × 8 22 P_L0_L0_8×16P_L0_L0_8 × 16 22 P_8×8ref0P_8 × 8ref0 33 P_8×8P_8 × 8     44 P_8×8ref0P_8 × 8ref0     inferredinferred P_skipP_skip inferredinferred P_skipP_skip

표 2는 Mb_type에 대한 문맥정보에서 매크로블록 16×16, 8×8에 대한 값만으로 추가모드인 16×8 또는 8×16에 대한 문맥정보를 플래그 비트(Flag Beat)를 통해 나타내고 있다. Table 2 shows the context information for 16 × 8 or 8 × 16, which is an additional mode by using only the values for macroblocks 16 × 16 and 8 × 8, in the context information for Mb_type through flag bits.

도 5는 위의 도 4 및 표 2에 따른 비트스트림의 구조를 나타낸 도면이다. 5 is a diagram illustrating the structure of a bitstream according to FIG. 4 and Table 2 above.

도 5를 참조하면, Case 1은 위의 도 4를 만족하지 않아 Mb_type가 표 2에서 제안된 형태를 가지는 경우를 도시하고 있다. 또한 도 5에서 Case 2 및 Case 3은 위의 도 4를 만족하는 경우에 나타낼 수 있는 비트스트림의 구조이다. Referring to FIG. 5, Case 1 illustrates a case in which Mb_type has a form suggested in Table 2 because it does not satisfy the above FIG. 4. In addition, Case 2 and Case 3 in FIG. 5 is a structure of a bitstream that may be indicated when the above FIG. 4 is satisfied.

동영상 부호화기(40)가 현재 부호화하고자 하는 매크로블록인 현재 매크로블록의 인접 매크로블록의 모드 정보가 도 3을 만족하는 경우 Mb_type이 8×8이면 Case 2 또는 Case 3에 해당한다. 본 실시예에 따른 후보모드에 대한 율-왜곡 계산 및 최적의 블록모드 결정을 통하여 현재 매크로블록의 모드가 8×8이 되면, 확장된 8×8 모드를 표시하는 플래그(Flag)의 값은 0이 된다. 이때 확장된 8×8인 경우 확장된 16×8 또는 8×16으로 후보모드가 결정된 후, 확장된 8×8 모드를 표시하는 플래그는 1이 된다. If the mode information of the neighboring macroblock of the current macroblock, which is the macroblock to be encoded currently, satisfies FIG. 3, the video encoder 40 corresponds to Case 2 or Case 3 when Mb_type is 8 × 8. When the mode of the current macroblock becomes 8 × 8 through the rate-distortion calculation and the determination of the optimal block mode for the candidate mode according to the present embodiment, the value of the flag indicating the extended 8 × 8 mode is 0. Becomes In this case, in the case of the extended 8x8, after the candidate mode is determined as the extended 16x8 or 8x16, the flag indicating the extended 8x8 mode is 1.

본 실시예에서 현재 부호화하고자 하는 매크로블록과 인접한 인접 매크로블록의 모드 정보가 도 4의 경우를 만족하면서 Mb_type이 8×8인 경우 Case 2 또는 Case 3의 비트스트림 구조를 가질 수 있다. 본 실시예에서 후보모드에 대한 율-왜곡 계산 및 최적의 블록모드 결정을 통해 현재 매크로블록의 블록모드가 8×8이 되면 확장된 8×8 모드를 표시하는 플래그는 0이 되고, 블록모드가 16×8 또는 8×16가 되면 확장된 8×8 모드를 표시하는 플래그는 1이 된다. 이때 확장된 8×8 모드를 표시하는 플래그의 값에 따라 참조영상 인덱스 및 움직임 벡터에 대한 문맥정보도 도 5에 표시된 바와 같이 달라진다. In the present embodiment, when the Mb_type is 8x8 while the mode information of the neighboring macroblock adjacent to the macroblock to be encoded currently satisfies the case of FIG. 4, the bitstream structure of Case 2 or Case 3 may be provided. In the present embodiment, when the block mode of the current macroblock becomes 8 × 8 through the rate-distortion calculation and the determination of the optimal block mode for the candidate mode, the flag indicating the extended 8 × 8 mode becomes 0, and the block mode is At 16x8 or 8x16, the flag indicating the expanded 8x8 mode is one. At this time, the context information for the reference picture index and the motion vector also varies according to the value of the flag indicating the extended 8x8 mode.

도 6은 본 발명의 일 실시예에 따른 N×N 매크로블록의 움직임 벡터 및 참조영상정보를 이용하여 생성할 수 있는 (2×N)×N 또는 8×(2×N) 블록을 나타낸 도면이다. FIG. 6 is a diagram illustrating a (2 × N) × N or 8 × (2 × N) block that can be generated using motion vectors and reference image information of an N × N macroblock according to an embodiment of the present invention. .

먼저 도 6의 (a)에서 N×N 크기의 매크로블록 A(122), B(124)에 대한 정보를 이용하여 점선으로 표시된 블록(이하, '점선블록'이라 하기로 한다) AB(120)에 대한 정보를 생성하고자 할 때, 동영상 부호화기(40)가 움직임 벡터를 생성하는 방법은 다음 중 어느 하나와 같다. First, in FIG. 6A, a block indicated by a dotted line using information on macroblocks A 122 and B 124 having an N × N size (hereinafter, referred to as a “dotted block”) AB 120 When generating information about, the video encoder 40 generates a motion vector as follows.

1) 매크로블록 A(122), B(124)의 움직임 벡터의 평균 벡터를 점선블록 AB(120)의 움직임 벡터로 한다. 1) The average vector of the motion vectors of the macroblocks A 122 and B 124 is regarded as the motion vector of the dotted block AB 120.

2) 매크로블록 A(122), B(124)의 움직임 벡터 중 하나의 값을 선택해서 점선 블록 AB(120)의 움직임 벡터로 결정한다. 이때 AB의 움직임 벡터로 결정된 값은 임의로 선택하거나 혹은 SAD 등의 방법을 통하여 최적화된 값으로 결정될 수 있다. 2) A value of one of the motion vectors of the macroblocks A 122 and B 124 is selected to determine the motion vector of the dotted block AB 120. In this case, the value determined as the motion vector of the AB may be arbitrarily selected or an optimized value through a method such as SAD.

3) 매크로블록 A(122), B(124)의 움직임 벡터 및 매크로블록 A(122), B(124)의 평균 벡터 중 하나의 값을 선택하여 점선블록 AB(120)의 움직임 벡터로 결정한다. 이때 점선블록 AB(120)의 움직임 벡터는 임의로 선택하거나 혹은 SAD(Sum Absolute Difference), STAD(Sum of Absolute Transformed Difference), SSD(Sum of Squared Difference), MAD(Mean of Absolute Difference) 등의 함수를 통해 최적화된 값으로 결정될 수 있다. 3) The motion vector of the macroblocks A 122 and B 124 and the average vector of the macro blocks A 122 and B 124 are selected to determine the motion vector of the dotted block AB 120. . At this time, the motion vector of the dotted block AB 120 is arbitrarily selected or a function such as sum absolute difference (SAD), sum of absolute transformed difference (STAD), sum of squared difference (SSD), mean of absolute difference (MAD), or the like. It can be determined through the optimized value.

도 6의 (b)에서 N×N 크기의 매크로블록 C(130), D(134)에 대한 정보를 이용하여 점선블록 CD(130)에 대한 정보를 생성할 때도 도 6의 (a)와 마찬가지의 방법으로 움직임 벡터를 결정할 수 있다. In FIG. 6B, when information on the dotted block CD 130 is generated using information on macroblocks C 130 and D 134 having an N × N size, the same as in FIG. 6A. The motion vector can be determined by

동영상 부호화기(40)는 매크로블록 C(132), D(134)의 움직임 벡터의 평균 벡터를 점선 블록(303)의 움직임 벡터로 결정하거나, C(132), D(134)의 움직임 벡터 중 하나의 값을 선택해서 점선블록 CD(130)의 움직임 벡터로 결정하거나, C(132), D(134)의 움직임 벡터 또는 두 매크로블록의 평균 벡터 중 하나를 선택하여 점선 블록 CD(130)의 움직임 벡터로 결정할 수 있다. 이때, 최적화된 값은 본 발명을 실시하는 당업자에 의하여 임의로 선택하거나 또는 SAD 등의 방법을 통하여 결정될 수 있다. The video encoder 40 determines the average vector of the motion vectors of the macroblocks C 132 and D 134 as the motion vector of the dashed block 303 or one of the motion vectors of the C 132 and D 134. Select the value of to determine the motion vector of the dotted block CD 130, or select the motion vector of the C (132), D (134) or the average vector of the two macroblocks to move the motion of the dotted block CD (130) Can be determined by a vector. In this case, the optimized value may be arbitrarily selected by a person skilled in the art for carrying out the present invention or determined through a method such as SAD.

도 1은 종래기술에 따른 동영상 부호화기의 고속 움직임 모드 결정방법을 도시한 순서도이다. 1 is a flowchart illustrating a method of determining a fast motion mode of a video encoder according to the prior art.

도 2는 본 발명의 일 실시예에 따른 동영상 부호화기의 대략적인 구성을 도시한 블록도이다. 2 is a block diagram illustrating a schematic configuration of a video encoder according to an embodiment of the present invention.

도 3은 본 발명의 일 실시예에 따른 동영상 부호화기의 고속 움직임 모드 결정방법을 도시한 순서도이다. 3 is a flowchart illustrating a method of determining a fast motion mode of a video encoder according to an embodiment of the present invention.

도 4는 본 발명의 일 실시예에 따른 동영상 부호화기의 기본처리 블록단위를 도시한 도면이다. 4 is a diagram illustrating basic processing block units of a video encoder according to an embodiment of the present invention.

도 5는 위의 도 4 및 표 2에 따른 비트스트림의 구조를 나타낸 도면이다. 5 is a diagram illustrating the structure of a bitstream according to FIG. 4 and Table 2 above.

도 6은 본 발명의 일 실시예에 따른 N×N 매크로블록의 움직임 벡터 및 참조영상정보를 이용하여 생성할 수 있는 (2×N)×N 또는 8×(2×N) 블록을 나타낸 도면이다. FIG. 6 is a diagram illustrating a (2 × N) × N or 8 × (2 × N) block that can be generated using motion vectors and reference image information of an N × N macroblock according to an embodiment of the present invention. .

Claims (16)

동영상 부호화를 위한 블록모드 결정방법에 있어서, In the block mode determination method for video encoding, 부호화할 동영상이 입력되면, 상기 동영상 중 기 저장된 크기의 매크로블록에 대하여 매크로블록 단위별로 움직임 예측을 수행하는 과정과, When a video to be encoded is input, performing motion prediction on a macroblock of a previously stored size for each macroblock unit; 상기 움직임 예측에 따라 상기 매크로블록이 가지는 블록모드들 중 적어도 하나를 후보모드로 선택하는 과정과, Selecting at least one of the block modes of the macroblock as a candidate mode according to the motion prediction; 상기 적어도 하나의 후보모드 각각에 대응하는 율-왜곡값을 계산하는 과정과, Calculating a rate-distortion value corresponding to each of the at least one candidate mode; 상기 율-왜곡값의 계산결과에 따라 상기 적어도 하나의 후보모드 중 어느 하나를 최적의 블록모드로 결정하는 과정을 포함함을 특징으로 하는 동영상 부호화를 위한 블록모드 결정방법. And determining one of the at least one candidate mode as an optimal block mode according to the calculation result of the rate-distortion value. 제1항에 있어서, The method of claim 1, 상기 매크로블록 단위별로 움직임 예측을 수행하는 과정은, The process of performing motion prediction for each macroblock unit may include: 상기 매크로블록 단위가 4×8, 8×8, 16×16 중 적어도 하나인 매크로블록에 대하여 상기 움직임 예측을 수행하는 과정임을 특징으로 하는 동영상 부호화를 위한 블록모드 결정방법. The method of claim 1, wherein the motion prediction is performed on the macroblock having the macroblock unit of at least one of 4x8, 8x8 and 16x16. 제1항에 있어서,상기 매크로블록 단위는, The method of claim 1, wherein the macroblock unit is N×N임을 특징으로 하는 동영상 부호화를 위한 블록모드 결정방법. A block mode determination method for encoding a video, characterized in that N × N. 제1항에 있어서, The method of claim 1, 상기 최적의 블록모드가 결정되면, 이후 입력되는 동영상에 대하여 상기 최적의 블록모드를 이용하여 상기 움직임 예측을 수행하는 과정을 더 포함함을 특징으로 하는 동영상 부호화를 위한 블록모드 결정방법. If the optimal block mode is determined, further comprising the step of performing the motion prediction for the next video input by using the optimal block mode. 블록모드 결정하는 동영상 부호화기에 있어서, In the video encoder for determining the block mode, 부호화할 동영상이 입력되면, 상기 동영상 중 기 저장된 크기의 매크로블록에 대하여 매크로블록 단위별로 움직임 예측을 수행하고, 상기 움직임 예측에 따라 상기 매크로블록이 가지는 블록모드들 중 적어도 하나의 후보모드가 선택되면, 상기 적어도 하나의 후보모드 각각에 대응하는 율-왜곡값을 계산하는 움직임 추정기와, When a video to be encoded is input, motion prediction is performed for each macroblock of the video stored in units of macroblocks, and at least one candidate mode among the block modes of the macroblock is selected according to the motion prediction. A motion estimator for calculating a rate-distortion value corresponding to each of the at least one candidate mode; 상기 매크로블록이 가지는 블록모드들 중 적어도 하나의 후보모드를 선택하고, 상기 율-왜곡값의 계산결과에 따라 상기 적어도 하나의 후보모드 중 어느 하나를 최적의 블록모드로 결정하는 매크로블록 모드 결정기를 포함함을 특징으로 하는 동영상 부호화기. A macroblock mode determiner for selecting at least one candidate mode among block modes of the macroblock and determining one of the at least one candidate mode as an optimal block mode according to a result of calculating the rate-distortion value And a video encoder. 제5항에 있어서, 상기 움직임 추정기는, The method of claim 5, wherein the motion estimator, 상기 매크로블록 단위가 4×4, 8×8, 16×16 중 적어도 하나인 매크로블록에 대하여 상기 움직임 예측을 수행함을 특징으로 하는 동영상 부호화기. And the motion prediction is performed on a macroblock in which the macroblock unit is at least one of 4 × 4, 8 × 8, and 16 × 16. 제5항에 있어서,상기 매크로블록 단위는, The method of claim 5, wherein the macroblock unit is N×N임을 특징으로 하는 동영상 부호화기. Video encoder, characterized in that N × N. 제5항에 있어서, 상기 움직임 추정기는, The method of claim 5, wherein the motion estimator, 상기 최적의 블록모드가 결정되면, 이후 입력되는 동영상에 대하여 상기 최적의 블록모드를 이용하여 상기 움직임 예측을 수행함을 특징으로 하는 동영상 부호화기. And when the optimal block mode is determined, the motion prediction is performed on the next input video using the optimal block mode. 동영상 복호화를 위한 블록모드 결정방법에 있어서, In the block mode determination method for video decoding, 복호화할 비트스트림이 입력되면, 상기 비트스트림 중 기 저장된 크기의 매크로블록에 대하여 매크로블록 단위별로 움직임 예측을 수행하는 과정과, When a bitstream to be decoded is input, performing motion prediction on a macroblock of a previously stored size in units of macroblocks; 상기 움직임 예측에 따라 상기 매크로블록이 가지는 블록모드들 중 적어도 하나를 후보모드로 선택하는 과정과, Selecting at least one of the block modes of the macroblock as a candidate mode according to the motion prediction; 상기 적어도 하나의 후보모드 각각에 대응하는 율-왜곡값을 계산하는 과정과, Calculating a rate-distortion value corresponding to each of the at least one candidate mode; 상기 율-왜곡값의 계산결과에 따라 상기 적어도 하나의 후보모드 중 어느 하나를 최적의 블록모드로 결정하는 과정을 포함함을 특징으로 하는 동영상 복호화를 위한 블록모드 결정방법. And determining one of the at least one candidate mode as an optimal block mode according to a result of the calculation of the rate-distortion value. 제9항에 있어서, 10. The method of claim 9, 상기 매크로블록 단위별로 움직임 예측을 수행하는 과정은, The process of performing motion prediction for each macroblock unit may include: 상기 매크로블록 단위가 4×4, 8×8, 16×16 중 적어도 하나인 매크로블록에 대하여 상기 움직임 예측을 수행하는 과정임을 특징으로 하는 동영상 복호화를 위한 블록모드 결정방법. The method of claim 1, wherein the motion prediction is performed on a macroblock having at least one of 4x4, 8x8, and 16x16. 제9항에 있어서,상기 매크로블록 단위는, The method of claim 9, wherein the macroblock unit is N×N임을 특징으로 하는 동영상 복호화를 위한 블록모드 결정방법. Block mode determination method for video decoding, characterized in that N × N. 제9항에 있어서, 10. The method of claim 9, 상기 최적의 블록모드가 결정되면, 이후 입력되는 비트스트림에 대하여 상기 최적의 블록모드를 이용하여 상기 움직임 예측을 수행하는 과정을 더 포함함을 특징으로 하는 동영상 복호화를 위한 블록모드 결정방법. And if the optimal block mode is determined, further performing the motion prediction on the input bitstream using the optimal block mode. 블록모드 결정하는 동영상 복호화기에 있어서, In the video decoder to determine the block mode, 복호화할 비트스트림이 입력되면, 상기 비트스트림 중 기 저장된 크기의 매크로블록에 대하여 매크로블록 단위별로 움직임 예측을 수행하고, 상기 움직임 예측에 따라 상기 매크로블록이 가지는 블록모드들 중 적어도 하나의 후보모드가 선택되면, 상기 적어도 하나의 후보모드 각각에 대응하는 율-왜곡값을 계산하는 움직 임 추정기와, When a bitstream to be decoded is input, motion prediction is performed for each macroblock of the bitstream of the bitstream in units of macroblocks, and at least one candidate mode among the block modes of the macroblock is determined according to the motion prediction. A motion estimator for calculating a rate-distortion value corresponding to each of the at least one candidate mode, when selected; 상기 매크로블록이 가지는 블록모드들 중 적어도 하나의 후보모드를 선택하고, 상기 율-왜곡값의 계산결과에 따라 상기 적어도 하나의 후보모드 중 어느 하나를 최적의 블록모드로 결정하는 매크로블록 모드 결정기를 포함함을 특징으로 하는 동영상 복호화기. A macroblock mode determiner for selecting at least one candidate mode among block modes of the macroblock and determining one of the at least one candidate mode as an optimal block mode according to a result of calculating the rate-distortion value And a video decoder. 제13항에 있어서, 상기 움직임 추정기는, The method of claim 13, wherein the motion estimator, 상기 매크로블록 단위가 4×4, 8×8, 16×16 중 적어도 하나인 매크로블록에 대하여 상기 움직임 예측을 수행함을 특징으로 하는 동영상 복호화기. And the motion prediction is performed on a macroblock in which the macroblock unit is at least one of 4x4, 8x8, and 16x16. 제13항에 있어서,상기 매크로블록 단위는, The method of claim 13, wherein the macroblock unit is N×N임을 특징으로 하는 동영상 복호화기. A video decoder, characterized in that N × N. 제13항에 있어서, 상기 움직임 추정기는, The method of claim 13, wherein the motion estimator, 상기 최적의 블록모드가 결정되면, 이후 입력되는 비트스트림에 대하여 상기 최적의 블록모드를 이용하여 상기 움직임 예측을 수행함을 특징으로 하는 동영상 복호화기.And when the optimal block mode is determined, the motion prediction is performed on the input bitstream using the optimal block mode.
KR20090019504A 2009-03-06 2009-03-06 Moving pictures encoder/decoder and method for determining block mode for encoding/decoding moving pictures in the moving pictures encoder/decoder KR20100100540A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR20090019504A KR20100100540A (en) 2009-03-06 2009-03-06 Moving pictures encoder/decoder and method for determining block mode for encoding/decoding moving pictures in the moving pictures encoder/decoder
PCT/KR2010/001364 WO2010101427A2 (en) 2009-03-06 2010-03-04 Moving image encoding device/decoding device, and a block-mode determining method for moving-image encoding/decoding in the encoding device/decoding device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20090019504A KR20100100540A (en) 2009-03-06 2009-03-06 Moving pictures encoder/decoder and method for determining block mode for encoding/decoding moving pictures in the moving pictures encoder/decoder

Publications (1)

Publication Number Publication Date
KR20100100540A true KR20100100540A (en) 2010-09-15

Family

ID=42710130

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20090019504A KR20100100540A (en) 2009-03-06 2009-03-06 Moving pictures encoder/decoder and method for determining block mode for encoding/decoding moving pictures in the moving pictures encoder/decoder

Country Status (2)

Country Link
KR (1) KR20100100540A (en)
WO (1) WO2010101427A2 (en)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050061762A (en) * 2003-12-18 2005-06-23 학교법인 대양학원 Method of encoding mode determination and motion estimation, and encoding apparatus
KR100751423B1 (en) * 2004-11-24 2007-08-23 한국전자통신연구원 Fast determining method of block mode, and the apparatus therefor motion estimation
KR100814731B1 (en) * 2006-08-21 2008-03-19 연세대학교 산학협력단 Fast Mode Decision Method for H.264 Encoding
KR100845644B1 (en) * 2006-12-14 2008-07-10 한국정보통신대학교 산학협력단 Fast motion mode decision method

Also Published As

Publication number Publication date
WO2010101427A2 (en) 2010-09-10
WO2010101427A3 (en) 2010-12-02

Similar Documents

Publication Publication Date Title
KR101177031B1 (en) Method and apparatus for minimizing number of reference pictures used for inter-coding
KR101431545B1 (en) Method and apparatus for Video encoding and decoding
JP5061179B2 (en) Illumination change compensation motion prediction encoding and decoding method and apparatus
JP4927207B2 (en) Encoding method, decoding method and apparatus
JP4724351B2 (en) Image encoding apparatus, image encoding method, image decoding apparatus, image decoding method, and communication apparatus
US8582904B2 (en) Method of second order prediction and video encoder and decoder using the same
US20070098067A1 (en) Method and apparatus for video encoding/decoding
JP2004336369A (en) Moving image encoder, moving image decoder, moving image encoding method, moving image decoding method, moving image encoding program and moving image decoding program
KR20090095317A (en) Method and apparatus for encoding and decoding image
KR20050061762A (en) Method of encoding mode determination and motion estimation, and encoding apparatus
KR20040105872A (en) Video data conversion device and video data conversion method
KR20100027384A (en) Method and apparatus for determining a prediction mode
KR20050031674A (en) Prediction method and apparatus in video encoder
KR20070005848A (en) Method and apparatus for intra prediction mode decision
US20090016443A1 (en) Inter mode determination method for video encoding
JP3866624B2 (en) Moving picture encoding method, moving picture decoding method, moving picture encoding apparatus, and moving picture decoding apparatus
KR100856392B1 (en) Video Encoding and Decoding Apparatus and Method referencing Reconstructed Blocks of a Current Frame
KR101086724B1 (en) ?? Deciding Method of H.264/AVC Encoder using Complexity of Frame, and H.264/AVC Encoder implementing the same
KR20100100540A (en) Moving pictures encoder/decoder and method for determining block mode for encoding/decoding moving pictures in the moving pictures encoder/decoder
KR101610028B1 (en) Method and apparatus for fast motion estimation and video encoding apparatus using the same
JPWO2011099242A1 (en) Image encoding device, image decoding device, image encoding method, and image decoding method
KR100774297B1 (en) Method and apparatus for decoding motion vectors
JP5946980B1 (en) Image decoding method
KR20160087206A (en) Transcoder and transcoding method for moving picture
KR20120067626A (en) Intra- macroblock incoding method and apparatus

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application