KR101668851B1 - Method and apparatus of adaptive coding mode ordering for early mode decision of hevc - Google Patents

Method and apparatus of adaptive coding mode ordering for early mode decision of hevc Download PDF

Info

Publication number
KR101668851B1
KR101668851B1 KR1020150032439A KR20150032439A KR101668851B1 KR 101668851 B1 KR101668851 B1 KR 101668851B1 KR 1020150032439 A KR1020150032439 A KR 1020150032439A KR 20150032439 A KR20150032439 A KR 20150032439A KR 101668851 B1 KR101668851 B1 KR 101668851B1
Authority
KR
South Korea
Prior art keywords
coding
mode
encoding
block
value
Prior art date
Application number
KR1020150032439A
Other languages
Korean (ko)
Other versions
KR20160110589A (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
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020150032439A priority Critical patent/KR101668851B1/en
Publication of KR20160110589A publication Critical patent/KR20160110589A/en
Application granted granted Critical
Publication of KR101668851B1 publication Critical patent/KR101668851B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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
    • 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
    • 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding

Abstract

본 발명은 본 발명은 영상 부호화 및 복호화 기술에 관한 것으로, 본 발명의 일 실시예에 따른 부호화 모드 결정 방법은, 초기화 단계를 통해 현재 부호화 모드로 부호화 하는 경우의 율-왜곡 비용의 예측 값 및 비트량 예측 값을 계산하는 단계; 상기 계산된 율-왜곡 비용의 예측 값과 미리 설정된 최적의 율-왜곡 비용 값을 비교하고, 상기 계산된 비트량 예측 값과 미리 설정된 최적의 비트량을 비교하여, 상기 부호화 모드에 대한 부호화 연산을 생략할지 여부를 판단하는 단계; 결정된 최소 율-왜곡 비용 값을 이용하여 현재 부호화 블록에 대한 부호화 모드를 결정하는 단계; 및 부호화를 수행한 후 부호화 모드의 순서를 업데이트하는 단계;를 포함할 수 있다. 본 발명의 일 실시예에 따르면, HEVC 고속 부호화 모드 결정을 위한 적응적 부호화 모드 순서 정렬 방법 및 장치를 제공할 수 있다. The present invention relates to an image encoding and decoding technique, and a method of determining an encoding mode according to an embodiment of the present invention includes: predicting a rate- Calculating a predicted value of the amount; And a predicted value of the rate-distortion cost is compared with a predetermined optimum rate-distortion cost value, and the calculated bit-amount predictive value is compared with a preset optimum bit-amount to perform a coding operation on the encoding mode Determining whether to omit it; Determining a coding mode for the current coding block using the determined minimum rate-distortion cost value; And updating the order of the encoding mode after performing the encoding. According to an embodiment of the present invention, an adaptive coding mode ordering method and apparatus for determining an HEVC fast coding mode can be provided.

Description

HEVC 고속 부호화 모드 결정을 위한 적응적 부호화 모드 순서 정렬 방법 및 장치{METHOD AND APPARATUS OF ADAPTIVE CODING MODE ORDERING FOR EARLY MODE DECISION OF HEVC}Field of the Invention < RTI ID = 0.0 > [0001] < / RTI > The present invention relates to an adaptive coding mode ordering method and apparatus for determining an HEVC fast encoding mode,

본 발명은 본 발명은 영상 부호화 및 복호화 기술에 관한 것으로, 보다 구체적으로는 고효율 비디오 코딩(HEVC: High Efficiency Video Coding) 고속 부호화 모드 결정을 위한 적응적 부호화 모드 순서 정렬 방법 및 장치에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to image encoding and decoding techniques, and more particularly, to an adaptive encoding mode ordering method and apparatus for determining a high-efficiency video coding (HEVC) fast encoding mode.

최근 고화질(HD: High Definition) 해상도를 지원하는 방송 시스템이 국내뿐만 아니라 세계적으로 확대되면서, 많은 사용자들이 고해상도 및 고화질의 영상에 익숙해지고 있다. 그리고, 이에 따라 많은 기관들이 차세대 영상기기의 개발에 박차를 가하고 있다. 또한, 고화질 텔레비전(HDTV: High Definition television)과 더불어 HDTV의 4배 이상의 해상도를 갖는 초고화질(UHD: Ultra High Definition)에 대한 관심이 증대되면서, 더욱 높은 해상도 및 고화질의 영상에 대한 압축 기술이 요구되고 있다.Recently, as broadcasting system supporting high definition (HD) resolution has expanded not only in Korea but also in the world, many users are getting used to high definition and high definition video. In addition, many organizations are spurring the development of next generation video equipment. In addition, as interest in ultra high definition (UHD) with resolution of four times or more of HDTV is increased along with high definition television (HDTV), compression technology for higher resolution and high image quality is required .

영상 압축을 위해, 현재 픽처의 픽셀 정보를 예측에 의해 부호화할 수 있다. 예컨대, 시간적으로 이전 및/또는 이후의 픽처로부터 현재 픽처에 포함된 픽셀 값을 예측하는 인터(inter) 예측 기술, 현재 픽처 내의 픽셀 정보를 이용하여 현재 픽처에 포함된 픽셀 값을 예측하는 인트라(intra) 예측 기술이 적용될 수 있다.For image compression, pixel information of the current picture can be encoded by prediction. For example, an inter prediction technique for predicting pixel values included in a current picture from temporally preceding and / or following pictures, an inter prediction technique for predicting pixel values included in a current picture using pixel information in the current picture, ) Prediction technique can be applied.

또한, 출현 빈도가 높은 심볼(symbol)에 짧은 부호를 할당하고 출현 빈도가 낮은 심볼에 긴 부호를 할당하는 엔트로피 부호화 기술을 적용하여, 부호화 효율을 높이고 전송되는 정보량을 줄일 수 있다. In addition, an entropy encoding technique for assigning a short code to a symbol having a high appearance frequency and allocating a long code to a symbol having a low appearance frequency can be applied to reduce coding efficiency and the amount of information to be transmitted.

한편, ITU-T/ISO/IEC JCT-VC(Joint Collaborative Team on Video Coding)에서는 기존 AVC/H.264 코덱 대비 동일한 화질에서 2 배 이상의 부호화 효율을 가지는 고효율 비디오 코딩(HEVC: High Efficiency Video Coding)으로 명명한 비디오 부호화 표준 기술을 개발하여 2013년 1월 최종 국제표준안(FDIS: Final Draft International Standard)을 발간하여 그 표준화 작업을 완료하였다. 이에 고화질 동영상 서비스를 원하는 사업자들은 기존 사용하던 AVC/H.264 코덱을 HEVC로 교체하고자 하는 요구가 급증하고 있다. 그런데, HEVC 기술에서는 높은 부호화 성능을 달성하기 위해서 많은 기술들이 추가되었고, 이로 인해 부호화기의 복잡도가 크게 증가하였다. 따라서, HEVC 기술이 시장에서 활용되기 위해서는 부호화기의 복잡도를 감소시키고, 이에 따른 부호화 속도 개선이 필요하다. In the ITU-T / ISO / IEC Joint Collaborative Team on Video Coding (JCT-VC), High Efficiency Video Coding (HEVC) having a coding efficiency twice as high as that of the existing AVC / (FDIS) was published in January 2013, and the standardization work has been completed. Therefore, operators who want to use high-definition video service are increasingly demanding to replace the existing AVC / H.264 codec with HEVC. However, in HEVC technology, many techniques have been added to achieve high coding performance, which has greatly increased the complexity of the encoder. Therefore, in order to utilize HEVC technology in the market, it is necessary to reduce the complexity of the encoder and improve the coding speed accordingly.

본 발명은 상술한 문제점을 해결하기 위한 것으로, 고효율 비디오 코딩(HEVC: High Efficiency Video Coding) 고속 부호화 모드 결정을 위한 적응적 부호화 모드 순서 정렬 방법 및 장치를 제공하기 위한 것이다.SUMMARY OF THE INVENTION The present invention has been made to solve the above-mentioned problems, and it is an object of the present invention to provide an adaptive coding mode ordering method and apparatus for determining a High Efficiency Video Coding (HEVC) fast coding mode.

본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention, unless further departing from the spirit and scope of the invention as defined by the appended claims. It will be possible.

상기 목적을 달성하기 위해 본 발명의 일 실시 예에 따른 부호화 모드 결정 방법은, 초기화 단계를 통해 현재 부호화 모드로 부호화 하는 경우의 율-왜곡 비용의 예측 값 및 비트량 예측 값을 계산하는 단계; 상기 계산된 율-왜곡 비용의 예측 값과 미리 설정된 최적의 율-왜곡 비용 값을 비교하고, 상기 계산된 비트량 예측 값과 미리 설정된 최적의 비트량을 비교하여, 상기 부호화 모드에 대한 부호화 연산을 생략할지 여부를 판단하는 단계; 결정된 최소 율-왜곡 비용 값을 이용하여 현재 부호화 블록에 대한 부호화 모드를 결정하는 단계; 및 부호화를 수행한 후 부호화 모드의 순서를 업데이트하는 단계;를 포함할 수 있다.According to another aspect of the present invention, there is provided a method for determining a coding mode, the method comprising: calculating a predicted value of a rate-distortion cost and a predicted bit value for coding in a current coding mode through an initialization step; And a predicted value of the rate-distortion cost is compared with a predetermined optimum rate-distortion cost value, and the calculated bit-amount predictive value is compared with a preset optimum bit-amount to perform a coding operation on the encoding mode Determining whether to omit it; Determining a coding mode for the current coding block using the determined minimum rate-distortion cost value; And updating the order of the encoding mode after performing the encoding.

본 발명의 일 실시 예에 따르면, 고효율 비디오 코딩(HEVC: High Efficiency Video Coding) 고속 부호화 모드 결정을 위한 적응적 부호화 모드 순서 정렬 방법 및 장치를 제공할 수 있다. According to an embodiment of the present invention, an adaptive coding mode ordering method and apparatus for determining a High Efficiency Video Coding (HEVC) fast coding mode can be provided.

그리고 이에 다라 부호화 속도 및 효율에 대해서 모두 우수한 성능을 가질 수 있다. In addition, it can have excellent performance both in encoding speed and efficiency.

본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The effects obtained by the present invention are not limited to the above-mentioned effects, and other effects not mentioned can be clearly understood by those skilled in the art from the following description will be.

도 1은 본 발명의 일 실시 예에 따른 부호화 장치의 블록 구성도의 일 예이다.
도 2는 본 발명의 일 실시 예에 따른 복호화 장치의 블록 구성도의 일 예이다.
도 3은 쿼드트리 구조로 분할된 CU의 일 예를 도시한 도면이다.
도 4는 CU에 적용되는 PU 분할 모드의 일 예를 도시한 도면이다.
도 5는 CU의 부호화 모드를 결정하기 위한 순서도의 일 예를 도시한 도면이다.
도 6은 CTU에서 최소 율-왜곡 비용을 갖는 쿼드트리 구조의 일 예를 도시한 도면이다.
도 7은 본 발명의 일 실시 예에 따른 부호화기 구성 중 랜덤 엑세스 구성 구조도의 일 예를 도시한 도면이다.
도 8은 본 발명의 일 실시 예에 따른 FMD 단계에서 CU 부호화 모드를 결정하기 위한 순서도의 일 예를 도시한 도면이다.
1 is an example of a block diagram of a coding apparatus according to an embodiment of the present invention.
2 is a block diagram of a decoding apparatus according to an embodiment of the present invention.
3 is a diagram illustrating an example of a CU divided into a quadtree structure.
4 is a diagram showing an example of a PU division mode applied to a CU.
5 is a diagram showing an example of a flowchart for determining a coding mode of a CU.
6 is a diagram illustrating an example of a quadtree structure having a minimum rate-distortion cost in the CTU.
FIG. 7 is a block diagram illustrating a random access configuration of an encoder according to an exemplary embodiment of the present invention. Referring to FIG.
FIG. 8 is a flowchart illustrating a method for determining a CU coding mode in the FMD step according to an exemplary embodiment of the present invention. Referring to FIG.

이하, 본 명세서의 실시 예의 실시 예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

실시 예를 설명함에 있어서 본 명세서의 실시 예가 속하는 기술 분야에 익히 알려져 있고 본 명세서의 실시 예와 직접적으로 관련이 없는 기술 내용에 대해서는 설명을 생략한다. 이는 불필요한 설명을 생략함으로써 본 명세서의 실시 예의 요지를 흐리지 않고 더욱 명확히 전달하기 위함이다.In describing the embodiments, descriptions of techniques which are well known in the art to which the embodiments of the present invention belong, and which are not directly related to the embodiments of the present specification are not described. This is for the sake of clarity of the gist of the embodiment of the present invention without omitting the unnecessary explanation.

본 명세서에서 어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있는 것을 의미할 수도 있고, 중간에 다른 구성 요소가 존재하는 것을 의미할 수도 있다. 아울러, 본 명세서에서 특정 구성을 "포함" 한다고 기술하는 내용은 해당 구성 이외의 구성을 배제하는 것이 아니며, 추가적인 구성이 본 발명의 실시 또는 본 발명의 기술적 사상의 범위에 포함될 수 있음을 의미한다.When an element is referred to herein as being "connected" or "connected" to another element, it may mean directly connected or connected to the other element, Element may be present. In addition, the content of "including" a specific configuration in this specification does not exclude a configuration other than the configuration, and means that additional configurations can be included in the scope of the present invention or the scope of the present invention.

또한, 제1, 제2 등의 용어는 다양한 구성들을 설명하는데 사용될 수 있지만, 상기 구성들은 상기 용어에 의해 한정되지 않는다. 상기 용어들은 하나의 구성을 다른 구성으로부터 구별하는 목적으로 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성은 제2 구성으로 명명될 수 있고, 유사하게 제2 구성도 제1 구성으로 명명될 수 있다.Also, the terms first, second, etc. may be used to describe various configurations, but the configurations are not limited by the term. The terms are used for the purpose of distinguishing one configuration from another. For example, without departing from the scope of the present invention, the first configuration may be referred to as the second configuration, and similarly, the second configuration may be named as the first configuration.

그리고, 본 발명의 실시 예에 나타나는 구성부들은 서로 다른 특징적인 기능을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성 단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 포함한 것으로 각 구성부 중 적어도 두 개의 구성부가 하나의 구성부를 이루거나, 하나의 구성부가 복수 개의 구성부로 나뉘어져 기능을 수행할 수 있다. 각 구성부의 통합된 실시 예 및 분리된 실시 예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리 범위에 포함된다.In addition, the components shown in the embodiments of the present invention are shown independently to represent different characteristic functions, and do not mean that each component is composed of separate hardware or one software constituent unit. That is, each constituent unit is included in each constituent unit for convenience of explanation, and at least two constituent units of each constituent unit may form one constituent unit or one constituent unit may be divided into a plurality of constituent units to perform a function. The integrated embodiments and the separate embodiments of each component are also included in the scope of the present invention unless they depart from the essence of the present invention.

또한, 일부의 구성 요소는 본 발명에서 본질적인 기능을 수행하는 필수적인 구성 요소는 아니고 단지 성능을 향상시키기 위한 선택적 구성 요소일 수 있다. 본 발명은 단지 성능 향상을 위해 사용되는 구성 요소를 제외한 본 발명의 본질을 구현하는데 필수적인 구성부만을 포함하여 구현될 수 있고, 단지 성능 향상을 위해 사용되는 선택적 구성 요소를 제외한 필수 구성 요소만을 포함한 구조도 본 발명의 권리범위에 포함된다.In addition, some of the components are not essential components to perform essential functions in the present invention, but may be optional components only to improve performance. The present invention can be implemented only with components essential for realizing the essence of the present invention, except for the components used for the performance improvement, and can be implemented by only including the essential components except the optional components used for performance improvement Are also included in the scope of the present invention.

하기에서 본 명세서의 실시 예를 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 명세서의 실시 예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 이하 첨부된 도면을 참조하여 본 명세서의 실시 예의 실시 예를 설명하기로 한다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS In the following description of the embodiments of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present disclosure rather unclear. DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, embodiments of the present invention will be described with reference to the accompanying drawings. The following terms are defined in consideration of the functions of the present invention, and these may be changed according to the intention of the user, the operator, or the like. Therefore, the definition should be based on the contents throughout this specification.

도 1은 본 발명의 일 실시 예에 따른 부호화 장치의 블록 구성도의 일 예이다. 1 is an example of a block diagram of a coding apparatus according to an embodiment of the present invention.

도 1을 참고하면, 본 발명의 일 실시 예에 따른 부호화 장치(100)는 움직임 예측부(111), 움직임 보상부(112), 인트라 예측부(120), 스위치(115), 감산기(125), 변환부(130), 양자화부(140), 엔트로피 부호화부(150), 역양자화부(160), 변환부(170), 가산기(175), 필터부(180) 및 참조 영상 버퍼(190) 등을 포함할 수 있다. 1, an encoding apparatus 100 according to an exemplary embodiment of the present invention includes a motion prediction unit 111, a motion compensation unit 112, an intra prediction unit 120, a switch 115, a subtractor 125, An inverse quantization unit 160, a transform unit 170, an adder 175, a filter unit 180, and a reference image buffer 190, And the like.

이때, 부호화 장치(100)는 입력 영상에 대해 인트라(intra) 모드 또는 인터(inter) 모드로 부호화를 수행하고 비트 스트림(bit stream)을 출력할 수 있다. 인트라 예측은 화면 내 예측, 인터 예측은 화면 간 예측을 의미한다. 인트라 모드인 경우 스위치(115)가 인트라로 전환되고, 인터 모드인 경우 스위치(115)가 인터로 전환될 수 있다. 영상 부호화 장치(100)는 입력 영상의 입력 블록에 대한 예측 블록을 생성한 후, 입력 블록과 예측 블록의 차분(residual)을 부호화할 수 있다. 이때, 입력 영상은 원 영상(original picture)를 의미할 수 있다. At this time, the encoding apparatus 100 may perform encoding in an intra mode or an inter mode with respect to an input image and output a bit stream. Intra prediction is intra prediction, and inter prediction is inter prediction. In the intra mode, the switch 115 is switched to the intra mode, and in the inter mode, the switch 115 can be switched to the inter mode. The image encoding apparatus 100 may generate a prediction block for an input block of an input image, and then may code a residual between the input block and the prediction block. At this time, the input image may mean an original picture.

인트라 모드인 경우, 인트라 예측부(120)는 현재 블록 주변의 이미 부호화된 블록의 픽셀 값을 이용하여 공간적 예측을 수행하여 예측 블록을 생성할 수 있다. In the intra mode, the intra prediction unit 120 may generate a prediction block by performing spatial prediction using the pixel value of the already coded block around the current block.

인터 모디인 경우, 움직임 예측부(111)는 움직임 예측 과정에서 참조 영상 버퍼(190)에 저장되어 있는 참조 영상에서 입력 블록과 가장 매치가 잘 되는 영역을 찾아 움직임 벡터를 구할 수 있다. 움직임 보상부(112)는 움직임 벡터를 이용하여 움직임 보상을 수행함으로써 예측 블록을 생성할 수 있다. 여기서, 움직임 벡터는 인터 예측에 사용되는 2차원 벡터이며, 현재 블록과 참조 영상 내 블록 사이의 오프셋을 나타낼 수 있다. In the case of the intermodule, the motion predicting unit 111 may find a motion vector by searching an area of the reference image stored in the reference image buffer 190, which is best matched with the input block, in the motion prediction process. The motion compensation unit 112 may generate a prediction block by performing motion compensation using a motion vector. Here, the motion vector is a two-dimensional vector used for inter prediction, and can represent an offset between a current block and a block in the reference image.

도 1에서는 움직임 예측부(111), 움직임 보상부(112) 및 인트라 예측부(120)는 각각 별개의 구성으로 도시되어 있으나, 본 발명이 이에 한정되는 것은 아니다. 예컨대, 움직임 예측부(111) 및 움직임 보상부(112)는 하나의 인터 예측부를 구성할 수도 있으며, 움직임 예측부(111), 움직임 보상부(112) 및 인트라 예측부(120)는 하나의 예측부를 구성할 수도 있다.In FIG. 1, the motion prediction unit 111, the motion compensation unit 112, and the intra prediction unit 120 are shown as separate components, but the present invention is not limited thereto. For example, the motion prediction unit 111 and the motion compensation unit 112 may constitute one inter prediction unit, and the motion prediction unit 111, the motion compensation unit 112, and the intra prediction unit 120 may generate one prediction And the like.

감산기(125)는 입력 블록과 생성된 예측 블록의 차분에 의해 잔차 블록(residual block)을 생성할 수 있다. 변환부(130)는 잔차 블록에 대해 변환(transform)을 수행하여 변환 계수(transform coefficient)를 출력할 수 있다. 그리고 양자화부(140)는 입력된 변환 계수를 양자화 파라미터에 따라 양자화하여 양자화된 계수(quantized coefficient)를 출력할 수 있다.The subtractor 125 may generate a residual block by a difference between the input block and the generated prediction block. The transforming unit 130 may perform a transform on the residual block to output a transform coefficient. The quantization unit 140 may quantize the input transform coefficient according to the quantization parameter to output a quantized coefficient.

엔트로피 부호화부(150)는, 양자화부(140)에서 산출된 값들 또는 부호화 과정에서 산출된 부호화 파라미터 값 등을 기초로 엔트로피 부호화를 수행하여 비트 스트림(bit stream)을 출력할 수 있다.The entropy encoding unit 150 may output a bit stream by performing entropy encoding based on the values calculated by the quantization unit 140 or the encoding parameter values calculated in the encoding process.

엔트로피 부호화가 적용되는 경우, 높은 발생 확률을 갖는 심볼(symbol)에 적은 수의 비트가 할당되고 낮은 발생 확률을 갖는 심볼에 많은 수의 비트가 할당되어 심볼이 표현됨으로써, 부호화 대상 심볼들에 대한 비트열의 크기가 감소될 수 있다. 따라서 엔트로피 부호화를 통해서 영상 부호화의 압축 성능이 높아질 수 있다. 엔트로피 부호화부(150)는 엔트로피 부호화를 위해 지수-골롬 코드(Exponential-Golomb Code), CAVLC(Context-Adaptive Variable Length Coding), CABAC(Context-Adaptive Binary Arithmetic Coding)과 같은 부호화 방법을 사용할 수 있다.When entropy encoding is applied, a small number of bits are allocated to a symbol having a high probability of occurrence, and a large number of bits are allocated to a symbol having a low probability of occurrence, thereby expressing symbols, The size of the column can be reduced. Therefore, the compression performance of the image encoding can be enhanced through the entropy encoding. The entropy encoding unit 150 may use an encoding method such as Exponential-Golomb Code, Context-Adaptive Variable Length Coding (CAVLC), and Context-Adaptive Binary Arithmetic Coding (CABAC) for entropy encoding.

도 1의 실시 예에 따른 영상 부호화 장치는 인터 예측 부호화, 즉 화면 간 예측 부호화를 수행하므로, 현재 부호화된 영상은 참조 영상으로 사용되기 위해 복호화되어 저장될 필요가 있다. 따라서 양자화된 계수는 역양자화부(160)에서 역양자화되고 역변환부(170)에서 역변환된다. 역양자화 및 역변환된 계수는 복원된 잔차 블록이 되어 가산기(175)를 통해 예측 블록과 더해지고 복원 블록이 생성된다.Since the image encoding apparatus according to the embodiment of FIG. 1 performs inter prediction encoding, that is, inter-view prediction encoding, the currently encoded image needs to be decoded and stored for use as a reference image. Accordingly, the quantized coefficients are inversely quantized in the inverse quantization unit 160 and inversely transformed in the inverse transformation unit 170. The inverse quantized and inverse transformed coefficients become reconstructed residual blocks and added to the prediction block through an adder 175 to generate reconstructed blocks.

복원 블록은 필터부(180)를 거치고, 필터부(180)는 디블록킹 필터(deblocking filter), SAO(Sample Adaptive Offset), ALF(Adaptive Loop Filter) 중 적어도 하나 이상을 복원 블록 또는 복원 픽처에 적용할 수 있다. 필터부(180)는 인루프(in-loop) 필터로 불릴 수도 있다. 디블록킹 필터는 블록 간의 경계에 생긴 블록 왜곡 및/또는 블록킹 아티팩트(blocking artifact)를 제거할 수 있다. SAO는 코딩 에러를 보상하기 위해 픽셀 값에 적정 오프셋(offset) 값을 더해줄 수 있다. ALF는 복원된 영상과 원래의 영상을 비교한 값을 기초로 필터링을 수행할 수 있다. 필터부(180)를 거친 복원 블록은 참조 영상 버퍼(190)에 저장될 수 있다.The restoration block passes through the filter unit 180 and the filter unit 180 applies at least one of a deblocking filter, a sample adaptive offset (SAO), and an adaptive loop filter (ALF) can do. The filter unit 180 may be referred to as an in-loop filter. The deblocking filter may remove block distortion and / or blocking artifacts that have occurred at the boundary between the blocks. The SAO may add a proper offset value to the pixel value to compensate for coding errors. ALF can perform filtering based on the comparison between the reconstructed image and the original image. The restoration block having passed through the filter unit 180 may be stored in the reference image buffer 190.

도 2는 본 발명의 일 실시 예에 따른 복호화 장치의 블록 구성도의 일 예이다. 2 is a block diagram of a decoding apparatus according to an embodiment of the present invention.

도 2를 참고하면, 상기 영상 복호화 장치(200)는 엔트로피 복호화부(210), 역양자화부(220), 역변환부(230), 인트라 예측부(240), 움직임 보상부(250), 가산기(255), 필터부(260) 및 참조 영상 버퍼(270) 등을 포함할 수 있다.2, the image decoding apparatus 200 includes an entropy decoding unit 210, an inverse quantization unit 220, an inverse transform unit 230, an intra prediction unit 240, a motion compensation unit 250, an adder 255, a filter unit 260, a reference image buffer 270, and the like.

영상 복호화 장치(200)는 부호화기에서 출력된 비트 스트림을 입력 받아 인트라 모드 또는 인터 모드로 복호화를 수행하고 재구성된 영상, 즉 복원 영상을 출력할 수 있다. 인트라 모드인 경우 스위치가 인트라로 전환되고, 인터 모드인 경우 스위치가 인터로 전환될 수 있다. 영상 복호화 장치(200)는 입력 받은 비트 스트림으로부터 복원된 잔차 블록(reconstructed residual block)을 얻고 예측 블록을 생성한 후 복원된 잔차 블록과 예측 블록을 더하여 재구성된 블록, 즉 복원 블록을 생성할 수 있다.The video decoding apparatus 200 receives the bit stream output from the encoder and decodes the video stream into the intra mode or the inter mode, and outputs the reconstructed video, that is, the reconstructed video. In the intra mode, the switch is switched to the intra mode, and in the inter mode, the switch can be switched to the inter mode. The image decoding apparatus 200 may obtain a reconstructed residual block from the input bitstream, generate a prediction block, and add the reconstructed residual block and the prediction block to generate a reconstructed block, i.e., a reconstructed block .

엔트로피 복호화부(210)는, 입력된 비트스트림을 확률 분포에 따라 엔트로피 복호화하여, 양자화된 계수(quantized coefficient) 형태의 심볼을 포함한 심볼들을 생성할 수 있다. 엔트로피 복호화 방법은 상술한 엔트로피 부호화 방법과 유사하다.The entropy decoding unit 210 may entropy-decode the input bitstream according to a probability distribution to generate symbols including a symbol of a quantized coefficient type. The entropy decoding method is similar to the entropy encoding method described above.

엔트로피 복호화 방법이 적용되는 경우, 높은 발생 확률을 갖는 심볼에 적은 수의 비트가 할당되고 낮은 발생 확률을 갖는 심볼에 많은 수의 비트가 할당되어 심볼이 표현됨으로써, 각 심볼들에 대한 비트열의 크기가 감소될 수 있다.When the entropy decoding method is applied, a small number of bits are assigned to a symbol having a high probability of occurrence, and a large number of bits are assigned to a symbol having a low probability of occurrence, so that the size of a bit string for each symbol is Can be reduced.

양자화된 계수는 역양자화부(220)에서 양자화 파라미터를 이용해서 역양자화되고 역변환부(230)에서 역변환되며, 양자화된 계수가 역양자화/역변환된 결과, 복원된 잔차 블록이 생성될 수 있다.The quantized coefficients are inversely quantized using the quantization parameters in the inverse quantization unit 220 and inversely transformed in the inverse transformation unit 230. The reconstructed residual blocks can be generated as a result of inverse quantization / inverse transformation of the quantized coefficients.

인트라 모드인 경우, 인트라 예측부(240)는 현재 블록 주변의 이미 복호화된 블록의 픽셀 값을 이용하여 공간적 예측을 수행하여 예측 블록을 생성할 수 있다. 인터 모드인 경우, 움직임 보상부(250)는 움직임 벡터 및 참조 영상 버퍼(270)에 저장되어 있는 참조 영상을 이용하여 움직임 보상을 수행함으로써 예측 블록을 생성할 수 있다.In the intra mode, the intraprediction unit 240 may generate a prediction block by performing spatial prediction using the pixel value of the already decoded block around the current block. In the inter mode, the motion compensation unit 250 can generate a prediction block by performing motion compensation using a motion vector and a reference image stored in the reference image buffer 270. [

도 2의 실시 예에서, 인트라 예측부(240) 및 움직임 보상부(250)는 각각 별개의 구성으로 도시되어 있으나, 본 발명이 이에 한정되는 것은 아니다. 예컨대, 인트라 예측부(240) 및 움직임 보상부(250)는 하나의 예측부를 구성할 수도 있다.In the embodiment of FIG. 2, the intraprediction unit 240 and the motion compensation unit 250 are shown as separate components, but the present invention is not limited thereto. For example, the intraprediction unit 240 and the motion compensation unit 250 may constitute one prediction unit.

복원된 잔차 블록과 예측 블록은 가산기(255)를 통해 더해지고, 더해진 블록은 필터부(260)를 거칠 수 있다. 필터부(260)는 디블록킹 필터, SAO, ALF 중 적어도 하나 이상을 복원 블록 또는 복원 픽처에 적용할 수 있다. 필터부(260)는 재구성된 영상, 즉 복원 영상을 출력할 수 있다. 복원 영상은 참조 영상 버퍼(270)에 저장되어 인터 예측에 사용될 수 있다.The reconstructed residual block and the prediction block are added through the adder 255, and the added block can be passed through the filter unit 260. The filter unit 260 may apply at least one of a deblocking filter, SAO, and ALF to a restoration block or a restored picture. The filter unit 260 may output a reconstructed image, that is, a reconstructed image. The restored image is stored in the reference image buffer 270 and can be used for inter prediction.

이하, 블록은 부호화 및 복호화의 단위를 의미한다. 부호화 및/또는 복호화 과정에서, 영상은 소정의 크기로 분할되어 부호화 및/또는 복호화된다. 따라서, 블록은 매크로 블록(MB: Macro Block), 부호화 유닛(CU: Coding Unit), 예측 유닛(PU: Prediction Unit), 변환 유닛(TU: Transform Unit) 등으로 불릴 수도 있으며, 하나의 블록은 더 작은 크기의 하위 블록으로 분할될 수도 있다.Hereinafter, a block means a unit of encoding and decoding. In the encoding and / or decoding process, the image is divided into a predetermined size and then encoded and / or decoded. Therefore, the block may be referred to as a macro block (MB), a coding unit (CU), a prediction unit (PU), a transform unit (TU) It may be divided into sub-blocks of small size.

한편, 전통적인 비디오 부호화기에서는 16x16(픽셀)로 이루어진 매크로 블록을 기반으로 부호화가 이루어졌지만, 고효율 비디오 코딩(HEVC: High Efficiency Video Coding) 부호화기에서는 부호화 트리 유닛(CTU: Coding Tree Unit)을 기반으로 부호화가 이루어진다. CTU는 64x64, 32x32, 16x16의 크기를 가질 수 있으며, 일반적으로 64x64 크기를 많이 사용하고 있다. 이러한 CTU를 기반으로 쿼드트리 부호화(Quadtree Coding)이 이루어지게 되는데, CTU 내에서 쿼드트리(Quadtree) 형태로 나누어진 각 블록에 해당하는 부호화 유닛(CU: Coding Unit)을 기반으로 예측 및 변환 부호화가 이루어질 수 있다. CU는 64x64, 32x32, 16x16, 8x8의 값을 가질 수 있으며, CTU 내에서 쿼드트리 구조를 가지면서 율-왜곡 비용을 최소화시킬 수 있는 형태로 구성된다. On the other hand, in a conventional video encoder, a high-efficiency video coding (HEVC) encoder performs coding based on a 16 × 16 (macroblock) pixel. However, in a high efficiency video coding (HEVC) . CTUs can have sizes of 64x64, 32x32, and 16x16, and generally use 64x64. Quadtree coding is performed based on the CTU. In the CTU, prediction and transcoding are performed based on a coding unit (CU) corresponding to each block divided into a quadtree type. Lt; / RTI > The CU can have values of 64x64, 32x32, 16x16, and 8x8, and has a quad tree structure in the CTU, and is configured to minimize the rate-distortion cost.

도 3은 쿼드트리 구조로 분할된 CU의 일 예를 도시한 도면이다. 3 is a diagram illustrating an example of a CU divided into a quadtree structure.

도 3을 참고하면, 64x64 CTU가 쿼드트리 구조를 가지면서 최소의 율-왜곡 비용을 갖는 구조를 찾기 위해서 부호화가 필요한 CU가 도시되어 있다. CTU를 기반으로 부호화가 이루어질 경우, 최소의 율-왜곡 비용을 갖는 부호화 구조를 찾기 위해서 CTU는 쿼드트리 구조를 기반으로 분할될 수 있다. 쿼드트리 구조는 재귀적인(recursive) 트리 구조로, 하나의 CTU를 루트 노드로 하여 4개의 자식 노드로 분할될 수 있다. 그리고 분할된 4개의 자식 노드를 부모 노드로 하여 각 부모 노드에 대해 다시 4개의 자식 노드로 분할이 이루어질 수 있다. Referring to FIG. 3, there is shown a CU that requires encoding in order to find a structure in which a 64x64 CTU has a quad tree structure and has a minimum rate-distortion cost. When encoding is performed based on CTU, the CTU can be divided based on a quadtree structure to find a coding structure having a minimum rate-distortion cost. The quadtree structure is a recursive tree structure, and can be divided into four child nodes with one CTU as a root node. Then, the divided child nodes can be divided into four child nodes for each parent node.

예를 들면, YUV 4:2:0 포맷(format)을 갖는 64x64 크기의 CTU에서 Y성분에 대해 최적의 구조를 찾는 경우, 64x64 크기의 CTU는 쿼드트리 구조로 분할되어 1개의 64x64 크기의 CU(310), 4개의 32x32 크기의 CU(320), 16개의 16x16 크기의 CU(330), 64개의 8x8 크기의 CU(340)로 이루어질 수 있다. 이때, 각 크기의 CU에 대해 CU가 가질 수 있는 부호화 모드로 부호화를 수행하여 최소의 율-왜곡 비용을 갖는 부호화 구조를 찾을 수 있다. For example, in a 64x64 CTU with YUV 4: 2: 0 format, if the optimal structure for the Y component is sought, the 64x64 CTU is divided into a quad tree structure to form one 64x64 CU 310, four 32x32 CUs 320, 16 16x16 CUs 330, and 64 8x8 CUs 340. As shown in FIG. At this time, the coding scheme having a minimum rate-distortion cost can be found by performing coding in a coding mode that the CU can have for each size of CU.

한편, HEVC 기술에서 사용되는 부호화 모드는 상술한 바와 같이 화면 간 예측을 수행하는 인터 모드(inter mode)와 화면 내 예측을 수행하는 인트라 모드(intra mode)가 있다.On the other hand, the coding mode used in the HEVC technology includes an inter mode for performing inter picture prediction and an intra mode for performing intra picture prediction as described above.

도 4는 CU에 적용되는 PU 분할 모드의 일 예를 도시한 도면이다. 4 is a diagram showing an example of a PU division mode applied to a CU.

상기 도 3과 관련된 부분에서 설명한 바와 같이, CTU는 쿼드트리 구조로 분할되어 예컨대, 64x64, 32x32, 16x16, 8x8 크기의 CU로 구성될 수 있다. 그리고 각 크기의 CU는 스킵(skip) 모드, 머지(merge) 모드, 인터(inter) 모드, 인트라(intra) 모드 중에서 최소의 율-왜곡 비용을 갖는 모드로 부호화될 수 있다. 이때, 상기 각 크기의 CU는 부호화 모드에 따라서 분할(partition)된 블록 모양으로 부호화될 수 있다. As described in connection with FIG. 3, the CTU may be divided into a quad tree structure, for example, 64x64, 32x32, 16x16, and 8x8 size CUs. The CU of each size can be coded in a mode having a minimum rate-distortion cost among a skip mode, a merge mode, an inter mode, and an intra mode. At this time, the CU of each size can be encoded into a partitioned block shape according to the encoding mode.

이때, 도 4에서와 같이, 각 크기의 CU는 8가지 형태의 예측 유닛(PU: prediction unit) 분할 모드(partition mode)를 가질 수 있다. 이 경우, 인터 예측 모드에서 CU는 최대 8개의 분할 모드(2N x 2N, 2N x N, N x 2N, N x N, 2N x nU, 2N x nD, nL x 2N, nR x 2N)(410, 420, 430, 440, 450, 460, 470, 480)를 사용하여 부호화될 수 있다. 그리고, 인트라 예측 모드에서는 CU는 최대 2개의 분할 모드(2N x 2N, N x N)(410, 440)를 사용하여 부호화될 수 있다. 그리고 이들 부호화 모드를 확인하여 최소 율-왜곡 비용을 갖는 부호화 모드를 찾을 수 있다. At this time, as shown in FIG. 4, the CU of each size may have eight types of prediction unit (PU) partition mode. In this case, in the inter prediction mode, the CU is divided into a maximum of eight division modes (2N x 2N, 2N x N, N x 2N, N x N, 2N x nU, 2N x nD, nL x 2N, 420, 430, 440, 450, 460, 470, 480). In the intra prediction mode, the CU can be coded using up to two divided modes (2N x 2N, N x N) 410 and 440. Then, by checking the coding modes, an encoding mode having a minimum rate-distortion cost can be found.

이때, 율-왜곡 비용은 다음 [수학식 1]에 따라 계산될 수 있다. At this time, the rate-distortion cost can be calculated according to the following equation (1).

Figure 112015022820936-pat00001
Figure 112015022820936-pat00001

이때, J는 율-왜곡 비용을 의미하며, D는 원-영상과 복원-영상 간의 차이에 대한 SSE(Sum of Square Error) 값이고, λ는 라그랑지안(Lagrangian) 상수이고, B는 부호화 시 발생한 비트량을 나타낸다. 이때, 라그랑지안 상수 값은 QPI, 슬라이스 타입(slice type), GOP(group of pictures) 구조 등의 변수에 의해서 결정될 수 있다. D is the Sum of Square Error (SSE) value for the difference between the original image and the reconstructed image, λ is a Lagrangian constant, B is the bit generated during encoding, . At this time, the Lagrangian constant value can be determined by a variable such as a QPI, a slice type, and a GOP (group of pictures) structure.

도 5는 CU의 부호화 모드를 결정하기 위한 순서도의 일 예를 도시한 도면이고, 도 6은 CTU에서 최소 율-왜곡 비용을 갖는 쿼드트리 구조의 일 예를 도시한 도면이다. FIG. 5 illustrates an example of a flowchart for determining a coding mode of a CU, and FIG. 6 illustrates an example of a quadtree structure having a minimum rate-distortion cost in a CTU.

도 5를 참고하면, 부호화기는 모드에 따라 부호화 시 발생한 비트량 B와 그에 따른 율-왜곡 비용 J를 계산하여 최소의 율-왜곡 비용을 갖는 쿼드트리 구조를 찾을 수 있다. Referring to FIG. 5, the encoder can find a quadtree structure having a minimum rate-distortion cost by calculating a bit amount B generated in coding according to a mode and a rate-distortion cost J corresponding thereto.

먼저, 510 단계에서 최적의 J 값(Jbest)과 최적의 B 값(Bbest)으로 각각 J 값의 최대 값(Jmax)와 B 값의 최대 값(Bmax)을 설정할 수 있다. 그리고, 520 단계에서 각각의 모드 Mi에 대한 J 값을 계산할 수 있다. First, in step 510, the maximum value (J max ) of the J value and the maximum value (B max ) of the B value can be set to the optimum J value (J best ) and the optimum B value (B best ), respectively. In step 520, the J value for each mode M i can be calculated.

이후, 530 단계에서는 상기 520 단계에서 계산된 i 번째 모드(Mi)에 대한 J 값이 현재 설정된 최적의 J 값(Jbest)과 비교할 수 있다. 그리고 비교 결과 i 번째 모드(Mi)에 대한 J 값이 현재 설정된 최적의 J 값(Jbest)보다 작은 경우 540 단계에서 현재 계산된 i 번째 모드(Mi)에 대한 J 값을 최적의 J 값(Jbest)으로 설정할 수 있다. 그리고 현재의 i 번째 모드(Mi)를 최적의 모드로 설정할 수 있다. Thereafter, in step 530, the J value for the i-th mode M i calculated in step 520 may be compared with the currently set optimum J value J best . And the comparison i-th mode (M i) J is a currently established optimal value J (J best) is less than the current calculated in 540 steps i-th mode, the J value optimum J values for (M i) of the (J best ). And the current i-th mode ( Mi ) can be set to the optimum mode.

반면, 상기 530 단계에서 비교 결과, i 번째 모드(Mi)에 대한 J 값이 현재 설정된 최적의 J 값(Jbest)보다 작지 않은 경우, 550 단계에서 모든 후보 모드들에 대한 J 값을 체크하였는지 여부를 판단할 수 있다. 그리고 판단 결과 모든 후보 모드들에 대한 J 값을 체크하였으면 절차를 종료하고, 그렇지 않은 경우라면 560 단계에서 다음 모드에 대한 J 값을 체크하도록 할 수 있다. 즉, i 번째 모드(Mi)에 대한 J 값이 현재 설정된 최적의 J 값(Jbest)보다 작지 않은 경우라면 현재 설정되어 있는 최적의 J 값(Jbest)을 유지하고 다음 번 모드에 대한 J 값을 계산하여 이를 설정되어 있는 최적의 J 값(Jbest)과 비교하는 과정을 반복할 수 있다. On the other hand, the result of comparison, if it is less than the i th mode (M i) optimal value J (J best) J values are currently set for the, whether Check the J value for all candidate modes in step 550. In the step 530 Can be determined. If the J value of all the candidate modes is checked as a result of the determination, the procedure is terminated. Otherwise, the J value of the next mode may be checked in step 560. That is, if the J value for the i-th mode (M i ) is not smaller than the currently set optimum J value (J best ), the currently set optimum J value (J best ) Value and compares it with the set optimal J value (J best ).

한편, 실시 예에 따라서는 도시된 바와 같이 570 단계에서 다음 번 모드에 대한 J 값이 고려되었는지 여부를 판단하여 고려된 것이 아닌 경우에만 다시 J 값을 계산하여 이를 현재 설정된 최적의 J 값(Jbest)과 비교하도록 할 수도 있다. On the other hand, according to the embodiment shown the best of the J value by calculating back the J value only if it is not be considered to determine whether the J values are taken into account for the next mode at step 570 is set this current, as (J best ). ≪ / RTI >

도 6을 참고하면 CTU에서 이렇게 결정된 최소의 율-왜곡 비용을 갖는 쿼드트리 구조의 일 예가 도시되어 있다. 예를 들면, 64x64 크기의 CTU가 상기 도 5와 관련된 부분에서 설명한 바와 같은 쿼드트리 기반의 부호화 과정을 수행하면, 도 6에 도시된 바와 같은 64x64 크기의 CTU 내에서 쿼드트리 구조를 가지면서 율-왜곡 비용을 최소화시킬 수 있는 형태로 도출될 수 있다. Referring to FIG. 6, an example of a quadtree structure having the minimum rate-distortion cost thus determined in the CTU is shown. For example, when a 64x64 CTU carries out a quad-tree-based encoding process as described with reference to FIG. 5, a CTU having a size of 64x64 as shown in FIG. 6 has a quad- Can be derived in a form that minimizes the distortion cost.

이와 같은 방법의 경우 각 CU에서 최대 10 개의 부호화 모드를 확인하여 최소의 율-왜곡 비용을 갖는 부호화 모드를 찾아내야 하므로, CTU 내에서 최소의 율-왜곡 비용을 갖는 쿼드트리 구조를 찾는 과정은 매우 많은 복잡도를 가지고 있다. In such a case, it is necessary to find a coding mode having a minimum rate-distortion cost by checking a maximum of 10 coding modes in each CU. Therefore, the process of finding a quadtree structure having a minimum rate- It has a lot of complexity.

그리고 HEVC의 참조 SW인 HM(HEVC Test Model)에서는 이러한 복잡도를 줄이기 위해 스킵/머지(skip/merge) 2N x 2N 부호화 모드 내에서 스킵(skip), 머지(merge)를 빠르게 결정하기 위한 방법(JCTVC-H178), AMP의 연산 량을 줄이기 위한 방법(JCTVC-E316), 인터 예측 잔차(Inter prediction residual) 신호가 작을 경우 인터 예측(Intra prediction)을 생략하는 방법(JCTVC-N1002v1) 등이 적용될 수 있다. 하지만, 이러한 방법들은 율-왜곡 비용이 계산되는 모드의 순서가 고정되어 있으므로 시간에 따라 변하는 동영상의 특성과 부호화 구조의 특성을 반영하기가 힘들다.In order to reduce the complexity, HM (HEVC Test Model) which is a reference SW of the HEVC, a method for quickly determining a skip and a merge in a skip / merge 2N x 2N coding mode (JCTVC (JCTVC-E316), a method of omitting intra prediction when the inter prediction residual signal is small (JCTVC-N1002v1), and the like can be applied . However, these methods have difficulty in reflecting the characteristics of the moving picture and the characteristics of the coding structure that change with time because the order of the mode in which the rate-distortion cost is calculated is fixed.

이에 따라, 본 발명의 일 실시 예에 따른 HEVC 고속 부호화 모드 결정을 위한 적응적 부호화 모드 순서 정렬 방법 및 장치는, 동영상의 특성을 적용하기 위해 초기화(initialization) 단계와 고속 모드 결정(FMD: fast mode decision) 단계로 나누어 부호화가 이루어질 수 있다. 그리고 이에 따라 최적의 모드(best mode)의 분포에 따라 최소의 율-왜곡 비용을 계산하기 위한 부호화 모드의 순서가 업데이트될 수 있다. 한편, 상기 초기화 단계와 고속 모드 결정 단계라는 용어는 설명의 편의를 위한 것으로 반드시 이러한 용어에 한정되어 해석될 것은 아니다. Accordingly, an adaptive encoding mode ordering method and apparatus for determining an HEVC fast encoding mode according to an embodiment of the present invention includes an initialization step and a fast mode decision (FMD) decision step. And thus the order of the encoding mode for calculating the minimum rate-distortion cost according to the distribution of the best mode may be updated. Meanwhile, the terms 'initialization step' and 'fast mode determination step' are for convenience of description and are not necessarily interpreted to be limited to these terms.

도 7은 본 발명의 일 실시 예에 따른 부호화기 구성 중 랜덤 엑세스 구성 구조도의 일 예를 도시한 도면이다. FIG. 7 is a block diagram illustrating a random access configuration of an encoder according to an exemplary embodiment of the present invention. Referring to FIG.

본 발명의 일 실시 예에 따르면, 방송 서비스 등 랜덤 엑세스(random access)를 지원해야 하는 부호화 구조가 적용될 수 있다. 도 7을 참고하면, 부호화기, 예를 들면 HM 부호화기의 구성(configuration) 중 랜덤 엑세스 구성(random access configuration) 구조도가 도시되어 있다. 도 7에서 사각형의 왼쪽에 표시된 숫자는 인터 코디드 프레임(inter coded frame)의 부호화 순서이다.

Figure 112015022820936-pat00002
에서 s는 부호화 단계를 나타내는데, I는 초기화(initialization) 단계를 나타내고, F는 고속 모드 결정(FMD) 단계를 나타낸다. l과 k는 템포럴 레이어(temporal layer) 및 해당 단계의 템포럴 레이어(temporal layer)에서 부호화되는 순서를 각각 나타낸다. 이때, 초기화 단계에서는 FMD 단계에서 사용될 초기 파라미터와 부호화 모드 순서가 도출될 수 있다. According to an embodiment of the present invention, a coding structure that supports random access such as a broadcasting service can be applied. Referring to FIG. 7, there is shown a random access configuration of a configuration of an encoder, for example, an HM encoder. In Figure 7, the numbers to the left of the rectangle are the coding order of the inter-coded frames.
Figure 112015022820936-pat00002
Where s denotes an encoding step, I denotes an initialization step, and F denotes a fast mode decision (FMD) step. l and k denote the order in which they are coded in the temporal layer and the temporal layer of the corresponding stage, respectively. At this time, the initialization parameters to be used in the FMD step and the coding mode order can be derived in the initialization step.

도 8은 본 발명의 일 실시 예에 따른 FMD 단계에서 CU 부호화 모드를 결정하기 위한 순서도의 일 예를 도시한 도면이다. FIG. 8 is a flowchart illustrating a method for determining a CU coding mode in the FMD step according to an exemplary embodiment of the present invention. Referring to FIG.

도 8을 참고하면, 초기화(initialization) 단계에서 도출된 초기 파라미터를 이용하여 율-왜곡 비용의 예측값(Jpred 값)과 부호화 시 발생한 비트량 예측 값(Bpred 값)을 계산할 수 있다. 그리고, Jpred 값이 Jbest 값보다 크거나, Bpred 값이 Bbest 값보다 큰 경우, 해당 부모화 모드에 대해서 율-왜곡 비용을 계산하는 과정을 생략할 수 있다. Referring to FIG. 8, a prediction value (J pred value) of the rate-distortion cost and a bit amount prediction value (B pred value) generated in encoding can be calculated using the initial parameters derived in the initialization step. If the J pred value is greater than the J best value and the B pred value is greater than the B best value, the process of calculating the rate-distortion cost for the corresponding parenting mode may be omitted.

이때, FMD 단계의 초기 부호화 모드 순서는 초기화(initialization) 단계의 부호화 결과를 분석하여, M1에서 M11의 최적 모드(best mode)의 분포가 높은 모드 순서대로 정해질 수 있다. In this case, the initial encoding mode order of the FMD step may be determined by analyzing the encoding result of the initialization step so that the distribution of the best mode M 1 to M 11 is high.

그리고 최적 모드(best mode)의 분포는 템포럴 레이어(temporal layer)의 CU 크기(size) 별로 계산되고, FMD 단계에서는 프레임(frame)의 부호화가 끝날 때마다 부호화 모드 순서가 업데이트될 수 있다. The distribution of the best mode is calculated for each CU size of the temporal layer. In the FMD step, the coding mode order can be updated every time the frame is coded.

이때, Jpred는 율-왜곡 비용의 예측값(또는 추정(예측) 율-왜곡 비용)으로 다음 [수학식 2] 및 [수학식 3]에 의해 결정될 수 있다. At this time, J pred can be determined by the following formula (2) and (3) as a predicted value of the rate-distortion cost (or estimated (prediction) rate-distortion cost).

Figure 112015022820936-pat00003
Figure 112015022820936-pat00003

Figure 112015022820936-pat00004
Figure 112015022820936-pat00004

이때, l은 템포럴 레이어(temporal layer)를 지시하고, k는 부호화 순서를 나타낸다. 그리고 h는 CU의 높이를, i는 CU의 부호화 모드 인덱스를 나타낸다. Here, l denotes a temporal layer, and k denotes a coding order. H denotes the height of the CU, and i denotes the coding mode index of the CU.

이때, 부호화 모드 Mi는 i 값에 따라 다음과 같을 수 있다. At this time, the encoding mode M i may be as follows according to the value of i.

i가 1일 경우, 부호화 모드는 부호화 모드는 2N x 2N 블록 모양의 스킵 모드일 수 있다.When i is 1, the encoding mode may be a 2N x 2N block-shaped skip mode.

i가 2일 경우, 부호화 모드는 2N x 2N 블록 모양의 머지 모드일 수 있다.When i is 2, the encoding mode may be a merge mode of 2N x 2N block shape.

i가 3일 경우, 부호화 모드는 2N x 2N 블록 모양의 인터 모드일 수 있다.When i is 3, the encoding mode may be a 2N x 2N block-shaped inter mode.

i가 4일 경우, 부호화 모드는 N x 2N 블록 모양의 인터 모드일 수 있다.When i is 4, the encoding mode may be an N x 2N block-shaped inter mode.

i가 5일 경우, 부호화 모드는 2N x N 블록 모양의 인터 모드일 수 있다.When i is 5, the encoding mode may be an inter mode of a 2N x N block shape.

i가 6일 경우, 부호화 모드는 2N x nD 블록 모양의 인터 모드일 수 있다.When i is 6, the encoding mode may be an inter mode of a 2N x nD block shape.

i가 7일 경우, 부호화 모드는 2N x nU 블록 모양의 인터 모드일 수 있다.When i is 7, the encoding mode may be an inter mode of a 2N x nU block shape.

i가 8일 경우, 부호화 모드는 nL x 2N 블록 모양의 인터 모드일 수 있다.When i is 8, the encoding mode may be nL x 2N block-shaped inter mode.

i가 9일 경우, 부호화 모드는 nR x 2N 블록 모양의 인터 모드일 수 있다.When i is 9, the encoding mode may be nR x 2N block-shaped inter mode.

i가 10일 경우, 부호화 모드는 2N x 2N 블록 모양의 인트라 모드일 수 있다.When i is 10, the encoding mode may be a 2N x 2N block-shaped intra mode.

i가 11일 경우, 부호화 모드는 N x N 블록 모양의 인트라 모드일 수 있다.When i is 11, the encoding mode may be an intra mode of N x N block shape.

한편, min{ }는 최소값을 출력해주는 연산자이다.

Figure 112015022820936-pat00005
는 템포럴 레이어(temporal layer)(l), 부호화 순서(k)에서 얻어진 샘플 회귀선(sample regression line)의 기울기로, 다음 [수학식 4]에 의해 계산될 수 있다. On the other hand, min {} is an operator that outputs the minimum value.
Figure 112015022820936-pat00005
Is a slope of a sample regression line obtained in the temporal layer 1 and the coding order k, and can be calculated by the following equation (4).

Figure 112015022820936-pat00006
Figure 112015022820936-pat00006

이때, J 및 J-1

Figure 112015022820936-pat00007
의 템포럴 네이버(temporal neighbor)에 위치하는 CTU의 율-왜곡 비용을 나타내는 확률 변수이다. Where J and J- 1 are
Figure 112015022820936-pat00007
Is a probability variable that represents the rate-distortion cost of a CTU located in the temporal neighbor of.

Figure 112015022820936-pat00008
는 템포럴 레이어(temporal layer)(l), 부호화 순서(k)에서 얻어진 상관 계수로, 다음 [수학식 5]에 의해 계산될 수 있다.
Figure 112015022820936-pat00008
Is a correlation coefficient obtained in the temporal layer 1 and the coding order k, and can be calculated by the following equation (5).

Figure 112015022820936-pat00009
Figure 112015022820936-pat00009

이때, X와 X-1은 각각 현재 CTU와 템포럴 네이버(temporal neighbor) 내 동일 위치에서의 CTU의 율-왜곡 비용에 대한 확률 변수이다. 그리고, std(X)는 X의 표준 편차를 나타내며, cov(X, X-1)는 X와 X-1의 공분산을 나타낸다. Where X and X -1 are probability variables for rate-distortion cost of the CTU at the same location in the current CTU and temporal neighbor, respectively. And, std (X) represents the standard deviation of X, and cov (X, X -1 ) represents the covariance of X and X -1 .

한편, d-1은 템포럴 네이버(temporal neighbor)의 동일한 위치에 있는 CTU의 왜곡 비용이다. On the other hand, d -1 is the distortion cost of the CTU at the same position of the temporal neighbor.

그리고, R(l, k, h, i)는 비트 비용을 나타낸다.

Figure 112015022820936-pat00010
Figure 112015022820936-pat00011
는 샘플 회귀선(sample regression line)의 기울기와 상관 계수에 대한 웨이팅 계수(weighting factor)이다. m1은 비트 비용에 대한 최대 값을 제한하기 위한 변수이다. 그리고
Figure 112015022820936-pat00012
은 확률 변수 R에 대한 누적 분포(cumulative distribution) 함수로, R은 h, l, Mi에 해당하는 CU의 비트 비용을 나타낸다. 또한, 상기 [수학식 3]에 나타난 것과 같이 k 값이 2 이상인 경우에는, k-1인 경우의 R 값을 이용하여 R을 계산할 수 있다.
Figure 112015022820936-pat00013
은 비트 비용에 대한 웨이팅 계수(weighting factor)이다.
Figure 112015022820936-pat00014
Figure 112015022820936-pat00015
의 비트 량으로,
Figure 112015022820936-pat00016
는 초기화(initialization) 단계의 동일한 템포럴 레이어(l)에서 평균 비트량을 나타낸다.
Figure 112015022820936-pat00017
는 각각 초기화(initialization) 단계의 동일한 템포럴 레이어(l)에서 얻어지는 기울기와 상관 계수 값들의 평균 값을 의미한다. Then, R (l, k, h, i) represents the bit cost.
Figure 112015022820936-pat00010
Wow
Figure 112015022820936-pat00011
Is the slope of the sample regression line and the weighting factor for the correlation coefficient. m 1 is a variable for limiting the maximum value for the bit cost. And
Figure 112015022820936-pat00012
Is a cumulative distribution function for the random variable R, where R represents the bit cost of the CU corresponding to h, l, M i . When the k value is 2 or more as shown in Equation (3), R can be calculated using the R value in the case of k-1.
Figure 112015022820936-pat00013
Is the weighting factor for the bit cost.
Figure 112015022820936-pat00014
The
Figure 112015022820936-pat00015
As the bit amount of "
Figure 112015022820936-pat00016
Represents the average amount of bits in the same temporal layer (l) of the initialization step.
Figure 112015022820936-pat00017
Wow Means an average value of the slope and correlation coefficient values obtained in the same temporal layer 1 of the initialization step, respectively.

한편, Bpred 값은 부호화 시 발생한 비트량 예측 값(또는 추정(예측) 비트량)으로, 다음 [수학식 6]에 의해 결정될 수 있다. On the other hand, the B pred value is a predicted bit amount (or estimated (predicted) bit amount) generated in encoding, and can be determined by the following equation (6).

Figure 112015022820936-pat00019
Figure 112015022820936-pat00019

이때, m2,

Figure 112015022820936-pat00020
는 상기 [수학식 3]의 m1,
Figure 112015022820936-pat00021
과 동일한 역할을 하는 값이다. 또한, 상기 [수학식 6]에 나타난 것과 같이 k 값이 2 인 경우에는, k가 1인 경우의 Bpred 값을 이용하여 Bpred 값을 계산하고, k 값이 2보다 큰 경우에는 k가 1인 경우의 Bpred 값과 k-1인 경우의 Bpred 값을 이용하여 Bpred 값을 계산할 수 있다.At this time, m 2 ,
Figure 112015022820936-pat00020
Is expressed by m 1 ,
Figure 112015022820936-pat00021
Is a value that plays the same role as. Further, if the k value is 2, as shown in [Equation 6] it is, for calculating a B pred values using the B pred values when k is 1, and a k value greater than 2, k is 1, pred the B value can be calculated by using a B pred values when the B value pred k-1 and in the case of.

상기 [수학식 2], [수학식 3], [수학식 6]의 파라미터 값들은 실험을 통해서 결정될 수 있다. 예를 들면, 본 발명의 일 실시 예에서는 {

Figure 112015022820936-pat00022
,
Figure 112015022820936-pat00023
,
Figure 112015022820936-pat00024
, m1, p1}은 {0.5, 0.5, 0.8, 3, 0.01}을 사용하고, {m2,
Figure 112015022820936-pat00025
, p2}는 {2, 0.5, 0.003}을 사용할 수 있다. The parameter values of the equations (2), (3) and (6) can be determined through experiments. For example, in one embodiment of the present invention,
Figure 112015022820936-pat00022
,
Figure 112015022820936-pat00023
,
Figure 112015022820936-pat00024
, M 1, p 1}, and is used to {0.5, 0.5, 0.8, 3 , 0.01}, {m 2,
Figure 112015022820936-pat00025
, p 2 } can be {2, 0.5, 0.003}.

다시 도 8을 참고하면, 810 단계에서 첫 번째 부호화 모드(즉, i = 1)에 대해서 최적의 J 값(Jbest)과 최적의 B 값(Bbest)으로 각각 J 값의 최대 값(Jmax)와 B 값의 최대 값(Bmax)을 설정할 수 있다. 그리고, bSkipFlag 값을 거짓(false)로 설정할 수 있다. Referring back to FIG. 8, in step 810, the maximum value J max (J max ) of the J value is set as the optimal J value (J best ) and the optimum B value (B best ) for the first coding mode ) And the maximum value (B max ) of the B value can be set. And you can set the bSkipFlag value to false.

그리고 815 단계에서 l 값이 1보다 큰지 여부를 판단할 수 있다. 즉, 현재 템포럴 레이어(temporal layer)(l)가 첫 번째인지 여부를 판단할 수 있다. In step 815, it can be determined whether the value of l is greater than one. That is, it can determine whether the current temporal layer 1 is the first one.

상기 815 단계에서 판단한 결과 l 값이 1보다 크지 않은 경우, 825 단계에서 i 값이 3보다 큰지 여부를 판단할 수 있다. If it is determined in step 815 that the value of l is not greater than 1, it may be determined in step 825 whether i is greater than 3.

상기 825 단계에서 판단한 결과 i 값이 3보다 크지 않은 경우 830 단계에서 i 값이 2보다 크고 bSkipFalg가 거짓(false)으로 설정되어 있는지 여부를 판단할 수 있다. 이때, 830 단계에서 판단한 결과 i 값이 2보다 크지 않은 경우(즉, i 값이 1이거나) 또는 bSkipFlag가 참(true)인 경우 중 어느 하나를 만족하는 경우에는 855 단계로 진행하여 현재 모드 Mi에 대한 J 값 및 B 값을 계산할 수 있다. If it is determined in step 825 that the i value is not greater than 3, it may be determined in step 830 whether i is greater than 2 and bSkipFalg is set to false. If it is determined in step 830 that the i value is not greater than 2 (i is 1 or bSkipFlag is true), the process proceeds to step 855 where the current mode M i The J value and the B value can be calculated.

반면, 830 단계에서 판단 결과 i 값이 2보다 크고 bSkipFalg가 거짓(false)으로 설정되어 있는 경우, 835 단계에서 비트량 예측 값(Bpred 값)이 최적의 B 값(Bbest)보다 작은지 여부를 판단할 수 있다(Bpred(l,k,h,i) < Bbest). 만약 Bpred 값이 Bbest 값보다 작은 경우에는 855 단계로 진행하여 현재 모드 Mi에 대한 J 값 및 B 값을 계산할 수 있다. 그러나, Bpred 값이 Bbest 값보다 작지 않은 경우에는 현재 부호화 모드에 대한 율-왜곡 비용의 계산을 생략하고 870 단계로 진행할 수 있다. On the other hand, if it is determined in step 830 that the i-value is greater than 2 and bSkipFalg is false, it is determined whether the bit-amount predicted value (B pred ) is less than the optimal B-value (B best ) (B pred (l, k, h, i) < B best ). If the B pred value is smaller than the B best value, the J value and the B value for the current mode M i can be calculated in step 855. However, if the B pred value is not smaller than the B best value, the calculation of the rate-distortion cost for the current encoding mode may be omitted and the process may proceed to step 870.

또한, 상기 825 단계에서 판단한 결과 i 값이 3보다 큰 경우에도, 835 단계에서 비트량 예측 값(Bpred 값)이 최적의 B 값(Bbest)보다 작은지 여부를 판단할 수 있다(Bpred(l,k,h,i) < Bbest). 이때 만약 Bpred 값이 Bbest 값보다 작은 경우에는 855 단계로 진행하여 현재 모드 Mi에 대한 J 값 및 B 값을 계산할 수 있다. 그러나, Bpred 값이 Bbest 값보다 작지 않은 경우에는 현재 부호화 모드에 대한 율-왜곡 비용의 계산을 생략하고 870 단계로 진행할 수 있다. Further, even if the result value of i is determined in the step 825 is greater than 3, it can be determined whether the bit rate prediction value from the 835 step (B pred value) is smaller than the optimal value of B (B best) (B pred (l, k, h, i) < B best . At this time, if the B pred value is smaller than the B best value, the J value and the B value for the current mode M i can be calculated in step 855. However, if the B pred value is not smaller than the B best value, the calculation of the rate-distortion cost for the current encoding mode may be omitted and the process may proceed to step 870.

한편, 815 단계에서 판단 결과 l 값이 1보다 큰 경우에는 820 단계에서 i 값이 3보다 큰지 여부를 판단할 수 있다. 820 단계에서 판단 결과 i 값이 3보다 크지 않은 경우, 840 단계에서 i 값이 2보다 크고 bSkipFalg가 거짓(false)으로 설정되어 있는지 여부를 판단할 수 있다. 판단 결과 i 값이 2보다 크지 않은 경우(즉, i 값이 1이거나) 또는 bSkipFlag가 참(true)인 경우 중 어느 하나를 만족하는 경우 845 단계에서 율-왜곡 비용의 예측값(Jpred 값)이 최적의 J 값(Jbest)보다 작은지 여부를 판단할 수 있다(Jpred(l,k,h,i) < Jbest). 만약 Jpred 값이 Jbest 값보다 작은 경우에는 855 단계로 진행하여 현재 모드 Mi에 대한 J 값 및 B 값을 계산할 수 있다. 그러나, Jpred 값이 Jbest 값보다 작지 않은 경우에는 현재 부호화 모드에 대한 율-왜곡 비용의 계산을 생략하고 870 단계로 진행할 수 있다. On the other hand, if it is determined in step 815 that the value of 1 is greater than 1, it may be determined in step 820 whether i is greater than 3. If it is determined in step 820 that the i value is not greater than 3, it may be determined in step 840 whether i is greater than 2 and bSkipFalg is set to false. If it is determined that the i value is not greater than 2 (i is 1) or bSkipFlag is true, the predicted value (J pred value) of the rate-distortion cost is calculated in step 845 it can be determined whether or not smaller than the optimal value J (J best) (J pred ( l, k, h, i) <J best). If the J pred value is smaller than the J best value, the J value and the B value for the current mode M i can be calculated in step 855. However, if the J pred value is not smaller than the J best value, the calculation of the rate-distortion cost for the current encoding mode may be omitted and the process may proceed to step 870.

반면, 840 단계에서 판단 결과 i 값이 2보다 크고 bSkipFalg가 거짓(false)으로 설정되어 있는 경우, 850 단계에서 율-왜곡 비용의 예측값(Jpred 값)이 최적의 J 값(Jbest)보다 작고, 비트량 예측 값(Bpred 값)이 최적의 B 값(Bbest)보다 작은지 여부를 판단할 수 있다(Jpred(l,k,h,i) < Jbest and Bpred(l,k,h,i) < Bbest). 또한, 820 단계에서 판단한 결과 i 값이 3보다 큰 경우에도 850 단계에서 율-왜곡 비용의 예측값(Jpred 값)이 최적의 J 값(Jbest)보다 작고, 비트량 예측 값(Bpred 값)이 최적의 B 값(Bbest)보다 작은지 여부를 판단할 수 있다(Jpred(l,k,h,i) < Jbest and Bpred(l,k,h,i) < Bbest). On the other hand, if it is determined in step 840 that the i-value is greater than 2 and the bSkipFalg is set to false, the prediction value ( Jred value) of the rate-distortion cost is smaller than the optimal J-value (J best ) , bit amount predicted value (B pred value) can determine whether or not smaller than the optimal value of B (B best) (J pred (l, k, h, i) <J best and B pred (l, k , h, i) < B best . Even if the result i determined in step 820 is greater than 3, even if the predicted value (J pred ) of the rate-distortion cost is smaller than the optimal J value ( Jbest ) and the bit amount predicted value (B pred ) may be the determination of optimum whether less than the B value (B best) (J pred ( l, k, h, i) <J best and B pred (l, k, h, i) <B best).

850 단계에서 판단 결과 Jpred 값이 Jbest 값보다 작으면서, Bpred 값이 Bbest 값보다 작은 경우에는, 855 단계로 진행하여 현재 모드 Mi에 대한 J 값 및 B 값을 계산할 수 있다. 그러나, Jpred 값이 Jbest 값보다 작지 않은 경우 및 Bpred 값이 Bbest 값보다 작지 않은 경우 중 어느 하나를 만족하는 경우에는 현재 부호화 모드에 대한 율-왜곡 비용의 계산을 생략하고 870 단계로 진행할 수 있다. If it is determined in step 850 that the J pred value is smaller than the J best value and the B pred value is smaller than the B best value, the J value and the B value for the current mode M i can be calculated in step 855. However, if the J pred value is not smaller than the J best value and the B pred value is not smaller than the B best value, the calculation of the rate-distortion cost for the current encoding mode is omitted, and in step 870 You can proceed.

한편, 855 단계에서 현재 모드 Mi에 대한 J 값 및 B 값을 계산한 이후에는 860 단계에서 계산된 J 값이 현재 설정된 최적의 J 값(Jbest)보다 작은지 여부를 판단할 수 있다. 판단 결과 계산된 J 값이 Jbest 값보다 작은 경우에는 865 단계에서 현재 계산된 i 번째 모드(Mi)에 대한 J 값을 최적의 J 값(Jbest)으로 설정하고, 현재 계산된 i 번째 모드(Mi)에 대한 B 값을 최적의 B 값(Bbest)로 설정 수 있다. 그리고 현재의 i 번째 모드(Mi)를 최적의 모드로 설정할 수 있다. 그 후 870 단계로 진행하여 모든 후보 모드들에 대한 J 값을 체크하였는지 여부를 판단할 수 있다.On the other hand, after calculating the J value and the B value for the current mode M i in step 855, it can be determined whether the J value calculated in step 860 is smaller than the currently set optimum J value J best . If the J value calculated determination result is less than J best value, the i th mode of the current calculated in step 865 the best of the J value of the J value for the (M i) (J best) to set, and the current calculated i-th mode The B value for the input image M i can be set to the optimal B value B best . And the current i-th mode ( Mi ) can be set to the optimum mode. In step 870, it is determined whether the J value of all candidate modes is checked.

반면, 860 단계에서 판단 결과 계산된 J 값이 Jbest 값보다 작지 않은 경우에는 설정되어 있는 Jbest 값, Bbest 값 및 최적의 모드를 변경하지 않고, 870 단계로 진행하여 모든 후보 모드들에 대한 J 값을 체크하였는지 여부를 판단할 수 있다. On the other hand, without changing the result of the determination, if the calculated value J is not less than J best value J best value is set, B best value and the optimum mode in the 860 step, the process proceeds to 870 steps for all candidate modes J value is checked.

870 단계에서 판단 결과 모든 후보 모드들에 대하여 J 값을 체크한 경우에 절차를 종료시킬 수 있지만, 그렇지 않은 경우에는 다음 부호화 모드에 대한 J 값을 체크할 수 있다. As a result of the determination in step 870, if the J value is checked for all candidate modes, the procedure can be terminated. Otherwise, the J value for the next encoding mode can be checked.

이때, 실시 예에 따라 875 단계에서 현재 선택된 부호화 모드 Mi가 2N x 2N 블록 모양의 스킵 모드(skip 2N x 2N)인지 여부를 판단할 수 있다. 즉 현재 i 값이 1인지 여부를 판단할 수 있다. 판단 결과 현재 Mi가 2N x 2N 블록 모양의 스킵 모드인 경우, 880 단계에서 bSkipFlag를 참(true)로 설정할 수 있다. 그리고 885 단계로 진행하여 i 값을 1 증가시킬 수 있다. 그러나, 875 단계에서 판단 결과 현재 Mi가 2N x 2N 블록 모양의 스킵 모드가 아닌 경우라면, 885 단계로 바로 진행하여 i 값을 1 증가시킬 수 있다. In this case, it may be determined whether the encoding mode M i currently selected in step 875 is a 2N x 2N block-shaped skip mode (skip 2N x 2N). That is, whether the current i value is 1 or not. If it is determined that the current M i is a 2N x 2N block-shaped skip mode, bSkipFlag may be set to true in step 880. In step 885, the i value may be incremented by one. However, if it is determined in step 875 that the current M i is not the 2N x 2N block-shaped skip mode, the process may proceed directly to step 885 to increment i by one.

885 단계에서 i 값을 1 증가시킨 후에는, 815 단계로 복귀하여 상술한 815 단계 내지 885 단계를 반복할 수 있다. After incrementing the value of i by one in step 885, the process returns to step 815 and the steps 815 to 885 described above may be repeated.

한편, 본 발명의 일 실시 예에 따른 결과는 다음 [표 1]과 같을 수 있다. The results according to an embodiment of the present invention may be as shown in Table 1 below.

Sequence
(resolution)
Sequence
(resolution)
Number of frames
(frame rate)
Number of frames
(frame rate)
QPIQPI △ETR△ ETR BD-rateYUV BD-rate YUV
HM12.1HM12.1 ProposedProposed HM12.1HM12.1 ProposedProposed Traffic
(1260x1600)
Traffic
(1260x1600)
150
(30fps)
150
(30 fps)
2222 -44.79-44.79 -47.64-47.64 0.550.55 0.240.24
2727 -50.68-50.68 -57.22-57.22 3232 -53.51-53.51 -64.93-64.93 3737 -55.09-55.09 -71.36-71.36 PeopleOnStreet
(2160x1600)
PeopleOnStreet
(2160x1600)
150
(30fps)
150
(30 fps)
2222 -30.38-30.38 -23.09-23.09 1.251.25 0.460.46
2727 -36.18-36.18 -31.23-31.23 3232 -40.90-40.90 -37.49-37.49 3737 -44.65-44.65 -42.68-42.68 Kimono
(1920x1080)
Kimono
(1920x1080)
240
(24fps)
240
(24 fps)
2222 -39.94-39.94 -40.92-40.92 0.640.64 0.280.28
2727 -45.59-45.59 -48.90-48.90 3232 -49.59-49.59 -55.86-55.86 3737 -52.71-52.71 -63.21-63.21 Cactus
(1920x1080)
Cactus
(1920x1080)
500
(50fps)
500
(50 fps)
2222 -39.99-39.99 -43.36-43.36 0.690.69 0.400.40
2727 -47.09-47.09 -51.79-51.79 3232 -50.49-50.49 -58.45-58.45 3737 -52.31-52.31 -65.83-65.83 BQTerrace
(1920x1080)
BQTerrace
(1920x1080)
600
(60fps)
600
(60 fps)
2222 -34.75-34.75 -27.32-27.32 0.680.68 0.350.35
2727 -49.84-49.84 -53.51-53.51 3232 -53.89-53.89 -69.36-69.36 3737 -55.52-55.52 -79.20-79.20 BQMall
(832x480)
BQMall
(832x480)
600
(60fps)
600
(60 fps)
2222 -40.95-40.95 -41.56-41.56 0.890.89 0.300.30
2727 -45.76-45.76 -48.94-48.94 3232 -49.14-49.14 -53.69-53.69 3737 -51.40-51.40 -62.28-62.28 PartyScene
(832x480)
PartyScene
(832x480)
500
(50fps)
500
(50 fps)
2222 -35.46-35.46 -37.79-37.79 0.450.45 0.340.34
2727 -42.36-42.36 -46.99-46.99 3232 -47.26-47.26 -53.37-53.37 3737 -50.45-50.45 -58.40-58.40 BasketballDrill
(832x480)
BasketballDrill
(832x480)
500
(50fps)
500
(50 fps)
2222 -36.24-36.24 -41.30-41.30 0.800.80 0.330.33
2727 -41.47-41.47 -46.50-46.50 3232 -45.95-45.95 -51.57-51.57 3737 -49.42-49.42 -59.21-59.21 BlowingBubbles
(416x240)
BlowingBubbles
(416x240)
500
(50fps)
500
(50 fps)
2222 -26.83-26.83 -29.63-29.63 0.410.41 0.310.31
2727 -43.59-43.59 -49.16-49.16 3232 -47.98-47.98 -54.52-54.52 3737 -51.22-51.22 -62.55-62.55 BasketballPass
(416x240)
BasketballPass
(416x240)
500
(50fps)
500
(50 fps)
2222 -32.49-32.49 -33.69-33.69 0.860.86 0.740.74
2727 -36.90-36.90 -38.86-38.86 3232 -41.50-41.50 -46.27-46.27 3737 -45.83-45.83 -53.99-53.99 ChinaSpeed
(1024x768)
ChinaSpeed
(1024x768)
500
(30fps)
500
(30 fps)
2222 -33.92-33.92 -27.74-27.74 0.750.75 0.540.54
2727 -39.54-39.54 -38.66-38.66 3232 -45.42-45.42 -48.26-48.26 3737 -49.87-49.87 -58.38-58.38 SlideEditing
(1280x720)
SlideEditing
(1280x720)
300
(30fps)
300
(30 fps)
2222 -61.18-61.18 -80.31-80.31 0.150.15 0.110.11
2727 -60.82-60.82 -81.58-81.58 3232 -60.35-60.35 -82.54-82.54 3737 -59.82-59.82 -84.14-84.14 SlideShow
(1280x720)
SlideShow
(1280x720)
500
(20fps)
500
(20 fps)
2222 -53.25-53.25 -75.13-75.13 0.170.17 -0.06-0.06
2727 -53.83-53.83 -77.50-77.50 3232 -54.92-54.92 -79.48-79.48 3737 -55.47-55.47 -81.29-81.29 Avg.Avg. -46.51-46.51 -54.21-54.21 0.640.64 0.330.33

이때, ΔETR(Encoding Time Reduction)은 부호화 시 소요되는 시간의 감소 폭을 나타낸다. 그리고, BD-rate(Bjontegaard Delta-rate)는 부호화 효율의 손실 정도를 나타내는 값이다. 이때, ΔETR은 다음 [수학식 7]로 구해질 수 있다. At this time,? ETR (Encoding Time Reduction) indicates a decrease in the time required for coding. The BD-rate (Bjontegaard Delta-rate) is a value indicating the degree of loss of the coding efficiency. At this time,? ETR can be obtained by the following equation (7).

Figure 112015022820936-pat00026
Figure 112015022820936-pat00026

이때, T은 본원 발명의 일 실시 예에 따른 고속 부호화 모드 또는 HM12.1을 사용하여 부호화에 소요된 시간을 의미한다. 그리고 T2는 HM12.1에서 Skip, Merge를 빠르게 결정하기 위한 방법(JCTVC-H178), AMP의 연산량을 줄이기 위한 방법(JCTVC-E316), Inter prediction시 residual 신호가 작을 경우 Intra prediction을 생략하는 방법(JCTVC-N1002v1)을 제외하였을 경우 부호화에 소요된 시간을 의미한다. Here, T denotes a time required for encoding using the fast encoding mode or HM12.1 according to an embodiment of the present invention. T2 is a method for quickly determining Skip and Merge in HM12.1 (JCTVC-H178), a method for reducing the amount of computation of AMP (JCTVC-E316), a method of omitting Intra prediction when the residual signal is small JCTVC-N1002v1) is excluded, it means time required for coding.

상기 [표 1]을 참고하면, 본원 발명의 일 실시 예에 따른 부호화 결과 약 54.21%의 부호화 속도를 개선시키면서 0.33%의 부호화 효율 손실을 가짐을 확인할 수 있다. Referring to Table 1, it can be seen that the coding efficiency according to an embodiment of the present invention improves the coding rate of about 54.21% and has a coding efficiency loss of 0.33%.

한편, 도시되지 않았지만, 본 발명의 일 실시 예에 따른 비디오 병렬 부호화기를 위한 율 제어 장치는 제어부를 포함할 수 있다. Meanwhile, although not shown, a rate control apparatus for a video parallel coder according to an embodiment of the present invention may include a control unit.

상기 제어부는 상술한 실시 예들 중 어느 하나의 동작을 수행하도록 상기 장치를 제어한다. 예를 들면, 상기 제어부는 병렬로 처리할 프레임들에 비트를 할당하고, 부호화 파라미터를 결정하고, 상기 결정된 부호화 파라미터로 병렬로 부호화를 수행하고, 실제 발생 비트량을 업데이트하도록 제어할 수 있다. The control unit controls the apparatus to perform the operation of any one of the above-described embodiments. For example, the control unit may allocate bits to frames to be processed in parallel, determine encoding parameters, perform encoding in parallel with the determined encoding parameters, and update the actually generated bit amount.

본 명세서와 도면에 개시된 실시 예는 기술 내용을 쉽게 설명하고, 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.The embodiments disclosed in the present specification and drawings are merely illustrative of specific examples for the purpose of easy explanation and understanding, and are not intended to limit the scope of the present invention. It is to be understood by those skilled in the art that other modifications based on the technical idea of the present invention are possible in addition to the embodiments disclosed herein.

한편, 본 명세서와 도면에는 본 발명의 바람직한 실시 예에 대하여 개시하였으며, 비록 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예 외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, And is not intended to limit the scope of the invention. It is to be understood by those skilled in the art that other modifications based on the technical idea of the present invention are possible in addition to the embodiments disclosed herein.

100: 부호화 장치 200: 복호화 장치
111: 움직임 예측부 112: 움직임 보상부
120: 인트라 예측부 115: 스위치
125: 감산기 130: 변환부
140: 양자화부 150: 엔트로피 부호화부
160: 역양자화부 170: 역변환부
175: 가산기 180: 필터부
100: encoding device 200: decryption device
111: motion prediction unit 112: motion compensation unit
120: intra prediction unit 115: switch
125: subtracter 130:
140: quantization unit 150: entropy coding unit
160: Inverse quantization unit 170: Inverse transform unit
175: adder 180: filter section

Claims (9)

고속 모드 결정 단계의 임의의 프레임에 대한 부호화에 있어서, 동일 템포럴 레이어에 대한 이전 프레임의 부호화 과정에서 획득된 파라미터를 이용하여 적어도 하나의 부호화 모드에 대한 부호화 모드 순서를 결정하는 단계;
상기 부호화 모드 순서를 기초로, 현재 부호화 블록의 상기 적어도 하나의 부호화 모드 각각에 대한 율-왜곡 비용을 계산하는 단계;
상기 계산된 율-왜곡 비용이 최소인 부호화 모드를 이용하여 상기 현재 부호화 블록의 부호화를 수행하는 단계를 포함하되,
상기 부호화 모드 순서를 결정하는 단계는,
상기 임의의 프레임이 상기 고속 모드 결정 단계의 첫 번째 프레임이면, 초기화 과정에서의 부호화 과정에서 획득된 파라미터를 이용하여 상기 부호화 모드 순서를 결정하는 단계를 포함하고,
상기 율-왜곡 비용을 계산하는 단계는,
상기 부호화 모드 순서에 따라, 임의의 순서 부호화 모드에 대하여 상기 현재 부호화 블록의 율-왜곡 비용 예측값 및 비트 비용 예측값을 계산하는 단계;
상기 율-왜곡 비용 예측값 및 상기 비트 비용 예측값이 이전 순서 부호화 모드까지 계산된 최소 율-왜곡 비용 및 최소 비트 비용보다 작으면, 상기 임의의 순서 부호화 모드에 대한 상기 율-왜곡 비용을 계산하는 단계; 및
상기 율-왜곡 비용 예측값 및 상기 비트 비용 예측값이 이전 순서 부호화 모드까지 계산된 최소 율-왜곡 비용 및 최소 비트 비용보다 크거나 같으면, 상기 임의의 순서 부호화 모드에 대한 상기 율-왜곡 비용의 계산을 스킵하는 단계를 포함하고,
상기 초기화 과정은,
최초의 n개 프레임에 대한 부호화 과정인 것을 특징으로 하는 부호화 방법.
여기서, n은 자연수이다.
Determining a coding mode order for at least one coding mode using parameters obtained in the coding of a previous frame for the same temporal layer in coding for any frame in the fast mode determination step;
Calculating a rate-distortion cost for each of the at least one encoding mode of the current encoded block, based on the encoding mode order;
And performing encoding of the current encoded block using an encoding mode in which the calculated rate-distortion cost is minimized,
Wherein the step of determining the encoding mode order comprises:
And determining the encoding mode order using the parameter obtained in the encoding process in the initialization step if the arbitrary frame is the first frame of the fast mode determination step,
Wherein the step of calculating the rate-distortion cost comprises:
Calculating a rate-distortion cost prediction value and a bit cost prediction value of the current coded block for an arbitrary order coding mode according to the coding mode order;
Calculating the rate-distortion cost for the random-order encoding mode if the rate-distortion cost estimate and the bit-cost estimate are less than a minimum rate-distortion cost and a minimum bit cost computed up to the previous-order encoding mode; And
If the rate-distortion cost prediction value and the bit cost prediction value are equal to or greater than the minimum rate-distortion cost and the minimum bit cost calculated up to the previous order coding mode, the calculation of the rate-distortion cost for the arbitrary order coding mode is skipped , &Lt; / RTI &gt;
The initialization process includes:
Wherein the coding process for the first n frames is a coding process for the first n frames.
Here, n is a natural number.
제1항에 있어서, 상기 부호화 모드 순서를 결정하는 단계는,
상기 초기화 과정에서 적용된 최적 모드의 분포의 내림차순으로 상기 부호화 모드 순서를 결정하는 단계를 포함하는 것을 특징으로 하는 부호화 방법.
2. The method of claim 1, wherein determining the encoding mode order comprises:
And determining the coding mode order in a descending order of distributions of optimal modes applied in the initialization process.
삭제delete 제1항에 있어서, 상기 율-왜곡 비용 예측값은,
다음의 수학식에 의하여 계산되는 것을 특징으로 하는 부호화 방법.
Figure 112016089108197-pat00035

여기서, Jpred는 상기 율-왜곡 비용 예측값, l은 부호화 블록의 시간적 계층(temporal layer), k는 동일한 시간적 계층에 위치한 프레임의 부호화 순서, h는 부호화 블록의 높이, i는 부호화 모드 인덱스,
Figure 112016089108197-pat00036
는 샘플 회귀선의 기울기에 대한 가중치,
Figure 112016089108197-pat00037
는 샘플 회귀선의 상관 계수에 대한 가중치,
Figure 112016089108197-pat00038
는 부호화 블록의 시간적 계층 l과 부호화 순서 k에서 얻어지는 샘플 회귀선의 기울기의 평균,
Figure 112016089108197-pat00039
는 부호화 블록의 시간적 계층 l과 부호화 순서 k에서 얻어지는 상관 계수의 평균, d-1은 템포럴 네이버(temporal neighbor)에서 부호화 블록과 동일한 위치에 있는 부호화 블록의 왜곡 비용, min{ }은 최소값 출력 연산자, m1은 비트 비용에 대한 최대값을 제어하는 변수, R(l, k, h, i)는 부호화 블록의 시간적 계층 l, 부호화 순서 k, 부호화 블록 높이 h, 부호화 블록 인덱스 i에서의 비트 비용, λ는 라그랑지안(Lagrangian) 상수이다.
2. The method of claim 1, wherein the rate-
Is calculated by the following equation.
Figure 112016089108197-pat00035

Here, J pred is the rate-distortion cost prediction value, l is the temporal layer of the coded block (temporal layer), k is the coding order of the frame located in the same temporal layer, h is the height of the encoding block, the encoding mode index i,
Figure 112016089108197-pat00036
Is a weight for the slope of the sample regression line,
Figure 112016089108197-pat00037
Is a weight for the correlation coefficient of the sample regression line,
Figure 112016089108197-pat00038
Is the average of the slope of the sample regression line obtained from the temporal layer l of the coding block and the coding order k,
Figure 112016089108197-pat00039
Is the average of the correlation coefficients obtained in the temporal layer l and coding order k of the coding block, d -1 is the distortion cost of the coding block in the same position as the coding block in the temporal neighbor, min {} is the minimum value output operator , m 1 is the variable which controls the maximum value for bit cost, R (l, k, h, i) is a temporal hierarchy l, the encoding procedure of the encoding block k, the encoding block height h, coding bit cost of the block index i , and lambda is a Lagrangian constant.
제4항에 있어서, 상기
Figure 112015061714335-pat00040
는,
다음의 수학식에 의하여 계산되는 것을 특징으로 하는 부호화 방법.
Figure 112015061714335-pat00041

여기서, J 및 J-1은 각각 상기 초기화 과정에서 부호화 블록의 시간적 계층 l, 부호화 순서 k의 프레임 및 그의 템포럴 네이버에 위치한 프레임에 위치하는 부호화 블록의 율-왜곡 비용에 대한 확률 변수, cov(J, J-1)는 J와 J-1의 공분산, var(J)는 j의 분산이다.
5. The method of claim 4,
Figure 112015061714335-pat00040
Quot;
Is calculated by the following equation.
Figure 112015061714335-pat00041

J and J -1 are probability parameters for the rate-distortion cost of the coding block located in the temporal layer 1, the coding order k, and the frame located in the temporal neighbors of the coding block in the initialization process, cov J, J -1 ) is the covariance of J and J -1 , and var (J) is the variance of j.
제4항에 있어서,
Figure 112015061714335-pat00042
는,
다음의 수학식에 의하여 계산되는 것을 특징으로 하는 부호화 방법.
Figure 112015061714335-pat00043

여기서, X 및 X-1은 각각 부호화 블록 및 템포럴 네이버에서 부호화 블록과 동일한 위치에 있는 부호화 블록의 율-왜곡 비용에 대한 확률 변수, cov(X, X-1)는 J와 J-1의 공분산, std(X)는 X의 표준 편차이다.
5. The method of claim 4,
Figure 112015061714335-pat00042
Quot;
Is calculated by the following equation.
Figure 112015061714335-pat00043

Wherein, X and X -1 is a rate of the encoded block in the same position as each coding block and the coding block in temporal Naver-probability for distortion cost variable, cov (X, X -1) is of J and J -1 The covariance, std (X), is the standard deviation of X.
제4항에 있어서, 상기 R(l, k, h, i)는,
다음의 수학식에 의하여 계산되는 것을 특징으로 하는 부호화 방법.
Figure 112016056462352-pat00054

여기서,
Figure 112016056462352-pat00055
은 부호화 블록의 비트 비용을 나타내는 확률 변수 R에 대한 누적 분포(cumulative distribution) 함수, P1은 0에서 1 사이의 임의의 실수값, Z는 정수 집합,
Figure 112016056462352-pat00056
은 비트 비용에 대한 가중치,
Figure 112016056462352-pat00057
는 부호화 블록의 시간적 계층 l, 부호화 순서 k의 프레임에 대한 비트 비용,
Figure 112016056462352-pat00058
는 초기화 과정의 동일한 시간적 계층 l에서 평균 비트 비용이다.
5. The method of claim 4, wherein R (l, k, h, i)
Is calculated by the following equation.
Figure 112016056462352-pat00054

here,
Figure 112016056462352-pat00055
Is a cumulative distribution function for a random variable R representing the bit cost of the encoding block, P 1 is an arbitrary real number value between 0 and 1, Z is an integer set,
Figure 112016056462352-pat00056
Is the weight for the bit cost,
Figure 112016056462352-pat00057
The temporal layer l of the coded block, the bit cost for the frame of the coding order k,
Figure 112016056462352-pat00058
Is the average bit cost at the same temporal layer l of the initialization process.
제1항에 있어서, 상기 비트 비용 예측값은,
다음의 수학식에 의하여 계산되는 것을 특징으로 하는 부호화 방법.
Figure 112016089108197-pat00059

여기서, Bpred는 상기 비트 비용 예측값, l은 부호화 블록의 시간적 계층, k는 동일한 시간적 계층에 위치한 프레임의 부호화 순서, h는 부호화 블록의 높이, i는 부호화 모드 인덱스,
Figure 112016089108197-pat00060
은 부호화 블록의 비트 비용을 나타내는 확률 변수 R에 대한 누적 분포(cumulative distribution) 함수, P2는 0에서 1 사이의 임의의 실수값, Z는 정수 집합, m2는 상기 율-왜곡 비용 예측값 Jpred에서 비트 비용에 대한 최대값을 제한하는 변수,
Figure 112016089108197-pat00061
는 비트 비용에 대한 가중치,
Figure 112016089108197-pat00062
는 부호화 블록의 시간적 계층 l, 부호화 순서 k의 프레임에 대한 비트 비용,
Figure 112016089108197-pat00063
는 초기화 과정의 동일한 시간적 계층 l에서 평균 비트 비용이다.
2. The method of claim 1,
Is calculated by the following equation.
Figure 112016089108197-pat00059

Where B pred is the predicted bit cost, l is the temporal layer of the encoded block, k is the encoding order of the frame located in the same temporal layer, h is the height of the encoded block, i is the encoding mode index,
Figure 112016089108197-pat00060
Is a cumulative distribution function for a random variable R representing the bit cost of the encoding block, P 2 is any real value between 0 and 1, Z is an integer set, m 2 is the rate-distortion cost estimate J pred A variable that limits the maximum value for the bit cost,
Figure 112016089108197-pat00061
Is a weight for bit cost,
Figure 112016089108197-pat00062
The temporal layer l of the coded block, the bit cost for the frame of the coding order k,
Figure 112016089108197-pat00063
Is the average bit cost at the same temporal layer l of the initialization process.
제1항에 있어서,
상기 임의의 프레임의 부호화가 완료되면, 상기 임의의 프레임의 부호화 과정에서 획득된 파라미터를 이용하여 상기 부호화 모드 순서를 갱신하는 단계를 포함하는 것을 특징으로 하는 부호화 방법.
The method according to claim 1,
And updating the coding mode order using parameters obtained in the coding of the arbitrary frame when the coding of the arbitrary frame is completed.
KR1020150032439A 2015-03-09 2015-03-09 Method and apparatus of adaptive coding mode ordering for early mode decision of hevc KR101668851B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150032439A KR101668851B1 (en) 2015-03-09 2015-03-09 Method and apparatus of adaptive coding mode ordering for early mode decision of hevc

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150032439A KR101668851B1 (en) 2015-03-09 2015-03-09 Method and apparatus of adaptive coding mode ordering for early mode decision of hevc

Publications (2)

Publication Number Publication Date
KR20160110589A KR20160110589A (en) 2016-09-22
KR101668851B1 true KR101668851B1 (en) 2016-10-31

Family

ID=57102731

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150032439A KR101668851B1 (en) 2015-03-09 2015-03-09 Method and apparatus of adaptive coding mode ordering for early mode decision of hevc

Country Status (1)

Country Link
KR (1) KR101668851B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101967028B1 (en) * 2016-12-21 2019-04-09 전자부품연구원 Apparatus and method for determining mode of high efficiency video coding

Also Published As

Publication number Publication date
KR20160110589A (en) 2016-09-22

Similar Documents

Publication Publication Date Title
JP6672226B2 (en) Video coding using large macro blocks
US11107253B2 (en) Image processing method, and image decoding and encoding method using same
KR101868121B1 (en) Method and apparatus for video encoding and decoding based on constrained offset compensation and loop filter
JP7382951B2 (en) System and method for applying deblocking filters to recovered video data
US9838718B2 (en) Secondary boundary filtering for video coding
KR101632776B1 (en) Joint coding of syntax elements for video coding
EP2324638B1 (en) System and method for video encoding using adaptive loop filter
JP5551232B2 (en) Video coding using large macro blocks
EP2727353B1 (en) Video coding using adaptive motion vector resolution
US20190289301A1 (en) Image processing method, and image encoding and decoding method using same
KR20190038371A (en) Method and apparatus for encoding/decoding image and recording medium for storing bitstream
KR102323427B1 (en) Method and Apparatus for image encoding
KR20190038405A (en) Method and apparatus for encoding/decoding image, recording medium for stroing bitstream
JP2015136150A (en) Method of encoding division block in video encoding, method of decoding division block in video decoding, and recording medium for implementing the same
KR20130063028A (en) Video coding using intra-prediction
US11064201B2 (en) Method and device for image encoding/decoding based on effective transmission of differential quantization parameter
KR101668851B1 (en) Method and apparatus of adaptive coding mode ordering for early mode decision of hevc
KR20140104064A (en) Method and apparatus for coding mode decision
KR20150100355A (en) Method and apparatus of inter prediction
KR20140043015A (en) Method and apparatus for image encoding
WO2023192336A1 (en) Methods and devices for high precision intra prediction
WO2023081322A1 (en) Intra prediction modes signaling
WO2023212254A1 (en) Methods and devices for high precision intra prediction
WO2023158765A1 (en) Methods and devices for geometric partitioning mode split modes reordering with pre-defined modes order
WO2023141338A1 (en) Methods and devices for geometric partitioning mode with split modes reordering

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant